diff --git a/.dockerignore b/.dockerignore index 70a68db..9328fdb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,9 +1,18 @@ node_modules -.nuxt -.output +apps/*/node_modules +packages/*/node_modules +# **/dist +# **/.output +**/.nuxt +**/.turbo +**/*.tsbuildinfo +**/.env +**/.env.* +!**/.env.example +apps/api/src/generated .git -*.md +out +backups +محصولات _dev.log -.env* -npm-debug.log* -logo.png +*.skill diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..b7c0ff2 --- /dev/null +++ b/.env.example @@ -0,0 +1,31 @@ +# Production settings for docker-compose.yml — copy to .env and change every secret. +# Generate secrets with: node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))" + +# domains (TLS is terminated in front of the gateway: host nginx, Traefik or the CDN) +SITE_DOMAIN=imenpishgaman.ir +ADMIN_DOMAIN=admin.imenpishgaman.ir +# host port of the gateway container +HTTP_PORT=8080 +# reverse proxies in front of the API: gateway (1) + host TLS proxy (1) +TRUST_PROXY=2 +# set to false only if the admin is served over plain http +COOKIE_SECURE=true + +# database +POSTGRES_USER=imen +POSTGRES_PASSWORD=change-me +POSTGRES_DB=imen + +# object storage (MinIO container); bucket is created automatically +S3_BUCKET=imen-media +S3_ACCESS_KEY=imen +S3_SECRET_KEY=change-me-at-least-8-chars + +# auth + cache purge secrets +JWT_SECRET=change-me-48-random-bytes +REVALIDATE_SECRET=change-me-too + +# first admin user (created by: docker compose exec api node dist/seed/seed.js) +ADMIN_PHONE=09120000000 +ADMIN_PASSWORD=change-me +ADMIN_NAME=مدیر سایت diff --git a/.gitignore b/.gitignore index 6aa258b..20d12b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,18 @@ -# dependencies -node_modules/ +# dependencies (build outputs keep theirs: apps/web/.output/server/node_modules, apps/api/.output/node_modules) +/node_modules/ +/apps/*/node_modules/ +/packages/*/node_modules/ -# nuxt +# build output +# dist/ +# .output/ .nuxt/ -.output/ .data/ -dist +.turbo/ +*.tsbuildinfo +# prisma generated client +apps/api/src/generated/ # misc .DS_Store @@ -14,7 +20,18 @@ dist # debug npm-debug.log* +pnpm-debug.log* # local env files .env .env*.local +!.env.example + +# database dumps from the backup service +backups/ + +# local s3 mock storage +.s3data/ +**/.s3data/ +*.jpg +icons (1).json diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..73828a6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +out +dist +.output +.nuxt +pnpm-lock.yaml +apps/api/src/generated +محصولات diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..de753c5 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "printWidth": 100 +} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index c43b092..0000000 --- a/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# Static export is built on the host (`npm run build` → ./out) -# This image only serves the pre-built files via nginx. -FROM docker.arvancloud.ir/nginx:alpine - -COPY out /usr/share/nginx/html -COPY nginx.conf /etc/nginx/conf.d/default.conf - -EXPOSE 80 - -CMD ["nginx", "-g", "daemon off;"] diff --git a/README.md b/README.md index dde3588..bf25e84 100644 --- a/README.md +++ b/README.md @@ -1,149 +1,150 @@ -# آریا ایمن — لندینگ (Nuxt) +# ایمن پیشگامان — مونوریپو (سایت + API + پنل مدیریت) -لندینگ شرکت آریا ایمن، مهاجرت‌یافته از Next.js به **Nuxt 4 (Vue 3)** با خروجی کاملاً استاتیک (SSG)، بهینه برای سئو و سرعت. -ظاهر و رفتار صفحه دقیقاً همان نسخه Next.js است. +سایت ایمن پیشگامان به‌همراه بکند و پنل مدیریت محتوا. همه‌ی متن‌ها، تصاویر، دسته‌ها و محصولات سایت از پنل مدیریت قابل ویرایش‌اند. -| لایه | ابزار | -|---|---| -| فریم‌ورک | Nuxt 4 + Vue 3 (` - - diff --git a/app/components/layout/Footer.vue b/app/components/layout/Footer.vue deleted file mode 100644 index d077692..0000000 --- a/app/components/layout/Footer.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - diff --git a/app/components/sections/Hero.vue b/app/components/sections/Hero.vue deleted file mode 100644 index 3a4811a..0000000 --- a/app/components/sections/Hero.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - diff --git a/app/components/sections/Products.vue b/app/components/sections/Products.vue deleted file mode 100644 index 5f16e1e..0000000 --- a/app/components/sections/Products.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - diff --git a/app/components/sections/Stats.vue b/app/components/sections/Stats.vue deleted file mode 100644 index b46ee7a..0000000 --- a/app/components/sections/Stats.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/app/components/sections/TapeMarquee.vue b/app/components/sections/TapeMarquee.vue deleted file mode 100644 index d6f01e6..0000000 --- a/app/components/sections/TapeMarquee.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/app/components/ui/SectionHead.vue b/app/components/ui/SectionHead.vue deleted file mode 100644 index b7bcb54..0000000 --- a/app/components/ui/SectionHead.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - diff --git a/app/composables/useSiteSeo.ts b/app/composables/useSiteSeo.ts deleted file mode 100644 index b0906da..0000000 --- a/app/composables/useSiteSeo.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { absUrl, siteConfig as s } from "#shared/config/site"; - -/** Site-wide defaults shared by the app shell and the error page. */ -export function useSiteSeo() { - useHead({ - titleTemplate: (title) => (title ? `${title} | ${s.name}` : s.title), - }); - - useSeoMeta({ - description: s.description, - themeColor: s.themeColor, - formatDetection: "telephone=no", - ogType: "website", - ogSiteName: s.name, - ogLocale: s.locale, - ogTitle: s.title, - ogDescription: s.description, - ogImage: absUrl(s.ogImage.src), - ogImageWidth: s.ogImage.width, - ogImageHeight: s.ogImage.height, - ogImageAlt: s.ogImage.alt, - twitterCard: "summary_large_image", - twitterTitle: s.title, - twitterDescription: s.description, - twitterImage: absUrl(s.ogImage.src), - twitterImageAlt: s.ogImage.alt, - }); -} diff --git a/app/pages/categories/[slug].vue b/app/pages/categories/[slug].vue deleted file mode 100644 index 5b586e7..0000000 --- a/app/pages/categories/[slug].vue +++ /dev/null @@ -1,245 +0,0 @@ - - - diff --git a/app/pages/index.vue b/app/pages/index.vue deleted file mode 100644 index 5a35776..0000000 --- a/app/pages/index.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/app/stores/contact.ts b/app/stores/contact.ts deleted file mode 100644 index 7784a7a..0000000 --- a/app/stores/contact.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { defineStore } from "pinia"; - -export type ContactStatus = "idle" | "loading" | "success"; - -const emptyForm = () => ({ name: "", org: "", phone: "", message: "" }); - -export const useContactStore = defineStore("contact", { - state: () => ({ - form: emptyForm(), - status: "idle" as ContactStatus, - }), - actions: { - // TODO: connect to the real API endpoint; currently simulates the request like the original - async submit() { - this.status = "loading"; - await new Promise((r) => setTimeout(r, 1100)); - this.status = "success"; - }, - reset() { - this.form = emptyForm(); - this.status = "idle"; - }, - }, -}); diff --git a/apps/admin/.env.production b/apps/admin/.env.production new file mode 100644 index 0000000..24424d0 --- /dev/null +++ b/apps/admin/.env.production @@ -0,0 +1,2 @@ +# loaded by `vite build` (the pre-built dist/ the admin image serves); dev uses http://localhost:3000 +VITE_SITE_URL=https://imenpishgaman.ir diff --git a/apps/admin/dist/assets/AdminLayout-DqN4f4Pv.css b/apps/admin/dist/assets/AdminLayout-DqN4f4Pv.css new file mode 100644 index 0000000..3162e29 --- /dev/null +++ b/apps/admin/dist/assets/AdminLayout-DqN4f4Pv.css @@ -0,0 +1 @@ +.admin-shell[data-v-4f03381b]{height:100dvh;overflow:hidden}.admin-shell[data-v-4f03381b]>.ant-layout{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.admin-header[data-v-4f03381b]{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e8ecf2;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0;box-shadow:0 1px #0f172a05;background:#fffffff5!important;height:64px!important;padding-inline:16px 20px!important;line-height:1.3!important}.admin-content[data-v-4f03381b]{box-sizing:border-box;background:#f5f6fa;flex-direction:column;flex:1;min-height:0;padding:16px;display:flex;overflow:hidden}.admin-page[data-v-4f03381b]{background:#fff;border:1px solid #e8ecf2;border-radius:12px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden;box-shadow:0 1px 2px #0f172a08}.admin-page[data-v-4f03381b]>.page-header{background:#fff;border-bottom:1px solid #eef1f6;flex:none!important;padding:16px 20px 14px!important;overflow:visible!important}.admin-page[data-v-4f03381b]>:not(.page-header){flex:1;min-width:0;min-height:0}.admin-page[data-v-4f03381b]>:not(.ap):not(.page-header){box-sizing:border-box;padding:16px;overflow:auto}@media (width>=768px){.admin-header[data-v-4f03381b]{padding-inline:24px!important}}.admin-header__start[data-v-4f03381b],.admin-header__end[data-v-4f03381b]{align-items:center;gap:12px;min-width:0;display:flex}.admin-header__menu-btn[data-v-4f03381b]{color:#475569!important;background:0 0!important;border:none!important;border-radius:10px!important}.admin-header__crumb[data-v-4f03381b]{align-items:center;gap:8px;min-width:0;display:flex}.admin-header__crumb-kicker[data-v-4f03381b]{color:#94a3b8;font-size:12px;font-weight:500;display:none}@media (width>=640px){.admin-header__crumb-kicker[data-v-4f03381b]{display:inline}}.admin-header__crumb-sep[data-v-4f03381b]{color:#cbd5e1;display:none}@media (width>=640px){.admin-header__crumb-sep[data-v-4f03381b]{display:inline}}.admin-header__crumb-page[data-v-4f03381b]{text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-size:15px;font-weight:700;overflow:hidden}.admin-header__site[data-v-4f03381b]{color:#475569;align-items:center;gap:8px;height:36px;padding-inline:8px;font-size:13px;font-weight:600;text-decoration:none;transition:color .18s;display:inline-flex;background:0 0!important;border:none!important}.admin-header__site[data-v-4f03381b]:hover{color:#ff5a00;box-shadow:none!important;background:0 0!important;border:none!important}.admin-header__divider[data-v-4f03381b]{background:#e8ecf2;width:1px;height:28px}.admin-header__user[data-v-4f03381b]{border-radius:var(--ant-border-radius,8px);max-width:260px;height:44px;color:inherit;cursor:pointer;background:#f8fafc;border:1px solid #e8ecf2;align-items:center;gap:10px;padding-block:4px;padding-inline:4px 10px;transition:border-color .18s,background .18s,box-shadow .18s;display:inline-flex}.admin-header__user[data-v-4f03381b]:hover{background:#fff;border-color:#ffd0b5;box-shadow:0 2px 10px #0f172a0d}.admin-header__avatar[data-v-4f03381b]{border-radius:calc(var(--ant-border-radius,8px) - 2px);color:#fff;background:linear-gradient(135deg,#ff5a00,#ff8a3d);flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #ff5a0047}.admin-header__user-meta[data-v-4f03381b]{flex-direction:column;align-items:flex-start;min-width:0;line-height:1.25;display:none}@media (width>=640px){.admin-header__user-meta[data-v-4f03381b]{display:flex}}.admin-header__user-name[data-v-4f03381b]{text-overflow:ellipsis;white-space:nowrap;color:#0f172a;max-width:140px;font-size:13px;font-weight:700;overflow:hidden}.admin-header__user-role[data-v-4f03381b]{color:#94a3b8;font-size:11px;font-weight:500}.admin-header__chevron[data-v-4f03381b]{color:#94a3b8;font-size:10px}.admin-sider[data-v-4f03381b]{border-inline-end:1px solid #e8ecf2;top:0;box-shadow:-4px 0 24px #0f172a0a;background:#fff!important;height:100dvh!important;max-height:100dvh!important;position:sticky!important}.admin-sider[data-v-4f03381b] .ant-layout-sider-children{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.admin-sider__brand[data-v-4f03381b]{box-sizing:border-box;border-bottom:1px solid #eef1f6;flex-shrink:0;align-items:center;gap:10px;height:64px;padding:0 16px;display:flex}.admin-sider__logo[data-v-4f03381b]{background:#fff7f2;border:1px solid #ffe0cc;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 1px 2px #ff5a000f}.admin-sider__nav[data-v-4f03381b]{flex:1;height:calc(100dvh - 64px);min-height:0;padding:16px 12px 20px;overflow:hidden auto}.admin-sider__label[data-v-4f03381b]{letter-spacing:.06em;color:#94a3b8;margin:0 8px 10px;font-size:11px;font-weight:600}.admin-menu[data-v-4f03381b]{background:0 0!important;border:0!important}.admin-menu[data-v-4f03381b] .ant-menu-item{font-weight:500;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;color:#475569!important;border:1px solid #0000!important;border-radius:12px!important;align-items:center!important;height:48px!important;margin:0 0 6px!important;padding-inline:10px 14px!important;line-height:1.5!important;display:flex!important}.admin-menu[data-v-4f03381b] .ant-menu-item-icon{margin:0!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;box-shadow:none!important;background:0 0!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;margin-inline-end:12px!important;padding:0!important;font-size:0!important;line-height:0!important;display:inline-flex!important}.admin-menu[data-v-4f03381b] .admin-menu__icon{color:#64748b;background:#f1f5f9;transition:background .2s,color .2s,box-shadow .2s;border-radius:10px!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;margin:0!important;padding:0!important;line-height:0!important;display:inline-flex!important}.admin-menu[data-v-4f03381b] .admin-menu__icon .vx-icon,.admin-menu[data-v-4f03381b] .admin-menu__icon .anticon{vertical-align:0!important;width:20px!important;min-width:20px!important;max-width:20px!important;height:20px!important;min-height:20px!important;max-height:20px!important;box-shadow:none!important;color:inherit!important;background:0 0!important;justify-content:center!important;align-items:center!important;margin:0!important;margin-inline:0!important;padding:0!important;line-height:0!important;display:inline-flex!important}.admin-menu[data-v-4f03381b] .admin-menu__icon svg{width:20px!important;max-width:20px!important;height:20px!important;max-height:20px!important;margin:0 auto!important;display:block!important;transform:none!important}.admin-menu[data-v-4f03381b] .ant-menu-title-content{padding-inline-start:8px!important;align-items:center!important;margin-inline-start:0!important;padding-right:8px!important;line-height:1.5!important;display:flex!important}.admin-menu[data-v-4f03381b] .ant-menu-item:hover{color:#0f172a!important;background:#f8fafc!important;border-color:#eef1f6!important}.admin-menu[data-v-4f03381b] .ant-menu-item:hover:not(.ant-menu-item-selected) .admin-menu__icon{color:#475569!important;background:#e8eef7!important}.admin-menu[data-v-4f03381b] .ant-menu-item-selected{font-weight:700;box-shadow:0 4px 14px #ff5a001a;color:#c2410c!important;background:#fff7f2!important;border-color:#ffd7bf!important}.admin-menu[data-v-4f03381b] .ant-menu-item-selected .admin-menu__icon{color:#fff!important;background:#ff5a00!important;box-shadow:0 4px 12px #ff5a0059!important}.admin-menu[data-v-4f03381b] .ant-menu-item-selected:after{display:none!important}.mobile-app-bar[data-v-4f03381b]{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-bottom:1px solid #eef1f6;align-items:center;height:52px;padding-inline:14px;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #0f172a05}.mobile-app-bar__back-btn[data-v-4f03381b]{color:#334155;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;margin-inline-start:-6px;padding:6px 8px;transition:background .15s;display:inline-flex}.mobile-app-bar__back-btn[data-v-4f03381b]:active{background:#f1f5f9}.mobile-nav-bar[data-v-4f03381b]{z-index:40;height:60px;padding-bottom:env(safe-area-inset-bottom,0px);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border-top:1px solid #e2e8f0;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0f172a0a}.mobile-nav-item[data-v-4f03381b]{color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;height:100%;padding-block:4px;transition:color .15s;display:flex}.mobile-nav-item__icon[data-v-4f03381b]{justify-content:center;align-items:center;height:24px;transition:transform .15s;display:flex}.mobile-nav-item__label[data-v-4f03381b]{margin-top:2px;font-size:10px;font-weight:600;line-height:1}.mobile-nav-item--active[data-v-4f03381b]{color:#ff5a00}.mobile-nav-item--active .mobile-nav-item__icon[data-v-4f03381b]{transform:translateY(-1px)}@media (width<=1023px){.admin-content[data-v-4f03381b]{-webkit-overflow-scrolling:touch;background:#f8fafc!important;padding:0!important;overflow-y:auto!important}.admin-content--has-bottom-nav[data-v-4f03381b]{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important}.admin-page[data-v-4f03381b]{min-height:100%;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important}.admin-page[data-v-4f03381b]>.page-header{background:#fff!important;border-bottom:1px solid #eef1f6!important;padding:12px 14px!important}.admin-page[data-v-4f03381b]>:not(.ap):not(.page-header){padding:12px!important}} diff --git a/apps/admin/dist/assets/AdminLayout-j5VE2EZ9.js b/apps/admin/dist/assets/AdminLayout-j5VE2EZ9.js new file mode 100644 index 0000000..b3133ea --- /dev/null +++ b/apps/admin/dist/assets/AdminLayout-j5VE2EZ9.js @@ -0,0 +1 @@ +import{n as e,o as t,t as n}from"./VuesaxIcon-B2OgulS6.js";import{At as ee,Bt as r,Ct as i,It as a,Lt as o,Mt as s,Nt as c,Rt as l,Tt as u,_t as d,a as f,dt as p,ft as m,gt as h,ht as g,kt as _,lt as v,n as y,o as b,pt as x,t as S,ut as C,vt as w}from"./index-BuGK6ptM.js";import"./logo-BuUh917n.js";import{t as T}from"./format-B9MYDQJN.js";var te={class:`admin-sider__nav`},ne={class:`flex flex-col h-full`},re={class:`p-4 bg-white border-b border-slate-200/80`},ie={class:`flex items-center justify-between mb-3`},ae={class:`size-10 rounded-full bg-linear-to-br from-[#ff5a00] to-[#ff8a3d] text-white flex items-center justify-center font-bold text-sm shadow-xs`},oe={class:`min-w-0 flex-1`},se={class:`text-xs font-bold text-slate-800 truncate`},ce={class:`flex items-center gap-2 mt-0.5`},le={class:`text-[10px] text-orange-600 font-medium`},ue={class:`text-[10px] text-slate-400 font-mono`,dir:`ltr`},de={class:`flex-1 overflow-y-auto p-4 space-y-4`},fe={class:`grid grid-cols-2 gap-2`},pe={class:`size-9 rounded-lg bg-orange-50 text-orange-600 flex items-center justify-center mb-1.5`},E={class:`size-9 rounded-lg bg-orange-50 text-orange-600 flex items-center justify-center mb-1.5`},D={class:`size-9 rounded-lg bg-blue-50 text-blue-600 flex items-center justify-center mb-1.5`},O={key:0,class:`absolute top-2 end-2 size-2.5 rounded-full bg-orange-600 ring-2 ring-white animate-pulse`},k={class:`size-9 rounded-lg bg-amber-50 text-amber-600 flex items-center justify-center mb-1.5`},A={class:`grid grid-cols-2 gap-2`},j={class:`size-9 rounded-lg bg-purple-50 text-purple-600 flex items-center justify-center mb-1.5`},M={class:`size-9 rounded-lg bg-emerald-50 text-emerald-600 flex items-center justify-center mb-1.5`},N={key:0},P={class:`grid grid-cols-1 gap-2`},F={class:`size-9 rounded-lg bg-slate-100 text-slate-600 flex items-center justify-center shrink-0`},I={class:`p-3 bg-white border-t border-slate-200/80 space-y-2`},L=[`href`],R={class:`flex items-center gap-2`},z={class:`mobile-app-bar lg:!hidden`},B={key:0,class:`flex items-center justify-between w-full`},me={class:`text-xs font-bold text-slate-700`},he={class:`text-xs font-bold text-slate-800 truncate max-w-[140px]`},ge={key:1,class:`flex items-center justify-between w-full`},_e={class:`flex items-center gap-2.5`},ve={class:`leading-none`},ye={class:`text-[10px] font-medium text-orange-600 mt-0.5`},be={class:`flex items-center gap-1.5`},xe=[`href`],Se={class:`admin-header__start`},V={class:`admin-header__crumb`},Ce={class:`admin-header__crumb-page`},we={class:`admin-header__end`},Te=[`href`],Ee={type:`button`,class:`admin-header__user`},De={class:`admin-header__avatar`},Oe={class:`admin-header__user-meta`},ke={class:`admin-header__user-name`},Ae={key:0,class:`admin-header__user-role`},je={class:`admin-page`},Me={key:0,class:`mobile-nav-bar lg:!hidden`},Ne={class:`mobile-nav-item__icon`},Pe={class:`mobile-nav-item__icon`},Fe={class:`mobile-nav-item__icon relative`},Ie={key:0,class:`absolute -top-1 -end-1 size-2 rounded-full bg-orange-600 ring-2 ring-white`},Le={class:`mobile-nav-item__icon`},H=e(d({__name:`AdminLayout`,setup(e){let d=S(),H=f(),U=b(),W=a(!1),G=a(0);async function K(){try{let e=await y(`/admin/messages`,{query:{status:`NEW`,pageSize:1}});G.value=e.total}catch{}}i(K),s(()=>H.fullPath,K);let q=e=>()=>w(`span`,{class:`admin-menu__icon`},[w(n,{name:e,size:20})]),Re=v(()=>[{key:`dashboard`,icon:q(`chart-square`),label:`داشبورد`},{key:`products`,icon:q(`bag-2`),label:`محصولات`},{key:`categories`,icon:q(`category`),label:`دسته‌بندی‌ها`},{key:`sections`,icon:q(`row-vertical`),label:`بخش‌های سایت`},{key:`messages`,icon:q(`sms`),label:`پیام‌های تماس`},{key:`media`,icon:q(`gallery`),label:`کتابخانه رسانه`},...d.isAdmin?[{key:`users`,icon:q(`profile-2user`),label:`کاربران`}]:[]]),ze={"product-new":`products`,"product-edit":`products`,"category-new":`categories`,"category-edit":`categories`,"section-edit":`sections`},Be={dashboard:`داشبورد`,products:`محصولات`,"product-new":`محصول جدید`,"product-edit":`ویرایش محصول`,categories:`دسته‌بندی‌ها`,"category-new":`دسته‌بندی جدید`,"category-edit":`ویرایش دسته‌بندی`,sections:`بخش‌های سایت`,"section-edit":`ویرایش بخش`,messages:`پیام‌های تماس`,media:`کتابخانه رسانه`,users:`کاربران`,profile:`حساب کاربری`},J=v(()=>{let e=String(H.name??``);return[ze[e]??e]}),Y=v(()=>Be[String(H.name??``)]??`پنل مدیریت`),X=v(()=>(d.user?.name?.trim().charAt(0)||`ک`).slice(0,1)),Z=v(()=>{let e=String(H.name??``);return[`product-new`,`product-edit`,`category-new`,`category-edit`,`section-edit`].includes(e)}),Q=v(()=>{let e=String(H.name??``);return e.startsWith(`product`)?{name:`products`,label:`محصولات`}:e.startsWith(`category`)?{name:`categories`,label:`دسته‌بندی‌ها`}:e.startsWith(`section`)?{name:`sections`,label:`بخش‌های سایت`}:{name:`dashboard`,label:`داشبورد`}}),Ve=({key:e})=>{W.value=!1,U.push({name:String(e)})},$=e=>{W.value=!1,U.push({name:e})};return s(()=>H.fullPath,()=>W.value=!1),(e,i)=>{let a=_(`a-menu`),s=_(`a-layout-sider`),f=_(`a-drawer`),v=_(`a-menu-item`),y=_(`a-menu-divider`),b=_(`a-dropdown`),S=_(`a-layout-header`),w=_(`RouterView`),K=_(`a-layout-content`),q=_(`a-layout`);return u(),p(q,{class:`admin-shell`},{default:c(()=>[h(s,{width:248,breakpoint:`lg`,"collapsed-width":`0`,trigger:null,class:`admin-sider !hidden lg:!block`},{default:c(()=>[i[20]||=C(`div`,{class:`admin-sider__brand`},[C(`span`,{class:`admin-sider__logo`},[C(`img`,{src:`/logo.png`,alt:``,class:`size-7 object-contain`})]),C(`div`,{class:`leading-tight`},[C(`div`,{class:`text-[14px] font-bold text-[#0f172a]`},`ایمن پیشگامان`),C(`div`,{class:`text-[10px] font-medium tracking-wide text-[#94a3b8]`},`پنل مدیریت`)])],-1),C(`div`,te,[i[19]||=C(`div`,{class:`admin-sider__label`},`منوی اصلی`,-1),h(a,{class:`admin-menu`,mode:`inline`,"selected-keys":J.value,items:Re.value,onClick:Ve},null,8,[`selected-keys`,`items`])])]),_:1}),h(f,{open:W.value,"onUpdate:open":i[10]||=e=>W.value=e,placement:`right`,width:320,closable:!1,class:`mobile-hub-drawer`,"body-style":{padding:0,background:`#f8fafc`}},{default:c(()=>[C(`div`,ne,[C(`div`,re,[C(`div`,ie,[i[21]||=C(`div`,{class:`flex items-center gap-2.5`},[C(`span`,{class:`size-8 rounded-lg bg-orange-50 border border-orange-100 flex items-center justify-center`},[C(`img`,{src:`/logo.png`,alt:``,class:`size-5 object-contain`})]),C(`div`,null,[C(`div`,{class:`text-sm font-bold text-slate-800`},`ایمن پیشگامان`),C(`div`,{class:`text-[10px] text-slate-400`},`اپلیکیشن مدیریت`)])],-1),C(`button`,{type:`button`,class:`size-8 rounded-full flex items-center justify-center text-slate-400 hover:text-slate-600 hover:bg-slate-100 transition`,onClick:i[0]||=e=>W.value=!1},[h(n,{name:`close-circle`,size:20})])]),C(`div`,{class:`flex items-center gap-3 p-2.5 rounded-xl bg-slate-50 border border-slate-100 cursor-pointer active:scale-[0.99] transition`,onClick:i[1]||=e=>$(`profile`)},[C(`span`,ae,r(X.value),1),C(`div`,oe,[C(`div`,se,r(o(d).user?.name),1),C(`div`,ce,[C(`span`,le,r(o(d).user&&o(t)[o(d).user.role]),1),C(`span`,ue,r(o(d).user?.phone),1)])]),h(n,{name:`arrow-left`,size:14,class:`text-slate-400`})])]),C(`div`,de,[C(`div`,null,[i[30]||=C(`div`,{class:`text-[11px] font-bold text-slate-400 mb-2.5 px-1`},`بخش‌ها و کاتالوگ`,-1),C(`div`,fe,[C(`button`,{type:`button`,class:l([`flex flex-col items-center justify-center p-3 rounded-xl bg-white border border-slate-200/70 shadow-2xs hover:border-orange-200 active:bg-orange-50/40 transition`,{"!border-orange-500 !bg-orange-50/30 font-bold text-orange-600":o(H).name===`dashboard`}]),onClick:i[2]||=e=>$(`dashboard`)},[C(`div`,pe,[h(n,{name:`chart-square`,size:18})]),i[22]||=C(`span`,{class:`text-xs text-slate-700`},`داشبورد`,-1),i[23]||=C(`span`,{class:`text-[9px] text-slate-400 mt-0.5`},`نمای کلی آمار`,-1)],2),C(`button`,{type:`button`,class:l([`flex flex-col items-center justify-center p-3 rounded-xl bg-white border border-slate-200/70 shadow-2xs hover:border-orange-200 active:bg-orange-50/40 transition`,{"!border-orange-500 !bg-orange-50/30 font-bold text-orange-600":J.value.includes(`products`)}]),onClick:i[3]||=e=>$(`products`)},[C(`div`,E,[h(n,{name:`bag-2`,size:18})]),i[24]||=C(`span`,{class:`text-xs text-slate-700`},`محصولات`,-1),i[25]||=C(`span`,{class:`text-[9px] text-slate-400 mt-0.5`},`کاتالوگ و موجودی`,-1)],2),C(`button`,{type:`button`,class:l([`flex flex-col items-center justify-center p-3 rounded-xl bg-white border border-slate-200/70 shadow-2xs hover:border-blue-200 active:bg-blue-50/40 transition`,{"!border-blue-500 !bg-blue-50/30 font-bold text-blue-600":J.value.includes(`categories`)}]),onClick:i[4]||=e=>$(`categories`)},[C(`div`,D,[h(n,{name:`category`,size:18})]),i[26]||=C(`span`,{class:`text-xs text-slate-700`},`دسته‌بندی‌ها`,-1),i[27]||=C(`span`,{class:`text-[9px] text-slate-400 mt-0.5`},`گروه‌های کالا`,-1)],2),C(`button`,{type:`button`,class:l([`flex flex-col items-center justify-center p-3 rounded-xl bg-white border border-slate-200/70 shadow-2xs hover:border-amber-200 active:bg-amber-50/40 transition relative`,{"!border-amber-500 !bg-amber-50/30 font-bold text-amber-600":o(H).name===`messages`}]),onClick:i[5]||=e=>$(`messages`)},[G.value>0?(u(),x(`span`,O)):m(``,!0),C(`div`,k,[h(n,{name:`sms`,size:18})]),i[28]||=C(`span`,{class:`text-xs text-slate-700`},`پیام‌های تماس`,-1),i[29]||=C(`span`,{class:`text-[9px] text-slate-400 mt-0.5`},`درخواست‌های مشاوره`,-1)],2)])]),C(`div`,null,[i[35]||=C(`div`,{class:`text-[11px] font-bold text-slate-400 mb-2.5 px-1`},`محتوا و وب‌سایت`,-1),C(`div`,A,[C(`button`,{type:`button`,class:l([`flex flex-col items-center justify-center p-3 rounded-xl bg-white border border-slate-200/70 shadow-2xs hover:border-purple-200 active:bg-purple-50/40 transition`,{"!border-purple-500 !bg-purple-50/30 font-bold text-purple-600":o(H).name===`media`}]),onClick:i[6]||=e=>$(`media`)},[C(`div`,j,[h(n,{name:`gallery`,size:18})]),i[31]||=C(`span`,{class:`text-xs text-slate-700`},`کتابخانه رسانه`,-1),i[32]||=C(`span`,{class:`text-[9px] text-slate-400 mt-0.5`},`تصاویر WebP`,-1)],2),C(`button`,{type:`button`,class:l([`flex flex-col items-center justify-center p-3 rounded-xl bg-white border border-slate-200/70 shadow-2xs hover:border-emerald-200 active:bg-emerald-50/40 transition`,{"!border-emerald-500 !bg-emerald-50/30 font-bold text-emerald-600":J.value.includes(`sections`)}]),onClick:i[7]||=e=>$(`sections`)},[C(`div`,M,[h(n,{name:`row-vertical`,size:18})]),i[33]||=C(`span`,{class:`text-xs text-slate-700`},`بخش‌های سایت`,-1),i[34]||=C(`span`,{class:`text-[9px] text-slate-400 mt-0.5`},`تنظیمات صفحه اصلی`,-1)],2)])]),o(d).isAdmin?(u(),x(`div`,N,[i[37]||=C(`div`,{class:`text-[11px] font-bold text-slate-400 mb-2.5 px-1`},`مدیریت سیستم`,-1),C(`div`,P,[C(`button`,{type:`button`,class:l([`flex items-center gap-3 p-3 rounded-xl bg-white border border-slate-200/70 shadow-2xs hover:border-slate-300 active:bg-slate-50 transition text-right`,{"!border-orange-500 font-bold":o(H).name===`users`}]),onClick:i[8]||=e=>$(`users`)},[C(`div`,F,[h(n,{name:`profile-2user`,size:18})]),i[36]||=C(`div`,{class:`flex-1 min-w-0`},[C(`div`,{class:`text-xs font-bold text-slate-800`},`مدیریت کاربران پنل`),C(`div`,{class:`text-[10px] text-slate-400`},`حساب‌ها و سطح دسترسی‌ها`)],-1),h(n,{name:`arrow-left`,size:14,class:`text-slate-400`})],2)])])):m(``,!0)]),C(`div`,I,[C(`a`,{href:o(T),target:`_blank`,rel:`noopener`,class:`flex items-center justify-between p-2.5 rounded-lg text-slate-600 hover:bg-slate-50 text-xs font-semibold transition`},[C(`span`,R,[h(n,{name:`export`,size:16,class:`text-slate-400`}),i[38]||=g(` مشاهده وب‌سایت اصلی `,-1)]),h(n,{name:`arrow-left`,size:12,class:`text-slate-300`})],8,L),C(`button`,{type:`button`,class:`w-full flex items-center justify-center gap-2 p-2.5 rounded-lg text-rose-600 hover:bg-rose-50 text-xs font-semibold transition`,onClick:i[9]||=e=>o(d).logout()},[h(n,{name:`logout`,size:16}),i[39]||=g(` خروج از حساب کاربری `,-1)])])])]),_:1},8,[`open`]),h(q,null,{default:c(()=>[C(`header`,z,[Z.value?(u(),x(`div`,B,[C(`button`,{type:`button`,class:`mobile-app-bar__back-btn`,onClick:i[11]||=e=>o(U).push(Q.value)},[h(n,{name:`arrow-right`,size:20}),C(`span`,me,`بازگشت به `+r(Q.value.label),1)]),C(`div`,he,r(Y.value),1)])):(u(),x(`div`,ge,[C(`div`,_e,[i[41]||=C(`span`,{class:`size-8 rounded-lg bg-orange-50 border border-orange-100 flex items-center justify-center`},[C(`img`,{src:`/logo.png`,alt:``,class:`size-5 object-contain`})],-1),C(`div`,ve,[i[40]||=C(`div`,{class:`text-xs font-extrabold text-slate-800`},`ایمن پیشگامان`,-1),C(`div`,ye,r(Y.value),1)])]),C(`div`,be,[C(`a`,{href:o(T),target:`_blank`,rel:`noopener`,class:`size-8 rounded-lg flex items-center justify-center text-slate-500 hover:text-orange-600 hover:bg-orange-50 transition`,title:`مشاهده سایت`},[h(n,{name:`export`,size:18})],8,xe),C(`button`,{type:`button`,class:`size-8 rounded-lg bg-linear-to-br from-[#ff5a00] to-[#ff8a3d] text-white flex items-center justify-center font-bold text-xs shadow-xs`,onClick:i[12]||=e=>o(U).push({name:`profile`})},r(X.value),1)])]))]),h(S,{class:`admin-header !hidden lg:!flex`},{default:c(()=>[C(`div`,Se,[C(`div`,V,[i[42]||=C(`span`,{class:`admin-header__crumb-kicker`},`پنل مدیریت`,-1),i[43]||=C(`span`,{class:`admin-header__crumb-sep`,"aria-hidden":`true`},`/`,-1),C(`span`,Ce,r(Y.value),1)])]),C(`div`,we,[C(`a`,{href:o(T),target:`_blank`,rel:`noopener`,class:`admin-header__site`},[h(n,{name:`export`,size:16}),i[44]||=C(`span`,null,`مشاهده سایت`,-1)],8,Te),i[47]||=C(`div`,{class:`admin-header__divider`,"aria-hidden":`true`},null,-1),h(b,{placement:`bottomLeft`,trigger:[`click`]},{overlay:c(()=>[h(a,{class:`admin-header__dropdown`},{default:c(()=>[h(v,{key:`profile`,onClick:i[13]||=e=>o(U).push({name:`profile`})},{default:c(()=>[h(n,{name:`user`,size:16}),i[45]||=g(` حساب کاربری `,-1)]),_:1}),h(y),h(v,{key:`logout`,danger:``,onClick:i[14]||=e=>o(d).logout()},{default:c(()=>[h(n,{name:`logout`,size:16}),i[46]||=g(` خروج `,-1)]),_:1})]),_:1})]),default:c(()=>[C(`button`,Ee,[C(`span`,De,r(X.value),1),C(`span`,Oe,[C(`span`,ke,r(o(d).user?.name),1),o(d).user?(u(),x(`span`,Ae,r(o(t)[o(d).user.role]),1)):m(``,!0)]),h(n,{name:`arrow-down`,size:12,class:`admin-header__chevron`})])]),_:1})])]),_:1}),h(K,{class:l([`admin-content`,{"admin-content--has-bottom-nav":!Z.value}])},{default:c(()=>[C(`div`,je,[h(w,null,{default:c(({Component:e,route:t})=>[(u(),p(ee(e),{key:t.path}))]),_:1})])]),_:1},8,[`class`]),Z.value?m(``,!0):(u(),x(`nav`,Me,[C(`button`,{type:`button`,class:l([`mobile-nav-item`,{"mobile-nav-item--active":o(H).name===`dashboard`}]),onClick:i[15]||=e=>$(`dashboard`)},[C(`div`,Ne,[h(n,{name:`chart-square`,size:20})]),i[48]||=C(`span`,{class:`mobile-nav-item__label`},`داشبورد`,-1)],2),C(`button`,{type:`button`,class:l([`mobile-nav-item`,{"mobile-nav-item--active":J.value.includes(`products`)}]),onClick:i[16]||=e=>$(`products`)},[C(`div`,Pe,[h(n,{name:`bag-2`,size:20})]),i[49]||=C(`span`,{class:`mobile-nav-item__label`},`محصولات`,-1)],2),C(`button`,{type:`button`,class:l([`mobile-nav-item`,{"mobile-nav-item--active":o(H).name===`messages`}]),onClick:i[17]||=e=>$(`messages`)},[C(`div`,Fe,[h(n,{name:`sms`,size:20}),G.value>0?(u(),x(`span`,Ie)):m(``,!0)]),i[50]||=C(`span`,{class:`mobile-nav-item__label`},`پیام‌ها`,-1)],2),C(`button`,{type:`button`,class:l([`mobile-nav-item`,{"mobile-nav-item--active":W.value||[`categories`,`sections`,`media`,`users`,`profile`].includes(String(o(H).name??``))}]),onClick:i[18]||=e=>W.value=!0},[C(`div`,Le,[h(n,{name:`category`,size:20})]),i[51]||=C(`span`,{class:`mobile-nav-item__label`},`ابزارها`,-1)],2)]))]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-4f03381b`]]);export{H as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/CategoriesPage-DSZGpYF5.js b/apps/admin/dist/assets/CategoriesPage-DSZGpYF5.js new file mode 100644 index 0000000..079b165 --- /dev/null +++ b/apps/admin/dist/assets/CategoriesPage-DSZGpYF5.js @@ -0,0 +1 @@ +import{t as e}from"./VuesaxIcon-B2OgulS6.js";import{Bt as t,Ct as n,Dt as r,It as i,Lt as a,Nt as o,Tt as s,_t as c,ct as l,dt as u,ft as d,gt as f,ht as p,i as m,kt as h,n as g,ot as _,pt as v,t as y,ut as b}from"./index-BuGK6ptM.js";import{r as x,t as S}from"./format-B9MYDQJN.js";import{t as C}from"./PageHeader-3Ryvg2HD.js";var w=[`src`],T={class:`text-xs text-gray-400`,dir:`ltr`},E=[`href`],D={class:`mobile-categories-view block lg:!hidden pb-24`},O={key:1,class:`space-y-3`},k={class:`flex items-start gap-3`},A=[`src`],j={key:1,class:`size-14 rounded-lg bg-slate-100 shrink-0 flex items-center justify-center text-slate-300`},M={class:`min-w-0 flex-1`},N={class:`flex items-start justify-between gap-2`},P={class:`text-[10px] font-mono text-slate-500 bg-slate-100 px-1.5 py-0.5 rounded shrink-0`,dir:`ltr`},F={class:`flex items-center gap-2 mt-1.5 text-xs`},I={class:`flex items-center justify-between border-t border-slate-100 pt-2.5 mt-3`},L={class:`flex items-center gap-1`},R=[`disabled`,`onClick`],z=[`disabled`,`onClick`],B={class:`flex items-center gap-1.5`},V={type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 active:bg-slate-300 transition`,title:`ویرایش`},H=[`href`],U={type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 active:bg-slate-300 transition`,title:`مشاهده در سایت`},W=[`disabled`,`title`],G=c({__name:`CategoriesPage`,setup(c){let G=y(),K=i([]),q=i(!1);async function J(){q.value=!0;try{K.value=await g(`/admin/categories`)}catch(e){_.error(m(e))}finally{q.value=!1}}async function Y(e,t){let n=[...K.value],[r]=n.splice(e,1);n.splice(e+t,0,r),K.value=n;try{await g(`/admin/categories/reorder`,{method:`POST`,body:{ids:n.map(e=>e.id)}})}catch(e){_.error(m(e)),await J()}}async function X(e){try{await g(`/admin/categories/${e.id}`,{method:`DELETE`}),_.success(`دسته حذف شد`),await J()}catch(e){_.error(m(e))}}let Z=[{title:`تصویر`,key:`cover`,width:80},{title:`نام`,key:`name`},{title:`کد`,dataIndex:`code`,width:100},{title:`محصولات`,key:`products`,width:100},{title:`وضعیت`,key:`status`,width:110},{title:`ترتیب`,key:`order`,width:100},{title:``,key:`actions`,width:170}];return n(J),(n,i)=>{let c=h(`a-button`),m=h(`RouterLink`),g=h(`a-tag`),_=h(`a-space`),y=h(`a-popconfirm`),J=h(`a-table`),Q=h(`a-card`),$=h(`a-empty`),ee=h(`a-spin`);return s(),v(l,null,[f(C,{title:`دسته‌بندی‌ها`,subtitle:`ترتیب دسته‌ها همان ترتیب نمایش در سایت است`},{default:o(()=>[f(m,{to:{name:`category-new`}},{default:o(()=>[f(c,{type:`primary`},{icon:o(()=>[f(e,{name:`add`,size:16})]),default:o(()=>[i[0]||=p(` دسته جدید `,-1)]),_:1})]),_:1})]),_:1}),f(Q,{class:`!hidden lg:!block`,"body-style":{padding:0}},{default:o(()=>[f(J,{columns:Z,"data-source":K.value,loading:q.value,"row-key":`id`,pagination:!1,scroll:{x:800}},{bodyCell:o(({column:n,record:r,index:i})=>[n.key===`cover`?(s(),v(l,{key:0},[r.coverImage?(s(),v(`img`,{key:0,src:r.coverImage.url,alt:``,class:`size-12 rounded object-cover`},null,8,w)):d(``,!0)],64)):n.key===`name`?(s(),v(l,{key:1},[f(m,{to:{name:`category-edit`,params:{id:r.id}},class:`font-bold`},{default:o(()=>[p(t(r.name),1)]),_:2},1032,[`to`]),b(`div`,T,t(r.slug),1)],64)):n.key===`products`?(s(),u(m,{key:2,to:{name:`products`,query:{categoryId:r.id}}},{default:o(()=>[p(t(a(x)(r.productCount)),1)]),_:2},1032,[`to`])):n.key===`status`?(s(),u(g,{key:3,color:r.isPublished?`green`:`default`},{default:o(()=>[p(t(r.isPublished?`منتشرشده`:`مخفی`),1)]),_:2},1032,[`color`])):n.key===`order`?(s(),u(_,{key:4,size:4},{default:o(()=>[f(c,{size:`small`,disabled:i===0,onClick:e=>Y(i,-1)},{icon:o(()=>[f(e,{name:`arrow-up`,size:16})]),_:1},8,[`disabled`,`onClick`]),f(c,{size:`small`,disabled:i===K.value.length-1,onClick:e=>Y(i,1)},{icon:o(()=>[f(e,{name:`arrow-down`,size:16})]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)):n.key===`actions`?(s(),u(_,{key:5,size:4},{default:o(()=>[f(m,{to:{name:`category-edit`,params:{id:r.id}}},{default:o(()=>[f(c,{size:`small`},{icon:o(()=>[f(e,{name:`edit-2`,size:16})]),_:1})]),_:1},8,[`to`]),b(`a`,{href:`${a(S)}/categories/${r.slug}`,target:`_blank`,rel:`noopener`},[f(c,{size:`small`,title:`مشاهده در سایت`},{icon:o(()=>[f(e,{name:`export`,size:16})]),_:1})],8,E),a(G).isAdmin?(s(),u(y,{key:0,title:`این دسته حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:e=>X(r)},{default:o(()=>[f(c,{size:`small`,danger:``,disabled:r.productCount>0,title:r.productCount>0?`ابتدا محصولات این دسته را حذف یا جابه‌جا کنید`:`حذف`},{icon:o(()=>[f(e,{name:`trash`,size:16})]),_:1},8,[`disabled`,`title`])]),_:2},1032,[`onConfirm`])):d(``,!0)]),_:2},1024)):d(``,!0)]),_:1},8,[`data-source`,`loading`])]),_:1}),b(`div`,D,[f(ee,{spinning:q.value},{default:o(()=>[!K.value.length&&!q.value?(s(),u($,{key:0,description:`دسته‌بندی ثبت نشده است`,class:`py-12`})):(s(),v(`div`,O,[(s(!0),v(l,null,r(K.value,(n,r)=>(s(),v(`div`,{key:n.id,class:`bg-white rounded-xl border border-slate-200/80 p-3.5 shadow-2xs transition`},[b(`div`,k,[n.coverImage?(s(),v(`img`,{key:0,src:n.coverImage.url,alt:``,class:`size-14 rounded-lg object-cover shrink-0 border border-slate-100 bg-slate-50`},null,8,A)):(s(),v(`div`,j,[f(e,{name:`category`,size:22})])),b(`div`,M,[b(`div`,N,[f(m,{to:{name:`category-edit`,params:{id:n.id}},class:`font-bold text-[14px] text-slate-800 hover:text-orange-600 line-clamp-1`},{default:o(()=>[p(t(n.name),1)]),_:2},1032,[`to`]),b(`span`,P,t(n.code),1)]),b(`div`,F,[f(m,{to:{name:`products`,query:{categoryId:n.id}},class:`inline-flex items-center gap-1 text-orange-600 font-bold bg-orange-50 px-2 py-0.5 rounded-full`},{default:o(()=>[p(t(a(x)(n.productCount))+` محصول `,1)]),_:2},1032,[`to`]),f(g,{color:n.isPublished?`green`:`default`,class:`!m-0 !text-[10px]`},{default:o(()=>[p(t(n.isPublished?`منتشرشده`:`مخفی`),1)]),_:2},1032,[`color`])])])]),b(`div`,I,[b(`div`,L,[i[1]||=b(`span`,{class:`text-[11px] text-slate-400 me-1`},`ترتیب:`,-1),b(`button`,{type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 disabled:opacity-30 disabled:pointer-events-none active:bg-slate-300 transition`,disabled:r===0,onClick:e=>Y(r,-1)},[f(e,{name:`arrow-up`,size:16})],8,R),b(`button`,{type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 disabled:opacity-30 disabled:pointer-events-none active:bg-slate-300 transition`,disabled:r===K.value.length-1,onClick:e=>Y(r,1)},[f(e,{name:`arrow-down`,size:16})],8,z)]),b(`div`,B,[f(m,{to:{name:`category-edit`,params:{id:n.id}}},{default:o(()=>[b(`button`,V,[f(e,{name:`edit-2`,size:16})])]),_:1},8,[`to`]),b(`a`,{href:`${a(S)}/categories/${n.slug}`,target:`_blank`,rel:`noopener`},[b(`button`,U,[f(e,{name:`export`,size:16})])],8,H),a(G).isAdmin?(s(),u(y,{key:0,title:`این دسته حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:e=>X(n)},{default:o(()=>[b(`button`,{type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-rose-500 bg-rose-50 hover:bg-rose-100 disabled:opacity-30 disabled:pointer-events-none active:bg-rose-200 transition`,disabled:n.productCount>0,title:n.productCount>0?`ابتدا محصولات این دسته را حذف کنید`:`حذف`},[f(e,{name:`trash`,size:16})],8,W)]),_:2},1032,[`onConfirm`])):d(``,!0)])])]))),128))]))]),_:1},8,[`spinning`]),f(m,{to:{name:`category-new`},class:`fixed start-4 bottom-[72px] z-30 flex items-center gap-2 px-4 py-2.5 rounded-full bg-linear-to-r from-[#ff5a00] to-[#ff7a29] text-white font-bold text-xs shadow-lg shadow-orange-500/30 active:scale-95 transition`},{default:o(()=>[f(e,{name:`add`,size:18}),i[2]||=b(`span`,null,`دسته جدید`,-1)]),_:1})])],64)}}});export{G as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/CategoryEditPage-B4VYwreC.js b/apps/admin/dist/assets/CategoryEditPage-B4VYwreC.js new file mode 100644 index 0000000..27ef79c --- /dev/null +++ b/apps/admin/dist/assets/CategoryEditPage-B4VYwreC.js @@ -0,0 +1 @@ +import{_ as e,t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,Ct as r,It as i,Lt as a,Nt as o,Rt as s,Tt as c,_t as l,a as u,ct as d,ft as f,gt as p,ht as m,i as h,kt as g,lt as _,n as v,o as y,ot as b,pt as x,st as S,ut as C}from"./index-BuGK6ptM.js";import{t as w}from"./PageHeader-3Ryvg2HD.js";import{n as T,t as E}from"./FormField-CiVT7mqC.js";import{t as D}from"./IconSelect-rJLPzIXV.js";import{n as ee,t as te}from"./ListEditor-C8F91lSJ.js";import{t as ne}from"./slug-Flyc3fOh.js";var re={class:`lg:hidden mb-4 overflow-x-auto pb-1 scrollbar-none`},ie={class:`flex items-center gap-1.5 min-w-max bg-gray-100 p-1 rounded-xl`},O={class:`rounded-full bg-gray-200 px-1.5 py-0.2 text-[10px]`},k={class:`grid gap-6 xl:grid-cols-3`},A={class:`space-y-6 xl:col-span-2`},j={class:`grid gap-x-4 md:grid-cols-2`},M={class:`grid gap-x-4 md:grid-cols-2`},N={class:`space-y-6`},P={class:`ms-2`},F={class:`lg:hidden fixed bottom-0 inset-x-0 z-30 border-t border-gray-200 bg-white/95 px-4 py-2.5 backdrop-blur-md shadow-lg flex items-center justify-between gap-3`},I={class:`flex items-center gap-2`},L={class:`text-xs font-medium text-gray-700`},R={class:`flex items-center gap-2`},z=[`href`],B=l({__name:`CategoryEditPage`,setup(l){let B=u(),V=y(),H=_(()=>B.params.id?Number(B.params.id):null),{model:U,validate:W,handleError:G,reset:K}=T(e,{slug:``,code:``,name:``,nameEn:``,shortDesc:``,fullDesc:``,icon:``,coverImageId:null,isPublished:!0,seoTitle:``,seoDescription:``,groups:[]}),q=i(null),J=i({}),Y=i(!1),X=i(!1);async function Z(){if(H.value){Y.value=!0;try{let e=await v(`/admin/categories/${H.value}`);K({slug:e.slug,code:e.code,name:e.name,nameEn:e.nameEn,shortDesc:e.shortDesc,fullDesc:e.fullDesc,icon:e.icon,coverImageId:e.coverImageId,isPublished:e.isPublished,seoTitle:e.seoTitle,seoDescription:e.seoDescription,groups:e.groups.map(e=>({id:e.id,slug:e.slug,name:e.name,desc:e.desc}))}),q.value=e.coverImage,J.value=Object.fromEntries(e.groups.map(e=>[e.id,e.productCount]))}catch(e){b.error(h(e))}finally{Y.value=!1}}}function ae(e){q.value=e,U.value.coverImageId=e.id}async function Q(){let e=W();if(e){X.value=!0;try{let t=await v(H.value?`/admin/categories/${H.value}`:`/admin/categories`,{method:H.value?`PUT`:`POST`,body:e});b.success(`دسته ذخیره شد`),H.value||await V.replace({name:`category-edit`,params:{id:t.id}}),await Z()}catch(e){G(e)}finally{X.value=!1}}}let oe=()=>({slug:``,name:``,desc:``}),se=e=>{let t=e.id?J.value[e.id]:0;return t?`${e.name} (${t} محصول)`:e.name},$=i(`main`);return r(Z),(e,r)=>{let i=g(`a-button`),l=g(`a-input`),u=g(`a-textarea`),h=g(`a-card`),_=g(`a-switch`),v=g(`a-form`),y=g(`a-spin`);return c(),x(d,null,[p(w,{title:H.value?`ویرایش دسته: ${a(U).name}`:`دسته جدید`,back:`/categories`},{default:o(()=>[p(i,{type:`primary`,loading:X.value,onClick:Q},{icon:o(()=>[p(t,{name:`save-2`,size:16})]),default:o(()=>[r[18]||=m(` ذخیره `,-1)]),_:1},8,[`loading`])]),_:1},8,[`title`]),C(`div`,re,[C(`div`,ie,[C(`button`,{type:`button`,class:s([`rounded-lg px-3 py-1.5 text-xs font-bold transition-all`,$.value===`main`?`bg-white text-orange-600 shadow-sm`:`text-gray-600`]),onClick:r[0]||=e=>$.value=`main`},` اطلاعات اصلی `,2),C(`button`,{type:`button`,class:s([`rounded-lg px-3 py-1.5 text-xs font-bold transition-all flex items-center gap-1`,$.value===`groups`?`bg-white text-orange-600 shadow-sm`:`text-gray-600`]),onClick:r[1]||=e=>$.value=`groups`},[r[19]||=C(`span`,null,`زیرگروه‌ها`,-1),C(`span`,O,n(a(U).groups.length),1)],2),C(`button`,{type:`button`,class:s([`rounded-lg px-3 py-1.5 text-xs font-bold transition-all`,$.value===`media`?`bg-white text-orange-600 shadow-sm`:`text-gray-600`]),onClick:r[2]||=e=>$.value=`media`},` کاور و آیکون `,2),C(`button`,{type:`button`,class:s([`rounded-lg px-3 py-1.5 text-xs font-bold transition-all`,$.value===`seo`?`bg-white text-orange-600 shadow-sm`:`text-gray-600`]),onClick:r[3]||=e=>$.value=`seo`},` سئو و انتشار `,2)])]),p(y,{spinning:Y.value},{default:o(()=>[p(v,{layout:`vertical`,class:`pb-20 lg:pb-0`,onSubmit:S(Q,[`prevent`])},{default:o(()=>[C(`div`,k,[C(`div`,A,[p(h,{title:`اطلاعات اصلی`,class:s($.value!==`main`&&`max-lg:hidden`)},{default:o(()=>[C(`div`,j,[p(E,{path:`name`,label:`نام دسته`,required:``},{default:o(()=>[p(l,{value:a(U).name,"onUpdate:value":r[4]||=e=>a(U).name=e},null,8,[`value`])]),_:1}),p(E,{path:`nameEn`,label:`نام انگلیسی`,hint:`زیر نام دسته نمایش داده می‌شود`},{default:o(()=>[p(l,{value:a(U).nameEn,"onUpdate:value":r[5]||=e=>a(U).nameEn=e,class:`ltr-input`},null,8,[`value`])]),_:1}),p(E,{path:`slug`,label:`اسلاگ (آدرس صفحه)`,hint:`آدرس: /categories/${a(U).slug||`...`}`,required:``},{default:o(()=>[p(l,{value:a(U).slug,"onUpdate:value":r[7]||=e=>a(U).slug=e,class:`ltr-input`},{suffix:o(()=>[C(`a`,{class:`text-xs`,onClick:r[6]||=e=>a(U).slug=a(ne)(a(U).nameEn)},`ساخت از نام انگلیسی`)]),_:1},8,[`value`])]),_:1},8,[`hint`]),p(E,{path:`code`,label:`کد دسته`,required:``},{default:o(()=>[p(l,{value:a(U).code,"onUpdate:value":r[8]||=e=>a(U).code=e,class:`ltr-input`,placeholder:`IP-C09`},null,8,[`value`])]),_:1}),p(E,{path:`shortDesc`,label:`توضیح کوتاه`,class:`md:col-span-2`},{default:o(()=>[p(u,{value:a(U).shortDesc,"onUpdate:value":r[9]||=e=>a(U).shortDesc=e,"auto-size":{minRows:2,maxRows:4}},null,8,[`value`])]),_:1}),p(E,{path:`fullDesc`,label:`توضیح کامل (بالای صفحه دسته)`,class:`md:col-span-2`},{default:o(()=>[p(u,{value:a(U).fullDesc,"onUpdate:value":r[10]||=e=>a(U).fullDesc=e,"auto-size":{minRows:3,maxRows:8}},null,8,[`value`])]),_:1})])]),_:1},8,[`class`]),p(h,{title:`زیرگروه‌ها`,"body-style":{background:`#fafafa`},class:s($.value!==`groups`&&`max-lg:hidden`)},{default:o(()=>[r[20]||=C(`p`,{class:`mb-4 text-sm text-gray-500`},` زیرگروه‌ها در صفحه دسته به‌صورت فیلتر نمایش داده می‌شوند. با حذف یک زیرگروه، محصولات آن بدون زیرگروه می‌مانند. `,-1),p(te,{modelValue:a(U).groups,"onUpdate:modelValue":r[11]||=e=>a(U).groups=e,create:oe,"add-label":`افزودن زیرگروه`,"item-title":se},{default:o(({item:e,index:t})=>[C(`div`,M,[p(E,{path:`groups.${t}.name`,label:`نام`,required:``},{default:o(()=>[p(l,{value:e.name,"onUpdate:value":t=>e.name=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),p(E,{path:`groups.${t}.slug`,label:`اسلاگ`,required:``},{default:o(()=>[p(l,{value:e.slug,"onUpdate:value":t=>e.slug=t,class:`ltr-input`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),p(E,{path:`groups.${t}.desc`,label:`توضیح`,class:`md:col-span-2`},{default:o(()=>[p(u,{value:e.desc,"onUpdate:value":t=>e.desc=t,"auto-size":{minRows:1,maxRows:4}},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`])]),_:1},8,[`class`])]),C(`div`,N,[p(h,{title:`انتشار`,class:s($.value!==`seo`&&`max-lg:hidden`)},{default:o(()=>[p(E,{path:`isPublished`},{default:o(()=>[p(_,{checked:a(U).isPublished,"onUpdate:checked":r[12]||=e=>a(U).isPublished=e},null,8,[`checked`]),C(`span`,P,n(a(U).isPublished?`در سایت نمایش داده می‌شود`:`مخفی`),1)]),_:1})]),_:1},8,[`class`]),p(h,{title:`تصویر کاور`,class:s($.value!==`media`&&`max-lg:hidden`)},{default:o(()=>[p(E,{path:`coverImageId`},{default:o(()=>[p(ee,{url:q.value?.url,clearable:``,onPick:ae,onClear:r[13]||=e=>{q.value=null,a(U).coverImageId=null}},null,8,[`url`])]),_:1})]),_:1},8,[`class`]),p(h,{title:`آیکون`,class:s($.value!==`media`&&`max-lg:hidden`)},{default:o(()=>[p(E,{path:`icon`},{default:o(()=>[p(D,{modelValue:a(U).icon,"onUpdate:modelValue":r[14]||=e=>a(U).icon=e,"allow-clear":``},null,8,[`modelValue`])]),_:1})]),_:1},8,[`class`]),p(h,{title:`سئو`,class:s($.value!==`seo`&&`max-lg:hidden`)},{default:o(()=>[p(E,{path:`seoTitle`,label:`عنوان صفحه`,hint:`خالی = نام دسته`},{default:o(()=>[p(l,{value:a(U).seoTitle,"onUpdate:value":r[15]||=e=>a(U).seoTitle=e,maxlength:120,"show-count":``},null,8,[`value`])]),_:1}),p(E,{path:`seoDescription`,label:`توضیحات متا`,hint:`خالی = توضیح کامل`},{default:o(()=>[p(u,{value:a(U).seoDescription,"onUpdate:value":r[16]||=e=>a(U).seoDescription=e,maxlength:300,"show-count":``,"auto-size":{minRows:3}},null,8,[`value`])]),_:1})]),_:1},8,[`class`])])])]),_:1})]),_:1},8,[`spinning`]),C(`div`,F,[C(`div`,I,[p(_,{checked:a(U).isPublished,"onUpdate:checked":r[17]||=e=>a(U).isPublished=e,size:`small`},null,8,[`checked`]),C(`span`,L,n(a(U).isPublished?`انتشار`:`پیش‌نویس`),1)]),C(`div`,R,[a(U).slug?(c(),x(`a`,{key:0,href:`/categories/${a(U).slug}`,target:`_blank`,rel:`noopener`},[p(i,{size:`middle`,class:`!px-3`,title:`مشاهده در سایت`},{icon:o(()=>[p(t,{name:`eye`,size:16})]),_:1})],8,z)):f(``,!0),p(i,{type:`primary`,size:`middle`,class:`!font-bold !px-5`,loading:X.value,onClick:Q},{icon:o(()=>[p(t,{name:`save-2`,size:16})]),default:o(()=>[r[21]||=m(` ذخیره تغییرات `,-1)]),_:1},8,[`loading`])])])],64)}}});export{B as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/DashboardPage-Do-v_tLH.js b/apps/admin/dist/assets/DashboardPage-Do-v_tLH.js new file mode 100644 index 0000000..3831aec --- /dev/null +++ b/apps/admin/dist/assets/DashboardPage-Do-v_tLH.js @@ -0,0 +1 @@ +import{i as e,t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,Ct as ee,Dt as r,It as i,Lt as a,Nt as o,Rt as s,Tt as c,_t as l,ct as u,dt as d,ft as te,gt as f,ht as p,i as m,kt as h,lt as g,n as _,ot as v,pt as y,t as b,ut as x,zt as ne}from"./index-BuGK6ptM.js";import{a as S,n as re,r as C}from"./format-B9MYDQJN.js";import{t as w}from"./PageHeader-3Ryvg2HD.js";var T={class:`flex items-center gap-2`},E={class:`grid grid-cols-2 gap-3 lg:gap-4 lg:grid-cols-5`},D={class:`flex items-center justify-between`},O={class:`flex size-10 items-center justify-center rounded-xl bg-orange-50 text-orange-600`},k={class:`mt-2 text-xs text-gray-400`},A={class:`flex items-center justify-between`},j={class:`flex size-10 items-center justify-center rounded-xl bg-amber-50 text-amber-600`},M={class:`flex items-center justify-between`},N={class:`flex size-10 items-center justify-center rounded-xl bg-blue-50 text-blue-600`},P={class:`flex items-center justify-between`},F={class:`mt-2 text-xs text-gray-400`},I={class:`flex items-center justify-between`},L={class:`flex size-10 items-center justify-center rounded-xl bg-purple-50 text-purple-600`},R={class:`mt-6 grid gap-6 lg:grid-cols-12`},z={class:`grid grid-cols-2 gap-3 sm:grid-cols-4`},B={class:`flex flex-col items-center justify-center rounded-xl border border-gray-100 bg-gray-50/70 p-4 text-center transition-all hover:border-orange-200 hover:bg-orange-50/50 hover:shadow-sm`},V={class:`mb-2 flex size-11 items-center justify-center rounded-full bg-white text-orange-600 shadow-sm`},H={class:`flex flex-col items-center justify-center rounded-xl border border-gray-100 bg-gray-50/70 p-4 text-center transition-all hover:border-blue-200 hover:bg-blue-50/50 hover:shadow-sm`},U={class:`mb-2 flex size-11 items-center justify-center rounded-full bg-white text-blue-600 shadow-sm`},W={class:`flex flex-col items-center justify-center rounded-xl border border-gray-100 bg-gray-50/70 p-4 text-center transition-all hover:border-emerald-200 hover:bg-emerald-50/50 hover:shadow-sm`},G={class:`mb-2 flex size-11 items-center justify-center rounded-full bg-white text-emerald-600 shadow-sm`},K={class:`flex flex-col items-center justify-center rounded-xl border border-gray-100 bg-gray-50/70 p-4 text-center transition-all hover:border-purple-200 hover:bg-purple-50/50 hover:shadow-sm`},q={class:`mb-2 flex size-11 items-center justify-center rounded-full bg-white text-purple-600 shadow-sm`},J={class:`flex items-center gap-4`},Y={class:`space-y-1.5 text-xs`},X={class:`font-bold text-gray-800`},ie={class:`text-gray-500`},ae={key:0,class:`text-emerald-600 font-medium`},oe={key:1,class:`text-amber-600 font-medium`},se={class:`mt-6 grid gap-6 lg:grid-cols-12`},ce={key:0,class:`py-8`},le={key:1,class:`space-y-3.5 pt-1`},ue={class:`flex items-center justify-between text-xs font-medium`},de={class:`text-gray-700`},fe={class:`font-mono text-gray-500`},pe={class:`grid grid-cols-3 gap-2 text-center`},me={class:`rounded-lg bg-orange-50 p-2.5`},he={class:`text-lg font-black text-orange-600`},ge={class:`rounded-lg bg-blue-50 p-2.5`},_e={class:`text-lg font-black text-blue-600`},ve={class:`rounded-lg bg-gray-50 p-2.5`},ye={class:`text-lg font-black text-gray-600`},be={class:`mt-5 border-t border-gray-100 pt-4`},xe={class:`flex h-28 items-end justify-between gap-1.5 sm:gap-2 pt-4`},Se={key:0,class:`text-[9px] font-bold text-orange-600 mb-0.5`},Ce={key:1,class:`text-[9px] text-transparent mb-0.5 select-none`},we={class:`relative flex w-full justify-center`},Te={class:`text-[10px] text-gray-400 truncate max-w-[36px]`},Ee={class:`mt-6 grid gap-6 lg:grid-cols-2`},De={class:`text-left text-xs text-gray-400`},Oe={class:`mt-1 font-mono text-[11px]`},ke={class:`text-sm`},Ae={key:0,class:`text-gray-600`},je={class:`mt-0.5 text-xs text-gray-400`},Z=l({__name:`DashboardPage`,setup(l){b();let Z=i(null),Q=i(!0),Me=g(()=>Z.value?.categoryStats?.length?Math.max(...Z.value.categoryStats.map(e=>e.count),1):1),Ne=g(()=>Z.value?.trend?.length?Math.max(...Z.value.trend.map(e=>e.messages),1):1),Pe=g(()=>Z.value?.sectionsSummary?.total?Math.round(Z.value.sectionsSummary.visible/Z.value.sectionsSummary.total*100):100);return ee(async()=>{Q.value=!0;try{Z.value=await _(`/admin/dashboard`)}catch(e){v.error(m(e))}finally{Q.value=!1}}),(ee,i)=>{let l=h(`a-button`),m=h(`RouterLink`),g=h(`a-statistic`),_=h(`a-card`),v=h(`a-progress`),b=h(`a-empty`),Fe=h(`a-tooltip`),Ie=h(`a-list-item-meta`),Le=h(`a-tag`),$=h(`a-list-item`),Re=h(`a-list`),ze=h(`a-timeline-item`),Be=h(`a-timeline`),Ve=h(`a-spin`);return c(),y(u,null,[f(w,{title:`داشبورد مدیریت`,subtitle:`نمای کلی آمار، نمودارها، پیام‌ها و فعالیت‌های اخیر سامانه`},{default:o(()=>[x(`div`,T,[f(m,{to:{name:`sections`}},{default:o(()=>[f(l,null,{icon:o(()=>[f(t,{name:`row-vertical`,size:16})]),default:o(()=>[i[0]||=p(` مدیریت بخش‌ها `,-1)]),_:1})]),_:1}),f(m,{to:{name:`product-new`}},{default:o(()=>[f(l,{type:`primary`},{icon:o(()=>[f(t,{name:`add`,size:16})]),default:o(()=>[i[1]||=p(` محصول جدید `,-1)]),_:1})]),_:1})])]),_:1}),f(Ve,{spinning:Q.value},{default:o(()=>[x(`div`,E,[f(m,{to:{name:`products`},class:`active:scale-[0.98] transition-transform`},{default:o(()=>[f(_,{hoverable:``,class:`h-full`,"body-style":{padding:`14px`}},{default:o(()=>[x(`div`,D,[f(g,{title:`کل محصولات`,value:a(C)(Z.value?.products??0)},null,8,[`value`]),x(`div`,O,[f(t,{name:`bag-2`,size:20})])]),x(`div`,k,n(a(C)((Z.value?.products??0)-(Z.value?.draftProducts??0)))+` محصول فعال روی سایت `,1)]),_:1})]),_:1}),f(m,{to:{name:`products`,query:{status:`draft`}},class:`active:scale-[0.98] transition-transform`},{default:o(()=>[f(_,{hoverable:``,class:`h-full`,"body-style":{padding:`14px`}},{default:o(()=>[x(`div`,A,[f(g,{title:`پیش‌نویس‌ها`,value:a(C)(Z.value?.draftProducts??0)},null,8,[`value`]),x(`div`,j,[f(t,{name:`document-text`,size:20})])]),i[2]||=x(`div`,{class:`mt-2 text-xs text-gray-400`},`نیاز به بازبینی و انتشار`,-1)]),_:1})]),_:1}),f(m,{to:{name:`categories`},class:`active:scale-[0.98] transition-transform`},{default:o(()=>[f(_,{hoverable:``,class:`h-full`,"body-style":{padding:`14px`}},{default:o(()=>[x(`div`,M,[f(g,{title:`دسته‌بندی‌ها`,value:a(C)(Z.value?.categories??0)},null,8,[`value`]),x(`div`,N,[f(t,{name:`category`,size:20})])]),i[3]||=x(`div`,{class:`mt-2 text-xs text-gray-400`},`شاخه‌های تجهیزات ایمنی`,-1)]),_:1})]),_:1}),f(m,{to:{name:`messages`,query:{status:`NEW`}},class:`active:scale-[0.98] transition-transform`},{default:o(()=>[f(_,{hoverable:``,class:`h-full`,"body-style":{padding:`14px`}},{default:o(()=>[x(`div`,P,[f(g,{title:`پیام‌های جدید`,value:a(C)(Z.value?.newMessages??0),"value-style":Z.value?.newMessages?{color:`#ff5a00`,fontWeight:`bold`}:void 0},null,8,[`value`,`value-style`]),x(`div`,{class:s([`flex size-10 items-center justify-center rounded-xl`,Z.value?.newMessages?`bg-orange-100 text-orange-600 animate-pulse`:`bg-gray-100 text-gray-500`])},[f(t,{name:`sms`,size:20})],2)]),x(`div`,F,` از مجموع `+n(a(C)(Z.value?.messageBreakdown?.total??0))+` پیام `,1)]),_:1})]),_:1}),f(m,{to:{name:`media`},class:`max-lg:col-span-2 active:scale-[0.98] transition-transform`},{default:o(()=>[f(_,{hoverable:``,class:`h-full`,"body-style":{padding:`14px`}},{default:o(()=>[x(`div`,I,[f(g,{title:`رسانه‌ها و تصاویر`,value:a(C)(Z.value?.media??0)},null,8,[`value`]),x(`div`,L,[f(t,{name:`gallery`,size:20})])]),i[4]||=x(`div`,{class:`mt-2 text-xs text-gray-400`},`تصاویر بهینه‌شده WebP`,-1)]),_:1})]),_:1})]),x(`div`,R,[f(_,{title:`دسترسی‌های سریع`,class:`lg:col-span-8`},{default:o(()=>[x(`div`,z,[f(m,{to:{name:`product-new`},class:`block`},{default:o(()=>[x(`div`,B,[x(`div`,V,[f(t,{name:`add`,size:22})]),i[5]||=x(`span`,{class:`text-xs font-bold text-gray-800`},`افزودن محصول`,-1),i[6]||=x(`span`,{class:`mt-1 text-[11px] text-gray-400`},`کالای ایمنی جدید`,-1)])]),_:1}),f(m,{to:{name:`category-new`},class:`block`},{default:o(()=>[x(`div`,H,[x(`div`,U,[f(t,{name:`folder-add`,size:22})]),i[7]||=x(`span`,{class:`text-xs font-bold text-gray-800`},`دسته‌بندی جدید`,-1),i[8]||=x(`span`,{class:`mt-1 text-[11px] text-gray-400`},`گروه محصولات`,-1)])]),_:1}),f(m,{to:{name:`sections`},class:`block`},{default:o(()=>[x(`div`,W,[x(`div`,G,[f(t,{name:`row-vertical`,size:22})]),i[9]||=x(`span`,{class:`text-xs font-bold text-gray-800`},`بخش‌های سایت`,-1),i[10]||=x(`span`,{class:`mt-1 text-[11px] text-gray-400`},`نمایش یا مخفی‌سازی`,-1)])]),_:1}),f(m,{to:{name:`media`},class:`block`},{default:o(()=>[x(`div`,K,[x(`div`,q,[f(t,{name:`gallery-add`,size:22})]),i[11]||=x(`span`,{class:`text-xs font-bold text-gray-800`},`آپلود رسانه`,-1),i[12]||=x(`span`,{class:`mt-1 text-[11px] text-gray-400`},`تصاویر و اسناد`,-1)])]),_:1})])]),_:1}),f(_,{title:`وضعیت بخش‌های صفحه اصلی`,class:`lg:col-span-4`},{extra:o(()=>[f(m,{to:{name:`sections`},class:`text-xs text-orange-600 hover:underline`},{default:o(()=>[...i[13]||=[p(` مدیریت `,-1)]]),_:1})]),default:o(()=>[x(`div`,J,[f(v,{type:`circle`,percent:Pe.value,size:72,"stroke-color":{"0%":`#ff8a3d`,"100%":`#ff5a00`}},null,8,[`percent`]),x(`div`,Y,[x(`div`,X,n(a(C)(Z.value?.sectionsSummary?.visible??0))+` بخش از `+n(a(C)(Z.value?.sectionsSummary?.total??12))+` فعال `,1),x(`div`,ie,[(Z.value?.sectionsSummary?.hidden??0)===0?(c(),y(`span`,ae,` تمامی بخش‌های سایت در حال نمایش هستند `)):(c(),y(`span`,oe,n(a(C)(Z.value?.sectionsSummary?.hidden??0))+` بخش غیرفعال / مخفی `,1))]),i[14]||=x(`div`,{class:`text-[11px] text-gray-400`},` تغییر وضعیت آنی از منوی بخش‌های سایت `,-1)])])]),_:1})]),x(`div`,se,[f(_,{title:`نمودار توزیع محصولات بر اساس دسته‌بندی`,class:`lg:col-span-7`},{default:o(()=>[Z.value?.categoryStats?.length?(c(),y(`div`,le,[(c(!0),y(u,null,r(Z.value.categoryStats,e=>(c(),y(`div`,{key:e.id,class:`space-y-1`},[x(`div`,ue,[x(`span`,de,n(e.name),1),x(`span`,fe,n(a(C)(e.count))+` محصول`,1)]),f(v,{percent:Math.round(e.count/Me.value*100),"show-info":!1,"stroke-color":{"0%":`#ffd0b5`,"100%":`#ff5a00`},size:`small`},null,8,[`percent`])]))),128))])):(c(),y(`div`,ce,[f(b,{description:`داده‌ای موجود نیست`})]))]),_:1}),f(_,{title:`تحلیل پیام‌های تماس دریافتی`,class:`lg:col-span-5`},{default:o(()=>[x(`div`,pe,[x(`div`,me,[x(`div`,he,n(a(C)(Z.value?.messageBreakdown?.new??0)),1),i[15]||=x(`div`,{class:`text-[11px] font-medium text-gray-600`},`جدید`,-1)]),x(`div`,ge,[x(`div`,_e,n(a(C)(Z.value?.messageBreakdown?.read??0)),1),i[16]||=x(`div`,{class:`text-[11px] font-medium text-gray-600`},`خوانده‌شده`,-1)]),x(`div`,ve,[x(`div`,ye,n(a(C)(Z.value?.messageBreakdown?.archived??0)),1),i[17]||=x(`div`,{class:`text-[11px] font-medium text-gray-600`},`بایگانی`,-1)])]),x(`div`,be,[i[18]||=x(`div`,{class:`mb-3 flex items-center justify-between text-xs`},[x(`span`,{class:`font-bold text-gray-700`},`روند پیام‌ها در ۷ روز اخیر`),x(`span`,{class:`text-gray-400`},`نمودار روزانه`)],-1),x(`div`,xe,[(c(!0),y(u,null,r(Z.value?.trend??[],e=>(c(),y(`div`,{key:e.date,class:`flex flex-1 flex-col items-center gap-1`},[e.messages>0?(c(),y(`span`,Se,n(a(C)(e.messages)),1)):(c(),y(`span`,Ce,`-`)),f(Fe,{title:`${e.dayName}: ${a(C)(e.messages)} پیام`},{default:o(()=>[x(`div`,we,[x(`div`,{class:s([`w-full max-w-[24px] rounded-t-md transition-all duration-300`,e.messages>0?`bg-orange-500 hover:bg-orange-600`:`bg-gray-100`]),style:ne({height:`${Math.max(Math.round(e.messages/Ne.value*72),6)}px`})},null,6)])]),_:2},1032,[`title`]),x(`span`,Te,n(e.dayName),1)]))),128))])])]),_:1})]),x(`div`,Ee,[f(_,{title:`آخرین پیام‌های تماس`},{extra:o(()=>[f(m,{to:{name:`messages`},class:`text-xs text-orange-600 hover:underline`},{default:o(()=>[...i[19]||=[p(` مشاهده همه ← `,-1)]]),_:1})]),default:o(()=>[Z.value?.recentMessages.length?(c(),d(Re,{key:1,"data-source":Z.value.recentMessages,"item-layout":`horizontal`},{renderItem:o(({item:t})=>[f($,null,{default:o(()=>[f(Ie,{title:`${t.name} — ${t.org}`,description:t.message||t.phone},null,8,[`title`,`description`]),x(`div`,De,[f(Le,{color:t.status===`NEW`?`orange`:t.status===`READ`?`blue`:`default`},{default:o(()=>[p(n(a(e)[t.status]),1)]),_:2},1032,[`color`]),x(`div`,Oe,n(a(S)(t.createdAt)),1)])]),_:2},1024)]),_:1},8,[`data-source`])):(c(),d(b,{key:0,description:`پیامی ثبت نشده است`}))]),_:1}),f(_,{title:`آخرین فعالیت‌ها و رویدادهای سیستم`},{default:o(()=>[Z.value?.recentActivity.length?(c(),d(Be,{key:1,class:`!mt-2 max-h-[360px] overflow-y-auto pe-2`},{default:o(()=>[(c(!0),y(u,null,r(Z.value.recentActivity,e=>(c(),d(ze,{key:e.id,color:e.action===`delete`?`red`:e.action===`create`?`green`:`blue`},{default:o(()=>[x(`div`,ke,[x(`b`,null,n(a(re)(e.action,e.entity)),1),e.summary?(c(),y(`span`,Ae,` — `+n(e.summary),1)):te(``,!0)]),x(`div`,je,n(e.user??`سیستم`)+` · `+n(a(S)(e.createdAt)),1)]),_:2},1032,[`color`]))),128))]),_:1})):(c(),d(b,{key:0,description:`فعالیتی ثبت نشده است`}))]),_:1})])]),_:1},8,[`spinning`])],64)}}});export{Z as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/FormField-CiVT7mqC.js b/apps/admin/dist/assets/FormField-CiVT7mqC.js new file mode 100644 index 0000000..4b6db99 --- /dev/null +++ b/apps/admin/dist/assets/FormField-CiVT7mqC.js @@ -0,0 +1 @@ +import{b as e}from"./VuesaxIcon-B2OgulS6.js";import{Et as t,It as n,Nt as r,Ot as i,Tt as a,_t as o,dt as s,i as c,kt as l,lt as u,ot as d,r as f,yt as p}from"./index-BuGK6ptM.js";var m=Symbol(`form-errors`),h=e=>Object.fromEntries(e.map(e=>[e.path,e.message]));function g(r,i){let a=n(structuredClone(i)),o=n({});t(m,o);function s(){let t=r.safeParse(a.value);return t.success?(o.value={},t.data):(o.value=h(e(t.error)),d.error(`لطفاً خطاهای فرم را برطرف کنید`),null)}function l(e){let t=f(e).issues;t?.length&&(o.value=h(t)),d.error(c(e))}function u(e){a.value=structuredClone(e),o.value={}}return{model:a,errors:o,validate:s,handleError:l,reset:u}}var _=o({__name:`FormField`,props:{path:{},label:{},hint:{},required:{type:Boolean}},setup(e){let t=e,n=p(m,null),o=u(()=>n?.value[t.path]);return(t,n)=>{let c=l(`a-form-item`);return a(),s(c,{label:e.label,required:e.required,"validate-status":o.value?`error`:void 0,help:o.value||e.hint},{default:r(()=>[i(t.$slots,`default`)]),_:3},8,[`label`,`required`,`validate-status`,`help`])}}});export{g as n,_ as t}; \ No newline at end of file diff --git a/apps/admin/dist/assets/IconSelect-rJLPzIXV.js b/apps/admin/dist/assets/IconSelect-rJLPzIXV.js new file mode 100644 index 0000000..b449dc5 --- /dev/null +++ b/apps/admin/dist/assets/IconSelect-rJLPzIXV.js @@ -0,0 +1 @@ +import{t as e,y as t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,Lt as r,Nt as i,Tt as a,_t as o,bt as s,dt as c,gt as l,jt as u,kt as d,pt as f,ut as p}from"./index-BuGK6ptM.js";var m={class:`flex items-center gap-2`},h={class:`flex size-9 shrink-0 items-center justify-center rounded-lg border border-gray-200 bg-gray-50 text-[#ff5a00]`},g={key:1,class:`text-xs text-gray-400`},_={class:`flex items-center gap-2.5 py-0.5`,dir:`ltr`},v={class:`text-xs font-mono`},y=o({__name:`IconSelect`,props:s({allowClear:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(o){let s=u(o,`modelValue`),y=t.map(e=>({value:e,label:e}));return(t,u)=>{let b=d(`a-select`);return a(),f(`div`,m,[p(`span`,h,[s.value?(a(),c(e,{key:0,name:s.value,size:20},null,8,[`name`])):(a(),f(`span`,g,`---`))]),l(b,{value:s.value,"onUpdate:value":u[0]||=e=>s.value=e,class:`min-w-0 flex-1`,"show-search":``,"allow-clear":o.allowClear,options:r(y),placeholder:`انتخاب آیکون`},{option:i(({value:t})=>[p(`span`,_,[l(e,{name:t,size:18,class:`text-orange-600`},null,8,[`name`]),p(`span`,v,n(t),1)])]),_:1},8,[`value`,`allow-clear`,`options`])])}}});export{y as t}; \ No newline at end of file diff --git a/apps/admin/dist/assets/ListEditor-C8F91lSJ.js b/apps/admin/dist/assets/ListEditor-C8F91lSJ.js new file mode 100644 index 0000000..e4c3a09 --- /dev/null +++ b/apps/admin/dist/assets/ListEditor-C8F91lSJ.js @@ -0,0 +1 @@ +import{t as e}from"./VuesaxIcon-B2OgulS6.js";import{Bt as t,Dt as n,It as r,Mt as i,Nt as a,Ot as o,Tt as s,_t as c,bt as l,ct as u,dt as d,ft as f,gt as p,ht as m,i as h,jt as g,kt as _,n as v,ot as y,pt as b,ut as x}from"./index-BuGK6ptM.js";var S={class:`grid grid-cols-3 gap-3 sm:grid-cols-4 md:grid-cols-6`},C=[`title`,`onClick`],w=[`src`,`alt`],T={class:`truncate px-1.5 py-1 text-[11px] text-gray-500`,dir:`ltr`},E={class:`mt-4 flex justify-center`},D={class:`ant-upload-drag-icon`},O=24,k=c({__name:`MediaPicker`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:l([`select`],[`update:open`]),setup(o,{emit:c}){let l=g(o,`open`),m=c,k=r(`library`),A=r([]),j=r(0),M=r(1),N=r(``),P=r(!1),F=r(!1);async function I(){P.value=!0;try{let e=await v(`/admin/media`,{query:{page:M.value,pageSize:O,q:N.value||void 0}});A.value=e.items,j.value=e.total}catch(e){y.error(h(e))}finally{P.value=!1}}i(l,e=>e&&I());function L(e){m(`select`,e),l.value=!1}async function R(e){F.value=!0;try{let t=new FormData;t.append(`file`,e);let n=await v(`/admin/media`,{method:`POST`,body:t});y.success(`تصویر آپلود شد`),L(n)}catch(e){y.error(h(e))}finally{F.value=!1}return!1}return(r,i)=>{let o=_(`a-input-search`),c=_(`a-empty`),m=_(`a-spin`),h=_(`a-pagination`),g=_(`a-tab-pane`),v=_(`a-upload-dragger`),y=_(`a-tabs`),z=_(`a-modal`);return s(),d(z,{open:l.value,"onUpdate:open":i[4]||=e=>l.value=e,title:`انتخاب تصویر`,footer:null,width:`900px`,"destroy-on-close":``},{default:a(()=>[p(y,{"active-key":k.value,"onUpdate:activeKey":i[3]||=e=>k.value=e},{default:a(()=>[p(g,{key:`library`,tab:`کتابخانه رسانه`},{default:a(()=>[p(o,{value:N.value,"onUpdate:value":i[0]||=e=>N.value=e,placeholder:`جستجو در نام فایل یا متن جایگزین`,"allow-clear":``,class:`mb-4`,onSearch:i[1]||=()=>{M.value=1,I()}},null,8,[`value`]),p(m,{spinning:P.value},{default:a(()=>[!A.value.length&&!P.value?(s(),d(c,{key:0,description:`تصویری پیدا نشد`})):f(``,!0),x(`div`,S,[(s(!0),b(u,null,n(A.value,e=>(s(),b(`button`,{key:e.id,type:`button`,class:`group overflow-hidden rounded-lg border border-gray-200 bg-gray-50 text-start transition hover:border-[#ff5a00] focus:border-[#ff5a00] focus:outline-none`,title:e.originalName,onClick:t=>L(e)},[x(`img`,{src:e.url,alt:e.alt,class:`aspect-square w-full object-contain`,loading:`lazy`},null,8,w),x(`div`,T,t(e.originalName),1)],8,C))),128))])]),_:1},8,[`spinning`]),x(`div`,E,[p(h,{current:M.value,"onUpdate:current":i[2]||=e=>M.value=e,total:j.value,"page-size":O,"show-size-changer":!1,onChange:I},null,8,[`current`,`total`])])]),_:1}),p(g,{key:`upload`,tab:`آپلود تصویر جدید`},{default:a(()=>[p(m,{spinning:F.value},{default:a(()=>[p(v,{accept:`image/jpeg,image/png,image/webp,image/avif,image/gif`,"show-upload-list":!1,"before-upload":R},{default:a(()=>[x(`p`,D,[p(e,{name:`document-upload`,size:40})]),i[5]||=x(`p`,{class:`ant-upload-text`},`تصویر را اینجا رها کنید یا کلیک کنید`,-1),i[6]||=x(`p`,{class:`ant-upload-hint`},` JPG، PNG، WebP، AVIF یا GIF — حداکثر ۱۵ مگابایت. تصویر به‌صورت خودکار بهینه و به WebP تبدیل می‌شود. `,-1)]),_:1})]),_:1},8,[`spinning`])]),_:1})]),_:1},8,[`active-key`])]),_:1},8,[`open`])}}}),A={class:`flex items-start gap-4`},j={class:`flex size-28 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-dashed border-gray-300 bg-gray-50`},M=[`src`],N=c({__name:`ImageField`,props:{url:{},clearable:{type:Boolean}},emits:[`pick`,`clear`],setup(n,{emit:i}){let o=i,c=r(!1);return(r,i)=>{let l=_(`a-button`),u=_(`a-space`);return s(),b(`div`,A,[x(`div`,j,[n.url?(s(),b(`img`,{key:0,src:n.url,alt:``,class:`size-full object-contain`},null,8,M)):(s(),d(e,{key:1,name:`gallery`,size:32,class:`text-gray-300`}))]),p(u,{direction:`vertical`},{default:a(()=>[p(l,{onClick:i[0]||=e=>c.value=!0},{icon:a(()=>[p(e,{name:`gallery`,size:16})]),default:a(()=>[m(` `+t(n.url?`تغییر تصویر`:`انتخاب یا آپلود تصویر`),1)]),_:1}),n.url&&n.clearable?(s(),d(l,{key:0,danger:``,onClick:i[1]||=e=>o(`clear`)},{icon:a(()=>[p(e,{name:`trash`,size:16})]),default:a(()=>[i[4]||=m(` حذف تصویر `,-1)]),_:1})):f(``,!0)]),_:1}),p(k,{open:c.value,"onUpdate:open":i[2]||=e=>c.value=e,onSelect:i[3]||=e=>o(`pick`,e)},null,8,[`open`])])}}}),P={class:`space-y-3`},F={class:`mb-3 flex items-center justify-between gap-2`},I={class:`text-sm font-bold text-gray-600`},L=c({__name:`ListEditor`,props:l({create:{},addLabel:{default:`افزودن مورد`},max:{default:50},itemTitle:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(r){let i=g(r,`modelValue`),c=r,l=(e,t)=>{let n=[...i.value],[r]=n.splice(e,1);n.splice(e+t,0,r),i.value=n},d=e=>{i.value=i.value.filter((t,n)=>n!==e)},f=()=>{i.value=[...i.value,c.create()]};return(c,h)=>{let g=_(`a-button`),v=_(`a-popconfirm`),y=_(`a-space`);return s(),b(`div`,P,[(s(!0),b(u,null,n(i.value,(n,u)=>(s(),b(`div`,{key:u,class:`rounded-lg border border-gray-200 bg-white p-4`},[x(`div`,F,[x(`span`,I,t((u+1).toLocaleString(`fa-IR`))+`. `+t(r.itemTitle?.(n,u)??``),1),p(y,{size:4},{default:a(()=>[p(g,{size:`small`,disabled:u===0,title:`بالا`,onClick:e=>l(u,-1)},{icon:a(()=>[p(e,{name:`arrow-up`,size:16})]),_:1},8,[`disabled`,`onClick`]),p(g,{size:`small`,disabled:u===i.value.length-1,title:`پایین`,onClick:e=>l(u,1)},{icon:a(()=>[p(e,{name:`arrow-down`,size:16})]),_:1},8,[`disabled`,`onClick`]),p(v,{title:`این مورد حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:e=>d(u)},{default:a(()=>[p(g,{size:`small`,danger:``,title:`حذف`},{icon:a(()=>[p(e,{name:`trash`,size:16})]),_:1})]),_:1},8,[`onConfirm`])]),_:2},1024)]),o(c.$slots,`default`,{item:n,index:u})]))),128)),p(g,{type:`dashed`,block:``,disabled:i.value.length>=r.max,onClick:f},{icon:a(()=>[p(e,{name:`add`,size:16})]),default:a(()=>[m(` `+t(r.addLabel),1)]),_:1},8,[`disabled`])])}}});export{N as n,k as r,L as t}; \ No newline at end of file diff --git a/apps/admin/dist/assets/LoginPage-CTFu9XSt.css b/apps/admin/dist/assets/LoginPage-CTFu9XSt.css new file mode 100644 index 0000000..2d45bcf --- /dev/null +++ b/apps/admin/dist/assets/LoginPage-CTFu9XSt.css @@ -0,0 +1 @@ +.login-grid[data-v-2d323d25]{background-image:linear-gradient(270deg,#edede60b 1px,#0000 1px),linear-gradient(#edede60b 1px,#0000 1px);background-size:72px 72px}.login-tape[data-v-2d323d25]{background-image:repeating-linear-gradient(45deg,#ffb800 0 10px,#0b1224 10px 20px)}.login-noise[data-v-2d323d25]{opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.login-fade-1[data-v-2d323d25],.login-fade-3[data-v-2d323d25]{animation:.9s cubic-bezier(.22,1,.36,1) both login-fade-up-2d323d25}.login-fade-1[data-v-2d323d25]{animation-delay:.12s}.login-fade-3[data-v-2d323d25]{animation-delay:.28s}@keyframes login-fade-up-2d323d25{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}.login-page[data-v-2d323d25]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.login-panel[data-v-2d323d25] .ant-form-item-label>label{color:#edede6!important}.login-panel[data-v-2d323d25] .ant-input-affix-wrapper,.login-panel[data-v-2d323d25] .ant-input{color:#edede6!important;background:#152038!important;border-color:#2a3d63!important}.login-panel[data-v-2d323d25] .ant-input-affix-wrapper input.ant-input,.login-panel[data-v-2d323d25] .ant-input-affix-wrapper input{color:#edede6!important;background:0 0!important}.login-panel[data-v-2d323d25] .ant-input-affix-wrapper:hover,.login-panel[data-v-2d323d25] .ant-input-affix-wrapper-focused,.login-panel[data-v-2d323d25] .ant-input-affix-wrapper:focus-within{border-color:#ff5a00!important;box-shadow:0 0 0 2px #ff5a0026!important}.login-panel[data-v-2d323d25] .ant-input::placeholder,.login-panel[data-v-2d323d25] .ant-input-password-icon,.login-panel[data-v-2d323d25] .ant-input-suffix{color:#8e9ab0!important}.login-panel[data-v-2d323d25] input:-webkit-autofill{transition:background-color 99999s ease-in-out;-webkit-text-fill-color:#edede6!important;caret-color:#edede6!important;box-shadow:inset 0 0 0 1000px #152038!important}.login-panel[data-v-2d323d25] input:-webkit-autofill:hover{transition:background-color 99999s ease-in-out;-webkit-text-fill-color:#edede6!important;caret-color:#edede6!important;box-shadow:inset 0 0 0 1000px #152038!important}.login-panel[data-v-2d323d25] input:-webkit-autofill:focus{transition:background-color 99999s ease-in-out;-webkit-text-fill-color:#edede6!important;caret-color:#edede6!important;box-shadow:inset 0 0 0 1000px #152038!important}.login-panel[data-v-2d323d25] input:-webkit-autofill:active{transition:background-color 99999s ease-in-out;-webkit-text-fill-color:#edede6!important;caret-color:#edede6!important;box-shadow:inset 0 0 0 1000px #152038!important}.login-panel[data-v-2d323d25] .ant-form-item-explain-error{color:#ff7a2a} diff --git a/apps/admin/dist/assets/LoginPage-D6HPXv4g.js b/apps/admin/dist/assets/LoginPage-D6HPXv4g.js new file mode 100644 index 0000000..f6a59f4 --- /dev/null +++ b/apps/admin/dist/assets/LoginPage-D6HPXv4g.js @@ -0,0 +1 @@ +import{c as e,n as t,t as n}from"./VuesaxIcon-B2OgulS6.js";import{It as r,Lt as i,Nt as a,Tt as o,_t as s,a as c,gt as l,ht as u,kt as d,mt as f,o as p,pt as m,st as h,t as g,ut as _}from"./index-BuGK6ptM.js";import"./logo-BuUh917n.js";import{n as v,t as y}from"./FormField-CiVT7mqC.js";var b={class:`login-page relative flex min-h-screen overflow-hidden text-[#edede6]`},x={class:`relative z-10 mx-auto grid w-full max-w-[1120px] flex-1 items-center gap-10 px-5 py-12 md:px-8 lg:grid-cols-12 lg:gap-16`},S={class:`login-fade-3 lg:col-span-6`},C={class:`login-panel w-full max-w-md border border-[#2a3d63]/70 bg-[#1a2744]/80 p-7 backdrop-blur-md md:p-8 lg:me-auto`},w=t(s({__name:`LoginPage`,setup(t){let s=g(),w=p(),T=c(),{model:E,validate:D,handleError:O}=v(e,{phone:``,password:``}),k=r(!1);async function A(){let e=D();if(e){k.value=!0;try{await s.login(e);let t=typeof T.query.redirect==`string`?T.query.redirect:`/`;await w.replace(t.startsWith(`/`)?t:`/`)}catch(e){O(e)}finally{k.value=!1}}}return(e,t)=>{let r=d(`a-input`),s=d(`a-input-password`),c=d(`a-button`),p=d(`a-form`);return o(),m(`div`,b,[t[5]||=f(`
`,6),_(`div`,x,[_(`div`,S,[_(`div`,C,[t[3]||=_(`div`,{class:`mb-7 text-center`},[_(`div`,{class:`font-mono text-[10px] tracking-[0.28em] text-[#8e9ab0]`},`SIGN IN`),_(`h2`,{class:`mt-2 text-xl font-bold text-[#edede6]`},`ورود به پنل`),_(`p`,{class:`mt-1.5 text-sm text-[#8e9ab0]`},`شماره موبایل و رمز عبور خود را وارد کنید`)],-1),l(p,{class:`login-form`,layout:`vertical`,onSubmit:h(A,[`prevent`])},{default:a(()=>[l(y,{path:`phone`,label:`شماره موبایل`},{default:a(()=>[l(r,{value:i(E).phone,"onUpdate:value":t[0]||=e=>i(E).phone=e,size:`large`,class:`ltr-input`,autocomplete:`tel`,autofocus:``,inputmode:`tel`,placeholder:`09121234567`},{prefix:a(()=>[l(n,{name:`mobile`,size:16,class:`text-[#8e9ab0]`})]),_:1},8,[`value`])]),_:1}),l(y,{path:`password`,label:`رمز عبور`},{default:a(()=>[l(s,{value:i(E).password,"onUpdate:value":t[1]||=e=>i(E).password=e,size:`large`,class:`ltr-input`,autocomplete:`current-password`,placeholder:`••••••••`},{prefix:a(()=>[l(n,{name:`lock`,size:16,class:`text-[#8e9ab0]`})]),_:1},8,[`value`])]),_:1}),l(c,{type:`primary`,"html-type":`submit`,size:`large`,block:``,loading:k.value,class:`!mt-2 !h-12 !rounded-full !font-bold !shadow-[0_8px_32px_rgba(255,90,0,0.35)]`},{default:a(()=>[...t[2]||=[u(` ورود به پنل `,-1)]]),_:1},8,[`loading`])]),_:1})])]),t[4]||=f(`
پنل مدیریت ایمن پیشگامان
ایمن پیشگامان
ایمن پیشگامان
IMEN PISHGAMAN CO.

ورود امن به سامانه

مدیریت محصولات، محتوا و پیام‌های سایت — فقط برای کاربران مجاز.

`,1)])])}}}),[[`__scopeId`,`data-v-2d323d25`]]);export{w as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/MediaPage-DnfskIVE.js b/apps/admin/dist/assets/MediaPage-DnfskIVE.js new file mode 100644 index 0000000..168c983 --- /dev/null +++ b/apps/admin/dist/assets/MediaPage-DnfskIVE.js @@ -0,0 +1 @@ +import{t as e}from"./VuesaxIcon-B2OgulS6.js";import{Bt as t,Ct as n,Dt as r,It as i,Lt as a,Nt as o,Tt as s,_t as c,ct as l,dt as u,ft as d,gt as f,ht as p,i as m,kt as h,n as g,ot as _,pt as v,t as y,ut as b,wt as x}from"./index-BuGK6ptM.js";import{a as S,i as C,r as w}from"./format-B9MYDQJN.js";import{t as T}from"./PageHeader-3Ryvg2HD.js";var E={class:`grid grid-cols-3 gap-2.5 sm:grid-cols-4 md:grid-cols-6 xl:grid-cols-9`},D=[`title`,`onClick`],O=[`src`,`alt`],k={class:`absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/60 to-transparent p-1 text-[9px] text-white opacity-0 transition group-hover:opacity-100 max-lg:hidden truncate`},A={class:`mt-4 flex justify-center`},j={class:`lg:hidden fixed bottom-20 left-4 z-30`},M=[`disabled`],N={key:1,class:`text-xs font-bold`},ee={class:`overflow-hidden rounded-xl border border-gray-200 bg-gray-50 flex items-center justify-center p-2`},te=[`src`,`alt`],ne={dir:`ltr`,class:`truncate block max-w-[240px] text-xs font-mono text-gray-700`},re={dir:`ltr`,class:`text-xs font-mono`},ie={class:`max-lg:grid max-lg:grid-cols-2 max-lg:gap-2 max-lg:mt-4 max-lg:hidden`},ae={class:`lg:hidden grid grid-cols-2 gap-2 mt-4`},P=36,F=c({__name:`MediaPage`,setup(c){let F=y(),I=i([]),L=i(0),R=i(1),z=i(``),B=i(!1),V=i(0),H=i(null),U=i(``),W=i(!1);function G(){typeof window<`u`&&(W.value=window.innerWidth<1024)}async function K(){B.value=!0;try{let e=await g(`/admin/media`,{query:{page:R.value,pageSize:P,q:z.value||void 0}});I.value=e.items,L.value=e.total}catch(e){_.error(m(e))}finally{B.value=!1}}async function q(e){V.value++;try{let t=new FormData;t.append(`file`,e),await g(`/admin/media`,{method:`POST`,body:t}),_.success(`«${e.name}» آپلود شد`),R.value=1,await K()}catch(t){_.error(`${e.name}: ${m(t)}`)}finally{V.value--}return!1}function oe(e){H.value=e,U.value=e.alt}async function J(){if(H.value)try{let e=await g(`/admin/media/${H.value.id}`,{method:`PATCH`,body:{alt:U.value}});Object.assign(H.value,e),_.success(`ذخیره شد`)}catch(e){_.error(m(e))}}async function Y(){if(H.value)try{await g(`/admin/media/${H.value.id}`,{method:`DELETE`}),_.success(`تصویر حذف شد`),H.value=null,await K()}catch(e){_.error(m(e))}}async function X(e){await navigator.clipboard.writeText(new URL(e,location.origin).toString()),_.success(`آدرس کپی شد`)}return n(()=>{G(),window.addEventListener(`resize`,G),K()}),x(()=>{typeof window<`u`&&window.removeEventListener(`resize`,G)}),(n,i)=>{let c=h(`a-button`),m=h(`a-upload`),g=h(`a-input-search`),_=h(`a-empty`),y=h(`a-spin`),x=h(`a-pagination`),G=h(`a-card`),Z=h(`a-descriptions-item`),se=h(`a-descriptions`),ce=h(`a-input`),le=h(`a-form-item`),Q=h(`a-popconfirm`),$=h(`a-space`),ue=h(`a-form`),de=h(`a-drawer`);return s(),v(l,null,[f(T,{title:`کتابخانه رسانه`,subtitle:`${a(w)(L.value)} تصویر`},{default:o(()=>[f(m,{accept:`image/jpeg,image/png,image/webp,image/avif,image/gif`,multiple:``,"show-upload-list":!1,"before-upload":q},{default:o(()=>[f(c,{type:`primary`,loading:V.value>0},{icon:o(()=>[f(e,{name:`document-upload`,size:16})]),default:o(()=>[i[7]||=p(` آپلود تصویر `,-1)]),_:1},8,[`loading`])]),_:1})]),_:1},8,[`subtitle`]),f(G,null,{default:o(()=>[f(g,{value:z.value,"onUpdate:value":i[0]||=e=>z.value=e,"allow-clear":``,placeholder:`جستجو در نام فایل یا متن جایگزین`,class:`mb-4 w-full md:max-w-md`,onSearch:i[1]||=()=>{R.value=1,K()}},null,8,[`value`]),f(y,{spinning:B.value},{default:o(()=>[!I.value.length&&!B.value?(s(),u(_,{key:0,description:`تصویری پیدا نشد`})):d(``,!0),b(`div`,E,[(s(!0),v(l,null,r(I.value,e=>(s(),v(`button`,{key:e.id,type:`button`,class:`group relative overflow-hidden rounded-xl border border-gray-200 bg-gray-50 transition active:scale-95 hover:border-[#ff5a00] focus:outline-none`,title:e.originalName,onClick:t=>oe(e)},[b(`img`,{src:e.url,alt:e.alt,class:`aspect-square w-full object-contain p-1`,loading:`lazy`},null,8,O),b(`div`,k,t(e.originalName),1)],8,D))),128))])]),_:1},8,[`spinning`]),b(`div`,A,[f(x,{current:R.value,"onUpdate:current":i[2]||=e=>R.value=e,total:L.value,"page-size":P,"show-size-changer":!1,simple:W.value,onChange:K},null,8,[`current`,`total`,`simple`])])]),_:1}),b(`div`,j,[f(m,{accept:`image/jpeg,image/png,image/webp,image/avif,image/gif`,multiple:``,"show-upload-list":!1,"before-upload":q},{default:o(()=>[b(`button`,{type:`button`,class:`flex size-13 items-center justify-center rounded-full bg-[#ff5a00] text-white shadow-lg shadow-orange-500/30 transition-transform active:scale-95`,title:`آپلود تصویر`,disabled:V.value>0},[V.value===0?(s(),u(e,{key:0,name:`document-upload`,size:24})):(s(),v(`span`,N,t(V.value),1))],8,M)]),_:1})]),f(de,{open:!!H.value,title:`جزئیات تصویر`,width:W.value?`100%`:380,height:W.value?`82vh`:void 0,placement:W.value?`bottom`:`left`,"body-style":{paddingBottom:W.value?`80px`:`24px`},onClose:i[6]||=e=>H.value=null},{default:o(()=>[H.value?(s(),v(l,{key:0},[b(`div`,ee,[b(`img`,{src:H.value.url,alt:H.value.alt,class:`max-h-60 w-full object-contain`},null,8,te)]),f(se,{column:W.value?2:1,size:`small`,class:`mt-4`},{default:o(()=>[f(Z,{label:`نام فایل`,span:W.value?2:1},{default:o(()=>[b(`span`,ne,t(H.value.originalName),1)]),_:1},8,[`span`]),f(Z,{label:`ابعاد`},{default:o(()=>[b(`span`,re,t(H.value.width)+`×`+t(H.value.height),1)]),_:1}),f(Z,{label:`حجم`},{default:o(()=>[p(t(a(C)(H.value.size)),1)]),_:1}),f(Z,{label:`تاریخ`,span:W.value?2:1},{default:o(()=>[p(t(a(S)(H.value.createdAt)),1)]),_:1},8,[`span`])]),_:1},8,[`column`]),f(ue,{layout:`vertical`,class:`mt-4`},{default:o(()=>[f(le,{label:`متن جایگزین (alt)`,class:`!mb-3`},{default:o(()=>[f(ce,{value:U.value,"onUpdate:value":i[3]||=e=>U.value=e,placeholder:`توضیح کوتاه برای سئو و دسترس‌پذیری`},null,8,[`value`])]),_:1}),b(`div`,ie,[f($,{wrap:``},{default:o(()=>[f(c,{type:`primary`,onClick:J},{default:o(()=>[...i[8]||=[p(`ذخیره`,-1)]]),_:1}),f(c,{onClick:i[4]||=e=>X(H.value.url)},{icon:o(()=>[f(e,{name:`copy`,size:16})]),default:o(()=>[i[9]||=p(`کپی آدرس`,-1)]),_:1}),a(F).isAdmin?(s(),u(Q,{key:0,title:`این تصویر حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:Y},{default:o(()=>[f(c,{danger:``},{icon:o(()=>[f(e,{name:`trash`,size:16})]),default:o(()=>[i[10]||=p(`حذف`,-1)]),_:1})]),_:1})):d(``,!0)]),_:1})]),b(`div`,ae,[f(c,{type:`primary`,class:`h-10 !font-bold`,onClick:J},{default:o(()=>[...i[11]||=[p(`ذخیره متن`,-1)]]),_:1}),f(c,{class:`h-10 !flex !items-center !justify-center !gap-1`,onClick:i[5]||=e=>X(H.value.url)},{icon:o(()=>[f(e,{name:`copy`,size:16})]),default:o(()=>[i[12]||=b(`span`,null,`کپی آدرس`,-1)]),_:1}),a(F).isAdmin?(s(),u(Q,{key:0,title:`این تصویر حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:Y},{default:o(()=>[f(c,{danger:``,class:`col-span-2 h-10 !flex !items-center !justify-center !gap-1`},{icon:o(()=>[f(e,{name:`trash`,size:16})]),default:o(()=>[i[13]||=b(`span`,null,`حذف تصویر`,-1)]),_:1})]),_:1})):d(``,!0)])]),_:1})],64)):d(``,!0)]),_:1},8,[`open`,`width`,`height`,`placement`,`body-style`])],64)}}});export{F as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/MessagesPage-Bb_X9ABq.js b/apps/admin/dist/assets/MessagesPage-Bb_X9ABq.js new file mode 100644 index 0000000..2adaa53 --- /dev/null +++ b/apps/admin/dist/assets/MessagesPage-Bb_X9ABq.js @@ -0,0 +1 @@ +import{i as e,r as t,t as n}from"./VuesaxIcon-B2OgulS6.js";import{Bt as r,Ct as i,Dt as a,It as o,Lt as s,Mt as c,Nt as l,Rt as u,Tt as d,_t as f,a as p,ct as m,dt as h,ft as g,gt as _,ht as v,i as y,kt as b,lt as x,n as S,ot as C,pt as w,t as T,ut as E}from"./index-BuGK6ptM.js";import{a as D,r as ee}from"./format-B9MYDQJN.js";import{t as O}from"./PageHeader-3Ryvg2HD.js";var te={class:`!hidden lg:!block`},k={class:`mobile-filter-bar sticky top-[52px] z-20 bg-white/95 backdrop-blur-md -mx-3 px-3 py-2 border-b border-slate-100 flex items-center gap-1.5 overflow-x-auto no-scrollbar mb-3 lg:!hidden`},ne=[`onClick`],re={class:`whitespace-pre-line leading-7`},ie=[`href`],ae={class:`mobile-messages-view block lg:!hidden pb-20`},oe={key:1,class:`space-y-3`},se={class:`flex items-start justify-between gap-2`},ce={class:`flex items-center gap-1.5`},le={class:`font-bold text-[14px] text-slate-800`},ue={key:0,class:`size-2 rounded-full bg-orange-500 animate-pulse`},de={key:0,class:`text-xs text-slate-500 font-medium mt-0.5`},fe={class:`flex items-center justify-between border-t border-slate-100 pt-2.5 mt-2.5`},pe={class:`text-[11px] text-slate-400 font-mono`},me=[`href`],he={dir:`ltr`,class:`font-mono`},ge=[`onClick`],A={key:0,class:`text-xs text-slate-600 line-clamp-2 leading-relaxed bg-slate-50/70 p-2.5 rounded-lg border border-slate-100`},j={key:1,class:`text-xs text-slate-700 whitespace-pre-line leading-relaxed bg-orange-50/30 p-3 rounded-lg border border-orange-100`},M={class:`flex items-center justify-between border-t border-slate-100 pt-2.5 mt-3`},N={class:`flex items-center gap-2`},P={type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-rose-500 bg-rose-50 hover:bg-rose-100 active:bg-rose-200 transition`,title:`حذف پیام`},F={key:2,class:`flex items-center justify-between gap-3 pt-4 px-1`},I={class:`text-xs text-slate-500 font-mono`},L=20,R=f({__name:`MessagesPage`,setup(f){let R=T(),z=p(),B=o(z.query.status||`ALL`),V=t.map(t=>({value:t,label:e[t]})),H=[{value:`ALL`,label:`همه`},...V],U=o(1),W=o([]),G=o(0),K=o(!1),q=o([]),J=x(()=>Math.ceil(G.value/L)||1);async function Y(){K.value=!0;try{let e=await S(`/admin/messages`,{query:{status:B.value===`ALL`?void 0:B.value,page:U.value,pageSize:L}});W.value=e.items,G.value=e.total}catch(e){C.error(y(e))}finally{K.value=!1}}async function X(t,n){try{await S(`/admin/messages/${t.id}`,{method:`PATCH`,body:{status:n}}),t.status=n,C.success(`وضعیت پیام به «${e[n]}» تغییر کرد`)}catch(e){C.error(y(e))}}function _e(e){let t=q.value.indexOf(e.id);t>-1?q.value.splice(t,1):(q.value.push(e.id),e.status===`NEW`&&X(e,`READ`))}function ve(e,t){e&&t.status===`NEW`&&X(t,`READ`)}async function Z(e){try{await S(`/admin/messages/${e.id}`,{method:`DELETE`}),C.success(`پیام حذف شد`),await Y()}catch(e){C.error(y(e))}}function Q(e){e<1||e>J.value||(U.value=e,Y())}let $={NEW:`orange`,READ:`blue`,ARCHIVED:`default`},ye=[{title:`نام`,dataIndex:`name`},{title:`سازمان`,dataIndex:`org`},{title:`تلفن`,key:`phone`,width:150},{title:`تاریخ`,key:`date`,width:170},{title:`وضعیت`,key:`status`,width:140},{title:``,key:`actions`,width:60}];return c(B,()=>{U.value=1,Y()}),i(Y),(t,i)=>{let o=b(`a-segmented`),c=b(`a-badge`),f=b(`a-select`),p=b(`a-button`),y=b(`a-popconfirm`),x=b(`a-table`),S=b(`a-card`),C=b(`a-empty`),T=b(`a-tag`),z=b(`Phone`),be=b(`a-spin`);return d(),w(m,null,[_(O,{title:`پیام‌های تماس`,subtitle:`${s(ee)(G.value)} پیام — استعلام‌ها و درخواست‌های ثبت‌شده از سایت`},{default:l(()=>[E(`div`,te,[_(o,{value:B.value,"onUpdate:value":i[0]||=e=>B.value=e,options:H},null,8,[`value`])])]),_:1},8,[`subtitle`]),E(`div`,k,[(d(),w(m,null,a(H,e=>E(`button`,{key:e.value,type:`button`,class:u([`px-3 py-1.5 rounded-full text-xs font-bold transition shrink-0 select-none cursor-pointer`,B.value===e.value?`bg-orange-600 text-white shadow-xs`:`bg-slate-100 text-slate-600 active:bg-slate-200`]),onClick:t=>B.value=e.value},r(e.label),11,ne)),64))]),_(S,{class:`!hidden lg:!block`,"body-style":{padding:0}},{default:l(()=>[_(x,{columns:ye,"data-source":W.value,loading:K.value,"row-key":`id`,scroll:{x:760},pagination:{current:U.value,pageSize:L,total:G.value,showSizeChanger:!1,onChange:e=>{U.value=e,Y()}},onExpand:ve},{expandedRowRender:l(({record:e})=>[E(`p`,re,r(e.message||`— بدون توضیح —`),1)]),bodyCell:l(({column:e,record:t})=>[e.key===`phone`?(d(),w(`a`,{key:0,href:`tel:${t.phone}`,dir:`ltr`,class:`hover:text-orange-600 font-mono`},r(t.phone),9,ie)):e.key===`date`?(d(),w(m,{key:1},[v(r(s(D)(t.createdAt)),1)],64)):e.key===`status`?(d(),h(f,{key:2,value:t.status,size:`small`,class:`w-28`,options:s(V),onChange:e=>X(t,e)},{suffixIcon:l(()=>[_(c,{color:$[t.status]},null,8,[`color`])]),_:2},1032,[`value`,`options`,`onChange`])):e.key===`actions`?(d(),w(m,{key:3},[s(R).isAdmin?(d(),h(y,{key:0,title:`این پیام حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:e=>Z(t)},{default:l(()=>[_(p,{size:`small`,danger:``},{icon:l(()=>[_(n,{name:`trash`,size:16})]),_:1})]),_:1},8,[`onConfirm`])):g(``,!0)],64)):g(``,!0)]),_:1},8,[`data-source`,`loading`,`pagination`])]),_:1}),E(`div`,ae,[_(be,{spinning:K.value},{default:l(()=>[!W.value.length&&!K.value?(d(),h(C,{key:0,description:`پیامی با این وضعیت موجود نیست`,class:`py-12`})):(d(),w(`div`,oe,[(d(!0),w(m,null,a(W.value,t=>(d(),w(`div`,{key:t.id,class:u([`bg-white rounded-xl border border-slate-200/80 p-3.5 shadow-2xs transition`,{"border-orange-300 ring-2 ring-orange-100":t.status===`NEW`}])},[E(`div`,se,[E(`div`,null,[E(`div`,ce,[E(`span`,le,r(t.name),1),t.status===`NEW`?(d(),w(`span`,ue)):g(``,!0)]),t.org?(d(),w(`div`,de,r(t.org),1)):g(``,!0)]),_(T,{color:$[t.status],class:`!m-0 !text-[11px] !font-bold`},{default:l(()=>[v(r(s(e)[t.status]),1)]),_:2},1032,[`color`])]),E(`div`,fe,[E(`span`,pe,r(s(D)(t.createdAt)),1),E(`a`,{href:`tel:`+t.phone,class:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-emerald-50 text-emerald-700 border border-emerald-200/70 font-bold text-xs active:bg-emerald-100 active:scale-95 transition`,title:`تماس مستقیم با مشتری`},[_(z,{size:13,class:`text-emerald-600 shrink-0`}),E(`span`,he,r(t.phone),1)],8,me)]),E(`div`,{class:`mt-3 cursor-pointer`,onClick:e=>_e(t)},[q.value.includes(t.id)?(d(),w(`div`,j,[v(r(t.message||`— بدون توضیح —`)+` `,1),i[4]||=E(`div`,{class:`text-[10px] text-slate-400 font-medium mt-2`},`بستن متن پیام ↑`,-1)])):(d(),w(`div`,A,[v(r(t.message||`— بدون توضیح —`)+` `,1),i[3]||=E(`div`,{class:`text-[10px] text-orange-600 font-bold mt-1`},`مشاهده متن کامل پیام ←`,-1)]))],8,ge),E(`div`,M,[E(`div`,N,[i[5]||=E(`span`,{class:`text-[11px] text-slate-400`},`وضعیت:`,-1),_(f,{value:t.status,size:`small`,class:`w-28 !text-xs`,options:s(V),onChange:e=>X(t,e)},null,8,[`value`,`options`,`onChange`])]),s(R).isAdmin?(d(),h(y,{key:0,title:`این پیام حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:e=>Z(t)},{default:l(()=>[E(`button`,P,[_(n,{name:`trash`,size:16})])]),_:1},8,[`onConfirm`])):g(``,!0)])],2))),128))])),J.value>1?(d(),w(`div`,F,[_(p,{disabled:U.value<=1,class:`!flex-1 !h-10 !rounded-xl !font-medium`,onClick:i[1]||=e=>Q(U.value-1)},{default:l(()=>[...i[6]||=[v(` صفحه قبلی `,-1)]]),_:1},8,[`disabled`]),E(`span`,I,r(U.value.toLocaleString(`fa-IR`))+` / `+r(J.value.toLocaleString(`fa-IR`)),1),_(p,{disabled:U.value>=J.value,class:`!flex-1 !h-10 !rounded-xl !font-medium`,onClick:i[2]||=e=>Q(U.value+1)},{default:l(()=>[...i[7]||=[v(` صفحه بعدی `,-1)]]),_:1},8,[`disabled`])])):g(``,!0)]),_:1},8,[`spinning`])])],64)}}});export{R as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/PageHeader-3Ryvg2HD.js b/apps/admin/dist/assets/PageHeader-3Ryvg2HD.js new file mode 100644 index 0000000..564209f --- /dev/null +++ b/apps/admin/dist/assets/PageHeader-3Ryvg2HD.js @@ -0,0 +1 @@ +import{n as e,t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,Nt as r,Ot as i,Tt as a,_t as o,dt as s,ft as c,gt as l,kt as u,pt as d,ut as f}from"./index-BuGK6ptM.js";var p={class:`page-header`},m={class:`page-header__main`},h={class:`min-w-0`},g={class:`page-header__title`},_={key:0,class:`page-header__subtitle`},v={key:0,class:`page-header__actions`},y=e(o({__name:`PageHeader`,props:{title:{},subtitle:{},back:{}},setup(e){return(o,y)=>{let b=u(`RouterLink`);return a(),d(`div`,p,[f(`div`,m,[e.back?(a(),s(b,{key:0,to:e.back,class:`page-header__back`,title:`بازگشت`},{default:r(()=>[l(t,{name:`arrow-right`,size:18})]),_:1},8,[`to`])):c(``,!0),f(`div`,h,[f(`h1`,g,n(e.title),1),e.subtitle?(a(),d(`p`,_,n(e.subtitle),1)):c(``,!0)])]),o.$slots.default?(a(),d(`div`,v,[i(o.$slots,`default`,{},void 0,!0)])):c(``,!0)])}}}),[[`__scopeId`,`data-v-c0b72af8`]]);export{y as t}; \ No newline at end of file diff --git a/apps/admin/dist/assets/PageHeader-ChIv12OH.css b/apps/admin/dist/assets/PageHeader-ChIv12OH.css new file mode 100644 index 0000000..dd4afd3 --- /dev/null +++ b/apps/admin/dist/assets/PageHeader-ChIv12OH.css @@ -0,0 +1 @@ +.page-header[data-v-c0b72af8]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex;flex:none!important}.page-header__main[data-v-c0b72af8]{align-items:center;gap:8px;min-width:0;display:flex}.page-header__back[data-v-c0b72af8]{color:#475569;background:#f1f5f9;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;text-decoration:none;transition:all .15s;display:inline-flex}.page-header__back[data-v-c0b72af8]:hover{color:#0f172a;background:#e2e8f0}.page-header__title[data-v-c0b72af8]{color:#0f172a;margin:0;font-size:16px;font-weight:700;line-height:1.3}@media (width>=640px){.page-header__title[data-v-c0b72af8]{font-size:18px}}.page-header__subtitle[data-v-c0b72af8]{color:#94a3b8;margin:2px 0 0;font-size:12px;line-height:1.4}.page-header__actions[data-v-c0b72af8]{flex-wrap:wrap;align-items:center;gap:8px;display:flex} diff --git a/apps/admin/dist/assets/ProductEditPage-DTSEsrWG.js b/apps/admin/dist/assets/ProductEditPage-DTSEsrWG.js new file mode 100644 index 0000000..28b38d2 --- /dev/null +++ b/apps/admin/dist/assets/ProductEditPage-DTSEsrWG.js @@ -0,0 +1,6 @@ +import{t as e,v as t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,Ct as r,Dt as i,It as a,Lt as o,Mt as s,Nt as c,Rt as l,Tt as u,_t as d,a as f,bt as p,ct as m,dt as h,ft as g,gt as _,ht as v,i as y,jt as b,kt as x,lt as S,n as C,o as ee,ot as w,pt as T,st as te,ut as E}from"./index-BuGK6ptM.js";import{t as D}from"./format-B9MYDQJN.js";import{t as ne}from"./PageHeader-3Ryvg2HD.js";import{n as re,t as O}from"./FormField-CiVT7mqC.js";import{n as ie,r as ae,t as oe}from"./ListEditor-C8F91lSJ.js";import{t as se}from"./slug-Flyc3fOh.js";var ce=d({__name:`LinesInput`,props:p({placeholder:{},rows:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=b(e,`modelValue`),n=e=>e.split(` +`).map(e=>e.trim()).filter(Boolean),r=a(t.value.join(` +`));s(t,e=>{n(r.value).join(` +`)!==e.join(` +`)&&(r.value=e.join(` +`))});let i=()=>{t.value=n(r.value)};return(t,n)=>{let a=x(`a-textarea`);return u(),h(a,{value:r.value,"onUpdate:value":n[0]||=e=>r.value=e,placeholder:e.placeholder,"auto-size":{minRows:e.rows??3,maxRows:14},onChange:i},null,8,[`value`,`placeholder`,`auto-size`])}}}),le={class:`!hidden lg:!flex items-center gap-2`},ue=[`href`],de={class:`mobile-edit-tabs lg:!hidden flex items-center gap-1.5 overflow-x-auto pb-2.5 mb-3 sticky top-[52px] z-20 bg-white/95 backdrop-blur-md -mx-3 px-3 pt-1 border-b border-slate-100 no-scrollbar`},fe=[`onClick`],pe={class:`grid gap-6 xl:grid-cols-3`},me={class:`space-y-6 xl:col-span-2`},he={class:`grid gap-x-4 md:grid-cols-2`},ge={class:`grid gap-x-4 md:grid-cols-5`},_e={class:`mt-6 grid gap-x-4 md:grid-cols-2`},k={class:`space-y-6`},A={class:`ms-2`},j={class:`mb-1.5 flex items-center justify-between`},M={key:0,class:`text-[11px] text-orange-600 font-mono font-bold`},N={class:`flex flex-wrap gap-2.5`},P=[`src`],F=[`onClick`],I={class:`fixed bottom-0 start-0 end-0 z-30 bg-white/95 backdrop-blur-md border-t border-slate-200/80 p-3 shadow-lg flex items-center justify-between gap-3 lg:!hidden`},ve={class:`flex items-center gap-2`},ye={class:`flex items-center gap-2`},be=[`href`],L=d({__name:`ProductEditPage`,setup(d){let p=f(),h=ee(),b=S(()=>p.params.id?Number(p.params.id):null),L=()=>({categoryId:Number(p.query.categoryId)||void 0,groupId:null,code:``,slug:``,name:``,nameEn:``,desc:``,specs:[],variants:[],details:``,brand:``,origin:``,sizes:[],standards:[],features:[],applications:[],attributes:[],packaging:``,minOrder:``,seoTitle:``,seoDescription:``,imageId:null,galleryIds:[],isPublished:!0}),{model:R,validate:xe,handleError:Se,reset:z}=re(t,L()),B=a(null),V=a([]),H=a(!1),U=a([]),W=a([]),G=a(!1),K=a(!1),q=a(`general`),Ce=[{key:`general`,label:`اطلاعات اصلی`},{key:`specs`,label:`مشخصات فنی`},{key:`desc`,label:`توضیحات و کاربرد`},{key:`media`,label:`تصاویر و سفارش`},{key:`seo`,label:`سئو و انتشار`}],J=S(()=>U.value.find(e=>e.id===R.value.categoryId)),Y=S({get:()=>R.value.groupId??void 0,set:e=>R.value.groupId=e??null}),we=()=>({name:``,value:``});async function X(e){e&&(R.value.groupId=null),W.value=R.value.categoryId?(await C(`/admin/categories/${R.value.categoryId}`)).groups:[]}async function Z(){G.value=!0;try{if(U.value=await C(`/admin/categories`),b.value){let e=await C(`/admin/products/${b.value}`);z({categoryId:e.categoryId,groupId:e.groupId,code:e.code,slug:e.slug,name:e.name,nameEn:e.nameEn,desc:e.desc,specs:e.specs,variants:e.variants,details:e.details,brand:e.brand,origin:e.origin,sizes:e.sizes,standards:e.standards,features:e.features,applications:e.applications,attributes:e.attributes??[],packaging:e.packaging,minOrder:e.minOrder,seoTitle:e.seoTitle,seoDescription:e.seoDescription,imageId:e.imageId,galleryIds:e.gallery.map(e=>e.id),isPublished:e.isPublished}),B.value=e.image,V.value=e.gallery}else z(L()),B.value=null,V.value=[];await X(!1)}catch(e){w.error(y(e))}finally{G.value=!1}}function Q(e){B.value=e,R.value.imageId=e.id}function Te(e){V.value.some(t=>t.id===e.id)||(V.value=[...V.value,e])}function Ee(e){V.value=V.value.filter(t=>t.id!==e)}s(V,e=>R.value.galleryIds=e.map(e=>e.id));async function $(){let e=xe();if(e){K.value=!0;try{let t=await C(b.value?`/admin/products/${b.value}`:`/admin/products`,{method:b.value?`PUT`:`POST`,body:e});w.success(`محصول ذخیره شد`),b.value?await Z():await h.replace({name:`product-edit`,params:{id:t.id}})}catch(e){Se(e)}finally{K.value=!1}}}return s(b,Z),r(Z),(t,r)=>{let a=x(`a-button`),s=x(`a-input`),d=x(`a-textarea`),f=x(`a-select`),p=x(`a-card`),h=x(`a-switch`),y=x(`a-form`),S=x(`a-spin`);return u(),T(m,null,[_(ne,{title:b.value?`ویرایش محصول: ${o(R).name}`:`محصول جدید`,back:`/products`},{default:c(()=>[E(`div`,le,[b.value&&J.value?.isPublished&&o(R).isPublished?(u(),T(`a`,{key:0,href:`${o(D)}/products/${o(R).slug}`,target:`_blank`,rel:`noopener`},[_(a,null,{default:c(()=>[...r[28]||=[v(`مشاهده در سایت`,-1)]]),_:1})],8,ue)):g(``,!0),_(a,{type:`primary`,loading:K.value,onClick:$},{icon:c(()=>[_(e,{name:`save-2`,size:16})]),default:c(()=>[r[29]||=v(` ذخیره `,-1)]),_:1},8,[`loading`])])]),_:1},8,[`title`]),_(S,{spinning:G.value},{default:c(()=>[_(y,{layout:`vertical`,class:`pb-24 lg:pb-6`,onSubmit:te($,[`prevent`])},{default:c(()=>[E(`div`,de,[(u(),T(m,null,i(Ce,e=>E(`button`,{key:e.key,type:`button`,class:l([`px-3 py-1.5 rounded-full text-xs font-bold transition shrink-0 select-none cursor-pointer`,q.value===e.key?`bg-orange-600 text-white shadow-xs`:`bg-slate-100 text-slate-600 active:bg-slate-200`]),onClick:t=>q.value=e.key},n(e.label),11,fe)),64))]),E(`div`,pe,[E(`div`,me,[_(p,{title:`اطلاعات محصول`,class:l(q.value!==`general`&&`max-lg:hidden`)},{default:c(()=>[E(`div`,he,[_(O,{path:`name`,label:`نام محصول`,required:``},{default:c(()=>[_(s,{value:o(R).name,"onUpdate:value":r[0]||=e=>o(R).name=e},null,8,[`value`])]),_:1}),_(O,{path:`nameEn`,label:`نام انگلیسی`},{default:c(()=>[_(s,{value:o(R).nameEn,"onUpdate:value":r[1]||=e=>o(R).nameEn=e,class:`ltr-input`},null,8,[`value`])]),_:1}),_(O,{path:`code`,label:`کد محصول`,required:``,hint:`یکتا، مثلاً IP-G20`},{default:c(()=>[_(s,{value:o(R).code,"onUpdate:value":r[2]||=e=>o(R).code=e,class:`ltr-input`},null,8,[`value`])]),_:1}),_(O,{path:`slug`,label:`اسلاگ (آدرس صفحه)`,required:``,hint:`آدرس: /products/${o(R).slug||`...`}`},{default:c(()=>[_(s,{value:o(R).slug,"onUpdate:value":r[4]||=e=>o(R).slug=e,class:`ltr-input`},{suffix:c(()=>[E(`a`,{class:`text-xs`,onClick:r[3]||=e=>o(R).slug=o(se)(o(R).code||o(R).nameEn||``)},`ساخت از کد`)]),_:1},8,[`value`])]),_:1},8,[`hint`]),_(O,{path:`desc`,label:`توضیح کوتاه`,hint:`زیر عنوان صفحه محصول و روی کارت محصول نمایش داده می‌شود`,class:`md:col-span-2`},{default:c(()=>[_(d,{value:o(R).desc,"onUpdate:value":r[5]||=e=>o(R).desc=e,"auto-size":{minRows:2,maxRows:5}},null,8,[`value`])]),_:1}),_(O,{path:`specs`,label:`برچسب‌های کوتاه`,hint:`ویژگی‌های یک‌کلمه‌ای روی کارت؛ هر مورد را بنویسید و Enter بزنید`,class:`md:col-span-2`},{default:c(()=>[_(f,{value:o(R).specs,"onUpdate:value":r[6]||=e=>o(R).specs=e,mode:`tags`,open:!1,placeholder:`مثلاً: ضد برش`},null,8,[`value`])]),_:1})])]),_:1},8,[`class`]),_(p,{title:`توضیحات کامل (صفحه محصول)`,class:l(q.value!==`desc`&&`max-lg:hidden`)},{default:c(()=>[_(O,{path:`details`,hint:`برای شروع پاراگراف جدید یک خط خالی بگذارید. اگر خالی بماند، توضیح دسته نمایش داده می‌شود.`},{default:c(()=>[_(d,{value:o(R).details,"onUpdate:value":r[7]||=e=>o(R).details=e,"auto-size":{minRows:6,maxRows:20},placeholder:`معرفی محصول، جنس و ساختار، مزایا، نکات نگهداری و ...`},null,8,[`value`])]),_:1})]),_:1},8,[`class`]),_(p,{title:`ویژگی‌ها و کاربردها`,class:l(q.value!==`desc`&&`max-lg:hidden`)},{default:c(()=>[_(O,{path:`features`,label:`ویژگی‌های کلیدی`,hint:`هر ویژگی در یک خط`},{default:c(()=>[_(ce,{modelValue:o(R).features,"onUpdate:modelValue":r[8]||=e=>o(R).features=e,rows:4,placeholder:`مثلاً: زیره ضد لغزش و مقاوم در برابر روغن`},null,8,[`modelValue`])]),_:1}),_(O,{path:`applications`,label:`کاربردها / محیط‌های مناسب`,hint:`هر مورد را بنویسید و Enter بزنید`},{default:c(()=>[_(f,{value:o(R).applications,"onUpdate:value":r[9]||=e=>o(R).applications=e,mode:`tags`,open:!1,placeholder:`مثلاً: پالایشگاه`},null,8,[`value`])]),_:1})]),_:1},8,[`class`]),_(p,{title:`مشخصات فنی`,"body-style":{background:`#fafafa`},class:l(q.value!==`specs`&&`max-lg:hidden`)},{default:c(()=>[r[30]||=E(`p`,{class:`mb-4 text-sm text-gray-500`},` ردیف‌های جدول مشخصات صفحه محصول (مثلاً «جنس رویه» ← «چرم طبیعی»). کد، دسته، برند و موارد زیر به‌صورت خودکار به جدول اضافه می‌شوند. `,-1),_(oe,{modelValue:o(R).attributes,"onUpdate:modelValue":r[10]||=e=>o(R).attributes=e,create:we,max:40,"add-label":`افزودن ردیف مشخصات`,"item-title":e=>e.name},{default:c(({item:e,index:t})=>[E(`div`,ge,[_(O,{path:`attributes.${t}.name`,label:`عنوان`,required:``,class:`md:col-span-2`},{default:c(()=>[_(s,{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`مثلاً: جنس رویه`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),_(O,{path:`attributes.${t}.value`,label:`مقدار`,required:``,class:`md:col-span-3`},{default:c(()=>[_(s,{value:e.value,"onUpdate:value":t=>e.value=t,placeholder:`مثلاً: چرم طبیعی گاوی`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`]),E(`div`,_e,[_(O,{path:`standards`,label:`استانداردها و گواهی‌ها`,hint:`مثلاً EN 388 — هر مورد + Enter`},{default:c(()=>[_(f,{value:o(R).standards,"onUpdate:value":r[11]||=e=>o(R).standards=e,mode:`tags`,open:!1,class:`ltr-input`},null,8,[`value`])]),_:1}),_(O,{path:`sizes`,label:`سایزها`,hint:`مثلاً 40، 41، XL — هر مورد + Enter`},{default:c(()=>[_(f,{value:o(R).sizes,"onUpdate:value":r[12]||=e=>o(R).sizes=e,mode:`tags`,open:!1},null,8,[`value`])]),_:1}),_(O,{path:`variants`,label:`مدل‌ها / رنگ‌ها`,hint:`هر مورد + Enter`,class:`md:col-span-2`},{default:c(()=>[_(f,{value:o(R).variants,"onUpdate:value":r[13]||=e=>o(R).variants=e,mode:`tags`,open:!1,placeholder:`مثلاً: مشکی/زرد`},null,8,[`value`])]),_:1})])]),_:1},8,[`class`])]),E(`div`,k,[_(p,{title:`انتشار`,class:l(q.value!==`seo`&&`max-lg:hidden`)},{default:c(()=>[_(O,{path:`isPublished`},{default:c(()=>[_(h,{checked:o(R).isPublished,"onUpdate:checked":r[14]||=e=>o(R).isPublished=e},null,8,[`checked`]),E(`span`,A,n(o(R).isPublished?`در سایت نمایش داده می‌شود`:`پیش‌نویس (مخفی)`),1)]),_:1})]),_:1},8,[`class`]),_(p,{title:`دسته‌بندی`,class:l(q.value!==`general`&&`max-lg:hidden`)},{default:c(()=>[_(O,{path:`categoryId`,label:`دسته`,required:``},{default:c(()=>[_(f,{value:o(R).categoryId,"onUpdate:value":r[15]||=e=>o(R).categoryId=e,placeholder:`انتخاب دسته`,options:U.value.map(e=>({value:e.id,label:e.name})),onChange:r[16]||=e=>X(!0)},null,8,[`value`,`options`])]),_:1}),_(O,{path:`groupId`,label:`زیرگروه`},{default:c(()=>[_(f,{value:Y.value,"onUpdate:value":r[17]||=e=>Y.value=e,"allow-clear":``,disabled:!W.value.length,placeholder:W.value.length?`بدون زیرگروه`:`این دسته زیرگروه ندارد`,options:W.value.map(e=>({value:e.id,label:e.name}))},null,8,[`value`,`disabled`,`placeholder`,`options`])]),_:1})]),_:1},8,[`class`]),_(p,{title:`تصاویر محصول`,class:l(q.value!==`media`&&`max-lg:hidden`)},{default:c(()=>[E(`div`,null,[r[31]||=E(`div`,{class:`mb-2 flex items-center justify-between`},[E(`span`,{class:`text-xs font-bold text-slate-700`},`تصویر اصلی (کاور)`),E(`span`,{class:`text-[11px] text-slate-400`},`نمایش در لیست‌ها و کارت‌ها`)],-1),_(O,{path:`imageId`,hint:`در صورت عدم انتخاب، کاور دسته‌بندی استفاده می‌شود`},{default:c(()=>[_(ie,{url:B.value?.url,clearable:``,onPick:Q,onClear:r[18]||=e=>{B.value=null,o(R).imageId=null}},null,8,[`url`])]),_:1})]),r[35]||=E(`div`,{class:`my-5 border-t border-slate-100`},null,-1),E(`div`,null,[E(`div`,j,[r[32]||=E(`span`,{class:`text-xs font-bold text-slate-700`},`گالری تصاویر بیشتر`,-1),V.value.length?(u(),T(`span`,M,n(V.value.length)+` تصویر`,1)):g(``,!0)]),r[34]||=E(`p`,{class:`mb-3 text-xs text-slate-400`},`تصاویری که در اسلایدر جزئیات محصول نمایش داده می‌شوند.`,-1),E(`div`,N,[(u(!0),T(m,null,i(V.value,t=>(u(),T(`div`,{key:t.id,class:`relative size-20 overflow-hidden rounded-lg border border-slate-200 bg-slate-50`},[E(`img`,{src:t.url,alt:``,class:`size-full object-contain p-1`},null,8,P),E(`button`,{type:`button`,class:`absolute end-1 top-1 flex size-5 items-center justify-center rounded-full bg-red-500 text-white shadow-xs transition hover:bg-red-600 cursor-pointer`,title:`حذف از گالری`,onClick:e=>Ee(t.id)},[_(e,{name:`close-circle`,size:12})],8,F)]))),128)),E(`button`,{type:`button`,class:`flex size-20 flex-col items-center justify-center gap-1 rounded-lg border border-dashed border-slate-300 text-slate-400 hover:border-[#ff5a00] hover:text-[#ff5a00] hover:bg-orange-50/30 transition cursor-pointer`,onClick:r[19]||=e=>H.value=!0},[_(e,{name:`add`,size:18}),r[33]||=E(`span`,{class:`text-[10px] font-medium`},`افزودن`,-1)])])]),_(ae,{open:H.value,"onUpdate:open":r[20]||=e=>H.value=e,onSelect:Te},null,8,[`open`])]),_:1},8,[`class`]),_(p,{title:`برند و سفارش`,class:l(q.value!==`media`&&`max-lg:hidden`)},{default:c(()=>[_(O,{path:`brand`,label:`برند`},{default:c(()=>[_(s,{value:o(R).brand,"onUpdate:value":r[21]||=e=>o(R).brand=e},null,8,[`value`])]),_:1}),_(O,{path:`origin`,label:`کشور سازنده`},{default:c(()=>[_(s,{value:o(R).origin,"onUpdate:value":r[22]||=e=>o(R).origin=e,placeholder:`مثلاً: ایران`},null,8,[`value`])]),_:1}),_(O,{path:`packaging`,label:`بسته‌بندی`},{default:c(()=>[_(s,{value:o(R).packaging,"onUpdate:value":r[23]||=e=>o(R).packaging=e,placeholder:`مثلاً: کارتن ۱۲ جفتی`},null,8,[`value`])]),_:1}),_(O,{path:`minOrder`,label:`حداقل سفارش`},{default:c(()=>[_(s,{value:o(R).minOrder,"onUpdate:value":r[24]||=e=>o(R).minOrder=e,placeholder:`مثلاً: ۱ کارتن`},null,8,[`value`])]),_:1})]),_:1},8,[`class`]),_(p,{title:`سئو`,class:l(q.value!==`seo`&&`max-lg:hidden`)},{default:c(()=>[_(O,{path:`seoTitle`,label:`عنوان صفحه`,hint:`خالی = نام محصول`},{default:c(()=>[_(s,{value:o(R).seoTitle,"onUpdate:value":r[25]||=e=>o(R).seoTitle=e,maxlength:120,"show-count":``},null,8,[`value`])]),_:1}),_(O,{path:`seoDescription`,label:`توضیحات متا`,hint:`خالی = توضیح کوتاه`},{default:c(()=>[_(d,{value:o(R).seoDescription,"onUpdate:value":r[26]||=e=>o(R).seoDescription=e,maxlength:300,"show-count":``,"auto-size":{minRows:3}},null,8,[`value`])]),_:1})]),_:1},8,[`class`])])]),E(`div`,I,[E(`div`,ve,[_(h,{checked:o(R).isPublished,"onUpdate:checked":r[27]||=e=>o(R).isPublished=e,size:`small`},null,8,[`checked`]),E(`span`,{class:l([`text-xs`,o(R).isPublished?`text-emerald-600 font-bold`:`text-slate-400`])},n(o(R).isPublished?`منتشرشده`:`پیش‌نویس`),3)]),E(`div`,ye,[b.value&&J.value?.isPublished&&o(R).isPublished?(u(),T(`a`,{key:0,href:`${o(D)}/products/${o(R).slug}`,target:`_blank`,rel:`noopener`,class:`size-10 rounded-xl bg-slate-100 flex items-center justify-center text-slate-600 hover:text-orange-600 active:bg-slate-200`,title:`مشاهده در سایت`},[_(e,{name:`export`,size:18})],8,be)):g(``,!0),_(a,{type:`primary`,class:`!h-10 !px-5 !rounded-xl !font-bold !flex !items-center !gap-1.5 !shadow-sm`,loading:K.value,onClick:$},{icon:c(()=>[_(e,{name:`save-2`,size:16})]),default:c(()=>[r[36]||=v(` ذخیره محصول `,-1)]),_:1},8,[`loading`])])])]),_:1})]),_:1},8,[`spinning`])],64)}}});export{L as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/ProductsPage-BoL7n7Xx.css b/apps/admin/dist/assets/ProductsPage-BoL7n7Xx.css new file mode 100644 index 0000000..7ea97f3 --- /dev/null +++ b/apps/admin/dist/assets/ProductsPage-BoL7n7Xx.css @@ -0,0 +1 @@ +.ap[data-v-7f365815]{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.ap__head[data-v-7f365815]{background:#fff;border-bottom:1px solid #eef1f6;flex-shrink:0;padding:16px 16px 12px}.ap__body[data-v-7f365815]{flex:1;min-height:0;padding:16px;overflow:auto}.ap__body--locked[data-v-7f365815]{flex-direction:column;display:flex;overflow:hidden}@media (width<=1023px){.ap[data-v-7f365815]{height:auto;min-height:100%;overflow:visible}.ap__head[data-v-7f365815]{z-index:20;background:#fff;padding:10px 12px;position:sticky;top:52px;box-shadow:0 1px 3px #0f172a08}.ap__body[data-v-7f365815]{padding:12px;overflow:visible}.ap__body--locked[data-v-7f365815]{height:auto;overflow:visible}}.table-shell[data-v-a64d8be2],.table-shell[data-v-a64d8be2] .ant-table-wrapper,.table-shell[data-v-a64d8be2] .ant-spin-nested-loading,.table-shell[data-v-a64d8be2] .ant-spin-container{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.table-shell[data-v-a64d8be2] .ant-table{flex:1;min-height:0}.table-shell[data-v-a64d8be2] .ant-table-pagination{flex-shrink:0;margin:12px 0 0!important}.toolbar[data-v-a64d8be2]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.toolbar__start[data-v-a64d8be2]{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.toolbar__search[data-v-a64d8be2]{flex:1;min-width:200px;max-width:360px}.toolbar__new[data-v-a64d8be2]{margin-inline-start:auto}.filter-panel[data-v-a64d8be2]{flex-direction:column;gap:10px;display:flex}.filter-panel__hint[data-v-a64d8be2]{color:#94a3b8;margin:0;font-size:12px;line-height:1.6} diff --git a/apps/admin/dist/assets/ProductsPage-CVHBMUNz.js b/apps/admin/dist/assets/ProductsPage-CVHBMUNz.js new file mode 100644 index 0000000..d1e1be9 --- /dev/null +++ b/apps/admin/dist/assets/ProductsPage-CVHBMUNz.js @@ -0,0 +1 @@ +import{n as e,t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,Ct as r,Dt as i,Ft as a,It as o,Lt as s,Mt as c,Nt as l,Ot as u,Rt as d,St as f,Tt as p,_t as m,a as h,ct as g,dt as _,ft as v,gt as y,ht as b,i as x,kt as S,lt as C,n as w,o as ee,ot as T,pt as E,t as D,ut as O,xt as k}from"./index-BuGK6ptM.js";var A={class:`ap`},j={key:0,class:`ap__head`},te=e(m({__name:`AdminPage`,props:{lockBody:{type:Boolean}},setup(e){return(t,n)=>(p(),E(`div`,A,[t.$slots.head?(p(),E(`header`,j,[u(t.$slots,`head`,{},void 0,!0)])):v(``,!0),O(`div`,{class:d([`ap__body`,{"ap__body--locked":e.lockBody}])},[u(t.$slots,`default`,{},void 0,!0)],2)]))}}),[[`__scopeId`,`data-v-7f365815`]]),ne={class:`toolbar !hidden lg:!flex`},re={class:`toolbar__start`},ie={class:`filter-panel`},ae={key:0,class:`filter-panel__hint`},oe={class:`mobile-products-toolbar lg:!hidden flex flex-col gap-2`},se={class:`flex items-center gap-2 w-full`},ce={key:0,class:`flex items-center gap-1.5 overflow-x-auto py-1 text-[11px] no-scrollbar`},le={key:0,class:`inline-flex items-center gap-1 bg-slate-100 text-slate-700 px-2 py-0.5 rounded-full shrink-0`},ue={key:1,class:`inline-flex items-center gap-1 bg-orange-50 text-orange-700 border border-orange-200/60 px-2 py-0.5 rounded-full shrink-0`},de={key:2,class:`inline-flex items-center gap-1 bg-blue-50 text-blue-700 border border-blue-200/60 px-2 py-0.5 rounded-full shrink-0`},fe={key:3,class:`inline-flex items-center gap-1 bg-slate-100 text-slate-700 px-2 py-0.5 rounded-full shrink-0`},pe=[`src`,`title`],me={key:1,class:`size-12 rounded bg-gray-100`},he={class:`text-xs text-gray-400`,dir:`ltr`},ge={key:0,class:`text-xs text-gray-400`},_e={class:`mobile-products-view block lg:!hidden pb-24`},ve={key:0,class:`mb-3 p-2.5 rounded-xl bg-orange-50 border border-orange-200/70 text-xs text-orange-800 flex items-center gap-2`},ye={class:`flex items-center justify-between text-xs text-slate-500 px-1 mb-2.5`},be={key:0,class:`font-mono`},xe={key:1,class:`space-y-2.5`},Se={class:`flex items-start gap-3`},Ce=[`src`],we={key:1,class:`size-14 rounded-lg bg-slate-100 shrink-0 flex items-center justify-center text-slate-300`},Te={class:`min-w-0 flex-1`},Ee={class:`flex items-start justify-between gap-2`},De={class:`text-[10px] font-mono text-slate-500 bg-slate-100 px-1.5 py-0.5 rounded shrink-0`,dir:`ltr`},Oe={class:`flex flex-wrap items-center gap-1.5 mt-1.5 text-[11px] text-slate-500`},ke={class:`text-slate-600 font-medium`},Ae={key:0,class:`text-slate-400`},je={key:1,class:`text-slate-500`},Me={class:`flex items-center justify-between border-t border-slate-100 pt-2.5 mt-2.5`},Ne={class:`flex items-center gap-2`},Pe={class:`flex items-center gap-1.5`},Fe=[`disabled`,`onClick`],Ie=[`disabled`,`onClick`],Le={type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 active:bg-slate-300 transition`,title:`ویرایش`},Re=[`onClick`],ze={type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-rose-500 bg-rose-50 hover:bg-rose-100 active:bg-rose-200 transition`,title:`حذف`},Be={key:2,class:`flex items-center justify-between gap-3 pt-4 px-1`},Ve={class:`text-xs text-slate-500 font-mono`},He={class:`flex flex-col gap-4`},Ue={class:`flex items-center justify-between border-b border-slate-100 pb-3`},We={class:`flex items-center gap-2`},Ge={class:`space-y-3`},Ke={class:`flex items-center gap-2.5 pt-2 border-t border-slate-100`},qe=20,M=e(m({__name:`ProductsPage`,setup(e){let u=h(),m=ee(),A=D(),j=o(null),M=o(360),N=null;function P(){let e=j.value;if(!e)return;let t=e.querySelector(`.ant-table-pagination`),n=e.querySelector(`.ant-table-thead`),r=t?.offsetHeight??(Z.value?0:48),i=n?.offsetHeight??55;M.value=Math.max(180,e.clientHeight-r-i-16)}let F=e=>e?Number(e):void 0,Je=[`10`,`20`,`50`,`100`],I=a({categoryId:F(u.query.categoryId),groupId:F(u.query.groupId),status:u.query.status||void 0,q:typeof u.query.q==`string`?u.query.q:``,page:F(u.query.page)??1,pageSize:F(u.query.pageSize)??qe}),L=o([]),R=o(0),z=o(!1),B=o([]),V=o([]),H=o(!1),U=o(!1),W=C(()=>[I.categoryId,I.groupId,I.status].filter(Boolean).length),G=C(()=>B.value.find(e=>e.id===I.categoryId)?.name),K=C(()=>V.value.find(e=>e.id===I.groupId)?.name),q=C(()=>Math.ceil(R.value/I.pageSize)||1);function J(){I.categoryId=void 0,I.groupId=void 0,I.status=void 0,I.q=``,I.page=1,Q()}function Ye(){I.categoryId=void 0,I.groupId=void 0,I.page=1,Q()}function Xe(){I.groupId=void 0,I.page=1,Q()}function Ze(){I.status=void 0,I.page=1,Q()}function Qe(){I.q=``,I.page=1,Q()}function Y(e){e<1||e>q.value||(I.page=e,Q())}let X=e=>e.image?{url:e.image.url,fallback:!1}:{url:B.value.find(t=>t.id===e.categoryId)?.coverImage?.url??null,fallback:!0},Z=C(()=>!!I.categoryId&&!I.groupId&&!I.status&&!I.q),$e=C(()=>Z.value?200:I.pageSize),et=C(()=>!Z.value&&{current:I.page,pageSize:I.pageSize,total:R.value,showSizeChanger:!0,pageSizeOptions:Je,showQuickJumper:!0,showTotal:e=>`${e.toLocaleString(`fa-IR`)} محصول`,onChange:(e,t)=>{I.page=e,t!==I.pageSize&&(I.pageSize=t,I.page=1),Q()}});async function Q(){z.value=!0,m.replace({query:Object.fromEntries(Object.entries({...I,page:I.page===1?void 0:I.page,pageSize:I.pageSize===qe?void 0:I.pageSize}).filter(([,e])=>e))});try{let e=await w(`/admin/products`,{query:{...I,q:I.q||void 0,pageSize:$e.value}});L.value=e.items,R.value=e.total}catch(e){T.error(x(e))}finally{z.value=!1}}async function tt(){V.value=I.categoryId?(await w(`/admin/categories/${I.categoryId}`)).groups:[]}c(()=>I.categoryId,async()=>{I.groupId=void 0,await tt()}),c(()=>[I.categoryId,I.groupId,I.status],()=>{I.page=1,Q()});async function nt(e,t){try{await w(`/admin/products/${e.id}/publish`,{method:`PATCH`,body:{isPublished:t}}),e.isPublished=t,T.success(t?`محصول منتشر شد`:`محصول از سایت مخفی شد`)}catch(e){T.error(x(e))}}async function rt(e){try{let t=await w(`/admin/products/${e.id}/duplicate`,{method:`POST`});T.success(`کپی پیش‌نویس ساخته شد`),await m.push({name:`product-edit`,params:{id:t.id}})}catch(e){T.error(x(e))}}async function it(e){try{await w(`/admin/products/${e.id}`,{method:`DELETE`}),T.success(`محصول حذف شد`),await Q()}catch(e){T.error(x(e))}}async function $(e,t){let n=[...L.value],[r]=n.splice(e,1);n.splice(e+t,0,r),L.value=n;try{await w(`/admin/products/reorder`,{method:`POST`,body:{ids:n.map(e=>e.id)}})}catch(e){T.error(x(e)),await Q()}}let at=C(()=>[{title:`تصویر`,key:`image`,width:76},{title:`محصول`,key:`name`},{title:`دسته / زیرگروه`,key:`category`,width:200},{title:`انتشار`,key:`status`,width:90},...Z.value?[{title:`ترتیب`,key:`order`,width:100}]:[],{title:``,key:`actions`,width:130}]);return c([Z,z,L],async()=>{await k(),P()}),r(async()=>{try{B.value=await w(`/admin/categories`),await tt()}catch(e){T.error(x(e))}await Q(),await k(),j.value&&(N=new ResizeObserver(()=>P()),N.observe(j.value),P())}),f(()=>{N?.disconnect(),N=null}),(e,r)=>{let a=S(`a-input-search`),o=S(`a-select`),c=S(`a-button`),u=S(`a-badge`),f=S(`a-popover`),m=S(`RouterLink`),h=S(`a-switch`),x=S(`a-space`),C=S(`a-popconfirm`),w=S(`a-table`),ee=S(`a-empty`),T=S(`a-spin`),D=S(`a-drawer`);return p(),_(te,{"lock-body":``},{head:l(()=>[O(`div`,ne,[O(`div`,re,[y(a,{value:I.q,"onUpdate:value":r[0]||=e=>I.q=e,"allow-clear":``,class:`toolbar__search`,placeholder:`جستجوی نام یا کد`,onSearch:r[1]||=()=>{I.page=1,Q()}},null,8,[`value`]),y(f,{open:H.value,"onUpdate:open":r[5]||=e=>H.value=e,trigger:`click`,placement:`bottomLeft`,"overlay-style":{width:`280px`}},{content:l(()=>[O(`div`,ie,[y(o,{value:I.categoryId,"onUpdate:value":r[2]||=e=>I.categoryId=e,"allow-clear":``,style:{width:`100%`},placeholder:`همه دسته‌ها`,options:B.value.map(e=>({value:e.id,label:e.name}))},null,8,[`value`,`options`]),y(o,{value:I.groupId,"onUpdate:value":r[3]||=e=>I.groupId=e,"allow-clear":``,style:{width:`100%`},placeholder:`همه زیرگروه‌ها`,disabled:!V.value.length,options:V.value.map(e=>({value:e.id,label:e.name}))},null,8,[`value`,`disabled`,`options`]),y(o,{value:I.status,"onUpdate:value":r[4]||=e=>I.status=e,"allow-clear":``,style:{width:`100%`},placeholder:`همه وضعیت‌ها`,options:[{value:`published`,label:`منتشرشده`},{value:`draft`,label:`پیش‌نویس / مخفی`}]},null,8,[`value`]),I.categoryId&&!Z.value?(p(),E(`p`,ae,` برای تغییر ترتیب، فقط فیلتر دسته را نگه دارید. `)):v(``,!0)])]),default:l(()=>[y(u,{count:W.value,offset:[-4,4],color:`#ff5a00`},{default:l(()=>[y(c,null,{icon:l(()=>[y(t,{name:`filter`,size:16})]),default:l(()=>[r[18]||=b(` فیلتر `,-1)]),_:1})]),_:1},8,[`count`])]),_:1},8,[`open`])]),y(m,{class:`toolbar__new`,to:{name:`product-new`,query:I.categoryId?{categoryId:I.categoryId}:{}}},{default:l(()=>[y(c,{type:`primary`},{icon:l(()=>[y(t,{name:`add`,size:16})]),default:l(()=>[r[19]||=b(` محصول جدید `,-1)]),_:1})]),_:1},8,[`to`])]),O(`div`,oe,[O(`div`,se,[y(a,{value:I.q,"onUpdate:value":r[6]||=e=>I.q=e,"allow-clear":``,class:`flex-1`,placeholder:`جستجوی نام یا کد کالا...`,onSearch:r[7]||=()=>{I.page=1,Q()}},null,8,[`value`]),y(u,{count:W.value,offset:[-2,2],color:`#ff5a00`},{default:l(()=>[y(c,{class:`!h-9 !px-3 !rounded-lg !flex !items-center !gap-1.5`,type:W.value>0?`primary`:`default`,ghost:W.value>0,onClick:r[8]||=e=>U.value=!0},{icon:l(()=>[y(t,{name:`filter`,size:16})]),default:l(()=>[r[20]||=O(`span`,{class:`text-xs`},`فیلتر`,-1)]),_:1},8,[`type`,`ghost`])]),_:1},8,[`count`])]),W.value>0||I.q?(p(),E(`div`,ce,[I.q?(p(),E(`span`,le,[b(` جستجو: «`+n(I.q)+`» `,1),O(`button`,{type:`button`,class:`text-slate-400 hover:text-slate-600`,onClick:Qe},`✕`)])):v(``,!0),G.value?(p(),E(`span`,ue,[b(n(G.value)+` `,1),O(`button`,{type:`button`,class:`text-orange-400 hover:text-orange-700`,onClick:Ye},`✕`)])):v(``,!0),K.value?(p(),E(`span`,de,[b(n(K.value)+` `,1),O(`button`,{type:`button`,class:`text-blue-400 hover:text-blue-700`,onClick:Xe},`✕`)])):v(``,!0),I.status?(p(),E(`span`,fe,[b(n(I.status===`published`?`منتشرشده`:`پیش‌نویس / مخفی`)+` `,1),O(`button`,{type:`button`,class:`text-slate-400 hover:text-slate-700`,onClick:Ze},`✕`)])):v(``,!0),O(`button`,{type:`button`,class:`text-[10px] text-rose-500 font-medium hover:underline shrink-0 px-1`,onClick:J},` حذف همه `)])):v(``,!0)])]),default:l(()=>[O(`div`,{ref_key:`tableShell`,ref:j,class:`table-shell !hidden lg:!flex`},[y(w,{class:`table-shell__table`,columns:at.value,"data-source":L.value,loading:z.value,"row-key":`id`,scroll:{x:760,y:M.value},pagination:et.value},{bodyCell:l(({column:e,record:r,index:i})=>[e.key===`image`?(p(),E(g,{key:0},[X(r).url?(p(),E(`img`,{key:0,src:X(r).url,alt:``,title:X(r).fallback?`این محصول عکس ندارد؛ کاور دسته نمایش داده شده`:void 0,class:d([`size-12 rounded bg-gray-50 object-contain`,X(r).fallback&&`opacity-40 grayscale`])},null,10,pe)):(p(),E(`div`,me))],64)):e.key===`name`?(p(),E(g,{key:1},[y(m,{to:{name:`product-edit`,params:{id:r.id}},class:`font-bold text-[#0f172a] hover:text-[#ff5a00]`},{default:l(()=>[b(n(r.name),1)]),_:2},1032,[`to`]),O(`div`,he,n(r.code),1)],64)):e.key===`category`?(p(),E(g,{key:2},[O(`div`,null,n(r.category.name),1),r.group?(p(),E(`div`,ge,n(r.group.name),1)):v(``,!0)],64)):e.key===`status`?(p(),_(h,{key:3,checked:r.isPublished,size:`small`,onChange:e=>nt(r,!!e)},null,8,[`checked`,`onChange`])):e.key===`order`?(p(),_(x,{key:4,size:4},{default:l(()=>[y(c,{size:`small`,disabled:i===0,onClick:e=>$(i,-1)},{icon:l(()=>[y(t,{name:`arrow-up`,size:14})]),_:1},8,[`disabled`,`onClick`]),y(c,{size:`small`,disabled:i===L.value.length-1,onClick:e=>$(i,1)},{icon:l(()=>[y(t,{name:`arrow-down`,size:14})]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)):e.key===`actions`?(p(),_(x,{key:5,size:4},{default:l(()=>[y(m,{to:{name:`product-edit`,params:{id:r.id}}},{default:l(()=>[y(c,{size:`small`,title:`ویرایش`},{icon:l(()=>[y(t,{name:`edit-2`,size:14})]),_:1})]),_:1},8,[`to`]),y(c,{size:`small`,title:`کپی`,onClick:e=>rt(r)},{icon:l(()=>[y(t,{name:`copy`,size:14})]),_:1},8,[`onClick`]),s(A).isAdmin?(p(),_(C,{key:0,title:`این محصول حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:e=>it(r)},{default:l(()=>[y(c,{size:`small`,danger:``,title:`حذف`},{icon:l(()=>[y(t,{name:`trash`,size:14})]),_:1})]),_:1},8,[`onConfirm`])):v(``,!0)]),_:2},1024)):v(``,!0)]),_:1},8,[`columns`,`data-source`,`loading`,`scroll`,`pagination`])],512),O(`div`,_e,[Z.value?(p(),E(`div`,ve,[y(t,{name:`info-circle`,size:18,class:`text-orange-600 shrink-0`}),r[21]||=O(`span`,null,`حالت تغییر ترتیب فعال است. می‌توانید با فلش‌ها ترتیب کالاها را عوض کنید.`,-1)])):v(``,!0),O(`div`,ye,[O(`span`,null,n(R.value.toLocaleString(`fa-IR`))+` محصول`,1),!Z.value&&q.value>1?(p(),E(`span`,be,` صفحه `+n(I.page.toLocaleString(`fa-IR`))+` از `+n(q.value.toLocaleString(`fa-IR`)),1)):v(``,!0)]),y(T,{spinning:z.value},{default:l(()=>[!L.value.length&&!z.value?(p(),_(ee,{key:0,description:`محصولی با این مشخصات یافت نشد`,class:`py-12`})):(p(),E(`div`,xe,[(p(!0),E(g,null,i(L.value,(e,r)=>(p(),E(`div`,{key:e.id,class:`bg-white rounded-xl border border-slate-200/80 p-3 shadow-2xs transition active:bg-slate-50/50`},[O(`div`,Se,[X(e).url?(p(),E(`img`,{key:0,src:X(e).url,alt:``,class:d([`size-14 rounded-lg bg-slate-50 object-contain shrink-0 border border-slate-100`,X(e).fallback&&`opacity-40 grayscale`])},null,10,Ce)):(p(),E(`div`,we,[y(t,{name:`gallery`,size:20})])),O(`div`,Te,[O(`div`,Ee,[y(m,{to:{name:`product-edit`,params:{id:e.id}},class:`font-bold text-[13px] text-slate-800 hover:text-orange-600 line-clamp-2 leading-snug`},{default:l(()=>[b(n(e.name),1)]),_:2},1032,[`to`]),O(`span`,De,n(e.code),1)]),O(`div`,Oe,[O(`span`,ke,n(e.category.name),1),e.group?(p(),E(`span`,Ae,`/`)):v(``,!0),e.group?(p(),E(`span`,je,n(e.group.name),1)):v(``,!0)])])]),O(`div`,Me,[O(`div`,Ne,[y(h,{checked:e.isPublished,size:`small`,onChange:t=>nt(e,!!t)},null,8,[`checked`,`onChange`]),O(`span`,{class:d([`text-xs`,e.isPublished?`text-emerald-600 font-medium`:`text-slate-400`])},n(e.isPublished?`منتشرشده`:`پیش‌نویس`),3)]),O(`div`,Pe,[Z.value?(p(),E(g,{key:0},[O(`button`,{type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 disabled:opacity-30 disabled:pointer-events-none active:bg-slate-300 transition`,disabled:r===0,onClick:e=>$(r,-1)},[y(t,{name:`arrow-up`,size:16})],8,Fe),O(`button`,{type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 disabled:opacity-30 disabled:pointer-events-none active:bg-slate-300 transition`,disabled:r===L.value.length-1,onClick:e=>$(r,1)},[y(t,{name:`arrow-down`,size:16})],8,Ie)],64)):v(``,!0),y(m,{to:{name:`product-edit`,params:{id:e.id}}},{default:l(()=>[O(`button`,Le,[y(t,{name:`edit-2`,size:16})])]),_:1},8,[`to`]),O(`button`,{type:`button`,class:`size-8 rounded-lg flex items-center justify-center text-slate-600 bg-slate-100 hover:bg-slate-200 active:bg-slate-300 transition`,title:`تکثیر / کپی`,onClick:t=>rt(e)},[y(t,{name:`copy`,size:16})],8,Re),s(A).isAdmin?(p(),_(C,{key:1,title:`این محصول حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:t=>it(e)},{default:l(()=>[O(`button`,ze,[y(t,{name:`trash`,size:16})])]),_:1},8,[`onConfirm`])):v(``,!0)])])]))),128))])),!Z.value&&q.value>1?(p(),E(`div`,Be,[y(c,{disabled:I.page<=1,class:`!flex-1 !h-10 !rounded-xl !font-medium`,onClick:r[9]||=e=>Y(I.page-1)},{default:l(()=>[...r[22]||=[b(` صفحه قبلی `,-1)]]),_:1},8,[`disabled`]),O(`span`,Ve,n(I.page.toLocaleString(`fa-IR`))+` / `+n(q.value.toLocaleString(`fa-IR`)),1),y(c,{disabled:I.page>=q.value,class:`!flex-1 !h-10 !rounded-xl !font-medium`,onClick:r[10]||=e=>Y(I.page+1)},{default:l(()=>[...r[23]||=[b(` صفحه بعدی `,-1)]]),_:1},8,[`disabled`])])):v(``,!0)]),_:1},8,[`spinning`]),y(m,{to:{name:`product-new`,query:I.categoryId?{categoryId:I.categoryId}:{}},class:`fixed start-4 bottom-[72px] z-30 flex items-center gap-2 px-4 py-2.5 rounded-full bg-linear-to-r from-[#ff5a00] to-[#ff7a29] text-white font-bold text-xs shadow-lg shadow-orange-500/30 active:scale-95 transition`},{default:l(()=>[y(t,{name:`add`,size:18}),r[24]||=O(`span`,null,`محصول جدید`,-1)]),_:1},8,[`to`])]),y(D,{open:U.value,"onUpdate:open":r[17]||=e=>U.value=e,placement:`bottom`,height:`auto`,closable:!1,class:`mobile-filter-drawer`,"body-style":{padding:`16px 20px 24px`,background:`#ffffff`,borderTopLeftRadius:`20px`,borderTopRightRadius:`20px`}},{default:l(()=>[O(`div`,He,[O(`div`,Ue,[O(`div`,We,[y(t,{name:`filter`,size:18,class:`text-orange-600`}),r[25]||=O(`span`,{class:`text-sm font-bold text-slate-800`},`فیلترهای کاتالوگ`,-1)]),O(`button`,{type:`button`,class:`text-xs text-slate-400 hover:text-slate-600`,onClick:r[11]||=e=>U.value=!1},` بستن `)]),O(`div`,Ge,[O(`div`,null,[r[26]||=O(`label`,{class:`block text-xs font-semibold text-slate-700 mb-1.5`},`دسته‌بندی`,-1),y(o,{value:I.categoryId,"onUpdate:value":r[12]||=e=>I.categoryId=e,"allow-clear":``,size:`large`,style:{width:`100%`},placeholder:`همه دسته‌ها`,options:B.value.map(e=>({value:e.id,label:e.name}))},null,8,[`value`,`options`])]),O(`div`,null,[r[27]||=O(`label`,{class:`block text-xs font-semibold text-slate-700 mb-1.5`},`زیرگروه کالا`,-1),y(o,{value:I.groupId,"onUpdate:value":r[13]||=e=>I.groupId=e,"allow-clear":``,size:`large`,style:{width:`100%`},placeholder:`همه زیرگروه‌ها`,disabled:!V.value.length,options:V.value.map(e=>({value:e.id,label:e.name}))},null,8,[`value`,`disabled`,`options`])]),O(`div`,null,[r[28]||=O(`label`,{class:`block text-xs font-semibold text-slate-700 mb-1.5`},`وضعیت انتشار`,-1),y(o,{value:I.status,"onUpdate:value":r[14]||=e=>I.status=e,"allow-clear":``,size:`large`,style:{width:`100%`},placeholder:`همه وضعیت‌ها`,options:[{value:`published`,label:`منتشرشده در سایت`},{value:`draft`,label:`پیش‌نویس / مخفی`}]},null,8,[`value`])])]),O(`div`,Ke,[W.value>0?(p(),_(c,{key:0,danger:``,class:`!h-11 !rounded-xl`,onClick:r[15]||=e=>{J(),U.value=!1}},{default:l(()=>[...r[29]||=[b(` حذف فیلترها `,-1)]]),_:1})):v(``,!0),y(c,{type:`primary`,block:``,class:`!h-11 !rounded-xl !font-bold`,onClick:r[16]||=e=>{U.value=!1,Q()}},{default:l(()=>[...r[30]||=[b(` اعمال فیلترها `,-1)]]),_:1})])])]),_:1},8,[`open`])]),_:1})}}}),[[`__scopeId`,`data-v-a64d8be2`]]);export{M as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/ProfilePage-DxhVPJ4c.js b/apps/admin/dist/assets/ProfilePage-DxhVPJ4c.js new file mode 100644 index 0000000..b7b8a86 --- /dev/null +++ b/apps/admin/dist/assets/ProfilePage-DxhVPJ4c.js @@ -0,0 +1 @@ +import{o as e,s as t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,It as r,Lt as i,Nt as a,Tt as o,_t as s,ct as c,gt as l,ht as u,kt as d,n as f,ot as p,pt as m,st as h,t as g,ut as _}from"./index-BuGK6ptM.js";import{t as v}from"./PageHeader-3Ryvg2HD.js";import{n as y,t as b}from"./FormField-CiVT7mqC.js";var x={class:`grid max-w-4xl gap-4 md:gap-6 md:grid-cols-2`},S={class:`flex items-center gap-3.5 mb-4 pb-4 border-b border-gray-100`},C={class:`flex size-14 items-center justify-center rounded-2xl bg-gradient-to-tr from-[#ff5a00] to-amber-500 text-xl font-black text-white shadow-md shadow-orange-500/20`},w={class:`text-base font-bold text-gray-900`},T={class:`mt-0.5 text-xs font-mono text-gray-500`,dir:`ltr`},E={dir:`ltr`,class:`font-mono`},D=s({__name:`ProfilePage`,setup(s){let D=g(),{model:O,validate:k,handleError:A,reset:j}=y(t,{currentPassword:``,newPassword:``}),M=r(!1);async function N(){let e=k();if(e){M.value=!0;try{await f(`/admin/auth/change-password`,{method:`POST`,body:e}),p.success(`رمز عبور تغییر کرد`),j({currentPassword:``,newPassword:``})}catch(e){A(e)}finally{M.value=!1}}}return(t,r)=>{let s=d(`a-descriptions-item`),f=d(`a-tag`),p=d(`a-descriptions`),g=d(`a-card`),y=d(`a-input-password`),k=d(`a-button`),A=d(`a-form`);return o(),m(c,null,[l(v,{title:`حساب کاربری`,subtitle:`مشخصات فردی، نقش دسترسی و تغییر رمز عبور ورود به سامانه`}),_(`div`,x,[l(g,{title:`مشخصات کاربری`},{default:a(()=>[_(`div`,S,[_(`div`,C,n(i(D).user?.name?.slice(0,1)||`U`),1),_(`div`,null,[_(`div`,w,n(i(D).user?.name),1),_(`div`,T,n(i(D).user?.phone),1)])]),l(p,{column:1,size:`small`},{default:a(()=>[l(s,{label:`نام`},{default:a(()=>[u(n(i(D).user?.name),1)]),_:1}),l(s,{label:`موبایل`},{default:a(()=>[_(`span`,E,n(i(D).user?.phone),1)]),_:1}),l(s,{label:`نقش دسترسی`},{default:a(()=>[l(f,{color:i(D).user?.role===`ADMIN`?`orange`:`blue`},{default:a(()=>[u(n(i(D).user&&i(e)[i(D).user.role]),1)]),_:1},8,[`color`])]),_:1})]),_:1})]),_:1}),l(g,{title:`تغییر رمز عبور`},{default:a(()=>[l(A,{layout:`vertical`,onSubmit:h(N,[`prevent`])},{default:a(()=>[l(b,{path:`currentPassword`,label:`رمز فعلی`,required:``},{default:a(()=>[l(y,{value:i(O).currentPassword,"onUpdate:value":r[0]||=e=>i(O).currentPassword=e,class:`ltr-input h-10`,autocomplete:`current-password`},null,8,[`value`])]),_:1}),l(b,{path:`newPassword`,label:`رمز جدید`,hint:`حداقل ۸ کاراکتر`,required:``},{default:a(()=>[l(y,{value:i(O).newPassword,"onUpdate:value":r[1]||=e=>i(O).newPassword=e,class:`ltr-input h-10`,autocomplete:`new-password`},null,8,[`value`])]),_:1}),l(k,{type:`primary`,"html-type":`submit`,loading:M.value,class:`w-full md:w-auto h-10 !font-bold`},{default:a(()=>[...r[2]||=[u(` تغییر رمز ورود `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})])],64)}}});export{D as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/SectionEditPage-BfSd3Uov.js b/apps/admin/dist/assets/SectionEditPage-BfSd3Uov.js new file mode 100644 index 0000000..6e99d72 --- /dev/null +++ b/apps/admin/dist/assets/SectionEditPage-BfSd3Uov.js @@ -0,0 +1 @@ +import{f as e,g as t,h as n,m as r,p as i,t as a}from"./VuesaxIcon-B2OgulS6.js";import{At as o,Bt as s,It as c,Lt as l,Nt as u,Pt as d,Tt as f,_t as p,a as m,bt as h,ct as g,dt as _,ft as v,gt as y,ht as b,i as x,jt as S,kt as C,lt as w,n as T,ot as E,pt as D,st as ee,t as O,ut as k}from"./index-BuGK6ptM.js";import{a as te,t as A}from"./format-B9MYDQJN.js";import{t as j}from"./PageHeader-3Ryvg2HD.js";import{n as M,t as N}from"./FormField-CiVT7mqC.js";import{t as P}from"./IconSelect-rJLPzIXV.js";import{n as F,t as I}from"./ListEditor-C8F91lSJ.js";var L=p({__name:`ImageRefField`,props:h({path:{},label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(n,r)=>{let i=C(`a-input`);return f(),D(g,null,[y(N,{path:`${e.path}.url`,label:e.label,required:``},{default:u(()=>[y(F,{url:t.value.url,onPick:r[0]||=e=>t.value={url:e.url,alt:t.value.alt||e.alt}},null,8,[`url`])]),_:1},8,[`path`,`label`]),y(N,{path:`${e.path}.alt`,label:`متن جایگزین تصویر (alt)`,hint:`برای سئو و دسترسی‌پذیری؛ تصویر را در یک جمله توصیف کنید`},{default:u(()=>[y(i,{value:t.value.alt,"onUpdate:value":r[1]||=e=>t.value.alt=e},null,8,[`value`])]),_:1},8,[`path`])],64)}}}),R={class:`grid gap-x-4 md:grid-cols-2`},z=p({__name:`SectionHeadFields`,props:h({path:{default:`head`},withHighlight:{type:Boolean,default:!0},withDesc:{type:Boolean,default:!0}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(n,r)=>{let i=C(`a-input`),a=C(`a-textarea`);return f(),D(`div`,R,[y(N,{path:`${e.path}.tag`,label:`برچسب بالای عنوان`,hint:`مثلاً «۰۱ — محصولات»`,required:``},{default:u(()=>[y(i,{value:t.value.tag,"onUpdate:value":r[0]||=e=>t.value.tag=e},null,8,[`value`])]),_:1},8,[`path`]),y(N,{path:`${e.path}.title`,label:`عنوان`,hint:`برای شکستن خط، Enter بزنید`,required:``},{default:u(()=>[y(a,{value:t.value.title,"onUpdate:value":r[1]||=e=>t.value.title=e,"auto-size":{minRows:2,maxRows:4}},null,8,[`value`])]),_:1},8,[`path`]),e.withHighlight?(f(),_(N,{key:0,path:`${e.path}.highlight`,label:`خط رنگی انتهای عنوان (اختیاری)`},{default:u(()=>[y(i,{value:t.value.highlight,"onUpdate:value":r[2]||=e=>t.value.highlight=e},null,8,[`value`])]),_:1},8,[`path`])):v(``,!0),e.withDesc?(f(),_(N,{key:1,path:`${e.path}.desc`,label:`توضیح زیر عنوان`,class:`md:col-span-2`},{default:u(()=>[y(a,{value:t.value.desc,"onUpdate:value":r[3]||=e=>t.value.desc=e,"auto-size":{minRows:2,maxRows:5}},null,8,[`value`])]),_:1},8,[`path`])):v(``,!0)])}}}),B={class:`grid gap-6 xl:grid-cols-3`},V={class:`space-y-6 xl:col-span-2`},H={class:`grid gap-x-4 md:grid-cols-4`},U={class:`grid gap-x-4 md:grid-cols-2`},W={class:`space-y-6`},G=p({__name:`AboutForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-textarea`),i=C(`a-card`),a=C(`a-input`);return f(),D(`div`,B,[k(`div`,V,[y(i,{title:`عنوان و متن`},{default:u(()=>[y(z,{modelValue:t.value.head,"onUpdate:modelValue":n[0]||=e=>t.value.head=e,"with-desc":!1},null,8,[`modelValue`]),y(N,{path:`body`,label:`متن درباره ما`,required:``},{default:u(()=>[y(r,{value:t.value.body,"onUpdate:value":n[1]||=e=>t.value.body=e,"auto-size":{minRows:4,maxRows:10}},null,8,[`value`])]),_:1})]),_:1}),y(i,{title:`تایم‌لاین`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.timeline,"onUpdate:modelValue":n[2]||=e=>t.value.timeline=e,create:()=>({year:``,text:``}),max:12,"add-label":`افزودن رویداد`,"item-title":e=>e.year},{default:u(({item:e,index:t})=>[k(`div`,H,[y(N,{path:`timeline.${t}.year`,label:`سال`,required:``},{default:u(()=>[y(a,{value:e.year,"onUpdate:value":t=>e.year=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`timeline.${t}.text`,label:`رویداد`,required:``,class:`md:col-span-3`},{default:u(()=>[y(a,{value:e.text,"onUpdate:value":t=>e.text=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1}),y(i,{title:`ویژگی‌ها`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.features,"onUpdate:modelValue":n[3]||=e=>t.value.features=e,create:()=>({icon:`ShieldCheck`,label:``}),max:6,"add-label":`افزودن ویژگی`,"item-title":e=>e.label},{default:u(({item:e,index:t})=>[k(`div`,U,[y(N,{path:`features.${t}.label`,label:`متن`,required:``},{default:u(()=>[y(a,{value:e.label,"onUpdate:value":t=>e.label=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`features.${t}.icon`,label:`آیکون`},{default:u(()=>[y(P,{modelValue:e.icon,"onUpdate:modelValue":t=>e.icon=t},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})]),k(`div`,W,[y(i,{title:`تصویر`},{default:u(()=>[y(L,{modelValue:t.value.image,"onUpdate:modelValue":n[4]||=e=>t.value.image=e,path:`image`,label:`تصویر`},null,8,[`modelValue`])]),_:1}),y(i,{title:`نشان روی تصویر`},{default:u(()=>[y(N,{path:`badge.value`,label:`عدد`,required:``},{default:u(()=>[y(a,{value:t.value.badge.value,"onUpdate:value":n[5]||=e=>t.value.badge.value=e},null,8,[`value`])]),_:1}),y(N,{path:`badge.label`,label:`متن`,hint:`برای شکستن خط Enter بزنید`,required:``},{default:u(()=>[y(r,{value:t.value.badge.label,"onUpdate:value":n[6]||=e=>t.value.badge.label=e,"auto-size":{minRows:2}},null,8,[`value`])]),_:1})]),_:1})])])}}}),K={class:`space-y-6`},q={class:`grid gap-6 lg:grid-cols-2`},J=p({__name:`ContactForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-card`),i=C(`a-input`),a=C(`a-textarea`);return f(),D(`div`,K,[y(r,{title:`عنوان بخش`},{default:u(()=>[y(z,{modelValue:t.value.head,"onUpdate:modelValue":n[0]||=e=>t.value.head=e},null,8,[`modelValue`]),n[7]||=k(`p`,{class:`text-sm text-gray-500`},`نشانی، تلفن، ایمیل و ساعات کاری از «تنظیمات سایت» خوانده می‌شوند.`,-1)]),_:1}),k(`div`,q,[y(r,{title:`کادر پاسخ‌گویی اضطراری`},{default:u(()=>[y(N,{path:`emergencyTitle`,label:`عنوان`,required:``},{default:u(()=>[y(i,{value:t.value.emergencyTitle,"onUpdate:value":n[1]||=e=>t.value.emergencyTitle=e},null,8,[`value`])]),_:1}),y(N,{path:`emergencyText`,label:`متن`,required:``},{default:u(()=>[y(a,{value:t.value.emergencyText,"onUpdate:value":n[2]||=e=>t.value.emergencyText=e,"auto-size":{minRows:2,maxRows:5}},null,8,[`value`])]),_:1})]),_:1}),y(r,{title:`فرم`},{default:u(()=>[y(N,{path:`formTag`,label:`برچسب بالای فرم`},{default:u(()=>[y(i,{value:t.value.formTag,"onUpdate:value":n[3]||=e=>t.value.formTag=e},null,8,[`value`])]),_:1}),y(N,{path:`formTitle`,label:`عنوان فرم`,hint:`برای شکستن خط Enter بزنید`,required:``},{default:u(()=>[y(a,{value:t.value.formTitle,"onUpdate:value":n[4]||=e=>t.value.formTitle=e,"auto-size":{minRows:2}},null,8,[`value`])]),_:1}),y(N,{path:`successTitle`,label:`عنوان پیام موفقیت`,required:``},{default:u(()=>[y(i,{value:t.value.successTitle,"onUpdate:value":n[5]||=e=>t.value.successTitle=e},null,8,[`value`])]),_:1}),y(N,{path:`successText`,label:`متن پیام موفقیت`,required:``},{default:u(()=>[y(a,{value:t.value.successText,"onUpdate:value":n[6]||=e=>t.value.successText=e,"auto-size":{minRows:2}},null,8,[`value`])]),_:1})]),_:1})])])}}}),Y={class:`grid gap-x-4 md:grid-cols-3`},X=p({__name:`FooterForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-textarea`),i=C(`a-input`),a=C(`a-card`);return f(),_(a,{title:`فوتر`},{default:u(()=>[y(N,{path:`about`,label:`متن معرفی`,required:``},{default:u(()=>[y(r,{value:t.value.about,"onUpdate:value":n[0]||=e=>t.value.about=e,"auto-size":{minRows:2,maxRows:5}},null,8,[`value`])]),_:1}),k(`div`,Y,[y(N,{path:`copyright`,label:`متن کپی‌رایت`,required:``},{default:u(()=>[y(i,{value:t.value.copyright,"onUpdate:value":n[1]||=e=>t.value.copyright=e},null,8,[`value`])]),_:1}),y(N,{path:`certLine`,label:`خط گواهی‌نامه‌ها`},{default:u(()=>[y(i,{value:t.value.certLine,"onUpdate:value":n[2]||=e=>t.value.certLine=e,class:`ltr-input`},null,8,[`value`])]),_:1}),y(N,{path:`emergencyNote`,label:`یادداشت پشتیبانی`},{default:u(()=>[y(i,{value:t.value.emergencyNote,"onUpdate:value":n[3]||=e=>t.value.emergencyNote=e},null,8,[`value`])]),_:1})]),n[4]||=k(`p`,{class:`text-sm text-gray-500`},`لینک دسته‌ها و اطلاعات تماس فوتر به‌صورت خودکار از دسته‌بندی‌ها و تنظیمات سایت ساخته می‌شوند.`,-1)]),_:1})}}}),Z={class:`grid gap-6 xl:grid-cols-3`},Q={class:`space-y-6 xl:col-span-2`},ne={class:`grid gap-x-4 md:grid-cols-2`},re={class:`grid gap-x-4 md:grid-cols-2`},ie={class:`grid gap-x-4 md:grid-cols-2`},ae={class:`grid gap-x-4 md:grid-cols-3`},oe={class:`space-y-6`},se=p({__name:`HeroForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-input`),i=C(`a-textarea`),a=C(`a-card`);return f(),D(`div`,Z,[k(`div`,Q,[y(a,{title:`متن‌ها`},{default:u(()=>[k(`div`,ne,[y(N,{path:`badge`,label:`نشان بالای تیتر`,required:``,class:`md:col-span-2`},{default:u(()=>[y(r,{value:t.value.badge,"onUpdate:value":n[0]||=e=>t.value.badge=e},null,8,[`value`])]),_:1}),y(N,{path:`title`,label:`تیتر (خط اول)`,required:``},{default:u(()=>[y(r,{value:t.value.title,"onUpdate:value":n[1]||=e=>t.value.title=e},null,8,[`value`])]),_:1}),y(N,{path:`titleHighlight`,label:`تیتر (خط زرد)`,required:``},{default:u(()=>[y(r,{value:t.value.titleHighlight,"onUpdate:value":n[2]||=e=>t.value.titleHighlight=e},null,8,[`value`])]),_:1}),y(N,{path:`intro`,label:`متن معرفی`,required:``,class:`md:col-span-2`},{default:u(()=>[y(i,{value:t.value.intro,"onUpdate:value":n[3]||=e=>t.value.intro=e,"auto-size":{minRows:3,maxRows:6}},null,8,[`value`])]),_:1})])]),_:1}),y(a,{title:`دکمه‌ها`},{default:u(()=>[k(`div`,re,[y(N,{path:`primaryCta.label`,label:`دکمه اصلی — متن`,required:``},{default:u(()=>[y(r,{value:t.value.primaryCta.label,"onUpdate:value":n[4]||=e=>t.value.primaryCta.label=e},null,8,[`value`])]),_:1}),y(N,{path:`primaryCta.href`,label:`دکمه اصلی — لینک`,hint:`مثلاً #contact یا /categories/...`,required:``},{default:u(()=>[y(r,{value:t.value.primaryCta.href,"onUpdate:value":n[5]||=e=>t.value.primaryCta.href=e,class:`ltr-input`},null,8,[`value`])]),_:1}),y(N,{path:`secondaryCta.label`,label:`دکمه دوم — متن`,required:``},{default:u(()=>[y(r,{value:t.value.secondaryCta.label,"onUpdate:value":n[6]||=e=>t.value.secondaryCta.label=e},null,8,[`value`])]),_:1}),y(N,{path:`secondaryCta.href`,label:`دکمه دوم — لینک`,required:``},{default:u(()=>[y(r,{value:t.value.secondaryCta.href,"onUpdate:value":n[7]||=e=>t.value.secondaryCta.href=e,class:`ltr-input`},null,8,[`value`])]),_:1})])]),_:1}),y(a,{title:`نشان‌های گواهی`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.chips,"onUpdate:modelValue":n[8]||=e=>t.value.chips=e,create:()=>({icon:`ShieldCheck`,label:``}),max:6,"add-label":`افزودن نشان`,"item-title":e=>e.label},{default:u(({item:e,index:t})=>[k(`div`,ie,[y(N,{path:`chips.${t}.label`,label:`متن`,required:``},{default:u(()=>[y(r,{value:e.label,"onUpdate:value":t=>e.label=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`chips.${t}.icon`,label:`آیکون`},{default:u(()=>[y(P,{modelValue:e.icon,"onUpdate:modelValue":t=>e.icon=t},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1}),y(a,{title:`آمار پایین Hero`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.miniStats,"onUpdate:modelValue":n[9]||=e=>t.value.miniStats=e,create:()=>({value:``,label:``}),max:4,"add-label":`افزودن آمار`,"item-title":e=>e.value},{default:u(({item:e,index:t})=>[k(`div`,ae,[y(N,{path:`miniStats.${t}.value`,label:`عدد`,required:``},{default:u(()=>[y(r,{value:e.value,"onUpdate:value":t=>e.value=t,placeholder:`۱۸+`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`miniStats.${t}.label`,label:`توضیح`,required:``,class:`md:col-span-2`},{default:u(()=>[y(r,{value:e.label,"onUpdate:value":t=>e.label=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})]),k(`div`,oe,[y(a,{title:`تصویر پس‌زمینه`},{default:u(()=>[y(L,{modelValue:t.value.image,"onUpdate:modelValue":n[10]||=e=>t.value.image=e,path:`image`,label:`تصویر`},null,8,[`modelValue`])]),_:1}),y(a,{title:`کارت وضعیت`},{default:u(()=>[y(N,{path:`lastInspection`,label:`تاریخ آخرین بازرسی`,hint:`خالی = نمایش داده نمی‌شود`},{default:u(()=>[y(r,{value:t.value.lastInspection,"onUpdate:value":n[11]||=e=>t.value.lastInspection=e,placeholder:`۱۴۰۴/۰۸/۱۲`},null,8,[`value`])]),_:1})]),_:1})])])}}}),ce={class:`space-y-6`},le={class:`grid gap-x-6 lg:grid-cols-2`},ue=p({__name:`IndustriesForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-card`),i=C(`a-input`);return f(),D(`div`,ce,[y(r,{title:`عنوان بخش`},{default:u(()=>[y(z,{modelValue:t.value.head,"onUpdate:modelValue":n[0]||=e=>t.value.head=e},null,8,[`modelValue`])]),_:1}),y(r,{title:`صنایع`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.items,"onUpdate:modelValue":n[1]||=e=>t.value.items=e,create:()=>({name:``,nameEn:``,count:``,image:{url:``,alt:``}}),max:12,"add-label":`افزودن صنعت`,"item-title":e=>e.name},{default:u(({item:e,index:t})=>[k(`div`,le,[k(`div`,null,[y(N,{path:`items.${t}.name`,label:`نام`,required:``},{default:u(()=>[y(i,{value:e.name,"onUpdate:value":t=>e.name=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.nameEn`,label:`نام انگلیسی`},{default:u(()=>[y(i,{value:e.nameEn,"onUpdate:value":t=>e.nameEn=t,class:`ltr-input`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.count`,label:`تعداد پروژه`,hint:`مثلاً ۱۴۰+ — خالی = نمایش داده نمی‌شود`},{default:u(()=>[y(i,{value:e.count,"onUpdate:value":t=>e.count=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])]),k(`div`,null,[y(L,{modelValue:e.image,"onUpdate:modelValue":t=>e.image=t,path:`items.${t}.image`,label:`تصویر`},null,8,[`modelValue`,`onUpdate:modelValue`,`path`])])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})])}}}),de={class:`space-y-6`},fe={class:`grid gap-x-4 md:grid-cols-3`},pe=p({__name:`ProductsIntroForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-input`),i=C(`a-card`);return f(),D(`div`,de,[y(i,{title:`عنوان بخش`},{default:u(()=>[y(z,{modelValue:t.value.head,"onUpdate:modelValue":n[0]||=e=>t.value.head=e},null,8,[`modelValue`]),y(N,{path:`ctaLabel`,label:`متن دکمه کاتالوگ`,required:``},{default:u(()=>[y(r,{value:t.value.ctaLabel,"onUpdate:value":n[1]||=e=>t.value.ctaLabel=e},null,8,[`value`])]),_:1}),n[3]||=k(`p`,{class:`text-sm text-gray-500`},`کارت‌های دسته‌بندی از بخش «دسته‌بندی‌ها» مدیریت می‌شوند.`,-1)]),_:1}),y(i,{title:`کارت‌های اعتماد`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.trust,"onUpdate:modelValue":n[2]||=e=>t.value.trust=e,create:()=>({icon:`BadgeCheck`,title:``,desc:``}),max:6,"add-label":`افزودن کارت`,"item-title":e=>e.title},{default:u(({item:e,index:t})=>[k(`div`,fe,[y(N,{path:`trust.${t}.title`,label:`عنوان`,required:``},{default:u(()=>[y(r,{value:e.title,"onUpdate:value":t=>e.title=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`trust.${t}.desc`,label:`توضیح`},{default:u(()=>[y(r,{value:e.desc,"onUpdate:value":t=>e.desc=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`trust.${t}.icon`,label:`آیکون`},{default:u(()=>[y(P,{modelValue:e.icon,"onUpdate:modelValue":t=>e.icon=t},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})])}}}),me={class:`space-y-6`},he={class:`grid gap-x-4 md:grid-cols-2`},ge=p({__name:`ServicesForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`),n=()=>({icon:`ClipboardCheck`,title:``,desc:``,items:[]});return(e,r)=>{let i=C(`a-card`),a=C(`a-input`),o=C(`a-textarea`),s=C(`a-select`);return f(),D(`div`,me,[y(i,{title:`عنوان بخش`},{default:u(()=>[y(z,{modelValue:t.value.head,"onUpdate:modelValue":r[0]||=e=>t.value.head=e},null,8,[`modelValue`])]),_:1}),y(i,{title:`خدمات`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.items,"onUpdate:modelValue":r[1]||=e=>t.value.items=e,create:n,max:10,"add-label":`افزودن خدمت`,"item-title":e=>e.title},{default:u(({item:e,index:t})=>[k(`div`,he,[y(N,{path:`items.${t}.title`,label:`عنوان`,required:``},{default:u(()=>[y(a,{value:e.title,"onUpdate:value":t=>e.title=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.icon`,label:`آیکون`},{default:u(()=>[y(P,{modelValue:e.icon,"onUpdate:modelValue":t=>e.icon=t},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.desc`,label:`توضیح`,required:``,class:`md:col-span-2`},{default:u(()=>[y(o,{value:e.desc,"onUpdate:value":t=>e.desc=t,"auto-size":{minRows:2,maxRows:5}},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.items`,label:`موارد (فهرست)`,hint:`هر مورد را بنویسید و Enter بزنید`,class:`md:col-span-2`},{default:u(()=>[y(s,{value:e.items,"onUpdate:value":t=>e.items=t,mode:`tags`,open:!1},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})])}}}),_e={class:`grid gap-6 xl:grid-cols-2`},ve={class:`grid gap-x-4 md:grid-cols-2`},ye={class:`grid gap-x-4 md:grid-cols-2`},be={class:`grid gap-x-4 md:grid-cols-2`},xe={class:`grid gap-x-4 md:grid-cols-3`},Se=`https://t.me/...`,Ce=p({__name:`SettingsForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`),n={Saturday:`شنبه`,Sunday:`یکشنبه`,Monday:`دوشنبه`,Tuesday:`سه‌شنبه`,Wednesday:`چهارشنبه`,Thursday:`پنجشنبه`,Friday:`جمعه`},a={website:`وب‌سایت`,telegram:`تلگرام`,instagram:`اینستاگرام`,linkedin:`لینکدین`,whatsapp:`واتساپ`,bale:`بله`,eitaa:`ایتا`,aparat:`آپارات`,youtube:`یوتیوب`,email:`ایمیل (mailto:)`,phone:`تلفن (tel:)`},o=()=>({type:`telegram`,url:``}),s=e=>a[e.type],c=i.map(e=>({value:e,label:a[e]})),d=r.map(e=>({value:e,label:n[e]}));function p(e){t.value.ogImage={url:e.url,alt:t.value.ogImage.alt||e.alt,width:e.width,height:e.height}}return(e,n)=>{let r=C(`a-input`),i=C(`a-textarea`),a=C(`a-card`),m=C(`a-checkbox-group`),h=C(`a-select`);return f(),D(`div`,_e,[y(a,{title:`هویت و سئوی پیش‌فرض`},{default:u(()=>[k(`div`,ve,[y(N,{path:`name`,label:`نام شرکت`,required:``},{default:u(()=>[y(r,{value:t.value.name,"onUpdate:value":n[0]||=e=>t.value.name=e},null,8,[`value`])]),_:1}),y(N,{path:`nameEn`,label:`نام انگلیسی`,required:``},{default:u(()=>[y(r,{value:t.value.nameEn,"onUpdate:value":n[1]||=e=>t.value.nameEn=e,class:`ltr-input`},null,8,[`value`])]),_:1}),y(N,{path:`title`,label:`عنوان پیش‌فرض صفحات (title)`,required:``,class:`md:col-span-2`},{default:u(()=>[y(r,{value:t.value.title,"onUpdate:value":n[2]||=e=>t.value.title=e,maxlength:120,"show-count":``},null,8,[`value`])]),_:1}),y(N,{path:`description`,label:`توضیحات متا (description)`,required:``,class:`md:col-span-2`},{default:u(()=>[y(i,{value:t.value.description,"onUpdate:value":n[3]||=e=>t.value.description=e,maxlength:400,"show-count":``,"auto-size":{minRows:3}},null,8,[`value`])]),_:1}),y(N,{path:`foundingDate`,label:`سال تأسیس (میلادی)`,required:``},{default:u(()=>[y(r,{value:t.value.foundingDate,"onUpdate:value":n[4]||=e=>t.value.foundingDate=e,class:`ltr-input`,placeholder:`2007`},null,8,[`value`])]),_:1})]),y(N,{path:`ogImage.url`,label:`تصویر اشتراک‌گذاری (Open Graph)`,hint:`ترجیحاً ۱۲۰۰×۶۳۰ پیکسل`,required:``},{default:u(()=>[y(F,{url:t.value.ogImage.url,onPick:p},null,8,[`url`])]),_:1}),y(N,{path:`ogImage.alt`,label:`متن جایگزین تصویر`},{default:u(()=>[y(r,{value:t.value.ogImage.alt,"onUpdate:value":n[5]||=e=>t.value.ogImage.alt=e},null,8,[`value`])]),_:1})]),_:1}),y(a,{title:`اطلاعات تماس`},{default:u(()=>[k(`div`,ye,[y(N,{path:`phoneDisplay`,label:`تلفن (نمایشی)`,required:``},{default:u(()=>[y(r,{value:t.value.phoneDisplay,"onUpdate:value":n[6]||=e=>t.value.phoneDisplay=e},null,8,[`value`])]),_:1}),y(N,{path:`phone`,label:`تلفن (برای لینک و گوگل)`,hint:`با کد کشور، مثلاً ‎+98-21-91008800`,required:``},{default:u(()=>[y(r,{value:t.value.phone,"onUpdate:value":n[7]||=e=>t.value.phone=e,class:`ltr-input`},null,8,[`value`])]),_:1}),y(N,{path:`email`,label:`ایمیل`,required:``,class:`md:col-span-2`},{default:u(()=>[y(r,{value:t.value.email,"onUpdate:value":n[8]||=e=>t.value.email=e,class:`ltr-input`},null,8,[`value`])]),_:1}),y(N,{path:`address.locality`,label:`شهر`,required:``},{default:u(()=>[y(r,{value:t.value.address.locality,"onUpdate:value":n[9]||=e=>t.value.address.locality=e},null,8,[`value`])]),_:1}),y(N,{path:`address.country`,label:`کد کشور`,required:``},{default:u(()=>[y(r,{value:t.value.address.country,"onUpdate:value":n[10]||=e=>t.value.address.country=e,class:`ltr-input`,maxlength:2},null,8,[`value`])]),_:1}),y(N,{path:`address.street`,label:`نشانی`,required:``,class:`md:col-span-2`},{default:u(()=>[y(r,{value:t.value.address.street,"onUpdate:value":n[11]||=e=>t.value.address.street=e},null,8,[`value`])]),_:1})])]),_:1}),y(a,{title:`ساعات کاری`},{default:u(()=>[y(N,{path:`workingHours`,label:`متن نمایشی`,required:``},{default:u(()=>[y(r,{value:t.value.workingHours,"onUpdate:value":n[12]||=e=>t.value.workingHours=e},null,8,[`value`])]),_:1}),y(N,{path:`openingHours.days`,label:`روزهای کاری (برای گوگل)`},{default:u(()=>[y(m,{value:t.value.openingHours.days,"onUpdate:value":n[13]||=e=>t.value.openingHours.days=e,options:l(d)},null,8,[`value`,`options`])]),_:1}),k(`div`,be,[y(N,{path:`openingHours.opens`,label:`ساعت شروع`,required:``},{default:u(()=>[y(r,{value:t.value.openingHours.opens,"onUpdate:value":n[14]||=e=>t.value.openingHours.opens=e,class:`ltr-input`,placeholder:`08:00`},null,8,[`value`])]),_:1}),y(N,{path:`openingHours.closes`,label:`ساعت پایان`,required:``},{default:u(()=>[y(r,{value:t.value.openingHours.closes,"onUpdate:value":n[15]||=e=>t.value.openingHours.closes=e,class:`ltr-input`,placeholder:`17:00`},null,8,[`value`])]),_:1})])]),_:1}),y(a,{title:`شبکه‌های اجتماعی و لینک‌ها`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.socials,"onUpdate:modelValue":n[16]||=e=>t.value.socials=e,create:o,max:12,"add-label":`افزودن لینک`,"item-title":s},{default:u(({item:e,index:t})=>[k(`div`,xe,[y(N,{path:`socials.${t}.type`,label:`نوع`},{default:u(()=>[y(h,{value:e.type,"onUpdate:value":t=>e.type=t,options:l(c)},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1032,[`path`]),y(N,{path:`socials.${t}.url`,label:`آدرس`,required:``,class:`md:col-span-2`},{default:u(()=>[y(r,{value:e.url,"onUpdate:value":t=>e.url=t,class:`ltr-input`,placeholder:Se},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`])]),_:1})])}}}),we={class:`space-y-6`},Te={class:`grid gap-x-4 md:grid-cols-2`},Ee={class:`grid gap-x-4 md:grid-cols-2`},De=p({__name:`StandardsForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-textarea`),i=C(`a-input`),a=C(`a-card`);return f(),D(`div`,we,[y(a,{title:`عنوان و متن`},{default:u(()=>[y(z,{modelValue:t.value.head,"onUpdate:modelValue":n[0]||=e=>t.value.head=e},null,8,[`modelValue`]),k(`div`,Te,[y(N,{path:`note`,label:`کادر توضیح (اختیاری)`},{default:u(()=>[y(r,{value:t.value.note,"onUpdate:value":n[1]||=e=>t.value.note=e,"auto-size":{minRows:2,maxRows:5}},null,8,[`value`])]),_:1}),y(N,{path:`ctaLabel`,label:`متن دکمه`,required:``},{default:u(()=>[y(i,{value:t.value.ctaLabel,"onUpdate:value":n[2]||=e=>t.value.ctaLabel=e},null,8,[`value`])]),_:1})])]),_:1}),y(a,{title:`استانداردها`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.items,"onUpdate:modelValue":n[3]||=e=>t.value.items=e,create:()=>({code:``,label:``}),max:12,"add-label":`افزودن استاندارد`,"item-title":e=>e.code},{default:u(({item:e,index:t})=>[k(`div`,Ee,[y(N,{path:`items.${t}.code`,label:`کد استاندارد`,required:``},{default:u(()=>[y(i,{value:e.code,"onUpdate:value":t=>e.code=t,class:`ltr-input`,placeholder:`EN 397`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.label`,label:`عنوان`,required:``},{default:u(()=>[y(i,{value:e.label,"onUpdate:value":t=>e.label=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})])}}}),Oe={class:`grid gap-x-4 md:grid-cols-4`},ke=p({__name:`StatsForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-input-number`),i=C(`a-input`),a=C(`a-card`);return f(),_(a,{title:`شمارنده‌ها`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.items,"onUpdate:modelValue":n[0]||=e=>t.value.items=e,create:()=>({end:0,suffix:`+`,label:``,note:``}),max:8,"add-label":`افزودن شمارنده`,"item-title":e=>e.label},{default:u(({item:e,index:t})=>[k(`div`,Oe,[y(N,{path:`items.${t}.end`,label:`عدد نهایی`,required:``},{default:u(()=>[y(r,{value:e.end,"onUpdate:value":t=>e.end=t,min:0,class:`!w-full`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.suffix`,label:`پسوند`,hint:`مثلاً + یا ٪`},{default:u(()=>[y(i,{value:e.suffix,"onUpdate:value":t=>e.suffix=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.label`,label:`عنوان`,required:``},{default:u(()=>[y(i,{value:e.label,"onUpdate:value":t=>e.label=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.note`,label:`یادداشت انگلیسی کوچک`},{default:u(()=>[y(i,{value:e.note,"onUpdate:value":t=>e.note=t,class:`ltr-input`},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})}}}),Ae=p({__name:`TapeForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-select`),i=C(`a-card`);return f(),_(i,{title:`عبارت‌های نوار متحرک`},{default:u(()=>[y(N,{path:`items`,label:`عبارت‌ها`,hint:`هر عبارت را بنویسید و Enter بزنید؛ برای حذف روی × کلیک کنید`,required:``},{default:u(()=>[y(r,{value:t.value.items,"onUpdate:value":n[0]||=e=>t.value.items=e,mode:`tags`,open:!1},null,8,[`value`])]),_:1})]),_:1})}}}),je={class:`space-y-6`},Me={class:`grid gap-x-4 md:grid-cols-2`},Ne=p({__name:`TestimonialsForm`,props:{modelValue:{required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=S(e,`modelValue`);return(e,n)=>{let r=C(`a-card`),i=C(`a-textarea`),a=C(`a-input`);return f(),D(`div`,je,[y(r,{title:`عنوان بخش`},{default:u(()=>[y(z,{modelValue:t.value.head,"onUpdate:modelValue":n[0]||=e=>t.value.head=e,"with-highlight":!1,"with-desc":!1},null,8,[`modelValue`])]),_:1}),y(r,{title:`نظرات`,"body-style":{background:`#fafafa`}},{default:u(()=>[y(I,{modelValue:t.value.items,"onUpdate:modelValue":n[1]||=e=>t.value.items=e,create:()=>({text:``,name:``,role:``}),max:12,"add-label":`افزودن نظر`,"item-title":e=>e.name},{default:u(({item:e,index:t})=>[k(`div`,Me,[y(N,{path:`items.${t}.text`,label:`متن نظر`,required:``,class:`md:col-span-2`},{default:u(()=>[y(i,{value:e.text,"onUpdate:value":t=>e.text=t,"auto-size":{minRows:2,maxRows:5}},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.name`,label:`نام`,required:``},{default:u(()=>[y(a,{value:e.name,"onUpdate:value":t=>e.name=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`]),y(N,{path:`items.${t}.role`,label:`سمت و سازمان`},{default:u(()=>[y(a,{value:e.role,"onUpdate:value":t=>e.role=t},null,8,[`value`,`onUpdate:value`])]),_:2},1032,[`path`])])]),_:1},8,[`modelValue`,`item-title`])]),_:1})])}}}),Pe={key:0,class:`max-lg:hidden flex items-center gap-2 me-2`},$=[`href`],Fe={class:`lg:hidden fixed bottom-0 inset-x-0 z-30 border-t border-gray-200 bg-white/95 px-4 py-2.5 backdrop-blur-md shadow-lg flex items-center justify-between gap-3`},Ie={key:0,class:`flex items-center gap-2`},Le={class:`text-xs font-medium text-gray-700`},Re={key:1,class:`text-xs text-gray-500 font-medium`},ze={class:`flex items-center gap-2`},Be=[`href`],Ve=p({__name:`SectionEditPage`,setup(r){let i={settings:Ce,hero:se,tape:Ae,stats:ke,productsIntro:pe,about:G,services:ge,standards:De,industries:ue,testimonials:Ne,contact:J,footer:X},p=O(),h=m(),S=String(h.params.key),N=n(S),P=N?S:`hero`,{model:F,validate:I,handleError:L,reset:R}=M(t[P],{}),z=c(!1),B=c(!1),V=c(null),H=w(()=>N?e[P]:null);async function U(){try{let e=await T(`/admin/sections/${P}`),t=e.data;P!==`settings`&&t.enabled===void 0&&(t.enabled=!0),R(t),V.value=e.updatedAt,z.value=!0}catch(e){E.error(x(e))}}async function W(){let e=I();if(e){B.value=!0;try{let t=await T(`/admin/sections/${P}`,{method:`PUT`,body:e});R(t.data),V.value=t.updatedAt,E.success(`ذخیره شد؛ سایت تا چند لحظه دیگر به‌روز می‌شود`)}catch(e){L(e)}finally{B.value=!1}}}let K=c(!1);async function q(e){let t=!!e;F.value.enabled=t,K.value=!0;try{let e=await T(`/admin/sections/${P}/visibility`,{method:`PATCH`,body:{enabled:t}});F.value.enabled=e.enabled!==!1,V.value=e.updatedAt,E.success(`وضعیت نمایش به ${t?`نمایش`:`عدم نمایش`} تغییر یافت`)}catch(e){F.value.enabled=!t,E.error(x(e))}finally{K.value=!1}}return N&&U(),(e,t)=>{let n=C(`a-result`),r=C(`a-switch`),c=C(`a-button`),m=C(`a-alert`),h=C(`a-form`),x=C(`a-spin`);return l(N)?(f(),D(g,{key:1},[y(j,{title:H.value.title,subtitle:V.value?`آخرین ذخیره: ${l(te)(V.value)}`:H.value.desc,back:`/sections`},{default:u(()=>[l(P)===`settings`?v(``,!0):(f(),D(`div`,Pe,[t[1]||=k(`span`,{class:`text-sm font-medium text-gray-700`},`نمایش در سایت:`,-1),y(r,{checked:l(F)?.enabled!==!1,loading:K.value,"checked-children":`نمایش`,"un-checked-children":`مخفی`,onChange:q},null,8,[`checked`,`loading`])])),k(`a`,{href:l(A),target:`_blank`,rel:`noopener`,class:`max-lg:hidden`},[y(c,null,{default:u(()=>[...t[2]||=[b(`مشاهده سایت`,-1)]]),_:1})],8,$),y(c,{type:`primary`,class:`max-lg:hidden`,loading:B.value,disabled:!z.value||l(P)===`settings`&&!l(p).isAdmin,onClick:W},{icon:u(()=>[y(a,{name:`save-2`,size:16})]),default:u(()=>[t[3]||=b(` ذخیره `,-1)]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`title`,`subtitle`]),y(x,{spinning:!z.value},{default:u(()=>[z.value&&l(P)===`settings`&&!l(p).isAdmin?(f(),_(m,{key:0,type:`error`,"show-icon":``,message:`فقط مدیر کل می‌تواند تنظیمات سایت را تغییر دهد.`,class:`mb-4`})):z.value&&l(P)!==`settings`&&l(F).enabled===!1?(f(),_(m,{key:1,type:`warning`,"show-icon":``,message:`این بخش در حال حاضر در سایت نمایش داده نمی‌شود (مخفی است).`,class:`mb-4`})):v(``,!0),z.value?(f(),_(h,{key:2,layout:`vertical`,class:`pb-20 lg:pb-0`,onSubmit:ee(W,[`prevent`])},{default:u(()=>[(f(),_(o(i[l(P)]),{modelValue:l(F),"onUpdate:modelValue":t[0]||=e=>d(F)?F.value=e:null},null,8,[`modelValue`]))]),_:1})):v(``,!0)]),_:1},8,[`spinning`]),k(`div`,Fe,[l(P)===`settings`?(f(),D(`div`,Re,`تنظیمات پایه`)):(f(),D(`div`,Ie,[y(r,{checked:l(F)?.enabled!==!1,loading:K.value,size:`small`,onChange:q},null,8,[`checked`,`loading`]),k(`span`,Le,s(l(F)?.enabled===!1?`مخفی`:`نمایش در سایت`),1)])),k(`div`,ze,[k(`a`,{href:l(A),target:`_blank`,rel:`noopener`},[y(c,{size:`middle`,class:`!px-3`,title:`مشاهده سایت`},{icon:u(()=>[y(a,{name:`eye`,size:16})]),_:1})],8,Be),y(c,{type:`primary`,size:`middle`,class:`!font-bold !px-5`,loading:B.value,disabled:!z.value||l(P)===`settings`&&!l(p).isAdmin,onClick:W},{icon:u(()=>[y(a,{name:`save-2`,size:16})]),default:u(()=>[t[4]||=b(` ذخیره تغییرات `,-1)]),_:1},8,[`loading`,`disabled`])])])],64)):(f(),_(n,{key:0,status:`404`,title:`بخش پیدا نشد`}))}}});export{Ve as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/SectionsPage-Da2RoCd0.js b/apps/admin/dist/assets/SectionsPage-Da2RoCd0.js new file mode 100644 index 0000000..86e95fe --- /dev/null +++ b/apps/admin/dist/assets/SectionsPage-Da2RoCd0.js @@ -0,0 +1 @@ +import{d as e,f as t}from"./VuesaxIcon-B2OgulS6.js";import{Bt as n,Ct as r,Dt as i,Ft as a,It as o,Lt as s,Nt as c,Rt as l,Tt as u,_t as d,ct as f,dt as p,ft as m,gt as h,ht as g,i as _,kt as v,n as y,o as b,ot as x,pt as S,t as C,ut as w}from"./index-BuGK6ptM.js";import{a as T}from"./format-B9MYDQJN.js";import{t as E}from"./PageHeader-3Ryvg2HD.js";var D={class:`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`},O={class:`flex items-center justify-between gap-2`},k=[`onClick`],A={class:`font-bold text-gray-800 group-hover:text-orange-600 transition-colors`},j={key:0,class:`flex items-center flex-shrink-0`},M=[`onClick`],N=[`onClick`],P={key:0},F=d({__name:`SectionsPage`,setup(d){let F=b(),I=C(),L=e.filter(e=>e!==`settings`||I.isAdmin),R=o(!0),z=a({hero:!0,tape:!0,stats:!0,productsIntro:!0,about:!0,services:!0,standards:!0,industries:!0,testimonials:!0,contact:!0,footer:!0}),B=a({}),V=a({});function H(e){return z[e]!==!1}function U(e){return B[e]??null}async function W(){R.value=!0;try{let e=await y(`/admin/sections`);for(let t of e)z[t.key]=t.enabled!==!1,B[t.key]=t.updatedAt}catch(e){x.error(_(e))}finally{R.value=!1}}async function G(e,n){if(e===`settings`)return;let r=z[e]!==!1;z[e]=n,V[e]=!0;try{let r=await y(`/admin/sections/${e}/visibility`,{method:`PATCH`,body:{enabled:n}});z[e]=r.enabled!==!1,B[e]=r.updatedAt,x.success(`وضعیت «${t[e].title}» به ${n?`نمایش`:`عدم نمایش`} تغییر یافت`)}catch(t){z[e]=r,x.error(_(t))}finally{V[e]=!1}}function K(e){F.push({name:`section-edit`,params:{key:e}})}return r(()=>{W()}),(e,r)=>{let a=v(`a-tag`),o=v(`a-switch`),d=v(`a-card`),_=v(`a-spin`);return u(),S(f,null,[h(E,{title:`بخش‌های سایت`,subtitle:`متن‌ها، تصاویر و فهرست‌های صفحه اصلی؛ تنظیم وضعیت نمایش و ویرایش محتوا`}),h(_,{spinning:R.value},{default:c(()=>[w(`div`,D,[(u(!0),S(f,null,i(s(L),e=>(u(),S(`div`,{key:e,class:`block group`},[h(d,{hoverable:``,class:l([`h-full flex flex-col justify-between transition-all`,{"opacity-75 bg-gray-50/60":e!==`settings`&&!H(e)}])},{default:c(()=>[w(`div`,null,[w(`div`,O,[w(`div`,{class:`flex items-center gap-2 cursor-pointer flex-1`,onClick:t=>K(e)},[w(`span`,A,n(s(t)[e].title),1),e===`settings`?(u(),p(a,{key:0,color:`blue`},{default:c(()=>[...r[0]||=[g(`تنظیمات پایه`,-1)]]),_:1})):H(e)?m(``,!0):(u(),p(a,{key:1,color:`error`},{default:c(()=>[...r[1]||=[g(`مخفی`,-1)]]),_:1}))],8,k),e===`settings`?m(``,!0):(u(),S(`div`,j,[h(o,{checked:H(e),loading:V[e],"checked-children":`نمایش`,"un-checked-children":`مخفی`,onChange:t=>G(e,!!t)},null,8,[`checked`,`loading`,`onChange`])]))]),w(`p`,{class:`mt-2 text-sm leading-6 text-gray-500 cursor-pointer`,onClick:t=>K(e)},n(s(t)[e].desc),9,M)]),w(`div`,{class:`mt-4 flex items-center justify-between border-t border-gray-100 pt-3 text-xs text-gray-400 cursor-pointer`,onClick:t=>K(e)},[r[2]||=w(`span`,{class:`text-primary font-medium group-hover:underline`},`ویرایش بخش ←`,-1),U(e)?(u(),S(`span`,P,`آخرین تغییر: `+n(s(T)(U(e))),1)):m(``,!0)],8,N)]),_:2},1032,[`class`])]))),128))])]),_:1},8,[`spinning`])],64)}}});export{F as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/UsersPage-C15bNN1T.js b/apps/admin/dist/assets/UsersPage-C15bNN1T.js new file mode 100644 index 0000000..fa0b6e9 --- /dev/null +++ b/apps/admin/dist/assets/UsersPage-C15bNN1T.js @@ -0,0 +1 @@ +import{a as e,b as t,l as n,o as r,t as i,u as a}from"./VuesaxIcon-B2OgulS6.js";import{Bt as o,Ct as s,Dt as ee,It as c,Lt as l,Nt as u,Rt as te,Tt as d,_t as f,ct as p,dt as m,ft as h,gt as g,ht as _,i as v,kt as y,lt as b,n as x,ot as S,pt as C,st as ne,t as w,ut as T}from"./index-BuGK6ptM.js";import{a as E}from"./format-B9MYDQJN.js";import{t as re}from"./PageHeader-3Ryvg2HD.js";import{n as D,t as O}from"./FormField-CiVT7mqC.js";var ie={key:0,dir:`ltr`},ae={class:`lg:hidden space-y-3`},k={key:0,class:`rounded-xl border border-dashed border-gray-200 bg-white p-8 text-center`},A={key:1,class:`space-y-3`},oe={class:`flex items-start justify-between gap-3`},se={class:`flex items-center gap-3`},ce={class:`font-bold text-gray-900`},le=[`href`],ue={class:`flex flex-col items-end gap-1`},de={class:`mt-3.5 flex items-center justify-between border-t border-gray-100 pt-3 text-xs text-gray-400`},fe={class:`flex items-center gap-1.5`},pe={class:`font-medium text-gray-600`},j={class:`flex items-center gap-1.5`},M={class:`lg:hidden mt-4 rounded-xl border border-gray-200 bg-white p-3 text-xs shadow-sm`},N={class:`cursor-pointer font-bold text-gray-700 flex items-center justify-between select-none`},P={class:`flex items-center gap-1.5`},F={class:`mt-3 space-y-3 pt-3 border-t border-gray-100`},I={class:`rounded-lg border border-orange-200 bg-orange-50/40 p-2.5`},L={class:`flex items-center gap-2 font-bold text-orange-700`},R={class:`rounded-lg border border-blue-200 bg-blue-50/40 p-2.5`},z={class:`flex items-center gap-2 font-bold text-blue-700`},me={class:`mt-6 max-lg:hidden grid gap-4 md:grid-cols-2`},he={class:`flex items-center gap-2 font-bold text-orange-700`},ge={class:`flex items-center gap-2 font-bold text-blue-700`},_e={class:`mt-1.5 text-[11px] text-gray-500`},B=f({__name:`UsersPage`,setup(f){let B=w(),V=c([]),H=c(!1),U=c(null),W=c(!1),G={phone:``,name:``,role:`EDITOR`,password:``,isActive:!0},K=D(n,G),q=K.model,J=b(()=>U.value===0),ve=e.map(e=>({value:e,label:r[e]}));async function Y(){H.value=!0;try{V.value=await x(`/admin/users`)}catch(e){S.error(v(e))}finally{H.value=!1}}function X(){K.reset(G),U.value=0}function Z(e){K.reset({phone:e.phone,name:e.name,role:e.role,isActive:e.isActive,password:``}),U.value=e.id}async function Q(){W.value=!0;try{if(J.value){let e=K.validate();if(!e)return;await x(`/admin/users`,{method:`POST`,body:e})}else{let{name:e,role:n,isActive:r,password:i}=q.value,o=a.safeParse({name:e,role:n,isActive:r,password:i||void 0});if(!o.success){K.errors.value=Object.fromEntries(t(o.error).map(e=>[e.path,e.message]));return}await x(`/admin/users/${U.value}`,{method:`PUT`,body:o.data})}S.success(`ذخیره شد`),U.value=null,await Y()}catch(e){K.handleError(e)}finally{W.value=!1}}async function $(e){try{await x(`/admin/users/${e.id}`,{method:`DELETE`}),S.success(`کاربر حذف شد`),await Y()}catch(e){S.error(v(e))}}let ye=[{title:`نام`,dataIndex:`name`},{title:`موبایل`,key:`phone`},{title:`نقش`,key:`role`,width:110},{title:`وضعیت`,key:`active`,width:100},{title:`آخرین ورود`,key:`login`,width:170},{title:``,key:`actions`,width:100}];return s(Y),(e,t)=>{let n=y(`a-button`),a=y(`a-tag`),s=y(`a-popconfirm`),c=y(`a-space`),f=y(`a-table`),v=y(`a-card`),b=y(`a-spin`),x=y(`a-input`),S=y(`a-select`),w=y(`a-checkbox`),D=y(`a-input-password`),G=y(`a-form`),K=y(`a-modal`);return d(),C(p,null,[g(re,{title:`کاربران پنل`,subtitle:`مدیر کل به همه بخش‌ها دسترسی دارد؛ ویرایشگر به جز کاربران و تنظیمات سایت`},{default:u(()=>[g(n,{type:`primary`,onClick:X},{icon:u(()=>[g(i,{name:`add`,size:16})]),default:u(()=>[t[6]||=_(` کاربر جدید `,-1)]),_:1})]),_:1}),g(v,{"body-style":{padding:0},class:`max-lg:hidden`},{default:u(()=>[g(f,{columns:ye,"data-source":V.value,loading:H.value,"row-key":`id`,pagination:!1,scroll:{x:700}},{bodyCell:u(({column:e,record:t})=>[e.key===`phone`?(d(),C(`span`,ie,o(t.phone),1)):e.key===`role`?(d(),m(a,{key:1,color:t.role===`ADMIN`?`orange`:`blue`},{default:u(()=>[_(o(l(r)[t.role]),1)]),_:2},1032,[`color`])):e.key===`active`?(d(),m(a,{key:2,color:t.isActive?`green`:`default`},{default:u(()=>[_(o(t.isActive?`فعال`:`غیرفعال`),1)]),_:2},1032,[`color`])):e.key===`login`?(d(),C(p,{key:3},[_(o(l(E)(t.lastLoginAt)),1)],64)):e.key===`actions`?(d(),m(c,{key:4,size:4},{default:u(()=>[g(n,{size:`small`,onClick:e=>Z(t)},{icon:u(()=>[g(i,{name:`edit-2`,size:16})]),_:1},8,[`onClick`]),t.id===l(B).user?.id?h(``,!0):(d(),m(s,{key:0,title:`این کاربر حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:e=>$(t)},{default:u(()=>[g(n,{size:`small`,danger:``},{icon:u(()=>[g(i,{name:`trash`,size:16})]),_:1})]),_:1},8,[`onConfirm`]))]),_:2},1024)):h(``,!0)]),_:1},8,[`data-source`,`loading`])]),_:1}),T(`div`,ae,[g(b,{spinning:H.value},{default:u(()=>[!V.value.length&&!H.value?(d(),C(`div`,k,[...t[7]||=[T(`div`,{class:`text-sm text-gray-500`},`کاربری یافت نشد`,-1)]])):(d(),C(`div`,A,[(d(!0),C(p,null,ee(V.value,e=>(d(),C(`div`,{key:e.id,class:`rounded-xl border border-gray-100 bg-white p-4 shadow-sm transition-all`},[T(`div`,oe,[T(`div`,se,[T(`div`,{class:te([`flex size-11 flex-shrink-0 items-center justify-center rounded-full font-bold text-white shadow-sm`,e.role===`ADMIN`?`bg-gradient-to-tr from-orange-600 to-amber-500`:`bg-gradient-to-tr from-blue-600 to-sky-500`])},o(e.name.slice(0,1)),3),T(`div`,null,[T(`div`,ce,o(e.name),1),T(`a`,{href:`tel:${e.phone}`,class:`mt-0.5 inline-block text-xs font-mono text-gray-500 hover:text-orange-600`,dir:`ltr`},o(e.phone),9,le)])]),T(`div`,ue,[g(a,{color:e.role===`ADMIN`?`orange`:`blue`,class:`!m-0 text-[11px]`},{default:u(()=>[_(o(l(r)[e.role]),1)]),_:2},1032,[`color`]),g(a,{color:e.isActive?`green`:`default`,class:`!m-0 text-[10px]`},{default:u(()=>[_(o(e.isActive?`فعال`:`غیرفعال`),1)]),_:2},1032,[`color`])])]),T(`div`,de,[T(`div`,fe,[t[8]||=T(`span`,null,`آخرین ورود:`,-1),T(`span`,pe,o(l(E)(e.lastLoginAt)),1)]),T(`div`,j,[g(n,{size:`small`,class:`!flex !items-center !gap-1`,onClick:t=>Z(e)},{icon:u(()=>[g(i,{name:`edit-2`,size:14})]),default:u(()=>[t[9]||=T(`span`,null,`ویرایش`,-1)]),_:1},8,[`onClick`]),e.id===l(B).user?.id?h(``,!0):(d(),m(s,{key:0,title:`این کاربر حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:t=>$(e)},{default:u(()=>[g(n,{size:`small`,danger:``,class:`!px-2`},{icon:u(()=>[g(i,{name:`trash`,size:14})]),_:1})]),_:1},8,[`onConfirm`]))])])]))),128))]))]),_:1},8,[`spinning`])]),T(`button`,{type:`button`,class:`lg:hidden fixed bottom-20 left-4 z-30 flex size-13 items-center justify-center rounded-full bg-[#ff5a00] text-white shadow-lg shadow-orange-500/30 transition-transform active:scale-95`,title:`کاربر جدید`,onClick:X},[g(i,{name:`add`,size:24})]),T(`details`,M,[T(`summary`,N,[T(`span`,P,[g(i,{name:`info-circle`,size:16,class:`text-orange-500`}),t[10]||=_(` راهنمای نقش‌ها و مجوزهای دسترسی `,-1)]),t[11]||=T(`span`,{class:`text-gray-400 text-[10px]`},`لمس برای مشاهده`,-1)]),T(`div`,F,[T(`div`,I,[T(`div`,L,[g(a,{color:`orange`},{default:u(()=>[...t[12]||=[_(`مدیر کل (ADMIN)`,-1)]]),_:1}),t[13]||=T(`span`,{class:`text-[11px]`},`دسترسی ارشد سیستمی`,-1)]),t[14]||=T(`ul`,{class:`mt-2 space-y-1 text-[11px] text-gray-600 list-disc list-inside`},[T(`li`,null,`مدیریت کاربران، نقش‌ها و تنظیمات امنیتی`),T(`li`,null,`تنظیمات پایه سایت، سئو، شبکه‌ها و ساعات کاری`),T(`li`,null,`حذف داده‌ها (محصولات، دسته‌ها، پیام‌ها، رسانه‌ها)`)],-1)]),T(`div`,R,[T(`div`,z,[g(a,{color:`blue`},{default:u(()=>[...t[15]||=[_(`ویرایشگر (EDITOR)`,-1)]]),_:1}),t[16]||=T(`span`,{class:`text-[11px]`},`دسترسی محتوایی`,-1)]),t[17]||=T(`ul`,{class:`mt-2 space-y-1 text-[11px] text-gray-600 list-disc list-inside`},[T(`li`,null,`ایجاد، ویرایش و انتشار محصولات و دسته‌بندی‌ها`),T(`li`,null,`ویرایش محتوای بخش‌های صفحه اصلی`),T(`li`,null,`آپلود تصاویر در رسانه و مشاهده پیام‌های تماس`)],-1)])])]),T(`div`,me,[g(v,{size:`small`,class:`border-orange-200 bg-orange-50/30`},{default:u(()=>[T(`div`,he,[g(a,{color:`orange`},{default:u(()=>[...t[18]||=[_(`مدیر کل (ADMIN)`,-1)]]),_:1}),t[19]||=T(`span`,{class:`text-xs`},`دسترسی ارشد سیستمی`,-1)]),t[20]||=T(`ul`,{class:`mt-2.5 space-y-1.5 text-xs text-gray-600 list-disc list-inside`},[T(`li`,null,`مدیریت کاربران، افزودن کاربر و تغییر نقش‌ها و وضعیت حساب`),T(`li`,null,`دسترسی کامل به تنظیمات پایه سایت، ساعات کاری، شبکه‌ها و سئو`),T(`li`,null,`مجوز حذف محصولات، دسته‌بندی‌ها، رسانه‌ها و پیام‌های تماس`),T(`li`,null,`مشاهده لاگ‌های امنیتی و رویدادهای کامل سامانه`)],-1)]),_:1}),g(v,{size:`small`,class:`border-blue-200 bg-blue-50/30`},{default:u(()=>[T(`div`,ge,[g(a,{color:`blue`},{default:u(()=>[...t[21]||=[_(`ویرایشگر (EDITOR)`,-1)]]),_:1}),t[22]||=T(`span`,{class:`text-xs`},`دسترسی محتوایی`,-1)]),t[23]||=T(`ul`,{class:`mt-2.5 space-y-1.5 text-xs text-gray-600 list-disc list-inside`},[T(`li`,null,`ایجاد، ویرایش، کپی و انتشار محصولات و گروه‌ها`),T(`li`,null,`ویرایش محتوای بخش‌های صفحه اصلی و فعال/مخفی‌سازی نمایش آنها`),T(`li`,null,`آپلود و ویرایش اطلاعات رسانه‌ها در کتابخانه رسانه`),T(`li`,null,`مشاهده پیام‌های تماس و به‌روزرسانی وضعیت (بدون دسترسی حذف یا مدیریت کاربران)`)],-1)]),_:1})]),g(K,{open:U.value!==null,title:J.value?`کاربر جدید`:`ویرایش کاربر`,"ok-text":`ذخیره`,"cancel-text":`انصراف`,"confirm-loading":W.value,"destroy-on-close":``,onOk:Q,onCancel:t[5]||=e=>U.value=null},{default:u(()=>[g(G,{layout:`vertical`,class:`mt-4`,onSubmit:ne(Q,[`prevent`])},{default:u(()=>[g(O,{path:`phone`,label:`شماره موبایل`,required:``},{default:u(()=>[g(x,{value:l(q).phone,"onUpdate:value":t[0]||=e=>l(q).phone=e,class:`ltr-input`,disabled:!J.value,inputmode:`tel`,placeholder:`09121234567`},null,8,[`value`,`disabled`])]),_:1}),g(O,{path:`name`,label:`نام`,required:``},{default:u(()=>[g(x,{value:l(q).name,"onUpdate:value":t[1]||=e=>l(q).name=e},null,8,[`value`])]),_:1}),g(O,{path:`role`,label:`نقش`,required:``},{default:u(()=>[g(S,{value:l(q).role,"onUpdate:value":t[2]||=e=>l(q).role=e,disabled:U.value===l(B).user?.id,options:l(ve)},null,8,[`value`,`disabled`,`options`]),T(`div`,_e,o(l(q).role===`ADMIN`?`مدیر کل: دسترسی کامل سیستمی، حذف داده‌ها، تنظیمات و مدیریت کاربران`:`ویرایشگر: ویرایش محتوا، محصولات، بخش‌ها و پیام‌ها (بدون حذف)`),1)]),_:1}),J.value?h(``,!0):(d(),m(O,{key:0,path:`isActive`},{default:u(()=>[g(w,{checked:l(q).isActive,"onUpdate:checked":t[3]||=e=>l(q).isActive=e,disabled:U.value===l(B).user?.id},{default:u(()=>[...t[24]||=[_(`حساب فعال است`,-1)]]),_:1},8,[`checked`,`disabled`])]),_:1})),g(O,{path:`password`,label:J.value?`رمز عبور`:`رمز عبور جدید (اختیاری)`,required:J.value,hint:`حداقل ۸ کاراکتر`},{default:u(()=>[g(D,{value:l(q).password,"onUpdate:value":t[4]||=e=>l(q).password=e,class:`ltr-input`,autocomplete:`new-password`},null,8,[`value`])]),_:1},8,[`label`,`required`])]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`])],64)}}});export{B as default}; \ No newline at end of file diff --git a/apps/admin/dist/assets/VuesaxIcon-B2OgulS6.js b/apps/admin/dist/assets/VuesaxIcon-B2OgulS6.js new file mode 100644 index 0000000..f03554b --- /dev/null +++ b/apps/admin/dist/assets/VuesaxIcon-B2OgulS6.js @@ -0,0 +1,6203 @@ +import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as ee,Q as te,R as g,S as ne,T as re,Tt as ie,U as _,V as ae,W as oe,X as se,Y as ce,Z as le,_ as ue,_t as de,at as fe,b as pe,c as me,d as v,et as he,f as ge,g as y,h as _e,it as ve,j as ye,k as be,l as b,lt as xe,m as x,nt as Se,p as Ce,pt as we,q as Te,rt as Ee,s as S,tt as De,u as C,v as Oe,w,x as ke,y as Ae,z as je,zt as Me}from"./index-BuGK6ptM.js";function Ne(){let e=this._zod;return e.message??=JSON.stringify(e.def,n,2),e.message}function Pe(e){this._zod.message=e}var Fe={get:Ne,set:Pe,enumerable:!0,configurable:!0},Ie={value:void 0,enumerable:!1},Le=new WeakSet([Object.prototype,Error.prototype]),Re=b(`$ZodError`,(e,t)=>{e.name=`$ZodError`,Ie.value=t,Object.defineProperty(e,"issues",Ie),Ie.value=void 0,Object.defineProperty(e,"message",Fe);let n=Object.getPrototypeOf(e);Le.has(n)||(Le.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))});function ze(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function Be(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?ze(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Ve(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i{let n=(r,i,a,o)=>{let s=a?{...a,async:!1}:{async:!1},c=r._zod.run({value:i,issues:[]},s);if(c instanceof Promise)throw new S;if(c.issues.length){let r=new((o?.Err)??e)(c.issues.map(e=>t(e,s,C())));throw Ae(r,o?.callee??n),r}return c.value};return n},We=e=>{let n=async(r,i,a,o)=>{let s=a?{...a,async:!0}:{async:!0},c=r._zod.run({value:i,issues:[]},s);if(c instanceof Promise&&(c=await c),c.issues.length){let r=new((o?.Err)??e)(c.issues.map(e=>t(e,s,C())));throw Ae(r,o?.callee??n),r}return c.value};return n},Ge=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new S;return a.issues.length?Ke(e,a.issues,i):{success:!0,data:a.value}};function Ke(e,n,r){let i;return{success:!1,get error(){return i||(i=new e(n.map(e=>t(e,r,C()))),n=void 0,r=void 0),i},set error(e){i=e,n=void 0,r=void 0}}}var qe=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?Ke(e,a.issues,i):{success:!0,data:a.value}},Je=Symbol.for(`zod.compile.invalid`),Ye=Symbol.for(`zod.compile.fallback`),Xe=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==Je)return!0;if(r.definite===!0&&n===void 0)return!1}return Ze(e,t,n)});function Ze(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[Ye]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new S;return a.issues.length===0}var Qe=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},$e=e=>{let t=Ue(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,He(n,a))};return n},et=e=>{let t=Ue(e),n=(e,r,i,a)=>t(e,r,i,He(n,a));return n},tt=e=>{let t=We(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,He(n,a))};return n},nt=e=>{let t=We(e),n=async(e,r,i,a)=>await t(e,r,i,He(n,a));return n},rt=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Ge(e)(t,n,i)},it=e=>(t,n,r)=>Ge(e)(t,n,r),at=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return qe(e)(t,n,i)},ot=e=>async(t,n,r)=>qe(e)(t,n,r),st=/^[cC][0-9a-z]{6,}$/,ct=/^[0-9a-z]+$/,lt=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,ut=/^[0-9a-vA-V]{20}$/,dt=/^[A-Za-z0-9]{27}$/,ft=/^[a-zA-Z0-9_-]{21}$/;function pt(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var mt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ht=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,gt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,_t=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,vt=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;function yt(){return new RegExp(vt,`u`)}var bt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,St=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ct=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,wt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Tt=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Et=/^https?$/,Dt=/^\+[1-9]\d{6,14}$/,Ot=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function kt(e){return RegExp(`^${e}$`)}var At=kt(Ot);function jt(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Mt(e){return RegExp(`^${jt(e)}$`)}function Nt(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${jt({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${jt({precision:e.precision})}`:n;return RegExp(`^${Ot}T(?:${r})$`)}var Pt=/^[\s\S]{0,}$/,Ft=/^-?\d+(?:\.\d+)?$/,It=/^(?:true|false)$/i,Lt=/^[^A-Z]*$/,Rt=/^[^a-z]*$/,T=b(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),zt=e=>{let t=e.value;return!oe(t)&&t.length!==void 0},E={number:`number`,bigint:`bigint`,object:`date`},Bt=b(`$ZodCheckLessThan`,(e,t)=>{T.init(e,t);let n=E[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value{T.init(e,t);let n=E[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:E[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ht=b(`$ZodCheckMultipleOf`,(e,t)=>{T.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):ye(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ut=b(`$ZodCheckNumberFormat`,(e,t)=>{T.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Ce[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}sa&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Wt=b(`$ZodCheckMaxLength`,(e,t)=>{var n;T.init(e,t),(n=e._zod.def).when??(n.when=zt),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?ne(r):i)<=t.maximum)return;let a=m(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Gt=b(`$ZodCheckMinLength`,(e,t)=>{var n;T.init(e,t),(n=e._zod.def).when??(n.when=zt),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i=t.minimum)return;let a=m(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Kt=b(`$ZodCheckLengthEquals`,(e,t)=>{var n;T.init(e,t),(n=e._zod.def).when??(n.when=zt),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?ne(r):i;if(a===t.length)return;let o=m(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),qt=b(`$ZodCheckStringFormat`,(e,t)=>{var n,r;T.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Jt=b(`$ZodCheckRegex`,(e,t)=>{qt.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Yt=b(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Lt,qt.init(e,t)}),Xt=b(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Rt,qt.init(e,t)}),Zt=b(`$ZodCheckIncludes`,(e,t)=>{T.init(e,t);let n=i(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Qt=b(`$ZodCheckStartsWith`,(e,t)=>{T.init(e,t);let n=RegExp(`^${i(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),$t=b(`$ZodCheckEndsWith`,(e,t)=>{T.init(e,t);let n=RegExp(`.*${i(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),en=b(`$ZodCheckOverwrite`,(e,t)=>{T.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),tn=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(` +`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(` +`)}\n};`)(...Object.values(this.closed))}},nn={major:4,minor:6,patch:7},D=b(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=nn;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=x(t),a;for(let o of n){if(o._zod.def.when){if(h(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new S;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(ue(t.issues,n,e),i||=x(t,n))});else{if(t.issues.length===n)continue;ue(t.issues,n,e),i||=x(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(x(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new S;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new S;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return ee(this,`~standard`,on(this))},set"~standard"(e){Te(this,`~standard`,e)}}),rn=(e,n)=>e.issues.length?{issues:e.issues.map(e=>t(e,n,C()))}:{value:e.value};async function an(e,t){let n={async:!0};return rn(await e._zod.run({value:t,issues:[]},n),n)}function on(e){return{validate:t=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return rn(r,n)}catch{}return an(e,t)},vendor:`zod`,version:1}}var sn=b(`$ZodString`,(e,t)=>{D.init(e,t),e._zod.pattern=t.pattern??Pt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),O=b(`$ZodStringFormat`,(e,t)=>{qt.init(e,t),sn.init(e,t)}),cn=b(`$ZodGUID`,(e,t)=>{t.pattern??=ht,O.init(e,t)}),ln=b(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=gt(e)}else t.pattern??=gt();O.init(e,t)}),un=b(`$ZodEmail`,(e,t)=>{t.pattern??=_t,O.init(e,t)});function dn(e){try{return typeof URL<`u`&&typeof URL.canParse==`function`?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function fn(e,t){return!(`normalize`in t)&&!(`hostname`in t)&&!(`protocol`in t)?dn(e)||2:pn(e,t)}function pn(e,t){if(!t.normalize&&t.protocol?.source===Et.source&&!/^https?:\/\//i.test(e))return 1;try{if(typeof URL<`u`){let t=URL;if(typeof t.parse==`function`)return t.parse(e)??2}return new URL(e)}catch{return 2}}var mn=/[\t\n\r]/g;function hn(e){return e.replace(mn,``)}function gn(e,t){return t.lastIndex=0,t.test(e.hostname)}function _n(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}var vn=b(`$ZodURL`,(e,t)=>{O.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=fn(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=hn(r);return}t.hostname&&!gn(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!_n(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:hn(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),yn=b(`$ZodEmoji`,(e,t)=>{t.pattern??=yt(),O.init(e,t)}),bn=b(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?ft:pt(t.length),O.init(e,t)}),xn=b(`$ZodCUID`,(e,t)=>{t.pattern??=st,O.init(e,t)}),Sn=b(`$ZodCUID2`,(e,t)=>{t.pattern??=ct,O.init(e,t)}),Cn=b(`$ZodULID`,(e,t)=>{t.pattern??=lt,O.init(e,t)}),wn=b(`$ZodXID`,(e,t)=>{t.pattern??=ut,O.init(e,t)}),Tn=b(`$ZodKSUID`,(e,t)=>{t.pattern??=dt,O.init(e,t)}),En=b(`$ZodISODateTime`,(e,t)=>{t.pattern??=Nt(t),O.init(e,t)}),Dn=b(`$ZodISODate`,(e,t)=>{t.pattern??=At,O.init(e,t)}),On=b(`$ZodISOTime`,(e,t)=>{t.pattern??=Mt(t),O.init(e,t)}),kn=b(`$ZodISODuration`,(e,t)=>{t.pattern??=mt,O.init(e,t)}),An=b(`$ZodIPv4`,(e,t)=>{t.pattern??=bt,O.init(e,t)}),jn=/^[0-9a-fA-F:.]+$/;function Mn(e){return jn.test(e)?dn(`http://[${e}]`):!1}var Nn=b(`$ZodIPv6`,(e,t)=>{t.pattern??=xt,O.init(e,t),e._zod.check=n=>{Mn(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),Pn=b(`$ZodCIDRv4`,(e,t)=>{t.pattern??=St,O.init(e,t)});function Fn(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:Mn(n)}var In=b(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Ct,O.init(e,t),e._zod.check=n=>{Fn(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}});function Ln(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Rn=/^[0-9a-zA-Z+/]*={0,2}$/,zn=b(`$ZodBase64`,(e,t)=>{t.pattern??=Rn,O.init(e,t),e._zod.check=n=>{Ln(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}}),Bn=/^[A-Za-z0-9_-]*$/;function Vn(e){if(!Bn.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Ln(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Hn=b(`$ZodBase64URL`,(e,t)=>{t.pattern??=Bn,O.init(e,t),e._zod.check=n=>{Vn(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),Un=b(`$ZodE164`,(e,t)=>{t.pattern??=Dt,O.init(e,t)});function Wn(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var Gn=b(`$ZodJWT`,(e,t)=>{O.init(e,t),e._zod.check=n=>{Wn(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),Kn=b(`$ZodNumber`,(e,t)=>{D.init(e,t),e._zod.pattern=Ft,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),qn=b(`$ZodNumberFormat`,(e,t)=>{Ut.init(e,t),Kn.init(e,t)}),Jn=b(`$ZodBoolean`,(e,t)=>{D.init(e,t),e._zod.pattern=It,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),Yn=b(`$ZodUnknown`,(e,t)=>{D.init(e,t),e._zod.parse=e=>e}),Xn=b(`$ZodNever`,(e,t)=>{D.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function Zn(e,t){let n=Ee(e._zod.def.checks);if(!n.length)return;let r=Math.min(...n.map(e=>e[0])),i=e._zod.parse;e._zod.parse=(n,a)=>{let o=t(n.value);if(o>r&&!a?.skipChecks&&a?.direction!==`backward`){for(let[t,r]of Ee(e._zod.def.checks))if(o>t&&r._zod.def.when(n)){let t=n.issues.length;return r._zod.check(n),n.issues[t].continue=!1,ue(n.issues,t,e),n}}return i(n,a)}}var Qn=e=>Array.isArray(e)?e.length:-1;function $n(e,t,n){e.issues.length&&t.issues.push(...le(n,e.issues)),t.value[n]=e.value}var er=b(`$ZodArray`,(e,t)=>{D.init(e,t);let n=v.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[],s=i?.abortEarly;for(let e=0;e$n(t,r,e)));else if($n(c,r,e),s&&c.issues.length!==0&&x(c))break}return o.length?Promise.all(o).then(()=>r):r},Zn(e,Qn)});function k(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...le(n,e.issues))}!o&&i===void 0?e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]}):e.value===void 0?(o||i===`defaulted`&&!s)&&(t.value[n]=void 0):t.value[n]=e.value}}var tr=[];function nr(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:tr,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=d(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function rr(e,t,n,r,i,a,o){let s=[],c=i.keySet,l=i.catchall._zod,u=l.def.type,d=l.optin,f=l.optout,p=0;for(let i in t){if(o&&n.issues.length!==p){if(x(n,p))break;p=n.issues.length}if(c.has(i))continue;if(i===`__proto__`){u===`never`&&s.push(i);continue}if(u===`never`){s.push(i);continue}let a=l.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>k(e,n,i,t,d,f))):k(a,n,i,t,d,f)}return s.length&&n.issues.push({code:`unrecognized_keys`,keys:s,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}var ir=b(`$ZodObject`,(e,t)=>{D.init(e,t);let n=Object.getOwnPropertyDescriptor(t,`shape`),r=n?.get?n.get.raw:t.shape??{};if(r){let e=()=>{let n={...r};return Object.defineProperty(t,"shape",{value:n}),e.raw=n,n};e.raw=r,Object.defineProperty(t,"shape",{get:e})}let i=Oe(()=>nr(t));w(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||y(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let a=l,o=t.catchall,s,c=v.memoizer;c?.attach(e),e._zod.parse=(t,n)=>{s??=i.value;let r=t.value;if(!a(r))return t.issues.push({expected:`object`,code:`invalid_type`,input:r,inst:e}),t;t.value=c?c.alloc(e,t,{},n):{};let l=[],u=s.shape,d=n?.abortEarly,f=t.issues.length;for(let e of s.allKeys){if(d&&t.issues.length!==f){if(x(t,f))break;f=t.issues.length}if(e===`__proto__`)continue;let i=u[e],a=i._zod.optin,o=i._zod.optout,s=i._zod.run({value:r[e],issues:[]},n);s instanceof Promise?l.push(s.then(n=>k(n,t,e,r,a,o))):k(s,t,e,r,a,o)}return o?rr(l,r,t,n,i.value,e,d===!0):l.length?Promise.all(l).then(()=>t):t}}),ar=b(`$ZodObjectJIT`,(e,t)=>{ir.init(e,t);let n=e._zod.parse,r=Oe(()=>nr(t)),i=v.memoizer,o=t=>{let n=r.value,o=n.symbolKeys,s=new tn([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:o}),c=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,l=(e,t)=>` + let ${e}_ab = false; + for (let i = 0; i < ${e}.issues.length; i++) { + const iss = ${e}.issues[i]; + iss.path = iss.path ? [${t}, ...iss.path] : [${t}]; + payload.issues.push(iss); + if (iss.continue !== true) ${e}_ab = true; + } + if (${e}_ab && ctx && ctx.abortEarly) { + payload.value = newResult; + return payload; + }`;s.write(`const input = payload.value;`);let u=Object.create(null),d=0;for(let e of n.allKeys)u[e]=`key_${d++}`;s.write(i?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(let e of n.allKeys){if(e===`__proto__`)continue;let n=u[e],r=typeof e==`symbol`?`syms[${o.indexOf(e)}]`:a(e),i=`${r} in input`,d=t[e],f=d?._zod?.optin,p=f!==void 0,m=d?._zod?.optout===`optional`;if(s.write(`const ${n} = ${c(r)};`),p&&m){let e=f===`optional`?`${n}_present`:`${n}.value !== undefined || ${n}_present`;s.write(` + const ${n}_present = ${i}; + if (!${n}.issues.length || ${n}_present) { + if (${n}.issues.length) {${l(n,r)} + } + + if (${e}) { + newResult[${r}] = ${n}.value; + } + } + + `)}else p?(s.write(` + if (${n}.issues.length) {${l(n,r)} + } + `),f===`defaulted`?s.write(`newResult[${r}] = ${n}.value;`):s.write(` + if (${n}.value !== undefined || ${i}) { + newResult[${r}] = ${n}.value; + } + `)):s.write(` + const ${n}_present = ${i}; + if (${n}.issues.length) {${l(n,r)} + } + if (!${n}_present && !${n}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${r}] + }); + if (ctx && ctx.abortEarly) { + payload.value = newResult; + return payload; + } + } + + if (${n}_present) { + newResult[${r}] = ${n}.value; + } + + `)}return s.write(`payload.value = newResult;`),s.write(`return payload;`),s.compile()},s,c=l,u=!v.jitless,d=u&&_e.value,f=t.catchall,p;e._zod.parse=(i,a)=>{p??=r.value;let l=i.value;return c(l)?u&&d&&a?.async===!1&&a.jitless!==!0?(s||=o(t.shape),i=s(i,a),f?rr([],l,i,a,p,e,a?.abortEarly===!0):i):n(i,a):(i.issues.push({expected:`object`,code:`invalid_type`,input:l,inst:e}),i)}});function or(e,n,r,i){for(let t of e)if(t.issues.length===0)return n.value=t.value,n;let a=e.filter(e=>!x(e));return a.length===1?(n.value=a[0].value,a[0]):(n.issues.push({code:`invalid_union`,input:n.value,inst:r,errors:e.map(e=>e.issues.map(e=>t(e,i,C())))}),n)}var sr=b(`$ZodUnion`,(e,t)=>{D.init(e,t),w(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),w(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),w(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),w(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>pe(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>or(t,r,e,i)):or(o,r,e,i)}}),cr=b(`$ZodIntersection`,(e,t)=>{D.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>ur(e,t,n)):ur(e,i,a)}});function lr(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(f(e)&&f(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=lr(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=lr(t.value,n.value);if(!c.valid){if(x(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var dr=b(`$ZodEnum`,(e,t)=>{D.init(e,t);let n=p(t.entries),r=new Set(n);e._zod.values=r,w(e,`pattern`,e=>{let t=p(e.def.entries).filter(e=>te.has(typeof e));return RegExp(t.length?`^(${t.map(e=>i(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),fr=b(`$ZodTransform`,(e,t)=>{D.init(e,t),e._zod.optin=`optional`,v.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new me(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new S;return n.value=i,n}});function pr(e,t){return e.value=t.issues.length?void 0:t.value,e}var mr=b(`$ZodOptional`,(e,t)=>{D.init(e,t),w(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,w(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t,void 0]):void 0}),w(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${pe(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>pr(e,t)):pr(e,r)}return t.innerType._zod.run(e,n)}}),hr=b(`$ZodExactOptional`,(e,t)=>{mr.init(e,t),w(e,`values`,e=>e.def.innerType._zod.values),w(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),gr=b(`$ZodNullable`,(e,t)=>{D.init(e,t),w(e,`optin`,e=>e.def.innerType._zod.optin),w(e,`optout`,e=>e.def.innerType._zod.optout),w(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${pe(t.source)}|null)$`):void 0}),w(e,`values`,e=>e.def.innerType._zod.values?new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),_r=b(`$ZodDefault`,(e,t)=>{D.init(e,t),e._zod.optin=`defaulted`,w(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>vr(e,t)):vr(r,t)}});function vr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var yr=b(`$ZodPrefault`,(e,t)=>{D.init(e,t),e._zod.optin=`defaulted`,w(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),br=b(`$ZodNonOptional`,(e,t)=>{D.init(e,t),w(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>xr(t,e)):xr(i,e)}});function xr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Sr(e,n,r,i){return n.issues.length?(e.value=r.catchValue({...n,value:e.value,error:{issues:n.issues.map(e=>t(e,i,C()))},input:e.value}),e):(e.value=n.value,n.memo&&(e.memo=!0),e)}var Cr=b(`$ZodCatch`,(e,t)=>{D.init(e,t),w(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),w(e,`optout`,e=>e.def.innerType._zod.optout),w(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>Sr(e,r,t,n)):Sr(e,r,t,n)}}),wr=b(`$ZodPipe`,(e,t)=>{D.init(e,t),w(e,`values`,e=>e.def.in._zod.values),w(e,`optin`,e=>e.def.in._zod.optin),w(e,`optout`,e=>e.def.out._zod.optout),w(e,`propValues`,e=>e.def.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Tr(e,t.in,n)):Tr(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Tr(e,t.out,n)):Tr(r,t.out,n)}});function Tr(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var Er=b(`$ZodReadonly`,(e,t)=>{D.init(e,t),w(e,`propValues`,e=>e.def.innerType._zod.propValues),w(e,`values`,e=>e.def.innerType._zod.values),w(e,`optin`,e=>e.def.innerType?._zod?.optin),w(e,`optout`,e=>e.def.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Dr):Dr(r)}});function Dr(e){return e.memo||(e.value=Object.freeze(e.value)),e}var Or=b(`$ZodCustom`,(e,t)=>{T.init(e,t),D.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>kr(t,n,r,e));kr(i,n,r,e)}});function kr(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(g(e))}}var Ar=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},jr=`~memo`,Mr=[];function Nr(e){return typeof e==`object`&&!!e}function Pr(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var Fr=new WeakMap,A=0,Ir=1,j=2;function Lr(t,n,r){let i=Fr.get(t);if(i!==void 0)return i?j:A;if(n.has(t))return j;n.add(t);let a=A,o=e=>{if(a!==j&&e?._zod){let t=Lr(e,n,r);t>a&&(a=t)}},s=(e,t)=>{let i=A;for(let a of Reflect.ownKeys(e)){let o=Object.getOwnPropertyDescriptor(e,a);if(t&&!o.enumerable)continue;let s=o.get?Ir:o.value?._zod?Lr(o.value,n,r):A;s>i&&(i=s)}return i},c=e=>{e>a&&(a=e)},l=t._zod.def;switch(l.type){case`object`:{let t=e(l);c(t?s(t,!0):Ir),o(l.catchall);break}case`array`:o(l.element);break;case`tuple`:for(let e of l.items)o(e);o(l.rest);break;case`record`:case`map`:o(l.keyType),o(l.valueType);break;case`set`:o(l.valueType);break;case`union`:for(let e of l.options)o(e);break;case`intersection`:o(l.left),o(l.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:o(l.innerType);break;case`pipe`:o(l.in),o(l.out);break;case`function`:o(l.input),o(l.output);break;case`lazy`:{let e=l._cachedInner??(r?t._zod.innerType:void 0);c(e?Lr(e,n,!1):Ir);break}case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in l){let t=Object.getOwnPropertyDescriptor(l,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)o(n);else if(Array.isArray(n))for(let e of n)o(e)}}}return n.delete(t),Rr(t,a)}function Rr(e,t){return t!==Ir&&Fr.set(e,t===j),t}function zr(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}var Br,Vr=[],Hr={alloc(e,t,n){let r=Br;if(!r)return n;Br=void 0;let i={value:n,issues:null};return r.set(t.value,i),Vr.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&Wr(n,e.value))throw new Ar;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r=!1,i,a;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,o=(s,c)=>{if(n===void 0){let i=Lr(e,new Set,!1);if(i===A)return e._zod.parse=t,e._zod.run===o&&(e._zod.run=t),t(s,c);i===j||r?n=!0:r=!0}let l=s.value;if(!Nr(l))return t(s,c);let u=c[jr];u||(u={buckets:new WeakMap,backEdges:void 0},c[jr]=u);let d;i===c?d=a:(d=zr(u,e),i=c,a=d);let f=d.get(l);if(f)return s.value=f.value,f.issues?f.issues.length&&s.issues.push(...Pr(f.issues)):(s.memo=!0,u.backEdges??(u.backEdges=new WeakSet),u.backEdges.add(f.value)),s;Br=d;let p=Vr.length,m=t(s,c);Br=void 0;let h=Vr.length>p?Vr.pop():void 0;return m instanceof Promise?m.then(e=>(h&&(h.issues=e.issues.length?Pr(e.issues):Mr),e)):(h&&(h.issues=m.issues.length?Pr(m.issues):Mr),m)};e._zod.parse=o,e._zod.run===t&&(e._zod.run=o)})}};function Ur(){return Hr}function Wr(e,t){let n=e[jr]?.backEdges;return n!==void 0&&Nr(t)&&n.has(t)}var Gr=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,currency_code:`currency code`,credit_card:`credit card number`,iban:`IBAN`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(u(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${fe(e.values[0])}`:`Invalid option: expected one of ${je(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${je(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function Kr(){return{localeError:Gr()}}var qr,Jr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Yr(){return new Jr}(qr=globalThis).__zod_globalRegistry??(qr.__zod_globalRegistry=Yr());var M=globalThis.__zod_globalRegistry;function Xr(e){return e.checks&&=[...e.checks],e}function Zr(e,t){return new e(Xr({type:`string`,..._(t)}))}function Qr(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,..._(t)})}function $r(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,..._(t)})}function ei(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,..._(t)})}function ti(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,..._(t)})}function ni(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,..._(t)})}function ri(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,..._(t)})}function ii(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,..._(t)})}function ai(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,..._(t)})}function oi(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,..._(t)})}function si(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,..._(t)})}function ci(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,..._(t)})}function li(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,..._(t)})}function ui(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,..._(t)})}function di(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,..._(t)})}function fi(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,..._(t)})}function pi(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,..._(t)})}function mi(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,..._(t)})}function hi(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,..._(t)})}function gi(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,..._(t)})}function _i(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,..._(t)})}function vi(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,..._(t)})}function yi(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,..._(t)})}function bi(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,..._(t)})}function xi(e,t){return new e({type:`string`,format:`date`,check:`string_format`,..._(t)})}function Si(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,..._(t)})}function Ci(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,..._(t)})}function wi(e,t){return new e(Xr({type:`number`,checks:[],..._(t)}))}function Ti(e,t){return new e(Xr({type:`number`,coerce:!0,checks:[],..._(t)}))}function Ei(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,..._(t)})}function Di(e,t){return new e({type:`boolean`,..._(t)})}function Oi(e){return new e({type:`unknown`})}function ki(e,t){return new e({type:`never`,..._(t)})}function Ai(e,t){return new Bt({check:`less_than`,..._(t),value:e,inclusive:!1})}function ji(e,t){return new Bt({check:`less_than`,..._(t),value:e,inclusive:!0})}function Mi(e,t){return new Vt({check:`greater_than`,..._(t),value:e,inclusive:!1})}function Ni(e,t){return new Vt({check:`greater_than`,..._(t),value:e,inclusive:!0})}function Pi(e,t){return new Ht({check:`multiple_of`,..._(t),value:e})}function Fi(e,t){return new Wt({check:`max_length`,..._(t),maximum:e})}function Ii(e,t){return new Gt({check:`min_length`,..._(t),minimum:e})}function Li(e,t){return new Kt({check:`length_equals`,..._(t),length:e})}function Ri(e,t){return new Jt({check:`string_format`,format:`regex`,..._(t),pattern:e})}function zi(e){return new Yt({check:`string_format`,format:`lowercase`,..._(e)})}function Bi(e){return new Xt({check:`string_format`,format:`uppercase`,..._(e)})}function Vi(e,t){return new Zt({check:`string_format`,format:`includes`,..._(t),includes:e})}function Hi(e,t){return new Qt({check:`string_format`,format:`starts_with`,..._(t),prefix:e})}function Ui(e,t){return new $t({check:`string_format`,format:`ends_with`,..._(t),suffix:e})}function N(e){return new en({check:`overwrite`,tx:e})}function Wi(e){return N(t=>t.normalize(e))}function Gi(){return N(e=>e.trim())}function Ki(){return N(e=>e.toLowerCase())}function qi(){return N(e=>e.toUpperCase())}function Ji(){return N(e=>ve(e))}function Yi(e,t,n){return new e({type:`array`,element:t,..._(n)})}function Xi(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,..._(n)})}function Zi(e,t){let n=Qi(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(g(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(g(r))}},e(t.value,t)),t);return n}function Qi(e,t){let n=new T({check:`custom`,..._(t)});return n._zod.check=e,n}function P(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&y(e,t,n[t]);return e}function $i(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??M,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function F(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function I(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,I(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&P(o.schema,c),t.io===`input`&&L(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function ea(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function ta(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${ea(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+ea(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0])a(n);else{if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}(e.metadataRegistry.get(n[0])?.id||r.cycle||r.count>1&&e.reused===`ref`)&&a(n)}}e.external&&(e.sharedDefsExtractedFor=e.external)}function na(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;na(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var ra=new Set([`type`,`properties`,`required`,`additionalProperties`]),ia=[`oneOf`,`anyOf`];function aa(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function oa(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!ra.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??aa(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}let i=e.length===1?e[0]:oa(e)??{allOf:e};y(n,r,i)}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=aa(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function sa(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of ra)if(t in e)return;let n=t.filter(e=>ia.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=oa(t);else{let e=n[0],i=ia.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>oa([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,P(e,r))}function ca(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):P(i,s),P(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())na(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])sa(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}P(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,y(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:ua(t,`input`,e.processors),output:ua(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function L(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return L(r.element,n);if(r.type===`set`)return L(r.valueType,n);if(r.type===`lazy`)return L(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return L(r.innerType,n);if(r.type===`intersection`)return L(r.left,n)||L(r.right,n);if(r.type===`record`||r.type===`map`)return L(r.keyType,n)||L(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:L(r.in,n)||L(r.out,n);if(r.type===`object`){for(let e in r.shape)if(L(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(L(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(L(e,n))return!0;return!!(r.rest&&L(r.rest,n))}return!1}var la=(e,t={})=>n=>{let r=$i({...n,processors:t});return I(e,r),ta(r,e),ca(r,e)},ua=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=$i({...i??{},target:a,io:t,processors:n});return I(e,o),ta(o,e),ca(o,e)},R=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},z=(e,t,n)=>{(e[t]===void 0||n{R(e,`minimum`,t),z(e,`maximum`,t)},fa=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},pa=(e,t)=>{e.patterns??=new Set,e.patterns.add(t)},ma=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},ha=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},ga=(e,t)=>R(e,`minimum`,t.minimum),_a=(e,t)=>z(e,`maximum`,t.maximum),va=e=>(t,n)=>{ha(t,n.format);let[r,i]=e[n.format];R(t,`minimum`,r),z(t,`maximum`,i)},ya={greater_than:(e,t)=>R(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>z(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>fa(e,t.value),number_format:va(Ce),bigint_format:va(ge),min_length:ga,max_length:_a,length_equals:(e,t)=>da(e,t.length),min_size:ga,max_size:_a,size_equals:(e,t)=>da(e,t.size),string_format:(e,t)=>{ha(e,t.format),t.pattern&&pa(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>ma(e,t.mime)};function B(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)ya[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&R(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&R(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&z(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&z(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&fa(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&ma(t,i.mime);for(let e of i.patterns??[])pa(t,e);return t}var ba={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},xa=new Map([[Rn,wt],[Bn,Tt]]),Sa=e=>xa.get(e)??e,Ca=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=B(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=ba[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(Sa);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},wa=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=B(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):F(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},Ta=(e,t,n,r)=>{n.type=`boolean`},Ea=(e,t,n,r)=>{n.not={}},Da=(e,t,n,r)=>{let i=e._zod.def,a=p(i.entries);a.length===0?n.not={}:(a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a)},Oa=(e,t,n,r)=>{F(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},ka=(e,t,n,r)=>{F(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},Aa=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=B(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=I(a.element,t,{...r,path:[...r.path,`items`]})};function ja(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?ja(t.out):t.type===`catch`?ja(t.innerType):e._zod.optin}var Ma=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&F(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)y(i.properties,e,I(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?ja(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=I(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Na=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>I(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Pa=(e,t,n,r)=>{let i=e._zod.def,a=I(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=I(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},Fa=(e,t,n,r)=>{let i=e._zod.def,a=I(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},Ia=(e,t,n,r)=>{let i=e._zod.def;I(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},La=Symbol();function Ra(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(F(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),La):JSON.parse(o)}var za=(e,t,n,r)=>{let i=e._zod.def;I(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=Ra(i.defaultValue,e,t,n,r);o!==La&&(n.default=o)},Ba=(e,t,n,r)=>{let i=e._zod.def;I(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=Ra(i.defaultValue,e,t,n,r);o!==La&&(n._prefault=o)},Va=(e,t,n,r)=>{let i=e._zod.def;I(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{F(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},Ha=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;I(o,t,r);let s=t.seen.get(e);s.ref=o},Ua=(e,t,n,r)=>{let i=e._zod.def;I(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Wa=(e,t,n,r)=>{let i=e._zod.def;I(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Ga=new WeakSet([Object.prototype,Error.prototype]);function Ka(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var V=b(`ZodError`,(e,t)=>{Re.init(e,t),e.name=`ZodError`;let r=Object.getPrototypeOf(e);Ga.has(r)||(Ga.add(r),Ka(r,`format`,e=>t=>Ve(e,t)),Ka(r,`flatten`,e=>t=>Be(e,t)),Ka(r,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,n,2)}),Ka(r,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,n,2)}),Object.defineProperty(r,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),qa=Ue(V),Ja=We(V),Ya=Ge(V),Xa=qe(V),Za=$e(V),Qa=et(V),$a=tt(V),eo=nt(V),to=rt(V),no=it(V),ro=at(V),io=ot(V);function ao(){v.localeError||C(Kr())}function oo(){v.memoizer||C({memoizer:Ur()})}var H=b(`ZodType`,(e,t)=>(ao(),D.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(c(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ke(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(_s(e,t))},superRefine(e,t){return this.check(vs(e,t))},overwrite(e){return this.check(N(e))},optional(){return $o(this)},exactOptional(){return ts(this)},nullable(){return rs(this)},nullish(){return $o(rs(this))},nonoptional(e){return ls(this,e)},array(){return K(this)},or(e){return Ko([this,e])},and(e){return Jo(this,e)},transform(e){return ps(this,Zo(e))},default(e){return as(this,e)},prefault(e){return ss(this,e)},catch(e){return ds(this,e)},pipe(e){return ps(this,e)},readonly(){return hs(this)},describe(e){let t=this.clone();return M.add(t,{description:e}),t},meta(...e){if(e.length===0)return M.get(this);let t=this.clone();return M.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return ee(this,`~standard`,{...on(this),jsonSchema:{input:ua(this,`input`),output:ua(this,`output`)}})},set"~standard"(e){Te(this,`~standard`,e)},parse:function e(t,n){return qa(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Ja(this,t,n,{callee:e})},safeParse(e,t){return Ya(this,e,t)},async safeParseAsync(e,t){return Xa(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){Te(this,`spa`,e)},validate(e,t){return Xe(this,e,t)},validateAsync(e,t){return Qe(this,e,t)},encode:function e(t,n){return Za(this,t,n,{callee:e})},decode:function e(t,n){return Qa(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await $a(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await eo(this,t,n,{callee:e})},safeEncode(e,t){return to(this,e,t)},safeDecode(e,t){return no(this,e,t)},async safeEncodeAsync(e,t){return ro(this,e,t)},async safeDecodeAsync(e,t){return io(this,e,t)},toJSONSchema(e){return la(this,{})(e)},get description(){return M.get(this)?.description},get _def(){return this._zod.def}}),so=b(`_ZodString`,(e,t)=>{sn.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ca(e,t,n,r)},re({format:e=>B(e).format??null,minLength:e=>B(e).minimum??null,maxLength:e=>B(e).maximum??null},{regex(...e){return this.check(Ri(...e))},includes(...e){return this.check(Vi(...e))},startsWith(...e){return this.check(Hi(...e))},endsWith(...e){return this.check(Ui(...e))},min(...e){return this.check(Ii(...e))},max(...e){return this.check(Fi(...e))},length(...e){return this.check(Li(...e))},nonempty(...e){return this.check(Ii(1,...e))},lowercase(e){return this.check(zi(e))},uppercase(e){return this.check(Bi(e))},trim(){return this.check(Gi())},normalize(...e){return this.check(Wi(...e))},toLowerCase(){return this.check(Ki())},toUpperCase(){return this.check(qi())},slugify(){return this.check(Ji())}})),co=b(`ZodString`,(e,t)=>{sn.init(e,t),so.init(e,t)},{email(e){return this.check(Qr(mo,e))},url(e){return this.check(ii(vo,e))},jwt(e){return this.check(yi(No,e))},emoji(e){return this.check(ai(yo,e))},guid(e){return this.check($r(go,e))},uuid(e){return this.check(ei(_o,e))},uuidv4(e){return this.check(ti(_o,e))},uuidv6(e){return this.check(ni(_o,e))},uuidv7(e){return this.check(ri(_o,e))},nanoid(e){return this.check(oi(bo,e))},cuid(e){return this.check(si(xo,e))},cuid2(e){return this.check(ci(So,e))},ulid(e){return this.check(li(Co,e))},base64(e){return this.check(gi(Ao,e))},base64url(e){return this.check(_i(jo,e))},xid(e){return this.check(ui(wo,e))},ksuid(e){return this.check(di(To,e))},ipv4(e){return this.check(fi(Eo,e))},ipv6(e){return this.check(pi(Do,e))},cidrv4(e){return this.check(mi(Oo,e))},cidrv6(e){return this.check(hi(ko,e))},e164(e){return this.check(vi(Mo,e))},datetime(e){return this.check(bi(lo,e))},date(e){return this.check(xi(uo,e))},time(e){return this.check(Si(fo,e))},duration(e){return this.check(Ci(po,e))}});function U(e){return Zr(co,e)}var W=b(`ZodStringFormat`,(e,t)=>{O.init(e,t),so.init(e,t)}),lo=b(`ZodISODateTime`,(e,t)=>{En.init(e,t),W.init(e,t)}),uo=b(`ZodISODate`,(e,t)=>{Dn.init(e,t),W.init(e,t)}),fo=b(`ZodISOTime`,(e,t)=>{On.init(e,t),W.init(e,t)}),po=b(`ZodISODuration`,(e,t)=>{kn.init(e,t),W.init(e,t)}),mo=b(`ZodEmail`,(e,t)=>{un.init(e,t),W.init(e,t)});function ho(e){return Qr(mo,e)}var go=b(`ZodGUID`,(e,t)=>{cn.init(e,t),W.init(e,t)}),_o=b(`ZodUUID`,(e,t)=>{ln.init(e,t),W.init(e,t)}),vo=b(`ZodURL`,(e,t)=>{vn.init(e,t),W.init(e,t)}),yo=b(`ZodEmoji`,(e,t)=>{yn.init(e,t),W.init(e,t)}),bo=b(`ZodNanoID`,(e,t)=>{bn.init(e,t),W.init(e,t)}),xo=b(`ZodCUID`,(e,t)=>{xn.init(e,t),W.init(e,t)}),So=b(`ZodCUID2`,(e,t)=>{Sn.init(e,t),W.init(e,t)}),Co=b(`ZodULID`,(e,t)=>{Cn.init(e,t),W.init(e,t)}),wo=b(`ZodXID`,(e,t)=>{wn.init(e,t),W.init(e,t)}),To=b(`ZodKSUID`,(e,t)=>{Tn.init(e,t),W.init(e,t)}),Eo=b(`ZodIPv4`,(e,t)=>{An.init(e,t),W.init(e,t)}),Do=b(`ZodIPv6`,(e,t)=>{Nn.init(e,t),W.init(e,t)}),Oo=b(`ZodCIDRv4`,(e,t)=>{Pn.init(e,t),W.init(e,t)}),ko=b(`ZodCIDRv6`,(e,t)=>{In.init(e,t),W.init(e,t)}),Ao=b(`ZodBase64`,(e,t)=>{zn.init(e,t),W.init(e,t)}),jo=b(`ZodBase64URL`,(e,t)=>{Hn.init(e,t),W.init(e,t)}),Mo=b(`ZodE164`,(e,t)=>{Un.init(e,t),W.init(e,t)}),No=b(`ZodJWT`,(e,t)=>{Gn.init(e,t),W.init(e,t)}),Po=b(`ZodNumber`,(e,t)=>{Kn.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wa(e,t,n,r),e.isFinite=!0},re({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=B(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=B(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=B(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>B(e).format??null},{gt(e,t){return this.check(Mi(e,t))},gte(e,t){return this.check(Ni(e,t))},min(e,t){return this.check(Ni(e,t))},lt(e,t){return this.check(Ai(e,t))},lte(e,t){return this.check(ji(e,t))},max(e,t){return this.check(ji(e,t))},int(e){return this.check(Lo(e))},safe(e){return this.check(Lo(e))},positive(e){return this.check(Mi(0,e))},nonnegative(e){return this.check(Ni(0,e))},negative(e){return this.check(Ai(0,e))},nonpositive(e){return this.check(ji(0,e))},multipleOf(e,t){return this.check(Pi(e,t))},step(e,t){return this.check(Pi(e,t))},finite(){return this}}));function Fo(e){return wi(Po,e)}var Io=b(`ZodNumberFormat`,(e,t)=>{qn.init(e,t),Po.init(e,t)});function Lo(e){return Ei(Io,e)}var Ro=b(`ZodBoolean`,(e,t)=>{Jn.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ta(e,t,n,r)});function G(e){return Di(Ro,e)}var zo=b(`ZodUnknown`,(e,t)=>{Yn.init(e,t),H.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Bo(){return Oi(zo)}var Vo=b(`ZodNever`,(e,t)=>{Xn.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ea(e,t,n,r)});function Ho(e){return ki(Vo,e)}var Uo=b(`ZodArray`,(e,t)=>{oo(),er.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Aa(e,t,n,r),e.element=t.element},{min(e,t){return this.check(Ii(e,t))},nonempty(e){return this.check(Ii(1,e))},max(e,t){return this.check(Fi(e,t))},length(e,t){return this.check(Li(e,t))},unwrap(){return this.element}});function K(e,t){return Yi(Uo,e,t)}var Wo=b(`ZodObject`,(e,t)=>{oo(),ar.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ma(e,t,n,r),o(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return J(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(c(this._zod.def,{catchall:e}))},passthrough(){return this.clone(c(this._zod.def,{catchall:Bo()}))},loose(){return this.clone(c(this._zod.def,{catchall:Bo()}))},strict(){return this.clone(c(this._zod.def,{catchall:Ho()}))},strip(){return this.clone(c(this._zod.def,{catchall:void 0}))},extend(e){return be(this,e)},safeExtend(e){return De(this,e)},merge(e){return ae(this,e)},pick(e){return se(this,e)},omit(e){return s(this,e)},partial(...e){return ce(Qo,this,e[0])},exactPartial(...e){return ce(es,this,e[0],`exactPartial`)},required(...e){return he(cs,this,e[0])}});function q(e,t){return new Wo({type:`object`,shape:e??{},..._(t)})}var Go=b(`ZodUnion`,(e,t)=>{sr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Na(e,t,n,r),e.options=t.options});function Ko(e,t){return new Go({type:`union`,options:e,..._(t)})}var qo=b(`ZodIntersection`,(e,t)=>{cr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Pa(e,t,n,r)});function Jo(e,t){return new qo({type:`intersection`,left:e,right:t})}var Yo=b(`ZodEnum`,(e,t)=>{dr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Da(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Yo({...t,checks:[],..._(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Yo({...t,checks:[],..._(r),entries:i})}});function J(e,t){return new Yo({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,..._(t)})}var Xo=b(`ZodTransform`,(e,t)=>{oo(),fr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ka(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new me(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(g(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(g(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Zo(e){return new Xo({type:`transform`,transform:e})}var Qo=b(`ZodOptional`,(e,t)=>{mr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function $o(e){return new Qo({type:`optional`,innerType:e})}var es=b(`ZodExactOptional`,(e,t)=>{hr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ts(e){return new es({type:`optional`,innerType:e})}var ns=b(`ZodNullable`,(e,t)=>{gr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function rs(e){return new ns({type:`nullable`,innerType:e})}var is=b(`ZodDefault`,(e,t)=>{_r.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>za(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function as(e,t){return new is({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Se(t)}})}var os=b(`ZodPrefault`,(e,t)=>{yr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ba(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ss(e,t){return new os({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Se(t)}})}var cs=b(`ZodNonOptional`,(e,t)=>{br.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ia(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ls(e,t){return new cs({type:`nonoptional`,innerType:e,..._(t)})}var us=b(`ZodCatch`,(e,t)=>{Cr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Va(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function ds(e,t){return new us({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:r(t)})}var fs=b(`ZodPipe`,(e,t)=>{wr.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ha(e,t,n,r),e.in=t.in,e.out=t.out});function ps(e,t){return new fs({type:`pipe`,in:e,out:t})}var ms=b(`ZodReadonly`,(e,t)=>{Er.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ua(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function hs(e){return new ms({type:`readonly`,innerType:e})}var gs=b(`ZodCustom`,(e,t)=>{Or.init(e,t),H.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Oa(e,t,n,r)});function _s(e,t={}){return Xi(gs,e,t)}function vs(e,t){return Zi(e,t)}function ys(e){return Ti(Po,e)}var Y=(e=300)=>U().trim().min(1,`این فیلد الزامی است`).max(e),X=(e=300)=>U().trim().max(e).default(``),Z=ys().int().positive(),bs=U().trim().min(1,`این فیلد الزامی است`).max(80).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/,`فقط حروف کوچک انگلیسی، عدد و خط تیره (مثلاً safety-shoes)`),xs=U().trim().min(1).max(80),Ss=q({url:Y(500),alt:X(200)}),Cs=q({label:Y(60),href:Y(300)}),ws=e=>e.issues.map(e=>({path:e.path.map(String).join(`.`),message:e.message})),Ts={ArrowLeft:`arrow-left`,ArrowRight:`arrow-right`,ArrowUp:`arrow-up`,ArrowDown:`arrow-down`,ChevronDown:`arrow-down-1`,ChevronUp:`arrow-up-1`,ChevronLeft:`arrow-left-1`,ChevronRight:`arrow-right-1`,Menu:`menu`,X:`close-circle`,Plus:`add`,Trash:`trash`,Edit:`edit-2`,Copy:`copy`,Check:`tick-circle`,Search:`search-normal`,Filter:`filter`,Eye:`eye`,EyeOff:`eye-slash`,ImageOff:`gallery-slash`,Quote:`quote-up`,Phone:`call`,Mail:`sms`,MapPin:`location`,Clock:`clock`,Globe:`global`,Send:`send-2`,Instagram:`instagram`,Linkedin:`link`,MessageCircle:`messages-2`,Youtube:`video-play`,AtSign:`sms`,HardHat:`security-safe`,Glasses:`glass`,Shirt:`tag`,Footprints:`routing-2`,Hand:`shield-tick`,Ear:`volume-high`,Wind:`wind-2`,TriangleAlert:`danger`,Siren:`lamp-on`,TrafficCone:`danger`,Construction:`setting-2`,Factory:`building-4`,Building2:`buildings-2`,Fuel:`gas-station`,Pickaxe:`hierarchy`,Flame:`flash`,Zap:`flash-circle`,Leaf:`tree`,HeartPulse:`heart-tick`,Star:`star`,ThumbsUp:`like-1`,Target:`radar-2`,Lock:`lock`,ShieldCheck:`shield-tick`,ShieldPlus:`shield-security`,ShieldAlert:`shield-cross`,BadgeCheck:`verify`,Award:`award`,Medal:`medal-star`,PackageCheck:`box-tick`,Package:`box`,Truck:`truck-time`,Warehouse:`buildings`,Users:`people`,Handshake:`user-tag`,Headset:`24-support`,ClipboardCheck:`clipboard-tick`,FileCheck:`document-text`,FileSearch:`document-filter`,GraduationCap:`teacher`,Gauge:`status`,Microscope:`search-status`,Wrench:`setting-4`};function Es(e){return e?e in Ts?Ts[e]:e.replace(/^vuesax-linear:/,``):`shield-tick`}var Ds=`shield-tick.shield-security.shield-cross.security-safe.security-user.verify.award.medal-star.box-tick.box.truck-time.buildings.building-4.buildings-2.global.people.user-tag.24-support.call.sms.location.clock.clipboard-tick.document-text.document-filter.teacher.status.search-status.setting-2.setting-4.glass.tag.routing-2.volume-high.wind-2.danger.lamp-on.gas-station.hierarchy.flash.flash-circle.tree.heart-tick.star.like-1.radar-2.lock.eye.gallery.video-play`.split(`.`);[...Ds,...Object.keys(Ts)];var Q=K(U().trim().min(1).max(120)).max(20).default([]),Os=q({name:Y(80),value:Y(300)}),ks=q({id:Z.optional(),slug:bs,name:Y(120),desc:X(1e3)}),As=q({slug:bs,code:Y(20),name:Y(120),nameEn:X(120),shortDesc:X(500),fullDesc:X(3e3),icon:X(40),coverImageId:Z.nullable().default(null),isPublished:G().default(!0),seoTitle:X(120),seoDescription:X(300),groups:K(ks).max(30).default([])}),js=q({categoryId:Z,groupId:Z.nullable().default(null),code:Y(30),slug:bs,name:Y(160),nameEn:X(160),desc:X(2e3),specs:Q,variants:Q,details:X(8e3),brand:X(80),origin:X(80),sizes:Q,standards:Q,features:K(U().trim().min(1).max(300)).max(30).default([]),applications:Q,attributes:K(Os).max(40).default([]),packaging:X(200),minOrder:X(120),seoTitle:X(120),seoDescription:X(300),imageId:Z.nullable().default(null),galleryIds:K(Z).max(12).default([]),isPublished:G().default(!0)});q({ids:K(Z).min(1).max(1e3)}),q({categoryId:Z.optional(),groupId:Z.optional(),q:U().trim().max(100).optional(),status:J([`published`,`draft`]).optional(),page:ys().int().min(1).default(1),pageSize:ys().int().min(1).max(200).default(50)});var Ms=[`Saturday`,`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],Ns=[`website`,`telegram`,`instagram`,`linkedin`,`whatsapp`,`bale`,`eitaa`,`aparat`,`youtube`,`email`,`phone`],Ps=q({icon:xs,label:Y(80)}),Fs=q({icon:xs,title:Y(80),desc:X(300)}),$=q({tag:Y(80),title:Y(200),highlight:X(120),desc:X(500)}),Is={settings:q({name:Y(80),nameEn:Y(120),title:Y(120),description:Y(400),phone:Y(30),phoneDisplay:Y(40),email:ho(`ایمیل معتبر نیست`),address:q({street:Y(200),locality:Y(80),country:U().trim().length(2).default(`IR`)}),workingHours:Y(120),openingHours:q({days:K(J(Ms)).max(7),opens:U().regex(/^\d{2}:\d{2}$/,`قالب ساعت باید HH:MM باشد`),closes:U().regex(/^\d{2}:\d{2}$/,`قالب ساعت باید HH:MM باشد`)}),foundingDate:U().regex(/^\d{4}$/,`سال میلادی چهاررقمی`),socials:K(q({type:J(Ns),url:Y(300)})).max(12),ogImage:Ss.extend({width:Fo().int().positive().nullable().default(null),height:Fo().int().positive().nullable().default(null)})}),hero:q({enabled:G().default(!0),badge:Y(120),title:Y(80),titleHighlight:Y(80),intro:Y(600),primaryCta:Cs,secondaryCta:Cs,chips:K(Ps).max(6),miniStats:K(q({value:Y(20),label:Y(80)})).max(4),image:Ss,lastInspection:X(20)}),tape:q({enabled:G().default(!0),items:K(Y(80)).min(1).max(20)}),stats:q({enabled:G().default(!0),items:K(q({end:Fo().int().min(0).max(1e9),suffix:X(5),label:Y(80),note:X(40)})).max(8)}),productsIntro:q({enabled:G().default(!0),head:$,ctaLabel:Y(60),trust:K(Fs).max(6)}),about:q({enabled:G().default(!0),head:$,body:Y(2e3),image:Ss,badge:q({value:Y(20),label:Y(80)}),timeline:K(q({year:Y(10),text:Y(200)})).max(12),features:K(Ps).max(6)}),services:q({enabled:G().default(!0),head:$,items:K(q({icon:xs,title:Y(80),desc:Y(600),items:K(Y(120)).max(8)})).max(10)}),standards:q({enabled:G().default(!0),head:$,note:X(500),ctaLabel:Y(80),items:K(q({code:Y(30),label:Y(80)})).max(12)}),industries:q({enabled:G().default(!0),head:$,items:K(q({name:Y(60),nameEn:X(60),count:X(20),image:Ss})).max(12)}),testimonials:q({enabled:G().default(!0),head:$,items:K(q({text:Y(600),name:Y(80),role:X(160)})).max(12)}),contact:q({enabled:G().default(!0),head:$,emergencyTitle:Y(80),emergencyText:Y(400),formTag:X(80),formTitle:Y(160),successTitle:Y(80),successText:Y(300)}),footer:q({enabled:G().default(!0),about:Y(500),copyright:Y(160),certLine:X(160),emergencyNote:X(80)})},Ls=Object.keys(Is),Rs=e=>e in Is,zs={settings:{title:`تنظیمات سایت`,desc:`نام، اطلاعات تماس، ساعات کاری، شبکه‌های اجتماعی و سئوی پیش‌فرض`},hero:{title:`بخش اول (Hero)`,desc:`تیتر اصلی، متن معرفی، دکمه‌ها، نشان‌ها و تصویر پس‌زمینه`},tape:{title:`نوار متحرک`,desc:`عبارت‌های نوار زرد متحرک زیر Hero`},stats:{title:`آمار`,desc:`شمارنده‌های عددی`},productsIntro:{title:`معرفی محصولات`,desc:`عنوان بخش محصولات و کارت‌های اعتماد`},about:{title:`درباره ما`,desc:`متن معرفی، تصویر، تایم‌لاین و ویژگی‌ها`},services:{title:`خدمات`,desc:`فهرست خدمات و جزئیات هر خدمت`},standards:{title:`استانداردها`,desc:`استانداردها و گواهی‌نامه‌ها`},industries:{title:`صنایع`,desc:`صنایع تحت پوشش و تصویر هرکدام`},testimonials:{title:`نظرات مشتریان`,desc:`نقل‌قول‌های مشتریان`},contact:{title:`تماس با ما`,desc:`عنوان‌ها و متن‌های فرم تماس`},footer:{title:`فوتر`,desc:`متن معرفی، کپی‌رایت و توضیحات پایین صفحه`}},Bs=[`ADMIN`,`EDITOR`],Vs={ADMIN:`مدیر کل`,EDITOR:`ویرایشگر`},Hs=U().min(8,`رمز عبور باید حداقل ۸ کاراکتر باشد`).max(128),Us=`۰۱۲۳۴۵۶۷۸۹`,Ws=`٠١٢٣٤٥٦٧٨٩`;function Gs(e){let t=e.trim().replace(/[\s\-()]/g,``);return t=t.replace(/[۰-۹٠-٩]/g,e=>{let t=Us.indexOf(e);if(t>=0)return String(t);let n=Ws.indexOf(e);return n>=0?String(n):e}),t.startsWith(`+98`)?t=`0${t.slice(3)}`:t.startsWith(`0098`)?t=`0${t.slice(4)}`:t.startsWith(`98`)&&t.length===12&&(t=`0${t.slice(2)}`),t}var Ks=U().trim().min(1,`شماره موبایل را وارد کنید`).transform(Gs).pipe(U().regex(/^09\d{9}$/,`شماره موبایل معتبر نیست (مثلاً ۰۹۱۲۱۲۳۴۵۶۷)`)),qs=q({phone:Ks,password:U().min(1,`رمز عبور را وارد کنید`).max(128)}),Js=q({currentPassword:U().min(1,`رمز فعلی را وارد کنید`).max(128),newPassword:Hs}),Ys=q({phone:Ks,name:Y(80),role:J(Bs),password:Hs}),Xs=q({name:Y(80),role:J(Bs),isActive:G(),password:Hs.optional()}),Zs=[`NEW`,`READ`,`ARCHIVED`],Qs={NEW:`جدید`,READ:`خوانده‌شده`,ARCHIVED:`بایگانی`};q({name:Y(80),org:Y(120),phone:U().trim().min(1,`این فیلد الزامی است`).max(30).regex(/^[0-9۰-۹+\-\s()]{5,30}$/,`شماره تماس معتبر نیست`),message:X(2e3),website:U().max(200).optional()}),q({status:J(Zs)}),q({alt:X(200)});var $s={"vuesax-linear:24-support":` + + + + +`,"vuesax-linear:3d-cube-scan":` + + + + + + +`,"vuesax-linear:3d-rotate":` + + + + + + +`,"vuesax-linear:3d-square":` + + + + + +`,"vuesax-linear:3dcube":` + + + + +`,"vuesax-linear:3full":` + + + + + +`,"vuesax-linear:3square":` + + + + +`,"vuesax-linear:aave-(aave)":` + + + + +`,"vuesax-linear:activity":` + + + +`,"vuesax-linear:add-circle":` + + + + +`,"vuesax-linear:add-square":` + + + + +`,"vuesax-linear:add":` + + + +`,"vuesax-linear:additem":` + + + + + +`,"vuesax-linear:airdrop":` + + + + + +`,"vuesax-linear:airplane-square":` + + + +`,"vuesax-linear:airplane":` + + +`,"vuesax-linear:airpod":` + + + + + +`,"vuesax-linear:airpods":` + + + + + + + +`,"vuesax-linear:alarm":` + + + + + + +`,"vuesax-linear:align-bottom":` + + + + +`,"vuesax-linear:align-horizontally":` + + + + + + +`,"vuesax-linear:align-left":` + + + + +`,"vuesax-linear:align-right":` + + + + +`,"vuesax-linear:align-vertically":` + + + + + + +`,"vuesax-linear:android":` + + + + + + + + +`,"vuesax-linear:ankr-(ankr)":` + + + + + +`,"vuesax-linear:apple":` + + +`,"vuesax-linear:aquarius":` + + + + +`,"vuesax-linear:archive-1":` + + + + +`,"vuesax-linear:archive-add":` + + + + +`,"vuesax-linear:archive-book":` + + + + + +`,"vuesax-linear:archive-minus":` + + + +`,"vuesax-linear:archive-slash":` + + + + +`,"vuesax-linear:archive-tick":` + + + +`,"vuesax-linear:archive":` + + + + + + + +`,"vuesax-linear:arrange-circle-2":` + + + + + + +`,"vuesax-linear:arrange-circle":` + + + + + + +`,"vuesax-linear:arrange-square-2":` + + + + + + +`,"vuesax-linear:arrange-square":` + + + + + + +`,"vuesax-linear:arrow-2":` + + + + + +`,"vuesax-linear:arrow-3":` + + + + + +`,"vuesax-linear:arrow-bottom":` + + +`,"vuesax-linear:arrow-circle-down":` + + + +`,"vuesax-linear:arrow-circle-left":` + + + +`,"vuesax-linear:arrow-circle-right":` + + + +`,"vuesax-linear:arrow-down-1":` + + + +`,"vuesax-linear:arrow-down-2":` + + + + +`,"vuesax-linear:arrow-down":` + + +`,"vuesax-linear:arrow-left-1":` + + +`,"vuesax-linear:arrow-left-2":` + + + + +`,"vuesax-linear:arrow-left-3":` + + +`,"vuesax-linear:arrow-left":` + + + +`,"vuesax-linear:arrow-right-1":` + + +`,"vuesax-linear:arrow-right-2":` + + + + +`,"vuesax-linear:arrow-right-3":` + + +`,"vuesax-linear:arrow-right":` + + + +`,"vuesax-linear:arrow-square-down":` + + + +`,"vuesax-linear:arrow-square-left":` + + + +`,"vuesax-linear:arrow-square-right":` + + + +`,"vuesax-linear:arrow-square-up":` + + + +`,"vuesax-linear:arrow-square":` + + + + + + +`,"vuesax-linear:arrow-swap-horizontal":` + + + + + +`,"vuesax-linear:arrow-up-1":` + + +`,"vuesax-linear:arrow-up-2":` + + + + +`,"vuesax-linear:arrow-up-3":` + + +`,"vuesax-linear:arrow-up":` + + + +`,"vuesax-linear:arrow":` + + + + + + + +`,"vuesax-linear:attach-circle":` + + + +`,"vuesax-linear:attach-square":` + + + +`,"vuesax-linear:audio-square":` + + + + + +`,"vuesax-linear:augur-(rep)":` + + + + +`,"vuesax-linear:autobrightness":` + + + + +`,"vuesax-linear:autonio-(niox)":` + + + + + +`,"vuesax-linear:avalanche-(avax)":` + + + + +`,"vuesax-linear:award":` + + + + +`,"vuesax-linear:back-square":` + + + + +`,"vuesax-linear:backward-10-seconds":` + + + + + +`,"vuesax-linear:backward-15-seconds":` + + + + + +`,"vuesax-linear:backward-5-seconds":` + + + + +`,"vuesax-linear:backward-item-1":` + + + + +`,"vuesax-linear:backward-item":` + + + + +`,"vuesax-linear:backward":` + + + +`,"vuesax-linear:bag-2":` + + + + + +`,"vuesax-linear:bag-cross-1":` + + + + + + +`,"vuesax-linear:bag-cross":` + + + + + + + +`,"vuesax-linear:bag-happy":` + + + + + + +`,"vuesax-linear:bag-tick-2":` + + + + + +`,"vuesax-linear:bag-tick":` + + + + + + +`,"vuesax-linear:bag-timer":` + + + + + +`,"vuesax-linear:bag":` + + + + + + + +`,"vuesax-linear:bank":` + + + + + + + + + + +`,"vuesax-linear:barcode":` + + + + + + + + + +`,"vuesax-linear:battery-3full":` + + + + + +`,"vuesax-linear:battery-charging":` + + + + + +`,"vuesax-linear:battery-disable":` + + + + + +`,"vuesax-linear:battery-empty-1":` + + + + +`,"vuesax-linear:battery-empty":` + + + +`,"vuesax-linear:battery-full":` + + + + + + +`,"vuesax-linear:be":` + + + + +`,"vuesax-linear:bezier-1":` + + + + + + + + + + +`,"vuesax-linear:bezier":` + + + + + + + + + + +`,"vuesax-linear:bill":` + + + + + +`,"vuesax-linear:binance-coin-(bnb)":` + + + + + + +`,"vuesax-linear:binance-usd-(busd)":` + + + + + +`,"vuesax-linear:bitcoin-(btc)":` + + + + + + + + + + +`,"vuesax-linear:bitcoin-card":` + + + + + + + + + + + +`,"vuesax-linear:bitcoin-convert":` + + + + + + + + + +`,"vuesax-linear:bitcoin-refresh":` + + + + + + + + + +`,"vuesax-linear:blend-2":` + + + + + + +`,"vuesax-linear:blend":` + + + +`,"vuesax-linear:blogger":` + + + + + +`,"vuesax-linear:bluetooth-2":` + + + + +`,"vuesax-linear:bluetooth-circle":` + + + +`,"vuesax-linear:bluetooth-rectangle":` + + + +`,"vuesax-linear:bluetooth":` + + +`,"vuesax-linear:blur-1":` + + + + + + +`,"vuesax-linear:blur":` + + + + + + +`,"vuesax-linear:book-1":` + + + + + +`,"vuesax-linear:book-saved":` + + + + +`,"vuesax-linear:book-square":` + + + + +`,"vuesax-linear:book":` + + + + + +`,"vuesax-linear:bookmark-2":` + + + +`,"vuesax-linear:bookmark":` + + + + + +`,"vuesax-linear:bootsrap":` + + + +`,"vuesax-linear:box-1":` + + + + +`,"vuesax-linear:box-2":` + + +`,"vuesax-linear:box-add":` + + + + + + + +`,"vuesax-linear:box-remove":` + + + + + + + +`,"vuesax-linear:box-search":` + + + + + + +`,"vuesax-linear:box-tick":` + + + + + + +`,"vuesax-linear:box-time":` + + + + + + +`,"vuesax-linear:box":` + + + + + +`,"vuesax-linear:briefcase":` + + + + + + +`,"vuesax-linear:brifecase-cross":` + + + + + + + + +`,"vuesax-linear:brifecase-tick":` + + + + + + + +`,"vuesax-linear:brifecase-timer":` + + + + + + + +`,"vuesax-linear:broom":` + + + + + + + +`,"vuesax-linear:brush-1":` + + + + + +`,"vuesax-linear:brush-2":` + + + + + +`,"vuesax-linear:brush-3":` + + + + + + +`,"vuesax-linear:brush":` + + + + +`,"vuesax-linear:bubble":` + + + + +`,"vuesax-linear:bucket-circle-1":` + + + + + + +`,"vuesax-linear:bucket-circle":` + + + + + + +`,"vuesax-linear:bucket-square-1":` + + + + + + +`,"vuesax-linear:bucket-square":` + + + + + + +`,"vuesax-linear:building-3":` + + + + + + + + +`,"vuesax-linear:building-4":` + + + + + + + + +`,"vuesax-linear:building":` + + + + + + + +`,"vuesax-linear:buildings-2":` + + + + + + + +`,"vuesax-linear:buildings":` + + + + + + + + +`,"vuesax-linear:buliding":` + + + + + + + + + +`,"vuesax-linear:bus":` + + + + + + +`,"vuesax-linear:buy-crypto":` + + + + +`,"vuesax-linear:cake":` + + + + + + + + +`,"vuesax-linear:calculator":` + + + + + + + + + +`,"vuesax-linear:calendar-1":` + + + + + + +`,"vuesax-linear:calendar-2":` + + + + + + + + +`,"vuesax-linear:calendar-add":` + + + + + + + + + + + +`,"vuesax-linear:calendar-circle":` + + + + + + +`,"vuesax-linear:calendar-edit":` + + + + + + + + + + +`,"vuesax-linear:calendar-remove":` + + + + + + + + + + + +`,"vuesax-linear:calendar-search":` + + + + + + + + + + +`,"vuesax-linear:calendar-tick":` + + + + + + + + + + +`,"vuesax-linear:calendar":` + + + + + + + + + + + +`,"vuesax-linear:call-add":` + + + + +`,"vuesax-linear:call-calling":` + + + + +`,"vuesax-linear:call-incoming":` + + + +`,"vuesax-linear:call-minus":` + + + +`,"vuesax-linear:call-outgoing":` + + + +`,"vuesax-linear:call-received":` + + + +`,"vuesax-linear:call-remove":` + + + + +`,"vuesax-linear:call-slash":` + + + + +`,"vuesax-linear:call":` + + +`,"vuesax-linear:camera-slash":` + + + + + + +`,"vuesax-linear:camera":` + + + + +`,"vuesax-linear:candle-2":` + + + + + + + +`,"vuesax-linear:candle":` + + + + + + + +`,"vuesax-linear:car":` + + + + + + + + + +`,"vuesax-linear:card-add":` + + + + + + + +`,"vuesax-linear:card-coin":` + + + + + + +`,"vuesax-linear:card-edit":` + + + + + + + +`,"vuesax-linear:card-pos":` + + + + + + +`,"vuesax-linear:card-receive":` + + + + + + + +`,"vuesax-linear:card-remove-1":` + + + + + + + +`,"vuesax-linear:card-remove":` + + + + + + + +`,"vuesax-linear:card-send":` + + + + + + + +`,"vuesax-linear:card-slash":` + + + + + + + +`,"vuesax-linear:card-tick-1":` + + + + + + +`,"vuesax-linear:card-tick":` + + + + + + +`,"vuesax-linear:card":` + + + + + +`,"vuesax-linear:cardano-(ada)":` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`,"vuesax-linear:cards":` + + + + + + +`,"vuesax-linear:category-2":` + + + + + +`,"vuesax-linear:category":` + + + + + +`,"vuesax-linear:cd":` + + + +`,"vuesax-linear:celo-(celo)":` + + + +`,"vuesax-linear:celsius-(cel)-":` + + + + +`,"vuesax-linear:chainlink-(link)":` + + +`,"vuesax-linear:chart-1":` + + + + + +`,"vuesax-linear:chart-2":` + + + + +`,"vuesax-linear:chart-21":` + + + + + +`,"vuesax-linear:chart-3":` + + + + +`,"vuesax-linear:chart-square":` + + + + + +`,"vuesax-linear:chart-success":` + + + + + + + + +`,"vuesax-linear:chart":` + + + + + +`,"vuesax-linear:check":` + + + + + +`,"vuesax-linear:chrome":` + + + + + + +`,"vuesax-linear:civic-(cvc)":` + + + +`,"vuesax-linear:clipboard-close":` + + + + + +`,"vuesax-linear:clipboard-export":` + + + + + + +`,"vuesax-linear:clipboard-import":` + + + + + + +`,"vuesax-linear:clipboard-text":` + + + + + +`,"vuesax-linear:clipboard-tick":` + + + + +`,"vuesax-linear:clipboard":` + + + + +`,"vuesax-linear:clock-1":` + + + +`,"vuesax-linear:clock":` + + + + + +`,"vuesax-linear:close-circle":` + + + + +`,"vuesax-linear:close-square":` + + + + +`,"vuesax-linear:cloud-add":` + + + + + +`,"vuesax-linear:cloud-change":` + + + + +`,"vuesax-linear:cloud-connection":` + + + + + + +`,"vuesax-linear:cloud-cross":` + + + + + + +`,"vuesax-linear:cloud-drizzle":` + + + + + + + + +`,"vuesax-linear:cloud-fog":` + + + + + + +`,"vuesax-linear:cloud-lightning":` + + + + + +`,"vuesax-linear:cloud-minus":` + + + + + +`,"vuesax-linear:cloud-notif":` + + + + +`,"vuesax-linear:cloud-plus":` + + + + + + +`,"vuesax-linear:cloud-remove":` + + + + + + +`,"vuesax-linear:cloud-snow":` + + + + + + + +`,"vuesax-linear:cloud-sunny":` + + + + + +`,"vuesax-linear:cloud":` + + + +`,"vuesax-linear:code-1":` + + + + +`,"vuesax-linear:code-circle":` + + + + + +`,"vuesax-linear:code":` + + + + + +`,"vuesax-linear:coffee":` + + + + + + + +`,"vuesax-linear:coin-1":` + + + + + + +`,"vuesax-linear:coin":` + + + + +`,"vuesax-linear:color-swatch":` + + + + + + +`,"vuesax-linear:colorfilter":` + + + + +`,"vuesax-linear:colors-square-1":` + + + + + +`,"vuesax-linear:colors-square":` + + + + + +`,"vuesax-linear:command-square":` + + + + + + + +`,"vuesax-linear:command":` + + + + + + +`,"vuesax-linear:component-1":` + + +`,"vuesax-linear:component":` + + +`,"vuesax-linear:computing":` + + + + + + +`,"vuesax-linear:convert-3d-cube":` + + + + + + + + + +`,"vuesax-linear:convert":` + + + + +`,"vuesax-linear:convertshape-2":` + + + + + +`,"vuesax-linear:convertshape":` + + + + + +`,"vuesax-linear:copy-success":` + + + + +`,"vuesax-linear:copy":` + + + +`,"vuesax-linear:copyright":` + + + +`,"vuesax-linear:courthouse":` + + + + + + + + + +`,"vuesax-linear:cpu-charge":` + + + + + + + + + + + + + + + + +`,"vuesax-linear:cpu-setting":` + + + + + + + + + + + + + +`,"vuesax-linear:cpu":` + + + + + + + + + + + + + + + +`,"vuesax-linear:creative-commons":` + + + + +`,"vuesax-linear:crop":` + + + + + + +`,"vuesax-linear:crown-1":` + + + + +`,"vuesax-linear:crown":` + + +`,"vuesax-linear:cup":` + + + + + + + +`,"vuesax-linear:dai-(dai)":` + + + + + +`,"vuesax-linear:danger":` + + + + +`,"vuesax-linear:dash-(dash)":` + + + +`,"vuesax-linear:data-2":` + + + + + + + + + +`,"vuesax-linear:data":` + + + + + + + +`,"vuesax-linear:decred-(dcr)":` + + + +`,"vuesax-linear:dent-(dent)":` + + + + + +`,"vuesax-linear:designtools":` + + + + + + + + +`,"vuesax-linear:device-message":` + + + + + + + + +`,"vuesax-linear:devices-1":` + + + + + + + + + + + + + + + + + +`,"vuesax-linear:devices":` + + + + + + + + + + +`,"vuesax-linear:diagram":` + + + +`,"vuesax-linear:diamonds":` + + + +`,"vuesax-linear:direct-down":` + + +`,"vuesax-linear:direct-inbox":` + + + + + +`,"vuesax-linear:direct-left":` + + +`,"vuesax-linear:direct-normal":` + + + +`,"vuesax-linear:direct-notification":` + + + + +`,"vuesax-linear:direct-right":` + + +`,"vuesax-linear:direct-send":` + + + + + +`,"vuesax-linear:direct-up":` + + +`,"vuesax-linear:direct":` + + + + + +`,"vuesax-linear:directbox-default":` + + + +`,"vuesax-linear:directbox-notif":` + + + + + +`,"vuesax-linear:directbox-receive":` + + + + + + +`,"vuesax-linear:directbox-send":` + + + + + + +`,"vuesax-linear:discount-circle":` + + + + + +`,"vuesax-linear:discount-shape":` + + + + + +`,"vuesax-linear:discover-1":` + + + +`,"vuesax-linear:discover":` + + + +`,"vuesax-linear:dislike":` + + + +`,"vuesax-linear:document-1":` + + + +`,"vuesax-linear:document-cloud":` + + + + + +`,"vuesax-linear:document-code-2":` + + + + + +`,"vuesax-linear:document-code":` + + + + + +`,"vuesax-linear:document-copy":` + + + + + + + +`,"vuesax-linear:document-download":` + + + + + +`,"vuesax-linear:document-favorite":` + + + + +`,"vuesax-linear:document-filter":` + + + + + +`,"vuesax-linear:document-forward":` + + + + +`,"vuesax-linear:document-like":` + + + + +`,"vuesax-linear:document-normal":` + + + +`,"vuesax-linear:document-previous":` + + + + + +`,"vuesax-linear:document-sketch":` + + + + +`,"vuesax-linear:document-text-1":` + + + + + +`,"vuesax-linear:document-text":` + + + + + +`,"vuesax-linear:document-upload":` + + + + + +`,"vuesax-linear:document":` + + + + +`,"vuesax-linear:dollar-circle":` + + + + +`,"vuesax-linear:dollar-square":` + + + + +`,"vuesax-linear:dribbble":` + + + + + +`,"vuesax-linear:driver-2":` + + + + + + + + + +`,"vuesax-linear:driver-refresh":` + + + + + + + + + +`,"vuesax-linear:driver":` + + + + + + + + + +`,"vuesax-linear:driving":` + + + + + + + + + + + +`,"vuesax-linear:drop":` + + +`,"vuesax-linear:dropbox":` + + + + + + +`,"vuesax-linear:edit-2":` + + + + +`,"vuesax-linear:edit":` + + + + +`,"vuesax-linear:educare-(ekt)":` + + + + + +`,"vuesax-linear:electricity":` + + + + + +`,"vuesax-linear:element-1":` + + + + +`,"vuesax-linear:element-2":` + + + + +`,"vuesax-linear:element-3":` + + + + + +`,"vuesax-linear:element-4":` + + + + + +`,"vuesax-linear:element-equal":` + + + + + + +`,"vuesax-linear:element-plus":` + + + + + + +`,"vuesax-linear:emercoin-(emc)":` + + + + +`,"vuesax-linear:emoji-happy":` + + + + + +`,"vuesax-linear:emoji-normal":` + + + + + +`,"vuesax-linear:emoji-sad":` + + + + + +`,"vuesax-linear:empty-wallet-add":` + + + + + + + + +`,"vuesax-linear:empty-wallet-change":` + + + + + + + + + +`,"vuesax-linear:empty-wallet-remove":` + + + + + + + + +`,"vuesax-linear:empty-wallet-tick":` + + + + + + + +`,"vuesax-linear:empty-wallet-time":` + + + + + + + +`,"vuesax-linear:empty-wallet":` + + + + + +`,"vuesax-linear:enjin-coin-(enj)":` + + + + +`,"vuesax-linear:eos-(eos)":` + + + +`,"vuesax-linear:eraser-1":` + + + + + + +`,"vuesax-linear:eraser-2":` + + + + + + +`,"vuesax-linear:eraser":` + + + + +`,"vuesax-linear:ethereum-(eth)":` + + + + + +`,"vuesax-linear:ethereum-classic-(etc)":` + + + + +`,"vuesax-linear:export-1":` + + + + +`,"vuesax-linear:export-2":` + + + + +`,"vuesax-linear:export-3":` + + + + +`,"vuesax-linear:export":` + + + + +`,"vuesax-linear:external-drive":` + + + + + + + +`,"vuesax-linear:eye-slash":` + + + + + + + +`,"vuesax-linear:eye":` + + + +`,"vuesax-linear:facebook":` + + + +`,"vuesax-linear:fatrows":` + + + +`,"vuesax-linear:favorite-chart":` + + + + +`,"vuesax-linear:figma-1":` + + + + + + + +`,"vuesax-linear:figma":` + + + + + + +`,"vuesax-linear:filter-add":` + + + + + +`,"vuesax-linear:filter-edit":` + + + + +`,"vuesax-linear:filter-remove":` + + + + + + +`,"vuesax-linear:filter-search":` + + + + +`,"vuesax-linear:filter-square":` + + + +`,"vuesax-linear:filter-tick":` + + + + +`,"vuesax-linear:filter":` + + + +`,"vuesax-linear:finger-cricle":` + + + + +`,"vuesax-linear:finger-scan":` + + + + + + + +`,"vuesax-linear:firstline":` + + + + + + +`,"vuesax-linear:flag-2":` + + + +`,"vuesax-linear:flag":` + + + +`,"vuesax-linear:flash-1":` + + +`,"vuesax-linear:flash-circle-1":` + + + +`,"vuesax-linear:flash-circle-2":` + + + +`,"vuesax-linear:flash-circle":` + + + +`,"vuesax-linear:flash-slash":` + + + + +`,"vuesax-linear:flash":` + + + + + +`,"vuesax-linear:folder-2":` + + + +`,"vuesax-linear:folder-add":` + + + + +`,"vuesax-linear:folder-cloud":` + + + +`,"vuesax-linear:folder-connection":` + + + + + + +`,"vuesax-linear:folder-cross":` + + + + +`,"vuesax-linear:folder-favorite":` + + + +`,"vuesax-linear:folder-minus":` + + + +`,"vuesax-linear:folder-open":` + + + + +`,"vuesax-linear:folder":` + + +`,"vuesax-linear:format-circle":` + + + + + + +`,"vuesax-linear:format-square":` + + + + + + +`,"vuesax-linear:forward-10-seconds":` + + + + + +`,"vuesax-linear:forward-15-seconds":` + + + + + +`,"vuesax-linear:forward-5-seconds":` + + + + +`,"vuesax-linear:forward-item-1":` + + + + +`,"vuesax-linear:forward-item":` + + + + +`,"vuesax-linear:forward-square":` + + + + +`,"vuesax-linear:forward":` + + + +`,"vuesax-linear:frame-1":` + + + + + +`,"vuesax-linear:frame-2":` + + + + +`,"vuesax-linear:frame-3":` + + + + + + + +`,"vuesax-linear:frame-4":` + + + + +`,"vuesax-linear:frame-5":` + + + + +`,"vuesax-linear:frame":` + + + +`,"vuesax-linear:framer":` + + + +`,"vuesax-linear:ftx-token-(ftt)":` + + + + + +`,"vuesax-linear:gallery-add":` + + + + + + +`,"vuesax-linear:gallery-edit":` + + + + + + +`,"vuesax-linear:gallery-export":` + + + + + + +`,"vuesax-linear:gallery-favorite":` + + + + + +`,"vuesax-linear:gallery-import":` + + + + + + +`,"vuesax-linear:gallery-remove":` + + + + + + +`,"vuesax-linear:gallery-slash":` + + + + + + +`,"vuesax-linear:gallery-tick":` + + + + + +`,"vuesax-linear:gallery":` + + + + +`,"vuesax-linear:game":` + + + + + + + + + +`,"vuesax-linear:gameboy":` + + + + + + + +`,"vuesax-linear:gas-station":` + + + + + + +`,"vuesax-linear:gemini-2":` + + + + + + + +`,"vuesax-linear:gemini":` + + + + + +`,"vuesax-linear:ghost":` + + + + +`,"vuesax-linear:gift":` + + + + + + +`,"vuesax-linear:glass-1":` + + + + + + +`,"vuesax-linear:glass":` + + + +`,"vuesax-linear:global-edit":` + + + + + + + + +`,"vuesax-linear:global-refresh":` + + + + + + + + + +`,"vuesax-linear:global-search":` + + + + + + + + +`,"vuesax-linear:global":` + + + + + + +`,"vuesax-linear:google-1":` + + +`,"vuesax-linear:google-play":` + + + + + +`,"vuesax-linear:google":` + + + + + +`,"vuesax-linear:gps-slash":` + + + + + + + + + +`,"vuesax-linear:gps":` + + + + + + + +`,"vuesax-linear:grammerly":` + + + +`,"vuesax-linear:graph":` + + + +`,"vuesax-linear:grid-1":` + + + + + + +`,"vuesax-linear:grid-2":` + + + + +`,"vuesax-linear:grid-3":` + + + + + +`,"vuesax-linear:grid-4":` + + + +`,"vuesax-linear:grid-5":` + + + + +`,"vuesax-linear:grid-6":` + + + + + +`,"vuesax-linear:grid-7":` + + + + +`,"vuesax-linear:grid-8":` + + + + + + + +`,"vuesax-linear:grid-9":` + + + +`,"vuesax-linear:grid-edit":` + + + + + + + + +`,"vuesax-linear:grid-eraser":` + + + + + + + + +`,"vuesax-linear:grid-lock":` + + + + + + + + +`,"vuesax-linear:group-1":` + + + + + + + +`,"vuesax-linear:group-10":` + + + +`,"vuesax-linear:group-11":` + + + + + + +`,"vuesax-linear:group-2":` + + + + + + +`,"vuesax-linear:group-3":` + + + +`,"vuesax-linear:group-4":` + + + + + + +`,"vuesax-linear:group-5":` + + + +`,"vuesax-linear:group-6":` + + + + + + +`,"vuesax-linear:group-7":` + + + + + + + + + +`,"vuesax-linear:group-8":` + + + +`,"vuesax-linear:group-9":` + + + + +`,"vuesax-linear:group":` + + + + + +`,"vuesax-linear:happyemoji":` + + + +`,"vuesax-linear:harmony-(one)":` + + + + + + +`,"vuesax-linear:hashtag-1":` + + + + + +`,"vuesax-linear:hashtag-down":` + + + + + + + + +`,"vuesax-linear:hashtag-up":` + + + + + + + + +`,"vuesax-linear:hashtag":` + + + + + +`,"vuesax-linear:headphone":` + + +`,"vuesax-linear:headphones":` + + + + + + + + + +`,"vuesax-linear:health":` + + + +`,"vuesax-linear:heart-add":` + + + + + +`,"vuesax-linear:heart-circle":` + + + +`,"vuesax-linear:heart-edit":` + + + + +`,"vuesax-linear:heart-remove":` + + + + + +`,"vuesax-linear:heart-search":` + + + + +`,"vuesax-linear:heart-slash":` + + + + +`,"vuesax-linear:heart-tick":` + + + + +`,"vuesax-linear:heart":` + + +`,"vuesax-linear:hedera-hashgraph-(hbar)":` + + + + + + +`,"vuesax-linear:hex-(hex)":` + + + + +`,"vuesax-linear:hierarchy-2":` + + + + + + +`,"vuesax-linear:hierarchy-3":` + + + + + +`,"vuesax-linear:hierarchy-square-2":` + + + + + + + +`,"vuesax-linear:hierarchy-square-3":` + + + + + + + +`,"vuesax-linear:hierarchy-square":` + + + + + + + + +`,"vuesax-linear:hierarchy":` + + + + + + +`,"vuesax-linear:home-2":` + + + +`,"vuesax-linear:home-hashtag":` + + + + + +`,"vuesax-linear:home-trend-down":` + + + + +`,"vuesax-linear:home-trend-up":` + + + + +`,"vuesax-linear:home-wifi":` + + + + + +`,"vuesax-linear:home":` + + + +`,"vuesax-linear:hospital":` + + + + + + +`,"vuesax-linear:house-2":` + + + + + + +`,"vuesax-linear:house":` + + + + + + + +`,"vuesax-linear:html-3":` + + + + +`,"vuesax-linear:html-5":` + + + +`,"vuesax-linear:huobi-token-(ht)":` + + + +`,"vuesax-linear:icon-(icx)":` + + + + + +`,"vuesax-linear:illustrator":` + + + + + + +`,"vuesax-linear:image":` + + + +`,"vuesax-linear:import-1":` + + + + +`,"vuesax-linear:import-2":` + + + + +`,"vuesax-linear:import":` + + + + +`,"vuesax-linear:info-circle":` + + + + +`,"vuesax-linear:information":` + + + + +`,"vuesax-linear:instagram":` + + + + +`,"vuesax-linear:iost-(iost)":` + + + + + +`,"vuesax-linear:java-script":` + + + + +`,"vuesax-linear:js":` + + + +`,"vuesax-linear:judge":` + + + + + +`,"vuesax-linear:kanban":` + + + +`,"vuesax-linear:key-square":` + + + + + +`,"vuesax-linear:key":` + + + + +`,"vuesax-linear:keyboard-open":` + + + + + + + +`,"vuesax-linear:keyboard":` + + + + + + +`,"vuesax-linear:kyber-network-(knc)":` + + + + +`,"vuesax-linear:lamp-1":` + + + + +`,"vuesax-linear:lamp-charge":` + + + + +`,"vuesax-linear:lamp-on":` + + + +`,"vuesax-linear:lamp-slash":` + + + + + +`,"vuesax-linear:lamp":` + + + + +`,"vuesax-linear:language-circle":` + + + + + + +`,"vuesax-linear:language-square":` + + + + + + +`,"vuesax-linear:layer":` + + + + +`,"vuesax-linear:level":` + + + + +`,"vuesax-linear:lifebuoy":` + + + + + + + +`,"vuesax-linear:like-1":` + + + +`,"vuesax-linear:like-dislike":` + + + + + +`,"vuesax-linear:like-shapes":` + + + + +`,"vuesax-linear:like-tag":` + + + + +`,"vuesax-linear:like":` + + + +`,"vuesax-linear:link-1":` + + + + +`,"vuesax-linear:link-2":` + + + +`,"vuesax-linear:link-21":` + + + +`,"vuesax-linear:link-circle":` + + + + +`,"vuesax-linear:link-square":` + + + + +`,"vuesax-linear:link":` + + + +`,"vuesax-linear:litecoin(ltc)":` + + + + +`,"vuesax-linear:location-add":` + + + + +`,"vuesax-linear:location-cross":` + + + + +`,"vuesax-linear:location-minus":` + + + +`,"vuesax-linear:location-slash":` + + + + + +`,"vuesax-linear:location-tick":` + + + +`,"vuesax-linear:location":` + + + +`,"vuesax-linear:lock-1":` + + + + +`,"vuesax-linear:lock-circle":` + + + + + +`,"vuesax-linear:lock-slash":` + + + + + +`,"vuesax-linear:lock":` + + + + + + +`,"vuesax-linear:login-1":` + + + + +`,"vuesax-linear:login":` + + + + +`,"vuesax-linear:logout-1":` + + + + +`,"vuesax-linear:logout":` + + + + +`,"vuesax-linear:lovely":` + + + +`,"vuesax-linear:magic-star":` + + + +`,"vuesax-linear:magicpen":` + + + + + + +`,"vuesax-linear:main-component-1":` + + + + +`,"vuesax-linear:main-component":` + + + + +`,"vuesax-linear:maker-(mkr)":` + + + + +`,"vuesax-linear:man":` + + + + +`,"vuesax-linear:map-1":` + + + + +`,"vuesax-linear:map":` + + + + + + +`,"vuesax-linear:mask-1":` + + + + + + +`,"vuesax-linear:mask-2":` + + + + + + +`,"vuesax-linear:mask-3":` + + + +`,"vuesax-linear:mask":` + + + + + + +`,"vuesax-linear:math":` + + + + + + + + +`,"vuesax-linear:maximize-1":` + + + + + +`,"vuesax-linear:maximize-2":` + + + + + + + +`,"vuesax-linear:maximize-21":` + + + + + +`,"vuesax-linear:maximize-3":` + + + + + +`,"vuesax-linear:maximize-4":` + + + + + +`,"vuesax-linear:maximize-circle":` + + + + + + + +`,"vuesax-linear:maximize":` + + + + + + + + +`,"vuesax-linear:medal-star":` + + + + +`,"vuesax-linear:medal":` + + + +`,"vuesax-linear:menu-1":` + + + + + +`,"vuesax-linear:menu-board":` + + + + + + + +`,"vuesax-linear:menu":` + + + + +`,"vuesax-linear:message-2":` + + + +`,"vuesax-linear:message-add-1":` + + + + +`,"vuesax-linear:message-add":` + + + + + + +`,"vuesax-linear:message-circle":` + + + +`,"vuesax-linear:message-edit":` + + + + +`,"vuesax-linear:message-favorite":` + + + + + + +`,"vuesax-linear:message-minus":` + + + +`,"vuesax-linear:message-notif":` + + + + + + +`,"vuesax-linear:message-programming":` + + + + + +`,"vuesax-linear:message-question":` + + + + +`,"vuesax-linear:message-remove":` + + + + + + +`,"vuesax-linear:message-search":` + + + + + + + +`,"vuesax-linear:message-square":` + + + +`,"vuesax-linear:message-text-1":` + + + + +`,"vuesax-linear:message-text":` + + + + +`,"vuesax-linear:message-tick":` + + + + + +`,"vuesax-linear:message-time":` + + + + + +`,"vuesax-linear:message":` + + + + + +`,"vuesax-linear:messages-1":` + + + + + + +`,"vuesax-linear:messages-2":` + + + +`,"vuesax-linear:messages-3":` + + + +`,"vuesax-linear:messages":` + + + + +`,"vuesax-linear:messenger":` + + + +`,"vuesax-linear:microphone-2":` + + + + + + +`,"vuesax-linear:microphone-slash-1":` + + + + + + + +`,"vuesax-linear:microphone-slash":` + + + + + + + + +`,"vuesax-linear:microphone":` + + + + + +`,"vuesax-linear:microscope":` + + + + + + +`,"vuesax-linear:milk":` + + + + + + +`,"vuesax-linear:mini-music-sqaure":` + + + + + + +`,"vuesax-linear:minus-cirlce":` + + + +`,"vuesax-linear:minus-square":` + + + +`,"vuesax-linear:minus":` + + +`,"vuesax-linear:mirror":` + + + +`,"vuesax-linear:mirroring-screen":` + + + + + +`,"vuesax-linear:mobile-programming":` + + + + + +`,"vuesax-linear:mobile":` + + + + +`,"vuesax-linear:monero-(xmr)":` + + + +`,"vuesax-linear:money-2":` + + + + + + + +`,"vuesax-linear:money-3":` + + + + + +`,"vuesax-linear:money-4":` + + + + + + + +`,"vuesax-linear:money-add":` + + + + + + + +`,"vuesax-linear:money-change":` + + + + + + + + +`,"vuesax-linear:money-forbidden":` + + + + + + +`,"vuesax-linear:money-receive":` + + + + + + +`,"vuesax-linear:money-remove":` + + + + + + + +`,"vuesax-linear:money-send":` + + + + + + +`,"vuesax-linear:money-tick":` + + + + + + +`,"vuesax-linear:money-time":` + + + + + + +`,"vuesax-linear:money":` + + + + + +`,"vuesax-linear:moneys":` + + + + + + +`,"vuesax-linear:monitor-mobbile":` + + + + + + + +`,"vuesax-linear:monitor-recorder":` + + + + + + + +`,"vuesax-linear:monitor":` + + + + + +`,"vuesax-linear:moon":` + + +`,"vuesax-linear:more-2":` + + + + +`,"vuesax-linear:more-circle":` + + + + + +`,"vuesax-linear:more-square":` + + + + + +`,"vuesax-linear:more":` + + + + +`,"vuesax-linear:mouse-1":` + + + +`,"vuesax-linear:mouse-circle":` + + + +`,"vuesax-linear:mouse-square":` + + + +`,"vuesax-linear:mouse":` + + + + +`,"vuesax-linear:music-circle":` + + + + + + + + + + +`,"vuesax-linear:music-dashboard":` + + + + + + + +`,"vuesax-linear:music-filter":` + + + + + + + + + +`,"vuesax-linear:music-library-2":` + + + + + + + + +`,"vuesax-linear:music-play":` + + + +`,"vuesax-linear:music-playlist":` + + + + + + + + +`,"vuesax-linear:music-square-add":` + + + + + + + + + +`,"vuesax-linear:music-square-remove":` + + + + + + + + + +`,"vuesax-linear:music-square-search":` + + + + + + + + +`,"vuesax-linear:music-square":` + + + + + + +`,"vuesax-linear:music":` + + + + + +`,"vuesax-linear:musicnote":` + + + + +`,"vuesax-linear:nebulas-(nas)":` + + + + + +`,"vuesax-linear:nem-(xem)":` + + + + +`,"vuesax-linear:nexo-(nexo)":` + + + +`,"vuesax-linear:next":` + + + +`,"vuesax-linear:note-1":` + + + + + + +`,"vuesax-linear:note-2":` + + + + + +`,"vuesax-linear:note-21":` + + + +`,"vuesax-linear:note-add":` + + + + + + +`,"vuesax-linear:note-favorite":` + + + + + + + + +`,"vuesax-linear:note-remove":` + + + + + + + + +`,"vuesax-linear:note-square":` + + + + + +`,"vuesax-linear:note-text":` + + + + + + +`,"vuesax-linear:note":` + + + + + +`,"vuesax-linear:notification-1":` + + + +`,"vuesax-linear:notification-bing":` + + + + +`,"vuesax-linear:notification-circle":` + + + +`,"vuesax-linear:notification-favorite":` + + + + +`,"vuesax-linear:notification-status":` + + + + + +`,"vuesax-linear:notification":` + + + + +`,"vuesax-linear:ocean-protocol-(ocean)":` + + + + + + + + + + + + + + + + + + + + + + + + + +`,"vuesax-linear:okb-(okb)":` + + + + + +`,"vuesax-linear:omega-circle-1":` + + + +`,"vuesax-linear:omega-circle":` + + + +`,"vuesax-linear:omega-square-1":` + + + +`,"vuesax-linear:omega-square":` + + + +`,"vuesax-linear:ontology-(ont)":` + + + +`,"vuesax-linear:paintbucket":` + + + + +`,"vuesax-linear:paperclip-2":` + + +`,"vuesax-linear:paperclip":` + + +`,"vuesax-linear:password-check":` + + + + + + +`,"vuesax-linear:path-2":` + + + + +`,"vuesax-linear:path-square":` + + + + + +`,"vuesax-linear:path":` + + + + +`,"vuesax-linear:pause-circle":` + + + + +`,"vuesax-linear:pause":` + + + +`,"vuesax-linear:paypal":` + + + +`,"vuesax-linear:pen-add-1":` + + + + + + + + +`,"vuesax-linear:pen-add":` + + + + + + + + +`,"vuesax-linear:pen-close-1":` + + + + + + + + +`,"vuesax-linear:pen-close":` + + + + + + + + +`,"vuesax-linear:pen-remove-1":` + + + + + + + +`,"vuesax-linear:pen-remove":` + + + + + + + +`,"vuesax-linear:pen-tool-1":` + + + + + + + + + +`,"vuesax-linear:pen-tool-2-1":` + + + + + + + + + +`,"vuesax-linear:pen-tool-2":` + + + + + + + + + +`,"vuesax-linear:pen-tool":` + + + + + + + + + +`,"vuesax-linear:people":` + + + + + + + +`,"vuesax-linear:percentage-square":` + + + + + +`,"vuesax-linear:personalcard":` + + + + + + + +`,"vuesax-linear:pet":` + + + + + + +`,"vuesax-linear:pharagraphspacing":` + + + + + + +`,"vuesax-linear:photoshop":` + + + + +`,"vuesax-linear:picture-frame":` + + + + +`,"vuesax-linear:play-add":` + + + + + + +`,"vuesax-linear:play-circle":` + + + +`,"vuesax-linear:play-cricle":` + + + + + + +`,"vuesax-linear:play-remove":` + + + + + + +`,"vuesax-linear:play":` + + +`,"vuesax-linear:polkadot-(dot)":` + + + +`,"vuesax-linear:polygon-(matic)":` + + + +`,"vuesax-linear:polyswarm-(nct)":` + + + + + +`,"vuesax-linear:presention-chart":` + + + + + + +`,"vuesax-linear:previous":` + + + +`,"vuesax-linear:printer-slash":` + + + + + + + + +`,"vuesax-linear:printer":` + + + + + + +`,"vuesax-linear:profile-2user":` + + + + + +`,"vuesax-linear:profile-add":` + + + + + +`,"vuesax-linear:profile-circle":` + + + + +`,"vuesax-linear:profile-delete":` + + + + + +`,"vuesax-linear:profile-remove":` + + + + +`,"vuesax-linear:profile-tick":` + + + + +`,"vuesax-linear:profile":` + + + +`,"vuesax-linear:programming-arrow":` + + + + + + + +`,"vuesax-linear:programming-arrows":` + + + + + + + +`,"vuesax-linear:python":` + + + + + + +`,"vuesax-linear:quant-(qnt)":` + + + + + + + + + +`,"vuesax-linear:quote-down-circle":` + + + + + + +`,"vuesax-linear:quote-down-square":` + + + + + + +`,"vuesax-linear:quote-down":` + + + + + +`,"vuesax-linear:quote-up-circle":` + + + + + + +`,"vuesax-linear:quote-up-square":` + + + + + + +`,"vuesax-linear:quote-up":` + + + + + +`,"vuesax-linear:radar-1":` + + + + + + +`,"vuesax-linear:radar-2":` + + + +`,"vuesax-linear:radar":` + + +`,"vuesax-linear:radio":` + + + + + + + +`,"vuesax-linear:ram-2":` + + + + + + +`,"vuesax-linear:ram":` + + + + +`,"vuesax-linear:ranking-1":` + + + + + +`,"vuesax-linear:ranking":` + + + + + +`,"vuesax-linear:receipt-1":` + + + + +`,"vuesax-linear:receipt-2-1":` + + + + + + +`,"vuesax-linear:receipt-2":` + + + + +`,"vuesax-linear:receipt-add":` + + + + + +`,"vuesax-linear:receipt-discount":` + + + + + + +`,"vuesax-linear:receipt-disscount":` + + + + + +`,"vuesax-linear:receipt-edit":` + + + + + + +`,"vuesax-linear:receipt-item":` + + + + + + + +`,"vuesax-linear:receipt-minus":` + + + + +`,"vuesax-linear:receipt-search":` + + + + + + +`,"vuesax-linear:receipt-square":` + + + +`,"vuesax-linear:receipt-text":` + + + + + +`,"vuesax-linear:receipt":` + + + +`,"vuesax-linear:receive-square-2":` + + + + + +`,"vuesax-linear:receive-square":` + + + + + +`,"vuesax-linear:received":` + + + + +`,"vuesax-linear:record-circle":` + + + +`,"vuesax-linear:record":` + + +`,"vuesax-linear:recovery-convert":` + + + + + +`,"vuesax-linear:redo":` + + + +`,"vuesax-linear:refresh-2":` + + +`,"vuesax-linear:refresh-circle":` + + + + + + +`,"vuesax-linear:refresh-left-square":` + + + + + +`,"vuesax-linear:refresh-right-square":` + + + + + +`,"vuesax-linear:refresh-square-2":` + + + +`,"vuesax-linear:refresh":` + + + +`,"vuesax-linear:repeat-circle":` + + + + + + +`,"vuesax-linear:repeat":` + + + + + +`,"vuesax-linear:repeate-music":` + + + + +`,"vuesax-linear:repeate-one":` + + + + +`,"vuesax-linear:reserve":` + + + + + +`,"vuesax-linear:rotate-left-1":` + + + +`,"vuesax-linear:rotate-left":` + + + + +`,"vuesax-linear:rotate-right-1":` + + + +`,"vuesax-linear:rotate-right":` + + + + +`,"vuesax-linear:route-square":` + + + +`,"vuesax-linear:routing-2":` + + + + + + +`,"vuesax-linear:routing":` + + + + + + +`,"vuesax-linear:row-horizontal":` + + + +`,"vuesax-linear:row-vertical":` + + + +`,"vuesax-linear:ruler&pen":` + + + + + + + + +`,"vuesax-linear:ruler":` + + + + + + +`,"vuesax-linear:safe-home":` + + + +`,"vuesax-linear:sagittarius":` + + + + +`,"vuesax-linear:save-2":` + + + + +`,"vuesax-linear:save-add":` + + + + + +`,"vuesax-linear:save-minus":` + + + + +`,"vuesax-linear:save-remove":` + + + + + +`,"vuesax-linear:scan-barcode":` + + + + + + + + + +`,"vuesax-linear:scan":` + + + + + + + +`,"vuesax-linear:scanner":` + + + + +`,"vuesax-linear:scanning":` + + + + + + + + + +`,"vuesax-linear:scissor-1":` + + + + + +`,"vuesax-linear:scissor-2":` + + + + + + +`,"vuesax-linear:scissor":` + + + + + +`,"vuesax-linear:screenmirroring":` + + + +`,"vuesax-linear:scroll":` + + + + +`,"vuesax-linear:search-favorite-1":` + + + + +`,"vuesax-linear:search-favorite":` + + + + +`,"vuesax-linear:search-normal-1":` + + + +`,"vuesax-linear:search-normal":` + + + +`,"vuesax-linear:search-status-1":` + + + + + +`,"vuesax-linear:search-status":` + + + + + +`,"vuesax-linear:search-zoom-in-1":` + + + + + +`,"vuesax-linear:search-zoom-in":` + + + + + +`,"vuesax-linear:search-zoom-out-1":` + + + + +`,"vuesax-linear:search-zoom-out":` + + + + +`,"vuesax-linear:security-card":` + + + + + + +`,"vuesax-linear:security-safe":` + + + + +`,"vuesax-linear:security-time":` + + + + +`,"vuesax-linear:security-user":` + + + + +`,"vuesax-linear:security":` + + +`,"vuesax-linear:send-1":` + + + +`,"vuesax-linear:send-2":` + + + +`,"vuesax-linear:send-sqaure-2":` + + + + + +`,"vuesax-linear:send-square":` + + + + + +`,"vuesax-linear:send":` + + + + +`,"vuesax-linear:setting-2":` + + + +`,"vuesax-linear:setting-3":` + + + + + + + + +`,"vuesax-linear:setting-4":` + + + + + + + +`,"vuesax-linear:setting-5":` + + + + + + + + + + +`,"vuesax-linear:setting":` + + + +`,"vuesax-linear:settings":` + + + + +`,"vuesax-linear:shapes-1":` + + + +`,"vuesax-linear:shapes-2":` + + + +`,"vuesax-linear:shapes":` + + + +`,"vuesax-linear:share":` + + + + + + + +`,"vuesax-linear:shield-cross":` + + + + +`,"vuesax-linear:shield-search":` + + + + +`,"vuesax-linear:shield-security":` + + + + +`,"vuesax-linear:shield-slash":` + + + + +`,"vuesax-linear:shield-tick":` + + + +`,"vuesax-linear:shield":` + + +`,"vuesax-linear:ship":` + + + + + +`,"vuesax-linear:shop-add":` + + + + + + + + + +`,"vuesax-linear:shop-remove":` + + + + + + + + +`,"vuesax-linear:shop":` + + + + + + +`,"vuesax-linear:shopping-bag":` + + + + +`,"vuesax-linear:shopping-cart":` + + + + + +`,"vuesax-linear:siacoin-(sc)":` + + + + +`,"vuesax-linear:sidebar-bottom":` + + + + +`,"vuesax-linear:sidebar-left":` + + + + +`,"vuesax-linear:sidebar-right":` + + + + +`,"vuesax-linear:sidebar-top":` + + + + +`,"vuesax-linear:signpost":` + + + + + + +`,"vuesax-linear:simcard-1":` + + + + + +`,"vuesax-linear:simcard-2":` + + + +`,"vuesax-linear:simcard":` + + + + +`,"vuesax-linear:size":` + + + +`,"vuesax-linear:slack":` + + + + + + + + + +`,"vuesax-linear:slash":` + + + +`,"vuesax-linear:slider-horizontal-1":` + + + + +`,"vuesax-linear:slider-horizontal":` + + + + +`,"vuesax-linear:slider-vertical-1":` + + + + +`,"vuesax-linear:slider-vertical":` + + + + +`,"vuesax-linear:slider":` + + + + + +`,"vuesax-linear:smallcaps":` + + + + + + + +`,"vuesax-linear:smart-car":` + + + + + + + + + +`,"vuesax-linear:smart-home":` + + + + + +`,"vuesax-linear:smileys":` + + + + + + + + + +`,"vuesax-linear:sms-edit":` + + + + + +`,"vuesax-linear:sms-notification":` + + + + +`,"vuesax-linear:sms-search":` + + + + + +`,"vuesax-linear:sms-star":` + + + + +`,"vuesax-linear:sms-tracking":` + + + + + +`,"vuesax-linear:sms":` + + + +`,"vuesax-linear:snapchat":` + + + +`,"vuesax-linear:solana-(sol)":` + + + + +`,"vuesax-linear:sort":` + + + + +`,"vuesax-linear:sound":` + + + + + + +`,"vuesax-linear:speaker":` + + + + +`,"vuesax-linear:speedometer":` + + + + +`,"vuesax-linear:spotify":` + + + + + +`,"vuesax-linear:stacks-(stx)":` + + + + + + + + +`,"vuesax-linear:star-1":` + + +`,"vuesax-linear:star-slash":` + + + + +`,"vuesax-linear:star":` + + + + + +`,"vuesax-linear:status-up":` + + + + + + + +`,"vuesax-linear:status":` + + + + +`,"vuesax-linear:stellar-(xlm)":` + + + + + +`,"vuesax-linear:sticker":` + + + +`,"vuesax-linear:stickynote":` + + + + + + + +`,"vuesax-linear:stop-circle":` + + + +`,"vuesax-linear:stop":` + + +`,"vuesax-linear:story":` + + + + + +`,"vuesax-linear:strongbox-2":` + + + + + + + +`,"vuesax-linear:strongbox":` + + + + + +`,"vuesax-linear:subtitle":` + + + + + + +`,"vuesax-linear:sun-1":` + + + +`,"vuesax-linear:sun-fog":` + + + + + + +`,"vuesax-linear:sun":` + + + + + + + + + + + + + + +`,"vuesax-linear:tag-2":` + + + + +`,"vuesax-linear:tag-cross":` + + + + +`,"vuesax-linear:tag-right":` + + +`,"vuesax-linear:tag-user":` + + + + +`,"vuesax-linear:tag":` + + + +`,"vuesax-linear:task-square":` + + + + + + +`,"vuesax-linear:task":` + + + + + + + +`,"vuesax-linear:teacher":` + + + + +`,"vuesax-linear:tenx-(pay)":` + + + +`,"vuesax-linear:tether-(usdt)":` + + + + +`,"vuesax-linear:text-block":` + + + + +`,"vuesax-linear:text-bold":` + + + +`,"vuesax-linear:text-italic":` + + + + +`,"vuesax-linear:text-underline":` + + + +`,"vuesax-linear:text":` + + + + +`,"vuesax-linear:textalign-center":` + + + + + +`,"vuesax-linear:textalign-justifycenter":` + + + + + +`,"vuesax-linear:textalign-justifyleft":` + + + + + +`,"vuesax-linear:textalign-justifyright":` + + + + + +`,"vuesax-linear:textalign-left":` + + + + + +`,"vuesax-linear:textalign-right":` + + + + + +`,"vuesax-linear:the-graph-(grt)":` + + + + + +`,"vuesax-linear:theta-(theta)":` + + + + + + + +`,"vuesax-linear:thorchain-(rune)":` + + +`,"vuesax-linear:tick-circle":` + + + +`,"vuesax-linear:tick-square":` + + + +`,"vuesax-linear:ticket-2":` + + + + +`,"vuesax-linear:ticket-discount":` + + + + + +`,"vuesax-linear:ticket-expired":` + + + + +`,"vuesax-linear:ticket-star":` + + + + + +`,"vuesax-linear:ticket":` + + + +`,"vuesax-linear:timer-1":` + + + + +`,"vuesax-linear:timer-pause":` + + + + + + +`,"vuesax-linear:timer-start":` + + + + + +`,"vuesax-linear:timer":` + + +`,"vuesax-linear:toggle-off-circle":` + + + +`,"vuesax-linear:toggle-off":` + + + +`,"vuesax-linear:toggle-on-circle":` + + + +`,"vuesax-linear:toggle-on":` + + + +`,"vuesax-linear:trade":` + + + + + +`,"vuesax-linear:transaction-minus":` + + + +`,"vuesax-linear:translate":` + + + + + + + + + + + +`,"vuesax-linear:trash":` + + + + + + +`,"vuesax-linear:tree":` + + + + +`,"vuesax-linear:trello":` + + + + +`,"vuesax-linear:trend-down":` + + + + +`,"vuesax-linear:trend-up":` + + + + +`,"vuesax-linear:triangle":` + + + + +`,"vuesax-linear:trontron-(trx)":` + + + + +`,"vuesax-linear:truck-remove":` + + + + + + + + + +`,"vuesax-linear:truck-tick":` + + + + + + + + +`,"vuesax-linear:truck-time":` + + + + + + + + +`,"vuesax-linear:trush-square":` + + + + + +`,"vuesax-linear:twitch":` + + + + +`,"vuesax-linear:ui8":` + + + + + + +`,"vuesax-linear:undo":` + + + +`,"vuesax-linear:unlimited":` + + +`,"vuesax-linear:unlock":` + + + + +`,"vuesax-linear:usd-coin-(usdc)":` + + + + + + +`,"vuesax-linear:user-add":` + + + + + + +`,"vuesax-linear:user-cirlce-add":` + + + + + + + +`,"vuesax-linear:user-edit":` + + + + + +`,"vuesax-linear:user-minus":` + + + + + +`,"vuesax-linear:user-octagon":` + + + + +`,"vuesax-linear:user-remove":` + + + + + + +`,"vuesax-linear:user-search":` + + + + + +`,"vuesax-linear:user-square":` + + + + +`,"vuesax-linear:user-tag":` + + + + +`,"vuesax-linear:user-tick":` + + + + + +`,"vuesax-linear:user":` + + + +`,"vuesax-linear:velas-(vlx)":` + + + +`,"vuesax-linear:verify":` + + + +`,"vuesax-linear:vibe-(vibe)":` + + + + +`,"vuesax-linear:video-add":` + + + + + + + + +`,"vuesax-linear:video-circle":` + + + +`,"vuesax-linear:video-horizontal":` + + + + + + + + + + + +`,"vuesax-linear:video-octagon":` + + + +`,"vuesax-linear:video-play":` + + + + + + +`,"vuesax-linear:video-remove":` + + + + + + + + +`,"vuesax-linear:video-slash":` + + + + + +`,"vuesax-linear:video-square":` + + + +`,"vuesax-linear:video-tick":` + + + + + + + +`,"vuesax-linear:video-time":` + + + + + + + +`,"vuesax-linear:video-vertical":` + + + + + + + + + + + +`,"vuesax-linear:video":` + + + + +`,"vuesax-linear:voice-cricle":` + + + + + + + +`,"vuesax-linear:voice-square":` + + + + + + + +`,"vuesax-linear:volume-cross":` + + + + +`,"vuesax-linear:volume-high":` + + + + +`,"vuesax-linear:volume-low-1":` + + + +`,"vuesax-linear:volume-low":` + + + +`,"vuesax-linear:volume-mute":` + + +`,"vuesax-linear:volume-slash":` + + + + + + +`,"vuesax-linear:volume-up":` + + + + +`,"vuesax-linear:vuesax":` + + + + +`,"vuesax-linear:wallet-1":` + + + + + + +`,"vuesax-linear:wallet-2":` + + + + +`,"vuesax-linear:wallet-3":` + + + + + +`,"vuesax-linear:wallet-add-1":` + + + + + + + + +`,"vuesax-linear:wallet-add":` + + + + + + + +`,"vuesax-linear:wallet-check":` + + + + + + +`,"vuesax-linear:wallet-minus":` + + + + + + + +`,"vuesax-linear:wallet-money":` + + + + + + +`,"vuesax-linear:wallet-remove":` + + + + + + + +`,"vuesax-linear:wallet-search":` + + + + + + +`,"vuesax-linear:wallet":` + + + + +`,"vuesax-linear:wanchain-(wan)-1":` + + +`,"vuesax-linear:wanchain-(wan)":` + + + + + +`,"vuesax-linear:warning-2":` + + + + +`,"vuesax-linear:watch-status":` + + + + + + + +`,"vuesax-linear:watch":` + + + + + +`,"vuesax-linear:weight-1":` + + + + + + +`,"vuesax-linear:weight":` + + + +`,"vuesax-linear:whatsapp":` + + + +`,"vuesax-linear:wifi-square":` + + + + + +`,"vuesax-linear:wifi":` + + + + + +`,"vuesax-linear:wind-2":` + + + + +`,"vuesax-linear:wind":` + + + + +`,"vuesax-linear:windows":` + + + + + +`,"vuesax-linear:wing-(wing)":` + + + + +`,"vuesax-linear:woman":` + + + + +`,"vuesax-linear:xd":` + + + + + +`,"vuesax-linear:xiaomi":` + + + + + +`,"vuesax-linear:xrp-(xrp)":` + + + +`,"vuesax-linear:youtube":` + + + +`,"vuesax-linear:zel-(zel)":` + + + + + +`,"vuesax-linear:zoom":` + + + + +`,"other:target":` + + + + +`,"vuesax-linear:record-plus":` + + + + +`,"other:more-square":` + + + +`,"custom:single-check":``,"custom:double-check":``},ec=[`innerHTML`],tc=de({__name:`VuesaxIcon`,props:{name:{},size:{default:18}},setup(e){let t=e,n=$s,r=xe(()=>{let e=Es(t.name||``),r=e.includes(`:`)?e:`vuesax-linear:${e}`,i=n[r]||n[`vuesax-linear:${e.toLowerCase()}`]||n[`vuesax-linear:shield-tick`];return i?i.replace(/\swidth="24"/,``).replace(/\sheight="24"/,``).replace(/stroke="#[A-Fa-f0-9]{3,8}"/g,`stroke="currentColor"`).replace(/fill="(?!none)#[A-Fa-f0-9]{3,8}"/g,`fill="currentColor"`):``}),i=xe(()=>typeof t.size==`number`?`${t.size}px`:t.size);return(e,t)=>(ie(),we(`span`,{class:`anticon vx-icon`,style:Me({width:i.value,height:i.value}),"aria-hidden":!0,innerHTML:r.value},null,12,ec))}}),nc=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},rc=nc(tc,[[`__scopeId`,`data-v-9a78c900`]]);export{As as _,Bs as a,ws as b,qs as c,Ls as d,zs as f,Is as g,Rs as h,Qs as i,Ys as l,Ms as m,nc as n,Vs as o,Ns as p,Zs as r,Js as s,rc as t,Xs as u,js as v,Ds as y}; \ No newline at end of file diff --git a/apps/admin/dist/assets/VuesaxIcon-CWCuvyiA.css b/apps/admin/dist/assets/VuesaxIcon-CWCuvyiA.css new file mode 100644 index 0000000..356cad4 --- /dev/null +++ b/apps/admin/dist/assets/VuesaxIcon-CWCuvyiA.css @@ -0,0 +1 @@ +.vx-icon[data-v-9a78c900]{color:inherit;vertical-align:-.15em;flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex}.vx-icon[data-v-9a78c900] svg{width:100%;height:100%;display:block} diff --git a/apps/admin/dist/assets/format-B9MYDQJN.js b/apps/admin/dist/assets/format-B9MYDQJN.js new file mode 100644 index 0000000..73eb1e5 --- /dev/null +++ b/apps/admin/dist/assets/format-B9MYDQJN.js @@ -0,0 +1 @@ +var e=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}),t=t=>t?e.format(new Date(t)):`—`,n=e=>e<1048576?`${(e/1024).toLocaleString(`fa-IR`,{maximumFractionDigits:0})} کیلوبایت`:`${(e/1024/1024).toLocaleString(`fa-IR`,{maximumFractionDigits:1})} مگابایت`,r=e=>e.toLocaleString(`fa-IR`),i=`https://imenpishgaman.ir`,a={create:`ایجاد`,update:`ویرایش`,delete:`حذف`,upload:`آپلود`,login:`ورود`,publish:`انتشار`,unpublish:`عدم انتشار`,duplicate:`کپی`,reorder:`مرتب‌سازی`,"change-password":`تغییر رمز`},o={product:`محصول`,category:`دسته`,section:`بخش سایت`,media:`رسانه`,user:`کاربر`,message:`پیام`},s=(e,t)=>`${a[e]??e} ${o[t]??t}`;export{t as a,n as i,s as n,r,i as t}; \ No newline at end of file diff --git a/apps/admin/dist/assets/index-BuGK6ptM.js b/apps/admin/dist/assets/index-BuGK6ptM.js new file mode 100644 index 0000000..6b5cd2c --- /dev/null +++ b/apps/admin/dist/assets/index-BuGK6ptM.js @@ -0,0 +1,473 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginPage-D6HPXv4g.js","assets/VuesaxIcon-B2OgulS6.js","assets/VuesaxIcon-CWCuvyiA.css","assets/logo-BuUh917n.js","assets/FormField-CiVT7mqC.js","assets/LoginPage-CTFu9XSt.css","assets/AdminLayout-j5VE2EZ9.js","assets/format-B9MYDQJN.js","assets/AdminLayout-DqN4f4Pv.css","assets/DashboardPage-Do-v_tLH.js","assets/PageHeader-3Ryvg2HD.js","assets/PageHeader-ChIv12OH.css","assets/ProductsPage-CVHBMUNz.js","assets/ProductsPage-BoL7n7Xx.css","assets/ProductEditPage-DTSEsrWG.js","assets/ListEditor-C8F91lSJ.js","assets/slug-Flyc3fOh.js","assets/CategoriesPage-DSZGpYF5.js","assets/CategoryEditPage-B4VYwreC.js","assets/IconSelect-rJLPzIXV.js","assets/SectionsPage-Da2RoCd0.js","assets/SectionEditPage-BfSd3Uov.js","assets/MessagesPage-Bb_X9ABq.js","assets/MediaPage-DnfskIVE.js","assets/UsersPage-C15bNN1T.js","assets/ProfilePage-DxhVPJ4c.js"])))=>i.map(i=>d[i]); +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function u(e){"@babel/helpers - typeof";return u=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},u(e)}function d(e,t){if(u(e)!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(u(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function f(e){var t=d(e,`string`);return u(t)==`symbol`?t:t+``}function p(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;te in t}var v={},y=[],b=()=>{},x=()=>!1,S=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),C=e=>e.startsWith(`onUpdate:`),w=Object.assign,T=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},E=Object.prototype.hasOwnProperty,D=(e,t)=>E.call(e,t),O=Array.isArray,k=e=>R(e)===`[object Map]`,A=e=>R(e)===`[object Set]`,j=e=>R(e)===`[object Date]`,M=e=>typeof e==`function`,N=e=>typeof e==`string`,P=e=>typeof e==`symbol`,F=e=>typeof e==`object`&&!!e,I=e=>(F(e)||M(e))&&M(e.then)&&M(e.catch),L=Object.prototype.toString,R=e=>L.call(e),ee=e=>R(e).slice(8,-1),te=e=>R(e)===`[object Object]`,ne=e=>N(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,z=_(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),re=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ie=/-\w/g,ae=re(e=>e.replace(ie,e=>e.slice(1).toUpperCase())),oe=/\B([A-Z])/g,se=re(e=>e.replace(oe,`-$1`).toLowerCase()),ce=re(e=>e.charAt(0).toUpperCase()+e.slice(1)),le=re(e=>e?`on${ce(e)}`:``),ue=(e,t)=>!Object.is(e,t),de=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},pe=e=>{let t=parseFloat(e);return isNaN(t)?e:t},me=e=>{let t=N(e)?Number(e):NaN;return isNaN(t)?e:t},he,ge=()=>he||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function _e(e){if(O(e)){let t={};for(let n=0;ne.startsWith(`/*`)?``:e).split(ve).forEach(e=>{if(e){let n=e.split(ye);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Se(e){let t=``;if(N(e))t=e;else if(O(e))for(let n=0;n!!(e&&e.__v_isRef===!0),je=e=>N(e)?e:e==null?``:O(e)||F(e)&&(e.toString===L||!M(e.toString))?Ae(e)?je(e.value):JSON.stringify(e,Me,2):String(e),Me=(e,t)=>Ae(t)?Me(e,t.value):k(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ne(t,r)+` =>`]=n,e),{})}:A(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ne(e))}:P(t)?Ne(t):F(t)&&!O(t)&&!te(t)?String(t):t,Ne=(e,t=``)=>P(e)?`Symbol(${e.description??t})`:e,Pe,Fe=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&Pe&&(Pe.active?(this.parent=Pe,this.index=(Pe.scopes||(Pe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e0&&--this._on===0){if(Pe===this)Pe=this.prevScope;else{let e=Pe;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(We){let e=We;for(We=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Ue;){let t=Ue;for(Ue=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Je(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ye(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Qe(r),$e(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Xe(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ze(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ze(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===at)||(e.globalVersion=at,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Xe(e))))return;e.flags|=2;let t=e.dep,n=ze,r=et;ze=e,et=!0;try{Je(e);let n=e.fn(e._value);(t.version===0||ue(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{ze=n,et=r,Ye(e),e.flags&=-3}}function Qe(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Qe(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function $e(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var et=!0,tt=[];function nt(){tt.push(et),et=!1}function rt(){let e=tt.pop();et=e===void 0||e}function it(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=ze;ze=void 0;try{t()}finally{ze=e}}}var at=0,ot=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},st=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!ze||!et||ze===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==ze)t=this.activeLink=new ot(ze,this),ze.deps?(t.prevDep=ze.depsTail,ze.depsTail.nextDep=t,ze.depsTail=t):ze.deps=ze.depsTail=t,ct(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=ze.depsTail,t.nextDep=void 0,ze.depsTail.nextDep=t,ze.depsTail=t,ze.deps===t&&(ze.deps=e)}return t}trigger(e){this.version++,at++,this.notify(e)}notify(e){Ke();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{qe()}}};function ct(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)ct(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var lt=new WeakMap,ut=Symbol(``),dt=Symbol(``),ft=Symbol(``);function pt(e,t,n){if(et&&ze){let t=lt.get(e);t||lt.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new st),r.map=t,r.key=n),r.track()}}function mt(e,t,n,r,i,a){let o=lt.get(e);if(!o){at++;return}let s=e=>{e&&e.trigger()};if(Ke(),t===`clear`)o.forEach(s);else{let i=O(e),a=i&&ne(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===ft||!P(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(ft)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(ut)),k(e)&&s(o.get(dt)));break;case`delete`:i||(s(o.get(ut)),k(e)&&s(o.get(dt)));break;case`set`:k(e)&&s(o.get(ut))}}qe()}function ht(e,t){let n=lt.get(e);return n&&n.get(t)}function gt(e){let t=rn(e);return t===e||(pt(t,`iterate`,ft),tn(e))?t:en(e)?$t(e)?t.map(e=>sn(on(e))):t.map(sn):t.map(on)}function _t(e){return pt(e=rn(e),`iterate`,ft),e}function vt(e,t){return en(e)?sn($t(e)?on(t):t):on(t)}var yt={__proto__:null,[Symbol.iterator](){return bt(this,Symbol.iterator,e=>vt(this,e))},concat(...e){return gt(this).concat(...e.map(e=>O(e)?gt(e):e))},entries(){return bt(this,`entries`,e=>(e[1]=vt(this,e[1]),e))},every(e,t){return Ct(this,`every`,e,t,void 0,arguments)},filter(e,t){return Ct(this,`filter`,e,t,e=>e.map(e=>vt(this,e)),arguments)},find(e,t){return Ct(this,`find`,e,t,e=>vt(this,e),arguments)},findIndex(e,t){return Ct(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return Ct(this,`findLast`,e,t,e=>vt(this,e),arguments)},findLastIndex(e,t){return Ct(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return Ct(this,`forEach`,e,t,void 0,arguments)},includes(...e){return Tt(this,`includes`,e)},indexOf(...e){return Tt(this,`indexOf`,e)},join(e){return gt(this).join(e)},lastIndexOf(...e){return Tt(this,`lastIndexOf`,e)},map(e,t){return Ct(this,`map`,e,t,void 0,arguments)},pop(){return Et(this,`pop`)},push(...e){return Et(this,`push`,e)},reduce(e,...t){return wt(this,`reduce`,e,t)},reduceRight(e,...t){return wt(this,`reduceRight`,e,t)},shift(){return Et(this,`shift`)},some(e,t){return Ct(this,`some`,e,t,void 0,arguments)},splice(...e){return Et(this,`splice`,e)},toReversed(){return gt(this).toReversed()},toSorted(e){return gt(this).toSorted(e)},toSpliced(...e){return gt(this).toSpliced(...e)},unshift(...e){return Et(this,`unshift`,e)},values(){return bt(this,`values`,e=>vt(this,e))}};function bt(e,t,n){let r=_t(e),i=r[t],a=i.call(r);if(r!==e&&!tn(e)){if(a[Symbol.toStringTag]===`Array Iterator`){let e=Object.create(Object.getPrototypeOf(a));return e.next=()=>xt(a.next(),n),i!==St[t]&&Object.defineProperties(e,{return:{get(){let e=a.return;return typeof e==`function`?e.bind(a):e}},throw:{get(){let e=a.throw;return typeof e==`function`?e.bind(a):e}}}),e}a._next=a.next,a.next=()=>xt(a._next(),n)}return a}function xt(e,t){return e.done||(e.value=t(e.value)),e}var St=Array.prototype;function Ct(e,t,n,r,i,a){let o=_t(e),s=o!==e&&!tn(e),c=o[t];if(c!==St[t]){let t=c.apply(e,a);return s?on(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,vt(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function wt(e,t,n,r){let i=_t(e),a=i!==e&&!tn(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=vt(e,t)),n.call(this,t,vt(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?vt(e,c):c}function Tt(e,t,n){let r=rn(e);pt(r,`iterate`,ft);let i=r[t](...n);return(i===-1||i===!1)&&nn(n[0])?(n[0]=rn(n[0]),r[t](...n)):i}function Et(e,t,n=[]){nt(),Ke();let r=rn(e)[t].apply(e,n);return qe(),rt(),r}var Dt=_(`__proto__,__v_isRef,__isVue`),Ot=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(P));function kt(e){P(e)||(e=String(e));let t=rn(this);return pt(t,`has`,e),t.hasOwnProperty(e)}var At=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?qt:Kt:i?Gt:Wt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=O(e);if(!r){let e;if(a&&(e=yt[t]))return e;if(t===`hasOwnProperty`)return kt}let o=Reflect.get(e,t,cn(e)?e:n);if((P(t)?Ot.has(t):Dt(t))||(r||pt(e,`get`,t),i))return o;if(cn(o)){let e=a&&ne(t)?o:o.value;return r&&F(e)?Zt(e):e}return F(o)?r?Zt(o):Yt(o):o}},jt=class extends At{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=O(e)&&ne(t);if(!this._isShallow){let e=en(i);if(!tn(n)&&!en(n)&&(i=rn(i),n=rn(n)),!a&&cn(i)&&!cn(n))return e||(i.value=n),!0}let o=a?Number(t)e,It=e=>Reflect.getPrototypeOf(e);function Lt(e,t,n){return function(...r){let i=this.__v_raw,a=rn(i),o=k(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,l=i[e](...r),u=n?Ft:t?sn:on;return!t&&pt(a,`iterate`,c?dt:ut),w(Object.create(l),{next(){let{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}}})}}function Rt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function zt(e,t){let n={get(n){let r=this.__v_raw,i=rn(r),a=rn(n);e||(ue(n,a)&&pt(i,`get`,n),pt(i,`get`,a));let{has:o}=It(i),s=t?Ft:e?sn:on;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&pt(rn(t),`iterate`,ut),t.size},has(t){let n=this.__v_raw,r=rn(n),i=rn(t);return e||(ue(t,i)&&pt(r,`has`,t),pt(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=rn(a),s=t?Ft:e?sn:on;return!e&&pt(o,`iterate`,ut),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return w(n,e?{add:Rt(`add`),set:Rt(`set`),delete:Rt(`delete`),clear:Rt(`clear`)}:{add(e){let n=rn(this),r=It(n),i=rn(e),a=!t&&!tn(e)&&!en(e)?i:e;return r.has.call(n,a)||ue(e,a)&&r.has.call(n,e)||ue(i,a)&&r.has.call(n,i)||(n.add(a),mt(n,`add`,a,a)),this},set(e,n){!t&&!tn(n)&&!en(n)&&(n=rn(n));let r=rn(this),{has:i,get:a}=It(r),o=i.call(r,e);o||=(e=rn(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?ue(n,s)&&mt(r,`set`,e,n,s):mt(r,`add`,e,n),this},delete(e){let t=rn(this),{has:n,get:r}=It(t),i=n.call(t,e);i||=(e=rn(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&mt(t,`delete`,e,void 0,a),o},clear(){let e=rn(this),t=e.size!==0,n=e.clear();return t&&mt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Lt(r,e,t)}),n}function Bt(e,t){let n=zt(e,t);return(r,i,a)=>i===`__v_isReactive`?!e:i===`__v_isReadonly`?e:i===`__v_isShallow`?t:i===`__v_raw`?r:Reflect.get(D(n,i)&&i in r?n:r,i,a)}var Vt={get:Bt(!1,!1)},Ht={get:Bt(!1,!0)},Ut={get:Bt(!0,!1)},Wt=new WeakMap,Gt=new WeakMap,Kt=new WeakMap,qt=new WeakMap;function Jt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Yt(e){return en(e)?e:Qt(e,!1,Nt,Vt,Wt)}function Xt(e){return Qt(e,!1,Pt,Ht,Gt)}function Zt(e){return Qt(e,!0,eee,Ut,Kt)}function Qt(e,t,n,r,i){if(!F(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=Jt(ee(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function $t(e){return en(e)?$t(e.__v_raw):!!(e&&e.__v_isReactive)}function en(e){return!!(e&&e.__v_isReadonly)}function tn(e){return!!(e&&e.__v_isShallow)}function nn(e){return e?!!e.__v_raw:!1}function rn(e){let t=e&&e.__v_raw;return t?rn(t):e}function an(e){return!D(e,`__v_skip`)&&Object.isExtensible(e)&&fe(e,`__v_skip`,!0),e}var on=e=>F(e)?Yt(e):e,sn=e=>F(e)?Zt(e):e;function cn(e){return e?e.__v_isRef===!0:!1}function B(e){return ln(e,!1)}function V(e){return ln(e,!0)}function ln(e,t){return cn(e)?e:new un(e,t)}var un=class{constructor(e,t){this.dep=new st,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:rn(e),this._value=t?e:on(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tn(e)||en(e);e=n?e:rn(e),ue(e,t)&&(this._rawValue=e,this._value=n?e:on(e),this.dep.trigger())}};function dn(e){e.dep&&e.dep.trigger()}function fn(e){return cn(e)?e.value:e}var pn={get:(e,t,n)=>t===`__v_raw`?e:fn(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return cn(i)&&!cn(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function mn(e){return $t(e)?e:new Proxy(e,pn)}var tee=class{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new st,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}};function nee(e){return new tee(e)}function hn(e){let t=O(e)?Array(e.length):{};for(let n in e)t[n]=yn(e,n);return t}var gn=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=P(t)?t:String(t),this._raw=rn(e);let r=!0,i=e;if(!O(e)||P(this._key)||!ne(this._key))do r=!nn(i)||tn(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=fn(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&cn(this._raw[this._key])){let t=this._object[this._key];if(cn(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return ht(this._raw,this._key)}},_n=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function vn(e,t,n){return cn(e)?e:M(e)?new _n(e):F(e)&&arguments.length>1?yn(e,t,n):B(e)}function yn(e,t,n){return new gn(e,t,n)}var bn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new st(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=at-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ze!==this)return Ge(this,!0),!0}get value(){let e=this.dep.track();return Ze(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function xn(e,t,n=!1){let r,i;return M(e)?r=e:(r=e.get,i=e.set),new bn(r,i,n)}var Sn={},Cn=new WeakMap,wn=void 0;function Tn(e,t=!1,n=wn){if(n){let t=Cn.get(n);t||Cn.set(n,t=[]),t.push(e)}}function En(e,t,n=v){let{immediate:r,deep:i,once:a,scheduler:o,augmentJob:s,call:c}=n,l=e=>i?e:tn(e)||i===!1||i===0?Dn(e,1):Dn(e),u,d,f,p,m=!1,h=!1;if(cn(e)?(d=()=>e.value,m=tn(e)):$t(e)?(d=()=>l(e),m=!0):O(e)?(h=!0,m=e.some(e=>$t(e)||tn(e)),d=()=>e.map(e=>{if(cn(e))return e.value;if($t(e))return l(e);if(M(e))return c?c(e,2):e()})):d=M(e)?t?c?()=>c(e,2):e:()=>{if(f){nt();try{f()}finally{rt()}}let t=wn;wn=u;try{return c?c(e,3,[p]):e(p)}finally{wn=t}}:b,t&&i){let e=d,t=i===!0?1/0:i;d=()=>Dn(e(),t)}let g=Le(),_=()=>{u.stop(),g&&g.active&&T(g.effects,u)};if(a&&t){let e=t;t=(...t)=>{try{return e(...t)}finally{_()}}}let y=h?Array(e.length).fill(Sn):Sn,x=e=>{if(u.flags&1&&(u.dirty||e)){if(t){let n=u.run();if(e||i||m||(h?n.some((e,t)=>ue(e,y[t])):ue(n,y))){let e=wn;nt();try{f&&f(),wn=u;let e=[n,y===Sn?void 0:h&&y[0]===Sn?[]:y,p];y=n,c?c(t,3,e):t(...e)}finally{wn=e,rt()}}}else u.run()}};return s&&s(x),u=new Ve(d),u.scheduler=o?()=>o(x,!1):x,p=e=>Tn(e,!1,u),f=u.onStop=()=>{let e=Cn.get(u);if(e){if(c)c(e,4);else for(let t of e)t();Cn.delete(u)}},t?r?x(!0):y=u.run():o?o(x.bind(null,!0),!0):u.run(),_.pause=u.pause.bind(u),_.resume=u.resume.bind(u),_.stop=_,_}function Dn(e,t=1/0,n){if(t<=0||!F(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,cn(e))Dn(e.value,t,n);else if(O(e))for(let r=0;r{Dn(e,t,n)});else if(te(e)){for(let r in e)Dn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Dn(e[r],t,n)}return e}function On(e,t,n,r){try{return r?e(...r):e()}catch(e){An(e,t,n)}}function kn(e,t,n,r){if(M(e)){let i=On(e,t,n,r);return i&&I(i)&&i.catch(e=>{An(e,t,n)}),i}if(O(e)){let i=[];for(let a=0;a>>1,i=Mn[r],a=Kn(i);a=Kn(n)?Mn.push(e):Mn.splice(ree(t),0,e),e.flags|=1,Vn()}}function Vn(){Rn||=Ln.then(qn)}function iee(e){if(!O(e))Fn&&e.id===-1?Fn.splice(In+1,0,e):e.flags&1||(Pn.push(e),e.flags|=1);else for(let t=0;t=t))continue;Mn.splice(r,1),r=e?r-1:Nn,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Un(e,t,n=0){if(Pn.length){let e=Pn,r=0;if(t){e=[];for(let i=0;iKn(e)-Kn(t));if(Pn.length=r,Fn){for(let e=0;ee.id==null?e.flags&2?-1:1/0:e.id;function qn(e){try{for(Nn=0;Nn{r._d&&Va(-1);let i=Xn(t),a=Ia.length,o;try{o=e(...n)}finally{for(let e=Ia.length;e>a;e--)za();Xn(i),r._d&&Va(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Qn(e,t){if(Jn===null)return e;let n=To(Jn),r=e.dirs||=[];for(let e=0;e1)return n&&M(t)?t.call(r&&r.proxy):t}}function nr(){return!!(fo()||Bi)}var rr=Symbol.for(`v-scx`),ir=()=>tr(rr);function ar(e,t){return sr(e,null,t)}function or(e,t){return sr(e,null,{flush:`sync`})}function H(e,t,n){return sr(e,t,n)}function sr(e,t,n=v){let{immediate:r,deep:i,flush:a,once:o}=n,s=w({},n),c=t&&r||!t&&a!==`post`,l;if(vo){if(a===`sync`){let e=ir();l=e.__watcherHandles||=[]}else if(!c){let e=()=>{};return e.stop=b,e.resume=b,e.pause=b,e}}let u=uo;s.call=(e,t,n)=>kn(e,u,t,n);let d=!1;a===`post`?s.scheduler=e=>{e.i=u,ya(e,u&&u.suspense)}:a!==`sync`&&(d=!0,s.scheduler=(e,t)=>{t?e():Bn(e)}),s.augmentJob=e=>{t&&(e.flags|=4),d&&(e.flags|=2,u&&(e.id=u.uid,e.i=u))};let f=En(e,t,s);return vo&&(l?l.push(f):c&&f()),f}function cr(e,t,n){let r=this.proxy,i=N(e)?e.includes(`.`)?lr(r,e):()=>r[e]:e.bind(r,r),a;M(t)?a=t:(a=t.handler,n=t);let o=ho(this),s=sr(i,a.bind(r),n);return o(),s}function lr(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,pr=e=>e&&(e.disabled||e.disabled===``),mr=e=>e&&(e.defer||e.defer===``),hr=e=>typeof SVGElement<`u`&&e instanceof SVGElement,gr=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,_r=(e,t)=>{let n=e&&e.to;return N(n)?t?t(n):null:n},vr={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=pr(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=pr(e.props),r=e.target=_r(e.props,m),a=Cr(r,e,h,p);r&&(o!==`svg`&&hr(r)?o=`svg`:o!==`mathml`&&gr(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),Sr(e,!1)))},S=e=>{let t=()=>{if(ur.get(e)===t){if(ur.delete(e),pr(e.props)){let t=_(e.el)||n;b(e,t,e.anchor),Sr(e,!0)}x(e)}};ur.set(e,t),ya(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),mr(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),Sr(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=ur.get(e);if(u){u.flags|=8,ur.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=pr(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||hr(p)?o=`svg`:(o===`mathml`||gr(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),Ta(e,t,!0)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):yr(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=_r(t.props,m);e&&(t.target=e,yr(t,e,null,l,0))}else g&&yr(t,p,h,l,1);Sr(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=pr(f),m=a||!p,h=ur.get(e);if(h&&(h.flags|=8,ur.delete(e)),d&&(i(l),i(u)),a&&i(c),!h&&(p||d)&&o&16)for(let e=0;e{e.isMounted=!0}),ni(()=>{e.isUnmounting=!0}),e}var Dr=[Function,Array],Or={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Dr,onEnter:Dr,onAfterEnter:Dr,onEnterCancelled:Dr,onBeforeLeave:Dr,onLeave:Dr,onAfterLeave:Dr,onLeaveCancelled:Dr,onBeforeAppear:Dr,onAppear:Dr,onAfterAppear:Dr,onAppearCancelled:Dr},kr={name:`BaseTransition`,props:Or,setup(e,{slots:t}){let n=fo(),r=Er();return()=>{let i=t.default&&Lr(t.default(),!0),a=i&&i.length?Ar(i):n.subTree?eo():void 0;if(!a)return;let o=rn(e),{mode:s}=o;if(r.isLeaving)return Pr(a);let c=Fr(a);if(!c)return Pr(a);let l=Nr(c,o,r,n,e=>l=e);c.type!==Pa&&Ir(c,l);let u=n.subTree&&Fr(n.subTree);if(u&&u.type!==Pa&&!Ga(u,c)&&Rr(n.subTree)){let e=Nr(u,o,r,n);if(Ir(u,e),s===`out-in`&&c.type!==Pa)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},Pr(a);s===`in-out`&&c.type!==Pa?e.delayLeave=(e,t,n)=>{let i=Mr(r,u);i[String(u.key)]=u,e[wr]=()=>{t(),e[wr]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function Ar(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==Pa){t=n;break}}return t}var jr=kr;function Mr(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Nr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:_,onAfterAppear:v,onAppearCancelled:y}=t,b=String(e.key),x=Mr(n,e),S=(e,t)=>{e&&kn(e,r,9,t)},C=(e,t)=>{let n=t[1];S(e,t),O(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},w={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted){if(a)r=g||c;else return}t[wr]&&t[wr](!0);let i=x[b];if(i&&Ga(e,i)){let e=i.el[wr];if(!e){let t=Rr(i);e=t&&t.el[wr]}e&&e()}S(r,[t])},enter(t){if(x[b]===e)return;let r=l,i=u,o=d;if(!n.isMounted){if(a)r=_||l,i=v||u,o=y||d;else return}let s=!1;t[Tr]=e=>{s||(s=!0,S(e?o:i,[t]),w.delayedLeave&&w.delayedLeave(),t[Tr]=void 0)};let c=t[Tr].bind(null,!1);r?C(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[Tr]&&t[Tr](!0),n.isUnmounting)return r();S(f,[t]);let a=!1;t[wr]=n=>{a||(a=!0,r(),S(n?h:m,[t]),t[wr]=void 0,x[i]===e&&delete x[i])};let o=t[wr].bind(null,!1);x[i]=e,p?C(p,[t,o]):o()},clone(e){let a=Nr(e,t,n,r,i);return i&&i(a),a}};return w}function Pr(e){if(Gr(e))return e=Za(e),e.children=null,e}function Fr(e){if(!Gr(e))return fr(e.type)&&e.children?Ar(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&M(n.default))return n.default()}}function Ir(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;Ir(fr(n.type)&&Fr(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===Ma&&O(e.children)){let n=Ji(e.children,!1);n&&Ir(n,t)}}function Lr(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;eHr(e,t&&(O(t)?t[a]:t),n,r,i));return}if(Wr(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Hr(e,t,n,r.component.subTree);return}let a=r.shapeFlag&4?To(r.component):r.el,o=i?null:a,{i:s,r:c}=e,l=t&&t.r,u=s.refs===v?s.refs={}:s.refs,d=s.setupState,f=rn(d),p=d===v?x:e=>!Br(u,e)&&D(f,e),m=(e,t)=>!(t&&Br(u,t));if(l!=null&&l!==c){if(Ur(t),N(l))u[l]=null,p(l)&&(d[l]=null);else if(cn(l)){let e=t;m(l,e.k)&&(l.value=null),e.k&&(u[e.k]=null)}}if(M(c))On(c,s,12,[o,u]);else{let t=N(c),r=cn(c);if(t||r){let s=()=>{if(e.f){let n=t?p(c)?d[c]:u[c]:m(c)||!e.k?c.value:u[e.k];if(i)O(n)&&T(n,a);else if(O(n))n.includes(a)||n.push(a);else if(t)u[c]=[a],p(c)&&(d[c]=u[c]);else{let t=[a];m(c,e.k)&&(c.value=t),e.k&&(u[e.k]=t)}}else t?(u[c]=o,p(c)&&(d[c]=o)):r&&(m(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o))};if(o){let t=()=>{s(),Vr.delete(e)};t.id=-1,Vr.set(e,t),ya(t,n)}else Ur(e),s()}}}function Ur(e){let t=Vr.get(e);t&&(t.flags|=8,Vr.delete(e))}ge().requestIdleCallback,ge().cancelIdleCallback;var Wr=e=>!!e.type.__asyncLoader,Gr=e=>e.type.__isKeepAlive;function Kr(e,t){Jr(e,`a`,t)}function qr(e,t){Jr(e,`da`,t)}function Jr(e,t,n=uo){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Xr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Gr(e.parent.vnode)&&Yr(r,t,n,e),e=e.parent}}function Yr(e,t,n,r){let i=Xr(t,e,r,!0);ri(()=>{T(r[t],i)},n)}function Xr(e,t,n=uo,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{nt();let i=ho(n),a=kn(t,n,e,r);return i(),rt(),a};return r?i.unshift(a):i.push(a),a}}var Zr=e=>(t,n=uo)=>{(!vo||e===`sp`)&&Xr(e,(...e)=>t(...e),n)},Qr=Zr(`bm`),$r=Zr(`m`),ei=Zr(`bu`),ti=Zr(`u`),ni=Zr(`bum`),ri=Zr(`um`),ii=Zr(`sp`),ai=Zr(`rtg`),oi=Zr(`rtc`);function si(e,t=uo){Xr(`ec`,e,t)}var ci=`components`,li=`directives`;function ui(e,t){return mi(ci,e,!0,t)||e}var di=Symbol.for(`v-ndc`);function fi(e){return N(e)?mi(ci,e,!1)||e:e||di}function pi(e){return mi(li,e)}function mi(e,t,n=!0,r=!1){let i=Jn||uo;if(i){let n=i.type;if(e===ci){let e=Eo(n,!1);if(e&&(e===t||e===ae(t)||e===ce(ae(t))))return n}let a=hi(i[e]||n[e],t)||hi(i.appContext[e],t);return!a&&r?n:a}}function hi(e,t){return e&&(e[t]||e[ae(t)]||e[ce(ae(t))])}function gi(e,t,n,r){let i,a=n&&n[r],o=O(e);if(o||N(e)){let n=o&&$t(e),r=!1,s=!1;n&&(r=!tn(e),s=en(e),e=_t(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r0;return t!=="default"&&(e.name=t),Ra(),Ua(Ma,null,[W(`slot`,e,r&&r())],i?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);let s=Ia.length;Ra();let c;try{let i=o&&_i(o(n)),s=n.key||a||i&&i.key;c=Ua(Ma,{key:(s&&!P(s)?s:`_${t}`)+(!i&&r?`_fb`:``)},i||(r?r():[]),i&&e._===1?64:-2)}catch(e){for(let e=Ia.length;e>s;e--)za();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),c}function _i(e){return e.some(e=>!Wa(e)||!(e.type===Pa||e.type===Ma&&!_i(e.children)))?e:null}var vi=e=>e?_o(e)?To(e):vi(e.parent):null,yi=w(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>vi(e.parent),$root:e=>vi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Di(e),$forceUpdate:e=>e.f||=()=>{Bn(e.update)},$nextTick:e=>e.n||=zn.bind(e.proxy),$watch:e=>cr.bind(e)}),bi=(e,t)=>e!==v&&!e.__isScriptSetup&&D(e,t),oee={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:s,appContext:c}=e;if(t[0]!==`$`){let e=o[t];if(e!==void 0)switch(e){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return a[t]}else if(bi(r,t))return o[t]=1,r[t];else if(i!==v&&D(i,t))return o[t]=2,i[t];else if(D(a,t))return o[t]=3,a[t];else if(n!==v&&D(n,t))return o[t]=4,n[t];else Si&&(o[t]=0)}let l=yi[t],u,d;if(l)return t===`$attrs`&&pt(e.attrs,`get`,``),l(e);if((u=s.__cssModules)&&(u=u[t]))return u;if(n!==v&&D(n,t))return o[t]=4,n[t];if(d=c.config.globalProperties,D(d,t))return d[t]},set({_:e},t,n){let{data:r,setupState:i,ctx:a}=e;return bi(i,t)?(i[t]=n,!0):r!==v&&D(r,t)?(r[t]=n,!0):D(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:a,type:o}},s){let c;return!!(n[s]||e!==v&&s[0]!==`$`&&D(e,s)||bi(t,s)||D(a,s)||D(r,s)||D(yi,s)||D(i.config.globalProperties,s)||(c=o.__cssModules)&&c[s])},defineProperty(e,t,n){return n.get==null?D(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function see(){return cee(`useAttrs`).attrs}function cee(e){let t=fo();return t.setupContext||=wo(t)}function xi(e){return O(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function lee(e,t){return!e||!t?e||t:O(e)&&O(t)?e.concat(t):w({},xi(e),xi(t))}var Si=!0;function Ci(e){let t=Di(e),n=e.proxy,r=e.ctx;Si=!1,t.beforeCreate&&Ti(t.beforeCreate,e,`bc`);let{data:i,computed:a,methods:o,watch:s,provide:c,inject:l,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:m,activated:h,deactivated:g,beforeDestroy:_,beforeUnmount:v,destroyed:y,unmounted:x,render:S,renderTracked:C,renderTriggered:w,errorCaptured:T,serverPrefetch:E,expose:D,inheritAttrs:k,components:A,directives:j,filters:N}=t;if(l&&wi(l,r,null),o)for(let e in o){let t=o[e];M(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);F(t)&&(e.data=Yt(t))}if(Si=!0,a)for(let e in a){let t=a[e],i=G({get:M(t)?t.bind(n,n):M(t.get)?t.get.bind(n,n):b,set:!M(t)&&M(t.set)?t.set.bind(n):b});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(s)for(let e in s)Ei(s[e],r,n,e);if(c){let e=M(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{er(t,e[t])})}u&&Ti(u,e,`c`);function P(e,t){O(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(P(Qr,d),P($r,f),P(ei,p),P(ti,m),P(Kr,h),P(qr,g),P(si,T),P(oi,C),P(ai,w),P(ni,v),P(ri,x),P(ii,E),O(D)){if(D.length){let t=e.exposed||={};D.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}S&&e.render===b&&(e.render=S),k!=null&&(e.inheritAttrs=k),A&&(e.components=A),j&&(e.directives=j),E&&zr(e)}function wi(e,t,n=b){O(e)&&(e=Mi(e));for(let n in e){let r=e[n],i;i=F(r)?`default`in r?tr(r.from||n,r.default,!0):tr(r.from||n):tr(r),cn(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function Ti(e,t,n){kn(O(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ei(e,t,n,r){let i=r.includes(`.`)?lr(n,r):()=>n[r];if(N(e)){let n=t[e];M(n)&&H(i,n)}else if(M(e))H(i,e.bind(n));else if(F(e)){if(O(e))e.forEach(e=>Ei(e,t,n,r));else{let r=M(e.handler)?e.handler.bind(n):t[e.handler];M(r)&&H(i,r,e)}}}function Di(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>Oi(c,e,o,!0)),Oi(c,t,o)),F(t)&&a.set(t,c),c}function Oi(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&Oi(e,a,n,!0),i&&i.forEach(t=>Oi(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=ki[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var ki={data:Ai,props:Fi,emits:Fi,methods:Pi,computed:Pi,beforeCreate:Ni,created:Ni,beforeMount:Ni,mounted:Ni,beforeUpdate:Ni,updated:Ni,beforeDestroy:Ni,beforeUnmount:Ni,destroyed:Ni,unmounted:Ni,activated:Ni,deactivated:Ni,errorCaptured:Ni,serverPrefetch:Ni,components:Pi,directives:Pi,watch:Ii,provide:Ai,inject:ji};function Ai(e,t){return t?e?function(){return w(M(e)?e.call(this,this):e,M(t)?t.call(this,this):t)}:t:e}function ji(e,t){return Pi(Mi(e),Mi(t))}function Mi(e){if(O(e)){let t={};for(let n=0;n{let c,l=v,u;return or(()=>{let t=e[i];ue(c,t)&&(c=t,s())}),{get(){return o(),n.get?n.get(c):c},set(e){let o=n.set?n.set(e):e;if(!ue(o,c)&&!(l!==v&&ue(e,l)))return;let d=r.vnode.props,f=!!(d&&(t in d||i in d||a in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${a}`in d));f||(c=e,s()),r.emit(`update:${t}`,o),ue(e,l)&&(ue(e,o)&&!ue(o,u)||f&&l!==v&&!ue(o,c))&&s(),l=e,u=o}}});return s[Symbol.iterator]=()=>{let e=0;return{next(){return e<2?{value:e++?o||v:s,done:!1}:{done:!0}}}},s}var Hi=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${ae(t)}Modifiers`]||e[`${se(t)}Modifiers`];function Ui(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||v,i=n,a=t.startsWith(`update:`),o=a&&Hi(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>N(e)?e.trim():e)),o.number&&(i=i.map(pe)));let s,c=r[s=le(t)]||r[s=le(ae(t))];!c&&a&&(c=r[s=le(se(t))]),c&&kn(c,e,6,i);let l=r[s+`Once`];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,kn(l,e,6,i)}}var Wi=new WeakMap;function Gi(e,t,n=!1){let r=n?Wi:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!M(e)){let r=e=>{let n=Gi(e,t,!0);n&&(s=!0,w(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(F(e)&&r.set(e,null),null):(O(a)?a.forEach(e=>o[e]=null):w(o,a),F(e)&&r.set(e,o),o)}function Ki(e,t){return!e||!S(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),D(e,t[0].toLowerCase()+t.slice(1))||D(e,se(t))||D(e,t))}function qi(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:c,render:l,renderCache:u,props:d,data:f,setupState:p,ctx:m,inheritAttrs:h}=e,g=Xn(e),_,v;try{if(n.shapeFlag&4){let e=i||r,t=e;_=to(l.call(t,e,u,d,p,f,m)),v=s}else{let e=t;_=to(e.length>1?e(d,{attrs:s,slots:o,emit:c}):e(d,null)),v=t.props?s:Yi(s)}}catch(t){Ia.length=0,An(t,e,1),_=W(Pa)}let y=_;if(v&&h!==!1){let e=Object.keys(v),{shapeFlag:t}=y;e.length&&t&7&&(a&&e.some(C)&&(v=Xi(v,a)),y=Za(y,v,!1,!0))}return n.dirs&&(y=Za(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&Ir(fr(y.type)&&Fr(y)||y,n.transition),_=y,Xn(g),_}function Ji(e,t=!0){let n;for(let t=0;t{let t;for(let n in e)(n===`class`||n===`style`||S(n))&&((t||={})[n]=e[n]);return t},Xi=(e,t)=>{let n={};for(let r in e)(!C(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Zi(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Qi(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(ta),ra=e=>Object.getPrototypeOf(e)===ta;function ia(e,t,n,r=!1){let i={},a=na();e.propsDefaults=Object.create(null),oa(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:Xt(i):e.type.props?i:a,e.attrs=a}function aa(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=rn(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{c=!0;let[n,r]=la(e,t,!0);w(o,n),r&&s.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!a&&!c)return F(e)&&r.set(e,y),y;if(O(a))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,fa=e=>O(e)?e.map(to):[to(e)],pa=(e,t,n)=>{if(t._n)return t;let r=Zn((...e)=>fa(t(...e)),n);return r._c=!1,r},ma=(e,t,n)=>{let r=e._ctx;for(let n in e){if(da(n))continue;let i=e[n];if(M(i))t[n]=pa(n,i,r);else if(i!=null){let e=fa(i);t[n]=()=>e}}},ha=(e,t)=>{let n=fa(t);e.slots.default=()=>n},ga=(e,t,n)=>{for(let r in t)(n||!da(r))&&(e[r]=t[r])},_a=(e,t,n)=>{let r=e.slots=na();if(e.vnode.shapeFlag&32){let e=t._;e?(ga(r,t,n),n&&fe(r,`_`,e,!0)):ma(t,r)}else t&&ha(e,t)},va=(e,t,n)=>{let{vnode:r,slots:i}=e,a=!0,o=v;if(r.shapeFlag&32){let e=t._;e?n&&e===1?a=!1:ga(i,t,n):(a=!t.$stable,ma(t,i)),o=t}else t&&(ha(e,t),o={default:1});if(a)for(let e in i)!da(e)&&o[e]==null&&delete i[e]},ya=ja;function ba(e){return xa(e)}function xa(e,t){let n=ge();n.__VUE__=!0;let{insert:r,remove:i,patchProp:a,createElement:o,createText:s,createComment:c,setText:l,setElementText:u,parentNode:d,nextSibling:f,setScopeId:p=b,insertStaticContent:m}=e,h=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Ga(e,t)&&(r=se(e),ne(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null),t.dynamicChildren&&e&&e.dynamicChildren&&e.dynamicChildren.hasOnce&&(t.dynamicChildren===y&&(t.dynamicChildren=[]),t.dynamicChildren.hasOnce=!0);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case Na:g(e,t,n,r);break;case Pa:_(e,t,n,r);break;case Fa:e??x(t,n,r,o);break;case Ma:j(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?M(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,le)}u!=null&&i?Hr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Hr(e.ref,null,a,e,!0)},g=(e,t,n,i)=>{if(e==null)r(t.el=s(t.children),n,i);else{let n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},_=(e,t,n,i)=>{e==null?r(t.el=c(t.children||``),n,i):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=m(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,i)=>{let a;for(;e&&e!==t;)a=f(e),r(e,n,i),e=a;r(t,n,i)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=f(e),i(e),e=n;i(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)T(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),O(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},T=(e,t,n,i,s,c,l,d)=>{let f,p,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(f=e.el=o(e.type,c,m&&m.is,m),h&8?u(f,e.children):h&16&&D(e.children,f,null,i,s,Sa(e,c),l,d),_&&$n(e,null,i,`created`),E(f,e,e.scopeId,l,i),m){for(let e in m)e!==`value`&&!z(e)&&a(f,e,null,m[e],c,i);`value`in m&&a(f,`value`,null,m.value,c),(p=m.onVnodeBeforeMount)&&ao(p,i,e)}_&&$n(e,null,i,`beforeMount`);let v=wa(s,g);v&&g.beforeEnter(f),r(f,t,n),((p=m&&m.onVnodeMounted)||v||_)&&ya(()=>{try{p&&ao(p,i,e),v&&g.enter(f),_&&$n(e,null,i,`mounted`)}finally{}},s)},E=(e,t,n,r,i)=>{if(n&&p(e,n),r)for(let t=0;t{for(let l=c;l{let c=t.el=e.el,{patchFlag:l,dynamicChildren:d,dirs:f}=t;l|=e.patchFlag&16;let p=e.props||v,m=t.props||v,h;if(n&&Ca(n,!1),(h=m.onVnodeBeforeUpdate)&&ao(h,n,t,e),f&&$n(t,e,n,`beforeUpdate`),n&&Ca(n,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(l=0,s=!1,d=null),(p.innerHTML&&m.innerHTML==null||p.textContent&&m.textContent==null)&&u(c,``),d?k(e.dynamicChildren,d,c,n,r,Sa(t,i),o):s||L(e,t,c,null,n,r,Sa(t,i),o,!1),l>0){if(l&16)A(c,p,m,n,i);else if(l&2&&p.class!==m.class&&a(c,`class`,null,m.class,i),l&4&&a(c,`style`,p.style,m.style,i),l&8){let e=t.dynamicProps;for(let t=0;t{h&&ao(h,n,t,e),f&&$n(t,e,n,`updated`)},r)},k=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==v)for(let o in t)!z(o)&&!(o in n)&&a(e,o,t[o],null,i,r);for(let o in n){if(z(o))continue;let s=n[o],c=t[o];s!==c&&o!==`value`&&a(e,o,c,s,i,r)}`value`in n&&a(e,`value`,t.value,n.value,i)}},j=(e,t,n,i,a,o,c,l,u)=>{let d=t.el=e?e.el:s(``),f=t.anchor=e?e.anchor:s(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(l=l?l.concat(h):h),e==null?(r(d,n,i),r(f,n,i),D(t.children||[],n,f,a,o,c,l,u)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(k(e.dynamicChildren,m,n,a,o,c,l),(t.key!=null||a&&t===a.subTree)&&Ta(e,t,!0)):L(e,t,n,f,a,o,c,l,u)},M=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):N(t,n,r,i,a,o,c):P(e,t,c)},N=(e,t,n,r,i,a,o)=>{let s=e.component=lo(e,r,i);if(Gr(e)&&(s.ctx.renderer=le),yo(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,F,o,a),!e.el){let r=s.subTree=W(Pa);_(null,r,t,n),e.placeholder=r.el}}else F(s,e,t,n,i,a,o)},P=(e,t,n)=>{let r=t.component=e.component;if(Zi(e,t,n)){if(r.asyncDep&&!r.asyncResolved){t.el=e.el,t.placeholder=e.placeholder,I(r,t,n);return}r.next=t,r.update()}else t.el=e.el,t.placeholder=e.placeholder,r.vnode=t},F=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=Da(e);if(n){t&&(t.el=c.el,I(e,t,o)),n.asyncDep.then(()=>{ya(()=>{e.isUnmounted||l()},i)});return}}let u=t,f;Ca(e,!1),t?(t.el=c.el,I(e,t,o)):t=c,n&&de(n),(f=t.props&&t.props.onVnodeBeforeUpdate)&&ao(f,s,t,c),Ca(e,!0);let p=qi(e),m=e.subTree;e.subTree=p,h(m,p,d(m.el),se(m),e,i,a),t.el=p.el,u===null&&ea(e,p.el),r&&ya(r,i),(f=t.props&&t.props.onVnodeUpdated)&&ya(()=>ao(f,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=Wr(t);if(Ca(e,!1),l&&de(l),!m&&(o=c&&c.onVnodeBeforeMount)&&ao(o,d,t),Ca(e,!0),s&&fe){let t=()=>{e.subTree=qi(e),fe(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=qi(e);h(null,o,n,r,e,i,a),t.el=o.el}if(u&&ya(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;ya(()=>ao(o,d,e),i)}(t.shapeFlag&256||d&&Wr(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&ya(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Ve(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>Bn(u),Ca(e,!0),l()},I=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,aa(e,t.props,r,n),va(e,t.children,n),nt(),Hn(e),rt()},L=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:m}=t;if(p>0){if(p&128){ee(l,f,n,r,i,a,o,s,c);return}if(p&256){R(l,f,n,r,i,a,o,s,c);return}}m&8?(d&16&&oe(l,i,a),f!==l&&u(n,f)):d&16?m&16?ee(l,f,n,r,i,a,o,s,c):oe(l,i,a,!0):(d&8&&u(n,``),m&16&&D(f,n,r,i,a,o,s,c))},R=(e,t,n,r,i,a,o,s,c)=>{e||=y,t||=y;let l=e.length,u=t.length,d=Math.min(l,u),f=0;for(;fu?oe(e,i,a,!0,!1,d):D(t,n,r,i,a,o,s,c,d)},ee=(e,t,n,r,i,a,o,s,c)=>{let l=0,u=t.length,d=e.length-1,f=u-1;for(;l<=d&&l<=f;){let r=e[l],u=t[l]=c?no(t[l]):to(t[l]);if(Ga(r,u))h(r,u,n,null,i,a,o,s,c);else break;l++}for(;l<=d&&l<=f;){let r=e[d],l=t[f]=c?no(t[f]):to(t[f]);if(Ga(r,l))h(r,l,n,null,i,a,o,s,c);else break;d--,f--}if(l>d){if(l<=f){let e=f+1,d=ef)for(;l<=d;)ne(e[l],i,a,!0),l++;else{let p=l,m=l,g=new Map;for(l=m;l<=f;l++){let e=t[l]=c?no(t[l]):to(t[l]);e.key!=null&&g.set(e.key,l)}let _,v=0,b=f-m+1,x=!1,S=0,C=Array(b);for(l=0;l=b){ne(r,i,a,!0);continue}let u;if(r.key!=null)u=g.get(r.key);else for(_=m;_<=f;_++)if(C[_-m]===0&&Ga(r,t[_])){u=_;break}u===void 0?ne(r,i,a,!0):(C[u-m]=l+1,u>=S?S=u:x=!0,h(r,t[u],n,null,i,a,o,s,c),v++)}let w=x?Ea(C):y;for(_=w.length-1,l=b-1;l>=0;l--){let e=m+l,d=t[e],f=t[e+1],p=e+1{let{el:s,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6)te(e.component.subTree,t,n,a);else if(d&128)e.suspense.move(t,n,a);else if(d&64)c.move(e,t,n,le);else if(c===Ma){r(s,t,n);for(let e=0;el.enter(s),o));else{let{leave:a,delayLeave:o,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?i(s):r(s,t,n)},d=()=>{let e=s._isLeaving||!!s[wr];s._isLeaving&&s[wr](!0),l.persisted&&!e?u():a(s,()=>{u(),c&&c()})};o?o(s,u,d):d()}}else r(s,t,n)},ne=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if((d===-2||l&&l.hasOnce)&&(i=!1),s!=null&&(nt(),Hr(s,null,n,e,!0),rt()),p!=null&&(!e.ctx||e.ctx===t)&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Wr(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&ao(_,t,e),u&6)ae(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&$n(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,le,r):l&&!l.hasOnce&&(a!==Ma||d>0&&d&64)?oe(l,t,n,!1,!0):(a===Ma&&d&384||!i&&u&16)&&oe(c,t,n),r&&re(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&ya(()=>{_&&ao(_,t,e),h&&$n(e,null,t,`unmounted`),v&&(e.el=null)},n)},re=e=>{let{type:t,el:n,anchor:r,transition:a}=e,o=t===Ma;if(o&&!a){ie(n,r);return}if(t===Fa){C(e),a&&!a.persisted&&a.afterLeave&&a.afterLeave();return}let s=o?Rr(e):e,c=()=>{o?d(n)&&ie(n,r):i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(s&&s.shapeFlag&1&&a&&!a.persisted){let{leave:e,delayLeave:t}=a,n=s.el,r=()=>e(n,c);t?t(n,c,r):r()}else c()},ie=(e,t)=>{let n;for(;e!==t;)n=f(e),i(e),e=n;i(t)},ae=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Oa(c),Oa(l),r&&de(r),i.stop(),a?(a.flags|=8,ne(o,e,t,n)):e.vnode.el&&o&&(o.transition=e.vnode.transition,ne(o,e,t,n)),s&&ya(s,t),ya(()=>{e.isUnmounted=!0},t)},oe=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return se(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=f(e.anchor||e.el),n=t&&t[dr];return n?f(n):t},ce=(e,t,n)=>{Gn(()=>{e==null?t._vnode&&ne(t._vnode,null,null,!0):h(t._vnode||null,e,t,null,null,null,n),t._vnode=e},e&&t._vnode?void 0:e&&e.component?e.component.uid:co())},le={p:h,um:ne,m:te,r:re,mt:N,mc:D,pc:L,pbc:k,n:se,o:e},ue,fe;return t&&([ue,fe]=t(le)),{render:ce,hydrate:ue,createApp:zi(ce,ue)}}function Sa({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Ca({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function wa(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ta(e,t,n=!1){let r=e.children,i=t.children;if(O(r)&&O(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function Da(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Da(t)}function Oa(e){if(e)for(let t=0;te.__isSuspense;function ja(e,t){t&&t.pendingBranch?O(e)?t.effects.push(...e):t.effects.push(e):iee(e)}var Ma=Symbol.for(`v-fgt`),Na=Symbol.for(`v-txt`),Pa=Symbol.for(`v-cmt`),Fa=Symbol.for(`v-stc`),Ia=[],La=null;function Ra(e=!1){Ia.push(La=e?null:[])}function za(){Ia.pop(),La=Ia[Ia.length-1]||null}var Ba=1;function Va(e,t=!1){Ba+=e,e<0&&La&&t&&(La.hasOnce=!0)}function Ha(e){return e.dynamicChildren=Ba>0?La||y:null,za(),Ba>0&&La&&La.push(e),e}function uee(e,t,n,r,i,a){return Ha(Ja(e,t,n,r,i,a,!0))}function Ua(e,t,n,r,i){return Ha(W(e,t,n,r,i,!0))}function Wa(e){return e?e.__v_isVNode===!0:!1}function Ga(e,t){return e.type===t.type&&e.key===t.key}var Ka=({key:e})=>e??null,qa=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:N(e)||cn(e)||M(e)?{i:Jn,r:e,k:t,f:!!n}:e);function Ja(e,t=null,n=null,r=0,i=null,a=e===Ma?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ka(t),ref:t&&qa(t),scopeId:Yn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Jn};return s?(ro(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=N(n)?8:16),Ba>0&&!o&&La&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&La.push(c),c}var W=Ya;function Ya(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===di)&&(e=Pa),Wa(e)){let r=Za(e,t,!0);return n&&ro(r,n),Ba>0&&!a&&La&&(r.shapeFlag&6?La[La.indexOf(e)]=r:La.push(r)),r.patchFlag=-2,r}if(Do(e)&&(e=e.__vccOpts),t){t=Xa(t);let{class:e,style:n}=t;e&&!N(e)&&(t.class=Se(e)),F(n)&&(nn(n)&&!O(n)&&(n=w({},n)),t.style=_e(n))}let o=N(e)?1:Aa(e)?128:fr(e)?64:F(e)?4:M(e)?2:0;return Ja(e,t,n,r,i,o,a,!0)}function Xa(e){return e?nn(e)||ra(e)?w({},e):e:null}function Za(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?io(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Ka(l),ref:t&&t.ref?n&&a?O(a)?a.concat(qa(t)):[a,qa(t)]:qa(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ma?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Za(e.ssContent),ssFallback:e.ssFallback&&Za(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&r&&Ir(u,c.clone(u)),u}function Qa(e=` `,t=0){return W(Na,null,e,t)}function $a(e,t){let n=W(Fa,null,e);return n.staticCount=t,n}function eo(e=``,t=!1){return t?(Ra(),Ua(Pa,null,e)):W(Pa,null,e)}function to(e){return e==null||typeof e==`boolean`?W(Pa):O(e)?W(Ma,null,e.slice()):Wa(e)?no(e):W(Na,null,String(e))}function no(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Za(e)}function ro(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(O(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),ro(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!ra(t)?t._ctx=Jn:r===3&&Jn&&(Jn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(M(t)){if(r&65){ro(e,{default:t});return}t={default:t,_ctx:Jn},n=32}else t=String(t),r&64?(n=16,t=[Qa(t)]):n=8;e.children=t,e.shapeFlag|=n}function io(...e){let t={};for(let n=0;nuo||Jn,po,mo;{let e=ge(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};po=t(`__VUE_INSTANCE_SETTERS__`,e=>uo=e),mo=t(`__VUE_SSR_SETTERS__`,e=>vo=e)}var ho=e=>{let t=uo;return po(e),e.scope.on(),()=>{e.scope.off(),po(t)}},go=()=>{uo&&uo.scope.off(),po(null)};function _o(e){return e.vnode.shapeFlag&4}var vo=!1;function yo(e,t=!1,n=!1){t&&mo(t);let{props:r,children:i}=e.vnode,a=_o(e);ia(e,r,a,t),_a(e,i,n||t);let o=a?bo(e,t):void 0;return t&&mo(!1),o}function bo(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,oee);let{setup:r}=n;if(r){nt();let n=e.setupContext=r.length>1?wo(e):null,i=ho(e),a=On(r,e,0,[e.props,n]),o=I(a);if(rt(),i(),(o||e.sp)&&!Wr(e)&&zr(e),o){if(a.then(go,go),t)return a.then(n=>{mo(!0);try{xo(e,n,t)}finally{mo(!1)}}).catch(t=>{An(t,e,0)});e.asyncDep=a}else xo(e,a,t)}else So(e,t)}function xo(e,t,n){M(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:F(t)&&(e.setupState=mn(t)),So(e,n)}function So(e,t,n){let r=e.type;e.render||=r.render||b;{let t=ho(e);nt();try{Ci(e)}finally{rt(),t()}}}var Co={get(e,t){return pt(e,`get`,``),e[t]}};function wo(e){return{attrs:new Proxy(e.attrs,Co),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function To(e){return e.exposed?e.exposeProxy||=new Proxy(mn(an(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in yi)return yi[n](e)},has(e,t){return t in e||t in yi}}):e.proxy}function Eo(e,t=!0){return M(e)?e.displayName||e.name:e.name||t&&e.__name}function Do(e){return M(e)&&`__vccOpts`in e}var G=(e,t)=>xn(e,t,vo);function Oo(e,t,n){try{Va(-1);let r=arguments.length;return r===2?F(t)&&!O(t)?Wa(t)?W(e,null,[t]):W(e,t):W(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Wa(n)&&(n=[n]),W(e,t,n))}finally{Va(1)}}var ko=`3.5.44`,Ao=void 0,jo=typeof window<`u`&&window.trustedTypes;if(jo)try{Ao=jo.createPolicy(`vue`,{createHTML:e=>e})}catch{}var Mo=Ao?e=>Ao.createHTML(e):e=>e,No=`http://www.w3.org/2000/svg`,Po=`http://www.w3.org/1998/Math/MathML`,Fo=typeof document<`u`?document:null,Io=Fo&&Fo.createElement(`template`),Lo={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?Fo.createElementNS(No,e):t===`mathml`?Fo.createElementNS(Po,e):n?Fo.createElement(e,{is:n}):Fo.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>Fo.createTextNode(e),createComment:e=>Fo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fo.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==a&&(i=i.nextSibling););else{Io.innerHTML=Mo(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=Io.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ro=`transition`,zo=`animation`,Bo=Symbol(`_vtc`),Vo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Ho=w({},Or,Vo),Uo=(e=>(e.displayName=`Transition`,e.props=Ho,e))((e,{slots:t})=>Oo(jr,Ko(e),t)),Wo=(e,t=[])=>{O(e)?e.forEach(e=>e(...t)):e&&e(...t)},Go=e=>e?O(e)?e.some(e=>e.length>1):e.length>1:!1;function Ko(e){let t={};for(let n in e)n in Vo||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=qo(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:_,onEnter:v,onEnterCancelled:y,onLeave:b,onLeaveCancelled:x,onBeforeAppear:S=_,onAppear:C=v,onAppearCancelled:T=y}=t,E=(e,t,n,r)=>{e._enterCancelled=r,Xo(e,t?u:s),Xo(e,t?l:o),n&&n()},D=(e,t)=>{e._isLeaving=!1,Xo(e,d),Xo(e,p),Xo(e,f),t&&t()},O=e=>(t,n)=>{let i=e?C:v,o=()=>E(t,e,n);Wo(i,[t,o]),Zo(()=>{Xo(t,e?c:a),Yo(t,e?u:s),Go(i)||$o(t,r,h,o)})};return w(t,{onBeforeEnter(e){Wo(_,[e]),Yo(e,a),Yo(e,o)},onBeforeAppear(e){Wo(S,[e]),Yo(e,c),Yo(e,l)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>D(e,t);Yo(e,d),e._enterCancelled?(Yo(e,f),rs(e)):(rs(e),Yo(e,f)),Zo(()=>{e._isLeaving&&(Xo(e,d),Yo(e,p),Go(b)||$o(e,r,g,n))}),Wo(b,[e,n])},onEnterCancelled(e){E(e,!1,void 0,!0),Wo(y,[e])},onAppearCancelled(e){E(e,!0,void 0,!0),Wo(T,[e])},onLeaveCancelled(e){D(e),Wo(x,[e])}})}function qo(e){if(e==null)return null;if(F(e))return[Jo(e.enter),Jo(e.leave)];{let t=Jo(e);return[t,t]}}function Jo(e){return me(e)}function Yo(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Bo]||(e[Bo]=new Set)).add(t)}function Xo(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[Bo];n&&(n.delete(t),n.size||(e[Bo]=void 0))}function Zo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var Qo=0;function $o(e,t,n,r){let i=e._endId=++Qo,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=es(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${Ro}Delay`),a=r(`${Ro}Duration`),o=ts(i,a),s=r(`${zo}Delay`),c=r(`${zo}Duration`),l=ts(s,c),u=null,d=0,f=0;t===Ro?o>0&&(u=Ro,d=o,f=a.length):t===zo?l>0&&(u=zo,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?Ro:zo:null,f=u?u===Ro?a.length:c.length:0);let p=u===Ro&&/\b(?:transform|all)(?:,|$)/.test(r(`${Ro}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function ts(e,t){for(;e.lengthns(t)+ns(e[n])))}function ns(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function rs(e){return(e?e.ownerDocument:document).body.offsetHeight}function is(e,t,n){let r=e[Bo];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var as=Symbol(`_vod`),os=Symbol(`_vsh`),ss={name:`show`,beforeMount(e,{value:t},{transition:n}){e[as]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):cs(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),cs(e,!0),r.enter(e)):r.leave(e,()=>{cs(e,!1)}):cs(e,t))},beforeUnmount(e,{value:t}){cs(e,t)}};function cs(e,t){e.style.display=t?e[as]:`none`,e[os]=!t}var ls=Symbol(``),us=/(?:^|;)\s*display\s*:/;function ds(e,t,n){let r=e.style,i=N(n),a=!1;if(n&&!i){if(t){if(N(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??ps(r,t,``)}else for(let e in t)n[e]??ps(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?ps(r,i,``):_s(e,i,!N(t)&&t?t[i]:void 0,o)||ps(r,i,o)}}else if(i){if(t!==n){let e=r[ls];e&&(n+=`;`+e),r.cssText=n,a=us.test(n)}}else t&&e.removeAttribute(`style`);as in e&&((!i||t!==n)&&(e[as]=a?r.display:``),e[os]&&(r.display=`none`))}var fs=/\s*!important$/;function ps(e,t,n){if(O(n))n.forEach(n=>ps(e,t,n));else if(n??=``,t.startsWith(`--`))fs.test(n)?e.setProperty(t,n.replace(fs,``),`important`):e.setProperty(t,n);else{let r=gs(e,t);fs.test(n)?e.setProperty(se(r),n.replace(fs,``),`important`):e[r]=n}}var ms=[`Webkit`,`Moz`,`ms`],hs={};function gs(e,t){let n=hs[t];if(n)return n;let r=ae(t);if(r!==`filter`&&r in e)return hs[t]=r;r=ce(r);for(let n=0;nOs||=(ks.then(()=>Os=0),Date.now());function js(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(O(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ns=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?is(e,r,o):t===`style`?ds(e,n,r):S(t)?C(t)||ws(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),1):t[0]===`^`?(t=t.slice(1),0):Ps(e,t,r,o))?(bs(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&ys(e,t,r,o,a,t!==`value`)):e._isVueCE&&(Fs(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!N(r)))?bs(e,ae(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),ys(e,t,r,o))};function Ps(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Ms(t)&&M(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Ms(t)&&N(n)?!1:t in e}function Fs(e,t){let n=e._def.props;if(!n)return!1;let r=ae(t);return Array.isArray(n)?n.some(e=>ae(e)===r):Object.keys(n).some(e=>ae(e)===r)}var Is=new WeakMap,Ls=new WeakMap,Rs=Symbol(`_moveCb`),zs=Symbol(`_enterCb`),Bs=new WeakMap,Vs=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:w({},Ho,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=fo(),r=Er(),i,a,o,s,c=()=>(s===void 0&&(s=i.length>0&&Xs(i[0].el,n.vnode.el,Us(e))),s);return ti(()=>{if(Bs.delete(n),!c()){i=[],o=void 0;return}let t=Us(e);i.forEach(Hs);let r=o&&Ys(o,n.vnode.el);o=void 0,i.forEach(e=>Ws(e,r));let a=i.filter(Gs);rs(n.vnode.el),a.forEach(e=>{let n=e.el,r=n.style;Yo(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[Rs]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[Rs]=null,Xo(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let l=rn(e),u=Ko(l),d=l.tag||Ma;if(i=[],s=void 0,a)for(let e=0;ee.willMove()&&e.item.contains(t));return n&&Ks(n.item,n)}function Xs(e,t,n){let r=e.cloneNode(),i=e[Bo];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=es(r);return a.removeChild(r),o}var Zs=[`ctrl`,`shift`,`alt`,`meta`],Qs={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>Zs.some(n=>e[`${n}Key`]&&!t.includes(n))},$s=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{tc().render(...e)}),rc=((...e)=>{let t=tc().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=pee(e);if(!r)return;let i=t._component;!M(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,fee(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function fee(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function pee(e){return N(e)?document.querySelector(e):e}var ic=e=>typeof e==`function`,mee=Array.isArray,hee=e=>typeof e==`string`,gee=e=>typeof e==`object`&&!!e,_ee=/^on[^a-z]/,vee=e=>_ee.test(e),ac=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},yee=/-(\w)/g,oc=ac(e=>e.replace(yee,(e,t)=>t?t.toUpperCase():``)),bee=/\B([A-Z])/g,xee=ac(e=>e.replace(bee,`-$1`).toLowerCase()),See=ac(e=>e.charAt(0).toUpperCase()+e.slice(1)),Cee=Object.prototype.hasOwnProperty,sc=(e,t)=>Cee.call(e,t);function wee(e,t,n,r){let i=e[n];if(i!=null){let e=sc(i,`default`);if(e&&r===void 0){let e=i.default;r=i.type!==Function&&ic(e)?e():e}i.type===Boolean&&(!sc(t,n)&&!e?r=!1:r===``&&(r=!0))}return r}function Tee(e){return Object.keys(e).reduce((t,n)=>((n.startsWith(`data-`)||n.startsWith(`aria-`))&&(t[n]=e[n]),t),{})}function cc(e){return typeof e==`number`?`${e}px`:e}function lc(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return typeof e==`function`?e(t):e??n}function Eee(e){let t,n=new Promise(n=>{t=e(()=>{n(!0)})}),r=()=>{t?.()};return r.then=(e,t)=>n.then(e,t),r.promise=n,r}function K(){let e=[];for(let t=0;t0},e.prototype.connect_=function(){dc&&!this.connected_&&(document.addEventListener(`transitionend`,this.onTransitionEnd_),window.addEventListener(`resize`,this.refresh),vc?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener(`DOMSubtreeModified`,this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){dc&&this.connected_&&(document.removeEventListener(`transitionend`,this.onTransitionEnd_),window.removeEventListener(`resize`,this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener(`DOMSubtreeModified`,this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=t===void 0?``:t;_c.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||=new e,this.instance_},e.instance_=null,e}(),bc=(function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),Ic=typeof WeakMap<`u`?new WeakMap:new uc,Lc=function(){function e(t){if(!(this instanceof e))throw TypeError(`Cannot call a class as a function.`);if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);var n=new Fc(t,yc.getInstance(),this);Ic.set(this,n)}return e}();[`observe`,`unobserve`,`disconnect`].forEach(function(e){Lc.prototype[e]=function(){var t;return(t=Ic.get(this))[e].apply(t,arguments)}});var Rc=(function(){return fc.ResizeObserver===void 0?Lc:fc.ResizeObserver})(),zc=e=>e!=null&&e!==``,Bc=(e,t)=>{let n=g({},e);return Object.keys(t).forEach(e=>{let r=n[e];if(r)r.type||r.default?r.default=t[e]:r.def?r.def(t[e]):n[e]={type:r,default:t[e]};else throw Error(`not have ${e} prop`)}),n},Vc=e=>{let t=Object.keys(e),n={},r={},i={};for(let a=0,o=t.length;a0&&arguments[0]!==void 0?arguments[0]:``,t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n={},r=/;(?![^(]*\))/g,i=/:(.+)/;return typeof e==`object`?e:(e.split(r).forEach(function(e){if(e){let r=e.split(i);if(r.length>1){let e=t?oc(r[0].trim()):r[0].trim();n[e]=r[1].trim()}}}),n)},Uc=(e,t)=>e[t]!==void 0,Wc=Symbol(`skipFlatten`),Gc=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=Array.isArray(e)?e:[e],r=[];return n.forEach(e=>{Array.isArray(e)?r.push(...Gc(e,t)):e&&e.type===Ma?e.key===Wc?r.push(e):r.push(...Gc(e.children,t)):e&&Wa(e)?t&&!tl(e)?r.push(e):t||r.push(e):zc(e)&&r.push(e)}),r},Kc=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`default`,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Wa(e)?e.type===Ma?t==="default"?Gc(e.children):[]:e.children&&e.children[t]?Gc(e.children[t](n)):[]:Gc(e.$slots[t]&&e.$slots[t](n))},qc=e=>{let t=e?.vnode?.el||e&&(e.$el||e);for(;t&&!t.tagName;)t=t.nextSibling;return t},Jc=e=>{let t={};if(e.$&&e.$.vnode){let n=e.$.vnode.props||{};Object.keys(e.$props).forEach(r=>{let i=e.$props[r],a=xee(r);(i!==void 0||a in n)&&(t[r]=i)})}else if(Wa(e)&&typeof e.type==`object`){let n=e.props||{},r={};Object.keys(n).forEach(e=>{r[oc(e)]=n[e]});let i=e.type.props||{};Object.keys(i).forEach(e=>{let n=wee(i,r,e,r[e]);(n!==void 0||e in r)&&(t[e]=n)})}return t},Yc=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`default`,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i;if(e.$){let a=e[t];if(a!==void 0)return typeof a==`function`&&r?a(n):a;i=e.$slots[t],i=r&&i?i(n):i}else if(Wa(e)){let a=e.props&&e.props[t];if(a!==void 0&&e.props!==null)return typeof a==`function`&&r?a(n):a;e.type===Ma?i=e.children:e.children&&e.children[t]&&(i=e.children[t],i=r&&i?i(n):i)}return Array.isArray(i)&&(i=Gc(i),i=i.length===1?i[0]:i,i=i.length===0?void 0:i),i};function Xc(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n={};return n=e.$?g(g({},n),e.$attrs):g(g({},n),e.props),Vc(n)[t?`onEvents`:`events`]}function Zc(e){let t=((Wa(e)?e.props:e.$attrs)||{}).class||{},n={};return typeof t==`string`?t.split(` `).forEach(e=>{n[e.trim()]=!0}):Array.isArray(t)?K(t).split(` `).forEach(e=>{n[e.trim()]=!0}):n=g(g({},n),t),n}function Qc(e,t){let n=((Wa(e)?e.props:e.$attrs)||{}).style||{};if(typeof n==`string`)n=Hc(n,t);else if(t&&n){let e={};return Object.keys(n).forEach(t=>e[oc(t)]=n[t]),e}return n}function $c(e){return e.length===1&&e[0].type===Ma}function el(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function tl(e){return e&&(e.type===Pa||e.type===Ma&&e.children.length===0||e.type===Na&&e.children.trim()===``)}function nl(e){return e&&e.type===Na}function rl(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=[];return e.forEach(e=>{Array.isArray(e)?t.push(...e):e?.type===Ma?t.push(...rl(e.children)):t.push(e)}),t.filter(e=>!tl(e))}function il(e){if(e){let t=rl(e);return t.length?t:void 0}return e}function al(e){return Array.isArray(e)&&e.length===1&&(e=e[0]),e&&e.__v_isVNode&&typeof e.type!=`symbol`}function ol(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`default`;return t[n]??e[n]?.call(e)}var sl=U({compatConfig:{MODE:3},name:`ResizeObserver`,props:{disabled:Boolean,onResize:Function},emits:[`resize`],setup(e,t){let{slots:n}=t,r=Yt({width:0,height:0,offsetHeight:0,offsetWidth:0}),i=null,a=null,o=()=>{a&&=(a.disconnect(),null)},s=t=>{let{onResize:n}=e,i=t[0].target,{width:a,height:o}=i.getBoundingClientRect(),{offsetWidth:s,offsetHeight:c}=i,l=Math.floor(a),u=Math.floor(o);if(r.width!==l||r.height!==u||r.offsetWidth!==s||r.offsetHeight!==c){let e={width:l,height:u,offsetWidth:s,offsetHeight:c};g(r,e),n&&Promise.resolve().then(()=>{n(g(g({},e),{offsetWidth:s,offsetHeight:c}),i)})}},c=fo(),l=()=>{let{disabled:t}=e;if(t){o();return}let n=qc(c);n!==i&&(o(),i=n),!a&&n&&(a=new Rc(s),a.observe(n))};return $r(()=>{l()}),ti(()=>{l()}),ri(()=>{o()}),H(()=>e.disabled,()=>{l()},{flush:`post`}),()=>n.default?.call(n)[0]}}),cl=e=>setTimeout(e,16),ll=e=>clearTimeout(e);typeof window<`u`&&`requestAnimationFrame`in window&&(cl=e=>window.requestAnimationFrame(e),ll=e=>window.cancelAnimationFrame(e));var ul=0,dl=new Map;function fl(e){dl.delete(e)}function pl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;ul+=1;let n=ul;function r(t){if(t===0)fl(n),e();else{let e=cl(()=>{r(t-1)});dl.set(n,e)}}return r(t),n}pl.cancel=e=>{let t=dl.get(e);return fl(t),ll(t)};function ml(e){let t,n=n=>()=>{t=null,e(...n)},r=function(){t??=pl(n([...arguments]))};return r.cancel=()=>{pl.cancel(t),t=null},r}var hl=function(){return[...arguments]},gl=function(){return[...arguments]},_l=e=>{let t=e;return t.install=function(n){n.component(t.displayName||t.name,e)},e};function vl(){return{type:[Function,Array]}}function q(e){return{type:Object,default:e}}function J(e){return{type:Boolean,default:e}}function Y(e){return{type:Function,default:e}}function yl(e,t){return{validator:()=>!0,default:e}}function bl(){return{validator:()=>!0}}function xl(e){return{type:Array,default:e}}function X(e){return{type:String,default:e}}function Sl(e,t){return e?{type:e,default:t}:yl(t)}var Cl=!1;try{let e=Object.defineProperty({},"passive",{get(){Cl=!0}});window.addEventListener(`testPassive`,null,e),window.removeEventListener(`testPassive`,null,e)}catch{}var wl=Cl;function Tl(e,t,n,r){if(e&&e.addEventListener){let i=r;i===void 0&&wl&&(t===`touchstart`||t===`touchmove`||t===`wheel`)&&(i={passive:!1}),e.addEventListener(t,n,i)}return{remove:()=>{e&&e.removeEventListener&&e.removeEventListener(t,n)}}}function El(e){return e===window?{top:0,bottom:window.innerHeight}:e.getBoundingClientRect()}function Dl(e,t,n){if(n!==void 0&&t.top>e.top-n)return`${n+t.top}px`}function Ol(e,t,n){if(n!==void 0&&t.bottomt.target===e);n?n.affixList.push(t):(n={target:e,affixList:[t],eventHandlers:{}},Al.push(n),kl.forEach(t=>{n.eventHandlers[t]=Tl(e,t,()=>{n.affixList.forEach(e=>{let{lazyUpdatePosition:t}=e.exposed;t()},(t===`touchstart`||t===`touchmove`)&&wl?{passive:!0}:!1)})}))}function Ml(e){let t=Al.find(t=>{let n=t.affixList.some(t=>t===e);return n&&(t.affixList=t.affixList.filter(t=>t!==e)),n});t&&t.affixList.length===0&&(Al=Al.filter(e=>e!==t),kl.forEach(e=>{let n=t.eventHandlers[e];n&&n.remove&&n.remove()}))}var Nl=`anticon`,Pl=Symbol(`GlobalFormContextKey`),Fl=e=>{er(Pl,e)},Il=()=>tr(Pl,{validateMessages:G(()=>void 0)}),Ll=()=>({iconPrefixCls:String,getTargetContainer:{type:Function},getPopupContainer:{type:Function},prefixCls:String,getPrefixCls:{type:Function},renderEmpty:{type:Function},transformCellText:{type:Function},csp:q(),input:q(),autoInsertSpaceInButton:{type:Boolean,default:void 0},locale:q(),pageHeader:q(),componentSize:{type:String},componentDisabled:{type:Boolean,default:void 0},direction:{type:String,default:`ltr`},space:q(),virtual:{type:Boolean,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},form:q(),pagination:q(),theme:q(),select:q(),wave:q()}),Rl=Symbol(`configProvider`),zl={getPrefixCls:(e,t)=>t||(e?`ant-${e}`:`ant`),iconPrefixCls:G(()=>Nl),getPopupContainer:G(()=>()=>document.body),direction:G(()=>`ltr`)},Bl=()=>tr(Rl,zl),Vl=e=>er(Rl,e),Hl=Symbol(`DisabledContextKey`),Ul=()=>tr(Hl,B(void 0)),Wl=e=>{let t=Ul();return er(Hl,G(()=>e.value??t.value)),e},Gl={items_per_page:`/ page`,jump_to:`Go to`,jump_to_confirm:`confirm`,page:``,prev_page:`Previous Page`,next_page:`Next Page`,prev_5:`Previous 5 Pages`,next_5:`Next 5 Pages`,prev_3:`Previous 3 Pages`,next_3:`Next 3 Pages`},Kl={locale:`en_US`,today:`Today`,now:`Now`,backToToday:`Back to today`,ok:`Ok`,clear:`Clear`,month:`Month`,year:`Year`,timeSelect:`select time`,dateSelect:`select date`,weekSelect:`Choose a week`,monthSelect:`Choose a month`,yearSelect:`Choose a year`,decadeSelect:`Choose a decade`,yearFormat:`YYYY`,dateFormat:`M/D/YYYY`,dayFormat:`D`,dateTimeFormat:`M/D/YYYY HH:mm:ss`,monthBeforeYear:!0,previousMonth:`Previous month (PageUp)`,nextMonth:`Next month (PageDown)`,previousYear:`Last year (Control + left)`,nextYear:`Next year (Control + right)`,previousDecade:`Last decade`,nextDecade:`Next decade`,previousCentury:`Last century`,nextCentury:`Next century`},ql={placeholder:`Select time`,rangePlaceholder:[`Start time`,`End time`]},Jl={lang:g({placeholder:`Select date`,yearPlaceholder:`Select year`,quarterPlaceholder:`Select quarter`,monthPlaceholder:`Select month`,weekPlaceholder:`Select week`,rangePlaceholder:[`Start date`,`End date`],rangeYearPlaceholder:[`Start year`,`End year`],rangeQuarterPlaceholder:[`Start quarter`,`End quarter`],rangeMonthPlaceholder:[`Start month`,`End month`],rangeWeekPlaceholder:[`Start week`,`End week`]},Kl),timePickerLocale:g({},ql)},Yl=Jl,Xl="${label} is not a valid ${type}",Zl={locale:`en`,Pagination:Gl,DatePicker:Jl,TimePicker:ql,Calendar:Yl,global:{placeholder:`Please select`},Table:{filterTitle:`Filter menu`,filterConfirm:`OK`,filterReset:`Reset`,filterEmptyText:`No filters`,filterCheckall:`Select all items`,filterSearchPlaceholder:`Search in filters`,emptyText:`No data`,selectAll:`Select current page`,selectInvert:`Invert current page`,selectNone:`Clear all data`,selectionAll:`Select all data`,sortTitle:`Sort`,expand:`Expand row`,collapse:`Collapse row`,triggerDesc:`Click to sort descending`,triggerAsc:`Click to sort ascending`,cancelSort:`Click to cancel sorting`},Tour:{Next:`Next`,Previous:`Previous`,Finish:`Finish`},Modal:{okText:`OK`,cancelText:`Cancel`,justOkText:`OK`},Popconfirm:{okText:`OK`,cancelText:`Cancel`},Transfer:{titles:[``,``],searchPlaceholder:`Search here`,itemUnit:`item`,itemsUnit:`items`,remove:`Remove`,selectCurrent:`Select current page`,removeCurrent:`Remove current page`,selectAll:`Select all data`,removeAll:`Remove all data`,selectInvert:`Invert current page`},Upload:{uploading:`Uploading...`,removeFile:`Remove file`,uploadError:`Upload error`,previewFile:`Preview file`,downloadFile:`Download file`},Empty:{description:`No data`},Icon:{icon:`icon`},Text:{edit:`Edit`,copy:`Copy`,copied:`Copied`,expand:`Expand`},PageHeader:{back:`Back`},Form:{optional:`(optional)`,defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:Xl,method:Xl,array:Xl,object:Xl,number:Xl,date:Xl,boolean:Xl,integer:Xl,float:Xl,regexp:Xl,email:Xl,url:Xl,hex:Xl},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:`Preview`},QRCode:{expired:`QR code expired`,refresh:`Refresh`,scanned:`Scanned`}},Ql=U({compatConfig:{MODE:3},name:`LocaleReceiver`,props:{componentName:String,defaultLocale:{type:[Object,Function]},children:{type:Function}},setup(e,t){let{slots:n}=t,r=tr(`localeData`,{}),i=G(()=>{let{componentName:t=`global`,defaultLocale:n}=e,i=n||Zl[t||`global`],{antLocale:a}=r,o=t&&a?a[t]:{};return g(g({},typeof i==`function`?i():i),o||{})}),a=G(()=>{let{antLocale:e}=r,t=e&&e.locale;return e&&e.exist&&!t?Zl.locale:t});return()=>{let t=e.children||n.default,{antLocale:o}=r;return t?.(i.value,a.value,o)}}});function $l(e,t,n){let r=tr(`localeData`,{});return[G(()=>{let{antLocale:i}=r,a=fn(t)||Zl[e||`global`],o=e&&i?i[e]:{};return g(g(g({},typeof a==`function`?a():a),o||{}),fn(n)||{})})]}var eu=Ql;function tu(e){for(var t=0,n,r=0,i=e.length;i>=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var nu=`%`,ru=class{constructor(e){this.cache=new Map,this.instanceId=e}get(e){return this.cache.get(Array.isArray(e)?e.join(nu):e)||null}update(e,t){let n=Array.isArray(e)?e.join(nu):e,r=t(this.cache.get(n));r===null?this.cache.delete(n):this.cache.set(n,r)}},iu=`data-token-hash`,au=`data-css-hash`,ou=`__cssinjs_instance__`;function su(){let e=Math.random().toString(12).slice(2);if(typeof document<`u`&&document.head&&document.body){let t=document.body.querySelectorAll(`style[data-css-hash]`)||[],{firstChild:n}=document.head;Array.from(t).forEach(t=>{t[ou]=t.__cssinjs_instance__||e,t.__cssinjs_instance__===e&&document.head.insertBefore(t,n)});let r={};Array.from(document.querySelectorAll(`style[${au}]`)).forEach(t=>{var n;let i=t.getAttribute(au);r[i]?t.__cssinjs_instance__===e&&((n=t.parentNode)==null||n.removeChild(t)):r[i]=!0})}return new ru(e)}var cu=Symbol(`StyleContextKey`),lu=()=>{let e=fo(),t;if(e&&e.appContext){let n=e.appContext?.config?.globalProperties?.__ANTDV_CSSINJS_CACHE__;n?t=n:(t=su(),e.appContext.config.globalProperties&&(e.appContext.config.globalProperties.__ANTDV_CSSINJS_CACHE__=t))}else t=su();return t},uu={cache:su(),defaultCache:!0,hashPriority:`low`},du=()=>{let e=lu();return tr(cu,V(g(g({},uu),{cache:e})))},fu=e=>{let t=du(),n=V(g(g({},uu),{cache:su()}));return H([()=>fn(e),t],()=>{let r=g({},t.value),i=fn(e);Object.keys(i).forEach(e=>{let t=i[e];i[e]!==void 0&&(r[e]=t)});let{cache:a}=i;r.cache=r.cache||su(),r.defaultCache=!a&&t.value.defaultCache,n.value=r},{immediate:!0}),er(cu,n),n},pu=_l(U({name:`AStyleProvider`,inheritAttrs:!1,props:{autoClear:J(),mock:X(),cache:q(),defaultCache:J(),hashPriority:X(),container:Sl(),ssrInline:J(),transformers:xl(),linters:xl()},setup(e,t){let{slots:n}=t;return fu(e),()=>n.default?.call(n)}}));function mu(e,t,n,r){let i=du(),a=V(``),o=V();ar(()=>{a.value=[e,...t.value].join(`%`)});let s=e=>{i.value.cache.update(e,e=>{let[t=0,n]=e||[];return t-1==0?(r?.(n,!1),null):[t-1,n]})};return H(a,(e,t)=>{t&&s(t),i.value.cache.update(e,e=>{let[t=0,r]=e||[],i=r||n();return[t+1,i]}),o.value=i.value.cache.get(a.value)[1]},{immediate:!0}),ni(()=>{s(a.value)}),o}function hu(){return!!(typeof window<`u`&&window.document&&window.document.createElement)}function gu(e,t){return e&&e.contains?e.contains(t):!1}var _u=`data-vc-order`,vu=`vc-util-key`,yu=new Map;function bu(){let{mark:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e?e.startsWith(`data-`)?e:`data-${e}`:vu}function xu(e){return e.attachTo?e.attachTo:document.querySelector(`head`)||document.body}function Su(e){return e===`queue`?`prependQueue`:e?`prepend`:`append`}function Cu(e){return Array.from((yu.get(e)||e).children).filter(e=>e.tagName===`STYLE`)}function wu(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!hu())return null;let{csp:n,prepend:r}=t,i=document.createElement(`style`);i.setAttribute(_u,Su(r)),n?.nonce&&(i.nonce=n?.nonce),i.innerHTML=e;let a=xu(t),{firstChild:o}=a;if(r){if(r===`queue`){let e=Cu(a).filter(e=>[`prepend`,`prependQueue`].includes(e.getAttribute(_u)));if(e.length)return a.insertBefore(i,e[e.length-1].nextSibling),i}a.insertBefore(i,o)}else a.appendChild(i);return i}function Tu(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Cu(xu(t)).find(n=>n.getAttribute(bu(t))===e)}function Eu(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=Tu(e,t);n&&xu(t).removeChild(n)}function Du(e,t){let n=yu.get(e);if(!n||!gu(document,n)){let n=wu(``,t),{parentNode:r}=n;yu.set(e,r),e.removeChild(n)}}function Ou(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Du(xu(n),n);let r=Tu(t,n);if(r)return n.csp?.nonce&&r.nonce!==n.csp?.nonce&&(r.nonce=n.csp?.nonce),r.innerHTML!==e&&(r.innerHTML=e),r;let i=wu(e,n);return i.setAttribute(bu(n),t),i}function ku(e,t){if(e.length!==t.length)return!1;for(let n=0;n1&&arguments[1]!==void 0&&arguments[1],n={map:this.cache};return e.forEach(e=>{n=n?(n?.map)?.get(e):void 0}),n?.value&&t&&(n.value[1]=this.cacheCallTimes++),n?.value}get(e){return this.internalGet(e,!0)?.[0]}has(e){return!!this.internalGet(e)}set(t,n){if(!this.has(t)){if(this.size()+1>e.MAX_CACHE_SIZE+e.MAX_CACHE_OFFSET){let[e]=this.keys.reduce((e,t)=>{let[,n]=e;return this.internalGet(t)[1]{if(i===t.length-1)r.set(e,{value:[n,this.cacheCallTimes++]});else{let t=r.get(e);t?t.map||=new Map:r.set(e,{map:new Map}),r=r.get(e).map}})}deleteByPath(e,t){let n=e.get(t[0]);if(t.length===1)return n.map?e.set(t[0],{map:n.map}):e.delete(t[0]),n.value?.[0];let r=this.deleteByPath(n.map,t.slice(1));return(!n.map||n.map.size===0)&&!n.value&&e.delete(t[0]),r}delete(e){if(this.has(e))return this.keys=this.keys.filter(t=>!ku(t,e)),this.deleteByPath(this.cache,e)}};Au.MAX_CACHE_SIZE=20,Au.MAX_CACHE_OFFSET=5;var ju={};function Mu(e,t){}function Nu(e,t){}function Pu(e,t,n){!t&&!ju[n]&&(e(!1,n),ju[n]=!0)}function Fu(e,t){Pu(Mu,e,t)}function Iu(e,t){Pu(Nu,e,t)}function Lu(){}var Ru=Lu,zu=0,Bu=class{constructor(e){this.derivatives=Array.isArray(e)?e:[e],this.id=zu,e.length===0&&Ru(e.length>0,`[Ant Design Vue CSS-in-JS] Theme should have at least one derivative function.`),zu+=1}getDerivativeToken(e){return this.derivatives.reduce((t,n)=>n(e,t),void 0)}},Vu=new Au;function Hu(e){let t=Array.isArray(e)?e:[e];return Vu.has(t)||Vu.set(t,new Bu(t)),Vu.get(t)}var Uu=new WeakMap;function Wu(e){let t=Uu.get(e)||``;return t||(Object.keys(e).forEach(n=>{let r=e[n];t+=n,r instanceof Bu?t+=r.id:t+=r&&typeof r==`object`?Wu(r):r}),Uu.set(e,t)),t}function Gu(e,t){return tu(`${t}_${Wu(e)}`)}var Ku=`random-${Date.now()}-${Math.random()}`.replace(/\./g,``),qu=`_bAmBoO_`;function Ju(e,t,n){var r;if(hu()){Ou(e,Ku);let i=document.createElement(`div`);i.style.position=`fixed`,i.style.left=`0`,i.style.top=`0`,t?.(i),document.body.appendChild(i);let a=n?n(i):getComputedStyle(i).content?.includes(qu);return(r=i.parentNode)==null||r.removeChild(i),Eu(Ku),a}return!1}var Yu=void 0;function Xu(){return Yu===void 0&&(Yu=Ju(`@layer ${Ku} { .${Ku} { content: "${qu}"!important; } }`,e=>{e.className=Ku})),Yu}var Zu={},Qu=`css`,$u=new Map;function ed(e){$u.set(e,($u.get(e)||0)+1)}function td(e,t){typeof document<`u`&&document.querySelectorAll(`style[${iu}="${e}"]`).forEach(e=>{var n;e.__cssinjs_instance__===t&&((n=e.parentNode)==null||n.removeChild(e))})}var nd=0;function rd(e,t){$u.set(e,($u.get(e)||0)-1);let n=Array.from($u.keys()),r=n.filter(e=>($u.get(e)||0)<=0);n.length-r.length>nd&&r.forEach(e=>{td(e,t),$u.delete(e)})}var id=(e,t,n,r)=>{let i=n.getDerivativeToken(e),a=g(g({},i),t);return r&&(a=r(a)),a};function ad(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:B({}),r=du(),i=G(()=>g({},...t.value)),a=G(()=>Wu(i.value)),o=G(()=>Wu(n.value.override||Zu));return mu(`token`,G(()=>[n.value.salt||``,e.value.id,a.value,o.value]),()=>{let{salt:t=``,override:r=Zu,formatToken:a,getComputedToken:o}=n.value,s=o?o(i.value,r,e.value):id(i.value,r,e.value,a),c=Gu(s,t);s._tokenKey=c,ed(c);let l=`${Qu}-${tu(c)}`;return s._hashId=l,[s,l]},e=>{rd(e[0]._tokenKey,r.value?.cache.instanceId)})}var od={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},sd=`comm`,cd=`rule`,ld=`decl`,Dee=`@import`,Oee=`@namespace`,kee=`@keyframes`,Aee=`@layer`,jee=Math.abs,ud=String.fromCharCode;function dd(e){return e.trim()}function fd(e,t,n){return e.replace(t,n)}function pd(e,t){return e.charCodeAt(t)|0}function md(e,t,n){return e.slice(t,n)}function hd(e){return e.length}function Mee(e){return e.length}function gd(e,t){return t.push(e),e}var _d=1,vd=1,yd=0,bd=0,xd=0,Sd=``;function Cd(e,t,n,r,i,a,o,s){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:_d,column:vd,length:o,return:``,siblings:s}}function Nee(){return xd}function Pee(){return xd=bd>0?pd(Sd,--bd):0,vd--,xd===10&&(vd=1,_d--),xd}function wd(){return xd=bd2||Od(xd)>3?``:` `}function Ree(e,t){for(;--t&&wd()&&!(xd<48||xd>102||xd>57&&xd<65||xd>70&&xd<97););return Dd(e,Ed()+(t<6&&Td()==32&&wd()==32))}function Ad(e){for(;wd();)switch(xd){case e:return bd;case 34:case 39:e!==34&&e!==39&&Ad(xd);break;case 40:e===41&&Ad(e);break;case 92:wd()}return bd}function zee(e,t){for(;wd()&&e+xd!==57&&(e+xd!==84||Td()!==47););return`/*`+Dd(t,bd-1)+`*`+ud(e===47?e:wd())}function Bee(e){for(;!Od(Td());)wd();return Dd(e,bd)}function Vee(e){return Iee(jd(``,null,null,null,[``],e=Fee(e),0,[0],e))}function jd(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,y=0,b=``,x=i,S=a,C=r,w=b;g;)switch(m=y,y=wd()){case 40:m!=108&&pd(w,d-1)==58?(v++,w+=`(`):w+=kd(y);break;case 41:v--,w+=`)`;break;case 34:case 39:case 91:w+=kd(y);break;case 9:case 10:case 13:case 32:if(v>0){w+=ud(y);break}w+=Lee(m);break;case 92:w+=Ree(Ed()-1,7);continue;case 47:switch(Td()){case 42:case 47:gd(Hee(zee(wd(),Ed()),t,n,c),c),(Od(m||1)==5||Od(Td()||1)==5)&&hd(w)&&md(w,-1,void 0)!==` `&&(w+=` `);break;default:w+=`/`}break;case 123*h:s[l++]=hd(w)*_;case 125*h:case 59:case 0:if(v>0&&y){w+=ud(y);break}switch(y){case 0:case 125:g=0;case 59+u:_==-1&&(w=fd(w,/\f/g,``)),p>0&&(hd(w)-d||h===0)&&gd(p>32?Nd(w+`;`,r,n,d-1,c):Nd(fd(w,` `,``)+`;`,r,n,d-2,c),c);break;case 59:w+=`;`;default:if(gd(C=Md(w,t,n,l,u,i,s,b,x=[],S=[],d,a),a),y===123){if(u===0)jd(w,t,C,C,x,a,d,s,S);else{switch(f){case 99:if(pd(w,3)===110)break;case 108:if(pd(w,2)===97)break;default:u=0;case 100:case 109:case 115:}u?jd(e,C,C,r&&gd(Md(e,C,C,0,0,i,s,b,i,x=[],d,S),S),i,S,d,s,r?x:S):jd(w,C,C,C,[``],S,0,s,S)}}}l=u=p=0,h=_=1,b=w=``,d=o;break;case 58:d=1+hd(w),p=m;default:if(h<1){if(y==123)--h;else if(y==125&&h++==0&&Pee()==125)continue}switch(w+=ud(y),y*h){case 38:_=u>0?1:(w+=`\f`,-1);break;case 44:if(v>0)break;s[l++]=(hd(w)-1)*_,_=1;break;case 64:Td()===45&&(w+=kd(wd())),f=Td(),u=d=hd(b=w+=Bee(Ed())),y++;break;case 45:m===45&&hd(w)==2&&(h=0)}}return a}function Md(e,t,n,r,i,a,o,s,c,l,u,d){for(var f=i-1,p=i===0?a:[``],m=Mee(p),h=0,g=0,_=0;h0?p[v]+` `+y:fd(y,/&\f/g,p[v])))&&(c[_++]=b);return Cd(e,t,n,i===0?cd:s,c,l,u,d)}function Hee(e,t,n,r){return Cd(e,t,n,sd,ud(Nee()),md(e,2,-2),0,r)}function Nd(e,t,n,r,i){return Cd(e,t,n,ld,md(e,0,r),md(e,r+1,-1),r,i)}function Pd(e,t){for(var n=``,r=0;r `)}`:``}`)}function Wee(e){return(e.match(/:not\(([^)]*)\)/)?.[1]||``).split(/(\[[^[]*])|(?=[.#])/).filter(e=>e).length>1}function Gee(e){return e.parentSelectors.reduce((e,t)=>e?t.includes(`&`)?t.replace(/&/g,e):`${e} ${t}`:t,``)}var Kee=(e,t,n)=>{let r=Gee(n).match(/:not\([^)]*\)/g)||[];r.length>0&&r.some(Wee)&&Fd(`Concat ':not' selector not support in legacy browsers.`,n)},qee=(e,t,n)=>{switch(e){case`marginLeft`:case`marginRight`:case`paddingLeft`:case`paddingRight`:case`left`:case`right`:case`borderLeft`:case`borderLeftWidth`:case`borderLeftStyle`:case`borderLeftColor`:case`borderRight`:case`borderRightWidth`:case`borderRightStyle`:case`borderRightColor`:case`borderTopLeftRadius`:case`borderTopRightRadius`:case`borderBottomLeftRadius`:case`borderBottomRightRadius`:Fd(`You seem to be using non-logical property '${e}' which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n);return;case`margin`:case`padding`:case`borderWidth`:case`borderStyle`:if(typeof t==`string`){let r=t.split(` `).map(e=>e.trim());r.length===4&&r[1]!==r[3]&&Fd(`You seem to be using '${e}' property with different left ${e} and right ${e}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n)}return;case`clear`:case`textAlign`:(t===`left`||t===`right`)&&Fd(`You seem to be using non-logical value '${t}' of ${e}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n);return;case`borderRadius`:typeof t==`string`&&t.split(`/`).map(e=>e.trim()).reduce((e,t)=>{if(e)return e;let n=t.split(` `).map(e=>e.trim());return n.length>=2&&n[0]!==n[1]||n.length===3&&n[1]!==n[2]||n.length===4&&n[2]!==n[3]||e},!1)&&Fd(`You seem to be using non-logical value '${t}' of ${e}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n);return}},Jee=(e,t,n)=>{n.parentSelectors.some(e=>e.split(`,`).some(e=>e.split(`&`).length>2))&&Fd("Should not use more than one `&` in a selector.",n)},Id=`data-ant-cssinjs-cache-path`,Yee=`_FILE_STYLE__`;function Ld(e){return Object.keys(e).map(t=>`${t}:${e[t]}`).join(`;`)}var Rd,zd=!0;function Bd(){var e;if(!Rd&&(Rd={},hu())){let t=document.createElement(`div`);t.className=Id,t.style.position=`fixed`,t.style.visibility=`hidden`,t.style.top=`-9999px`,document.body.appendChild(t);let n=getComputedStyle(t).content||``;n=n.replace(/^"/,``).replace(/"$/,``),n.split(`;`).forEach(e=>{let[t,n]=e.split(`:`);Rd[t]=n});let r=document.querySelector(`style[${Id}]`);r&&(zd=!1,(e=r.parentNode)==null||e.removeChild(r)),document.body.removeChild(t)}}function Vd(e){return Bd(),!!Rd[e]}function Hd(e){let t=Rd[e],n=null;if(t&&hu()){if(zd)n=Yee;else{let t=document.querySelector(`style[${au}="${Rd[e]}"]`);t?n=t.innerHTML:delete Rd[e]}}return[n,t]}var Ud=hu(),Wd=`_skip_check_`,Gd=`_multi_value_`;function Kd(e){return Pd(Vee(e),Uee).replace(/\{%%%\:[^;];}/g,`;`)}function qd(e){return typeof e==`object`&&e&&(Wd in e||Gd in e)}function Jd(e,t,n){if(!t)return e;let r=`.${t}`,i=n===`low`?`:where(${r})`:r;return e.split(`,`).map(e=>{let t=e.trim().split(/\s+/),n=t[0]||``,r=n.match(/^\w+/)?.[0]||``;return n=`${r}${i}${n.slice(r.length)}`,[n,...t.slice(1)].join(` `)}).join(`,`)}var Yd=new Set,Xd=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{root:n,injectHash:r,parentSelectors:i}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]},{hashId:a,layer:o,path:s,hashPriority:c,transformers:l=[],linters:u=[]}=t,d=``,f={};function p(e){let n=e.getName(a);if(!f[n]){let[r]=Xd(e.style,t,{root:!1,parentSelectors:i});f[n]=`@keyframes ${e.getName(a)}${r}`}}function m(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.forEach(e=>{Array.isArray(e)?m(e,t):e&&t.push(e)}),t}if(m(Array.isArray(e)?e:[e]).forEach(e=>{let o=typeof e==`string`&&!n?{}:e;if(typeof o==`string`)d+=`${o}\n`;else if(o._keyframe)p(o);else{let e=l.reduce((e,t)=>(t?.visit)?.call(t,e)||e,o);Object.keys(e).forEach(o=>{let s=e[o];if(typeof s==`object`&&s&&(o!==`animationName`||!s._keyframe)&&!qd(s)){let e=!1,l=o.trim(),u=!1;(n||r)&&a?l.startsWith(`@`)?e=!0:l=Jd(o,a,c):n&&!a&&(l===`&`||l===``)&&(l=``,u=!0);let[p,m]=Xd(s,t,{root:u,injectHash:e,parentSelectors:[...i,l]});f=g(g({},f),m),d+=`${l}${p}`}else{function e(e,t){let n=e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),r=t;!od[e]&&typeof r==`number`&&r!==0&&(r=`${r}px`),e===`animationName`&&t?._keyframe&&(p(t),r=t.getName(a)),d+=`${n}:${r};`}let t=s?.value??s;typeof s==`object`&&s?.[Gd]&&Array.isArray(t)?t.forEach(t=>{e(o,t)}):e(o,t)}})}}),!n)d=`{${d}}`;else if(o&&Xu()){let e=o.split(`,`);d=`@layer ${e[e.length-1].trim()} {${d}}`,e.length>1&&(d=`@layer ${o}{%%%:%}${d}`)}return[d,f]};function Zd(e,t){return tu(`${e.join(`%`)}${t}`)}function Qd(e,t){let n=du(),r=G(()=>e.value.token._tokenKey),i=G(()=>[r.value,...e.value.path]),a=Ud;return mu(`style`,i,()=>{let{path:o,hashId:s,layer:c,nonce:l,clientOnly:u,order:d=0}=e.value,f=i.value.join(`|`);if(Vd(f)){let[e,t]=Hd(f);if(e)return[e,r.value,t,{},u,d]}let p=t(),{hashPriority:m,container:h,transformers:g,linters:_,cache:v}=n.value,[y,b]=Xd(p,{hashId:s,hashPriority:m,layer:c,path:o.join(`-`),transformers:g,linters:_}),x=Kd(y),S=Zd(i.value,x);if(a){let e={mark:au,prepend:`queue`,attachTo:h,priority:d},t=typeof l==`function`?l():l;t&&(e.csp={nonce:t});let n=Ou(x,S,e);n[ou]=v.instanceId,n.setAttribute(iu,r.value),Object.keys(b).forEach(e=>{Yd.has(e)||(Yd.add(e),Ou(Kd(b[e]),`_effect-${e}`,{mark:au,prepend:`queue`,attachTo:h}))})}return[x,r.value,S,b,u,d]},(e,t)=>{let[,,r]=e;(t||n.value.autoClear)&&Ud&&Eu(r,{mark:au})}),e=>e}function $d(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=Array.from(e.cache.keys()).filter(e=>e.startsWith(`style%`)),r={},i={},a=``;function o(e,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=g(g({},i),{[iu]:n,[au]:r}),o=Object.keys(a).map(e=>{let t=a[e];return t?`${e}="${t}"`:null}).filter(e=>e).join(` `);return t?e:``}return n.map(t=>{let n=t.slice(6).replace(/%/g,`|`),[a,s,c,l,u,d]=e.cache.get(t)[1];if(u)return null;let f={"data-vc-order":`prependQueue`,"data-vc-priority":`${d}`},p=o(a,s,c,f);return i[n]=c,l&&Object.keys(l).forEach(e=>{r[e]||(r[e]=!0,p+=o(Kd(l[e]),s,`_effect-${e}`,f))}),[d,p]}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{let[,t]=e;a+=t}),a+=o(`.${Id}{content:"${Ld(i)}";}`,void 0,void 0,{[Id]:Id}),a}var ef=class{constructor(e,t){this._keyframe=!0,this.name=e,this.style=t}getName(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e?`${e}-${this.name}`:this.name}};function tf(e){if(typeof e==`number`)return[e];let t=String(e).split(/\s+/),n=``,r=0;return t.reduce((e,t)=>(t.includes(`(`)?(n+=t,r+=t.split(`(`).length-1):t.includes(`)`)?(n+=` ${t}`,r-=t.split(`)`).length-1,r===0&&(e.push(n),n=``)):r>0?n+=` ${t}`:e.push(t),e),[])}function nf(e){return e.notSplit=!0,e}var rf={inset:[`top`,`right`,`bottom`,`left`],insetBlock:[`top`,`bottom`],insetBlockStart:[`top`],insetBlockEnd:[`bottom`],insetInline:[`left`,`right`],insetInlineStart:[`left`],insetInlineEnd:[`right`],marginBlock:[`marginTop`,`marginBottom`],marginBlockStart:[`marginTop`],marginBlockEnd:[`marginBottom`],marginInline:[`marginLeft`,`marginRight`],marginInlineStart:[`marginLeft`],marginInlineEnd:[`marginRight`],paddingBlock:[`paddingTop`,`paddingBottom`],paddingBlockStart:[`paddingTop`],paddingBlockEnd:[`paddingBottom`],paddingInline:[`paddingLeft`,`paddingRight`],paddingInlineStart:[`paddingLeft`],paddingInlineEnd:[`paddingRight`],borderBlock:nf([`borderTop`,`borderBottom`]),borderBlockStart:nf([`borderTop`]),borderBlockEnd:nf([`borderBottom`]),borderInline:nf([`borderLeft`,`borderRight`]),borderInlineStart:nf([`borderLeft`]),borderInlineEnd:nf([`borderRight`]),borderBlockWidth:[`borderTopWidth`,`borderBottomWidth`],borderBlockStartWidth:[`borderTopWidth`],borderBlockEndWidth:[`borderBottomWidth`],borderInlineWidth:[`borderLeftWidth`,`borderRightWidth`],borderInlineStartWidth:[`borderLeftWidth`],borderInlineEndWidth:[`borderRightWidth`],borderBlockStyle:[`borderTopStyle`,`borderBottomStyle`],borderBlockStartStyle:[`borderTopStyle`],borderBlockEndStyle:[`borderBottomStyle`],borderInlineStyle:[`borderLeftStyle`,`borderRightStyle`],borderInlineStartStyle:[`borderLeftStyle`],borderInlineEndStyle:[`borderRightStyle`],borderBlockColor:[`borderTopColor`,`borderBottomColor`],borderBlockStartColor:[`borderTopColor`],borderBlockEndColor:[`borderBottomColor`],borderInlineColor:[`borderLeftColor`,`borderRightColor`],borderInlineStartColor:[`borderLeftColor`],borderInlineEndColor:[`borderRightColor`],borderStartStartRadius:[`borderTopLeftRadius`],borderStartEndRadius:[`borderTopRightRadius`],borderEndStartRadius:[`borderBottomLeftRadius`],borderEndEndRadius:[`borderBottomRightRadius`]};function af(e){return{_skip_check_:!0,value:e}}var of={visit:e=>{let t={};return Object.keys(e).forEach(n=>{let r=e[n],i=rf[n];if(i&&(typeof r==`number`||typeof r==`string`)){let e=tf(r);i.length&&i.notSplit?i.forEach(e=>{t[e]=af(r)}):i.length===1?t[i[0]]=af(r):i.length===2?i.forEach((n,r)=>{t[n]=af(e[r]??e[0])}):i.length===4?i.forEach((n,r)=>{t[n]=af(e[r]??e[r-2]??e[0])}):t[n]=r}else t[n]=r}),t}},sf=/url\([^)]+\)|var\([^)]+\)|(\d*\.?\d+)px/g;function cf(e,t){let n=10**(t+1),r=Math.floor(e*n);return Math.round(r/10)*10/n}var lf={Theme:Bu,createTheme:Hu,useStyleRegister:Qd,useCacheToken:ad,createCache:su,useStyleInject:du,useStyleProvider:fu,Keyframes:ef,extractStyle:$d,legacyLogicalPropertiesTransformer:of,px2remTransformer:function(){let{rootValue:e=16,precision:t=5,mediaQuery:n=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=(n,r)=>{if(!r)return n;let i=parseFloat(r);return i<=1?n:`${cf(i/e,t)}rem`};return{visit:e=>{let t=g({},e);return Object.entries(e).forEach(e=>{let[i,a]=e;if(typeof a==`string`&&a.includes(`px`)){let e=a.replace(sf,r);t[i]=e}!od[i]&&typeof a==`number`&&a!==0&&(t[i]=`${a}px`.replace(sf,r));let o=i.trim();if(o.startsWith(`@`)&&o.includes(`px`)&&n){let e=i.replace(sf,r);t[e]=t[i],delete t[i]}}),t}}},logicalPropertiesLinter:qee,legacyNotSelectorLinter:Kee,parentSelectorLinter:Jee,StyleProvider:pu},uf=`4.2.6`,df=[`blue`,`purple`,`cyan`,`green`,`magenta`,`pink`,`red`,`orange`,`yellow`,`volcano`,`geekblue`,`lime`,`gold`];function ff(e,t){mf(e)&&(e=`100%`);var n=hf(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(e=t===360?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t)),e)}function pf(e){return Math.min(1,Math.max(0,e))}function mf(e){return typeof e==`string`&&e.indexOf(`.`)!==-1&&parseFloat(e)===1}function hf(e){return typeof e==`string`&&e.indexOf(`%`)!==-1}function gf(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function _f(e){return e<=1?`${Number(e)*100}%`:e}function vf(e){return e.length===1?`0`+e:String(e)}function yf(e,t,n){return{r:ff(e,255)*255,g:ff(t,255)*255,b:ff(n,255)*255}}function bf(e,t,n){e=ff(e,255),t=ff(t,255),n=ff(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=0,s=(r+i)/2;if(r===i)o=0,a=0;else{var c=r-i;switch(o=s>.5?c/(2-r-i):c/(r+i),r){case e:a=(t-n)/c+(t1&&--n,n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Sf(e,t,n){var r,i,a;if(e=ff(e,360),t=ff(t,100),n=ff(n,100),t===0)i=n,a=n,r=n;else{var o=n<.5?n*(1+t):n+t-n*t,s=2*n-o;r=xf(s,o,e+1/3),i=xf(s,o,e),a=xf(s,o,e-1/3)}return{r:r*255,g:i*255,b:a*255}}function Cf(e,t,n){e=ff(e,255),t=ff(t,255),n=ff(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=r,s=r-i,c=r===0?0:s/r;if(r===i)a=0;else{switch(r){case e:a=(t-n)/s+(t>16,g:(e&65280)>>8,b:e&255}}var jf={aliceblue:`#f0f8ff`,antiquewhite:`#faebd7`,aqua:`#00ffff`,aquamarine:`#7fffd4`,azure:`#f0ffff`,beige:`#f5f5dc`,bisque:`#ffe4c4`,black:`#000000`,blanchedalmond:`#ffebcd`,blue:`#0000ff`,blueviolet:`#8a2be2`,brown:`#a52a2a`,burlywood:`#deb887`,cadetblue:`#5f9ea0`,chartreuse:`#7fff00`,chocolate:`#d2691e`,coral:`#ff7f50`,cornflowerblue:`#6495ed`,cornsilk:`#fff8dc`,crimson:`#dc143c`,cyan:`#00ffff`,darkblue:`#00008b`,darkcyan:`#008b8b`,darkgoldenrod:`#b8860b`,darkgray:`#a9a9a9`,darkgreen:`#006400`,darkgrey:`#a9a9a9`,darkkhaki:`#bdb76b`,darkmagenta:`#8b008b`,darkolivegreen:`#556b2f`,darkorange:`#ff8c00`,darkorchid:`#9932cc`,darkred:`#8b0000`,darksalmon:`#e9967a`,darkseagreen:`#8fbc8f`,darkslateblue:`#483d8b`,darkslategray:`#2f4f4f`,darkslategrey:`#2f4f4f`,darkturquoise:`#00ced1`,darkviolet:`#9400d3`,deeppink:`#ff1493`,deepskyblue:`#00bfff`,dimgray:`#696969`,dimgrey:`#696969`,dodgerblue:`#1e90ff`,firebrick:`#b22222`,floralwhite:`#fffaf0`,forestgreen:`#228b22`,fuchsia:`#ff00ff`,gainsboro:`#dcdcdc`,ghostwhite:`#f8f8ff`,goldenrod:`#daa520`,gold:`#ffd700`,gray:`#808080`,green:`#008000`,greenyellow:`#adff2f`,grey:`#808080`,honeydew:`#f0fff0`,hotpink:`#ff69b4`,indianred:`#cd5c5c`,indigo:`#4b0082`,ivory:`#fffff0`,khaki:`#f0e68c`,lavenderblush:`#fff0f5`,lavender:`#e6e6fa`,lawngreen:`#7cfc00`,lemonchiffon:`#fffacd`,lightblue:`#add8e6`,lightcoral:`#f08080`,lightcyan:`#e0ffff`,lightgoldenrodyellow:`#fafad2`,lightgray:`#d3d3d3`,lightgreen:`#90ee90`,lightgrey:`#d3d3d3`,lightpink:`#ffb6c1`,lightsalmon:`#ffa07a`,lightseagreen:`#20b2aa`,lightskyblue:`#87cefa`,lightslategray:`#778899`,lightslategrey:`#778899`,lightsteelblue:`#b0c4de`,lightyellow:`#ffffe0`,lime:`#00ff00`,limegreen:`#32cd32`,linen:`#faf0e6`,magenta:`#ff00ff`,maroon:`#800000`,mediumaquamarine:`#66cdaa`,mediumblue:`#0000cd`,mediumorchid:`#ba55d3`,mediumpurple:`#9370db`,mediumseagreen:`#3cb371`,mediumslateblue:`#7b68ee`,mediumspringgreen:`#00fa9a`,mediumturquoise:`#48d1cc`,mediumvioletred:`#c71585`,midnightblue:`#191970`,mintcream:`#f5fffa`,mistyrose:`#ffe4e1`,moccasin:`#ffe4b5`,navajowhite:`#ffdead`,navy:`#000080`,oldlace:`#fdf5e6`,olive:`#808000`,olivedrab:`#6b8e23`,orange:`#ffa500`,orangered:`#ff4500`,orchid:`#da70d6`,palegoldenrod:`#eee8aa`,palegreen:`#98fb98`,paleturquoise:`#afeeee`,palevioletred:`#db7093`,papayawhip:`#ffefd5`,peachpuff:`#ffdab9`,peru:`#cd853f`,pink:`#ffc0cb`,plum:`#dda0dd`,powderblue:`#b0e0e6`,purple:`#800080`,rebeccapurple:`#663399`,red:`#ff0000`,rosybrown:`#bc8f8f`,royalblue:`#4169e1`,saddlebrown:`#8b4513`,salmon:`#fa8072`,sandybrown:`#f4a460`,seagreen:`#2e8b57`,seashell:`#fff5ee`,sienna:`#a0522d`,silver:`#c0c0c0`,skyblue:`#87ceeb`,slateblue:`#6a5acd`,slategray:`#708090`,slategrey:`#708090`,snow:`#fffafa`,springgreen:`#00ff7f`,steelblue:`#4682b4`,tan:`#d2b48c`,teal:`#008080`,thistle:`#d8bfd8`,tomato:`#ff6347`,turquoise:`#40e0d0`,violet:`#ee82ee`,wheat:`#f5deb3`,white:`#ffffff`,whitesmoke:`#f5f5f5`,yellow:`#ffff00`,yellowgreen:`#9acd32`};function Mf(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,a=null,o=!1,s=!1;return typeof e==`string`&&(e=Lf(e)),typeof e==`object`&&(Rf(e.r)&&Rf(e.g)&&Rf(e.b)?(t=yf(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)===`%`?`prgb`:`rgb`):Rf(e.h)&&Rf(e.s)&&Rf(e.v)?(r=_f(e.s),i=_f(e.v),t=wf(e.h,r,i),o=!0,s=`hsv`):Rf(e.h)&&Rf(e.s)&&Rf(e.l)&&(r=_f(e.s),a=_f(e.l),t=Sf(e.h,r,a),o=!0,s=`hsl`),Object.prototype.hasOwnProperty.call(e,`a`)&&(n=e.a)),n=gf(n),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var Nf=`(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)`,Pf=`[\\s|\\(]+(${Nf})[,|\\s]+(${Nf})[,|\\s]+(${Nf})\\s*\\)?`,Ff=`[\\s|\\(]+(${Nf})[,|\\s]+(${Nf})[,|\\s]+(${Nf})[,|\\s]+(${Nf})\\s*\\)?`,If={CSS_UNIT:new RegExp(Nf),rgb:RegExp(`rgb`+Pf),rgba:RegExp(`rgba`+Ff),hsl:RegExp(`hsl`+Pf),hsla:RegExp(`hsla`+Ff),hsv:RegExp(`hsv`+Pf),hsva:RegExp(`hsva`+Ff),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Lf(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(jf[e])e=jf[e],t=!0;else if(e===`transparent`)return{r:0,g:0,b:0,a:0,format:`name`};var n=If.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=If.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=If.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=If.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=If.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=If.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=If.hex8.exec(e),n?{r:kf(n[1]),g:kf(n[2]),b:kf(n[3]),a:Of(n[4]),format:t?`name`:`hex8`}:(n=If.hex6.exec(e),n?{r:kf(n[1]),g:kf(n[2]),b:kf(n[3]),format:t?`name`:`hex`}:(n=If.hex4.exec(e),n?{r:kf(n[1]+n[1]),g:kf(n[2]+n[2]),b:kf(n[3]+n[3]),a:Of(n[4]+n[4]),format:t?`name`:`hex8`}:(n=If.hex3.exec(e),n?{r:kf(n[1]+n[1]),g:kf(n[2]+n[2]),b:kf(n[3]+n[3]),format:t?`name`:`hex`}:!1)))))))))}function Rf(e){return!!If.CSS_UNIT.exec(String(e))}var zf=function(){function e(t,n){if(t===void 0&&(t=``),n===void 0&&(n={}),t instanceof e)return t;typeof t==`number`&&(t=Af(t)),this.originalInput=t;var r=Mf(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=n.format??r.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t,n,r,i=e.r/255,a=e.g/255,o=e.b/255;return t=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,n=a<=.03928?a/12.92:((a+.055)/1.055)**2.4,r=o<=.03928?o/12.92:((o+.055)/1.055)**2.4,.2126*t+.7152*n+.0722*r},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=gf(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return this.toHsl().s===0},e.prototype.toHsv=function(){var e=Cf(this.r,this.g,this.b);return{h:e.h*360,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=Cf(this.r,this.g,this.b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.v*100);return this.a===1?`hsv(${t}, ${n}%, ${r}%)`:`hsva(${t}, ${n}%, ${r}%, ${this.roundA})`},e.prototype.toHsl=function(){var e=bf(this.r,this.g,this.b);return{h:e.h*360,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=bf(this.r,this.g,this.b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.l*100);return this.a===1?`hsl(${t}, ${n}%, ${r}%)`:`hsla(${t}, ${n}%, ${r}%, ${this.roundA})`},e.prototype.toHex=function(e){return e===void 0&&(e=!1),Tf(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return e===void 0&&(e=!1),`#`+this.toHex(e)},e.prototype.toHex8=function(e){return e===void 0&&(e=!1),Ef(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return e===void 0&&(e=!1),`#`+this.toHex8(e)},e.prototype.toHexShortString=function(e){return e===void 0&&(e=!1),this.a===1?this.toHexString(e):this.toHex8String(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return this.a===1?`rgb(${e}, ${t}, ${n})`:`rgba(${e}, ${t}, ${n}, ${this.roundA})`},e.prototype.toPercentageRgb=function(){var e=function(e){return`${Math.round(ff(e,255)*100)}%`};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(ff(e,255)*100)};return this.a===1?`rgb(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%)`:`rgba(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%, ${this.roundA})`},e.prototype.toName=function(){if(this.a===0)return`transparent`;if(this.a<1)return!1;for(var e=`#`+Tf(this.r,this.g,this.b,!1),t=0,n=Object.entries(jf);t=0;return!t&&r&&(e.startsWith(`hex`)||e===`name`)?e===`name`&&this.a===0?this.toName():this.toRgbString():(e===`rgb`&&(n=this.toRgbString()),e===`prgb`&&(n=this.toPercentageRgbString()),(e===`hex`||e===`hex6`)&&(n=this.toHexString()),e===`hex3`&&(n=this.toHexString(!0)),e===`hex4`&&(n=this.toHex8String(!0)),e===`hex8`&&(n=this.toHex8String()),e===`name`&&(n=this.toName()),e===`hsl`&&(n=this.toHslString()),e===`hsv`&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=pf(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=pf(n.l),new e(n)},e.prototype.tint=function(e){return e===void 0&&(e=10),this.mix(`white`,e)},e.prototype.shade=function(e){return e===void 0&&(e=10),this.mix(`black`,e)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=pf(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=pf(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var r=this.toRgb(),i=new e(t).toRgb(),a=n/100;return new e({r:(i.r-r.r)*a+r.r,g:(i.g-r.g)*a+r.g,b:(i.b-r.b)*a+r.b,a:(i.a-r.a)*a+r.a})},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var r=this.toHsl(),i=360/n,a=[this];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,a.push(new e(r));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),r=n.h,i=n.s,a=n.v,o=[],s=1/t;t--;)o.push(new e({h:r,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb(),i=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/i,g:(n.g*n.a+r.g*r.a*(1-n.a))/i,b:(n.b*n.a+r.b*r.a*(1-n.a))/i,a:i})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,i=[this],a=360/t,o=1;o=60&&Math.round(e.h)<=240?n?Math.round(e.h)-Bf*t:Math.round(e.h)+Bf*t:n?Math.round(e.h)+Bf*t:Math.round(e.h)-Bf*t;return r<0?r+=360:r>=360&&(r-=360),r}function Qf(e,t,n){if(e.h===0&&e.s===0)return e.s;var r=n?e.s-Vf*t:t===Kf?e.s+Vf:e.s+Hf*t;return r>1&&(r=1),n&&t===Gf&&r>.1&&(r=.1),r<.06&&(r=.06),Number(r.toFixed(2))}function $f(e,t,n){var r=n?e.v+Uf*t:e.v-Wf*t;return r>1&&(r=1),Number(r.toFixed(2))}function ep(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=[],r=Mf(e),i=Gf;i>0;--i){var a=Jf(r),o=Yf(Mf({h:Zf(a,i,!0),s:Qf(a,i,!0),v:$f(a,i,!0)}));n.push(o)}n.push(Yf(r));for(var s=1;s<=Kf;s+=1){var c=Jf(r),l=Yf(Mf({h:Zf(c,s),s:Qf(c,s),v:$f(c,s)}));n.push(l)}return t.theme===`dark`?qf.map(function(e){var r=e.index,i=e.opacity;return Yf(Xf(Mf(t.backgroundColor||`#141414`),Mf(n[r]),i*100))}):n}var tp={red:`#F5222D`,volcano:`#FA541C`,orange:`#FA8C16`,gold:`#FAAD14`,yellow:`#FADB14`,lime:`#A0D911`,green:`#52C41A`,cyan:`#13C2C2`,blue:`#1890FF`,geekblue:`#2F54EB`,purple:`#722ED1`,magenta:`#EB2F96`,grey:`#666666`},np={},rp={};Object.keys(tp).forEach(function(e){np[e]=ep(tp[e]),np[e].primary=np[e][5],rp[e]=ep(tp[e],{theme:`dark`,backgroundColor:`#141414`}),rp[e].primary=rp[e][5]}),np.red,np.volcano;var ip=np.gold;np.orange,np.yellow,np.lime,np.green,np.cyan;var ap=np.blue;np.geekblue,np.purple,np.magenta,np.grey;var op=e=>{let{controlHeight:t}=e;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}};function sp(e){let{sizeUnit:t,sizeStep:n}=e;return{sizeXXL:t*(n+8),sizeXL:t*(n+4),sizeLG:t*(n+2),sizeMD:t*(n+1),sizeMS:t*n,size:t*n,sizeSM:t*(n-1),sizeXS:t*(n-2),sizeXXS:t*(n-3)}}var cp={blue:`#1677ff`,purple:`#722ED1`,cyan:`#13C2C2`,green:`#52C41A`,magenta:`#EB2F96`,pink:`#eb2f96`,red:`#F5222D`,orange:`#FA8C16`,yellow:`#FADB14`,volcano:`#FA541C`,geekblue:`#2F54EB`,gold:`#FAAD14`,lime:`#A0D911`},lp=g(g({},cp),{colorPrimary:`#1677ff`,colorSuccess:`#52c41a`,colorWarning:`#faad14`,colorError:`#ff4d4f`,colorInfo:`#1677ff`,colorTextBase:``,colorBgBase:``,fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, +'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', +'Noto Color Emoji'`,fontSize:14,lineWidth:1,lineType:`solid`,motionUnit:.1,motionBase:0,motionEaseOutCirc:`cubic-bezier(0.08, 0.82, 0.17, 1)`,motionEaseInOutCirc:`cubic-bezier(0.78, 0.14, 0.15, 0.86)`,motionEaseOut:`cubic-bezier(0.215, 0.61, 0.355, 1)`,motionEaseInOut:`cubic-bezier(0.645, 0.045, 0.355, 1)`,motionEaseOutBack:`cubic-bezier(0.12, 0.4, 0.29, 1.46)`,motionEaseInBack:`cubic-bezier(0.71, -0.46, 0.88, 0.6)`,motionEaseInQuint:`cubic-bezier(0.755, 0.05, 0.855, 0.06)`,motionEaseOutQuint:`cubic-bezier(0.23, 1, 0.32, 1)`,borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1});function up(e,t){let{generateColorPalettes:n,generateNeutralColorPalettes:r}=t,{colorSuccess:i,colorWarning:a,colorError:o,colorInfo:s,colorPrimary:c,colorBgBase:l,colorTextBase:u}=e,d=n(c),f=n(i),p=n(a),m=n(o),h=n(s),_=r(l,u);return g(g({},_),{colorPrimaryBg:d[1],colorPrimaryBgHover:d[2],colorPrimaryBorder:d[3],colorPrimaryBorderHover:d[4],colorPrimaryHover:d[5],colorPrimary:d[6],colorPrimaryActive:d[7],colorPrimaryTextHover:d[8],colorPrimaryText:d[9],colorPrimaryTextActive:d[10],colorSuccessBg:f[1],colorSuccessBgHover:f[2],colorSuccessBorder:f[3],colorSuccessBorderHover:f[4],colorSuccessHover:f[4],colorSuccess:f[6],colorSuccessActive:f[7],colorSuccessTextHover:f[8],colorSuccessText:f[9],colorSuccessTextActive:f[10],colorErrorBg:m[1],colorErrorBgHover:m[2],colorErrorBorder:m[3],colorErrorBorderHover:m[4],colorErrorHover:m[5],colorError:m[6],colorErrorActive:m[7],colorErrorTextHover:m[8],colorErrorText:m[9],colorErrorTextActive:m[10],colorWarningBg:p[1],colorWarningBgHover:p[2],colorWarningBorder:p[3],colorWarningBorderHover:p[4],colorWarningHover:p[4],colorWarning:p[6],colorWarningActive:p[7],colorWarningTextHover:p[8],colorWarningText:p[9],colorWarningTextActive:p[10],colorInfoBg:h[1],colorInfoBgHover:h[2],colorInfoBorder:h[3],colorInfoBorderHover:h[4],colorInfoHover:h[4],colorInfo:h[6],colorInfoActive:h[7],colorInfoTextHover:h[8],colorInfoText:h[9],colorInfoTextActive:h[10],colorBgMask:new zf(`#000`).setAlpha(.45).toRgbString(),colorWhite:`#fff`})}var dp=e=>{let t=e,n=e,r=e,i=e;return e<6&&e>=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?n=4:e<8&&e>=7?n=5:e<14&&e>=8?n=6:e<16&&e>=14?n=7:e>=16&&(n=8),e<6&&e>=2?r=1:e>=6&&(r=2),e>4&&e<8?i=4:e>=8&&(i=6),{borderRadius:e>16?16:e,borderRadiusXS:r,borderRadiusSM:n,borderRadiusLG:t,borderRadiusOuter:i}};function fp(e){let{motionUnit:t,motionBase:n,borderRadius:r,lineWidth:i}=e;return g({motionDurationFast:`${(n+t).toFixed(1)}s`,motionDurationMid:`${(n+t*2).toFixed(1)}s`,motionDurationSlow:`${(n+t*3).toFixed(1)}s`,lineWidthBold:i+1},dp(r))}var pp=(e,t)=>new zf(e).setAlpha(t).toRgbString(),mp=(e,t)=>new zf(e).darken(t).toHexString(),hp=e=>{let t=ep(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},gp=(e,t)=>{let n=e||`#fff`,r=t||`#000`;return{colorBgBase:n,colorTextBase:r,colorText:pp(r,.88),colorTextSecondary:pp(r,.65),colorTextTertiary:pp(r,.45),colorTextQuaternary:pp(r,.25),colorFill:pp(r,.15),colorFillSecondary:pp(r,.06),colorFillTertiary:pp(r,.04),colorFillQuaternary:pp(r,.02),colorBgLayout:mp(n,4),colorBgContainer:mp(n,0),colorBgElevated:mp(n,0),colorBgSpotlight:pp(r,.85),colorBorder:mp(n,15),colorBorderSecondary:mp(n,6)}};function _p(e){let t=Array(10).fill(null).map((t,n)=>{let r=e*2.71828**((n-1)/5);return Math.floor((n>1?Math.floor(r):Math.ceil(r))/2)*2});return t[1]=e,t.map(e=>({size:e,lineHeight:(e+8)/e}))}var vp=e=>{let t=_p(e),n=t.map(e=>e.size),r=t.map(e=>e.lineHeight);return{fontSizeSM:n[0],fontSize:n[1],fontSizeLG:n[2],fontSizeXL:n[3],fontSizeHeading1:n[6],fontSizeHeading2:n[5],fontSizeHeading3:n[4],fontSizeHeading4:n[3],fontSizeHeading5:n[2],lineHeight:r[1],lineHeightLG:r[2],lineHeightSM:r[0],lineHeightHeading1:r[6],lineHeightHeading2:r[5],lineHeightHeading3:r[4],lineHeightHeading4:r[3],lineHeightHeading5:r[2]}};function yp(e){let t=Object.keys(cp).map(t=>{let n=ep(e[t]);return Array(10).fill(1).reduce((e,r,i)=>(e[`${t}-${i+1}`]=n[i],e),{})}).reduce((e,t)=>(e=g(g({},e),t),e),{});return g(g(g(g(g(g(g({},e),t),up(e,{generateColorPalettes:hp,generateNeutralColorPalettes:gp})),vp(e.fontSize)),sp(e)),op(e)),fp(e))}function bp(e){return e>=0&&e<=255}function xp(e,t){let{r:n,g:r,b:i,a}=new zf(e).toRgb();if(a<1)return e;let{r:o,g:s,b:c}=new zf(t).toRgb();for(let e=.01;e<=1;e+=.01){let t=Math.round((n-o*(1-e))/e),a=Math.round((r-s*(1-e))/e),l=Math.round((i-c*(1-e))/e);if(bp(t)&&bp(a)&&bp(l))return new zf({r:t,g:a,b:l,a:Math.round(e*100)/100}).toRgbString()}return new zf({r:n,g:r,b:i,a:1}).toRgbString()}var Sp=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{delete r[e]});let i=g(g({},n),r),a=1200,o=1600,s=2e3;return g(g(g({},i),{colorLink:i.colorInfoText,colorLinkHover:i.colorInfoHover,colorLinkActive:i.colorInfoActive,colorFillContent:i.colorFillSecondary,colorFillContentHover:i.colorFill,colorFillAlter:i.colorFillQuaternary,colorBgContainerDisabled:i.colorFillTertiary,colorBorderBg:i.colorBgContainer,colorSplit:xp(i.colorBorderSecondary,i.colorBgContainer),colorTextPlaceholder:i.colorTextQuaternary,colorTextDisabled:i.colorTextQuaternary,colorTextHeading:i.colorText,colorTextLabel:i.colorTextSecondary,colorTextDescription:i.colorTextTertiary,colorTextLightSolid:i.colorWhite,colorHighlight:i.colorError,colorBgTextHover:i.colorFillSecondary,colorBgTextActive:i.colorFill,colorIcon:i.colorTextTertiary,colorIconHover:i.colorText,colorErrorOutline:xp(i.colorErrorBg,i.colorBgContainer),colorWarningOutline:xp(i.colorWarningBg,i.colorBgContainer),fontSizeIcon:i.fontSizeSM,lineWidth:i.lineWidth,controlOutlineWidth:i.lineWidth*2,controlInteractiveSize:i.controlHeight/2,controlItemBgHover:i.colorFillTertiary,controlItemBgActive:i.colorPrimaryBg,controlItemBgActiveHover:i.colorPrimaryBgHover,controlItemBgActiveDisabled:i.colorFill,controlTmpOutline:i.colorFillQuaternary,controlOutline:xp(i.colorPrimaryBg,i.colorBgContainer),lineType:i.lineType,borderRadius:i.borderRadius,borderRadiusXS:i.borderRadiusXS,borderRadiusSM:i.borderRadiusSM,borderRadiusLG:i.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:`none`,linkHoverDecoration:`none`,linkFocusDecoration:`none`,controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:i.sizeXXS,paddingXS:i.sizeXS,paddingSM:i.sizeSM,padding:i.size,paddingMD:i.sizeMD,paddingLG:i.sizeLG,paddingXL:i.sizeXL,paddingContentHorizontalLG:i.sizeLG,paddingContentVerticalLG:i.sizeMS,paddingContentHorizontal:i.sizeMS,paddingContentVertical:i.sizeSM,paddingContentHorizontalSM:i.size,paddingContentVerticalSM:i.sizeXS,marginXXS:i.sizeXXS,marginXS:i.sizeXS,marginSM:i.sizeSM,margin:i.size,marginMD:i.sizeMD,marginLG:i.sizeLG,marginXL:i.sizeXL,marginXXL:i.sizeXXL,boxShadow:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,boxShadowSecondary:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTertiary:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,screenXS:480,screenXSMin:480,screenXSMax:575,screenSM:576,screenSMMin:576,screenSMMax:767,screenMD:768,screenMDMin:768,screenMDMax:991,screenLG:992,screenLGMin:992,screenLGMax:1199,screenXL:a,screenXLMin:a,screenXLMax:1599,screenXXL:o,screenXXLMin:o,screenXXLMax:1999,screenXXXL:s,screenXXXLMin:s,boxShadowPopoverArrow:`3px 3px 7px rgba(0, 0, 0, 0.1)`,boxShadowCard:` + 0 1px 2px -2px ${new zf(`rgba(0, 0, 0, 0.16)`).toRgbString()}, + 0 3px 6px 0 ${new zf(`rgba(0, 0, 0, 0.12)`).toRgbString()}, + 0 5px 12px 4px ${new zf(`rgba(0, 0, 0, 0.09)`).toRgbString()} + `,boxShadowDrawerRight:` + -6px 0 16px 0 rgba(0, 0, 0, 0.08), + -3px 0 6px -4px rgba(0, 0, 0, 0.12), + -9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerLeft:` + 6px 0 16px 0 rgba(0, 0, 0, 0.08), + 3px 0 6px -4px rgba(0, 0, 0, 0.12), + 9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerUp:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerDown:` + 0 -6px 16px 0 rgba(0, 0, 0, 0.08), + 0 -3px 6px -4px rgba(0, 0, 0, 0.12), + 0 -9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTabsOverflowLeft:`inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)`,boxShadowTabsOverflowRight:`inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)`,boxShadowTabsOverflowTop:`inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)`,boxShadowTabsOverflowBottom:`inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)`}),r)}var wp=e=>({color:e.colorLink,textDecoration:`none`,outline:`none`,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,"&:focus, &:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive}}),Tp=(e,t,n,r,i)=>{let a=e/2,o=a,s=n*1/Math.sqrt(2),c=a-n*(1-1/Math.sqrt(2)),l=a-1/Math.sqrt(2)*t,u=n*(Math.sqrt(2)-1)+1/Math.sqrt(2)*t,d=2*a-l,f=u,p=2*a-s,m=c,h=2*a-0,g=o,_=a*Math.sqrt(2)+n*(Math.sqrt(2)-2),v=n*(Math.sqrt(2)-1);return{pointerEvents:`none`,width:e,height:e,overflow:`hidden`,"&::after":{content:`""`,position:`absolute`,width:_,height:_,bottom:0,insetInline:0,margin:`auto`,borderRadius:{_skip_check_:!0,value:`0 0 ${t}px 0`},transform:`translateY(50%) rotate(-135deg)`,boxShadow:i,zIndex:0,background:`transparent`},"&::before":{position:`absolute`,bottom:0,insetInlineStart:0,width:e,height:e/2,background:r,clipPath:{_multi_value_:!0,value:[`polygon(${v}px 100%, 50% ${v}px, ${2*a-v}px 100%, ${v}px 100%)`,`path('M 0 ${o} A ${n} ${n} 0 0 0 ${s} ${c} L ${l} ${u} A ${t} ${t} 0 0 1 ${d} ${f} L ${p} ${m} A ${n} ${n} 0 0 0 ${h} ${g} Z')`]},content:`""`}}};function Ep(e,t){return df.reduce((n,r)=>{let i=e[`${r}-1`],a=e[`${r}-3`],o=e[`${r}-6`],s=e[`${r}-7`];return g(g({},n),t(r,{lightColor:i,lightBorderColor:a,darkColor:o,textColor:s}))},{})}var Dp={overflow:`hidden`,whiteSpace:`nowrap`,textOverflow:`ellipsis`},Op=e=>({boxSizing:`border-box`,margin:0,padding:0,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,listStyle:`none`,fontFamily:e.fontFamily}),kp=()=>({display:`inline-flex`,alignItems:`center`,color:`inherit`,fontStyle:`normal`,lineHeight:0,textAlign:`center`,textTransform:`none`,verticalAlign:`-0.125em`,textRendering:`optimizeLegibility`,"-webkit-font-smoothing":`antialiased`,"-moz-osx-font-smoothing":`grayscale`,"> *":{lineHeight:1},svg:{display:`inline-block`}}),Ap=()=>({"&::before":{display:`table`,content:`""`},"&::after":{display:`table`,clear:`both`,content:`""`}}),jp=e=>({a:{color:e.colorLink,textDecoration:e.linkDecoration,backgroundColor:`transparent`,outline:`none`,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,"-webkit-text-decoration-skip":`objects`,"&:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive},"&:active,\n &:hover":{textDecoration:e.linkHoverDecoration,outline:0},"&:focus":{textDecoration:e.linkFocusDecoration,outline:0},"&[disabled]":{color:e.colorTextDisabled,cursor:`not-allowed`}}}),Mp=(e,t)=>{let{fontFamily:n,fontSize:r}=e,i=`[class^="${t}"], [class*=" ${t}"]`;return{[i]:{fontFamily:n,fontSize:r,boxSizing:`border-box`,"&::before, &::after":{boxSizing:`border-box`},[i]:{boxSizing:`border-box`,"&::before, &::after":{boxSizing:`border-box`}}}}},Np=e=>({outline:`${e.lineWidthBold}px solid ${e.colorPrimaryBorder}`,outlineOffset:1,transition:`outline-offset 0s, outline 0s`}),Pp=e=>({"&:focus-visible":g({},Np(e))});function Fp(e,t,n){return r=>{let i=G(()=>r?.value),[a,o,s]=Jp(),{getPrefixCls:c,iconPrefixCls:l}=Bl(),u=G(()=>c());return Qd(G(()=>({theme:a.value,token:o.value,hashId:s.value,path:[`Shared`,u.value]})),()=>[{"&":jp(o.value)}]),[Qd(G(()=>({theme:a.value,token:o.value,hashId:s.value,path:[e,i.value,l.value]})),()=>{let{token:r,flush:a}=Vp(o.value),c=typeof n==`function`?n(r):n,d=g(g({},c),o.value[e]),f=t(Rp(r,{componentCls:`.${i.value}`,prefixCls:i.value,iconCls:`.${l.value}`,antCls:`.${u.value}`},d),{hashId:s.value,prefixCls:i.value,rootPrefixCls:u.value,iconPrefixCls:l.value,overrideComponentToken:o.value[e]});return a(e,d),[Mp(o.value,i.value),f]}),s]}}var Ip=typeof CSSINJS_STATISTIC<`u`,Lp=!0;function Rp(){var e=[...arguments];if(!Ip)return g({},...e);Lp=!1;let t={};return e.forEach(e=>{Object.keys(e).forEach(n=>{Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get:()=>e[n]})})}),Lp=!0,t}var zp={};function Bp(){}function Vp(e){let t,n=e,r=Bp;return Ip&&(t=new Set,n=new Proxy(e,{get(e,n){return Lp&&t.add(n),e[n]}}),r=(e,n)=>{zp[e]={global:Array.from(t),component:n}}),{token:n,keys:t,flush:r}}var Hp=Hu(yp),Up={token:lp,hashed:!0},Wp=Symbol(`DesignTokenContext`),Gp=V(),Kp=e=>{er(Wp,e),H(e,()=>{Gp.value=fn(e),dn(Gp)},{immediate:!0,deep:!0})},qp=U({props:{value:q()},setup(e,t){let{slots:n}=t;return Kp(G(()=>e.value)),()=>n.default?.call(n)}});function Jp(){let e=tr(Wp,G(()=>Gp.value||Up)),t=G(()=>`${uf}-${e.value.hashed||``}`),n=G(()=>e.value.theme||Hp),r=ad(n,G(()=>[lp,e.value.token]),G(()=>({salt:t.value,override:g({override:e.value.token},e.value.components),formatToken:Cp})));return[n,G(()=>r.value[0]),G(()=>e.value.hashed?r.value[1]:``)]}var Yp=U({compatConfig:{MODE:3},setup(){let[,e]=Jp(),t=G(()=>new zf(e.value.colorBgBase).toHsl().l<.5?{opacity:.65}:{});return()=>W(`svg`,{style:t.value,width:`184`,height:`152`,viewBox:`0 0 184 152`,xmlns:`http://www.w3.org/2000/svg`},[W(`g`,{fill:`none`,"fill-rule":`evenodd`},[W(`g`,{transform:`translate(24 31.67)`},[W(`ellipse`,{"fill-opacity":`.8`,fill:`#F5F5F7`,cx:`67.797`,cy:`106.89`,rx:`67.797`,ry:`12.668`},null),W(`path`,{d:`M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z`,fill:`#AEB8C2`},null),W(`path`,{d:`M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z`,fill:`url(#linearGradient-1)`,transform:`translate(13.56)`},null),W(`path`,{d:`M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z`,fill:`#F5F5F7`},null),W(`path`,{d:`M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z`,fill:`#DCE0E6`},null)]),W(`path`,{d:`M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z`,fill:`#DCE0E6`},null),W(`g`,{transform:`translate(149.65 15.383)`,fill:`#FFF`},[W(`ellipse`,{cx:`20.654`,cy:`3.167`,rx:`2.849`,ry:`2.815`},null),W(`path`,{d:`M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z`},null)])])])}});Yp.PRESENTED_IMAGE_DEFAULT=!0;var Xp=U({compatConfig:{MODE:3},setup(){let[,e]=Jp(),t=G(()=>{let{colorFill:t,colorFillTertiary:n,colorFillQuaternary:r,colorBgContainer:i}=e.value;return{borderColor:new zf(t).onBackground(i).toHexString(),shadowColor:new zf(n).onBackground(i).toHexString(),contentColor:new zf(r).onBackground(i).toHexString()}});return()=>W(`svg`,{width:`64`,height:`41`,viewBox:`0 0 64 41`,xmlns:`http://www.w3.org/2000/svg`},[W(`g`,{transform:`translate(0 1)`,fill:`none`,"fill-rule":`evenodd`},[W(`ellipse`,{fill:t.value.shadowColor,cx:`32`,cy:`33`,rx:`32`,ry:`7`},null),W(`g`,{"fill-rule":`nonzero`,stroke:t.value.borderColor},[W(`path`,{d:`M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z`},null),W(`path`,{d:`M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z`,fill:t.value.contentColor},null)])])])}});Xp.PRESENTED_IMAGE_SIMPLE=!0;var Zp=e=>{let{componentCls:t,margin:n,marginXS:r,marginXL:i,fontSize:a,lineHeight:o}=e;return{[t]:{marginInline:r,fontSize:a,lineHeight:o,textAlign:`center`,[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:r,opacity:e.opacityImage,img:{height:`100%`},svg:{height:`100%`,margin:`auto`}},[`${t}-footer`]:{marginTop:n},"&-normal":{marginBlock:i,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightMD}},"&-small":{marginBlock:r,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}},Qp=Fp(`Empty`,e=>{let{componentCls:t,controlHeightLG:n}=e;return[Zp(Rp(e,{emptyImgCls:`${t}-img`,emptyImgHeight:n*2.5,emptyImgHeightMD:n,emptyImgHeightSM:n*.875}))]}),$p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let t=a.value,c=g(g({},e),r),{image:l=n.image?.call(n)||Oo(Yp),description:u=n.description?.call(n)||void 0,imageStyle:d,class:f=``}=c,p=$p(c,[`image`,`description`,`imageStyle`,`class`]),m=typeof l==`function`?l():l,_=typeof m==`object`&&`type`in m&&m.type.PRESENTED_IMAGE_SIMPLE;return o(W(eu,{componentName:`Empty`,children:e=>{let r=u===void 0?e.description:u,a=typeof r==`string`?r:`empty`,o=null;return o=typeof m==`string`?W(`img`,{alt:a,src:m},null):m,W(`div`,h({class:K(t,f,s.value,{[`${t}-normal`]:_,[`${t}-rtl`]:i.value===`rtl`})},p),[W(`div`,{class:`${t}-image`,style:d},[o]),r&&W(`p`,{class:`${t}-description`},[r]),n.default&&W(`div`,{class:`${t}-footer`},[rl(n.default())])])}},null))}}});em.PRESENTED_IMAGE_DEFAULT=()=>Oo(Yp),em.PRESENTED_IMAGE_SIMPLE=()=>Oo(Xp);var tm=_l(em),nm=e=>{let{prefixCls:t}=Z(`empty`,e);return(e=>{switch(e){case`Table`:case`List`:return W(tm,{image:tm.PRESENTED_IMAGE_SIMPLE},null);case`Select`:case`TreeSelect`:case`Cascader`:case`Transfer`:case`Mentions`:return W(tm,{image:tm.PRESENTED_IMAGE_SIMPLE,class:`${t.value}-small`},null);default:return W(tm,null,null)}})(e.componentName)};function rm(e){return W(nm,{componentName:e},null)}var im=Symbol(`SizeContextKey`),am=()=>tr(im,B(void 0)),om=e=>{let t=am();return er(im,G(()=>e.value||t.value)),e},Z=((e,t)=>{let n=am(),r=Ul(),i=tr(Rl,g(g({},zl),{renderEmpty:e=>Oo(nm,{componentName:e})})),a=G(()=>i.getPrefixCls(e,t.prefixCls)),o=G(()=>t.direction??i.direction?.value),s=G(()=>t.iconPrefixCls??i.iconPrefixCls.value),c=G(()=>i.getPrefixCls()),l=G(()=>i.autoInsertSpaceInButton?.value),u=i.renderEmpty,d=i.space,f=i.pageHeader,p=i.form,m=G(()=>t.getTargetContainer??i.getTargetContainer?.value),h=G(()=>t.getContainer??t.getPopupContainer??i.getPopupContainer?.value),_=G(()=>t.dropdownMatchSelectWidth??i.dropdownMatchSelectWidth?.value),v=G(()=>(t.virtual===void 0?i.virtual?.value!==!1:t.virtual!==!1)&&_.value!==!1),y=G(()=>t.size||n.value),b=G(()=>t.autocomplete??i.input?.value?.autocomplete),x=G(()=>t.disabled??r.value),S=G(()=>t.csp??i.csp),C=G(()=>t.wave??i.wave?.value);return{configProvider:i,prefixCls:a,direction:o,size:y,getTargetContainer:m,getPopupContainer:h,space:d,pageHeader:f,form:p,autoInsertSpaceInButton:l,renderEmpty:u,virtual:v,dropdownMatchSelectWidth:_,rootPrefixCls:c,getPrefixCls:i.getPrefixCls,autocomplete:b,csp:S,iconPrefixCls:s,disabled:x,select:i.select,wave:C}});function sm(e,t){let n=g({},e);for(let e=0;e{let{componentCls:t}=e;return{[t]:{position:`fixed`,zIndex:e.zIndexPopup}}},lm=Fp(`Affix`,e=>[cm(Rp(e,{zIndexPopup:e.zIndexBase+10}))]);function um(){return typeof window<`u`?window:null}var dm;(function(e){e[e.None=0]=`None`,e[e.Prepare=1]=`Prepare`})(dm||={});var fm=_l(U({compatConfig:{MODE:3},name:`AAffix`,inheritAttrs:!1,props:{offsetTop:Number,offsetBottom:Number,target:{type:Function,default:um},prefixCls:String,onChange:Function,onTestUpdatePosition:Function},setup(e,t){let{slots:n,emit:r,expose:i,attrs:a}=t,o=V(),s=V(),c=Yt({affixStyle:void 0,placeholderStyle:void 0,status:dm.None,lastAffix:!1,prevTarget:null,timeout:null}),l=fo(),u=G(()=>e.offsetBottom===void 0&&e.offsetTop===void 0?0:e.offsetTop),d=G(()=>e.offsetBottom),f=()=>{let{status:t,lastAffix:n}=c,{target:i}=e;if(t!==dm.Prepare||!s.value||!o.value||!i)return;let a=i();if(!a)return;let l={status:dm.None},f=El(o.value);if(f.top===0&&f.left===0&&f.width===0&&f.height===0)return;let p=El(a),m=Dl(f,p,u.value),h=Ol(f,p,d.value);if(f.top!==0||f.left!==0||f.width!==0||f.height!==0){if(m!==void 0){let e=`${f.width}px`,t=`${f.height}px`;l.affixStyle={position:`fixed`,top:m,width:e,height:t},l.placeholderStyle={width:e,height:t}}else if(h!==void 0){let e=`${f.width}px`,t=`${f.height}px`;l.affixStyle={position:`fixed`,bottom:h,width:e,height:t},l.placeholderStyle={width:e,height:t}}l.lastAffix=!!l.affixStyle,n!==l.lastAffix&&r(`change`,l.lastAffix),g(c,l)}},p=()=>{g(c,{status:dm.Prepare,affixStyle:void 0,placeholderStyle:void 0})},m=ml(()=>{p()}),_=ml(()=>{let{target:t}=e,{affixStyle:n}=c;if(t&&n){let e=t();if(e&&o.value){let t=El(e),r=El(o.value),i=Dl(r,t,u.value),a=Ol(r,t,d.value);if(i!==void 0&&n.top===i||a!==void 0&&n.bottom===a)return}}p()});i({updatePosition:m,lazyUpdatePosition:_}),H(()=>e.target,e=>{let t=e?.()||null;c.prevTarget!==t&&(Ml(l),t&&(jl(t,l),m()),c.prevTarget=t)}),H(()=>[e.offsetTop,e.offsetBottom],m),$r(()=>{let{target:t}=e;t&&(c.timeout=setTimeout(()=>{jl(t(),l),m()}))}),ti(()=>{f()}),ri(()=>{clearTimeout(c.timeout),Ml(l),m.cancel(),_.cancel()});let{prefixCls:v}=Z(`affix`,e),[y,b]=lm(v);return()=>{let{affixStyle:t,placeholderStyle:r,status:i}=c,l=K({[v.value]:t,[b.value]:!0}),u=sm(e,[`prefixCls`,`offsetTop`,`offsetBottom`,`target`,`onChange`,`onTestUpdatePosition`]);return y(W(sl,{onResize:m},{default:()=>[W(`div`,h(h(h({},u),a),{},{ref:o,"data-measure-status":i}),[t&&W(`div`,{style:r,"aria-hidden":`true`},null),W(`div`,{class:l,ref:s,style:t},[n.default?.call(n)])])]}))}}}));function pm(e){return typeof e==`object`&&!!e&&e.nodeType===1}function mm(e,t){return(!t||e!==`hidden`)&&e!==`visible`&&e!==`clip`}function hm(e,t){if(e.clientHeightt||a>e&&o=t&&s>=n?a-e-r:o>t&&sn?o-t+i:0}var _m=function(e,t){var n=window,r=t.scrollMode,i=t.block,a=t.inline,o=t.boundary,s=t.skipOverflowHiddenElements,c=typeof o==`function`?o:function(e){return e!==o};if(!pm(e))throw TypeError(`Invalid target`);for(var l,u=document.scrollingElement||document.documentElement,d=[],f=e;pm(f)&&c(f);){if((f=(l=f).parentElement??(l.getRootNode().host||null))===u){d.push(f);break}f!=null&&f===document.body&&hm(f)&&!hm(document.documentElement)||f!=null&&hm(f,s)&&d.push(f)}for(var p=n.visualViewport?n.visualViewport.width:innerWidth,m=n.visualViewport?n.visualViewport.height:innerHeight,h=window.scrollX||pageXOffset,g=window.scrollY||pageYOffset,_=e.getBoundingClientRect(),v=_.height,y=_.width,b=_.top,x=_.right,S=_.bottom,C=_.left,w=i===`start`||i===`nearest`?b:i===`end`?S:b+v/2,T=a===`center`?C+y/2:a===`end`?x:C,E=[],D=0;D=0&&C>=0&&S<=m&&x<=p&&b>=M&&S<=P&&C>=F&&x<=N)return E;var I=getComputedStyle(O),L=parseInt(I.borderLeftWidth,10),R=parseInt(I.borderTopWidth,10),ee=parseInt(I.borderRightWidth,10),te=parseInt(I.borderBottomWidth,10),ne=0,z=0,re=`offsetWidth`in O?O.offsetWidth-O.clientWidth-L-ee:0,ie=`offsetHeight`in O?O.offsetHeight-O.clientHeight-R-te:0,ae=`offsetWidth`in O?O.offsetWidth===0?0:j/O.offsetWidth:0,oe=`offsetHeight`in O?O.offsetHeight===0?0:A/O.offsetHeight:0;if(u===O)ne=i===`start`?w:i===`end`?w-m:i===`nearest`?gm(g,g+m,m,R,te,g+w,g+w+v,v):w-m/2,z=a===`start`?T:a===`center`?T-p/2:a===`end`?T-p:gm(h,h+p,p,L,ee,h+T,h+T+y,y),ne=Math.max(0,ne+g),z=Math.max(0,z+h);else{ne=i===`start`?w-M-R:i===`end`?w-P+te+ie:i===`nearest`?gm(M,P,A,R,te+ie,w,w+v,v):w-(M+A/2)+ie/2,z=a===`start`?T-F-L:a===`center`?T-(F+j/2)+re/2:a===`end`?T-N+ee+re:gm(F,N,j,L,ee+re,T,T+y,y);var se=O.scrollLeft,ce=O.scrollTop;w+=ce-(ne=Math.max(0,Math.min(ce+ne/oe,O.scrollHeight-A/oe+ie))),T+=se-(z=Math.max(0,Math.min(se+z/ae,O.scrollWidth-j/ae+re)))}E.push({el:O,top:ne,left:z})}return E};function vm(e){return e===Object(e)&&Object.keys(e).length!==0}function ym(e,t){t===void 0&&(t=`auto`);var n=`scrollBehavior`in document.body.style;e.forEach(function(e){var r=e.el,i=e.top,a=e.left;r.scroll&&n?r.scroll({top:i,left:a,behavior:t}):(r.scrollTop=i,r.scrollLeft=a)})}function bm(e){return e===!1?{block:`end`,inline:`nearest`}:vm(e)?e:{block:`start`,inline:`nearest`}}function xm(e,t){var n=e.isConnected||e.ownerDocument.documentElement.contains(e);if(vm(t)&&typeof t.behavior==`function`)return t.behavior(n?_m(e,t):[]);if(n){var r=bm(t);return ym(_m(e,r),r.behavior)}}function Sm(e,t,n,r){let i=n-t;return e/=r/2,e<1?i/2*e*e*e+t:i/2*((e-=2)*e*e+2)+t}function Cm(e){return e!=null&&e===e.window}function wm(e,t){if(typeof window>`u`)return 0;let n=t?`scrollTop`:`scrollLeft`,r=0;return Cm(e)?r=e[t?`scrollY`:`scrollX`]:e instanceof Document?r=e.documentElement[n]:(e instanceof HTMLElement||e)&&(r=e[n]),e&&!Cm(e)&&typeof r!=`number`&&(r=(e.ownerDocument??e).documentElement?.[n]),r}function Tm(e){let{getContainer:t=()=>window,callback:n,duration:r=450}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=t(),a=wm(i,!0),o=Date.now(),s=()=>{let t=Date.now()-o,c=Sm(t>r?r:t,a,e,r);Cm(i)?i.scrollTo(window.scrollX,c):i instanceof Document?i.documentElement.scrollTop=c:i.scrollTop=c,t{er(Dm,e)},km=()=>tr(Dm,{registerLink:Em,unregisterLink:Em,scrollTo:Em,activeLink:G(()=>``),handleClick:Em,direction:G(()=>`vertical`)}),Am=e=>{let{componentCls:t,holderOffsetBlock:n,motionDurationSlow:r,lineWidthBold:i,colorPrimary:a,lineType:o,colorSplit:s}=e;return{[`${t}-wrapper`]:{marginBlockStart:-n,paddingBlockStart:n,backgroundColor:`transparent`,[t]:g(g({},Op(e)),{position:`relative`,paddingInlineStart:i,[`${t}-link`]:{paddingBlock:e.anchorPaddingBlock,paddingInline:`${e.anchorPaddingInline}px 0`,"&-title":g(g({},Dp),{position:`relative`,display:`block`,marginBlockEnd:e.anchorTitleBlock,color:e.colorText,transition:`all ${e.motionDurationSlow}`,"&:only-child":{marginBlockEnd:0}}),[`&-active > ${t}-link-title`]:{color:e.colorPrimary},[`${t}-link`]:{paddingBlock:e.anchorPaddingBlockSecondary}}}),[`&:not(${t}-wrapper-horizontal)`]:{[t]:{"&::before":{position:`absolute`,left:{_skip_check_:!0,value:0},top:0,height:`100%`,borderInlineStart:`${i}px ${o} ${s}`,content:`" "`},[`${t}-ink`]:{position:`absolute`,left:{_skip_check_:!0,value:0},display:`none`,transform:`translateY(-50%)`,transition:`top ${r} ease-in-out`,width:i,backgroundColor:a,[`&${t}-ink-visible`]:{display:`inline-block`}}}},[`${t}-fixed ${t}-ink ${t}-ink`]:{display:`none`}}}},jm=e=>{let{componentCls:t,motionDurationSlow:n,lineWidthBold:r,colorPrimary:i}=e;return{[`${t}-wrapper-horizontal`]:{position:`relative`,"&::before":{position:`absolute`,left:{_skip_check_:!0,value:0},right:{_skip_check_:!0,value:0},bottom:0,borderBottom:`1px ${e.lineType} ${e.colorSplit}`,content:`" "`},[t]:{overflowX:`scroll`,position:`relative`,display:`flex`,scrollbarWidth:`none`,"&::-webkit-scrollbar":{display:`none`},[`${t}-link:first-of-type`]:{paddingInline:0},[`${t}-ink`]:{position:`absolute`,bottom:0,transition:`left ${n} ease-in-out, width ${n} ease-in-out`,height:r,backgroundColor:i}}}}},Mm=Fp(`Anchor`,e=>{let{fontSize:t,fontSizeLG:n,padding:r,paddingXXS:i}=e,a=Rp(e,{holderOffsetBlock:i,anchorPaddingBlock:i,anchorPaddingBlockSecondary:i/2,anchorPaddingInline:r,anchorTitleBlock:t/14*3,anchorBallSize:n/2});return[Am(a),jm(a)]}),Nm=U({compatConfig:{MODE:3},name:`AAnchorLink`,inheritAttrs:!1,props:Bc({prefixCls:String,href:String,title:yl(),target:String,customTitleProps:q()},{href:`#`}),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,i=null,{handleClick:a,scrollTo:o,unregisterLink:s,registerLink:c,activeLink:l}=km(),{prefixCls:u}=Z(`anchor`,e),d=t=>{let{href:n}=e;a(t,{title:i,href:n}),o(n)};return H(()=>e.href,(e,t)=>{zn(()=>{s(t),c(e)})}),$r(()=>{c(e.href)}),ni(()=>{s(e.href)}),()=>{let{href:t,target:a,title:o=n.title,customTitleProps:s={}}=e,c=u.value;i=typeof o==`function`?o(s):o;let f=l.value===t,p=K(`${c}-link`,{[`${c}-link-active`]:f},r.class),m=K(`${c}-link-title`,{[`${c}-link-title-active`]:f});return W(`div`,h(h({},r),{},{class:p}),[W(`a`,{class:m,href:t,title:typeof i==`string`?i:``,target:a,onClick:d},[n.customTitle?n.customTitle(s):i]),n.default?.call(n)])}}});function Pm(e,t){for(var n=0;n=0||(i[n]=e[n]);return i}function zm(e){return((t=e)!=null&&typeof t==`object`&&!1===Array.isArray(t))==1&&Object.prototype.toString.call(e)===`[object Object]`;var t}var Bm=Object.prototype,Vm=Bm.toString,Hm=Bm.hasOwnProperty,Um=/^\s*function (\w+)/;function Wm(e){var t=e?.type??e;if(t){var n=t.toString().match(Um);return n?n[1]:``}return``}var Gm=function(e){var t,n;return!1!==zm(e)&&typeof(t=e.constructor)==`function`&&!1!==zm(n=t.prototype)&&!1!==n.hasOwnProperty(`isPrototypeOf`)},Km=function(e){return e},qm=function(e,t){return Hm.call(e,t)},Jm=Number.isInteger||function(e){return typeof e==`number`&&isFinite(e)&&Math.floor(e)===e},Ym=Array.isArray||function(e){return Vm.call(e)===`[object Array]`},Xm=function(e){return Vm.call(e)===`[object Function]`},Zm=function(e){return Gm(e)&&qm(e,`_vueTypes_name`)},Qm=function(e){return Gm(e)&&(qm(e,`type`)||[`_vueTypes_name`,`validator`,`default`,`required`].some(function(t){return qm(e,t)}))};function $m(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function eh(e,t,n){var r;n===void 0&&(n=!1);var i=!0,a=``;r=Gm(e)?e:{type:e};var o=Zm(r)?r._vueTypes_name+` - `:``;if(Qm(r)&&r.type!==null){if(r.type===void 0||!0===r.type||!r.required&&t===void 0)return i;Ym(r.type)?(i=r.type.some(function(e){return!0===eh(e,t,!0)}),a=r.type.map(function(e){return Wm(e)}).join(` or `)):i=(a=Wm(r))===`Array`?Ym(t):a===`Object`?Gm(t):a===`String`||a===`Number`||a===`Boolean`||a===`Function`?function(e){if(e==null)return``;var t=e.constructor.toString().match(Um);return t?t[1]:``}(t)===a:t instanceof r.type}if(!i){var s=o+`value "`+t+`" should be of type "`+a+`"`;return!1===n?(Km(s),!1):s}if(qm(r,`validator`)&&Xm(r.validator)){var c=Km,l=[];if(Km=function(e){l.push(e)},i=r.validator(t),Km=c,!i){var u=(l.length>1?`* `:``)+l.join(` +* `);return l.length=0,!1===n?(Km(u),i):u}}return i}function th(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return e!==void 0||this.default?Xm(e)||!0===eh(this,e,!0)?(this.default=Ym(e)?function(){return[].concat(e)}:Gm(e)?function(){return Object.assign({},e)}:e,this):(Km(this._vueTypes_name+` - invalid default value: "`+e+`"`),this):this}}}),r=n.validator;return Xm(r)&&(n.validator=$m(r,n)),n}function nh(e,t){var n=th(e,t);return Object.defineProperty(n,"validate",{value:function(e){return Xm(this.validator)&&Km(this._vueTypes_name+` - calling .validate() will overwrite the current custom validator function. Validator info: +`+JSON.stringify(this)),this.validator=$m(e,this),this}})}function rh(e,t,n){var r,i,a=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(a._vueTypes_name=e,!Gm(n))return a;var o,s=n.validator,c=Rm(n,[`validator`]);if(Xm(s)){var l=a.validator;l&&=(o=l).__original??o,a.validator=$m(l?function(e){return l.call(this,e)&&s.call(this,e)}:s,a)}return Object.assign(a,c)}function ih(e){return e.replace(/^(?!\s*$)/gm,` `)}var ah=function(){return nh(`any`,{})},oh=function(){return nh(`function`,{type:Function})},sh=function(){return nh(`boolean`,{type:Boolean})},ch=function(){return nh(`string`,{type:String})},lh=function(){return nh(`number`,{type:Number})},uh=function(){return nh(`array`,{type:Array})},dh=function(){return nh(`object`,{type:Object})},fh=function(){return th(`integer`,{type:Number,validator:function(e){return Jm(e)}})},ph=function(){return th(`symbol`,{validator:function(e){return typeof e==`symbol`}})};function mh(e,t){if(t===void 0&&(t=`custom validation failed`),typeof e!=`function`)throw TypeError(`[VueTypes error]: You must provide a function as argument`);return th(e.name||`<>`,{validator:function(n){var r=e(n);return r||Km(this._vueTypes_name+` - `+t),r}})}function hh(e){if(!Ym(e))throw TypeError(`[VueTypes error]: You must provide an array as argument.`);var t=`oneOf - value should be one of "`+e.join(`", "`)+`".`,n=e.reduce(function(e,t){if(t!=null){var n=t.constructor;e.indexOf(n)===-1&&e.push(n)}return e},[]);return th(`oneOf`,{type:n.length>0?n:void 0,validator:function(n){var r=e.indexOf(n)!==-1;return r||Km(t),r}})}function gh(e){if(!Ym(e))throw TypeError(`[VueTypes error]: You must provide an array as argument`);for(var t=!1,n=[],r=0;r0&&n.some(function(e){return a.indexOf(e)===-1})){var o=n.filter(function(e){return a.indexOf(e)===-1});return Km(o.length===1?`shape - required property "`+o[0]+`" is not defined.`:`shape - required properties "`+o.join(`", "`)+`" are not defined.`),!1}return a.every(function(n){if(t.indexOf(n)===-1)return!0===i._vueTypes_isLoose||(Km(`shape - shape definition does not include a "`+n+`" property. Allowed keys: "`+t.join(`", "`)+`".`),!1);var a=eh(e[n],r[n],!0);return typeof a==`string`&&Km(`shape - "`+n+`" property validation error: + `+ih(a)),!0===a})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var xh=function(){function e(){}return e.extend=function(e){var t=this;if(Ym(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=r!==void 0&&r,a=e.getter,o=a!==void 0&&a,s=Rm(e,[`name`,`validate`,`getter`]);if(qm(this,n))throw TypeError(`[VueTypes error]: Type "`+n+`" already defined`);var c,l=s.type;return Zm(l)?(delete s.type,Object.defineProperty(this,n,o?{get:function(){return rh(n,l,s)}}:{value:function(){var e,t=rh(n,l,s);return t.validator&&=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments))),t}})):(c=o?{get:function(){var e=Object.assign({},s);return i?nh(n,e):th(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},s);return e=i?nh(n,r):th(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,c))},Fm(e,null,[{key:`any`,get:function(){return ah()}},{key:`func`,get:function(){return oh().def(this.defaults.func)}},{key:`bool`,get:function(){return sh().def(this.defaults.bool)}},{key:`string`,get:function(){return ch().def(this.defaults.string)}},{key:`number`,get:function(){return lh().def(this.defaults.number)}},{key:`array`,get:function(){return uh().def(this.defaults.array)}},{key:`object`,get:function(){return dh().def(this.defaults.object)}},{key:`integer`,get:function(){return fh().def(this.defaults.integer)}},{key:`symbol`,get:function(){return ph()}}]),e}();function Sh(e){var t;return e===void 0&&(e={func:function(){},bool:!0,string:``,number:0,array:function(){return[]},object:function(){return{}},integer:0}),(t=function(t){function n(){return t.apply(this,arguments)||this}return Lm(n,t),Fm(n,null,[{key:`sensibleDefaults`,get:function(){return Im({},this.defaults)},set:function(t){this.defaults=!1===t?{}:Im({},!0===t?e:t)}}]),n}(xh)).defaults=Im({},e),t}xh.defaults={},xh.custom=mh,xh.oneOf=hh,xh.instanceOf=vh,xh.oneOfType=gh,xh.arrayOf=_h,xh.objectOf=yh,xh.shape=bh,xh.utils={validate:function(e,t){return!0===eh(t,e,!0)},toType:function(e,t,n){return n===void 0&&(n=!1),n?nh(e,t):th(e,t)}},function(e){function t(){return e.apply(this,arguments)||this}return Lm(t,e),t}(Sh());var Q=Sh({func:void 0,bool:void 0,string:void 0,number:void 0,array:void 0,object:void 0,integer:void 0});Q.extend([{name:`looseBool`,getter:!0,type:Boolean,default:void 0},{name:`style`,getter:!0,type:[String,Object],default:void 0},{name:`VueNode`,getter:!0,type:null}]);function Ch(e){return e.default=void 0,e}var wh=((e,t,n)=>{Fu(e,`[ant-design-vue: ${t}] ${n}`)});function Th(){return window}function Eh(e,t){if(!e.getClientRects().length)return 0;let n=e.getBoundingClientRect();return n.width||n.height?t===window?(t=e.ownerDocument.documentElement,n.top-t.clientTop):n.top-t.getBoundingClientRect().top:n.top}var Dh=/#([\S ]+)$/,Oh=U({compatConfig:{MODE:3},name:`AAnchor`,inheritAttrs:!1,props:{prefixCls:String,offsetTop:Number,bounds:Number,affix:{type:Boolean,default:!0},showInkInFixed:{type:Boolean,default:!1},getContainer:Function,wrapperClass:String,wrapperStyle:{type:Object,default:void 0},getCurrentAnchor:Function,targetOffset:Number,items:xl(),direction:Q.oneOf([`vertical`,`horizontal`]).def(`vertical`),onChange:Function,onClick:Function},setup(e,t){let{emit:n,attrs:r,slots:i,expose:a}=t,{prefixCls:o,getTargetContainer:s,direction:c}=Z(`anchor`,e),l=G(()=>e.direction??`vertical`),u=B(null),d=B(),f=Yt({links:[],scrollContainer:null,scrollEvent:null,animating:!1}),p=B(null),m=G(()=>{let{getContainer:t}=e;return t||s?.value||Th}),_=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,n=[],r=m.value();return f.links.forEach(i=>{let a=Dh.exec(i.toString());if(!a)return;let o=document.getElementById(a[1]);if(o){let a=Eh(o,r);at.top>e.top?t:e).link:``},v=t=>{let{getCurrentAnchor:r}=e;p.value!==t&&(p.value=typeof r==`function`?r(t):t,n(`change`,t))},y=t=>{let{offsetTop:n,targetOffset:r}=e;v(t);let i=Dh.exec(t);if(!i)return;let a=document.getElementById(i[1]);if(!a)return;let o=m.value(),s=wm(o,!0)+Eh(a,o);s-=r===void 0?n||0:r,f.animating=!0,Tm(s,{callback:()=>{f.animating=!1},getContainer:m.value})};a({scrollTo:y});let b=()=>{if(f.animating)return;let{offsetTop:t,bounds:n,targetOffset:r}=e,i=_(r===void 0?t||0:r,n);v(i)},x=()=>{let e=d.value.querySelector(`.${o.value}-link-title-active`);if(e&&u.value){let t=l.value===`horizontal`;u.value.style.top=t?``:`${e.offsetTop+e.clientHeight/2}px`,u.value.style.height=t?``:`${e.clientHeight}px`,u.value.style.left=t?`${e.offsetLeft}px`:``,u.value.style.width=t?`${e.clientWidth}px`:``,t&&xm(e,{scrollMode:`if-needed`,block:`nearest`})}};Om({registerLink:e=>{f.links.includes(e)||f.links.push(e)},unregisterLink:e=>{let t=f.links.indexOf(e);t!==-1&&f.links.splice(t,1)},activeLink:p,scrollTo:y,handleClick:(e,t)=>{n(`click`,e,t)},direction:l}),$r(()=>{zn(()=>{let e=m.value();f.scrollContainer=e,f.scrollEvent=Tl(f.scrollContainer,`scroll`,b),b()})}),ni(()=>{f.scrollEvent&&f.scrollEvent.remove()}),ti(()=>{if(f.scrollEvent){let e=m.value();f.scrollContainer!==e&&(f.scrollContainer=e,f.scrollEvent.remove(),f.scrollEvent=Tl(f.scrollContainer,`scroll`,b),b())}x()});let S=e=>Array.isArray(e)?e.map(e=>{let{children:t,key:n,href:r,target:a,class:o,style:s,title:c}=e;return W(Nm,{key:n,href:r,target:a,class:o,style:s,title:c,customTitleProps:e},{default:()=>[l.value===`vertical`?S(t):null],customTitle:i.customTitle})}):null,[C,w]=Mm(o);return()=>{let{offsetTop:t,affix:n,showInkInFixed:a}=e,s=o.value,f=K(`${s}-ink`,{[`${s}-ink-visible`]:p.value}),_=K(w.value,e.wrapperClass,`${s}-wrapper`,{[`${s}-wrapper-horizontal`]:l.value===`horizontal`,[`${s}-rtl`]:c.value===`rtl`}),v=K(s,{[`${s}-fixed`]:!n&&!a}),y=W(`div`,{class:_,style:g({maxHeight:t?`calc(100vh - ${t}px)`:`100vh`},e.wrapperStyle),ref:d},[W(`div`,{class:v},[W(`span`,{class:f,ref:u},null),Array.isArray(e.items)?S(e.items):i.default?.call(i)])]);return C(n?W(fm,h(h({},r),{},{offsetTop:t,target:m.value}),{default:()=>[y]}):y)}}});Oh.Link=Nm,Oh.install=function(e){return e.component(Oh.name,Oh),e.component(Oh.Link.name,Oh.Link),e};var kh=Oh;function Ah(e,t){let{key:n}=e,r;return`value`in e&&({value:r}=e),n??(r===void 0?`rc-index-key-${t}`:r)}function jh(e,t){let{label:n,value:r,options:i}=e||{};return{label:n||(t?`children`:`label`),value:r||`value`,options:i||`options`}}function Mh(e){let{fieldNames:t,childrenAsData:n}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=[],{label:i,value:a,options:o}=jh(t,!1);function s(e,t){e.forEach(e=>{let c=e[i];if(t||!(o in e)){let n=e[a];r.push({key:Ah(e,r.length),groupOption:t,data:e,label:c,value:n})}else{let t=c;t===void 0&&n&&(t=e.label),r.push({key:Ah(e,r.length),group:!0,data:e,label:t}),s(e[o],!0)}})}return s(e,!1),r}function Nh(e){let t=g({},e);return`props`in t||Object.defineProperty(t,"props",{get(){return t}}),t}function Ph(e,t){if(!t||!t.length)return null;let n=!1;function r(e,t){let[i,...a]=t;if(!i)return[e];let o=e.split(i);return n||=o.length>1,o.reduce((e,t)=>[...e,...r(t,a)],[]).filter(e=>e)}let i=r(e,t);return n?i:null}function Fh(){return``}function Ih(e){return e?e.ownerDocument:window.document}function Lh(){}var Rh=()=>({action:Q.oneOfType([Q.string,Q.arrayOf(Q.string)]).def([]),showAction:Q.any.def([]),hideAction:Q.any.def([]),getPopupClassNameFromAlign:Q.any.def(Fh),onPopupVisibleChange:Function,afterPopupVisibleChange:Q.func.def(Lh),popup:Q.any,arrow:Q.bool.def(!0),popupStyle:{type:Object,default:void 0},prefixCls:Q.string.def(`rc-trigger-popup`),popupClassName:Q.string.def(``),popupPlacement:String,builtinPlacements:Q.object,popupTransitionName:String,popupAnimation:Q.any,mouseEnterDelay:Q.number.def(0),mouseLeaveDelay:Q.number.def(.1),zIndex:Number,focusDelay:Q.number.def(0),blurDelay:Q.number.def(.15),getPopupContainer:Function,getDocument:Q.func.def(Ih),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:Q.object.def(()=>({})),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function}),zh={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,arrow:{type:Boolean,default:!0},animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},Bh=g(g({},zh),{mobile:{type:Object}}),Vh=g(g({},zh),{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function Hh(e){let{prefixCls:t,animation:n,transitionName:r}=e;return n?{name:`${t}-${n}`}:r?{name:r}:{}}function Uh(e){let{prefixCls:t,visible:n,zIndex:r,mask:i,maskAnimation:a,maskTransitionName:o}=e;if(!i)return null;let s={};return(o||a)&&(s=Hh({prefixCls:t,transitionName:o,animation:a})),W(Uo,h({appear:!0},s),{default:()=>[Qn(W(`div`,{style:{zIndex:r},class:`${t}-mask`},null),[[pi(`if`),n]])]})}Uh.displayName=`Mask`;var Wh=U({compatConfig:{MODE:3},name:`MobilePopupInner`,inheritAttrs:!1,props:Bh,emits:[`mouseenter`,`mouseleave`,`mousedown`,`touchstart`,`align`],setup(e,t){let{expose:n,slots:r}=t,i=B();return n({forceAlign:()=>{},getElement:()=>i.value}),()=>{let{zIndex:t,visible:n,prefixCls:a,mobile:{popupClassName:o,popupStyle:s,popupMotion:c={},popupRender:l}={}}=e,u=g({zIndex:t},s),d=Gc(r.default?.call(r));d.length>1&&(d=W(`div`,{class:`${a}-content`},[d])),l&&(d=l(d));let f=K(a,o);return W(Uo,h({ref:i},c),{default:()=>[n?W(`div`,{class:f,style:u},[d]):null]})}}}),Gh=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Kh=[`measure`,`align`,null,`motion`],qh=((e,t)=>{let n=V(null),r=V(),i=V(!1);function a(e){i.value||(n.value=e)}function o(){pl.cancel(r.value)}function s(e){o(),r.value=pl(()=>{let t=n.value;switch(n.value){case`align`:t=`motion`;break;case`motion`:t=`stable`}a(t),e?.()})}return H(e,()=>{a(`measure`)},{immediate:!0,flush:`post`}),$r(()=>{H(n,()=>{n.value===`measure`&&t(),n.value&&(r.value=pl(()=>Gh(void 0,void 0,void 0,function*(){let e=Kh.indexOf(n.value),t=Kh[e+1];t&&e!==-1&&a(t)})))},{immediate:!0,flush:`post`})}),ni(()=>{i.value=!0,o()}),[n,s]}),Jh=(e=>{let t=V({width:0,height:0});function n(e){t.value={width:e.offsetWidth,height:e.offsetHeight}}return[G(()=>{let n={};if(e.value){let{width:r,height:i}=t.value;e.value.indexOf(`height`)!==-1&&i?n.height=`${i}px`:e.value.indexOf(`minHeight`)!==-1&&i&&(n.minHeight=`${i}px`),e.value.indexOf(`width`)!==-1&&r?n.width=`${r}px`:e.value.indexOf(`minWidth`)!==-1&&r&&(n.minWidth=`${r}px`)}return n}),n]});function Yh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xh(e){for(var t=1;t=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function tte(e,t,n,r){var i=Gg.clone(e),a={width:t.width,height:t.height};return r.adjustX&&i.left=n.left&&i.left+a.width>n.right&&(a.width-=i.left+a.width-n.right),r.adjustX&&i.left+a.width>n.right&&(i.left=Math.max(n.right-a.width,n.left)),r.adjustY&&i.top=n.top&&i.top+a.height>n.bottom&&(a.height-=i.top+a.height-n.bottom),r.adjustY&&i.top+a.height>n.bottom&&(i.top=Math.max(n.bottom-a.height,n.top)),Gg.mix(i,a)}function Xg(e){var t,n,r;if(!Gg.isWindow(e)&&e.nodeType!==9)t=Gg.offset(e),n=Gg.outerWidth(e),r=Gg.outerHeight(e);else{var i=Gg.getWindow(e);t={left:Gg.getWindowScrollLeft(i),top:Gg.getWindowScrollTop(i)},n=Gg.viewportWidth(i),r=Gg.viewportHeight(i)}return t.width=n,t.height=r,t}function Zg(e,t){var n=t.charAt(0),r=t.charAt(1),i=e.width,a=e.height,o=e.left,s=e.top;return n===`c`?s+=a/2:n===`b`&&(s+=a),r===`c`?o+=i/2:r===`r`&&(o+=i),{left:o,top:s}}function Qg(e,t,n,r,i){var a=Zg(t,n[1]),o=Zg(e,n[0]),s=[o.left-a.left,o.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-i[0]),top:Math.round(e.top-s[1]+r[1]-i[1])}}function $g(e,t,n){return e.leftn.right}function e_(e,t,n){return e.topn.bottom}function nte(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.right||r.top>=n.bottom}function o_(e,t,n){var r=n.target||t;return a_(e,Xg(r),n,!ite(r,n.overflow&&n.overflow.alwaysByViewport))}o_.__getOffsetParent=qg,o_.__getVisibleRectForElement=Yg;function ate(e,t,n){var r,i,a=Gg.getDocument(e),o=a.defaultView||a.parentWindow,s=Gg.getWindowScrollLeft(o),c=Gg.getWindowScrollTop(o),l=Gg.viewportWidth(o),u=Gg.viewportHeight(o);r=`pageX`in t?t.pageX:s+t.clientX,i=`pageY`in t?t.pageY:c+t.clientY;var d={left:r,top:i,width:0,height:0},f=r>=0&&r<=s+l&&i>=0&&i<=c+u,p=[n.points[0],`cc`];return a_(e,d,Xh(Xh({},n),{},{points:p}),f)}function s_(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3],i=e;if(Array.isArray(e)&&(i=rl(e)[0]),!i)return null;let a=Za(i,t,r);return a.props=n?g(g({},a.props),t):a.props,Ru(typeof a.props.class!=`object`,`class must be string`),a}function ote(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(e=>s_(e,t,n))}function c_(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Array.isArray(e))return e.map(e=>c_(e,t,n,r));{if(!Wa(e))return e;let i=s_(e,t,n,r);return Array.isArray(i.children)&&(i.children=c_(i.children)),i}}function ste(e,t,n){nc(Za(e,g({},t)),n)}var l_=e=>(e||[]).some(e=>!Wa(e)||!(e.type===Pa||e.type===Ma&&!l_(e.children)))?e:null;function u_(e,t,n,r){let i=e[t]?.call(e,n);return l_(i)?i:r?.()}var d_=(e=>{if(!e)return!1;if(e.offsetParent)return!0;if(e.getBBox){let t=e.getBBox();if(t.width||t.height)return!0}if(e.getBoundingClientRect){let t=e.getBoundingClientRect();if(t.width||t.height)return!0}return!1});function cte(e,t){return e===t?!0:!e||!t?!1:`pageX`in t&&`pageY`in t?e.pageX===t.pageX&&e.pageY===t.pageY:`clientX`in t&&`clientY`in t&&e.clientX===t.clientX&&e.clientY===t.clientY}function lte(e,t){e!==document.activeElement&&gu(t,e)&&typeof e.focus==`function`&&e.focus()}function f_(e,t){let n=null,r=null;function i(e){let[{target:i}]=e;if(!document.documentElement.contains(i))return;let{width:a,height:o}=i.getBoundingClientRect(),s=Math.floor(a),c=Math.floor(o);(n!==s||r!==c)&&Promise.resolve().then(()=>{t({width:s,height:c})}),n=s,r=c}let a=new Rc(i);return e&&a.observe(e),()=>{a.disconnect()}}var ute=((e,t)=>{let n=!1,r=null;function i(){clearTimeout(r)}function a(o){if(!n||o===!0){if(e()===!1)return;n=!0,i(),r=setTimeout(()=>{n=!1},t.value)}else i(),r=setTimeout(()=>{n=!1,a()},t.value)}return[a,()=>{n=!1,i()}]});function dte(){this.__data__=[],this.size=0}function p_(e,t){return e===t||e!==e&&t!==t}function m_(e,t){for(var n=e.length;n--;)if(p_(e[n][0],t))return n;return-1}var fte=Array.prototype.splice;function pte(e){var t=this.__data__,n=m_(t,e);return n<0?!1:(n==t.length-1?t.pop():fte.call(t,n,1),--this.size,!0)}function mte(e){var t=this.__data__,n=m_(t,e);return n<0?void 0:t[n][1]}function hte(e){return m_(this.__data__,e)>-1}function gte(e,t){var n=this.__data__,r=m_(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function h_(e){var t=-1,n=e==null?0:e.length;for(this.clear();++ts))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&B_?new I_:void 0;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e-1&&e%1==0&&e<=jv}var Nv=`[object Arguments]`,Pv=`[object Array]`,Fv=`[object Boolean]`,Iv=`[object Date]`,Lv=`[object Error]`,Rv=`[object Function]`,zv=`[object Map]`,Bv=`[object Number]`,Vv=`[object Object]`,Hv=`[object RegExp]`,Uv=`[object Set]`,Wv=`[object String]`,Gv=`[object WeakMap]`,Kv=`[object ArrayBuffer]`,qv=`[object DataView]`,Jv=`[object Float32Array]`,Yv=`[object Float64Array]`,Xv=`[object Int8Array]`,Zv=`[object Int16Array]`,Qv=`[object Int32Array]`,$v=`[object Uint8Array]`,ey=`[object Uint8ClampedArray]`,ty=`[object Uint16Array]`,ny=`[object Uint32Array]`,ry={};ry[Jv]=ry[Yv]=ry[Xv]=ry[Zv]=ry[Qv]=ry[$v]=ry[ey]=ry[ty]=ry[ny]=!0,ry[Nv]=ry[Pv]=ry[Kv]=ry[Fv]=ry[qv]=ry[Iv]=ry[Lv]=ry[Rv]=ry[zv]=ry[Bv]=ry[Vv]=ry[Hv]=ry[Uv]=ry[Wv]=ry[Gv]=!1;function iy(e){return gv(e)&&Mv(e.length)&&!!ry[S_(e)]}function ay(e){return function(t){return e(t)}}var oy=typeof exports==`object`&&exports&&!exports.nodeType&&exports,sy=oy&&typeof module==`object`&&module&&!module.nodeType&&module,cy=sy&&sy.exports===oy&&g_.process,ly=function(){try{return sy&&sy.require&&sy.require(`util`).types||cy&&cy.binding&&cy.binding(`util`)}catch{}}(),uy=ly&&ly.isTypedArray,dy=uy?ay(uy):iy,fy=Object.prototype.hasOwnProperty;function py(e,t){var n=cv(e),r=!n&&Sv(e),i=!n&&!r&&Dv(e),a=!n&&!r&&!i&&dy(e),o=n||r||i||a,s=o?hv(e.length,String):[],c=s.length;for(var l in e)(t||fy.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||Av(l,c)))&&s.push(l);return s}var my=Object.prototype;function hy(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||my)}function gy(e,t){return function(n){return e(t(n))}}var _y=gy(Object.keys,Object),vy=Object.prototype.hasOwnProperty;function yy(e){if(!hy(e))return _y(e);var t=[];for(var n in Object(e))vy.call(e,n)&&n!=`constructor`&&t.push(n);return t}function by(e){return e!=null&&Mv(e.length)&&!w_(e)}function xy(e){return by(e)?py(e):yy(e)}function Sy(e){return lv(e,xy,mv)}var Cy=1,wy=Object.prototype.hasOwnProperty;function Ty(e,t,n,r,i,a){var o=n&Cy,s=Sy(e),c=s.length;if(c!=Sy(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:wy.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l{let{disabled:t,target:n,align:r,onAlign:o}=e;if(!t&&n&&a.value){let e=a.value,t,s=Qy(n),c=$y(n);i.value.element=s,i.value.point=c,i.value.align=r;let{activeElement:l}=document;return s&&d_(s)?t=o_(e,s,r):c&&(t=ate(e,c,r)),lte(l,e),o&&t&&o(e,t),!0}return!1},G(()=>e.monitorBufferTime)),c=B({cancel:()=>{}}),l=B({cancel:()=>{}}),u=()=>{let t=e.target,n=Qy(t),r=$y(t);a.value!==l.value.element&&(l.value.cancel(),l.value.element=a.value,l.value.cancel=f_(a.value,o)),(i.value.element!==n||!cte(i.value.point,r)||!Xy(i.value.align,e.align))&&(o(),c.value.element!==n&&(c.value.cancel(),c.value.element=n,c.value.cancel=f_(n,o)))};$r(()=>{zn(()=>{u()})}),ti(()=>{zn(()=>{u()})}),H(()=>e.disabled,e=>{e?s():o()},{immediate:!0,flush:`post`});let d=B(null);return H(()=>e.monitorWindowResize,e=>{e?d.value||=Tl(window,`resize`,o):d.value&&=(d.value.remove(),null)},{flush:`post`}),ri(()=>{c.value.cancel(),l.value.cancel(),d.value&&d.value.remove(),s()}),n({forceAlign:()=>o(!0)}),()=>{let e=r?.default();return e?s_(e[0],{ref:a},!0,!0):null}}}),tb=e=>e!==void 0&&(e===`topLeft`||e===`topRight`)?`slide-down`:`slide-up`,nb=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return g(e?{name:e,appear:!0,enterFromClass:`${e}-enter ${e}-enter-prepare ${e}-enter-start`,enterActiveClass:`${e}-enter ${e}-enter-prepare`,enterToClass:`${e}-enter ${e}-enter-active`,leaveFromClass:` ${e}-leave`,leaveActiveClass:`${e}-leave ${e}-leave-active`,leaveToClass:`${e}-leave ${e}-leave-active`}:{css:!1},t)},rb=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return g(e?{name:e,appear:!0,appearActiveClass:`${e}`,appearToClass:`${e}-appear ${e}-appear-active`,enterFromClass:`${e}-appear ${e}-enter ${e}-appear-prepare ${e}-enter-prepare`,enterActiveClass:`${e}`,enterToClass:`${e}-enter ${e}-appear ${e}-appear-active ${e}-enter-active`,leaveActiveClass:`${e} ${e}-leave`,leaveToClass:`${e}-leave-active`}:{css:!1},t)},ib=(e,t,n)=>n===void 0?`${e}-${t}`:n,ab=U({compatConfig:{MODE:3},name:`PopupInner`,inheritAttrs:!1,props:zh,emits:[`mouseenter`,`mouseleave`,`mousedown`,`touchstart`,`align`],setup(e,t){let{expose:n,attrs:r,slots:i}=t,a=V(),o=V(),s=V(),[c,l]=Jh(vn(e,`stretch`)),u=()=>{e.stretch&&l(e.getRootDomNode())},d=V(!1),f;H(()=>e.visible,t=>{clearTimeout(f),t?f=setTimeout(()=>{d.value=e.visible}):d.value=!1},{immediate:!0});let[p,m]=qh(d,u),_=V(),v=()=>e.point?e.point:e.getRootDomNode,y=()=>{var e;(e=a.value)==null||e.forceAlign()},b=(t,n)=>{var r;let i=e.getClassNameFromAlign(n),a=s.value;s.value!==i&&(s.value=i),p.value===`align`&&(a===i?m(()=>{var e;(e=_.value)==null||e.call(_)}):Promise.resolve().then(()=>{y()}),(r=e.onAlign)==null||r.call(e,t,n))},x=G(()=>{let t=typeof e.animation==`object`?e.animation:Hh(e);return[`onAfterEnter`,`onAfterLeave`].forEach(e=>{let n=t[e];t[e]=e=>{m(),p.value=`stable`,n?.(e)}}),t}),S=()=>new Promise(e=>{_.value=e});H([x,p],()=>{!x.value&&p.value===`motion`&&m()},{immediate:!0}),n({forceAlign:y,getElement:()=>o.value.$el||o.value});let C=G(()=>!e.align?.points||p.value!==`align`&&p.value!==`stable`);return()=>{let{zIndex:t,align:n,prefixCls:l,destroyPopupOnHide:u,onMouseenter:f,onMouseleave:m,onTouchstart:_=()=>{},onMousedown:y}=e,w=p.value,T=[g(g({},c.value),{zIndex:t,opacity:w===`motion`||w===`stable`||!d.value?null:0,pointerEvents:!d.value&&w!==`stable`?`none`:null}),r.style],E=Gc(i.default?.call(i,{visible:e.visible}));E.length>1&&(E=W(`div`,{class:`${l}-content`},[E]));let D=K(l,r.class,s.value,!e.arrow&&`${l}-arrow-hidden`),O=d.value||!e.visible?nb(x.value.name,x.value):{};return W(Uo,h(h({ref:o},O),{},{onBeforeEnter:S}),{default:()=>!u||e.visible?Qn(W(eb,{target:v(),key:`popup`,ref:a,monitorWindowResize:!0,disabled:C.value,align:n,onAlign:b},{default:()=>W(`div`,{class:D,onMouseenter:f,onMouseleave:m,onMousedown:$s(y,[`capture`]),[wl?`onTouchstartPassive`:`onTouchstart`]:$s(_,[`capture`]),style:T},[E])}),[[ss,d.value]]):null})}}}),ob=U({compatConfig:{MODE:3},name:`Popup`,inheritAttrs:!1,props:Vh,setup(e,t){let{attrs:n,slots:r,expose:i}=t,a=V(!1),o=V(!1),s=V(),c=V();return H([()=>e.visible,()=>e.mobile],()=>{a.value=e.visible,e.visible&&e.mobile&&(o.value=!0)},{immediate:!0,flush:`post`}),i({forceAlign:()=>{var e;(e=s.value)==null||e.forceAlign()},getElement:()=>s.value?.getElement()}),()=>{let t=g(g(g({},e),n),{visible:a.value}),i=o.value?W(Wh,h(h({},t),{},{mobile:e.mobile,ref:s}),{default:r.default}):W(ab,h(h({},t),{},{ref:s}),{default:r.default});return W(`div`,{ref:c},[W(Uh,t,null),i])}}});function sb(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function cb(e,t,n){let r=e[t]||{};return g(g({},r),n)}function lb(e,t,n,r){let{points:i}=n,a=Object.keys(e);for(let n=0;n0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=typeof e==`function`?e(this.$data,this.$props):e;if(this.getDerivedStateFromProps){let e=this.getDerivedStateFromProps(Jc(this),g(g({},this.$data),n));if(e===null)return;n=g(g({},n),e||{})}g(this.$data,n),this._.isMounted&&this.$forceUpdate(),zn(()=>{t&&t()})},__emit(){let e=[].slice.call(arguments,0),t=e[0];t=`on${t[0].toUpperCase()}${t.substring(1)}`;let n=this.$props[t]||this.$attrs[t];if(e.length&&n){if(Array.isArray(n))for(let t=0,r=n.length;t1&&arguments[1]!==void 0?arguments[1]:{inTriggerContext:!0}).inTriggerContext,shouldRender:G(()=>{let{sPopupVisible:t,popupRef:n,forceRender:r,autoDestroy:i}=e||{},a=!1;return(t||n||r)&&(a=!0),!t&&i&&(a=!1),a})})},pb=()=>{fb({},{inTriggerContext:!1});let e=tr(db,{shouldRender:G(()=>!1),inTriggerContext:!1});return{shouldRender:G(()=>e.shouldRender.value||e.inTriggerContext===!1)}},mb=U({compatConfig:{MODE:3},name:`Portal`,inheritAttrs:!1,props:{getContainer:Q.func.isRequired,didUpdate:Function},setup(e,t){let{slots:n}=t,r=!0,i,{shouldRender:a}=pb();function o(){a.value&&(i=e.getContainer())}Qr(()=>{r=!1,o()}),$r(()=>{i||o()});let s=H(a,()=>{a.value&&!i&&(i=e.getContainer()),i&&s()});return ti(()=>{zn(()=>{var t;a.value&&((t=e.didUpdate)==null||t.call(e,e))})}),()=>a.value?r?n.default?.call(n):i?W(xr,{to:i},n):null:null}}),hb;function gb(e){if(typeof document>`u`)return 0;if(e||hb===void 0){let e=document.createElement(`div`);e.style.width=`100%`,e.style.height=`200px`;let t=document.createElement(`div`),n=t.style;n.position=`absolute`,n.top=`0`,n.left=`0`,n.pointerEvents=`none`,n.visibility=`hidden`,n.width=`200px`,n.height=`150px`,n.overflow=`hidden`,t.appendChild(e),document.body.appendChild(t);let r=e.offsetWidth;t.style.overflow=`scroll`;let i=e.offsetWidth;r===i&&(i=t.clientWidth),document.body.removeChild(t),hb=r-i}return hb}function _b(e){let t=e.match(/^(.*)px$/),n=Number(t?.[1]);return Number.isNaN(n)?gb():n}function vb(e){if(typeof document>`u`||!e||!(e instanceof Element))return{width:0,height:0};let{width:t,height:n}=getComputedStyle(e,`::-webkit-scrollbar`);return{width:_b(t),height:_b(n)}}var yb=`vc-util-locker-${Date.now()}`,bb=0;function xb(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}function Sb(e){let t=G(()=>!!e&&!!e.value);bb+=1;let n=`${yb}_${bb}`;ar(e=>{if(hu()){if(t.value){let e=gb();Ou(` +html body { + overflow-y: hidden; + ${xb()?`width: calc(100% - ${e}px);`:``} +}`,n)}else Eu(n);e(()=>{Eu(n)})}},{flush:`post`})}var Cb=0,wb=hu(),Tb=e=>{if(!wb)return null;if(e){if(typeof e==`string`)return document.querySelectorAll(e)[0];if(typeof e==`function`)return e();if(typeof e==`object`&&e instanceof window.HTMLElement)return e}return document.body},Eb=U({compatConfig:{MODE:3},name:`PortalWrapper`,inheritAttrs:!1,props:{wrapperClassName:String,forceRender:{type:Boolean,default:void 0},getContainer:Q.any,visible:{type:Boolean,default:void 0},autoLock:J(),didUpdate:Function},setup(e,t){let{slots:n}=t,r=V(),i=V(),a=V(),o=V(1),s=hu()&&document.createElement(`div`),c=()=>{var e;r.value===s&&((e=r.value?.parentNode)==null||e.removeChild(r.value)),r.value=null},l=null,u=function(){return arguments.length>0&&arguments[0]!==void 0&&arguments[0]||r.value&&!r.value.parentNode?(l=Tb(e.getContainer),l?(l.appendChild(r.value),!0):!1):!0},d=()=>wb?(r.value||(r.value=s,u(!0)),f(),r.value):null,f=()=>{let{wrapperClassName:t}=e;r.value&&t&&t!==r.value.className&&(r.value.className=t)};return ti(()=>{f(),u()}),Sb(G(()=>e.autoLock&&e.visible&&hu()&&(r.value===document.body||r.value===s))),$r(()=>{let t=!1;H([()=>e.visible,()=>e.getContainer],(n,r)=>{let[i,a]=n,[o,s]=r;wb&&(l=Tb(e.getContainer),l===document.body&&(i&&!o?Cb+=1:t&&--Cb)),t&&(typeof a==`function`&&typeof s==`function`?a.toString()!==s.toString():a!==s)&&c(),t=!0},{immediate:!0,flush:`post`}),zn(()=>{u()||(a.value=pl(()=>{o.value+=1}))})}),ni(()=>{let{visible:t}=e;wb&&l===document.body&&(Cb=t&&Cb?Cb-1:Cb),c(),pl.cancel(a.value)}),()=>{let{forceRender:t,visible:r}=e,a=null,s={getOpenCount:()=>Cb,getContainer:d};return o.value&&(t||r||i.value)&&(a=W(mb,{getContainer:d,ref:i,didUpdate:e.didUpdate},{default:()=>n.default?.call(n,s)})),a}}}),Db=[`onClick`,`onMousedown`,`onTouchstart`,`onMouseenter`,`onMouseleave`,`onFocus`,`onBlur`,`onContextmenu`],Ob=U({compatConfig:{MODE:3},name:`Trigger`,mixins:[ub],inheritAttrs:!1,props:Rh(),setup(e){let t=G(()=>{let{popupPlacement:t,popupAlign:n,builtinPlacements:r}=e;return t&&r?cb(r,t,n):n}),n=V(null);return{vcTriggerContext:tr(`vcTriggerContext`,{}),popupRef:n,setPopupRef:e=>{n.value=e},triggerRef:V(null),align:t,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data(){let e=this.$props,t;return t=this.popupVisible===void 0?!!e.defaultPopupVisible:!!e.popupVisible,Db.forEach(e=>{this[`fire${e}`]=t=>{this.fireEvents(e,t)}}),{prevPopupVisible:t,sPopupVisible:t,point:null}},watch:{popupVisible(e){e!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=e)}},created(){er(`vcTriggerContext`,{onPopupMouseDown:this.onPopupMouseDown,onPopupMouseenter:this.onPopupMouseenter,onPopupMouseleave:this.onPopupMouseleave}),fb(this)},deactivated(){this.setPopupVisible(!1)},mounted(){this.$nextTick(()=>{this.updatedCal()})},updated(){this.$nextTick(()=>{this.updatedCal()})},beforeUnmount(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),pl.cancel(this.attachId)},methods:{updatedCal(){let e=this.$props;if(this.$data.sPopupVisible){let t;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(t=e.getDocument(this.getRootDomNode()),this.clickOutsideHandler=Tl(t,`mousedown`,this.onDocumentClick)),this.touchOutsideHandler||=(t||=e.getDocument(this.getRootDomNode()),Tl(t,`touchstart`,this.onDocumentClick,wl?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(t||=e.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=Tl(t,`scroll`,this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=Tl(window,`blur`,this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter(e){let{mouseEnterDelay:t}=this.$props;this.fireEvents(`onMouseenter`,e),this.delaySetPopupVisible(!0,t,t?null:e)},onMouseMove(e){this.fireEvents(`onMousemove`,e),this.setPoint(e)},onMouseleave(e){this.fireEvents(`onMouseleave`,e),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter(){let{vcTriggerContext:e={}}=this;e.onPopupMouseenter&&e.onPopupMouseenter(),this.clearDelayTimer()},onPopupMouseleave(e){if(e&&e.relatedTarget&&!e.relatedTarget.setTimeout&&gu(this.popupRef?.getElement(),e.relatedTarget))return;this.isMouseLeaveToHide()&&this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay);let{vcTriggerContext:t={}}=this;t.onPopupMouseleave&&t.onPopupMouseleave(e)},onFocus(e){this.fireEvents(`onFocus`,e),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown(e){this.fireEvents(`onMousedown`,e),this.preClickTime=Date.now()},onTouchstart(e){this.fireEvents(`onTouchstart`,e),this.preTouchTime=Date.now()},onBlur(e){gu(e.target,e.relatedTarget||document.activeElement)||(this.fireEvents(`onBlur`,e),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu(e){e.preventDefault(),this.fireEvents(`onContextmenu`,e),this.setPopupVisible(!0,e)},onContextmenuClose(){this.isContextmenuToShow()&&this.close()},onClick(e){if(this.fireEvents(`onClick`,e),this.focusTime){let e;if(this.preClickTime&&this.preTouchTime?e=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?e=this.preClickTime:this.preTouchTime&&(e=this.preTouchTime),Math.abs(e-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault(),e&&e.domEvent&&e.domEvent.preventDefault();let t=!this.$data.sPopupVisible;(this.isClickToHide()&&!t||t&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,e)},onPopupMouseDown(){let{vcTriggerContext:e={}}=this;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(()=>{this.hasPopupMouseDown=!1},0),e.onPopupMouseDown&&e.onPopupMouseDown(...arguments)},onDocumentClick(e){if(this.$props.mask&&!this.$props.maskClosable)return;let t=e.target,n=this.getRootDomNode(),r=this.getPopupDomNode();(!gu(n,t)||this.isContextMenuOnly())&&!gu(r,t)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)},getPopupDomNode(){return this.popupRef?.getElement()||null},getRootDomNode(){let{getTriggerDOMNode:e}=this.$props;if(e)return qc(e(this.triggerRef?.$el?.nodeName===`#comment`?null:qc(this.triggerRef)));try{let e=this.triggerRef?.$el?.nodeName===`#comment`?null:qc(this.triggerRef);if(e)return e}catch{}return qc(this)},handleGetPopupClassFromAlign(e){let t=[],{popupPlacement:n,builtinPlacements:r,prefixCls:i,alignPoint:a,getPopupClassNameFromAlign:o}=this.$props;return n&&r&&t.push(lb(r,i,e,a)),o&&t.push(o(e)),t.join(` `)},getPopupAlign(){let{popupPlacement:e,popupAlign:t,builtinPlacements:n}=this.$props;return e&&n?cb(n,e,t):t},getComponent(){let e={};this.isMouseEnterToShow()&&(e.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(e.onMouseleave=this.onPopupMouseleave),e.onMousedown=this.onPopupMouseDown,e[wl?`onTouchstartPassive`:`onTouchstart`]=this.onPopupMouseDown;let{handleGetPopupClassFromAlign:t,getRootDomNode:n,$attrs:r}=this,{prefixCls:i,destroyPopupOnHide:a,popupClassName:o,popupAnimation:s,popupTransitionName:c,popupStyle:l,mask:u,maskAnimation:d,maskTransitionName:f,zIndex:p,stretch:m,alignPoint:h,mobile:_,arrow:v,forceRender:y}=this.$props,{sPopupVisible:b,point:x}=this.$data;return W(ob,g(g({prefixCls:i,arrow:v,destroyPopupOnHide:a,visible:b,point:h?x:null,align:this.align,animation:s,getClassNameFromAlign:t,stretch:m,getRootDomNode:n,mask:u,zIndex:p,transitionName:c,maskAnimation:d,maskTransitionName:f,class:o,style:l,onAlign:r.onPopupAlign||Lh},e),{ref:this.setPopupRef,mobile:_,forceRender:y}),{default:this.$slots.popup||(()=>Yc(this,`popup`))})},attachParent(e){pl.cancel(this.attachId);let{getPopupContainer:t,getDocument:n}=this.$props,r=this.getRootDomNode(),i;t?(r||t.length===0)&&(i=t(r)):i=n(this.getRootDomNode()).body,i?i.appendChild(e):this.attachId=pl(()=>{this.attachParent(e)})},getContainer(){let{$props:e}=this,{getDocument:t}=e,n=t(this.getRootDomNode()).createElement(`div`);return n.style.position=`absolute`,n.style.top=`0`,n.style.left=`0`,n.style.width=`100%`,this.attachParent(n),n},setPopupVisible(e,t){let{alignPoint:n,sPopupVisible:r,onPopupVisibleChange:i}=this;this.clearDelayTimer(),r!==e&&(Uc(this,`popupVisible`)||this.setState({sPopupVisible:e,prevPopupVisible:r}),i&&i(e)),n&&t&&e&&this.setPoint(t)},setPoint(e){let{alignPoint:t}=this.$props;t&&e&&this.setState({point:{pageX:e.pageX,pageY:e.pageY}})},handlePortalUpdate(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible(e,t,n){let r=t*1e3;if(this.clearDelayTimer(),r){let t=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout(()=>{this.setPopupVisible(e,t),this.clearDelayTimer()},r)}else this.setPopupVisible(e,n)},clearDelayTimer(){this.delayTimer&&=(clearTimeout(this.delayTimer),null)},clearOutsideHandler(){this.clickOutsideHandler&&=(this.clickOutsideHandler.remove(),null),this.contextmenuOutsideHandler1&&=(this.contextmenuOutsideHandler1.remove(),null),this.contextmenuOutsideHandler2&&=(this.contextmenuOutsideHandler2.remove(),null),this.touchOutsideHandler&&=(this.touchOutsideHandler.remove(),null)},createTwoChains(e){let t=()=>{},n=Xc(this);return this.childOriginEvents[e]&&n[e]?this[`fire${e}`]:(t=this.childOriginEvents[e]||n[e]||t,t)},isClickToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`click`)!==-1||t.indexOf(`click`)!==-1},isContextMenuOnly(){let{action:e}=this.$props;return e===`contextmenu`||e.length===1&&e[0]===`contextmenu`},isContextmenuToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`contextmenu`)!==-1||t.indexOf(`contextmenu`)!==-1},isClickToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`click`)!==-1||t.indexOf(`click`)!==-1},isMouseEnterToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`hover`)!==-1||t.indexOf(`mouseenter`)!==-1},isMouseLeaveToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`hover`)!==-1||t.indexOf(`mouseleave`)!==-1},isFocusToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`focus`)!==-1||t.indexOf(`focus`)!==-1},isBlurToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`focus`)!==-1||t.indexOf(`blur`)!==-1},forcePopupAlign(){var e;this.$data.sPopupVisible&&((e=this.popupRef)==null||e.forceAlign())},fireEvents(e,t){this.childOriginEvents[e]&&this.childOriginEvents[e](t);let n=this.$props[e]||this.$attrs[e];n&&n(t)},close(){this.setPopupVisible(!1)}},render(){let{$attrs:e}=this,t=rl(Kc(this)),{alignPoint:n,getPopupContainer:r}=this.$props,i=t[0];this.childOriginEvents=Xc(i);let a={key:`trigger`};a.onContextmenu=this.isContextmenuToShow()?this.onContextmenu:this.createTwoChains(`onContextmenu`),this.isClickToHide()||this.isClickToShow()?(a.onClick=this.onClick,a.onMousedown=this.onMousedown,a[wl?`onTouchstartPassive`:`onTouchstart`]=this.onTouchstart):(a.onClick=this.createTwoChains(`onClick`),a.onMousedown=this.createTwoChains(`onMousedown`),a[wl?`onTouchstartPassive`:`onTouchstart`]=this.createTwoChains(`onTouchstart`)),this.isMouseEnterToShow()?(a.onMouseenter=this.onMouseenter,n&&(a.onMousemove=this.onMouseMove)):a.onMouseenter=this.createTwoChains(`onMouseenter`),a.onMouseleave=this.isMouseLeaveToHide()?this.onMouseleave:this.createTwoChains(`onMouseleave`),this.isFocusToShow()||this.isBlurToHide()?(a.onFocus=this.onFocus,a.onBlur=this.onBlur):(a.onFocus=this.createTwoChains(`onFocus`),a.onBlur=e=>{e&&(!e.relatedTarget||!gu(e.target,e.relatedTarget))&&this.createTwoChains(`onBlur`)(e)});let o=K(i&&i.props&&i.props.class,e.class);return o&&(a.class=o),W(Ma,null,[s_(i,g(g({},a),{ref:`triggerRef`}),!0,!0),W(Eb,{key:`portal`,getContainer:r&&(()=>r(this.getRootDomNode())),didUpdate:this.handlePortalUpdate,visible:this.$data.sPopupVisible},{default:this.getComponent})])}}),kb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let t=e===!0?0:1;return{bottomLeft:{points:[`tl`,`bl`],offset:[0,4],overflow:{adjustX:t,adjustY:1}},bottomRight:{points:[`tr`,`br`],offset:[0,4],overflow:{adjustX:t,adjustY:1}},topLeft:{points:[`bl`,`tl`],offset:[0,-4],overflow:{adjustX:t,adjustY:1}},topRight:{points:[`br`,`tr`],offset:[0,-4],overflow:{adjustX:t,adjustY:1}}}},jb=U({name:`SelectTrigger`,inheritAttrs:!1,props:{dropdownAlign:Object,visible:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},dropdownClassName:String,dropdownStyle:Q.object,placement:String,empty:{type:Boolean,default:void 0},prefixCls:String,popupClassName:String,animation:String,transitionName:String,getPopupContainer:Function,dropdownRender:Function,containerWidth:Number,dropdownMatchSelectWidth:Q.oneOfType([Number,Boolean]).def(!0),popupElement:Q.any,direction:String,getTriggerDOMNode:Function,onPopupVisibleChange:Function,onPopupMouseEnter:Function,onPopupFocusin:Function,onPopupFocusout:Function},setup(e,t){let{slots:n,attrs:r,expose:i}=t,a=G(()=>{let{dropdownMatchSelectWidth:t}=e;return Ab(t)}),o=B();return i({getPopupElement:()=>o.value}),()=>{let t=g(g({},e),r),{empty:i=!1}=t,{visible:s,dropdownAlign:c,prefixCls:l,popupElement:u,dropdownClassName:d,dropdownStyle:f,direction:p=`ltr`,placement:m,dropdownMatchSelectWidth:_,containerWidth:v,dropdownRender:y,animation:b,transitionName:x,getPopupContainer:S,getTriggerDOMNode:C,onPopupVisibleChange:w,onPopupMouseEnter:T,onPopupFocusin:E,onPopupFocusout:D}=kb(t,[`empty`]),O=`${l}-dropdown`,k=u;y&&(k=y({menuNode:u,props:e}));let A=b?`${O}-${b}`:x,j=g({minWidth:`${v}px`},f);return typeof _==`number`?j.width=`${_}px`:_&&(j.width=`${v}px`),W(Ob,h(h({},e),{},{showAction:w?[`click`]:[],hideAction:w?[`click`]:[],popupPlacement:m||(p===`rtl`?`bottomRight`:`bottomLeft`),builtinPlacements:a.value,prefixCls:O,popupTransitionName:A,popupAlign:c,popupVisible:s,getPopupContainer:S,popupClassName:K(d,{[`${O}-empty`]:i}),popupStyle:j,getTriggerDOMNode:C,onPopupVisibleChange:w}),{default:n.default,popup:()=>W(`div`,{ref:o,onMouseenter:T,onFocusin:E,onFocusout:D},[k])})}}}),$={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){let{keyCode:t}=e;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=$.F1&&t<=$.F12)return!1;switch(t){case $.ALT:case $.CAPS_LOCK:case $.CONTEXT_MENU:case $.CTRL:case $.DOWN:case $.END:case $.ESC:case $.HOME:case $.INSERT:case $.LEFT:case $.MAC_FF_META:case $.META:case $.NUMLOCK:case $.NUM_CENTER:case $.PAGE_DOWN:case $.PAGE_UP:case $.PAUSE:case $.PRINT_SCREEN:case $.RIGHT:case $.SHIFT:case $.UP:case $.WIN_KEY:case $.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=$.ZERO&&e<=$.NINE||e>=$.NUM_ZERO&&e<=$.NUM_MULTIPLY||e>=$.A&&e<=$.Z||window.navigator.userAgent.indexOf(`WebKit`)!==-1&&e===0)return!0;switch(e){case $.SPACE:case $.QUESTION_MARK:case $.NUM_PLUS:case $.NUM_MINUS:case $.NUM_PERIOD:case $.NUM_DIVISION:case $.SEMICOLON:case $.DASH:case $.EQUALS:case $.COMMA:case $.PERIOD:case $.SLASH:case $.APOSTROPHE:case $.SINGLE_QUOTE:case $.OPEN_SQUARE_BRACKET:case $.BACKSLASH:case $.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},Mb=(e,t)=>{let{slots:n}=t,{class:r,customizeIcon:i,customizeIconProps:a,onMousedown:o,onClick:s}=e,c;return c=typeof i==`function`?i(a):Wa(i)?Za(i):i,W(`span`,{class:r,onMousedown:e=>{e.preventDefault(),o&&o(e)},style:{userSelect:`none`,WebkitUserSelect:`none`},unselectable:`on`,onClick:s,"aria-hidden":!0},[c===void 0?W(`span`,{class:r.split(/\s+/).map(e=>`${e}-icon`)},[n.default?.call(n)]):c])};Mb.inheritAttrs=!1,Mb.displayName=`TransBtn`,Mb.props={class:String,customizeIcon:Q.any,customizeIconProps:Q.any,onMousedown:Function,onClick:Function};var Nb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{r.value&&r.value.focus()},blur:()=>{r.value&&r.value.blur()},input:r,setSelectionRange:(e,t,n)=>{var i;(i=r.value)==null||i.setSelectionRange(e,t,n)},select:()=>{var e;(e=r.value)==null||e.select()},getSelectionStart:()=>r.value?.selectionStart,getSelectionEnd:()=>r.value?.selectionEnd,getScrollTop:()=>r.value?.scrollTop}),()=>{let{tag:t,value:n}=e;return W(t,h(h({},Nb(e,[`tag`,`value`])),{},{ref:r,value:n}),null)}}});function Fb(){return{width:document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight}}function Ib(e){let t=e.getBoundingClientRect(),n=document.documentElement;return{left:t.left+(window.scrollX||n.scrollLeft)-(n.clientLeft||document.body.clientLeft||0),top:t.top+(window.scrollY||n.scrollTop)-(n.clientTop||document.body.clientTop||0)}}function Lb(e){return Array.prototype.slice.apply(e).map(t=>`${t}: ${e.getPropertyValue(t)};`).join(``)}function Rb(e){return Object.keys(e).reduce((t,n)=>(e[n]==null||(t+=`${n}: ${e[n]};`),t),``)}var zb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.value,s],()=>{s.value||(o.value=e.value)},{immediate:!0});let c=e=>{n(`change`,e)},l=e=>{s.value=!0,e.target.composing=!0,n(`compositionstart`,e)},u=e=>{s.value=!1,e.target.composing=!1,n(`compositionend`,e);let t=document.createEvent(`HTMLEvents`);t.initEvent(`input`,!0,!0),e.target.dispatchEvent(t),c(e)},d=t=>{s.value&&e.lazy?o.value=t.target.value:n(`input`,t)},f=e=>{n(`blur`,e)},p=e=>{n(`focus`,e)},m=()=>{a.value&&a.value.focus()},g=()=>{a.value&&a.value.blur()},_=e=>{n(`keydown`,e)},v=e=>{n(`keyup`,e)};i({focus:m,blur:g,input:G(()=>a.value?.input),setSelectionRange:(e,t,n)=>{var r;(r=a.value)==null||r.setSelectionRange(e,t,n)},select:()=>{var e;(e=a.value)==null||e.select()},getSelectionStart:()=>a.value?.getSelectionStart(),getSelectionEnd:()=>a.value?.getSelectionEnd(),getScrollTop:()=>a.value?.getScrollTop()});let y=e=>{n(`mousedown`,e)},b=e=>{n(`paste`,e)},x=G(()=>e.style&&typeof e.style!=`string`?Rb(e.style):e.style);return()=>{let{style:t,lazy:n}=e;return W(Pb,h(h(h({},zb(e,[`style`,`lazy`])),r),{},{style:x.value,onInput:d,onChange:c,onBlur:f,onFocus:p,ref:a,value:o.value,onCompositionstart:l,onCompositionend:u,onKeyup:v,onKeydown:_,onPaste:b,onMousedown:y}),null)}}}),Vb=U({compatConfig:{MODE:3},name:`SelectInput`,inheritAttrs:!1,props:{inputRef:Q.any,prefixCls:String,id:String,inputElement:Q.VueNode,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,editable:{type:Boolean,default:void 0},activeDescendantId:String,value:String,open:{type:Boolean,default:void 0},tabindex:Q.oneOfType([Q.number,Q.string]),attrs:Q.object,onKeydown:{type:Function},onMousedown:{type:Function},onChange:{type:Function},onPaste:{type:Function},onCompositionstart:{type:Function},onCompositionend:{type:Function},onFocus:{type:Function},onBlur:{type:Function}},setup(e){let t=null,n=tr(`VCSelectContainerEvent`);return()=>{let{prefixCls:r,id:i,inputElement:a,disabled:o,tabindex:s,autofocus:c,autocomplete:l,editable:u,activeDescendantId:d,value:f,onKeydown:p,onMousedown:m,onChange:h,onPaste:_,onCompositionstart:v,onCompositionend:y,onFocus:b,onBlur:x,open:S,inputRef:C,attrs:w}=e,T=a||W(Bb,null,null),E=T.props||{},{onKeydown:D,onInput:O,onFocus:k,onBlur:A,onMousedown:j,onCompositionstart:M,onCompositionend:N,style:P}=E;return T=s_(T,g(g(g(g(g({type:`search`},E),{id:i,ref:C,disabled:o,tabindex:s,lazy:!1,autocomplete:l||`off`,autofocus:c,class:K(`${r}-selection-search-input`,T?.props?.class),role:`combobox`,"aria-expanded":S,"aria-haspopup":`listbox`,"aria-owns":`${i}_list`,"aria-autocomplete":`list`,"aria-controls":`${i}_list`,"aria-activedescendant":d}),w),{value:u?f:``,readonly:!u,unselectable:u?null:`on`,style:g(g({},P),{opacity:u?null:0}),onKeydown:e=>{p(e),D&&D(e)},onMousedown:e=>{m(e),j&&j(e)},onInput:e=>{h(e),O&&O(e)},onCompositionstart(e){v(e),M&&M(e)},onCompositionend(e){y(e),N&&N(e)},onPaste:_,onFocus:function(){clearTimeout(t),k&&k(arguments.length<=0?void 0:arguments[0]),b&&b(arguments.length<=0?void 0:arguments[0]),n?.focus(arguments.length<=0?void 0:arguments[0])},onBlur:function(){var e=[...arguments];t=setTimeout(()=>{A&&A(e[0]),x&&x(e[0]),n?.blur(e[0])},100)}}),T.type===`textarea`?{}:{type:`search`}),!0,!0),T}}}),Hb=`accept acceptcharset accesskey action allowfullscreen allowtransparency +alt async autocomplete autofocus autoplay capture cellpadding cellspacing challenge +charset checked classid classname colspan cols content contenteditable contextmenu +controls coords crossorigin data datetime default defer dir disabled download draggable +enctype form formaction formenctype formmethod formnovalidate formtarget frameborder +headers height hidden high href hreflang htmlfor for httpequiv icon id inputmode integrity +is keyparams keytype kind label lang list loop low manifest marginheight marginwidth max maxlength media +mediagroup method min minlength multiple muted name novalidate nonce open +optimum pattern placeholder poster preload radiogroup readonly rel required +reversed role rowspan rows sandbox scope scoped scrolling seamless selected +shape size sizes span spellcheck src srcdoc srclang srcset start step style +summary tabindex target title type usemap value width wmode wrap onCopy onCut onPaste onCompositionend onCompositionstart onCompositionupdate onKeydown + onKeypress onKeyup onFocus onBlur onChange onInput onSubmit onClick onContextmenu onDoubleclick onDblclick + onDrag onDragend onDragenter onDragexit onDragleave onDragover onDragstart onDrop onMousedown + onMouseenter onMouseleave onMousemove onMouseout onMouseover onMouseup onSelect onTouchcancel + onTouchend onTouchmove onTouchstart onTouchstartPassive onTouchmovePassive onScroll onWheel onAbort onCanplay onCanplaythrough + onDurationchange onEmptied onEncrypted onEnded onError onLoadeddata onLoadedmetadata + onLoadstart onPause onPlay onPlaying onProgress onRatechange onSeeked onSeeking onStalled onSuspend onTimeupdate onVolumechange onWaiting onLoad onError`.split(/[\s\n]+/),Ub=`aria-`,Wb=`data-`;function Gb(e,t){return e.indexOf(t)===0}function Kb(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n;n=t===!1?{aria:!0,data:!0,attr:!0}:t===!0?{aria:!0}:g({},t);let r={};return Object.keys(e).forEach(t=>{(n.aria&&(t===`role`||Gb(t,Ub))||n.data&&Gb(t,Wb)||n.attr&&(Hb.includes(t)||Hb.includes(t.toLowerCase())))&&(r[t]=e[t])}),r}var qb=Symbol(`OverflowContextProviderKey`),Jb=U({compatConfig:{MODE:3},name:`OverflowContextProvider`,inheritAttrs:!1,props:{value:{type:Object}},setup(e,t){let{slots:n}=t;return er(qb,G(()=>e.value)),()=>n.default?.call(n)}}),Yb=()=>tr(qb,G(()=>null)),Xb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.responsive&&!e.display),a=B();r({itemNodeRef:a});function o(t){e.registerSize(e.itemKey,t)}return ri(()=>{o(null)}),()=>{let{prefixCls:t,invalidate:r,item:s,renderItem:c,responsive:l,registerSize:u,itemKey:d,display:f,order:p,component:m=`div`}=e,g=Xb(e,[`prefixCls`,`invalidate`,`item`,`renderItem`,`responsive`,`registerSize`,`itemKey`,`display`,`order`,`component`]),_=n.default?.call(n),v=c&&s!==Zb?c(s):_,y;r||(y={opacity:+!i.value,height:i.value?0:Zb,overflowY:i.value?`hidden`:Zb,order:l?p:Zb,pointerEvents:i.value?`none`:Zb,position:i.value?`absolute`:Zb});let b={};return i.value&&(b[`aria-hidden`]=!0),W(sl,{disabled:!l,onResize:e=>{let{offsetWidth:t}=e;o(t)}},{default:()=>W(m,h(h(h({class:K(!r&&t),style:y},b),g),{},{ref:a}),{default:()=>[v]})})}}}),$b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{if(!i.value){let{component:t=`div`}=e;return W(t,h(h({},$b(e,[`component`])),r),{default:()=>[n.default?.call(n)]})}let t=i.value,{className:a}=t,o=$b(t,[`className`]),{class:s}=r,c=$b(r,[`class`]);return W(Jb,{value:null},{default:()=>[W(Qb,h(h(h({class:K(a,s)},o),c),e),n)]})}}}),tx=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.ssr===`full`),o=V(null),s=G(()=>o.value||0),c=V(new Map),l=V(0),u=V(0),d=V(0),f=V(null),p=V(null),m=G(()=>p.value===null&&a.value?2**53-1:p.value||0),_=V(!1),v=G(()=>`${e.prefixCls}-item`),y=G(()=>Math.max(l.value,u.value)),b=G(()=>!!(e.data.length&&e.maxCount===nx)),x=G(()=>e.maxCount===rx),S=G(()=>b.value||typeof e.maxCount==`number`&&e.data.length>e.maxCount),C=G(()=>{let t=e.data;return b.value?t=o.value===null&&a.value?e.data:e.data.slice(0,Math.min(e.data.length,s.value/e.itemWidth)):typeof e.maxCount==`number`&&(t=e.data.slice(0,e.maxCount)),t}),w=G(()=>b.value?e.data.slice(m.value+1):e.data.slice(C.value.length)),T=(t,n)=>typeof e.itemKey==`function`?e.itemKey(t):(e.itemKey&&t?.[e.itemKey])??n,E=G(()=>e.renderItem||(e=>e)),D=(t,n)=>{p.value=t,n||(_.value=t{o.value=t.clientWidth},k=(e,t)=>{let n=new Map(c.value);t===null?n.delete(e):n.set(e,t),c.value=n},A=(e,t)=>{l.value=u.value,u.value=t},j=(e,t)=>{d.value=t},M=e=>c.value.get(T(C.value[e],e));return H([s,c,u,d,()=>e.itemKey,C],()=>{if(s.value&&y.value&&C.value){let t=d.value,n=C.value.length,r=n-1;if(!n){D(0),f.value=null;return}for(let e=0;es.value){D(e-1),f.value=t-n-d.value+u.value;break}}e.suffix&&M(0)+d.value>s.value&&(f.value=null)}}),()=>{let t=_.value&&!!w.value.length,{itemComponent:r,renderRawItem:a,renderRawRest:o,renderRest:s,prefixCls:c=`rc-overflow`,suffix:l,component:u=`div`,id:d,onMousedown:p}=e,{class:y,style:D}=n,M=tx(n,[`class`,`style`]),N={};f.value!==null&&b.value&&(N={position:`absolute`,left:`${f.value}px`,top:0});let P={prefixCls:v.value,responsive:b.value,component:r,invalidate:x.value},F=a?(e,t)=>{let n=T(e,t);return W(Jb,{key:n,value:g(g({},P),{order:t,item:e,itemKey:n,registerSize:k,display:t<=m.value})},{default:()=>[a(e,t)]})}:(e,t)=>{let n=T(e,t);return W(Qb,h(h({},P),{},{order:t,key:n,item:e,renderItem:E.value,itemKey:n,registerSize:k,display:t<=m.value}),null)},I=()=>null,L={order:t?m.value:2**53-1,className:`${v.value} ${v.value}-rest`,registerSize:A,display:t};if(o)o&&(I=()=>W(Jb,{value:g(g({},P),L)},{default:()=>[o(w.value)]}));else{let e=s||ix;I=()=>W(Qb,h(h({},P),L),{default:()=>typeof e==`function`?e(w.value):e})}return W(sl,{disabled:!b.value,onResize:O},{default:()=>W(u,h({id:d,class:K(!x.value&&c,y),style:D,onMousedown:p,role:e.role},M),{default:()=>[C.value.map(F),S.value?I():null,l&&W(Qb,h(h({},P),{},{order:m.value,class:`${v.value}-suffix`,registerSize:j,display:!0,style:N}),{default:()=>l}),i.default?.call(i)]})})}}});ax.Item=ex,ax.RESPONSIVE=nx,ax.INVALIDATE=rx;var ox=ax,sx=Symbol(`TreeSelectLegacyContextPropsKey`);function cx(e){return er(sx,e)}function lx(){return tr(sx,{})}var ux={id:String,prefixCls:String,values:Q.array,open:{type:Boolean,default:void 0},searchValue:String,inputRef:Q.any,placeholder:Q.any,disabled:{type:Boolean,default:void 0},mode:String,showSearch:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,activeDescendantId:String,tabindex:Q.oneOfType([Q.number,Q.string]),compositionStatus:Boolean,removeIcon:Q.any,choiceTransitionName:String,maxTagCount:Q.oneOfType([Q.number,Q.string]),maxTagTextLength:Number,maxTagPlaceholder:Q.any.def(()=>e=>`+ ${e.length} ...`),tagRender:Function,onToggleOpen:{type:Function},onRemove:Function,onInputChange:Function,onInputPaste:Function,onInputKeyDown:Function,onInputMouseDown:Function,onInputCompositionStart:Function,onInputCompositionEnd:Function},dx=e=>{e.preventDefault(),e.stopPropagation()},fx=U({name:`MultipleSelectSelector`,inheritAttrs:!1,props:ux,setup(e){let t=V(),n=V(0),r=V(!1),i=lx(),a=G(()=>`${e.prefixCls}-selection`),o=G(()=>e.open||e.mode===`tags`?e.searchValue:``),s=G(()=>e.mode===`tags`||e.showSearch&&(e.open||r.value)),c=B(``);ar(()=>{c.value=o.value}),$r(()=>{H(c,()=>{n.value=t.value.scrollWidth},{flush:`post`,immediate:!0})});function l(t,n,r,i,o){return W(`span`,{class:K(`${a.value}-item`,{[`${a.value}-item-disabled`]:r}),title:typeof t==`string`||typeof t==`number`?t.toString():void 0},[W(`span`,{class:`${a.value}-item-content`},[n]),i&&W(Mb,{class:`${a.value}-item-remove`,onMousedown:dx,onClick:o,customizeIcon:e.removeIcon},{default:()=>[Qa(`×`)]})])}function u(t,n,r,a,o,s){let c=t=>{dx(t),e.onToggleOpen(!open)},l=s;return i.keyEntities&&(l=i.keyEntities[t]?.node||{}),W(`span`,{key:t,onMousedown:c},[e.tagRender({label:n,value:t,disabled:r,closable:a,onClose:o,option:l})])}function d(t){let{disabled:n,label:r,value:i,option:a}=t,o=!e.disabled&&!n,s=r;if(typeof e.maxTagTextLength==`number`&&(typeof r==`string`||typeof r==`number`)){let t=String(s);t.length>e.maxTagTextLength&&(s=`${t.slice(0,e.maxTagTextLength)}...`)}let c=n=>{var r;n&&n.stopPropagation(),(r=e.onRemove)==null||r.call(e,t)};return typeof e.tagRender==`function`?u(i,s,n,o,c,a):l(r,s,n,o,c)}function f(t){let{maxTagPlaceholder:n=e=>`+ ${e.length} ...`}=e,r=typeof n==`function`?n(t):n;return l(r,r,!1)}let p=t=>{let n=t.target.composing;c.value=t.target.value,n||e.onInputChange(t)};return()=>{let{id:i,prefixCls:l,values:u,open:m,inputRef:h,placeholder:g,disabled:_,autofocus:v,autocomplete:y,activeDescendantId:b,tabindex:x,compositionStatus:S,onInputPaste:C,onInputKeyDown:w,onInputMouseDown:T,onInputCompositionStart:E,onInputCompositionEnd:D}=e,O=W(`div`,{class:`${a.value}-search`,style:{width:n.value+`px`},key:`input`},[W(Vb,{inputRef:h,open:m,prefixCls:l,id:i,inputElement:null,disabled:_,autofocus:v,autocomplete:y,editable:s.value,activeDescendantId:b,value:c.value,onKeydown:w,onMousedown:T,onChange:p,onPaste:C,onCompositionstart:E,onCompositionend:D,tabindex:x,attrs:Kb(e,!0),onFocus:()=>r.value=!0,onBlur:()=>r.value=!1},null),W(`span`,{ref:t,class:`${a.value}-search-mirror`,"aria-hidden":!0},[c.value,Qa(`\xA0`)])]);return W(Ma,null,[W(ox,{prefixCls:`${a.value}-overflow`,data:u,renderItem:d,renderRest:f,suffix:O,itemKey:`key`,maxCount:e.maxTagCount,key:`overflow`},null),!u.length&&!o.value&&!S&&W(`span`,{class:`${a.value}-placeholder`},[g])])}}}),px={inputElement:Q.any,id:String,prefixCls:String,values:Q.array,open:{type:Boolean,default:void 0},searchValue:String,inputRef:Q.any,placeholder:Q.any,compositionStatus:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},mode:String,showSearch:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,activeDescendantId:String,tabindex:Q.oneOfType([Q.number,Q.string]),activeValue:String,backfill:{type:Boolean,default:void 0},optionLabelRender:Function,onInputChange:Function,onInputPaste:Function,onInputKeyDown:Function,onInputMouseDown:Function,onInputCompositionStart:Function,onInputCompositionEnd:Function},mx=U({name:`SingleSelector`,setup(e){let t=V(!1),n=G(()=>e.mode===`combobox`),r=G(()=>n.value||e.showSearch),i=G(()=>{let r=e.searchValue||``;return n.value&&e.activeValue&&!t.value&&(r=e.activeValue),r}),a=lx();H([n,()=>e.activeValue],()=>{n.value&&(t.value=!1)},{immediate:!0});let o=G(()=>e.mode!==`combobox`&&!e.open&&!e.showSearch?!1:!!i.value||e.compositionStatus),s=G(()=>{let t=e.values[0];return t&&(typeof t.label==`string`||typeof t.label==`number`)?t.label.toString():void 0}),c=()=>{if(e.values[0])return null;let t=o.value?{visibility:`hidden`}:void 0;return W(`span`,{class:`${e.prefixCls}-selection-placeholder`,style:t},[e.placeholder])},l=n=>{n.target.composing||(t.value=!0,e.onInputChange(n))};return()=>{let{inputElement:t,prefixCls:u,id:d,values:f,inputRef:p,disabled:m,autofocus:h,autocomplete:g,activeDescendantId:_,open:v,tabindex:y,optionLabelRender:b,onInputKeyDown:x,onInputMouseDown:S,onInputPaste:C,onInputCompositionStart:w,onInputCompositionEnd:T}=e,E=f[0],D=null;if(E&&a.customSlots){let e=E.key??E.value,t=a.keyEntities[e]?.node||{};D=a.customSlots[t.slots?.title]||a.customSlots.title||E.label,typeof D==`function`&&(D=D(t))}else D=b&&E?b(E.option):E?.label;return W(Ma,null,[W(`span`,{class:`${u}-selection-search`},[W(Vb,{inputRef:p,prefixCls:u,id:d,open:v,inputElement:t,disabled:m,autofocus:h,autocomplete:g,editable:r.value,activeDescendantId:_,value:i.value,onKeydown:x,onMousedown:S,onChange:l,onPaste:C,onCompositionstart:w,onCompositionend:T,tabindex:y,attrs:Kb(e,!0)},null)]),!n.value&&E&&!o.value&&W(`span`,{class:`${u}-selection-item`,title:s.value},[W(Ma,{key:E.key??E.value},[D])]),c()])}}});mx.props=px,mx.inheritAttrs=!1;function hx(e){return![$.ESC,$.SHIFT,$.BACKSPACE,$.TAB,$.WIN_KEY,$.ALT,$.META,$.WIN_KEY_RIGHT,$.CTRL,$.SEMICOLON,$.EQUALS,$.CAPS_LOCK,$.CONTEXT_MENU,$.F1,$.F2,$.F3,$.F4,$.F5,$.F6,$.F7,$.F8,$.F9,$.F10,$.F11,$.F12].includes(e)}function gx(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,t=null,n;ni(()=>{clearTimeout(n)});function r(r){(r||t===null)&&(t=r),clearTimeout(n),n=setTimeout(()=>{t=null},e)}return[()=>t,r]}function _x(){let e=t=>{e.current=t};return e}var vx=U({name:`Selector`,inheritAttrs:!1,props:{id:String,prefixCls:String,showSearch:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},values:Q.array,multiple:{type:Boolean,default:void 0},mode:String,searchValue:String,activeValue:String,inputElement:Q.any,autofocus:{type:Boolean,default:void 0},activeDescendantId:String,tabindex:Q.oneOfType([Q.number,Q.string]),disabled:{type:Boolean,default:void 0},placeholder:Q.any,removeIcon:Q.any,maxTagCount:Q.oneOfType([Q.number,Q.string]),maxTagTextLength:Number,maxTagPlaceholder:Q.any,tagRender:Function,optionLabelRender:Function,tokenWithEnter:{type:Boolean,default:void 0},choiceTransitionName:String,onToggleOpen:{type:Function},onSearch:Function,onSearchSubmit:Function,onRemove:Function,onInputKeyDown:{type:Function},domRef:Function},setup(e,t){let{expose:n}=t,r=_x(),i=B(!1),[a,o]=gx(0),s=t=>{let{which:n}=t;(n===$.UP||n===$.DOWN)&&t.preventDefault(),e.onInputKeyDown&&e.onInputKeyDown(t),n===$.ENTER&&e.mode===`tags`&&!i.value&&!e.open&&e.onSearchSubmit(t.target.value),hx(n)&&e.onToggleOpen(!0)},c=()=>{o(!0)},l=null,u=t=>{e.onSearch(t,!0,i.value)!==!1&&e.onToggleOpen(!0)},d=()=>{i.value=!0},f=t=>{i.value=!1,e.mode!==`combobox`&&u(t.target.value)},p=t=>{let{target:{value:n}}=t;if(e.tokenWithEnter&&l&&/[\r\n]/.test(l)){let e=l.replace(/[\r\n]+$/,``).replace(/\r\n/g,` `).replace(/[\r\n]/g,` `);n=n.replace(e,l)}l=null,u(n)},m=e=>{let{clipboardData:t}=e;l=t.getData(`text`)},g=e=>{let{target:t}=e;t!==r.current&&(document.body.style.msTouchAction===void 0?r.current.focus():setTimeout(()=>{r.current.focus()}))},_=t=>{let n=a();t.target!==r.current&&!n&&t.preventDefault(),(e.mode!==`combobox`&&(!e.showSearch||!n)||!e.open)&&(e.open&&e.onSearch(``,!0,!1),e.onToggleOpen())};return n({focus:()=>{r.current.focus()},blur:()=>{r.current.blur()}}),()=>{let{prefixCls:t,domRef:n,mode:a}=e,o={inputRef:r,onInputKeyDown:s,onInputMouseDown:c,onInputChange:p,onInputPaste:m,compositionStatus:i.value,onInputCompositionStart:d,onInputCompositionEnd:f},l=W(a===`multiple`||a===`tags`?fx:mx,h(h({},e),o),null);return W(`div`,{ref:n,class:`${t}-selector`,onClick:g,onMousedown:_},[l])}}});function yx(e,t,n){function r(r){let i=r.target;i.shadowRoot&&r.composed&&(i=r.composedPath()[0]||i);let a=[e[0]?.value,(e[1]?.value)?.getPopupElement()];t.value&&a.every(e=>e&&!e.contains(i)&&e!==i)&&n(!1)}$r(()=>{window.addEventListener(`mousedown`,r)}),ni(()=>{window.removeEventListener(`mousedown`,r)})}function bx(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10,t=V(!1),n,r=()=>{clearTimeout(n)};return $r(()=>{r()}),[t,(i,a)=>{r(),n=setTimeout(()=>{t.value=i,a&&a()},e)},r]}var xx=Symbol(`BaseSelectContextKey`);function Sx(e){return er(xx,e)}function Cx(){return tr(xx,{})}var wx=(()=>{if(typeof navigator>`u`||typeof window>`u`)return!1;let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e?.substring(0,4))});function Tx(e){return Yt(cn(e)?new Proxy({},{get(t,n,r){return Reflect.get(e.value,n,r)},set(t,n,r){return e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}):e)}var Ex=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i({prefixCls:String,id:String,omitDomProps:Array,displayValues:Array,onDisplayValuesChange:Function,activeValue:String,activeDescendantId:String,onActiveValueChange:Function,searchValue:String,onSearch:Function,onSearchSplit:Function,maxLength:Number,OptionList:Q.any,emptyOptions:Boolean}),kx=()=>({showSearch:{type:Boolean,default:void 0},tagRender:{type:Function},optionLabelRender:{type:Function},direction:{type:String},tabindex:Number,autofocus:Boolean,notFoundContent:Q.any,placeholder:Q.any,onClear:Function,choiceTransitionName:String,mode:String,disabled:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},onDropdownVisibleChange:{type:Function},getInputElement:{type:Function},getRawInputElement:{type:Function},maxTagTextLength:Number,maxTagCount:{type:[String,Number]},maxTagPlaceholder:Q.any,tokenSeparators:{type:Array},allowClear:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:void 0},inputIcon:Q.any,clearIcon:Q.any,removeIcon:Q.any,animation:String,transitionName:String,dropdownStyle:{type:Object},dropdownClassName:String,dropdownMatchSelectWidth:{type:[Boolean,Number],default:void 0},dropdownRender:{type:Function},dropdownAlign:Object,placement:{type:String},getPopupContainer:{type:Function},showAction:{type:Array},onBlur:{type:Function},onFocus:{type:Function},onKeyup:Function,onKeydown:Function,onMousedown:Function,onPopupScroll:Function,onInputKeyDown:Function,onMouseenter:Function,onMouseleave:Function,onClick:Function}),Ax=()=>g(g({},Ox()),kx());function jx(e){return e===`tags`||e===`multiple`}var Mx=U({compatConfig:{MODE:3},name:`BaseSelect`,inheritAttrs:!1,props:Bc(Ax(),{showAction:[],notFoundContent:`Not Found`}),setup(e,t){let{attrs:n,expose:r,slots:i}=t,a=G(()=>jx(e.mode)),o=G(()=>e.showSearch===void 0?a.value||e.mode===`combobox`:e.showSearch),s=V(!1);$r(()=>{s.value=wx()});let c=lx(),l=V(null),u=_x(),d=V(null),f=V(null),p=V(null),m=B(!1),[_,v,y]=bx();r({focus:()=>{var e;(e=f.value)==null||e.focus()},blur:()=>{var e;(e=f.value)==null||e.blur()},scrollTo:e=>p.value?.scrollTo(e)});let b=G(()=>{if(e.mode!==`combobox`)return e.searchValue;let t=e.displayValues[0]?.value;return typeof t==`string`||typeof t==`number`?String(t):``}),x=e.open===void 0?e.defaultOpen:e.open,S=V(x),C=V(x),w=t=>{S.value=e.open===void 0?t:e.open,C.value=S.value};H(()=>e.open,()=>{w(e.open)});let T=G(()=>!e.notFoundContent&&e.emptyOptions);ar(()=>{C.value=S.value,(e.disabled||T.value&&C.value&&e.mode===`combobox`)&&(C.value=!1)});let E=G(()=>!T.value&&C.value),D=t=>{let n=t===void 0?!C.value:t;C.value!==n&&!e.disabled&&(w(n),e.onDropdownVisibleChange&&e.onDropdownVisibleChange(n),!n&&R.value&&(R.value=!1,v(!1,()=>{I.value=!1,m.value=!1})))},O=G(()=>(e.tokenSeparators||[]).some(e=>[` +`,`\r +`].includes(e))),k=(t,n,r)=>{var i,a;let o=!0,s=t;(i=e.onActiveValueChange)==null||i.call(e,null);let c=r?null:Ph(t,e.tokenSeparators);return e.mode!==`combobox`&&c&&(s=``,(a=e.onSearchSplit)==null||a.call(e,c),D(!1),o=!1),e.onSearch&&b.value!==s&&e.onSearch(s,{source:n?`typing`:`effect`}),o},A=t=>{var n;t&&t.trim()&&((n=e.onSearch)==null||n.call(e,t,{source:`submit`}))};H(C,()=>{!C.value&&!a.value&&e.mode!==`combobox`&&k(``,!1,!1)},{immediate:!0,flush:`post`}),H(()=>e.disabled,()=>{S.value&&e.disabled&&w(!1),e.disabled&&!m.value&&v(!1)},{immediate:!0});let[j,M]=gx(),N=function(t){var n;let r=j(),{which:i}=t;if(i===$.ENTER&&(e.mode!==`combobox`&&t.preventDefault(),C.value||D(!0)),M(!!b.value),i===$.BACKSPACE&&!r&&a.value&&!b.value&&e.displayValues.length){let t=[...e.displayValues],n=null;for(let e=t.length-1;e>=0;--e){let r=t[e];if(!r.disabled){t.splice(e,1),n=r;break}}n&&e.onDisplayValuesChange(t,{type:`remove`,values:[n]})}var o=[...arguments].slice(1);C.value&&p.value&&p.value.onKeydown(t,...o),(n=e.onKeydown)==null||n.call(e,t,...o)},P=function(t){var n=[...arguments].slice(1);C.value&&p.value&&p.value.onKeyup(t,...n),e.onKeyup&&e.onKeyup(t,...n)},F=t=>{let n=e.displayValues.filter(e=>e!==t);e.onDisplayValuesChange(n,{type:`remove`,values:[t]})},I=V(!1),L=function(){v(!0),e.disabled||(e.onFocus&&!I.value&&e.onFocus(...arguments),e.showAction&&e.showAction.includes(`focus`)&&D(!0)),I.value=!0},R=B(!1),ee=function(){if(R.value||(m.value=!0,v(!1,()=>{I.value=!1,m.value=!1,D(!1)}),e.disabled))return;let t=b.value;t&&(e.mode===`tags`?e.onSearch(t,{source:`submit`}):e.mode===`multiple`&&e.onSearch(``,{source:`blur`})),e.onBlur&&e.onBlur(...arguments)},te=()=>{R.value=!0},ne=()=>{R.value=!1};er(`VCSelectContainerEvent`,{focus:L,blur:ee});let z=[];$r(()=>{z.forEach(e=>clearTimeout(e)),z.splice(0,z.length)}),ni(()=>{z.forEach(e=>clearTimeout(e)),z.splice(0,z.length)});let re=function(t){var n;let{target:r}=t,i=d.value?.getPopupElement();if(i&&i.contains(r)){let e=setTimeout(()=>{var t;let n=z.indexOf(e);n!==-1&&z.splice(n,1),y(),!s.value&&!i.contains(document.activeElement)&&((t=f.value)==null||t.focus())});z.push(e)}var a=[...arguments].slice(1);(n=e.onMousedown)==null||n.call(e,t,...a)},ie=V(null),ae=()=>{};return $r(()=>{H(E,()=>{if(E.value){let e=Math.ceil(l.value?.offsetWidth);ie.value!==e&&!Number.isNaN(e)&&(ie.value=e)}},{immediate:!0,flush:`post`})}),yx([l,d],E,D),Sx(Tx(g(g({},hn(e)),{open:C,triggerOpen:E,showSearch:o,multiple:a,toggleOpen:D}))),()=>{let t=g(g({},e),n),{prefixCls:r,id:s,open:m,defaultOpen:v,mode:y,showSearch:x,searchValue:S,onSearch:w,allowClear:T,clearIcon:j,showArrow:M,inputIcon:I,disabled:L,loading:R,getInputElement:ee,getPopupContainer:z,placement:oe,animation:se,transitionName:ce,dropdownStyle:le,dropdownClassName:ue,dropdownMatchSelectWidth:de,dropdownRender:fe,dropdownAlign:pe,showAction:me,direction:he,tokenSeparators:ge,tagRender:_e,optionLabelRender:ve,onPopupScroll:ye,onDropdownVisibleChange:be,onFocus:xe,onBlur:Se,onKeyup:Ce,onKeydown:we,onMousedown:Te,onClear:Ee,omitDomProps:De,getRawInputElement:Oe,displayValues:ke,onDisplayValuesChange:Ae,emptyOptions:je,activeDescendantId:Me,activeValue:Ne,OptionList:Pe}=t,Fe=Ex(t,`prefixCls.id.open.defaultOpen.mode.showSearch.searchValue.onSearch.allowClear.clearIcon.showArrow.inputIcon.disabled.loading.getInputElement.getPopupContainer.placement.animation.transitionName.dropdownStyle.dropdownClassName.dropdownMatchSelectWidth.dropdownRender.dropdownAlign.showAction.direction.tokenSeparators.tagRender.optionLabelRender.onPopupScroll.onDropdownVisibleChange.onFocus.onBlur.onKeyup.onKeydown.onMousedown.onClear.omitDomProps.getRawInputElement.displayValues.onDisplayValuesChange.emptyOptions.activeDescendantId.activeValue.OptionList`.split(`.`)),Ie=y===`combobox`&&ee&&ee()||null,Le=typeof Oe==`function`&&Oe(),Re=g({},Fe),ze;Le&&(ze=e=>{D(e)}),Dx.forEach(e=>{delete Re[e]}),De?.forEach(e=>{delete Re[e]});let Be=M===void 0?R||!a.value&&y!==`combobox`:M,Ve;Be&&(Ve=W(Mb,{class:K(`${r}-arrow`,{[`${r}-arrow-loading`]:R}),customizeIcon:I,customizeIconProps:{loading:R,searchValue:b.value,open:C.value,focused:_.value,showSearch:o.value}},null));let He;!L&&T&&(ke.length||b.value)&&(He=W(Mb,{class:`${r}-clear`,onMousedown:()=>{Ee?.(),Ae([],{type:`clear`,values:ke}),k(``,!1,!1)},customizeIcon:j},{default:()=>[Qa(`×`)]}));let Ue=W(Pe,{ref:p},g(g({},c.customSlots),{option:i.option})),We=K(r,n.class,{[`${r}-focused`]:_.value,[`${r}-multiple`]:a.value,[`${r}-single`]:!a.value,[`${r}-allow-clear`]:T,[`${r}-show-arrow`]:Be,[`${r}-disabled`]:L,[`${r}-loading`]:R,[`${r}-open`]:C.value,[`${r}-customize-input`]:Ie,[`${r}-show-search`]:o.value}),Ge=W(jb,{ref:d,disabled:L,prefixCls:r,visible:E.value,popupElement:Ue,containerWidth:ie.value,animation:se,transitionName:ce,dropdownStyle:le,dropdownClassName:ue,direction:he,dropdownMatchSelectWidth:de,dropdownRender:fe,dropdownAlign:pe,placement:oe,getPopupContainer:z,empty:je,getTriggerDOMNode:()=>u.current,onPopupVisibleChange:ze,onPopupMouseEnter:ae,onPopupFocusin:te,onPopupFocusout:ne},{default:()=>Le?al(Le)&&s_(Le,{ref:u},!1,!0):W(vx,h(h({},e),{},{domRef:u,prefixCls:r,inputElement:Ie,ref:f,id:s,showSearch:o.value,mode:y,activeDescendantId:Me,tagRender:_e,optionLabelRender:ve,values:ke,open:C.value,onToggleOpen:D,activeValue:Ne,searchValue:b.value,onSearch:k,onSearchSubmit:A,onRemove:F,tokenWithEnter:O.value}),null)}),Ke;return Ke=Le?Ge:W(`div`,h(h({},Re),{},{class:We,ref:l,onMousedown:re,onKeydown:N,onKeyup:P}),[_.value&&!C.value&&W(`span`,{style:{width:0,height:0,position:`absolute`,overflow:`hidden`,opacity:0},"aria-live":`polite`},[`${ke.map(e=>{let{label:t,value:n}=e;return[`number`,`string`].includes(typeof t)?t:n}).join(`, `)}`]),Ge,Ve,He]),Ke}}}),Nx=(e,t)=>{let{height:n,offset:r,prefixCls:i,onInnerResize:a}=e,{slots:o}=t,s={},c={display:`flex`,flexDirection:`column`};return r!==void 0&&(s={height:`${n}px`,position:`relative`,overflow:`hidden`},c=g(g({},c),{transform:`translateY(${r}px)`,position:`absolute`,left:0,right:0,top:0})),W(`div`,{style:s},[W(sl,{onResize:e=>{let{offsetHeight:t}=e;t&&a&&a()}},{default:()=>[W(`div`,{style:c,class:K({[`${i}-holder-inner`]:i})},[o.default?.call(o)])]})])};Nx.displayName=`Filter`,Nx.inheritAttrs=!1,Nx.props={prefixCls:String,height:Number,offset:Number,onInnerResize:Function};var Px=(e,t)=>{let{setRef:n}=e,{slots:r}=t,i=Gc(r.default?.call(r));return i&&i.length?Za(i[0],{ref:n}):i};Px.props={setRef:{type:Function,default:()=>{}}};var Fx=20;function Ix(e){return`touches`in e?e.touches[0].pageY:e.pageY}var Lx=U({compatConfig:{MODE:3},name:`ScrollBar`,inheritAttrs:!1,props:{prefixCls:String,scrollTop:Number,scrollHeight:Number,height:Number,count:Number,onScroll:{type:Function},onStartMove:{type:Function},onStopMove:{type:Function}},setup(){return{moveRaf:null,scrollbarRef:_x(),thumbRef:_x(),visibleTimeout:null,state:Yt({dragging:!1,pageY:null,startTop:null,visible:!1})}},watch:{scrollTop:{handler(){this.delayHidden()},flush:`post`}},mounted(){var e,t;(e=this.scrollbarRef.current)==null||e.addEventListener(`touchstart`,this.onScrollbarTouchStart,wl?{passive:!1}:!1),(t=this.thumbRef.current)==null||t.addEventListener(`touchstart`,this.onMouseDown,wl?{passive:!1}:!1)},beforeUnmount(){this.removeEvents(),clearTimeout(this.visibleTimeout)},methods:{delayHidden(){clearTimeout(this.visibleTimeout),this.state.visible=!0,this.visibleTimeout=setTimeout(()=>{this.state.visible=!1},2e3)},onScrollbarTouchStart(e){e.preventDefault()},onContainerMouseDown(e){e.stopPropagation(),e.preventDefault()},patchEvents(){window.addEventListener(`mousemove`,this.onMouseMove),window.addEventListener(`mouseup`,this.onMouseUp),this.thumbRef.current.addEventListener(`touchmove`,this.onMouseMove,wl?{passive:!1}:!1),this.thumbRef.current.addEventListener(`touchend`,this.onMouseUp)},removeEvents(){window.removeEventListener(`mousemove`,this.onMouseMove),window.removeEventListener(`mouseup`,this.onMouseUp),this.scrollbarRef.current.removeEventListener(`touchstart`,this.onScrollbarTouchStart,wl?{passive:!1}:!1),this.thumbRef.current&&(this.thumbRef.current.removeEventListener(`touchstart`,this.onMouseDown,wl?{passive:!1}:!1),this.thumbRef.current.removeEventListener(`touchmove`,this.onMouseMove,wl?{passive:!1}:!1),this.thumbRef.current.removeEventListener(`touchend`,this.onMouseUp)),pl.cancel(this.moveRaf)},onMouseDown(e){let{onStartMove:t}=this.$props;g(this.state,{dragging:!0,pageY:Ix(e),startTop:this.getTop()}),t(),this.patchEvents(),e.stopPropagation(),e.preventDefault()},onMouseMove(e){let{dragging:t,pageY:n,startTop:r}=this.state,{onScroll:i}=this.$props;if(pl.cancel(this.moveRaf),t){let t=r+(Ix(e)-n),a=this.getEnableScrollRange(),o=this.getEnableHeightRange(),s=o?t/o:0,c=Math.ceil(s*a);this.moveRaf=pl(()=>{i(c)})}},onMouseUp(){let{onStopMove:e}=this.$props;this.state.dragging=!1,e(),this.removeEvents()},getSpinHeight(){let{height:e,scrollHeight:t}=this.$props,n=e/t*100;return n=Math.max(n,Fx),n=Math.min(n,e/2),Math.floor(n)},getEnableScrollRange(){let{scrollHeight:e,height:t}=this.$props;return e-t||0},getEnableHeightRange(){let{height:e}=this.$props;return e-this.getSpinHeight()||0},getTop(){let{scrollTop:e}=this.$props,t=this.getEnableScrollRange(),n=this.getEnableHeightRange();return e===0||t===0?0:e/t*n},showScroll(){let{height:e,scrollHeight:t}=this.$props;return t>e}},render(){let{dragging:e,visible:t}=this.state,{prefixCls:n}=this.$props,r=this.getSpinHeight()+`px`,i=this.getTop()+`px`,a=this.showScroll(),o=a&&t;return W(`div`,{ref:this.scrollbarRef,class:K(`${n}-scrollbar`,{[`${n}-scrollbar-show`]:a}),style:{width:`8px`,top:0,bottom:0,right:0,position:`absolute`,display:o?void 0:`none`},onMousedown:this.onContainerMouseDown,onMousemove:this.delayHidden},[W(`div`,{ref:this.thumbRef,class:K(`${n}-scrollbar-thumb`,{[`${n}-scrollbar-thumb-moving`]:e}),style:{width:`100%`,height:r,top:i,left:0,position:`absolute`,background:`rgba(0, 0, 0, 0.5)`,borderRadius:`99px`,cursor:`pointer`,userSelect:`none`},onMousedown:this.onMouseDown},null)])}});function Rx(e,t,n,r){let i=new Map,a=new Map,o=B(Symbol(`update`));H(e,()=>{o.value=Symbol(`update`)});let s;function c(){pl.cancel(s)}function l(){c(),s=pl(()=>{i.forEach((e,t)=>{if(e&&e.offsetParent){let{offsetHeight:n}=e;a.get(t)!==n&&(o.value=Symbol(`update`),a.set(t,e.offsetHeight))}})})}function u(e,a){let o=t(e),s=i.get(o);a?(i.set(o,a.$el||a),l()):i.delete(o),!s!=!a&&(a?n?.(e):r?.(e))}return ri(()=>{c()}),[u,l,a,o]}function zx(e,t,n,r,i,a,o,s){let c;return l=>{if(l==null){s();return}pl.cancel(c);let u=t.value,d=r.itemHeight;if(typeof l==`number`)o(l);else if(l&&typeof l==`object`){let t,{align:r}=l;`index`in l?{index:t}=l:t=u.findIndex(e=>i(e)===l.key);let{offset:s=0}=l,f=(l,p)=>{if(l<0||!e.value)return;let m=e.value.clientHeight,h=!1,g=p;if(m){let a=p||r,c=0,l=0,f=0,_=Math.min(u.length,t);for(let e=0;e<=_;e+=1){let r=i(u[e]);l=c;let a=n.get(r);f=l+(a===void 0?d:a),c=f,e===t&&a===void 0&&(h=!0)}let v=e.value.scrollTop,y=null;switch(a){case`top`:y=l-s;break;case`bottom`:y=f-m+s;break;default:{let e=v+m;le&&(g=`bottom`)}}y!==null&&y!==v&&o(y)}c=pl(()=>{h&&a(),f(l-1,g)},2)};f(5)}}}var Bx=typeof navigator==`object`&&/Firefox/i.test(navigator.userAgent),Vx=((e,t)=>{let n=!1,r=null;function i(){clearTimeout(r),n=!0,r=setTimeout(()=>{n=!1},50)}return function(a){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s=a<0&&e.value||a>0&&t.value;return o&&s?(clearTimeout(r),n=!1):(!s||n)&&i(),!n&&s}});function Hx(e,t,n,r){let i=0,a=null,o=null,s=!1,c=Vx(t,n);function l(t){if(!e.value)return;pl.cancel(a);let{deltaY:n}=t;i+=n,o=n,!c(n)&&(Bx||t.preventDefault(),a=pl(()=>{r(i*(s?10:1)),i=0}))}function u(t){e.value&&(s=t.detail===o)}return[l,u]}var Ux=14/15;function Wx(e,t,n){let r=!1,i=0,a=null,o=null,s=()=>{a&&(a.removeEventListener(`touchmove`,c),a.removeEventListener(`touchend`,l))},c=e=>{if(r){let t=Math.ceil(e.touches[0].pageY),r=i-t;i=t,n(r)&&e.preventDefault(),clearInterval(o),o=setInterval(()=>{r*=Ux,(!n(r,!0)||Math.abs(r)<=.1)&&clearInterval(o)},16)}},l=()=>{r=!1,s()},u=e=>{s(),e.touches.length===1&&!r&&(r=!0,i=Math.ceil(e.touches[0].pageY),a=e.target,a.addEventListener(`touchmove`,c,{passive:!1}),a.addEventListener(`touchend`,l))},d=()=>{};$r(()=>{document.addEventListener(`touchmove`,d,{passive:!1}),H(e,e=>{t.value.removeEventListener(`touchstart`,u),s(),clearInterval(o),e&&t.value.addEventListener(`touchstart`,u,{passive:!1})},{immediate:!0})}),ni(()=>{document.removeEventListener(`touchmove`,d)})}var Gx=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let a=i(e,t+n,{});return W(Px,{key:o(e),setRef:t=>r(e,t)},{default:()=>[a]})})}var Yx=U({compatConfig:{MODE:3},name:`List`,inheritAttrs:!1,props:{prefixCls:String,data:Q.array,height:Number,itemHeight:Number,fullHeight:{type:Boolean,default:void 0},itemKey:{type:[String,Number,Function],required:!0},component:{type:[String,Object]},virtual:{type:Boolean,default:void 0},children:Function,onScroll:Function,onMousedown:Function,onMouseenter:Function,onVisibleChange:Function},setup(e,t){let{expose:n}=t,r=G(()=>{let{height:t,itemHeight:n,virtual:r}=e;return!!(r!==!1&&t&&n)}),i=G(()=>{let{height:t,itemHeight:n,data:i}=e;return r.value&&i&&n*i.length>t}),a=Yt({scrollTop:0,scrollMoving:!1}),o=G(()=>e.data||Kx),s=V([]);H(o,()=>{s.value=rn(o.value).slice()},{immediate:!0});let c=V(e=>void 0);H(()=>e.itemKey,e=>{typeof e==`function`?c.value=e:c.value=t=>t?.[e]},{immediate:!0});let l=V(),u=V(),d=V(),f=e=>c.value(e),p={getKey:f};function m(e){let t;t=typeof e==`function`?e(a.scrollTop):e;let n=C(t);l.value&&(l.value.scrollTop=n),a.scrollTop=n}let[h,_,v,y]=Rx(s,f,null,null),b=Yt({scrollHeight:void 0,start:0,end:0,offset:void 0}),x=V(0);$r(()=>{zn(()=>{x.value=u.value?.offsetHeight||0})}),ti(()=>{zn(()=>{x.value=u.value?.offsetHeight||0})}),H([r,s],()=>{r.value||g(b,{scrollHeight:void 0,start:0,end:s.value.length-1,offset:void 0})},{immediate:!0}),H([r,s,x,i],()=>{r.value&&!i.value&&g(b,{scrollHeight:x.value,start:0,end:s.value.length-1,offset:void 0}),l.value&&(a.scrollTop=l.value.scrollTop)},{immediate:!0}),H([i,r,()=>a.scrollTop,s,y,()=>e.height,x],()=>{if(!r.value||!i.value)return;let t=0,n,o,c,l=s.value.length,u=s.value,d=a.scrollTop,{itemHeight:p,height:m}=e,h=d+m;for(let e=0;e=d&&(n=e,o=t),c===void 0&&s>h&&(c=e),t=s}n===void 0&&(n=0,o=0,c=Math.ceil(m/p)),c===void 0&&(c=l-1),c=Math.min(c+1,l),g(b,{scrollHeight:t,start:n,end:c,offset:o})},{immediate:!0});let S=G(()=>b.scrollHeight-e.height);function C(e){let t=e;return Number.isNaN(S.value)||(t=Math.min(t,S.value)),t=Math.max(t,0),t}let w=G(()=>a.scrollTop<=0),T=G(()=>a.scrollTop>=S.value),E=Vx(w,T);function D(e){m(e)}function O(t){var n;let{scrollTop:r}=t.currentTarget;r!==a.scrollTop&&m(r),(n=e.onScroll)==null||n.call(e,t)}let[k,A]=Hx(r,w,T,e=>{m(t=>t+e)});Wx(r,l,(e,t)=>!E(e,t)&&(k({preventDefault(){},deltaY:e}),!0));function j(e){r.value&&e.preventDefault()}let M=()=>{l.value&&(l.value.removeEventListener(`wheel`,k,wl?{passive:!1}:!1),l.value.removeEventListener(`DOMMouseScroll`,A),l.value.removeEventListener(`MozMousePixelScroll`,j))};ar(()=>{zn(()=>{l.value&&(M(),l.value.addEventListener(`wheel`,k,wl?{passive:!1}:!1),l.value.addEventListener(`DOMMouseScroll`,A),l.value.addEventListener(`MozMousePixelScroll`,j))})}),ni(()=>{M()}),n({scrollTo:zx(l,s,v,e,f,_,m,()=>{var e;(e=d.value)==null||e.delayHidden()})});let N=G(()=>{let t=null;return e.height&&(t=g({[e.fullHeight?`height`:`maxHeight`]:e.height+`px`},qx),r.value&&(t.overflowY=`hidden`,a.scrollMoving&&(t.pointerEvents=`none`))),t});return H([()=>b.start,()=>b.end,s],()=>{if(e.onVisibleChange){let t=s.value.slice(b.start,b.end+1);e.onVisibleChange(t,s.value)}},{flush:`post`}),{state:a,mergedData:s,componentStyle:N,onFallbackScroll:O,onScrollBar:D,componentRef:l,useVirtual:r,calRes:b,collectHeight:_,setInstance:h,sharedConfig:p,scrollBarRef:d,fillerInnerRef:u,delayHideScrollBar:()=>{var e;(e=d.value)==null||e.delayHidden()}}},render(){let e=g(g({},this.$props),this.$attrs),{prefixCls:t=`rc-virtual-list`,height:n,itemHeight:r,fullHeight:i,data:a,itemKey:o,virtual:s,component:c=`div`,onScroll:l,children:u=this.$slots.default,style:d,class:f}=e,p=Gx(e,[`prefixCls`,`height`,`itemHeight`,`fullHeight`,`data`,`itemKey`,`virtual`,`component`,`onScroll`,`children`,`style`,`class`]),m=K(t,f),{scrollTop:_}=this.state,{scrollHeight:v,offset:y,start:b,end:x}=this.calRes,{componentStyle:S,onFallbackScroll:C,onScrollBar:w,useVirtual:T,collectHeight:E,sharedConfig:D,setInstance:O,mergedData:k,delayHideScrollBar:A}=this;return W(`div`,h({style:g(g({},d),{position:`relative`}),class:m},p),[W(c,{class:`${t}-holder`,style:S,ref:`componentRef`,onScroll:C,onMouseenter:A},{default:()=>[W(Nx,{prefixCls:t,height:v,offset:y,onInnerResize:E,ref:`fillerInnerRef`},{default:()=>Jx(k,b,x,O,u,D)})]}),T&&W(Lx,{ref:`scrollBarRef`,prefixCls:t,scrollTop:_,height:n,scrollHeight:v,count:k.length,onScroll:w,onStartMove:()=>{this.state.scrollMoving=!0},onStopMove:()=>{this.state.scrollMoving=!1}},null)])}});function Xx(e,t,n){let r=B(e());return H(t,(t,i)=>{n?n(t,i)&&(r.value=e()):r.value=e()}),r}function Zx(){return/(mac\sos|macintosh)/i.test(navigator.appVersion)}var Qx=Symbol(`SelectContextKey`);function $x(e){return er(Qx,e)}function eS(){return tr(Qx,{})}var tS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i`${i.prefixCls}-item`),s=Xx(()=>a.flattenOptions,[()=>i.open,()=>a.flattenOptions],e=>e[0]),c=_x(),l=e=>{e.preventDefault()},u=e=>{c.current&&c.current.scrollTo(typeof e==`number`?{index:e}:e)},d=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,n=s.value.length;for(let r=0;r1&&arguments[1]!==void 0&&arguments[1];f.activeIndex=e;let n={source:t?`keyboard`:`mouse`},r=s.value[e];r?a.onActiveValue(r.value,e,n):a.onActiveValue(null,-1,n)};H([()=>s.value.length,()=>i.searchValue],()=>{p(a.defaultActiveFirstOption===!1?-1:d(0))},{immediate:!0});let m=e=>a.rawValues.has(e)&&i.mode!==`combobox`;H([()=>i.open,()=>i.searchValue],()=>{if(!i.multiple&&i.open&&a.rawValues.size===1){let e=Array.from(a.rawValues)[0],t=rn(s.value).findIndex(t=>{let{data:n}=t;return n[a.fieldNames.value]===e});t!==-1&&(p(t),zn(()=>{u(t)}))}i.open&&zn(()=>{var e;(e=c.current)==null||e.scrollTo(void 0)})},{immediate:!0,flush:`post`});let g=e=>{e!==void 0&&a.onSelect(e,{selected:!a.rawValues.has(e)}),i.multiple||i.toggleOpen(!1)},_=e=>typeof e.label==`function`?e.label():e.label;function v(e){let t=s.value[e];if(!t)return null;let n=t.data||{},{value:r}=n,{group:a}=t,o=Kb(n,!0),c=_(t);return t?W(`div`,h(h({"aria-label":typeof c==`string`&&!a?c:null},o),{},{key:e,role:a?`presentation`:`option`,id:`${i.id}_list_${e}`,"aria-selected":m(r)}),[r]):null}return n({onKeydown:e=>{let{which:t,ctrlKey:n}=e;switch(t){case $.N:case $.P:case $.UP:case $.DOWN:{let e=0;if(t===$.UP?e=-1:t===$.DOWN?e=1:Zx()&&n&&(t===$.N?e=1:t===$.P&&(e=-1)),e!==0){let t=d(f.activeIndex+e,e);u(t),p(t,!0)}break}case $.ENTER:{let t=s.value[f.activeIndex];t&&!t.data.disabled?g(t.value):g(void 0),i.open&&e.preventDefault();break}case $.ESC:i.toggleOpen(!1),i.open&&e.stopPropagation()}},onKeyup:()=>{},scrollTo:e=>{u(e)}}),()=>{let{id:e,notFoundContent:t,onPopupScroll:n}=i,{menuItemSelectedIcon:u,fieldNames:d,virtual:y,listHeight:b,listItemHeight:x}=a,S=r.option,{activeIndex:C}=f,w=Object.keys(d).map(e=>d[e]);return s.value.length===0?W(`div`,{role:`listbox`,id:`${e}_list`,class:`${o.value}-empty`,onMousedown:l},[t]):W(Ma,null,[W(`div`,{role:`listbox`,id:`${e}_list`,style:{height:0,width:0,overflow:`hidden`}},[v(C-1),v(C),v(C+1)]),W(Yx,{itemKey:`key`,ref:c,data:s.value,height:b,itemHeight:x,fullHeight:!1,onMousedown:l,onScroll:n,virtual:y},{default:(e,t)=>{let{group:n,groupOption:r,data:i,value:a}=e,{key:s}=i,c=typeof e.label==`function`?e.label():e.label;if(n){let e=i.title??(nS(c)&&c);return W(`div`,{class:K(o.value,`${o.value}-group`),title:e},[S?S(i):c===void 0?s:c])}let{disabled:l,title:d,children:f,style:v,class:y,className:b}=i,x=tS(i,[`disabled`,`title`,`children`,`style`,`class`,`className`]),T=sm(x,w),E=m(a),D=`${o.value}-option`,O=K(o.value,D,y,b,{[`${D}-grouped`]:r,[`${D}-active`]:C===t&&!l,[`${D}-disabled`]:l,[`${D}-selected`]:E}),k=_(e),A=!u||typeof u==`function`||E,j=typeof k==`number`?k:k||a,M=nS(j)?j.toString():void 0;return d!==void 0&&(M=d),W(`div`,h(h({},T),{},{"aria-selected":E,class:O,title:M,onMousemove:e=>{x.onMousemove&&x.onMousemove(e),!(C===t||l)&&p(t)},onClick:e=>{l||g(a),x.onClick&&x.onClick(e)},style:v}),[W(`div`,{class:`${D}-content`},[S?S(i):j]),al(u)||E,A&&W(Mb,{class:`${o.value}-option-state`,customizeIcon:u,customizeIconProps:{isSelected:E}},{default:()=>[E?`✓`:null]})])}})])}}}),iS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i1&&arguments[1]!==void 0&&arguments[1];return Gc(e).map((e,n)=>{if(!al(e)||!e.type)return null;let{type:{isSelectOptGroup:r},key:i,children:a,props:o}=e;if(t||!r)return aS(e);let s=a&&a.default?a.default():void 0,c=o?.label||a.label?.call(a)||i;return g(g({key:`__RC_SELECT_GRP__${i===null?n:String(i)}__`},o),{label:c,options:oS(s||[])})}).filter(e=>e)}function sS(e,t,n){let r=V(),i=V(),a=V(),o=V([]);return H([e,t],()=>{e.value?o.value=rn(e.value).slice():o.value=oS(t.value)},{immediate:!0,deep:!0}),ar(()=>{let e=o.value,t=new Map,s=new Map,c=n.value;function l(e){let n=arguments.length>1&&arguments[1]!==void 0&&arguments[1];for(let r=0;r0&&arguments[0]!==void 0?arguments[0]:B(``),t=`rc_select_${uS()}`;return e.value||t}function fS(e){return Array.isArray(e)?e:e===void 0?[]:[e]}typeof window<`u`&&window.document&&window.document.documentElement;function pS(e,t){return fS(e).join(``).toUpperCase().includes(t)}var mS=((e,t,n,r,i)=>G(()=>{let a=n.value,o=i?.value,s=r?.value;if(!a||s===!1)return e.value;let{options:c,label:l,value:u}=t.value,d=[],f=typeof s==`function`,p=a.toUpperCase(),m=f?s:(e,t)=>o?pS(t[o],p):t[c]?pS(t[l===`children`?`label`:l],p):pS(t[u],p),h=f?e=>Nh(e):e=>e;return e.value.forEach(e=>{if(e[c]){if(m(a,h(e)))d.push(e);else{let t=e[c].filter(e=>m(a,h(e)));t.length&&d.push(g(g({},e),{[c]:t}))}}else m(a,h(e))&&d.push(e)}),d})),hS=((e,t)=>{let n=V({values:new Map,options:new Map});return[G(()=>{let{values:r,options:i}=n.value,a=e.value.map(e=>e.label===void 0?g(g({},e),{label:r.get(e.value)?.label}):e),o=new Map,s=new Map;return a.forEach(e=>{o.set(e.value,e),s.set(e.value,t.value.get(e.value)||i.get(e.value))}),n.value.values=o,n.value.options=s,a}),e=>t.value.get(e)||n.value.options.get(e)]});function gS(e,t){let{defaultValue:n,value:r=B()}=t||{},i=typeof e==`function`?e():e;r.value!==void 0&&(i=fn(r)),n!==void 0&&(i=typeof n==`function`?n():n);let a=B(i),o=B(i);ar(()=>{let e=r.value===void 0?a.value:r.value;t.postState&&(e=t.postState(e)),o.value=e});function s(e){let n=o.value;a.value=e,rn(o.value)!==e&&t.onChange&&t.onChange(e,n)}return H(r,()=>{a.value=r.value}),[o,s]}function _S(e){let t=B(typeof e==`function`?e():e);function n(e){t.value=e}return[t,n]}var vS=[`inputValue`];function yS(){return g(g({},kx()),{prefixCls:String,id:String,backfill:{type:Boolean,default:void 0},fieldNames:Object,inputValue:String,searchValue:String,onSearch:Function,autoClearSearchValue:{type:Boolean,default:void 0},onSelect:Function,onDeselect:Function,filterOption:{type:[Boolean,Function],default:void 0},filterSort:Function,optionFilterProp:String,optionLabelProp:String,options:Array,defaultActiveFirstOption:{type:Boolean,default:void 0},virtual:{type:Boolean,default:void 0},listHeight:Number,listItemHeight:Number,menuItemSelectedIcon:Q.any,mode:String,labelInValue:{type:Boolean,default:void 0},value:Q.any,defaultValue:Q.any,onChange:Function,children:Array})}function bS(e){return!e||typeof e!=`object`}var xS=U({compatConfig:{MODE:3},name:`VcSelect`,inheritAttrs:!1,props:Bc(yS(),{prefixCls:`vc-select`,autoClearSearchValue:!0,listHeight:200,listItemHeight:20,dropdownMatchSelectWidth:!0}),setup(e,t){let{expose:n,attrs:r,slots:i}=t,a=dS(vn(e,`id`)),o=G(()=>jx(e.mode)),s=G(()=>!(e.options||!e.children)),c=G(()=>e.filterOption===void 0&&e.mode===`combobox`?!1:e.filterOption),l=G(()=>jh(e.fieldNames,s.value)),[u,d]=gS(``,{value:G(()=>e.searchValue===void 0?e.inputValue:e.searchValue),postState:e=>e||``}),f=sS(vn(e,`options`),vn(e,`children`),l),{valueOptions:p,labelOptions:m,options:_}=f,v=t=>fS(t).map(t=>{let n,r,i,a;bS(t)?n=t:(i=t.key,r=t.label,n=t.value??i);let o=p.value.get(n);return o&&(r===void 0&&(r=o?.[e.optionLabelProp||l.value.label]),i===void 0&&(i=o?.key??n),a=o?.disabled),{label:r,value:n,key:i,disabled:a,option:o}}),[y,b]=gS(e.defaultValue,{value:vn(e,`value`)}),[x,S]=hS(G(()=>{let t=v(y.value);return e.mode===`combobox`&&!t[0]?.value?[]:t}),p),C=G(()=>{if(!e.mode&&x.value.length===1){let e=x.value[0];if(e.value===null&&(e.label===null||e.label===void 0))return[]}return x.value.map(e=>g(g({},e),{label:(typeof e.label==`function`?e.label():e.label)??e.value}))}),w=G(()=>new Set(x.value.map(e=>e.value)));ar(()=>{if(e.mode===`combobox`){let e=x.value[0]?.value;e!=null&&d(String(e))}},{flush:`post`});let T=(e,t)=>{let n=t??e;return{[l.value.value]:e,[l.value.label]:n}},E=V();ar(()=>{if(e.mode!==`tags`){E.value=_.value;return}let t=_.value.slice(),n=e=>p.value.has(e);[...x.value].sort((e,t)=>e.value{let r=e.value;n(r)||t.push(T(r,e.label))}),E.value=t});let D=mS(E,l,u,c,vn(e,`optionFilterProp`)),O=G(()=>e.mode!==`tags`||!u.value||D.value.some(t=>t[e.optionFilterProp||`value`]===u.value)?D.value:[T(u.value),...D.value]),k=G(()=>e.filterSort?[...O.value].sort((t,n)=>e.filterSort(t,n)):O.value),A=G(()=>Mh(k.value,{fieldNames:l.value,childrenAsData:s.value})),j=t=>{let n=v(t);if(b(n),e.onChange&&(n.length!==x.value.length||n.some((e,t)=>x.value[t]?.value!==e?.value))){let t=e.labelInValue?n.map(e=>g(g({},e),{originLabel:e.label,label:typeof e.label==`function`?e.label():e.label})):n.map(e=>e.value),r=n.map(e=>Nh(S(e.value)));e.onChange(o.value?t:t[0],o.value?r:r[0])}},[M,N]=_S(null),[P,F]=_S(0),I=G(()=>e.defaultActiveFirstOption===void 0?e.mode!==`combobox`:e.defaultActiveFirstOption),L=function(t,n){let{source:r=`keyboard`}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};F(n),e.backfill&&e.mode===`combobox`&&t!==null&&r===`keyboard`&&N(String(t))},R=(t,n)=>{let r=()=>{let n=S(t),r=n?.[l.value.label];return[e.labelInValue?{label:typeof r==`function`?r():r,originLabel:r,value:t,key:n?.key??t}:t,Nh(n)]};if(n&&e.onSelect){let[t,n]=r();e.onSelect(t,n)}else if(!n&&e.onDeselect){let[t,n]=r();e.onDeselect(t,n)}},ee=(t,n)=>{let r,i=!o.value||n.selected;r=i?o.value?[...x.value,t]:[t]:x.value.filter(e=>e.value!==t),j(r),R(t,i),e.mode===`combobox`?N(``):(!o.value||e.autoClearSearchValue)&&(d(``),N(``))},te=(e,t)=>{j(e),(t.type===`remove`||t.type===`clear`)&&t.values.forEach(e=>{R(e.value,!1)})},ne=(t,n)=>{var r;if(d(t),N(null),n.source===`submit`){let e=(t||``).trim();if(e){let t=Array.from(new Set([...w.value,e]));j(t),R(e,!0),d(``)}}else n.source!==`blur`&&(e.mode===`combobox`&&j(t),(r=e.onSearch)==null||r.call(e,t))},z=t=>{let n=t;e.mode!==`tags`&&(n=t.map(e=>m.value.get(e)?.value).filter(e=>e!==void 0));let r=Array.from(new Set([...w.value,...n]));j(r),r.forEach(e=>{R(e,!0)})},re=G(()=>e.virtual!==!1&&e.dropdownMatchSelectWidth!==!1);$x(Tx(g(g({},f),{flattenOptions:A,onActiveValue:L,defaultActiveFirstOption:I,onSelect:ee,menuItemSelectedIcon:vn(e,`menuItemSelectedIcon`),rawValues:w,fieldNames:l,virtual:re,listHeight:vn(e,`listHeight`),listItemHeight:vn(e,`listItemHeight`),childrenAsData:s})));let ie=B();n({focus(){var e;(e=ie.value)==null||e.focus()},blur(){var e;(e=ie.value)==null||e.blur()},scrollTo(e){var t;(t=ie.value)==null||t.scrollTo(e)}});let ae=G(()=>sm(e,`id.mode.prefixCls.backfill.fieldNames.inputValue.searchValue.onSearch.autoClearSearchValue.onSelect.onDeselect.dropdownMatchSelectWidth.filterOption.filterSort.optionFilterProp.optionLabelProp.options.children.defaultActiveFirstOption.menuItemSelectedIcon.virtual.listHeight.listItemHeight.value.defaultValue.labelInValue.onChange`.split(`.`)));return()=>W(Mx,h(h(h({},ae.value),r),{},{id:a,prefixCls:e.prefixCls,ref:ie,omitDomProps:vS,mode:e.mode,displayValues:C.value,onDisplayValuesChange:te,searchValue:u.value,onSearch:ne,onSearchSplit:z,dropdownMatchSelectWidth:e.dropdownMatchSelectWidth,OptionList:rS,emptyOptions:!A.value.length,activeValue:M.value,activeDescendantId:`${a}_list_${P.value}`}),i)}}),SS=()=>null;SS.isSelectOption=!0,SS.displayName=`ASelectOption`;var CS=()=>null;CS.isSelectOptGroup=!0,CS.displayName=`ASelectOptGroup`;var wS=xS,TS={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z`}}]},name:`down`,theme:`outlined`},ES=Symbol(`iconContext`),DS=function(){return tr(ES,{prefixCls:B(`anticon`),rootClassName:B(``),csp:B()})};function OS(){return!!(typeof window<`u`&&window.document&&window.document.createElement)}function kS(e,t){return e&&e.contains?e.contains(t):!1}var AS=`data-vc-order`,jS=`vc-icon-key`,MS=new Map;function NS(){var e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).mark;return e?e.startsWith(`data-`)?e:`data-${e}`:jS}function PS(e){return e.attachTo?e.attachTo:document.querySelector(`head`)||document.body}function FS(e){return e===`queue`?`prependQueue`:e?`prepend`:`append`}function IS(e){return Array.from((MS.get(e)||e).children).filter(function(e){return e.tagName===`STYLE`})}function LS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!OS())return null;var n=t.csp,r=t.prepend,i=document.createElement(`style`);i.setAttribute(AS,FS(r)),n&&n.nonce&&(i.nonce=n.nonce),i.innerHTML=e;var a=PS(t),o=a.firstChild;if(r){if(r===`queue`){var s=IS(a).filter(function(e){return[`prepend`,`prependQueue`].includes(e.getAttribute(AS))});if(s.length)return a.insertBefore(i,s[s.length-1].nextSibling),i}a.insertBefore(i,o)}else a.appendChild(i);return i}function RS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return IS(PS(t)).find(function(n){return n.getAttribute(NS(t))===e})}function zS(e,t){var n=MS.get(e);if(!n||!kS(document,n)){var r=LS(``,t),i=r.parentNode;MS.set(e,i),e.removeChild(r)}}function BS(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};zS(PS(n),n);var r=RS(t,n);if(r)return n.csp&&n.csp.nonce&&r.nonce!==n.csp.nonce&&(r.nonce=n.csp.nonce),r.innerHTML!==e&&(r.innerHTML=e),r;var i=LS(e,n);return i.setAttribute(NS(n),t),i}function VS(e){for(var t=1;t * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`;function YS(e){return e&&e.getRootNode&&e.getRootNode()}function XS(e){return OS()?YS(e)instanceof ShadowRoot:!1}function ZS(e){return XS(e)?YS(e):null}var QS=function(){var e=DS(),t=e.prefixCls,n=e.csp,r=fo(),i=JS;t&&(i=i.replace(/anticon/g,t.value)),zn(function(){if(OS()){var e=r.vnode.el,t=ZS(e);BS(i,`@ant-design-vue-icons`,{prepend:!0,csp:n.value,attachTo:t})}})},$S=[`icon`,`primaryColor`,`secondaryColor`];function eC(e,t){if(e==null)return{};var n=tC(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function tC(e,t){if(e==null)return{};for(var n={},r=Object.keys(e),i,a=0;a=0)&&(n[i]=e[i]);return n}function nC(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function DC(e,t){if(e==null)return{};for(var n={},r=Object.keys(e),i,a=0;a=0)&&(n[i]=e[i]);return n}mC(ap.primary);var OC=function(e,t){var n,r=wC({},e,t.attrs),i=r.class,a=r.icon,o=r.spin,s=r.rotate,c=r.tabindex,l=r.twoToneColor,u=r.onClick,d=EC(r,_C),f=DS(),p=f.prefixCls,m=f.rootClassName,h=(n={},TC(n,m.value,!!m.value),TC(n,p.value,!0),TC(n,`${p.value}-${a.name}`,!!a.name),TC(n,`${p.value}-spin`,!!o||a.name===`loading`),n),g=c;g===void 0&&u&&(g=-1);var _=s?{msTransform:`rotate(${s}deg)`,transform:`rotate(${s}deg)`}:void 0,v=vC(qS(l),2),y=v[0],b=v[1];return W(`span`,wC({role:`img`,"aria-label":a.name},d,{onClick:u,class:[h,i],tabindex:g}),[W(sC,{icon:a,primaryColor:y,secondaryColor:b,style:_},null),W(gC,null,null)])};OC.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:[String,Array]},OC.displayName=`AntdIcon`,OC.inheritAttrs=!1,OC.getTwoToneColor=hC,OC.setTwoToneColor=mC;function kC(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},{loading:n,multiple:r,prefixCls:i,hasFeedback:a,feedbackIcon:o,showArrow:s}=e,c=e.suffixIcon||t.suffixIcon&&t.suffixIcon(),l=e.clearIcon||t.clearIcon&&t.clearIcon(),u=e.menuItemSelectedIcon||t.menuItemSelectedIcon&&t.menuItemSelectedIcon(),d=e.removeIcon||t.removeIcon&&t.removeIcon(),f=l??W(qC,null,null),p=e=>W(Ma,null,[s!==!1&&e,a&&o]),m=null;if(c!==void 0)m=p(c);else if(n)m=p(W(FC,{spin:!0},null));else{let e=`${i}-suffix`;m=t=>{let{open:n,showSearch:r}=t;return p(W(n&&r?ZC:jC,{class:e},null))}}let h=null;h=u===void 0?r?W(zC,null,null):null:u;let g=null;return g=d===void 0?W(UC,null,null):d,{clearIcon:f,suffixIcon:m,itemIcon:h,removeIcon:g}}function $C(e){let t=Symbol(`contextKey`);return{useProvide:(e,n)=>{let r=Yt({});return er(t,r),ar(()=>{g(r,e,n||{})}),r},useInject:()=>tr(t,e)||{}}}var ew=Symbol(`ContextProps`),tw=Symbol(`InternalContextProps`),nw=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:G(()=>!0),n=B(new Map);H([t,n],()=>{}),er(ew,e),er(tw,{addFormItemField:(e,t)=>{n.value.set(e,t),n.value=new Map(n.value)},removeFormItemField:e=>{n.value.delete(e),n.value=new Map(n.value)}})},rw={id:G(()=>void 0),onFieldBlur:()=>{},onFieldChange:()=>{},clearValidate:()=>{}},iw={addFormItemField:()=>{},removeFormItemField:()=>{}},aw=()=>{let e=tr(tw,iw),t=Symbol(`FormItemFieldKey`),n=fo();return e.addFormItemField(t,n.type),ni(()=>{e.removeFormItemField(t)}),er(tw,iw),er(ew,rw),tr(ew,rw)},ow=U({compatConfig:{MODE:3},name:`AFormItemRest`,setup(e,t){let{slots:n}=t;return er(tw,iw),er(ew,rw),()=>n.default?.call(n)}}),sw=$C({}),cw=U({name:`NoFormStatus`,setup(e,t){let{slots:n}=t;return sw.useProvide({}),()=>n.default?.call(n)}});function lw(e,t,n){return K({[`${e}-status-success`]:t===`success`,[`${e}-status-warning`]:t===`warning`,[`${e}-status-error`]:t===`error`,[`${e}-status-validating`]:t===`validating`,[`${e}-has-feedback`]:n})}var uw=(e,t)=>t||e,dw=e=>{let{componentCls:t}=e;return{[t]:{display:`inline-flex`,"&-block":{display:`flex`,width:`100%`},"&-vertical":{flexDirection:`column`}}}},fw=e=>{let{componentCls:t}=e;return{[t]:{display:`inline-flex`,"&-rtl":{direction:`rtl`},"&-vertical":{flexDirection:`column`},"&-align":{flexDirection:`column`,"&-center":{alignItems:`center`},"&-start":{alignItems:`flex-start`},"&-end":{alignItems:`flex-end`},"&-baseline":{alignItems:`baseline`}},[`${t}-item`]:{"&:empty":{display:`none`}}}}},pw=Fp(`Space`,e=>[fw(e),dw(e)]),mw=`[object Symbol]`;function hw(e){return typeof e==`symbol`||gv(e)&&S_(e)==mw}function gw(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n0){if(++t>=Vw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Gw(e){return function(){return e}}var Kw=function(){try{var e=O_(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),qw=Ww(Kw?function(e,t){return Kw(e,`toString`,{configurable:!0,enumerable:!1,value:Gw(t),writable:!0})}:Fw);function Jw(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}function eT(e,t,n){t==`__proto__`&&Kw?Kw(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var tT=Object.prototype.hasOwnProperty;function nT(e,t,n){var r=e[t];(!(tT.call(e,t)&&p_(r,n))||n===void 0&&!(t in e))&&eT(e,t,n)}function rT(e,t,n,r){var i=!n;n||={};for(var a=-1,o=t.length;++a0&&n(s)?t>1?kT(s,t-1,n,r,i):sv(i,s):r||(i[i.length]=s)}return i}function AT(e){return e!=null&&e.length?kT(e,1):[]}function jT(e){return qw(aT(e,void 0,AT),e+``)}var MT=gy(Object.getPrototypeOf,Object),NT=`[object Object]`,PT=Function.prototype,FT=Object.prototype,IT=PT.toString,LT=FT.hasOwnProperty,RT=IT.call(Object);function zT(e){if(!gv(e)||S_(e)!=NT)return!1;var t=MT(e);if(t===null)return!0;var n=LT.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&IT.call(n)==RT}function BT(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=t||n<0||d&&r>=a}function _(){var e=HD();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(HD())}function x(){var e=HD(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function qD(e){return gv(e)&&by(e)}function JD(e,t,n){for(var r=-1,i=e==null?0:e.length;++r-1?i[a?t[o]:o]:void 0}}var ZD=Math.max;function QD(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:Pw(n);return i<0&&(i=ZD(r+i,0)),Yw(e,ND(t,3),i)}var $D=XD(QD);function eO(e){for(var t=-1,n=e==null?0:e.length,r={};++t=120&&u.length>=120)?new I_(o&&u):void 0}u=e[0];var d=-1,f=s[0];outer:for(;++d1,t}),rT(e,ZT(e),n),r&&(n=pD(n,mO|hO|gO,pO));for(var i=t.length;i--;)fO(n,t[i]);return n});function vO(e,t,n,r){if(!C_(e))return e;t=ST(t,e);for(var i=-1,a=t.length,o=a-1,s=e;s!=null&&++i=wO){var l=t?null:CO(e);if(l)return W_(l);o=!1,i=R_,c=new I_}else c=t?[]:s;outer:for(;++r({compactSize:String,compactDirection:Q.oneOf(hl(`horizontal`,`vertical`)).def(`horizontal`),isFirstItem:J(),isLastItem:J()}),OO=$C(null),kO=(e,t)=>{let n=OO.useInject(),r=G(()=>{if(!n||cO(n))return``;let{compactDirection:r,isFirstItem:i,isLastItem:a}=n,o=r===`vertical`?`-vertical-`:`-`;return K({[`${e.value}-compact${o}item`]:!0,[`${e.value}-compact${o}first-item`]:i,[`${e.value}-compact${o}last-item`]:a,[`${e.value}-compact${o}item-rtl`]:t.value===`rtl`})});return{compactSize:G(()=>n?.compactSize),compactDirection:G(()=>n?.compactDirection),compactItemClassnames:r}},AO=U({name:`NoCompactStyle`,setup(e,t){let{slots:n}=t;return OO.useProvide(null),()=>n.default?.call(n)}}),jO=()=>({prefixCls:String,size:{type:String},direction:Q.oneOf(hl(`horizontal`,`vertical`)).def(`horizontal`),align:Q.oneOf(hl(`start`,`end`,`center`,`baseline`)),block:{type:Boolean,default:void 0}}),MO=U({name:`CompactItem`,props:DO(),setup(e,t){let{slots:n}=t;return OO.useProvide(e),()=>n.default?.call(n)}}),NO=U({name:`ASpaceCompact`,inheritAttrs:!1,props:jO(),setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=Z(`space-compact`,e),o=OO.useInject(),[s,c]=pw(i),l=G(()=>K(i.value,c.value,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-block`]:e.block,[`${i.value}-vertical`]:e.direction===`vertical`}));return()=>{let t=Gc(r.default?.call(r)||[]);return t.length===0?null:s(W(`div`,h(h({},n),{},{class:[l.value,n.class]}),[t.map((n,r)=>{let a=n&&n.key||`${i.value}-item-${r}`,s=!o||cO(o);return W(MO,{key:a,compactSize:e.size??`middle`,compactDirection:e.direction,isFirstItem:r===0&&(s||o?.isFirstItem),isLastItem:r===t.length-1&&(s||o?.isLastItem)},{default:()=>[n]})})]))}}}),PO=e=>({animationDuration:e,animationFillMode:`both`}),FO=e=>({animationDuration:e,animationFillMode:`both`}),IO=function(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0&&arguments[4]?`&`:``;return{[` + ${i}${e}-enter, + ${i}${e}-appear + `]:g(g({},PO(r)),{animationPlayState:`paused`}),[`${i}${e}-leave`]:g(g({},FO(r)),{animationPlayState:`paused`}),[` + ${i}${e}-enter${e}-enter-active, + ${i}${e}-appear${e}-appear-active + `]:{animationName:t,animationPlayState:`running`},[`${i}${e}-leave${e}-leave-active`]:{animationName:n,animationPlayState:`running`,pointerEvents:`none`}}},LO=new ef(`antFadeIn`,{"0%":{opacity:0},"100%":{opacity:1}}),RO=new ef(`antFadeOut`,{"0%":{opacity:1},"100%":{opacity:0}}),zO=function(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],{antCls:n}=e,r=`${n}-fade`,i=t?`&`:``;return[IO(r,LO,RO,e.motionDurationMid,t),{[` + ${i}${r}-enter, + ${i}${r}-appear + `]:{opacity:0,animationTimingFunction:`linear`},[`${i}${r}-leave`]:{animationTimingFunction:`linear`}}]},BO=new ef(`antMoveDownIn`,{"0%":{transform:`translate3d(0, 100%, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),VO=new ef(`antMoveDownOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(0, 100%, 0)`,transformOrigin:`0 0`,opacity:0}}),HO=new ef(`antMoveLeftIn`,{"0%":{transform:`translate3d(-100%, 0, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),UO=new ef(`antMoveLeftOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(-100%, 0, 0)`,transformOrigin:`0 0`,opacity:0}}),WO=new ef(`antMoveRightIn`,{"0%":{transform:`translate3d(100%, 0, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),GO=new ef(`antMoveRightOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(100%, 0, 0)`,transformOrigin:`0 0`,opacity:0}}),KO={"move-up":{inKeyframes:new ef(`antMoveUpIn`,{"0%":{transform:`translate3d(0, -100%, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),outKeyframes:new ef(`antMoveUpOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(0, -100%, 0)`,transformOrigin:`0 0`,opacity:0}})},"move-down":{inKeyframes:BO,outKeyframes:VO},"move-left":{inKeyframes:HO,outKeyframes:UO},"move-right":{inKeyframes:WO,outKeyframes:GO}},qO=(e,t)=>{let{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:i,outKeyframes:a}=KO[t];return[IO(r,i,a,e.motionDurationMid),{[` + ${r}-enter, + ${r}-appear + `]:{opacity:0,animationTimingFunction:e.motionEaseOutCirc},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},JO=new ef(`antSlideUpIn`,{"0%":{transform:`scaleY(0.8)`,transformOrigin:`0% 0%`,opacity:0},"100%":{transform:`scaleY(1)`,transformOrigin:`0% 0%`,opacity:1}}),YO=new ef(`antSlideUpOut`,{"0%":{transform:`scaleY(1)`,transformOrigin:`0% 0%`,opacity:1},"100%":{transform:`scaleY(0.8)`,transformOrigin:`0% 0%`,opacity:0}}),XO=new ef(`antSlideDownIn`,{"0%":{transform:`scaleY(0.8)`,transformOrigin:`100% 100%`,opacity:0},"100%":{transform:`scaleY(1)`,transformOrigin:`100% 100%`,opacity:1}}),ZO=new ef(`antSlideDownOut`,{"0%":{transform:`scaleY(1)`,transformOrigin:`100% 100%`,opacity:1},"100%":{transform:`scaleY(0.8)`,transformOrigin:`100% 100%`,opacity:0}}),QO=new ef(`antSlideLeftIn`,{"0%":{transform:`scaleX(0.8)`,transformOrigin:`0% 0%`,opacity:0},"100%":{transform:`scaleX(1)`,transformOrigin:`0% 0%`,opacity:1}}),$O=new ef(`antSlideLeftOut`,{"0%":{transform:`scaleX(1)`,transformOrigin:`0% 0%`,opacity:1},"100%":{transform:`scaleX(0.8)`,transformOrigin:`0% 0%`,opacity:0}}),ek=new ef(`antSlideRightIn`,{"0%":{transform:`scaleX(0.8)`,transformOrigin:`100% 0%`,opacity:0},"100%":{transform:`scaleX(1)`,transformOrigin:`100% 0%`,opacity:1}}),tk=new ef(`antSlideRightOut`,{"0%":{transform:`scaleX(1)`,transformOrigin:`100% 0%`,opacity:1},"100%":{transform:`scaleX(0.8)`,transformOrigin:`100% 0%`,opacity:0}}),nk={"slide-up":{inKeyframes:JO,outKeyframes:YO},"slide-down":{inKeyframes:XO,outKeyframes:ZO},"slide-left":{inKeyframes:QO,outKeyframes:$O},"slide-right":{inKeyframes:ek,outKeyframes:tk}},rk=(e,t)=>{let{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:i,outKeyframes:a}=nk[t];return[IO(r,i,a,e.motionDurationMid),{[` + ${r}-enter, + ${r}-appear + `]:{transform:`scale(0)`,transformOrigin:`0% 0%`,opacity:0,animationTimingFunction:e.motionEaseOutQuint},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInQuint}}]},ik=new ef(`antZoomIn`,{"0%":{transform:`scale(0.2)`,opacity:0},"100%":{transform:`scale(1)`,opacity:1}}),ak=new ef(`antZoomOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0.2)`,opacity:0}}),ok=new ef(`antZoomBigIn`,{"0%":{transform:`scale(0.8)`,opacity:0},"100%":{transform:`scale(1)`,opacity:1}}),sk=new ef(`antZoomBigOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0.8)`,opacity:0}}),ck=new ef(`antZoomUpIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`50% 0%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`50% 0%`}}),lk=new ef(`antZoomUpOut`,{"0%":{transform:`scale(1)`,transformOrigin:`50% 0%`},"100%":{transform:`scale(0.8)`,transformOrigin:`50% 0%`,opacity:0}}),uk=new ef(`antZoomLeftIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`0% 50%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`0% 50%`}}),dk=new ef(`antZoomLeftOut`,{"0%":{transform:`scale(1)`,transformOrigin:`0% 50%`},"100%":{transform:`scale(0.8)`,transformOrigin:`0% 50%`,opacity:0}}),fk=new ef(`antZoomRightIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`100% 50%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`100% 50%`}}),pk=new ef(`antZoomRightOut`,{"0%":{transform:`scale(1)`,transformOrigin:`100% 50%`},"100%":{transform:`scale(0.8)`,transformOrigin:`100% 50%`,opacity:0}}),mk=new ef(`antZoomDownIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`50% 100%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`50% 100%`}}),hk=new ef(`antZoomDownOut`,{"0%":{transform:`scale(1)`,transformOrigin:`50% 100%`},"100%":{transform:`scale(0.8)`,transformOrigin:`50% 100%`,opacity:0}}),gk={zoom:{inKeyframes:ik,outKeyframes:ak},"zoom-big":{inKeyframes:ok,outKeyframes:sk},"zoom-big-fast":{inKeyframes:ok,outKeyframes:sk},"zoom-left":{inKeyframes:uk,outKeyframes:dk},"zoom-right":{inKeyframes:fk,outKeyframes:pk},"zoom-up":{inKeyframes:ck,outKeyframes:lk},"zoom-down":{inKeyframes:mk,outKeyframes:hk}},_k=(e,t)=>{let{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:i,outKeyframes:a}=gk[t];return[IO(r,i,a,t===`zoom-big-fast`?e.motionDurationFast:e.motionDurationMid),{[` + ${r}-enter, + ${r}-appear + `]:{transform:`scale(0)`,opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:`none`}},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},vk=e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:`hidden`,"&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:`hidden`,transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}}),yk=e=>{let{controlPaddingHorizontal:t}=e;return{position:`relative`,display:`block`,minHeight:e.controlHeight,padding:`${(e.controlHeight-e.fontSize*e.lineHeight)/2}px ${t}px`,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,lineHeight:e.lineHeight,boxSizing:`border-box`}},bk=e=>{let{antCls:t,componentCls:n}=e,r=`${n}-item`;return[{[`${n}-dropdown`]:g(g({},Op(e)),{position:`absolute`,top:-9999,zIndex:e.zIndexPopup,boxSizing:`border-box`,padding:e.paddingXXS,overflow:`hidden`,fontSize:e.fontSize,fontVariant:`initial`,backgroundColor:e.colorBgElevated,borderRadius:e.borderRadiusLG,outline:`none`,boxShadow:e.boxShadowSecondary,[` + &${t}-slide-up-enter${t}-slide-up-enter-active${n}-dropdown-placement-bottomLeft, + &${t}-slide-up-appear${t}-slide-up-appear-active${n}-dropdown-placement-bottomLeft + `]:{animationName:JO},[` + &${t}-slide-up-enter${t}-slide-up-enter-active${n}-dropdown-placement-topLeft, + &${t}-slide-up-appear${t}-slide-up-appear-active${n}-dropdown-placement-topLeft + `]:{animationName:XO},[`&${t}-slide-up-leave${t}-slide-up-leave-active${n}-dropdown-placement-bottomLeft`]:{animationName:YO},[`&${t}-slide-up-leave${t}-slide-up-leave-active${n}-dropdown-placement-topLeft`]:{animationName:ZO},"&-hidden":{display:`none`},"&-empty":{color:e.colorTextDisabled},[`${r}-empty`]:g(g({},yk(e)),{color:e.colorTextDisabled}),[`${r}`]:g(g({},yk(e)),{cursor:`pointer`,transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:`default`},"&-option":{display:`flex`,"&-content":g({flex:`auto`},Dp),"&-state":{flex:`none`},[`&-active:not(${r}-option-disabled)`]:{backgroundColor:e.controlItemBgHover},[`&-selected:not(${r}-option-disabled)`]:{color:e.colorText,fontWeight:e.fontWeightStrong,backgroundColor:e.controlItemBgActive,[`${r}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${r}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:`not-allowed`},"&-grouped":{paddingInlineStart:e.controlPaddingHorizontal*2}}}),"&-rtl":{direction:`rtl`}})},rk(e,`slide-up`),rk(e,`slide-down`),qO(e,`move-up`),qO(e,`move-down`)]},xk=2;function Sk(e){let{controlHeightSM:t,controlHeight:n,lineWidth:r}=e,i=(n-t)/2-r;return[i,Math.ceil(i/2)]}function Ck(e,t){let{componentCls:n,iconCls:r}=e,i=`${n}-selection-overflow`,a=e.controlHeightSM,[o]=Sk(e);return{[`${n}-multiple${t?`${n}-${t}`:``}`]:{fontSize:e.fontSize,[i]:{position:`relative`,display:`flex`,flex:`auto`,flexWrap:`wrap`,maxWidth:`100%`,"&-item":{flex:`none`,alignSelf:`center`,maxWidth:`100%`,display:`inline-flex`}},[`${n}-selector`]:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,padding:`${o-xk}px 4px`,borderRadius:e.borderRadius,[`${n}-show-search&`]:{cursor:`text`},[`${n}-disabled&`]:{background:e.colorBgContainerDisabled,cursor:`not-allowed`},"&:after":{display:`inline-block`,width:0,margin:`${xk}px 0`,lineHeight:`${a}px`,content:`"\\a0"`}},[` + &${n}-show-arrow ${n}-selector, + &${n}-allow-clear ${n}-selector + `]:{paddingInlineEnd:e.fontSizeIcon+e.controlPaddingHorizontal},[`${n}-selection-item`]:{position:`relative`,display:`flex`,flex:`none`,boxSizing:`border-box`,maxWidth:`100%`,height:a,marginTop:xk,marginBottom:xk,lineHeight:`${a-e.lineWidth*2}px`,background:e.colorFillSecondary,border:`${e.lineWidth}px solid ${e.colorSplit}`,borderRadius:e.borderRadiusSM,cursor:`default`,transition:`font-size ${e.motionDurationSlow}, line-height ${e.motionDurationSlow}, height ${e.motionDurationSlow}`,userSelect:`none`,marginInlineEnd:4,paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS/2,[`${n}-disabled&`]:{color:e.colorTextDisabled,borderColor:e.colorBorder,cursor:`not-allowed`},"&-content":{display:`inline-block`,marginInlineEnd:e.paddingXS/2,overflow:`hidden`,whiteSpace:`pre`,textOverflow:`ellipsis`},"&-remove":g(g({},kp()),{display:`inline-block`,color:e.colorIcon,fontWeight:`bold`,fontSize:10,lineHeight:`inherit`,cursor:`pointer`,[`> ${r}`]:{verticalAlign:`-0.2em`},"&:hover":{color:e.colorIconHover}})},[`${i}-item + ${i}-item`]:{[`${n}-selection-search`]:{marginInlineStart:0}},[`${n}-selection-search`]:{display:`inline-flex`,position:`relative`,maxWidth:`100%`,marginInlineStart:e.inputPaddingHorizontalBase-o,"\n &-input,\n &-mirror\n ":{height:a,fontFamily:e.fontFamily,lineHeight:`${a}px`,transition:`all ${e.motionDurationSlow}`},"&-input":{width:`100%`,minWidth:4.1},"&-mirror":{position:`absolute`,top:0,insetInlineStart:0,insetInlineEnd:`auto`,zIndex:999,whiteSpace:`pre`,visibility:`hidden`}},[`${n}-selection-placeholder `]:{position:`absolute`,top:`50%`,insetInlineStart:e.inputPaddingHorizontalBase,insetInlineEnd:e.inputPaddingHorizontalBase,transform:`translateY(-50%)`,transition:`all ${e.motionDurationSlow}`}}}}function wk(e){let{componentCls:t}=e,n=Rp(e,{controlHeight:e.controlHeightSM,controlHeightSM:e.controlHeightXS,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS}),[,r]=Sk(e);return[Ck(e),Ck(n,`sm`),{[`${t}-multiple${t}-sm`]:{[`${t}-selection-placeholder`]:{insetInlineStart:e.controlPaddingHorizontalSM-e.lineWidth,insetInlineEnd:`auto`},[`${t}-selection-search`]:{marginInlineStart:r}}},Ck(Rp(e,{fontSize:e.fontSizeLG,controlHeight:e.controlHeightLG,controlHeightSM:e.controlHeight,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius}),`lg`)]}function Tk(e,t){let{componentCls:n,inputPaddingHorizontalBase:r,borderRadius:i}=e,a=e.controlHeight-e.lineWidth*2,o=Math.ceil(e.fontSize*1.25);return{[`${n}-single${t?`${n}-${t}`:``}`]:{fontSize:e.fontSize,[`${n}-selector`]:g(g({},Op(e)),{display:`flex`,borderRadius:i,[`${n}-selection-search`]:{position:`absolute`,top:0,insetInlineStart:r,insetInlineEnd:r,bottom:0,"&-input":{width:`100%`}},[` + ${n}-selection-item, + ${n}-selection-placeholder + `]:{padding:0,lineHeight:`${a}px`,transition:`all ${e.motionDurationSlow}`,"@supports (-moz-appearance: meterbar)":{lineHeight:`${a}px`}},[`${n}-selection-item`]:{position:`relative`,userSelect:`none`},[`${n}-selection-placeholder`]:{transition:`none`,pointerEvents:`none`},[[`&:after`,`${n}-selection-item:after`,`${n}-selection-placeholder:after`].join(`,`)]:{display:`inline-block`,width:0,visibility:`hidden`,content:`"\\a0"`}}),[` + &${n}-show-arrow ${n}-selection-item, + &${n}-show-arrow ${n}-selection-placeholder + `]:{paddingInlineEnd:o},[`&${n}-open ${n}-selection-item`]:{color:e.colorTextPlaceholder},[`&:not(${n}-customize-input)`]:{[`${n}-selector`]:{width:`100%`,height:e.controlHeight,padding:`0 ${r}px`,[`${n}-selection-search-input`]:{height:a},"&:after":{lineHeight:`${a}px`}}},[`&${n}-customize-input`]:{[`${n}-selector`]:{"&:after":{display:`none`},[`${n}-selection-search`]:{position:`static`,width:`100%`},[`${n}-selection-placeholder`]:{position:`absolute`,insetInlineStart:0,insetInlineEnd:0,padding:`0 ${r}px`,"&:after":{display:`none`}}}}}}}function Ek(e){let{componentCls:t}=e,n=e.controlPaddingHorizontalSM-e.lineWidth;return[Tk(e),Tk(Rp(e,{controlHeight:e.controlHeightSM,borderRadius:e.borderRadiusSM}),`sm`),{[`${t}-single${t}-sm`]:{[`&:not(${t}-customize-input)`]:{[`${t}-selection-search`]:{insetInlineStart:n,insetInlineEnd:n},[`${t}-selector`]:{padding:`0 ${n}px`},[`&${t}-show-arrow ${t}-selection-search`]:{insetInlineEnd:n+e.fontSize*1.5},[` + &${t}-show-arrow ${t}-selection-item, + &${t}-show-arrow ${t}-selection-placeholder + `]:{paddingInlineEnd:e.fontSize*1.5}}}},Tk(Rp(e,{controlHeight:e.controlHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),`lg`)]}function Dk(e,t,n){let{focusElCls:r,focus:i,borderElCls:a}=n,o=a?`> *`:``,s=[`hover`,i?`focus`:null,`active`].filter(Boolean).map(e=>`&:${e} ${o}`).join(`,`);return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-e.lineWidth},"&-item":g(g({[s]:{zIndex:2}},r?{[`&${r}`]:{zIndex:2}}:{}),{[`&[disabled] ${o}`]:{zIndex:0}})}}function Ok(e,t,n){let{borderElCls:r}=n,i=r?`> ${r}`:``;return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${i}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function kk(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0},{componentCls:n}=e,r=`${n}-compact`;return{[r]:g(g({},Dk(e,r,t)),Ok(n,r,t))}}var Ak=e=>{let{componentCls:t}=e;return{position:`relative`,backgroundColor:e.colorBgContainer,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,input:{cursor:`pointer`},[`${t}-show-search&`]:{cursor:`text`,input:{cursor:`auto`,color:`inherit`}},[`${t}-disabled&`]:{color:e.colorTextDisabled,background:e.colorBgContainerDisabled,cursor:`not-allowed`,[`${t}-multiple&`]:{background:e.colorBgContainerDisabled},input:{cursor:`not-allowed`}}}},jk=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],{componentCls:r,borderHoverColor:i,outlineColor:a,antCls:o}=t,s=n?{[`${r}-selector`]:{borderColor:i}}:{};return{[e]:{[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:g(g({},s),{[`${r}-focused& ${r}-selector`]:{borderColor:i,boxShadow:`0 0 0 ${t.controlOutlineWidth}px ${a}`,borderInlineEndWidth:`${t.controlLineWidth}px !important`,outline:0},[`&:hover ${r}-selector`]:{borderColor:i,borderInlineEndWidth:`${t.controlLineWidth}px !important`}})}}},Mk=e=>{let{componentCls:t}=e;return{[`${t}-selection-search-input`]:{margin:0,padding:0,background:`transparent`,border:`none`,outline:`none`,appearance:`none`,"&::-webkit-search-cancel-button":{display:`none`,"-webkit-appearance":`none`}}}},Nk=e=>{let{componentCls:t,inputPaddingHorizontalBase:n,iconCls:r}=e;return{[t]:g(g({},Op(e)),{position:`relative`,display:`inline-block`,cursor:`pointer`,[`&:not(${t}-customize-input) ${t}-selector`]:g(g({},Ak(e)),Mk(e)),[`${t}-selection-item`]:g({flex:1,fontWeight:`normal`},Dp),[`${t}-selection-placeholder`]:g(g({},Dp),{flex:1,color:e.colorTextPlaceholder,pointerEvents:`none`}),[`${t}-arrow`]:g(g({},kp()),{position:`absolute`,top:`50%`,insetInlineStart:`auto`,insetInlineEnd:n,height:e.fontSizeIcon,marginTop:-e.fontSizeIcon/2,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,lineHeight:1,textAlign:`center`,pointerEvents:`none`,display:`flex`,alignItems:`center`,[r]:{verticalAlign:`top`,transition:`transform ${e.motionDurationSlow}`,"> svg":{verticalAlign:`top`},[`&:not(${t}-suffix)`]:{pointerEvents:`auto`}},[`${t}-disabled &`]:{cursor:`not-allowed`},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${t}-clear`]:{position:`absolute`,top:`50%`,insetInlineStart:`auto`,insetInlineEnd:n,zIndex:1,display:`inline-block`,width:e.fontSizeIcon,height:e.fontSizeIcon,marginTop:-e.fontSizeIcon/2,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,fontStyle:`normal`,lineHeight:1,textAlign:`center`,textTransform:`none`,background:e.colorBgContainer,cursor:`pointer`,opacity:0,transition:`color ${e.motionDurationMid} ease, opacity ${e.motionDurationSlow} ease`,textRendering:`auto`,"&:before":{display:`block`},"&:hover":{color:e.colorTextTertiary}},"&:hover":{[`${t}-clear`]:{opacity:1}}}),[`${t}-has-feedback`]:{[`${t}-clear`]:{insetInlineEnd:n+e.fontSize+e.paddingXXS}}}},Pk=e=>{let{componentCls:t}=e;return[{[t]:{[`&-borderless ${t}-selector`]:{backgroundColor:`transparent !important`,borderColor:`transparent !important`,boxShadow:`none !important`},[`&${t}-in-form-item`]:{width:`100%`}}},Nk(e),Ek(e),wk(e),bk(e),{[`${t}-rtl`]:{direction:`rtl`}},jk(t,Rp(e,{borderHoverColor:e.colorPrimaryHover,outlineColor:e.controlOutline})),jk(`${t}-status-error`,Rp(e,{borderHoverColor:e.colorErrorHover,outlineColor:e.colorErrorOutline}),!0),jk(`${t}-status-warning`,Rp(e,{borderHoverColor:e.colorWarningHover,outlineColor:e.colorWarningOutline}),!0),kk(e,{borderElCls:`${t}-selector`,focusElCls:`${t}-focused`})]},Fk=Fp(`Select`,(e,t)=>{let{rootPrefixCls:n}=t;return[Pk(Rp(e,{rootPrefixCls:n,inputPaddingHorizontalBase:e.paddingSM-1}))]},e=>({zIndexPopup:e.zIndexPopupBase+50})),Ik=()=>g(g({},sm(yS(),[`inputIcon`,`mode`,`getInputElement`,`getRawInputElement`,`backfill`])),{value:Sl([Array,Object,String,Number]),defaultValue:Sl([Array,Object,String,Number]),notFoundContent:Q.any,suffixIcon:Q.any,itemIcon:Q.any,size:X(),mode:X(),bordered:J(!0),transitionName:String,choiceTransitionName:X(``),popupClassName:String,dropdownClassName:String,placement:X(),status:X(),"onUpdate:value":Y()}),Lk=`SECRET_COMBOBOX_MODE_DO_NOT_USE`,Rk=U({compatConfig:{MODE:3},name:`ASelect`,Option:SS,OptGroup:CS,inheritAttrs:!1,props:Bc(Ik(),{listHeight:256,listItemHeight:24}),SECRET_COMBOBOX_MODE_DO_NOT_USE:Lk,slots:Object,setup(e,t){let{attrs:n,emit:r,slots:i,expose:a}=t,o=B(),s=aw(),c=sw.useInject(),l=G(()=>uw(c.status,e.status)),u=()=>{var e;(e=o.value)==null||e.focus()},d=()=>{var e;(e=o.value)==null||e.blur()},f=e=>{var t;(t=o.value)==null||t.scrollTo(e)},p=G(()=>{let{mode:t}=e;if(t!==`combobox`)return t===Lk?`combobox`:t}),{prefixCls:m,direction:_,configProvider:v,renderEmpty:y,size:b,getPrefixCls:x,getPopupContainer:S,disabled:C,select:w}=Z(`select`,e),{compactSize:T,compactItemClassnames:E}=kO(m,_),D=G(()=>T.value||b.value),O=Ul(),k=G(()=>C.value??O.value),[A,j]=Fk(m),M=G(()=>x()),N=G(()=>e.placement===void 0?_.value===`rtl`?`bottomRight`:`bottomLeft`:e.placement),P=G(()=>ib(M.value,tb(N.value),e.transitionName)),F=G(()=>K({[`${m.value}-lg`]:D.value===`large`,[`${m.value}-sm`]:D.value===`small`,[`${m.value}-rtl`]:_.value===`rtl`,[`${m.value}-borderless`]:!e.bordered,[`${m.value}-in-form-item`]:c.isFormItemInput},lw(m.value,l.value,c.hasFeedback),E.value,j.value)),I=function(){var e=[...arguments];r(`update:value`,e[0]),r(`change`,...e),s.onFieldChange()},L=e=>{r(`blur`,e),s.onFieldBlur()};a({blur:d,focus:u,scrollTo:f});let R=G(()=>p.value===`multiple`||p.value===`tags`),ee=G(()=>e.showArrow===void 0?e.loading||!(R.value||p.value===`combobox`):e.showArrow);return()=>{let{notFoundContent:t,listHeight:r=256,listItemHeight:a=24,popupClassName:l,dropdownClassName:u,virtual:d,dropdownMatchSelectWidth:f,id:b=s.id.value,placeholder:x=i.placeholder?.call(i),showArrow:C}=e,{hasFeedback:T,feedbackIcon:E}=c,{}=v,D;D=t===void 0?i.notFoundContent?i.notFoundContent():p.value===`combobox`?null:y?.(`Select`)||W(nm,{componentName:`Select`},null):t;let{suffixIcon:O,itemIcon:M,removeIcon:N,clearIcon:te}=QC(g(g({},e),{multiple:R.value,prefixCls:m.value,hasFeedback:T,feedbackIcon:E,showArrow:ee.value}),i),ne=sm(e,[`prefixCls`,`suffixIcon`,`itemIcon`,`removeIcon`,`clearIcon`,`size`,`bordered`,`status`]),z=K(l||u,{[`${m.value}-dropdown-${_.value}`]:_.value===`rtl`},j.value);return A(W(wS,h(h(h({ref:o,virtual:d,dropdownMatchSelectWidth:f},ne),n),{},{showSearch:e.showSearch??w?.value?.showSearch,placeholder:x,listHeight:r,listItemHeight:a,mode:p.value,prefixCls:m.value,direction:_.value,inputIcon:O,menuItemSelectedIcon:M,removeIcon:N,clearIcon:te,notFoundContent:D,class:[F.value,n.class],getPopupContainer:S?.value,dropdownClassName:z,onChange:I,onBlur:L,id:b,dropdownRender:ne.dropdownRender||i.dropdownRender,transitionName:P.value,children:i.default?.call(i),tagRender:e.tagRender||i.tagRender,optionLabelRender:i.optionLabel,maxTagPlaceholder:e.maxTagPlaceholder||i.maxTagPlaceholder,showArrow:T||C,disabled:k.value}),{option:i.option}))}}});Rk.install=function(e){return e.component(Rk.name,Rk),e.component(Rk.Option.displayName,Rk.Option),e.component(Rk.OptGroup.displayName,Rk.OptGroup),e};var zk=Rk.Option,Bk=Rk.OptGroup,Vk=()=>null;Vk.isSelectOption=!0,Vk.displayName=`AAutoCompleteOption`;var Hk=()=>null;Hk.isSelectOptGroup=!0,Hk.displayName=`AAutoCompleteOptGroup`;function Uk(e){return e?.type?.isSelectOption||e?.type?.isSelectOptGroup}var Wk=()=>g(g({},sm(Ik(),[`loading`,`mode`,`optionLabelProp`,`labelInValue`])),{dataSource:Array,dropdownMenuStyle:{type:Object,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},prefixCls:String,showSearch:{type:Boolean,default:void 0},transitionName:String,choiceTransitionName:{type:String,default:`zoom`},autofocus:{type:Boolean,default:void 0},backfill:{type:Boolean,default:void 0},filterOption:{type:[Boolean,Function],default:!1},defaultActiveFirstOption:{type:Boolean,default:!0},status:String}),Gk=Vk,Kk=Hk,qk=U({compatConfig:{MODE:3},name:`AAutoComplete`,inheritAttrs:!1,props:Wk(),slots:Object,setup(e,t){let{slots:n,attrs:r,expose:i}=t;Ru(!(`dataSource`in n),`AutoComplete`,"`dataSource` slot is deprecated, please use props `options` instead."),Ru(!(`options`in n),`AutoComplete`,"`options` slot is deprecated, please use props `options` instead."),Ru(!e.dropdownClassName,`AutoComplete`,"`dropdownClassName` is deprecated, please use `popupClassName` instead.");let a=B(),o=()=>{let e=Gc(n.default?.call(n));return e.length?e[0]:void 0};i({focus:()=>{var e;(e=a.value)==null||e.focus()},blur:()=>{var e;(e=a.value)==null||e.blur()}});let{prefixCls:s}=Z(`select`,e);return()=>{let{size:t,dataSource:i,notFoundContent:c=n.notFoundContent?.call(n)}=e,l,{class:u}=r,d={[u]:!!u,[`${s.value}-lg`]:t===`large`,[`${s.value}-sm`]:t===`small`,[`${s.value}-show-search`]:!0,[`${s.value}-auto-complete`]:!0};if(e.options===void 0){let e=n.dataSource?.call(n)||n.options?.call(n)||[];l=e.length&&Uk(e[0])?e:i?i.map(e=>{if(al(e))return e;switch(typeof e){case`string`:return W(Vk,{key:e,value:e},{default:()=>[e]});case`object`:return W(Vk,{key:e.value,value:e.value},{default:()=>[e.text]});default:throw Error("AutoComplete[dataSource] only supports type `string[] | Object[]`.")}}):[]}return W(Rk,sm(g(g(g({},e),r),{mode:Rk.SECRET_COMBOBOX_MODE_DO_NOT_USE,getInputElement:o,notFoundContent:c,class:d,popupClassName:e.popupClassName||e.dropdownClassName,ref:a}),[`dataSource`,`loading`]),h({default:()=>[l]},sm(n,[`default`,`dataSource`,`options`])))}}}),Jk=g(qk,{Option:Vk,OptGroup:Hk,install(e){return e.component(qk.name,qk),e.component(Vk.displayName,Vk),e.component(Hk.displayName,Hk),e}}),Yk={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z`}},{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z`}}]},name:`check-circle`,theme:`outlined`};function Xk(e){for(var t=1;t({backgroundColor:e,border:`${r.lineWidth}px ${r.lineType} ${t}`,[`${i}-icon`]:{color:n}}),une=e=>{let{componentCls:t,motionDurationSlow:n,marginXS:r,marginSM:i,fontSize:a,fontSizeLG:o,lineHeight:s,borderRadiusLG:c,motionEaseInOutCirc:l,alertIconSizeLG:u,colorText:d,paddingContentVerticalSM:f,alertPaddingHorizontal:p,paddingMD:m,paddingContentHorizontalLG:h}=e;return{[t]:g(g({},Op(e)),{position:`relative`,display:`flex`,alignItems:`center`,padding:`${f}px ${p}px`,wordWrap:`break-word`,borderRadius:c,[`&${t}-rtl`]:{direction:`rtl`},[`${t}-content`]:{flex:1,minWidth:0},[`${t}-icon`]:{marginInlineEnd:r,lineHeight:0},"&-description":{display:`none`,fontSize:a,lineHeight:s},"&-message":{color:d},[`&${t}-motion-leave`]:{overflow:`hidden`,opacity:1,transition:`max-height ${n} ${l}, opacity ${n} ${l}, + padding-top ${n} ${l}, padding-bottom ${n} ${l}, + margin-bottom ${n} ${l}`},[`&${t}-motion-leave-active`]:{maxHeight:0,marginBottom:`0 !important`,paddingTop:0,paddingBottom:0,opacity:0}}),[`${t}-with-description`]:{alignItems:`flex-start`,paddingInline:h,paddingBlock:m,[`${t}-icon`]:{marginInlineEnd:i,fontSize:u,lineHeight:0},[`${t}-message`]:{display:`block`,marginBottom:r,color:d,fontSize:o},[`${t}-description`]:{display:`block`}},[`${t}-banner`]:{marginBottom:0,border:`0 !important`,borderRadius:0}}},dne=e=>{let{componentCls:t,colorSuccess:n,colorSuccessBorder:r,colorSuccessBg:i,colorWarning:a,colorWarningBorder:o,colorWarningBg:s,colorError:c,colorErrorBorder:l,colorErrorBg:u,colorInfo:d,colorInfoBorder:f,colorInfoBg:p}=e;return{[t]:{"&-success":CA(i,r,n,e,t),"&-info":CA(p,f,d,e,t),"&-warning":CA(s,o,a,e,t),"&-error":g(g({},CA(u,l,c,e,t)),{[`${t}-description > pre`]:{margin:0,padding:0}})}}},fne=e=>{let{componentCls:t,iconCls:n,motionDurationMid:r,marginXS:i,fontSizeIcon:a,colorIcon:o,colorIconHover:s}=e;return{[t]:{"&-action":{marginInlineStart:i},[`${t}-close-icon`]:{marginInlineStart:i,padding:0,overflow:`hidden`,fontSize:a,lineHeight:`${a}px`,backgroundColor:`transparent`,border:`none`,outline:`none`,cursor:`pointer`,[`${n}-close`]:{color:o,transition:`color ${r}`,"&:hover":{color:s}}},"&-close-text":{color:o,transition:`color ${r}`,"&:hover":{color:s}}}}},pne=e=>[une(e),dne(e),fne(e)],mne=Fp(`Alert`,e=>{let{fontSizeHeading3:t}=e;return[pne(Rp(e,{alertIconSizeLG:t,alertPaddingHorizontal:12}))]}),hne={success:mA,info:SA,error:qC,warning:vA},gne={success:Qk,info:oA,error:uA,warning:nA},_ne=hl(`success`,`info`,`warning`,`error`),vne=_l(U({compatConfig:{MODE:3},name:`AAlert`,inheritAttrs:!1,props:{type:Q.oneOf(_ne),closable:{type:Boolean,default:void 0},closeText:Q.any,message:Q.any,description:Q.any,afterClose:Function,showIcon:{type:Boolean,default:void 0},prefixCls:String,banner:{type:Boolean,default:void 0},icon:Q.any,closeIcon:Q.any,onClose:Function},setup(e,t){let{slots:n,emit:r,attrs:i,expose:a}=t,{prefixCls:o,direction:s}=Z(`alert`,e),[c,l]=mne(o),u=V(!1),d=V(!1),f=V(),p=e=>{e.preventDefault();let t=f.value;t.style.height=`${t.offsetHeight}px`,t.style.height=`${t.offsetHeight}px`,u.value=!0,r(`close`,e)},m=()=>{var t;u.value=!1,d.value=!0,(t=e.afterClose)==null||t.call(e)},g=G(()=>{let{type:t}=e;return t===void 0?e.banner?`warning`:`info`:t});a({animationEnd:m});let _=V({});return()=>{let{banner:t,closeIcon:r=n.closeIcon?.call(n)}=e,{closable:a,showIcon:v}=e,y=e.closeText??n.closeText?.call(n),b=e.description??n.description?.call(n),x=e.message??n.message?.call(n),S=e.icon??n.icon?.call(n),C=n.action?.call(n);v=t&&v===void 0?!0:v;let w=(b?gne:hne)[g.value]||null;y&&(a=!0);let T=o.value,E=K(T,{[`${T}-${g.value}`]:!0,[`${T}-closing`]:u.value,[`${T}-with-description`]:!!b,[`${T}-no-icon`]:!v,[`${T}-banner`]:!!t,[`${T}-closable`]:a,[`${T}-rtl`]:s.value===`rtl`,[l.value]:!0}),D=a?W(`button`,{type:`button`,onClick:p,class:`${T}-close-icon`,tabindex:0},[y?W(`span`,{class:`${T}-close-text`},[y]):r===void 0?W(UC,null,null):r]):null,O=S&&(al(S)?s_(S,{class:`${T}-icon`}):W(`span`,{class:`${T}-icon`},[S]))||W(w,{class:`${T}-icon`},null),k=nb(`${T}-motion`,{appear:!1,css:!0,onAfterLeave:m,onBeforeLeave:e=>{e.style.maxHeight=`${e.offsetHeight}px`},onLeave:e=>{e.style.maxHeight=`0px`}});return c(d.value?null:W(Uo,k,{default:()=>[Qn(W(`div`,h(h({role:`alert`},i),{},{style:[i.style,_.value],class:[i.class,E],"data-show":!u.value,ref:f}),[v?O:null,W(`div`,{class:`${T}-content`},[x?W(`div`,{class:`${T}-message`},[x]):null,b?W(`div`,{class:`${T}-description`},[b]):null]),C?W(`div`,{class:`${T}-action`},[C]):null,D]),[[ss,!u.value]])]}))}}})),wA=[`xxxl`,`xxl`,`xl`,`lg`,`md`,`sm`,`xs`],yne=e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`,xxxl:`{min-width: ${e.screenXXXL}px}`});function TA(){let[,e]=Jp();return G(()=>{let t=yne(e.value),n=new Map,r=-1,i={};return{matchHandlers:{},dispatch(e){return i=e,n.forEach(e=>e(i)),n.size>=1},subscribe(e){return n.size||this.register(),r+=1,n.set(r,e),e(i),r},unsubscribe(e){n.delete(e),n.size||this.unregister()},unregister(){Object.keys(t).forEach(e=>{let n=t[e],r=this.matchHandlers[n];r?.mql.removeListener(r?.listener)}),n.clear()},register(){Object.keys(t).forEach(e=>{let n=t[e],r=t=>{let{matches:n}=t;this.dispatch(g(g({},i),{[e]:n}))},a=window.matchMedia(n);a.addListener(r),this.matchHandlers[n]={mql:a,listener:r},r(a)})},responsiveMap:t}})}function EA(){let e=V({}),t=null,n=TA();return $r(()=>{t=n.value.subscribe(t=>{e.value=t})}),ri(()=>{n.value.unsubscribe(t)}),e}function DA(e){let t=V();return ar(()=>{t.value=e()},{flush:`sync`}),t}var bne=e=>{let{antCls:t,componentCls:n,iconCls:r,avatarBg:i,avatarColor:a,containerSize:o,containerSizeLG:s,containerSizeSM:c,textFontSize:l,textFontSizeLG:u,textFontSizeSM:d,borderRadius:f,borderRadiusLG:p,borderRadiusSM:m,lineWidth:h,lineType:_}=e,v=(e,t,i)=>({width:e,height:e,lineHeight:`${e-h*2}px`,borderRadius:`50%`,[`&${n}-square`]:{borderRadius:i},[`${n}-string`]:{position:`absolute`,left:{_skip_check_:!0,value:`50%`},transformOrigin:`0 center`},[`&${n}-icon`]:{fontSize:t,[`> ${r}`]:{margin:0}}});return{[n]:g(g(g(g({},Op(e)),{position:`relative`,display:`inline-block`,overflow:`hidden`,color:a,whiteSpace:`nowrap`,textAlign:`center`,verticalAlign:`middle`,background:i,border:`${h}px ${_} transparent`,"&-image":{background:`transparent`},[`${t}-image-img`]:{display:`block`}}),v(o,l,f)),{"&-lg":g({},v(s,u,p)),"&-sm":g({},v(c,d,m)),"> img":{display:`block`,width:`100%`,height:`100%`,objectFit:`cover`}})}},xne=e=>{let{componentCls:t,groupBorderColor:n,groupOverlapping:r,groupSpace:i}=e;return{[`${t}-group`]:{display:`inline-flex`,[`${t}`]:{borderColor:n},"> *:not(:first-child)":{marginInlineStart:r}},[`${t}-group-popover`]:{[`${t} + ${t}`]:{marginInlineStart:i}}}},OA=Fp(`Avatar`,e=>{let{colorTextLightSolid:t,colorTextPlaceholder:n}=e,r=Rp(e,{avatarBg:n,avatarColor:t});return[bne(r),xne(r)]},e=>{let{controlHeight:t,controlHeightLG:n,controlHeightSM:r,fontSize:i,fontSizeLG:a,fontSizeXL:o,fontSizeHeading3:s,marginXS:c,marginXXS:l,colorBorderBg:u}=e;return{containerSize:t,containerSizeLG:n,containerSizeSM:r,textFontSize:Math.round((a+o)/2),textFontSizeLG:s,textFontSizeSM:i,groupSpace:l,groupOverlapping:-c,groupBorderColor:u}}),kA=Symbol(`AvatarContextKey`),Sne=()=>tr(kA,{}),Cne=e=>er(kA,e),AA=U({compatConfig:{MODE:3},name:`AAvatar`,inheritAttrs:!1,props:{prefixCls:String,shape:{type:String,default:`circle`},size:{type:[Number,String,Object],default:()=>`default`},src:String,srcset:String,icon:Q.any,alt:String,gap:Number,draggable:{type:Boolean,default:void 0},crossOrigin:String,loadError:{type:Function}},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,i=V(!0),a=V(!1),o=V(1),s=V(null),c=V(null),{prefixCls:l}=Z(`avatar`,e),[u,d]=OA(l),f=Sne(),p=G(()=>e.size==="default"?f.size:e.size),m=EA(),_=DA(()=>{if(typeof e.size!=`object`)return;let t=wA.find(e=>m.value[e]);return e.size[t]}),v=e=>_.value?{width:`${_.value}px`,height:`${_.value}px`,lineHeight:`${_.value}px`,fontSize:`${e?_.value/2:18}px`}:{},y=()=>{if(!s.value||!c.value)return;let t=s.value.offsetWidth,n=c.value.offsetWidth;if(t!==0&&n!==0){let{gap:r=4}=e;r*2{let{loadError:t}=e;t?.()!==!1&&(i.value=!1)};return H(()=>e.src,()=>{zn(()=>{i.value=!0,o.value=1})}),H(()=>e.gap,()=>{zn(()=>{y()})}),$r(()=>{zn(()=>{y(),a.value=!0})}),()=>{let{shape:t,src:m,alt:_,srcset:x,draggable:S,crossOrigin:C}=e,w=f.shape??t,T=ol(n,e,`icon`),E=l.value,D={[`${r.class}`]:!!r.class,[E]:!0,[`${E}-lg`]:p.value===`large`,[`${E}-sm`]:p.value===`small`,[`${E}-${w}`]:!0,[`${E}-image`]:m&&i.value,[`${E}-icon`]:T,[d.value]:!0},O=typeof p.value==`number`?{width:`${p.value}px`,height:`${p.value}px`,lineHeight:`${p.value}px`,fontSize:T?`${p.value/2}px`:`18px`}:{},k=n.default?.call(n),A;if(m&&i.value)A=W(`img`,{draggable:S,src:m,srcset:x,onError:b,alt:_,crossorigin:C},null);else if(T)A=T;else if(a.value||o.value!==1){let e=`scale(${o.value}) translateX(-50%)`,t={msTransform:e,WebkitTransform:e,transform:e},n=typeof p.value==`number`?{lineHeight:`${p.value}px`}:{};A=W(sl,{onResize:y},{default:()=>[W(`span`,{class:`${E}-string`,ref:s,style:g(g({},n),t)},[k])]})}else A=W(`span`,{class:`${E}-string`,ref:s,style:{opacity:0}},[k]);return u(W(`span`,h(h({},r),{},{ref:c,class:D,style:[O,v(!!T),r.style]}),[A]))}}}),jA={adjustX:1,adjustY:1},MA=[0,0],NA={left:{points:[`cr`,`cl`],overflow:jA,offset:[-4,0],targetOffset:MA},right:{points:[`cl`,`cr`],overflow:jA,offset:[4,0],targetOffset:MA},top:{points:[`bc`,`tc`],overflow:jA,offset:[0,-4],targetOffset:MA},bottom:{points:[`tc`,`bc`],overflow:jA,offset:[0,4],targetOffset:MA},topLeft:{points:[`bl`,`tl`],overflow:jA,offset:[0,-4],targetOffset:MA},leftTop:{points:[`tr`,`tl`],overflow:jA,offset:[-4,0],targetOffset:MA},topRight:{points:[`br`,`tr`],overflow:jA,offset:[0,-4],targetOffset:MA},rightTop:{points:[`tl`,`tr`],overflow:jA,offset:[4,0],targetOffset:MA},bottomRight:{points:[`tr`,`br`],overflow:jA,offset:[0,4],targetOffset:MA},rightBottom:{points:[`bl`,`br`],overflow:jA,offset:[4,0],targetOffset:MA},bottomLeft:{points:[`tl`,`bl`],overflow:jA,offset:[0,4],targetOffset:MA},leftBottom:{points:[`br`,`bl`],overflow:jA,offset:[-4,0],targetOffset:MA}},wne=U({compatConfig:{MODE:3},name:`TooltipContent`,props:{prefixCls:String,id:String,overlayInnerStyle:Q.any},setup(e,t){let{slots:n}=t;return()=>W(`div`,{class:`${e.prefixCls}-inner`,id:e.id,role:`tooltip`,style:e.overlayInnerStyle},[n.overlay?.call(n)])}}),Tne=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{}),overlayStyle:{type:Object,default:void 0},overlayClassName:String,prefixCls:Q.string.def(`rc-tooltip`),mouseEnterDelay:Q.number.def(.1),mouseLeaveDelay:Q.number.def(.1),getPopupContainer:Function,destroyTooltipOnHide:{type:Boolean,default:!1},align:Q.object.def(()=>({})),arrowContent:Q.any.def(null),tipId:String,builtinPlacements:Q.object,overlayInnerStyle:{type:Object,default:void 0},popupVisible:{type:Boolean,default:void 0},onVisibleChange:Function,onPopupAlign:Function,arrow:{type:Boolean,default:!0}},setup(e,t){let{slots:n,attrs:r,expose:i}=t,a=V(),o=()=>{let{prefixCls:t,tipId:r,overlayInnerStyle:i}=e;return[e.arrow?W(`div`,{class:`${t}-arrow`,key:`arrow`},[ol(n,e,`arrowContent`)]):null,W(wne,{key:`content`,prefixCls:t,id:r,overlayInnerStyle:i},{overlay:n.overlay})]};i({getPopupDomNode:()=>a.value.getPopupDomNode(),triggerDOM:a,forcePopupAlign:()=>a.value?.forcePopupAlign()});let s=V(!1),c=V(!1);return ar(()=>{let{destroyTooltipOnHide:t}=e;if(typeof t==`boolean`)s.value=t;else if(t&&typeof t==`object`){let{keepParent:e}=t;s.value=e===!0,c.value=e===!1}}),()=>{let{overlayClassName:t,trigger:i,mouseEnterDelay:l,mouseLeaveDelay:u,overlayStyle:d,prefixCls:f,afterVisibleChange:p,transitionName:m,animation:h,placement:_,align:v,destroyTooltipOnHide:y,defaultVisible:b}=e,x=Tne(e,[`overlayClassName`,`trigger`,`mouseEnterDelay`,`mouseLeaveDelay`,`overlayStyle`,`prefixCls`,`afterVisibleChange`,`transitionName`,`animation`,`placement`,`align`,`destroyTooltipOnHide`,`defaultVisible`]),S=g({},x);return e.visible!==void 0&&(S.popupVisible=e.visible),W(Ob,g(g(g({popupClassName:t,prefixCls:f,action:i,builtinPlacements:NA,popupPlacement:_,popupAlign:v,afterPopupVisibleChange:p,popupTransitionName:m,popupAnimation:h,defaultPopupVisible:b,destroyPopupOnHide:s.value,autoDestroy:c.value,mouseLeaveDelay:u,popupStyle:d,mouseEnterDelay:l},S),r),{onPopupVisibleChange:e.onVisibleChange||PA,onPopupAlign:e.onPopupAlign||PA,ref:a,arrow:!!e.arrow,popup:o()}),{default:n.default})}}}),FA=(()=>({trigger:[String,Array],open:{type:Boolean,default:void 0},visible:{type:Boolean,default:void 0},placement:String,color:String,transitionName:String,overlayStyle:q(),overlayInnerStyle:q(),overlayClassName:String,openClassName:String,prefixCls:String,mouseEnterDelay:Number,mouseLeaveDelay:Number,getPopupContainer:Function,arrowPointAtCenter:{type:Boolean,default:void 0},arrow:{type:[Boolean,Object],default:!0},autoAdjustOverflow:{type:[Boolean,Object],default:void 0},destroyTooltipOnHide:{type:Boolean,default:void 0},align:q(),builtinPlacements:q(),children:Array,onVisibleChange:Function,"onUpdate:visible":Function,onOpenChange:Function,"onUpdate:open":Function})),Dne={adjustX:1,adjustY:1},IA={adjustX:0,adjustY:0},One=[0,0];function LA(e){return typeof e==`boolean`?e?Dne:IA:g(g({},IA),e)}function RA(e){let{arrowWidth:t=4,horizontalArrowShift:n=16,verticalArrowShift:r=8,autoAdjustOverflow:i,arrowPointAtCenter:a}=e,o={left:{points:[`cr`,`cl`],offset:[-4,0]},right:{points:[`cl`,`cr`],offset:[4,0]},top:{points:[`bc`,`tc`],offset:[0,-4]},bottom:{points:[`tc`,`bc`],offset:[0,4]},topLeft:{points:[`bl`,`tc`],offset:[-(n+t),-4]},leftTop:{points:[`tr`,`cl`],offset:[-4,-(r+t)]},topRight:{points:[`br`,`tc`],offset:[n+t,-4]},rightTop:{points:[`tl`,`cr`],offset:[4,-(r+t)]},bottomRight:{points:[`tr`,`bc`],offset:[n+t,4]},rightBottom:{points:[`bl`,`cr`],offset:[4,r+t]},bottomLeft:{points:[`tl`,`bc`],offset:[-(n+t),4]},leftBottom:{points:[`br`,`cl`],offset:[-4,r+t]}};return Object.keys(o).forEach(e=>{o[e]=a?g(g({},o[e]),{overflow:LA(i),targetOffset:One}):g(g({},NA[e]),{overflow:LA(i)}),o[e].ignoreShake=!0}),o}function zA(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(let t=0,n=e.length;t`${e}-inverse`),Ane=[`success`,`processing`,`error`,`default`,`warning`];function BA(e){return!(arguments.length>1&&arguments[1]!==void 0)||arguments[1]?[...kne,...df].includes(e):df.includes(e)}function jne(e){return Ane.includes(e)}function Mne(e,t){let n=BA(t),r=K({[`${e}-${t}`]:t&&n}),i={},a={};return t&&!n&&(i.background=t,a[`--antd-arrow-background-color`]=t),{className:r,overlayStyle:i,arrowStyle:a}}function VA(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``;return e.map(e=>`${t}${e}`).join(`,`)}function HA(e){let{sizePopupArrow:t,contentRadius:n,borderRadiusOuter:r,limitVerticalRadius:i}=e,a=t/2-Math.ceil(r*(Math.sqrt(2)-1)),o=(n>12?n+2:12)-a;return{dropdownArrowOffset:o,dropdownArrowOffsetVertical:i?8-a:o}}function UA(e,t){let{componentCls:n,sizePopupArrow:r,marginXXS:i,borderRadiusXS:a,borderRadiusOuter:o,boxShadowPopoverArrow:s}=e,{colorBg:c,showArrowCls:l,contentRadius:u=e.borderRadiusLG,limitVerticalRadius:d}=t,{dropdownArrowOffsetVertical:f,dropdownArrowOffset:p}=HA({sizePopupArrow:r,contentRadius:u,borderRadiusOuter:o,limitVerticalRadius:d}),m=r/2+i;return{[n]:{[`${n}-arrow`]:[g(g({position:`absolute`,zIndex:1,display:`block`},Tp(r,a,o,c,s)),{"&:before":{background:c}})],[[`&-placement-top ${n}-arrow`,`&-placement-topLeft ${n}-arrow`,`&-placement-topRight ${n}-arrow`].join(`,`)]:{bottom:0,transform:`translateY(100%) rotate(180deg)`},[`&-placement-top ${n}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(100%) rotate(180deg)`},[`&-placement-topLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:p}},[`&-placement-topRight ${n}-arrow`]:{right:{_skip_check_:!0,value:p}},[[`&-placement-bottom ${n}-arrow`,`&-placement-bottomLeft ${n}-arrow`,`&-placement-bottomRight ${n}-arrow`].join(`,`)]:{top:0,transform:`translateY(-100%)`},[`&-placement-bottom ${n}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(-100%)`},[`&-placement-bottomLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:p}},[`&-placement-bottomRight ${n}-arrow`]:{right:{_skip_check_:!0,value:p}},[[`&-placement-left ${n}-arrow`,`&-placement-leftTop ${n}-arrow`,`&-placement-leftBottom ${n}-arrow`].join(`,`)]:{right:{_skip_check_:!0,value:0},transform:`translateX(100%) rotate(90deg)`},[`&-placement-left ${n}-arrow`]:{top:{_skip_check_:!0,value:`50%`},transform:`translateY(-50%) translateX(100%) rotate(90deg)`},[`&-placement-leftTop ${n}-arrow`]:{top:f},[`&-placement-leftBottom ${n}-arrow`]:{bottom:f},[[`&-placement-right ${n}-arrow`,`&-placement-rightTop ${n}-arrow`,`&-placement-rightBottom ${n}-arrow`].join(`,`)]:{left:{_skip_check_:!0,value:0},transform:`translateX(-100%) rotate(-90deg)`},[`&-placement-right ${n}-arrow`]:{top:{_skip_check_:!0,value:`50%`},transform:`translateY(-50%) translateX(-100%) rotate(-90deg)`},[`&-placement-rightTop ${n}-arrow`]:{top:f},[`&-placement-rightBottom ${n}-arrow`]:{bottom:f},[VA([`&-placement-topLeft`,`&-placement-top`,`&-placement-topRight`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingBottom:m},[VA([`&-placement-bottomLeft`,`&-placement-bottom`,`&-placement-bottomRight`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingTop:m},[VA([`&-placement-leftTop`,`&-placement-left`,`&-placement-leftBottom`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingRight:{_skip_check_:!0,value:m}},[VA([`&-placement-rightTop`,`&-placement-right`,`&-placement-rightBottom`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingLeft:{_skip_check_:!0,value:m}}}}}var Nne=e=>{let{componentCls:t,tooltipMaxWidth:n,tooltipColor:r,tooltipBg:i,tooltipBorderRadius:a,zIndexPopup:o,controlHeight:s,boxShadowSecondary:c,paddingSM:l,paddingXS:u,tooltipRadiusOuter:d}=e;return[{[t]:g(g(g(g({},Op(e)),{position:`absolute`,zIndex:o,display:`block`,"&":[{width:`max-content`},{width:`intrinsic`}],maxWidth:n,visibility:`visible`,"&-hidden":{display:`none`},"--antd-arrow-background-color":i,[`${t}-inner`]:{minWidth:s,minHeight:s,padding:`${l/2}px ${u}px`,color:r,textAlign:`start`,textDecoration:`none`,wordWrap:`break-word`,backgroundColor:i,borderRadius:a,boxShadow:c},[[`&-placement-left`,`&-placement-leftTop`,`&-placement-leftBottom`,`&-placement-right`,`&-placement-rightTop`,`&-placement-rightBottom`].join(`,`)]:{[`${t}-inner`]:{borderRadius:Math.min(a,8)}},[`${t}-content`]:{position:`relative`}}),Ep(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t}-${e}`]:{[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{"--antd-arrow-background-color":r}}}})),{"&-rtl":{direction:`rtl`}})},UA(Rp(e,{borderRadiusOuter:d}),{colorBg:`var(--antd-arrow-background-color)`,showArrowCls:``,contentRadius:a,limitVerticalRadius:!0}),{[`${t}-pure`]:{position:`relative`,maxWidth:`none`}}]},Pne=((e,t)=>Fp(`Tooltip`,e=>{if(t?.value===!1)return[];let{borderRadius:n,colorTextLightSolid:r,colorBgDefault:i,borderRadiusOuter:a}=e;return[Nne(Rp(e,{tooltipMaxWidth:250,tooltipColor:r,tooltipBorderRadius:n,tooltipBg:i,tooltipRadiusOuter:a>4?4:a})),_k(e,`zoom-big-fast`)]},e=>{let{zIndexPopupBase:t,colorBgSpotlight:n}=e;return{zIndexPopup:t+70,colorBgDefault:n}})(e)),Fne=(e,t)=>{let n={},r=g({},e);return t.forEach(t=>{e&&t in e&&(n[t]=e[t],delete r[t])}),{picked:n,omitted:r}},WA=()=>g(g({},FA()),{title:Q.any}),GA=()=>({trigger:`hover`,align:{},placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0}),KA=_l(U({compatConfig:{MODE:3},name:`ATooltip`,inheritAttrs:!1,props:Bc(WA(),{trigger:`hover`,align:{},placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0}),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i,expose:a}=t,{prefixCls:o,getPopupContainer:s,direction:c,rootPrefixCls:l}=Z(`tooltip`,e),u=G(()=>e.open??e.visible),d=B(zA([e.open,e.visible])),f=B(),p;H(u,e=>{pl.cancel(p),p=pl(()=>{d.value=!!e})});let m=()=>{let t=e.title??n.title;return!t&&t!==0},h=e=>{let t=m();u.value===void 0&&(d.value=!t&&e),t||(r(`update:visible`,e),r(`visibleChange`,e),r(`update:open`,e),r(`openChange`,e))};a({getPopupDomNode:()=>f.value.getPopupDomNode(),open:d,forcePopupAlign:()=>f.value?.forcePopupAlign()});let _=G(()=>{let{builtinPlacements:t,autoAdjustOverflow:n,arrow:r,arrowPointAtCenter:i}=e,a=i;return typeof r==`object`&&(a=r.pointAtCenter??i),t||RA({arrowPointAtCenter:a,autoAdjustOverflow:n})}),v=e=>e||e===``,y=e=>{let t=e.type;if(typeof t==`object`&&e.props&&((t.__ANT_BUTTON===!0||t===`button`)&&v(e.props.disabled)||t.__ANT_SWITCH===!0&&(v(e.props.disabled)||v(e.props.loading))||t.__ANT_RADIO===!0&&v(e.props.disabled))){let{picked:t,omitted:n}=Fne(Qc(e),[`position`,`left`,`right`,`top`,`bottom`,`float`,`display`,`zIndex`]),r=g(g({display:`inline-block`},t),{cursor:`not-allowed`,lineHeight:1,width:e.props&&e.props.block?`100%`:void 0}),i=s_(e,{style:g(g({},n),{pointerEvents:`none`})},!0);return W(`span`,{style:r,class:`${o.value}-disabled-compatible-wrapper`},[i])}return e},b=()=>e.title??n.title?.call(n),x=(e,t)=>{let n=_.value,r=Object.keys(n).find(e=>n[e].points[0]===t.points?.[0]&&n[e].points[1]===t.points?.[1]);if(r){let n=e.getBoundingClientRect(),i={top:`50%`,left:`50%`};r.indexOf(`top`)>=0||r.indexOf(`Bottom`)>=0?i.top=`${n.height-t.offset[1]}px`:(r.indexOf(`Top`)>=0||r.indexOf(`bottom`)>=0)&&(i.top=`${-t.offset[1]}px`),r.indexOf(`left`)>=0||r.indexOf(`Right`)>=0?i.left=`${n.width-t.offset[0]}px`:(r.indexOf(`right`)>=0||r.indexOf(`Left`)>=0)&&(i.left=`${-t.offset[0]}px`),e.style.transformOrigin=`${i.left} ${i.top}`}},S=G(()=>Mne(o.value,e.color)),C=G(()=>i[`data-popover-inject`]),[w,T]=Pne(o,G(()=>!C.value));return()=>{let{openClassName:t,overlayClassName:r,overlayStyle:a,overlayInnerStyle:p}=e,v=rl(n.default?.call(n))??null;v=v.length===1?v[0]:v;let C=d.value;if(u.value===void 0&&m()&&(C=!1),!v)return null;let E=y(al(v)&&!$c(v)?v:W(`span`,null,[v])),D=K({[t||`${o.value}-open`]:!0,[E.props&&E.props.class]:E.props&&E.props.class}),O=K(r,{[`${o.value}-rtl`]:c.value===`rtl`},S.value.className,T.value),k=g(g({},S.value.overlayStyle),p),A=S.value.arrowStyle,j=g(g(g({},i),e),{prefixCls:o.value,arrow:!!e.arrow,getPopupContainer:s?.value,builtinPlacements:_.value,visible:C,ref:f,overlayClassName:O,overlayStyle:g(g({},A),a),overlayInnerStyle:k,onVisibleChange:h,onPopupAlign:x,transitionName:ib(l.value,`zoom-big-fast`,e.transitionName)});return w(W(Ene,j,{default:()=>[d.value?s_(E,{class:D}):E],arrowContent:()=>W(`span`,{class:`${o.value}-arrow-content`},null),overlay:b}))}}})),Ine=e=>{let{componentCls:t,popoverBg:n,popoverColor:r,width:i,fontWeightStrong:a,popoverPadding:o,boxShadowSecondary:s,colorTextHeading:c,borderRadiusLG:l,zIndexPopup:u,marginXS:d,colorBgElevated:f}=e;return[{[t]:g(g({},Op(e)),{position:`absolute`,top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:`normal`,whiteSpace:`normal`,textAlign:`start`,cursor:`auto`,userSelect:`text`,"--antd-arrow-background-color":f,"&-rtl":{direction:`rtl`},"&-hidden":{display:`none`},[`${t}-content`]:{position:`relative`},[`${t}-inner`]:{backgroundColor:n,backgroundClip:`padding-box`,borderRadius:l,boxShadow:s,padding:o},[`${t}-title`]:{minWidth:i,marginBottom:d,color:c,fontWeight:a},[`${t}-inner-content`]:{color:r}})},UA(e,{colorBg:`var(--antd-arrow-background-color)`}),{[`${t}-pure`]:{position:`relative`,maxWidth:`none`,[`${t}-content`]:{display:`inline-block`}}}]},Lne=e=>{let{componentCls:t}=e;return{[t]:df.map(n=>{let r=e[`${n}-6`];return{[`&${t}-${n}`]:{"--antd-arrow-background-color":r,[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{background:`transparent`}}}})}},Rne=e=>{let{componentCls:t,lineWidth:n,lineType:r,colorSplit:i,paddingSM:a,controlHeight:o,fontSize:s,lineHeight:c,padding:l}=e,u=o-Math.round(s*c),d=u/2,f=u/2-n,p=l;return{[t]:{[`${t}-inner`]:{padding:0},[`${t}-title`]:{margin:0,padding:`${d}px ${p}px ${f}px`,borderBottom:`${n}px ${r} ${i}`},[`${t}-inner-content`]:{padding:`${a}px ${p}px`}}}},zne=Fp(`Popover`,e=>{let{colorBgElevated:t,colorText:n,wireframe:r}=e,i=Rp(e,{popoverBg:t,popoverColor:n,popoverPadding:12});return[Ine(i),Lne(i),r&&Rne(i),_k(i,`zoom-big`)]},e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+30,width:177}}),qA=_l(U({compatConfig:{MODE:3},name:`APopover`,inheritAttrs:!1,props:Bc(g(g({},FA()),{content:yl(),title:yl()}),g(g({},GA()),{trigger:`hover`,placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1})),setup(e,t){let{expose:n,slots:r,attrs:i}=t,a=B();Ru(e.visible===void 0,`popover`,"`visible` will be removed in next major version, please use `open` instead."),n({getPopupDomNode:()=>{var e;return((e=a.value)?.getPopupDomNode)?.call(e)}});let{prefixCls:o,configProvider:s}=Z(`popover`,e),[c,l]=zne(o),u=G(()=>s.getPrefixCls()),d=()=>{let{title:t=rl(r.title?.call(r)),content:n=rl(r.content?.call(r))}=e,i=!!(Array.isArray(t)?t.length:t),a=!!(Array.isArray(n)?n.length:t);return!i&&!a?null:W(Ma,null,[i&&W(`div`,{class:`${o.value}-title`},[t]),W(`div`,{class:`${o.value}-inner-content`},[n])])};return()=>{let t=K(e.overlayClassName,l.value);return c(W(KA,h(h(h({},sm(e,[`title`,`content`])),i),{},{prefixCls:o.value,ref:a,overlayClassName:t,transitionName:ib(u.value,`zoom-big`,e.transitionName),"data-popover-inject":!0}),{title:d,default:r.default}))}}})),JA=U({compatConfig:{MODE:3},name:`AAvatarGroup`,inheritAttrs:!1,props:{prefixCls:String,maxCount:Number,maxStyle:{type:Object,default:void 0},maxPopoverPlacement:{type:String,default:`top`},maxPopoverTrigger:String,size:{type:[Number,String,Object],default:`default`},shape:{type:String,default:`circle`}},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`avatar`,e),o=G(()=>`${i.value}-group`),[s,c]=OA(i);return ar(()=>{Cne({size:e.size,shape:e.shape})}),()=>{let{maxPopoverPlacement:t=`top`,maxCount:i,maxStyle:l,maxPopoverTrigger:u=`hover`,shape:d}=e,f={[o.value]:!0,[`${o.value}-rtl`]:a.value===`rtl`,[`${r.class}`]:!!r.class,[c.value]:!0},p=Gc(ol(n,e)).map((e,t)=>s_(e,{key:`avatar-key-${t}`})),m=p.length;if(i&&i[W(AA,{style:l,shape:d},{default:()=>[`+${m-i}`]})]})),s(W(`div`,h(h({},r),{},{class:f,style:r.style}),[e]))}return s(W(`div`,h(h({},r),{},{class:f,style:r.style}),[p]))}}});AA.Group=JA,AA.install=function(e){return e.component(AA.name,AA),e.component(JA.name,JA),e};var YA=AA;function XA(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),W(`p`,{style:a,class:K(`${t}-only-unit`,{current:r})},[n])}function Bne(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var Vne=U({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=G(()=>Number(e.value)),n=G(()=>Math.abs(e.count)),r=Yt({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=B();return H(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),ri(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[XA(g(g({},e),{current:!0}))],o={transition:`none`};else{a=[];let t=s+10,i=[];for(let e=s;e<=t;e+=1)i.push(e);let c=i.findIndex(e=>e%10===r.prevValue);a=i.map((t,n)=>{let r=t%10;return XA(g(g({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCounti()},[a])}}}),Hne=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let t=g(g({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=Hne(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),p=g(g({},f),{style:d,"data-show":e.show,class:K(i.value,u),title:s}),m=o;if(o&&Number(o)%1==0){let e=String(o).split(``);m=e.map((t,n)=>W(Vne,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(p.style=g(g({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let h=rl(r.default?.call(r));return h&&h.length?s_(h,{class:K(`${i.value}-custom-component`)},!1):W(l,p,{default:()=>[m]})}}}),Wne=new ef(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Gne=new ef(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),Kne=new ef(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),qne=new ef(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Jne=new ef(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Yne=new ef(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Xne=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=Ep(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=Ep(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:g(g(g(g({},Op(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:Yne,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:Wne,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Gne,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:Kne,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:qne,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Jne,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:g(g(g(g({},Op(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},ZA=Fp(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover;return[Xne(Rp(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:t,badgeDotSize:r/2,badgeFontSizeSm:r,badgeStatusSize:r/2,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),Zne=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);iBA(e.color,!1)),l=G(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=Zne(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(W(`div`,h({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),W(`div`,{class:[l.value,t,s.value],style:g(g({},d),a)},[W(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),W(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),$A=e=>!isNaN(parseFloat(e))&&isFinite(e),ej=U({compatConfig:{MODE:3},name:`ABadge`,Ribbon:QA,inheritAttrs:!1,props:{count:Q.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:Q.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`badge`,e),[o,s]=ZA(i),c=G(()=>e.count>e.overflowCount?`${e.overflowCount}+`:e.count),l=G(()=>c.value===`0`||c.value===0),u=G(()=>e.count===null||l.value&&!e.showZero),d=G(()=>(e.status!==null&&e.status!==void 0||e.color!==null&&e.color!==void 0)&&u.value),f=G(()=>e.dot&&!l.value),p=G(()=>f.value?``:c.value),m=G(()=>(p.value===null||p.value===void 0||p.value===``||l.value&&!e.showZero)&&!f.value),_=B(e.count),v=B(p.value),y=B(f.value);H([()=>e.count,p,f],()=>{m.value||(_.value=e.count,v.value=p.value,y.value=f.value)},{immediate:!0});let b=G(()=>BA(e.color,!1)),x=G(()=>({[`${i.value}-status-dot`]:d.value,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:b.value})),S=G(()=>e.color&&!b.value?{background:e.color,color:e.color}:{}),C=G(()=>({[`${i.value}-dot`]:y.value,[`${i.value}-count`]:!y.value,[`${i.value}-count-sm`]:e.size===`small`,[`${i.value}-multiple-words`]:!y.value&&v.value&&v.value.toString().length>1,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:b.value}));return()=>{let{offset:t,title:c,color:l}=e,u=r.style,f=ol(n,e,`text`),p=i.value,y=_.value,w=Gc(n.default?.call(n));w=w.length?w:null;let T=!(m.value&&!n.count),E=(()=>{if(!t)return g({},u);let e={marginTop:$A(t[1])?`${t[1]}px`:t[1]};return a.value===`rtl`?e.left=`${parseInt(t[0],10)}px`:e.right=`${-parseInt(t[0],10)}px`,g(g({},e),u)})(),D=c??(typeof y==`string`||typeof y==`number`?y:void 0),O=T||!f?null:W(`span`,{class:`${p}-status-text`},[f]),k=typeof y==`object`||y===void 0&&n.count?s_(y??n.count?.call(n),{style:E},!1):null,A=K(p,{[`${p}-status`]:d.value,[`${p}-not-a-wrapper`]:!w,[`${p}-rtl`]:a.value===`rtl`},r.class,s.value);if(!w&&d.value){let e=E.color;return o(W(`span`,h(h({},r),{},{class:A,style:E}),[W(`span`,{class:x.value,style:S.value},null),W(`span`,{style:{color:e},class:`${p}-status-text`},[f])]))}let j=nb(w?`${p}-zoom`:``,{appear:!1}),M=g(g({},E),e.numberStyle);return l&&!b.value&&(M||={},M.background=l),o(W(`span`,h(h({},r),{},{class:A}),[w,W(Uo,j,{default:()=>[Qn(W(Une,{prefixCls:e.scrollNumberPrefixCls,show:T,class:C.value,count:v.value,title:D,style:M,key:`scrollNumber`},{default:()=>[k]}),[[ss,T]])]}),O]))}}});ej.install=function(e){return e.component(ej.name,ej),e.component(QA.name,QA),e};var tj=ej,nj={adjustX:1,adjustY:1},rj=[0,0],Qne={topLeft:{points:[`bl`,`tl`],overflow:nj,offset:[0,-4],targetOffset:rj},topCenter:{points:[`bc`,`tc`],overflow:nj,offset:[0,-4],targetOffset:rj},topRight:{points:[`br`,`tr`],overflow:nj,offset:[0,-4],targetOffset:rj},bottomLeft:{points:[`tl`,`bl`],overflow:nj,offset:[0,4],targetOffset:rj},bottomCenter:{points:[`tc`,`bc`],overflow:nj,offset:[0,4],targetOffset:rj},bottomRight:{points:[`tr`,`br`],overflow:nj,offset:[0,4],targetOffset:rj}},$ne=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.visible,e=>{e!==void 0&&(a.value=e)});let o=B();i({triggerRef:o});let s=t=>{e.visible===void 0&&(a.value=!1),r(`overlayClick`,t)},c=t=>{e.visible===void 0&&(a.value=t),r(`visibleChange`,t)},l=()=>{let t=n.overlay?.call(n),r={prefixCls:`${e.prefixCls}-menu`,onClick:s};return W(Ma,{key:Wc},[e.arrow&&W(`div`,{class:`${e.prefixCls}-arrow`},null),s_(t,r,!1)])},u=G(()=>{let{minOverlayWidthMatchTrigger:t=!e.alignPoint}=e;return t}),d=()=>{let t=n.default?.call(n);return a.value&&t?s_(t[0],{class:e.openClassName||`${e.prefixCls}-open`},!1):t},f=G(()=>!e.hideAction&&e.trigger.indexOf(`contextmenu`)!==-1?[`click`]:e.hideAction);return()=>{let{prefixCls:t,arrow:n,showAction:r,overlayStyle:i,trigger:s,placement:p,align:m,getPopupContainer:g,transitionName:_,animation:v,overlayClassName:y}=e;return W(Ob,h(h({},$ne(e,[`prefixCls`,`arrow`,`showAction`,`overlayStyle`,`trigger`,`placement`,`align`,`getPopupContainer`,`transitionName`,`animation`,`overlayClassName`])),{},{prefixCls:t,ref:o,popupClassName:K(y,{[`${t}-show-arrow`]:n}),popupStyle:i,builtinPlacements:Qne,action:s,showAction:r,hideAction:f.value||[],popupPlacement:p,popupAlign:m,popupTransitionName:_,popupAnimation:v,popupVisible:a.value,stretch:u.value?`minWidth`:``,onPopupVisibleChange:c,getPopupContainer:g}),{popup:l,default:d})}}}),ere=e=>{let{componentCls:t,colorPrimary:n}=e;return{[t]:{position:`absolute`,background:`transparent`,pointerEvents:`none`,boxSizing:`border-box`,color:`var(--wave-color, ${n})`,boxShadow:`0 0 0 0 currentcolor`,opacity:.2,"&.wave-motion-appear":{transition:[`box-shadow 0.4s ${e.motionEaseOutCirc}`,`opacity 2s ${e.motionEaseOutCirc}`].join(`,`),"&-active":{boxShadow:`0 0 0 6px currentcolor`,opacity:0}}}}},tre=Fp(`Wave`,e=>[ere(e)]);function nre(e){let t=(e||``).match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return t&&t[1]&&t[2]&&t[3]?t[1]!==t[2]||t[2]!==t[3]:!0}function aj(e){return e&&e!==`#fff`&&e!==`#ffffff`&&e!==`rgb(255, 255, 255)`&&e!==`rgba(255, 255, 255, 1)`&&nre(e)&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&e!==`transparent`}function rre(e){let{borderTopColor:t,borderColor:n,backgroundColor:r}=getComputedStyle(e);return aj(t)?t:aj(n)?n:aj(r)?r:null}function oj(e){return Number.isNaN(e)?0:e}var ire=U({props:{target:q(),className:String},setup(e){let t=V(null),[n,r]=_S(null),[i,a]=_S([]),[o,s]=_S(0),[c,l]=_S(0),[u,d]=_S(0),[f,p]=_S(0),[m,h]=_S(!1);function g(){let{target:t}=e,n=getComputedStyle(t);r(rre(t));let i=n.position===`static`,{borderLeftWidth:o,borderTopWidth:c}=n;s(i?t.offsetLeft:oj(-parseFloat(o))),l(i?t.offsetTop:oj(-parseFloat(c))),d(t.offsetWidth),p(t.offsetHeight);let{borderTopLeftRadius:u,borderTopRightRadius:f,borderBottomLeftRadius:m,borderBottomRightRadius:h}=n;a([u,f,h,m].map(e=>oj(parseFloat(e))))}let _,v,y,b=()=>{clearTimeout(y),pl.cancel(v),_?.disconnect()},x=()=>{let e=t.value?.parentElement;e&&(nc(null,e),e.parentElement&&e.parentElement.removeChild(e))};$r(()=>{b(),y=setTimeout(()=>{x()},5e3);let{target:t}=e;t&&(v=pl(()=>{g(),h(!0)}),typeof ResizeObserver<`u`&&(_=new ResizeObserver(g),_.observe(t)))}),ni(()=>{b()});let S=e=>{e.propertyName===`opacity`&&x()};return()=>{if(!m.value)return null;let r={left:`${o.value}px`,top:`${c.value}px`,width:`${u.value}px`,height:`${f.value}px`,borderRadius:i.value.map(e=>`${e}px`).join(` `)};return n&&(r[`--wave-color`]=n.value),W(Uo,{appear:!0,name:`wave-motion`,appearFromClass:`wave-motion-appear`,appearActiveClass:`wave-motion-appear`,appearToClass:`wave-motion-appear wave-motion-appear-active`},{default:()=>[W(`div`,{ref:t,class:e.className,style:r,onTransitionend:S},null)]})}}});function are(e,t){let n=document.createElement(`div`);return n.style.position=`absolute`,n.style.left=`0px`,n.style.top=`0px`,e?.insertBefore(n,e?.firstChild),nc(W(ire,{target:e,className:t},null),n),()=>{nc(null,n),n.parentElement&&n.parentElement.removeChild(n)}}function ore(e,t){let n=fo(),r;function i(){let i=qc(n);r?.(),!t?.value?.disabled&&i&&(r=are(i,e.value))}return ni(()=>{r?.()}),i}var sj=U({compatConfig:{MODE:3},name:`Wave`,props:{disabled:Boolean},setup(e,t){let{slots:n}=t,r=fo(),{prefixCls:i,wave:a}=Z(`wave`,e),[,o]=tre(i),s=ore(G(()=>K(i.value,o.value)),a),c,l=()=>{qc(r).removeEventListener(`click`,c,!0)};return $r(()=>{H(()=>e.disabled,()=>{l(),zn(()=>{let t=qc(r);t?.removeEventListener(`click`,c,!0),t&&t.nodeType===1&&!e.disabled&&(c=e=>{e.target.tagName===`INPUT`||!d_(e.target)||!t.getAttribute||t.getAttribute(`disabled`)||t.disabled||t.className.includes(`disabled`)||t.className.includes(`-leave`)||s()},t.addEventListener(`click`,c,!0))})},{immediate:!0,flush:`post`})}),ni(()=>{l()}),()=>n.default?.call(n)[0]}});function cj(e){return e===`danger`?{danger:!0}:{type:e}}var lj=()=>({prefixCls:String,type:String,htmlType:{type:String,default:`button`},shape:{type:String},size:{type:String},loading:{type:[Boolean,Object],default:()=>!1},disabled:{type:Boolean,default:void 0},ghost:{type:Boolean,default:void 0},block:{type:Boolean,default:void 0},danger:{type:Boolean,default:void 0},icon:Q.any,href:String,target:String,title:String,onClick:vl(),onMousedown:vl()}),uj=e=>{e&&(e.style.width=`0px`,e.style.opacity=`0`,e.style.transform=`scale(0)`)},dj=e=>{zn(()=>{e&&(e.style.width=`${e.scrollWidth}px`,e.style.opacity=`1`,e.style.transform=`scale(1)`)})},fj=e=>{e&&e.style&&(e.style.width=null,e.style.opacity=null,e.style.transform=null)},sre=U({compatConfig:{MODE:3},name:`LoadingIcon`,props:{prefixCls:String,loading:[Boolean,Object],existIcon:Boolean},setup(e){return()=>{let{existIcon:t,prefixCls:n,loading:r}=e;if(t)return W(`span`,{class:`${n}-loading-icon`},[W(FC,null,null)]);let i=!!r;return W(Uo,{name:`${n}-loading-icon-motion`,onBeforeEnter:uj,onEnter:dj,onAfterEnter:fj,onBeforeLeave:dj,onLeave:e=>{setTimeout(()=>{uj(e)})},onAfterLeave:fj},{default:()=>[i?W(`span`,{class:`${n}-loading-icon`},[W(FC,null,null)]):null]})}}}),pj=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}}),cre=e=>{let{componentCls:t,fontSize:n,lineWidth:r,colorPrimaryHover:i,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:`relative`,display:`inline-flex`,[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:-r,[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:`relative`,zIndex:1,"&:hover,\n &:focus,\n &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:n}},pj(`${t}-primary`,i),pj(`${t}-danger`,a)]}};function lre(e,t){return{[`&-item:not(${t}-last-item)`]:{marginBottom:-e.lineWidth},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function ure(e,t){return{[`&-item:not(${t}-first-item):not(${t}-last-item)`]:{borderRadius:0},[`&-item${t}-first-item:not(${t}-last-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${t}-last-item:not(${t}-first-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function dre(e){let t=`${e.componentCls}-compact-vertical`;return{[t]:g(g({},lre(e,t)),ure(e.componentCls,t))}}var fre=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{outline:`none`,position:`relative`,display:`inline-block`,fontWeight:400,whiteSpace:`nowrap`,textAlign:`center`,backgroundImage:`none`,backgroundColor:`transparent`,border:`${e.lineWidth}px ${e.lineType} transparent`,cursor:`pointer`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:`none`,touchAction:`manipulation`,lineHeight:e.lineHeight,color:e.colorText,"> span":{display:`inline-block`},[`> ${n} + span, > span + ${n}`]:{marginInlineStart:e.marginXS},"> a":{color:`currentColor`},"&:not(:disabled)":g({},Pp(e)),[`&-icon-only${t}-compact-item`]:{flex:`none`},[`&-compact-item${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-item${t}-primary:not([disabled])`]:{position:`relative`,"&:before":{position:`absolute`,top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:`inline-block`,width:e.lineWidth,height:`calc(100% + ${e.lineWidth*2}px)`,backgroundColor:e.colorPrimaryHover,content:`""`}}},"&-compact-vertical-item":{[`&${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-vertical-item${t}-primary:not([disabled])`]:{position:`relative`,"&:before":{position:`absolute`,top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:`inline-block`,width:`calc(100% + ${e.lineWidth*2}px)`,height:e.lineWidth,backgroundColor:e.colorPrimaryHover,content:`""`}}}}}}},mj=(e,t)=>({"&:not(:disabled)":{"&:hover":e,"&:active":t}}),pre=e=>({minWidth:e.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:`50%`}),mre=e=>({borderRadius:e.controlHeight,paddingInlineStart:e.controlHeight/2,paddingInlineEnd:e.controlHeight/2}),hj=e=>({cursor:`not-allowed`,borderColor:e.colorBorder,color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,boxShadow:`none`}),gj=(e,t,n,r,i,a,o)=>({[`&${e}-background-ghost`]:g(g({color:t||void 0,backgroundColor:`transparent`,borderColor:n||void 0,boxShadow:`none`},mj(g({backgroundColor:`transparent`},a),g({backgroundColor:`transparent`},o))),{"&:disabled":{cursor:`not-allowed`,color:r||void 0,borderColor:i||void 0}})}),_j=e=>({"&:disabled":g({},hj(e))}),vj=e=>g({},_j(e)),yj=e=>({"&:disabled":{cursor:`not-allowed`,color:e.colorTextDisabled}}),bj=e=>g(g(g(g(g({},vj(e)),{backgroundColor:e.colorBgContainer,borderColor:e.colorBorder,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`}),mj({color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),gj(e.componentCls,e.colorBgContainer,e.colorBgContainer,e.colorTextDisabled,e.colorBorder)),{[`&${e.componentCls}-dangerous`]:g(g(g({color:e.colorError,borderColor:e.colorError},mj({color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),gj(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder)),_j(e))}),hre=e=>g(g(g(g(g({},vj(e)),{color:e.colorTextLightSolid,backgroundColor:e.colorPrimary,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`}),mj({color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryHover},{color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryActive})),gj(e.componentCls,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),{[`&${e.componentCls}-dangerous`]:g(g(g({backgroundColor:e.colorError,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`},mj({backgroundColor:e.colorErrorHover},{backgroundColor:e.colorErrorActive})),gj(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),_j(e))}),gre=e=>g(g({},bj(e)),{borderStyle:`dashed`}),_re=e=>g(g(g({color:e.colorLink},mj({color:e.colorLinkHover},{color:e.colorLinkActive})),yj(e)),{[`&${e.componentCls}-dangerous`]:g(g({color:e.colorError},mj({color:e.colorErrorHover},{color:e.colorErrorActive})),yj(e))}),vre=e=>g(g(g({},mj({color:e.colorText,backgroundColor:e.colorBgTextHover},{color:e.colorText,backgroundColor:e.colorBgTextActive})),yj(e)),{[`&${e.componentCls}-dangerous`]:g(g({color:e.colorError},yj(e)),mj({color:e.colorErrorHover,backgroundColor:e.colorErrorBg},{color:e.colorErrorHover,backgroundColor:e.colorErrorBg}))}),yre=e=>g(g({},hj(e)),{[`&${e.componentCls}:hover`]:g({},hj(e))}),bre=e=>{let{componentCls:t}=e;return{[`${t}-default`]:bj(e),[`${t}-primary`]:hre(e),[`${t}-dashed`]:gre(e),[`${t}-link`]:_re(e),[`${t}-text`]:vre(e),[`${t}-disabled`]:yre(e)}},xj=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``,{componentCls:n,iconCls:r,controlHeight:i,fontSize:a,lineHeight:o,lineWidth:s,borderRadius:c,buttonPaddingHorizontal:l}=e,u=Math.max(0,(i-a*o)/2-s),d=l-s,f=`${n}-icon-only`;return[{[`${n}${t}`]:{fontSize:a,height:i,padding:`${u}px ${d}px`,borderRadius:c,[`&${f}`]:{width:i,paddingInlineStart:0,paddingInlineEnd:0,[`&${n}-round`]:{width:`auto`},"> span":{transform:`scale(1.143)`}},[`&${n}-loading`]:{opacity:e.opacityLoading,cursor:`default`},[`${n}-loading-icon`]:{transition:`width ${e.motionDurationSlow} ${e.motionEaseInOut}, opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`&:not(${f}) ${n}-loading-icon > ${r}`]:{marginInlineEnd:e.marginXS}}},{[`${n}${n}-circle${t}`]:pre(e)},{[`${n}${n}-round${t}`]:mre(e)}]},xre=e=>xj(e),Sre=e=>xj(Rp(e,{controlHeight:e.controlHeightSM,padding:e.paddingXS,buttonPaddingHorizontal:8,borderRadius:e.borderRadiusSM}),`${e.componentCls}-sm`),Cre=e=>xj(Rp(e,{controlHeight:e.controlHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),`${e.componentCls}-lg`),wre=e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:`100%`}}}},Tre=Fp(`Button`,e=>{let{controlTmpOutline:t,paddingContentHorizontal:n}=e,r=Rp(e,{colorOutlineDefault:t,buttonPaddingHorizontal:n});return[fre(r),Sre(r),xre(r),Cre(r),wre(r),bre(r),cre(r),kk(e,{focus:!1}),dre(e)]}),Ere=()=>({prefixCls:String,size:{type:String}}),Sj=$C(),Cj=U({compatConfig:{MODE:3},name:`AButtonGroup`,props:Ere(),setup(e,t){let{slots:n}=t,{prefixCls:r,direction:i}=Z(`btn-group`,e),[,,a]=Jp();Sj.useProvide(Yt({size:G(()=>e.size)}));let o=G(()=>{let{size:t}=e,n=``;switch(t){case`large`:n=`lg`;break;case`small`:n=`sm`;break;case`middle`:case void 0:break;default:wh(!t,`Button.Group`,"Invalid prop `size`.")}return{[`${r.value}`]:!0,[`${r.value}-${n}`]:n,[`${r.value}-rtl`]:i.value===`rtl`,[a.value]:!0}});return()=>W(`div`,{class:o.value},[Gc(n.default?.call(n))])}}),wj=/^[\u4e00-\u9fa5]{2}$/,Tj=wj.test.bind(wj);function Ej(e){return e===`text`||e===`link`}var Dj=U({compatConfig:{MODE:3},name:`AButton`,inheritAttrs:!1,__ANT_BUTTON:!0,props:Bc(lj(),{type:`default`}),slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i,expose:a}=t,{prefixCls:o,autoInsertSpaceInButton:s,direction:c,size:l}=Z(`btn`,e),[u,d]=Tre(o),f=Sj.useInject(),p=Ul(),m=G(()=>e.disabled??p.value),_=V(null),v=V(void 0),y=!1,b=V(!1),x=V(!1),S=G(()=>s.value!==!1),{compactSize:C,compactItemClassnames:w}=kO(o,c),T=G(()=>typeof e.loading==`object`&&e.loading.delay?e.loading.delay||!0:!!e.loading);H(T,e=>{clearTimeout(v.value),typeof T.value==`number`?v.value=setTimeout(()=>{b.value=e},T.value):b.value=e},{immediate:!0});let E=G(()=>{let{type:t,shape:n=`default`,ghost:r,block:i,danger:a}=e,s=o.value,u={large:`lg`,small:`sm`,middle:void 0},p=C.value||f?.size||l.value,m=p&&u[p]||``;return[w.value,{[d.value]:!0,[`${s}`]:!0,[`${s}-${n}`]:n!=="default"&&n,[`${s}-${t}`]:t,[`${s}-${m}`]:m,[`${s}-loading`]:b.value,[`${s}-background-ghost`]:r&&!Ej(t),[`${s}-two-chinese-chars`]:x.value&&S.value,[`${s}-block`]:i,[`${s}-dangerous`]:!!a,[`${s}-rtl`]:c.value===`rtl`}]}),D=()=>{let e=_.value;if(!e||s.value===!1)return;let t=e.textContent;y&&Tj(t)?x.value||=!0:x.value&&=!1},O=e=>{b.value||m.value?e.preventDefault():i(`click`,e)},k=e=>{i(`mousedown`,e)},A=(e,t)=>{let n=t?` `:``;if(e.type===Na){let t=e.children.trim();return Tj(t)&&(t=t.split(``).join(n)),W(`span`,null,[t])}return e};return ar(()=>{wh(!(e.ghost&&Ej(e.type)),`Button`,"`link` or `text` button can't be a `ghost` button.")}),$r(D),ti(D),ni(()=>{v.value&&clearTimeout(v.value)}),a({focus:()=>{var e;(e=_.value)==null||e.focus()},blur:()=>{var e;(e=_.value)==null||e.blur()}}),()=>{let{icon:t=n.icon?.call(n)}=e,i=Gc(n.default?.call(n));y=i.length===1&&!t&&!Ej(e.type);let{type:a,htmlType:s,href:c,title:l,target:d}=e,f=b.value?`loading`:t,p=g(g({},r),{title:l,disabled:m.value,class:[E.value,r.class,{[`${o.value}-icon-only`]:i.length===0&&!!f}],onClick:O,onMousedown:k});m.value||delete p.disabled;let v=t&&!b.value?t:W(sre,{existIcon:!!t,prefixCls:o.value,loading:!!b.value},null),x=i.map(e=>A(e,y&&S.value));if(c!==void 0)return u(W(`a`,h(h({},p),{},{href:c,target:d,ref:_}),[v,x]));let C=W(`button`,h(h({},p),{},{ref:_,type:s}),[v,x]);if(!Ej(a)){let e=function(){return C}();C=W(sj,{ref:`wave`,disabled:!!b.value},{default:()=>[e]})}return u(C)}}});Dj.Group=Cj,Dj.install=function(e){return e.component(Dj.name,Dj),e.component(Cj.name,Cj),e};var Oj=Dj,kj=()=>({arrow:Sl([Boolean,Object]),trigger:{type:[Array,String]},menu:q(),overlay:Q.any,visible:J(),open:J(),disabled:J(),danger:J(),autofocus:J(),align:q(),getPopupContainer:Function,prefixCls:String,transitionName:String,placement:String,overlayClassName:String,overlayStyle:q(),forceRender:J(),mouseEnterDelay:Number,mouseLeaveDelay:Number,openClassName:String,minOverlayWidthMatchTrigger:J(),destroyPopupOnHide:J(),onVisibleChange:{type:Function},"onUpdate:visible":{type:Function},onOpenChange:{type:Function},"onUpdate:open":{type:Function}}),Aj=lj(),Dre=()=>g(g({},kj()),{type:Aj.type,size:String,htmlType:Aj.htmlType,href:String,disabled:J(),prefixCls:String,icon:Q.any,title:String,loading:Aj.loading,onClick:vl()}),Ore={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`ellipsis`,theme:`outlined`};function jj(e){for(var t=1;t{let{componentCls:t,antCls:n,paddingXS:r,opacityLoading:i}=e;return{[`${t}-button`]:{whiteSpace:`nowrap`,[`&${n}-btn-group > ${n}-btn`]:{[`&-loading, &-loading + ${n}-btn`]:{cursor:`default`,pointerEvents:`none`,opacity:i},[`&:last-child:not(:first-child):not(${n}-btn-icon-only)`]:{paddingInline:r}}}}},jre=e=>{let{componentCls:t,menuCls:n,colorError:r,colorTextLightSolid:i}=e,a=`${n}-item`;return{[`${t}, ${t}-menu-submenu`]:{[`${n} ${a}`]:{[`&${a}-danger:not(${a}-disabled)`]:{color:r,"&:hover":{color:i,backgroundColor:r}}}}}},Mre=e=>{let{componentCls:t,menuCls:n,zIndexPopup:r,dropdownArrowDistance:i,dropdownArrowOffset:a,sizePopupArrow:o,antCls:s,iconCls:c,motionDurationMid:l,dropdownPaddingVertical:u,fontSize:d,dropdownEdgeChildPadding:f,colorTextDisabled:p,fontSizeIcon:m,controlPaddingHorizontal:h,colorBgElevated:_,boxShadowPopoverArrow:v}=e;return[{[t]:g(g({},Op(e)),{position:`absolute`,top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:r,display:`block`,"&::before":{position:`absolute`,insetBlock:-i+o/2,zIndex:-9999,opacity:1e-4,content:`""`},[`${t}-wrap`]:{position:`relative`,[`${s}-btn > ${c}-down`]:{fontSize:m},[`${c}-down::before`]:{transition:`transform ${l}`}},[`${t}-wrap-open`]:{[`${c}-down::before`]:{transform:`rotate(180deg)`}},"\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n ":{display:`none`},[` + &-show-arrow${t}-placement-topLeft, + &-show-arrow${t}-placement-top, + &-show-arrow${t}-placement-topRight + `]:{paddingBottom:i},[` + &-show-arrow${t}-placement-bottomLeft, + &-show-arrow${t}-placement-bottom, + &-show-arrow${t}-placement-bottomRight + `]:{paddingTop:i},[`${t}-arrow`]:g({position:`absolute`,zIndex:1,display:`block`},Tp(o,e.borderRadiusXS,e.borderRadiusOuter,_,v)),[` + &-placement-top > ${t}-arrow, + &-placement-topLeft > ${t}-arrow, + &-placement-topRight > ${t}-arrow + `]:{bottom:i,transform:`translateY(100%) rotate(180deg)`},[`&-placement-top > ${t}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(100%) rotate(180deg)`},[`&-placement-topLeft > ${t}-arrow`]:{left:{_skip_check_:!0,value:a}},[`&-placement-topRight > ${t}-arrow`]:{right:{_skip_check_:!0,value:a}},[` + &-placement-bottom > ${t}-arrow, + &-placement-bottomLeft > ${t}-arrow, + &-placement-bottomRight > ${t}-arrow + `]:{top:i,transform:`translateY(-100%)`},[`&-placement-bottom > ${t}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateY(-100%) translateX(-50%)`},[`&-placement-bottomLeft > ${t}-arrow`]:{left:{_skip_check_:!0,value:a}},[`&-placement-bottomRight > ${t}-arrow`]:{right:{_skip_check_:!0,value:a}},[`&${s}-slide-down-enter${s}-slide-down-enter-active${t}-placement-bottomLeft, + &${s}-slide-down-appear${s}-slide-down-appear-active${t}-placement-bottomLeft, + &${s}-slide-down-enter${s}-slide-down-enter-active${t}-placement-bottom, + &${s}-slide-down-appear${s}-slide-down-appear-active${t}-placement-bottom, + &${s}-slide-down-enter${s}-slide-down-enter-active${t}-placement-bottomRight, + &${s}-slide-down-appear${s}-slide-down-appear-active${t}-placement-bottomRight`]:{animationName:JO},[`&${s}-slide-up-enter${s}-slide-up-enter-active${t}-placement-topLeft, + &${s}-slide-up-appear${s}-slide-up-appear-active${t}-placement-topLeft, + &${s}-slide-up-enter${s}-slide-up-enter-active${t}-placement-top, + &${s}-slide-up-appear${s}-slide-up-appear-active${t}-placement-top, + &${s}-slide-up-enter${s}-slide-up-enter-active${t}-placement-topRight, + &${s}-slide-up-appear${s}-slide-up-appear-active${t}-placement-topRight`]:{animationName:XO},[`&${s}-slide-down-leave${s}-slide-down-leave-active${t}-placement-bottomLeft, + &${s}-slide-down-leave${s}-slide-down-leave-active${t}-placement-bottom, + &${s}-slide-down-leave${s}-slide-down-leave-active${t}-placement-bottomRight`]:{animationName:YO},[`&${s}-slide-up-leave${s}-slide-up-leave-active${t}-placement-topLeft, + &${s}-slide-up-leave${s}-slide-up-leave-active${t}-placement-top, + &${s}-slide-up-leave${s}-slide-up-leave-active${t}-placement-topRight`]:{animationName:ZO}})},{[`${t} ${n}`]:{position:`relative`,margin:0},[`${n}-submenu-popup`]:{position:`absolute`,zIndex:r,background:`transparent`,boxShadow:`none`,transformOrigin:`0 0`,"ul,li":{listStyle:`none`},ul:{marginInline:`0.3em`}},[`${t}, ${t}-menu-submenu`]:{[n]:g(g({padding:f,listStyleType:`none`,backgroundColor:_,backgroundClip:`padding-box`,borderRadius:e.borderRadiusLG,outline:`none`,boxShadow:e.boxShadowSecondary},Pp(e)),{[`${n}-item-group-title`]:{padding:`${u}px ${h}px`,color:e.colorTextDescription,transition:`all ${l}`},[`${n}-item`]:{position:`relative`,display:`flex`,alignItems:`center`,borderRadius:e.borderRadiusSM},[`${n}-item-icon`]:{minWidth:d,marginInlineEnd:e.marginXS,fontSize:e.fontSizeSM},[`${n}-title-content`]:{flex:`auto`,"> a":{color:`inherit`,transition:`all ${l}`,"&:hover":{color:`inherit`},"&::after":{position:`absolute`,inset:0,content:`""`}}},[`${n}-item, ${n}-submenu-title`]:g(g({clear:`both`,margin:0,padding:`${u}px ${h}px`,color:e.colorText,fontWeight:`normal`,fontSize:d,lineHeight:e.lineHeight,cursor:`pointer`,transition:`all ${l}`,"&:hover, &-active":{backgroundColor:e.controlItemBgHover}},Pp(e)),{"&-selected":{color:e.colorPrimary,backgroundColor:e.controlItemBgActive,"&:hover, &-active":{backgroundColor:e.controlItemBgActiveHover}},"&-disabled":{color:p,cursor:`not-allowed`,"&:hover":{color:p,backgroundColor:_,cursor:`not-allowed`},a:{pointerEvents:`none`}},"&-divider":{height:1,margin:`${e.marginXXS}px 0`,overflow:`hidden`,lineHeight:0,backgroundColor:e.colorSplit},[`${t}-menu-submenu-expand-icon`]:{position:`absolute`,insetInlineEnd:e.paddingXS,[`${t}-menu-submenu-arrow-icon`]:{marginInlineEnd:`0 !important`,color:e.colorTextDescription,fontSize:m,fontStyle:`normal`}}}),[`${n}-item-group-list`]:{margin:`0 ${e.marginXS}px`,padding:0,listStyle:`none`},[`${n}-submenu-title`]:{paddingInlineEnd:h+e.fontSizeSM},[`${n}-submenu-vertical`]:{position:`relative`},[`${n}-submenu${n}-submenu-disabled ${t}-menu-submenu-title`]:{[`&, ${t}-menu-submenu-arrow-icon`]:{color:p,backgroundColor:_,cursor:`not-allowed`}},[`${n}-submenu-selected ${t}-menu-submenu-title`]:{color:e.colorPrimary}})}},[rk(e,`slide-up`),rk(e,`slide-down`),qO(e,`move-up`),qO(e,`move-down`),_k(e,`zoom-big`)]]},Nj=Fp(`Dropdown`,(e,t)=>{let{rootPrefixCls:n}=t,{marginXXS:r,sizePopupArrow:i,controlHeight:a,fontSize:o,lineHeight:s,paddingXXS:c,componentCls:l,borderRadiusOuter:u,borderRadiusLG:d}=e,f=(a-o*s)/2,{dropdownArrowOffset:p}=HA({sizePopupArrow:i,contentRadius:d,borderRadiusOuter:u}),m=Rp(e,{menuCls:`${l}-menu`,rootPrefixCls:n,dropdownArrowDistance:i/2+r,dropdownArrowOffset:p,dropdownPaddingVertical:f,dropdownEdgeChildPadding:c});return[Mre(m),Are(m),jre(m)]},e=>({zIndexPopup:e.zIndexPopupBase+50})),Nre=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{i(`update:visible`,e),i(`visibleChange`,e),i(`update:open`,e),i(`openChange`,e)},{prefixCls:o,direction:s,getPopupContainer:c}=Z(`dropdown`,e),l=G(()=>`${o.value}-button`),[u,d]=Nj(o);return()=>{let t=g(g({},e),r),{type:i=`default`,disabled:o,danger:f,loading:p,htmlType:m,class:_=``,overlay:v=n.overlay?.call(n),trigger:y,align:b,open:x,visible:S,onVisibleChange:C,placement:w=s.value===`rtl`?`bottomLeft`:`bottomRight`,href:T,title:E,icon:D=n.icon?.call(n)||W(Mj,null,null),mouseEnterDelay:O,mouseLeaveDelay:k,overlayClassName:A,overlayStyle:j,destroyPopupOnHide:M,onClick:N,"onUpdate:open":P}=t,F=Nre(t,[`type`,`disabled`,`danger`,`loading`,`htmlType`,`class`,`overlay`,`trigger`,`align`,`open`,`visible`,`onVisibleChange`,`placement`,`href`,`title`,`icon`,`mouseEnterDelay`,`mouseLeaveDelay`,`overlayClassName`,`overlayStyle`,`destroyPopupOnHide`,`onClick`,`onUpdate:open`]),I={align:b,disabled:o,trigger:o?[]:y,placement:w,getPopupContainer:c?.value,onOpenChange:a,mouseEnterDelay:O,mouseLeaveDelay:k,open:x??S,overlayClassName:A,overlayStyle:j,destroyPopupOnHide:M},L=W(Oj,{danger:f,type:i,disabled:o,loading:p,onClick:N,htmlType:m,href:T,title:E},{default:n.default}),R=W(Oj,{danger:f,type:i,icon:D},null);return u(W(Pre,h(h({},F),{},{class:K(l.value,_,d.value)}),{default:()=>[n.leftButton?n.leftButton({button:L}):L,W(Bj,I,{default:()=>[n.rightButton?n.rightButton({button:R}):R],overlay:()=>v})]}))}}}),Fre={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z`}}]},name:`right`,theme:`outlined`};function Fj(e){for(var t=1;ttr(Lj,void 0),zj=e=>{let{prefixCls:t,mode:n,selectable:r,validator:i,onClick:a,expandIcon:o}=Rj()||{};er(Lj,{prefixCls:G(()=>e.prefixCls?.value??t?.value),mode:G(()=>e.mode?.value??n?.value),selectable:G(()=>e.selectable?.value??r?.value),validator:e.validator??i,onClick:e.onClick??a,expandIcon:e.expandIcon??o?.value})},Bj=U({compatConfig:{MODE:3},name:`ADropdown`,inheritAttrs:!1,props:Bc(kj(),{mouseEnterDelay:.15,mouseLeaveDelay:.1,placement:`bottomLeft`,trigger:`hover`}),slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a,rootPrefixCls:o,direction:s,getPopupContainer:c}=Z(`dropdown`,e),[l,u]=Nj(a),d=G(()=>{let{placement:t=``,transitionName:n}=e;return n===void 0?t.includes(`top`)?`${o.value}-slide-down`:`${o.value}-slide-up`:n});zj({prefixCls:G(()=>`${a.value}-menu`),expandIcon:G(()=>W(`span`,{class:`${a.value}-menu-submenu-arrow`},[W(Ij,{class:`${a.value}-menu-submenu-arrow-icon`},null)])),mode:G(()=>`vertical`),selectable:G(()=>!1),onClick:()=>{},validator:e=>{let{mode:t}=e;Ru(!t||t===`vertical`,`Dropdown`,`mode="${t}" is not supported for Dropdown's Menu.`)}});let f=()=>{var t;let r=e.overlay||n.overlay?.call(n),i=Array.isArray(r)?r[0]:r;if(!i)return null;let o=i.props||{};wh(!o.mode||o.mode===`vertical`,`Dropdown`,`mode="${o.mode}" is not supported for Dropdown's Menu.`);let{selectable:s=!1,expandIcon:c=((t=i.children)?.expandIcon)?.call(t)}=o,l=c!==void 0&&al(c)?c:W(`span`,{class:`${a.value}-menu-submenu-arrow`},[W(Ij,{class:`${a.value}-menu-submenu-arrow-icon`},null)]);return al(i)?s_(i,{mode:`vertical`,selectable:s,expandIcon:()=>l}):i},p=G(()=>{let t=e.placement;if(!t)return s.value===`rtl`?`bottomRight`:`bottomLeft`;if(t.includes(`Center`)){let e=t.slice(0,t.indexOf(`Center`));return wh(!t.includes(`Center`),`Dropdown`,`You are using '${t}' placement in Dropdown, which is deprecated. Try to use '${e}' instead.`),e}return t}),m=G(()=>typeof e.visible==`boolean`?e.visible:e.open),h=e=>{i(`update:visible`,e),i(`visibleChange`,e),i(`update:open`,e),i(`openChange`,e)};return()=>{let{arrow:t,trigger:i,disabled:o,overlayClassName:_}=e,v=n.default?.call(n)[0],y=s_(v,g({class:K(v?.props?.class,{[`${a.value}-rtl`]:s.value===`rtl`},`${a.value}-trigger`)},o?{disabled:o}:{})),b=K(_,u.value,{[`${a.value}-rtl`]:s.value===`rtl`}),x=o?[]:i,S;x&&x.includes(`contextmenu`)&&(S=!0);let C=RA({arrowPointAtCenter:typeof t==`object`&&t.pointAtCenter,autoAdjustOverflow:!0}),w=sm(g(g(g({},e),r),{visible:m.value,builtinPlacements:C,overlayClassName:b,arrow:!!t,alignPoint:S,prefixCls:a.value,getPopupContainer:c?.value,transitionName:d.value,trigger:x,onVisibleChange:h,placement:p.value}),[`overlay`,`onUpdate:visible`]);return l(W(ij,w,{default:()=>[y],overlay:f}))}}});Bj.Button=Pj;var Lre=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let i=ol(n,e,`overlay`);return i?W(Bj,h(h({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[W(`span`,{class:`${r}-overlay-link`},[t,W(jC,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=ol(n,e,`separator`)??`/`,i=ol(n,e),{class:c,style:l}=r,u=Lre(r,[`class`,`style`]),d;return d=e.href===void 0?W(`span`,h({class:`${a.value}-link`,onClick:s},u),[i]):W(`a`,h({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:W(`li`,{class:c,style:l},[d,t&&W(`span`,{class:`${a.value}-separator`},[t])])}}});function Rre(e,t,n,r){let i=n?n.call(r,e,t):void 0;if(i!==void 0)return!!i;if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let a=Object.keys(e),o=Object.keys(t);if(a.length!==o.length)return!1;let s=Object.prototype.hasOwnProperty.bind(t);for(let o=0;o{er(Uj,e)},Gj=()=>tr(Uj),Kj=Symbol(`ForceRenderKey`),zre=e=>{er(Kj,e)},qj=()=>tr(Kj,!1),Jj=Symbol(`menuFirstLevelContextKey`),Yj=e=>{er(Jj,e)},Bre=()=>tr(Jj,!0),Xj=U({compatConfig:{MODE:3},name:`MenuContextProvider`,inheritAttrs:!1,props:{mode:{type:String,default:void 0},overflowDisabled:{type:Boolean,default:void 0}},setup(e,t){let{slots:n}=t,r=Gj(),i=g({},r);return e.mode!==void 0&&(i.mode=vn(e,`mode`)),e.overflowDisabled!==void 0&&(i.overflowDisabled=vn(e,`overflowDisabled`)),Wj(i),()=>n.default?.call(n)}}),Zj=Symbol(`siderCollapsed`),Qj=Symbol(`siderHookProvider`),$j=`$$__vc-menu-more__key`,eM=Symbol(`KeyPathContext`),tM=()=>tr(eM,{parentEventKeys:G(()=>[]),parentKeys:G(()=>[]),parentInfo:{}}),Vre=(e,t,n)=>{let{parentEventKeys:r,parentKeys:i}=tM(),a=G(()=>[...r.value,e]),o=G(()=>[...i.value,t]);return er(eM,{parentEventKeys:a,parentKeys:o,parentInfo:n}),o},nM=Symbol(`measure`),rM=U({compatConfig:{MODE:3},setup(e,t){let{slots:n}=t;return er(nM,!0),()=>n.default?.call(n)}}),iM=()=>tr(nM,!1);function aM(e){let{mode:t,rtl:n,inlineIndent:r}=Gj();return G(()=>t.value===`inline`?n.value?{paddingRight:`${e.value*r.value}px`}:{paddingLeft:`${e.value*r.value}px`}:null)}var Hre=0,oM=U({compatConfig:{MODE:3},name:`AMenuItem`,inheritAttrs:!1,props:{id:String,role:String,disabled:Boolean,danger:Boolean,title:{type:[String,Boolean],default:void 0},icon:Q.any,onMouseenter:Function,onMouseleave:Function,onClick:Function,onKeydown:Function,onFocus:Function,originItemValue:q()},slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i}=t,a=fo(),o=iM(),s=typeof a.vnode.key==`symbol`?String(a.vnode.key):a.vnode.key;wh(typeof a.vnode.key!=`symbol`,`MenuItem`,`MenuItem \`:key="${String(s)}"\` not support Symbol type`);let c=`menu_item_${++Hre}_$$_${s}`,{parentEventKeys:l,parentKeys:u}=tM(),{prefixCls:d,activeKeys:f,disabled:p,changeActiveKeys:m,rtl:_,inlineCollapsed:v,siderCollapsed:y,onItemClick:b,selectedKeys:x,registerMenuInfo:S,unRegisterMenuInfo:C}=Gj(),w=Bre(),T=V(!1),E=G(()=>[...u.value,s]);S(c,{eventKey:c,key:s,parentEventKeys:l,parentKeys:u,isLeaf:!0}),ni(()=>{C(c)}),H(f,()=>{T.value=!!f.value.find(e=>e===s)},{immediate:!0});let D=G(()=>p.value||e.disabled),O=G(()=>x.value.includes(s)),k=G(()=>{let t=`${d.value}-item`;return{[`${t}`]:!0,[`${t}-danger`]:e.danger,[`${t}-active`]:T.value,[`${t}-selected`]:O.value,[`${t}-disabled`]:D.value}}),A=t=>({key:s,eventKey:c,keyPath:E.value,eventKeyPath:[...l.value,c],domEvent:t,item:g(g({},e),i)}),j=e=>{if(D.value)return;let t=A(e);r(`click`,e),b(t)},M=e=>{D.value||(m(E.value),r(`mouseenter`,e))},N=e=>{D.value||(m([]),r(`mouseleave`,e))},P=e=>{if(r(`keydown`,e),e.which===$.ENTER){let t=A(e);r(`click`,e),b(t)}},F=e=>{m(E.value),r(`focus`,e)},I=(e,t)=>{let n=W(`span`,{class:`${d.value}-title-content`},[t]);return(!e||al(t)&&t.type===`span`)&&t&&v.value&&w&&typeof t==`string`?W(`div`,{class:`${d.value}-inline-collapsed-noicon`},[t.charAt(0)]):n},L=aM(G(()=>E.value.length));return()=>{if(o)return null;let t=e.title??n.title?.call(n),r=Gc(n.default?.call(n)),a=r.length,c=t;t===void 0?c=w&&a?r:``:t===!1&&(c=``);let l={title:c};!y.value&&!v.value&&(l.title=null,l.open=!1);let u={};e.role===`option`&&(u[`aria-selected`]=O.value);let f=e.icon??n.icon?.call(n,e);return W(KA,h(h({},l),{},{placement:_.value?`left`:`right`,overlayClassName:`${d.value}-inline-collapsed-tooltip`}),{default:()=>[W(ox.Item,h(h(h({component:`li`},i),{},{id:e.id,style:g(g({},i.style||{}),L.value),class:[k.value,{[`${i.class}`]:!!i.class,[`${d.value}-item-only-child`]:(f?a+1:a)===1}],role:e.role||`menuitem`,tabindex:e.disabled?null:-1,"data-menu-id":s,"aria-disabled":e.disabled},u),{},{onMouseenter:M,onMouseleave:N,onClick:j,onKeydown:P,onFocus:F,title:typeof t==`string`?t:void 0}),{default:()=>[s_(typeof f==`function`?f(e.originItemValue):f,{class:`${d.value}-item-icon`},!1),I(f,r)]})]})}}}),sM={adjustX:1,adjustY:1},Ure={topLeft:{points:[`bl`,`tl`],overflow:sM,offset:[0,-7]},bottomLeft:{points:[`tl`,`bl`],overflow:sM,offset:[0,7]},leftTop:{points:[`tr`,`tl`],overflow:sM,offset:[-4,0]},rightTop:{points:[`tl`,`tr`],overflow:sM,offset:[4,0]}},Wre={topLeft:{points:[`bl`,`tl`],overflow:sM,offset:[0,-7]},bottomLeft:{points:[`tl`,`bl`],overflow:sM,offset:[0,7]},rightTop:{points:[`tr`,`tl`],overflow:sM,offset:[-4,0]},leftTop:{points:[`tl`,`tr`],overflow:sM,offset:[4,0]}},Gre={horizontal:`bottomLeft`,vertical:`rightTop`,"vertical-left":`rightTop`,"vertical-right":`leftTop`},cM=U({compatConfig:{MODE:3},name:`PopupTrigger`,inheritAttrs:!1,props:{prefixCls:String,mode:String,visible:Boolean,popupClassName:String,popupOffset:Array,disabled:Boolean,onVisibleChange:Function},slots:Object,emits:[`visibleChange`],setup(e,t){let{slots:n,emit:r}=t,i=V(!1),{getPopupContainer:a,rtl:o,subMenuOpenDelay:s,subMenuCloseDelay:c,builtinPlacements:l,triggerSubMenuAction:u,forceSubMenuRender:d,motion:f,defaultMotions:p,rootClassName:m}=Gj(),h=qj(),_=G(()=>o.value?g(g({},Wre),l.value):g(g({},Ure),l.value)),v=G(()=>Gre[e.mode]),y=V();H(()=>e.visible,e=>{pl.cancel(y.value),y.value=pl(()=>{i.value=e})},{immediate:!0}),ni(()=>{pl.cancel(y.value)});let b=e=>{r(`visibleChange`,e)},x=G(()=>{let t=f.value||p.value?.[e.mode]||p.value?.other,n=typeof t==`function`?t():t;return n?nb(n.name,{css:!0}):void 0});return()=>{let{prefixCls:t,popupClassName:r,mode:l,popupOffset:f,disabled:p}=e;return W(Ob,{prefixCls:t,popupClassName:K(`${t}-popup`,{[`${t}-rtl`]:o.value},r,m.value),stretch:l===`horizontal`?`minWidth`:null,getPopupContainer:a.value,builtinPlacements:_.value,popupPlacement:v.value,popupVisible:i.value,popupAlign:f&&{offset:f},action:p?[]:[u.value],mouseEnterDelay:s.value,mouseLeaveDelay:c.value,onPopupVisibleChange:b,forceRender:h||d.value,popupAnimation:x.value},{popup:n.popup,default:n.default})}}}),lM=(e,t)=>{let{slots:n,attrs:r}=t,{prefixCls:i,mode:a}=Gj();return W(`ul`,h(h({},r),{},{class:K(i.value,`${i.value}-sub`,`${i.value}-${a.value===`inline`?`inline`:`vertical`}`),"data-menu-list":!0}),[n.default?.call(n)])};lM.displayName=`SubMenuList`;var Kre=U({compatConfig:{MODE:3},name:`InlineSubMenuList`,inheritAttrs:!1,props:{id:String,open:Boolean,keyPath:Array},setup(e,t){let{slots:n}=t,r=G(()=>`inline`),{motion:i,mode:a,defaultMotions:o}=Gj(),s=G(()=>a.value===r.value),c=B(!s.value),l=G(()=>s.value?e.open:!1);H(a,()=>{s.value&&(c.value=!1)},{flush:`post`});let u=G(()=>{let t=i.value||o.value?.[r.value]||o.value?.other,n=typeof t==`function`?t():t;return g(g({},n),{appear:e.keyPath.length<=1})});return()=>c.value?null:W(Xj,{mode:r.value},{default:()=>[W(Uo,u.value,{default:()=>[Qn(W(lM,{id:e.id},{default:()=>[n.default?.call(n)]}),[[ss,l.value]])]})]})}}),uM=0,dM=U({compatConfig:{MODE:3},name:`ASubMenu`,inheritAttrs:!1,props:{icon:Q.any,title:Q.any,disabled:Boolean,level:Number,popupClassName:String,popupOffset:Array,internalPopupClose:Boolean,eventKey:String,expandIcon:Function,theme:String,onMouseenter:Function,onMouseleave:Function,onTitleClick:Function,originItemValue:q()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t;var a;Yj(!1);let o=iM(),s=fo(),c=typeof s.vnode.key==`symbol`?String(s.vnode.key):s.vnode.key;wh(typeof s.vnode.key!=`symbol`,`SubMenu`,`SubMenu \`:key="${String(c)}"\` not support Symbol type`);let l=zc(c)?c:`sub_menu_${++uM}_$$_not_set_key`,u=e.eventKey??(zc(c)?`sub_menu_${++uM}_$$_${c}`:l),{parentEventKeys:d,parentInfo:f,parentKeys:p}=tM(),m=G(()=>[...p.value,l]),_={eventKey:u,key:l,parentEventKeys:d,childrenEventKeys:V([]),parentKeys:p};(a=f.childrenEventKeys)==null||a.value.push(u),ni(()=>{f.childrenEventKeys&&(f.childrenEventKeys.value=f.childrenEventKeys?.value.filter(e=>e!=u))}),Vre(u,l,_);let{prefixCls:v,activeKeys:y,disabled:b,changeActiveKeys:x,mode:S,inlineCollapsed:C,openKeys:w,overflowDisabled:T,onOpenChange:E,registerMenuInfo:D,unRegisterMenuInfo:O,selectedSubMenuKeys:k,expandIcon:A,theme:j}=Gj(),M=c!=null,N=!o&&(qj()||!M);zre(N),(o&&M||!o&&!M||N)&&(D(u,_),ni(()=>{O(u)}));let P=G(()=>`${v.value}-submenu`),F=G(()=>b.value||e.disabled),I=V(),L=V(),R=G(()=>w.value.includes(l)),ee=G(()=>!T.value&&R.value),te=G(()=>k.value.includes(l)),ne=V(!1);H(y,()=>{ne.value=!!y.value.find(e=>e===l)},{immediate:!0});let z=e=>{F.value||(i(`titleClick`,e,l),S.value===`inline`&&E(l,!R.value))},re=e=>{F.value||(x(m.value),i(`mouseenter`,e))},ie=e=>{F.value||(x([]),i(`mouseleave`,e))},ae=aM(G(()=>m.value.length)),oe=e=>{S.value!==`inline`&&E(l,e)},se=()=>{x(m.value)},ce=u&&`${u}-popup`,le=G(()=>K(v.value,`${v.value}-${e.theme||j.value}`,e.popupClassName)),ue=(t,n)=>{if(!n)return C.value&&!p.value.length&&t&&typeof t==`string`?W(`div`,{class:`${v.value}-inline-collapsed-noicon`},[t.charAt(0)]):W(`span`,{class:`${v.value}-title-content`},[t]);let r=al(t)&&t.type===`span`;return W(Ma,null,[s_(typeof n==`function`?n(e.originItemValue):n,{class:`${v.value}-item-icon`},!1),r?t:W(`span`,{class:`${v.value}-title-content`},[t])])},de=G(()=>S.value!==`inline`&&m.value.length>1?`vertical`:S.value),fe=G(()=>S.value===`horizontal`?`vertical`:S.value),pe=G(()=>de.value===`horizontal`?`vertical`:de.value),me=()=>{let t=P.value,r=e.icon??n.icon?.call(n,e),i=e.expandIcon||n.expandIcon||A.value,a=ue(ol(n,e,`title`),r);return W(`div`,{style:ae.value,class:`${t}-title`,tabindex:F.value?null:-1,ref:I,title:typeof a==`string`?a:null,"data-menu-id":l,"aria-expanded":ee.value,"aria-haspopup":!0,"aria-controls":ce,"aria-disabled":F.value,onClick:z,onFocus:se},[a,S.value!==`horizontal`&&i?i(g(g({},e),{isOpen:ee.value})):W(`i`,{class:`${t}-arrow`},null)])};return()=>{if(o)return M?n.default?.call(n):null;let t=P.value,i=()=>null;if(!T.value&&S.value!==`inline`){let r=S.value===`horizontal`?[0,8]:[10,0];i=()=>W(cM,{mode:de.value,prefixCls:t,visible:!e.internalPopupClose&&ee.value,popupClassName:le.value,popupOffset:e.popupOffset||r,disabled:F.value,onVisibleChange:oe},{default:()=>[me()],popup:()=>W(Xj,{mode:pe.value},{default:()=>[W(lM,{id:ce,ref:L},{default:n.default})]})})}else i=()=>W(cM,null,{default:me});return W(Xj,{mode:fe.value},{default:()=>[W(ox.Item,h(h({component:`li`},r),{},{role:`none`,class:K(t,`${t}-${S.value}`,r.class,{[`${t}-open`]:ee.value,[`${t}-active`]:ne.value,[`${t}-selected`]:te.value,[`${t}-disabled`]:F.value}),onMouseenter:re,onMouseleave:ie,"data-submenu-id":l}),{default:()=>W(Ma,null,[i(),!T.value&&W(Kre,{id:ce,open:ee.value,keyPath:m.value},{default:n.default})])})]})}}});function fM(e,t){return e.classList?e.classList.contains(t):` ${e.className} `.indexOf(` ${t} `)>-1}function pM(e,t){e.classList?e.classList.add(t):fM(e,t)||(e.className=`${e.className} ${t}`)}function mM(e,t){e.classList?e.classList.remove(t):fM(e,t)&&(e.className=` ${e.className} `.replace(` ${t} `,` `))}var hM=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`ant-motion-collapse`;return{name:e,appear:arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,css:!0,onBeforeEnter:t=>{t.style.height=`0px`,t.style.opacity=`0`,pM(t,e)},onEnter:e=>{zn(()=>{e.style.height=`${e.scrollHeight}px`,e.style.opacity=`1`})},onAfterEnter:t=>{t&&(mM(t,e),t.style.height=null,t.style.opacity=null)},onBeforeLeave:t=>{pM(t,e),t.style.height=`${t.offsetHeight}px`,t.style.opacity=null},onLeave:e=>{setTimeout(()=>{e.style.height=`0px`,e.style.opacity=`0`})},onAfterLeave:t=>{t&&(mM(t,e),t.style&&(t.style.height=null,t.style.opacity=null))}}},gM=U({compatConfig:{MODE:3},name:`AMenuItemGroup`,inheritAttrs:!1,props:{title:Q.any,originItemValue:q()},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=Gj(),a=G(()=>`${i.value}-item-group`),o=iM();return()=>o?n.default?.call(n):W(`li`,h(h({},r),{},{onClick:e=>e.stopPropagation(),class:a.value}),[W(`div`,{title:typeof e.title==`string`?e.title:void 0,class:`${a.value}-title`},[ol(n,e,`title`)]),W(`ul`,{class:`${a.value}-list`},[n.default?.call(n)])])}}),_M=U({compatConfig:{MODE:3},name:`AMenuDivider`,props:{prefixCls:String,dashed:Boolean},setup(e){let{prefixCls:t}=Gj(),n=G(()=>({[`${t.value}-item-divider`]:!0,[`${t.value}-item-divider-dashed`]:!!e.dashed}));return()=>W(`li`,{class:n.value},null)}}),qre=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{if(e&&typeof e==`object`){let i=e,{label:a,children:o,key:s,type:c}=i,l=qre(i,[`label`,`children`,`key`,`type`]),u=s??`tmp-${r}`,d=n?n.parentKeys.slice():[],f=[],p={eventKey:u,key:u,parentEventKeys:B(d),parentKeys:B(d),childrenEventKeys:B(f),isLeaf:!1};if(o||c===`group`){if(c===`group`){let r=vM(o,t,n);return W(gM,h(h({key:u},l),{},{title:a,originItemValue:e}),{default:()=>[r]})}t.set(u,p),n&&n.childrenEventKeys.push(u);let r=vM(o,t,{childrenEventKeys:f,parentKeys:[].concat(d,u)});return W(dM,h(h({key:u},l),{},{title:a,originItemValue:e}),{default:()=>[r]})}return c===`divider`?W(_M,h({key:u},l),null):(p.isLeaf=!0,t.set(u,p),W(oM,h(h({key:u},l),{},{originItemValue:e}),{default:()=>[a]}))}return null}).filter(e=>e)}function Jre(e){let t=V([]),n=V(!1),r=V(new Map);return H(()=>e.items,()=>{let i=new Map;n.value=!1,e.items?(n.value=!0,t.value=vM(e.items,i)):t.value=void 0,r.value=i},{immediate:!0,deep:!0}),{itemsNodes:t,store:r,hasItmes:n}}var Yre=e=>{let{componentCls:t,motionDurationSlow:n,menuHorizontalHeight:r,colorSplit:i,lineWidth:a,lineType:o,menuItemPaddingInline:s}=e;return{[`${t}-horizontal`]:{lineHeight:`${r}px`,border:0,borderBottom:`${a}px ${o} ${i}`,boxShadow:`none`,"&::after":{display:`block`,clear:`both`,height:0,content:`"\\20"`},[`${t}-item, ${t}-submenu`]:{position:`relative`,display:`inline-block`,verticalAlign:`bottom`,paddingInline:s},[`> ${t}-item:hover, + > ${t}-item-active, + > ${t}-submenu ${t}-submenu-title:hover`]:{backgroundColor:`transparent`},[`${t}-item, ${t}-submenu-title`]:{transition:[`border-color ${n}`,`background ${n}`].join(`,`)},[`${t}-submenu-arrow`]:{display:`none`}}}},Xre=e=>{let{componentCls:t,menuArrowOffset:n}=e;return{[`${t}-rtl`]:{direction:`rtl`},[`${t}-submenu-rtl`]:{transformOrigin:`100% 0`},[`${t}-rtl${t}-vertical, + ${t}-submenu-rtl ${t}-vertical`]:{[`${t}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(-${n})`},"&::after":{transform:`rotate(45deg) translateY(${n})`}}}}},yM=e=>g({},Np(e)),bM=(e,t)=>{let{componentCls:n,colorItemText:r,colorItemTextSelected:i,colorGroupTitle:a,colorItemBg:o,colorSubItemBg:s,colorItemBgSelected:c,colorActiveBarHeight:l,colorActiveBarWidth:u,colorActiveBarBorderSize:d,motionDurationSlow:f,motionEaseInOut:p,motionEaseOut:m,menuItemPaddingInline:h,motionDurationMid:_,colorItemTextHover:v,lineType:y,colorSplit:b,colorItemTextDisabled:x,colorDangerItemText:S,colorDangerItemTextHover:C,colorDangerItemTextSelected:w,colorDangerItemBgActive:T,colorDangerItemBgSelected:E,colorItemBgHover:D,menuSubMenuBg:O,colorItemTextSelectedHorizontal:k,colorItemBgSelectedHorizontal:A}=e;return{[`${n}-${t}`]:{color:r,background:o,[`&${n}-root:focus-visible`]:g({},yM(e)),[`${n}-item-group-title`]:{color:a},[`${n}-submenu-selected`]:{[`> ${n}-submenu-title`]:{color:i}},[`${n}-item-disabled, ${n}-submenu-disabled`]:{color:`${x} !important`},[`${n}-item:hover, ${n}-submenu-title:hover`]:{[`&:not(${n}-item-selected):not(${n}-submenu-selected)`]:{color:v}},[`&:not(${n}-horizontal)`]:{[`${n}-item:not(${n}-item-selected)`]:{"&:hover":{backgroundColor:D},"&:active":{backgroundColor:c}},[`${n}-submenu-title`]:{"&:hover":{backgroundColor:D},"&:active":{backgroundColor:c}}},[`${n}-item-danger`]:{color:S,[`&${n}-item:hover`]:{[`&:not(${n}-item-selected):not(${n}-submenu-selected)`]:{color:C}},[`&${n}-item:active`]:{background:T}},[`${n}-item a`]:{"&, &:hover":{color:`inherit`}},[`${n}-item-selected`]:{color:i,[`&${n}-item-danger`]:{color:w},"a, a:hover":{color:`inherit`}},[`& ${n}-item-selected`]:{backgroundColor:c,[`&${n}-item-danger`]:{backgroundColor:E}},[`${n}-item, ${n}-submenu-title`]:{[`&:not(${n}-item-disabled):focus-visible`]:g({},yM(e))},[`&${n}-submenu > ${n}`]:{backgroundColor:O},[`&${n}-popup > ${n}`]:{backgroundColor:o},[`&${n}-horizontal`]:g(g({},t===`dark`?{borderBottom:0}:{}),{[`> ${n}-item, > ${n}-submenu`]:{top:d,marginTop:-d,marginBottom:0,borderRadius:0,"&::after":{position:`absolute`,insetInline:h,bottom:0,borderBottom:`${l}px solid transparent`,transition:`border-color ${f} ${p}`,content:`""`},"&:hover, &-active, &-open":{"&::after":{borderBottomWidth:l,borderBottomColor:k}},"&-selected":{color:k,backgroundColor:A,"&::after":{borderBottomWidth:l,borderBottomColor:k}}}}),[`&${n}-root`]:{[`&${n}-inline, &${n}-vertical`]:{borderInlineEnd:`${d}px ${y} ${b}`}},[`&${n}-inline`]:{[`${n}-sub${n}-inline`]:{background:s},[`${n}-item, ${n}-submenu-title`]:d&&u?{width:`calc(100% + ${d}px)`}:{},[`${n}-item`]:{position:`relative`,"&::after":{position:`absolute`,insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${u}px solid ${i}`,transform:`scaleY(0.0001)`,opacity:0,transition:[`transform ${_} ${m}`,`opacity ${_} ${m}`].join(`,`),content:`""`},[`&${n}-item-danger`]:{"&::after":{borderInlineEndColor:w}}},[`${n}-selected, ${n}-item-selected`]:{"&::after":{transform:`scaleY(1)`,opacity:1,transition:[`transform ${_} ${p}`,`opacity ${_} ${p}`].join(`,`)}}}}}},xM=e=>{let{componentCls:t,menuItemHeight:n,itemMarginInline:r,padding:i,menuArrowSize:a,marginXS:o,marginXXS:s}=e,c=i+a+o;return{[`${t}-item`]:{position:`relative`},[`${t}-item, ${t}-submenu-title`]:{height:n,lineHeight:`${n}px`,paddingInline:i,overflow:`hidden`,textOverflow:`ellipsis`,marginInline:r,marginBlock:s,width:`calc(100% - ${r*2}px)`},[`${t}-submenu`]:{paddingBottom:.02},[`> ${t}-item, + > ${t}-submenu > ${t}-submenu-title`]:{height:n,lineHeight:`${n}px`},[`${t}-item-group-list ${t}-submenu-title, + ${t}-submenu-title`]:{paddingInlineEnd:c}}},Zre=e=>{let{componentCls:t,iconCls:n,menuItemHeight:r,colorTextLightSolid:i,dropdownWidth:a,controlHeightLG:o,motionDurationMid:s,motionEaseOut:c,paddingXL:l,fontSizeSM:u,fontSizeLG:d,motionDurationSlow:f,paddingXS:p,boxShadowSecondary:m}=e,h={height:r,lineHeight:`${r}px`,listStylePosition:`inside`,listStyleType:`disc`};return[{[t]:{"&-inline, &-vertical":g({[`&${t}-root`]:{boxShadow:`none`}},xM(e))},[`${t}-submenu-popup`]:{[`${t}-vertical`]:g(g({},xM(e)),{boxShadow:m})}},{[`${t}-submenu-popup ${t}-vertical${t}-sub`]:{minWidth:a,maxHeight:`calc(100vh - ${o*2.5}px)`,padding:`0`,overflow:`hidden`,borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:`hidden`,overflowY:`auto`}}},{[`${t}-inline`]:{width:`100%`,[`&${t}-root`]:{[`${t}-item, ${t}-submenu-title`]:{display:`flex`,alignItems:`center`,transition:[`border-color ${f}`,`background ${f}`,`padding ${s} ${c}`].join(`,`),[`> ${t}-title-content`]:{flex:`auto`,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`},"> *":{flex:`none`}}},[`${t}-sub${t}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:`none`,[`& > ${t}-submenu > ${t}-submenu-title`]:h,[`& ${t}-item-group-title`]:{paddingInlineStart:l}},[`${t}-item`]:h}},{[`${t}-inline-collapsed`]:{width:r*2,[`&${t}-root`]:{[`${t}-item, ${t}-submenu ${t}-submenu-title`]:{[`> ${t}-inline-collapsed-noicon`]:{fontSize:d,textAlign:`center`}}},[`> ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-submenu > ${t}-submenu-title, + > ${t}-submenu > ${t}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${u}px)`,textOverflow:`clip`,[` + ${t}-submenu-arrow, + ${t}-submenu-expand-icon + `]:{opacity:0},[`${t}-item-icon, ${n}`]:{margin:0,fontSize:d,lineHeight:`${r}px`,"+ span":{display:`inline-block`,opacity:0}}},[`${t}-item-icon, ${n}`]:{display:`inline-block`},"&-tooltip":{pointerEvents:`none`,[`${t}-item-icon, ${n}`]:{display:`none`},"a, a:hover":{color:i}},[`${t}-item-group-title`]:g(g({},Dp),{paddingInline:p})}}]},SM=e=>{let{componentCls:t,fontSize:n,motionDurationSlow:r,motionDurationMid:i,motionEaseInOut:a,motionEaseOut:o,iconCls:s,controlHeightSM:c}=e;return{[`${t}-item, ${t}-submenu-title`]:{position:`relative`,display:`block`,margin:0,whiteSpace:`nowrap`,cursor:`pointer`,transition:[`border-color ${r}`,`background ${r}`,`padding ${r} ${a}`].join(`,`),[`${t}-item-icon, ${s}`]:{minWidth:n,fontSize:n,transition:[`font-size ${i} ${o}`,`margin ${r} ${a}`,`color ${r}`].join(`,`),"+ span":{marginInlineStart:c-n,opacity:1,transition:[`opacity ${r} ${a}`,`margin ${r}`,`color ${r}`].join(`,`)}},[`${t}-item-icon`]:g({},kp()),[`&${t}-item-only-child`]:{[`> ${s}, > ${t}-item-icon`]:{marginInlineEnd:0}}},[`${t}-item-disabled, ${t}-submenu-disabled`]:{background:`none !important`,cursor:`not-allowed`,"&::after":{borderColor:`transparent !important`},a:{color:`inherit !important`},[`> ${t}-submenu-title`]:{color:`inherit !important`,cursor:`not-allowed`}}}},CM=e=>{let{componentCls:t,motionDurationSlow:n,motionEaseInOut:r,borderRadius:i,menuArrowSize:a,menuArrowOffset:o}=e;return{[`${t}-submenu`]:{"&-expand-icon, &-arrow":{position:`absolute`,top:`50%`,insetInlineEnd:e.margin,width:a,color:`currentcolor`,transform:`translateY(-50%)`,transition:`transform ${n} ${r}, opacity ${n}`},"&-arrow":{"&::before, &::after":{position:`absolute`,width:a*.6,height:a*.15,backgroundColor:`currentcolor`,borderRadius:i,transition:[`background ${n} ${r}`,`transform ${n} ${r}`,`top ${n} ${r}`,`color ${n} ${r}`].join(`,`),content:`""`},"&::before":{transform:`rotate(45deg) translateY(-${o})`},"&::after":{transform:`rotate(-45deg) translateY(${o})`}}}}},Qre=e=>{let{antCls:t,componentCls:n,fontSize:r,motionDurationSlow:i,motionDurationMid:a,motionEaseInOut:o,lineHeight:s,paddingXS:c,padding:l,colorSplit:u,lineWidth:d,zIndexPopup:f,borderRadiusLG:p,radiusSubMenuItem:m,menuArrowSize:h,menuArrowOffset:_,lineType:v,menuPanelMaskInset:y}=e;return[{"":{[`${n}`]:g(g({},Ap()),{"&-hidden":{display:`none`}})},[`${n}-submenu-hidden`]:{display:`none`}},{[n]:g(g(g(g(g(g(g({},Op(e)),Ap()),{marginBottom:0,paddingInlineStart:0,fontSize:r,lineHeight:0,listStyle:`none`,outline:`none`,transition:`width ${i} cubic-bezier(0.2, 0, 0, 1) 0s`,"ul, ol":{margin:0,padding:0,listStyle:`none`},"&-overflow":{display:`flex`,[`${n}-item`]:{flex:`none`}},[`${n}-item, ${n}-submenu, ${n}-submenu-title`]:{borderRadius:e.radiusItem},[`${n}-item-group-title`]:{padding:`${c}px ${l}px`,fontSize:r,lineHeight:s,transition:`all ${i}`},[`&-horizontal ${n}-submenu`]:{transition:[`border-color ${i} ${o}`,`background ${i} ${o}`].join(`,`)},[`${n}-submenu, ${n}-submenu-inline`]:{transition:[`border-color ${i} ${o}`,`background ${i} ${o}`,`padding ${a} ${o}`].join(`,`)},[`${n}-submenu ${n}-sub`]:{cursor:`initial`,transition:[`background ${i} ${o}`,`padding ${i} ${o}`].join(`,`)},[`${n}-title-content`]:{transition:`color ${i}`},[`${n}-item a`]:{"&::before":{position:`absolute`,inset:0,backgroundColor:`transparent`,content:`""`}},[`${n}-item-divider`]:{overflow:`hidden`,lineHeight:0,borderColor:u,borderStyle:v,borderWidth:0,borderTopWidth:d,marginBlock:d,padding:0,"&-dashed":{borderStyle:`dashed`}}}),SM(e)),{[`${n}-item-group`]:{[`${n}-item-group-list`]:{margin:0,padding:0,[`${n}-item, ${n}-submenu-title`]:{paddingInline:`${r*2}px ${l}px`}}},"&-submenu":{"&-popup":{position:`absolute`,zIndex:f,background:`transparent`,borderRadius:p,boxShadow:`none`,transformOrigin:`0 0`,"&::before":{position:`absolute`,inset:`${y}px 0 0`,zIndex:-1,width:`100%`,height:`100%`,opacity:0,content:`""`}},"&-placement-rightTop::before":{top:0,insetInlineStart:y},[`> ${n}`]:g(g(g({borderRadius:p},SM(e)),CM(e)),{[`${n}-item, ${n}-submenu > ${n}-submenu-title`]:{borderRadius:m},[`${n}-submenu-title::after`]:{transition:`transform ${i} ${o}`}})}}),CM(e)),{[`&-inline-collapsed ${n}-submenu-arrow, + &-inline ${n}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${_})`},"&::after":{transform:`rotate(45deg) translateX(-${_})`}},[`${n}-submenu-open${n}-submenu-inline > ${n}-submenu-title > ${n}-submenu-arrow`]:{transform:`translateY(-${h*.2}px)`,"&::after":{transform:`rotate(-45deg) translateX(-${_})`},"&::before":{transform:`rotate(45deg) translateX(${_})`}}})},{[`${t}-layout-header`]:{[n]:{lineHeight:`inherit`}}}]},$re=((e,t)=>Fp(`Menu`,(e,n)=>{let{overrideComponentToken:r}=n;if(t?.value===!1)return[];let{colorBgElevated:i,colorPrimary:a,colorError:o,colorErrorHover:s,colorTextLightSolid:c}=e,{controlHeightLG:l,fontSize:u}=e,d=u/7*5,f=Rp(e,{menuItemHeight:l,menuItemPaddingInline:e.margin,menuArrowSize:d,menuHorizontalHeight:l*1.15,menuArrowOffset:`${d*.25}px`,menuPanelMaskInset:-7,menuSubMenuBg:i}),p=new zf(c).setAlpha(.65).toRgbString(),m=Rp(f,{colorItemText:p,colorItemTextHover:c,colorGroupTitle:p,colorItemTextSelected:c,colorItemBg:`#001529`,colorSubItemBg:`#000c17`,colorItemBgActive:`transparent`,colorItemBgSelected:a,colorActiveBarWidth:0,colorActiveBarHeight:0,colorActiveBarBorderSize:0,colorItemTextDisabled:new zf(c).setAlpha(.25).toRgbString(),colorDangerItemText:o,colorDangerItemTextHover:s,colorDangerItemTextSelected:c,colorDangerItemBgActive:o,colorDangerItemBgSelected:o,menuSubMenuBg:`#001529`,colorItemTextSelectedHorizontal:c,colorItemBgSelectedHorizontal:a},g({},r));return[Qre(f),Yre(f),Zre(f),bM(f,`light`),bM(m,`dark`),Xre(f),vk(f),rk(f,`slide-up`),rk(f,`slide-down`),_k(f,`zoom-big`)]},e=>{let{colorPrimary:t,colorError:n,colorTextDisabled:r,colorErrorBg:i,colorText:a,colorTextDescription:o,colorBgContainer:s,colorFillAlter:c,colorFillContent:l,lineWidth:u,lineWidthBold:d,controlItemBgActive:f,colorBgTextHover:p}=e;return{dropdownWidth:160,zIndexPopup:e.zIndexPopupBase+50,radiusItem:e.borderRadiusLG,radiusSubMenuItem:e.borderRadiusSM,colorItemText:a,colorItemTextHover:a,colorItemTextHoverHorizontal:t,colorGroupTitle:o,colorItemTextSelected:t,colorItemTextSelectedHorizontal:t,colorItemBg:s,colorItemBgHover:p,colorItemBgActive:l,colorSubItemBg:c,colorItemBgSelected:f,colorItemBgSelectedHorizontal:`transparent`,colorActiveBarWidth:0,colorActiveBarHeight:d,colorActiveBarBorderSize:u,colorItemTextDisabled:r,colorDangerItemText:n,colorDangerItemTextHover:n,colorDangerItemTextSelected:n,colorDangerItemBgActive:i,colorDangerItemBgSelected:i,itemMarginInline:e.marginXXS}})(e)),eie=()=>({id:String,prefixCls:String,items:Array,disabled:Boolean,inlineCollapsed:Boolean,disabledOverflow:Boolean,forceSubMenuRender:Boolean,openKeys:Array,selectedKeys:Array,activeKey:String,selectable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},tabindex:{type:[Number,String]},motion:Object,role:String,theme:{type:String,default:`light`},mode:{type:String,default:`vertical`},inlineIndent:{type:Number,default:24},subMenuOpenDelay:{type:Number,default:0},subMenuCloseDelay:{type:Number,default:.1},builtinPlacements:{type:Object},triggerSubMenuAction:{type:String,default:`hover`},getPopupContainer:Function,expandIcon:Function,onOpenChange:Function,onSelect:Function,onDeselect:Function,onClick:[Function,Array],onFocus:Function,onBlur:Function,onMousedown:Function,"onUpdate:openKeys":Function,"onUpdate:selectedKeys":Function,"onUpdate:activeKey":Function}),wM=[],TM=U({compatConfig:{MODE:3},name:`AMenu`,inheritAttrs:!1,props:eie(),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i}=t,{direction:a,getPrefixCls:o}=Z(`menu`,e),s=Rj(),c=G(()=>o(`menu`,e.prefixCls||s?.prefixCls?.value)),[l,u]=$re(c,G(()=>!s)),d=V(new Map),f=tr(Zj,B(void 0)),p=G(()=>f.value===void 0?e.inlineCollapsed:f.value),{itemsNodes:m}=Jre(e),_=V(!1);$r(()=>{_.value=!0}),ar(()=>{wh(e.inlineCollapsed!==!0||e.mode===`inline`,`Menu`,"`inlineCollapsed` should only be used when `mode` is inline."),wh(f.value===void 0||e.inlineCollapsed!==!0,`Menu`,"`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.")});let v=B([]),y=B([]),b=B({});H(d,()=>{let e={};for(let t of d.value.values())e[t.key]=t;b.value=e},{flush:`post`}),ar(()=>{if(e.activeKey!==void 0){let t=[],n=e.activeKey?b.value[e.activeKey]:void 0;t=n&&e.activeKey!==void 0?EO([].concat(fn(n.parentKeys),e.activeKey)):[],Hj(v.value,t)||(v.value=t)}}),H(()=>e.selectedKeys,e=>{e&&(y.value=e.slice())},{immediate:!0,deep:!0});let x=B([]);H([b,y],()=>{let e=[];y.value.forEach(t=>{let n=b.value[t];n&&(e=e.concat(fn(n.parentKeys)))}),e=EO(e),Hj(x.value,e)||(x.value=e)},{immediate:!0});let S=t=>{if(e.selectable){let{key:n}=t,i=y.value.includes(n),a;a=e.multiple?i?y.value.filter(e=>e!==n):[...y.value,n]:[n];let o=g(g({},t),{selectedKeys:a});Hj(a,y.value)||(e.selectedKeys===void 0&&(y.value=a),r(`update:selectedKeys`,a),i&&e.multiple?r(`deselect`,o):r(`select`,o))}O.value!==`inline`&&!e.multiple&&C.value.length&&j(wM)},C=B([]);H(()=>e.openKeys,function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:C.value;Hj(C.value,e)||(C.value=e.slice())},{immediate:!0,deep:!0});let w,T=t=>{clearTimeout(w),w=setTimeout(()=>{e.activeKey===void 0&&(v.value=t),r(`update:activeKey`,t[t.length-1])})},E=G(()=>!!e.disabled),D=G(()=>a.value===`rtl`),O=B(`vertical`),k=V(!1);ar(()=>{(e.mode===`inline`||e.mode===`vertical`)&&p.value?(O.value=`vertical`,k.value=p.value):(O.value=e.mode,k.value=!1),s?.mode?.value&&(O.value=s.mode.value)});let A=G(()=>O.value===`inline`),j=e=>{C.value=e,r(`update:openKeys`,e),r(`openChange`,e)},M=B(C.value),N=V(!1);H(C,()=>{A.value&&(M.value=C.value)},{immediate:!0}),H(A,()=>{N.value?A.value?C.value=M.value:j(wM):N.value=!0},{immediate:!0});let P=G(()=>({[`${c.value}`]:!0,[`${c.value}-root`]:!0,[`${c.value}-${O.value}`]:!0,[`${c.value}-inline-collapsed`]:k.value,[`${c.value}-rtl`]:D.value,[`${c.value}-${e.theme}`]:!0})),F=G(()=>o()),I=G(()=>({horizontal:{name:`${F.value}-slide-up`},inline:hM(`${F.value}-motion-collapse`),other:{name:`${F.value}-zoom-big`}}));Yj(!0);let L=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=[],n=d.value;return e.forEach(e=>{let{key:r,childrenEventKeys:i}=n.get(e);t.push(r,...L(fn(i)))}),t},R=e=>{var t;r(`click`,e),S(e),(t=s?.onClick)==null||t.call(s)},ee=(e,t)=>{let n=b.value[e]?.childrenEventKeys||[],r=C.value.filter(t=>t!==e);if(t)r.push(e);else if(O.value!==`inline`){let e=L(fn(n));r=EO(r.filter(t=>!e.includes(t)))}Hj(C,r)||j(r)},te=(e,t)=>{d.value.set(e,t),d.value=new Map(d.value)},ne=e=>{d.value.delete(e),d.value=new Map(d.value)},z=B(0),re=G(()=>e.expandIcon||n.expandIcon||s?.expandIcon?.value?t=>{let r=e.expandIcon||n.expandIcon;return r=typeof r==`function`?r(t):r,s_(r,{class:`${c.value}-submenu-expand-icon`},!1)}:null);Wj({prefixCls:c,activeKeys:v,openKeys:C,selectedKeys:y,changeActiveKeys:T,disabled:E,rtl:D,mode:O,inlineIndent:G(()=>e.inlineIndent),subMenuCloseDelay:G(()=>e.subMenuCloseDelay),subMenuOpenDelay:G(()=>e.subMenuOpenDelay),builtinPlacements:G(()=>e.builtinPlacements),triggerSubMenuAction:G(()=>e.triggerSubMenuAction),getPopupContainer:G(()=>e.getPopupContainer),inlineCollapsed:k,theme:G(()=>e.theme),siderCollapsed:f,defaultMotions:G(()=>_.value?I.value:null),motion:G(()=>_.value?e.motion:null),overflowDisabled:V(void 0),onOpenChange:ee,onItemClick:R,registerMenuInfo:te,unRegisterMenuInfo:ne,selectedSubMenuKeys:x,expandIcon:re,forceSubMenuRender:G(()=>e.forceSubMenuRender),rootClassName:u});let ie=()=>m.value||Gc(n.default?.call(n));return()=>{let t=ie(),r=z.value>=t.length-1||O.value!==`horizontal`||e.disabledOverflow,a=t=>O.value!==`horizontal`||e.disabledOverflow?t:t.map((e,t)=>W(Xj,{key:e.key,overflowDisabled:t>z.value},{default:()=>e})),o=n.overflowedIndicator?.call(n)||W(Mj,null,null);return l(W(ox,h(h({},i),{},{onMousedown:e.onMousedown,prefixCls:`${c.value}-overflow`,component:`ul`,itemComponent:oM,class:[P.value,i.class,u.value],role:`menu`,id:e.id,data:a(t),renderRawItem:e=>e,renderRawRest:e=>{let n=e.length,i=n?t.slice(-n):null;return W(Ma,null,[W(dM,{eventKey:$j,key:$j,title:o,disabled:r,internalPopupClose:n===0},{default:()=>i}),W(rM,null,{default:()=>[W(dM,{eventKey:$j,key:$j,title:o,disabled:r,internalPopupClose:n===0},{default:()=>i})]})])},maxCount:O.value!==`horizontal`||e.disabledOverflow?ox.INVALIDATE:ox.RESPONSIVE,ssr:`full`,"data-menu-list":!0,onVisibleChange:e=>{z.value=e}}),{default:()=>[W(xr,{to:`body`},{default:()=>[W(`div`,{style:{display:`none`},"aria-hidden":!0},[W(rM,null,{default:()=>[a(ie())]})])]})]}))}}});TM.install=function(e){return e.component(TM.name,TM),e.component(oM.name,oM),e.component(dM.name,dM),e.component(_M.name,_M),e.component(gM.name,gM),e},TM.Item=oM,TM.Divider=_M,TM.SubMenu=dM,TM.ItemGroup=gM;var EM=TM,tie=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:g(g({},Op(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:g({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},Pp(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[` + > ${n} + span, + > ${n} + a + `]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,padding:`0 ${e.paddingXXS}px`,marginInline:-e.marginXXS,[`> ${n}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover,a:{color:e.breadcrumbLinkColorHover}},a:{"&:hover":{backgroundColor:`transparent`}}},[`&${e.componentCls}-rtl`]:{direction:`rtl`}})}},nie=Fp(`Breadcrumb`,e=>[tie(Rp(e,{breadcrumbBaseColor:e.colorTextDescription,breadcrumbFontSize:e.fontSize,breadcrumbIconFontSize:e.fontSize,breadcrumbLinkColor:e.colorTextDescription,breadcrumbLinkColorHover:e.colorText,breadcrumbLastItemColor:e.colorText,breadcrumbSeparatorMargin:e.marginXS,breadcrumbSeparatorColor:e.colorTextDescription}))]),rie=()=>({prefixCls:String,routes:{type:Array},params:Q.any,separator:Q.any,itemRender:{type:Function}});function iie(e,t){if(!e.breadcrumbName)return null;let n=Object.keys(t).join(`|`);return e.breadcrumbName.replace(RegExp(`:(${n})`,`g`),(e,n)=>t[n]||e)}function DM(e){let{route:t,params:n,routes:r,paths:i}=e,a=r.indexOf(t)===r.length-1,o=iie(t,n);return a?W(`span`,null,[o]):W(`a`,{href:`#/${i.join(`/`)}`},[o])}var OM=U({compatConfig:{MODE:3},name:`ABreadcrumb`,inheritAttrs:!1,props:rie(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`breadcrumb`,e),[o,s]=nie(i),c=(e,t)=>(e=(e||``).replace(/^\//,``),Object.keys(t).forEach(n=>{e=e.replace(`:${n}`,t[n])}),e),l=(e,t,n)=>{let r=[...e],i=c(t||``,n);return i&&r.push(i),r},u=e=>{let{routes:t=[],params:n={},separator:r,itemRender:i=DM}=e,a=[];return t.map(e=>{let o=c(e.path,n);o&&a.push(o);let s=[...a],u=null;e.children&&e.children.length&&(u=W(EM,{items:e.children.map(e=>({key:e.path||e.breadcrumbName,label:i({route:e,params:n,routes:t,paths:l(s,e.path,n)})}))},null));let d={separator:r};return u&&(d.overlay=u),W(Vj,h(h({},d),{},{key:o||e.breadcrumbName}),{default:()=>[i({route:e,params:n,routes:t,paths:s})]})})};return()=>{let t,{routes:c,params:l={}}=e,d=Gc(ol(n,e)),f=ol(n,e,`separator`)??`/`,p=e.itemRender||n.itemRender||DM;c&&c.length>0?t=u({routes:c,params:l,separator:f,itemRender:p}):d.length&&(t=d.map((e,t)=>(Ru(typeof e.type==`object`&&(e.type.__ANT_BREADCRUMB_ITEM||e.type.__ANT_BREADCRUMB_SEPARATOR),`Breadcrumb`,`Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children`),Za(e,{separator:f,key:t}))));let m={[i.value]:!0,[`${i.value}-rtl`]:a.value===`rtl`,[`${r.class}`]:!!r.class,[s.value]:!0};return o(W(`nav`,h(h({},r),{},{class:m}),[W(`ol`,null,[t])]))}}}),aie=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{separator:e,class:t}=r,a=aie(r,[`separator`,`class`]),o=Gc(n.default?.call(n));return W(`span`,h({class:[`${i.value}-separator`,t]},a),[o.length>0?o:`/`])}}});OM.Item=Vj,OM.Separator=kM,OM.install=function(e){return e.component(OM.name,OM),e.component(Vj.name,Vj),e.component(kM.name,kM),e};var AM=OM,oie=o(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(n,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e){(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekday=r()})(n,(function(){return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,n=this.$W,r=(n{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_localeData=r()})(n,(function(){return function(e,t,n){var r=t.prototype,i=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,r,a){var o=e.name?e:e.$locale(),s=i(o[t]),c=i(o[n]),l=s||c.map((function(e){return e.slice(0,r)}));if(!a)return l;var u=o.weekStart;return l.map((function(e,t){return l[(t+(u||0))%7]}))},o=function(){return n.Ls[n.locale()]},s=function(e,t){return e.formats[t]||function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}(e.formats[t.toUpperCase()])},c=function(){var e=this;return{months:function(t){return t?t.format(`MMMM`):a(e,`months`)},monthsShort:function(t){return t?t.format(`MMM`):a(e,`monthsShort`,`months`,3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format(`dddd`):a(e,`weekdays`)},weekdaysMin:function(t){return t?t.format(`dd`):a(e,`weekdaysMin`,`weekdays`,2)},weekdaysShort:function(t){return t?t.format(`ddd`):a(e,`weekdaysShort`,`weekdays`,3)},longDateFormat:function(t){return s(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return c.bind(this)()},n.localeData=function(){var e=o();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return s(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(o(),`months`)},n.monthsShort=function(){return a(o(),`monthsShort`,`months`,3)},n.weekdays=function(e){return a(o(),`weekdays`,null,null,e)},n.weekdaysShort=function(e){return a(o(),`weekdaysShort`,`weekdays`,3,e)},n.weekdaysMin=function(e){return a(o(),`weekdaysMin`,`weekdays`,2,e)}}}))})),lie=o(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekOfYear=r()})(n,(function(){var e=`week`,t=`year`;return function(n,r,i){var a=r.prototype;a.week=function(n){if(n===void 0&&(n=null),n!==null)return this.add(7*(n-this.week()),`day`);var r=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var a=i(this).startOf(t).add(1,t).date(r),o=i(this).endOf(e);if(a.isBefore(o))return 1}var s=i(this).startOf(t).date(r).startOf(e).subtract(1,`millisecond`),c=this.diff(s,e,!0);return c<0?i(this).startOf(`week`).week():Math.ceil(c)},a.weeks=function(e){return e===void 0&&(e=null),this.week(e)}}}))})),uie=o(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekYear=r()})(n,(function(){return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return t===1&&e===11?n+1:e===0&&t>=52?n-1:n}}}))})),jM=o(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_quarterOfYear=r()})(n,(function(){var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}}))})),MM=o(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_advancedFormat=r()})(n,(function(){return function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var i=this.$utils(),a=(e||`YYYY-MM-DDTHH:mm:ssZ`).replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case`Q`:return Math.ceil((t.$M+1)/3);case`Do`:return n.ordinal(t.$D);case`gggg`:return t.weekYear();case`GGGG`:return t.isoWeekYear();case`wo`:return n.ordinal(t.week(),`W`);case`w`:case`ww`:return i.s(t.week(),e===`w`?1:2,`0`);case`W`:case`WW`:return i.s(t.isoWeek(),e===`W`?1:2,`0`);case`k`:case`kk`:return i.s(String(t.$H===0?24:t.$H),e===`k`?1:2,`0`);case`X`:return Math.floor(t.$d.getTime()/1e3);case`x`:return t.$d.getTime();case`z`:return`[`+t.offsetName()+`]`;case`zzz`:return`[`+t.offsetName(`long`)+`]`;default:return e}}));return r.bind(this)(a)}}}))})),NM=o(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_customParseFormat=r()})(n,(function(){var e={LTS:`h:mm:ss A`,LT:`h:mm A`,L:`MM/DD/YYYY`,LL:`MMMM D, YYYY`,LLL:`MMMM D, YYYY h:mm A`,LLLL:`dddd, MMMM D, YYYY h:mm A`},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)},c=function(e){return function(t){this[e]=+t}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||={}).offset=function(e){if(!e||e===`Z`)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return n===0?0:t[0]===`+`?-n:n}(e)}],u=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?`pm`:`PM`);return n},f={A:[a,function(e){this.afternoon=d(e,!1)}],a:[a,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*e}],SS:[r,function(e){this.milliseconds=10*e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,c(`seconds`)],ss:[i,c(`seconds`)],m:[i,c(`minutes`)],mm:[i,c(`minutes`)],H:[i,c(`hours`)],h:[i,c(`hours`)],HH:[i,c(`hours`)],hh:[i,c(`hours`)],D:[i,c(`day`)],DD:[r,c(`day`)],Do:[a,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,``)===e&&(this.day=r)}],w:[i,c(`week`)],ww:[r,c(`week`)],M:[i,c(`month`)],MM:[r,c(`month`)],MMM:[a,function(e){var t=u(`months`),n=(u(`monthsShort`)||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw Error();this.month=n%12||n}],MMMM:[a,function(e){var t=u(`months`).indexOf(e)+1;if(t<1)throw Error();this.month=t%12||t}],Y:[/[+-]?\d+/,c(`year`)],YY:[r,function(e){this.year=s(e)}],YYYY:[/\d{4}/,c(`year`)],Z:l,ZZ:l};function p(n){for(var r=n,i=o&&o.formats,a=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var a=r&&r.toUpperCase();return n||i[r]||e[r]||i[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),s=a.length,c=0;c-1)return new Date((t===`X`?1e3:1)*e);var i=p(t)(e),a=i.year,o=i.month,s=i.day,c=i.hours,l=i.minutes,u=i.seconds,d=i.milliseconds,f=i.zone,m=i.week,h=new Date,g=s||(a||o?1:h.getDate()),_=a||h.getFullYear(),v=0;a&&!o||(v=o>0?o-1:h.getMonth());var y,b=c||0,x=l||0,S=u||0,C=d||0;return f?new Date(Date.UTC(_,v,g,b,x,S,C+60*f.offset*1e3)):n?new Date(Date.UTC(_,v,g,b,x,S,C)):(y=new Date(_,v,g,b,x,S,C),m&&(y=r(y).week(m).toDate()),y)}catch{return new Date(``)}}(t,s,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(s)&&(this.$d=new Date(``)),o={}}else if(s instanceof Array)for(var f=s.length,m=1;m<=f;m+=1){a[1]=s[m-1];var h=n.apply(this,a);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}m===f&&(this.$d=new Date(``))}else i.call(this,e)}}}))})),PM=l(oie()),FM=l(sie()),IM=l(cie()),LM=l(lie()),RM=l(uie()),zM=l(jM()),BM=l(MM()),VM=l(NM());PM.default.extend(VM.default),PM.default.extend(BM.default),PM.default.extend(FM.default),PM.default.extend(IM.default),PM.default.extend(LM.default),PM.default.extend(RM.default),PM.default.extend(zM.default),PM.default.extend((e,t)=>{let n=t.prototype,r=n.format;n.format=function(e){let t=(e||``).replace(`Wo`,`wo`);return r.bind(this)(t)}});var HM={bn_BD:`bn-bd`,by_BY:`be`,en_GB:`en-gb`,en_US:`en`,fr_BE:`fr`,fr_CA:`fr-ca`,hy_AM:`hy-am`,kmr_IQ:`ku`,nl_BE:`nl-be`,pt_BR:`pt-br`,zh_CN:`zh-cn`,zh_HK:`zh-hk`,zh_TW:`zh-tw`},UM=e=>HM[e]||e.split(`_`)[0],WM=()=>{Iu(!1,`Not match any format. Please help to fire a issue about this.`)},GM=/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|k{1,2}|S/g;function KM(e,t,n){let r=[...new Set(e.split(n))],i=0;for(let e=0;et)return a;i+=n.length}}var qM=(e,t)=>{if(!e)return null;if(PM.default.isDayjs(e))return e;let n=t.matchAll(GM),r=(0,PM.default)(e,t);if(n===null)return r;for(let t of n){let n=t[0],i=t.index;if(n===`Q`){let t=KM(e,i,e.slice(i-1,i)).match(/\d+/)[0];r=r.quarter(parseInt(t))}if(n.toLowerCase()===`wo`){let t=KM(e,i,e.slice(i-1,i)).match(/\d+/)[0];r=r.week(parseInt(t))}n.toLowerCase()===`ww`&&(r=r.week(parseInt(e.slice(i,i+n.length)))),n.toLowerCase()===`w`&&(r=r.week(parseInt(e.slice(i,i+n.length+1))))}return r},JM={getNow:()=>(0,PM.default)(),getFixedDate:e=>(0,PM.default)(e,[`YYYY-M-DD`,`YYYY-MM-DD`]),getEndDate:e=>e.endOf(`month`),getWeekDay:e=>{let t=e.locale(`en`);return t.weekday()+t.localeData().firstDayOfWeek()},getYear:e=>e.year(),getMonth:e=>e.month(),getDate:e=>e.date(),getHour:e=>e.hour(),getMinute:e=>e.minute(),getSecond:e=>e.second(),addYear:(e,t)=>e.add(t,`year`),addMonth:(e,t)=>e.add(t,`month`),addDate:(e,t)=>e.add(t,`day`),setYear:(e,t)=>e.year(t),setMonth:(e,t)=>e.month(t),setDate:(e,t)=>e.date(t),setHour:(e,t)=>e.hour(t),setMinute:(e,t)=>e.minute(t),setSecond:(e,t)=>e.second(t),isAfter:(e,t)=>e.isAfter(t),isValidate:e=>e.isValid(),locale:{getWeekFirstDay:e=>(0,PM.default)().locale(UM(e)).localeData().firstDayOfWeek(),getWeekFirstDate:(e,t)=>t.locale(UM(e)).weekday(0),getWeek:(e,t)=>t.locale(UM(e)).week(),getShortWeekDays:e=>(0,PM.default)().locale(UM(e)).localeData().weekdaysMin(),getShortMonths:e=>(0,PM.default)().locale(UM(e)).localeData().monthsShort(),format:(e,t,n)=>t.locale(UM(e)).format(n),parse:(e,t,n)=>{let r=UM(e);for(let e=0;eArray.isArray(e)?e.map(e=>qM(e,t)):qM(e,t),toString:(e,t)=>Array.isArray(e)?e.map(e=>PM.default.isDayjs(e)?e.format(t):e):PM.default.isDayjs(e)?e.format(t):e};function YM(e){let t=see();return g(g({},e),t)}var XM=Symbol(`PanelContextProps`),ZM=e=>{er(XM,e)},QM=()=>tr(XM,{}),$M={visibility:`hidden`};function eN(e,t){let{slots:n}=t,{prefixCls:r,prevIcon:i=`‹`,nextIcon:a=`›`,superPrevIcon:o=`«`,superNextIcon:s=`»`,onSuperPrev:c,onSuperNext:l,onPrev:u,onNext:d}=YM(e),{hideNextBtn:f,hidePrevBtn:p}=QM();return W(`div`,{class:r},[c&&W(`button`,{type:`button`,onClick:c,tabindex:-1,class:`${r}-super-prev-btn`,style:p.value?$M:{}},[o]),u&&W(`button`,{type:`button`,onClick:u,tabindex:-1,class:`${r}-prev-btn`,style:p.value?$M:{}},[i]),W(`div`,{class:`${r}-view`},[n.default?.call(n)]),d&&W(`button`,{type:`button`,onClick:d,tabindex:-1,class:`${r}-next-btn`,style:f.value?$M:{}},[a]),l&&W(`button`,{type:`button`,onClick:l,tabindex:-1,class:`${r}-super-next-btn`,style:f.value?$M:{}},[s])])}eN.displayName=`Header`,eN.inheritAttrs=!1;function tN(e){let t=YM(e),{prefixCls:n,generateConfig:r,viewDate:i,onPrevDecades:a,onNextDecades:o}=t,{hideHeader:s}=QM();if(s)return null;let c=`${n}-header`,l=r.getYear(i),u=Math.floor(l/100)*100,d=u+100-1;return W(eN,h(h({},t),{},{prefixCls:c,onSuperPrev:a,onSuperNext:o}),{default:()=>[u,Qa(`-`),d]})}tN.displayName=`DecadeHeader`,tN.inheritAttrs=!1;function nN(e,t,n,r,i){let a=e.setHour(t,n);return a=e.setMinute(a,r),a=e.setSecond(a,i),a}function rN(e,t,n){if(!n)return t;let r=t;return r=e.setHour(r,e.getHour(n)),r=e.setMinute(r,e.getMinute(n)),r=e.setSecond(r,e.getSecond(n)),r}function iN(e,t,n,r,i,a){let o=Math.floor(e/r)*r;if(o{e.stopPropagation(),S||r(_)},onMouseenter:()=>{!S&&v&&v(_)},onMouseleave:()=>{!S&&y&&y(_)}},[f?f(_):W(`div`,{class:`${x}-inner`},[d(_)])]))}S.push(W(`tr`,{key:e,class:c&&c(a)},[t]))}return W(`div`,{class:`${t}-body`},[W(`table`,{class:`${t}-content`},[_&&W(`thead`,null,[W(`tr`,null,[_])]),W(`tbody`,null,[S])])])}oN.displayName=`PanelBody`,oN.inheritAttrs=!1;var sN=4;function cN(e){let t=YM(e),{prefixCls:n,viewDate:r,generateConfig:i}=t,a=`${n}-cell`,o=i.getYear(r),s=Math.floor(o/10)*10,c=Math.floor(o/100)*100,l=c+100-1,u=i.setYear(r,c-10);return W(oN,h(h({},t),{},{rowNum:sN,colNum:3,baseDate:u,getCellText:e=>{let t=i.getYear(e);return`${t}-${t+9}`},getCellClassName:e=>{let t=i.getYear(e),n=t+9;return{[`${a}-in-view`]:c<=t&&n<=l,[`${a}-selected`]:t===s}},getCellDate:(e,t)=>i.addYear(e,t*10)}),null)}cN.displayName=`DecadeBody`,cN.inheritAttrs=!1;var lN=new Map;function uN(e,t){let n;function r(){d_(e)?t():n=pl(()=>{r()})}return r(),()=>{pl.cancel(n)}}function dN(e,t,n){if(lN.get(e)&&pl.cancel(lN.get(e)),n<=0){lN.set(e,pl(()=>{e.scrollTop=t}));return}let r=(t-e.scrollTop)/n*10;lN.set(e,pl(()=>{e.scrollTop+=r,e.scrollTop!==t&&dN(e,t,n-10)}))}function fN(e,t){let{onLeftRight:n,onCtrlLeftRight:r,onUpDown:i,onPageUpDown:a,onEnter:o}=t,{which:s,ctrlKey:c,metaKey:l}=e;switch(s){case $.LEFT:if(c||l){if(r)return r(-1),!0}else if(n)return n(-1),!0;break;case $.RIGHT:if(c||l){if(r)return r(1),!0}else if(n)return n(1),!0;break;case $.UP:if(i)return i(-1),!0;break;case $.DOWN:if(i)return i(1),!0;break;case $.PAGE_UP:if(a)return a(-1),!0;break;case $.PAGE_DOWN:if(a)return a(1),!0;break;case $.ENTER:if(o)return o(),!0}return!1}function pN(e,t,n,r){let i=e;if(!i)switch(t){case`time`:i=r?`hh:mm:ss a`:`HH:mm:ss`;break;case`week`:i=`gggg-wo`;break;case`month`:i=`YYYY-MM`;break;case`quarter`:i=`YYYY-[Q]Q`;break;case`year`:i=`YYYY`;break;default:i=n?`YYYY-MM-DD HH:mm:ss`:`YYYY-MM-DD`}return i}function mN(e,t,n){let r=e===`time`?8:10,i=typeof t==`function`?t(n.getNow()).length:t.length;return Math.max(r,i)+2}var hN=null,gN=new Set;function _N(e){return!hN&&typeof window<`u`&&window.addEventListener&&(hN=e=>{[...gN].forEach(t=>{t(e)})},window.addEventListener(`mousedown`,hN)),gN.add(e),()=>{gN.delete(e),gN.size===0&&(window.removeEventListener(`mousedown`,hN),hN=null)}}function vN(e){let t=e.target;return e.composed&&t.shadowRoot&&e.composedPath?.call(e)[0]||t}var yN={year:e=>e===`month`||e===`date`?`year`:e,month:e=>e===`date`?`month`:e,quarter:e=>e===`month`||e===`date`?`quarter`:e,week:e=>e===`date`?`week`:e,time:null,date:null};function bN(e,t){return e.some(e=>e&&e.contains(t))}function xN(e){let t=YM(e),{prefixCls:n,onViewDateChange:r,generateConfig:i,viewDate:a,operationRef:o,onSelect:s,onPanelChange:c}=t,l=`${n}-decade-panel`;o.value={onKeydown:e=>fN(e,{onLeftRight:e=>{s(i.addYear(a,e*10),`key`)},onCtrlLeftRight:e=>{s(i.addYear(a,e*100),`key`)},onUpDown:e=>{s(i.addYear(a,e*10*3),`key`)},onEnter:()=>{c(`year`,a)}})};let u=e=>{let t=i.addYear(a,e*100);r(t),c(null,t)};return W(`div`,{class:l},[W(tN,h(h({},t),{},{prefixCls:n,onPrevDecades:()=>{u(-1)},onNextDecades:()=>{u(1)}}),null),W(cN,h(h({},t),{},{prefixCls:n,onSelect:e=>{s(e,`mouse`),c(`year`,e)}}),null)])}xN.displayName=`DecadePanel`,xN.inheritAttrs=!1;function SN(e,t){if(!e&&!t)return!0;if(!e||!t)return!1}function CN(e,t,n){let r=SN(t,n);return typeof r==`boolean`?r:Math.floor(e.getYear(t)/10)===Math.floor(e.getYear(n)/10)}function wN(e,t,n){let r=SN(t,n);return typeof r==`boolean`?r:e.getYear(t)===e.getYear(n)}function TN(e,t){return Math.floor(e.getMonth(t)/3)+1}function EN(e,t,n){let r=SN(t,n);return typeof r==`boolean`?r:wN(e,t,n)&&TN(e,t)===TN(e,n)}function DN(e,t,n){let r=SN(t,n);return typeof r==`boolean`?r:wN(e,t,n)&&e.getMonth(t)===e.getMonth(n)}function ON(e,t,n){let r=SN(t,n);return typeof r==`boolean`?r:e.getYear(t)===e.getYear(n)&&e.getMonth(t)===e.getMonth(n)&&e.getDate(t)===e.getDate(n)}function kN(e,t,n){let r=SN(t,n);return typeof r==`boolean`?r:e.getHour(t)===e.getHour(n)&&e.getMinute(t)===e.getMinute(n)&&e.getSecond(t)===e.getSecond(n)}function AN(e,t,n,r){let i=SN(n,r);return typeof i==`boolean`?i:e.locale.getWeek(t,n)===e.locale.getWeek(t,r)}function jN(e,t,n){return ON(e,t,n)&&kN(e,t,n)}function MN(e,t,n,r){return!t||!n||!r?!1:!ON(e,t,r)&&!ON(e,n,r)&&e.isAfter(r,t)&&e.isAfter(n,r)}function NN(e,t,n){let r=t.locale.getWeekFirstDay(e),i=t.setDate(n,1),a=t.getWeekDay(i),o=t.addDate(i,r-a);return t.getMonth(o)===t.getMonth(n)&&t.getDate(o)>1&&(o=t.addDate(o,-7)),o}function PN(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;switch(t){case`year`:return n.addYear(e,r*10);case`quarter`:case`month`:return n.addYear(e,r);default:return n.addMonth(e,r)}}function FN(e,t){let{generateConfig:n,locale:r,format:i}=t;return typeof i==`function`?i(e):n.locale.format(r.locale,e,i)}function IN(e,t){let{generateConfig:n,locale:r,formatList:i}=t;return!e||typeof i[0]==`function`?null:n.locale.parse(r.locale,e,i)}function LN(e){let{cellDate:t,mode:n,disabledDate:r,generateConfig:i}=e;if(!r)return!1;let a=(e,n,a)=>{let o=n;for(;o<=a;){let n;switch(e){case`date`:if(n=i.setDate(t,o),!r(n))return!1;break;case`month`:if(n=i.setMonth(t,o),!LN({cellDate:n,mode:`month`,generateConfig:i,disabledDate:r}))return!1;break;case`year`:if(n=i.setYear(t,o),!LN({cellDate:n,mode:`year`,generateConfig:i,disabledDate:r}))return!1}o+=1}return!0};switch(n){case`date`:case`week`:return r(t);case`month`:return a(`date`,1,i.getDate(i.getEndDate(t)));case`quarter`:{let e=Math.floor(i.getMonth(t)/3)*3;return a(`month`,e,e+2)}case`year`:return a(`month`,0,11);case`decade`:{let e=i.getYear(t),n=Math.floor(e/10)*10;return a(`year`,n,n+10-1)}}}function RN(e){let t=YM(e),{hideHeader:n}=QM();if(n.value)return null;let{prefixCls:r,generateConfig:i,locale:a,value:o,format:s}=t;return W(eN,{prefixCls:`${r}-header`},{default:()=>[o?FN(o,{locale:a,format:s,generateConfig:i}):`\xA0`]})}RN.displayName=`TimeHeader`,RN.inheritAttrs=!1;var zN=U({name:`TimeUnitColumn`,props:[`prefixCls`,`units`,`onSelect`,`value`,`active`,`hideDisabledOptions`],setup(e){let{open:t}=QM(),n=V(null),r=B(new Map),i=B();return H(()=>e.value,()=>{let i=r.value.get(e.value);i&&t.value!==!1&&dN(n.value,i.offsetTop,120)}),ni(()=>{var e;(e=i.value)==null||e.call(i)}),H(t,()=>{var a;(a=i.value)==null||a.call(i),zn(()=>{if(t.value){let t=r.value.get(e.value);t&&(i.value=uN(t,()=>{dN(n.value,t.offsetTop,0)}))}})},{immediate:!0,flush:`post`}),()=>{let{prefixCls:t,units:i,onSelect:a,value:o,active:s,hideDisabledOptions:c}=e,l=`${t}-cell`;return W(`ul`,{class:K(`${t}-column`,{[`${t}-column-active`]:s}),ref:n,style:{position:`relative`}},[i.map(e=>c&&e.disabled?null:W(`li`,{key:e.value,ref:t=>{r.value.set(e.value,t)},class:K(l,{[`${l}-disabled`]:e.disabled,[`${l}-selected`]:o===e.value}),onClick:()=>{e.disabled||a(e.value)}},[W(`div`,{class:`${l}-inner`},[e.label])]))])}}});function BN(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`0`,r=String(e);for(;r.length{(n.startsWith(`data-`)||n.startsWith(`aria-`)||n===`role`||n===`name`)&&!n.startsWith(`data-__`)&&(t[n]=e[n])}),t}function WN(e,t){return e?e[t]:null}function GN(e,t,n){let r=[WN(e,0),WN(e,1)];return r[n]=typeof t==`function`?t(r[n]):t,!r[0]&&!r[1]?null:r}function KN(e,t,n,r){let i=[];for(let a=e;a<=t;a+=n)i.push({label:BN(a,2),value:a,disabled:(r||[]).includes(a)});return i}var qN=U({compatConfig:{MODE:3},name:`TimeBody`,inheritAttrs:!1,props:[`generateConfig`,`prefixCls`,`operationRef`,`activeColumnIndex`,`value`,`showHour`,`showMinute`,`showSecond`,`use12Hours`,`hourStep`,`minuteStep`,`secondStep`,`disabledHours`,`disabledMinutes`,`disabledSeconds`,`disabledTime`,`hideDisabledOptions`,`onSelect`],setup(e){let t=G(()=>e.value?e.generateConfig.getHour(e.value):-1),n=G(()=>e.use12Hours?t.value>=12:!1),r=G(()=>e.use12Hours?t.value%12:t.value),i=G(()=>e.value?e.generateConfig.getMinute(e.value):-1),a=G(()=>e.value?e.generateConfig.getSecond(e.value):-1),o=B(e.generateConfig.getNow()),s=B(),c=B(),l=B();ei(()=>{o.value=e.generateConfig.getNow()}),ar(()=>{if(e.disabledTime){let t=e.disabledTime(o);[s.value,c.value,l.value]=[t.disabledHours,t.disabledMinutes,t.disabledSeconds]}else[s.value,c.value,l.value]=[e.disabledHours,e.disabledMinutes,e.disabledSeconds]});let u=(t,n,r,i)=>{let a=e.value||e.generateConfig.getNow(),o=Math.max(0,n),s=Math.max(0,r),c=Math.max(0,i);return a=nN(e.generateConfig,a,!e.use12Hours||!t?o:o+12,s,c),a},d=G(()=>KN(0,23,e.hourStep??1,s.value&&s.value())),f=G(()=>{if(!e.use12Hours)return[!1,!1];let t=[!0,!0];return d.value.forEach(e=>{let{disabled:n,value:r}=e;n||(r>=12?t[1]=!1:t[0]=!1)}),t}),p=G(()=>e.use12Hours?d.value.filter(n.value?e=>e.value>=12:e=>e.value<12).map(e=>{let t=e.value%12,n=t===0?`12`:BN(t,2);return g(g({},e),{label:n,value:t})}):d.value),m=G(()=>KN(0,59,e.minuteStep??1,c.value&&c.value(t.value))),h=G(()=>KN(0,59,e.secondStep??1,l.value&&l.value(t.value,i.value)));return()=>{let{prefixCls:t,operationRef:o,activeColumnIndex:s,showHour:c,showMinute:l,showSecond:d,use12Hours:g,hideDisabledOptions:_,onSelect:v}=e,y=[],b=`${t}-content`,x=`${t}-time-panel`;o.value={onUpDown:e=>{let t=y[s];if(t){let n=t.units.findIndex(e=>e.value===t.value),r=t.units.length;for(let i=1;i{v(u(n.value,e,i.value,a.value),`mouse`)}),S(l,W(zN,{key:`minute`},null),i.value,m.value,e=>{v(u(n.value,r.value,e,a.value),`mouse`)}),S(d,W(zN,{key:`second`},null),a.value,h.value,e=>{v(u(n.value,r.value,i.value,e),`mouse`)});let C=-1;return typeof n.value==`boolean`&&(C=+!!n.value),S(g===!0,W(zN,{key:`12hours`},null),C,[{label:`AM`,value:0,disabled:f.value[0]},{label:`PM`,value:1,disabled:f.value[1]}],e=>{v(u(!!e,r.value,i.value,a.value),`mouse`)}),W(`div`,{class:b},[y.map(e=>{let{node:t}=e;return t})])}}}),JN=e=>e.filter(e=>e!==!1).length;function YN(e){let t=YM(e),{generateConfig:n,format:r=`HH:mm:ss`,prefixCls:i,active:a,operationRef:o,showHour:s,showMinute:c,showSecond:l,use12Hours:u=!1,onSelect:d,value:f}=t,p=`${i}-time-panel`,m=B(),g=B(-1),_=JN([s,c,l,u]);return o.value={onKeydown:e=>fN(e,{onLeftRight:e=>{g.value=(g.value+e+_)%_},onUpDown:e=>{g.value===-1?g.value=0:m.value&&m.value.onUpDown(e)},onEnter:()=>{d(f||n.getNow(),`key`),g.value=-1}}),onBlur:()=>{g.value=-1}},W(`div`,{class:K(p,{[`${p}-active`]:a})},[W(RN,h(h({},t),{},{format:r,prefixCls:i}),null),W(qN,h(h({},t),{},{prefixCls:i,activeColumnIndex:g.value,operationRef:m}),null)])}YN.displayName=`TimePanel`,YN.inheritAttrs=!1;function XN(e){let{cellPrefixCls:t,generateConfig:n,rangedValue:r,hoverRangedValue:i,isInView:a,isSameCell:o,offsetCell:s,today:c,value:l}=e;function u(e){let u=s(e,-1),d=s(e,1),f=WN(r,0),p=WN(r,1),m=WN(i,0),h=WN(i,1),g=MN(n,m,h,e);function _(e){return o(f,e)}function v(e){return o(p,e)}let y=o(m,e),b=o(h,e),x=(g||b)&&(!a(u)||v(u)),S=(g||y)&&(!a(d)||_(d));return{[`${t}-in-view`]:a(e),[`${t}-in-range`]:MN(n,f,p,e),[`${t}-range-start`]:_(e),[`${t}-range-end`]:v(e),[`${t}-range-start-single`]:_(e)&&!p,[`${t}-range-end-single`]:v(e)&&!f,[`${t}-range-start-near-hover`]:_(e)&&(o(u,m)||MN(n,m,h,u)),[`${t}-range-end-near-hover`]:v(e)&&(o(d,h)||MN(n,m,h,d)),[`${t}-range-hover`]:g,[`${t}-range-hover-start`]:y,[`${t}-range-hover-end`]:b,[`${t}-range-hover-edge-start`]:x,[`${t}-range-hover-edge-end`]:S,[`${t}-range-hover-edge-start-near-range`]:x&&o(u,p),[`${t}-range-hover-edge-end-near-range`]:S&&o(d,f),[`${t}-today`]:o(c,e),[`${t}-selected`]:o(l,e)}}return u}var ZN=Symbol(`RangeContextProps`),QN=e=>{er(ZN,e)},$N=()=>tr(ZN,{rangedValue:B(),hoverRangedValue:B(),inRange:B(),panelPosition:B()}),eP=U({compatConfig:{MODE:3},name:`PanelContextProvider`,inheritAttrs:!1,props:{value:{type:Object,default:()=>({})}},setup(e,t){let{slots:n}=t,r={rangedValue:B(e.value.rangedValue),hoverRangedValue:B(e.value.hoverRangedValue),inRange:B(e.value.inRange),panelPosition:B(e.value.panelPosition)};return QN(r),H(()=>e.value,()=>{Object.keys(e.value).forEach(t=>{r[t]&&(r[t].value=e.value[t])})}),()=>n.default?.call(n)}});function tP(e){let t=YM(e),{prefixCls:n,generateConfig:r,prefixColumn:i,locale:a,rowCount:o,viewDate:s,value:c,dateRender:l}=t,{rangedValue:u,hoverRangedValue:d}=$N(),f=NN(a.locale,r,s),p=`${n}-cell`,m=r.locale.getWeekFirstDay(a.locale),g=r.getNow(),_=[],v=a.shortWeekDays||(r.locale.getShortWeekDays?r.locale.getShortWeekDays(a.locale):[]);i&&_.push(W(`th`,{key:`empty`,"aria-label":`empty cell`},null));for(let e=0;e<7;e+=1)_.push(W(`th`,{key:e},[v[(e+m)%7]]));let y=XN({cellPrefixCls:p,today:g,value:c,generateConfig:r,rangedValue:i?null:u.value,hoverRangedValue:i?null:d.value,isSameCell:(e,t)=>ON(r,e,t),isInView:e=>DN(r,e,s),offsetCell:(e,t)=>r.addDate(e,t)}),b=l?e=>l({current:e,today:g}):void 0;return W(oN,h(h({},t),{},{rowNum:o,colNum:7,baseDate:f,getCellNode:b,getCellText:r.getDate,getCellClassName:y,getCellDate:r.addDate,titleCell:e=>FN(e,{locale:a,format:`YYYY-MM-DD`,generateConfig:r}),headerCells:_}),null)}tP.displayName=`DateBody`,tP.inheritAttrs=!1,tP.props=[`prefixCls`,`generateConfig`,`value?`,`viewDate`,`locale`,`rowCount`,`onSelect`,`dateRender?`,`disabledDate?`,`prefixColumn?`,`rowClassName?`];function nP(e){let t=YM(e),{prefixCls:n,generateConfig:r,locale:i,viewDate:a,onNextMonth:o,onPrevMonth:s,onNextYear:c,onPrevYear:l,onYearClick:u,onMonthClick:d}=t,{hideHeader:f}=QM();if(f.value)return null;let p=`${n}-header`,m=i.shortMonths||(r.locale.getShortMonths?r.locale.getShortMonths(i.locale):[]),g=r.getMonth(a),_=W(`button`,{type:`button`,key:`year`,onClick:u,tabindex:-1,class:`${n}-year-btn`},[FN(a,{locale:i,format:i.yearFormat,generateConfig:r})]),v=W(`button`,{type:`button`,key:`month`,onClick:d,tabindex:-1,class:`${n}-month-btn`},[i.monthFormat?FN(a,{locale:i,format:i.monthFormat,generateConfig:r}):m[g]]),y=i.monthBeforeYear?[v,_]:[_,v];return W(eN,h(h({},t),{},{prefixCls:p,onSuperPrev:l,onPrev:s,onNext:o,onSuperNext:c}),{default:()=>[y]})}nP.displayName=`DateHeader`,nP.inheritAttrs=!1;var rP=6;function iP(e){let t=YM(e),{prefixCls:n,panelName:r=`date`,keyboardConfig:i,active:a,operationRef:o,generateConfig:s,value:c,viewDate:l,onViewDateChange:u,onPanelChange:d,onSelect:f}=t,p=`${n}-${r}-panel`;o.value={onKeydown:e=>fN(e,g({onLeftRight:e=>{f(s.addDate(c||l,e),`key`)},onCtrlLeftRight:e=>{f(s.addYear(c||l,e),`key`)},onUpDown:e=>{f(s.addDate(c||l,e*7),`key`)},onPageUpDown:e=>{f(s.addMonth(c||l,e),`key`)}},i))};let m=e=>{let t=s.addYear(l,e);u(t),d(null,t)},_=e=>{let t=s.addMonth(l,e);u(t),d(null,t)};return W(`div`,{class:K(p,{[`${p}-active`]:a})},[W(nP,h(h({},t),{},{prefixCls:n,value:c,viewDate:l,onPrevYear:()=>{m(-1)},onNextYear:()=>{m(1)},onPrevMonth:()=>{_(-1)},onNextMonth:()=>{_(1)},onMonthClick:()=>{d(`month`,l)},onYearClick:()=>{d(`year`,l)}}),null),W(tP,h(h({},t),{},{onSelect:e=>f(e,`mouse`),prefixCls:n,value:c,viewDate:l,rowCount:rP}),null)])}iP.displayName=`DatePanel`,iP.inheritAttrs=!1;var aP=VN(`date`,`time`);function oP(e){let t=YM(e),{prefixCls:n,operationRef:r,generateConfig:i,value:a,defaultValue:o,disabledTime:s,showTime:c,onSelect:l}=t,u=`${n}-datetime-panel`,d=B(null),f=B({}),p=B({}),m=typeof c==`object`?g({},c):{};function _(e){return aP[aP.indexOf(d.value)+e]||null}let v=e=>{p.value.onBlur&&p.value.onBlur(e),d.value=null};r.value={onKeydown:e=>{if(e.which===$.TAB){let t=_(e.shiftKey?-1:1);return d.value=t,t&&e.preventDefault(),!0}if(d.value){let t=d.value===`date`?f:p;return t.value&&t.value.onKeydown&&t.value.onKeydown(e),!0}return[$.LEFT,$.RIGHT,$.UP,$.DOWN].includes(e.which)?(d.value=`date`,!0):!1},onBlur:v,onClose:v};let y=(e,t)=>{let n=e;t===`date`&&!a&&m.defaultValue?(n=i.setHour(n,i.getHour(m.defaultValue)),n=i.setMinute(n,i.getMinute(m.defaultValue)),n=i.setSecond(n,i.getSecond(m.defaultValue))):t===`time`&&!a&&o&&(n=i.setYear(n,i.getYear(o)),n=i.setMonth(n,i.getMonth(o)),n=i.setDate(n,i.getDate(o))),l&&l(n,`mouse`)},b=s?s(a||null):{};return W(`div`,{class:K(u,{[`${u}-active`]:d.value})},[W(iP,h(h({},t),{},{operationRef:f,active:d.value===`date`,onSelect:e=>{y(rN(i,e,!a&&typeof c==`object`?c.defaultValue:null),`date`)}}),null),W(YN,h(h(h(h({},t),{},{format:void 0},m),b),{},{disabledTime:null,defaultValue:void 0,operationRef:p,active:d.value===`time`,onSelect:e=>{y(e,`time`)}}),null)])}oP.displayName=`DatetimePanel`,oP.inheritAttrs=!1;function sP(e){let t=YM(e),{prefixCls:n,generateConfig:r,locale:i,value:a}=t,o=`${n}-cell`,s=e=>W(`td`,{key:`week`,class:K(o,`${o}-week`)},[r.locale.getWeek(i.locale,e)]),c=`${n}-week-panel-row`;return W(iP,h(h({},t),{},{panelName:`week`,prefixColumn:s,rowClassName:e=>K(c,{[`${c}-selected`]:AN(r,i.locale,a,e)}),keyboardConfig:{onLeftRight:null}}),null)}sP.displayName=`WeekPanel`,sP.inheritAttrs=!1;function cP(e){let t=YM(e),{prefixCls:n,generateConfig:r,locale:i,viewDate:a,onNextYear:o,onPrevYear:s,onYearClick:c}=t,{hideHeader:l}=QM();if(l.value)return null;let u=`${n}-header`;return W(eN,h(h({},t),{},{prefixCls:u,onSuperPrev:s,onSuperNext:o}),{default:()=>[W(`button`,{type:`button`,onClick:c,class:`${n}-year-btn`},[FN(a,{locale:i,format:i.yearFormat,generateConfig:r})])]})}cP.displayName=`MonthHeader`,cP.inheritAttrs=!1;var lP=4;function uP(e){let t=YM(e),{prefixCls:n,locale:r,value:i,viewDate:a,generateConfig:o,monthCellRender:s}=t,{rangedValue:c,hoverRangedValue:l}=$N(),u=XN({cellPrefixCls:`${n}-cell`,value:i,generateConfig:o,rangedValue:c.value,hoverRangedValue:l.value,isSameCell:(e,t)=>DN(o,e,t),isInView:()=>!0,offsetCell:(e,t)=>o.addMonth(e,t)}),d=r.shortMonths||(o.locale.getShortMonths?o.locale.getShortMonths(r.locale):[]),f=o.setMonth(a,0),p=s?e=>s({current:e,locale:r}):void 0;return W(oN,h(h({},t),{},{rowNum:lP,colNum:3,baseDate:f,getCellNode:p,getCellText:e=>r.monthFormat?FN(e,{locale:r,format:r.monthFormat,generateConfig:o}):d[o.getMonth(e)],getCellClassName:u,getCellDate:o.addMonth,titleCell:e=>FN(e,{locale:r,format:`YYYY-MM`,generateConfig:o})}),null)}uP.displayName=`MonthBody`,uP.inheritAttrs=!1;function dP(e){let t=YM(e),{prefixCls:n,operationRef:r,onViewDateChange:i,generateConfig:a,value:o,viewDate:s,onPanelChange:c,onSelect:l}=t,u=`${n}-month-panel`;r.value={onKeydown:e=>fN(e,{onLeftRight:e=>{l(a.addMonth(o||s,e),`key`)},onCtrlLeftRight:e=>{l(a.addYear(o||s,e),`key`)},onUpDown:e=>{l(a.addMonth(o||s,e*3),`key`)},onEnter:()=>{c(`date`,o||s)}})};let d=e=>{let t=a.addYear(s,e);i(t),c(null,t)};return W(`div`,{class:u},[W(cP,h(h({},t),{},{prefixCls:n,onPrevYear:()=>{d(-1)},onNextYear:()=>{d(1)},onYearClick:()=>{c(`year`,s)}}),null),W(uP,h(h({},t),{},{prefixCls:n,onSelect:e=>{l(e,`mouse`),c(`date`,e)}}),null)])}dP.displayName=`MonthPanel`,dP.inheritAttrs=!1;function fP(e){let t=YM(e),{prefixCls:n,generateConfig:r,locale:i,viewDate:a,onNextYear:o,onPrevYear:s,onYearClick:c}=t,{hideHeader:l}=QM();if(l.value)return null;let u=`${n}-header`;return W(eN,h(h({},t),{},{prefixCls:u,onSuperPrev:s,onSuperNext:o}),{default:()=>[W(`button`,{type:`button`,onClick:c,class:`${n}-year-btn`},[FN(a,{locale:i,format:i.yearFormat,generateConfig:r})])]})}fP.displayName=`QuarterHeader`,fP.inheritAttrs=!1;var pP=1;function mP(e){let t=YM(e),{prefixCls:n,locale:r,value:i,viewDate:a,generateConfig:o}=t,{rangedValue:s,hoverRangedValue:c}=$N(),l=XN({cellPrefixCls:`${n}-cell`,value:i,generateConfig:o,rangedValue:s.value,hoverRangedValue:c.value,isSameCell:(e,t)=>EN(o,e,t),isInView:()=>!0,offsetCell:(e,t)=>o.addMonth(e,t*3)}),u=o.setDate(o.setMonth(a,0),1);return W(oN,h(h({},t),{},{rowNum:pP,colNum:4,baseDate:u,getCellText:e=>FN(e,{locale:r,format:r.quarterFormat||`[Q]Q`,generateConfig:o}),getCellClassName:l,getCellDate:(e,t)=>o.addMonth(e,t*3),titleCell:e=>FN(e,{locale:r,format:`YYYY-[Q]Q`,generateConfig:o})}),null)}mP.displayName=`QuarterBody`,mP.inheritAttrs=!1;function hP(e){let t=YM(e),{prefixCls:n,operationRef:r,onViewDateChange:i,generateConfig:a,value:o,viewDate:s,onPanelChange:c,onSelect:l}=t,u=`${n}-quarter-panel`;r.value={onKeydown:e=>fN(e,{onLeftRight:e=>{l(a.addMonth(o||s,e*3),`key`)},onCtrlLeftRight:e=>{l(a.addYear(o||s,e),`key`)},onUpDown:e=>{l(a.addYear(o||s,e),`key`)}})};let d=e=>{let t=a.addYear(s,e);i(t),c(null,t)};return W(`div`,{class:u},[W(fP,h(h({},t),{},{prefixCls:n,onPrevYear:()=>{d(-1)},onNextYear:()=>{d(1)},onYearClick:()=>{c(`year`,s)}}),null),W(mP,h(h({},t),{},{prefixCls:n,onSelect:e=>{l(e,`mouse`)}}),null)])}hP.displayName=`QuarterPanel`,hP.inheritAttrs=!1;function gP(e){let t=YM(e),{prefixCls:n,generateConfig:r,viewDate:i,onPrevDecade:a,onNextDecade:o,onDecadeClick:s}=t,{hideHeader:c}=QM();if(c.value)return null;let l=`${n}-header`,u=r.getYear(i),d=Math.floor(u/10)*10,f=d+10-1;return W(eN,h(h({},t),{},{prefixCls:l,onSuperPrev:a,onSuperNext:o}),{default:()=>[W(`button`,{type:`button`,onClick:s,class:`${n}-decade-btn`},[d,Qa(`-`),f])]})}gP.displayName=`YearHeader`,gP.inheritAttrs=!1;var _P=4;function vP(e){let t=YM(e),{prefixCls:n,value:r,viewDate:i,locale:a,generateConfig:o}=t,{rangedValue:s,hoverRangedValue:c}=$N(),l=`${n}-cell`,u=o.getYear(i),d=Math.floor(u/10)*10,f=d+10-1,p=o.setYear(i,d-1),m=XN({cellPrefixCls:l,value:r,generateConfig:o,rangedValue:s.value,hoverRangedValue:c.value,isSameCell:(e,t)=>wN(o,e,t),isInView:e=>{let t=o.getYear(e);return d<=t&&t<=f},offsetCell:(e,t)=>o.addYear(e,t)});return W(oN,h(h({},t),{},{rowNum:_P,colNum:3,baseDate:p,getCellText:o.getYear,getCellClassName:m,getCellDate:o.addYear,titleCell:e=>FN(e,{locale:a,format:`YYYY`,generateConfig:o})}),null)}vP.displayName=`YearBody`,vP.inheritAttrs=!1;function yP(e){let t=YM(e),{prefixCls:n,operationRef:r,onViewDateChange:i,generateConfig:a,value:o,viewDate:s,sourceMode:c,onSelect:l,onPanelChange:u}=t,d=`${n}-year-panel`;r.value={onKeydown:e=>fN(e,{onLeftRight:e=>{l(a.addYear(o||s,e),`key`)},onCtrlLeftRight:e=>{l(a.addYear(o||s,e*10),`key`)},onUpDown:e=>{l(a.addYear(o||s,e*3),`key`)},onEnter:()=>{u(c===`date`?`date`:`month`,o||s)}})};let f=e=>{let t=a.addYear(s,e*10);i(t),u(null,t)};return W(`div`,{class:d},[W(gP,h(h({},t),{},{prefixCls:n,onPrevDecade:()=>{f(-1)},onNextDecade:()=>{f(1)},onDecadeClick:()=>{u(`decade`,s)}}),null),W(vP,h(h({},t),{},{prefixCls:n,onSelect:e=>{u(c===`date`?`date`:`month`,e),l(e,`mouse`)}}),null)])}yP.displayName=`YearPanel`,yP.inheritAttrs=!1;function bP(e,t,n){return n?W(`div`,{class:`${e}-footer-extra`},[n(t)]):null}function xP(e){let{prefixCls:t,components:n={},needConfirmButton:r,onNow:i,onOk:a,okDisabled:o,showNow:s,locale:c}=e,l,u;if(r){let e=n.button||`button`;i&&s!==!1&&(l=W(`li`,{class:`${t}-now`},[W(`a`,{class:`${t}-now-btn`,onClick:i},[c.now])])),u=r&&W(`li`,{class:`${t}-ok`},[W(e,{disabled:o,onClick:e=>{e.stopPropagation(),a&&a()}},{default:()=>[c.ok]})])}return!l&&!u?null:W(`ul`,{class:`${t}-ranges`},[l,u])}function SP(){return U({name:`PickerPanel`,inheritAttrs:!1,props:{prefixCls:String,locale:Object,generateConfig:Object,value:Object,defaultValue:Object,pickerValue:Object,defaultPickerValue:Object,disabledDate:Function,mode:String,picker:{type:String,default:`date`},tabindex:{type:[Number,String],default:0},showNow:{type:Boolean,default:void 0},showTime:[Boolean,Object],showToday:Boolean,renderExtraFooter:Function,dateRender:Function,hideHeader:{type:Boolean,default:void 0},onSelect:Function,onChange:Function,onPanelChange:Function,onMousedown:Function,onPickerValueChange:Function,onOk:Function,components:Object,direction:String,hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},secondStep:{type:Number,default:1}},setup(e,t){let{attrs:n}=t,r=G(()=>e.picker===`date`&&!!e.showTime||e.picker===`time`),i=G(()=>24%e.hourStep==0),a=G(()=>60%e.minuteStep==0),o=G(()=>60%e.secondStep==0),s=QM(),{operationRef:c,onSelect:l,hideRanges:u,defaultOpenValue:d}=s,{inRange:f,panelPosition:p,rangedValue:m,hoverRangedValue:_}=$N(),v=B({}),[y,b]=gS(null,{value:vn(e,`value`),defaultValue:e.defaultValue,postState:t=>!t&&d?.value&&e.picker===`time`?d.value:t}),[x,S]=gS(null,{value:vn(e,`pickerValue`),defaultValue:e.defaultPickerValue||y.value,postState:t=>{let{generateConfig:n,showTime:r,defaultValue:i}=e,a=n.getNow();return t?!y.value&&e.showTime?typeof r==`object`?rN(n,Array.isArray(t)?t[0]:t,r.defaultValue||a):i?rN(n,Array.isArray(t)?t[0]:t,i):rN(n,Array.isArray(t)?t[0]:t,a):t:a}}),C=t=>{S(t),e.onPickerValueChange&&e.onPickerValueChange(t)},w=t=>{let n=yN[e.picker];return n?n(t):t},[T,E]=gS(()=>e.picker===`time`?`time`:w(`date`),{value:vn(e,`mode`)});H(()=>e.picker,()=>{E(e.picker)});let D=B(T.value),O=e=>{D.value=e},k=(t,n)=>{let{onPanelChange:r,generateConfig:i}=e,a=w(t||T.value);O(T.value),E(a),r&&(T.value!==a||jN(i,x.value,x.value))&&r(n,a)},A=function(t,n){let r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],{picker:i,generateConfig:a,onSelect:o,onChange:s,disabledDate:c}=e;(T.value===i||r)&&(b(t),o&&o(t),l&&l(t,n),s&&!jN(a,t,y.value)&&!c?.(t)&&s(t))},j=e=>v.value&&v.value.onKeydown?([$.LEFT,$.RIGHT,$.UP,$.DOWN,$.PAGE_UP,$.PAGE_DOWN,$.ENTER].includes(e.which)&&e.preventDefault(),v.value.onKeydown(e)):!1,M=e=>{v.value&&v.value.onBlur&&v.value.onBlur(e)},N=()=>{let{generateConfig:t,hourStep:n,minuteStep:r,secondStep:s}=e,c=t.getNow(),l=iN(t.getHour(c),t.getMinute(c),t.getSecond(c),i.value?n:1,a.value?r:1,o.value?s:1),u=nN(t,c,l[0],l[1],l[2]);A(u,`submit`)},P=G(()=>{let{prefixCls:t,direction:n}=e;return K(`${t}-panel`,{[`${t}-panel-has-range`]:m&&m.value&&m.value[0]&&m.value[1],[`${t}-panel-has-range-hover`]:_&&_.value&&_.value[0]&&_.value[1],[`${t}-panel-rtl`]:n===`rtl`})});return ZM(g(g({},s),{mode:T,hideHeader:G(()=>e.hideHeader===void 0?s.hideHeader?.value:e.hideHeader),hidePrevBtn:G(()=>f.value&&p.value===`right`),hideNextBtn:G(()=>f.value&&p.value===`left`)})),H(()=>e.value,()=>{e.value&&S(e.value)}),()=>{let{prefixCls:t=`ant-picker`,locale:i,generateConfig:a,disabledDate:o,picker:s=`date`,tabindex:l=0,showNow:d,showTime:f,showToday:m,renderExtraFooter:_,onMousedown:b,onOk:S,components:w}=e;c&&p.value!==`right`&&(c.value={onKeydown:j,onClose:()=>{v.value&&v.value.onClose&&v.value.onClose()}});let E,O=g(g(g({},n),e),{operationRef:v,prefixCls:t,viewDate:x.value,value:y.value,onViewDateChange:C,sourceMode:D.value,onPanelChange:k,disabledDate:o});switch(delete O.onChange,delete O.onSelect,T.value){case`decade`:E=W(xN,h(h({},O),{},{onSelect:(e,t)=>{C(e),A(e,t)}}),null);break;case`year`:E=W(yP,h(h({},O),{},{onSelect:(e,t)=>{C(e),A(e,t)}}),null);break;case`month`:E=W(dP,h(h({},O),{},{onSelect:(e,t)=>{C(e),A(e,t)}}),null);break;case`quarter`:E=W(hP,h(h({},O),{},{onSelect:(e,t)=>{C(e),A(e,t)}}),null);break;case`week`:E=W(sP,h(h({},O),{},{onSelect:(e,t)=>{C(e),A(e,t)}}),null);break;case`time`:delete O.showTime,E=W(YN,h(h(h({},O),typeof f==`object`?f:null),{},{onSelect:(e,t)=>{C(e),A(e,t)}}),null);break;default:E=W(f?oP:iP,h(h({},O),{},{onSelect:(e,t)=>{C(e),A(e,t)}}),null)}let F,I;u?.value||(F=bP(t,T.value,_),I=xP({prefixCls:t,components:w,needConfirmButton:r.value,okDisabled:!y.value||o&&o(y.value),locale:i,showNow:d,onNow:r.value&&N,onOk:()=>{y.value&&(A(y.value,`submit`,!0),S&&S(y.value))}}));let L;if(m&&T.value===`date`&&s===`date`&&!f){let e=a.getNow(),n=`${t}-today-btn`,r=o&&o(e);L=W(`a`,{class:K(n,r&&`${n}-disabled`),"aria-disabled":r,onClick:()=>{r||A(e,`mouse`,!0)}},[i.today])}return W(`div`,{tabindex:l,class:K(P.value,n.class),style:n.style,onKeydown:j,onBlur:M,onMousedown:b},[E,F||I||L?W(`div`,{class:`${t}-footer`},[F,I,L]):null])}}})}var CP=SP(),wP=(e=>W(CP,e)),TP={bottomLeft:{points:[`tl`,`bl`],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomRight:{points:[`tr`,`br`],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:[`bl`,`tl`],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topRight:{points:[`br`,`tr`],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}};function EP(e,t){let{slots:n}=t,{prefixCls:r,popupStyle:i,visible:a,dropdownClassName:o,dropdownAlign:s,transitionName:c,getPopupContainer:l,range:u,popupPlacement:d,direction:f}=YM(e),p=`${r}-dropdown`;return W(Ob,{showAction:[],hideAction:[],popupPlacement:d===void 0?f===`rtl`?`bottomRight`:`bottomLeft`:d,builtinPlacements:TP,prefixCls:p,popupTransitionName:c,popupAlign:s,popupVisible:a,popupClassName:K(o,{[`${p}-range`]:u,[`${p}-rtl`]:f===`rtl`}),popupStyle:i,getPopupContainer:l},{default:n.default,popup:n.popupElement})}var DP=U({name:`PresetPanel`,props:{prefixCls:String,presets:{type:Array,default:()=>[]},onClick:Function,onHover:Function},setup(e){return()=>e.presets.length?W(`div`,{class:`${e.prefixCls}-presets`},[W(`ul`,null,[e.presets.map((t,n)=>{let{label:r,value:i}=t;return W(`li`,{key:n,onClick:t=>{t.stopPropagation(),e.onClick(i)},onMouseenter:()=>{var t;(t=e.onHover)==null||t.call(e,i)},onMouseleave:()=>{var t;(t=e.onHover)==null||t.call(e,null)}},[r])})])]):null}});function OP(e){let{open:t,value:n,isClickOutside:r,triggerOpen:i,forwardKeydown:a,onKeydown:o,blurToCancel:s,onSubmit:c,onCancel:l,onFocus:u,onBlur:d}=e,f=V(!1),p=V(!1),m=V(!1),h=V(!1),g=V(!1),_=G(()=>({onMousedown:()=>{f.value=!0,i(!0)},onKeydown:e=>{if(o(e,()=>{g.value=!0}),!g.value){switch(e.which){case $.ENTER:t.value?c()!==!1&&(f.value=!0):i(!0),e.preventDefault();return;case $.TAB:f.value&&t.value&&!e.shiftKey?(f.value=!1,e.preventDefault()):!f.value&&t.value&&!a(e)&&e.shiftKey&&(f.value=!0,e.preventDefault());return;case $.ESC:f.value=!0,l();return}!t.value&&![$.SHIFT].includes(e.which)?i(!0):f.value||a(e)}},onFocus:e=>{f.value=!0,p.value=!0,u&&u(e)},onBlur:e=>{m.value||!r(document.activeElement)?m.value=!1:(s.value?setTimeout(()=>{let{activeElement:e}=document;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;r(e)&&l()},0):t.value&&(i(!1),h.value&&c()),p.value=!1,d&&d(e))}}));H(t,()=>{h.value=!1}),H(n,()=>{h.value=!0});let v=V();return $r(()=>{v.value=_N(e=>{let n=vN(e);if(t.value){let e=r(n);e?(!p.value||e)&&i(!1):(m.value=!0,pl(()=>{m.value=!1}))}})}),ni(()=>{v.value&&v.value()}),[_,{focused:p,typing:f}]}function kP(e){let{valueTexts:t,onTextChange:n}=e,r=B(``);function i(e){r.value=e,n(e)}function a(){r.value=t.value[0]}return H(()=>[...t.value],function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];e.join(`||`)!==n.join(`||`)&&t.value.every(e=>e!==r.value)&&a()},{immediate:!0}),[r,i,a]}function AP(e,t){let{formatList:n,generateConfig:r,locale:i}=t,a=Xx(()=>{if(!e.value)return[[``],``];let t=``,a=[];for(let o=0;ot[0]!==e[0]||!Hj(t[1],e[1]));return[G(()=>a.value[0]),G(()=>a.value[1])]}function jP(e,t){let{formatList:n,generateConfig:r,locale:i}=t,a=B(null),o;function s(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];pl.cancel(o),t?a.value=e:o=pl(()=>{a.value=e})}let[,c]=AP(a,{formatList:n,generateConfig:r,locale:i});function l(e){s(e)}function u(){s(null,arguments.length>0&&arguments[0]!==void 0&&arguments[0])}return H(e,()=>{u(!0)}),ni(()=>{pl.cancel(o)}),[c,l,u]}function MP(e,t){return G(()=>e?.value?e.value:t?.value?(Fu(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.keys(t.value).map(e=>{let n=t.value[e];return{label:e,value:typeof n==`function`?n():n}})):[])}function NP(){return U({name:`Picker`,inheritAttrs:!1,props:`prefixCls.id.tabindex.dropdownClassName.dropdownAlign.popupStyle.transitionName.generateConfig.locale.inputReadOnly.allowClear.autofocus.showTime.showNow.showHour.showMinute.showSecond.picker.format.use12Hours.value.defaultValue.open.defaultOpen.defaultOpenValue.suffixIcon.presets.clearIcon.disabled.disabledDate.placeholder.getPopupContainer.panelRender.inputRender.onChange.onOpenChange.onPanelChange.onFocus.onBlur.onMousedown.onMouseup.onMouseenter.onMouseleave.onContextmenu.onClick.onKeydown.onSelect.direction.autocomplete.showToday.renderExtraFooter.dateRender.minuteStep.hourStep.secondStep.hideDisabledOptions`.split(`.`),setup(e,t){let{attrs:n,expose:r}=t,i=B(null),a=MP(G(()=>e.presets)),o=G(()=>e.picker??`date`),s=G(()=>o.value===`date`&&!!e.showTime||o.value===`time`),c=G(()=>HN(pN(e.format,o.value,e.showTime,e.use12Hours))),l=B(null),u=B(null),d=B(null),[f,p]=gS(null,{value:vn(e,`value`),defaultValue:e.defaultValue}),m=B(f.value),_=e=>{m.value=e},v=B(null),[y,b]=gS(!1,{value:vn(e,`open`),defaultValue:e.defaultOpen,postState:t=>!e.disabled&&t,onChange:t=>{e.onOpenChange&&e.onOpenChange(t),!t&&v.value&&v.value.onClose&&v.value.onClose()}}),[x,S]=AP(m,{formatList:c,generateConfig:vn(e,`generateConfig`),locale:vn(e,`locale`)}),[C,w,T]=kP({valueTexts:x,onTextChange:t=>{let n=IN(t,{locale:e.locale,formatList:c.value,generateConfig:e.generateConfig});n&&(!e.disabledDate||!e.disabledDate(n))&&_(n)}}),E=t=>{let{onChange:n,generateConfig:r,locale:i}=e;_(t),p(t),n&&!jN(r,f.value,t)&&n(t,t?FN(t,{generateConfig:r,locale:i,format:c.value[0]}):``)},D=t=>{e.disabled&&t||b(t)},O=e=>y.value&&v.value&&v.value.onKeydown?v.value.onKeydown(e):!1,k=function(){e.onMouseup&&e.onMouseup(...arguments),i.value&&(i.value.focus(),D(!0))},[A,{focused:j,typing:M}]=OP({blurToCancel:s,open:y,value:C,triggerOpen:D,forwardKeydown:O,isClickOutside:e=>!bN([l.value,u.value,d.value],e),onSubmit:()=>!m.value||e.disabledDate&&e.disabledDate(m.value)?!1:(E(m.value),D(!1),T(),!0),onCancel:()=>{D(!1),_(f.value),T()},onKeydown:(t,n)=>{var r;(r=e.onKeydown)==null||r.call(e,t,n)},onFocus:t=>{var n;(n=e.onFocus)==null||n.call(e,t)},onBlur:t=>{var n;(n=e.onBlur)==null||n.call(e,t)}});H([y,x],()=>{y.value||(_(f.value),!x.value.length||x.value[0]===``?w(``):S.value!==C.value&&T())}),H(o,()=>{y.value||T()}),H(f,()=>{_(f.value)});let[N,P,F]=jP(C,{formatList:c,generateConfig:vn(e,`generateConfig`),locale:vn(e,`locale`)});return ZM({operationRef:v,hideHeader:G(()=>o.value===`time`),onSelect:(e,t)=>{(t===`submit`||t!==`key`&&!s.value)&&(E(e),D(!1))},open:y,defaultOpenValue:vn(e,`defaultOpenValue`),onDateMouseenter:P,onDateMouseleave:F}),r({focus:()=>{i.value&&i.value.focus()},blur:()=>{i.value&&i.value.blur()}}),()=>{let{prefixCls:t=`rc-picker`,id:r,tabindex:o,dropdownClassName:s,dropdownAlign:p,popupStyle:v,transitionName:b,generateConfig:x,locale:S,inputReadOnly:T,allowClear:O,autofocus:P,picker:I=`date`,defaultOpenValue:L,suffixIcon:R,clearIcon:ee,disabled:te,placeholder:ne,getPopupContainer:z,panelRender:re,onMousedown:ie,onMouseenter:ae,onMouseleave:oe,onContextmenu:se,onClick:ce,onSelect:le,direction:ue,autocomplete:de=`off`}=e,fe=g(g(g({},e),n),{class:K({[`${t}-panel-focused`]:!M.value}),style:void 0,pickerValue:void 0,onPickerValueChange:void 0,onChange:null}),pe=W(`div`,{class:`${t}-panel-layout`},[W(DP,{prefixCls:t,presets:a.value,onClick:e=>{E(e),D(!1)}},null),W(wP,h(h({},fe),{},{generateConfig:x,value:m.value,locale:S,tabindex:-1,onSelect:e=>{le?.(e),_(e)},direction:ue,onPanelChange:(t,n)=>{let{onPanelChange:r}=e;F(!0),r?.(t,n)}}),null)]);re&&(pe=re(pe));let me=W(`div`,{class:`${t}-panel-container`,ref:l,onMousedown:e=>{e.preventDefault()}},[pe]),he;R&&(he=W(`span`,{class:`${t}-suffix`},[R]));let ge;O&&f.value&&!te&&(ge=W(`span`,{onMousedown:e=>{e.preventDefault(),e.stopPropagation()},onMouseup:e=>{e.preventDefault(),e.stopPropagation(),E(null),D(!1)},class:`${t}-clear`,role:`button`},[ee||W(`span`,{class:`${t}-clear-btn`},null)]));let _e=g(g(g(g({id:r,tabindex:o,disabled:te,readonly:T||typeof c.value[0]==`function`||!M.value,value:N.value||C.value,onInput:e=>{w(e.target.value)},autofocus:P,placeholder:ne,ref:i,title:C.value},A.value),{size:mN(I,c.value[0],x)}),UN(e)),{autocomplete:de}),ve=e.inputRender?e.inputRender(_e):W(`input`,_e,null),ye=ue===`rtl`?`bottomRight`:`bottomLeft`;return W(`div`,{ref:d,class:K(t,n.class,{[`${t}-disabled`]:te,[`${t}-focused`]:j.value,[`${t}-rtl`]:ue===`rtl`}),style:n.style,onMousedown:ie,onMouseup:k,onMouseenter:ae,onMouseleave:oe,onContextmenu:se,onClick:ce},[W(`div`,{class:K(`${t}-input`,{[`${t}-input-placeholder`]:!!N.value}),ref:u},[ve,he,ge]),W(EP,{visible:y.value,popupStyle:v,prefixCls:t,dropdownClassName:s,dropdownAlign:p,getPopupContainer:z,transitionName:b,popupPlacement:ye,direction:ue},{default:()=>[W(`div`,{style:{pointerEvents:`none`,position:`absolute`,top:0,bottom:0,left:0,right:0}},null)],popupElement:()=>me})])}}})}var PP=NP();function FP(e,t){let{picker:n,locale:r,selectedValue:i,disabledDate:a,disabled:o,generateConfig:s}=e,c=G(()=>WN(i.value,0)),l=G(()=>WN(i.value,1));function u(e){return s.value.locale.getWeekFirstDate(r.value.locale,e)}function d(e){let t=s.value.getYear(e),n=s.value.getMonth(e);return t*100+n}function f(e){let t=s.value.getYear(e),n=TN(s.value,e);return t*10+n}return[e=>{if(a&&(a?.value)?.call(a,e))return!0;if(o[1]&&l)return!ON(s.value,e,l.value)&&s.value.isAfter(e,l.value);if(t.value[1]&&l.value)switch(n.value){case`quarter`:return f(e)>f(l.value);case`month`:return d(e)>d(l.value);case`week`:return u(e)>u(l.value);default:return!ON(s.value,e,l.value)&&s.value.isAfter(e,l.value)}return!1},e=>{if(a.value?.call(a,e))return!0;if(o[0]&&c)return!ON(s.value,e,l.value)&&s.value.isAfter(c.value,e);if(t.value[0]&&c.value)switch(n.value){case`quarter`:return f(e)CN(r,e,t));case`quarter`:case`month`:return a((e,t)=>wN(r,e,t));default:return a((e,t)=>DN(r,e,t))}}function LP(e,t,n,r){let i=WN(e,0),a=WN(e,1);if(t===0)return i;if(i&&a)switch(IP(i,a,n,r)){case`same`:return i;case`closing`:return i;default:return PN(a,n,r,-1)}return i}function RP(e){let{values:t,picker:n,defaultDates:r,generateConfig:i}=e,a=B([WN(r,0),WN(r,1)]),o=B(null),s=G(()=>WN(t.value,0)),c=G(()=>WN(t.value,1)),l=e=>a.value[e]?a.value[e]:WN(o.value,e)||LP(t.value,e,n.value,i.value)||s.value||c.value||i.value.getNow(),u=B(null),d=B(null);ar(()=>{u.value=l(0),d.value=l(1)});function f(e,n){if(e){let r=GN(o.value,e,n);a.value=GN(a.value,null,n)||[null,null];let i=(n+1)%2;WN(t.value,i)||(r=GN(r,e,i)),o.value=r}else(s.value||c.value)&&(o.value=null)}return[u,d,f]}function zP(e){return Le()?(Re(e),!0):!1}function BP(e){return typeof e==`function`?e():fn(e)}function VP(e){let t=BP(e);return t?.$el??t}function HP(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;fo()?$r(e):t?e():zn(e)}function UP(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=V(),r=()=>n.value=!!e();return r(),HP(r,t),n}var WP=typeof window<`u`;WP&&(window==null?void 0:window.navigator)?.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);var GP=WP?window:void 0;WP&&window.document,WP&&window.navigator,WP&&window.location;var KP=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i2&&arguments[2]!==void 0?arguments[2]:{},{window:r=GP}=n,i=KP(n,[`window`]),a,o=UP(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=H(()=>VP(e),e=>{s(),o.value&&r&&e&&(a=new ResizeObserver(t),a.observe(e,i))},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return zP(l),{isSupported:o,stop:l}}function JP(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{width:0,height:0},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{box:r=`content-box`}=n,i=V(t.width),a=V(t.height);return qP(e,e=>{let[t]=e,n=r===`border-box`?t.borderBoxSize:r===`content-box`?t.contentBoxSize:t.devicePixelContentBoxSize;n?(i.value=n.reduce((e,t)=>{let{inlineSize:n}=t;return e+n},0),a.value=n.reduce((e,t)=>{let{blockSize:n}=t;return e+n},0)):(i.value=t.contentRect.width,a.value=t.contentRect.height)},n),H(()=>VP(e),e=>{i.value=e?t.width:0,a.value=e?t.height:0}),{width:i,height:a}}function YP(e,t){return e&&e[0]&&e[1]&&t.isAfter(e[0],e[1])?[e[1],e[0]]:e}function XP(e,t,n,r){return!!(e||r&&r[t]||n[(t+1)%2])}function ZP(){return U({name:`RangerPicker`,inheritAttrs:!1,props:`prefixCls.id.popupStyle.dropdownClassName.transitionName.dropdownAlign.getPopupContainer.generateConfig.locale.placeholder.autofocus.disabled.format.picker.showTime.showNow.showHour.showMinute.showSecond.use12Hours.separator.value.defaultValue.defaultPickerValue.open.defaultOpen.disabledDate.disabledTime.dateRender.panelRender.ranges.allowEmpty.allowClear.suffixIcon.clearIcon.pickerRef.inputReadOnly.mode.renderExtraFooter.onChange.onOpenChange.onPanelChange.onCalendarChange.onFocus.onBlur.onMousedown.onMouseup.onMouseenter.onMouseleave.onClick.onOk.onKeydown.components.order.direction.activePickerIndex.autocomplete.minuteStep.hourStep.secondStep.hideDisabledOptions.disabledMinutes.presets.prevIcon.nextIcon.superPrevIcon.superNextIcon`.split(`.`),setup(e,t){let{attrs:n,expose:r}=t,i=G(()=>e.picker===`date`&&!!e.showTime||e.picker===`time`),a=MP(G(()=>e.presets),G(()=>e.ranges)),o=B({}),s=B(null),c=B(null),l=B(null),u=B(null),d=B(null),f=B(null),p=B(null),m=B(null),_=G(()=>HN(pN(e.format,e.picker,e.showTime,e.use12Hours))),[v,y]=gS(0,{value:vn(e,`activePickerIndex`)}),b=B(null),x=G(()=>{let{disabled:t}=e;return Array.isArray(t)?t:[t||!1,t||!1]}),[S,C]=gS(null,{value:vn(e,`value`),defaultValue:e.defaultValue,postState:t=>e.picker===`time`&&!e.order?t:YP(t,e.generateConfig)}),[w,T,E]=RP({values:S,picker:vn(e,`picker`),defaultDates:e.defaultPickerValue,generateConfig:vn(e,`generateConfig`)}),[D,O]=gS(S.value,{postState:t=>{let n=t;if(x.value[0]&&x.value[1])return n;for(let t=0;t<2;t+=1)x.value[t]&&!WN(n,t)&&!WN(e.allowEmpty,t)&&(n=GN(n,e.generateConfig.getNow(),t));return n}}),[k,A]=gS([e.picker,e.picker],{value:vn(e,`mode`)});H(()=>e.picker,()=>{A([e.picker,e.picker])});let j=(t,n)=>{var r;A(t),(r=e.onPanelChange)==null||r.call(e,n,t)},[M,N]=FP({picker:vn(e,`picker`),selectedValue:D,locale:vn(e,`locale`),disabled:x,disabledDate:vn(e,`disabledDate`),generateConfig:vn(e,`generateConfig`)},o),[P,F]=gS(!1,{value:vn(e,`open`),defaultValue:e.defaultOpen,postState:e=>!x.value[v.value]&&e,onChange:t=>{var n;(n=e.onOpenChange)==null||n.call(e,t),!t&&b.value&&b.value.onClose&&b.value.onClose()}}),I=G(()=>P.value&&v.value===0),L=G(()=>P.value&&v.value===1),R=B(0),ee=B(0),te=B(0),{width:ne}=JP(s);H([P,ne],()=>{!P.value&&s.value&&(te.value=ne.value)});let{width:z}=JP(c),{width:re}=JP(m),{width:ie}=JP(l),{width:ae}=JP(d);H([v,P,z,re,ie,ae,()=>e.direction],()=>{ee.value=0,v.value?l.value&&d.value&&(ee.value=ie.value+ae.value,z.value&&re.value&&ee.value>z.value-re.value-(e.direction===`rtl`||m.value.offsetLeft>ee.value?0:m.value.offsetLeft)&&(R.value=ee.value)):v.value===0&&(R.value=0)},{immediate:!0});let oe=B();function se(e,t){if(e)clearTimeout(oe.value),o.value[t]=!0,y(t),F(e),P.value||E(null,t);else if(v.value===t){F(e);let t=o.value;oe.value=setTimeout(()=>{t===o.value&&(o.value={})})}}function ce(e){se(!0,e),setTimeout(()=>{let t=[f,p][e];t.value&&t.value.focus()},0)}function le(t,n){let r=t,i=WN(r,0),a=WN(r,1),{generateConfig:s,locale:c,picker:l,order:u,onCalendarChange:d,allowEmpty:f,onChange:p,showTime:m}=e;i&&a&&s.isAfter(i,a)&&(l===`week`&&!AN(s,c.locale,i,a)||l===`quarter`&&!EN(s,i,a)||l!==`week`&&l!==`quarter`&&l!==`time`&&!(m?jN(s,i,a):ON(s,i,a))?(n===0?(r=[i,null],a=null):(i=null,r=[null,a]),o.value={[n]:!0}):(l!==`time`||u!==!1)&&(r=YP(r,s))),O(r);let h=r&&r[0]?FN(r[0],{generateConfig:s,locale:c,format:_.value[0]}):``,g=r&&r[1]?FN(r[1],{generateConfig:s,locale:c,format:_.value[0]}):``;d&&d(r,[h,g],{range:n===0?`start`:`end`});let y=XP(i,0,x.value,f),b=XP(a,1,x.value,f);(r===null||y&&b)&&(C(r),p&&(!jN(s,WN(S.value,0),i)||!jN(s,WN(S.value,1),a))&&p(r,[h,g]));let w=null;n===0&&!x.value[1]?w=1:n===1&&!x.value[0]&&(w=0),w!==null&&w!==v.value&&(!o.value[w]||!WN(r,w))&&WN(r,n)?ce(w):se(!1,n)}let ue=e=>P&&b.value&&b.value.onKeydown?b.value.onKeydown(e):!1,de={formatList:_,generateConfig:vn(e,`generateConfig`),locale:vn(e,`locale`)},[fe,pe]=AP(G(()=>WN(D.value,0)),de),[me,he]=AP(G(()=>WN(D.value,1)),de),ge=(t,n)=>{let r=IN(t,{locale:e.locale,formatList:_.value,generateConfig:e.generateConfig});r&&!(n===0?M:N)(r)&&(O(GN(D.value,r,n)),E(r,n))},[_e,ve,ye]=kP({valueTexts:fe,onTextChange:e=>ge(e,0)}),[be,xe,Se]=kP({valueTexts:me,onTextChange:e=>ge(e,1)}),[Ce,we]=_S(null),[Te,Ee]=_S(null),[De,Oe,ke]=jP(_e,de),[Ae,je,Me]=jP(be,de),Ne=e=>{Ee(GN(D.value,e,v.value)),v.value===0?Oe(e):je(e)},Pe=()=>{Ee(GN(D.value,null,v.value)),v.value===0?ke():Me()},Fe=(t,n)=>({forwardKeydown:ue,onBlur:t=>{var n;(n=e.onBlur)==null||n.call(e,t)},isClickOutside:e=>!bN([c.value,l.value,u.value,s.value],e),onFocus:n=>{var r;y(t),(r=e.onFocus)==null||r.call(e,n)},triggerOpen:e=>{se(e,t)},onSubmit:()=>{if(!D.value||e.disabledDate&&e.disabledDate(D.value[t]))return!1;le(D.value,t),n()},onCancel:()=>{se(!1,t),O(S.value),n()}}),[Ie,{focused:Le,typing:Re}]=OP(g(g({},Fe(0,ye)),{blurToCancel:i,open:I,value:_e,onKeydown:(t,n)=>{var r;(r=e.onKeydown)==null||r.call(e,t,n)}})),[ze,{focused:Be,typing:Ve}]=OP(g(g({},Fe(1,Se)),{blurToCancel:i,open:L,value:be,onKeydown:(t,n)=>{var r;(r=e.onKeydown)==null||r.call(e,t,n)}})),He=t=>{var n;(n=e.onClick)==null||n.call(e,t),!P.value&&!f.value.contains(t.target)&&!p.value.contains(t.target)&&(x.value[0]?x.value[1]||ce(1):ce(0))},Ue=t=>{var n;(n=e.onMousedown)==null||n.call(e,t),P.value&&(Le.value||Be.value)&&!f.value.contains(t.target)&&!p.value.contains(t.target)&&t.preventDefault()},We=G(()=>S.value?.[0]?FN(S.value[0],{locale:e.locale,format:`YYYYMMDDHHmmss`,generateConfig:e.generateConfig}):``),Ge=G(()=>S.value?.[1]?FN(S.value[1],{locale:e.locale,format:`YYYYMMDDHHmmss`,generateConfig:e.generateConfig}):``);H([P,fe,me],()=>{P.value||(O(S.value),!fe.value.length||fe.value[0]===``?ve(``):pe.value!==_e.value&&ye(),!me.value.length||me.value[0]===``?xe(``):he.value!==be.value&&Se())}),H([We,Ge],()=>{O(S.value)}),r({focus:()=>{f.value&&f.value.focus()},blur:()=>{f.value&&f.value.blur(),p.value&&p.value.blur()}});let Ke=G(()=>P.value&&Te.value&&Te.value[0]&&Te.value[1]&&e.generateConfig.isAfter(Te.value[1],Te.value[0])?Te.value:null);function qe(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{generateConfig:r,showTime:i,dateRender:a,direction:o,disabledTime:s,prefixCls:c,locale:l}=e,u=i;if(i&&typeof i==`object`&&i.defaultValue){let e=i.defaultValue;u=g(g({},i),{defaultValue:WN(e,v.value)||void 0})}let d=null;return a&&(d=e=>{let{current:t,today:n}=e;return a({current:t,today:n,info:{range:v.value?`end`:`start`}})}),W(eP,{value:{inRange:!0,panelPosition:t,rangedValue:Ce.value||D.value,hoverRangedValue:Ke.value}},{default:()=>[W(wP,h(h(h({},e),n),{},{dateRender:d,showTime:u,mode:k.value[v.value],generateConfig:r,style:void 0,direction:o,disabledDate:v.value===0?M:N,disabledTime:e=>s?s(e,v.value===0?`start`:`end`):!1,class:K({[`${c}-panel-focused`]:v.value===0?!Re.value:!Ve.value}),value:WN(D.value,v.value),locale:l,tabIndex:-1,onPanelChange:(e,n)=>{v.value===0&&ke(!0),v.value===1&&Me(!0),j(GN(k.value,n,v.value),GN(D.value,e,v.value));let i=e;t===`right`&&k.value[v.value]===n&&(i=PN(i,n,r,-1)),E(i,v.value)},onOk:null,onSelect:void 0,onChange:void 0,defaultValue:v.value===0?WN(D.value,1):WN(D.value,0)}),null)]})}return ZM({operationRef:b,hideHeader:G(()=>e.picker===`time`),onDateMouseenter:Ne,onDateMouseleave:Pe,hideRanges:G(()=>!0),onSelect:(e,t)=>{let n=GN(D.value,e,v.value);t===`submit`||t!==`key`&&!i.value?(le(n,v.value),v.value===0?ke():Me()):O(n)},open:P}),()=>{let{prefixCls:t=`rc-picker`,id:r,popupStyle:o,dropdownClassName:y,transitionName:b,dropdownAlign:C,getPopupContainer:O,generateConfig:A,locale:j,placeholder:M,autofocus:N,picker:F=`date`,showTime:I,separator:L=`~`,disabledDate:ne,panelRender:z,allowClear:re,suffixIcon:ie,clearIcon:ae,inputReadOnly:oe,renderExtraFooter:ce,onMouseenter:ue,onMouseleave:de,onMouseup:fe,onOk:pe,components:me,direction:he,autocomplete:ge=`off`}=e,ye=he===`rtl`?{right:`${ee.value}px`}:{left:`${ee.value}px`};function Se(){let e,n=bP(t,k.value[v.value],ce),r=xP({prefixCls:t,components:me,needConfirmButton:i.value,okDisabled:!WN(D.value,v.value)||ne&&ne(D.value[v.value]),locale:j,onOk:()=>{WN(D.value,v.value)&&(le(D.value,v.value),pe&&pe(D.value))}});if(F!==`time`&&!I){let t=v.value===0?w.value:T.value,n=PN(t,F,A),r=k.value[v.value]===F,i=qe(r?`left`:!1,{pickerValue:t,onPickerValueChange:e=>{E(e,v.value)}}),a=qe(`right`,{pickerValue:n,onPickerValueChange:e=>{E(PN(e,F,A,-1),v.value)}});e=he===`rtl`?W(Ma,null,[a,r&&i]):W(Ma,null,[i,r&&a])}else e=qe();let o=W(`div`,{class:`${t}-panel-layout`},[W(DP,{prefixCls:t,presets:a.value,onClick:e=>{le(e,null),se(!1,v.value)},onHover:e=>{we(e)}},null),W(`div`,null,[W(`div`,{class:`${t}-panels`},[e]),(n||r)&&W(`div`,{class:`${t}-footer`},[n,r])])]);return z&&(o=z(o)),W(`div`,{class:`${t}-panel-container`,style:{marginLeft:`${R.value}px`},ref:c,onMousedown:e=>{e.preventDefault()}},[o])}let Ce=W(`div`,{class:K(`${t}-range-wrapper`,`${t}-${F}-range-wrapper`),style:{minWidth:`${te.value}px`}},[W(`div`,{ref:m,class:`${t}-range-arrow`,style:ye},null),Se()]),Te;ie&&(Te=W(`span`,{class:`${t}-suffix`},[ie]));let Ee;re&&(WN(S.value,0)&&!x.value[0]||WN(S.value,1)&&!x.value[1])&&(Ee=W(`span`,{onMousedown:e=>{e.preventDefault(),e.stopPropagation()},onMouseup:e=>{e.preventDefault(),e.stopPropagation();let t=S.value;x.value[0]||(t=GN(t,null,0)),x.value[1]||(t=GN(t,null,1)),le(t,null),se(!1,v.value)},class:`${t}-clear`},[ae||W(`span`,{class:`${t}-clear-btn`},null)]));let Oe={size:mN(F,_.value[0],A)},ke=0,je=0;l.value&&u.value&&d.value&&(v.value===0?je=l.value.offsetWidth:(ke=ee.value,je=u.value.offsetWidth));let Me=he===`rtl`?{right:`${ke}px`}:{left:`${ke}px`};return W(`div`,h({ref:s,class:K(t,`${t}-range`,n.class,{[`${t}-disabled`]:x.value[0]&&x.value[1],[`${t}-focused`]:v.value===0?Le.value:Be.value,[`${t}-rtl`]:he===`rtl`}),style:n.style,onClick:He,onMouseenter:ue,onMouseleave:de,onMousedown:Ue,onMouseup:fe},UN(e)),[W(`div`,{class:K(`${t}-input`,{[`${t}-input-active`]:v.value===0,[`${t}-input-placeholder`]:!!De.value}),ref:l},[W(`input`,h(h(h({id:r,disabled:x.value[0],readonly:oe||typeof _.value[0]==`function`||!Re.value,value:De.value||_e.value,onInput:e=>{ve(e.target.value)},autofocus:N,placeholder:WN(M,0)||``,ref:f},Ie.value),Oe),{},{autocomplete:ge}),null)]),W(`div`,{class:`${t}-range-separator`,ref:d},[L]),W(`div`,{class:K(`${t}-input`,{[`${t}-input-active`]:v.value===1,[`${t}-input-placeholder`]:!!Ae.value}),ref:u},[W(`input`,h(h(h({disabled:x.value[1],readonly:oe||typeof _.value[0]==`function`||!Ve.value,value:Ae.value||be.value,onInput:e=>{xe(e.target.value)},placeholder:WN(M,1)||``,ref:p},ze.value),Oe),{},{autocomplete:ge}),null)]),W(`div`,{class:`${t}-active-bar`,style:g(g({},Me),{width:`${je}px`,position:`absolute`})},null),Te,Ee,W(EP,{visible:P.value,popupStyle:o,prefixCls:t,dropdownClassName:y,dropdownAlign:C,getPopupContainer:O,transitionName:b,range:!0,direction:he},{default:()=>[W(`div`,{style:{pointerEvents:`none`,position:`absolute`,top:0,bottom:0,left:0,right:0}},null)],popupElement:()=>Ce})])}}})}var QP=ZP(),$P=PP,eF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.checked,()=>{a.value=e.checked}),i({focus(){var e;(e=o.value)==null||e.focus()},blur(){var e;(e=o.value)==null||e.blur()}});let s=B(),c=t=>{if(e.disabled)return;e.checked===void 0&&(a.value=t.target.checked),t.shiftKey=s.value;let n={target:g(g({},e),{checked:t.target.checked}),stopPropagation(){t.stopPropagation()},preventDefault(){t.preventDefault()},nativeEvent:t};e.checked!==void 0&&(o.value.checked=!!e.checked),r(`change`,n),s.value=!1},l=e=>{r(`click`,e),s.value=e.shiftKey};return()=>{let{prefixCls:t,name:r,id:i,type:s,disabled:u,readonly:d,tabindex:f,autofocus:p,value:m,required:_}=e,v=eF(e,[`prefixCls`,`name`,`id`,`type`,`disabled`,`readonly`,`tabindex`,`autofocus`,`value`,`required`]),{class:y,onFocus:b,onBlur:x,onKeydown:S,onKeypress:C,onKeyup:w}=n,T=g(g({},v),n),E=Object.keys(T).reduce((e,t)=>((t.startsWith(`data-`)||t.startsWith(`aria-`)||t===`role`)&&(e[t]=T[t]),e),{}),D=K(t,y,{[`${t}-checked`]:a.value,[`${t}-disabled`]:u}),O=g(g({name:r,id:i,type:s,readonly:d,disabled:u,tabindex:f,class:`${t}-input`,checked:!!a.value,autofocus:p,value:m},E),{onChange:c,onClick:l,onFocus:b,onBlur:x,onKeydown:S,onKeypress:C,onKeyup:w,required:_});return W(`span`,{class:D},[W(`input`,h({ref:o},O),null),W(`span`,{class:`${t}-inner`},null)])}}}),nF=Symbol(`radioGroupContextKey`),rF=e=>{er(nF,e)},iF=()=>tr(nF,void 0),aF=Symbol(`radioOptionTypeContextKey`),oF=e=>{er(aF,e)},sF=()=>tr(aF,void 0),cF=new ef(`antRadioEffect`,{"0%":{transform:`scale(1)`,opacity:.5},"100%":{transform:`scale(1.6)`,opacity:0}}),lF=e=>{let{componentCls:t,antCls:n}=e,r=`${t}-group`;return{[r]:g(g({},Op(e)),{display:`inline-block`,fontSize:0,[`&${r}-rtl`]:{direction:`rtl`},[`${n}-badge ${n}-badge-count`]:{zIndex:1},[`> ${n}-badge:not(:first-child) > ${n}-button-wrapper`]:{borderInlineStart:`none`}})}},uF=e=>{let{componentCls:t,radioWrapperMarginRight:n,radioCheckedColor:r,radioSize:i,motionDurationSlow:a,motionDurationMid:o,motionEaseInOut:s,motionEaseInOutCirc:c,radioButtonBg:l,colorBorder:u,lineWidth:d,radioDotSize:f,colorBgContainerDisabled:p,colorTextDisabled:m,paddingXS:h,radioDotDisabledColor:_,lineType:v,radioDotDisabledSize:y,wireframe:b,colorWhite:x}=e,S=`${t}-inner`;return{[`${t}-wrapper`]:g(g({},Op(e)),{position:`relative`,display:`inline-flex`,alignItems:`baseline`,marginInlineStart:0,marginInlineEnd:n,cursor:`pointer`,[`&${t}-wrapper-rtl`]:{direction:`rtl`},"&-disabled":{cursor:`not-allowed`,color:e.colorTextDisabled},"&::after":{display:`inline-block`,width:0,overflow:`hidden`,content:`"\\a0"`},[`${t}-checked::after`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,width:`100%`,height:`100%`,border:`${d}px ${v} ${r}`,borderRadius:`50%`,visibility:`hidden`,animationName:cF,animationDuration:a,animationTimingFunction:s,animationFillMode:`both`,content:`""`},[t]:g(g({},Op(e)),{position:`relative`,display:`inline-block`,outline:`none`,cursor:`pointer`,alignSelf:`center`}),[`${t}-wrapper:hover &, + &:hover ${S}`]:{borderColor:r},[`${t}-input:focus-visible + ${S}`]:g({},Np(e)),[`${t}:hover::after, ${t}-wrapper:hover &::after`]:{visibility:`visible`},[`${t}-inner`]:{"&::after":{boxSizing:`border-box`,position:`absolute`,insetBlockStart:`50%`,insetInlineStart:`50%`,display:`block`,width:i,height:i,marginBlockStart:i/-2,marginInlineStart:i/-2,backgroundColor:b?r:x,borderBlockStart:0,borderInlineStart:0,borderRadius:i,transform:`scale(0)`,opacity:0,transition:`all ${a} ${c}`,content:`""`},boxSizing:`border-box`,position:`relative`,insetBlockStart:0,insetInlineStart:0,display:`block`,width:i,height:i,backgroundColor:l,borderColor:u,borderStyle:`solid`,borderWidth:d,borderRadius:`50%`,transition:`all ${o}`},[`${t}-input`]:{position:`absolute`,insetBlockStart:0,insetInlineEnd:0,insetBlockEnd:0,insetInlineStart:0,zIndex:1,cursor:`pointer`,opacity:0},[`${t}-checked`]:{[S]:{borderColor:r,backgroundColor:b?l:r,"&::after":{transform:`scale(${f/i})`,opacity:1,transition:`all ${a} ${c}`}}},[`${t}-disabled`]:{cursor:`not-allowed`,[S]:{backgroundColor:p,borderColor:u,cursor:`not-allowed`,"&::after":{backgroundColor:_}},[`${t}-input`]:{cursor:`not-allowed`},[`${t}-disabled + span`]:{color:m,cursor:`not-allowed`},[`&${t}-checked`]:{[S]:{"&::after":{transform:`scale(${y/i})`}}}},[`span${t} + *`]:{paddingInlineStart:h,paddingInlineEnd:h}})}},dF=e=>{let{radioButtonColor:t,controlHeight:n,componentCls:r,lineWidth:i,lineType:a,colorBorder:o,motionDurationSlow:s,motionDurationMid:c,radioButtonPaddingHorizontal:l,fontSize:u,radioButtonBg:d,fontSizeLG:f,controlHeightLG:p,controlHeightSM:m,paddingXS:h,borderRadius:_,borderRadiusSM:v,borderRadiusLG:y,radioCheckedColor:b,radioButtonCheckedBg:x,radioButtonHoverColor:S,radioButtonActiveColor:C,radioSolidCheckedColor:w,colorTextDisabled:T,colorBgContainerDisabled:E,radioDisabledButtonCheckedColor:D,radioDisabledButtonCheckedBg:O}=e;return{[`${r}-button-wrapper`]:{position:`relative`,display:`inline-block`,height:n,margin:0,paddingInline:l,paddingBlock:0,color:t,fontSize:u,lineHeight:`${n-i*2}px`,background:d,border:`${i}px ${a} ${o}`,borderBlockStartWidth:i+.02,borderInlineStartWidth:0,borderInlineEndWidth:i,cursor:`pointer`,transition:[`color ${c}`,`background ${c}`,`border-color ${c}`,`box-shadow ${c}`].join(`,`),a:{color:t},[`> ${r}-button`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:`100%`,height:`100%`},"&:not(:first-child)":{"&::before":{position:`absolute`,insetBlockStart:-i,insetInlineStart:-i,display:`block`,boxSizing:`content-box`,width:1,height:`100%`,paddingBlock:i,paddingInline:0,backgroundColor:o,transition:`background-color ${s}`,content:`""`}},"&:first-child":{borderInlineStart:`${i}px ${a} ${o}`,borderStartStartRadius:_,borderEndStartRadius:_},"&:last-child":{borderStartEndRadius:_,borderEndEndRadius:_},"&:first-child:last-child":{borderRadius:_},[`${r}-group-large &`]:{height:p,fontSize:f,lineHeight:`${p-i*2}px`,"&:first-child":{borderStartStartRadius:y,borderEndStartRadius:y},"&:last-child":{borderStartEndRadius:y,borderEndEndRadius:y}},[`${r}-group-small &`]:{height:m,paddingInline:h-i,paddingBlock:0,lineHeight:`${m-i*2}px`,"&:first-child":{borderStartStartRadius:v,borderEndStartRadius:v},"&:last-child":{borderStartEndRadius:v,borderEndEndRadius:v}},"&:hover":{position:`relative`,color:b},"&:has(:focus-visible)":g({},Np(e)),[`${r}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:`none`},[`&-checked:not(${r}-button-wrapper-disabled)`]:{zIndex:1,color:b,background:x,borderColor:b,"&::before":{backgroundColor:b},"&:first-child":{borderColor:b},"&:hover":{color:S,borderColor:S,"&::before":{backgroundColor:S}},"&:active":{color:C,borderColor:C,"&::before":{backgroundColor:C}}},[`${r}-group-solid &-checked:not(${r}-button-wrapper-disabled)`]:{color:w,background:b,borderColor:b,"&:hover":{color:w,background:S,borderColor:S},"&:active":{color:w,background:C,borderColor:C}},"&-disabled":{color:T,backgroundColor:E,borderColor:o,cursor:`not-allowed`,"&:first-child, &:hover":{color:T,backgroundColor:E,borderColor:o}},[`&-disabled${r}-button-wrapper-checked`]:{color:D,backgroundColor:O,borderColor:o,boxShadow:`none`}}}},fF=Fp(`Radio`,e=>{let{padding:t,lineWidth:n,controlItemBgActiveDisabled:r,colorTextDisabled:i,colorBgContainer:a,fontSizeLG:o,controlOutline:s,colorPrimaryHover:c,colorPrimaryActive:l,colorText:u,colorPrimary:d,marginXS:f,controlOutlineWidth:p,colorTextLightSolid:m,wireframe:h}=e,g=`0 0 0 ${p}px ${s}`,_=g,v=o,y=v-8,b=Rp(e,{radioFocusShadow:g,radioButtonFocusShadow:_,radioSize:v,radioDotSize:h?y:v-(4+n)*2,radioDotDisabledSize:y,radioCheckedColor:d,radioDotDisabledColor:i,radioSolidCheckedColor:m,radioButtonBg:a,radioButtonCheckedBg:a,radioButtonColor:u,radioButtonHoverColor:c,radioButtonActiveColor:l,radioButtonPaddingHorizontal:t-n,radioDisabledButtonCheckedBg:r,radioDisabledButtonCheckedColor:i,radioWrapperMarginRight:f});return[lF(b),uF(b),dF(b)]}),pF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i({prefixCls:String,checked:J(),disabled:J(),isGroup:J(),value:Q.any,name:String,id:String,autofocus:J(),onChange:Y(),onFocus:Y(),onBlur:Y(),onClick:Y(),"onUpdate:checked":Y(),"onUpdate:value":Y()}),hF=U({compatConfig:{MODE:3},name:`ARadio`,inheritAttrs:!1,props:mF(),setup(e,t){let{emit:n,expose:r,slots:i,attrs:a}=t,o=aw(),s=sw.useInject(),c=sF(),l=iF(),u=Ul(),d=G(()=>_.value??u.value),f=B(),{prefixCls:p,direction:m,disabled:_}=Z(`radio`,e),v=G(()=>l?.optionType.value===`button`||c===`button`?`${p.value}-button`:p.value),y=Ul(),[b,x]=fF(p);r({focus:()=>{f.value.focus()},blur:()=>{f.value.blur()}});let S=e=>{let t=e.target.checked;n(`update:checked`,t),n(`update:value`,t),n(`change`,e),o.onFieldChange()},C=e=>{n(`change`,e),l&&l.onChange&&l.onChange(e)};return()=>{let t=l,{prefixCls:n,id:r=o.id.value}=e,c=pF(e,[`prefixCls`,`id`]),u=g(g({prefixCls:v.value,id:r},sm(c,[`onUpdate:checked`,`onUpdate:value`])),{disabled:_.value??y.value});t?(u.name=t.name.value,u.onChange=C,u.checked=e.value===t.value.value,u.disabled=d.value||t.disabled.value):u.onChange=S;let p=K({[`${v.value}-wrapper`]:!0,[`${v.value}-wrapper-checked`]:u.checked,[`${v.value}-wrapper-disabled`]:u.disabled,[`${v.value}-wrapper-rtl`]:m.value===`rtl`,[`${v.value}-wrapper-in-form-item`]:s.isFormItemInput},a.class,x.value);return b(W(`label`,h(h({},a),{},{class:p}),[W(tF,h(h({},u),{},{type:`radio`,ref:f}),null),i.default&&W(`span`,null,[i.default()])]))}}}),gF=U({compatConfig:{MODE:3},name:`ARadioGroup`,inheritAttrs:!1,props:{prefixCls:String,value:Q.any,size:X(),options:xl(),disabled:J(),name:String,buttonStyle:X(`outline`),id:String,optionType:X(`default`),onChange:Y(),"onUpdate:value":Y()},setup(e,t){let{slots:n,emit:r,attrs:i}=t,a=aw(),{prefixCls:o,direction:s,size:c}=Z(`radio`,e),[l,u]=fF(o),d=B(e.value),f=B(!1);return H(()=>e.value,e=>{d.value=e,f.value=!1}),rF({onChange:t=>{let n=d.value,{value:i}=t.target;`value`in e||(d.value=i),!f.value&&i!==n&&(f.value=!0,r(`update:value`,i),r(`change`,t),a.onFieldChange()),zn(()=>{f.value=!1})},value:d,disabled:G(()=>e.disabled),name:G(()=>e.name),optionType:G(()=>e.optionType)}),()=>{let{options:t,buttonStyle:r,id:f=a.id.value}=e,p=`${o.value}-group`,m=K(p,`${p}-${r}`,{[`${p}-${c.value}`]:c.value,[`${p}-rtl`]:s.value===`rtl`},i.class,u.value),g=null;return g=t&&t.length>0?t.map(t=>{if(typeof t==`string`||typeof t==`number`)return W(hF,{key:t,prefixCls:o.value,disabled:e.disabled,value:t,checked:d.value===t},{default:()=>[t]});let{value:n,disabled:r,label:i}=t;return W(hF,{key:`radio-group-value-options-${n}`,prefixCls:o.value,disabled:r||e.disabled,value:n,checked:d.value===n},{default:()=>[i]})}):n.default?.call(n),l(W(`div`,h(h({},i),{},{class:m,id:f}),[g]))}}}),_F=U({compatConfig:{MODE:3},name:`ARadioButton`,inheritAttrs:!1,props:mF(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=Z(`radio`,e);return oF(`button`),()=>W(hF,h(h(h({},r),e),{},{prefixCls:i.value}),{default:()=>[n.default?.call(n)]})}});hF.Group=gF,hF.Button=_F,hF.install=function(e){return e.component(hF.name,hF),e.component(hF.Group.name,hF.Group),e.component(hF.Button.name,hF.Button),e};var vF=hF,yF=10,bF=20;function xF(e){let{fullscreen:t,validRange:n,generateConfig:r,locale:i,prefixCls:a,value:o,onChange:s,divRef:c}=e,l=r.getYear(o||r.getNow()),u=l-yF,d=u+bF;n&&(u=r.getYear(n[0]),d=r.getYear(n[1])+1);let f=i&&i.year===`年`?`年`:``,p=[];for(let e=u;e{let t=r.setYear(o,e);if(n){let[e,i]=n,a=r.getYear(t),o=r.getMonth(t);a===r.getYear(i)&&o>r.getMonth(i)&&(t=r.setMonth(t,r.getMonth(i))),a===r.getYear(e)&&oc.value},null)}xF.inheritAttrs=!1;function SF(e){let{prefixCls:t,fullscreen:n,validRange:r,value:i,generateConfig:a,locale:o,onChange:s,divRef:c}=e,l=a.getMonth(i||a.getNow()),u=0,d=11;if(r){let[e,t]=r,n=a.getYear(i);a.getYear(t)===n&&(d=a.getMonth(t)),a.getYear(e)===n&&(u=a.getMonth(e))}let f=o.shortMonths||a.locale.getShortMonths(o.locale),p=[];for(let e=u;e<=d;e+=1)p.push({label:f[e],value:e});return W(Rk,{size:n?void 0:`small`,class:`${t}-month-select`,value:l,options:p,onChange:e=>{s(a.setMonth(i,e))},getPopupContainer:()=>c.value},null)}SF.inheritAttrs=!1;function CF(e){let{prefixCls:t,locale:n,mode:r,fullscreen:i,onModeChange:a}=e;return W(gF,{onChange:e=>{let{target:{value:t}}=e;a(t)},value:r,size:i?void 0:`small`,class:`${t}-mode-switch`},{default:()=>[W(_F,{value:`month`},{default:()=>[n.month]}),W(_F,{value:`year`},{default:()=>[n.year]})]})}CF.inheritAttrs=!1;var wF=U({name:`CalendarHeader`,inheritAttrs:!1,props:[`mode`,`prefixCls`,`value`,`validRange`,`generateConfig`,`locale`,`mode`,`fullscreen`],setup(e,t){let{attrs:n}=t,r=B(null),i=sw.useInject();return sw.useProvide(i,{isFormItemInput:!1}),()=>{let t=g(g({},e),n),{prefixCls:i,fullscreen:a,mode:o,onChange:s,onModeChange:c}=t,l=g(g({},t),{fullscreen:a,divRef:r});return W(`div`,{class:`${i}-header`,ref:r},[W(xF,h(h({},l),{},{onChange:e=>{s(e,`year`)}}),null),o===`month`&&W(SF,h(h({},l),{},{onChange:e=>{s(e,`month`)}}),null),W(CF,h(h({},l),{},{onModeChange:c}),null)])}}}),TF=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:`none`},"&:placeholder-shown":{textOverflow:`ellipsis`}}),EF=e=>({borderColor:e.inputBorderHoverColor,borderInlineEndWidth:e.lineWidth}),DF=e=>({borderColor:e.inputBorderHoverColor,boxShadow:`0 0 0 ${e.controlOutlineWidth}px ${e.controlOutline}`,borderInlineEndWidth:e.lineWidth,outline:0}),OF=e=>({color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:`none`,cursor:`not-allowed`,opacity:1,"&:hover":g({},EF(Rp(e,{inputBorderHoverColor:e.colorBorder})))}),kF=e=>{let{inputPaddingVerticalLG:t,fontSizeLG:n,lineHeightLG:r,borderRadiusLG:i,inputPaddingHorizontalLG:a}=e;return{padding:`${t}px ${a}px`,fontSize:n,lineHeight:r,borderRadius:i}},AF=e=>({padding:`${e.inputPaddingVerticalSM}px ${e.controlPaddingHorizontalSM-1}px`,borderRadius:e.borderRadiusSM}),jF=(e,t)=>{let{componentCls:n,colorError:r,colorWarning:i,colorErrorOutline:a,colorWarningOutline:o,colorErrorBorderHover:s,colorWarningBorderHover:c}=e;return{[`&-status-error:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:r,"&:hover":{borderColor:s},"&:focus, &-focused":g({},DF(Rp(e,{inputBorderActiveColor:r,inputBorderHoverColor:r,controlOutline:a}))),[`${n}-prefix`]:{color:r}},[`&-status-warning:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:i,"&:hover":{borderColor:c},"&:focus, &-focused":g({},DF(Rp(e,{inputBorderActiveColor:i,inputBorderHoverColor:i,controlOutline:o}))),[`${n}-prefix`]:{color:i}}}},MF=e=>g(g({position:`relative`,display:`inline-block`,width:`100%`,minWidth:0,padding:`${e.inputPaddingVertical}px ${e.inputPaddingHorizontal}px`,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,backgroundColor:e.colorBgContainer,backgroundImage:`none`,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:e.colorBorder,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},TF(e.colorTextPlaceholder)),{"&:hover":g({},EF(e)),"&:focus, &-focused":g({},DF(e)),"&-disabled, &[disabled]":g({},OF(e)),"&-borderless":{"&, &:hover, &:focus, &-focused, &-disabled, &[disabled]":{backgroundColor:`transparent`,border:`none`,boxShadow:`none`}},"textarea&":{maxWidth:`100%`,height:`auto`,minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:`bottom`,transition:`all ${e.motionDurationSlow}, height 0s`,resize:`vertical`},"&-lg":g({},kF(e)),"&-sm":g({},AF(e)),"&-rtl":{direction:`rtl`},"&-textarea-rtl":{direction:`rtl`}}),NF=e=>{let{componentCls:t,antCls:n}=e;return{position:`relative`,display:`table`,width:`100%`,borderCollapse:`separate`,borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${t}, &-lg > ${t}-group-addon`]:g({},kF(e)),[`&-sm ${t}, &-sm > ${t}-group-addon`]:g({},AF(e)),[`> ${t}`]:{display:`table-cell`,"&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${t}-group`]:{"&-addon, &-wrap":{display:`table-cell`,width:1,whiteSpace:`nowrap`,verticalAlign:`middle`,"&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:`block !important`},"&-addon":{position:`relative`,padding:`0 ${e.inputPaddingHorizontal}px`,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,textAlign:`center`,backgroundColor:e.colorFillAlter,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`-${e.inputPaddingVertical+1}px -${e.inputPaddingHorizontal}px`,[`&${n}-select-single:not(${n}-select-customize-input)`]:{[`${n}-select-selector`]:{backgroundColor:`inherit`,border:`${e.lineWidth}px ${e.lineType} transparent`,boxShadow:`none`}},"&-open, &-focused":{[`${n}-select-selector`]:{color:e.colorPrimary}}},[`${n}-cascader-picker`]:{margin:`-9px -${e.inputPaddingHorizontal}px`,backgroundColor:`transparent`,[`${n}-cascader-input`]:{textAlign:`start`,border:0,boxShadow:`none`}}},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}},[`${t}`]:{float:`inline-start`,width:`100%`,marginBottom:0,textAlign:`inherit`,"&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${t}-search-with-button &`]:{zIndex:0}}},[`> ${t}:first-child, ${t}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}-affix-wrapper`]:{[`&:not(:first-child) ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}:last-child, ${t}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${t}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${t}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${t}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${t}-group-compact`]:g(g({display:`block`},Ap()),{[`${t}-group-addon, ${t}-group-wrap, > ${t}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover":{zIndex:1},"&:focus":{zIndex:1}}},"& > *":{display:`inline-block`,float:`none`,verticalAlign:`top`,borderRadius:0},[`& > ${t}-affix-wrapper`]:{display:`inline-flex`},[`& > ${n}-picker-range`]:{display:`inline-flex`},"& > *:not(:last-child)":{marginInlineEnd:-e.lineWidth,borderInlineEndWidth:e.lineWidth},[`${t}`]:{float:`none`},[`& > ${n}-select > ${n}-select-selector, + & > ${n}-select-auto-complete ${t}, + & > ${n}-cascader-picker ${t}, + & > ${t}-group-wrapper ${t}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,"&:hover":{zIndex:1},"&:focus":{zIndex:1}},[`& > ${n}-select-focused`]:{zIndex:1},[`& > ${n}-select > ${n}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${n}-select:first-child > ${n}-select-selector, + & > ${n}-select-auto-complete:first-child ${t}, + & > ${n}-cascader-picker:first-child ${t}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child, + & > ${n}-select:last-child > ${n}-select-selector, + & > ${n}-cascader-picker:last-child ${t}, + & > ${n}-cascader-picker-focused:last-child ${t}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${n}-select-auto-complete ${t}`]:{verticalAlign:`top`},[`${t}-group-wrapper + ${t}-group-wrapper`]:{marginInlineStart:-e.lineWidth,[`${t}-affix-wrapper`]:{borderRadius:0}},[`${t}-group-wrapper:not(:last-child)`]:{[`&${t}-search > ${t}-group`]:{[`& > ${t}-group-addon > ${t}-search-button`]:{borderRadius:0},[`& > ${t}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}}),[`&&-sm ${n}-btn`]:{fontSize:e.fontSizeSM,height:e.controlHeightSM,lineHeight:`normal`},[`&&-lg ${n}-btn`]:{fontSize:e.fontSizeLG,height:e.controlHeightLG,lineHeight:`normal`},[`&&-lg ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightLG}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightLG-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightLG}px`}},[`&&-sm ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightSM}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightSM-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightSM}px`}}}},PF=e=>{let{componentCls:t,controlHeightSM:n,lineWidth:r}=e,i=(n-r*2-16)/2;return{[t]:g(g(g(g({},Op(e)),MF(e)),jF(e,t)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:n,paddingTop:i,paddingBottom:i}}})}},FF=e=>{let{componentCls:t}=e;return{[`${t}-clear-icon`]:{margin:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextTertiary},"&:active":{color:e.colorText},"&-hidden":{visibility:`hidden`},"&-has-suffix":{margin:`0 ${e.inputAffixPadding}px`}},"&-textarea-with-clear-btn":{padding:`0 !important`,border:`0 !important`,[`${t}-clear-icon`]:{position:`absolute`,insetBlockStart:e.paddingXS,insetInlineEnd:e.paddingXS,zIndex:1}}}},IF=e=>{let{componentCls:t,inputAffixPadding:n,colorTextDescription:r,motionDurationSlow:i,colorIcon:a,colorIconHover:o,iconCls:s}=e;return{[`${t}-affix-wrapper`]:g(g(g(g(g({},MF(e)),{display:`inline-flex`,[`&:not(${t}-affix-wrapper-disabled):hover`]:g(g({},EF(e)),{zIndex:1,[`${t}-search-with-button &`]:{zIndex:0}}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${t}[disabled]`]:{background:`transparent`}},[`> input${t}`]:{padding:0,fontSize:`inherit`,border:`none`,borderRadius:0,outline:`none`,"&:focus":{boxShadow:`none !important`}},"&::before":{width:0,visibility:`hidden`,content:`"\\a0"`},[`${t}`]:{"&-prefix, &-suffix":{display:`flex`,flex:`none`,alignItems:`center`,"> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:r},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:n},"&-suffix":{marginInlineStart:n}}}),FF(e)),{[`${s}${t}-password-icon`]:{color:a,cursor:`pointer`,transition:`all ${i}`,"&:hover":{color:o}}}),jF(e,`${t}-affix-wrapper`))}},LF=e=>{let{componentCls:t,colorError:n,colorSuccess:r,borderRadiusLG:i,borderRadiusSM:a}=e;return{[`${t}-group`]:g(g(g({},Op(e)),NF(e)),{"&-rtl":{direction:`rtl`},"&-wrapper":{display:`inline-block`,width:`100%`,textAlign:`start`,verticalAlign:`top`,"&-rtl":{direction:`rtl`},"&-lg":{[`${t}-group-addon`]:{borderRadius:i}},"&-sm":{[`${t}-group-addon`]:{borderRadius:a}},"&-status-error":{[`${t}-group-addon`]:{color:n,borderColor:n}},"&-status-warning":{[`${t}-group-addon:last-child`]:{color:r,borderColor:r}}}})}},RF=e=>{let{componentCls:t,antCls:n}=e,r=`${t}-search`;return{[r]:{[`${t}`]:{"&:hover, &:focus":{borderColor:e.colorPrimaryHover,[`+ ${t}-group-addon ${r}-button:not(${n}-btn-primary)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{borderRadius:0},[`${t}-lg`]:{lineHeight:e.lineHeightLG-2e-4},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${r}-button`]:{paddingTop:0,paddingBottom:0,borderStartStartRadius:0,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius,borderEndStartRadius:0},[`${r}-button:not(${n}-btn-primary)`]:{color:e.colorTextDescription,"&:hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${n}-btn-loading::before`]:{insetInlineStart:0,insetInlineEnd:0,insetBlockStart:0,insetBlockEnd:0}}}},[`${r}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},[`&-large ${r}-button`]:{height:e.controlHeightLG},[`&-small ${r}-button`]:{height:e.controlHeightSM},"&-rtl":{direction:`rtl`},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:-e.lineWidth,borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, + > ${t}, + ${t}-affix-wrapper`]:{"&:hover,&:focus,&:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}};function zF(e){return Rp(e,{inputAffixPadding:e.paddingXXS,inputPaddingVertical:Math.max(Math.round((e.controlHeight-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,3),inputPaddingVerticalLG:Math.ceil((e.controlHeightLG-e.fontSizeLG*e.lineHeightLG)/2*10)/10-e.lineWidth,inputPaddingVerticalSM:Math.max(Math.round((e.controlHeightSM-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,0),inputPaddingHorizontal:e.paddingSM-e.lineWidth,inputPaddingHorizontalSM:e.paddingXS-e.lineWidth,inputPaddingHorizontalLG:e.controlPaddingHorizontal-e.lineWidth,inputBorderHoverColor:e.colorPrimaryHover,inputBorderActiveColor:e.colorPrimaryHover})}var BF=e=>{let{componentCls:t,inputPaddingHorizontal:n,paddingLG:r}=e,i=`${t}-textarea`;return{[i]:{position:`relative`,[`${i}-suffix`]:{position:`absolute`,top:0,insetInlineEnd:n,bottom:0,zIndex:1,display:`inline-flex`,alignItems:`center`,margin:`auto`},"&-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating":{[`&${i}-has-feedback`]:{[`${t}`]:{paddingInlineEnd:r}}},"&-show-count":{[`> ${t}`]:{height:`100%`},"&::after":{color:e.colorTextDescription,whiteSpace:`nowrap`,content:`attr(data-count)`,pointerEvents:`none`,float:`right`}},"&-rtl":{"&::after":{float:`left`}}}}},VF=Fp(`Input`,e=>{let t=zF(e);return[PF(t),BF(t),IF(t),LF(t),RF(t),kk(t)]}),HF=(e,t,n,r)=>{let{lineHeight:i}=e,a=Math.floor(n*i)+2,o=Math.max((t-a)/2,0);return{padding:`${o}px ${r}px ${Math.max(t-a-o,0)}px`}},UF=e=>{let{componentCls:t,pickerCellCls:n,pickerCellInnerCls:r,pickerPanelCellHeight:i,motionDurationSlow:a,borderRadiusSM:o,motionDurationMid:s,controlItemBgHover:c,lineWidth:l,lineType:u,colorPrimary:d,controlItemBgActive:f,colorTextLightSolid:p,controlHeightSM:m,pickerDateHoverRangeBorderColor:h,pickerCellBorderGap:g,pickerBasicCellHoverWithRangeColor:_,pickerPanelCellWidth:v,colorTextDisabled:y,colorBgContainerDisabled:b}=e;return{"&::before":{position:`absolute`,top:`50%`,insetInlineStart:0,insetInlineEnd:0,zIndex:1,height:i,transform:`translateY(-50%)`,transition:`all ${a}`,content:`""`},[r]:{position:`relative`,zIndex:2,display:`inline-block`,minWidth:i,height:i,lineHeight:`${i}px`,borderRadius:o,transition:`background ${s}, border ${s}`},[`&:hover:not(${n}-in-view), + &:hover:not(${n}-selected):not(${n}-range-start):not(${n}-range-end):not(${n}-range-hover-start):not(${n}-range-hover-end)`]:{[r]:{background:c}},[`&-in-view${n}-today ${r}`]:{"&::before":{position:`absolute`,top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:1,border:`${l}px ${u} ${d}`,borderRadius:o,content:`""`}},[`&-in-view${n}-in-range`]:{position:`relative`,"&::before":{background:f}},[`&-in-view${n}-selected ${r}, + &-in-view${n}-range-start ${r}, + &-in-view${n}-range-end ${r}`]:{color:p,background:d},[`&-in-view${n}-range-start:not(${n}-range-start-single), + &-in-view${n}-range-end:not(${n}-range-end-single)`]:{"&::before":{background:f}},[`&-in-view${n}-range-start::before`]:{insetInlineStart:`50%`},[`&-in-view${n}-range-end::before`]:{insetInlineEnd:`50%`},[`&-in-view${n}-range-hover-start:not(${n}-in-range):not(${n}-range-start):not(${n}-range-end), + &-in-view${n}-range-hover-end:not(${n}-in-range):not(${n}-range-start):not(${n}-range-end), + &-in-view${n}-range-hover-start${n}-range-start-single, + &-in-view${n}-range-hover-start${n}-range-start${n}-range-end${n}-range-end-near-hover, + &-in-view${n}-range-hover-end${n}-range-start${n}-range-end${n}-range-start-near-hover, + &-in-view${n}-range-hover-end${n}-range-end-single, + &-in-view${n}-range-hover:not(${n}-in-range)`]:{"&::after":{position:`absolute`,top:`50%`,zIndex:0,height:m,borderTop:`${l}px dashed ${h}`,borderBottom:`${l}px dashed ${h}`,transform:`translateY(-50%)`,transition:`all ${a}`,content:`""`}},"&-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after":{insetInlineEnd:0,insetInlineStart:g},[`&-in-view${n}-in-range${n}-range-hover::before, + &-in-view${n}-range-start${n}-range-hover::before, + &-in-view${n}-range-end${n}-range-hover::before, + &-in-view${n}-range-start:not(${n}-range-start-single)${n}-range-hover-start::before, + &-in-view${n}-range-end:not(${n}-range-end-single)${n}-range-hover-end::before, + ${t}-panel + > :not(${t}-date-panel) + &-in-view${n}-in-range${n}-range-hover-start::before, + ${t}-panel + > :not(${t}-date-panel) + &-in-view${n}-in-range${n}-range-hover-end::before`]:{background:_},[`&-in-view${n}-range-start:not(${n}-range-start-single):not(${n}-range-end) ${r}`]:{borderStartStartRadius:o,borderEndStartRadius:o,borderStartEndRadius:0,borderEndEndRadius:0},[`&-in-view${n}-range-end:not(${n}-range-end-single):not(${n}-range-start) ${r}`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:o,borderEndEndRadius:o},[`&-range-hover${n}-range-end::after`]:{insetInlineStart:`50%`},[`tr > &-in-view${n}-range-hover:first-child::after, + tr > &-in-view${n}-range-hover-end:first-child::after, + &-in-view${n}-start${n}-range-hover-edge-start${n}-range-hover-edge-start-near-range::after, + &-in-view${n}-range-hover-edge-start:not(${n}-range-hover-edge-start-near-range)::after, + &-in-view${n}-range-hover-start::after`]:{insetInlineStart:(v-i)/2,borderInlineStart:`${l}px dashed ${h}`,borderStartStartRadius:l,borderEndStartRadius:l},[`tr > &-in-view${n}-range-hover:last-child::after, + tr > &-in-view${n}-range-hover-start:last-child::after, + &-in-view${n}-end${n}-range-hover-edge-end${n}-range-hover-edge-end-near-range::after, + &-in-view${n}-range-hover-edge-end:not(${n}-range-hover-edge-end-near-range)::after, + &-in-view${n}-range-hover-end::after`]:{insetInlineEnd:(v-i)/2,borderInlineEnd:`${l}px dashed ${h}`,borderStartEndRadius:l,borderEndEndRadius:l},"&-disabled":{color:y,pointerEvents:`none`,[r]:{background:`transparent`},"&::before":{background:b}},[`&-disabled${n}-today ${r}::before`]:{borderColor:y}}},WF=e=>{let{componentCls:t,pickerCellInnerCls:n,pickerYearMonthCellWidth:r,pickerControlIconSize:i,pickerPanelCellWidth:a,paddingSM:o,paddingXS:s,paddingXXS:c,colorBgContainer:l,lineWidth:u,lineType:d,borderRadiusLG:f,colorPrimary:p,colorTextHeading:m,colorSplit:h,pickerControlIconBorderWidth:_,colorIcon:v,pickerTextHeight:y,motionDurationMid:b,colorIconHover:x,fontWeightStrong:S,pickerPanelCellHeight:C,pickerCellPaddingVertical:w,colorTextDisabled:T,colorText:E,fontSize:D,pickerBasicCellHoverWithRangeColor:O,motionDurationSlow:k,pickerPanelWithoutTimeCellHeight:A,pickerQuarterPanelContentHeight:j,colorLink:M,colorLinkActive:N,colorLinkHover:P,pickerDateHoverRangeBorderColor:F,borderRadiusSM:I,colorTextLightSolid:L,borderRadius:R,controlItemBgHover:ee,pickerTimePanelColumnHeight:te,pickerTimePanelColumnWidth:ne,pickerTimePanelCellHeight:z,controlItemBgActive:re,marginXXS:ie}=e,ae=a*7+o*2+4,oe=(ae-s*2)/3-r-o;return{[t]:{"&-panel":{display:`inline-flex`,flexDirection:`column`,textAlign:`center`,background:l,border:`${u}px ${d} ${h}`,borderRadius:f,outline:`none`,"&-focused":{borderColor:p},"&-rtl":{direction:`rtl`,[`${t}-prev-icon, + ${t}-super-prev-icon`]:{transform:`rotate(45deg)`},[`${t}-next-icon, + ${t}-super-next-icon`]:{transform:`rotate(-135deg)`}}},"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel":{display:`flex`,flexDirection:`column`,width:ae},"&-header":{display:`flex`,padding:`0 ${s}px`,color:m,borderBottom:`${u}px ${d} ${h}`,"> *":{flex:`none`},button:{padding:0,color:v,lineHeight:`${y}px`,background:`transparent`,border:0,cursor:`pointer`,transition:`color ${b}`},"> button":{minWidth:`1.6em`,fontSize:D,"&:hover":{color:x}},"&-view":{flex:`auto`,fontWeight:S,lineHeight:`${y}px`,button:{color:`inherit`,fontWeight:`inherit`,verticalAlign:`top`,"&:not(:first-child)":{marginInlineStart:s},"&:hover":{color:p}}}},"&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon":{position:`relative`,display:`inline-block`,width:i,height:i,"&::before":{position:`absolute`,top:0,insetInlineStart:0,display:`inline-block`,width:i,height:i,border:`0 solid currentcolor`,borderBlockStartWidth:_,borderBlockEndWidth:0,borderInlineStartWidth:_,borderInlineEndWidth:0,content:`""`}},"&-super-prev-icon,\n &-super-next-icon":{"&::after":{position:`absolute`,top:Math.ceil(i/2),insetInlineStart:Math.ceil(i/2),display:`inline-block`,width:i,height:i,border:`0 solid currentcolor`,borderBlockStartWidth:_,borderBlockEndWidth:0,borderInlineStartWidth:_,borderInlineEndWidth:0,content:`""`}},"&-prev-icon,\n &-super-prev-icon":{transform:`rotate(-45deg)`},"&-next-icon,\n &-super-next-icon":{transform:`rotate(135deg)`},"&-content":{width:`100%`,tableLayout:`fixed`,borderCollapse:`collapse`,"th, td":{position:`relative`,minWidth:C,fontWeight:`normal`},th:{height:C+w*2,color:E,verticalAlign:`middle`}},"&-cell":g({padding:`${w}px 0`,color:T,cursor:`pointer`,"&-in-view":{color:E}},UF(e)),[`&-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-start ${n}, + &-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-end ${n}`]:{"&::after":{position:`absolute`,top:0,bottom:0,zIndex:-1,background:O,transition:`all ${k}`,content:`""`}},[`&-date-panel + ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-start + ${n}::after`]:{insetInlineEnd:-(a-C)/2,insetInlineStart:0},[`&-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-end ${n}::after`]:{insetInlineEnd:0,insetInlineStart:-(a-C)/2},[`&-range-hover${t}-range-start::after`]:{insetInlineEnd:`50%`},"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${t}-content`]:{height:A*4},[n]:{padding:`0 ${s}px`}},"&-quarter-panel":{[`${t}-content`]:{height:j}},[`&-panel ${t}-footer`]:{borderTop:`${u}px ${d} ${h}`},"&-footer":{width:`min-content`,minWidth:`100%`,lineHeight:`${y-2*u}px`,textAlign:`center`,"&-extra":{padding:`0 ${o}`,lineHeight:`${y-2*u}px`,textAlign:`start`,"&:not(:last-child)":{borderBottom:`${u}px ${d} ${h}`}}},"&-now":{textAlign:`start`},"&-today-btn":{color:M,"&:hover":{color:P},"&:active":{color:N},[`&${t}-today-btn-disabled`]:{color:T,cursor:`not-allowed`}},"&-decade-panel":{[n]:{padding:`0 ${s/2}px`},[`${t}-cell::before`]:{display:`none`}},"&-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${t}-body`]:{padding:`0 ${s}px`},[n]:{width:r},[`${t}-cell-range-hover-start::after`]:{insetInlineStart:oe,borderInlineStart:`${u}px dashed ${F}`,borderStartStartRadius:I,borderBottomStartRadius:I,borderStartEndRadius:0,borderBottomEndRadius:0,[`${t}-panel-rtl &`]:{insetInlineEnd:oe,borderInlineEnd:`${u}px dashed ${F}`,borderStartStartRadius:0,borderBottomStartRadius:0,borderStartEndRadius:I,borderBottomEndRadius:I}},[`${t}-cell-range-hover-end::after`]:{insetInlineEnd:oe,borderInlineEnd:`${u}px dashed ${F}`,borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:R,borderEndEndRadius:R,[`${t}-panel-rtl &`]:{insetInlineStart:oe,borderInlineStart:`${u}px dashed ${F}`,borderStartStartRadius:R,borderEndStartRadius:R,borderStartEndRadius:0,borderEndEndRadius:0}}},"&-week-panel":{[`${t}-body`]:{padding:`${s}px ${o}px`},[`${t}-cell`]:{[`&:hover ${n}, + &-selected ${n}, + ${n}`]:{background:`transparent !important`}},"&-row":{td:{transition:`background ${b}`,"&:first-child":{borderStartStartRadius:I,borderEndStartRadius:I},"&:last-child":{borderStartEndRadius:I,borderEndEndRadius:I}},"&:hover td":{background:ee},"&-selected td,\n &-selected:hover td":{background:p,[`&${t}-cell-week`]:{color:new zf(L).setAlpha(.5).toHexString()},[`&${t}-cell-today ${n}::before`]:{borderColor:L},[n]:{color:L}}}},"&-date-panel":{[`${t}-body`]:{padding:`${s}px ${o}px`},[`${t}-content`]:{width:a*7,th:{width:a}}},"&-datetime-panel":{display:`flex`,[`${t}-time-panel`]:{borderInlineStart:`${u}px ${d} ${h}`},[`${t}-date-panel, + ${t}-time-panel`]:{transition:`opacity ${k}`},"&-active":{[`${t}-date-panel, + ${t}-time-panel`]:{opacity:.3,"&-active":{opacity:1}}}},"&-time-panel":{width:`auto`,minWidth:`auto`,direction:`ltr`,[`${t}-content`]:{display:`flex`,flex:`auto`,height:te},"&-column":{flex:`1 0 auto`,width:ne,margin:`${c}px 0`,padding:0,overflowY:`hidden`,textAlign:`start`,listStyle:`none`,transition:`background ${b}`,overflowX:`hidden`,"&::after":{display:`block`,height:te-z,content:`""`},"&:not(:first-child)":{borderInlineStart:`${u}px ${d} ${h}`},"&-active":{background:new zf(re).setAlpha(.2).toHexString()},"&:hover":{overflowY:`auto`},"> li":{margin:0,padding:0,[`&${t}-time-panel-cell`]:{marginInline:ie,[`${t}-time-panel-cell-inner`]:{display:`block`,width:ne-2*ie,height:z,margin:0,paddingBlock:0,paddingInlineEnd:0,paddingInlineStart:(ne-z)/2,color:E,lineHeight:`${z}px`,borderRadius:I,cursor:`pointer`,transition:`background ${b}`,"&:hover":{background:ee}},"&-selected":{[`${t}-time-panel-cell-inner`]:{background:re}},"&-disabled":{[`${t}-time-panel-cell-inner`]:{color:T,background:`transparent`,cursor:`not-allowed`}}}}}},[`&-datetime-panel ${t}-time-panel-column:after`]:{height:te-z+c*2}}}},GF=e=>{let{componentCls:t,colorBgContainer:n,colorError:r,colorErrorOutline:i,colorWarning:a,colorWarningOutline:o}=e;return{[t]:{[`&-status-error${t}`]:{"&, &:not([disabled]):hover":{backgroundColor:n,borderColor:r},"&-focused, &:focus":g({},DF(Rp(e,{inputBorderActiveColor:r,inputBorderHoverColor:r,controlOutline:i}))),[`${t}-active-bar`]:{background:r}},[`&-status-warning${t}`]:{"&, &:not([disabled]):hover":{backgroundColor:n,borderColor:a},"&-focused, &:focus":g({},DF(Rp(e,{inputBorderActiveColor:a,inputBorderHoverColor:a,controlOutline:o}))),[`${t}-active-bar`]:{background:a}}}}},KF=e=>{let{componentCls:t,antCls:n,boxShadowPopoverArrow:r,controlHeight:i,fontSize:a,inputPaddingHorizontal:o,colorBgContainer:s,lineWidth:c,lineType:l,colorBorder:u,borderRadius:d,motionDurationMid:f,colorBgContainerDisabled:p,colorTextDisabled:m,colorTextPlaceholder:h,controlHeightLG:_,fontSizeLG:v,controlHeightSM:y,inputPaddingHorizontalSM:b,paddingXS:x,marginXS:S,colorTextDescription:C,lineWidthBold:w,lineHeight:T,colorPrimary:E,motionDurationSlow:D,zIndexPopup:O,paddingXXS:k,paddingSM:A,pickerTextHeight:j,controlItemBgActive:M,colorPrimaryBorder:N,sizePopupArrow:P,borderRadiusXS:F,borderRadiusOuter:I,colorBgElevated:L,borderRadiusLG:R,boxShadowSecondary:ee,borderRadiusSM:te,colorSplit:ne,controlItemBgHover:z,presetsWidth:re,presetsMaxWidth:ie}=e;return[{[t]:g(g(g({},Op(e)),HF(e,i,a,o)),{position:`relative`,display:`inline-flex`,alignItems:`center`,background:s,lineHeight:1,border:`${c}px ${l} ${u}`,borderRadius:d,transition:`border ${f}, box-shadow ${f}`,"&:hover, &-focused":g({},EF(e)),"&-focused":g({},DF(e)),[`&${t}-disabled`]:{background:p,borderColor:u,cursor:`not-allowed`,[`${t}-suffix`]:{color:m}},[`&${t}-borderless`]:{backgroundColor:`transparent !important`,borderColor:`transparent !important`,boxShadow:`none !important`},[`${t}-input`]:{position:`relative`,display:`inline-flex`,alignItems:`center`,width:`100%`,"> input":g(g({},MF(e)),{flex:`auto`,minWidth:1,height:`auto`,padding:0,background:`transparent`,border:0,"&:focus":{boxShadow:`none`},"&[disabled]":{background:`transparent`}}),"&:hover":{[`${t}-clear`]:{opacity:1}},"&-placeholder":{"> input":{color:h}}},"&-large":g(g({},HF(e,_,v,o)),{[`${t}-input > input`]:{fontSize:v}}),"&-small":g({},HF(e,y,a,b)),[`${t}-suffix`]:{display:`flex`,flex:`none`,alignSelf:`center`,marginInlineStart:x/2,color:m,lineHeight:1,pointerEvents:`none`,"> *":{verticalAlign:`top`,"&:not(:last-child)":{marginInlineEnd:S}}},[`${t}-clear`]:{position:`absolute`,top:`50%`,insetInlineEnd:0,color:m,lineHeight:1,background:s,transform:`translateY(-50%)`,cursor:`pointer`,opacity:0,transition:`opacity ${f}, color ${f}`,"> *":{verticalAlign:`top`},"&:hover":{color:C}},[`${t}-separator`]:{position:`relative`,display:`inline-block`,width:`1em`,height:v,color:m,fontSize:v,verticalAlign:`top`,cursor:`default`,[`${t}-focused &`]:{color:C},[`${t}-range-separator &`]:{[`${t}-disabled &`]:{cursor:`not-allowed`}}},"&-range":{position:`relative`,display:`inline-flex`,[`${t}-clear`]:{insetInlineEnd:o},"&:hover":{[`${t}-clear`]:{opacity:1}},[`${t}-active-bar`]:{bottom:-c,height:w,marginInlineStart:o,background:E,opacity:0,transition:`all ${D} ease-out`,pointerEvents:`none`},[`&${t}-focused`]:{[`${t}-active-bar`]:{opacity:1}},[`${t}-range-separator`]:{alignItems:`center`,padding:`0 ${x}px`,lineHeight:1},[`&${t}-small`]:{[`${t}-clear`]:{insetInlineEnd:b},[`${t}-active-bar`]:{marginInlineStart:b}}},"&-dropdown":g(g(g({},Op(e)),WF(e)),{position:`absolute`,top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:O,[`&${t}-dropdown-hidden`]:{display:`none`},[`&${t}-dropdown-placement-bottomLeft`]:{[`${t}-range-arrow`]:{top:0,display:`block`,transform:`translateY(-100%)`}},[`&${t}-dropdown-placement-topLeft`]:{[`${t}-range-arrow`]:{bottom:0,display:`block`,transform:`translateY(100%) rotate(180deg)`}},[`&${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-topLeft, + &${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-topRight, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-topLeft, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-topRight`]:{animationName:XO},[`&${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-bottomLeft, + &${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-bottomRight, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-bottomLeft, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-bottomRight`]:{animationName:JO},[`&${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-topLeft, + &${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-topRight`]:{animationName:ZO},[`&${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-bottomLeft, + &${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-bottomRight`]:{animationName:YO},[`${t}-panel > ${t}-time-panel`]:{paddingTop:k},[`${t}-ranges`]:{marginBottom:0,padding:`${k}px ${A}px`,overflow:`hidden`,lineHeight:`${j-2*c-x/2}px`,textAlign:`start`,listStyle:`none`,display:`flex`,justifyContent:`space-between`,"> li":{display:`inline-block`},[`${t}-preset > ${n}-tag-blue`]:{color:E,background:M,borderColor:N,cursor:`pointer`},[`${t}-ok`]:{marginInlineStart:`auto`}},[`${t}-range-wrapper`]:{display:`flex`,position:`relative`},[`${t}-range-arrow`]:g({position:`absolute`,zIndex:1,display:`none`,marginInlineStart:o*1.5,transition:`left ${D} ease-out`},Tp(P,F,I,L,r)),[`${t}-panel-container`]:{overflow:`hidden`,verticalAlign:`top`,background:L,borderRadius:R,boxShadow:ee,transition:`margin ${D}`,[`${t}-panel-layout`]:{display:`flex`,flexWrap:`nowrap`,alignItems:`stretch`},[`${t}-presets`]:{display:`flex`,flexDirection:`column`,minWidth:re,maxWidth:ie,ul:{height:0,flex:`auto`,listStyle:`none`,overflow:`auto`,margin:0,padding:x,borderInlineEnd:`${c}px ${l} ${ne}`,li:g(g({},Dp),{borderRadius:te,paddingInline:x,paddingBlock:(y-Math.round(a*T))/2,cursor:`pointer`,transition:`all ${D}`,"+ li":{marginTop:S},"&:hover":{background:z}})}},[`${t}-panels`]:{display:`inline-flex`,flexWrap:`nowrap`,direction:`ltr`,[`${t}-panel`]:{borderWidth:`0 0 ${c}px`},"&:last-child":{[`${t}-panel`]:{borderWidth:0}}},[`${t}-panel`]:{verticalAlign:`top`,background:`transparent`,borderRadius:0,borderWidth:0,[`${t}-content, + table`]:{textAlign:`center`},"&-focused":{borderColor:u}}}}),"&-dropdown-range":{padding:`${P*2/3}px 0`,"&-hidden":{display:`none`}},"&-rtl":{direction:`rtl`,[`${t}-separator`]:{transform:`rotate(180deg)`},[`${t}-footer`]:{"&-extra":{direction:`rtl`}}}})},rk(e,`slide-up`),rk(e,`slide-down`),qO(e,`move-up`),qO(e,`move-down`)]},qF=e=>{let{componentCls:t,controlHeightLG:n,controlHeightSM:r,colorPrimary:i,paddingXXS:a}=e;return{pickerCellCls:`${t}-cell`,pickerCellInnerCls:`${t}-cell-inner`,pickerTextHeight:n,pickerPanelCellWidth:r*1.5,pickerPanelCellHeight:r,pickerDateHoverRangeBorderColor:new zf(i).lighten(20).toHexString(),pickerBasicCellHoverWithRangeColor:new zf(i).lighten(35).toHexString(),pickerPanelWithoutTimeCellHeight:n*1.65,pickerYearMonthCellWidth:n*1.5,pickerTimePanelColumnHeight:224,pickerTimePanelColumnWidth:n*1.4,pickerTimePanelCellHeight:28,pickerQuarterPanelContentHeight:n*1.4,pickerCellPaddingVertical:a,pickerCellBorderGap:2,pickerControlIconSize:7,pickerControlIconBorderWidth:1.5}},JF=Fp(`DatePicker`,e=>{let t=Rp(zF(e),qF(e));return[KF(t),GF(t),kk(e,{focusElCls:`${e.componentCls}-focused`})]},e=>({presetsWidth:120,presetsMaxWidth:200,zIndexPopup:e.zIndexPopupBase+50})),YF=e=>{let{calendarCls:t,componentCls:n,calendarFullBg:r,calendarFullPanelBg:i,calendarItemActiveBg:a}=e;return{[t]:g(g(g({},WF(e)),Op(e)),{background:r,"&-rtl":{direction:`rtl`},[`${t}-header`]:{display:`flex`,justifyContent:`flex-end`,padding:`${e.paddingSM}px 0`,[`${t}-year-select`]:{minWidth:e.yearControlWidth},[`${t}-month-select`]:{minWidth:e.monthControlWidth,marginInlineStart:e.marginXS},[`${t}-mode-switch`]:{marginInlineStart:e.marginXS}}}),[`${t} ${n}-panel`]:{background:i,border:0,borderTop:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,borderRadius:0,[`${n}-month-panel, ${n}-date-panel`]:{width:`auto`},[`${n}-body`]:{padding:`${e.paddingXS}px 0`},[`${n}-content`]:{width:`100%`}},[`${t}-mini`]:{borderRadius:e.borderRadiusLG,[`${t}-header`]:{paddingInlineEnd:e.paddingXS,paddingInlineStart:e.paddingXS},[`${n}-panel`]:{borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},[`${n}-content`]:{height:e.miniContentHeight,th:{height:`auto`,padding:0,lineHeight:`${e.weekHeight}px`}},[`${n}-cell::before`]:{pointerEvents:`none`}},[`${t}${t}-full`]:{[`${n}-panel`]:{display:`block`,width:`100%`,textAlign:`end`,background:r,border:0,[`${n}-body`]:{"th, td":{padding:0},th:{height:`auto`,paddingInlineEnd:e.paddingSM,paddingBottom:e.paddingXXS,lineHeight:`${e.weekHeight}px`}}},[`${n}-cell`]:{"&::before":{display:`none`},"&:hover":{[`${t}-date`]:{background:e.controlItemBgHover}},[`${t}-date-today::before`]:{display:`none`},[`&-in-view${n}-cell-selected`]:{[`${t}-date, ${t}-date-today`]:{background:a}},"&-selected, &-selected:hover":{[`${t}-date, ${t}-date-today`]:{[`${t}-date-value`]:{color:e.colorPrimary}}}},[`${t}-date`]:{display:`block`,width:`auto`,height:`auto`,margin:`0 ${e.marginXS/2}px`,padding:`${e.paddingXS/2}px ${e.paddingXS}px 0`,border:0,borderTop:`${e.lineWidthBold}px ${e.lineType} ${e.colorSplit}`,borderRadius:0,transition:`background ${e.motionDurationSlow}`,"&-value":{lineHeight:`${e.dateValueHeight}px`,transition:`color ${e.motionDurationSlow}`},"&-content":{position:`static`,width:`auto`,height:e.dateContentHeight,overflowY:`auto`,color:e.colorText,lineHeight:e.lineHeight,textAlign:`start`},"&-today":{borderColor:e.colorPrimary,[`${t}-date-value`]:{color:e.colorText}}}},[`@media only screen and (max-width: ${e.screenXS}px) `]:{[`${t}`]:{[`${t}-header`]:{display:`block`,[`${t}-year-select`]:{width:`50%`},[`${t}-month-select`]:{width:`calc(50% - ${e.paddingXS}px)`},[`${t}-mode-switch`]:{width:`100%`,marginTop:e.marginXS,marginInlineStart:0,"> label":{width:`50%`,textAlign:`center`}}}}}}},XF=Fp(`Calendar`,e=>{let t=`${e.componentCls}-calendar`;return[YF(Rp(zF(e),qF(e),{calendarCls:t,pickerCellInnerCls:`${e.componentCls}-cell-inner`,calendarFullBg:e.colorBgContainer,calendarFullPanelBg:e.colorBgContainer,calendarItemActiveBg:e.controlItemBgActive,dateValueHeight:e.controlHeightSM,weekHeight:e.controlHeightSM*.75,dateContentHeight:(e.fontSizeSM*e.lineHeightSM+e.marginXS)*3+e.lineWidth*2}))]},{yearControlWidth:80,monthControlWidth:70,miniContentHeight:256});function ZF(e){function t(t,n){return t&&n&&e.getYear(t)===e.getYear(n)}function n(n,r){return t(n,r)&&e.getMonth(n)===e.getMonth(r)}function r(t,r){return n(t,r)&&e.getDate(t)===e.getDate(r)}let i=U({name:`ACalendar`,inheritAttrs:!1,props:{prefixCls:String,locale:{type:Object,default:void 0},validRange:{type:Array,default:void 0},disabledDate:{type:Function,default:void 0},dateFullCellRender:{type:Function,default:void 0},dateCellRender:{type:Function,default:void 0},monthFullCellRender:{type:Function,default:void 0},monthCellRender:{type:Function,default:void 0},headerRender:{type:Function,default:void 0},value:{type:[Object,String],default:void 0},defaultValue:{type:[Object,String],default:void 0},mode:{type:String,default:void 0},fullscreen:{type:Boolean,default:void 0},onChange:{type:Function,default:void 0},"onUpdate:value":{type:Function,default:void 0},onPanelChange:{type:Function,default:void 0},onSelect:{type:Function,default:void 0},valueFormat:{type:String,default:void 0}},slots:Object,setup(i,a){let{emit:o,slots:s,attrs:c}=a,l=i,{prefixCls:u,direction:d}=Z(`picker`,l),[f,p]=XF(u),m=G(()=>`${u.value}-calendar`),_=t=>l.valueFormat?e.toString(t,l.valueFormat):t,v=G(()=>l.value?l.valueFormat?e.toDate(l.value,l.valueFormat):l.value:l.value===``?void 0:l.value),[y,b]=gS(()=>v.value||e.getNow(),{defaultValue:G(()=>l.defaultValue?l.valueFormat?e.toDate(l.defaultValue,l.valueFormat):l.defaultValue:l.defaultValue===``?void 0:l.defaultValue).value,value:v}),[x,S]=gS(`month`,{value:vn(l,`mode`)}),C=G(()=>x.value===`year`?`month`:`date`),w=G(()=>t=>(l.validRange?e.isAfter(l.validRange[0],t)||e.isAfter(t,l.validRange[1]):!1)||!!l.disabledDate?.call(l,t)),T=(e,t)=>{o(`panelChange`,_(e),t)},E=e=>{if(b(e),!r(e,y.value)){(C.value===`date`&&!n(e,y.value)||C.value===`month`&&!t(e,y.value))&&T(e,x.value);let r=_(e);o(`update:value`,r),o(`change`,r)}},D=e=>{S(e),T(y.value,e)},O=(e,t)=>{E(e),o(`select`,_(e),{source:t})},[k]=$l(`Calendar`,G(()=>{let{locale:e}=l,t=g(g({},Yl),e);return t.lang=g(g({},t.lang),(e||{}).lang),t}));return()=>{let t=e.getNow(),{dateFullCellRender:i=s?.dateFullCellRender,dateCellRender:a=s?.dateCellRender,monthFullCellRender:o=s?.monthFullCellRender,monthCellRender:g=s?.monthCellRender,headerRender:_=s?.headerRender,fullscreen:v=!0,validRange:b}=l,S=n=>{let{current:o}=n;return i?i({current:o}):W(`div`,{class:K(`${u.value}-cell-inner`,`${m.value}-date`,{[`${m.value}-date-today`]:r(t,o)})},[W(`div`,{class:`${m.value}-date-value`},[String(e.getDate(o)).padStart(2,`0`)]),W(`div`,{class:`${m.value}-date-content`},[a&&a({current:o})])])},T=(r,i)=>{let{current:a}=r;if(o)return o({current:a});let s=i.shortMonths||e.locale.getShortMonths(i.locale);return W(`div`,{class:K(`${u.value}-cell-inner`,`${m.value}-date`,{[`${m.value}-date-today`]:n(t,a)})},[W(`div`,{class:`${m.value}-date-value`},[s[e.getMonth(a)]]),W(`div`,{class:`${m.value}-date-content`},[g&&g({current:a})])])};return f(W(`div`,h(h({},c),{},{class:K(m.value,{[`${m.value}-full`]:v,[`${m.value}-mini`]:!v,[`${m.value}-rtl`]:d.value===`rtl`},c.class,p.value)}),[_?_({value:y.value,type:x.value,onChange:e=>{O(e,`customize`)},onTypeChange:D}):W(wF,{prefixCls:m.value,value:y.value,generateConfig:e,mode:x.value,fullscreen:v,locale:k.value.lang,validRange:b,onChange:O,onModeChange:D},null),W(wP,{value:y.value,prefixCls:u.value,locale:k.value.lang,generateConfig:e,dateRender:S,monthCellRender:e=>T(e,k.value.lang),onSelect:e=>{O(e,C.value)},mode:C.value,picker:C.value,disabledDate:w.value,hideHeader:!0},null)]))}}});return i.install=function(e){return e.component(i.name,i),e},i}var QF=_l(ZF(JM));function $F(e){let t=V(),n=V(!1);function r(){var r=[...arguments];n.value||(pl.cancel(t.value),t.value=pl(()=>{e(...r)}))}return ni(()=>{n.value=!0,pl.cancel(t.value)}),r}function eI(e){let t=V([]),n=V(typeof e==`function`?e():e),r=$F(()=>{let e=n.value;t.value.forEach(t=>{e=t(e)}),t.value=[],n.value=e});function i(e){t.value.push(e),r()}return[n,i]}var tI=U({compatConfig:{MODE:3},name:`TabNode`,props:{id:{type:String},prefixCls:{type:String},tab:{type:Object},active:{type:Boolean},closable:{type:Boolean},editable:{type:Object},onClick:{type:Function},onResize:{type:Function},renderWrapper:{type:Function},removeAriaLabel:{type:String},onFocus:{type:Function}},emits:[`click`,`resize`,`remove`,`focus`],setup(e,t){let{expose:n,attrs:r}=t,i=B();function a(t){e.tab?.disabled||e.onClick(t)}n({domRef:i});function o(t){t.preventDefault(),t.stopPropagation(),e.editable.onEdit(`remove`,{key:e.tab?.key,event:t})}let s=G(()=>e.editable&&e.closable!==!1&&!e.tab?.disabled);return()=>{let{prefixCls:t,id:n,active:c,tab:{key:l,tab:u,disabled:d,closeIcon:f},renderWrapper:p,removeAriaLabel:m,editable:h,onFocus:g}=e,_=`${t}-tab`,v=W(`div`,{key:l,ref:i,class:K(_,{[`${_}-with-remove`]:s.value,[`${_}-active`]:c,[`${_}-disabled`]:d}),style:r.style,onClick:a},[W(`div`,{role:`tab`,"aria-selected":c,id:n&&`${n}-tab-${l}`,class:`${_}-btn`,"aria-controls":n&&`${n}-panel-${l}`,"aria-disabled":d,tabindex:d?null:0,onClick:e=>{e.stopPropagation(),a(e)},onKeydown:e=>{[$.SPACE,$.ENTER].includes(e.which)&&(e.preventDefault(),a(e))},onFocus:g},[typeof u==`function`?u():u]),s.value&&W(`button`,{type:`button`,"aria-label":m||`remove`,tabindex:0,class:`${_}-remove`,onClick:e=>{e.stopPropagation(),o(e)}},[f?.()||h.removeIcon?.call(h)||`×`])]);return p?p(v):v}}}),nI={width:0,height:0,left:0,top:0};function rI(e,t){let n=B(new Map);return ar(()=>{let r=new Map,i=e.value,a=t.value.get(i[0]?.key)||nI,o=a.left+a.width;for(let e=0;e{let{prefixCls:t,editable:n,locale:a}=e;return!n||n.showAdd===!1?null:W(`button`,{ref:i,type:`button`,class:`${t}-nav-add`,style:r.style,"aria-label":a?.addAriaLabel||`Add tab`,onClick:e=>{n.onEdit(`add`,{event:e})}},[n.addIcon?n.addIcon():`+`])}}}),aI=U({compatConfig:{MODE:3},name:`OperationNode`,inheritAttrs:!1,props:{prefixCls:{type:String},id:{type:String},tabs:{type:Object},rtl:{type:Boolean},tabBarGutter:{type:Number},activeKey:{type:[String,Number]},mobile:{type:Boolean},moreIcon:Q.any,moreTransitionName:{type:String},editable:{type:Object},locale:{type:Object,default:void 0},removeAriaLabel:String,onTabClick:{type:Function},popupClassName:String,getPopupContainer:Y()},emits:[`tabClick`],slots:Object,setup(e,t){let{attrs:n,slots:r}=t,[i,a]=_S(!1),[o,s]=_S(null),c=t=>{let n=e.tabs.filter(e=>!e.disabled),r=n.findIndex(e=>e.key===o.value)||0,i=n.length;for(let e=0;e{let{which:n}=t;if(!i.value)[$.DOWN,$.SPACE,$.ENTER].includes(n)&&(a(!0),t.preventDefault());else switch(n){case $.UP:c(-1),t.preventDefault();break;case $.DOWN:c(1),t.preventDefault();break;case $.ESC:a(!1);break;case $.SPACE:case $.ENTER:o.value!==null&&e.onTabClick(o.value,t)}},u=G(()=>`${e.id}-more-popup`),d=G(()=>o.value===null?null:`${u.value}-${o.value}`),f=(t,n)=>{t.preventDefault(),t.stopPropagation(),e.editable.onEdit(`remove`,{key:n,event:t})};return $r(()=>{H(o,()=>{let e=document.getElementById(d.value);e&&e.scrollIntoView&&e.scrollIntoView(!1)},{flush:`post`,immediate:!0})}),H(i,()=>{i.value||s(null)}),zj({}),()=>{let{prefixCls:t,id:s,tabs:c,locale:p,mobile:m,moreIcon:h=r.moreIcon?.call(r)||W(Mj,null,null),moreTransitionName:g,editable:_,tabBarGutter:v,rtl:y,onTabClick:b,popupClassName:x}=e;if(!c.length)return null;let S=`${t}-dropdown`,C=p?.dropdownAriaLabel,w={[y?`marginRight`:`marginLeft`]:v};c.length||(w.visibility=`hidden`,w.order=1);let T=K({[`${S}-rtl`]:y,[`${x}`]:!0}),E=m?null:W(ij,{prefixCls:S,trigger:[`hover`],visible:i.value,transitionName:g,onVisibleChange:a,overlayClassName:T,mouseEnterDelay:.1,mouseLeaveDelay:.1,getPopupContainer:e.getPopupContainer},{overlay:()=>W(EM,{onClick:e=>{let{key:t,domEvent:n}=e;b(t,n),a(!1)},id:u.value,tabindex:-1,role:`listbox`,"aria-activedescendant":d.value,selectedKeys:[o.value],"aria-label":C===void 0?`expanded dropdown`:C},{default:()=>[c.map(t=>{let n=_&&t.closable!==!1&&!t.disabled;return W(oM,{key:t.key,id:`${u.value}-${t.key}`,role:`option`,"aria-controls":s&&`${s}-panel-${t.key}`,disabled:t.disabled},{default:()=>[W(`span`,null,[typeof t.tab==`function`?t.tab():t.tab]),n&&W(`button`,{type:`button`,"aria-label":e.removeAriaLabel||`remove`,tabindex:0,class:`${S}-menu-item-remove`,onClick:e=>{e.stopPropagation(),f(e,t.key)}},[t.closeIcon?.call(t)||_.removeIcon?.call(_)||`×`])]})})]}),default:()=>W(`button`,{type:`button`,class:`${t}-nav-more`,style:w,tabindex:-1,"aria-hidden":`true`,"aria-haspopup":`listbox`,"aria-controls":u.value,id:`${s}-more`,"aria-expanded":i.value,onKeydown:l},[h])});return W(`div`,{class:K(`${t}-nav-operations`,n.class),style:n.style},[E,W(iI,{prefixCls:t,locale:p,editable:_},null)])}}}),oI=Symbol(`tabsContextKey`),sI=e=>{er(oI,e)},cI=()=>tr(oI,{tabs:B([]),prefixCls:B()}),lI=.1,uI=.01,dI=20,fI=.995**dI;function pI(e,t){let[n,r]=_S(),[i,a]=_S(0),[o,s]=_S(0),[c,l]=_S(),u=B();function d(e){let{screenX:t,screenY:n}=e.touches[0];r({x:t,y:n}),clearInterval(u.value)}function f(e){if(!n.value)return;e.preventDefault();let{screenX:o,screenY:c}=e.touches[0],u=o-n.value.x,d=c-n.value.y;t(u,d),r({x:o,y:c});let f=Date.now();s(f-i.value),a(f),l({x:u,y:d})}function p(){if(!n.value)return;let e=c.value;if(r(null),l(null),e){let n=e.x/o.value,r=e.y/o.value;if(Math.max(Math.abs(n),Math.abs(r)){Math.abs(i)o?(i=n,m.value=`x`):(i=r,m.value=`y`),t(-i,-i)&&e.preventDefault()}let g=B({onTouchStart:d,onTouchMove:f,onTouchEnd:p,onWheel:h});function _(e){g.value.onTouchStart(e)}function v(e){g.value.onTouchMove(e)}function y(e){g.value.onTouchEnd(e)}function b(e){g.value.onWheel(e)}$r(()=>{var t,n;document.addEventListener(`touchmove`,v,{passive:!1}),document.addEventListener(`touchend`,y,{passive:!1}),(t=e.value)==null||t.addEventListener(`touchstart`,_,{passive:!1}),(n=e.value)==null||n.addEventListener(`wheel`,b,{passive:!1})}),ni(()=>{document.removeEventListener(`touchmove`,v),document.removeEventListener(`touchend`,y)})}function mI(e,t){let n=B(e);function r(e){let r=typeof e==`function`?e(n.value):e;r!==n.value&&t(r,n.value),n.value=r}return[n,r]}var hI=()=>{let e=B(new Map);return ei(()=>{e.value=new Map}),[t=>n=>{e.value.set(t,n)},e]},gI={width:0,height:0,left:0,top:0,right:0},_I=()=>({id:{type:String},tabPosition:{type:String},activeKey:{type:[String,Number]},rtl:{type:Boolean},animated:q(),editable:q(),moreIcon:Q.any,moreTransitionName:{type:String},mobile:{type:Boolean},tabBarGutter:{type:Number},renderTabBar:{type:Function},locale:q(),popupClassName:String,getPopupContainer:Y(),onTabClick:{type:Function},onTabScroll:{type:Function}}),vI=(e,t)=>{let{offsetWidth:n,offsetHeight:r,offsetTop:i,offsetLeft:a}=e,{width:o,height:s,x:c,y:l}=e.getBoundingClientRect();return Math.abs(o-n)<1?[o,s,c-t.x,l-t.y]:[n,r,a,i]},yI=U({compatConfig:{MODE:3},name:`TabNavList`,inheritAttrs:!1,props:_I(),slots:Object,emits:[`tabClick`,`tabScroll`],setup(e,t){let{attrs:n,slots:r}=t,{tabs:i,prefixCls:a}=cI(),o=V(),s=V(),c=V(),l=V(),[u,d]=hI(),f=G(()=>e.tabPosition===`top`||e.tabPosition===`bottom`),[p,m]=mI(0,(t,n)=>{f.value&&e.onTabScroll&&e.onTabScroll({direction:t>n?`left`:`right`})}),[_,v]=mI(0,(t,n)=>{!f.value&&e.onTabScroll&&e.onTabScroll({direction:t>n?`top`:`bottom`})}),[y,b]=_S(0),[x,S]=_S(0),[C,w]=_S(null),[T,E]=_S(null),[D,O]=_S(0),[k,A]=_S(0),[j,M]=eI(new Map),N=rI(i,j),P=G(()=>`${a.value}-nav-operations-hidden`),F=V(0),I=V(0);ar(()=>{f.value?e.rtl?(F.value=0,I.value=Math.max(0,y.value-C.value)):(F.value=Math.min(0,C.value-y.value),I.value=0):(F.value=Math.min(0,T.value-x.value),I.value=0)});let L=e=>eI.value?I.value:e,R=V(),[ee,te]=_S(),ne=()=>{te(Date.now())},z=()=>{clearTimeout(R.value)},re=(e,t)=>{e(e=>L(e+t))};pI(o,(e,t)=>{if(f.value){if(C.value>=y.value)return!1;re(m,e)}else{if(T.value>=x.value)return!1;re(v,t)}return z(),ne(),!0}),H(ee,()=>{z(),ee.value&&(R.value=setTimeout(()=>{te(0)},100))});let ie=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activeKey,n=N.value.get(t)||{width:0,height:0,left:0,right:0,top:0};if(f.value){let t=p.value;e.rtl?n.rightp.value+C.value&&(t=n.right+n.width-C.value):n.left<-p.value?t=-n.left:n.left+n.width>-p.value+C.value&&(t=-(n.left+n.width-C.value)),v(0),m(L(t))}else{let e=_.value;n.top<-_.value?e=-n.top:n.top+n.height>-_.value+T.value&&(e=-(n.top+n.height-T.value)),m(0),v(L(e))}},ae=V(0),oe=V(0);ar(()=>{let t,n,r,a,o,s,c=N.value;[`top`,`bottom`].includes(e.tabPosition)?(t=`width`,a=C.value,o=y.value,s=D.value,n=e.rtl?`right`:`left`,r=Math.abs(p.value)):(t=`height`,a=T.value,o=y.value,s=k.value,n=`top`,r=-_.value);let l=a;o+s>a&&or+l){f=e-1;break}}let m=0;for(let e=d-1;e>=0;--e)if((c.get(u[e].key)||gI)[n]{M(()=>{let e=new Map,t=s.value?.getBoundingClientRect();return i.value.forEach(n=>{let{key:r}=n,i=d.value.get(r),a=i?.$el||i;if(a){let[n,i,o,s]=vI(a,t);e.set(r,{width:n,height:i,left:o,top:s})}}),e})};H(()=>i.value.map(e=>e.key).join(`%%`),()=>{se()},{flush:`post`});let ce=()=>{let e=o.value?.offsetWidth||0,t=o.value?.offsetHeight||0,n=l.value?.$el||{},r=n.offsetWidth||0,i=n.offsetHeight||0;w(e),E(t),O(r),A(i);let a=(s.value?.offsetWidth||0)-r,c=(s.value?.offsetHeight||0)-i;b(a),S(c),se()},le=G(()=>[...i.value.slice(0,ae.value),...i.value.slice(oe.value+1)]),[ue,de]=_S(),fe=G(()=>N.value.get(e.activeKey)),pe=V(),me=()=>{pl.cancel(pe.value)};H([fe,f,()=>e.rtl],()=>{let t={};fe.value&&(f.value?(e.rtl?t.right=cc(fe.value.right):t.left=cc(fe.value.left),t.width=cc(fe.value.width)):(t.top=cc(fe.value.top),t.height=cc(fe.value.height))),me(),pe.value=pl(()=>{de(t)})}),H([()=>e.activeKey,fe,N,f],()=>{ie()},{flush:`post`}),H([()=>e.rtl,()=>e.tabBarGutter,()=>e.activeKey,()=>i.value],()=>{ce()},{flush:`post`});let he=e=>{let{position:t,prefixCls:n,extra:r}=e;if(!r)return null;let i=r?.({position:t});return i?W(`div`,{class:`${n}-extra-content`},[i]):null};return ni(()=>{z(),me()}),()=>{let{id:t,animated:d,activeKey:m,rtl:v,editable:b,locale:S,tabPosition:w,tabBarGutter:E,onTabClick:D}=e,{class:O,style:k}=n,A=a.value,j=!!le.value.length,M=`${A}-nav-wrap`,N,F,I,L;f.value?v?(F=p.value>0,N=p.value+C.value{let{key:i}=e;return W(tI,{id:t,prefixCls:A,key:i,tab:e,style:n===0?void 0:R,closable:e.closable,editable:b,active:i===m,removeAriaLabel:S?.removeAriaLabel,ref:u(i),onClick:e=>{D(i,e)},onFocus:()=>{ie(i),ne(),o.value&&(v||(o.value.scrollLeft=0),o.value.scrollTop=0)}},r)});return W(`div`,{role:`tablist`,class:K(`${A}-nav`,O),style:k,onKeydown:()=>{ne()}},[W(he,{position:`left`,prefixCls:A,extra:r.leftExtra},null),W(sl,{onResize:ce},{default:()=>[W(`div`,{class:K(M,{[`${M}-ping-left`]:N,[`${M}-ping-right`]:F,[`${M}-ping-top`]:I,[`${M}-ping-bottom`]:L}),ref:o},[W(sl,{onResize:ce},{default:()=>[W(`div`,{ref:s,class:`${A}-nav-list`,style:{transform:`translate(${p.value}px, ${_.value}px)`,transition:ee.value?`none`:void 0}},[te,W(iI,{ref:l,prefixCls:A,locale:S,editable:b,style:g(g({},te.length===0?void 0:R),{visibility:j?`hidden`:null})},null),W(`div`,{class:K(`${A}-ink-bar`,{[`${A}-ink-bar-animated`]:d.inkBar}),style:ue.value},null)])]})])]}),W(aI,h(h({},e),{},{removeAriaLabel:S?.removeAriaLabel,ref:c,prefixCls:A,tabs:le.value,class:!j&&P.value}),SO(r,[`moreIcon`])),W(he,{position:`right`,prefixCls:A,extra:r.rightExtra},null),W(he,{position:`right`,prefixCls:A,extra:r.tabBarExtraContent},null)])}}}),bI=U({compatConfig:{MODE:3},name:`TabPanelList`,inheritAttrs:!1,props:{activeKey:{type:[String,Number]},id:{type:String},rtl:{type:Boolean},animated:{type:Object,default:void 0},tabPosition:{type:String},destroyInactiveTabPane:{type:Boolean}},setup(e){let{tabs:t,prefixCls:n}=cI();return()=>{let{id:r,activeKey:i,animated:a,tabPosition:o,rtl:s,destroyInactiveTabPane:c}=e,l=a.tabPane,u=n.value,d=t.value.findIndex(e=>e.key===i);return W(`div`,{class:`${u}-content-holder`},[W(`div`,{class:[`${u}-content`,`${u}-content-${o}`,{[`${u}-content-animated`]:l}],style:d&&l?{[s?`marginRight`:`marginLeft`]:`-${d}00%`}:null},[t.value.map(e=>s_(e.node,{key:e.key,prefixCls:u,tabKey:e.key,id:r,animated:l,active:e.key===i,destroyInactiveTabPane:c}))])])}}}),xI={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z`}},{tag:`path`,attrs:{d:`M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z`}}]},name:`plus`,theme:`outlined`};function SI(e){for(var t=1;t{let{componentCls:t,motionDurationSlow:n}=e;return[{[t]:{[`${t}-switch`]:{"&-appear, &-enter":{transition:`none`,"&-start":{opacity:0},"&-active":{opacity:1,transition:`opacity ${n}`}},"&-leave":{position:`absolute`,transition:`none`,inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${n}`}}}}},[rk(e,`slide-up`),rk(e,`slide-down`)]]},EI=e=>{let{componentCls:t,tabsCardHorizontalPadding:n,tabsCardHeadBackground:r,tabsCardGutter:i,colorSplit:a}=e;return{[`${t}-card`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{margin:0,padding:n,background:r,border:`${e.lineWidth}px ${e.lineType} ${a}`,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`${t}-tab-active`]:{color:e.colorPrimary,background:e.colorBgContainer},[`${t}-ink-bar`]:{visibility:`hidden`}},[`&${t}-top, &${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginLeft:{_skip_check_:!0,value:`${i}px`}}}},[`&${t}-top`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`},[`${t}-tab-active`]:{borderBottomColor:e.colorBgContainer}}},[`&${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},[`${t}-tab-active`]:{borderTopColor:e.colorBgContainer}}},[`&${t}-left, &${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginTop:`${i}px`}}},[`&${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${e.borderRadiusLG}px 0 0 ${e.borderRadiusLG}px`}},[`${t}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:e.colorBgContainer}}}},[`&${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px 0`}},[`${t}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:e.colorBgContainer}}}}}}},DI=e=>{let{componentCls:t,tabsHoverColor:n,dropdownEdgeChildVerticalPadding:r}=e;return{[`${t}-dropdown`]:g(g({},Op(e)),{position:`absolute`,top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:e.zIndexPopup,display:`block`,"&-hidden":{display:`none`},[`${t}-dropdown-menu`]:{maxHeight:e.tabsDropdownHeight,margin:0,padding:`${r}px 0`,overflowX:`hidden`,overflowY:`auto`,textAlign:{_skip_check_:!0,value:`left`},listStyleType:`none`,backgroundColor:e.colorBgContainer,backgroundClip:`padding-box`,borderRadius:e.borderRadiusLG,outline:`none`,boxShadow:e.boxShadowSecondary,"&-item":g(g({},Dp),{display:`flex`,alignItems:`center`,minWidth:e.tabsDropdownWidth,margin:0,padding:`${e.paddingXXS}px ${e.paddingSM}px`,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:`pointer`,transition:`all ${e.motionDurationSlow}`,"> span":{flex:1,whiteSpace:`nowrap`},"&-remove":{flex:`none`,marginLeft:{_skip_check_:!0,value:e.marginSM},color:e.colorTextDescription,fontSize:e.fontSizeSM,background:`transparent`,border:0,cursor:`pointer`,"&:hover":{color:n}},"&:hover":{background:e.controlItemBgHover},"&-disabled":{"&, &:hover":{color:e.colorTextDisabled,background:`transparent`,cursor:`not-allowed`}}})}})}},OI=e=>{let{componentCls:t,margin:n,colorSplit:r}=e;return{[`${t}-top, ${t}-bottom`]:{flexDirection:`column`,[`> ${t}-nav, > div > ${t}-nav`]:{margin:`0 0 ${n}px 0`,"&::before":{position:`absolute`,right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${e.lineWidth}px ${e.lineType} ${r}`,content:`''`},[`${t}-ink-bar`]:{height:e.lineWidthBold,"&-animated":{transition:`width ${e.motionDurationSlow}, left ${e.motionDurationSlow}, + right ${e.motionDurationSlow}`}},[`${t}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:e.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowRight},[`&${t}-nav-wrap-ping-left::before`]:{opacity:1},[`&${t}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${t}-top`]:{[`> ${t}-nav, + > div > ${t}-nav`]:{"&::before":{bottom:0},[`${t}-ink-bar`]:{bottom:0}}},[`${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,marginTop:`${n}px`,marginBottom:0,"&::before":{top:0},[`${t}-ink-bar`]:{top:0}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0}},[`${t}-left, ${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{flexDirection:`column`,minWidth:e.controlHeight*1.25,[`${t}-tab`]:{padding:`${e.paddingXS}px ${e.paddingLG}px`,textAlign:`center`},[`${t}-tab + ${t}-tab`]:{margin:`${e.margin}px 0 0 0`},[`${t}-nav-wrap`]:{flexDirection:`column`,"&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:e.controlHeight},"&::before":{top:0,boxShadow:e.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:e.boxShadowTabsOverflowBottom},[`&${t}-nav-wrap-ping-top::before`]:{opacity:1},[`&${t}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${t}-ink-bar`]:{width:e.lineWidthBold,"&-animated":{transition:`height ${e.motionDurationSlow}, top ${e.motionDurationSlow}`}},[`${t}-nav-list, ${t}-nav-operations`]:{flex:`1 0 auto`,flexDirection:`column`}}},[`${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{marginLeft:{_skip_check_:!0,value:`-${e.lineWidth}px`},borderLeft:{_skip_check_:!0,value:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:e.paddingLG}}}},[`${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,[`${t}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:-e.lineWidth},borderRight:{_skip_check_:!0,value:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingRight:{_skip_check_:!0,value:e.paddingLG}}}}}},kI=e=>{let{componentCls:t,padding:n}=e;return{[t]:{"&-small":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXS}px 0`,fontSize:e.fontSize}}},"&-large":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${n}px 0`,fontSize:e.fontSizeLG}}}},[`${t}-card`]:{[`&${t}-small`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXXS*1.5}px ${n}px`}},[`&${t}-bottom`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`0 0 ${e.borderRadius}px ${e.borderRadius}px`}},[`&${t}-top`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`${e.borderRadius}px ${e.borderRadius}px 0 0`}},[`&${t}-right`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${e.borderRadius}px ${e.borderRadius}px 0`}}},[`&${t}-left`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${e.borderRadius}px 0 0 ${e.borderRadius}px`}}}},[`&${t}-large`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXS}px ${n}px ${e.paddingXXS*1.5}px`}}}}}},AI=e=>{let{componentCls:t,tabsActiveColor:n,tabsHoverColor:r,iconCls:i,tabsHorizontalGutter:a}=e,o=`${t}-tab`;return{[o]:{position:`relative`,display:`inline-flex`,alignItems:`center`,padding:`${e.paddingSM}px 0`,fontSize:`${e.fontSize}px`,background:`transparent`,border:0,outline:`none`,cursor:`pointer`,"&-btn, &-remove":g({"&:focus:not(:focus-visible), &:active":{color:n}},Pp(e)),"&-btn":{outline:`none`,transition:`all 0.3s`},"&-remove":{flex:`none`,marginRight:{_skip_check_:!0,value:-e.marginXXS},marginLeft:{_skip_check_:!0,value:e.marginXS},color:e.colorTextDescription,fontSize:e.fontSizeSM,background:`transparent`,border:`none`,outline:`none`,cursor:`pointer`,transition:`all ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextHeading}},"&:hover":{color:r},[`&${o}-active ${o}-btn`]:{color:e.colorPrimary,textShadow:e.tabsActiveTextShadow},[`&${o}-disabled`]:{color:e.colorTextDisabled,cursor:`not-allowed`},[`&${o}-disabled ${o}-btn, &${o}-disabled ${t}-remove`]:{"&:focus, &:active":{color:e.colorTextDisabled}},[`& ${o}-remove ${i}`]:{margin:0},[i]:{marginRight:{_skip_check_:!0,value:e.marginSM}}},[`${o} + ${o}`]:{margin:{_skip_check_:!0,value:`0 0 0 ${a}px`}}}},jI=e=>{let{componentCls:t,tabsHorizontalGutter:n,iconCls:r,tabsCardGutter:i}=e;return{[`${t}-rtl`]:{direction:`rtl`,[`${t}-nav`]:{[`${t}-tab`]:{margin:{_skip_check_:!0,value:`0 0 0 ${n}px`},[`${t}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[r]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:`${e.marginSM}px`}},[`${t}-tab-remove`]:{marginRight:{_skip_check_:!0,value:`${e.marginXS}px`},marginLeft:{_skip_check_:!0,value:`-${e.marginXXS}px`},[r]:{margin:0}}}},[`&${t}-left`]:{[`> ${t}-nav`]:{order:1},[`> ${t}-content-holder`]:{order:0}},[`&${t}-right`]:{[`> ${t}-nav`]:{order:0},[`> ${t}-content-holder`]:{order:1}},[`&${t}-card${t}-top, &${t}-card${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginRight:{_skip_check_:!0,value:`${i}px`},marginLeft:{_skip_check_:!0,value:0}}}}},[`${t}-dropdown-rtl`]:{direction:`rtl`},[`${t}-menu-item`]:{[`${t}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:`right`}}}}},MI=e=>{let{componentCls:t,tabsCardHorizontalPadding:n,tabsCardHeight:r,tabsCardGutter:i,tabsHoverColor:a,tabsActiveColor:o,colorSplit:s}=e;return{[t]:g(g(g(g({},Op(e)),{display:`flex`,[`> ${t}-nav, > div > ${t}-nav`]:{position:`relative`,display:`flex`,flex:`none`,alignItems:`center`,[`${t}-nav-wrap`]:{position:`relative`,display:`flex`,flex:`auto`,alignSelf:`stretch`,overflow:`hidden`,whiteSpace:`nowrap`,transform:`translate(0)`,"&::before, &::after":{position:`absolute`,zIndex:1,opacity:0,transition:`opacity ${e.motionDurationSlow}`,content:`''`,pointerEvents:`none`}},[`${t}-nav-list`]:{position:`relative`,display:`flex`,transition:`opacity ${e.motionDurationSlow}`},[`${t}-nav-operations`]:{display:`flex`,alignSelf:`stretch`},[`${t}-nav-operations-hidden`]:{position:`absolute`,visibility:`hidden`,pointerEvents:`none`},[`${t}-nav-more`]:{position:`relative`,padding:n,background:`transparent`,border:0,"&::after":{position:`absolute`,right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:e.controlHeightLG/8,transform:`translateY(100%)`,content:`''`}},[`${t}-nav-add`]:g({minWidth:`${r}px`,marginLeft:{_skip_check_:!0,value:`${i}px`},padding:`0 ${e.paddingXS}px`,background:`transparent`,border:`${e.lineWidth}px ${e.lineType} ${s}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,outline:`none`,cursor:`pointer`,color:e.colorText,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&:hover":{color:a},"&:active, &:focus:not(:focus-visible)":{color:o}},Pp(e))},[`${t}-extra-content`]:{flex:`none`},[`${t}-ink-bar`]:{position:`absolute`,background:e.colorPrimary,pointerEvents:`none`}}),AI(e)),{[`${t}-content`]:{position:`relative`,display:`flex`,width:`100%`,"&-animated":{transition:`margin 0.3s`}},[`${t}-content-holder`]:{flex:`auto`,minWidth:0,minHeight:0},[`${t}-tabpane`]:{outline:`none`,flex:`none`,width:`100%`}}),[`${t}-centered`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-nav-wrap`]:{[`&:not([class*='${t}-nav-wrap-ping'])`]:{justifyContent:`center`}}}}}},NI=Fp(`Tabs`,e=>{let t=e.controlHeightLG,n=Rp(e,{tabsHoverColor:e.colorPrimaryHover,tabsActiveColor:e.colorPrimaryActive,tabsCardHorizontalPadding:`${(t-Math.round(e.fontSize*e.lineHeight))/2-e.lineWidth}px ${e.padding}px`,tabsCardHeight:t,tabsCardGutter:e.marginXXS/2,tabsHorizontalGutter:32,tabsCardHeadBackground:e.colorFillAlter,dropdownEdgeChildVerticalPadding:e.paddingXXS,tabsActiveTextShadow:`0 0 0.25px currentcolor`,tabsDropdownHeight:200,tabsDropdownWidth:120});return[kI(n),jI(n),OI(n),DI(n),EI(n),MI(n),TI(n)]},e=>({zIndexPopup:e.zIndexPopupBase+50})),PI=0,FI=()=>({prefixCls:{type:String},id:{type:String},popupClassName:String,getPopupContainer:Y(),activeKey:{type:[String,Number]},defaultActiveKey:{type:[String,Number]},direction:X(),animated:Sl([Boolean,Object]),renderTabBar:Y(),tabBarGutter:{type:Number},tabBarStyle:q(),tabPosition:X(),destroyInactiveTabPane:J(),hideAdd:Boolean,type:X(),size:X(),centered:Boolean,onEdit:Y(),onChange:Y(),onTabClick:Y(),onTabScroll:Y(),"onUpdate:activeKey":Y(),locale:q(),onPrevClick:Y(),onNextClick:Y(),tabBarExtraContent:Q.any});function II(e){return e.map(e=>{if(al(e)){let t=g({},e.props||{});for(let[e,n]of Object.entries(t))delete t[e],t[oc(e)]=n;let n=e.children||{},r=e.key===void 0?void 0:e.key,{tab:i=n.tab,disabled:a,forceRender:o,closable:s,animated:c,active:l,destroyInactiveTabPane:u}=t;return g(g({key:r},t),{node:e,closeIcon:n.closeIcon,tab:i,disabled:a===``||a,forceRender:o===``||o,closable:s===``||s,animated:c===``||c,active:l===``||l,destroyInactiveTabPane:u===``||u})}return null}).filter(e=>e)}var LI=U({compatConfig:{MODE:3},name:`InternalTabs`,inheritAttrs:!1,props:g(g({},Bc(FI(),{tabPosition:`top`,animated:{inkBar:!0,tabPane:!1}})),{tabs:xl()}),slots:Object,setup(e,t){let{attrs:n,slots:r}=t;wh(e.onPrevClick===void 0&&e.onNextClick===void 0,`Tabs`,"`onPrevClick / @prevClick` and `onNextClick / @nextClick` has been removed. Please use `onTabScroll / @tabScroll` instead."),wh(e.tabBarExtraContent===void 0,`Tabs`,"`tabBarExtraContent` prop has been removed. Please use `rightExtra` slot instead."),wh(r.tabBarExtraContent===void 0,`Tabs`,"`tabBarExtraContent` slot is deprecated. Please use `rightExtra` slot instead.");let{prefixCls:i,direction:a,size:o,rootPrefixCls:s,getPopupContainer:c}=Z(`tabs`,e),[l,u]=NI(i),d=G(()=>a.value===`rtl`),f=G(()=>{let{animated:t,tabPosition:n}=e;return t===!1||[`left`,`right`].includes(n)?{inkBar:!1,tabPane:!1}:t===!0?{inkBar:!0,tabPane:!0}:g({inkBar:!0,tabPane:!1},typeof t==`object`?t:{})}),[p,m]=_S(!1);$r(()=>{m(wx())});let[_,v]=gS(()=>e.tabs[0]?.key,{value:G(()=>e.activeKey),defaultValue:e.defaultActiveKey}),[y,b]=_S(()=>e.tabs.findIndex(e=>e.key===_.value));ar(()=>{let t=e.tabs.findIndex(e=>e.key===_.value);t===-1&&(t=Math.max(0,Math.min(y.value,e.tabs.length-1)),v(e.tabs[t]?.key)),b(t)});let[x,S]=gS(null,{value:G(()=>e.id)}),C=G(()=>p.value&&![`left`,`right`].includes(e.tabPosition)?`top`:e.tabPosition);$r(()=>{e.id||(S(`rc-tabs-${PI}`),PI+=1)});let w=(t,n)=>{var r,i;(r=e.onTabClick)==null||r.call(e,t,n);let a=t!==_.value;v(t),a&&((i=e.onChange)==null||i.call(e,t))};return sI({tabs:G(()=>e.tabs),prefixCls:i}),()=>{let{id:t,type:a,tabBarGutter:m,tabBarStyle:v,locale:y,destroyInactiveTabPane:b,renderTabBar:S=r.renderTabBar,onTabScroll:T,hideAdd:E,centered:D}=e,O={id:x.value,activeKey:_.value,animated:f.value,tabPosition:C.value,rtl:d.value,mobile:p.value},k;a===`editable-card`&&(k={onEdit:(t,n)=>{let{key:r,event:i}=n;var a;(a=e.onEdit)==null||a.call(e,t===`add`?i:r,t)},removeIcon:()=>W(UC,null,null),addIcon:r.addIcon?r.addIcon:()=>W(wI,null,null),showAdd:E!==!0});let A,j=g(g({},O),{moreTransitionName:`${s.value}-slide-up`,editable:k,locale:y,tabBarGutter:m,onTabClick:w,onTabScroll:T,style:v,getPopupContainer:c.value,popupClassName:K(e.popupClassName,u.value)});A=S?S(g(g({},j),{DefaultTabBar:yI})):W(yI,j,SO(r,[`moreIcon`,`leftExtra`,`rightExtra`,`tabBarExtraContent`]));let M=i.value;return l(W(`div`,h(h({},n),{},{id:t,class:K(M,`${M}-${C.value}`,{[u.value]:!0,[`${M}-${o.value}`]:o.value,[`${M}-card`]:[`card`,`editable-card`].includes(a),[`${M}-editable-card`]:a===`editable-card`,[`${M}-centered`]:D,[`${M}-mobile`]:p.value,[`${M}-editable`]:a===`editable-card`,[`${M}-rtl`]:d.value},n.class)}),[A,W(bI,h(h({destroyInactiveTabPane:b},O),{},{animated:f.value}),null)]))}}}),RI=U({compatConfig:{MODE:3},name:`ATabs`,inheritAttrs:!1,props:Bc(FI(),{tabPosition:`top`,animated:{inkBar:!0,tabPane:!1}}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i}=t,a=e=>{i(`update:activeKey`,e),i(`change`,e)};return()=>{let t=II(Gc(r.default?.call(r)));return W(LI,h(h(h({},sm(e,[`onUpdate:activeKey`])),n),{},{onChange:a,tabs:t}),r)}}}),zI=U({compatConfig:{MODE:3},name:`ATabPane`,inheritAttrs:!1,__ANT_TAB_PANE:!0,props:{tab:Q.any,disabled:{type:Boolean},forceRender:{type:Boolean},closable:{type:Boolean},animated:{type:Boolean},active:{type:Boolean},destroyInactiveTabPane:{type:Boolean},prefixCls:{type:String},tabKey:{type:[String,Number]},id:{type:String}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,i=B(e.forceRender);H([()=>e.active,()=>e.destroyInactiveTabPane],()=>{e.active?i.value=!0:e.destroyInactiveTabPane&&(i.value=!1)},{immediate:!0});let a=G(()=>e.active?{}:e.animated?{visibility:`hidden`,height:0,overflowY:`hidden`}:{display:`none`});return()=>{let{prefixCls:t,forceRender:o,id:s,active:c,tabKey:l}=e;return W(`div`,{id:s&&`${s}-panel-${l}`,role:`tabpanel`,tabindex:c?0:-1,"aria-labelledby":s&&`${s}-tab-${l}`,"aria-hidden":!c,style:[a.value,n.style],class:[`${t}-tabpane`,c&&`${t}-tabpane-active`,n.class]},[(c||i.value||o)&&r.default?.call(r)])}}}),BI=RI;BI.TabPane=zI,BI.install=function(e){return e.component(BI.name,BI),e.component(zI.name,zI),e};var VI=BI,HI=e=>{let{antCls:t,componentCls:n,cardHeadHeight:r,cardPaddingBase:i,cardHeadTabsMarginBottom:a}=e;return g(g({display:`flex`,justifyContent:`center`,flexDirection:`column`,minHeight:r,marginBottom:-1,padding:`0 ${i}px`,color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,background:`transparent`,borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorderSecondary}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`},Ap()),{"&-wrapper":{width:`100%`,display:`flex`,alignItems:`center`},"&-title":g(g({display:`inline-block`,flex:1},Dp),{[` + > ${n}-typography, + > ${n}-typography-edit-content + `]:{insetInlineStart:0,marginTop:0,marginBottom:0}}),[`${t}-tabs-top`]:{clear:`both`,marginBottom:a,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,"&-bar":{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorderSecondary}`}}})},UI=e=>{let{cardPaddingBase:t,colorBorderSecondary:n,cardShadow:r,lineWidth:i}=e;return{width:`33.33%`,padding:t,border:0,borderRadius:0,boxShadow:` + ${i}px 0 0 0 ${n}, + 0 ${i}px 0 0 ${n}, + ${i}px ${i}px 0 0 ${n}, + ${i}px 0 0 0 ${n} inset, + 0 ${i}px 0 0 ${n} inset; + `,transition:`all ${e.motionDurationMid}`,"&-hoverable:hover":{position:`relative`,zIndex:1,boxShadow:r}}},WI=e=>{let{componentCls:t,iconCls:n,cardActionsLiMargin:r,cardActionsIconSize:i,colorBorderSecondary:a}=e;return g(g({margin:0,padding:0,listStyle:`none`,background:e.colorBgContainer,borderTop:`${e.lineWidth}px ${e.lineType} ${a}`,display:`flex`,borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px `},Ap()),{"& > li":{margin:r,color:e.colorTextDescription,textAlign:`center`,"> span":{position:`relative`,display:`block`,minWidth:e.cardActionsIconSize*2,fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:`pointer`,"&:hover":{color:e.colorPrimary,transition:`color ${e.motionDurationMid}`},[`a:not(${t}-btn), > ${n}`]:{display:`inline-block`,width:`100%`,color:e.colorTextDescription,lineHeight:`${e.fontSize*e.lineHeight}px`,transition:`color ${e.motionDurationMid}`,"&:hover":{color:e.colorPrimary}},[`> ${n}`]:{fontSize:i,lineHeight:`${i*e.lineHeight}px`}},"&:not(:last-child)":{borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${a}`}}})},GI=e=>g(g({margin:`-${e.marginXXS}px 0`,display:`flex`},Ap()),{"&-avatar":{paddingInlineEnd:e.padding},"&-detail":{overflow:`hidden`,flex:1,"> div:not(:last-child)":{marginBottom:e.marginXS}},"&-title":g({color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG},Dp),"&-description":{color:e.colorTextDescription}}),KI=e=>{let{componentCls:t,cardPaddingBase:n,colorFillAlter:r}=e;return{[`${t}-head`]:{padding:`0 ${n}px`,background:r,"&-title":{fontSize:e.fontSize}},[`${t}-body`]:{padding:`${e.padding}px ${n}px`}}},qI=e=>{let{componentCls:t}=e;return{overflow:`hidden`,[`${t}-body`]:{userSelect:`none`}}},JI=e=>{let{componentCls:t,cardShadow:n,cardHeadPadding:r,colorBorderSecondary:i,boxShadow:a,cardPaddingBase:o}=e;return{[t]:g(g({},Op(e)),{position:`relative`,background:e.colorBgContainer,borderRadius:e.borderRadiusLG,[`&:not(${t}-bordered)`]:{boxShadow:a},[`${t}-head`]:HI(e),[`${t}-extra`]:{marginInlineStart:`auto`,color:``,fontWeight:`normal`,fontSize:e.fontSize},[`${t}-body`]:g({padding:o,borderRadius:` 0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},Ap()),[`${t}-grid`]:UI(e),[`${t}-cover`]:{"> *":{display:`block`,width:`100%`},img:{borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`}},[`${t}-actions`]:WI(e),[`${t}-meta`]:GI(e)}),[`${t}-bordered`]:{border:`${e.lineWidth}px ${e.lineType} ${i}`,[`${t}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${t}-hoverable`]:{cursor:`pointer`,transition:`box-shadow ${e.motionDurationMid}, border-color ${e.motionDurationMid}`,"&:hover":{borderColor:`transparent`,boxShadow:n}},[`${t}-contain-grid`]:{[`${t}-body`]:{display:`flex`,flexWrap:`wrap`},[`&:not(${t}-loading) ${t}-body`]:{marginBlockStart:-e.lineWidth,marginInlineStart:-e.lineWidth,padding:0}},[`${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{paddingTop:r}}},[`${t}-type-inner`]:KI(e),[`${t}-loading`]:qI(e),[`${t}-rtl`]:{direction:`rtl`}}},YI=e=>{let{componentCls:t,cardPaddingSM:n,cardHeadHeightSM:r}=e;return{[`${t}-small`]:{[`> ${t}-head`]:{minHeight:r,padding:`0 ${n}px`,fontSize:e.fontSize,[`> ${t}-head-wrapper`]:{[`> ${t}-extra`]:{fontSize:e.fontSize}}},[`> ${t}-body`]:{padding:n}},[`${t}-small${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{minHeight:r,paddingTop:0,display:`flex`,alignItems:`center`}}}}},XI=Fp(`Card`,e=>{let t=Rp(e,{cardShadow:e.boxShadowCard,cardHeadHeight:e.fontSizeLG*e.lineHeightLG+e.padding*2,cardHeadHeightSM:e.fontSize*e.lineHeight+e.paddingXS*2,cardHeadPadding:e.padding,cardPaddingBase:e.paddingLG,cardHeadTabsMarginBottom:-e.padding-e.lineWidth,cardActionsLiMargin:`${e.paddingSM}px 0`,cardActionsIconSize:e.fontSize,cardPaddingSM:12});return[JI(t),YI(t)]}),ZI=U({compatConfig:{MODE:3},name:`SkeletonTitle`,props:{prefixCls:String,width:{type:[Number,String]}},setup(e){return()=>{let{prefixCls:t,width:n}=e;return W(`h3`,{class:t,style:{width:typeof n==`number`?`${n}px`:n}},null)}}}),QI=U({compatConfig:{MODE:3},name:`SkeletonParagraph`,props:{prefixCls:String,width:{type:[Number,String,Array]},rows:Number},setup(e){let t=t=>{let{width:n,rows:r=2}=e;if(Array.isArray(n))return n[t];if(r-1===t)return n};return()=>{let{prefixCls:n,rows:r}=e,i=[...Array(r)].map((e,n)=>{let r=t(n);return W(`li`,{key:n,style:{width:typeof r==`number`?`${r}px`:r}},null)});return W(`ul`,{class:n},[i])}}}),$I=()=>({prefixCls:String,size:[String,Number],shape:String,active:{type:Boolean,default:void 0}}),eL=e=>{let{prefixCls:t,size:n,shape:r}=e,i=K({[`${t}-lg`]:n===`large`,[`${t}-sm`]:n===`small`}),a=K({[`${t}-circle`]:r===`circle`,[`${t}-square`]:r===`square`,[`${t}-round`]:r===`round`}),o=typeof n==`number`?{width:`${n}px`,height:`${n}px`,lineHeight:`${n}px`}:{};return W(`span`,{class:K(t,i,a),style:o},null)};eL.displayName=`SkeletonElement`;var tL=new ef(`ant-skeleton-loading`,{"0%":{transform:`translateX(-37.5%)`},"100%":{transform:`translateX(37.5%)`}}),nL=e=>({height:e,lineHeight:`${e}px`}),rL=e=>g({width:e},nL(e)),iL=e=>({position:`relative`,zIndex:0,overflow:`hidden`,background:`transparent`,"&::after":{position:`absolute`,top:0,insetInlineEnd:`-150%`,bottom:0,insetInlineStart:`-150%`,background:e.skeletonLoadingBackground,animationName:tL,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:`ease`,animationIterationCount:`infinite`,content:`""`}}),aL=e=>g({width:e*5,minWidth:e*5},nL(e)),oL=e=>{let{skeletonAvatarCls:t,color:n,controlHeight:r,controlHeightLG:i,controlHeightSM:a}=e;return{[`${t}`]:g({display:`inline-block`,verticalAlign:`top`,background:n},rL(r)),[`${t}${t}-circle`]:{borderRadius:`50%`},[`${t}${t}-lg`]:g({},rL(i)),[`${t}${t}-sm`]:g({},rL(a))}},sL=e=>{let{controlHeight:t,borderRadiusSM:n,skeletonInputCls:r,controlHeightLG:i,controlHeightSM:a,color:o}=e;return{[`${r}`]:g({display:`inline-block`,verticalAlign:`top`,background:o,borderRadius:n},aL(t)),[`${r}-lg`]:g({},aL(i)),[`${r}-sm`]:g({},aL(a))}},cL=e=>g({width:e},nL(e)),lL=e=>{let{skeletonImageCls:t,imageSizeBase:n,color:r,borderRadiusSM:i}=e;return{[`${t}`]:g(g({display:`flex`,alignItems:`center`,justifyContent:`center`,verticalAlign:`top`,background:r,borderRadius:i},cL(n*2)),{[`${t}-path`]:{fill:`#bfbfbf`},[`${t}-svg`]:g(g({},cL(n)),{maxWidth:n*4,maxHeight:n*4}),[`${t}-svg${t}-svg-circle`]:{borderRadius:`50%`}}),[`${t}${t}-circle`]:{borderRadius:`50%`}}},uL=(e,t,n)=>{let{skeletonButtonCls:r}=e;return{[`${n}${r}-circle`]:{width:t,minWidth:t,borderRadius:`50%`},[`${n}${r}-round`]:{borderRadius:t}}},dL=e=>g({width:e*2,minWidth:e*2},nL(e)),fL=e=>{let{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:r,controlHeightLG:i,controlHeightSM:a,color:o}=e;return g(g(g(g(g({[`${n}`]:g({display:`inline-block`,verticalAlign:`top`,background:o,borderRadius:t,width:r*2,minWidth:r*2},dL(r))},uL(e,r,n)),{[`${n}-lg`]:g({},dL(i))}),uL(e,i,`${n}-lg`)),{[`${n}-sm`]:g({},dL(a))}),uL(e,a,`${n}-sm`))},pL=e=>{let{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:r,skeletonParagraphCls:i,skeletonButtonCls:a,skeletonInputCls:o,skeletonImageCls:s,controlHeight:c,controlHeightLG:l,controlHeightSM:u,color:d,padding:f,marginSM:p,borderRadius:m,skeletonTitleHeight:h,skeletonBlockRadius:_,skeletonParagraphLineHeight:v,controlHeightXS:y,skeletonParagraphMarginTop:b}=e;return{[`${t}`]:{display:`table`,width:`100%`,[`${t}-header`]:{display:`table-cell`,paddingInlineEnd:f,verticalAlign:`top`,[`${n}`]:g({display:`inline-block`,verticalAlign:`top`,background:d},rL(c)),[`${n}-circle`]:{borderRadius:`50%`},[`${n}-lg`]:g({},rL(l)),[`${n}-sm`]:g({},rL(u))},[`${t}-content`]:{display:`table-cell`,width:`100%`,verticalAlign:`top`,[`${r}`]:{width:`100%`,height:h,background:d,borderRadius:_,[`+ ${i}`]:{marginBlockStart:u}},[`${i}`]:{padding:0,"> li":{width:`100%`,height:v,listStyle:`none`,background:d,borderRadius:_,"+ li":{marginBlockStart:y}}},[`${i}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:`61%`}},[`&-round ${t}-content`]:{[`${r}, ${i} > li`]:{borderRadius:m}}},[`${t}-with-avatar ${t}-content`]:{[`${r}`]:{marginBlockStart:p,[`+ ${i}`]:{marginBlockStart:b}}},[`${t}${t}-element`]:g(g(g(g({display:`inline-block`,width:`auto`},fL(e)),oL(e)),sL(e)),lL(e)),[`${t}${t}-block`]:{width:`100%`,[`${a}`]:{width:`100%`},[`${o}`]:{width:`100%`}},[`${t}${t}-active`]:{[` + ${r}, + ${i} > li, + ${n}, + ${a}, + ${o}, + ${s} + `]:g({},iL(e))}}},mL=Fp(`Skeleton`,e=>{let{componentCls:t}=e;return[pL(Rp(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:e.controlHeight*1.5,skeletonTitleHeight:e.controlHeight/2,skeletonBlockRadius:e.borderRadiusSM,skeletonParagraphLineHeight:e.controlHeight/2,skeletonParagraphMarginTop:e.marginLG+e.marginXXS,borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.color} 25%, ${e.colorGradientEnd} 37%, ${e.color} 63%)`,skeletonLoadingMotionDuration:`1.4s`}))]},e=>{let{colorFillContent:t,colorFill:n}=e;return{color:t,colorGradientEnd:n}}),hL=()=>({active:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},prefixCls:String,avatar:{type:[Boolean,Object],default:void 0},title:{type:[Boolean,Object],default:void 0},paragraph:{type:[Boolean,Object],default:void 0},round:{type:Boolean,default:void 0}});function gL(e){return e&&typeof e==`object`?e:{}}function _L(e,t){return e&&!t?{size:`large`,shape:`square`}:{size:`large`,shape:`circle`}}function vL(e,t){return!e&&t?{width:`38%`}:e&&t?{width:`50%`}:{}}function yL(e,t){let n={};return(!e||!t)&&(n.width=`61%`),n.rows=!e&&t?3:2,n}var bL=U({compatConfig:{MODE:3},name:`ASkeleton`,props:Bc(hL(),{avatar:!1,title:!0,paragraph:!0}),setup(e,t){let{slots:n}=t,{prefixCls:r,direction:i}=Z(`skeleton`,e),[a,o]=mL(r);return()=>{let{loading:t,avatar:s,title:c,paragraph:l,active:u,round:d}=e,f=r.value;if(t||e.loading===void 0){let e=!!s||s===``,t=!!c||c===``,n=!!l||l===``,r;if(e){let e=g(g({prefixCls:`${f}-avatar`},_L(t,n)),gL(s));r=W(`div`,{class:`${f}-header`},[W(eL,e,null)])}let p;if(t||n){let r;t&&(r=W(ZI,g(g({prefixCls:`${f}-title`},vL(e,n)),gL(c)),null));let i;n&&(i=W(QI,g(g({prefixCls:`${f}-paragraph`},yL(e,t)),gL(l)),null)),p=W(`div`,{class:`${f}-content`},[r,i])}let m=K(f,{[`${f}-with-avatar`]:e,[`${f}-active`]:u,[`${f}-rtl`]:i.value===`rtl`,[`${f}-round`]:d,[o.value]:!0});return a(W(`div`,{class:m},[r,p]))}return n.default?.call(n)}}}),xL=U({compatConfig:{MODE:3},name:`ASkeletonButton`,props:Bc(g(g({},$I()),{size:String,block:Boolean}),{size:`default`}),setup(e){let{prefixCls:t}=Z(`skeleton`,e),[n,r]=mL(t),i=G(()=>K(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active,[`${t.value}-block`]:e.block},r.value));return()=>n(W(`div`,{class:i.value},[W(eL,h(h({},e),{},{prefixCls:`${t.value}-button`}),null)]))}}),SL=U({compatConfig:{MODE:3},name:`ASkeletonInput`,props:g(g({},sm($I(),[`shape`])),{size:String,block:Boolean}),setup(e){let{prefixCls:t}=Z(`skeleton`,e),[n,r]=mL(t),i=G(()=>K(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active,[`${t.value}-block`]:e.block},r.value));return()=>n(W(`div`,{class:i.value},[W(eL,h(h({},e),{},{prefixCls:`${t.value}-input`}),null)]))}}),CL=`M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z`,wL=U({compatConfig:{MODE:3},name:`ASkeletonImage`,props:sm($I(),[`size`,`shape`,`active`]),setup(e){let{prefixCls:t}=Z(`skeleton`,e),[n,r]=mL(t),i=G(()=>K(t.value,`${t.value}-element`,r.value));return()=>n(W(`div`,{class:i.value},[W(`div`,{class:`${t.value}-image`},[W(`svg`,{viewBox:`0 0 1098 1024`,xmlns:`http://www.w3.org/2000/svg`,class:`${t.value}-image-svg`},[W(`path`,{d:CL,class:`${t.value}-image-path`},null)])])]))}}),TL=U({compatConfig:{MODE:3},name:`ASkeletonAvatar`,props:Bc(g(g({},$I()),{shape:String}),{size:`default`,shape:`circle`}),setup(e){let{prefixCls:t}=Z(`skeleton`,e),[n,r]=mL(t),i=G(()=>K(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active},r.value));return()=>n(W(`div`,{class:i.value},[W(eL,h(h({},e),{},{prefixCls:`${t.value}-avatar`}),null)]))}});bL.Button=xL,bL.Avatar=TL,bL.Input=SL,bL.Image=wL,bL.Title=ZI,bL.install=function(e){return e.component(bL.name,bL),e.component(bL.Button.name,xL),e.component(bL.Avatar.name,TL),e.component(bL.Input.name,SL),e.component(bL.Image.name,wL),e.component(bL.Title.name,ZI),e};var EL=bL,{TabPane:DL}=VI,OL=U({compatConfig:{MODE:3},name:`ACard`,inheritAttrs:!1,props:{prefixCls:String,title:Q.any,extra:Q.any,bordered:{type:Boolean,default:!0},bodyStyle:{type:Object,default:void 0},headStyle:{type:Object,default:void 0},loading:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!1},type:{type:String},size:{type:String},actions:Q.any,tabList:{type:Array},tabBarExtraContent:Q.any,activeTabKey:String,defaultActiveTabKey:String,cover:Q.any,onTabChange:{type:Function}},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a,size:o}=Z(`card`,e),[s,c]=XI(i),l=e=>e.map((t,n)=>Wa(t)&&!tl(t)||!Wa(t)?W(`li`,{style:{width:`${100/e.length}%`},key:`action-${n}`},[W(`span`,null,[t])]):null),u=t=>{var n;(n=e.onTabChange)==null||n.call(e,t)},d=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t;return e.forEach(e=>{e&&zT(e.type)&&e.type.__ANT_CARD_GRID&&(t=!0)}),t};return()=>{let{headStyle:t={},bodyStyle:f={},loading:p,bordered:m=!0,type:g,tabList:_,hoverable:v,activeTabKey:y,defaultActiveTabKey:b,tabBarExtraContent:x=il(n.tabBarExtraContent?.call(n)),title:S=il(n.title?.call(n)),extra:C=il(n.extra?.call(n)),actions:w=il(n.actions?.call(n)),cover:T=il(n.cover?.call(n))}=e,E=Gc(n.default?.call(n)),D=i.value,O={[`${D}`]:!0,[c.value]:!0,[`${D}-loading`]:p,[`${D}-bordered`]:m,[`${D}-hoverable`]:!!v,[`${D}-contain-grid`]:d(E),[`${D}-contain-tabs`]:_&&_.length,[`${D}-${o.value}`]:o.value,[`${D}-type-${g}`]:!!g,[`${D}-rtl`]:a.value===`rtl`},k=W(EL,{loading:!0,active:!0,paragraph:{rows:4},title:!1},{default:()=>[E]}),A=y!==void 0,j={size:`large`,[A?`activeKey`:`defaultActiveKey`]:A?y:b,onChange:u,class:`${D}-head-tabs`},M,N=_&&_.length?W(VI,j,{default:()=>[_.map(e=>{let{tab:t,slots:r}=e,i=r?.tab;wh(!r,`Card`,"tabList slots is deprecated, Please use `customTab` instead.");let a=t===void 0?n[i]?n[i](e):null:t;return a=u_(n,`customTab`,e,()=>[a]),W(DL,{tab:a,key:e.key,disabled:e.disabled},null)})],rightExtra:x?()=>x:null}):null;(S||C||N)&&(M=W(`div`,{class:`${D}-head`,style:t},[W(`div`,{class:`${D}-head-wrapper`},[S&&W(`div`,{class:`${D}-head-title`},[S]),C&&W(`div`,{class:`${D}-extra`},[C])]),N]));let P=T?W(`div`,{class:`${D}-cover`},[T]):null,F=W(`div`,{class:`${D}-body`,style:f},[p?k:E]),I=w&&w.length?W(`ul`,{class:`${D}-actions`},[l(w)]):null;return s(W(`div`,h(h({ref:`cardContainerRef`},r),{},{class:[O,r.class]}),[M,P,E&&E.length?F:null,I]))}}}),kL=U({compatConfig:{MODE:3},name:`ACardMeta`,props:{prefixCls:String,title:bl(),description:bl(),avatar:bl()},slots:Object,setup(e,t){let{slots:n}=t,{prefixCls:r}=Z(`card`,e);return()=>{let t={[`${r.value}-meta`]:!0},i=ol(n,e,`avatar`),a=ol(n,e,`title`),o=ol(n,e,`description`),s=i?W(`div`,{class:`${r.value}-meta-avatar`},[i]):null,c=a?W(`div`,{class:`${r.value}-meta-title`},[a]):null,l=o?W(`div`,{class:`${r.value}-meta-description`},[o]):null,u=c||l?W(`div`,{class:`${r.value}-meta-detail`},[c,l]):null;return W(`div`,{class:t},[s,u])}}}),AL=U({compatConfig:{MODE:3},name:`ACardGrid`,__ANT_CARD_GRID:!0,props:{prefixCls:String,hoverable:{type:Boolean,default:!0}},setup(e,t){let{slots:n}=t,{prefixCls:r}=Z(`card`,e),i=G(()=>({[`${r.value}-grid`]:!0,[`${r.value}-grid-hoverable`]:e.hoverable}));return()=>W(`div`,{class:i.value},[n.default?.call(n)])}});OL.Meta=kL,OL.Grid=AL,OL.install=function(e){return e.component(OL.name,OL),e.component(kL.name,kL),e.component(AL.name,AL),e};var jL=OL,ML=()=>({prefixCls:String,activeKey:Sl([Array,Number,String]),defaultActiveKey:Sl([Array,Number,String]),accordion:J(),destroyInactivePanel:J(),bordered:J(),expandIcon:Y(),openAnimation:Q.object,expandIconPosition:X(),collapsible:X(),ghost:J(),onChange:Y(),"onUpdate:activeKey":Y()}),NL=()=>({openAnimation:Q.object,prefixCls:String,header:Q.any,headerClass:String,showArrow:J(),isActive:J(),destroyInactivePanel:J(),disabled:J(),accordion:J(),forceRender:J(),expandIcon:Y(),extra:Q.any,panelKey:Sl(),collapsible:X(),role:String,onItemClick:Y()}),PL=e=>{let{componentCls:t,collapseContentBg:n,padding:r,collapseContentPaddingHorizontal:i,collapseHeaderBg:a,collapseHeaderPadding:o,collapsePanelBorderRadius:s,lineWidth:c,lineType:l,colorBorder:u,colorText:d,colorTextHeading:f,colorTextDisabled:p,fontSize:m,lineHeight:h,marginSM:_,paddingSM:v,motionDurationSlow:y,fontSizeIcon:b}=e,x=`${c}px ${l} ${u}`;return{[t]:g(g({},Op(e)),{backgroundColor:a,border:x,borderBottom:0,borderRadius:`${s}px`,"&-rtl":{direction:`rtl`},[`& > ${t}-item`]:{borderBottom:x,"&:last-child":{[` + &, + & > ${t}-header`]:{borderRadius:`0 0 ${s}px ${s}px`}},[`> ${t}-header`]:{position:`relative`,display:`flex`,flexWrap:`nowrap`,alignItems:`flex-start`,padding:o,color:f,lineHeight:h,cursor:`pointer`,transition:`all ${y}, visibility 0s`,[`> ${t}-header-text`]:{flex:`auto`},"&:focus":{outline:`none`},[`${t}-expand-icon`]:{height:m*h,display:`flex`,alignItems:`center`,paddingInlineEnd:_},[`${t}-arrow`]:g(g({},kp()),{fontSize:b,svg:{transition:`transform ${y}`}}),[`${t}-header-text`]:{marginInlineEnd:`auto`}},[`${t}-header-collapsible-only`]:{cursor:`default`,[`${t}-header-text`]:{flex:`none`,cursor:`pointer`},[`${t}-expand-icon`]:{cursor:`pointer`}},[`${t}-icon-collapsible-only`]:{cursor:`default`,[`${t}-expand-icon`]:{cursor:`pointer`}},[`&${t}-no-arrow`]:{[`> ${t}-header`]:{paddingInlineStart:v}}},[`${t}-content`]:{color:d,backgroundColor:n,borderTop:x,[`& > ${t}-content-box`]:{padding:`${r}px ${i}px`},"&-hidden":{display:`none`}},[`${t}-item:last-child`]:{[`> ${t}-content`]:{borderRadius:`0 0 ${s}px ${s}px`}},[`& ${t}-item-disabled > ${t}-header`]:{"\n &,\n & > .arrow\n ":{color:p,cursor:`not-allowed`}},[`&${t}-icon-position-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:_}}}}})}},FL=e=>{let{componentCls:t}=e,n=`> ${t}-item > ${t}-header ${t}-arrow svg`;return{[`${t}-rtl`]:{[n]:{transform:`rotate(180deg)`}}}},IL=e=>{let{componentCls:t,collapseHeaderBg:n,paddingXXS:r,colorBorder:i}=e;return{[`${t}-borderless`]:{backgroundColor:n,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${i}`},[` + > ${t}-item:last-child, + > ${t}-item:last-child ${t}-header + `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:`transparent`,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{paddingTop:r}}}},LL=e=>{let{componentCls:t,paddingSM:n}=e;return{[`${t}-ghost`]:{backgroundColor:`transparent`,border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:`transparent`,border:0,[`> ${t}-content-box`]:{paddingBlock:n}}}}}},RL=Fp(`Collapse`,e=>{let t=Rp(e,{collapseContentBg:e.colorBgContainer,collapseHeaderBg:e.colorFillAlter,collapseHeaderPadding:`${e.paddingSM}px ${e.padding}px`,collapsePanelBorderRadius:e.borderRadiusLG,collapseContentPaddingHorizontal:16});return[PL(t),IL(t),LL(t),FL(t),vk(t)]});function zL(e){let t=e;if(!Array.isArray(t)){let e=typeof t;t=e===`number`||e===`string`?[t]:[]}return t.map(e=>String(e))}var BL=U({compatConfig:{MODE:3},name:`ACollapse`,inheritAttrs:!1,props:Bc(ML(),{accordion:!1,destroyInactivePanel:!1,bordered:!0,expandIconPosition:`start`}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i}=t,a=B(zL(zA([e.activeKey,e.defaultActiveKey])));H(()=>e.activeKey,()=>{a.value=zL(e.activeKey)},{deep:!0});let{prefixCls:o,direction:s,rootPrefixCls:c}=Z(`collapse`,e),[l,u]=RL(o),d=G(()=>{let{expandIconPosition:t}=e;return t===void 0?s.value===`rtl`?`end`:`start`:t}),f=t=>{let{expandIcon:n=r.expandIcon}=e,i=n?n(t):W(Ij,{rotate:t.isActive?90:void 0},null);return W(`div`,{class:[`${o.value}-expand-icon`,u.value],onClick:()=>[`header`,`icon`].includes(e.collapsible)&&m(t.panelKey)},[al(Array.isArray(n)?i[0]:i)?s_(i,{class:`${o.value}-arrow`},!1):i])},p=t=>{e.activeKey===void 0&&(a.value=t);let n=e.accordion?t[0]:t;i(`update:activeKey`,n),i(`change`,n)},m=t=>{let n=a.value;if(e.accordion)n=n[0]===t?[]:[t];else{n=[...n];let e=n.indexOf(t);e>-1?n.splice(e,1):n.push(t)}p(n)},g=(t,n)=>{var r;if(tl(t))return;let i=a.value,{accordion:s,destroyInactivePanel:l,collapsible:u,openAnimation:d}=e,p=d||hM(`${c.value}-motion-collapse`),h=String(t.key??n),{header:g=((r=t.children)?.header)?.call(r),headerClass:_,collapsible:v,disabled:y}=t.props||{},b=!1;b=s?i[0]===h:i.indexOf(h)>-1;let x=v??u;return(y||y===``)&&(x=`disabled`),s_(t,{key:h,panelKey:h,header:g,headerClass:_,isActive:b,prefixCls:o.value,destroyInactivePanel:l,openAnimation:p,accordion:s,onItemClick:x===`disabled`?null:m,expandIcon:f,collapsible:x})},_=()=>Gc(r.default?.call(r)).map(g);return()=>{let{accordion:t,bordered:r,ghost:i}=e,a=K(o.value,{[`${o.value}-borderless`]:!r,[`${o.value}-icon-position-${d.value}`]:!0,[`${o.value}-rtl`]:s.value===`rtl`,[`${o.value}-ghost`]:!!i,[n.class]:!!n.class},u.value);return l(W(`div`,h(h({class:a},Tee(n)),{},{style:n.style,role:t?`tablist`:null}),[_()]))}}}),VL=U({compatConfig:{MODE:3},name:`PanelContent`,props:NL(),setup(e,t){let{slots:n}=t,r=V(!1);return ar(()=>{(e.isActive||e.forceRender)&&(r.value=!0)}),()=>{if(!r.value)return null;let{prefixCls:t,isActive:i,role:a}=e;return W(`div`,{class:K(`${t}-content`,{[`${t}-content-active`]:i,[`${t}-content-inactive`]:!i}),role:a},[W(`div`,{class:`${t}-content-box`},[n.default?.call(n)])])}}}),HL=U({compatConfig:{MODE:3},name:`ACollapsePanel`,inheritAttrs:!1,props:Bc(NL(),{showArrow:!0,isActive:!1,onItemClick(){},headerClass:``,forceRender:!1}),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i}=t;wh(e.disabled===void 0,`Collapse.Panel`,'`disabled` is deprecated. Please use `collapsible="disabled"` instead.');let{prefixCls:a}=Z(`collapse`,e),o=()=>{r(`itemClick`,e.panelKey)},s=e=>{(e.key===`Enter`||e.keyCode===13||e.which===13)&&o()};return()=>{let{header:t=n.header?.call(n),headerClass:r,isActive:c,showArrow:l,destroyInactivePanel:u,accordion:d,forceRender:f,openAnimation:p,expandIcon:m=n.expandIcon,extra:_=n.extra?.call(n),collapsible:v}=e,y=v===`disabled`,b=a.value,x=K(`${b}-header`,{[r]:r,[`${b}-header-collapsible-only`]:v===`header`,[`${b}-icon-collapsible-only`]:v===`icon`}),S=K({[`${b}-item`]:!0,[`${b}-item-active`]:c,[`${b}-item-disabled`]:y,[`${b}-no-arrow`]:!l,[`${i.class}`]:!!i.class}),C=W(`i`,{class:`arrow`},null);l&&typeof m==`function`&&(C=m(e));let w=Qn(W(VL,{prefixCls:b,isActive:c,forceRender:f,role:d?`tabpanel`:null},{default:n.default}),[[ss,c]]),T=g({appear:!1,css:!1},p);return W(`div`,h(h({},i),{},{class:S}),[W(`div`,{class:x,onClick:()=>![`header`,`icon`].includes(v)&&o(),role:d?`tab`:`button`,tabindex:y?-1:0,"aria-expanded":c,onKeypress:s},[l&&C,W(`span`,{onClick:()=>v===`header`&&o(),class:`${b}-header-text`},[t]),_&&W(`div`,{class:`${b}-extra`},[_])]),W(Uo,T,{default:()=>[!u||c?w:null]})])}}});BL.Panel=HL,BL.install=function(e){return e.component(BL.name,BL),e.component(HL.name,HL),e};var UL=BL,WL=function(e){return e.replace(/[A-Z]/g,function(e){return`-`+e.toLowerCase()}).toLowerCase()},GL=function(e){return/[height|width]$/.test(e)},KL=function(e){let t=``,n=Object.keys(e);return n.forEach(function(r,i){let a=e[r];r=WL(r),GL(r)&&typeof a==`number`&&(a+=`px`),t+=a===!0?r:a===!1?`not `+r:`(`+r+`: `+a+`)`,i{[`touchstart`,`touchmove`,`wheel`].includes(e.type)||e.preventDefault()},QL=e=>{let t=[],n=$L(e),r=eR(e);for(let i=n;ie.currentSlide-tR(e),eR=e=>e.currentSlide+nR(e),tR=e=>e.centerMode?Math.floor(e.slidesToShow/2)+ +(parseInt(e.centerPadding)>0):0,nR=e=>e.centerMode?Math.floor((e.slidesToShow-1)/2)+1+ +(parseInt(e.centerPadding)>0):e.slidesToShow,rR=e=>e&&e.offsetWidth||0,iR=e=>e&&e.offsetHeight||0,aR=function(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n,r=e.startX-e.curX,i=e.startY-e.curY;return n=Math.round(Math.atan2(i,r)*180/Math.PI),n<0&&(n=360-Math.abs(n)),n<=45&&n>=0||n<=360&&n>=315?`left`:n>=135&&n<=225?`right`:t===!0?n>=35&&n<=135?`up`:`down`:`vertical`},oR=e=>{let t=!0;return e.infinite||(e.centerMode&&e.currentSlide>=e.slideCount-1||e.slideCount<=e.slidesToShow||e.currentSlide>=e.slideCount-e.slidesToShow)&&(t=!1),t},sR=(e,t)=>{let n={};return t.forEach(t=>n[t]=e[t]),n},cR=e=>{let t=e.children.length,n=e.listRef,r=Math.ceil(rR(n)),i=e.trackRef,a=Math.ceil(rR(i)),o;if(e.vertical)o=r;else{let t=e.centerMode&&parseInt(e.centerPadding)*2;typeof e.centerPadding==`string`&&e.centerPadding.slice(-1)===`%`&&(t*=r/100),o=Math.ceil((r-t)/e.slidesToShow)}let s=n&&iR(n.querySelector(`[data-index="0"]`)),c=s*e.slidesToShow,l=e.currentSlide===void 0?e.initialSlide:e.currentSlide;e.rtl&&e.currentSlide===void 0&&(l=t-1-e.initialSlide);let u=e.lazyLoadedList||[],d=QL(g(g({},e),{currentSlide:l,lazyLoadedList:u}),e);u=u.concat(d);let f={slideCount:t,slideWidth:o,listWidth:r,trackWidth:a,currentSlide:l,slideHeight:s,listHeight:c,lazyLoadedList:u};return e.autoplaying===null&&e.autoplay&&(f.autoplaying=`playing`),f},lR=e=>{let{waitForAnimate:t,animating:n,fade:r,infinite:i,index:a,slideCount:o,lazyLoad:s,currentSlide:c,centerMode:l,slidesToScroll:u,slidesToShow:d,useCSS:f}=e,{lazyLoadedList:p}=e;if(t&&n)return{};let m=a,h,_,v,y={},b={},x=i?a:XL(a,0,o-1);if(r){if(!i&&(a<0||a>=o))return{};a<0?m=a+o:a>=o&&(m=a-o),s&&p.indexOf(m)<0&&(p=p.concat(m)),y={animating:!0,currentSlide:m,lazyLoadedList:p,targetSlide:m},b={animating:!1,targetSlide:m}}else h=m,m<0?(h=m+o,i?o%u!==0&&(h=o-o%u):h=0):!oR(e)&&m>c?m=h=c:l&&m>=o?(m=i?o:o-1,h=i?0:o-1):m>=o&&(h=m-o,i?o%u!==0&&(h=0):h=o-d),!i&&m+d>=o&&(h=o-d),_=xR(g(g({},e),{slideIndex:m})),v=xR(g(g({},e),{slideIndex:h})),i||(_===v&&(m=h),_=v),s&&(p=p.concat(QL(g(g({},e),{currentSlide:m})))),f?(y={animating:!0,currentSlide:h,trackStyle:bR(g(g({},e),{left:_})),lazyLoadedList:p,targetSlide:x},b={animating:!1,currentSlide:h,trackStyle:yR(g(g({},e),{left:v})),swipeLeft:null,targetSlide:x}):y={currentSlide:h,trackStyle:yR(g(g({},e),{left:v})),lazyLoadedList:p,targetSlide:x};return{state:y,nextState:b}},uR=(e,t)=>{let n,r,i,{slidesToScroll:a,slidesToShow:o,slideCount:s,currentSlide:c,targetSlide:l,lazyLoad:u,infinite:d}=e,f=s%a===0?(s-c)%a:0;if(t.message===`previous`)r=f===0?a:o-f,i=c-r,u&&!d&&(n=c-r,i=n===-1?s-1:n),d||(i=l-a);else if(t.message===`next`)r=f===0?a:f,i=c+r,u&&!d&&(i=(c+a)%s+f),d||(i=l+a);else if(t.message===`dots`)i=t.index*t.slidesToScroll;else if(t.message===`children`){if(i=t.index,d){let n=TR(g(g({},e),{targetSlide:i}));i>t.currentSlide&&n===`left`?i-=s:ie.target.tagName.match(`TEXTAREA|INPUT|SELECT`)||!t?``:e.keyCode===37?n?`next`:`previous`:e.keyCode===39?n?`previous`:`next`:``,fR=(e,t,n)=>(e.target.tagName===`IMG`&&ZL(e),!t||!n&&e.type.indexOf(`mouse`)!==-1?``:{dragging:!0,touchObject:{startX:e.touches?e.touches[0].pageX:e.clientX,startY:e.touches?e.touches[0].pageY:e.clientY,curX:e.touches?e.touches[0].pageX:e.clientX,curY:e.touches?e.touches[0].pageY:e.clientY}}),pR=(e,t)=>{let{scrolling:n,animating:r,vertical:i,swipeToSlide:a,verticalSwiping:o,rtl:s,currentSlide:c,edgeFriction:l,edgeDragged:u,onEdge:d,swiped:f,swiping:p,slideCount:m,slidesToScroll:h,infinite:_,touchObject:v,swipeEvent:y,listHeight:b,listWidth:x}=t;if(n)return;if(r)return ZL(e);i&&a&&o&&ZL(e);let S,C={},w=xR(t);v.curX=e.touches?e.touches[0].pageX:e.clientX,v.curY=e.touches?e.touches[0].pageY:e.clientY,v.swipeLength=Math.round(Math.sqrt((v.curX-v.startX)**2));let T=Math.round(Math.sqrt((v.curY-v.startY)**2));if(!o&&!p&&T>10)return{scrolling:!0};o&&(v.swipeLength=T);let E=(s?-1:1)*(v.curX>v.startX?1:-1);o&&(E=v.curY>v.startY?1:-1);let D=Math.ceil(m/h),O=aR(t.touchObject,o),k=v.swipeLength;return _||(c===0&&(O===`right`||O===`down`)||c+1>=D&&(O===`left`||O===`up`)||!oR(t)&&(O===`left`||O===`up`))&&(k=v.swipeLength*l,u===!1&&d&&(d(O),C.edgeDragged=!0)),!f&&y&&(y(O),C.swiped=!0),S=i?w+b/x*k*E:s?w-k*E:w+k*E,o&&(S=w+k*E),C=g(g({},C),{touchObject:v,swipeLeft:S,trackStyle:yR(g(g({},t),{left:S}))}),Math.abs(v.curX-v.startX)10&&(C.swiping=!0,ZL(e)),C},mR=(e,t)=>{let{dragging:n,swipe:r,touchObject:i,listWidth:a,touchThreshold:o,verticalSwiping:s,listHeight:c,swipeToSlide:l,scrolling:u,onSwipe:d,targetSlide:f,currentSlide:p,infinite:m}=t;if(!n)return r&&ZL(e),{};let h=s?c/o:a/o,_=aR(i,s),v={dragging:!1,edgeDragged:!1,scrolling:!1,swiping:!1,swiped:!1,swipeLeft:null,touchObject:{}};if(u||!i.swipeLength)return v;if(i.swipeLength>h){ZL(e),d&&d(_);let n,r,i=m?p:f;switch(_){case`left`:case`up`:r=i+_R(t),n=l?gR(t,r):r,v.currentDirection=0;break;case`right`:case`down`:r=i-_R(t),n=l?gR(t,r):r,v.currentDirection=1;break;default:n=i}v.triggerSlideHandler=n}else{let e=xR(t);v.trackStyle=bR(g(g({},t),{left:e}))}return v},hR=e=>{let t=e.infinite?e.slideCount*2:e.slideCount,n=e.infinite?e.slidesToShow*-1:0,r=e.infinite?e.slidesToShow*-1:0,i=[];for(;n{let n=hR(e),r=0;if(t>n[n.length-1])t=n[n.length-1];else for(let e in n){if(t{let t=e.centerMode?e.slideWidth*Math.floor(e.slidesToShow/2):0;if(e.swipeToSlide){let n,r=e.listRef,i=r.querySelectorAll&&r.querySelectorAll(`.slick-slide`)||[];if(Array.from(i).every(r=>{if(!e.vertical){if(r.offsetLeft-t+rR(r)/2>e.swipeLeft*-1)return n=r,!1}else if(r.offsetTop+iR(r)/2>e.swipeLeft*-1)return n=r,!1;return!0}),!n)return 0;let a=e.rtl===!0?e.slideCount-e.currentSlide:e.currentSlide;return Math.abs(n.dataset.index-a)||1}return e.slidesToScroll},vR=(e,t)=>t.reduce((t,n)=>t&&e.hasOwnProperty(n),!0)?null:console.error(`Keys Missing:`,e),yR=e=>{vR(e,[`left`,`variableWidth`,`slideCount`,`slidesToShow`,`slideWidth`]);let t,n,r=e.slideCount+2*e.slidesToShow;e.vertical?n=r*e.slideHeight:t=wR(e)*e.slideWidth;let i={opacity:1,transition:``,WebkitTransition:``};if(e.useTransform){let t=e.vertical?`translate3d(0px, `+e.left+`px, 0px)`:`translate3d(`+e.left+`px, 0px, 0px)`,n=e.vertical?`translate3d(0px, `+e.left+`px, 0px)`:`translate3d(`+e.left+`px, 0px, 0px)`,r=e.vertical?`translateY(`+e.left+`px)`:`translateX(`+e.left+`px)`;i=g(g({},i),{WebkitTransform:t,transform:n,msTransform:r})}else e.vertical?i.top=e.left:i.left=e.left;return e.fade&&(i={opacity:1}),t&&(i.width=t+`px`),n&&(i.height=n+`px`),window&&!window.addEventListener&&window.attachEvent&&(e.vertical?i.marginTop=e.left+`px`:i.marginLeft=e.left+`px`),i},bR=e=>{vR(e,[`left`,`variableWidth`,`slideCount`,`slidesToShow`,`slideWidth`,`speed`,`cssEase`]);let t=yR(e);return e.useTransform?(t.WebkitTransition=`-webkit-transform `+e.speed+`ms `+e.cssEase,t.transition=`transform `+e.speed+`ms `+e.cssEase):t.transition=e.vertical?`top `+e.speed+`ms `+e.cssEase:`left `+e.speed+`ms `+e.cssEase,t},xR=e=>{if(e.unslick)return 0;vR(e,[`slideIndex`,`trackRef`,`infinite`,`centerMode`,`slideCount`,`slidesToShow`,`slidesToScroll`,`slideWidth`,`listWidth`,`variableWidth`,`slideHeight`]);let{slideIndex:t,trackRef:n,infinite:r,centerMode:i,slideCount:a,slidesToShow:o,slidesToScroll:s,slideWidth:c,listWidth:l,variableWidth:u,slideHeight:d,fade:f,vertical:p}=e,m=0,h,g,_=0;if(f||e.slideCount===1)return 0;let v=0;if(r?(v=-SR(e),a%s!==0&&t+s>a&&(v=-(t>a?o-(t-a):a%s)),i&&(v+=parseInt(o/2))):(a%s!==0&&t+s>a&&(v=o-a%s),i&&(v=parseInt(o/2))),m=v*c,_=v*d,h=p?t*d*-1+_:t*c*-1+m,u===!0){let a,o=n;if(a=t+SR(e),g=o&&o.childNodes[a],h=g?g.offsetLeft*-1:0,i===!0){a=r?t+SR(e):t,g=o&&o.children[a],h=0;for(let e=0;ee.unslick||!e.infinite?0:e.variableWidth?e.slideCount:e.slidesToShow+ +!!e.centerMode,CR=e=>e.unslick||!e.infinite?0:e.slideCount,wR=e=>e.slideCount===1?1:SR(e)+e.slideCount+CR(e),TR=e=>e.targetSlide>e.currentSlide?e.targetSlide>e.currentSlide+ER(e)?`left`:`right`:e.targetSlide{let{slidesToShow:t,centerMode:n,rtl:r,centerPadding:i}=e;if(n){let e=(t-1)/2+1;return parseInt(i)>0&&(e+=1),r&&t%2==0&&(e+=1),e}return r?0:t-1},DR=e=>{let{slidesToShow:t,centerMode:n,rtl:r,centerPadding:i}=e;if(n){let e=(t-1)/2+1;return parseInt(i)>0&&(e+=1),!r&&t%2==0&&(e+=1),e}return r?t-1:0},OR=()=>!!(typeof window<`u`&&window.document&&window.document.createElement),kR=e=>{let t,n,r,i;i=e.rtl?e.slideCount-1-e.index:e.index;let a=i<0||i>=e.slideCount;e.centerMode?(r=Math.floor(e.slidesToShow/2),n=(i-e.currentSlide)%e.slideCount===0,i>e.currentSlide-r-1&&i<=e.currentSlide+r&&(t=!0)):t=e.currentSlide<=i&&i=e.slideCount?e.targetSlide-e.slideCount:e.targetSlide,{"slick-slide":!0,"slick-active":t,"slick-center":n,"slick-cloned":a,"slick-current":i===o}},AR=function(e){let t={};return(e.variableWidth===void 0||e.variableWidth===!1)&&(t.width=e.slideWidth+(typeof e.slideWidth==`number`?`px`:``)),e.fade&&(t.position=`relative`,e.vertical?t.top=-e.index*parseInt(e.slideHeight)+`px`:t.left=-e.index*parseInt(e.slideWidth)+`px`,t.opacity=+(e.currentSlide===e.index),e.useCSS&&(t.transition=`opacity `+e.speed+`ms `+e.cssEase+`, visibility `+e.speed+`ms `+e.cssEase)),t},jR=(e,t)=>e.key+`-`+t,MR=function(e,t){let n,r=[],i=[],a=[],o=t.length,s=$L(e),c=eR(e);return t.forEach((t,l)=>{let u,d={message:`children`,index:l,slidesToScroll:e.slidesToScroll,currentSlide:e.currentSlide};u=!e.lazyLoad||e.lazyLoad&&e.lazyLoadedList.indexOf(l)>=0?t:W(`div`);let f=AR(g(g({},e),{index:l})),p=u.props.class||``,m=kR(g(g({},e),{index:l}));if(r.push(c_(u,{key:`original`+jR(u,l),tabindex:`-1`,"data-index":l,"aria-hidden":!m[`slick-active`],class:K(m,p),style:g(g({outline:`none`},u.props.style||{}),f),onClick:()=>{e.focusOnSelect&&e.focusOnSelect(d)}})),e.infinite&&e.fade===!1){let r=o-l;r<=SR(e)&&o!==e.slidesToShow&&(n=-r,n>=s&&(u=t),m=kR(g(g({},e),{index:n})),i.push(c_(u,{key:`precloned`+jR(u,n),class:K(m,p),tabindex:`-1`,"data-index":n,"aria-hidden":!m[`slick-active`],style:g(g({},u.props.style||{}),f),onClick:()=>{e.focusOnSelect&&e.focusOnSelect(d)}}))),o!==e.slidesToShow&&(n=o+l,n{e.focusOnSelect&&e.focusOnSelect(d)}})))}}),e.rtl?i.concat(r,a).reverse():i.concat(r,a)},NR=(e,t)=>{let{attrs:n,slots:r}=t,i=MR(n,Gc(r?.default())),{onMouseenter:a,onMouseover:o,onMouseleave:s}=n,c={onMouseenter:a,onMouseover:o,onMouseleave:s};return W(`div`,g({class:`slick-track`,style:n.trackStyle},c),[i])};NR.inheritAttrs=!1;var PR=function(e){let t;return t=e.infinite?Math.ceil(e.slideCount/e.slidesToScroll):Math.ceil((e.slideCount-e.slidesToShow)/e.slidesToScroll)+1,t},FR=(e,t)=>{let{attrs:n}=t,{slideCount:r,slidesToScroll:i,slidesToShow:a,infinite:o,currentSlide:s,appendDots:c,customPaging:l,clickHandler:u,dotsClass:d,onMouseenter:f,onMouseover:p,onMouseleave:m}=n,h=PR({slideCount:r,slidesToScroll:i,slidesToShow:a,infinite:o}),_={onMouseenter:f,onMouseover:p,onMouseleave:m},v=[];for(let e=0;e=c&&s<=n:s===c}),f={message:`dots`,index:e,slidesToScroll:i,currentSlide:s};function p(e){e&&e.preventDefault(),u(f)}v=v.concat(W(`li`,{key:e,class:d},[s_(l({i:e}),{onClick:p})]))}return s_(c({dots:v}),g({class:d},_))};FR.inheritAttrs=!1;function IR(){}function LR(e,t,n){n&&n.preventDefault(),t(e,n)}var RR=(e,t)=>{let{attrs:n}=t,{clickHandler:r,infinite:i,currentSlide:a,slideCount:o,slidesToShow:s}=n,c={"slick-arrow":!0,"slick-prev":!0},l=function(e){LR({message:`previous`},r,e)};!i&&(a===0||o<=s)&&(c[`slick-disabled`]=!0,l=IR);let u={key:`0`,"data-role":`none`,class:c,style:{display:`block`},onClick:l},d={currentSlide:a,slideCount:o},f;return f=n.prevArrow?s_(n.prevArrow(g(g({},u),d)),{key:`0`,class:c,style:{display:`block`},onClick:l},!1):W(`button`,h({key:`0`,type:`button`},u),[` `,Qa(`Previous`)]),f};RR.inheritAttrs=!1;var zR=(e,t)=>{let{attrs:n}=t,{clickHandler:r,currentSlide:i,slideCount:a}=n,o={"slick-arrow":!0,"slick-next":!0},s=function(e){LR({message:`next`},r,e)};oR(n)||(o[`slick-disabled`]=!0,s=IR);let c={key:`1`,"data-role":`none`,class:K(o),style:{display:`block`},onClick:s},l={currentSlide:i,slideCount:a},u;return u=n.nextArrow?s_(n.nextArrow(g(g({},c),l)),{key:`1`,class:K(o),style:{display:`block`},onClick:s},!1):W(`button`,h({key:`1`,type:`button`},c),[` `,Qa(`Next`)]),u};zR.inheritAttrs=!1;var BR=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{this.currentSlide>=e.children.length&&this.changeSlide({message:`index`,index:e.children.length-e.slidesToShow,currentSlide:this.currentSlide}),!this.preProps.autoplay&&e.autoplay?this.handleAutoPlay(`playing`):e.autoplay?this.handleAutoPlay(`update`):this.pause(`paused`)}),this.preProps=g({},e)}},mounted(){if(this.__emit(`init`),this.lazyLoad){let e=QL(g(g({},this.$props),this.$data));e.length>0&&(this.setState(t=>({lazyLoadedList:t.lazyLoadedList.concat(e)})),this.__emit(`lazyLoad`,e))}this.$nextTick(()=>{let e=g({listRef:this.list,trackRef:this.track,children:this.children},this.$props);this.updateState(e,!0,()=>{this.adaptHeight(),this.autoplay&&this.handleAutoPlay(`playing`)}),this.lazyLoad===`progressive`&&(this.lazyLoadTimer=setInterval(this.progressiveLazyLoad,1e3)),this.ro=new Rc(()=>{this.animating?(this.onWindowResized(!1),this.callbackTimers.push(setTimeout(()=>this.onWindowResized(),this.speed))):this.onWindowResized()}),this.ro.observe(this.list),document.querySelectorAll&&Array.prototype.forEach.call(document.querySelectorAll(`.slick-slide`),e=>{e.onfocus=this.$props.pauseOnFocus?this.onSlideFocus:null,e.onblur=this.$props.pauseOnFocus?this.onSlideBlur:null}),window.addEventListener?window.addEventListener(`resize`,this.onWindowResized):window.attachEvent(`onresize`,this.onWindowResized)})},beforeUnmount(){var e;this.animationEndCallback&&clearTimeout(this.animationEndCallback),this.lazyLoadTimer&&clearInterval(this.lazyLoadTimer),this.callbackTimers.length&&(this.callbackTimers.forEach(e=>clearTimeout(e)),this.callbackTimers=[]),window.addEventListener?window.removeEventListener(`resize`,this.onWindowResized):window.detachEvent(`onresize`,this.onWindowResized),this.autoplayTimer&&clearInterval(this.autoplayTimer),(e=this.ro)==null||e.disconnect()},updated(){if(this.checkImagesLoad(),this.__emit(`reInit`),this.lazyLoad){let e=QL(g(g({},this.$props),this.$data));e.length>0&&(this.setState(t=>({lazyLoadedList:t.lazyLoadedList.concat(e)})),this.__emit(`lazyLoad`))}this.adaptHeight()},methods:{listRefHandler(e){this.list=e},trackRefHandler(e){this.track=e},adaptHeight(){if(this.adaptiveHeight&&this.list){let e=this.list.querySelector(`[data-index="${this.currentSlide}"]`);this.list.style.height=iR(e)+`px`}},onWindowResized(e){this.debouncedResize&&this.debouncedResize.cancel(),this.debouncedResize=KD(()=>this.resizeWindow(e),50),this.debouncedResize()},resizeWindow(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(!this.track)return;let t=g(g({listRef:this.list,trackRef:this.track,children:this.children},this.$props),this.$data);this.updateState(t,e,()=>{this.autoplay?this.handleAutoPlay(`update`):this.pause(`paused`)}),this.setState({animating:!1}),clearTimeout(this.animationEndCallback),delete this.animationEndCallback},updateState(e,t,n){let r=cR(e);e=g(g(g({},e),r),{slideIndex:r.currentSlide});let i=xR(e);e=g(g({},e),{left:i});let a=yR(e);(t||this.children.length!==e.children.length)&&(r.trackStyle=a),this.setState(r,n)},ssrInit(){let e=this.children;if(this.variableWidth){let t=0,n=0,r=[],i=SR(g(g(g({},this.$props),this.$data),{slideCount:e.length})),a=CR(g(g(g({},this.$props),this.$data),{slideCount:e.length}));e.forEach(e=>{let n=(e.props.style?.width)?.split(`px`)[0]||0;r.push(n),t+=n});for(let e=0;e{let r=()=>++n&&n>=t&&this.onWindowResized();if(!e.onclick)e.onclick=()=>e.parentNode.focus();else{let t=e.onclick;e.onclick=()=>{t(),e.parentNode.focus()}}e.onload||(this.$props.lazyLoad?e.onload=()=>{this.adaptHeight(),this.callbackTimers.push(setTimeout(this.onWindowResized,this.speed))}:(e.onload=r,e.onerror=()=>{r(),this.__emit(`lazyLoadError`)}))})},progressiveLazyLoad(){let e=[],t=g(g({},this.$props),this.$data);for(let n=this.currentSlide;n=-SR(t);n--)if(this.lazyLoadedList.indexOf(n)<0){e.push(n);break}e.length>0?(this.setState(t=>({lazyLoadedList:t.lazyLoadedList.concat(e)})),this.__emit(`lazyLoad`,e)):this.lazyLoadTimer&&(clearInterval(this.lazyLoadTimer),delete this.lazyLoadTimer)},slideHandler(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],{asNavFor:n,beforeChange:r,speed:i,afterChange:a}=this.$props,{state:o,nextState:s}=lR(g(g(g({index:e},this.$props),this.$data),{trackRef:this.track,useCSS:this.useCSS&&!t}));if(!o)return;r&&r(this.currentSlide,o.currentSlide);let c=o.lazyLoadedList.filter(e=>this.lazyLoadedList.indexOf(e)<0);this.$attrs.onLazyLoad&&c.length>0&&this.__emit(`lazyLoad`,c),!this.$props.waitForAnimate&&this.animationEndCallback&&(clearTimeout(this.animationEndCallback),a&&a(this.currentSlide),delete this.animationEndCallback),this.setState(o,()=>{n&&this.asNavForIndex!==e&&(this.asNavForIndex=e,n.innerSlider.slideHandler(e)),s&&(this.animationEndCallback=setTimeout(()=>{let{animating:e}=s,t=BR(s,[`animating`]);this.setState(t,()=>{this.callbackTimers.push(setTimeout(()=>this.setState({animating:e}),10)),a&&a(o.currentSlide),delete this.animationEndCallback})},i))})},changeSlide(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=uR(g(g({},this.$props),this.$data),e);if((n===0||n)&&(t===!0?this.slideHandler(n,t):this.slideHandler(n),this.$props.autoplay&&this.handleAutoPlay(`update`),this.$props.focusOnSelect)){let e=this.list.querySelectorAll(`.slick-current`);e[0]&&e[0].focus()}},clickHandler(e){this.clickable===!1&&(e.stopPropagation(),e.preventDefault()),this.clickable=!0},keyHandler(e){let t=dR(e,this.accessibility,this.rtl);t!==``&&this.changeSlide({message:t})},selectHandler(e){this.changeSlide(e)},disableBodyScroll(){window.ontouchmove=e=>{e||=window.event,e.preventDefault&&e.preventDefault(),e.returnValue=!1}},enableBodyScroll(){window.ontouchmove=null},swipeStart(e){this.verticalSwiping&&this.disableBodyScroll();let t=fR(e,this.swipe,this.draggable);t!==``&&this.setState(t)},swipeMove(e){let t=pR(e,g(g(g({},this.$props),this.$data),{trackRef:this.track,listRef:this.list,slideIndex:this.currentSlide}));t&&(t.swiping&&(this.clickable=!1),this.setState(t))},swipeEnd(e){let t=mR(e,g(g(g({},this.$props),this.$data),{trackRef:this.track,listRef:this.list,slideIndex:this.currentSlide}));if(!t)return;let n=t.triggerSlideHandler;delete t.triggerSlideHandler,this.setState(t),n!==void 0&&(this.slideHandler(n),this.$props.verticalSwiping&&this.enableBodyScroll())},touchEnd(e){this.swipeEnd(e),this.clickable=!0},slickPrev(){this.callbackTimers.push(setTimeout(()=>this.changeSlide({message:`previous`}),0))},slickNext(){this.callbackTimers.push(setTimeout(()=>this.changeSlide({message:`next`}),0))},slickGoTo(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(e=Number(e),isNaN(e))return``;this.callbackTimers.push(setTimeout(()=>this.changeSlide({message:`index`,index:e,currentSlide:this.currentSlide},t),0))},play(){let e;if(this.rtl)e=this.currentSlide-this.slidesToScroll;else if(oR(g(g({},this.$props),this.$data)))e=this.currentSlide+this.slidesToScroll;else return!1;this.slideHandler(e)},handleAutoPlay(e){this.autoplayTimer&&clearInterval(this.autoplayTimer);let t=this.autoplaying;if(e===`update`){if(t===`hovered`||t===`focused`||t===`paused`)return}else if(e===`leave`){if(t===`paused`||t===`focused`)return}else if(e===`blur`&&(t===`paused`||t===`hovered`))return;this.autoplayTimer=setInterval(this.play,this.autoplaySpeed+50),this.setState({autoplaying:`playing`})},pause(e){this.autoplayTimer&&=(clearInterval(this.autoplayTimer),null);let t=this.autoplaying;e===`paused`?this.setState({autoplaying:`paused`}):e===`focused`?(t===`hovered`||t===`playing`)&&this.setState({autoplaying:`focused`}):t===`playing`&&this.setState({autoplaying:`hovered`})},onDotsOver(){this.autoplay&&this.pause(`hovered`)},onDotsLeave(){this.autoplay&&this.autoplaying===`hovered`&&this.handleAutoPlay(`leave`)},onTrackOver(){this.autoplay&&this.pause(`hovered`)},onTrackLeave(){this.autoplay&&this.autoplaying===`hovered`&&this.handleAutoPlay(`leave`)},onSlideFocus(){this.autoplay&&this.pause(`focused`)},onSlideBlur(){this.autoplay&&this.autoplaying===`focused`&&this.handleAutoPlay(`blur`)},customPaging(e){let{i:t}=e;return W(`button`,null,[t+1])},appendDots(e){let{dots:t}=e;return W(`ul`,{style:{display:`block`}},[t])}},render(){let e=K(`slick-slider`,this.$attrs.class,{"slick-vertical":this.vertical,"slick-initialized":!0}),t=g(g({},this.$props),this.$data),n=sR(t,[`fade`,`cssEase`,`speed`,`infinite`,`centerMode`,`focusOnSelect`,`currentSlide`,`lazyLoad`,`lazyLoadedList`,`rtl`,`slideWidth`,`slideHeight`,`listHeight`,`vertical`,`slidesToShow`,`slidesToScroll`,`slideCount`,`trackStyle`,`variableWidth`,`unslick`,`centerPadding`,`targetSlide`,`useCSS`]),{pauseOnHover:r}=this.$props;n=g(g({},n),{focusOnSelect:this.focusOnSelect&&this.clickable?this.selectHandler:null,ref:this.trackRefHandler,onMouseleave:r?this.onTrackLeave:VR,onMouseover:r?this.onTrackOver:VR});let i;if(this.dots===!0&&this.slideCount>=this.slidesToShow){let e=sR(t,[`dotsClass`,`slideCount`,`slidesToShow`,`currentSlide`,`slidesToScroll`,`clickHandler`,`children`,`infinite`,`appendDots`]);e.customPaging=this.customPaging,e.appendDots=this.appendDots;let{customPaging:n,appendDots:r}=this.$slots;n&&(e.customPaging=n),r&&(e.appendDots=r);let{pauseOnDotsHover:a}=this.$props;e=g(g({},e),{clickHandler:this.changeSlide,onMouseover:a?this.onDotsOver:VR,onMouseleave:a?this.onDotsLeave:VR}),i=W(FR,e,null)}let a,o,s=sR(t,[`infinite`,`centerMode`,`currentSlide`,`slideCount`,`slidesToShow`]);s.clickHandler=this.changeSlide;let{prevArrow:c,nextArrow:l}=this.$slots;c&&(s.prevArrow=c),l&&(s.nextArrow=l),this.arrows&&(a=W(RR,s,null),o=W(zR,s,null));let u=null;this.vertical&&(u={height:typeof this.listHeight==`number`?`${this.listHeight}px`:this.listHeight});let d=null;this.vertical===!1?this.centerMode===!0&&(d={padding:`0px `+this.centerPadding}):this.centerMode===!0&&(d={padding:this.centerPadding+` 0px`});let f=g(g({},u),d),p=this.touchMove,m={ref:this.listRefHandler,class:`slick-list`,style:f,onClick:this.clickHandler,onMousedown:p?this.swipeStart:VR,onMousemove:this.dragging&&p?this.swipeMove:VR,onMouseup:p?this.swipeEnd:VR,onMouseleave:this.dragging&&p?this.swipeEnd:VR,[wl?`onTouchstartPassive`:`onTouchstart`]:p?this.swipeStart:VR,[wl?`onTouchmovePassive`:`onTouchmove`]:this.dragging&&p?this.swipeMove:VR,onTouchend:p?this.touchEnd:VR,onTouchcancel:this.dragging&&p?this.swipeEnd:VR,onKeydown:this.accessibility?this.keyHandler:VR},h={class:e,dir:`ltr`,style:this.$attrs.style};return this.unslick&&(m={class:`slick-list`,ref:this.listRefHandler},h={class:e}),W(`div`,h,[this.unslick?``:a,W(`div`,m,[W(NR,n,{default:()=>[this.children]})]),this.unslick?``:o,this.unslick?``:i])}},UR=U({name:`Slider`,mixins:[ub],inheritAttrs:!1,props:g({},JL),data(){return this._responsiveMediaHandlers=[],{breakpoint:null}},mounted(){if(this.responsive){let e=this.responsive.map(e=>e.breakpoint);e.sort((e,t)=>e-t),e.forEach((t,n)=>{let r;r=qL(n===0?{minWidth:0,maxWidth:t}:{minWidth:e[n-1]+1,maxWidth:t}),OR()&&this.media(r,()=>{this.setState({breakpoint:t})})});let t=qL({minWidth:e.slice(-1)[0]});OR()&&this.media(t,()=>{this.setState({breakpoint:null})})}},beforeUnmount(){this._responsiveMediaHandlers.forEach(function(e){e.mql.removeListener(e.listener)})},methods:{innerSliderRefHandler(e){this.innerSlider=e},media(e,t){let n=window.matchMedia(e),r=e=>{let{matches:n}=e;n&&t()};n.addListener(r),r(n),this._responsiveMediaHandlers.push({mql:n,query:e,listener:r})},slickPrev(){var e;(e=this.innerSlider)==null||e.slickPrev()},slickNext(){var e;(e=this.innerSlider)==null||e.slickNext()},slickGoTo(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var n;(n=this.innerSlider)==null||n.slickGoTo(e,t)},slickPause(){var e;(e=this.innerSlider)==null||e.pause(`paused`)},slickPlay(){var e;(e=this.innerSlider)==null||e.handleAutoPlay(`play`)}},render(){let e,t;this.breakpoint?(t=this.responsive.filter(e=>e.breakpoint===this.breakpoint),e=t[0].settings===`unslick`?`unslick`:g(g({},this.$props),t[0].settings)):e=g({},this.$props),e.centerMode&&(e.slidesToScroll,e.slidesToScroll=1),e.fade&&(e.slidesToShow,e.slidesToScroll,e.slidesToShow=1,e.slidesToScroll=1);let n=Kc(this)||[];n=n.filter(e=>typeof e==`string`?!!e.trim():!!e),e.variableWidth&&(e.rows>1||e.slidesPerRow>1)&&(console.warn(`variableWidth is not supported in case of rows > 1 or slidesPerRow > 1`),e.variableWidth=!1);let r=[],i=null;for(let t=0;t=n.length));a+=1)o.push(s_(n[a],{key:100*t+10*r+a,tabindex:-1,style:{width:`${100/e.slidesPerRow}%`,display:`inline-block`}}));a.push(W(`div`,{key:10*t+r},[o]))}e.variableWidth?r.push(W(`div`,{key:t,style:{width:i}},[a])):r.push(W(`div`,{key:t},[a]))}return e===`unslick`?W(`div`,{class:`regular slider `+(this.className||``)},[n]):(r.length<=e.slidesToShow&&(e.unslick=!0),W(HR,h(h({},g(g(g({},this.$attrs),e),{children:r,ref:this.innerSliderRefHandler})),{},{__propsSymbol__:[]}),this.$slots))}}),WR=e=>{let{componentCls:t,antCls:n,carouselArrowSize:r,carouselDotOffset:i,marginXXS:a}=e,o=-r*1.25,s=a;return{[t]:g(g({},Op(e)),{".slick-slider":{position:`relative`,display:`block`,boxSizing:`border-box`,touchAction:`pan-y`,WebkitTouchCallout:`none`,WebkitTapHighlightColor:`transparent`,".slick-track, .slick-list":{transform:`translate3d(0, 0, 0)`,touchAction:`pan-y`}},".slick-list":{position:`relative`,display:`block`,margin:0,padding:0,overflow:`hidden`,"&:focus":{outline:`none`},"&.dragging":{cursor:`pointer`},".slick-slide":{pointerEvents:`none`,[`input${n}-radio-input, input${n}-checkbox-input`]:{visibility:`hidden`},"&.slick-active":{pointerEvents:`auto`,[`input${n}-radio-input, input${n}-checkbox-input`]:{visibility:`visible`}},"> div > div":{verticalAlign:`bottom`}}},".slick-track":{position:`relative`,top:0,insetInlineStart:0,display:`block`,"&::before, &::after":{display:`table`,content:`""`},"&::after":{clear:`both`}},".slick-slide":{display:`none`,float:`left`,height:`100%`,minHeight:1,img:{display:`block`},"&.dragging img":{pointerEvents:`none`}},".slick-initialized .slick-slide":{display:`block`},".slick-vertical .slick-slide":{display:`block`,height:`auto`},".slick-arrow.slick-hidden":{display:`none`},".slick-prev, .slick-next":{position:`absolute`,top:`50%`,display:`block`,width:r,height:r,marginTop:-r/2,padding:0,color:`transparent`,fontSize:0,lineHeight:0,background:`transparent`,border:0,outline:`none`,cursor:`pointer`,"&:hover, &:focus":{color:`transparent`,background:`transparent`,outline:`none`,"&::before":{opacity:1}},"&.slick-disabled::before":{opacity:.25}},".slick-prev":{insetInlineStart:o,"&::before":{content:`"←"`}},".slick-next":{insetInlineEnd:o,"&::before":{content:`"→"`}},".slick-dots":{position:`absolute`,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:15,display:`flex !important`,justifyContent:`center`,paddingInlineStart:0,listStyle:`none`,"&-bottom":{bottom:i},"&-top":{top:i,bottom:`auto`},li:{position:`relative`,display:`inline-block`,flex:`0 1 auto`,boxSizing:`content-box`,width:e.dotWidth,height:e.dotHeight,marginInline:s,padding:0,textAlign:`center`,textIndent:-999,verticalAlign:`top`,transition:`all ${e.motionDurationSlow}`,button:{position:`relative`,display:`block`,width:`100%`,height:e.dotHeight,padding:0,color:`transparent`,fontSize:0,background:e.colorBgContainer,border:0,borderRadius:1,outline:`none`,cursor:`pointer`,opacity:.3,transition:`all ${e.motionDurationSlow}`,"&: hover, &:focus":{opacity:.75},"&::after":{position:`absolute`,inset:-s,content:`""`}},"&.slick-active":{width:e.dotWidthActive,"& button":{background:e.colorBgContainer,opacity:1},"&: hover, &:focus":{opacity:1}}}}})}},GR=e=>{let{componentCls:t,carouselDotOffset:n,marginXXS:r}=e,i={width:e.dotHeight,height:e.dotWidth};return{[`${t}-vertical`]:{".slick-dots":{top:`50%`,bottom:`auto`,flexDirection:`column`,width:e.dotHeight,height:`auto`,margin:0,transform:`translateY(-50%)`,"&-left":{insetInlineEnd:`auto`,insetInlineStart:n},"&-right":{insetInlineEnd:n,insetInlineStart:`auto`},li:g(g({},i),{margin:`${r}px 0`,verticalAlign:`baseline`,button:i,"&.slick-active":g(g({},i),{button:i})})}}}},KR=e=>{let{componentCls:t}=e;return[{[`${t}-rtl`]:{direction:`rtl`,".slick-dots":{[`${t}-rtl&`]:{flexDirection:`row-reverse`}}}},{[`${t}-vertical`]:{".slick-dots":{[`${t}-rtl&`]:{flexDirection:`column`}}}}]},qR=Fp(`Carousel`,e=>{let{controlHeightLG:t,controlHeightSM:n}=e,r=Rp(e,{carouselArrowSize:t/2,carouselDotOffset:n/2});return[WR(r),GR(r),KR(r)]},{dotWidth:16,dotHeight:3,dotWidthActive:24}),JR=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i1&&arguments[1]!==void 0&&arguments[1];var n;(n=a.value)==null||n.slickGoTo(e,t)},autoplay:e=>{var t;(t=a.value?.innerSlider)==null||t.handleAutoPlay(e)},prev:()=>{var e;(e=a.value)==null||e.slickPrev()},next:()=>{var e;(e=a.value)==null||e.slickNext()},innerSlider:G(()=>a.value?.innerSlider)}),ar(()=>{Ru(e.vertical===void 0,`Carousel`,"`vertical` is deprecated, please use `dotPosition` instead.")});let{prefixCls:o,direction:s}=Z(`carousel`,e),[c,l]=qR(o),u=G(()=>e.dotPosition?e.dotPosition:e.vertical===void 0?`bottom`:e.vertical?`right`:`bottom`),d=G(()=>u.value===`left`||u.value===`right`),f=G(()=>{let t=`slick-dots`;return K({[t]:!0,[`${t}-${u.value}`]:!0,[`${e.dotsClass}`]:!!e.dotsClass})});return()=>{let{dots:t,arrows:i,draggable:u,effect:p}=e,{class:m,style:g}=r,_=JR(r,[`class`,`style`]),v=p===`fade`||e.fade,y=K(o.value,{[`${o.value}-rtl`]:s.value===`rtl`,[`${o.value}-vertical`]:d.value,[`${m}`]:!!m},l.value);return c(W(`div`,{class:y,style:g},[W(UR,h(h(h({ref:a},e),_),{},{dots:!!t,dotsClass:f.value,arrows:i,draggable:u,fade:v,vertical:d.value}),n)]))}}})),XR=`__RC_CASCADER_SPLIT__`,ZR=`SHOW_PARENT`,QR=`SHOW_CHILD`;function $R(e){return e.join(XR)}function ez(e){return e.map($R)}function tz(e){return e.split(XR)}function nz(e){let{label:t,value:n,children:r}=e||{},i=n||`value`;return{label:t||`label`,value:i,key:i,children:r||`children`}}function rz(e,t){return e.isLeaf??!e[t.children]?.length}function iz(e){let t=e.parentElement;if(!t)return;let n=e.offsetTop-t.offsetTop;n-t.scrollTop<0?t.scrollTo({top:n}):n+e.offsetHeight-t.scrollTop>t.offsetHeight&&t.scrollTo({top:n+e.offsetHeight-t.offsetHeight})}var az=Symbol(`TreeContextKey`),oz=U({compatConfig:{MODE:3},name:`TreeContext`,props:{value:{type:Object}},setup(e,t){let{slots:n}=t;return er(az,G(()=>e.value)),()=>n.default?.call(n)}}),sz=()=>tr(az,G(()=>({}))),cz=Symbol(`KeysStateKey`),lz=e=>{er(cz,e)},uz=()=>tr(cz,{expandedKeys:V([]),selectedKeys:V([]),loadedKeys:V([]),loadingKeys:V([]),checkedKeys:V([]),halfCheckedKeys:V([]),expandedKeysSet:G(()=>new Set),selectedKeysSet:G(()=>new Set),loadedKeysSet:G(()=>new Set),loadingKeysSet:G(()=>new Set),checkedKeysSet:G(()=>new Set),halfCheckedKeysSet:G(()=>new Set),flattenNodes:V([])}),dz=e=>{let{prefixCls:t,level:n,isStart:r,isEnd:i}=e,a=`${t}-indent-unit`,o=[];for(let e=0;e({prefixCls:String,focusable:{type:Boolean,default:void 0},activeKey:[Number,String],tabindex:Number,children:Q.any,treeData:{type:Array},fieldNames:{type:Object},showLine:{type:[Boolean,Object],default:void 0},showIcon:{type:Boolean,default:void 0},icon:Q.any,selectable:{type:Boolean,default:void 0},expandAction:[String,Boolean],disabled:{type:Boolean,default:void 0},multiple:{type:Boolean,default:void 0},checkable:{type:Boolean,default:void 0},checkStrictly:{type:Boolean,default:void 0},draggable:{type:[Function,Boolean]},defaultExpandParent:{type:Boolean,default:void 0},autoExpandParent:{type:Boolean,default:void 0},defaultExpandAll:{type:Boolean,default:void 0},defaultExpandedKeys:{type:Array},expandedKeys:{type:Array},defaultCheckedKeys:{type:Array},checkedKeys:{type:[Object,Array]},defaultSelectedKeys:{type:Array},selectedKeys:{type:Array},allowDrop:{type:Function},dropIndicatorRender:{type:Function},onFocus:{type:Function},onBlur:{type:Function},onKeydown:{type:Function},onContextmenu:{type:Function},onClick:{type:Function},onDblclick:{type:Function},onScroll:{type:Function},onExpand:{type:Function},onCheck:{type:Function},onSelect:{type:Function},onLoad:{type:Function},loadData:{type:Function},loadedKeys:{type:Array},onMouseenter:{type:Function},onMouseleave:{type:Function},onRightClick:{type:Function},onDragstart:{type:Function},onDragenter:{type:Function},onDragover:{type:Function},onDragleave:{type:Function},onDragend:{type:Function},onDrop:{type:Function},onActiveChange:{type:Function},filterTreeNode:{type:Function},motion:Q.any,switcherIcon:Q.any,height:Number,itemHeight:Number,virtual:{type:Boolean,default:void 0},direction:{type:String},rootClassName:String,rootStyle:Object}),hz=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i"`v-slot:"+e+"` ")}`;let a=V(!1),o=sz(),{expandedKeysSet:s,selectedKeysSet:c,loadedKeysSet:l,loadingKeysSet:u,checkedKeysSet:d,halfCheckedKeysSet:f}=uz(),{dragOverNodeKey:p,dropPosition:m,keyEntities:_}=o.value,v=G(()=>zz(e.eventKey,{expandedKeysSet:s.value,selectedKeysSet:c.value,loadedKeysSet:l.value,loadingKeysSet:u.value,checkedKeysSet:d.value,halfCheckedKeysSet:f.value,dragOverNodeKey:p,dropPosition:m,keyEntities:_})),y=DA(()=>v.value.expanded),b=DA(()=>v.value.selected),x=DA(()=>v.value.checked),S=DA(()=>v.value.loaded),C=DA(()=>v.value.loading),w=DA(()=>v.value.halfChecked),T=DA(()=>v.value.dragOver),E=DA(()=>v.value.dragOverGapTop),D=DA(()=>v.value.dragOverGapBottom),O=DA(()=>v.value.pos),k=V(),A=G(()=>{let{eventKey:t}=e,{keyEntities:n}=o.value,{children:r}=n[t]||{};return!!(r||[]).length}),j=G(()=>{let{isLeaf:t}=e,{loadData:n}=o.value,r=A.value;return t===!1?!1:t||!n&&!r||n&&S.value&&!r}),M=G(()=>j.value?null:y.value?gz:_z),N=G(()=>{let{disabled:t}=e,{disabled:n}=o.value;return!!(n||t)}),P=G(()=>{let{checkable:t}=e,{checkable:n}=o.value;return!n||t===!1?!1:n}),F=G(()=>{let{selectable:t}=e,{selectable:n}=o.value;return typeof t==`boolean`?t:n}),I=G(()=>{let{data:t,active:n,checkable:r,disableCheckbox:i,disabled:a,selectable:o}=e;return g(g({active:n,checkable:r,disableCheckbox:i,disabled:a,selectable:o},t),{dataRef:t,data:t,isLeaf:j.value,checked:x.value,expanded:y.value,loading:C.value,selected:b.value,halfChecked:w.value})}),L=fo(),R=G(()=>{let{eventKey:t}=e,{keyEntities:n}=o.value,{parent:r}=n[t]||{};return g(g({},Bz(g({},e,v.value))),{parent:r})}),ee=Yt({eventData:R,eventKey:G(()=>e.eventKey),selectHandle:k,pos:O,key:L.vnode.key});i(ee);let te=e=>{let{onNodeDoubleClick:t}=o.value;t(e,R.value)},ne=e=>{if(N.value)return;let{onNodeSelect:t}=o.value;e.preventDefault(),t(e,R.value)},z=t=>{if(N.value)return;let{disableCheckbox:n}=e,{onNodeCheck:r}=o.value;if(!P.value||n)return;t.preventDefault();let i=!x.value;r(t,R.value,i)},re=e=>{let{onNodeClick:t}=o.value;t(e,R.value),F.value?ne(e):z(e)},ie=e=>{let{onNodeMouseEnter:t}=o.value;t(e,R.value)},ae=e=>{let{onNodeMouseLeave:t}=o.value;t(e,R.value)},oe=e=>{let{onNodeContextMenu:t}=o.value;t(e,R.value)},se=e=>{let{onNodeDragStart:t}=o.value;e.stopPropagation(),a.value=!0,t(e,ee);try{e.dataTransfer.setData(`text/plain`,``)}catch{}},ce=e=>{let{onNodeDragEnter:t}=o.value;e.preventDefault(),e.stopPropagation(),t(e,ee)},le=e=>{let{onNodeDragOver:t}=o.value;e.preventDefault(),e.stopPropagation(),t(e,ee)},ue=e=>{let{onNodeDragLeave:t}=o.value;e.stopPropagation(),t(e,ee)},de=e=>{let{onNodeDragEnd:t}=o.value;e.stopPropagation(),a.value=!1,t(e,ee)},fe=e=>{let{onNodeDrop:t}=o.value;e.preventDefault(),e.stopPropagation(),a.value=!1,t(e,ee)},pe=e=>{let{onNodeExpand:t}=o.value;C.value||t(e,R.value)},me=()=>{let{data:t}=e,{draggable:n}=o.value;return!(!n||n.nodeDraggable&&!n.nodeDraggable(t))},he=()=>{let{draggable:e,prefixCls:t}=o.value;return e&&e?.icon?W(`span`,{class:`${t}-draggable-icon`},[e.icon]):null},ge=()=>{let{switcherIcon:t=r.switcherIcon||o.value.slots?.[e.data?.slots?.switcherIcon]}=e,{switcherIcon:n}=o.value,i=t||n;return typeof i==`function`?i(I.value):i},_e=()=>{let{loadData:e,onNodeLoad:t}=o.value;C.value||e&&y.value&&!j.value&&!A.value&&!S.value&&t(R.value)};$r(()=>{_e()}),ti(()=>{_e()});let ve=()=>{let{prefixCls:e}=o.value,t=ge();if(j.value)return t===!1?null:W(`span`,{class:K(`${e}-switcher`,`${e}-switcher-noop`)},[t]);let n=K(`${e}-switcher`,`${e}-switcher_${y.value?gz:_z}`);return t===!1?null:W(`span`,{onClick:pe,class:n},[t])},ye=()=>{var t;let{disableCheckbox:n}=e,{prefixCls:r}=o.value,i=N.value;return P.value?W(`span`,{class:K(`${r}-checkbox`,x.value&&`${r}-checkbox-checked`,!x.value&&w.value&&`${r}-checkbox-indeterminate`,(i||n)&&`${r}-checkbox-disabled`),onClick:z},[(t=o.value).customCheckable?.call(t)]):null},be=()=>{let{prefixCls:e}=o.value;return W(`span`,{class:K(`${e}-iconEle`,`${e}-icon__${M.value||`docu`}`,C.value&&`${e}-icon_loading`)},null)},xe=()=>{let{disabled:t,eventKey:n}=e,{draggable:r,dropLevelOffset:i,dropPosition:a,prefixCls:s,indent:c,dropIndicatorRender:l,dragOverNodeKey:u,direction:d}=o.value;return!t&&r!==!1&&u===n?l({dropPosition:a,dropLevelOffset:i,indent:c,prefixCls:s,direction:d}):null},Se=()=>{let{icon:t=r.icon,data:n}=e,i=r.title||o.value.slots?.[e.data?.slots?.title]||o.value.slots?.title||e.title,{prefixCls:s,showIcon:c,icon:l,loadData:u}=o.value,d=N.value,f=`${s}-node-content-wrapper`,p;if(c){let e=t||o.value.slots?.[n?.slots?.icon]||l;p=e?W(`span`,{class:K(`${s}-iconEle`,`${s}-icon__customize`)},[typeof e==`function`?e(I.value):e]):be()}else u&&C.value&&(p=be());let m;m=typeof i==`function`?i(I.value):i,m=m===void 0?vz:m;let h=W(`span`,{class:`${s}-title`},[m]);return W(`span`,{ref:k,title:typeof i==`string`?i:``,class:K(`${f}`,`${f}-${M.value||`normal`}`,!d&&(b.value||a.value)&&`${s}-node-selected`),onMouseenter:ie,onMouseleave:ae,onContextmenu:oe,onClick:re,onDblclick:te},[p,h,xe()])};return()=>{let t=g(g({},e),n),{eventKey:r,isLeaf:i,isStart:a,isEnd:s,domRef:c,active:l,data:u,onMousemove:d,selectable:f}=t,p=hz(t,[`eventKey`,`isLeaf`,`isStart`,`isEnd`,`domRef`,`active`,`data`,`onMousemove`,`selectable`]),{prefixCls:m,filterTreeNode:_,keyEntities:v,dropContainerKey:S,dropTargetKey:O,draggingNodeKey:k}=o.value,A=N.value,j=Kb(p,{aria:!0,data:!0}),{level:M}=v[r]||{},P=s[s.length-1],F=me(),I=!A&&F,L=k===r,ee=f===void 0?void 0:{"aria-selected":!!f};return W(`div`,h(h({ref:c,class:K(n.class,`${m}-treenode`,{[`${m}-treenode-disabled`]:A,[`${m}-treenode-switcher-${y.value?`open`:`close`}`]:!i,[`${m}-treenode-checkbox-checked`]:x.value,[`${m}-treenode-checkbox-indeterminate`]:w.value,[`${m}-treenode-selected`]:b.value,[`${m}-treenode-loading`]:C.value,[`${m}-treenode-active`]:l,[`${m}-treenode-leaf-last`]:P,[`${m}-treenode-draggable`]:I,dragging:L,"drop-target":O===r,"drop-container":S===r,"drag-over":!A&&T.value,"drag-over-gap-top":!A&&E.value,"drag-over-gap-bottom":!A&&D.value,"filter-node":_&&_(R.value)}),style:n.style,draggable:I,"aria-grabbed":L,onDragstart:I?se:void 0,onDragenter:F?ce:void 0,onDragover:F?le:void 0,onDragleave:F?ue:void 0,onDrop:F?fe:void 0,onDragend:F?de:void 0,onMousemove:d},ee),j),[W(dz,{prefixCls:m,level:M,isStart:a,isEnd:s},null),he(),ve(),ye(),Se()])}}});function bz(e,t){if(!e)return[];let n=e.slice(),r=n.indexOf(t);return r>=0&&n.splice(r,1),n}function xz(e,t){let n=(e||[]).slice();return n.indexOf(t)===-1&&n.push(t),n}function Sz(e){return e.split(`-`)}function Cz(e,t){return`${e}-${t}`}function wz(e){return e&&e.type&&e.type.isTreeNode}function Tz(e,t){let n=[],r=t[e];function i(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(e=>{let{key:t,children:r}=e;n.push(t),i(r)})}return i(r.children),n}function Ez(e){if(e.parent){let t=Sz(e.pos);return Number(t[t.length-1])===e.parent.children.length-1}return!1}function Dz(e){let t=Sz(e.pos);return Number(t[t.length-1])===0}function Oz(e,t,n,r,i,a,o,s,c,l){let{clientX:u,clientY:d}=e,{top:f,height:p}=e.target.getBoundingClientRect(),m=((l===`rtl`?-1:1)*((i?.x||0)-u)-12)/r,h=s[n.eventKey];if(de.key===h.key);h=s[o[e<=0?0:e-1].key]}let g=h.key,_=h,v=h.key,y=0,b=0;if(!c.has(g))for(let e=0;e-1.5?a({dragNode:x,dropNode:S,dropPosition:1})?y=1:C=!1:a({dragNode:x,dropNode:S,dropPosition:0})?y=0:a({dragNode:x,dropNode:S,dropPosition:1})?y=1:C=!1:a({dragNode:x,dropNode:S,dropPosition:1})?y=1:C=!1,{dropPosition:y,dropLevelOffset:b,dropTargetKey:h.key,dropTargetPos:h.pos,dragOverNodeKey:v,dropContainerKey:y===0?null:h.parent?.key||null,dropAllowed:C}}function kz(e,t){if(!e)return;let{multiple:n}=t;return n?e.slice():e.length?[e[0]]:e}function Az(e){if(!e)return null;let t;if(Array.isArray(e))t={checkedKeys:e,halfCheckedKeys:void 0};else if(typeof e==`object`)t={checkedKeys:e.checked||void 0,halfCheckedKeys:e.halfChecked||void 0};else return null;return t}function jz(e,t){let n=new Set;function r(e){if(n.has(e))return;let i=t[e];if(!i)return;n.add(e);let{parent:a,node:o}=i;o.disabled||a&&r(a.key)}return(e||[]).forEach(e=>{r(e)}),[...n]}var Mz=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i0&&arguments[0]!==void 0?arguments[0]:[]).map(e=>{if(!wz(e))return null;let n=e.children||{},r=e.key,i={};for(let[t,n]of Object.entries(e.props))i[oc(t)]=n;let{isLeaf:a,checkable:o,selectable:s,disabled:c,disableCheckbox:l}=i,u={isLeaf:a||a===``||void 0,checkable:o||o===``||void 0,selectable:s||s===``||void 0,disabled:c||c===``||void 0,disableCheckbox:l||l===``||void 0},d=g(g({},i),u),{title:f=n.title?.call(n,d),icon:p=n.icon?.call(n,d),switcherIcon:m=n.switcherIcon?.call(n,d)}=i,h=Mz(i,[`title`,`icon`,`switcherIcon`]),_=n.default?.call(n),v=g(g(g({},h),{title:f,icon:p,switcherIcon:m,key:r,isLeaf:a}),u),y=t(_);return y.length&&(v.children=y),v})}return t(e)}function Iz(e,t,n){let{_title:r,key:i,children:a}=Pz(n),o=new Set(t===!0?[]:t),s=[];function c(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.map((l,u)=>{let d=Cz(n?n.pos:`0`,u),f=Nz(l[i],d),p;for(let e=0;ee[a]:typeof a==`function`&&(u=e=>a(e)):u=(e,t)=>Nz(e[s],t);function d(n,r,i,a){let o=n?n[l]:e,s=n?Cz(i.pos,r):`0`,c=n?[...a,n]:[];n&&t({node:n,index:r,pos:s,key:u(n,s),parentPos:i.node?i.pos:null,level:i.level+1,nodes:c}),o&&o.forEach((e,t)=>{d(e,t,{node:n,pos:s,level:i?i.level+1:-1},c)})}d(null)}function Rz(e){let{initWrapper:t,processEntity:n,onProcessFinished:r,externalGetKey:i,childrenPropName:a,fieldNames:o}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0,c=i||s,l={},u={},d={posEntities:l,keyEntities:u};return t&&(d=t(d)||d),Lz(e,e=>{let{node:t,index:r,pos:i,key:a,parentPos:o,level:s,nodes:c}=e,f={node:t,nodes:c,index:r,key:a,pos:i,level:s},p=Nz(a,i);l[i]=f,u[p]=f,f.parent=l[o],f.parent&&(f.parent.children=f.parent.children||[],f.parent.children.push(f)),n&&n(f,d)},{externalGetKey:c,childrenPropName:a,fieldNames:o}),r&&r(d),d}function zz(e,t){let{expandedKeysSet:n,selectedKeysSet:r,loadedKeysSet:i,loadingKeysSet:a,checkedKeysSet:o,halfCheckedKeysSet:s,dragOverNodeKey:c,dropPosition:l,keyEntities:u}=t,d=u[e];return{eventKey:e,expanded:n.has(e),selected:r.has(e),loaded:i.has(e),loading:a.has(e),checked:o.has(e),halfChecked:s.has(e),pos:String(d?d.pos:``),parent:d.parent,dragOver:c===e&&l===0,dragOverGapTop:c===e&&l===-1,dragOverGapBottom:c===e&&l===1}}function Bz(e){let{data:t,expanded:n,selected:r,checked:i,loaded:a,loading:o,halfChecked:s,dragOver:c,dragOverGapTop:l,dragOverGapBottom:u,pos:d,active:f,eventKey:p}=e,m=g(g({dataRef:t},t),{expanded:n,selected:r,checked:i,loaded:a,loading:o,halfChecked:s,dragOver:c,dragOverGapTop:l,dragOverGapBottom:u,pos:d,active:f,eventKey:p,key:p});return`props`in m||Object.defineProperty(m,"props",{get(){return e}}),m}var Vz=((e,t)=>G(()=>Rz(e.value,{fieldNames:t.value,initWrapper:e=>g(g({},e),{pathKeyEntities:{}}),processEntity:(e,n)=>{let r=e.nodes.map(e=>e[t.value.value]).join(XR);n.pathKeyEntities[r]=e,e.key=r}}).pathKeyEntities));function Hz(e){let t=V(!1),n=B({});return ar(()=>{if(!e.value){t.value=!1,n.value={};return}let r={matchInputWidth:!0,limit:50};e.value&&typeof e.value==`object`&&(r=g(g({},r),e.value)),r.limit<=0&&delete r.limit,t.value=!0,n.value=r}),{showSearch:t,searchConfig:n}}var Uz=`__rc_cascader_search_mark__`,Wz=(e,t,n)=>{let{label:r}=n;return t.some(t=>String(t[r]).toLowerCase().includes(e.toLowerCase()))},Gz=e=>{let{path:t,fieldNames:n}=e;return t.map(e=>e[n.label]).join(` / `)},Kz=((e,t,n,r,i,a)=>G(()=>{let{filter:o=Wz,render:s=Gz,limit:c=50,sort:l}=i.value,u=[];if(!e.value)return[];function d(t,i){t.forEach(t=>{if(!l&&c>0&&u.length>=c)return;let f=[...i,t],p=t[n.value.children];(!p||p.length===0||a.value)&&o(e.value,f,{label:n.value.label})&&u.push(g(g({},t),{[n.value.label]:s({inputValue:e.value,path:f,prefixCls:r.value,fieldNames:n.value}),[Uz]:f})),p&&d(t[n.value.children],f)})}return d(t.value,[]),l&&u.sort((t,r)=>l(t[Uz],r[Uz],e.value,n.value)),c>0?u.slice(0,c):u}));function qz(e,t,n){let r=new Set(e);return e.filter(e=>{let i=t[e],a=i?i.parent:null,o=i?i.children:null;return n===`SHOW_CHILD`?!(o&&o.some(e=>e.key&&r.has(e.key))):!(a&&!a.node.disabled&&r.has(a.key))})}function Jz(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0&&arguments[3],i=t,a=[];for(let t=0;t{let t=e[n.value];return r?String(t)===String(o):t===o}),c=s===-1?null:i?.[s];a.push({value:c?.[n.value]??o,index:s,option:c}),i=c?.[n.children]}return a}var Yz=((e,t,n)=>G(()=>{let r=[],i=[];return n.value.forEach(n=>{Jz(n,e.value,t.value).every(e=>e.option)?i.push(n):r.push(n)}),[i,r]}));function Xz(e,t){let n=new Set;return e.forEach(e=>{t.has(e)||n.add(e)}),n}function Zz(e){let{disabled:t,disableCheckbox:n,checkable:r}=e||{};return!!(t||n)||r===!1}function Qz(e,t,n,r){let i=new Set(e),a=new Set;for(let e=0;e<=n;e+=1)(t.get(e)||new Set).forEach(e=>{let{key:t,node:n,children:a=[]}=e;i.has(t)&&!r(n)&&a.filter(e=>!r(e.node)).forEach(e=>{i.add(e.key)})});let o=new Set;for(let e=n;e>=0;--e)(t.get(e)||new Set).forEach(e=>{let{parent:t,node:n}=e;if(r(n)||!e.parent||o.has(e.parent.key))return;if(r(e.parent.node)){o.add(t.key);return}let s=!0,c=!1;(t.children||[]).filter(e=>!r(e.node)).forEach(e=>{let{key:t}=e,n=i.has(t);s&&!n&&(s=!1),!c&&(n||a.has(t))&&(c=!0)}),s&&i.add(t.key),c&&a.add(t.key),o.add(t.key)});return{checkedKeys:Array.from(i),halfCheckedKeys:Array.from(Xz(a,i))}}function $z(e,t,n,r,i){let a=new Set(e),o=new Set(t);for(let e=0;e<=r;e+=1)(n.get(e)||new Set).forEach(e=>{let{key:t,node:n,children:r=[]}=e;!a.has(t)&&!o.has(t)&&!i(n)&&r.filter(e=>!i(e.node)).forEach(e=>{a.delete(e.key)})});o=new Set;let s=new Set;for(let e=r;e>=0;--e)(n.get(e)||new Set).forEach(e=>{let{parent:t,node:n}=e;if(i(n)||!e.parent||s.has(e.parent.key))return;if(i(e.parent.node)){s.add(t.key);return}let r=!0,c=!1;(t.children||[]).filter(e=>!i(e.node)).forEach(e=>{let{key:t}=e,n=a.has(t);r&&!n&&(r=!1),!c&&(n||o.has(t))&&(c=!0)}),r||a.delete(t.key),c&&o.add(t.key),s.add(t.key)});return{checkedKeys:Array.from(a),halfCheckedKeys:Array.from(Xz(o,a))}}function eB(e,t,n,r,i,a){let o=[],s;s=a||Zz;let c=new Set(e.filter(e=>{let t=!!n[e];return t||o.push(e),t}));o.length,`${o.slice(0,100).map(e=>`'${e}'`).join(`, `)}`;let l;return l=t===!0?Qz(c,i,r,s):$z(c,t.halfCheckedKeys,i,r,s),l}var tB=((e,t,n,r,i)=>G(()=>{let a=i.value||(e=>{let{labels:t}=e,n=r.value?t.slice(-1):t;return n.every(e=>[`string`,`number`].includes(typeof e))?n.join(` / `):n.reduce((e,t,n)=>{let r=al(t)?s_(t,{key:n}):t;return n===0?[r]:[...e,` / `,r]},[])});return e.value.map(e=>{let r=Jz(e,t.value,n.value),i=a({labels:r.map(e=>{let{option:t,value:r}=e;return t?.[n.value.label]??r}),selectedOptions:r.map(e=>{let{option:t}=e;return t})}),o=$R(e);return{label:i,value:o,key:o,valueCells:e}})})),nB=Symbol(`CascaderContextKey`),rB=e=>{er(nB,e)},iB=()=>tr(nB),aB=(()=>{let e=Cx(),{values:t}=iB(),[n,r]=_S([]);return H(()=>e.open,()=>{if(e.open&&!e.multiple){let e=t.value[0];r(e||[])}},{immediate:!0}),[n,r]}),oB=((e,t,n,r,i,a)=>{let o=Cx(),s=G(()=>o.direction===`rtl`),[c,l,u]=[B([]),B(),B([])];ar(()=>{let e=-1,i=t.value,a=[],o=[],s=r.value.length;for(let t=0;te[n.value.value]===r.value[t]);if(s===-1)break;e=s,a.push(e),o.push(r.value[t]),i=i[e][n.value.children]}let d=t.value;for(let e=0;e{i(e)},f=e=>{let t=u.value.length,r=l.value;r===-1&&e<0&&(r=t);for(let i=0;i{if(c.value.length>1){let e=c.value.slice(0,-1);d(e)}else o.toggleOpen(!1)},m=()=>{let e=(u.value[l.value]?.[n.value.children]||[]).find(e=>!e.disabled);if(e){let t=[...c.value,e[n.value.value]];d(t)}};e.expose({onKeydown:e=>{let{which:t}=e;switch(t){case $.UP:case $.DOWN:{let e=0;t===$.UP?e=-1:t===$.DOWN&&(e=1),e!==0&&f(e);break}case $.LEFT:s.value?m():p();break;case $.RIGHT:s.value?p():m();break;case $.BACKSPACE:o.searchValue||p();break;case $.ENTER:if(c.value.length){let e=u.value[l.value],t=e?.__rc_cascader_search_mark__||[];t.length?a(t.map(e=>e[n.value.value]),t[t.length-1]):a(c.value,e)}break;case $.ESC:o.toggleOpen(!1),open&&e.stopPropagation()}},onKeyup:()=>{}})});function sB(e){let{prefixCls:t,checked:n,halfChecked:r,disabled:i,onClick:a}=e,{customSlots:o,checkable:s}=iB(),c=s.value===!1?s.value:o.value.checkable,l=typeof c==`function`?c():typeof c==`boolean`?null:c;return W(`span`,{class:{[t]:!0,[`${t}-checked`]:n,[`${t}-indeterminate`]:!n&&r,[`${t}-disabled`]:i},onClick:a},[l])}sB.props=[`prefixCls`,`checked`,`halfChecked`,`disabled`,`onClick`],sB.displayName=`Checkbox`,sB.inheritAttrs=!1;var cB=`__cascader_fix_label__`;function lB(e){let{prefixCls:t,multiple:n,options:r,activeValue:i,prevValuePath:a,onToggleOpen:o,onSelect:s,onActive:c,checkedSet:l,halfCheckedSet:u,loadingKeys:d,isSelectable:f}=e;var p,m;let h=`${t}-menu`,g=`${t}-menu-item`,{fieldNames:_,changeOnSelect:v,expandTrigger:y,expandIcon:b,loadingIcon:x,dropdownMenuColumnStyle:S,customSlots:C}=iB(),w=b.value??(p=C.value).expandIcon?.call(p),T=x.value??(m=C.value).loadingIcon?.call(m),E=y.value===`hover`;return W(`ul`,{class:h,role:`menu`},[r.map(e=>{let{disabled:r}=e,p=e[Uz],m=e.__cascader_fix_label__??e[_.value.label],h=e[_.value.value],y=rz(e,_.value),b=p?p.map(e=>e[_.value.value]):[...a,h],x=$R(b),C=d.includes(x),D=l.has(x),O=u.has(x),k=()=>{!r&&(!E||!y)&&c(b)},A=()=>{f(e)&&s(b,y)},j;return typeof e.title==`string`?j=e.title:typeof m==`string`&&(j=m),W(`li`,{key:x,class:[g,{[`${g}-expand`]:!y,[`${g}-active`]:i===h,[`${g}-disabled`]:r,[`${g}-loading`]:C}],style:S.value,role:`menuitemcheckbox`,title:j,"aria-checked":D,"data-path-key":x,onClick:()=>{k(),(!n||y)&&A()},onDblclick:()=>{v.value&&o(!1)},onMouseenter:()=>{E&&k()},onMousedown:e=>{e.preventDefault()}},[n&&W(sB,{prefixCls:`${t}-checkbox`,checked:D,halfChecked:O,disabled:r,onClick:e=>{e.stopPropagation(),A()}},null),W(`div`,{class:`${g}-content`},[m]),!C&&w&&!y&&W(`div`,{class:`${g}-expand-icon`},[s_(w)]),C&&T&&W(`div`,{class:`${g}-loading-icon`},[s_(T)])])})])}lB.props=[`prefixCls`,`multiple`,`options`,`activeValue`,`prevValuePath`,`onToggleOpen`,`onSelect`,`onActive`,`checkedSet`,`halfCheckedSet`,`loadingKeys`,`isSelectable`],lB.displayName=`Column`,lB.inheritAttrs=!1;var uB=U({compatConfig:{MODE:3},name:`OptionList`,inheritAttrs:!1,setup(e,t){let{attrs:n,slots:r}=t,i=Cx(),a=B(),o=G(()=>i.direction===`rtl`),{options:s,values:c,halfValues:l,fieldNames:u,changeOnSelect:d,onSelect:f,searchOptions:p,dropdownPrefixCls:m,loadData:_,expandTrigger:v,customSlots:y}=iB(),b=G(()=>m.value||i.prefixCls),x=V([]),S=e=>{if(!_.value||i.searchValue)return;let t=Jz(e,s.value,u.value).map(e=>{let{option:t}=e;return t}),n=t[t.length-1];if(n&&!rz(n,u.value)){let n=$R(e);x.value=[...x.value,n],_.value(t)}};ar(()=>{x.value.length&&x.value.forEach(e=>{let t=Jz(tz(e),s.value,u.value,!0).map(e=>{let{option:t}=e;return t}),n=t[t.length-1];(!n||n[u.value.children]||rz(n,u.value))&&(x.value=x.value.filter(t=>t!==e))})});let C=G(()=>new Set(ez(c.value))),w=G(()=>new Set(ez(l.value))),[T,E]=aB(),D=e=>{E(e),S(e)},O=e=>{let{disabled:t}=e,n=rz(e,u.value);return!t&&(n||d.value||i.multiple)},k=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2];f(e),!i.multiple&&(t||d.value&&(v.value===`hover`||n))&&i.toggleOpen(!1)},A=G(()=>i.searchValue?p.value:s.value),j=G(()=>{let e=[{options:A.value}],t=A.value;for(let n=0;ne[u.value.value]===r)?.[u.value.children];if(!i?.length)break;t=i,e.push({options:i})}return e});oB(t,A,u,T,D,(e,t)=>{O(t)&&k(e,rz(t,u.value),!0)});let M=e=>{e.preventDefault()};return $r(()=>{H(T,e=>{for(let t=0;t{var e;let{notFoundContent:t=r.notFoundContent?.call(r)||(e=y.value).notFoundContent?.call(e),multiple:s,toggleOpen:c}=i,l=!j.value[0]?.options?.length,d=[{[u.value.value]:`__EMPTY__`,[cB]:t,disabled:!0}],f=g(g({},n),{multiple:!l&&s,onSelect:k,onActive:D,onToggleOpen:c,checkedSet:C.value,halfCheckedSet:w.value,loadingKeys:x.value,isSelectable:O}),p=(l?[{options:d}]:j.value).map((e,t)=>{let n=T.value.slice(0,t),r=T.value[t];return W(lB,h(h({key:t},f),{},{prefixCls:b.value,options:e.options,prevValuePath:n,activeValue:r}),null)});return W(`div`,{class:[`${b.value}-menus`,{[`${b.value}-menu-empty`]:l,[`${b.value}-rtl`]:o.value}],onMousedown:M,ref:a},[p])}}});function dB(e){let t=B(0),n=V();return ar(()=>{let r=new Map,i=0,a=e.value||{};for(let e in a)if(Object.prototype.hasOwnProperty.call(a,e)){let t=a[e],{level:n}=t,o=r.get(n);o||(o=new Set,r.set(n,o)),o.add(t),i=Math.max(i,n)}t.value=i,n.value=r}),{maxLevel:t,levelEntities:n}}function fB(){return g(g({},sm(kx(),[`tokenSeparators`,`mode`,`showSearch`])),{id:String,prefixCls:String,fieldNames:q(),children:Array,value:{type:[String,Number,Array]},defaultValue:{type:[String,Number,Array]},changeOnSelect:{type:Boolean,default:void 0},displayRender:Function,checkable:{type:Boolean,default:void 0},showCheckedStrategy:{type:String,default:ZR},showSearch:{type:[Boolean,Object],default:void 0},searchValue:String,onSearch:Function,expandTrigger:String,options:Array,dropdownPrefixCls:String,loadData:Function,popupVisible:{type:Boolean,default:void 0},dropdownClassName:String,dropdownMenuColumnStyle:{type:Object,default:void 0},popupStyle:{type:Object,default:void 0},dropdownStyle:{type:Object,default:void 0},popupPlacement:String,placement:String,onPopupVisibleChange:Function,onDropdownVisibleChange:Function,expandIcon:Q.any,loadingIcon:Q.any})}function pB(){return g(g({},fB()),{onChange:Function,customSlots:Object})}function mB(e){return Array.isArray(e)&&Array.isArray(e[0])}function hB(e){return e?mB(e)?e:(e.length===0?[]:[e]).map(e=>Array.isArray(e)?e:[e]):[]}var gB=U({compatConfig:{MODE:3},name:`Cascader`,inheritAttrs:!1,props:Bc(pB(),{}),setup(e,t){let{attrs:n,expose:r,slots:i}=t,a=dS(vn(e,`id`)),o=G(()=>!!e.checkable),[s,c]=gS(e.defaultValue,{value:G(()=>e.value),postState:hB}),l=G(()=>nz(e.fieldNames)),u=G(()=>e.options||[]),d=Vz(u,l),f=e=>{let t=d.value;return e.map(e=>{let{nodes:n}=t[e];return n.map(e=>e[l.value.value])})},[p,m]=gS(``,{value:G(()=>e.searchValue),postState:e=>e||``}),_=(t,n)=>{m(t),n.source!==`blur`&&e.onSearch&&e.onSearch(t)},{showSearch:v,searchConfig:y}=Hz(vn(e,`showSearch`)),b=Kz(p,u,l,G(()=>e.dropdownPrefixCls||e.prefixCls),y,vn(e,`changeOnSelect`)),x=Yz(u,l,s),[S,C,w]=[B([]),B([]),B([])],{maxLevel:T,levelEntities:E}=dB(d);ar(()=>{let[e,t]=x.value;if(!o.value||!s.value.length){[S.value,C.value,w.value]=[e,[],t];return}let n=ez(e),r=d.value,{checkedKeys:i,halfCheckedKeys:a}=eB(n,!0,r,T.value,E.value);[S.value,C.value,w.value]=[f(i),f(a),t]});let D=tB(G(()=>{let t=qz(ez(S.value),d.value,e.showCheckedStrategy);return[...w.value,...f(t)]}),u,l,o,vn(e,`displayRender`)),O=t=>{if(c(t),e.onChange){let n=hB(t),r=n.map(e=>Jz(e,u.value,l.value).map(e=>e.option)),i=o.value?n:n[0],a=o.value?r:r[0];e.onChange(i,a)}},k=t=>{if(m(``),!o.value)O(t);else{let n=$R(t),r=ez(S.value),i=ez(C.value),a=r.includes(n),o=w.value.some(e=>$R(e)===n),s=S.value,c=w.value;if(o&&!a)c=w.value.filter(e=>$R(e)!==n);else{let t=a?r.filter(e=>e!==n):[...r,n],o;a?{checkedKeys:o}=eB(t,{checked:!1,halfCheckedKeys:i},d.value,T.value,E.value):{checkedKeys:o}=eB(t,!0,d.value,T.value,E.value);let c=qz(o,d.value,e.showCheckedStrategy);s=f(c)}O([...c,...s])}},A=(e,t)=>{if(t.type===`clear`){O([]);return}let{valueCells:n}=t.values[0];k(n)},j=G(()=>e.open===void 0?e.popupVisible:e.open),M=G(()=>e.dropdownStyle||e.popupStyle||{}),N=G(()=>e.placement||e.popupPlacement),P=t=>{var n,r;(n=e.onDropdownVisibleChange)==null||n.call(e,t),(r=e.onPopupVisibleChange)==null||r.call(e,t)},{changeOnSelect:F,checkable:I,dropdownPrefixCls:L,loadData:R,expandTrigger:ee,expandIcon:te,loadingIcon:ne,dropdownMenuColumnStyle:z,customSlots:re,dropdownClassName:ie}=hn(e);rB({options:u,fieldNames:l,values:S,halfValues:C,changeOnSelect:F,onSelect:k,checkable:I,searchOptions:b,dropdownPrefixCls:L,loadData:R,expandTrigger:ee,expandIcon:te,loadingIcon:ne,dropdownMenuColumnStyle:z,customSlots:re});let ae=B();r({focus(){var e;(e=ae.value)==null||e.focus()},blur(){var e;(e=ae.value)==null||e.blur()},scrollTo(e){var t;(t=ae.value)==null||t.scrollTo(e)}});let oe=G(()=>sm(e,`id.prefixCls.fieldNames.defaultValue.value.changeOnSelect.onChange.displayRender.checkable.searchValue.onSearch.showSearch.expandTrigger.options.dropdownPrefixCls.loadData.popupVisible.open.dropdownClassName.dropdownMenuColumnStyle.popupPlacement.placement.onDropdownVisibleChange.onPopupVisibleChange.expandIcon.loadingIcon.customSlots.showCheckedStrategy.children`.split(`.`)));return()=>{let t=!(p.value?b.value:u.value).length,{dropdownMatchSelectWidth:r=!1}=e,s=p.value&&y.value.matchInputWidth||t?{}:{minWidth:`auto`};return W(Mx,h(h(h({},oe.value),n),{},{ref:ae,id:a,prefixCls:e.prefixCls,dropdownMatchSelectWidth:r,dropdownStyle:g(g({},M.value),s),displayValues:D.value,onDisplayValuesChange:A,mode:o.value?`multiple`:void 0,searchValue:p.value,onSearch:_,showSearch:v.value,OptionList:uB,emptyOptions:t,open:j.value,dropdownClassName:ie.value,placement:N.value,onDropdownVisibleChange:P,getRawInputElement:()=>i.default?.call(i)}),i)}}}),_B={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z`}}]},name:`left`,theme:`outlined`};function vB(e){for(var t=1;thu()&&window.document.documentElement,SB=e=>{if(hu()&&window.document.documentElement){let t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(e=>e in n.style)}return!1},CB=(e,t)=>{if(!SB(e))return!1;let n=document.createElement(`div`),r=n.style[e];return n.style[e]=t,n.style[e]!==r};function wB(e,t){return!Array.isArray(e)&&t!==void 0?CB(e,t):SB(e)}var TB,EB=()=>{if(!xB())return!1;if(TB!==void 0)return TB;let e=document.createElement(`div`);return e.style.display=`flex`,e.style.flexDirection=`column`,e.style.rowGap=`1px`,e.appendChild(document.createElement(`div`)),e.appendChild(document.createElement(`div`)),document.body.appendChild(e),TB=e.scrollHeight===1,document.body.removeChild(e),TB},DB=(()=>{let e=V(!1);return $r(()=>{e.value=EB()}),e}),OB=Symbol(`rowContextKey`),kB=e=>{er(OB,e)},AB=()=>tr(OB,{gutter:G(()=>void 0),wrap:G(()=>void 0),supportFlexGap:G(()=>void 0)}),jB=e=>{let{componentCls:t}=e;return{[t]:{display:`flex`,flexFlow:`row wrap`,minWidth:0,"&::before, &::after":{display:`flex`},"&-no-wrap":{flexWrap:`nowrap`},"&-start":{justifyContent:`flex-start`},"&-center":{justifyContent:`center`},"&-end":{justifyContent:`flex-end`},"&-space-between":{justifyContent:`space-between`},"&-space-around ":{justifyContent:`space-around`},"&-space-evenly ":{justifyContent:`space-evenly`},"&-top":{alignItems:`flex-start`},"&-middle":{alignItems:`center`},"&-bottom":{alignItems:`flex-end`}}}},MB=e=>{let{componentCls:t}=e;return{[t]:{position:`relative`,maxWidth:`100%`,minHeight:1}}},NB=(e,t)=>{let{componentCls:n,gridColumns:r}=e,i={};for(let e=r;e>=0;e--)e===0?(i[`${n}${t}-${e}`]={display:`none`},i[`${n}-push-${e}`]={insetInlineStart:`auto`},i[`${n}-pull-${e}`]={insetInlineEnd:`auto`},i[`${n}${t}-push-${e}`]={insetInlineStart:`auto`},i[`${n}${t}-pull-${e}`]={insetInlineEnd:`auto`},i[`${n}${t}-offset-${e}`]={marginInlineEnd:0},i[`${n}${t}-order-${e}`]={order:0}):(i[`${n}${t}-${e}`]={display:`block`,flex:`0 0 ${e/r*100}%`,maxWidth:`${e/r*100}%`},i[`${n}${t}-push-${e}`]={insetInlineStart:`${e/r*100}%`},i[`${n}${t}-pull-${e}`]={insetInlineEnd:`${e/r*100}%`},i[`${n}${t}-offset-${e}`]={marginInlineStart:`${e/r*100}%`},i[`${n}${t}-order-${e}`]={order:e});return i},PB=(e,t)=>NB(e,t),FB=(e,t,n)=>({[`@media (min-width: ${t}px)`]:g({},PB(e,n))}),IB=Fp(`Grid`,e=>[jB(e)]),LB=Fp(`Grid`,e=>{let t=Rp(e,{gridColumns:24}),n={"-sm":t.screenSMMin,"-md":t.screenMDMin,"-lg":t.screenLGMin,"-xl":t.screenXLMin,"-xxl":t.screenXXLMin};return[MB(t),PB(t,``),PB(t,`-xs`),Object.keys(n).map(e=>FB(t,n[e],e)).reduce((e,t)=>g(g({},e),t),{})]}),RB=U({compatConfig:{MODE:3},name:`ARow`,inheritAttrs:!1,props:{align:Sl([String,Object]),justify:Sl([String,Object]),prefixCls:String,gutter:Sl([Number,Array,Object],0),wrap:{type:Boolean,default:void 0}},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`row`,e),[o,s]=IB(i),c,l=TA(),u=B({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),d=B({xs:!1,sm:!1,md:!1,lg:!1,xl:!1,xxl:!1}),f=t=>G(()=>{if(typeof e[t]==`string`)return e[t];if(typeof e[t]!=`object`)return``;for(let n=0;n{c=l.value.subscribe(t=>{d.value=t;let n=e.gutter||0;(!Array.isArray(n)&&typeof n==`object`||Array.isArray(n)&&(typeof n[0]==`object`||typeof n[1]==`object`))&&(u.value=t)})}),ni(()=>{l.value.unsubscribe(c)});let v=G(()=>{let t=[void 0,void 0],{gutter:n=0}=e;return(Array.isArray(n)?n:[n,void 0]).forEach((e,n)=>{if(typeof e==`object`)for(let r=0;re.wrap)});let y=G(()=>K(i.value,{[`${i.value}-no-wrap`]:e.wrap===!1,[`${i.value}-${m.value}`]:m.value,[`${i.value}-${p.value}`]:p.value,[`${i.value}-rtl`]:a.value===`rtl`},r.class,s.value)),b=G(()=>{let e=v.value,t={},n=e[0]!=null&&e[0]>0?`${e[0]/-2}px`:void 0,r=e[1]!=null&&e[1]>0?`${e[1]/-2}px`:void 0;return n&&(t.marginLeft=n,t.marginRight=n),_.value?t.rowGap=`${e[1]}px`:r&&(t.marginTop=r,t.marginBottom=r),t});return()=>o(W(`div`,h(h({},r),{},{class:y.value,style:g(g({},b.value),r.style)}),[n.default?.call(n)]))}});function zB(){return zB=Object.assign?Object.assign.bind():function(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function WB(e,t,n){return WB=UB()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&HB(i,n.prototype),i},WB.apply(null,arguments)}function GB(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function KB(e){var t=typeof Map==`function`?new Map:void 0;return KB=function(e){if(e===null||!GB(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return WB(e,arguments,VB(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),HB(n,e)},KB(e)}var qB=/%[sdj%]/g,JB=function(){};function YB(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)}),t}function XB(e){var t=[...arguments].slice(1),n=0,r=t.length;return typeof e==`function`?e.apply(null,t):typeof e==`string`?e.replace(qB,function(e){if(e===`%%`)return`%`;if(n>=r)return e;switch(e){case`%s`:return String(t[n++]);case`%d`:return Number(t[n++]);case`%j`:try{return JSON.stringify(t[n++])}catch{return`[Circular]`}default:return e}}):e}function ZB(e){return e===`string`||e===`url`||e===`hex`||e===`email`||e===`date`||e===`pattern`}function QB(e,t){return!!(e==null||t===`array`&&Array.isArray(e)&&!e.length||ZB(t)&&typeof e==`string`&&!e)}function $B(e,t,n){var r=[],i=0,a=e.length;function o(e){r.push.apply(r,e||[]),i++,i===a&&n(r)}e.forEach(function(e){t(e,o)})}function eV(e,t,n){var r=0,i=e.length;function a(o){if(o&&o.length)n(o);else{var s=r;r+=1,s()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},pV={integer:function(e){return pV.number(e)&&parseInt(e,10)===e},float:function(e){return pV.number(e)&&!pV.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch{return!1}},date:function(e){return typeof e.getTime==`function`&&typeof e.getMonth==`function`&&typeof e.getYear==`function`&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&typeof e==`number`},object:function(e){return typeof e==`object`&&!pV.array(e)},method:function(e){return typeof e==`function`},email:function(e){return typeof e==`string`&&e.length<=320&&!!e.match(fV.email)},url:function(e){return typeof e==`string`&&e.length<=2048&&!!e.match(dV())},hex:function(e){return typeof e==`string`&&!!e.match(fV.hex)}},mV=function(e,t,n,r,i){if(e.required&&t===void 0)cV(e,t,n,r,i);else{var a=[`integer`,`float`,`array`,`regexp`,`object`,`method`,`email`,`number`,`date`,`url`,`hex`],o=e.type;a.indexOf(o)>-1?pV[o](t)||r.push(XB(i.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&r.push(XB(i.messages.types[o],e.fullField,e.type))}},hV=function(e,t,n,r,i){var a=typeof e.len==`number`,o=typeof e.min==`number`,s=typeof e.max==`number`,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=t,u=null,d=typeof t==`number`,f=typeof t==`string`,p=Array.isArray(t);if(d?u=`number`:f?u=`string`:p&&(u=`array`),!u)return!1;p&&(l=t.length),f&&(l=t.replace(c,`_`).length),a?l!==e.len&&r.push(XB(i.messages[u].len,e.fullField,e.len)):o&&!s&&le.max?r.push(XB(i.messages[u].max,e.fullField,e.max)):o&&s&&(le.max)&&r.push(XB(i.messages[u].range,e.fullField,e.min,e.max))},gV=`enum`,_V={required:cV,whitespace:lV,type:mV,range:hV,enum:function(e,t,n,r,i){e[gV]=Array.isArray(e[gV])?e[gV]:[],e[gV].indexOf(t)===-1&&r.push(XB(i.messages[gV],e.fullField,e[gV].join(`, `)))},pattern:function(e,t,n,r,i){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||r.push(XB(i.messages.pattern.mismatch,e.fullField,t,e.pattern))):typeof e.pattern==`string`&&(new RegExp(e.pattern).test(t)||r.push(XB(i.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},vV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t,`string`)&&!e.required)return n();_V.required(e,t,r,a,i,`string`),QB(t,`string`)||(_V.type(e,t,r,a,i),_V.range(e,t,r,a,i),_V.pattern(e,t,r,a,i),e.whitespace===!0&&_V.whitespace(e,t,r,a,i))}n(a)},yV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),t!==void 0&&_V.type(e,t,r,a,i)}n(a)},bV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t===``&&(t=void 0),QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),t!==void 0&&(_V.type(e,t,r,a,i),_V.range(e,t,r,a,i))}n(a)},xV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),t!==void 0&&_V.type(e,t,r,a,i)}n(a)},SV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),QB(t)||_V.type(e,t,r,a,i)}n(a)},CV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),t!==void 0&&(_V.type(e,t,r,a,i),_V.range(e,t,r,a,i))}n(a)},wV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),t!==void 0&&(_V.type(e,t,r,a,i),_V.range(e,t,r,a,i))}n(a)},TV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t==null&&!e.required)return n();_V.required(e,t,r,a,i,`array`),t!=null&&(_V.type(e,t,r,a,i),_V.range(e,t,r,a,i))}n(a)},EV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),t!==void 0&&_V.type(e,t,r,a,i)}n(a)},DV=`enum`,OV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i),t!==void 0&&_V[DV](e,t,r,a,i)}n(a)},kV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t,`string`)&&!e.required)return n();_V.required(e,t,r,a,i),QB(t,`string`)||_V.pattern(e,t,r,a,i)}n(a)},AV=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t,`date`)&&!e.required)return n();if(_V.required(e,t,r,a,i),!QB(t,`date`)){var o=t instanceof Date?t:new Date(t);_V.type(e,o,r,a,i),o&&_V.range(e,o.getTime(),r,a,i)}}n(a)},jV=function(e,t,n,r,i){var a=[],o=Array.isArray(t)?`array`:typeof t;_V.required(e,t,r,a,i,o),n(a)},MV=function(e,t,n,r,i){var a=e.type,o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t,a)&&!e.required)return n();_V.required(e,t,r,o,i,a),QB(t,a)||_V.type(e,t,r,o,i)}n(o)},NV={string:vV,method:yV,number:bV,boolean:xV,regexp:SV,integer:CV,float:wV,array:TV,object:EV,enum:OV,pattern:kV,date:AV,url:MV,hex:MV,email:MV,required:jV,any:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(QB(t)&&!e.required)return n();_V.required(e,t,r,a,i)}n(a)}};function PV(){return{default:`Validation error on field %s`,required:`%s is required`,enum:`%s must be one of %s`,whitespace:`%s cannot be empty`,date:{format:`%s date %s is invalid for format %s`,parse:`%s date could not be parsed, %s is invalid `,invalid:`%s date %s is invalid`},types:{string:`%s is not a %s`,method:`%s is not a %s (function)`,array:`%s is not an %s`,object:`%s is not an %s`,number:`%s is not a %s`,date:`%s is not a %s`,boolean:`%s is not a %s`,integer:`%s is not an %s`,float:`%s is not a %s`,regexp:`%s is not a valid %s`,email:`%s is not a valid %s`,url:`%s is not a valid %s`,hex:`%s is not a valid %s`},string:{len:`%s must be exactly %s characters`,min:`%s must be at least %s characters`,max:`%s cannot be longer than %s characters`,range:`%s must be between %s and %s characters`},number:{len:`%s must equal %s`,min:`%s cannot be less than %s`,max:`%s cannot be greater than %s`,range:`%s must be between %s and %s`},array:{len:`%s must be exactly %s in length`,min:`%s cannot be less than %s in length`,max:`%s cannot be greater than %s in length`,range:`%s must be between %s and %s in length`},pattern:{mismatch:`%s value %s does not match pattern %s`},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var FV=PV(),IV=function(){function e(e){this.rules=null,this._messages=FV,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw Error(`Cannot configure a schema with no rules`);if(typeof e!=`object`||Array.isArray(e))throw Error(`Rules must be an object`);this.rules={},Object.keys(e).forEach(function(n){var r=e[n];t.rules[n]=Array.isArray(r)?r:[r]})},t.messages=function(e){return e&&(this._messages=sV(PV(),e)),this._messages},t.validate=function(t,n,r){var i=this;n===void 0&&(n={}),r===void 0&&(r=function(){});var a=t,o=n,s=r;if(typeof o==`function`&&(s=o,o={}),!this.rules||Object.keys(this.rules).length===0)return s&&s(null,a),Promise.resolve(a);function c(e){var t=[],n={};function r(e){if(Array.isArray(e)){var n;t=(n=t).concat.apply(n,e)}else t.push(e)}for(var i=0;i3&&arguments[3]!==void 0&&arguments[3];return t.length&&r&&n===void 0&&!RV(e,t.slice(0,-1))?e:zV(e,t,n,r)}function VV(e){return LV(e)}function HV(e,t){return RV(e,t)}function UV(e,t,n){return BV(e,t,n,arguments.length>3&&arguments[3]!==void 0&&arguments[3])}function WV(e,t){return e&&e.some(e=>YV(e,t))}function GV(e){return typeof e==`object`&&!!e&&Object.getPrototypeOf(e)===Object.prototype}function KV(e,t){let n=Array.isArray(e)?[...e]:g({},e);return t&&Object.keys(t).forEach(e=>{let r=n[e],i=t[e],a=GV(r)&&GV(i);n[e]=a?KV(r,i||{}):i}),n}function qV(e){return[...arguments].slice(1).reduce((e,t)=>KV(e,t),e)}function JV(e,t){let n={};return t.forEach(t=>{let r=HV(e,t);n=UV(n,t,r)}),n}function YV(e,t){return!e||!t||e.length!==t.length?!1:e.every((e,n)=>t[n]===e)}var XV="'${name}' is not a valid ${type}",ZV={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:XV,method:XV,array:XV,object:XV,number:XV,date:XV,boolean:XV,integer:XV,float:XV,regexp:XV,email:XV,url:XV,hex:XV},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},QV=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},$V=IV;function eH(e,t){return e.replace(/\$\{\w+\}/g,e=>t[e.slice(2,-1)])}function tH(e,t,n,r,i){return QV(this,void 0,void 0,function*(){let a=g({},n);delete a.ruleIndex,delete a.trigger;let o=null;a&&a.type===`array`&&a.defaultField&&(o=a.defaultField,delete a.defaultField);let s=new $V({[e]:[a]}),c=qV({},ZV,r.validateMessages);s.messages(c);let l=[];try{yield Promise.resolve(s.validate({[e]:t},g({},r)))}catch(e){e.errors?l=e.errors.map((e,t)=>{let{message:n}=e;return al(n)?Za(n,{key:`error_${t}`}):n}):(console.error(e),l=[c.default()])}if(!l.length&&o)return(yield Promise.all(t.map((t,n)=>tH(`${e}.${n}`,t,o,r,i)))).reduce((e,t)=>[...e,...t],[]);let u=g(g(g({},n),{name:e,enum:(n.enum||[]).join(`, `)}),i);return l.map(e=>typeof e==`string`?eH(e,u):e)})}function nH(e,t,n,r,i,a){let o=e.join(`.`),s=n.map((e,t)=>{let n=e.validator,r=g(g({},e),{ruleIndex:t});return n&&(r.validator=(e,t,r)=>{let i=!1,a=n(e,t,function(){var e=[...arguments];Promise.resolve().then(()=>{i||r(...e)})});i=a&&typeof a.then==`function`&&typeof a.catch==`function`,i&&a.then(()=>{r()}).catch(e=>{r(e||` `)})}),r}).sort((e,t)=>{let{warningOnly:n,ruleIndex:r}=e,{warningOnly:i,ruleIndex:a}=t;return!!n==!!i?r-a:n?1:-1}),c;if(i===!0)c=new Promise((e,n)=>QV(this,void 0,void 0,function*(){for(let e=0;etH(o,t,e,r,a).then(t=>({errors:t,rule:e})));c=(i?iH(e):rH(e)).then(e=>Promise.reject(e))}return c.catch(e=>e),c}function rH(e){return QV(this,void 0,void 0,function*(){return Promise.all(e).then(e=>[].concat(...e))})}function iH(e){return QV(this,void 0,void 0,function*(){let t=0;return new Promise(n=>{e.forEach(r=>{r.then(r=>{r.errors.length&&n([r]),t+=1,t===e.length&&n([])})})})})}var aH=Symbol(`formContextKey`),oH=e=>{er(aH,e)},sH=()=>tr(aH,{name:G(()=>void 0),labelAlign:G(()=>`right`),vertical:G(()=>!1),addField:(e,t)=>{},removeField:e=>{},model:G(()=>void 0),rules:G(()=>void 0),colon:G(()=>void 0),labelWrap:G(()=>void 0),labelCol:G(()=>void 0),requiredMark:G(()=>!1),validateTrigger:G(()=>void 0),onValidate:()=>{},validateMessages:G(()=>ZV)}),cH=Symbol(`formItemPrefixContextKey`),lH=e=>{er(cH,e)},uH=()=>tr(cH,{prefixCls:G(()=>``)});function dH(e){return typeof e==`number`?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}var fH=()=>({span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}),pH=[`xs`,`sm`,`md`,`lg`,`xl`,`xxl`],mH=U({compatConfig:{MODE:3},name:`ACol`,inheritAttrs:!1,props:fH(),setup(e,t){let{slots:n,attrs:r}=t,{gutter:i,supportFlexGap:a,wrap:o}=AB(),{prefixCls:s,direction:c}=Z(`col`,e),[l,u]=LB(s),d=G(()=>{let{span:t,order:n,offset:i,push:a,pull:o}=e,l=s.value,d={};return pH.forEach(t=>{let n={},r=e[t];typeof r==`number`?n.span=r:typeof r==`object`&&(n=r||{}),d=g(g({},d),{[`${l}-${t}-${n.span}`]:n.span!==void 0,[`${l}-${t}-order-${n.order}`]:n.order||n.order===0,[`${l}-${t}-offset-${n.offset}`]:n.offset||n.offset===0,[`${l}-${t}-push-${n.push}`]:n.push||n.push===0,[`${l}-${t}-pull-${n.pull}`]:n.pull||n.pull===0,[`${l}-rtl`]:c.value===`rtl`})}),K(l,{[`${l}-${t}`]:t!==void 0,[`${l}-order-${n}`]:n,[`${l}-offset-${i}`]:i,[`${l}-push-${a}`]:a,[`${l}-pull-${o}`]:o},d,r.class,u.value)}),f=G(()=>{let{flex:t}=e,n=i.value,r={};if(n&&n[0]>0){let e=`${n[0]/2}px`;r.paddingLeft=e,r.paddingRight=e}if(n&&n[1]>0&&!a.value){let e=`${n[1]/2}px`;r.paddingTop=e,r.paddingBottom=e}return t&&(r.flex=dH(t),o.value===!1&&!r.minWidth&&(r.minWidth=0)),r});return()=>l(W(`div`,h(h({},r),{},{class:d.value,style:[f.value,r.style]}),[n.default?.call(n)]))}}),hH={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z`}},{tag:`path`,attrs:{d:`M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z`}}]},name:`question-circle`,theme:`outlined`};function gH(e){for(var t=1;t{let{slots:n,emit:r,attrs:i}=t,{prefixCls:a,htmlFor:o,labelCol:s,labelAlign:c,colon:l,required:u,requiredMark:d}=g(g({},e),i),[f]=$l(`Form`),p=e.label??n.label?.call(n);if(!p)return null;let{vertical:m,labelAlign:_,labelCol:v,labelWrap:y,colon:b}=sH(),x=s||v?.value||{},S=c||_?.value,C=`${a}-item-label`,w=K(C,S===`left`&&`${C}-left`,x.class,{[`${C}-wrap`]:!!y.value}),T=p,E=l===!0||b?.value!==!1&&l!==!1;if(E&&!m.value&&typeof p==`string`&&p.trim()!==``&&(T=p.replace(/[:|:]\s*$/,``)),e.tooltip||n.tooltip){let t=W(`span`,{class:`${a}-item-tooltip`},[W(KA,{title:e.tooltip},{default:()=>[W(vH,null,null)]})]);T=W(Ma,null,[T,n.tooltip?n.tooltip?.call(n,{class:`${a}-item-tooltip`}):t])}d===`optional`&&!u&&(T=W(Ma,null,[T,W(`span`,{class:`${a}-item-optional`},[f.value?.optional||Zl.Form?.optional])]));let D=K({[`${a}-item-required`]:u,[`${a}-item-required-mark-optional`]:d===`optional`,[`${a}-item-no-colon`]:!E});return W(mH,h(h({},x),{},{class:w}),{default:()=>[W(`label`,{for:o,class:D,title:typeof p==`string`?p:``,onClick:e=>r(`click`,e)},[T])]})};yH.displayName=`FormItemLabel`,yH.inheritAttrs=!1;var bH=e=>{let{componentCls:t}=e,n=`${t}-show-help`,r=`${t}-show-help-item`;return{[n]:{transition:`opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[r]:{overflow:`hidden`,transition:`height ${e.motionDurationSlow} ${e.motionEaseInOut}, + opacity ${e.motionDurationSlow} ${e.motionEaseInOut}, + transform ${e.motionDurationSlow} ${e.motionEaseInOut} !important`,[`&${r}-appear, &${r}-enter`]:{transform:`translateY(-5px)`,opacity:0,"&-active":{transform:`translateY(0)`,opacity:1}},[`&${r}-leave-active`]:{transform:`translateY(-5px)`}}}}},xH=e=>({legend:{display:`block`,width:`100%`,marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:`inherit`,border:0,borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},label:{fontSize:e.fontSize},'input[type="search"]':{boxSizing:`border-box`},'input[type="radio"], input[type="checkbox"]':{lineHeight:`normal`},'input[type="file"]':{display:`block`},'input[type="range"]':{display:`block`,width:`100%`},"select[multiple], select[size]":{height:`auto`},"input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus":{outline:0,boxShadow:`0 0 0 ${e.controlOutlineWidth}px ${e.controlOutline}`},output:{display:`block`,paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),SH=(e,t)=>{let{formItemCls:n}=e;return{[n]:{[`${n}-label > label`]:{height:t},[`${n}-control-input`]:{minHeight:t}}}},CH=e=>{let{componentCls:t}=e;return{[e.componentCls]:g(g(g({},Op(e)),xH(e)),{[`${t}-text`]:{display:`inline-block`,paddingInlineEnd:e.paddingSM},"&-small":g({},SH(e,e.controlHeightSM)),"&-large":g({},SH(e,e.controlHeightLG))})}},wH=e=>{let{formItemCls:t,iconCls:n,componentCls:r,rootPrefixCls:i}=e;return{[t]:g(g({},Op(e)),{marginBottom:e.marginLG,verticalAlign:`top`,"&-with-help":{transition:`none`},[`&-hidden, + &-hidden.${i}-row`]:{display:`none`},"&-has-warning":{[`${t}-split`]:{color:e.colorError}},"&-has-error":{[`${t}-split`]:{color:e.colorWarning}},[`${t}-label`]:{display:`inline-block`,flexGrow:0,overflow:`hidden`,whiteSpace:`nowrap`,textAlign:`end`,verticalAlign:`middle`,"&-left":{textAlign:`start`},"&-wrap":{overflow:`unset`,lineHeight:`${e.lineHeight} - 0.25em`,whiteSpace:`unset`},"> label":{position:`relative`,display:`inline-flex`,alignItems:`center`,maxWidth:`100%`,height:e.controlHeight,color:e.colorTextHeading,fontSize:e.fontSize,[`> ${n}`]:{fontSize:e.fontSize,verticalAlign:`top`},[`&${t}-required:not(${t}-required-mark-optional)::before`]:{display:`inline-block`,marginInlineEnd:e.marginXXS,color:e.colorError,fontSize:e.fontSize,fontFamily:`SimSun, sans-serif`,lineHeight:1,content:`"*"`,[`${r}-hide-required-mark &`]:{display:`none`}},[`${t}-optional`]:{display:`inline-block`,marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`${r}-hide-required-mark &`]:{display:`none`}},[`${t}-tooltip`]:{color:e.colorTextDescription,cursor:`help`,writingMode:`horizontal-tb`,marginInlineStart:e.marginXXS},"&::after":{content:`":"`,position:`relative`,marginBlock:0,marginInlineStart:e.marginXXS/2,marginInlineEnd:e.marginXS},[`&${t}-no-colon::after`]:{content:`" "`}}},[`${t}-control`]:{display:`flex`,flexDirection:`column`,flexGrow:1,[`&:first-child:not([class^="'${i}-col-'"]):not([class*="' ${i}-col-'"])`]:{width:`100%`},"&-input":{position:`relative`,display:`flex`,alignItems:`center`,minHeight:e.controlHeight,"&-content":{flex:`auto`,maxWidth:`100%`}}},[t]:{"&-explain, &-extra":{clear:`both`,color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},"&-explain-connected":{width:`100%`},"&-extra":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},"&-explain":{"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning}}},[`&-with-help ${t}-explain`]:{height:`auto`,opacity:1},[`${t}-feedback-icon`]:{fontSize:e.fontSize,textAlign:`center`,visibility:`visible`,animationName:ik,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:`none`,"&-success":{color:e.colorSuccess},"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning},"&-validating":{color:e.colorPrimary}}})}},TH=e=>{let{componentCls:t,formItemCls:n,rootPrefixCls:r}=e;return{[`${t}-horizontal`]:{[`${n}-label`]:{flexGrow:0},[`${n}-control`]:{flex:`1 1 0`,minWidth:0},[`${n}-label.${r}-col-24 + ${n}-control`]:{minWidth:`unset`}}}},EH=e=>{let{componentCls:t,formItemCls:n}=e;return{[`${t}-inline`]:{display:`flex`,flexWrap:`wrap`,[n]:{flex:`none`,flexWrap:`nowrap`,marginInlineEnd:e.margin,marginBottom:0,"&-with-help":{marginBottom:e.marginLG},[`> ${n}-label, + > ${n}-control`]:{display:`inline-block`,verticalAlign:`top`},[`> ${n}-label`]:{flex:`none`},[`${t}-text`]:{display:`inline-block`},[`${n}-has-feedback`]:{display:`inline-block`}}}}},DH=e=>({margin:0,padding:`0 0 ${e.paddingXS}px`,whiteSpace:`initial`,textAlign:`start`,"> label":{margin:0,"&::after":{display:`none`}}}),OH=e=>{let{componentCls:t,formItemCls:n}=e;return{[`${n} ${n}-label`]:DH(e),[t]:{[n]:{flexWrap:`wrap`,[`${n}-label, + ${n}-control`]:{flex:`0 0 100%`,maxWidth:`100%`}}}}},kH=e=>{let{componentCls:t,formItemCls:n,rootPrefixCls:r}=e;return{[`${t}-vertical`]:{[n]:{"&-row":{flexDirection:`column`},"&-label > label":{height:`auto`},[`${t}-item-control`]:{width:`100%`}}},[`${t}-vertical ${n}-label, + .${r}-col-24${n}-label, + .${r}-col-xl-24${n}-label`]:DH(e),[`@media (max-width: ${e.screenXSMax}px)`]:[OH(e),{[t]:{[`.${r}-col-xs-24${n}-label`]:DH(e)}}],[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{[`.${r}-col-sm-24${n}-label`]:DH(e)}},[`@media (max-width: ${e.screenMDMax}px)`]:{[t]:{[`.${r}-col-md-24${n}-label`]:DH(e)}},[`@media (max-width: ${e.screenLGMax}px)`]:{[t]:{[`.${r}-col-lg-24${n}-label`]:DH(e)}}}},AH=Fp(`Form`,(e,t)=>{let{rootPrefixCls:n}=t,r=Rp(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:n});return[CH(r),wH(r),bH(r),TH(r),EH(r),kH(r),vk(r),ik]}),jH=U({compatConfig:{MODE:3},name:`ErrorList`,inheritAttrs:!1,props:[`errors`,`help`,`onErrorVisibleChanged`,`helpStatus`,`warnings`],setup(e,t){let{attrs:n}=t,{prefixCls:r,status:i}=uH(),a=G(()=>`${r.value}-item-explain`),o=G(()=>!!(e.errors&&e.errors.length)),s=B(i.value),[,c]=AH(r);return H([o,i],()=>{o.value&&(s.value=i.value)}),()=>{let t=hM(`${r.value}-show-help-item`),i=rb(`${r.value}-show-help-item`,t);return i.role=`alert`,i.class=[c.value,a.value,n.class,`${r.value}-show-help`],W(Uo,h(h({},nb(`${r.value}-show-help`)),{},{onAfterEnter:()=>e.onErrorVisibleChanged(!0),onAfterLeave:()=>e.onErrorVisibleChanged(!1)}),{default:()=>[Qn(W(Vs,h(h({},i),{},{tag:`div`}),{default:()=>[e.errors?.map((e,t)=>W(`div`,{key:t,class:s.value?`${a.value}-${s.value}`:``},[e]))]}),[[ss,!!e.errors?.length]])]})}}}),MH=U({compatConfig:{MODE:3},slots:Object,inheritAttrs:!1,props:[`prefixCls`,`errors`,`hasFeedback`,`onDomErrorVisibleChange`,`wrapperCol`,`help`,`extra`,`status`,`marginBottom`,`onErrorVisibleChanged`],setup(e,t){let{slots:n}=t,r=sH(),{wrapperCol:i}=r,a=g({},r);return delete a.labelCol,delete a.wrapperCol,oH(a),lH({prefixCls:G(()=>e.prefixCls),status:G(()=>e.status)}),()=>{let{prefixCls:t,wrapperCol:r,marginBottom:a,onErrorVisibleChanged:o,help:s=n.help?.call(n),errors:c=rl(n.errors?.call(n)),extra:l=n.extra?.call(n)}=e,u=`${t}-item`,d=r||i?.value||{},f=K(`${u}-control`,d.class);return W(mH,h(h({},d),{},{class:f}),{default:()=>W(Ma,null,[W(`div`,{class:`${u}-control-input`},[W(`div`,{class:`${u}-control-input-content`},[n.default?.call(n)])]),a!==null||c.length?W(`div`,{style:{display:`flex`,flexWrap:`nowrap`}},[W(jH,{errors:c,help:s,class:`${u}-explain-connected`,onErrorVisibleChanged:o},null),!!a&&W(`div`,{style:{width:0,height:`${a}px`}},null)]):null,l?W(`div`,{class:`${u}-extra`},[l]):null])})}}});function NH(e){let t=V(e.value.slice()),n=null;return ar(()=>{clearTimeout(n),n=setTimeout(()=>{t.value=e.value},e.value.length?0:10)}),t}var PH={success:mA,warning:vA,error:qC,validating:FC};function FH(e,t,n){let r=e,i=t,a=0;try{for(let e=i.length;a({htmlFor:String,prefixCls:String,label:Q.any,help:Q.any,extra:Q.any,labelCol:{type:Object},wrapperCol:{type:Object},hasFeedback:{type:Boolean,default:!1},colon:{type:Boolean,default:void 0},labelAlign:String,prop:{type:[String,Number,Array]},name:{type:[String,Number,Array]},rules:[Array,Object],autoLink:{type:Boolean,default:!0},required:{type:Boolean,default:void 0},validateFirst:{type:Boolean,default:void 0},validateStatus:Q.oneOf(hl(``,`success`,`warning`,`error`,`validating`)),validateTrigger:{type:[String,Array]},messageVariables:{type:Object},hidden:Boolean,noStyle:Boolean,tooltip:String}),LH=0,RH=`form_item`,zH=U({compatConfig:{MODE:3},name:`AFormItem`,inheritAttrs:!1,__ANT_NEW_FORM_ITEM:!0,props:IH(),slots:Object,setup(e,t){let{slots:n,attrs:r,expose:i}=t;e.prop;let a=`form-item-${++LH}`,{prefixCls:o}=Z(`form`,e),[s,c]=AH(o),l=V(),u=sH(),d=G(()=>e.name||e.prop),f=V([]),p=V(!1),m=V(),_=G(()=>{let e=d.value;return VV(e)}),v=G(()=>{if(_.value.length){let e=u.name.value,t=_.value.join(`_`);return e?`${e}_${t}`:`${RH}_${t}`}}),y=()=>{let e=u.model.value;if(e&&d.value)return FH(e,_.value,!0).v},b=G(()=>y()),x=V(gD(b.value)),S=G(()=>{let t=e.validateTrigger===void 0?u.validateTrigger.value:e.validateTrigger;return t=t===void 0?`change`:t,LV(t)}),C=G(()=>{let t=u.rules.value,n=e.rules,r=e.required===void 0?[]:{required:!!e.required,trigger:S.value},i=FH(t,_.value);t=t?i.o[i.k]||i.v:[];let a=[].concat(n||t||[]);return $D(a,e=>e.required)?a:a.concat(r)}),w=G(()=>{let t=C.value,n=!1;return t&&t.length&&t.every(e=>!e.required||(n=!0,!1)),n||e.required}),T=V();ar(()=>{T.value=e.validateStatus});let E=G(()=>{let t={};return typeof e.label==`string`?t.label=e.label:e.name&&(t.label=String(e.name)),e.messageVariables&&(t=g(g({},t),e.messageVariables)),t}),D=t=>{if(_.value.length===0)return;let{validateFirst:n=!1}=e,{triggerName:r}=t||{},i=C.value;if(r&&(i=i.filter(e=>{let{trigger:t}=e;return!t&&!S.value.length||LV(t||S.value).includes(r)})),!i.length)return Promise.resolve();let a=nH(_.value,b.value,i,g({validateMessages:u.validateMessages.value},t),n,E.value);return T.value=`validating`,f.value=[],a.catch(e=>e).then(function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(T.value===`validating`){let t=e.filter(e=>e&&e.errors.length);T.value=t.length?`error`:`success`,f.value=t.map(e=>e.errors),u.onValidate(d.value,!f.value.length,f.value.length?rn(f.value[0]):null)}}),a},O=()=>{D({triggerName:`blur`})},k=()=>{p.value?p.value=!1:D({triggerName:`change`})},A=()=>{T.value=e.validateStatus,p.value=!1,f.value=[]},j=()=>{T.value=e.validateStatus,p.value=!0,f.value=[];let t=u.model.value||{},n=b.value,r=FH(t,_.value,!0);Array.isArray(n)?r.o[r.k]=[].concat(x.value??[]):r.o[r.k]=x.value,zn(()=>{p.value=!1})},M=G(()=>e.htmlFor===void 0?v.value:e.htmlFor),N=()=>{let e=M.value;if(!e||!m.value)return;let t=m.value.$el.querySelector(`[id="${e}"]`);t&&t.focus&&t.focus()};i({onFieldBlur:O,onFieldChange:k,clearValidate:A,resetField:j}),nw({id:v,onFieldBlur:()=>{e.autoLink&&O()},onFieldChange:()=>{e.autoLink&&k()},clearValidate:A},G(()=>!!(e.autoLink&&u.model.value&&d.value)));let P=!1;H(d,e=>{e?P||(P=!0,u.addField(a,{fieldValue:b,fieldId:v,fieldName:d,resetField:j,clearValidate:A,namePath:_,validateRules:D,rules:C})):(P=!1,u.removeField(a))},{immediate:!0}),ni(()=>{u.removeField(a)});let F=NH(f),I=G(()=>e.validateStatus===void 0?F.value.length?`error`:T.value:e.validateStatus),L=G(()=>({[`${o.value}-item`]:!0,[c.value]:!0,[`${o.value}-item-has-feedback`]:I.value&&e.hasFeedback,[`${o.value}-item-has-success`]:I.value===`success`,[`${o.value}-item-has-warning`]:I.value===`warning`,[`${o.value}-item-has-error`]:I.value===`error`,[`${o.value}-item-is-validating`]:I.value===`validating`,[`${o.value}-item-hidden`]:e.hidden})),R=Yt({});sw.useProvide(R),ar(()=>{let t;if(e.hasFeedback){let e=I.value&&PH[I.value];t=e?W(`span`,{class:K(`${o.value}-item-feedback-icon`,`${o.value}-item-feedback-icon-${I.value}`)},[W(e,null,null)]):null}g(R,{status:I.value,hasFeedback:e.hasFeedback,feedbackIcon:t,isFormItemInput:!0})});let ee=V(null),te=V(!1),ne=()=>{if(l.value){let e=getComputedStyle(l.value);ee.value=parseInt(e.marginBottom,10)}};$r(()=>{H(te,()=>{te.value&&ne()},{flush:`post`,immediate:!0})});let z=e=>{e||(ee.value=null)};return()=>{if(e.noStyle)return n.default?.call(n);let t=e.help??(n.help?rl(n.help()):null),i=!!(t!=null&&Array.isArray(t)&&t.length||F.value.length);return te.value=i,s(W(`div`,{class:[L.value,i?`${o.value}-item-with-help`:``,r.class],ref:l},[W(RB,h(h({},r),{},{class:`${o.value}-item-row`,key:`row`}),{default:()=>W(Ma,null,[W(yH,h(h({},e),{},{htmlFor:M.value,required:w.value,requiredMark:u.requiredMark.value,prefixCls:o.value,onClick:N,label:e.label}),{label:n.label,tooltip:n.tooltip}),W(MH,h(h({},e),{},{errors:t==null?F.value:LV(t),marginBottom:ee.value,prefixCls:o.value,status:I.value,ref:m,help:t,extra:e.extra??n.extra?.call(n),onErrorVisibleChanged:z}),{default:n.default})])}),!!ee.value&&W(`div`,{class:`${o.value}-margin-offset`,style:{marginBottom:`-${ee.value}px`}},null)]))}}});function BH(e){let t=!1,n=e.length,r=[];return e.length?new Promise((i,a)=>{e.forEach((e,o)=>{e.catch(e=>(t=!0,e)).then(e=>{--n,r[o]=e,!(n>0)&&(t&&a(r),i(r))})})}):Promise.resolve([])}function VH(e){let t=!1;return e&&e.length&&e.every(e=>!e.required||(t=!0,!1)),t}function HH(e){return e==null?[]:Array.isArray(e)?e:[e]}function UH(e,t,n){let r=e;t=t.replace(/\[(\w+)\]/g,`.$1`),t=t.replace(/^\./,``);let i=t.split(`.`),a=0;for(let e=i.length;a1&&arguments[1]!==void 0?arguments[1]:B({}),n=arguments.length>2?arguments[2]:void 0,r=gD(fn(e)),i=Yt({}),a=V([]),o=n=>{g(fn(e),g(g({},gD(r)),n)),zn(()=>{Object.keys(i).forEach(e=>{i[e]={autoLink:!1,required:VH(fn(t)[e])}})})},s=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return t.length?e.filter(e=>lne(HH(e.trigger||`change`),t).length):e},c=null,l=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,a=[],o={};for(let c=0;c({name:l,errors:[],warnings:[]})).catch(e=>{let t=[],n=[];return e.forEach(e=>{let{rule:{warningOnly:r},errors:i}=e;r?n.push(...i):t.push(...i)}),t.length?Promise.reject({name:l,errors:t,warnings:n}):{name:l,errors:t,warnings:n}}))}let l=BH(a);c=l;let d=l.then(()=>c===l?Promise.resolve(o):Promise.reject([])).catch(e=>{let t=e.filter(e=>e&&e.errors.length);return t.length?Promise.reject({values:o,errorFields:t,outOfDate:c!==l}):Promise.resolve(o)});return d.catch(e=>e),d},u=function(e,t,r){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},o=nH([e],t,r,g({validateMessages:ZV},a),!!a.validateFirst);return i[e]?(i[e].validateStatus=`validating`,o.catch(e=>e).then(function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];var r;if(i[e].validateStatus===`validating`){let a=t.filter(e=>e&&e.errors.length);i[e].validateStatus=a.length?`error`:`success`,i[e].help=a.length?a.map(e=>e.errors):null,(r=n?.onValidate)==null||r.call(n,e,!a.length,a.length?rn(i[e].help[0]):null)}}),o):o.catch(e=>e)},d=(e,t)=>{let n=[],r=!0;e?n=Array.isArray(e)?e:[e]:(r=!1,n=a.value);let i=l(n,t||{},r);return i.catch(e=>e),i},f=e=>{let t=[];t=e?Array.isArray(e)?e:[e]:a.value,t.forEach(e=>{i[e]&&g(i[e],{validateStatus:``,help:null})})},p=e=>{let t={autoLink:!1},n=[],r=Array.isArray(e)?e:[e];for(let e=0;e{let t=[];a.value.forEach(r=>{let i=UH(e,r,!1),a=UH(m,r,!1);(h&&n?.immediate&&i.isValid||!Xy(i.v,a.v))&&t.push(r)}),d(t,{trigger:`change`}),h=!1,m=gD(rn(e))},v=n?.debounce,y=!0;return H(t,()=>{a.value=t?Object.keys(fn(t)):[],!y&&n&&n.validateOnRuleChange&&d(),y=!1},{deep:!0,immediate:!0}),H(a,()=>{let e={};a.value.forEach(n=>{e[n]=g({},i[n],{autoLink:!1,required:VH(fn(t)[n])}),delete i[n]});for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&delete i[e];g(i,e)},{immediate:!0}),H(e,v&&v.wait?KD(_,v.wait,_O(v,[`wait`])):_,{immediate:n&&!!n.immediate,deep:!0}),{modelRef:e,rulesRef:t,initialModel:r,validateInfos:i,resetFields:o,validate:d,validateField:u,mergeValidateInfo:p,clearValidate:f}}var GH=()=>({layout:Q.oneOf(hl(`horizontal`,`inline`,`vertical`)),labelCol:q(),wrapperCol:q(),colon:J(),labelAlign:X(),labelWrap:J(),prefixCls:String,requiredMark:Sl([String,Boolean]),hideRequiredMark:J(),model:Q.object,rules:q(),validateMessages:q(),validateOnRuleChange:J(),scrollToFirstError:yl(),onSubmit:Y(),name:String,validateTrigger:Sl([String,Array]),size:X(),disabled:J(),onValuesChange:Y(),onFieldsChange:Y(),onFinish:Y(),onFinishFailed:Y(),onValidate:Y()});function KH(e,t){return Xy(LV(e),LV(t))}var qH=U({compatConfig:{MODE:3},name:`AForm`,inheritAttrs:!1,props:Bc(GH(),{layout:`horizontal`,hideRequiredMark:!1,colon:!0}),Item:zH,useForm:WH,setup(e,t){let{emit:n,slots:r,expose:i,attrs:a}=t,{prefixCls:o,direction:s,form:c,size:l,disabled:u}=Z(`form`,e),d=G(()=>e.requiredMark===``||e.requiredMark),f=G(()=>d.value===void 0?c&&c.value?.requiredMark!==void 0?c.value.requiredMark:!e.hideRequiredMark:d.value);om(l),Wl(u);let p=G(()=>e.colon??c.value?.colon),{validateMessages:m}=Il(),_=G(()=>g(g(g({},ZV),m.value),e.validateMessages)),[v,y]=AH(o),b=G(()=>K(o.value,{[`${o.value}-${e.layout}`]:!0,[`${o.value}-hide-required-mark`]:f.value===!1,[`${o.value}-rtl`]:s.value===`rtl`,[`${o.value}-${l.value}`]:l.value},y.value)),x=B(),S={},C=(e,t)=>{S[e]=t},w=e=>{delete S[e]},T=e=>{let t=!!e,n=t?LV(e).map(VV):[];return t?Object.values(S).filter(e=>n.findIndex(t=>KH(t,e.fieldName.value))>-1):Object.values(S)},E=t=>{e.model?T(t).forEach(e=>{e.resetField()}):Ru(!1,`Form`,`model is required for resetFields to work.`)},D=e=>{T(e).forEach(e=>{e.clearValidate()})},O=t=>{let{scrollToFirstError:r}=e;if(n(`finishFailed`,t),r&&t.errorFields.length){let e={};typeof r==`object`&&(e=r),A(t.errorFields[0].name,e)}},k=function(){return N(...arguments)},A=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=T(e?[e]:void 0);if(n.length){let e=n[0].fieldId.value,r=e?document.getElementById(e):null;r&&xm(r,g({scrollMode:`if-needed`,block:`nearest`},t))}},j=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(t===!0){let t=[];return Object.values(S).forEach(e=>{let{namePath:n}=e;t.push(n.value)}),JV(e.model,t)}return JV(e.model,t)},M=(t,n)=>{if(Ru(!(t instanceof Function),`Form`,`validateFields/validateField/validate not support callback, please use promise instead`),!e.model)return Ru(!1,`Form`,`model is required for validateFields to work.`),Promise.reject("Form `model` is required for validateFields to work.");let r=!!t,i=r?LV(t).map(VV):[],a=[];Object.values(S).forEach(e=>{if(r||i.push(e.namePath.value),!e.rules?.value.length)return;let t=e.namePath.value;if(!r||WV(i,t)){let r=e.validateRules(g({validateMessages:_.value},n));a.push(r.then(()=>({name:t,errors:[],warnings:[]})).catch(e=>{let n=[],r=[];return e.forEach(e=>{let{rule:{warningOnly:t},errors:i}=e;t?r.push(...i):n.push(...i)}),n.length?Promise.reject({name:t,errors:n,warnings:r}):{name:t,errors:n,warnings:r}}))}});let o=BH(a);x.value=o;let s=o.then(()=>x.value===o?Promise.resolve(j(i)):Promise.reject([])).catch(e=>{let t=e.filter(e=>e&&e.errors.length);return Promise.reject({values:j(i),errorFields:t,outOfDate:x.value!==o})});return s.catch(e=>e),s},N=function(){return M(...arguments)},P=t=>{t.preventDefault(),t.stopPropagation(),n(`submit`,t),e.model&&M().then(e=>{n(`finish`,e)}).catch(e=>{O(e)})};return i({resetFields:E,clearValidate:D,validateFields:M,getFieldsValue:j,validate:k,scrollToField:A}),oH({model:G(()=>e.model),name:G(()=>e.name),labelAlign:G(()=>e.labelAlign),labelCol:G(()=>e.labelCol),labelWrap:G(()=>e.labelWrap),wrapperCol:G(()=>e.wrapperCol),vertical:G(()=>e.layout===`vertical`),colon:p,requiredMark:f,validateTrigger:G(()=>e.validateTrigger),rules:G(()=>e.rules),addField:C,removeField:w,onValidate:(e,t,r)=>{n(`validate`,e,t,r)},validateMessages:_}),H(()=>e.rules,()=>{e.validateOnRuleChange&&M()}),()=>v(W(`form`,h(h({},a),{},{onSubmit:P,class:[b.value,a.class]}),[r.default?.call(r)]))}});qH.useInjectFormItemContext=aw,qH.ItemRest=ow,qH.install=function(e){return e.component(qH.name,qH),e.component(qH.Item.name,qH.Item),e.component(ow.name,ow),e};var JH=qH,YH=new ef(`antCheckboxEffect`,{"0%":{transform:`scale(1)`,opacity:.5},"100%":{transform:`scale(1.6)`,opacity:0}}),XH=e=>{let{checkboxCls:t}=e,n=`${t}-wrapper`;return[{[`${t}-group`]:g(g({},Op(e)),{display:`inline-flex`,flexWrap:`wrap`,columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[n]:g(g({},Op(e)),{display:`inline-flex`,alignItems:`baseline`,cursor:`pointer`,"&:after":{display:`inline-block`,width:0,overflow:`hidden`,content:`'\\a0'`},[`& + ${n}`]:{marginInlineStart:0},[`&${n}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:g(g({},Op(e)),{position:`relative`,whiteSpace:`nowrap`,lineHeight:1,cursor:`pointer`,alignSelf:`center`,[`${t}-input`]:{position:`absolute`,inset:0,zIndex:1,cursor:`pointer`,opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:g({},Np(e))},[`${t}-inner`]:{boxSizing:`border-box`,position:`relative`,top:0,insetInlineStart:0,display:`block`,width:e.checkboxSize,height:e.checkboxSize,direction:`ltr`,backgroundColor:e.colorBgContainer,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:`separate`,transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:`border-box`,position:`absolute`,top:`50%`,insetInlineStart:`21.5%`,display:`table`,width:e.checkboxSize/14*5,height:e.checkboxSize/14*8,border:`${e.lineWidthBold}px solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:`rotate(45deg) scale(0) translate(-50%,-50%)`,opacity:0,content:`""`,transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[t]:{"&-indeterminate":{[`${t}-inner`]:{"&:after":{top:`50%`,insetInlineStart:`50%`,width:e.fontSizeLG/2,height:e.fontSizeLG/2,backgroundColor:e.colorPrimary,border:0,transform:`translate(-50%, -50%) scale(1)`,opacity:1,content:`""`}}}}},{[`${n}:hover ${t}:after`]:{visibility:`visible`},[` + ${n}:not(${n}-disabled), + ${t}:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${n}:not(${n}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:`transparent`},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:`rotate(45deg) scale(1) translate(-50%,-50%)`,transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}},"&:after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderRadius:e.borderRadiusSM,visibility:`hidden`,border:`${e.lineWidthBold}px solid ${e.colorPrimary}`,animationName:YH,animationDuration:e.motionDurationSlow,animationTimingFunction:`ease-in-out`,animationFillMode:`backwards`,content:`""`,transition:`all ${e.motionDurationSlow}`}},[` + ${n}-checked:not(${n}-disabled), + ${t}-checked:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:`transparent`},[`&:hover ${t}:after`]:{borderColor:e.colorPrimaryHover}}},{[`${n}-disabled`]:{cursor:`not-allowed`},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:`not-allowed`,pointerEvents:`none`},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:`none`},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]};function ZH(e,t){return[XH(Rp(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))]}var QH=Fp(`Checkbox`,(e,t)=>{let{prefixCls:n}=t;return[ZH(n,e)]}),$H=e=>{let{prefixCls:t,componentCls:n,antCls:r}=e,i=`${n}-menu-item`,a=` + &${i}-expand ${i}-expand-icon, + ${i}-loading-icon + `,o=Math.round((e.controlHeight-e.fontSize*e.lineHeight)/2);return[{[n]:{width:e.controlWidth}},{[`${n}-dropdown`]:[ZH(`${t}-checkbox`,e),{[`&${r}-select-dropdown`]:{padding:0}},{[n]:{"&-checkbox":{top:0,marginInlineEnd:e.paddingXS},"&-menus":{display:`flex`,flexWrap:`nowrap`,alignItems:`flex-start`,[`&${n}-menu-empty`]:{[`${n}-menu`]:{width:`100%`,height:`auto`,[i]:{color:e.colorTextDisabled}}}},"&-menu":{flexGrow:1,minWidth:e.controlItemWidth,height:e.dropdownHeight,margin:0,padding:e.paddingXXS,overflow:`auto`,verticalAlign:`top`,listStyle:`none`,"-ms-overflow-style":`-ms-autohiding-scrollbar`,"&:not(:last-child)":{borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},"&-item":g(g({},Dp),{display:`flex`,flexWrap:`nowrap`,alignItems:`center`,padding:`${o}px ${e.paddingSM}px`,lineHeight:e.lineHeight,cursor:`pointer`,transition:`all ${e.motionDurationMid}`,borderRadius:e.borderRadiusSM,"&:hover":{background:e.controlItemBgHover},"&-disabled":{color:e.colorTextDisabled,cursor:`not-allowed`,"&:hover":{background:`transparent`},[a]:{color:e.colorTextDisabled}},[`&-active:not(${i}-disabled)`]:{"&, &:hover":{fontWeight:e.fontWeightStrong,backgroundColor:e.controlItemBgActive}},"&-content":{flex:`auto`},[a]:{marginInlineStart:e.paddingXXS,color:e.colorTextDescription,fontSize:e.fontSizeIcon},"&-keyword":{color:e.colorHighlight}})}}}]},{[`${n}-dropdown-rtl`]:{direction:`rtl`}},kk(e)]},eU=Fp(`Cascader`,e=>[$H(e)],{controlWidth:184,controlItemWidth:111,dropdownHeight:180}),tU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ir===0?[n]:[...e,t,n],[]),i=[],a=0;return r.forEach((t,r)=>{let o=a+t.length,s=e.slice(a,o);a=o,r%2==1&&(s=W(`span`,{class:`${n}-menu-item-keyword`,key:`seperator`},[s])),i.push(s)}),i}var rU=e=>{let{inputValue:t,path:n,prefixCls:r,fieldNames:i}=e,a=[],o=t.toLowerCase();return n.forEach((e,t)=>{t!==0&&a.push(` / `);let n=e[i.label],s=typeof n;(s===`string`||s===`number`)&&(n=nU(String(n),o,r)),a.push(n)}),a};function iU(){return g(g({},sm(pB(),[`customSlots`,`checkable`,`options`])),{multiple:{type:Boolean,default:void 0},size:String,bordered:{type:Boolean,default:void 0},placement:{type:String},suffixIcon:Q.any,status:String,options:Array,popupClassName:String,dropdownClassName:String,"onUpdate:value":Function})}var aU=U({compatConfig:{MODE:3},name:`ACascader`,inheritAttrs:!1,props:Bc(iU(),{bordered:!0,choiceTransitionName:``,allowClear:!0}),setup(e,t){let{attrs:n,expose:r,slots:i,emit:a}=t,o=aw(),s=sw.useInject(),c=G(()=>uw(s.status,e.status)),{prefixCls:l,rootPrefixCls:u,getPrefixCls:d,direction:f,getPopupContainer:p,renderEmpty:m,size:_,disabled:v}=Z(`cascader`,e),y=G(()=>d(`select`,e.prefixCls)),{compactSize:b,compactItemClassnames:x}=kO(y,f),S=G(()=>b.value||_.value),C=Ul(),w=G(()=>v.value??C.value),[T,E]=Fk(y),[D]=eU(l),O=G(()=>f.value===`rtl`),k=G(()=>{if(!e.showSearch)return e.showSearch;let t={render:rU};return typeof e.showSearch==`object`&&(t=g(g({},t),e.showSearch)),t}),A=G(()=>K(e.popupClassName||e.dropdownClassName,`${l.value}-dropdown`,{[`${l.value}-dropdown-rtl`]:O.value},E.value)),j=B();r({focus(){var e;(e=j.value)==null||e.focus()},blur(){var e;(e=j.value)==null||e.blur()}});let M=function(){var e=[...arguments];a(`update:value`,e[0]),a(`change`,...e),o.onFieldChange()},N=function(){a(`blur`,...arguments),o.onFieldBlur()},P=G(()=>e.showArrow===void 0?e.loading||!e.multiple:e.showArrow),F=G(()=>e.placement===void 0?f.value===`rtl`?`bottomRight`:`bottomLeft`:e.placement);return()=>{let{notFoundContent:t=i.notFoundContent?.call(i),expandIcon:r=i.expandIcon?.call(i),multiple:a,bordered:d,allowClear:_,choiceTransitionName:v,transitionName:b,id:C=o.id.value}=e,I=tU(e,[`notFoundContent`,`expandIcon`,`multiple`,`bordered`,`allowClear`,`choiceTransitionName`,`transitionName`,`id`]),L=t||m(`Cascader`),R=r;r||(R=O.value?W(bB,null,null):W(Ij,null,null));let ee=W(`span`,{class:`${y.value}-menu-item-loading-icon`},[W(FC,{spin:!0},null)]),{suffixIcon:te,removeIcon:ne,clearIcon:z}=QC(g(g({},e),{hasFeedback:s.hasFeedback,feedbackIcon:s.feedbackIcon,multiple:a,prefixCls:y.value,showArrow:P.value}),i);return D(T(W(gB,h(h(h({},I),n),{},{id:C,prefixCls:y.value,class:[l.value,{[`${y.value}-lg`]:S.value===`large`,[`${y.value}-sm`]:S.value===`small`,[`${y.value}-rtl`]:O.value,[`${y.value}-borderless`]:!d,[`${y.value}-in-form-item`]:s.isFormItemInput},lw(y.value,c.value,s.hasFeedback),x.value,n.class,E.value],disabled:w.value,direction:f.value,placement:F.value,notFoundContent:L,allowClear:_,showSearch:k.value,expandIcon:R,inputIcon:te,removeIcon:ne,clearIcon:z,loadingIcon:ee,checkable:!!a,dropdownClassName:A.value,dropdownPrefixCls:l.value,choiceTransitionName:ib(u.value,``,v),transitionName:ib(u.value,tb(F.value),b),getPopupContainer:p?.value,customSlots:g(g({},i),{checkable:()=>W(`span`,{class:`${l.value}-checkbox-inner`},null)}),tagRender:e.tagRender||i.tagRender,displayRender:e.displayRender||i.displayRender,maxTagPlaceholder:e.maxTagPlaceholder||i.maxTagPlaceholder,showArrow:s.hasFeedback||e.showArrow,onChange:M,onBlur:N,ref:j}),i)))}}}),oU=_l(g(aU,{SHOW_CHILD:QR,SHOW_PARENT:ZR})),sU=()=>({name:String,prefixCls:String,options:xl([]),disabled:Boolean,id:String}),cU=()=>g(g({},sU()),{defaultValue:xl(),value:xl(),onChange:Y(),"onUpdate:value":Y()}),lU=()=>({prefixCls:String,defaultChecked:J(),checked:J(),disabled:J(),isGroup:J(),value:Q.any,name:String,id:String,indeterminate:J(),type:X(`checkbox`),autofocus:J(),onChange:Y(),"onUpdate:checked":Y(),onClick:Y(),skipGroup:J(!1)}),uU=()=>g(g({},lU()),{indeterminate:J(!1)}),dU=Symbol(`CheckboxGroupContext`),fU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);im?.disabled.value||u.value);ar(()=>{!e.skipGroup&&m&&m.registerValue(_,e.value)}),ni(()=>{m&&m.cancelValue(_)}),$r(()=>{Ru(!!(e.checked!==void 0||m||e.value===void 0),`Checkbox`,"`value` is not validate prop, do you mean `checked`?")});let y=e=>{let t=e.target.checked;n(`update:checked`,t),n(`change`,e),o.onFieldChange()},b=B();return a({focus:()=>{var e;(e=b.value)==null||e.focus()},blur:()=>{var e;(e=b.value)==null||e.blur()}}),()=>{let t=Gc(i.default?.call(i)),{indeterminate:a,skipGroup:u,id:_=o.id.value}=e,x=fU(e,[`indeterminate`,`skipGroup`,`id`]),{onMouseenter:S,onMouseleave:C,onInput:w,class:T,style:E}=r,D=fU(r,[`onMouseenter`,`onMouseleave`,`onInput`,`class`,`style`]),O=g(g(g(g({},x),{id:_,prefixCls:c.value}),D),{disabled:v.value});m&&!u?(O.onChange=function(){n(`change`,...arguments),m.toggleOption({label:t,value:e.value})},O.name=m.name.value,O.checked=m.mergedValue.value.includes(e.value),O.disabled=v.value||d.value,O.indeterminate=a):O.onChange=y;let k=K({[`${c.value}-wrapper`]:!0,[`${c.value}-rtl`]:l.value===`rtl`,[`${c.value}-wrapper-checked`]:O.checked,[`${c.value}-wrapper-disabled`]:O.disabled,[`${c.value}-wrapper-in-form-item`]:s.isFormItemInput},T,p.value),A=K({[`${c.value}-indeterminate`]:a},p.value);return f(W(`label`,{class:k,style:E,onMouseenter:S,onMouseleave:C},[W(tF,h(h({"aria-checked":a?`mixed`:void 0},O),{},{class:A,ref:b}),null),t.length?W(`span`,null,[t]):null]))}}}),mU=U({compatConfig:{MODE:3},name:`ACheckboxGroup`,inheritAttrs:!1,props:cU(),setup(e,t){let{slots:n,attrs:r,emit:i,expose:a}=t,o=aw(),{prefixCls:s,direction:c}=Z(`checkbox`,e),l=G(()=>`${s.value}-group`),[u,d]=QH(l),f=B((e.value===void 0?e.defaultValue:e.value)||[]);H(()=>e.value,()=>{f.value=e.value||[]});let p=G(()=>e.options.map(e=>typeof e==`string`||typeof e==`number`?{label:e,value:e}:e)),m=B(Symbol()),g=B(new Map),_=e=>{g.value.delete(e),m.value=Symbol()},v=(e,t)=>{g.value.set(e,t),m.value=Symbol()},y=B(new Map);return H(m,()=>{let e=new Map;for(let t of g.value.values())e.set(t,!0);y.value=e}),er(dU,{cancelValue:_,registerValue:v,toggleOption:t=>{let n=f.value.indexOf(t.value),r=[...f.value];n===-1?r.push(t.value):r.splice(n,1),e.value===void 0&&(f.value=r);let a=r.filter(e=>y.value.has(e)).sort((e,t)=>p.value.findIndex(t=>t.value===e)-p.value.findIndex(e=>e.value===t));i(`update:value`,a),i(`change`,a),o.onFieldChange()},mergedValue:f,name:G(()=>e.name),disabled:G(()=>e.disabled)}),a({mergedValue:f}),()=>{let{id:t=o.id.value}=e,i=null;return p.value&&p.value.length>0&&(i=p.value.map(t=>W(pU,{prefixCls:s.value,key:t.value.toString(),disabled:`disabled`in t?t.disabled:e.disabled,indeterminate:t.indeterminate,value:t.value,checked:f.value.indexOf(t.value)!==-1,onChange:t.onChange,class:`${l.value}-item`},{default:()=>[n.label===void 0?t.label:n.label?.call(n,t)]}))),u(W(`div`,h(h({},r),{},{class:[l.value,{[`${l.value}-rtl`]:c.value===`rtl`},r.class,d.value],id:t}),[i||n.default?.call(n)]))}}});pU.Group=mU,pU.install=function(e){return e.component(pU.name,pU),e.component(mU.name,mU),e};var hU=pU,gU={useBreakpoint:EA},_U=_l(mH),vU=e=>{let{componentCls:t,commentBg:n,commentPaddingBase:r,commentNestIndent:i,commentFontSizeBase:a,commentFontSizeSm:o,commentAuthorNameColor:s,commentAuthorTimeColor:c,commentActionColor:l,commentActionHoverColor:u,commentActionsMarginBottom:d,commentActionsMarginTop:f,commentContentDetailPMarginBottom:p}=e;return{[t]:{position:`relative`,backgroundColor:n,[`${t}-inner`]:{display:`flex`,padding:r},[`${t}-avatar`]:{position:`relative`,flexShrink:0,marginRight:e.marginSM,cursor:`pointer`,img:{width:`32px`,height:`32px`,borderRadius:`50%`}},[`${t}-content`]:{position:`relative`,flex:`1 1 auto`,minWidth:`1px`,fontSize:a,wordWrap:`break-word`,"&-author":{display:`flex`,flexWrap:`wrap`,justifyContent:`flex-start`,marginBottom:e.marginXXS,fontSize:a,"& > a,& > span":{paddingRight:e.paddingXS,fontSize:o,lineHeight:`18px`},"&-name":{color:s,fontSize:a,transition:`color ${e.motionDurationSlow}`,"> *":{color:s,"&:hover":{color:s}}},"&-time":{color:c,whiteSpace:`nowrap`,cursor:`auto`}},"&-detail p":{marginBottom:p,whiteSpace:`pre-wrap`}},[`${t}-actions`]:{marginTop:f,marginBottom:d,paddingLeft:0,"> li":{display:`inline-block`,color:l,"> span":{marginRight:`10px`,color:l,fontSize:o,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,userSelect:`none`,"&:hover":{color:u}}}},[`${t}-nested`]:{marginLeft:i},"&-rtl":{direction:`rtl`}}}},yU=Fp(`Comment`,e=>[vU(Rp(e,{commentBg:`inherit`,commentPaddingBase:`${e.paddingMD}px 0`,commentNestIndent:`44px`,commentFontSizeBase:e.fontSize,commentFontSizeSm:e.fontSizeSM,commentAuthorNameColor:e.colorTextTertiary,commentAuthorTimeColor:e.colorTextPlaceholder,commentActionColor:e.colorTextTertiary,commentActionHoverColor:e.colorTextSecondary,commentActionsMarginBottom:`inherit`,commentActionsMarginTop:e.marginSM,commentContentDetailPMarginBottom:`inherit`}))]),bU=_l(U({compatConfig:{MODE:3},name:`AComment`,inheritAttrs:!1,props:{actions:Array,author:Q.any,avatar:Q.any,content:Q.any,prefixCls:String,datetime:Q.any},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`comment`,e),[o,s]=yU(i),c=(e,t)=>W(`div`,{class:`${e}-nested`},[t]),l=e=>!e||!e.length?null:e.map((e,t)=>W(`li`,{key:`action-${t}`},[e]));return()=>{let t=i.value,u=e.actions??n.actions?.call(n),d=e.author??n.author?.call(n),f=e.avatar??n.avatar?.call(n),p=e.content??n.content?.call(n),m=e.datetime??n.datetime?.call(n),g=W(`div`,{class:`${t}-avatar`},[typeof f==`string`?W(`img`,{src:f,alt:`comment-avatar`},null):f]),_=u?W(`ul`,{class:`${t}-actions`},[l(Array.isArray(u)?u:[u])]):null,v=W(`div`,{class:`${t}-content-author`},[d&&W(`span`,{class:`${t}-content-author-name`},[d]),m&&W(`span`,{class:`${t}-content-author-time`},[m])]),y=W(`div`,{class:`${t}-content`},[v,W(`div`,{class:`${t}-content-detail`},[p]),_]),b=W(`div`,{class:`${t}-inner`},[g,y]),x=Gc(n.default?.call(n));return o(W(`div`,h(h({},r),{},{class:[t,{[`${t}-rtl`]:a.value===`rtl`},r.class,s.value]}),[b,x&&x.length?c(t,x):null]))}}})),xU=g({},Zl.Modal);function SU(e){xU=e?g(g({},xU),e):g({},Zl.Modal)}function CU(){return xU}var wU=`internalMark`,TU=U({compatConfig:{MODE:3},name:`ALocaleProvider`,props:{locale:{type:Object},ANT_MARK__:String},setup(e,t){let{slots:n}=t;Ru(e.ANT_MARK__===wU,`LocaleProvider`,"`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead");let r=Yt({antLocale:g(g({},e.locale),{exist:!0}),ANT_MARK__:wU});return er(`localeData`,r),H(()=>e.locale,e=>{SU(e&&e.Modal),r.antLocale=g(g({},e),{exist:!0})},{immediate:!0}),()=>n.default?.call(n)}});TU.install=function(e){return e.component(TU.name,TU),e};var EU=_l(TU),DU=U({name:`Notice`,inheritAttrs:!1,props:[`prefixCls`,`duration`,`updateMark`,`noticeKey`,`closeIcon`,`closable`,`props`,`onClick`,`onClose`,`holder`,`visible`],setup(e,t){let{attrs:n,slots:r}=t,i,a=!1,o=G(()=>e.duration===void 0?4.5:e.duration),s=()=>{o.value&&!a&&(i=setTimeout(()=>{l()},o.value*1e3))},c=()=>{i&&=(clearTimeout(i),null)},l=t=>{t&&t.stopPropagation(),c();let{onClose:n,noticeKey:r}=e;n&&n(r)},u=()=>{c(),s()};return $r(()=>{s()}),ri(()=>{a=!0,c()}),H([o,()=>e.updateMark,()=>e.visible],(e,t)=>{let[n,r,i]=e,[a,o,s]=t;(n!==a||r!==o||i!==s&&s)&&u()},{flush:`post`}),()=>{let{prefixCls:t,closable:i,closeIcon:a=r.closeIcon?.call(r),onClick:o,holder:u}=e,{class:d,style:f}=n,p=`${t}-notice`,m=Object.keys(n).reduce((e,t)=>((t.startsWith(`data-`)||t.startsWith(`aria-`)||t===`role`)&&(e[t]=n[t]),e),{}),g=W(`div`,h({class:K(p,d,{[`${p}-closable`]:i}),style:f,onMouseenter:c,onMouseleave:s,onClick:o},m),[W(`div`,{class:`${p}-content`},[r.default?.call(r)]),i?W(`a`,{tabindex:0,onClick:l,class:`${p}-close`},[a||W(`span`,{class:`${p}-close-x`},null)]):null]);return u?W(xr,{to:u},{default:()=>g}):g}}}),OU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{prefixCls:t,animation:n=`fade`}=e,r=e.transitionName;return!r&&n&&(r=`${t}-${n}`),rb(r)}),c=(t,n)=>{let r=t.key||jU(),i=g(g({},t),{key:r}),{maxCount:a}=e,s=o.value.map(e=>e.notice.key).indexOf(r),c=o.value.concat();s===-1?(a&&o.value.length>=a&&(i.key=c[0].notice.key,i.updateMark=jU(),i.userPassKey=r,c.shift()),c.push({notice:i,holderCallback:n})):c.splice(s,1,{notice:i,holderCallback:n}),o.value=c},l=e=>{o.value=rn(o.value).filter(t=>{let{notice:{key:n,userPassKey:r}}=t;return(r||n)!==e})};return r({add:c,remove:l,notices:o}),()=>{let{prefixCls:t,closeIcon:r=i.closeIcon?.call(i,{prefixCls:t})}=e,c=o.value.map((n,i)=>{let{notice:s,holderCallback:c}=n,u=i===o.value.length-1?s.updateMark:void 0,{key:d,userPassKey:f}=s,{content:p}=s,m=g(g(g({prefixCls:t,closeIcon:typeof r==`function`?r({prefixCls:t}):r},s),s.props),{key:d,noticeKey:f||d,updateMark:u,onClose:e=>{var t;l(e),(t=s.onClose)==null||t.call(s)},onClick:s.onClick});return c?W(`div`,{key:d,class:`${t}-hook-holder`,ref:e=>{d!==void 0&&(e?(a.set(d,e),c(e,m)):a.delete(d))}},null):W(DU,h(h({},m),{},{class:K(m.class,e.hashId)}),{default:()=>[typeof p==`function`?p({prefixCls:t}):p]})});return W(`div`,{class:{[t]:1,[n.class]:!!n.class,[e.hashId]:!0},style:n.style||{top:`65px`,left:`50%`}},[W(Vs,h({tag:`div`},s.value),{default:()=>[c]})])}}});MU.newInstance=function(e,t){let n=e||{},{name:r=`notification`,getContainer:i,appContext:a,prefixCls:o,rootPrefixCls:s,transitionName:c,hasTransitionName:l,useStyle:u}=n,d=OU(n,[`name`,`getContainer`,`appContext`,`prefixCls`,`rootPrefixCls`,`transitionName`,`hasTransitionName`,`useStyle`]),f=document.createElement(`div`);i?i().appendChild(f):document.body.appendChild(f);let p=W(U({compatConfig:{MODE:3},name:`NotificationWrapper`,setup(e,n){let{attrs:i}=n,a=V(),d=G(()=>rG.getPrefixCls(r,o)),[,p]=u(d);return $r(()=>{t({notice(e){var t;(t=a.value)==null||t.add(e)},removeNotice(e){var t;(t=a.value)==null||t.remove(e)},destroy(){nc(null,f),f.parentNode&&f.parentNode.removeChild(f)},component:a})}),()=>{let e=rG,t=e.getRootPrefixCls(s,d.value),n=l?c:`${d.value}-${c}`;return W(sG,h(h({},e),{},{prefixCls:t}),{default:()=>[W(MU,h(h({ref:a},i),{},{prefixCls:d.value,transitionName:n,hashId:p.value}),null)]})}}}),d);p.appContext=a||p.appContext,nc(p,f)};var NU=0,PU=Date.now();function FU(){let e=NU;return NU+=1,`rcNotification_${PU}_${e}`}var IU=U({name:`HookNotification`,inheritAttrs:!1,props:[`prefixCls`,`transitionName`,`animation`,`maxCount`,`closeIcon`,`hashId`,`remove`,`notices`,`getStyles`,`getClassName`,`onAllRemoved`,`getContainer`],setup(e,t){let{attrs:n,slots:r}=t,i=new Map,a=G(()=>e.notices),o=G(()=>{let t=e.transitionName;if(!t&&e.animation)switch(typeof e.animation){case`string`:t=e.animation;break;case`function`:t=e.animation().name;break;case`object`:t=e.animation.name;break;default:t=`${e.prefixCls}-fade`}return rb(t)}),s=t=>e.remove(t),c=B({});H(a,()=>{let t={};Object.keys(c.value).forEach(e=>{t[e]=[]}),e.notices.forEach(e=>{let{placement:n=`topRight`}=e.notice;n&&(t[n]=t[n]||[],t[n].push(e))}),c.value=t});let l=G(()=>Object.keys(c.value));return()=>{let{prefixCls:t,closeIcon:u=r.closeIcon?.call(r,{prefixCls:t})}=e,d=l.value.map(r=>{let l=c.value[r],d=e.getClassName?.call(e,r),f=e.getStyles?.call(e,r),p=l.map((n,r)=>{let{notice:o,holderCallback:c}=n,l=r===a.value.length-1?o.updateMark:void 0,{key:d,userPassKey:f}=o,{content:p}=o,m=g(g(g({prefixCls:t,closeIcon:typeof u==`function`?u({prefixCls:t}):u},o),o.props),{key:d,noticeKey:f||d,updateMark:l,onClose:e=>{var t;s(e),(t=o.onClose)==null||t.call(o)},onClick:o.onClick});return c?W(`div`,{key:d,class:`${t}-hook-holder`,ref:e=>{d!==void 0&&(e?(i.set(d,e),c(e,m)):i.delete(d))}},null):W(DU,h(h({},m),{},{class:K(m.class,e.hashId)}),{default:()=>[typeof p==`function`?p({prefixCls:t}):p]})}),m={[t]:1,[`${t}-${r}`]:1,[n.class]:!!n.class,[e.hashId]:!0,[d]:!!d};function _(){var t;l.length>0||(Reflect.deleteProperty(c.value,r),(t=e.onAllRemoved)==null||t.call(e))}return W(`div`,{key:r,class:m,style:n.style||f||{top:`65px`,left:`50%`}},[W(Vs,h(h({tag:`div`},o.value),{},{onAfterLeave:_}),{default:()=>[p]})])});return W(mb,{getContainer:e.getContainer},{default:()=>[d]})}}}),LU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);idocument.body,zU=0;function BU(){let e={};return[...arguments].forEach(t=>{t&&Object.keys(t).forEach(n=>{let r=t[n];r!==void 0&&(e[n]=r)})}),e}function VU(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{getContainer:t=RU,motion:n,prefixCls:r,maxCount:i,getClassName:a,getStyles:o,onAllRemoved:s}=e,c=LU(e,[`getContainer`,`motion`,`prefixCls`,`maxCount`,`getClassName`,`getStyles`,`onAllRemoved`]),l=V([]),u=V(),d=(e,t)=>{let n=e.key||FU(),r=g(g({},e),{key:n}),a=l.value.map(e=>e.notice.key).indexOf(n),o=l.value.concat();a===-1?(i&&l.value.length>=i&&(r.key=o[0].notice.key,r.updateMark=FU(),r.userPassKey=n,o.shift()),o.push({notice:r,holderCallback:t})):o.splice(a,1,{notice:r,holderCallback:t}),l.value=o},f=e=>{l.value=l.value.filter(t=>{let{notice:{key:n,userPassKey:r}}=t;return(r||n)!==e})},p=()=>{l.value=[]},m=()=>W(IU,{ref:u,prefixCls:r,maxCount:i,notices:l.value,remove:f,getClassName:a,getStyles:o,animation:n,hashId:e.hashId,onAllRemoved:s,getContainer:t},null),h=V([]);return H(h,()=>{h.value.length&&(h.value.forEach(e=>{switch(e.type){case`open`:d(e.config);break;case`close`:f(e.key);break;case`destroy`:p()}}),h.value=[])}),[{open:e=>{let t=BU(c,e);(t.key===null||t.key===void 0)&&(t.key=`vc-notification-${zU}`,zU+=1),h.value=[...h.value,{type:`open`,config:t}]},close:e=>{h.value=[...h.value,{type:`close`,key:e}]},destroy:()=>{h.value=[...h.value,{type:`destroy`}]}},m]}var HU=MU,UU=e=>{let{componentCls:t,iconCls:n,boxShadowSecondary:r,colorBgElevated:i,colorSuccess:a,colorError:o,colorWarning:s,colorInfo:c,fontSizeLG:l,motionEaseInOutCirc:u,motionDurationSlow:d,marginXS:f,paddingXS:p,borderRadiusLG:m,zIndexPopup:h,messageNoticeContentPadding:_}=e,v=new ef(`MessageMoveIn`,{"0%":{padding:0,transform:`translateY(-100%)`,opacity:0},"100%":{padding:p,transform:`translateY(0)`,opacity:1}}),y=new ef(`MessageMoveOut`,{"0%":{maxHeight:e.height,padding:p,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}});return[{[t]:g(g({},Op(e)),{position:`fixed`,top:f,left:`50%`,transform:`translateX(-50%)`,width:`100%`,pointerEvents:`none`,zIndex:h,[`${t}-move-up`]:{animationFillMode:`forwards`},[` + ${t}-move-up-appear, + ${t}-move-up-enter + `]:{animationName:v,animationDuration:d,animationPlayState:`paused`,animationTimingFunction:u},[` + ${t}-move-up-appear${t}-move-up-appear-active, + ${t}-move-up-enter${t}-move-up-enter-active + `]:{animationPlayState:`running`},[`${t}-move-up-leave`]:{animationName:y,animationDuration:d,animationPlayState:`paused`,animationTimingFunction:u},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:`running`},"&-rtl":{direction:`rtl`,span:{direction:`rtl`}}})},{[`${t}-notice`]:{padding:p,textAlign:`center`,[n]:{verticalAlign:`text-bottom`,marginInlineEnd:f,fontSize:l},[`${t}-notice-content`]:{display:`inline-block`,padding:_,background:i,borderRadius:m,boxShadow:r,pointerEvents:`all`},[`${t}-success ${n}`]:{color:a},[`${t}-error ${n}`]:{color:o},[`${t}-warning ${n}`]:{color:s},[` + ${t}-info ${n}, + ${t}-loading ${n}`]:{color:c}}},{[`${t}-notice-pure-panel`]:{padding:0,textAlign:`start`}}]},WU=Fp(`Message`,e=>[UU(Rp(e,{messageNoticeContentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`}))],e=>({height:150,zIndexPopup:e.zIndexPopupBase+10})),GU={info:W(SA,null,null),success:W(mA,null,null),error:W(qC,null,null),warning:W(vA,null,null),loading:W(FC,null,null)},KU=U({name:`PureContent`,inheritAttrs:!1,props:[`prefixCls`,`type`,`icon`],setup(e,t){let{slots:n}=t;return()=>W(`div`,{class:K(`${e.prefixCls}-custom-content`,`${e.prefixCls}-${e.type}`)},[e.icon||GU[e.type],W(`span`,null,[n.default?.call(n)])])}}),qU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ir(`message`,e.prefixCls)),[,o]=WU(a),s=()=>{let t=e.top??JU;return{left:`50%`,transform:`translateX(-50%)`,top:typeof t==`number`?`${t}px`:t}},c=()=>K(o.value,e.rtl?`${a.value}-rtl`:``),l=()=>Hh({prefixCls:a.value,animation:e.animation??`move-up`,transitionName:e.transitionName}),u=W(`span`,{class:`${a.value}-close-x`},[W(UC,{class:`${a.value}-close-icon`},null)]),[d,f]=VU({getStyles:s,prefixCls:a.value,getClassName:c,motion:l,closable:!1,closeIcon:u,duration:e.duration??YU,getContainer:e.staticGetContainer??i.value,maxCount:e.maxCount,onAllRemoved:e.onAllRemoved});return n(g(g({},d),{prefixCls:a,hashId:o})),f}}),ZU=0;function QU(e){let t=V(null),n=Symbol(`messageHolderKey`),r=e=>{var n;(n=t.value)==null||n.close(e)},i=e=>{if(!t.value){let e=()=>{};return e.then=()=>{},e}let{open:n,prefixCls:i,hashId:a}=t.value,o=`${i}-notice`,{content:s,icon:c,type:l,key:u,class:d,onClose:f}=e,p=qU(e,[`content`,`icon`,`type`,`key`,`class`,`onClose`]),m=u;return m??=(ZU+=1,`antd-message-${ZU}`),Eee(e=>(n(g(g({},p),{key:m,content:()=>W(KU,{prefixCls:i,type:l,icon:typeof c==`function`?c():c},{default:()=>[typeof s==`function`?s():s]}),placement:`top`,class:K(l&&`${o}-${l}`,a,d),onClose:()=>{f?.(),e()}})),()=>{r(m)}))},a={open:i,destroy:e=>{var n;e===void 0?(n=t.value)==null||n.destroy():r(e)}};return[`info`,`success`,`warning`,`error`,`loading`].forEach(e=>{a[e]=(t,n,r)=>{let a;a=t&&typeof t==`object`&&`content`in t?t:{content:t};let o,s;typeof n==`function`?s=n:(o=n,s=r);let c=g(g({onClose:s,duration:o},a),{type:e});return i(c)}}),[a,()=>W(XU,h(h({key:n},e),{},{ref:t}),null)]}function $U(e){return QU(e)}var eW=3,tW,nW,rW=1,iW=``,aW=`move-up`,oW=!1,sW=()=>document.body,cW,lW=!1;function uW(){return rW++}function dW(e){e.top!==void 0&&(tW=e.top,nW=null),e.duration!==void 0&&(eW=e.duration),e.prefixCls!==void 0&&(iW=e.prefixCls),e.getContainer!==void 0&&(sW=e.getContainer,nW=null),e.transitionName!==void 0&&(aW=e.transitionName,nW=null,oW=!0),e.maxCount!==void 0&&(cW=e.maxCount,nW=null),e.rtl!==void 0&&(lW=e.rtl)}function fW(e,t){nW?t(nW):HU.newInstance({appContext:e.appContext,prefixCls:e.prefixCls||iW,rootPrefixCls:e.rootPrefixCls,transitionName:aW,hasTransitionName:oW,style:{top:tW},getContainer:sW||e.getPopupContainer,maxCount:cW,name:`message`,useStyle:WU},e=>{nW?t(nW):(nW=e,t(e))})}var pW={info:SA,success:mA,error:qC,warning:vA,loading:FC},mW=Object.keys(pW);function hW(e){let t=e.duration===void 0?eW:e.duration,n=e.key||uW(),r=new Promise(r=>{let i=()=>(typeof e.onClose==`function`&&e.onClose(),r(!0));fW(e,r=>{r.notice({key:n,duration:t,style:e.style||{},class:e.class,content:t=>{let{prefixCls:n}=t,r=pW[e.type],i=r?W(r,null,null):``;return W(`div`,{class:K(`${n}-custom-content`,{[`${n}-${e.type}`]:e.type,[`${n}-rtl`]:lW===!0})},[typeof e.icon==`function`?e.icon():e.icon||i,W(`span`,null,[typeof e.content==`function`?e.content():e.content])])},onClose:i,onClick:e.onClick})})}),i=()=>{nW&&nW.removeNotice(n)};return i.then=(e,t)=>r.then(e,t),i.promise=r,i}function gW(e){return Object.prototype.toString.call(e)===`[object Object]`&&!!e.content}var _W={open:hW,config:dW,destroy(e){if(nW){if(e){let{removeNotice:t}=nW;t(e)}else{let{destroy:e}=nW;e(),nW=null}}}};function vW(e,t){e[t]=(n,r,i)=>gW(n)?e.open(g(g({},n),{type:t})):(typeof r==`function`&&(i=r,r=void 0),e.open({content:n,duration:r,type:t,onClose:i}))}mW.forEach(e=>vW(_W,e)),_W.warn=_W.warning,_W.useMessage=$U;var yW=e=>{let{componentCls:t,width:n,notificationMarginEdge:r}=e,i=new ef(`antNotificationTopFadeIn`,{"0%":{marginTop:`-100%`,opacity:0},"100%":{marginTop:0,opacity:1}}),a=new ef(`antNotificationBottomFadeIn`,{"0%":{marginBottom:`-100%`,opacity:0},"100%":{marginBottom:0,opacity:1}}),o=new ef(`antNotificationLeftFadeIn`,{"0%":{right:{_skip_check_:!0,value:n},opacity:0},"100%":{right:{_skip_check_:!0,value:0},opacity:1}});return{[`&${t}-top, &${t}-bottom`]:{marginInline:0},[`&${t}-top`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:i}},[`&${t}-bottom`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:a}},[`&${t}-topLeft, &${t}-bottomLeft`]:{marginInlineEnd:0,marginInlineStart:r,[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:o}}}},bW=e=>{let{iconCls:t,componentCls:n,boxShadowSecondary:r,fontSizeLG:i,notificationMarginBottom:a,borderRadiusLG:o,colorSuccess:s,colorInfo:c,colorWarning:l,colorError:u,colorTextHeading:d,notificationBg:f,notificationPadding:p,notificationMarginEdge:m,motionDurationMid:h,motionEaseInOut:_,fontSize:v,lineHeight:y,width:b,notificationIconSize:x}=e,S=`${n}-notice`,C=new ef(`antNotificationFadeIn`,{"0%":{left:{_skip_check_:!0,value:b},opacity:0},"100%":{left:{_skip_check_:!0,value:0},opacity:1}}),w=new ef(`antNotificationFadeOut`,{"0%":{maxHeight:e.animationMaxHeight,marginBottom:a,opacity:1},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[n]:g(g(g(g({},Op(e)),{position:`fixed`,zIndex:e.zIndexPopup,marginInlineEnd:m,[`${n}-hook-holder`]:{position:`relative`},[`&${n}-top, &${n}-bottom`]:{[`${n}-notice`]:{marginInline:`auto auto`}},[`&${n}-topLeft, &${n}-bottomLeft`]:{[`${n}-notice`]:{marginInlineEnd:`auto`,marginInlineStart:0}},[`${n}-fade-enter, ${n}-fade-appear`]:{animationDuration:e.motionDurationMid,animationTimingFunction:_,animationFillMode:`both`,opacity:0,animationPlayState:`paused`},[`${n}-fade-leave`]:{animationTimingFunction:_,animationFillMode:`both`,animationDuration:h,animationPlayState:`paused`},[`${n}-fade-enter${n}-fade-enter-active, ${n}-fade-appear${n}-fade-appear-active`]:{animationName:C,animationPlayState:`running`},[`${n}-fade-leave${n}-fade-leave-active`]:{animationName:w,animationPlayState:`running`}}),yW(e)),{"&-rtl":{direction:`rtl`,[`${n}-notice-btn`]:{float:`left`}}})},{[S]:{position:`relative`,width:b,maxWidth:`calc(100vw - ${m*2}px)`,marginBottom:a,marginInlineStart:`auto`,padding:p,overflow:`hidden`,lineHeight:y,wordWrap:`break-word`,background:f,borderRadius:o,boxShadow:r,[`${n}-close-icon`]:{fontSize:v,cursor:`pointer`},[`${S}-message`]:{marginBottom:e.marginXS,color:d,fontSize:i,lineHeight:e.lineHeightLG},[`${S}-description`]:{fontSize:v},[`&${S}-closable ${S}-message`]:{paddingInlineEnd:e.paddingLG},[`${S}-with-icon ${S}-message`]:{marginBottom:e.marginXS,marginInlineStart:e.marginSM+x,fontSize:i},[`${S}-with-icon ${S}-description`]:{marginInlineStart:e.marginSM+x,fontSize:v},[`${S}-icon`]:{position:`absolute`,fontSize:x,lineHeight:0,[`&-success${t}`]:{color:s},[`&-info${t}`]:{color:c},[`&-warning${t}`]:{color:l},[`&-error${t}`]:{color:u}},[`${S}-close`]:{position:`absolute`,top:e.notificationPaddingVertical,insetInlineEnd:e.notificationPaddingHorizontal,color:e.colorIcon,outline:`none`,width:e.notificationCloseButtonSize,height:e.notificationCloseButtonSize,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:`flex`,alignItems:`center`,justifyContent:`center`,"&:hover":{color:e.colorIconHover,backgroundColor:e.wireframe?`transparent`:e.colorFillContent}},[`${S}-btn`]:{float:`right`,marginTop:e.marginSM}}},{[`${S}-pure-panel`]:{margin:0}}]},xW=Fp(`Notification`,e=>{let t=e.paddingMD,n=e.paddingLG;return[bW(Rp(e,{notificationBg:e.colorBgElevated,notificationPaddingVertical:t,notificationPaddingHorizontal:n,notificationPadding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`,notificationMarginBottom:e.margin,notificationMarginEdge:e.marginLG,animationMaxHeight:150,notificationIconSize:e.fontSizeLG*e.lineHeightLG,notificationCloseButtonSize:e.controlHeightLG*.55}))]},e=>({zIndexPopup:e.zIndexPopupBase+50,width:384}));function SW(e,t){return t||W(`span`,{class:`${e}-close-x`},[W(UC,{class:`${e}-close-icon`},null)])}W(SA,null,null),W(mA,null,null),W(qC,null,null),W(vA,null,null),W(FC,null,null);var CW={success:mA,info:SA,error:qC,warning:vA};function wW(e){let{prefixCls:t,icon:n,type:r,message:i,description:a,btn:o}=e,s=null;if(n)s=W(`span`,{class:`${t}-icon`},[lc(n)]);else if(r){let e=CW[r];s=W(e,{class:`${t}-icon ${t}-icon-${r}`},null)}return W(`div`,{class:K({[`${t}-with-icon`]:s}),role:`alert`},[s,W(`div`,{class:`${t}-message`},[i]),W(`div`,{class:`${t}-description`},[a]),o&&W(`div`,{class:`${t}-btn`},[o])])}function TW(e,t,n){let r;switch(t=typeof t==`number`?`${t}px`:t,n=typeof n==`number`?`${n}px`:n,e){case`top`:r={left:`50%`,transform:`translateX(-50%)`,right:`auto`,top:t,bottom:`auto`};break;case`topLeft`:r={left:0,top:t,bottom:`auto`};break;case`topRight`:r={right:0,top:t,bottom:`auto`};break;case`bottom`:r={left:`50%`,transform:`translateX(-50%)`,right:`auto`,top:`auto`,bottom:n};break;case`bottomLeft`:r={left:0,top:`auto`,bottom:n};break;default:r={right:0,top:`auto`,bottom:n}}return r}function EW(e){return{name:`${e}-fade`}}var DW=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.prefixCls||r(`notification`)),o=t=>TW(t,e.top??OW,e.bottom??OW),[,s]=xW(a),[c,l]=VU({prefixCls:a.value,getStyles:o,getClassName:()=>K(s.value,{[`${a.value}-rtl`]:e.rtl}),motion:()=>EW(a.value),closable:!0,closeIcon:SW(a.value),duration:kW,getContainer:()=>e.getPopupContainer?.call(e)||i.value?.call(i)||document.body,maxCount:e.maxCount,hashId:s.value,onAllRemoved:e.onAllRemoved});return n(g(g({},c),{prefixCls:a.value,hashId:s})),l}});function jW(e){let t=V(null),n=Symbol(`notificationHolderKey`),r=e=>{if(!t.value)return;let{open:n,prefixCls:r,hashId:i}=t.value,a=`${r}-notice`,{message:o,description:s,icon:c,type:l,btn:u,class:d}=e,f=DW(e,[`message`,`description`,`icon`,`type`,`btn`,`class`]);return n(g(g({placement:`topRight`},f),{content:()=>W(wW,{prefixCls:a,icon:typeof c==`function`?c():c,type:l,message:typeof o==`function`?o():o,description:typeof s==`function`?s():s,btn:typeof u==`function`?u():u},null),class:K(l&&`${a}-${l}`,i,d)}))},i={open:r,destroy:e=>{var n,r;e===void 0?(r=t.value)==null||r.destroy():(n=t.value)==null||n.close(e)}};return[`success`,`info`,`warning`,`error`].forEach(e=>{i[e]=t=>r(g(g({},t),{type:e}))}),[i,()=>W(AW,h(h({key:n},e),{},{ref:t}),null)]}function MW(e){return jW(e)}var NW={},PW=4.5,FW=`24px`,IW=`24px`,LW=``,RW=`topRight`,zW=()=>document.body,BW=null,VW=!1,HW;function UW(e){let{duration:t,placement:n,bottom:r,top:i,getContainer:a,closeIcon:o,prefixCls:s}=e;s!==void 0&&(LW=s),t!==void 0&&(PW=t),n!==void 0&&(RW=n),r!==void 0&&(IW=typeof r==`number`?`${r}px`:r),i!==void 0&&(FW=typeof i==`number`?`${i}px`:i),a!==void 0&&(zW=a),o!==void 0&&(BW=o),e.rtl!==void 0&&(VW=e.rtl),e.maxCount!==void 0&&(HW=e.maxCount)}function WW(e,t){let{prefixCls:n,placement:r=RW,getContainer:i=zW,top:a,bottom:o,closeIcon:s=BW,appContext:c}=e,{getPrefixCls:l}=oG(),u=l(`notification`,n||LW),d=`${u}-${r}-${VW}`,f=NW[d];if(f){Promise.resolve(f).then(e=>{t(e)});return}let p=K(`${u}-${r}`,{[`${u}-rtl`]:VW===!0});HU.newInstance({name:`notification`,prefixCls:n||LW,useStyle:xW,class:p,style:TW(r,a??FW,o??IW),appContext:c,getContainer:i,closeIcon:e=>{let{prefixCls:t}=e;return W(`span`,{class:`${t}-close-x`},[lc(s,{},W(UC,{class:`${t}-close-icon`},null))])},maxCount:HW,hasTransitionName:!0},e=>{NW[d]=e,t(e)})}var GW={success:Qk,info:oA,error:uA,warning:nA};function KW(e){let{icon:t,type:n,description:r,message:i,btn:a}=e,o=e.duration===void 0?PW:e.duration;WW(e,s=>{s.notice({content:e=>{let{prefixCls:o}=e,s=`${o}-notice`,c=null;if(t)c=()=>W(`span`,{class:`${s}-icon`},[lc(t)]);else if(n){let e=GW[n];c=()=>W(e,{class:`${s}-icon ${s}-icon-${n}`},null)}return W(`div`,{class:c?`${s}-with-icon`:``},[c&&c(),W(`div`,{class:`${s}-message`},[!r&&c?W(`span`,{class:`${s}-message-single-line-auto-margin`},null):null,lc(i)]),W(`div`,{class:`${s}-description`},[lc(r)]),a?W(`span`,{class:`${s}-btn`},[lc(a)]):null])},duration:o,closable:!0,onClose:e.onClose,onClick:e.onClick,key:e.key,style:e.style||{},class:e.class})})}var qW={open:KW,close(e){Object.keys(NW).forEach(t=>Promise.resolve(NW[t]).then(t=>{t.removeNotice(e)}))},config:UW,destroy(){Object.keys(NW).forEach(e=>{Promise.resolve(NW[e]).then(e=>{e.destroy()}),delete NW[e]})}};[`success`,`info`,`warning`,`error`].forEach(e=>{qW[e]=t=>qW.open(g(g({},t),{type:e}))}),qW.warn=qW.warning,qW.useNotification=MW;var JW=`-ant-${Date.now()}-${Math.random()}`;function YW(e,t){let n={},r=(e,t)=>{let n=e.clone();return n=t?.(n)||n,n.toRgbString()},i=(e,t)=>{let i=new zf(e),a=ep(i.toRgbString());n[`${t}-color`]=r(i),n[`${t}-color-disabled`]=a[1],n[`${t}-color-hover`]=a[4],n[`${t}-color-active`]=a[6],n[`${t}-color-outline`]=i.clone().setAlpha(.2).toRgbString(),n[`${t}-color-deprecated-bg`]=a[0],n[`${t}-color-deprecated-border`]=a[2]};if(t.primaryColor){i(t.primaryColor,`primary`);let e=new zf(t.primaryColor),a=ep(e.toRgbString());a.forEach((e,t)=>{n[`primary-${t+1}`]=e}),n[`primary-color-deprecated-l-35`]=r(e,e=>e.lighten(35)),n[`primary-color-deprecated-l-20`]=r(e,e=>e.lighten(20)),n[`primary-color-deprecated-t-20`]=r(e,e=>e.tint(20)),n[`primary-color-deprecated-t-50`]=r(e,e=>e.tint(50)),n[`primary-color-deprecated-f-12`]=r(e,e=>e.setAlpha(e.getAlpha()*.12));let o=new zf(a[0]);n[`primary-color-active-deprecated-f-30`]=r(o,e=>e.setAlpha(e.getAlpha()*.3)),n[`primary-color-active-deprecated-d-02`]=r(o,e=>e.darken(2))}return t.successColor&&i(t.successColor,`success`),t.warningColor&&i(t.warningColor,`warning`),t.errorColor&&i(t.errorColor,`error`),t.infoColor&&i(t.infoColor,`info`),` + :root { + ${Object.keys(n).map(t=>`--${e}-${t}: ${n[t]};`).join(` +`)} + } + `.trim()}function XW(e,t){let n=YW(e,t);hu()?Ou(n,`${JW}-dynamic-theme`):Ru(!1,`ConfigProvider`,`SSR do not support dynamic theme with css variables.`)}var ZW=e=>{let[t,n]=Jp();return Qd(G(()=>({theme:t.value,token:n.value,hashId:``,path:[`ant-design-icons`,e.value]})),()=>[{[`.${e.value}`]:g(g({},kp()),{[`.${e.value} .${e.value}-icon`]:{display:`block`}})}])};function QW(e,t){let n=G(()=>e?.value||{}),r=G(()=>n.value.inherit===!1||!t?.value?Up:t.value);return G(()=>{if(!e?.value)return t?.value;let i=g({},r.value.components);return Object.keys(e.value.components||{}).forEach(t=>{i[t]=g(g({},i[t]),e.value.components[t])}),g(g(g({},r.value),n.value),{token:g(g({},r.value.token),n.value.token),components:i})})}var $W=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{g(rG,nG),rG.prefixCls=eG(),rG.iconPrefixCls=tG(),rG.getPrefixCls=(e,t)=>t||(e?`${rG.prefixCls}-${e}`:rG.prefixCls),rG.getRootPrefixCls=()=>rG.prefixCls?rG.prefixCls:eG()});var iG,aG=e=>{iG&&iG(),iG=ar(()=>{g(nG,Yt(e)),g(rG,Yt(e))}),e.theme&&XW(eG(),e.theme)},oG=()=>({getPrefixCls:(e,t)=>t||(e?`${eG()}-${e}`:eG()),getIconPrefixCls:tG,getRootPrefixCls:()=>rG.prefixCls?rG.prefixCls:eG()}),sG=U({compatConfig:{MODE:3},name:`AConfigProvider`,inheritAttrs:!1,props:Ll(),setup(e,t){let{slots:n}=t,r=Bl(),i=(t,n)=>{let{prefixCls:i=`ant`}=e;if(n)return n;let a=i||r.getPrefixCls(``);return t?`${a}-${t}`:a},a=G(()=>e.iconPrefixCls||r.iconPrefixCls.value||`anticon`),o=G(()=>a.value!==r.iconPrefixCls.value),s=G(()=>e.csp||r.csp?.value),c=ZW(a),l=QW(G(()=>e.theme),G(()=>r.theme?.value)),u=t=>(e.renderEmpty||n.renderEmpty||r.renderEmpty||rm)(t),d=G(()=>e.autoInsertSpaceInButton??r.autoInsertSpaceInButton?.value),f=G(()=>e.locale||r.locale?.value);H(f,()=>{nG.locale=f.value},{immediate:!0});let p=G(()=>e.direction||r.direction?.value),m=G(()=>e.space??r.space?.value),h=G(()=>e.virtual??r.virtual?.value),_=G(()=>e.dropdownMatchSelectWidth??r.dropdownMatchSelectWidth?.value),v=G(()=>e.getTargetContainer===void 0?r.getTargetContainer?.value:e.getTargetContainer),y=G(()=>e.getPopupContainer===void 0?r.getPopupContainer?.value:e.getPopupContainer),b=G(()=>e.pageHeader===void 0?r.pageHeader?.value:e.pageHeader),x=G(()=>e.input===void 0?r.input?.value:e.input),S=G(()=>e.pagination===void 0?r.pagination?.value:e.pagination),C=G(()=>e.form===void 0?r.form?.value:e.form),w=G(()=>e.select===void 0?r.select?.value:e.select),T=G(()=>e.componentSize),E=G(()=>e.componentDisabled),D=G(()=>e.wave??r.wave?.value),O={csp:s,autoInsertSpaceInButton:d,locale:f,direction:p,space:m,virtual:h,dropdownMatchSelectWidth:_,getPrefixCls:i,iconPrefixCls:a,theme:G(()=>l.value??r.theme?.value),renderEmpty:u,getTargetContainer:v,getPopupContainer:y,pageHeader:b,input:x,pagination:S,form:C,select:w,componentSize:T,componentDisabled:E,transformCellText:G(()=>e.transformCellText),wave:D},k=G(()=>{let e=l.value||{},{algorithm:t,token:n}=e,r=$W(e,[`algorithm`,`token`]),i=t&&(!Array.isArray(t)||t.length>0)?Hu(t):void 0;return g(g({},r),{theme:i,token:g(g({},lp),n)})}),A=G(()=>{let t={};return f.value&&(t=f.value.Form?.defaultValidateMessages||Zl.Form?.defaultValidateMessages||{}),e.form&&e.form.validateMessages&&(t=g(g({},t),e.form.validateMessages)),t});Vl(O),Fl({validateMessages:A}),om(T),Wl(E);let j=t=>{let r=o.value?c(n.default?.call(n)):n.default?.call(n);if(e.theme){let e=function(){return r}();r=W(qp,{value:k.value},{default:()=>[e]})}return W(EU,{locale:f.value||t,ANT_MARK__:wU},{default:()=>[r]})};return ar(()=>{p.value&&(_W.config({rtl:p.value===`rtl`}),qW.config({rtl:p.value===`rtl`}))}),()=>W(eu,{children:(e,t,n)=>j(n)},null)}});sG.config=aG,sG.install=function(e){e.component(sG.name,sG)};var cG=(e,t)=>{let{attrs:n,slots:r}=t;return W(Oj,h(h({size:`small`,type:`primary`},e),n),r)},lG=(e,t,n)=>{let r=See(n);return{[`${e.componentCls}-${t}`]:{color:e[`color${n}`],background:e[`color${r}Bg`],borderColor:e[`color${r}Border`],[`&${e.componentCls}-borderless`]:{borderColor:`transparent`}}}},uG=e=>Ep(e,(t,n)=>{let{textColor:r,lightBorderColor:i,lightColor:a,darkColor:o}=n;return{[`${e.componentCls}-${t}`]:{color:r,background:a,borderColor:i,"&-inverse":{color:e.colorTextLightSolid,background:o,borderColor:o},[`&${e.componentCls}-borderless`]:{borderColor:`transparent`}}}}),dG=e=>{let{paddingXXS:t,lineWidth:n,tagPaddingHorizontal:r,componentCls:i}=e,a=r-n,o=t-n;return{[i]:g(g({},Op(e)),{display:`inline-block`,height:`auto`,marginInlineEnd:e.marginXS,paddingInline:a,fontSize:e.tagFontSize,lineHeight:`${e.tagLineHeight}px`,whiteSpace:`nowrap`,background:e.tagDefaultBg,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,opacity:1,transition:`all ${e.motionDurationMid}`,textAlign:`start`,[`&${i}-rtl`]:{direction:`rtl`},"&, a, a:hover":{color:e.tagDefaultColor},[`${i}-close-icon`]:{marginInlineStart:o,color:e.colorTextDescription,fontSize:e.tagIconSize,cursor:`pointer`,transition:`all ${e.motionDurationMid}`,"&:hover":{color:e.colorTextHeading}},[`&${i}-has-color`]:{borderColor:`transparent`,[`&, a, a:hover, ${e.iconCls}-close, ${e.iconCls}-close:hover`]:{color:e.colorTextLightSolid}},"&-checkable":{backgroundColor:`transparent`,borderColor:`transparent`,cursor:`pointer`,[`&:not(${i}-checkable-checked):hover`]:{color:e.colorPrimary,backgroundColor:e.colorFillSecondary},"&:active, &-checked":{color:e.colorTextLightSolid},"&-checked":{backgroundColor:e.colorPrimary,"&:hover":{backgroundColor:e.colorPrimaryHover}},"&:active":{backgroundColor:e.colorPrimaryActive}},"&-hidden":{display:`none`},[`> ${e.iconCls} + span, > span + ${e.iconCls}`]:{marginInlineStart:a}}),[`${i}-borderless`]:{borderColor:`transparent`,background:e.tagBorderlessBg}}},fG=Fp(`Tag`,e=>{let{fontSize:t,lineHeight:n,lineWidth:r,fontSizeIcon:i}=e,a=Math.round(t*n),o=e.fontSizeSM,s=a-r*2,c=e.colorFillAlter,l=e.colorText,u=Rp(e,{tagFontSize:o,tagLineHeight:s,tagDefaultBg:c,tagDefaultColor:l,tagIconSize:i-2*r,tagPaddingHorizontal:8,tagBorderlessBg:e.colorFillTertiary});return[dG(u),uG(u),lG(u,`success`,`Success`),lG(u,`processing`,`Info`),lG(u,`error`,`Error`),lG(u,`warning`,`Warning`)]}),pG=U({compatConfig:{MODE:3},name:`ACheckableTag`,inheritAttrs:!1,props:{prefixCls:String,checked:{type:Boolean,default:void 0},onChange:{type:Function},onClick:{type:Function},"onUpdate:checked":Function},setup(e,t){let{slots:n,emit:r,attrs:i}=t,{prefixCls:a}=Z(`tag`,e),[o,s]=fG(a),c=t=>{let{checked:n}=e;r(`update:checked`,!n),r(`change`,!n),r(`click`,t)},l=G(()=>K(a.value,s.value,{[`${a.value}-checkable`]:!0,[`${a.value}-checkable-checked`]:e.checked}));return()=>o(W(`span`,h(h({},i),{},{class:[l.value,i.class],onClick:c}),[n.default?.call(n)]))}}),mG=U({compatConfig:{MODE:3},name:`ATag`,inheritAttrs:!1,props:{prefixCls:String,color:{type:String},closable:{type:Boolean,default:!1},closeIcon:Q.any,visible:{type:Boolean,default:void 0},onClose:{type:Function},onClick:vl(),"onUpdate:visible":Function,icon:Q.any,bordered:{type:Boolean,default:!0}},slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i}=t,{prefixCls:a,direction:o}=Z(`tag`,e),[s,c]=fG(a),l=V(!0);ar(()=>{e.visible!==void 0&&(l.value=e.visible)});let u=t=>{t.stopPropagation(),r(`update:visible`,!1),r(`close`,t),!t.defaultPrevented&&e.visible===void 0&&(l.value=!1)},d=G(()=>BA(e.color)||jne(e.color)),f=G(()=>K(a.value,c.value,{[`${a.value}-${e.color}`]:d.value,[`${a.value}-has-color`]:e.color&&!d.value,[`${a.value}-hidden`]:!l.value,[`${a.value}-rtl`]:o.value===`rtl`,[`${a.value}-borderless`]:!e.bordered})),p=e=>{r(`click`,e)};return()=>{let{icon:t=n.icon?.call(n),color:r,closeIcon:o=n.closeIcon?.call(n),closable:c=!1}=e,l=()=>c?o?W(`span`,{class:`${a.value}-close-icon`,onClick:u},[o]):W(UC,{class:`${a.value}-close-icon`,onClick:u},null):null,m={backgroundColor:r&&!d.value?r:void 0},g=t||null,_=n.default?.call(n),v=g?W(Ma,null,[g,W(`span`,null,[_])]):_,y=e.onClick!==void 0,b=W(`span`,h(h({},i),{},{onClick:p,class:[f.value,i.class],style:[m,i.style]}),[v,l()]);return s(y?W(sj,null,{default:()=>[b]}):b)}}});mG.CheckableTag=pG,mG.install=function(e){return e.component(mG.name,mG),e.component(pG.name,pG),e};function hG(e,t){let{slots:n,attrs:r}=t;return W(mG,h(h({color:`blue`},e),r),n)}var gG={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z`}}]},name:`calendar`,theme:`outlined`};function _G(e){for(var t=1;ty.value||m.value),[S,C]=JF(d),w=B();a({focus:()=>{var e;(e=w.value)==null||e.focus()},blur:()=>{var e;(e=w.value)==null||e.blur()}});let T=t=>c.valueFormat?e.toString(t,c.valueFormat):t,E=(e,t)=>{let n=T(e);s(`update:value`,n),s(`change`,n,t),l.onFieldChange()},D=e=>{s(`update:open`,e),s(`openChange`,e)},O=e=>{s(`focus`,e)},k=e=>{s(`blur`,e),l.onFieldBlur()},A=(e,t)=>{let n=T(e);s(`panelChange`,n,t)},j=e=>{let t=T(e);s(`ok`,t)},[M]=$l(`DatePicker`,Jl),N=G(()=>c.value?c.valueFormat?e.toDate(c.value,c.valueFormat):c.value:c.value===``?void 0:c.value),P=G(()=>c.defaultValue?c.valueFormat?e.toDate(c.defaultValue,c.valueFormat):c.defaultValue:c.defaultValue===``?void 0:c.defaultValue),F=G(()=>c.defaultPickerValue?c.valueFormat?e.toDate(c.defaultPickerValue,c.valueFormat):c.defaultPickerValue:c.defaultPickerValue===``?void 0:c.defaultPickerValue);return()=>{let t=g(g({},M.value),c.locale),r=g(g({},c),o),{bordered:a=!0,placeholder:s,suffixIcon:m=i.suffixIcon?.call(i),showToday:y=!0,transitionName:T,allowClear:I=!0,dateRender:L=i.dateRender,renderExtraFooter:R=i.renderExtraFooter,monthCellRender:ee=i.monthCellRender||c.monthCellContentRender||i.monthCellContentRender,clearIcon:te=i.clearIcon?.call(i),id:ne=l.id.value}=r,z=AG(r,[`bordered`,`placeholder`,`suffixIcon`,`showToday`,`transitionName`,`allowClear`,`dateRender`,`renderExtraFooter`,`monthCellRender`,`clearIcon`,`id`]),re=r.showTime===``||r.showTime,{format:ie}=r,ae={};n&&(ae.picker=n);let oe=n||r.picker||`date`;ae=g(g(g({},ae),re?BG(g({format:ie,picker:oe},typeof re==`object`?re:{})):{}),oe===`time`?BG(g(g({format:ie},z),{picker:oe})):{});let se=d.value,ce=W(Ma,null,[m||W(n===`time`?CG:yG,null,null),u.hasFeedback&&u.feedbackIcon]);return S(W($P,h(h(h({monthCellRender:ee,dateRender:L,renderExtraFooter:R,ref:w,placeholder:wG(t,oe,s),suffixIcon:ce,dropdownAlign:EG(f.value,c.placement),clearIcon:te||W(qC,null,null),allowClear:I,transitionName:T||`${_.value}-slide-up`},z),ae),{},{id:ne,picker:oe,value:N.value,defaultValue:P.value,defaultPickerValue:F.value,showToday:y,locale:t.lang,class:K({[`${se}-${x.value}`]:x.value,[`${se}-borderless`]:!a},lw(se,uw(u.status,c.status),u.hasFeedback),o.class,C.value,b.value),disabled:v.value,prefixCls:se,getPopupContainer:o.getCalendarContainer||p.value,generateConfig:e,prevIcon:i.prevIcon?.call(i)||W(`span`,{class:`${se}-prev-icon`},null),nextIcon:i.nextIcon?.call(i)||W(`span`,{class:`${se}-next-icon`},null),superPrevIcon:i.superPrevIcon?.call(i)||W(`span`,{class:`${se}-super-prev-icon`},null),superNextIcon:i.superNextIcon?.call(i)||W(`span`,{class:`${se}-super-next-icon`},null),components:RG,direction:f.value,dropdownClassName:K(C.value,c.popupClassName,c.dropdownClassName),onChange:E,onOpenChange:D,onFocus:O,onBlur:k,onPanelChange:A,onOk:j}),null))}}})}return{DatePicker:n(void 0,`ADatePicker`),WeekPicker:n(`week`,`AWeekPicker`),MonthPicker:n(`month`,`AMonthPicker`),YearPicker:n(`year`,`AYearPicker`),TimePicker:n(`time`,`TimePicker`),QuarterPicker:n(`quarter`,`AQuarterPicker`)}}var MG={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z`}}]},name:`swap-right`,theme:`outlined`};function NG(e){for(var t=1;tv.value||p.value),[x,S]=JF(u),C=B();r({focus:()=>{var e;(e=C.value)==null||e.focus()},blur:()=>{var e;(e=C.value)==null||e.blur()}});let w=t=>s.valueFormat?e.toString(t,s.valueFormat):t,T=(e,t)=>{let n=w(e);o(`update:value`,n),o(`change`,n,t),c.onFieldChange()},E=e=>{o(`update:open`,e),o(`openChange`,e)},D=e=>{o(`focus`,e)},O=e=>{o(`blur`,e),c.onFieldBlur()},k=(e,t)=>{let n=w(e);o(`panelChange`,n,t)},A=e=>{let t=w(e);o(`ok`,t)},j=(e,t,n)=>{let r=w(e);o(`calendarChange`,r,t,n)},[M]=$l(`DatePicker`,Jl),N=G(()=>s.value&&s.valueFormat?e.toDate(s.value,s.valueFormat):s.value),P=G(()=>s.defaultValue&&s.valueFormat?e.toDate(s.defaultValue,s.valueFormat):s.defaultValue),F=G(()=>s.defaultPickerValue&&s.valueFormat?e.toDate(s.defaultPickerValue,s.valueFormat):s.defaultPickerValue);return()=>{let t=g(g({},M.value),s.locale),n=g(g({},s),a),{prefixCls:r,bordered:o=!0,placeholder:p,suffixIcon:v=i.suffixIcon?.call(i),picker:w=`date`,transitionName:I,allowClear:L=!0,dateRender:R=i.dateRender,renderExtraFooter:ee=i.renderExtraFooter,separator:te=i.separator?.call(i),clearIcon:ne=i.clearIcon?.call(i),id:z=c.id.value}=n,re=IG(n,[`prefixCls`,`bordered`,`placeholder`,`suffixIcon`,`picker`,`transitionName`,`allowClear`,`dateRender`,`renderExtraFooter`,`separator`,`clearIcon`,`id`]);delete re[`onUpdate:value`],delete re[`onUpdate:open`];let{format:ie,showTime:ae}=n,oe={};oe=g(g(g({},oe),ae?BG(g({format:ie,picker:w},ae)):{}),w===`time`?BG(g(g({format:ie},sm(re,[`disabledTime`])),{picker:w})):{});let se=u.value,ce=W(Ma,null,[v||W(w===`time`?CG:yG,null,null),l.hasFeedback&&l.feedbackIcon]);return x(W(QP,h(h(h({dateRender:R,renderExtraFooter:ee,separator:te||W(`span`,{"aria-label":`to`,class:`${se}-separator`},[W(FG,null,null)]),ref:C,dropdownAlign:EG(d.value,s.placement),placeholder:TG(t,w,p),suffixIcon:ce,clearIcon:ne||W(qC,null,null),allowClear:L,transitionName:I||`${m.value}-slide-up`},re),oe),{},{disabled:_.value,id:z,value:N.value,defaultValue:P.value,defaultPickerValue:F.value,picker:w,class:K({[`${se}-${b.value}`]:b.value,[`${se}-borderless`]:!o},lw(se,uw(l.status,s.status),l.hasFeedback),a.class,S.value,y.value),locale:t.lang,prefixCls:se,getPopupContainer:a.getCalendarContainer||f.value,generateConfig:e,prevIcon:i.prevIcon?.call(i)||W(`span`,{class:`${se}-prev-icon`},null),nextIcon:i.nextIcon?.call(i)||W(`span`,{class:`${se}-next-icon`},null),superPrevIcon:i.superPrevIcon?.call(i)||W(`span`,{class:`${se}-super-prev-icon`},null),superNextIcon:i.superNextIcon?.call(i)||W(`span`,{class:`${se}-super-next-icon`},null),components:RG,direction:d.value,dropdownClassName:K(S.value,s.popupClassName,s.dropdownClassName),onChange:T,onOpenChange:E,onFocus:D,onBlur:O,onPanelChange:k,onOk:A,onCalendarChange:j}),null))}}})}var RG={button:cG,rangeItem:hG};function zG(e){return e?Array.isArray(e)?e:[e]:[]}function BG(e){let{format:t,picker:n,showHour:r,showMinute:i,showSecond:a,use12Hours:o}=e,s=zG(t)[0],c=g({},e);return s&&typeof s==`string`&&(!s.includes(`s`)&&a===void 0&&(c.showSecond=!1),!s.includes(`m`)&&i===void 0&&(c.showMinute=!1),!s.includes(`H`)&&!s.includes(`h`)&&r===void 0&&(c.showHour=!1),(s.includes(`a`)||s.includes(`A`))&&o===void 0&&(c.use12Hours=!0)),n===`time`?c:(typeof s==`function`&&delete c.format,{showTime:c})}function VG(e,t){let{DatePicker:n,WeekPicker:r,MonthPicker:i,YearPicker:a,TimePicker:o,QuarterPicker:s}=jG(e,t);return{DatePicker:n,WeekPicker:r,MonthPicker:i,YearPicker:a,TimePicker:o,QuarterPicker:s,RangePicker:LG(e,t)}}var{DatePicker:HG,WeekPicker:UG,MonthPicker:WG,YearPicker:GG,TimePicker:KG,QuarterPicker:qG,RangePicker:JG}=VG(JM),YG=g(HG,{WeekPicker:UG,MonthPicker:WG,YearPicker:GG,RangePicker:JG,TimePicker:KG,QuarterPicker:qG,install:e=>(e.component(HG.name,HG),e.component(JG.name,JG),e.component(WG.name,WG),e.component(UG.name,UG),e.component(qG.name,qG),e)});function XG(e){return e!=null}var ZG=e=>{let{itemPrefixCls:t,component:n,span:r,labelStyle:i,contentStyle:a,bordered:o,label:s,content:c,colon:l}=e,u=n;return o?W(u,{class:[{[`${t}-item-label`]:XG(s),[`${t}-item-content`]:XG(c)}],colSpan:r},{default:()=>[XG(s)&&W(`span`,{style:i},[s]),XG(c)&&W(`span`,{style:a},[c])]}):W(u,{class:[`${t}-item`],colSpan:r},{default:()=>[W(`div`,{class:`${t}-item-container`},[(s||s===0)&&W(`span`,{class:[`${t}-item-label`,{[`${t}-item-no-colon`]:!l}],style:i},[s]),(c||c===0)&&W(`span`,{class:`${t}-item-content`,style:a},[c])])]})},QG=e=>{let t=(e,t,n)=>{let{colon:r,prefixCls:i,bordered:a}=t,{component:o,type:s,showLabel:c,showContent:l,labelStyle:u,contentStyle:d}=n;return e.map((e,t)=>{var n;let f=e.props||{},{prefixCls:p=i,span:m=1,labelStyle:h=f[`label-style`],contentStyle:_=f[`content-style`],label:v=((n=e.children)?.label)?.call(n)}=f,y=Kc(e),b=Zc(e),x=Qc(e),{key:S}=e;return typeof o==`string`?W(ZG,{key:`${s}-${String(S)||t}`,class:b,style:x,labelStyle:g(g({},u),h),contentStyle:g(g({},d),_),span:m,colon:r,component:o,itemPrefixCls:p,bordered:a,label:c?v:null,content:l?y:null},null):[W(ZG,{key:`label-${String(S)||t}`,class:b,style:g(g(g({},u),x),h),span:1,colon:r,component:o[0],itemPrefixCls:p,bordered:a,label:v},null),W(ZG,{key:`content-${String(S)||t}`,class:b,style:g(g(g({},d),x),_),span:m*2-1,component:o[1],itemPrefixCls:p,bordered:a,content:y},null)]})},{prefixCls:n,vertical:r,row:i,index:a,bordered:o}=e,{labelStyle:s,contentStyle:c}=tr(cK,{labelStyle:B({}),contentStyle:B({})});return r?W(Ma,null,[W(`tr`,{key:`label-${a}`,class:`${n}-row`},[t(i,e,{component:`th`,type:`label`,showLabel:!0,labelStyle:s.value,contentStyle:c.value})]),W(`tr`,{key:`content-${a}`,class:`${n}-row`},[t(i,e,{component:`td`,type:`content`,showContent:!0,labelStyle:s.value,contentStyle:c.value})])]):W(`tr`,{key:a,class:`${n}-row`},[t(i,e,{component:o?[`th`,`td`]:`td`,type:`item`,showLabel:!0,showContent:!0,labelStyle:s.value,contentStyle:c.value})])},$G=e=>{let{componentCls:t,descriptionsSmallPadding:n,descriptionsDefaultPadding:r,descriptionsMiddlePadding:i,descriptionsBg:a}=e;return{[`&${t}-bordered`]:{[`${t}-view`]:{border:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"> table":{tableLayout:`auto`,borderCollapse:`collapse`}},[`${t}-item-label, ${t}-item-content`]:{padding:r,borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderInlineEnd:`none`}},[`${t}-item-label`]:{backgroundColor:a,"&::after":{display:`none`}},[`${t}-row`]:{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBottom:`none`}},[`&${t}-middle`]:{[`${t}-item-label, ${t}-item-content`]:{padding:i}},[`&${t}-small`]:{[`${t}-item-label, ${t}-item-content`]:{padding:n}}}}},eK=e=>{let{componentCls:t,descriptionsExtraColor:n,descriptionItemPaddingBottom:r,descriptionsItemLabelColonMarginRight:i,descriptionsItemLabelColonMarginLeft:a,descriptionsTitleMarginBottom:o}=e;return{[t]:g(g(g({},Op(e)),$G(e)),{"&-rtl":{direction:`rtl`},[`${t}-header`]:{display:`flex`,alignItems:`center`,marginBottom:o},[`${t}-title`]:g(g({},Dp),{flex:`auto`,color:e.colorText,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}),[`${t}-extra`]:{marginInlineStart:`auto`,color:n,fontSize:e.fontSize},[`${t}-view`]:{width:`100%`,borderRadius:e.borderRadiusLG,table:{width:`100%`,tableLayout:`fixed`}},[`${t}-row`]:{"> th, > td":{paddingBottom:r},"&:last-child":{borderBottom:`none`}},[`${t}-item-label`]:{color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:`start`,"&::after":{content:`":"`,position:`relative`,top:-.5,marginInline:`${a}px ${i}px`},[`&${t}-item-no-colon::after`]:{content:`""`}},[`${t}-item-no-label`]:{"&::after":{margin:0,content:`""`}},[`${t}-item-content`]:{display:`table-cell`,flex:1,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,wordBreak:`break-word`,overflowWrap:`break-word`},[`${t}-item`]:{paddingBottom:0,verticalAlign:`top`,"&-container":{display:`flex`,[`${t}-item-label`]:{display:`inline-flex`,alignItems:`baseline`},[`${t}-item-content`]:{display:`inline-flex`,alignItems:`baseline`}}},"&-middle":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingSM}}},"&-small":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingXS}}}})}},tK=Fp(`Descriptions`,e=>{let t=e.colorFillAlter,n=e.fontSizeSM*e.lineHeightSM,r=e.colorText,i=`${e.paddingXS}px ${e.padding}px`,a=`${e.padding}px ${e.paddingLG}px`,o=`${e.paddingSM}px ${e.paddingLG}px`,s=e.padding,c=e.marginXS;return[eK(Rp(e,{descriptionsBg:t,descriptionsTitleMarginBottom:n,descriptionsExtraColor:r,descriptionItemPaddingBottom:s,descriptionsSmallPadding:i,descriptionsDefaultPadding:a,descriptionsMiddlePadding:o,descriptionsItemLabelColonMarginRight:c,descriptionsItemLabelColonMarginLeft:e.marginXXS/2}))]});Q.any;var nK=U({compatConfig:{MODE:3},name:`ADescriptionsItem`,props:{prefixCls:String,label:Q.any,labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0},span:{type:Number,default:1}},setup(e,t){let{slots:n}=t;return()=>n.default?.call(n)}}),rK={xxxl:3,xxl:3,xl:3,lg:3,md:3,sm:2,xs:1};function iK(e,t){if(typeof e==`number`)return e;if(typeof e==`object`)for(let n=0;nt)&&(r=s_(e,{span:t}),Ru(n===void 0,`Descriptions`,"Sum of column `span` in a line not match `column` of Descriptions.")),r}function oK(e,t){let n=Gc(e),r=[],i=[],a=t;return n.forEach((e,o)=>{let s=e.props?.span,c=s||1;o===n.length-1?(i.push(aK(e,a,s)),r.push(i)):c({prefixCls:String,bordered:{type:Boolean,default:void 0},size:{type:String,default:`default`},title:Q.any,extra:Q.any,column:{type:[Number,Object],default:()=>rK},layout:String,colon:{type:Boolean,default:void 0},labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0}}),cK=Symbol(`descriptionsContext`),lK=U({compatConfig:{MODE:3},name:`ADescriptions`,inheritAttrs:!1,props:sK(),slots:Object,Item:nK,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`descriptions`,e),o,s=B({}),[c,l]=tK(i),u=TA();Qr(()=>{o=u.value.subscribe(t=>{typeof e.column==`object`&&(s.value=t)})}),ni(()=>{u.value.unsubscribe(o)}),er(cK,{labelStyle:vn(e,`labelStyle`),contentStyle:vn(e,`contentStyle`)});let d=G(()=>iK(e.column,s.value));return()=>{let{size:t,bordered:o=!1,layout:s=`horizontal`,colon:u=!0,title:f=n.title?.call(n),extra:p=n.extra?.call(n)}=e,m=oK(n.default?.call(n),d.value);return c(W(`div`,h(h({},r),{},{class:[i.value,{[`${i.value}-${t}`]:t!=="default",[`${i.value}-bordered`]:!!o,[`${i.value}-rtl`]:a.value===`rtl`},r.class,l.value]}),[(f||p)&&W(`div`,{class:`${i.value}-header`},[f&&W(`div`,{class:`${i.value}-title`},[f]),p&&W(`div`,{class:`${i.value}-extra`},[p])]),W(`div`,{class:`${i.value}-view`},[W(`table`,null,[W(`tbody`,null,[m.map((e,t)=>W(QG,{key:t,index:t,colon:u,prefixCls:i.value,vertical:s===`vertical`,bordered:o,row:e},null))])])])]))}}});lK.install=function(e){return e.component(lK.name,lK),e.component(lK.Item.name,lK.Item),e};var uK=e=>{let{componentCls:t,sizePaddingEdgeHorizontal:n,colorSplit:r,lineWidth:i}=e;return{[t]:g(g({},Op(e)),{borderBlockStart:`${i}px solid ${r}`,"&-vertical":{position:`relative`,top:`-0.06em`,display:`inline-block`,height:`0.9em`,margin:`0 ${e.dividerVerticalGutterMargin}px`,verticalAlign:`middle`,borderTop:0,borderInlineStart:`${i}px solid ${r}`},"&-horizontal":{display:`flex`,clear:`both`,width:`100%`,minWidth:`100%`,margin:`${e.dividerHorizontalGutterMargin}px 0`},[`&-horizontal${t}-with-text`]:{display:`flex`,alignItems:`center`,margin:`${e.dividerHorizontalWithTextGutterMargin}px 0`,color:e.colorTextHeading,fontWeight:500,fontSize:e.fontSizeLG,whiteSpace:`nowrap`,textAlign:`center`,borderBlockStart:`0 ${r}`,"&::before, &::after":{position:`relative`,width:`50%`,borderBlockStart:`${i}px solid transparent`,borderBlockStartColor:`inherit`,borderBlockEnd:0,transform:`translateY(50%)`,content:`''`}},[`&-horizontal${t}-with-text-left`]:{"&::before":{width:`5%`},"&::after":{width:`95%`}},[`&-horizontal${t}-with-text-right`]:{"&::before":{width:`95%`},"&::after":{width:`5%`}},[`${t}-inner-text`]:{display:`inline-block`,padding:`0 1em`},"&-dashed":{background:`none`,borderColor:r,borderStyle:`dashed`,borderWidth:`${i}px 0 0`},[`&-horizontal${t}-with-text${t}-dashed`]:{"&::before, &::after":{borderStyle:`dashed none none`}},[`&-vertical${t}-dashed`]:{borderInlineStartWidth:i,borderInlineEnd:0,borderBlockStart:0,borderBlockEnd:0},[`&-plain${t}-with-text`]:{color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize},[`&-horizontal${t}-with-text-left${t}-no-default-orientation-margin-left`]:{"&::before":{width:0},"&::after":{width:`100%`},[`${t}-inner-text`]:{paddingInlineStart:n}},[`&-horizontal${t}-with-text-right${t}-no-default-orientation-margin-right`]:{"&::before":{width:`100%`},"&::after":{width:0},[`${t}-inner-text`]:{paddingInlineEnd:n}}})}},dK=Fp(`Divider`,e=>[uK(Rp(e,{dividerVerticalGutterMargin:e.marginXS,dividerHorizontalWithTextGutterMargin:e.margin,dividerHorizontalGutterMargin:e.marginLG}))],{sizePaddingEdgeHorizontal:0}),fK=_l(U({name:`ADivider`,inheritAttrs:!1,compatConfig:{MODE:3},props:{prefixCls:String,type:{type:String,default:`horizontal`},dashed:{type:Boolean,default:!1},orientation:{type:String,default:`center`},plain:{type:Boolean,default:!1},orientationMargin:[String,Number]},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`divider`,e),[o,s]=dK(i),c=G(()=>e.orientation===`left`&&e.orientationMargin!=null),l=G(()=>e.orientation===`right`&&e.orientationMargin!=null),u=G(()=>{let{type:t,dashed:n,plain:r}=e,o=i.value;return{[o]:!0,[s.value]:!!s.value,[`${o}-${t}`]:!0,[`${o}-dashed`]:!!n,[`${o}-plain`]:!!r,[`${o}-rtl`]:a.value===`rtl`,[`${o}-no-default-orientation-margin-left`]:c.value,[`${o}-no-default-orientation-margin-right`]:l.value}}),d=G(()=>{let t=typeof e.orientationMargin==`number`?`${e.orientationMargin}px`:e.orientationMargin;return g(g({},c.value&&{marginLeft:t}),l.value&&{marginRight:t})}),f=G(()=>e.orientation.length>0?`-`+e.orientation:e.orientation);return()=>{let e=Gc(n.default?.call(n));return o(W(`div`,h(h({},r),{},{class:[u.value,e.length?`${i.value}-with-text ${i.value}-with-text${f.value}`:``,r.class],role:`separator`}),[e.length?W(`span`,{class:`${i.value}-inner-text`,style:d.value},[e]):null]))}}}));Bj.Button=Pj,Bj.install=function(e){return e.component(Bj.name,Bj),e.component(Pj.name,Pj),e};var pK=Bj,mK=()=>({prefixCls:String,width:Q.oneOfType([Q.string,Q.number]),height:Q.oneOfType([Q.string,Q.number]),style:{type:Object,default:void 0},class:String,rootClassName:String,rootStyle:q(),placement:{type:String},wrapperClassName:String,level:{type:[String,Array]},levelMove:{type:[Number,Function,Array]},duration:String,ease:String,showMask:{type:Boolean,default:void 0},maskClosable:{type:Boolean,default:void 0},maskStyle:{type:Object,default:void 0},afterVisibleChange:Function,keyboard:{type:Boolean,default:void 0},contentWrapperStyle:xl(),autofocus:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},motion:Y(),maskMotion:q()}),hK=()=>g(g({},mK()),{forceRender:{type:Boolean,default:void 0},getContainer:Q.oneOfType([Q.string,Q.func,Q.object,Q.looseBool])}),gK=()=>g(g({},mK()),{getContainer:Function,getOpenCount:Function,scrollLocker:Q.any,inline:Boolean});function _K(e){return Array.isArray(e)?e:[e]}var vK={transition:`transitionend`,WebkitTransition:`webkitTransitionEnd`,MozTransition:`transitionend`,OTransition:`oTransitionEnd otransitionend`};vK[Object.keys(vK).filter(e=>{if(typeof document>`u`)return!1;let t=document.getElementsByTagName(`html`)[0];return e in(t?t.style:{})})[0]];var yK=!(typeof window<`u`&&window.document&&window.document.createElement),bK=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{zn(()=>{var t;let{open:n,getContainer:r,showMask:i,autofocus:a}=e,o=r?.();g(e),n&&(o&&o.parentNode===document.body&&(xK[u]=n),zn(()=>{a&&d()}),i&&((t=e.scrollLocker)==null||t.lock()))})}),H(()=>e.level,()=>{g(e)},{flush:`post`}),H(()=>e.open,()=>{let{open:t,getContainer:n,scrollLocker:r,showMask:i,autofocus:a}=e,o=n?.();o&&o.parentNode===document.body&&(xK[u]=!!t),t?(a&&d(),i&&r?.lock()):r?.unLock()},{flush:`post`}),ri(()=>{var t;let{open:n}=e;delete xK[u],n&&(document.body.style.touchAction=``),(t=e.scrollLocker)==null||t.unLock()}),H(()=>e.placement,e=>{e&&(c.value=null)});let d=()=>{var e,t;(t=(e=a.value)?.focus)==null||t.call(e)},f=e=>{n(`close`,e)},p=e=>{e.keyCode===$.ESC&&(e.stopPropagation(),f(e))},m=()=>{let{open:t,afterVisibleChange:n}=e;n&&n(!!t)},g=e=>{let{level:t,getContainer:n}=e;if(yK)return;let r=n?.(),i=r?r.parentNode:null;l=[],t===`all`?(i?Array.prototype.slice.call(i.children):[]).forEach(e=>{e.nodeName!==`SCRIPT`&&e.nodeName!==`STYLE`&&e.nodeName!==`LINK`&&e!==r&&l.push(e)}):t&&_K(t).forEach(e=>{document.querySelectorAll(e).forEach(e=>{l.push(e)})})},_=e=>{n(`handleClick`,e)},v=V(!1);return H(a,()=>{zn(()=>{v.value=!0})}),()=>{let{width:t,height:n,open:l,prefixCls:u,placement:d,level:g,levelMove:y,ease:b,duration:x,getContainer:S,onChange:C,afterVisibleChange:w,showMask:T,maskClosable:E,maskStyle:D,keyboard:O,getOpenCount:k,scrollLocker:A,contentWrapperStyle:j,style:M,class:N,rootClassName:P,rootStyle:F,maskMotion:I,motion:L,inline:R}=e,ee=bK(e,`width.height.open.prefixCls.placement.level.levelMove.ease.duration.getContainer.onChange.afterVisibleChange.showMask.maskClosable.maskStyle.keyboard.getOpenCount.scrollLocker.contentWrapperStyle.style.class.rootClassName.rootStyle.maskMotion.motion.inline`.split(`.`)),te=l&&v.value,ne=K(u,{[`${u}-${d}`]:!0,[`${u}-open`]:te,[`${u}-inline`]:R,"no-mask":!T,[P]:!0}),z=typeof L==`function`?L(d):L;return W(`div`,h(h({},sm(ee,[`autofocus`])),{},{tabindex:-1,class:ne,style:F,ref:a,onKeydown:te&&O?p:void 0}),[W(Uo,I,{default:()=>[T&&Qn(W(`div`,{class:`${u}-mask`,onClick:E?f:void 0,style:D,ref:o},null),[[ss,te]])]}),W(Uo,h(h({},z),{},{onAfterEnter:m,onAfterLeave:m}),{default:()=>[Qn(W(`div`,{class:`${u}-content-wrapper`,style:[j],ref:i},[W(`div`,{class:[`${u}-content`,N],style:M,ref:c},[r.default?.call(r)]),r.handler?W(`div`,{onClick:_,ref:s},[r.handler?.call(r)]):null]),[[ss,te]])]})])}}}),CK=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{},showMask:!0,maskClosable:!0,maskStyle:{},wrapperClassName:``,keyboard:!0,forceRender:!1,autofocus:!0}),emits:[`handleClick`,`close`],setup(e,t){let{emit:n,slots:r}=t,i=B(null),a=e=>{n(`handleClick`,e)},o=e=>{n(`close`,e)};return()=>{let{getContainer:t,wrapperClassName:n,rootClassName:s,rootStyle:c,forceRender:l}=e,u=CK(e,[`getContainer`,`wrapperClassName`,`rootClassName`,`rootStyle`,`forceRender`]),d=null;if(!t)return W(SK,h(h({},u),{},{rootClassName:s,rootStyle:c,open:e.open,onClose:o,onHandleClick:a,inline:!0}),r);let f=!!r.handler||l;return(f||e.open||i.value)&&(d=W(Eb,{autoLock:!0,visible:e.open,forceRender:f,getContainer:t,wrapperClassName:n},{default:t=>{var{visible:n,afterClose:l}=t,d=CK(t,[`visible`,`afterClose`]);return W(SK,h(h(h({ref:i},u),d),{},{rootClassName:s,rootStyle:c,open:n===void 0?e.open:n,afterVisibleChange:l===void 0?e.afterVisibleChange:l,onClose:o,onHandleClick:a}),r)}})),d}}}),TK=e=>{let{componentCls:t,motionDurationSlow:n}=e,r={"&-enter, &-appear, &-leave":{"&-start":{transition:`none`},"&-active":{transition:`all ${n}`}}};return{[t]:{[`${t}-mask-motion`]:{"&-enter, &-appear, &-leave":{"&-active":{transition:`all ${n}`}},"&-enter, &-appear":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}}},[`${t}-panel-motion`]:{"&-left":[r,{"&-enter, &-appear":{"&-start":{transform:`translateX(-100%) !important`},"&-active":{transform:`translateX(0)`}},"&-leave":{transform:`translateX(0)`,"&-active":{transform:`translateX(-100%)`}}}],"&-right":[r,{"&-enter, &-appear":{"&-start":{transform:`translateX(100%) !important`},"&-active":{transform:`translateX(0)`}},"&-leave":{transform:`translateX(0)`,"&-active":{transform:`translateX(100%)`}}}],"&-top":[r,{"&-enter, &-appear":{"&-start":{transform:`translateY(-100%) !important`},"&-active":{transform:`translateY(0)`}},"&-leave":{transform:`translateY(0)`,"&-active":{transform:`translateY(-100%)`}}}],"&-bottom":[r,{"&-enter, &-appear":{"&-start":{transform:`translateY(100%) !important`},"&-active":{transform:`translateY(0)`}},"&-leave":{transform:`translateY(0)`,"&-active":{transform:`translateY(100%)`}}}]}}}},EK=e=>{let{componentCls:t,zIndexPopup:n,colorBgMask:r,colorBgElevated:i,motionDurationSlow:a,motionDurationMid:o,padding:s,paddingLG:c,fontSizeLG:l,lineHeightLG:u,lineWidth:d,lineType:f,colorSplit:p,marginSM:m,colorIcon:h,colorIconHover:g,colorText:_,fontWeightStrong:v,drawerFooterPaddingVertical:y,drawerFooterPaddingHorizontal:b}=e,x=`${t}-content-wrapper`;return{[t]:{position:`fixed`,inset:0,zIndex:n,pointerEvents:`none`,"&-pure":{position:`relative`,background:i,[`&${t}-left`]:{boxShadow:e.boxShadowDrawerLeft},[`&${t}-right`]:{boxShadow:e.boxShadowDrawerRight},[`&${t}-top`]:{boxShadow:e.boxShadowDrawerUp},[`&${t}-bottom`]:{boxShadow:e.boxShadowDrawerDown}},"&-inline":{position:`absolute`},[`${t}-mask`]:{position:`absolute`,inset:0,zIndex:n,background:r,pointerEvents:`auto`},[x]:{position:`absolute`,zIndex:n,transition:`all ${a}`,"&-hidden":{display:`none`}},[`&-left > ${x}`]:{top:0,bottom:0,left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowDrawerLeft},[`&-right > ${x}`]:{top:0,right:{_skip_check_:!0,value:0},bottom:0,boxShadow:e.boxShadowDrawerRight},[`&-top > ${x}`]:{top:0,insetInline:0,boxShadow:e.boxShadowDrawerUp},[`&-bottom > ${x}`]:{bottom:0,insetInline:0,boxShadow:e.boxShadowDrawerDown},[`${t}-content`]:{width:`100%`,height:`100%`,overflow:`auto`,background:i,pointerEvents:`auto`},[`${t}-wrapper-body`]:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`},[`${t}-header`]:{display:`flex`,flex:0,alignItems:`center`,padding:`${s}px ${c}px`,fontSize:l,lineHeight:u,borderBottom:`${d}px ${f} ${p}`,"&-title":{display:`flex`,flex:1,alignItems:`center`,minWidth:0,minHeight:0}},[`${t}-extra`]:{flex:`none`},[`${t}-close`]:{display:`inline-block`,marginInlineEnd:m,color:h,fontWeight:v,fontSize:l,fontStyle:`normal`,lineHeight:1,textAlign:`center`,textTransform:`none`,textDecoration:`none`,background:`transparent`,border:0,outline:0,cursor:`pointer`,transition:`color ${o}`,textRendering:`auto`,"&:focus, &:hover":{color:g,textDecoration:`none`}},[`${t}-title`]:{flex:1,margin:0,color:_,fontWeight:e.fontWeightStrong,fontSize:l,lineHeight:u},[`${t}-body`]:{flex:1,minWidth:0,minHeight:0,padding:c,overflow:`auto`},[`${t}-footer`]:{flexShrink:0,padding:`${y}px ${b}px`,borderTop:`${d}px ${f} ${p}`},"&-rtl":{direction:`rtl`}}}},DK=Fp(`Drawer`,e=>{let t=Rp(e,{drawerFooterPaddingVertical:e.paddingXS,drawerFooterPaddingHorizontal:e.padding});return[EK(t),TK(t)]},e=>({zIndexPopup:e.zIndexPopupBase})),OK=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.open??e.visible);H(u,()=>{u.value?c.value=!0:l.value=!1},{immediate:!0}),H([u,c],()=>{u.value&&c.value&&(l.value=!0)},{immediate:!0});let d=tr(`parentDrawerOpts`,null),{prefixCls:f,getPopupContainer:p,direction:m}=Z(`drawer`,e),[_,v]=DK(f),y=G(()=>e.getContainer===void 0&&p?.value?()=>p.value(document.body):e.getContainer);wh(!e.afterVisibleChange,`Drawer`,"`afterVisibleChange` prop is deprecated, please use `@afterVisibleChange` event instead"),er(`parentDrawerOpts`,{setPush:()=>{a.value=!0},setPull:()=>{a.value=!1,zn(()=>{b()})}}),$r(()=>{u.value&&d&&d.setPush()}),ri(()=>{d&&d.setPull()}),H(l,()=>{d&&(l.value?d.setPush():d.setPull())},{flush:`post`});let b=()=>{var e,t;(t=(e=s.value)?.domFocus)==null||t.call(e)},x=e=>{n(`update:visible`,!1),n(`update:open`,!1),n(`close`,e)},S=t=>{var r;t||(o.value===!1&&(o.value=!0),e.destroyOnClose&&(c.value=!1)),(r=e.afterVisibleChange)==null||r.call(e,t),n(`afterVisibleChange`,t),n(`afterOpenChange`,t)},C=G(()=>{let{push:t,placement:n}=e,r;return r=typeof t==`boolean`?t?AK.distance:0:t.distance,r=parseFloat(String(r||0)),n===`left`||n===`right`?`translateX(${n===`left`?r:-r}px)`:n===`top`||n===`bottom`?`translateY(${n===`top`?r:-r}px)`:null}),w=G(()=>e.width??(e.size===`large`?736:378)),T=G(()=>e.height??(e.size===`large`?736:378)),E=G(()=>{let{mask:t,placement:n}=e;if(!l.value&&!t)return{};let r={};return n===`left`||n===`right`?r.width=$A(w.value)?`${w.value}px`:w.value:r.height=$A(T.value)?`${T.value}px`:T.value,r}),D=G(()=>{let{zIndex:t,contentWrapperStyle:n}=e,r=E.value;return[{zIndex:t,transform:a.value?C.value:void 0},g({},n),r]}),O=t=>{let{closable:n,headerStyle:i}=e,a=ol(r,e,`extra`),o=ol(r,e,`title`);return!o&&!n?null:W(`div`,{class:K(`${t}-header`,{[`${t}-header-close-only`]:n&&!o&&!a}),style:i},[W(`div`,{class:`${t}-header-title`},[k(t),o&&W(`div`,{class:`${t}-title`},[o])]),a&&W(`div`,{class:`${t}-extra`},[a])])},k=t=>{let{closable:n}=e,i=r.closeIcon?r.closeIcon?.call(r):e.closeIcon;return n&&W(`button`,{key:`closer`,onClick:x,"aria-label":`Close`,class:`${t}-close`},[i===void 0?W(UC,null,null):i])},A=t=>{if(o.value&&!e.forceRender&&!c.value)return null;let{bodyStyle:n,drawerStyle:i}=e;return W(`div`,{class:`${t}-wrapper-body`,style:i},[O(t),W(`div`,{key:`body`,class:`${t}-body`,style:n},[r.default?.call(r)]),j(t)])},j=t=>{let n=ol(r,e,`footer`);return n?W(`div`,{class:`${t}-footer`,style:e.footerStyle},[n]):null},M=G(()=>K({"no-mask":!e.mask,[`${f.value}-rtl`]:m.value===`rtl`},e.rootClassName,v.value)),N=G(()=>nb(ib(f.value,`mask-motion`))),P=e=>nb(ib(f.value,`panel-motion-${e}`));return()=>{let{width:t,height:n,placement:a,mask:o,forceRender:c}=e,u=OK(e,[`width`,`height`,`placement`,`mask`,`forceRender`]),d=g(g(g({},i),sm(u,[`size`,`closeIcon`,`closable`,`destroyOnClose`,`drawerStyle`,`headerStyle`,`bodyStyle`,`title`,`push`,`onAfterVisibleChange`,`onClose`,`onUpdate:visible`,`onUpdate:open`,`visible`])),{forceRender:c,onClose:x,afterVisibleChange:S,handler:!1,prefixCls:f.value,open:l.value,showMask:o,placement:a,ref:s});return _(W(AO,null,{default:()=>[W(wK,h(h({},d),{},{maskMotion:N.value,motion:P,width:w.value,height:T.value,getContainer:y.value,rootClassName:M.value,rootStyle:e.rootStyle,contentWrapperStyle:D.value}),{handler:e.handle?()=>e.handle:r.handle,default:()=>A(f.value)})]}))}}})),MK={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z`}}]},name:`file-text`,theme:`outlined`};function NK(e){for(var t=1;t({prefixCls:String,description:Q.any,type:X(`default`),shape:X(`circle`),tooltip:Q.any,href:String,target:String,badge:q(),onClick:Y()}),LK=()=>({prefixCls:X()}),RK=()=>g(g({},IK()),{trigger:X(),open:J(),onOpenChange:Y(),"onUpdate:open":Y()}),zK=()=>g(g({},IK()),{prefixCls:String,duration:Number,target:Y(),visibilityHeight:Number,onClick:Y()}),BK=U({compatConfig:{MODE:3},name:`AFloatButtonContent`,inheritAttrs:!1,props:LK(),setup(e,t){let{attrs:n,slots:r}=t;return()=>{let{prefixCls:t}=e,i=rl(r.description?.call(r));return W(`div`,h(h({},n),{},{class:[n.class,`${t}-content`]}),[r.icon||i.length?W(Ma,null,[r.icon&&W(`div`,{class:`${t}-icon`},[r.icon()]),i.length?W(`div`,{class:`${t}-description`},[i]):null]):W(`div`,{class:`${t}-icon`},[W(FK,null,null)])])}}}),VK=Symbol(`floatButtonGroupContext`),HK=e=>(er(VK,e),e),UK=()=>tr(VK,{shape:B()}),WK=e=>e===0?0:e-Math.sqrt(e**2/2),GK=e=>{let{componentCls:t,floatButtonSize:n,motionDurationSlow:r,motionEaseInOutCirc:i}=e,a=`${t}-group`,o=new ef(`antFloatButtonMoveDownIn`,{"0%":{transform:`translate3d(0, ${n}px, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),s=new ef(`antFloatButtonMoveDownOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(0, ${n}px, 0)`,transformOrigin:`0 0`,opacity:0}});return[{[`${a}-wrap`]:g({},IO(`${a}-wrap`,o,s,r,!0))},{[`${a}-wrap`]:{[` + &${a}-wrap-enter, + &${a}-wrap-appear + `]:{opacity:0,animationTimingFunction:i},[`&${a}-wrap-leave`]:{animationTimingFunction:i}}}]},KK=e=>{let{antCls:t,componentCls:n,floatButtonSize:r,margin:i,borderRadiusLG:a,borderRadiusSM:o,badgeOffset:s,floatButtonBodyPadding:c}=e,l=`${n}-group`;return{[l]:g(g({},Op(e)),{zIndex:99,display:`block`,border:`none`,position:`fixed`,width:r,height:`auto`,boxShadow:`none`,minHeight:r,insetInlineEnd:e.floatButtonInsetInlineEnd,insetBlockEnd:e.floatButtonInsetBlockEnd,borderRadius:a,[`${l}-wrap`]:{zIndex:-1,display:`block`,position:`relative`,marginBottom:i},[`&${l}-rtl`]:{direction:`rtl`},[n]:{position:`static`}}),[`${l}-circle`]:{[`${n}-circle:not(:last-child)`]:{marginBottom:e.margin,[`${n}-body`]:{width:r,height:r,borderRadius:`50%`}}},[`${l}-square`]:{[`${n}-square`]:{borderRadius:0,padding:0,"&:first-child":{borderStartStartRadius:a,borderStartEndRadius:a},"&:last-child":{borderEndStartRadius:a,borderEndEndRadius:a},"&:not(:last-child)":{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-badge`]:{[`${t}-badge-count`]:{top:-(c+s),insetInlineEnd:-(c+s)}}},[`${l}-wrap`]:{display:`block`,borderRadius:a,boxShadow:e.boxShadowSecondary,[`${n}-square`]:{boxShadow:`none`,marginTop:0,borderRadius:0,padding:c,"&:first-child":{borderStartStartRadius:a,borderStartEndRadius:a},"&:last-child":{borderEndStartRadius:a,borderEndEndRadius:a},"&:not(:last-child)":{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${n}-body`]:{width:e.floatButtonBodySize,height:e.floatButtonBodySize}}}},[`${l}-circle-shadow`]:{boxShadow:`none`},[`${l}-square-shadow`]:{boxShadow:e.boxShadowSecondary,[`${n}-square`]:{boxShadow:`none`,padding:c,[`${n}-body`]:{width:e.floatButtonBodySize,height:e.floatButtonBodySize,borderRadius:o}}}}},qK=e=>{let{antCls:t,componentCls:n,floatButtonBodyPadding:r,floatButtonIconSize:i,floatButtonSize:a,borderRadiusLG:o,badgeOffset:s,dotOffsetInSquare:c,dotOffsetInCircle:l}=e;return{[n]:g(g({},Op(e)),{border:`none`,position:`fixed`,cursor:`pointer`,zIndex:99,display:`block`,justifyContent:`center`,alignItems:`center`,width:a,height:a,insetInlineEnd:e.floatButtonInsetInlineEnd,insetBlockEnd:e.floatButtonInsetBlockEnd,boxShadow:e.boxShadowSecondary,"&-pure":{position:`relative`,inset:`auto`},"&:empty":{display:`none`},[`${t}-badge`]:{width:`100%`,height:`100%`,[`${t}-badge-count`]:{transform:`translate(0, 0)`,transformOrigin:`center`,top:-s,insetInlineEnd:-s}},[`${n}-body`]:{width:`100%`,height:`100%`,display:`flex`,justifyContent:`center`,alignItems:`center`,transition:`all ${e.motionDurationMid}`,[`${n}-content`]:{overflow:`hidden`,textAlign:`center`,minHeight:a,display:`flex`,flexDirection:`column`,justifyContent:`center`,alignItems:`center`,padding:`${r/2}px ${r}px`,[`${n}-icon`]:{textAlign:`center`,margin:`auto`,width:i,fontSize:i,lineHeight:1}}}}),[`${n}-rtl`]:{direction:`rtl`},[`${n}-circle`]:{height:a,borderRadius:`50%`,[`${t}-badge`]:{[`${t}-badge-dot`]:{top:l,insetInlineEnd:l}},[`${n}-body`]:{borderRadius:`50%`}},[`${n}-square`]:{height:`auto`,minHeight:a,borderRadius:o,[`${t}-badge`]:{[`${t}-badge-dot`]:{top:c,insetInlineEnd:c}},[`${n}-body`]:{height:`auto`,borderRadius:o}},[`${n}-default`]:{backgroundColor:e.floatButtonBackgroundColor,transition:`background-color ${e.motionDurationMid}`,[`${n}-body`]:{backgroundColor:e.floatButtonBackgroundColor,transition:`background-color ${e.motionDurationMid}`,"&:hover":{backgroundColor:e.colorFillContent},[`${n}-content`]:{[`${n}-icon`]:{color:e.colorText},[`${n}-description`]:{display:`flex`,alignItems:`center`,lineHeight:`${e.fontSizeLG}px`,color:e.colorText,fontSize:e.fontSizeSM}}}},[`${n}-primary`]:{backgroundColor:e.colorPrimary,[`${n}-body`]:{backgroundColor:e.colorPrimary,transition:`background-color ${e.motionDurationMid}`,"&:hover":{backgroundColor:e.colorPrimaryHover},[`${n}-content`]:{[`${n}-icon`]:{color:e.colorTextLightSolid},[`${n}-description`]:{display:`flex`,alignItems:`center`,lineHeight:`${e.fontSizeLG}px`,color:e.colorTextLightSolid,fontSize:e.fontSizeSM}}}}}},JK=Fp(`FloatButton`,e=>{let{colorTextLightSolid:t,colorBgElevated:n,controlHeightLG:r,marginXXL:i,marginLG:a,fontSize:o,fontSizeIcon:s,controlItemBgHover:c,paddingXXS:l,borderRadiusLG:u}=e,d=Rp(e,{floatButtonBackgroundColor:n,floatButtonColor:t,floatButtonHoverBackgroundColor:c,floatButtonFontSize:o,floatButtonIconSize:s*1.5,floatButtonSize:r,floatButtonInsetBlockEnd:i,floatButtonInsetInlineEnd:a,floatButtonBodySize:r-l*2,floatButtonBodyPadding:l,badgeOffset:l*1.5,dotOffsetInCircle:WK(r/2),dotOffsetInSquare:WK(u)});return[KK(d),qK(d),zO(e),GK(d)]}),YK=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ic?.value||e.shape);return()=>{let{prefixCls:t,type:c=`default`,shape:d=`circle`,description:f=r.description?.call(r),tooltip:p,badge:m={}}=e,g=YK(e,[`prefixCls`,`type`,`shape`,`description`,`tooltip`,`badge`]),_=K(i.value,`${i.value}-${c}`,`${i.value}-${u.value}`,{[`${i.value}-rtl`]:a.value===`rtl`},n.class,s.value),v=W(KA,{placement:`left`},{title:r.tooltip||p?()=>r.tooltip&&r.tooltip()||p:void 0,default:()=>W(tj,m,{default:()=>[W(`div`,{class:`${i.value}-body`},[W(BK,{prefixCls:i.value},{icon:r.icon,description:()=>f})])]})});return o(e.href?W(`a`,h(h(h({ref:l},n),g),{},{class:_}),[v]):W(`button`,h(h(h({ref:l},n),g),{},{class:_,type:`button`}),[v]))}}}),QK=U({compatConfig:{MODE:3},name:`AFloatButtonGroup`,inheritAttrs:!1,props:Bc(RK(),{type:`default`,shape:`circle`}),setup(e,t){let{attrs:n,slots:r,emit:i}=t,{prefixCls:a,direction:o}=Z(XK,e),[s,c]=JK(a),[l,u]=gS(!1,{value:G(()=>e.open)}),d=B(null),f=B(null);HK({shape:G(()=>e.shape)});let p={onMouseenter(){var t;u(!0),i(`update:open`,!0),(t=e.onOpenChange)==null||t.call(e,!0)},onMouseleave(){var t;u(!1),i(`update:open`,!1),(t=e.onOpenChange)==null||t.call(e,!1)}},m=G(()=>e.trigger===`hover`?p:{}),g=()=>{var t;let n=!l.value;i(`update:open`,n),(t=e.onOpenChange)==null||t.call(e,n),u(n)},_=t=>{var n;d.value?.contains(t.target)?qc(f.value)?.contains(t.target)&&g():(u(!1),i(`update:open`,!1),(n=e.onOpenChange)==null||n.call(e,!1))};return H(G(()=>e.trigger),e=>{hu()&&(document.removeEventListener(`click`,_),e===`click`&&document.addEventListener(`click`,_))},{immediate:!0}),ni(()=>{document.removeEventListener(`click`,_)}),()=>{let{shape:t=`circle`,type:i=`default`,tooltip:u,description:p,trigger:g}=e,_=`${a.value}-group`,v=K(_,c.value,n.class,{[`${_}-rtl`]:o.value===`rtl`,[`${_}-${t}`]:t,[`${_}-${t}-shadow`]:!g}),y=K(c.value,`${_}-wrap`),b=nb(`${_}-wrap`);return s(W(`div`,h(h({ref:d},n),{},{class:v},m.value),[g&&[`click`,`hover`].includes(g)?W(Ma,null,[W(Uo,b,{default:()=>[Qn(W(`div`,{class:y},[r.default&&r.default()]),[[ss,l.value]])]}),W(ZK,{ref:f,type:i,shape:t,tooltip:u,description:p},{icon:()=>l.value?r.closeIcon?.call(r)||W(UC,null,null):r.icon?.call(r)||W(FK,null,null),tooltip:r.tooltip,description:r.description})]):r.default?.call(r)]))}}}),$K={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z`}}]},name:`vertical-align-top`,theme:`outlined`};function eq(e){for(var t=1;twindow,duration:450,type:`default`,shape:`circle`}),setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a,direction:o}=Z(XK,e),[s]=JK(a),c=B(),l=Yt({visible:e.visibilityHeight===0,scrollEvent:null}),u=()=>c.value&&c.value.ownerDocument?c.value.ownerDocument:window,d=t=>{let{target:n=u,duration:r}=e;Tm(0,{getContainer:n,duration:r}),i(`click`,t)},f=ml(t=>{let{visibilityHeight:n}=e,r=wm(t.target,!0);l.visible=r>=n}),p=()=>{let{target:t}=e,n=(t||u)();f({target:n}),n?.addEventListener(`scroll`,f)},m=()=>{let{target:t}=e,n=(t||u)();f.cancel(),n?.removeEventListener(`scroll`,f)};H(()=>e.target,()=>{m(),zn(()=>{p()})}),$r(()=>{zn(()=>{p()})}),Kr(()=>{zn(()=>{p()})}),qr(()=>{m()}),ni(()=>{m()});let _=UK();return()=>{let{description:t,type:i,shape:u,tooltip:f,badge:p}=e,m=g(g({},r),{shape:_?.shape.value||u,onClick:d,class:{[`${a.value}`]:!0,[`${r.class}`]:r.class,[`${a.value}-rtl`]:o.value===`rtl`},description:t,type:i,tooltip:f,badge:p}),v=nb(`fade`);return s(W(Uo,v,{default:()=>[Qn(W(ZK,h(h({},m),{},{ref:c}),{icon:()=>n.icon?.call(n)||W(nq,null,null)}),[[ss,l.visible]])]}))}}});ZK.Group=QK,ZK.BackTop=rq,ZK.install=function(e){return e.component(ZK.name,ZK),e.component(QK.name,QK),e.component(rq.name,rq),e};var iq=ZK,aq=e=>e!=null&&(!Array.isArray(e)||rl(e).length);function oq(e){return aq(e.prefix)||aq(e.suffix)||aq(e.allowClear)}function sq(e){return aq(e.addonBefore)||aq(e.addonAfter)}function cq(e){return e==null?``:String(e)}function lq(e,t,n,r){if(!n)return;let i=t;if(t.type===`click`){Object.defineProperty(i,"target",{writable:!0}),Object.defineProperty(i,"currentTarget",{writable:!0});let t=e.cloneNode(!0);i.target=t,i.currentTarget=t,t.value=``,n(i)}else r===void 0||(Object.defineProperty(i,"target",{writable:!0}),Object.defineProperty(i,"currentTarget",{writable:!0}),i.target=e,i.currentTarget=e,e.value=r),n(i)}function uq(e,t){if(!e)return;e.focus(t);let{cursor:n}=t||{};if(n){let t=e.value.length;switch(n){case`start`:e.setSelectionRange(0,0);break;case`end`:e.setSelectionRange(t,t);break;default:e.setSelectionRange(0,t)}}}var dq=()=>({addonBefore:Q.any,addonAfter:Q.any,prefix:Q.any,suffix:Q.any,clearIcon:Q.any,affixWrapperClassName:String,groupClassName:String,wrapperClassName:String,inputClassName:String,allowClear:{type:Boolean,default:void 0}}),fq=()=>g(g({},dq()),{value:{type:[String,Number,Symbol],default:void 0},defaultValue:{type:[String,Number,Symbol],default:void 0},inputElement:Q.any,prefixCls:String,disabled:{type:Boolean,default:void 0},focused:{type:Boolean,default:void 0},triggerFocus:Function,readonly:{type:Boolean,default:void 0},handleReset:Function,hidden:{type:Boolean,default:void 0}}),pq=()=>g(g({},fq()),{id:String,placeholder:{type:[String,Number]},autocomplete:String,type:X(`text`),name:String,size:{type:String},autofocus:{type:Boolean,default:void 0},lazy:{type:Boolean,default:!0},maxlength:Number,loading:{type:Boolean,default:void 0},bordered:{type:Boolean,default:void 0},showCount:{type:[Boolean,Object]},htmlSize:Number,onPressEnter:Function,onKeydown:Function,onKeyup:Function,onFocus:Function,onBlur:Function,onChange:Function,onInput:Function,"onUpdate:value":Function,onCompositionstart:Function,onCompositionend:Function,valueModifiers:Object,hidden:{type:Boolean,default:void 0},status:String}),mq=U({name:`BaseInput`,inheritAttrs:!1,props:fq(),setup(e,t){let{slots:n,attrs:r}=t,i=B(),a=t=>{if(i.value?.contains(t.target)){let{triggerFocus:t}=e;t?.()}},o=()=>{let{allowClear:t,value:r,disabled:i,readonly:a,handleReset:o,suffix:s=n.suffix,prefixCls:c}=e;if(!t)return null;let l=!i&&!a&&r,u=`${c}-clear-icon`,d=n.clearIcon?.call(n)||`*`;return W(`span`,{onClick:o,onMousedown:e=>e.preventDefault(),class:K({[`${u}-hidden`]:!l,[`${u}-has-suffix`]:!!s},u),role:`button`,tabindex:-1},[d])};return()=>{let{focused:t,value:s,disabled:c,allowClear:l,readonly:u,hidden:d,prefixCls:f,prefix:p=n.prefix?.call(n),suffix:m=n.suffix?.call(n),addonAfter:h=n.addonAfter,addonBefore:g=n.addonBefore,inputElement:_,affixWrapperClassName:v,wrapperClassName:y,groupClassName:b}=e,x=s_(_,{value:s,hidden:d});if(oq({prefix:p,suffix:m,allowClear:l})){let e=`${f}-affix-wrapper`,n=K(e,{[`${e}-disabled`]:c,[`${e}-focused`]:t,[`${e}-readonly`]:u,[`${e}-input-with-clear-btn`]:m&&l&&s},!sq({addonAfter:h,addonBefore:g})&&r.class,v),y=(m||l)&&W(`span`,{class:`${f}-suffix`},[o(),m]);x=W(`span`,{class:n,style:r.style,hidden:!sq({addonAfter:h,addonBefore:g})&&d,onMousedown:a,ref:i},[p&&W(`span`,{class:`${f}-prefix`},[p]),s_(_,{style:null,value:s,hidden:null}),y])}if(sq({addonAfter:h,addonBefore:g})){let e=`${f}-group`,t=`${e}-addon`,n=K(`${f}-wrapper`,e,y);return W(`span`,{class:K(`${f}-group-wrapper`,r.class,b),style:r.style,hidden:d},[W(`span`,{class:n},[g&&W(`span`,{class:t},[g]),s_(x,{style:null,hidden:null}),h&&W(`span`,{class:t},[h])])])}return x}}}),hq=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.value,()=>{o.value=e.value}),H(()=>e.disabled,()=>{e.disabled&&(s.value=!1)});let u=e=>{c.value&&uq(c.value.input,e)};i({focus:u,blur:()=>{var e;(e=c.value.input)==null||e.blur()},input:G(()=>c.value.input?.input),stateValue:o,setSelectionRange:(e,t,n)=>{var r;(r=c.value.input)==null||r.setSelectionRange(e,t,n)},select:()=>{var e;(e=c.value.input)==null||e.select()}});let d=e=>{a(`change`,e)},f=(t,n)=>{o.value!==t&&(e.value===void 0?o.value=t:zn(()=>{var e;c.value.input.value!==o.value&&((e=l.value)==null||e.$forceUpdate())}),zn(()=>{n&&n()}))},p=e=>{let{value:t}=e.target;if(o.value===t)return;let n=e.target.value;lq(c.value.input,e,d),f(n)},m=e=>{e.keyCode===13&&a(`pressEnter`,e),a(`keydown`,e)},_=e=>{s.value=!0,a(`focus`,e)},v=e=>{s.value=!1,a(`blur`,e)},y=e=>{lq(c.value.input,e,d),f(``,()=>{u()})},b=()=>{let{addonBefore:t=n.addonBefore,addonAfter:i=n.addonAfter,disabled:a,valueModifiers:o={},htmlSize:s,autocomplete:l,prefixCls:u,inputClassName:d,prefix:f=n.prefix?.call(n),suffix:h=n.suffix?.call(n),allowClear:y,type:b=`text`}=e,x=sm(e,[`prefixCls`,`onPressEnter`,`addonBefore`,`addonAfter`,`prefix`,`suffix`,`allowClear`,`defaultValue`,`size`,`bordered`,`htmlSize`,`lazy`,`showCount`,`valueModifiers`,`showCount`,`affixWrapperClassName`,`groupClassName`,`inputClassName`,`wrapperClassName`]),S=g(g(g({},x),r),{autocomplete:l,onChange:p,onInput:p,onFocus:_,onBlur:v,onKeydown:m,class:K(u,{[`${u}-disabled`]:a},d,!sq({addonAfter:i,addonBefore:t})&&!oq({prefix:f,suffix:h,allowClear:y})&&r.class),ref:c,key:`ant-input`,size:s,type:b,lazy:e.lazy});return o.lazy&&delete S.onInput,S.autofocus||delete S.autofocus,W(Bb,sm(S,[`size`]),null)},x=()=>{let{maxlength:t,suffix:r=n.suffix?.call(n),showCount:i,prefixCls:a}=e,s=Number(t)>0;if(r||i){let e=[...cq(o.value)].length,n=typeof i==`object`?i.formatter({count:e,maxlength:t}):`${e}${s?` / ${t}`:``}`;return W(Ma,null,[!!i&&W(`span`,{class:K(`${a}-show-count-suffix`,{[`${a}-show-count-has-suffix`]:!!r})},[n]),r])}return null};return $r(()=>{}),()=>{let{prefixCls:t,disabled:i}=e;return W(mq,h(h(h({},hq(e,[`prefixCls`,`disabled`])),r),{},{ref:l,prefixCls:t,inputElement:b(),handleReset:y,value:cq(o.value),focused:s.value,triggerFocus:u,suffix:x(),disabled:i}),n)}}}),_q=()=>sm(pq(),[`wrapperClassName`,`groupClassName`,`inputClassName`,`affixWrapperClassName`]),vq=()=>g(g({},sm(_q(),[`prefix`,`addonBefore`,`addonAfter`,`suffix`])),{rows:Number,autosize:{type:[Boolean,Object],default:void 0},autoSize:{type:[Boolean,Object],default:void 0},onResize:{type:Function},onCompositionstart:vl(),onCompositionend:vl(),valueModifiers:Object}),yq=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);iuw(c.status,e.status)),{direction:u,prefixCls:d,size:f,autocomplete:p}=Z(`input`,e),{compactSize:m,compactItemClassnames:_}=kO(d,u),v=G(()=>m.value||f.value),[y,b]=VF(d),x=Ul();i({focus:e=>{var t;(t=o.value)==null||t.focus(e)},blur:()=>{var e;(e=o.value)==null||e.blur()},input:o,setSelectionRange:(e,t,n)=>{var r;(r=o.value)==null||r.setSelectionRange(e,t,n)},select:()=>{var e;(e=o.value)==null||e.select()}});let S=B([]),C=()=>{S.value.push(setTimeout(()=>{var e;o.value?.input&&o.value?.input.getAttribute(`type`)===`password`&&o.value?.input.hasAttribute(`value`)&&((e=o.value)==null||e.input.removeAttribute(`value`))}))};$r(()=>{C()}),ei(()=>{S.value.forEach(e=>clearTimeout(e))}),ni(()=>{S.value.forEach(e=>clearTimeout(e))});let w=e=>{C(),a(`blur`,e),s.onFieldBlur()},T=e=>{C(),a(`focus`,e)},E=e=>{a(`update:value`,e.target.value),a(`change`,e),a(`input`,e),s.onFieldChange()};return()=>{let{hasFeedback:t,feedbackIcon:i}=c,{allowClear:a,bordered:f=!0,prefix:m=n.prefix?.call(n),suffix:S=n.suffix?.call(n),addonAfter:C=n.addonAfter?.call(n),addonBefore:D=n.addonBefore?.call(n),id:O=s.id?.value}=e,k=yq(e,[`allowClear`,`bordered`,`prefix`,`suffix`,`addonAfter`,`addonBefore`,`id`]),A=(t||S)&&W(Ma,null,[S,t&&i]),j=d.value,M=oq({prefix:m,suffix:S})||!!t,N=n.clearIcon||(()=>W(qC,null,null));return y(W(gq,h(h(h({},r),sm(k,[`onUpdate:value`,`onChange`,`onInput`])),{},{onChange:E,id:O,disabled:e.disabled??x.value,ref:o,prefixCls:j,autocomplete:p.value,onBlur:w,onFocus:T,prefix:m,suffix:A,allowClear:a,addonAfter:C&&W(AO,null,{default:()=>[W(cw,null,{default:()=>[C]})]}),addonBefore:D&&W(AO,null,{default:()=>[W(cw,null,{default:()=>[D]})]}),class:[r.class,_.value],inputClassName:K({[`${j}-sm`]:v.value===`small`,[`${j}-lg`]:v.value===`large`,[`${j}-rtl`]:u.value===`rtl`,[`${j}-borderless`]:!f},!M&&lw(j,l.value),b.value),affixWrapperClassName:K({[`${j}-affix-wrapper-sm`]:v.value===`small`,[`${j}-affix-wrapper-lg`]:v.value===`large`,[`${j}-affix-wrapper-rtl`]:u.value===`rtl`,[`${j}-affix-wrapper-borderless`]:!f},lw(`${j}-affix-wrapper`,l.value,t),b.value),wrapperClassName:K({[`${j}-group-rtl`]:u.value===`rtl`},b.value),groupClassName:K({[`${j}-group-wrapper-sm`]:v.value===`small`,[`${j}-group-wrapper-lg`]:v.value===`large`,[`${j}-group-wrapper-rtl`]:u.value===`rtl`},lw(`${j}-group-wrapper`,l.value,t),b.value)}),g(g({},n),{clearIcon:N})))}}}),xq=U({compatConfig:{MODE:3},name:`AInputGroup`,inheritAttrs:!1,props:{prefixCls:String,size:{type:String},compact:{type:Boolean,default:void 0}},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a,getPrefixCls:o}=Z(`input-group`,e),s=sw.useInject();sw.useProvide(s,{isFormItemInput:!1});let[c,l]=VF(G(()=>o(`input`))),u=G(()=>{let t=i.value;return{[`${t}`]:!0,[l.value]:!0,[`${t}-lg`]:e.size===`large`,[`${t}-sm`]:e.size===`small`,[`${t}-compact`]:e.compact,[`${t}-rtl`]:a.value===`rtl`}});return()=>c(W(`span`,h(h({},r),{},{class:K(u.value,r.class)}),[n.default?.call(n)]))}}),Sq=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{var e;(e=o.value)==null||e.focus()},blur:()=>{var e;(e=o.value)==null||e.blur()}});let c=e=>{a(`update:value`,e.target.value),e&&e.target&&e.type===`click`&&a(`search`,e.target.value,e),a(`change`,e)},l=e=>{document.activeElement===o.value?.input&&e.preventDefault()},u=e=>{a(`search`,o.value?.input?.stateValue,e)},d=t=>{s.value||e.loading||u(t)},f=e=>{s.value=!0,a(`compositionstart`,e)},p=e=>{s.value=!1,a(`compositionend`,e)},{prefixCls:m,getPrefixCls:_,direction:v,size:y}=Z(`input-search`,e),b=G(()=>_(`input`,e.inputPrefixCls));return()=>{let{disabled:t,loading:i,addonAfter:a=n.addonAfter?.call(n),suffix:s=n.suffix?.call(n)}=e,_=Sq(e,[`disabled`,`loading`,`addonAfter`,`suffix`]),{enterButton:x=n.enterButton?.call(n)??!1}=e;x||=x===``;let S=typeof x==`boolean`?W(ZC,null,null):null,C=`${m.value}-button`,w=Array.isArray(x)?x[0]:x,T,E=w.type&&zT(w.type)&&w.type.__ANT_BUTTON;if(E||w.tagName===`button`)T=s_(w,g({onMousedown:l,onClick:u,key:`enterButton`},E?{class:C,size:y.value}:{}),!1);else{let e=S&&!x;T=W(Oj,{class:C,type:x?`primary`:void 0,size:y.value,disabled:t,key:`enterButton`,onMousedown:l,onClick:u,loading:i,icon:e?S:null},{default:()=>[e?null:S||x]})}a&&(T=[T,a]);let D=K(m.value,{[`${m.value}-rtl`]:v.value===`rtl`,[`${m.value}-${y.value}`]:!!y.value,[`${m.value}-with-button`]:!!x},r.class);return W(bq,h(h(h({ref:o},sm(_,[`onUpdate:value`,`onSearch`,`enterButton`])),r),{},{onPressEnter:d,onCompositionstart:f,onCompositionend:p,size:y.value,prefixCls:b.value,addonAfter:T,suffix:s,onChange:c,class:D,disabled:t}),n)}}}),wq=e=>e!=null&&(!Array.isArray(e)||rl(e).length);function Tq(e){return wq(e.addonBefore)||wq(e.addonAfter)}var Eq=[`text`,`input`],Dq=U({compatConfig:{MODE:3},name:`ClearableLabeledInput`,inheritAttrs:!1,props:{prefixCls:String,inputType:Q.oneOf(hl(`text`,`input`)),value:yl(),defaultValue:yl(),allowClear:{type:Boolean,default:void 0},element:yl(),handleReset:Function,disabled:{type:Boolean,default:void 0},direction:{type:String},size:{type:String},suffix:yl(),prefix:yl(),addonBefore:yl(),addonAfter:yl(),readonly:{type:Boolean,default:void 0},focused:{type:Boolean,default:void 0},bordered:{type:Boolean,default:!0},triggerFocus:{type:Function},hidden:Boolean,status:String,hashId:String},setup(e,t){let{slots:n,attrs:r}=t,i=sw.useInject(),a=t=>{let{value:r,disabled:i,readonly:a,handleReset:o,suffix:s=n.suffix}=e,c=!i&&!a&&r,l=`${t}-clear-icon`;return W(qC,{onClick:o,onMousedown:e=>e.preventDefault(),class:K({[`${l}-hidden`]:!c,[`${l}-has-suffix`]:!!s},l),role:`button`},null)},o=(t,o)=>{let{value:s,allowClear:c,direction:l,bordered:u,hidden:d,status:f,addonAfter:p=n.addonAfter,addonBefore:m=n.addonBefore,hashId:h}=e,{status:g,hasFeedback:_}=i;return c?W(`span`,{class:K(`${t}-affix-wrapper`,`${t}-affix-wrapper-textarea-with-clear-btn`,lw(`${t}-affix-wrapper`,uw(g,f),_),{[`${t}-affix-wrapper-rtl`]:l===`rtl`,[`${t}-affix-wrapper-borderless`]:!u,[`${r.class}`]:!Tq({addonAfter:p,addonBefore:m})&&r.class},h),style:r.style,hidden:d},[s_(o,{style:null,value:s,disabled:e.disabled}),a(t)]):s_(o,{value:s,disabled:e.disabled})};return()=>{let{prefixCls:t,inputType:r,element:i=n.element?.call(n)}=e;return r===Eq[0]?o(t,i):null}}}),Oq=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; + pointer-events: none !important; +`,kq=[`letter-spacing`,`line-height`,`padding-top`,`padding-bottom`,`font-family`,`font-weight`,`font-size`,`font-variant`,`text-rendering`,`text-transform`,`width`,`text-indent`,`padding-left`,`padding-right`,`border-width`,`box-sizing`,`word-break`,`white-space`],Aq={},jq;function Mq(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=e.getAttribute(`id`)||e.getAttribute(`data-reactid`)||e.getAttribute(`name`);if(t&&Aq[n])return Aq[n];let r=window.getComputedStyle(e),i=r.getPropertyValue(`box-sizing`)||r.getPropertyValue(`-moz-box-sizing`)||r.getPropertyValue(`-webkit-box-sizing`),a=parseFloat(r.getPropertyValue(`padding-bottom`))+parseFloat(r.getPropertyValue(`padding-top`)),o=parseFloat(r.getPropertyValue(`border-bottom-width`))+parseFloat(r.getPropertyValue(`border-top-width`)),s={sizingStyle:kq.map(e=>`${e}:${r.getPropertyValue(e)}`).join(`;`),paddingSize:a,borderSize:o,boxSizing:i};return t&&n&&(Aq[n]=s),s}function Nq(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;jq||(jq=document.createElement(`textarea`),jq.setAttribute(`tab-index`,`-1`),jq.setAttribute(`aria-hidden`,`true`),document.body.appendChild(jq)),e.getAttribute(`wrap`)?jq.setAttribute(`wrap`,e.getAttribute(`wrap`)):jq.removeAttribute(`wrap`);let{paddingSize:i,borderSize:a,boxSizing:o,sizingStyle:s}=Mq(e,t);jq.setAttribute(`style`,`${s};${Oq}`),jq.value=e.value||e.placeholder||``;let c,l,u,d=jq.scrollHeight;if(o===`border-box`?d+=a:o===`content-box`&&(d-=i),n!==null||r!==null){jq.value=` `;let e=jq.scrollHeight-i;n!==null&&(c=e*n,o===`border-box`&&(c=c+i+a),d=Math.max(c,d)),r!==null&&(l=e*r,o===`border-box`&&(l=l+i+a),u=d>l?``:`hidden`,d=Math.min(l,d))}let f={height:`${d}px`,overflowY:u,resize:`none`};return c&&(f.minHeight=`${c}px`),l&&(f.maxHeight=`${l}px`),f}var Pq=0,Fq=1,Iq=2,Lq=U({compatConfig:{MODE:3},name:`ResizableTextArea`,inheritAttrs:!1,props:vq(),setup(e,t){let{attrs:n,emit:r,expose:i}=t,a,o,s=B(),c=B({}),l=B(Iq);ni(()=>{pl.cancel(a),pl.cancel(o)});let u=()=>{try{if(s.value&&document.activeElement===s.value.input){let e=s.value.getSelectionStart(),t=s.value.getSelectionEnd(),n=s.value.getScrollTop();s.value.setSelectionRange(e,t),s.value.setScrollTop(n)}}catch{}},d=B(),f=B();ar(()=>{let t=e.autoSize||e.autosize;t?(d.value=t.minRows,f.value=t.maxRows):(d.value=void 0,f.value=void 0)});let p=G(()=>!!(e.autoSize||e.autosize)),m=()=>{l.value=Pq};H([()=>e.value,d,f,p],()=>{p.value&&m()},{immediate:!0});let _=B();H([l,s],()=>{if(s.value){if(l.value===Pq)l.value=Fq;else if(l.value===Fq){let e=Nq(s.value.input,!1,d.value,f.value);l.value=Iq,_.value=e}else u()}},{immediate:!0,flush:`post`});let v=fo(),y=B(),b=()=>{pl.cancel(y.value)},x=e=>{l.value===Iq&&(r(`resize`,e),p.value&&(b(),y.value=pl(()=>{m()})))};ni(()=>{b()}),i({resizeTextarea:()=>{m()},textArea:G(()=>s.value?.input),instance:v}),Ru(e.autosize===void 0,`Input.TextArea`,`autosize is deprecated, please use autoSize instead.`);let S=()=>{let{prefixCls:t,disabled:r}=e,i=sm(e,[`prefixCls`,`onPressEnter`,`autoSize`,`autosize`,`defaultValue`,`allowClear`,`type`,`maxlength`,`valueModifiers`]),a=K(t,n.class,{[`${t}-disabled`]:r}),o=p.value?_.value:null,u=[n.style,c.value,o],d=g(g(g({},i),n),{style:u,class:a});return(l.value===Pq||l.value===Fq)&&u.push({overflowX:`hidden`,overflowY:`hidden`}),d.autofocus||delete d.autofocus,d.rows===0&&delete d.rows,W(sl,{onResize:x,disabled:!p.value},{default:()=>[W(Bb,h(h({},d),{},{ref:s,tag:`textarea`}),null)]})};return()=>S()}});function Rq(e,t){return[...e||``].slice(0,t).join(``)}function zq(e,t,n,r){let i=n;return e?i=Rq(n,r):[...t||``].lengthr&&(i=t),i}var Bq=U({compatConfig:{MODE:3},name:`ATextarea`,inheritAttrs:!1,props:vq(),setup(e,t){let{attrs:n,expose:r,emit:i}=t,a=aw(),o=sw.useInject(),s=G(()=>uw(o.status,e.status)),c=V(e.value??e.defaultValue),l=V(),u=V(``),{prefixCls:d,size:f,direction:p}=Z(`input`,e),[m,_]=VF(d),v=Ul(),y=G(()=>e.showCount===``||e.showCount||!1),b=G(()=>Number(e.maxlength)>0),x=V(!1),S=V(),C=V(0),w=e=>{x.value=!0,S.value=u.value,C.value=e.currentTarget.selectionStart,i(`compositionstart`,e)},T=t=>{x.value=!1;let n=t.currentTarget.value;b.value&&(n=zq(C.value>=e.maxlength+1||C.value===S.value?.length,S.value,n,e.maxlength)),n!==u.value&&(k(n),lq(t.currentTarget,t,M,n)),i(`compositionend`,t)},E=fo();H(()=>e.value,()=>{`value`in E.vnode.props,c.value=e.value??``});let D=e=>{uq(l.value?.textArea,e)},O=()=>{var e;(e=l.value?.textArea)==null||e.blur()},k=(t,n)=>{c.value!==t&&(e.value===void 0?c.value=t:zn(()=>{var e,t,n;l.value.textArea.value!==u.value&&((n=(e=l.value)==null?void 0:(t=e.instance).update)==null||n.call(t))}),zn(()=>{n&&n()}))},A=e=>{e.keyCode===13&&i(`pressEnter`,e),i(`keydown`,e)},j=t=>{let{onBlur:n}=e;n?.(t),a.onFieldBlur()},M=e=>{i(`update:value`,e.target.value),i(`change`,e),i(`input`,e),a.onFieldChange()},N=e=>{lq(l.value.textArea,e,M),k(``,()=>{D()})},P=t=>{let n=t.target.value;if(c.value!==n){if(b.value){let r=t.target;n=zq(r.selectionStart>=e.maxlength+1||r.selectionStart===n.length||!r.selectionStart,u.value,n,e.maxlength)}lq(t.currentTarget,t,M,n),k(n)}},F=()=>{let{class:t}=n,{bordered:r=!0}=e,i=g(g(g({},sm(e,[`allowClear`])),n),{class:[{[`${d.value}-borderless`]:!r,[`${t}`]:t&&!y.value,[`${d.value}-sm`]:f.value===`small`,[`${d.value}-lg`]:f.value===`large`},lw(d.value,s.value),_.value],disabled:v.value,showCount:null,prefixCls:d.value,onInput:P,onChange:P,onBlur:j,onKeydown:A,onCompositionstart:w,onCompositionend:T});return e.valueModifiers?.lazy&&delete i.onInput,W(Lq,h(h({},i),{},{id:i?.id??a.id.value,ref:l,maxlength:e.maxlength,lazy:e.lazy}),null)};return r({focus:D,blur:O,resizableTextArea:l}),ar(()=>{let t=cq(c.value);!x.value&&b.value&&(e.value===null||e.value===void 0)&&(t=Rq(t,e.maxlength)),u.value=t}),()=>{let{maxlength:t,bordered:r=!0,hidden:i}=e,{style:a,class:s}=n,c=W(Dq,h(h({},g(g(g({},e),n),{prefixCls:d.value,inputType:`text`,handleReset:N,direction:p.value,bordered:r,style:y.value?void 0:a,hashId:_.value,disabled:e.disabled??v.value})),{},{value:u.value,status:e.status}),{element:F});if(y.value||o.hasFeedback){let e=[...u.value].length,n=``;n=typeof y.value==`object`?y.value.formatter({value:u.value,count:e,maxlength:t}):`${e}${b.value?` / ${t}`:``}`,c=W(`div`,{hidden:i,class:K(`${d.value}-textarea`,{[`${d.value}-textarea-rtl`]:p.value===`rtl`,[`${d.value}-textarea-show-count`]:y.value,[`${d.value}-textarea-in-form-item`]:o.isFormItemInput},`${d.value}-textarea-show-count`,s,_.value),style:a,"data-count":typeof n==`object`?void 0:n},[c,o.hasFeedback&&W(`span`,{class:`${d.value}-textarea-suffix`},[o.feedbackIcon])])}return m(c)}}}),Vq={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z`}}]},name:`eye`,theme:`outlined`};function Hq(e){for(var t=1;tW(e?Wq:Jq,null,null),Qq=U({compatConfig:{MODE:3},name:`AInputPassword`,inheritAttrs:!1,props:g(g({},_q()),{prefixCls:String,inputPrefixCls:String,action:{type:String,default:`click`},visibilityToggle:{type:Boolean,default:!0},visible:{type:Boolean,default:void 0},"onUpdate:visible":Function,iconRender:Function}),setup(e,t){let{slots:n,attrs:r,expose:i,emit:a}=t,o=V(!1),s=()=>{let{disabled:t}=e;t||(o.value=!o.value,a(`update:visible`,o.value))};ar(()=>{e.visible!==void 0&&(o.value=!!e.visible)});let c=V();i({focus:()=>{var e;(e=c.value)==null||e.focus()},blur:()=>{var e;(e=c.value)==null||e.blur()}});let l=t=>{let{action:r,iconRender:i=n.iconRender||Zq}=e,a=Xq[r]||``,c=i(o.value),l={[a]:s,class:`${t}-icon`,key:`passwordIcon`,onMousedown:e=>{e.preventDefault()},onMouseup:e=>{e.preventDefault()}};return s_(al(c)?c:W(`span`,null,[c]),l)},{prefixCls:u,getPrefixCls:d}=Z(`input-password`,e),f=G(()=>d(`input`,e.inputPrefixCls)),p=()=>{let{size:t,visibilityToggle:i}=e,a=Yq(e,[`size`,`visibilityToggle`]),s=i&&l(u.value),d=K(u.value,r.class,{[`${u.value}-${t}`]:!!t}),p=g(g(g({},sm(a,[`suffix`,`iconRender`,`action`])),r),{type:o.value?`text`:`password`,class:d,prefixCls:f.value,suffix:s});return t&&(p.size=t),W(bq,h({ref:c},p),n)};return()=>p()}});bq.Group=xq,bq.Search=Cq,bq.TextArea=Bq,bq.Password=Qq,bq.install=function(e){return e.component(bq.name,bq),e.component(bq.Group.name,bq.Group),e.component(bq.Search.name,bq.Search),e.component(bq.TextArea.name,bq.TextArea),e.component(bq.Password.name,bq.Password),e};var $q=bq;function eJ(){return{keyboard:{type:Boolean,default:void 0},mask:{type:Boolean,default:void 0},afterClose:Function,closable:{type:Boolean,default:void 0},maskClosable:{type:Boolean,default:void 0},visible:{type:Boolean,default:void 0},destroyOnClose:{type:Boolean,default:void 0},mousePosition:Q.shape({x:Number,y:Number}).loose,title:Q.any,footer:Q.any,transitionName:String,maskTransitionName:String,animation:Q.any,maskAnimation:Q.any,wrapStyle:{type:Object,default:void 0},bodyStyle:{type:Object,default:void 0},maskStyle:{type:Object,default:void 0},prefixCls:String,wrapClassName:String,rootClassName:String,width:[String,Number],height:[String,Number],zIndex:Number,bodyProps:Q.any,maskProps:Q.any,wrapProps:Q.any,getContainer:Q.any,dialogStyle:{type:Object,default:void 0},dialogClass:String,closeIcon:Q.any,forceRender:{type:Boolean,default:void 0},getOpenCount:Function,focusTriggerAfterClose:{type:Boolean,default:void 0},onClose:Function,modalRender:Function}}function tJ(e,t,n){let r=t;return!r&&n&&(r=`${e}-${n}`),r}var nJ=-1;function rJ(){return nJ+=1,nJ}function iJ(e,t){let n=e[`page${t?`Y`:`X`}Offset`],r=`scroll${t?`Top`:`Left`}`;if(typeof n!=`number`){let t=e.document;n=t.documentElement[r],typeof n!=`number`&&(n=t.body[r])}return n}function aJ(e){let t=e.getBoundingClientRect(),n={left:t.left,top:t.top},r=e.ownerDocument,i=r.defaultView||r.parentWindow;return n.left+=iJ(i),n.top+=iJ(i,!0),n}var oJ={width:0,height:0,overflow:`hidden`,outline:`none`},sJ={outline:`none`},cJ=U({compatConfig:{MODE:3},name:`DialogContent`,inheritAttrs:!1,props:g(g({},eJ()),{motionName:String,ariaId:String,onVisibleChanged:Function,onMousedown:Function,onMouseup:Function}),setup(e,t){let{expose:n,slots:r,attrs:i}=t,a=B(),o=B(),s=B();n({focus:()=>{var e;(e=a.value)==null||e.focus({preventScroll:!0})},changeActive:e=>{let{activeElement:t}=document;e&&t===o.value?a.value.focus({preventScroll:!0}):!e&&t===a.value&&o.value.focus({preventScroll:!0})}});let c=B(),l=G(()=>{let{width:t,height:n}=e,r={};return t!==void 0&&(r.width=typeof t==`number`?`${t}px`:t),n!==void 0&&(r.height=typeof n==`number`?`${n}px`:n),c.value&&(r.transformOrigin=c.value),r}),u=()=>{zn(()=>{if(s.value){let t=aJ(s.value);c.value=e.mousePosition?`${e.mousePosition.x-t.left}px ${e.mousePosition.y-t.top}px`:``}})},d=t=>{e.onVisibleChanged(t)};return()=>{let{prefixCls:t,footer:n=r.footer?.call(r),title:c=r.title?.call(r),ariaId:f,closable:p,closeIcon:m=r.closeIcon?.call(r),onClose:g,bodyStyle:_,bodyProps:v,onMousedown:y,onMouseup:b,visible:x,modalRender:S=r.modalRender,destroyOnClose:C,motionName:w}=e,T;n&&(T=W(`div`,{class:`${t}-footer`},[n]));let E;c&&(E=W(`div`,{class:`${t}-header`},[W(`div`,{class:`${t}-title`,id:f},[c])]));let D;p&&(D=W(`button`,{type:`button`,onClick:g,"aria-label":`Close`,class:`${t}-close`},[m||W(`span`,{class:`${t}-close-x`},null)]));let O=W(`div`,{class:`${t}-content`},[D,E,W(`div`,h({class:`${t}-body`,style:_},v),[r.default?.call(r)]),T]);return W(Uo,h(h({},nb(w)),{},{onBeforeEnter:u,onAfterEnter:()=>d(!0),onAfterLeave:()=>d(!1)}),{default:()=>[x||!C?Qn(W(`div`,h(h({},i),{},{ref:s,key:`dialog-element`,role:`document`,style:[l.value,i.style],class:[t,i.class],onMousedown:y,onMouseup:b}),[W(`div`,{tabindex:0,ref:a,style:sJ},[S?S({originVNode:O}):O]),W(`div`,{tabindex:0,ref:o,style:oJ},null)]),[[ss,x]]):null]})}}}),lJ=U({compatConfig:{MODE:3},name:`DialogMask`,props:{prefixCls:String,visible:Boolean,motionName:String,maskProps:Object},setup(e,t){let{}=t;return()=>{let{prefixCls:t,visible:n,maskProps:r,motionName:i}=e;return W(Uo,nb(i),{default:()=>[Qn(W(`div`,h({class:`${t}-mask`},r),null),[[ss,n]])]})}}}),uJ=U({compatConfig:{MODE:3},name:`VcDialog`,inheritAttrs:!1,props:Bc(g(g({},eJ()),{getOpenCount:Function,scrollLocker:Object}),{mask:!0,visible:!1,keyboard:!0,closable:!0,maskClosable:!0,destroyOnClose:!1,prefixCls:`rc-dialog`,getOpenCount:()=>null,focusTriggerAfterClose:!0}),setup(e,t){let{attrs:n,slots:r}=t,i=V(),a=V(),o=V(),s=V(e.visible),c=V(`vcDialogTitle${rJ()}`),l=t=>{var n,r;if(t)gu(a.value,document.activeElement)||(i.value=document.activeElement,(n=o.value)==null||n.focus());else{let t=s.value;if(s.value=!1,e.mask&&i.value&&e.focusTriggerAfterClose){try{i.value.focus({preventScroll:!0})}catch{}i.value=null}t&&((r=e.afterClose)==null||r.call(e))}},u=t=>{var n;(n=e.onClose)==null||n.call(e,t)},d=V(!1),f=V(),p=()=>{clearTimeout(f.value),d.value=!0},m=()=>{f.value=setTimeout(()=>{d.value=!1})},_=t=>{if(!e.maskClosable)return null;d.value?d.value=!1:a.value===t.target&&u(t)},v=t=>{e.keyboard&&t.keyCode===$.ESC?(t.stopPropagation(),u(t)):e.visible&&t.keyCode===$.TAB&&o.value.changeActive(!t.shiftKey)};return H(()=>e.visible,()=>{e.visible&&(s.value=!0)},{flush:`post`}),ni(()=>{var t;clearTimeout(f.value),(t=e.scrollLocker)==null||t.unLock()}),ar(()=>{var t,n;(t=e.scrollLocker)==null||t.unLock(),s.value&&((n=e.scrollLocker)==null||n.lock())}),()=>{let{prefixCls:t,mask:i,visible:d,maskTransitionName:f,maskAnimation:y,zIndex:b,wrapClassName:x,rootClassName:S,wrapStyle:C,closable:w,maskProps:T,maskStyle:E,transitionName:D,animation:O,wrapProps:k,title:A=r.title}=e,{style:j,class:M}=n;return W(`div`,h({class:[`${t}-root`,S]},Kb(e,{data:!0})),[W(lJ,{prefixCls:t,visible:i&&d,motionName:tJ(t,f,y),style:g({zIndex:b},E),maskProps:T},null),W(`div`,h({tabIndex:-1,onKeydown:v,class:K(`${t}-wrap`,x),ref:a,onClick:_,role:`dialog`,"aria-labelledby":A?c.value:null,style:g(g({zIndex:b},C),{display:s.value?null:`none`})},k),[W(cJ,h(h({},sm(e,[`scrollLocker`])),{},{style:j,class:M,onMousedown:p,onMouseup:m,ref:o,closable:w,ariaId:c.value,prefixCls:t,visible:d,onClose:u,onVisibleChanged:l,motionName:tJ(t,D,O)}),r)])])}}}),dJ=U({compatConfig:{MODE:3},name:`DialogWrap`,inheritAttrs:!1,props:Bc(eJ(),{visible:!1}),setup(e,t){let{attrs:n,slots:r}=t,i=B(e.visible);return fb({},{inTriggerContext:!1}),H(()=>e.visible,()=>{e.visible&&(i.value=!0)},{flush:`post`}),()=>{let{visible:t,getContainer:a,forceRender:o,destroyOnClose:s=!1,afterClose:c}=e,l=g(g(g({},e),n),{ref:`_component`,key:`dialog`});return a===!1?W(uJ,h(h({},l),{},{getOpenCount:()=>2}),r):!o&&s&&!i.value?null:W(Eb,{autoLock:!0,visible:t,forceRender:o,getContainer:a},{default:e=>(l=g(g(g({},l),e),{afterClose:()=>{c?.(),i.value=!1}}),W(uJ,l,r))})}}});function fJ(e){let t=B(null),n=Yt(g({},e)),r=B([]);return $r(()=>{t.value&&pl.cancel(t.value)}),[n,e=>{t.value===null&&(r.value=[],t.value=pl(()=>{let e;r.value.forEach(t=>{e=g(g({},e),t)}),g(n,e),t.value=null})),r.value.push(e)}]}function pJ(e,t,n,r){let i=t+n,a=(n-r)/2;if(n>r){if(t>0)return{[e]:a};if(t<0&&ir)return{[e]:t<0?a:-a};return{}}function mJ(e,t,n,r){let{width:i,height:a}=Fb(),o=null;return e<=i&&t<=a?o={x:0,y:0}:(e>i||t>a)&&(o=g(g({},pJ(`x`,n,e,i)),pJ(`y`,r,t,a))),o}var hJ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{er(gJ,e)},inject:()=>tr(gJ,{isPreviewGroup:V(!1),previewUrls:G(()=>new Map),setPreviewUrls:()=>{},current:B(null),setCurrent:()=>{},setShowPreview:()=>{},setMousePosition:()=>{},registerImage:null,rootClassName:``})},vJ=U({compatConfig:{MODE:3},name:`PreviewGroup`,inheritAttrs:!1,props:{previewPrefixCls:String,preview:{type:[Boolean,Object],default:!0},icons:{type:Object,default:()=>({})}},setup(e,t){let{slots:n}=t,r=G(()=>{let t={visible:void 0,onVisibleChange:()=>{},getContainer:void 0,current:0};return typeof e.preview==`object`?CJ(e.preview,t):t}),i=Yt(new Map),a=B(),o=G(()=>r.value.visible),s=G(()=>r.value.getContainer),[c,l]=gS(!!o.value,{value:o,onChange:(e,t)=>{var n,i;(i=(n=r.value).onVisibleChange)==null||i.call(n,e,t)}}),u=B(null),d=G(()=>o.value!==void 0),f=G(()=>Array.from(i.keys())),p=G(()=>f.value[r.value.current]),m=G(()=>new Map(Array.from(i).filter(e=>{let[,{canPreview:t}]=e;return!!t}).map(e=>{let[t,{url:n}]=e;return[t,n]}))),g=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;i.set(e,{url:t,canPreview:n})},_=e=>{a.value=e},v=e=>{u.value=e},y=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return i.set(e,{url:t,canPreview:n}),()=>{i.delete(e)}},b=e=>{e?.stopPropagation(),l(!1),v(null)};return H(p,e=>{_(e)},{immediate:!0,flush:`post`}),ar(()=>{c.value&&d.value&&_(p.value)},{flush:`post`}),_J.provide({isPreviewGroup:V(!0),previewUrls:m,setPreviewUrls:g,current:a,setCurrent:_,setShowPreview:l,setMousePosition:v,registerImage:y}),()=>{let t=hJ(r.value,[]);return W(Ma,null,[n.default&&n.default(),W(bJ,h(h({},t),{},{"ria-hidden":!c.value,visible:c.value,prefixCls:e.previewPrefixCls,onClose:b,mousePosition:u.value,src:m.value.get(a.value),icons:e.icons,getContainer:s.value}),null)])}}}),yJ={x:0,y:0},bJ=U({compatConfig:{MODE:3},name:`Preview`,inheritAttrs:!1,props:g(g({},eJ()),{src:String,alt:String,rootClassName:String,icons:{type:Object,default:()=>({})}}),emits:[`close`,`afterClose`],setup(e,t){let{emit:n,attrs:r}=t,{rotateLeft:i,rotateRight:a,zoomIn:o,zoomOut:s,close:c,left:l,right:u,flipX:d,flipY:f}=Yt(e.icons),p=V(1),m=V(0),_=Yt({x:1,y:1}),[v,y]=fJ(yJ),b=()=>n(`close`),x=V(),S=Yt({originX:0,originY:0,deltaX:0,deltaY:0}),C=V(!1),{previewUrls:w,current:T,isPreviewGroup:E,setCurrent:D}=_J.inject(),O=G(()=>w.value.size),k=G(()=>Array.from(w.value.keys())),A=G(()=>k.value.indexOf(T.value)),j=G(()=>E.value?w.value.get(T.value):e.src),M=G(()=>E.value&&O.value>1),N=V({wheelDirection:0}),P=()=>{p.value=1,m.value=0,_.x=1,_.y=1,y(yJ),n(`afterClose`)},F=e=>{e?p.value+=.5:p.value++,y(yJ)},I=e=>{p.value>1&&(e?p.value-=.5:p.value--),y(yJ)},L=()=>{m.value+=90},R=()=>{m.value-=90},ee=()=>{_.x=-_.x},te=()=>{_.y=-_.y},ne=e=>{e.preventDefault(),e.stopPropagation(),A.value>0&&D(k.value[A.value-1])},z=e=>{e.preventDefault(),e.stopPropagation(),A.valueF(),type:`zoomIn`},{icon:s,onClick:()=>I(),type:`zoomOut`,disabled:G(()=>p.value===1)},{icon:a,onClick:L,type:`rotateRight`},{icon:i,onClick:R,type:`rotateLeft`},{icon:d,onClick:ee,type:`flipX`},{icon:f,onClick:te,type:`flipY`}],se=()=>{if(e.visible&&C.value){let e=x.value.offsetWidth*p.value,t=x.value.offsetHeight*p.value,{left:n,top:r}=Ib(x.value),i=m.value%180!=0;C.value=!1;let a=mJ(i?t:e,i?e:t,n,r);a&&y(g({},a))}},ce=e=>{e.button===0&&(e.preventDefault(),e.stopPropagation(),S.deltaX=e.pageX-v.x,S.deltaY=e.pageY-v.y,S.originX=v.x,S.originY=v.y,C.value=!0)},le=t=>{e.visible&&C.value&&y({x:t.pageX-S.deltaX,y:t.pageY-S.deltaY})},ue=t=>{if(!e.visible)return;t.preventDefault();let n=t.deltaY;N.value={wheelDirection:n}},de=t=>{e.visible&&M.value&&(t.preventDefault(),t.keyCode===$.LEFT?A.value>0&&D(k.value[A.value-1]):t.keyCode===$.RIGHT&&A.value{e.visible&&(p.value!==1&&(p.value=1),(v.x!==yJ.x||v.y!==yJ.y)&&y(yJ))},pe=()=>{};return $r(()=>{H([()=>e.visible,C],()=>{pe();let e,t,n=Tl(window,`mouseup`,se,!1),r=Tl(window,`mousemove`,le,!1),i=Tl(window,`wheel`,ue,{passive:!1}),a=Tl(window,`keydown`,de,!1);try{window.top!==window.self&&(e=Tl(window.top,`mouseup`,se,!1),t=Tl(window.top,`mousemove`,le,!1))}catch(e){`${e}`}pe=()=>{n.remove(),r.remove(),i.remove(),a.remove(),e&&e.remove(),t&&t.remove()}},{flush:`post`,immediate:!0}),H([N],()=>{let{wheelDirection:e}=N.value;e>0?I(!0):e<0&&F(!0)})}),ri(()=>{pe()}),()=>{let{visible:t,prefixCls:n,rootClassName:i}=e;return W(dJ,h(h({},r),{},{transitionName:e.transitionName,maskTransitionName:e.maskTransitionName,closable:!1,keyboard:!0,prefixCls:n,onClose:b,afterClose:P,visible:t,wrapClassName:re,rootClassName:i,getContainer:e.getContainer}),{default:()=>[W(`div`,{class:[`${e.prefixCls}-operations-wrapper`,i]},[W(`ul`,{class:`${e.prefixCls}-operations`},[oe.map(t=>{let{icon:n,onClick:r,type:i,disabled:a}=t;return W(`li`,{class:K(ie,{[`${e.prefixCls}-operations-operation-disabled`]:a&&a?.value}),onClick:r,key:i},[Za(n,{class:ae})])})])]),W(`div`,{class:`${e.prefixCls}-img-wrapper`,style:{transform:`translate3d(${v.x}px, ${v.y}px, 0)`}},[W(`img`,{onMousedown:ce,onDblclick:fe,ref:x,class:`${e.prefixCls}-img`,src:j.value,alt:e.alt,style:{transform:`scale3d(${_.x*p.value}, ${_.y*p.value}, 1) rotate(${m.value}deg)`}},null)]),M.value&&W(`div`,{class:K(`${e.prefixCls}-switch-left`,{[`${e.prefixCls}-switch-left-disabled`]:A.value<=0}),onClick:ne},[l]),M.value&&W(`div`,{class:K(`${e.prefixCls}-switch-right`,{[`${e.prefixCls}-switch-right-disabled`]:A.value>=O.value-1}),onClick:z},[u])]})}}}),xJ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i({src:String,wrapperClassName:String,wrapperStyle:{type:Object,default:void 0},rootClassName:String,prefixCls:String,previewPrefixCls:String,width:[Number,String],height:[Number,String],previewMask:{type:[Boolean,Function],default:void 0},placeholder:Q.any,fallback:String,preview:{type:[Boolean,Object],default:!0},onClick:{type:Function},onError:{type:Function}}),CJ=(e,t)=>{let n=g({},e);return Object.keys(t).forEach(r=>{e[r]===void 0&&(n[r]=t[r])}),n},wJ=0,TJ=U({compatConfig:{MODE:3},name:`VcImage`,inheritAttrs:!1,props:SJ(),emits:[`click`,`error`],setup(e,t){let{attrs:n,slots:r,emit:i}=t,a=G(()=>e.prefixCls),o=G(()=>`${a.value}-preview`),s=G(()=>{let t={visible:void 0,onVisibleChange:()=>{},getContainer:void 0};return typeof e.preview==`object`?CJ(e.preview,t):t}),c=G(()=>s.value.src??e.src),l=G(()=>e.placeholder&&e.placeholder!==!0||r.placeholder),u=G(()=>s.value.visible),d=G(()=>s.value.getContainer),f=G(()=>u.value!==void 0),[p,m]=gS(!!u.value,{value:u,onChange:(e,t)=>{var n,r;(r=(n=s.value).onVisibleChange)==null||r.call(n,e,t)}}),_=B(l.value?`loading`:`normal`);H(()=>e.src,()=>{_.value=l.value?`loading`:`normal`});let v=B(null),y=G(()=>_.value===`error`),{isPreviewGroup:b,setCurrent:x,setShowPreview:S,setMousePosition:C,registerImage:w}=_J.inject(),T=B(wJ++),E=G(()=>e.preview&&!y.value),D=()=>{_.value=`normal`},O=e=>{_.value=`error`,i(`error`,e)},k=e=>{if(!f.value){let{left:t,top:n}=Ib(e.target);b.value?(x(T.value),C({x:t,y:n})):v.value={x:t,y:n}}b.value?S(!0):m(!0),i(`click`,e)},A=()=>{m(!1),f.value||(v.value=null)},j=B(null);H(()=>j,()=>{_.value===`loading`&&j.value.complete&&(j.value.naturalWidth||j.value.naturalHeight)&&D()});let M=()=>{};$r(()=>{H([c,E],()=>{if(M(),!b.value)return()=>{};M=w(T.value,c.value,E.value),E.value||M()},{flush:`post`,immediate:!0})}),ri(()=>{M()});let N=e=>uO(e)?e+`px`:e;return()=>{let{prefixCls:t,wrapperClassName:a,fallback:l,src:u,placeholder:f,wrapperStyle:m,rootClassName:x,width:S,height:C,crossorigin:w,decoding:T,alt:M,sizes:P,srcset:F,usemap:I,class:L,style:R}=g(g({},e),n),ee=s.value,{icons:te,maskClassName:ne}=ee,z=xJ(ee,[`icons`,`maskClassName`]),re=K(t,a,x,{[`${t}-error`]:y.value}),ie=y.value&&l?l:c.value,ae={crossorigin:w,decoding:T,alt:M,sizes:P,srcset:F,usemap:I,width:S,height:C,class:K(`${t}-img`,{[`${t}-img-placeholder`]:f===!0},L),style:g({height:N(C)},R)};return W(Ma,null,[W(`div`,{class:re,onClick:E.value?k:e=>{i(`click`,e)},style:g({width:N(S),height:N(C)},m)},[W(`img`,h(h(h({},ae),y.value&&l?{src:l}:{onLoad:D,onError:O,src:u}),{},{ref:j}),null),_.value===`loading`&&W(`div`,{"aria-hidden":`true`,class:`${t}-placeholder`},[f||r.placeholder&&r.placeholder()]),r.previewMask&&E.value&&W(`div`,{class:[`${t}-mask`,ne]},[r.previewMask()])]),!b.value&&E.value&&W(bJ,h(h({},z),{},{"aria-hidden":!p.value,visible:p.value,prefixCls:o.value,onClose:A,mousePosition:v.value,src:ie,alt:M,getContainer:d.value,icons:te,rootClassName:x}),null)])}}});TJ.PreviewGroup=vJ;var EJ=TJ,DJ={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z`}},{tag:`path`,attrs:{d:`M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z`}}]},name:`rotate-left`,theme:`outlined`};function OJ(e){for(var t=1;t{let{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}${e.antCls}-zoom-enter, ${t}${e.antCls}-zoom-appear`]:{transform:`none`,opacity:0,animationDuration:e.motionDurationSlow,userSelect:`none`},[`${t}${e.antCls}-zoom-leave ${t}-content`]:{pointerEvents:`none`},[`${t}-mask`]:g(g({},qJ(`fixed`)),{zIndex:e.zIndexPopupBase,height:`100%`,backgroundColor:e.colorBgMask,[`${t}-hidden`]:{display:`none`}}),[`${t}-wrap`]:g(g({},qJ(`fixed`)),{overflow:`auto`,outline:0,WebkitOverflowScrolling:`touch`})}},{[`${t}-root`]:zO(e)}]},YJ=e=>{let{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap`]:{zIndex:e.zIndexPopupBase,position:`fixed`,inset:0,overflow:`auto`,outline:0,WebkitOverflowScrolling:`touch`},[`${t}-wrap-rtl`]:{direction:`rtl`},[`${t}-centered`]:{textAlign:`center`,"&::before":{display:`inline-block`,width:0,height:`100%`,verticalAlign:`middle`,content:`""`},[t]:{top:0,display:`inline-block`,paddingBottom:0,textAlign:`start`,verticalAlign:`middle`}},[`@media (max-width: ${e.screenSMMax})`]:{[t]:{maxWidth:`calc(100vw - 16px)`,margin:`${e.marginXS} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:g(g({},Op(e)),{pointerEvents:`none`,position:`relative`,top:100,width:`auto`,maxWidth:`calc(100vw - ${e.margin*2}px)`,margin:`0 auto`,paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.modalHeadingColor,fontWeight:e.fontWeightStrong,fontSize:e.modalHeaderTitleFontSize,lineHeight:e.modalHeaderTitleLineHeight,wordWrap:`break-word`},[`${t}-content`]:{position:`relative`,backgroundColor:e.modalContentBg,backgroundClip:`padding-box`,border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadowSecondary,pointerEvents:`auto`,padding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`},[`${t}-close`]:g({position:`absolute`,top:(e.modalHeaderCloseSize-e.modalCloseBtnSize)/2,insetInlineEnd:(e.modalHeaderCloseSize-e.modalCloseBtnSize)/2,zIndex:e.zIndexPopupBase+10,padding:0,color:e.modalCloseColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:`none`,background:`transparent`,borderRadius:e.borderRadiusSM,width:e.modalConfirmIconSize,height:e.modalConfirmIconSize,border:0,outline:0,cursor:`pointer`,transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&-x":{display:`block`,fontSize:e.fontSizeLG,fontStyle:`normal`,lineHeight:`${e.modalCloseBtnSize}px`,textAlign:`center`,textTransform:`none`,textRendering:`auto`},"&:hover":{color:e.modalIconHoverColor,backgroundColor:e.wireframe?`transparent`:e.colorFillContent,textDecoration:`none`},"&:active":{backgroundColor:e.wireframe?`transparent`:e.colorFillContentHover}},Pp(e)),[`${t}-header`]:{color:e.colorText,background:e.modalHeaderBg,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,marginBottom:e.marginXS},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:`break-word`},[`${t}-footer`]:{textAlign:`end`,background:e.modalFooterBg,marginTop:e.marginSM,[`${e.antCls}-btn + ${e.antCls}-btn:not(${e.antCls}-dropdown-trigger)`]:{marginBottom:0,marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:`hidden`}})},{[`${t}-pure-panel`]:{top:`auto`,padding:0,display:`flex`,flexDirection:`column`,[`${t}-content, + ${t}-body, + ${t}-confirm-body-wrapper`]:{display:`flex`,flexDirection:`column`,flex:`auto`},[`${t}-confirm-body`]:{marginBottom:`auto`}}}]},XJ=e=>{let{componentCls:t}=e,n=`${t}-confirm`;return{[n]:{"&-rtl":{direction:`rtl`},[`${e.antCls}-modal-header`]:{display:`none`},[`${n}-body-wrapper`]:g({},Ap()),[`${n}-body`]:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,[`${n}-title`]:{flex:`0 0 100%`,display:`block`,overflow:`hidden`,color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.modalHeaderTitleFontSize,lineHeight:e.modalHeaderTitleLineHeight,[`+ ${n}-content`]:{marginBlockStart:e.marginXS,flexBasis:`100%`,maxWidth:`calc(100% - ${e.modalConfirmIconSize+e.marginSM}px)`}},[`${n}-content`]:{color:e.colorText,fontSize:e.fontSize},[`> ${e.iconCls}`]:{flex:`none`,marginInlineEnd:e.marginSM,fontSize:e.modalConfirmIconSize,[`+ ${n}-title`]:{flex:1},[`+ ${n}-title + ${n}-content`]:{marginInlineStart:e.modalConfirmIconSize+e.marginSM}}},[`${n}-btns`]:{textAlign:`end`,marginTop:e.marginSM,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${n}-error ${n}-body > ${e.iconCls}`]:{color:e.colorError},[`${n}-warning ${n}-body > ${e.iconCls}, + ${n}-confirm ${n}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${n}-info ${n}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${n}-success ${n}-body > ${e.iconCls}`]:{color:e.colorSuccess},[`${t}-zoom-leave ${t}-btns`]:{pointerEvents:`none`}}},ZJ=e=>{let{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:`rtl`,[`${t}-confirm-body`]:{direction:`rtl`}}}}},QJ=e=>{let{componentCls:t,antCls:n}=e,r=`${t}-confirm`;return{[t]:{[`${t}-content`]:{padding:0},[`${t}-header`]:{padding:e.modalHeaderPadding,borderBottom:`${e.modalHeaderBorderWidth}px ${e.modalHeaderBorderStyle} ${e.modalHeaderBorderColorSplit}`,marginBottom:0},[`${t}-body`]:{padding:e.modalBodyPadding},[`${t}-footer`]:{padding:`${e.modalFooterPaddingVertical}px ${e.modalFooterPaddingHorizontal}px`,borderTop:`${e.modalFooterBorderWidth}px ${e.modalFooterBorderStyle} ${e.modalFooterBorderColorSplit}`,borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`,marginTop:0}},[r]:{[`${n}-modal-body`]:{padding:`${e.padding*2}px ${e.padding*2}px ${e.paddingLG}px`},[`${r}-body`]:{[`> ${e.iconCls}`]:{marginInlineEnd:e.margin,[`+ ${r}-title + ${r}-content`]:{marginInlineStart:e.modalConfirmIconSize+e.margin}}},[`${r}-btns`]:{marginTop:e.marginLG}}}},$J=Fp(`Modal`,e=>{let t=e.padding,n=e.fontSizeHeading5,r=e.lineHeightHeading5,i=Rp(e,{modalBodyPadding:e.paddingLG,modalHeaderBg:e.colorBgElevated,modalHeaderPadding:`${t}px ${e.paddingLG}px`,modalHeaderBorderWidth:e.lineWidth,modalHeaderBorderStyle:e.lineType,modalHeaderTitleLineHeight:r,modalHeaderTitleFontSize:n,modalHeaderBorderColorSplit:e.colorSplit,modalHeaderCloseSize:r*n+t*2,modalContentBg:e.colorBgElevated,modalHeadingColor:e.colorTextHeading,modalCloseColor:e.colorTextDescription,modalFooterBg:`transparent`,modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterPaddingVertical:e.paddingXS,modalFooterPaddingHorizontal:e.padding,modalFooterBorderWidth:e.lineWidth,modalConfirmTitleFontSize:e.fontSizeLG,modalIconHoverColor:e.colorIconHover,modalConfirmIconSize:e.fontSize*e.lineHeight,modalCloseBtnSize:e.controlHeightLG*.55});return[YJ(i),XJ(i),ZJ(i),JJ(i),e.wireframe&&QJ(i),_k(i,`zoom`)]}),eY=e=>({position:e||`absolute`,inset:0}),tY=e=>{let{iconCls:t,motionDurationSlow:n,paddingXXS:r,marginXXS:i,prefixCls:a}=e;return{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`#fff`,background:new zf(`#000`).setAlpha(.5).toRgbString(),cursor:`pointer`,opacity:0,transition:`opacity ${n}`,[`.${a}-mask-info`]:g(g({},Dp),{padding:`0 ${r}px`,[t]:{marginInlineEnd:i,svg:{verticalAlign:`baseline`}}})}},nY=e=>{let{previewCls:t,modalMaskBg:n,paddingSM:r,previewOperationColorDisabled:i,motionDurationSlow:a}=e,o=new zf(n).setAlpha(.1),s=o.clone().setAlpha(.2);return{[`${t}-operations`]:g(g({},Op(e)),{display:`flex`,flexDirection:`row-reverse`,alignItems:`center`,color:e.previewOperationColor,listStyle:`none`,background:o.toRgbString(),pointerEvents:`auto`,"&-operation":{marginInlineStart:r,padding:r,cursor:`pointer`,transition:`all ${a}`,userSelect:`none`,"&:hover":{background:s.toRgbString()},"&-disabled":{color:i,pointerEvents:`none`},"&:last-of-type":{marginInlineStart:0}},"&-progress":{position:`absolute`,left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%)`},"&-icon":{fontSize:e.previewOperationSize}})}},rY=e=>{let{modalMaskBg:t,iconCls:n,previewOperationColorDisabled:r,previewCls:i,zIndexPopup:a,motionDurationSlow:o}=e,s=new zf(t).setAlpha(.1),c=s.clone().setAlpha(.2);return{[`${i}-switch-left, ${i}-switch-right`]:{position:`fixed`,insetBlockStart:`50%`,zIndex:a+1,display:`flex`,alignItems:`center`,justifyContent:`center`,width:e.imagePreviewSwitchSize,height:e.imagePreviewSwitchSize,marginTop:-e.imagePreviewSwitchSize/2,color:e.previewOperationColor,background:s.toRgbString(),borderRadius:`50%`,transform:`translateY(-50%)`,cursor:`pointer`,transition:`all ${o}`,pointerEvents:`auto`,userSelect:`none`,"&:hover":{background:c.toRgbString()},"&-disabled":{"&, &:hover":{color:r,background:`transparent`,cursor:`not-allowed`,[`> ${n}`]:{cursor:`not-allowed`}}},[`> ${n}`]:{fontSize:e.previewOperationSize}},[`${i}-switch-left`]:{insetInlineStart:e.marginSM},[`${i}-switch-right`]:{insetInlineEnd:e.marginSM}}},iY=e=>{let{motionEaseOut:t,previewCls:n,motionDurationSlow:r,componentCls:i}=e;return[{[`${i}-preview-root`]:{[n]:{height:`100%`,textAlign:`center`,pointerEvents:`none`},[`${n}-body`]:g(g({},eY()),{overflow:`hidden`}),[`${n}-img`]:{maxWidth:`100%`,maxHeight:`100%`,verticalAlign:`middle`,transform:`scale3d(1, 1, 1)`,cursor:`grab`,transition:`transform ${r} ${t} 0s`,userSelect:`none`,pointerEvents:`auto`,"&-wrapper":g(g({},eY()),{transition:`transform ${r} ${t} 0s`,display:`flex`,justifyContent:`center`,alignItems:`center`,"&::before":{display:`inline-block`,width:1,height:`50%`,marginInlineEnd:-1,content:`""`}})},[`${n}-moving`]:{[`${n}-preview-img`]:{cursor:`grabbing`,"&-wrapper":{transitionDuration:`0s`}}}}},{[`${i}-preview-root`]:{[`${n}-wrap`]:{zIndex:e.zIndexPopup}}},{[`${i}-preview-operations-wrapper`]:{position:`fixed`,insetBlockStart:0,insetInlineEnd:0,zIndex:e.zIndexPopup+1,width:`100%`},"&":[nY(e),rY(e)]}]},aY=e=>{let{componentCls:t}=e;return{[t]:{position:`relative`,display:`inline-block`,[`${t}-img`]:{width:`100%`,height:`auto`,verticalAlign:`middle`},[`${t}-img-placeholder`]:{backgroundColor:e.colorBgContainerDisabled,backgroundImage:`url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')`,backgroundRepeat:`no-repeat`,backgroundPosition:`center center`,backgroundSize:`30%`},[`${t}-mask`]:g({},tY(e)),[`${t}-mask:hover`]:{opacity:1},[`${t}-placeholder`]:g({},eY())}}},oY=e=>{let{previewCls:t}=e;return{[`${t}-root`]:_k(e,`zoom`),"&":zO(e,!0)}},sY=Fp(`Image`,e=>{let t=`${e.componentCls}-preview`,n=Rp(e,{previewCls:t,modalMaskBg:new zf(`#000`).setAlpha(.45).toRgbString(),imagePreviewSwitchSize:e.controlHeightLG});return[aY(n),iY(n),JJ(Rp(n,{componentCls:t})),oY(n)]},e=>({zIndexPopup:e.zIndexPopupBase+80,previewOperationColor:new zf(e.colorTextLightSolid).toRgbString(),previewOperationColorDisabled:new zf(e.colorTextLightSolid).setAlpha(.25).toRgbString(),previewOperationSize:e.fontSizeIcon*1.5})),cY={rotateLeft:W(AJ,null,null),rotateRight:W(PJ,null,null),zoomIn:W(RJ,null,null),zoomOut:W(HJ,null,null),close:W(UC,null,null),left:W(bB,null,null),right:W(Ij,null,null),flipX:W(KJ,null,null),flipY:W(KJ,{rotate:90},null)},lY=U({compatConfig:{MODE:3},name:`AImagePreviewGroup`,inheritAttrs:!1,props:{previewPrefixCls:String,preview:yl()},setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,rootPrefixCls:a}=Z(`image`,e),o=G(()=>`${i.value}-preview`),[s,c]=sY(i),l=G(()=>{let{preview:t}=e;if(t===!1)return t;let n=typeof t==`object`?t:{};return g(g({},n),{rootClassName:c.value,transitionName:ib(a.value,`zoom`,n.transitionName),maskTransitionName:ib(a.value,`fade`,n.maskTransitionName)})});return()=>s(W(vJ,h(h({},g(g({},n),e)),{},{preview:l.value,icons:cY,previewPrefixCls:o.value}),r))}}),uY=U({name:`AImage`,inheritAttrs:!1,props:SJ(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,rootPrefixCls:a,configProvider:o}=Z(`image`,e),[s,c]=sY(i),l=G(()=>{let{preview:t}=e;if(t===!1)return t;let n=typeof t==`object`?t:{};return g(g({icons:cY},n),{transitionName:ib(a.value,`zoom`,n.transitionName),maskTransitionName:ib(a.value,`fade`,n.maskTransitionName)})});return()=>{let t=o.locale?.value?.Image||Zl.Image,a=()=>W(`div`,{class:`${i.value}-mask-info`},[W(Wq,null,null),t?.preview]),{previewMask:u=n.previewMask||a}=e;return s(W(EJ,h(h({},g(g(g({},r),e),{prefixCls:i.value})),{},{preview:l.value,rootClassName:K(e.rootClassName,c.value)}),g(g({},n),{previewMask:typeof u==`function`?u:null})))}}});uY.PreviewGroup=lY,uY.install=function(e){return e.component(uY.name,uY),e.component(uY.PreviewGroup.name,uY.PreviewGroup),e};var dY={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z`}}]},name:`up`,theme:`outlined`};function fY(e){for(var t=1;t2**53-1)return String(hY()?BigInt(e).toString():2**53-1);if(e<-(2**53-1))return String(hY()?BigInt(e).toString():-(2**53-1));t=e.toFixed(vY(t))}return gY(t).fullStr}function bY(e){return typeof e==`number`?!Number.isNaN(e):e?/^\s*-?\d+(\.\d+)?\s*$/.test(e)||/^\s*-?\d+\.\s*$/.test(e)||/^\s*-?\.\d+\s*$/.test(e):!1}function xY(e){return!e&&e!==0&&!Number.isNaN(e)||!String(e).trim()}var SY=class e{constructor(e){this.origin=``,xY(e)?this.empty=!0:(this.origin=String(e),this.number=Number(e))}negate(){return new e(-this.toNumber())}add(t){if(this.isInvalidate())return new e(t);let n=Number(t);if(Number.isNaN(n))return this;let r=this.number+n;if(r>2**53-1)return new e(2**53-1);if(r<-(2**53-1))return new e(-(2**53-1));let i=Math.max(vY(this.number),vY(n));return new e(r.toFixed(i))}isEmpty(){return this.empty}isNaN(){return Number.isNaN(this.number)}isInvalidate(){return this.isEmpty()||this.isNaN()}equals(e){return this.toNumber()===e?.toNumber()}lessEquals(e){return this.add(e.negate().toString()).toNumber()<=0}toNumber(){return this.number}toString(){return arguments.length>0&&arguments[0]!==void 0&&!arguments[0]?this.origin:this.isInvalidate()?``:yY(this.number)}},CY=class e{constructor(e){if(this.origin=``,xY(e)){this.empty=!0;return}if(this.origin=String(e),e===`-`||Number.isNaN(e)){this.nan=!0;return}let t=e;if(_Y(t)&&(t=Number(t)),t=typeof t==`string`?t:yY(t),bY(t)){let e=gY(t);this.negative=e.negative;let n=e.trimStr.split(`.`);this.integer=BigInt(n[0]);let r=n[1]||`0`;this.decimal=BigInt(r),this.decimalLen=r.length}else this.nan=!0}getMark(){return this.negative?`-`:``}getIntegerStr(){return this.integer.toString()}getDecimalStr(){return this.decimal.toString().padStart(this.decimalLen,`0`)}alignDecimal(e){let t=`${this.getMark()}${this.getIntegerStr()}${this.getDecimalStr().padEnd(e,`0`)}`;return BigInt(t)}negate(){let t=new e(this.toString());return t.negative=!t.negative,t}add(t){if(this.isInvalidate())return new e(t);let n=new e(t);if(n.isInvalidate())return this;let r=Math.max(this.getDecimalStr().length,n.getDecimalStr().length),{negativeStr:i,trimStr:a}=gY((this.alignDecimal(r)+n.alignDecimal(r)).toString()),o=`${i}${a.padStart(r+1,`0`)}`;return new e(`${o.slice(0,-r)}.${o.slice(-r)}`)}isEmpty(){return this.empty}isNaN(){return this.nan}isInvalidate(){return this.isEmpty()||this.isNaN()}equals(e){return this.toString()===e?.toString()}lessEquals(e){return this.add(e.negate().toString()).toNumber()<=0}toNumber(){return this.isNaN()?NaN:Number(this.toString())}toString(){return arguments.length>0&&arguments[0]!==void 0&&!arguments[0]?this.origin:this.isInvalidate()?``:gY(`${this.getMark()}${this.getIntegerStr()}.${this.getDecimalStr()}`).fullStr}};function wY(e){return hY()?new CY(e):new SY(e)}function TY(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(e===``)return``;let{negativeStr:i,integerStr:a,decimalStr:o}=gY(e),s=`${t}${o}`,c=`${i}${a}`;if(n>=0){let a=Number(o[n]);return a>=5&&!r?TY(wY(e).add(`${i}0.${`0`.repeat(n)}${10-a}`).toString(),t,n,r):n===0?c:`${c}${t}${o.padEnd(n,`0`).slice(0,n)}`}return s===`.0`?c:`${c}${s}`}var EY=200,DY=600,OY=U({compatConfig:{MODE:3},name:`StepHandler`,inheritAttrs:!1,props:{prefixCls:String,upDisabled:Boolean,downDisabled:Boolean,onStep:Y()},slots:Object,setup(e,t){let{slots:n,emit:r}=t,i=B(),a=(e,t)=>{e.preventDefault(),r(`step`,t);function n(){r(`step`,t),i.value=setTimeout(n,EY)}i.value=setTimeout(n,DY)},o=()=>{clearTimeout(i.value)};return ni(()=>{o()}),()=>{if(wx())return null;let{prefixCls:t,upDisabled:r,downDisabled:i}=e,s=`${t}-handler`,c=K(s,`${s}-up`,{[`${s}-up-disabled`]:r}),l=K(s,`${s}-down`,{[`${s}-down-disabled`]:i}),u={unselectable:`on`,role:`button`,onMouseup:o,onMouseleave:o},{upNode:d,downNode:f}=n;return W(`div`,{class:`${s}-wrap`},[W(`span`,h(h({},u),{},{onMousedown:e=>{a(e,!0)},"aria-label":`Increase Value`,"aria-disabled":r,class:c}),[d?.()||W(`span`,{unselectable:`on`,class:`${t}-handler-up-inner`},null)]),W(`span`,h(h({},u),{},{onMousedown:e=>{a(e,!1)},"aria-label":`Decrease Value`,"aria-disabled":i,class:l}),[f?.()||W(`span`,{unselectable:`on`,class:`${t}-handler-down-inner`},null)])])}}});function kY(e,t){let n=B(null);function r(){try{let{selectionStart:t,selectionEnd:r,value:i}=e.value,a=i.substring(0,t),o=i.substring(r);n.value={start:t,end:r,value:i,beforeTxt:a,afterTxt:o}}catch{}}function i(){if(e.value&&n.value&&t.value)try{let{value:t}=e.value,{beforeTxt:r,afterTxt:i,start:a}=n.value,o=t.length;if(t.endsWith(i))o=t.length-n.value.afterTxt.length;else if(t.startsWith(r))o=r.length;else{let e=r[a-1],n=t.indexOf(e,a-1);n!==-1&&(o=n+1)}e.value.setSelectionRange(o,o)}catch(e){`${e.message}`}}return[r,i]}var AY=(()=>{let e=V(0),t=()=>{pl.cancel(e.value)};return ni(()=>{t()}),n=>{t(),e.value=pl(()=>{n()})}}),jY=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie||t.isEmpty()?t.toString():t.toNumber(),NY=e=>{let t=wY(e);return t.isInvalidate()?null:t},PY=()=>({stringMode:J(),defaultValue:Sl([String,Number]),value:Sl([String,Number]),prefixCls:X(),min:Sl([String,Number]),max:Sl([String,Number]),step:Sl([String,Number],1),tabindex:Number,controls:J(!0),readonly:J(),disabled:J(),autofocus:J(),keyboard:J(!0),parser:Y(),formatter:Y(),precision:Number,decimalSeparator:String,onInput:Y(),onChange:Y(),onPressEnter:Y(),onStep:Y(),onBlur:Y(),onFocus:Y()}),FY=U({compatConfig:{MODE:3},name:`InnerInputNumber`,inheritAttrs:!1,props:g(g({},PY()),{lazy:Boolean}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i,expose:a}=t,o=V(),s=V(!1),c=V(!1),l=V(!1),u=V(wY(e.value));function d(t){e.value===void 0&&(u.value=t)}let f=(t,n)=>{if(!n)return e.precision>=0?e.precision:Math.max(vY(t),vY(e.step))},p=t=>{let n=String(t);if(e.parser)return e.parser(n);let r=n;return e.decimalSeparator&&(r=r.replace(e.decimalSeparator,`.`)),r.replace(/[^\w.-]+/g,``)},m=V(``),_=(t,n)=>{if(e.formatter)return e.formatter(t,{userTyping:n,input:String(m.value)});let r=typeof t==`number`?yY(t):t;if(!n){let t=f(r,n);if(bY(r)&&(e.decimalSeparator||t>=0)){let n=e.decimalSeparator||`.`;r=TY(r,n,t)}}return r};m.value=(()=>{let t=e.value;return u.value.isInvalidate()&&[`string`,`number`].includes(typeof t)?Number.isNaN(t)?``:t:_(u.value.toString(),!1)})();function v(e,t){m.value=_(e.isInvalidate()?e.toString(!1):e.toString(!t),t)}let y=G(()=>NY(e.max)),b=G(()=>NY(e.min)),x=G(()=>!y.value||!u.value||u.value.isInvalidate()?!1:y.value.lessEquals(u.value)),S=G(()=>!b.value||!u.value||u.value.isInvalidate()?!1:u.value.lessEquals(b.value)),[C,w]=kY(o,s),T=e=>y.value&&!e.lessEquals(y.value)?y.value:b.value&&!b.value.lessEquals(e)?b.value:null,E=e=>!T(e),D=(t,n)=>{var r;let i=t,a=E(i)||i.isEmpty();if(!i.isEmpty()&&!n&&(i=T(i)||i,a=!0),!e.readonly&&!e.disabled&&a){let t=i.toString(),a=f(t,n);return a>=0&&(i=wY(TY(t,`.`,a))),i.equals(u.value)||(d(i),(r=e.onChange)==null||r.call(e,i.isEmpty()?null:MY(e.stringMode,i)),e.value===void 0&&v(i,n)),i}return u.value},O=AY(),k=t=>{var n;if(C(),m.value=t,!l.value){let e=wY(p(t));e.isNaN()||D(e,!0)}(n=e.onInput)==null||n.call(e,t),O(()=>{let n=t;e.parser||(n=t.replace(/。/g,`.`)),n!==t&&k(n)})},A=()=>{l.value=!0},j=()=>{l.value=!1,k(o.value.value)},M=e=>{k(e.target.value)},N=t=>{var n,r;if(t&&x.value||!t&&S.value)return;c.value=!1;let i=wY(e.step);t||(i=i.negate());let a=(u.value||wY(0)).add(i.toString()),s=D(a,!1);(n=e.onStep)==null||n.call(e,MY(e.stringMode,s),{offset:e.step,type:t?`up`:`down`}),(r=o.value)==null||r.focus()},P=t=>{let n=wY(p(m.value)),r=n;r=n.isNaN()?u.value:D(n,t),e.value===void 0?r.isNaN()||v(r,!1):v(u.value,!1)},F=()=>{c.value=!0},I=t=>{var n;let{which:r}=t;c.value=!0,r===$.ENTER&&(l.value||(c.value=!1),P(!1),(n=e.onPressEnter)==null||n.call(e,t)),e.keyboard!==!1&&!l.value&&[$.UP,$.DOWN].includes(r)&&(N($.UP===r),t.preventDefault())},L=()=>{c.value=!1},R=e=>{P(!1),s.value=!1,c.value=!1,i(`blur`,e)};return H(()=>e.precision,()=>{u.value.isInvalidate()||v(u.value,!1)},{flush:`post`}),H(()=>e.value,()=>{let t=wY(e.value);u.value=t;let n=wY(p(m.value));(!t.equals(n)||!c.value||e.formatter)&&v(t,c.value)},{flush:`post`}),H(m,()=>{e.formatter&&w()},{flush:`post`}),H(()=>e.disabled,e=>{e&&(s.value=!1)}),a({focus:()=>{var e;(e=o.value)==null||e.focus()},blur:()=>{var e;(e=o.value)==null||e.blur()}}),()=>{let t=g(g({},n),e),{prefixCls:a=`rc-input-number`,min:c,max:l,step:d=1,defaultValue:f,value:p,disabled:_,readonly:v,keyboard:y,controls:b=!0,autofocus:C,stringMode:w,parser:T,formatter:D,precision:O,decimalSeparator:k,onChange:P,onInput:ee,onPressEnter:te,onStep:ne,lazy:z,class:re,style:ie}=t,ae=jY(t,[`prefixCls`,`min`,`max`,`step`,`defaultValue`,`value`,`disabled`,`readonly`,`keyboard`,`controls`,`autofocus`,`stringMode`,`parser`,`formatter`,`precision`,`decimalSeparator`,`onChange`,`onInput`,`onPressEnter`,`onStep`,`lazy`,`class`,`style`]),{upHandler:oe,downHandler:se}=r,ce=`${a}-input`,le={};return z?le.onChange=M:le.onInput=M,W(`div`,{class:K(a,re,{[`${a}-focused`]:s.value,[`${a}-disabled`]:_,[`${a}-readonly`]:v,[`${a}-not-a-number`]:u.value.isNaN(),[`${a}-out-of-range`]:!u.value.isInvalidate()&&!E(u.value)}),style:ie,onKeydown:I,onKeyup:L},[b&&W(OY,{prefixCls:a,upDisabled:x.value,downDisabled:S.value,onStep:N},{upNode:oe,downNode:se}),W(`div`,{class:`${ce}-wrap`},[W(`input`,h(h(h({autofocus:C,autocomplete:`off`,role:`spinbutton`,"aria-valuemin":c,"aria-valuemax":l,"aria-valuenow":u.value.isInvalidate()?null:u.value.toString(),step:d},ae),{},{ref:o,class:ce,value:m.value,disabled:_,readonly:v,onFocus:e=>{s.value=!0,i(`focus`,e)}},le),{},{onBlur:R,onCompositionstart:A,onCompositionend:j,onBeforeinput:F}),null)])])}}});function IY(e){return e!=null}var LY=e=>{let{componentCls:t,lineWidth:n,lineType:r,colorBorder:i,borderRadius:a,fontSizeLG:o,controlHeightLG:s,controlHeightSM:c,colorError:l,inputPaddingHorizontalSM:u,colorTextDescription:d,motionDurationMid:f,colorPrimary:p,controlHeight:m,inputPaddingHorizontal:h,colorBgContainer:_,colorTextDisabled:v,borderRadiusSM:y,borderRadiusLG:b,controlWidth:x,handleVisible:S}=e;return[{[t]:g(g(g(g({},Op(e)),MF(e)),jF(e,t)),{display:`inline-block`,width:x,margin:0,padding:0,border:`${n}px ${r} ${i}`,borderRadius:a,"&-rtl":{direction:`rtl`,[`${t}-input`]:{direction:`rtl`}},"&-lg":{padding:0,fontSize:o,borderRadius:b,[`input${t}-input`]:{height:s-2*n}},"&-sm":{padding:0,borderRadius:y,[`input${t}-input`]:{height:c-2*n,padding:`0 ${u}px`}},"&:hover":g({},EF(e)),"&-focused":g({},DF(e)),"&-disabled":g(g({},OF(e)),{[`${t}-input`]:{cursor:`not-allowed`}}),"&-out-of-range":{input:{color:l}},"&-group":g(g(g({},Op(e)),NF(e)),{"&-wrapper":{display:`inline-block`,textAlign:`start`,verticalAlign:`top`,[`${t}-affix-wrapper`]:{width:`100%`},"&-lg":{[`${t}-group-addon`]:{borderRadius:b}},"&-sm":{[`${t}-group-addon`]:{borderRadius:y}}}}),[t]:{"&-input":g(g({width:`100%`,height:m-2*n,padding:`0 ${h}px`,textAlign:`start`,backgroundColor:`transparent`,border:0,borderRadius:a,outline:0,transition:`all ${f} linear`,appearance:`textfield`,color:e.colorText,fontSize:`inherit`,verticalAlign:`top`},TF(e.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,webkitAppearance:`none`,appearance:`none`}})}})},{[t]:{[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{opacity:1},[`${t}-handler-wrap`]:{position:`absolute`,insetBlockStart:0,insetInlineEnd:0,width:e.handleWidth,height:`100%`,background:_,borderStartStartRadius:0,borderStartEndRadius:a,borderEndEndRadius:a,borderEndStartRadius:0,opacity:+(S===!0),display:`flex`,flexDirection:`column`,alignItems:`stretch`,transition:`opacity ${f} linear ${f}`,[`${t}-handler`]:{display:`flex`,alignItems:`center`,justifyContent:`center`,flex:`auto`,height:`40%`,[` + ${t}-handler-up-inner, + ${t}-handler-down-inner + `]:{marginInlineEnd:0,fontSize:e.handleFontSize}}},[`${t}-handler`]:{height:`50%`,overflow:`hidden`,color:d,fontWeight:`bold`,lineHeight:0,textAlign:`center`,cursor:`pointer`,borderInlineStart:`${n}px ${r} ${i}`,transition:`all ${f} linear`,"&:active":{background:e.colorFillAlter},"&:hover":{height:`60%`,[` + ${t}-handler-up-inner, + ${t}-handler-down-inner + `]:{color:p}},"&-up-inner, &-down-inner":g(g({},kp()),{color:d,transition:`all ${f} linear`,userSelect:`none`})},[`${t}-handler-up`]:{borderStartEndRadius:a},[`${t}-handler-down`]:{borderBlockStart:`${n}px ${r} ${i}`,borderEndEndRadius:a},"&-disabled, &-readonly":{[`${t}-handler-wrap`]:{display:`none`},[`${t}-input`]:{color:`inherit`}},[` + ${t}-handler-up-disabled, + ${t}-handler-down-disabled + `]:{cursor:`not-allowed`},[` + ${t}-handler-up-disabled:hover &-handler-up-inner, + ${t}-handler-down-disabled:hover &-handler-down-inner + `]:{color:v}}},{[`${t}-borderless`]:{borderColor:`transparent`,boxShadow:`none`,[`${t}-handler-down`]:{borderBlockStartWidth:0}}}]},RY=e=>{let{componentCls:t,inputPaddingHorizontal:n,inputAffixPadding:r,controlWidth:i,borderRadiusLG:a,borderRadiusSM:o}=e;return{[`${t}-affix-wrapper`]:g(g(g({},MF(e)),jF(e,`${t}-affix-wrapper`)),{position:`relative`,display:`inline-flex`,width:i,padding:0,paddingInlineStart:n,"&-lg":{borderRadius:a},"&-sm":{borderRadius:o},[`&:not(${t}-affix-wrapper-disabled):hover`]:g(g({},EF(e)),{zIndex:1}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${t}[disabled]`]:{background:`transparent`}},[`> div${t}`]:{width:`100%`,border:`none`,outline:`none`,[`&${t}-focused`]:{boxShadow:`none !important`}},[`input${t}-input`]:{padding:0},"&::before":{width:0,visibility:`hidden`,content:`"\\a0"`},[`${t}-handler-wrap`]:{zIndex:2},[t]:{"&-prefix, &-suffix":{display:`flex`,flex:`none`,alignItems:`center`,pointerEvents:`none`},"&-prefix":{marginInlineEnd:r},"&-suffix":{position:`absolute`,insetBlockStart:0,insetInlineEnd:0,zIndex:1,height:`100%`,marginInlineEnd:n,marginInlineStart:r}}})}},zY=Fp(`InputNumber`,e=>{let t=zF(e);return[LY(t),RY(t),kk(t)]},e=>({controlWidth:90,handleWidth:e.controlHeightSM-e.lineWidth*2,handleFontSize:e.fontSize/2,handleVisible:`auto`})),BY=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);iuw(s.status,e.status)),{prefixCls:l,size:u,direction:d,disabled:f}=Z(`input-number`,e),{compactSize:p,compactItemClassnames:m}=kO(l,d),_=Ul(),v=G(()=>f.value??_.value),[y,b]=zY(l),x=G(()=>p.value||u.value),S=V(e.value??e.defaultValue),C=V(!1);H(()=>e.value,()=>{S.value=e.value});let w=V(null),T=()=>{var e;(e=w.value)==null||e.focus()};r({focus:T,blur:()=>{var e;(e=w.value)==null||e.blur()}});let E=t=>{e.value===void 0&&(S.value=t),n(`update:value`,t),n(`change`,t),o.onFieldChange()},D=e=>{C.value=!1,n(`blur`,e),o.onFieldBlur()},O=e=>{C.value=!0,n(`focus`,e)};return()=>{let{hasFeedback:t,isFormItemInput:n,feedbackIcon:r}=s,u=e.id??o.id.value,f=g(g(g({},i),e),{id:u,disabled:v.value}),{class:p,bordered:_,readonly:k,style:A,addonBefore:j=a.addonBefore?.call(a),addonAfter:M=a.addonAfter?.call(a),prefix:N=a.prefix?.call(a),valueModifiers:P={}}=f,F=BY(f,[`class`,`bordered`,`readonly`,`style`,`addonBefore`,`addonAfter`,`prefix`,`valueModifiers`]),I=l.value,L=K({[`${I}-lg`]:x.value===`large`,[`${I}-sm`]:x.value===`small`,[`${I}-rtl`]:d.value===`rtl`,[`${I}-readonly`]:k,[`${I}-borderless`]:!_,[`${I}-in-form-item`]:n},lw(I,c.value),p,m.value,b.value),R=W(FY,h(h({},sm(F,[`size`,`defaultValue`])),{},{ref:w,lazy:!!P.lazy,value:S.value,class:L,prefixCls:I,readonly:k,onChange:E,onBlur:D,onFocus:O}),{upHandler:a.upIcon?()=>W(`span`,{class:`${I}-handler-up-inner`},[a.upIcon()]):()=>W(mY,{class:`${I}-handler-up-inner`},null),downHandler:a.downIcon?()=>W(`span`,{class:`${I}-handler-down-inner`},[a.downIcon()]):()=>W(jC,{class:`${I}-handler-down-inner`},null)}),ee=IY(j)||IY(M),te=IY(N);if((te||t)&&(R=W(`div`,{class:K(`${I}-affix-wrapper`,lw(`${I}-affix-wrapper`,c.value,t),{[`${I}-affix-wrapper-focused`]:C.value,[`${I}-affix-wrapper-disabled`]:v.value,[`${I}-affix-wrapper-sm`]:x.value===`small`,[`${I}-affix-wrapper-lg`]:x.value===`large`,[`${I}-affix-wrapper-rtl`]:d.value===`rtl`,[`${I}-affix-wrapper-readonly`]:k,[`${I}-affix-wrapper-borderless`]:!_,[`${p}`]:!ee&&p},b.value),style:A,onClick:T},[te&&W(`span`,{class:`${I}-prefix`},[N]),R,t&&W(`span`,{class:`${I}-suffix`},[r])])),ee){let e=`${I}-group`,n=`${e}-addon`,r=j?W(`div`,{class:n},[j]):null,i=M?W(`div`,{class:n},[M]):null,a=K(`${I}-wrapper`,e,{[`${e}-rtl`]:d.value===`rtl`},b.value);R=W(`div`,{class:K(`${I}-group-wrapper`,{[`${I}-group-wrapper-sm`]:x.value===`small`,[`${I}-group-wrapper-lg`]:x.value===`large`,[`${I}-group-wrapper-rtl`]:d.value===`rtl`},lw(`${l}-group-wrapper`,c.value,t),p,b.value),style:A},[W(`div`,{class:a},[r&&W(AO,null,{default:()=>[W(cw,null,{default:()=>[r]})]}),R,i&&W(AO,null,{default:()=>[W(cw,null,{default:()=>[i]})]})])])}return y(s_(R,{style:A}))}}}),UY=g(HY,{install:e=>(e.component(HY.name,HY),e)}),WY=e=>{let{componentCls:t,colorBgContainer:n,colorBgBody:r,colorText:i}=e;return{[`${t}-sider-light`]:{background:n,[`${t}-sider-trigger`]:{color:i,background:n},[`${t}-sider-zero-width-trigger`]:{color:i,background:n,border:`1px solid ${r}`,borderInlineStart:0}}}},GY=e=>{let{antCls:t,componentCls:n,colorText:r,colorTextLightSolid:i,colorBgHeader:a,colorBgBody:o,colorBgTrigger:s,layoutHeaderHeight:c,layoutHeaderPaddingInline:l,layoutHeaderColor:u,layoutFooterPadding:d,layoutTriggerHeight:f,layoutZeroTriggerSize:p,motionDurationMid:m,motionDurationSlow:h,fontSize:_,borderRadius:v}=e;return{[n]:g(g({display:`flex`,flex:`auto`,flexDirection:`column`,color:r,minHeight:0,background:o,"&, *":{boxSizing:`border-box`},[`&${n}-has-sider`]:{flexDirection:`row`,[`> ${n}, > ${n}-content`]:{width:0}},[`${n}-header, &${n}-footer`]:{flex:`0 0 auto`},[`${n}-header`]:{height:c,paddingInline:l,color:u,lineHeight:`${c}px`,background:a,[`${t}-menu`]:{lineHeight:`inherit`}},[`${n}-footer`]:{padding:d,color:r,fontSize:_,background:o},[`${n}-content`]:{flex:`auto`,minHeight:0},[`${n}-sider`]:{position:`relative`,minWidth:0,background:a,transition:`all ${m}, background 0s`,"&-children":{height:`100%`,marginTop:-.1,paddingTop:.1,[`${t}-menu${t}-menu-inline-collapsed`]:{width:`auto`}},"&-has-trigger":{paddingBottom:f},"&-right":{order:1},"&-trigger":{position:`fixed`,bottom:0,zIndex:1,height:f,color:i,lineHeight:`${f}px`,textAlign:`center`,background:s,cursor:`pointer`,transition:`all ${m}`},"&-zero-width":{"> *":{overflow:`hidden`},"&-trigger":{position:`absolute`,top:c,insetInlineEnd:-p,zIndex:1,width:p,height:p,color:i,fontSize:e.fontSizeXL,display:`flex`,alignItems:`center`,justifyContent:`center`,background:a,borderStartStartRadius:0,borderStartEndRadius:v,borderEndEndRadius:v,borderEndStartRadius:0,cursor:`pointer`,transition:`background ${h} ease`,"&::after":{position:`absolute`,inset:0,background:`transparent`,transition:`all ${h}`,content:`""`},"&:hover::after":{background:`rgba(255, 255, 255, 0.2)`},"&-right":{insetInlineStart:-p,borderStartStartRadius:v,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:v}}}}},WY(e)),{"&-rtl":{direction:`rtl`}})}},KY=Fp(`Layout`,e=>{let{colorText:t,controlHeightSM:n,controlHeight:r,controlHeightLG:i,marginXXS:a}=e,o=i*1.25;return[GY(Rp(e,{layoutHeaderHeight:r*2,layoutHeaderPaddingInline:o,layoutHeaderColor:t,layoutFooterPadding:`${n}px ${o}px`,layoutTriggerHeight:i+a*2,layoutZeroTriggerSize:i}))]},e=>{let{colorBgLayout:t}=e;return{colorBgHeader:`#001529`,colorBgBody:t,colorBgTrigger:`#002140`}}),qY=()=>({prefixCls:String,hasSider:{type:Boolean,default:void 0},tagName:String});function JY(e){let{suffixCls:t,tagName:n,name:r}=e;return e=>U({compatConfig:{MODE:3},name:r,props:qY(),setup(r,i){let{slots:a}=i,{prefixCls:o}=Z(t,r);return()=>W(e,g(g({},r),{prefixCls:o.value,tagName:n}),a)}})}var YY=U({compatConfig:{MODE:3},props:qY(),setup(e,t){let{slots:n}=t;return()=>W(e.tagName,{class:e.prefixCls},n)}}),XY=U({compatConfig:{MODE:3},inheritAttrs:!1,props:qY(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(``,e),[o,s]=KY(i),c=B([]);er(Qj,{addSider:e=>{c.value=[...c.value,e]},removeSider:e=>{c.value=c.value.filter(t=>t!==e)}});let l=G(()=>{let{prefixCls:t,hasSider:n}=e;return{[s.value]:!0,[`${t}`]:!0,[`${t}-has-sider`]:typeof n==`boolean`?n:c.value.length>0,[`${t}-rtl`]:a.value===`rtl`}});return()=>{let{tagName:t}=e;return o(W(t,g(g({},r),{class:[l.value,r.class]}),n))}}}),ZY=JY({suffixCls:`layout`,tagName:`section`,name:`ALayout`})(XY),QY=JY({suffixCls:`layout-header`,tagName:`header`,name:`ALayoutHeader`})(YY),$Y=JY({suffixCls:`layout-footer`,tagName:`footer`,name:`ALayoutFooter`})(YY),eX=JY({suffixCls:`layout-content`,tagName:`main`,name:`ALayoutContent`})(YY),tX={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`bars`,theme:`outlined`};function nX(e){for(var t=1;t({prefixCls:String,collapsible:{type:Boolean,default:void 0},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean,default:void 0},reverseArrow:{type:Boolean,default:void 0},zeroWidthTriggerStyle:{type:Object,default:void 0},trigger:Q.any,width:Q.oneOfType([Q.number,Q.string]),collapsedWidth:Q.oneOfType([Q.number,Q.string]),breakpoint:Q.oneOf(hl(`xs`,`sm`,`md`,`lg`,`xl`,`xxl`,`xxxl`)),theme:Q.oneOf(hl(`light`,`dark`)).def(`dark`),onBreakpoint:Function,onCollapse:Function}),sX=(()=>{let e=0;return function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e+=1,`${t}${e}`}})(),cX=U({compatConfig:{MODE:3},name:`ALayoutSider`,inheritAttrs:!1,props:Bc(oX(),{collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80}),emits:[`breakpoint`,`update:collapsed`,`collapse`],setup(e,t){let{emit:n,attrs:r,slots:i}=t,{prefixCls:a}=Z(`layout-sider`,e),o=tr(Qj,void 0),s=V(!!(e.collapsed===void 0?e.defaultCollapsed:e.collapsed)),c=V(!1);H(()=>e.collapsed,()=>{s.value=!!e.collapsed}),er(Zj,s);let l=(t,r)=>{e.collapsed===void 0&&(s.value=t),n(`update:collapsed`,t),n(`collapse`,t,r)},u=V(e=>{c.value=e.matches,n(`breakpoint`,e.matches),s.value!==e.matches&&l(e.matches,`responsive`)}),d;function f(e){return u.value(e)}let p=sX(`ant-sider-`);o&&o.addSider(p),$r(()=>{H(()=>e.breakpoint,()=>{try{d?.removeEventListener(`change`,f)}catch{d?.removeListener(f)}if(typeof window<`u`){let{matchMedia:t}=window;if(t&&e.breakpoint&&e.breakpoint in aX){d=t(`(max-width: ${aX[e.breakpoint]})`);try{d.addEventListener(`change`,f)}catch{d.addListener(f)}f(d)}}},{immediate:!0})}),ni(()=>{try{d?.removeEventListener(`change`,f)}catch{d?.removeListener(f)}o&&o.removeSider(p)});let m=()=>{l(!s.value,`clickTrigger`)};return()=>{let t=a.value,{collapsedWidth:n,width:o,reverseArrow:l,zeroWidthTriggerStyle:u,trigger:d=i.trigger?.call(i),collapsible:f,theme:p}=e,g=s.value?n:o,_=$A(g)?`${g}px`:String(g),v=parseFloat(String(n||0))===0?W(`span`,{onClick:m,class:K(`${t}-zero-width-trigger`,`${t}-zero-width-trigger-${l?`right`:`left`}`),style:u},[d||W(iX,null,null)]):null,y={expanded:W(l?Ij:bB,null,null),collapsed:W(l?bB:Ij,null,null)}[s.value?`collapsed`:`expanded`],b=d===null?null:v||W(`div`,{class:`${t}-trigger`,onClick:m,style:{width:_}},[d||y]),x=[r.style,{flex:`0 0 ${_}`,maxWidth:_,minWidth:_,width:_}],S=K(t,`${t}-${p}`,{[`${t}-collapsed`]:!!s.value,[`${t}-has-trigger`]:f&&d!==null&&!v,[`${t}-below`]:!!c.value,[`${t}-zero-width`]:parseFloat(_)===0},r.class);return W(`aside`,h(h({},r),{},{class:S,style:x}),[W(`div`,{class:`${t}-children`},[i.default?.call(i)]),f||c.value&&v?b:null])}}}),lX=QY,uX=$Y,dX=cX,fX=eX,pX=g(ZY,{Header:QY,Footer:$Y,Content:eX,Sider:cX,install:e=>(e.component(ZY.name,ZY),e.component(QY.name,QY),e.component($Y.name,$Y),e.component(cX.name,cX),e.component(eX.name,eX),e)});function mX(e,t,n){var r=n||{},i=r.noTrailing,a=i!==void 0&&i,o=r.noLeading,s=o!==void 0&&o,c=r.debounceMode,l=c===void 0?void 0:c,u,d=!1,f=0;function p(){u&&clearTimeout(u)}function m(e){var t=(e||{}).upcomingOnly,n=t!==void 0&&t;p(),d=!n}function h(){var n=[...arguments],r=this,i=Date.now()-f;if(d)return;function o(){f=Date.now(),t.apply(r,n)}function c(){u=void 0}!s&&l&&!u&&o(),p(),l===void 0&&i>e?s?(f=Date.now(),a||(u=setTimeout(l?c:o,e))):o():a!==!0&&(u=setTimeout(l?c:o,l===void 0?e-i:e))}return h.cancel=m,h}function hX(e,t,n){var r=(n||{}).atBegin;return mX(e,t,{debounceMode:(r!==void 0&&r)!==!1})}var gX=new ef(`antSpinMove`,{to:{opacity:1}}),_X=new ef(`antRotate`,{to:{transform:`rotate(405deg)`}}),vX=e=>({[`${e.componentCls}`]:g(g({},Op(e)),{position:`absolute`,display:`none`,color:e.colorPrimary,textAlign:`center`,verticalAlign:`middle`,opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:`static`,display:`inline-block`,opacity:1},"&-nested-loading":{position:`relative`,[`> div > ${e.componentCls}`]:{position:`absolute`,top:0,insetInlineStart:0,zIndex:4,display:`block`,width:`100%`,height:`100%`,maxHeight:e.contentHeight,[`${e.componentCls}-dot`]:{position:`absolute`,top:`50%`,insetInlineStart:`50%`,margin:-e.spinDotSize/2},[`${e.componentCls}-text`]:{position:`absolute`,top:`50%`,width:`100%`,paddingTop:(e.spinDotSize-e.fontSize)/2+2,textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${e.componentCls}-show-text ${e.componentCls}-dot`]:{marginTop:-(e.spinDotSize/2)-10},"&-sm":{[`${e.componentCls}-dot`]:{margin:-e.spinDotSizeSM/2},[`${e.componentCls}-text`]:{paddingTop:(e.spinDotSizeSM-e.fontSize)/2+2},[`&${e.componentCls}-show-text ${e.componentCls}-dot`]:{marginTop:-(e.spinDotSizeSM/2)-10}},"&-lg":{[`${e.componentCls}-dot`]:{margin:-(e.spinDotSizeLG/2)},[`${e.componentCls}-text`]:{paddingTop:(e.spinDotSizeLG-e.fontSize)/2+2},[`&${e.componentCls}-show-text ${e.componentCls}-dot`]:{marginTop:-(e.spinDotSizeLG/2)-10}}},[`${e.componentCls}-container`]:{position:`relative`,transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:`absolute`,top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:`100%`,height:`100%`,background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:`""`,pointerEvents:`none`}},[`${e.componentCls}-blur`]:{clear:`both`,opacity:.5,userSelect:`none`,pointerEvents:`none`,"&::after":{opacity:.4,pointerEvents:`auto`}}},"&-tip":{color:e.spinDotDefault},[`${e.componentCls}-dot`]:{position:`relative`,display:`inline-block`,fontSize:e.spinDotSize,width:`1em`,height:`1em`,"&-item":{position:`absolute`,display:`block`,width:(e.spinDotSize-e.marginXXS/2)/2,height:(e.spinDotSize-e.marginXXS/2)/2,backgroundColor:e.colorPrimary,borderRadius:`100%`,transform:`scale(0.75)`,transformOrigin:`50% 50%`,opacity:.3,animationName:gX,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`,animationDirection:`alternate`,"&:nth-child(1)":{top:0,insetInlineStart:0},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:`0.4s`},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:`0.8s`},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:`1.2s`}},"&-spin":{transform:`rotate(45deg)`,animationName:_X,animationDuration:`1.2s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&-sm ${e.componentCls}-dot`]:{fontSize:e.spinDotSizeSM,i:{width:(e.spinDotSizeSM-e.marginXXS/2)/2,height:(e.spinDotSizeSM-e.marginXXS/2)/2}},[`&-lg ${e.componentCls}-dot`]:{fontSize:e.spinDotSizeLG,i:{width:(e.spinDotSizeLG-e.marginXXS)/2,height:(e.spinDotSizeLG-e.marginXXS)/2}},[`&${e.componentCls}-show-text ${e.componentCls}-text`]:{display:`block`}})}),yX=Fp(`Spin`,e=>[vX(Rp(e,{spinDotDefault:e.colorTextDescription,spinDotSize:e.controlHeightLG/2,spinDotSizeSM:e.controlHeightLG*.35,spinDotSizeLG:e.controlHeight}))],{contentHeight:400}),bX=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i({prefixCls:String,spinning:{type:Boolean,default:void 0},size:String,wrapperClassName:String,tip:Q.any,delay:Number,indicator:Q.any}),SX=null;function CX(e,t){return!!e&&!!t&&!isNaN(Number(t))}function wX(e){let t=e.indicator;SX=typeof t==`function`?t:()=>W(t,null,null)}var TX=U({compatConfig:{MODE:3},name:`ASpin`,inheritAttrs:!1,props:Bc(xX(),{size:`default`,spinning:!0,wrapperClassName:``}),setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,size:a,direction:o}=Z(`spin`,e),[s,c]=yX(i),l=V(e.spinning&&!CX(e.spinning,e.delay)),u;return H([()=>e.spinning,()=>e.delay],()=>{u?.cancel(),u=hX(e.delay,()=>{l.value=e.spinning}),u?.()},{immediate:!0,flush:`post`}),ni(()=>{u?.cancel()}),()=>{let{class:t}=n,u=bX(n,[`class`]),{tip:d=r.tip?.call(r)}=e,f=r.default?.call(r),p={[c.value]:!0,[i.value]:!0,[`${i.value}-sm`]:a.value===`small`,[`${i.value}-lg`]:a.value===`large`,[`${i.value}-spinning`]:l.value,[`${i.value}-show-text`]:!!d,[`${i.value}-rtl`]:o.value===`rtl`,[t]:!!t};function m(t){let n=`${t}-dot`,i=ol(r,e,`indicator`);return i===null?null:(Array.isArray(i)&&(i=i.length===1?i[0]:i),Wa(i)?Za(i,{class:n}):SX&&Wa(SX())?Za(SX(),{class:n}):W(`span`,{class:`${n} ${t}-dot-spin`},[W(`i`,{class:`${t}-dot-item`},null),W(`i`,{class:`${t}-dot-item`},null),W(`i`,{class:`${t}-dot-item`},null),W(`i`,{class:`${t}-dot-item`},null)]))}let g=W(`div`,h(h({},u),{},{class:p,"aria-live":`polite`,"aria-busy":l.value}),[m(i.value),d?W(`div`,{class:`${i.value}-text`},[d]):null]);if(f&&rl(f).length){let t={[`${i.value}-container`]:!0,[`${i.value}-blur`]:l.value};return s(W(`div`,{class:[`${i.value}-nested-loading`,e.wrapperClassName,c.value]},[l.value&&W(`div`,{key:`loading`},[g]),W(`div`,{class:t,key:`container`},[f])]))}return s(g)}}});TX.setDefaultIndicator=wX,TX.install=function(e){return e.component(TX.name,TX),e};var EX=TX,DX={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z`}}]},name:`double-left`,theme:`outlined`};function OX(e){for(var t=1;tW(Rk,g(g(g({},e),{size:`small`}),n),r)}}),IX=U({name:`MiddleSelect`,inheritAttrs:!1,props:Ik(),Option:Rk.Option,setup(e,t){let{attrs:n,slots:r}=t;return()=>W(Rk,g(g(g({},e),{size:`middle`}),n),r)}}),LX=U({compatConfig:{MODE:3},name:`Pager`,inheritAttrs:!1,props:{rootPrefixCls:String,page:Number,active:{type:Boolean,default:void 0},last:{type:Boolean,default:void 0},locale:Q.object,showTitle:{type:Boolean,default:void 0},itemRender:{type:Function,default:()=>{}},onClick:{type:Function},onKeypress:{type:Function}},eimt:[`click`,`keypress`],setup(e,t){let{emit:n,attrs:r}=t,i=()=>{n(`click`,e.page)},a=t=>{n(`keypress`,t,i,e.page)};return()=>{let{showTitle:t,page:n,itemRender:o}=e,{class:s,style:c}=r,l=`${e.rootPrefixCls}-item`,u=K(l,`${l}-${e.page}`,{[`${l}-active`]:e.active,[`${l}-disabled`]:!e.page},s);return W(`li`,{onClick:i,onKeypress:a,title:t?String(n):null,tabindex:`0`,class:u,style:c},[o({page:n,type:`page`,originalElement:W(`a`,{rel:`nofollow`},[n])})])}}}),RX={ZERO:48,NINE:57,NUMPAD_ZERO:96,NUMPAD_NINE:105,BACKSPACE:8,DELETE:46,ENTER:13,ARROW_UP:38,ARROW_DOWN:40},zX=U({compatConfig:{MODE:3},props:{disabled:{type:Boolean,default:void 0},changeSize:Function,quickGo:Function,selectComponentClass:Q.any,current:Number,pageSizeOptions:Q.array.def([`10`,`20`,`50`,`100`]),pageSize:Number,buildOptionText:Function,locale:Q.object,rootPrefixCls:String,selectPrefixCls:String,goButton:Q.any},setup(e){let t=B(``),n=G(()=>!t.value||isNaN(t.value)?void 0:Number(t.value)),r=t=>`${t.value} ${e.locale.items_per_page}`,i=e=>{let{value:n}=e.target;t.value!==n&&(t.value=n)},a=r=>{let{goButton:i,quickGo:a,rootPrefixCls:o}=e;i||t.value===``||(r.relatedTarget&&(r.relatedTarget.className.indexOf(`${o}-item-link`)>=0||r.relatedTarget.className.indexOf(`${o}-item`)>=0)||a(n.value),t.value=``)},o=r=>{t.value!==``&&(r.keyCode===RX.ENTER||r.type===`click`)&&(e.quickGo(n.value),t.value=``)},s=G(()=>{let{pageSize:t,pageSizeOptions:n}=e;return n.some(e=>e.toString()===t.toString())?n:n.concat([t.toString()]).sort((e,t)=>(isNaN(Number(e))?0:Number(e))-(isNaN(Number(t))?0:Number(t)))});return()=>{let{rootPrefixCls:n,locale:c,changeSize:l,quickGo:u,goButton:d,selectComponentClass:f,selectPrefixCls:p,pageSize:m,disabled:h}=e,g=`${n}-options`,_=null,v=null,y=null;if(!l&&!u)return null;if(l&&f){let t=e.buildOptionText||r,n=s.value.map((e,n)=>W(f.Option,{key:n,value:e},{default:()=>[t({value:e})]}));_=W(f,{disabled:h,prefixCls:p,showSearch:!1,class:`${g}-size-changer`,optionLabelProp:`children`,value:(m||s.value[0]).toString(),onChange:e=>l(Number(e)),getPopupContainer:e=>e.parentNode},{default:()=>[n]})}return u&&(d&&(y=typeof d==`boolean`?W(`button`,{type:`button`,onClick:o,onKeyup:o,disabled:h,class:`${g}-quick-jumper-button`},[c.jump_to_confirm]):W(`span`,{onClick:o,onKeyup:o},[d])),v=W(`div`,{class:`${g}-quick-jumper`},[c.jump_to,W(Bb,{disabled:h,type:`text`,value:t.value,onInput:i,onChange:i,onKeyup:o,onBlur:a},null),c.page,y])),W(`li`,{class:`${g}`},[_,v])}}}),BX={items_per_page:`条/页`,jump_to:`跳至`,jump_to_confirm:`确定`,page:`页`,prev_page:`上一页`,next_page:`下一页`,prev_5:`向前 5 页`,next_5:`向后 5 页`,prev_3:`向前 3 页`,next_3:`向后 3 页`},VX=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ir?r:n,Uc(this,`current`)||(t.stateCurrent=n,t.stateCurrentInputValue=n),t.statePageSize=e,this.setState(t)},stateCurrent(e,t){this.$nextTick(()=>{if(this.$refs.paginationNode){let e=this.$refs.paginationNode.querySelector(`.${this.prefixCls}-item-${t}`);e&&document.activeElement===e&&e.blur()}})},total(){let e={},t=WX(this.pageSize,this.$data,this.$props);if(Uc(this,`current`)){let n=Math.min(this.current,t);e.stateCurrent=n,e.stateCurrentInputValue=n}else{let n=this.stateCurrent;n=n===0&&t>0?1:Math.min(this.stateCurrent,t),e.stateCurrent=n}this.setState(e)}},methods:{getJumpPrevPage(){return Math.max(1,this.stateCurrent-(this.showLessItems?3:5))},getJumpNextPage(){return Math.min(WX(void 0,this.$data,this.$props),this.stateCurrent+(this.showLessItems?3:5))},getItemIcon(e,t){let{prefixCls:n}=this.$props;return Yc(this,e,this.$props)||W(`button`,{type:`button`,"aria-label":t,class:`${n}-item-link`},null)},getValidValue(e){let t=e.target.value,n=WX(void 0,this.$data,this.$props),{stateCurrentInputValue:r}=this.$data,i;return i=t===``?t:isNaN(Number(t))?r:t>=n?n:Number(t),i},isValid(e){return HX(e)&&e!==this.stateCurrent},shouldDisplayQuickJumper(){let{showQuickJumper:e,pageSize:t,total:n}=this.$props;return n<=t?!1:e},handleKeyDown(e){(e.keyCode===RX.ARROW_UP||e.keyCode===RX.ARROW_DOWN)&&e.preventDefault()},handleKeyUp(e){let t=this.getValidValue(e);t!==this.stateCurrentInputValue&&this.setState({stateCurrentInputValue:t}),e.keyCode===RX.ENTER?this.handleChange(t):e.keyCode===RX.ARROW_UP?this.handleChange(t-1):e.keyCode===RX.ARROW_DOWN&&this.handleChange(t+1)},changePageSize(e){let t=this.stateCurrent,n=t,r=WX(e,this.$data,this.$props);t=t>r?r:t,r===0&&(t=this.stateCurrent),typeof e==`number`&&(Uc(this,`pageSize`)||this.setState({statePageSize:e}),Uc(this,`current`)||this.setState({stateCurrent:t,stateCurrentInputValue:t})),this.__emit(`update:pageSize`,e),t!==n&&this.__emit(`update:current`,t),this.__emit(`showSizeChange`,t,e),this.__emit(`change`,t,e)},handleChange(e){let{disabled:t}=this.$props,n=e;if(this.isValid(n)&&!t){let e=WX(void 0,this.$data,this.$props);return n>e?n=e:n<1&&(n=1),Uc(this,`current`)||this.setState({stateCurrent:n,stateCurrentInputValue:n}),this.__emit(`update:current`,n),this.__emit(`change`,n,this.statePageSize),n}return this.stateCurrent},prev(){this.hasPrev()&&this.handleChange(this.stateCurrent-1)},next(){this.hasNext()&&this.handleChange(this.stateCurrent+1)},jumpPrev(){this.handleChange(this.getJumpPrevPage())},jumpNext(){this.handleChange(this.getJumpNextPage())},hasPrev(){return this.stateCurrent>1},hasNext(){return this.stateCurrentn:e},runIfEnter(e,t){(e.key===`Enter`||e.charCode===13)&&(e.preventDefault(),t(...[...arguments].slice(2)))},runIfEnterPrev(e){this.runIfEnter(e,this.prev)},runIfEnterNext(e){this.runIfEnter(e,this.next)},runIfEnterJumpPrev(e){this.runIfEnter(e,this.jumpPrev)},runIfEnterJumpNext(e){this.runIfEnter(e,this.jumpNext)},handleGoTO(e){(e.keyCode===RX.ENTER||e.type===`click`)&&this.handleChange(this.stateCurrentInputValue)},renderPrev(e){let{itemRender:t}=this.$props,n=t({page:e,type:`prev`,originalElement:this.getItemIcon(`prevIcon`,`prev page`)}),r=!this.hasPrev();return al(n)?s_(n,r?{disabled:r}:{}):n},renderNext(e){let{itemRender:t}=this.$props,n=t({page:e,type:`next`,originalElement:this.getItemIcon(`nextIcon`,`next page`)}),r=!this.hasNext();return al(n)?s_(n,r?{disabled:r}:{}):n}},render(){let{prefixCls:e,disabled:t,hideOnSinglePage:n,total:r,locale:i,showQuickJumper:a,showLessItems:o,showTitle:s,showTotal:c,simple:l,itemRender:u,showPrevNextJumpers:d,jumpPrevIcon:f,jumpNextIcon:p,selectComponentClass:m,selectPrefixCls:g,pageSizeOptions:_}=this.$props,{stateCurrent:v,statePageSize:y}=this,b=Vc(this.$attrs).extraAttrs,{class:x}=b,S=VX(b,[`class`]);if(n===!0&&this.total<=y)return null;let C=WX(void 0,this.$data,this.$props),w=[],T=null,E=null,D=null,O=null,k=null,A=a&&a.goButton,j=o?1:2,M=v-1>0?v-1:0,N=v+1=j*2&&v!==3&&(w[0]=W(LX,{locale:i,rootPrefixCls:e,onClick:this.handleChange,onKeypress:this.runIfEnter,key:r,page:r,class:`${e}-item-after-jump-prev`,active:!1,showTitle:this.showTitle,itemRender:u},null),w.unshift(T)),C-v>=j*2&&v!==C-2&&(w[w.length-1]=W(LX,{locale:i,rootPrefixCls:e,onClick:this.handleChange,onKeypress:this.runIfEnter,key:a,page:a,class:`${e}-item-before-jump-next`,active:!1,showTitle:this.showTitle,itemRender:u},null),w.push(E)),r!==1&&w.unshift(D),a!==C&&w.push(O)}let I=null;c&&(I=W(`li`,{class:`${e}-total-text`},[c(r,[r===0?0:(v-1)*y+1,v*y>r?r:v*y])]));let L=!P||!C,R=!F||!C,ee=this.buildOptionText||this.$slots.buildOptionText;return W(`ul`,h(h({unselectable:`on`,ref:`paginationNode`},S),{},{class:K({[`${e}`]:!0,[`${e}-disabled`]:t},x)}),[I,W(`li`,{title:s?i.prev_page:null,onClick:this.prev,tabindex:L?null:0,onKeypress:this.runIfEnterPrev,class:K(`${e}-prev`,{[`${e}-disabled`]:L}),"aria-disabled":L},[this.renderPrev(M)]),w,W(`li`,{title:s?i.next_page:null,onClick:this.next,tabindex:R?null:0,onKeypress:this.runIfEnterNext,class:K(`${e}-next`,{[`${e}-disabled`]:R}),"aria-disabled":R},[this.renderNext(N)]),W(zX,{disabled:t,locale:i,rootPrefixCls:e,selectComponentClass:m,selectPrefixCls:g,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:v,pageSize:y,pageSizeOptions:_,buildOptionText:ee||null,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:A},null)])}}),KX=e=>{let{componentCls:t}=e;return{[`${t}-disabled`]:{"&, &:hover":{cursor:`not-allowed`,[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:`not-allowed`}},"&:focus-visible":{cursor:`not-allowed`,[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:`not-allowed`}}},[`&${t}-disabled`]:{cursor:`not-allowed`,[`&${t}-mini`]:{[` + &:hover ${t}-item:not(${t}-item-active), + &:active ${t}-item:not(${t}-item-active), + &:hover ${t}-item-link, + &:active ${t}-item-link + `]:{backgroundColor:`transparent`}},[`${t}-item`]:{cursor:`not-allowed`,"&:hover, &:active":{backgroundColor:`transparent`},a:{color:e.colorTextDisabled,backgroundColor:`transparent`,border:`none`,cursor:`not-allowed`},"&-active":{borderColor:e.colorBorder,backgroundColor:e.paginationItemDisabledBgActive,"&:hover, &:active":{backgroundColor:e.paginationItemDisabledBgActive},a:{color:e.paginationItemDisabledColorActive}}},[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:`not-allowed`,"&:hover, &:active":{backgroundColor:`transparent`},[`${t}-simple&`]:{backgroundColor:`transparent`,"&:hover, &:active":{backgroundColor:`transparent`}}},[`${t}-simple-pager`]:{color:e.colorTextDisabled},[`${t}-jump-prev, ${t}-jump-next`]:{[`${t}-item-link-icon`]:{opacity:0},[`${t}-item-ellipsis`]:{opacity:1}}},[`&${t}-simple`]:{[`${t}-prev, ${t}-next`]:{[`&${t}-disabled ${t}-item-link`]:{"&:hover, &:active":{backgroundColor:`transparent`}}}}}},qX=e=>{let{componentCls:t}=e;return{[`&${t}-mini ${t}-total-text, &${t}-mini ${t}-simple-pager`]:{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`},[`&${t}-mini ${t}-item`]:{minWidth:e.paginationItemSizeSM,height:e.paginationItemSizeSM,margin:0,lineHeight:`${e.paginationItemSizeSM-2}px`},[`&${t}-mini ${t}-item:not(${t}-item-active)`]:{backgroundColor:`transparent`,borderColor:`transparent`,"&:hover":{backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive}},[`&${t}-mini ${t}-prev, &${t}-mini ${t}-next`]:{minWidth:e.paginationItemSizeSM,height:e.paginationItemSizeSM,margin:0,lineHeight:`${e.paginationItemSizeSM}px`,[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover ${t}-item-link`]:{backgroundColor:`transparent`}},[` + &${t}-mini ${t}-prev ${t}-item-link, + &${t}-mini ${t}-next ${t}-item-link + `]:{backgroundColor:`transparent`,borderColor:`transparent`,"&::after":{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`}},[`&${t}-mini ${t}-jump-prev, &${t}-mini ${t}-jump-next`]:{height:e.paginationItemSizeSM,marginInlineEnd:0,lineHeight:`${e.paginationItemSizeSM}px`},[`&${t}-mini ${t}-options`]:{marginInlineStart:e.paginationMiniOptionsMarginInlineStart,"&-size-changer":{top:e.paginationMiniOptionsSizeChangerTop},"&-quick-jumper":{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`,input:g(g({},AF(e)),{width:e.paginationMiniQuickJumperInputWidth,height:e.controlHeightSM})}}}},JX=e=>{let{componentCls:t}=e;return{[` + &${t}-simple ${t}-prev, + &${t}-simple ${t}-next + `]:{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`,verticalAlign:`top`,[`${t}-item-link`]:{height:e.paginationItemSizeSM,backgroundColor:`transparent`,border:0,"&:hover":{backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive},"&::after":{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`}}},[`&${t}-simple ${t}-simple-pager`]:{display:`inline-block`,height:e.paginationItemSizeSM,marginInlineEnd:e.marginXS,input:{boxSizing:`border-box`,height:`100%`,marginInlineEnd:e.marginXS,padding:`0 ${e.paginationItemPaddingInline}px`,textAlign:`center`,backgroundColor:e.paginationItemInputBg,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,outline:`none`,transition:`border-color ${e.motionDurationMid}`,color:`inherit`,"&:hover":{borderColor:e.colorPrimary},"&:focus":{borderColor:e.colorPrimaryHover,boxShadow:`${e.inputOutlineOffset}px 0 ${e.controlOutlineWidth}px ${e.controlOutline}`},"&[disabled]":{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,cursor:`not-allowed`}}}}},YX=e=>{let{componentCls:t}=e;return{[`${t}-jump-prev, ${t}-jump-next`]:{outline:0,[`${t}-item-container`]:{position:`relative`,[`${t}-item-link-icon`]:{color:e.colorPrimary,fontSize:e.fontSizeSM,opacity:0,transition:`all ${e.motionDurationMid}`,"&-svg":{top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,margin:`auto`}},[`${t}-item-ellipsis`]:{position:`absolute`,top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,display:`block`,margin:`auto`,color:e.colorTextDisabled,fontFamily:`Arial, Helvetica, sans-serif`,letterSpacing:e.paginationEllipsisLetterSpacing,textAlign:`center`,textIndent:e.paginationEllipsisTextIndent,opacity:1,transition:`all ${e.motionDurationMid}`}},"&:hover":{[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}},"&:focus-visible":g({[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}},Np(e))},[` + ${t}-prev, + ${t}-jump-prev, + ${t}-jump-next + `]:{marginInlineEnd:e.marginXS},[` + ${t}-prev, + ${t}-next, + ${t}-jump-prev, + ${t}-jump-next + `]:{display:`inline-block`,minWidth:e.paginationItemSize,height:e.paginationItemSize,color:e.colorText,fontFamily:e.paginationFontFamily,lineHeight:`${e.paginationItemSize}px`,textAlign:`center`,verticalAlign:`middle`,listStyle:`none`,borderRadius:e.borderRadius,cursor:`pointer`,transition:`all ${e.motionDurationMid}`},[`${t}-prev, ${t}-next`]:{fontFamily:`Arial, Helvetica, sans-serif`,outline:0,button:{color:e.colorText,cursor:`pointer`,userSelect:`none`},[`${t}-item-link`]:{display:`block`,width:`100%`,height:`100%`,padding:0,fontSize:e.fontSizeSM,textAlign:`center`,backgroundColor:`transparent`,border:`${e.lineWidth}px ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:`none`,transition:`all ${e.motionDurationMid}`},[`&:focus-visible ${t}-item-link`]:g({},Np(e)),[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover`]:{[`${t}-item-link`]:{backgroundColor:`transparent`}}},[`${t}-slash`]:{marginInlineEnd:e.paginationSlashMarginInlineEnd,marginInlineStart:e.paginationSlashMarginInlineStart},[`${t}-options`]:{display:`inline-block`,marginInlineStart:e.margin,verticalAlign:`middle`,"&-size-changer.-select":{display:`inline-block`,width:`auto`},"&-quick-jumper":{display:`inline-block`,height:e.controlHeight,marginInlineStart:e.marginXS,lineHeight:`${e.controlHeight}px`,verticalAlign:`top`,input:g(g({},MF(e)),{width:e.controlHeightLG*1.25,height:e.controlHeight,boxSizing:`border-box`,margin:0,marginInlineStart:e.marginXS,marginInlineEnd:e.marginXS})}}}},XX=e=>{let{componentCls:t}=e;return{[`${t}-item`]:g(g({display:`inline-block`,minWidth:e.paginationItemSize,height:e.paginationItemSize,marginInlineEnd:e.marginXS,fontFamily:e.paginationFontFamily,lineHeight:`${e.paginationItemSize-2}px`,textAlign:`center`,verticalAlign:`middle`,listStyle:`none`,backgroundColor:`transparent`,border:`${e.lineWidth}px ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:0,cursor:`pointer`,userSelect:`none`,a:{display:`block`,padding:`0 ${e.paginationItemPaddingInline}px`,color:e.colorText,transition:`none`,"&:hover":{textDecoration:`none`}},[`&:not(${t}-item-active)`]:{"&:hover":{transition:`all ${e.motionDurationMid}`,backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive}}},Pp(e)),{"&-active":{fontWeight:e.paginationFontWeightActive,backgroundColor:e.paginationItemBgActive,borderColor:e.colorPrimary,a:{color:e.colorPrimary},"&:hover":{borderColor:e.colorPrimaryHover},"&:hover a":{color:e.colorPrimaryHover}}})}},ZX=e=>{let{componentCls:t}=e;return{[t]:g(g(g(g(g(g(g(g({},Op(e)),{"ul, ol":{margin:0,padding:0,listStyle:`none`},"&::after":{display:`block`,clear:`both`,height:0,overflow:`hidden`,visibility:`hidden`,content:`""`},[`${t}-total-text`]:{display:`inline-block`,height:e.paginationItemSize,marginInlineEnd:e.marginXS,lineHeight:`${e.paginationItemSize-2}px`,verticalAlign:`middle`}}),XX(e)),YX(e)),JX(e)),qX(e)),KX(e)),{[`@media only screen and (max-width: ${e.screenLG}px)`]:{[`${t}-item`]:{"&-after-jump-prev, &-before-jump-next":{display:`none`}}},[`@media only screen and (max-width: ${e.screenSM}px)`]:{[`${t}-options`]:{display:`none`}}}),[`&${e.componentCls}-rtl`]:{direction:`rtl`}}},QX=e=>{let{componentCls:t}=e;return{[`${t}${t}-disabled`]:{"&, &:hover":{[`${t}-item-link`]:{borderColor:e.colorBorder}},"&:focus-visible":{[`${t}-item-link`]:{borderColor:e.colorBorder}},[`${t}-item, ${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,[`&:hover:not(${t}-item-active)`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,a:{color:e.colorTextDisabled}},[`&${t}-item-active`]:{backgroundColor:e.paginationItemDisabledBgActive}},[`${t}-prev, ${t}-next`]:{"&:hover button":{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,color:e.colorTextDisabled},[`${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder}}},[t]:{[`${t}-prev, ${t}-next`]:{"&:hover button":{borderColor:e.colorPrimaryHover,backgroundColor:e.paginationItemBg},[`${t}-item-link`]:{backgroundColor:e.paginationItemLinkBg,borderColor:e.colorBorder},[`&:hover ${t}-item-link`]:{borderColor:e.colorPrimary,backgroundColor:e.paginationItemBg,color:e.colorPrimary},[`&${t}-disabled`]:{[`${t}-item-link`]:{borderColor:e.colorBorder,color:e.colorTextDisabled}}},[`${t}-item`]:{backgroundColor:e.paginationItemBg,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,[`&:hover:not(${t}-item-active)`]:{borderColor:e.colorPrimary,backgroundColor:e.paginationItemBg,a:{color:e.colorPrimary}},"&-active":{borderColor:e.colorPrimary}}}}},$X=Fp(`Pagination`,e=>{let t=Rp(e,{paginationItemSize:e.controlHeight,paginationFontFamily:e.fontFamily,paginationItemBg:e.colorBgContainer,paginationItemBgActive:e.colorBgContainer,paginationFontWeightActive:e.fontWeightStrong,paginationItemSizeSM:e.controlHeightSM,paginationItemInputBg:e.colorBgContainer,paginationMiniOptionsSizeChangerTop:0,paginationItemDisabledBgActive:e.controlItemBgActiveDisabled,paginationItemDisabledColorActive:e.colorTextDisabled,paginationItemLinkBg:e.colorBgContainer,inputOutlineOffset:`0 0`,paginationMiniOptionsMarginInlineStart:e.marginXXS/2,paginationMiniQuickJumperInputWidth:e.controlHeightLG*1.1,paginationItemPaddingInline:e.marginXXS*1.5,paginationEllipsisLetterSpacing:e.marginXXS/2,paginationSlashMarginInlineStart:e.marginXXS,paginationSlashMarginInlineEnd:e.marginSM,paginationEllipsisTextIndent:`0.13em`},zF(e));return[ZX(t),e.wireframe&&QX(t)]}),eZ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ia.getPrefixCls(`select`,e.selectPrefixCls)),d=EA(),[f]=$l(`Pagination`,Gl,vn(e,`locale`)),p=e=>{let t=W(`span`,{class:`${e}-item-ellipsis`},[Qa(`•••`)]);return{prevIcon:W(`button`,{class:`${e}-item-link`,type:`button`,tabindex:-1},[o.value===`rtl`?W(Ij,null,null):W(bB,null,null)]),nextIcon:W(`button`,{class:`${e}-item-link`,type:`button`,tabindex:-1},[o.value===`rtl`?W(bB,null,null):W(Ij,null,null)]),jumpPrevIcon:W(`a`,{rel:`nofollow`,class:`${e}-item-link`},[W(`div`,{class:`${e}-item-container`},[o.value===`rtl`?W(PX,{class:`${e}-item-link-icon`},null):W(AX,{class:`${e}-item-link-icon`},null),t])]),jumpNextIcon:W(`a`,{rel:`nofollow`,class:`${e}-item-link`},[W(`div`,{class:`${e}-item-container`},[o.value===`rtl`?W(AX,{class:`${e}-item-link-icon`},null):W(PX,{class:`${e}-item-link-icon`},null),t])])}};return()=>{let{itemRender:t=n.itemRender,buildOptionText:a=n.buildOptionText,selectComponentClass:m,responsive:h}=e,_=eZ(e,[`itemRender`,`buildOptionText`,`selectComponentClass`,`responsive`]),v=s.value===`small`||!!(d.value?.xs&&!s.value&&h),y=g(g(g(g(g({},_),p(i.value)),{prefixCls:i.value,selectPrefixCls:u.value,selectComponentClass:m||(v?FX:IX),locale:f.value,buildOptionText:a}),r),{class:K({[`${i.value}-mini`]:v,[`${i.value}-rtl`]:o.value===`rtl`},r.class,l.value),itemRender:t});return c(W(GX,y,null))}}})),nZ=U({compatConfig:{MODE:3},name:`AListItemMeta`,props:{avatar:Q.any,description:Q.any,prefixCls:String,title:Q.any},displayName:`AListItemMeta`,__ANT_LIST_ITEM_META:!0,slots:Object,setup(e,t){let{slots:n}=t,{prefixCls:r}=Z(`list`,e);return()=>{let t=`${r.value}-item-meta`,i=e.title??n.title?.call(n),a=e.description??n.description?.call(n),o=e.avatar??n.avatar?.call(n),s=W(`div`,{class:`${r.value}-item-meta-content`},[i&&W(`h4`,{class:`${r.value}-item-meta-title`},[i]),a&&W(`div`,{class:`${r.value}-item-meta-description`},[a])]);return W(`div`,{class:t},[o&&W(`div`,{class:`${r.value}-item-meta-avatar`},[o]),(i||a)&&s])}}}),rZ=Symbol(`ListContextKey`),iZ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let e=n.default?.call(n)||[],t;return e.forEach(e=>{nl(e)&&!tl(e)&&(t=!0)}),t&&e.length>1},c=()=>{let t=e.extra??n.extra?.call(n);return i.value===`vertical`?!!t:!s()};return()=>{let{class:t}=r,s=iZ(r,[`class`]),l=o.value,u=e.extra??n.extra?.call(n),d=n.default?.call(n),f=e.actions??Gc(n.actions?.call(n));f=f&&!Array.isArray(f)?[f]:f;let p=f&&f.length>0&&W(`ul`,{class:`${l}-item-action`,key:`actions`},[f.map((e,t)=>W(`li`,{key:`${l}-item-action-${t}`},[e,t!==f.length-1&&W(`em`,{class:`${l}-item-action-split`},null)]))]),m=W(a.value?`div`:`li`,h(h({},s),{},{class:K(`${l}-item`,{[`${l}-item-no-flex`]:!c()},t)}),{default:()=>[i.value===`vertical`&&u?[W(`div`,{class:`${l}-item-main`,key:`content`},[d,p]),W(`div`,{class:`${l}-item-extra`,key:`extra`},[u])]:[d,p,s_(u,{key:`extra`})]]});return a.value?W(mH,{flex:1,style:e.colStyle},{default:()=>[m]}):m}}}),oZ=e=>{let{listBorderedCls:t,componentCls:n,paddingLG:r,margin:i,padding:a,listItemPaddingSM:o,marginLG:s,borderRadiusLG:c}=e;return{[`${t}`]:{border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:c,[`${n}-header,${n}-footer,${n}-item`]:{paddingInline:r},[`${n}-pagination`]:{margin:`${i}px ${s}px`}},[`${t}${n}-sm`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:o}},[`${t}${n}-lg`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:`${a}px ${r}px`}}}},sZ=e=>{let{componentCls:t,screenSM:n,screenMD:r,marginLG:i,marginSM:a,margin:o}=e;return{[`@media screen and (max-width:${r})`]:{[`${t}`]:{[`${t}-item`]:{[`${t}-item-action`]:{marginInlineStart:i}}},[`${t}-vertical`]:{[`${t}-item`]:{[`${t}-item-extra`]:{marginInlineStart:i}}}},[`@media screen and (max-width: ${n})`]:{[`${t}`]:{[`${t}-item`]:{flexWrap:`wrap`,[`${t}-action`]:{marginInlineStart:a}}},[`${t}-vertical`]:{[`${t}-item`]:{flexWrap:`wrap-reverse`,[`${t}-item-main`]:{minWidth:e.contentWidth},[`${t}-item-extra`]:{margin:`auto auto ${o}px`}}}}}},cZ=e=>{let{componentCls:t,antCls:n,controlHeight:r,minHeight:i,paddingSM:a,marginLG:o,padding:s,listItemPadding:c,colorPrimary:l,listItemPaddingSM:u,listItemPaddingLG:d,paddingXS:f,margin:p,colorText:m,colorTextDescription:h,motionDurationSlow:_,lineWidth:v}=e;return{[`${t}`]:g(g({},Op(e)),{position:`relative`,"*":{outline:`none`},[`${t}-header, ${t}-footer`]:{background:`transparent`,paddingBlock:a},[`${t}-pagination`]:{marginBlockStart:o,textAlign:`end`,[`${n}-pagination-options`]:{textAlign:`start`}},[`${t}-spin`]:{minHeight:i,textAlign:`center`},[`${t}-items`]:{margin:0,padding:0,listStyle:`none`},[`${t}-item`]:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:c,color:m,[`${t}-item-meta`]:{display:`flex`,flex:1,alignItems:`flex-start`,maxWidth:`100%`,[`${t}-item-meta-avatar`]:{marginInlineEnd:s},[`${t}-item-meta-content`]:{flex:`1 0`,width:0,color:m},[`${t}-item-meta-title`]:{marginBottom:e.marginXXS,color:m,fontSize:e.fontSize,lineHeight:e.lineHeight,"> a":{color:m,transition:`all ${_}`,"&:hover":{color:l}}},[`${t}-item-meta-description`]:{color:h,fontSize:e.fontSize,lineHeight:e.lineHeight}},[`${t}-item-action`]:{flex:`0 0 auto`,marginInlineStart:e.marginXXL,padding:0,fontSize:0,listStyle:`none`,"& > li":{position:`relative`,display:`inline-block`,padding:`0 ${f}px`,color:h,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:`center`,"&:first-child":{paddingInlineStart:0}},[`${t}-item-action-split`]:{position:`absolute`,insetBlockStart:`50%`,insetInlineEnd:0,width:v,height:Math.ceil(e.fontSize*e.lineHeight)-e.marginXXS*2,transform:`translateY(-50%)`,backgroundColor:e.colorSplit}}},[`${t}-empty`]:{padding:`${s}px 0`,color:h,fontSize:e.fontSizeSM,textAlign:`center`},[`${t}-empty-text`]:{padding:s,color:e.colorTextDisabled,fontSize:e.fontSize,textAlign:`center`},[`${t}-item-no-flex`]:{display:`block`}}),[`${t}-grid ${n}-col > ${t}-item`]:{display:`block`,maxWidth:`100%`,marginBlockEnd:p,paddingBlock:0,borderBlockEnd:`none`},[`${t}-vertical ${t}-item`]:{alignItems:`initial`,[`${t}-item-main`]:{display:`block`,flex:1},[`${t}-item-extra`]:{marginInlineStart:o},[`${t}-item-meta`]:{marginBlockEnd:s,[`${t}-item-meta-title`]:{marginBlockEnd:a,color:m,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}},[`${t}-item-action`]:{marginBlockStart:s,marginInlineStart:`auto`,"> li":{padding:`0 ${s}px`,"&:first-child":{paddingInlineStart:0}}}},[`${t}-split ${t}-item`]:{borderBlockEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBlockEnd:`none`}},[`${t}-split ${t}-header`]:{borderBlockEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-split${t}-empty ${t}-footer`]:{borderTop:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-loading ${t}-spin-nested-loading`]:{minHeight:r},[`${t}-split${t}-something-after-last-item ${n}-spin-container > ${t}-items > ${t}-item:last-child`]:{borderBlockEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-lg ${t}-item`]:{padding:d},[`${t}-sm ${t}-item`]:{padding:u},[`${t}:not(${t}-vertical)`]:{[`${t}-item-no-flex`]:{[`${t}-item-action`]:{float:`right`}}}}},lZ=Fp(`List`,e=>{let t=Rp(e,{listBorderedCls:`${e.componentCls}-bordered`,minHeight:e.controlHeightLG,listItemPadding:`${e.paddingContentVertical}px ${e.paddingContentHorizontalLG}px`,listItemPaddingSM:`${e.paddingContentVerticalSM}px ${e.paddingContentHorizontal}px`,listItemPaddingLG:`${e.paddingContentVerticalLG}px ${e.paddingContentHorizontalLG}px`});return[cZ(t),oZ(t),sZ(t)]},{contentWidth:220}),uZ=U({compatConfig:{MODE:3},name:`AList`,inheritAttrs:!1,Item:aZ,props:Bc({bordered:J(),dataSource:xl(),extra:bl(),grid:q(),itemLayout:String,loading:Sl([Boolean,Object]),loadMore:bl(),pagination:Sl([Boolean,Object]),prefixCls:String,rowKey:Sl([String,Number,Function]),renderItem:Y(),size:String,split:J(),header:bl(),footer:bl(),locale:q()},{dataSource:[],bordered:!1,split:!0,loading:!1,pagination:!1}),slots:Object,setup(e,t){let{slots:n,attrs:r}=t;er(rZ,{grid:vn(e,`grid`),itemLayout:vn(e,`itemLayout`)});let i={current:1,total:0},{prefixCls:a,direction:o,renderEmpty:s}=Z(`list`,e),[c,l]=lZ(a),u=G(()=>e.pagination&&typeof e.pagination==`object`?e.pagination:{}),d=B(u.value.defaultCurrent??1),f=B(u.value.defaultPageSize??10);H(u,()=>{`current`in u.value&&(d.value=u.value.current),`pageSize`in u.value&&(f.value=u.value.pageSize)});let p=[],m=e=>(t,n)=>{d.value=t,f.value=n,u.value[e]&&u.value[e](t,n)},_=m(`onChange`),v=m(`onShowSizeChange`),y=G(()=>typeof e.loading==`boolean`?{spinning:e.loading}:e.loading),b=G(()=>y.value&&y.value.spinning),x=G(()=>{let t=``;switch(e.size){case`large`:t=`lg`;break;case`small`:t=`sm`}return t}),S=G(()=>({[`${a.value}`]:!0,[`${a.value}-vertical`]:e.itemLayout===`vertical`,[`${a.value}-${x.value}`]:x.value,[`${a.value}-split`]:e.split,[`${a.value}-bordered`]:e.bordered,[`${a.value}-loading`]:b.value,[`${a.value}-grid`]:!!e.grid,[`${a.value}-rtl`]:o.value===`rtl`})),C=G(()=>{let t=g(g(g({},i),{total:e.dataSource.length,current:d.value,pageSize:f.value}),e.pagination||{}),n=Math.ceil(t.total/t.pageSize);return t.current>n&&(t.current=n),t}),w=G(()=>{let t=[...e.dataSource];return e.pagination&&e.dataSource.length>(C.value.current-1)*C.value.pageSize&&(t=[...e.dataSource].splice((C.value.current-1)*C.value.pageSize,C.value.pageSize)),t}),T=EA(),E=DA(()=>{for(let e=0;e{if(!e.grid)return;let t=E.value&&e.grid[E.value]?e.grid[E.value]:e.grid.column;if(t)return{width:`${100/t}%`,maxWidth:`${100/t}%`}}),O=(t,r)=>{let i=e.renderItem??n.renderItem;if(!i)return null;let a,o=typeof e.rowKey;return a=o===`function`?e.rowKey(t):o===`string`||o===`number`?t[e.rowKey]:t.key,a||=`list-item-${r}`,p[r]=a,i({item:t,index:r})};return()=>{let t=e.loadMore??n.loadMore?.call(n),i=e.footer??n.footer?.call(n),o=e.header??n.header?.call(n),u=Gc(n.default?.call(n)),d=!!(t||e.pagination||i),f=K(g(g({},S.value),{[`${a.value}-something-after-last-item`]:d}),r.class,l.value),m=e.pagination?W(`div`,{class:`${a.value}-pagination`},[W(tZ,h(h({},C.value),{},{onChange:_,onShowSizeChange:v}),null)]):null,x=b.value&&W(`div`,{style:{minHeight:`53px`}},null);if(w.value.length>0){p.length=0;let t=w.value.map((e,t)=>O(e,t)),n=t.map((e,t)=>W(`div`,{key:p[t],style:D.value},[e]));x=e.grid?W(RB,{gutter:e.grid.gutter},{default:()=>[n]}):W(`ul`,{class:`${a.value}-items`},[t])}else!u.length&&!b.value&&(x=W(`div`,{class:`${a.value}-empty-text`},[e.locale?.emptyText||s(`List`)]));let T=C.value.position||`bottom`;return c(W(`div`,h(h({},r),{},{class:f}),[(T===`top`||T===`both`)&&m,o&&W(`div`,{class:`${a.value}-header`},[o]),W(EX,y.value,{default:()=>[x,u]}),i&&W(`div`,{class:`${a.value}-footer`},[i]),t||(T===`bottom`||T===`both`)&&m]))}}});uZ.install=function(e){return e.component(uZ.name,uZ),e.component(uZ.Item.name,uZ.Item),e.component(uZ.Item.Meta.name,uZ.Item.Meta),e};function dZ(e){let{selectionStart:t}=e;return e.value.slice(0,t)}function fZ(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``;return(Array.isArray(t)?t:[t]).reduce((t,n)=>{let r=e.lastIndexOf(n);return r>t.location?{location:r,prefix:n}:t},{location:-1,prefix:``})}function pZ(e){return(e||``).toLowerCase()}function mZ(e,t,n){let r=e[0];if(!r||r===n)return e;let i=e,a=t.length;for(let e=0;e[]}},setup(e,t){let{slots:n}=t,{activeIndex:r,setActiveIndex:i,selectOption:a,onFocus:o=bZ,loading:s}=tr(yZ,{activeIndex:V(),loading:V(!1)}),c,l=e=>{clearTimeout(c),c=setTimeout(()=>{o(e)})};return ni(()=>{clearTimeout(c)}),()=>{let{prefixCls:t,options:o}=e,c=o[r.value]||{};return W(EM,{prefixCls:`${t}-menu`,activeKey:c.value,onSelect:e=>{let{key:t}=e,n=o.find(e=>{let{value:n}=e;return n===t});a(n)},onMousedown:l},{default:()=>[!s.value&&o.map((e,t)=>{let{value:r,disabled:a,label:o=e.value,class:s,style:c}=e;return W(oM,{key:r,disabled:a,onMouseenter:()=>{i(t)},class:s,style:c},{default:()=>[n.option?.call(n,e)??(typeof o==`function`?o(e):o)]})}),!s.value&&o.length===0?W(oM,{key:`notFoundContent`,disabled:!0},{default:()=>[n.notFoundContent?.call(n)]}):null,s.value&&W(oM,{key:`loading`,disabled:!0},{default:()=>[W(EX,{size:`small`},null)]})]})}}}),SZ={bottomRight:{points:[`tl`,`br`],offset:[0,4],overflow:{adjustX:0,adjustY:1}},bottomLeft:{points:[`tr`,`bl`],offset:[0,4],overflow:{adjustX:0,adjustY:1}},topRight:{points:[`bl`,`tr`],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topLeft:{points:[`br`,`tl`],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}},CZ=U({compatConfig:{MODE:3},name:`KeywordTrigger`,props:{loading:{type:Boolean,default:void 0},options:{type:Array,default:()=>[]},prefixCls:String,placement:String,visible:{type:Boolean,default:void 0},transitionName:String,getPopupContainer:Function,direction:String,dropdownClassName:String},setup(e,t){let{slots:n}=t,r=()=>`${e.prefixCls}-dropdown`,i=()=>{let{options:t}=e;return W(xZ,{prefixCls:r(),options:t},{notFoundContent:n.notFoundContent,option:n.option})},a=G(()=>{let{placement:t,direction:n}=e,r=`topRight`;return r=n===`rtl`?t===`top`?`topLeft`:`bottomLeft`:t===`top`?`topRight`:`bottomRight`,r});return()=>{let{visible:t,transitionName:o,getPopupContainer:s}=e;return W(Ob,{prefixCls:r(),popupVisible:t,popup:i(),popupClassName:e.dropdownClassName,popupPlacement:a.value,popupTransitionName:o,builtinPlacements:SZ,getPopupContainer:s},{default:n.default})}}}),wZ=hl(`top`,`bottom`),TZ={autofocus:{type:Boolean,default:void 0},prefix:Q.oneOfType([Q.string,Q.arrayOf(Q.string)]),prefixCls:String,value:String,disabled:{type:Boolean,default:void 0},split:String,transitionName:String,placement:Q.oneOf(wZ),character:Q.any,characterRender:Function,filterOption:{type:[Boolean,Function]},validateSearch:Function,getPopupContainer:{type:Function},options:xl(),loading:{type:Boolean,default:void 0},rows:[Number,String],direction:{type:String}},EZ=g(g({},TZ),{dropdownClassName:String}),DZ={prefix:`@`,split:` `,rows:1,validateSearch:_Z,filterOption:()=>vZ};Bc(EZ,DZ);var OZ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{l.value=e.value});let u=e=>{n(`change`,e)},d=e=>{let{target:{value:t}}=e;u(t)},f=(e,t,n)=>{g(l,{measuring:!0,measureText:e,measurePrefix:t,measureLocation:n,activeIndex:0})},p=e=>{g(l,{measuring:!1,measureLocation:0,measureText:null}),e?.()},m=e=>{let{which:t}=e;if(l.measuring){if(t===$.UP||t===$.DOWN){let n=E.value.length,r=t===$.UP?-1:1,i=(l.activeIndex+r+n)%n;l.activeIndex=i,e.preventDefault()}else if(t===$.ESC)p();else if(t===$.ENTER){if(e.preventDefault(),!E.value.length){p();return}let t=E.value[l.activeIndex];C(t)}}},_=t=>{let{key:r,which:i}=t,{measureText:a,measuring:o}=l,{prefix:s,validateSearch:c}=e,u=t.target;if(u.composing)return;let d=dZ(u),{location:m,prefix:h}=fZ(d,s);if([$.ESC,$.UP,$.DOWN,$.ENTER].indexOf(i)===-1){if(m!==-1){let t=d.slice(m+h.length),i=c(t,e),s=!!T(t).length;i?(r===h||r===`Shift`||o||t!==a&&s)&&f(t,h,m):o&&p(),i&&n(`search`,t,h)}else o&&p()}},v=e=>{l.measuring||n(`pressenter`,e)},y=e=>{x(e)},b=e=>{S(e)},x=e=>{clearTimeout(c.value);let{isFocus:t}=l;!t&&e&&n(`focus`,e),l.isFocus=!0},S=e=>{c.value=setTimeout(()=>{l.isFocus=!1,p(),n(`blur`,e)},100)},C=t=>{let{split:r}=e,{value:i=``}=t,{text:a,selectionLocation:o}=hZ(l.value,{measureLocation:l.measureLocation,targetText:i,prefix:l.measurePrefix,selectionStart:s.value.getSelectionStart(),split:r});u(a),p(()=>{gZ(s.value.input,o)}),n(`select`,t,l.measurePrefix)},w=e=>{l.activeIndex=e},T=t=>{let n=t||l.measureText||``,{filterOption:r}=e;return e.options.filter(e=>!r||r(n,e))},E=G(()=>T());return i({blur:()=>{s.value.blur()},focus:()=>{s.value.focus()}}),er(yZ,{activeIndex:vn(l,`activeIndex`),setActiveIndex:w,selectOption:C,onFocus:x,onBlur:S,loading:vn(e,`loading`)}),ti(()=>{zn(()=>{l.measuring&&(o.value.scrollTop=s.value.getScrollTop())})}),()=>{let{measureLocation:t,measurePrefix:n,measuring:i}=l,{prefixCls:c,placement:u,transitionName:f,getPopupContainer:p,direction:x}=e,S=OZ(e,[`prefixCls`,`placement`,`transitionName`,`getPopupContainer`,`direction`]),{class:C,style:w}=r,T=OZ(r,[`class`,`style`]),D=sm(S,[`value`,`prefix`,`split`,`validateSearch`,`filterOption`,`options`,`loading`]),O=g(g(g({},D),T),{onChange:kZ,onSelect:kZ,value:l.value,onInput:d,onBlur:b,onKeydown:m,onKeyup:_,onFocus:y,onPressenter:v});return W(`div`,{class:K(c,C),style:w},[W(Bb,h(h({},O),{},{ref:s,tag:`textarea`}),null),i&&W(`div`,{ref:o,class:`${c}-measure`},[l.value.slice(0,t),W(CZ,{prefixCls:c,transitionName:f,dropdownClassName:e.dropdownClassName,placement:u,options:i?E.value:[],visible:!0,direction:x,getPopupContainer:p},{default:()=>[W(`span`,null,[n])],notFoundContent:a.notFoundContent,option:a.option}),l.value.slice(t+n.length)])])}}}),jZ={value:String,disabled:Boolean,payload:q()},MZ=g(g({},jZ),{label:yl([])}),NZ={name:`Option`,props:MZ,render(e,t){let{slots:n}=t;return n.default?.call(n)}};g({compatConfig:{MODE:3}},NZ);var PZ=AZ,FZ=e=>{let{componentCls:t,colorTextDisabled:n,controlItemBgHover:r,controlPaddingHorizontal:i,colorText:a,motionDurationSlow:o,lineHeight:s,controlHeight:c,inputPaddingHorizontal:l,inputPaddingVertical:u,fontSize:d,colorBgElevated:f,borderRadiusLG:p,boxShadowSecondary:m}=e,h=Math.round((e.controlHeight-e.fontSize*e.lineHeight)/2);return{[t]:g(g(g(g(g({},Op(e)),MF(e)),{position:`relative`,display:`inline-block`,height:`auto`,padding:0,overflow:`hidden`,lineHeight:s,whiteSpace:`pre-wrap`,verticalAlign:`bottom`}),jF(e,t)),{"&-disabled":{"> textarea":g({},OF(e))},"&-focused":g({},DF(e)),[`&-affix-wrapper ${t}-suffix`]:{position:`absolute`,top:0,insetInlineEnd:l,bottom:0,zIndex:1,display:`inline-flex`,alignItems:`center`,margin:`auto`},[`> textarea, ${t}-measure`]:{color:a,boxSizing:`border-box`,minHeight:c-2,margin:0,padding:`${u}px ${l}px`,overflow:`inherit`,overflowX:`hidden`,overflowY:`auto`,fontWeight:`inherit`,fontSize:`inherit`,fontFamily:`inherit`,fontStyle:`inherit`,fontVariant:`inherit`,fontSizeAdjust:`inherit`,fontStretch:`inherit`,lineHeight:`inherit`,direction:`inherit`,letterSpacing:`inherit`,whiteSpace:`inherit`,textAlign:`inherit`,verticalAlign:`top`,wordWrap:`break-word`,wordBreak:`inherit`,tabSize:`inherit`},"> textarea":g({width:`100%`,border:`none`,outline:`none`,resize:`none`,backgroundColor:`inherit`},TF(e.colorTextPlaceholder)),[`${t}-measure`]:{position:`absolute`,top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:-1,color:`transparent`,pointerEvents:`none`,"> span":{display:`inline-block`,minHeight:`1em`}},"&-dropdown":g(g({},Op(e)),{position:`absolute`,top:-9999,insetInlineStart:-9999,zIndex:e.zIndexPopup,boxSizing:`border-box`,fontSize:d,fontVariant:`initial`,backgroundColor:f,borderRadius:p,outline:`none`,boxShadow:m,"&-hidden":{display:`none`},[`${t}-dropdown-menu`]:{maxHeight:e.dropdownHeight,marginBottom:0,paddingInlineStart:0,overflow:`auto`,listStyle:`none`,outline:`none`,"&-item":g(g({},Dp),{position:`relative`,display:`block`,minWidth:e.controlItemWidth,padding:`${h}px ${i}px`,color:a,fontWeight:`normal`,lineHeight:s,cursor:`pointer`,transition:`background ${o} ease`,"&:hover":{backgroundColor:r},"&:first-child":{borderStartStartRadius:p,borderStartEndRadius:p,borderEndStartRadius:0,borderEndEndRadius:0},"&:last-child":{borderStartStartRadius:0,borderStartEndRadius:0,borderEndStartRadius:p,borderEndEndRadius:p},"&-disabled":{color:n,cursor:`not-allowed`,"&:hover":{color:n,backgroundColor:r,cursor:`not-allowed`}},"&-selected":{color:a,fontWeight:e.fontWeightStrong,backgroundColor:r},"&-active":{backgroundColor:r}})}})})}},IZ=Fp(`Mentions`,e=>[FZ(zF(e))],e=>({dropdownHeight:250,controlItemWidth:100,zIndexPopup:e.zIndexPopupBase+50})),LZ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i0&&arguments[0]!==void 0?arguments[0]:``,{prefix:t=`@`,split:n=` `}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=Array.isArray(t)?t:[t];return e.split(n).map(function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``,t=null;return r.some(n=>e.slice(0,n.length)===n&&(t=n,!0)),t===null?null:{prefix:t,value:e.slice(t.length)}}).filter(e=>!!e&&!!e.value)},BZ=U({compatConfig:{MODE:3},name:`AMentions`,inheritAttrs:!1,props:g(g({},TZ),{loading:{type:Boolean,default:void 0},onFocus:{type:Function},onBlur:{type:Function},onSelect:{type:Function},onChange:{type:Function},onPressenter:{type:Function},"onUpdate:value":{type:Function},notFoundContent:Q.any,defaultValue:String,id:String,status:String}),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i,expose:a}=t,{prefixCls:o,renderEmpty:s,direction:c}=Z(`mentions`,e),[l,u]=IZ(o),d=V(!1),f=V(null),p=V(e.value??e.defaultValue??``),m=aw(),_=sw.useInject(),v=G(()=>uw(_.status,e.status));zj({prefixCls:G(()=>`${o.value}-menu`),mode:G(()=>`vertical`),selectable:G(()=>!1),onClick:()=>{},validator:e=>{let{mode:t}=e;Ru(!t||t===`vertical`,`Mentions`,`mode="${t}" is not supported for Mentions's Menu.`)}}),H(()=>e.value,e=>{p.value=e});let y=e=>{d.value=!0,r(`focus`,e)},b=e=>{d.value=!1,r(`blur`,e),m.onFieldBlur()},x=function(){r(`select`,...arguments),d.value=!0},S=t=>{e.value===void 0&&(p.value=t),r(`update:value`,t),r(`change`,t),m.onFieldChange()},C=()=>{let t=e.notFoundContent;return t===void 0?n.notFoundContent?n.notFoundContent():s(`Select`):t},w=()=>Gc(n.default?.call(n)||[]).map(e=>{var t;return g(g({},Jc(e)),{label:((t=e.children)?.default)?.call(t)})});a({focus:()=>{f.value.focus()},blur:()=>{f.value.blur()}});let T=G(()=>e.loading?RZ:e.filterOption);return()=>{let{disabled:t,getPopupContainer:r,rows:a=1,id:s=m.id.value}=e,E=LZ(e,[`disabled`,`getPopupContainer`,`rows`,`id`]),{hasFeedback:D,feedbackIcon:O}=_,{class:k}=i,A=LZ(i,[`class`]),j=sm(E,[`defaultValue`,`onUpdate:value`,`prefixCls`]),M=K({[`${o.value}-disabled`]:t,[`${o.value}-focused`]:d.value,[`${o.value}-rtl`]:c.value===`rtl`},lw(o.value,v.value),!D&&k,u.value),N=W(PZ,h(h({},g(g(g(g({prefixCls:o.value},j),{disabled:t,direction:c.value,filterOption:T.value,getPopupContainer:r,options:e.loading?[{value:`ANTDV_SEARCHING`,disabled:!0,label:W(EX,{size:`small`},null)}]:e.options||w(),class:M}),A),{rows:a,onChange:S,onSelect:x,onFocus:y,onBlur:b,ref:f,value:p.value,id:s})),{},{dropdownClassName:u.value}),{notFoundContent:C,option:n.option});return l(D?W(`div`,{class:K(`${o.value}-affix-wrapper`,lw(`${o.value}-affix-wrapper`,v.value,D),k,u.value)},[N,W(`span`,{class:`${o.value}-suffix`},[O])]):N)}}}),VZ=U(g(g({compatConfig:{MODE:3}},NZ),{name:`AMentionsOption`,props:MZ})),HZ=g(BZ,{Option:VZ,getMentions:zZ,install:e=>(e.component(BZ.name,BZ),e.component(VZ.name,VZ),e)}),UZ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{WZ={x:e.pageX,y:e.pageY},setTimeout(()=>WZ=null,100)},!0);var GZ=U({compatConfig:{MODE:3},name:`AModal`,inheritAttrs:!1,props:Bc({prefixCls:String,visible:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},confirmLoading:{type:Boolean,default:void 0},title:Q.any,closable:{type:Boolean,default:void 0},closeIcon:Q.any,onOk:Function,onCancel:Function,"onUpdate:visible":Function,"onUpdate:open":Function,onChange:Function,afterClose:Function,centered:{type:Boolean,default:void 0},width:[String,Number],footer:Q.any,okText:Q.any,okType:String,cancelText:Q.any,icon:Q.any,maskClosable:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},okButtonProps:q(),cancelButtonProps:q(),destroyOnClose:{type:Boolean,default:void 0},wrapClassName:String,maskTransitionName:String,transitionName:String,getContainer:{type:[String,Function,Boolean,Object],default:void 0},zIndex:Number,bodyStyle:q(),maskStyle:q(),mask:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},wrapProps:Object,focusTriggerAfterClose:{type:Boolean,default:void 0},modalRender:Function,mousePosition:q()},{width:520,confirmLoading:!1,okType:`primary`}),setup(e,t){let{emit:n,slots:r,attrs:i}=t,[a]=$l(`Modal`),{prefixCls:o,rootPrefixCls:s,direction:c,getPopupContainer:l}=Z(`modal`,e),[u,d]=$J(o);Ru(e.visible===void 0,`Modal`,"`visible` will be removed in next major version, please use `open` instead.");let f=e=>{n(`update:visible`,!1),n(`update:open`,!1),n(`cancel`,e),n(`change`,!1)},p=e=>{n(`ok`,e)},m=()=>{let{okText:t=r.okText?.call(r),okType:n,cancelText:i=r.cancelText?.call(r),confirmLoading:o}=e;return W(Ma,null,[W(Oj,h({onClick:f},e.cancelButtonProps),{default:()=>[i||a.value.cancelText]}),W(Oj,h(h({},cj(n)),{},{loading:o,onClick:p},e.okButtonProps),{default:()=>[t||a.value.okText]})])};return()=>{let{prefixCls:t,visible:n,open:a,wrapClassName:p,centered:_,getContainer:v,closeIcon:y=r.closeIcon?.call(r),focusTriggerAfterClose:b=!0}=e,x=UZ(e,[`prefixCls`,`visible`,`open`,`wrapClassName`,`centered`,`getContainer`,`closeIcon`,`focusTriggerAfterClose`]),S=K(p,{[`${o.value}-centered`]:!!_,[`${o.value}-wrap-rtl`]:c.value===`rtl`});return u(W(dJ,h(h(h({},x),i),{},{rootClassName:d.value,class:K(d.value,i.class),getContainer:v||l?.value,prefixCls:o.value,wrapClassName:S,visible:a??n,onClose:f,focusTriggerAfterClose:b,transitionName:ib(s.value,`zoom`,e.transitionName),maskTransitionName:ib(s.value,`fade`,e.maskTransitionName),mousePosition:x.mousePosition??WZ}),g(g({},r),{footer:r.footer||m,closeIcon:()=>W(`span`,{class:`${o.value}-close-x`},[y||W(UC,{class:`${o.value}-close-icon`},null)])})))}}}),KZ=()=>{let e=V(!1);return ni(()=>{e.value=!0}),e},qZ={type:{type:String},actionFn:Function,close:Function,autofocus:Boolean,prefixCls:String,buttonProps:q(),emitEvent:Boolean,quitOnNullishReturnValue:Boolean};function JZ(e){return!!(e&&e.then)}var YZ=U({compatConfig:{MODE:3},name:`ActionButton`,props:qZ,setup(e,t){let{slots:n}=t,r=V(!1),i=V(),a=V(!1),o,s=KZ();$r(()=>{e.autofocus&&(o=setTimeout(()=>{var e;return((e=qc(i.value))?.focus)?.call(e)}))}),ni(()=>{clearTimeout(o)});let c=function(){var t,n=[...arguments];(t=e.close)==null||t.call(e,...n)},l=e=>{JZ(e)&&(a.value=!0,e.then(function(){s.value||(a.value=!1),c(...arguments),r.value=!1},e=>(s.value||(a.value=!1),r.value=!1,Promise.reject(e))))},u=t=>{let{actionFn:n}=e;if(r.value)return;if(r.value=!0,!n){c();return}let i;if(e.emitEvent){if(i=n(t),e.quitOnNullishReturnValue&&!JZ(i)){r.value=!1,c(t);return}}else if(n.length)i=n(e.close),r.value=!1;else if(i=n(),!i){c();return}l(i)};return()=>{let{type:t,prefixCls:r,buttonProps:o}=e;return W(Oj,h(h(h({},cj(t)),{},{onClick:u,loading:a.value,prefixCls:r},o),{},{ref:i}),n)}}});function XZ(e){return typeof e==`function`?e():e}var ZZ=U({name:`ConfirmDialog`,inheritAttrs:!1,props:`icon.onCancel.onOk.close.closable.zIndex.afterClose.visible.open.keyboard.centered.getContainer.maskStyle.okButtonProps.cancelButtonProps.okType.prefixCls.okCancel.width.mask.maskClosable.okText.cancelText.autoFocusButton.transitionName.maskTransitionName.type.title.content.direction.rootPrefixCls.bodyStyle.closeIcon.modalRender.focusTriggerAfterClose.wrapClassName.confirmPrefixCls.footer`.split(`.`),setup(e,t){let{attrs:n}=t,[r]=$l(`Modal`);return()=>{let{icon:t,onCancel:i,onOk:a,close:o,okText:s,closable:c=!1,zIndex:l,afterClose:u,keyboard:d,centered:f,getContainer:p,maskStyle:m,okButtonProps:h,cancelButtonProps:g,okCancel:_,width:v=416,mask:y=!0,maskClosable:b=!1,type:x,open:S,title:C,content:w,direction:T,closeIcon:E,modalRender:D,focusTriggerAfterClose:O,rootPrefixCls:k,bodyStyle:A,wrapClassName:j,footer:M}=e,N=t;if(!t&&t!==null)switch(x){case`info`:N=W(SA,null,null);break;case`success`:N=W(mA,null,null);break;case`error`:N=W(qC,null,null);break;default:N=W(vA,null,null)}let P=e.okType||`primary`,F=e.prefixCls||`ant-modal`,I=`${F}-confirm`,L=n.style||{},R=_??x===`confirm`,ee=e.autoFocusButton===null?!1:e.autoFocusButton||`ok`,te=`${F}-confirm`,ne=K(te,`${te}-${e.type}`,{[`${te}-rtl`]:T===`rtl`},n.class),z=r.value,re=R&&W(YZ,{actionFn:i,close:o,autofocus:ee===`cancel`,buttonProps:g,prefixCls:`${k}-btn`},{default:()=>[XZ(e.cancelText)||z.cancelText]});return W(GZ,{prefixCls:F,class:ne,wrapClassName:K({[`${te}-centered`]:!!f},j),onCancel:e=>o?.({triggerCancel:!0},e),open:S,title:``,footer:``,transitionName:ib(k,`zoom`,e.transitionName),maskTransitionName:ib(k,`fade`,e.maskTransitionName),mask:y,maskClosable:b,maskStyle:m,style:L,bodyStyle:A,width:v,zIndex:l,afterClose:u,keyboard:d,centered:f,getContainer:p,closable:c,closeIcon:E,modalRender:D,focusTriggerAfterClose:O},{default:()=>[W(`div`,{class:`${I}-body-wrapper`},[W(`div`,{class:`${I}-body`},[XZ(N),C===void 0?null:W(`span`,{class:`${I}-title`},[XZ(C)]),W(`div`,{class:`${I}-content`},[XZ(w)])]),M===void 0?W(`div`,{class:`${I}-btns`},[re,W(YZ,{type:P,actionFn:a,close:o,autofocus:ee===`ok`,buttonProps:h,prefixCls:`${k}-btn`},{default:()=>[XZ(s)||(R?z.okText:z.justOkText)]})]):XZ(M)])]})}}}),QZ=[],$Z=e=>{let t=document.createDocumentFragment(),n=g(g({},sm(e,[`parentContext`,`appContext`])),{close:a,open:!0}),r=null;function i(){r&&=(nc(null,t),null);var n=[...arguments];let i=n.some(e=>e&&e.triggerCancel);e.onCancel&&i&&e.onCancel(()=>{},...n.slice(1));for(let e=0;e{typeof e.afterClose==`function`&&e.afterClose(),i.apply(this,t)}}),n.visible&&delete n.visible,o(n)}function o(e){n=typeof e==`function`?e(n):g(g({},n),e),r&&ste(r,n,t)}let s=e=>{let t=rG,n=t.prefixCls,r=e.prefixCls||`${n}-modal`,i=t.iconPrefixCls,a=CU();return W(sG,h(h({},t),{},{prefixCls:n}),{default:()=>[W(ZZ,h(h({},e),{},{rootPrefixCls:n,prefixCls:r,iconPrefixCls:i,locale:a,cancelText:e.cancelText||a.cancelText}),null)]})};function c(n){let r=W(s,g({},n));return r.appContext=e.parentContext||e.appContext||r.appContext,nc(r,t),r}return r=c(n),QZ.push(a),{destroy:a,update:o}};function eQ(e){return g(g({},e),{type:`warning`})}function tQ(e){return g(g({},e),{type:`info`})}function nQ(e){return g(g({},e),{type:`success`})}function rQ(e){return g(g({},e),{type:`error`})}function iQ(e){return g(g({},e),{type:`confirm`})}var aQ=U({name:`HookModal`,inheritAttrs:!1,props:Bc({config:Object,afterClose:Function,destroyAction:Function,open:Boolean},{config:{width:520,okType:`primary`}}),setup(e,t){let{expose:n}=t,r=G(()=>e.open),i=G(()=>e.config),{direction:a,getPrefixCls:o}=Bl(),s=o(`modal`),c=o(),l=()=>{var t,n;e?.afterClose(),(n=(t=i.value).afterClose)==null||n.call(t)},u=function(){e.destroyAction(...arguments)};n({destroy:u});let d=i.value.okCancel??i.value.type===`confirm`,[f]=$l(`Modal`,Zl.Modal);return()=>W(ZZ,h(h({prefixCls:s,rootPrefixCls:c},i.value),{},{close:u,open:r.value,afterClose:l,okText:i.value.okText||(d?f?.value.okText:f?.value.justOkText),direction:i.value.direction||a.value,cancelText:i.value.cancelText||f?.value.cancelText}),null)}}),oQ=0,sQ=U({name:`ElementsHolder`,inheritAttrs:!1,setup(e,t){let{expose:n}=t,r=V([]);return n({addModal:e=>(r.value.push(e),r.value=r.value.slice(),()=>{r.value=r.value.filter(t=>t!==e)})}),()=>r.value.map(e=>e())}});function cQ(){let e=V(null),t=V([]);H(t,()=>{t.value.length&&([...t.value].forEach(e=>{e()}),t.value=[])},{immediate:!0});let n=n=>function(r){oQ+=1;let i=V(!0),a=V(null),o=V(fn(r)),s=V({});H(()=>r,e=>{u(g(g({},cn(e)?e.value:e),s.value))});let c=function(){i.value=!1;var e=[...arguments];let t=e.some(e=>e&&e.triggerCancel);o.value.onCancel&&t&&o.value.onCancel(()=>{},...e.slice(1))},l;l=e.value?.addModal(()=>W(aQ,{key:`modal-${oQ}`,config:n(o.value),ref:a,open:i.value,destroyAction:c,afterClose:()=>{l?.()}},null)),l&&QZ.push(l);let u=e=>{o.value=g(g({},o.value),e)};return{destroy:()=>{a.value?c():t.value=[...t.value,c]},update:e=>{s.value=e,a.value?u(e):t.value=[...t.value,()=>u(e)]}}},r=G(()=>({info:n(tQ),success:n(nQ),error:n(rQ),warning:n(eQ),confirm:n(iQ)})),i=Symbol(`modalHolderKey`);return[r.value,()=>W(sQ,{key:i,ref:e},null)]}function lQ(e){return $Z(eQ(e))}GZ.useModal=cQ,GZ.info=function(e){return $Z(tQ(e))},GZ.success=function(e){return $Z(nQ(e))},GZ.error=function(e){return $Z(rQ(e))},GZ.warning=lQ,GZ.warn=lQ,GZ.confirm=function(e){return $Z(iQ(e))},GZ.destroyAll=function(){for(;QZ.length;){let e=QZ.pop();e&&e()}},GZ.install=function(e){return e.component(GZ.name,GZ),e};var uQ=GZ,dQ=e=>{let{value:t,formatter:n,precision:r,decimalSeparator:i,groupSeparator:a=``,prefixCls:o}=e,s;if(typeof n==`function`)s=n({value:t});else{let e=String(t),n=e.match(/^(-?)(\d*)(\.(\d+))?$/);if(!n)s=e;else{let e=n[1],t=n[2]||`0`,c=n[4]||``;t=t.replace(/\B(?=(\d{3})+(?!\d))/g,a),typeof r==`number`&&(c=c.padEnd(r,`0`).slice(0,r>0?r:0)),c&&=`${i}${c}`,s=[W(`span`,{key:`int`,class:`${o}-content-value-int`},[e,t]),c&&W(`span`,{key:`decimal`,class:`${o}-content-value-decimal`},[c])]}}return W(`span`,{class:`${o}-content-value`},[s])};dQ.displayName=`StatisticNumber`;var fQ=e=>{let{componentCls:t,marginXXS:n,padding:r,colorTextDescription:i,statisticTitleFontSize:a,colorTextHeading:o,statisticContentFontSize:s,statisticFontFamily:c}=e;return{[`${t}`]:g(g({},Op(e)),{[`${t}-title`]:{marginBottom:n,color:i,fontSize:a},[`${t}-skeleton`]:{paddingTop:r},[`${t}-content`]:{color:o,fontSize:s,fontFamily:c,[`${t}-content-value`]:{display:`inline-block`,direction:`ltr`},[`${t}-content-prefix, ${t}-content-suffix`]:{display:`inline-block`},[`${t}-content-prefix`]:{marginInlineEnd:n},[`${t}-content-suffix`]:{marginInlineStart:n}}})}},pQ=Fp(`Statistic`,e=>{let{fontSizeHeading3:t,fontSize:n,fontFamily:r}=e;return[fQ(Rp(e,{statisticTitleFontSize:n,statisticContentFontSize:t,statisticFontFamily:r}))]}),mQ=()=>({prefixCls:String,decimalSeparator:String,groupSeparator:String,format:String,value:Sl([Number,String,Object]),valueStyle:{type:Object,default:void 0},valueRender:Y(),formatter:yl(),precision:Number,prefix:bl(),suffix:bl(),title:bl(),loading:J()}),hQ=U({compatConfig:{MODE:3},name:`AStatistic`,inheritAttrs:!1,props:Bc(mQ(),{decimalSeparator:`.`,groupSeparator:`,`,loading:!1}),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`statistic`,e),[o,s]=pQ(i);return()=>{let{value:t=0,valueStyle:c,valueRender:l}=e,u=i.value,d=e.title??n.title?.call(n),f=e.prefix??n.prefix?.call(n),p=e.suffix??n.suffix?.call(n),m=e.formatter??n.formatter,_=W(dQ,h({"data-for-update":Date.now()},g(g({},e),{prefixCls:u,value:t,formatter:m})),null);return l&&(_=l(_)),o(W(`div`,h(h({},r),{},{class:[u,{[`${u}-rtl`]:a.value===`rtl`},r.class,s.value]}),[d&&W(`div`,{class:`${u}-title`},[d]),W(bL,{paragraph:!1,loading:e.loading},{default:()=>[W(`div`,{style:c,class:`${u}-content`},[f&&W(`span`,{class:`${u}-content-prefix`},[f]),_,p&&W(`span`,{class:`${u}-content-suffix`},[p])])]})]))}}}),gQ=[[`Y`,31536e6],[`M`,2592e6],[`D`,864e5],[`H`,36e5],[`m`,6e4],[`s`,1e3],[`S`,1]];function _Q(e,t){let n=e,r=/\[[^\]]*]/g,i=(t.match(r)||[]).map(e=>e.slice(1,-1)),a=t.replace(r,`[]`),o=gQ.reduce((e,t)=>{let[r,i]=t;if(e.includes(r)){let t=Math.floor(n/i);return n-=t*i,e.replace(RegExp(`${r}+`,`g`),e=>{let n=e.length;return t.toString().padStart(n,`0`)})}return e},a),s=0;return o.replace(r,()=>{let e=i[s];return s+=1,e})}function vQ(e,t){let{format:n=``}=t,r=new Date(e).getTime();return _Q(Math.max(r-Date.now(),0),n)}var yQ=1e3/30;function bQ(e){return new Date(e).getTime()}hQ.Countdown=U({compatConfig:{MODE:3},name:`AStatisticCountdown`,props:Bc(g(g({},mQ()),{value:Sl([Number,String,Object]),format:String,onFinish:Function,onChange:Function}),{format:`HH:mm:ss`}),setup(e,t){let{emit:n,slots:r}=t,i=B(),a=B(),o=()=>{let{value:t}=e;bQ(t)>=Date.now()?s():c()},s=()=>{if(i.value)return;let t=bQ(e.value);i.value=setInterval(()=>{a.value.$forceUpdate(),t>Date.now()&&n(`change`,t-Date.now()),o()},yQ)},c=()=>{let{value:t}=e;i.value&&(clearInterval(i.value),i.value=void 0,bQ(t){let{value:n,config:r}=t,{format:i}=e;return vQ(n,g(g({},r),{format:i}))},u=e=>e;return $r(()=>{o()}),ti(()=>{o()}),ni(()=>{c()}),()=>{let t=e.value;return W(hQ,h({ref:a},g(g({},sm(e,[`onFinish`,`onChange`])),{value:t,valueRender:u,formatter:l})),r)}}}),hQ.install=function(e){return e.component(hQ.name,hQ),e.component(hQ.Countdown.name,hQ.Countdown),e};var xQ=hQ.Countdown,SQ=hQ,CQ={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z`}}]},name:`arrow-left`,theme:`outlined`};function wQ(e){for(var t=1;t{let{keyCode:t}=e;t===$.ENTER&&e.preventDefault()},c=e=>{let{keyCode:t}=e;t===$.ENTER&&r(`click`,e)},l=e=>{r(`click`,e)},u=()=>{o.value&&o.value.focus()};return $r(()=>{e.autofocus&&u()}),a({focus:u,blur:()=>{o.value&&o.value.blur()}}),()=>{let{noStyle:t,disabled:r}=e,a=jQ(e,[`noStyle`,`disabled`]),u={};return t||(u=g({},MQ)),r&&(u.pointerEvents=`none`),W(`div`,h(h(h({role:`button`,tabindex:0,ref:o},a),i),{},{onClick:l,onKeydown:s,onKeyup:c,style:g(g({},u),i.style||{})}),[n.default?.call(n)])}}}),PQ={small:8,middle:16,large:24},FQ=()=>({prefixCls:String,size:{type:[String,Number,Array]},direction:Q.oneOf(hl(`horizontal`,`vertical`)).def(`horizontal`),align:Q.oneOf(hl(`start`,`end`,`center`,`baseline`)),wrap:J()});function IQ(e){return typeof e==`string`?PQ[e]:e||0}var LQ=U({compatConfig:{MODE:3},name:`ASpace`,inheritAttrs:!1,props:FQ(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,space:a,direction:o}=Z(`space`,e),[s,c]=pw(i),l=DB(),u=G(()=>e.size??a?.value?.size??`small`),d=B(),f=B();H(u,()=>{[d.value,f.value]=(Array.isArray(u.value)?u.value:[u.value,u.value]).map(e=>IQ(e))},{immediate:!0});let p=G(()=>e.align===void 0&&e.direction===`horizontal`?`center`:e.align),m=G(()=>K(i.value,c.value,`${i.value}-${e.direction}`,{[`${i.value}-rtl`]:o.value===`rtl`,[`${i.value}-align-${p.value}`]:p.value})),_=G(()=>o.value===`rtl`?`marginLeft`:`marginRight`),v=G(()=>{let t={};return l.value&&(t.columnGap=`${d.value}px`,t.rowGap=`${f.value}px`),g(g({},t),e.wrap&&{flexWrap:`wrap`,marginBottom:`${-f.value}px`})});return()=>{let{wrap:t,direction:a=`horizontal`}=e,o=n.default?.call(n),c=rl(o),u=c.length;if(u===0)return null;let p=n.split?.call(n),y=`${i.value}-item`,b=d.value,x=u-1;return W(`div`,h(h({},r),{},{class:[m.value,r.class],style:[v.value,r.style]}),[c.map((e,n)=>{let r=o.indexOf(e);r===-1&&(r=`$$space-${n}`);let i={};return l.value||(a===`vertical`?n{let{componentCls:t,antCls:n}=e;return{[t]:g(g({},Op(e)),{position:`relative`,padding:`${e.pageHeaderPaddingVertical}px ${e.pageHeaderPadding}px`,backgroundColor:e.colorBgContainer,[`&${t}-ghost`]:{backgroundColor:e.pageHeaderGhostBg},"&.has-footer":{paddingBottom:0},[`${t}-back`]:{marginRight:e.marginMD,fontSize:e.fontSizeLG,lineHeight:1,"&-button":g(g({},wp(e)),{color:e.pageHeaderBackColor,cursor:`pointer`})},[`${n}-divider-vertical`]:{height:`14px`,margin:`0 ${e.marginSM}`,verticalAlign:`middle`},[`${n}-breadcrumb + &-heading`]:{marginTop:e.marginXS},[`${t}-heading`]:{display:`flex`,justifyContent:`space-between`,"&-left":{display:`flex`,alignItems:`center`,margin:`${e.marginXS/2}px 0`,overflow:`hidden`},"&-title":g({marginRight:e.marginSM,marginBottom:0,color:e.colorTextHeading,fontWeight:600,fontSize:e.pageHeaderHeadingTitle,lineHeight:`${e.controlHeight}px`},Dp),[`${n}-avatar`]:{marginRight:e.marginSM},"&-sub-title":g({marginRight:e.marginSM,color:e.colorTextDescription,fontSize:e.pageHeaderHeadingSubTitle,lineHeight:e.lineHeight},Dp),"&-extra":{margin:`${e.marginXS/2}px 0`,whiteSpace:`nowrap`,"> *":{marginLeft:e.marginSM,whiteSpace:`unset`},"> *:first-child":{marginLeft:0}}},[`${t}-content`]:{paddingTop:e.pageHeaderContentPaddingVertical},[`${t}-footer`]:{marginTop:e.marginMD,[`${n}-tabs`]:{[`> ${n}-tabs-nav`]:{margin:0,"&::before":{border:`none`}},[`${n}-tabs-tab`]:{paddingTop:e.paddingXS,paddingBottom:e.paddingXS,fontSize:e.pageHeaderTabFontSize}}},[`${t}-compact ${t}-heading`]:{flexWrap:`wrap`},[`&${e.componentCls}-rtl`]:{direction:`rtl`}})}},zQ=Fp(`PageHeader`,e=>[RQ(Rp(e,{pageHeaderPadding:e.paddingLG,pageHeaderPaddingVertical:e.paddingMD,pageHeaderPaddingBreadcrumb:e.paddingSM,pageHeaderContentPaddingVertical:e.paddingSM,pageHeaderBackColor:e.colorTextBase,pageHeaderGhostBg:`transparent`,pageHeaderHeadingTitle:e.fontSizeHeading4,pageHeaderHeadingSubTitle:e.fontSize,pageHeaderTabFontSize:e.fontSizeLG}))]),BQ=_l(U({compatConfig:{MODE:3},name:`APageHeader`,inheritAttrs:!1,props:{backIcon:bl(),prefixCls:String,title:bl(),subTitle:bl(),breadcrumb:Q.object,tags:bl(),footer:bl(),extra:bl(),avatar:q(),ghost:{type:Boolean,default:void 0},onBack:Function},slots:Object,setup(e,t){let{emit:n,slots:r,attrs:i}=t,{prefixCls:a,direction:o,pageHeader:s}=Z(`page-header`,e),[c,l]=zQ(a),u=V(!1),d=KZ(),f=e=>{let{width:t}=e;d.value||(u.value=t<768)},p=G(()=>e.ghost??s?.value?.ghost??!0),m=()=>e.backIcon??r.backIcon?.call(r)??(o.value===`rtl`?W(AQ,null,null):W(EQ,null,null)),g=t=>!t||!e.onBack?null:W(eu,{componentName:`PageHeader`,children:e=>{let{back:r}=e;return W(`div`,{class:`${a.value}-back`},[W(NQ,{onClick:e=>{n(`back`,e)},class:`${a.value}-back-button`,"aria-label":r},{default:()=>[t]})])}},null),_=()=>e.breadcrumb?W(AM,e.breadcrumb,null):r.breadcrumb?.call(r),v=()=>{let{avatar:t}=e,n=e.title??r.title?.call(r),i=e.subTitle??r.subTitle?.call(r),o=e.tags??r.tags?.call(r),s=e.extra??r.extra?.call(r),c=`${a.value}-heading`,l=n||i||o||s;if(!l)return null;let u=m(),d=g(u);return W(`div`,{class:c},[(d||t||l)&&W(`div`,{class:`${c}-left`},[d,t?W(YA,t,null):r.avatar?.call(r),n&&W(`span`,{class:`${c}-title`,title:typeof n==`string`?n:void 0},[n]),i&&W(`span`,{class:`${c}-sub-title`,title:typeof i==`string`?i:void 0},[i]),o&&W(`span`,{class:`${c}-tags`},[o])]),s&&W(`span`,{class:`${c}-extra`},[W(LQ,null,{default:()=>[s]})])])},y=()=>{let t=e.footer??rl(r.footer?.call(r));return el(t)?null:W(`div`,{class:`${a.value}-footer`},[t])},b=e=>W(`div`,{class:`${a.value}-content`},[e]);return()=>{let t=e.breadcrumb?.routes||r.breadcrumb,n=e.footer||r.footer,s=Gc(r.default?.call(r)),d=K(a.value,{"has-breadcrumb":t,"has-footer":n,[`${a.value}-ghost`]:p.value,[`${a.value}-rtl`]:o.value===`rtl`,[`${a.value}-compact`]:u.value},i.class,l.value);return c(W(sl,{onResize:f},{default:()=>[W(`div`,h(h({},i),{},{class:d}),[_(),v(),s.length?b(s):null,y()])]}))}}})),VQ=e=>{let{componentCls:t,iconCls:n,zIndexPopup:r,colorText:i,colorWarning:a,marginXS:o,fontSize:s,fontWeightStrong:c,lineHeight:l}=e;return{[t]:{zIndex:r,[`${t}-inner-content`]:{color:i},[`${t}-message`]:{position:`relative`,marginBottom:o,color:i,fontSize:s,display:`flex`,flexWrap:`nowrap`,alignItems:`start`,[`> ${t}-message-icon ${n}`]:{color:a,fontSize:s,flex:`none`,lineHeight:1,paddingTop:(Math.round(s*l)-s)/2},"&-title":{flex:`auto`,marginInlineStart:o},"&-title-only":{fontWeight:c}},[`${t}-description`]:{position:`relative`,marginInlineStart:s+o,marginBottom:o,color:i,fontSize:s},[`${t}-buttons`]:{textAlign:`end`,button:{marginInlineStart:o}}}}},HQ=Fp(`Popconfirm`,e=>VQ(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}}),UQ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{var e;return((e=o.value)?.getPopupDomNode)?.call(e)}});let[s,c]=gS(!1,{value:vn(e,`open`)}),l=(t,n)=>{e.open===void 0&&c(t),r(`update:open`,t),r(`openChange`,t,n)},u=e=>{l(!1,e)},d=t=>e.onConfirm?.call(e,t),f=t=>{var n;l(!1,t),(n=e.onCancel)==null||n.call(e,t)},p=e=>{e.keyCode===$.ESC&&s&&l(!1,e)},m=t=>{let{disabled:n}=e;n||l(t)},{prefixCls:_,getPrefixCls:v}=Z(`popconfirm`,e),y=G(()=>v()),b=G(()=>v(`btn`)),[x]=HQ(_),[S]=$l(`Popconfirm`,Zl.Popconfirm),C=()=>{let{okButtonProps:t,cancelButtonProps:r,title:i=n.title?.call(n),description:a=n.description?.call(n),cancelText:o=n.cancel?.call(n),okText:s=n.okText?.call(n),okType:c,icon:l=n.icon?.call(n)||W(vA,null,null),showCancel:p=!0}=e,{cancelButton:m,okButton:h}=n,v=g({onClick:f,size:`small`},r),y=g(g(g({onClick:d},cj(c)),{size:`small`}),t);return W(`div`,{class:`${_.value}-inner-content`},[W(`div`,{class:`${_.value}-message`},[l&&W(`span`,{class:`${_.value}-message-icon`},[l]),W(`div`,{class:[`${_.value}-message-title`,{[`${_.value}-message-title-only`]:!!a}]},[i])]),a&&W(`div`,{class:`${_.value}-description`},[a]),W(`div`,{class:`${_.value}-buttons`},[p?m?m(v):W(Oj,v,{default:()=>[o||S.value.cancelText]}):null,h?h(y):W(YZ,{buttonProps:g(g({size:`small`},cj(c)),t),actionFn:d,close:u,prefixCls:b.value,quitOnNullishReturnValue:!0,emitEvent:!0},{default:()=>[s||S.value.okText]})])])};return()=>{let{placement:t,overlayClassName:r,trigger:i=`click`}=e,c=sm(UQ(e,[`placement`,`overlayClassName`,`trigger`]),[`title`,`content`,`cancelText`,`okText`,`onUpdate:open`,`onConfirm`,`onCancel`,`prefixCls`]),l=K(_.value,r);return x(W(qA,h(h(h({},c),a),{},{trigger:i,placement:t,onOpenChange:m,open:s.value,overlayClassName:l,transitionName:ib(y.value,`zoom-big`,e.transitionName),ref:o,"data-popover-inject":!0}),{default:()=>[ote(n.default?.call(n)||[],{onKeydown:e=>{p(e)}},!1)],content:C}))}}})),GQ=[`normal`,`exception`,`active`,`success`],KQ=()=>({prefixCls:String,type:X(),percent:Number,format:Y(),status:X(),showInfo:J(),strokeWidth:Number,strokeLinecap:X(),strokeColor:yl(),trailColor:String,width:Number,success:q(),gapDegree:Number,gapPosition:X(),size:Sl([String,Number,Array]),steps:Number,successPercent:Number,title:String,progressStatus:X()});function qQ(e){return!e||e<0?0:e>100?100:e}function JQ(e){let{success:t,successPercent:n}=e,r=n;return t&&`progress`in t&&(wh(!1,`Progress`,"`success.progress` is deprecated. Please use `success.percent` instead."),r=t.progress),t&&`percent`in t&&(r=t.percent),r}function YQ(e){let{percent:t,success:n,successPercent:r}=e,i=qQ(JQ({success:n,successPercent:r}));return[i,qQ(qQ(t)-i)]}function XQ(e){let{success:t={},strokeColor:n}=e,{strokeColor:r}=t;return[r||tp.green,n||null]}var ZQ=(e,t,n)=>{let r=-1,i=-1;if(t===`step`){let t=n.steps,a=n.strokeWidth;typeof e==`string`||e===void 0?(r=e===`small`?2:14,i=a??8):typeof e==`number`?[r,i]=[e,e]:[r=14,i=8]=e,r*=t}else if(t===`line`){let t=n?.strokeWidth;typeof e==`string`||e===void 0?i=t||(e===`small`?6:8):typeof e==`number`?[r,i]=[e,e]:[r=-1,i=8]=e}else(t===`circle`||t===`dashboard`)&&(typeof e==`string`||e===void 0?[r,i]=e===`small`?[60,60]:[120,120]:typeof e==`number`?[r,i]=[e,e]:(r=e[0]??e[1]??120,i=e[0]??e[1]??120));return{width:r,height:i}},QQ=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ig(g({},KQ()),{strokeColor:yl(),direction:X()}),e$=e=>{let t=[];return Object.keys(e).forEach(n=>{let r=parseFloat(n.replace(/%/g,``));isNaN(r)||t.push({key:r,value:e[n]})}),t=t.sort((e,t)=>e.key-t.key),t.map(e=>{let{key:t,value:n}=e;return`${n} ${t}%`}).join(`, `)},t$=(e,t)=>{let{from:n=tp.blue,to:r=tp.blue,direction:i=t===`rtl`?`to left`:`to right`}=e,a=QQ(e,[`from`,`to`,`direction`]);return Object.keys(a).length===0?{backgroundImage:`linear-gradient(${i}, ${n}, ${r})`}:{backgroundImage:`linear-gradient(${i}, ${e$(a)})`}},n$=U({compatConfig:{MODE:3},name:`ProgressLine`,inheritAttrs:!1,props:$Q(),setup(e,t){let{slots:n,attrs:r}=t,i=G(()=>{let{strokeColor:t,direction:n}=e;return t&&typeof t!=`string`?t$(t,n):{backgroundColor:t}}),a=G(()=>e.strokeLinecap===`square`||e.strokeLinecap===`butt`?0:void 0),o=G(()=>e.trailColor?{backgroundColor:e.trailColor}:void 0),s=G(()=>e.size??[-1,e.strokeWidth||(e.size===`small`?6:8)]),c=G(()=>ZQ(s.value,`line`,{strokeWidth:e.strokeWidth})),l=G(()=>{let{percent:t}=e;return g({width:`${qQ(t)}%`,height:`${c.value.height}px`,borderRadius:a.value},i.value)}),u=G(()=>JQ(e)),d=G(()=>{let{success:t}=e;return{width:`${qQ(u.value)}%`,height:`${c.value.height}px`,borderRadius:a.value,backgroundColor:t?.strokeColor}}),f={width:c.value.width<0?`100%`:c.value.width,height:`${c.value.height}px`};return()=>W(Ma,null,[W(`div`,h(h({},r),{},{class:[`${e.prefixCls}-outer`,r.class],style:[r.style,f]}),[W(`div`,{class:`${e.prefixCls}-inner`,style:o.value},[W(`div`,{class:`${e.prefixCls}-bg`,style:l.value},null),u.value===void 0?null:W(`div`,{class:`${e.prefixCls}-success-bg`,style:d.value},null)])]),n.default?.call(n)])}}),r$={percent:0,prefixCls:`vc-progress`,strokeColor:`#2db7f5`,strokeLinecap:`round`,strokeWidth:1,trailColor:`#D9D9D9`,trailWidth:1},i$=e=>{let t=B(null);return ti(()=>{let n=Date.now(),r=!1;e.value.forEach(e=>{let i=e?.$el||e;if(!i)return;r=!0;let a=i.style;a.transitionDuration=`.3s, .3s, .3s, .06s`,t.value&&n-t.value<100&&(a.transitionDuration=`0s, 0s`)}),r&&(t.value=Date.now())}),e},a$={gapDegree:Number,gapPosition:{type:String},percent:{type:[Array,Number]},prefixCls:String,strokeColor:{type:[Object,String,Array]},strokeLinecap:{type:String},strokeWidth:Number,trailColor:String,trailWidth:Number,transition:String},o$=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5?arguments[5]:void 0,o=50-r/2,s=0,c=-o,l=0,u=-2*o;switch(a){case`left`:s=-o,c=0,l=2*o,u=0;break;case`right`:s=o,c=0,l=-2*o,u=0;break;case`bottom`:c=o,u=2*o}let d=`M 50,50 m ${s},${c} + a ${o},${o} 0 1 1 ${l},${-u} + a ${o},${o} 0 1 1 ${-l},${u}`,f=Math.PI*2*o;return{pathString:d,pathStyle:{stroke:n,strokeDasharray:`${t/100*(f-i)}px ${f}px`,strokeDashoffset:`-${i/2+e/100*(f-i)}px`,transition:`stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s`}}}var d$=U({compatConfig:{MODE:3},name:`VCCircle`,props:Bc(a$,r$),setup(e){s$+=1;let t=B(s$),n=G(()=>l$(e.percent)),r=G(()=>l$(e.strokeColor)),[i,a]=hI();i$(a);let o=()=>{let{prefixCls:a,strokeWidth:o,strokeLinecap:s,gapDegree:c,gapPosition:l}=e,u=0;return n.value.map((e,n)=>{let d=r.value[n]||r.value[r.value.length-1],f=Object.prototype.toString.call(d)===`[object Object]`?`url(#${a}-gradient-${t.value})`:``,{pathString:p,pathStyle:m}=u$(u,e,d,o,c,l);u+=e;let g={key:n,d:p,stroke:f,"stroke-linecap":s,"stroke-width":o,opacity:e===0?0:1,"fill-opacity":`0`,class:`${a}-circle-path`,style:m};return W(`path`,h({ref:i(n)},g),null)})};return()=>{let{prefixCls:n,strokeWidth:i,trailWidth:a,gapDegree:s,gapPosition:c,trailColor:l,strokeLinecap:u,strokeColor:d}=e,f=o$(e,[`prefixCls`,`strokeWidth`,`trailWidth`,`gapDegree`,`gapPosition`,`trailColor`,`strokeLinecap`,`strokeColor`]),{pathString:p,pathStyle:m}=u$(0,100,l,i,s,c);delete f.percent;let g=r.value.find(e=>Object.prototype.toString.call(e)===`[object Object]`),_={d:p,stroke:l,"stroke-linecap":u,"stroke-width":a||i,"fill-opacity":`0`,class:`${n}-circle-trail`,style:m};return W(`svg`,h({class:`${n}-circle`,viewBox:`0 0 100 100`},f),[g&&W(`defs`,null,[W(`linearGradient`,{id:`${n}-gradient-${t.value}`,x1:`100%`,y1:`0%`,x2:`0%`,y2:`0%`},[Object.keys(g).sort((e,t)=>c$(e)-c$(t)).map((e,t)=>W(`stop`,{key:t,offset:e,"stop-color":g[e]},null))])]),W(`path`,_,null),o().reverse()])}}}),f$=()=>g(g({},KQ()),{strokeColor:yl()}),p$=3,m$=e=>p$/e*100,h$=U({compatConfig:{MODE:3},name:`ProgressCircle`,inheritAttrs:!1,props:Bc(f$(),{trailColor:null}),setup(e,t){let{slots:n,attrs:r}=t,i=G(()=>e.width??120),a=G(()=>e.size??[i.value,i.value]),o=G(()=>ZQ(a.value,`circle`)),s=G(()=>{if(e.gapDegree||e.gapDegree===0)return e.gapDegree;if(e.type===`dashboard`)return 75}),c=G(()=>({width:`${o.value.width}px`,height:`${o.value.height}px`,fontSize:`${o.value.width*.15+6}px`})),l=G(()=>e.strokeWidth??Math.max(m$(o.value.width),6)),u=G(()=>e.gapPosition||e.type===`dashboard`&&`bottom`||void 0),d=G(()=>YQ(e)),f=G(()=>Object.prototype.toString.call(e.strokeColor)===`[object Object]`),p=G(()=>XQ({success:e.success,strokeColor:e.strokeColor})),m=G(()=>({[`${e.prefixCls}-inner`]:!0,[`${e.prefixCls}-circle-gradient`]:f.value}));return()=>{let t=W(d$,{percent:d.value,strokeWidth:l.value,trailWidth:l.value,strokeColor:p.value,strokeLinecap:e.strokeLinecap,trailColor:e.trailColor,prefixCls:e.prefixCls,gapDegree:s.value,gapPosition:u.value},null);return W(`div`,h(h({},r),{},{class:[m.value,r.class],style:[r.style,c.value]}),[o.value.width<=20?W(KA,null,{default:()=>[W(`span`,null,[t])],title:n.default}):W(Ma,null,[t,n.default?.call(n)])])}}}),g$=U({compatConfig:{MODE:3},name:`Steps`,props:g(g({},KQ()),{steps:Number,strokeColor:Sl(),trailColor:String}),setup(e,t){let{slots:n}=t,r=G(()=>Math.round(e.steps*((e.percent||0)/100))),i=G(()=>e.size??[e.size===`small`?2:14,e.strokeWidth||8]),a=G(()=>ZQ(i.value,`step`,{steps:e.steps,strokeWidth:e.strokeWidth||8})),o=G(()=>{let{steps:t,strokeColor:n,trailColor:i,prefixCls:o}=e,s=[];for(let e=0;eW(`div`,{class:`${e.prefixCls}-steps-outer`},[o.value,n.default?.call(n)])}}),_$=new ef(`antProgressActive`,{"0%":{transform:`translateX(-100%) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(-100%) scaleX(0)`,opacity:.5},to:{transform:`translateX(0) scaleX(1)`,opacity:0}}),v$=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:g(g({},Op(e)),{display:`inline-block`,"&-rtl":{direction:`rtl`},"&-line":{position:`relative`,width:`100%`,fontSize:e.fontSize,marginInlineEnd:e.marginXS,marginBottom:e.marginXS},[`${t}-outer`]:{display:`inline-block`,width:`100%`},[`&${t}-show-info`]:{[`${t}-outer`]:{marginInlineEnd:`calc(-2em - ${e.marginXS}px)`,paddingInlineEnd:`calc(2em + ${e.paddingXS}px)`}},[`${t}-inner`]:{position:`relative`,display:`inline-block`,width:`100%`,overflow:`hidden`,verticalAlign:`middle`,backgroundColor:e.progressRemainingColor,borderRadius:e.progressLineRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorInfo}},[`${t}-success-bg, ${t}-bg`]:{position:`relative`,backgroundColor:e.colorInfo,borderRadius:e.progressLineRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-success-bg`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:`inline-block`,width:`2em`,marginInlineStart:e.marginXS,color:e.progressInfoTextColor,lineHeight:1,whiteSpace:`nowrap`,textAlign:`start`,verticalAlign:`middle`,wordBreak:`normal`,[n]:{fontSize:e.fontSize}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:`absolute`,inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.progressLineRadius,opacity:0,animationName:_$,animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:`infinite`,content:`""`}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}},y$=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.progressRemainingColor},[`&${t}-circle ${t}-inner`]:{position:`relative`,lineHeight:1,backgroundColor:`transparent`},[`&${t}-circle ${t}-text`]:{position:`absolute`,insetBlockStart:`50%`,insetInlineStart:0,width:`100%`,margin:0,padding:0,color:e.colorText,lineHeight:1,whiteSpace:`normal`,textAlign:`center`,transform:`translateY(-50%)`,[n]:{fontSize:`${e.fontSize/e.fontSizeSM}em`}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:`bottom`}}}},b$=e=>{let{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:`inline-block`,"&-outer":{display:`flex`,flexDirection:`row`,alignItems:`center`},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.progressRemainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.colorInfo}}}}}},x$=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}},S$=Fp(`Progress`,e=>{let t=e.marginXXS/2,n=Rp(e,{progressLineRadius:100,progressInfoTextColor:e.colorText,progressDefaultColor:e.colorInfo,progressRemainingColor:e.colorFillSecondary,progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:`2.4s`});return[v$(n),y$(n),b$(n),x$(n)]}),C$=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);iArray.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor),l=G(()=>{let{percent:t=0}=e,n=JQ(e);return parseInt(n===void 0?t.toString():n.toString(),10)}),u=G(()=>{let{status:t}=e;return!GQ.includes(t)&&l.value>=100?`success`:t||`normal`}),d=G(()=>{let{type:t,showInfo:n,size:r}=e,o=i.value;return{[o]:!0,[`${o}-inline-circle`]:t===`circle`&&ZQ(r,`circle`).width<=20,[`${o}-${t===`dashboard`&&`circle`||t}`]:!0,[`${o}-status-${u.value}`]:!0,[`${o}-show-info`]:n,[`${o}-${r}`]:r,[`${o}-rtl`]:a.value===`rtl`,[s.value]:!0}}),f=G(()=>typeof e.strokeColor==`string`||Array.isArray(e.strokeColor)?e.strokeColor:void 0),p=()=>{let{showInfo:t,format:r,type:a,percent:o,title:s}=e,c=JQ(e);if(!t)return null;let l,d=r||n?.format||(e=>`${e}%`),f=a===`line`;return r||n?.format||u.value!==`exception`&&u.value!==`success`?l=d(qQ(o),qQ(c)):u.value===`exception`?l=W(f?qC:UC,null,null):u.value===`success`&&(l=W(f?mA:zC,null,null)),W(`span`,{class:`${i.value}-text`,title:s===void 0&&typeof l==`string`?l:void 0},[l])};return()=>{let{type:t,steps:n,title:s}=e,{class:l}=r,m=C$(r,[`class`]),g=p(),_;return t===`line`?_=n?W(g$,h(h({},e),{},{strokeColor:f.value,prefixCls:i.value,steps:n}),{default:()=>[g]}):W(n$,h(h({},e),{},{strokeColor:c.value,prefixCls:i.value,direction:a.value}),{default:()=>[g]}):(t===`circle`||t===`dashboard`)&&(_=W(h$,h(h({},e),{},{prefixCls:i.value,strokeColor:c.value,progressStatus:u.value}),{default:()=>[g]})),o(W(`div`,h(h({role:`progressbar`},m),{},{class:[d.value,l],title:s}),[_]))}}}));function T$(e){let t=e.scrollX,n=`scrollLeft`;if(typeof t!=`number`){let r=e.document;t=r.documentElement[n],typeof t!=`number`&&(t=r.body[n])}return t}function E$(e){let t,n,r=e.ownerDocument,{body:i}=r,a=r&&r.documentElement,o=e.getBoundingClientRect();return t=o.left,n=o.top,t-=a.clientLeft||i.clientLeft||0,n-=a.clientTop||i.clientTop||0,{left:t,top:n}}function D$(e){let t=E$(e),n=e.ownerDocument,r=n.defaultView||n.parentWindow;return t.left+=T$(r),t.left}var O$={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z`}}]},name:`star`,theme:`filled`};function k$(e){for(var t=1;t{let{index:r}=e;n(`hover`,t,r)},i=t=>{let{index:r}=e;n(`click`,t,r)},a=t=>{let{index:r}=e;t.keyCode===13&&n(`click`,t,r)},o=G(()=>{let{prefixCls:t,index:n,value:r,allowHalf:i,focused:a}=e,o=n+1,s=t;return r===0&&n===0&&a?s+=` ${t}-focused`:i&&r+.5>=o&&r{let{disabled:t,prefixCls:n,characterRender:s,character:c,index:l,count:u,value:d}=e,f=typeof c==`function`?c({disabled:t,prefixCls:n,index:l,count:u,value:d}):c,p=W(`li`,{class:o.value},[W(`div`,{onClick:t?null:i,onKeydown:t?null:a,onMousemove:t?null:r,role:`radio`,"aria-checked":d>l?`true`:`false`,"aria-posinset":l+1,"aria-setsize":u,tabindex:t?-1:0},[W(`div`,{class:`${n}-first`},[f]),W(`div`,{class:`${n}-second`},[f])])]);return s&&(p=s(p,e)),p}}}),N$=e=>{let{componentCls:t}=e;return{[`${t}-star`]:{position:`relative`,display:`inline-block`,color:`inherit`,cursor:`pointer`,"&:not(:last-child)":{marginInlineEnd:e.marginXS},"> div":{transition:`all ${e.motionDurationMid}, outline 0s`,"&:hover":{transform:e.rateStarHoverScale},"&:focus":{outline:0},"&:focus-visible":{outline:`${e.lineWidth}px dashed ${e.rateStarColor}`,transform:e.rateStarHoverScale}},"&-first, &-second":{color:e.defaultColor,transition:`all ${e.motionDurationMid}`,userSelect:`none`,[e.iconCls]:{verticalAlign:`middle`}},"&-first":{position:`absolute`,top:0,insetInlineStart:0,width:`50%`,height:`100%`,overflow:`hidden`,opacity:0},[`&-half ${t}-star-first, &-half ${t}-star-second`]:{opacity:1},[`&-half ${t}-star-first, &-full ${t}-star-second`]:{color:`inherit`}}}},P$=e=>({[`&-rtl${e.componentCls}`]:{direction:`rtl`}}),F$=e=>{let{componentCls:t}=e;return{[t]:g(g(g(g(g({},Op(e)),{display:`inline-block`,margin:0,padding:0,color:e.rateStarColor,fontSize:e.rateStarSize,lineHeight:`unset`,listStyle:`none`,outline:`none`,[`&-disabled${t} ${t}-star`]:{cursor:`default`,"&:hover":{transform:`scale(1)`}}}),N$(e)),{[`+ ${t}-text`]:{display:`inline-block`,marginInlineStart:e.marginXS,fontSize:e.fontSize}}),P$(e))}},I$=Fp(`Rate`,e=>{let{colorFillContent:t}=e;return[F$(Rp(e,{rateStarColor:e[`yellow-6`],rateStarSize:e.controlHeightLG*.5,rateStarHoverScale:`scale(1.1)`,defaultColor:t}))]}),L$=_l(U({compatConfig:{MODE:3},name:`ARate`,inheritAttrs:!1,props:Bc({prefixCls:String,count:Number,value:Number,allowHalf:{type:Boolean,default:void 0},allowClear:{type:Boolean,default:void 0},tooltips:Array,disabled:{type:Boolean,default:void 0},character:Q.any,autofocus:{type:Boolean,default:void 0},tabindex:Q.oneOfType([Q.number,Q.string]),direction:String,id:String,onChange:Function,onHoverChange:Function,"onUpdate:value":Function,onFocus:Function,onBlur:Function,onKeydown:Function},{value:0,count:5,allowHalf:!1,allowClear:!0,tabindex:0,direction:`ltr`}),setup(e,t){let{slots:n,attrs:r,emit:i,expose:a}=t,{prefixCls:o,direction:s}=Z(`rate`,e),[c,l]=I$(o),u=aw(),d=B(),[f,p]=hI(),m=Yt({value:e.value,focused:!1,cleanedValue:null,hoverValue:void 0});H(()=>e.value,()=>{m.value=e.value});let g=e=>qc(p.value.get(e)),_=(t,n)=>{let r=s.value===`rtl`,i=t+1;if(e.allowHalf){let e=g(t),a=D$(e),o=e.clientWidth;(r&&n-a>o/2||!r&&n-a{e.value===void 0&&(m.value=t),i(`update:value`,t),i(`change`,t),u.onFieldChange()},y=(e,t)=>{let n=_(t,e.pageX);n!==m.cleanedValue&&(m.hoverValue=n,m.cleanedValue=null),i(`hoverChange`,n)},b=()=>{m.hoverValue=void 0,m.cleanedValue=null,i(`hoverChange`,void 0)},x=(t,n)=>{let{allowClear:r}=e,i=_(n,t.pageX),a=!1;r&&(a=i===m.value),b(),v(a?0:i),m.cleanedValue=a?i:null},S=e=>{m.focused=!0,i(`focus`,e)},C=e=>{m.focused=!1,i(`blur`,e),u.onFieldBlur()},w=t=>{let{keyCode:n}=t,{count:r,allowHalf:a}=e,o=s.value===`rtl`;n===$.RIGHT&&m.value0&&!o||n===$.RIGHT&&m.value>0&&o?(a?m.value-=.5:--m.value,v(m.value),t.preventDefault()):n===$.LEFT&&m.value{e.disabled||d.value.focus()};a({focus:T,blur:()=>{e.disabled||d.value.blur()}}),$r(()=>{let{autofocus:t,disabled:n}=e;t&&!n&&T()});let E=(t,n)=>{let{index:r}=n,{tooltips:i}=e;return i?W(KA,{title:i[r]},{default:()=>[t]}):t};return()=>{let{count:t,allowHalf:i,disabled:a,tabindex:p,id:g=u.id.value}=e,{class:_,style:v}=r,T=[],D=a?`${o.value}-disabled`:``,O=e.character||n.character||(()=>W(j$,null,null));for(let e=0;eW(`svg`,{width:`252`,height:`294`},[W(`defs`,null,[W(`path`,{d:`M0 .387h251.772v251.772H0z`},null)]),W(`g`,{fill:`none`,"fill-rule":`evenodd`},[W(`g`,{transform:`translate(0 .012)`},[W(`mask`,{fill:`#fff`},null),W(`path`,{d:`M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321`,fill:`#E4EBF7`,mask:`url(#b)`},null)]),W(`path`,{d:`M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66`,fill:`#FFF`},null),W(`path`,{d:`M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788`,stroke:`#FFF`,"stroke-width":`2`},null),W(`path`,{d:`M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175`,fill:`#FFF`},null),W(`path`,{d:`M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932`,fill:`#FFF`},null),W(`path`,{d:`M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011`,stroke:`#FFF`,"stroke-width":`2`},null),W(`path`,{d:`M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382`,fill:`#FFF`},null),W(`path`,{d:`M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z`,stroke:`#FFF`,"stroke-width":`2`},null),W(`path`,{stroke:`#FFF`,"stroke-width":`2`,d:`M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39`},null),W(`path`,{d:`M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742`,fill:`#FFF`},null),W(`path`,{d:`M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48`,fill:`#1890FF`},null),W(`path`,{d:`M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894`,fill:`#FFF`},null),W(`path`,{d:`M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88`,fill:`#FFB594`},null),W(`path`,{d:`M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624`,fill:`#FFC6A0`},null),W(`path`,{d:`M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682`,fill:`#FFF`},null),W(`path`,{d:`M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573`,fill:`#CBD1D1`},null),W(`path`,{d:`M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z`,fill:`#2B0849`},null),W(`path`,{d:`M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558`,fill:`#A4AABA`},null),W(`path`,{d:`M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z`,fill:`#CBD1D1`},null),W(`path`,{d:`M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062`,fill:`#2B0849`},null),W(`path`,{d:`M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15`,fill:`#A4AABA`},null),W(`path`,{d:`M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165`,fill:`#7BB2F9`},null),W(`path`,{d:`M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883`,stroke:`#648BD8`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M107.275 222.1s2.773-1.11 6.102-3.884`,stroke:`#648BD8`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31`,stroke:`#648BD8`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038`,fill:`#192064`},null),W(`path`,{d:`M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81`,fill:`#FFF`},null),W(`path`,{d:`M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642`,fill:`#192064`},null),W(`path`,{d:`M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146`,stroke:`#648BD8`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268`,fill:`#FFC6A0`},null),W(`path`,{d:`M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456`,fill:`#FFC6A0`},null),W(`path`,{d:`M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z`,fill:`#520038`},null),W(`path`,{d:`M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254`,fill:`#552950`},null),W(`path`,{stroke:`#DB836E`,"stroke-width":`1.118`,"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M110.13 74.84l-.896 1.61-.298 4.357h-2.228`},null),W(`path`,{d:`M110.846 74.481s1.79-.716 2.506.537`,stroke:`#5C2552`,"stroke-width":`1.118`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67`,stroke:`#DB836E`,"stroke-width":`1.118`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M103.287 72.93s1.83 1.113 4.137.954`,stroke:`#5C2552`,"stroke-width":`1.118`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639`,stroke:`#DB836E`,"stroke-width":`1.118`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206`,stroke:`#E4EBF7`,"stroke-width":`1.101`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M129.405 122.865s-5.272 7.403-9.422 10.768`,stroke:`#E4EBF7`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M119.306 107.329s.452 4.366-2.127 32.062`,stroke:`#E4EBF7`,"stroke-width":`1.101`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01`,fill:`#F2D7AD`},null),W(`path`,{d:`M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92`,fill:`#F4D19D`},null),W(`path`,{d:`M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z`,fill:`#F2D7AD`},null),W(`path`,{fill:`#CC9B6E`,d:`M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z`},null),W(`path`,{d:`M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83`,fill:`#F4D19D`},null),W(`path`,{fill:`#CC9B6E`,d:`M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z`},null),W(`path`,{fill:`#CC9B6E`,d:`M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z`},null),W(`path`,{d:`M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238`,fill:`#FFC6A0`},null),W(`path`,{d:`M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044`,stroke:`#DB836E`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617`,stroke:`#DB836E`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754`,stroke:`#DB836E`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647`,fill:`#5BA02E`},null),W(`path`,{d:`M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647`,fill:`#92C110`},null),W(`path`,{d:`M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187`,fill:`#F2D7AD`},null),W(`path`,{d:`M88.979 89.48s7.776 5.384 16.6 2.842`,stroke:`#E4EBF7`,"stroke-width":`1.101`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null)])]),U$=()=>W(`svg`,{width:`254`,height:`294`},[W(`defs`,null,[W(`path`,{d:`M0 .335h253.49v253.49H0z`},null),W(`path`,{d:`M0 293.665h253.49V.401H0z`},null)]),W(`g`,{fill:`none`,"fill-rule":`evenodd`},[W(`g`,{transform:`translate(0 .067)`},[W(`mask`,{fill:`#fff`},null),W(`path`,{d:`M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134`,fill:`#E4EBF7`,mask:`url(#b)`},null)]),W(`path`,{d:`M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671`,fill:`#FFF`},null),W(`path`,{d:`M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861`,stroke:`#FFF`,"stroke-width":`2`},null),W(`path`,{d:`M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238`,fill:`#FFF`},null),W(`path`,{d:`M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775`,fill:`#FFF`},null),W(`path`,{d:`M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68`,fill:`#FF603B`},null),W(`path`,{d:`M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733`,fill:`#FFF`},null),W(`path`,{d:`M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487`,fill:`#FFB594`},null),W(`path`,{d:`M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235`,fill:`#FFF`},null),W(`path`,{d:`M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246`,fill:`#FFB594`},null),W(`path`,{d:`M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508`,fill:`#FFC6A0`},null),W(`path`,{d:`M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z`,fill:`#520038`},null),W(`path`,{d:`M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26`,fill:`#552950`},null),W(`path`,{stroke:`#DB836E`,"stroke-width":`1.063`,"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M99.206 73.644l-.9 1.62-.3 4.38h-2.24`},null),W(`path`,{d:`M99.926 73.284s1.8-.72 2.52.54`,stroke:`#5C2552`,"stroke-width":`1.117`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68`,stroke:`#DB836E`,"stroke-width":`1.117`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M92.326 71.724s1.84 1.12 4.16.96`,stroke:`#5C2552`,"stroke-width":`1.117`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954`,stroke:`#DB836E`,"stroke-width":`1.063`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044`,stroke:`#E4EBF7`,"stroke-width":`1.136`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583`,fill:`#FFF`},null),W(`path`,{d:`M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75`,fill:`#FFC6A0`},null),W(`path`,{d:`M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713`,fill:`#FFC6A0`},null),W(`path`,{d:`M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51`,stroke:`#E4EBF7`,"stroke-width":`1.085`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16`,fill:`#FFC6A0`},null),W(`path`,{d:`M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575`,fill:`#FFF`},null),W(`path`,{d:`M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47`,fill:`#CBD1D1`},null),W(`path`,{d:`M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z`,fill:`#2B0849`},null),W(`path`,{d:`M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671`,fill:`#A4AABA`},null),W(`path`,{d:`M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z`,fill:`#CBD1D1`},null),W(`path`,{d:`M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162`,fill:`#2B0849`},null),W(`path`,{d:`M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156`,fill:`#A4AABA`},null),W(`path`,{d:`M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69`,fill:`#7BB2F9`},null),W(`path`,{d:`M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034`,stroke:`#648BD8`,"stroke-width":`1.085`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M96.973 219.373s2.882-1.153 6.34-4.034`,stroke:`#648BD8`,"stroke-width":`1.032`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07`,stroke:`#648BD8`,"stroke-width":`1.085`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62`,fill:`#192064`},null),W(`path`,{d:`M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843`,fill:`#FFF`},null),W(`path`,{d:`M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668`,fill:`#192064`},null),W(`path`,{d:`M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513`,stroke:`#648BD8`,"stroke-width":`1.085`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72`,stroke:`#E4EBF7`,"stroke-width":`1.085`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69`,fill:`#FFC6A0`},null),W(`path`,{d:`M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593`,stroke:`#DB836E`,"stroke-width":`.774`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762`,stroke:`#E59788`,"stroke-width":`.774`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594`,fill:`#FFC6A0`},null),W(`path`,{d:`M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12`,stroke:`#E59788`,"stroke-width":`.774`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M109.278 112.533s3.38-3.613 7.575-4.662`,stroke:`#E4EBF7`,"stroke-width":`1.085`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M107.375 123.006s9.697-2.745 11.445-.88`,stroke:`#E59788`,"stroke-width":`.774`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955`,stroke:`#BFCDDD`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01`,fill:`#A3B4C6`},null),W(`path`,{d:`M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813`,fill:`#A3B4C6`},null),W(`mask`,{fill:`#fff`},null),W(`path`,{fill:`#A3B4C6`,mask:`url(#d)`,d:`M154.098 190.096h70.513v-84.617h-70.513z`},null),W(`path`,{d:`M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208`,fill:`#BFCDDD`,mask:`url(#d)`},null),W(`path`,{d:`M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802`,fill:`#FFF`,mask:`url(#d)`},null),W(`path`,{d:`M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209`,fill:`#BFCDDD`,mask:`url(#d)`},null),W(`path`,{d:`M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751`,stroke:`#7C90A5`,"stroke-width":`1.124`,"stroke-linecap":`round`,"stroke-linejoin":`round`,mask:`url(#d)`},null),W(`path`,{d:`M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802`,fill:`#FFF`,mask:`url(#d)`},null),W(`path`,{d:`M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407`,fill:`#BFCDDD`,mask:`url(#d)`},null),W(`path`,{d:`M177.259 207.217v11.52M201.05 207.217v11.52`,stroke:`#A3B4C6`,"stroke-width":`1.124`,"stroke-linecap":`round`,"stroke-linejoin":`round`,mask:`url(#d)`},null),W(`path`,{d:`M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422`,fill:`#5BA02E`,mask:`url(#d)`},null),W(`path`,{d:`M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423`,fill:`#92C110`,mask:`url(#d)`},null),W(`path`,{d:`M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209`,fill:`#F2D7AD`,mask:`url(#d)`},null)])]),W$=()=>W(`svg`,{width:`251`,height:`294`},[W(`g`,{fill:`none`,"fill-rule":`evenodd`},[W(`path`,{d:`M0 129.023v-2.084C0 58.364 55.591 2.774 124.165 2.774h2.085c68.574 0 124.165 55.59 124.165 124.165v2.084c0 68.575-55.59 124.166-124.165 124.166h-2.085C55.591 253.189 0 197.598 0 129.023`,fill:`#E4EBF7`},null),W(`path`,{d:`M41.417 132.92a8.231 8.231 0 1 1-16.38-1.65 8.231 8.231 0 0 1 16.38 1.65`,fill:`#FFF`},null),W(`path`,{d:`M38.652 136.36l10.425 5.91M49.989 148.505l-12.58 10.73`,stroke:`#FFF`,"stroke-width":`2`},null),W(`path`,{d:`M41.536 161.28a5.636 5.636 0 1 1-11.216-1.13 5.636 5.636 0 0 1 11.216 1.13M59.154 145.261a5.677 5.677 0 1 1-11.297-1.138 5.677 5.677 0 0 1 11.297 1.138M100.36 29.516l29.66-.013a4.562 4.562 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 0 0 .005 9.126M111.705 47.754l29.659-.013a4.563 4.563 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 1 0 .005 9.126`,fill:`#FFF`},null),W(`path`,{d:`M114.066 29.503V29.5l15.698-.007a4.563 4.563 0 1 0 .004 9.126l-15.698.007v-.002a4.562 4.562 0 0 0-.004-9.122M185.405 137.723c-.55 5.455-5.418 9.432-10.873 8.882-5.456-.55-9.432-5.418-8.882-10.873.55-5.455 5.418-9.432 10.873-8.882 5.455.55 9.432 5.418 8.882 10.873`,fill:`#FFF`},null),W(`path`,{d:`M180.17 143.772l12.572 7.129M193.841 158.42L178.67 171.36`,stroke:`#FFF`,"stroke-width":`2`},null),W(`path`,{d:`M185.55 171.926a6.798 6.798 0 1 1-13.528-1.363 6.798 6.798 0 0 1 13.527 1.363M204.12 155.285a6.848 6.848 0 1 1-13.627-1.375 6.848 6.848 0 0 1 13.626 1.375`,fill:`#FFF`},null),W(`path`,{d:`M152.988 194.074a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0zM225.931 118.217a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM217.09 153.051a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.42 0zM177.84 109.842a2.21 2.21 0 1 1-4.422 0 2.21 2.21 0 0 1 4.421 0zM196.114 94.454a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM202.844 182.523a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0z`,stroke:`#FFF`,"stroke-width":`2`},null),W(`path`,{stroke:`#FFF`,"stroke-width":`2`,d:`M215.125 155.262l-1.902 20.075-10.87 5.958M174.601 176.636l-6.322 9.761H156.98l-4.484 6.449M175.874 127.28V111.56M221.51 119.404l-12.77 7.859-15.228-7.86V96.668`},null),W(`path`,{d:`M180.68 29.32C180.68 13.128 193.806 0 210 0c16.193 0 29.32 13.127 29.32 29.32 0 16.194-13.127 29.322-29.32 29.322-16.193 0-29.32-13.128-29.32-29.321`,fill:`#A26EF4`},null),W(`path`,{d:`M221.45 41.706l-21.563-.125a1.744 1.744 0 0 1-1.734-1.754l.071-12.23a1.744 1.744 0 0 1 1.754-1.734l21.562.125c.964.006 1.74.791 1.735 1.755l-.071 12.229a1.744 1.744 0 0 1-1.754 1.734`,fill:`#FFF`},null),W(`path`,{d:`M215.106 29.192c-.015 2.577-2.049 4.654-4.543 4.64-2.494-.014-4.504-2.115-4.489-4.693l.04-6.925c.016-2.577 2.05-4.654 4.543-4.64 2.494.015 4.504 2.116 4.49 4.693l-.04 6.925zm-4.53-14.074a6.877 6.877 0 0 0-6.916 6.837l-.043 7.368a6.877 6.877 0 0 0 13.754.08l.042-7.368a6.878 6.878 0 0 0-6.837-6.917zM167.566 68.367h-3.93a4.73 4.73 0 0 1-4.717-4.717 4.73 4.73 0 0 1 4.717-4.717h3.93a4.73 4.73 0 0 1 4.717 4.717 4.73 4.73 0 0 1-4.717 4.717`,fill:`#FFF`},null),W(`path`,{d:`M168.214 248.838a6.611 6.611 0 0 1-6.61-6.611v-66.108a6.611 6.611 0 0 1 13.221 0v66.108a6.611 6.611 0 0 1-6.61 6.61`,fill:`#5BA02E`},null),W(`path`,{d:`M176.147 248.176a6.611 6.611 0 0 1-6.61-6.61v-33.054a6.611 6.611 0 1 1 13.221 0v33.053a6.611 6.611 0 0 1-6.61 6.611`,fill:`#92C110`},null),W(`path`,{d:`M185.994 293.89h-27.376a3.17 3.17 0 0 1-3.17-3.17v-45.887a3.17 3.17 0 0 1 3.17-3.17h27.376a3.17 3.17 0 0 1 3.17 3.17v45.886a3.17 3.17 0 0 1-3.17 3.17`,fill:`#F2D7AD`},null),W(`path`,{d:`M81.972 147.673s6.377-.927 17.566-1.28c11.729-.371 17.57 1.086 17.57 1.086s3.697-3.855.968-8.424c1.278-12.077 5.982-32.827.335-48.273-1.116-1.339-3.743-1.512-7.536-.62-1.337.315-7.147-.149-7.983-.1l-15.311-.347s-3.487-.17-8.035-.508c-1.512-.113-4.227-1.683-5.458-.338-.406.443-2.425 5.669-1.97 16.077l8.635 35.642s-3.141 3.61 1.219 7.085`,fill:`#FFF`},null),W(`path`,{d:`M75.768 73.325l-.9-6.397 11.982-6.52s7.302-.118 8.038 1.205c.737 1.324-5.616.993-5.616.993s-1.836 1.388-2.615 2.5c-1.654 2.363-.986 6.471-8.318 5.986-1.708.284-2.57 2.233-2.57 2.233`,fill:`#FFC6A0`},null),W(`path`,{d:`M52.44 77.672s14.217 9.406 24.973 14.444c1.061.497-2.094 16.183-11.892 11.811-7.436-3.318-20.162-8.44-21.482-14.496-.71-3.258 2.543-7.643 8.401-11.76M141.862 80.113s-6.693 2.999-13.844 6.876c-3.894 2.11-10.137 4.704-12.33 7.988-6.224 9.314 3.536 11.22 12.947 7.503 6.71-2.651 28.999-12.127 13.227-22.367`,fill:`#FFB594`},null),W(`path`,{d:`M76.166 66.36l3.06 3.881s-2.783 2.67-6.31 5.747c-7.103 6.195-12.803 14.296-15.995 16.44-3.966 2.662-9.754 3.314-12.177-.118-3.553-5.032.464-14.628 31.422-25.95`,fill:`#FFC6A0`},null),W(`path`,{d:`M64.674 85.116s-2.34 8.413-8.912 14.447c.652.548 18.586 10.51 22.144 10.056 5.238-.669 6.417-18.968 1.145-20.531-.702-.208-5.901-1.286-8.853-2.167-.87-.26-1.611-1.71-3.545-.936l-1.98-.869zM128.362 85.826s5.318 1.956 7.325 13.734c-.546.274-17.55 12.35-21.829 7.805-6.534-6.94-.766-17.393 4.275-18.61 4.646-1.121 5.03-1.37 10.23-2.929`,fill:`#FFF`},null),W(`path`,{d:`M78.18 94.656s.911 7.41-4.914 13.078`,stroke:`#E4EBF7`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M87.397 94.68s3.124 2.572 10.263 2.572c7.14 0 9.074-3.437 9.074-3.437`,stroke:`#E4EBF7`,"stroke-width":`.932`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M117.184 68.639l-6.781-6.177s-5.355-4.314-9.223-.893c-3.867 3.422 4.463 2.083 5.653 4.165 1.19 2.082.848 1.143-2.083.446-5.603-1.331-2.082.893 2.975 5.355 2.091 1.845 6.992.955 6.992.955l2.467-3.851z`,fill:`#FFC6A0`},null),W(`path`,{d:`M105.282 91.315l-.297-10.937-15.918-.027-.53 10.45c-.026.403.17.788.515.999 2.049 1.251 9.387 5.093 15.799.424.287-.21.443-.554.431-.91`,fill:`#FFB594`},null),W(`path`,{d:`M107.573 74.24c.817-1.147.982-9.118 1.015-11.928a1.046 1.046 0 0 0-.965-1.055l-4.62-.365c-7.71-1.044-17.071.624-18.253 6.346-5.482 5.813-.421 13.244-.421 13.244s1.963 3.566 4.305 6.791c.756 1.041.398-3.731 3.04-5.929 5.524-4.594 15.899-7.103 15.899-7.103`,fill:`#5C2552`},null),W(`path`,{d:`M88.426 83.206s2.685 6.202 11.602 6.522c7.82.28 8.973-7.008 7.434-17.505l-.909-5.483c-6.118-2.897-15.478.54-15.478.54s-.576 2.044-.19 5.504c-2.276 2.066-1.824 5.618-1.824 5.618s-.905-1.922-1.98-2.321c-.86-.32-1.897.089-2.322 1.98-1.04 4.632 3.667 5.145 3.667 5.145`,fill:`#FFC6A0`},null),W(`path`,{stroke:`#DB836E`,"stroke-width":`1.145`,"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M100.843 77.099l1.701-.928-1.015-4.324.674-1.406`},null),W(`path`,{d:`M105.546 74.092c-.022.713-.452 1.279-.96 1.263-.51-.016-.904-.607-.882-1.32.021-.713.452-1.278.96-1.263.51.016.904.607.882 1.32M97.592 74.349c-.022.713-.452 1.278-.961 1.263-.509-.016-.904-.607-.882-1.32.022-.713.452-1.279.961-1.263.51.016.904.606.882 1.32`,fill:`#552950`},null),W(`path`,{d:`M91.132 86.786s5.269 4.957 12.679 2.327`,stroke:`#DB836E`,"stroke-width":`1.145`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M99.776 81.903s-3.592.232-1.44-2.79c1.59-1.496 4.897-.46 4.897-.46s1.156 3.906-3.457 3.25`,fill:`#DB836E`},null),W(`path`,{d:`M102.88 70.6s2.483.84 3.402.715M93.883 71.975s2.492-1.144 4.778-1.073`,stroke:`#5C2552`,"stroke-width":`1.526`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M86.32 77.374s.961.879 1.458 2.106c-.377.48-1.033 1.152-.236 1.809M99.337 83.719s1.911.151 2.509-.254`,stroke:`#DB836E`,"stroke-width":`1.145`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M87.782 115.821l15.73-3.012M100.165 115.821l10.04-2.008`,stroke:`#E4EBF7`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M66.508 86.763s-1.598 8.83-6.697 14.078`,stroke:`#E4EBF7`,"stroke-width":`1.114`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M128.31 87.934s3.013 4.121 4.06 11.785`,stroke:`#E4EBF7`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M64.09 84.816s-6.03 9.912-13.607 9.903`,stroke:`#DB836E`,"stroke-width":`.795`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M112.366 65.909l-.142 5.32s5.993 4.472 11.945 9.202c4.482 3.562 8.888 7.455 10.985 8.662 4.804 2.766 8.9 3.355 11.076 1.808 4.071-2.894 4.373-9.878-8.136-15.263-4.271-1.838-16.144-6.36-25.728-9.73`,fill:`#FFC6A0`},null),W(`path`,{d:`M130.532 85.488s4.588 5.757 11.619 6.214`,stroke:`#DB836E`,"stroke-width":`.75`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M121.708 105.73s-.393 8.564-1.34 13.612`,stroke:`#E4EBF7`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M115.784 161.512s-3.57-1.488-2.678-7.14`,stroke:`#648BD8`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M101.52 290.246s4.326 2.057 7.408 1.03c2.842-.948 4.564.673 7.132 1.186 2.57.514 6.925 1.108 11.772-1.269-.104-5.551-6.939-4.01-12.048-6.763-2.582-1.39-3.812-4.757-3.625-8.863h-9.471s-1.402 10.596-1.169 14.68`,fill:`#CBD1D1`},null),W(`path`,{d:`M101.496 290.073s2.447 1.281 6.809.658c3.081-.44 3.74.485 7.479 1.039 3.739.554 10.802-.07 11.91-.9.415 1.108-.347 2.077-.347 2.077s-1.523.608-4.847.831c-2.045.137-5.843.293-7.663-.507-1.8-1.385-5.286-1.917-5.77-.243-3.947.958-7.41-.288-7.41-.288l-.16-2.667z`,fill:`#2B0849`},null),W(`path`,{d:`M108.824 276.19h3.116s-.103 6.751 4.57 8.62c-4.673.624-8.62-2.32-7.686-8.62`,fill:`#A4AABA`},null),W(`path`,{d:`M57.65 272.52s-2.122 7.47-4.518 12.396c-1.811 3.724-4.255 7.548 5.505 7.548 6.698 0 9.02-.483 7.479-6.648-1.541-6.164.268-13.296.268-13.296H57.65z`,fill:`#CBD1D1`},null),W(`path`,{d:`M51.54 290.04s2.111 1.178 6.682 1.178c6.128 0 8.31-1.662 8.31-1.662s.605 1.122-.624 2.18c-1 .862-3.624 1.603-7.444 1.559-4.177-.049-5.876-.57-6.786-1.177-.831-.554-.692-1.593-.138-2.078`,fill:`#2B0849`},null),W(`path`,{d:`M58.533 274.438s.034 1.529-.315 2.95c-.352 1.431-1.087 3.127-1.139 4.17-.058 1.16 4.57 1.592 5.194.035.623-1.559 1.303-6.475 1.927-7.306.622-.831-4.94-2.135-5.667.15`,fill:`#A4AABA`},null),W(`path`,{d:`M100.885 277.015l13.306.092s1.291-54.228 1.843-64.056c.552-9.828 3.756-43.13.997-62.788l-12.48-.64-22.725.776s-.433 3.944-1.19 9.921c-.062.493-.677.838-.744 1.358-.075.582.42 1.347.318 1.956-2.35 14.003-6.343 32.926-8.697 46.425-.116.663-1.227 1.004-1.45 2.677-.04.3.21 1.516.112 1.785-6.836 18.643-10.89 47.584-14.2 61.551l14.528-.014s2.185-8.524 4.008-16.878c2.796-12.817 22.987-84.553 22.987-84.553l3-.517 1.037 46.1s-.223 1.228.334 2.008c.558.782-.556 1.117-.39 2.233l.39 1.784s-.446 7.14-.892 11.826c-.446 4.685-.092 38.954-.092 38.954`,fill:`#7BB2F9`},null),W(`path`,{d:`M77.438 220.434c1.146.094 4.016-2.008 6.916-4.91M107.55 223.931s2.758-1.103 6.069-3.862`,stroke:`#648BD8`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M108.459 220.905s2.759-1.104 6.07-3.863`,stroke:`#648BD8`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M76.099 223.557s2.608-.587 6.47-3.346M87.33 150.82c-.27 3.088.297 8.478-4.315 9.073M104.829 149.075s.11 13.936-1.286 14.983c-2.207 1.655-2.975 1.934-2.975 1.934M101.014 149.63s.035 12.81-1.19 24.245M94.93 174.965s7.174-1.655 9.38-1.655M75.671 204.754c-.316 1.55-.64 3.067-.973 4.535 0 0-1.45 1.822-1.003 3.756.446 1.934-.943 2.034-4.96 15.273-1.686 5.559-4.464 18.49-6.313 27.447-.078.38-4.018 18.06-4.093 18.423M77.043 196.743a313.269 313.269 0 0 1-.877 4.729M83.908 151.414l-1.19 10.413s-1.091.148-.496 2.23c.111 1.34-2.66 15.692-5.153 30.267M57.58 272.94h13.238`,stroke:`#648BD8`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null),W(`path`,{d:`M117.377 147.423s-16.955-3.087-35.7.199c.157 2.501-.002 4.128-.002 4.128s14.607-2.802 35.476-.31c.251-2.342.226-4.017.226-4.017`,fill:`#192064`},null),W(`path`,{d:`M107.511 150.353l.004-4.885a.807.807 0 0 0-.774-.81c-2.428-.092-5.04-.108-7.795-.014a.814.814 0 0 0-.784.81l-.003 4.88c0 .456.371.82.827.808a140.76 140.76 0 0 1 7.688.017.81.81 0 0 0 .837-.806`,fill:`#FFF`},null),W(`path`,{d:`M106.402 149.426l.002-3.06a.64.64 0 0 0-.616-.643 94.135 94.135 0 0 0-5.834-.009.647.647 0 0 0-.626.643l-.001 3.056c0 .36.291.648.651.64 1.78-.04 3.708-.041 5.762.012.36.009.662-.279.662-.64`,fill:`#192064`},null),W(`path`,{d:`M101.485 273.933h12.272M102.652 269.075c.006 3.368.04 5.759.11 6.47M102.667 263.125c-.009 1.53-.015 2.98-.016 4.313M102.204 174.024l.893 44.402s.669 1.561-.224 2.677c-.892 1.116 2.455.67.893 2.231-1.562 1.562.893 1.116 0 3.347-.592 1.48-.988 20.987-1.09 34.956`,stroke:`#648BD8`,"stroke-width":`1.051`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null)])]),G$=e=>{let{componentCls:t,lineHeightHeading3:n,iconCls:r,padding:i,paddingXL:a,paddingXS:o,paddingLG:s,marginXS:c,lineHeight:l}=e;return{[t]:{padding:`${s*2}px ${a}px`,"&-rtl":{direction:`rtl`}},[`${t} ${t}-image`]:{width:e.imageWidth,height:e.imageHeight,margin:`auto`},[`${t} ${t}-icon`]:{marginBottom:s,textAlign:`center`,[`& > ${r}`]:{fontSize:e.resultIconFontSize}},[`${t} ${t}-title`]:{color:e.colorTextHeading,fontSize:e.resultTitleFontSize,lineHeight:n,marginBlock:c,textAlign:`center`},[`${t} ${t}-subtitle`]:{color:e.colorTextDescription,fontSize:e.resultSubtitleFontSize,lineHeight:l,textAlign:`center`},[`${t} ${t}-content`]:{marginTop:s,padding:`${s}px ${i*2.5}px`,backgroundColor:e.colorFillAlter},[`${t} ${t}-extra`]:{margin:e.resultExtraMargin,textAlign:`center`,"& > *":{marginInlineEnd:o,"&:last-child":{marginInlineEnd:0}}}}},K$=e=>{let{componentCls:t,iconCls:n}=e;return{[`${t}-success ${t}-icon > ${n}`]:{color:e.resultSuccessIconColor},[`${t}-error ${t}-icon > ${n}`]:{color:e.resultErrorIconColor},[`${t}-info ${t}-icon > ${n}`]:{color:e.resultInfoIconColor},[`${t}-warning ${t}-icon > ${n}`]:{color:e.resultWarningIconColor}}},q$=e=>[G$(e),K$(e)],J$=e=>q$(e),Y$=Fp(`Result`,e=>{let{paddingLG:t,fontSizeHeading3:n}=e,r=e.fontSize,i=`${t}px 0 0 0`,a=e.colorInfo,o=e.colorError,s=e.colorSuccess,c=e.colorWarning;return[J$(Rp(e,{resultTitleFontSize:n,resultSubtitleFontSize:r,resultIconFontSize:n*3,resultExtraMargin:i,resultInfoIconColor:a,resultErrorIconColor:o,resultSuccessIconColor:s,resultWarningIconColor:c}))]},{imageWidth:250,imageHeight:295}),X$={success:mA,error:qC,info:vA,warning:V$},Z$={404:H$,500:U$,403:W$},Q$=Object.keys(Z$),$$=()=>({prefixCls:String,icon:Q.any,status:{type:[Number,String],default:`info`},title:Q.any,subTitle:Q.any,extra:Q.any}),e1=(e,t)=>{let{status:n,icon:r}=t;if(Q$.includes(`${n}`)){let t=Z$[n];return W(`div`,{class:`${e}-icon ${e}-image`},[W(t,null,null)])}let i=X$[n],a=r||W(i,null,null);return W(`div`,{class:`${e}-icon`},[a])},t1=(e,t)=>t&&W(`div`,{class:`${e}-extra`},[t]),n1=U({compatConfig:{MODE:3},name:`AResult`,inheritAttrs:!1,props:$$(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`result`,e),[o,s]=Y$(i),c=G(()=>K(i.value,s.value,`${i.value}-${e.status}`,{[`${i.value}-rtl`]:a.value===`rtl`}));return()=>{let t=e.title??n.title?.call(n),a=e.subTitle??n.subTitle?.call(n),s=e.icon??n.icon?.call(n),l=e.extra??n.extra?.call(n),u=i.value;return o(W(`div`,h(h({},r),{},{class:[c.value,r.class]}),[e1(u,{status:e.status,icon:s}),W(`div`,{class:`${u}-title`},[t]),a&&W(`div`,{class:`${u}-subtitle`},[a]),t1(u,l),n.default&&W(`div`,{class:`${u}-content`},[n.default()])]))}}});n1.PRESENTED_IMAGE_403=Z$[403],n1.PRESENTED_IMAGE_404=Z$[404],n1.PRESENTED_IMAGE_500=Z$[500],n1.install=function(e){return e.component(n1.name,n1),e};var r1=_l(RB),i1=(e,t)=>{let{attrs:n}=t,{included:r,vertical:i,style:a,class:o}=n,{length:s,offset:c,reverse:l}=n;s<0&&(l=!l,s=Math.abs(s),c=100-c);let u=i?{[l?`top`:`bottom`]:`${c}%`,[l?`bottom`:`top`]:`auto`,height:`${s}%`}:{[l?`right`:`left`]:`${c}%`,[l?`left`:`right`]:`auto`,width:`${s}%`},d=g(g({},a),u);return r?W(`div`,{class:o,style:d},null):null};i1.inheritAttrs=!1;var a1=(e,t,n,r,i,a)=>{Ru(!n||r>0,`Slider`,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");let o=Object.keys(t).map(parseFloat).sort((e,t)=>e-t);if(n&&r)for(let e=i;e<=a;e+=r)o.indexOf(e)===-1&&o.push(e);return o},o1=(e,t)=>{let{attrs:n}=t,{prefixCls:r,vertical:i,reverse:a,marks:o,dots:s,step:c,included:l,lowerBound:u,upperBound:d,max:f,min:p,dotStyle:m,activeDotStyle:h}=n,_=f-p,v=a1(i,o,s,c,p,f).map(e=>{let t=`${Math.abs(e-p)/_*100}%`,n=!l&&e===d||l&&e<=d&&e>=u,o=i?g(g({},m),{[a?`top`:`bottom`]:t}):g(g({},m),{[a?`right`:`left`]:t});return n&&(o=g(g({},o),h)),W(`span`,{class:K({[`${r}-dot`]:!0,[`${r}-dot-active`]:n,[`${r}-dot-reverse`]:a}),style:o,key:e},null)});return W(`div`,{class:`${r}-step`},[v])};o1.inheritAttrs=!1;var s1=(e,t)=>{let{attrs:n,slots:r}=t,{class:i,vertical:a,reverse:o,marks:s,included:c,upperBound:l,lowerBound:u,max:d,min:f,onClickLabel:p}=n,m=Object.keys(s),_=r.mark,v=d-f,y=m.map(parseFloat).sort((e,t)=>e-t).map(e=>{let t=typeof s[e]==`function`?s[e]():s[e],n=typeof t==`object`&&!al(t),r=n?t.label:t;if(!r&&r!==0)return null;_&&(r=_({point:e,label:r}));let d=!c&&e===l||c&&e<=l&&e>=u,m=K({[`${i}-text`]:!0,[`${i}-text-active`]:d}),y={marginBottom:`-50%`,[o?`top`:`bottom`]:`${(e-f)/v*100}%`},b={transform:`translateX(${o?`50%`:`-50%`})`,msTransform:`translateX(${o?`50%`:`-50%`})`,[o?`right`:`left`]:`${(e-f)/v*100}%`},x=a?y:b;return W(`span`,h({class:m,style:n?g(g({},x),t.style):x,key:e,onMousedown:t=>p(t,e)},{[wl?`onTouchstartPassive`:`onTouchstart`]:t=>p(t,e)}),[r])});return W(`div`,{class:i},[y])};s1.inheritAttrs=!1;var c1=U({compatConfig:{MODE:3},name:`Handle`,inheritAttrs:!1,props:{prefixCls:String,vertical:{type:Boolean,default:void 0},offset:Number,disabled:{type:Boolean,default:void 0},min:Number,max:Number,value:Number,tabindex:Q.oneOfType([Q.number,Q.string]),reverse:{type:Boolean,default:void 0},ariaLabel:String,ariaLabelledBy:String,ariaValueTextFormatter:Function,onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function}},setup(e,t){let{attrs:n,emit:r,expose:i}=t,a=V(!1),o=V(),s=()=>{document.activeElement===o.value&&(a.value=!0)},c=e=>{a.value=!1,r(`blur`,e)},l=()=>{a.value=!1},u=()=>{var e;(e=o.value)==null||e.focus()},d=()=>{var e;(e=o.value)==null||e.blur()},f=()=>{a.value=!0,u()},p=e=>{e.preventDefault(),u(),r(`mousedown`,e)};i({focus:u,blur:d,clickFocus:f,ref:o});let m=null;$r(()=>{m=Tl(document,`mouseup`,s)}),ni(()=>{m?.remove()});let _=G(()=>{let{vertical:t,offset:n,reverse:r}=e;return t?{[r?`top`:`bottom`]:`${n}%`,[r?`bottom`:`top`]:`auto`,transform:r?null:`translateY(+50%)`}:{[r?`right`:`left`]:`${n}%`,[r?`left`:`right`]:`auto`,transform:`translateX(${r?`+`:`-`}50%)`}});return()=>{let{prefixCls:t,disabled:r,min:i,max:s,value:u,tabindex:d,ariaLabel:f,ariaLabelledBy:m,ariaValueTextFormatter:v,onMouseenter:y,onMouseleave:b}=e,x=K(n.class,{[`${t}-handle-click-focused`]:a.value}),S={"aria-valuemin":i,"aria-valuemax":s,"aria-valuenow":u,"aria-disabled":!!r},C=[n.style,_.value],w=d||0;(r||d===null)&&(w=null);let T;return v&&(T=v(u)),W(`div`,h(h({},g(g(g(g({},n),{role:`slider`,tabindex:w}),S),{class:x,onBlur:c,onKeydown:l,onMousedown:p,onMouseenter:y,onMouseleave:b,ref:o,style:C})),{},{"aria-label":f,"aria-labelledby":m,"aria-valuetext":T}),null)}}});function l1(e,t){try{return Object.keys(t).some(n=>e.target===t[n].ref)}catch{return!1}}function u1(e,t){let{min:n,max:r}=t;return er}function d1(e){return e.touches.length>1||e.type.toLowerCase()===`touchend`&&e.touches.length>0}function f1(e,t){let{marks:n,step:r,min:i,max:a}=t,o=Object.keys(n).map(parseFloat);if(r!==null){let t=10**p1(r),n=Math.floor((a*t-i*t)/(r*t)),s=Math.min((e-i)/r,n),c=Math.round(s)*r+i;o.push(c)}let s=o.map(t=>Math.abs(e-t));return o[s.indexOf(Math.min(...s))]}function p1(e){let t=e.toString(),n=0;return t.indexOf(`.`)>=0&&(n=t.length-t.indexOf(`.`)-1),n}function m1(e,t){let n=1;return window.visualViewport&&(n=+(window.visualViewport.width/document.body.getBoundingClientRect().width).toFixed(2)),(e?t.clientY:t.pageX)/n}function h1(e,t){let n=1;return window.visualViewport&&(n=+(window.visualViewport.width/document.body.getBoundingClientRect().width).toFixed(2)),(e?t.touches[0].clientY:t.touches[0].pageX)/n}function g1(e,t){let n=t.getBoundingClientRect();return e?n.top+n.height*.5:window.scrollX+n.left+n.width*.5}function _1(e,t){let{max:n,min:r}=t;return e<=r?r:e>=n?n:e}function v1(e,t){let{step:n}=t,r=isFinite(f1(e,t))?f1(e,t):0;return n===null?r:parseFloat(r.toFixed(p1(n)))}function y1(e){e.stopPropagation(),e.preventDefault()}function b1(e,t,n){let r={increase:(e,t)=>e+t,decrease:(e,t)=>e-t},i=r[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),a=Object.keys(n.marks)[i];return n.step?r[e](t,n.step):Object.keys(n.marks).length&&n.marks[a]?n.marks[a]:t}function x1(e,t,n){let r=`increase`,i=`decrease`,a=r;switch(e.keyCode){case $.UP:a=t&&n?i:r;break;case $.RIGHT:a=!t&&n?i:r;break;case $.DOWN:a=t&&n?r:i;break;case $.LEFT:a=!t&&n?r:i;break;case $.END:return(e,t)=>t.max;case $.HOME:return(e,t)=>t.min;case $.PAGE_UP:return(e,t)=>e+t.step*2;case $.PAGE_DOWN:return(e,t)=>e-t.step*2;default:return}return(e,t)=>b1(a,e,t)}var S1=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{this.document=this.sliderRef&&this.sliderRef.ownerDocument;let{autofocus:e,disabled:t}=this;e&&!t&&this.focus()})},beforeUnmount(){this.$nextTick(()=>{this.removeDocumentEvents()})},methods:{defaultHandle(e){var{index:t,directives:n,className:r,style:i}=e,a=S1(e,[`index`,`directives`,`className`,`style`]);return delete a.dragging,a.value===null?null:W(c1,g(g({},a),{class:r,style:i,key:t}),null)},onDown(e,t){let n=t,{draggableTrack:r,vertical:i}=this.$props,{bounds:a}=this.$data,o=r&&this.positionGetValue&&this.positionGetValue(n)||[],s=l1(e,this.handlesRefs);if(this.dragTrack=r&&a.length>=2&&!s&&!o.map((e,t)=>{let n=t?!0:e>=a[t];return t===o.length-1?e<=a[t]:n}).some(e=>!e),this.dragTrack)this.dragOffset=n,this.startBounds=[...a];else{if(!s)this.dragOffset=0;else{let t=g1(i,e.target);this.dragOffset=n-t,n=t}this.onStart(n)}},onMouseDown(e){if(e.button!==0)return;this.removeDocumentEvents();let t=this.$props.vertical,n=m1(t,e);this.onDown(e,n),this.addDocumentMouseEvents()},onTouchStart(e){if(d1(e))return;let t=this.vertical,n=h1(t,e);this.onDown(e,n),this.addDocumentTouchEvents(),y1(e)},onFocus(e){let{vertical:t}=this;if(l1(e,this.handlesRefs)&&!this.dragTrack){let n=g1(t,e.target);this.dragOffset=0,this.onStart(n),y1(e),this.$emit(`focus`,e)}},onBlur(e){this.dragTrack||this.onEnd(),this.$emit(`blur`,e)},onMouseUp(){this.handlesRefs[this.prevMovedHandleIndex]&&this.handlesRefs[this.prevMovedHandleIndex].clickFocus()},onMouseMove(e){if(!this.sliderRef){this.onEnd();return}let t=m1(this.vertical,e);this.onMove(e,t-this.dragOffset,this.dragTrack,this.startBounds)},onTouchMove(e){if(d1(e)||!this.sliderRef){this.onEnd();return}let t=h1(this.vertical,e);this.onMove(e,t-this.dragOffset,this.dragTrack,this.startBounds)},onKeyDown(e){this.sliderRef&&l1(e,this.handlesRefs)&&this.onKeyboard(e)},onClickMarkLabel(e,t){e.stopPropagation(),this.onChange({sValue:t}),this.setState({sValue:t},()=>this.onEnd(!0))},getSliderStart(){let e=this.sliderRef,{vertical:t,reverse:n}=this,r=e.getBoundingClientRect();return t?n?r.bottom:r.top:window.scrollX+(n?r.right:r.left)},getSliderLength(){let e=this.sliderRef;if(!e)return 0;let t=e.getBoundingClientRect();return this.vertical?t.height:t.width},addDocumentTouchEvents(){this.onTouchMoveListener=Tl(this.document,`touchmove`,this.onTouchMove),this.onTouchUpListener=Tl(this.document,`touchend`,this.onEnd)},addDocumentMouseEvents(){this.onMouseMoveListener=Tl(this.document,`mousemove`,this.onMouseMove),this.onMouseUpListener=Tl(this.document,`mouseup`,this.onEnd)},removeDocumentEvents(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()},focus(){var e;this.$props.disabled||(e=this.handlesRefs[0])==null||e.focus()},blur(){this.$props.disabled||Object.keys(this.handlesRefs).forEach(e=>{var t,n;(n=(t=this.handlesRefs[e])?.blur)==null||n.call(t)})},calcValue(e){let{vertical:t,min:n,max:r}=this,i=Math.abs(Math.max(e,0)/this.getSliderLength());return t?(1-i)*(r-n)+n:i*(r-n)+n},calcValueByPos(e){let t=(this.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))},calcOffset(e){let{min:t,max:n}=this,r=(e-t)/(n-t);return Math.max(0,r*100)},saveSlider(e){this.sliderRef=e},saveHandle(e,t){this.handlesRefs[e]=t}},render(){let{prefixCls:e,marks:t,dots:n,step:r,included:i,disabled:a,vertical:o,reverse:s,min:c,max:l,maximumTrackStyle:u,railStyle:d,dotStyle:f,activeDotStyle:p,id:m}=this,{class:_,style:v}=this.$attrs,{tracks:y,handles:b}=this.renderSlider(),x=K(e,_,{[`${e}-with-marks`]:Object.keys(t).length,[`${e}-disabled`]:a,[`${e}-vertical`]:o,[`${e}-horizontal`]:!o}),S={vertical:o,marks:t,included:i,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:l,min:c,reverse:s,class:`${e}-mark`,onClickLabel:a?C1:this.onClickMarkLabel},C={[wl?`onTouchstartPassive`:`onTouchstart`]:a?C1:this.onTouchStart};return W(`div`,h(h({id:m,ref:this.saveSlider,tabindex:`-1`,class:x},C),{},{onMousedown:a?C1:this.onMouseDown,onMouseup:a?C1:this.onMouseUp,onKeydown:a?C1:this.onKeyDown,onFocus:a?C1:this.onFocus,onBlur:a?C1:this.onBlur,style:v}),[W(`div`,{class:`${e}-rail`,style:g(g({},u),d)},null),y,W(o1,{prefixCls:e,vertical:o,reverse:s,marks:t,dots:n,step:r,included:i,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:l,min:c,dotStyle:f,activeDotStyle:p},null),b,W(s1,S,{mark:this.$slots.mark}),Kc(this)])}})}var T1=w1(U({compatConfig:{MODE:3},name:`Slider`,mixins:[ub],inheritAttrs:!1,props:{defaultValue:Number,value:Number,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},tabindex:Q.oneOfType([Q.number,Q.string]),reverse:{type:Boolean,default:void 0},min:Number,max:Number,ariaLabelForHandle:String,ariaLabelledByForHandle:String,ariaValueTextFormatterForHandle:String,startPoint:Number},emits:[`beforeChange`,`afterChange`,`change`],data(){let e=this.defaultValue===void 0?this.min:this.defaultValue,t=this.value===void 0?e:this.value;return{sValue:this.trimAlignValue(t),dragging:!1}},watch:{value:{handler(e){this.setChangeValue(e)},deep:!0},min(){let{sValue:e}=this;this.setChangeValue(e)},max(){let{sValue:e}=this;this.setChangeValue(e)}},methods:{setChangeValue(e){let t=e===void 0?this.sValue:e,n=this.trimAlignValue(t,this.$props);n!==this.sValue&&(this.setState({sValue:n}),u1(t,this.$props)&&this.$emit(`change`,n))},onChange(e){let t=!Uc(this,`value`),n=e.sValue>this.max?g(g({},e),{sValue:this.max}):e;t&&this.setState(n);let r=n.sValue;this.$emit(`change`,r)},onStart(e){this.setState({dragging:!0});let{sValue:t}=this;this.$emit(`beforeChange`,t);let n=this.calcValueByPos(e);this.startValue=n,this.startPosition=e,n!==t&&(this.prevMovedHandleIndex=0,this.onChange({sValue:n}))},onEnd(e){let{dragging:t}=this;this.removeDocumentEvents(),(t||e)&&this.$emit(`afterChange`,this.sValue),this.setState({dragging:!1})},onMove(e,t){y1(e);let{sValue:n}=this,r=this.calcValueByPos(t);r!==n&&this.onChange({sValue:r})},onKeyboard(e){let{reverse:t,vertical:n}=this.$props,r=x1(e,n,t);if(r){y1(e);let{sValue:t}=this,n=r(t,this.$props),i=this.trimAlignValue(n);if(i===t)return;this.onChange({sValue:i}),this.$emit(`afterChange`,i),this.onEnd()}},getLowerBound(){let e=this.$props.startPoint||this.$props.min;return this.$data.sValue>e?e:this.$data.sValue},getUpperBound(){return this.$data.sValue1&&arguments[1]!==void 0?arguments[1]:{};if(e===null)return null;let n=g(g({},this.$props),t);return v1(_1(e,n),n)},getTrack(e){let{prefixCls:t,reverse:n,vertical:r,included:i,minimumTrackStyle:a,mergedTrackStyle:o,length:s,offset:c}=e;return W(i1,{class:`${t}-track`,vertical:r,included:i,offset:c,reverse:n,length:s,style:g(g({},a),o)},null)},renderSlider(){let{prefixCls:e,vertical:t,included:n,disabled:r,minimumTrackStyle:i,trackStyle:a,handleStyle:o,tabindex:s,ariaLabelForHandle:c,ariaLabelledByForHandle:l,ariaValueTextFormatterForHandle:u,min:d,max:f,startPoint:p,reverse:m,handle:h,defaultHandle:g}=this,_=h||g,{sValue:v,dragging:y}=this,b=this.calcOffset(v),x=_({class:`${e}-handle`,prefixCls:e,vertical:t,offset:b,value:v,dragging:y,disabled:r,min:d,max:f,reverse:m,index:0,tabindex:s,ariaLabel:c,ariaLabelledBy:l,ariaValueTextFormatter:u,style:o[0]||o,ref:e=>this.saveHandle(0,e),onFocus:this.onFocus,onBlur:this.onBlur}),S=p===void 0?0:this.calcOffset(p),C=a[0]||a;return{tracks:this.getTrack({prefixCls:e,reverse:m,vertical:t,included:n,offset:S,minimumTrackStyle:i,mergedTrackStyle:C,length:b-S}),handles:x}}}})),E1=e=>{let{value:t,handle:n,bounds:r,props:i}=e,{allowCross:a,pushable:o}=i,s=Number(o),c=_1(t,i),l=c;return!a&&n!=null&&r!==void 0&&(n>0&&c<=r[n-1]+s&&(l=r[n-1]+s),n=r[n+1]-s&&(l=r[n+1]-s)),v1(l,i)},D1={defaultValue:Q.arrayOf(Q.number),value:Q.arrayOf(Q.number),count:Number,pushable:Ch(Q.oneOfType([Q.looseBool,Q.number])),allowCross:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},reverse:{type:Boolean,default:void 0},tabindex:Q.arrayOf(Q.number),prefixCls:String,min:Number,max:Number,autofocus:{type:Boolean,default:void 0},ariaLabelGroupForHandles:Array,ariaLabelledByGroupForHandles:Array,ariaValueTextFormatterGroupForHandles:Array,draggableTrack:{type:Boolean,default:void 0}},O1=w1(U({compatConfig:{MODE:3},name:`Range`,mixins:[ub],inheritAttrs:!1,props:Bc(D1,{count:1,allowCross:!0,pushable:!1,tabindex:[],draggableTrack:!1,ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]}),emits:[`beforeChange`,`afterChange`,`change`],displayName:`Range`,data(){let{count:e,min:t,max:n}=this,r=Array(...Array(e+1)).map(()=>t),i=Uc(this,`defaultValue`)?this.defaultValue:r,{value:a}=this;a===void 0&&(a=i);let o=a.map((e,t)=>E1({value:e,handle:t,props:this.$props}));return{sHandle:null,recent:o[0]===n?0:o.length-1,bounds:o}},watch:{value:{handler(e){let{bounds:t}=this;this.setChangeValue(e||t)},deep:!0},min(){let{value:e}=this;this.setChangeValue(e||this.bounds)},max(){let{value:e}=this;this.setChangeValue(e||this.bounds)}},methods:{setChangeValue(e){let{bounds:t}=this,n=e.map((e,n)=>E1({value:e,handle:n,bounds:t,props:this.$props}));if(t.length===n.length){if(n.every((e,n)=>e===t[n]))return null}else n=e.map((e,t)=>E1({value:e,handle:t,props:this.$props}));if(this.setState({bounds:n}),e.some(e=>u1(e,this.$props))){let t=e.map(e=>_1(e,this.$props));this.$emit(`change`,t)}},onChange(e){if(!Uc(this,`value`))this.setState(e);else{let t={};[`sHandle`,`recent`].forEach(n=>{e[n]!==void 0&&(t[n]=e[n])}),Object.keys(t).length&&this.setState(t)}let t=g(g({},this.$data),e).bounds;this.$emit(`change`,t)},positionGetValue(e){let t=this.getValue(),n=this.calcValueByPos(e),r=this.getClosestBound(n),i=this.getBoundNeedMoving(n,r);if(n===t[i])return null;let a=[...t];return a[i]=n,a},onStart(e){let{bounds:t}=this;this.$emit(`beforeChange`,t);let n=this.calcValueByPos(e);this.startValue=n,this.startPosition=e;let r=this.getClosestBound(n);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(n,r),this.setState({sHandle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),n===t[this.prevMovedHandleIndex])return;let i=[...t];i[this.prevMovedHandleIndex]=n,this.onChange({bounds:i})},onEnd(e){let{sHandle:t}=this;this.removeDocumentEvents(),t||(this.dragTrack=!1),(t!==null||e)&&this.$emit(`afterChange`,this.bounds),this.setState({sHandle:null})},onMove(e,t,n,r){y1(e);let{$data:i,$props:a}=this,o=a.max||100,s=a.min||0;if(n){let e=a.vertical?-t:t;e=a.reverse?-e:e;let n=o-Math.max(...r),c=s-Math.min(...r),l=Math.min(Math.max(e/(this.getSliderLength()/100),c),n),u=r.map(e=>Math.floor(Math.max(Math.min(e+l,o),s)));i.bounds.map((e,t)=>e===u[t]).some(e=>!e)&&this.onChange({bounds:u});return}let{bounds:c,sHandle:l}=this,u=this.calcValueByPos(t);u!==c[l]&&this.moveTo(u)},onKeyboard(e){let{reverse:t,vertical:n}=this.$props,r=x1(e,n,t);if(r){y1(e);let{bounds:t,sHandle:n}=this,i=t[n===null?this.recent:n],a=E1({value:r(i,this.$props),handle:n,bounds:t,props:this.$props});if(a===i)return;this.moveTo(a,!0)}},getClosestBound(e){let{bounds:t}=this,n=0;for(let r=1;r=t[r]&&(n=r);return Math.abs(t[n+1]-e)e-t),this.internalPointsCache={marks:e,step:t,points:a}}return this.internalPointsCache.points},moveTo(e,t){let n=[...this.bounds],{sHandle:r,recent:i}=this,a=r===null?i:r;n[a]=e;let o=a;this.$props.pushable===!1?this.$props.allowCross&&(n.sort((e,t)=>e-t),o=n.indexOf(e)):this.pushSurroundingHandles(n,o),this.onChange({recent:o,sHandle:o,bounds:n}),t&&(this.$emit(`afterChange`,n),this.setState({},()=>{this.handlesRefs[o].focus()}),this.onEnd())},pushSurroundingHandles(e,t){let n=e[t],{pushable:r}=this,i=Number(r),a=0;if(e[t+1]-n=r.length||i<0)return!1;let a=t+n,o=r[i],{pushable:s}=this,c=Number(s),l=n*(e[a]-o);return this.pushHandle(e,a,n,c-l)?(e[t]=o,!0):!1},trimAlignValue(e){let{sHandle:t,bounds:n}=this;return E1({value:e,handle:t,bounds:n,props:this.$props})},ensureValueNotConflict(e,t,n){let{allowCross:r,pushable:i}=n,a=this.$data||{},{bounds:o}=a;if(e=e===void 0?a.sHandle:e,i=Number(i),!r&&e!=null&&o!==void 0){if(e>0&&t<=o[e-1]+i)return o[e-1]+i;if(e=o[e+1]-i)return o[e+1]-i}return t},getTrack(e){let{bounds:t,prefixCls:n,reverse:r,vertical:i,included:a,offsets:o,trackStyle:s}=e;return t.slice(0,-1).map((e,t)=>{let c=t+1;return W(i1,{class:K({[`${n}-track`]:!0,[`${n}-track-${c}`]:!0}),vertical:i,reverse:r,included:a,offset:o[c-1],length:o[c]-o[c-1],style:s[t],key:c},null)})},renderSlider(){let{sHandle:e,bounds:t,prefixCls:n,vertical:r,included:i,disabled:a,min:o,max:s,reverse:c,handle:l,defaultHandle:u,trackStyle:d,handleStyle:f,tabindex:p,ariaLabelGroupForHandles:m,ariaLabelledByGroupForHandles:h,ariaValueTextFormatterGroupForHandles:g}=this,_=l||u,v=t.map(e=>this.calcOffset(e)),y=`${n}-handle`,b=t.map((t,i)=>{let l=p[i]||0;(a||p[i]===null)&&(l=null);let u=e===i;return _({class:K({[y]:!0,[`${y}-${i+1}`]:!0,[`${y}-dragging`]:u}),prefixCls:n,vertical:r,dragging:u,offset:v[i],value:t,index:i,tabindex:l,min:o,max:s,reverse:c,disabled:a,style:f[i],ref:e=>this.saveHandle(i,e),onFocus:this.onFocus,onBlur:this.onBlur,ariaLabel:m[i],ariaLabelledBy:h[i],ariaValueTextFormatter:g[i]})});return{tracks:this.getTrack({bounds:t,prefixCls:n,reverse:c,vertical:r,included:i,offsets:v,trackStyle:d}),handles:b}}}})),k1=U({compatConfig:{MODE:3},name:`SliderTooltip`,inheritAttrs:!1,props:WA(),setup(e,t){let{attrs:n,slots:r}=t,i=B(null),a=B(null);function o(){pl.cancel(a.value),a.value=null}function s(){a.value=pl(()=>{var e;(e=i.value)==null||e.forcePopupAlign(),a.value=null})}let c=()=>{o(),e.open&&s()};return H([()=>e.open,()=>e.title],()=>{c()},{flush:`post`,immediate:!0}),Kr(()=>{c()}),ni(()=>{o()}),()=>W(KA,h(h({ref:i},e),n),r)}}),A1=e=>{let{componentCls:t,controlSize:n,dotSize:r,marginFull:i,marginPart:a,colorFillContentHover:o}=e;return{[t]:g(g({},Op(e)),{position:`relative`,height:n,margin:`${a}px ${i}px`,padding:0,cursor:`pointer`,touchAction:`none`,"&-vertical":{margin:`${i}px ${a}px`},[`${t}-rail`]:{position:`absolute`,backgroundColor:e.colorFillTertiary,borderRadius:e.borderRadiusXS,transition:`background-color ${e.motionDurationMid}`},[`${t}-track`]:{position:`absolute`,backgroundColor:e.colorPrimaryBorder,borderRadius:e.borderRadiusXS,transition:`background-color ${e.motionDurationMid}`},"&:hover":{[`${t}-rail`]:{backgroundColor:e.colorFillSecondary},[`${t}-track`]:{backgroundColor:e.colorPrimaryBorderHover},[`${t}-dot`]:{borderColor:o},[`${t}-handle::after`]:{boxShadow:`0 0 0 ${e.handleLineWidth}px ${e.colorPrimaryBorderHover}`},[`${t}-dot-active`]:{borderColor:e.colorPrimary}},[`${t}-handle`]:{position:`absolute`,width:e.handleSize,height:e.handleSize,outline:`none`,[`${t}-dragging`]:{zIndex:1},"&::before":{content:`""`,position:`absolute`,insetInlineStart:-e.handleLineWidth,insetBlockStart:-e.handleLineWidth,width:e.handleSize+e.handleLineWidth*2,height:e.handleSize+e.handleLineWidth*2,backgroundColor:`transparent`},"&::after":{content:`""`,position:`absolute`,insetBlockStart:0,insetInlineStart:0,width:e.handleSize,height:e.handleSize,backgroundColor:e.colorBgElevated,boxShadow:`0 0 0 ${e.handleLineWidth}px ${e.colorPrimaryBorder}`,borderRadius:`50%`,cursor:`pointer`,transition:` + inset-inline-start ${e.motionDurationMid}, + inset-block-start ${e.motionDurationMid}, + width ${e.motionDurationMid}, + height ${e.motionDurationMid}, + box-shadow ${e.motionDurationMid} + `},"&:hover, &:active, &:focus":{"&::before":{insetInlineStart:-((e.handleSizeHover-e.handleSize)/2+e.handleLineWidthHover),insetBlockStart:-((e.handleSizeHover-e.handleSize)/2+e.handleLineWidthHover),width:e.handleSizeHover+e.handleLineWidthHover*2,height:e.handleSizeHover+e.handleLineWidthHover*2},"&::after":{boxShadow:`0 0 0 ${e.handleLineWidthHover}px ${e.colorPrimary}`,width:e.handleSizeHover,height:e.handleSizeHover,insetInlineStart:(e.handleSize-e.handleSizeHover)/2,insetBlockStart:(e.handleSize-e.handleSizeHover)/2}}},[`${t}-mark`]:{position:`absolute`,fontSize:e.fontSize},[`${t}-mark-text`]:{position:`absolute`,display:`inline-block`,color:e.colorTextDescription,textAlign:`center`,wordBreak:`keep-all`,cursor:`pointer`,userSelect:`none`,"&-active":{color:e.colorText}},[`${t}-step`]:{position:`absolute`,background:`transparent`,pointerEvents:`none`},[`${t}-dot`]:{position:`absolute`,width:r,height:r,backgroundColor:e.colorBgElevated,border:`${e.handleLineWidth}px solid ${e.colorBorderSecondary}`,borderRadius:`50%`,cursor:`pointer`,transition:`border-color ${e.motionDurationSlow}`,"&-active":{borderColor:e.colorPrimaryBorder}},[`&${t}-disabled`]:{cursor:`not-allowed`,[`${t}-rail`]:{backgroundColor:`${e.colorFillSecondary} !important`},[`${t}-track`]:{backgroundColor:`${e.colorTextDisabled} !important`},[` + ${t}-dot + `]:{backgroundColor:e.colorBgElevated,borderColor:e.colorTextDisabled,boxShadow:`none`,cursor:`not-allowed`},[`${t}-handle::after`]:{backgroundColor:e.colorBgElevated,cursor:`not-allowed`,width:e.handleSize,height:e.handleSize,boxShadow:`0 0 0 ${e.handleLineWidth}px ${new zf(e.colorTextDisabled).onBackground(e.colorBgContainer).toHexString()}`,insetInlineStart:0,insetBlockStart:0},[` + ${t}-mark-text, + ${t}-dot + `]:{cursor:`not-allowed !important`}}})}},j1=(e,t)=>{let{componentCls:n,railSize:r,handleSize:i,dotSize:a}=e,o=t?`paddingBlock`:`paddingInline`,s=t?`width`:`height`,c=t?`height`:`width`,l=t?`insetBlockStart`:`insetInlineStart`,u=t?`top`:`insetInlineStart`;return{[o]:r,[c]:r*3,[`${n}-rail`]:{[s]:`100%`,[c]:r},[`${n}-track`]:{[c]:r},[`${n}-handle`]:{[l]:(r*3-i)/2},[`${n}-mark`]:{insetInlineStart:0,top:0,[u]:i,[s]:`100%`},[`${n}-step`]:{insetInlineStart:0,top:0,[u]:r,[s]:`100%`,[c]:r},[`${n}-dot`]:{position:`absolute`,[l]:(r-a)/2}}},M1=e=>{let{componentCls:t,marginPartWithMark:n}=e;return{[`${t}-horizontal`]:g(g({},j1(e,!0)),{[`&${t}-with-marks`]:{marginBottom:n}})}},N1=e=>{let{componentCls:t}=e;return{[`${t}-vertical`]:g(g({},j1(e,!1)),{height:`100%`})}},P1=Fp(`Slider`,e=>{let t=Rp(e,{marginPart:(e.controlHeight-e.controlSize)/2,marginFull:e.controlSize/2,marginPartWithMark:e.controlHeightLG-e.controlSize});return[A1(t),M1(t),N1(t)]},e=>{let t=e.controlHeightLG/4;return{controlSize:t,railSize:4,handleSize:t,handleSizeHover:e.controlHeightSM/2,dotSize:8,handleLineWidth:e.lineWidth+1,handleLineWidthHover:e.lineWidth+3}}),F1=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);itypeof e==`number`?e.toString():``,L1=_l(U({compatConfig:{MODE:3},name:`ASlider`,inheritAttrs:!1,props:{id:String,prefixCls:String,tooltipPrefixCls:String,range:Sl([Boolean,Object]),reverse:J(),min:Number,max:Number,step:Sl([Object,Number]),marks:q(),dots:J(),value:Sl([Array,Number]),defaultValue:Sl([Array,Number]),included:J(),disabled:J(),vertical:J(),tipFormatter:Sl([Function,Object],()=>I1),tooltipOpen:J(),tooltipVisible:J(),tooltipPlacement:X(),getTooltipPopupContainer:Y(),autofocus:J(),handleStyle:Sl([Array,Object]),trackStyle:Sl([Array,Object]),onChange:Y(),onAfterChange:Y(),onFocus:Y(),onBlur:Y(),"onUpdate:value":Y()},slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i,expose:a}=t,{prefixCls:o,rootPrefixCls:s,direction:c,getPopupContainer:l,configProvider:u}=Z(`slider`,e),[d,f]=P1(o),p=aw(),m=B(),g=B({}),_=(e,t)=>{g.value[e]=t},v=G(()=>e.tooltipPlacement?e.tooltipPlacement:e.vertical?c.value===`rtl`?`left`:`right`:`top`),y=()=>{var e;(e=m.value)==null||e.focus()},b=()=>{var e;(e=m.value)==null||e.blur()},x=e=>{i(`update:value`,e),i(`change`,e),p.onFieldChange()},S=e=>{i(`blur`,e)};a({focus:y,blur:b});let C=t=>{var{tooltipPrefixCls:n}=t,r=t.info,{value:i,dragging:a,index:c}=r,u=F1(r,[`value`,`dragging`,`index`]);let{tipFormatter:d,tooltipOpen:f=e.tooltipVisible,getTooltipPopupContainer:p}=e,m=d?g.value[c]||a:!1,y=f||f===void 0&&m;return W(k1,{prefixCls:n,title:d?d(i):``,open:y,placement:v.value,transitionName:`${s.value}-zoom-down`,key:c,overlayClassName:`${o.value}-tooltip`,getPopupContainer:p||l?.value},{default:()=>[W(c1,h(h({},u),{},{value:i,onMouseenter:()=>_(c,!0),onMouseleave:()=>_(c,!1)}),null)]})};return()=>{let{tooltipPrefixCls:t,range:i,id:a=p.id.value}=e,s=F1(e,[`tooltipPrefixCls`,`range`,`id`]),l=u.getPrefixCls(`tooltip`,t),g=K(n.class,{[`${o.value}-rtl`]:c.value===`rtl`},f.value);c.value===`rtl`&&!s.vertical&&(s.reverse=!s.reverse);let _;return typeof i==`object`&&(_=i.draggableTrack),d(i?W(O1,h(h(h({},n),s),{},{step:s.step,draggableTrack:_,class:g,ref:m,handle:e=>C({tooltipPrefixCls:l,prefixCls:o.value,info:e}),prefixCls:o.value,onChange:x,onBlur:S}),{mark:r.mark}):W(T1,h(h(h({},n),s),{},{id:a,step:s.step,class:g,ref:m,handle:e=>C({tooltipPrefixCls:l,prefixCls:o.value,info:e}),prefixCls:o.value,onChange:x,onBlur:S}),{mark:r.mark}))}}}));function R1(e){return typeof e==`string`}function z1(){}var B1=()=>({prefixCls:String,itemWidth:String,active:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},status:X(),iconPrefix:String,icon:Q.any,adjustMarginRight:String,stepNumber:Number,stepIndex:Number,description:Q.any,title:Q.any,subTitle:Q.any,progressDot:Ch(Q.oneOfType([Q.looseBool,Q.func])),tailContent:Q.any,icons:Q.shape({finish:Q.any,error:Q.any}).loose,onClick:Y(),onStepClick:Y(),stepIcon:Y(),itemRender:Y(),__legacy:J()}),V1=U({compatConfig:{MODE:3},name:`Step`,inheritAttrs:!1,props:B1(),setup(e,t){let{slots:n,emit:r,attrs:i}=t,a=t=>{r(`click`,t),r(`stepClick`,e.stepIndex)},o=t=>{let{icon:r,title:i,description:a}=t,{prefixCls:o,stepNumber:s,status:c,iconPrefix:l,icons:u,progressDot:d=n.progressDot,stepIcon:f=n.stepIcon}=e,p,m=K(`${o}-icon`,`${l}icon`,{[`${l}icon-${r}`]:r&&R1(r),[`${l}icon-check`]:!r&&c===`finish`&&(u&&!u.finish||!u),[`${l}icon-cross`]:!r&&c===`error`&&(u&&!u.error||!u)}),h=W(`span`,{class:`${o}-icon-dot`},null);return p=d?typeof d==`function`?W(`span`,{class:`${o}-icon`},[d({iconDot:h,index:s-1,status:c,title:i,description:a,prefixCls:o})]):W(`span`,{class:`${o}-icon`},[h]):r&&!R1(r)?W(`span`,{class:`${o}-icon`},[r]):u&&u.finish&&c===`finish`?W(`span`,{class:`${o}-icon`},[u.finish]):u&&u.error&&c===`error`?W(`span`,{class:`${o}-icon`},[u.error]):r||c===`finish`||c===`error`?W(`span`,{class:m},null):W(`span`,{class:`${o}-icon`},[s]),f&&(p=f({index:s-1,status:c,title:i,description:a,node:p})),p};return()=>{let{prefixCls:t,itemWidth:r,active:s,status:c=`wait`,tailContent:l,adjustMarginRight:u,disabled:d,title:f=n.title?.call(n),description:p=n.description?.call(n),subTitle:m=n.subTitle?.call(n),icon:g=n.icon?.call(n),onClick:_,onStepClick:v}=e,y=c||`wait`,b=K(`${t}-item`,`${t}-item-${y}`,{[`${t}-item-custom`]:g,[`${t}-item-active`]:s,[`${t}-item-disabled`]:d===!0}),x={};r&&(x.width=r),u&&(x.marginRight=u);let S={onClick:_||z1};v&&!d&&(S.role=`button`,S.tabindex=0,S.onClick=a);let C=W(`div`,h(h({},sm(i,[`__legacy`])),{},{class:[b,i.class],style:[i.style,x]}),[W(`div`,h(h({},S),{},{class:`${t}-item-container`}),[W(`div`,{class:`${t}-item-tail`},[l]),W(`div`,{class:`${t}-item-icon`},[o({icon:g,title:f,description:p})]),W(`div`,{class:`${t}-item-content`},[W(`div`,{class:`${t}-item-title`},[f,m&&W(`div`,{title:typeof m==`string`?m:void 0,class:`${t}-item-subtitle`},[m])]),p&&W(`div`,{class:`${t}-item-description`},[p])])])]);return e.itemRender?e.itemRender(C):C}}}),H1=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i[]),icons:Q.shape({finish:Q.any,error:Q.any}).loose,stepIcon:Y(),isInline:Q.looseBool,itemRender:Y()},emits:[`change`],setup(e,t){let{slots:n,emit:r}=t,i=t=>{let{current:n}=e;n!==t&&r(`change`,t)},a=(t,r,a)=>{let{prefixCls:o,iconPrefix:s,status:c,current:l,initial:u,icons:d,stepIcon:f=n.stepIcon,isInline:p,itemRender:m,progressDot:_=n.progressDot}=e,v=p||_,y=g(g({},t),{class:``}),b=u+r,x={active:b===l,stepNumber:b+1,stepIndex:b,key:b,prefixCls:o,iconPrefix:s,progressDot:v,stepIcon:f,icons:d,onStepClick:i};return c===`error`&&r===l-1&&(y.class=`${o}-next-error`),y.status||=b===l?c:bm(y,e)),W(V1,h(h(h({},y),x),{},{__legacy:!1}),null))},o=(e,t)=>a(g({},e.props),t,t=>s_(e,t));return()=>{let{prefixCls:t,direction:r,type:i,labelPlacement:s,iconPrefix:c,status:l,size:u,current:d,progressDot:f=n.progressDot,initial:p,icons:m,items:g,isInline:_,itemRender:v}=e,y=H1(e,[`prefixCls`,`direction`,`type`,`labelPlacement`,`iconPrefix`,`status`,`size`,`current`,`progressDot`,`initial`,`icons`,`items`,`isInline`,`itemRender`]),b=i===`navigation`,x=_||f,S=_?`horizontal`:r,C=_?void 0:u,w=x?`vertical`:s;return W(`div`,h({class:K(t,`${t}-${r}`,{[`${t}-${C}`]:C,[`${t}-label-${w}`]:S===`horizontal`,[`${t}-dot`]:!!x,[`${t}-navigation`]:b,[`${t}-inline`]:_})},y),[g.filter(e=>e).map((e,t)=>a(e,t)),rl(n.default?.call(n)).map(o)])}}}),W1=e=>{let{componentCls:t,stepsIconCustomTop:n,stepsIconCustomSize:r,stepsIconCustomFontSize:i}=e;return{[`${t}-item-custom`]:{[`> ${t}-item-container > ${t}-item-icon`]:{height:`auto`,background:`none`,border:0,[`> ${t}-icon`]:{top:n,width:r,height:r,fontSize:i,lineHeight:`${r}px`}}},[`&:not(${t}-vertical)`]:{[`${t}-item-custom`]:{[`${t}-item-icon`]:{width:`auto`,background:`none`}}}}},G1=e=>{let{componentCls:t,stepsIconSize:n,lineHeight:r,stepsSmallIconSize:i}=e;return{[`&${t}-label-vertical`]:{[`${t}-item`]:{overflow:`visible`,"&-tail":{marginInlineStart:n/2+e.controlHeightLG,padding:`${e.paddingXXS}px ${e.paddingLG}px`},"&-content":{display:`block`,width:(n/2+e.controlHeightLG)*2,marginTop:e.marginSM,textAlign:`center`},"&-icon":{display:`inline-block`,marginInlineStart:e.controlHeightLG},"&-title":{paddingInlineEnd:0,paddingInlineStart:0,"&::after":{display:`none`}},"&-subtitle":{display:`block`,marginBottom:e.marginXXS,marginInlineStart:0,lineHeight:r}},[`&${t}-small:not(${t}-dot)`]:{[`${t}-item`]:{"&-icon":{marginInlineStart:e.controlHeightLG+(n-i)/2}}}}}},K1=e=>{let{componentCls:t,stepsNavContentMaxWidth:n,stepsNavArrowColor:r,stepsNavActiveColor:i,motionDurationSlow:a}=e;return{[`&${t}-navigation`]:{paddingTop:e.paddingSM,[`&${t}-small`]:{[`${t}-item`]:{"&-container":{marginInlineStart:-e.marginSM}}},[`${t}-item`]:{overflow:`visible`,textAlign:`center`,"&-container":{display:`inline-block`,height:`100%`,marginInlineStart:-e.margin,paddingBottom:e.paddingSM,textAlign:`start`,transition:`opacity ${a}`,[`${t}-item-content`]:{maxWidth:n},[`${t}-item-title`]:g(g({maxWidth:`100%`,paddingInlineEnd:0},Dp),{"&::after":{display:`none`}})},[`&:not(${t}-item-active)`]:{[`${t}-item-container[role='button']`]:{cursor:`pointer`,"&:hover":{opacity:.85}}},"&:last-child":{flex:1,"&::after":{display:`none`}},"&::after":{position:`absolute`,top:`calc(50% - ${e.paddingSM/2}px)`,insetInlineStart:`100%`,display:`inline-block`,width:e.fontSizeIcon,height:e.fontSizeIcon,borderTop:`${e.lineWidth}px ${e.lineType} ${r}`,borderBottom:`none`,borderInlineStart:`none`,borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${r}`,transform:`translateY(-50%) translateX(-50%) rotate(45deg)`,content:`""`},"&::before":{position:`absolute`,bottom:0,insetInlineStart:`50%`,display:`inline-block`,width:0,height:e.lineWidthBold,backgroundColor:i,transition:`width ${a}, inset-inline-start ${a}`,transitionTimingFunction:`ease-out`,content:`""`}},[`${t}-item${t}-item-active::before`]:{insetInlineStart:0,width:`100%`}},[`&${t}-navigation${t}-vertical`]:{[`> ${t}-item`]:{marginInlineEnd:0,"&::before":{display:`none`},[`&${t}-item-active::before`]:{top:0,insetInlineEnd:0,insetInlineStart:`unset`,display:`block`,width:e.lineWidth*3,height:`calc(100% - ${e.marginLG}px)`},"&::after":{position:`relative`,insetInlineStart:`50%`,display:`block`,width:e.controlHeight*.25,height:e.controlHeight*.25,marginBottom:e.marginXS,textAlign:`center`,transform:`translateY(-50%) translateX(-50%) rotate(135deg)`},[`> ${t}-item-container > ${t}-item-tail`]:{visibility:`hidden`}}},[`&${t}-navigation${t}-horizontal`]:{[`> ${t}-item > ${t}-item-container > ${t}-item-tail`]:{visibility:`hidden`}}}},q1=e=>{let{antCls:t,componentCls:n}=e;return{[`&${n}-with-progress`]:{[`${n}-item`]:{paddingTop:e.paddingXXS,[`&-process ${n}-item-container ${n}-item-icon ${n}-icon`]:{color:e.processIconColor}},[`&${n}-vertical > ${n}-item `]:{paddingInlineStart:e.paddingXXS,[`> ${n}-item-container > ${n}-item-tail`]:{top:e.marginXXS,insetInlineStart:e.stepsIconSize/2-e.lineWidth+e.paddingXXS}},[`&, &${n}-small`]:{[`&${n}-horizontal ${n}-item:first-child`]:{paddingBottom:e.paddingXXS,paddingInlineStart:e.paddingXXS}},[`&${n}-small${n}-vertical > ${n}-item > ${n}-item-container > ${n}-item-tail`]:{insetInlineStart:e.stepsSmallIconSize/2-e.lineWidth+e.paddingXXS},[`&${n}-label-vertical`]:{[`${n}-item ${n}-item-tail`]:{top:e.margin-2*e.lineWidth}},[`${n}-item-icon`]:{position:`relative`,[`${t}-progress`]:{position:`absolute`,insetBlockStart:(e.stepsIconSize-e.stepsProgressSize-e.lineWidth*2)/2,insetInlineStart:(e.stepsIconSize-e.stepsProgressSize-e.lineWidth*2)/2}}}}},J1=e=>{let{componentCls:t,descriptionWidth:n,lineHeight:r,stepsCurrentDotSize:i,stepsDotSize:a,motionDurationSlow:o}=e;return{[`&${t}-dot, &${t}-dot${t}-small`]:{[`${t}-item`]:{"&-title":{lineHeight:r},"&-tail":{top:Math.floor((e.stepsDotSize-e.lineWidth*3)/2),width:`100%`,marginTop:0,marginBottom:0,marginInline:`${n/2}px 0`,padding:0,"&::after":{width:`calc(100% - ${e.marginSM*2}px)`,height:e.lineWidth*3,marginInlineStart:e.marginSM}},"&-icon":{width:a,height:a,marginInlineStart:(e.descriptionWidth-a)/2,paddingInlineEnd:0,lineHeight:`${a}px`,background:`transparent`,border:0,[`${t}-icon-dot`]:{position:`relative`,float:`left`,width:`100%`,height:`100%`,borderRadius:100,transition:`all ${o}`,"&::after":{position:`absolute`,top:-e.marginSM,insetInlineStart:(a-e.controlHeightLG*1.5)/2,width:e.controlHeightLG*1.5,height:e.controlHeight,background:`transparent`,content:`""`}}},"&-content":{width:n},[`&-process ${t}-item-icon`]:{position:`relative`,top:(a-i)/2,width:i,height:i,lineHeight:`${i}px`,background:`none`,marginInlineStart:(e.descriptionWidth-i)/2},[`&-process ${t}-icon`]:{[`&:first-child ${t}-icon-dot`]:{insetInlineStart:0}}}},[`&${t}-vertical${t}-dot`]:{[`${t}-item-icon`]:{marginTop:(e.controlHeight-a)/2,marginInlineStart:0,background:`none`},[`${t}-item-process ${t}-item-icon`]:{marginTop:(e.controlHeight-i)/2,top:0,insetInlineStart:(a-i)/2,marginInlineStart:0},[`${t}-item > ${t}-item-container > ${t}-item-tail`]:{top:(e.controlHeight-a)/2,insetInlineStart:0,margin:0,padding:`${a+e.paddingXS}px 0 ${e.paddingXS}px`,"&::after":{marginInlineStart:(a-e.lineWidth)/2}},[`&${t}-small`]:{[`${t}-item-icon`]:{marginTop:(e.controlHeightSM-a)/2},[`${t}-item-process ${t}-item-icon`]:{marginTop:(e.controlHeightSM-i)/2},[`${t}-item > ${t}-item-container > ${t}-item-tail`]:{top:(e.controlHeightSM-a)/2}},[`${t}-item:first-child ${t}-icon-dot`]:{insetInlineStart:0},[`${t}-item-content`]:{width:`inherit`}}}},Y1=e=>{let{componentCls:t}=e;return{[`&${t}-rtl`]:{direction:`rtl`,[`${t}-item`]:{"&-subtitle":{float:`left`}},[`&${t}-navigation`]:{[`${t}-item::after`]:{transform:`rotate(-45deg)`}},[`&${t}-vertical`]:{[`> ${t}-item`]:{"&::after":{transform:`rotate(225deg)`},[`${t}-item-icon`]:{float:`right`}}},[`&${t}-dot`]:{[`${t}-item-icon ${t}-icon-dot, &${t}-small ${t}-item-icon ${t}-icon-dot`]:{float:`right`}}}}},X1=e=>{let{componentCls:t,stepsSmallIconSize:n,fontSizeSM:r,fontSize:i,colorTextDescription:a}=e;return{[`&${t}-small`]:{[`&${t}-horizontal:not(${t}-label-vertical) ${t}-item`]:{paddingInlineStart:e.paddingSM,"&:first-child":{paddingInlineStart:0}},[`${t}-item-icon`]:{width:n,height:n,marginTop:0,marginBottom:0,marginInline:`0 ${e.marginXS}px`,fontSize:r,lineHeight:`${n}px`,textAlign:`center`,borderRadius:n},[`${t}-item-title`]:{paddingInlineEnd:e.paddingSM,fontSize:i,lineHeight:`${n}px`,"&::after":{top:n/2}},[`${t}-item-description`]:{color:a,fontSize:i},[`${t}-item-tail`]:{top:n/2-e.paddingXXS},[`${t}-item-custom ${t}-item-icon`]:{width:`inherit`,height:`inherit`,lineHeight:`inherit`,background:`none`,border:0,borderRadius:0,[`> ${t}-icon`]:{fontSize:n,lineHeight:`${n}px`,transform:`none`}}}}},Z1=e=>{let{componentCls:t,stepsSmallIconSize:n,stepsIconSize:r}=e;return{[`&${t}-vertical`]:{display:`flex`,flexDirection:`column`,[`> ${t}-item`]:{display:`block`,flex:`1 0 auto`,paddingInlineStart:0,overflow:`visible`,[`${t}-item-icon`]:{float:`left`,marginInlineEnd:e.margin},[`${t}-item-content`]:{display:`block`,minHeight:e.controlHeight*1.5,overflow:`hidden`},[`${t}-item-title`]:{lineHeight:`${r}px`},[`${t}-item-description`]:{paddingBottom:e.paddingSM}},[`> ${t}-item > ${t}-item-container > ${t}-item-tail`]:{position:`absolute`,top:0,insetInlineStart:e.stepsIconSize/2-e.lineWidth,width:e.lineWidth,height:`100%`,padding:`${r+e.marginXXS*1.5}px 0 ${e.marginXXS*1.5}px`,"&::after":{width:e.lineWidth,height:`100%`}},[`> ${t}-item:not(:last-child) > ${t}-item-container > ${t}-item-tail`]:{display:`block`},[` > ${t}-item > ${t}-item-container > ${t}-item-content > ${t}-item-title`]:{"&::after":{display:`none`}},[`&${t}-small ${t}-item-container`]:{[`${t}-item-tail`]:{position:`absolute`,top:0,insetInlineStart:e.stepsSmallIconSize/2-e.lineWidth,padding:`${n+e.marginXXS*1.5}px 0 ${e.marginXXS*1.5}px`},[`${t}-item-title`]:{lineHeight:`${n}px`}}}}},Q1=e=>{let{componentCls:t,inlineDotSize:n,inlineTitleColor:r,inlineTailColor:i}=e,a=e.paddingXS+e.lineWidth,o={[`${t}-item-container ${t}-item-content ${t}-item-title`]:{color:r}};return{[`&${t}-inline`]:{width:`auto`,display:`inline-flex`,[`${t}-item`]:{flex:`none`,"&-container":{padding:`${a}px ${e.paddingXXS}px 0`,margin:`0 ${e.marginXXS/2}px`,borderRadius:e.borderRadiusSM,cursor:`pointer`,transition:`background-color ${e.motionDurationMid}`,"&:hover":{background:e.controlItemBgHover},"&[role='button']:hover":{opacity:1}},"&-icon":{width:n,height:n,marginInlineStart:`calc(50% - ${n/2}px)`,[`> ${t}-icon`]:{top:0},[`${t}-icon-dot`]:{borderRadius:e.fontSizeSM/4}},"&-content":{width:`auto`,marginTop:e.marginXS-e.lineWidth},"&-title":{color:r,fontSize:e.fontSizeSM,lineHeight:e.lineHeightSM,fontWeight:`normal`,marginBottom:e.marginXXS/2},"&-description":{display:`none`},"&-tail":{marginInlineStart:0,top:a+n/2,transform:`translateY(-50%)`,"&:after":{width:`100%`,height:e.lineWidth,borderRadius:0,marginInlineStart:0,background:i}},[`&:first-child ${t}-item-tail`]:{width:`50%`,marginInlineStart:`50%`},[`&:last-child ${t}-item-tail`]:{display:`block`,width:`50%`},"&-wait":g({[`${t}-item-icon ${t}-icon ${t}-icon-dot`]:{backgroundColor:e.colorBorderBg,border:`${e.lineWidth}px ${e.lineType} ${i}`}},o),"&-finish":g({[`${t}-item-tail::after`]:{backgroundColor:i},[`${t}-item-icon ${t}-icon ${t}-icon-dot`]:{backgroundColor:i,border:`${e.lineWidth}px ${e.lineType} ${i}`}},o),"&-error":o,"&-active, &-process":g({[`${t}-item-icon`]:{width:n,height:n,marginInlineStart:`calc(50% - ${n/2}px)`,top:0}},o),[`&:not(${t}-item-active) > ${t}-item-container[role='button']:hover`]:{[`${t}-item-title`]:{color:r}}}}}},$1;(function(e){e.wait=`wait`,e.process=`process`,e.finish=`finish`,e.error=`error`})($1||={});var e0=(e,t)=>{let n=`${t.componentCls}-item`,r=`${e}IconColor`,i=`${e}TitleColor`,a=`${e}DescriptionColor`,o=`${e}TailColor`,s=`${e}IconBgColor`,c=`${e}IconBorderColor`,l=`${e}DotColor`;return{[`${n}-${e} ${n}-icon`]:{backgroundColor:t[s],borderColor:t[c],[`> ${t.componentCls}-icon`]:{color:t[r],[`${t.componentCls}-icon-dot`]:{background:t[l]}}},[`${n}-${e}${n}-custom ${n}-icon`]:{[`> ${t.componentCls}-icon`]:{color:t[l]}},[`${n}-${e} > ${n}-container > ${n}-content > ${n}-title`]:{color:t[i],"&::after":{backgroundColor:t[o]}},[`${n}-${e} > ${n}-container > ${n}-content > ${n}-description`]:{color:t[a]},[`${n}-${e} > ${n}-container > ${n}-tail::after`]:{backgroundColor:t[o]}}},t0=e=>{let{componentCls:t,motionDurationSlow:n}=e,r=`${t}-item`;return g(g(g(g(g(g({[r]:{position:`relative`,display:`inline-block`,flex:1,overflow:`hidden`,verticalAlign:`top`,"&:last-child":{flex:`none`,[`> ${r}-container > ${r}-tail, > ${r}-container > ${r}-content > ${r}-title::after`]:{display:`none`}}},[`${r}-container`]:{outline:`none`},[`${r}-icon, ${r}-content`]:{display:`inline-block`,verticalAlign:`top`},[`${r}-icon`]:{width:e.stepsIconSize,height:e.stepsIconSize,marginTop:0,marginBottom:0,marginInlineStart:0,marginInlineEnd:e.marginXS,fontSize:e.stepsIconFontSize,fontFamily:e.fontFamily,lineHeight:`${e.stepsIconSize}px`,textAlign:`center`,borderRadius:e.stepsIconSize,border:`${e.lineWidth}px ${e.lineType} transparent`,transition:`background-color ${n}, border-color ${n}`,[`${t}-icon`]:{position:`relative`,top:e.stepsIconTop,color:e.colorPrimary,lineHeight:1}},[`${r}-tail`]:{position:`absolute`,top:e.stepsIconSize/2-e.paddingXXS,insetInlineStart:0,width:`100%`,"&::after":{display:`inline-block`,width:`100%`,height:e.lineWidth,background:e.colorSplit,borderRadius:e.lineWidth,transition:`background ${n}`,content:`""`}},[`${r}-title`]:{position:`relative`,display:`inline-block`,paddingInlineEnd:e.padding,color:e.colorText,fontSize:e.fontSizeLG,lineHeight:`${e.stepsTitleLineHeight}px`,"&::after":{position:`absolute`,top:e.stepsTitleLineHeight/2,insetInlineStart:`100%`,display:`block`,width:9999,height:e.lineWidth,background:e.processTailColor,content:`""`}},[`${r}-subtitle`]:{display:`inline`,marginInlineStart:e.marginXS,color:e.colorTextDescription,fontWeight:`normal`,fontSize:e.fontSize},[`${r}-description`]:{color:e.colorTextDescription,fontSize:e.fontSize}},e0($1.wait,e)),e0($1.process,e)),{[`${r}-process > ${r}-container > ${r}-title`]:{fontWeight:e.fontWeightStrong}}),e0($1.finish,e)),e0($1.error,e)),{[`${r}${t}-next-error > ${t}-item-title::after`]:{background:e.colorError},[`${r}-disabled`]:{cursor:`not-allowed`}})},n0=e=>{let{componentCls:t,motionDurationSlow:n}=e;return{[`& ${t}-item`]:{[`&:not(${t}-item-active)`]:{[`& > ${t}-item-container[role='button']`]:{cursor:`pointer`,[`${t}-item`]:{[`&-title, &-subtitle, &-description, &-icon ${t}-icon`]:{transition:`color ${n}`}},"&:hover":{[`${t}-item`]:{"&-title, &-subtitle, &-description":{color:e.colorPrimary}}}},[`&:not(${t}-item-process)`]:{[`& > ${t}-item-container[role='button']:hover`]:{[`${t}-item`]:{"&-icon":{borderColor:e.colorPrimary,[`${t}-icon`]:{color:e.colorPrimary}}}}}}},[`&${t}-horizontal:not(${t}-label-vertical)`]:{[`${t}-item`]:{paddingInlineStart:e.padding,whiteSpace:`nowrap`,"&:first-child":{paddingInlineStart:0},[`&:last-child ${t}-item-title`]:{paddingInlineEnd:0},"&-tail":{display:`none`},"&-description":{maxWidth:e.descriptionWidth,whiteSpace:`normal`}}}}},r0=e=>{let{componentCls:t}=e;return{[t]:g(g(g(g(g(g(g(g(g(g(g(g(g({},Op(e)),{display:`flex`,width:`100%`,fontSize:0,textAlign:`initial`}),t0(e)),n0(e)),W1(e)),X1(e)),Z1(e)),G1(e)),J1(e)),K1(e)),Y1(e)),q1(e)),Q1(e))}},i0=Fp(`Steps`,e=>{let{wireframe:t,colorTextDisabled:n,fontSizeHeading3:r,fontSize:i,controlHeight:a,controlHeightLG:o,colorTextLightSolid:s,colorText:c,colorPrimary:l,colorTextLabel:u,colorTextDescription:d,colorTextQuaternary:f,colorFillContent:p,controlItemBgActive:m,colorError:h,colorBgContainer:g,colorBorderSecondary:_}=e,v=e.controlHeight,y=e.colorSplit;return[r0(Rp(e,{processTailColor:y,stepsNavArrowColor:n,stepsIconSize:v,stepsIconCustomSize:v,stepsIconCustomTop:0,stepsIconCustomFontSize:o/2,stepsIconTop:-.5,stepsIconFontSize:i,stepsTitleLineHeight:a,stepsSmallIconSize:r,stepsDotSize:a/4,stepsCurrentDotSize:o/4,stepsNavContentMaxWidth:`auto`,processIconColor:s,processTitleColor:c,processDescriptionColor:c,processIconBgColor:l,processIconBorderColor:l,processDotColor:l,waitIconColor:t?n:u,waitTitleColor:d,waitDescriptionColor:d,waitTailColor:y,waitIconBgColor:t?g:p,waitIconBorderColor:t?n:`transparent`,waitDotColor:n,finishIconColor:l,finishTitleColor:c,finishDescriptionColor:d,finishTailColor:l,finishIconBgColor:t?g:m,finishIconBorderColor:t?l:m,finishDotColor:l,errorIconColor:s,errorTitleColor:h,errorDescriptionColor:h,errorTailColor:y,errorIconBgColor:h,errorIconBorderColor:h,errorDotColor:h,stepsNavActiveColor:l,stepsProgressSize:o,inlineDotSize:6,inlineTitleColor:f,inlineTailColor:_}))]},{descriptionWidth:140}),a0=U({compatConfig:{MODE:3},name:`ASteps`,inheritAttrs:!1,props:Bc({prefixCls:String,iconPrefix:String,current:Number,initial:Number,percent:Number,responsive:J(),items:xl(),labelPlacement:X(),status:X(),size:X(),direction:X(),progressDot:Sl([Boolean,Function]),type:X(),onChange:Y(),"onUpdate:current":Y()},{current:0,responsive:!0,labelPlacement:`horizontal`}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i}=t,{prefixCls:a,direction:o,configProvider:s}=Z(`steps`,e),[c,l]=i0(a),[,u]=Jp(),d=EA(),f=G(()=>e.responsive&&d.value.xs?`vertical`:e.direction),p=G(()=>s.getPrefixCls(``,e.iconPrefix)),m=e=>{i(`update:current`,e),i(`change`,e)},_=G(()=>e.type===`inline`),v=G(()=>_.value?void 0:e.percent),y=t=>{let{node:n,status:r}=t;if(r===`process`&&e.percent!==void 0){let t=e.size===`small`?u.value.controlHeight:u.value.controlHeightLG;return W(`div`,{class:`${a.value}-progress-icon`},[W(w$,{type:`circle`,percent:v.value,size:t,strokeWidth:4,format:()=>null},null),n])}return n},b=G(()=>({finish:W(zC,{class:`${a.value}-finish-icon`},null),error:W(UC,{class:`${a.value}-error-icon`},null)}));return()=>{let t=K({[`${a.value}-rtl`]:o.value===`rtl`,[`${a.value}-with-progress`]:v.value!==void 0},n.class,l.value);return c(W(U1,h(h(h({icons:b.value},n),sm(e,[`percent`,`responsive`])),{},{items:e.items,direction:f.value,prefixCls:a.value,iconPrefix:p.value,class:t,onChange:m,isInline:_.value,itemRender:_.value?(e,t)=>e.description?W(KA,{title:e.description},{default:()=>[t]}):t:void 0}),g({stepIcon:y},r)))}}}),o0=U(g(g({compatConfig:{MODE:3}},V1),{name:`AStep`,props:B1()})),s0=g(a0,{Step:o0,install:e=>(e.component(a0.name,a0),e.component(o0.name,o0),e)}),c0=e=>{let{componentCls:t}=e,n=`${t}-inner`;return{[t]:{[`&${t}-small`]:{minWidth:e.switchMinWidthSM,height:e.switchHeightSM,lineHeight:`${e.switchHeightSM}px`,[`${t}-inner`]:{paddingInlineStart:e.switchInnerMarginMaxSM,paddingInlineEnd:e.switchInnerMarginMinSM,[`${n}-checked`]:{marginInlineStart:`calc(-100% + ${e.switchPinSizeSM+e.switchPadding*2}px - ${e.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(100% - ${e.switchPinSizeSM+e.switchPadding*2}px + ${e.switchInnerMarginMaxSM*2}px)`},[`${n}-unchecked`]:{marginTop:-e.switchHeightSM,marginInlineStart:0,marginInlineEnd:0}},[`${t}-handle`]:{width:e.switchPinSizeSM,height:e.switchPinSizeSM},[`${t}-loading-icon`]:{top:(e.switchPinSizeSM-e.switchLoadingIconSize)/2,fontSize:e.switchLoadingIconSize},[`&${t}-checked`]:{[`${t}-inner`]:{paddingInlineStart:e.switchInnerMarginMinSM,paddingInlineEnd:e.switchInnerMarginMaxSM,[`${n}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${n}-unchecked`]:{marginInlineStart:`calc(100% - ${e.switchPinSizeSM+e.switchPadding*2}px + ${e.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(-100% + ${e.switchPinSizeSM+e.switchPadding*2}px - ${e.switchInnerMarginMaxSM*2}px)`}},[`${t}-handle`]:{insetInlineStart:`calc(100% - ${e.switchPinSizeSM+e.switchPadding}px)`}},[`&:not(${t}-disabled):active`]:{[`&:not(${t}-checked) ${n}`]:{[`${n}-unchecked`]:{marginInlineStart:e.marginXXS/2,marginInlineEnd:-e.marginXXS/2}},[`&${t}-checked ${n}`]:{[`${n}-checked`]:{marginInlineStart:-e.marginXXS/2,marginInlineEnd:e.marginXXS/2}}}}}}},l0=e=>{let{componentCls:t}=e;return{[t]:{[`${t}-loading-icon${e.iconCls}`]:{position:`relative`,top:(e.switchPinSize-e.fontSize)/2,color:e.switchLoadingIconColor,verticalAlign:`top`},[`&${t}-checked ${t}-loading-icon`]:{color:e.switchColor}}}},u0=e=>{let{componentCls:t}=e,n=`${t}-handle`;return{[t]:{[n]:{position:`absolute`,top:e.switchPadding,insetInlineStart:e.switchPadding,width:e.switchPinSize,height:e.switchPinSize,transition:`all ${e.switchDuration} ease-in-out`,"&::before":{position:`absolute`,top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,backgroundColor:e.colorWhite,borderRadius:e.switchPinSize/2,boxShadow:e.switchHandleShadow,transition:`all ${e.switchDuration} ease-in-out`,content:`""`}},[`&${t}-checked ${n}`]:{insetInlineStart:`calc(100% - ${e.switchPinSize+e.switchPadding}px)`},[`&:not(${t}-disabled):active`]:{[`${n}::before`]:{insetInlineEnd:e.switchHandleActiveInset,insetInlineStart:0},[`&${t}-checked ${n}::before`]:{insetInlineEnd:0,insetInlineStart:e.switchHandleActiveInset}}}}},d0=e=>{let{componentCls:t}=e,n=`${t}-inner`;return{[t]:{[n]:{display:`block`,overflow:`hidden`,borderRadius:100,height:`100%`,paddingInlineStart:e.switchInnerMarginMax,paddingInlineEnd:e.switchInnerMarginMin,transition:`padding-inline-start ${e.switchDuration} ease-in-out, padding-inline-end ${e.switchDuration} ease-in-out`,[`${n}-checked, ${n}-unchecked`]:{display:`block`,color:e.colorTextLightSolid,fontSize:e.fontSizeSM,transition:`margin-inline-start ${e.switchDuration} ease-in-out, margin-inline-end ${e.switchDuration} ease-in-out`,pointerEvents:`none`},[`${n}-checked`]:{marginInlineStart:`calc(-100% + ${e.switchPinSize+e.switchPadding*2}px - ${e.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(100% - ${e.switchPinSize+e.switchPadding*2}px + ${e.switchInnerMarginMax*2}px)`},[`${n}-unchecked`]:{marginTop:-e.switchHeight,marginInlineStart:0,marginInlineEnd:0}},[`&${t}-checked ${n}`]:{paddingInlineStart:e.switchInnerMarginMin,paddingInlineEnd:e.switchInnerMarginMax,[`${n}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${n}-unchecked`]:{marginInlineStart:`calc(100% - ${e.switchPinSize+e.switchPadding*2}px + ${e.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(-100% + ${e.switchPinSize+e.switchPadding*2}px - ${e.switchInnerMarginMax*2}px)`}},[`&:not(${t}-disabled):active`]:{[`&:not(${t}-checked) ${n}`]:{[`${n}-unchecked`]:{marginInlineStart:e.switchPadding*2,marginInlineEnd:-e.switchPadding*2}},[`&${t}-checked ${n}`]:{[`${n}-checked`]:{marginInlineStart:-e.switchPadding*2,marginInlineEnd:e.switchPadding*2}}}}}},f0=e=>{let{componentCls:t}=e;return{[t]:g(g(g(g({},Op(e)),{position:`relative`,display:`inline-block`,boxSizing:`border-box`,minWidth:e.switchMinWidth,height:e.switchHeight,lineHeight:`${e.switchHeight}px`,verticalAlign:`middle`,background:e.colorTextQuaternary,border:`0`,borderRadius:100,cursor:`pointer`,transition:`all ${e.motionDurationMid}`,userSelect:`none`,[`&:hover:not(${t}-disabled)`]:{background:e.colorTextTertiary}}),Pp(e)),{[`&${t}-checked`]:{background:e.switchColor,[`&:hover:not(${t}-disabled)`]:{background:e.colorPrimaryHover}},[`&${t}-loading, &${t}-disabled`]:{cursor:`not-allowed`,opacity:e.switchDisabledOpacity,"*":{boxShadow:`none`,cursor:`not-allowed`}},[`&${t}-rtl`]:{direction:`rtl`}})}},p0=Fp(`Switch`,e=>{let t=e.fontSize*e.lineHeight,n=e.controlHeight/2,r=t-4,i=n-4,a=Rp(e,{switchMinWidth:r*2+8,switchHeight:t,switchDuration:e.motionDurationMid,switchColor:e.colorPrimary,switchDisabledOpacity:e.opacityLoading,switchInnerMarginMin:r/2,switchInnerMarginMax:r+2+4,switchPadding:2,switchPinSize:r,switchBg:e.colorBgContainer,switchMinWidthSM:i*2+4,switchHeightSM:n,switchInnerMarginMinSM:i/2,switchInnerMarginMaxSM:i+2+4,switchPinSizeSM:i,switchHandleShadow:`0 2px 4px 0 ${new zf(`#00230b`).setAlpha(.2).toRgbString()}`,switchLoadingIconSize:e.fontSizeIcon*.75,switchLoadingIconColor:`rgba(0, 0, 0, ${e.opacityLoading})`,switchHandleActiveInset:`-30%`});return[f0(a),d0(a),u0(a),l0(a),c0(a)]}),m0=hl(`small`,`default`),h0=_l(U({compatConfig:{MODE:3},name:`ASwitch`,__ANT_SWITCH:!0,inheritAttrs:!1,props:{id:String,prefixCls:String,size:Q.oneOf(m0),disabled:{type:Boolean,default:void 0},checkedChildren:Q.any,unCheckedChildren:Q.any,tabindex:Q.oneOfType([Q.string,Q.number]),autofocus:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},checked:Q.oneOfType([Q.string,Q.number,Q.looseBool]),checkedValue:Q.oneOfType([Q.string,Q.number,Q.looseBool]).def(!0),unCheckedValue:Q.oneOfType([Q.string,Q.number,Q.looseBool]).def(!1),onChange:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onMouseup:{type:Function},"onUpdate:checked":{type:Function},onBlur:Function,onFocus:Function},slots:Object,setup(e,t){let{attrs:n,slots:r,expose:i,emit:a}=t,o=aw(),s=Ul(),c=G(()=>e.disabled??s.value);Qr(()=>{Ru(!(`defaultChecked`in n),`Switch`,`'defaultChecked' is deprecated, please use 'v-model:checked'`),Ru(!(`value`in n),`Switch`,"`value` is not validate prop, do you mean `checked`?")});let l=B(e.checked===void 0?n.defaultChecked:e.checked),u=G(()=>l.value===e.checkedValue);H(()=>e.checked,()=>{l.value=e.checked});let{prefixCls:d,direction:f,size:p}=Z(`switch`,e),[m,g]=p0(d),_=B(),v=()=>{var e;(e=_.value)==null||e.focus()};i({focus:v,blur:()=>{var e;(e=_.value)==null||e.blur()}}),$r(()=>{zn(()=>{e.autofocus&&!c.value&&_.value.focus()})});let y=(e,t)=>{c.value||(a(`update:checked`,e),a(`change`,e,t),o.onFieldChange())},b=e=>{a(`blur`,e)},x=t=>{v();let n=u.value?e.unCheckedValue:e.checkedValue;y(n,t),a(`click`,n,t)},S=t=>{t.keyCode===$.LEFT?y(e.unCheckedValue,t):t.keyCode===$.RIGHT&&y(e.checkedValue,t),a(`keydown`,t)},C=e=>{var t;(t=_.value)==null||t.blur(),a(`mouseup`,e)},w=G(()=>({[`${d.value}-small`]:p.value===`small`,[`${d.value}-loading`]:e.loading,[`${d.value}-checked`]:u.value,[`${d.value}-disabled`]:c.value,[d.value]:!0,[`${d.value}-rtl`]:f.value===`rtl`,[g.value]:!0}));return()=>m(W(sj,null,{default:()=>[W(`button`,h(h(h({},sm(e,[`prefixCls`,`checkedChildren`,`unCheckedChildren`,`checked`,`autofocus`,`checkedValue`,`unCheckedValue`,`id`,`onChange`,`onUpdate:checked`])),n),{},{id:e.id??o.id.value,onKeydown:S,onClick:x,onBlur:b,onMouseup:C,type:`button`,role:`switch`,"aria-checked":l.value,disabled:c.value||e.loading,class:[n.class,w.value],ref:_}),[W(`div`,{class:`${d.value}-handle`},[e.loading?W(FC,{class:`${d.value}-loading-icon`},null):null]),W(`span`,{class:`${d.value}-inner`},[W(`span`,{class:`${d.value}-inner-checked`},[ol(r,e,`checkedChildren`)]),W(`span`,{class:`${d.value}-inner-unchecked`},[ol(r,e,`unCheckedChildren`)])])])]}))}})),g0=Symbol(`TableContextProps`),_0=e=>{er(g0,e)},v0=()=>tr(g0,{}),y0=`RC_TABLE_KEY`;function b0(e){return e==null?[]:Array.isArray(e)?e:[e]}function x0(e,t){if(!t&&typeof t!=`number`)return e;let n=b0(t),r=e;for(let e=0;e{let{key:r,dataIndex:i}=e||{},a=r||b0(i).join(`-`)||y0;for(;n[a];)a=`${a}_next`;n[a]=!0,t.push(a)}),t}function C0(){let e={};function t(e,n){n&&Object.keys(n).forEach(r=>{let i=n[r];i&&typeof i==`object`?(e[r]=e[r]||{},t(e[r],i)):e[r]=i})}return[...arguments].forEach(n=>{t(e,n)}),e}function w0(e){return e!=null}var T0=Symbol(`SlotsContextProps`),E0=e=>{er(T0,e)},D0=()=>tr(T0,G(()=>({}))),O0=Symbol(`ContextProps`),k0=e=>{er(O0,e)},A0=()=>tr(O0,{onResizeColumn:()=>{}}),j0=`RC_TABLE_INTERNAL_COL_DEFINE`,M0=Symbol(`HoverContextProps`),N0=e=>{er(M0,e)},P0=()=>tr(M0,{startRow:V(-1),endRow:V(-1),onHover(){}}),F0=V(!1),I0=()=>{$r(()=>{F0.value=F0.value||wB(`position`,`sticky`)})},L0=()=>F0,R0=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i=n}function B0(e){return e&&typeof e==`object`&&!Array.isArray(e)&&!Wa(e)}var V0=U({name:`Cell`,props:[`prefixCls`,`record`,`index`,`renderIndex`,`dataIndex`,`customRender`,`component`,`colSpan`,`rowSpan`,`fixLeft`,`fixRight`,`firstFixLeft`,`lastFixLeft`,`firstFixRight`,`lastFixRight`,`appendNode`,`additionalProps`,`ellipsis`,`align`,`rowType`,`isSticky`,`column`,`cellType`,`transformCellText`],setup(e,t){let{slots:n}=t,r=D0(),{onHover:i,startRow:a,endRow:o}=P0(),s=G(()=>e.colSpan??e.additionalProps?.colSpan??e.additionalProps?.colspan),c=G(()=>e.rowSpan??e.additionalProps?.rowSpan??e.additionalProps?.rowspan),l=DA(()=>{let{index:t}=e;return z0(t,c.value||1,a.value,o.value)}),u=L0(),d=(t,n)=>{var r;let{record:a,index:o,additionalProps:s}=e;a&&i(o,o+n-1),(r=s?.onMouseenter)==null||r.call(s,t)},f=t=>{var n;let{record:r,additionalProps:a}=e;r&&i(-1,-1),(n=a?.onMouseleave)==null||n.call(a,t)},p=e=>{let t=rl(e)[0];return Wa(t)?t.type===Na?t.children:Array.isArray(t.children)?p(t.children):void 0:t},m=V(null);return H([l,()=>e.prefixCls,m],()=>{let t=qc(m.value);t&&(l.value?pM(t,`${e.prefixCls}-cell-row-hover`):mM(t,`${e.prefixCls}-cell-row-hover`))}),()=>{let{prefixCls:t,record:i,index:a,renderIndex:o,dataIndex:l,customRender:_,component:v=`td`,fixLeft:y,fixRight:b,firstFixLeft:x,lastFixLeft:S,firstFixRight:C,lastFixRight:w,appendNode:T=n.appendNode?.call(n),additionalProps:E={},ellipsis:D,align:O,rowType:k,isSticky:A,column:j={},cellType:M}=e,N=`${t}-cell`,P,F,I=n.default?.call(n);if(w0(I)||M===`header`)F=I;else{let t=x0(i,l);if(F=t,_){let e=_({text:t,value:t,record:i,index:a,renderIndex:o,column:j.__originColumn__});B0(e)?(F=e.children,P=e.props):F=e}!(`RC_TABLE_INTERNAL_COL_DEFINE`in j)&&M===`body`&&r.value.bodyCell&&!j.slots?.customRender&&(F=Gc(u_(r.value,`bodyCell`,{text:t,value:t,record:i,index:a,column:j.__originColumn__},()=>{let e=F===void 0?t:F;return[typeof e==`object`&&al(e)||typeof e!=`object`?e:null]}))),e.transformCellText&&(F=e.transformCellText({text:F,record:i,index:a,column:j.__originColumn__}))}typeof F==`object`&&!Array.isArray(F)&&!Wa(F)&&(F=null),D&&(S||C)&&(F=W(`span`,{class:`${N}-content`},[F])),Array.isArray(F)&&F.length===1&&(F=F[0]);let L=P||{},{colSpan:R,rowSpan:ee,style:te,class:ne}=L,z=R0(L,[`colSpan`,`rowSpan`,`style`,`class`]),re=(R===void 0?s.value:R)??1,ie=(ee===void 0?c.value:ee)??1;if(re===0||ie===0)return null;let ae={},oe=typeof y==`number`&&u.value,se=typeof b==`number`&&u.value;oe&&(ae.position=`sticky`,ae.left=`${y}px`),se&&(ae.position=`sticky`,ae.right=`${b}px`);let ce={};O&&(ce.textAlign=O);let le,ue=D===!0?{showTitle:!0}:D;return ue&&(ue.showTitle||k===`header`)&&(typeof F==`string`||typeof F==`number`?le=F.toString():Wa(F)&&(le=p([F]))),W(v,h(h({},g(g(g({title:le},z),E),{colSpan:re===1?null:re,rowSpan:ie===1?null:ie,class:K(N,{[`${N}-fix-left`]:oe&&u.value,[`${N}-fix-left-first`]:x&&u.value,[`${N}-fix-left-last`]:S&&u.value,[`${N}-fix-right`]:se&&u.value,[`${N}-fix-right-first`]:C&&u.value,[`${N}-fix-right-last`]:w&&u.value,[`${N}-ellipsis`]:D,[`${N}-with-append`]:T,[`${N}-fix-sticky`]:(oe||se)&&A&&u.value},E.class,ne),onMouseenter:e=>{d(e,ie)},onMouseleave:f,style:[E.style,ce,ae,te]})),{},{ref:m}),{default:()=>[T,F,n.dragHandle?.call(n)]})}}});function H0(e,t,n,r,i){let a=n[e]||{},o=n[t]||{},s,c;a.fixed===`left`?s=r.left[e]:o.fixed===`right`&&(c=r.right[t]);let l=!1,u=!1,d=!1,f=!1,p=n[t+1],m=n[e-1];return i===`rtl`?s===void 0?c!==void 0&&(d=!(p&&p.fixed===`right`)):f=!(m&&m.fixed===`left`):s===void 0?c!==void 0&&(u=!(m&&m.fixed===`right`)):l=!(p&&p.fixed===`left`),{fixLeft:s,fixRight:c,lastFixLeft:l,firstFixRight:u,lastFixRight:d,firstFixLeft:f,isSticky:r.isSticky}}var U0={mouse:{start:`mousedown`,move:`mousemove`,stop:`mouseup`},touch:{start:`touchstart`,move:`touchmove`,stop:`touchend`}},W0=50,G0=U({compatConfig:{MODE:3},name:`DragHandle`,props:{prefixCls:String,width:{type:Number,required:!0},minWidth:{type:Number,default:W0},maxWidth:{type:Number,default:1/0},column:{type:Object,default:void 0}},setup(e){let t=0,n={remove:()=>{}},r={remove:()=>{}},i=()=>{n.remove(),r.remove()};ri(()=>{i()}),ar(()=>{wh(!isNaN(e.width),`Table`,`width must be a number when use resizable`)});let{onResizeColumn:a}=A0(),o=G(()=>typeof e.minWidth==`number`&&!isNaN(e.minWidth)?e.minWidth:W0),s=G(()=>typeof e.maxWidth==`number`&&!isNaN(e.maxWidth)?e.maxWidth:1/0),c=fo(),l=0,u=V(!1),d,f=n=>{let r=0;r=n.touches?n.touches.length?n.touches[0].pageX:n.changedTouches[0].pageX:n.pageX;let i=t-r,c=Math.max(l-i,o.value);c=Math.min(c,s.value),pl.cancel(d),d=pl(()=>{a(c,e.column.__originColumn__)})},p=e=>{f(e)},m=e=>{u.value=!1,f(e),i()},g=(e,a)=>{u.value=!0,i(),l=c.vnode.el.parentNode.getBoundingClientRect().width,!(e instanceof MouseEvent&&e.which!==1)&&(e.stopPropagation&&e.stopPropagation(),t=e.touches?e.touches[0].pageX:e.pageX,n=Tl(document.documentElement,a.move,p),r=Tl(document.documentElement,a.stop,m))},_=e=>{e.stopPropagation(),e.preventDefault(),g(e,U0.mouse)},v=e=>{e.stopPropagation(),e.preventDefault(),g(e,U0.touch)},y=e=>{e.stopPropagation(),e.preventDefault()};return()=>{let{prefixCls:t}=e,n={[wl?`onTouchstartPassive`:`onTouchstart`]:e=>v(e)};return W(`div`,h(h({class:`${t}-resize-handle ${u.value?`dragging`:``}`,onMousedown:_},n),{},{onClick:y}),[W(`div`,{class:`${t}-resize-handle-line`},null)])}}}),K0=U({name:`HeaderRow`,props:[`cells`,`stickyOffsets`,`flattenColumns`,`rowComponent`,`cellComponent`,`index`,`customHeaderRow`],setup(e){let t=v0();return()=>{let{prefixCls:n,direction:r}=t,{cells:i,stickyOffsets:a,flattenColumns:o,rowComponent:s,cellComponent:c,customHeaderRow:l,index:u}=e,d;l&&(d=l(i.map(e=>e.column),u));let f=S0(i.map(e=>e.column));return W(s,d,{default:()=>[i.map((e,t)=>{let{column:i}=e,s=H0(e.colStart,e.colEnd,o,a,r),l;i&&i.customHeaderCell&&(l=e.column.customHeaderCell(i));let u=i;return W(V0,h(h(h({},e),{},{cellType:`header`,ellipsis:i.ellipsis,align:i.align,component:c,prefixCls:n,key:f[t]},s),{},{additionalProps:l,rowType:`header`,column:i}),{default:()=>i.title,dragHandle:()=>u.resizable?W(G0,{prefixCls:n,width:u.width,minWidth:u.minWidth,maxWidth:u.maxWidth,column:u},null):null})})]})}}});function q0(e){let t=[];function n(e,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;t[i]=t[i]||[];let a=r;return e.filter(Boolean).map(e=>{let r={key:e.key,class:K(e.className,e.class),column:e,colStart:a},o=1,s=e.children;return s&&s.length>0&&(o=n(s,a,i+1).reduce((e,t)=>e+t,0),r.hasSubColumns=!0),`colSpan`in e&&({colSpan:o}=e),`rowSpan`in e&&(r.rowSpan=e.rowSpan),r.colSpan=o,r.colEnd=r.colStart+o-1,t[i].push(r),a+=o,o})}n(e,0);let r=t.length;for(let e=0;e{!(`rowSpan`in t)&&!t.hasSubColumns&&(t.rowSpan=r-e)});return t}var J0=U({name:`TableHeader`,inheritAttrs:!1,props:[`columns`,`flattenColumns`,`stickyOffsets`,`customHeaderRow`],setup(e){let t=v0(),n=G(()=>q0(e.columns));return()=>{let{prefixCls:r,getComponent:i}=t,{stickyOffsets:a,flattenColumns:o,customHeaderRow:s}=e,c=i([`header`,`wrapper`],`thead`),l=i([`header`,`row`],`tr`),u=i([`header`,`cell`],`th`);return W(c,{class:`${r}-thead`},{default:()=>[n.value.map((e,t)=>W(K0,{key:t,flattenColumns:o,cells:e,stickyOffsets:a,rowComponent:l,cellComponent:u,customHeaderRow:s,index:t},null))]})}}}),Y0=Symbol(`ExpandedRowProps`),X0=e=>{er(Y0,e)},Z0=()=>tr(Y0,{}),Q0=U({name:`ExpandedRow`,inheritAttrs:!1,props:[`prefixCls`,`component`,`cellComponent`,`expanded`,`colSpan`,`isEmpty`],setup(e,t){let{slots:n,attrs:r}=t,i=v0(),{fixHeader:a,fixColumn:o,componentWidth:s,horizonScroll:c}=Z0();return()=>{let{prefixCls:t,component:l,cellComponent:u,expanded:d,colSpan:f,isEmpty:p}=e;return W(l,{class:r.class,style:{display:d?null:`none`}},{default:()=>[W(V0,{component:u,prefixCls:t,colSpan:f},{default:()=>{let e=n.default?.call(n);return(p?c.value:o.value)&&(e=W(`div`,{style:{width:`${s.value-(a.value?i.scrollbarSize:0)}px`,position:`sticky`,left:0,overflow:`hidden`},class:`${t}-expanded-row-fixed`},[e])),e}})]})}}}),$0=U({name:`MeasureCell`,props:[`columnKey`],setup(e,t){let{emit:n}=t,r=B();return $r(()=>{r.value&&n(`columnResize`,e.columnKey,r.value.offsetWidth)}),()=>W(sl,{onResize:t=>{let{offsetWidth:r}=t;n(`columnResize`,e.columnKey,r)}},{default:()=>[W(`td`,{ref:r,style:{padding:0,border:0,height:0}},[W(`div`,{style:{height:0,overflow:`hidden`}},[Qa(`\xA0`)])])]})}}),e2=Symbol(`BodyContextProps`),t2=e=>{er(e2,e)},n2=()=>tr(e2,{}),r2=U({name:`BodyRow`,inheritAttrs:!1,props:[`record`,`index`,`renderIndex`,`recordKey`,`expandedKeys`,`rowComponent`,`cellComponent`,`customRow`,`rowExpandable`,`indent`,`rowKey`,`getRowKey`,`childrenColumnName`],setup(e,t){let{attrs:n}=t,r=v0(),i=n2(),a=V(!1),o=G(()=>e.expandedKeys&&e.expandedKeys.has(e.recordKey));ar(()=>{o.value&&(a.value=!0)});let s=G(()=>i.expandableType===`row`&&(!e.rowExpandable||e.rowExpandable(e.record))),c=G(()=>i.expandableType===`nest`),l=G(()=>e.childrenColumnName&&e.record&&e.record[e.childrenColumnName]),u=G(()=>s.value||c.value),d=(e,t)=>{i.onTriggerExpand(e,t)},f=G(()=>e.customRow?.call(e,e.record,e.index)||{}),p=function(t){var n,r;i.expandRowByClick&&u.value&&d(e.record,t);var a=[...arguments].slice(1);(r=(n=f.value)?.onClick)==null||r.call(n,t,...a)},m=G(()=>{let{record:t,index:n,indent:r}=e,{rowClassName:a}=i;return typeof a==`string`?a:typeof a==`function`?a(t,n,r):``}),g=G(()=>S0(i.flattenColumns));return()=>{let{class:t,style:u}=n,{record:_,index:v,rowKey:y,indent:b=0,rowComponent:x,cellComponent:S}=e,{prefixCls:C,fixedInfoList:w,transformCellText:T}=r,{flattenColumns:E,expandedRowClassName:D,indentSize:O,expandIcon:k,expandedRowRender:A,expandIconColumnIndex:j}=i,M=W(x,h(h({},f.value),{},{"data-row-key":y,class:K(t,`${C}-row`,`${C}-row-level-${b}`,m.value,f.value.class),style:[u,f.value.style],onClick:p}),{default:()=>[E.map((t,n)=>{let{customRender:r,dataIndex:i,className:a}=t,s=g[n],u=w[n],f;t.customCell&&(f=t.customCell(_,v,t));let p=n===(j||0)&&c.value?W(Ma,null,[W(`span`,{style:{paddingLeft:`${O*b}px`},class:`${C}-row-indent indent-level-${b}`},null),k({prefixCls:C,expanded:o.value,expandable:l.value,record:_,onExpand:d})]):null;return W(V0,h(h({cellType:`body`,class:a,ellipsis:t.ellipsis,align:t.align,component:S,prefixCls:C,key:s,record:_,index:v,renderIndex:e.renderIndex,dataIndex:i,customRender:r},u),{},{additionalProps:f,column:t,transformCellText:T,appendNode:p}),null)})]}),N;if(s.value&&(a.value||o.value)){let e=A({record:_,index:v,indent:b+1,expanded:o.value}),t=D&&D(_,v,b);N=W(Q0,{expanded:o.value,class:K(`${C}-expanded-row`,`${C}-expanded-row-level-${b+1}`,t),prefixCls:C,component:x,cellComponent:S,colSpan:E.length,isEmpty:!1},{default:()=>[e]})}return W(Ma,null,[M,N])}}});function i2(e,t,n,r,i,a){let o=[];o.push({record:e,indent:t,index:a});let s=i(e),c=r?.has(s);if(e&&Array.isArray(e[n])&&c)for(let a=0;a{let i=t.value,a=n.value,o=e.value;if(a?.size){let e=[];for(let t=0;t({record:e,indent:0,index:t}))})}var o2=Symbol(`ResizeContextProps`),s2=e=>{er(o2,e)},c2=()=>tr(o2,{onColumnResize:()=>{}}),l2=U({name:`TableBody`,props:[`data`,`getRowKey`,`measureColumnWidth`,`expandedKeys`,`customRow`,`rowExpandable`,`childrenColumnName`],setup(e,t){let{slots:n}=t,r=c2(),i=v0(),a=n2(),o=a2(vn(e,`data`),vn(e,`childrenColumnName`),vn(e,`expandedKeys`),vn(e,`getRowKey`)),s=V(-1),c=V(-1),l;return N0({startRow:s,endRow:c,onHover:(e,t)=>{clearTimeout(l),l=setTimeout(()=>{s.value=e,c.value=t},100)}}),()=>{let{data:t,getRowKey:s,measureColumnWidth:c,expandedKeys:l,customRow:u,rowExpandable:d,childrenColumnName:f}=e,{onColumnResize:p}=r,{prefixCls:m,getComponent:h}=i,{flattenColumns:g}=a,_=h([`body`,`wrapper`],`tbody`),v=h([`body`,`row`],`tr`),y=h([`body`,`cell`],`td`),b;b=t.length?o.value.map((e,t)=>{let{record:n,indent:r,index:i}=e,a=s(n,t);return W(r2,{key:a,rowKey:a,record:n,recordKey:a,index:t,renderIndex:i,rowComponent:v,cellComponent:y,expandedKeys:l,customRow:u,getRowKey:s,rowExpandable:d,childrenColumnName:f,indent:r},null)}):W(Q0,{expanded:!0,class:`${m}-placeholder`,prefixCls:m,component:v,cellComponent:y,colSpan:g.length,isEmpty:!0},{default:()=>[n.emptyNode?.call(n)]});let x=S0(g);return W(_,{class:`${m}-tbody`},{default:()=>[c&&W(`tr`,{"aria-hidden":`true`,class:`${m}-measure-row`,style:{height:0,fontSize:0}},[x.map(e=>W($0,{key:e,columnKey:e,onColumnResize:p},null))]),b]})}}}),u2={},d2=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{fixed:n}=t,r=n===!0?`left`:n,i=t.children;return i&&i.length>0?[...e,...f2(i).map(e=>g({fixed:r},e))]:[...e,g(g({},t),{fixed:r})]},[])}function p2(e){return e.map(e=>{let{fixed:t}=e,n=d2(e,[`fixed`]),r=t;return t===`left`?r=`right`:t===`right`&&(r=`left`),g({fixed:r},n)})}function m2(e,t){let{prefixCls:n,columns:r,expandable:i,expandedKeys:a,getRowKey:o,onTriggerExpand:s,expandIcon:c,rowExpandable:l,expandIconColumnIndex:u,direction:d,expandRowByClick:f,expandColumnWidth:p,expandFixed:m}=e,h=D0(),g=G(()=>{if(i.value){let e=r.value.slice();if(!e.includes(u2)){let t=u.value||0;t>=0&&e.splice(t,0,u2)}let t=e.indexOf(u2);e=e.filter((e,n)=>e!==u2||n===t);let i=r.value[t],d;d=(m.value===`left`||m.value)&&!u.value?`left`:(m.value===`right`||m.value)&&u.value===r.value.length?`right`:i?i.fixed:null;let g=a.value,_=l.value,v=c.value,y=n.value,b=f.value,x={[j0]:{class:`${n.value}-expand-icon-col`,columnType:`EXPAND_COLUMN`},title:u_(h.value,`expandColumnTitle`,{},()=>[``]),fixed:d,class:`${n.value}-row-expand-icon-cell`,width:p.value,customRender:e=>{let{record:t,index:n}=e,r=o.value(t,n),i=g.has(r),a=!_||_(t),c=v({prefixCls:y,expanded:i,expandable:a,record:t,onExpand:s});return b?W(`span`,{onClick:e=>e.stopPropagation()},[c]):c}};return e.map(e=>e===u2?x:e)}return r.value.filter(e=>e!==u2)}),_=G(()=>{let e=g.value;return t.value&&(e=t.value(e)),e.length||(e=[{customRender:()=>null}]),e});return[_,G(()=>d.value===`rtl`?p2(f2(_.value)):f2(_.value))]}function h2(e){let t=V(e),n,r=V([]);function i(e){r.value.push(e),pl.cancel(n),n=pl(()=>{let e=r.value;r.value=[],e.forEach(e=>{t.value=e(t.value)})})}return ni(()=>{pl.cancel(n)}),[t,i]}function g2(e){let t=B(e||null),n=B();function r(){clearTimeout(n.value)}function i(e){t.value=e,r(),n.value=setTimeout(()=>{t.value=null,n.value=void 0},100)}function a(){return t.value}return ni(()=>{r()}),[i,a]}function _2(e,t,n){return G(()=>{let r=[],i=[],a=0,o=0,s=e.value,c=t.value,l=n.value;for(let e=0;e=0;--e){let r=t[e],a=n&&n[e],s=a&&a.RC_TABLE_INTERNAL_COL_DEFINE;if(r||s||o){let t=s||{},{columnType:n}=t,a=v2(t,[`columnType`]);i.unshift(W(`col`,h({key:e,style:{width:typeof r==`number`?`${r}px`:r}},a),null)),o=!0}}return W(`colgroup`,null,[i])}function b2(e,t){let{slots:n}=t;return W(`div`,null,[n.default?.call(n)])}b2.displayName=`Panel`;var x2=0,S2=U({name:`TableSummary`,props:[`fixed`],setup(e,t){let{slots:n}=t,r=v0(),i=`table-summary-uni-key-${++x2}`,a=G(()=>e.fixed===``||e.fixed);return ar(()=>{r.summaryCollect(i,a.value)}),ni(()=>{r.summaryCollect(i,!1)}),()=>n.default?.call(n)}}),C2=U({compatConfig:{MODE:3},name:`ATableSummaryRow`,setup(e,t){let{slots:n}=t;return()=>W(`tr`,null,[n.default?.call(n)])}}),w2=Symbol(`SummaryContextProps`),T2=e=>{er(w2,e)},E2=()=>tr(w2,{}),D2=U({name:`ATableSummaryCell`,props:[`index`,`colSpan`,`rowSpan`,`align`],setup(e,t){let{attrs:n,slots:r}=t,i=v0(),a=E2();return()=>{let{index:t,colSpan:o=1,rowSpan:s,align:c}=e,{prefixCls:l,direction:u}=i,{scrollColumnIndex:d,stickyOffsets:f,flattenColumns:p}=a,m=t+o-1+1===d?o+1:o,g=H0(t,t+m-1,p,f,u);return W(V0,h({class:n.class,index:t,component:`td`,prefixCls:l,record:null,dataIndex:null,align:c,colSpan:m,rowSpan:s,customRender:()=>r.default?.call(r)},g),null)}}}),O2=U({name:`TableFooter`,inheritAttrs:!1,props:[`stickyOffsets`,`flattenColumns`],setup(e,t){let{slots:n}=t,r=v0();return T2(Yt({stickyOffsets:vn(e,`stickyOffsets`),flattenColumns:vn(e,`flattenColumns`),scrollColumnIndex:G(()=>{let t=e.flattenColumns.length-1;return e.flattenColumns[t]?.scrollbar?t:null})})),()=>{let{prefixCls:e}=r;return W(`tfoot`,{class:`${e}-summary`},[n.default?.call(n)])}}}),k2=S2;function A2(e){let{prefixCls:t,record:n,onExpand:r,expanded:i,expandable:a}=e,o=`${t}-row-expand-icon`;if(!a)return W(`span`,{class:[o,`${t}-row-spaced`]},null);let s=e=>{r(n,e),e.stopPropagation()};return W(`span`,{class:{[o]:!0,[`${t}-row-expanded`]:i,[`${t}-row-collapsed`]:!i},onClick:s},null)}function j2(e,t,n){let r=[];function i(e){(e||[]).forEach((e,a)=>{r.push(t(e,a)),i(e[n])})}return i(e),r}var M2=U({name:`StickyScrollBar`,inheritAttrs:!1,props:[`offsetScroll`,`container`,`scrollBodyRef`,`scrollBodySizeInfo`],emits:[`scroll`],setup(e,t){let{emit:n,expose:r}=t,i=v0(),a=V(0),o=V(0),s=V(0);ar(()=>{a.value=e.scrollBodySizeInfo.scrollWidth||0,o.value=e.scrollBodySizeInfo.clientWidth||0,s.value=a.value&&o.value*(o.value/a.value)},{flush:`post`});let c=V(),[l,u]=h2({scrollLeft:0,isHiddenScrollBar:!0}),d=B({delta:0,x:0}),f=V(!1),p=()=>{f.value=!1},m=e=>{d.value={delta:e.pageX-l.value.scrollLeft,x:0},f.value=!0,e.preventDefault()},h=e=>{let{buttons:t}=e||(window==null?void 0:window.event);if(!f.value||t===0){f.value&&=!1;return}let r=d.value.x+e.pageX-d.value.x-d.value.delta;r<=0&&(r=0),r+s.value>=o.value&&(r=o.value-s.value),n(`scroll`,{scrollLeft:r/o.value*(a.value+2)}),d.value.x=e.pageX},_=()=>{if(!e.scrollBodyRef.value)return;let t=Ib(e.scrollBodyRef.value).top,n=t+e.scrollBodyRef.value.offsetHeight,r=e.container===window?document.documentElement.scrollTop+window.innerHeight:Ib(e.container).top+e.container.clientHeight;n-gb()<=r||t>=r-e.offsetScroll?u(e=>g(g({},e),{isHiddenScrollBar:!0})):u(e=>g(g({},e),{isHiddenScrollBar:!1}))};r({setScrollLeft:e=>{u(t=>g(g({},t),{scrollLeft:e/a.value*o.value||0}))}});let v=null,y=null,b=null,x=null;$r(()=>{v=Tl(document.body,`mouseup`,p,!1),y=Tl(document.body,`mousemove`,h,!1),b=Tl(window,`resize`,_,!1)}),Kr(()=>{zn(()=>{_()})}),$r(()=>{setTimeout(()=>{H([s,f],()=>{_()},{immediate:!0,flush:`post`})})}),H(()=>e.container,()=>{x?.remove(),x=Tl(e.container,`scroll`,_,!1)},{immediate:!0,flush:`post`}),ni(()=>{v?.remove(),y?.remove(),x?.remove(),b?.remove()}),H(()=>g({},l.value),(t,n)=>{t.isHiddenScrollBar!==n?.isHiddenScrollBar&&!t.isHiddenScrollBar&&u(t=>{let n=e.scrollBodyRef.value;return n?g(g({},t),{scrollLeft:n.scrollLeft/n.scrollWidth*n.clientWidth}):t})},{immediate:!0});let S=gb();return()=>{if(a.value<=o.value||!s.value||l.value.isHiddenScrollBar)return null;let{prefixCls:t}=i;return W(`div`,{style:{height:`${S}px`,width:`${o.value}px`,bottom:`${e.offsetScroll}px`},class:`${t}-sticky-scroll`},[W(`div`,{onMousedown:m,ref:c,class:K(`${t}-sticky-scroll-bar`,{[`${t}-sticky-scroll-bar-active`]:f.value}),style:{width:`${s.value}px`,transform:`translate3d(${l.value.scrollLeft}px, 0, 0)`}},null)])}}}),N2=hu()?window:null;function P2(e,t){return G(()=>{let{offsetHeader:n=0,offsetSummary:r=0,offsetScroll:i=0,getContainer:a=()=>N2}=typeof e.value==`object`?e.value:{},o=a()||N2,s=!!e.value;return{isSticky:s,stickyClassName:s?`${t.value}-sticky-holder`:``,offsetHeader:n,offsetSummary:r,offsetScroll:i,container:o}})}function F2(e,t){return G(()=>{let n=[],r=e.value,i=t.value;for(let e=0;ea.isSticky&&!e.fixHeader?0:a.scrollbarSize),s=B(),c=e=>{let{currentTarget:t,deltaX:n}=e;n&&(i(`scroll`,{currentTarget:t,scrollLeft:t.scrollLeft+n}),e.preventDefault())},l=B();$r(()=>{zn(()=>{l.value=Tl(s.value,`wheel`,c)})}),ni(()=>{var e;(e=l.value)==null||e.remove()});let u=G(()=>e.flattenColumns.every(e=>e.width&&e.width!==0&&e.width!==`0px`)),d=B([]),f=B([]);ar(()=>{let t=e.flattenColumns[e.flattenColumns.length-1],n={fixed:t?t.fixed:null,scrollbar:!0,customHeaderCell:()=>({class:`${a.prefixCls}-cell-scrollbar`})};d.value=o.value?[...e.columns,n]:e.columns,f.value=o.value?[...e.flattenColumns,n]:e.flattenColumns});let p=G(()=>{let{stickyOffsets:t,direction:n}=e,{right:r,left:i}=t;return g(g({},t),{left:n===`rtl`?[...i.map(e=>e+o.value),0]:i,right:n===`rtl`?r:[...r.map(e=>e+o.value),0],isSticky:a.isSticky})}),m=F2(vn(e,`colWidths`),vn(e,`columCount`));return()=>{let{noData:t,columCount:i,stickyTopOffset:c,stickyBottomOffset:l,stickyClassName:h,maxContentScroll:_}=e,{isSticky:v}=a;return W(`div`,{style:g({overflow:`hidden`},v?{top:`${c}px`,bottom:`${l}px`}:{}),ref:s,class:K(n.class,{[h]:!!h})},[W(`table`,{style:{tableLayout:`fixed`,visibility:t||m.value?null:`hidden`}},[(!t||!_||u.value)&&W(y2,{colWidths:m.value?[...m.value,o.value]:[],columCount:i+1,columns:f.value},null),r.default?.call(r,g(g({},e),{stickyOffsets:p.value,columns:d.value,flattenColumns:f.value}))])])}}});function L2(e){return Yt(eO([...arguments].slice(1).map(t=>[t,vn(e,t)])))}var R2=[],z2={},B2=`rc-table-internal-hook`,V2=U({name:`VcTable`,inheritAttrs:!1,props:`prefixCls.data.columns.rowKey.tableLayout.scroll.rowClassName.title.footer.id.showHeader.components.customRow.customHeaderRow.direction.expandFixed.expandColumnWidth.expandedRowKeys.defaultExpandedRowKeys.expandedRowRender.expandRowByClick.expandIcon.onExpand.onExpandedRowsChange.onUpdate:expandedRowKeys.defaultExpandAllRows.indentSize.expandIconColumnIndex.expandedRowClassName.childrenColumnName.rowExpandable.sticky.transformColumns.internalHooks.internalRefs.canExpandable.onUpdateInternalRefs.transformCellText`.split(`.`),emits:[`expand`,`expandedRowsChange`,`updateInternalRefs`,`update:expandedRowKeys`],setup(e,t){let{attrs:n,slots:r,emit:i}=t,a=G(()=>e.data||R2),o=G(()=>!!a.value.length),s=G(()=>C0(e.components,{})),c=(e,t)=>x0(s.value,e)||t,l=G(()=>{let t=e.rowKey;return typeof t==`function`?t:e=>e&&e[t]}),u=G(()=>e.expandIcon||A2),d=G(()=>e.childrenColumnName||`children`),f=G(()=>e.expandedRowRender?`row`:e.canExpandable||a.value.some(e=>e&&typeof e==`object`&&e[d.value])?`nest`:!1),p=V([]);ar(()=>{e.defaultExpandedRowKeys&&(p.value=e.defaultExpandedRowKeys),e.defaultExpandAllRows&&(p.value=j2(a.value,l.value,d.value))})();let m=G(()=>new Set(e.expandedRowKeys||p.value||[])),_=e=>{let t=l.value(e,a.value.indexOf(e)),n,r=m.value.has(t);r?(m.value.delete(t),n=[...m.value]):n=[...m.value,t],p.value=n,i(`expand`,!r,e),i(`update:expandedRowKeys`,n),i(`expandedRowsChange`,n)},v=B(0),[y,b]=m2(g(g({},hn(e)),{expandable:G(()=>!!e.expandedRowRender),expandedKeys:m,getRowKey:l,onTriggerExpand:_,expandIcon:u}),G(()=>e.internalHooks===`rc-table-internal-hook`?e.transformColumns:null)),x=G(()=>({columns:y.value,flattenColumns:b.value})),S=B(),C=B(),w=B(),T=B({scrollWidth:0,clientWidth:0}),E=B(),[D,O]=_S(!1),[k,A]=_S(!1),[j,M]=h2(new Map),N=G(()=>S0(b.value)),P=G(()=>N.value.map(e=>j.value.get(e))),F=G(()=>b.value.length),I=_2(P,F,vn(e,`direction`)),L=G(()=>e.scroll&&w0(e.scroll.y)),R=G(()=>e.scroll&&w0(e.scroll.x)||!!e.expandFixed),ee=G(()=>R.value&&b.value.some(e=>{let{fixed:t}=e;return t})),te=B(),ne=P2(vn(e,`sticky`),vn(e,`prefixCls`)),z=Yt({}),re=G(()=>{let e=Object.values(z)[0];return(L.value||ne.value.isSticky)&&e}),ie=(e,t)=>{t?z[e]=t:delete z[e]},ae=B({}),oe=B({}),se=B({});ar(()=>{L.value&&(oe.value={overflowY:`scroll`,maxHeight:cc(e.scroll.y)}),R.value&&(ae.value={overflowX:`auto`},L.value||(oe.value={overflowY:`hidden`}),se.value={width:e.scroll.x===!0?`auto`:cc(e.scroll.x),minWidth:`100%`})});let ce=(e,t)=>{d_(S.value)&&M(n=>{if(n.get(e)!==t){let r=new Map(n);return r.set(e,t),r}return n})},[le,ue]=g2(null);function de(e,t){if(!t)return;if(typeof t==`function`){t(e);return}let n=t.$el||t;n.scrollLeft!==e&&(n.scrollLeft=e)}let fe=t=>{let{currentTarget:n,scrollLeft:r}=t,i=e.direction===`rtl`,a=typeof r==`number`?r:n.scrollLeft,o=n||z2;if((!ue()||ue()===o)&&(le(o),de(a,C.value),de(a,w.value),de(a,E.value),de(a,te.value?.setScrollLeft)),n){let{scrollWidth:e,clientWidth:t}=n;i?(O(-a0)):(O(a>0),A(a{R.value&&w.value?fe({currentTarget:w.value}):(O(!1),A(!1))},me,he=e=>{e!==v.value&&(pe(),v.value=S.value?S.value.offsetWidth:e)},ge=e=>{let{width:t}=e;clearTimeout(me),v.value===0?he(t):me=setTimeout(()=>{he(t)},100)};H([R,()=>e.data,()=>e.columns],()=>{R.value&&pe()},{flush:`post`});let[_e,ve]=_S(0);I0(),$r(()=>{zn(()=>{pe(),ve(vb(w.value).width),T.value={scrollWidth:w.value?.scrollWidth||0,clientWidth:w.value?.clientWidth||0}})}),ti(()=>{zn(()=>{let e=w.value?.scrollWidth||0,t=w.value?.clientWidth||0;(T.value.scrollWidth!==e||T.value.clientWidth!==t)&&(T.value={scrollWidth:e,clientWidth:t})})}),ar(()=>{e.internalHooks===`rc-table-internal-hook`&&e.internalRefs&&e.onUpdateInternalRefs({body:w.value?w.value.$el||w.value:null})},{flush:`post`});let ye=G(()=>e.tableLayout?e.tableLayout:ee.value?e.scroll.x===`max-content`?`auto`:`fixed`:L.value||ne.value.isSticky||b.value.some(e=>{let{ellipsis:t}=e;return t})?`fixed`:`auto`),be=()=>o.value?null:r.emptyText?.call(r)||`No Data`;_0(Yt(g(g({},hn(L2(e,`prefixCls`,`direction`,`transformCellText`))),{getComponent:c,scrollbarSize:_e,fixedInfoList:G(()=>b.value.map((t,n)=>H0(n,n,b.value,I.value,e.direction))),isSticky:G(()=>ne.value.isSticky),summaryCollect:ie}))),t2(Yt(g(g({},hn(L2(e,`rowClassName`,`expandedRowClassName`,`expandRowByClick`,`expandedRowRender`,`expandIconColumnIndex`,`indentSize`))),{columns:y,flattenColumns:b,tableLayout:ye,expandIcon:u,expandableType:f,onTriggerExpand:_}))),s2({onColumnResize:ce}),X0({componentWidth:v,fixHeader:L,fixColumn:ee,horizonScroll:R});let xe=()=>W(l2,{data:a.value,measureColumnWidth:L.value||R.value||ne.value.isSticky,expandedKeys:m.value,rowExpandable:e.rowExpandable,getRowKey:l.value,customRow:e.customRow,childrenColumnName:d.value},{emptyNode:be}),Se=()=>W(y2,{colWidths:b.value.map(e=>{let{width:t}=e;return t}),columns:b.value},null);return()=>{let{prefixCls:t,scroll:i,tableLayout:o,direction:s,title:l=r.title,footer:u=r.footer,id:d,showHeader:f,customHeaderRow:p}=e,{isSticky:m,offsetHeader:_,offsetSummary:v,offsetScroll:O,stickyClassName:A,container:j}=ne.value,M=c([`table`],`table`),N=c([`body`]),z=r.summary?.call(r,{pageData:a.value}),ie=()=>null,ce={colWidths:P.value,columCount:b.value.length,stickyOffsets:I.value,customHeaderRow:p,fixHeader:L.value,scroll:i};if(L.value||m){let e=()=>null;typeof N==`function`?(e=()=>N(a.value,{scrollbarSize:_e.value,ref:w,onScroll:fe}),ce.colWidths=b.value.map((e,t)=>{let{width:n}=e,r=t===y.value.length-1?n-_e.value:n;return typeof r==`number`&&!Number.isNaN(r)?r:0})):e=()=>W(`div`,{style:g(g({},ae.value),oe.value),onScroll:fe,ref:w,class:K(`${t}-body`)},[W(M,{style:g(g({},se.value),{tableLayout:ye.value})},{default:()=>[Se(),xe(),!re.value&&z&&W(O2,{stickyOffsets:I.value,flattenColumns:b.value},{default:()=>[z]})]})]);let n=g(g(g({noData:!a.value.length,maxContentScroll:R.value&&i.x===`max-content`},ce),x.value),{direction:s,stickyClassName:A,onScroll:fe});ie=()=>W(Ma,null,[f!==!1&&W(I2,h(h({},n),{},{stickyTopOffset:_,class:`${t}-header`,ref:C}),{default:e=>W(Ma,null,[W(J0,e,null),re.value===`top`&&W(O2,e,{default:()=>[z]})])}),e(),re.value&&re.value!==`top`&&W(I2,h(h({},n),{},{stickyBottomOffset:v,class:`${t}-summary`,ref:E}),{default:e=>W(O2,e,{default:()=>[z]})}),m&&w.value&&W(M2,{ref:te,offsetScroll:O,scrollBodyRef:w,onScroll:fe,container:j,scrollBodySizeInfo:T.value},null)])}else ie=()=>W(`div`,{style:g(g({},ae.value),oe.value),class:K(`${t}-content`),onScroll:fe,ref:w},[W(M,{style:g(g({},se.value),{tableLayout:ye.value})},{default:()=>[Se(),f!==!1&&W(J0,h(h({},ce),x.value),null),xe(),z&&W(O2,{stickyOffsets:I.value,flattenColumns:b.value},{default:()=>[z]})]})]);let le=Kb(n,{aria:!0,data:!0}),ue=()=>W(`div`,h(h({},le),{},{class:K(t,{[`${t}-rtl`]:s===`rtl`,[`${t}-ping-left`]:D.value,[`${t}-ping-right`]:k.value,[`${t}-layout-fixed`]:o===`fixed`,[`${t}-fixed-header`]:L.value,[`${t}-fixed-column`]:ee.value,[`${t}-scroll-horizontal`]:R.value,[`${t}-has-fix-left`]:b.value[0]&&b.value[0].fixed,[`${t}-has-fix-right`]:b.value[F.value-1]&&b.value[F.value-1].fixed===`right`,[n.class]:n.class}),style:n.style,id:d,ref:S}),[l&&W(b2,{class:`${t}-title`},{default:()=>[l(a.value)]}),W(`div`,{class:`${t}-container`},[ie()]),u&&W(b2,{class:`${t}-footer`},{default:()=>[u(a.value)]})]);return R.value?W(sl,{onResize:ge},{default:ue}):ue()}}});function H2(){let e=g({},arguments.length<=0?void 0:arguments[0]);for(let t=1;t{let r=n[t];r!==void 0&&(e[t]=r)})}return e}function U2(e,t){let n={current:e.current,pageSize:e.pageSize};return Object.keys(t&&typeof t==`object`?t:{}).forEach(t=>{let r=e[t];typeof r!=`function`&&(n[t]=r)}),n}function W2(e,t,n){let r=G(()=>t.value&&typeof t.value==`object`?t.value:{}),i=G(()=>r.value.total||0),[a,o]=_S(()=>({current:`defaultCurrent`in r.value?r.value.defaultCurrent:1,pageSize:`defaultPageSize`in r.value?r.value.defaultPageSize:10})),s=G(()=>{let t=H2(a.value,r.value,{total:i.value>0?i.value:e.value}),n=Math.ceil((i.value||e.value)/t.pageSize);return t.current>n&&(t.current=n||1),t}),c=(e,n)=>{t.value!==!1&&o({current:e??1,pageSize:n||s.value.pageSize})},l=(e,i)=>{var a,o;t.value&&((o=(a=r.value).onChange)==null||o.call(a,e,i)),c(e,i),n(e,i||s.value.pageSize)};return[G(()=>t.value===!1?{}:g(g({},s.value),{onChange:l})),c]}function G2(e,t,n){let r=V({});H([e,t,n],()=>{let i=new Map,a=n.value,o=t.value;function s(e){e.forEach((e,t)=>{let n=a(e,t);i.set(n,e),e&&typeof e==`object`&&o in e&&s(e[o]||[])})}s(e.value),r.value={kvMap:i}},{deep:!0,immediate:!0});function i(e){return r.value.kvMap.get(e)}return[i]}var K2={},q2=`SELECT_ALL`,J2=`SELECT_INVERT`,Y2=`SELECT_NONE`,X2=[];function Z2(e,t){let n=[];return(t||[]).forEach(t=>{n.push(t),t&&typeof t==`object`&&e in t&&(n=[...n,...Z2(e,t[e])])}),n}function Q2(e,t){let n=G(()=>{let t=e.value||{},{checkStrictly:n=!0}=t;return g(g({},t),{checkStrictly:n})}),[r,i]=gS(n.value.selectedRowKeys||n.value.defaultSelectedRowKeys||X2,{value:G(()=>n.value.selectedRowKeys)}),a=V(new Map),o=e=>{if(n.value.preserveSelectedRowKeys){let n=new Map;e.forEach(e=>{let r=t.getRecordByKey(e);!r&&a.value.has(e)&&(r=a.value.get(e)),n.set(e,r)}),a.value=n}};ar(()=>{o(r.value)});let s=G(()=>n.value.checkStrictly?null:Rz(t.data.value,{externalGetKey:t.getRowKey.value,childrenPropName:t.childrenColumnName.value}).keyEntities),c=G(()=>Z2(t.childrenColumnName.value,t.pageData.value)),l=G(()=>{let e=new Map,r=t.getRowKey.value,i=n.value.getCheckboxProps;return c.value.forEach((t,n)=>{let a=r(t,n),o=(i?i(t):null)||{};e.set(a,o)}),e}),{maxLevel:u,levelEntities:d}=dB(s),f=e=>!!l.value.get(t.getRowKey.value(e))?.disabled,p=G(()=>{if(n.value.checkStrictly)return[r.value||[],[]];let{checkedKeys:e,halfCheckedKeys:t}=eB(r.value,!0,s.value,u.value,d.value,f);return[e||[],t]}),m=G(()=>p.value[0]),_=G(()=>p.value[1]),v=G(()=>{let e=n.value.type===`radio`?m.value.slice(0,1):m.value;return new Set(e)}),y=G(()=>n.value.type===`radio`?new Set:new Set(_.value)),[b,x]=_S(null),S=e=>{let r,s;o(e);let{preserveSelectedRowKeys:c,onChange:l}=n.value,{getRecordByKey:u}=t;c?(r=e,s=e.map(e=>a.value.get(e))):(r=[],s=[],e.forEach(e=>{let t=u(e);t!==void 0&&(r.push(e),s.push(t))})),i(r),l?.(r,s)},C=(e,r,i,a)=>{let{onSelect:o}=n.value,{getRecordByKey:s}=t||{};if(o){let t=i.map(e=>s(e));o(s(e),r,t,a)}S(i)},w=G(()=>{let{onSelectInvert:e,onSelectNone:r,selections:i,hideSelectAll:a}=n.value,{data:o,pageData:s,getRowKey:c,locale:u}=t;return!i||a?null:(i===!0?[q2,J2,Y2]:i).map(t=>t===`SELECT_ALL`?{key:`all`,text:u.value.selectionAll,onSelect(){S(o.value.map((e,t)=>c.value(e,t)).filter(e=>!l.value.get(e)?.disabled||v.value.has(e)))}}:t===`SELECT_INVERT`?{key:`invert`,text:u.value.selectInvert,onSelect(){let t=new Set(v.value);s.value.forEach((e,n)=>{let r=c.value(e,n);l.value.get(r)?.disabled||(t.has(r)?t.delete(r):t.add(r))});let n=Array.from(t);e&&(wh(!1,`Table`,"`onSelectInvert` will be removed in future. Please use `onChange` instead."),e(n)),S(n)}}:t===`SELECT_NONE`?{key:`none`,text:u.value.selectNone,onSelect(){r?.(),S(Array.from(v.value).filter(e=>l.value.get(e)?.disabled))}}:t)}),T=G(()=>c.value.length);return[r=>{let{onSelectAll:i,onSelectMultiple:a,columnWidth:o,type:p,fixed:_,renderCell:E,hideSelectAll:D,checkStrictly:O}=n.value,{prefixCls:k,getRecordByKey:A,getRowKey:j,expandType:M,getPopupContainer:N}=t;if(!e.value)return r.filter(e=>e!==K2);let P=r.slice(),F=new Set(v.value),I=c.value.map(j.value).filter(e=>!l.value.get(e).disabled),L=I.every(e=>F.has(e)),R=I.some(e=>F.has(e)),ee=()=>{let e=[];L?I.forEach(t=>{F.delete(t),e.push(t)}):I.forEach(t=>{F.has(t)||(F.add(t),e.push(t))});let t=Array.from(F);i?.(!L,t.map(e=>A(e)),e.map(e=>A(e))),S(t)},te;if(p!==`radio`){let e;if(w.value){let t=W(EM,{getPopupContainer:N.value},{default:()=>[w.value.map((e,t)=>{let{key:n,text:r,onSelect:i}=e;return W(EM.Item,{key:n||t,onClick:()=>{i?.(I)}},{default:()=>[r]})})]});e=W(`div`,{class:`${k.value}-selection-extra`},[W(pK,{overlay:t,getPopupContainer:N.value},{default:()=>[W(`span`,null,[W(jC,null,null)])]})])}let t=c.value.map((e,t)=>{let n=j.value(e,t),r=l.value.get(n)||{};return g({checked:F.has(n)},r)}).filter(e=>{let{disabled:t}=e;return t}),n=!!t.length&&t.length===T.value,r=n&&t.every(e=>{let{checked:t}=e;return t}),i=n&&t.some(e=>{let{checked:t}=e;return t});te=!D&&W(`div`,{class:`${k.value}-selection`},[W(hU,{checked:n?r:!!T.value&&L,indeterminate:n?!r&&i:!L&&R,onChange:ee,disabled:T.value===0||n,"aria-label":e?`Custom selection`:`Select all`,skipGroup:!0},null),e])}let ne;ne=p===`radio`?e=>{let{record:t,index:n}=e,r=j.value(t,n),i=F.has(r);return{node:W(vF,h(h({},l.value.get(r)),{},{checked:i,onClick:e=>e.stopPropagation(),onChange:e=>{F.has(r)||C(r,!0,[r],e.nativeEvent)}}),null),checked:i}}:e=>{let{record:t,index:n}=e,r=j.value(t,n),i=F.has(r),o=y.value.has(r),c=l.value.get(r),p;return M.value===`nest`?(p=o,wh(typeof c?.indeterminate!=`boolean`,`Table`,"set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.")):p=c?.indeterminate??o,{node:W(hU,h(h({},c),{},{indeterminate:p,checked:i,skipGroup:!0,onClick:e=>e.stopPropagation(),onChange:e=>{let{nativeEvent:t}=e,{shiftKey:n}=t,o=-1,c=-1;if(n&&O){let e=new Set([b.value,r]);I.some((t,n)=>{if(e.has(t)){if(o===-1)o=n;else return c=n,!0}return!1})}if(c!==-1&&o!==c&&O){let e=I.slice(o,c+1),t=[];i?e.forEach(e=>{F.has(e)&&(t.push(e),F.delete(e))}):e.forEach(e=>{F.has(e)||(t.push(e),F.add(e))});let n=Array.from(F);a?.(!i,n.map(e=>A(e)),t.map(e=>A(e))),S(n)}else{let e=m.value;if(O){let n=i?bz(e,r):xz(e,r);C(r,!i,n,t)}else{let{checkedKeys:n,halfCheckedKeys:a}=eB([...e,r],!0,s.value,u.value,d.value,f),o=n;if(i){let e=new Set(n);e.delete(r),o=eB(Array.from(e),{checked:!1,halfCheckedKeys:a},s.value,u.value,d.value,f).checkedKeys}C(r,!i,o,t)}}x(r)}}),null),checked:i}};let z=e=>{let{record:t,index:n}=e,{node:r,checked:i}=ne({record:t,index:n});return E?E(i,t,n,r):r};if(!P.includes(K2)){if(P.findIndex(e=>e.RC_TABLE_INTERNAL_COL_DEFINE?.columnType===`EXPAND_COLUMN`)===0){let[e,...t]=P;P=[e,K2,...t]}else P=[K2,...P]}let re=P.indexOf(K2);P=P.filter((e,t)=>e!==K2||t===re);let ie=P[re-1],ae=P[re+1],oe=_;oe===void 0&&(ae?.fixed===void 0?ie?.fixed!==void 0&&(oe=ie.fixed):oe=ae.fixed),oe&&ie&&ie.RC_TABLE_INTERNAL_COL_DEFINE?.columnType===`EXPAND_COLUMN`&&ie.fixed===void 0&&(ie.fixed=oe);let se={fixed:oe,width:o,className:`${k.value}-selection-column`,title:n.value.columnTitle||te,customRender:z,[j0]:{class:`${k.value}-selection-col`}};return P.map(e=>e===K2?se:e)},v]}var $2={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z`}}]},name:`caret-down`,theme:`outlined`};function e4(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:[]),t=[];return e.forEach(e=>{if(!e)return;let n=e.key,r=e.props?.style||{},i=e.props?.class||``,a=e.props||{};for(let[e,t]of Object.entries(a))a[oc(e)]=t;let o=e.children||{},{default:s}=o,c=s4(o,[`default`]),l=g(g(g({},c),a),{style:r,class:i});if(n&&(l.key=n),e.type?.__ANT_TABLE_COLUMN_GROUP)l.children=d4(typeof s==`function`?s():s);else{let t=e.children?.default;l.customRender=l.customRender||t}t.push(l)}),t}var f4=`ascend`,p4=`descend`;function m4(e){return typeof e.sorter==`object`&&typeof e.sorter.multiple==`number`&&e.sorter.multiple}function h4(e){return typeof e==`function`?e:e&&typeof e==`object`&&e.compare?e.compare:!1}function g4(e,t){return t?e[e.indexOf(t)+1]:e[0]}function _4(e,t,n){let r=[];function i(e,t){r.push({column:e,key:c4(e,t),multiplePriority:m4(e),sortOrder:e.sortOrder})}return(e||[]).forEach((e,a)=>{let o=l4(a,n);e.children?(`sortOrder`in e&&i(e,o),r=[...r,..._4(e.children,t,o)]):e.sorter&&(`sortOrder`in e?i(e,o):t&&e.defaultSortOrder&&r.push({column:e,key:c4(e,o),multiplePriority:m4(e),sortOrder:e.defaultSortOrder}))}),r}function v4(e,t,n,r,i,a,o,s){return(t||[]).map((t,c)=>{let l=l4(c,s),u=t;if(u.sorter){let s=u.sortDirections||i,c=u.showSorterTooltip===void 0?o:u.showSorterTooltip,d=c4(u,l),f=n.find(e=>{let{key:t}=e;return t===d}),p=f?f.sortOrder:null,m=g4(s,p),h=s.includes(f4)&&W(o4,{class:K(`${e}-column-sorter-up`,{active:p===f4}),role:`presentation`},null),_=s.includes(p4)&&W(n4,{role:`presentation`,class:K(`${e}-column-sorter-down`,{active:p===p4})},null),{cancelSort:v,triggerAsc:y,triggerDesc:b}=a||{},x=v;m===p4?x=b:m===f4&&(x=y);let S=typeof c==`object`?c:{title:x};u=g(g({},u),{className:K(u.className,{[`${e}-column-sort`]:p}),title:n=>{let r=W(`div`,{class:`${e}-column-sorters`},[W(`span`,{class:`${e}-column-title`},[u4(t.title,n)]),W(`span`,{class:K(`${e}-column-sorter`,{[`${e}-column-sorter-full`]:!!(h&&_)})},[W(`span`,{class:`${e}-column-sorter-inner`},[h,_])])]);return c?W(KA,S,{default:()=>[r]}):r},customHeaderCell:n=>{let i=t.customHeaderCell&&t.customHeaderCell(n)||{},a=i.onClick,o=i.onKeydown;return i.onClick=e=>{r({column:t,key:d,sortOrder:m,multiplePriority:m4(t)}),a&&a(e)},i.onKeydown=e=>{e.keyCode===$.ENTER&&(r({column:t,key:d,sortOrder:m,multiplePriority:m4(t)}),o?.(e))},p&&(i[`aria-sort`]=p===`ascend`?`ascending`:`descending`),i.class=K(i.class,`${e}-column-has-sorters`),i.tabindex=0,i}})}return`children`in u&&(u=g(g({},u),{children:v4(e,u.children,n,r,i,a,o,l)})),u})}function y4(e){let{column:t,sortOrder:n}=e;return{column:t,order:n,field:t.dataIndex,columnKey:t.key}}function b4(e){let t=e.filter(e=>{let{sortOrder:t}=e;return t}).map(y4);return t.length===0&&e.length?g(g({},y4(e[e.length-1])),{column:void 0}):t.length<=1?t[0]||{}:t}function x4(e,t,n){let r=t.slice().sort((e,t)=>t.multiplePriority-e.multiplePriority),i=e.slice(),a=r.filter(e=>{let{column:{sorter:t},sortOrder:n}=e;return h4(t)&&n});return a.length?i.sort((e,t)=>{for(let n=0;n{let r=e[n];return r?g(g({},e),{[n]:x4(r,t,n)}):e}):i}function S4(e){let{prefixCls:t,mergedColumns:n,onSorterChange:r,sortDirections:i,tableLocale:a,showSorterTooltip:o}=e,[s,c]=_S(_4(n.value,!0)),l=G(()=>{let e=!0,t=_4(n.value,!1);if(!t.length)return s.value;let r=[];function i(t){e?r.push(t):r.push(g(g({},t),{sortOrder:null}))}let a=null;return t.forEach(t=>{a===null?(i(t),t.sortOrder&&(t.multiplePriority===!1?e=!1:a=!0)):(a&&t.multiplePriority!==!1||(e=!1),i(t))}),r}),u=G(()=>{let e=l.value.map(e=>{let{column:t,sortOrder:n}=e;return{column:t,order:n}});return{sortColumns:e,sortColumn:e[0]&&e[0].column,sortOrder:e[0]&&e[0].order}});function d(e){let t;t=e.multiplePriority===!1||!l.value.length||l.value[0].multiplePriority===!1?[e]:[...l.value.filter(t=>{let{key:n}=t;return n!==e.key}),e],c(t),r(b4(t),t)}return[e=>v4(t.value,e,l.value,d,i.value,a.value,o.value),l,u,G(()=>b4(l.value))]}var C4={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z`}}]},name:`filter`,theme:`filled`};function w4(e){for(var t=1;t{let{keyCode:t}=e;t===$.ENTER&&e.stopPropagation()},O4=(e,t)=>{let{slots:n}=t;return W(`div`,{onClick:e=>e.stopPropagation(),onKeydown:D4},[n.default?.call(n)])},k4=U({compatConfig:{MODE:3},name:`FilterSearch`,inheritAttrs:!1,props:{value:X(),onChange:Y(),filterSearch:Sl([Boolean,Function]),tablePrefixCls:X(),locale:q()},setup(e){return()=>{let{value:t,onChange:n,filterSearch:r,tablePrefixCls:i,locale:a}=e;return r?W(`div`,{class:`${i}-filter-dropdown-search`},[W($q,{placeholder:a.filterSearchPlaceholder,onChange:n,value:t,htmlSize:1,class:`${i}-filter-dropdown-search-input`},{prefix:()=>W(ZC,null,null)})]):null}}}),A4=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.motion?e.motion:hM()),c=(t,n)=>{var r,i,a,c;n===`appear`?(i=(r=s.value)?.onAfterEnter)==null||i.call(r,t):n===`leave`&&((c=(a=s.value)?.onAfterLeave)==null||c.call(a,t)),o.value||e.onMotionEnd(),o.value=!0};return H(()=>e.motionNodes,()=>{e.motionNodes&&e.motionType===`hide`&&i.value&&zn(()=>{i.value=!1})},{immediate:!0,flush:`post`}),$r(()=>{e.motionNodes&&e.onMotionStart()}),ni(()=>{e.motionNodes&&c()}),()=>{let{motion:t,motionNodes:o,motionType:l,active:u,eventKey:d}=e,f=A4(e,[`motion`,`motionNodes`,`motionType`,`active`,`eventKey`]);return o?W(Uo,h(h({},s.value),{},{appear:l===`show`,onAfterAppear:e=>c(e,`appear`),onAfterLeave:e=>c(e,`leave`)}),{default:()=>[Qn(W(`div`,{class:`${a.value.prefixCls}-treenode-motion`},[o.map(e=>{let t=A4(e.data,[]),{title:n,key:i,isStart:a,isEnd:o}=e;return delete t.children,W(yz,h(h({},t),{},{title:n,active:u,data:e.data,key:i,eventKey:i,isStart:a,isEnd:o}),r)})]),[[ss,i.value]])]}):W(yz,h(h({class:n.class,style:n.style},f),{},{active:u,eventKey:d}),r)}}});function M4(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=e.length,r=t.length;if(Math.abs(n-r)!==1)return{add:!1,key:null};function i(e,t){let n=new Map;e.forEach(e=>{n.set(e,!0)});let r=t.filter(e=>!n.has(e));return r.length===1?r[0]:null}return ne.key===n)+1],i=t.findIndex(e=>e.key===n);if(r){let e=t.findIndex(e=>e.key===r.key);return t.slice(i+1,e)}return t.slice(i+1)}var P4=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{},L4=`RC_TREE_MOTION_${Math.random()}`,R4={key:L4},z4={key:L4,level:0,index:0,pos:`0`,node:R4,nodes:[R4]},B4={parent:null,children:[],pos:z4.pos,data:R4,title:null,key:L4,isStart:[],isEnd:[]};function V4(e,t,n,r){return t===!1||!n?e:e.slice(0,Math.ceil(n/r)+1)}function H4(e){let{key:t,pos:n}=e;return Nz(t,n)}function U4(e){let t=String(e.key),n=e;for(;n.parent;)n=n.parent,t=`${n.key} > ${t}`;return t}var W4=U({compatConfig:{MODE:3},name:`NodeList`,inheritAttrs:!1,props:pz,setup(e,t){let{expose:n,attrs:r}=t,i=B(),a=B(),{expandedKeys:o,flattenNodes:s}=uz();n({scrollTo:e=>{i.value.scrollTo(e)},getIndentWidth:()=>a.value.offsetWidth});let c=V(s.value),l=V([]),u=B(null);function d(){c.value=s.value,l.value=[],u.value=null,e.onListChangeEnd()}let f=sz();H([()=>o.value.slice(),s],(t,n)=>{let[r,i]=t,[a,o]=n,s=M4(a,r);if(s.key!==null){let{virtual:t,height:n,itemHeight:r}=e;if(s.add){let e=o.findIndex(e=>{let{key:t}=e;return t===s.key}),a=V4(N4(o,i,s.key),t,n,r),d=o.slice();d.splice(e+1,0,B4),c.value=d,l.value=a,u.value=`show`}else{let e=i.findIndex(e=>{let{key:t}=e;return t===s.key}),a=V4(N4(i,o,s.key),t,n,r),d=i.slice();d.splice(e+1,0,B4),c.value=d,l.value=a,u.value=`hide`}}else o!==i&&(c.value=i)}),H(()=>f.value.dragging,e=>{e||d()});let p=G(()=>e.motion===void 0?c.value:s.value),m=()=>{e.onActiveChange(null)};return()=>{let t=g(g({},e),r),{prefixCls:n,selectable:o,checkable:s,disabled:c,motion:f,height:_,itemHeight:v,virtual:y,focusable:b,activeItem:x,focused:S,tabindex:C,onKeydown:w,onFocus:T,onBlur:E,onListChangeStart:D,onListChangeEnd:O}=t,k=P4(t,[`prefixCls`,`selectable`,`checkable`,`disabled`,`motion`,`height`,`itemHeight`,`virtual`,`focusable`,`activeItem`,`focused`,`tabindex`,`onKeydown`,`onFocus`,`onBlur`,`onListChangeStart`,`onListChangeEnd`]);return W(Ma,null,[S&&x&&W(`span`,{style:F4,"aria-live":`assertive`},[U4(x)]),W(`div`,null,[W(`input`,{style:F4,disabled:b===!1||c,tabindex:b===!1?null:C,onKeydown:w,onFocus:T,onBlur:E,value:``,onChange:I4,"aria-label":`for screen reader`},null)]),W(`div`,{class:`${n}-treenode`,"aria-hidden":!0,style:{position:`absolute`,pointerEvents:`none`,visibility:`hidden`,height:0,overflow:`hidden`}},[W(`div`,{class:`${n}-indent`},[W(`div`,{ref:a,class:`${n}-indent-unit`},null)])]),W(Yx,h(h({},sm(k,[`onActiveChange`])),{},{data:p.value,itemKey:H4,height:_,fullHeight:!1,virtual:y,itemHeight:v,prefixCls:`${n}-list`,ref:i,onVisibleChange:(e,t)=>{let n=new Set(e);t.filter(e=>!n.has(e)).some(e=>H4(e)===L4)&&d()}}),{default:e=>{let{pos:t}=e,n=P4(e.data,[]),{title:r,key:i,isStart:a,isEnd:o}=e,s=Nz(i,t);return delete n.key,delete n.children,W(j4,h(h({},n),{},{eventKey:s,title:r,active:!!x&&i===x.key,data:e.data,isStart:a,isEnd:o,motion:f,motionNodes:i===L4?l.value:null,motionType:u.value,onMotionStart:D,onMotionEnd:d,onMousemove:m}),null)}})])}}});function G4(e){let{dropPosition:t,dropLevelOffset:n,indent:r}=e,i={pointerEvents:`none`,position:`absolute`,right:0,backgroundColor:`red`,height:`2px`};switch(t){case-1:i.top=0,i.left=`${-n*r}px`;break;case 1:i.bottom=0,i.left=`${-n*r}px`;break;case 0:i.bottom=0,i.left=`${r}`}return W(`div`,{style:i},null)}var K4=10,q4=U({compatConfig:{MODE:3},name:`Tree`,inheritAttrs:!1,props:Bc(mz(),{prefixCls:`vc-tree`,showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,expandAction:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:G4,allowDrop:()=>!0}),setup(e,t){let{attrs:n,slots:r,expose:i}=t,a=V(!1),o={},s=V(),c=V([]),l=V([]),u=V([]),d=V([]),f=V([]),p=V([]),m={},_=Yt({draggingNodeKey:null,dragChildrenKeys:[],dropTargetKey:null,dropPosition:null,dropContainerKey:null,dropLevelOffset:null,dropTargetPos:null,dropAllowed:!0,dragOverNodeKey:null}),v=V([]);H([()=>e.treeData,()=>e.children],()=>{v.value=e.treeData===void 0?Fz(rn(e.children)):e.treeData.slice()},{immediate:!0,deep:!0});let y=V({}),b=V(!1),x=V(null),S=V(!1),C=G(()=>Pz(e.fieldNames)),w=V(),T=null,E=null,D=null,O=G(()=>({expandedKeysSet:k.value,selectedKeysSet:A.value,loadedKeysSet:j.value,loadingKeysSet:M.value,checkedKeysSet:N.value,halfCheckedKeysSet:P.value,dragOverNodeKey:_.dragOverNodeKey,dropPosition:_.dropPosition,keyEntities:y.value})),k=G(()=>new Set(p.value)),A=G(()=>new Set(c.value)),j=G(()=>new Set(d.value)),M=G(()=>new Set(f.value)),N=G(()=>new Set(l.value)),P=G(()=>new Set(u.value));ar(()=>{if(v.value){let e=Rz(v.value,{fieldNames:C.value});y.value=g({[L4]:z4},e.keyEntities)}});let F=!1;H([()=>e.expandedKeys,()=>e.autoExpandParent,y],(t,n)=>{let[r,i]=t,[a,o]=n,s=p.value;if(e.expandedKeys!==void 0||F&&i!==o)s=e.autoExpandParent||!F&&e.defaultExpandParent?jz(e.expandedKeys,y.value):e.expandedKeys;else if(!F&&e.defaultExpandAll){let e=g({},y.value);delete e[L4],s=Object.keys(e).map(t=>e[t].key)}else!F&&e.defaultExpandedKeys&&(s=e.autoExpandParent||e.defaultExpandParent?jz(e.defaultExpandedKeys,y.value):e.defaultExpandedKeys);s&&(p.value=s),F=!0},{immediate:!0});let I=V([]);ar(()=>{I.value=Iz(v.value,p.value,C.value)}),ar(()=>{e.selectable&&(e.selectedKeys===void 0?!F&&e.defaultSelectedKeys&&(c.value=kz(e.defaultSelectedKeys,e)):c.value=kz(e.selectedKeys,e))});let{maxLevel:L,levelEntities:R}=dB(y);ar(()=>{if(e.checkable){let t;if(e.checkedKeys===void 0?!F&&e.defaultCheckedKeys?t=Az(e.defaultCheckedKeys)||{}:v.value&&(t=Az(e.checkedKeys)||{checkedKeys:l.value,halfCheckedKeys:u.value}):t=Az(e.checkedKeys)||{},t){let{checkedKeys:n=[],halfCheckedKeys:r=[]}=t;if(!e.checkStrictly){let e=eB(n,!0,y.value,L.value,R.value);({checkedKeys:n,halfCheckedKeys:r}=e)}l.value=n,u.value=r}}}),ar(()=>{e.loadedKeys&&(d.value=e.loadedKeys)});let ee=()=>{g(_,{dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})},te=e=>{w.value.scrollTo(e)};H(()=>e.activeKey,()=>{e.activeKey!==void 0&&(x.value=e.activeKey)},{immediate:!0}),H(x,e=>{zn(()=>{e!==null&&te({key:e})})},{immediate:!0,flush:`post`});let ne=t=>{e.expandedKeys===void 0&&(p.value=t)},z=()=>{_.draggingNodeKey!==null&&g(_,{draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),T=null,D=null},re=(t,n)=>{let{onDragend:r}=e;_.dragOverNodeKey=null,z(),r?.({event:t,node:n.eventData}),E=null},ie=e=>{re(e,null,!0),window.removeEventListener(`dragend`,ie)},ae=(t,n)=>{let{onDragstart:r}=e,{eventKey:i,eventData:a}=n;E=n,T={x:t.clientX,y:t.clientY};let o=bz(p.value,i);_.draggingNodeKey=i,_.dragChildrenKeys=Tz(i,y.value),s.value=w.value.getIndentWidth(),ne(o),window.addEventListener(`dragend`,ie),r&&r({event:t,node:a})},oe=(t,n)=>{let{onDragenter:r,onExpand:i,allowDrop:a,direction:c}=e,{pos:l,eventKey:u}=n;if(D!==u&&(D=u),!E){ee();return}let{dropPosition:d,dropLevelOffset:f,dropTargetKey:m,dropContainerKey:h,dropTargetPos:v,dropAllowed:b,dragOverNodeKey:x}=Oz(t,E,n,s.value,T,a,I.value,y.value,k.value,c);_.dragChildrenKeys.indexOf(m)!==-1||!b?ee():(o||={},Object.keys(o).forEach(e=>{clearTimeout(o[e])}),E.eventKey!==n.eventKey&&(o[l]=window.setTimeout(()=>{if(_.draggingNodeKey===null)return;let e=p.value.slice(),r=y.value[n.eventKey];r&&(r.children||[]).length&&(e=xz(p.value,n.eventKey)),ne(e),i&&i(e,{node:n.eventData,expanded:!0,nativeEvent:t})},800)),E.eventKey===m&&f===0?ee():(g(_,{dragOverNodeKey:x,dropPosition:d,dropLevelOffset:f,dropTargetKey:m,dropContainerKey:h,dropTargetPos:v,dropAllowed:b}),r&&r({event:t,node:n.eventData,expandedKeys:p.value})))},se=(t,n)=>{let{onDragover:r,allowDrop:i,direction:a}=e;if(!E)return;let{dropPosition:o,dropLevelOffset:c,dropTargetKey:l,dropContainerKey:u,dropAllowed:d,dropTargetPos:f,dragOverNodeKey:p}=Oz(t,E,n,s.value,T,i,I.value,y.value,k.value,a);_.dragChildrenKeys.indexOf(l)===-1&&d&&(E.eventKey===l&&c===0?(_.dropPosition!==null||_.dropLevelOffset!==null||_.dropTargetKey!==null||_.dropContainerKey!==null||_.dropTargetPos!==null||_.dropAllowed!==!1||_.dragOverNodeKey!==null)&&ee():(o!==_.dropPosition||c!==_.dropLevelOffset||l!==_.dropTargetKey||u!==_.dropContainerKey||f!==_.dropTargetPos||d!==_.dropAllowed||p!==_.dragOverNodeKey)&&g(_,{dropPosition:o,dropLevelOffset:c,dropTargetKey:l,dropContainerKey:u,dropTargetPos:f,dropAllowed:d,dragOverNodeKey:p}),r&&r({event:t,node:n.eventData}))},ce=(t,n)=>{D===n.eventKey&&!t.currentTarget.contains(t.relatedTarget)&&(ee(),D=null);let{onDragleave:r}=e;r&&r({event:t,node:n.eventData})},le=function(t,n){let r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],{dragChildrenKeys:i,dropPosition:a,dropTargetKey:o,dropTargetPos:s,dropAllowed:c}=_;if(!c)return;let{onDrop:l}=e;if(_.dragOverNodeKey=null,z(),o===null)return;let u=g(g({},zz(o,rn(O.value))),{active:Te.value?.key===o,data:y.value[o].node});i.indexOf(o);let d=Sz(s),f={event:t,node:Bz(u),dragNode:E?E.eventData:null,dragNodesKeys:[E.eventKey].concat(i),dropToGap:a!==0,dropPosition:a+Number(d[d.length-1])};r||l?.(f),E=null},ue=(e,t)=>{let{expanded:n,key:r}=t,i=I.value.filter(e=>e.key===r)[0],a=Bz(g(g({},zz(r,O.value)),{data:i.data}));ne(n?bz(p.value,r):xz(p.value,r)),xe(e,a)},de=(t,n)=>{let{onClick:r,expandAction:i}=e;i===`click`&&ue(t,n),r&&r(t,n)},fe=(t,n)=>{let{onDblclick:r,expandAction:i}=e;(i===`doubleclick`||i===`dblclick`)&&ue(t,n),r&&r(t,n)},pe=(t,n)=>{let r=c.value,{onSelect:i,multiple:a}=e,{selected:o}=n,s=n[C.value.key],l=!o;r=l?a?xz(r,s):[s]:bz(r,s);let u=y.value,d=r.map(e=>{let t=u[e];return t?t.node:null}).filter(e=>e);e.selectedKeys===void 0&&(c.value=r),i&&i(r,{event:`select`,selected:l,node:n,selectedNodes:d,nativeEvent:t})},me=(t,n,r)=>{let{checkStrictly:i,onCheck:a}=e,o=n[C.value.key],s,c={event:`check`,node:n,checked:r,nativeEvent:t},d=y.value;if(i){let t=r?xz(l.value,o):bz(l.value,o);s={checked:t,halfChecked:bz(u.value,o)},c.checkedNodes=t.map(e=>d[e]).filter(e=>e).map(e=>e.node),e.checkedKeys===void 0&&(l.value=t)}else{let{checkedKeys:t,halfCheckedKeys:n}=eB([...l.value,o],!0,d,L.value,R.value);if(!r){let e=new Set(t);e.delete(o),{checkedKeys:t,halfCheckedKeys:n}=eB(Array.from(e),{checked:!1,halfCheckedKeys:n},d,L.value,R.value)}s=t,c.checkedNodes=[],c.checkedNodesPositions=[],c.halfCheckedKeys=n,t.forEach(e=>{let t=d[e];if(!t)return;let{node:n,pos:r}=t;c.checkedNodes.push(n),c.checkedNodesPositions.push({node:n,pos:r})}),e.checkedKeys===void 0&&(l.value=t,u.value=n)}a&&a(s,c)},he=t=>{let n=t[C.value.key],r=new Promise((r,i)=>{let{loadData:a,onLoad:o}=e;if(!a||j.value.has(n)||M.value.has(n))return null;a(t).then(()=>{let i=xz(d.value,n),a=bz(f.value,n);o&&o(i,{event:`load`,node:t}),e.loadedKeys===void 0&&(d.value=i),f.value=a,r()}).catch(t=>{let a=bz(f.value,n);if(f.value=a,m[n]=(m[n]||0)+1,m[n]>=K4){let t=xz(d.value,n);e.loadedKeys===void 0&&(d.value=t),r()}i(t)}),f.value=xz(f.value,n)});return r.catch(()=>{}),r},ge=(t,n)=>{let{onMouseenter:r}=e;r&&r({event:t,node:n})},_e=(t,n)=>{let{onMouseleave:r}=e;r&&r({event:t,node:n})},ve=(t,n)=>{let{onRightClick:r}=e;r&&(t.preventDefault(),r({event:t,node:n}))},ye=t=>{let{onFocus:n}=e;b.value=!0,n&&n(t)},be=t=>{let{onBlur:n}=e;b.value=!1,we(null),n&&n(t)},xe=(t,n)=>{let r=p.value,{onExpand:i,loadData:a}=e,{expanded:o}=n,s=n[C.value.key];if(S.value)return;r.indexOf(s);let c=!o;if(r=c?xz(r,s):bz(r,s),ne(r),i&&i(r,{node:n,expanded:c,nativeEvent:t}),c&&a){let e=he(n);e&&e.then(()=>{}).catch(e=>{let t=bz(p.value,s);ne(t),Promise.reject(e)})}},Se=()=>{S.value=!0},Ce=()=>{setTimeout(()=>{S.value=!1})},we=t=>{let{onActiveChange:n}=e;x.value!==t&&(e.activeKey!==void 0&&(x.value=t),t!==null&&te({key:t}),n&&n(t))},Te=G(()=>x.value===null?null:I.value.find(e=>{let{key:t}=e;return t===x.value})||null),Ee=e=>{let t=I.value.findIndex(e=>{let{key:t}=e;return t===x.value});t===-1&&e<0&&(t=I.value.length),t=(t+e+I.value.length)%I.value.length;let n=I.value[t];if(n){let{key:e}=n;we(e)}else we(null)},De=G(()=>Bz(g(g({},zz(x.value,O.value)),{data:Te.value.data,active:!0}))),Oe=t=>{let{onKeydown:n,checkable:r,selectable:i}=e;switch(t.which){case $.UP:Ee(-1),t.preventDefault();break;case $.DOWN:Ee(1),t.preventDefault()}let a=Te.value;if(a&&a.data){let e=a.data.isLeaf===!1||!!(a.data.children||[]).length,n=De.value;switch(t.which){case $.LEFT:e&&k.value.has(x.value)?xe({},n):a.parent&&we(a.parent.key),t.preventDefault();break;case $.RIGHT:e&&!k.value.has(x.value)?xe({},n):a.children&&a.children.length&&we(a.children[0].key),t.preventDefault();break;case $.ENTER:case $.SPACE:r&&!n.disabled&&n.checkable!==!1&&!n.disableCheckbox?me({},n,!N.value.has(x.value)):!r&&i&&!n.disabled&&n.selectable!==!1&&pe({},n)}}n&&n(t)};return i({onNodeExpand:xe,scrollTo:te,onKeydown:Oe,selectedKeys:G(()=>c.value),checkedKeys:G(()=>l.value),halfCheckedKeys:G(()=>u.value),loadedKeys:G(()=>d.value),loadingKeys:G(()=>f.value),expandedKeys:G(()=>p.value)}),ri(()=>{window.removeEventListener(`dragend`,ie),a.value=!0}),lz({expandedKeys:p,selectedKeys:c,loadedKeys:d,loadingKeys:f,checkedKeys:l,halfCheckedKeys:u,expandedKeysSet:k,selectedKeysSet:A,loadedKeysSet:j,loadingKeysSet:M,checkedKeysSet:N,halfCheckedKeysSet:P,flattenNodes:I}),()=>{let{draggingNodeKey:t,dropLevelOffset:i,dropContainerKey:a,dropTargetKey:o,dropPosition:c,dragOverNodeKey:l}=_,{prefixCls:u,showLine:d,focusable:f,tabindex:p=0,selectable:m,showIcon:v,icon:S=r.icon,switcherIcon:C,draggable:T,checkable:E,checkStrictly:D,disabled:O,motion:k,loadData:A,filterTreeNode:j,height:M,itemHeight:N,virtual:P,dropIndicatorRender:F,onContextmenu:I,onScroll:L,direction:R,rootClassName:ee,rootStyle:te}=e,{class:ne,style:z}=n,ie=Kb(g(g({},e),n),{aria:!0,data:!0}),ue;return ue=T?typeof T==`object`?T:typeof T==`function`?{nodeDraggable:T}:{}:!1,W(oz,{value:{prefixCls:u,selectable:m,showIcon:v,icon:S,switcherIcon:C,draggable:ue,draggingNodeKey:t,checkable:E,customCheckable:r.checkable,checkStrictly:D,disabled:O,keyEntities:y.value,dropLevelOffset:i,dropContainerKey:a,dropTargetKey:o,dropPosition:c,dragOverNodeKey:l,dragging:t!==null,indent:s.value,direction:R,dropIndicatorRender:F,loadData:A,filterTreeNode:j,onNodeClick:de,onNodeDoubleClick:fe,onNodeExpand:xe,onNodeSelect:pe,onNodeCheck:me,onNodeLoad:he,onNodeMouseEnter:ge,onNodeMouseLeave:_e,onNodeContextMenu:ve,onNodeDragStart:ae,onNodeDragEnter:oe,onNodeDragOver:se,onNodeDragLeave:ce,onNodeDragEnd:re,onNodeDrop:le,slots:r}},{default:()=>[W(`div`,{role:`tree`,class:K(u,ne,ee,{[`${u}-show-line`]:d,[`${u}-focused`]:b.value,[`${u}-active-focused`]:x.value!==null}),style:te},[W(W4,h({ref:w,prefixCls:u,style:z,disabled:O,selectable:m,checkable:!!E,motion:k,height:M,itemHeight:N,virtual:P,focusable:f,focused:b.value,tabindex:p,activeItem:Te.value,onFocus:ye,onBlur:be,onKeydown:Oe,onActiveChange:we,onListChangeStart:Se,onListChangeEnd:Ce,onContextmenu:I,onScroll:L},ie),null)])]})}}}),J4=q4,Y4={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z`}}]},name:`file`,theme:`outlined`};function X4(e){for(var t=1;t({[`.${e}-switcher-icon`]:{display:`inline-block`,fontSize:10,verticalAlign:`baseline`,svg:{transition:`transform ${t.motionDurationSlow}`}}}),h3=(e,t)=>({[`.${e}-drop-indicator`]:{position:`absolute`,zIndex:1,height:2,backgroundColor:t.colorPrimary,borderRadius:1,pointerEvents:`none`,"&:after":{position:`absolute`,top:-3,insetInlineStart:-6,width:8,height:8,backgroundColor:`transparent`,border:`${t.lineWidthBold}px solid ${t.colorPrimary}`,borderRadius:`50%`,content:`""`}}}),g3=(e,t)=>{let{treeCls:n,treeNodeCls:r,treeNodePadding:i,treeTitleHeight:a}=t,o=(a-t.fontSizeLG)/2,s=t.paddingXS;return{[n]:g(g({},Op(t)),{background:t.colorBgContainer,borderRadius:t.borderRadius,transition:`background-color ${t.motionDurationSlow}`,[`&${n}-rtl`]:{[`${n}-switcher`]:{"&_close":{[`${n}-switcher-icon`]:{svg:{transform:`rotate(90deg)`}}}}},[`&-focused:not(:hover):not(${n}-active-focused)`]:g({},Np(t)),[`${n}-list-holder-inner`]:{alignItems:`flex-start`},[`&${n}-block-node`]:{[`${n}-list-holder-inner`]:{alignItems:`stretch`,[`${n}-node-content-wrapper`]:{flex:`auto`},[`${r}.dragging`]:{position:`relative`,"&:after":{position:`absolute`,top:0,insetInlineEnd:0,bottom:i,insetInlineStart:0,border:`1px solid ${t.colorPrimary}`,opacity:0,animationName:p3,animationDuration:t.motionDurationSlow,animationPlayState:`running`,animationFillMode:`forwards`,content:`""`,pointerEvents:`none`}}}},[`${r}`]:{display:`flex`,alignItems:`flex-start`,padding:`0 0 ${i}px 0`,outline:`none`,"&-rtl":{direction:`rtl`},"&-disabled":{[`${n}-node-content-wrapper`]:{color:t.colorTextDisabled,cursor:`not-allowed`,"&:hover":{background:`transparent`}}},[`&-active ${n}-node-content-wrapper`]:g({},Np(t)),[`&:not(${r}-disabled).filter-node ${n}-title`]:{color:`inherit`,fontWeight:500},"&-draggable":{[`${n}-draggable-icon`]:{width:a,lineHeight:`${a}px`,textAlign:`center`,visibility:`visible`,opacity:.2,transition:`opacity ${t.motionDurationSlow}`,[`${r}:hover &`]:{opacity:.45}},[`&${r}-disabled`]:{[`${n}-draggable-icon`]:{visibility:`hidden`}}}},[`${n}-indent`]:{alignSelf:`stretch`,whiteSpace:`nowrap`,userSelect:`none`,"&-unit":{display:`inline-block`,width:a}},[`${n}-draggable-icon`]:{visibility:`hidden`},[`${n}-switcher`]:g(g({},m3(e,t)),{position:`relative`,flex:`none`,alignSelf:`stretch`,width:a,margin:0,lineHeight:`${a}px`,textAlign:`center`,cursor:`pointer`,userSelect:`none`,"&-noop":{cursor:`default`},"&_close":{[`${n}-switcher-icon`]:{svg:{transform:`rotate(-90deg)`}}},"&-loading-icon":{color:t.colorPrimary},"&-leaf-line":{position:`relative`,zIndex:1,display:`inline-block`,width:`100%`,height:`100%`,"&:before":{position:`absolute`,top:0,insetInlineEnd:a/2,bottom:-i,marginInlineStart:-1,borderInlineEnd:`1px solid ${t.colorBorder}`,content:`""`},"&:after":{position:`absolute`,width:a/2*.8,height:a/2,borderBottom:`1px solid ${t.colorBorder}`,content:`""`}}}),[`${n}-checkbox`]:{top:`initial`,marginInlineEnd:s,marginBlockStart:o},[`${n}-node-content-wrapper, ${n}-checkbox + span`]:{position:`relative`,zIndex:`auto`,minHeight:a,margin:0,padding:`0 ${t.paddingXS/2}px`,color:`inherit`,lineHeight:`${a}px`,background:`transparent`,borderRadius:t.borderRadius,cursor:`pointer`,transition:`all ${t.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,"&:hover":{backgroundColor:t.controlItemBgHover},[`&${n}-node-selected`]:{backgroundColor:t.controlItemBgActive},[`${n}-iconEle`]:{display:`inline-block`,width:a,height:a,lineHeight:`${a}px`,textAlign:`center`,verticalAlign:`top`,"&:empty":{display:`none`}}},[`${n}-unselectable ${n}-node-content-wrapper:hover`]:{backgroundColor:`transparent`},[`${n}-node-content-wrapper`]:g({lineHeight:`${a}px`,userSelect:`none`},h3(e,t)),[`${r}.drop-container`]:{"> [draggable]":{boxShadow:`0 0 0 2px ${t.colorPrimary}`}},"&-show-line":{[`${n}-indent`]:{"&-unit":{position:`relative`,height:`100%`,"&:before":{position:`absolute`,top:0,insetInlineEnd:a/2,bottom:-i,borderInlineEnd:`1px solid ${t.colorBorder}`,content:`""`},"&-end":{"&:before":{display:`none`}}}},[`${n}-switcher`]:{background:`transparent`,"&-line-icon":{verticalAlign:`-0.15em`}}},[`${r}-leaf-last`]:{[`${n}-switcher`]:{"&-leaf-line":{"&:before":{top:`auto !important`,bottom:`auto !important`,height:`${a/2}px !important`}}}}})}},_3=e=>{let{treeCls:t,treeNodeCls:n,treeNodePadding:r}=e;return{[`${t}${t}-directory`]:{[n]:{position:`relative`,"&:before":{position:`absolute`,top:0,insetInlineEnd:0,bottom:r,insetInlineStart:0,transition:`background-color ${e.motionDurationMid}`,content:`""`,pointerEvents:`none`},"&:hover":{"&:before":{background:e.controlItemBgHover}},"> *":{zIndex:1},[`${t}-switcher`]:{transition:`color ${e.motionDurationMid}`},[`${t}-node-content-wrapper`]:{borderRadius:0,userSelect:`none`,"&:hover":{background:`transparent`},[`&${t}-node-selected`]:{color:e.colorTextLightSolid,background:`transparent`}},"&-selected":{"\n &:hover::before,\n &::before\n ":{background:e.colorPrimary},[`${t}-switcher`]:{color:e.colorTextLightSolid},[`${t}-node-content-wrapper`]:{color:e.colorTextLightSolid,background:`transparent`}}}}}},v3=(e,t)=>{let n=`.${e}`,r=`${n}-treenode`,i=t.paddingXS/2,a=t.controlHeightSM,o=Rp(t,{treeCls:n,treeNodeCls:r,treeNodePadding:i,treeTitleHeight:a});return[g3(e,o),_3(o)]},y3=Fp(`Tree`,(e,t)=>{let{prefixCls:n}=t;return[{[e.componentCls]:ZH(`${n}-checkbox`,e)},v3(n,e),vk(e)]}),b3=()=>{let e=mz();return g(g({},e),{showLine:Sl([Boolean,Object]),multiple:J(),autoExpandParent:J(),checkStrictly:J(),checkable:J(),disabled:J(),defaultExpandAll:J(),defaultExpandParent:J(),defaultExpandedKeys:xl(),expandedKeys:xl(),checkedKeys:Sl([Array,Object]),defaultCheckedKeys:xl(),selectedKeys:xl(),defaultSelectedKeys:xl(),selectable:J(),loadedKeys:xl(),draggable:J(),showIcon:J(),icon:Y(),switcherIcon:Q.any,prefixCls:String,replaceFields:q(),blockNode:J(),openAnimation:Q.any,onDoubleclick:e.onDblclick,"onUpdate:selectedKeys":Y(),"onUpdate:checkedKeys":Y(),"onUpdate:expandedKeys":Y()})},x3=U({compatConfig:{MODE:3},name:`ATree`,inheritAttrs:!1,props:Bc(b3(),{checkable:!1,selectable:!0,showIcon:!1,blockNode:!1}),slots:Object,setup(e,t){let{attrs:n,expose:r,emit:i,slots:a}=t;e.treeData===void 0&&a.default;let{prefixCls:o,direction:s,virtual:c}=Z(`tree`,e),[l,u]=y3(o),d=B();r({treeRef:d,onNodeExpand:function(){var e;(e=d.value)==null||e.onNodeExpand(...arguments)},scrollTo:e=>{var t;(t=d.value)==null||t.scrollTo(e)},selectedKeys:G(()=>d.value?.selectedKeys),checkedKeys:G(()=>d.value?.checkedKeys),halfCheckedKeys:G(()=>d.value?.halfCheckedKeys),loadedKeys:G(()=>d.value?.loadedKeys),loadingKeys:G(()=>d.value?.loadingKeys),expandedKeys:G(()=>d.value?.expandedKeys)}),ar(()=>{wh(e.replaceFields===void 0,`Tree`,"`replaceFields` is deprecated, please use fieldNames instead")});let f=(e,t)=>{i(`update:checkedKeys`,e),i(`check`,e,t)},p=(e,t)=>{i(`update:expandedKeys`,e),i(`expand`,e,t)},m=(e,t)=>{i(`update:selectedKeys`,e),i(`select`,e,t)};return()=>{let{showIcon:t,showLine:r,switcherIcon:i=a.switcherIcon,icon:_=a.icon,blockNode:v,checkable:y,selectable:b,fieldNames:x=e.replaceFields,motion:S=e.openAnimation,itemHeight:C=28,onDoubleclick:w,onDblclick:T}=e,E=g(g(g({},n),sm(e,[`onUpdate:checkedKeys`,`onUpdate:expandedKeys`,`onUpdate:selectedKeys`,`onDoubleclick`])),{showLine:!!r,dropIndicatorRender:f3,fieldNames:x,icon:_,itemHeight:C}),D=a.default?rl(a.default()):void 0;return l(W(J4,h(h({},E),{},{virtual:c.value,motion:S,ref:d,prefixCls:o.value,class:K({[`${o.value}-icon-hide`]:!t,[`${o.value}-block-node`]:v,[`${o.value}-unselectable`]:!b,[`${o.value}-rtl`]:s.value===`rtl`},n.class,u.value),direction:s.value,checkable:y,selectable:b,switcherIcon:e=>d3(o.value,i,e,a.leafIcon,r),onCheck:f,onExpand:p,onSelect:m,onDblclick:T||w,children:D}),g(g({},a),{checkable:()=>W(`span`,{class:`${o.value}-checkbox-inner`},null)})))}}}),S3={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z`}}]},name:`folder-open`,theme:`outlined`};function C3(e){for(var t=1;t{if(s===A3.End)return!1;if(c(e)){if(o.push(e),s===A3.None)s=A3.Start;else if(s===A3.Start)return s=A3.End,!1}else s===A3.Start&&o.push(e);return n.includes(e)}),o}function N3(e,t,n){let r=[...t],i=[];return j3(e,n,(e,t)=>{let n=r.indexOf(e);return n!==-1&&(i.push(t),r.splice(n,1)),!!r.length}),i}var P3=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ig(g({},b3()),{expandAction:Sl([Boolean,String])});function I3(e){let{isLeaf:t,expanded:n}=e;return W(t?Q4:n?T3:k3,null,null)}var L3=U({compatConfig:{MODE:3},name:`ADirectoryTree`,inheritAttrs:!1,props:Bc(F3(),{showIcon:!0,expandAction:`click`}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i,expose:a}=t,o=B(e.treeData||Fz(rl(r.default?.call(r))));H(()=>e.treeData,()=>{o.value=e.treeData}),ti(()=>{zn(()=>{e.treeData===void 0&&r.default&&(o.value=Fz(rl(r.default?.call(r))))})});let s=B(),c=B(),l=G(()=>Pz(e.fieldNames)),u=B();a({scrollTo:e=>{var t;(t=u.value)==null||t.scrollTo(e)},selectedKeys:G(()=>u.value?.selectedKeys),checkedKeys:G(()=>u.value?.checkedKeys),halfCheckedKeys:G(()=>u.value?.halfCheckedKeys),loadedKeys:G(()=>u.value?.loadedKeys),loadingKeys:G(()=>u.value?.loadingKeys),expandedKeys:G(()=>u.value?.expandedKeys)});let d=()=>{let{keyEntities:t}=Rz(o.value,{fieldNames:l.value}),n;return n=e.defaultExpandAll?Object.keys(t):e.defaultExpandParent?jz(e.expandedKeys||e.defaultExpandedKeys||[],t):e.expandedKeys||e.defaultExpandedKeys,n},f=B(e.selectedKeys||e.defaultSelectedKeys||[]),p=B(d());H(()=>e.selectedKeys,()=>{e.selectedKeys!==void 0&&(f.value=e.selectedKeys)},{immediate:!0}),H(()=>e.expandedKeys,()=>{e.expandedKeys!==void 0&&(p.value=e.expandedKeys)},{immediate:!0});let m=KD((e,t)=>{let{isLeaf:n}=t;n||e.shiftKey||e.metaKey||e.ctrlKey||u.value.onNodeExpand(e,t)},200,{leading:!0}),_=(t,n)=>{e.expandedKeys===void 0&&(p.value=t),i(`update:expandedKeys`,t),i(`expand`,t,n)},v=(t,n)=>{let{expandAction:r}=e;r===`click`&&m(t,n),i(`click`,t,n)},y=(t,n)=>{let{expandAction:r}=e;(r===`dblclick`||r===`doubleclick`)&&m(t,n),i(`doubleclick`,t,n),i(`dblclick`,t,n)},b=(t,n)=>{let{multiple:r}=e,{node:a,nativeEvent:u}=n,d=a[l.value.key],m=g(g({},n),{selected:!0}),h=u?.ctrlKey||u?.metaKey,_=u?.shiftKey,v;r&&h?(v=t,s.value=d,c.value=v,m.selectedNodes=N3(o.value,v,l.value)):r&&_?(v=Array.from(new Set([...c.value||[],...M3({treeData:o.value,expandedKeys:p.value,startKey:d,endKey:s.value,fieldNames:l.value})])),m.selectedNodes=N3(o.value,v,l.value)):(v=[d],s.value=d,c.value=v,m.selectedNodes=N3(o.value,v,l.value)),i(`update:selectedKeys`,v),i(`select`,v,m),e.selectedKeys===void 0&&(f.value=v)},x=(e,t)=>{i(`update:checkedKeys`,e),i(`check`,e,t)},{prefixCls:S,direction:C}=Z(`tree`,e);return()=>{let t=K(`${S.value}-directory`,{[`${S.value}-directory-rtl`]:C.value===`rtl`},n.class),{icon:i=r.icon,blockNode:a=!0}=e,o=P3(e,[`icon`,`blockNode`]);return W(x3,h(h(h({},n),{},{icon:i||I3,ref:u,blockNode:a},o),{},{prefixCls:S.value,class:t,expandedKeys:p.value,selectedKeys:f.value,onSelect:b,onClick:v,onDblclick:y,onExpand:_,onCheck:x}),r)}}}),R3=yz,z3=g(x3,{DirectoryTree:L3,TreeNode:R3,install:e=>(e.component(x3.name,x3),e.component(R3.name,R3),e.component(L3.name,L3),e)});function B3(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=new Set;function i(e,t){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,o=r.has(e);if(Fu(!o,`Warning: There may be circular references`),o)return!1;if(e===t)return!0;if(n&&a>1)return!1;r.add(e);let s=a+1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;ni(e[n],t[n],s))}return!1}return i(e,t)}var{SubMenu:V3,Item:H3}=EM;function U3(e){return e.some(e=>{let{children:t}=e;return t&&t.length>0})}function W3(e,t){return typeof t==`string`||typeof t==`number`?t?.toString().toLowerCase().includes(e.trim().toLowerCase()):!1}function G3(e){let{filters:t,prefixCls:n,filteredKeys:r,filterMultiple:i,searchValue:a,filterSearch:o}=e;return t.map((e,t)=>{let s=String(e.value);if(e.children)return W(V3,{key:s||t,title:e.text,popupClassName:`${n}-dropdown-submenu`},{default:()=>[G3({filters:e.children,prefixCls:n,filteredKeys:r,filterMultiple:i,searchValue:a,filterSearch:o})]});let c=i?hU:vF,l=W(H3,{key:e.value===void 0?t:s},{default:()=>[W(c,{checked:r.includes(s)},null),W(`span`,null,[e.text])]});return a.trim()?typeof o==`function`?o(a,e)?l:void 0:W3(a,e.text)?l:void 0:l})}var K3=U({name:`FilterDropdown`,props:[`tablePrefixCls`,`prefixCls`,`dropdownPrefixCls`,`column`,`filterState`,`filterMultiple`,`filterMode`,`filterSearch`,`columnKey`,`triggerFilter`,`locale`,`getPopupContainer`],setup(e,t){let{slots:n}=t,r=D0(),i=G(()=>e.filterMode??`menu`),a=G(()=>e.filterSearch??!1),o=G(()=>e.column.filterDropdownOpen||e.column.filterDropdownVisible),s=G(()=>e.column.onFilterDropdownOpenChange||e.column.onFilterDropdownVisibleChange),c=V(!1),l=G(()=>!!(e.filterState&&(e.filterState.filteredKeys?.length||e.filterState.forceFiltered))),u=G(()=>Y3(e.column?.filters)),d=G(()=>{let{filterDropdown:t,slots:n={},customFilterDropdown:i}=e.column;return t||n.filterDropdown&&r.value[n.filterDropdown]||i&&r.value.customFilterDropdown}),f=G(()=>{let{filterIcon:t,slots:n={}}=e.column;return t||n.filterIcon&&r.value[n.filterIcon]||r.value.customFilterIcon}),p=e=>{var t;c.value=e,(t=s.value)==null||t.call(s,e)},m=G(()=>typeof o.value==`boolean`?o.value:c.value),h=G(()=>e.filterState?.filteredKeys),_=V([]),v=e=>{let{selectedKeys:t}=e;_.value=t},y=(t,n)=>{let{node:r,checked:i}=n;e.filterMultiple?v({selectedKeys:t}):v({selectedKeys:i&&r.key?[r.key]:[]})};H(h,()=>{c.value&&v({selectedKeys:h.value||[]})},{immediate:!0});let b=V([]),x=V(),S=e=>{x.value=setTimeout(()=>{b.value=e})},C=()=>{clearTimeout(x.value)};ni(()=>{clearTimeout(x.value)});let w=V(``),T=e=>{let{value:t}=e.target;w.value=t};H(c,()=>{c.value||(w.value=``)});let E=t=>{let{column:n,columnKey:r,filterState:i}=e,a=t&&t.length?t:null;if(a===null&&(!i||!i.filteredKeys)||B3(a,i?.filteredKeys,!0))return null;e.triggerFilter({column:n,key:r,filteredKeys:a})},D=()=>{p(!1),E(_.value)},O=function(){let{confirm:t,closeDropdown:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{confirm:!1,closeDropdown:!1};t&&E([]),n&&p(!1),w.value=``,e.column.filterResetToDefaultFilteredValue?_.value=(e.column.defaultFilteredValue||[]).map(e=>String(e)):_.value=[]},k=function(){let{closeDropdown:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{closeDropdown:!0};e&&p(!1),E(_.value)},A=e=>{e&&h.value!==void 0&&(_.value=h.value||[]),p(e),!e&&!d.value&&D()},{direction:j}=Z(``,e),M=e=>{if(e.target.checked){let e=u.value;_.value=e}else _.value=[]},N=e=>{let{filters:t}=e;return(t||[]).map((e,t)=>{let n=String(e.value),r={title:e.text,key:e.value===void 0?t:n};return e.children&&(r.children=N({filters:e.children})),r})},P=e=>g(g({},e),{text:e.title,value:e.key,children:e.children?.map(e=>P(e))||[]}),F=G(()=>N({filters:e.column.filters})),I=G(()=>K({[`${e.dropdownPrefixCls}-menu-without-submenu`]:!U3(e.column.filters||[])})),L=()=>{let t=_.value,{column:n,locale:r,tablePrefixCls:o,filterMultiple:s,dropdownPrefixCls:c,getPopupContainer:l,prefixCls:d}=e;return(n.filters||[]).length===0?W(tm,{image:tm.PRESENTED_IMAGE_SIMPLE,description:r.filterEmptyText,imageStyle:{height:24},style:{margin:0,padding:`16px 0`}},null):i.value===`tree`?W(Ma,null,[W(k4,{filterSearch:a.value,value:w.value,onChange:T,tablePrefixCls:o,locale:r},null),W(`div`,{class:`${o}-filter-dropdown-tree`},[s?W(hU,{class:`${o}-filter-dropdown-checkall`,onChange:M,checked:t.length===u.value.length,indeterminate:t.length>0&&t.length[r.filterCheckall]}):null,W(z3,{checkable:!0,selectable:!1,blockNode:!0,multiple:s,checkStrictly:!s,class:`${c}-menu`,onCheck:y,checkedKeys:t,selectedKeys:t,showIcon:!1,treeData:F.value,autoExpandParent:!0,defaultExpandAll:!0,filterTreeNode:w.value.trim()?e=>typeof a.value==`function`?a.value(w.value,P(e)):W3(w.value,e.title):void 0},null)])]):W(Ma,null,[W(k4,{filterSearch:a.value,value:w.value,onChange:T,tablePrefixCls:o,locale:r},null),W(EM,{multiple:s,prefixCls:`${c}-menu`,class:I.value,onClick:C,onSelect:v,onDeselect:v,selectedKeys:t,getPopupContainer:l,openKeys:b.value,onOpenChange:S},{default:()=>G3({filters:n.filters||[],filterSearch:a.value,prefixCls:d,filteredKeys:_.value,filterMultiple:s,searchValue:w.value})})])},R=G(()=>{let t=_.value;return e.column.filterResetToDefaultFilteredValue?B3((e.column.defaultFilteredValue||[]).map(e=>String(e)),t,!0):t.length===0});return()=>{let{tablePrefixCls:t,prefixCls:r,column:i,dropdownPrefixCls:a,locale:o,getPopupContainer:s}=e,c;c=typeof d.value==`function`?d.value({prefixCls:`${a}-custom`,setSelectedKeys:e=>v({selectedKeys:e}),selectedKeys:_.value,confirm:k,clearFilters:O,filters:i.filters,visible:m.value,column:i.__originColumn__,close:()=>{p(!1)}}):d.value?d.value:W(Ma,null,[L(),W(`div`,{class:`${r}-dropdown-btns`},[W(Oj,{type:`link`,size:`small`,disabled:R.value,onClick:()=>O()},{default:()=>[o.filterReset]}),W(Oj,{type:`primary`,size:`small`,onClick:D},{default:()=>[o.filterConfirm]})])]);let u=W(O4,{class:`${r}-dropdown`},{default:()=>[c]}),h;return h=typeof f.value==`function`?f.value({filtered:l.value,column:i.__originColumn__}):f.value?f.value:W(E4,null,null),W(`div`,{class:`${r}-column`},[W(`span`,{class:`${t}-column-title`},[n.default?.call(n)]),W(pK,{overlay:u,trigger:[`click`],open:m.value,onOpenChange:A,getPopupContainer:s,placement:j.value===`rtl`?`bottomLeft`:`bottomRight`},{default:()=>[W(`span`,{role:`button`,tabindex:-1,class:K(`${r}-trigger`,{active:l.value}),onClick:e=>{e.stopPropagation()}},[h])]})])}}});function q3(e,t,n){let r=[];return(e||[]).forEach((e,i)=>{let a=l4(i,n),o=e.filterDropdown||e?.slots?.filterDropdown||e.customFilterDropdown;if(e.filters||o||`onFilter`in e){if(`filteredValue`in e){let t=e.filteredValue;o||(t=t?.map(String)??t),r.push({column:e,key:c4(e,a),filteredKeys:t,forceFiltered:e.filtered})}else r.push({column:e,key:c4(e,a),filteredKeys:t&&e.defaultFilteredValue?e.defaultFilteredValue:void 0,forceFiltered:e.filtered})}`children`in e&&(r=[...r,...q3(e.children,t,a)])}),r}function J3(e,t,n,r,i,a,o,s){return n.map((n,c)=>{let l=l4(c,s),{filterMultiple:u=!0,filterMode:d,filterSearch:f}=n,p=n,m=n.filterDropdown||n?.slots?.filterDropdown||n.customFilterDropdown;if(p.filters||m){let s=c4(p,l),c=r.find(e=>{let{key:t}=e;return s===t});p=g(g({},p),{title:r=>W(K3,{tablePrefixCls:e,prefixCls:`${e}-filter`,dropdownPrefixCls:t,column:p,columnKey:s,filterState:c,filterMultiple:u,filterMode:d,filterSearch:f,triggerFilter:a,locale:i,getPopupContainer:o},{default:()=>[u4(n.title,r)]})})}return`children`in p&&(p=g(g({},p),{children:J3(e,t,p.children,r,i,a,o,l)})),p})}function Y3(e){let t=[];return(e||[]).forEach(e=>{let{value:n,children:r}=e;t.push(n),r&&(t=[...t,...Y3(r)])}),t}function X3(e){let t={};return e.forEach(e=>{let{key:n,filteredKeys:r,column:i}=e,a=i.filterDropdown||i?.slots?.filterDropdown||i.customFilterDropdown,{filters:o}=i;if(a)t[n]=r||null;else if(Array.isArray(r)){let e=Y3(o);t[n]=e.filter(e=>r.includes(String(e)))}else t[n]=null}),t}function Z3(e,t){return t.reduce((e,t)=>{let{column:{onFilter:n,filters:r},filteredKeys:i}=t;return n&&i&&i.length?e.filter(e=>i.some(t=>{let i=Y3(r),a=i.findIndex(e=>String(e)===String(t)),o=a===-1?t:i[a];return n(o,e)})):e},e)}function Q3(e){return e.flatMap(e=>`children`in e?[e,...Q3(e.children||[])]:[e])}function $3(e){let{prefixCls:t,dropdownPrefixCls:n,mergedColumns:r,locale:i,onFilterChange:a,getPopupContainer:o}=e,s=G(()=>Q3(r.value)),[c,l]=_S(q3(s.value,!0)),u=G(()=>{let e=q3(s.value,!1);if(e.length===0)return e;let t=!0,n=!0;if(e.forEach(e=>{let{filteredKeys:r}=e;r===void 0?n=!1:t=!1}),t){let e=(s.value||[]).map((e,t)=>c4(e,l4(t)));return c.value.filter(t=>{let{key:n}=t;return e.includes(n)}).map(t=>{let n=s.value[e.findIndex(e=>e===t.key)];return g(g({},t),{column:g(g({},t.column),n),forceFiltered:n.filtered})})}return wh(n,`Table`,"Columns should all contain `filteredValue` or not contain `filteredValue`."),e}),d=G(()=>X3(u.value)),f=e=>{let t=u.value.filter(t=>{let{key:n}=t;return n!==e.key});t.push(e),l(t),a(X3(t),t)};return[e=>J3(t.value,n.value,e,u.value,i.value,f,o.value),u,d]}function e6(e,t){return e.map(e=>{let n=g({},e);return n.title=u4(n.title,t),`children`in n&&(n.children=e6(n.children,t)),n})}function t6(e){return[t=>e6(t,e.value)]}function n6(e){return function(t){let{prefixCls:n,onExpand:r,record:i,expanded:a,expandable:o}=t,s=`${n}-row-expand-icon`;return W(`button`,{type:`button`,onClick:e=>{r(i,e),e.stopPropagation()},class:K(s,{[`${s}-spaced`]:!o,[`${s}-expanded`]:o&&a,[`${s}-collapsed`]:o&&!a}),"aria-label":a?e.collapse:e.expand,"aria-expanded":a},null)}}function r6(e,t){let n=t.value;return e.map(e=>{if(e===K2||e===u2)return e;let r=g({},e),{slots:i={}}=r;return r.__originColumn__=e,wh(!(`slots`in r),`Table`,"`column.slots` is deprecated. Please use `v-slot:headerCell` `v-slot:bodyCell` instead."),Object.keys(i).forEach(e=>{let t=i[e];r[e]===void 0&&n[t]&&(r[e]=n[t])}),t.value.headerCell&&!e.slots?.title&&(r.title=u_(t.value,`headerCell`,{title:e.title,column:e},()=>[e.title])),`children`in r&&Array.isArray(r.children)&&(r.children=r6(r.children,t)),r})}function i6(e){return[t=>r6(t,e)]}var a6=e=>{let{componentCls:t}=e,n=`${e.lineWidth}px ${e.lineType} ${e.tableBorderColor}`,r=(n,r,i)=>({[`&${t}-${n}`]:{[`> ${t}-container`]:{[`> ${t}-content, > ${t}-body`]:{"> table > tbody > tr > td":{[`> ${t}-expanded-row-fixed`]:{margin:`-${r}px -${i+e.lineWidth}px`}}}}}});return{[`${t}-wrapper`]:{[`${t}${t}-bordered`]:g(g(g({[`> ${t}-title`]:{border:n,borderBottom:0},[`> ${t}-container`]:{borderInlineStart:n,[` + > ${t}-content, + > ${t}-header, + > ${t}-body, + > ${t}-summary + `]:{"> table":{"\n > thead > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td\n ":{borderInlineEnd:n},"> thead":{"> tr:not(:last-child) > th":{borderBottom:n},"> tr > th::before":{backgroundColor:`transparent !important`}},"\n > thead > tr,\n > tbody > tr,\n > tfoot > tr\n ":{[`> ${t}-cell-fix-right-first::after`]:{borderInlineEnd:n}},"> tbody > tr > td":{[`> ${t}-expanded-row-fixed`]:{margin:`-${e.tablePaddingVertical}px -${e.tablePaddingHorizontal+e.lineWidth}px`,"&::after":{position:`absolute`,top:0,insetInlineEnd:e.lineWidth,bottom:0,borderInlineEnd:n,content:`""`}}}}},[` + > ${t}-content, + > ${t}-header + `]:{"> table":{borderTop:n}}},[`&${t}-scroll-horizontal`]:{[`> ${t}-container > ${t}-body`]:{"> table > tbody":{[` + > tr${t}-expanded-row, + > tr${t}-placeholder + `]:{"> td":{borderInlineEnd:0}}}}}},r(`middle`,e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle)),r(`small`,e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall)),{[`> ${t}-footer`]:{border:n,borderTop:0}}),[`${t}-cell`]:{[`${t}-container:first-child`]:{borderTop:0},"&-scrollbar:not([rowspan])":{boxShadow:`0 ${e.lineWidth}px 0 ${e.lineWidth}px ${e.tableHeaderBg}`}}}}},o6=e=>{let{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-cell-ellipsis`]:g(g({},Dp),{wordBreak:`keep-all`,[` + &${t}-cell-fix-left-last, + &${t}-cell-fix-right-first + `]:{overflow:`visible`,[`${t}-cell-content`]:{display:`block`,overflow:`hidden`,textOverflow:`ellipsis`}},[`${t}-column-title`]:{overflow:`hidden`,textOverflow:`ellipsis`,wordBreak:`keep-all`}})}}},s6=e=>{let{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-tbody > tr${t}-placeholder`]:{textAlign:`center`,color:e.colorTextDisabled,"&:hover > td":{background:e.colorBgContainer}}}}},c6=e=>{let{componentCls:t,antCls:n,controlInteractiveSize:r,motionDurationSlow:i,lineWidth:a,paddingXS:o,lineType:s,tableBorderColor:c,tableExpandIconBg:l,tableExpandColumnWidth:u,borderRadius:d,fontSize:f,fontSizeSM:p,lineHeight:m,tablePaddingVertical:h,tablePaddingHorizontal:_,tableExpandedRowBg:v,paddingXXS:y}=e,b=r/2-a,x=b*2+a*3,S=`${a}px ${s} ${c}`,C=y-a;return{[`${t}-wrapper`]:{[`${t}-expand-icon-col`]:{width:u},[`${t}-row-expand-icon-cell`]:{textAlign:`center`,[`${t}-row-expand-icon`]:{display:`inline-flex`,float:`none`,verticalAlign:`sub`}},[`${t}-row-indent`]:{height:1,float:`left`},[`${t}-row-expand-icon`]:g(g({},wp(e)),{position:`relative`,float:`left`,boxSizing:`border-box`,width:x,height:x,padding:0,color:`inherit`,lineHeight:`${x}px`,background:l,border:S,borderRadius:d,transform:`scale(${r/x})`,transition:`all ${i}`,userSelect:`none`,"&:focus, &:hover, &:active":{borderColor:`currentcolor`},"&::before, &::after":{position:`absolute`,background:`currentcolor`,transition:`transform ${i} ease-out`,content:`""`},"&::before":{top:b,insetInlineEnd:C,insetInlineStart:C,height:a},"&::after":{top:C,bottom:C,insetInlineStart:b,width:a,transform:`rotate(90deg)`},"&-collapsed::before":{transform:`rotate(-180deg)`},"&-collapsed::after":{transform:`rotate(0deg)`},"&-spaced":{"&::before, &::after":{display:`none`,content:`none`},background:`transparent`,border:0,visibility:`hidden`}}),[`${t}-row-indent + ${t}-row-expand-icon`]:{marginTop:(f*m-a*3)/2-Math.ceil((p*1.4-a*3)/2),marginInlineEnd:o},[`tr${t}-expanded-row`]:{"&, &:hover":{"> td":{background:v}},[`${n}-descriptions-view`]:{display:`flex`,table:{flex:`auto`,width:`auto`}}},[`${t}-expanded-row-fixed`]:{position:`relative`,margin:`-${h}px -${_}px`,padding:`${h}px ${_}px`}}}},l6=e=>{let{componentCls:t,antCls:n,iconCls:r,tableFilterDropdownWidth:i,tableFilterDropdownSearchWidth:a,paddingXXS:o,paddingXS:s,colorText:c,lineWidth:l,lineType:u,tableBorderColor:d,tableHeaderIconColor:f,fontSizeSM:p,tablePaddingHorizontal:m,borderRadius:h,motionDurationSlow:_,colorTextDescription:v,colorPrimary:y,tableHeaderFilterActiveBg:b,colorTextDisabled:x,tableFilterDropdownBg:S,tableFilterDropdownHeight:C,controlItemBgHover:w,controlItemBgActive:T,boxShadowSecondary:E}=e,D=`${n}-dropdown`,O=`${t}-filter-dropdown`,k=`${n}-tree`,A=`${l}px ${u} ${d}`;return[{[`${t}-wrapper`]:{[`${t}-filter-column`]:{display:`flex`,justifyContent:`space-between`},[`${t}-filter-trigger`]:{position:`relative`,display:`flex`,alignItems:`center`,marginBlock:-o,marginInline:`${o}px ${-m/2}px`,padding:`0 ${o}px`,color:f,fontSize:p,borderRadius:h,cursor:`pointer`,transition:`all ${_}`,"&:hover":{color:v,background:b},"&.active":{color:y}}}},{[`${n}-dropdown`]:{[O]:g(g({},Op(e)),{minWidth:i,backgroundColor:S,borderRadius:h,boxShadow:E,[`${D}-menu`]:{maxHeight:C,overflowX:`hidden`,border:0,boxShadow:`none`,"&:empty::after":{display:`block`,padding:`${s}px 0`,color:x,fontSize:p,textAlign:`center`,content:`"Not Found"`}},[`${O}-tree`]:{paddingBlock:`${s}px 0`,paddingInline:s,[k]:{padding:0},[`${k}-treenode ${k}-node-content-wrapper:hover`]:{backgroundColor:w},[`${k}-treenode-checkbox-checked ${k}-node-content-wrapper`]:{"&, &:hover":{backgroundColor:T}}},[`${O}-search`]:{padding:s,borderBottom:A,"&-input":{input:{minWidth:a},[r]:{color:x}}},[`${O}-checkall`]:{width:`100%`,marginBottom:o,marginInlineStart:o},[`${O}-btns`]:{display:`flex`,justifyContent:`space-between`,padding:`${s-l}px ${s}px`,overflow:`hidden`,backgroundColor:`inherit`,borderTop:A}})}},{[`${n}-dropdown ${O}, ${O}-submenu`]:{[`${n}-checkbox-wrapper + span`]:{paddingInlineStart:s,color:c},"> ul":{maxHeight:`calc(100vh - 130px)`,overflowX:`hidden`,overflowY:`auto`}}}]},u6=e=>{let{componentCls:t,lineWidth:n,colorSplit:r,motionDurationSlow:i,zIndexTableFixed:a,tableBg:o,zIndexTableSticky:s}=e,c=r;return{[`${t}-wrapper`]:{[` + ${t}-cell-fix-left, + ${t}-cell-fix-right + `]:{position:`sticky !important`,zIndex:a,background:o},[` + ${t}-cell-fix-left-first::after, + ${t}-cell-fix-left-last::after + `]:{position:`absolute`,top:0,right:{_skip_check_:!0,value:0},bottom:-n,width:30,transform:`translateX(100%)`,transition:`box-shadow ${i}`,content:`""`,pointerEvents:`none`},[`${t}-cell-fix-left-all::after`]:{display:`none`},[` + ${t}-cell-fix-right-first::after, + ${t}-cell-fix-right-last::after + `]:{position:`absolute`,top:0,bottom:-n,left:{_skip_check_:!0,value:0},width:30,transform:`translateX(-100%)`,transition:`box-shadow ${i}`,content:`""`,pointerEvents:`none`},[`${t}-container`]:{"&::before, &::after":{position:`absolute`,top:0,bottom:0,zIndex:s+1,width:30,transition:`box-shadow ${i}`,content:`""`,pointerEvents:`none`},"&::before":{insetInlineStart:0},"&::after":{insetInlineEnd:0}},[`${t}-ping-left`]:{[`&:not(${t}-has-fix-left) ${t}-container`]:{position:`relative`,"&::before":{boxShadow:`inset 10px 0 8px -8px ${c}`}},[` + ${t}-cell-fix-left-first::after, + ${t}-cell-fix-left-last::after + `]:{boxShadow:`inset 10px 0 8px -8px ${c}`},[`${t}-cell-fix-left-last::before`]:{backgroundColor:`transparent !important`}},[`${t}-ping-right`]:{[`&:not(${t}-has-fix-right) ${t}-container`]:{position:`relative`,"&::after":{boxShadow:`inset -10px 0 8px -8px ${c}`}},[` + ${t}-cell-fix-right-first::after, + ${t}-cell-fix-right-last::after + `]:{boxShadow:`inset -10px 0 8px -8px ${c}`}}}}},d6=e=>{let{componentCls:t,antCls:n}=e;return{[`${t}-wrapper`]:{[`${t}-pagination${n}-pagination`]:{margin:`${e.margin}px 0`},[`${t}-pagination`]:{display:`flex`,flexWrap:`wrap`,rowGap:e.paddingXS,"> *":{flex:`none`},"&-left":{justifyContent:`flex-start`},"&-center":{justifyContent:`center`},"&-right":{justifyContent:`flex-end`}}}}},f6=e=>{let{componentCls:t,tableRadius:n}=e;return{[`${t}-wrapper`]:{[t]:{[`${t}-title, ${t}-header`]:{borderRadius:`${n}px ${n}px 0 0`},[`${t}-title + ${t}-container`]:{borderStartStartRadius:0,borderStartEndRadius:0,table:{borderRadius:0,"> thead > tr:first-child":{"th:first-child":{borderRadius:0},"th:last-child":{borderRadius:0}}}},"&-container":{borderStartStartRadius:n,borderStartEndRadius:n,"table > thead > tr:first-child":{"> *:first-child":{borderStartStartRadius:n},"> *:last-child":{borderStartEndRadius:n}}},"&-footer":{borderRadius:`0 0 ${n}px ${n}px`}}}}},p6=e=>{let{componentCls:t}=e;return{[`${t}-wrapper-rtl`]:{direction:`rtl`,table:{direction:`rtl`},[`${t}-pagination-left`]:{justifyContent:`flex-end`},[`${t}-pagination-right`]:{justifyContent:`flex-start`},[`${t}-row-expand-icon`]:{"&::after":{transform:`rotate(-90deg)`},"&-collapsed::before":{transform:`rotate(180deg)`},"&-collapsed::after":{transform:`rotate(0deg)`}}}}},m6=e=>{let{componentCls:t,antCls:n,iconCls:r,fontSizeIcon:i,paddingXS:a,tableHeaderIconColor:o,tableHeaderIconColorHover:s}=e;return{[`${t}-wrapper`]:{[`${t}-selection-col`]:{width:e.tableSelectionColumnWidth},[`${t}-bordered ${t}-selection-col`]:{width:e.tableSelectionColumnWidth+a*2},[` + table tr th${t}-selection-column, + table tr td${t}-selection-column + `]:{paddingInlineEnd:e.paddingXS,paddingInlineStart:e.paddingXS,textAlign:`center`,[`${n}-radio-wrapper`]:{marginInlineEnd:0}},[`table tr th${t}-selection-column${t}-cell-fix-left`]:{zIndex:e.zIndexTableFixed+1},[`table tr th${t}-selection-column::after`]:{backgroundColor:`transparent !important`},[`${t}-selection`]:{position:`relative`,display:`inline-flex`,flexDirection:`column`},[`${t}-selection-extra`]:{position:`absolute`,top:0,zIndex:1,cursor:`pointer`,transition:`all ${e.motionDurationSlow}`,marginInlineStart:`100%`,paddingInlineStart:`${e.tablePaddingHorizontal/4}px`,[r]:{color:o,fontSize:i,verticalAlign:`baseline`,"&:hover":{color:s}}}}}},h6=e=>{let{componentCls:t}=e,n=(n,r,i,a)=>({[`${t}${t}-${n}`]:{fontSize:a,[` + ${t}-title, + ${t}-footer, + ${t}-thead > tr > th, + ${t}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{padding:`${r}px ${i}px`},[`${t}-filter-trigger`]:{marginInlineEnd:`-${i/2}px`},[`${t}-expanded-row-fixed`]:{margin:`-${r}px -${i}px`},[`${t}-tbody`]:{[`${t}-wrapper:only-child ${t}`]:{marginBlock:`-${r}px`,marginInline:`${e.tableExpandColumnWidth-i}px -${i}px`}},[`${t}-selection-column`]:{paddingInlineStart:`${i/4}px`}}});return{[`${t}-wrapper`]:g(g({},n(`middle`,e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle,e.tableFontSizeMiddle)),n(`small`,e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall,e.tableFontSizeSmall))}},g6=e=>{let{componentCls:t}=e;return{[`${t}-wrapper ${t}-resize-handle`]:{position:`absolute`,top:0,height:`100% !important`,bottom:0,left:` auto !important`,right:` -8px`,cursor:`col-resize`,touchAction:`none`,userSelect:`auto`,width:`16px`,zIndex:1,"&-line":{display:`block`,width:`1px`,marginLeft:`7px`,height:`100% !important`,backgroundColor:e.colorPrimary,opacity:0},"&:hover &-line":{opacity:1}},[`${t}-wrapper ${t}-resize-handle.dragging`]:{overflow:`hidden`,[`${t}-resize-handle-line`]:{opacity:1},"&:before":{position:`absolute`,top:0,bottom:0,content:`" "`,width:`200vw`,transform:`translateX(-50%)`,opacity:0}}}},_6=e=>{let{componentCls:t,marginXXS:n,fontSizeIcon:r,tableHeaderIconColor:i,tableHeaderIconColorHover:a}=e;return{[`${t}-wrapper`]:{[`${t}-thead th${t}-column-has-sorters`]:{outline:`none`,cursor:`pointer`,transition:`all ${e.motionDurationSlow}`,"&:hover":{background:e.tableHeaderSortHoverBg,"&::before":{backgroundColor:`transparent !important`}},"&:focus-visible":{color:e.colorPrimary},[` + &${t}-cell-fix-left:hover, + &${t}-cell-fix-right:hover + `]:{background:e.tableFixedHeaderSortActiveBg}},[`${t}-thead th${t}-column-sort`]:{background:e.tableHeaderSortBg,"&::before":{backgroundColor:`transparent !important`}},[`td${t}-column-sort`]:{background:e.tableBodySortBg},[`${t}-column-title`]:{position:`relative`,zIndex:1,flex:1},[`${t}-column-sorters`]:{display:`flex`,flex:`auto`,alignItems:`center`,justifyContent:`space-between`,"&::after":{position:`absolute`,inset:0,width:`100%`,height:`100%`,content:`""`}},[`${t}-column-sorter`]:{marginInlineStart:n,color:i,fontSize:0,transition:`color ${e.motionDurationSlow}`,"&-inner":{display:`inline-flex`,flexDirection:`column`,alignItems:`center`},"&-up, &-down":{fontSize:r,"&.active":{color:e.colorPrimary}},[`${t}-column-sorter-up + ${t}-column-sorter-down`]:{marginTop:`-0.3em`}},[`${t}-column-sorters:hover ${t}-column-sorter`]:{color:a}}}},v6=e=>{let{componentCls:t,opacityLoading:n,tableScrollThumbBg:r,tableScrollThumbBgHover:i,tableScrollThumbSize:a,tableScrollBg:o,zIndexTableSticky:s}=e,c=`${e.lineWidth}px ${e.lineType} ${e.tableBorderColor}`;return{[`${t}-wrapper`]:{[`${t}-sticky`]:{"&-holder":{position:`sticky`,zIndex:s,background:e.colorBgContainer},"&-scroll":{position:`sticky`,bottom:0,height:`${a}px !important`,zIndex:s,display:`flex`,alignItems:`center`,background:o,borderTop:c,opacity:n,"&:hover":{transformOrigin:`center bottom`},"&-bar":{height:a,backgroundColor:r,borderRadius:100,transition:`all ${e.motionDurationSlow}, transform none`,position:`absolute`,bottom:0,"&:hover, &-active":{backgroundColor:i}}}}}}},y6=e=>{let{componentCls:t,lineWidth:n,tableBorderColor:r}=e,i=`${n}px ${e.lineType} ${r}`;return{[`${t}-wrapper`]:{[`${t}-summary`]:{position:`relative`,zIndex:e.zIndexTableFixed,background:e.tableBg,"> tr":{"> th, > td":{borderBottom:i}}},[`div${t}-summary`]:{boxShadow:`0 -${n}px 0 ${r}`}}}},b6=e=>{let{componentCls:t,fontWeightStrong:n,tablePaddingVertical:r,tablePaddingHorizontal:i,lineWidth:a,lineType:o,tableBorderColor:s,tableFontSize:c,tableBg:l,tableRadius:u,tableHeaderTextColor:d,motionDurationMid:f,tableHeaderBg:p,tableHeaderCellSplitColor:m,tableRowHoverBg:h,tableSelectedRowBg:_,tableSelectedRowHoverBg:v,tableFooterTextColor:y,tableFooterBg:b,paddingContentVerticalLG:x}=e,S=`${a}px ${o} ${s}`;return{[`${t}-wrapper`]:g(g({clear:`both`,maxWidth:`100%`},Ap()),{[t]:g(g({},Op(e)),{fontSize:c,background:l,borderRadius:`${u}px ${u}px 0 0`}),table:{width:`100%`,textAlign:`start`,borderRadius:`${u}px ${u}px 0 0`,borderCollapse:`separate`,borderSpacing:0},[` + ${t}-thead > tr > th, + ${t}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{position:`relative`,padding:`${x}px ${i}px`,overflowWrap:`break-word`},[`${t}-title`]:{padding:`${r}px ${i}px`},[`${t}-thead`]:{"\n > tr > th,\n > tr > td\n ":{position:`relative`,color:d,fontWeight:n,textAlign:`start`,background:p,borderBottom:S,transition:`background ${f} ease`,"&[colspan]:not([colspan='1'])":{textAlign:`center`},[`&:not(:last-child):not(${t}-selection-column):not(${t}-row-expand-icon-cell):not([colspan])::before`]:{position:`absolute`,top:`50%`,insetInlineEnd:0,width:1,height:`1.6em`,backgroundColor:m,transform:`translateY(-50%)`,transition:`background-color ${f}`,content:`""`}},"> tr:not(:last-child) > th[colspan]":{borderBottom:0}},[`${t}:not(${t}-bordered)`]:{[`${t}-tbody`]:{"> tr":{"> td":{borderTop:S,borderBottom:`transparent`},"&:last-child > td":{borderBottom:S},[`&:first-child > td, + &${t}-measure-row + tr > td`]:{borderTop:`none`,borderTopColor:`transparent`}}}},[`${t}${t}-bordered`]:{[`${t}-tbody`]:{"> tr":{"> td":{borderBottom:S}}}},[`${t}-tbody`]:{"> tr":{"> td":{transition:`background ${f}, border-color ${f}`,[` + > ${t}-wrapper:only-child, + > ${t}-expanded-row-fixed > ${t}-wrapper:only-child + `]:{[t]:{marginBlock:`-${r}px`,marginInline:`${e.tableExpandColumnWidth-i}px -${i}px`,[`${t}-tbody > tr:last-child > td`]:{borderBottom:0,"&:first-child, &:last-child":{borderRadius:0}}}}},[` + &${t}-row:hover > td, + > td${t}-cell-row-hover + `]:{background:h},[`&${t}-row-selected`]:{"> td":{background:_},"&:hover > td":{background:v}}}},[`${t}-footer`]:{padding:`${r}px ${i}px`,color:y,background:b}})}},x6=Fp(`Table`,e=>{let{controlItemBgActive:t,controlItemBgActiveHover:n,colorTextPlaceholder:r,colorTextHeading:i,colorSplit:a,colorBorderSecondary:o,fontSize:s,padding:c,paddingXS:l,paddingSM:u,controlHeight:d,colorFillAlter:f,colorIcon:p,colorIconHover:m,opacityLoading:h,colorBgContainer:g,borderRadiusLG:_,colorFillContent:v,colorFillSecondary:y,controlInteractiveSize:b}=e,x=new zf(p),S=new zf(m),C=t,w=new zf(y).onBackground(g).toHexString(),T=new zf(v).onBackground(g).toHexString(),E=new zf(f).onBackground(g).toHexString(),D=Rp(e,{tableFontSize:s,tableBg:g,tableRadius:_,tablePaddingVertical:c,tablePaddingHorizontal:c,tablePaddingVerticalMiddle:u,tablePaddingHorizontalMiddle:l,tablePaddingVerticalSmall:l,tablePaddingHorizontalSmall:l,tableBorderColor:o,tableHeaderTextColor:i,tableHeaderBg:E,tableFooterTextColor:i,tableFooterBg:E,tableHeaderCellSplitColor:o,tableHeaderSortBg:w,tableHeaderSortHoverBg:T,tableHeaderIconColor:x.clone().setAlpha(x.getAlpha()*h).toRgbString(),tableHeaderIconColorHover:S.clone().setAlpha(S.getAlpha()*h).toRgbString(),tableBodySortBg:E,tableFixedHeaderSortActiveBg:w,tableHeaderFilterActiveBg:v,tableFilterDropdownBg:g,tableRowHoverBg:E,tableSelectedRowBg:C,tableSelectedRowHoverBg:n,zIndexTableFixed:2,zIndexTableSticky:3,tableFontSizeMiddle:s,tableFontSizeSmall:s,tableSelectionColumnWidth:d,tableExpandIconBg:g,tableExpandColumnWidth:b+2*e.padding,tableExpandedRowBg:f,tableFilterDropdownWidth:120,tableFilterDropdownHeight:264,tableFilterDropdownSearchWidth:140,tableScrollThumbSize:8,tableScrollThumbBg:r,tableScrollThumbBgHover:i,tableScrollBg:a});return[b6(D),d6(D),y6(D),_6(D),l6(D),a6(D),f6(D),c6(D),y6(D),s6(D),m6(D),u6(D),v6(D),o6(D),h6(D),g6(D),p6(D)]}),S6=[],C6=()=>({prefixCls:X(),columns:xl(),rowKey:Sl([String,Function]),tableLayout:X(),rowClassName:Sl([String,Function]),title:Y(),footer:Y(),id:X(),showHeader:J(),components:q(),customRow:Y(),customHeaderRow:Y(),direction:X(),expandFixed:Sl([Boolean,String]),expandColumnWidth:Number,expandedRowKeys:xl(),defaultExpandedRowKeys:xl(),expandedRowRender:Y(),expandRowByClick:J(),expandIcon:Y(),onExpand:Y(),onExpandedRowsChange:Y(),"onUpdate:expandedRowKeys":Y(),defaultExpandAllRows:J(),indentSize:Number,expandIconColumnIndex:Number,showExpandColumn:J(),expandedRowClassName:Y(),childrenColumnName:X(),rowExpandable:Y(),sticky:Sl([Boolean,Object]),dropdownPrefixCls:String,dataSource:xl(),pagination:Sl([Boolean,Object]),loading:Sl([Boolean,Object]),size:X(),bordered:J(),locale:q(),onChange:Y(),onResizeColumn:Y(),rowSelection:q(),getPopupContainer:Y(),scroll:q(),sortDirections:xl(),showSorterTooltip:Sl([Boolean,Object],!0),transformCellText:Y()}),w6=U({name:`InternalTable`,inheritAttrs:!1,props:Bc(g(g({},C6()),{contextSlots:q()}),{rowKey:`key`}),setup(e,t){let{attrs:n,slots:r,expose:i,emit:a}=t;wh(!(typeof e.rowKey==`function`&&e.rowKey.length>1),`Table`,"`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected."),E0(G(()=>e.contextSlots)),k0({onResizeColumn:(e,t)=>{a(`resizeColumn`,e,t)}});let o=EA(),s=G(()=>{let t=new Set(Object.keys(o.value).filter(e=>o.value[e]));return e.columns.filter(e=>!e.responsive||e.responsive.some(e=>t.has(e)))}),{size:c,renderEmpty:l,direction:u,prefixCls:d,configProvider:f}=Z(`table`,e),[p,m]=x6(d),_=G(()=>e.transformCellText||f.transformCellText?.value),[v]=$l(`Table`,Zl.Table,vn(e,`locale`)),y=G(()=>e.dataSource||S6),b=G(()=>f.getPrefixCls(`dropdown`,e.dropdownPrefixCls)),x=G(()=>e.childrenColumnName||`children`),S=G(()=>y.value.some(e=>e?.[x.value])?`nest`:e.expandedRowRender?`row`:null),C=Yt({body:null}),w=e=>{g(C,e)},T=G(()=>typeof e.rowKey==`function`?e.rowKey:t=>t?.[e.rowKey]),[E]=G2(y,x,T),D={},O=function(t,n){let r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],{pagination:i,scroll:a,onChange:o}=e,s=g(g({},D),t);r&&(D.resetPagination(),s.pagination.current&&(s.pagination.current=1),i&&i.onChange&&i.onChange(1,s.pagination.pageSize)),a&&a.scrollToFirstRowOnChange!==!1&&C.body&&Tm(0,{getContainer:()=>C.body}),o?.(s.pagination,s.filters,s.sorter,{currentDataSource:Z3(x4(y.value,s.sorterStates,x.value),s.filterStates),action:n})},[k,A,j,M]=S4({prefixCls:d,mergedColumns:s,onSorterChange:(e,t)=>{O({sorter:e,sorterStates:t},`sort`,!1)},sortDirections:G(()=>e.sortDirections||[`ascend`,`descend`]),tableLocale:v,showSorterTooltip:vn(e,`showSorterTooltip`)}),N=G(()=>x4(y.value,A.value,x.value)),[P,F,I]=$3({prefixCls:d,locale:v,dropdownPrefixCls:b,mergedColumns:s,onFilterChange:(e,t)=>{O({filters:e,filterStates:t},`filter`,!0)},getPopupContainer:vn(e,`getPopupContainer`)}),L=G(()=>Z3(N.value,F.value)),[R]=i6(vn(e,`contextSlots`)),[ee]=t6(G(()=>{let e={},t=I.value;return Object.keys(t).forEach(n=>{t[n]!==null&&(e[n]=t[n])}),g(g({},j.value),{filters:e})})),[te,ne]=W2(G(()=>L.value.length),vn(e,`pagination`),(e,t)=>{O({pagination:g(g({},D.pagination),{current:e,pageSize:t})},`paginate`)});ar(()=>{D.sorter=M.value,D.sorterStates=A.value,D.filters=I.value,D.filterStates=F.value,D.pagination=e.pagination===!1?{}:U2(te.value,e.pagination),D.resetPagination=ne});let z=G(()=>{if(e.pagination===!1||!te.value.pageSize)return L.value;let{current:t=1,total:n,pageSize:r=10}=te.value;return wh(t>0,`Table`,"`current` should be positive number."),L.value.lengthr?L.value.slice((t-1)*r,t*r):L.value:L.value.slice((t-1)*r,t*r)});ar(()=>{zn(()=>{let{total:e,pageSize:t=10}=te.value;L.value.lengtht&&wh(!1,`Table`,"`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.")})},{flush:`post`});let re=G(()=>e.showExpandColumn===!1?-1:S.value===`nest`&&e.expandIconColumnIndex===void 0?+!!e.rowSelection:e.expandIconColumnIndex>0&&e.rowSelection?e.expandIconColumnIndex-1:e.expandIconColumnIndex),ie=B();H(()=>e.rowSelection,()=>{ie.value=e.rowSelection?g({},e.rowSelection):e.rowSelection},{deep:!0,immediate:!0});let[ae,oe]=Q2(ie,{prefixCls:d,data:L,pageData:z,getRowKey:T,getRecordByKey:E,expandType:S,childrenColumnName:x,locale:v,getPopupContainer:G(()=>e.getPopupContainer)}),se=(t,n,r)=>{let i,{rowClassName:a}=e;return i=K(typeof a==`function`?a(t,n,r):a),K({[`${d.value}-row-selected`]:oe.value.has(T.value(t,n))},i)};i({selectedKeySet:oe});let ce=G(()=>typeof e.indentSize==`number`?e.indentSize:15),le=e=>ee(ae(P(k(R(e)))));return()=>{let{expandIcon:t=r.expandIcon||n6(v.value),pagination:i,loading:a,bordered:o}=e,f,b;if(i!==!1&&te.value?.total){let e;e=te.value.size?te.value.size:c.value===`small`||c.value===`middle`?`small`:void 0;let t=t=>W(tZ,h(h({},te.value),{},{class:[`${d.value}-pagination ${d.value}-pagination-${t}`,te.value.class],size:e}),null),n=u.value===`rtl`?`left`:`right`,{position:r}=te.value;if(r!==null&&Array.isArray(r)){let e=r.find(e=>e.includes(`top`)),i=r.find(e=>e.includes(`bottom`)),a=r.every(e=>`${e}`==`none`);!e&&!i&&!a&&(b=t(n)),e&&(f=t(e.toLowerCase().replace(`top`,``))),i&&(b=t(i.toLowerCase().replace(`bottom`,``)))}else b=t(n)}let x;typeof a==`boolean`?x={spinning:a}:typeof a==`object`&&(x=g({spinning:!0},a));let S=K(`${d.value}-wrapper`,{[`${d.value}-wrapper-rtl`]:u.value===`rtl`},n.class,m.value),E=sm(e,[`columns`]);return p(W(`div`,{class:S,style:n.style},[W(EX,h({spinning:!1},x),{default:()=>[f,W(V2,h(h(h({},n),E),{},{expandedRowKeys:e.expandedRowKeys,defaultExpandedRowKeys:e.defaultExpandedRowKeys,expandIconColumnIndex:re.value,indentSize:ce.value,expandIcon:t,columns:s.value,direction:u.value,prefixCls:d.value,class:K({[`${d.value}-middle`]:c.value===`middle`,[`${d.value}-small`]:c.value===`small`,[`${d.value}-bordered`]:o,[`${d.value}-empty`]:y.value.length===0}),data:z.value,rowKey:T.value,rowClassName:se,internalHooks:B2,internalRefs:C,onUpdateInternalRefs:w,transformColumns:le,transformCellText:_.value}),g(g({},r),{emptyText:()=>r.emptyText?.call(r)||e.locale?.emptyText||l(`Table`)})),b]})]))}}}),T6=U({name:`ATable`,inheritAttrs:!1,props:Bc(C6(),{rowKey:`key`}),slots:Object,setup(e,t){let{attrs:n,slots:r,expose:i}=t,a=B();return i({table:a}),()=>{let t=e.columns||d4(r.default?.call(r));return W(w6,h(h(h({ref:a},n),e),{},{columns:t||[],expandedRowRender:r.expandedRowRender||e.expandedRowRender,contextSlots:g({},r)}),r)}}}),E6=U({name:`ATableColumn`,slots:Object,render(){return null}}),D6=U({name:`ATableColumnGroup`,slots:Object,__ANT_TABLE_COLUMN_GROUP:!0,render(){return null}}),O6=C2,k6=D2,A6=g(k2,{Cell:k6,Row:O6,name:`ATableSummary`}),j6=g(T6,{SELECTION_ALL:q2,SELECTION_INVERT:J2,SELECTION_NONE:Y2,SELECTION_COLUMN:K2,EXPAND_COLUMN:u2,Column:E6,ColumnGroup:D6,Summary:A6,install:e=>(e.component(A6.name,A6),e.component(k6.name,k6),e.component(O6.name,O6),e.component(T6.name,T6),e.component(E6.name,E6),e.component(D6.name,D6),e)}),M6=U({compatConfig:{MODE:3},name:`Search`,inheritAttrs:!1,props:Bc({prefixCls:String,placeholder:String,value:String,handleClear:Function,disabled:{type:Boolean,default:void 0},onChange:Function},{placeholder:``}),emits:[`change`],setup(e,t){let{emit:n}=t,r=t=>{var r;n(`change`,t),t.target.value===``&&((r=e.handleClear)==null||r.call(e))};return()=>{let{placeholder:t,value:n,prefixCls:i,disabled:a}=e;return W($q,{placeholder:t,class:i,value:n,onChange:r,disabled:a,allowClear:!0},{prefix:()=>W(ZC,null,null)})}}}),N6={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z`}}]},name:`delete`,theme:`outlined`};function P6(e){for(var t=1;t{let{renderedText:t,renderedEl:r,item:i,checked:a,disabled:o,prefixCls:s,showRemove:c}=e,l=K({[`${s}-content-item`]:!0,[`${s}-content-item-disabled`]:o||i.disabled}),u;return(typeof t==`string`||typeof t==`number`)&&(u=String(t)),W(eu,{componentName:`Transfer`,defaultLocale:Zl.Transfer},{default:e=>{let t=W(`span`,{class:`${s}-content-item-text`},[r]);return c?W(`li`,{class:l,title:u},[t,W(NQ,{disabled:o||i.disabled,class:`${s}-content-item-remove`,"aria-label":e.remove,onClick:()=>{n(`remove`,i)}},{default:()=>[W(I6,null,null)]})]):W(`li`,{class:l,title:u,onClick:o||i.disabled?L6:()=>{n(`click`,i)}},[W(hU,{class:`${s}-checkbox`,checked:a,disabled:o||i.disabled},null),t])}})}}}),z6={prefixCls:String,filteredRenderItems:Q.array.def([]),selectedKeys:Q.array,disabled:J(),showRemove:J(),pagination:Q.any,onItemSelect:Function,onScroll:Function,onItemRemove:Function};function B6(e){if(!e)return null;let t={pageSize:10,simple:!0,showSizeChanger:!1,showLessItems:!1};return typeof e==`object`?g(g({},t),e):t}var V6=U({compatConfig:{MODE:3},name:`ListBody`,inheritAttrs:!1,props:z6,emits:[`itemSelect`,`itemRemove`,`scroll`],setup(e,t){let{emit:n,expose:r}=t,i=B(1),a=t=>{let{selectedKeys:r}=e,i=r.indexOf(t.key)>=0;n(`itemSelect`,t.key,!i)},o=e=>{n(`itemRemove`,[e.key])},s=e=>{n(`scroll`,e)},c=G(()=>B6(e.pagination));H([c,()=>e.filteredRenderItems],()=>{if(c.value){let t=Math.ceil(e.filteredRenderItems.length/c.value.pageSize);i.value=Math.min(i.value,t)}},{immediate:!0});let l=G(()=>{let{filteredRenderItems:t}=e,n=t;return c.value&&(n=t.slice((i.value-1)*c.value.pageSize,i.value*c.value.pageSize)),n}),u=e=>{i.value=e};return r({items:l}),()=>{let{prefixCls:t,filteredRenderItems:n,selectedKeys:r,disabled:d,showRemove:f}=e,p=null;c.value&&(p=W(tZ,{simple:c.value.simple,showSizeChanger:c.value.showSizeChanger,showLessItems:c.value.showLessItems,size:`small`,disabled:d,class:`${t}-pagination`,total:n.length,pageSize:c.value.pageSize,current:i.value,onChange:u},null));let m=l.value.map(e=>{let{renderedEl:n,renderedText:i,item:s}=e,{disabled:c}=s,l=r.indexOf(s.key)>=0;return W(R6,{disabled:d||c,key:s.key,item:s,renderedText:i,renderedEl:n,checked:l,prefixCls:t,onClick:a,onRemove:o,showRemove:f},null)});return W(Ma,null,[W(`ul`,{class:K(`${t}-content`,{[`${t}-content-show-remove`]:f}),onScroll:s},[m]),p])}}}),H6=e=>{let t=new Map;return e.forEach((e,n)=>{t.set(e,n)}),t},U6=e=>{let t=new Map;return e.forEach((e,n)=>{let{disabled:r,key:i}=e;r&&t.set(i,n)}),t},die=()=>null;function fie(e){return!(!e||al(e)||Object.prototype.toString.call(e)!==`[object Object]`)}function W6(e){return e.filter(e=>!e.disabled).map(e=>e.key)}var G6=U({compatConfig:{MODE:3},name:`TransferList`,inheritAttrs:!1,props:{prefixCls:String,dataSource:xl([]),filter:String,filterOption:Function,checkedKeys:Q.arrayOf(Q.string),handleFilter:Function,handleClear:Function,renderItem:Function,showSearch:J(!1),searchPlaceholder:String,notFoundContent:Q.any,itemUnit:String,itemsUnit:String,renderList:Q.any,disabled:J(),direction:X(),showSelectAll:J(),remove:String,selectAll:String,selectCurrent:String,selectInvert:String,removeAll:String,removeCurrent:String,selectAllLabel:Q.any,showRemove:J(),pagination:Q.any,onItemSelect:Function,onItemSelectAll:Function,onItemRemove:Function,onScroll:Function},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,i=B(``),a=B(),o=B(),s=(e,t)=>{let n=e?e(t):null,r=!!n&&rl(n).length>0;return r||(n=W(V6,h(h({},t),{},{ref:o}),null)),{customize:r,bodyContent:n}},c=t=>{let{renderItem:n=die}=e,r=n(t),i=fie(r);return{renderedText:i?r.value:r,renderedEl:i?r.label:r,item:t}},l=B([]),u=B([]);ar(()=>{let t=[],n=[];e.dataSource.forEach(e=>{let r=c(e),{renderedText:a}=r;if(i.value&&i.value.trim()&&!y(a,e))return null;t.push(e),n.push(r)}),l.value=t,u.value=n});let d=G(()=>{let{checkedKeys:t}=e;if(t.length===0)return`none`;let n=H6(t);return l.value.every(e=>n.has(e.key)||!!e.disabled)?`all`:`part`}),f=G(()=>W6(l.value)),p=(t,n)=>Array.from(new Set([...t,...e.checkedKeys])).filter(e=>n.indexOf(e)===-1),m=t=>{let{disabled:n,prefixCls:r}=t,i=d.value===`all`;return W(hU,{disabled:e.dataSource?.length===0||n,checked:i,indeterminate:d.value===`part`,class:`${r}-checkbox`,onChange:()=>{let t=f.value;e.onItemSelectAll(p(i?[]:t,i?e.checkedKeys:[]))}},null)},_=t=>{var n;let{target:{value:r}}=t;i.value=r,(n=e.handleFilter)==null||n.call(e,t)},v=t=>{var n;i.value=``,(n=e.handleClear)==null||n.call(e,t)},y=(t,n)=>{let{filterOption:r}=e;return r?r(i.value,n):t.includes(i.value)},b=(t,n)=>{let{itemsUnit:r,itemUnit:i,selectAllLabel:a}=e;if(a)return typeof a==`function`?a({selectedCount:t,totalCount:n}):a;let o=n>1?r:i;return W(Ma,null,[(t>0?`${t}/`:``)+n,Qa(` `),o])},x=G(()=>Array.isArray(e.notFoundContent)?e.notFoundContent[e.direction===`left`?0:1]:e.notFoundContent),S=(t,r,o,c,d,f)=>{let p=d?W(`div`,{class:`${t}-body-search-wrapper`},[W(M6,{prefixCls:`${t}-search`,onChange:_,handleClear:v,placeholder:r,value:i.value,disabled:f},null)]):null,m,{onEvents:h}=Vc(n),{bodyContent:y,customize:b}=s(c,g(g(g({},e),{filteredItems:l.value,filteredRenderItems:u.value,selectedKeys:o}),h));return m=b?W(`div`,{class:`${t}-body-customize-wrapper`},[y]):l.value.length?y:W(`div`,{class:`${t}-body-not-found`},[x.value]),W(`div`,{class:d?`${t}-body ${t}-body-with-search`:`${t}-body`,ref:a},[p,m])};return()=>{let{prefixCls:t,checkedKeys:i,disabled:a,showSearch:s,searchPlaceholder:c,selectAll:u,selectCurrent:d,selectInvert:h,removeAll:_,removeCurrent:v,renderList:y,onItemSelectAll:x,onItemRemove:C,showSelectAll:w=!0,showRemove:T,pagination:E}=e,D=r.footer?.call(r,g({},e)),O=K(t,{[`${t}-with-pagination`]:!!E,[`${t}-with-footer`]:!!D}),k=S(t,c,i,y,s,a),A=D?W(`div`,{class:`${t}-footer`},[D]):null,j=!T&&!E&&m({disabled:a,prefixCls:t}),M=null;M=T?W(EM,null,{default:()=>[E&&W(EM.Item,{key:`removeCurrent`,onClick:()=>{let e=W6((o.value.items||[]).map(e=>e.item));C?.(e)}},{default:()=>[v]}),W(EM.Item,{key:`removeAll`,onClick:()=>{C?.(f.value)}},{default:()=>[_]})]}):W(EM,null,{default:()=>[W(EM.Item,{key:`selectAll`,onClick:()=>{let e=f.value;x(p(e,[]))}},{default:()=>[u]}),E&&W(EM.Item,{onClick:()=>{let e=W6((o.value.items||[]).map(e=>e.item));x(p(e,[]))}},{default:()=>[d]}),W(EM.Item,{key:`selectInvert`,onClick:()=>{let e;e=E?W6((o.value.items||[]).map(e=>e.item)):f.value;let t=new Set(i),n=[],r=[];e.forEach(e=>{t.has(e)?r.push(e):n.push(e)}),x(p(n,r))}},{default:()=>[h]})]});let N=W(pK,{class:`${t}-header-dropdown`,overlay:M,disabled:a},{default:()=>[W(jC,null,null)]});return W(`div`,{class:O,style:n.style},[W(`div`,{class:`${t}-header`},[w?W(Ma,null,[j,N]):null,W(`span`,{class:`${t}-header-selected`},[W(`span`,null,[b(i.length,l.value.length)]),W(`span`,{class:`${t}-header-title`},[r.titleText?.call(r)])])]),k,A])}}});function K6(){}var q6=e=>{let{disabled:t,moveToLeft:n=K6,moveToRight:r=K6,leftArrowText:i=``,rightArrowText:a=``,leftActive:o,rightActive:s,class:c,style:l,direction:u,oneWay:d}=e;return W(`div`,{class:c,style:l},[W(Oj,{type:`primary`,size:`small`,disabled:t||!s,onClick:r,icon:W(u===`rtl`?bB:Ij,null,null)},{default:()=>[a]}),!d&&W(Oj,{type:`primary`,size:`small`,disabled:t||!o,onClick:n,icon:W(u===`rtl`?Ij:bB,null,null)},{default:()=>[i]})])};q6.displayName=`Operation`,q6.inheritAttrs=!1;var pie=e=>{let{antCls:t,componentCls:n,listHeight:r,controlHeightLG:i,marginXXS:a,margin:o}=e,s=`${t}-table`,c=`${t}-input`;return{[`${n}-customize-list`]:{[`${n}-list`]:{flex:`1 1 50%`,width:`auto`,height:`auto`,minHeight:r},[`${s}-wrapper`]:{[`${s}-small`]:{border:0,borderRadius:0,[`${s}-selection-column`]:{width:i,minWidth:i}},[`${s}-pagination${s}-pagination`]:{margin:`${o}px 0 ${a}px`}},[`${c}[disabled]`]:{backgroundColor:`transparent`}}}},J6=(e,t)=>{let{componentCls:n,colorBorder:r}=e;return{[`${n}-list`]:{borderColor:t,"&-search:not([disabled])":{borderColor:r}}}},mie=e=>{let{componentCls:t}=e;return{[`${t}-status-error`]:g({},J6(e,e.colorError)),[`${t}-status-warning`]:g({},J6(e,e.colorWarning))}},hie=e=>{let{componentCls:t,colorBorder:n,colorSplit:r,lineWidth:i,transferItemHeight:a,transferHeaderHeight:o,transferHeaderVerticalPadding:s,transferItemPaddingVertical:c,controlItemBgActive:l,controlItemBgActiveHover:u,colorTextDisabled:d,listHeight:f,listWidth:p,listWidthLG:m,fontSizeIcon:h,marginXS:_,paddingSM:v,lineType:y,iconCls:b,motionDurationSlow:x}=e;return{display:`flex`,flexDirection:`column`,width:p,height:f,border:`${i}px ${y} ${n}`,borderRadius:e.borderRadiusLG,"&-with-pagination":{width:m,height:`auto`},"&-search":{[`${b}-search`]:{color:d}},"&-header":{display:`flex`,flex:`none`,alignItems:`center`,height:o,padding:`${s-i}px ${v}px ${s}px`,color:e.colorText,background:e.colorBgContainer,borderBottom:`${i}px ${y} ${r}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,"> *:not(:last-child)":{marginInlineEnd:4},"> *":{flex:`none`},"&-title":g(g({},Dp),{flex:`auto`,textAlign:`end`}),"&-dropdown":g(g({},kp()),{fontSize:h,transform:`translateY(10%)`,cursor:`pointer`,"&[disabled]":{cursor:`not-allowed`}})},"&-body":{display:`flex`,flex:`auto`,flexDirection:`column`,overflow:`hidden`,fontSize:e.fontSize,"&-search-wrapper":{position:`relative`,flex:`none`,padding:v}},"&-content":{flex:`auto`,margin:0,padding:0,overflow:`auto`,listStyle:`none`,"&-item":{display:`flex`,alignItems:`center`,minHeight:a,padding:`${c}px ${v}px`,transition:`all ${x}`,"> *:not(:last-child)":{marginInlineEnd:_},"> *":{flex:`none`},"&-text":g(g({},Dp),{flex:`auto`}),"&-remove":{position:`relative`,color:n,cursor:`pointer`,transition:`all ${x}`,"&:hover":{color:e.colorLinkHover},"&::after":{position:`absolute`,insert:`-${c}px -50%`,content:`""`}},[`&:not(${t}-list-content-item-disabled)`]:{"&:hover":{backgroundColor:e.controlItemBgHover,cursor:`pointer`},[`&${t}-list-content-item-checked:hover`]:{backgroundColor:u}},"&-checked":{backgroundColor:l},"&-disabled":{color:d,cursor:`not-allowed`}},[`&-show-remove ${t}-list-content-item:not(${t}-list-content-item-disabled):hover`]:{background:`transparent`,cursor:`default`}},"&-pagination":{padding:`${e.paddingXS}px 0`,textAlign:`end`,borderTop:`${i}px ${y} ${r}`},"&-body-not-found":{flex:`none`,width:`100%`,margin:`auto 0`,color:d,textAlign:`center`},"&-footer":{borderTop:`${i}px ${y} ${r}`},"&-checkbox":{lineHeight:1}}},gie=e=>{let{antCls:t,iconCls:n,componentCls:r,transferHeaderHeight:i,marginXS:a,marginXXS:o,fontSizeIcon:s,fontSize:c,lineHeight:l}=e;return{[r]:g(g({},Op(e)),{position:`relative`,display:`flex`,alignItems:`stretch`,[`${r}-disabled`]:{[`${r}-list`]:{background:e.colorBgContainerDisabled}},[`${r}-list`]:hie(e),[`${r}-operation`]:{display:`flex`,flex:`none`,flexDirection:`column`,alignSelf:`center`,margin:`0 ${a}px`,verticalAlign:`middle`,[`${t}-btn`]:{display:`block`,"&:first-child":{marginBottom:o},[n]:{fontSize:s}}},[`${t}-empty-image`]:{maxHeight:i/2-Math.round(c*l)}})}},_ie=e=>{let{componentCls:t}=e;return{[`${t}-rtl`]:{direction:`rtl`}}},vie=Fp(`Transfer`,e=>{let{fontSize:t,lineHeight:n,lineWidth:r,controlHeightLG:i,controlHeight:a}=e,o=Math.round(t*n),s=i,c=a,l=Rp(e,{transferItemHeight:c,transferHeaderHeight:s,transferHeaderVerticalPadding:Math.ceil((s-r-o)/2),transferItemPaddingVertical:(c-o)/2});return[gie(l),pie(l),mie(l),_ie(l)]},{listWidth:180,listHeight:200,listWidthLG:250}),yie=_l(U({compatConfig:{MODE:3},name:`ATransfer`,inheritAttrs:!1,props:{id:String,prefixCls:String,dataSource:xl([]),disabled:J(),targetKeys:xl(),selectedKeys:xl(),render:Y(),listStyle:Sl([Function,Object],()=>({})),operationStyle:q(void 0),titles:xl(),operations:xl(),showSearch:J(!1),filterOption:Y(),searchPlaceholder:String,notFoundContent:Q.any,locale:q(),rowKey:Y(),showSelectAll:J(),selectAllLabels:xl(),children:Y(),oneWay:J(),pagination:Sl([Object,Boolean]),status:X(),onChange:Y(),onSelectChange:Y(),onSearch:Y(),onScroll:Y(),"onUpdate:targetKeys":Y(),"onUpdate:selectedKeys":Y()},slots:Object,setup(e,t){let{emit:n,attrs:r,slots:i,expose:a}=t,{configProvider:o,prefixCls:s,direction:c}=Z(`transfer`,e),[l,u]=vie(s),d=B([]),f=B([]),p=aw(),m=sw.useInject(),_=G(()=>uw(m.status,e.status));H(()=>e.selectedKeys,()=>{d.value=e.selectedKeys?.filter(t=>e.targetKeys.indexOf(t)===-1)||[],f.value=e.selectedKeys?.filter(t=>e.targetKeys.indexOf(t)>-1)||[]},{immediate:!0});let v=(t,n)=>{let r={notFoundContent:n(`Transfer`)},a=ol(i,e,`notFoundContent`);return a&&(r.notFoundContent=a),e.searchPlaceholder!==void 0&&(r.searchPlaceholder=e.searchPlaceholder),g(g(g({},t),r),e.locale)},y=t=>{let{targetKeys:r=[],dataSource:i=[]}=e,a=t===`right`?d.value:f.value,o=U6(i),s=a.filter(e=>!o.has(e)),c=H6(s),l=t===`right`?s.concat(r):r.filter(e=>!c.has(e)),u=t===`right`?`left`:`right`;t===`right`?d.value=[]:f.value=[],n(`update:targetKeys`,l),T(u,[]),n(`change`,l,t,s),p.onFieldChange()},b=()=>{y(`left`)},x=()=>{y(`right`)},S=(e,t)=>{T(e,t)},C=e=>S(`left`,e),w=e=>S(`right`,e),T=(t,r)=>{t===`left`?(e.selectedKeys||(d.value=r),n(`update:selectedKeys`,[...r,...f.value]),n(`selectChange`,r,rn(f.value))):(e.selectedKeys||(f.value=r),n(`update:selectedKeys`,[...r,...d.value]),n(`selectChange`,rn(d.value),r))},E=(e,t)=>{let r=t.target.value;n(`search`,e,r)},D=e=>{E(`left`,e)},O=e=>{E(`right`,e)},k=e=>{n(`search`,e,``)},A=()=>{k(`left`)},j=()=>{k(`right`)},M=(e,t,n)=>{let r=e===`left`?[...d.value]:[...f.value],i=r.indexOf(t);i>-1&&r.splice(i,1),n&&r.push(t),T(e,r)},N=(e,t)=>M(`left`,e,t),P=(e,t)=>M(`right`,e,t),F=t=>{let{targetKeys:r=[]}=e,i=r.filter(e=>!t.includes(e));n(`update:targetKeys`,i),n(`change`,i,`left`,[...t])},I=(e,t)=>{n(`scroll`,e,t)},L=e=>{I(`left`,e)},R=e=>{I(`right`,e)},ee=(e,t)=>typeof e==`function`?e({direction:t}):e,te=B([]),ne=B([]);ar(()=>{let{dataSource:t,rowKey:n,targetKeys:r=[]}=e,i=[],a=Array(r.length),o=H6(r);t.forEach(e=>{n&&(e.key=n(e)),o.has(e.key)?a[o.get(e.key)]=e:i.push(e)}),te.value=i,ne.value=a}),a({handleSelectChange:T});let z=t=>{let{disabled:n,operations:a=[],showSearch:l,listStyle:g,operationStyle:y,filterOption:S,showSelectAll:T,selectAllLabels:E=[],oneWay:k,pagination:M,id:I=p.id.value}=e,{class:z,style:re}=r,ie=i.children,ae=!ie&&M,oe=o.renderEmpty,se=v(t,oe),{footer:ce}=i,le=e.render||i.render,ue=f.value.length>0,de=d.value.length>0,fe=K(s.value,z,{[`${s.value}-disabled`]:n,[`${s.value}-customize-list`]:!!ie,[`${s.value}-rtl`]:c.value===`rtl`},lw(s.value,_.value,m.hasFeedback),u.value),pe=e.titles,me=(pe&&pe[0])??i.leftTitle?.call(i)??(se.titles||[``,``])[0],he=(pe&&pe[1])??i.rightTitle?.call(i)??(se.titles||[``,``])[1];return W(`div`,h(h({},r),{},{class:fe,style:re,id:I}),[W(G6,h({key:`leftList`,prefixCls:`${s.value}-list`,dataSource:te.value,filterOption:S,style:ee(g,`left`),checkedKeys:d.value,handleFilter:D,handleClear:A,onItemSelect:N,onItemSelectAll:C,renderItem:le,showSearch:l,renderList:ie,onScroll:L,disabled:n,direction:c.value===`rtl`?`right`:`left`,showSelectAll:T,selectAllLabel:E[0]||i.leftSelectAllLabel,pagination:ae},se),{titleText:()=>me,footer:ce}),W(q6,{key:`operation`,class:`${s.value}-operation`,rightActive:de,rightArrowText:a[0],moveToRight:x,leftActive:ue,leftArrowText:a[1],moveToLeft:b,style:y,disabled:n,direction:c.value,oneWay:k},null),W(G6,h({key:`rightList`,prefixCls:`${s.value}-list`,dataSource:ne.value,filterOption:S,style:ee(g,`right`),checkedKeys:f.value,handleFilter:O,handleClear:j,onItemSelect:P,onItemSelectAll:w,onItemRemove:F,renderItem:le,showSearch:l,renderList:ie,onScroll:R,disabled:n,direction:c.value===`rtl`?`left`:`right`,showSelectAll:T,selectAllLabel:E[1]||i.rightSelectAllLabel,showRemove:k,pagination:ae},se),{titleText:()=>he,footer:ce})])};return()=>l(W(eu,{componentName:`Transfer`,defaultLocale:Zl.Transfer,children:z},null))}}));function bie(e){return Array.isArray(e)?e:e===void 0?[]:[e]}function xie(e){let{label:t,value:n,children:r}=e||{},i=n||`value`;return{_title:t?[t]:[`title`,`label`],value:i,key:i,children:r||`children`}}function Y6(e){return e.disabled||e.disableCheckbox||e.checkable===!1}function Sie(e,t){let n=[];function r(e){e.forEach(e=>{n.push(e[t.value]);let i=e[t.children];i&&r(i)})}return r(e),n}function X6(e){return e==null}var Z6=Symbol(`TreeSelectContextPropsKey`);function Cie(e){return er(Z6,e)}function wie(){return tr(Z6,{})}var Tie={width:0,height:0,display:`flex`,overflow:`hidden`,opacity:0,border:0,padding:0,margin:0},Eie=U({compatConfig:{MODE:3},name:`OptionList`,inheritAttrs:!1,setup(e,t){let{slots:n,expose:r}=t,i=Cx(),a=lx(),o=wie(),s=B(),c=Xx(()=>o.treeData,[()=>i.open,()=>o.treeData],e=>e[0]),l=G(()=>{let{checkable:e,halfCheckedKeys:t,checkedKeys:n}=a;return e?{checked:n,halfChecked:t}:null});H(()=>i.open,()=>{zn(()=>{var e;i.open&&!i.multiple&&a.checkedKeys.length&&((e=s.value)==null||e.scrollTo({key:a.checkedKeys[0]}))})},{immediate:!0,flush:`post`});let u=G(()=>String(i.searchValue).toLowerCase()),d=e=>u.value?String(e[a.treeNodeFilterProp]).toLowerCase().includes(u.value):!1,f=V(a.treeDefaultExpandedKeys),p=V(null);H(()=>i.searchValue,()=>{i.searchValue&&(p.value=Sie(rn(o.treeData),rn(o.fieldNames)))},{immediate:!0});let m=G(()=>a.treeExpandedKeys?a.treeExpandedKeys.slice():i.searchValue?p.value:f.value),_=e=>{var t;f.value=e,p.value=e,(t=a.onTreeExpand)==null||t.call(a,e)},v=e=>{e.preventDefault()},y=(e,t)=>{let{node:n}=t;var r,s;let{checkable:c,checkedKeys:l}=a;c&&Y6(n)||((r=o.onSelect)==null||r.call(o,n.key,{selected:!l.includes(n.key)}),i.multiple||(s=i.toggleOpen)==null||s.call(i,!1))},b=B(null),x=G(()=>a.keyEntities[b.value]),S=e=>{b.value=e};return r({scrollTo:function(){var e,t=[...arguments];return((e=s.value)?.scrollTo)?.call(e,...t)},onKeydown:e=>{var t;let{which:n}=e;switch(n){case $.UP:case $.DOWN:case $.LEFT:case $.RIGHT:(t=s.value)==null||t.onKeydown(e);break;case $.ENTER:if(x.value){let{selectable:e,value:t}=x.value.node||{};e!==!1&&y(null,{node:{key:b.value},selected:!a.checkedKeys.includes(t)})}break;case $.ESC:i.toggleOpen(!1)}},onKeyup:()=>{}}),()=>{let{prefixCls:e,multiple:t,searchValue:r,open:u,notFoundContent:f=n.notFoundContent?.call(n)}=i,{listHeight:p,listItemHeight:C,virtual:w,dropdownMatchSelectWidth:T,treeExpandAction:E}=o,{checkable:D,treeDefaultExpandAll:O,treeIcon:k,showTreeIcon:A,switcherIcon:j,treeLine:M,loadData:N,treeLoadedKeys:P,treeMotion:F,onTreeLoad:I,checkedKeys:L}=a;if(c.value.length===0)return W(`div`,{role:`listbox`,class:`${e}-empty`,onMousedown:v},[f]);let R={fieldNames:o.fieldNames};return P&&(R.loadedKeys=P),m.value&&(R.expandedKeys=m.value),W(`div`,{onMousedown:v},[x.value&&u&&W(`span`,{style:Tie,"aria-live":`assertive`},[x.value.node.value]),W(q4,h(h({ref:s,focusable:!1,prefixCls:`${e}-tree`,treeData:c.value,height:p,itemHeight:C,virtual:w!==!1&&T!==!1,multiple:t,icon:k,showIcon:A,switcherIcon:j,showLine:M,loadData:r?null:N,motion:F,activeKey:b.value,checkable:D,checkStrictly:!0,checkedKeys:l.value,selectedKeys:D?[]:L,defaultExpandAll:O},R),{},{onActiveChange:S,onSelect:y,onCheck:y,onExpand:_,onLoad:I,filterTreeNode:d,expandAction:E}),g(g({},n),{checkable:a.customSlots.treeCheckable}))])}}}),Die=`SHOW_ALL`,Oie=`SHOW_PARENT`,Q6=`SHOW_CHILD`;function $6(e,t,n,r){let i=new Set(e);return t===`SHOW_CHILD`?e.filter(e=>{let t=n[e];return!(t&&t.children&&t.children.some(e=>{let{node:t}=e;return i.has(t[r.value])})&&t.children.every(e=>{let{node:t}=e;return Y6(t)||i.has(t[r.value])}))}):t===`SHOW_PARENT`?e.filter(e=>{let t=n[e],r=t?t.parent:null;return!(r&&!Y6(r.node)&&i.has(r.key))}):e}var e8=()=>null;e8.inheritAttrs=!1,e8.displayName=`ATreeSelectNode`,e8.isTreeSelectNode=!0;var kie=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i0&&arguments[0]!==void 0?arguments[0]:[]).map(e=>{if(!Aie(e))return null;let n=e.children||{},r=e.key,i={};for(let[t,n]of Object.entries(e.props))i[oc(t)]=n;let{isLeaf:a,checkable:o,selectable:s,disabled:c,disableCheckbox:l}=i,u={isLeaf:a||a===``||void 0,checkable:o||o===``||void 0,selectable:s||s===``||void 0,disabled:c||c===``||void 0,disableCheckbox:l||l===``||void 0},d=g(g({},i),u),{title:f=n.title?.call(n,d),switcherIcon:p=n.switcherIcon?.call(n,d)}=i,m=kie(i,[`title`,`switcherIcon`]),h=n.default?.call(n),_=g(g(g({},m),{title:f,switcherIcon:p,key:r,isLeaf:a}),u),v=t(h);return v.length&&(_.children=v),_})}return t(e)}function t8(e){if(!e)return e;let t=g({},e);return`props`in t||Object.defineProperty(t,"props",{get(){return t}}),t}function Mie(e,t,n,r,i,a){let o=null,s=null;function c(){function e(r){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`0`,c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return r.map((r,l)=>{let u=`${i}-${l}`,d=r[a.value],f=n.includes(d),p=e(r[a.children]||[],u,f),m=W(e8,r,{default:()=>[p.map(e=>e.node)]});if(t===d&&(o=m),f){let e={pos:u,node:m,children:p};return c||s.push(e),e}return null}).filter(e=>e)}s||(s=[],e(r),s.sort((e,t)=>{let{node:{props:{value:r}}}=e,{node:{props:{value:i}}}=t;return n.indexOf(r)-n.indexOf(i)}))}Object.defineProperty(e,"triggerNode",{get(){return c(),o}}),Object.defineProperty(e,"allCheckedNodes",{get(){return c(),i?s:s.map(e=>{let{node:t}=e;return t})}})}function Nie(e,t){let{id:n,pId:r,rootPId:i}=t,a={},o=[];return e.map(e=>{let t=g({},e),r=t[n];return a[r]=t,t.key=t.key||r,t}).forEach(e=>{let t=e[r],n=a[t];n&&(n.children=n.children||[],n.children.push(e)),(t===i||!n&&i===null)&&o.push(e)}),o}function Pie(e,t,n){let r=V();return H([n,e,t],()=>{let i=n.value;e.value?r.value=n.value?Nie(rn(e.value),g({id:`id`,pId:`pId`,rootPId:null},i===!0?{}:i)):rn(e.value).slice():r.value=jie(rn(t.value))},{immediate:!0,deep:!0}),r}var Fie=(e=>{let t=V({valueLabels:new Map}),n=V();return H(e,()=>{n.value=rn(e.value)},{immediate:!0}),[G(()=>{let{valueLabels:e}=t.value,r=new Map,i=n.value.map(t=>{let{value:n}=t,i=t.label??e.get(n);return r.set(n,i),g(g({},t),{label:i})});return t.value.valueLabels=r,i})]}),Iie=((e,t)=>{let n=V(new Map),r=V({});return ar(()=>{let i=t.value,a=Rz(e.value,{fieldNames:i,initWrapper:e=>g(g({},e),{valueEntities:new Map}),processEntity:(e,t)=>{let n=e.node[i.value];t.valueEntities.set(n,e)}});n.value=a.valueEntities,r.value=a.keyEntities}),{valueEntities:n,keyEntities:r}}),Lie=((e,t,n,r,i,a)=>{let o=V([]),s=V([]);return ar(()=>{let c=e.value.map(e=>{let{value:t}=e;return t}),l=t.value.map(e=>{let{value:t}=e;return t}),u=c.filter(e=>!r.value[e]);n.value&&({checkedKeys:c,halfCheckedKeys:l}=eB(c,!0,r.value,i.value,a.value)),o.value=Array.from(new Set([...u,...c])),s.value=l}),[o,s]}),Rie=((e,t,n)=>{let{treeNodeFilterProp:r,filterTreeNode:i,fieldNames:a}=n;return G(()=>{let{children:n}=a.value,o=t.value,s=r?.value;if(!o||i.value===!1)return e.value;let c;if(typeof i.value==`function`)c=i.value;else{let e=o.toUpperCase();c=(t,n)=>{let r=n[s];return String(r).toUpperCase().includes(e)}}function l(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],r=[];for(let i=0,a=e.length;ie.treeCheckable&&!e.treeCheckStrictly),s=G(()=>e.treeCheckable||e.treeCheckStrictly),c=G(()=>e.treeCheckStrictly||e.labelInValue),l=G(()=>s.value||e.multiple),u=G(()=>xie(e.fieldNames)),[d,f]=gS(``,{value:G(()=>e.searchValue===void 0?e.inputValue:e.searchValue),postState:e=>e||``}),p=t=>{var n;f(t),(n=e.onSearch)==null||n.call(e,t)},m=Pie(vn(e,`treeData`),vn(e,`children`),vn(e,`treeDataSimpleMode`)),{keyEntities:_,valueEntities:v}=Iie(m,u),y=e=>{let t=[],n=[];return e.forEach(e=>{v.value.has(e)?n.push(e):t.push(e)}),{missingRawValues:t,existRawValues:n}},b=Rie(m,d,{fieldNames:u,treeNodeFilterProp:vn(e,`treeNodeFilterProp`),filterTreeNode:vn(e,`filterTreeNode`)}),x=t=>{if(t){if(e.treeNodeLabelProp)return t[e.treeNodeLabelProp];let{_title:n}=u.value;for(let e=0;ebie(e).map(e=>zie(e)?{value:e}:e),C=e=>S(e).map(e=>{let{label:t}=e,{value:n,halfChecked:r}=e,i,a=v.value.get(n);return a&&(t??=x(a.node),i=a.node.disabled),{label:t,value:n,halfChecked:r,disabled:i}}),[w,T]=gS(e.defaultValue,{value:vn(e,`value`)}),E=G(()=>S(w.value)),D=V([]),O=V([]);ar(()=>{let e=[],t=[];E.value.forEach(n=>{n.halfChecked?t.push(n):e.push(n)}),D.value=e,O.value=t});let k=G(()=>D.value.map(e=>e.value)),{maxLevel:A,levelEntities:j}=dB(_),[M,N]=Lie(D,O,o,_,A,j),[P]=Fie(G(()=>{let t=$6(M.value,e.showCheckedStrategy,_.value,u.value).map(e=>_.value[e]?.node?.[u.value.value]??e).map(e=>({value:e,label:D.value.find(t=>t.value===e)?.label})),n=C(t),r=n[0];return!l.value&&r&&X6(r.value)&&X6(r.label)?[]:n.map(e=>g(g({},e),{label:e.label??e.value}))})),F=(t,n,r)=>{let i=C(t);if(T(i),e.autoClearSearchValue&&f(``),e.onChange){let i=t;o.value&&(i=$6(t,e.showCheckedStrategy,_.value,u.value).map(e=>{let t=v.value.get(e);return t?t.node[u.value.value]:e}));let{triggerValue:a,selected:d}=n||{triggerValue:void 0,selected:void 0},f=i;if(e.treeCheckStrictly){let e=O.value.filter(e=>!i.includes(e.value));f=[...f,...e]}let p=C(f),h={preValue:D.value,triggerValue:a},g=!0;(e.treeCheckStrictly||r===`selection`&&!d)&&(g=!1),Mie(h,a,t,m.value,g,u.value),s.value?h.checked=d:h.selected=d;let y=c.value?p:p.map(e=>e.value);e.onChange(l.value?y:y[0],c.value?null:p.map(e=>e.label),h)}},I=(t,n)=>{let{selected:r,source:i}=n;var a,s;let c=rn(_.value),d=rn(v.value),f=c[t]?.node,p=f?.[u.value.value]??t;if(!l.value)F([p],{selected:!0,triggerValue:p},`option`);else{let e=r?[...k.value,p]:M.value.filter(e=>e!==p);if(o.value){let{missingRawValues:t,existRawValues:n}=y(e),i=n.map(e=>d.get(e).key),a;r?{checkedKeys:a}=eB(i,!0,c,A.value,j.value):{checkedKeys:a}=eB(i,{checked:!1,halfCheckedKeys:N.value},c,A.value,j.value),e=[...t,...a.map(e=>c[e].node[u.value.value])]}F(e,{selected:r,triggerValue:p},i||`option`)}r||!l.value?(a=e.onSelect)==null||a.call(e,p,t8(f)):(s=e.onDeselect)==null||s.call(e,p,t8(f))},L=t=>{if(e.onDropdownVisibleChange){let n={};Object.defineProperty(n,"documentClickClose",{get(){return!1}}),e.onDropdownVisibleChange(t,n)}},R=(e,t)=>{let n=e.map(e=>e.value);t.type===`clear`?F(n,{},`selection`):t.values.length&&I(t.values[0].value,{selected:!1,source:`selection`})},{treeNodeFilterProp:ee,loadData:te,treeLoadedKeys:ne,onTreeLoad:z,treeDefaultExpandAll:re,treeExpandedKeys:ie,treeDefaultExpandedKeys:ae,onTreeExpand:oe,virtual:se,listHeight:ce,listItemHeight:le,treeLine:ue,treeIcon:de,showTreeIcon:fe,switcherIcon:pe,treeMotion:me,customSlots:he,dropdownMatchSelectWidth:ge,treeExpandAction:_e}=hn(e);cx(Tx({checkable:s,loadData:te,treeLoadedKeys:ne,onTreeLoad:z,checkedKeys:M,halfCheckedKeys:N,treeDefaultExpandAll:re,treeExpandedKeys:ie,treeDefaultExpandedKeys:ae,onTreeExpand:oe,treeIcon:de,treeMotion:me,showTreeIcon:fe,switcherIcon:pe,treeLine:ue,treeNodeFilterProp:ee,keyEntities:_,customSlots:he})),Cie(Tx({virtual:se,listHeight:ce,listItemHeight:le,treeData:b,fieldNames:u,onSelect:I,dropdownMatchSelectWidth:ge,treeExpandAction:_e}));let ve=B();return r({focus(){var e;(e=ve.value)==null||e.focus()},blur(){var e;(e=ve.value)==null||e.blur()},scrollTo(e){var t;(t=ve.value)==null||t.scrollTo(e)}}),()=>{let t=sm(e,`id.prefixCls.customSlots.value.defaultValue.onChange.onSelect.onDeselect.searchValue.inputValue.onSearch.autoClearSearchValue.filterTreeNode.treeNodeFilterProp.showCheckedStrategy.treeNodeLabelProp.multiple.treeCheckable.treeCheckStrictly.labelInValue.fieldNames.treeDataSimpleMode.treeData.children.loadData.treeLoadedKeys.onTreeLoad.treeDefaultExpandAll.treeExpandedKeys.treeDefaultExpandedKeys.onTreeExpand.virtual.listHeight.listItemHeight.onDropdownVisibleChange.treeLine.treeIcon.showTreeIcon.switcherIcon.treeMotion`.split(`.`));return W(Mx,h(h(h({ref:ve},n),t),{},{id:a,prefixCls:e.prefixCls,mode:l.value?`multiple`:void 0,displayValues:P.value,onDisplayValuesChange:R,searchValue:d.value,onSearch:p,OptionList:Eie,emptyOptions:!m.value.length,onDropdownVisibleChange:L,tagRender:e.tagRender||i.tagRender,dropdownMatchSelectWidth:e.dropdownMatchSelectWidth??!0}),i)}}}),Vie=e=>{let{componentCls:t,treePrefixCls:n,colorBgElevated:r}=e,i=`.${n}`;return[{[`${t}-dropdown`]:[{padding:`${e.paddingXS}px ${e.paddingXS/2}px`},v3(n,Rp(e,{colorBgContainer:r})),{[i]:{borderRadius:0,"&-list-holder-inner":{alignItems:`stretch`,[`${i}-treenode`]:{[`${i}-node-content-wrapper`]:{flex:`auto`}}}}},ZH(`${n}-checkbox`,e),{"&-rtl":{direction:`rtl`,[`${i}-switcher${i}-switcher_close`]:{[`${i}-switcher-icon svg`]:{transform:`rotate(90deg)`}}}}]}]};function Hie(e,t){return Fp(`TreeSelect`,e=>[Vie(Rp(e,{treePrefixCls:t.value}))])(e)}var r8=(e,t,n)=>n===void 0?`${e}-${t}`:n;function Uie(){return g(g({},sm(n8(),[`showTreeIcon`,`treeMotion`,`inputIcon`,`getInputElement`,`treeLine`,`customSlots`])),{suffixIcon:Q.any,size:X(),bordered:J(),treeLine:Sl([Boolean,Object]),replaceFields:q(),placement:X(),status:X(),popupClassName:String,dropdownClassName:String,"onUpdate:value":Y(),"onUpdate:treeExpandedKeys":Y(),"onUpdate:searchValue":Y()})}var i8=U({compatConfig:{MODE:3},name:`ATreeSelect`,inheritAttrs:!1,props:Bc(Uie(),{choiceTransitionName:``,listHeight:256,treeIcon:!1,listItemHeight:26,bordered:!0}),slots:Object,setup(e,t){let{attrs:n,slots:r,expose:i,emit:a}=t;e.treeData===void 0&&r.default,wh(e.multiple!==!1||!e.treeCheckable,`TreeSelect`,"`multiple` will always be `true` when `treeCheckable` is true"),wh(e.replaceFields===void 0,`TreeSelect`,"`replaceFields` is deprecated, please use fieldNames instead"),wh(!e.dropdownClassName,`TreeSelect`,"`dropdownClassName` is deprecated. Please use `popupClassName` instead.");let o=aw(),s=sw.useInject(),c=G(()=>uw(s.status,e.status)),{prefixCls:l,renderEmpty:u,direction:d,virtual:f,dropdownMatchSelectWidth:p,size:m,getPopupContainer:_,getPrefixCls:v,disabled:y}=Z(`select`,e),{compactSize:b,compactItemClassnames:x}=kO(l,d),S=G(()=>b.value||m.value),C=Ul(),w=G(()=>y.value??C.value),T=G(()=>v()),E=G(()=>e.placement===void 0?d.value===`rtl`?`bottomRight`:`bottomLeft`:e.placement),D=G(()=>r8(T.value,tb(E.value),e.transitionName)),O=G(()=>r8(T.value,``,e.choiceTransitionName)),k=G(()=>v(`select-tree`,e.prefixCls)),A=G(()=>v(`tree-select`,e.prefixCls)),[j,M]=Fk(l),[N]=Hie(A,k),P=G(()=>K(e.popupClassName||e.dropdownClassName,`${A.value}-dropdown`,{[`${A.value}-dropdown-rtl`]:d.value===`rtl`},M.value)),F=G(()=>!!(e.treeCheckable||e.multiple)),I=G(()=>e.showArrow===void 0?e.loading||!F.value:e.showArrow),L=B();i({focus(){var e,t;(t=(e=L.value).focus)==null||t.call(e)},blur(){var e,t;(t=(e=L.value).blur)==null||t.call(e)}});let R=function(){var e=[...arguments];a(`update:value`,e[0]),a(`change`,...e),o.onFieldChange()},ee=e=>{a(`update:treeExpandedKeys`,e),a(`treeExpand`,e)},te=e=>{a(`update:searchValue`,e),a(`search`,e)},ne=e=>{a(`blur`,e),o.onFieldBlur()};return()=>{let{notFoundContent:t=r.notFoundContent?.call(r),prefixCls:i,bordered:a,listHeight:m,listItemHeight:v,multiple:y,treeIcon:b,treeLine:C,showArrow:T,switcherIcon:z=r.switcherIcon?.call(r),fieldNames:re=e.replaceFields,id:ie=o.id.value,placeholder:ae=r.placeholder?.call(r)}=e,{isFormItemInput:oe,hasFeedback:se,feedbackIcon:ce}=s,{suffixIcon:le,removeIcon:ue,clearIcon:de}=QC(g(g({},e),{multiple:F.value,showArrow:I.value,hasFeedback:se,feedbackIcon:ce,prefixCls:l.value}),r),fe;fe=t===void 0?u(`Select`):t;let pe=sm(e,[`suffixIcon`,`itemIcon`,`removeIcon`,`clearIcon`,`switcherIcon`,`bordered`,`status`,`onUpdate:value`,`onUpdate:treeExpandedKeys`,`onUpdate:searchValue`]),me=K(!i&&A.value,{[`${l.value}-lg`]:S.value===`large`,[`${l.value}-sm`]:S.value===`small`,[`${l.value}-rtl`]:d.value===`rtl`,[`${l.value}-borderless`]:!a,[`${l.value}-in-form-item`]:oe},lw(l.value,c.value,se),x.value,n.class,M.value),he={};return e.treeData===void 0&&r.default&&(he.children=Gc(r.default())),j(N(W(Bie,h(h(h(h({},n),pe),{},{disabled:w.value,virtual:f.value,dropdownMatchSelectWidth:p.value,id:ie,fieldNames:re,ref:L,prefixCls:l.value,class:me,listHeight:m,listItemHeight:v,treeLine:!!C,inputIcon:le,multiple:y,removeIcon:ue,clearIcon:de,switcherIcon:e=>d3(k.value,z,e,r.leafIcon,C),showTreeIcon:b,notFoundContent:fe,getPopupContainer:_?.value,treeMotion:null,dropdownClassName:P.value,choiceTransitionName:O.value,onChange:R,onBlur:ne,onSearch:te,onTreeExpand:ee},he),{},{transitionName:D.value,customSlots:g(g({},r),{treeCheckable:()=>W(`span`,{class:`${l.value}-tree-checkbox-inner`},null)}),maxTagPlaceholder:e.maxTagPlaceholder||r.maxTagPlaceholder,placement:E.value,showArrow:se||T,placeholder:ae}),g(g({},r),{treeCheckable:()=>W(`span`,{class:`${l.value}-tree-checkbox-inner`},null)}))))}}}),a8=e8,Wie=g(i8,{TreeNode:e8,SHOW_ALL:Die,SHOW_PARENT:Oie,SHOW_CHILD:Q6,install:e=>(e.component(i8.name,i8),e.component(a8.displayName,a8),e)}),o8=()=>({format:String,showNow:J(),showHour:J(),showMinute:J(),showSecond:J(),use12Hours:J(),hourStep:Number,minuteStep:Number,secondStep:Number,hideDisabledOptions:J(),popupClassName:String,status:X()});function Gie(e){let{TimePicker:t,RangePicker:n}=VG(e,g(g({},o8()),{order:{type:Boolean,default:!0}}));return{TimePicker:U({name:`ATimePicker`,inheritAttrs:!1,props:g(g(g(g({},DG()),OG()),o8()),{addon:{type:Function}}),slots:Object,setup(e,n){let{slots:r,expose:i,emit:a,attrs:o}=n,s=e,c=aw();wh(!(r.addon||s.addon),`TimePicker`,"`addon` is deprecated. Please use `v-slot:renderExtraFooter` instead.");let l=B();i({focus:()=>{var e;(e=l.value)==null||e.focus()},blur:()=>{var e;(e=l.value)==null||e.blur()}});let u=(e,t)=>{a(`update:value`,e),a(`change`,e,t),c.onFieldChange()},d=e=>{a(`update:open`,e),a(`openChange`,e)},f=e=>{a(`focus`,e)},p=e=>{a(`blur`,e),c.onFieldBlur()},m=e=>{a(`ok`,e)};return()=>{let{id:e=c.id.value}=s;return W(t,h(h(h({},o),sm(s,[`onUpdate:value`,`onUpdate:open`])),{},{id:e,dropdownClassName:s.popupClassName,mode:void 0,ref:l,renderExtraFooter:s.addon||r.addon||s.renderExtraFooter||r.renderExtraFooter,onChange:u,onOpenChange:d,onFocus:f,onBlur:p,onOk:m}),r)}}}),TimeRangePicker:U({name:`ATimeRangePicker`,inheritAttrs:!1,props:g(g(g(g({},DG()),kG()),o8()),{order:{type:Boolean,default:!0}}),slots:Object,setup(e,t){let{slots:r,expose:i,emit:a,attrs:o}=t,s=e,c=B(),l=aw();i({focus:()=>{var e;(e=c.value)==null||e.focus()},blur:()=>{var e;(e=c.value)==null||e.blur()}});let u=(e,t)=>{a(`update:value`,e),a(`change`,e,t),l.onFieldChange()},d=e=>{a(`update:open`,e),a(`openChange`,e)},f=e=>{a(`focus`,e)},p=e=>{a(`blur`,e),l.onFieldBlur()},m=(e,t)=>{a(`panelChange`,e,t)},g=e=>{a(`ok`,e)},_=(e,t,n)=>{a(`calendarChange`,e,t,n)};return()=>{let{id:e=l.id.value}=s;return W(n,h(h(h({},o),sm(s,[`onUpdate:open`,`onUpdate:value`])),{},{id:e,dropdownClassName:s.popupClassName,picker:`time`,mode:void 0,ref:c,onChange:u,onOpenChange:d,onFocus:f,onBlur:p,onPanelChange:m,onOk:g,onCalendarChange:_}),r)}}})}}var{TimePicker:s8,TimeRangePicker:c8}=Gie(JM),Kie=g(s8,{TimePicker:s8,TimeRangePicker:c8,install:e=>(e.component(s8.name,s8),e.component(c8.name,c8),e)}),l8=U({compatConfig:{MODE:3},name:`ATimelineItem`,props:Bc({prefixCls:String,color:String,dot:Q.any,pending:J(),position:Q.oneOf(hl(`left`,`right`,``)).def(``),label:Q.any},{color:`blue`,pending:!1}),slots:Object,setup(e,t){let{slots:n}=t,{prefixCls:r}=Z(`timeline`,e),i=G(()=>({[`${r.value}-item`]:!0,[`${r.value}-item-pending`]:e.pending})),a=G(()=>/blue|red|green|gray/.test(e.color||``)?void 0:e.color||`blue`),o=G(()=>({[`${r.value}-item-head`]:!0,[`${r.value}-item-head-${e.color||`blue`}`]:!a.value}));return()=>{let{label:t=n.label?.call(n),dot:s=n.dot?.call(n)}=e;return W(`li`,{class:i.value},[t&&W(`div`,{class:`${r.value}-item-label`},[t]),W(`div`,{class:`${r.value}-item-tail`},null),W(`div`,{class:[o.value,!!s&&`${r.value}-item-head-custom`],style:{borderColor:a.value,color:a.value}},[s]),W(`div`,{class:`${r.value}-item-content`},[n.default?.call(n)])])}}}),qie=e=>{let{componentCls:t}=e;return{[t]:g(g({},Op(e)),{margin:0,padding:0,listStyle:`none`,[`${t}-item`]:{position:`relative`,margin:0,paddingBottom:e.timeLineItemPaddingBottom,fontSize:e.fontSize,listStyle:`none`,"&-tail":{position:`absolute`,insetBlockStart:e.timeLineItemHeadSize,insetInlineStart:(e.timeLineItemHeadSize-e.timeLineItemTailWidth)/2,height:`calc(100% - ${e.timeLineItemHeadSize}px)`,borderInlineStart:`${e.timeLineItemTailWidth}px ${e.lineType} ${e.colorSplit}`},"&-pending":{[`${t}-item-head`]:{fontSize:e.fontSizeSM,backgroundColor:`transparent`},[`${t}-item-tail`]:{display:`none`}},"&-head":{position:`absolute`,width:e.timeLineItemHeadSize,height:e.timeLineItemHeadSize,backgroundColor:e.colorBgContainer,border:`${e.timeLineHeadBorderWidth}px ${e.lineType} transparent`,borderRadius:`50%`,"&-blue":{color:e.colorPrimary,borderColor:e.colorPrimary},"&-red":{color:e.colorError,borderColor:e.colorError},"&-green":{color:e.colorSuccess,borderColor:e.colorSuccess},"&-gray":{color:e.colorTextDisabled,borderColor:e.colorTextDisabled}},"&-head-custom":{position:`absolute`,insetBlockStart:e.timeLineItemHeadSize/2,insetInlineStart:e.timeLineItemHeadSize/2,width:`auto`,height:`auto`,marginBlockStart:0,paddingBlock:e.timeLineItemCustomHeadPaddingVertical,lineHeight:1,textAlign:`center`,border:0,borderRadius:0,transform:`translate(-50%, -50%)`},"&-content":{position:`relative`,insetBlockStart:-(e.fontSize*e.lineHeight-e.fontSize)+e.lineWidth,marginInlineStart:e.margin+e.timeLineItemHeadSize,marginInlineEnd:0,marginBlockStart:0,marginBlockEnd:0,wordBreak:`break-word`},"&-last":{[`> ${t}-item-tail`]:{display:`none`},[`> ${t}-item-content`]:{minHeight:e.controlHeightLG*1.2}}},[`&${t}-alternate, + &${t}-right, + &${t}-label`]:{[`${t}-item`]:{"&-tail, &-head, &-head-custom":{insetInlineStart:`50%`},"&-head":{marginInlineStart:`-${e.marginXXS}px`,"&-custom":{marginInlineStart:e.timeLineItemTailWidth/2}},"&-left":{[`${t}-item-content`]:{insetInlineStart:`calc(50% - ${e.marginXXS}px)`,width:`calc(50% - ${e.marginSM}px)`,textAlign:`start`}},"&-right":{[`${t}-item-content`]:{width:`calc(50% - ${e.marginSM}px)`,margin:0,textAlign:`end`}}}},[`&${t}-right`]:{[`${t}-item-right`]:{[`${t}-item-tail, + ${t}-item-head, + ${t}-item-head-custom`]:{insetInlineStart:`calc(100% - ${(e.timeLineItemHeadSize+e.timeLineItemTailWidth)/2}px)`},[`${t}-item-content`]:{width:`calc(100% - ${e.timeLineItemHeadSize+e.marginXS}px)`}}},[`&${t}-pending + ${t}-item-last + ${t}-item-tail`]:{display:`block`,height:`calc(100% - ${e.margin}px)`,borderInlineStart:`${e.timeLineItemTailWidth}px dotted ${e.colorSplit}`},[`&${t}-reverse + ${t}-item-last + ${t}-item-tail`]:{display:`none`},[`&${t}-reverse ${t}-item-pending`]:{[`${t}-item-tail`]:{insetBlockStart:e.margin,display:`block`,height:`calc(100% - ${e.margin}px)`,borderInlineStart:`${e.timeLineItemTailWidth}px dotted ${e.colorSplit}`},[`${t}-item-content`]:{minHeight:e.controlHeightLG*1.2}},[`&${t}-label`]:{[`${t}-item-label`]:{position:`absolute`,insetBlockStart:-(e.fontSize*e.lineHeight-e.fontSize)+e.timeLineItemTailWidth,width:`calc(50% - ${e.marginSM}px)`,textAlign:`end`},[`${t}-item-right`]:{[`${t}-item-label`]:{insetInlineStart:`calc(50% + ${e.marginSM}px)`,width:`calc(50% - ${e.marginSM}px)`,textAlign:`start`}}},"&-rtl":{direction:`rtl`,[`${t}-item-head-custom`]:{transform:`translate(50%, -50%)`}}})}},Jie=Fp(`Timeline`,e=>[qie(Rp(e,{timeLineItemPaddingBottom:e.padding*1.25,timeLineItemHeadSize:10,timeLineItemCustomHeadPaddingVertical:e.paddingXXS,timeLinePaddingInlineEnd:2,timeLineItemTailWidth:e.lineWidthBold,timeLineHeadBorderWidth:e.wireframe?e.lineWidthBold:e.lineWidth*3}))]),u8=U({compatConfig:{MODE:3},name:`ATimeline`,inheritAttrs:!1,props:Bc({prefixCls:String,pending:Q.any,pendingDot:Q.any,reverse:J(),mode:Q.oneOf(hl(`left`,`alternate`,`right`,``))},{reverse:!1,mode:``}),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=Z(`timeline`,e),[o,s]=Jie(i),c=(t,n)=>{let r=t.props||{};return e.mode===`alternate`?r.position===`right`?`${i.value}-item-right`:r.position===`left`||n%2==0?`${i.value}-item-left`:`${i.value}-item-right`:e.mode===`left`?`${i.value}-item-left`:e.mode===`right`||r.position===`right`?`${i.value}-item-right`:``};return()=>{let{pending:t=n.pending?.call(n),pendingDot:l=n.pendingDot?.call(n),reverse:u,mode:d}=e,f=typeof t==`boolean`?null:t,p=rl(n.default?.call(n)),m=t?W(l8,{pending:!!t,dot:l||W(FC,null,null)},{default:()=>[f]}):null;m&&p.push(m);let g=u?p.reverse():p,_=g.length,v=`${i.value}-item-last`,y=g.map((e,n)=>{let r=n===_-2?v:``,i=n===_-1?v:``;return Za(e,{class:K([!u&&t?r:i,c(e,n)])})}),b=g.some(e=>!!(e.props?.label||e.children?.label)),x=K(i.value,{[`${i.value}-pending`]:!!t,[`${i.value}-reverse`]:!!u,[`${i.value}-${d}`]:!!d&&!b,[`${i.value}-label`]:b,[`${i.value}-rtl`]:a.value===`rtl`},r.class,s.value);return o(W(`ul`,h(h({},r),{},{class:x}),[y]))}}});u8.Item=l8,u8.install=function(e){return e.component(u8.name,u8),e.component(l8.name,l8),e};var Yie=u8,Xie={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z`}}]},name:`enter`,theme:`outlined`};function d8(e){for(var t=1;t{let{sizeMarginHeadingVerticalEnd:i,fontWeightStrong:a}=r;return{marginBottom:i,color:n,fontWeight:a,fontSize:e,lineHeight:t}},$ie=e=>{let t=[1,2,3,4,5],n={};return t.forEach(t=>{n[` + h${t}&, + div&-h${t}, + div&-h${t} > textarea, + h${t} + `]=Qie(e[`fontSizeHeading${t}`],e[`lineHeightHeading${t}`],e.colorTextHeading,e)}),n},eae=e=>{let{componentCls:t}=e;return{"a&, a":g(g({},wp(e)),{textDecoration:e.linkDecoration,"&:active, &:hover":{textDecoration:e.linkHoverDecoration},[`&[disabled], &${t}-disabled`]:{color:e.colorTextDisabled,cursor:`not-allowed`,"&:active, &:hover":{color:e.colorTextDisabled},"&:active":{pointerEvents:`none`}}})}},tae=()=>({code:{margin:`0 0.2em`,paddingInline:`0.4em`,paddingBlock:`0.2em 0.1em`,fontSize:`85%`,background:`rgba(150, 150, 150, 0.1)`,border:`1px solid rgba(100, 100, 100, 0.2)`,borderRadius:3},kbd:{margin:`0 0.2em`,paddingInline:`0.4em`,paddingBlock:`0.15em 0.1em`,fontSize:`90%`,background:`rgba(150, 150, 150, 0.06)`,border:`1px solid rgba(100, 100, 100, 0.2)`,borderBottomWidth:2,borderRadius:3},mark:{padding:0,backgroundColor:ip[2]},"u, ins":{textDecoration:`underline`,textDecorationSkipInk:`auto`},"s, del":{textDecoration:`line-through`},strong:{fontWeight:600},"ul, ol":{marginInline:0,marginBlock:`0 1em`,padding:0,li:{marginInline:`20px 0`,marginBlock:0,paddingInline:`4px 0`,paddingBlock:0}},ul:{listStyleType:`circle`,ul:{listStyleType:`disc`}},ol:{listStyleType:`decimal`},"pre, blockquote":{margin:`1em 0`},pre:{padding:`0.4em 0.6em`,whiteSpace:`pre-wrap`,wordWrap:`break-word`,background:`rgba(150, 150, 150, 0.1)`,border:`1px solid rgba(100, 100, 100, 0.2)`,borderRadius:3,code:{display:`inline`,margin:0,padding:0,fontSize:`inherit`,fontFamily:`inherit`,background:`transparent`,border:0}},blockquote:{paddingInline:`0.6em 0`,paddingBlock:0,borderInlineStart:`4px solid rgba(100, 100, 100, 0.2)`,opacity:.85}}),nae=e=>{let{componentCls:t}=e,n=zF(e).inputPaddingVertical+1;return{"&-edit-content":{position:`relative`,"div&":{insetInlineStart:-e.paddingSM,marginTop:-n,marginBottom:`calc(1em - ${n}px)`},[`${t}-edit-content-confirm`]:{position:`absolute`,insetInlineEnd:e.marginXS+2,insetBlockEnd:e.marginXS,color:e.colorTextDescription,fontWeight:`normal`,fontSize:e.fontSize,fontStyle:`normal`,pointerEvents:`none`},textarea:{margin:`0!important`,MozTransition:`none`,height:`1em`}}}},rae=e=>({"&-copy-success":{"\n &,\n &:hover,\n &:focus":{color:e.colorSuccess}}}),iae=()=>({"\n a&-ellipsis,\n span&-ellipsis\n ":{display:`inline-block`,maxWidth:`100%`},"&-single-line":{whiteSpace:`nowrap`},"&-ellipsis-single-line":{overflow:`hidden`,textOverflow:`ellipsis`,"a&, span&":{verticalAlign:`bottom`}},"&-ellipsis-multiple-line":{display:`-webkit-box`,overflow:`hidden`,WebkitLineClamp:3,WebkitBoxOrient:`vertical`}}),aae=e=>{let{componentCls:t,sizeMarginHeadingVerticalStart:n}=e;return{[t]:g(g(g(g(g(g(g(g(g({color:e.colorText,wordBreak:`break-word`,lineHeight:e.lineHeight,[`&${t}-secondary`]:{color:e.colorTextDescription},[`&${t}-success`]:{color:e.colorSuccess},[`&${t}-warning`]:{color:e.colorWarning},[`&${t}-danger`]:{color:e.colorError,"a&:active, a&:focus":{color:e.colorErrorActive},"a&:hover":{color:e.colorErrorHover}},[`&${t}-disabled`]:{color:e.colorTextDisabled,cursor:`not-allowed`,userSelect:`none`},"\n div&,\n p\n ":{marginBottom:`1em`}},$ie(e)),{[` + & + h1${t}, + & + h2${t}, + & + h3${t}, + & + h4${t}, + & + h5${t} + `]:{marginTop:n},"\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5":{"\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n ":{marginTop:n}}}),tae()),eae(e)),{[` + ${t}-expand, + ${t}-edit, + ${t}-copy + `]:g(g({},wp(e)),{marginInlineStart:e.marginXXS})}),nae(e)),rae(e)),iae()),{"&-rtl":{direction:`rtl`}})}},p8=Fp(`Typography`,e=>[aae(e)],{sizeMarginHeadingVerticalStart:`1.2em`,sizeMarginHeadingVerticalEnd:`0.5em`}),oae=U({compatConfig:{MODE:3},name:`Editable`,inheritAttrs:!1,props:{prefixCls:String,value:String,maxlength:Number,autoSize:{type:[Boolean,Object]},onSave:Function,onCancel:Function,onEnd:Function,onChange:Function,originContent:String,direction:String,component:String},setup(e,t){let{emit:n,slots:r,attrs:i}=t,{prefixCls:a}=hn(e),o=Yt({current:e.value||``,lastKeyCode:void 0,inComposition:!1,cancelFlag:!1});H(()=>e.value,e=>{o.current=e});let s=B();$r(()=>{if(s.value){let e=s.value?.resizableTextArea?.textArea;e.focus();let{length:t}=e.value;e.setSelectionRange(t,t)}});function c(e){s.value=e}function l(e){let{target:{value:t}}=e;o.current=t.replace(/[\r\n]/g,``),n(`change`,o.current)}function u(){o.inComposition=!0}function d(){o.inComposition=!1}function f(e){let{keyCode:t}=e;t===$.ENTER&&e.preventDefault(),!o.inComposition&&(o.lastKeyCode=t)}function p(t){let{keyCode:r,ctrlKey:i,altKey:a,metaKey:s,shiftKey:c}=t;o.lastKeyCode===r&&!o.inComposition&&!i&&!a&&!s&&!c&&(r===$.ENTER?(g(),n(`end`)):r===$.ESC&&(o.current=e.originContent,n(`cancel`)))}function m(){g()}function g(){n(`save`,o.current.trim())}let[_,v]=p8(a);return()=>{let t=K({[`${a.value}`]:!0,[`${a.value}-edit-content`]:!0,[`${a.value}-rtl`]:e.direction===`rtl`,[e.component?`${a.value}-${e.component}`:``]:!0},i.class,v.value);return _(W(`div`,h(h({},i),{},{class:t}),[W(Bq,{ref:c,maxlength:e.maxlength,value:o.current,onChange:l,onKeydown:f,onKeyup:p,onCompositionstart:u,onCompositionend:d,onBlur:m,rows:1,autoSize:e.autoSize===void 0||e.autoSize},null),r.enterIcon?r.enterIcon({className:`${e.prefixCls}-edit-content-confirm`}):W(f8,{class:`${e.prefixCls}-edit-content-confirm`},null)]))}}}),sae=3,cae=8,m8,h8={padding:0,margin:0,display:`inline`,lineHeight:`inherit`};function g8(e,t){e.setAttribute(`aria-hidden`,`true`);let n=Lb(window.getComputedStyle(t));e.setAttribute(`style`,n),e.style.position=`fixed`,e.style.left=`0`,e.style.height=`auto`,e.style.minHeight=`auto`,e.style.maxHeight=`auto`,e.style.paddingTop=`0`,e.style.paddingBottom=`0`,e.style.borderTopWidth=`0`,e.style.borderBottomWidth=`0`,e.style.top=`-999999px`,e.style.zIndex=`-1000`,e.style.textOverflow=`clip`,e.style.whiteSpace=`normal`,e.style.webkitLineClamp=`none`}function lae(e){let t=document.createElement(`div`);g8(t,e),t.appendChild(document.createTextNode(`text`)),document.body.appendChild(t);let n=t.getBoundingClientRect().height;return document.body.removeChild(t),n}var uae=((e,t,n,r,i)=>{m8||(m8=document.createElement(`div`),m8.setAttribute(`aria-hidden`,`true`),document.body.appendChild(m8));let{rows:a,suffix:o=``}=t,s=lae(e),c=Math.round(s*a*100)/100;g8(m8,e);let l=rc({render(){return W(`div`,{style:h8},[W(`span`,{style:h8},[n,o]),W(`span`,{style:h8},[r])])}});l.mount(m8);function u(){return Math.round(m8.getBoundingClientRect().height*100)/100-.1<=c}if(u())return l.unmount(),{content:n,text:m8.innerHTML,ellipsis:!1};let d=Array.prototype.slice.apply(m8.childNodes[0].childNodes[0].cloneNode(!0).childNodes).filter(e=>{let{nodeType:t,data:n}=e;return t!==cae&&n!==``}),f=Array.prototype.slice.apply(m8.childNodes[0].childNodes[1].cloneNode(!0).childNodes);l.unmount();let p=[];m8.innerHTML=``;let m=document.createElement(`span`);m8.appendChild(m);let h=document.createTextNode(i+o);m.appendChild(h),f.forEach(e=>{m8.appendChild(e)});function g(e){m.insertBefore(e,h)}function _(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:t.length,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=Math.floor((n+r)/2);if(e.textContent=t.slice(0,a),n>=r-1)for(let i=r;i>=n;--i){let n=t.slice(0,i);if(e.textContent=n,u()||!n)return i===t.length?{finished:!1,vNode:t}:{finished:!0,vNode:n}}return u()?_(e,t,a,r,a):_(e,t,n,a,i)}function v(e){if(e.nodeType===sae){let t=e.textContent||``,n=document.createTextNode(t);return g(n),_(n,t)}return{finished:!1,vNode:null}}return d.some(e=>{let{finished:t,vNode:n}=v(e);return n&&p.push(n),t}),{content:p,text:m8.innerHTML,ellipsis:!0}}),dae=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let t=g(g({},e),r),{prefixCls:c,direction:l,component:u=`article`}=t,d=dae(t,[`prefixCls`,`direction`,`component`]);return o(W(u,h(h({},d),{},{class:K(i.value,{[`${i.value}-rtl`]:a.value===`rtl`},r.class,s.value)}),{default:()=>[n.default?.call(n)]}))}}}),fae=()=>{let e=document.getSelection();if(!e.rangeCount)return function(){};let t=document.activeElement,n=[];for(let t=0;t({editable:{type:[Boolean,Object],default:void 0},copyable:{type:[Boolean,Object],default:void 0},prefixCls:String,component:String,type:String,disabled:{type:Boolean,default:void 0},ellipsis:{type:[Boolean,Object],default:void 0},code:{type:Boolean,default:void 0},mark:{type:Boolean,default:void 0},underline:{type:Boolean,default:void 0},delete:{type:Boolean,default:void 0},strong:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},content:String,"onUpdate:content":Function}),T8=U({compatConfig:{MODE:3},name:`TypographyBase`,inheritAttrs:!1,props:w8(),setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a,direction:o}=Z(`typography`,e),s=Yt({copied:!1,ellipsisText:``,ellipsisContent:null,isEllipsis:!1,expanded:!1,clientRendered:!1,expandStr:``,copyStr:``,copiedStr:``,editStr:``,copyId:void 0,rafId:void 0,prevProps:void 0,originContent:``}),c=B(),l=B(),u=G(()=>{let t=e.ellipsis;return t?g({rows:1,expandable:!1},typeof t==`object`?t:null):{}});$r(()=>{s.clientRendered=!0,E()}),ni(()=>{clearTimeout(s.copyId),pl.cancel(s.rafId)}),H([()=>u.value.rows,()=>e.content],()=>{zn(()=>{w()})},{flush:`post`,deep:!0}),ar(()=>{e.content===void 0&&(Ru(!e.editable,`Typography`,"When `editable` is enabled, please use `content` instead of children"),Ru(!e.ellipsis,`Typography`,"When `ellipsis` is enabled, please use `content` instead of children"))});function d(){return e.ellipsis||e.editable?e.content:qc(c.value)?.innerText}function f(e){let{onExpand:t}=u.value;s.expanded=!0,t?.(e)}function p(t){t.preventDefault(),s.originContent=e.content,C(!0)}function m(e){_(e),C(!1)}function _(t){let{onChange:n}=b.value;t!==e.content&&(i(`update:content`,t),n?.(t))}function v(){var e,t;(t=(e=b.value).onCancel)==null||t.call(e),C(!1)}function y(t){t.preventDefault(),t.stopPropagation();let{copyable:n}=e,r=g({},typeof n==`object`?n:null);r.text===void 0&&(r.text=d()),hae(r.text||``),s.copied=!0,zn(()=>{r.onCopy&&r.onCopy(t),s.copyId=setTimeout(()=>{s.copied=!1},3e3)})}let b=G(()=>{let t=e.editable;return t?g({},typeof t==`object`?t:null):{editing:!1}}),[x,S]=gS(!1,{value:G(()=>b.value.editing)});function C(e){let{onStart:t}=b.value;e&&t&&t(),S(e)}H(x,e=>{var t;e||(t=l.value)==null||t.focus()},{flush:`post`});function w(e){if(e){let{width:t,height:n}=e;if(!t||!n)return}pl.cancel(s.rafId),s.rafId=pl(()=>{E()})}let T=G(()=>{let{rows:t,expandable:n,suffix:r,onEllipsis:i,tooltip:a}=u.value;return r||a||e.editable||e.copyable||n||i?!1:t===1?Sae:xae}),E=()=>{let{ellipsisText:t,isEllipsis:n}=s,{rows:r,suffix:i,onEllipsis:a}=u.value;if(!r||r<0||!qc(c.value)||s.expanded||e.content===void 0||T.value)return;let{content:o,text:l,ellipsis:d}=uae(qc(c.value),{rows:r,suffix:i},e.content,M(!0),C8);(t!==l||s.isEllipsis!==d)&&(s.ellipsisText=l,s.ellipsisContent=o,s.isEllipsis=d,n!==d&&a&&a(d))};function D(e,t){let{mark:n,code:r,underline:i,delete:a,strong:o,keyboard:s}=e,c=t;function l(e,t){if(!e)return;let n=function(){return c}();c=W(t,null,{default:()=>[n]})}return l(o,`strong`),l(i,`u`),l(a,`del`),l(r,`code`),l(n,`mark`),l(s,`kbd`),c}function O(e){let{expandable:t,symbol:r}=u.value;if(!t||!e&&(s.expanded||!s.isEllipsis))return null;let i=(n.ellipsisSymbol?n.ellipsisSymbol():r)||s.expandStr;return W(`a`,{key:`expand`,class:`${a.value}-expand`,onClick:f,"aria-label":s.expandStr},[i])}function k(){if(!e.editable)return;let{tooltip:t,triggerType:r=[`icon`]}=e.editable,i=n.editableIcon?n.editableIcon():W(S8,{role:`button`},null),o=n.editableTooltip?n.editableTooltip():s.editStr,c=typeof o==`string`?o:``;return r.indexOf(`icon`)===-1?null:W(KA,{key:`edit`,title:t===!1?``:o},{default:()=>[W(NQ,{ref:l,class:`${a.value}-edit`,onClick:p,"aria-label":c},{default:()=>[i]})]})}function A(){if(!e.copyable)return;let{tooltip:t}=e.copyable,r=s.copied?s.copiedStr:s.copyStr,i=n.copyableTooltip?n.copyableTooltip({copied:s.copied}):r,o=typeof i==`string`?i:``,c=s.copied?W(zC,null,null):W(b8,null,null),l=n.copyableIcon?n.copyableIcon({copied:!!s.copied}):c;return W(KA,{key:`copy`,title:t===!1?``:i},{default:()=>[W(NQ,{class:[`${a.value}-copy`,{[`${a.value}-copy-success`]:s.copied}],onClick:y,"aria-label":o},{default:()=>[l]})]})}function j(){let{class:t,style:i}=r,{maxlength:c,autoSize:l,onEnd:u}=b.value;return W(oae,{class:t,style:i,prefixCls:a.value,value:e.content,originContent:s.originContent,maxlength:c,autoSize:l,onSave:m,onChange:_,onCancel:v,onEnd:u,direction:o.value,component:e.component},{enterIcon:n.editableEnterIcon})}function M(e){return[O(e),k(),A()].filter(e=>e)}return()=>{let{triggerType:t=[`icon`]}=b.value,i=e.ellipsis||e.editable?e.content===void 0?n.default?.call(n):e.content:n.default?n.default():e.content;return x.value?j():W(eu,{componentName:`Text`,children:l=>{let d=g(g({},e),r),{type:f,disabled:m,content:_,class:v,style:y}=d,b=bae(d,[`type`,`disabled`,`content`,`class`,`style`]),{rows:x,suffix:S,tooltip:C}=u.value,{edit:E,copy:O,copied:k,expand:A}=l;s.editStr=E,s.copyStr=O,s.copiedStr=k,s.expandStr=A;let j=sm(b,[`prefixCls`,`editable`,`copyable`,`ellipsis`,`mark`,`code`,`delete`,`underline`,`strong`,`keyboard`,`onUpdate:content`]),N=T.value,P=x===1&&N,F=x&&x>1&&N,I=i,L;if(x&&s.isEllipsis&&!s.expanded&&!N){let{title:e}=b,t=e||``;!e&&(typeof i==`string`||typeof i==`number`)&&(t=String(i)),t=t?.slice(String(s.ellipsisContent||``).length),I=W(Ma,null,[rn(s.ellipsisContent),W(`span`,{title:t,"aria-hidden":`true`},[C8]),S])}else I=W(Ma,null,[i,S]);I=D(e,I);let R=C&&x&&s.isEllipsis&&!s.expanded&&!N,ee=n.ellipsisTooltip?n.ellipsisTooltip():C;return W(sl,{onResize:w,disabled:!x},{default:()=>[W(_8,h({ref:c,class:[{[`${a.value}-${f}`]:f,[`${a.value}-disabled`]:m,[`${a.value}-ellipsis`]:x,[`${a.value}-single-line`]:x===1&&!s.isEllipsis,[`${a.value}-ellipsis-single-line`]:P,[`${a.value}-ellipsis-multiple-line`]:F},v],style:g(g({},y),{WebkitLineClamp:F?x:void 0}),"aria-label":L,direction:o.value,onClick:t.indexOf(`text`)===-1?()=>{}:p},j),{default:()=>[R?W(KA,{title:C===!0?i:ee},{default:()=>[W(`span`,null,[I])]}):I,M()]})]})}},null)}}}),Cae=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ism(g(g({},w8()),{ellipsis:{type:Boolean,default:void 0}}),[`component`]),E8=(e,t)=>{let{slots:n,attrs:r}=t,i=g(g({},e),r),{ellipsis:a,rel:o}=i,s=Cae(i,[`ellipsis`,`rel`]);Ru(typeof a!=`object`,`Typography.Link`,"`ellipsis` only supports boolean value.");let c=g(g({},s),{rel:o===void 0&&s.target===`_blank`?`noopener noreferrer`:o,ellipsis:!!a,component:`a`});return delete c.navigate,W(T8,c,n)};E8.displayName=`ATypographyLink`,E8.inheritAttrs=!1,E8.props=wae();var Tae=()=>sm(w8(),[`component`]),D8=(e,t)=>{let{slots:n,attrs:r}=t;return W(T8,g(g(g({},e),{component:`div`}),r),n)};D8.displayName=`ATypographyParagraph`,D8.inheritAttrs=!1,D8.props=Tae();var Eae=()=>g(g({},sm(w8(),[`component`])),{ellipsis:{type:[Boolean,Object],default:void 0}}),O8=(e,t)=>{let{slots:n,attrs:r}=t,{ellipsis:i}=e;return Ru(typeof i!=`object`||!i||!(`expandable`in i)&&!(`rows`in i),`Typography.Text`,"`ellipsis` do not support `expandable` or `rows` props."),W(T8,g(g(g({},e),{ellipsis:i&&typeof i==`object`?sm(i,[`expandable`,`rows`]):i,component:`span`}),r),n)};O8.displayName=`ATypographyText`,O8.inheritAttrs=!1,O8.props=Eae();var Dae=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ig(g({},sm(w8(),[`component`,`strong`])),{level:Number}),k8=(e,t)=>{let{slots:n,attrs:r}=t,{level:i=1}=e,a=Dae(e,[`level`]),o;return Oae.includes(i)?o=`h${i}`:(Ru(!1,`Typography`,"Title only accept `1 | 2 | 3 | 4 | 5` as `level` value."),o=`h1`),W(T8,g(g(g({},a),{component:o}),r),n)};k8.displayName=`ATypographyTitle`,k8.inheritAttrs=!1,k8.props=kae(),_8.Text=O8,_8.Title=k8,_8.Paragraph=D8,_8.Link=E8,_8.Base=T8,_8.install=function(e){return e.component(_8.name,_8),e.component(_8.Text.displayName,O8),e.component(_8.Title.displayName,k8),e.component(_8.Paragraph.displayName,D8),e.component(_8.Link.displayName,E8),e};var Aae=_8;function jae(e,t){let n=`cannot ${e.method} ${e.action} ${t.status}'`,r=Error(n);return r.status=t.status,r.method=e.method,r.url=e.action,r}function A8(e){let t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}function Mae(e){let t=new XMLHttpRequest;e.onProgress&&t.upload&&(t.upload.onprogress=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.onProgress(t)});let n=new FormData;e.data&&Object.keys(e.data).forEach(t=>{let r=e.data[t];Array.isArray(r)?r.forEach(e=>{n.append(`${t}[]`,e)}):n.append(t,r)}),e.file instanceof Blob?n.append(e.filename,e.file,e.file.name):n.append(e.filename,e.file),t.onerror=function(t){e.onError(t)},t.onload=function(){return t.status<200||t.status>=300?e.onError(jae(e,t),A8(t)):e.onSuccess(A8(t),t)},t.open(e.method,e.action,!0),e.withCredentials&&`withCredentials`in t&&(t.withCredentials=!0);let r=e.headers||{};return r[`X-Requested-With`]!==null&&t.setRequestHeader(`X-Requested-With`,`XMLHttpRequest`),Object.keys(r).forEach(e=>{r[e]!==null&&t.setRequestHeader(e,r[e])}),t.send(n),{abort(){t.abort()}}}var Nae=+new Date,Pae=0;function j8(){return`vc-upload-${Nae}-${++Pae}`}var M8=((e,t)=>{if(e&&t){let n=Array.isArray(t)?t:t.split(`,`),r=e.name||``,i=e.type||``,a=i.replace(/\/.*$/,``);return n.some(e=>{let t=e.trim();if(/^\*(\/\*)?$/.test(e))return!0;if(t.charAt(0)===`.`){let e=r.toLowerCase(),n=t.toLowerCase(),i=[n];return(n===`.jpg`||n===`.jpeg`)&&(i=[`.jpg`,`.jpeg`]),i.some(t=>e.endsWith(t))}return/\/\*$/.test(t)?a===t.replace(/\/.*$/,``):i===t?!0:/^\w+$/.test(t)?(`${t}`,!0):!1})}return!0});function Fae(e,t){let n=e.createReader(),r=[];function i(){n.readEntries(e=>{let n=Array.prototype.slice.apply(e);r=r.concat(n),n.length?i():t(r)})}i()}var Iae=(e,t,n)=>{let r=(e,i)=>{e.path=i||``,e.isFile?e.file(r=>{n(r)&&(e.fullPath&&!r.webkitRelativePath&&(Object.defineProperties(r,{webkitRelativePath:{writable:!0}}),r.webkitRelativePath=e.fullPath.replace(/^\//,``),Object.defineProperties(r,{webkitRelativePath:{writable:!1}})),t([r]))}):e.isDirectory&&Fae(e,t=>{t.forEach(t=>{r(t,`${i}${e.name}/`)})})};e.forEach(e=>{r(e.webkitGetAsEntry())})},N8=()=>({capture:[Boolean,String],multipart:{type:Boolean,default:void 0},name:String,disabled:{type:Boolean,default:void 0},componentTag:String,action:[String,Function],method:String,directory:{type:Boolean,default:void 0},data:[Object,Function],headers:Object,accept:String,multiple:{type:Boolean,default:void 0},onBatchStart:Function,onReject:Function,onStart:Function,onError:Function,onSuccess:Function,onProgress:Function,beforeUpload:Function,customRequest:Function,withCredentials:{type:Boolean,default:void 0},openFileDialogOnClick:{type:Boolean,default:void 0},prefixCls:String,id:String,onMouseenter:Function,onMouseleave:Function,onClick:Function}),Lae=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Rae=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);iLae(this,void 0,void 0,function*(){let{beforeUpload:r}=e,i=t;if(r){try{i=yield r(t,n)}catch{i=!1}if(i===!1)return{origin:t,parsedFile:null,action:null,data:null}}let{action:a}=e,o;o=typeof a==`function`?yield a(t):a;let{data:s}=e,c;c=typeof s==`function`?yield s(t):s;let l=(typeof i==`object`||typeof i==`string`)&&i?i:t,u;u=l instanceof File?l:new File([l],t.name,{type:t.type});let d=u;return d.uid=t.uid,{origin:t,data:c,parsedFile:d,action:o}}),u=t=>{let{data:n,origin:r,action:i,parsedFile:a}=t;if(!c)return;let{onStart:s,customRequest:l,name:u,headers:d,withCredentials:f,method:p}=e,{uid:m}=r,h=l||Mae,g={action:i,filename:u,data:n,file:a,headers:d,withCredentials:f,method:p||`post`,onProgress:t=>{let{onProgress:n}=e;n?.(t,a)},onSuccess:(t,n)=>{let{onSuccess:r}=e;r?.(t,a,n),delete o[m]},onError:(t,n)=>{let{onError:r}=e;r?.(t,n,a),delete o[m]}};s(r),o[m]=h(g)},d=()=>{a.value=j8()},f=e=>{if(e){let t=e.uid?e.uid:e;o[t]&&o[t].abort&&o[t].abort(),delete o[t]}else Object.keys(o).forEach(e=>{o[e]&&o[e].abort&&o[e].abort(),delete o[e]})};$r(()=>{c=!0}),ni(()=>{c=!1,f()});let p=t=>{let n=[...t],r=n.map(e=>(e.uid=j8(),l(e,n)));Promise.all(r).then(t=>{let{onBatchStart:n}=e;n?.(t.map(e=>{let{origin:t,parsedFile:n}=e;return{file:t,parsedFile:n}})),t.filter(e=>e.parsedFile!==null).forEach(e=>{u(e)})})},m=t=>{let{accept:n,directory:r}=e,{files:i}=t.target,a=[...i].filter(e=>!r||M8(e,n));p(a),d()},g=t=>{let n=s.value;if(!n)return;let{onClick:r}=e;n.click(),r&&r(t)},_=e=>{e.key===`Enter`&&g(e)},v=t=>{let{multiple:n}=e;if(t.preventDefault(),t.type!==`dragover`){if(e.directory)Iae(Array.prototype.slice.call(t.dataTransfer.items),p,t=>M8(t,e.accept));else{let r=bO(Array.prototype.slice.call(t.dataTransfer.files),t=>M8(t,e.accept)),i=r[0],a=r[1];n===!1&&(i=i.slice(0,1)),p(i),a.length&&e.onReject&&e.onReject(a)}}};return i({abort:f}),()=>{let{componentTag:t,prefixCls:i,disabled:o,id:c,multiple:l,accept:u,capture:d,directory:f,openFileDialogOnClick:p,onMouseenter:y,onMouseleave:b}=e,x=Rae(e,[`componentTag`,`prefixCls`,`disabled`,`id`,`multiple`,`accept`,`capture`,`directory`,`openFileDialogOnClick`,`onMouseenter`,`onMouseleave`]),S={[i]:!0,[`${i}-disabled`]:o,[r.class]:!!r.class},C=f?{directory:`directory`,webkitdirectory:`webkitdirectory`}:{};return W(t,h(h({},o?{}:{onClick:p?g:()=>{},onKeydown:p?_:()=>{},onMouseenter:y,onMouseleave:b,onDrop:v,onDragover:v,tabindex:`0`}),{},{class:S,role:`button`,style:r.style}),{default:()=>[W(`input`,h(h(h({},Kb(x,{aria:!0,data:!0})),{},{id:c,type:`file`,ref:s,onClick:e=>e.stopPropagation(),onCancel:e=>e.stopPropagation(),key:a.value,style:{display:`none`},accept:u},C),{},{multiple:l,onChange:m},d==null?{}:{capture:d}),null),n.default?.call(n)]})}}});function P8(){}var F8=U({compatConfig:{MODE:3},name:`Upload`,inheritAttrs:!1,props:Bc(N8(),{componentTag:`span`,prefixCls:`rc-upload`,data:{},headers:{},name:`file`,multipart:!1,onStart:P8,onError:P8,onSuccess:P8,multiple:!1,beforeUpload:null,customRequest:null,withCredentials:!1,openFileDialogOnClick:!0}),setup(e,t){let{slots:n,attrs:r,expose:i}=t,a=B();return i({abort:e=>{var t;(t=a.value)==null||t.abort(e)}}),()=>W(zae,h(h(h({},e),r),{},{ref:a}),n)}}),Bae={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z`}}]},name:`paper-clip`,theme:`outlined`};function I8(e){for(var t=1;t{let{uid:n}=t;return n===e.uid});return r===-1?n.push(e):n[r]=e,n}function G8(e,t){let n=e.uid===void 0?`name`:`uid`;return t.filter(t=>t[n]===e[n])[0]}function qae(e,t){let n=e.uid===void 0?`name`:`uid`,r=t.filter(t=>t[n]!==e[n]);return r.length===t.length?null:r}var Jae=function(){let e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:``).split(`/`),t=e[e.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(t)||[``])[0]},K8=e=>e.indexOf(`image/`)===0,Yae=e=>{if(e.type&&!e.thumbUrl)return K8(e.type);let t=e.thumbUrl||e.url||``,n=Jae(t);return/^data:image\//.test(t)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(n)?!0:!(/^data:/.test(t)||n)},q8=200;function Xae(e){return new Promise(t=>{if(!e.type||!K8(e.type)){t(``);return}let n=document.createElement(`canvas`);n.width=q8,n.height=q8,n.style.cssText=`position: fixed; left: 0; top: 0; width: ${q8}px; height: ${q8}px; z-index: 9999; display: none;`,document.body.appendChild(n);let r=n.getContext(`2d`),i=new Image;if(i.onload=()=>{let{width:e,height:a}=i,o=q8,s=q8,c=0,l=0;e>a?(s=q8/e*a,l=-(s-o)/2):(o=q8/a*e,c=-(o-s)/2),r.drawImage(i,c,l,o,s);let u=n.toDataURL();document.body.removeChild(n),t(u)},i.crossOrigin=`anonymous`,e.type.startsWith(`image/svg+xml`)){let t=new FileReader;t.addEventListener(`load`,()=>{t.result&&(i.src=t.result)}),t.readAsDataURL(e)}else i.src=window.URL.createObjectURL(e)})}var Zae={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z`}}]},name:`download`,theme:`outlined`};function J8(e){for(var t=1;t{a.value=setTimeout(()=>{i.value=!0},300)}),ni(()=>{clearTimeout(a.value)});let o=V(e.file?.status);H(()=>e.file?.status,e=>{e!==`removed`&&(o.value=e)});let{rootPrefixCls:s}=Z(`upload`,e),c=G(()=>nb(`${s.value}-fade`));return()=>{let{prefixCls:t,locale:a,listType:s,file:l,items:u,progress:d,iconRender:f=n.iconRender,actionIconRender:p=n.actionIconRender,itemRender:m=n.itemRender,isImgUrl:g,showPreviewIcon:_,showRemoveIcon:v,showDownloadIcon:y,previewIcon:b=n.previewIcon,removeIcon:x=n.removeIcon,downloadIcon:S=n.downloadIcon,onPreview:C,onDownload:w,onClose:T}=e,{class:E,style:D}=r,O=f({file:l}),k=W(`div`,{class:`${t}-text-icon`},[O]);if(s===`picture`||s===`picture-card`){if(o.value===`uploading`||!l.thumbUrl&&!l.url)k=W(`div`,{class:{[`${t}-list-item-thumbnail`]:!0,[`${t}-list-item-file`]:o.value!==`uploading`}},[O]);else{let e=g?.(l)?W(`img`,{src:l.thumbUrl||l.url,alt:l.name,class:`${t}-list-item-image`,crossorigin:l.crossOrigin},null):O;k=W(`a`,{class:{[`${t}-list-item-thumbnail`]:!0,[`${t}-list-item-file`]:g&&!g(l)},onClick:e=>C(l,e),href:l.url||l.thumbUrl,target:`_blank`,rel:`noopener noreferrer`},[e])}}let A={[`${t}-list-item`]:!0,[`${t}-list-item-${o.value}`]:!0},j=typeof l.linkProps==`string`?JSON.parse(l.linkProps):l.linkProps,M=v?p({customIcon:x?x({file:l}):W(I6,null,null),callback:()=>T(l),prefixCls:t,title:a.removeFile}):null,N=y&&o.value===`done`?p({customIcon:S?S({file:l}):W(Y8,null,null),callback:()=>w(l),prefixCls:t,title:a.downloadFile}):null,P=s!==`picture-card`&&W(`span`,{key:`download-delete`,class:[`${t}-list-item-actions`,{picture:s===`picture`}]},[N,M]),F=`${t}-list-item-name`,I=l.url?[W(`a`,h(h({key:`view`,target:`_blank`,rel:`noopener noreferrer`,class:F,title:l.name},j),{},{href:l.url,onClick:e=>C(l,e)}),[l.name]),P]:[W(`span`,{key:`view`,class:F,onClick:e=>C(l,e),title:l.name},[l.name]),P],L=_?W(`a`,{href:l.url||l.thumbUrl,target:`_blank`,rel:`noopener noreferrer`,style:l.url||l.thumbUrl?void 0:{pointerEvents:`none`,opacity:.5},onClick:e=>C(l,e),title:a.previewFile},[b?b({file:l}):W(Wq,null,null)]):null,R=s===`picture-card`&&o.value!==`uploading`&&W(`span`,{class:`${t}-list-item-actions`},[L,o.value===`done`&&N,M]),ee=W(`div`,{class:A},[k,I,R,i.value&&W(Uo,c.value,{default:()=>[Qn(W(`div`,{class:`${t}-list-item-progress`},[`percent`in l?W(w$,h(h({},d),{},{type:`line`,percent:l.percent}),null):null]),[[ss,o.value===`uploading`]])]})]),te={[`${t}-list-item-container`]:!0,[`${E}`]:!!E},ne=l.response&&typeof l.response==`string`?l.response:l.error?.statusText||l.error?.message||a.uploadError,z=o.value===`error`?W(KA,{title:ne,getPopupContainer:e=>e.parentNode},{default:()=>[ee]}):ee;return W(`div`,{class:te,style:D},[m?m({originNode:z,file:l,fileList:u,actions:{download:w.bind(null,l),preview:C.bind(null,l),remove:T.bind(null,l)}}):z])}}}),eoe=(e,t)=>{let{slots:n}=t;return rl(n.default?.call(n))[0]},toe=U({compatConfig:{MODE:3},name:`AUploadList`,props:Bc(Kae(),{listType:`text`,progress:{strokeWidth:2,showInfo:!1},showRemoveIcon:!0,showDownloadIcon:!1,showPreviewIcon:!0,previewFile:Xae,isImageUrl:Yae,items:[],appendActionVisible:!0}),setup(e,t){let{slots:n,expose:r}=t,i=V(!1);$r(()=>{i.value});let a=V([]);H(()=>e.items,function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];a.value=e.slice()},{immediate:!0,deep:!0}),ar(()=>{if(e.listType!==`picture`&&e.listType!==`picture-card`)return;let t=!1;(e.items||[]).forEach((n,r)=>{typeof document<`u`&&typeof window<`u`&&window.FileReader&&window.File&&(n.originFileObj instanceof File||n.originFileObj instanceof Blob)&&n.thumbUrl===void 0&&(n.thumbUrl=``,e.previewFile&&e.previewFile(n.originFileObj).then(e=>{let i=e||``;i!==n.thumbUrl&&(a.value[r].thumbUrl=i,t=!0)}))}),t&&dn(a)});let o=(t,n)=>{if(e.onPreview)return n?.preventDefault(),e.onPreview(t)},s=t=>{typeof e.onDownload==`function`?e.onDownload(t):t.url&&window.open(t.url)},c=t=>{var n;(n=e.onRemove)==null||n.call(e,t)},l=t=>{let{file:r}=t,i=e.iconRender||n.iconRender;if(i)return i({file:r,listType:e.listType});let a=r.status===`uploading`,o=e.isImageUrl&&e.isImageUrl(r)?W(z8,null,null):W(V8,null,null),s=W(a?FC:L8,null,null);return e.listType===`picture`?s=a?W(FC,null,null):o:e.listType===`picture-card`&&(s=a?e.locale.uploading:o),s},u=e=>{let{customIcon:t,callback:n,prefixCls:r,title:i}=e,a={type:`text`,size:`small`,title:i,onClick:()=>{n()},class:`${r}-list-item-action`};return al(t)?W(Oj,a,{icon:()=>t}):W(Oj,a,{default:()=>[W(`span`,null,[t])]})};r({handlePreview:o,handleDownload:s});let{prefixCls:d,rootPrefixCls:f}=Z(`upload`,e),p=G(()=>({[`${d.value}-list`]:!0,[`${d.value}-list-${e.listType}`]:!0})),m=G(()=>{let t=g({},hM(`${f.value}-motion-collapse`));delete t.onAfterAppear,delete t.onAfterEnter,delete t.onAfterLeave;let n=g(g({},rb(`${d.value}-${e.listType===`picture-card`?`animate-inline`:`animate`}`)),{class:p.value,appear:i.value});return e.listType===`picture-card`?n:g(g({},t),n)});return()=>{let{listType:t,locale:r,isImageUrl:i,showPreviewIcon:f,showRemoveIcon:p,showDownloadIcon:_,removeIcon:v,previewIcon:y,downloadIcon:b,progress:x,appendAction:S,itemRender:C,appendActionVisible:w}=e,T=S?.(),E=a.value;return W(Vs,h(h({},m.value),{},{tag:`div`}),{default:()=>[E.map(e=>{let{uid:a}=e;return W($ae,{key:a,locale:r,prefixCls:d.value,file:e,items:E,progress:x,listType:t,isImgUrl:i,showPreviewIcon:f,showRemoveIcon:p,showDownloadIcon:_,onPreview:o,onDownload:s,onClose:c,removeIcon:v,previewIcon:y,downloadIcon:b,itemRender:C},g(g({},n),{iconRender:l,actionIconRender:u}))}),S?Qn(W(eoe,{key:`__ant_upload_appendAction`},{default:()=>T}),[[ss,!!w]]):null]})}}}),noe=e=>{let{componentCls:t,iconCls:n}=e;return{[`${t}-wrapper`]:{[`${t}-drag`]:{position:`relative`,width:`100%`,height:`100%`,textAlign:`center`,background:e.colorFillAlter,border:`${e.lineWidth}px dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:`pointer`,transition:`border-color ${e.motionDurationSlow}`,[t]:{padding:`${e.padding}px 0`},[`${t}-btn`]:{display:`table`,width:`100%`,height:`100%`,outline:`none`},[`${t}-drag-container`]:{display:`table-cell`,verticalAlign:`middle`},[`&:not(${t}-disabled):hover`]:{borderColor:e.colorPrimaryHover},[`p${t}-drag-icon`]:{marginBottom:e.margin,[n]:{color:e.colorPrimary,fontSize:e.uploadThumbnailSize}},[`p${t}-text`]:{margin:`0 0 ${e.marginXXS}px`,color:e.colorTextHeading,fontSize:e.fontSizeLG},[`p${t}-hint`]:{color:e.colorTextDescription,fontSize:e.fontSize},[`&${t}-disabled`]:{cursor:`not-allowed`,[`p${t}-drag-icon ${n}, + p${t}-text, + p${t}-hint + `]:{color:e.colorTextDisabled}}}}}},roe=e=>{let{componentCls:t,antCls:n,iconCls:r,fontSize:i,lineHeight:a}=e,o=`${t}-list-item`,s=`${o}-actions`,c=`${o}-action`,l=Math.round(i*a);return{[`${t}-wrapper`]:{[`${t}-list`]:g(g({},Ap()),{lineHeight:e.lineHeight,[o]:{position:`relative`,height:e.lineHeight*i,marginTop:e.marginXS,fontSize:i,display:`flex`,alignItems:`center`,transition:`background-color ${e.motionDurationSlow}`,"&:hover":{backgroundColor:e.controlItemBgHover},[`${o}-name`]:g(g({},Dp),{padding:`0 ${e.paddingXS}px`,lineHeight:a,flex:`auto`,transition:`all ${e.motionDurationSlow}`}),[s]:{[c]:{opacity:0},[`${c}${n}-btn-sm`]:{height:l,border:0,lineHeight:1,"> span":{transform:`scale(1)`}},[` + ${c}:focus, + &.picture ${c} + `]:{opacity:1},[r]:{color:e.colorTextDescription,transition:`all ${e.motionDurationSlow}`},[`&:hover ${r}`]:{color:e.colorText}},[`${t}-icon ${r}`]:{color:e.colorTextDescription,fontSize:i},[`${o}-progress`]:{position:`absolute`,bottom:-e.uploadProgressOffset,width:`100%`,paddingInlineStart:i+e.paddingXS,fontSize:i,lineHeight:0,pointerEvents:`none`,"> div":{margin:0}}},[`${o}:hover ${c}`]:{opacity:1,color:e.colorText},[`${o}-error`]:{color:e.colorError,[`${o}-name, ${t}-icon ${r}`]:{color:e.colorError},[s]:{[`${r}, ${r}:hover`]:{color:e.colorError},[c]:{opacity:1}}},[`${t}-list-item-container`]:{transition:`opacity ${e.motionDurationSlow}, height ${e.motionDurationSlow}`,"&::before":{display:`table`,width:0,height:0,content:`""`}}})}}},X8=new ef(`uploadAnimateInlineIn`,{from:{width:0,height:0,margin:0,padding:0,opacity:0}}),Z8=new ef(`uploadAnimateInlineOut`,{to:{width:0,height:0,margin:0,padding:0,opacity:0}}),ioe=e=>{let{componentCls:t}=e,n=`${t}-animate-inline`;return[{[`${t}-wrapper`]:{[`${n}-appear, ${n}-enter, ${n}-leave`]:{animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseInOutCirc,animationFillMode:`forwards`},[`${n}-appear, ${n}-enter`]:{animationName:X8},[`${n}-leave`]:{animationName:Z8}}},X8,Z8]},aoe=e=>{let{componentCls:t,iconCls:n,uploadThumbnailSize:r,uploadProgressOffset:i}=e,a=`${t}-list`,o=`${a}-item`;return{[`${t}-wrapper`]:{[`${a}${a}-picture, ${a}${a}-picture-card`]:{[o]:{position:`relative`,height:r+e.lineWidth*2+e.paddingXS*2,padding:e.paddingXS,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusLG,"&:hover":{background:`transparent`},[`${o}-thumbnail`]:g(g({},Dp),{width:r,height:r,lineHeight:`${r+e.paddingSM}px`,textAlign:`center`,flex:`none`,[n]:{fontSize:e.fontSizeHeading2,color:e.colorPrimary},img:{display:`block`,width:`100%`,height:`100%`,overflow:`hidden`}}),[`${o}-progress`]:{bottom:i,width:`calc(100% - ${e.paddingSM*2}px)`,marginTop:0,paddingInlineStart:r+e.paddingXS}},[`${o}-error`]:{borderColor:e.colorError,[`${o}-thumbnail ${n}`]:{"svg path[fill='#e6f7ff']":{fill:e.colorErrorBg},"svg path[fill='#1890ff']":{fill:e.colorError}}},[`${o}-uploading`]:{borderStyle:`dashed`,[`${o}-name`]:{marginBottom:i}}}}}},ooe=e=>{let{componentCls:t,iconCls:n,fontSizeLG:r,colorTextLightSolid:i}=e,a=`${t}-list`,o=`${a}-item`,s=e.uploadPicCardSize;return{[`${t}-wrapper${t}-picture-card-wrapper`]:g(g({},Ap()),{display:`inline-block`,width:`100%`,[`${t}${t}-select`]:{width:s,height:s,marginInlineEnd:e.marginXS,marginBottom:e.marginXS,textAlign:`center`,verticalAlign:`top`,backgroundColor:e.colorFillAlter,border:`${e.lineWidth}px dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:`pointer`,transition:`border-color ${e.motionDurationSlow}`,[`> ${t}`]:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,textAlign:`center`},[`&:not(${t}-disabled):hover`]:{borderColor:e.colorPrimary}},[`${a}${a}-picture-card`]:{[`${a}-item-container`]:{display:`inline-block`,width:s,height:s,marginBlock:`0 ${e.marginXS}px`,marginInline:`0 ${e.marginXS}px`,verticalAlign:`top`},"&::after":{display:`none`},[o]:{height:`100%`,margin:0,"&::before":{position:`absolute`,zIndex:1,width:`calc(100% - ${e.paddingXS*2}px)`,height:`calc(100% - ${e.paddingXS*2}px)`,backgroundColor:e.colorBgMask,opacity:0,transition:`all ${e.motionDurationSlow}`,content:`" "`}},[`${o}:hover`]:{[`&::before, ${o}-actions`]:{opacity:1}},[`${o}-actions`]:{position:`absolute`,insetInlineStart:0,zIndex:10,width:`100%`,whiteSpace:`nowrap`,textAlign:`center`,opacity:0,transition:`all ${e.motionDurationSlow}`,[`${n}-eye, ${n}-download, ${n}-delete`]:{zIndex:10,width:r,margin:`0 ${e.marginXXS}px`,fontSize:r,cursor:`pointer`,transition:`all ${e.motionDurationSlow}`}},[`${o}-actions, ${o}-actions:hover`]:{[`${n}-eye, ${n}-download, ${n}-delete`]:{color:new zf(i).setAlpha(.65).toRgbString(),"&:hover":{color:i}}},[`${o}-thumbnail, ${o}-thumbnail img`]:{position:`static`,display:`block`,width:`100%`,height:`100%`,objectFit:`contain`},[`${o}-name`]:{display:`none`,textAlign:`center`},[`${o}-file + ${o}-name`]:{position:`absolute`,bottom:e.margin,display:`block`,width:`calc(100% - ${e.paddingXS*2}px)`},[`${o}-uploading`]:{[`&${o}`]:{backgroundColor:e.colorFillAlter},[`&::before, ${n}-eye, ${n}-download, ${n}-delete`]:{display:`none`}},[`${o}-progress`]:{bottom:e.marginXL,width:`calc(100% - ${e.paddingXS*2}px)`,paddingInlineStart:0}}})}},soe=e=>{let{componentCls:t}=e;return{[`${t}-rtl`]:{direction:`rtl`}}},coe=e=>{let{componentCls:t,colorTextDisabled:n}=e;return{[`${t}-wrapper`]:g(g({},Op(e)),{[t]:{outline:0,"input[type='file']":{cursor:`pointer`}},[`${t}-select`]:{display:`inline-block`},[`${t}-disabled`]:{color:n,cursor:`not-allowed`}})}},loe=Fp(`Upload`,e=>{let{fontSizeHeading3:t,fontSize:n,lineHeight:r,lineWidth:i,controlHeightLG:a}=e,o=Math.round(n*r),s=Rp(e,{uploadThumbnailSize:t*2,uploadProgressOffset:o/2+i,uploadPicCardSize:a*2.55});return[coe(s),noe(s),aoe(s),ooe(s),roe(s),ioe(s),soe(s),vk(s)]}),uoe=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},doe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ic.value??d.value),[p,m]=gS(e.defaultFileList||[],{value:vn(e,`fileList`),postState:e=>{let t=Date.now();return(e??[]).map((e,n)=>(!e.uid&&!Object.isFrozen(e)&&(e.uid=`__AUTO__${t}_${n}__`),e))}}),_=B(`drop`),v=B(null);$r(()=>{wh(e.fileList!==void 0||r.value===void 0,`Upload`,"`value` is not a valid prop, do you mean `fileList`?"),wh(e.transformFile===void 0,`Upload`,"`transformFile` is deprecated. Please use `beforeUpload` directly."),wh(e.remove===void 0,`Upload`,"`remove` props is deprecated. Please use `remove` event.")});let y=(t,n,r)=>{var i,o;let s=[...n];e.maxCount===1?s=s.slice(-1):e.maxCount&&(s=s.slice(0,e.maxCount)),m(s);let c={file:t,fileList:s};r&&(c.event=r),(i=e[`onUpdate:fileList`])==null||i.call(e,c.fileList),(o=e.onChange)==null||o.call(e,c),a.onFieldChange()},b=(t,n)=>uoe(this,void 0,void 0,function*(){let{beforeUpload:r,transformFile:i}=e,a=t;if(r){let e=yield r(t,n);if(e===!1)return!1;if(delete t[Q8],e===Q8)return Object.defineProperty(t,Q8,{value:!0,configurable:!0}),!1;typeof e==`object`&&e&&(a=e)}return i&&(a=yield i(a)),a}),x=e=>{let t=e.filter(e=>!e.file[Q8]);if(!t.length)return;let n=t.map(e=>U8(e.file)),r=[...p.value];n.forEach(e=>{r=W8(e,r)}),n.forEach((e,n)=>{let i=e;if(t[n].parsedFile)e.status=`uploading`;else{let{originFileObj:t}=e,n;try{n=new File([t],t.name,{type:t.type})}catch{n=new Blob([t],{type:t.type}),n.name=t.name,n.lastModifiedDate=new Date,n.lastModified=new Date().getTime()}n.uid=e.uid,i=n}y(i,r)})},S=(e,t,n)=>{try{typeof e==`string`&&(e=JSON.parse(e))}catch{}if(!G8(t,p.value))return;let r=U8(t);r.status=`done`,r.percent=100,r.response=e,r.xhr=n;let i=W8(r,p.value);y(r,i)},C=(e,t)=>{if(!G8(t,p.value))return;let n=U8(t);n.status=`uploading`,n.percent=e.percent;let r=W8(n,p.value);y(n,r,e)},w=(e,t,n)=>{if(!G8(n,p.value))return;let r=U8(n);r.error=e,r.response=t,r.status=`error`;let i=W8(r,p.value);y(r,i)},T=t=>{let n,r=e.onRemove||e.remove;Promise.resolve(typeof r==`function`?r(t):r).then(e=>{var r,i;if(e===!1)return;let a=qae(t,p.value);a&&(n=g(g({},t),{status:`removed`}),(r=p.value)==null||r.forEach(e=>{let t=n.uid===void 0?`name`:`uid`;e[t]===n[t]&&!Object.isFrozen(e)&&(e.status=`removed`)}),(i=v.value)==null||i.abort(n),y(n,a))})},E=t=>{var n;_.value=t.type,t.type===`drop`&&((n=e.onDrop)==null||n.call(e,t))};i({onBatchStart:x,onSuccess:S,onProgress:C,onError:w,fileList:p,upload:v});let[D]=$l(`Upload`,Zl.Upload,G(()=>e.locale)),O=(t,r)=>{let{removeIcon:i,previewIcon:a,downloadIcon:s,previewFile:c,onPreview:l,onDownload:u,isImageUrl:d,progress:m,itemRender:h,iconRender:_,showUploadList:v}=e,{showDownloadIcon:y,showPreviewIcon:b,showRemoveIcon:x}=typeof v==`boolean`?{}:v;return v?W(toe,{prefixCls:o.value,listType:e.listType,items:p.value,previewFile:c,onPreview:l,onDownload:u,onRemove:T,showRemoveIcon:!f.value&&x,showPreviewIcon:b,showDownloadIcon:y,removeIcon:i,previewIcon:a,downloadIcon:s,iconRender:_,locale:D.value,isImageUrl:d,progress:m,itemRender:h,appendActionVisible:r,appendAction:t},g({},n)):t?.()};return()=>{let{listType:t,type:i}=e,{class:c,style:d}=r,m=doe(r,[`class`,`style`]),y=g(g(g({onBatchStart:x,onError:w,onProgress:C,onSuccess:S},m),e),{id:e.id??a.id.value,prefixCls:o.value,beforeUpload:b,onChange:void 0,disabled:f.value});delete y.remove,(!n.default||f.value)&&delete y.id;let T={[`${o.value}-rtl`]:s.value===`rtl`};if(i===`drag`){let e=K(o.value,{[`${o.value}-drag`]:!0,[`${o.value}-drag-uploading`]:p.value.some(e=>e.status===`uploading`),[`${o.value}-drag-hover`]:_.value===`dragover`,[`${o.value}-disabled`]:f.value,[`${o.value}-rtl`]:s.value===`rtl`},r.class,u.value);return l(W(`span`,h(h({},r),{},{class:K(`${o.value}-wrapper`,T,c,u.value)}),[W(`div`,{class:e,onDrop:E,onDragover:E,onDragleave:E,style:r.style},[W(F8,h(h({},y),{},{ref:v,class:`${o.value}-btn`}),h({default:()=>[W(`div`,{class:`${o.value}-drag-container`},[n.default?.call(n)])]},n))]),O()]))}let D=K(o.value,{[`${o.value}-select`]:!0,[`${o.value}-select-${t}`]:!0,[`${o.value}-disabled`]:f.value,[`${o.value}-rtl`]:s.value===`rtl`}),k=Gc(n.default?.call(n)),A=e=>W(`div`,{class:D,style:e},[W(F8,h(h({},y),{},{ref:v}),n)]);return l(t===`picture-card`?W(`span`,h(h({},r),{},{class:K(`${o.value}-wrapper`,`${o.value}-picture-card-wrapper`,T,r.class,u.value)}),[O(A,!!(k&&k.length))]):W(`span`,h(h({},r),{},{class:K(`${o.value}-wrapper`,T,r.class,u.value)}),[A(k&&k.length?void 0:{display:`none`}),O()]))}}}),e5=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{height:t}=e,i=e5(e,[`height`]),{style:a}=r,o=e5(r,[`style`]);return W($8,g(g(g({},i),o),{type:`drag`,style:g(g({},a),{height:typeof t==`number`?`${t}px`:t})}),n)}}}),foe=t5,poe=g($8,{Dragger:t5,LIST_IGNORE:Q8,install(e){return e.component($8.name,$8),e.component(t5.name,t5),e}});function moe(e){return e.replace(/([A-Z])/g,`-$1`).toLowerCase()}function hoe(e){return Object.keys(e).map(t=>`${moe(t)}: ${e[t]};`).join(` `)}function n5(){return window.devicePixelRatio||1}function r5(e,t,n,r){e.translate(t,n),e.rotate(Math.PI/180*Number(r)),e.translate(-t,-n)}var goe=(e,t)=>{let n=!1;return e.removedNodes.length&&(n=Array.from(e.removedNodes).some(e=>e===t)),e.type===`attributes`&&e.target===t&&(n=!0),n},_oe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i2&&arguments[2]!==void 0?arguments[2]:{},{window:r=GP}=n,i=_oe(n,[`window`]),a,o=UP(()=>r&&`MutationObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=H(()=>VP(e),e=>{s(),o.value&&r&&e&&(a=new MutationObserver(t),a.observe(e,i))},{immediate:!0}),l=()=>{s(),c()};return zP(l),{isSupported:o,stop:l}}var i5=2,a5=3,yoe=_l(U({name:`AWatermark`,inheritAttrs:!1,props:Bc({zIndex:Number,rotate:Number,width:Number,height:Number,image:String,content:Sl([String,Array]),font:q(),rootClassName:String,gap:xl(),offset:xl()},{zIndex:9,rotate:-22,font:{},gap:[100,100]}),setup(e,t){let{slots:n,attrs:r}=t,[,i]=Jp(),a=V(),o=V(),s=V(!1),c=G(()=>e.gap?.[0]??100),l=G(()=>e.gap?.[1]??100),u=G(()=>c.value/2),d=G(()=>l.value/2),f=G(()=>e.offset?.[0]??u.value),p=G(()=>e.offset?.[1]??d.value),m=G(()=>e.font?.fontSize??i.value.fontSizeLG),_=G(()=>e.font?.fontWeight??`normal`),v=G(()=>e.font?.fontStyle??`normal`),y=G(()=>e.font?.fontFamily??`sans-serif`),b=G(()=>e.font?.color??i.value.colorFill),x=G(()=>{let t={zIndex:e.zIndex??9,position:`absolute`,left:0,top:0,width:`100%`,height:`100%`,pointerEvents:`none`,backgroundRepeat:`repeat`},n=f.value-u.value,r=p.value-d.value;return n>0&&(t.left=`${n}px`,t.width=`calc(100% - ${n}px)`,n=0),r>0&&(t.top=`${r}px`,t.height=`calc(100% - ${r}px)`,r=0),t.backgroundPosition=`${n}px ${r}px`,t}),S=()=>{o.value&&=(o.value.remove(),void 0)},C=(e,t)=>{var n;a.value&&o.value&&(s.value=!0,o.value.setAttribute(`style`,hoe(g(g({},x.value),{backgroundImage:`url('${e}')`,backgroundSize:`${(c.value+t)*i5}px`}))),(n=a.value)==null||n.append(o.value),setTimeout(()=>{s.value=!1}))},w=t=>{let n=120,r=64,i=e.content,a=e.image,o=e.width,s=e.height;if(!a&&t.measureText){t.font=`${Number(m.value)}px ${y.value}`;let e=Array.isArray(i)?i:[i],a=e.map(e=>t.measureText(e).width);n=Math.ceil(Math.max(...a)),r=Number(m.value)*e.length+(e.length-1)*a5}return[o??n,s??r]},T=(t,n,r,i,a)=>{let o=n5(),s=e.content,c=Number(m.value)*o;t.font=`${v.value} normal ${_.value} ${c}px/${a}px ${y.value}`,t.fillStyle=b.value,t.textAlign=`center`,t.textBaseline=`top`,t.translate(i/2,0),(Array.isArray(s)?s:[s])?.forEach((e,i)=>{t.fillText(e??``,n,r+i*(c+a5*o))})},E=()=>{let t=document.createElement(`canvas`),n=t.getContext(`2d`),r=e.image,i=e.rotate??-22;if(n){o.value||=document.createElement(`div`);let e=n5(),[a,s]=w(n),u=(c.value+a)*e,d=(l.value+s)*e;t.setAttribute(`width`,`${u*i5}px`),t.setAttribute(`height`,`${d*i5}px`);let f=c.value*e/2,p=l.value*e/2,m=a*e,h=s*e,g=(m+c.value*e)/2,_=(h+l.value*e)/2,v=f+u,y=p+d,b=g+u,x=_+d;if(n.save(),r5(n,g,_,i),r){let e=new Image;e.onload=()=>{n.drawImage(e,f,p,m,h),n.restore(),r5(n,b,x,i),n.drawImage(e,v,y,m,h),C(t.toDataURL(),a)},e.crossOrigin=`anonymous`,e.referrerPolicy=`no-referrer`,e.src=r}else T(n,f,p,m,h),n.restore(),r5(n,b,x,i),T(n,v,y,m,h),C(t.toDataURL(),a)}};return $r(()=>{E()}),H(()=>[e,i.value.colorFill,i.value.fontSizeLG],()=>{E()},{deep:!0,flush:`post`}),ni(()=>{S()}),voe(a,e=>{s.value||e.forEach(e=>{goe(e,o.value)&&(S(),E())})},{attributes:!0,subtree:!0,childList:!0,attributeFilter:[`style`,`class`]}),()=>W(`div`,h(h({},r),{},{ref:a,class:[r.class,e.rootClassName],style:[{position:`relative`},r.style]}),[n.default?.call(n)])}}));function o5(e,t){return{[`${e}, ${e}:hover, ${e}:focus`]:{color:t.colorTextDisabled,cursor:`not-allowed`}}}function s5(e){return{backgroundColor:e.bgColorSelected,boxShadow:e.boxShadow}}var boe=g({overflow:`hidden`},Dp),xoe=e=>{let{componentCls:t}=e;return{[t]:g(g(g(g(g({},Op(e)),{display:`inline-block`,padding:e.segmentedContainerPadding,color:e.labelColor,backgroundColor:e.bgColor,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,[`${t}-group`]:{position:`relative`,display:`flex`,alignItems:`stretch`,justifyItems:`flex-start`,width:`100%`},[`&${t}-rtl`]:{direction:`rtl`},[`&${t}-block`]:{display:`flex`},[`&${t}-block ${t}-item`]:{flex:1,minWidth:0},[`${t}-item`]:{position:`relative`,textAlign:`center`,cursor:`pointer`,transition:`color ${e.motionDurationMid} ${e.motionEaseInOut}`,borderRadius:e.borderRadiusSM,"&-selected":g(g({},s5(e)),{color:e.labelColorHover}),"&::after":{content:`""`,position:`absolute`,width:`100%`,height:`100%`,top:0,insetInlineStart:0,borderRadius:`inherit`,transition:`background-color ${e.motionDurationMid}`,pointerEvents:`none`},[`&:hover:not(${t}-item-selected):not(${t}-item-disabled)`]:{color:e.labelColorHover,"&::after":{backgroundColor:e.bgColorHover}},"&-label":g({minHeight:e.controlHeight-e.segmentedContainerPadding*2,lineHeight:`${e.controlHeight-e.segmentedContainerPadding*2}px`,padding:`0 ${e.segmentedPaddingHorizontal}px`},boe),"&-icon + *":{marginInlineStart:e.marginSM/2},"&-input":{position:`absolute`,insetBlockStart:0,insetInlineStart:0,width:0,height:0,opacity:0,pointerEvents:`none`}},[`${t}-thumb`]:g(g({},s5(e)),{position:`absolute`,insetBlockStart:0,insetInlineStart:0,width:0,height:`100%`,padding:`${e.paddingXXS}px 0`,borderRadius:e.borderRadiusSM,[`& ~ ${t}-item:not(${t}-item-selected):not(${t}-item-disabled)::after`]:{backgroundColor:`transparent`}}),[`&${t}-lg`]:{borderRadius:e.borderRadiusLG,[`${t}-item-label`]:{minHeight:e.controlHeightLG-e.segmentedContainerPadding*2,lineHeight:`${e.controlHeightLG-e.segmentedContainerPadding*2}px`,padding:`0 ${e.segmentedPaddingHorizontal}px`,fontSize:e.fontSizeLG},[`${t}-item, ${t}-thumb`]:{borderRadius:e.borderRadius}},[`&${t}-sm`]:{borderRadius:e.borderRadiusSM,[`${t}-item-label`]:{minHeight:e.controlHeightSM-e.segmentedContainerPadding*2,lineHeight:`${e.controlHeightSM-e.segmentedContainerPadding*2}px`,padding:`0 ${e.segmentedPaddingHorizontalSM}px`},[`${t}-item, ${t}-thumb`]:{borderRadius:e.borderRadiusXS}}}),o5(`&-disabled ${t}-item`,e)),o5(`${t}-item-disabled`,e)),{[`${t}-thumb-motion-appear-active`]:{transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOut}, width ${e.motionDurationSlow} ${e.motionEaseInOut}`,willChange:`transform, width`}})}},Soe=Fp(`Segmented`,e=>{let{lineWidthBold:t,lineWidth:n,colorTextLabel:r,colorText:i,colorFillSecondary:a,colorBgLayout:o,colorBgElevated:s}=e;return[xoe(Rp(e,{segmentedPaddingHorizontal:e.controlPaddingHorizontal-n,segmentedPaddingHorizontalSM:e.controlPaddingHorizontalSM-n,segmentedContainerPadding:t,labelColor:r,labelColorHover:i,bgColor:o,bgColorHover:a,bgColorSelected:s}))]}),c5=e=>e?{left:e.offsetLeft,right:e.parentElement.clientWidth-e.clientWidth-e.offsetLeft,width:e.clientWidth}:null,l5=e=>e===void 0?void 0:`${e}px`,Coe=U({props:{value:yl(),getValueIndex:yl(),prefixCls:yl(),motionName:yl(),onMotionStart:yl(),onMotionEnd:yl(),direction:yl(),containerRef:yl()},emits:[`motionStart`,`motionEnd`],setup(e,t){let{emit:n}=t,r=B(),i=t=>{let n=e.getValueIndex(t),r=e.containerRef.value?.querySelectorAll(`.${e.prefixCls}-item`)[n];return r?.offsetParent&&r},a=B(null),o=B(null);H(()=>e.value,(e,t)=>{let r=i(t),s=i(e),c=c5(r),l=c5(s);a.value=c,o.value=l,n(r&&s?`motionStart`:`motionEnd`)},{flush:`post`});let s=G(()=>e.direction===`rtl`?l5(-a.value?.right):l5(a.value?.left)),c=G(()=>e.direction===`rtl`?l5(-o.value?.right):l5(o.value?.left)),l,u=e=>{clearTimeout(l),zn(()=>{e&&(e.style.transform=`translateX(var(--thumb-start-left))`,e.style.width=`var(--thumb-start-width)`)})},d=t=>{l=setTimeout(()=>{t&&(pM(t,`${e.motionName}-appear-active`),t.style.transform=`translateX(var(--thumb-active-left))`,t.style.width=`var(--thumb-active-width)`)})},f=t=>{a.value=null,o.value=null,t&&(t.style.transform=null,t.style.width=null,mM(t,`${e.motionName}-appear-active`)),n(`motionEnd`)},p=G(()=>({"--thumb-start-left":s.value,"--thumb-start-width":l5(a.value?.width),"--thumb-active-left":c.value,"--thumb-active-width":l5(o.value?.width)}));return ni(()=>{clearTimeout(l)}),()=>{let t={ref:r,style:p.value,class:[`${e.prefixCls}-thumb`]};return W(Uo,{appear:!0,onBeforeEnter:u,onEnter:d,onAfterEnter:f},{default:()=>[!a.value||!o.value?null:W(`div`,t,null)]})}}});function woe(e){return e.map(e=>typeof e==`object`&&e?e:{label:e?.toString(),title:e?.toString(),value:e})}var Toe=()=>({prefixCls:String,options:xl(),block:J(),disabled:J(),size:X(),value:g(g({},Sl([String,Number])),{required:!0}),motionName:String,onChange:Y(),"onUpdate:value":Y()}),u5=(e,t)=>{let{slots:n,emit:r}=t,{value:i,disabled:a,payload:o,title:s,prefixCls:c,label:l=n.label,checked:u,className:d}=e,f=e=>{a||r(`change`,e,i)};return W(`label`,{class:K({[`${c}-item-disabled`]:a},d)},[W(`input`,{class:`${c}-item-input`,type:`radio`,disabled:a,checked:u,onChange:f},null),W(`div`,{class:`${c}-item-label`,title:typeof s==`string`?s:``},[typeof l==`function`?l({value:i,disabled:a,payload:o,title:s}):l??i])])};u5.inheritAttrs=!1;var Eoe=_l(U({name:`ASegmented`,inheritAttrs:!1,props:Bc(Toe(),{options:[],motionName:`thumb-motion`}),slots:Object,setup(e,t){let{emit:n,slots:r,attrs:i}=t,{prefixCls:a,direction:o,size:s}=Z(`segmented`,e),[c,l]=Soe(a),u=V(),d=V(!1),f=G(()=>woe(e.options)),p=(t,r)=>{e.disabled||(n(`update:value`,r),n(`change`,r))};return()=>{let t=a.value;return c(W(`div`,h(h({},i),{},{class:K(t,{[l.value]:!0,[`${t}-block`]:e.block,[`${t}-disabled`]:e.disabled,[`${t}-lg`]:s.value==`large`,[`${t}-sm`]:s.value==`small`,[`${t}-rtl`]:o.value===`rtl`},i.class),ref:u}),[W(`div`,{class:`${t}-group`},[W(Coe,{containerRef:u,prefixCls:t,value:e.value,motionName:`${t}-${e.motionName}`,direction:o.value,getValueIndex:e=>f.value.findIndex(t=>t.value===e),onMotionStart:()=>{d.value=!0},onMotionEnd:()=>{d.value=!1}},null),f.value.map(n=>W(u5,h(h({key:n.value,prefixCls:t,checked:n.value===e.value,onChange:p},n),{},{className:K(n.className,`${t}-item`,{[`${t}-item-selected`]:n.value===e.value&&!d.value}),disabled:!!e.disabled||!!n.disabled}),r))])]))}}})),Doe=e=>{let{componentCls:t}=e;return{[t]:g(g({},Op(e)),{display:`flex`,justifyContent:`center`,alignItems:`center`,padding:e.paddingSM,backgroundColor:e.colorWhite,borderRadius:e.borderRadiusLG,border:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,position:`relative`,width:`100%`,height:`100%`,overflow:`hidden`,[`& > ${t}-mask`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,zIndex:10,display:`flex`,flexDirection:`column`,justifyContent:`center`,alignItems:`center`,width:`100%`,height:`100%`,color:e.colorText,lineHeight:e.lineHeight,background:e.QRCodeMaskBackgroundColor,textAlign:`center`,[`& > ${t}-expired , & > ${t}-scanned`]:{color:e.QRCodeTextColor}},"&-icon":{marginBlockEnd:e.marginXS,fontSize:e.controlHeight}}),[`${t}-borderless`]:{borderColor:`transparent`}}},Ooe=Fp(`QRCode`,e=>Doe(Rp(e,{QRCodeTextColor:`rgba(0, 0, 0, 0.88)`,QRCodeMaskBackgroundColor:`rgba(255, 255, 255, 0.96)`}))),koe={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z`}}]},name:`reload`,theme:`outlined`};function d5(e){for(var t=1;t({size:{type:Number,default:160},value:{type:String,required:!0},type:X(`canvas`),color:String,bgColor:String,includeMargin:Boolean,imageSettings:q()}),joe=()=>g(g({},p5()),{errorLevel:X(`M`),icon:String,iconSize:{type:Number,default:40},status:X(`active`),bordered:{type:Boolean,default:!0}}),m5;(function(e){class t{static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:40,c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1,l=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;if(!(t.MIN_VERSION<=o&&o<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=o;;u++){let n=t.getNumDataCodewords(u,r)*8,i=a.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.lengthm[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],et.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e>>9)*1335;let a=(t<<10|n)^21522;i(!(a>>>15));for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(!(t>>>18));for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;ne+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.lengtht.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(!(n>>>8)),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}}t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return!!(e>>>t&1)}function i(e){if(!e)throw Error(`Assertion error`)}class a{static makeBytes(e){let t=[];for(let r of e)n(r,8,t);return new a(a.Mode.BYTE,e.length,t)}static makeNumeric(e){if(!a.isNumeric(e))throw RangeError(`String contains non-numeric characters`);let t=[];for(let r=0;r=1<1&&arguments[1]!==void 0?arguments[1]:0,n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null)n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;else if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`)}else a&&i===null&&(i=o)})}),n.join(``)}function C5(e,t){return e.slice().map((e,n)=>n=t.y+t.h?e:e.map((e,n)=>n=t.x+t.w?e:!1))}function w5(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Poe),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);d={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}return{x:l,y:u,h:c,w:s,excavation:d}}function T5(e,t){return t==null?e?Moe:Noe:Math.floor(t)}var Foe=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Ioe=U({name:`QRCodeCanvas`,inheritAttrs:!1,props:g(g({},p5()),{level:String,bgColor:String,fgColor:String,marginSize:Number}),setup(e,t){let{attrs:n,expose:r}=t,i=G(()=>e.imageSettings?.src),a=V(null),o=V(null),s=V(!1);return r({toDataURL:(e,t)=>a.value?.toDataURL(e,t)}),ar(()=>{let{value:t,size:n=_5,level:r=v5,bgColor:i=y5,fgColor:c=b5,includeMargin:l=x5,marginSize:u,imageSettings:d}=e;if(a.value!=null){let e=a.value,f=e.getContext(`2d`);if(!f)return;let p=h5.QrCode.encodeText(t,g5[r]).getModules(),m=T5(l,u),h=p.length+m*2,g=w5(p,n,m,d),_=o.value,v=s.value&&g!=null&&_!==null&&_.complete&&_.naturalHeight!==0&&_.naturalWidth!==0;v&&g.excavation!=null&&(p=C5(p,g.excavation));let y=window.devicePixelRatio||1;e.height=e.width=n*y;let b=n/h*y;f.scale(b,b),f.fillStyle=i,f.fillRect(0,0,h,h),f.fillStyle=c,Foe?f.fill(new Path2D(S5(p,m))):p.forEach(function(e,t){e.forEach(function(e,n){e&&f.fillRect(n+m,t+m,1,1)})}),v&&f.drawImage(_,g.x+m,g.y+m,g.w,g.h)}},{flush:`post`}),H(i,()=>{s.value=!1}),()=>{let t=e.size??_5,r={height:`${t}px`,width:`${t}px`},c=null;return i.value!=null&&(c=W(`img`,{src:i.value,key:i.value,style:{display:`none`},onLoad:()=>{s.value=!0},ref:o},null)),W(Ma,null,[W(`canvas`,h(h({},n),{},{style:[r,n.style],ref:a}),null),c])}}}),Loe=U({name:`QRCodeSVG`,inheritAttrs:!1,props:g(g({},p5()),{color:String,level:String,bgColor:String,fgColor:String,marginSize:Number,title:String}),setup(e){let t=null,n=null,r=null,i=null,a=null,o=null;return ar(()=>{let{value:s,size:c=_5,level:l=v5,includeMargin:u=x5,marginSize:d,imageSettings:f}=e;t=h5.QrCode.encodeText(s,g5[l]).getModules(),n=T5(u,d),r=t.length+n*2,i=w5(t,c,n,f),f!=null&&i!=null&&(i.excavation!=null&&(t=C5(t,i.excavation)),o=W(`image`,{"xlink:href":f.src,height:i.h,width:i.w,x:i.x+n,y:i.y+n,preserveAspectRatio:`none`},null)),a=S5(t,n)}),()=>{let t=e.bgColor&&y5,n=e.fgColor&&b5;return W(`svg`,{height:e.size,width:e.size,viewBox:`0 0 ${r} ${r}`},[!!e.title&&W(`title`,null,[e.title]),W(`path`,{fill:t,d:`M0,0 h${r}v${r}H0z`,"shape-rendering":`crispEdges`},null),W(`path`,{fill:n,d:a,"shape-rendering":`crispEdges`},null),o])}}}),Roe=_l(U({name:`AQrcode`,inheritAttrs:!1,props:joe(),emits:[`refresh`],setup(e,t){let{emit:n,attrs:r,expose:i}=t,[a]=$l(`QRCode`),{prefixCls:o}=Z(`qrcode`,e),[s,c]=Ooe(o),[,l]=Jp(),u=B();i({toDataURL:(e,t)=>u.value?.toDataURL(e,t)});let d=G(()=>{let{value:t,icon:n=``,size:r=160,iconSize:i=40,color:a=l.value.colorText,bgColor:o=`transparent`,errorLevel:s=`M`}=e,c={src:n,x:void 0,y:void 0,height:i,width:i,excavate:!0};return{value:t,size:r-(l.value.paddingSM+l.value.lineWidth)*2,level:s,bgColor:o,fgColor:a,imageSettings:n?c:void 0}});return()=>{let t=o.value;return s(W(`div`,h(h({},r),{},{style:[r.style,{width:`${e.size}px`,height:`${e.size}px`,backgroundColor:d.value.bgColor}],class:[c.value,t,{[`${t}-borderless`]:!e.bordered}]}),[e.status!==`active`&&W(`div`,{class:`${t}-mask`},[e.status===`loading`&&W(EX,null,null),e.status===`expired`&&W(Ma,null,[W(`p`,{class:`${t}-expired`},[a.value.expired]),W(Oj,{type:`link`,onClick:e=>n(`refresh`,e)},{default:()=>[a.value.refresh],icon:()=>W(f5,null,null)})]),e.status===`scanned`&&W(`p`,{class:`${t}-scanned`},[a.value.scanned])]),e.type===`canvas`?W(Ioe,h({ref:u},d.value),null):W(Loe,d.value,null)]))}}}));function zoe(e){let t=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,{top:r,right:i,bottom:a,left:o}=e.getBoundingClientRect();return r>=0&&o>=0&&i<=t&&a<=n}function Boe(e,t,n,r){let[i,a]=_S(void 0);ar(()=>{let t=typeof e.value==`function`?e.value():e.value;a(t||null)},{flush:`post`});let[o,s]=_S(null),c=()=>{if(!t.value)s(null);else if(i.value){!zoe(i.value)&&t.value&&i.value.scrollIntoView(r.value);let{left:e,top:n,width:a,height:c}=i.value.getBoundingClientRect(),l={left:e,top:n,width:a,height:c,radius:0};JSON.stringify(o.value)!==JSON.stringify(l)&&s(l)}else s(null)};return $r(()=>{H([t,i],()=>{c()},{flush:`post`,immediate:!0}),window.addEventListener(`resize`,c)}),ni(()=>{window.removeEventListener(`resize`,c)}),[G(()=>{if(!o.value)return o.value;let e=n.value?.offset||6,t=n.value?.radius||2;return{left:o.value.left-e,top:o.value.top-e,width:o.value.width+e*2,height:o.value.height+e*2,radius:t}}),i]}var Voe=()=>({arrow:Sl([Boolean,Object]),target:Sl([String,Function,Object]),title:Sl([String,Object]),description:Sl([String,Object]),placement:X(),mask:Sl([Object,Boolean],!0),className:{type:String},style:q(),scrollIntoViewOptions:Sl([Boolean,Object])}),E5=()=>g(g({},Voe()),{prefixCls:{type:String},total:{type:Number},current:{type:Number},onClose:Y(),onFinish:Y(),renderPanel:Y(),onPrev:Y(),onNext:Y()}),Hoe=U({name:`DefaultPanel`,inheritAttrs:!1,props:E5(),setup(e,t){let{attrs:n}=t;return()=>{let{prefixCls:t,current:r,total:i,title:a,description:o,onClose:s,onPrev:c,onNext:l,onFinish:u}=e;return W(`div`,h(h({},n),{},{class:K(`${t}-content`,n.class)}),[W(`div`,{class:`${t}-inner`},[W(`button`,{type:`button`,onClick:s,"aria-label":`Close`,class:`${t}-close`},[W(`span`,{class:`${t}-close-x`},[Qa(`×`)])]),W(`div`,{class:`${t}-header`},[W(`div`,{class:`${t}-title`},[a])]),W(`div`,{class:`${t}-description`},[o]),W(`div`,{class:`${t}-footer`},[W(`div`,{class:`${t}-sliders`},[i>1?[...Array.from({length:i}).keys()].map((e,t)=>W(`span`,{key:e,class:t===r?`active`:``},null)):null]),W(`div`,{class:`${t}-buttons`},[r===0?null:W(`button`,{class:`${t}-prev-btn`,onClick:c},[Qa(`Prev`)]),r===i-1?W(`button`,{class:`${t}-finish-btn`,onClick:u},[Qa(`Finish`)]):W(`button`,{class:`${t}-next-btn`,onClick:l},[Qa(`Next`)])])])])])}}}),Uoe=U({name:`TourStep`,inheritAttrs:!1,props:E5(),setup(e,t){let{attrs:n}=t;return()=>{let{current:t,renderPanel:r}=e;return W(Ma,null,[typeof r==`function`?r(g(g({},n),e),t):W(Hoe,h(h({},n),e),null)])}}}),D5=0,Woe=hu();function Goe(){let e;return Woe?(e=D5,D5+=1):e=`TEST_OR_SSR`,e}function Koe(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:B(``),t=`vc_unique_${Goe()}`;return e.value||t}var O5={fill:`transparent`,"pointer-events":`auto`},qoe=U({name:`TourMask`,props:{prefixCls:{type:String},pos:q(),rootClassName:{type:String},showMask:J(),fill:{type:String,default:`rgba(0,0,0,0.5)`},open:J(),animated:Sl([Boolean,Object]),zIndex:{type:Number}},setup(e,t){let{attrs:n}=t,r=Koe();return()=>{let{prefixCls:t,open:i,rootClassName:a,pos:o,showMask:s,fill:c,animated:l,zIndex:u}=e,d=`${t}-mask-${r}`,f=typeof l==`object`?l?.placeholder:l;return W(Eb,{visible:i,autoLock:!0},{default:()=>i&&W(`div`,h(h({},n),{},{class:K(`${t}-mask`,a,n.class),style:[{position:`fixed`,left:0,right:0,top:0,bottom:0,zIndex:u,pointerEvents:`none`},n.style]}),[s?W(`svg`,{style:{width:`100%`,height:`100%`}},[W(`defs`,null,[W(`mask`,{id:d},[W(`rect`,{x:`0`,y:`0`,width:`100vw`,height:`100vh`,fill:`white`},null),o&&W(`rect`,{x:o.left,y:o.top,rx:o.radius,width:o.width,height:o.height,fill:`black`,class:f?`${t}-placeholder-animated`:``},null)])]),W(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:c,mask:`url(#${d})`},null),o&&W(Ma,null,[W(`rect`,h(h({},O5),{},{x:`0`,y:`0`,width:`100%`,height:o.top}),null),W(`rect`,h(h({},O5),{},{x:`0`,y:`0`,width:o.left,height:`100%`}),null),W(`rect`,h(h({},O5),{},{x:`0`,y:o.top+o.height,width:`100%`,height:`calc(100vh - ${o.top+o.height}px)`}),null),W(`rect`,h(h({},O5),{},{x:o.left+o.width,y:`0`,width:`calc(100vw - ${o.left+o.width}px)`,height:`100%`}),null)])]):null])})}}}),Joe=[0,0],k5={left:{points:[`cr`,`cl`],offset:[-8,0]},right:{points:[`cl`,`cr`],offset:[8,0]},top:{points:[`bc`,`tc`],offset:[0,-8]},bottom:{points:[`tc`,`bc`],offset:[0,8]},topLeft:{points:[`bl`,`tl`],offset:[0,-8]},leftTop:{points:[`tr`,`tl`],offset:[-8,0]},topRight:{points:[`br`,`tr`],offset:[0,-8]},rightTop:{points:[`tl`,`tr`],offset:[8,0]},bottomRight:{points:[`tr`,`br`],offset:[0,8]},rightBottom:{points:[`bl`,`br`],offset:[8,0]},bottomLeft:{points:[`tl`,`bl`],offset:[0,8]},leftBottom:{points:[`br`,`bl`],offset:[-8,0]}};function A5(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0],t={};return Object.keys(k5).forEach(n=>{t[n]=g(g({},k5[n]),{autoArrow:e,targetOffset:Joe})}),t}A5();var Yoe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{builtinPlacements:e,popupAlign:t}=Rh();return{builtinPlacements:e,popupAlign:t,steps:xl(),open:J(),defaultCurrent:{type:Number},current:{type:Number},onChange:Y(),onClose:Y(),onFinish:Y(),mask:Sl([Boolean,Object],!0),arrow:Sl([Boolean,Object],!0),rootClassName:{type:String},placement:X(`bottom`),prefixCls:{type:String,default:`rc-tour`},renderPanel:Y(),gap:q(),animated:Sl([Boolean,Object]),scrollIntoViewOptions:Sl([Boolean,Object],!0),zIndex:{type:Number,default:1001}}},Xoe=U({name:`Tour`,inheritAttrs:!1,props:Bc(M5(),{}),setup(e){let{defaultCurrent:t,placement:n,mask:r,scrollIntoViewOptions:i,open:a,gap:o,arrow:s}=hn(e),c=B(),[l,u]=gS(0,{value:G(()=>e.current),defaultValue:t.value}),[d,f]=gS(void 0,{value:G(()=>e.open),postState:t=>l.value<0||l.value>=e.steps.length?!1:t??!0}),p=V(d.value);ar(()=>{d.value&&!p.value&&u(0),p.value=d.value});let m=G(()=>e.steps[l.value]||{}),_=G(()=>m.value.placement??n.value),v=G(()=>d.value&&(m.value.mask??r.value)),y=G(()=>m.value.scrollIntoViewOptions??i.value),[b,x]=Boe(G(()=>m.value.target),a,o,y),S=G(()=>x.value?m.value.arrow===void 0?s.value:m.value.arrow:!1),C=G(()=>typeof S.value==`object`&&S.value.pointAtCenter);H(C,()=>{var e;(e=c.value)==null||e.forcePopupAlign()}),H(l,()=>{var e;(e=c.value)==null||e.forcePopupAlign()});let w=t=>{var n;u(t),(n=e.onChange)==null||n.call(e,t)};return()=>{let{prefixCls:t,steps:n,onClose:r,onFinish:i,rootClassName:a,renderPanel:o,animated:s,zIndex:u}=e,p=Yoe(e,[`prefixCls`,`steps`,`onClose`,`onFinish`,`rootClassName`,`renderPanel`,`animated`,`zIndex`]);if(x.value===void 0)return null;let y=()=>{f(!1),r?.(l.value)},T=typeof v.value==`boolean`?v.value:!!v.value,E=typeof v.value==`boolean`?void 0:v.value,D=()=>x.value||document.body,O=()=>W(Uoe,h({arrow:S.value,key:`content`,prefixCls:t,total:n.length,renderPanel:o,onPrev:()=>{w(l.value-1)},onNext:()=>{w(l.value+1)},onClose:y,current:l.value,onFinish:()=>{y(),i?.()}},m.value),null),k=G(()=>{let e=b.value||j5,t={};return Object.keys(e).forEach(n=>{typeof e[n]==`number`?t[n]=`${e[n]}px`:t[n]=e[n]}),t});return d.value?W(Ma,null,[W(qoe,{zIndex:u,prefixCls:t,pos:b.value,showMask:T,style:E?.style,fill:E?.color,open:d.value,animated:s,rootClassName:a},null),W(Ob,h(h({},p),{},{arrow:!!p.arrow,builtinPlacements:m.value.target?p.builtinPlacements??A5(C.value):void 0,ref:c,popupStyle:m.value.target?m.value.style:g(g({},m.value.style),{position:`fixed`,left:j5.left,top:j5.top,transform:`translate(-50%, -50%)`}),popupPlacement:_.value,popupVisible:d.value,popupClassName:K(a,m.value.className),prefixCls:t,popup:O,forceRender:!1,destroyPopupOnHide:!0,zIndex:u,mask:!1,getTriggerDOMNode:D}),{default:()=>[W(Eb,{visible:d.value,autoLock:!0},{default:()=>[W(`div`,{class:K(a,`${t}-target-placeholder`),style:g(g({},k.value),{position:`fixed`,pointerEvents:`none`})},null)]})]})]):null}}}),Zoe=()=>g(g({},M5()),{steps:{type:Array},prefixCls:{type:String},current:{type:Number},type:{type:String},"onUpdate:current":Function}),Qoe=U({name:`ATourPanel`,inheritAttrs:!1,props:g(g({},E5()),{cover:{type:Object},nextButtonProps:{type:Object},prevButtonProps:{type:Object},current:{type:Number},type:{type:String}}),setup(e,t){let{attrs:n,slots:r}=t,{current:i,total:a}=hn(e),o=G(()=>i.value===a.value-1),s=t=>{var n;let r=e.prevButtonProps;(n=e.onPrev)==null||n.call(e,t),typeof r?.onClick==`function`&&r?.onClick()},c=t=>{var n,r;let i=e.nextButtonProps;o.value?(n=e.onFinish)==null||n.call(e,t):(r=e.onNext)==null||r.call(e,t),typeof i?.onClick==`function`&&i?.onClick()};return()=>{let{prefixCls:t,title:l,onClose:u,cover:d,description:f,type:p,arrow:m}=e,g=e.prevButtonProps,_=e.nextButtonProps,v;l&&(v=W(`div`,{class:`${t}-header`},[W(`div`,{class:`${t}-title`},[l])]));let y;f&&(y=W(`div`,{class:`${t}-description`},[f]));let b;d&&(b=W(`div`,{class:`${t}-cover`},[d]));let x;x=r.indicatorsRender?r.indicatorsRender({current:i.value,total:a}):[...Array.from({length:a.value}).keys()].map((e,n)=>W(`span`,{key:e,class:K(n===i.value&&`${t}-indicator-active`,`${t}-indicator`)},null));let S=p===`primary`?`default`:`primary`,C={type:`default`,ghost:p===`primary`};return W(Ql,{componentName:`Tour`,defaultLocale:Zl.Tour},{default:e=>W(`div`,h(h({},n),{},{class:K(p===`primary`?`${t}-primary`:``,n.class,`${t}-content`)}),[m&&W(`div`,{class:`${t}-arrow`,key:`arrow`},null),W(`div`,{class:`${t}-inner`},[W(UC,{class:`${t}-close`,onClick:u},null),b,v,y,W(`div`,{class:`${t}-footer`},[a.value>1&&W(`div`,{class:`${t}-indicators`},[x]),W(`div`,{class:`${t}-buttons`},[i.value===0?null:W(Oj,h(h(h({},C),g),{},{onClick:s,size:`small`,class:K(`${t}-prev-btn`,g?.className)}),{default:()=>[ic(g?.children)?g.children():g?.children??e.Previous]}),W(Oj,h(h({type:S},_),{},{onClick:c,size:`small`,class:K(`${t}-next-btn`,_?.className)}),{default:()=>[ic(_?.children)?_?.children():o.value?e.Finish:e.Next]})])])])])})}}}),$oe=e=>{let{defaultType:t,steps:n,current:r,defaultCurrent:i}=e,a=B(i?.value);H(G(()=>r?.value),e=>{a.value=e??i?.value},{immediate:!0});let o=e=>{a.value=e},s=G(()=>typeof a.value==`number`?n&&n.value?.[a.value]?.type:t?.value);return{currentMergedType:G(()=>s.value??t?.value),updateInnerCurrent:o}},ese=e=>{let{componentCls:t,lineHeight:n,padding:r,paddingXS:i,borderRadius:a,borderRadiusXS:o,colorPrimary:s,colorText:c,colorFill:l,indicatorHeight:u,indicatorWidth:d,boxShadowTertiary:f,tourZIndexPopup:p,fontSize:m,colorBgContainer:h,fontWeightStrong:_,marginXS:v,colorTextLightSolid:y,tourBorderRadius:b,colorWhite:x,colorBgTextHover:S,tourCloseSize:C,motionDurationSlow:w,antCls:T}=e;return[{[t]:g(g({},Op(e)),{color:c,position:`absolute`,zIndex:p,display:`block`,visibility:`visible`,fontSize:m,lineHeight:n,width:520,"--antd-arrow-background-color":h,"&-pure":{maxWidth:`100%`,position:`relative`},[`&${t}-hidden`]:{display:`none`},[`${t}-content`]:{position:`relative`},[`${t}-inner`]:{textAlign:`start`,textDecoration:`none`,borderRadius:b,boxShadow:f,position:`relative`,backgroundColor:h,border:`none`,backgroundClip:`padding-box`,[`${t}-close`]:{position:`absolute`,top:r,insetInlineEnd:r,color:e.colorIcon,outline:`none`,width:C,height:C,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:`flex`,alignItems:`center`,justifyContent:`center`,"&:hover":{color:e.colorIconHover,backgroundColor:e.wireframe?`transparent`:e.colorFillContent}},[`${t}-cover`]:{textAlign:`center`,padding:`${r+C+i}px ${r}px 0`,img:{width:`100%`}},[`${t}-header`]:{padding:`${r}px ${r}px ${i}px`,[`${t}-title`]:{lineHeight:n,fontSize:m,fontWeight:_}},[`${t}-description`]:{padding:`0 ${r}px`,lineHeight:n,wordWrap:`break-word`},[`${t}-footer`]:{padding:`${i}px ${r}px ${r}px`,textAlign:`end`,borderRadius:`0 0 ${o}px ${o}px`,display:`flex`,[`${t}-indicators`]:{display:`inline-block`,[`${t}-indicator`]:{width:d,height:u,display:`inline-block`,borderRadius:`50%`,background:l,"&:not(:last-child)":{marginInlineEnd:u},"&-active":{background:s}}},[`${t}-buttons`]:{marginInlineStart:`auto`,[`${T}-btn`]:{marginInlineStart:v}}}},[`${t}-primary, &${t}-primary`]:{"--antd-arrow-background-color":s,[`${t}-inner`]:{color:y,textAlign:`start`,textDecoration:`none`,backgroundColor:s,borderRadius:a,boxShadow:f,[`${t}-close`]:{color:y},[`${t}-indicators`]:{[`${t}-indicator`]:{background:new zf(y).setAlpha(.15).toRgbString(),"&-active":{background:y}}},[`${t}-prev-btn`]:{color:y,borderColor:new zf(y).setAlpha(.15).toRgbString(),backgroundColor:s,"&:hover":{backgroundColor:new zf(y).setAlpha(.15).toRgbString(),borderColor:`transparent`}},[`${t}-next-btn`]:{color:s,borderColor:`transparent`,background:x,"&:hover":{background:new zf(S).onBackground(x).toRgbString()}}}}}),[`${t}-mask`]:{[`${t}-placeholder-animated`]:{transition:`all ${w}`}},[[`&-placement-left`,`&-placement-leftTop`,`&-placement-leftBottom`,`&-placement-right`,`&-placement-rightTop`,`&-placement-rightBottom`].join(`,`)]:{[`${t}-inner`]:{borderRadius:Math.min(b,8)}}},UA(e,{colorBg:`var(--antd-arrow-background-color)`,contentRadius:b,limitVerticalRadius:!0})]},tse=Fp(`Tour`,e=>{let{borderRadiusLG:t,fontSize:n,lineHeight:r}=e;return[ese(Rp(e,{tourZIndexPopup:e.zIndexPopupBase+70,indicatorWidth:6,indicatorHeight:6,tourBorderRadius:t,tourCloseSize:n*r}))]}),nse=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{steps:t,current:a,type:o,rootClassName:s}=e,c=nse(e,[`steps`,`current`,`type`,`rootClassName`]),g=K({[`${l.value}-primary`]:p.value===`primary`,[`${l.value}-rtl`]:u.value===`rtl`},f.value,s),_=(e,t)=>W(Qoe,h(h({},e),{},{type:o,current:t}),{indicatorsRender:i.indicatorsRender}),v=e=>{m(e),r(`update:current`,e),r(`change`,e)},y=G(()=>RA({arrowPointAtCenter:!0,autoAdjustOverflow:!0}));return d(W(Xoe,h(h(h({},n),c),{},{rootClassName:g,prefixCls:l.value,current:a,defaultCurrent:e.defaultCurrent,animated:!0,renderPanel:_,onChange:v,steps:t,builtinPlacements:y.value}),null))}}})),N5=Symbol(`appConfigContext`),ise=e=>er(N5,e),ase=()=>tr(N5,{}),P5=Symbol(`appContext`),ose=e=>er(P5,e),sse=Yt({message:{},notification:{},modal:{}}),cse=()=>tr(P5,sse),lse=e=>{let{componentCls:t,colorText:n,fontSize:r,lineHeight:i,fontFamily:a}=e;return{[t]:{color:n,fontSize:r,lineHeight:i,fontFamily:a}}},use=Fp(`App`,e=>[lse(e)]),dse=()=>({rootClassName:String,message:q(),notification:q()}),fse=()=>cse(),F5=U({name:`AApp`,props:Bc(dse(),{}),setup(e,t){let{slots:n}=t,{prefixCls:r}=Z(`app`,e),[i,a]=use(r),o=G(()=>K(a.value,r.value,e.rootClassName)),s=ase(),c=G(()=>({message:g(g({},s.message),e.message),notification:g(g({},s.notification),e.notification)}));ise(c.value);let[l,u]=$U(c.value.message),[d,f]=MW(c.value.notification),[p,m]=cQ();return ose(G(()=>({message:l,notification:d,modal:p})).value),()=>i(W(`div`,{class:o.value},[m(),u(),f(),n.default?.call(n)]))}});F5.useApp=fse,F5.install=function(e){e.component(F5.name,F5)};var I5=[`wrap`,`nowrap`,`wrap-reverse`],L5=[`flex-start`,`flex-end`,`start`,`end`,`center`,`space-between`,`space-around`,`space-evenly`,`stretch`,`normal`,`left`,`right`],R5=[`center`,`start`,`end`,`flex-start`,`flex-end`,`self-start`,`self-end`,`baseline`,`normal`,`stretch`],pse=(e,t)=>{let n={};return I5.forEach(r=>{n[`${e}-wrap-${r}`]=t.wrap===r}),n},mse=(e,t)=>{let n={};return R5.forEach(r=>{n[`${e}-align-${r}`]=t.align===r}),n[`${e}-align-stretch`]=!t.align&&!!t.vertical,n},hse=(e,t)=>{let n={};return L5.forEach(r=>{n[`${e}-justify-${r}`]=t.justify===r}),n};function gse(e,t){return K(g(g(g({},pse(e,t)),mse(e,t)),hse(e,t)))}var _se=e=>{let{componentCls:t}=e;return{[t]:{display:`flex`,"&-vertical":{flexDirection:`column`},"&-rtl":{direction:`rtl`},"&:empty":{display:`none`}}}},vse=e=>{let{componentCls:t}=e;return{[t]:{"&-gap-small":{gap:e.flexGapSM},"&-gap-middle":{gap:e.flexGap},"&-gap-large":{gap:e.flexGapLG}}}},yse=e=>{let{componentCls:t}=e,n={};return I5.forEach(e=>{n[`${t}-wrap-${e}`]={flexWrap:e}}),n},bse=e=>{let{componentCls:t}=e,n={};return R5.forEach(e=>{n[`${t}-align-${e}`]={alignItems:e}}),n},xse=e=>{let{componentCls:t}=e,n={};return L5.forEach(e=>{n[`${t}-justify-${e}`]={justifyContent:e}}),n},Sse=Fp(`Flex`,e=>{let t=Rp(e,{flexGapSM:e.paddingXS,flexGap:e.padding,flexGapLG:e.paddingLG});return[_se(t),vse(t),yse(t),bse(t),xse(t)]});function z5(e){return[`small`,`middle`,`large`].includes(e)}var Cse=()=>({prefixCls:X(),vertical:J(),wrap:X(),justify:X(),align:X(),flex:Sl([Number,String]),gap:Sl([Number,String]),component:yl()}),wse=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i[o.value,c.value,gse(o.value,e),{[`${o.value}-rtl`]:a.value===`rtl`,[`${o.value}-gap-${e.gap}`]:z5(e.gap),[`${o.value}-vertical`]:e.vertical??i?.value.vertical}]);return()=>{let{flex:t,gap:i,component:a=`div`}=e,o=wse(e,[`flex`,`gap`,`component`]),c={};return t&&(c.flex=t),i&&!z5(i)&&(c.gap=`${i}px`),s(W(a,h({class:[r.class,l.value],style:[r.style,c]},sm(o,[`justify`,`wrap`,`align`,`vertical`])),{default:()=>[n.default?.call(n)]}))}}})),B5=s({Affix:()=>fm,Alert:()=>vne,Anchor:()=>kh,AnchorLink:()=>Nm,App:()=>F5,AutoComplete:()=>Jk,AutoCompleteOptGroup:()=>Kk,AutoCompleteOption:()=>Gk,Avatar:()=>YA,AvatarGroup:()=>JA,BackTop:()=>rq,Badge:()=>tj,BadgeRibbon:()=>QA,Breadcrumb:()=>AM,BreadcrumbItem:()=>Vj,BreadcrumbSeparator:()=>kM,Button:()=>Oj,ButtonGroup:()=>Cj,Calendar:()=>QF,Card:()=>jL,CardGrid:()=>AL,CardMeta:()=>kL,Carousel:()=>YR,Cascader:()=>oU,CheckableTag:()=>pG,Checkbox:()=>hU,CheckboxGroup:()=>mU,Col:()=>_U,Collapse:()=>UL,CollapsePanel:()=>HL,Comment:()=>bU,Compact:()=>NO,ConfigProvider:()=>sG,DatePicker:()=>YG,Descriptions:()=>lK,DescriptionsItem:()=>nK,DirectoryTree:()=>L3,Divider:()=>fK,Drawer:()=>jK,Dropdown:()=>pK,DropdownButton:()=>Pj,Empty:()=>tm,Flex:()=>Tse,FloatButton:()=>iq,FloatButtonGroup:()=>QK,Form:()=>JH,FormItem:()=>zH,FormItemRest:()=>ow,Grid:()=>gU,Image:()=>uY,ImagePreviewGroup:()=>lY,Input:()=>$q,InputGroup:()=>xq,InputNumber:()=>UY,InputPassword:()=>Qq,InputSearch:()=>Cq,Layout:()=>pX,LayoutContent:()=>fX,LayoutFooter:()=>uX,LayoutHeader:()=>lX,LayoutSider:()=>dX,List:()=>uZ,ListItem:()=>aZ,ListItemMeta:()=>nZ,LocaleProvider:()=>EU,Mentions:()=>HZ,MentionsOption:()=>VZ,Menu:()=>EM,MenuDivider:()=>_M,MenuItem:()=>oM,MenuItemGroup:()=>gM,Modal:()=>uQ,MonthPicker:()=>WG,PageHeader:()=>BQ,Pagination:()=>tZ,Popconfirm:()=>WQ,Popover:()=>qA,Progress:()=>w$,QRCode:()=>Roe,QuarterPicker:()=>qG,Radio:()=>vF,RadioButton:()=>_F,RadioGroup:()=>gF,RangePicker:()=>JG,Rate:()=>L$,Result:()=>n1,Row:()=>r1,Segmented:()=>Eoe,Select:()=>Rk,SelectOptGroup:()=>Bk,SelectOption:()=>zk,Skeleton:()=>EL,SkeletonAvatar:()=>TL,SkeletonButton:()=>xL,SkeletonImage:()=>wL,SkeletonInput:()=>SL,SkeletonTitle:()=>ZI,Slider:()=>L1,Space:()=>LQ,Spin:()=>EX,Statistic:()=>SQ,StatisticCountdown:()=>xQ,Step:()=>o0,Steps:()=>s0,SubMenu:()=>dM,Switch:()=>h0,TabPane:()=>zI,Table:()=>j6,TableColumn:()=>E6,TableColumnGroup:()=>D6,TableSummary:()=>A6,TableSummaryCell:()=>k6,TableSummaryRow:()=>O6,Tabs:()=>VI,Tag:()=>mG,Textarea:()=>Bq,TimePicker:()=>Kie,TimeRangePicker:()=>c8,Timeline:()=>Yie,TimelineItem:()=>l8,Tooltip:()=>KA,Tour:()=>rse,Transfer:()=>yie,Tree:()=>z3,TreeNode:()=>R3,TreeSelect:()=>Wie,TreeSelectNode:()=>a8,Typography:()=>Aae,TypographyLink:()=>E8,TypographyParagraph:()=>D8,TypographyText:()=>O8,TypographyTitle:()=>k8,Upload:()=>poe,UploadDragger:()=>foe,Watermark:()=>yoe,WeekPicker:()=>UG,message:()=>_W,notification:()=>qW}),V5=(e,t)=>new zf(e).setAlpha(t).toRgbString(),H5=(e,t)=>new zf(e).lighten(t).toHexString(),Ese=e=>{let t=ep(e,{theme:`dark`});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},Dse=(e,t)=>{let n=e||`#000`,r=t||`#fff`;return{colorBgBase:n,colorTextBase:r,colorText:V5(r,.85),colorTextSecondary:V5(r,.65),colorTextTertiary:V5(r,.45),colorTextQuaternary:V5(r,.25),colorFill:V5(r,.18),colorFillSecondary:V5(r,.12),colorFillTertiary:V5(r,.08),colorFillQuaternary:V5(r,.04),colorBgElevated:H5(n,12),colorBgContainer:H5(n,8),colorBgLayout:H5(n,0),colorBgSpotlight:H5(n,26),colorBorder:H5(n,26),colorBorderSecondary:H5(n,19)}},Ose=(e,t)=>{let n=Object.keys(cp).map(t=>{let n=ep(e[t],{theme:`dark`});return Array(10).fill(1).reduce((e,r,i)=>(e[`${t}-${i+1}`]=n[i],e),{})}).reduce((e,t)=>(e=g(g({},e),t),e),{}),r=t??yp(e);return g(g(g({},r),n),up(e,{generateColorPalettes:Ese,generateNeutralColorPalettes:Dse}))};function kse(e){let{sizeUnit:t,sizeStep:n}=e,r=n-2;return{sizeXXL:t*(r+10),sizeXL:t*(r+6),sizeLG:t*(r+2),sizeMD:t*(r+2),sizeMS:t*(r+1),size:t*r,sizeSM:t*r,sizeXS:t*(r-1),sizeXXS:t*(r-1)}}var Ase=(e,t)=>{let n=t??yp(e),r=n.fontSizeSM,i=n.controlHeight-4;return g(g(g(g(g({},n),kse(t??e)),vp(r)),{controlHeight:i}),op(g(g({},n),{controlHeight:i})))};function jse(){let[e,t,n]=Jp();return{theme:e,token:t,hashId:n}}var Mse={defaultConfig:Up,defaultSeed:Up.token,useToken:jse,defaultAlgorithm:yp,darkAlgorithm:Ose,compactAlgorithm:Ase},Nse={version:uf,install:function(e){return Object.keys(B5).forEach(t=>{let n=B5[t];n.install&&e.use(n)}),e.use(lf.StyleProvider),e.config.globalProperties.$message=_W,e.config.globalProperties.$notification=qW,e.config.globalProperties.$info=uQ.info,e.config.globalProperties.$success=uQ.success,e.config.globalProperties.$error=uQ.error,e.config.globalProperties.$warning=uQ.warning,e.config.globalProperties.$confirm=uQ.confirm,e.config.globalProperties.$destroyAll=uQ.destroyAll,e}},Pse=typeof window<`u`,U5,W5=e=>U5=e,G5=Symbol();function K5(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var q5=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Fse(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function J5(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Ise(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Y5(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function X5(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var Z5=typeof navigator==`object`?navigator:{userAgent:``},Q5=/Macintosh/.test(Z5.userAgent)&&/AppleWebKit/.test(Z5.userAgent)&&!/Safari/.test(Z5.userAgent),Ise=Pse?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Q5?Lse:`msSaveOrOpenBlob`in Z5?Rse:zse:()=>{};function Lse(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?X5(r):Y5(r.href)?J5(e,t,n):(r.target=`_blank`,X5(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){X5(r)},0))}function Rse(e,t=`download`,n){if(typeof e==`string`){if(Y5(e))J5(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){X5(t)})}}else navigator.msSaveOrOpenBlob(Fse(e,n),t)}function zse(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return J5(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(q5.HTMLElement))||`safari`in q5,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Q5)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Bse}=Object;function Vse(){let e=Ie(!0),t=e.run(()=>B({})),n=[],r=[],i=an({install(e){W5(i),i._a=e,e.provide(G5,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var $5=()=>{};function e7(e,t,n,r=$5){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Le()&&Re(i),i}function t7(e,...t){e.forEach(e=>{e(...t)})}var Hse=e=>e(),n7=Symbol(),r7=Symbol();function i7(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];if(K5(i)&&K5(r)&&Object.hasOwn(e,n)&&!cn(r)&&!$t(r)){e[n]=i7(i,r);let t=rn(e)[n];cn(t)&&tn(t)&&dn(t)}else e[n]=r}return e}var Use=Symbol();function Wse(e){return!e||typeof e!=`object`||!Object.hasOwn(e,Use)}var{assign:a7}=Object;function Gse(e){return!!(cn(e)&&e.effect)}function Kse(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),a7(hn(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=an(G(()=>{W5(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=o7(e,l,t,n,r,!0),c}function o7(e,t,n={},r,i,a){let o,s=a7({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(i7(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();zn().then(()=>{h===i&&(l=!0)}),u=!0,t7(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{a7(e,t)})}:$5;function v(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(n7 in t)return t[r7]=n,t;let i=function(){W5(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}t7(f,{args:n,name:i[r7],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw t7(o,e),e}return l instanceof Promise?l.then(e=>(t7(a,e),e)).catch(e=>(t7(o,e),Promise.reject(e))):(t7(a,l),l)};return i[n7]=!0,i[r7]=n,i},b=Yt({_p:r,$id:e,$onAction:e7.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return $5;let i=e7(d,t,n.detached,()=>a()),a=o.run(()=>H(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},a7({},c,n)));return i},$dispose:v});r._s.set(e,b);let x=(r._a&&r._a.runWithContext||Hse)(()=>r._e.run(()=>(o=Ie()).run(()=>t({action:y}))));for(let t in x){let n=x[t];cn(n)&&!Gse(n)||$t(n)?a||(m&&Wse(n)&&(cn(n)?n.value=m[t]:((n instanceof Set||n instanceof Map)&&n.clear(),i7(n,m[t]))),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return a7(b,x),a7(rn(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{a7(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));a7(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function qse(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=nr();return n||=o?tr(G5,null):null,n&&W5(n),n=U5,n._s.has(e)||(i?o7(e,t,r,n):Kse(e,r,n)),n._s.get(e)}return a.$id=e,a}function Jse(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function s7(e,t=`|`){return e.map(e=>y7(e)).join(t)}function Yse(e,t){return typeof t==`bigint`?t.toString():t}var Xse=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}};function c7(e){return new Xse(e)}function Zse(e){return e==null}function Qse(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function $se(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r){let e=t._zod.def.shape[a];return r?r(e,a):e}):p7(e,a,r?r(n.value,a):n.value))}}function ece(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?f7(e,n,()=>t[n]):p7(e,n,r.value))}}function h7(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function tce(e){return JSON.stringify(e)}function nce(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var rce=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function g7(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ice=c7(()=>{if(A7.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function _7(e){if(g7(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return g7(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function ace(e){return _7(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var oce=new Set([`string`,`number`,`symbol`]);function sce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function v7(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function cce(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function y7(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function lce(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}var uce={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},dce={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]};function fce(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return m7(i,e,b7(e,t)),v7(e,h7(n,{shape:i,checks:[]}))}function b7(e,t){let n=d7(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function pce(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(b7(e,t)),a={};return m7(a,e,Reflect.ownKeys(d7(e)).filter(e=>!i.has(e))),v7(e,h7(n,{shape:a,checks:[]}))}function mce(e,t){if(!_7(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=d7(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return v7(e,h7(e._zod.def,{shape:x7(e,t)}))}function x7(e,t){let n={};return m7(n,e,Reflect.ownKeys(d7(e))),ece(n,t),n}function hce(e,t){if(!_7(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return v7(e,h7(e._zod.def,{shape:x7(e,t)}))}function gce(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return m7(n,e,Reflect.ownKeys(d7(e))),m7(n,t,Reflect.ownKeys(d7(t))),v7(e,h7(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function _ce(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(b7(t,n)):void 0,o={};return m7(o,t,Reflect.ownKeys(d7(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),v7(t,h7(t._zod.def,{shape:o,checks:[]}))}function vce(e,t,n){let r=n?new Set(b7(t,n)):void 0,i={};return m7(i,t,Reflect.ownKeys(d7(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),v7(t,h7(t._zod.def,{shape:i}))}function yce(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function S7(e){return typeof e==`string`?e:e?.message}function Sce(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function Cce(e,t,n){var r;for(let i=t;ie;return t[Lce]=!0,t}var D7,O7={value:void 0,enumerable:!1},k7=`captureStackTrace`in Error?Error:null;function zce(e){let t=k7;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return k7=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function Bce(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){O7.value=new a(r);try{Object.defineProperty(n,"_zod",O7)}finally{O7.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),kce(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?zce(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var Vce=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Hce=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(D7=globalThis).__zod_globalConfig??(D7.__zod_globalConfig={});var A7=globalThis.__zod_globalConfig;function j7(e){return e&&Object.assign(A7,e),A7}var Uce=()=>{let e={string:{unit:`کاراکتر`,verb:`داشته باشد`},file:{unit:`بایت`,verb:`داشته باشد`},array:{unit:`آیتم`,verb:`داشته باشد`},set:{unit:`آیتم`,verb:`داشته باشد`},map:{unit:`آیتم`,verb:`داشته باشد`}};function t(t){return e[t]??null}let n={regex:`ورودی`,email:`آدرس ایمیل`,url:`URL`,emoji:`ایموجی`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`تاریخ و زمان ایزو`,date:`تاریخ ایزو`,time:`زمان ایزو`,duration:`مدت زمان ایزو`,ipv4:`IPv4 آدرس`,ipv6:`IPv6 آدرس`,mac:`MAC آدرس`,cidrv4:`IPv4 دامنه`,cidrv6:`IPv6 دامنه`,base64:`base64-encoded رشته`,base64url:`base64url-encoded رشته`,json_string:`JSON رشته`,e164:`E.164 عدد`,credit_card:`شماره کارت اعتباری`,currency_code:`کد ارز`,iban:`IBAN`,jwt:`JWT`,template_literal:`ورودی`},r={nan:`NaN`,number:`عدد`,array:`آرایه`};return e=>{switch(e.code){case`invalid_type`:{let t=r[e.expected]??e.expected,n=C7(e.input),i=r[n]??n;return/^[A-Z]/.test(e.expected)?`ورودی نامعتبر: می‌بایست instanceof ${e.expected} می‌بود، ${i} دریافت شد`:`ورودی نامعتبر: می‌بایست ${t} می‌بود، ${i} دریافت شد`}case`invalid_value`:return e.values.length===1?`ورودی نامعتبر: می‌بایست ${y7(e.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${s7(e.values,`|`)} می‌بود`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`خیلی بزرگ: ${e.origin??`مقدار`} باید ${n}${e.maximum.toString()} ${r.unit??`عنصر`} باشد`:`خیلی بزرگ: ${e.origin??`مقدار`} باید ${n}${e.maximum.toString()} باشد`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`خیلی کوچک: ${e.origin} باید ${n}${e.minimum.toString()} ${r.unit} باشد`:`خیلی کوچک: ${e.origin} باید ${n}${e.minimum.toString()} باشد`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`رشته نامعتبر: باید با "${t.prefix}" شروع شود`:t.format===`ends_with`?`رشته نامعتبر: باید با "${t.suffix}" تمام شود`:t.format===`includes`?`رشته نامعتبر: باید شامل "${t.includes}" باشد`:t.format===`regex`?`رشته نامعتبر: باید با الگوی ${t.pattern} مطابقت داشته باشد`:`${n[t.format]??e.format} نامعتبر`}case`not_multiple_of`:return`عدد نامعتبر: باید مضرب ${e.divisor} باشد`;case`unrecognized_keys`:return`کلید${e.keys.length>1?`های`:``} ناشناس: ${s7(e.keys,`, `)}`;case`invalid_key`:return`کلید ناشناس در ${e.origin}`;case`invalid_union`:return`ورودی نامعتبر`;case`invalid_element`:return`مقدار نامعتبر در ${e.origin}`;default:return`ورودی نامعتبر`}}};function Wce(){return{localeError:Uce()}}var Gce={items_per_page:`/ صفحه`,jump_to:`برو به`,jump_to_confirm:`تایید`,page:``,prev_page:`صفحه قبلی`,next_page:`صفحه بعدی`,prev_5:`۵ صفحه قبلی`,next_5:`۵ صفحه بعدی`,prev_3:`۳ صفحه قبلی`,next_3:`۳ صفحه بعدی`},Kce={locale:`fa_IR`,today:`امروز`,now:`اکنون`,backToToday:`بازگشت به روز`,ok:`باشه`,clear:`پاک کردن`,month:`ماه`,year:`سال`,timeSelect:`انتخاب زمان`,dateSelect:`انتخاب تاریخ`,monthSelect:`یک ماه را انتخاب کنید`,yearSelect:`یک سال را انتخاب کنید`,decadeSelect:`یک دهه را انتخاب کنید`,yearFormat:`YYYY`,dateFormat:`M/D/YYYY`,dayFormat:`D`,dateTimeFormat:`M/D/YYYY HH:mm:ss`,monthBeforeYear:!0,previousMonth:`ماه قبل (PageUp)`,nextMonth:`ماه بعد (PageDown)`,previousYear:`سال قبل (Control + left)`,nextYear:`سال بعد (Control + right)`,previousDecade:`دهه قبل`,nextDecade:`دهه بعد`,previousCentury:`قرن قبل`,nextCentury:`قرن بعد`},M7={placeholder:`انتخاب زمان`,rangePlaceholder:[`زمان شروع`,`زمان پایان`]},N7={lang:g({placeholder:`انتخاب تاریخ`,yearPlaceholder:`انتخاب سال`,quarterPlaceholder:`انتخاب فصل`,monthPlaceholder:`انتخاب ماه`,weekPlaceholder:`انتخاب هفته`,rangePlaceholder:[`تاریخ شروع`,`تاریخ پایان`],rangeYearPlaceholder:[`سال شروع`,`سال پایان`],rangeMonthPlaceholder:[`ماه شروع`,`ماه پایان`],rangeWeekPlaceholder:[`هفته شروع`,`هفته پایان`]},Kce),timePickerLocale:g({},M7)},qce=N7,P7="${label} از نوع ${type} معتبر نیست",Jce={locale:`fa`,Pagination:Gce,DatePicker:N7,TimePicker:M7,Calendar:qce,global:{placeholder:`لطفاً انتخاب کنید`},Table:{filterTitle:`منوی فیلتر`,filterConfirm:`تایید`,filterReset:`پاک کردن`,filterEmptyText:`بدون فیلتر`,emptyText:`بدون داده`,selectAll:`انتخاب صفحه‌ی کنونی`,selectInvert:`معکوس کردن انتخاب‌ها در صفحه ی کنونی`,selectNone:`انتخاب هیچکدام`,selectionAll:`انتخاب همه داده‌ها`,sortTitle:`مرتب سازی`,expand:`باز شدن ردیف`,collapse:`بستن ردیف`,triggerDesc:`ترتیب نزولی`,triggerAsc:`ترتیب صعودی`,cancelSort:`لغوِ ترتیبِ داده شده`},Modal:{okText:`تایید`,cancelText:`لغو`,justOkText:`تایید`},Popconfirm:{okText:`تایید`,cancelText:`لغو`},Transfer:{titles:[``,``],searchPlaceholder:`جستجو`,itemUnit:`عدد`,itemsUnit:`عدد`,remove:`حذف`,selectCurrent:`انتخاب صفحه فعلی`,removeCurrent:`پاک کردن انتخاب‌های صفحه فعلی`,selectAll:`انتخاب همه`,removeAll:`پاک کردن همه انتخاب‌ها`,selectInvert:`معکوس کردن انتخاب‌ها در صفحه ی کنونی`},Upload:{uploading:`در حال آپلود...`,removeFile:`حذف فایل`,uploadError:`خطا در آپلود`,previewFile:`مشاهده‌ی فایل`,downloadFile:`دریافت فایل`},Empty:{description:`داده‌ای موجود نیست`},Icon:{icon:`آیکن`},Text:{edit:`ویرایش`,copy:`کپی`,copied:`کپی شد`,expand:`توسعه`},PageHeader:{back:`برگشت`},Form:{optional:`(اختیاری)`,defaultValidateMessages:{default:"خطا در ${label}",required:"فیلد ${label} اجباریست",enum:"${label} باید یکی از [${enum}] باشد",whitespace:"${label} نمیتواند خالی باشد",date:{format:"ساختار تاریخ در ${label} نامعتبر است",parse:"${label} قابل تبدیل به تاریخ نیست",invalid:"${label} تاریخی نا معتبر است"},types:{string:P7,method:P7,array:P7,object:P7,number:P7,date:P7,boolean:P7,integer:P7,float:P7,regexp:P7,email:P7,url:P7,hex:P7},string:{len:"${label} باید ${len} کاراکتر باشد",min:"${label} باید حداقل ${min} کاراکتر باشد",max:"${label} باید حداکثر ${max} کاراکتر باشد",range:"${label} باید بین ${min}-${max} کاراکتر باشد"},number:{len:"${label} باید برابر ${len}",min:"${label} حداقل میتواند ${min} باشد",max:"${label} حداکثر میتواند ${max} باشد",range:"${label} باید بین ${min}-${max} باشد"},array:{len:"تعداد ${label} باید ${len} باشد.",min:"تعداد ${label} حداقل باید ${min} باشد",max:"تعداد ${label} حداکثر باید ${max} باشد",range:"مقدار ${label} باید بین ${min}-${max} باشد"},pattern:{mismatch:"الگوی ${label} با ${pattern} برابری نمی‌کند"}}},Image:{preview:`نمایش`}},Yce=U({__name:`App`,setup(e){let t={algorithm:Mse.defaultAlgorithm,token:{colorPrimary:`#ff5a00`,colorInfo:`#ff5a00`,colorLink:`#e04f00`,fontFamily:`"IRANSans", Tahoma, sans-serif`,borderRadius:8}};return(e,n)=>{let r=ui(`RouterView`),i=ui(`a-config-provider`);return Ra(),Ua(i,{theme:t,direction:`rtl`,locale:fn(Jce)},{default:Zn(()=>[W(r)]),_:1},8,[`locale`])}}}),F7=e=>e.startsWith(`/`);function I7(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function Xce(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&I7(e.default)}var L7=Object.assign;function R7(e,t){let n={};for(let r in t){let i=t[r];n[r]=B7(i)?i.map(e):e(i)}return n}var z7=()=>{},B7=Array.isArray;function V7(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var H7=Symbol(``);function U7(e,t){return L7(Error(),{type:e,[H7]:!0},t)}function W7(e,t){return e instanceof Error&&H7 in e&&(t==null||!!(e.type&t))}var Zce=Symbol(``),G7=Symbol(``),K7=Symbol(``),q7=Symbol(``),J7=Symbol(``),Qce=Symbol(``);function $ce(){return tr(K7)}function ele(e){return tr(q7)}var Y7=typeof document<`u`,X7=/#/g,tle=/&/g,nle=/\//g,rle=/=/g,ile=/\?/g,Z7=/\+/g,ale=/%5B/g,ole=/%5D/g,Q7=/%5E/g,sle=/%60/g,$7=/%7B/g,cle=/%7C/g,e9=/%7D/g,lle=/%20/g;function t9(e){return e==null?``:encodeURI(``+e).replace(cle,`|`).replace(ale,`[`).replace(ole,`]`)}function ule(e){return t9(e).replace($7,`{`).replace(e9,`}`).replace(Q7,`^`)}function n9(e){return t9(e).replace(Z7,`%2B`).replace(lle,`+`).replace(X7,`%23`).replace(tle,`%26`).replace(sle,"`").replace($7,`{`).replace(e9,`}`).replace(Q7,`^`)}function dle(e){return n9(e).replace(rle,`%3D`)}function fle(e){return t9(e).replace(X7,`%23`).replace(ile,`%3F`)}function ple(e){return fle(e).replace(nle,`%2F`)}function r9(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var mle=/\/$/,hle=e=>e.replace(mle,``);function i9(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=yle(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:r9(o)}}function gle(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function a9(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function _le(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&o9(t.matched[r],n.matched[i])&&s9(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function o9(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function s9(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!vle(e[n],t[n]))return!1;return!0}function vle(e,t){return B7(e)?c9(e,t):B7(t)?c9(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function c9(e,t){return B7(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function yle(e,t){if(F7(e))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var l9={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function ble(e){if(!e){if(Y7){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),hle(e)}var xle=/^[^#]+#/;function Sle(e,t){return e.replace(xle,`#`)+t}function Cle(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var u9=()=>history.scrollRestoration===`manual`?{left:window.scrollX,top:window.scrollY}:null;function wle(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Cle(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function d9(e,t){return(history.state?history.state.position-t:-1)+e}var f9=new Map;function Tle(e){f9.set(e,u9())}function Ele(e){let t=f9.get(e);return f9.delete(e),t}function p9(e,t=!1){for(let n of f9.keys()){let r=parseInt(n,10);(r===e||!t&&r>e)&&f9.delete(n)}}function Dle(e){return typeof e==`string`||e&&typeof e==`object`}function m9(e){return typeof e==`string`||typeof e==`symbol`}function Ole(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&n9(e)):[r&&n9(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function kle(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=B7(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function g9(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function _9(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(U7(4,{from:n,to:t})):e instanceof Error?c(e):Dle(e)?c(U7(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function v9(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(t===`beforeRouteEnter`||o.instances[e]){if(I7(s)){let c=(s.__vccOpts||s)[t];c&&a.push(_9(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=Xce(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&_9(c,n,r,o,e,i)()}))}}}return a}function Ale(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oo9(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>o9(e,s))||i.push(s))}return[n,r,i]}var jle=()=>location.protocol+`//`+location.host;function y9(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),a9(n,``)}return a9(n,e)+r+i}function Mle(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=y9(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){let{history:e}=window;e.state&&e.replaceState(L7({},e.state,{scroll:u9()}),``)}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),{pauseListeners:c,listen:l,destroy:d}}function b9(e,t,n,r=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:null}}function Nle(e){let{history:t,location:n}=window,r={value:y9(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:jle()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){let o=L7({},t.state,b9(i.value.back,e,i.value.forward,!0),n,{position:i.value.position});a(e,o,!0),p9(o.position,!0),r.value=e}function s(e,n){let o=L7({},i.value,t.state,{forward:e,scroll:u9()});a(o.current,o,!0),a(e,L7({},b9(r.value,e,null),{position:o.position+1},n),!1),p9(o.position),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ple(e){e=ble(e);let t=Nle(e),n=Mle(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=L7({location:``,base:e,go:r,createHref:Sle.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Fle={type:0,value:``},Ile=/[a-zA-Z0-9_]/;function Lle(e){if(!e)return[[]];if(e===`/`)return[[Fle]];if(!F7(e))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function S9(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Hle={strict:!1,end:!0,sensitive:!1};function Ule(e,t,n){let r=L7(Ble(Lle(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Wle(e,t){let n=[],r=new Map;t=V7(Hle,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=T9(e);s.aliasOf=r&&r.record;let l=V7(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(T9(L7({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&!F7(u)){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Ule(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!E9(d)&&o(e.name)),D9(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:z7}function o(e){if(m9(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=qle(e,n);n.splice(t,0,e),e.record.name&&!E9(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw U7(1,{location:e});s=i.record.name,a=L7(w9(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&w9(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw U7(1,{location:e,currentLocation:t});s=i.record.name,a=L7({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Kle(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function w9(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function T9(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Gle(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Gle(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function E9(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Kle(e){return e.reduce((e,t)=>L7(e,t.meta),{})}function qle(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;S9(e,t[i])<0?r=i:n=i+1}let i=Jle(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Jle(e){let t=e;for(;t=t.parent;)if(D9(t)&&S9(e,t)===0)return t}function D9({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function O9(e){let t=tr(K7),n=tr(q7),r=G(()=>{let n=fn(e.to);return t.resolve(n)}),i=G(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(o9.bind(null,i));if(o>-1)return o;let s=k9(e[t-2]);return t>1&&k9(i)===s&&a[a.length-1].path!==s?a.findIndex(o9.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&Qle(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&s9(n.params,r.value.params));function s(n={}){if(Zle(n)){let n=t[fn(e.replace)?`replace`:`push`](fn(e.to)).catch(z7);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:G(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Yle(e){return e.length===1?e[0]:e}var Xle=U({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:O9,setup(e,{slots:t}){let n=Yt(O9(e)),{options:r}=tr(K7),i=G(()=>({[A9(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[A9(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Yle(t.default(n));return e.custom?r:Oo(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Zle(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Qle(e,t){for(let n in t){let r=t[n],i=e[n];if(B7(r)){if(!B7(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}else if(r!==i)return!1}return!0}function k9(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var A9=(e,t,n)=>e??t??n,$le=U({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=tr(J7),i=G(()=>e.route||r.value),a=tr(G7,0),o=G(()=>{let e=fn(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);er(G7,G(()=>o.value+1)),er(Zce,s),er(J7,i);let c=new Set;er(Qce,c);let l=B(),u=l9,{app:d}=fo().appContext;return H(()=>[l.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!o9(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,f=o&&o.components[a];if(!f)return j9(n.default,{Component:f,route:r});let p=o.props[a],m=p?p===!0?r.params:typeof p==`function`?p(r):p:null,h=e=>{e.component.isUnmounted&&(o.instances[a]=null)},g=e=>zn(()=>{if(u===r||i.value!==r||e.el.getRootNode()!==d._container.getRootNode())return;let t=u;u=r;for(let e of c)e(r,t)}),_=Oo(f,L7({},m,t,{onVnodeUnmounted:h,onVnodeMounted:g,onVnodeUpdated:g,ref:l}));return j9(n.default,{Component:_,route:r})||_}}});function j9(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var eue=$le;function tue(e){let t=e.matcher||Wle(e.routes,e),n=e.parseQuery||Ole,r=e.stringifyQuery||h9,i=e.history,a=g9(),o=g9(),s=g9(),c=V(l9),l=V(0),u=l9;Y7&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=R7.bind(null,e=>``+e),f=R7.bind(null,ple),p=R7.bind(null,r9);function m(e,n){let r,i;m9(e)?(r=t.getRecordMatcher(e),i=n):i=e;let a=t.addRoute(i,r);return l.value++,()=>{a(),l.value++}}function h(e){let n=t.getRecordMatcher(e);n&&(t.removeRoute(n),l.value++)}function g(){t.clearRoutes(),l.value++}function _(){return t.getRoutes().map(e=>e.record)}function v(e){return!!t.getRecordMatcher(e)}function y(e,a){if(l.value,typeof e==`string`){a||=e.startsWith(`/`)?l9:c.value;let r=i9(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return L7(r,o,{params:p(o.params),redirectedFrom:void 0,href:s})}a=L7({},a||(e.path!=null&&e.path.startsWith(`/`)&&!(`name`in e&&e.name)?l9:c.value));let o;if(e.path!=null)o=L7({},e,{path:i9(n,e.path,a.path).path});else{let t=L7({},e.params);for(let e in t)t[e]??delete t[e];o=L7({},e,{params:f(t)}),a.params=f(a.params)}let s=t.resolve(o,a),u=e.hash||``;s.params=d(p(s.params));let m=gle(r,L7({},e,{hash:ule(u),path:s.path})),h=i.createHref(m);return L7({fullPath:m,hash:u,query:r===h9?kle(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function b(e){return typeof e==`string`?i9(n,e,c.value.path):L7({},e)}function x(e,t){if(u!==e)return U7(8,{from:t,to:e})}function S(e){return T(e)}function C(e){return S(L7(b(e),{replace:!0}))}function w(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=b(i):{path:i},i.params={}),L7({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function T(e,t){let n=u=y(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,l=w(n,i);if(l)return T(L7(b(l),{state:typeof l==`object`?L7({},a,l.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&_le(r,i,n)&&(f=U7(16,{to:d,from:i}),ee(i,i,!0,!1)),(f?Promise.resolve(f):O(d,i)).catch(e=>W7(e)?W7(e,2)?e:R(e):I(e,d,i)).then(e=>{if(e){if(W7(e,2))return T(L7({replace:s},b(e.to),{state:typeof e.to==`object`?L7({},a,e.to.state):a,force:o}),t||d)}else e=A(d,i,!0,s,a);return k(d,i,e),e})}function E(e,t){let n=x(e,t);return n?Promise.reject(n):Promise.resolve()}function D(e){let t=z.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function O(e,t){let n,[r,i,s]=Ale(e,t);n=v9(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(_9(r,e,t))});let c=E.bind(null,e,t);return n.push(c),ie(n).then(()=>{n=[];for(let r of a.list())n.push(_9(r,e,t));return n.push(c),ie(n)}).then(()=>{n=v9(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(_9(r,e,t))});return n.push(c),ie(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(B7(r.beforeEnter))for(let i of r.beforeEnter)n.push(_9(i,e,t));else n.push(_9(r.beforeEnter,e,t))}return n.push(c),ie(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=v9(s,`beforeRouteEnter`,e,t,D),n.push(c),ie(n))).then(()=>{n=[];for(let r of o.list())n.push(_9(r,e,t));return n.push(c),ie(n)}).catch(e=>W7(e,8)?e:Promise.reject(e))}function k(e,t,n){s.list().forEach(r=>D(()=>r(e,t,n)))}function A(e,t,n,r,a){let o=x(e,t);if(o)return o;let s=t===l9,l=Y7?history.state:{};n&&(r||s?i.replace(e.fullPath,L7({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,ee(e,t,n,s),R()}let j;function M(){j||=i.listen((e,t,n)=>{if(!re.listening)return;let r=y(e),a=w(r,re.currentRoute.value);if(a){T(L7(a,{replace:!0,force:!0}),r).catch(z7);return}u=r;let o=c.value;Y7&&n.delta&&Tle(d9(o.fullPath,n.delta)),O(r,o).catch(e=>W7(e,12)?e:W7(e,2)?(T(L7(b(e.to),{force:!0}),r).then(e=>{W7(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(z7),Promise.reject()):(n.delta&&i.go(-n.delta,!1),I(e,r,o))).then(e=>{e||=A(r,o,!1),e&&(n.delta&&!W7(e,8)?i.go(-n.delta,!1):n.type===`pop`&&W7(e,20)&&i.go(-1,!1)),k(r,o,e)}).catch(z7)})}let N=g9(),P=g9(),F;function I(e,t,n){R(e);let r=P.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function L(){return F&&c.value!==l9?Promise.resolve():new Promise((e,t)=>{N.add([e,t])})}function R(e){return F||(F=!e,M(),N.list().forEach(([t,n])=>e?n(e):t()),N.reset()),e}function ee(t,n,r,i){let{scrollBehavior:a}=e;if(!Y7||!a)return Promise.resolve();let o=!r&&Ele(d9(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return zn().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&wle(e)).catch(e=>t===c.value&&I(e,t,n))}let te=e=>i.go(e),ne,z=new Set,re={currentRoute:c,listening:!0,addRoute:m,removeRoute:h,clearRoutes:g,hasRoute:v,getRoutes:_,resolve:y,options:e,push:S,replace:C,go:te,back:()=>te(-1),forward:()=>te(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:P.add,isReady:L,install(e){e.component(`RouterLink`,Xle),e.component(`RouterView`,eue),e.config.globalProperties.$router=re,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>fn(c)}),Y7&&!ne&&c.value===l9&&(ne=!0,S(i.location).catch(e=>{}));let t={};for(let e in l9)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(K7,re),e.provide(q7,Xt(t)),e.provide(J7,c);let n=e.unmount;z.add(e),e.unmount=function(){z.delete(e),z.size<1&&(u=l9,j&&j(),j=null,c.value=l9,ne=!1,F=!1),n()}}};function ie(e){return e.reduce((e,t)=>e.then(()=>D(t)),Promise.resolve())}return re}var nue=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,rue=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,iue=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function aue(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)oue(e);else return t}function oue(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function sue(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!iue.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(nue.test(e)||rue.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,aue)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}String.fromCharCode;var cue=/#/g,lue=/&/g,uue=/\//g,due=/=/g,M9=/\+/g,fue=/%5e/gi,pue=/%60/gi,mue=/%7c/gi,hue=/%20/gi;function gue(e){return encodeURI(``+e).replace(mue,`|`)}function N9(e){return gue(typeof e==`string`?e:JSON.stringify(e)).replace(M9,`%2B`).replace(hue,`+`).replace(cue,`%23`).replace(lue,`%26`).replace(pue,"`").replace(fue,`^`).replace(uue,`%2F`)}function P9(e){return N9(e).replace(due,`%3D`)}function F9(e=``){try{return decodeURIComponent(``+e)}catch{return``+e}}function _ue(e){return F9(e.replace(M9,` `))}function vue(e){return F9(e.replace(M9,` `))}function yue(e=``){let t=Object.create(null);e[0]===`?`&&(e=e.slice(1));for(let n of e.split(`&`)){let e=n.match(/([^=]+)=?(.*)/)||[];if(e.length<2)continue;let r=_ue(e[1]);if(r===`__proto__`||r===`constructor`)continue;let i=vue(e[2]||``);t[r]===void 0?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]}return t}function bue(e,t){return(typeof t==`number`||typeof t==`boolean`)&&(t=String(t)),t?Array.isArray(t)?t.map(t=>`${P9(e)}=${N9(t)}`).join(`&`):`${P9(e)}=${N9(t)}`:P9(e)}function xue(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>bue(t,e[t])).filter(Boolean).join(`&`)}var Sue=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Cue=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,wue=/^([/\\]\s*){2,}[^/\\]/,Tue=/\/$|\/\?|\/#/,Eue=/^\.?\//;function I9(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?Sue.test(e):Cue.test(e)||(t.acceptRelative?wue.test(e):!1)}function L9(e=``,t){return t?Tue.test(e):e.endsWith(`/`)}function Due(e=``,t){if(!t)return(L9(e)?e.slice(0,-1):e)||`/`;if(!L9(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function Oue(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(L9(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function kue(e,t){if(jue(t)||I9(e))return e;let n=Due(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return Nue(n,e)}function Aue(e,t){let n=z9(e);return n.search=xue({...yue(n.search),...t}),Pue(n)}function jue(e){return!e||e===`/`}function Mue(e){return e&&e!==`/`}function Nue(e,...t){let n=e||``;for(let e of t.filter(e=>Mue(e)))if(n){let t=e.replace(Eue,``);n=Oue(n)+t}else n=e;return n}var R9=Symbol.for(`ufo:protocolRelative`);function z9(e=``,t){let n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){let[,e,t=``]=n;return{protocol:e.toLowerCase(),pathname:t,href:e+t,auth:``,host:``,search:``,hash:``}}if(!I9(e,{acceptRelative:!0}))return t?z9(t+e):B9(e);let[,r=``,i,a=``]=e.replace(/\\/g,`/`).match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,o=``,s=``]=a.match(/([^#/?]*)(.*)?/)||[];r===`file:`&&(s=s.replace(/\/(?=[A-Za-z]:)/,``));let{pathname:c,search:l,hash:u}=B9(s);return{protocol:r.toLowerCase(),auth:i?i.slice(0,Math.max(0,i.length-1)):``,host:o,pathname:c,search:l,hash:u,[R9]:!r}}function B9(e=``){let[t=``,n=``,r=``]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function Pue(e){let t=e.pathname||``,n=e.search?(e.search.startsWith(`?`)?``:`?`)+e.search:``,r=e.hash||``,i=e.auth?e.auth+`@`:``,a=e.host||``;return(e.protocol||e[R9]?(e.protocol||``)+`//`:``)+i+a+t+n+r}var V9=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function Fue(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new V9(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:``}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var Iue=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function H9(e=`GET`){return Iue.has(e.toUpperCase())}function Lue(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var Rue=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),zue=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function Bue(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return zue.test(t)?`json`:t===`text/event-stream`?`stream`:Rue.has(t)||t.startsWith(`text/`)?`text`:`blob`}function Vue(e,t,n,r){let i=Hue(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function Hue(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function U9(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var Uue=new Set([408,409,425,429,500,502,503,504]),Wue=new Set([101,204,205,304]);function W9(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!H9(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):Uue.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=Fue(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:Vue(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await U9(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=kue(s.request,s.options.baseURL)),s.options.query&&(s.request=Aue(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&H9(s.options.method)){if(Lue(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await U9(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!Wue.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||Bue(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||sue;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await U9(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await U9(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>W9({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var G9=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),Gue=G9.fetch?(...e)=>G9.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),Kue=G9.Headers,que=G9.AbortController,K9=W9({fetch:Gue,Headers:Kue,AbortController:que}).create({baseURL:`/api`,credentials:`include`}),q9=null,Jue=e=>{q9=e};async function J9(e,t={},n=!1){let r=q9?.token();try{return await K9(e,{...t,headers:{...t.headers,...r&&{Authorization:`Bearer ${r}`}}})}catch(r){if(r instanceof V9&&r.status===401&&!n&&q9){if(await q9.refresh())return J9(e,t,!0);q9.onExpired()}throw r}}var Y9=e=>e instanceof V9?e.data??{}:{};function Yue(e){if(e instanceof V9){if(!e.status)return`ارتباط با سرور برقرار نشد`;let t=Y9(e).message;return Array.isArray(t)?t.join(`، `):t||(e.status===413?`حجم فایل بیش از حد مجاز است`:e.status===429?`تعداد درخواست‌ها زیاد است؛ کمی بعد تلاش کنید`:`خطای سرور (${e.status})`)}return`خطای ناشناخته`}var X9=null,Z9=qse(`auth`,{state:()=>({token:``,user:null,ready:!1}),getters:{isAdmin:e=>e.user?.role===`ADMIN`},actions:{setSession(e){this.token=e.accessToken,this.user=e.user},clear(){this.token=``,this.user=null},async login(e){this.setSession(await K9(`/admin/auth/login`,{method:`POST`,body:e}))},refresh(){return X9??=K9(`/admin/auth/refresh`,{method:`POST`}).then(e=>(this.setSession(e),!0)).catch(()=>(this.clear(),!1)).finally(()=>{X9=null}),X9},async init(){this.ready||=(Jue({token:()=>this.token,refresh:()=>this.refresh(),onExpired:()=>{this.clear(),$9.push({name:`login`,query:{redirect:$9.currentRoute.value.fullPath}})}}),await this.refresh(),!0)},async logout(){await K9(`/admin/auth/logout`,{method:`POST`}).catch(()=>void 0),this.clear(),await $9.push({name:`login`})}}}),Xue=`modulepreload`,Zue=function(e){return`/`+e},Que={},$ue=function(e){return e.pathname.endsWith(`.css`)},ede=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},Q9=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=Zue(t,n);let r=s(t),i=$ue(r);return ede(Que,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:Xue,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},$9=tue({history:Ple(),routes:[{path:`/login`,name:`login`,component:()=>Q9(()=>import(`./LoginPage-D6HPXv4g.js`),__vite__mapDeps([0,1,2,3,4,5])),meta:{public:!0,title:`ورود`}},{path:`/`,component:()=>Q9(()=>import(`./AdminLayout-j5VE2EZ9.js`),__vite__mapDeps([6,1,2,3,7,8])),children:[{path:``,name:`dashboard`,component:()=>Q9(()=>import(`./DashboardPage-Do-v_tLH.js`),__vite__mapDeps([9,1,2,7,10,11])),meta:{title:`داشبورد`}},{path:`products`,name:`products`,component:()=>Q9(()=>import(`./ProductsPage-CVHBMUNz.js`),__vite__mapDeps([12,1,2,13])),meta:{title:`محصولات`}},{path:`products/new`,name:`product-new`,component:()=>Q9(()=>import(`./ProductEditPage-DTSEsrWG.js`),__vite__mapDeps([14,1,2,7,10,11,4,15,16])),meta:{title:`محصول جدید`}},{path:`products/:id`,name:`product-edit`,component:()=>Q9(()=>import(`./ProductEditPage-DTSEsrWG.js`),__vite__mapDeps([14,1,2,7,10,11,4,15,16])),meta:{title:`ویرایش محصول`}},{path:`categories`,name:`categories`,component:()=>Q9(()=>import(`./CategoriesPage-DSZGpYF5.js`),__vite__mapDeps([17,1,2,7,10,11])),meta:{title:`دسته‌بندی‌ها`}},{path:`categories/new`,name:`category-new`,component:()=>Q9(()=>import(`./CategoryEditPage-B4VYwreC.js`),__vite__mapDeps([18,1,2,10,11,4,19,15,16])),meta:{title:`دسته جدید`}},{path:`categories/:id`,name:`category-edit`,component:()=>Q9(()=>import(`./CategoryEditPage-B4VYwreC.js`),__vite__mapDeps([18,1,2,10,11,4,19,15,16])),meta:{title:`ویرایش دسته`}},{path:`sections`,name:`sections`,component:()=>Q9(()=>import(`./SectionsPage-Da2RoCd0.js`),__vite__mapDeps([20,1,2,7,10,11])),meta:{title:`بخش‌های سایت`}},{path:`sections/:key`,name:`section-edit`,component:()=>Q9(()=>import(`./SectionEditPage-BfSd3Uov.js`),__vite__mapDeps([21,1,2,7,10,11,4,19,15])),meta:{title:`ویرایش بخش`}},{path:`messages`,name:`messages`,component:()=>Q9(()=>import(`./MessagesPage-Bb_X9ABq.js`),__vite__mapDeps([22,1,2,7,10,11])),meta:{title:`پیام‌های تماس`}},{path:`media`,name:`media`,component:()=>Q9(()=>import(`./MediaPage-DnfskIVE.js`),__vite__mapDeps([23,1,2,7,10,11])),meta:{title:`کتابخانه رسانه`}},{path:`users`,name:`users`,component:()=>Q9(()=>import(`./UsersPage-C15bNN1T.js`),__vite__mapDeps([24,1,2,7,10,11,4])),meta:{title:`کاربران`,roles:[`ADMIN`]}},{path:`profile`,name:`profile`,component:()=>Q9(()=>import(`./ProfilePage-DxhVPJ4c.js`),__vite__mapDeps([25,1,2,10,11,4])),meta:{title:`حساب کاربری`}}]},{path:`/:pathMatch(.*)*`,redirect:`/`}]});$9.beforeEach(async e=>{let t=Z9();return await t.init(),e.meta.public?t.user&&e.name===`login`?{name:`dashboard`}:!0:t.user?e.meta.roles&&!e.meta.roles.includes(t.user.role)?{name:`dashboard`}:!0:{name:`login`,query:{redirect:e.fullPath}}}),$9.afterEach(e=>{document.title=e.meta.title?`${e.meta.title} | پنل ایمن پیشگامان`:`پنل ایمن پیشگامان`}),j7(Wce()),rc(Yce).use(Vse()).use($9).use(Nse).mount(`#app`);export{u7 as $,wce as A,fi as At,Yse as B,je as Bt,Rce as C,$r as Ct,sce as D,gi as Dt,tce as E,er as Et,Ice as F,Yt as Ft,pce as G,h7 as H,g7 as I,B as It,C7 as J,lce as K,_7 as L,fn as Lt,Jse as M,H as Mt,Dce as N,Zn as Nt,bce as O,aee as Ot,Ace as P,cn as Pt,oce as Q,Oce as R,Se as Rt,Ece as S,ni as St,jce as T,Ra as Tt,cce as U,gce as V,Zse as W,fce as X,_ce as Y,xce as Z,Cce as _,U as _t,ele as a,y7 as at,Qse as b,lee as bt,Hce as c,Ma as ct,A7 as d,Ua as dt,vce as et,dce as f,eo as ft,l7 as g,W as gt,ice as h,Qa as ht,Yue as i,nce as it,$se as j,Vi as jt,mce as k,ui as kt,Bce as l,G as lt,yce as m,$a as mt,J9 as n,ace as nt,$ce as o,_W as ot,uce as p,uee as pt,w7 as q,Y9 as r,Sce as rt,Vce as s,$s as st,Z9 as t,hce as tt,j7 as u,Ja as ut,c7 as v,Oo as vt,Fce as w,ri as wt,v7 as x,zn as xt,rce as y,tr as yt,s7 as z,_e as zt}; \ No newline at end of file diff --git a/apps/admin/dist/assets/index-DjFpBvci.css b/apps/admin/dist/assets/index-DjFpBvci.css new file mode 100644 index 0000000..28a4b65 --- /dev/null +++ b/apps/admin/dist/assets/index-DjFpBvci.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"IRANSans", Tahoma, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.visible\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.fixed\!{position:fixed!important}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.-start-24{inset-inline-start:calc(var(--spacing) * -24)}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.start-4{inset-inline-start:calc(var(--spacing) * 4)}.-end-1{inset-inline-end:calc(var(--spacing) * -1)}.-end-16{inset-inline-end:calc(var(--spacing) * -16)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.end-1{inset-inline-end:calc(var(--spacing) * 1)}.end-2{inset-inline-end:calc(var(--spacing) * 2)}.-top-1{top:calc(var(--spacing) * -1)}.top-1{top:var(--spacing)}.top-1\/4{top:25%}.top-2{top:calc(var(--spacing) * 2)}.top-\[52px\]{top:52px}.bottom-0{bottom:0}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-\[72px\]{bottom:72px}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-\[5\]{z-index:5}.-col-24{grid-column:calc(24 * -1)}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.\!m-0{margin:0!important}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-auto{margin-inline:auto}.my-5{margin-block:calc(var(--spacing) * 5)}.ms-2{margin-inline-start:calc(var(--spacing) * 2)}.me-1{margin-inline-end:var(--spacing)}.me-2{margin-inline-end:calc(var(--spacing) * 2)}.\!mt-2{margin-top:calc(var(--spacing) * 2)!important}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.\!mb-3{margin-bottom:calc(var(--spacing) * 3)!important}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!flex{display:flex!important}.\!hidden{display:none!important}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.aspect-square{aspect-ratio:1}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-13{width:calc(var(--spacing) * 13);height:calc(var(--spacing) * 13)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-\[360px\]{width:360px;height:360px}.size-\[420px\]{width:420px;height:420px}.size-full{width:100%;height:100%}.\!h-9{height:calc(var(--spacing) * 9)!important}.\!h-10{height:calc(var(--spacing) * 10)!important}.\!h-11{height:calc(var(--spacing) * 11)!important}.\!h-12{height:calc(var(--spacing) * 12)!important}.h-10{height:calc(var(--spacing) * 10)}.h-28{height:calc(var(--spacing) * 28)}.h-48{height:calc(var(--spacing) * 48)}.h-full{height:100%}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-\[360px\]{max-height:360px}.min-h-screen{min-height:100vh}.\!w-full{width:100%!important}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-28{width:calc(var(--spacing) * 28)}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[24px\]{max-width:24px}.max-w-\[36px\]{max-width:36px}.max-w-\[140px\]{max-width:140px}.max-w-\[240px\]{max-width:240px}.max-w-\[1120px\]{max-width:1120px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-max{min-width:max-content}.\!flex-1{flex:1!important}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-rotate-1{rotate:-1deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.scrollbar-none{scrollbar-width:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.\!items-center{align-items:center!important}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.\!justify-center{justify-content:center!important}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.\!gap-1{gap:var(--spacing)!important}.\!gap-1\.5{gap:calc(var(--spacing) * 1.5)!important}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\!rounded-full{border-radius:2147483647px!important}.\!rounded-lg{border-radius:var(--radius-lg)!important}.\!rounded-xl{border-radius:var(--radius-xl)!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-amber-500{border-color:var(--color-amber-500)!important}.\!border-blue-500{border-color:var(--color-blue-500)!important}.\!border-emerald-500{border-color:var(--color-emerald-500)!important}.\!border-orange-500{border-color:var(--color-orange-500)!important}.\!border-purple-500{border-color:var(--color-purple-500)!important}.border-\[\#2a3d63\]\/70{border-color:oklab(36.3224% -.00838912 -.0699793/.7)}.border-\[\#ff5a00\]\/30{border-color:oklab(68.1414% .163476 .13747/.3)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-200\/60{border-color:#bedbff99}@supports (color:color-mix(in lab, red, red)){.border-blue-200\/60{border-color:color-mix(in oklab, var(--color-blue-200) 60%, transparent)}}.border-emerald-200\/70{border-color:#a4f4cfb3}@supports (color:color-mix(in lab, red, red)){.border-emerald-200\/70{border-color:color-mix(in oklab, var(--color-emerald-200) 70%, transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-orange-100{border-color:var(--color-orange-100)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-200\/60{border-color:#ffd7a899}@supports (color:color-mix(in lab, red, red)){.border-orange-200\/60{border-color:color-mix(in oklab, var(--color-orange-200) 60%, transparent)}}.border-orange-200\/70{border-color:#ffd7a8b3}@supports (color:color-mix(in lab, red, red)){.border-orange-200\/70{border-color:color-mix(in oklab, var(--color-orange-200) 70%, transparent)}}.border-orange-300{border-color:var(--color-orange-300)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\/70{border-color:#e2e8f0b3}@supports (color:color-mix(in lab, red, red)){.border-slate-200\/70{border-color:color-mix(in oklab, var(--color-slate-200) 70%, transparent)}}.border-slate-200\/80{border-color:#e2e8f0cc}@supports (color:color-mix(in lab, red, red)){.border-slate-200\/80{border-color:color-mix(in oklab, var(--color-slate-200) 80%, transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.\!bg-amber-50\/30{background-color:#fffbeb4d!important}@supports (color:color-mix(in lab, red, red)){.\!bg-amber-50\/30{background-color:color-mix(in oklab, var(--color-amber-50) 30%, transparent)!important}}.\!bg-blue-50\/30{background-color:#eff6ff4d!important}@supports (color:color-mix(in lab, red, red)){.\!bg-blue-50\/30{background-color:color-mix(in oklab, var(--color-blue-50) 30%, transparent)!important}}.\!bg-emerald-50\/30{background-color:#ecfdf54d!important}@supports (color:color-mix(in lab, red, red)){.\!bg-emerald-50\/30{background-color:color-mix(in oklab, var(--color-emerald-50) 30%, transparent)!important}}.\!bg-orange-50\/30{background-color:#fff7ed4d!important}@supports (color:color-mix(in lab, red, red)){.\!bg-orange-50\/30{background-color:color-mix(in oklab, var(--color-orange-50) 30%, transparent)!important}}.\!bg-purple-50\/30{background-color:#faf5ff4d!important}@supports (color:color-mix(in lab, red, red)){.\!bg-purple-50\/30{background-color:color-mix(in oklab, var(--color-purple-50) 30%, transparent)!important}}.bg-\[\#0b1224\]{background-color:#0b1224}.bg-\[\#1a2744\]\/80{background-color:oklab(27.6915% -.00524981 -.0565819/.8)}.bg-\[\#ff5a00\]{background-color:#ff5a00}.bg-\[\#ff5a00\]\/10{background-color:oklab(68.1414% .163476 .13747/.1)}.bg-\[\#ff5a00\]\/15{background-color:oklab(68.1414% .163476 .13747/.15)}.bg-\[\#ffb800\]{background-color:#ffb800}.bg-\[\#ffb800\]\/10{background-color:oklab(82.7155% .0281574 .168734/.1)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-50\/30{background-color:#eff6ff4d}@supports (color:color-mix(in lab, red, red)){.bg-blue-50\/30{background-color:color-mix(in oklab, var(--color-blue-50) 30%, transparent)}}.bg-blue-50\/40{background-color:#eff6ff66}@supports (color:color-mix(in lab, red, red)){.bg-blue-50\/40{background-color:color-mix(in oklab, var(--color-blue-50) 40%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/60{background-color:#f9fafb99}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\/60{background-color:color-mix(in oklab, var(--color-gray-50) 60%, transparent)}}.bg-gray-50\/70{background-color:#f9fafbb3}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\/70{background-color:color-mix(in oklab, var(--color-gray-50) 70%, transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-50\/30{background-color:#fff7ed4d}@supports (color:color-mix(in lab, red, red)){.bg-orange-50\/30{background-color:color-mix(in oklab, var(--color-orange-50) 30%, transparent)}}.bg-orange-50\/40{background-color:#fff7ed66}@supports (color:color-mix(in lab, red, red)){.bg-orange-50\/40{background-color:color-mix(in oklab, var(--color-orange-50) 40%, transparent)}}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-50\/70{background-color:#f8fafcb3}@supports (color:color-mix(in lab, red, red)){.bg-slate-50\/70{background-color:color-mix(in oklab, var(--color-slate-50) 70%, transparent)}}.bg-slate-100{background-color:var(--color-slate-100)}.bg-white{background-color:var(--color-white)}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab, var(--color-white) 95%, transparent)}}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-\[\#ff5a00\]{--tw-gradient-from:#ff5a00;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-black\/60{--tw-gradient-from:#0009}@supports (color:color-mix(in lab, red, red)){.from-black\/60{--tw-gradient-from:color-mix(in oklab, var(--color-black) 60%, transparent)}}.from-black\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-600{--tw-gradient-from:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-orange-600{--tw-gradient-from:var(--color-orange-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-\[\#ff7a29\]{--tw-gradient-to:#ff7a29;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-\[\#ff8a3d\]{--tw-gradient-to:#ff8a3d;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-amber-500{--tw-gradient-to:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-sky-500{--tw-gradient-to:var(--color-sky-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.\!px-5{padding-inline:calc(var(--spacing) * 5)!important}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pe-2{padding-inline-end:calc(var(--spacing) * 2)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.font-mono{font-family:var(--font-mono)}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!text-\[10px\]{font-size:10px!important}.\!text-\[11px\]{font-size:11px!important}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-\[1\.25\]{--tw-leading:1.25;line-height:1.25}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.\!font-bold{--tw-font-weight:var(--font-weight-bold)!important;font-weight:var(--font-weight-bold)!important}.\!font-medium{--tw-font-weight:var(--font-weight-medium)!important;font-weight:var(--font-weight-medium)!important}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.28em\]{--tw-tracking:.28em;letter-spacing:.28em}.tracking-\[0\.32em\]{--tw-tracking:.32em;letter-spacing:.32em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-pre-line{white-space:pre-line}.text-\[\#0b1224\]{color:#0b1224}.text-\[\#0f172a\]{color:#0f172a}.text-\[\#8e9ab0\]{color:#8e9ab0}.text-\[\#94a3b8\]{color:#94a3b8}.text-\[\#edede6\]{color:#edede6}.text-\[\#edede6\]\/70{color:oklab(94.4167% -.00265509 .00892061/.7)}.text-\[\#ff5a00\]{color:#ff5a00}.text-amber-600{color:var(--color-amber-600)}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-orange-400{color:var(--color-orange-400)}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-purple-600{color:var(--color-purple-600)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.\!shadow-\[0_8px_32px_rgba\(255\,90\,0\,0\.35\)\]{--tw-shadow:0 8px 32px var(--tw-shadow-color,#ff5a0059)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.\!shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.shadow-2xs{--tw-shadow:0 1px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_28px_rgba\(10\,30\,92\,0\.45\)\]{--tw-shadow:0 0 28px var(--tw-shadow-color,#0a1e5c73);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_10px_40px_rgba\(255\,184\,0\,0\.22\)\]{--tw-shadow:0 10px 40px var(--tw-shadow-color,#ffb80038);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-orange-500\/20{--tw-shadow-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.shadow-orange-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-orange-500\/30{--tw-shadow-color:#fe6e004d}@supports (color:color-mix(in lab, red, red)){.shadow-orange-500\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-orange-100{--tw-ring-color:var(--color-orange-100)}.ring-white{--tw-ring-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[100px\]{--tw-blur:blur(100px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[120px\]{--tw-blur:blur(120px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:text-orange-600:is(:where(.group):hover *){color:var(--color-orange-600)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:border-\[\#ff5a00\]:hover{border-color:#ff5a00}.hover\:border-amber-200:hover{border-color:var(--color-amber-200)}.hover\:border-blue-200:hover{border-color:var(--color-blue-200)}.hover\:border-emerald-200:hover{border-color:var(--color-emerald-200)}.hover\:border-orange-200:hover{border-color:var(--color-orange-200)}.hover\:border-purple-200:hover{border-color:var(--color-purple-200)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-blue-50\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-50\/50:hover{background-color:color-mix(in oklab, var(--color-blue-50) 50%, transparent)}}.hover\:bg-emerald-50\/50:hover{background-color:#ecfdf580}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-50\/50:hover{background-color:color-mix(in oklab, var(--color-emerald-50) 50%, transparent)}}.hover\:bg-orange-50:hover{background-color:var(--color-orange-50)}.hover\:bg-orange-50\/30:hover{background-color:#fff7ed4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-orange-50\/30:hover{background-color:color-mix(in oklab, var(--color-orange-50) 30%, transparent)}}.hover\:bg-orange-50\/50:hover{background-color:#fff7ed80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-orange-50\/50:hover{background-color:color-mix(in oklab, var(--color-orange-50) 50%, transparent)}}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-purple-50\/50:hover{background-color:#faf5ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-50\/50:hover{background-color:color-mix(in oklab, var(--color-purple-50) 50%, transparent)}}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-rose-50:hover{background-color:var(--color-rose-50)}.hover\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:text-\[\#ff5a00\]:hover{color:#ff5a00}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-orange-600:hover{color:var(--color-orange-600)}.hover\:text-orange-700:hover{color:var(--color-orange-700)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-\[\#ff5a00\]:focus{border-color:#ff5a00}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}.active\:scale-\[0\.99\]:active{scale:.99}.active\:bg-amber-50\/40:active{background-color:#fffbeb66}@supports (color:color-mix(in lab, red, red)){.active\:bg-amber-50\/40:active{background-color:color-mix(in oklab, var(--color-amber-50) 40%, transparent)}}.active\:bg-blue-50\/40:active{background-color:#eff6ff66}@supports (color:color-mix(in lab, red, red)){.active\:bg-blue-50\/40:active{background-color:color-mix(in oklab, var(--color-blue-50) 40%, transparent)}}.active\:bg-emerald-50\/40:active{background-color:#ecfdf566}@supports (color:color-mix(in lab, red, red)){.active\:bg-emerald-50\/40:active{background-color:color-mix(in oklab, var(--color-emerald-50) 40%, transparent)}}.active\:bg-emerald-100:active{background-color:var(--color-emerald-100)}.active\:bg-orange-50\/40:active{background-color:#fff7ed66}@supports (color:color-mix(in lab, red, red)){.active\:bg-orange-50\/40:active{background-color:color-mix(in oklab, var(--color-orange-50) 40%, transparent)}}.active\:bg-purple-50\/40:active{background-color:#faf5ff66}@supports (color:color-mix(in lab, red, red)){.active\:bg-purple-50\/40:active{background-color:color-mix(in oklab, var(--color-purple-50) 40%, transparent)}}.active\:bg-rose-200:active{background-color:var(--color-rose-200)}.active\:bg-slate-50:active{background-color:var(--color-slate-50)}.active\:bg-slate-50\/50:active{background-color:#f8fafc80}@supports (color:color-mix(in lab, red, red)){.active\:bg-slate-50\/50:active{background-color:color-mix(in oklab, var(--color-slate-50) 50%, transparent)}}.active\:bg-slate-200:active{background-color:var(--color-slate-200)}.active\:bg-slate-300:active{background-color:var(--color-slate-300)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-30:disabled{opacity:.3}@media not all and (width>=64rem){.max-lg\:col-span-2{grid-column:span 2/span 2}.max-lg\:mt-4{margin-top:calc(var(--spacing) * 4)}.max-lg\:grid{display:grid}.max-lg\:hidden{display:none}.max-lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-lg\:gap-2{gap:calc(var(--spacing) * 2)}}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:gap-2{gap:calc(var(--spacing) * 2)}}@media (width>=48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:w-auto{width:auto}.md\:max-w-md{max-width:var(--container-md)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:leading-9{--tw-leading:calc(var(--spacing) * 9);line-height:calc(var(--spacing) * 9)}.md\:leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}}@media (width>=64rem){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:me-auto{margin-inline-end:auto}.lg\:\!block{display:block!important}.lg\:\!flex{display:flex!important}.lg\:\!hidden{display:none!important}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:gap-4{gap:calc(var(--spacing) * 4)}.lg\:gap-16{gap:calc(var(--spacing) * 16)}.lg\:pb-0{padding-bottom:0}.lg\:pb-6{padding-bottom:calc(var(--spacing) * 6)}}@media (width>=80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}}}@font-face{font-family:IRANSans;src:url(/fonts/IRANSansWebFaNum.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IRANSans;src:url(/fonts/IRANSansWebFaNum_Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:IRANSans;src:url(/fonts/IRANSansWebFaNum_Bold.woff2)format("woff2");font-weight:700;font-display:swap}html,body{font-family:var(--font-sans);background:#f5f6fa}.ltr-input input,input.ltr-input,textarea.ltr-input{text-align:left;direction:ltr}.ant-btn-icon-only,.ant-btn.ant-btn-icon-only,.ant-table .ant-btn:not(.ant-btn-primary),.ant-space .ant-btn:not(.ant-btn-primary){box-shadow:none!important;border:none!important}.ant-btn:has(>.vx-icon:only-child):not(.ant-btn-primary){box-shadow:none!important;border:none!important}.ant-btn:has(>span>.vx-icon:only-child):not(.ant-btn-primary){box-shadow:none!important;border:none!important}.ant-btn-icon-only:not(.ant-btn-primary):not(:hover),.ant-table .ant-btn:not(.ant-btn-primary):not(:hover),.ant-space .ant-btn:not(.ant-btn-primary):not(:hover){background:0 0!important}.ant-btn-icon-only:not(.ant-btn-primary):hover,.ant-table .ant-btn:not(.ant-btn-primary):hover,.ant-space .ant-btn:not(.ant-btn-primary):hover{background:#f1f5f9!important;border:none!important}.ant-btn-icon-only.ant-btn-dangerous,.ant-table .ant-btn.ant-btn-dangerous,.ant-space .ant-btn.ant-btn-dangerous{color:#ef4444!important;border:none!important}.ant-btn-icon-only.ant-btn-dangerous:hover,.ant-table .ant-btn.ant-btn-dangerous:hover,.ant-space .ant-btn.ant-btn-dangerous:hover{color:#dc2626!important;background:#fee2e2!important;border:none!important}.ant-btn{justify-content:center!important;align-items:center!important;gap:8px!important;display:inline-flex!important}.ant-btn>.anticon,.ant-btn>.vx-icon,.ant-btn>.ant-btn-icon{vertical-align:middle!important;justify-content:center!important;align-items:center!important;line-height:0!important;display:inline-flex!important}.ant-btn-icon-only{gap:0!important}.ant-btn-icon-only>.vx-icon,.ant-btn-icon-only>.anticon,.ant-btn-icon-only>.ant-btn-icon{margin:0!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes pulse{50%{opacity:.5}} diff --git a/apps/admin/dist/assets/logo-BuUh917n.js b/apps/admin/dist/assets/logo-BuUh917n.js new file mode 100644 index 0000000..18b40a1 --- /dev/null +++ b/apps/admin/dist/assets/logo-BuUh917n.js @@ -0,0 +1 @@ +var e=`/logo.png`;export{e as t}; \ No newline at end of file diff --git a/apps/admin/dist/assets/slug-Flyc3fOh.js b/apps/admin/dist/assets/slug-Flyc3fOh.js new file mode 100644 index 0000000..b162d97 --- /dev/null +++ b/apps/admin/dist/assets/slug-Flyc3fOh.js @@ -0,0 +1 @@ +var e=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,80);export{e as t}; \ No newline at end of file diff --git a/out/favicon.svg b/apps/admin/dist/favicon.svg similarity index 100% rename from out/favicon.svg rename to apps/admin/dist/favicon.svg diff --git a/out/fonts/IRANSansWebFaNum.woff2 b/apps/admin/dist/fonts/IRANSansWebFaNum.woff2 similarity index 100% rename from out/fonts/IRANSansWebFaNum.woff2 rename to apps/admin/dist/fonts/IRANSansWebFaNum.woff2 diff --git a/out/fonts/IRANSansWebFaNum_Bold.woff2 b/apps/admin/dist/fonts/IRANSansWebFaNum_Bold.woff2 similarity index 100% rename from out/fonts/IRANSansWebFaNum_Bold.woff2 rename to apps/admin/dist/fonts/IRANSansWebFaNum_Bold.woff2 diff --git a/out/fonts/IRANSansWebFaNum_Medium.woff2 b/apps/admin/dist/fonts/IRANSansWebFaNum_Medium.woff2 similarity index 100% rename from out/fonts/IRANSansWebFaNum_Medium.woff2 rename to apps/admin/dist/fonts/IRANSansWebFaNum_Medium.woff2 diff --git a/apps/admin/dist/index.html b/apps/admin/dist/index.html new file mode 100644 index 0000000..ca24b91 --- /dev/null +++ b/apps/admin/dist/index.html @@ -0,0 +1,15 @@ + + + + + + + + پنل مدیریت ایمن پیشگامان + + + + +
+ + diff --git a/out/images/logo.png b/apps/admin/dist/logo.png similarity index 100% rename from out/images/logo.png rename to apps/admin/dist/logo.png diff --git a/apps/admin/index.html b/apps/admin/index.html new file mode 100644 index 0000000..fdd65ff --- /dev/null +++ b/apps/admin/index.html @@ -0,0 +1,14 @@ + + + + + + + + پنل مدیریت ایمن پیشگامان + + +
+ + + diff --git a/apps/admin/package.json b/apps/admin/package.json new file mode 100644 index 0000000..ab6fe89 --- /dev/null +++ b/apps/admin/package.json @@ -0,0 +1,33 @@ +{ + "name": "@imen/admin", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite --port 5173", + "build": "vue-tsc -b && vite build", + "preview": "vite preview --port 5173", + "typecheck": "vue-tsc -b" + }, + "dependencies": { + "@ant-design/icons-vue": "^7.0.1", + "@imen/shared": "workspace:*", + "ant-design-vue": "^4.2.6", + "lucide-vue-next": "^0.475.0", + "ofetch": "^1.5.1", + "pinia": "^4.0.3", + "vue": "^3.5.43", + "vue-router": "^5.3.1", + "zod": "^4.6.7" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.1.17", + "@types/node": "^24.0.0", + "@vitejs/plugin-vue": "^6.0.10", + "@vue/tsconfig": "^0.8.1", + "tailwindcss": "^4.1.17", + "typescript": "~5.9.3", + "vite": "^8.0.0", + "vue-tsc": "^3.3.12" + } +} diff --git a/public/favicon.svg b/apps/admin/public/favicon.svg similarity index 100% rename from public/favicon.svg rename to apps/admin/public/favicon.svg diff --git a/public/fonts/IRANSansWebFaNum.woff2 b/apps/admin/public/fonts/IRANSansWebFaNum.woff2 similarity index 100% rename from public/fonts/IRANSansWebFaNum.woff2 rename to apps/admin/public/fonts/IRANSansWebFaNum.woff2 diff --git a/public/fonts/IRANSansWebFaNum_Bold.woff2 b/apps/admin/public/fonts/IRANSansWebFaNum_Bold.woff2 similarity index 100% rename from public/fonts/IRANSansWebFaNum_Bold.woff2 rename to apps/admin/public/fonts/IRANSansWebFaNum_Bold.woff2 diff --git a/public/fonts/IRANSansWebFaNum_Medium.woff2 b/apps/admin/public/fonts/IRANSansWebFaNum_Medium.woff2 similarity index 100% rename from public/fonts/IRANSansWebFaNum_Medium.woff2 rename to apps/admin/public/fonts/IRANSansWebFaNum_Medium.woff2 diff --git a/public/images/logo.png b/apps/admin/public/logo.png similarity index 100% rename from public/images/logo.png rename to apps/admin/public/logo.png diff --git a/apps/admin/src/App.vue b/apps/admin/src/App.vue new file mode 100644 index 0000000..717f195 --- /dev/null +++ b/apps/admin/src/App.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/admin/src/api/http.ts b/apps/admin/src/api/http.ts new file mode 100644 index 0000000..66c6e90 --- /dev/null +++ b/apps/admin/src/api/http.ts @@ -0,0 +1,59 @@ +import { FetchError, type FetchOptions, ofetch } from "ofetch"; +import type { ValidationIssue } from "@imen/shared"; + +/** Raw client without auth handling (login / refresh / logout use it directly) */ +export const rawApi = ofetch.create({ baseURL: "/api", credentials: "include" }); + +type AuthHooks = { + token: () => string; + refresh: () => Promise; + onExpired: () => void; +}; +let hooks: AuthHooks | null = null; + +/** Wired by the auth store, which owns the access token */ +export const setAuthHooks = (h: AuthHooks) => { + hooks = h; +}; + +/** + * Authenticated request. On 401 it refreshes the access token once (using the httpOnly + * refresh cookie) and retries; if that fails the session is over. + */ +export async function api(url: string, opts: FetchOptions<"json"> = {}, retried = false): Promise { + const token = hooks?.token(); + try { + return await rawApi(url, { + ...opts, + headers: { ...(opts.headers as Record), ...(token && { Authorization: `Bearer ${token}` }) }, + }); + } catch (e) { + if (e instanceof FetchError && e.status === 401 && !retried && hooks) { + if (await hooks.refresh()) return api(url, opts, true); + hooks.onExpired(); + } + throw e; + } +} + +interface ApiErrorBody { + message?: string | string[]; + issues?: ValidationIssue[]; +} + +export const errorBody = (e: unknown): ApiErrorBody => + e instanceof FetchError ? ((e.data as ApiErrorBody | undefined) ?? {}) : {}; + +/** Human-readable (Persian) error message for notifications */ +export function errorMessage(e: unknown): string { + if (e instanceof FetchError) { + if (!e.status) return "ارتباط با سرور برقرار نشد"; + const msg = errorBody(e).message; + if (Array.isArray(msg)) return msg.join("، "); + if (msg) return msg; + if (e.status === 413) return "حجم فایل بیش از حد مجاز است"; + if (e.status === 429) return "تعداد درخواست‌ها زیاد است؛ کمی بعد تلاش کنید"; + return `خطای سرور (${e.status})`; + } + return "خطای ناشناخته"; +} diff --git a/apps/admin/src/api/types.ts b/apps/admin/src/api/types.ts new file mode 100644 index 0000000..a2e854e --- /dev/null +++ b/apps/admin/src/api/types.ts @@ -0,0 +1,84 @@ +import type { MediaDto, ProductAttribute, SectionKey, SiteSections } from "@imen/shared"; + +/** Shapes returned by the admin endpoints of the API */ + +export interface AdminCategory { + id: number; + slug: string; + code: string; + name: string; + nameEn: string; + shortDesc: string; + fullDesc: string; + icon: string; + coverImageId: number | null; + coverImage: MediaDto | null; + sortOrder: number; + isPublished: boolean; + seoTitle: string; + seoDescription: string; + productCount: number; + groupCount: number; +} + +export interface AdminProductGroup { + id: number; + slug: string; + name: string; + desc: string; + sortOrder: number; + productCount: number; +} + +export interface AdminCategoryDetail extends Omit { + groups: AdminProductGroup[]; +} + +export interface AdminProduct { + id: number; + categoryId: number; + groupId: number | null; + code: string; + slug: string; + name: string; + nameEn: string; + desc: string; + specs: string[]; + variants: string[]; + details: string; + brand: string; + origin: string; + sizes: string[]; + standards: string[]; + features: string[]; + applications: string[]; + attributes: ProductAttribute[] | null; + packaging: string; + minOrder: string; + seoTitle: string; + seoDescription: string; + imageId: number | null; + image: MediaDto | null; + sortOrder: number; + isPublished: boolean; + category: { id: number; name: string }; + group: { id: number; name: string } | null; + updatedAt: string; +} + +export interface AdminProductDetail extends Omit { + gallery: MediaDto[]; +} + +export interface SectionResponse { + key: K; + data: SiteSections[K]; + updatedAt: string; +} + +export interface AdminSectionSummary { + key: SectionKey; + updatedAt: string | null; + enabled: boolean; +} + diff --git a/apps/admin/src/components/AdminPage.vue b/apps/admin/src/components/AdminPage.vue new file mode 100644 index 0000000..1d17c3d --- /dev/null +++ b/apps/admin/src/components/AdminPage.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/apps/admin/src/components/FormField.vue b/apps/admin/src/components/FormField.vue new file mode 100644 index 0000000..604ecda --- /dev/null +++ b/apps/admin/src/components/FormField.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/admin/src/components/IconSelect.vue b/apps/admin/src/components/IconSelect.vue new file mode 100644 index 0000000..94c0212 --- /dev/null +++ b/apps/admin/src/components/IconSelect.vue @@ -0,0 +1,33 @@ + + + diff --git a/apps/admin/src/components/ImageField.vue b/apps/admin/src/components/ImageField.vue new file mode 100644 index 0000000..fd69968 --- /dev/null +++ b/apps/admin/src/components/ImageField.vue @@ -0,0 +1,34 @@ + + + diff --git a/apps/admin/src/components/ImageRefField.vue b/apps/admin/src/components/ImageRefField.vue new file mode 100644 index 0000000..904860b --- /dev/null +++ b/apps/admin/src/components/ImageRefField.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/admin/src/components/LinesInput.vue b/apps/admin/src/components/LinesInput.vue new file mode 100644 index 0000000..31bc401 --- /dev/null +++ b/apps/admin/src/components/LinesInput.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/admin/src/components/ListEditor.vue b/apps/admin/src/components/ListEditor.vue new file mode 100644 index 0000000..3336759 --- /dev/null +++ b/apps/admin/src/components/ListEditor.vue @@ -0,0 +1,63 @@ + + + diff --git a/apps/admin/src/components/MediaPicker.vue b/apps/admin/src/components/MediaPicker.vue new file mode 100644 index 0000000..f447d30 --- /dev/null +++ b/apps/admin/src/components/MediaPicker.vue @@ -0,0 +1,115 @@ + + + diff --git a/apps/admin/src/components/PageHeader.vue b/apps/admin/src/components/PageHeader.vue new file mode 100644 index 0000000..1eaff89 --- /dev/null +++ b/apps/admin/src/components/PageHeader.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/apps/admin/src/components/SectionHeadFields.vue b/apps/admin/src/components/SectionHeadFields.vue new file mode 100644 index 0000000..3119e12 --- /dev/null +++ b/apps/admin/src/components/SectionHeadFields.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/admin/src/components/VuesaxIcon.vue b/apps/admin/src/components/VuesaxIcon.vue new file mode 100644 index 0000000..9217e5c --- /dev/null +++ b/apps/admin/src/components/VuesaxIcon.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/apps/admin/src/components/icons.ts b/apps/admin/src/components/icons.ts new file mode 100644 index 0000000..49f4aeb --- /dev/null +++ b/apps/admin/src/components/icons.ts @@ -0,0 +1,2 @@ +export { ICON_ALIASES, ICON_NAMES, RECOMMENDED_ICONS, resolveVuesaxIcon } from "@imen/shared"; +export type { IconName } from "@imen/shared"; diff --git a/apps/admin/src/components/vx.ts b/apps/admin/src/components/vx.ts new file mode 100644 index 0000000..48d6bde --- /dev/null +++ b/apps/admin/src/components/vx.ts @@ -0,0 +1,5 @@ +import { h, type VNode } from "vue"; +import VuesaxIcon from "./VuesaxIcon.vue"; + +/** Render a Vuesax linear icon (for Ant menu `icon` factories, etc.) */ +export const vx = (name: string, size = 18): VNode => h(VuesaxIcon, { name, size }); diff --git a/apps/admin/src/composables/useZodForm.ts b/apps/admin/src/composables/useZodForm.ts new file mode 100644 index 0000000..ed3c554 --- /dev/null +++ b/apps/admin/src/composables/useZodForm.ts @@ -0,0 +1,47 @@ +import { toIssues, type ValidationIssue } from "@imen/shared"; +import { message } from "ant-design-vue"; +import { type InjectionKey, provide, type Ref, ref } from "vue"; +import type { z } from "zod"; +import { errorBody, errorMessage } from "@/api/http"; + +/** Field errors keyed by dot path ("items.2.title"), read by */ +export const FORM_ERRORS: InjectionKey>> = Symbol("form-errors"); + +const toMap = (issues: ValidationIssue[]) => + Object.fromEntries(issues.map((i) => [i.path, i.message])); + +/** + * Form state validated with the same zod schema the API uses. + * The model is typed as the schema output (every field present) since forms start fully filled. + * `validate()` returns parsed data or null (and marks the invalid fields). + */ +export function useZodForm(schema: S, initial: z.output) { + const model = ref(structuredClone(initial)) as Ref>; + const errors = ref>({}); + provide(FORM_ERRORS, errors); + + function validate(): z.output | null { + const result = schema.safeParse(model.value); + if (result.success) { + errors.value = {}; + return result.data; + } + errors.value = toMap(toIssues(result.error)); + void message.error("لطفاً خطاهای فرم را برطرف کنید"); + return null; + } + + /** Shows an API error; validation issues from the server are attached to their fields */ + function handleError(e: unknown) { + const issues = errorBody(e).issues; + if (issues?.length) errors.value = toMap(issues); + void message.error(errorMessage(e)); + } + + function reset(value: z.output) { + model.value = structuredClone(value); + errors.value = {}; + } + + return { model, errors, validate, handleError, reset }; +} diff --git a/apps/admin/src/icons/vuesax-linear.json b/apps/admin/src/icons/vuesax-linear.json new file mode 100644 index 0000000..645a7e5 --- /dev/null +++ b/apps/admin/src/icons/vuesax-linear.json @@ -0,0 +1,1025 @@ +{ + "vuesax-linear:24-support": "\n\n\n\n\n", + "vuesax-linear:3d-cube-scan": "\n\n\n\n\n\n\n", + "vuesax-linear:3d-rotate": "\n\n\n\n\n\n\n", + "vuesax-linear:3d-square": "\n\n\n\n\n\n", + "vuesax-linear:3dcube": "\n\n\n\n\n", + "vuesax-linear:3full": "\n\n\n\n\n\n", + "vuesax-linear:3square": "\n\n\n\n\n", + "vuesax-linear:aave-(aave)": "\n\n\n\n\n", + "vuesax-linear:activity": "\n\n\n\n", + "vuesax-linear:add-circle": "\n\n\n\n\n", + "vuesax-linear:add-square": "\n\n\n\n\n", + "vuesax-linear:add": "\n\n\n\n", + "vuesax-linear:additem": "\n\n\n\n\n\n", + "vuesax-linear:airdrop": "\n\n\n\n\n\n", + "vuesax-linear:airplane-square": "\n\n\n\n", + "vuesax-linear:airplane": "\n\n\n", + "vuesax-linear:airpod": "\n\n\n\n\n\n", + "vuesax-linear:airpods": "\n\n\n\n\n\n\n\n", + "vuesax-linear:alarm": "\n\n\n\n\n\n\n", + "vuesax-linear:align-bottom": "\n\n\n\n\n", + "vuesax-linear:align-horizontally": "\n\n\n\n\n\n\n", + "vuesax-linear:align-left": "\n\n\n\n\n", + "vuesax-linear:align-right": "\n\n\n\n\n", + "vuesax-linear:align-vertically": "\n\n\n\n\n\n\n", + "vuesax-linear:android": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:ankr-(ankr)": "\n\n\n\n\n\n", + "vuesax-linear:apple": "\n\n\n", + "vuesax-linear:aquarius": "\n\n\n\n\n", + "vuesax-linear:archive-1": "\n\n\n\n\n", + "vuesax-linear:archive-add": "\n\n\n\n\n", + "vuesax-linear:archive-book": "\n\n\n\n\n\n", + "vuesax-linear:archive-minus": "\n\n\n\n", + "vuesax-linear:archive-slash": "\n\n\n\n\n", + "vuesax-linear:archive-tick": "\n\n\n\n", + "vuesax-linear:archive": "\n\n\n\n\n\n\n\n", + "vuesax-linear:arrange-circle-2": "\n\n\n\n\n\n\n", + "vuesax-linear:arrange-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:arrange-square-2": "\n\n\n\n\n\n\n", + "vuesax-linear:arrange-square": "\n\n\n\n\n\n\n", + "vuesax-linear:arrow-2": "\n\n\n\n\n\n", + "vuesax-linear:arrow-3": "\n\n\n\n\n\n", + "vuesax-linear:arrow-bottom": "\n\n\n", + "vuesax-linear:arrow-circle-down": "\n\n\n\n", + "vuesax-linear:arrow-circle-left": "\n\n\n\n", + "vuesax-linear:arrow-circle-right": "\n\n\n\n", + "vuesax-linear:arrow-down-1": "\n\n\n\n", + "vuesax-linear:arrow-down-2": "\n\n\n\n\n", + "vuesax-linear:arrow-down": "\n\n\n", + "vuesax-linear:arrow-left-1": "\n\n\n", + "vuesax-linear:arrow-left-2": "\n\n\n\n\n", + "vuesax-linear:arrow-left-3": "\n\n\n", + "vuesax-linear:arrow-left": "\n\n\n\n", + "vuesax-linear:arrow-right-1": "\n\n\n", + "vuesax-linear:arrow-right-2": "\n\n\n\n\n", + "vuesax-linear:arrow-right-3": "\n\n\n", + "vuesax-linear:arrow-right": "\n\n\n\n", + "vuesax-linear:arrow-square-down": "\n\n\n\n", + "vuesax-linear:arrow-square-left": "\n\n\n\n", + "vuesax-linear:arrow-square-right": "\n\n\n\n", + "vuesax-linear:arrow-square-up": "\n\n\n\n", + "vuesax-linear:arrow-square": "\n\n\n\n\n\n\n", + "vuesax-linear:arrow-swap-horizontal": "\n\n\n\n\n\n", + "vuesax-linear:arrow-up-1": "\n\n\n", + "vuesax-linear:arrow-up-2": "\n\n\n\n\n", + "vuesax-linear:arrow-up-3": "\n\n\n", + "vuesax-linear:arrow-up": "\n\n\n\n", + "vuesax-linear:arrow": "\n\n\n\n\n\n\n\n", + "vuesax-linear:attach-circle": "\n\n\n\n", + "vuesax-linear:attach-square": "\n\n\n\n", + "vuesax-linear:audio-square": "\n\n\n\n\n\n", + "vuesax-linear:augur-(rep)": "\n\n\n\n\n", + "vuesax-linear:autobrightness": "\n\n\n\n\n", + "vuesax-linear:autonio-(niox)": "\n\n\n\n\n\n", + "vuesax-linear:avalanche-(avax)": "\n\n\n\n\n", + "vuesax-linear:award": "\n\n\n\n\n", + "vuesax-linear:back-square": "\n\n\n\n\n", + "vuesax-linear:backward-10-seconds": "\n\n\n\n\n\n", + "vuesax-linear:backward-15-seconds": "\n\n\n\n\n\n", + "vuesax-linear:backward-5-seconds": "\n\n\n\n\n", + "vuesax-linear:backward-item-1": "\n\n\n\n\n", + "vuesax-linear:backward-item": "\n\n\n\n\n", + "vuesax-linear:backward": "\n\n\n\n", + "vuesax-linear:bag-2": "\n\n\n\n\n\n", + "vuesax-linear:bag-cross-1": "\n\n\n\n\n\n\n", + "vuesax-linear:bag-cross": "\n\n\n\n\n\n\n\n", + "vuesax-linear:bag-happy": "\n\n\n\n\n\n\n", + "vuesax-linear:bag-tick-2": "\n\n\n\n\n\n", + "vuesax-linear:bag-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:bag-timer": "\n\n\n\n\n\n", + "vuesax-linear:bag": "\n\n\n\n\n\n\n\n", + "vuesax-linear:bank": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:barcode": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:battery-3full": "\n\n\n\n\n\n", + "vuesax-linear:battery-charging": "\n\n\n\n\n\n", + "vuesax-linear:battery-disable": "\n\n\n\n\n\n", + "vuesax-linear:battery-empty-1": "\n\n\n\n\n", + "vuesax-linear:battery-empty": "\n\n\n\n", + "vuesax-linear:battery-full": "\n\n\n\n\n\n\n", + "vuesax-linear:be": "\n\n\n\n\n", + "vuesax-linear:bezier-1": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bezier": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bill": "\n\n\n\n\n\n", + "vuesax-linear:binance-coin-(bnb)": "\n\n\n\n\n\n\n", + "vuesax-linear:binance-usd-(busd)": "\n\n\n\n\n\n", + "vuesax-linear:bitcoin-(btc)": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bitcoin-card": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bitcoin-convert": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bitcoin-refresh": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:blend-2": "\n\n\n\n\n\n\n", + "vuesax-linear:blend": "\n\n\n\n", + "vuesax-linear:blogger": "\n\n\n\n\n\n", + "vuesax-linear:bluetooth-2": "\n\n\n\n\n", + "vuesax-linear:bluetooth-circle": "\n\n\n\n", + "vuesax-linear:bluetooth-rectangle": "\n\n\n\n", + "vuesax-linear:bluetooth": "\n\n\n", + "vuesax-linear:blur-1": "\n\n\n\n\n\n\n", + "vuesax-linear:blur": "\n\n\n\n\n\n\n", + "vuesax-linear:book-1": "\n\n\n\n\n\n", + "vuesax-linear:book-saved": "\n\n\n\n\n", + "vuesax-linear:book-square": "\n\n\n\n\n", + "vuesax-linear:book": "\n\n\n\n\n\n", + "vuesax-linear:bookmark-2": "\n\n\n\n", + "vuesax-linear:bookmark": "\n\n\n\n\n\n", + "vuesax-linear:bootsrap": "\n\n\n\n", + "vuesax-linear:box-1": "\n\n\n\n\n", + "vuesax-linear:box-2": "\n\n\n", + "vuesax-linear:box-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:box-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:box-search": "\n\n\n\n\n\n\n", + "vuesax-linear:box-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:box-time": "\n\n\n\n\n\n\n", + "vuesax-linear:box": "\n\n\n\n\n\n", + "vuesax-linear:briefcase": "\n\n\n\n\n\n\n", + "vuesax-linear:brifecase-cross": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:brifecase-tick": "\n\n\n\n\n\n\n\n", + "vuesax-linear:brifecase-timer": "\n\n\n\n\n\n\n\n", + "vuesax-linear:broom": "\n\n\n\n\n\n\n\n", + "vuesax-linear:brush-1": "\n\n\n\n\n\n", + "vuesax-linear:brush-2": "\n\n\n\n\n\n", + "vuesax-linear:brush-3": "\n\n\n\n\n\n\n", + "vuesax-linear:brush": "\n\n\n\n\n", + "vuesax-linear:bubble": "\n\n\n\n\n", + "vuesax-linear:bucket-circle-1": "\n\n\n\n\n\n\n", + "vuesax-linear:bucket-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:bucket-square-1": "\n\n\n\n\n\n\n", + "vuesax-linear:bucket-square": "\n\n\n\n\n\n\n", + "vuesax-linear:building-3": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:building-4": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:building": "\n\n\n\n\n\n\n\n", + "vuesax-linear:buildings-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:buildings": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:buliding": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bus": "\n\n\n\n\n\n\n", + "vuesax-linear:buy-crypto": "\n\n\n\n\n", + "vuesax-linear:cake": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calculator": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-1": "\n\n\n\n\n\n\n", + "vuesax-linear:calendar-2": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-add": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:calendar-edit": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-remove": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-search": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-tick": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:call-add": "\n\n\n\n\n", + "vuesax-linear:call-calling": "\n\n\n\n\n", + "vuesax-linear:call-incoming": "\n\n\n\n", + "vuesax-linear:call-minus": "\n\n\n\n", + "vuesax-linear:call-outgoing": "\n\n\n\n", + "vuesax-linear:call-received": "\n\n\n\n", + "vuesax-linear:call-remove": "\n\n\n\n\n", + "vuesax-linear:call-slash": "\n\n\n\n\n", + "vuesax-linear:call": "\n\n\n", + "vuesax-linear:camera-slash": "\n\n\n\n\n\n\n", + "vuesax-linear:camera": "\n\n\n\n\n", + "vuesax-linear:candle-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:candle": "\n\n\n\n\n\n\n\n", + "vuesax-linear:car": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:card-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-coin": "\n\n\n\n\n\n\n", + "vuesax-linear:card-edit": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-pos": "\n\n\n\n\n\n\n", + "vuesax-linear:card-receive": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-remove-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-send": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-slash": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-tick-1": "\n\n\n\n\n\n\n", + "vuesax-linear:card-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:card": "\n\n\n\n\n\n", + "vuesax-linear:cardano-(ada)": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cards": "\n\n\n\n\n\n\n", + "vuesax-linear:category-2": "\n\n\n\n\n\n", + "vuesax-linear:category": "\n\n\n\n\n\n", + "vuesax-linear:cd": "\n\n\n\n", + "vuesax-linear:celo-(celo)": "\n\n\n\n", + "vuesax-linear:celsius-(cel)-": "\n\n\n\n\n", + "vuesax-linear:chainlink-(link)": "\n\n\n", + "vuesax-linear:chart-1": "\n\n\n\n\n\n", + "vuesax-linear:chart-2": "\n\n\n\n\n", + "vuesax-linear:chart-21": "\n\n\n\n\n\n", + "vuesax-linear:chart-3": "\n\n\n\n\n", + "vuesax-linear:chart-square": "\n\n\n\n\n\n", + "vuesax-linear:chart-success": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:chart": "\n\n\n\n\n\n", + "vuesax-linear:check": "\n\n\n\n\n\n", + "vuesax-linear:chrome": "\n\n\n\n\n\n\n", + "vuesax-linear:civic-(cvc)": "\n\n\n\n", + "vuesax-linear:clipboard-close": "\n\n\n\n\n\n", + "vuesax-linear:clipboard-export": "\n\n\n\n\n\n\n", + "vuesax-linear:clipboard-import": "\n\n\n\n\n\n\n", + "vuesax-linear:clipboard-text": "\n\n\n\n\n\n", + "vuesax-linear:clipboard-tick": "\n\n\n\n\n", + "vuesax-linear:clipboard": "\n\n\n\n\n", + "vuesax-linear:clock-1": "\n\n\n\n", + "vuesax-linear:clock": "\n\n\n\n\n\n", + "vuesax-linear:close-circle": "\n\n\n\n\n", + "vuesax-linear:close-square": "\n\n\n\n\n", + "vuesax-linear:cloud-add": "\n\n\n\n\n\n", + "vuesax-linear:cloud-change": "\n\n\n\n\n", + "vuesax-linear:cloud-connection": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-cross": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-drizzle": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cloud-fog": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-lightning": "\n\n\n\n\n\n", + "vuesax-linear:cloud-minus": "\n\n\n\n\n\n", + "vuesax-linear:cloud-notif": "\n\n\n\n\n", + "vuesax-linear:cloud-plus": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-snow": "\n\n\n\n\n\n\n\n", + "vuesax-linear:cloud-sunny": "\n\n\n\n\n\n", + "vuesax-linear:cloud": "\n\n\n\n", + "vuesax-linear:code-1": "\n\n\n\n\n", + "vuesax-linear:code-circle": "\n\n\n\n\n\n", + "vuesax-linear:code": "\n\n\n\n\n\n", + "vuesax-linear:coffee": "\n\n\n\n\n\n\n\n", + "vuesax-linear:coin-1": "\n\n\n\n\n\n\n", + "vuesax-linear:coin": "\n\n\n\n\n", + "vuesax-linear:color-swatch": "\n\n\n\n\n\n\n", + "vuesax-linear:colorfilter": "\n\n\n\n\n", + "vuesax-linear:colors-square-1": "\n\n\n\n\n\n", + "vuesax-linear:colors-square": "\n\n\n\n\n\n", + "vuesax-linear:command-square": "\n\n\n\n\n\n\n\n", + "vuesax-linear:command": "\n\n\n\n\n\n\n", + "vuesax-linear:component-1": "\n\n\n", + "vuesax-linear:component": "\n\n\n", + "vuesax-linear:computing": "\n\n\n\n\n\n\n", + "vuesax-linear:convert-3d-cube": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:convert": "\n\n\n\n\n", + "vuesax-linear:convertshape-2": "\n\n\n\n\n\n", + "vuesax-linear:convertshape": "\n\n\n\n\n\n", + "vuesax-linear:copy-success": "\n\n\n\n\n", + "vuesax-linear:copy": "\n\n\n\n", + "vuesax-linear:copyright": "\n\n\n\n", + "vuesax-linear:courthouse": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cpu-charge": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cpu-setting": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cpu": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:creative-commons": "\n\n\n\n\n", + "vuesax-linear:crop": "\n\n\n\n\n\n\n", + "vuesax-linear:crown-1": "\n\n\n\n\n", + "vuesax-linear:crown": "\n\n\n", + "vuesax-linear:cup": "\n\n\n\n\n\n\n\n", + "vuesax-linear:dai-(dai)": "\n\n\n\n\n\n", + "vuesax-linear:danger": "\n\n\n\n\n", + "vuesax-linear:dash-(dash)": "\n\n\n\n", + "vuesax-linear:data-2": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:data": "\n\n\n\n\n\n\n\n", + "vuesax-linear:decred-(dcr)": "\n\n\n\n", + "vuesax-linear:dent-(dent)": "\n\n\n\n\n\n", + "vuesax-linear:designtools": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:device-message": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:devices-1": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:devices": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:diagram": "\n\n\n\n", + "vuesax-linear:diamonds": "\n\n\n\n", + "vuesax-linear:direct-down": "\n\n\n", + "vuesax-linear:direct-inbox": "\n\n\n\n\n\n", + "vuesax-linear:direct-left": "\n\n\n", + "vuesax-linear:direct-normal": "\n\n\n\n", + "vuesax-linear:direct-notification": "\n\n\n\n\n", + "vuesax-linear:direct-right": "\n\n\n", + "vuesax-linear:direct-send": "\n\n\n\n\n\n", + "vuesax-linear:direct-up": "\n\n\n", + "vuesax-linear:direct": "\n\n\n\n\n\n", + "vuesax-linear:directbox-default": "\n\n\n\n", + "vuesax-linear:directbox-notif": "\n\n\n\n\n\n", + "vuesax-linear:directbox-receive": "\n\n\n\n\n\n\n", + "vuesax-linear:directbox-send": "\n\n\n\n\n\n\n", + "vuesax-linear:discount-circle": "\n\n\n\n\n\n", + "vuesax-linear:discount-shape": "\n\n\n\n\n\n", + "vuesax-linear:discover-1": "\n\n\n\n", + "vuesax-linear:discover": "\n\n\n\n", + "vuesax-linear:dislike": "\n\n\n\n", + "vuesax-linear:document-1": "\n\n\n\n", + "vuesax-linear:document-cloud": "\n\n\n\n\n\n", + "vuesax-linear:document-code-2": "\n\n\n\n\n\n", + "vuesax-linear:document-code": "\n\n\n\n\n\n", + "vuesax-linear:document-copy": "\n\n\n\n\n\n\n\n", + "vuesax-linear:document-download": "\n\n\n\n\n\n", + "vuesax-linear:document-favorite": "\n\n\n\n\n", + "vuesax-linear:document-filter": "\n\n\n\n\n\n", + "vuesax-linear:document-forward": "\n\n\n\n\n", + "vuesax-linear:document-like": "\n\n\n\n\n", + "vuesax-linear:document-normal": "\n\n\n\n", + "vuesax-linear:document-previous": "\n\n\n\n\n\n", + "vuesax-linear:document-sketch": "\n\n\n\n\n", + "vuesax-linear:document-text-1": "\n\n\n\n\n\n", + "vuesax-linear:document-text": "\n\n\n\n\n\n", + "vuesax-linear:document-upload": "\n\n\n\n\n\n", + "vuesax-linear:document": "\n\n\n\n\n", + "vuesax-linear:dollar-circle": "\n\n\n\n\n", + "vuesax-linear:dollar-square": "\n\n\n\n\n", + "vuesax-linear:dribbble": "\n\n\n\n\n\n", + "vuesax-linear:driver-2": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:driver-refresh": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:driver": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:driving": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:drop": "\n\n\n", + "vuesax-linear:dropbox": "\n\n\n\n\n\n\n", + "vuesax-linear:edit-2": "\n\n\n\n\n", + "vuesax-linear:edit": "\n\n\n\n\n", + "vuesax-linear:educare-(ekt)": "\n\n\n\n\n\n", + "vuesax-linear:electricity": "\n\n\n\n\n\n", + "vuesax-linear:element-1": "\n\n\n\n\n", + "vuesax-linear:element-2": "\n\n\n\n\n", + "vuesax-linear:element-3": "\n\n\n\n\n\n", + "vuesax-linear:element-4": "\n\n\n\n\n\n", + "vuesax-linear:element-equal": "\n\n\n\n\n\n\n", + "vuesax-linear:element-plus": "\n\n\n\n\n\n\n", + "vuesax-linear:emercoin-(emc)": "\n\n\n\n\n", + "vuesax-linear:emoji-happy": "\n\n\n\n\n\n", + "vuesax-linear:emoji-normal": "\n\n\n\n\n\n", + "vuesax-linear:emoji-sad": "\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-add": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-change": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-tick": "\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-time": "\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet": "\n\n\n\n\n\n", + "vuesax-linear:enjin-coin-(enj)": "\n\n\n\n\n", + "vuesax-linear:eos-(eos)": "\n\n\n\n", + "vuesax-linear:eraser-1": "\n\n\n\n\n\n\n", + "vuesax-linear:eraser-2": "\n\n\n\n\n\n\n", + "vuesax-linear:eraser": "\n\n\n\n\n", + "vuesax-linear:ethereum-(eth)": "\n\n\n\n\n\n", + "vuesax-linear:ethereum-classic-(etc)": "\n\n\n\n\n", + "vuesax-linear:export-1": "\n\n\n\n\n", + "vuesax-linear:export-2": "\n\n\n\n\n", + "vuesax-linear:export-3": "\n\n\n\n\n", + "vuesax-linear:export": "\n\n\n\n\n", + "vuesax-linear:external-drive": "\n\n\n\n\n\n\n\n", + "vuesax-linear:eye-slash": "\n\n\n\n\n\n\n\n", + "vuesax-linear:eye": "\n\n\n\n", + "vuesax-linear:facebook": "\n\n\n\n", + "vuesax-linear:fatrows": "\n\n\n\n", + "vuesax-linear:favorite-chart": "\n\n\n\n\n", + "vuesax-linear:figma-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:figma": "\n\n\n\n\n\n\n", + "vuesax-linear:filter-add": "\n\n\n\n\n\n", + "vuesax-linear:filter-edit": "\n\n\n\n\n", + "vuesax-linear:filter-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:filter-search": "\n\n\n\n\n", + "vuesax-linear:filter-square": "\n\n\n\n", + "vuesax-linear:filter-tick": "\n\n\n\n\n", + "vuesax-linear:filter": "\n\n\n\n", + "vuesax-linear:finger-cricle": "\n\n\n\n\n", + "vuesax-linear:finger-scan": "\n\n\n\n\n\n\n\n", + "vuesax-linear:firstline": "\n\n\n\n\n\n\n", + "vuesax-linear:flag-2": "\n\n\n\n", + "vuesax-linear:flag": "\n\n\n\n", + "vuesax-linear:flash-1": "\n\n\n", + "vuesax-linear:flash-circle-1": "\n\n\n\n", + "vuesax-linear:flash-circle-2": "\n\n\n\n", + "vuesax-linear:flash-circle": "\n\n\n\n", + "vuesax-linear:flash-slash": "\n\n\n\n\n", + "vuesax-linear:flash": "\n\n\n\n\n\n", + "vuesax-linear:folder-2": "\n\n\n\n", + "vuesax-linear:folder-add": "\n\n\n\n\n", + "vuesax-linear:folder-cloud": "\n\n\n\n", + "vuesax-linear:folder-connection": "\n\n\n\n\n\n\n", + "vuesax-linear:folder-cross": "\n\n\n\n\n", + "vuesax-linear:folder-favorite": "\n\n\n\n", + "vuesax-linear:folder-minus": "\n\n\n\n", + "vuesax-linear:folder-open": "\n\n\n\n\n", + "vuesax-linear:folder": "\n\n\n", + "vuesax-linear:format-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:format-square": "\n\n\n\n\n\n\n", + "vuesax-linear:forward-10-seconds": "\n\n\n\n\n\n", + "vuesax-linear:forward-15-seconds": "\n\n\n\n\n\n", + "vuesax-linear:forward-5-seconds": "\n\n\n\n\n", + "vuesax-linear:forward-item-1": "\n\n\n\n\n", + "vuesax-linear:forward-item": "\n\n\n\n\n", + "vuesax-linear:forward-square": "\n\n\n\n\n", + "vuesax-linear:forward": "\n\n\n\n", + "vuesax-linear:frame-1": "\n\n\n\n\n\n", + "vuesax-linear:frame-2": "\n\n\n\n\n", + "vuesax-linear:frame-3": "\n\n\n\n\n\n\n\n", + "vuesax-linear:frame-4": "\n\n\n\n\n", + "vuesax-linear:frame-5": "\n\n\n\n\n", + "vuesax-linear:frame": "\n\n\n\n", + "vuesax-linear:framer": "\n\n\n\n", + "vuesax-linear:ftx-token-(ftt)": "\n\n\n\n\n\n", + "vuesax-linear:gallery-add": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-edit": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-export": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-favorite": "\n\n\n\n\n\n", + "vuesax-linear:gallery-import": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-slash": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-tick": "\n\n\n\n\n\n", + "vuesax-linear:gallery": "\n\n\n\n\n", + "vuesax-linear:game": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:gameboy": "\n\n\n\n\n\n\n\n", + "vuesax-linear:gas-station": "\n\n\n\n\n\n\n", + "vuesax-linear:gemini-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:gemini": "\n\n\n\n\n\n", + "vuesax-linear:ghost": "\n\n\n\n\n", + "vuesax-linear:gift": "\n\n\n\n\n\n\n", + "vuesax-linear:glass-1": "\n\n\n\n\n\n\n", + "vuesax-linear:glass": "\n\n\n\n", + "vuesax-linear:global-edit": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:global-refresh": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:global-search": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:global": "\n\n\n\n\n\n\n", + "vuesax-linear:google-1": "\n\n\n", + "vuesax-linear:google-play": "\n\n\n\n\n\n", + "vuesax-linear:google": "\n\n\n\n\n\n", + "vuesax-linear:gps-slash": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:gps": "\n\n\n\n\n\n\n\n", + "vuesax-linear:grammerly": "\n\n\n\n", + "vuesax-linear:graph": "\n\n\n\n", + "vuesax-linear:grid-1": "\n\n\n\n\n\n\n", + "vuesax-linear:grid-2": "\n\n\n\n\n", + "vuesax-linear:grid-3": "\n\n\n\n\n\n", + "vuesax-linear:grid-4": "\n\n\n\n", + "vuesax-linear:grid-5": "\n\n\n\n\n", + "vuesax-linear:grid-6": "\n\n\n\n\n\n", + "vuesax-linear:grid-7": "\n\n\n\n\n", + "vuesax-linear:grid-8": "\n\n\n\n\n\n\n\n", + "vuesax-linear:grid-9": "\n\n\n\n", + "vuesax-linear:grid-edit": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:grid-eraser": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:grid-lock": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:group-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:group-10": "\n\n\n\n", + "vuesax-linear:group-11": "\n\n\n\n\n\n\n", + "vuesax-linear:group-2": "\n\n\n\n\n\n\n", + "vuesax-linear:group-3": "\n\n\n\n", + "vuesax-linear:group-4": "\n\n\n\n\n\n\n", + "vuesax-linear:group-5": "\n\n\n\n", + "vuesax-linear:group-6": "\n\n\n\n\n\n\n", + "vuesax-linear:group-7": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:group-8": "\n\n\n\n", + "vuesax-linear:group-9": "\n\n\n\n\n", + "vuesax-linear:group": "\n\n\n\n\n\n", + "vuesax-linear:happyemoji": "\n\n\n\n", + "vuesax-linear:harmony-(one)": "\n\n\n\n\n\n\n", + "vuesax-linear:hashtag-1": "\n\n\n\n\n\n", + "vuesax-linear:hashtag-down": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:hashtag-up": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:hashtag": "\n\n\n\n\n\n", + "vuesax-linear:headphone": "\n\n\n", + "vuesax-linear:headphones": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:health": "\n\n\n\n", + "vuesax-linear:heart-add": "\n\n\n\n\n\n", + "vuesax-linear:heart-circle": "\n\n\n\n", + "vuesax-linear:heart-edit": "\n\n\n\n\n", + "vuesax-linear:heart-remove": "\n\n\n\n\n\n", + "vuesax-linear:heart-search": "\n\n\n\n\n", + "vuesax-linear:heart-slash": "\n\n\n\n\n", + "vuesax-linear:heart-tick": "\n\n\n\n\n", + "vuesax-linear:heart": "\n\n\n", + "vuesax-linear:hedera-hashgraph-(hbar)": "\n\n\n\n\n\n\n", + "vuesax-linear:hex-(hex)": "\n\n\n\n\n", + "vuesax-linear:hierarchy-2": "\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy-3": "\n\n\n\n\n\n", + "vuesax-linear:hierarchy-square-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy-square-3": "\n\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy-square": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy": "\n\n\n\n\n\n\n", + "vuesax-linear:home-2": "\n\n\n\n", + "vuesax-linear:home-hashtag": "\n\n\n\n\n\n", + "vuesax-linear:home-trend-down": "\n\n\n\n\n", + "vuesax-linear:home-trend-up": "\n\n\n\n\n", + "vuesax-linear:home-wifi": "\n\n\n\n\n\n", + "vuesax-linear:home": "\n\n\n\n", + "vuesax-linear:hospital": "\n\n\n\n\n\n\n", + "vuesax-linear:house-2": "\n\n\n\n\n\n\n", + "vuesax-linear:house": "\n\n\n\n\n\n\n\n", + "vuesax-linear:html-3": "\n\n\n\n\n", + "vuesax-linear:html-5": "\n\n\n\n", + "vuesax-linear:huobi-token-(ht)": "\n\n\n\n", + "vuesax-linear:icon-(icx)": "\n\n\n\n\n\n", + "vuesax-linear:illustrator": "\n\n\n\n\n\n\n", + "vuesax-linear:image": "\n\n\n\n", + "vuesax-linear:import-1": "\n\n\n\n\n", + "vuesax-linear:import-2": "\n\n\n\n\n", + "vuesax-linear:import": "\n\n\n\n\n", + "vuesax-linear:info-circle": "\n\n\n\n\n", + "vuesax-linear:information": "\n\n\n\n\n", + "vuesax-linear:instagram": "\n\n\n\n\n", + "vuesax-linear:iost-(iost)": "\n\n\n\n\n\n", + "vuesax-linear:java-script": "\n\n\n\n\n", + "vuesax-linear:js": "\n\n\n\n", + "vuesax-linear:judge": "\n\n\n\n\n\n", + "vuesax-linear:kanban": "\n\n\n\n", + "vuesax-linear:key-square": "\n\n\n\n\n\n", + "vuesax-linear:key": "\n\n\n\n\n", + "vuesax-linear:keyboard-open": "\n\n\n\n\n\n\n\n", + "vuesax-linear:keyboard": "\n\n\n\n\n\n\n", + "vuesax-linear:kyber-network-(knc)": "\n\n\n\n\n", + "vuesax-linear:lamp-1": "\n\n\n\n\n", + "vuesax-linear:lamp-charge": "\n\n\n\n\n", + "vuesax-linear:lamp-on": "\n\n\n\n", + "vuesax-linear:lamp-slash": "\n\n\n\n\n\n", + "vuesax-linear:lamp": "\n\n\n\n\n", + "vuesax-linear:language-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:language-square": "\n\n\n\n\n\n\n", + "vuesax-linear:layer": "\n\n\n\n\n", + "vuesax-linear:level": "\n\n\n\n\n", + "vuesax-linear:lifebuoy": "\n\n\n\n\n\n\n\n", + "vuesax-linear:like-1": "\n\n\n\n", + "vuesax-linear:like-dislike": "\n\n\n\n\n\n", + "vuesax-linear:like-shapes": "\n\n\n\n\n", + "vuesax-linear:like-tag": "\n\n\n\n\n", + "vuesax-linear:like": "\n\n\n\n", + "vuesax-linear:link-1": "\n\n\n\n\n", + "vuesax-linear:link-2": "\n\n\n\n", + "vuesax-linear:link-21": "\n\n\n\n", + "vuesax-linear:link-circle": "\n\n\n\n\n", + "vuesax-linear:link-square": "\n\n\n\n\n", + "vuesax-linear:link": "\n\n\n\n", + "vuesax-linear:litecoin(ltc)": "\n\n\n\n\n", + "vuesax-linear:location-add": "\n\n\n\n\n", + "vuesax-linear:location-cross": "\n\n\n\n\n", + "vuesax-linear:location-minus": "\n\n\n\n", + "vuesax-linear:location-slash": "\n\n\n\n\n\n", + "vuesax-linear:location-tick": "\n\n\n\n", + "vuesax-linear:location": "\n\n\n\n", + "vuesax-linear:lock-1": "\n\n\n\n\n", + "vuesax-linear:lock-circle": "\n\n\n\n\n\n", + "vuesax-linear:lock-slash": "\n\n\n\n\n\n", + "vuesax-linear:lock": "\n\n\n\n\n\n\n", + "vuesax-linear:login-1": "\n\n\n\n\n", + "vuesax-linear:login": "\n\n\n\n\n", + "vuesax-linear:logout-1": "\n\n\n\n\n", + "vuesax-linear:logout": "\n\n\n\n\n", + "vuesax-linear:lovely": "\n\n\n\n", + "vuesax-linear:magic-star": "\n\n\n\n", + "vuesax-linear:magicpen": "\n\n\n\n\n\n\n", + "vuesax-linear:main-component-1": "\n\n\n\n\n", + "vuesax-linear:main-component": "\n\n\n\n\n", + "vuesax-linear:maker-(mkr)": "\n\n\n\n\n", + "vuesax-linear:man": "\n\n\n\n\n", + "vuesax-linear:map-1": "\n\n\n\n\n", + "vuesax-linear:map": "\n\n\n\n\n\n\n", + "vuesax-linear:mask-1": "\n\n\n\n\n\n\n", + "vuesax-linear:mask-2": "\n\n\n\n\n\n\n", + "vuesax-linear:mask-3": "\n\n\n\n", + "vuesax-linear:mask": "\n\n\n\n\n\n\n", + "vuesax-linear:math": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:maximize-1": "\n\n\n\n\n\n", + "vuesax-linear:maximize-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:maximize-21": "\n\n\n\n\n\n", + "vuesax-linear:maximize-3": "\n\n\n\n\n\n", + "vuesax-linear:maximize-4": "\n\n\n\n\n\n", + "vuesax-linear:maximize-circle": "\n\n\n\n\n\n\n\n", + "vuesax-linear:maximize": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:medal-star": "\n\n\n\n\n", + "vuesax-linear:medal": "\n\n\n\n", + "vuesax-linear:menu-1": "\n\n\n\n\n\n", + "vuesax-linear:menu-board": "\n\n\n\n\n\n\n\n", + "vuesax-linear:menu": "\n\n\n\n\n", + "vuesax-linear:message-2": "\n\n\n\n", + "vuesax-linear:message-add-1": "\n\n\n\n\n", + "vuesax-linear:message-add": "\n\n\n\n\n\n\n", + "vuesax-linear:message-circle": "\n\n\n\n", + "vuesax-linear:message-edit": "\n\n\n\n\n", + "vuesax-linear:message-favorite": "\n\n\n\n\n\n\n", + "vuesax-linear:message-minus": "\n\n\n\n", + "vuesax-linear:message-notif": "\n\n\n\n\n\n\n", + "vuesax-linear:message-programming": "\n\n\n\n\n\n", + "vuesax-linear:message-question": "\n\n\n\n\n", + "vuesax-linear:message-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:message-search": "\n\n\n\n\n\n\n\n", + "vuesax-linear:message-square": "\n\n\n\n", + "vuesax-linear:message-text-1": "\n\n\n\n\n", + "vuesax-linear:message-text": "\n\n\n\n\n", + "vuesax-linear:message-tick": "\n\n\n\n\n\n", + "vuesax-linear:message-time": "\n\n\n\n\n\n", + "vuesax-linear:message": "\n\n\n\n\n\n", + "vuesax-linear:messages-1": "\n\n\n\n\n\n\n", + "vuesax-linear:messages-2": "\n\n\n\n", + "vuesax-linear:messages-3": "\n\n\n\n", + "vuesax-linear:messages": "\n\n\n\n\n", + "vuesax-linear:messenger": "\n\n\n\n", + "vuesax-linear:microphone-2": "\n\n\n\n\n\n\n", + "vuesax-linear:microphone-slash-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:microphone-slash": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:microphone": "\n\n\n\n\n\n", + "vuesax-linear:microscope": "\n\n\n\n\n\n\n", + "vuesax-linear:milk": "\n\n\n\n\n\n\n", + "vuesax-linear:mini-music-sqaure": "\n\n\n\n\n\n\n", + "vuesax-linear:minus-cirlce": "\n\n\n\n", + "vuesax-linear:minus-square": "\n\n\n\n", + "vuesax-linear:minus": "\n\n\n", + "vuesax-linear:mirror": "\n\n\n\n", + "vuesax-linear:mirroring-screen": "\n\n\n\n\n\n", + "vuesax-linear:mobile-programming": "\n\n\n\n\n\n", + "vuesax-linear:mobile": "\n\n\n\n\n", + "vuesax-linear:monero-(xmr)": "\n\n\n\n", + "vuesax-linear:money-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-3": "\n\n\n\n\n\n", + "vuesax-linear:money-4": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-change": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:money-forbidden": "\n\n\n\n\n\n\n", + "vuesax-linear:money-receive": "\n\n\n\n\n\n\n", + "vuesax-linear:money-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-send": "\n\n\n\n\n\n\n", + "vuesax-linear:money-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:money-time": "\n\n\n\n\n\n\n", + "vuesax-linear:money": "\n\n\n\n\n\n", + "vuesax-linear:moneys": "\n\n\n\n\n\n\n", + "vuesax-linear:monitor-mobbile": "\n\n\n\n\n\n\n\n", + "vuesax-linear:monitor-recorder": "\n\n\n\n\n\n\n\n", + "vuesax-linear:monitor": "\n\n\n\n\n\n", + "vuesax-linear:moon": "\n\n\n", + "vuesax-linear:more-2": "\n\n\n\n\n", + "vuesax-linear:more-circle": "\n\n\n\n\n\n", + "vuesax-linear:more-square": "\n\n\n\n\n\n", + "vuesax-linear:more": "\n\n\n\n\n", + "vuesax-linear:mouse-1": "\n\n\n\n", + "vuesax-linear:mouse-circle": "\n\n\n\n", + "vuesax-linear:mouse-square": "\n\n\n\n", + "vuesax-linear:mouse": "\n\n\n\n\n", + "vuesax-linear:music-circle": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-dashboard": "\n\n\n\n\n\n\n\n", + "vuesax-linear:music-filter": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-library-2": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-play": "\n\n\n\n", + "vuesax-linear:music-playlist": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square-add": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square-remove": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square-search": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square": "\n\n\n\n\n\n\n", + "vuesax-linear:music": "\n\n\n\n\n\n", + "vuesax-linear:musicnote": "\n\n\n\n\n", + "vuesax-linear:nebulas-(nas)": "\n\n\n\n\n\n", + "vuesax-linear:nem-(xem)": "\n\n\n\n\n", + "vuesax-linear:nexo-(nexo)": "\n\n\n\n", + "vuesax-linear:next": "\n\n\n\n", + "vuesax-linear:note-1": "\n\n\n\n\n\n\n", + "vuesax-linear:note-2": "\n\n\n\n\n\n", + "vuesax-linear:note-21": "\n\n\n\n", + "vuesax-linear:note-add": "\n\n\n\n\n\n\n", + "vuesax-linear:note-favorite": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:note-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:note-square": "\n\n\n\n\n\n", + "vuesax-linear:note-text": "\n\n\n\n\n\n\n", + "vuesax-linear:note": "\n\n\n\n\n\n", + "vuesax-linear:notification-1": "\n\n\n\n", + "vuesax-linear:notification-bing": "\n\n\n\n\n", + "vuesax-linear:notification-circle": "\n\n\n\n", + "vuesax-linear:notification-favorite": "\n\n\n\n\n", + "vuesax-linear:notification-status": "\n\n\n\n\n\n", + "vuesax-linear:notification": "\n\n\n\n\n", + "vuesax-linear:ocean-protocol-(ocean)": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:okb-(okb)": "\n\n\n\n\n\n", + "vuesax-linear:omega-circle-1": "\n\n\n\n", + "vuesax-linear:omega-circle": "\n\n\n\n", + "vuesax-linear:omega-square-1": "\n\n\n\n", + "vuesax-linear:omega-square": "\n\n\n\n", + "vuesax-linear:ontology-(ont)": "\n\n\n\n", + "vuesax-linear:paintbucket": "\n\n\n\n\n", + "vuesax-linear:paperclip-2": "\n\n\n", + "vuesax-linear:paperclip": "\n\n\n", + "vuesax-linear:password-check": "\n\n\n\n\n\n\n", + "vuesax-linear:path-2": "\n\n\n\n\n", + "vuesax-linear:path-square": "\n\n\n\n\n\n", + "vuesax-linear:path": "\n\n\n\n\n", + "vuesax-linear:pause-circle": "\n\n\n\n\n", + "vuesax-linear:pause": "\n\n\n\n", + "vuesax-linear:paypal": "\n\n\n\n", + "vuesax-linear:pen-add-1": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-add": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-close-1": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-close": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-remove-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool-1": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool-2-1": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool-2": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:people": "\n\n\n\n\n\n\n\n", + "vuesax-linear:percentage-square": "\n\n\n\n\n\n", + "vuesax-linear:personalcard": "\n\n\n\n\n\n\n\n", + "vuesax-linear:pet": "\n\n\n\n\n\n\n", + "vuesax-linear:pharagraphspacing": "\n\n\n\n\n\n\n", + "vuesax-linear:photoshop": "\n\n\n\n\n", + "vuesax-linear:picture-frame": "\n\n\n\n\n", + "vuesax-linear:play-add": "\n\n\n\n\n\n\n", + "vuesax-linear:play-circle": "\n\n\n\n", + "vuesax-linear:play-cricle": "\n\n\n\n\n\n\n", + "vuesax-linear:play-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:play": "\n\n\n", + "vuesax-linear:polkadot-(dot)": "\n\n\n\n", + "vuesax-linear:polygon-(matic)": "\n\n\n\n", + "vuesax-linear:polyswarm-(nct)": "\n\n\n\n\n\n", + "vuesax-linear:presention-chart": "\n\n\n\n\n\n\n", + "vuesax-linear:previous": "\n\n\n\n", + "vuesax-linear:printer-slash": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:printer": "\n\n\n\n\n\n\n", + "vuesax-linear:profile-2user": "\n\n\n\n\n\n", + "vuesax-linear:profile-add": "\n\n\n\n\n\n", + "vuesax-linear:profile-circle": "\n\n\n\n\n", + "vuesax-linear:profile-delete": "\n\n\n\n\n\n", + "vuesax-linear:profile-remove": "\n\n\n\n\n", + "vuesax-linear:profile-tick": "\n\n\n\n\n", + "vuesax-linear:profile": "\n\n\n\n", + "vuesax-linear:programming-arrow": "\n\n\n\n\n\n\n\n", + "vuesax-linear:programming-arrows": "\n\n\n\n\n\n\n\n", + "vuesax-linear:python": "\n\n\n\n\n\n\n", + "vuesax-linear:quant-(qnt)": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:quote-down-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-down-square": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-down": "\n\n\n\n\n\n", + "vuesax-linear:quote-up-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-up-square": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-up": "\n\n\n\n\n\n", + "vuesax-linear:radar-1": "\n\n\n\n\n\n\n", + "vuesax-linear:radar-2": "\n\n\n\n", + "vuesax-linear:radar": "\n\n\n", + "vuesax-linear:radio": "\n\n\n\n\n\n\n\n", + "vuesax-linear:ram-2": "\n\n\n\n\n\n\n", + "vuesax-linear:ram": "\n\n\n\n\n", + "vuesax-linear:ranking-1": "\n\n\n\n\n\n", + "vuesax-linear:ranking": "\n\n\n\n\n\n", + "vuesax-linear:receipt-1": "\n\n\n\n\n", + "vuesax-linear:receipt-2-1": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-2": "\n\n\n\n\n", + "vuesax-linear:receipt-add": "\n\n\n\n\n\n", + "vuesax-linear:receipt-discount": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-disscount": "\n\n\n\n\n\n", + "vuesax-linear:receipt-edit": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-item": "\n\n\n\n\n\n\n\n", + "vuesax-linear:receipt-minus": "\n\n\n\n\n", + "vuesax-linear:receipt-search": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-square": "\n\n\n\n", + "vuesax-linear:receipt-text": "\n\n\n\n\n\n", + "vuesax-linear:receipt": "\n\n\n\n", + "vuesax-linear:receive-square-2": "\n\n\n\n\n\n", + "vuesax-linear:receive-square": "\n\n\n\n\n\n", + "vuesax-linear:received": "\n\n\n\n\n", + "vuesax-linear:record-circle": "\n\n\n\n", + "vuesax-linear:record": "\n\n\n", + "vuesax-linear:recovery-convert": "\n\n\n\n\n\n", + "vuesax-linear:redo": "\n\n\n\n", + "vuesax-linear:refresh-2": "\n\n\n", + "vuesax-linear:refresh-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:refresh-left-square": "\n\n\n\n\n\n", + "vuesax-linear:refresh-right-square": "\n\n\n\n\n\n", + "vuesax-linear:refresh-square-2": "\n\n\n\n", + "vuesax-linear:refresh": "\n\n\n\n", + "vuesax-linear:repeat-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:repeat": "\n\n\n\n\n\n", + "vuesax-linear:repeate-music": "\n\n\n\n\n", + "vuesax-linear:repeate-one": "\n\n\n\n\n", + "vuesax-linear:reserve": "\n\n\n\n\n\n", + "vuesax-linear:rotate-left-1": "\n\n\n\n", + "vuesax-linear:rotate-left": "\n\n\n\n\n", + "vuesax-linear:rotate-right-1": "\n\n\n\n", + "vuesax-linear:rotate-right": "\n\n\n\n\n", + "vuesax-linear:route-square": "\n\n\n\n", + "vuesax-linear:routing-2": "\n\n\n\n\n\n\n", + "vuesax-linear:routing": "\n\n\n\n\n\n\n", + "vuesax-linear:row-horizontal": "\n\n\n\n", + "vuesax-linear:row-vertical": "\n\n\n\n", + "vuesax-linear:ruler&pen": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:ruler": "\n\n\n\n\n\n\n", + "vuesax-linear:safe-home": "\n\n\n\n", + "vuesax-linear:sagittarius": "\n\n\n\n\n", + "vuesax-linear:save-2": "\n\n\n\n\n", + "vuesax-linear:save-add": "\n\n\n\n\n\n", + "vuesax-linear:save-minus": "\n\n\n\n\n", + "vuesax-linear:save-remove": "\n\n\n\n\n\n", + "vuesax-linear:scan-barcode": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:scan": "\n\n\n\n\n\n\n\n", + "vuesax-linear:scanner": "\n\n\n\n\n", + "vuesax-linear:scanning": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:scissor-1": "\n\n\n\n\n\n", + "vuesax-linear:scissor-2": "\n\n\n\n\n\n\n", + "vuesax-linear:scissor": "\n\n\n\n\n\n", + "vuesax-linear:screenmirroring": "\n\n\n\n", + "vuesax-linear:scroll": "\n\n\n\n\n", + "vuesax-linear:search-favorite-1": "\n\n\n\n\n", + "vuesax-linear:search-favorite": "\n\n\n\n\n", + "vuesax-linear:search-normal-1": "\n\n\n\n", + "vuesax-linear:search-normal": "\n\n\n\n", + "vuesax-linear:search-status-1": "\n\n\n\n\n\n", + "vuesax-linear:search-status": "\n\n\n\n\n\n", + "vuesax-linear:search-zoom-in-1": "\n\n\n\n\n\n", + "vuesax-linear:search-zoom-in": "\n\n\n\n\n\n", + "vuesax-linear:search-zoom-out-1": "\n\n\n\n\n", + "vuesax-linear:search-zoom-out": "\n\n\n\n\n", + "vuesax-linear:security-card": "\n\n\n\n\n\n\n", + "vuesax-linear:security-safe": "\n\n\n\n\n", + "vuesax-linear:security-time": "\n\n\n\n\n", + "vuesax-linear:security-user": "\n\n\n\n\n", + "vuesax-linear:security": "\n\n\n", + "vuesax-linear:send-1": "\n\n\n\n", + "vuesax-linear:send-2": "\n\n\n\n", + "vuesax-linear:send-sqaure-2": "\n\n\n\n\n\n", + "vuesax-linear:send-square": "\n\n\n\n\n\n", + "vuesax-linear:send": "\n\n\n\n\n", + "vuesax-linear:setting-2": "\n\n\n\n", + "vuesax-linear:setting-3": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:setting-4": "\n\n\n\n\n\n\n\n", + "vuesax-linear:setting-5": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:setting": "\n\n\n\n", + "vuesax-linear:settings": "\n\n\n\n\n", + "vuesax-linear:shapes-1": "\n\n\n\n", + "vuesax-linear:shapes-2": "\n\n\n\n", + "vuesax-linear:shapes": "\n\n\n\n", + "vuesax-linear:share": "\n\n\n\n\n\n\n\n", + "vuesax-linear:shield-cross": "\n\n\n\n\n", + "vuesax-linear:shield-search": "\n\n\n\n\n", + "vuesax-linear:shield-security": "\n\n\n\n\n", + "vuesax-linear:shield-slash": "\n\n\n\n\n", + "vuesax-linear:shield-tick": "\n\n\n\n", + "vuesax-linear:shield": "\n\n\n", + "vuesax-linear:ship": "\n\n\n\n\n\n", + "vuesax-linear:shop-add": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:shop-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:shop": "\n\n\n\n\n\n\n", + "vuesax-linear:shopping-bag": "\n\n\n\n\n", + "vuesax-linear:shopping-cart": "\n\n\n\n\n\n", + "vuesax-linear:siacoin-(sc)": "\n\n\n\n\n", + "vuesax-linear:sidebar-bottom": "\n\n\n\n\n", + "vuesax-linear:sidebar-left": "\n\n\n\n\n", + "vuesax-linear:sidebar-right": "\n\n\n\n\n", + "vuesax-linear:sidebar-top": "\n\n\n\n\n", + "vuesax-linear:signpost": "\n\n\n\n\n\n\n", + "vuesax-linear:simcard-1": "\n\n\n\n\n\n", + "vuesax-linear:simcard-2": "\n\n\n\n", + "vuesax-linear:simcard": "\n\n\n\n\n", + "vuesax-linear:size": "\n\n\n\n", + "vuesax-linear:slack": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:slash": "\n\n\n\n", + "vuesax-linear:slider-horizontal-1": "\n\n\n\n\n", + "vuesax-linear:slider-horizontal": "\n\n\n\n\n", + "vuesax-linear:slider-vertical-1": "\n\n\n\n\n", + "vuesax-linear:slider-vertical": "\n\n\n\n\n", + "vuesax-linear:slider": "\n\n\n\n\n\n", + "vuesax-linear:smallcaps": "\n\n\n\n\n\n\n\n", + "vuesax-linear:smart-car": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:smart-home": "\n\n\n\n\n\n", + "vuesax-linear:smileys": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:sms-edit": "\n\n\n\n\n\n", + "vuesax-linear:sms-notification": "\n\n\n\n\n", + "vuesax-linear:sms-search": "\n\n\n\n\n\n", + "vuesax-linear:sms-star": "\n\n\n\n\n", + "vuesax-linear:sms-tracking": "\n\n\n\n\n\n", + "vuesax-linear:sms": "\n\n\n\n", + "vuesax-linear:snapchat": "\n\n\n\n", + "vuesax-linear:solana-(sol)": "\n\n\n\n\n", + "vuesax-linear:sort": "\n\n\n\n\n", + "vuesax-linear:sound": "\n\n\n\n\n\n\n", + "vuesax-linear:speaker": "\n\n\n\n\n", + "vuesax-linear:speedometer": "\n\n\n\n\n", + "vuesax-linear:spotify": "\n\n\n\n\n\n", + "vuesax-linear:stacks-(stx)": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:star-1": "\n\n\n", + "vuesax-linear:star-slash": "\n\n\n\n\n", + "vuesax-linear:star": "\n\n\n\n\n\n", + "vuesax-linear:status-up": "\n\n\n\n\n\n\n\n", + "vuesax-linear:status": "\n\n\n\n\n", + "vuesax-linear:stellar-(xlm)": "\n\n\n\n\n\n", + "vuesax-linear:sticker": "\n\n\n\n", + "vuesax-linear:stickynote": "\n\n\n\n\n\n\n\n", + "vuesax-linear:stop-circle": "\n\n\n\n", + "vuesax-linear:stop": "\n\n\n", + "vuesax-linear:story": "\n\n\n\n\n\n", + "vuesax-linear:strongbox-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:strongbox": "\n\n\n\n\n\n", + "vuesax-linear:subtitle": "\n\n\n\n\n\n\n", + "vuesax-linear:sun-1": "\n\n\n\n", + "vuesax-linear:sun-fog": "\n\n\n\n\n\n\n", + "vuesax-linear:sun": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:tag-2": "\n\n\n\n\n", + "vuesax-linear:tag-cross": "\n\n\n\n\n", + "vuesax-linear:tag-right": "\n\n\n", + "vuesax-linear:tag-user": "\n\n\n\n\n", + "vuesax-linear:tag": "\n\n\n\n", + "vuesax-linear:task-square": "\n\n\n\n\n\n\n", + "vuesax-linear:task": "\n\n\n\n\n\n\n\n", + "vuesax-linear:teacher": "\n\n\n\n\n", + "vuesax-linear:tenx-(pay)": "\n\n\n\n", + "vuesax-linear:tether-(usdt)": "\n\n\n\n\n", + "vuesax-linear:text-block": "\n\n\n\n\n", + "vuesax-linear:text-bold": "\n\n\n\n", + "vuesax-linear:text-italic": "\n\n\n\n\n", + "vuesax-linear:text-underline": "\n\n\n\n", + "vuesax-linear:text": "\n\n\n\n\n", + "vuesax-linear:textalign-center": "\n\n\n\n\n\n", + "vuesax-linear:textalign-justifycenter": "\n\n\n\n\n\n", + "vuesax-linear:textalign-justifyleft": "\n\n\n\n\n\n", + "vuesax-linear:textalign-justifyright": "\n\n\n\n\n\n", + "vuesax-linear:textalign-left": "\n\n\n\n\n\n", + "vuesax-linear:textalign-right": "\n\n\n\n\n\n", + "vuesax-linear:the-graph-(grt)": "\n\n\n\n\n\n", + "vuesax-linear:theta-(theta)": "\n\n\n\n\n\n\n\n", + "vuesax-linear:thorchain-(rune)": "\n\n\n", + "vuesax-linear:tick-circle": "\n\n\n\n", + "vuesax-linear:tick-square": "\n\n\n\n", + "vuesax-linear:ticket-2": "\n\n\n\n\n", + "vuesax-linear:ticket-discount": "\n\n\n\n\n\n", + "vuesax-linear:ticket-expired": "\n\n\n\n\n", + "vuesax-linear:ticket-star": "\n\n\n\n\n\n", + "vuesax-linear:ticket": "\n\n\n\n", + "vuesax-linear:timer-1": "\n\n\n\n\n", + "vuesax-linear:timer-pause": "\n\n\n\n\n\n\n", + "vuesax-linear:timer-start": "\n\n\n\n\n\n", + "vuesax-linear:timer": "\n\n\n", + "vuesax-linear:toggle-off-circle": "\n\n\n\n", + "vuesax-linear:toggle-off": "\n\n\n\n", + "vuesax-linear:toggle-on-circle": "\n\n\n\n", + "vuesax-linear:toggle-on": "\n\n\n\n", + "vuesax-linear:trade": "\n\n\n\n\n\n", + "vuesax-linear:transaction-minus": "\n\n\n\n", + "vuesax-linear:translate": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:trash": "\n\n\n\n\n\n\n", + "vuesax-linear:tree": "\n\n\n\n\n", + "vuesax-linear:trello": "\n\n\n\n\n", + "vuesax-linear:trend-down": "\n\n\n\n\n", + "vuesax-linear:trend-up": "\n\n\n\n\n", + "vuesax-linear:triangle": "\n\n\n\n\n", + "vuesax-linear:trontron-(trx)": "\n\n\n\n\n", + "vuesax-linear:truck-remove": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:truck-tick": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:truck-time": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:trush-square": "\n\n\n\n\n\n", + "vuesax-linear:twitch": "\n\n\n\n\n", + "vuesax-linear:ui8": "\n\n\n\n\n\n\n", + "vuesax-linear:undo": "\n\n\n\n", + "vuesax-linear:unlimited": "\n\n\n", + "vuesax-linear:unlock": "\n\n\n\n\n", + "vuesax-linear:usd-coin-(usdc)": "\n\n\n\n\n\n\n", + "vuesax-linear:user-add": "\n\n\n\n\n\n\n", + "vuesax-linear:user-cirlce-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:user-edit": "\n\n\n\n\n\n", + "vuesax-linear:user-minus": "\n\n\n\n\n\n", + "vuesax-linear:user-octagon": "\n\n\n\n\n", + "vuesax-linear:user-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:user-search": "\n\n\n\n\n\n", + "vuesax-linear:user-square": "\n\n\n\n\n", + "vuesax-linear:user-tag": "\n\n\n\n\n", + "vuesax-linear:user-tick": "\n\n\n\n\n\n", + "vuesax-linear:user": "\n\n\n\n", + "vuesax-linear:velas-(vlx)": "\n\n\n\n", + "vuesax-linear:verify": "\n\n\n\n", + "vuesax-linear:vibe-(vibe)": "\n\n\n\n\n", + "vuesax-linear:video-add": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video-circle": "\n\n\n\n", + "vuesax-linear:video-horizontal": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video-octagon": "\n\n\n\n", + "vuesax-linear:video-play": "\n\n\n\n\n\n\n", + "vuesax-linear:video-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video-slash": "\n\n\n\n\n\n", + "vuesax-linear:video-square": "\n\n\n\n", + "vuesax-linear:video-tick": "\n\n\n\n\n\n\n\n", + "vuesax-linear:video-time": "\n\n\n\n\n\n\n\n", + "vuesax-linear:video-vertical": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video": "\n\n\n\n\n", + "vuesax-linear:voice-cricle": "\n\n\n\n\n\n\n\n", + "vuesax-linear:voice-square": "\n\n\n\n\n\n\n\n", + "vuesax-linear:volume-cross": "\n\n\n\n\n", + "vuesax-linear:volume-high": "\n\n\n\n\n", + "vuesax-linear:volume-low-1": "\n\n\n\n", + "vuesax-linear:volume-low": "\n\n\n\n", + "vuesax-linear:volume-mute": "\n\n\n", + "vuesax-linear:volume-slash": "\n\n\n\n\n\n\n", + "vuesax-linear:volume-up": "\n\n\n\n\n", + "vuesax-linear:vuesax": "\n\n\n\n\n", + "vuesax-linear:wallet-1": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet-2": "\n\n\n\n\n", + "vuesax-linear:wallet-3": "\n\n\n\n\n\n", + "vuesax-linear:wallet-add-1": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-check": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet-minus": "\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-money": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-search": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet": "\n\n\n\n\n", + "vuesax-linear:wanchain-(wan)-1": "\n\n\n", + "vuesax-linear:wanchain-(wan)": "\n\n\n\n\n\n", + "vuesax-linear:warning-2": "\n\n\n\n\n", + "vuesax-linear:watch-status": "\n\n\n\n\n\n\n\n", + "vuesax-linear:watch": "\n\n\n\n\n\n", + "vuesax-linear:weight-1": "\n\n\n\n\n\n\n", + "vuesax-linear:weight": "\n\n\n\n", + "vuesax-linear:whatsapp": "\n\n\n\n", + "vuesax-linear:wifi-square": "\n\n\n\n\n\n", + "vuesax-linear:wifi": "\n\n\n\n\n\n", + "vuesax-linear:wind-2": "\n\n\n\n\n", + "vuesax-linear:wind": "\n\n\n\n\n", + "vuesax-linear:windows": "\n\n\n\n\n\n", + "vuesax-linear:wing-(wing)": "\n\n\n\n\n", + "vuesax-linear:woman": "\n\n\n\n\n", + "vuesax-linear:xd": "\n\n\n\n\n\n", + "vuesax-linear:xiaomi": "\n\n\n\n\n\n", + "vuesax-linear:xrp-(xrp)": "\n\n\n\n", + "vuesax-linear:youtube": "\n\n\n\n", + "vuesax-linear:zel-(zel)": "\n\n\n\n\n\n", + "vuesax-linear:zoom": "\n\n\n\n\n", + "other:target": "\n\n\n\n\n", + "vuesax-linear:record-plus": "\n\n\n\n\n", + "other:more-square": "\n \n \n\n", + "custom:single-check": "", + "custom:double-check": "" +} \ No newline at end of file diff --git a/apps/admin/src/layouts/AdminLayout.vue b/apps/admin/src/layouts/AdminLayout.vue new file mode 100644 index 0000000..f4e4a15 --- /dev/null +++ b/apps/admin/src/layouts/AdminLayout.vue @@ -0,0 +1,1050 @@ + + + + + diff --git a/apps/admin/src/main.ts b/apps/admin/src/main.ts new file mode 100644 index 0000000..bb37b4c --- /dev/null +++ b/apps/admin/src/main.ts @@ -0,0 +1,12 @@ +import Antd from "ant-design-vue"; +import { createPinia } from "pinia"; +import { createApp } from "vue"; +import { z } from "zod"; +import App from "./App.vue"; +import { router } from "./router"; +import "./style.css"; + +// Persian default validation messages (custom messages in @imen/shared still win) +z.config(z.locales.fa()); + +createApp(App).use(createPinia()).use(router).use(Antd).mount("#app"); diff --git a/apps/admin/src/pages/CategoriesPage.vue b/apps/admin/src/pages/CategoriesPage.vue new file mode 100644 index 0000000..41a6550 --- /dev/null +++ b/apps/admin/src/pages/CategoriesPage.vue @@ -0,0 +1,256 @@ + + + diff --git a/apps/admin/src/pages/CategoryEditPage.vue b/apps/admin/src/pages/CategoryEditPage.vue new file mode 100644 index 0000000..54c6664 --- /dev/null +++ b/apps/admin/src/pages/CategoryEditPage.vue @@ -0,0 +1,268 @@ + + + diff --git a/apps/admin/src/pages/DashboardPage.vue b/apps/admin/src/pages/DashboardPage.vue new file mode 100644 index 0000000..5bc984e --- /dev/null +++ b/apps/admin/src/pages/DashboardPage.vue @@ -0,0 +1,341 @@ + + + diff --git a/apps/admin/src/pages/LoginPage.vue b/apps/admin/src/pages/LoginPage.vue new file mode 100644 index 0000000..1037134 --- /dev/null +++ b/apps/admin/src/pages/LoginPage.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/apps/admin/src/pages/MediaPage.vue b/apps/admin/src/pages/MediaPage.vue new file mode 100644 index 0000000..0767643 --- /dev/null +++ b/apps/admin/src/pages/MediaPage.vue @@ -0,0 +1,240 @@ + + + diff --git a/apps/admin/src/pages/MessagesPage.vue b/apps/admin/src/pages/MessagesPage.vue new file mode 100644 index 0000000..674e603 --- /dev/null +++ b/apps/admin/src/pages/MessagesPage.vue @@ -0,0 +1,292 @@ + + + diff --git a/apps/admin/src/pages/ProductEditPage.vue b/apps/admin/src/pages/ProductEditPage.vue new file mode 100644 index 0000000..3d58d66 --- /dev/null +++ b/apps/admin/src/pages/ProductEditPage.vue @@ -0,0 +1,442 @@ + + + diff --git a/apps/admin/src/pages/ProductsPage.vue b/apps/admin/src/pages/ProductsPage.vue new file mode 100644 index 0000000..bffc0d2 --- /dev/null +++ b/apps/admin/src/pages/ProductsPage.vue @@ -0,0 +1,842 @@ + + + + + diff --git a/apps/admin/src/pages/ProfilePage.vue b/apps/admin/src/pages/ProfilePage.vue new file mode 100644 index 0000000..548bc63 --- /dev/null +++ b/apps/admin/src/pages/ProfilePage.vue @@ -0,0 +1,75 @@ + + + diff --git a/apps/admin/src/pages/SectionEditPage.vue b/apps/admin/src/pages/SectionEditPage.vue new file mode 100644 index 0000000..74e98f1 --- /dev/null +++ b/apps/admin/src/pages/SectionEditPage.vue @@ -0,0 +1,203 @@ + + + diff --git a/apps/admin/src/pages/SectionsPage.vue b/apps/admin/src/pages/SectionsPage.vue new file mode 100644 index 0000000..83bcbef --- /dev/null +++ b/apps/admin/src/pages/SectionsPage.vue @@ -0,0 +1,158 @@ + + + diff --git a/apps/admin/src/pages/UsersPage.vue b/apps/admin/src/pages/UsersPage.vue new file mode 100644 index 0000000..5baa09d --- /dev/null +++ b/apps/admin/src/pages/UsersPage.vue @@ -0,0 +1,333 @@ + + + diff --git a/apps/admin/src/router.ts b/apps/admin/src/router.ts new file mode 100644 index 0000000..ae03b4f --- /dev/null +++ b/apps/admin/src/router.ts @@ -0,0 +1,57 @@ +import type { Role } from "@imen/shared"; +import { createRouter, createWebHistory } from "vue-router"; +import { useAuthStore } from "@/stores/auth"; + +declare module "vue-router" { + interface RouteMeta { + title?: string; + public?: boolean; + roles?: Role[]; + } +} + +export const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: "/login", + name: "login", + component: () => import("@/pages/LoginPage.vue"), + meta: { public: true, title: "ورود" }, + }, + { + path: "/", + component: () => import("@/layouts/AdminLayout.vue"), + children: [ + { path: "", name: "dashboard", component: () => import("@/pages/DashboardPage.vue"), meta: { title: "داشبورد" } }, + { path: "products", name: "products", component: () => import("@/pages/ProductsPage.vue"), meta: { title: "محصولات" } }, + { path: "products/new", name: "product-new", component: () => import("@/pages/ProductEditPage.vue"), meta: { title: "محصول جدید" } }, + { path: "products/:id", name: "product-edit", component: () => import("@/pages/ProductEditPage.vue"), meta: { title: "ویرایش محصول" } }, + { path: "categories", name: "categories", component: () => import("@/pages/CategoriesPage.vue"), meta: { title: "دسته‌بندی‌ها" } }, + { path: "categories/new", name: "category-new", component: () => import("@/pages/CategoryEditPage.vue"), meta: { title: "دسته جدید" } }, + { path: "categories/:id", name: "category-edit", component: () => import("@/pages/CategoryEditPage.vue"), meta: { title: "ویرایش دسته" } }, + { path: "sections", name: "sections", component: () => import("@/pages/SectionsPage.vue"), meta: { title: "بخش‌های سایت" } }, + { path: "sections/:key", name: "section-edit", component: () => import("@/pages/SectionEditPage.vue"), meta: { title: "ویرایش بخش" } }, + { path: "messages", name: "messages", component: () => import("@/pages/MessagesPage.vue"), meta: { title: "پیام‌های تماس" } }, + { path: "media", name: "media", component: () => import("@/pages/MediaPage.vue"), meta: { title: "کتابخانه رسانه" } }, + { path: "users", name: "users", component: () => import("@/pages/UsersPage.vue"), meta: { title: "کاربران", roles: ["ADMIN"] } }, + { path: "profile", name: "profile", component: () => import("@/pages/ProfilePage.vue"), meta: { title: "حساب کاربری" } }, + ], + }, + { path: "/:pathMatch(.*)*", redirect: "/" }, + ], +}); + +router.beforeEach(async (to) => { + const auth = useAuthStore(); + await auth.init(); + + if (to.meta.public) return auth.user && to.name === "login" ? { name: "dashboard" } : true; + if (!auth.user) return { name: "login", query: { redirect: to.fullPath } }; + if (to.meta.roles && !to.meta.roles.includes(auth.user.role)) return { name: "dashboard" }; + return true; +}); + +router.afterEach((to) => { + document.title = to.meta.title ? `${to.meta.title} | پنل ایمن پیشگامان` : "پنل ایمن پیشگامان"; +}); diff --git a/apps/admin/src/sections/AboutForm.vue b/apps/admin/src/sections/AboutForm.vue new file mode 100644 index 0000000..3e8364e --- /dev/null +++ b/apps/admin/src/sections/AboutForm.vue @@ -0,0 +1,54 @@ + + + diff --git a/apps/admin/src/sections/ContactForm.vue b/apps/admin/src/sections/ContactForm.vue new file mode 100644 index 0000000..596bc97 --- /dev/null +++ b/apps/admin/src/sections/ContactForm.vue @@ -0,0 +1,34 @@ + + + diff --git a/apps/admin/src/sections/FooterForm.vue b/apps/admin/src/sections/FooterForm.vue new file mode 100644 index 0000000..a0260e5 --- /dev/null +++ b/apps/admin/src/sections/FooterForm.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/admin/src/sections/HeroForm.vue b/apps/admin/src/sections/HeroForm.vue new file mode 100644 index 0000000..c67053e --- /dev/null +++ b/apps/admin/src/sections/HeroForm.vue @@ -0,0 +1,78 @@ + + + diff --git a/apps/admin/src/sections/IndustriesForm.vue b/apps/admin/src/sections/IndustriesForm.vue new file mode 100644 index 0000000..71da423 --- /dev/null +++ b/apps/admin/src/sections/IndustriesForm.vue @@ -0,0 +1,39 @@ + + + diff --git a/apps/admin/src/sections/ProductsIntroForm.vue b/apps/admin/src/sections/ProductsIntroForm.vue new file mode 100644 index 0000000..91fa401 --- /dev/null +++ b/apps/admin/src/sections/ProductsIntroForm.vue @@ -0,0 +1,32 @@ + + + diff --git a/apps/admin/src/sections/ServicesForm.vue b/apps/admin/src/sections/ServicesForm.vue new file mode 100644 index 0000000..bf3f1ab --- /dev/null +++ b/apps/admin/src/sections/ServicesForm.vue @@ -0,0 +1,36 @@ + + + diff --git a/apps/admin/src/sections/SettingsForm.vue b/apps/admin/src/sections/SettingsForm.vue new file mode 100644 index 0000000..3fe9e77 --- /dev/null +++ b/apps/admin/src/sections/SettingsForm.vue @@ -0,0 +1,132 @@ + + + diff --git a/apps/admin/src/sections/StandardsForm.vue b/apps/admin/src/sections/StandardsForm.vue new file mode 100644 index 0000000..f732f13 --- /dev/null +++ b/apps/admin/src/sections/StandardsForm.vue @@ -0,0 +1,34 @@ + + + diff --git a/apps/admin/src/sections/StatsForm.vue b/apps/admin/src/sections/StatsForm.vue new file mode 100644 index 0000000..a8b8ab2 --- /dev/null +++ b/apps/admin/src/sections/StatsForm.vue @@ -0,0 +1,30 @@ + + + diff --git a/apps/admin/src/sections/TapeForm.vue b/apps/admin/src/sections/TapeForm.vue new file mode 100644 index 0000000..ca35c76 --- /dev/null +++ b/apps/admin/src/sections/TapeForm.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/admin/src/sections/TestimonialsForm.vue b/apps/admin/src/sections/TestimonialsForm.vue new file mode 100644 index 0000000..1306c38 --- /dev/null +++ b/apps/admin/src/sections/TestimonialsForm.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/admin/src/stores/auth.ts b/apps/admin/src/stores/auth.ts new file mode 100644 index 0000000..3f0a4d3 --- /dev/null +++ b/apps/admin/src/stores/auth.ts @@ -0,0 +1,67 @@ +import type { AdminUserDto, AuthResponse, LoginInput } from "@imen/shared"; +import { defineStore } from "pinia"; +import { rawApi, setAuthHooks } from "@/api/http"; +import { router } from "@/router"; + +let refreshing: Promise | null = null; + +export const useAuthStore = defineStore("auth", { + state: () => ({ + /** short-lived access token, kept in memory only */ + token: "", + user: null as AdminUserDto | null, + /** true once the initial session check has run */ + ready: false, + }), + getters: { + isAdmin: (s) => s.user?.role === "ADMIN", + }, + actions: { + setSession(r: AuthResponse) { + this.token = r.accessToken; + this.user = r.user; + }, + clear() { + this.token = ""; + this.user = null; + }, + async login(input: LoginInput) { + this.setSession(await rawApi("/admin/auth/login", { method: "POST", body: input })); + }, + /** Exchanges the refresh cookie for a new access token; concurrent calls share one request */ + refresh(): Promise { + refreshing ??= rawApi("/admin/auth/refresh", { method: "POST" }) + .then((r) => { + this.setSession(r); + return true; + }) + .catch(() => { + this.clear(); + return false; + }) + .finally(() => { + refreshing = null; + }); + return refreshing; + }, + /** Restores the session after a page load (the refresh cookie survives reloads) */ + async init() { + if (this.ready) return; + setAuthHooks({ + token: () => this.token, + refresh: () => this.refresh(), + onExpired: () => { + this.clear(); + void router.push({ name: "login", query: { redirect: router.currentRoute.value.fullPath } }); + }, + }); + await this.refresh(); + this.ready = true; + }, + async logout() { + await rawApi("/admin/auth/logout", { method: "POST" }).catch(() => undefined); + this.clear(); + await router.push({ name: "login" }); + }, + }, +}); diff --git a/apps/admin/src/style.css b/apps/admin/src/style.css new file mode 100644 index 0000000..5c7352e --- /dev/null +++ b/apps/admin/src/style.css @@ -0,0 +1,110 @@ +@import "tailwindcss"; + +@font-face { + font-family: "IRANSans"; + src: url("/fonts/IRANSansWebFaNum.woff2") format("woff2"); + font-weight: 400; + font-display: swap; +} +@font-face { + font-family: "IRANSans"; + src: url("/fonts/IRANSansWebFaNum_Medium.woff2") format("woff2"); + font-weight: 500; + font-display: swap; +} +@font-face { + font-family: "IRANSans"; + src: url("/fonts/IRANSansWebFaNum_Bold.woff2") format("woff2"); + font-weight: 700; + font-display: swap; +} + +@theme { + --font-sans: "IRANSans", Tahoma, sans-serif; + --color-brand: #ff5a00; + --color-navy: #0b1224; + --color-navy-2: #101a32; +} + +html, +body { + background: #f5f6fa; + font-family: var(--font-sans); +} + +/* inputs that hold Latin text (codes, slugs, URLs) read left-to-right */ +.ltr-input input, +input.ltr-input, +textarea.ltr-input { + direction: ltr; + text-align: left; +} + +/* Remove borders from all icon buttons and action buttons across the admin panel */ +.ant-btn-icon-only, +.ant-btn.ant-btn-icon-only, +.ant-table .ant-btn:not(.ant-btn-primary), +.ant-space .ant-btn:not(.ant-btn-primary), +.ant-btn:has(> .vx-icon:only-child):not(.ant-btn-primary), +.ant-btn:has(> span > .vx-icon:only-child):not(.ant-btn-primary) { + border: none !important; + box-shadow: none !important; +} + +.ant-btn-icon-only:not(.ant-btn-primary):not(:hover), +.ant-table .ant-btn:not(.ant-btn-primary):not(:hover), +.ant-space .ant-btn:not(.ant-btn-primary):not(:hover) { + background: transparent !important; +} + +.ant-btn-icon-only:not(.ant-btn-primary):hover, +.ant-table .ant-btn:not(.ant-btn-primary):hover, +.ant-space .ant-btn:not(.ant-btn-primary):hover { + border: none !important; + background: #f1f5f9 !important; +} + +.ant-btn-icon-only.ant-btn-dangerous, +.ant-table .ant-btn.ant-btn-dangerous, +.ant-space .ant-btn.ant-btn-dangerous { + border: none !important; + color: #ef4444 !important; +} + +.ant-btn-icon-only.ant-btn-dangerous:hover, +.ant-table .ant-btn.ant-btn-dangerous:hover, +.ant-space .ant-btn.ant-btn-dangerous:hover { + border: none !important; + background: #fee2e2 !important; + color: #dc2626 !important; +} + +/* Ensure proper spacing and optical vertical alignment for icons in buttons across the admin */ +.ant-btn { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + gap: 8px !important; +} + +.ant-btn > .anticon, +.ant-btn > .vx-icon, +.ant-btn > .ant-btn-icon { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + line-height: 0 !important; + vertical-align: middle !important; +} + +.ant-btn-icon-only { + gap: 0 !important; +} + +.ant-btn-icon-only > .vx-icon, +.ant-btn-icon-only > .anticon, +.ant-btn-icon-only > .ant-btn-icon { + margin: 0 !important; +} + + diff --git a/apps/admin/src/utils/format.ts b/apps/admin/src/utils/format.ts new file mode 100644 index 0000000..6b15136 --- /dev/null +++ b/apps/admin/src/utils/format.ts @@ -0,0 +1,44 @@ +const dateFmt = new Intl.DateTimeFormat("fa-IR-u-ca-persian", { + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", +}); + +/** ISO date → Jalali date and time, e.g. «۱۴۰۴/۰۷/۲۹، ۱۶:۳۰» */ +export const jalali = (iso: string | null | undefined) => (iso ? dateFmt.format(new Date(iso)) : "—"); + +export const fileSize = (bytes: number) => + bytes < 1024 * 1024 + ? `${(bytes / 1024).toLocaleString("fa-IR", { maximumFractionDigits: 0 })} کیلوبایت` + : `${(bytes / 1024 / 1024).toLocaleString("fa-IR", { maximumFractionDigits: 1 })} مگابایت`; + +export const faNumber = (n: number) => n.toLocaleString("fa-IR"); + +/** Website base URL for "view on site" links */ +export const SITE_URL = (import.meta.env.VITE_SITE_URL as string | undefined) ?? "http://localhost:3000"; + +const ACTION_LABELS: Record = { + create: "ایجاد", + update: "ویرایش", + delete: "حذف", + upload: "آپلود", + login: "ورود", + publish: "انتشار", + unpublish: "عدم انتشار", + duplicate: "کپی", + reorder: "مرتب‌سازی", + "change-password": "تغییر رمز", +}; +const ENTITY_LABELS: Record = { + product: "محصول", + category: "دسته", + section: "بخش سایت", + media: "رسانه", + user: "کاربر", + message: "پیام", +}; + +export const activityLabel = (action: string, entity: string) => + `${ACTION_LABELS[action] ?? action} ${ENTITY_LABELS[entity] ?? entity}`; diff --git a/apps/admin/src/utils/slug.ts b/apps/admin/src/utils/slug.ts new file mode 100644 index 0000000..fd90251 --- /dev/null +++ b/apps/admin/src/utils/slug.ts @@ -0,0 +1,7 @@ +/** "Safety Shoes 2" → "safety-shoes-2" (Latin letters and digits only) */ +export const toSlug = (text: string) => + text + .toLowerCase() + .replace(/[^a-z0-9]+/g, "-") + .replace(/^-+|-+$/g, "") + .slice(0, 80); diff --git a/apps/admin/tsconfig.app.json b/apps/admin/tsconfig.app.json new file mode 100644 index 0000000..216481d --- /dev/null +++ b/apps/admin/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "types": ["vite/client", "ant-design-vue/typings/global"], + "strict": true, + "resolveJsonModule": true, + "noUncheckedIndexedAccess": true, + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src/**/*.ts", "src/**/*.vue"] +} diff --git a/apps/admin/tsconfig.json b/apps/admin/tsconfig.json new file mode 100644 index 0000000..d32ff68 --- /dev/null +++ b/apps/admin/tsconfig.json @@ -0,0 +1,4 @@ +{ + "files": [], + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] +} diff --git a/apps/admin/tsconfig.node.json b/apps/admin/tsconfig.node.json new file mode 100644 index 0000000..9fbe614 --- /dev/null +++ b/apps/admin/tsconfig.node.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "moduleResolution": "bundler", + "types": ["node"], + "strict": true, + "skipLibCheck": true, + "noEmit": true + }, + "include": ["vite.config.ts"] +} diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts new file mode 100644 index 0000000..f3f0230 --- /dev/null +++ b/apps/admin/vite.config.ts @@ -0,0 +1,24 @@ +import { fileURLToPath, URL } from "node:url"; +import tailwindcss from "@tailwindcss/vite"; +import vue from "@vitejs/plugin-vue"; +import { defineConfig, type ProxyOptions } from "vite"; + +// same paths nginx serves in production: /api → NestJS, /media → object storage bucket +const proxy: Record = { + "/api": { target: "http://localhost:4000", changeOrigin: true }, + // trailing slash: the media library page itself lives at /media + "/media/": { + target: "http://localhost:9000/imen-media", + changeOrigin: true, + rewrite: (p) => p.replace(/^\/media/, ""), + }, +}; + +export default defineConfig({ + plugins: [vue(), tailwindcss()], + resolve: { + alias: { "@": fileURLToPath(new URL("./src", import.meta.url)) }, + }, + server: { port: 5173, proxy }, + preview: { port: 5173, proxy }, +}); diff --git a/apps/api/.env.example b/apps/api/.env.example new file mode 100644 index 0000000..0caf9f8 --- /dev/null +++ b/apps/api/.env.example @@ -0,0 +1,38 @@ +# --- server --- +PORT=4000 +NODE_ENV=development +# comma-separated origins allowed to call the API from a browser (admin dev server, site) +CORS_ORIGINS=http://localhost:5173,http://localhost:3000 + +# --- database (docker-compose.dev.yml) --- +DATABASE_URL=postgresql://imen:imen@localhost:5435/imen + +# --- auth --- +# generate with: node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))" +JWT_SECRET=change-me-dev-secret-change-me-dev-secret +JWT_ACCESS_TTL=15m +REFRESH_TTL_DAYS=30 +# set to false only when serving the admin over plain http in production +COOKIE_SECURE=false + +# first admin user, created by `pnpm db:seed` +ADMIN_PHONE=09120000000 +ADMIN_PASSWORD=ChangeMe123! +ADMIN_NAME=مدیر سایت + +# --- object storage (MinIO in dev, any S3-compatible service in production) --- +S3_ENDPOINT=http://localhost:9000 +S3_REGION=us-east-1 +S3_BUCKET=imen-media +S3_ACCESS_KEY=imen +S3_SECRET_KEY=imen-secret-key +S3_FORCE_PATH_STYLE=true +# create the bucket and make it publicly readable on startup (MinIO) +S3_ENSURE_BUCKET=true +# public base URL of uploaded files (no trailing slash). "/media" is proxied to the bucket +# by the site/admin dev servers and by nginx in production, so URLs are the same everywhere +MEDIA_PUBLIC_URL=/media + +# --- website cache revalidation --- +WEB_REVALIDATE_URL=http://localhost:3000/_internal/revalidate +REVALIDATE_SECRET=change-me-revalidate-secret diff --git a/apps/api/.output/dist/chunks/chunk-6UPY3HEI.js b/apps/api/.output/dist/chunks/chunk-6UPY3HEI.js new file mode 100644 index 0000000..b95cda9 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-6UPY3HEI.js @@ -0,0 +1,9040 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + __commonJS, + __esm, + __export, + __name, + __toESM +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/chunked-blob-reader/chunked-blob-reader.js +async function blobReader(blob, onChunk, chunkSize = 1024 * 1024) { + const size = blob.size; + let totalBytesRead = 0; + while (totalBytesRead < size) { + const slice = blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize)); + onChunk(new Uint8Array(await slice.arrayBuffer())); + totalBytesRead += slice.size; + } +} +var init_chunked_blob_reader = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/chunked-blob-reader/chunked-blob-reader.js"() { + __name(blobReader, "blobReader"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-blob-browser/blobHasher.js +var blobHasher; +var init_blobHasher = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-blob-browser/blobHasher.js"() { + init_chunked_blob_reader(); + blobHasher = /* @__PURE__ */ __name(async function blobHasher2(hashCtor, blob) { + const hash = new hashCtor(); + await blobReader(blob, (chunk) => { + hash.update(chunk); + }); + return hash.digest(); + }, "blobHasher"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/is-array-buffer/is-array-buffer.js +var isArrayBuffer; +var init_is_array_buffer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/is-array-buffer/is-array-buffer.js"() { + isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === "function" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === "[object ArrayBuffer]", "isArrayBuffer"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-buffer-from/buffer-from.js +var fromArrayBuffer, fromString; +var init_buffer_from = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-buffer-from/buffer-from.js"() { + init_is_array_buffer(); + fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => { + if (!isArrayBuffer(input)) { + throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})`); + } + return Buffer.from(input, offset, length); + }, "fromArrayBuffer"); + fromString = /* @__PURE__ */ __name((input, encoding) => { + if (typeof input !== "string") { + throw new TypeError(`The "input" argument must be of type string. Received type ${typeof input} (${input})`); + } + return encoding ? Buffer.from(input, encoding) : Buffer.from(input); + }, "fromString"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/fromBase64.js +var BASE64_REGEX, fromBase64; +var init_fromBase64 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/fromBase64.js"() { + init_buffer_from(); + BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/; + fromBase64 = /* @__PURE__ */ __name((input) => { + if (input.length * 3 % 4 !== 0) { + throw new TypeError(`Incorrect padding on base64 string.`); + } + if (!BASE64_REGEX.exec(input)) { + throw new TypeError(`Invalid base64 string.`); + } + const buffer = fromString(input, "base64"); + return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); + }, "fromBase64"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/fromUtf8.js +var fromUtf8; +var init_fromUtf8 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/fromUtf8.js"() { + init_buffer_from(); + fromUtf8 = /* @__PURE__ */ __name((input) => { + const buf = fromString(input, "utf8"); + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT); + }, "fromUtf8"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/toBase64.js +var toBase64; +var init_toBase64 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/toBase64.js"() { + init_buffer_from(); + init_fromUtf8(); + toBase64 = /* @__PURE__ */ __name((_input) => { + let input; + if (typeof _input === "string") { + input = fromUtf8(_input); + } else { + input = _input; + } + if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { + throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array."); + } + return fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString("base64"); + }, "toBase64"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/blob/Uint8ArrayBlobAdapter.js +function bindUint8ArrayBlobAdapter(toUtf83, fromUtf83, toBase643, fromBase642) { + return class Uint8ArrayBlobAdapter2 extends Uint8Array { + static { + __name(this, "Uint8ArrayBlobAdapter"); + } + static fromString(source, encoding = "utf-8") { + if (typeof source === "string") { + if (encoding === "base64") { + return Uint8ArrayBlobAdapter2.mutate(fromBase642(source)); + } + return Uint8ArrayBlobAdapter2.mutate(fromUtf83(source)); + } + throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`); + } + static mutate(source) { + Object.setPrototypeOf(source, Uint8ArrayBlobAdapter2.prototype); + return source; + } + transformToString(encoding = "utf-8") { + if (encoding === "base64") { + return toBase643(this); + } + return toUtf83(this); + } + }; +} +var init_Uint8ArrayBlobAdapter = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/blob/Uint8ArrayBlobAdapter.js"() { + __name(bindUint8ArrayBlobAdapter, "bindUint8ArrayBlobAdapter"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUtf8.js +var toUtf8; +var init_toUtf8 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUtf8.js"() { + init_buffer_from(); + toUtf8 = /* @__PURE__ */ __name((input) => { + if (typeof input === "string") { + return input; + } + if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { + throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array."); + } + return fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString("utf8"); + }, "toUtf8"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/uuid/v4.js +function bindV4(getRandomValues2) { + if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") { + return () => crypto.randomUUID(); + } + return () => { + const rnds = new Uint8Array(16); + getRandomValues2(rnds); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + return decimalToHex[rnds[0]] + decimalToHex[rnds[1]] + decimalToHex[rnds[2]] + decimalToHex[rnds[3]] + "-" + decimalToHex[rnds[4]] + decimalToHex[rnds[5]] + "-" + decimalToHex[rnds[6]] + decimalToHex[rnds[7]] + "-" + decimalToHex[rnds[8]] + decimalToHex[rnds[9]] + "-" + decimalToHex[rnds[10]] + decimalToHex[rnds[11]] + decimalToHex[rnds[12]] + decimalToHex[rnds[13]] + decimalToHex[rnds[14]] + decimalToHex[rnds[15]]; + }; +} +var decimalToHex; +var init_v4 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/uuid/v4.js"() { + decimalToHex = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0")); + __name(bindV4, "bindV4"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/copyDocumentWithTransform.js +var copyDocumentWithTransform; +var init_copyDocumentWithTransform = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/copyDocumentWithTransform.js"() { + copyDocumentWithTransform = /* @__PURE__ */ __name((source, _schemaRef, _transform = (_) => _) => source, "copyDocumentWithTransform"); + } +}); + +// ../../node_modules/.pnpm/@smithy+types@4.19.0/node_modules/@smithy/types/dist-cjs/index.js +var require_dist_cjs = __commonJS({ + "../../node_modules/.pnpm/@smithy+types@4.19.0/node_modules/@smithy/types/dist-cjs/index.js"(exports) { + var HttpAuthLocation; + (function(HttpAuthLocation2) { + HttpAuthLocation2["HEADER"] = "header"; + HttpAuthLocation2["QUERY"] = "query"; + })(HttpAuthLocation || (HttpAuthLocation = {})); + var HttpApiKeyAuthLocation; + (function(HttpApiKeyAuthLocation2) { + HttpApiKeyAuthLocation2["HEADER"] = "header"; + HttpApiKeyAuthLocation2["QUERY"] = "query"; + })(HttpApiKeyAuthLocation || (HttpApiKeyAuthLocation = {})); + var EndpointURLScheme2; + (function(EndpointURLScheme3) { + EndpointURLScheme3["HTTP"] = "http"; + EndpointURLScheme3["HTTPS"] = "https"; + })(EndpointURLScheme2 || (EndpointURLScheme2 = {})); + var AlgorithmId2; + (function(AlgorithmId3) { + AlgorithmId3["MD5"] = "md5"; + AlgorithmId3["CRC32"] = "crc32"; + AlgorithmId3["CRC32C"] = "crc32c"; + AlgorithmId3["SHA1"] = "sha1"; + AlgorithmId3["SHA256"] = "sha256"; + })(AlgorithmId2 || (AlgorithmId2 = {})); + var getChecksumConfiguration2 = /* @__PURE__ */ __name((runtimeConfig) => { + const checksumAlgorithms = []; + if (runtimeConfig.sha256 !== void 0) { + checksumAlgorithms.push({ + algorithmId: /* @__PURE__ */ __name(() => AlgorithmId2.SHA256, "algorithmId"), + checksumConstructor: /* @__PURE__ */ __name(() => runtimeConfig.sha256, "checksumConstructor") + }); + } + if (runtimeConfig.md5 != void 0) { + checksumAlgorithms.push({ + algorithmId: /* @__PURE__ */ __name(() => AlgorithmId2.MD5, "algorithmId"), + checksumConstructor: /* @__PURE__ */ __name(() => runtimeConfig.md5, "checksumConstructor") + }); + } + return { + addChecksumAlgorithm(algo) { + checksumAlgorithms.push(algo); + }, + checksumAlgorithms() { + return checksumAlgorithms; + } + }; + }, "getChecksumConfiguration"); + var resolveChecksumRuntimeConfig2 = /* @__PURE__ */ __name((clientConfig) => { + const runtimeConfig = {}; + clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { + runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); + }); + return runtimeConfig; + }, "resolveChecksumRuntimeConfig"); + var getDefaultClientConfiguration2 = /* @__PURE__ */ __name((runtimeConfig) => { + return getChecksumConfiguration2(runtimeConfig); + }, "getDefaultClientConfiguration"); + var resolveDefaultRuntimeConfig2 = /* @__PURE__ */ __name((config) => { + return resolveChecksumRuntimeConfig2(config); + }, "resolveDefaultRuntimeConfig"); + var FieldPosition; + (function(FieldPosition2) { + FieldPosition2[FieldPosition2["HEADER"] = 0] = "HEADER"; + FieldPosition2[FieldPosition2["TRAILER"] = 1] = "TRAILER"; + })(FieldPosition || (FieldPosition = {})); + var SMITHY_CONTEXT_KEY3 = "__smithy_context"; + var IniSectionType4; + (function(IniSectionType5) { + IniSectionType5["PROFILE"] = "profile"; + IniSectionType5["SSO_SESSION"] = "sso-session"; + IniSectionType5["SERVICES"] = "services"; + })(IniSectionType4 || (IniSectionType4 = {})); + var RequestHandlerProtocol; + (function(RequestHandlerProtocol2) { + RequestHandlerProtocol2["HTTP_0_9"] = "http/0.9"; + RequestHandlerProtocol2["HTTP_1_0"] = "http/1.0"; + RequestHandlerProtocol2["TDS_8_0"] = "tds/8.0"; + })(RequestHandlerProtocol || (RequestHandlerProtocol = {})); + exports.AlgorithmId = AlgorithmId2; + exports.EndpointURLScheme = EndpointURLScheme2; + exports.FieldPosition = FieldPosition; + exports.HttpApiKeyAuthLocation = HttpApiKeyAuthLocation; + exports.HttpAuthLocation = HttpAuthLocation; + exports.IniSectionType = IniSectionType4; + exports.RequestHandlerProtocol = RequestHandlerProtocol; + exports.SMITHY_CONTEXT_KEY = SMITHY_CONTEXT_KEY3; + exports.getDefaultClientConfiguration = getDefaultClientConfiguration2; + exports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig2; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/getSmithyContext.js +var import_types, getSmithyContext; +var init_getSmithyContext = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/getSmithyContext.js"() { + import_types = __toESM(require_dist_cjs()); + getSmithyContext = /* @__PURE__ */ __name((context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/hasOwn.js +function hasOwn(o, k) { + return Object.prototype.hasOwnProperty.call(o, k); +} +var init_hasOwn = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/hasOwn.js"() { + __name(hasOwn, "hasOwn"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/httpRequest.js +function cloneQuery(query) { + return Object.keys(query).reduce((carry, paramName) => { + const param = query[paramName]; + return { + ...carry, + [paramName]: Array.isArray(param) ? [...param] : param + }; + }, {}); +} +var HttpRequest; +var init_httpRequest = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/httpRequest.js"() { + HttpRequest = class _HttpRequest { + static { + __name(this, "HttpRequest"); + } + method; + protocol; + hostname; + port; + path; + query; + headers; + username; + password; + fragment; + body; + constructor(options) { + this.method = options.method || "GET"; + this.hostname = options.hostname || "localhost"; + this.port = options.port; + this.query = options.query || {}; + this.headers = options.headers || {}; + this.body = options.body; + this.protocol = options.protocol ? options.protocol.slice(-1) !== ":" ? `${options.protocol}:` : options.protocol : "https:"; + this.path = options.path ? options.path.charAt(0) !== "/" ? `/${options.path}` : options.path : "/"; + this.username = options.username; + this.password = options.password; + this.fragment = options.fragment; + } + static clone(request) { + const cloned = new _HttpRequest({ + ...request, + headers: { ...request.headers } + }); + if (cloned.query) { + cloned.query = cloneQuery(cloned.query); + } + return cloned; + } + static isInstance(request) { + if (!request) { + return false; + } + const req = request; + return "method" in req && "protocol" in req && "hostname" in req && "path" in req && typeof req["query"] === "object" && typeof req["headers"] === "object"; + } + clone() { + return _HttpRequest.clone(this); + } + }; + __name(cloneQuery, "cloneQuery"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/httpResponse.js +var HttpResponse; +var init_httpResponse = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/httpResponse.js"() { + HttpResponse = class { + static { + __name(this, "HttpResponse"); + } + statusCode; + reason; + headers; + body; + constructor(options) { + this.statusCode = options.statusCode; + this.reason = options.reason; + this.headers = options.headers || {}; + this.body = options.body; + } + static isInstance(response) { + if (!response) + return false; + const resp = response; + return typeof resp.statusCode === "number" && typeof resp.headers === "object"; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/isValidHostLabel.js +var VALID_HOST_LABEL_REGEX, isValidHostLabel; +var init_isValidHostLabel = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/isValidHostLabel.js"() { + VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`); + isValidHostLabel = /* @__PURE__ */ __name((value, allowSubDomains = false) => { + if (!allowSubDomains) { + return VALID_HOST_LABEL_REGEX.test(value); + } + const labels = value.split("."); + for (const label of labels) { + if (!isValidHostLabel(label)) { + return false; + } + } + return true; + }, "isValidHostLabel"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/isValidHostname.js +function isValidHostname(hostname) { + const hostPattern = /^[a-z0-9][a-z0-9.-]*[a-z0-9]$/; + return hostPattern.test(hostname); +} +var init_isValidHostname = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/isValidHostname.js"() { + __name(isValidHostname, "isValidHostname"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/normalizeProvider.js +var normalizeProvider; +var init_normalizeProvider = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/normalizeProvider.js"() { + normalizeProvider = /* @__PURE__ */ __name((input) => { + if (typeof input === "function") + return input; + const promisified = Promise.resolve(input); + return () => promisified; + }, "normalizeProvider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/parseQueryString.js +function parseQueryString(querystring) { + const query = {}; + querystring = querystring.replace(/^\?/, ""); + if (querystring) { + for (const pair of querystring.split("&")) { + let [key, value = null] = pair.split("="); + key = decodeURIComponent(key); + if (value) { + value = decodeURIComponent(value); + } + if (!(key in query)) { + query[key] = value; + } else if (Array.isArray(query[key])) { + query[key].push(value); + } else { + query[key] = [query[key], value]; + } + } + } + return query; +} +var init_parseQueryString = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/parseQueryString.js"() { + __name(parseQueryString, "parseQueryString"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/parseUrl.js +var parseUrl; +var init_parseUrl = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/parseUrl.js"() { + init_parseQueryString(); + parseUrl = /* @__PURE__ */ __name((url) => { + if (typeof url === "string") { + return parseUrl(new URL(url)); + } + const { hostname, pathname, port, protocol, search } = url; + let query; + if (search) { + query = parseQueryString(search); + } + return { + hostname, + port: port ? parseInt(port) : void 0, + protocol, + path: pathname, + query + }; + }, "parseUrl"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/toEndpointV1.js +var toEndpointV1; +var init_toEndpointV1 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/toEndpointV1.js"() { + init_hasOwn(); + init_parseUrl(); + toEndpointV1 = /* @__PURE__ */ __name((endpoint) => { + if (typeof endpoint === "object") { + if ("url" in endpoint) { + const v1Endpoint = parseUrl(endpoint.url); + if (endpoint.headers) { + v1Endpoint.headers = {}; + for (const name in endpoint.headers) { + if (!hasOwn(endpoint.headers, name)) + continue; + v1Endpoint.headers[name.toLowerCase()] = endpoint.headers[name].join(", "); + } + } + return v1Endpoint; + } + return endpoint; + } + return parseUrl(endpoint); + }, "toEndpointV1"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/index.js +var init_transport = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/transport/index.js"() { + init_getSmithyContext(); + init_hasOwn(); + init_httpRequest(); + init_httpResponse(); + init_isValidHostLabel(); + init_isValidHostname(); + init_normalizeProvider(); + init_parseQueryString(); + init_parseUrl(); + init_toEndpointV1(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js +var parseBoolean, expectBoolean, expectNumber, MAX_FLOAT, expectFloat32, expectLong, expectInt, expectInt32, expectShort, expectByte, expectSizedInt, castInt, expectNonNull, expectObject, expectString, expectUnion, strictParseDouble, strictParseFloat, strictParseFloat32, NUMBER_REGEX, parseNumber, limitedParseDouble, handleFloat, limitedParseFloat, limitedParseFloat32, parseFloatString, strictParseLong, strictParseInt, strictParseInt32, strictParseShort, strictParseByte, stackTraceWarning, logger; +var init_parse_utils = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js"() { + init_transport(); + parseBoolean = /* @__PURE__ */ __name((value) => { + switch (value) { + case "true": + return true; + case "false": + return false; + default: + throw new Error(`Unable to parse boolean value "${value}"`); + } + }, "parseBoolean"); + expectBoolean = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "number") { + if (value === 0 || value === 1) { + logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); + } + if (value === 0) { + return false; + } + if (value === 1) { + return true; + } + } + if (typeof value === "string") { + const lower = value.toLowerCase(); + if (lower === "false" || lower === "true") { + logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); + } + if (lower === "false") { + return false; + } + if (lower === "true") { + return true; + } + } + if (typeof value === "boolean") { + return value; + } + throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`); + }, "expectBoolean"); + expectNumber = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "string") { + const parsed = parseFloat(value); + if (!Number.isNaN(parsed)) { + if (String(parsed) !== String(value)) { + logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`)); + } + return parsed; + } + } + if (typeof value === "number") { + return value; + } + throw new TypeError(`Expected number, got ${typeof value}: ${value}`); + }, "expectNumber"); + MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)); + expectFloat32 = /* @__PURE__ */ __name((value) => { + const expected = expectNumber(value); + if (expected !== void 0 && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) { + if (Math.abs(expected) > MAX_FLOAT) { + throw new TypeError(`Expected 32-bit float, got ${value}`); + } + } + return expected; + }, "expectFloat32"); + expectLong = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (Number.isInteger(value) && !Number.isNaN(value)) { + return value; + } + throw new TypeError(`Expected integer, got ${typeof value}: ${value}`); + }, "expectLong"); + expectInt = expectLong; + expectInt32 = /* @__PURE__ */ __name((value) => expectSizedInt(value, 32), "expectInt32"); + expectShort = /* @__PURE__ */ __name((value) => expectSizedInt(value, 16), "expectShort"); + expectByte = /* @__PURE__ */ __name((value) => expectSizedInt(value, 8), "expectByte"); + expectSizedInt = /* @__PURE__ */ __name((value, size) => { + const expected = expectLong(value); + if (expected !== void 0 && castInt(expected, size) !== expected) { + throw new TypeError(`Expected ${size}-bit integer, got ${value}`); + } + return expected; + }, "expectSizedInt"); + castInt = /* @__PURE__ */ __name((value, size) => { + switch (size) { + case 32: + return Int32Array.of(value)[0]; + case 16: + return Int16Array.of(value)[0]; + case 8: + return Int8Array.of(value)[0]; + } + }, "castInt"); + expectNonNull = /* @__PURE__ */ __name((value, location) => { + if (value === null || value === void 0) { + if (location) { + throw new TypeError(`Expected a non-null value for ${location}`); + } + throw new TypeError("Expected a non-null value"); + } + return value; + }, "expectNonNull"); + expectObject = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "object" && !Array.isArray(value)) { + return value; + } + const receivedType = Array.isArray(value) ? "array" : typeof value; + throw new TypeError(`Expected object, got ${receivedType}: ${value}`); + }, "expectObject"); + expectString = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "string") { + return value; + } + if (["boolean", "number", "bigint"].includes(typeof value)) { + logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`)); + return String(value); + } + throw new TypeError(`Expected string, got ${typeof value}: ${value}`); + }, "expectString"); + expectUnion = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + const asObject = expectObject(value); + const setKeys = []; + for (const k in asObject) { + if (!hasOwn(asObject, k)) + continue; + if (asObject[k] != null) { + setKeys.push(k); + } + } + if (setKeys.length === 0) { + throw new TypeError(`Unions must have exactly one non-null member. None were found.`); + } + if (setKeys.length > 1) { + throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`); + } + return asObject; + }, "expectUnion"); + strictParseDouble = /* @__PURE__ */ __name((value) => { + if (typeof value == "string") { + return expectNumber(parseNumber(value)); + } + return expectNumber(value); + }, "strictParseDouble"); + strictParseFloat = strictParseDouble; + strictParseFloat32 = /* @__PURE__ */ __name((value) => { + if (typeof value == "string") { + return expectFloat32(parseNumber(value)); + } + return expectFloat32(value); + }, "strictParseFloat32"); + NUMBER_REGEX = /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g; + parseNumber = /* @__PURE__ */ __name((value) => { + const matches = value.match(NUMBER_REGEX); + if (matches === null || matches[0].length !== value.length) { + throw new TypeError(`Expected real number, got implicit NaN`); + } + return parseFloat(value); + }, "parseNumber"); + limitedParseDouble = /* @__PURE__ */ __name((value) => { + if (typeof value == "string") { + return parseFloatString(value); + } + return expectNumber(value); + }, "limitedParseDouble"); + handleFloat = limitedParseDouble; + limitedParseFloat = limitedParseDouble; + limitedParseFloat32 = /* @__PURE__ */ __name((value) => { + if (typeof value == "string") { + return parseFloatString(value); + } + return expectFloat32(value); + }, "limitedParseFloat32"); + parseFloatString = /* @__PURE__ */ __name((value) => { + switch (value) { + case "NaN": + return NaN; + case "Infinity": + return Infinity; + case "-Infinity": + return -Infinity; + default: + throw new Error(`Unable to parse float value: ${value}`); + } + }, "parseFloatString"); + strictParseLong = /* @__PURE__ */ __name((value) => { + if (typeof value === "string") { + return expectLong(parseNumber(value)); + } + return expectLong(value); + }, "strictParseLong"); + strictParseInt = strictParseLong; + strictParseInt32 = /* @__PURE__ */ __name((value) => { + if (typeof value === "string") { + return expectInt32(parseNumber(value)); + } + return expectInt32(value); + }, "strictParseInt32"); + strictParseShort = /* @__PURE__ */ __name((value) => { + if (typeof value === "string") { + return expectShort(parseNumber(value)); + } + return expectShort(value); + }, "strictParseShort"); + strictParseByte = /* @__PURE__ */ __name((value) => { + if (typeof value === "string") { + return expectByte(parseNumber(value)); + } + return expectByte(value); + }, "strictParseByte"); + stackTraceWarning = /* @__PURE__ */ __name((message) => { + return String(new TypeError(message).stack || message).split("\n").slice(0, 5).filter((s) => !s.includes("stackTraceWarning")).join("\n"); + }, "stackTraceWarning"); + logger = { + warn: console.warn + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/date-utils.js +function dateToUtcString(date2) { + const year2 = date2.getUTCFullYear(); + const month = date2.getUTCMonth(); + const dayOfWeek = date2.getUTCDay(); + const dayOfMonthInt = date2.getUTCDate(); + const hoursInt = date2.getUTCHours(); + const minutesInt = date2.getUTCMinutes(); + const secondsInt = date2.getUTCSeconds(); + const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`; + const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`; + const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`; + const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`; + return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year2} ${hoursString}:${minutesString}:${secondsString} GMT`; +} +var DAYS, MONTHS, RFC3339, parseRfc3339DateTime, RFC3339_WITH_OFFSET, parseRfc3339DateTimeWithOffset, IMF_FIXDATE, RFC_850_DATE, ASC_TIME, parseRfc7231DateTime, parseEpochTimestamp, buildDate, parseTwoDigitYear, FIFTY_YEARS_IN_MILLIS, adjustRfc850Year, parseMonthByShortName, DAYS_IN_MONTH, validateDayOfMonth, isLeapYear, parseDateValue, parseMilliseconds, parseOffsetToMilliseconds, stripLeadingZeroes; +var init_date_utils = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/date-utils.js"() { + init_parse_utils(); + DAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + __name(dateToUtcString, "dateToUtcString"); + RFC3339 = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/); + parseRfc3339DateTime = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC-3339 date-times must be expressed as strings"); + } + const match = RFC3339.exec(value); + if (!match) { + throw new TypeError("Invalid RFC-3339 date-time value"); + } + const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match; + const year2 = strictParseShort(stripLeadingZeroes(yearStr)); + const month = parseDateValue(monthStr, "month", 1, 12); + const day = parseDateValue(dayStr, "day", 1, 31); + return buildDate(year2, month, day, { hours, minutes, seconds, fractionalMilliseconds }); + }, "parseRfc3339DateTime"); + RFC3339_WITH_OFFSET = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}:\d{2})|[zZ])$/); + parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC-3339 date-times must be expressed as strings"); + } + const match = RFC3339_WITH_OFFSET.exec(value); + if (!match) { + throw new TypeError("Invalid RFC-3339 date-time value"); + } + const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match; + const year2 = strictParseShort(stripLeadingZeroes(yearStr)); + const month = parseDateValue(monthStr, "month", 1, 12); + const day = parseDateValue(dayStr, "day", 1, 31); + const date2 = buildDate(year2, month, day, { hours, minutes, seconds, fractionalMilliseconds }); + if (offsetStr.toUpperCase() != "Z") { + date2.setTime(date2.getTime() - parseOffsetToMilliseconds(offsetStr)); + } + return date2; + }, "parseRfc3339DateTimeWithOffset"); + IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/); + RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/); + ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/); + parseRfc7231DateTime = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC-7231 date-times must be expressed as strings"); + } + let match = IMF_FIXDATE.exec(value); + if (match) { + const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; + return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, "day", 1, 31), { hours, minutes, seconds, fractionalMilliseconds }); + } + match = RFC_850_DATE.exec(value); + if (match) { + const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match; + return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, "day", 1, 31), { + hours, + minutes, + seconds, + fractionalMilliseconds + })); + } + match = ASC_TIME.exec(value); + if (match) { + const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match; + return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), "day", 1, 31), { hours, minutes, seconds, fractionalMilliseconds }); + } + throw new TypeError("Invalid RFC-7231 date-time value"); + }, "parseRfc7231DateTime"); + parseEpochTimestamp = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return void 0; + } + let valueAsDouble; + if (typeof value === "number") { + valueAsDouble = value; + } else if (typeof value === "string") { + valueAsDouble = strictParseDouble(value); + } else if (typeof value === "object" && value.tag === 1) { + valueAsDouble = value.value; + } else { + throw new TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation"); + } + if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) { + throw new TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics"); + } + return new Date(Math.round(valueAsDouble * 1e3)); + }, "parseEpochTimestamp"); + buildDate = /* @__PURE__ */ __name((year2, month, day, time2) => { + const adjustedMonth = month - 1; + validateDayOfMonth(year2, adjustedMonth, day); + return new Date(Date.UTC(year2, adjustedMonth, day, parseDateValue(time2.hours, "hour", 0, 23), parseDateValue(time2.minutes, "minute", 0, 59), parseDateValue(time2.seconds, "seconds", 0, 60), parseMilliseconds(time2.fractionalMilliseconds))); + }, "buildDate"); + parseTwoDigitYear = /* @__PURE__ */ __name((value) => { + const thisYear = (/* @__PURE__ */ new Date()).getUTCFullYear(); + const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value)); + if (valueInThisCentury < thisYear) { + return valueInThisCentury + 100; + } + return valueInThisCentury; + }, "parseTwoDigitYear"); + FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3; + adjustRfc850Year = /* @__PURE__ */ __name((input) => { + if (input.getTime() - (/* @__PURE__ */ new Date()).getTime() > FIFTY_YEARS_IN_MILLIS) { + return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds())); + } + return input; + }, "adjustRfc850Year"); + parseMonthByShortName = /* @__PURE__ */ __name((value) => { + const monthIdx = MONTHS.indexOf(value); + if (monthIdx < 0) { + throw new TypeError(`Invalid month: ${value}`); + } + return monthIdx + 1; + }, "parseMonthByShortName"); + DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + validateDayOfMonth = /* @__PURE__ */ __name((year2, month, day) => { + let maxDays = DAYS_IN_MONTH[month]; + if (month === 1 && isLeapYear(year2)) { + maxDays = 29; + } + if (day > maxDays) { + throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year2}: ${day}`); + } + }, "validateDayOfMonth"); + isLeapYear = /* @__PURE__ */ __name((year2) => { + return year2 % 4 === 0 && (year2 % 100 !== 0 || year2 % 400 === 0); + }, "isLeapYear"); + parseDateValue = /* @__PURE__ */ __name((value, type, lower, upper) => { + const dateVal = strictParseByte(stripLeadingZeroes(value)); + if (dateVal < lower || dateVal > upper) { + throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`); + } + return dateVal; + }, "parseDateValue"); + parseMilliseconds = /* @__PURE__ */ __name((value) => { + if (value === null || value === void 0) { + return 0; + } + return strictParseFloat32("0." + value) * 1e3; + }, "parseMilliseconds"); + parseOffsetToMilliseconds = /* @__PURE__ */ __name((value) => { + const directionStr = value[0]; + let direction = 1; + if (directionStr == "+") { + direction = 1; + } else if (directionStr == "-") { + direction = -1; + } else { + throw new TypeError(`Offset direction, ${directionStr}, must be "+" or "-"`); + } + const hour = Number(value.substring(1, 3)); + const minute = Number(value.substring(4, 6)); + return direction * (hour * 60 + minute) * 60 * 1e3; + }, "parseOffsetToMilliseconds"); + stripLeadingZeroes = /* @__PURE__ */ __name((value) => { + let idx = 0; + while (idx < value.length - 1 && value.charAt(idx) === "0") { + idx++; + } + if (idx === 0) { + return value; + } + return value.slice(idx); + }, "stripLeadingZeroes"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/lazy-json.js +var LazyJsonString; +var init_lazy_json = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/lazy-json.js"() { + LazyJsonString = /* @__PURE__ */ __name(function LazyJsonString2(val) { + const str = Object.assign(new String(val), { + deserializeJSON() { + return JSON.parse(String(val)); + }, + toString() { + return String(val); + }, + toJSON() { + return String(val); + } + }); + return str; + }, "LazyJsonString"); + LazyJsonString.from = (object) => { + if (object && typeof object === "object" && (object instanceof LazyJsonString || "deserializeJSON" in object)) { + return object; + } else if (typeof object === "string" || Object.getPrototypeOf(object) === String.prototype) { + return LazyJsonString(String(object)); + } + return LazyJsonString(JSON.stringify(object)); + }; + LazyJsonString.fromObject = LazyJsonString.from; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/quote-header.js +function quoteHeader(part) { + if (part.includes(",") || part.includes('"')) { + part = `"${part.replace(/"/g, '\\"')}"`; + } + return part; +} +var init_quote_header = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/quote-header.js"() { + __name(quoteHeader, "quoteHeader"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js +function range(v, min, max) { + const _v = Number(v); + if (_v < min || _v > max) { + throw new Error(`Value ${_v} out of range [${min}, ${max}]`); + } +} +var ddd, mmm, time, date, year, RFC3339_WITH_OFFSET2, IMF_FIXDATE2, RFC_850_DATE2, ASC_TIME2, months, _parseEpochTimestamp, _parseRfc3339DateTimeWithOffset, _parseRfc7231DateTime; +var init_schema_date_utils = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js"() { + ddd = `(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?`; + mmm = `(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)`; + time = `(\\d?\\d):(\\d{2}):(\\d{2})(?:\\.(\\d+))?`; + date = `(\\d?\\d)`; + year = `(\\d{4})`; + RFC3339_WITH_OFFSET2 = new RegExp(/^(\d{4})-(\d\d)-(\d\d)[tT](\d\d):(\d\d):(\d\d)(\.(\d+))?(([-+]\d\d:\d\d)|[zZ])$/); + IMF_FIXDATE2 = new RegExp(`^${ddd}, ${date} ${mmm} ${year} ${time} GMT$`); + RFC_850_DATE2 = new RegExp(`^${ddd}, ${date}-${mmm}-(\\d\\d) ${time} GMT$`); + ASC_TIME2 = new RegExp(`^${ddd} ${mmm} ( [1-9]|\\d\\d) ${time} ${year}$`); + months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + _parseEpochTimestamp = /* @__PURE__ */ __name((value) => { + if (value == null) { + return void 0; + } + let num = NaN; + if (typeof value === "number") { + num = value; + } else if (typeof value === "string") { + if (!/^-?\d*\.?\d+$/.test(value)) { + throw new TypeError(`parseEpochTimestamp - numeric string invalid.`); + } + num = Number.parseFloat(value); + } else if (typeof value === "object" && value.tag === 1) { + num = value.value; + } + if (isNaN(num) || Math.abs(num) === Infinity) { + throw new TypeError("Epoch timestamps must be valid finite numbers."); + } + return new Date(Math.round(num * 1e3)); + }, "_parseEpochTimestamp"); + _parseRfc3339DateTimeWithOffset = /* @__PURE__ */ __name((value) => { + if (value == null) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC3339 timestamps must be strings"); + } + const matches = RFC3339_WITH_OFFSET2.exec(value); + if (!matches) { + throw new TypeError(`Invalid RFC3339 timestamp format ${value}`); + } + const [, yearStr, monthStr, dayStr, hours, minutes, seconds, , ms, offsetStr] = matches; + range(monthStr, 1, 12); + range(dayStr, 1, 31); + range(hours, 0, 23); + range(minutes, 0, 59); + range(seconds, 0, 60); + const date2 = new Date(Date.UTC(Number(yearStr), Number(monthStr) - 1, Number(dayStr), Number(hours), Number(minutes), Number(seconds), Number(ms) ? Math.round(parseFloat(`0.${ms}`) * 1e3) : 0)); + date2.setUTCFullYear(Number(yearStr)); + if (offsetStr.toUpperCase() != "Z") { + const [, sign2, offsetH, offsetM] = /([+-])(\d\d):(\d\d)/.exec(offsetStr) || [void 0, "+", 0, 0]; + const scalar = sign2 === "-" ? 1 : -1; + date2.setTime(date2.getTime() + scalar * (Number(offsetH) * 60 * 60 * 1e3 + Number(offsetM) * 60 * 1e3)); + } + return date2; + }, "_parseRfc3339DateTimeWithOffset"); + _parseRfc7231DateTime = /* @__PURE__ */ __name((value) => { + if (value == null) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC7231 timestamps must be strings."); + } + let day; + let month; + let year2; + let hour; + let minute; + let second; + let fraction; + let matches; + if (matches = IMF_FIXDATE2.exec(value)) { + [, day, month, year2, hour, minute, second, fraction] = matches; + } else if (matches = RFC_850_DATE2.exec(value)) { + [, day, month, year2, hour, minute, second, fraction] = matches; + year2 = (Number(year2) + 1900).toString(); + } else if (matches = ASC_TIME2.exec(value)) { + [, month, day, hour, minute, second, fraction, year2] = matches; + } + if (year2 && second) { + const timestamp = Date.UTC(Number(year2), months.indexOf(month), Number(day), Number(hour), Number(minute), Number(second), fraction ? Math.round(parseFloat(`0.${fraction}`) * 1e3) : 0); + range(day, 1, 31); + range(hour, 0, 23); + range(minute, 0, 59); + range(second, 0, 60); + const date2 = new Date(timestamp); + date2.setUTCFullYear(Number(year2)); + return date2; + } + throw new TypeError(`Invalid RFC7231 date-time value ${value}.`); + }, "_parseRfc7231DateTime"); + __name(range, "range"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/split-every.js +function splitEvery(value, delimiter, numDelimiters) { + if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { + throw new Error("Invalid number of delimiters (" + numDelimiters + ") for splitEvery."); + } + const segments = value.split(delimiter); + if (numDelimiters === 1) { + return segments; + } + const compoundSegments = []; + let currentSegment = ""; + for (let i = 0; i < segments.length; i++) { + if (currentSegment === "") { + currentSegment = segments[i]; + } else { + currentSegment += delimiter + segments[i]; + } + if ((i + 1) % numDelimiters === 0) { + compoundSegments.push(currentSegment); + currentSegment = ""; + } + } + if (currentSegment !== "") { + compoundSegments.push(currentSegment); + } + return compoundSegments; +} +var init_split_every = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/split-every.js"() { + __name(splitEvery, "splitEvery"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/split-header.js +var splitHeader; +var init_split_header = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/split-header.js"() { + splitHeader = /* @__PURE__ */ __name((value) => { + const z = value.length; + const values = []; + let withinQuotes = false; + let prevChar = void 0; + let anchor = 0; + for (let i = 0; i < z; ++i) { + const char = value[i]; + switch (char) { + case `"`: + if (prevChar !== "\\") { + withinQuotes = !withinQuotes; + } + break; + case ",": + if (!withinQuotes) { + values.push(value.slice(anchor, i)); + anchor = i + 1; + } + break; + default: + } + prevChar = char; + } + values.push(value.slice(anchor)); + return values.map((v) => { + v = v.trim(); + const z2 = v.length; + if (z2 < 2) { + return v; + } + if (v[0] === `"` && v[z2 - 1] === `"`) { + v = v.slice(1, z2 - 1); + } + return v.replace(/\\"/g, '"'); + }); + }, "splitHeader"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +function nv(input) { + return new NumericValue(String(input), "bigDecimal"); +} +var format, NumericValue; +var init_NumericValue = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js"() { + format = /^-?((0|[1-9]\d*)(\.\d+)?|\.\d+)([eE][+-]?\d+)?$/; + NumericValue = class _NumericValue { + static { + __name(this, "NumericValue"); + } + string; + type; + constructor(string, type) { + this.string = string; + this.type = type; + if (!format.test(string)) { + throw new Error(`@smithy/core/serde - NumericValue string must conform to the Smithy bigDecimal format. Received: "${string}"`); + } + } + toString() { + return this.string; + } + static [Symbol.hasInstance](object) { + if (!object || typeof object !== "object") { + return false; + } + const _nv = object; + return _NumericValue.prototype.isPrototypeOf(object) || _nv.type === "bigDecimal" && format.test(_nv.string); + } + }; + __name(nv, "nv"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-hex-encoding/hex-encoding.js +function fromHex(encoded) { + if (encoded.length % 2 !== 0) { + throw new Error("Hex encoded strings must have an even number length"); + } + const out = new Uint8Array(encoded.length / 2); + for (let i = 0; i < encoded.length; i += 2) { + const encodedByte = encoded.slice(i, i + 2).toLowerCase(); + if (encodedByte in HEX_TO_SHORT) { + out[i / 2] = HEX_TO_SHORT[encodedByte]; + } else { + throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`); + } + } + return out; +} +function toHex(bytes) { + let out = ""; + for (let i = 0; i < bytes.byteLength; i++) { + out += SHORT_TO_HEX[bytes[i]]; + } + return out; +} +var SHORT_TO_HEX, HEX_TO_SHORT; +var init_hex_encoding = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-hex-encoding/hex-encoding.js"() { + SHORT_TO_HEX = {}; + HEX_TO_SHORT = {}; + for (let i = 0; i < 256; i++) { + let encodedByte = i.toString(16).toLowerCase(); + if (encodedByte.length === 1) { + encodedByte = `0${encodedByte}`; + } + SHORT_TO_HEX[i] = encodedByte; + HEX_TO_SHORT[encodedByte] = i; + } + __name(fromHex, "fromHex"); + __name(toHex, "toHex"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-body-length/calculateBodyLength.js +import { ReadStream, fstatSync, lstatSync } from "node:fs"; +var calculateBodyLength; +var init_calculateBodyLength = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-body-length/calculateBodyLength.js"() { + calculateBodyLength = /* @__PURE__ */ __name((body) => { + if (!body) { + return 0; + } + if (typeof body === "string") { + return Buffer.byteLength(body); + } else if (typeof body.byteLength === "number") { + return body.byteLength; + } else if (typeof body.size === "number") { + return body.size; + } else if (typeof body.start === "number" && typeof body.end === "number") { + return body.end + 1 - body.start; + } else if (body instanceof ReadStream) { + if (body.path != null) { + return lstatSync(body.path).size; + } else if (typeof body.fd === "number") { + return fstatSync(body.fd).size; + } + } + throw new Error(`Body Length computation failed for ${body}`); + }, "calculateBodyLength"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +var toUint8Array; +var init_toUint8Array = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js"() { + init_fromUtf8(); + toUint8Array = /* @__PURE__ */ __name((data) => { + if (data instanceof Uint8Array) { + return data; + } + if (typeof data === "string") { + return fromUtf8(data); + } + if (ArrayBuffer.isView(data)) { + return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); + } + return new Uint8Array(data); + }, "toUint8Array"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +function concatBytes(arrays, length) { + if (length === void 0) { + length = 0; + for (const bytes of arrays) { + length += bytes.byteLength; + } + } + const result = new Uint8Array(length); + let offset = 0; + for (const buf of arrays) { + result.set(buf, offset); + offset += buf.byteLength; + } + return result; +} +var init_concatBytes = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js"() { + __name(concatBytes, "concatBytes"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/deserializerMiddleware.js +var deserializerMiddleware, findHeader; +var init_deserializerMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/deserializerMiddleware.js"() { + init_transport(); + deserializerMiddleware = /* @__PURE__ */ __name((options, deserializer) => (next, context) => async (args) => { + const { response } = await next(args); + try { + const parsed = await deserializer(response, options); + return { + response, + output: parsed + }; + } catch (error2) { + Object.defineProperty(error2, "$response", { + value: response, + enumerable: false, + writable: false, + configurable: false + }); + if (!("$metadata" in error2)) { + const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`; + try { + error2.message += "\n " + hint; + } catch (ignored) { + if (!context.logger || context.logger?.constructor?.name === "NoOpLogger") { + console.warn(hint); + } else { + context.logger?.warn?.(hint); + } + } + if (typeof error2.$responseBodyText !== "undefined") { + if (error2.$response) { + error2.$response.body = error2.$responseBodyText; + } + } + try { + if (HttpResponse.isInstance(response)) { + const { headers = {} } = response; + const headerEntries = Object.entries(headers); + error2.$metadata = { + httpStatusCode: response.statusCode, + requestId: findHeader(/^x-[\w-]+-request-?id$/, headerEntries), + extendedRequestId: findHeader(/^x-[\w-]+-id-2$/, headerEntries), + cfId: findHeader(/^x-[\w-]+-cf-id$/, headerEntries) + }; + } + } catch (ignored) { + } + } + throw error2; + } + }, "deserializerMiddleware"); + findHeader = /* @__PURE__ */ __name((pattern, headers) => { + return (headers.find(([k]) => { + return k.match(pattern); + }) || [void 0, void 0])[1]; + }, "findHeader"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/ProviderError.js +var ProviderError; +var init_ProviderError = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/ProviderError.js"() { + ProviderError = class _ProviderError extends Error { + static { + __name(this, "ProviderError"); + } + name = "ProviderError"; + tryNextLink; + constructor(message, options = true) { + let logger2; + let tryNextLink = true; + if (typeof options === "boolean") { + logger2 = void 0; + tryNextLink = options; + } else if (options != null && typeof options === "object") { + logger2 = options.logger; + tryNextLink = options.tryNextLink ?? true; + } + super(message); + this.tryNextLink = tryNextLink; + Object.setPrototypeOf(this, _ProviderError.prototype); + logger2?.debug?.(`@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`); + } + static from(error2, options = true) { + return Object.assign(new this(error2.message, options), error2); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/CredentialsProviderError.js +var CredentialsProviderError; +var init_CredentialsProviderError = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/CredentialsProviderError.js"() { + init_ProviderError(); + CredentialsProviderError = class _CredentialsProviderError extends ProviderError { + static { + __name(this, "CredentialsProviderError"); + } + name = "CredentialsProviderError"; + constructor(message, options = true) { + super(message, options); + Object.setPrototypeOf(this, _CredentialsProviderError.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/TokenProviderError.js +var TokenProviderError; +var init_TokenProviderError = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/TokenProviderError.js"() { + init_ProviderError(); + TokenProviderError = class _TokenProviderError extends ProviderError { + static { + __name(this, "TokenProviderError"); + } + name = "TokenProviderError"; + constructor(message, options = true) { + super(message, options); + Object.setPrototypeOf(this, _TokenProviderError.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/chain.js +var chain; +var init_chain = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/chain.js"() { + init_ProviderError(); + chain = /* @__PURE__ */ __name((...providers) => async () => { + if (providers.length === 0) { + throw new ProviderError("No providers in chain"); + } + let lastProviderError; + for (const provider of providers) { + try { + const credentials = await provider(); + return credentials; + } catch (err) { + lastProviderError = err; + if (err?.tryNextLink) { + continue; + } + throw err; + } + } + throw lastProviderError; + }, "chain"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/fromValue.js +var fromValue; +var init_fromValue = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/fromValue.js"() { + fromValue = /* @__PURE__ */ __name((staticValue) => () => Promise.resolve(staticValue), "fromValue"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/memoize.js +var memoize; +var init_memoize = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/property-provider/memoize.js"() { + memoize = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { + let resolved; + let pending; + let hasResult; + let isConstant = false; + const coalesceProvider = /* @__PURE__ */ __name(async () => { + if (!pending) { + pending = provider(); + } + try { + resolved = await pending; + hasResult = true; + isConstant = false; + } finally { + pending = void 0; + } + return resolved; + }, "coalesceProvider"); + if (isExpired === void 0) { + return async (options) => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(); + } + return resolved; + }; + } + return async (options) => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(); + } + if (isConstant) { + return resolved; + } + if (requiresRefresh && !requiresRefresh(resolved)) { + isConstant = true; + return resolved; + } + if (isExpired(resolved)) { + await coalesceProvider(); + return resolved; + } + return resolved; + }; + }, "memoize"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/booleanSelector.js +var booleanSelector; +var init_booleanSelector = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/booleanSelector.js"() { + booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) + return void 0; + if (obj[key] === "true") + return true; + if (obj[key] === "false") + return false; + throw new Error(`Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.`); + }, "booleanSelector"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/numberSelector.js +var numberSelector; +var init_numberSelector = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/numberSelector.js"() { + numberSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) + return void 0; + const numberValue = parseInt(obj[key], 10); + if (Number.isNaN(numberValue)) { + throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`); + } + return numberValue; + }, "numberSelector"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/types.js +var SelectorType; +var init_types = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/types.js"() { + (function(SelectorType2) { + SelectorType2["ENV"] = "env"; + SelectorType2["CONFIG"] = "shared config entry"; + })(SelectorType || (SelectorType = {})); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getHomeDir.js +import { homedir } from "node:os"; +import { sep } from "node:path"; +var homeDirCache, getHomeDirCacheKey, getHomeDir; +var init_getHomeDir = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getHomeDir.js"() { + homeDirCache = {}; + getHomeDirCacheKey = /* @__PURE__ */ __name(() => { + if (process && process.geteuid) { + return `${process.geteuid()}`; + } + return "DEFAULT"; + }, "getHomeDirCacheKey"); + getHomeDir = /* @__PURE__ */ __name(() => { + const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${sep}` } = process.env; + if (HOME) + return HOME; + if (USERPROFILE) + return USERPROFILE; + if (HOMEPATH) + return `${HOMEDRIVE}${HOMEPATH}`; + const homeDirCacheKey = getHomeDirCacheKey(); + if (!homeDirCache[homeDirCacheKey]) + homeDirCache[homeDirCacheKey] = homedir(); + return homeDirCache[homeDirCacheKey]; + }, "getHomeDir"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getProfileName.js +var ENV_PROFILE, DEFAULT_PROFILE, getProfileName; +var init_getProfileName = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getProfileName.js"() { + ENV_PROFILE = "AWS_PROFILE"; + DEFAULT_PROFILE = "default"; + getProfileName = /* @__PURE__ */ __name((init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, "getProfileName"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSSOTokenFilepath.js +import { createHash } from "node:crypto"; +import { join } from "node:path"; +var getSSOTokenFilepath; +var init_getSSOTokenFilepath = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSSOTokenFilepath.js"() { + init_getHomeDir(); + getSSOTokenFilepath = /* @__PURE__ */ __name((id) => { + const hasher = createHash("sha1"); + const cacheName = hasher.update(id).digest("hex"); + return join(getHomeDir(), ".aws", "sso", "cache", `${cacheName}.json`); + }, "getSSOTokenFilepath"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSSOTokenFromFile.js +import { readFile } from "node:fs/promises"; +var tokenIntercept, getSSOTokenFromFile; +var init_getSSOTokenFromFile = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSSOTokenFromFile.js"() { + init_getSSOTokenFilepath(); + tokenIntercept = {}; + getSSOTokenFromFile = /* @__PURE__ */ __name(async (id) => { + if (tokenIntercept[id]) { + return tokenIntercept[id]; + } + const ssoTokenFilepath = getSSOTokenFilepath(id); + const ssoTokenText = await readFile(ssoTokenFilepath, "utf8"); + return JSON.parse(ssoTokenText); + }, "getSSOTokenFromFile"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/constants.js +var CONFIG_PREFIX_SEPARATOR; +var init_constants = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/constants.js"() { + CONFIG_PREFIX_SEPARATOR = "."; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getConfigData.js +var import_types2, getConfigData; +var init_getConfigData = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getConfigData.js"() { + import_types2 = __toESM(require_dist_cjs()); + init_constants(); + getConfigData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); + if (indexOfSeparator === -1) { + return false; + } + return Object.values(import_types2.IniSectionType).includes(key.substring(0, indexOfSeparator)); + }).reduce((acc, [key, value]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); + const updatedKey = key.substring(0, indexOfSeparator) === import_types2.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key; + acc[updatedKey] = value; + return acc; + }, { + ...data.default && { default: data.default } + }), "getConfigData"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getConfigFilepath.js +import { join as join2 } from "node:path"; +var ENV_CONFIG_PATH, getConfigFilepath; +var init_getConfigFilepath = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getConfigFilepath.js"() { + init_getHomeDir(); + ENV_CONFIG_PATH = "AWS_CONFIG_FILE"; + getConfigFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CONFIG_PATH] || join2(getHomeDir(), ".aws", "config"), "getConfigFilepath"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getCredentialsFilepath.js +import { join as join3 } from "node:path"; +var ENV_CREDENTIALS_PATH, getCredentialsFilepath; +var init_getCredentialsFilepath = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getCredentialsFilepath.js"() { + init_getHomeDir(); + ENV_CREDENTIALS_PATH = "AWS_SHARED_CREDENTIALS_FILE"; + getCredentialsFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CREDENTIALS_PATH] || join3(getHomeDir(), ".aws", "credentials"), "getCredentialsFilepath"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/parseIni.js +var import_types3, prefixKeyRegex, profileNameBlockList, parseIni; +var init_parseIni = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/parseIni.js"() { + import_types3 = __toESM(require_dist_cjs()); + init_constants(); + prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@+.%:/]+)\2$/; + profileNameBlockList = ["__proto__", "profile __proto__"]; + parseIni = /* @__PURE__ */ __name((iniData) => { + const map3 = {}; + let currentSection; + let currentSubSection; + for (const iniLine of iniData.split(/\r?\n/)) { + const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim(); + const isSection = trimmedLine[0] === "[" && trimmedLine[trimmedLine.length - 1] === "]"; + if (isSection) { + currentSection = void 0; + currentSubSection = void 0; + const sectionName = trimmedLine.substring(1, trimmedLine.length - 1); + const matches = prefixKeyRegex.exec(sectionName); + if (matches) { + const [, prefix, , name] = matches; + if (Object.values(import_types3.IniSectionType).includes(prefix)) { + currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR); + } + } else { + currentSection = sectionName; + } + if (profileNameBlockList.includes(sectionName)) { + throw new Error(`Found invalid profile name "${sectionName}"`); + } + } else if (currentSection) { + const indexOfEqualsSign = trimmedLine.indexOf("="); + if (![0, -1].includes(indexOfEqualsSign)) { + const [name, value] = [ + trimmedLine.substring(0, indexOfEqualsSign).trim(), + trimmedLine.substring(indexOfEqualsSign + 1).trim() + ]; + if (value === "") { + currentSubSection = name; + } else { + if (currentSubSection && iniLine.trimStart() === iniLine) { + currentSubSection = void 0; + } + map3[currentSection] = map3[currentSection] || {}; + const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name; + map3[currentSection][key] = value; + } + } + } + } + return map3; + }, "parseIni"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/readFile.js +import { readFile as fsReadFile } from "node:fs/promises"; +var filePromises, fileIntercept, readFile2; +var init_readFile = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/readFile.js"() { + filePromises = {}; + fileIntercept = {}; + readFile2 = /* @__PURE__ */ __name((path, options) => { + if (fileIntercept[path] !== void 0) { + return fileIntercept[path]; + } + if (!filePromises[path] || options?.ignoreCache) { + filePromises[path] = fsReadFile(path, "utf8"); + } + return filePromises[path]; + }, "readFile"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/loadSharedConfigFiles.js +import { join as join4 } from "node:path"; +var swallowError, loadSharedConfigFiles; +var init_loadSharedConfigFiles = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/loadSharedConfigFiles.js"() { + init_getConfigData(); + init_getConfigFilepath(); + init_getCredentialsFilepath(); + init_getHomeDir(); + init_parseIni(); + init_readFile(); + init_constants(); + swallowError = /* @__PURE__ */ __name(() => ({}), "swallowError"); + loadSharedConfigFiles = /* @__PURE__ */ __name(async (init = {}) => { + const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init; + const homeDir = getHomeDir(); + const relativeHomeDirPrefix = "~/"; + let resolvedFilepath = filepath; + if (filepath.startsWith(relativeHomeDirPrefix)) { + resolvedFilepath = join4(homeDir, filepath.slice(2)); + } + let resolvedConfigFilepath = configFilepath; + if (configFilepath.startsWith(relativeHomeDirPrefix)) { + resolvedConfigFilepath = join4(homeDir, configFilepath.slice(2)); + } + const parsedFiles = await Promise.all([ + readFile2(resolvedConfigFilepath, { + ignoreCache: init.ignoreCache + }).then(parseIni).then(getConfigData).catch(swallowError), + readFile2(resolvedFilepath, { + ignoreCache: init.ignoreCache + }).then(parseIni).catch(swallowError) + ]); + return { + configFile: parsedFiles[0], + credentialsFile: parsedFiles[1] + }; + }, "loadSharedConfigFiles"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSsoSessionData.js +var import_types4, getSsoSessionData; +var init_getSsoSessionData = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSsoSessionData.js"() { + import_types4 = __toESM(require_dist_cjs()); + init_loadSharedConfigFiles(); + getSsoSessionData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => key.startsWith(import_types4.IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR)).reduce((acc, [key, value]) => ({ ...acc, [key.substring(key.indexOf(CONFIG_PREFIX_SEPARATOR) + 1)]: value }), {}), "getSsoSessionData"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/loadSsoSessionData.js +var swallowError2, loadSsoSessionData; +var init_loadSsoSessionData = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/loadSsoSessionData.js"() { + init_getConfigFilepath(); + init_getSsoSessionData(); + init_parseIni(); + init_readFile(); + swallowError2 = /* @__PURE__ */ __name(() => ({}), "swallowError"); + loadSsoSessionData = /* @__PURE__ */ __name(async (init = {}) => readFile2(init.configFilepath ?? getConfigFilepath()).then(parseIni).then(getSsoSessionData).catch(swallowError2), "loadSsoSessionData"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/mergeConfigFiles.js +var mergeConfigFiles; +var init_mergeConfigFiles = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/mergeConfigFiles.js"() { + mergeConfigFiles = /* @__PURE__ */ __name((...files) => { + const merged = {}; + for (const file of files) { + for (const [key, values] of Object.entries(file)) { + if (merged[key] !== void 0) { + Object.assign(merged[key], values); + } else { + merged[key] = values; + } + } + } + return merged; + }, "mergeConfigFiles"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/parseKnownFiles.js +var parseKnownFiles; +var init_parseKnownFiles = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/parseKnownFiles.js"() { + init_loadSharedConfigFiles(); + init_mergeConfigFiles(); + parseKnownFiles = /* @__PURE__ */ __name(async (init) => { + const parsedFiles = await loadSharedConfigFiles(init); + return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile); + }, "parseKnownFiles"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/externalDataInterceptor.js +var externalDataInterceptor; +var init_externalDataInterceptor = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/externalDataInterceptor.js"() { + init_getSSOTokenFromFile(); + init_readFile(); + externalDataInterceptor = { + getFileRecord() { + return fileIntercept; + }, + interceptFile(path, contents) { + fileIntercept[path] = Promise.resolve(contents); + }, + getTokenRecord() { + return tokenIntercept; + }, + interceptToken(id, contents) { + tokenIntercept[id] = contents; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/getSelectorName.js +function getSelectorName(functionString) { + try { + const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? [])); + constants.delete("CONFIG"); + constants.delete("CONFIG_PREFIX_SEPARATOR"); + constants.delete("ENV"); + return [...constants].join(", "); + } catch (ignored) { + return functionString; + } +} +var init_getSelectorName = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/getSelectorName.js"() { + __name(getSelectorName, "getSelectorName"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/fromEnv.js +var fromEnv; +var init_fromEnv = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/fromEnv.js"() { + init_CredentialsProviderError(); + init_getSelectorName(); + fromEnv = /* @__PURE__ */ __name((envVarSelector, options) => async () => { + try { + const config = envVarSelector(process.env, options); + if (config === void 0) { + throw new Error(); + } + return config; + } catch (e) { + throw new CredentialsProviderError(e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, { logger: options?.logger }); + } + }, "fromEnv"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/fromSharedConfigFiles.js +var fromSharedConfigFiles; +var init_fromSharedConfigFiles = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/fromSharedConfigFiles.js"() { + init_CredentialsProviderError(); + init_getProfileName(); + init_loadSharedConfigFiles(); + init_getSelectorName(); + fromSharedConfigFiles = /* @__PURE__ */ __name((configSelector, { preferredFile = "config", ...init } = {}) => async () => { + const profile = getProfileName(init); + const { configFile, credentialsFile } = await loadSharedConfigFiles(init); + const profileFromCredentials = credentialsFile[profile] || {}; + const profileFromConfig = configFile[profile] || {}; + const mergedProfile = preferredFile === "config" ? { ...profileFromCredentials, ...profileFromConfig } : { ...profileFromConfig, ...profileFromCredentials }; + try { + const cfgFile = preferredFile === "config" ? configFile : credentialsFile; + const configValue = configSelector(mergedProfile, cfgFile); + if (configValue === void 0) { + throw new Error(); + } + return configValue; + } catch (e) { + throw new CredentialsProviderError(e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, { logger: init.logger }); + } + }, "fromSharedConfigFiles"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/fromStatic.js +var isFunction, fromStatic; +var init_fromStatic = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/fromStatic.js"() { + init_fromValue(); + isFunction = /* @__PURE__ */ __name((func) => typeof func === "function", "isFunction"); + fromStatic = /* @__PURE__ */ __name((defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : fromValue(defaultValue), "fromStatic"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/configLoader.js +var loadConfig; +var init_configLoader = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/configLoader.js"() { + init_chain(); + init_memoize(); + init_fromEnv(); + init_fromSharedConfigFiles(); + init_fromStatic(); + loadConfig = /* @__PURE__ */ __name(({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => { + const { signingName, logger: logger2 } = configuration; + const envOptions = { signingName, logger: logger2 }; + return memoize(chain(fromEnv(environmentVariableSelector, envOptions), fromSharedConfigFiles(configFileSelector, configuration), fromStatic(defaultValue))); + }, "loadConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js +var ENV_USE_DUALSTACK_ENDPOINT, CONFIG_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_DUALSTACK_ENDPOINT, NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, nodeDualstackConfigSelectors; +var init_NodeUseDualstackEndpointConfigOptions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js"() { + init_booleanSelector(); + init_types(); + ENV_USE_DUALSTACK_ENDPOINT = "AWS_USE_DUALSTACK_ENDPOINT"; + CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint"; + DEFAULT_USE_DUALSTACK_ENDPOINT = false; + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG), "configFileSelector"), + default: false + }; + nodeDualstackConfigSelectors = { + environmentVariableSelector: /* @__PURE__ */ __name((env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG), "configFileSelector"), + default: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/NodeUseFipsEndpointConfigOptions.js +var ENV_USE_FIPS_ENDPOINT, CONFIG_USE_FIPS_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT, NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, nodeFipsConfigSelectors; +var init_NodeUseFipsEndpointConfigOptions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/NodeUseFipsEndpointConfigOptions.js"() { + init_booleanSelector(); + init_types(); + ENV_USE_FIPS_ENDPOINT = "AWS_USE_FIPS_ENDPOINT"; + CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint"; + DEFAULT_USE_FIPS_ENDPOINT = false; + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG), "configFileSelector"), + default: false + }; + nodeFipsConfigSelectors = { + environmentVariableSelector: /* @__PURE__ */ __name((env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG), "configFileSelector"), + default: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/middleware-stack/MiddlewareStack.js +var getAllAliases, getMiddlewareNameWithAliases, constructStack, stepWeights, priorityWeights; +var init_MiddlewareStack = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/middleware-stack/MiddlewareStack.js"() { + getAllAliases = /* @__PURE__ */ __name((name, aliases) => { + const _aliases = []; + if (name) { + _aliases.push(name); + } + if (aliases) { + for (const alias of aliases) { + _aliases.push(alias); + } + } + return _aliases; + }, "getAllAliases"); + getMiddlewareNameWithAliases = /* @__PURE__ */ __name((name, aliases) => { + return `${name || "anonymous"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(",")})` : ""}`; + }, "getMiddlewareNameWithAliases"); + constructStack = /* @__PURE__ */ __name(() => { + let absoluteEntries = []; + let relativeEntries = []; + let identifyOnResolve = false; + const entriesNameSet = /* @__PURE__ */ new Set(); + const sort = /* @__PURE__ */ __name((entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] || priorityWeights[b.priority || "normal"] - priorityWeights[a.priority || "normal"]), "sort"); + const removeByName = /* @__PURE__ */ __name((toRemove) => { + let isRemoved = false; + const filterCb = /* @__PURE__ */ __name((entry) => { + const aliases = getAllAliases(entry.name, entry.aliases); + if (aliases.includes(toRemove)) { + isRemoved = true; + for (const alias of aliases) { + entriesNameSet.delete(alias); + } + return false; + } + return true; + }, "filterCb"); + absoluteEntries = absoluteEntries.filter(filterCb); + relativeEntries = relativeEntries.filter(filterCb); + return isRemoved; + }, "removeByName"); + const removeByReference = /* @__PURE__ */ __name((toRemove) => { + let isRemoved = false; + const filterCb = /* @__PURE__ */ __name((entry) => { + if (entry.middleware === toRemove) { + isRemoved = true; + for (const alias of getAllAliases(entry.name, entry.aliases)) { + entriesNameSet.delete(alias); + } + return false; + } + return true; + }, "filterCb"); + absoluteEntries = absoluteEntries.filter(filterCb); + relativeEntries = relativeEntries.filter(filterCb); + return isRemoved; + }, "removeByReference"); + const cloneTo = /* @__PURE__ */ __name((toStack) => { + absoluteEntries.forEach((entry) => { + toStack.add(entry.middleware, { ...entry }); + }); + relativeEntries.forEach((entry) => { + toStack.addRelativeTo(entry.middleware, { ...entry }); + }); + toStack.identifyOnResolve?.(stack.identifyOnResolve()); + return toStack; + }, "cloneTo"); + const expandRelativeMiddlewareList = /* @__PURE__ */ __name((from) => { + const expandedMiddlewareList = []; + from.before.forEach((entry) => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry); + } else { + expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); + } + }); + expandedMiddlewareList.push(from); + from.after.reverse().forEach((entry) => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry); + } else { + expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); + } + }); + return expandedMiddlewareList; + }, "expandRelativeMiddlewareList"); + const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { + const normalizedAbsoluteEntries = []; + const normalizedRelativeEntries = []; + const normalizedEntriesNameMap = {}; + absoluteEntries.forEach((entry) => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + }; + for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { + normalizedEntriesNameMap[alias] = normalizedEntry; + } + normalizedAbsoluteEntries.push(normalizedEntry); + }); + relativeEntries.forEach((entry) => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + }; + for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { + normalizedEntriesNameMap[alias] = normalizedEntry; + } + normalizedRelativeEntries.push(normalizedEntry); + }); + normalizedRelativeEntries.forEach((entry) => { + if (entry.toMiddleware) { + const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware]; + if (toMiddleware === void 0) { + if (debug) { + return; + } + throw new Error(`${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}`); + } + if (entry.relation === "after") { + toMiddleware.after.push(entry); + } + if (entry.relation === "before") { + toMiddleware.before.push(entry); + } + } + }); + const mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).reduce((wholeList, expandedMiddlewareList) => { + wholeList.push(...expandedMiddlewareList); + return wholeList; + }, []); + return mainChain; + }, "getMiddlewareList"); + const stack = { + add: /* @__PURE__ */ __name((middleware, options = {}) => { + const { name, override, aliases: _aliases } = options; + const entry = { + step: "initialize", + priority: "normal", + middleware, + ...options + }; + const aliases = getAllAliases(name, _aliases); + if (aliases.length > 0) { + if (aliases.some((alias) => entriesNameSet.has(alias))) { + if (!override) + throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); + for (const alias of aliases) { + const toOverrideIndex = absoluteEntries.findIndex((entry2) => entry2.name === alias || entry2.aliases?.some((a) => a === alias)); + if (toOverrideIndex === -1) { + continue; + } + const toOverride = absoluteEntries[toOverrideIndex]; + if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) { + throw new Error(`"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware with ${entry.priority} priority in ${entry.step} step.`); + } + absoluteEntries.splice(toOverrideIndex, 1); + } + } + for (const alias of aliases) { + entriesNameSet.add(alias); + } + } + absoluteEntries.push(entry); + }, "add"), + addRelativeTo: /* @__PURE__ */ __name((middleware, options) => { + const { name, override, aliases: _aliases } = options; + const entry = { + middleware, + ...options + }; + const aliases = getAllAliases(name, _aliases); + if (aliases.length > 0) { + if (aliases.some((alias) => entriesNameSet.has(alias))) { + if (!override) + throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); + for (const alias of aliases) { + const toOverrideIndex = relativeEntries.findIndex((entry2) => entry2.name === alias || entry2.aliases?.some((a) => a === alias)); + if (toOverrideIndex === -1) { + continue; + } + const toOverride = relativeEntries[toOverrideIndex]; + if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) { + throw new Error(`"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.`); + } + relativeEntries.splice(toOverrideIndex, 1); + } + } + for (const alias of aliases) { + entriesNameSet.add(alias); + } + } + relativeEntries.push(entry); + }, "addRelativeTo"), + clone: /* @__PURE__ */ __name(() => cloneTo(constructStack()), "clone"), + use: /* @__PURE__ */ __name((plugin) => { + plugin.applyToStack(stack); + }, "use"), + remove: /* @__PURE__ */ __name((toRemove) => { + if (typeof toRemove === "string") + return removeByName(toRemove); + else + return removeByReference(toRemove); + }, "remove"), + removeByTag: /* @__PURE__ */ __name((toRemove) => { + let isRemoved = false; + const filterCb = /* @__PURE__ */ __name((entry) => { + const { tags, name, aliases: _aliases } = entry; + if (tags && tags.includes(toRemove)) { + const aliases = getAllAliases(name, _aliases); + for (const alias of aliases) { + entriesNameSet.delete(alias); + } + isRemoved = true; + return false; + } + return true; + }, "filterCb"); + absoluteEntries = absoluteEntries.filter(filterCb); + relativeEntries = relativeEntries.filter(filterCb); + return isRemoved; + }, "removeByTag"), + concat: /* @__PURE__ */ __name((from) => { + const cloned = cloneTo(constructStack()); + cloned.use(from); + cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false)); + return cloned; + }, "concat"), + applyToStack: cloneTo, + identify: /* @__PURE__ */ __name(() => { + return getMiddlewareList(true).map((mw) => { + const step = mw.step ?? mw.relation + " " + mw.toMiddleware; + return getMiddlewareNameWithAliases(mw.name, mw.aliases) + " - " + step; + }); + }, "identify"), + identifyOnResolve(toggle) { + if (typeof toggle === "boolean") + identifyOnResolve = toggle; + return identifyOnResolve; + }, + resolve: /* @__PURE__ */ __name((handler, context) => { + for (const middleware of getMiddlewareList().map((entry) => entry.middleware).reverse()) { + handler = middleware(handler, context); + } + if (identifyOnResolve) { + console.log(stack.identify()); + } + return handler; + }, "resolve") + }; + return stack; + }, "constructStack"); + stepWeights = { + initialize: 5, + serialize: 4, + build: 3, + finalizeRequest: 2, + deserialize: 1 + }; + priorityWeights = { + high: 3, + normal: 2, + low: 1 + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/invalid-dependency/invalidFunction.js +var invalidFunction; +var init_invalidFunction = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/invalid-dependency/invalidFunction.js"() { + invalidFunction = /* @__PURE__ */ __name((message) => () => { + throw new Error(message); + }, "invalidFunction"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/invalid-dependency/invalidProvider.js +var invalidProvider; +var init_invalidProvider = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/invalid-dependency/invalidProvider.js"() { + invalidProvider = /* @__PURE__ */ __name((message) => () => Promise.reject(message), "invalidProvider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/circularReplacer.js +var getCircularReplacer; +var init_circularReplacer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/circularReplacer.js"() { + getCircularReplacer = /* @__PURE__ */ __name(() => { + const seen = /* @__PURE__ */ new WeakSet(); + return (key, value) => { + if (typeof value === "object" && value !== null) { + if (seen.has(value)) { + return "[Circular]"; + } + seen.add(value); + } + return value; + }; + }, "getCircularReplacer"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/utils/sleep.js +var sleep; +var init_sleep = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/utils/sleep.js"() { + sleep = /* @__PURE__ */ __name((seconds) => { + return new Promise((resolve) => setTimeout(resolve, seconds * 1e3)); + }, "sleep"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/waiter.js +var waiterServiceDefaults, WaiterState, checkExceptions; +var init_waiter = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/waiter.js"() { + init_circularReplacer(); + waiterServiceDefaults = { + minDelay: 2, + maxDelay: 120 + }; + (function(WaiterState2) { + WaiterState2["ABORTED"] = "ABORTED"; + WaiterState2["FAILURE"] = "FAILURE"; + WaiterState2["SUCCESS"] = "SUCCESS"; + WaiterState2["RETRY"] = "RETRY"; + WaiterState2["TIMEOUT"] = "TIMEOUT"; + })(WaiterState || (WaiterState = {})); + checkExceptions = /* @__PURE__ */ __name((result) => { + if (result.state === WaiterState.ABORTED) { + const abortError = new Error(`${JSON.stringify({ + ...result, + reason: "Request was aborted" + }, getCircularReplacer())}`); + abortError.name = "AbortError"; + throw abortError; + } else if (result.state === WaiterState.TIMEOUT) { + const timeoutError = new Error(`${JSON.stringify({ + ...result, + reason: "Waiter has timed out" + }, getCircularReplacer())}`); + timeoutError.name = "TimeoutError"; + throw timeoutError; + } else if (result.state !== WaiterState.SUCCESS) { + throw new Error(`${JSON.stringify(result, getCircularReplacer())}`); + } + return result; + }, "checkExceptions"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/poller.js +var runPolling, checkWarn403, createMessageFromResponse, exponentialBackoffWithJitter, randomInRange; +var init_poller = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/poller.js"() { + init_circularReplacer(); + init_sleep(); + init_waiter(); + runPolling = /* @__PURE__ */ __name(async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => { + const observedResponses = {}; + const [minDelayMs, maxDelayMs] = [minDelay * 1e3, maxDelay * 1e3]; + let currentAttempt = 0; + const waitUntil = Date.now() + maxWaitTime * 1e3; + const warn403Time = Date.now() + 6e4; + let didWarn403 = false; + while (true) { + if (currentAttempt > 0) { + const delayMs = exponentialBackoffWithJitter(minDelayMs, maxDelayMs, currentAttempt, waitUntil); + if (abortController?.signal?.aborted || abortSignal?.aborted) { + const message = "AbortController signal aborted."; + observedResponses[message] |= 0; + observedResponses[message] += 1; + return { state: WaiterState.ABORTED, observedResponses }; + } + if (Date.now() + delayMs > waitUntil) { + return { state: WaiterState.TIMEOUT, observedResponses }; + } + await sleep(delayMs / 1e3); + } + const { state, reason } = await acceptorChecks(client, input); + if (reason) { + const message = createMessageFromResponse(reason); + observedResponses[message] |= 0; + observedResponses[message] += 1; + } + if (state !== WaiterState.RETRY) { + return { state, reason, final: reason, observedResponses }; + } + currentAttempt += 1; + if (!didWarn403 && Date.now() >= warn403Time) { + checkWarn403(observedResponses, client); + didWarn403 = true; + } + } + }, "runPolling"); + checkWarn403 = /* @__PURE__ */ __name((observedResponses = {}, client) => { + const orderedErrors = Object.keys(observedResponses); + let maxCount = 0; + let count403 = 0; + for (const response of orderedErrors) { + const n = observedResponses[response] | 0; + maxCount = Math.max(n, maxCount); + if (response.startsWith("403:")) { + count403 += n; + } + } + const clientLogger = client?.config?.logger; + const warningLogger = typeof clientLogger?.warn === "function" && !clientLogger.constructor?.name?.includes?.("NoOpLogger") ? clientLogger : console; + if (count403 >= 3 || orderedErrors[orderedErrors.length - 1]?.startsWith("403:")) { + warningLogger.warn(`@smithy/util-waiter WARN - 403 status code encountered during waiter polling.`); + } + }, "checkWarn403"); + createMessageFromResponse = /* @__PURE__ */ __name((reason) => { + const status = reason?.$response?.statusCode ?? reason?.$metadata?.httpStatusCode; + if (reason?.$responseBodyText) { + return `${status ? status + ": " : ""}Deserialization error for body: ${reason.$responseBodyText}`; + } + if (status) { + if (reason?.$response || reason?.message) { + return `${status ?? "Unknown"}: ${reason?.message}`; + } + return `${status}: OK`; + } + return String(reason?.message ?? JSON.stringify(reason, getCircularReplacer()) ?? "Unknown"); + }, "createMessageFromResponse"); + exponentialBackoffWithJitter = /* @__PURE__ */ __name((minDelayMs, maxDelayMs, attempt, waitUntil) => { + const attemptCountCeiling = Math.log(maxDelayMs / minDelayMs) / Math.log(2) + 1; + if (attempt > attemptCountCeiling) { + return maxDelayMs; + } + const delay = minDelayMs * 2 ** (attempt - 1); + const capped = Math.min(delay, maxDelayMs); + const waitFor = randomInRange(minDelayMs, capped); + if (Date.now() + waitFor > waitUntil) { + const timeRemaining = waitUntil - Date.now(); + return Math.max(0, timeRemaining - 500); + } + return waitFor; + }, "exponentialBackoffWithJitter"); + randomInRange = /* @__PURE__ */ __name((min, max) => min + Math.random() * (max - min), "randomInRange"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/utils/validate.js +var validateWaiterOptions; +var init_validate = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/utils/validate.js"() { + validateWaiterOptions = /* @__PURE__ */ __name((options) => { + if (options.maxWaitTime <= 0) { + throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`); + } else if (options.minDelay <= 0) { + throw new Error(`WaiterConfiguration.minDelay must be greater than 0`); + } else if (options.maxDelay <= 0) { + throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`); + } else if (options.maxWaitTime <= options.minDelay) { + throw new Error(`WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`); + } else if (options.maxDelay < options.minDelay) { + throw new Error(`WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`); + } + }, "validateWaiterOptions"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/createWaiter.js +var abortTimeout, createWaiter; +var init_createWaiter = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/util-waiter/createWaiter.js"() { + init_poller(); + init_validate(); + init_waiter(); + abortTimeout = /* @__PURE__ */ __name((abortSignal) => { + let onAbort; + const promise = new Promise((resolve) => { + onAbort = /* @__PURE__ */ __name(() => resolve({ state: WaiterState.ABORTED }), "onAbort"); + if (typeof abortSignal.addEventListener === "function") { + abortSignal.addEventListener("abort", onAbort); + } else { + abortSignal.onabort = onAbort; + } + }); + return { + clearListener() { + if (typeof abortSignal.removeEventListener === "function") { + abortSignal.removeEventListener("abort", onAbort); + } + }, + aborted: promise + }; + }, "abortTimeout"); + createWaiter = /* @__PURE__ */ __name(async (options, input, acceptorChecks) => { + const params = { + ...waiterServiceDefaults, + ...options + }; + validateWaiterOptions(params); + const exitConditions = [runPolling(params, input, acceptorChecks)]; + const finalize = []; + if (options.abortSignal) { + const { aborted, clearListener } = abortTimeout(options.abortSignal); + finalize.push(clearListener); + exitConditions.push(aborted); + } + if (options.abortController?.signal) { + const { aborted, clearListener } = abortTimeout(options.abortController.signal); + finalize.push(clearListener); + exitConditions.push(aborted); + } + return Promise.race(exitConditions).then((result) => { + for (const fn of finalize) { + fn(); + } + return result; + }); + }, "createWaiter"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client.js +var Client; +var init_client = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client.js"() { + init_MiddlewareStack(); + Client = class { + static { + __name(this, "Client"); + } + config; + middlewareStack = constructStack(); + initConfig; + handlers; + constructor(config) { + this.config = config; + const { protocol, protocolSettings } = config; + if (protocolSettings) { + if (typeof protocol === "function") { + config.protocol = new protocol(protocolSettings); + } + } + } + send(command, optionsOrCb, cb) { + const options = typeof optionsOrCb !== "function" ? optionsOrCb : void 0; + const callback = typeof optionsOrCb === "function" ? optionsOrCb : cb; + const useHandlerCache = options === void 0 && this.config.cacheMiddleware === true; + let handler; + if (useHandlerCache) { + if (!this.handlers) { + this.handlers = /* @__PURE__ */ new WeakMap(); + } + const handlers = this.handlers; + if (handlers.has(command.constructor)) { + handler = handlers.get(command.constructor); + } else { + handler = command.resolveMiddleware(this.middlewareStack, this.config, options); + handlers.set(command.constructor, handler); + } + } else { + delete this.handlers; + handler = command.resolveMiddleware(this.middlewareStack, this.config, options); + } + if (callback) { + handler(command).then((result) => callback(null, result.output), (err) => callback(err)).catch(() => { + }); + } else { + return handler(command).then((result) => result.output); + } + } + destroy() { + this.config?.requestHandler?.destroy?.(); + delete this.handlers; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/deref.js +var deref; +var init_deref = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/deref.js"() { + deref = /* @__PURE__ */ __name((schemaRef) => { + if (typeof schemaRef === "function") { + return schemaRef(); + } + return schemaRef; + }, "deref"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/operation.js +var operation; +var init_operation = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/operation.js"() { + operation = /* @__PURE__ */ __name((namespace, name, traits, input, output) => ({ + name, + namespace, + traits, + input, + output + }), "operation"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +var schemaDeserializationMiddleware, findHeader2; +var init_schemaDeserializationMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js"() { + init_transport(); + init_operation(); + schemaDeserializationMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => { + const { response } = await next(args); + const { operationSchema } = getSmithyContext(context); + const [, ns, n, t, i, o] = operationSchema ?? []; + try { + const parsed = await config.protocol.deserializeResponse(operation(ns, n, t, i, o), { + ...config, + ...context + }, response); + return { + response, + output: parsed + }; + } catch (error2) { + Object.defineProperty(error2, "$response", { + value: response, + enumerable: false, + writable: false, + configurable: false + }); + if (!("$metadata" in error2)) { + const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`; + try { + error2.message += "\n " + hint; + } catch (ignored) { + if (!context.logger || context.logger?.constructor?.name === "NoOpLogger") { + console.warn(hint); + } else { + context.logger?.warn?.(hint); + } + } + if (typeof error2.$responseBodyText !== "undefined") { + if (error2.$response) { + error2.$response.body = error2.$responseBodyText; + } + } + try { + if (HttpResponse.isInstance(response)) { + const { headers = {}, statusCode } = response; + const headerEntries = Object.entries(headers); + error2.$metadata = { + httpStatusCode: statusCode, + requestId: findHeader2(/^x-[\w-]+-request-?id$/, headerEntries), + extendedRequestId: findHeader2(/^x-[\w-]+-id-2$/, headerEntries), + cfId: findHeader2(/^x-[\w-]+-cf-id$/, headerEntries) + }; + } + } catch (ignored) { + } + } + throw error2; + } + }, "schemaDeserializationMiddleware"); + findHeader2 = /* @__PURE__ */ __name((pattern, headers) => { + return (headers.find(([k]) => { + return k.match(pattern); + }) || [void 0, void 0])[1]; + }, "findHeader"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js +var schemaSerializationMiddleware; +var init_schemaSerializationMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js"() { + init_transport(); + init_operation(); + schemaSerializationMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => { + const { operationSchema } = getSmithyContext(context); + const [, ns, n, t, i, o] = operationSchema ?? []; + const endpoint = context.endpointV2 ? async () => toEndpointV1(context.endpointV2) : config.endpoint; + const request = await config.protocol.serializeRequest(operation(ns, n, t, i, o), args.input, { + ...config, + ...context, + endpoint + }); + return next({ + ...args, + request + }); + }, "schemaSerializationMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js +function getSchemaSerdePlugin(config) { + return { + applyToStack: /* @__PURE__ */ __name((commandStack) => { + commandStack.add(schemaSerializationMiddleware(config), serializerMiddlewareOption); + commandStack.add(schemaDeserializationMiddleware(config), deserializerMiddlewareOption); + config.protocol.setSerdeContext(config); + }, "applyToStack") + }; +} +var deserializerMiddlewareOption, serializerMiddlewareOption; +var init_getSchemaSerdePlugin = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js"() { + init_schemaDeserializationMiddleware(); + init_schemaSerializationMiddleware(); + deserializerMiddlewareOption = { + name: "deserializerMiddleware", + step: "deserialize", + tags: ["DESERIALIZER"], + override: true + }; + serializerMiddlewareOption = { + name: "serializerMiddleware", + step: "serialize", + tags: ["SERIALIZER"], + override: true + }; + __name(getSchemaSerdePlugin, "getSchemaSerdePlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/Schema.js +var Schema; +var init_Schema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/Schema.js"() { + Schema = class { + static { + __name(this, "Schema"); + } + name; + namespace; + traits; + static assign(instance, values) { + const schema = Object.assign(instance, values); + return schema; + } + static [Symbol.hasInstance](lhs) { + const isPrototype = this.prototype.isPrototypeOf(lhs); + if (!isPrototype && typeof lhs === "object" && lhs !== null) { + const list2 = lhs; + return list2.symbol === this.symbol; + } + return isPrototype; + } + getName() { + return this.namespace + "#" + this.name; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ListSchema.js +var ListSchema, list; +var init_ListSchema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ListSchema.js"() { + init_Schema(); + ListSchema = class _ListSchema extends Schema { + static { + __name(this, "ListSchema"); + } + static symbol = /* @__PURE__ */ Symbol.for("@smithy/lis"); + valueSchema; + symbol = _ListSchema.symbol; + }; + list = /* @__PURE__ */ __name((namespace, name, traits, valueSchema) => Schema.assign(new ListSchema(), { + name, + namespace, + traits, + valueSchema + }), "list"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/MapSchema.js +var MapSchema, map; +var init_MapSchema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/MapSchema.js"() { + init_Schema(); + MapSchema = class _MapSchema extends Schema { + static { + __name(this, "MapSchema"); + } + static symbol = /* @__PURE__ */ Symbol.for("@smithy/map"); + keySchema; + valueSchema; + symbol = _MapSchema.symbol; + }; + map = /* @__PURE__ */ __name((namespace, name, traits, keySchema, valueSchema) => Schema.assign(new MapSchema(), { + name, + namespace, + traits, + keySchema, + valueSchema + }), "map"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/OperationSchema.js +var OperationSchema, op; +var init_OperationSchema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/OperationSchema.js"() { + init_Schema(); + OperationSchema = class _OperationSchema extends Schema { + static { + __name(this, "OperationSchema"); + } + static symbol = /* @__PURE__ */ Symbol.for("@smithy/ope"); + input; + output; + symbol = _OperationSchema.symbol; + }; + op = /* @__PURE__ */ __name((namespace, name, traits, input, output) => Schema.assign(new OperationSchema(), { + name, + namespace, + traits, + input, + output + }), "op"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/StructureSchema.js +var StructureSchema, struct; +var init_StructureSchema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/StructureSchema.js"() { + init_Schema(); + StructureSchema = class _StructureSchema extends Schema { + static { + __name(this, "StructureSchema"); + } + static symbol = /* @__PURE__ */ Symbol.for("@smithy/str"); + memberNames; + memberList; + symbol = _StructureSchema.symbol; + }; + struct = /* @__PURE__ */ __name((namespace, name, traits, memberNames, memberList) => Schema.assign(new StructureSchema(), { + name, + namespace, + traits, + memberNames, + memberList + }), "struct"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ErrorSchema.js +var ErrorSchema, error; +var init_ErrorSchema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ErrorSchema.js"() { + init_Schema(); + init_StructureSchema(); + ErrorSchema = class _ErrorSchema extends StructureSchema { + static { + __name(this, "ErrorSchema"); + } + static symbol = /* @__PURE__ */ Symbol.for("@smithy/err"); + ctor; + symbol = _ErrorSchema.symbol; + }; + error = /* @__PURE__ */ __name((namespace, name, traits, memberNames, memberList, _ctor) => Schema.assign(new ErrorSchema(), { + name, + namespace, + traits, + memberNames, + memberList, + ctor: null + }), "error"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +function translateTraits(indicator) { + if (typeof indicator === "object") { + return indicator; + } + indicator = indicator | 0; + if (traitsCache[indicator]) { + return traitsCache[indicator]; + } + const traits = {}; + let i = 0; + for (const trait of [ + "httpLabel", + "idempotent", + "idempotencyToken", + "sensitive", + "httpPayload", + "httpResponseCode", + "httpQueryParams" + ]) { + if ((indicator >> i++ & 1) === 1) { + traits[trait] = 1; + } + } + return traitsCache[indicator] = traits; +} +var traitsCache; +var init_translateTraits = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js"() { + traitsCache = []; + __name(translateTraits, "translateTraits"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +function member(memberSchema, memberName) { + if (memberSchema instanceof NormalizedSchema) { + return Object.assign(memberSchema, { + memberName, + _isMemberSchema: true + }); + } + const internalCtorAccess = NormalizedSchema; + return new internalCtorAccess(memberSchema, memberName); +} +var anno, simpleSchemaCacheN, simpleSchemaCacheS, NormalizedSchema, isMemberSchema, isStaticSchema; +var init_NormalizedSchema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js"() { + init_deref(); + init_translateTraits(); + anno = { + it: /* @__PURE__ */ Symbol.for("@smithy/nor-struct-it"), + ns: /* @__PURE__ */ Symbol.for("@smithy/ns") + }; + simpleSchemaCacheN = []; + simpleSchemaCacheS = {}; + NormalizedSchema = class _NormalizedSchema { + static { + __name(this, "NormalizedSchema"); + } + ref; + memberName; + static symbol = /* @__PURE__ */ Symbol.for("@smithy/nor"); + symbol = _NormalizedSchema.symbol; + name; + schema; + _isMemberSchema; + traits; + memberTraits; + normalizedTraits; + constructor(ref, memberName) { + this.ref = ref; + this.memberName = memberName; + const traitStack = []; + let _ref = ref; + let schema = ref; + this._isMemberSchema = false; + while (isMemberSchema(_ref)) { + traitStack.push(_ref[1]); + _ref = _ref[0]; + schema = deref(_ref); + this._isMemberSchema = true; + } + if (traitStack.length > 0) { + this.memberTraits = {}; + for (let i = traitStack.length - 1; i >= 0; --i) { + const traitSet = traitStack[i]; + Object.assign(this.memberTraits, translateTraits(traitSet)); + } + } else { + this.memberTraits = 0; + } + if (schema instanceof _NormalizedSchema) { + const computedMemberTraits = this.memberTraits; + Object.assign(this, schema); + this.memberTraits = Object.assign({}, computedMemberTraits, schema.getMemberTraits(), this.getMemberTraits()); + this.normalizedTraits = void 0; + this.memberName = memberName ?? schema.memberName; + return; + } + this.schema = deref(schema); + if (isStaticSchema(this.schema)) { + this.name = `${this.schema[1]}#${this.schema[2]}`; + this.traits = this.schema[3]; + } else { + this.name = this.memberName ?? String(schema); + this.traits = 0; + } + if (this._isMemberSchema && !memberName) { + throw new Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(true)} missing member name.`); + } + } + static [Symbol.hasInstance](lhs) { + const isPrototype = this.prototype.isPrototypeOf(lhs); + if (!isPrototype && typeof lhs === "object" && lhs !== null) { + const ns = lhs; + return ns.symbol === this.symbol; + } + return isPrototype; + } + static of(ref) { + const keyAble = typeof ref === "function" || typeof ref === "object" && ref !== null; + if (typeof ref === "number") { + if (simpleSchemaCacheN[ref]) { + return simpleSchemaCacheN[ref]; + } + } else if (typeof ref === "string") { + if (simpleSchemaCacheS[ref]) { + return simpleSchemaCacheS[ref]; + } + } else if (keyAble) { + if (ref[anno.ns]) { + return ref[anno.ns]; + } + } + const sc = deref(ref); + if (sc instanceof _NormalizedSchema) { + return sc; + } + if (isMemberSchema(sc)) { + const [ns2, traits] = sc; + if (ns2 instanceof _NormalizedSchema) { + Object.assign(ns2.getMergedTraits(), translateTraits(traits)); + return ns2; + } + throw new Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify(ref, null, 2)}.`); + } + const ns = new _NormalizedSchema(sc); + if (keyAble) { + return ref[anno.ns] = ns; + } + if (typeof sc === "string") { + return simpleSchemaCacheS[sc] = ns; + } + if (typeof sc === "number") { + return simpleSchemaCacheN[sc] = ns; + } + return ns; + } + getSchema() { + const sc = this.schema; + if (Array.isArray(sc) && sc[0] === 0) { + return sc[4]; + } + return sc; + } + getName(withNamespace = false) { + const { name } = this; + const short = !withNamespace && name && name.includes("#"); + return short ? name.split("#")[1] : name || void 0; + } + getMemberName() { + return this.memberName; + } + isMemberSchema() { + return this._isMemberSchema; + } + isListSchema() { + const sc = this.getSchema(); + return typeof sc === "number" ? sc >= 64 && sc < 128 : sc[0] === 1; + } + isMapSchema() { + const sc = this.getSchema(); + return typeof sc === "number" ? sc >= 128 && sc <= 255 : sc[0] === 2; + } + isStructSchema() { + const sc = this.getSchema(); + if (typeof sc !== "object") { + return false; + } + const id = sc[0]; + return id === 3 || id === -3 || id === 4; + } + isUnionSchema() { + const sc = this.getSchema(); + if (typeof sc !== "object") { + return false; + } + return sc[0] === 4; + } + isBlobSchema() { + const sc = this.getSchema(); + return sc === 21 || sc === 42; + } + isTimestampSchema() { + const sc = this.getSchema(); + return typeof sc === "number" && sc >= 4 && sc <= 7; + } + isUnitSchema() { + return this.getSchema() === "unit"; + } + isDocumentSchema() { + return this.getSchema() === 15; + } + isStringSchema() { + return this.getSchema() === 0; + } + isBooleanSchema() { + return this.getSchema() === 2; + } + isNumericSchema() { + return this.getSchema() === 1; + } + isBigIntegerSchema() { + return this.getSchema() === 17; + } + isBigDecimalSchema() { + return this.getSchema() === 19; + } + isStreaming() { + const { streaming } = this.getMergedTraits(); + return !!streaming || this.getSchema() === 42; + } + isIdempotencyToken() { + return !!this.getMergedTraits().idempotencyToken; + } + getMergedTraits() { + return this.normalizedTraits ?? (this.normalizedTraits = { + ...this.getOwnTraits(), + ...this.getMemberTraits() + }); + } + getMemberTraits() { + return translateTraits(this.memberTraits); + } + getOwnTraits() { + return translateTraits(this.traits); + } + getKeySchema() { + const [isDoc, isMap] = [this.isDocumentSchema(), this.isMapSchema()]; + if (!isDoc && !isMap) { + throw new Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(true)}`); + } + const schema = this.getSchema(); + const memberSchema = isDoc ? 15 : schema[4] ?? 0; + return member([memberSchema, 0], "key"); + } + getValueSchema() { + const sc = this.getSchema(); + const [isDoc, isMap, isList] = [this.isDocumentSchema(), this.isMapSchema(), this.isListSchema()]; + const memberSchema = typeof sc === "number" ? 63 & sc : sc && typeof sc === "object" && (isMap || isList) ? sc[3 + sc[0]] : isDoc ? 15 : void 0; + if (memberSchema != null) { + return member([memberSchema, 0], isMap ? "value" : "member"); + } + throw new Error(`@smithy/core/schema - ${this.getName(true)} has no value member.`); + } + getMemberSchema(memberName) { + const struct2 = this.getSchema(); + if (this.isStructSchema() && struct2[4].includes(memberName)) { + const i = struct2[4].indexOf(memberName); + const memberSchema = struct2[5][i]; + return member(isMemberSchema(memberSchema) ? memberSchema : [memberSchema, 0], memberName); + } + if (this.isDocumentSchema()) { + return member([15, 0], memberName); + } + throw new Error(`@smithy/core/schema - ${this.getName(true)} has no member=${memberName}.`); + } + getMemberSchemas() { + const buffer = {}; + try { + for (const [k, v] of this.structIterator()) { + buffer[k] = v; + } + } catch (ignored) { + } + return buffer; + } + getEventStreamMember() { + if (this.isStructSchema()) { + for (const [memberName, memberSchema] of this.structIterator()) { + if (memberSchema.isStreaming() && memberSchema.isStructSchema()) { + return memberName; + } + } + } + return ""; + } + *structIterator() { + if (this.isUnitSchema()) { + return; + } + if (!this.isStructSchema()) { + throw new Error("@smithy/core/schema - cannot iterate non-struct schema."); + } + const struct2 = this.getSchema(); + const z = struct2[4].length; + let it = struct2[anno.it]; + if (it && z === it.length) { + yield* it; + return; + } + it = Array(z); + for (let i = 0; i < z; ++i) { + const k = struct2[4][i]; + const v = member([struct2[5][i], 0], k); + yield it[i] = [k, v]; + } + struct2[anno.it] = it; + } + }; + __name(member, "member"); + isMemberSchema = /* @__PURE__ */ __name((sc) => Array.isArray(sc) && sc.length === 2, "isMemberSchema"); + isStaticSchema = /* @__PURE__ */ __name((sc) => Array.isArray(sc) && sc.length >= 5, "isStaticSchema"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/SimpleSchema.js +var SimpleSchema, sim, simAdapter; +var init_SimpleSchema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/SimpleSchema.js"() { + init_Schema(); + SimpleSchema = class _SimpleSchema extends Schema { + static { + __name(this, "SimpleSchema"); + } + static symbol = /* @__PURE__ */ Symbol.for("@smithy/sim"); + schemaRef; + symbol = _SimpleSchema.symbol; + }; + sim = /* @__PURE__ */ __name((namespace, name, schemaRef, traits) => Schema.assign(new SimpleSchema(), { + name, + namespace, + traits, + schemaRef + }), "sim"); + simAdapter = /* @__PURE__ */ __name((namespace, name, traits, schemaRef) => Schema.assign(new SimpleSchema(), { + name, + namespace, + traits, + schemaRef + }), "simAdapter"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/sentinels.js +var SCHEMA; +var init_sentinels = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/sentinels.js"() { + SCHEMA = { + BLOB: 21, + STREAMING_BLOB: 42, + BOOLEAN: 2, + STRING: 0, + NUMERIC: 1, + BIG_INTEGER: 17, + BIG_DECIMAL: 19, + DOCUMENT: 15, + TIMESTAMP_DEFAULT: 4, + TIMESTAMP_DATE_TIME: 5, + TIMESTAMP_HTTP_DATE: 6, + TIMESTAMP_EPOCH_SECONDS: 7, + LIST_MODIFIER: 64, + MAP_MODIFIER: 128 + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +var TypeRegistry; +var init_TypeRegistry = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js"() { + TypeRegistry = class _TypeRegistry { + static { + __name(this, "TypeRegistry"); + } + namespace; + schemas; + exceptions; + static registries = /* @__PURE__ */ new Map(); + constructor(namespace, schemas = /* @__PURE__ */ new Map(), exceptions = /* @__PURE__ */ new Map()) { + this.namespace = namespace; + this.schemas = schemas; + this.exceptions = exceptions; + if (!_TypeRegistry.registries.has(namespace)) { + _TypeRegistry.registries.set(namespace, this); + } + } + static for(namespace) { + return _TypeRegistry.registries.get(namespace) ?? new _TypeRegistry(namespace); + } + copyFrom(other) { + const { schemas, exceptions } = this; + for (const [k, v] of other.schemas) { + if (!schemas.has(k)) { + schemas.set(k, v); + } + } + for (const [k, v] of other.exceptions) { + if (!exceptions.has(k)) { + exceptions.set(k, v); + } + } + } + register(shapeId, schema) { + const qualifiedName = this.normalizeShapeId(shapeId); + for (const r of [this, _TypeRegistry.for(qualifiedName.split("#")[0])]) { + if (!r.schemas.has(qualifiedName)) { + r.schemas.set(qualifiedName, schema); + } + } + } + getSchema(shapeId) { + const id = this.normalizeShapeId(shapeId); + if (!this.schemas.has(id)) { + if (!shapeId.includes("#")) { + const suffix = "#" + shapeId; + const candidates = []; + for (const [shapeId2, schema] of this.schemas.entries()) { + if (shapeId2.endsWith(suffix)) { + candidates.push(schema); + } + } + if (candidates.length === 1) { + return candidates[0]; + } + } + throw new Error(`@smithy/core/schema - schema not found for ${id}`); + } + return this.schemas.get(id); + } + registerError(es, ctor) { + const $error = es; + const ns = $error[1]; + const qualifiedName = ns + "#" + $error[2]; + if (!ctor.hasOwnProperty?.("shapeId")) { + ctor.shapeId = qualifiedName; + } + for (const r of [this, _TypeRegistry.for(ns)]) { + if (!r.schemas.has(qualifiedName) && !r.exceptions.has($error)) { + r.schemas.set(qualifiedName, $error); + r.exceptions.set($error, ctor); + } + } + } + getErrorCtor(es) { + const $error = es; + if (this.exceptions.has($error)) { + return this.exceptions.get($error); + } + const registry = _TypeRegistry.for($error[1]); + return registry.exceptions.get($error); + } + getBaseException() { + for (const exceptionKey of this.exceptions.keys()) { + if (Array.isArray(exceptionKey)) { + const [, ns, name] = exceptionKey; + const id = ns + "#" + name; + if (id.startsWith("smithy.ts.sdk.synthetic.") && id.endsWith("ServiceException")) { + return exceptionKey; + } + } + } + return void 0; + } + find(predicate) { + for (const schema of this.schemas.values()) { + if (predicate(schema)) { + return schema; + } + } + return void 0; + } + clear() { + this.schemas.clear(); + this.exceptions.clear(); + } + normalizeShapeId(shapeId) { + if (shapeId.includes("#")) { + return shapeId; + } + return this.namespace + "#" + shapeId; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/index.js +var schema_exports = {}; +__export(schema_exports, { + ErrorSchema: () => ErrorSchema, + ListSchema: () => ListSchema, + MapSchema: () => MapSchema, + NormalizedSchema: () => NormalizedSchema, + OperationSchema: () => OperationSchema, + SCHEMA: () => SCHEMA, + Schema: () => Schema, + SimpleSchema: () => SimpleSchema, + StructureSchema: () => StructureSchema, + TypeRegistry: () => TypeRegistry, + deref: () => deref, + deserializerMiddlewareOption: () => deserializerMiddlewareOption, + error: () => error, + getSchemaSerdePlugin: () => getSchemaSerdePlugin, + isStaticSchema: () => isStaticSchema, + list: () => list, + map: () => map, + op: () => op, + operation: () => operation, + serializerMiddlewareOption: () => serializerMiddlewareOption, + sim: () => sim, + simAdapter: () => simAdapter, + simpleSchemaCacheN: () => simpleSchemaCacheN, + simpleSchemaCacheS: () => simpleSchemaCacheS, + struct: () => struct, + traitsCache: () => traitsCache, + translateTraits: () => translateTraits +}); +var init_schema = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/schema/index.js"() { + init_deref(); + init_getSchemaSerdePlugin(); + init_ListSchema(); + init_MapSchema(); + init_OperationSchema(); + init_operation(); + init_ErrorSchema(); + init_NormalizedSchema(); + init_Schema(); + init_SimpleSchema(); + init_StructureSchema(); + init_sentinels(); + init_translateTraits(); + init_TypeRegistry(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/schemaLogFilter.js +function schemaLogFilter(schema, data) { + if (data == null) { + return data; + } + const ns = NormalizedSchema.of(schema); + if (ns.getMergedTraits().sensitive) { + return SENSITIVE_STRING; + } + if (ns.isListSchema()) { + const isSensitive = !!ns.getValueSchema().getMergedTraits().sensitive; + if (isSensitive) { + return SENSITIVE_STRING; + } + } else if (ns.isMapSchema()) { + const isSensitive = !!ns.getKeySchema().getMergedTraits().sensitive || !!ns.getValueSchema().getMergedTraits().sensitive; + if (isSensitive) { + return SENSITIVE_STRING; + } + } else if (ns.isStructSchema() && typeof data === "object") { + const object = data; + const newObject = {}; + for (const [member2, memberNs] of ns.structIterator()) { + if (object[member2] != null) { + newObject[member2] = schemaLogFilter(memberNs, object[member2]); + } + } + return newObject; + } + return data; +} +var SENSITIVE_STRING; +var init_schemaLogFilter = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/schemaLogFilter.js"() { + init_schema(); + SENSITIVE_STRING = "***SensitiveInformation***"; + __name(schemaLogFilter, "schemaLogFilter"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/command.js +var import_types7, Command, ClassBuilder; +var init_command = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/command.js"() { + import_types7 = __toESM(require_dist_cjs()); + init_MiddlewareStack(); + init_schemaLogFilter(); + Command = class { + static { + __name(this, "Command"); + } + middlewareStack = constructStack(); + schema; + static classBuilder() { + return new ClassBuilder(); + } + resolveMiddlewareWithContext(clientStack, configuration, options, { middlewareFn, clientName, commandName, inputFilterSensitiveLog, outputFilterSensitiveLog, smithyContext, additionalContext, CommandCtor }) { + for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) { + this.middlewareStack.use(mw); + } + const stack = clientStack.concat(this.middlewareStack); + const { logger: logger2 } = configuration; + const additionalSmithyContext = additionalContext[import_types7.SMITHY_CONTEXT_KEY]; + const handlerExecutionContext = { + logger: logger2, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + ...additionalContext, + [import_types7.SMITHY_CONTEXT_KEY]: { + ...additionalSmithyContext, + commandInstance: this, + ...smithyContext, + ...options?.metricsRecorder === void 0 ? {} : { metricsRecorder: options.metricsRecorder } + } + }; + const { requestHandler } = configuration; + let requestOptions = options ?? {}; + if (requestOptions.metricsRecorder) { + requestOptions = { ...requestOptions }; + delete requestOptions.metricsRecorder; + } + if (smithyContext.eventStream) { + requestOptions = { + isEventStream: true, + ...requestOptions + }; + } + return stack.resolve((request) => requestHandler.handle(request.request, requestOptions), handlerExecutionContext); + } + }; + ClassBuilder = class { + static { + __name(this, "ClassBuilder"); + } + _init = /* @__PURE__ */ __name(() => { + }, "_init"); + _ep = {}; + _middlewareFn = /* @__PURE__ */ __name(() => [], "_middlewareFn"); + _commandName = ""; + _clientName = ""; + _additionalContext = {}; + _smithyContext = {}; + _inputFilterSensitiveLog = void 0; + _outputFilterSensitiveLog = void 0; + _serializer = null; + _deserializer = null; + _operationSchema; + init(cb) { + this._init = cb; + } + ep(endpointParameterInstructions) { + this._ep = endpointParameterInstructions; + return this; + } + m(middlewareSupplier) { + this._middlewareFn = middlewareSupplier; + return this; + } + s(service, operation2, smithyContext = {}) { + this._smithyContext = { + service, + operation: operation2, + ...smithyContext + }; + return this; + } + c(additionalContext = {}) { + this._additionalContext = additionalContext; + return this; + } + n(clientName, commandName) { + this._clientName = clientName; + this._commandName = commandName; + return this; + } + f(inputFilter = (_) => _, outputFilter = (_) => _) { + this._inputFilterSensitiveLog = inputFilter; + this._outputFilterSensitiveLog = outputFilter; + return this; + } + ser(serializer) { + this._serializer = serializer; + return this; + } + de(deserializer) { + this._deserializer = deserializer; + return this; + } + sc(operation2) { + this._operationSchema = operation2; + this._smithyContext.operationSchema = operation2; + return this; + } + build() { + const closure = this; + let CommandRef; + return CommandRef = class extends Command { + static { + __name(this, "CommandRef"); + } + input; + static getEndpointParameterInstructions() { + return closure._ep; + } + constructor(...[input]) { + super(); + this.input = input ?? {}; + closure._init(this); + this.schema = closure._operationSchema; + } + resolveMiddleware(stack, configuration, options) { + const op2 = closure._operationSchema; + const input = op2?.[4] ?? op2?.input; + const output = op2?.[5] ?? op2?.output; + return this.resolveMiddlewareWithContext(stack, configuration, options, { + CommandCtor: CommandRef, + middlewareFn: closure._middlewareFn, + clientName: closure._clientName, + commandName: closure._commandName, + inputFilterSensitiveLog: closure._inputFilterSensitiveLog ?? (op2 ? schemaLogFilter.bind(null, input) : (_) => _), + outputFilterSensitiveLog: closure._outputFilterSensitiveLog ?? (op2 ? schemaLogFilter.bind(null, output) : (_) => _), + smithyContext: closure._smithyContext, + additionalContext: closure._additionalContext + }); + } + serialize = closure._serializer; + deserialize = closure._deserializer; + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/constants.js +var SENSITIVE_STRING2; +var init_constants2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/constants.js"() { + SENSITIVE_STRING2 = "***SensitiveInformation***"; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/create-aggregated-client.js +var createAggregatedClient; +var init_create_aggregated_client = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/create-aggregated-client.js"() { + createAggregatedClient = /* @__PURE__ */ __name((commands, Client2, options) => { + for (const [command, CommandCtor] of Object.entries(commands)) { + const methodImpl = /* @__PURE__ */ __name(async function(args, optionsOrCb, cb) { + const command2 = new CommandCtor(args); + if (typeof optionsOrCb === "function") { + this.send(command2, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") + throw new Error(`Expected http options but got ${typeof optionsOrCb}`); + this.send(command2, optionsOrCb || {}, cb); + } else { + return this.send(command2, optionsOrCb); + } + }, "methodImpl"); + const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, ""); + Client2.prototype[methodName] = methodImpl; + } + const { paginators = {}, waiters = {} } = options ?? {}; + for (const [paginatorName, paginatorFn] of Object.entries(paginators)) { + if (Client2.prototype[paginatorName] === void 0) { + Client2.prototype[paginatorName] = function(commandInput = {}, paginationConfiguration, ...rest) { + return paginatorFn({ + ...paginationConfiguration, + client: this + }, commandInput, ...rest); + }; + } + } + for (const [waiterName, waiterFn] of Object.entries(waiters)) { + if (Client2.prototype[waiterName] === void 0) { + Client2.prototype[waiterName] = async function(commandInput = {}, waiterConfiguration, ...rest) { + let config = waiterConfiguration; + if (typeof waiterConfiguration === "number") { + config = { + maxWaitTime: waiterConfiguration + }; + } + return waiterFn({ + ...config, + client: this + }, commandInput, ...rest); + }; + } + } + }, "createAggregatedClient"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/exceptions.js +var ServiceException, decorateServiceException; +var init_exceptions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/exceptions.js"() { + ServiceException = class _ServiceException extends Error { + static { + __name(this, "ServiceException"); + } + static shapeId = "smithy.ts.sdk.synthetic.nonamespace.client#ServiceException"; + $fault; + $response; + $retryable; + $metadata; + constructor(options) { + super(options.message); + Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype); + this.name = options.name; + this.$fault = options.$fault; + this.$metadata = options.$metadata; + } + static isInstance(value) { + if (!value) + return false; + const candidate = value; + return _ServiceException.prototype.isPrototypeOf(candidate) || Boolean(candidate.$fault) && Boolean(candidate.$metadata) && (candidate.$fault === "client" || candidate.$fault === "server"); + } + static [Symbol.hasInstance](instance) { + if (!instance) + return false; + const candidate = instance; + if (this === _ServiceException) { + return _ServiceException.isInstance(instance); + } + if (_ServiceException.isInstance(instance)) { + if (this.prototype.isPrototypeOf(instance)) { + return true; + } + const targetId = Object.prototype.hasOwnProperty.call(this, "shapeId") ? this.shapeId : void 0; + let candidateHasShapeId = false; + if (targetId) { + let proto = Object.getPrototypeOf(candidate); + while (proto && proto !== Object.prototype) { + const ctor = proto.constructor; + const candidateId = ctor !== _ServiceException && Object.prototype.hasOwnProperty.call(ctor, "shapeId") ? ctor?.shapeId : void 0; + if (candidateId) { + candidateHasShapeId = true; + if (candidateId === targetId) { + return true; + } + } + proto = Object.getPrototypeOf(proto); + } + } + if (targetId && candidateHasShapeId) { + return false; + } + const targetName = this.name; + if (targetName && targetName.length >= 6) { + if (candidate.name === targetName) { + return true; + } + let proto = Object.getPrototypeOf(candidate); + while (proto && proto !== Object.prototype) { + const ctorName = proto.constructor?.name; + if (ctorName && ctorName !== "Error" && ctorName === targetName) { + return true; + } + proto = Object.getPrototypeOf(proto); + } + } + } + return false; + } + }; + decorateServiceException = /* @__PURE__ */ __name((exception, additions = {}) => { + Object.entries(additions).filter(([, v]) => v !== void 0).forEach(([k, v]) => { + if (exception[k] == void 0 || exception[k] === "") { + exception[k] = v; + } + }); + const message = exception.message || exception.Message || "UnknownError"; + exception.message = message; + delete exception.Message; + return exception; + }, "decorateServiceException"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/default-error-handler.js +var throwDefaultError, withBaseException, deserializeMetadata; +var init_default_error_handler = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/default-error-handler.js"() { + init_exceptions(); + throwDefaultError = /* @__PURE__ */ __name(({ output, parsedBody, exceptionCtor, errorCode }) => { + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : void 0; + const response = new exceptionCtor({ + name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || "UnknownError", + $fault: "client", + $metadata + }); + throw decorateServiceException(response, parsedBody); + }, "throwDefaultError"); + withBaseException = /* @__PURE__ */ __name((ExceptionCtor) => { + return ({ output, parsedBody, errorCode }) => { + throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode }); + }; + }, "withBaseException"); + deserializeMetadata = /* @__PURE__ */ __name((output) => ({ + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"] + }), "deserializeMetadata"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/defaults-mode.js +var loadConfigsForDefaultMode; +var init_defaults_mode = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/defaults-mode.js"() { + loadConfigsForDefaultMode = /* @__PURE__ */ __name((mode) => { + switch (mode) { + case "standard": + return { + retryMode: "standard", + connectionTimeout: 3100 + }; + case "in-region": + return { + retryMode: "standard", + connectionTimeout: 1100 + }; + case "cross-region": + return { + retryMode: "standard", + connectionTimeout: 3100 + }; + case "mobile": + return { + retryMode: "standard", + connectionTimeout: 3e4 + }; + default: + return {}; + } + }, "loadConfigsForDefaultMode"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/emitWarningIfUnsupportedVersion.js +var warningEmitted, emitWarningIfUnsupportedVersion; +var init_emitWarningIfUnsupportedVersion = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/emitWarningIfUnsupportedVersion.js"() { + warningEmitted = false; + emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => { + if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf("."))) < 16) { + warningEmitted = true; + } + }, "emitWarningIfUnsupportedVersion"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/checksum.js +var import_types8, knownAlgorithms, getChecksumConfiguration, resolveChecksumRuntimeConfig; +var init_checksum = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/checksum.js"() { + init_transport(); + import_types8 = __toESM(require_dist_cjs()); + knownAlgorithms = Object.values(import_types8.AlgorithmId); + getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + const checksumAlgorithms = []; + for (const id in import_types8.AlgorithmId) { + if (!hasOwn(import_types8.AlgorithmId, id)) + continue; + const algorithmId = import_types8.AlgorithmId[id]; + if (runtimeConfig[algorithmId] === void 0) { + continue; + } + checksumAlgorithms.push({ + algorithmId: /* @__PURE__ */ __name(() => algorithmId, "algorithmId"), + checksumConstructor: /* @__PURE__ */ __name(() => runtimeConfig[algorithmId], "checksumConstructor") + }); + } + for (const [id, ChecksumCtor] of Object.entries(runtimeConfig.checksumAlgorithms ?? {})) { + checksumAlgorithms.push({ + algorithmId: /* @__PURE__ */ __name(() => id, "algorithmId"), + checksumConstructor: /* @__PURE__ */ __name(() => ChecksumCtor, "checksumConstructor") + }); + } + return { + addChecksumAlgorithm(algo) { + runtimeConfig.checksumAlgorithms = runtimeConfig.checksumAlgorithms ?? {}; + const id = algo.algorithmId(); + const ctor = algo.checksumConstructor(); + if (knownAlgorithms.includes(id)) { + runtimeConfig.checksumAlgorithms[id.toUpperCase()] = ctor; + } else { + runtimeConfig.checksumAlgorithms[id] = ctor; + } + checksumAlgorithms.push(algo); + }, + checksumAlgorithms() { + return checksumAlgorithms; + } + }; + }, "getChecksumConfiguration"); + resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { + const runtimeConfig = {}; + clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { + const id = checksumAlgorithm.algorithmId(); + if (knownAlgorithms.includes(id)) { + runtimeConfig[id] = checksumAlgorithm.checksumConstructor(); + } + }); + return runtimeConfig; + }, "resolveChecksumRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/retry.js +var getRetryConfiguration, resolveRetryRuntimeConfig; +var init_retry = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/retry.js"() { + getRetryConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + return { + setRetryStrategy(retryStrategy) { + runtimeConfig.retryStrategy = retryStrategy; + }, + retryStrategy() { + return runtimeConfig.retryStrategy; + } + }; + }, "getRetryConfiguration"); + resolveRetryRuntimeConfig = /* @__PURE__ */ __name((retryStrategyConfiguration) => { + const runtimeConfig = {}; + runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy(); + return runtimeConfig; + }, "resolveRetryRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/defaultExtensionConfiguration.js +var getDefaultExtensionConfiguration, getDefaultClientConfiguration, resolveDefaultRuntimeConfig; +var init_defaultExtensionConfiguration = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/defaultExtensionConfiguration.js"() { + init_checksum(); + init_retry(); + getDefaultExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig)); + }, "getDefaultExtensionConfiguration"); + getDefaultClientConfiguration = getDefaultExtensionConfiguration; + resolveDefaultRuntimeConfig = /* @__PURE__ */ __name((config) => { + return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config)); + }, "resolveDefaultRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/get-array-if-single-item.js +var getArrayIfSingleItem; +var init_get_array_if_single_item = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/get-array-if-single-item.js"() { + getArrayIfSingleItem = /* @__PURE__ */ __name((mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray], "getArrayIfSingleItem"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/get-value-from-text-node.js +var getValueFromTextNode; +var init_get_value_from_text_node = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/get-value-from-text-node.js"() { + init_transport(); + getValueFromTextNode = /* @__PURE__ */ __name((obj) => { + const textNodeName = "#text"; + for (const key in obj) { + if (!hasOwn(obj, key)) + continue; + if (obj[key][textNodeName] !== void 0) { + obj[key] = obj[key][textNodeName]; + } else if (typeof obj[key] === "object" && obj[key] !== null) { + obj[key] = getValueFromTextNode(obj[key]); + } + } + return obj; + }, "getValueFromTextNode"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/is-serializable-header-value.js +var isSerializableHeaderValue; +var init_is_serializable_header_value = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/is-serializable-header-value.js"() { + isSerializableHeaderValue = /* @__PURE__ */ __name((value) => { + return value != null; + }, "isSerializableHeaderValue"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/NoOpLogger.js +var NoOpLogger; +var init_NoOpLogger = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/NoOpLogger.js"() { + NoOpLogger = class { + static { + __name(this, "NoOpLogger"); + } + trace() { + } + debug() { + } + info() { + } + warn() { + } + error() { + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/object-mapping.js +function map2(arg0, arg1, arg2) { + let target; + let filter; + let instructions; + if (typeof arg1 === "undefined" && typeof arg2 === "undefined") { + target = {}; + instructions = arg0; + } else { + target = arg0; + if (typeof arg1 === "function") { + filter = arg1; + instructions = arg2; + return mapWithFilter(target, filter, instructions); + } else { + instructions = arg1; + } + } + for (const key in instructions) { + if (!hasOwn(instructions, key)) + continue; + if (!Array.isArray(instructions[key])) { + target[key] = instructions[key]; + continue; + } + applyInstruction(target, null, instructions, key); + } + return target; +} +var convertMap, take, mapWithFilter, applyInstruction, nonNullish, pass; +var init_object_mapping = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/object-mapping.js"() { + init_transport(); + __name(map2, "map"); + convertMap = /* @__PURE__ */ __name((target) => { + const output = {}; + for (const [k, v] of Object.entries(target || {})) { + output[k] = [, v]; + } + return output; + }, "convertMap"); + take = /* @__PURE__ */ __name((source, instructions) => { + const out = {}; + for (const key in instructions) { + if (!hasOwn(instructions, key)) + continue; + applyInstruction(out, source, instructions, key); + } + return out; + }, "take"); + mapWithFilter = /* @__PURE__ */ __name((target, filter, instructions) => { + return map2(target, Object.entries(instructions).reduce((_instructions, [key, value]) => { + if (Array.isArray(value)) { + _instructions[key] = value; + } else { + if (typeof value === "function") { + _instructions[key] = [filter, value()]; + } else { + _instructions[key] = [filter, value]; + } + } + return _instructions; + }, {})); + }, "mapWithFilter"); + applyInstruction = /* @__PURE__ */ __name((target, source, instructions, targetKey) => { + if (source !== null) { + let instruction = instructions[targetKey]; + if (typeof instruction === "function") { + instruction = [, instruction]; + } + const [filter2 = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction; + if (typeof filter2 === "function" && filter2(source[sourceKey]) || typeof filter2 !== "function" && !!filter2) { + target[targetKey] = valueFn(source[sourceKey]); + } + return; + } + let [filter, value] = instructions[targetKey]; + if (typeof value === "function") { + let _value; + const defaultFilterPassed = filter === void 0 && (_value = value()) != null; + const customFilterPassed = typeof filter === "function" && !!filter(void 0) || typeof filter !== "function" && !!filter; + if (defaultFilterPassed) { + target[targetKey] = _value; + } else if (customFilterPassed) { + target[targetKey] = value(); + } + } else { + const defaultFilterPassed = filter === void 0 && value != null; + const customFilterPassed = typeof filter === "function" && !!filter(value) || typeof filter !== "function" && !!filter; + if (defaultFilterPassed || customFilterPassed) { + target[targetKey] = value; + } + } + }, "applyInstruction"); + nonNullish = /* @__PURE__ */ __name((_) => _ != null, "nonNullish"); + pass = /* @__PURE__ */ __name((_) => _, "pass"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/ser-utils.js +var serializeFloat, serializeDateTime; +var init_ser_utils = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/ser-utils.js"() { + serializeFloat = /* @__PURE__ */ __name((value) => { + if (value !== value) { + return "NaN"; + } + switch (value) { + case Infinity: + return "Infinity"; + case -Infinity: + return "-Infinity"; + default: + return value; + } + }, "serializeFloat"); + serializeDateTime = /* @__PURE__ */ __name((date2) => date2.toISOString().replace(".000Z", "Z"), "serializeDateTime"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/serde-json.js +var _json; +var init_serde_json = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/serde-json.js"() { + init_transport(); + _json = /* @__PURE__ */ __name((obj) => { + if (obj == null) { + return {}; + } + if (Array.isArray(obj)) { + return obj.filter((_) => _ != null).map(_json); + } + if (typeof obj === "object") { + const target = {}; + for (const key in obj) { + if (!hasOwn(obj, key)) + continue; + if (obj[key] == null) { + continue; + } + target[key] = _json(obj[key]); + } + return target; + } + return obj; + }, "_json"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client-command-builder.js +function makeBuilder(common, service, name, ep) { + return /* @__PURE__ */ __name(function makeCommand(added, plugins, op2, $, smithyContext = {}) { + const epMerged = Object.assign({}, common, added); + return Command.classBuilder().ep(epMerged).m(function(CommandCtor, clientStack, config, options) { + const list2 = plugins.call(this, CommandCtor, clientStack, config, options); + list2.unshift(ep(config, CommandCtor.getEndpointParameterInstructions())); + return list2; + }).s(service, op2, smithyContext).n(name, op2.charAt(0).toUpperCase() + op2.slice(1) + "Command").sc($).build(); + }, "makeCommand"); +} +var init_client_command_builder = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client-command-builder.js"() { + init_command(); + __name(makeBuilder, "makeBuilder"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/index.js +var client_exports = {}; +__export(client_exports, { + AlgorithmId: () => import_types8.AlgorithmId, + Client: () => Client, + Command: () => Command, + NoOpLogger: () => NoOpLogger, + SENSITIVE_STRING: () => SENSITIVE_STRING2, + ServiceException: () => ServiceException, + WaiterState: () => WaiterState, + _json: () => _json, + checkExceptions: () => checkExceptions, + constructStack: () => constructStack, + convertMap: () => convertMap, + createAggregatedClient: () => createAggregatedClient, + createWaiter: () => createWaiter, + decorateServiceException: () => decorateServiceException, + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + getArrayIfSingleItem: () => getArrayIfSingleItem, + getChecksumConfiguration: () => getChecksumConfiguration, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + getDefaultExtensionConfiguration: () => getDefaultExtensionConfiguration, + getRetryConfiguration: () => getRetryConfiguration, + getSmithyContext: () => getSmithyContext, + getValueFromTextNode: () => getValueFromTextNode, + invalidFunction: () => invalidFunction, + invalidProvider: () => invalidProvider, + isSerializableHeaderValue: () => isSerializableHeaderValue, + loadConfigsForDefaultMode: () => loadConfigsForDefaultMode, + makeBuilder: () => makeBuilder, + map: () => map2, + normalizeProvider: () => normalizeProvider, + resolveChecksumRuntimeConfig: () => resolveChecksumRuntimeConfig, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig, + resolveRetryRuntimeConfig: () => resolveRetryRuntimeConfig, + schemaLogFilter: () => schemaLogFilter, + serializeDateTime: () => serializeDateTime, + serializeFloat: () => serializeFloat, + take: () => take, + throwDefaultError: () => throwDefaultError, + waiterServiceDefaults: () => waiterServiceDefaults, + withBaseException: () => withBaseException +}); +var init_client2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/client/index.js"() { + init_MiddlewareStack(); + init_transport(); + init_transport(); + init_invalidFunction(); + init_invalidProvider(); + init_createWaiter(); + init_waiter(); + init_client(); + init_command(); + init_constants2(); + init_create_aggregated_client(); + init_default_error_handler(); + init_defaults_mode(); + init_emitWarningIfUnsupportedVersion(); + init_exceptions(); + init_defaultExtensionConfiguration(); + init_checksum(); + init_retry(); + init_get_array_if_single_item(); + init_get_value_from_text_node(); + init_is_serializable_header_value(); + init_NoOpLogger(); + init_object_mapping(); + init_schemaLogFilter(); + init_ser_utils(); + init_serde_json(); + init_client_command_builder(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/resolveCustomEndpointsConfig.js +var resolveCustomEndpointsConfig; +var init_resolveCustomEndpointsConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/resolveCustomEndpointsConfig.js"() { + init_client2(); + resolveCustomEndpointsConfig = /* @__PURE__ */ __name((input) => { + const { tls, endpoint, urlParser, useDualstackEndpoint } = input; + return Object.assign(input, { + tls: tls ?? true, + endpoint: normalizeProvider(typeof endpoint === "string" ? urlParser(endpoint) : endpoint), + isCustomEndpoint: true, + useDualstackEndpoint: normalizeProvider(useDualstackEndpoint ?? false) + }); + }, "resolveCustomEndpointsConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/utils/getEndpointFromRegion.js +var getEndpointFromRegion; +var init_getEndpointFromRegion = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/utils/getEndpointFromRegion.js"() { + getEndpointFromRegion = /* @__PURE__ */ __name(async (input) => { + const { tls = true } = input; + const region = await input.region(); + const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/); + if (!dnsHostRegex.test(region)) { + throw new Error("Invalid region in client config"); + } + const useDualstackEndpoint = await input.useDualstackEndpoint(); + const useFipsEndpoint = await input.useFipsEndpoint(); + const { hostname } = await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint }) ?? {}; + if (!hostname) { + throw new Error("Cannot resolve hostname from client config"); + } + return input.urlParser(`${tls ? "https:" : "http:"}//${hostname}`); + }, "getEndpointFromRegion"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/resolveEndpointsConfig.js +var resolveEndpointsConfig; +var init_resolveEndpointsConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/endpointsConfig/resolveEndpointsConfig.js"() { + init_client2(); + init_getEndpointFromRegion(); + resolveEndpointsConfig = /* @__PURE__ */ __name((input) => { + const useDualstackEndpoint = normalizeProvider(input.useDualstackEndpoint ?? false); + const { endpoint, useFipsEndpoint, urlParser, tls } = input; + return Object.assign(input, { + tls: tls ?? true, + endpoint: endpoint ? normalizeProvider(typeof endpoint === "string" ? urlParser(endpoint) : endpoint) : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }), + isCustomEndpoint: !!endpoint, + useDualstackEndpoint + }); + }, "resolveEndpointsConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/constants.js +var AWS_EXECUTION_ENV, AWS_REGION_ENV, AWS_DEFAULT_REGION_ENV, ENV_IMDS_DISABLED, DEFAULTS_MODE_OPTIONS, IMDS_REGION_PATH, IMDS_TOKEN_PATH, X_AWS_EC2_METADATA_TOKEN, X_AWS_EC2_METADATA_TOKEN_TTL; +var init_constants3 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/constants.js"() { + AWS_EXECUTION_ENV = "AWS_EXECUTION_ENV"; + AWS_REGION_ENV = "AWS_REGION"; + AWS_DEFAULT_REGION_ENV = "AWS_DEFAULT_REGION"; + ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; + DEFAULTS_MODE_OPTIONS = ["in-region", "cross-region", "mobile", "standard", "legacy"]; + IMDS_REGION_PATH = "/latest/meta-data/placement/region"; + IMDS_TOKEN_PATH = "/latest/api/token"; + X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token"; + X_AWS_EC2_METADATA_TOKEN_TTL = "x-aws-ec2-metadata-token-ttl-seconds"; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.js +var TIMEOUT_MS, NEG_CACHE_TTL_MS, negativeCacheUntil, getInstanceMetadataRegion, cacheNegativeAndReturnUndefined, resolveImdsEndpoint, imdsRequest; +var init_getInstanceMetadataRegion = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.js"() { + init_constants3(); + TIMEOUT_MS = 1e3; + NEG_CACHE_TTL_MS = 6e4; + negativeCacheUntil = 0; + getInstanceMetadataRegion = /* @__PURE__ */ __name(async () => { + if (process.env[ENV_IMDS_DISABLED]) { + return void 0; + } + if (Date.now() < negativeCacheUntil) { + return void 0; + } + try { + const endpoint = resolveImdsEndpoint(); + const token = (await imdsRequest({ + ...endpoint, + path: IMDS_TOKEN_PATH, + method: "PUT", + headers: { + [X_AWS_EC2_METADATA_TOKEN_TTL]: "21600" + } + })).toString(); + const region = (await imdsRequest({ + ...endpoint, + path: IMDS_REGION_PATH, + method: "GET", + headers: { + [X_AWS_EC2_METADATA_TOKEN]: token + } + })).toString().trim(); + return region || cacheNegativeAndReturnUndefined(); + } catch { + return cacheNegativeAndReturnUndefined(); + } + }, "getInstanceMetadataRegion"); + cacheNegativeAndReturnUndefined = /* @__PURE__ */ __name(() => { + negativeCacheUntil = Date.now() + NEG_CACHE_TTL_MS; + return void 0; + }, "cacheNegativeAndReturnUndefined"); + resolveImdsEndpoint = /* @__PURE__ */ __name(() => { + const envEndpoint = process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT; + if (envEndpoint) { + const url = new URL(envEndpoint); + return { + hostname: url.hostname.replace(/^\[(.+)]$/, "$1"), + port: url.port ? Number(url.port) : void 0 + }; + } + if (process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE === "IPv6") { + return { hostname: "fd00:ec2::254" }; + } + return { hostname: "169.254.169.254" }; + }, "resolveImdsEndpoint"); + imdsRequest = /* @__PURE__ */ __name(async (options) => { + const { request } = await import("node:http"); + return new Promise((resolve, reject) => { + const req = request({ + hostname: options.hostname, + port: options.port, + path: options.path, + method: options.method, + headers: options.headers, + timeout: TIMEOUT_MS, + signal: AbortSignal.timeout(TIMEOUT_MS) + }); + req.on("error", (err) => { + reject(err); + req.destroy(); + }); + req.on("timeout", () => { + reject(new Error("TimeoutError from instance metadata service")); + req.destroy(); + }); + req.on("response", (res) => { + const { statusCode = 400 } = res; + if (statusCode < 200 || statusCode >= 300) { + reject(Object.assign(new Error("Error response received from instance metadata service"), { statusCode })); + req.destroy(); + return; + } + const chunks = []; + res.on("data", (chunk) => chunks.push(chunk)); + res.on("end", () => { + resolve(Buffer.concat(chunks)); + req.destroy(); + }); + }); + req.end(); + }); + }, "imdsRequest"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/config.js +var REGION_ENV_NAME, REGION_INI_NAME, NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS; +var init_config = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/config.js"() { + init_getInstanceMetadataRegion(); + REGION_ENV_NAME = "AWS_REGION"; + REGION_INI_NAME = "region"; + NODE_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], "configFileSelector"), + default: /* @__PURE__ */ __name(async () => { + const region = await getInstanceMetadataRegion(); + if (region) { + return region; + } + throw new Error("Region is missing"); + }, "default") + }; + NODE_REGION_CONFIG_FILE_OPTIONS = { + preferredFile: "credentials" + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/checkRegion.js +var validRegions, checkRegion; +var init_checkRegion = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/checkRegion.js"() { + init_transport(); + validRegions = /* @__PURE__ */ new Set(); + checkRegion = /* @__PURE__ */ __name((region, check = isValidHostLabel) => { + if (!validRegions.has(region) && !check(region)) { + if (region === "*") { + console.warn(`@smithy/config-resolver WARN - Please use the caller region instead of "*". See "sigv4a" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.`); + } else { + throw new Error(`Region not accepted: region="${region}" is not a valid hostname component.`); + } + } else { + validRegions.add(region); + } + }, "checkRegion"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/isFipsRegion.js +var isFipsRegion; +var init_isFipsRegion = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/isFipsRegion.js"() { + isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getRealRegion.js +var getRealRegion; +var init_getRealRegion = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getRealRegion.js"() { + init_isFipsRegion(); + getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/resolveRegionConfig.js +var resolveRegionConfig; +var init_resolveRegionConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/resolveRegionConfig.js"() { + init_checkRegion(); + init_getRealRegion(); + init_isFipsRegion(); + resolveRegionConfig = /* @__PURE__ */ __name((input) => { + const { region, useFipsEndpoint } = input; + if (!region) { + throw new Error("Region is missing"); + } + return Object.assign(input, { + region: /* @__PURE__ */ __name(async () => { + const providedRegion = typeof region === "function" ? await region() : region; + const realRegion = getRealRegion(providedRegion); + checkRegion(realRegion); + return realRegion; + }, "region"), + useFipsEndpoint: /* @__PURE__ */ __name(async () => { + const providedRegion = typeof region === "string" ? region : await region(); + if (isFipsRegion(providedRegion)) { + return true; + } + return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); + }, "useFipsEndpoint") + }); + }, "resolveRegionConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getHostnameFromVariants.js +var getHostnameFromVariants; +var init_getHostnameFromVariants = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getHostnameFromVariants.js"() { + getHostnameFromVariants = /* @__PURE__ */ __name((variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find(({ tags }) => useFipsEndpoint === tags.includes("fips") && useDualstackEndpoint === tags.includes("dualstack"))?.hostname, "getHostnameFromVariants"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getResolvedHostname.js +var getResolvedHostname; +var init_getResolvedHostname = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getResolvedHostname.js"() { + getResolvedHostname = /* @__PURE__ */ __name((resolvedRegion, { regionHostname, partitionHostname }) => regionHostname ? regionHostname : partitionHostname ? partitionHostname.replace("{region}", resolvedRegion) : void 0, "getResolvedHostname"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getResolvedPartition.js +var getResolvedPartition; +var init_getResolvedPartition = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getResolvedPartition.js"() { + getResolvedPartition = /* @__PURE__ */ __name((region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? "aws", "getResolvedPartition"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getResolvedSigningRegion.js +var getResolvedSigningRegion; +var init_getResolvedSigningRegion = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getResolvedSigningRegion.js"() { + getResolvedSigningRegion = /* @__PURE__ */ __name((hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { + if (signingRegion) { + return signingRegion; + } else if (useFipsEndpoint) { + const regionRegexJs = regionRegex.replace("\\\\", "\\").replace(/^\^/g, "\\.").replace(/\$$/g, "\\."); + const regionRegexmatchArray = hostname.match(regionRegexJs); + if (regionRegexmatchArray) { + return regionRegexmatchArray[0].slice(1, -1); + } + } + }, "getResolvedSigningRegion"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getRegionInfo.js +var getRegionInfo; +var init_getRegionInfo = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionInfo/getRegionInfo.js"() { + init_getHostnameFromVariants(); + init_getResolvedHostname(); + init_getResolvedPartition(); + init_getResolvedSigningRegion(); + getRegionInfo = /* @__PURE__ */ __name((region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash }) => { + const partition = getResolvedPartition(region, { partitionHash }); + const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region; + const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint }; + const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions); + const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions); + const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname }); + if (hostname === void 0) { + throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`); + } + const signingRegion = getResolvedSigningRegion(hostname, { + signingRegion: regionHash[resolvedRegion]?.signingRegion, + regionRegex: partitionHash[partition].regionRegex, + useFipsEndpoint + }); + return { + partition, + signingService, + hostname, + ...signingRegion && { signingRegion }, + ...regionHash[resolvedRegion]?.signingService && { + signingService: regionHash[resolvedRegion].signingService + } + }; + }, "getRegionInfo"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/defaultsModeConfig.js +var AWS_DEFAULTS_MODE_ENV, AWS_DEFAULTS_MODE_CONFIG, NODE_DEFAULTS_MODE_CONFIG_OPTIONS; +var init_defaultsModeConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/defaultsModeConfig.js"() { + AWS_DEFAULTS_MODE_ENV = "AWS_DEFAULTS_MODE"; + AWS_DEFAULTS_MODE_CONFIG = "defaults_mode"; + NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env) => { + return env[AWS_DEFAULTS_MODE_ENV]; + }, "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => { + return profile[AWS_DEFAULTS_MODE_CONFIG]; + }, "configFileSelector"), + default: "legacy" + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/resolveDefaultsModeConfig.js +var resolveDefaultsModeConfig, resolveNodeDefaultsModeAuto, inferPhysicalRegion; +var init_resolveDefaultsModeConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/resolveDefaultsModeConfig.js"() { + init_config(); + init_getInstanceMetadataRegion(); + init_configLoader(); + init_memoize(); + init_constants3(); + init_defaultsModeConfig(); + resolveDefaultsModeConfig = /* @__PURE__ */ __name(({ region = loadConfig(NODE_REGION_CONFIG_OPTIONS), defaultsMode = loadConfig(NODE_DEFAULTS_MODE_CONFIG_OPTIONS) } = {}) => memoize(async () => { + const mode = typeof defaultsMode === "function" ? await defaultsMode() : defaultsMode; + switch (mode?.toLowerCase()) { + case "auto": + return resolveNodeDefaultsModeAuto(region); + case "in-region": + case "cross-region": + case "mobile": + case "standard": + case "legacy": + return Promise.resolve(mode?.toLocaleLowerCase()); + case void 0: + return Promise.resolve("legacy"); + default: + throw new Error(`Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(", ")}, got ${mode}`); + } + }), "resolveDefaultsModeConfig"); + resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name(async (clientRegion) => { + if (clientRegion) { + const resolvedRegion = typeof clientRegion === "function" ? await clientRegion() : clientRegion; + const inferredRegion = await inferPhysicalRegion(); + if (!inferredRegion) { + return "standard"; + } + if (resolvedRegion === inferredRegion) { + return "in-region"; + } else { + return "cross-region"; + } + } + return "standard"; + }, "resolveNodeDefaultsModeAuto"); + inferPhysicalRegion = /* @__PURE__ */ __name(async () => { + if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) { + return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV]; + } + return getInstanceMetadataRegion(); + }, "inferPhysicalRegion"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/index.js +var config_exports = {}; +__export(config_exports, { + CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, + CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, + CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, + CredentialsProviderError: () => CredentialsProviderError, + DEFAULT_PROFILE: () => DEFAULT_PROFILE, + DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, + DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, + ENV_PROFILE: () => ENV_PROFILE, + ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, + ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + ProviderError: () => ProviderError, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + SelectorType: () => SelectorType, + TokenProviderError: () => TokenProviderError, + booleanSelector: () => booleanSelector, + chain: () => chain, + externalDataInterceptor: () => externalDataInterceptor, + fromStatic: () => fromStatic, + fromValue: () => fromValue, + getHomeDir: () => getHomeDir, + getProfileName: () => getProfileName, + getRegionInfo: () => getRegionInfo, + getSSOTokenFilepath: () => getSSOTokenFilepath, + getSSOTokenFromFile: () => getSSOTokenFromFile, + loadConfig: () => loadConfig, + loadSharedConfigFiles: () => loadSharedConfigFiles, + loadSsoSessionData: () => loadSsoSessionData, + memoize: () => memoize, + nodeDualstackConfigSelectors: () => nodeDualstackConfigSelectors, + nodeFipsConfigSelectors: () => nodeFipsConfigSelectors, + numberSelector: () => numberSelector, + parseKnownFiles: () => parseKnownFiles, + readFile: () => readFile2, + resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, + resolveDefaultsModeConfig: () => resolveDefaultsModeConfig, + resolveEndpointsConfig: () => resolveEndpointsConfig, + resolveRegionConfig: () => resolveRegionConfig +}); +var init_config2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/config/index.js"() { + init_ProviderError(); + init_CredentialsProviderError(); + init_TokenProviderError(); + init_chain(); + init_fromValue(); + init_memoize(); + init_booleanSelector(); + init_numberSelector(); + init_types(); + init_getHomeDir(); + init_getProfileName(); + init_getSSOTokenFilepath(); + init_getSSOTokenFromFile(); + init_constants(); + init_loadSharedConfigFiles(); + init_loadSsoSessionData(); + init_parseKnownFiles(); + init_externalDataInterceptor(); + init_readFile(); + init_configLoader(); + init_fromStatic(); + init_NodeUseDualstackEndpointConfigOptions(); + init_NodeUseFipsEndpointConfigOptions(); + init_resolveCustomEndpointsConfig(); + init_resolveEndpointsConfig(); + init_config(); + init_resolveRegionConfig(); + init_getRegionInfo(); + init_resolveDefaultsModeConfig(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointUrlConfig.js +var ENV_ENDPOINT_URL, CONFIG_ENDPOINT_URL, getEndpointUrlConfig; +var init_getEndpointUrlConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointUrlConfig.js"() { + init_config2(); + ENV_ENDPOINT_URL = "AWS_ENDPOINT_URL"; + CONFIG_ENDPOINT_URL = "endpoint_url"; + getEndpointUrlConfig = /* @__PURE__ */ __name((serviceId) => ({ + environmentVariableSelector: /* @__PURE__ */ __name((env) => { + const serviceSuffixParts = serviceId.split(" ").map((w) => w.toUpperCase()); + const serviceEndpointUrl = env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join("_")]; + if (serviceEndpointUrl) + return serviceEndpointUrl; + const endpointUrl = env[ENV_ENDPOINT_URL]; + if (endpointUrl) + return endpointUrl; + return void 0; + }, "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile, config) => { + if (profile.services) { + const servicesSectionKey = ["services", profile.services].join(CONFIG_PREFIX_SEPARATOR); + if (!config || !config[servicesSectionKey]) { + throw new Error(`The services section "${profile.services}" specified in the profile is not present in the shared configuration file.`); + } + const servicesSection = config[servicesSectionKey]; + const servicePrefixParts = serviceId.split(" ").map((w) => w.toLowerCase()); + const endpointUrl2 = servicesSection[[servicePrefixParts.join("_"), CONFIG_ENDPOINT_URL].join(CONFIG_PREFIX_SEPARATOR)]; + if (endpointUrl2) + return endpointUrl2; + } + const endpointUrl = profile[CONFIG_ENDPOINT_URL]; + if (endpointUrl) + return endpointUrl; + return void 0; + }, "configFileSelector"), + default: void 0 + }), "getEndpointUrlConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getIgnoreConfiguredEndpointUrls.js +var ENV_IGNORE_CONFIGURED_ENDPOINT_URLS, CONFIG_IGNORE_CONFIGURED_ENDPOINT_URLS, ignoreConfiguredEndpointUrlsConfigSelectors; +var init_getIgnoreConfiguredEndpointUrls = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getIgnoreConfiguredEndpointUrls.js"() { + init_config2(); + ENV_IGNORE_CONFIGURED_ENDPOINT_URLS = "AWS_IGNORE_CONFIGURED_ENDPOINT_URLS"; + CONFIG_IGNORE_CONFIGURED_ENDPOINT_URLS = "ignore_configured_endpoint_urls"; + ignoreConfiguredEndpointUrlsConfigSelectors = { + environmentVariableSelector: /* @__PURE__ */ __name((env) => booleanSelector(env, ENV_IGNORE_CONFIGURED_ENDPOINT_URLS, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, CONFIG_IGNORE_CONFIGURED_ENDPOINT_URLS, SelectorType.CONFIG), "configFileSelector"), + default: false + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromConfig.js +var getEndpointFromConfig; +var init_getEndpointFromConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromConfig.js"() { + init_config2(); + init_getEndpointUrlConfig(); + init_getIgnoreConfiguredEndpointUrls(); + getEndpointFromConfig = /* @__PURE__ */ __name(async (serviceId) => { + const ignore = await loadConfig(ignoreConfiguredEndpointUrlsConfigSelectors)(); + if (ignore) { + return void 0; + } + return loadConfig(getEndpointUrlConfig(serviceId ?? ""))(); + }, "getEndpointFromConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/service-customizations/s3.js +var resolveParamsForS3, DOMAIN_PATTERN, IP_ADDRESS_PATTERN, DOTS_PATTERN, isDnsCompatibleBucketName, isArnBucketName; +var init_s3 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/service-customizations/s3.js"() { + resolveParamsForS3 = /* @__PURE__ */ __name(async (endpointParams) => { + const bucket = endpointParams?.Bucket || ""; + if (typeof endpointParams.Bucket === "string") { + endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent("#")).replace(/\?/g, encodeURIComponent("?")); + } + if (isArnBucketName(bucket)) { + if (endpointParams.ForcePathStyle === true) { + throw new Error("Path-style addressing cannot be used with ARN buckets"); + } + } else if (!isDnsCompatibleBucketName(bucket) || bucket.indexOf(".") !== -1 && !String(endpointParams.Endpoint).startsWith("http:") || bucket.toLowerCase() !== bucket || bucket.length < 3) { + endpointParams.ForcePathStyle = true; + } + if (endpointParams.DisableMultiRegionAccessPoints) { + endpointParams.disableMultiRegionAccessPoints = true; + endpointParams.DisableMRAP = true; + } + return endpointParams; + }, "resolveParamsForS3"); + DOMAIN_PATTERN = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/; + IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; + DOTS_PATTERN = /\.\./; + isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), "isDnsCompatibleBucketName"); + isArnBucketName = /* @__PURE__ */ __name((bucketName) => { + const [arn, partition, service, , , bucket] = bucketName.split(":"); + const isArn = arn === "arn" && bucketName.split(":").length >= 6; + const isValidArn = Boolean(isArn && partition && service && bucket); + if (isArn && !isValidArn) { + throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`); + } + return isValidArn; + }, "isArnBucketName"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/service-customizations/index.js +var init_service_customizations = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/service-customizations/index.js"() { + init_s3(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/createConfigValueProvider.js +var createConfigValueProvider; +var init_createConfigValueProvider = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/createConfigValueProvider.js"() { + createConfigValueProvider = /* @__PURE__ */ __name((configKey, canonicalEndpointParamKey, config, isClientContextParam = false) => { + const configProvider = /* @__PURE__ */ __name(async () => { + let configValue; + if (isClientContextParam) { + const clientContextParams = config.clientContextParams; + const nestedValue = clientContextParams?.[configKey]; + configValue = nestedValue ?? config[configKey] ?? config[canonicalEndpointParamKey]; + } else { + configValue = config[configKey] ?? config[canonicalEndpointParamKey]; + } + if (typeof configValue === "function") { + return configValue(); + } + return configValue; + }, "configProvider"); + if (configKey === "credentialScope" || canonicalEndpointParamKey === "CredentialScope") { + return async () => { + const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; + const configValue = credentials?.credentialScope ?? credentials?.CredentialScope; + return configValue; + }; + } + if (configKey === "accountId" || canonicalEndpointParamKey === "AccountId") { + return async () => { + const credentials = typeof config.credentials === "function" ? await config.credentials() : config.credentials; + const configValue = credentials?.accountId ?? credentials?.AccountId; + return configValue; + }; + } + if (configKey === "endpoint" || canonicalEndpointParamKey === "endpoint") { + return async () => { + if (config.isCustomEndpoint === false) { + return void 0; + } + const endpoint = await configProvider(); + if (endpoint && typeof endpoint === "object") { + if ("url" in endpoint) { + return endpoint.url.href; + } + if ("hostname" in endpoint) { + const { protocol, hostname, port, path } = endpoint; + return `${protocol}//${hostname}${port ? ":" + port : ""}${path}`; + } + } + return endpoint; + }; + } + return configProvider; + }, "createConfigValueProvider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/toEndpointV1.js +var init_toEndpointV12 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/toEndpointV1.js"() { + init_transport(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromInstructions.js +function bindGetEndpointFromInstructions(getEndpointFromConfig2) { + return async (commandInput, instructionsSupplier, clientConfig, context) => { + if (!clientConfig.isCustomEndpoint && !clientConfig.ignoreConfiguredEndpointUrls) { + let endpointFromConfig; + if (clientConfig.serviceConfiguredEndpoint) { + endpointFromConfig = await clientConfig.serviceConfiguredEndpoint(); + } else { + endpointFromConfig = await getEndpointFromConfig2(clientConfig.serviceId); + } + if (endpointFromConfig) { + clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig)); + clientConfig.isCustomEndpoint = true; + context?.logger?.debug?.(`@smithy/core/endpoints - resolved endpoint from config: ${endpointFromConfig}`); + } + } + const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig); + if (typeof clientConfig.endpointProvider !== "function") { + throw new Error("config.endpointProvider is not set."); + } + const endpoint = clientConfig.endpointProvider(endpointParams, context); + if (clientConfig.isCustomEndpoint && clientConfig.endpoint) { + const customEndpoint = await clientConfig.endpoint(); + if (customEndpoint?.headers) { + endpoint.headers ??= {}; + for (const [name, value] of Object.entries(customEndpoint.headers)) { + endpoint.headers[name] = Array.isArray(value) ? value : [value]; + } + } + } + return endpoint; + }; +} +var resolveParams; +var init_getEndpointFromInstructions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromInstructions.js"() { + init_service_customizations(); + init_createConfigValueProvider(); + init_toEndpointV12(); + __name(bindGetEndpointFromInstructions, "bindGetEndpointFromInstructions"); + resolveParams = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig) => { + const endpointParams = {}; + const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {}; + for (const [name, instruction] of Object.entries(instructions)) { + switch (instruction.type) { + case "staticContextParams": + endpointParams[name] = instruction.value; + break; + case "contextParams": + endpointParams[name] = commandInput[instruction.name]; + break; + case "clientContextParams": + case "builtInParams": + endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig, instruction.type !== "builtInParams")(); + break; + case "operationContextParams": + endpointParams[name] = instruction.get(commandInput); + break; + default: + throw new Error("Unrecognized endpoint parameter instruction: " + JSON.stringify(instruction)); + } + } + if (Object.keys(instructions).length === 0) { + Object.assign(endpointParams, clientConfig); + } + if (String(clientConfig.serviceId).toLowerCase() === "s3") { + await resolveParamsForS3(endpointParams); + } + return endpointParams; + }, "resolveParams"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/endpointMiddleware.js +function setFeature(context, feature, value) { + if (!context.__smithy_context) { + context.__smithy_context = { features: {} }; + } else if (!context.__smithy_context.features) { + context.__smithy_context.features = {}; + } + context.__smithy_context.features[feature] = value; +} +function bindEndpointMiddleware(getEndpointFromConfig2) { + const getEndpointFromInstructions2 = bindGetEndpointFromInstructions(getEndpointFromConfig2); + return ({ config, instructions }) => { + return (next, context) => async (args) => { + if (config.isCustomEndpoint) { + setFeature(context, "ENDPOINT_OVERRIDE", "N"); + } + const endpoint = await getEndpointFromInstructions2(args.input, { + getEndpointParameterInstructions() { + return instructions; + } + }, { ...config }, context); + context.endpointV2 = endpoint; + context.authSchemes = endpoint.properties?.authSchemes; + const authScheme = context.authSchemes?.[0]; + if (authScheme) { + context["signing_region"] = authScheme.signingRegion; + context["signing_service"] = authScheme.signingName; + const smithyContext = getSmithyContext(context); + const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption; + if (httpAuthOption) { + httpAuthOption.signingProperties = Object.assign(httpAuthOption.signingProperties || {}, { + signing_region: authScheme.signingRegion, + signingRegion: authScheme.signingRegion, + signing_service: authScheme.signingName, + signingName: authScheme.signingName, + signingRegionSet: authScheme.signingRegionSet + }, authScheme.properties); + } + } + return next({ + ...args + }); + }; + }; +} +var init_endpointMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/endpointMiddleware.js"() { + init_transport(); + init_getEndpointFromInstructions(); + __name(setFeature, "setFeature"); + __name(bindEndpointMiddleware, "bindEndpointMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/getEndpointPlugin.js +function bindGetEndpointPlugin(getEndpointFromConfig2) { + const endpointMiddleware2 = bindEndpointMiddleware(getEndpointFromConfig2); + return (config, instructions) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(endpointMiddleware2({ + config, + instructions + }), endpointMiddlewareOptions); + }, "applyToStack") + }); +} +var serializerMiddlewareOption2, endpointMiddlewareOptions; +var init_getEndpointPlugin = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/getEndpointPlugin.js"() { + init_endpointMiddleware(); + serializerMiddlewareOption2 = { + name: "serializerMiddleware", + step: "serialize", + tags: ["SERIALIZER"], + override: true + }; + endpointMiddlewareOptions = { + step: "serialize", + tags: ["ENDPOINT_PARAMETERS", "ENDPOINT_V2", "ENDPOINT"], + name: "endpointV2Middleware", + override: true, + relation: "before", + toMiddleware: serializerMiddlewareOption2.name + }; + __name(bindGetEndpointPlugin, "bindGetEndpointPlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/resolveEndpointConfig.js +function bindResolveEndpointConfig(getEndpointFromConfig2) { + return (input) => { + const tls = input.tls ?? true; + const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input; + const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : void 0; + const isCustomEndpoint = !!endpoint; + const resolvedConfig = Object.assign(input, { + endpoint: customEndpointProvider, + tls, + isCustomEndpoint, + useDualstackEndpoint: normalizeProvider(useDualstackEndpoint ?? false), + useFipsEndpoint: normalizeProvider(useFipsEndpoint ?? false), + ignoreConfiguredEndpointUrls: !!input.ignoreConfiguredEndpointUrls + }); + let configuredEndpointPromise = void 0; + resolvedConfig.serviceConfiguredEndpoint = async () => { + if (input.serviceId && !configuredEndpointPromise) { + configuredEndpointPromise = getEndpointFromConfig2(input.serviceId); + } + return configuredEndpointPromise; + }; + return resolvedConfig; + }; +} +var init_resolveEndpointConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/resolveEndpointConfig.js"() { + init_transport(); + init_toEndpointV12(); + __name(bindResolveEndpointConfig, "bindResolveEndpointConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/bdd/BinaryDecisionDiagram.js +var BinaryDecisionDiagram; +var init_BinaryDecisionDiagram = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/bdd/BinaryDecisionDiagram.js"() { + BinaryDecisionDiagram = class _BinaryDecisionDiagram { + static { + __name(this, "BinaryDecisionDiagram"); + } + nodes; + root; + conditions; + results; + constructor(bdd, root, conditions, results) { + this.nodes = bdd; + this.root = root; + this.conditions = conditions; + this.results = results; + } + static from(bdd, root, conditions, results) { + return new _BinaryDecisionDiagram(bdd, root, conditions, results); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js +var EndpointCache; +var init_EndpointCache = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js"() { + EndpointCache = class { + static { + __name(this, "EndpointCache"); + } + capacity; + data = /* @__PURE__ */ new Map(); + parameters = []; + constructor({ size, params }) { + this.capacity = size ?? 50; + if (params) { + this.parameters = params; + } + } + get(endpointParams, resolver) { + const key = this.hash(endpointParams); + if (key === false) { + return resolver(); + } + if (!this.data.has(key)) { + if (this.data.size > this.capacity + 10) { + const keys = this.data.keys(); + let i = 0; + while (true) { + const { value, done } = keys.next(); + this.data.delete(value); + if (done || ++i > 10) { + break; + } + } + } + this.data.set(key, resolver()); + } + return this.data.get(key); + } + size() { + return this.data.size; + } + hash(endpointParams) { + let buffer = ""; + const { parameters } = this; + if (parameters.length === 0) { + return false; + } + for (const param of parameters) { + const raw = endpointParams[param]; + const val = raw == null ? "\0" : String(raw); + if (val.includes("|;")) { + return false; + } + buffer += val + "|;"; + } + return buffer; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/types/EndpointError.js +var EndpointError; +var init_EndpointError = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/types/EndpointError.js"() { + EndpointError = class extends Error { + static { + __name(this, "EndpointError"); + } + constructor(message) { + super(message); + this.name = "EndpointError"; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/types/index.js +var init_types2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/types/index.js"() { + init_EndpointError(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/debugId.js +var debugId; +var init_debugId = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/debugId.js"() { + debugId = "endpoints"; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/toDebugString.js +function toDebugString(input) { + if (typeof input !== "object" || input == null) { + return input; + } + if ("ref" in input) { + return `$${toDebugString(input.ref)}`; + } + if ("fn" in input) { + return `${input.fn}(${(input.argv || []).map(toDebugString).join(", ")})`; + } + return JSON.stringify(input, null, 2); +} +var init_toDebugString = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/toDebugString.js"() { + __name(toDebugString, "toDebugString"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/index.js +var init_debug = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/index.js"() { + init_debugId(); + init_toDebugString(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/customEndpointFunctions.js +var customEndpointFunctions; +var init_customEndpointFunctions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/customEndpointFunctions.js"() { + customEndpointFunctions = {}; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/booleanEquals.js +var booleanEquals; +var init_booleanEquals = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/booleanEquals.js"() { + booleanEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "booleanEquals"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/coalesce.js +function coalesce(...args) { + for (const arg of args) { + if (arg != null) { + return arg; + } + } + return void 0; +} +var init_coalesce = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/coalesce.js"() { + __name(coalesce, "coalesce"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/getAttrPathList.js +var getAttrPathList; +var init_getAttrPathList = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/getAttrPathList.js"() { + init_types2(); + getAttrPathList = /* @__PURE__ */ __name((path) => { + const parts = path.split("."); + const pathList = []; + for (const part of parts) { + const squareBracketIndex = part.indexOf("["); + if (squareBracketIndex !== -1) { + if (part.indexOf("]") !== part.length - 1) { + throw new EndpointError(`Path: '${path}' does not end with ']'`); + } + const arrayIndex = part.slice(squareBracketIndex + 1, -1); + if (Number.isNaN(parseInt(arrayIndex))) { + throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`); + } + if (squareBracketIndex !== 0) { + pathList.push(part.slice(0, squareBracketIndex)); + } + pathList.push(arrayIndex); + } else { + pathList.push(part); + } + } + return pathList; + }, "getAttrPathList"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/getAttr.js +var getAttr; +var init_getAttr = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/getAttr.js"() { + init_types2(); + init_getAttrPathList(); + getAttr = /* @__PURE__ */ __name((value, path) => getAttrPathList(path).reduce((acc, index) => { + if (typeof acc !== "object") { + throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`); + } else if (Array.isArray(acc)) { + const i = parseInt(index); + return acc[i < 0 ? acc.length + i : i]; + } + return acc[index]; + }, value), "getAttr"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/isSet.js +var isSet; +var init_isSet = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/isSet.js"() { + isSet = /* @__PURE__ */ __name((value) => value != null, "isSet"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/ite.js +function ite(condition, trueValue, falseValue) { + return condition ? trueValue : falseValue; +} +var init_ite = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/ite.js"() { + __name(ite, "ite"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/not.js +var not; +var init_not = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/not.js"() { + not = /* @__PURE__ */ __name((value) => !value, "not"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/isIpAddress.js +var IP_V4_REGEX, isIpAddress; +var init_isIpAddress = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/isIpAddress.js"() { + IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$`); + isIpAddress = /* @__PURE__ */ __name((value) => IP_V4_REGEX.test(value) || value.startsWith("[") && value.endsWith("]"), "isIpAddress"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/parseURL.js +var import_types12, DEFAULT_PORTS, parseURL; +var init_parseURL = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/parseURL.js"() { + import_types12 = __toESM(require_dist_cjs()); + init_isIpAddress(); + DEFAULT_PORTS = { + [import_types12.EndpointURLScheme.HTTP]: 80, + [import_types12.EndpointURLScheme.HTTPS]: 443 + }; + parseURL = /* @__PURE__ */ __name((value) => { + const whatwgURL = (() => { + try { + if (value instanceof URL) { + return value; + } + if (typeof value === "object" && "hostname" in value) { + const { hostname: hostname2, port, protocol: protocol2 = "", path = "", query = {} } = value; + const url = new URL(`${protocol2}//${hostname2}${port ? `:${port}` : ""}${path}`); + url.search = Object.entries(query).map(([k, v]) => `${k}=${v}`).join("&"); + return url; + } + return new URL(value); + } catch (ignored) { + return null; + } + })(); + if (!whatwgURL) { + console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`); + return null; + } + const urlString = whatwgURL.href; + const { host, hostname, pathname, protocol, search } = whatwgURL; + if (search) { + return null; + } + const scheme = protocol.slice(0, -1); + if (!Object.values(import_types12.EndpointURLScheme).includes(scheme)) { + return null; + } + const isIp = isIpAddress(hostname); + const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || typeof value === "string" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`); + const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`; + return { + scheme, + authority, + path: pathname, + normalizedPath: pathname.endsWith("/") ? pathname : `${pathname}/`, + isIp + }; + }, "parseURL"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/split.js +function split(value, delimiter, limit) { + if (limit === 1) { + return [value]; + } + if (value === "") { + return [""]; + } + const parts = value.split(delimiter); + if (limit === 0) { + return parts; + } + return parts.slice(0, limit - 1).concat(parts.slice(1).join(delimiter)); +} +var init_split = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/split.js"() { + __name(split, "split"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/stringEquals.js +var stringEquals; +var init_stringEquals = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/stringEquals.js"() { + stringEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "stringEquals"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/substring.js +var substring; +var init_substring = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/substring.js"() { + substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { + if (input == null || start >= stop || input.length < stop || /[^\u0000-\u007f]/.test(input)) { + return null; + } + if (!reverse) { + return input.substring(start, stop); + } + return input.substring(input.length - stop, input.length - start); + }, "substring"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/uriEncode.js +var uriEncode; +var init_uriEncode = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/uriEncode.js"() { + uriEncode = /* @__PURE__ */ __name((value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`), "uriEncode"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/index.js +var init_lib = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/index.js"() { + init_booleanEquals(); + init_coalesce(); + init_getAttr(); + init_isSet(); + init_transport(); + init_ite(); + init_not(); + init_parseURL(); + init_split(); + init_stringEquals(); + init_substring(); + init_uriEncode(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/endpointFunctions.js +var endpointFunctions; +var init_endpointFunctions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/endpointFunctions.js"() { + init_lib(); + endpointFunctions = { + booleanEquals, + coalesce, + getAttr, + isSet, + isValidHostLabel, + ite, + not, + parseURL, + split, + stringEquals, + substring, + uriEncode + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateTemplate.js +var evaluateTemplate; +var init_evaluateTemplate = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateTemplate.js"() { + init_lib(); + evaluateTemplate = /* @__PURE__ */ __name((template, options) => { + const evaluatedTemplateArr = []; + const { referenceRecord, endpointParams } = options; + let currentIndex = 0; + while (currentIndex < template.length) { + const openingBraceIndex = template.indexOf("{", currentIndex); + if (openingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(currentIndex)); + break; + } + evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex)); + const closingBraceIndex = template.indexOf("}", openingBraceIndex); + if (closingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(openingBraceIndex)); + break; + } + if (template[openingBraceIndex + 1] === "{" && template[closingBraceIndex + 1] === "}") { + evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex)); + currentIndex = closingBraceIndex + 2; + } + const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex); + if (parameterName.includes("#")) { + const [refName, attrName] = parameterName.split("#"); + evaluatedTemplateArr.push(getAttr(referenceRecord[refName] ?? endpointParams[refName], attrName)); + } else { + evaluatedTemplateArr.push(referenceRecord[parameterName] ?? endpointParams[parameterName]); + } + currentIndex = closingBraceIndex + 1; + } + return evaluatedTemplateArr.join(""); + }, "evaluateTemplate"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getReferenceValue.js +var getReferenceValue; +var init_getReferenceValue = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getReferenceValue.js"() { + getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { + return options.referenceRecord[ref] ?? options.endpointParams[ref]; + }, "getReferenceValue"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateExpression.js +var evaluateExpression, callFunction, group; +var init_evaluateExpression = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateExpression.js"() { + init_types2(); + init_customEndpointFunctions(); + init_endpointFunctions(); + init_evaluateTemplate(); + init_getReferenceValue(); + evaluateExpression = /* @__PURE__ */ __name((obj, keyName, options) => { + if (typeof obj === "string") { + return evaluateTemplate(obj, options); + } else if (obj["fn"]) { + return group.callFunction(obj, options); + } else if (obj["ref"]) { + return getReferenceValue(obj, options); + } + throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`); + }, "evaluateExpression"); + callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { + const evaluatedArgs = Array(argv.length); + for (let i = 0; i < evaluatedArgs.length; ++i) { + const arg = argv[i]; + if (typeof arg === "boolean" || typeof arg === "number") { + evaluatedArgs[i] = arg; + } else { + evaluatedArgs[i] = group.evaluateExpression(arg, "arg", options); + } + } + const namespaceSeparatorIndex = fn.indexOf("."); + if (namespaceSeparatorIndex !== -1) { + const namespaceFunctions = customEndpointFunctions[fn.slice(0, namespaceSeparatorIndex)]; + const customFunction = namespaceFunctions?.[fn.slice(namespaceSeparatorIndex + 1)]; + if (typeof customFunction === "function") { + return customFunction(...evaluatedArgs); + } + } + const callable = endpointFunctions[fn]; + if (typeof callable === "function") { + return callable(...evaluatedArgs); + } + throw new Error(`function ${fn} not loaded in endpointFunctions.`); + }, "callFunction"); + group = { + evaluateExpression, + callFunction + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/callFunction.js +var init_callFunction = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/callFunction.js"() { + init_evaluateExpression(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateCondition.js +var evaluateCondition; +var init_evaluateCondition = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateCondition.js"() { + init_debug(); + init_types2(); + init_callFunction(); + evaluateCondition = /* @__PURE__ */ __name((condition, options) => { + const { assign } = condition; + if (assign && assign in options.referenceRecord) { + throw new EndpointError(`'${assign}' is already defined in Reference Record.`); + } + const value = callFunction(condition, options); + options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(condition)} = ${toDebugString(value)}`); + const result = value === "" ? true : !!value; + if (assign != null) { + return { result, toAssign: { name: assign, value } }; + } + return { result }; + }, "evaluateCondition"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointHeaders.js +var getEndpointHeaders; +var init_getEndpointHeaders = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointHeaders.js"() { + init_types2(); + init_evaluateExpression(); + getEndpointHeaders = /* @__PURE__ */ __name((headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => { + acc[headerKey] = headerVal.map((headerValEntry) => { + const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options); + if (typeof processedExpr !== "string") { + throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`); + } + return processedExpr; + }); + return acc; + }, {}), "getEndpointHeaders"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointProperties.js +var getEndpointProperties, getEndpointProperty, group2; +var init_getEndpointProperties = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointProperties.js"() { + init_types2(); + init_evaluateTemplate(); + getEndpointProperties = /* @__PURE__ */ __name((properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => { + acc[propertyKey] = group2.getEndpointProperty(propertyVal, options); + return acc; + }, {}), "getEndpointProperties"); + getEndpointProperty = /* @__PURE__ */ __name((property, options) => { + if (Array.isArray(property)) { + return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options)); + } + switch (typeof property) { + case "string": + return evaluateTemplate(property, options); + case "object": + if (property === null) { + throw new EndpointError(`Unexpected endpoint property: ${property}`); + } + return group2.getEndpointProperties(property, options); + case "boolean": + return property; + default: + throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`); + } + }, "getEndpointProperty"); + group2 = { + getEndpointProperty, + getEndpointProperties + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointUrl.js +var getEndpointUrl; +var init_getEndpointUrl = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointUrl.js"() { + init_types2(); + init_evaluateExpression(); + getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { + const expression = evaluateExpression(endpointUrl, "Endpoint URL", options); + if (typeof expression === "string") { + try { + return new URL(expression); + } catch (error2) { + console.error(`Failed to construct URL with ${expression}`, error2); + throw error2; + } + } + throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`); + }, "getEndpointUrl"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/decideEndpoint.js +var RESULT, decideEndpoint; +var init_decideEndpoint = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/decideEndpoint.js"() { + init_types2(); + init_evaluateCondition(); + init_evaluateExpression(); + init_getEndpointHeaders(); + init_getEndpointProperties(); + init_getEndpointUrl(); + RESULT = 1e8; + decideEndpoint = /* @__PURE__ */ __name((bdd, options) => { + const { nodes, root, results, conditions } = bdd; + let ref = root; + const referenceRecord = {}; + const closure = { + referenceRecord, + endpointParams: options.endpointParams, + logger: options.logger + }; + while (ref !== 1 && ref !== -1 && ref < RESULT) { + const node_i = 3 * (Math.abs(ref) - 1); + const [condition_i, highRef, lowRef] = [nodes[node_i], nodes[node_i + 1], nodes[node_i + 2]]; + const [fn, argv, assign] = conditions[condition_i]; + const evaluation = evaluateCondition({ fn, assign, argv }, closure); + if (evaluation.toAssign) { + const { name, value } = evaluation.toAssign; + referenceRecord[name] = value; + } + ref = ref >= 0 === evaluation.result ? highRef : lowRef; + } + if (ref >= RESULT) { + const result = results[ref - RESULT]; + if (result[0] === -1) { + const [, errorExpression] = result; + throw new EndpointError(evaluateExpression(errorExpression, "Error", closure)); + } + const [url, properties, headers] = result; + return { + url: getEndpointUrl(url, closure), + properties: getEndpointProperties(properties, closure), + headers: getEndpointHeaders(headers ?? {}, closure) + }; + } + throw new EndpointError(`No matching endpoint.`); + }, "decideEndpoint"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateConditions.js +var evaluateConditions; +var init_evaluateConditions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateConditions.js"() { + init_debug(); + init_evaluateCondition(); + evaluateConditions = /* @__PURE__ */ __name((conditions = [], options) => { + const conditionsReferenceRecord = {}; + const conditionOptions = { + ...options, + referenceRecord: { ...options.referenceRecord } + }; + let didAssign = false; + for (const condition of conditions) { + const { result, toAssign } = evaluateCondition(condition, conditionOptions); + if (!result) { + return { result }; + } + if (toAssign) { + didAssign = true; + conditionsReferenceRecord[toAssign.name] = toAssign.value; + conditionOptions.referenceRecord[toAssign.name] = toAssign.value; + options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`); + } + } + if (didAssign) { + return { result: true, referenceRecord: conditionsReferenceRecord }; + } + return { result: true }; + }, "evaluateConditions"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateEndpointRule.js +var evaluateEndpointRule; +var init_evaluateEndpointRule = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateEndpointRule.js"() { + init_debug(); + init_evaluateConditions(); + init_getEndpointHeaders(); + init_getEndpointProperties(); + init_getEndpointUrl(); + evaluateEndpointRule = /* @__PURE__ */ __name((endpointRule, options) => { + const { conditions, endpoint } = endpointRule; + const { result, referenceRecord } = evaluateConditions(conditions, options); + if (!result) { + return; + } + const endpointRuleOptions = referenceRecord ? { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + } : options; + const { url, properties, headers } = endpoint; + options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`); + const endpointToReturn = { url: getEndpointUrl(url, endpointRuleOptions) }; + if (headers != null) { + endpointToReturn.headers = getEndpointHeaders(headers, endpointRuleOptions); + } + if (properties != null) { + endpointToReturn.properties = getEndpointProperties(properties, endpointRuleOptions); + } + return endpointToReturn; + }, "evaluateEndpointRule"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateErrorRule.js +var evaluateErrorRule; +var init_evaluateErrorRule = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateErrorRule.js"() { + init_types2(); + init_evaluateConditions(); + init_evaluateExpression(); + evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { + const { conditions, error: error2 } = errorRule; + const { result, referenceRecord } = evaluateConditions(conditions, options); + if (!result) { + return; + } + const errorRuleOptions = referenceRecord ? { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + } : options; + throw new EndpointError(evaluateExpression(error2, "Error", errorRuleOptions)); + }, "evaluateErrorRule"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateRules.js +var evaluateRules, evaluateTreeRule, group3; +var init_evaluateRules = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateRules.js"() { + init_types2(); + init_evaluateConditions(); + init_evaluateEndpointRule(); + init_evaluateErrorRule(); + evaluateRules = /* @__PURE__ */ __name((rules, options) => { + for (const rule of rules) { + if (rule.type === "endpoint") { + const endpointOrUndefined = evaluateEndpointRule(rule, options); + if (endpointOrUndefined) { + return endpointOrUndefined; + } + } else if (rule.type === "error") { + evaluateErrorRule(rule, options); + } else if (rule.type === "tree") { + const endpointOrUndefined = group3.evaluateTreeRule(rule, options); + if (endpointOrUndefined) { + return endpointOrUndefined; + } + } else { + throw new EndpointError(`Unknown endpoint rule: ${rule}`); + } + } + throw new EndpointError(`Rules evaluation failed`); + }, "evaluateRules"); + evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { + const { conditions, rules } = treeRule; + const { result, referenceRecord } = evaluateConditions(conditions, options); + if (!result) { + return; + } + const treeRuleOptions = referenceRecord ? { ...options, referenceRecord: { ...options.referenceRecord, ...referenceRecord } } : options; + return group3.evaluateRules(rules, treeRuleOptions); + }, "evaluateTreeRule"); + group3 = { + evaluateRules, + evaluateTreeRule + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/index.js +var init_utils = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/index.js"() { + init_evaluateRules(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/resolveEndpoint.js +var resolveEndpoint; +var init_resolveEndpoint = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/resolveEndpoint.js"() { + init_transport(); + init_debug(); + init_types2(); + init_utils(); + resolveEndpoint = /* @__PURE__ */ __name((ruleSetObject, options) => { + const { endpointParams, logger: logger2 } = options; + const { parameters, rules } = ruleSetObject; + options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`); + for (const paramKey in parameters) { + if (!hasOwn(parameters, paramKey)) + continue; + const parameter = parameters[paramKey]; + const endpointParam = endpointParams[paramKey]; + if (endpointParam == null && parameter.default != null) { + endpointParams[paramKey] = parameter.default; + continue; + } + if (parameter.required && endpointParam == null) { + throw new EndpointError(`Missing required parameter: '${paramKey}'`); + } + } + const endpoint = evaluateRules(rules, { endpointParams, logger: logger2, referenceRecord: {} }); + options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`); + return endpoint; + }, "resolveEndpoint"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/resolveEndpointRequiredConfig.js +var resolveEndpointRequiredConfig; +var init_resolveEndpointRequiredConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/resolveEndpointRequiredConfig.js"() { + resolveEndpointRequiredConfig = /* @__PURE__ */ __name((input) => { + const { endpoint } = input; + if (endpoint === void 0) { + input.endpoint = async () => { + throw new Error("@smithy/middleware-endpoint: (default endpointRuleSet) endpoint is not set - you must configure an endpoint."); + }; + } + return input; + }, "resolveEndpointRequiredConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/index.js +var endpoints_exports = {}; +__export(endpoints_exports, { + BinaryDecisionDiagram: () => BinaryDecisionDiagram, + EndpointCache: () => EndpointCache, + EndpointError: () => EndpointError, + customEndpointFunctions: () => customEndpointFunctions, + decideEndpoint: () => decideEndpoint, + endpointMiddleware: () => endpointMiddleware, + endpointMiddlewareOptions: () => endpointMiddlewareOptions, + getEndpointFromInstructions: () => getEndpointFromInstructions, + getEndpointPlugin: () => getEndpointPlugin, + isIpAddress: () => isIpAddress, + isValidHostLabel: () => isValidHostLabel, + middlewareEndpointToEndpointV1: () => toEndpointV1, + resolveEndpoint: () => resolveEndpoint, + resolveEndpointConfig: () => resolveEndpointConfig, + resolveEndpointRequiredConfig: () => resolveEndpointRequiredConfig, + resolveParams: () => resolveParams, + toEndpointV1: () => toEndpointV1 +}); +var getEndpointFromInstructions, resolveEndpointConfig, endpointMiddleware, getEndpointPlugin; +var init_endpoints = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/endpoints/index.js"() { + init_getEndpointFromConfig(); + init_getEndpointFromInstructions(); + init_endpointMiddleware(); + init_getEndpointPlugin(); + init_resolveEndpointConfig(); + init_transport(); + init_BinaryDecisionDiagram(); + init_EndpointCache(); + init_decideEndpoint(); + init_isIpAddress(); + init_transport(); + init_customEndpointFunctions(); + init_resolveEndpoint(); + init_types2(); + init_getEndpointFromInstructions(); + init_toEndpointV12(); + init_getEndpointPlugin(); + init_resolveEndpointRequiredConfig(); + getEndpointFromInstructions = bindGetEndpointFromInstructions(getEndpointFromConfig); + resolveEndpointConfig = bindResolveEndpointConfig(getEndpointFromConfig); + endpointMiddleware = bindEndpointMiddleware(getEndpointFromConfig); + getEndpointPlugin = bindGetEndpointPlugin(getEndpointFromConfig); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/serializerMiddleware.js +var serializerMiddleware; +var init_serializerMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/serializerMiddleware.js"() { + init_endpoints(); + serializerMiddleware = /* @__PURE__ */ __name((options, serializer) => (next, context) => async (args) => { + const endpointConfig = options; + const endpoint = context.endpointV2 ? async () => toEndpointV1(context.endpointV2) : endpointConfig.endpoint; + if (!endpoint) { + throw new Error("No valid endpoint provider available."); + } + const request = await serializer(args.input, { ...options, endpoint }); + return next({ + ...args, + request + }); + }, "serializerMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/serdePlugin.js +function getSerdePlugin(config, serializer, deserializer) { + return { + applyToStack: /* @__PURE__ */ __name((commandStack) => { + commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption2); + commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption3); + }, "applyToStack") + }; +} +var deserializerMiddlewareOption2, serializerMiddlewareOption3; +var init_serdePlugin = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/serdePlugin.js"() { + init_deserializerMiddleware(); + init_serializerMiddleware(); + deserializerMiddlewareOption2 = { + name: "deserializerMiddleware", + step: "deserialize", + tags: ["DESERIALIZER"], + override: true + }; + serializerMiddlewareOption3 = { + name: "serializerMiddleware", + step: "serialize", + tags: ["SERIALIZER"], + override: true + }; + __name(getSerdePlugin, "getSerdePlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/hash-node/hash-node.js +import { createHash as createHash2, createHmac } from "node:crypto"; +function castSourceData(toCast, encoding) { + if (Buffer.isBuffer(toCast)) { + return toCast; + } + if (typeof toCast === "string") { + return fromString(toCast, encoding); + } + if (ArrayBuffer.isView(toCast)) { + return fromArrayBuffer(toCast.buffer, toCast.byteOffset, toCast.byteLength); + } + return fromArrayBuffer(toCast); +} +var Hash; +var init_hash_node = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/hash-node/hash-node.js"() { + init_buffer_from(); + init_toUint8Array(); + Hash = class { + static { + __name(this, "Hash"); + } + algorithmIdentifier; + secret; + hash; + constructor(algorithmIdentifier, secret) { + this.algorithmIdentifier = algorithmIdentifier; + this.secret = secret; + this.reset(); + } + update(toHash, encoding) { + this.hash.update(toUint8Array(castSourceData(toHash, encoding))); + } + digest() { + return Promise.resolve(this.hash.digest()); + } + reset() { + this.hash = this.secret ? createHmac(this.algorithmIdentifier, castSourceData(this.secret)) : createHash2(this.algorithmIdentifier); + } + }; + __name(castSourceData, "castSourceData"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +import { Readable } from "node:stream"; +var ChecksumStream; +var init_ChecksumStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js"() { + init_toBase64(); + ChecksumStream = class extends Readable { + static { + __name(this, "ChecksumStream"); + } + expectedChecksum; + checksumSourceLocation; + checksum; + source; + base64Encoder; + constructor({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder }) { + super(); + if (typeof source.pipe !== "function") { + throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`); + } + this.source = source; + this.base64Encoder = base64Encoder ?? toBase64; + this.expectedChecksum = expectedChecksum; + this.checksum = checksum; + this.checksumSourceLocation = checksumSourceLocation; + this.source.on("data", this.onSourceData); + this.source.on("end", this.onSourceEnd); + this.source.on("error", this.onSourceError); + this.source.on("close", this.onSourceClose); + this.source.pause(); + } + onSourceData = /* @__PURE__ */ __name((chunk) => { + if (this.destroyed) { + return; + } + try { + this.checksum.update(chunk); + } catch (e) { + this.destroy(e); + return; + } + if (!this.push(chunk)) { + this.source.pause(); + } + }, "onSourceData"); + onSourceEnd = /* @__PURE__ */ __name(async () => { + if (this.destroyed) { + return; + } + try { + const digest2 = await this.checksum.digest(); + const received = this.base64Encoder(digest2); + if (this.expectedChecksum !== received) { + this.destroy(new Error(`Checksum mismatch: expected "${this.expectedChecksum}" but received "${received}" in response header "${this.checksumSourceLocation}".`)); + return; + } + } catch (e) { + this.destroy(e); + return; + } + this.push(null); + }, "onSourceEnd"); + onSourceError = /* @__PURE__ */ __name((error2) => { + this.destroy(error2); + }, "onSourceError"); + onSourceClose = /* @__PURE__ */ __name(() => { + if (!this.destroyed && !this.source.readableEnded) { + this.destroy(new Error("Connection lost or stream closed before all data was received.")); + } + }, "onSourceClose"); + _read(_size) { + this.source.resume(); + } + _destroy(error2, callback) { + this.source?.removeListener("data", this.onSourceData); + this.source?.removeListener("end", this.onSourceEnd); + this.source?.removeListener("error", this.onSourceError); + this.source?.removeListener("close", this.onSourceClose); + this.source?.destroy(); + callback(error2); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-type-check.js +var isReadableStream, isBlob; +var init_stream_type_check = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-type-check.js"() { + isReadableStream = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && (stream?.constructor?.name === ReadableStream.name || stream instanceof ReadableStream), "isReadableStream"); + isBlob = /* @__PURE__ */ __name((blob) => { + return typeof Blob === "function" && (blob?.constructor?.name === Blob.name || blob instanceof Blob); + }, "isBlob"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/fromUtf8.browser.js +var fromUtf82; +var init_fromUtf8_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/fromUtf8.browser.js"() { + fromUtf82 = /* @__PURE__ */ __name((input) => new TextEncoder().encode(input), "fromUtf8"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/constants-for-browser.js +var chars, alphabetByEncoding, alphabetByValue, bitsPerLetter, bitsPerByte, maxLetterValue; +var init_constants_for_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/constants-for-browser.js"() { + chars = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`; + alphabetByEncoding = Object.entries(chars).reduce((acc, [i, c]) => { + acc[c] = Number(i); + return acc; + }, {}); + alphabetByValue = chars.split(""); + bitsPerLetter = 6; + bitsPerByte = 8; + maxLetterValue = 63; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/toBase64.browser.js +function toBase642(_input) { + let input; + if (typeof _input === "string") { + input = fromUtf82(_input); + } else { + input = _input; + } + const isArrayLike = typeof input === "object" && typeof input.length === "number"; + const isUint8Array = typeof input === "object" && typeof input.byteOffset === "number" && typeof input.byteLength === "number"; + if (!isArrayLike && !isUint8Array) { + throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array."); + } + let str = ""; + for (let i = 0; i < input.length; i += 3) { + let bits = 0; + let bitLength = 0; + for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) { + bits |= input[j] << (limit - j - 1) * bitsPerByte; + bitLength += bitsPerByte; + } + const bitClusterCount = Math.ceil(bitLength / bitsPerLetter); + bits <<= bitClusterCount * bitsPerLetter - bitLength; + for (let k = 1; k <= bitClusterCount; k++) { + const offset = (bitClusterCount - k) * bitsPerLetter; + str += alphabetByValue[(bits & maxLetterValue << offset) >> offset]; + } + str += "==".slice(0, 4 - bitClusterCount); + } + return str; +} +var init_toBase64_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-base64/toBase64.browser.js"() { + init_fromUtf8_browser(); + init_constants_for_browser(); + __name(toBase642, "toBase64"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.browser.js +var ReadableStreamRef, ChecksumStream2; +var init_ChecksumStream_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.browser.js"() { + ReadableStreamRef = typeof ReadableStream === "function" ? ReadableStream : function() { + }; + ChecksumStream2 = class extends ReadableStreamRef { + static { + __name(this, "ChecksumStream"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/createChecksumStream.browser.js +var createChecksumStream; +var init_createChecksumStream_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/createChecksumStream.browser.js"() { + init_toBase64_browser(); + init_stream_type_check(); + init_ChecksumStream_browser(); + createChecksumStream = /* @__PURE__ */ __name(({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder }) => { + if (!isReadableStream(source)) { + throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`); + } + const encoder = base64Encoder ?? toBase642; + if (typeof TransformStream !== "function") { + throw new Error("@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream."); + } + const transform = new TransformStream({ + start() { + }, + async transform(chunk, controller) { + checksum.update(chunk); + controller.enqueue(chunk); + }, + async flush(controller) { + const digest2 = await checksum.digest(); + const received = encoder(digest2); + if (expectedChecksum !== received) { + const error2 = new Error(`Checksum mismatch: expected "${expectedChecksum}" but received "${received}" in response header "${checksumSourceLocation}".`); + controller.error(error2); + } else { + controller.terminate(); + } + } + }); + source.pipeThrough(transform); + const readable = transform.readable; + Object.setPrototypeOf(readable, ChecksumStream2.prototype); + return readable; + }, "createChecksumStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/createChecksumStream.js +function createChecksumStream2(init) { + if (typeof ReadableStream === "function" && isReadableStream(init.source)) { + return createChecksumStream(init); + } + return new ChecksumStream(init); +} +var init_createChecksumStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/createChecksumStream.js"() { + init_stream_type_check(); + init_ChecksumStream(); + init_createChecksumStream_browser(); + __name(createChecksumStream2, "createChecksumStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/ByteArrayCollector.js +var ByteArrayCollector; +var init_ByteArrayCollector = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/ByteArrayCollector.js"() { + ByteArrayCollector = class { + static { + __name(this, "ByteArrayCollector"); + } + allocByteArray; + byteLength = 0; + byteArrays = []; + constructor(allocByteArray) { + this.allocByteArray = allocByteArray; + } + push(byteArray) { + this.byteArrays.push(byteArray); + this.byteLength += byteArray.byteLength; + } + flush() { + if (this.byteArrays.length === 1) { + const bytes = this.byteArrays[0]; + this.reset(); + return bytes; + } + const aggregation = this.allocByteArray(this.byteLength); + let cursor = 0; + for (let i = 0; i < this.byteArrays.length; ++i) { + const bytes = this.byteArrays[i]; + aggregation.set(bytes, cursor); + cursor += bytes.byteLength; + } + this.reset(); + return aggregation; + } + reset() { + this.byteArrays = []; + this.byteLength = 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/createBufferedReadable.browser.js +function createBufferedReadableStream(upstream, size, logger2) { + const reader = upstream.getReader(); + let streamBufferingLoggedWarning = false; + let bytesSeen = 0; + const buffers = ["", new ByteArrayCollector((size2) => new Uint8Array(size2))]; + let mode = -1; + const pull = /* @__PURE__ */ __name(async (controller) => { + const { value, done } = await reader.read(); + const chunk = value; + if (done) { + if (mode !== -1) { + const remainder = flush(buffers, mode); + if (sizeOf(remainder) > 0) { + controller.enqueue(remainder); + } + } + controller.close(); + } else { + const chunkMode = modeOf(chunk, false); + if (mode !== chunkMode) { + if (mode >= 0) { + controller.enqueue(flush(buffers, mode)); + } + mode = chunkMode; + } + if (mode === -1) { + controller.enqueue(chunk); + return; + } + const chunkSize = sizeOf(chunk); + bytesSeen += chunkSize; + const bufferSize = sizeOf(buffers[mode]); + if (chunkSize >= size && bufferSize === 0) { + controller.enqueue(chunk); + } else { + const newSize = merge(buffers, mode, chunk); + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true; + logger2?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); + } + if (newSize >= size) { + controller.enqueue(flush(buffers, mode)); + } else { + await pull(controller); + } + } + } + }, "pull"); + return new ReadableStream({ + pull + }); +} +function merge(buffers, mode, chunk) { + switch (mode) { + case 0: + buffers[0] += chunk; + return sizeOf(buffers[0]); + case 1: + case 2: + buffers[mode].push(chunk); + return sizeOf(buffers[mode]); + } +} +function flush(buffers, mode) { + switch (mode) { + case 0: + const s = buffers[0]; + buffers[0] = ""; + return s; + case 1: + case 2: + return buffers[mode].flush(); + } + throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`); +} +function sizeOf(chunk) { + return chunk?.byteLength ?? chunk?.length ?? 0; +} +function modeOf(chunk, allowBuffer = true) { + if (allowBuffer && typeof Buffer !== "undefined" && chunk instanceof Buffer) { + return 2; + } + if (chunk instanceof Uint8Array) { + return 1; + } + if (typeof chunk === "string") { + return 0; + } + return -1; +} +var init_createBufferedReadable_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/createBufferedReadable.browser.js"() { + init_ByteArrayCollector(); + __name(createBufferedReadableStream, "createBufferedReadableStream"); + __name(merge, "merge"); + __name(flush, "flush"); + __name(sizeOf, "sizeOf"); + __name(modeOf, "modeOf"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/createBufferedReadable.js +import { Readable as Readable2 } from "node:stream"; +function createBufferedReadable(upstream, size, logger2) { + if (isReadableStream(upstream)) { + return createBufferedReadableStream(upstream, size, logger2); + } + const downstream = new Readable2({ read() { + } }); + let streamBufferingLoggedWarning = false; + let bytesSeen = 0; + const buffers = [ + "", + new ByteArrayCollector((size2) => new Uint8Array(size2)), + new ByteArrayCollector((size2) => Buffer.from(new Uint8Array(size2))) + ]; + let mode = -1; + upstream.on("data", (chunk) => { + const chunkMode = modeOf(chunk, true); + if (mode !== chunkMode) { + if (mode >= 0) { + downstream.push(flush(buffers, mode)); + } + mode = chunkMode; + } + if (mode === -1) { + downstream.push(chunk); + return; + } + const chunkSize = sizeOf(chunk); + bytesSeen += chunkSize; + const bufferSize = sizeOf(buffers[mode]); + if (chunkSize >= size && bufferSize === 0) { + downstream.push(chunk); + } else { + const newSize = merge(buffers, mode, chunk); + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true; + logger2?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); + } + if (newSize >= size) { + downstream.push(flush(buffers, mode)); + } + } + }); + upstream.on("end", () => { + if (mode !== -1) { + const remainder = flush(buffers, mode); + if (sizeOf(remainder) > 0) { + downstream.push(remainder); + } + } + downstream.push(null); + }); + return downstream; +} +var init_createBufferedReadable = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/createBufferedReadable.js"() { + init_ByteArrayCollector(); + init_createBufferedReadable_browser(); + init_stream_type_check(); + __name(createBufferedReadable, "createBufferedReadable"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/getAwsChunkedEncodingStream.browser.js +var getAwsChunkedEncodingStream; +var init_getAwsChunkedEncodingStream_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/getAwsChunkedEncodingStream.browser.js"() { + getAwsChunkedEncodingStream = /* @__PURE__ */ __name((readableStream, options) => { + const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options; + const checksumRequired = base64Encoder !== void 0 && bodyLengthChecker !== void 0 && checksumAlgorithmFn !== void 0 && checksumLocationName !== void 0 && streamHasher !== void 0; + const digest2 = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : void 0; + Promise.resolve(digest2).catch(() => { + }); + const reader = readableStream.getReader(); + return new ReadableStream({ + async pull(controller) { + const { value, done } = await reader.read(); + if (done) { + controller.enqueue(`0\r +`); + if (checksumRequired) { + const checksum = base64Encoder(await digest2); + controller.enqueue(`${checksumLocationName}:${checksum}\r +`); + controller.enqueue(`\r +`); + } + controller.close(); + } else { + controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\r +${value}\r +`); + } + } + }); + }, "getAwsChunkedEncodingStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/getAwsChunkedEncodingStream.js +import { Readable as Readable3 } from "node:stream"; +function getAwsChunkedEncodingStream2(stream, options) { + const readable = stream; + const readableStream = stream; + if (isReadableStream(readableStream)) { + return getAwsChunkedEncodingStream(readableStream, options); + } + const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options; + const checksumRequired = base64Encoder !== void 0 && checksumAlgorithmFn !== void 0 && checksumLocationName !== void 0 && streamHasher !== void 0; + const digest2 = checksumRequired ? streamHasher(checksumAlgorithmFn, readable) : void 0; + Promise.resolve(digest2).catch(() => { + }); + const awsChunkedEncodingStream = new Readable3({ + read() { + readable.resume(); + } + }); + readable.on("data", (data) => { + const length = bodyLengthChecker(data) || 0; + if (length === 0) { + return; + } + awsChunkedEncodingStream.push(`${length.toString(16)}\r +`); + awsChunkedEncodingStream.push(data); + if (!awsChunkedEncodingStream.push("\r\n")) { + readable.pause(); + } + }); + readable.on("error", (err) => { + awsChunkedEncodingStream.destroy(err); + }); + readable.pause(); + readable.on("end", async () => { + try { + awsChunkedEncodingStream.push(`0\r +`); + if (checksumRequired) { + const checksum = base64Encoder(await digest2); + awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\r +`); + awsChunkedEncodingStream.push(`\r +`); + } + awsChunkedEncodingStream.push(null); + } catch (err) { + awsChunkedEncodingStream.destroy(err); + } + }); + return awsChunkedEncodingStream; +} +var init_getAwsChunkedEncodingStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/getAwsChunkedEncodingStream.js"() { + init_getAwsChunkedEncodingStream_browser(); + init_stream_type_check(); + __name(getAwsChunkedEncodingStream2, "getAwsChunkedEncodingStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.browser.js +async function headStream(stream, bytes) { + let byteLengthCounter = 0; + const chunks = []; + const reader = stream.getReader(); + let isDone = false; + while (!isDone) { + const { done, value } = await reader.read(); + if (value) { + chunks.push(value); + byteLengthCounter += value?.byteLength ?? 0; + } + if (byteLengthCounter >= bytes) { + break; + } + isDone = done; + } + reader.releaseLock(); + const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)); + let offset = 0; + for (const chunk of chunks) { + if (chunk.byteLength > collected.byteLength - offset) { + collected.set(chunk.subarray(0, collected.byteLength - offset), offset); + break; + } else { + collected.set(chunk, offset); + } + offset += chunk.length; + } + return collected; +} +var init_headStream_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.browser.js"() { + __name(headStream, "headStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +import { Writable } from "node:stream"; +var headStream2, Collector; +var init_headStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js"() { + init_concatBytes(); + init_headStream_browser(); + init_stream_type_check(); + headStream2 = /* @__PURE__ */ __name((stream, bytes) => { + if (isReadableStream(stream)) { + return headStream(stream, bytes); + } + return new Promise((resolve, reject) => { + const collector = new Collector(); + collector.limit = bytes; + stream.pipe(collector); + stream.on("error", (err) => { + collector.end(); + reject(err); + }); + collector.on("error", reject); + collector.on("finish", function() { + const bytes2 = concatBytes(this.buffers); + resolve(bytes2); + }); + }); + }, "headStream"); + Collector = class extends Writable { + static { + __name(this, "Collector"); + } + buffers = []; + limit = Infinity; + bytesBuffered = 0; + _write(chunk, encoding, callback) { + this.buffers.push(chunk); + this.bytesBuffered += chunk.byteLength ?? 0; + if (this.bytesBuffered >= this.limit) { + const excess = this.bytesBuffered - this.limit; + const tailBuffer = this.buffers[this.buffers.length - 1]; + this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess); + this.emit("finish"); + } + callback(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUtf8.browser.js +var toUtf82; +var init_toUtf8_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUtf8.browser.js"() { + toUtf82 = /* @__PURE__ */ __name((input) => { + if (typeof input === "string") { + return input; + } + if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { + throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array."); + } + return new TextDecoder("utf-8").decode(input); + }, "toUtf8"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +async function collectBlob(blob) { + return blob.arrayBuffer().then((ab) => new Uint8Array(ab)); +} +async function collectReadableStream(stream) { + const chunks = []; + const reader = stream.getReader(); + let length = 0; + while (true) { + const { done, value } = await reader.read(); + if (value) { + chunks.push(value); + length += value.length; + } + if (done) { + break; + } + } + return concatBytes(chunks, length); +} +var streamCollector; +var init_stream_collector_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js"() { + init_concatBytes(); + init_stream_type_check(); + streamCollector = /* @__PURE__ */ __name(async (stream) => { + if (isBlob(stream)) { + return collectBlob(stream); + } + return collectReadableStream(stream); + }, "streamCollector"); + __name(collectBlob, "collectBlob"); + __name(collectReadableStream, "collectReadableStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/sdk-stream-mixin.browser.js +var ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED, sdkStreamMixin, isBlobInstance; +var init_sdk_stream_mixin_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/sdk-stream-mixin.browser.js"() { + init_toBase64_browser(); + init_hex_encoding(); + init_toUtf8_browser(); + init_stream_collector_browser(); + init_stream_type_check(); + ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; + sdkStreamMixin = /* @__PURE__ */ __name((stream) => { + if (!isBlobInstance(stream) && !isReadableStream(stream)) { + const name = stream?.__proto__?.constructor?.name || stream; + throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`); + } + let transformed = false; + const transformToByteArray = /* @__PURE__ */ __name(async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + } + transformed = true; + return await streamCollector(stream); + }, "transformToByteArray"); + const blobToWebStream = /* @__PURE__ */ __name((blob) => { + if (typeof blob.stream !== "function") { + throw new Error("Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\nIf you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body"); + } + return blob.stream(); + }, "blobToWebStream"); + return Object.assign(stream, { + transformToByteArray, + transformToString: /* @__PURE__ */ __name(async (encoding) => { + const buf = await transformToByteArray(); + if (encoding === "base64") { + return toBase642(buf); + } else if (encoding === "hex") { + return toHex(buf); + } else if (encoding === void 0 || encoding === "utf8" || encoding === "utf-8") { + return toUtf82(buf); + } else if (typeof TextDecoder === "function") { + return new TextDecoder(encoding).decode(buf); + } else { + throw new Error("TextDecoder is not available, please make sure polyfill is provided."); + } + }, "transformToString"), + transformToWebStream: /* @__PURE__ */ __name(() => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + } + transformed = true; + if (isBlobInstance(stream)) { + return blobToWebStream(stream); + } else if (isReadableStream(stream)) { + return stream; + } else { + throw new Error(`Cannot transform payload to web stream, got ${stream}`); + } + }, "transformToWebStream") + }); + }, "sdkStreamMixin"); + isBlobInstance = /* @__PURE__ */ __name((stream) => typeof Blob === "function" && stream instanceof Blob, "isBlobInstance"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +import { Writable as Writable2 } from "node:stream"; +var streamCollector2, Collector2; +var init_stream_collector = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js"() { + init_concatBytes(); + init_stream_collector_browser(); + init_stream_type_check(); + streamCollector2 = /* @__PURE__ */ __name((stream) => { + if (isBlob(stream)) { + return collectBlob(stream); + } + if (isReadableStream(stream)) { + return collectReadableStream(stream); + } + return new Promise((resolve, reject) => { + const collector = new Collector2(); + const nodeStream = stream; + nodeStream.pipe(collector); + nodeStream.on("error", (err) => { + collector.end(); + reject(err); + }); + collector.on("error", reject); + collector.on("finish", function() { + const bytes = concatBytes(this.bufferedBytes); + resolve(bytes); + }); + }); + }, "streamCollector"); + Collector2 = class extends Writable2 { + static { + __name(this, "Collector"); + } + bufferedBytes = []; + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk); + callback(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/sdk-stream-mixin.js +import { Readable as Readable4 } from "node:stream"; +var ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED2, sdkStreamMixin2; +var init_sdk_stream_mixin = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/sdk-stream-mixin.js"() { + init_buffer_from(); + init_sdk_stream_mixin_browser(); + init_stream_collector(); + ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED2 = "The stream has already been transformed."; + sdkStreamMixin2 = /* @__PURE__ */ __name((stream) => { + if (!(stream instanceof Readable4)) { + try { + return sdkStreamMixin(stream); + } catch (ignored) { + const name = stream?.__proto__?.constructor?.name || stream; + throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`); + } + } + let transformed = false; + const transformToByteArray = /* @__PURE__ */ __name(async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED2); + } + transformed = true; + return await streamCollector2(stream); + }, "transformToByteArray"); + return Object.assign(stream, { + transformToByteArray, + transformToString: /* @__PURE__ */ __name(async (encoding) => { + const buf = await transformToByteArray(); + if (encoding === void 0 || Buffer.isEncoding(encoding)) { + return fromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding); + } else { + const decoder = new TextDecoder(encoding); + return decoder.decode(buf); + } + }, "transformToString"), + transformToWebStream: /* @__PURE__ */ __name(() => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED2); + } + if (stream.readableFlowing !== null) { + throw new Error("The stream has been consumed by other callbacks."); + } + if (typeof Readable4.toWeb !== "function") { + throw new Error("Readable.toWeb() is not supported. Please ensure a polyfill is available."); + } + transformed = true; + return Readable4.toWeb(stream); + }, "transformToWebStream") + }); + }, "sdkStreamMixin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/splitStream.browser.js +async function splitStream(stream) { + if (typeof stream.stream === "function") { + stream = stream.stream(); + } + const readableStream = stream; + return readableStream.tee(); +} +var init_splitStream_browser = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/splitStream.browser.js"() { + __name(splitStream, "splitStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/splitStream.js +import { PassThrough } from "node:stream"; +async function splitStream2(stream) { + if (isReadableStream(stream) || isBlob(stream)) { + return splitStream(stream); + } + const stream1 = new PassThrough(); + const stream2 = new PassThrough(); + stream.pipe(stream1); + stream.pipe(stream2); + return [stream1, stream2]; +} +var init_splitStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/splitStream.js"() { + init_splitStream_browser(); + init_stream_type_check(); + __name(splitStream2, "splitStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/index.js +var serde_exports = {}; +__export(serde_exports, { + ChecksumStream: () => ChecksumStream, + Hash: () => Hash, + LazyJsonString: () => LazyJsonString, + NumericValue: () => NumericValue, + Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter, + _parseEpochTimestamp: () => _parseEpochTimestamp, + _parseRfc3339DateTimeWithOffset: () => _parseRfc3339DateTimeWithOffset, + _parseRfc7231DateTime: () => _parseRfc7231DateTime, + calculateBodyLength: () => calculateBodyLength, + concatBytes: () => concatBytes, + copyDocumentWithTransform: () => copyDocumentWithTransform, + createBufferedReadable: () => createBufferedReadable, + createChecksumStream: () => createChecksumStream2, + dateToUtcString: () => dateToUtcString, + deserializerMiddleware: () => deserializerMiddleware, + deserializerMiddlewareOption: () => deserializerMiddlewareOption2, + expectBoolean: () => expectBoolean, + expectByte: () => expectByte, + expectFloat32: () => expectFloat32, + expectInt: () => expectInt, + expectInt32: () => expectInt32, + expectLong: () => expectLong, + expectNonNull: () => expectNonNull, + expectNumber: () => expectNumber, + expectObject: () => expectObject, + expectShort: () => expectShort, + expectString: () => expectString, + expectUnion: () => expectUnion, + fromArrayBuffer: () => fromArrayBuffer, + fromBase64: () => fromBase64, + fromHex: () => fromHex, + fromString: () => fromString, + fromUtf8: () => fromUtf8, + generateIdempotencyToken: () => generateIdempotencyToken, + getAwsChunkedEncodingStream: () => getAwsChunkedEncodingStream2, + getSerdePlugin: () => getSerdePlugin, + handleFloat: () => handleFloat, + hasOwn: () => hasOwn, + headStream: () => headStream2, + isArrayBuffer: () => isArrayBuffer, + isBlob: () => isBlob, + isReadableStream: () => isReadableStream, + limitedParseDouble: () => limitedParseDouble, + limitedParseFloat: () => limitedParseFloat, + limitedParseFloat32: () => limitedParseFloat32, + logger: () => logger, + nv: () => nv, + parseBoolean: () => parseBoolean, + parseEpochTimestamp: () => parseEpochTimestamp, + parseRfc3339DateTime: () => parseRfc3339DateTime, + parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset, + parseRfc7231DateTime: () => parseRfc7231DateTime, + quoteHeader: () => quoteHeader, + sdkStreamMixin: () => sdkStreamMixin2, + serializerMiddleware: () => serializerMiddleware, + serializerMiddlewareOption: () => serializerMiddlewareOption3, + splitEvery: () => splitEvery, + splitHeader: () => splitHeader, + splitStream: () => splitStream2, + streamCollector: () => streamCollector2, + strictParseByte: () => strictParseByte, + strictParseDouble: () => strictParseDouble, + strictParseFloat: () => strictParseFloat, + strictParseFloat32: () => strictParseFloat32, + strictParseInt: () => strictParseInt, + strictParseInt32: () => strictParseInt32, + strictParseLong: () => strictParseLong, + strictParseShort: () => strictParseShort, + toBase64: () => toBase64, + toHex: () => toHex, + toUint8Array: () => toUint8Array, + toUtf8: () => toUtf8, + v4: () => v4 +}); +import { getRandomValues } from "node:crypto"; +var Uint8ArrayBlobAdapter, _getRandomValues, v4, generateIdempotencyToken; +var init_serde = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/serde/index.js"() { + init_fromBase64(); + init_toBase64(); + init_Uint8ArrayBlobAdapter(); + init_fromUtf8(); + init_toUtf8(); + init_v4(); + init_copyDocumentWithTransform(); + init_date_utils(); + init_lazy_json(); + init_parse_utils(); + init_quote_header(); + init_schema_date_utils(); + init_split_every(); + init_split_header(); + init_NumericValue(); + init_hex_encoding(); + init_calculateBodyLength(); + init_toUint8Array(); + init_concatBytes(); + init_buffer_from(); + init_is_array_buffer(); + init_deserializerMiddleware(); + init_serdePlugin(); + init_serializerMiddleware(); + init_hash_node(); + init_ChecksumStream(); + init_createChecksumStream(); + init_createBufferedReadable(); + init_getAwsChunkedEncodingStream(); + init_headStream(); + init_sdk_stream_mixin(); + init_splitStream(); + init_stream_type_check(); + init_stream_collector(); + init_transport(); + Uint8ArrayBlobAdapter = class extends bindUint8ArrayBlobAdapter(toUtf8, fromUtf8, toBase64, fromBase64) { + static { + __name(this, "Uint8ArrayBlobAdapter"); + } + }; + _getRandomValues = getRandomValues; + v4 = bindV4(_getRandomValues); + generateIdempotencyToken = v4; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-stream-node/HashCalculator.js +import { Writable as Writable3 } from "node:stream"; +var HashCalculator; +var init_HashCalculator = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-stream-node/HashCalculator.js"() { + init_serde(); + HashCalculator = class extends Writable3 { + static { + __name(this, "HashCalculator"); + } + hash; + constructor(hash, options) { + super(options); + this.hash = hash; + } + _write(chunk, encoding, callback) { + try { + this.hash.update(toUint8Array(chunk)); + } catch (err) { + return callback(err); + } + callback(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-stream-node/fileStreamHasher.js +import { createReadStream } from "node:fs"; +var fileStreamHasher, isReadStream; +var init_fileStreamHasher = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-stream-node/fileStreamHasher.js"() { + init_HashCalculator(); + fileStreamHasher = /* @__PURE__ */ __name((hashCtor, fileStream) => new Promise((resolve, reject) => { + if (!isReadStream(fileStream)) { + reject(new Error("Unable to calculate hash for non-file streams.")); + return; + } + const fileStreamTee = createReadStream(fileStream.path, { + start: fileStream.start, + end: fileStream.end + }); + const hash = new hashCtor(); + const hashCalculator = new HashCalculator(hash); + fileStreamTee.pipe(hashCalculator); + fileStreamTee.on("error", (err) => { + hashCalculator.end(); + reject(err); + }); + hashCalculator.on("error", reject); + hashCalculator.on("finish", function() { + hash.digest().then(resolve).catch(reject); + }); + }), "fileStreamHasher"); + isReadStream = /* @__PURE__ */ __name((stream) => typeof stream.path === "string", "isReadStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-stream-node/readableStreamHasher.js +var readableStreamHasher; +var init_readableStreamHasher = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/hash-stream-node/readableStreamHasher.js"() { + init_HashCalculator(); + readableStreamHasher = /* @__PURE__ */ __name((hashCtor, readableStream) => { + if (readableStream.readableFlowing !== null) { + throw new Error("Unable to calculate hash for flowing readable stream"); + } + const hash = new hashCtor(); + const hashCalculator = new HashCalculator(hash); + readableStream.pipe(hashCalculator); + return new Promise((resolve, reject) => { + readableStream.on("error", (err) => { + hashCalculator.end(); + reject(err); + }); + hashCalculator.on("error", reject); + hashCalculator.on("finish", () => { + hash.digest().then(resolve).catch(reject); + }); + }); + }, "readableStreamHasher"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +function compress(state, block) { + let a = state[0], b = state[1], c = state[2], d = state[3]; + for (let i = 0; i < 64; ++i) { + let f, g; + if (i < 16) { + f = b & c | ~b & d; + g = i; + } else if (i < 32) { + f = d & b | c & ~d; + g = (5 * i + 1) % 16; + } else if (i < 48) { + f = b ^ c ^ d; + g = (3 * i + 5) % 16; + } else { + f = c ^ (b | ~d); + g = 7 * i % 16; + } + const x = block.getUint32(g * 4, true); + const tmp = d; + d = c; + c = b; + const s = S[(i >> 4) * 4 + (i & 3)]; + const sum = (a + f & M) + (x + T[i] & M) & M; + b = b + ((sum << s | sum >>> 32 - s) >>> 0) & M; + a = tmp; + } + state[0] = state[0] + a & M; + state[1] = state[1] + b & M; + state[2] = state[2] + c & M; + state[3] = state[3] + d & M; +} +var Md5Js, INIT, M, S, T; +var init_Md5Js = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js"() { + init_serde(); + Md5Js = class { + static { + __name(this, "Md5Js"); + } + digestLength = 16; + state = Uint32Array.from(INIT); + writeBuffer = new DataView(new ArrayBuffer(64)); + bufferLength = 0; + bytesHashed = 0; + update(sourceData) { + const data = toUint8Array(sourceData); + let pos = 0; + let len = data.byteLength; + this.bytesHashed += len; + while (len > 0) { + this.writeBuffer.setUint8(this.bufferLength++, data[pos++]); + --len; + if (this.bufferLength === 64) { + compress(this.state, this.writeBuffer); + this.bufferLength = 0; + } + } + } + async digest() { + const state = Uint32Array.from(this.state); + const buf = new DataView(this.writeBuffer.buffer.slice(0)); + let bufLen = this.bufferLength; + const bits = this.bytesHashed * 8; + buf.setUint8(bufLen++, 128); + if (this.bufferLength % 64 >= 56) { + for (let i = bufLen; i < 64; ++i) { + buf.setUint8(i, 0); + } + compress(state, buf); + bufLen = 0; + } + for (let i = bufLen; i < 56; ++i) { + buf.setUint8(i, 0); + } + buf.setUint32(56, bits >>> 0, true); + buf.setUint32(60, Math.floor(bits / 2 ** 32), true); + compress(state, buf); + const out = new Uint8Array(16); + const view = new DataView(out.buffer); + for (let i = 0; i < 4; ++i) { + view.setUint32(i * 4, state[i], true); + } + return out; + } + reset() { + this.state.set(INIT); + this.writeBuffer = new DataView(new ArrayBuffer(64)); + this.bufferLength = 0; + this.bytesHashed = 0; + } + }; + INIT = [1732584193, 4023233417, 2562383102, 271733878]; + M = 4294967295; + S = Uint8Array.of(7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21); + T = Array.from({ length: 64 }, (_, i) => Math.abs(Math.sin(i + 1)) * 2 ** 32 >>> 0); + __name(compress, "compress"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +import { createHash as createHash3 } from "node:crypto"; +function buildNativeClass() { + return class Md5Node { + static { + __name(this, "Md5Node"); + } + digestLength = 16; + hash = createHash3("md5"); + update(data) { + this.hash.update(toUint8Array(data)); + } + async digest() { + const buf = this.hash.copy().digest(); + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + reset() { + this.hash = createHash3("md5"); + } + }; +} +var hasNativeCrypto, Md5Node; +var init_Md5Node = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js"() { + init_serde(); + init_Md5Js(); + hasNativeCrypto = (() => { + try { + createHash3("md5"); + return true; + } catch { + return false; + } + })(); + Md5Node = hasNativeCrypto ? buildNativeClass() : Md5Js; + __name(buildNativeClass, "buildNativeClass"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +var CRC32_TABLE, ONES, Crc32Js; +var init_Crc32Js = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js"() { + CRC32_TABLE = new Uint32Array(256); + for (let i = 0; i < 256; ++i) { + let c = i; + for (let j = 0; j < 8; ++j) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + CRC32_TABLE[i] = c >>> 0; + } + ONES = 4294967295; + Crc32Js = class { + static { + __name(this, "Crc32Js"); + } + digestLength = 4; + checksum = ONES; + update(data) { + for (let i = 0; i < data.length; ++i) { + this.checksum = this.checksum >>> 8 ^ CRC32_TABLE[(this.checksum ^ data[i]) & 255]; + } + } + digestSync() { + return (this.checksum ^ ONES) >>> 0; + } + async digest() { + const value = this.digestSync(); + const out = new Uint8Array(4); + new DataView(out.buffer).setUint32(0, value, false); + return out; + } + reset() { + this.checksum = ONES; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +import * as zlib from "node:zlib"; +function buildNativeClass2(nativeCrc32) { + return class Crc32Node { + static { + __name(this, "Crc32Node"); + } + digestLength = 4; + value = 0; + update(data) { + this.value = nativeCrc32(data, this.value); + } + digestSync() { + return this.value >>> 0; + } + async digest() { + const out = new Uint8Array(4); + new DataView(out.buffer).setUint32(0, this.digestSync(), false); + return out; + } + reset() { + this.value = 0; + } + }; +} +var zlibCrc32, Crc32Node; +var init_Crc32Node = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js"() { + init_Crc32Js(); + zlibCrc32 = typeof zlib.crc32 === "function" ? zlib.crc32 : void 0; + Crc32Node = zlibCrc32 ? buildNativeClass2(zlibCrc32) : Crc32Js; + __name(buildNativeClass2, "buildNativeClass"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +var BLOCK, DIGEST_LENGTH, MAX_HASHABLE_LENGTH, Sha256Js, INIT2, K; +var init_Sha256Js = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js"() { + init_serde(); + BLOCK = 64; + DIGEST_LENGTH = 32; + MAX_HASHABLE_LENGTH = 2 ** 53 - 1; + Sha256Js = class _Sha256Js { + static { + __name(this, "Sha256Js"); + } + digestLength = DIGEST_LENGTH; + state = Int32Array.from(INIT2); + w; + buffer = new Uint8Array(64); + bufferLength = 0; + bytesHashed = 0; + finished = false; + inner; + outer; + constructor(secret) { + if (secret) { + const key = _Sha256Js.normalizeKey(secret); + this.inner = new _Sha256Js(); + this.outer = new _Sha256Js(); + const { inner, outer } = this; + const pad = new Uint8Array(BLOCK * 2); + for (let i = 0; i < BLOCK; ++i) { + pad[i] = 54 ^ key[i]; + pad[i + BLOCK] = 92 ^ key[i]; + } + inner.update(pad.subarray(0, BLOCK)); + outer.update(pad.subarray(BLOCK)); + } + } + update(data) { + if (this.finished) { + throw new Error("Attempted to update an already finished HMAC."); + } + if (this.inner) { + this.inner.update(data); + return; + } + const chunk = toUint8Array(data); + let position = 0; + let { byteLength } = chunk; + this.bytesHashed += byteLength; + if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) { + throw new Error("Cannot hash more than 2^53 - 1 bits"); + } + while (byteLength > 0) { + this.buffer[this.bufferLength++] = chunk[position++]; + byteLength--; + if (this.bufferLength === BLOCK) { + this.hashBuffer(); + this.bufferLength = 0; + } + } + } + async digest() { + const { inner, outer } = this; + if (inner && outer) { + if (this.finished) { + throw new Error("Attempted to digest an already finished HMAC."); + } + this.finished = true; + const innerDigest = inner.digestSync(); + outer.update(innerDigest); + return outer.digestSync(); + } + return this.digestSync(); + } + reset() { + this.state = Int32Array.from(INIT2); + this.buffer = new Uint8Array(64); + this.bufferLength = 0; + this.bytesHashed = 0; + } + digestSync() { + const state = this.state.slice(); + const buffer = this.buffer.slice(); + let bufferLength = this.bufferLength; + const bitsHashed = this.bytesHashed * 8; + const bufferView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); + bufferView.setUint8(bufferLength++, 128); + if ((bufferLength - 1) % BLOCK >= BLOCK - 8) { + for (let i = bufferLength; i < BLOCK; ++i) { + bufferView.setUint8(i, 0); + } + this.hashBufferWith(state, buffer); + bufferLength = 0; + } + for (let i = bufferLength; i < BLOCK - 8; ++i) { + bufferView.setUint8(i, 0); + } + bufferView.setUint32(BLOCK - 8, Math.floor(bitsHashed / 4294967296), false); + bufferView.setUint32(BLOCK - 4, bitsHashed, false); + this.hashBufferWith(state, buffer); + const out = new Uint8Array(DIGEST_LENGTH); + for (let i = 0; i < 8; ++i) { + out[i * 4] = state[i] >>> 24 & 255; + out[i * 4 + 1] = state[i] >>> 16 & 255; + out[i * 4 + 2] = state[i] >>> 8 & 255; + out[i * 4 + 3] = state[i] >>> 0 & 255; + } + return out; + } + static normalizeKey(secret) { + const key = toUint8Array(secret); + if (key.byteLength > BLOCK) { + const h = new _Sha256Js(); + h.update(key); + const out = h.digestSync(); + const padded = new Uint8Array(BLOCK); + padded.set(out); + return padded; + } + if (key.byteLength < BLOCK) { + const padded = new Uint8Array(BLOCK); + padded.set(key); + return padded; + } + return key; + } + hashBuffer() { + this.hashBufferWith(this.state, this.buffer); + } + hashBufferWith(state, buffer) { + const w = this.w ??= new Int32Array(64); + let s0 = state[0], s1 = state[1], s2 = state[2], s3 = state[3], s4 = state[4], s5 = state[5], s6 = state[6], s7 = state[7]; + for (let i = 0; i < BLOCK; ++i) { + if (i < 16) { + w[i] = (buffer[i * 4] & 255) << 24 | (buffer[i * 4 + 1] & 255) << 16 | (buffer[i * 4 + 2] & 255) << 8 | buffer[i * 4 + 3] & 255; + } else { + let u = w[i - 2]; + const t12 = (u >>> 17 | u << 15) ^ (u >>> 19 | u << 13) ^ u >>> 10; + u = w[i - 15]; + const t22 = (u >>> 7 | u << 25) ^ (u >>> 18 | u << 14) ^ u >>> 3; + w[i] = (t12 + w[i - 7] | 0) + (t22 + w[i - 16] | 0); + } + const t1 = (((s4 >>> 6 | s4 << 26) ^ (s4 >>> 11 | s4 << 21) ^ (s4 >>> 25 | s4 << 7)) + (s4 & s5 ^ ~s4 & s6) | 0) + (s7 + (K[i] + w[i] | 0) | 0) | 0; + const t2 = ((s0 >>> 2 | s0 << 30) ^ (s0 >>> 13 | s0 << 19) ^ (s0 >>> 22 | s0 << 10)) + (s0 & s1 ^ s0 & s2 ^ s1 & s2) | 0; + s7 = s6; + s6 = s5; + s5 = s4; + s4 = s3 + t1 | 0; + s3 = s2; + s2 = s1; + s1 = s0; + s0 = t1 + t2 | 0; + } + state[0] += s0; + state[1] += s1; + state[2] += s2; + state[3] += s3; + state[4] += s4; + state[5] += s5; + state[6] += s6; + state[7] += s7; + } + }; + INIT2 = new Int32Array([ + 1779033703, + 3144134277, + 1013904242, + 2773480762, + 1359893119, + 2600822924, + 528734635, + 1541459225 + ]); + K = new Int32Array([ + 1116352408, + 1899447441, + 3049323471, + 3921009573, + 961987163, + 1508970993, + 2453635748, + 2870763221, + 3624381080, + 310598401, + 607225278, + 1426881987, + 1925078388, + 2162078206, + 2614888103, + 3248222580, + 3835390401, + 4022224774, + 264347078, + 604807628, + 770255983, + 1249150122, + 1555081692, + 1996064986, + 2554220882, + 2821834349, + 2952996808, + 3210313671, + 3336571891, + 3584528711, + 113926993, + 338241895, + 666307205, + 773529912, + 1294757372, + 1396182291, + 1695183700, + 1986661051, + 2177026350, + 2456956037, + 2730485921, + 2820302411, + 3259730800, + 3345764771, + 3516065817, + 3600352804, + 4094571909, + 275423344, + 430227734, + 506948616, + 659060556, + 883997877, + 958139571, + 1322822218, + 1537002063, + 1747873779, + 1955562222, + 2024104815, + 2227730452, + 2361852424, + 2428436474, + 2756734187, + 3204031479, + 3329325298 + ]); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +import { createHash as createHash4, createHmac as createHmac2 } from "node:crypto"; +function buildNativeClass3() { + return class Sha256Node { + static { + __name(this, "Sha256Node"); + } + digestLength = 32; + secret; + hash; + isHmac; + finished = false; + constructor(secret) { + this.secret = secret; + this.isHmac = !!secret; + this.hash = this.createHash(); + } + update(data) { + if (this.finished) { + throw new Error("Attempted to update an already finished hash."); + } + this.hash.update(data); + } + async digest() { + let buf; + if (this.isHmac) { + this.finished = true; + buf = this.hash.digest(); + } else { + buf = this.hash.copy().digest(); + } + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + reset() { + this.hash = this.createHash(); + this.finished = false; + } + createHash() { + return this.secret ? createHmac2("sha256", toBuffer(this.secret)) : createHash4("sha256"); + } + }; +} +function toBuffer(data) { + if (typeof data === "string") { + return data; + } + if (ArrayBuffer.isView(data)) { + return Buffer.from(data.buffer, data.byteOffset, data.byteLength); + } + return Buffer.from(data); +} +var hasNativeCrypto2, Sha256Node; +var init_Sha256Node = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js"() { + init_Sha256Js(); + hasNativeCrypto2 = (() => { + try { + createHash4("sha256"); + return true; + } catch { + return false; + } + })(); + Sha256Node = hasNativeCrypto2 ? buildNativeClass3() : Sha256Js; + __name(buildNativeClass3, "buildNativeClass"); + __name(toBuffer, "toBuffer"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +var digest, sign, importKey, subtle, MAX_PENDING_BYTES, Sha256WebCrypto; +var init_Sha256WebCrypto = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js"() { + init_serde(); + init_Sha256Js(); + ({ digest, sign, importKey } = globalThis?.crypto?.subtle ?? {}); + subtle = typeof digest === "function" && typeof sign === "function" && typeof importKey === "function" ? globalThis.crypto.subtle : void 0; + MAX_PENDING_BYTES = 8 * 1024 * 1024; + Sha256WebCrypto = class { + static { + __name(this, "Sha256WebCrypto"); + } + digestLength = 32; + secret; + pending = []; + pendingBytes = 0; + fallback; + finished = false; + constructor(secret) { + if (secret) { + this.secret = toUint8Array(secret); + } + } + update(data) { + if (this.finished) { + throw new Error("Attempted to update an already finished HMAC."); + } + if (this.fallback) { + this.fallback.update(data); + return; + } + this.pending.push(data.slice()); + this.pendingBytes += data.byteLength; + if (this.pendingBytes >= MAX_PENDING_BYTES) { + this.switchToFallback(); + } + } + async digest() { + if (this.fallback) { + return this.fallback.digest(); + } + if (this.secret && this.finished) { + throw new Error("Attempted to digest an already finished HMAC."); + } + const data = concatBytes(this.pending); + if (subtle) { + if (this.secret) { + this.finished = true; + const key = await subtle.importKey("raw", this.secret, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]); + const sig = await subtle.sign("HMAC", key, data); + return new Uint8Array(sig); + } + const hash = await subtle.digest("SHA-256", data); + return new Uint8Array(hash); + } + const sha256 = new Sha256Js(this.secret); + sha256.update(data); + return sha256.digest(); + } + reset() { + this.pending = []; + this.pendingBytes = 0; + this.fallback = void 0; + this.finished = false; + } + switchToFallback() { + const sha256Js = new Sha256Js(this.secret); + for (const chunk of this.pending) { + sha256Js.update(chunk); + } + this.fallback = sha256Js; + this.pending = []; + this.pendingBytes = 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +var checksum_exports = {}; +__export(checksum_exports, { + Crc32: () => Crc32Node, + Crc32Js: () => Crc32Js, + Crc32Node: () => Crc32Node, + Md5: () => Md5Node, + Md5Js: () => Md5Js, + Md5Node: () => Md5Node, + Sha256: () => Sha256Node, + Sha256Js: () => Sha256Js, + Sha256Node: () => Sha256Node, + Sha256WebCrypto: () => Sha256WebCrypto, + blobHasher: () => blobHasher, + blobReader: () => blobReader, + fileStreamHasher: () => fileStreamHasher, + readableStreamHasher: () => readableStreamHasher +}); +var init_checksum2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/checksum/index.js"() { + init_blobHasher(); + init_fileStreamHasher(); + init_readableStreamHasher(); + init_Md5Js(); + init_Md5Node(); + init_Crc32Js(); + init_Crc32Node(); + init_Sha256Js(); + init_Sha256Node(); + init_Sha256WebCrypto(); + init_chunked_blob_reader(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/Int64.js +function negate(bytes) { + for (let i = 0; i < 8; i++) { + bytes[i] ^= 255; + } + for (let i = 7; i > -1; i--) { + bytes[i]++; + if (bytes[i] !== 0) + break; + } +} +var Int64; +var init_Int64 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/Int64.js"() { + init_serde(); + Int64 = class _Int64 { + static { + __name(this, "Int64"); + } + bytes; + constructor(bytes) { + this.bytes = bytes; + if (bytes.byteLength !== 8) { + throw new Error("Int64 buffers must be exactly 8 bytes"); + } + } + static fromNumber(number) { + if (number > 9223372036854776e3 || number < -9223372036854776e3) { + throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`); + } + const bytes = new Uint8Array(8); + for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) { + bytes[i] = remaining; + } + if (number < 0) { + negate(bytes); + } + return new _Int64(bytes); + } + valueOf() { + const bytes = this.bytes.slice(0); + const negative = bytes[0] & 128; + if (negative) { + negate(bytes); + } + return parseInt(toHex(bytes), 16) * (negative ? -1 : 1); + } + toString() { + return String(this.valueOf()); + } + }; + __name(negate, "negate"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/HeaderMarshaller.js +var HeaderMarshaller, HEADER_VALUE_TYPE, BOOLEAN_TAG, BYTE_TAG, SHORT_TAG, INT_TAG, LONG_TAG, BINARY_TAG, STRING_TAG, TIMESTAMP_TAG, UUID_TAG, UUID_PATTERN; +var init_HeaderMarshaller = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/HeaderMarshaller.js"() { + init_transport(); + init_serde(); + init_Int64(); + HeaderMarshaller = class { + static { + __name(this, "HeaderMarshaller"); + } + toUtf8; + fromUtf8; + constructor(toUtf83, fromUtf83) { + this.toUtf8 = toUtf83; + this.fromUtf8 = fromUtf83; + } + format(headers) { + const chunks = []; + for (const headerName in headers) { + if (!hasOwn(headers, headerName)) + continue; + const bytes = this.fromUtf8(headerName); + chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName])); + } + const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0)); + let position = 0; + for (const chunk of chunks) { + out.set(chunk, position); + position += chunk.byteLength; + } + return out; + } + formatHeaderValue(header) { + switch (header.type) { + case "boolean": + return Uint8Array.from([header.value ? 0 : 1]); + case "byte": + return Uint8Array.from([2, header.value]); + case "short": + const shortView = new DataView(new ArrayBuffer(3)); + shortView.setUint8(0, 3); + shortView.setInt16(1, header.value, false); + return new Uint8Array(shortView.buffer); + case "integer": + const intView = new DataView(new ArrayBuffer(5)); + intView.setUint8(0, 4); + intView.setInt32(1, header.value, false); + return new Uint8Array(intView.buffer); + case "long": + const longBytes = new Uint8Array(9); + longBytes[0] = 5; + longBytes.set(header.value.bytes, 1); + return longBytes; + case "binary": + const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength)); + binView.setUint8(0, 6); + binView.setUint16(1, header.value.byteLength, false); + const binBytes = new Uint8Array(binView.buffer); + binBytes.set(header.value, 3); + return binBytes; + case "string": + const utf8Bytes = this.fromUtf8(header.value); + const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength)); + strView.setUint8(0, 7); + strView.setUint16(1, utf8Bytes.byteLength, false); + const strBytes = new Uint8Array(strView.buffer); + strBytes.set(utf8Bytes, 3); + return strBytes; + case "timestamp": + const tsBytes = new Uint8Array(9); + tsBytes[0] = 8; + tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1); + return tsBytes; + case "uuid": + if (!UUID_PATTERN.test(header.value)) { + throw new Error(`Invalid UUID received: ${header.value}`); + } + const uuidBytes = new Uint8Array(17); + uuidBytes[0] = 9; + uuidBytes.set(fromHex(header.value.replace(/-/g, "")), 1); + return uuidBytes; + } + } + parse(headers) { + const out = {}; + let position = 0; + while (position < headers.byteLength) { + const nameLength = headers.getUint8(position++); + const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength)); + position += nameLength; + switch (headers.getUint8(position++)) { + case 0: + out[name] = { + type: BOOLEAN_TAG, + value: true + }; + break; + case 1: + out[name] = { + type: BOOLEAN_TAG, + value: false + }; + break; + case 2: + out[name] = { + type: BYTE_TAG, + value: headers.getInt8(position++) + }; + break; + case 3: + out[name] = { + type: SHORT_TAG, + value: headers.getInt16(position, false) + }; + position += 2; + break; + case 4: + out[name] = { + type: INT_TAG, + value: headers.getInt32(position, false) + }; + position += 4; + break; + case 5: + out[name] = { + type: LONG_TAG, + value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)) + }; + position += 8; + break; + case 6: + const binaryLength = headers.getUint16(position, false); + position += 2; + out[name] = { + type: BINARY_TAG, + value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength) + }; + position += binaryLength; + break; + case 7: + const stringLength = headers.getUint16(position, false); + position += 2; + out[name] = { + type: STRING_TAG, + value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)) + }; + position += stringLength; + break; + case 8: + out[name] = { + type: TIMESTAMP_TAG, + value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()) + }; + position += 8; + break; + case 9: + const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16); + position += 16; + out[name] = { + type: UUID_TAG, + value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}` + }; + break; + default: + throw new Error(`Unrecognized header type tag`); + } + } + return out; + } + }; + (function(HEADER_VALUE_TYPE2) { + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["boolTrue"] = 0] = "boolTrue"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["boolFalse"] = 1] = "boolFalse"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["byte"] = 2] = "byte"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["short"] = 3] = "short"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["integer"] = 4] = "integer"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["long"] = 5] = "long"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["byteArray"] = 6] = "byteArray"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["string"] = 7] = "string"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["timestamp"] = 8] = "timestamp"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["uuid"] = 9] = "uuid"; + })(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {})); + BOOLEAN_TAG = "boolean"; + BYTE_TAG = "byte"; + SHORT_TAG = "short"; + INT_TAG = "integer"; + LONG_TAG = "long"; + BINARY_TAG = "binary"; + STRING_TAG = "string"; + TIMESTAMP_TAG = "timestamp"; + UUID_TAG = "uuid"; + UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/splitMessage.js +function splitMessage({ byteLength, byteOffset, buffer }) { + if (byteLength < MINIMUM_MESSAGE_LENGTH) { + throw new Error("Provided message too short to accommodate event stream message overhead"); + } + const view = new DataView(buffer, byteOffset, byteLength); + const messageLength = view.getUint32(0, false); + if (byteLength !== messageLength) { + throw new Error("Reported message length does not match received message length"); + } + const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false); + const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false); + const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false); + const checksummer = new Crc32Node(); + checksummer.update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH)); + if (expectedPreludeChecksum !== checksummer.digestSync()) { + throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digestSync()})`); + } + checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH))); + if (expectedMessageChecksum !== checksummer.digestSync()) { + throw new Error(`The message checksum (${checksummer.digestSync()}) did not match the expected value of ${expectedMessageChecksum}`); + } + return { + headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength), + body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)) + }; +} +var PRELUDE_MEMBER_LENGTH, PRELUDE_LENGTH, CHECKSUM_LENGTH, MINIMUM_MESSAGE_LENGTH; +var init_splitMessage = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/splitMessage.js"() { + init_checksum2(); + PRELUDE_MEMBER_LENGTH = 4; + PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2; + CHECKSUM_LENGTH = 4; + MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2; + __name(splitMessage, "splitMessage"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/EventStreamCodec.js +var EventStreamCodec; +var init_EventStreamCodec = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/EventStreamCodec.js"() { + init_checksum2(); + init_HeaderMarshaller(); + init_splitMessage(); + EventStreamCodec = class { + static { + __name(this, "EventStreamCodec"); + } + headerMarshaller; + messageBuffer; + isEndOfStream; + constructor(toUtf83, fromUtf83) { + this.headerMarshaller = new HeaderMarshaller(toUtf83, fromUtf83); + this.messageBuffer = []; + this.isEndOfStream = false; + } + feed(message) { + this.messageBuffer.push(this.decode(message)); + } + endOfStream() { + this.isEndOfStream = true; + } + getMessage() { + const message = this.messageBuffer.pop(); + const isEndOfStream = this.isEndOfStream; + return { + getMessage() { + return message; + }, + isEndOfStream() { + return isEndOfStream; + } + }; + } + getAvailableMessages() { + const messages = this.messageBuffer; + this.messageBuffer = []; + const isEndOfStream = this.isEndOfStream; + return { + getMessages() { + return messages; + }, + isEndOfStream() { + return isEndOfStream; + } + }; + } + encode({ headers: rawHeaders, body }) { + const headers = this.headerMarshaller.format(rawHeaders); + const length = headers.byteLength + body.byteLength + 16; + const out = new Uint8Array(length); + const view = new DataView(out.buffer, out.byteOffset, out.byteLength); + const checksum = new Crc32Node(); + view.setUint32(0, length, false); + view.setUint32(4, headers.byteLength, false); + checksum.update(out.subarray(0, 8)); + view.setUint32(8, checksum.digestSync(), false); + out.set(headers, 12); + out.set(body, headers.byteLength + 12); + checksum.update(out.subarray(8, length - 4)); + view.setUint32(length - 4, checksum.digestSync(), false); + return out; + } + decode(message) { + const { headers, body } = splitMessage(message); + return { headers: this.headerMarshaller.parse(headers), body }; + } + formatHeaders(rawHeaders) { + return this.headerMarshaller.format(rawHeaders); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/MessageDecoderStream.js +var MessageDecoderStream; +var init_MessageDecoderStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/MessageDecoderStream.js"() { + MessageDecoderStream = class { + static { + __name(this, "MessageDecoderStream"); + } + options; + constructor(options) { + this.options = options; + } + [Symbol.asyncIterator]() { + return this.asyncIterator(); + } + async *asyncIterator() { + for await (const bytes of this.options.inputStream) { + const decoded = this.options.decoder.decode(bytes); + yield decoded; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/MessageEncoderStream.js +var MessageEncoderStream; +var init_MessageEncoderStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/MessageEncoderStream.js"() { + MessageEncoderStream = class { + static { + __name(this, "MessageEncoderStream"); + } + options; + constructor(options) { + this.options = options; + } + [Symbol.asyncIterator]() { + return this.asyncIterator(); + } + async *asyncIterator() { + for await (const msg of this.options.messageStream) { + const encoded = this.options.encoder.encode(msg); + yield encoded; + } + if (this.options.includeEndFrame) { + yield new Uint8Array(0); + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/SmithyMessageDecoderStream.js +var SmithyMessageDecoderStream; +var init_SmithyMessageDecoderStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/SmithyMessageDecoderStream.js"() { + SmithyMessageDecoderStream = class { + static { + __name(this, "SmithyMessageDecoderStream"); + } + options; + constructor(options) { + this.options = options; + } + [Symbol.asyncIterator]() { + return this.asyncIterator(); + } + async *asyncIterator() { + for await (const message of this.options.messageStream) { + const deserialized = await this.options.deserializer(message); + if (deserialized === void 0) + continue; + yield deserialized; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/SmithyMessageEncoderStream.js +var SmithyMessageEncoderStream; +var init_SmithyMessageEncoderStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/SmithyMessageEncoderStream.js"() { + SmithyMessageEncoderStream = class { + static { + __name(this, "SmithyMessageEncoderStream"); + } + options; + constructor(options) { + this.options = options; + } + [Symbol.asyncIterator]() { + return this.asyncIterator(); + } + async *asyncIterator() { + for await (const chunk of this.options.inputStream) { + const payloadBuf = this.options.serializer(chunk); + yield payloadBuf; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-universal/getChunkedStream.js +function getChunkedStream(source) { + let currentMessageTotalLength = 0; + let currentMessagePendingLength = 0; + let currentMessage = null; + let messageLengthBuffer = null; + const allocateMessage = /* @__PURE__ */ __name((size) => { + if (typeof size !== "number") { + throw new Error("Attempted to allocate an event message where size was not a number: " + size); + } + currentMessageTotalLength = size; + currentMessagePendingLength = 4; + currentMessage = new Uint8Array(size); + const currentMessageView = new DataView(currentMessage.buffer); + currentMessageView.setUint32(0, size, false); + }, "allocateMessage"); + const iterator = /* @__PURE__ */ __name(async function* () { + const sourceIterator = source[Symbol.asyncIterator](); + while (true) { + const { value, done } = await sourceIterator.next(); + if (done) { + if (!currentMessageTotalLength) { + return; + } else if (currentMessageTotalLength === currentMessagePendingLength) { + yield currentMessage; + } else { + throw new Error("Truncated event message received."); + } + return; + } + const chunkLength = value.length; + let currentOffset = 0; + while (currentOffset < chunkLength) { + if (!currentMessage) { + const bytesRemaining = chunkLength - currentOffset; + if (!messageLengthBuffer) { + messageLengthBuffer = new Uint8Array(4); + } + const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining); + messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength); + currentMessagePendingLength += numBytesForTotal; + currentOffset += numBytesForTotal; + if (currentMessagePendingLength < 4) { + break; + } + allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false)); + messageLengthBuffer = null; + } + const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset); + currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength); + currentMessagePendingLength += numBytesToWrite; + currentOffset += numBytesToWrite; + if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) { + yield currentMessage; + currentMessage = null; + currentMessageTotalLength = 0; + currentMessagePendingLength = 0; + } + } + } + }, "iterator"); + return { + [Symbol.asyncIterator]: iterator + }; +} +var init_getChunkedStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-universal/getChunkedStream.js"() { + __name(getChunkedStream, "getChunkedStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-universal/getUnmarshalledStream.js +function getUnmarshalledStream(source, options) { + const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8); + return { + [Symbol.asyncIterator]: async function* () { + for await (const chunk of source) { + const message = options.eventStreamCodec.decode(chunk); + const type = await messageUnmarshaller(message); + if (type === void 0) + continue; + yield type; + } + } + }; +} +function getMessageUnmarshaller(deserializer, toUtf83) { + return async function(message) { + const { value: messageType } = message.headers[":message-type"]; + if (messageType === "error") { + const unmodeledError = new Error(message.headers[":error-message"].value || "UnknownError"); + unmodeledError.name = message.headers[":error-code"].value; + throw unmodeledError; + } else if (messageType === "exception") { + const code = message.headers[":exception-type"].value; + const exception = { [code]: message }; + const deserializedException = await deserializer(exception); + if (deserializedException.$unknown) { + const error2 = new Error(toUtf83(message.body)); + error2.name = code; + throw error2; + } + throw deserializedException[code]; + } else if (messageType === "event") { + const event = { + [message.headers[":event-type"].value]: message + }; + const deserialized = await deserializer(event); + if (deserialized.$unknown) + return; + return deserialized; + } else { + throw Error(`Unrecognizable event type: ${message.headers[":event-type"].value}`); + } + }; +} +var init_getUnmarshalledStream = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-universal/getUnmarshalledStream.js"() { + __name(getUnmarshalledStream, "getUnmarshalledStream"); + __name(getMessageUnmarshaller, "getMessageUnmarshaller"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-universal/EventStreamMarshaller.js +var EventStreamMarshaller, eventStreamSerdeProvider; +var init_EventStreamMarshaller = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-universal/EventStreamMarshaller.js"() { + init_EventStreamCodec(); + init_MessageDecoderStream(); + init_MessageEncoderStream(); + init_SmithyMessageDecoderStream(); + init_SmithyMessageEncoderStream(); + init_getChunkedStream(); + init_getUnmarshalledStream(); + EventStreamMarshaller = class { + static { + __name(this, "EventStreamMarshaller"); + } + eventStreamCodec; + utfEncoder; + constructor({ utf8Encoder, utf8Decoder }) { + this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder); + this.utfEncoder = utf8Encoder; + } + deserialize(body, deserializer) { + const inputStream = getChunkedStream(body); + return new SmithyMessageDecoderStream({ + messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }), + deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder) + }); + } + serialize(inputStream, serializer) { + return new MessageEncoderStream({ + messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }), + encoder: this.eventStreamCodec, + includeEndFrame: true + }); + } + }; + eventStreamSerdeProvider = /* @__PURE__ */ __name((options) => new EventStreamMarshaller(options), "eventStreamSerdeProvider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde/EventStreamMarshaller.js +import { Readable as Readable5 } from "node:stream"; +async function* readableToIterable(readStream) { + let streamEnded = false; + let generationEnded = false; + const records = new Array(); + readStream.on("error", (err) => { + if (!streamEnded) { + streamEnded = true; + } + if (err) { + throw err; + } + }); + readStream.on("data", (data) => { + records.push(data); + }); + readStream.on("end", () => { + streamEnded = true; + }); + while (!generationEnded) { + const value = await new Promise((resolve) => setTimeout(() => resolve(records.shift()), 0)); + if (value) { + yield value; + } + generationEnded = streamEnded && records.length === 0; + } +} +var EventStreamMarshaller2, eventStreamSerdeProvider2; +var init_EventStreamMarshaller2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde/EventStreamMarshaller.js"() { + init_EventStreamMarshaller(); + EventStreamMarshaller2 = class { + static { + __name(this, "EventStreamMarshaller"); + } + universalMarshaller; + constructor({ utf8Encoder, utf8Decoder }) { + this.universalMarshaller = new EventStreamMarshaller({ + utf8Decoder, + utf8Encoder + }); + } + deserialize(body, deserializer) { + const bodyIterable = typeof body[Symbol.asyncIterator] === "function" ? body : readableToIterable(body); + return this.universalMarshaller.deserialize(bodyIterable, deserializer); + } + serialize(input, serializer) { + return Readable5.from(this.universalMarshaller.serialize(input, serializer)); + } + }; + eventStreamSerdeProvider2 = /* @__PURE__ */ __name((options) => new EventStreamMarshaller2(options), "eventStreamSerdeProvider"); + __name(readableToIterable, "readableToIterable"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde/utils.js +var readableStreamToIterable, iterableToReadableStream; +var init_utils2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde/utils.js"() { + readableStreamToIterable = /* @__PURE__ */ __name((readableStream) => ({ + [Symbol.asyncIterator]: async function* () { + const reader = readableStream.getReader(); + try { + while (true) { + const { done, value } = await reader.read(); + if (done) + return; + yield value; + } + } finally { + reader.releaseLock(); + } + } + }), "readableStreamToIterable"); + iterableToReadableStream = /* @__PURE__ */ __name((asyncIterable) => { + const iterator = asyncIterable[Symbol.asyncIterator](); + return new ReadableStream({ + async pull(controller) { + const { done, value } = await iterator.next(); + if (done) { + return controller.close(); + } + controller.enqueue(value); + } + }); + }, "iterableToReadableStream"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-config-resolver/EventStreamSerdeConfig.js +var resolveEventStreamSerdeConfig; +var init_EventStreamSerdeConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-serde-config-resolver/EventStreamSerdeConfig.js"() { + resolveEventStreamSerdeConfig = /* @__PURE__ */ __name((input) => Object.assign(input, { + eventStreamMarshaller: input.eventStreamSerdeProvider(input) + }), "resolveEventStreamSerdeConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +var EventStreamSerde; +var init_EventStreamSerde = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js"() { + init_transport(); + init_schema(); + init_serde(); + EventStreamSerde = class { + static { + __name(this, "EventStreamSerde"); + } + marshaller; + serializer; + deserializer; + serdeContext; + defaultContentType; + compositeErrorRegistry; + constructor({ marshaller, serializer, deserializer, serdeContext, defaultContentType, compositeErrorRegistry }) { + this.marshaller = marshaller; + this.serializer = serializer; + this.deserializer = deserializer; + this.serdeContext = serdeContext; + this.defaultContentType = defaultContentType; + this.compositeErrorRegistry = compositeErrorRegistry; + } + async serializeEventStream({ eventStream, requestSchema, initialRequest, initialMessageType }) { + const marshaller = this.marshaller; + const eventStreamMember = requestSchema.getEventStreamMember(); + const unionSchema = requestSchema.getMemberSchema(eventStreamMember); + const serializer = this.serializer; + const defaultContentType = this.defaultContentType; + const initialRequestMarker = /* @__PURE__ */ Symbol("initialRequestMarker"); + const eventStreamIterable = { + async *[Symbol.asyncIterator]() { + if (initialRequest) { + const headers = { + ":event-type": { type: "string", value: initialMessageType ?? "initial-request" }, + ":message-type": { type: "string", value: "event" }, + ":content-type": { type: "string", value: defaultContentType } + }; + serializer.write(requestSchema, initialRequest); + const body = serializer.flush(); + yield { + [initialRequestMarker]: true, + headers, + body + }; + } + for await (const page of eventStream) { + yield page; + } + } + }; + return marshaller.serialize(eventStreamIterable, (event) => { + if (event[initialRequestMarker]) { + return { + headers: event.headers, + body: event.body + }; + } + let unionMember = ""; + for (const key in event) { + if (!hasOwn(event, key)) + continue; + if (key !== "__type") { + unionMember = key; + break; + } + } + const { additionalHeaders, body, eventType, explicitPayloadContentType } = this.writeEventBody(unionMember, unionSchema, event); + const headers = { + ":event-type": { type: "string", value: eventType }, + ":message-type": { type: "string", value: "event" }, + ":content-type": { type: "string", value: explicitPayloadContentType ?? defaultContentType }, + ...additionalHeaders + }; + return { + headers, + body + }; + }); + } + async deserializeEventStream({ response, responseSchema, initialResponseContainer, initialMessageType }) { + const marshaller = this.marshaller; + const eventStreamMember = responseSchema.getEventStreamMember(); + const unionSchema = responseSchema.getMemberSchema(eventStreamMember); + const memberSchemas = unionSchema.getMemberSchemas(); + const initialResponseMarker = /* @__PURE__ */ Symbol("initialResponseMarker"); + const asyncIterable = marshaller.deserialize(response.body, async (event) => { + let unionMember = ""; + for (const key in event) { + if (!hasOwn(event, key)) + continue; + if (key !== "__type") { + unionMember = key; + break; + } + } + const body = event[unionMember].body; + if (unionMember === (initialMessageType ?? "initial-response")) { + const dataObject = await this.deserializer.read(responseSchema, body); + delete dataObject[eventStreamMember]; + return { + [initialResponseMarker]: true, + ...dataObject + }; + } else if (unionMember in memberSchemas) { + const eventStreamSchema = memberSchemas[unionMember]; + if (eventStreamSchema.isStructSchema()) { + const out = {}; + let hasBindings = false; + for (const [name, member2] of eventStreamSchema.structIterator()) { + const { eventHeader, eventPayload } = member2.getMergedTraits(); + hasBindings = hasBindings || Boolean(eventHeader || eventPayload); + if (eventPayload) { + if (member2.isBlobSchema()) { + out[name] = body; + } else if (member2.isStringSchema()) { + out[name] = (this.serdeContext?.utf8Encoder ?? toUtf8)(body); + } else if (member2.isStructSchema()) { + out[name] = await this.deserializer.read(member2, body); + } + } else if (eventHeader) { + const value = event[unionMember].headers[name]?.value; + if (value != null) { + if (member2.isNumericSchema()) { + if (value && typeof value === "object" && "bytes" in value) { + out[name] = BigInt(value.toString()); + } else { + out[name] = Number(value); + } + } else { + out[name] = value; + } + } + } + } + return { + [unionMember]: await this.readEventMember(eventStreamSchema, body, hasBindings, out) + }; + } + return { + [unionMember]: await this.deserializer.read(eventStreamSchema, body) + }; + } else { + return { + $unknown: event + }; + } + }); + const asyncIterator = asyncIterable[Symbol.asyncIterator](); + const firstEvent = await asyncIterator.next(); + if (firstEvent.done) { + return asyncIterable; + } + if (firstEvent.value?.[initialResponseMarker]) { + if (!responseSchema) { + throw new Error("@smithy::core/protocols - initial-response event encountered in event stream but no response schema given."); + } + for (const key in firstEvent.value) { + if (!hasOwn(firstEvent.value, key)) + continue; + initialResponseContainer[key] = firstEvent.value[key]; + } + } + return { + async *[Symbol.asyncIterator]() { + if (!firstEvent?.value?.[initialResponseMarker]) { + yield firstEvent.value; + } + while (true) { + const { done, value } = await asyncIterator.next(); + if (done) { + break; + } + yield value; + } + } + }; + } + async readEventMember(eventStreamSchema, body, hasBindings, out) { + let ErrCtor; + const staticStructuralSchema = eventStreamSchema.getSchema(); + if (Array.isArray(staticStructuralSchema) && staticStructuralSchema[0] === -3) { + const namespace = staticStructuralSchema[1]; + const nsRegistry = TypeRegistry.for(namespace); + this.compositeErrorRegistry?.copyFrom(nsRegistry); + ErrCtor = (this.compositeErrorRegistry ?? nsRegistry)?.getErrorCtor(staticStructuralSchema); + } + const dataObject = hasBindings ? out : body.byteLength === 0 ? {} : await this.deserializer.read(eventStreamSchema, body); + if (ErrCtor) { + const message = dataObject.message ?? dataObject.Message ?? "Unknown"; + const metadata = {}; + const $fault = eventStreamSchema.getMergedTraits().error; + if ($fault) { + metadata.$fault = $fault; + } + return Object.assign(new ErrCtor({}), metadata, { + message + }, dataObject); + } + return dataObject; + } + writeEventBody(unionMember, unionSchema, event) { + const serializer = this.serializer; + let eventType = unionMember; + let explicitPayloadMember = null; + let explicitPayloadContentType; + const isKnownSchema = (() => { + const struct2 = unionSchema.getSchema(); + return struct2[4].includes(unionMember); + })(); + const additionalHeaders = {}; + if (!isKnownSchema) { + const [type, value] = event[unionMember]; + eventType = type; + serializer.write(15, value); + } else { + const eventSchema = unionSchema.getMemberSchema(unionMember); + if (eventSchema.isStructSchema()) { + for (const [memberName, memberSchema] of eventSchema.structIterator()) { + const { eventHeader, eventPayload } = memberSchema.getMergedTraits(); + if (eventPayload) { + explicitPayloadMember = memberName; + } else if (eventHeader) { + const value = event[unionMember][memberName]; + let type = "binary"; + if (memberSchema.isNumericSchema()) { + if ((-2) ** 31 <= value && value <= 2 ** 31 - 1) { + type = "integer"; + } else { + type = "long"; + } + } else if (memberSchema.isTimestampSchema()) { + type = "timestamp"; + } else if (memberSchema.isStringSchema()) { + type = "string"; + } else if (memberSchema.isBooleanSchema()) { + type = "boolean"; + } + if (value != null) { + additionalHeaders[memberName] = { + type, + value + }; + delete event[unionMember][memberName]; + } + } + } + if (explicitPayloadMember !== null) { + const payloadSchema = eventSchema.getMemberSchema(explicitPayloadMember); + if (payloadSchema.isBlobSchema()) { + explicitPayloadContentType = "application/octet-stream"; + } else if (payloadSchema.isStringSchema()) { + explicitPayloadContentType = "text/plain"; + } + serializer.write(payloadSchema, event[unionMember][explicitPayloadMember]); + } else { + serializer.write(eventSchema, event[unionMember]); + } + } else if (eventSchema.isUnitSchema()) { + serializer.write(eventSchema, {}); + } else { + throw new Error("@smithy/core/event-streams - non-struct member not supported in event stream union."); + } + } + const messageSerialization = serializer.flush() ?? new Uint8Array(); + const body = typeof messageSerialization === "string" ? (this.serdeContext?.utf8Decoder ?? fromUtf8)(messageSerialization) : messageSerialization; + return { + body, + eventType, + explicitPayloadContentType, + additionalHeaders + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/index.js +var event_streams_exports = {}; +__export(event_streams_exports, { + EventStreamCodec: () => EventStreamCodec, + EventStreamMarshaller: () => EventStreamMarshaller2, + EventStreamSerde: () => EventStreamSerde, + HeaderMarshaller: () => HeaderMarshaller, + Int64: () => Int64, + MessageDecoderStream: () => MessageDecoderStream, + MessageEncoderStream: () => MessageEncoderStream, + SmithyMessageDecoderStream: () => SmithyMessageDecoderStream, + SmithyMessageEncoderStream: () => SmithyMessageEncoderStream, + UniversalEventStreamMarshaller: () => EventStreamMarshaller, + eventStreamSerdeProvider: () => eventStreamSerdeProvider2, + getChunkedStream: () => getChunkedStream, + getMessageUnmarshaller: () => getMessageUnmarshaller, + getUnmarshalledStream: () => getUnmarshalledStream, + iterableToReadableStream: () => iterableToReadableStream, + readableStreamToIterable: () => readableStreamToIterable, + resolveEventStreamSerdeConfig: () => resolveEventStreamSerdeConfig, + universalEventStreamSerdeProvider: () => eventStreamSerdeProvider +}); +var init_event_streams = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/event-streams/index.js"() { + init_EventStreamCodec(); + init_HeaderMarshaller(); + init_Int64(); + init_MessageDecoderStream(); + init_MessageEncoderStream(); + init_SmithyMessageDecoderStream(); + init_SmithyMessageEncoderStream(); + init_EventStreamMarshaller2(); + init_utils2(); + init_EventStreamMarshaller(); + init_getChunkedStream(); + init_getUnmarshalledStream(); + init_EventStreamSerdeConfig(); + init_EventStreamSerde(); + } +}); + +export { + require_dist_cjs, + getSmithyContext, + hasOwn, + HttpRequest, + HttpResponse, + isValidHostLabel, + isValidHostname, + normalizeProvider, + parseQueryString, + parseUrl, + init_transport, + Client, + deref, + getSchemaSerdePlugin, + translateTraits, + NormalizedSchema, + TypeRegistry, + schema_exports, + init_schema, + Command, + createAggregatedClient, + ServiceException, + decorateServiceException, + loadConfigsForDefaultMode, + emitWarningIfUnsupportedVersion, + getDefaultExtensionConfiguration, + resolveDefaultRuntimeConfig, + getValueFromTextNode, + NoOpLogger, + makeBuilder, + client_exports, + init_client2 as init_client, + isArrayBuffer, + fromBase64, + fromUtf8, + toBase64, + toUtf8, + dateToUtcString, + parseRfc3339DateTimeWithOffset, + parseRfc7231DateTime, + parseEpochTimestamp, + LazyJsonString, + quoteHeader, + _parseEpochTimestamp, + _parseRfc3339DateTimeWithOffset, + _parseRfc7231DateTime, + splitEvery, + splitHeader, + NumericValue, + calculateBodyLength, + toUint8Array, + concatBytes, + ProviderError, + booleanSelector, + SelectorType, + loadConfig, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + REGION_ENV_NAME, + REGION_INI_NAME, + NODE_REGION_CONFIG_OPTIONS, + NODE_REGION_CONFIG_FILE_OPTIONS, + resolveRegionConfig, + resolveDefaultsModeConfig, + config_exports, + init_config2 as init_config, + resolveParams, + BinaryDecisionDiagram, + EndpointCache, + EndpointError, + customEndpointFunctions, + isIpAddress, + decideEndpoint, + resolveEndpoint, + resolveEndpointConfig, + getEndpointPlugin, + endpoints_exports, + init_endpoints, + createChecksumStream2 as createChecksumStream, + createBufferedReadable, + sdkStreamMixin2 as sdkStreamMixin, + Uint8ArrayBlobAdapter, + v4, + generateIdempotencyToken, + serde_exports, + init_serde, + Crc32Node, + Sha256Js, + Sha256Node, + checksum_exports, + init_checksum2 as init_checksum, + Int64, + HeaderMarshaller, + EventStreamCodec, + MessageDecoderStream, + MessageEncoderStream, + SmithyMessageDecoderStream, + SmithyMessageEncoderStream, + getChunkedStream, + getUnmarshalledStream, + getMessageUnmarshaller, + EventStreamMarshaller, + eventStreamSerdeProvider, + EventStreamMarshaller2, + eventStreamSerdeProvider2, + readableStreamToIterable, + iterableToReadableStream, + resolveEventStreamSerdeConfig, + EventStreamSerde, + event_streams_exports, + init_event_streams +}; diff --git a/apps/api/.output/dist/chunks/chunk-A34KYKJP.js b/apps/api/.output/dist/chunks/chunk-A34KYKJP.js new file mode 100644 index 0000000..459cff8 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-A34KYKJP.js @@ -0,0 +1,129 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + __commonJS, + __name +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js +var require_ms = __commonJS({ + "../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js"(exports, module) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + __name(parse, "parse"); + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + __name(fmtShort, "fmtShort"); + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + __name(fmtLong, "fmtLong"); + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + __name(plural, "plural"); + } +}); + +export { + require_ms +}; diff --git a/apps/api/.output/dist/chunks/chunk-BX2ML7LW.js b/apps/api/.output/dist/chunks/chunk-BX2ML7LW.js new file mode 100644 index 0000000..27f2858 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-BX2ML7LW.js @@ -0,0 +1,15727 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + __commonJS, + __esm, + __export, + __name, + __toESM +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/reflect-metadata@0.2.2/node_modules/reflect-metadata/Reflect.js +var require_Reflect = __commonJS({ + "../../node_modules/.pnpm/reflect-metadata@0.2.2/node_modules/reflect-metadata/Reflect.js"() { + var Reflect2; + (function(Reflect3) { + (function(factory) { + var root = typeof globalThis === "object" ? globalThis : typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : sloppyModeThis(); + var exporter = makeExporter(Reflect3); + if (typeof root.Reflect !== "undefined") { + exporter = makeExporter(root.Reflect, exporter); + } + factory(exporter, root); + if (typeof root.Reflect === "undefined") { + root.Reflect = Reflect3; + } + function makeExporter(target, previous) { + return function(key, value) { + Object.defineProperty(target, key, { configurable: true, writable: true, value }); + if (previous) + previous(key, value); + }; + } + __name(makeExporter, "makeExporter"); + function functionThis() { + try { + return Function("return this;")(); + } catch (_) { + } + } + __name(functionThis, "functionThis"); + function indirectEvalThis() { + try { + return (void 0, eval)("(function() { return this; })()"); + } catch (_) { + } + } + __name(indirectEvalThis, "indirectEvalThis"); + function sloppyModeThis() { + return functionThis() || indirectEvalThis(); + } + __name(sloppyModeThis, "sloppyModeThis"); + })(function(exporter, root) { + var hasOwn = Object.prototype.hasOwnProperty; + var supportsSymbol = typeof Symbol === "function"; + var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive"; + var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator"; + var supportsCreate = typeof Object.create === "function"; + var supportsProto = { __proto__: [] } instanceof Array; + var downLevel = !supportsCreate && !supportsProto; + var HashMap = { + // create an object in dictionary mode (a.k.a. "slow" mode in v8) + create: supportsCreate ? function() { + return MakeDictionary(/* @__PURE__ */ Object.create(null)); + } : supportsProto ? function() { + return MakeDictionary({ __proto__: null }); + } : function() { + return MakeDictionary({}); + }, + has: downLevel ? function(map2, key) { + return hasOwn.call(map2, key); + } : function(map2, key) { + return key in map2; + }, + get: downLevel ? function(map2, key) { + return hasOwn.call(map2, key) ? map2[key] : void 0; + } : function(map2, key) { + return map2[key]; + } + }; + var functionPrototype = Object.getPrototypeOf(Function); + var _Map = typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); + var _Set = typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); + var _WeakMap = typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); + var registrySymbol = supportsSymbol ? /* @__PURE__ */ Symbol.for("@reflect-metadata:registry") : void 0; + var metadataRegistry = GetOrCreateMetadataRegistry(); + var metadataProvider = CreateMetadataProvider(metadataRegistry); + function decorate(decorators, target, propertyKey, attributes) { + if (!IsUndefined(propertyKey)) { + if (!IsArray(decorators)) + throw new TypeError(); + if (!IsObject(target)) + throw new TypeError(); + if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes)) + throw new TypeError(); + if (IsNull(attributes)) + attributes = void 0; + propertyKey = ToPropertyKey(propertyKey); + return DecorateProperty(decorators, target, propertyKey, attributes); + } else { + if (!IsArray(decorators)) + throw new TypeError(); + if (!IsConstructor(target)) + throw new TypeError(); + return DecorateConstructor(decorators, target); + } + } + __name(decorate, "decorate"); + exporter("decorate", decorate); + function metadata(metadataKey, metadataValue) { + function decorator(target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey)) + throw new TypeError(); + OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); + } + __name(decorator, "decorator"); + return decorator; + } + __name(metadata, "metadata"); + exporter("metadata", metadata); + function defineMetadata(metadataKey, metadataValue, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); + } + __name(defineMetadata, "defineMetadata"); + exporter("defineMetadata", defineMetadata); + function hasMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryHasMetadata(metadataKey, target, propertyKey); + } + __name(hasMetadata, "hasMetadata"); + exporter("hasMetadata", hasMetadata); + function hasOwnMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey); + } + __name(hasOwnMetadata, "hasOwnMetadata"); + exporter("hasOwnMetadata", hasOwnMetadata); + function getMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryGetMetadata(metadataKey, target, propertyKey); + } + __name(getMetadata, "getMetadata"); + exporter("getMetadata", getMetadata); + function getOwnMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey); + } + __name(getOwnMetadata, "getOwnMetadata"); + exporter("getOwnMetadata", getOwnMetadata); + function getMetadataKeys(target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryMetadataKeys(target, propertyKey); + } + __name(getMetadataKeys, "getMetadataKeys"); + exporter("getMetadataKeys", getMetadataKeys); + function getOwnMetadataKeys(target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryOwnMetadataKeys(target, propertyKey); + } + __name(getOwnMetadataKeys, "getOwnMetadataKeys"); + exporter("getOwnMetadataKeys", getOwnMetadataKeys); + function deleteMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + var provider = GetMetadataProvider( + target, + propertyKey, + /*Create*/ + false + ); + if (IsUndefined(provider)) + return false; + return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey); + } + __name(deleteMetadata, "deleteMetadata"); + exporter("deleteMetadata", deleteMetadata); + function DecorateConstructor(decorators, target) { + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + var decorated = decorator(target); + if (!IsUndefined(decorated) && !IsNull(decorated)) { + if (!IsConstructor(decorated)) + throw new TypeError(); + target = decorated; + } + } + return target; + } + __name(DecorateConstructor, "DecorateConstructor"); + function DecorateProperty(decorators, target, propertyKey, descriptor) { + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + var decorated = decorator(target, propertyKey, descriptor); + if (!IsUndefined(decorated) && !IsNull(decorated)) { + if (!IsObject(decorated)) + throw new TypeError(); + descriptor = decorated; + } + } + return descriptor; + } + __name(DecorateProperty, "DecorateProperty"); + function OrdinaryHasMetadata(MetadataKey, O, P) { + var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn2) + return true; + var parent = OrdinaryGetPrototypeOf(O); + if (!IsNull(parent)) + return OrdinaryHasMetadata(MetadataKey, parent, P); + return false; + } + __name(OrdinaryHasMetadata, "OrdinaryHasMetadata"); + function OrdinaryHasOwnMetadata(MetadataKey, O, P) { + var provider = GetMetadataProvider( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(provider)) + return false; + return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P)); + } + __name(OrdinaryHasOwnMetadata, "OrdinaryHasOwnMetadata"); + function OrdinaryGetMetadata(MetadataKey, O, P) { + var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn2) + return OrdinaryGetOwnMetadata(MetadataKey, O, P); + var parent = OrdinaryGetPrototypeOf(O); + if (!IsNull(parent)) + return OrdinaryGetMetadata(MetadataKey, parent, P); + return void 0; + } + __name(OrdinaryGetMetadata, "OrdinaryGetMetadata"); + function OrdinaryGetOwnMetadata(MetadataKey, O, P) { + var provider = GetMetadataProvider( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(provider)) + return; + return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P); + } + __name(OrdinaryGetOwnMetadata, "OrdinaryGetOwnMetadata"); + function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) { + var provider = GetMetadataProvider( + O, + P, + /*Create*/ + true + ); + provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P); + } + __name(OrdinaryDefineOwnMetadata, "OrdinaryDefineOwnMetadata"); + function OrdinaryMetadataKeys(O, P) { + var ownKeys = OrdinaryOwnMetadataKeys(O, P); + var parent = OrdinaryGetPrototypeOf(O); + if (parent === null) + return ownKeys; + var parentKeys = OrdinaryMetadataKeys(parent, P); + if (parentKeys.length <= 0) + return ownKeys; + if (ownKeys.length <= 0) + return parentKeys; + var set = new _Set(); + var keys = []; + for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) { + var key = ownKeys_1[_i]; + var hasKey = set.has(key); + if (!hasKey) { + set.add(key); + keys.push(key); + } + } + for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) { + var key = parentKeys_1[_a]; + var hasKey = set.has(key); + if (!hasKey) { + set.add(key); + keys.push(key); + } + } + return keys; + } + __name(OrdinaryMetadataKeys, "OrdinaryMetadataKeys"); + function OrdinaryOwnMetadataKeys(O, P) { + var provider = GetMetadataProvider( + O, + P, + /*create*/ + false + ); + if (!provider) { + return []; + } + return provider.OrdinaryOwnMetadataKeys(O, P); + } + __name(OrdinaryOwnMetadataKeys, "OrdinaryOwnMetadataKeys"); + function Type(x) { + if (x === null) + return 1; + switch (typeof x) { + case "undefined": + return 0; + case "boolean": + return 2; + case "string": + return 3; + case "symbol": + return 4; + case "number": + return 5; + case "object": + return x === null ? 1 : 6; + default: + return 6; + } + } + __name(Type, "Type"); + function IsUndefined(x) { + return x === void 0; + } + __name(IsUndefined, "IsUndefined"); + function IsNull(x) { + return x === null; + } + __name(IsNull, "IsNull"); + function IsSymbol(x) { + return typeof x === "symbol"; + } + __name(IsSymbol, "IsSymbol"); + function IsObject(x) { + return typeof x === "object" ? x !== null : typeof x === "function"; + } + __name(IsObject, "IsObject"); + function ToPrimitive(input, PreferredType) { + switch (Type(input)) { + case 0: + return input; + case 1: + return input; + case 2: + return input; + case 3: + return input; + case 4: + return input; + case 5: + return input; + } + var hint = PreferredType === 3 ? "string" : PreferredType === 5 ? "number" : "default"; + var exoticToPrim = GetMethod(input, toPrimitiveSymbol); + if (exoticToPrim !== void 0) { + var result = exoticToPrim.call(input, hint); + if (IsObject(result)) + throw new TypeError(); + return result; + } + return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint); + } + __name(ToPrimitive, "ToPrimitive"); + function OrdinaryToPrimitive(O, hint) { + if (hint === "string") { + var toString_1 = O.toString; + if (IsCallable(toString_1)) { + var result = toString_1.call(O); + if (!IsObject(result)) + return result; + } + var valueOf = O.valueOf; + if (IsCallable(valueOf)) { + var result = valueOf.call(O); + if (!IsObject(result)) + return result; + } + } else { + var valueOf = O.valueOf; + if (IsCallable(valueOf)) { + var result = valueOf.call(O); + if (!IsObject(result)) + return result; + } + var toString_2 = O.toString; + if (IsCallable(toString_2)) { + var result = toString_2.call(O); + if (!IsObject(result)) + return result; + } + } + throw new TypeError(); + } + __name(OrdinaryToPrimitive, "OrdinaryToPrimitive"); + function ToBoolean(argument) { + return !!argument; + } + __name(ToBoolean, "ToBoolean"); + function ToString(argument) { + return "" + argument; + } + __name(ToString, "ToString"); + function ToPropertyKey(argument) { + var key = ToPrimitive( + argument, + 3 + /* String */ + ); + if (IsSymbol(key)) + return key; + return ToString(key); + } + __name(ToPropertyKey, "ToPropertyKey"); + function IsArray(argument) { + return Array.isArray ? Array.isArray(argument) : argument instanceof Object ? argument instanceof Array : Object.prototype.toString.call(argument) === "[object Array]"; + } + __name(IsArray, "IsArray"); + function IsCallable(argument) { + return typeof argument === "function"; + } + __name(IsCallable, "IsCallable"); + function IsConstructor(argument) { + return typeof argument === "function"; + } + __name(IsConstructor, "IsConstructor"); + function IsPropertyKey(argument) { + switch (Type(argument)) { + case 3: + return true; + case 4: + return true; + default: + return false; + } + } + __name(IsPropertyKey, "IsPropertyKey"); + function SameValueZero(x, y) { + return x === y || x !== x && y !== y; + } + __name(SameValueZero, "SameValueZero"); + function GetMethod(V, P) { + var func = V[P]; + if (func === void 0 || func === null) + return void 0; + if (!IsCallable(func)) + throw new TypeError(); + return func; + } + __name(GetMethod, "GetMethod"); + function GetIterator(obj) { + var method = GetMethod(obj, iteratorSymbol); + if (!IsCallable(method)) + throw new TypeError(); + var iterator = method.call(obj); + if (!IsObject(iterator)) + throw new TypeError(); + return iterator; + } + __name(GetIterator, "GetIterator"); + function IteratorValue(iterResult) { + return iterResult.value; + } + __name(IteratorValue, "IteratorValue"); + function IteratorStep(iterator) { + var result = iterator.next(); + return result.done ? false : result; + } + __name(IteratorStep, "IteratorStep"); + function IteratorClose(iterator) { + var f = iterator["return"]; + if (f) + f.call(iterator); + } + __name(IteratorClose, "IteratorClose"); + function OrdinaryGetPrototypeOf(O) { + var proto = Object.getPrototypeOf(O); + if (typeof O !== "function" || O === functionPrototype) + return proto; + if (proto !== functionPrototype) + return proto; + var prototype = O.prototype; + var prototypeProto = prototype && Object.getPrototypeOf(prototype); + if (prototypeProto == null || prototypeProto === Object.prototype) + return proto; + var constructor = prototypeProto.constructor; + if (typeof constructor !== "function") + return proto; + if (constructor === O) + return proto; + return constructor; + } + __name(OrdinaryGetPrototypeOf, "OrdinaryGetPrototypeOf"); + function CreateMetadataRegistry() { + var fallback; + if (!IsUndefined(registrySymbol) && typeof root.Reflect !== "undefined" && !(registrySymbol in root.Reflect) && typeof root.Reflect.defineMetadata === "function") { + fallback = CreateFallbackProvider(root.Reflect); + } + var first; + var second; + var rest; + var targetProviderMap = new _WeakMap(); + var registry = { + registerProvider, + getProvider, + setProvider + }; + return registry; + function registerProvider(provider) { + if (!Object.isExtensible(registry)) { + throw new Error("Cannot add provider to a frozen registry."); + } + switch (true) { + case fallback === provider: + break; + case IsUndefined(first): + first = provider; + break; + case first === provider: + break; + case IsUndefined(second): + second = provider; + break; + case second === provider: + break; + default: + if (rest === void 0) + rest = new _Set(); + rest.add(provider); + break; + } + } + __name(registerProvider, "registerProvider"); + function getProviderNoCache(O, P) { + if (!IsUndefined(first)) { + if (first.isProviderFor(O, P)) + return first; + if (!IsUndefined(second)) { + if (second.isProviderFor(O, P)) + return first; + if (!IsUndefined(rest)) { + var iterator = GetIterator(rest); + while (true) { + var next = IteratorStep(iterator); + if (!next) { + return void 0; + } + var provider = IteratorValue(next); + if (provider.isProviderFor(O, P)) { + IteratorClose(iterator); + return provider; + } + } + } + } + } + if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) { + return fallback; + } + return void 0; + } + __name(getProviderNoCache, "getProviderNoCache"); + function getProvider(O, P) { + var providerMap = targetProviderMap.get(O); + var provider; + if (!IsUndefined(providerMap)) { + provider = providerMap.get(P); + } + if (!IsUndefined(provider)) { + return provider; + } + provider = getProviderNoCache(O, P); + if (!IsUndefined(provider)) { + if (IsUndefined(providerMap)) { + providerMap = new _Map(); + targetProviderMap.set(O, providerMap); + } + providerMap.set(P, provider); + } + return provider; + } + __name(getProvider, "getProvider"); + function hasProvider(provider) { + if (IsUndefined(provider)) + throw new TypeError(); + return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider); + } + __name(hasProvider, "hasProvider"); + function setProvider(O, P, provider) { + if (!hasProvider(provider)) { + throw new Error("Metadata provider not registered."); + } + var existingProvider = getProvider(O, P); + if (existingProvider !== provider) { + if (!IsUndefined(existingProvider)) { + return false; + } + var providerMap = targetProviderMap.get(O); + if (IsUndefined(providerMap)) { + providerMap = new _Map(); + targetProviderMap.set(O, providerMap); + } + providerMap.set(P, provider); + } + return true; + } + __name(setProvider, "setProvider"); + } + __name(CreateMetadataRegistry, "CreateMetadataRegistry"); + function GetOrCreateMetadataRegistry() { + var metadataRegistry2; + if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) { + metadataRegistry2 = root.Reflect[registrySymbol]; + } + if (IsUndefined(metadataRegistry2)) { + metadataRegistry2 = CreateMetadataRegistry(); + } + if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) { + Object.defineProperty(root.Reflect, registrySymbol, { + enumerable: false, + configurable: false, + writable: false, + value: metadataRegistry2 + }); + } + return metadataRegistry2; + } + __name(GetOrCreateMetadataRegistry, "GetOrCreateMetadataRegistry"); + function CreateMetadataProvider(registry) { + var metadata2 = new _WeakMap(); + var provider = { + isProviderFor: /* @__PURE__ */ __name(function(O, P) { + var targetMetadata = metadata2.get(O); + if (IsUndefined(targetMetadata)) + return false; + return targetMetadata.has(P); + }, "isProviderFor"), + OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata2, + OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata2, + OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata2, + OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys2, + OrdinaryDeleteMetadata + }; + metadataRegistry.registerProvider(provider); + return provider; + function GetOrCreateMetadataMap(O, P, Create) { + var targetMetadata = metadata2.get(O); + var createdTargetMetadata = false; + if (IsUndefined(targetMetadata)) { + if (!Create) + return void 0; + targetMetadata = new _Map(); + metadata2.set(O, targetMetadata); + createdTargetMetadata = true; + } + var metadataMap = targetMetadata.get(P); + if (IsUndefined(metadataMap)) { + if (!Create) + return void 0; + metadataMap = new _Map(); + targetMetadata.set(P, metadataMap); + if (!registry.setProvider(O, P, provider)) { + targetMetadata.delete(P); + if (createdTargetMetadata) { + metadata2.delete(O); + } + throw new Error("Wrong provider for target."); + } + } + return metadataMap; + } + __name(GetOrCreateMetadataMap, "GetOrCreateMetadataMap"); + function OrdinaryHasOwnMetadata2(MetadataKey, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return false; + return ToBoolean(metadataMap.has(MetadataKey)); + } + __name(OrdinaryHasOwnMetadata2, "OrdinaryHasOwnMetadata"); + function OrdinaryGetOwnMetadata2(MetadataKey, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return void 0; + return metadataMap.get(MetadataKey); + } + __name(OrdinaryGetOwnMetadata2, "OrdinaryGetOwnMetadata"); + function OrdinaryDefineOwnMetadata2(MetadataKey, MetadataValue, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + true + ); + metadataMap.set(MetadataKey, MetadataValue); + } + __name(OrdinaryDefineOwnMetadata2, "OrdinaryDefineOwnMetadata"); + function OrdinaryOwnMetadataKeys2(O, P) { + var keys = []; + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return keys; + var keysObj = metadataMap.keys(); + var iterator = GetIterator(keysObj); + var k = 0; + while (true) { + var next = IteratorStep(iterator); + if (!next) { + keys.length = k; + return keys; + } + var nextValue = IteratorValue(next); + try { + keys[k] = nextValue; + } catch (e) { + try { + IteratorClose(iterator); + } finally { + throw e; + } + } + k++; + } + } + __name(OrdinaryOwnMetadataKeys2, "OrdinaryOwnMetadataKeys"); + function OrdinaryDeleteMetadata(MetadataKey, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return false; + if (!metadataMap.delete(MetadataKey)) + return false; + if (metadataMap.size === 0) { + var targetMetadata = metadata2.get(O); + if (!IsUndefined(targetMetadata)) { + targetMetadata.delete(P); + if (targetMetadata.size === 0) { + metadata2.delete(targetMetadata); + } + } + } + return true; + } + __name(OrdinaryDeleteMetadata, "OrdinaryDeleteMetadata"); + } + __name(CreateMetadataProvider, "CreateMetadataProvider"); + function CreateFallbackProvider(reflect) { + var defineMetadata2 = reflect.defineMetadata, hasOwnMetadata2 = reflect.hasOwnMetadata, getOwnMetadata2 = reflect.getOwnMetadata, getOwnMetadataKeys2 = reflect.getOwnMetadataKeys, deleteMetadata2 = reflect.deleteMetadata; + var metadataOwner = new _WeakMap(); + var provider = { + isProviderFor: /* @__PURE__ */ __name(function(O, P) { + var metadataPropertySet = metadataOwner.get(O); + if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) { + return true; + } + if (getOwnMetadataKeys2(O, P).length) { + if (IsUndefined(metadataPropertySet)) { + metadataPropertySet = new _Set(); + metadataOwner.set(O, metadataPropertySet); + } + metadataPropertySet.add(P); + return true; + } + return false; + }, "isProviderFor"), + OrdinaryDefineOwnMetadata: defineMetadata2, + OrdinaryHasOwnMetadata: hasOwnMetadata2, + OrdinaryGetOwnMetadata: getOwnMetadata2, + OrdinaryOwnMetadataKeys: getOwnMetadataKeys2, + OrdinaryDeleteMetadata: deleteMetadata2 + }; + return provider; + } + __name(CreateFallbackProvider, "CreateFallbackProvider"); + function GetMetadataProvider(O, P, Create) { + var registeredProvider = metadataRegistry.getProvider(O, P); + if (!IsUndefined(registeredProvider)) { + return registeredProvider; + } + if (Create) { + if (metadataRegistry.setProvider(O, P, metadataProvider)) { + return metadataProvider; + } + throw new Error("Illegal state."); + } + return void 0; + } + __name(GetMetadataProvider, "GetMetadataProvider"); + function CreateMapPolyfill() { + var cacheSentinel = {}; + var arraySentinel = []; + var MapIterator = ( + /** @class */ + (function() { + function MapIterator2(keys, values, selector) { + this._index = 0; + this._keys = keys; + this._values = values; + this._selector = selector; + } + __name(MapIterator2, "MapIterator"); + MapIterator2.prototype["@@iterator"] = function() { + return this; + }; + MapIterator2.prototype[iteratorSymbol] = function() { + return this; + }; + MapIterator2.prototype.next = function() { + var index = this._index; + if (index >= 0 && index < this._keys.length) { + var result = this._selector(this._keys[index], this._values[index]); + if (index + 1 >= this._keys.length) { + this._index = -1; + this._keys = arraySentinel; + this._values = arraySentinel; + } else { + this._index++; + } + return { value: result, done: false }; + } + return { value: void 0, done: true }; + }; + MapIterator2.prototype.throw = function(error) { + if (this._index >= 0) { + this._index = -1; + this._keys = arraySentinel; + this._values = arraySentinel; + } + throw error; + }; + MapIterator2.prototype.return = function(value) { + if (this._index >= 0) { + this._index = -1; + this._keys = arraySentinel; + this._values = arraySentinel; + } + return { value, done: true }; + }; + return MapIterator2; + })() + ); + var Map2 = ( + /** @class */ + (function() { + function Map3() { + this._keys = []; + this._values = []; + this._cacheKey = cacheSentinel; + this._cacheIndex = -2; + } + __name(Map3, "Map"); + Object.defineProperty(Map3.prototype, "size", { + get: /* @__PURE__ */ __name(function() { + return this._keys.length; + }, "get"), + enumerable: true, + configurable: true + }); + Map3.prototype.has = function(key) { + return this._find( + key, + /*insert*/ + false + ) >= 0; + }; + Map3.prototype.get = function(key) { + var index = this._find( + key, + /*insert*/ + false + ); + return index >= 0 ? this._values[index] : void 0; + }; + Map3.prototype.set = function(key, value) { + var index = this._find( + key, + /*insert*/ + true + ); + this._values[index] = value; + return this; + }; + Map3.prototype.delete = function(key) { + var index = this._find( + key, + /*insert*/ + false + ); + if (index >= 0) { + var size = this._keys.length; + for (var i = index + 1; i < size; i++) { + this._keys[i - 1] = this._keys[i]; + this._values[i - 1] = this._values[i]; + } + this._keys.length--; + this._values.length--; + if (SameValueZero(key, this._cacheKey)) { + this._cacheKey = cacheSentinel; + this._cacheIndex = -2; + } + return true; + } + return false; + }; + Map3.prototype.clear = function() { + this._keys.length = 0; + this._values.length = 0; + this._cacheKey = cacheSentinel; + this._cacheIndex = -2; + }; + Map3.prototype.keys = function() { + return new MapIterator(this._keys, this._values, getKey); + }; + Map3.prototype.values = function() { + return new MapIterator(this._keys, this._values, getValue); + }; + Map3.prototype.entries = function() { + return new MapIterator(this._keys, this._values, getEntry); + }; + Map3.prototype["@@iterator"] = function() { + return this.entries(); + }; + Map3.prototype[iteratorSymbol] = function() { + return this.entries(); + }; + Map3.prototype._find = function(key, insert) { + if (!SameValueZero(this._cacheKey, key)) { + this._cacheIndex = -1; + for (var i = 0; i < this._keys.length; i++) { + if (SameValueZero(this._keys[i], key)) { + this._cacheIndex = i; + break; + } + } + } + if (this._cacheIndex < 0 && insert) { + this._cacheIndex = this._keys.length; + this._keys.push(key); + this._values.push(void 0); + } + return this._cacheIndex; + }; + return Map3; + })() + ); + return Map2; + function getKey(key, _) { + return key; + } + __name(getKey, "getKey"); + function getValue(_, value) { + return value; + } + __name(getValue, "getValue"); + function getEntry(key, value) { + return [key, value]; + } + __name(getEntry, "getEntry"); + } + __name(CreateMapPolyfill, "CreateMapPolyfill"); + function CreateSetPolyfill() { + var Set2 = ( + /** @class */ + (function() { + function Set3() { + this._map = new _Map(); + } + __name(Set3, "Set"); + Object.defineProperty(Set3.prototype, "size", { + get: /* @__PURE__ */ __name(function() { + return this._map.size; + }, "get"), + enumerable: true, + configurable: true + }); + Set3.prototype.has = function(value) { + return this._map.has(value); + }; + Set3.prototype.add = function(value) { + return this._map.set(value, value), this; + }; + Set3.prototype.delete = function(value) { + return this._map.delete(value); + }; + Set3.prototype.clear = function() { + this._map.clear(); + }; + Set3.prototype.keys = function() { + return this._map.keys(); + }; + Set3.prototype.values = function() { + return this._map.keys(); + }; + Set3.prototype.entries = function() { + return this._map.entries(); + }; + Set3.prototype["@@iterator"] = function() { + return this.keys(); + }; + Set3.prototype[iteratorSymbol] = function() { + return this.keys(); + }; + return Set3; + })() + ); + return Set2; + } + __name(CreateSetPolyfill, "CreateSetPolyfill"); + function CreateWeakMapPolyfill() { + var UUID_SIZE = 16; + var keys = HashMap.create(); + var rootKey = CreateUniqueKey(); + return ( + /** @class */ + (function() { + function WeakMap2() { + this._key = CreateUniqueKey(); + } + __name(WeakMap2, "WeakMap"); + WeakMap2.prototype.has = function(target) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + false + ); + return table !== void 0 ? HashMap.has(table, this._key) : false; + }; + WeakMap2.prototype.get = function(target) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + false + ); + return table !== void 0 ? HashMap.get(table, this._key) : void 0; + }; + WeakMap2.prototype.set = function(target, value) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + true + ); + table[this._key] = value; + return this; + }; + WeakMap2.prototype.delete = function(target) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + false + ); + return table !== void 0 ? delete table[this._key] : false; + }; + WeakMap2.prototype.clear = function() { + this._key = CreateUniqueKey(); + }; + return WeakMap2; + })() + ); + function CreateUniqueKey() { + var key; + do + key = "@@WeakMap@@" + CreateUUID(); + while (HashMap.has(keys, key)); + keys[key] = true; + return key; + } + __name(CreateUniqueKey, "CreateUniqueKey"); + function GetOrCreateWeakMapTable(target, create) { + if (!hasOwn.call(target, rootKey)) { + if (!create) + return void 0; + Object.defineProperty(target, rootKey, { value: HashMap.create() }); + } + return target[rootKey]; + } + __name(GetOrCreateWeakMapTable, "GetOrCreateWeakMapTable"); + function FillRandomBytes(buffer, size) { + for (var i = 0; i < size; ++i) + buffer[i] = Math.random() * 255 | 0; + return buffer; + } + __name(FillRandomBytes, "FillRandomBytes"); + function GenRandomBytes(size) { + if (typeof Uint8Array === "function") { + var array = new Uint8Array(size); + if (typeof crypto !== "undefined") { + crypto.getRandomValues(array); + } else if (typeof msCrypto !== "undefined") { + msCrypto.getRandomValues(array); + } else { + FillRandomBytes(array, size); + } + return array; + } + return FillRandomBytes(new Array(size), size); + } + __name(GenRandomBytes, "GenRandomBytes"); + function CreateUUID() { + var data = GenRandomBytes(UUID_SIZE); + data[6] = data[6] & 79 | 64; + data[8] = data[8] & 191 | 128; + var result = ""; + for (var offset = 0; offset < UUID_SIZE; ++offset) { + var byte = data[offset]; + if (offset === 4 || offset === 6 || offset === 8) + result += "-"; + if (byte < 16) + result += "0"; + result += byte.toString(16).toLowerCase(); + } + return result; + } + __name(CreateUUID, "CreateUUID"); + } + __name(CreateWeakMapPolyfill, "CreateWeakMapPolyfill"); + function MakeDictionary(obj) { + obj.__ = void 0; + delete obj.__; + return obj; + } + __name(MakeDictionary, "MakeDictionary"); + }); + })(Reflect2 || (Reflect2 = {})); + } +}); + +// ../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function __param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} +var init_tslib_es6 = __esm({ + "../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"() { + __name(__decorate, "__decorate"); + __name(__param, "__param"); + __name(__metadata, "__metadata"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/shared.utils.js +var isUndefined, isObject, isPlainObject, addLeadingSlash, normalizePath, stripEndSlash, isFunction, isString, isNumber, isConstructor, isNil, isEmpty, isEmptyArray, isSymbol; +var init_shared_utils = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/shared.utils.js"() { + isUndefined = /* @__PURE__ */ __name((obj) => typeof obj === "undefined", "isUndefined"); + isObject = /* @__PURE__ */ __name((fn) => !isNil(fn) && typeof fn === "object", "isObject"); + isPlainObject = /* @__PURE__ */ __name((fn) => { + if (!isObject(fn)) { + return false; + } + const proto = Object.getPrototypeOf(fn); + if (proto === null) { + return true; + } + const ctor = Object.hasOwn(proto, "constructor") && proto.constructor; + return typeof ctor === "function" && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object); + }, "isPlainObject"); + addLeadingSlash = /* @__PURE__ */ __name((path) => path && typeof path === "string" ? path.charAt(0) !== "/" && path.substring(0, 2) !== "{/" ? "/" + path : path : "", "addLeadingSlash"); + normalizePath = /* @__PURE__ */ __name((path) => path ? ("/" + path.replace(/\/+$/, "")).replace(/\/+/g, "/") : "/", "normalizePath"); + stripEndSlash = /* @__PURE__ */ __name((path) => path.endsWith("/") ? path.slice(0, -1) : path, "stripEndSlash"); + isFunction = /* @__PURE__ */ __name((val) => typeof val === "function", "isFunction"); + isString = /* @__PURE__ */ __name((val) => typeof val === "string", "isString"); + isNumber = /* @__PURE__ */ __name((val) => typeof val === "number", "isNumber"); + isConstructor = /* @__PURE__ */ __name((val) => val === "constructor", "isConstructor"); + isNil = /* @__PURE__ */ __name((val) => isUndefined(val) || val === null, "isNil"); + isEmpty = /* @__PURE__ */ __name((value) => { + if (isNil(value)) { + return true; + } + if (Array.isArray(value)) { + return value.length === 0; + } + return false; + }, "isEmpty"); + isEmptyArray = /* @__PURE__ */ __name((array) => { + if (!Array.isArray(array)) { + return false; + } + return array.length === 0; + }, "isEmptyArray"); + isSymbol = /* @__PURE__ */ __name((val) => typeof val === "symbol", "isSymbol"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/constants.js +var MODULE_METADATA, GLOBAL_MODULE_METADATA, HOST_METADATA, PATH_METADATA, PARAMTYPES_METADATA, SELF_DECLARED_DEPS_METADATA, OPTIONAL_DEPS_METADATA, PROPERTY_DEPS_METADATA, OPTIONAL_PROPERTY_DEPS_METADATA, SCOPE_OPTIONS_METADATA, METHOD_METADATA, ROUTE_ARGS_METADATA, CUSTOM_ROUTE_ARGS_METADATA, FILTER_CATCH_EXCEPTIONS, PIPES_METADATA, GUARDS_METADATA, INTERCEPTORS_METADATA, EXCEPTION_FILTERS_METADATA, ENHANCER_KEY_TO_SUBTYPE_MAP, RENDER_METADATA, HTTP_CODE_METADATA, MODULE_PATH, HEADERS_METADATA, REDIRECT_METADATA, RESPONSE_PASSTHROUGH_METADATA, SSE_METADATA, SSE_OPTIONS_METADATA, VERSION_METADATA, INJECTABLE_WATERMARK, CONTROLLER_WATERMARK, CATCH_WATERMARK, ENTRY_PROVIDER_WATERMARK; +var init_constants = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/constants.js"() { + MODULE_METADATA = { + IMPORTS: "imports", + PROVIDERS: "providers", + CONTROLLERS: "controllers", + EXPORTS: "exports" + }; + GLOBAL_MODULE_METADATA = "__module:global__"; + HOST_METADATA = "host"; + PATH_METADATA = "path"; + PARAMTYPES_METADATA = "design:paramtypes"; + SELF_DECLARED_DEPS_METADATA = "self:paramtypes"; + OPTIONAL_DEPS_METADATA = "optional:paramtypes"; + PROPERTY_DEPS_METADATA = "self:properties_metadata"; + OPTIONAL_PROPERTY_DEPS_METADATA = "optional:properties_metadata"; + SCOPE_OPTIONS_METADATA = "scope:options"; + METHOD_METADATA = "method"; + ROUTE_ARGS_METADATA = "__routeArguments__"; + CUSTOM_ROUTE_ARGS_METADATA = "__customRouteArgs__"; + FILTER_CATCH_EXCEPTIONS = "__filterCatchExceptions__"; + PIPES_METADATA = "__pipes__"; + GUARDS_METADATA = "__guards__"; + INTERCEPTORS_METADATA = "__interceptors__"; + EXCEPTION_FILTERS_METADATA = "__exceptionFilters__"; + ENHANCER_KEY_TO_SUBTYPE_MAP = { + [GUARDS_METADATA]: "guard", + [INTERCEPTORS_METADATA]: "interceptor", + [PIPES_METADATA]: "pipe", + [EXCEPTION_FILTERS_METADATA]: "filter" + }; + RENDER_METADATA = "__renderTemplate__"; + HTTP_CODE_METADATA = "__httpCode__"; + MODULE_PATH = "__module_path__"; + HEADERS_METADATA = "__headers__"; + REDIRECT_METADATA = "__redirect__"; + RESPONSE_PASSTHROUGH_METADATA = "__responsePassthrough__"; + SSE_METADATA = "__sse__"; + SSE_OPTIONS_METADATA = "__sseOptions__"; + VERSION_METADATA = "__version__"; + INJECTABLE_WATERMARK = "__injectable__"; + CONTROLLER_WATERMARK = "__controller__"; + CATCH_WATERMARK = "__catch__"; + ENTRY_PROVIDER_WATERMARK = "__entryProvider__"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/controller.decorator.js +function Controller(prefixOrOptions) { + const defaultPath = "/"; + const [path, host, scopeOptions, versionOptions] = isUndefined(prefixOrOptions) ? [defaultPath, void 0, void 0, void 0] : isString(prefixOrOptions) || Array.isArray(prefixOrOptions) ? [prefixOrOptions, void 0, void 0, void 0] : [ + prefixOrOptions.path || defaultPath, + prefixOrOptions.host, + { scope: prefixOrOptions.scope, durable: prefixOrOptions.durable }, + Array.isArray(prefixOrOptions.version) ? Array.from(new Set(prefixOrOptions.version)) : prefixOrOptions.version + ]; + return (target) => { + Reflect.defineMetadata(CONTROLLER_WATERMARK, true, target); + Reflect.defineMetadata(PATH_METADATA, path, target); + Reflect.defineMetadata(HOST_METADATA, host, target); + Reflect.defineMetadata(SCOPE_OPTIONS_METADATA, scopeOptions, target); + Reflect.defineMetadata(VERSION_METADATA, versionOptions, target); + }; +} +var init_controller_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/controller.decorator.js"() { + init_constants(); + init_shared_utils(); + __name(Controller, "Controller"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/inject.decorator.js +function Inject(token) { + const injectCallHasArguments = arguments.length > 0; + return (target, key, index) => { + let type = token || Reflect.getMetadata("design:type", target, key); + if (!type && !injectCallHasArguments) { + type = Reflect.getMetadata(PARAMTYPES_METADATA, target, key)?.[index]; + } + if (!isUndefined(index)) { + let dependencies = Reflect.getMetadata(SELF_DECLARED_DEPS_METADATA, target) || []; + dependencies = [...dependencies, { index, param: type }]; + Reflect.defineMetadata(SELF_DECLARED_DEPS_METADATA, dependencies, target); + return; + } + let properties = Reflect.getMetadata(PROPERTY_DEPS_METADATA, target.constructor) || []; + properties = [ + ...properties.filter((property) => property.key !== key), + { key, type } + ]; + Reflect.defineMetadata(PROPERTY_DEPS_METADATA, properties, target.constructor); + }; +} +var init_inject_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/inject.decorator.js"() { + init_constants(); + init_shared_utils(); + __name(Inject, "Inject"); + } +}); + +// ../../node_modules/.pnpm/uid@2.0.2/node_modules/uid/dist/index.mjs +function uid(len) { + var i = 0, tmp = len || 11; + if (!BUFFER || IDX + tmp > SIZE * 2) { + for (BUFFER = "", IDX = 0; i < SIZE; i++) { + BUFFER += HEX[Math.random() * 256 | 0]; + } + } + return BUFFER.substring(IDX, IDX++ + tmp); +} +var IDX, HEX, SIZE, BUFFER; +var init_dist = __esm({ + "../../node_modules/.pnpm/uid@2.0.2/node_modules/uid/dist/index.mjs"() { + IDX = 256; + HEX = []; + SIZE = 256; + while (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1); + __name(uid, "uid"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/injectable.decorator.js +function Injectable(options) { + return (target) => { + Reflect.defineMetadata(INJECTABLE_WATERMARK, true, target); + Reflect.defineMetadata(SCOPE_OPTIONS_METADATA, options, target); + }; +} +function mixin(mixinClass) { + Object.defineProperty(mixinClass, "name", { + value: uid(21) + }); + Injectable()(mixinClass); + return mixinClass; +} +var init_injectable_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/injectable.decorator.js"() { + init_dist(); + init_constants(); + __name(Injectable, "Injectable"); + __name(mixin, "mixin"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/optional.decorator.js +function Optional() { + return (target, key, index) => { + if (!isUndefined(index)) { + const args = Reflect.getOwnMetadata(OPTIONAL_DEPS_METADATA, target) || []; + Reflect.defineMetadata(OPTIONAL_DEPS_METADATA, [...args, index], target); + return; + } + const properties = Reflect.getMetadata(OPTIONAL_PROPERTY_DEPS_METADATA, target.constructor) || []; + Reflect.defineMetadata(OPTIONAL_PROPERTY_DEPS_METADATA, [...properties, key], target.constructor); + }; +} +var init_optional_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/optional.decorator.js"() { + init_constants(); + init_shared_utils(); + __name(Optional, "Optional"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/modules/global.decorator.js +function Global() { + return (target) => { + Reflect.defineMetadata(GLOBAL_MODULE_METADATA, true, target); + }; +} +var init_global_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/modules/global.decorator.js"() { + init_constants(); + __name(Global, "Global"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/validate-module-keys.util.js +function validateModuleKeys(keys) { + const validateKey = /* @__PURE__ */ __name((key) => { + if (metadataKeys.includes(key)) { + return; + } + throw new Error(INVALID_MODULE_CONFIG_MESSAGE`${key}`); + }, "validateKey"); + keys.forEach(validateKey); +} +var INVALID_MODULE_CONFIG_MESSAGE, metadataKeys; +var init_validate_module_keys_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/validate-module-keys.util.js"() { + init_constants(); + INVALID_MODULE_CONFIG_MESSAGE = /* @__PURE__ */ __name((text, property) => `Invalid property '${property}' passed into the @Module() decorator.`, "INVALID_MODULE_CONFIG_MESSAGE"); + metadataKeys = [ + MODULE_METADATA.IMPORTS, + MODULE_METADATA.EXPORTS, + MODULE_METADATA.CONTROLLERS, + MODULE_METADATA.PROVIDERS + ]; + __name(validateModuleKeys, "validateModuleKeys"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/modules/module.decorator.js +function Module(metadata) { + const propsKeys = Object.keys(metadata); + validateModuleKeys(propsKeys); + return (target) => { + for (const property in metadata) { + if (Object.hasOwn(metadata, property)) { + Reflect.defineMetadata(property, metadata[property], target); + } + } + }; +} +var init_module_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/modules/module.decorator.js"() { + init_validate_module_keys_util(); + __name(Module, "Module"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/request-method.enum.js +var RequestMethod; +var init_request_method_enum = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/request-method.enum.js"() { + (function(RequestMethod2) { + RequestMethod2[RequestMethod2["GET"] = 0] = "GET"; + RequestMethod2[RequestMethod2["POST"] = 1] = "POST"; + RequestMethod2[RequestMethod2["PUT"] = 2] = "PUT"; + RequestMethod2[RequestMethod2["DELETE"] = 3] = "DELETE"; + RequestMethod2[RequestMethod2["PATCH"] = 4] = "PATCH"; + RequestMethod2[RequestMethod2["ALL"] = 5] = "ALL"; + RequestMethod2[RequestMethod2["OPTIONS"] = 6] = "OPTIONS"; + RequestMethod2[RequestMethod2["HEAD"] = 7] = "HEAD"; + RequestMethod2[RequestMethod2["SEARCH"] = 8] = "SEARCH"; + RequestMethod2[RequestMethod2["PROPFIND"] = 9] = "PROPFIND"; + RequestMethod2[RequestMethod2["PROPPATCH"] = 10] = "PROPPATCH"; + RequestMethod2[RequestMethod2["MKCOL"] = 11] = "MKCOL"; + RequestMethod2[RequestMethod2["COPY"] = 12] = "COPY"; + RequestMethod2[RequestMethod2["MOVE"] = 13] = "MOVE"; + RequestMethod2[RequestMethod2["LOCK"] = 14] = "LOCK"; + RequestMethod2[RequestMethod2["UNLOCK"] = 15] = "UNLOCK"; + RequestMethod2[RequestMethod2["QUERY"] = 16] = "QUERY"; + })(RequestMethod || (RequestMethod = {})); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/request-mapping.decorator.js +var defaultMetadata, RequestMapping, createMappingDecorator, Post, Get, Delete, Put, Patch, Options, Head, All, Search, QueryMethod, Propfind, Proppatch, Mkcol, Copy, Move, Lock, Unlock; +var init_request_mapping_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/request-mapping.decorator.js"() { + init_constants(); + init_request_method_enum(); + defaultMetadata = { + [PATH_METADATA]: "/", + [METHOD_METADATA]: RequestMethod.GET + }; + RequestMapping = /* @__PURE__ */ __name((metadata = defaultMetadata) => { + const pathMetadata = metadata[PATH_METADATA]; + const path = pathMetadata && pathMetadata.length ? pathMetadata : "/"; + const requestMethod = metadata[METHOD_METADATA] || RequestMethod.GET; + return (target, key, descriptor) => { + Reflect.defineMetadata(PATH_METADATA, path, descriptor.value); + Reflect.defineMetadata(METHOD_METADATA, requestMethod, descriptor.value); + return descriptor; + }; + }, "RequestMapping"); + createMappingDecorator = /* @__PURE__ */ __name((method) => (path) => { + return RequestMapping({ + [PATH_METADATA]: path, + [METHOD_METADATA]: method + }); + }, "createMappingDecorator"); + Post = createMappingDecorator(RequestMethod.POST); + Get = createMappingDecorator(RequestMethod.GET); + Delete = createMappingDecorator(RequestMethod.DELETE); + Put = createMappingDecorator(RequestMethod.PUT); + Patch = createMappingDecorator(RequestMethod.PATCH); + Options = createMappingDecorator(RequestMethod.OPTIONS); + Head = createMappingDecorator(RequestMethod.HEAD); + All = createMappingDecorator(RequestMethod.ALL); + Search = createMappingDecorator(RequestMethod.SEARCH); + QueryMethod = createMappingDecorator(RequestMethod.QUERY); + Propfind = createMappingDecorator(RequestMethod.PROPFIND); + Proppatch = createMappingDecorator(RequestMethod.PROPPATCH); + Mkcol = createMappingDecorator(RequestMethod.MKCOL); + Copy = createMappingDecorator(RequestMethod.COPY); + Move = createMappingDecorator(RequestMethod.MOVE); + Lock = createMappingDecorator(RequestMethod.LOCK); + Unlock = createMappingDecorator(RequestMethod.UNLOCK); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/http-status.enum.js +var HttpStatus; +var init_http_status_enum = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/http-status.enum.js"() { + (function(HttpStatus2) { + HttpStatus2[HttpStatus2["CONTINUE"] = 100] = "CONTINUE"; + HttpStatus2[HttpStatus2["SWITCHING_PROTOCOLS"] = 101] = "SWITCHING_PROTOCOLS"; + HttpStatus2[HttpStatus2["PROCESSING"] = 102] = "PROCESSING"; + HttpStatus2[HttpStatus2["EARLYHINTS"] = 103] = "EARLYHINTS"; + HttpStatus2[HttpStatus2["OK"] = 200] = "OK"; + HttpStatus2[HttpStatus2["CREATED"] = 201] = "CREATED"; + HttpStatus2[HttpStatus2["ACCEPTED"] = 202] = "ACCEPTED"; + HttpStatus2[HttpStatus2["NON_AUTHORITATIVE_INFORMATION"] = 203] = "NON_AUTHORITATIVE_INFORMATION"; + HttpStatus2[HttpStatus2["NO_CONTENT"] = 204] = "NO_CONTENT"; + HttpStatus2[HttpStatus2["RESET_CONTENT"] = 205] = "RESET_CONTENT"; + HttpStatus2[HttpStatus2["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT"; + HttpStatus2[HttpStatus2["MULTI_STATUS"] = 207] = "MULTI_STATUS"; + HttpStatus2[HttpStatus2["ALREADY_REPORTED"] = 208] = "ALREADY_REPORTED"; + HttpStatus2[HttpStatus2["CONTENT_DIFFERENT"] = 210] = "CONTENT_DIFFERENT"; + HttpStatus2[HttpStatus2["AMBIGUOUS"] = 300] = "AMBIGUOUS"; + HttpStatus2[HttpStatus2["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY"; + HttpStatus2[HttpStatus2["FOUND"] = 302] = "FOUND"; + HttpStatus2[HttpStatus2["SEE_OTHER"] = 303] = "SEE_OTHER"; + HttpStatus2[HttpStatus2["NOT_MODIFIED"] = 304] = "NOT_MODIFIED"; + HttpStatus2[HttpStatus2["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT"; + HttpStatus2[HttpStatus2["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT"; + HttpStatus2[HttpStatus2["BAD_REQUEST"] = 400] = "BAD_REQUEST"; + HttpStatus2[HttpStatus2["UNAUTHORIZED"] = 401] = "UNAUTHORIZED"; + HttpStatus2[HttpStatus2["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED"; + HttpStatus2[HttpStatus2["FORBIDDEN"] = 403] = "FORBIDDEN"; + HttpStatus2[HttpStatus2["NOT_FOUND"] = 404] = "NOT_FOUND"; + HttpStatus2[HttpStatus2["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED"; + HttpStatus2[HttpStatus2["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE"; + HttpStatus2[HttpStatus2["PROXY_AUTHENTICATION_REQUIRED"] = 407] = "PROXY_AUTHENTICATION_REQUIRED"; + HttpStatus2[HttpStatus2["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT"; + HttpStatus2[HttpStatus2["CONFLICT"] = 409] = "CONFLICT"; + HttpStatus2[HttpStatus2["GONE"] = 410] = "GONE"; + HttpStatus2[HttpStatus2["LENGTH_REQUIRED"] = 411] = "LENGTH_REQUIRED"; + HttpStatus2[HttpStatus2["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED"; + HttpStatus2[HttpStatus2["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE"; + HttpStatus2[HttpStatus2["URI_TOO_LONG"] = 414] = "URI_TOO_LONG"; + HttpStatus2[HttpStatus2["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE"; + HttpStatus2[HttpStatus2["REQUESTED_RANGE_NOT_SATISFIABLE"] = 416] = "REQUESTED_RANGE_NOT_SATISFIABLE"; + HttpStatus2[HttpStatus2["EXPECTATION_FAILED"] = 417] = "EXPECTATION_FAILED"; + HttpStatus2[HttpStatus2["I_AM_A_TEAPOT"] = 418] = "I_AM_A_TEAPOT"; + HttpStatus2[HttpStatus2["MISDIRECTED"] = 421] = "MISDIRECTED"; + HttpStatus2[HttpStatus2["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY"; + HttpStatus2[HttpStatus2["LOCKED"] = 423] = "LOCKED"; + HttpStatus2[HttpStatus2["FAILED_DEPENDENCY"] = 424] = "FAILED_DEPENDENCY"; + HttpStatus2[HttpStatus2["PRECONDITION_REQUIRED"] = 428] = "PRECONDITION_REQUIRED"; + HttpStatus2[HttpStatus2["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS"; + HttpStatus2[HttpStatus2["UNRECOVERABLE_ERROR"] = 456] = "UNRECOVERABLE_ERROR"; + HttpStatus2[HttpStatus2["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR"; + HttpStatus2[HttpStatus2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED"; + HttpStatus2[HttpStatus2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY"; + HttpStatus2[HttpStatus2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE"; + HttpStatus2[HttpStatus2["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT"; + HttpStatus2[HttpStatus2["HTTP_VERSION_NOT_SUPPORTED"] = 505] = "HTTP_VERSION_NOT_SUPPORTED"; + HttpStatus2[HttpStatus2["INSUFFICIENT_STORAGE"] = 507] = "INSUFFICIENT_STORAGE"; + HttpStatus2[HttpStatus2["LOOP_DETECTED"] = 508] = "LOOP_DETECTED"; + })(HttpStatus || (HttpStatus = {})); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/version-type.enum.js +var VersioningType; +var init_version_type_enum = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/version-type.enum.js"() { + (function(VersioningType2) { + VersioningType2[VersioningType2["URI"] = 0] = "URI"; + VersioningType2[VersioningType2["HEADER"] = 1] = "HEADER"; + VersioningType2[VersioningType2["MEDIA_TYPE"] = 2] = "MEDIA_TYPE"; + VersioningType2[VersioningType2["CUSTOM"] = 3] = "CUSTOM"; + })(VersioningType || (VersioningType = {})); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/intrinsic.exception.js +var IntrinsicException; +var init_intrinsic_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/intrinsic.exception.js"() { + IntrinsicException = class extends Error { + static { + __name(this, "IntrinsicException"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/http.exception.js +var HttpException; +var init_http_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/http.exception.js"() { + init_shared_utils(); + init_intrinsic_exception(); + HttpException = class extends IntrinsicException { + static { + __name(this, "HttpException"); + } + response; + status; + options; + /** + * Exception cause. Indicates the specific original cause of the error. + * It is used when catching and re-throwing an error with a more-specific or useful error message in order to still have access to the original error. + */ + cause; + errorCode; + /** + * Instantiate a plain HTTP Exception. + * + * @example + * throw new HttpException('message', HttpStatus.BAD_REQUEST) + * throw new HttpException('custom message', HttpStatus.BAD_REQUEST, { + * cause: new Error('Cause Error'), + * }) + * + * + * @usageNotes + * The constructor arguments define the response and the HTTP response status code. + * - The `response` argument (required) defines the JSON response body. alternatively, it can also be + * an error object that is used to define an error [cause](https://nodejs.org/en/blog/release/v16.9.0/#error-cause). + * - The `status` argument (required) defines the HTTP Status Code. + * - The `options` argument (optional) defines additional error options. Currently, it supports the `cause` attribute, + * and can be used as an alternative way to specify the error cause: `const error = new HttpException('description', 400, { cause: new Error() });` + * + * By default, the JSON response body contains two properties: + * - `statusCode`: the Http Status Code. + * - `message`: a short description of the HTTP error by default; override this + * by supplying a string in the `response` parameter. + * + * To override the entire JSON response body, pass an object to the `createBody` + * method. Nest will serialize the object and return it as the JSON response body. + * + * The `status` argument is required, and should be a valid HTTP status code. + * Best practice is to use the `HttpStatus` enum imported from `nestjs/common`. + * + * @param response string, object describing the error condition or the error cause. + * @param status HTTP response status code. + * @param options An object used to add an error cause. + */ + constructor(response, status, options) { + super(); + this.response = response; + this.status = status; + this.options = options; + this.initMessage(); + this.initName(); + this.initCause(); + this.initErrorCode(); + } + /** + * Configures error chaining support + * + * @see https://nodejs.org/en/blog/release/v16.9.0/#error-cause + * @see https://github.com/microsoft/TypeScript/issues/45167 + */ + initCause() { + if (this.options?.cause) { + this.cause = this.options.cause; + return; + } + } + initErrorCode() { + if (this.options?.errorCode) { + this.errorCode = this.options.errorCode; + } + } + initMessage() { + if (isString(this.response)) { + this.message = this.response; + } else if (isObject(this.response) && isString(this.response.message)) { + this.message = this.response.message; + } else if (this.constructor) { + this.message = this.constructor.name.match(/[A-Z][a-z]+|[0-9]+/g)?.join(" ") ?? "Error"; + } + } + initName() { + this.name = this.constructor.name; + } + getResponse() { + return this.response; + } + getStatus() { + return this.status; + } + static createBody(arg0, arg1, statusCode, errorCode) { + if (!arg0) { + const body = { + message: arg1, + statusCode + }; + if (errorCode) { + body.errorCode = errorCode; + } + return body; + } + if (isString(arg0) || Array.isArray(arg0) || isNumber(arg0)) { + const body = { + message: arg0, + error: arg1, + statusCode + }; + if (errorCode) { + body.errorCode = errorCode; + } + return body; + } + return arg0; + } + static getDescriptionFrom(descriptionOrOptions) { + return isString(descriptionOrOptions) ? descriptionOrOptions : descriptionOrOptions?.description; + } + static getHttpExceptionOptionsFrom(descriptionOrOptions) { + return isString(descriptionOrOptions) ? {} : descriptionOrOptions; + } + /** + * Utility method used to extract the error description and httpExceptionOptions from the given argument. + * This is used by inheriting classes to correctly parse both options. + * @returns the error description and the httpExceptionOptions as an object. + */ + static extractDescriptionAndOptionsFrom(descriptionOrOptions) { + const description = isString(descriptionOrOptions) ? descriptionOrOptions : descriptionOrOptions?.description; + const httpExceptionOptions = isString(descriptionOrOptions) ? {} : descriptionOrOptions; + return { + description, + httpExceptionOptions + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/bad-request.exception.js +var BadRequestException; +var init_bad_request_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/bad-request.exception.js"() { + init_http_status_enum(); + init_http_exception(); + BadRequestException = class extends HttpException { + static { + __name(this, "BadRequestException"); + } + /** + * Instantiate a `BadRequestException` Exception. + * + * @example + * `throw new BadRequestException()` + * + * @usageNotes + * The HTTP response status code will be 400. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 400. + * - `message`: the string `'Bad Request'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Bad Request") { + const { description = "Bad Request", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.BAD_REQUEST, httpExceptionOptions?.errorCode), HttpStatus.BAD_REQUEST, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/internal-server-error.exception.js +var InternalServerErrorException; +var init_internal_server_error_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/internal-server-error.exception.js"() { + init_http_status_enum(); + init_http_exception(); + InternalServerErrorException = class extends HttpException { + static { + __name(this, "InternalServerErrorException"); + } + /** + * Instantiate an `InternalServerErrorException` Exception. + * + * @example + * `throw new InternalServerErrorException()` + * + * @usageNotes + * The HTTP response status code will be 500. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 500. + * - `message`: the string `'Internal Server Error'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Internal Server Error") { + const { description = "Internal Server Error", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.INTERNAL_SERVER_ERROR, httpExceptionOptions?.errorCode), HttpStatus.INTERNAL_SERVER_ERROR, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/unauthorized.exception.js +var UnauthorizedException; +var init_unauthorized_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/unauthorized.exception.js"() { + init_http_status_enum(); + init_http_exception(); + UnauthorizedException = class extends HttpException { + static { + __name(this, "UnauthorizedException"); + } + /** + * Instantiate an `UnauthorizedException` Exception. + * + * @example + * `throw new UnauthorizedException()` + * + * @usageNotes + * The HTTP response status code will be 401. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 401. + * - `message`: the string `'Unauthorized'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Unauthorized") { + const { description = "Unauthorized", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.UNAUTHORIZED, httpExceptionOptions?.errorCode), HttpStatus.UNAUTHORIZED, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/bind.decorator.js +function Bind(...decorators) { + return (target, key, descriptor) => { + decorators.forEach((fn, index) => fn(target, key, index)); + return descriptor; + }; +} +var init_bind_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/bind.decorator.js"() { + __name(Bind, "Bind"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/catch.decorator.js +function Catch(...exceptions) { + return (target) => { + Reflect.defineMetadata(CATCH_WATERMARK, true, target); + Reflect.defineMetadata(FILTER_CATCH_EXCEPTIONS, exceptions, target); + }; +} +var init_catch_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/catch.decorator.js"() { + init_constants(); + __name(Catch, "Catch"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/dependencies.decorator.js +function flatten(arr) { + const flat = [].concat(...arr); + return flat.some(Array.isArray) ? flatten(flat) : flat; +} +var Dependencies; +var init_dependencies_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/dependencies.decorator.js"() { + init_constants(); + __name(flatten, "flatten"); + Dependencies = /* @__PURE__ */ __name((...dependencies) => { + const flattenDeps = flatten(dependencies); + return (target) => { + Reflect.defineMetadata(PARAMTYPES_METADATA, flattenDeps, target); + }; + }, "Dependencies"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/extend-metadata.util.js +function extendArrayMetadata(key, metadata, target) { + const previousValue = Reflect.getMetadata(key, target) || []; + const value = [...previousValue, ...metadata]; + Reflect.defineMetadata(key, value, target); +} +var init_extend_metadata_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/extend-metadata.util.js"() { + __name(extendArrayMetadata, "extendArrayMetadata"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/validate-each.util.js +function validateEach(context, arr, predicate, decorator, item) { + if (!context || !context.name) { + return true; + } + const errors = arr.some((str) => !predicate(str)); + if (errors) { + throw new InvalidDecoratorItemException(decorator, item, context.name); + } + return true; +} +var InvalidDecoratorItemException; +var init_validate_each_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/validate-each.util.js"() { + InvalidDecoratorItemException = class extends Error { + static { + __name(this, "InvalidDecoratorItemException"); + } + msg; + constructor(decorator, item, context) { + const message = `Invalid ${item} passed to ${decorator}() decorator (${context}).`; + super(message); + this.msg = message; + } + what() { + return this.msg; + } + }; + __name(validateEach, "validateEach"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/exception-filters.decorator.js +function addExceptionFiltersMetadata(...filters) { + return (target, key, descriptor) => { + const isFilterValid = /* @__PURE__ */ __name((filter) => filter && (isFunction(filter) || isFunction(filter.catch)), "isFilterValid"); + if (descriptor) { + validateEach(target.constructor, filters, isFilterValid, "@UseFilters", "filter"); + extendArrayMetadata(EXCEPTION_FILTERS_METADATA, filters, descriptor.value); + return descriptor; + } + validateEach(target, filters, isFilterValid, "@UseFilters", "filter"); + extendArrayMetadata(EXCEPTION_FILTERS_METADATA, filters, target); + return target; + }; +} +var UseFilters; +var init_exception_filters_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/exception-filters.decorator.js"() { + init_constants(); + init_extend_metadata_util(); + init_shared_utils(); + init_validate_each_util(); + UseFilters = /* @__PURE__ */ __name((...filters) => addExceptionFiltersMetadata(...filters), "UseFilters"); + __name(addExceptionFiltersMetadata, "addExceptionFiltersMetadata"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/set-metadata.decorator.js +var SetMetadata; +var init_set_metadata_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/set-metadata.decorator.js"() { + SetMetadata = /* @__PURE__ */ __name((metadataKey, metadataValue) => { + const decoratorFactory = /* @__PURE__ */ __name((target, key, descriptor) => { + if (descriptor) { + Reflect.defineMetadata(metadataKey, metadataValue, descriptor.value); + return descriptor; + } + Reflect.defineMetadata(metadataKey, metadataValue, target); + return target; + }, "decoratorFactory"); + decoratorFactory.KEY = metadataKey; + return decoratorFactory; + }, "SetMetadata"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/use-guards.decorator.js +function UseGuards(...guards) { + return (target, key, descriptor) => { + const isGuardValid = /* @__PURE__ */ __name((guard) => guard && (isFunction(guard) || isFunction(guard.canActivate)), "isGuardValid"); + if (descriptor) { + validateEach(target.constructor, guards, isGuardValid, "@UseGuards", "guard"); + extendArrayMetadata(GUARDS_METADATA, guards, descriptor.value); + return descriptor; + } + validateEach(target, guards, isGuardValid, "@UseGuards", "guard"); + extendArrayMetadata(GUARDS_METADATA, guards, target); + return target; + }; +} +var init_use_guards_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/use-guards.decorator.js"() { + init_constants(); + init_extend_metadata_util(); + init_shared_utils(); + init_validate_each_util(); + __name(UseGuards, "UseGuards"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.js +function UseInterceptors(...interceptors) { + return (target, key, descriptor) => { + const isInterceptorValid = /* @__PURE__ */ __name((interceptor) => interceptor && (isFunction(interceptor) || isFunction(interceptor.intercept)), "isInterceptorValid"); + if (descriptor) { + validateEach(target.constructor, interceptors, isInterceptorValid, "@UseInterceptors", "interceptor"); + extendArrayMetadata(INTERCEPTORS_METADATA, interceptors, descriptor.value); + return descriptor; + } + validateEach(target, interceptors, isInterceptorValid, "@UseInterceptors", "interceptor"); + extendArrayMetadata(INTERCEPTORS_METADATA, interceptors, target); + return target; + }; +} +var init_use_interceptors_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.js"() { + init_constants(); + init_extend_metadata_util(); + init_shared_utils(); + init_validate_each_util(); + __name(UseInterceptors, "UseInterceptors"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/use-pipes.decorator.js +function UsePipes(...pipes) { + return (target, key, descriptor) => { + const isPipeValid = /* @__PURE__ */ __name((pipe) => pipe && (isFunction(pipe) || isFunction(pipe.transform)), "isPipeValid"); + if (descriptor) { + validateEach(target.constructor, pipes, isPipeValid, "@UsePipes", "pipe"); + extendArrayMetadata(PIPES_METADATA, pipes, descriptor.value); + return descriptor; + } + validateEach(target, pipes, isPipeValid, "@UsePipes", "pipe"); + extendArrayMetadata(PIPES_METADATA, pipes, target); + return target; + }; +} +var init_use_pipes_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/use-pipes.decorator.js"() { + init_constants(); + init_extend_metadata_util(); + init_shared_utils(); + init_validate_each_util(); + __name(UsePipes, "UsePipes"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/apply-decorators.js +function applyDecorators(...decorators) { + return (target, propertyKey, descriptor) => { + for (const decorator of decorators) { + if (target instanceof Function && !descriptor) { + decorator(target); + continue; + } + decorator(target, propertyKey, descriptor); + } + }; +} +var init_apply_decorators = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/apply-decorators.js"() { + __name(applyDecorators, "applyDecorators"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/version.decorator.js +function Version(version) { + if (Array.isArray(version)) { + version = Array.from(new Set(version)); + } + return (target, key, descriptor) => { + Reflect.defineMetadata(VERSION_METADATA, version, descriptor.value); + return descriptor; + }; +} +var init_version_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/version.decorator.js"() { + init_constants(); + __name(Version, "Version"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/index.js +var init_core = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/core/index.js"() { + init_bind_decorator(); + init_catch_decorator(); + init_controller_decorator(); + init_dependencies_decorator(); + init_exception_filters_decorator(); + init_inject_decorator(); + init_injectable_decorator(); + init_optional_decorator(); + init_set_metadata_decorator(); + init_use_guards_decorator(); + init_use_interceptors_decorator(); + init_use_pipes_decorator(); + init_apply_decorators(); + init_version_decorator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/cli-colors.util.js +var isColorAllowed, colorIfAllowed, clc, yellow; +var init_cli_colors_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/cli-colors.util.js"() { + isColorAllowed = /* @__PURE__ */ __name(() => !process.env.NO_COLOR, "isColorAllowed"); + colorIfAllowed = /* @__PURE__ */ __name((colorFn) => (text) => isColorAllowed() ? colorFn(text) : text, "colorIfAllowed"); + clc = { + bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`), + green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`), + yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`), + red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`), + magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`), + cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`) + }; + yellow = colorIfAllowed((text) => `\x1B[38;5;3m${text}\x1B[39m`); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/log-levels.constant.js +var LOG_LEVELS; +var init_log_levels_constant = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/log-levels.constant.js"() { + LOG_LEVELS = [ + "verbose", + "debug", + "log", + "warn", + "error", + "fatal" + ]; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/is-log-level.util.js +function isLogLevel(maybeLogLevel) { + return LOG_LEVELS.includes(maybeLogLevel); +} +var init_is_log_level_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/is-log-level.util.js"() { + init_log_levels_constant(); + __name(isLogLevel, "isLogLevel"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/filter-log-levels.util.js +function filterLogLevels(parseableString = "") { + const sanitizedString = parseableString.replaceAll(" ", "").toLowerCase(); + if (sanitizedString[0] === ">") { + const orEqual = sanitizedString[1] === "="; + const logLevelIndex = LOG_LEVELS.indexOf(sanitizedString.substring(orEqual ? 2 : 1)); + if (logLevelIndex === -1) { + throw new Error(`parse error (unknown log level): ${sanitizedString}`); + } + return LOG_LEVELS.slice(orEqual ? logLevelIndex : logLevelIndex + 1); + } else if (sanitizedString.includes(",")) { + return sanitizedString.split(",").filter(isLogLevel); + } + return isLogLevel(sanitizedString) ? [sanitizedString] : LOG_LEVELS; +} +var init_filter_log_levels_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/filter-log-levels.util.js"() { + init_log_levels_constant(); + init_is_log_level_util(); + __name(filterLogLevels, "filterLogLevels"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/get-env-log-levels.util.js +function getEnvLogLevels() { + const value = process.env[LOG_LEVEL_ENV_VAR]?.replaceAll(" ", ""); + if (!value) { + return void 0; + } + const threshold = /^>=?(.*)$/.exec(value.toLowerCase()); + const isValid = threshold ? isLogLevel(threshold[1]) : value.toLowerCase().split(",").every(isLogLevel); + return isValid ? filterLogLevels(value) : false; +} +var LOG_LEVEL_ENV_VAR; +var init_get_env_log_levels_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/get-env-log-levels.util.js"() { + init_filter_log_levels_util(); + init_is_log_level_util(); + LOG_LEVEL_ENV_VAR = "NEST_LOG_LEVEL"; + __name(getEnvLogLevels, "getEnvLogLevels"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/is-log-level-enabled.util.js +function isLogLevelEnabled(targetLevel, logLevels) { + if (!logLevels || Array.isArray(logLevels) && logLevels?.length === 0) { + return false; + } + if (logLevels.includes(targetLevel)) { + return true; + } + let highestLogLevelValue = -Infinity; + for (const level of logLevels) { + const v = LOG_LEVEL_VALUES[level]; + if (v > highestLogLevelValue) + highestLogLevelValue = v; + } + const targetLevelValue = LOG_LEVEL_VALUES[targetLevel]; + return targetLevelValue >= highestLogLevelValue; +} +var LOG_LEVEL_VALUES; +var init_is_log_level_enabled_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/is-log-level-enabled.util.js"() { + LOG_LEVEL_VALUES = { + verbose: 0, + debug: 1, + log: 2, + warn: 3, + error: 4, + fatal: 5 + }; + __name(isLogLevelEnabled, "isLogLevelEnabled"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/redact.util.js +function createRedactor(paths, censor = DEFAULT_REDACT_CENSOR) { + const keys = /* @__PURE__ */ new Set(); + const dottedPaths = []; + for (const path of paths) { + const segments = path.split(".").map((segment) => segment.trim().toLowerCase()).filter((segment) => segment.length > 0); + if (segments.length === 1) { + keys.add(segments[0]); + } else if (segments.length > 1) { + dottedPaths.push(segments); + } + } + if (keys.size === 0 && dottedPaths.length === 0) { + return void 0; + } + const contextLength = Math.max(0, ...dottedPaths.map((segments) => segments.length - 1)); + return (value) => { + const path = []; + const ancestors = []; + const visited = /* @__PURE__ */ new Map(); + const isRedacted = /* @__PURE__ */ __name((key) => { + if (keys.has(key)) { + return true; + } + return dottedPaths.some((segments) => { + const last = segments.length - 1; + if (segments[last] !== key || last > path.length) { + return false; + } + for (let i = 1; i <= last; i++) { + if (segments[last - i] !== path[path.length - i]) { + return false; + } + } + return true; + }); + }, "isRedacted"); + const visitProperty = /* @__PURE__ */ __name((key, propertyValue) => { + const normalizedKey = key.toLowerCase(); + if (isRedacted(normalizedKey)) { + return censor; + } + if (typeof propertyValue !== "object" || propertyValue === null) { + return propertyValue; + } + path.push(normalizedKey); + const redacted = visit(propertyValue); + path.pop(); + return redacted; + }, "visitProperty"); + const visit = /* @__PURE__ */ __name((current) => { + if (typeof current !== "object" || current === null) { + return current; + } + if (ancestors.includes(current)) { + return CIRCULAR; + } + const context = contextLength > 0 ? JSON.stringify(path.slice(-contextLength)) : ""; + let results = visited.get(context); + if (!results) { + results = /* @__PURE__ */ new Map(); + visited.set(context, results); + } + if (results.has(current)) { + return results.get(current); + } + let redacted; + ancestors.push(current); + if (Array.isArray(current)) { + redacted = redactArray(current); + } else if (Object.getPrototypeOf(current) === Object.prototype) { + redacted = redactObject(current); + } else if (current instanceof Map) { + redacted = redactMap(current); + } else if (current instanceof Set) { + redacted = redactSet(current); + } else if (isOpaque(current)) { + redacted = current; + } else { + redacted = redactObject(current); + } + ancestors.pop(); + results.set(current, redacted); + return redacted; + }, "visit"); + const redactArray = /* @__PURE__ */ __name((array) => { + let copy; + for (let i = 0; i < array.length; i++) { + const redacted = visit(array[i]); + if (!Object.is(redacted, array[i])) { + copy ??= array.slice(); + copy[i] = redacted; + } + } + return copy ?? array; + }, "redactArray"); + const redactMap = /* @__PURE__ */ __name((map2) => { + let changed = false; + const entries = []; + for (const [key, entryValue] of map2) { + const redacted = typeof key === "string" ? visitProperty(key, entryValue) : visit(entryValue); + changed ||= !Object.is(redacted, entryValue); + entries.push([key, redacted]); + } + return changed ? new Map(entries) : map2; + }, "redactMap"); + const redactSet = /* @__PURE__ */ __name((set) => { + let changed = false; + const values = []; + for (const setValue of set) { + const redacted = visit(setValue); + changed ||= !Object.is(redacted, setValue); + values.push(redacted); + } + return changed ? new Set(values) : set; + }, "redactSet"); + const redactObject = /* @__PURE__ */ __name((object) => { + const source = object; + const keysToVisit = Object.keys(source); + if (object instanceof Error) { + for (const key of ["cause", "errors"]) { + if (Object.prototype.hasOwnProperty.call(object, key) && !keysToVisit.includes(key)) { + keysToVisit.push(key); + } + } + } + let changes; + for (const key of keysToVisit) { + const original = source[key]; + const redacted = visitProperty(key, original); + if (!Object.is(redacted, original)) { + changes ??= /* @__PURE__ */ new Map(); + changes.set(key, redacted); + } + } + if (!changes) { + return object; + } + if (Object.getPrototypeOf(object) === Object.prototype) { + const copy = { ...source }; + for (const [key, redacted] of changes) { + if (key === "__proto__") { + Object.defineProperty(copy, key, { + value: redacted, + enumerable: true, + writable: true, + configurable: true + }); + } else { + copy[key] = redacted; + } + } + return copy; + } + const descriptors = Object.getOwnPropertyDescriptors(object); + if (object instanceof Error && descriptors.stack?.get) { + descriptors.stack = { + value: object.stack, + enumerable: descriptors.stack.enumerable, + writable: true, + configurable: true + }; + } + for (const [key, redacted] of changes) { + descriptors[key] = { + value: redacted, + enumerable: descriptors[key].enumerable, + writable: true, + configurable: true + }; + } + return Object.create(Object.getPrototypeOf(object), descriptors); + }, "redactObject"); + try { + return visit(value); + } catch { + return censor; + } + }; +} +function isOpaque(value) { + return value instanceof Date || value instanceof RegExp || value instanceof Promise || value instanceof WeakMap || value instanceof WeakSet || value instanceof ArrayBuffer || ArrayBuffer.isView(value); +} +var DEFAULT_REDACT_CENSOR, CIRCULAR; +var init_redact_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/redact.util.js"() { + DEFAULT_REDACT_CENSOR = "[REDACTED]"; + CIRCULAR = "[Circular]"; + __name(createRedactor, "createRedactor"); + __name(isOpaque, "isOpaque"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/console-logger.service.js +import { inspect } from "util"; +var ConsoleLogger_1, DEFAULT_DEPTH, MAX_ERROR_DEPTH, MAX_JSON_LENGTH, DEFAULT_LOG_LEVELS, reportedInvalidEnvLogLevel, dateTimeFormatter, ConsoleLogger; +var init_console_logger_service = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/console-logger.service.js"() { + init_tslib_es6(); + init_core(); + init_cli_colors_util(); + init_shared_utils(); + init_get_env_log_levels_util(); + init_is_log_level_enabled_util(); + init_redact_util(); + DEFAULT_DEPTH = 5; + MAX_ERROR_DEPTH = 5; + MAX_JSON_LENGTH = 1e6; + DEFAULT_LOG_LEVELS = [ + "log", + "error", + "warn", + "debug", + "verbose", + "fatal" + ]; + dateTimeFormatter = new Intl.DateTimeFormat(void 0, { + year: "numeric", + hour: "numeric", + minute: "numeric", + second: "numeric", + day: "2-digit", + month: "2-digit" + }); + ConsoleLogger = class ConsoleLogger2 { + static { + __name(this, "ConsoleLogger"); + } + static { + ConsoleLogger_1 = this; + } + /** + * The options of the logger. + */ + options; + /** + * The context of the logger (can be set manually or automatically inferred). + */ + context; + /** + * The original context of the logger (set in the constructor). + */ + originalContext; + /** + * The options used for the "inspect" method. + */ + inspectOptions; + /** + * The last timestamp at which the log message was printed. + */ + static lastTimestampAt; + /** + * Masks the properties set in the `redact` option. + */ + redactor; + constructor(contextOrOptions, options) { + let [context, opts] = isString(contextOrOptions) ? [contextOrOptions, options] : options ? [void 0, options] : [contextOrOptions?.context, contextOrOptions]; + opts = opts ?? {}; + opts.colors ??= opts.colors ?? (opts.json ? false : isColorAllowed()); + opts.prefix ??= "Nest"; + this.options = opts; + this.inspectOptions = this.getInspectOptions(); + if (opts.redact) { + this.redactor = Array.isArray(opts.redact) ? createRedactor(opts.redact) : createRedactor(opts.redact.paths, opts.redact.censor); + } + if (context) { + this.context = context; + this.originalContext = context; + } + } + log(message, ...optionalParams) { + if (!this.isLevelEnabled("log")) { + return; + } + const { messages, context, params } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "log", "stdout", void 0, params); + } + error(message, ...optionalParams) { + if (!this.isLevelEnabled("error")) { + return; + } + const { messages, context, stack, params } = this.getContextAndStackAndMessagesToPrint([message, ...optionalParams]); + this.printMessages(messages, context, "error", "stderr", stack, params); + this.printStackTrace(stack); + } + warn(message, ...optionalParams) { + if (!this.isLevelEnabled("warn")) { + return; + } + const { messages, context, params } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "warn", "stdout", void 0, params); + } + debug(message, ...optionalParams) { + if (!this.isLevelEnabled("debug")) { + return; + } + const { messages, context, params } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "debug", "stdout", void 0, params); + } + verbose(message, ...optionalParams) { + if (!this.isLevelEnabled("verbose")) { + return; + } + const { messages, context, params } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "verbose", "stdout", void 0, params); + } + fatal(message, ...optionalParams) { + if (!this.isLevelEnabled("fatal")) { + return; + } + const { messages, context, stack, params } = this.getContextAndStackAndMessagesToPrint([message, ...optionalParams]); + this.printMessages(messages, context, "fatal", "stderr", stack, params); + this.printStackTrace(stack); + } + /** + * Set log levels + * @param levels log levels + */ + setLogLevels(levels) { + if (!this.options) { + this.options = {}; + } + this.options.logLevels = levels; + } + /** + * Set logger context + * @param context context + */ + setContext(context) { + this.context = context; + } + /** + * Resets the logger context to the value that was passed in the constructor. + */ + resetContext() { + this.context = this.originalContext; + } + isLevelEnabled(level) { + if (this.options && !this.options.logLevels) { + this.options.logLevels = this.getDefaultLogLevels(); + } + const logLevels = this.options?.logLevels; + return isLogLevelEnabled(level, logLevels); + } + /** + * Returns the levels used when none were passed to the constructor: the + * `NEST_LOG_LEVEL` environment variable if it is set, every level otherwise. + * Called on the first level check rather than in the constructor, so that + * the default logger also sees variables loaded after "@nestjs/common" was + * imported (for example, from a `.env` file). + */ + getDefaultLogLevels() { + const envLogLevels = getEnvLogLevels(); + if (envLogLevels !== false) { + return envLogLevels ?? DEFAULT_LOG_LEVELS; + } + const value = process.env[LOG_LEVEL_ENV_VAR]; + if (reportedInvalidEnvLogLevel !== value) { + reportedInvalidEnvLogLevel = value; + this.options.logLevels = DEFAULT_LOG_LEVELS; + this.warn(`Invalid ${LOG_LEVEL_ENV_VAR} value "${value}". Expected a log level ("warn"), a comma-separated list ("warn,error") or a threshold (">=warn"). Every log level is enabled instead.`, "ConsoleLogger"); + } + return DEFAULT_LOG_LEVELS; + } + getTimestamp() { + return dateTimeFormatter.format(Date.now()); + } + printMessages(messages, context = "", logLevel = "log", writeStreamType, errorStack, params) { + if (this.redactor) { + messages = messages.map((message) => this.redact(this.resolveMessage(message))); + params = params && this.redact(params); + } + if (this.options.json) { + const { messages: jsonMessages, error } = this.extractJsonError(messages.map((message) => this.resolveMessage(message))); + jsonMessages.forEach((message, index) => { + this.printAsJson(message, { + context, + logLevel, + writeStreamType, + errorStack, + params, + // The error belongs to the first record (the log message). + error: index === 0 ? error : void 0 + }); + }); + return; + } + messages.forEach((message) => { + const pidMessage = this.formatPid(process.pid); + const contextMessage = this.formatContext(context); + const timestampDiff = this.updateAndGetTimestampDiff(); + const formattedLogLevel = logLevel.toUpperCase().padStart(7, " "); + const formattedMessage = this.formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff, params); + if (this.options.forceConsole) { + if (writeStreamType === "stderr") { + console.error(formattedMessage.trim()); + } else { + console.log(formattedMessage.trim()); + } + } else { + process[writeStreamType ?? "stdout"].write(formattedMessage); + } + }); + } + printAsJson(message, options) { + const logObject = this.getJsonLogObject(message, options); + const formattedMessage = !this.options.colors && this.inspectOptions.compact === true ? this.stringifyJsonLogObject(logObject) : inspect(logObject, this.inspectOptions); + if (this.options.forceConsole) { + if (options.writeStreamType === "stderr") { + console.error(formattedMessage); + } else { + console.log(formattedMessage); + } + } else { + process[options.writeStreamType ?? "stdout"].write(`${formattedMessage} +`); + } + } + getJsonLogObject(message, options) { + const logObject = { + level: options.logLevel, + pid: process.pid, + timestamp: Date.now(), + message + }; + if (options.context) { + logObject.context = options.context; + } + if (options.errorStack) { + logObject.stack = options.errorStack; + } + if (options.error) { + logObject.error = this.serializeError(options.error); + } + if (options.params) { + if (this.options.flattenParams) { + for (const [key, value] of Object.entries(options.params)) { + if (!(key in logObject)) { + logObject[key] = value; + } + } + } else { + logObject.params = options.params; + } + } + return logObject; + } + /** + * Pulls the first `Error` out of the messages so that it can be attached to + * the log record as a structured `error` field instead of being printed as + * a separate record. When the error is the message itself, the record's + * message becomes the error's message. + */ + extractJsonError(messages) { + const errorIndex = messages.findIndex((message) => message instanceof Error); + if (errorIndex === -1) { + return { messages }; + } + const error = messages[errorIndex]; + const remainingMessages = errorIndex === 0 ? [error.message, ...messages.slice(1)] : messages.filter((_, index) => index !== errorIndex); + return { messages: remainingMessages, error }; + } + /** + * Converts an error into a plain object: `name`, `message`, `stack`, own + * primitive properties (e.g. `code`), and, recursively, `cause` and the + * `errors` of an `AggregateError`, up to a fixed depth. + */ + serializeError(error, depth = 0, ancestors = /* @__PURE__ */ new Set()) { + const serialized = { + name: error.name, + message: error.message, + stack: error.stack + }; + for (const [key, value] of Object.entries(error)) { + if (key in serialized || key === "cause" || key === "errors") { + continue; + } + const isPrimitive = value === null || typeof value !== "object" && typeof value !== "function"; + if (isPrimitive) { + serialized[key] = value; + } + } + const serializeNested = /* @__PURE__ */ __name((value) => { + if (!(value instanceof Error)) { + return value; + } + if (ancestors.has(value)) { + return "[Circular]"; + } + if (depth + 1 > MAX_ERROR_DEPTH) { + return "[Truncated]"; + } + return this.serializeError(value, depth + 1, ancestors); + }, "serializeNested"); + ancestors.add(error); + if (error.cause !== void 0) { + serialized.cause = serializeNested(error.cause); + } + const errors = error.errors; + if (Array.isArray(errors)) { + serialized.errors = errors.map(serializeNested); + } + ancestors.delete(error); + return serialized; + } + /** + * Masks the properties set in the `redact` option. Returns the value itself + * when the option isn't set or nothing matched. + */ + redact(value) { + return this.redactor ? this.redactor(value) : value; + } + formatPid(pid) { + return `[${this.options.prefix}] ${pid} - `; + } + formatContext(context) { + if (!context) { + return ""; + } + context = `[${context}] `; + return this.options.colors ? yellow(context) : context; + } + formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff, params) { + const output = this.stringifyMessage(message, logLevel); + pidMessage = this.colorize(pidMessage, logLevel); + formattedLogLevel = this.colorize(formattedLogLevel, logLevel); + const paramsOutput = params ? ` ${this.stringifyParams(params)}` : ""; + return `${pidMessage}${this.getTimestamp()} ${formattedLogLevel} ${contextMessage}${output}${paramsOutput}${timestampDiff} +`; + } + stringifyParams(params) { + return inspect(params, { + ...this.inspectOptions, + compact: true, + breakLength: Infinity + }); + } + /** + * Resolves a message passed as a function: a class resolves to its name, + * any other function is called (lazy message) and its result re-resolved. + */ + resolveMessage(message) { + if (isFunction(message)) { + const messageAsStr = Function.prototype.toString.call(message); + const isClass = messageAsStr.startsWith("class "); + if (isClass) { + return message.name; + } + return this.resolveMessage(message()); + } + return message; + } + stringifyMessage(message, logLevel) { + message = this.resolveMessage(message); + if (typeof message === "string") { + return this.colorize(message, logLevel); + } + const outputText = inspect(message, this.inspectOptions); + if (isPlainObject(message)) { + return `Object(${Object.keys(message).length}) ${outputText}`; + } + if (Array.isArray(message)) { + return `Array(${message.length}) ${outputText}`; + } + return outputText; + } + colorize(message, logLevel) { + if (!this.options.colors || this.options.json) { + return message; + } + const color = this.getColorByLogLevel(logLevel); + return color(message); + } + printStackTrace(stack) { + if (!stack || this.options.json) { + return; + } + if (this.options.forceConsole) { + console.error(stack); + } else { + process.stderr.write(`${stack} +`); + } + } + updateAndGetTimestampDiff() { + const includeTimestamp = ConsoleLogger_1.lastTimestampAt && this.options?.timestamp; + const result = includeTimestamp ? this.formatTimestampDiff(Date.now() - ConsoleLogger_1.lastTimestampAt) : ""; + ConsoleLogger_1.lastTimestampAt = Date.now(); + return result; + } + formatTimestampDiff(timestampDiff) { + const formattedDiff = ` +${timestampDiff}ms`; + return this.options.colors ? yellow(formattedDiff) : formattedDiff; + } + getInspectOptions() { + let breakLength = this.options.breakLength; + if (typeof breakLength === "undefined") { + breakLength = this.options.colors ? this.options.compact ? Infinity : void 0 : this.options.compact === false ? void 0 : Infinity; + } + const inspectOptions = { + depth: this.options.depth ?? DEFAULT_DEPTH, + sorted: this.options.sorted, + showHidden: this.options.showHidden, + compact: this.options.compact ?? (this.options.json ? true : false), + colors: this.options.colors, + breakLength + }; + if (typeof this.options.maxArrayLength !== "undefined") { + inspectOptions.maxArrayLength = this.options.maxArrayLength; + } + if (typeof this.options.maxStringLength !== "undefined") { + inspectOptions.maxStringLength = this.options.maxStringLength; + } + return inspectOptions; + } + /** + * Serializes a JSON log object without ever throwing: circular references + * are replaced with "[Circular]", whatever comes past `MAX_JSON_LENGTH` + * characters with "[Truncated]", and a value that cannot be serialized + * (e.g. a throwing `toJSON()`) makes the whole record fall back to `inspect`. + */ + stringifyJsonLogObject(logObject) { + const replacer = this.stringifyReplacer.bind(this); + const ancestors = []; + let length = 0; + try { + return JSON.stringify(logObject, function(key, value) { + value = replacer(key, value); + length += (Array.isArray(this) ? 0 : key.length) + (isString(value) || typeof value === "number" ? String(value).length : 1); + if (length > MAX_JSON_LENGTH) { + return isString(value) || typeof value === "object" && value !== null ? "[Truncated]" : value; + } + if (typeof value !== "object" || value === null) { + return value; + } + while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this) { + ancestors.pop(); + } + if (ancestors.includes(value)) { + return "[Circular]"; + } + ancestors.push(value); + return value; + }); + } catch { + return inspect(logObject, { + ...this.inspectOptions, + colors: false, + compact: true, + breakLength: Infinity + }); + } + } + stringifyReplacer(key, value) { + if (typeof value === "bigint") { + return value.toString(); + } + if (typeof value === "symbol") { + return value.toString(); + } + if (value instanceof Map || value instanceof Set || value instanceof Error) { + return `${inspect(value, this.inspectOptions)}`; + } + return value; + } + getContextAndMessagesToPrint(args) { + if (args?.length <= 1) { + return { messages: args, context: this.context }; + } + const lastElement = args[args.length - 1]; + const isContext = isString(lastElement); + let context; + let remainingArgs; + if (isContext) { + context = lastElement; + remainingArgs = args.slice(0, args.length - 1); + } else { + context = this.context; + remainingArgs = args; + } + if (this.options.structuredParams === false) { + return { messages: remainingArgs, context }; + } + const messages = [remainingArgs[0]]; + const paramObjects = []; + for (let i = 1; i < remainingArgs.length; i++) { + if (isPlainObject(remainingArgs[i])) { + paramObjects.push(remainingArgs[i]); + } else { + messages.push(remainingArgs[i]); + } + } + const params = paramObjects.length > 0 ? Object.assign({}, ...paramObjects) : void 0; + return { messages, context, params }; + } + getContextAndStackAndMessagesToPrint(args) { + if (args.length === 1) { + return { ...this.getContextAndMessagesToPrint(args) }; + } + if (args.length === 2) { + if (this.isStackFormat(args[1]) || isUndefined(args[1])) { + return { + messages: [args[0]], + stack: args[1], + context: this.context + }; + } + return { ...this.getContextAndMessagesToPrint(args) }; + } + const trailingArg = args[args.length - 1]; + if (this.isStackFormat(trailingArg)) { + const { messages: messages2, context: context2, params: params2 } = this.getContextAndMessagesToPrint(args.slice(0, -1)); + return { + messages: messages2, + context: context2, + stack: trailingArg, + params: params2 + }; + } + const { messages, context, params } = this.getContextAndMessagesToPrint(args); + if (messages?.length <= 1) { + return { messages, context, params }; + } + const lastElement = messages[messages.length - 1]; + const isStack = isString(lastElement); + if (!isStack && !isUndefined(lastElement)) { + return { messages, context, params }; + } + return { + stack: lastElement, + messages: messages.slice(0, messages.length - 1), + context, + params + }; + } + isStackFormat(stack) { + if (!isString(stack) && !isUndefined(stack)) { + return false; + } + return /\n[ \t]+at .+:\d+:\d+/.test(stack); + } + getColorByLogLevel(level) { + switch (level) { + case "debug": + return clc.magentaBright; + case "warn": + return clc.yellow; + case "error": + return clc.red; + case "verbose": + return clc.cyanBright; + case "fatal": + return clc.bold; + default: + return clc.green; + } + } + }; + ConsoleLogger = ConsoleLogger_1 = __decorate([ + Injectable(), + __param(0, Optional()), + __param(1, Optional()), + __metadata("design:paramtypes", [Object, Object]) + ], ConsoleLogger); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/index.js +var init_utils = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/utils/index.js"() { + init_filter_log_levels_util(); + init_is_log_level_enabled_util(); + init_is_log_level_util(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/logger.service.js +var Logger_1, DEFAULT_LOGGER, dateTimeFormatter2, Logger; +var init_logger_service = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/logger.service.js"() { + init_tslib_es6(); + init_core(); + init_shared_utils(); + init_console_logger_service(); + init_utils(); + init_log_levels_constant(); + DEFAULT_LOGGER = new ConsoleLogger(); + dateTimeFormatter2 = new Intl.DateTimeFormat(void 0, { + year: "numeric", + hour: "numeric", + minute: "numeric", + second: "numeric", + day: "2-digit", + month: "2-digit" + }); + Logger = class Logger2 { + static { + __name(this, "Logger"); + } + static { + Logger_1 = this; + } + context; + options; + static logBuffer = new Array(); + static staticInstanceRef = DEFAULT_LOGGER; + static logLevels; + static isBufferAttached; + localInstanceRef; + /** + * The `Logger.logLevels` the local instance was last configured with. + */ + localInstanceLogLevels; + static WrapBuffer = /* @__PURE__ */ __name((target, propertyKey, descriptor) => { + const originalFn = descriptor.value; + descriptor.value = function(...args) { + if (Logger_1.isBufferAttached) { + Logger_1.logBuffer.push({ + methodRef: originalFn.bind(this), + arguments: args + }); + return; + } + return originalFn.call(this, ...args); + }; + }, "WrapBuffer"); + constructor(context, options = {}) { + this.context = context; + this.options = options; + } + get localInstance() { + if (Logger_1.staticInstanceRef === DEFAULT_LOGGER) { + return this.registerLocalInstanceRef(); + } else if (Logger_1.staticInstanceRef instanceof Logger_1) { + const prototype = Object.getPrototypeOf(Logger_1.staticInstanceRef); + if (prototype.constructor === Logger_1) { + return this.registerLocalInstanceRef(); + } + } + return Logger_1.staticInstanceRef; + } + error(message, ...optionalParams) { + optionalParams = this.context ? (optionalParams.length ? optionalParams : [void 0]).concat(this.context) : optionalParams; + this.localInstance?.error(message, ...optionalParams); + } + log(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.log(message, ...optionalParams); + } + warn(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.warn(message, ...optionalParams); + } + debug(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.debug?.(message, ...optionalParams); + } + verbose(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.verbose?.(message, ...optionalParams); + } + fatal(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.fatal?.(message, ...optionalParams); + } + static error(message, ...optionalParams) { + this.staticInstanceRef?.error(message, ...optionalParams); + } + static log(message, ...optionalParams) { + this.staticInstanceRef?.log(message, ...optionalParams); + } + static warn(message, ...optionalParams) { + this.staticInstanceRef?.warn(message, ...optionalParams); + } + static debug(message, ...optionalParams) { + this.staticInstanceRef?.debug?.(message, ...optionalParams); + } + static verbose(message, ...optionalParams) { + this.staticInstanceRef?.verbose?.(message, ...optionalParams); + } + static fatal(message, ...optionalParams) { + this.staticInstanceRef?.fatal?.(message, ...optionalParams); + } + /** + * Print buffered logs and detach buffer. + */ + static flush() { + this.isBufferAttached = false; + this.logBuffer.forEach((item) => item.methodRef(...item.arguments)); + this.logBuffer = []; + } + /** + * Attach buffer. + * Turns on initialization logs buffering. + */ + static attachBuffer() { + this.isBufferAttached = true; + } + /** + * Detach buffer. + * Turns off initialization logs buffering. + */ + static detachBuffer() { + this.isBufferAttached = false; + } + static getTimestamp() { + return dateTimeFormatter2.format(Date.now()); + } + static overrideLogger(logger3) { + if (Array.isArray(logger3)) { + Logger_1.logLevels = logger3; + return this.staticInstanceRef?.setLogLevels?.(logger3); + } + if (isObject(logger3)) { + if (logger3 instanceof Logger_1 && logger3.constructor !== Logger_1) { + const errorMessage = `Using the "extends Logger" instruction is not allowed in Nest v9. Please, use "extends ConsoleLogger" instead.`; + this.staticInstanceRef?.error(errorMessage); + throw new Error(errorMessage); + } + this.staticInstanceRef = logger3; + } else { + this.staticInstanceRef = void 0; + } + } + static isLevelEnabled(level) { + const instance = Logger_1.staticInstanceRef; + if (!instance) { + return false; + } + if (instance instanceof ConsoleLogger) { + return instance.isLevelEnabled(level); + } + const logLevels = Logger_1.logLevels; + return logLevels ? isLogLevelEnabled(level, logLevels) : true; + } + registerLocalInstanceRef() { + if (this.localInstanceRef) { + if (Logger_1.logLevels && this.localInstanceLogLevels !== Logger_1.logLevels) { + this.localInstanceRef.setLogLevels?.(Logger_1.logLevels); + this.localInstanceLogLevels = Logger_1.logLevels; + } + return this.localInstanceRef; + } + this.localInstanceLogLevels = Logger_1.logLevels; + this.localInstanceRef = new ConsoleLogger(this.context, { + timestamp: this.options?.timestamp, + logLevels: Logger_1.logLevels + }); + return this.localInstanceRef; + } + }; + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger.prototype, "error", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger.prototype, "log", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger.prototype, "warn", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger.prototype, "debug", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger.prototype, "verbose", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger.prototype, "fatal", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger, "error", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger, "log", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger, "warn", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger, "debug", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger, "verbose", null); + __decorate([ + Logger.WrapBuffer, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) + ], Logger, "fatal", null); + Logger = Logger_1 = __decorate([ + Injectable(), + __param(0, Optional()), + __param(1, Optional()), + __metadata("design:paramtypes", [String, Object]) + ], Logger); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/shutdown-signal.enum.js +var ShutdownSignal; +var init_shutdown_signal_enum = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/shutdown-signal.enum.js"() { + (function(ShutdownSignal2) { + ShutdownSignal2["SIGHUP"] = "SIGHUP"; + ShutdownSignal2["SIGINT"] = "SIGINT"; + ShutdownSignal2["SIGQUIT"] = "SIGQUIT"; + ShutdownSignal2["SIGILL"] = "SIGILL"; + ShutdownSignal2["SIGTRAP"] = "SIGTRAP"; + ShutdownSignal2["SIGABRT"] = "SIGABRT"; + ShutdownSignal2["SIGBUS"] = "SIGBUS"; + ShutdownSignal2["SIGFPE"] = "SIGFPE"; + ShutdownSignal2["SIGSEGV"] = "SIGSEGV"; + ShutdownSignal2["SIGUSR2"] = "SIGUSR2"; + ShutdownSignal2["SIGTERM"] = "SIGTERM"; + })(ShutdownSignal || (ShutdownSignal = {})); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/index.js +var init_enums = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/index.js"() { + init_request_method_enum(); + init_http_status_enum(); + init_shutdown_signal_enum(); + init_version_type_enum(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/index.js +var init_services = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/services/index.js"() { + init_console_logger_service(); + init_logger_service(); + init_filter_log_levels_util(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/file-stream/streamable-file.js +import { Readable } from "stream"; +import { types } from "util"; +var StreamableFile; +var init_streamable_file = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/file-stream/streamable-file.js"() { + init_enums(); + init_services(); + init_shared_utils(); + StreamableFile = class { + static { + __name(this, "StreamableFile"); + } + options; + stream; + logger = new Logger("StreamableFile"); + handleError = /* @__PURE__ */ __name((err, res) => { + if (res.destroyed) { + return; + } + if (res.headersSent) { + res.end(); + return; + } + this.logError(err); + res.statusCode = HttpStatus.BAD_REQUEST; + res.send("Bad Request"); + }, "handleError"); + logError = /* @__PURE__ */ __name((err) => { + this.logger.error(err); + }, "logError"); + constructor(bufferOrReadStream, options = {}) { + this.options = options; + if (types.isUint8Array(bufferOrReadStream)) { + this.stream = new Readable(); + this.stream.push(bufferOrReadStream); + this.stream.push(null); + this.options = { + ...this.options, + length: this.options.length ?? bufferOrReadStream.length + }; + } else if (bufferOrReadStream.pipe && isFunction(bufferOrReadStream.pipe)) { + this.stream = bufferOrReadStream; + if (isFunction(this.stream.on)) { + this.stream.on("error", () => { + }); + } + } + } + getStream() { + return this.stream; + } + getHeaders() { + const { type = "application/octet-stream", disposition = void 0, length = void 0 } = this.options; + return { + type, + disposition, + length + }; + } + get errorHandler() { + return this.handleError; + } + setErrorHandler(handler) { + this.handleError = handler; + return this; + } + get errorLogger() { + return this.logError; + } + setErrorLogger(handler) { + this.logError = handler; + return this; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/version-options.interface.js +var VERSION_NEUTRAL; +var init_version_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/version-options.interface.js"() { + VERSION_NEUTRAL = /* @__PURE__ */ Symbol("VERSION_NEUTRAL"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/random-string-generator.util.js +var randomStringGenerator; +var init_random_string_generator_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/random-string-generator.util.js"() { + init_dist(); + randomStringGenerator = /* @__PURE__ */ __name(() => uid(21), "randomStringGenerator"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/load-package.util.js +import { createRequire } from "module"; +async function loadPackage(packageName, context, loaderFn) { + const cached = packageCache.get(packageName); + if (cached) { + return cached; + } + try { + const pkg = loaderFn ? await loaderFn() : await import(packageName); + packageCache.set(packageName, pkg); + return pkg; + } catch (e) { + logger.error(MISSING_REQUIRED_DEPENDENCY(packageName, context)); + Logger.flush(); + process.exit(1); + } +} +function loadPackageSync(packageName, context, loaderFn) { + const cached = packageCache.get(packageName); + if (cached) { + return cached; + } + try { + const pkg = loaderFn ? loaderFn() : createRequire(import.meta.url)(packageName); + packageCache.set(packageName, pkg); + return pkg; + } catch (e) { + logger.error(MISSING_REQUIRED_DEPENDENCY(packageName, context)); + Logger.flush(); + process.exit(1); + } +} +function loadPackageCached(packageName, context) { + const cached = packageCache.get(packageName); + if (!cached) { + if (context) { + return loadPackageSync(packageName, context); + } + throw new Error(`Package "${packageName}" has not been loaded yet. Ensure loadPackage("${packageName}", ...) has been awaited before calling loadPackageCached.`); + } + return cached; +} +async function tryLoadPackage(packageName, loaderFn) { + const cached = packageCache.get(packageName); + if (cached) { + return cached; + } + try { + const pkg = loaderFn ? await loaderFn() : await import(packageName); + packageCache.set(packageName, pkg); + return pkg; + } catch { + return null; + } +} +var MISSING_REQUIRED_DEPENDENCY, logger, packageCache; +var init_load_package_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/load-package.util.js"() { + init_logger_service(); + MISSING_REQUIRED_DEPENDENCY = /* @__PURE__ */ __name((name, reason) => `The "${name}" package is missing. Please, make sure to install it to use ${reason}.`, "MISSING_REQUIRED_DEPENDENCY"); + logger = new Logger("PackageLoader"); + packageCache = /* @__PURE__ */ new Map(); + __name(loadPackage, "loadPackage"); + __name(loadPackageSync, "loadPackageSync"); + __name(loadPackageCached, "loadPackageCached"); + __name(tryLoadPackage, "tryLoadPackage"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/modules/index.js +var init_modules = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/modules/index.js"() { + init_global_decorator(); + init_module_decorator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/route-paramtypes.enum.js +var RouteParamtypes; +var init_route_paramtypes_enum = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/enums/route-paramtypes.enum.js"() { + (function(RouteParamtypes2) { + RouteParamtypes2[RouteParamtypes2["REQUEST"] = 0] = "REQUEST"; + RouteParamtypes2[RouteParamtypes2["RESPONSE"] = 1] = "RESPONSE"; + RouteParamtypes2[RouteParamtypes2["NEXT"] = 2] = "NEXT"; + RouteParamtypes2[RouteParamtypes2["BODY"] = 3] = "BODY"; + RouteParamtypes2[RouteParamtypes2["QUERY"] = 4] = "QUERY"; + RouteParamtypes2[RouteParamtypes2["PARAM"] = 5] = "PARAM"; + RouteParamtypes2[RouteParamtypes2["HEADERS"] = 6] = "HEADERS"; + RouteParamtypes2[RouteParamtypes2["SESSION"] = 7] = "SESSION"; + RouteParamtypes2[RouteParamtypes2["FILE"] = 8] = "FILE"; + RouteParamtypes2[RouteParamtypes2["FILES"] = 9] = "FILES"; + RouteParamtypes2[RouteParamtypes2["HOST"] = 10] = "HOST"; + RouteParamtypes2[RouteParamtypes2["IP"] = 11] = "IP"; + RouteParamtypes2[RouteParamtypes2["RAW_BODY"] = 12] = "RAW_BODY"; + RouteParamtypes2[RouteParamtypes2["ACK"] = 13] = "ACK"; + RouteParamtypes2[RouteParamtypes2["COOKIES"] = 14] = "COOKIES"; + RouteParamtypes2[RouteParamtypes2["SIGNED_COOKIES"] = 15] = "SIGNED_COOKIES"; + })(RouteParamtypes || (RouteParamtypes = {})); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/parameter-decorator-options.util.js +function isParameterDecoratorOptions(value) { + return !!value && typeof value === "object" && !isPipeLike(value) && ("schema" in value || "pipes" in value); +} +var isPipeLike; +var init_parameter_decorator_options_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/parameter-decorator-options.util.js"() { + init_shared_utils(); + isPipeLike = /* @__PURE__ */ __name((value) => isFunction(value?.transform) || isFunction(value) && value.prototype && isFunction(value.prototype.transform), "isPipeLike"); + __name(isParameterDecoratorOptions, "isParameterDecoratorOptions"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/route-params.decorator.js +function assignMetadata(args, paramtype, index, options, ...legacyPipes) { + const isOptionsObject = options !== null && typeof options === "object" && (isParameterDecoratorOptions(options) || "data" in options) && !("transform" in options) && legacyPipes.length === 0; + const normalizedOptions = isOptionsObject ? options : { data: options, pipes: legacyPipes }; + return { + ...args, + [`${paramtype}:${index}`]: { + index, + data: normalizedOptions.data, + pipes: normalizedOptions.pipes ?? [], + ...normalizedOptions.schema !== void 0 && { + schema: normalizedOptions.schema + } + } + }; +} +function createRouteParamDecorator(paramtype) { + return (data) => (target, key, index) => { + const args = Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {}; + Reflect.defineMetadata(ROUTE_ARGS_METADATA, assignMetadata(args, paramtype, index, { + data + }), target.constructor, key); + }; +} +function UploadedFile(fileKey, ...pipes) { + return createPipesRouteParamDecorator(RouteParamtypes.FILE)({ + data: fileKey, + pipes + }); +} +function UploadedFiles(...pipes) { + return createPipesRouteParamDecorator(RouteParamtypes.FILES)({ + pipes + }); +} +function Query(property, optionsOrPipe, ...pipes) { + const isPropertyOptions = isParameterDecoratorOptions(property); + if (isPropertyOptions) { + return createPipesRouteParamDecorator(RouteParamtypes.QUERY)({ + pipes: property.pipes, + schema: property.schema + }); + } + const isOptions = isParameterDecoratorOptions(optionsOrPipe); + const actualPipes = isOptions ? [...optionsOrPipe.pipes ?? [], ...pipes] : [optionsOrPipe, ...pipes].filter(Boolean); + return createPipesRouteParamDecorator(RouteParamtypes.QUERY)({ + data: property, + pipes: actualPipes, + schema: isOptions ? optionsOrPipe.schema : void 0 + }); +} +function Body(property, optionsOrPipe, ...pipes) { + const isPropertyOptions = isParameterDecoratorOptions(property); + if (isPropertyOptions) { + return createPipesRouteParamDecorator(RouteParamtypes.BODY)({ + pipes: property.pipes, + schema: property.schema + }); + } + const isOptions = isParameterDecoratorOptions(optionsOrPipe); + const actualPipes = isOptions ? [...optionsOrPipe.pipes ?? [], ...pipes] : [optionsOrPipe, ...pipes].filter(Boolean); + return createPipesRouteParamDecorator(RouteParamtypes.BODY)({ + data: property, + pipes: actualPipes, + schema: isOptions ? optionsOrPipe.schema : void 0 + }); +} +function RawBody(optionsOrPipe, ...pipes) { + const isOptions = isParameterDecoratorOptions(optionsOrPipe); + const actualPipes = isOptions ? [...optionsOrPipe.pipes ?? [], ...pipes] : [optionsOrPipe, ...pipes].filter(Boolean); + return createPipesRouteParamDecorator(RouteParamtypes.RAW_BODY)({ + pipes: actualPipes, + schema: isOptions ? optionsOrPipe.schema : void 0 + }); +} +function Param(property, optionsOrPipe, ...pipes) { + const isPropertyOptions = isParameterDecoratorOptions(property); + if (isPropertyOptions) { + return createPipesRouteParamDecorator(RouteParamtypes.PARAM)({ + pipes: property.pipes, + schema: property.schema + }); + } + const isOptions = isParameterDecoratorOptions(optionsOrPipe); + const actualPipes = isOptions ? [...optionsOrPipe.pipes ?? [], ...pipes] : [optionsOrPipe, ...pipes].filter(Boolean); + return createPipesRouteParamDecorator(RouteParamtypes.PARAM)({ + data: property, + pipes: actualPipes, + schema: isOptions ? optionsOrPipe.schema : void 0 + }); +} +function HostParam(property) { + return createRouteParamDecorator(RouteParamtypes.HOST)(property); +} +function Cookies(property, ...pipes) { + return createPipesRouteParamDecorator(RouteParamtypes.COOKIES)({ + data: property, + pipes + }); +} +function SignedCookies(property, ...pipes) { + return createPipesRouteParamDecorator(RouteParamtypes.SIGNED_COOKIES)({ + data: property, + pipes + }); +} +var createPipesRouteParamDecorator, Request, Response, Next, Ip, Session, Headers, Req, Res; +var init_route_params_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/route-params.decorator.js"() { + init_constants(); + init_route_paramtypes_enum(); + init_shared_utils(); + init_parameter_decorator_options_util(); + __name(assignMetadata, "assignMetadata"); + __name(createRouteParamDecorator, "createRouteParamDecorator"); + createPipesRouteParamDecorator = /* @__PURE__ */ __name((paramtype) => ({ data, pipes, schema }) => (target, key, index) => { + const args = Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {}; + const hasParamData = isNil(data) || isString(data); + const paramData = hasParamData ? data : void 0; + const paramPipes = hasParamData ? pipes ?? [] : [data, ...pipes ?? []]; + Reflect.defineMetadata(ROUTE_ARGS_METADATA, assignMetadata(args, paramtype, index, { + data: paramData, + pipes: paramPipes, + schema + }), target.constructor, key); + }, "createPipesRouteParamDecorator"); + Request = createRouteParamDecorator(RouteParamtypes.REQUEST); + Response = /* @__PURE__ */ __name((options) => (target, key, index) => { + if (options?.passthrough) { + Reflect.defineMetadata(RESPONSE_PASSTHROUGH_METADATA, options?.passthrough, target.constructor, key); + } + return createRouteParamDecorator(RouteParamtypes.RESPONSE)()(target, key, index); + }, "Response"); + Next = createRouteParamDecorator(RouteParamtypes.NEXT); + Ip = createRouteParamDecorator(RouteParamtypes.IP); + Session = createRouteParamDecorator(RouteParamtypes.SESSION); + __name(UploadedFile, "UploadedFile"); + __name(UploadedFiles, "UploadedFiles"); + Headers = createRouteParamDecorator(RouteParamtypes.HEADERS); + __name(Query, "Query"); + __name(Body, "Body"); + __name(RawBody, "RawBody"); + __name(Param, "Param"); + __name(HostParam, "HostParam"); + __name(Cookies, "Cookies"); + __name(SignedCookies, "SignedCookies"); + Req = Request; + Res = Response; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/http-code.decorator.js +function HttpCode(statusCode) { + return (target, key, descriptor) => { + Reflect.defineMetadata(HTTP_CODE_METADATA, statusCode, descriptor.value); + return descriptor; + }; +} +var init_http_code_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/http-code.decorator.js"() { + init_constants(); + __name(HttpCode, "HttpCode"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/assign-custom-metadata.util.js +function assignCustomParameterMetadata(args, paramtype, index, factory, data, schema, ...pipes) { + return { + ...args, + [`${paramtype}${CUSTOM_ROUTE_ARGS_METADATA}:${index}`]: { + index, + factory, + data, + pipes, + ...schema !== void 0 && { schema } + } + }; +} +var init_assign_custom_metadata_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/assign-custom-metadata.util.js"() { + init_constants(); + __name(assignCustomParameterMetadata, "assignCustomParameterMetadata"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.js +function createParamDecorator(factory, enhancers = []) { + const paramtype = uid(21); + return (data, ...pipes) => (target, key, index) => { + const args = Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {}; + const isPipe = /* @__PURE__ */ __name((pipe) => pipe && (isFunction(pipe) && pipe.prototype && isFunction(pipe.prototype.transform) || isFunction(pipe.transform)), "isPipe"); + const hasParamData = isNil(data) || !isPipe(data); + const paramData = hasParamData ? data : void 0; + const paramPipes = hasParamData ? pipes : [data, ...pipes]; + const isDataOptions = hasParamData && !isNil(data) && isParameterDecoratorOptions(data) && Object.keys(data).every((key2) => key2 === "schema" || key2 === "pipes") && (data.schema === void 0 || isFunction(data.schema?.["~standard"]?.validate)) && (data.pipes === void 0 || Array.isArray(data.pipes) && // Falsy entries are allowed, as the pipes context filters them out + data.pipes.every((pipe) => isNil(pipe) || isPipe(pipe))); + const finalData = isDataOptions ? void 0 : paramData; + let finalSchema; + const finalPipes = []; + for (const arg of isDataOptions ? [data, ...paramPipes] : paramPipes) { + if (isParameterDecoratorOptions(arg)) { + finalSchema ??= arg.schema; + finalPipes.push(...arg.pipes ?? []); + } else { + finalPipes.push(arg); + } + } + Reflect.defineMetadata(ROUTE_ARGS_METADATA, assignCustomParameterMetadata(args, paramtype, index, factory, finalData, finalSchema, ...finalPipes), target.constructor, key); + enhancers.forEach((fn) => fn(target, key, index)); + }; +} +var init_create_route_param_metadata_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.js"() { + init_dist(); + init_constants(); + init_assign_custom_metadata_util(); + init_shared_utils(); + init_parameter_decorator_options_util(); + __name(createParamDecorator, "createParamDecorator"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/render.decorator.js +function Render(template) { + return (target, key, descriptor) => { + Reflect.defineMetadata(RENDER_METADATA, template, descriptor.value); + return descriptor; + }; +} +var init_render_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/render.decorator.js"() { + init_constants(); + __name(Render, "Render"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/header.decorator.js +function Header(name, value) { + return (target, key, descriptor) => { + extendArrayMetadata(HEADERS_METADATA, [{ name, value }], descriptor.value); + return descriptor; + }; +} +var init_header_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/header.decorator.js"() { + init_constants(); + init_extend_metadata_util(); + __name(Header, "Header"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/redirect.decorator.js +function Redirect(url = "", statusCode) { + return (target, key, descriptor) => { + Reflect.defineMetadata(REDIRECT_METADATA, { statusCode, url }, descriptor.value); + return descriptor; + }; +} +var init_redirect_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/redirect.decorator.js"() { + init_constants(); + __name(Redirect, "Redirect"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/sse.decorator.js +function Sse(path, options = {}) { + return (target, key, descriptor) => { + path = path && path.length ? path : "/"; + Reflect.defineMetadata(PATH_METADATA, path, descriptor.value); + Reflect.defineMetadata(METHOD_METADATA, options[METHOD_METADATA] ?? RequestMethod.GET, descriptor.value); + Reflect.defineMetadata(SSE_METADATA, true, descriptor.value); + Reflect.defineMetadata(SSE_OPTIONS_METADATA, { maxPendingDataLength: options.maxPendingDataLength }, descriptor.value); + return descriptor; + }; +} +var init_sse_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/sse.decorator.js"() { + init_constants(); + init_request_method_enum(); + __name(Sse, "Sse"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/sse-signal.decorator.js +var SSE_ABORT_CONTROLLER, SseSignal; +var init_sse_signal_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/sse-signal.decorator.js"() { + init_create_route_param_metadata_decorator(); + SSE_ABORT_CONTROLLER = /* @__PURE__ */ Symbol("SSE_ABORT_CONTROLLER"); + SseSignal = createParamDecorator((_data, ctx) => { + const request = ctx.switchToHttp().getRequest(); + const controller = request?.[SSE_ABORT_CONTROLLER]; + return controller?.signal; + }); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/index.js +var init_http = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/http/index.js"() { + init_request_mapping_decorator(); + init_route_params_decorator(); + init_http_code_decorator(); + init_create_route_param_metadata_decorator(); + init_render_decorator(); + init_header_decorator(); + init_redirect_decorator(); + init_sse_decorator(); + init_sse_signal_decorator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/index.js +var init_decorators = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/decorators/index.js"() { + init_core(); + init_modules(); + init_http(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/bad-gateway.exception.js +var BadGatewayException; +var init_bad_gateway_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/bad-gateway.exception.js"() { + init_http_status_enum(); + init_http_exception(); + BadGatewayException = class extends HttpException { + static { + __name(this, "BadGatewayException"); + } + /** + * Instantiate a `BadGatewayException` Exception. + * + * @example + * `throw new BadGatewayException()` + * + * @usageNotes + * The HTTP response status code will be 502. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 502. + * - `message`: the string `'Bad Gateway'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Bad Gateway") { + const { description = "Bad Gateway", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.BAD_GATEWAY, httpExceptionOptions?.errorCode), HttpStatus.BAD_GATEWAY, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/conflict.exception.js +var ConflictException; +var init_conflict_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/conflict.exception.js"() { + init_http_status_enum(); + init_http_exception(); + ConflictException = class extends HttpException { + static { + __name(this, "ConflictException"); + } + /** + * Instantiate a `ConflictException` Exception. + * + * @example + * `throw new ConflictException()` + * + * @usageNotes + * The HTTP response status code will be 409. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 409. + * - `message`: the string `'Conflict'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Conflict") { + const { description = "Conflict", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.CONFLICT, httpExceptionOptions?.errorCode), HttpStatus.CONFLICT, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/forbidden.exception.js +var ForbiddenException; +var init_forbidden_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/forbidden.exception.js"() { + init_http_status_enum(); + init_http_exception(); + ForbiddenException = class extends HttpException { + static { + __name(this, "ForbiddenException"); + } + /** + * Instantiate a `ForbiddenException` Exception. + * + * @example + * `throw new ForbiddenException()` + * + * @usageNotes + * The HTTP response status code will be 403. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 403. + * - `message`: the string `'Forbidden'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Forbidden") { + const { description = "Forbidden", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.FORBIDDEN, httpExceptionOptions?.errorCode), HttpStatus.FORBIDDEN, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/gateway-timeout.exception.js +var GatewayTimeoutException; +var init_gateway_timeout_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/gateway-timeout.exception.js"() { + init_http_status_enum(); + init_http_exception(); + GatewayTimeoutException = class extends HttpException { + static { + __name(this, "GatewayTimeoutException"); + } + /** + * Instantiate a `GatewayTimeoutException` Exception. + * + * @example + * `throw new GatewayTimeoutException()` + * + * @usageNotes + * The HTTP response status code will be 504. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 504. + * - `message`: the string `'Gateway Timeout'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Gateway Timeout") { + const { description = "Gateway Timeout", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.GATEWAY_TIMEOUT, httpExceptionOptions?.errorCode), HttpStatus.GATEWAY_TIMEOUT, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/gone.exception.js +var GoneException; +var init_gone_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/gone.exception.js"() { + init_http_status_enum(); + init_http_exception(); + GoneException = class extends HttpException { + static { + __name(this, "GoneException"); + } + /** + * Instantiate a `GoneException` Exception. + * + * @example + * `throw new GoneException()` + * + * @usageNotes + * The HTTP response status code will be 410. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 410. + * - `message`: the string `'Gone'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Gone") { + const { description = "Gone", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.GONE, httpExceptionOptions?.errorCode), HttpStatus.GONE, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.js +var HttpVersionNotSupportedException; +var init_http_version_not_supported_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.js"() { + init_http_status_enum(); + init_http_exception(); + HttpVersionNotSupportedException = class extends HttpException { + static { + __name(this, "HttpVersionNotSupportedException"); + } + /** + * Instantiate a `HttpVersionNotSupportedException` Exception. + * + * @example + * `throw new HttpVersionNotSupportedException()` + * + * @usageNotes + * The HTTP response status code will be 505. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 505. + * - `message`: the string `'HTTP Version Not Supported'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "HTTP Version Not Supported") { + const { description = "HTTP Version Not Supported", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.HTTP_VERSION_NOT_SUPPORTED, httpExceptionOptions?.errorCode), HttpStatus.HTTP_VERSION_NOT_SUPPORTED, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/im-a-teapot.exception.js +var ImATeapotException; +var init_im_a_teapot_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/im-a-teapot.exception.js"() { + init_http_status_enum(); + init_http_exception(); + ImATeapotException = class extends HttpException { + static { + __name(this, "ImATeapotException"); + } + /** + * Instantiate an `ImATeapotException` Exception. + * + * @example + * `throw new ImATeapotException()` + * + * @usageNotes + * The HTTP response status code will be 418. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 418. + * - `message`: the string `"I'm a Teapot"` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = `I'm a teapot`) { + const { description = `I'm a teapot`, httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.I_AM_A_TEAPOT, httpExceptionOptions?.errorCode), HttpStatus.I_AM_A_TEAPOT, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/method-not-allowed.exception.js +var MethodNotAllowedException; +var init_method_not_allowed_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/method-not-allowed.exception.js"() { + init_http_status_enum(); + init_http_exception(); + MethodNotAllowedException = class extends HttpException { + static { + __name(this, "MethodNotAllowedException"); + } + /** + * Instantiate a `MethodNotAllowedException` Exception. + * + * @example + * `throw new MethodNotAllowedException()` + * + * @usageNotes + * The HTTP response status code will be 405. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 405. + * - `message`: the string `'Method Not Allowed'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Method Not Allowed") { + const { description = "Method Not Allowed", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.METHOD_NOT_ALLOWED, httpExceptionOptions?.errorCode), HttpStatus.METHOD_NOT_ALLOWED, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/misdirected.exception.js +var MisdirectedException; +var init_misdirected_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/misdirected.exception.js"() { + init_http_status_enum(); + init_http_exception(); + MisdirectedException = class extends HttpException { + static { + __name(this, "MisdirectedException"); + } + /** + * Instantiate a `MisdirectedException` Exception. + * + * @example + * `throw new MisdirectedException()` + * + * @usageNotes + * The HTTP response status code will be 421. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 421. + * - `message`: the string `'Misdirected'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Misdirected") { + const { description = "Misdirected", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.MISDIRECTED, httpExceptionOptions?.errorCode), HttpStatus.MISDIRECTED, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/not-acceptable.exception.js +var NotAcceptableException; +var init_not_acceptable_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/not-acceptable.exception.js"() { + init_http_status_enum(); + init_http_exception(); + NotAcceptableException = class extends HttpException { + static { + __name(this, "NotAcceptableException"); + } + /** + * Instantiate a `NotAcceptableException` Exception. + * + * @example + * `throw new NotAcceptableException()` + * + * @usageNotes + * The HTTP response status code will be 406. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 406. + * - `message`: the string `'Not Acceptable'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Not Acceptable") { + const { description = "Not Acceptable", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.NOT_ACCEPTABLE, httpExceptionOptions?.errorCode), HttpStatus.NOT_ACCEPTABLE, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/not-found.exception.js +var NotFoundException; +var init_not_found_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/not-found.exception.js"() { + init_http_status_enum(); + init_http_exception(); + NotFoundException = class extends HttpException { + static { + __name(this, "NotFoundException"); + } + /** + * Instantiate a `NotFoundException` Exception. + * + * @example + * `throw new NotFoundException()` + * + * @usageNotes + * The HTTP response status code will be 404. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 404. + * - `message`: the string `'Not Found'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Not Found") { + const { description = "Not Found", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.NOT_FOUND, httpExceptionOptions?.errorCode), HttpStatus.NOT_FOUND, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/not-implemented.exception.js +var NotImplementedException; +var init_not_implemented_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/not-implemented.exception.js"() { + init_http_status_enum(); + init_http_exception(); + NotImplementedException = class extends HttpException { + static { + __name(this, "NotImplementedException"); + } + /** + * Instantiate a `NotImplementedException` Exception. + * + * @example + * `throw new NotImplementedException()` + * + * @usageNotes + * The HTTP response status code will be 501. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 501. + * - `message`: the string `'Not Implemented'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + * @param error a short description of the HTTP error. + */ + constructor(objectOrError, descriptionOrOptions = "Not Implemented") { + const { description = "Not Implemented", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.NOT_IMPLEMENTED, httpExceptionOptions?.errorCode), HttpStatus.NOT_IMPLEMENTED, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/payload-too-large.exception.js +var PayloadTooLargeException; +var init_payload_too_large_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/payload-too-large.exception.js"() { + init_http_status_enum(); + init_http_exception(); + PayloadTooLargeException = class extends HttpException { + static { + __name(this, "PayloadTooLargeException"); + } + /** + * Instantiate a `PayloadTooLargeException` Exception. + * + * @example + * `throw new PayloadTooLargeException()` + * + * @usageNotes + * The HTTP response status code will be 413. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 413. + * - `message`: the string `'Payload Too Large'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Payload Too Large") { + const { description = "Payload Too Large", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.PAYLOAD_TOO_LARGE, httpExceptionOptions?.errorCode), HttpStatus.PAYLOAD_TOO_LARGE, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/precondition-failed.exception.js +var PreconditionFailedException; +var init_precondition_failed_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/precondition-failed.exception.js"() { + init_http_status_enum(); + init_http_exception(); + PreconditionFailedException = class extends HttpException { + static { + __name(this, "PreconditionFailedException"); + } + /** + * Instantiate a `PreconditionFailedException` Exception. + * + * @example + * `throw new PreconditionFailedException()` + * + * @usageNotes + * The HTTP response status code will be 412. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 412. + * - `message`: the string `'Precondition Failed'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Precondition Failed") { + const { description = "Precondition Failed", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.PRECONDITION_FAILED, httpExceptionOptions?.errorCode), HttpStatus.PRECONDITION_FAILED, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/request-timeout.exception.js +var RequestTimeoutException; +var init_request_timeout_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/request-timeout.exception.js"() { + init_http_status_enum(); + init_http_exception(); + RequestTimeoutException = class extends HttpException { + static { + __name(this, "RequestTimeoutException"); + } + /** + * Instantiate a `RequestTimeoutException` Exception. + * + * @example + * `throw new RequestTimeoutException()` + * + * @usageNotes + * The HTTP response status code will be 408. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 408. + * - `message`: the string `'Request Timeout'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Request Timeout") { + const { description = "Request Timeout", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.REQUEST_TIMEOUT, httpExceptionOptions?.errorCode), HttpStatus.REQUEST_TIMEOUT, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/service-unavailable.exception.js +var ServiceUnavailableException; +var init_service_unavailable_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/service-unavailable.exception.js"() { + init_http_status_enum(); + init_http_exception(); + ServiceUnavailableException = class extends HttpException { + static { + __name(this, "ServiceUnavailableException"); + } + /** + * Instantiate a `ServiceUnavailableException` Exception. + * + * @example + * `throw new ServiceUnavailableException()` + * + * @usageNotes + * The HTTP response status code will be 503. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 503. + * - `message`: the string `'Service Unavailable'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Service Unavailable") { + const { description = "Service Unavailable", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.SERVICE_UNAVAILABLE, httpExceptionOptions?.errorCode), HttpStatus.SERVICE_UNAVAILABLE, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.js +var UnprocessableEntityException; +var init_unprocessable_entity_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.js"() { + init_http_status_enum(); + init_http_exception(); + UnprocessableEntityException = class extends HttpException { + static { + __name(this, "UnprocessableEntityException"); + } + /** + * Instantiate an `UnprocessableEntityException` Exception. + * + * @example + * `throw new UnprocessableEntityException()` + * + * @usageNotes + * The HTTP response status code will be 422. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 422. + * - `message`: the string `'Unprocessable Entity'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Unprocessable Entity") { + const { description = "Unprocessable Entity", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.UNPROCESSABLE_ENTITY, httpExceptionOptions?.errorCode), HttpStatus.UNPROCESSABLE_ENTITY, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.js +var UnsupportedMediaTypeException; +var init_unsupported_media_type_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.js"() { + init_http_status_enum(); + init_http_exception(); + UnsupportedMediaTypeException = class extends HttpException { + static { + __name(this, "UnsupportedMediaTypeException"); + } + /** + * Instantiate an `UnsupportedMediaTypeException` Exception. + * + * @example + * `throw new UnsupportedMediaTypeException()` + * + * @usageNotes + * The HTTP response status code will be 415. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 415. + * - `message`: the string `'Unsupported Media Type'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Unsupported Media Type") { + const { description = "Unsupported Media Type", httpExceptionOptions } = HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(HttpException.createBody(objectOrError, description, HttpStatus.UNSUPPORTED_MEDIA_TYPE, httpExceptionOptions?.errorCode), HttpStatus.UNSUPPORTED_MEDIA_TYPE, httpExceptionOptions); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/index.js +var init_exceptions = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/exceptions/index.js"() { + init_bad_gateway_exception(); + init_bad_request_exception(); + init_conflict_exception(); + init_forbidden_exception(); + init_gateway_timeout_exception(); + init_gone_exception(); + init_http_version_not_supported_exception(); + init_http_exception(); + init_im_a_teapot_exception(); + init_internal_server_error_exception(); + init_intrinsic_exception(); + init_method_not_allowed_exception(); + init_misdirected_exception(); + init_not_acceptable_exception(); + init_not_found_exception(); + init_not_implemented_exception(); + init_payload_too_large_exception(); + init_precondition_failed_exception(); + init_request_timeout_exception(); + init_service_unavailable_exception(); + init_unauthorized_exception(); + init_unprocessable_entity_exception(); + init_unsupported_media_type_exception(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/file-stream/index.js +var init_file_stream = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/file-stream/index.js"() { + init_streamable_file(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/abstract.interface.js +var init_abstract_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/abstract.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.js +var init_controller_metadata_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/controllers/controller.interface.js +var init_controller_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/controllers/controller.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.js +var init_exception_filter_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.js +var init_rpc_exception_filter_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.js +var init_ws_exception_filter_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/external/validation-error.interface.js +var init_validation_error_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/external/validation-error.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/arguments-host.interface.js +var init_arguments_host_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/arguments-host.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/can-activate.interface.js +var init_can_activate_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/can-activate.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.js +var init_custom_route_param_factory_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/execution-context.interface.js +var init_execution_context_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/execution-context.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.js +var init_nest_interceptor_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/paramtype.interface.js +var init_paramtype_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/paramtype.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.js +var init_pipe_transform_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/global-prefix-options.interface.js +var init_global_prefix_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/global-prefix-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.js +var init_before_application_shutdown_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.js +var init_on_application_bootstrap_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.js +var init_on_application_shutdown_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.js +var init_on_destroy_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-init.interface.js +var init_on_init_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/on-init.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/index.js +var init_hooks = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/hooks/index.js"() { + init_before_application_shutdown_interface(); + init_on_application_bootstrap_interface(); + init_on_application_shutdown_interface(); + init_on_destroy_interface(); + init_on_init_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/cookie-options.interface.js +var init_cookie_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/cookie-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/csrf-protection-options.interface.js +var init_csrf_protection_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/csrf-protection-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/http-exception-body.interface.js +var init_http_exception_body_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/http-exception-body.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/http-redirect-response.interface.js +var init_http_redirect_response_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/http-redirect-response.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/http-server.interface.js +var init_http_server_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/http-server.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/message-event.interface.js +var init_message_event_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/message-event.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/raw-body-request.interface.js +var init_raw_body_request_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/raw-body-request.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/security-headers-options.interface.js +var init_security_headers_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/security-headers-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/index.js +var init_http2 = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/http/index.js"() { + init_cookie_options_interface(); + init_csrf_protection_options_interface(); + init_http_exception_body_interface(); + init_http_redirect_response_interface(); + init_http_server_interface(); + init_message_event_interface(); + init_raw_body_request_interface(); + init_security_headers_options_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/injectable.interface.js +var init_injectable_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/injectable.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.js +var init_nest_hybrid_application_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/microservices/pre-request-hook.interface.js +var init_pre_request_hook_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/microservices/pre-request-hook.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/microservices/transport-server.interface.js +var init_transport_server_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/microservices/transport-server.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.js +var init_middleware_config_proxy_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.js +var init_middleware_configuration_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.js +var init_middleware_consumer_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.js +var init_nest_middleware_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/index.js +var init_middleware = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/middleware/index.js"() { + init_middleware_config_proxy_interface(); + init_middleware_configuration_interface(); + init_middleware_consumer_interface(); + init_nest_middleware_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.js +var init_dynamic_module_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.js +var init_forward_reference_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/injection-token.interface.js +var init_injection_token_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/injection-token.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.js +var init_introspection_result_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.js +var init_module_metadata_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/nest-module.interface.js +var init_nest_module_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/nest-module.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/optional-factory-dependency.interface.js +var init_optional_factory_dependency_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/optional-factory-dependency.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/provider.interface.js +var init_provider_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/provider.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/index.js +var init_modules2 = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/modules/index.js"() { + init_dynamic_module_interface(); + init_forward_reference_interface(); + init_injection_token_interface(); + init_introspection_result_interface(); + init_module_metadata_interface(); + init_nest_module_interface(); + init_optional_factory_dependency_interface(); + init_provider_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-application-context.interface.js +var init_nest_application_context_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-application-context.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-application-options.interface.js +var init_nest_application_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-application-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-application.interface.js +var init_nest_application_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-application.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-microservice.interface.js +var init_nest_microservice_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/nest-microservice.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/router-options.interface.js +var init_router_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/router-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/scope-options.interface.js +var Scope; +var init_scope_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/scope-options.interface.js"() { + (function(Scope2) { + Scope2[Scope2["DEFAULT"] = 0] = "DEFAULT"; + Scope2[Scope2["TRANSIENT"] = 1] = "TRANSIENT"; + Scope2[Scope2["REQUEST"] = 2] = "REQUEST"; + })(Scope || (Scope = {})); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/shutdown-hooks-options.interface.js +var init_shutdown_hooks_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/shutdown-hooks-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/type.interface.js +var init_type_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/type.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.js +var init_web_socket_adapter_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/index.js +var init_interfaces = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/interfaces/index.js"() { + init_abstract_interface(); + init_controller_metadata_interface(); + init_controller_interface(); + init_exception_filter_interface(); + init_rpc_exception_filter_interface(); + init_ws_exception_filter_interface(); + init_validation_error_interface(); + init_arguments_host_interface(); + init_can_activate_interface(); + init_custom_route_param_factory_interface(); + init_execution_context_interface(); + init_nest_interceptor_interface(); + init_paramtype_interface(); + init_pipe_transform_interface(); + init_global_prefix_options_interface(); + init_hooks(); + init_http2(); + init_injectable_interface(); + init_nest_hybrid_application_options_interface(); + init_pre_request_hook_interface(); + init_transport_server_interface(); + init_middleware(); + init_modules2(); + init_nest_application_context_interface(); + init_nest_application_options_interface(); + init_nest_application_interface(); + init_nest_microservice_interface(); + init_router_options_interface(); + init_scope_options_interface(); + init_shutdown_hooks_options_interface(); + init_type_interface(); + init_version_options_interface(); + init_web_socket_adapter_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/constants.js +var DEFAULT_METHOD_KEY, DEFAULT_FACTORY_CLASS_METHOD_KEY, ASYNC_METHOD_SUFFIX, CONFIGURABLE_MODULE_ID, ASYNC_OPTIONS_METADATA_KEYS; +var init_constants2 = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/constants.js"() { + DEFAULT_METHOD_KEY = "register"; + DEFAULT_FACTORY_CLASS_METHOD_KEY = "create"; + ASYNC_METHOD_SUFFIX = "Async"; + CONFIGURABLE_MODULE_ID = "CONFIGURABLE_MODULE_ID"; + ASYNC_OPTIONS_METADATA_KEYS = [ + "useFactory", + "useClass", + "useExisting", + "inject", + "imports", + "provideInjectionTokensFrom" + ]; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/utils/generate-options-injection-token.util.js +function generateOptionsInjectionToken() { + const hash = randomStringGenerator(); + return `CONFIGURABLE_MODULE_OPTIONS[${hash}]`; +} +var init_generate_options_injection_token_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/utils/generate-options-injection-token.util.js"() { + init_random_string_generator_util(); + __name(generateOptionsInjectionToken, "generateOptionsInjectionToken"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/utils/get-injection-providers.util.js +function isOptionalFactoryDependency(value) { + return !isUndefined(value.token) && !isUndefined(value.optional) && !value.prototype; +} +function getInjectionProviders(providers, tokens) { + const result = []; + let search = tokens.map(mapInjectToTokens); + while (search.length > 0) { + const match = (providers ?? []).filter((p) => !result.includes(p) && // this prevents circular loops and duplication + (search.includes(p) || search.includes(p?.provide))); + result.push(...match); + search = match.flatMap((p) => p?.useExisting !== void 0 ? [p.useExisting] : p?.inject ?? []).map(mapInjectToTokens); + } + return result; +} +var mapInjectToTokens; +var init_get_injection_providers_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/utils/get-injection-providers.util.js"() { + init_shared_utils(); + __name(isOptionalFactoryDependency, "isOptionalFactoryDependency"); + mapInjectToTokens = /* @__PURE__ */ __name((t) => isOptionalFactoryDependency(t) ? t.token : t, "mapInjectToTokens"); + __name(getInjectionProviders, "getInjectionProviders"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/utils/index.js +var init_utils2 = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/utils/index.js"() { + init_generate_options_injection_token_util(); + init_get_injection_providers_util(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/configurable-module.builder.js +var ConfigurableModuleBuilder; +var init_configurable_module_builder = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/configurable-module.builder.js"() { + init_logger_service(); + init_random_string_generator_util(); + init_constants2(); + init_utils2(); + ConfigurableModuleBuilder = class _ConfigurableModuleBuilder { + static { + __name(this, "ConfigurableModuleBuilder"); + } + options; + staticMethodKey; + factoryClassMethodKey; + extras; + transformModuleDefinition; + logger = new Logger(_ConfigurableModuleBuilder.name); + constructor(options = {}, parentBuilder) { + this.options = options; + if (parentBuilder) { + this.staticMethodKey = parentBuilder.staticMethodKey; + this.factoryClassMethodKey = parentBuilder.factoryClassMethodKey; + this.transformModuleDefinition = parentBuilder.transformModuleDefinition; + this.extras = parentBuilder.extras; + } + } + /** + * Registers the "extras" object (a set of extra options that can be used to modify the dynamic module definition). + * Values you specify within the "extras" object will be used as default values (that can be overridden by module consumers). + * + * This method also applies the so-called "module definition transform function" that takes the auto-generated + * dynamic module object ("DynamicModule") and the actual consumer "extras" object as input parameters. + * The "extras" object consists of values explicitly specified by module consumers and default values. + * + * @example + * ```typescript + * .setExtras<{ isGlobal?: boolean }>({ isGlobal: false }, (definition, extras) => + * ({ ...definition, global: extras.isGlobal }) + * ) + * ``` + */ + setExtras(extras, transformDefinition = (def) => def) { + const builder = new _ConfigurableModuleBuilder(this.options, this); + builder.extras = extras; + builder.transformModuleDefinition = transformDefinition; + return builder; + } + /** + * Dynamic modules must expose public static methods that let you pass in + * configuration parameters (control the module's behavior from the outside). + * Some frequently used names that you may have seen in other modules are: + * "forRoot", "forFeature", "register", "configure". + * + * This method "setClassMethodName" lets you specify the name of the + * method that will be auto-generated. + * + * @param key name of the method + */ + setClassMethodName(key) { + const builder = new _ConfigurableModuleBuilder(this.options, this); + builder.staticMethodKey = key; + return builder; + } + /** + * Asynchronously configured modules (that rely on other modules, i.e. "ConfigModule") + * let you pass the configuration factory class that will be registered and instantiated as a provider. + * This provider then will be used to retrieve the module's configuration. To provide the configuration, + * the corresponding factory method must be implemented. + * + * This method ("setFactoryMethodName") lets you control what method name will have to be + * implemented by the config factory (default is "create"). + * + * @param key name of the method + */ + setFactoryMethodName(key) { + const builder = new _ConfigurableModuleBuilder(this.options, this); + builder.factoryClassMethodKey = key; + return builder; + } + /** + * Returns an object consisting of multiple properties that lets you + * easily construct dynamic configurable modules. See "ConfigurableModuleHost" interface for more details. + */ + build() { + this.staticMethodKey ??= DEFAULT_METHOD_KEY; + this.factoryClassMethodKey ??= DEFAULT_FACTORY_CLASS_METHOD_KEY; + this.options.optionsInjectionToken ??= this.options.moduleName ? this.constructInjectionTokenString() : generateOptionsInjectionToken(); + this.transformModuleDefinition ??= (definition) => definition; + return { + ConfigurableModuleClass: this.createConfigurableModuleCls(), + MODULE_OPTIONS_TOKEN: this.options.optionsInjectionToken, + ASYNC_OPTIONS_TYPE: this.createTypeProxy("ASYNC_OPTIONS_TYPE"), + OPTIONS_TYPE: this.createTypeProxy("OPTIONS_TYPE") + }; + } + constructInjectionTokenString() { + const moduleNameInSnakeCase = this.options.moduleName.trim().split(/(?=[A-Z])/).join("_").toUpperCase(); + return `${moduleNameInSnakeCase}_MODULE_OPTIONS`; + } + createConfigurableModuleCls() { + const self2 = this; + const asyncMethodKey = this.staticMethodKey + ASYNC_METHOD_SUFFIX; + class InternalModuleClass { + static { + __name(this, "InternalModuleClass"); + } + static [self2.staticMethodKey](options) { + const providers = [ + { + provide: self2.options.optionsInjectionToken, + useValue: this.omitExtras(options, self2.extras) + } + ]; + if (self2.options.alwaysTransient) { + providers.push({ + provide: CONFIGURABLE_MODULE_ID, + useValue: randomStringGenerator() + }); + } + return self2.transformModuleDefinition({ + module: this, + providers + }, { + ...self2.extras, + ...options + }); + } + static [asyncMethodKey](options) { + const providers = this.createAsyncProviders(options); + if (self2.options.alwaysTransient) { + providers.push({ + provide: CONFIGURABLE_MODULE_ID, + useValue: randomStringGenerator() + }); + } + return self2.transformModuleDefinition({ + module: this, + imports: options.imports || [], + providers + }, { + ...self2.extras, + ...this.extractExtrasFromAsyncOptions(options, self2.extras) + }); + } + static omitExtras(input, extras) { + if (!extras) { + return input; + } + const moduleOptions = {}; + const extrasKeys = Object.keys(extras); + Object.keys(input).filter((key) => !extrasKeys.includes(key)).forEach((key) => { + moduleOptions[key] = input[key]; + }); + return moduleOptions; + } + static extractExtrasFromAsyncOptions(input, extras) { + if (!extras) { + return {}; + } + const extrasOptions = {}; + Object.keys(input).filter((key) => !ASYNC_OPTIONS_METADATA_KEYS.includes(key)).forEach((key) => { + extrasOptions[key] = input[key]; + }); + return extrasOptions; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + if (options.inject && options.provideInjectionTokensFrom) { + return [ + this.createAsyncOptionsProvider(options), + ...getInjectionProviders(options.provideInjectionTokensFrom, options.inject) + ]; + } + return [this.createAsyncOptionsProvider(options)]; + } + return [ + this.createAsyncOptionsProvider(options), + { + provide: options.useClass, + useClass: options.useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: self2.options.optionsInjectionToken, + useFactory: options.useFactory, + inject: options.inject || [] + }; + } + return { + provide: self2.options.optionsInjectionToken, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => await optionsFactory[self2.factoryClassMethodKey](), "useFactory"), + inject: [options.useExisting || options.useClass] + }; + } + } + return InternalModuleClass; + } + createTypeProxy(typeName) { + const proxy = new Proxy({}, { + get: /* @__PURE__ */ __name(() => { + throw new Error(`"${typeName}" is not supposed to be used as a value.`); + }, "get") + }); + return proxy; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/configurable-module-async-options.interface.js +var init_configurable_module_async_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/configurable-module-async-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.js +var init_configurable_module_cls_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/configurable-module-host.interface.js +var init_configurable_module_host_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/configurable-module-host.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/index.js +var init_interfaces2 = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/interfaces/index.js"() { + init_configurable_module_async_options_interface(); + init_configurable_module_cls_interface(); + init_configurable_module_host_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/index.js +var init_module_utils = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/module-utils/index.js"() { + init_configurable_module_builder(); + init_interfaces2(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/default-value.pipe.js +var DefaultValuePipe; +var init_default_value_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/default-value.pipe.js"() { + init_tslib_es6(); + init_injectable_decorator(); + init_shared_utils(); + DefaultValuePipe = class DefaultValuePipe2 { + static { + __name(this, "DefaultValuePipe"); + } + defaultValue; + constructor(defaultValue) { + this.defaultValue = defaultValue; + } + transform(value, _metadata) { + if (isNil(value) || isNumber(value) && isNaN(value)) { + return this.copyDefaultValue(this.defaultValue); + } + return value; + } + /** + * Copies `value` if it is an array or a plain object, along with the arrays + * and plain objects nested in it. `copies` maps the objects copied so far + * to their copies, so that shared and circular references are preserved. + */ + copyDefaultValue(value, copies) { + const isArray = Array.isArray(value) && Object.getPrototypeOf(value) === Array.prototype; + if (!isArray && !isPlainObject(value)) { + return value; + } + copies ??= /* @__PURE__ */ new Map(); + if (copies.has(value)) { + return copies.get(value); + } + const copy = Object.assign(isArray ? [] : Object.create(Object.getPrototypeOf(value)), value); + copies.set(value, copy); + for (const key of Reflect.ownKeys(copy)) { + copy[key] = this.copyDefaultValue(copy[key], copies); + } + return copy; + } + }; + DefaultValuePipe = __decorate([ + Injectable(), + __metadata("design:paramtypes", [Object]) + ], DefaultValuePipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/file-validator.interface.js +var FileValidator; +var init_file_validator_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/file-validator.interface.js"() { + FileValidator = class { + static { + __name(this, "FileValidator"); + } + validationOptions; + constructor(validationOptions) { + this.validationOptions = validationOptions; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/file-type.validator.js +var logger2, FileTypeValidator; +var init_file_type_validator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/file-type.validator.js"() { + init_logger_service(); + init_file_validator_interface(); + logger2 = new Logger("FileTypeValidator"); + FileTypeValidator = class extends FileValidator { + static { + __name(this, "FileTypeValidator"); + } + buildErrorMessage(file) { + const { errorMessage, ...config } = this.validationOptions; + if (errorMessage) { + return typeof errorMessage === "function" ? errorMessage({ file, config }) : errorMessage; + } + if (file?.mimetype && !file.buffer && !this.validationOptions?.fallbackToMimetype && !this.validationOptions?.skipMagicNumbersValidation) { + return `Validation failed (file buffer is not available; file type validation could not be performed; expected type is ${this.validationOptions.fileType})`; + } + if (file?.mimetype) { + const baseMessage = `Validation failed (current file type is ${file.mimetype}, expected type is ${this.validationOptions.fileType})`; + if (this.validationOptions.fallbackToMimetype) { + return `${baseMessage} - magic number detection failed, used mimetype fallback`; + } + return baseMessage; + } + return `Validation failed (expected type is ${this.validationOptions.fileType})`; + } + async isValid(file) { + if (!this.validationOptions) { + return true; + } + const isFileValid = !!file && "mimetype" in file; + if (this.validationOptions.skipMagicNumbersValidation) { + return isFileValid && this.matchesFileType(file.mimetype); + } + if (!isFileValid) + return false; + if (!file.buffer) { + if (this.validationOptions.fallbackToMimetype) { + return this.matchesFileType(file.mimetype); + } + return false; + } + try { + const { fileTypeFromBuffer } = await import("./source-SMPGMLTA.js"); + const fileType = await fileTypeFromBuffer(file.buffer); + if (fileType) { + if (this.validationOptions.overrideMimeType) { + file.mimetype = fileType.mime; + } + return this.matchesFileType(fileType.mime); + } + if (this.validationOptions.fallbackToMimetype) { + return this.matchesFileType(file.mimetype); + } + return false; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + if (errorMessage.includes("ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING") || errorMessage.includes("Cannot find module") || errorMessage.includes("ERR_MODULE_NOT_FOUND")) { + logger2.warn(`Failed to load the "file-type" package for magic number validation. If you are using Jest, run it with NODE_OPTIONS="--experimental-vm-modules". Error: ${errorMessage}`); + } + if (this.validationOptions.fallbackToMimetype) { + return this.matchesFileType(file.mimetype); + } + return false; + } + } + matchesFileType(mimetype) { + const { fileType } = this.validationOptions; + if (typeof fileType === "string" && mimetype === fileType) { + return true; + } + if (typeof fileType === "string") { + return !!mimetype.match(/[a-z\d]$/i.test(fileType) ? `(?:${fileType})(?![\\w-])` : fileType); + } + return !!mimetype.match(new RegExp(fileType)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/max-file-size.validator.js +var MaxFileSizeValidator; +var init_max_file_size_validator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/max-file-size.validator.js"() { + init_file_validator_interface(); + MaxFileSizeValidator = class extends FileValidator { + static { + __name(this, "MaxFileSizeValidator"); + } + buildErrorMessage(file) { + const { errorMessage, message, ...config } = this.validationOptions; + if (errorMessage) { + return typeof errorMessage === "function" ? errorMessage({ file, config }) : errorMessage; + } + if (message) { + return typeof message === "function" ? message(this.validationOptions.maxSize) : message; + } + if (file?.size) { + return `Validation failed (current file size is ${file.size}, expected size is less than ${this.validationOptions.maxSize})`; + } + return `Validation failed (expected size is less than ${this.validationOptions.maxSize})`; + } + isValid(file) { + if (!this.validationOptions || !file) { + return true; + } + return "size" in file && file.size < this.validationOptions.maxSize; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/parse-file-options.interface.js +var init_parse_file_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/parse-file-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/http-error-by-code.util.js +var HttpErrorByCode; +var init_http_error_by_code_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/http-error-by-code.util.js"() { + init_enums(); + init_exceptions(); + HttpErrorByCode = { + [HttpStatus.BAD_GATEWAY]: BadGatewayException, + [HttpStatus.BAD_REQUEST]: BadRequestException, + [HttpStatus.CONFLICT]: ConflictException, + [HttpStatus.FORBIDDEN]: ForbiddenException, + [HttpStatus.GATEWAY_TIMEOUT]: GatewayTimeoutException, + [HttpStatus.GONE]: GoneException, + [HttpStatus.HTTP_VERSION_NOT_SUPPORTED]: HttpVersionNotSupportedException, + [HttpStatus.I_AM_A_TEAPOT]: ImATeapotException, + [HttpStatus.INTERNAL_SERVER_ERROR]: InternalServerErrorException, + [HttpStatus.METHOD_NOT_ALLOWED]: MethodNotAllowedException, + [HttpStatus.MISDIRECTED]: MisdirectedException, + [HttpStatus.NOT_ACCEPTABLE]: NotAcceptableException, + [HttpStatus.NOT_FOUND]: NotFoundException, + [HttpStatus.NOT_IMPLEMENTED]: NotImplementedException, + [HttpStatus.PAYLOAD_TOO_LARGE]: PayloadTooLargeException, + [HttpStatus.PRECONDITION_FAILED]: PreconditionFailedException, + [HttpStatus.REQUEST_TIMEOUT]: RequestTimeoutException, + [HttpStatus.SERVICE_UNAVAILABLE]: ServiceUnavailableException, + [HttpStatus.UNAUTHORIZED]: UnauthorizedException, + [HttpStatus.UNPROCESSABLE_ENTITY]: UnprocessableEntityException, + [HttpStatus.UNSUPPORTED_MEDIA_TYPE]: UnsupportedMediaTypeException + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/parse-file.pipe.js +var ParseFilePipe; +var init_parse_file_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/parse-file.pipe.js"() { + init_tslib_es6(); + init_core(); + init_enums(); + init_http_error_by_code_util(); + init_shared_utils(); + ParseFilePipe = class ParseFilePipe2 { + static { + __name(this, "ParseFilePipe"); + } + exceptionFactory; + validators; + fileIsRequired; + constructor(options = {}) { + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST, validators = [], fileIsRequired } = options; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + this.validators = validators; + this.fileIsRequired = fileIsRequired ?? true; + } + async transform(value) { + const areThereAnyFilesIn = this.thereAreNoFilesIn(value); + if (areThereAnyFilesIn && this.fileIsRequired) { + throw this.exceptionFactory("File is required"); + } + if (!areThereAnyFilesIn && this.validators.length) { + await this.validateFilesOrFile(value); + } + return value; + } + async validateFilesOrFile(value) { + if (Array.isArray(value)) { + await Promise.all(value.map((f) => this.validate(f))); + } else { + await this.validate(value); + } + } + thereAreNoFilesIn(value) { + const isEmptyObject = isObject(value) && isEmptyArray(Object.keys(value)); + return isNil(value) || isEmptyArray(value) || isEmptyObject; + } + async validate(file) { + for (const validator of this.validators) { + await this.validateOrThrow(file, validator); + } + return file; + } + async validateOrThrow(file, validator) { + const isValid = await validator.isValid(file); + if (!isValid) { + const errorMessage = validator.buildErrorMessage(file); + throw this.exceptionFactory(errorMessage); + } + } + /** + * @returns list of validators used in this pipe. + */ + getValidators() { + return this.validators; + } + }; + ParseFilePipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ParseFilePipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/parse-file-pipe.builder.js +var ParseFilePipeBuilder; +var init_parse_file_pipe_builder = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/parse-file-pipe.builder.js"() { + init_file_type_validator(); + init_max_file_size_validator(); + init_parse_file_pipe(); + ParseFilePipeBuilder = class { + static { + __name(this, "ParseFilePipeBuilder"); + } + validators = []; + addMaxSizeValidator(options) { + return this.addValidator(new MaxFileSizeValidator(options)); + } + addFileTypeValidator(options) { + return this.addValidator(new FileTypeValidator(options)); + } + addValidator(validator) { + this.validators.push(validator); + return this; + } + build(additionalOptions) { + const parseFilePipe = new ParseFilePipe({ + ...additionalOptions, + validators: this.validators + }); + this.validators = []; + return parseFilePipe; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/index.js +var init_file = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/file/index.js"() { + init_file_type_validator(); + init_file_validator_interface(); + init_max_file_size_validator(); + init_parse_file_options_interface(); + init_parse_file_pipe(); + init_parse_file_pipe_builder(); + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/concat.js +var require_concat = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/concat.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ConcatIterator = class { + static { + __name(this, "ConcatIterator"); + } + constructor(toConcat) { + this.toConcat = toConcat; + } + next() { + if (this.toConcat.length === 0) { + return { done: true }; + } + const result = this.toConcat[0].next(); + if (!result.done) { + return result; + } + this.toConcat.shift(); + return this.next(); + } + }; + exports.ConcatIterator = ConcatIterator; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/filter.js +var require_filter = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/filter.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var FilterIterator = class { + static { + __name(this, "FilterIterator"); + } + constructor(source, predicate) { + this.source = source; + this.predicate = predicate; + } + next() { + let result; + do { + result = this.source.next(); + } while (!result.done && !this.predicate(result.value)); + return result; + } + }; + exports.FilterIterator = FilterIterator; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/utils.js +var require_utils = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/utils.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + function isIterator(candidate) { + return typeof candidate === "object" && candidate !== null && typeof candidate.next === "function"; + } + __name(isIterator, "isIterator"); + exports.isIterator = isIterator; + function isIterable(candidate) { + return typeof candidate === "object" && candidate !== null && typeof candidate[Symbol.iterator] === "function"; + } + __name(isIterable, "isIterable"); + exports.isIterable = isIterable; + function toIterator(collection) { + if (isIterator(collection)) { + return collection; + } + if (isIterable(collection)) { + return collection[Symbol.iterator](); + } + throw new Error("Passed collection is neither an Iterator nor an Iterable"); + } + __name(toIterator, "toIterator"); + exports.toIterator = toIterator; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/flatten.js +var require_flatten = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/flatten.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var utils_1 = require_utils(); + var FlattenIterator = class { + static { + __name(this, "FlattenIterator"); + } + constructor(outer) { + this.outer = outer; + } + next() { + if (this.inner) { + const result = this.inner.next(); + if (!result.done) { + return result; + } + this.inner = void 0; + } + const { value, done } = this.outer.next(); + if (utils_1.isIterable(value)) { + this.inner = value[Symbol.iterator](); + return this.next(); + } + return { value, done }; + } + }; + exports.FlattenIterator = FlattenIterator; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/map.js +var require_map = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/map.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var MapIterator = class { + static { + __name(this, "MapIterator"); + } + constructor(source, iteratee) { + this.source = source; + this.iteratee = iteratee; + } + next() { + const { value, done } = this.source.next(); + return { value: !done && this.iteratee(value), done }; + } + }; + exports.MapIterator = MapIterator; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/slice.js +var require_slice = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/slice.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var SliceIterator = class { + static { + __name(this, "SliceIterator"); + } + /** + * @param {Iterator} source Source Iterator + * @param {number} start Zero-based positive start index, inclusive + * @param {number} end Zero-based positive end index, exclusive, defaults to end of iterator + */ + constructor(source, start, end = Infinity) { + this.source = source; + this.start = start; + this.end = end; + this.i = 0; + } + next() { + while (this.i < this.start) { + const result = this.source.next(); + if (result.done) { + return result; + } + this.i++; + } + this.i++; + if (this.i >= this.end) { + return { done: true }; + } + return this.source.next(); + } + }; + exports.SliceIterator = SliceIterator; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/zip.js +var require_zip = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/zip.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ZipIterator = class { + static { + __name(this, "ZipIterator"); + } + constructor(a, b) { + this.a = a; + this.b = b; + } + next() { + const a = this.a.next(); + if (a.done) { + return { done: true }; + } + const b = this.b.next(); + if (b.done) { + return { done: true }; + } + return { value: [a.value, b.value], done: false }; + } + }; + exports.ZipIterator = ZipIterator; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/iterate.js +var require_iterate = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/iterate.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var concat_1 = require_concat(); + var filter_1 = require_filter(); + var flatten_1 = require_flatten(); + var map_1 = require_map(); + var slice_1 = require_slice(); + var utils_1 = require_utils(); + var zip_1 = require_zip(); + var IteratorWithOperators = class _IteratorWithOperators { + static { + __name(this, "IteratorWithOperators"); + } + /** + * @param source Iterator to wrap + */ + constructor(source) { + this.source = source; + } + /** + * Returns a `{ value, done }` object that adheres to the Iterator protocol + */ + next() { + return this.source.next(); + } + /** + * The presence of this method makes the Iterator itself Iterable. + * This makes it possible to pass it to `for of` and Iterable-accepting functions like `Array.from()` + */ + [Symbol.iterator]() { + return this; + } + /** + * Returns a new Iterator by running each element thru iteratee + */ + map(iteratee) { + return new _IteratorWithOperators(new map_1.MapIterator(this.source, iteratee)); + } + filter(predicate) { + return new _IteratorWithOperators(new filter_1.FilterIterator(this.source, predicate)); + } + /** + * Returns a new Iterator concatenating the Iterator with an additional Iterator or Iterable + */ + concat(collection) { + return new _IteratorWithOperators(new concat_1.ConcatIterator([this.source, utils_1.toIterator(collection)])); + } + /** + * Returns a new Iterator that emits slice of the source with n elements taken from the beginning + * + * @param limit The number of elements to take. + */ + take(limit) { + return new _IteratorWithOperators(new slice_1.SliceIterator(this.source, 0, limit + 1)); + } + /** + * Returns a new Iterator that emits slice of the source with n elements dropped from the beginning + * + * @param n The number of elements to drop. + */ + drop(n) { + return new _IteratorWithOperators(new slice_1.SliceIterator(this.source, n, Infinity)); + } + /** + * Returns a new Iterator that emits a slice of the source + * + * @param {number} start Zero-based positive start index, inclusive + * @param {number} end Zero-based positive end index, exclusive, defaults to end of iterator + */ + slice(start, end = Infinity) { + return new _IteratorWithOperators(new slice_1.SliceIterator(this.source, start, end)); + } + /** + * Returns a new Iterator that flattens items emitted by the Iterator a single level deep + */ + flatten() { + return new _IteratorWithOperators(new flatten_1.FlattenIterator(this.source)); + } + reduce(iteratee, accumulator) { + let result; + if (accumulator === void 0) { + result = this.source.next(); + if (result.done) { + throw new TypeError("Reduce of empty Iterator with no initial value"); + } + accumulator = result.value; + } + while (true) { + result = this.source.next(); + if (result.done) { + break; + } + accumulator = iteratee(accumulator, result.value); + } + return accumulator; + } + find(predicate) { + let result; + while (true) { + result = this.source.next(); + if (result.done) { + return void 0; + } + if (predicate(result.value)) { + return result.value; + } + } + } + /** + * Iterates and checks if `value` is emitted by the Iterator + * + * @param value The value to search + */ + includes(value) { + let result; + do { + result = this.source.next(); + if (!result.done && result.value === value) { + return true; + } + } while (!result.done); + return false; + } + /** + * Iterates and checks if `predicate` returns truthy for any element emitted by the Iterator + */ + some(predicate) { + let result; + do { + result = this.source.next(); + if (!result.done && predicate(result.value)) { + return true; + } + } while (!result.done); + return false; + } + /** + * Iterates and checks if `predicate` returns truthy for all elements emitted by the Iterator + */ + every(predicate) { + let result; + do { + result = this.source.next(); + if (!result.done && !predicate(result.value)) { + return false; + } + } while (!result.done); + return true; + } + /** + * Iterates and invokes `iteratee` for every element emitted by the Iterator + */ + forEach(iteratee) { + let result; + while (true) { + result = this.source.next(); + if (result.done) { + break; + } + iteratee(result.value); + } + } + /** + * Iterates and joins all elements emitted by the Iterator together as a string separated by an optional separator + */ + join(separator = ",") { + let joined = ""; + let result; + while (true) { + result = this.source.next(); + if (result.done) { + break; + } + joined += separator + result.value; + } + return joined.substr(separator.length); + } + /** + * Iterates and returns all items emitted by the Iterator as an array. + * Equivalent to passing the Iterator to `Array.from()` + */ + toArray() { + return Array.from(this); + } + /** + * Iterates and returns all items emitted by the Iterator as an ES6 Set. + * Equivalent to passing the Iterator to `new Set()` + */ + toSet() { + const set = /* @__PURE__ */ new Set(); + while (true) { + const { value, done } = this.next(); + if (done) { + return set; + } + set.add(value); + } + } + /** + * Iterates and returns all `[key, value]` paris emitted by the Iterator as an ES6 Map. + * Equivalent to passing the Iterator to `new Map()` + */ + toMap() { + return new Map(this); + } + }; + exports.IteratorWithOperators = IteratorWithOperators; + function iterate2(collection) { + return new IteratorWithOperators(utils_1.toIterator(collection)); + } + __name(iterate2, "iterate"); + exports.iterate = iterate2; + function zip(a, b) { + return new IteratorWithOperators(new zip_1.ZipIterator(utils_1.toIterator(a), utils_1.toIterator(b))); + } + __name(zip, "zip"); + exports.zip = zip; + exports.default = iterate2; + } +}); + +// ../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/index.js +var require_lib = __commonJS({ + "../../node_modules/.pnpm/iterare@1.2.1/node_modules/iterare/lib/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var iterate_1 = require_iterate(); + exports.iterate = iterate_1.iterate; + exports.zip = iterate_1.zip; + exports.default = iterate_1.iterate; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/strip-proto-keys.util.js +import { types as types2 } from "util"; +function stripProtoKeys(value) { + if (value == null || typeof value !== "object" || types2.isTypedArray(value)) { + return; + } + if (BUILT_IN_TYPES.some((type) => value instanceof type)) { + return; + } + if (Array.isArray(value)) { + for (const v of Object.values(value)) { + stripProtoKeys(v); + } + return; + } + delete value.__proto__; + delete value.prototype; + if (!BUILT_IN_TYPES.includes(value.constructor)) { + delete value.constructor; + } + for (const key in value) { + stripProtoKeys(value[key]); + } +} +var BUILT_IN_TYPES; +var init_strip_proto_keys_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/strip-proto-keys.util.js"() { + BUILT_IN_TYPES = [Date, RegExp, Error, Map, Set, WeakMap, WeakSet]; + __name(stripProtoKeys, "stripProtoKeys"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/validation.pipe.js +var import_iterare, DEFAULT_MAX_ERROR_MESSAGES_LENGTH, OMITTED_ERRORS_MESSAGE, classValidator, classTransformer, ValidationPipe; +var init_validation_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/validation.pipe.js"() { + init_tslib_es6(); + import_iterare = __toESM(require_lib(), 1); + init_core(); + init_decorators(); + init_http_status_enum(); + init_http_error_by_code_util(); + init_load_package_util(); + init_shared_utils(); + init_strip_proto_keys_util(); + DEFAULT_MAX_ERROR_MESSAGES_LENGTH = 1e6; + OMITTED_ERRORS_MESSAGE = "Further validation errors were omitted"; + classValidator = {}; + classTransformer = {}; + ValidationPipe = class ValidationPipe2 { + static { + __name(this, "ValidationPipe"); + } + isTransformEnabled; + isDetailedOutputDisabled; + validatorOptions; + transformOptions; + errorHttpStatusCode; + expectedType; + exceptionFactory; + validateCustomDecorators; + errorFormat; + maxErrorMessagesLength; + constructor(options) { + options = options || {}; + const { transform, disableErrorMessages, errorHttpStatusCode, expectedType, transformOptions, exceptionFactory, validatorPackage, transformerPackage, validateCustomDecorators, errorFormat, maxErrorMessagesLength, ...validatorOptions } = options; + this.validatorOptions = { forbidUnknownValues: false, ...validatorOptions }; + this.isTransformEnabled = !!transform; + this.transformOptions = transformOptions; + this.isDetailedOutputDisabled = disableErrorMessages; + this.validateCustomDecorators = validateCustomDecorators || false; + this.errorHttpStatusCode = errorHttpStatusCode || HttpStatus.BAD_REQUEST; + this.expectedType = expectedType; + this.errorFormat = errorFormat || "list"; + this.maxErrorMessagesLength = maxErrorMessagesLength ?? DEFAULT_MAX_ERROR_MESSAGES_LENGTH; + this.exceptionFactory = exceptionFactory || this.createExceptionFactory(); + classValidator = this.loadValidator(validatorPackage); + classTransformer = this.loadTransformer(transformerPackage); + } + loadValidator(validatorPackage) { + return validatorPackage ?? loadPackage("class-validator", "ValidationPipe", () => import("class-validator")); + } + loadTransformer(transformerPackage) { + return transformerPackage ?? loadPackage("class-transformer", "ValidationPipe", () => import("class-transformer")); + } + async transform(value, metadata) { + if (this.expectedType) { + metadata = { ...metadata, metatype: this.expectedType }; + } + const metatype = metadata.metatype; + if (!metatype || !this.toValidate(metadata)) { + return this.isTransformEnabled ? this.transformPrimitive(value, metadata) : value; + } + classValidator = await classValidator; + classTransformer = await classTransformer; + const originalValue = value; + value = this.toEmptyIfNil(value, metatype); + const isNil2 = value !== originalValue; + const isPrimitive = this.isPrimitive(value); + this.stripProtoKeys(value); + let entity = classTransformer.plainToInstance(metatype, value, this.transformOptions); + const originalEntity = entity; + const isCtorNotEqual = entity.constructor !== metatype; + if (isCtorNotEqual && !isPrimitive) { + entity.constructor = metatype; + } else if (isCtorNotEqual) { + entity = { constructor: metatype }; + } + const errors = await this.validate(entity, { + ...this.validatorOptions, + // The target of an error is the whole object it was found in, so an + // exception factory that sends the errors would repeat that object + // once per error. + validationError: { + target: false, + ...this.validatorOptions.validationError + } + }); + if (errors.length > 0) { + throw await this.exceptionFactory(errors); + } + if (isCtorNotEqual && (isPrimitive || Array.isArray(value)) && await this.hasValidationRules(metatype)) { + throw await this.exceptionFactory([ + { + property: metadata.data || metadata.type, + constraints: { isObject: "Validation failed (object is expected)" }, + children: [] + } + ]); + } + if (originalValue === void 0 && originalEntity === "") { + return originalValue; + } + if (isPrimitive) { + entity = originalEntity; + } + if (this.isTransformEnabled) { + return entity; + } + if (isNil2) { + return originalValue; + } + const shouldTransformToPlain = Object.keys(this.validatorOptions).length > 1; + return shouldTransformToPlain ? classTransformer.classToPlain(entity, this.transformOptions) : value; + } + createExceptionFactory() { + return (validationErrors = []) => { + if (this.isDetailedOutputDisabled) { + return new HttpErrorByCode[this.errorHttpStatusCode](); + } + const budget = { + remaining: this.maxErrorMessagesLength, + isExceeded: false + }; + validationErrors = this.limitValidationErrors(validationErrors, budget); + if (this.errorFormat === "grouped") { + let errors2 = this.groupValidationErrors(validationErrors); + if (budget.isExceeded) { + errors2 = { ...errors2, "...": [OMITTED_ERRORS_MESSAGE] }; + } + const { message: error, statusCode } = new HttpErrorByCode[this.errorHttpStatusCode]().getResponse(); + return new HttpErrorByCode[this.errorHttpStatusCode]({ + message: errors2, + error, + statusCode + }); + } + let errors = this.flattenValidationErrors(validationErrors); + if (budget.isExceeded) { + errors = [...errors, OMITTED_ERRORS_MESSAGE]; + } + return new HttpErrorByCode[this.errorHttpStatusCode](errors); + }; + } + /** + * Leaves out the errors that come after the first "maxErrorMessagesLength" + * characters of messages. Each message counts with the path of its + * property, which is what makes the response to a deeply nested payload + * grow faster than the payload. The errors past the limit are not visited. + */ + limitValidationErrors(validationErrors, budget, parentPathLength = 0) { + const limited = []; + let isChanged = false; + for (const error of validationErrors) { + if (budget.remaining <= 0) { + budget.isExceeded = true; + return limited; + } + const pathLength = parentPathLength + String(error.property).length + 1; + for (const key in error.constraints) { + budget.remaining -= pathLength + String(error.constraints[key]).length; + } + const children = error.children && this.limitValidationErrors(error.children, budget, pathLength); + if (children === error.children) { + limited.push(error); + } else { + limited.push({ ...error, children }); + isChanged = true; + } + } + return isChanged ? limited : validationErrors; + } + toValidate(metadata) { + const { metatype, type } = metadata; + if (type === "custom" && !this.validateCustomDecorators) { + return false; + } + const types3 = [String, Boolean, Number, Array, Object, Buffer, Date]; + return !types3.some((t) => metatype === t) && !isNil(metatype); + } + transformPrimitive(value, metadata) { + if (!metadata.data) { + return value; + } + const { type, metatype } = metadata; + if (type !== "param" && type !== "query") { + return value; + } + if (metatype === Boolean) { + if (isUndefined(value)) { + return void 0; + } + return value === true || value === "true"; + } + if (metatype === Number) { + if (isUndefined(value)) { + return void 0; + } + return +value; + } + if (metatype === String && !isUndefined(value)) { + return String(value); + } + return value; + } + toEmptyIfNil(value, metatype) { + if (!isNil(value)) { + return value; + } + if (typeof metatype === "function" || metatype && "prototype" in metatype && metatype.prototype?.constructor) { + return {}; + } + return ""; + } + isPrimitive(value) { + return ["number", "boolean", "string"].includes(typeof value); + } + stripProtoKeys(value) { + stripProtoKeys(value); + } + validate(object, validatorOptions) { + return classValidator.validate(object, validatorOptions); + } + async hasValidationRules(metatype) { + const errors = await this.validate({ constructor: metatype }, { ...this.validatorOptions, forbidUnknownValues: true }); + return !errors.some((error) => error.constraints?.unknownValue); + } + flattenValidationErrors(validationErrors) { + return (0, import_iterare.iterate)(validationErrors).map((error) => this.mapChildrenToValidationErrors(error)).flatten().filter((item) => !!item.constraints).map((item) => Object.values(item.constraints)).flatten().toArray(); + } + groupValidationErrors(validationErrors, parentPath, result = {}) { + for (const error of validationErrors) { + const path = parentPath ? `${parentPath}.${error.property}` : error.property; + if (error.constraints) { + result[path] = Object.values(error.constraints); + } + if (error.children && error.children.length) { + const nested = this.groupValidationErrors(error.children, path, result); + if (nested !== result) { + Object.assign(result, nested); + } + } + } + return result; + } + mapChildrenToValidationErrors(error, parentPath, validationErrors = []) { + const currentError = parentPath ? this.prependConstraintsWithParentProp(parentPath, error) : error; + if (!(error.children && error.children.length)) { + validationErrors.push(currentError); + return validationErrors; + } + if (error.constraints) { + validationErrors.push(currentError); + } + parentPath = parentPath ? `${parentPath}.${error.property}` : error.property; + for (const item of error.children) { + const nested = this.mapChildrenToValidationErrors(item, parentPath, validationErrors); + if (nested !== validationErrors) { + for (const nestedError of nested) { + validationErrors.push(nestedError); + } + } + } + return validationErrors; + } + prependConstraintsWithParentProp(parentPath, error) { + const constraints = {}; + for (const key in error.constraints) { + constraints[key] = `${parentPath}.${error.constraints[key]}`; + } + return { + ...error, + constraints + }; + } + }; + ValidationPipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ValidationPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-array.pipe.js +var VALIDATION_ERROR_MESSAGE, DEFAULT_ARRAY_SEPARATOR, ParseArrayPipe; +var init_parse_array_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-array.pipe.js"() { + init_tslib_es6(); + init_injectable_decorator(); + init_optional_decorator(); + init_http_status_enum(); + init_http_error_by_code_util(); + init_shared_utils(); + init_validation_pipe(); + VALIDATION_ERROR_MESSAGE = "Validation failed (parsable array expected)"; + DEFAULT_ARRAY_SEPARATOR = ","; + ParseArrayPipe = class ParseArrayPipe2 { + static { + __name(this, "ParseArrayPipe"); + } + options; + validationPipe; + exceptionFactory; + constructor(options = {}) { + this.options = options; + this.validationPipe = new ValidationPipe({ + transform: true, + validateCustomDecorators: true, + ...options + }); + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if (isNil(value) && !this.options.optional) { + throw this.exceptionFactory(VALIDATION_ERROR_MESSAGE); + } else if (isNil(value) && this.options.optional) { + return value; + } + if (!Array.isArray(value)) { + if (!isString(value)) { + throw this.exceptionFactory(VALIDATION_ERROR_MESSAGE); + } else { + try { + value = value.trim().split(this.options.separator || DEFAULT_ARRAY_SEPARATOR); + } catch { + throw this.exceptionFactory(VALIDATION_ERROR_MESSAGE); + } + } + } + if (this.options.items) { + const validationMetadata = { + metatype: this.options.items, + type: "query" + }; + const isExpectedTypePrimitive = this.isExpectedTypePrimitive(); + const toClassInstance = /* @__PURE__ */ __name((item, index) => { + if (this.options.items !== String && isString(item)) { + try { + item = JSON.parse(item); + } catch { + } + } + if (isExpectedTypePrimitive) { + return this.validatePrimitive(item, index); + } + return this.validationPipe.transform(item, validationMetadata); + }, "toClassInstance"); + if (this.options.stopAtFirstError === false) { + const errors = []; + const targetArray = Array.from(value); + for (let i = 0; i < targetArray.length; i++) { + try { + targetArray[i] = await toClassInstance(targetArray[i]); + } catch (err) { + let message; + if (err.getResponse) { + const response = err.getResponse(); + if (Array.isArray(response.message)) { + message = response.message.map((item) => `[${i}] ${item}`); + } else { + message = `[${i}] ${response.message}`; + } + } else { + message = err; + } + if (Array.isArray(message)) { + for (const item of message) { + errors.push(item); + } + } else { + errors.push(message); + } + } + } + if (errors.length > 0) { + throw this.exceptionFactory(errors); + } + return targetArray; + } else { + const targetArray = value; + const items = []; + for (let i = 0; i < targetArray.length; i++) { + items.push(i in targetArray ? await toClassInstance(targetArray[i], i) : void 0); + } + value = items; + } + } + return value; + } + isExpectedTypePrimitive() { + return [Boolean, Number, String].includes(this.options.items); + } + validatePrimitive(originalValue, index) { + if (this.options.items === Number) { + if (!this.isNumeric(originalValue)) { + throw this.exceptionFactory(`${isUndefined(index) ? "" : `[${index}] `}item must be a number`); + } + return Number(originalValue); + } else if (this.options.items === String) { + if (!isString(originalValue)) { + return `${originalValue}`; + } + } else if (this.options.items === Boolean) { + if (typeof originalValue !== "boolean") { + throw this.exceptionFactory(`${isUndefined(index) ? "" : `[${index}] `}item must be a boolean value`); + } + } + return originalValue; + } + isNumeric(value) { + if (typeof value === "number") { + return Number.isFinite(value); + } + if (typeof value !== "string" || value.trim() === "") { + return false; + } + if (/^0[box]/i.test(value.trim())) { + return false; + } + return Number.isFinite(Number(value)); + } + }; + ParseArrayPipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ParseArrayPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-bool.pipe.js +var ParseBoolPipe; +var init_parse_bool_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-bool.pipe.js"() { + init_tslib_es6(); + init_injectable_decorator(); + init_optional_decorator(); + init_http_status_enum(); + init_http_error_by_code_util(); + init_shared_utils(); + ParseBoolPipe = class ParseBoolPipe2 { + static { + __name(this, "ParseBoolPipe"); + } + options; + exceptionFactory; + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if (isNil(value) && this.options?.optional) { + return value; + } + if (this.isTrue(value)) { + return true; + } + if (this.isFalse(value)) { + return false; + } + throw this.exceptionFactory("Validation failed (boolean string is expected)"); + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is said 'true', ie., if it is equal to the boolean + * `true` or the string `"true"` + */ + isTrue(value) { + return value === true || value === "true"; + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is said 'false', ie., if it is equal to the boolean + * `false` or the string `"false"` + */ + isFalse(value) { + return value === false || value === "false"; + } + }; + ParseBoolPipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ParseBoolPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-date.pipe.js +var ParseDatePipe; +var init_parse_date_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-date.pipe.js"() { + init_tslib_es6(); + init_injectable_decorator(); + init_optional_decorator(); + init_http_status_enum(); + init_http_error_by_code_util(); + init_shared_utils(); + ParseDatePipe = class ParseDatePipe2 { + static { + __name(this, "ParseDatePipe"); + } + options; + exceptionFactory; + constructor(options = {}) { + this.options = options; + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + transform(value) { + if (isNil(value)) { + if (this.options.default) { + return this.options.default(); + } + if (this.options.optional) { + return value; + } + } + if (isNil(value) || value === "") { + throw this.exceptionFactory("Validation failed (no Date provided)"); + } + const transformedValue = isString(value) || isNumber(value) || value instanceof Date ? new Date(value) : /* @__PURE__ */ new Date(NaN); + if (isNaN(transformedValue.getTime())) { + throw this.exceptionFactory("Validation failed (invalid date format)"); + } + return transformedValue; + } + }; + ParseDatePipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ParseDatePipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-enum.pipe.js +var ParseEnumPipe; +var init_parse_enum_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-enum.pipe.js"() { + init_tslib_es6(); + init_core(); + init_common(); + init_http_error_by_code_util(); + init_shared_utils(); + ParseEnumPipe = class ParseEnumPipe2 { + static { + __name(this, "ParseEnumPipe"); + } + enumType; + options; + exceptionFactory; + cachedEnumValues; + constructor(enumType, options) { + this.enumType = enumType; + this.options = options; + if (!enumType) { + throw new Error(`"ParseEnumPipe" requires "enumType" argument specified (to validate input values).`); + } + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if (isNil(value) && this.options?.optional) { + return value; + } + if (!this.isEnum(value)) { + throw this.exceptionFactory("Validation failed (enum string is expected)"); + } + return this.toEnumValue(value) ?? value; + } + isEnum(value) { + return this.toEnumValue(value) !== void 0; + } + /** + * Returns the enum member that `value` refers to, or `undefined` if there is none. + * Numeric members also match their string representation (e.g. `'1'` for `1`), + * since HTTP route and query params always arrive as strings. + */ + toEnumValue(value) { + return this.getEnumValues().find((enumValue) => enumValue === value || typeof enumValue === "number" && typeof value === "string" && String(enumValue) === value); + } + getEnumValues() { + return this.cachedEnumValues ??= this.computeEnumValues(); + } + computeEnumValues() { + return Object.keys(this.enumType).filter((key) => { + const enumValue = this.enumType[key]; + return !(typeof enumValue === "string" && typeof this.enumType[enumValue] === "number" && String(this.enumType[enumValue]) === key); + }).map((key) => this.enumType[key]); + } + }; + ParseEnumPipe = __decorate([ + Injectable(), + __param(1, Optional()), + __metadata("design:paramtypes", [Object, Object]) + ], ParseEnumPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-float.pipe.js +var ParseFloatPipe; +var init_parse_float_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-float.pipe.js"() { + init_tslib_es6(); + init_core(); + init_common(); + init_http_error_by_code_util(); + init_shared_utils(); + ParseFloatPipe = class ParseFloatPipe2 { + static { + __name(this, "ParseFloatPipe"); + } + options; + exceptionFactory; + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if (isNil(value) && this.options?.optional) { + return value; + } + if (!this.isNumeric(value)) { + throw this.exceptionFactory("Validation failed (numeric string is expected)"); + } + return parseFloat(String(value)); + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is a valid float number + */ + isNumeric(value) { + if (typeof value === "number") + return Number.isFinite(value); + if (typeof value !== "string" || value === "" || value !== value.trim()) { + return false; + } + if (value.startsWith("0x") || value.startsWith("0X") || value.startsWith("0b") || value.startsWith("0B") || value.startsWith("0o") || value.startsWith("0O")) { + return false; + } + return Number.isFinite(Number(value)); + } + }; + ParseFloatPipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ParseFloatPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-int.pipe.js +var ParseIntPipe; +var init_parse_int_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-int.pipe.js"() { + init_tslib_es6(); + init_injectable_decorator(); + init_optional_decorator(); + init_http_status_enum(); + init_http_error_by_code_util(); + init_shared_utils(); + ParseIntPipe = class ParseIntPipe2 { + static { + __name(this, "ParseIntPipe"); + } + options; + exceptionFactory; + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if (isNil(value) && this.options?.optional) { + return value; + } + if (!this.isNumeric(value)) { + throw this.exceptionFactory("Validation failed (numeric string is expected)"); + } + return parseInt(String(value), 10); + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is a valid integer number + */ + isNumeric(value) { + return ["string", "number"].includes(typeof value) && /^-?\d+$/.test(String(value)) && isFinite(value); + } + }; + ParseIntPipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ParseIntPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-uuid.pipe.js +var ParseUUIDPipe_1, ParseUUIDPipe; +var init_parse_uuid_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/parse-uuid.pipe.js"() { + init_tslib_es6(); + init_injectable_decorator(); + init_optional_decorator(); + init_http_status_enum(); + init_http_error_by_code_util(); + init_shared_utils(); + ParseUUIDPipe = class ParseUUIDPipe2 { + static { + __name(this, "ParseUUIDPipe"); + } + static { + ParseUUIDPipe_1 = this; + } + options; + static uuidRegExps = { + 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 6: /^[0-9A-F]{8}-[0-9A-F]{4}-6[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 8: /^[0-9A-F]{8}-[0-9A-F]{4}-8[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + // Versions 1-8 with the RFC variant, or the Nil and Max UUIDs (RFC 9562, sections 5.9, 5.10) + all: /^(?:[0-9A-F]{8}-[0-9A-F]{4}-[1-8][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}|00000000-0000-0000-0000-000000000000|FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF)$/i + }; + version; + exceptionFactory; + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST, version } = options; + this.version = version; + this.exceptionFactory = exceptionFactory || ((error) => new HttpErrorByCode[errorHttpStatusCode](error)); + } + async transform(value, metadata) { + if (isNil(value) && this.options?.optional) { + return value; + } + if (!this.isUUID(value, this.version)) { + throw this.exceptionFactory(`Validation failed (uuid${this.version && this.version !== "all" ? ` v ${this.version}` : ""} is expected)`); + } + return value; + } + isUUID(str, version = "all") { + if (!isString(str)) { + throw this.exceptionFactory("The value passed as UUID is not a string"); + } + const pattern = ParseUUIDPipe_1.uuidRegExps[version]; + return pattern?.test(str); + } + }; + ParseUUIDPipe = ParseUUIDPipe_1 = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], ParseUUIDPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/standard-schema-validation.pipe.js +var StandardSchemaValidationPipe; +var init_standard_schema_validation_pipe = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/standard-schema-validation.pipe.js"() { + init_tslib_es6(); + init_injectable_decorator(); + init_optional_decorator(); + init_http_status_enum(); + init_http_error_by_code_util(); + init_shared_utils(); + init_strip_proto_keys_util(); + StandardSchemaValidationPipe = class StandardSchemaValidationPipe2 { + static { + __name(this, "StandardSchemaValidationPipe"); + } + options; + isTransformEnabled; + validateCustomDecorators; + validateOptions; + exceptionFactory; + constructor(options) { + this.options = options; + const { transform = true, validateCustomDecorators = false, validateOptions, exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } = options || {}; + this.isTransformEnabled = transform; + this.validateCustomDecorators = validateCustomDecorators; + this.validateOptions = validateOptions; + this.exceptionFactory = exceptionFactory || ((issues) => { + const messages = this.formatIssueMessages(issues); + return new HttpErrorByCode[errorHttpStatusCode](messages); + }); + } + /** + * Formats Standard Schema validation issues into a flat list of error messages. + * When an issue includes a path, the path is prefixed to the message. + */ + formatIssueMessages(issues) { + return issues.map((issue) => { + if (issue.path?.length) { + const stringPath = issue.path.map((segment) => String(isObject(segment) ? segment.key : segment)).join("."); + return `${stringPath}: ${issue.message}`; + } + return issue.message; + }); + } + /** + * Method that validates the incoming value against the standard schema + * provided in the parameter metadata. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + const schema = metadata.schema; + if (!schema || !this.toValidate(metadata)) { + return value; + } + this.stripProtoKeys(value); + const result = await this.validate(value, schema, this.validateOptions); + if (result.issues) { + throw this.exceptionFactory(result.issues); + } + return this.isTransformEnabled ? result.value : value; + } + /** + * Determines whether validation should be performed for the given metadata. + * Skips validation for custom decorators unless `validateCustomDecorators` is enabled. + * + * @param metadata contains metadata about the currently processed route argument + * @returns `true` if validation should be performed + */ + toValidate(metadata) { + const { type } = metadata; + if (type === "custom" && !this.validateCustomDecorators) { + return false; + } + return true; + } + /** + * Validates a value against a standard schema. + * Can be overridden to customize validation behavior. + * + * @param value The value to validate + * @param schema The standard schema to validate against + * @param options Optional options forwarded to the schema's validate method + * @returns The validation result + */ + validate(value, schema, options) { + return schema["~standard"].validate(value, options); + } + stripProtoKeys(value) { + stripProtoKeys(value); + } + }; + StandardSchemaValidationPipe = __decorate([ + Injectable(), + __param(0, Optional()), + __metadata("design:paramtypes", [Object]) + ], StandardSchemaValidationPipe); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/index.js +var init_pipes = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/pipes/index.js"() { + init_default_value_pipe(); + init_file(); + init_parse_array_pipe(); + init_parse_bool_pipe(); + init_parse_date_pipe(); + init_parse_enum_pipe(); + init_parse_float_pipe(); + init_parse_int_pipe(); + init_parse_uuid_pipe(); + init_standard_schema_validation_pipe(); + init_validation_pipe(); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isFunction.js +var require_isFunction = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isFunction.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isFunction = void 0; + function isFunction2(value) { + return typeof value === "function"; + } + __name(isFunction2, "isFunction"); + exports.isFunction = isFunction2; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/lift.js +var require_lift = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/lift.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.operate = exports.hasLift = void 0; + var isFunction_1 = require_isFunction(); + function hasLift(source) { + return isFunction_1.isFunction(source === null || source === void 0 ? void 0 : source.lift); + } + __name(hasLift, "hasLift"); + exports.hasLift = hasLift; + function operate(init) { + return function(source) { + if (hasLift(source)) { + return source.lift(function(liftedSource) { + try { + return init(liftedSource, this); + } catch (err) { + this.error(err); + } + }); + } + throw new TypeError("Unable to lift unknown Observable type"); + }; + } + __name(operate, "operate"); + exports.operate = operate; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isArrayLike.js +var require_isArrayLike = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isArrayLike.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isArrayLike = void 0; + exports.isArrayLike = (function(x) { + return x && typeof x.length === "number" && typeof x !== "function"; + }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isPromise.js +var require_isPromise = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isPromise.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isPromise = void 0; + var isFunction_1 = require_isFunction(); + function isPromise(value) { + return isFunction_1.isFunction(value === null || value === void 0 ? void 0 : value.then); + } + __name(isPromise, "isPromise"); + exports.isPromise = isPromise; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js +var require_createErrorClass = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createErrorClass = void 0; + function createErrorClass(createImpl) { + var _super = /* @__PURE__ */ __name(function(instance) { + Error.call(instance); + instance.stack = new Error().stack; + }, "_super"); + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; + } + __name(createErrorClass, "createErrorClass"); + exports.createErrorClass = createErrorClass; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/UnsubscriptionError.js +var require_UnsubscriptionError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/UnsubscriptionError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.UnsubscriptionError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports.UnsubscriptionError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function UnsubscriptionErrorImpl(errors) { + _super(this); + this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i) { + return i + 1 + ") " + err.toString(); + }).join("\n ") : ""; + this.name = "UnsubscriptionError"; + this.errors = errors; + }, "UnsubscriptionErrorImpl"); + }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/arrRemove.js +var require_arrRemove = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/arrRemove.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.arrRemove = void 0; + function arrRemove(arr, item) { + if (arr) { + var index = arr.indexOf(item); + 0 <= index && arr.splice(index, 1); + } + } + __name(arrRemove, "arrRemove"); + exports.arrRemove = arrRemove; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subscription.js +var require_Subscription = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subscription.js"(exports) { + "use strict"; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isSubscription = exports.EMPTY_SUBSCRIPTION = exports.Subscription = void 0; + var isFunction_1 = require_isFunction(); + var UnsubscriptionError_1 = require_UnsubscriptionError(); + var arrRemove_1 = require_arrRemove(); + var Subscription = (function() { + function Subscription2(initialTeardown) { + this.initialTeardown = initialTeardown; + this.closed = false; + this._parentage = null; + this._finalizers = null; + } + __name(Subscription2, "Subscription"); + Subscription2.prototype.unsubscribe = function() { + var e_1, _a, e_2, _b; + var errors; + if (!this.closed) { + this.closed = true; + var _parentage = this._parentage; + if (_parentage) { + this._parentage = null; + if (Array.isArray(_parentage)) { + try { + for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { + var parent_1 = _parentage_1_1.value; + parent_1.remove(this); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1); + } finally { + if (e_1) throw e_1.error; + } + } + } else { + _parentage.remove(this); + } + } + var initialFinalizer = this.initialTeardown; + if (isFunction_1.isFunction(initialFinalizer)) { + try { + initialFinalizer(); + } catch (e) { + errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? e.errors : [e]; + } + } + var _finalizers = this._finalizers; + if (_finalizers) { + this._finalizers = null; + try { + for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { + var finalizer = _finalizers_1_1.value; + try { + execFinalizer(finalizer); + } catch (err) { + errors = errors !== null && errors !== void 0 ? errors : []; + if (err instanceof UnsubscriptionError_1.UnsubscriptionError) { + errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); + } else { + errors.push(err); + } + } + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); + } finally { + if (e_2) throw e_2.error; + } + } + } + if (errors) { + throw new UnsubscriptionError_1.UnsubscriptionError(errors); + } + } + }; + Subscription2.prototype.add = function(teardown) { + var _a; + if (teardown && teardown !== this) { + if (this.closed) { + execFinalizer(teardown); + } else { + if (teardown instanceof Subscription2) { + if (teardown.closed || teardown._hasParent(this)) { + return; + } + teardown._addParent(this); + } + (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); + } + } + }; + Subscription2.prototype._hasParent = function(parent) { + var _parentage = this._parentage; + return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); + }; + Subscription2.prototype._addParent = function(parent) { + var _parentage = this._parentage; + this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; + }; + Subscription2.prototype._removeParent = function(parent) { + var _parentage = this._parentage; + if (_parentage === parent) { + this._parentage = null; + } else if (Array.isArray(_parentage)) { + arrRemove_1.arrRemove(_parentage, parent); + } + }; + Subscription2.prototype.remove = function(teardown) { + var _finalizers = this._finalizers; + _finalizers && arrRemove_1.arrRemove(_finalizers, teardown); + if (teardown instanceof Subscription2) { + teardown._removeParent(this); + } + }; + Subscription2.EMPTY = (function() { + var empty = new Subscription2(); + empty.closed = true; + return empty; + })(); + return Subscription2; + })(); + exports.Subscription = Subscription; + exports.EMPTY_SUBSCRIPTION = Subscription.EMPTY; + function isSubscription(value) { + return value instanceof Subscription || value && "closed" in value && isFunction_1.isFunction(value.remove) && isFunction_1.isFunction(value.add) && isFunction_1.isFunction(value.unsubscribe); + } + __name(isSubscription, "isSubscription"); + exports.isSubscription = isSubscription; + function execFinalizer(finalizer) { + if (isFunction_1.isFunction(finalizer)) { + finalizer(); + } else { + finalizer.unsubscribe(); + } + } + __name(execFinalizer, "execFinalizer"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/config.js +var require_config = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/config.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.config = void 0; + exports.config = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: void 0, + useDeprecatedSynchronousErrorHandling: false, + useDeprecatedNextContext: false + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/timeoutProvider.js +var require_timeoutProvider = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/timeoutProvider.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.timeoutProvider = void 0; + exports.timeoutProvider = { + setTimeout: /* @__PURE__ */ __name(function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var delegate = exports.timeoutProvider.delegate; + if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { + return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args))); + } + return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, "setTimeout"), + clearTimeout: /* @__PURE__ */ __name(function(handle) { + var delegate = exports.timeoutProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle); + }, "clearTimeout"), + delegate: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/reportUnhandledError.js +var require_reportUnhandledError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/reportUnhandledError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.reportUnhandledError = void 0; + var config_1 = require_config(); + var timeoutProvider_1 = require_timeoutProvider(); + function reportUnhandledError(err) { + timeoutProvider_1.timeoutProvider.setTimeout(function() { + var onUnhandledError = config_1.config.onUnhandledError; + if (onUnhandledError) { + onUnhandledError(err); + } else { + throw err; + } + }); + } + __name(reportUnhandledError, "reportUnhandledError"); + exports.reportUnhandledError = reportUnhandledError; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/noop.js +var require_noop = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/noop.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.noop = void 0; + function noop() { + } + __name(noop, "noop"); + exports.noop = noop; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/NotificationFactories.js +var require_NotificationFactories = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/NotificationFactories.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createNotification = exports.nextNotification = exports.errorNotification = exports.COMPLETE_NOTIFICATION = void 0; + exports.COMPLETE_NOTIFICATION = (function() { + return createNotification("C", void 0, void 0); + })(); + function errorNotification(error) { + return createNotification("E", void 0, error); + } + __name(errorNotification, "errorNotification"); + exports.errorNotification = errorNotification; + function nextNotification(value) { + return createNotification("N", value, void 0); + } + __name(nextNotification, "nextNotification"); + exports.nextNotification = nextNotification; + function createNotification(kind, value, error) { + return { + kind, + value, + error + }; + } + __name(createNotification, "createNotification"); + exports.createNotification = createNotification; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/errorContext.js +var require_errorContext = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/errorContext.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.captureError = exports.errorContext = void 0; + var config_1 = require_config(); + var context = null; + function errorContext(cb) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + var isRoot = !context; + if (isRoot) { + context = { errorThrown: false, error: null }; + } + cb(); + if (isRoot) { + var _a = context, errorThrown = _a.errorThrown, error = _a.error; + context = null; + if (errorThrown) { + throw error; + } + } + } else { + cb(); + } + } + __name(errorContext, "errorContext"); + exports.errorContext = errorContext; + function captureError(err) { + if (config_1.config.useDeprecatedSynchronousErrorHandling && context) { + context.errorThrown = true; + context.error = err; + } + } + __name(captureError, "captureError"); + exports.captureError = captureError; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subscriber.js +var require_Subscriber = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subscriber.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.EMPTY_OBSERVER = exports.SafeSubscriber = exports.Subscriber = void 0; + var isFunction_1 = require_isFunction(); + var Subscription_1 = require_Subscription(); + var config_1 = require_config(); + var reportUnhandledError_1 = require_reportUnhandledError(); + var noop_1 = require_noop(); + var NotificationFactories_1 = require_NotificationFactories(); + var timeoutProvider_1 = require_timeoutProvider(); + var errorContext_1 = require_errorContext(); + var Subscriber = (function(_super) { + __extends(Subscriber2, _super); + function Subscriber2(destination) { + var _this = _super.call(this) || this; + _this.isStopped = false; + if (destination) { + _this.destination = destination; + if (Subscription_1.isSubscription(destination)) { + destination.add(_this); + } + } else { + _this.destination = exports.EMPTY_OBSERVER; + } + return _this; + } + __name(Subscriber2, "Subscriber"); + Subscriber2.create = function(next, error, complete) { + return new SafeSubscriber(next, error, complete); + }; + Subscriber2.prototype.next = function(value) { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.nextNotification(value), this); + } else { + this._next(value); + } + }; + Subscriber2.prototype.error = function(err) { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.errorNotification(err), this); + } else { + this.isStopped = true; + this._error(err); + } + }; + Subscriber2.prototype.complete = function() { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.COMPLETE_NOTIFICATION, this); + } else { + this.isStopped = true; + this._complete(); + } + }; + Subscriber2.prototype.unsubscribe = function() { + if (!this.closed) { + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + this.destination = null; + } + }; + Subscriber2.prototype._next = function(value) { + this.destination.next(value); + }; + Subscriber2.prototype._error = function(err) { + try { + this.destination.error(err); + } finally { + this.unsubscribe(); + } + }; + Subscriber2.prototype._complete = function() { + try { + this.destination.complete(); + } finally { + this.unsubscribe(); + } + }; + return Subscriber2; + })(Subscription_1.Subscription); + exports.Subscriber = Subscriber; + var _bind = Function.prototype.bind; + function bind(fn, thisArg) { + return _bind.call(fn, thisArg); + } + __name(bind, "bind"); + var ConsumerObserver = (function() { + function ConsumerObserver2(partialObserver) { + this.partialObserver = partialObserver; + } + __name(ConsumerObserver2, "ConsumerObserver"); + ConsumerObserver2.prototype.next = function(value) { + var partialObserver = this.partialObserver; + if (partialObserver.next) { + try { + partialObserver.next(value); + } catch (error) { + handleUnhandledError(error); + } + } + }; + ConsumerObserver2.prototype.error = function(err) { + var partialObserver = this.partialObserver; + if (partialObserver.error) { + try { + partialObserver.error(err); + } catch (error) { + handleUnhandledError(error); + } + } else { + handleUnhandledError(err); + } + }; + ConsumerObserver2.prototype.complete = function() { + var partialObserver = this.partialObserver; + if (partialObserver.complete) { + try { + partialObserver.complete(); + } catch (error) { + handleUnhandledError(error); + } + } + }; + return ConsumerObserver2; + })(); + var SafeSubscriber = (function(_super) { + __extends(SafeSubscriber2, _super); + function SafeSubscriber2(observerOrNext, error, complete) { + var _this = _super.call(this) || this; + var partialObserver; + if (isFunction_1.isFunction(observerOrNext) || !observerOrNext) { + partialObserver = { + next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, + error: error !== null && error !== void 0 ? error : void 0, + complete: complete !== null && complete !== void 0 ? complete : void 0 + }; + } else { + var context_1; + if (_this && config_1.config.useDeprecatedNextContext) { + context_1 = Object.create(observerOrNext); + context_1.unsubscribe = function() { + return _this.unsubscribe(); + }; + partialObserver = { + next: observerOrNext.next && bind(observerOrNext.next, context_1), + error: observerOrNext.error && bind(observerOrNext.error, context_1), + complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) + }; + } else { + partialObserver = observerOrNext; + } + } + _this.destination = new ConsumerObserver(partialObserver); + return _this; + } + __name(SafeSubscriber2, "SafeSubscriber"); + return SafeSubscriber2; + })(Subscriber); + exports.SafeSubscriber = SafeSubscriber; + function handleUnhandledError(error) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + errorContext_1.captureError(error); + } else { + reportUnhandledError_1.reportUnhandledError(error); + } + } + __name(handleUnhandledError, "handleUnhandledError"); + function defaultErrorHandler(err) { + throw err; + } + __name(defaultErrorHandler, "defaultErrorHandler"); + function handleStoppedNotification(notification, subscriber) { + var onStoppedNotification = config_1.config.onStoppedNotification; + onStoppedNotification && timeoutProvider_1.timeoutProvider.setTimeout(function() { + return onStoppedNotification(notification, subscriber); + }); + } + __name(handleStoppedNotification, "handleStoppedNotification"); + exports.EMPTY_OBSERVER = { + closed: true, + next: noop_1.noop, + error: defaultErrorHandler, + complete: noop_1.noop + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/symbol/observable.js +var require_observable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/symbol/observable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.observable = void 0; + exports.observable = (function() { + return typeof Symbol === "function" && Symbol.observable || "@@observable"; + })(); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/identity.js +var require_identity = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/identity.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.identity = void 0; + function identity(x) { + return x; + } + __name(identity, "identity"); + exports.identity = identity; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/pipe.js +var require_pipe = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/pipe.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.pipeFromArray = exports.pipe = void 0; + var identity_1 = require_identity(); + function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; + } + return pipeFromArray(fns); + } + __name(pipe, "pipe"); + exports.pipe = pipe; + function pipeFromArray(fns) { + if (fns.length === 0) { + return identity_1.identity; + } + if (fns.length === 1) { + return fns[0]; + } + return /* @__PURE__ */ __name(function piped(input) { + return fns.reduce(function(prev, fn) { + return fn(prev); + }, input); + }, "piped"); + } + __name(pipeFromArray, "pipeFromArray"); + exports.pipeFromArray = pipeFromArray; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Observable.js +var require_Observable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Observable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Observable = void 0; + var Subscriber_1 = require_Subscriber(); + var Subscription_1 = require_Subscription(); + var observable_1 = require_observable(); + var pipe_1 = require_pipe(); + var config_1 = require_config(); + var isFunction_1 = require_isFunction(); + var errorContext_1 = require_errorContext(); + var Observable = (function() { + function Observable2(subscribe) { + if (subscribe) { + this._subscribe = subscribe; + } + } + __name(Observable2, "Observable"); + Observable2.prototype.lift = function(operator) { + var observable = new Observable2(); + observable.source = this; + observable.operator = operator; + return observable; + }; + Observable2.prototype.subscribe = function(observerOrNext, error, complete) { + var _this = this; + var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new Subscriber_1.SafeSubscriber(observerOrNext, error, complete); + errorContext_1.errorContext(function() { + var _a = _this, operator = _a.operator, source = _a.source; + subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); + }); + return subscriber; + }; + Observable2.prototype._trySubscribe = function(sink) { + try { + return this._subscribe(sink); + } catch (err) { + sink.error(err); + } + }; + Observable2.prototype.forEach = function(next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var subscriber = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function(value) { + try { + next(value); + } catch (err) { + reject(err); + subscriber.unsubscribe(); + } + }, "next"), + error: reject, + complete: resolve + }); + _this.subscribe(subscriber); + }); + }; + Observable2.prototype._subscribe = function(subscriber) { + var _a; + return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); + }; + Observable2.prototype[observable_1.observable] = function() { + return this; + }; + Observable2.prototype.pipe = function() { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + return pipe_1.pipeFromArray(operations)(this); + }; + Observable2.prototype.toPromise = function(promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var value; + _this.subscribe(function(x) { + return value = x; + }, function(err) { + return reject(err); + }, function() { + return resolve(value); + }); + }); + }; + Observable2.create = function(subscribe) { + return new Observable2(subscribe); + }; + return Observable2; + })(); + exports.Observable = Observable; + function getPromiseCtor(promiseCtor) { + var _a; + return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config_1.config.Promise) !== null && _a !== void 0 ? _a : Promise; + } + __name(getPromiseCtor, "getPromiseCtor"); + function isObserver(value) { + return value && isFunction_1.isFunction(value.next) && isFunction_1.isFunction(value.error) && isFunction_1.isFunction(value.complete); + } + __name(isObserver, "isObserver"); + function isSubscriber(value) { + return value && value instanceof Subscriber_1.Subscriber || isObserver(value) && Subscription_1.isSubscription(value); + } + __name(isSubscriber, "isSubscriber"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isInteropObservable.js +var require_isInteropObservable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isInteropObservable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isInteropObservable = void 0; + var observable_1 = require_observable(); + var isFunction_1 = require_isFunction(); + function isInteropObservable(input) { + return isFunction_1.isFunction(input[observable_1.observable]); + } + __name(isInteropObservable, "isInteropObservable"); + exports.isInteropObservable = isInteropObservable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isAsyncIterable.js +var require_isAsyncIterable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isAsyncIterable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isAsyncIterable = void 0; + var isFunction_1 = require_isFunction(); + function isAsyncIterable(obj) { + return Symbol.asyncIterator && isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); + } + __name(isAsyncIterable, "isAsyncIterable"); + exports.isAsyncIterable = isAsyncIterable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/throwUnobservableError.js +var require_throwUnobservableError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/throwUnobservableError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createInvalidObservableTypeError = void 0; + function createInvalidObservableTypeError(input) { + return new TypeError("You provided " + (input !== null && typeof input === "object" ? "an invalid object" : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable."); + } + __name(createInvalidObservableTypeError, "createInvalidObservableTypeError"); + exports.createInvalidObservableTypeError = createInvalidObservableTypeError; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/symbol/iterator.js +var require_iterator = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/symbol/iterator.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.iterator = exports.getSymbolIterator = void 0; + function getSymbolIterator() { + if (typeof Symbol !== "function" || !Symbol.iterator) { + return "@@iterator"; + } + return Symbol.iterator; + } + __name(getSymbolIterator, "getSymbolIterator"); + exports.getSymbolIterator = getSymbolIterator; + exports.iterator = getSymbolIterator(); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isIterable.js +var require_isIterable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isIterable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isIterable = void 0; + var iterator_1 = require_iterator(); + var isFunction_1 = require_isFunction(); + function isIterable(input) { + return isFunction_1.isFunction(input === null || input === void 0 ? void 0 : input[iterator_1.iterator]); + } + __name(isIterable, "isIterable"); + exports.isIterable = isIterable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isReadableStreamLike.js +var require_isReadableStreamLike = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isReadableStreamLike.js"(exports) { + "use strict"; + var __generator = exports && exports.__generator || function(thisArg, body) { + var _ = { label: 0, sent: /* @__PURE__ */ __name(function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, "sent"), trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + __name(verb, "verb"); + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + __name(step, "step"); + }; + var __await = exports && exports.__await || function(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + }; + var __asyncGenerator = exports && exports.__asyncGenerator || function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i; + function verb(n) { + if (g[n]) i[n] = function(v) { + return new Promise(function(a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v); + }); + }; + } + __name(verb, "verb"); + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } + } + __name(resume, "resume"); + function step(r) { + r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); + } + __name(step, "step"); + function fulfill(value) { + resume("next", value); + } + __name(fulfill, "fulfill"); + function reject(value) { + resume("throw", value); + } + __name(reject, "reject"); + function settle(f, v) { + if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); + } + __name(settle, "settle"); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isReadableStreamLike = exports.readableStreamLikeToAsyncGenerator = void 0; + var isFunction_1 = require_isFunction(); + function readableStreamLikeToAsyncGenerator(readableStream) { + return __asyncGenerator(this, arguments, /* @__PURE__ */ __name(function readableStreamLikeToAsyncGenerator_1() { + var reader, _a, value, done; + return __generator(this, function(_b) { + switch (_b.label) { + case 0: + reader = readableStream.getReader(); + _b.label = 1; + case 1: + _b.trys.push([1, , 9, 10]); + _b.label = 2; + case 2: + if (false) return [3, 8]; + return [4, __await(reader.read())]; + case 3: + _a = _b.sent(), value = _a.value, done = _a.done; + if (!done) return [3, 5]; + return [4, __await(void 0)]; + case 4: + return [2, _b.sent()]; + case 5: + return [4, __await(value)]; + case 6: + return [4, _b.sent()]; + case 7: + _b.sent(); + return [3, 2]; + case 8: + return [3, 10]; + case 9: + reader.releaseLock(); + return [7]; + case 10: + return [2]; + } + }); + }, "readableStreamLikeToAsyncGenerator_1")); + } + __name(readableStreamLikeToAsyncGenerator, "readableStreamLikeToAsyncGenerator"); + exports.readableStreamLikeToAsyncGenerator = readableStreamLikeToAsyncGenerator; + function isReadableStreamLike(obj) { + return isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); + } + __name(isReadableStreamLike, "isReadableStreamLike"); + exports.isReadableStreamLike = isReadableStreamLike; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/innerFrom.js +var require_innerFrom = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/innerFrom.js"(exports) { + "use strict"; + var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + __name(adopt, "adopt"); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + __name(fulfilled, "fulfilled"); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + __name(rejected, "rejected"); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + __name(step, "step"); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = exports && exports.__generator || function(thisArg, body) { + var _ = { label: 0, sent: /* @__PURE__ */ __name(function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, "sent"), trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + __name(verb, "verb"); + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + __name(step, "step"); + }; + var __asyncValues = exports && exports.__asyncValues || function(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve, reject) { + v = o[n](v), settle(resolve, reject, v.done, v.value); + }); + }; + } + __name(verb, "verb"); + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve({ value: v2, done: d }); + }, reject); + } + __name(settle, "settle"); + }; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fromReadableStreamLike = exports.fromAsyncIterable = exports.fromIterable = exports.fromPromise = exports.fromArrayLike = exports.fromInteropObservable = exports.innerFrom = void 0; + var isArrayLike_1 = require_isArrayLike(); + var isPromise_1 = require_isPromise(); + var Observable_1 = require_Observable(); + var isInteropObservable_1 = require_isInteropObservable(); + var isAsyncIterable_1 = require_isAsyncIterable(); + var throwUnobservableError_1 = require_throwUnobservableError(); + var isIterable_1 = require_isIterable(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + var isFunction_1 = require_isFunction(); + var reportUnhandledError_1 = require_reportUnhandledError(); + var observable_1 = require_observable(); + function innerFrom(input) { + if (input instanceof Observable_1.Observable) { + return input; + } + if (input != null) { + if (isInteropObservable_1.isInteropObservable(input)) { + return fromInteropObservable(input); + } + if (isArrayLike_1.isArrayLike(input)) { + return fromArrayLike(input); + } + if (isPromise_1.isPromise(input)) { + return fromPromise(input); + } + if (isAsyncIterable_1.isAsyncIterable(input)) { + return fromAsyncIterable(input); + } + if (isIterable_1.isIterable(input)) { + return fromIterable(input); + } + if (isReadableStreamLike_1.isReadableStreamLike(input)) { + return fromReadableStreamLike(input); + } + } + throw throwUnobservableError_1.createInvalidObservableTypeError(input); + } + __name(innerFrom, "innerFrom"); + exports.innerFrom = innerFrom; + function fromInteropObservable(obj) { + return new Observable_1.Observable(function(subscriber) { + var obs = obj[observable_1.observable](); + if (isFunction_1.isFunction(obs.subscribe)) { + return obs.subscribe(subscriber); + } + throw new TypeError("Provided object does not correctly implement Symbol.observable"); + }); + } + __name(fromInteropObservable, "fromInteropObservable"); + exports.fromInteropObservable = fromInteropObservable; + function fromArrayLike(array) { + return new Observable_1.Observable(function(subscriber) { + for (var i = 0; i < array.length && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); + }); + } + __name(fromArrayLike, "fromArrayLike"); + exports.fromArrayLike = fromArrayLike; + function fromPromise(promise) { + return new Observable_1.Observable(function(subscriber) { + promise.then(function(value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function(err) { + return subscriber.error(err); + }).then(null, reportUnhandledError_1.reportUnhandledError); + }); + } + __name(fromPromise, "fromPromise"); + exports.fromPromise = fromPromise; + function fromIterable(iterable) { + return new Observable_1.Observable(function(subscriber) { + var e_1, _a; + try { + for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { + var value = iterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return; + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1); + } finally { + if (e_1) throw e_1.error; + } + } + subscriber.complete(); + }); + } + __name(fromIterable, "fromIterable"); + exports.fromIterable = fromIterable; + function fromAsyncIterable(asyncIterable) { + return new Observable_1.Observable(function(subscriber) { + process2(asyncIterable, subscriber).catch(function(err) { + return subscriber.error(err); + }); + }); + } + __name(fromAsyncIterable, "fromAsyncIterable"); + exports.fromAsyncIterable = fromAsyncIterable; + function fromReadableStreamLike(readableStream) { + return fromAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(readableStream)); + } + __name(fromReadableStreamLike, "fromReadableStreamLike"); + exports.fromReadableStreamLike = fromReadableStreamLike; + function process2(asyncIterable, subscriber) { + var asyncIterable_1, asyncIterable_1_1; + var e_2, _a; + return __awaiter(this, void 0, void 0, function() { + var value, e_2_1; + return __generator(this, function(_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 5, 6, 11]); + asyncIterable_1 = __asyncValues(asyncIterable); + _b.label = 1; + case 1: + return [4, asyncIterable_1.next()]; + case 2: + if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4]; + value = asyncIterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return [2]; + } + _b.label = 3; + case 3: + return [3, 1]; + case 4: + return [3, 11]; + case 5: + e_2_1 = _b.sent(); + e_2 = { error: e_2_1 }; + return [3, 11]; + case 6: + _b.trys.push([6, , 9, 10]); + if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8]; + return [4, _a.call(asyncIterable_1)]; + case 7: + _b.sent(); + _b.label = 8; + case 8: + return [3, 10]; + case 9: + if (e_2) throw e_2.error; + return [7]; + case 10: + return [7]; + case 11: + subscriber.complete(); + return [2]; + } + }); + }); + } + __name(process2, "process"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js +var require_OperatorSubscriber = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.OperatorSubscriber = exports.createOperatorSubscriber = void 0; + var Subscriber_1 = require_Subscriber(); + function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { + return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); + } + __name(createOperatorSubscriber, "createOperatorSubscriber"); + exports.createOperatorSubscriber = createOperatorSubscriber; + var OperatorSubscriber = (function(_super) { + __extends(OperatorSubscriber2, _super); + function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { + var _this = _super.call(this, destination) || this; + _this.onFinalize = onFinalize; + _this.shouldUnsubscribe = shouldUnsubscribe; + _this._next = onNext ? function(value) { + try { + onNext(value); + } catch (err) { + destination.error(err); + } + } : _super.prototype._next; + _this._error = onError ? function(err) { + try { + onError(err); + } catch (err2) { + destination.error(err2); + } finally { + this.unsubscribe(); + } + } : _super.prototype._error; + _this._complete = onComplete ? function() { + try { + onComplete(); + } catch (err) { + destination.error(err); + } finally { + this.unsubscribe(); + } + } : _super.prototype._complete; + return _this; + } + __name(OperatorSubscriber2, "OperatorSubscriber"); + OperatorSubscriber2.prototype.unsubscribe = function() { + var _a; + if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { + var closed_1 = this.closed; + _super.prototype.unsubscribe.call(this); + !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); + } + }; + return OperatorSubscriber2; + })(Subscriber_1.Subscriber); + exports.OperatorSubscriber = OperatorSubscriber; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/audit.js +var require_audit = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/audit.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.audit = void 0; + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function audit(durationSelector) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + var durationSubscriber = null; + var isComplete = false; + var endDuration = /* @__PURE__ */ __name(function() { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + durationSubscriber = null; + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + isComplete && subscriber.complete(); + }, "endDuration"); + var cleanupDuration = /* @__PURE__ */ __name(function() { + durationSubscriber = null; + isComplete && subscriber.complete(); + }, "cleanupDuration"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + lastValue = value; + if (!durationSubscriber) { + innerFrom_1.innerFrom(durationSelector(value)).subscribe(durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, endDuration, cleanupDuration)); + } + }, function() { + isComplete = true; + (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete(); + })); + }); + } + __name(audit, "audit"); + exports.audit = audit; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/Action.js +var require_Action = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/Action.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Action = void 0; + var Subscription_1 = require_Subscription(); + var Action = (function(_super) { + __extends(Action2, _super); + function Action2(scheduler, work) { + return _super.call(this) || this; + } + __name(Action2, "Action"); + Action2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + return this; + }; + return Action2; + })(Subscription_1.Subscription); + exports.Action = Action; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/intervalProvider.js +var require_intervalProvider = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/intervalProvider.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.intervalProvider = void 0; + exports.intervalProvider = { + setInterval: /* @__PURE__ */ __name(function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var delegate = exports.intervalProvider.delegate; + if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) { + return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args))); + } + return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, "setInterval"), + clearInterval: /* @__PURE__ */ __name(function(handle) { + var delegate = exports.intervalProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle); + }, "clearInterval"), + delegate: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js +var require_AsyncAction = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AsyncAction = void 0; + var Action_1 = require_Action(); + var intervalProvider_1 = require_intervalProvider(); + var arrRemove_1 = require_arrRemove(); + var AsyncAction = (function(_super) { + __extends(AsyncAction2, _super); + function AsyncAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; + return _this; + } + __name(AsyncAction2, "AsyncAction"); + AsyncAction2.prototype.schedule = function(state, delay) { + var _a; + if (delay === void 0) { + delay = 0; + } + if (this.closed) { + return this; + } + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay); + return this; + }; + AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay) { + if (delay === void 0) { + delay = 0; + } + return intervalProvider_1.intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); + }; + AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && this.delay === delay && this.pending === false) { + return id; + } + if (id != null) { + intervalProvider_1.intervalProvider.clearInterval(id); + } + return void 0; + }; + AsyncAction2.prototype.execute = function(state, delay) { + if (this.closed) { + return new Error("executing a cancelled action"); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + }; + AsyncAction2.prototype._execute = function(state, _delay) { + var errored = false; + var errorValue; + try { + this.work(state); + } catch (e) { + errored = true; + errorValue = e ? e : new Error("Scheduled action threw falsy error"); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + }; + AsyncAction2.prototype.unsubscribe = function() { + if (!this.closed) { + var _a = this, id = _a.id, scheduler = _a.scheduler; + var actions = scheduler.actions; + this.work = this.state = this.scheduler = null; + this.pending = false; + arrRemove_1.arrRemove(actions, this); + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + _super.prototype.unsubscribe.call(this); + } + }; + return AsyncAction2; + })(Action_1.Action); + exports.AsyncAction = AsyncAction; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/dateTimestampProvider.js +var require_dateTimestampProvider = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/dateTimestampProvider.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.dateTimestampProvider = void 0; + exports.dateTimestampProvider = { + now: /* @__PURE__ */ __name(function() { + return (exports.dateTimestampProvider.delegate || Date).now(); + }, "now"), + delegate: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Scheduler.js +var require_Scheduler = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Scheduler.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Scheduler = void 0; + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var Scheduler = (function() { + function Scheduler2(schedulerActionCtor, now) { + if (now === void 0) { + now = Scheduler2.now; + } + this.schedulerActionCtor = schedulerActionCtor; + this.now = now; + } + __name(Scheduler2, "Scheduler"); + Scheduler2.prototype.schedule = function(work, delay, state) { + if (delay === void 0) { + delay = 0; + } + return new this.schedulerActionCtor(this, work).schedule(state, delay); + }; + Scheduler2.now = dateTimestampProvider_1.dateTimestampProvider.now; + return Scheduler2; + })(); + exports.Scheduler = Scheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js +var require_AsyncScheduler = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AsyncScheduler = void 0; + var Scheduler_1 = require_Scheduler(); + var AsyncScheduler = (function(_super) { + __extends(AsyncScheduler2, _super); + function AsyncScheduler2(SchedulerAction, now) { + if (now === void 0) { + now = Scheduler_1.Scheduler.now; + } + var _this = _super.call(this, SchedulerAction, now) || this; + _this.actions = []; + _this._active = false; + return _this; + } + __name(AsyncScheduler2, "AsyncScheduler"); + AsyncScheduler2.prototype.flush = function(action) { + var actions = this.actions; + if (this._active) { + actions.push(action); + return; + } + var error; + this._active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this._active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsyncScheduler2; + })(Scheduler_1.Scheduler); + exports.AsyncScheduler = AsyncScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/async.js +var require_async = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/async.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.async = exports.asyncScheduler = void 0; + var AsyncAction_1 = require_AsyncAction(); + var AsyncScheduler_1 = require_AsyncScheduler(); + exports.asyncScheduler = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction); + exports.async = exports.asyncScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isScheduler.js +var require_isScheduler = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isScheduler.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isScheduler = void 0; + var isFunction_1 = require_isFunction(); + function isScheduler(value) { + return value && isFunction_1.isFunction(value.schedule); + } + __name(isScheduler, "isScheduler"); + exports.isScheduler = isScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isDate.js +var require_isDate = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isDate.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isValidDate = void 0; + function isValidDate(value) { + return value instanceof Date && !isNaN(value); + } + __name(isValidDate, "isValidDate"); + exports.isValidDate = isValidDate; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/timer.js +var require_timer = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/timer.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.timer = void 0; + var Observable_1 = require_Observable(); + var async_1 = require_async(); + var isScheduler_1 = require_isScheduler(); + var isDate_1 = require_isDate(); + function timer(dueTime, intervalOrScheduler, scheduler) { + if (dueTime === void 0) { + dueTime = 0; + } + if (scheduler === void 0) { + scheduler = async_1.async; + } + var intervalDuration = -1; + if (intervalOrScheduler != null) { + if (isScheduler_1.isScheduler(intervalOrScheduler)) { + scheduler = intervalOrScheduler; + } else { + intervalDuration = intervalOrScheduler; + } + } + return new Observable_1.Observable(function(subscriber) { + var due = isDate_1.isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime; + if (due < 0) { + due = 0; + } + var n = 0; + return scheduler.schedule(function() { + if (!subscriber.closed) { + subscriber.next(n++); + if (0 <= intervalDuration) { + this.schedule(void 0, intervalDuration); + } else { + subscriber.complete(); + } + } + }, due); + }); + } + __name(timer, "timer"); + exports.timer = timer; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/auditTime.js +var require_auditTime = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/auditTime.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.auditTime = void 0; + var async_1 = require_async(); + var audit_1 = require_audit(); + var timer_1 = require_timer(); + function auditTime(duration, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return audit_1.audit(function() { + return timer_1.timer(duration, scheduler); + }); + } + __name(auditTime, "auditTime"); + exports.auditTime = auditTime; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/buffer.js +var require_buffer = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/buffer.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.buffer = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function buffer(closingNotifier) { + return lift_1.operate(function(source, subscriber) { + var currentBuffer = []; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return currentBuffer.push(value); + }, function() { + subscriber.next(currentBuffer); + subscriber.complete(); + })); + innerFrom_1.innerFrom(closingNotifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + var b = currentBuffer; + currentBuffer = []; + subscriber.next(b); + }, noop_1.noop)); + return function() { + currentBuffer = null; + }; + }); + } + __name(buffer, "buffer"); + exports.buffer = buffer; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferCount.js +var require_bufferCount = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferCount.js"(exports) { + "use strict"; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bufferCount = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { + startBufferEvery = null; + } + startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize; + return lift_1.operate(function(source, subscriber) { + var buffers = []; + var count = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a, e_2, _b; + var toEmit = null; + if (count++ % startBufferEvery === 0) { + buffers.push([]); + } + try { + for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) { + var buffer = buffers_1_1.value; + buffer.push(value); + if (bufferSize <= buffer.length) { + toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : []; + toEmit.push(buffer); + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1); + } finally { + if (e_1) throw e_1.error; + } + } + if (toEmit) { + try { + for (var toEmit_1 = __values(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) { + var buffer = toEmit_1_1.value; + arrRemove_1.arrRemove(buffers, buffer); + subscriber.next(buffer); + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) _b.call(toEmit_1); + } finally { + if (e_2) throw e_2.error; + } + } + } + }, function() { + var e_3, _a; + try { + for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) { + var buffer = buffers_2_1.value; + subscriber.next(buffer); + } + } catch (e_3_1) { + e_3 = { error: e_3_1 }; + } finally { + try { + if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) _a.call(buffers_2); + } finally { + if (e_3) throw e_3.error; + } + } + subscriber.complete(); + }, void 0, function() { + buffers = null; + })); + }); + } + __name(bufferCount, "bufferCount"); + exports.bufferCount = bufferCount; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/args.js +var require_args = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/args.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.popNumber = exports.popScheduler = exports.popResultSelector = void 0; + var isFunction_1 = require_isFunction(); + var isScheduler_1 = require_isScheduler(); + function last(arr) { + return arr[arr.length - 1]; + } + __name(last, "last"); + function popResultSelector(args) { + return isFunction_1.isFunction(last(args)) ? args.pop() : void 0; + } + __name(popResultSelector, "popResultSelector"); + exports.popResultSelector = popResultSelector; + function popScheduler(args) { + return isScheduler_1.isScheduler(last(args)) ? args.pop() : void 0; + } + __name(popScheduler, "popScheduler"); + exports.popScheduler = popScheduler; + function popNumber(args, defaultValue) { + return typeof last(args) === "number" ? args.pop() : defaultValue; + } + __name(popNumber, "popNumber"); + exports.popNumber = popNumber; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/executeSchedule.js +var require_executeSchedule = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/executeSchedule.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.executeSchedule = void 0; + function executeSchedule(parentSubscription, scheduler, work, delay, repeat) { + if (delay === void 0) { + delay = 0; + } + if (repeat === void 0) { + repeat = false; + } + var scheduleSubscription = scheduler.schedule(function() { + work(); + if (repeat) { + parentSubscription.add(this.schedule(null, delay)); + } else { + this.unsubscribe(); + } + }, delay); + parentSubscription.add(scheduleSubscription); + if (!repeat) { + return scheduleSubscription; + } + } + __name(executeSchedule, "executeSchedule"); + exports.executeSchedule = executeSchedule; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferTime.js +var require_bufferTime = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferTime.js"(exports) { + "use strict"; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bufferTime = void 0; + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + var async_1 = require_async(); + var args_1 = require_args(); + var executeSchedule_1 = require_executeSchedule(); + function bufferTime(bufferTimeSpan) { + var _a, _b; + var otherArgs = []; + for (var _i = 1; _i < arguments.length; _i++) { + otherArgs[_i - 1] = arguments[_i]; + } + var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler; + var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null; + var maxBufferSize = otherArgs[1] || Infinity; + return lift_1.operate(function(source, subscriber) { + var bufferRecords = []; + var restartOnEmit = false; + var emit = /* @__PURE__ */ __name(function(record) { + var buffer = record.buffer, subs = record.subs; + subs.unsubscribe(); + arrRemove_1.arrRemove(bufferRecords, record); + subscriber.next(buffer); + restartOnEmit && startBuffer(); + }, "emit"); + var startBuffer = /* @__PURE__ */ __name(function() { + if (bufferRecords) { + var subs = new Subscription_1.Subscription(); + subscriber.add(subs); + var buffer = []; + var record_1 = { + buffer, + subs + }; + bufferRecords.push(record_1); + executeSchedule_1.executeSchedule(subs, scheduler, function() { + return emit(record_1); + }, bufferTimeSpan); + } + }, "startBuffer"); + if (bufferCreationInterval !== null && bufferCreationInterval >= 0) { + executeSchedule_1.executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true); + } else { + restartOnEmit = true; + } + startBuffer(); + var bufferTimeSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a2; + var recordsCopy = bufferRecords.slice(); + try { + for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) { + var record = recordsCopy_1_1.value; + var buffer = record.buffer; + buffer.push(value); + maxBufferSize <= buffer.length && emit(record); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a2 = recordsCopy_1.return)) _a2.call(recordsCopy_1); + } finally { + if (e_1) throw e_1.error; + } + } + }, function() { + while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) { + subscriber.next(bufferRecords.shift().buffer); + } + bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe(); + subscriber.complete(); + subscriber.unsubscribe(); + }, void 0, function() { + return bufferRecords = null; + }); + source.subscribe(bufferTimeSubscriber); + }); + } + __name(bufferTime, "bufferTime"); + exports.bufferTime = bufferTime; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferToggle.js +var require_bufferToggle = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferToggle.js"(exports) { + "use strict"; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bufferToggle = void 0; + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var arrRemove_1 = require_arrRemove(); + function bufferToggle(openings, closingSelector) { + return lift_1.operate(function(source, subscriber) { + var buffers = []; + innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(openValue) { + var buffer = []; + buffers.push(buffer); + var closingSubscription = new Subscription_1.Subscription(); + var emitBuffer = /* @__PURE__ */ __name(function() { + arrRemove_1.arrRemove(buffers, buffer); + subscriber.next(buffer); + closingSubscription.unsubscribe(); + }, "emitBuffer"); + closingSubscription.add(innerFrom_1.innerFrom(closingSelector(openValue)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, emitBuffer, noop_1.noop))); + }, noop_1.noop)); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + try { + for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) { + var buffer = buffers_1_1.value; + buffer.push(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1); + } finally { + if (e_1) throw e_1.error; + } + } + }, function() { + while (buffers.length > 0) { + subscriber.next(buffers.shift()); + } + subscriber.complete(); + })); + }); + } + __name(bufferToggle, "bufferToggle"); + exports.bufferToggle = bufferToggle; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferWhen.js +var require_bufferWhen = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/bufferWhen.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bufferWhen = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function bufferWhen(closingSelector) { + return lift_1.operate(function(source, subscriber) { + var buffer = null; + var closingSubscriber = null; + var openBuffer = /* @__PURE__ */ __name(function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + var b = buffer; + buffer = []; + b && subscriber.next(b); + innerFrom_1.innerFrom(closingSelector()).subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openBuffer, noop_1.noop)); + }, "openBuffer"); + openBuffer(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); + }, function() { + buffer && subscriber.next(buffer); + subscriber.complete(); + }, void 0, function() { + return buffer = closingSubscriber = null; + })); + }); + } + __name(bufferWhen, "bufferWhen"); + exports.bufferWhen = bufferWhen; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/catchError.js +var require_catchError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/catchError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.catchError = void 0; + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var lift_1 = require_lift(); + function catchError(selector) { + return lift_1.operate(function(source, subscriber) { + var innerSub = null; + var syncUnsub = false; + var handledResult; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, function(err) { + handledResult = innerFrom_1.innerFrom(selector(err, catchError(selector)(source))); + if (innerSub) { + innerSub.unsubscribe(); + innerSub = null; + handledResult.subscribe(subscriber); + } else { + syncUnsub = true; + } + })); + if (syncUnsub) { + innerSub.unsubscribe(); + innerSub = null; + handledResult.subscribe(subscriber); + } + }); + } + __name(catchError, "catchError"); + exports.catchError = catchError; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/argsArgArrayOrObject.js +var require_argsArgArrayOrObject = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/argsArgArrayOrObject.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.argsArgArrayOrObject = void 0; + var isArray = Array.isArray; + var getPrototypeOf = Object.getPrototypeOf; + var objectProto = Object.prototype; + var getKeys = Object.keys; + function argsArgArrayOrObject(args) { + if (args.length === 1) { + var first_1 = args[0]; + if (isArray(first_1)) { + return { args: first_1, keys: null }; + } + if (isPOJO(first_1)) { + var keys = getKeys(first_1); + return { + args: keys.map(function(key) { + return first_1[key]; + }), + keys + }; + } + } + return { args, keys: null }; + } + __name(argsArgArrayOrObject, "argsArgArrayOrObject"); + exports.argsArgArrayOrObject = argsArgArrayOrObject; + function isPOJO(obj) { + return obj && typeof obj === "object" && getPrototypeOf(obj) === objectProto; + } + __name(isPOJO, "isPOJO"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/observeOn.js +var require_observeOn = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/observeOn.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.observeOn = void 0; + var executeSchedule_1 = require_executeSchedule(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function observeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + return subscriber.next(value); + }, delay); + }, function() { + return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + return subscriber.complete(); + }, delay); + }, function(err) { + return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + return subscriber.error(err); + }, delay); + })); + }); + } + __name(observeOn, "observeOn"); + exports.observeOn = observeOn; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/subscribeOn.js +var require_subscribeOn = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/subscribeOn.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.subscribeOn = void 0; + var lift_1 = require_lift(); + function subscribeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return lift_1.operate(function(source, subscriber) { + subscriber.add(scheduler.schedule(function() { + return source.subscribe(subscriber); + }, delay)); + }); + } + __name(subscribeOn, "subscribeOn"); + exports.subscribeOn = subscribeOn; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleObservable.js +var require_scheduleObservable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleObservable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scheduleObservable = void 0; + var innerFrom_1 = require_innerFrom(); + var observeOn_1 = require_observeOn(); + var subscribeOn_1 = require_subscribeOn(); + function scheduleObservable(input, scheduler) { + return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler)); + } + __name(scheduleObservable, "scheduleObservable"); + exports.scheduleObservable = scheduleObservable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/schedulePromise.js +var require_schedulePromise = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/schedulePromise.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.schedulePromise = void 0; + var innerFrom_1 = require_innerFrom(); + var observeOn_1 = require_observeOn(); + var subscribeOn_1 = require_subscribeOn(); + function schedulePromise(input, scheduler) { + return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler)); + } + __name(schedulePromise, "schedulePromise"); + exports.schedulePromise = schedulePromise; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleArray.js +var require_scheduleArray = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleArray.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scheduleArray = void 0; + var Observable_1 = require_Observable(); + function scheduleArray(input, scheduler) { + return new Observable_1.Observable(function(subscriber) { + var i = 0; + return scheduler.schedule(function() { + if (i === input.length) { + subscriber.complete(); + } else { + subscriber.next(input[i++]); + if (!subscriber.closed) { + this.schedule(); + } + } + }); + }); + } + __name(scheduleArray, "scheduleArray"); + exports.scheduleArray = scheduleArray; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleIterable.js +var require_scheduleIterable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleIterable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scheduleIterable = void 0; + var Observable_1 = require_Observable(); + var iterator_1 = require_iterator(); + var isFunction_1 = require_isFunction(); + var executeSchedule_1 = require_executeSchedule(); + function scheduleIterable(input, scheduler) { + return new Observable_1.Observable(function(subscriber) { + var iterator; + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + iterator = input[iterator_1.iterator](); + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + var _a; + var value; + var done; + try { + _a = iterator.next(), value = _a.value, done = _a.done; + } catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } else { + subscriber.next(value); + } + }, 0, true); + }); + return function() { + return isFunction_1.isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); + }; + }); + } + __name(scheduleIterable, "scheduleIterable"); + exports.scheduleIterable = scheduleIterable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleAsyncIterable.js +var require_scheduleAsyncIterable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleAsyncIterable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scheduleAsyncIterable = void 0; + var Observable_1 = require_Observable(); + var executeSchedule_1 = require_executeSchedule(); + function scheduleAsyncIterable(input, scheduler) { + if (!input) { + throw new Error("Iterable cannot be null"); + } + return new Observable_1.Observable(function(subscriber) { + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + var iterator = input[Symbol.asyncIterator](); + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + iterator.next().then(function(result) { + if (result.done) { + subscriber.complete(); + } else { + subscriber.next(result.value); + } + }); + }, 0, true); + }); + }); + } + __name(scheduleAsyncIterable, "scheduleAsyncIterable"); + exports.scheduleAsyncIterable = scheduleAsyncIterable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleReadableStreamLike.js +var require_scheduleReadableStreamLike = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduleReadableStreamLike.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scheduleReadableStreamLike = void 0; + var scheduleAsyncIterable_1 = require_scheduleAsyncIterable(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + function scheduleReadableStreamLike(input, scheduler) { + return scheduleAsyncIterable_1.scheduleAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(input), scheduler); + } + __name(scheduleReadableStreamLike, "scheduleReadableStreamLike"); + exports.scheduleReadableStreamLike = scheduleReadableStreamLike; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduled.js +var require_scheduled = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduled/scheduled.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scheduled = void 0; + var scheduleObservable_1 = require_scheduleObservable(); + var schedulePromise_1 = require_schedulePromise(); + var scheduleArray_1 = require_scheduleArray(); + var scheduleIterable_1 = require_scheduleIterable(); + var scheduleAsyncIterable_1 = require_scheduleAsyncIterable(); + var isInteropObservable_1 = require_isInteropObservable(); + var isPromise_1 = require_isPromise(); + var isArrayLike_1 = require_isArrayLike(); + var isIterable_1 = require_isIterable(); + var isAsyncIterable_1 = require_isAsyncIterable(); + var throwUnobservableError_1 = require_throwUnobservableError(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + var scheduleReadableStreamLike_1 = require_scheduleReadableStreamLike(); + function scheduled(input, scheduler) { + if (input != null) { + if (isInteropObservable_1.isInteropObservable(input)) { + return scheduleObservable_1.scheduleObservable(input, scheduler); + } + if (isArrayLike_1.isArrayLike(input)) { + return scheduleArray_1.scheduleArray(input, scheduler); + } + if (isPromise_1.isPromise(input)) { + return schedulePromise_1.schedulePromise(input, scheduler); + } + if (isAsyncIterable_1.isAsyncIterable(input)) { + return scheduleAsyncIterable_1.scheduleAsyncIterable(input, scheduler); + } + if (isIterable_1.isIterable(input)) { + return scheduleIterable_1.scheduleIterable(input, scheduler); + } + if (isReadableStreamLike_1.isReadableStreamLike(input)) { + return scheduleReadableStreamLike_1.scheduleReadableStreamLike(input, scheduler); + } + } + throw throwUnobservableError_1.createInvalidObservableTypeError(input); + } + __name(scheduled, "scheduled"); + exports.scheduled = scheduled; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/from.js +var require_from = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/from.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.from = void 0; + var scheduled_1 = require_scheduled(); + var innerFrom_1 = require_innerFrom(); + function from(input, scheduler) { + return scheduler ? scheduled_1.scheduled(input, scheduler) : innerFrom_1.innerFrom(input); + } + __name(from, "from"); + exports.from = from; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/map.js +var require_map2 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/map.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.map = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function map2(project, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + subscriber.next(project.call(thisArg, value, index++)); + })); + }); + } + __name(map2, "map"); + exports.map = map2; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/mapOneOrManyArgs.js +var require_mapOneOrManyArgs = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/mapOneOrManyArgs.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mapOneOrManyArgs = void 0; + var map_1 = require_map2(); + var isArray = Array.isArray; + function callOrApply(fn, args) { + return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args); + } + __name(callOrApply, "callOrApply"); + function mapOneOrManyArgs(fn) { + return map_1.map(function(args) { + return callOrApply(fn, args); + }); + } + __name(mapOneOrManyArgs, "mapOneOrManyArgs"); + exports.mapOneOrManyArgs = mapOneOrManyArgs; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/createObject.js +var require_createObject = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/createObject.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createObject = void 0; + function createObject(keys, values) { + return keys.reduce(function(result, key, i) { + return result[key] = values[i], result; + }, {}); + } + __name(createObject, "createObject"); + exports.createObject = createObject; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/combineLatest.js +var require_combineLatest = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/combineLatest.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.combineLatestInit = exports.combineLatest = void 0; + var Observable_1 = require_Observable(); + var argsArgArrayOrObject_1 = require_argsArgArrayOrObject(); + var from_1 = require_from(); + var identity_1 = require_identity(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var args_1 = require_args(); + var createObject_1 = require_createObject(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var executeSchedule_1 = require_executeSchedule(); + function combineLatest() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + var resultSelector = args_1.popResultSelector(args); + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys; + if (observables.length === 0) { + return from_1.from([], scheduler); + } + var result = new Observable_1.Observable(combineLatestInit(observables, scheduler, keys ? function(values) { + return createObject_1.createObject(keys, values); + } : identity_1.identity)); + return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result; + } + __name(combineLatest, "combineLatest"); + exports.combineLatest = combineLatest; + function combineLatestInit(observables, scheduler, valueTransform) { + if (valueTransform === void 0) { + valueTransform = identity_1.identity; + } + return function(subscriber) { + maybeSchedule(scheduler, function() { + var length = observables.length; + var values = new Array(length); + var active = length; + var remainingFirstValues = length; + var _loop_1 = /* @__PURE__ */ __name(function(i2) { + maybeSchedule(scheduler, function() { + var source = from_1.from(observables[i2], scheduler); + var hasFirstValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + values[i2] = value; + if (!hasFirstValue) { + hasFirstValue = true; + remainingFirstValues--; + } + if (!remainingFirstValues) { + subscriber.next(valueTransform(values.slice())); + } + }, function() { + if (!--active) { + subscriber.complete(); + } + })); + }, subscriber); + }, "_loop_1"); + for (var i = 0; i < length; i++) { + _loop_1(i); + } + }, subscriber); + }; + } + __name(combineLatestInit, "combineLatestInit"); + exports.combineLatestInit = combineLatestInit; + function maybeSchedule(scheduler, execute, subscription) { + if (scheduler) { + executeSchedule_1.executeSchedule(subscription, scheduler, execute); + } else { + execute(); + } + } + __name(maybeSchedule, "maybeSchedule"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js +var require_mergeInternals = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeInternals = void 0; + var innerFrom_1 = require_innerFrom(); + var executeSchedule_1 = require_executeSchedule(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) { + var buffer = []; + var active = 0; + var index = 0; + var isComplete = false; + var checkComplete = /* @__PURE__ */ __name(function() { + if (isComplete && !buffer.length && !active) { + subscriber.complete(); + } + }, "checkComplete"); + var outerNext = /* @__PURE__ */ __name(function(value) { + return active < concurrent ? doInnerSub(value) : buffer.push(value); + }, "outerNext"); + var doInnerSub = /* @__PURE__ */ __name(function(value) { + expand && subscriber.next(value); + active++; + var innerComplete = false; + innerFrom_1.innerFrom(project(value, index++)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(innerValue) { + onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); + if (expand) { + outerNext(innerValue); + } else { + subscriber.next(innerValue); + } + }, function() { + innerComplete = true; + }, void 0, function() { + if (innerComplete) { + try { + active--; + var _loop_1 = /* @__PURE__ */ __name(function() { + var bufferedValue = buffer.shift(); + if (innerSubScheduler) { + executeSchedule_1.executeSchedule(subscriber, innerSubScheduler, function() { + return doInnerSub(bufferedValue); + }); + } else { + doInnerSub(bufferedValue); + } + }, "_loop_1"); + while (buffer.length && active < concurrent) { + _loop_1(); + } + checkComplete(); + } catch (err) { + subscriber.error(err); + } + } + })); + }, "doInnerSub"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, outerNext, function() { + isComplete = true; + checkComplete(); + })); + return function() { + additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); + }; + } + __name(mergeInternals, "mergeInternals"); + exports.mergeInternals = mergeInternals; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeMap.js +var require_mergeMap = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeMap.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeMap = void 0; + var map_1 = require_map2(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + var isFunction_1 = require_isFunction(); + function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + if (isFunction_1.isFunction(resultSelector)) { + return mergeMap(function(a, i) { + return map_1.map(function(b, ii) { + return resultSelector(a, b, i, ii); + })(innerFrom_1.innerFrom(project(a, i))); + }, concurrent); + } else if (typeof resultSelector === "number") { + concurrent = resultSelector; + } + return lift_1.operate(function(source, subscriber) { + return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent); + }); + } + __name(mergeMap, "mergeMap"); + exports.mergeMap = mergeMap; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/scanInternals.js +var require_scanInternals = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/scanInternals.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scanInternals = void 0; + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) { + return function(source, subscriber) { + var hasState = hasSeed; + var state = seed; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var i = index++; + state = hasState ? accumulator(state, value, i) : (hasState = true, value); + emitOnNext && subscriber.next(state); + }, emitBeforeComplete && (function() { + hasState && subscriber.next(state); + subscriber.complete(); + }))); + }; + } + __name(scanInternals, "scanInternals"); + exports.scanInternals = scanInternals; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/reduce.js +var require_reduce = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/reduce.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.reduce = void 0; + var scanInternals_1 = require_scanInternals(); + var lift_1 = require_lift(); + function reduce(accumulator, seed) { + return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, false, true)); + } + __name(reduce, "reduce"); + exports.reduce = reduce; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/toArray.js +var require_toArray = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/toArray.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.toArray = void 0; + var reduce_1 = require_reduce(); + var lift_1 = require_lift(); + var arrReducer = /* @__PURE__ */ __name(function(arr, value) { + return arr.push(value), arr; + }, "arrReducer"); + function toArray() { + return lift_1.operate(function(source, subscriber) { + reduce_1.reduce(arrReducer, [])(source).subscribe(subscriber); + }); + } + __name(toArray, "toArray"); + exports.toArray = toArray; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/joinAllInternals.js +var require_joinAllInternals = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/joinAllInternals.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.joinAllInternals = void 0; + var identity_1 = require_identity(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var pipe_1 = require_pipe(); + var mergeMap_1 = require_mergeMap(); + var toArray_1 = require_toArray(); + function joinAllInternals(joinFn, project) { + return pipe_1.pipe(toArray_1.toArray(), mergeMap_1.mergeMap(function(sources) { + return joinFn(sources); + }), project ? mapOneOrManyArgs_1.mapOneOrManyArgs(project) : identity_1.identity); + } + __name(joinAllInternals, "joinAllInternals"); + exports.joinAllInternals = joinAllInternals; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineLatestAll.js +var require_combineLatestAll = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineLatestAll.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.combineLatestAll = void 0; + var combineLatest_1 = require_combineLatest(); + var joinAllInternals_1 = require_joinAllInternals(); + function combineLatestAll(project) { + return joinAllInternals_1.joinAllInternals(combineLatest_1.combineLatest, project); + } + __name(combineLatestAll, "combineLatestAll"); + exports.combineLatestAll = combineLatestAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineAll.js +var require_combineAll = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineAll.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.combineAll = void 0; + var combineLatestAll_1 = require_combineLatestAll(); + exports.combineAll = combineLatestAll_1.combineLatestAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js +var require_argsOrArgArray = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.argsOrArgArray = void 0; + var isArray = Array.isArray; + function argsOrArgArray(args) { + return args.length === 1 && isArray(args[0]) ? args[0] : args; + } + __name(argsOrArgArray, "argsOrArgArray"); + exports.argsOrArgArray = argsOrArgArray; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineLatest.js +var require_combineLatest2 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineLatest.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.combineLatest = void 0; + var combineLatest_1 = require_combineLatest(); + var lift_1 = require_lift(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var pipe_1 = require_pipe(); + var args_1 = require_args(); + function combineLatest() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + return resultSelector ? pipe_1.pipe(combineLatest.apply(void 0, __spreadArray([], __read(args))), mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : lift_1.operate(function(source, subscriber) { + combineLatest_1.combineLatestInit(__spreadArray([source], __read(argsOrArgArray_1.argsOrArgArray(args))))(subscriber); + }); + } + __name(combineLatest, "combineLatest"); + exports.combineLatest = combineLatest; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineLatestWith.js +var require_combineLatestWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/combineLatestWith.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.combineLatestWith = void 0; + var combineLatest_1 = require_combineLatest2(); + function combineLatestWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return combineLatest_1.combineLatest.apply(void 0, __spreadArray([], __read(otherSources))); + } + __name(combineLatestWith, "combineLatestWith"); + exports.combineLatestWith = combineLatestWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeAll.js +var require_mergeAll = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeAll.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeAll = void 0; + var mergeMap_1 = require_mergeMap(); + var identity_1 = require_identity(); + function mergeAll(concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + return mergeMap_1.mergeMap(identity_1.identity, concurrent); + } + __name(mergeAll, "mergeAll"); + exports.mergeAll = mergeAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatAll.js +var require_concatAll = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatAll.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.concatAll = void 0; + var mergeAll_1 = require_mergeAll(); + function concatAll() { + return mergeAll_1.mergeAll(1); + } + __name(concatAll, "concatAll"); + exports.concatAll = concatAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concat.js +var require_concat2 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concat.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.concat = void 0; + var lift_1 = require_lift(); + var concatAll_1 = require_concatAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function concat() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + return lift_1.operate(function(source, subscriber) { + concatAll_1.concatAll()(from_1.from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber); + }); + } + __name(concat, "concat"); + exports.concat = concat; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatMap.js +var require_concatMap = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatMap.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.concatMap = void 0; + var mergeMap_1 = require_mergeMap(); + var isFunction_1 = require_isFunction(); + function concatMap2(project, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? mergeMap_1.mergeMap(project, resultSelector, 1) : mergeMap_1.mergeMap(project, 1); + } + __name(concatMap2, "concatMap"); + exports.concatMap = concatMap2; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatMapTo.js +var require_concatMapTo = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatMapTo.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.concatMapTo = void 0; + var concatMap_1 = require_concatMap(); + var isFunction_1 = require_isFunction(); + function concatMapTo(innerObservable, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? concatMap_1.concatMap(function() { + return innerObservable; + }, resultSelector) : concatMap_1.concatMap(function() { + return innerObservable; + }); + } + __name(concatMapTo, "concatMapTo"); + exports.concatMapTo = concatMapTo; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatWith.js +var require_concatWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/concatWith.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.concatWith = void 0; + var concat_1 = require_concat2(); + function concatWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return concat_1.concat.apply(void 0, __spreadArray([], __read(otherSources))); + } + __name(concatWith, "concatWith"); + exports.concatWith = concatWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/ObjectUnsubscribedError.js +var require_ObjectUnsubscribedError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/ObjectUnsubscribedError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ObjectUnsubscribedError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports.ObjectUnsubscribedError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function ObjectUnsubscribedErrorImpl() { + _super(this); + this.name = "ObjectUnsubscribedError"; + this.message = "object unsubscribed"; + }, "ObjectUnsubscribedErrorImpl"); + }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subject.js +var require_Subject = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subject.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AnonymousSubject = exports.Subject = void 0; + var Observable_1 = require_Observable(); + var Subscription_1 = require_Subscription(); + var ObjectUnsubscribedError_1 = require_ObjectUnsubscribedError(); + var arrRemove_1 = require_arrRemove(); + var errorContext_1 = require_errorContext(); + var Subject = (function(_super) { + __extends(Subject2, _super); + function Subject2() { + var _this = _super.call(this) || this; + _this.closed = false; + _this.currentObservers = null; + _this.observers = []; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + __name(Subject2, "Subject"); + Subject2.prototype.lift = function(operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject2.prototype._throwIfClosed = function() { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + }; + Subject2.prototype.next = function(value) { + var _this = this; + errorContext_1.errorContext(function() { + var e_1, _a; + _this._throwIfClosed(); + if (!_this.isStopped) { + if (!_this.currentObservers) { + _this.currentObservers = Array.from(_this.observers); + } + try { + for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { + var observer = _c.value; + observer.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } finally { + if (e_1) throw e_1.error; + } + } + } + }); + }; + Subject2.prototype.error = function(err) { + var _this = this; + errorContext_1.errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.hasError = _this.isStopped = true; + _this.thrownError = err; + var observers = _this.observers; + while (observers.length) { + observers.shift().error(err); + } + } + }); + }; + Subject2.prototype.complete = function() { + var _this = this; + errorContext_1.errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.isStopped = true; + var observers = _this.observers; + while (observers.length) { + observers.shift().complete(); + } + } + }); + }; + Subject2.prototype.unsubscribe = function() { + this.isStopped = this.closed = true; + this.observers = this.currentObservers = null; + }; + Object.defineProperty(Subject2.prototype, "observed", { + get: /* @__PURE__ */ __name(function() { + var _a; + return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; + }, "get"), + enumerable: false, + configurable: true + }); + Subject2.prototype._trySubscribe = function(subscriber) { + this._throwIfClosed(); + return _super.prototype._trySubscribe.call(this, subscriber); + }; + Subject2.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._checkFinalizedStatuses(subscriber); + return this._innerSubscribe(subscriber); + }; + Subject2.prototype._innerSubscribe = function(subscriber) { + var _this = this; + var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; + if (hasError || isStopped) { + return Subscription_1.EMPTY_SUBSCRIPTION; + } + this.currentObservers = null; + observers.push(subscriber); + return new Subscription_1.Subscription(function() { + _this.currentObservers = null; + arrRemove_1.arrRemove(observers, subscriber); + }); + }; + Subject2.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped) { + subscriber.complete(); + } + }; + Subject2.prototype.asObservable = function() { + var observable = new Observable_1.Observable(); + observable.source = this; + return observable; + }; + Subject2.create = function(destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject2; + })(Observable_1.Observable); + exports.Subject = Subject; + var AnonymousSubject = (function(_super) { + __extends(AnonymousSubject2, _super); + function AnonymousSubject2(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + __name(AnonymousSubject2, "AnonymousSubject"); + AnonymousSubject2.prototype.next = function(value) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); + }; + AnonymousSubject2.prototype.error = function(err) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); + }; + AnonymousSubject2.prototype.complete = function() { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + AnonymousSubject2.prototype._subscribe = function(subscriber) { + var _a, _b; + return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : Subscription_1.EMPTY_SUBSCRIPTION; + }; + return AnonymousSubject2; + })(Subject); + exports.AnonymousSubject = AnonymousSubject; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromSubscribable.js +var require_fromSubscribable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromSubscribable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fromSubscribable = void 0; + var Observable_1 = require_Observable(); + function fromSubscribable(subscribable) { + return new Observable_1.Observable(function(subscriber) { + return subscribable.subscribe(subscriber); + }); + } + __name(fromSubscribable, "fromSubscribable"); + exports.fromSubscribable = fromSubscribable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/connect.js +var require_connect = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/connect.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.connect = void 0; + var Subject_1 = require_Subject(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var fromSubscribable_1 = require_fromSubscribable(); + var DEFAULT_CONFIG = { + connector: /* @__PURE__ */ __name(function() { + return new Subject_1.Subject(); + }, "connector") + }; + function connect(selector, config) { + if (config === void 0) { + config = DEFAULT_CONFIG; + } + var connector = config.connector; + return lift_1.operate(function(source, subscriber) { + var subject = connector(); + innerFrom_1.innerFrom(selector(fromSubscribable_1.fromSubscribable(subject))).subscribe(subscriber); + subscriber.add(source.subscribe(subject)); + }); + } + __name(connect, "connect"); + exports.connect = connect; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/count.js +var require_count = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/count.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.count = void 0; + var reduce_1 = require_reduce(); + function count(predicate) { + return reduce_1.reduce(function(total, value, i) { + return !predicate || predicate(value, i) ? total + 1 : total; + }, 0); + } + __name(count, "count"); + exports.count = count; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/debounce.js +var require_debounce = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/debounce.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.debounce = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function debounce(durationSelector) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + var durationSubscriber = null; + var emit = /* @__PURE__ */ __name(function() { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + durationSubscriber = null; + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }, "emit"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + hasValue = true; + lastValue = value; + durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, emit, noop_1.noop); + innerFrom_1.innerFrom(durationSelector(value)).subscribe(durationSubscriber); + }, function() { + emit(); + subscriber.complete(); + }, void 0, function() { + lastValue = durationSubscriber = null; + })); + }); + } + __name(debounce, "debounce"); + exports.debounce = debounce; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/debounceTime.js +var require_debounceTime = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/debounceTime.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.debounceTime = void 0; + var async_1 = require_async(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return lift_1.operate(function(source, subscriber) { + var activeTask = null; + var lastValue = null; + var lastTime = null; + var emit = /* @__PURE__ */ __name(function() { + if (activeTask) { + activeTask.unsubscribe(); + activeTask = null; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }, "emit"); + function emitWhenIdle() { + var targetTime = lastTime + dueTime; + var now = scheduler.now(); + if (now < targetTime) { + activeTask = this.schedule(void 0, targetTime - now); + subscriber.add(activeTask); + return; + } + emit(); + } + __name(emitWhenIdle, "emitWhenIdle"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + lastValue = value; + lastTime = scheduler.now(); + if (!activeTask) { + activeTask = scheduler.schedule(emitWhenIdle, dueTime); + subscriber.add(activeTask); + } + }, function() { + emit(); + subscriber.complete(); + }, void 0, function() { + lastValue = activeTask = null; + })); + }); + } + __name(debounceTime, "debounceTime"); + exports.debounceTime = debounceTime; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/defaultIfEmpty.js +var require_defaultIfEmpty = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/defaultIfEmpty.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.defaultIfEmpty = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function defaultIfEmpty(defaultValue) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + subscriber.next(value); + }, function() { + if (!hasValue) { + subscriber.next(defaultValue); + } + subscriber.complete(); + })); + }); + } + __name(defaultIfEmpty, "defaultIfEmpty"); + exports.defaultIfEmpty = defaultIfEmpty; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/concat.js +var require_concat3 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/concat.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.concat = void 0; + var concatAll_1 = require_concatAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function concat() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return concatAll_1.concatAll()(from_1.from(args, args_1.popScheduler(args))); + } + __name(concat, "concat"); + exports.concat = concat; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/empty.js +var require_empty = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/empty.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.empty = exports.EMPTY = void 0; + var Observable_1 = require_Observable(); + exports.EMPTY = new Observable_1.Observable(function(subscriber) { + return subscriber.complete(); + }); + function empty(scheduler) { + return scheduler ? emptyScheduled(scheduler) : exports.EMPTY; + } + __name(empty, "empty"); + exports.empty = empty; + function emptyScheduled(scheduler) { + return new Observable_1.Observable(function(subscriber) { + return scheduler.schedule(function() { + return subscriber.complete(); + }); + }); + } + __name(emptyScheduled, "emptyScheduled"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/take.js +var require_take = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/take.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.take = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function take(count) { + return count <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var seen = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (++seen <= count) { + subscriber.next(value); + if (count <= seen) { + subscriber.complete(); + } + } + })); + }); + } + __name(take, "take"); + exports.take = take; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/ignoreElements.js +var require_ignoreElements = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/ignoreElements.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ignoreElements = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + function ignoreElements() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, noop_1.noop)); + }); + } + __name(ignoreElements, "ignoreElements"); + exports.ignoreElements = ignoreElements; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mapTo.js +var require_mapTo = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mapTo.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mapTo = void 0; + var map_1 = require_map2(); + function mapTo(value) { + return map_1.map(function() { + return value; + }); + } + __name(mapTo, "mapTo"); + exports.mapTo = mapTo; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/delayWhen.js +var require_delayWhen = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/delayWhen.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.delayWhen = void 0; + var concat_1 = require_concat3(); + var take_1 = require_take(); + var ignoreElements_1 = require_ignoreElements(); + var mapTo_1 = require_mapTo(); + var mergeMap_1 = require_mergeMap(); + var innerFrom_1 = require_innerFrom(); + function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function(source) { + return concat_1.concat(subscriptionDelay.pipe(take_1.take(1), ignoreElements_1.ignoreElements()), source.pipe(delayWhen(delayDurationSelector))); + }; + } + return mergeMap_1.mergeMap(function(value, index) { + return innerFrom_1.innerFrom(delayDurationSelector(value, index)).pipe(take_1.take(1), mapTo_1.mapTo(value)); + }); + } + __name(delayWhen, "delayWhen"); + exports.delayWhen = delayWhen; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/delay.js +var require_delay = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/delay.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.delay = void 0; + var async_1 = require_async(); + var delayWhen_1 = require_delayWhen(); + var timer_1 = require_timer(); + function delay(due, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + var duration = timer_1.timer(due, scheduler); + return delayWhen_1.delayWhen(function() { + return duration; + }); + } + __name(delay, "delay"); + exports.delay = delay; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/of.js +var require_of = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/of.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.of = void 0; + var args_1 = require_args(); + var from_1 = require_from(); + function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + return from_1.from(args, scheduler); + } + __name(of, "of"); + exports.of = of; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/throwError.js +var require_throwError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/throwError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.throwError = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + function throwError(errorOrErrorFactory, scheduler) { + var errorFactory = isFunction_1.isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function() { + return errorOrErrorFactory; + }; + var init = /* @__PURE__ */ __name(function(subscriber) { + return subscriber.error(errorFactory()); + }, "init"); + return new Observable_1.Observable(scheduler ? function(subscriber) { + return scheduler.schedule(init, 0, subscriber); + } : init); + } + __name(throwError, "throwError"); + exports.throwError = throwError; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Notification.js +var require_Notification = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Notification.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.observeNotification = exports.Notification = exports.NotificationKind = void 0; + var empty_1 = require_empty(); + var of_1 = require_of(); + var throwError_1 = require_throwError(); + var isFunction_1 = require_isFunction(); + var NotificationKind; + (function(NotificationKind2) { + NotificationKind2["NEXT"] = "N"; + NotificationKind2["ERROR"] = "E"; + NotificationKind2["COMPLETE"] = "C"; + })(NotificationKind = exports.NotificationKind || (exports.NotificationKind = {})); + var Notification = (function() { + function Notification2(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === "N"; + } + __name(Notification2, "Notification"); + Notification2.prototype.observe = function(observer) { + return observeNotification(this, observer); + }; + Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) { + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + return kind === "N" ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === "E" ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler(); + }; + Notification2.prototype.accept = function(nextOrObserver, error, complete) { + var _a; + return isFunction_1.isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); + }; + Notification2.prototype.toObservable = function() { + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + var result = kind === "N" ? of_1.of(value) : kind === "E" ? throwError_1.throwError(function() { + return error; + }) : kind === "C" ? empty_1.EMPTY : 0; + if (!result) { + throw new TypeError("Unexpected notification kind " + kind); + } + return result; + }; + Notification2.createNext = function(value) { + return new Notification2("N", value); + }; + Notification2.createError = function(err) { + return new Notification2("E", void 0, err); + }; + Notification2.createComplete = function() { + return Notification2.completeNotification; + }; + Notification2.completeNotification = new Notification2("C"); + return Notification2; + })(); + exports.Notification = Notification; + function observeNotification(notification, observer) { + var _a, _b, _c; + var _d = notification, kind = _d.kind, value = _d.value, error = _d.error; + if (typeof kind !== "string") { + throw new TypeError('Invalid notification, missing "kind"'); + } + kind === "N" ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer); + } + __name(observeNotification, "observeNotification"); + exports.observeNotification = observeNotification; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js +var require_dematerialize = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.dematerialize = void 0; + var Notification_1 = require_Notification(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function dematerialize() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(notification) { + return Notification_1.observeNotification(notification, subscriber); + })); + }); + } + __name(dematerialize, "dematerialize"); + exports.dematerialize = dematerialize; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/distinct.js +var require_distinct = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/distinct.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.distinct = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var innerFrom_1 = require_innerFrom(); + function distinct(keySelector, flushes) { + return lift_1.operate(function(source, subscriber) { + var distinctKeys = /* @__PURE__ */ new Set(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var key = keySelector ? keySelector(value) : value; + if (!distinctKeys.has(key)) { + distinctKeys.add(key); + subscriber.next(value); + } + })); + flushes && innerFrom_1.innerFrom(flushes).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return distinctKeys.clear(); + }, noop_1.noop)); + }); + } + __name(distinct, "distinct"); + exports.distinct = distinct; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/distinctUntilChanged.js +var require_distinctUntilChanged = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/distinctUntilChanged.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.distinctUntilChanged = void 0; + var identity_1 = require_identity(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function distinctUntilChanged(comparator, keySelector) { + if (keySelector === void 0) { + keySelector = identity_1.identity; + } + comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare; + return lift_1.operate(function(source, subscriber) { + var previousKey; + var first = true; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var currentKey = keySelector(value); + if (first || !comparator(previousKey, currentKey)) { + first = false; + previousKey = currentKey; + subscriber.next(value); + } + })); + }); + } + __name(distinctUntilChanged, "distinctUntilChanged"); + exports.distinctUntilChanged = distinctUntilChanged; + function defaultCompare(a, b) { + return a === b; + } + __name(defaultCompare, "defaultCompare"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/distinctUntilKeyChanged.js +var require_distinctUntilKeyChanged = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/distinctUntilKeyChanged.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.distinctUntilKeyChanged = void 0; + var distinctUntilChanged_1 = require_distinctUntilChanged(); + function distinctUntilKeyChanged(key, compare) { + return distinctUntilChanged_1.distinctUntilChanged(function(x, y) { + return compare ? compare(x[key], y[key]) : x[key] === y[key]; + }); + } + __name(distinctUntilKeyChanged, "distinctUntilKeyChanged"); + exports.distinctUntilKeyChanged = distinctUntilKeyChanged; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/ArgumentOutOfRangeError.js +var require_ArgumentOutOfRangeError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/ArgumentOutOfRangeError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ArgumentOutOfRangeError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports.ArgumentOutOfRangeError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function ArgumentOutOfRangeErrorImpl() { + _super(this); + this.name = "ArgumentOutOfRangeError"; + this.message = "argument out of range"; + }, "ArgumentOutOfRangeErrorImpl"); + }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/filter.js +var require_filter2 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/filter.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.filter = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function filter(predicate, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return predicate.call(thisArg, value, index++) && subscriber.next(value); + })); + }); + } + __name(filter, "filter"); + exports.filter = filter; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/EmptyError.js +var require_EmptyError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/EmptyError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.EmptyError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports.EmptyError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function EmptyErrorImpl() { + _super(this); + this.name = "EmptyError"; + this.message = "no elements in sequence"; + }, "EmptyErrorImpl"); + }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/throwIfEmpty.js +var require_throwIfEmpty = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/throwIfEmpty.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.throwIfEmpty = void 0; + var EmptyError_1 = require_EmptyError(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function throwIfEmpty(errorFactory) { + if (errorFactory === void 0) { + errorFactory = defaultErrorFactory; + } + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + subscriber.next(value); + }, function() { + return hasValue ? subscriber.complete() : subscriber.error(errorFactory()); + })); + }); + } + __name(throwIfEmpty, "throwIfEmpty"); + exports.throwIfEmpty = throwIfEmpty; + function defaultErrorFactory() { + return new EmptyError_1.EmptyError(); + } + __name(defaultErrorFactory, "defaultErrorFactory"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/elementAt.js +var require_elementAt = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/elementAt.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.elementAt = void 0; + var ArgumentOutOfRangeError_1 = require_ArgumentOutOfRangeError(); + var filter_1 = require_filter2(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var take_1 = require_take(); + function elementAt(index, defaultValue) { + if (index < 0) { + throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); + } + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(filter_1.filter(function(v, i) { + return i === index; + }), take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); + })); + }; + } + __name(elementAt, "elementAt"); + exports.elementAt = elementAt; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/endWith.js +var require_endWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/endWith.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.endWith = void 0; + var concat_1 = require_concat3(); + var of_1 = require_of(); + function endWith() { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + return function(source) { + return concat_1.concat(source, of_1.of.apply(void 0, __spreadArray([], __read(values)))); + }; + } + __name(endWith, "endWith"); + exports.endWith = endWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/every.js +var require_every = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/every.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.every = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function every(predicate, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (!predicate.call(thisArg, value, index++, source)) { + subscriber.next(false); + subscriber.complete(); + } + }, function() { + subscriber.next(true); + subscriber.complete(); + })); + }); + } + __name(every, "every"); + exports.every = every; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/exhaustMap.js +var require_exhaustMap = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/exhaustMap.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.exhaustMap = void 0; + var map_1 = require_map2(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function(source) { + return source.pipe(exhaustMap(function(a, i) { + return innerFrom_1.innerFrom(project(a, i)).pipe(map_1.map(function(b, ii) { + return resultSelector(a, b, i, ii); + })); + })); + }; + } + return lift_1.operate(function(source, subscriber) { + var index = 0; + var innerSub = null; + var isComplete = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(outerValue) { + if (!innerSub) { + innerSub = OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + innerSub = null; + isComplete && subscriber.complete(); + }); + innerFrom_1.innerFrom(project(outerValue, index++)).subscribe(innerSub); + } + }, function() { + isComplete = true; + !innerSub && subscriber.complete(); + })); + }); + } + __name(exhaustMap, "exhaustMap"); + exports.exhaustMap = exhaustMap; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/exhaustAll.js +var require_exhaustAll = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/exhaustAll.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.exhaustAll = void 0; + var exhaustMap_1 = require_exhaustMap(); + var identity_1 = require_identity(); + function exhaustAll() { + return exhaustMap_1.exhaustMap(identity_1.identity); + } + __name(exhaustAll, "exhaustAll"); + exports.exhaustAll = exhaustAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/exhaust.js +var require_exhaust = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/exhaust.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.exhaust = void 0; + var exhaustAll_1 = require_exhaustAll(); + exports.exhaust = exhaustAll_1.exhaustAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/expand.js +var require_expand = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/expand.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.expand = void 0; + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + function expand(project, concurrent, scheduler) { + if (concurrent === void 0) { + concurrent = Infinity; + } + concurrent = (concurrent || 0) < 1 ? Infinity : concurrent; + return lift_1.operate(function(source, subscriber) { + return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent, void 0, true, scheduler); + }); + } + __name(expand, "expand"); + exports.expand = expand; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/finalize.js +var require_finalize = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/finalize.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.finalize = void 0; + var lift_1 = require_lift(); + function finalize(callback) { + return lift_1.operate(function(source, subscriber) { + try { + source.subscribe(subscriber); + } finally { + subscriber.add(callback); + } + }); + } + __name(finalize, "finalize"); + exports.finalize = finalize; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/find.js +var require_find = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/find.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createFind = exports.find = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function find(predicate, thisArg) { + return lift_1.operate(createFind(predicate, thisArg, "value")); + } + __name(find, "find"); + exports.find = find; + function createFind(predicate, thisArg, emit) { + var findIndex = emit === "index"; + return function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var i = index++; + if (predicate.call(thisArg, value, i, source)) { + subscriber.next(findIndex ? i : value); + subscriber.complete(); + } + }, function() { + subscriber.next(findIndex ? -1 : void 0); + subscriber.complete(); + })); + }; + } + __name(createFind, "createFind"); + exports.createFind = createFind; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/findIndex.js +var require_findIndex = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/findIndex.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.findIndex = void 0; + var lift_1 = require_lift(); + var find_1 = require_find(); + function findIndex(predicate, thisArg) { + return lift_1.operate(find_1.createFind(predicate, thisArg, "index")); + } + __name(findIndex, "findIndex"); + exports.findIndex = findIndex; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/first.js +var require_first = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/first.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.first = void 0; + var EmptyError_1 = require_EmptyError(); + var filter_1 = require_filter2(); + var take_1 = require_take(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var identity_1 = require_identity(); + function first(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(predicate ? filter_1.filter(function(v, i) { + return predicate(v, i, source); + }) : identity_1.identity, take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new EmptyError_1.EmptyError(); + })); + }; + } + __name(first, "first"); + exports.first = first; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/groupBy.js +var require_groupBy = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/groupBy.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.groupBy = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function groupBy(keySelector, elementOrOptions, duration, connector) { + return lift_1.operate(function(source, subscriber) { + var element; + if (!elementOrOptions || typeof elementOrOptions === "function") { + element = elementOrOptions; + } else { + duration = elementOrOptions.duration, element = elementOrOptions.element, connector = elementOrOptions.connector; + } + var groups = /* @__PURE__ */ new Map(); + var notify = /* @__PURE__ */ __name(function(cb) { + groups.forEach(cb); + cb(subscriber); + }, "notify"); + var handleError = /* @__PURE__ */ __name(function(err) { + return notify(function(consumer) { + return consumer.error(err); + }); + }, "handleError"); + var activeGroups = 0; + var teardownAttempted = false; + var groupBySourceSubscriber = new OperatorSubscriber_1.OperatorSubscriber(subscriber, function(value) { + try { + var key_1 = keySelector(value); + var group_1 = groups.get(key_1); + if (!group_1) { + groups.set(key_1, group_1 = connector ? connector() : new Subject_1.Subject()); + var grouped = createGroupedObservable(key_1, group_1); + subscriber.next(grouped); + if (duration) { + var durationSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(group_1, function() { + group_1.complete(); + durationSubscriber_1 === null || durationSubscriber_1 === void 0 ? void 0 : durationSubscriber_1.unsubscribe(); + }, void 0, void 0, function() { + return groups.delete(key_1); + }); + groupBySourceSubscriber.add(innerFrom_1.innerFrom(duration(grouped)).subscribe(durationSubscriber_1)); + } + } + group_1.next(element ? element(value) : value); + } catch (err) { + handleError(err); + } + }, function() { + return notify(function(consumer) { + return consumer.complete(); + }); + }, handleError, function() { + return groups.clear(); + }, function() { + teardownAttempted = true; + return activeGroups === 0; + }); + source.subscribe(groupBySourceSubscriber); + function createGroupedObservable(key, groupSubject) { + var result = new Observable_1.Observable(function(groupSubscriber) { + activeGroups++; + var innerSub = groupSubject.subscribe(groupSubscriber); + return function() { + innerSub.unsubscribe(); + --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe(); + }; + }); + result.key = key; + return result; + } + __name(createGroupedObservable, "createGroupedObservable"); + }); + } + __name(groupBy, "groupBy"); + exports.groupBy = groupBy; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/isEmpty.js +var require_isEmpty = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/isEmpty.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isEmpty = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function isEmpty2() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + subscriber.next(false); + subscriber.complete(); + }, function() { + subscriber.next(true); + subscriber.complete(); + })); + }); + } + __name(isEmpty2, "isEmpty"); + exports.isEmpty = isEmpty2; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/takeLast.js +var require_takeLast = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/takeLast.js"(exports) { + "use strict"; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.takeLast = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function takeLast(count) { + return count <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var buffer = []; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + buffer.push(value); + count < buffer.length && buffer.shift(); + }, function() { + var e_1, _a; + try { + for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) { + var value = buffer_1_1.value; + subscriber.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1); + } finally { + if (e_1) throw e_1.error; + } + } + subscriber.complete(); + }, void 0, function() { + buffer = null; + })); + }); + } + __name(takeLast, "takeLast"); + exports.takeLast = takeLast; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/last.js +var require_last = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/last.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.last = void 0; + var EmptyError_1 = require_EmptyError(); + var filter_1 = require_filter2(); + var takeLast_1 = require_takeLast(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var identity_1 = require_identity(); + function last(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(predicate ? filter_1.filter(function(v, i) { + return predicate(v, i, source); + }) : identity_1.identity, takeLast_1.takeLast(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new EmptyError_1.EmptyError(); + })); + }; + } + __name(last, "last"); + exports.last = last; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/materialize.js +var require_materialize = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/materialize.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.materialize = void 0; + var Notification_1 = require_Notification(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function materialize() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + subscriber.next(Notification_1.Notification.createNext(value)); + }, function() { + subscriber.next(Notification_1.Notification.createComplete()); + subscriber.complete(); + }, function(err) { + subscriber.next(Notification_1.Notification.createError(err)); + subscriber.complete(); + })); + }); + } + __name(materialize, "materialize"); + exports.materialize = materialize; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/max.js +var require_max = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/max.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.max = void 0; + var reduce_1 = require_reduce(); + var isFunction_1 = require_isFunction(); + function max(comparer) { + return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function(x, y) { + return comparer(x, y) > 0 ? x : y; + } : function(x, y) { + return x > y ? x : y; + }); + } + __name(max, "max"); + exports.max = max; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/merge.js +var require_merge = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/merge.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.merge = void 0; + var lift_1 = require_lift(); + var mergeAll_1 = require_mergeAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function merge() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + var concurrent = args_1.popNumber(args, Infinity); + return lift_1.operate(function(source, subscriber) { + mergeAll_1.mergeAll(concurrent)(from_1.from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber); + }); + } + __name(merge, "merge"); + exports.merge = merge; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/flatMap.js +var require_flatMap = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/flatMap.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.flatMap = void 0; + var mergeMap_1 = require_mergeMap(); + exports.flatMap = mergeMap_1.mergeMap; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeMapTo.js +var require_mergeMapTo = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeMapTo.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeMapTo = void 0; + var mergeMap_1 = require_mergeMap(); + var isFunction_1 = require_isFunction(); + function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + if (isFunction_1.isFunction(resultSelector)) { + return mergeMap_1.mergeMap(function() { + return innerObservable; + }, resultSelector, concurrent); + } + if (typeof resultSelector === "number") { + concurrent = resultSelector; + } + return mergeMap_1.mergeMap(function() { + return innerObservable; + }, concurrent); + } + __name(mergeMapTo, "mergeMapTo"); + exports.mergeMapTo = mergeMapTo; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeScan.js +var require_mergeScan = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeScan.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeScan = void 0; + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + return lift_1.operate(function(source, subscriber) { + var state = seed; + return mergeInternals_1.mergeInternals(source, subscriber, function(value, index) { + return accumulator(state, value, index); + }, concurrent, function(value) { + state = value; + }, false, void 0, function() { + return state = null; + }); + }); + } + __name(mergeScan, "mergeScan"); + exports.mergeScan = mergeScan; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeWith.js +var require_mergeWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/mergeWith.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeWith = void 0; + var merge_1 = require_merge(); + function mergeWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return merge_1.merge.apply(void 0, __spreadArray([], __read(otherSources))); + } + __name(mergeWith, "mergeWith"); + exports.mergeWith = mergeWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/min.js +var require_min = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/min.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.min = void 0; + var reduce_1 = require_reduce(); + var isFunction_1 = require_isFunction(); + function min(comparer) { + return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function(x, y) { + return comparer(x, y) < 0 ? x : y; + } : function(x, y) { + return x < y ? x : y; + }); + } + __name(min, "min"); + exports.min = min; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/refCount.js +var require_refCount = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/refCount.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.refCount = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function refCount() { + return lift_1.operate(function(source, subscriber) { + var connection = null; + source._refCount++; + var refCounter = OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, void 0, function() { + if (!source || source._refCount <= 0 || 0 < --source._refCount) { + connection = null; + return; + } + var sharedConnection = source._connection; + var conn = connection; + connection = null; + if (sharedConnection && (!conn || sharedConnection === conn)) { + sharedConnection.unsubscribe(); + } + subscriber.unsubscribe(); + }); + source.subscribe(refCounter); + if (!refCounter.closed) { + connection = source.connect(); + } + }); + } + __name(refCount, "refCount"); + exports.refCount = refCount; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/ConnectableObservable.js +var require_ConnectableObservable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/ConnectableObservable.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ConnectableObservable = void 0; + var Observable_1 = require_Observable(); + var Subscription_1 = require_Subscription(); + var refCount_1 = require_refCount(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var lift_1 = require_lift(); + var ConnectableObservable = (function(_super) { + __extends(ConnectableObservable2, _super); + function ConnectableObservable2(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._subject = null; + _this._refCount = 0; + _this._connection = null; + if (lift_1.hasLift(source)) { + _this.lift = source.lift; + } + return _this; + } + __name(ConnectableObservable2, "ConnectableObservable"); + ConnectableObservable2.prototype._subscribe = function(subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable2.prototype.getSubject = function() { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable2.prototype._teardown = function() { + this._refCount = 0; + var _connection = this._connection; + this._subject = this._connection = null; + _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe(); + }; + ConnectableObservable2.prototype.connect = function() { + var _this = this; + var connection = this._connection; + if (!connection) { + connection = this._connection = new Subscription_1.Subscription(); + var subject_1 = this.getSubject(); + connection.add(this.source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subject_1, void 0, function() { + _this._teardown(); + subject_1.complete(); + }, function(err) { + _this._teardown(); + subject_1.error(err); + }, function() { + return _this._teardown(); + }))); + if (connection.closed) { + this._connection = null; + connection = Subscription_1.Subscription.EMPTY; + } + } + return connection; + }; + ConnectableObservable2.prototype.refCount = function() { + return refCount_1.refCount()(this); + }; + return ConnectableObservable2; + })(Observable_1.Observable); + exports.ConnectableObservable = ConnectableObservable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/multicast.js +var require_multicast = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/multicast.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.multicast = void 0; + var ConnectableObservable_1 = require_ConnectableObservable(); + var isFunction_1 = require_isFunction(); + var connect_1 = require_connect(); + function multicast(subjectOrSubjectFactory, selector) { + var subjectFactory = isFunction_1.isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : function() { + return subjectOrSubjectFactory; + }; + if (isFunction_1.isFunction(selector)) { + return connect_1.connect(selector, { + connector: subjectFactory + }); + } + return function(source) { + return new ConnectableObservable_1.ConnectableObservable(source, subjectFactory); + }; + } + __name(multicast, "multicast"); + exports.multicast = multicast; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/onErrorResumeNext.js +var require_onErrorResumeNext = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/onErrorResumeNext.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.onErrorResumeNext = void 0; + var Observable_1 = require_Observable(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var innerFrom_1 = require_innerFrom(); + function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + var nextSources = argsOrArgArray_1.argsOrArgArray(sources); + return new Observable_1.Observable(function(subscriber) { + var sourceIndex = 0; + var subscribeNext = /* @__PURE__ */ __name(function() { + if (sourceIndex < nextSources.length) { + var nextSource = void 0; + try { + nextSource = innerFrom_1.innerFrom(nextSources[sourceIndex++]); + } catch (err) { + subscribeNext(); + return; + } + var innerSubscriber = new OperatorSubscriber_1.OperatorSubscriber(subscriber, void 0, noop_1.noop, noop_1.noop); + nextSource.subscribe(innerSubscriber); + innerSubscriber.add(subscribeNext); + } else { + subscriber.complete(); + } + }, "subscribeNext"); + subscribeNext(); + }); + } + __name(onErrorResumeNext, "onErrorResumeNext"); + exports.onErrorResumeNext = onErrorResumeNext; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/onErrorResumeNextWith.js +var require_onErrorResumeNextWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/onErrorResumeNextWith.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.onErrorResumeNext = exports.onErrorResumeNextWith = void 0; + var argsOrArgArray_1 = require_argsOrArgArray(); + var onErrorResumeNext_1 = require_onErrorResumeNext(); + function onErrorResumeNextWith() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + var nextSources = argsOrArgArray_1.argsOrArgArray(sources); + return function(source) { + return onErrorResumeNext_1.onErrorResumeNext.apply(void 0, __spreadArray([source], __read(nextSources))); + }; + } + __name(onErrorResumeNextWith, "onErrorResumeNextWith"); + exports.onErrorResumeNextWith = onErrorResumeNextWith; + exports.onErrorResumeNext = onErrorResumeNextWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/pairwise.js +var require_pairwise = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/pairwise.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.pairwise = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function pairwise() { + return lift_1.operate(function(source, subscriber) { + var prev; + var hasPrev = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var p = prev; + prev = value; + hasPrev && subscriber.next([p, value]); + hasPrev = true; + })); + }); + } + __name(pairwise, "pairwise"); + exports.pairwise = pairwise; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/not.js +var require_not = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/not.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.not = void 0; + function not(pred, thisArg) { + return function(value, index) { + return !pred.call(thisArg, value, index); + }; + } + __name(not, "not"); + exports.not = not; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/partition.js +var require_partition = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/partition.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.partition = void 0; + var not_1 = require_not(); + var filter_1 = require_filter2(); + function partition(predicate, thisArg) { + return function(source) { + return [filter_1.filter(predicate, thisArg)(source), filter_1.filter(not_1.not(predicate, thisArg))(source)]; + }; + } + __name(partition, "partition"); + exports.partition = partition; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/pluck.js +var require_pluck = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/pluck.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.pluck = void 0; + var map_1 = require_map2(); + function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error("list of properties cannot be empty."); + } + return map_1.map(function(x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp === null || currentProp === void 0 ? void 0 : currentProp[properties[i]]; + if (typeof p !== "undefined") { + currentProp = p; + } else { + return void 0; + } + } + return currentProp; + }); + } + __name(pluck, "pluck"); + exports.pluck = pluck; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publish.js +var require_publish = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publish.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.publish = void 0; + var Subject_1 = require_Subject(); + var multicast_1 = require_multicast(); + var connect_1 = require_connect(); + function publish(selector) { + return selector ? function(source) { + return connect_1.connect(selector)(source); + } : function(source) { + return multicast_1.multicast(new Subject_1.Subject())(source); + }; + } + __name(publish, "publish"); + exports.publish = publish; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/BehaviorSubject.js +var require_BehaviorSubject = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/BehaviorSubject.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.BehaviorSubject = void 0; + var Subject_1 = require_Subject(); + var BehaviorSubject = (function(_super) { + __extends(BehaviorSubject2, _super); + function BehaviorSubject2(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + __name(BehaviorSubject2, "BehaviorSubject"); + Object.defineProperty(BehaviorSubject2.prototype, "value", { + get: /* @__PURE__ */ __name(function() { + return this.getValue(); + }, "get"), + enumerable: false, + configurable: true + }); + BehaviorSubject2.prototype._subscribe = function(subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + !subscription.closed && subscriber.next(this._value); + return subscription; + }; + BehaviorSubject2.prototype.getValue = function() { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; + if (hasError) { + throw thrownError; + } + this._throwIfClosed(); + return _value; + }; + BehaviorSubject2.prototype.next = function(value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject2; + })(Subject_1.Subject); + exports.BehaviorSubject = BehaviorSubject; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publishBehavior.js +var require_publishBehavior = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publishBehavior.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.publishBehavior = void 0; + var BehaviorSubject_1 = require_BehaviorSubject(); + var ConnectableObservable_1 = require_ConnectableObservable(); + function publishBehavior(initialValue) { + return function(source) { + var subject = new BehaviorSubject_1.BehaviorSubject(initialValue); + return new ConnectableObservable_1.ConnectableObservable(source, function() { + return subject; + }); + }; + } + __name(publishBehavior, "publishBehavior"); + exports.publishBehavior = publishBehavior; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/AsyncSubject.js +var require_AsyncSubject = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/AsyncSubject.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AsyncSubject = void 0; + var Subject_1 = require_Subject(); + var AsyncSubject = (function(_super) { + __extends(AsyncSubject2, _super); + function AsyncSubject2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._value = null; + _this._hasValue = false; + _this._isComplete = false; + return _this; + } + __name(AsyncSubject2, "AsyncSubject"); + AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped || _isComplete) { + _hasValue && subscriber.next(_value); + subscriber.complete(); + } + }; + AsyncSubject2.prototype.next = function(value) { + if (!this.isStopped) { + this._value = value; + this._hasValue = true; + } + }; + AsyncSubject2.prototype.complete = function() { + var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; + if (!_isComplete) { + this._isComplete = true; + _hasValue && _super.prototype.next.call(this, _value); + _super.prototype.complete.call(this); + } + }; + return AsyncSubject2; + })(Subject_1.Subject); + exports.AsyncSubject = AsyncSubject; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publishLast.js +var require_publishLast = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publishLast.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.publishLast = void 0; + var AsyncSubject_1 = require_AsyncSubject(); + var ConnectableObservable_1 = require_ConnectableObservable(); + function publishLast() { + return function(source) { + var subject = new AsyncSubject_1.AsyncSubject(); + return new ConnectableObservable_1.ConnectableObservable(source, function() { + return subject; + }); + }; + } + __name(publishLast, "publishLast"); + exports.publishLast = publishLast; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/ReplaySubject.js +var require_ReplaySubject = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/ReplaySubject.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ReplaySubject = void 0; + var Subject_1 = require_Subject(); + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var ReplaySubject = (function(_super) { + __extends(ReplaySubject2, _super); + function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) { + if (_bufferSize === void 0) { + _bufferSize = Infinity; + } + if (_windowTime === void 0) { + _windowTime = Infinity; + } + if (_timestampProvider === void 0) { + _timestampProvider = dateTimestampProvider_1.dateTimestampProvider; + } + var _this = _super.call(this) || this; + _this._bufferSize = _bufferSize; + _this._windowTime = _windowTime; + _this._timestampProvider = _timestampProvider; + _this._buffer = []; + _this._infiniteTimeWindow = true; + _this._infiniteTimeWindow = _windowTime === Infinity; + _this._bufferSize = Math.max(1, _bufferSize); + _this._windowTime = Math.max(1, _windowTime); + return _this; + } + __name(ReplaySubject2, "ReplaySubject"); + ReplaySubject2.prototype.next = function(value) { + var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; + if (!isStopped) { + _buffer.push(value); + !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); + } + this._trimBuffer(); + _super.prototype.next.call(this, value); + }; + ReplaySubject2.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._trimBuffer(); + var subscription = this._innerSubscribe(subscriber); + var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; + var copy = _buffer.slice(); + for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { + subscriber.next(copy[i]); + } + this._checkFinalizedStatuses(subscriber); + return subscription; + }; + ReplaySubject2.prototype._trimBuffer = function() { + var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; + var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; + _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); + if (!_infiniteTimeWindow) { + var now = _timestampProvider.now(); + var last = 0; + for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) { + last = i; + } + last && _buffer.splice(0, last + 1); + } + }; + return ReplaySubject2; + })(Subject_1.Subject); + exports.ReplaySubject = ReplaySubject; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publishReplay.js +var require_publishReplay = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/publishReplay.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.publishReplay = void 0; + var ReplaySubject_1 = require_ReplaySubject(); + var multicast_1 = require_multicast(); + var isFunction_1 = require_isFunction(); + function publishReplay(bufferSize, windowTime, selectorOrScheduler, timestampProvider) { + if (selectorOrScheduler && !isFunction_1.isFunction(selectorOrScheduler)) { + timestampProvider = selectorOrScheduler; + } + var selector = isFunction_1.isFunction(selectorOrScheduler) ? selectorOrScheduler : void 0; + return function(source) { + return multicast_1.multicast(new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, timestampProvider), selector)(source); + }; + } + __name(publishReplay, "publishReplay"); + exports.publishReplay = publishReplay; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/race.js +var require_race = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/race.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.raceInit = exports.race = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function race() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + sources = argsOrArgArray_1.argsOrArgArray(sources); + return sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : new Observable_1.Observable(raceInit(sources)); + } + __name(race, "race"); + exports.race = race; + function raceInit(sources) { + return function(subscriber) { + var subscriptions = []; + var _loop_1 = /* @__PURE__ */ __name(function(i2) { + subscriptions.push(innerFrom_1.innerFrom(sources[i2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (subscriptions) { + for (var s = 0; s < subscriptions.length; s++) { + s !== i2 && subscriptions[s].unsubscribe(); + } + subscriptions = null; + } + subscriber.next(value); + }))); + }, "_loop_1"); + for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) { + _loop_1(i); + } + }; + } + __name(raceInit, "raceInit"); + exports.raceInit = raceInit; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/raceWith.js +var require_raceWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/raceWith.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.raceWith = void 0; + var race_1 = require_race(); + var lift_1 = require_lift(); + var identity_1 = require_identity(); + function raceWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return !otherSources.length ? identity_1.identity : lift_1.operate(function(source, subscriber) { + race_1.raceInit(__spreadArray([source], __read(otherSources)))(subscriber); + }); + } + __name(raceWith, "raceWith"); + exports.raceWith = raceWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/race.js +var require_race2 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/race.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.race = void 0; + var argsOrArgArray_1 = require_argsOrArgArray(); + var raceWith_1 = require_raceWith(); + function race() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return raceWith_1.raceWith.apply(void 0, __spreadArray([], __read(argsOrArgArray_1.argsOrArgArray(args)))); + } + __name(race, "race"); + exports.race = race; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/repeat.js +var require_repeat = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/repeat.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.repeat = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var timer_1 = require_timer(); + function repeat(countOrConfig) { + var _a; + var count = Infinity; + var delay; + if (countOrConfig != null) { + if (typeof countOrConfig === "object") { + _a = countOrConfig.count, count = _a === void 0 ? Infinity : _a, delay = countOrConfig.delay; + } else { + count = countOrConfig; + } + } + return count <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var soFar = 0; + var sourceSub; + var resubscribe = /* @__PURE__ */ __name(function() { + sourceSub === null || sourceSub === void 0 ? void 0 : sourceSub.unsubscribe(); + sourceSub = null; + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(soFar)); + var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + notifierSubscriber_1.unsubscribe(); + subscribeToSource(); + }); + notifier.subscribe(notifierSubscriber_1); + } else { + subscribeToSource(); + } + }, "resubscribe"); + var subscribeToSource = /* @__PURE__ */ __name(function() { + var syncUnsub = false; + sourceSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + if (++soFar < count) { + if (sourceSub) { + resubscribe(); + } else { + syncUnsub = true; + } + } else { + subscriber.complete(); + } + })); + if (syncUnsub) { + resubscribe(); + } + }, "subscribeToSource"); + subscribeToSource(); + }); + } + __name(repeat, "repeat"); + exports.repeat = repeat; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/repeatWhen.js +var require_repeatWhen = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/repeatWhen.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.repeatWhen = void 0; + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function repeatWhen(notifier) { + return lift_1.operate(function(source, subscriber) { + var innerSub; + var syncResub = false; + var completions$; + var isNotifierComplete = false; + var isMainComplete = false; + var checkComplete = /* @__PURE__ */ __name(function() { + return isMainComplete && isNotifierComplete && (subscriber.complete(), true); + }, "checkComplete"); + var getCompletionSubject = /* @__PURE__ */ __name(function() { + if (!completions$) { + completions$ = new Subject_1.Subject(); + innerFrom_1.innerFrom(notifier(completions$)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + if (innerSub) { + subscribeForRepeatWhen(); + } else { + syncResub = true; + } + }, function() { + isNotifierComplete = true; + checkComplete(); + })); + } + return completions$; + }, "getCompletionSubject"); + var subscribeForRepeatWhen = /* @__PURE__ */ __name(function() { + isMainComplete = false; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + isMainComplete = true; + !checkComplete() && getCompletionSubject().next(); + })); + if (syncResub) { + innerSub.unsubscribe(); + innerSub = null; + syncResub = false; + subscribeForRepeatWhen(); + } + }, "subscribeForRepeatWhen"); + subscribeForRepeatWhen(); + }); + } + __name(repeatWhen, "repeatWhen"); + exports.repeatWhen = repeatWhen; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/retry.js +var require_retry = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/retry.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.retry = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var identity_1 = require_identity(); + var timer_1 = require_timer(); + var innerFrom_1 = require_innerFrom(); + function retry(configOrCount) { + if (configOrCount === void 0) { + configOrCount = Infinity; + } + var config; + if (configOrCount && typeof configOrCount === "object") { + config = configOrCount; + } else { + config = { + count: configOrCount + }; + } + var _a = config.count, count = _a === void 0 ? Infinity : _a, delay = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === void 0 ? false : _b; + return count <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { + var soFar = 0; + var innerSub; + var subscribeForRetry = /* @__PURE__ */ __name(function() { + var syncUnsub = false; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (resetOnSuccess) { + soFar = 0; + } + subscriber.next(value); + }, void 0, function(err) { + if (soFar++ < count) { + var resub_1 = /* @__PURE__ */ __name(function() { + if (innerSub) { + innerSub.unsubscribe(); + innerSub = null; + subscribeForRetry(); + } else { + syncUnsub = true; + } + }, "resub_1"); + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(err, soFar)); + var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + notifierSubscriber_1.unsubscribe(); + resub_1(); + }, function() { + subscriber.complete(); + }); + notifier.subscribe(notifierSubscriber_1); + } else { + resub_1(); + } + } else { + subscriber.error(err); + } + })); + if (syncUnsub) { + innerSub.unsubscribe(); + innerSub = null; + subscribeForRetry(); + } + }, "subscribeForRetry"); + subscribeForRetry(); + }); + } + __name(retry, "retry"); + exports.retry = retry; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/retryWhen.js +var require_retryWhen = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/retryWhen.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.retryWhen = void 0; + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function retryWhen(notifier) { + return lift_1.operate(function(source, subscriber) { + var innerSub; + var syncResub = false; + var errors$; + var subscribeForRetryWhen = /* @__PURE__ */ __name(function() { + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, function(err) { + if (!errors$) { + errors$ = new Subject_1.Subject(); + innerFrom_1.innerFrom(notifier(errors$)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return innerSub ? subscribeForRetryWhen() : syncResub = true; + })); + } + if (errors$) { + errors$.next(err); + } + })); + if (syncResub) { + innerSub.unsubscribe(); + innerSub = null; + syncResub = false; + subscribeForRetryWhen(); + } + }, "subscribeForRetryWhen"); + subscribeForRetryWhen(); + }); + } + __name(retryWhen, "retryWhen"); + exports.retryWhen = retryWhen; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/sample.js +var require_sample = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/sample.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sample = void 0; + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function sample(notifier) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + lastValue = value; + })); + innerFrom_1.innerFrom(notifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }, noop_1.noop)); + }); + } + __name(sample, "sample"); + exports.sample = sample; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/interval.js +var require_interval = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/interval.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.interval = void 0; + var async_1 = require_async(); + var timer_1 = require_timer(); + function interval(period, scheduler) { + if (period === void 0) { + period = 0; + } + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + if (period < 0) { + period = 0; + } + return timer_1.timer(period, period, scheduler); + } + __name(interval, "interval"); + exports.interval = interval; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/sampleTime.js +var require_sampleTime = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/sampleTime.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sampleTime = void 0; + var async_1 = require_async(); + var sample_1 = require_sample(); + var interval_1 = require_interval(); + function sampleTime(period, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return sample_1.sample(interval_1.interval(period, scheduler)); + } + __name(sampleTime, "sampleTime"); + exports.sampleTime = sampleTime; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/scan.js +var require_scan = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/scan.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.scan = void 0; + var lift_1 = require_lift(); + var scanInternals_1 = require_scanInternals(); + function scan(accumulator, seed) { + return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, true)); + } + __name(scan, "scan"); + exports.scan = scan; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/sequenceEqual.js +var require_sequenceEqual = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/sequenceEqual.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sequenceEqual = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function sequenceEqual(compareTo, comparator) { + if (comparator === void 0) { + comparator = /* @__PURE__ */ __name(function(a, b) { + return a === b; + }, "comparator"); + } + return lift_1.operate(function(source, subscriber) { + var aState = createState(); + var bState = createState(); + var emit = /* @__PURE__ */ __name(function(isEqual) { + subscriber.next(isEqual); + subscriber.complete(); + }, "emit"); + var createSubscriber = /* @__PURE__ */ __name(function(selfState, otherState) { + var sequenceEqualSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(a) { + var buffer = otherState.buffer, complete = otherState.complete; + if (buffer.length === 0) { + complete ? emit(false) : selfState.buffer.push(a); + } else { + !comparator(a, buffer.shift()) && emit(false); + } + }, function() { + selfState.complete = true; + var complete = otherState.complete, buffer = otherState.buffer; + complete && emit(buffer.length === 0); + sequenceEqualSubscriber === null || sequenceEqualSubscriber === void 0 ? void 0 : sequenceEqualSubscriber.unsubscribe(); + }); + return sequenceEqualSubscriber; + }, "createSubscriber"); + source.subscribe(createSubscriber(aState, bState)); + innerFrom_1.innerFrom(compareTo).subscribe(createSubscriber(bState, aState)); + }); + } + __name(sequenceEqual, "sequenceEqual"); + exports.sequenceEqual = sequenceEqual; + function createState() { + return { + buffer: [], + complete: false + }; + } + __name(createState, "createState"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/share.js +var require_share = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/share.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.share = void 0; + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var Subscriber_1 = require_Subscriber(); + var lift_1 = require_lift(); + function share(options) { + if (options === void 0) { + options = {}; + } + var _a = options.connector, connector = _a === void 0 ? function() { + return new Subject_1.Subject(); + } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d; + return function(wrapperSource) { + var connection; + var resetConnection; + var subject; + var refCount = 0; + var hasCompleted = false; + var hasErrored = false; + var cancelReset = /* @__PURE__ */ __name(function() { + resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe(); + resetConnection = void 0; + }, "cancelReset"); + var reset = /* @__PURE__ */ __name(function() { + cancelReset(); + connection = subject = void 0; + hasCompleted = hasErrored = false; + }, "reset"); + var resetAndUnsubscribe = /* @__PURE__ */ __name(function() { + var conn = connection; + reset(); + conn === null || conn === void 0 ? void 0 : conn.unsubscribe(); + }, "resetAndUnsubscribe"); + return lift_1.operate(function(source, subscriber) { + refCount++; + if (!hasErrored && !hasCompleted) { + cancelReset(); + } + var dest = subject = subject !== null && subject !== void 0 ? subject : connector(); + subscriber.add(function() { + refCount--; + if (refCount === 0 && !hasErrored && !hasCompleted) { + resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero); + } + }); + dest.subscribe(subscriber); + if (!connection && refCount > 0) { + connection = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function(value) { + return dest.next(value); + }, "next"), + error: /* @__PURE__ */ __name(function(err) { + hasErrored = true; + cancelReset(); + resetConnection = handleReset(reset, resetOnError, err); + dest.error(err); + }, "error"), + complete: /* @__PURE__ */ __name(function() { + hasCompleted = true; + cancelReset(); + resetConnection = handleReset(reset, resetOnComplete); + dest.complete(); + }, "complete") + }); + innerFrom_1.innerFrom(source).subscribe(connection); + } + })(wrapperSource); + }; + } + __name(share, "share"); + exports.share = share; + function handleReset(reset, on) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + if (on === true) { + reset(); + return; + } + if (on === false) { + return; + } + var onSubscriber = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function() { + onSubscriber.unsubscribe(); + reset(); + }, "next") + }); + return innerFrom_1.innerFrom(on.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber); + } + __name(handleReset, "handleReset"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/shareReplay.js +var require_shareReplay = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/shareReplay.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.shareReplay = void 0; + var ReplaySubject_1 = require_ReplaySubject(); + var share_1 = require_share(); + function shareReplay(configOrBufferSize, windowTime, scheduler) { + var _a, _b, _c; + var bufferSize; + var refCount = false; + if (configOrBufferSize && typeof configOrBufferSize === "object") { + _a = configOrBufferSize.bufferSize, bufferSize = _a === void 0 ? Infinity : _a, _b = configOrBufferSize.windowTime, windowTime = _b === void 0 ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === void 0 ? false : _c, scheduler = configOrBufferSize.scheduler; + } else { + bufferSize = configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity; + } + return share_1.share({ + connector: /* @__PURE__ */ __name(function() { + return new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler); + }, "connector"), + resetOnError: true, + resetOnComplete: false, + resetOnRefCountZero: refCount + }); + } + __name(shareReplay, "shareReplay"); + exports.shareReplay = shareReplay; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/SequenceError.js +var require_SequenceError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/SequenceError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.SequenceError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports.SequenceError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function SequenceErrorImpl(message) { + _super(this); + this.name = "SequenceError"; + this.message = message; + }, "SequenceErrorImpl"); + }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/NotFoundError.js +var require_NotFoundError = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/NotFoundError.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.NotFoundError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports.NotFoundError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function NotFoundErrorImpl(message) { + _super(this); + this.name = "NotFoundError"; + this.message = message; + }, "NotFoundErrorImpl"); + }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/single.js +var require_single = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/single.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.single = void 0; + var EmptyError_1 = require_EmptyError(); + var SequenceError_1 = require_SequenceError(); + var NotFoundError_1 = require_NotFoundError(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function single(predicate) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var singleValue; + var seenValue = false; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + seenValue = true; + if (!predicate || predicate(value, index++, source)) { + hasValue && subscriber.error(new SequenceError_1.SequenceError("Too many matching values")); + hasValue = true; + singleValue = value; + } + }, function() { + if (hasValue) { + subscriber.next(singleValue); + subscriber.complete(); + } else { + subscriber.error(seenValue ? new NotFoundError_1.NotFoundError("No matching values") : new EmptyError_1.EmptyError()); + } + })); + }); + } + __name(single, "single"); + exports.single = single; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skip.js +var require_skip = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skip.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.skip = void 0; + var filter_1 = require_filter2(); + function skip(count) { + return filter_1.filter(function(_, index) { + return count <= index; + }); + } + __name(skip, "skip"); + exports.skip = skip; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skipLast.js +var require_skipLast = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skipLast.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.skipLast = void 0; + var identity_1 = require_identity(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function skipLast(skipCount) { + return skipCount <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { + var ring = new Array(skipCount); + var seen = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var valueIndex = seen++; + if (valueIndex < skipCount) { + ring[valueIndex] = value; + } else { + var index = valueIndex % skipCount; + var oldValue = ring[index]; + ring[index] = value; + subscriber.next(oldValue); + } + })); + return function() { + ring = null; + }; + }); + } + __name(skipLast, "skipLast"); + exports.skipLast = skipLast; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skipUntil.js +var require_skipUntil = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skipUntil.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.skipUntil = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var noop_1 = require_noop(); + function skipUntil(notifier) { + return lift_1.operate(function(source, subscriber) { + var taking = false; + var skipSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + skipSubscriber === null || skipSubscriber === void 0 ? void 0 : skipSubscriber.unsubscribe(); + taking = true; + }, noop_1.noop); + innerFrom_1.innerFrom(notifier).subscribe(skipSubscriber); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return taking && subscriber.next(value); + })); + }); + } + __name(skipUntil, "skipUntil"); + exports.skipUntil = skipUntil; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skipWhile.js +var require_skipWhile = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/skipWhile.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.skipWhile = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function skipWhile(predicate) { + return lift_1.operate(function(source, subscriber) { + var taking = false; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return (taking || (taking = !predicate(value, index++))) && subscriber.next(value); + })); + }); + } + __name(skipWhile, "skipWhile"); + exports.skipWhile = skipWhile; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/startWith.js +var require_startWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/startWith.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.startWith = void 0; + var concat_1 = require_concat3(); + var args_1 = require_args(); + var lift_1 = require_lift(); + function startWith() { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(values); + return lift_1.operate(function(source, subscriber) { + (scheduler ? concat_1.concat(values, source, scheduler) : concat_1.concat(values, source)).subscribe(subscriber); + }); + } + __name(startWith, "startWith"); + exports.startWith = startWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchMap.js +var require_switchMap = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchMap.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.switchMap = void 0; + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function switchMap(project, resultSelector) { + return lift_1.operate(function(source, subscriber) { + var innerSubscriber = null; + var index = 0; + var isComplete = false; + var checkComplete = /* @__PURE__ */ __name(function() { + return isComplete && !innerSubscriber && subscriber.complete(); + }, "checkComplete"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe(); + var innerIndex = 0; + var outerIndex = index++; + innerFrom_1.innerFrom(project(value, outerIndex)).subscribe(innerSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(innerValue) { + return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); + }, function() { + innerSubscriber = null; + checkComplete(); + })); + }, function() { + isComplete = true; + checkComplete(); + })); + }); + } + __name(switchMap, "switchMap"); + exports.switchMap = switchMap; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchAll.js +var require_switchAll = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchAll.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.switchAll = void 0; + var switchMap_1 = require_switchMap(); + var identity_1 = require_identity(); + function switchAll() { + return switchMap_1.switchMap(identity_1.identity); + } + __name(switchAll, "switchAll"); + exports.switchAll = switchAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchMapTo.js +var require_switchMapTo = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchMapTo.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.switchMapTo = void 0; + var switchMap_1 = require_switchMap(); + var isFunction_1 = require_isFunction(); + function switchMapTo(innerObservable, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? switchMap_1.switchMap(function() { + return innerObservable; + }, resultSelector) : switchMap_1.switchMap(function() { + return innerObservable; + }); + } + __name(switchMapTo, "switchMapTo"); + exports.switchMapTo = switchMapTo; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchScan.js +var require_switchScan = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/switchScan.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.switchScan = void 0; + var switchMap_1 = require_switchMap(); + var lift_1 = require_lift(); + function switchScan(accumulator, seed) { + return lift_1.operate(function(source, subscriber) { + var state = seed; + switchMap_1.switchMap(function(value, index) { + return accumulator(state, value, index); + }, function(_, innerValue) { + return state = innerValue, innerValue; + })(source).subscribe(subscriber); + return function() { + state = null; + }; + }); + } + __name(switchScan, "switchScan"); + exports.switchScan = switchScan; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js +var require_takeUntil = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.takeUntil = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var noop_1 = require_noop(); + function takeUntil(notifier) { + return lift_1.operate(function(source, subscriber) { + innerFrom_1.innerFrom(notifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return subscriber.complete(); + }, noop_1.noop)); + !subscriber.closed && source.subscribe(subscriber); + }); + } + __name(takeUntil, "takeUntil"); + exports.takeUntil = takeUntil; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/takeWhile.js +var require_takeWhile = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/takeWhile.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.takeWhile = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function takeWhile(predicate, inclusive) { + if (inclusive === void 0) { + inclusive = false; + } + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var result = predicate(value, index++); + (result || inclusive) && subscriber.next(value); + !result && subscriber.complete(); + })); + }); + } + __name(takeWhile, "takeWhile"); + exports.takeWhile = takeWhile; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/tap.js +var require_tap = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/tap.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.tap = void 0; + var isFunction_1 = require_isFunction(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var identity_1 = require_identity(); + function tap(observerOrNext, error, complete) { + var tapObserver = isFunction_1.isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext; + return tapObserver ? lift_1.operate(function(source, subscriber) { + var _a; + (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver); + var isUnsub = true; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var _a2; + (_a2 = tapObserver.next) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, value); + subscriber.next(value); + }, function() { + var _a2; + isUnsub = false; + (_a2 = tapObserver.complete) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); + subscriber.complete(); + }, function(err) { + var _a2; + isUnsub = false; + (_a2 = tapObserver.error) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, err); + subscriber.error(err); + }, function() { + var _a2, _b; + if (isUnsub) { + (_a2 = tapObserver.unsubscribe) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); + } + (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver); + })); + }) : identity_1.identity; + } + __name(tap, "tap"); + exports.tap = tap; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/throttle.js +var require_throttle = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/throttle.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.throttle = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function throttle(durationSelector, config) { + return lift_1.operate(function(source, subscriber) { + var _a = config !== null && config !== void 0 ? config : {}, _b = _a.leading, leading = _b === void 0 ? true : _b, _c = _a.trailing, trailing = _c === void 0 ? false : _c; + var hasValue = false; + var sendValue = null; + var throttled = null; + var isComplete = false; + var endThrottling = /* @__PURE__ */ __name(function() { + throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe(); + throttled = null; + if (trailing) { + send(); + isComplete && subscriber.complete(); + } + }, "endThrottling"); + var cleanupThrottling = /* @__PURE__ */ __name(function() { + throttled = null; + isComplete && subscriber.complete(); + }, "cleanupThrottling"); + var startThrottle = /* @__PURE__ */ __name(function(value) { + return throttled = innerFrom_1.innerFrom(durationSelector(value)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)); + }, "startThrottle"); + var send = /* @__PURE__ */ __name(function() { + if (hasValue) { + hasValue = false; + var value = sendValue; + sendValue = null; + subscriber.next(value); + !isComplete && startThrottle(value); + } + }, "send"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + sendValue = value; + !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value)); + }, function() { + isComplete = true; + !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete(); + })); + }); + } + __name(throttle, "throttle"); + exports.throttle = throttle; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/throttleTime.js +var require_throttleTime = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/throttleTime.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.throttleTime = void 0; + var async_1 = require_async(); + var throttle_1 = require_throttle(); + var timer_1 = require_timer(); + function throttleTime(duration, scheduler, config) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + var duration$ = timer_1.timer(duration, scheduler); + return throttle_1.throttle(function() { + return duration$; + }, config); + } + __name(throttleTime, "throttleTime"); + exports.throttleTime = throttleTime; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timeInterval.js +var require_timeInterval = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timeInterval.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.TimeInterval = exports.timeInterval = void 0; + var async_1 = require_async(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function timeInterval(scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return lift_1.operate(function(source, subscriber) { + var last = scheduler.now(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var now = scheduler.now(); + var interval = now - last; + last = now; + subscriber.next(new TimeInterval(value, interval)); + })); + }); + } + __name(timeInterval, "timeInterval"); + exports.timeInterval = timeInterval; + var TimeInterval = /* @__PURE__ */ (function() { + function TimeInterval2(value, interval) { + this.value = value; + this.interval = interval; + } + __name(TimeInterval2, "TimeInterval"); + return TimeInterval2; + })(); + exports.TimeInterval = TimeInterval; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timeout.js +var require_timeout = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timeout.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.timeout = exports.TimeoutError = void 0; + var async_1 = require_async(); + var isDate_1 = require_isDate(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var createErrorClass_1 = require_createErrorClass(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var executeSchedule_1 = require_executeSchedule(); + exports.TimeoutError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function TimeoutErrorImpl(info) { + if (info === void 0) { + info = null; + } + _super(this); + this.message = "Timeout has occurred"; + this.name = "TimeoutError"; + this.info = info; + }, "TimeoutErrorImpl"); + }); + function timeout(config, schedulerArg) { + var _a = isDate_1.isValidDate(config) ? { first: config } : typeof config === "number" ? { each: config } : config, first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : async_1.asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d; + if (first == null && each == null) { + throw new TypeError("No timeout provided."); + } + return lift_1.operate(function(source, subscriber) { + var originalSourceSubscription; + var timerSubscription; + var lastValue = null; + var seen = 0; + var startTimer = /* @__PURE__ */ __name(function(delay) { + timerSubscription = executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + try { + originalSourceSubscription.unsubscribe(); + innerFrom_1.innerFrom(_with({ + meta, + lastValue, + seen + })).subscribe(subscriber); + } catch (err) { + subscriber.error(err); + } + }, delay); + }, "startTimer"); + originalSourceSubscription = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); + seen++; + subscriber.next(lastValue = value); + each > 0 && startTimer(each); + }, void 0, void 0, function() { + if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) { + timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); + } + lastValue = null; + })); + !seen && startTimer(first != null ? typeof first === "number" ? first : +first - scheduler.now() : each); + }); + } + __name(timeout, "timeout"); + exports.timeout = timeout; + function timeoutErrorFactory(info) { + throw new exports.TimeoutError(info); + } + __name(timeoutErrorFactory, "timeoutErrorFactory"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timeoutWith.js +var require_timeoutWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timeoutWith.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.timeoutWith = void 0; + var async_1 = require_async(); + var isDate_1 = require_isDate(); + var timeout_1 = require_timeout(); + function timeoutWith(due, withObservable, scheduler) { + var first; + var each; + var _with; + scheduler = scheduler !== null && scheduler !== void 0 ? scheduler : async_1.async; + if (isDate_1.isValidDate(due)) { + first = due; + } else if (typeof due === "number") { + each = due; + } + if (withObservable) { + _with = /* @__PURE__ */ __name(function() { + return withObservable; + }, "_with"); + } else { + throw new TypeError("No observable provided to switch to"); + } + if (first == null && each == null) { + throw new TypeError("No timeout provided."); + } + return timeout_1.timeout({ + first, + each, + scheduler, + with: _with + }); + } + __name(timeoutWith, "timeoutWith"); + exports.timeoutWith = timeoutWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timestamp.js +var require_timestamp = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/timestamp.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.timestamp = void 0; + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var map_1 = require_map2(); + function timestamp(timestampProvider) { + if (timestampProvider === void 0) { + timestampProvider = dateTimestampProvider_1.dateTimestampProvider; + } + return map_1.map(function(value) { + return { value, timestamp: timestampProvider.now() }; + }); + } + __name(timestamp, "timestamp"); + exports.timestamp = timestamp; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/window.js +var require_window = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/window.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.window = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var innerFrom_1 = require_innerFrom(); + function window(windowBoundaries) { + return lift_1.operate(function(source, subscriber) { + var windowSubject = new Subject_1.Subject(); + subscriber.next(windowSubject.asObservable()); + var errorHandler = /* @__PURE__ */ __name(function(err) { + windowSubject.error(err); + subscriber.error(err); + }, "errorHandler"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.next(value); + }, function() { + windowSubject.complete(); + subscriber.complete(); + }, errorHandler)); + innerFrom_1.innerFrom(windowBoundaries).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + windowSubject.complete(); + subscriber.next(windowSubject = new Subject_1.Subject()); + }, noop_1.noop, errorHandler)); + return function() { + windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.unsubscribe(); + windowSubject = null; + }; + }); + } + __name(window, "window"); + exports.window = window; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowCount.js +var require_windowCount = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowCount.js"(exports) { + "use strict"; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.windowCount = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { + startWindowEvery = 0; + } + var startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize; + return lift_1.operate(function(source, subscriber) { + var windows = [new Subject_1.Subject()]; + var starts = []; + var count = 0; + subscriber.next(windows[0].asObservable()); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + try { + for (var windows_1 = __values(windows), windows_1_1 = windows_1.next(); !windows_1_1.done; windows_1_1 = windows_1.next()) { + var window_1 = windows_1_1.value; + window_1.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) _a.call(windows_1); + } finally { + if (e_1) throw e_1.error; + } + } + var c = count - windowSize + 1; + if (c >= 0 && c % startEvery === 0) { + windows.shift().complete(); + } + if (++count % startEvery === 0) { + var window_2 = new Subject_1.Subject(); + windows.push(window_2); + subscriber.next(window_2.asObservable()); + } + }, function() { + while (windows.length > 0) { + windows.shift().complete(); + } + subscriber.complete(); + }, function(err) { + while (windows.length > 0) { + windows.shift().error(err); + } + subscriber.error(err); + }, function() { + starts = null; + windows = null; + })); + }); + } + __name(windowCount, "windowCount"); + exports.windowCount = windowCount; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowTime.js +var require_windowTime = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowTime.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.windowTime = void 0; + var Subject_1 = require_Subject(); + var async_1 = require_async(); + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + var args_1 = require_args(); + var executeSchedule_1 = require_executeSchedule(); + function windowTime(windowTimeSpan) { + var _a, _b; + var otherArgs = []; + for (var _i = 1; _i < arguments.length; _i++) { + otherArgs[_i - 1] = arguments[_i]; + } + var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler; + var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null; + var maxWindowSize = otherArgs[1] || Infinity; + return lift_1.operate(function(source, subscriber) { + var windowRecords = []; + var restartOnClose = false; + var closeWindow = /* @__PURE__ */ __name(function(record) { + var window = record.window, subs = record.subs; + window.complete(); + subs.unsubscribe(); + arrRemove_1.arrRemove(windowRecords, record); + restartOnClose && startWindow(); + }, "closeWindow"); + var startWindow = /* @__PURE__ */ __name(function() { + if (windowRecords) { + var subs = new Subscription_1.Subscription(); + subscriber.add(subs); + var window_1 = new Subject_1.Subject(); + var record_1 = { + window: window_1, + subs, + seen: 0 + }; + windowRecords.push(record_1); + subscriber.next(window_1.asObservable()); + executeSchedule_1.executeSchedule(subs, scheduler, function() { + return closeWindow(record_1); + }, windowTimeSpan); + } + }, "startWindow"); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + executeSchedule_1.executeSchedule(subscriber, scheduler, startWindow, windowCreationInterval, true); + } else { + restartOnClose = true; + } + startWindow(); + var loop = /* @__PURE__ */ __name(function(cb) { + return windowRecords.slice().forEach(cb); + }, "loop"); + var terminate = /* @__PURE__ */ __name(function(cb) { + loop(function(_a2) { + var window = _a2.window; + return cb(window); + }); + cb(subscriber); + subscriber.unsubscribe(); + }, "terminate"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + loop(function(record) { + record.window.next(value); + maxWindowSize <= ++record.seen && closeWindow(record); + }); + }, function() { + return terminate(function(consumer) { + return consumer.complete(); + }); + }, function(err) { + return terminate(function(consumer) { + return consumer.error(err); + }); + })); + return function() { + windowRecords = null; + }; + }); + } + __name(windowTime, "windowTime"); + exports.windowTime = windowTime; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowToggle.js +var require_windowToggle = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowToggle.js"(exports) { + "use strict"; + var __values = exports && exports.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.windowToggle = void 0; + var Subject_1 = require_Subject(); + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var arrRemove_1 = require_arrRemove(); + function windowToggle(openings, closingSelector) { + return lift_1.operate(function(source, subscriber) { + var windows = []; + var handleError = /* @__PURE__ */ __name(function(err) { + while (0 < windows.length) { + windows.shift().error(err); + } + subscriber.error(err); + }, "handleError"); + innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(openValue) { + var window = new Subject_1.Subject(); + windows.push(window); + var closingSubscription = new Subscription_1.Subscription(); + var closeWindow = /* @__PURE__ */ __name(function() { + arrRemove_1.arrRemove(windows, window); + window.complete(); + closingSubscription.unsubscribe(); + }, "closeWindow"); + var closingNotifier; + try { + closingNotifier = innerFrom_1.innerFrom(closingSelector(openValue)); + } catch (err) { + handleError(err); + return; + } + subscriber.next(window.asObservable()); + closingSubscription.add(closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, closeWindow, noop_1.noop, handleError))); + }, noop_1.noop)); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + var windowsCopy = windows.slice(); + try { + for (var windowsCopy_1 = __values(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next(); !windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) { + var window_1 = windowsCopy_1_1.value; + window_1.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) _a.call(windowsCopy_1); + } finally { + if (e_1) throw e_1.error; + } + } + }, function() { + while (0 < windows.length) { + windows.shift().complete(); + } + subscriber.complete(); + }, handleError, function() { + while (0 < windows.length) { + windows.shift().unsubscribe(); + } + })); + }); + } + __name(windowToggle, "windowToggle"); + exports.windowToggle = windowToggle; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowWhen.js +var require_windowWhen = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/windowWhen.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.windowWhen = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function windowWhen(closingSelector) { + return lift_1.operate(function(source, subscriber) { + var window; + var closingSubscriber; + var handleError = /* @__PURE__ */ __name(function(err) { + window.error(err); + subscriber.error(err); + }, "handleError"); + var openWindow = /* @__PURE__ */ __name(function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + window === null || window === void 0 ? void 0 : window.complete(); + window = new Subject_1.Subject(); + subscriber.next(window.asObservable()); + var closingNotifier; + try { + closingNotifier = innerFrom_1.innerFrom(closingSelector()); + } catch (err) { + handleError(err); + return; + } + closingNotifier.subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openWindow, openWindow, handleError)); + }, "openWindow"); + openWindow(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return window.next(value); + }, function() { + window.complete(); + subscriber.complete(); + }, handleError, function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + window = null; + })); + }); + } + __name(windowWhen, "windowWhen"); + exports.windowWhen = windowWhen; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/withLatestFrom.js +var require_withLatestFrom = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/withLatestFrom.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.withLatestFrom = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var identity_1 = require_identity(); + var noop_1 = require_noop(); + var args_1 = require_args(); + function withLatestFrom() { + var inputs = []; + for (var _i = 0; _i < arguments.length; _i++) { + inputs[_i] = arguments[_i]; + } + var project = args_1.popResultSelector(inputs); + return lift_1.operate(function(source, subscriber) { + var len = inputs.length; + var otherValues = new Array(len); + var hasValue = inputs.map(function() { + return false; + }); + var ready = false; + var _loop_1 = /* @__PURE__ */ __name(function(i2) { + innerFrom_1.innerFrom(inputs[i2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + otherValues[i2] = value; + if (!ready && !hasValue[i2]) { + hasValue[i2] = true; + (ready = hasValue.every(identity_1.identity)) && (hasValue = null); + } + }, noop_1.noop)); + }, "_loop_1"); + for (var i = 0; i < len; i++) { + _loop_1(i); + } + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (ready) { + var values = __spreadArray([value], __read(otherValues)); + subscriber.next(project ? project.apply(void 0, __spreadArray([], __read(values))) : values); + } + })); + }); + } + __name(withLatestFrom, "withLatestFrom"); + exports.withLatestFrom = withLatestFrom; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/zip.js +var require_zip2 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/zip.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.zip = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var empty_1 = require_empty(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var args_1 = require_args(); + function zip() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + var sources = argsOrArgArray_1.argsOrArgArray(args); + return sources.length ? new Observable_1.Observable(function(subscriber) { + var buffers = sources.map(function() { + return []; + }); + var completed = sources.map(function() { + return false; + }); + subscriber.add(function() { + buffers = completed = null; + }); + var _loop_1 = /* @__PURE__ */ __name(function(sourceIndex2) { + innerFrom_1.innerFrom(sources[sourceIndex2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + buffers[sourceIndex2].push(value); + if (buffers.every(function(buffer) { + return buffer.length; + })) { + var result = buffers.map(function(buffer) { + return buffer.shift(); + }); + subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray([], __read(result))) : result); + if (buffers.some(function(buffer, i) { + return !buffer.length && completed[i]; + })) { + subscriber.complete(); + } + } + }, function() { + completed[sourceIndex2] = true; + !buffers[sourceIndex2].length && subscriber.complete(); + })); + }, "_loop_1"); + for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) { + _loop_1(sourceIndex); + } + return function() { + buffers = completed = null; + }; + }) : empty_1.EMPTY; + } + __name(zip, "zip"); + exports.zip = zip; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/zip.js +var require_zip3 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/zip.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.zip = void 0; + var zip_1 = require_zip2(); + var lift_1 = require_lift(); + function zip() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + return lift_1.operate(function(source, subscriber) { + zip_1.zip.apply(void 0, __spreadArray([source], __read(sources))).subscribe(subscriber); + }); + } + __name(zip, "zip"); + exports.zip = zip; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/zipAll.js +var require_zipAll = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/zipAll.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.zipAll = void 0; + var zip_1 = require_zip2(); + var joinAllInternals_1 = require_joinAllInternals(); + function zipAll(project) { + return joinAllInternals_1.joinAllInternals(zip_1.zip, project); + } + __name(zipAll, "zipAll"); + exports.zipAll = zipAll; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/zipWith.js +var require_zipWith = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/operators/zipWith.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.zipWith = void 0; + var zip_1 = require_zip3(); + function zipWith() { + var otherInputs = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherInputs[_i] = arguments[_i]; + } + return zip_1.zip.apply(void 0, __spreadArray([], __read(otherInputs))); + } + __name(zipWith, "zipWith"); + exports.zipWith = zipWith; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/operators/index.js +var require_operators = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/operators/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.mergeAll = exports.merge = exports.max = exports.materialize = exports.mapTo = exports.map = exports.last = exports.isEmpty = exports.ignoreElements = exports.groupBy = exports.first = exports.findIndex = exports.find = exports.finalize = exports.filter = exports.expand = exports.exhaustMap = exports.exhaustAll = exports.exhaust = exports.every = exports.endWith = exports.elementAt = exports.distinctUntilKeyChanged = exports.distinctUntilChanged = exports.distinct = exports.dematerialize = exports.delayWhen = exports.delay = exports.defaultIfEmpty = exports.debounceTime = exports.debounce = exports.count = exports.connect = exports.concatWith = exports.concatMapTo = exports.concatMap = exports.concatAll = exports.concat = exports.combineLatestWith = exports.combineLatest = exports.combineLatestAll = exports.combineAll = exports.catchError = exports.bufferWhen = exports.bufferToggle = exports.bufferTime = exports.bufferCount = exports.buffer = exports.auditTime = exports.audit = void 0; + exports.timeInterval = exports.throwIfEmpty = exports.throttleTime = exports.throttle = exports.tap = exports.takeWhile = exports.takeUntil = exports.takeLast = exports.take = exports.switchScan = exports.switchMapTo = exports.switchMap = exports.switchAll = exports.subscribeOn = exports.startWith = exports.skipWhile = exports.skipUntil = exports.skipLast = exports.skip = exports.single = exports.shareReplay = exports.share = exports.sequenceEqual = exports.scan = exports.sampleTime = exports.sample = exports.refCount = exports.retryWhen = exports.retry = exports.repeatWhen = exports.repeat = exports.reduce = exports.raceWith = exports.race = exports.publishReplay = exports.publishLast = exports.publishBehavior = exports.publish = exports.pluck = exports.partition = exports.pairwise = exports.onErrorResumeNext = exports.observeOn = exports.multicast = exports.min = exports.mergeWith = exports.mergeScan = exports.mergeMapTo = exports.mergeMap = exports.flatMap = void 0; + exports.zipWith = exports.zipAll = exports.zip = exports.withLatestFrom = exports.windowWhen = exports.windowToggle = exports.windowTime = exports.windowCount = exports.window = exports.toArray = exports.timestamp = exports.timeoutWith = exports.timeout = void 0; + var audit_1 = require_audit(); + Object.defineProperty(exports, "audit", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return audit_1.audit; + }, "get") }); + var auditTime_1 = require_auditTime(); + Object.defineProperty(exports, "auditTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return auditTime_1.auditTime; + }, "get") }); + var buffer_1 = require_buffer(); + Object.defineProperty(exports, "buffer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return buffer_1.buffer; + }, "get") }); + var bufferCount_1 = require_bufferCount(); + Object.defineProperty(exports, "bufferCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferCount_1.bufferCount; + }, "get") }); + var bufferTime_1 = require_bufferTime(); + Object.defineProperty(exports, "bufferTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferTime_1.bufferTime; + }, "get") }); + var bufferToggle_1 = require_bufferToggle(); + Object.defineProperty(exports, "bufferToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferToggle_1.bufferToggle; + }, "get") }); + var bufferWhen_1 = require_bufferWhen(); + Object.defineProperty(exports, "bufferWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferWhen_1.bufferWhen; + }, "get") }); + var catchError_1 = require_catchError(); + Object.defineProperty(exports, "catchError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return catchError_1.catchError; + }, "get") }); + var combineAll_1 = require_combineAll(); + Object.defineProperty(exports, "combineAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineAll_1.combineAll; + }, "get") }); + var combineLatestAll_1 = require_combineLatestAll(); + Object.defineProperty(exports, "combineLatestAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestAll_1.combineLatestAll; + }, "get") }); + var combineLatest_1 = require_combineLatest2(); + Object.defineProperty(exports, "combineLatest", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatest_1.combineLatest; + }, "get") }); + var combineLatestWith_1 = require_combineLatestWith(); + Object.defineProperty(exports, "combineLatestWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestWith_1.combineLatestWith; + }, "get") }); + var concat_1 = require_concat2(); + Object.defineProperty(exports, "concat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concat_1.concat; + }, "get") }); + var concatAll_1 = require_concatAll(); + Object.defineProperty(exports, "concatAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatAll_1.concatAll; + }, "get") }); + var concatMap_1 = require_concatMap(); + Object.defineProperty(exports, "concatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMap_1.concatMap; + }, "get") }); + var concatMapTo_1 = require_concatMapTo(); + Object.defineProperty(exports, "concatMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMapTo_1.concatMapTo; + }, "get") }); + var concatWith_1 = require_concatWith(); + Object.defineProperty(exports, "concatWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatWith_1.concatWith; + }, "get") }); + var connect_1 = require_connect(); + Object.defineProperty(exports, "connect", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return connect_1.connect; + }, "get") }); + var count_1 = require_count(); + Object.defineProperty(exports, "count", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return count_1.count; + }, "get") }); + var debounce_1 = require_debounce(); + Object.defineProperty(exports, "debounce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounce_1.debounce; + }, "get") }); + var debounceTime_1 = require_debounceTime(); + Object.defineProperty(exports, "debounceTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounceTime_1.debounceTime; + }, "get") }); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + Object.defineProperty(exports, "defaultIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return defaultIfEmpty_1.defaultIfEmpty; + }, "get") }); + var delay_1 = require_delay(); + Object.defineProperty(exports, "delay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delay_1.delay; + }, "get") }); + var delayWhen_1 = require_delayWhen(); + Object.defineProperty(exports, "delayWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delayWhen_1.delayWhen; + }, "get") }); + var dematerialize_1 = require_dematerialize(); + Object.defineProperty(exports, "dematerialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return dematerialize_1.dematerialize; + }, "get") }); + var distinct_1 = require_distinct(); + Object.defineProperty(exports, "distinct", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinct_1.distinct; + }, "get") }); + var distinctUntilChanged_1 = require_distinctUntilChanged(); + Object.defineProperty(exports, "distinctUntilChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilChanged_1.distinctUntilChanged; + }, "get") }); + var distinctUntilKeyChanged_1 = require_distinctUntilKeyChanged(); + Object.defineProperty(exports, "distinctUntilKeyChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilKeyChanged_1.distinctUntilKeyChanged; + }, "get") }); + var elementAt_1 = require_elementAt(); + Object.defineProperty(exports, "elementAt", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return elementAt_1.elementAt; + }, "get") }); + var endWith_1 = require_endWith(); + Object.defineProperty(exports, "endWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return endWith_1.endWith; + }, "get") }); + var every_1 = require_every(); + Object.defineProperty(exports, "every", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return every_1.every; + }, "get") }); + var exhaust_1 = require_exhaust(); + Object.defineProperty(exports, "exhaust", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaust_1.exhaust; + }, "get") }); + var exhaustAll_1 = require_exhaustAll(); + Object.defineProperty(exports, "exhaustAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustAll_1.exhaustAll; + }, "get") }); + var exhaustMap_1 = require_exhaustMap(); + Object.defineProperty(exports, "exhaustMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustMap_1.exhaustMap; + }, "get") }); + var expand_1 = require_expand(); + Object.defineProperty(exports, "expand", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return expand_1.expand; + }, "get") }); + var filter_1 = require_filter2(); + Object.defineProperty(exports, "filter", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return filter_1.filter; + }, "get") }); + var finalize_1 = require_finalize(); + Object.defineProperty(exports, "finalize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return finalize_1.finalize; + }, "get") }); + var find_1 = require_find(); + Object.defineProperty(exports, "find", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return find_1.find; + }, "get") }); + var findIndex_1 = require_findIndex(); + Object.defineProperty(exports, "findIndex", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return findIndex_1.findIndex; + }, "get") }); + var first_1 = require_first(); + Object.defineProperty(exports, "first", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return first_1.first; + }, "get") }); + var groupBy_1 = require_groupBy(); + Object.defineProperty(exports, "groupBy", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return groupBy_1.groupBy; + }, "get") }); + var ignoreElements_1 = require_ignoreElements(); + Object.defineProperty(exports, "ignoreElements", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ignoreElements_1.ignoreElements; + }, "get") }); + var isEmpty_1 = require_isEmpty(); + Object.defineProperty(exports, "isEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return isEmpty_1.isEmpty; + }, "get") }); + var last_1 = require_last(); + Object.defineProperty(exports, "last", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return last_1.last; + }, "get") }); + var map_1 = require_map2(); + Object.defineProperty(exports, "map", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return map_1.map; + }, "get") }); + var mapTo_1 = require_mapTo(); + Object.defineProperty(exports, "mapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mapTo_1.mapTo; + }, "get") }); + var materialize_1 = require_materialize(); + Object.defineProperty(exports, "materialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return materialize_1.materialize; + }, "get") }); + var max_1 = require_max(); + Object.defineProperty(exports, "max", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return max_1.max; + }, "get") }); + var merge_1 = require_merge(); + Object.defineProperty(exports, "merge", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return merge_1.merge; + }, "get") }); + var mergeAll_1 = require_mergeAll(); + Object.defineProperty(exports, "mergeAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeAll_1.mergeAll; + }, "get") }); + var flatMap_1 = require_flatMap(); + Object.defineProperty(exports, "flatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return flatMap_1.flatMap; + }, "get") }); + var mergeMap_1 = require_mergeMap(); + Object.defineProperty(exports, "mergeMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMap_1.mergeMap; + }, "get") }); + var mergeMapTo_1 = require_mergeMapTo(); + Object.defineProperty(exports, "mergeMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMapTo_1.mergeMapTo; + }, "get") }); + var mergeScan_1 = require_mergeScan(); + Object.defineProperty(exports, "mergeScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeScan_1.mergeScan; + }, "get") }); + var mergeWith_1 = require_mergeWith(); + Object.defineProperty(exports, "mergeWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeWith_1.mergeWith; + }, "get") }); + var min_1 = require_min(); + Object.defineProperty(exports, "min", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return min_1.min; + }, "get") }); + var multicast_1 = require_multicast(); + Object.defineProperty(exports, "multicast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return multicast_1.multicast; + }, "get") }); + var observeOn_1 = require_observeOn(); + Object.defineProperty(exports, "observeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return observeOn_1.observeOn; + }, "get") }); + var onErrorResumeNextWith_1 = require_onErrorResumeNextWith(); + Object.defineProperty(exports, "onErrorResumeNext", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return onErrorResumeNextWith_1.onErrorResumeNext; + }, "get") }); + var pairwise_1 = require_pairwise(); + Object.defineProperty(exports, "pairwise", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pairwise_1.pairwise; + }, "get") }); + var partition_1 = require_partition(); + Object.defineProperty(exports, "partition", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return partition_1.partition; + }, "get") }); + var pluck_1 = require_pluck(); + Object.defineProperty(exports, "pluck", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pluck_1.pluck; + }, "get") }); + var publish_1 = require_publish(); + Object.defineProperty(exports, "publish", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publish_1.publish; + }, "get") }); + var publishBehavior_1 = require_publishBehavior(); + Object.defineProperty(exports, "publishBehavior", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishBehavior_1.publishBehavior; + }, "get") }); + var publishLast_1 = require_publishLast(); + Object.defineProperty(exports, "publishLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishLast_1.publishLast; + }, "get") }); + var publishReplay_1 = require_publishReplay(); + Object.defineProperty(exports, "publishReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishReplay_1.publishReplay; + }, "get") }); + var race_1 = require_race2(); + Object.defineProperty(exports, "race", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return race_1.race; + }, "get") }); + var raceWith_1 = require_raceWith(); + Object.defineProperty(exports, "raceWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return raceWith_1.raceWith; + }, "get") }); + var reduce_1 = require_reduce(); + Object.defineProperty(exports, "reduce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return reduce_1.reduce; + }, "get") }); + var repeat_1 = require_repeat(); + Object.defineProperty(exports, "repeat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeat_1.repeat; + }, "get") }); + var repeatWhen_1 = require_repeatWhen(); + Object.defineProperty(exports, "repeatWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeatWhen_1.repeatWhen; + }, "get") }); + var retry_1 = require_retry(); + Object.defineProperty(exports, "retry", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retry_1.retry; + }, "get") }); + var retryWhen_1 = require_retryWhen(); + Object.defineProperty(exports, "retryWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retryWhen_1.retryWhen; + }, "get") }); + var refCount_1 = require_refCount(); + Object.defineProperty(exports, "refCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return refCount_1.refCount; + }, "get") }); + var sample_1 = require_sample(); + Object.defineProperty(exports, "sample", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sample_1.sample; + }, "get") }); + var sampleTime_1 = require_sampleTime(); + Object.defineProperty(exports, "sampleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sampleTime_1.sampleTime; + }, "get") }); + var scan_1 = require_scan(); + Object.defineProperty(exports, "scan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return scan_1.scan; + }, "get") }); + var sequenceEqual_1 = require_sequenceEqual(); + Object.defineProperty(exports, "sequenceEqual", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sequenceEqual_1.sequenceEqual; + }, "get") }); + var share_1 = require_share(); + Object.defineProperty(exports, "share", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return share_1.share; + }, "get") }); + var shareReplay_1 = require_shareReplay(); + Object.defineProperty(exports, "shareReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return shareReplay_1.shareReplay; + }, "get") }); + var single_1 = require_single(); + Object.defineProperty(exports, "single", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return single_1.single; + }, "get") }); + var skip_1 = require_skip(); + Object.defineProperty(exports, "skip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skip_1.skip; + }, "get") }); + var skipLast_1 = require_skipLast(); + Object.defineProperty(exports, "skipLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipLast_1.skipLast; + }, "get") }); + var skipUntil_1 = require_skipUntil(); + Object.defineProperty(exports, "skipUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipUntil_1.skipUntil; + }, "get") }); + var skipWhile_1 = require_skipWhile(); + Object.defineProperty(exports, "skipWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipWhile_1.skipWhile; + }, "get") }); + var startWith_1 = require_startWith(); + Object.defineProperty(exports, "startWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return startWith_1.startWith; + }, "get") }); + var subscribeOn_1 = require_subscribeOn(); + Object.defineProperty(exports, "subscribeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return subscribeOn_1.subscribeOn; + }, "get") }); + var switchAll_1 = require_switchAll(); + Object.defineProperty(exports, "switchAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchAll_1.switchAll; + }, "get") }); + var switchMap_1 = require_switchMap(); + Object.defineProperty(exports, "switchMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMap_1.switchMap; + }, "get") }); + var switchMapTo_1 = require_switchMapTo(); + Object.defineProperty(exports, "switchMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMapTo_1.switchMapTo; + }, "get") }); + var switchScan_1 = require_switchScan(); + Object.defineProperty(exports, "switchScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchScan_1.switchScan; + }, "get") }); + var take_1 = require_take(); + Object.defineProperty(exports, "take", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return take_1.take; + }, "get") }); + var takeLast_1 = require_takeLast(); + Object.defineProperty(exports, "takeLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeLast_1.takeLast; + }, "get") }); + var takeUntil_1 = require_takeUntil(); + Object.defineProperty(exports, "takeUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeUntil_1.takeUntil; + }, "get") }); + var takeWhile_1 = require_takeWhile(); + Object.defineProperty(exports, "takeWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeWhile_1.takeWhile; + }, "get") }); + var tap_1 = require_tap(); + Object.defineProperty(exports, "tap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return tap_1.tap; + }, "get") }); + var throttle_1 = require_throttle(); + Object.defineProperty(exports, "throttle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttle_1.throttle; + }, "get") }); + var throttleTime_1 = require_throttleTime(); + Object.defineProperty(exports, "throttleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttleTime_1.throttleTime; + }, "get") }); + var throwIfEmpty_1 = require_throwIfEmpty(); + Object.defineProperty(exports, "throwIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throwIfEmpty_1.throwIfEmpty; + }, "get") }); + var timeInterval_1 = require_timeInterval(); + Object.defineProperty(exports, "timeInterval", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeInterval_1.timeInterval; + }, "get") }); + var timeout_1 = require_timeout(); + Object.defineProperty(exports, "timeout", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeout_1.timeout; + }, "get") }); + var timeoutWith_1 = require_timeoutWith(); + Object.defineProperty(exports, "timeoutWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeoutWith_1.timeoutWith; + }, "get") }); + var timestamp_1 = require_timestamp(); + Object.defineProperty(exports, "timestamp", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timestamp_1.timestamp; + }, "get") }); + var toArray_1 = require_toArray(); + Object.defineProperty(exports, "toArray", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return toArray_1.toArray; + }, "get") }); + var window_1 = require_window(); + Object.defineProperty(exports, "window", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return window_1.window; + }, "get") }); + var windowCount_1 = require_windowCount(); + Object.defineProperty(exports, "windowCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowCount_1.windowCount; + }, "get") }); + var windowTime_1 = require_windowTime(); + Object.defineProperty(exports, "windowTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowTime_1.windowTime; + }, "get") }); + var windowToggle_1 = require_windowToggle(); + Object.defineProperty(exports, "windowToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowToggle_1.windowToggle; + }, "get") }); + var windowWhen_1 = require_windowWhen(); + Object.defineProperty(exports, "windowWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowWhen_1.windowWhen; + }, "get") }); + var withLatestFrom_1 = require_withLatestFrom(); + Object.defineProperty(exports, "withLatestFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return withLatestFrom_1.withLatestFrom; + }, "get") }); + var zip_1 = require_zip3(); + Object.defineProperty(exports, "zip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zip_1.zip; + }, "get") }); + var zipAll_1 = require_zipAll(); + Object.defineProperty(exports, "zipAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipAll_1.zipAll; + }, "get") }); + var zipWith_1 = require_zipWith(); + Object.defineProperty(exports, "zipWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipWith_1.zipWith; + }, "get") }); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/class-serializer.constants.js +var CLASS_SERIALIZER_OPTIONS; +var init_class_serializer_constants = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/class-serializer.constants.js"() { + CLASS_SERIALIZER_OPTIONS = "class_serializer:options"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/class-serializer.interceptor.js +var import_operators, classTransformer2, pendingClassTransformer, REFLECTOR, ClassSerializerInterceptor; +var init_class_serializer_interceptor = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/class-serializer.interceptor.js"() { + init_tslib_es6(); + import_operators = __toESM(require_operators(), 1); + init_core(); + init_file_stream(); + init_load_package_util(); + init_shared_utils(); + init_class_serializer_constants(); + classTransformer2 = {}; + REFLECTOR = "Reflector"; + ClassSerializerInterceptor = class ClassSerializerInterceptor2 { + static { + __name(this, "ClassSerializerInterceptor"); + } + reflector; + defaultOptions; + constructor(reflector, defaultOptions = {}) { + this.reflector = reflector; + this.defaultOptions = defaultOptions; + pendingClassTransformer = defaultOptions?.transformerPackage ?? loadPackage("class-transformer", "ClassSerializerInterceptor", () => import("class-transformer")); + if (!(pendingClassTransformer instanceof Promise)) { + classTransformer2 = pendingClassTransformer; + } + } + async intercept(context, next) { + classTransformer2 = await pendingClassTransformer; + const contextOptions = this.getContextOptions(context); + const options = { + ...this.defaultOptions, + ...contextOptions + }; + return next.handle().pipe((0, import_operators.map)((res) => this.serialize(res, options))); + } + /** + * Serializes responses that are non-null objects nor streamable files. + */ + serialize(response, options) { + if (!isObject(response) || response instanceof StreamableFile) { + return response; + } + return Array.isArray(response) ? response.map((item) => this.transformToPlain(item, options)) : this.transformToPlain(response, options); + } + transformToPlain(plainOrClass, options) { + if (!plainOrClass) { + return plainOrClass; + } + if (!options.type) { + return classTransformer2.classToPlain(plainOrClass, options); + } + if (plainOrClass instanceof options.type) { + return classTransformer2.classToPlain(plainOrClass, options); + } + const instance = classTransformer2.plainToInstance(options.type, plainOrClass, options); + return classTransformer2.classToPlain(instance, options); + } + getContextOptions(context) { + return this.reflector.getAllAndOverride(CLASS_SERIALIZER_OPTIONS, [ + context.getHandler(), + context.getClass() + ]); + } + }; + ClassSerializerInterceptor = __decorate([ + Injectable(), + __param(0, Inject(REFLECTOR)), + __param(1, Optional()), + __metadata("design:paramtypes", [Object, Object]) + ], ClassSerializerInterceptor); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/class-serializer.interfaces.js +var init_class_serializer_interfaces = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/class-serializer.interfaces.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.js +var SerializeOptions; +var init_serialize_options_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.js"() { + init_decorators(); + init_class_serializer_constants(); + SerializeOptions = /* @__PURE__ */ __name((options) => SetMetadata(CLASS_SERIALIZER_OPTIONS, options), "SerializeOptions"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/decorators/index.js +var init_decorators2 = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/decorators/index.js"() { + init_serialize_options_decorator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/standard-schema-serializer.interceptor.js +var import_operators2, REFLECTOR2, StandardSchemaSerializerInterceptor; +var init_standard_schema_serializer_interceptor = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/standard-schema-serializer.interceptor.js"() { + init_tslib_es6(); + import_operators2 = __toESM(require_operators(), 1); + init_core(); + init_file_stream(); + init_shared_utils(); + init_class_serializer_constants(); + REFLECTOR2 = "Reflector"; + StandardSchemaSerializerInterceptor = class StandardSchemaSerializerInterceptor2 { + static { + __name(this, "StandardSchemaSerializerInterceptor"); + } + reflector; + defaultOptions; + constructor(reflector, defaultOptions = {}) { + this.reflector = reflector; + this.defaultOptions = defaultOptions; + } + intercept(context, next) { + const contextOptions = this.getContextOptions(context); + const schema = contextOptions?.schema ?? this.defaultOptions.schema; + const validateOptions = contextOptions?.validateOptions ?? this.defaultOptions.validateOptions; + return next.handle().pipe((0, import_operators2.concatMap)(async (res) => this.serialize(res, schema, validateOptions))); + } + /** + * Serializes responses that are non-null objects nor streamable files. + */ + serialize(response, schema, validateOptions) { + if (!schema || !isObject(response) || response instanceof StreamableFile) { + return response; + } + return Array.isArray(response) ? Promise.all(response.map((item) => this.transformToPlain(item, schema, validateOptions))) : this.transformToPlain(response, schema, validateOptions); + } + async transformToPlain(plainOrClass, schema, validateOptions) { + if (!plainOrClass) { + return plainOrClass; + } + const result = await schema["~standard"].validate(plainOrClass, validateOptions); + if (result.issues) { + throw new Error(`Serialization failed: ${result.issues.map((i) => i.message).join(", ")}`); + } + return result.value; + } + getContextOptions(context) { + const [handlerOptions, classOptions] = this.reflector.getAll(CLASS_SERIALIZER_OPTIONS, [ + context.getHandler(), + context.getClass() + ]); + if (!handlerOptions || !classOptions) { + return handlerOptions ?? classOptions; + } + return { + schema: handlerOptions.schema ?? classOptions.schema, + validateOptions: handlerOptions.validateOptions ?? classOptions.validateOptions + }; + } + }; + StandardSchemaSerializerInterceptor = __decorate([ + Injectable(), + __param(0, Inject(REFLECTOR2)), + __param(1, Optional()), + __metadata("design:paramtypes", [Object, Object]) + ], StandardSchemaSerializerInterceptor); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/standard-schema-serializer.interfaces.js +var init_standard_schema_serializer_interfaces = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/standard-schema-serializer.interfaces.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/index.js +var init_serializer = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/serializer/index.js"() { + init_class_serializer_interceptor(); + init_class_serializer_interfaces(); + init_decorators2(); + init_standard_schema_serializer_interceptor(); + init_standard_schema_serializer_interfaces(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/forward-ref.util.js +var forwardRef; +var init_forward_ref_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/forward-ref.util.js"() { + forwardRef = /* @__PURE__ */ __name((fn) => ({ + forwardRef: fn + }), "forwardRef"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/index.js +var init_utils3 = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/index.js"() { + init_forward_ref_util(); + init_strip_proto_keys_util(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/index.js +var common_exports = {}; +__export(common_exports, { + All: () => All, + BadGatewayException: () => BadGatewayException, + BadRequestException: () => BadRequestException, + Bind: () => Bind, + Body: () => Body, + Catch: () => Catch, + ClassSerializerInterceptor: () => ClassSerializerInterceptor, + ConfigurableModuleBuilder: () => ConfigurableModuleBuilder, + ConflictException: () => ConflictException, + ConsoleLogger: () => ConsoleLogger, + Controller: () => Controller, + Cookies: () => Cookies, + Copy: () => Copy, + DefaultValuePipe: () => DefaultValuePipe, + Delete: () => Delete, + Dependencies: () => Dependencies, + FileTypeValidator: () => FileTypeValidator, + FileValidator: () => FileValidator, + ForbiddenException: () => ForbiddenException, + GatewayTimeoutException: () => GatewayTimeoutException, + Get: () => Get, + Global: () => Global, + GoneException: () => GoneException, + Head: () => Head, + Header: () => Header, + Headers: () => Headers, + HostParam: () => HostParam, + HttpCode: () => HttpCode, + HttpException: () => HttpException, + HttpStatus: () => HttpStatus, + HttpVersionNotSupportedException: () => HttpVersionNotSupportedException, + ImATeapotException: () => ImATeapotException, + Inject: () => Inject, + Injectable: () => Injectable, + InternalServerErrorException: () => InternalServerErrorException, + IntrinsicException: () => IntrinsicException, + Ip: () => Ip, + LOG_LEVELS: () => LOG_LEVELS, + Lock: () => Lock, + Logger: () => Logger, + MaxFileSizeValidator: () => MaxFileSizeValidator, + MethodNotAllowedException: () => MethodNotAllowedException, + MisdirectedException: () => MisdirectedException, + Mkcol: () => Mkcol, + Module: () => Module, + Move: () => Move, + Next: () => Next, + NotAcceptableException: () => NotAcceptableException, + NotFoundException: () => NotFoundException, + NotImplementedException: () => NotImplementedException, + Optional: () => Optional, + Options: () => Options, + Param: () => Param, + ParseArrayPipe: () => ParseArrayPipe, + ParseBoolPipe: () => ParseBoolPipe, + ParseDatePipe: () => ParseDatePipe, + ParseEnumPipe: () => ParseEnumPipe, + ParseFilePipe: () => ParseFilePipe, + ParseFilePipeBuilder: () => ParseFilePipeBuilder, + ParseFloatPipe: () => ParseFloatPipe, + ParseIntPipe: () => ParseIntPipe, + ParseUUIDPipe: () => ParseUUIDPipe, + Patch: () => Patch, + PayloadTooLargeException: () => PayloadTooLargeException, + Post: () => Post, + PreconditionFailedException: () => PreconditionFailedException, + Propfind: () => Propfind, + Proppatch: () => Proppatch, + Put: () => Put, + Query: () => Query, + QueryMethod: () => QueryMethod, + RawBody: () => RawBody, + Redirect: () => Redirect, + Render: () => Render, + Req: () => Req, + Request: () => Request, + RequestMapping: () => RequestMapping, + RequestMethod: () => RequestMethod, + RequestTimeoutException: () => RequestTimeoutException, + Res: () => Res, + Response: () => Response, + SSE_ABORT_CONTROLLER: () => SSE_ABORT_CONTROLLER, + Scope: () => Scope, + Search: () => Search, + SerializeOptions: () => SerializeOptions, + ServiceUnavailableException: () => ServiceUnavailableException, + Session: () => Session, + SetMetadata: () => SetMetadata, + ShutdownSignal: () => ShutdownSignal, + SignedCookies: () => SignedCookies, + Sse: () => Sse, + SseSignal: () => SseSignal, + StandardSchemaSerializerInterceptor: () => StandardSchemaSerializerInterceptor, + StandardSchemaValidationPipe: () => StandardSchemaValidationPipe, + StreamableFile: () => StreamableFile, + UnauthorizedException: () => UnauthorizedException, + Unlock: () => Unlock, + UnprocessableEntityException: () => UnprocessableEntityException, + UnsupportedMediaTypeException: () => UnsupportedMediaTypeException, + UploadedFile: () => UploadedFile, + UploadedFiles: () => UploadedFiles, + UseFilters: () => UseFilters, + UseGuards: () => UseGuards, + UseInterceptors: () => UseInterceptors, + UsePipes: () => UsePipes, + VERSION_NEUTRAL: () => VERSION_NEUTRAL, + ValidationPipe: () => ValidationPipe, + Version: () => Version, + VersioningType: () => VersioningType, + applyDecorators: () => applyDecorators, + assignMetadata: () => assignMetadata, + createParamDecorator: () => createParamDecorator, + filterLogLevels: () => filterLogLevels, + flatten: () => flatten, + forwardRef: () => forwardRef, + mixin: () => mixin, + stripProtoKeys: () => stripProtoKeys +}); +var import_reflect_metadata; +var init_common = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/index.js"() { + import_reflect_metadata = __toESM(require_Reflect(), 1); + init_decorators(); + init_enums(); + init_exceptions(); + init_file_stream(); + init_interfaces(); + init_module_utils(); + init_pipes(); + init_serializer(); + init_services(); + init_utils3(); + } +}); + +export { + require_Reflect, + __decorate, + __param, + __metadata, + init_tslib_es6, + MODULE_METADATA, + GLOBAL_MODULE_METADATA, + HOST_METADATA, + PATH_METADATA, + PARAMTYPES_METADATA, + SELF_DECLARED_DEPS_METADATA, + OPTIONAL_DEPS_METADATA, + PROPERTY_DEPS_METADATA, + OPTIONAL_PROPERTY_DEPS_METADATA, + SCOPE_OPTIONS_METADATA, + METHOD_METADATA, + ROUTE_ARGS_METADATA, + CUSTOM_ROUTE_ARGS_METADATA, + FILTER_CATCH_EXCEPTIONS, + PIPES_METADATA, + GUARDS_METADATA, + INTERCEPTORS_METADATA, + EXCEPTION_FILTERS_METADATA, + ENHANCER_KEY_TO_SUBTYPE_MAP, + RENDER_METADATA, + HTTP_CODE_METADATA, + MODULE_PATH, + HEADERS_METADATA, + REDIRECT_METADATA, + RESPONSE_PASSTHROUGH_METADATA, + SSE_METADATA, + SSE_OPTIONS_METADATA, + VERSION_METADATA, + INJECTABLE_WATERMARK, + CONTROLLER_WATERMARK, + CATCH_WATERMARK, + ENTRY_PROVIDER_WATERMARK, + init_constants, + Catch, + isUndefined, + isObject, + isPlainObject, + addLeadingSlash, + normalizePath, + stripEndSlash, + isFunction, + isString, + isConstructor, + isNil, + isEmpty, + isEmptyArray, + isSymbol, + init_shared_utils, + Controller, + flatten, + Inject, + uid, + init_dist, + Injectable, + mixin, + Optional, + SetMetadata, + UseGuards, + UseInterceptors, + applyDecorators, + Global, + Module, + RequestMethod, + Post, + Get, + Delete, + Put, + Patch, + RouteParamtypes, + init_route_paramtypes_enum, + init_parameter_decorator_options_util, + UploadedFile, + Query, + Body, + Param, + Req, + Res, + init_route_params_decorator, + HttpCode, + createParamDecorator, + SSE_ABORT_CONTROLLER, + HttpStatus, + ShutdownSignal, + VersioningType, + IntrinsicException, + HttpException, + BadRequestException, + ConflictException, + ForbiddenException, + InternalServerErrorException, + NotFoundException, + PayloadTooLargeException, + ServiceUnavailableException, + UnauthorizedException, + clc, + init_cli_colors_util, + ConsoleLogger, + Logger, + StreamableFile, + Scope, + VERSION_NEUTRAL, + randomStringGenerator, + init_random_string_generator_util, + require_lib, + loadPackage, + loadPackageCached, + tryLoadPackage, + init_load_package_util, + require_isFunction, + require_isArrayLike, + require_UnsubscriptionError, + require_Subscription, + require_config, + require_noop, + require_Subscriber, + require_observable, + require_identity, + require_pipe, + require_Observable, + require_innerFrom, + require_OperatorSubscriber, + require_audit, + require_AsyncAction, + require_Scheduler, + require_AsyncScheduler, + require_async, + require_isScheduler, + require_timer, + require_auditTime, + require_buffer, + require_bufferCount, + require_args, + require_bufferTime, + require_bufferToggle, + require_bufferWhen, + require_catchError, + require_argsArgArrayOrObject, + require_observeOn, + require_subscribeOn, + require_scheduleIterable, + require_scheduled, + require_from, + require_map2 as require_map, + require_mapOneOrManyArgs, + require_createObject, + require_combineLatest, + require_mergeMap, + require_reduce, + require_toArray, + require_combineLatestAll, + require_combineAll, + require_combineLatestWith, + require_mergeAll, + require_concatAll, + require_concatMap, + require_concatMapTo, + require_concatWith, + require_ObjectUnsubscribedError, + require_Subject, + require_connect, + require_count, + require_debounce, + require_debounceTime, + require_defaultIfEmpty, + require_concat3 as require_concat, + require_empty, + require_take, + require_ignoreElements, + require_mapTo, + require_delayWhen, + require_delay, + require_of, + require_throwError, + require_Notification, + require_dematerialize, + require_distinct, + require_distinctUntilChanged, + require_distinctUntilKeyChanged, + require_ArgumentOutOfRangeError, + require_filter2 as require_filter, + require_EmptyError, + require_throwIfEmpty, + require_elementAt, + require_endWith, + require_every, + require_exhaustMap, + require_exhaustAll, + require_exhaust, + require_expand, + require_finalize, + require_find, + require_findIndex, + require_first, + require_groupBy, + require_isEmpty, + require_takeLast, + require_last, + require_materialize, + require_max, + require_flatMap, + require_mergeMapTo, + require_mergeScan, + require_mergeWith, + require_min, + require_refCount, + require_ConnectableObservable, + require_multicast, + require_onErrorResumeNext, + require_onErrorResumeNextWith, + require_pairwise, + require_not, + require_pluck, + require_publish, + require_BehaviorSubject, + require_publishBehavior, + require_AsyncSubject, + require_publishLast, + require_ReplaySubject, + require_publishReplay, + require_race, + require_raceWith, + require_repeat, + require_repeatWhen, + require_retry, + require_retryWhen, + require_sample, + require_interval, + require_sampleTime, + require_scan, + require_sequenceEqual, + require_share, + require_shareReplay, + require_SequenceError, + require_NotFoundError, + require_single, + require_skip, + require_skipLast, + require_skipUntil, + require_skipWhile, + require_startWith, + require_switchMap, + require_switchAll, + require_switchMapTo, + require_switchScan, + require_takeUntil, + require_takeWhile, + require_tap, + require_throttle, + require_throttleTime, + require_timeInterval, + require_timeout, + require_timeoutWith, + require_timestamp, + require_window, + require_windowCount, + require_windowTime, + require_windowToggle, + require_windowWhen, + require_withLatestFrom, + require_zip2 as require_zip, + require_zipAll, + require_zipWith, + require_operators, + common_exports, + init_common +}; diff --git a/apps/api/.output/dist/chunks/chunk-C4DYPKAN.js b/apps/api/.output/dist/chunks/chunk-C4DYPKAN.js new file mode 100644 index 0000000..5be60a6 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-C4DYPKAN.js @@ -0,0 +1,725 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + require_ms +} from "./chunk-A34KYKJP.js"; +import { + __commonJS, + __esm, + __export, + __name, + __require, + __toCommonJS +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js +var require_common = __commonJS({ + "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js"(exports, module) { + function setup(env2) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env2).forEach((key) => { + createDebug[key] = env2[key]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + __name(selectColor, "selectColor"); + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug(...args) { + if (!debug.enabled) { + return; + } + const self = debug; + const curr = Number(/* @__PURE__ */ new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self, args); + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + __name(debug, "debug"); + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: /* @__PURE__ */ __name(() => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, "get"), + set: /* @__PURE__ */ __name((v) => { + enableOverride = v; + }, "set") + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + return debug; + } + __name(createDebug, "createDebug"); + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + __name(extend, "extend"); + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean); + for (const ns of split) { + if (ns[0] === "-") { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + __name(enable, "enable"); + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { + if (template[templateIndex] === "*") { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; + } + } + while (templateIndex < template.length && template[templateIndex] === "*") { + templateIndex++; + } + return templateIndex === template.length; + } + __name(matchesTemplate, "matchesTemplate"); + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + __name(disable, "disable"); + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + return false; + } + __name(enabled, "enabled"); + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + __name(coerce, "coerce"); + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + __name(destroy, "destroy"); + createDebug.enable(createDebug.load()); + return createDebug; + } + __name(setup, "setup"); + module.exports = setup; + } +}); + +// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js"(exports, module) { + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = /* @__PURE__ */ (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + let m; + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + __name(useColors, "useColors"); + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + lastC = index; + } + }); + args.splice(lastC, 0, c); + } + __name(formatArgs, "formatArgs"); + exports.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem("debug", namespaces); + } else { + exports.storage.removeItem("debug"); + } + } catch (error) { + } + } + __name(save, "save"); + function load() { + let r; + try { + r = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + __name(load, "load"); + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + __name(localstorage, "localstorage"); + module.exports = require_common()(exports); + var { formatters } = module.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } +}); + +// ../../node_modules/.pnpm/supports-color@10.2.2/node_modules/supports-color/index.js +var supports_color_exports = {}; +__export(supports_color_exports, { + createSupportsColor: () => createSupportsColor, + default: () => supports_color_default +}); +import process2 from "node:process"; +import os from "node:os"; +import tty from "node:tty"; +function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) { + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +} +function envForceColor() { + if (!("FORCE_COLOR" in env)) { + return; + } + if (env.FORCE_COLOR === "true") { + return 1; + } + if (env.FORCE_COLOR === "false") { + return 0; + } + if (env.FORCE_COLOR.length === 0) { + return 1; + } + const level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + if (![0, 1, 2, 3].includes(level)) { + return; + } + return level; +} +function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} +function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== void 0) { + flagForceColor = noFlagForceColor; + } + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; + if (forceColor === 0) { + return 0; + } + if (sniffFlags) { + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + } + if ("TF_BUILD" in env && "AGENT_NAME" in env) { + return 1; + } + if (haveStream && !streamIsTTY && forceColor === void 0) { + return 0; + } + const min = forceColor || 0; + if (env.TERM === "dumb") { + return min; + } + if (process2.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => key in env)) { + return 3; + } + if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if (env.TERM === "xterm-kitty") { + return 3; + } + if (env.TERM === "xterm-ghostty") { + return 3; + } + if (env.TERM === "wezterm") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": { + return version >= 3 ? 3 : 2; + } + case "Apple_Terminal": { + return 2; + } + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + return min; +} +function createSupportsColor(stream, options = {}) { + const level = _supportsColor(stream, { + streamIsTTY: stream && stream.isTTY, + ...options + }); + return translateLevel(level); +} +var env, flagForceColor, supportsColor, supports_color_default; +var init_supports_color = __esm({ + "../../node_modules/.pnpm/supports-color@10.2.2/node_modules/supports-color/index.js"() { + __name(hasFlag, "hasFlag"); + ({ env } = process2); + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { + flagForceColor = 0; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + flagForceColor = 1; + } + __name(envForceColor, "envForceColor"); + __name(translateLevel, "translateLevel"); + __name(_supportsColor, "_supportsColor"); + __name(createSupportsColor, "createSupportsColor"); + supportsColor = { + stdout: createSupportsColor({ isTTY: tty.isatty(1) }), + stderr: createSupportsColor({ isTTY: tty.isatty(2) }) + }; + supports_color_default = supportsColor; + } +}); + +// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js +var require_node = __commonJS({ + "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js"(exports, module) { + var tty2 = __require("tty"); + var util = __require("util"); + exports.init = init; + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.destroy = util.deprecate( + () => { + }, + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." + ); + exports.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor2 = (init_supports_color(), __toCommonJS(supports_color_exports)); + if (supportsColor2 && (supportsColor2.stderr || supportsColor2).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (error) { + } + exports.inspectOpts = Object.keys(process.env).filter((key) => { + return /^debug_/i.test(key); + }).reduce((obj, key) => { + const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); + } + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty2.isatty(process.stderr.fd); + } + __name(useColors, "useColors"); + function formatArgs(args) { + const { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} \x1B[0m`; + args[0] = prefix + args[0].split("\n").join("\n" + prefix); + args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m"); + } else { + args[0] = getDate() + name + " " + args[0]; + } + } + __name(formatArgs, "formatArgs"); + function getDate() { + if (exports.inspectOpts.hideDate) { + return ""; + } + return (/* @__PURE__ */ new Date()).toISOString() + " "; + } + __name(getDate, "getDate"); + function log(...args) { + return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + "\n"); + } + __name(log, "log"); + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; + } + } + __name(save, "save"); + function load() { + return process.env.DEBUG; + } + __name(load, "load"); + function init(debug) { + debug.inspectOpts = {}; + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } + } + __name(init, "init"); + module.exports = require_common()(exports); + var { formatters } = module.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + } +}); + +// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js +var require_src = __commonJS({ + "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js"(exports, module) { + if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { + module.exports = require_browser(); + } else { + module.exports = require_node(); + } + } +}); + +export { + require_src +}; diff --git a/apps/api/.output/dist/chunks/chunk-KIUJQ22G.js b/apps/api/.output/dist/chunks/chunk-KIUJQ22G.js new file mode 100644 index 0000000..8678232 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-KIUJQ22G.js @@ -0,0 +1,5494 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + __commonJS, + __name, + __require, + __toESM +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/postgres-array@2.0.0/node_modules/postgres-array/index.js +var require_postgres_array = __commonJS({ + "../../node_modules/.pnpm/postgres-array@2.0.0/node_modules/postgres-array/index.js"(exports) { + "use strict"; + exports.parse = function(source, transform) { + return new ArrayParser(source, transform).parse(); + }; + var ArrayParser = class _ArrayParser { + static { + __name(this, "ArrayParser"); + } + constructor(source, transform) { + this.source = source; + this.transform = transform || identity; + this.position = 0; + this.entries = []; + this.recorded = []; + this.dimension = 0; + } + isEof() { + return this.position >= this.source.length; + } + nextCharacter() { + var character = this.source[this.position++]; + if (character === "\\") { + return { + value: this.source[this.position++], + escaped: true + }; + } + return { + value: character, + escaped: false + }; + } + record(character) { + this.recorded.push(character); + } + newEntry(includeEmpty) { + var entry; + if (this.recorded.length > 0 || includeEmpty) { + entry = this.recorded.join(""); + if (entry === "NULL" && !includeEmpty) { + entry = null; + } + if (entry !== null) entry = this.transform(entry); + this.entries.push(entry); + this.recorded = []; + } + } + consumeDimensions() { + if (this.source[0] === "[") { + while (!this.isEof()) { + var char = this.nextCharacter(); + if (char.value === "=") break; + } + } + } + parse(nested) { + var character, parser, quote; + this.consumeDimensions(); + while (!this.isEof()) { + character = this.nextCharacter(); + if (character.value === "{" && !quote) { + this.dimension++; + if (this.dimension > 1) { + parser = new _ArrayParser(this.source.substr(this.position - 1), this.transform); + this.entries.push(parser.parse(true)); + this.position += parser.position - 2; + } + } else if (character.value === "}" && !quote) { + this.dimension--; + if (!this.dimension) { + this.newEntry(); + if (nested) return this.entries; + } + } else if (character.value === '"' && !character.escaped) { + if (quote) this.newEntry(true); + quote = !quote; + } else if (character.value === "," && !quote) { + this.newEntry(); + } else { + this.record(character.value); + } + } + if (this.dimension !== 0) { + throw new Error("array dimension not balanced"); + } + return this.entries; + } + }; + function identity(value) { + return value; + } + __name(identity, "identity"); + } +}); + +// ../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/arrayParser.js +var require_arrayParser = __commonJS({ + "../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/arrayParser.js"(exports, module) { + var array = require_postgres_array(); + module.exports = { + create: /* @__PURE__ */ __name(function(source, transform) { + return { + parse: /* @__PURE__ */ __name(function() { + return array.parse(source, transform); + }, "parse") + }; + }, "create") + }; + } +}); + +// ../../node_modules/.pnpm/postgres-date@1.0.7/node_modules/postgres-date/index.js +var require_postgres_date = __commonJS({ + "../../node_modules/.pnpm/postgres-date@1.0.7/node_modules/postgres-date/index.js"(exports, module) { + "use strict"; + var DATE_TIME = /(\d{1,})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})(\.\d{1,})?.*?( BC)?$/; + var DATE = /^(\d{1,})-(\d{2})-(\d{2})( BC)?$/; + var TIME_ZONE = /([Z+-])(\d{2})?:?(\d{2})?:?(\d{2})?/; + var INFINITY = /^-?infinity$/; + module.exports = /* @__PURE__ */ __name(function parseDate(isoDate) { + if (INFINITY.test(isoDate)) { + return Number(isoDate.replace("i", "I")); + } + var matches = DATE_TIME.exec(isoDate); + if (!matches) { + return getDate(isoDate) || null; + } + var isBC = !!matches[8]; + var year = parseInt(matches[1], 10); + if (isBC) { + year = bcYearToNegativeYear(year); + } + var month = parseInt(matches[2], 10) - 1; + var day = matches[3]; + var hour = parseInt(matches[4], 10); + var minute = parseInt(matches[5], 10); + var second = parseInt(matches[6], 10); + var ms = matches[7]; + ms = ms ? 1e3 * parseFloat(ms) : 0; + var date; + var offset = timeZoneOffset(isoDate); + if (offset != null) { + date = new Date(Date.UTC(year, month, day, hour, minute, second, ms)); + if (is0To99(year)) { + date.setUTCFullYear(year); + } + if (offset !== 0) { + date.setTime(date.getTime() - offset); + } + } else { + date = new Date(year, month, day, hour, minute, second, ms); + if (is0To99(year)) { + date.setFullYear(year); + } + } + return date; + }, "parseDate"); + function getDate(isoDate) { + var matches = DATE.exec(isoDate); + if (!matches) { + return; + } + var year = parseInt(matches[1], 10); + var isBC = !!matches[4]; + if (isBC) { + year = bcYearToNegativeYear(year); + } + var month = parseInt(matches[2], 10) - 1; + var day = matches[3]; + var date = new Date(year, month, day); + if (is0To99(year)) { + date.setFullYear(year); + } + return date; + } + __name(getDate, "getDate"); + function timeZoneOffset(isoDate) { + if (isoDate.endsWith("+00")) { + return 0; + } + var zone = TIME_ZONE.exec(isoDate.split(" ")[1]); + if (!zone) return; + var type = zone[1]; + if (type === "Z") { + return 0; + } + var sign = type === "-" ? -1 : 1; + var offset = parseInt(zone[2], 10) * 3600 + parseInt(zone[3] || 0, 10) * 60 + parseInt(zone[4] || 0, 10); + return offset * sign * 1e3; + } + __name(timeZoneOffset, "timeZoneOffset"); + function bcYearToNegativeYear(year) { + return -(year - 1); + } + __name(bcYearToNegativeYear, "bcYearToNegativeYear"); + function is0To99(num) { + return num >= 0 && num < 100; + } + __name(is0To99, "is0To99"); + } +}); + +// ../../node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/mutable.js +var require_mutable = __commonJS({ + "../../node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/mutable.js"(exports, module) { + module.exports = extend; + var hasOwnProperty = Object.prototype.hasOwnProperty; + function extend(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + } + __name(extend, "extend"); + } +}); + +// ../../node_modules/.pnpm/postgres-interval@1.2.0/node_modules/postgres-interval/index.js +var require_postgres_interval = __commonJS({ + "../../node_modules/.pnpm/postgres-interval@1.2.0/node_modules/postgres-interval/index.js"(exports, module) { + "use strict"; + var extend = require_mutable(); + module.exports = PostgresInterval; + function PostgresInterval(raw) { + if (!(this instanceof PostgresInterval)) { + return new PostgresInterval(raw); + } + extend(this, parse(raw)); + } + __name(PostgresInterval, "PostgresInterval"); + var properties = ["seconds", "minutes", "hours", "days", "months", "years"]; + PostgresInterval.prototype.toPostgres = function() { + var filtered = properties.filter(this.hasOwnProperty, this); + if (this.milliseconds && filtered.indexOf("seconds") < 0) { + filtered.push("seconds"); + } + if (filtered.length === 0) return "0"; + return filtered.map(function(property) { + var value = this[property] || 0; + if (property === "seconds" && this.milliseconds) { + value = (value + this.milliseconds / 1e3).toFixed(6).replace(/\.?0+$/, ""); + } + return value + " " + property; + }, this).join(" "); + }; + var propertiesISOEquivalent = { + years: "Y", + months: "M", + days: "D", + hours: "H", + minutes: "M", + seconds: "S" + }; + var dateProperties = ["years", "months", "days"]; + var timeProperties = ["hours", "minutes", "seconds"]; + PostgresInterval.prototype.toISOString = PostgresInterval.prototype.toISO = function() { + var datePart = dateProperties.map(buildProperty, this).join(""); + var timePart = timeProperties.map(buildProperty, this).join(""); + return "P" + datePart + "T" + timePart; + function buildProperty(property) { + var value = this[property] || 0; + if (property === "seconds" && this.milliseconds) { + value = (value + this.milliseconds / 1e3).toFixed(6).replace(/0+$/, ""); + } + return value + propertiesISOEquivalent[property]; + } + __name(buildProperty, "buildProperty"); + }; + var NUMBER = "([+-]?\\d+)"; + var YEAR = NUMBER + "\\s+years?"; + var MONTH = NUMBER + "\\s+mons?"; + var DAY = NUMBER + "\\s+days?"; + var TIME = "([+-])?([\\d]*):(\\d\\d):(\\d\\d)\\.?(\\d{1,6})?"; + var INTERVAL = new RegExp([YEAR, MONTH, DAY, TIME].map(function(regexString) { + return "(" + regexString + ")?"; + }).join("\\s*")); + var positions = { + years: 2, + months: 4, + days: 6, + hours: 9, + minutes: 10, + seconds: 11, + milliseconds: 12 + }; + var negatives = ["hours", "minutes", "seconds", "milliseconds"]; + function parseMilliseconds(fraction) { + var microseconds = fraction + "000000".slice(fraction.length); + return parseInt(microseconds, 10) / 1e3; + } + __name(parseMilliseconds, "parseMilliseconds"); + function parse(interval) { + if (!interval) return {}; + var matches = INTERVAL.exec(interval); + var isNegative = matches[8] === "-"; + return Object.keys(positions).reduce(function(parsed, property) { + var position = positions[property]; + var value = matches[position]; + if (!value) return parsed; + value = property === "milliseconds" ? parseMilliseconds(value) : parseInt(value, 10); + if (!value) return parsed; + if (isNegative && ~negatives.indexOf(property)) { + value *= -1; + } + parsed[property] = value; + return parsed; + }, {}); + } + __name(parse, "parse"); + } +}); + +// ../../node_modules/.pnpm/postgres-bytea@1.0.1/node_modules/postgres-bytea/index.js +var require_postgres_bytea = __commonJS({ + "../../node_modules/.pnpm/postgres-bytea@1.0.1/node_modules/postgres-bytea/index.js"(exports, module) { + "use strict"; + var bufferFrom = Buffer.from || Buffer; + module.exports = /* @__PURE__ */ __name(function parseBytea(input) { + if (/^\\x/.test(input)) { + return bufferFrom(input.substr(2), "hex"); + } + var output = ""; + var i = 0; + while (i < input.length) { + if (input[i] !== "\\") { + output += input[i]; + ++i; + } else { + if (/[0-7]{3}/.test(input.substr(i + 1, 3))) { + output += String.fromCharCode(parseInt(input.substr(i + 1, 3), 8)); + i += 4; + } else { + var backslashes = 1; + while (i + backslashes < input.length && input[i + backslashes] === "\\") { + backslashes++; + } + for (var k = 0; k < Math.floor(backslashes / 2); ++k) { + output += "\\"; + } + i += Math.floor(backslashes / 2) * 2; + } + } + } + return bufferFrom(output, "binary"); + }, "parseBytea"); + } +}); + +// ../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/textParsers.js +var require_textParsers = __commonJS({ + "../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/textParsers.js"(exports, module) { + var array = require_postgres_array(); + var arrayParser = require_arrayParser(); + var parseDate = require_postgres_date(); + var parseInterval = require_postgres_interval(); + var parseByteA = require_postgres_bytea(); + function allowNull(fn) { + return /* @__PURE__ */ __name(function nullAllowed(value) { + if (value === null) return value; + return fn(value); + }, "nullAllowed"); + } + __name(allowNull, "allowNull"); + function parseBool(value) { + if (value === null) return value; + return value === "TRUE" || value === "t" || value === "true" || value === "y" || value === "yes" || value === "on" || value === "1"; + } + __name(parseBool, "parseBool"); + function parseBoolArray(value) { + if (!value) return null; + return array.parse(value, parseBool); + } + __name(parseBoolArray, "parseBoolArray"); + function parseBaseTenInt(string) { + return parseInt(string, 10); + } + __name(parseBaseTenInt, "parseBaseTenInt"); + function parseIntegerArray(value) { + if (!value) return null; + return array.parse(value, allowNull(parseBaseTenInt)); + } + __name(parseIntegerArray, "parseIntegerArray"); + function parseBigIntegerArray(value) { + if (!value) return null; + return array.parse(value, allowNull(function(entry) { + return parseBigInteger(entry).trim(); + })); + } + __name(parseBigIntegerArray, "parseBigIntegerArray"); + var parsePointArray = /* @__PURE__ */ __name(function(value) { + if (!value) { + return null; + } + var p = arrayParser.create(value, function(entry) { + if (entry !== null) { + entry = parsePoint(entry); + } + return entry; + }); + return p.parse(); + }, "parsePointArray"); + var parseFloatArray = /* @__PURE__ */ __name(function(value) { + if (!value) { + return null; + } + var p = arrayParser.create(value, function(entry) { + if (entry !== null) { + entry = parseFloat(entry); + } + return entry; + }); + return p.parse(); + }, "parseFloatArray"); + var parseStringArray = /* @__PURE__ */ __name(function(value) { + if (!value) { + return null; + } + var p = arrayParser.create(value); + return p.parse(); + }, "parseStringArray"); + var parseDateArray = /* @__PURE__ */ __name(function(value) { + if (!value) { + return null; + } + var p = arrayParser.create(value, function(entry) { + if (entry !== null) { + entry = parseDate(entry); + } + return entry; + }); + return p.parse(); + }, "parseDateArray"); + var parseIntervalArray = /* @__PURE__ */ __name(function(value) { + if (!value) { + return null; + } + var p = arrayParser.create(value, function(entry) { + if (entry !== null) { + entry = parseInterval(entry); + } + return entry; + }); + return p.parse(); + }, "parseIntervalArray"); + var parseByteAArray = /* @__PURE__ */ __name(function(value) { + if (!value) { + return null; + } + return array.parse(value, allowNull(parseByteA)); + }, "parseByteAArray"); + var parseInteger = /* @__PURE__ */ __name(function(value) { + return parseInt(value, 10); + }, "parseInteger"); + var parseBigInteger = /* @__PURE__ */ __name(function(value) { + var valStr = String(value); + if (/^\d+$/.test(valStr)) { + return valStr; + } + return value; + }, "parseBigInteger"); + var parseJsonArray = /* @__PURE__ */ __name(function(value) { + if (!value) { + return null; + } + return array.parse(value, allowNull(JSON.parse)); + }, "parseJsonArray"); + var parsePoint = /* @__PURE__ */ __name(function(value) { + if (value[0] !== "(") { + return null; + } + value = value.substring(1, value.length - 1).split(","); + return { + x: parseFloat(value[0]), + y: parseFloat(value[1]) + }; + }, "parsePoint"); + var parseCircle = /* @__PURE__ */ __name(function(value) { + if (value[0] !== "<" && value[1] !== "(") { + return null; + } + var point = "("; + var radius = ""; + var pointParsed = false; + for (var i = 2; i < value.length - 1; i++) { + if (!pointParsed) { + point += value[i]; + } + if (value[i] === ")") { + pointParsed = true; + continue; + } else if (!pointParsed) { + continue; + } + if (value[i] === ",") { + continue; + } + radius += value[i]; + } + var result = parsePoint(point); + result.radius = parseFloat(radius); + return result; + }, "parseCircle"); + var init = /* @__PURE__ */ __name(function(register) { + register(20, parseBigInteger); + register(21, parseInteger); + register(23, parseInteger); + register(26, parseInteger); + register(700, parseFloat); + register(701, parseFloat); + register(16, parseBool); + register(1082, parseDate); + register(1114, parseDate); + register(1184, parseDate); + register(600, parsePoint); + register(651, parseStringArray); + register(718, parseCircle); + register(1e3, parseBoolArray); + register(1001, parseByteAArray); + register(1005, parseIntegerArray); + register(1007, parseIntegerArray); + register(1028, parseIntegerArray); + register(1016, parseBigIntegerArray); + register(1017, parsePointArray); + register(1021, parseFloatArray); + register(1022, parseFloatArray); + register(1231, parseFloatArray); + register(1014, parseStringArray); + register(1015, parseStringArray); + register(1008, parseStringArray); + register(1009, parseStringArray); + register(1040, parseStringArray); + register(1041, parseStringArray); + register(1115, parseDateArray); + register(1182, parseDateArray); + register(1185, parseDateArray); + register(1186, parseInterval); + register(1187, parseIntervalArray); + register(17, parseByteA); + register(114, JSON.parse.bind(JSON)); + register(3802, JSON.parse.bind(JSON)); + register(199, parseJsonArray); + register(3807, parseJsonArray); + register(3907, parseStringArray); + register(2951, parseStringArray); + register(791, parseStringArray); + register(1183, parseStringArray); + register(1270, parseStringArray); + }, "init"); + module.exports = { + init + }; + } +}); + +// ../../node_modules/.pnpm/pg-int8@1.0.1/node_modules/pg-int8/index.js +var require_pg_int8 = __commonJS({ + "../../node_modules/.pnpm/pg-int8@1.0.1/node_modules/pg-int8/index.js"(exports, module) { + "use strict"; + var BASE = 1e6; + function readInt8(buffer) { + var high = buffer.readInt32BE(0); + var low = buffer.readUInt32BE(4); + var sign = ""; + if (high < 0) { + high = ~high + (low === 0); + low = ~low + 1 >>> 0; + sign = "-"; + } + var result = ""; + var carry; + var t; + var digits; + var pad; + var l; + var i; + { + carry = high % BASE; + high = high / BASE >>> 0; + t = 4294967296 * carry + low; + low = t / BASE >>> 0; + digits = "" + (t - BASE * low); + if (low === 0 && high === 0) { + return sign + digits + result; + } + pad = ""; + l = 6 - digits.length; + for (i = 0; i < l; i++) { + pad += "0"; + } + result = pad + digits + result; + } + { + carry = high % BASE; + high = high / BASE >>> 0; + t = 4294967296 * carry + low; + low = t / BASE >>> 0; + digits = "" + (t - BASE * low); + if (low === 0 && high === 0) { + return sign + digits + result; + } + pad = ""; + l = 6 - digits.length; + for (i = 0; i < l; i++) { + pad += "0"; + } + result = pad + digits + result; + } + { + carry = high % BASE; + high = high / BASE >>> 0; + t = 4294967296 * carry + low; + low = t / BASE >>> 0; + digits = "" + (t - BASE * low); + if (low === 0 && high === 0) { + return sign + digits + result; + } + pad = ""; + l = 6 - digits.length; + for (i = 0; i < l; i++) { + pad += "0"; + } + result = pad + digits + result; + } + { + carry = high % BASE; + t = 4294967296 * carry + low; + digits = "" + t % BASE; + return sign + digits + result; + } + } + __name(readInt8, "readInt8"); + module.exports = readInt8; + } +}); + +// ../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/binaryParsers.js +var require_binaryParsers = __commonJS({ + "../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/binaryParsers.js"(exports, module) { + var parseInt64 = require_pg_int8(); + var parseBits = /* @__PURE__ */ __name(function(data, bits, offset, invert, callback) { + offset = offset || 0; + invert = invert || false; + callback = callback || function(lastValue, newValue, bits2) { + return lastValue * Math.pow(2, bits2) + newValue; + }; + var offsetBytes = offset >> 3; + var inv = /* @__PURE__ */ __name(function(value) { + if (invert) { + return ~value & 255; + } + return value; + }, "inv"); + var mask = 255; + var firstBits = 8 - offset % 8; + if (bits < firstBits) { + mask = 255 << 8 - bits & 255; + firstBits = bits; + } + if (offset) { + mask = mask >> offset % 8; + } + var result = 0; + if (offset % 8 + bits >= 8) { + result = callback(0, inv(data[offsetBytes]) & mask, firstBits); + } + var bytes = bits + offset >> 3; + for (var i = offsetBytes + 1; i < bytes; i++) { + result = callback(result, inv(data[i]), 8); + } + var lastBits = (bits + offset) % 8; + if (lastBits > 0) { + result = callback(result, inv(data[bytes]) >> 8 - lastBits, lastBits); + } + return result; + }, "parseBits"); + var parseFloatFromBits = /* @__PURE__ */ __name(function(data, precisionBits, exponentBits) { + var bias = Math.pow(2, exponentBits - 1) - 1; + var sign = parseBits(data, 1); + var exponent = parseBits(data, exponentBits, 1); + if (exponent === 0) { + return 0; + } + var precisionBitsCounter = 1; + var parsePrecisionBits = /* @__PURE__ */ __name(function(lastValue, newValue, bits) { + if (lastValue === 0) { + lastValue = 1; + } + for (var i = 1; i <= bits; i++) { + precisionBitsCounter /= 2; + if ((newValue & 1 << bits - i) > 0) { + lastValue += precisionBitsCounter; + } + } + return lastValue; + }, "parsePrecisionBits"); + var mantissa = parseBits(data, precisionBits, exponentBits + 1, false, parsePrecisionBits); + if (exponent == Math.pow(2, exponentBits + 1) - 1) { + if (mantissa === 0) { + return sign === 0 ? Infinity : -Infinity; + } + return NaN; + } + return (sign === 0 ? 1 : -1) * Math.pow(2, exponent - bias) * mantissa; + }, "parseFloatFromBits"); + var parseInt16 = /* @__PURE__ */ __name(function(value) { + if (parseBits(value, 1) == 1) { + return -1 * (parseBits(value, 15, 1, true) + 1); + } + return parseBits(value, 15, 1); + }, "parseInt16"); + var parseInt32 = /* @__PURE__ */ __name(function(value) { + if (parseBits(value, 1) == 1) { + return -1 * (parseBits(value, 31, 1, true) + 1); + } + return parseBits(value, 31, 1); + }, "parseInt32"); + var parseFloat32 = /* @__PURE__ */ __name(function(value) { + return parseFloatFromBits(value, 23, 8); + }, "parseFloat32"); + var parseFloat64 = /* @__PURE__ */ __name(function(value) { + return parseFloatFromBits(value, 52, 11); + }, "parseFloat64"); + var parseNumeric = /* @__PURE__ */ __name(function(value) { + var sign = parseBits(value, 16, 32); + if (sign == 49152) { + return NaN; + } + var weight = Math.pow(1e4, parseBits(value, 16, 16)); + var result = 0; + var digits = []; + var ndigits = parseBits(value, 16); + for (var i = 0; i < ndigits; i++) { + result += parseBits(value, 16, 64 + 16 * i) * weight; + weight /= 1e4; + } + var scale = Math.pow(10, parseBits(value, 16, 48)); + return (sign === 0 ? 1 : -1) * Math.round(result * scale) / scale; + }, "parseNumeric"); + var parseDate = /* @__PURE__ */ __name(function(isUTC, value) { + var sign = parseBits(value, 1); + var rawValue = parseBits(value, 63, 1); + var result = new Date((sign === 0 ? 1 : -1) * rawValue / 1e3 + 9466848e5); + if (!isUTC) { + result.setTime(result.getTime() + result.getTimezoneOffset() * 6e4); + } + result.usec = rawValue % 1e3; + result.getMicroSeconds = function() { + return this.usec; + }; + result.setMicroSeconds = function(value2) { + this.usec = value2; + }; + result.getUTCMicroSeconds = function() { + return this.usec; + }; + return result; + }, "parseDate"); + var parseArray = /* @__PURE__ */ __name(function(value) { + var dim = parseBits(value, 32); + var flags = parseBits(value, 32, 32); + var elementType = parseBits(value, 32, 64); + var offset = 96; + var dims = []; + for (var i = 0; i < dim; i++) { + dims[i] = parseBits(value, 32, offset); + offset += 32; + offset += 32; + } + var parseElement = /* @__PURE__ */ __name(function(elementType2) { + var length = parseBits(value, 32, offset); + offset += 32; + if (length == 4294967295) { + return null; + } + var result; + if (elementType2 == 23 || elementType2 == 20) { + result = parseBits(value, length * 8, offset); + offset += length * 8; + return result; + } else if (elementType2 == 25) { + result = value.toString(this.encoding, offset >> 3, (offset += length << 3) >> 3); + return result; + } else { + console.log("ERROR: ElementType not implemented: " + elementType2); + } + }, "parseElement"); + var parse = /* @__PURE__ */ __name(function(dimension, elementType2) { + var array = []; + var i2; + if (dimension.length > 1) { + var count = dimension.shift(); + for (i2 = 0; i2 < count; i2++) { + array[i2] = parse(dimension, elementType2); + } + dimension.unshift(count); + } else { + for (i2 = 0; i2 < dimension[0]; i2++) { + array[i2] = parseElement(elementType2); + } + } + return array; + }, "parse"); + return parse(dims, elementType); + }, "parseArray"); + var parseText = /* @__PURE__ */ __name(function(value) { + return value.toString("utf8"); + }, "parseText"); + var parseBool = /* @__PURE__ */ __name(function(value) { + if (value === null) return null; + return parseBits(value, 8) > 0; + }, "parseBool"); + var init = /* @__PURE__ */ __name(function(register) { + register(20, parseInt64); + register(21, parseInt16); + register(23, parseInt32); + register(26, parseInt32); + register(1700, parseNumeric); + register(700, parseFloat32); + register(701, parseFloat64); + register(16, parseBool); + register(1114, parseDate.bind(null, false)); + register(1184, parseDate.bind(null, true)); + register(1e3, parseArray); + register(1007, parseArray); + register(1016, parseArray); + register(1008, parseArray); + register(1009, parseArray); + register(25, parseText); + }, "init"); + module.exports = { + init + }; + } +}); + +// ../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/builtins.js +var require_builtins = __commonJS({ + "../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/builtins.js"(exports, module) { + module.exports = { + BOOL: 16, + BYTEA: 17, + CHAR: 18, + INT8: 20, + INT2: 21, + INT4: 23, + REGPROC: 24, + TEXT: 25, + OID: 26, + TID: 27, + XID: 28, + CID: 29, + JSON: 114, + XML: 142, + PG_NODE_TREE: 194, + SMGR: 210, + PATH: 602, + POLYGON: 604, + CIDR: 650, + FLOAT4: 700, + FLOAT8: 701, + ABSTIME: 702, + RELTIME: 703, + TINTERVAL: 704, + CIRCLE: 718, + MACADDR8: 774, + MONEY: 790, + MACADDR: 829, + INET: 869, + ACLITEM: 1033, + BPCHAR: 1042, + VARCHAR: 1043, + DATE: 1082, + TIME: 1083, + TIMESTAMP: 1114, + TIMESTAMPTZ: 1184, + INTERVAL: 1186, + TIMETZ: 1266, + BIT: 1560, + VARBIT: 1562, + NUMERIC: 1700, + REFCURSOR: 1790, + REGPROCEDURE: 2202, + REGOPER: 2203, + REGOPERATOR: 2204, + REGCLASS: 2205, + REGTYPE: 2206, + UUID: 2950, + TXID_SNAPSHOT: 2970, + PG_LSN: 3220, + PG_NDISTINCT: 3361, + PG_DEPENDENCIES: 3402, + TSVECTOR: 3614, + TSQUERY: 3615, + GTSVECTOR: 3642, + REGCONFIG: 3734, + REGDICTIONARY: 3769, + JSONB: 3802, + REGNAMESPACE: 4089, + REGROLE: 4096 + }; + } +}); + +// ../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/index.js +var require_pg_types = __commonJS({ + "../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/index.js"(exports) { + var textParsers = require_textParsers(); + var binaryParsers = require_binaryParsers(); + var arrayParser = require_arrayParser(); + var builtinTypes = require_builtins(); + exports.getTypeParser = getTypeParser; + exports.setTypeParser = setTypeParser; + exports.arrayParser = arrayParser; + exports.builtins = builtinTypes; + var typeParsers = { + text: {}, + binary: {} + }; + function noParse(val) { + return String(val); + } + __name(noParse, "noParse"); + function getTypeParser(oid, format) { + format = format || "text"; + if (!typeParsers[format]) { + return noParse; + } + return typeParsers[format][oid] || noParse; + } + __name(getTypeParser, "getTypeParser"); + function setTypeParser(oid, format, parseFn) { + if (typeof format == "function") { + parseFn = format; + format = "text"; + } + typeParsers[format][oid] = parseFn; + } + __name(setTypeParser, "setTypeParser"); + textParsers.init(function(oid, converter) { + typeParsers.text[oid] = converter; + }); + binaryParsers.init(function(oid, converter) { + typeParsers.binary[oid] = converter; + }); + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/defaults.js +var require_defaults = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/defaults.js"(exports, module) { + "use strict"; + var user; + try { + user = process.platform === "win32" ? process.env.USERNAME : process.env.USER; + } catch { + } + module.exports = { + // database host. defaults to localhost + host: "localhost", + // database user's name + user, + // name of database to connect + database: void 0, + // database user's password + password: null, + // a Postgres connection string to be used instead of setting individual connection items + // NOTE: Setting this value will cause it to override any other value (such as database or user) defined + // in the defaults object. + connectionString: void 0, + // database port + port: 5432, + // number of rows to return at a time from a prepared statement's + // portal. 0 will return all rows at once + rows: 0, + // binary result mode + binary: false, + // Connection pool options - see https://github.com/brianc/node-pg-pool + // number of connections to use in connection pool + // 0 will disable connection pooling + max: 10, + // max milliseconds a client can go unused before it is removed + // from the pool and destroyed + idleTimeoutMillis: 3e4, + client_encoding: "", + ssl: false, + // SSL negotiation style: 'postgres' (traditional SSLRequest) or 'direct' + sslnegotiation: void 0, + application_name: void 0, + fallback_application_name: void 0, + options: void 0, + parseInputDatesAsUTC: false, + // max milliseconds any query using this connection will execute for before timing out in error. + // false=unlimited + statement_timeout: false, + // Abort any statement that waits longer than the specified duration in milliseconds while attempting to acquire a lock. + // false=unlimited + lock_timeout: false, + // Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds + // false=unlimited + idle_in_transaction_session_timeout: false, + // max milliseconds to wait for query to complete (client side) + query_timeout: false, + connect_timeout: 0, + keepalives: 1, + keepalives_idle: 0 + }; + var pgTypes = require_pg_types(); + var parseBigInteger = pgTypes.getTypeParser(20, "text"); + var parseBigIntegerArray = pgTypes.getTypeParser(1016, "text"); + module.exports.__defineSetter__("parseInt8", function(val) { + pgTypes.setTypeParser(20, "text", val ? pgTypes.getTypeParser(23, "text") : parseBigInteger); + pgTypes.setTypeParser(1016, "text", val ? pgTypes.getTypeParser(1007, "text") : parseBigIntegerArray); + }); + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/utils.js +var require_utils = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/utils.js"(exports, module) { + "use strict"; + var defaults2 = require_defaults(); + var nodeUtils = __require("util"); + var { isDate } = __require("util/types"); + var invalidDateDeprecationNotice = nodeUtils.deprecate( + () => { + }, + "Sending an invalid date to Postgres is deprecated and will throw an error in the next major version of pg. Ensure any Date object passed as a query parameter is valid.", + "PG_INVALID_DATE" + ); + function escapeElement(elementRepresentation) { + const escaped = elementRepresentation.replace(/\\/g, "\\\\").replace(/"/g, '\\"'); + return '"' + escaped + '"'; + } + __name(escapeElement, "escapeElement"); + function arrayString(val) { + let result = "{"; + for (let i = 0; i < val.length; i++) { + if (i > 0) { + result += ","; + } + let item = val[i]; + if (item == null) { + result += "NULL"; + } else if (Array.isArray(item)) { + result += arrayString(item); + } else if (ArrayBuffer.isView(item)) { + if (!(item instanceof Buffer)) { + item = Buffer.from(item.buffer, item.byteOffset, item.byteLength); + } + result += "\\\\x" + item.toString("hex"); + } else { + result += escapeElement(prepareValue(item)); + } + } + result += "}"; + return result; + } + __name(arrayString, "arrayString"); + var prepareValue = /* @__PURE__ */ __name(function(val, seen) { + if (val == null) { + return null; + } + if (typeof val === "object") { + if (val instanceof Buffer) { + return val; + } + if (ArrayBuffer.isView(val)) { + return Buffer.from(val.buffer, val.byteOffset, val.byteLength); + } + if (isDate(val)) { + if (isNaN(val.getTime())) { + invalidDateDeprecationNotice(); + } + if (defaults2.parseInputDatesAsUTC) { + return dateToStringUTC(val); + } else { + return dateToString(val); + } + } + if (Array.isArray(val)) { + return arrayString(val); + } + return prepareObject(val, seen); + } + return val.toString(); + }, "prepareValue"); + function prepareObject(val, seen) { + if (val && typeof val.toPostgres === "function") { + seen = seen || []; + if (seen.indexOf(val) !== -1) { + throw new Error('circular reference detected while preparing "' + val + '" for query'); + } + seen.push(val); + return prepareValue(val.toPostgres(prepareValue), seen); + } + return JSON.stringify(val); + } + __name(prepareObject, "prepareObject"); + function dateToString(date) { + let offset = -date.getTimezoneOffset(); + let year = date.getFullYear(); + const isBCYear = year < 1; + if (isBCYear) year = Math.abs(year) + 1; + let ret = String(year).padStart(4, "0") + "-" + String(date.getMonth() + 1).padStart(2, "0") + "-" + String(date.getDate()).padStart(2, "0") + "T" + String(date.getHours()).padStart(2, "0") + ":" + String(date.getMinutes()).padStart(2, "0") + ":" + String(date.getSeconds()).padStart(2, "0") + "." + String(date.getMilliseconds()).padStart(3, "0"); + if (offset < 0) { + ret += "-"; + offset *= -1; + } else { + ret += "+"; + } + ret += String(Math.floor(offset / 60)).padStart(2, "0") + ":" + String(offset % 60).padStart(2, "0"); + if (isBCYear) ret += " BC"; + return ret; + } + __name(dateToString, "dateToString"); + function dateToStringUTC(date) { + let year = date.getUTCFullYear(); + const isBCYear = year < 1; + if (isBCYear) year = Math.abs(year) + 1; + let ret = String(year).padStart(4, "0") + "-" + String(date.getUTCMonth() + 1).padStart(2, "0") + "-" + String(date.getUTCDate()).padStart(2, "0") + "T" + String(date.getUTCHours()).padStart(2, "0") + ":" + String(date.getUTCMinutes()).padStart(2, "0") + ":" + String(date.getUTCSeconds()).padStart(2, "0") + "." + String(date.getUTCMilliseconds()).padStart(3, "0"); + ret += "+00:00"; + if (isBCYear) ret += " BC"; + return ret; + } + __name(dateToStringUTC, "dateToStringUTC"); + function normalizeQueryConfig(config, values, callback) { + config = typeof config === "string" ? { text: config } : cloneQueryConfig(config); + if (values) { + if (typeof values === "function") { + config.callback = values; + } else { + config.values = values; + } + } + if (callback) { + config.callback = callback; + } + return config; + } + __name(normalizeQueryConfig, "normalizeQueryConfig"); + function cloneQueryConfig(config) { + if (config == null) { + return config; + } + return Object.defineProperties(Object.create(Object.getPrototypeOf(config)), Object.getOwnPropertyDescriptors(config)); + } + __name(cloneQueryConfig, "cloneQueryConfig"); + var escapeIdentifier2 = /* @__PURE__ */ __name(function(str) { + return '"' + str.replace(/"/g, '""') + '"'; + }, "escapeIdentifier"); + var escapeLiteral2 = /* @__PURE__ */ __name(function(str) { + let hasBackslash = false; + let escaped = "'"; + if (str == null) { + return "''"; + } + if (typeof str !== "string") { + return "''"; + } + for (let i = 0; i < str.length; i++) { + const c = str[i]; + if (c === "'") { + escaped += c + c; + } else if (c === "\\") { + escaped += c + c; + hasBackslash = true; + } else { + escaped += c; + } + } + escaped += "'"; + if (hasBackslash === true) { + escaped = " E" + escaped; + } + return escaped; + }, "escapeLiteral"); + module.exports = { + prepareValue: /* @__PURE__ */ __name(function prepareValueWrapper(value) { + return prepareValue(value); + }, "prepareValueWrapper"), + normalizeQueryConfig, + escapeIdentifier: escapeIdentifier2, + escapeLiteral: escapeLiteral2 + }; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/crypto/utils.js +var require_utils2 = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/crypto/utils.js"(exports, module) { + var nodeCrypto = __require("crypto"); + module.exports = { + postgresMd5PasswordHash, + randomBytes, + deriveKey, + sha256, + hashByName, + hmacSha256, + md5 + }; + var webCrypto = nodeCrypto.webcrypto || globalThis.crypto; + var subtleCrypto = webCrypto.subtle; + var textEncoder = new TextEncoder(); + function randomBytes(length) { + return webCrypto.getRandomValues(Buffer.alloc(length)); + } + __name(randomBytes, "randomBytes"); + async function md5(string) { + try { + return nodeCrypto.createHash("md5").update(string, "utf-8").digest("hex"); + } catch (e) { + const data = typeof string === "string" ? textEncoder.encode(string) : string; + const hash = await subtleCrypto.digest("MD5", data); + return Array.from(new Uint8Array(hash)).map((b) => b.toString(16).padStart(2, "0")).join(""); + } + } + __name(md5, "md5"); + async function postgresMd5PasswordHash(user, password, salt) { + const inner = await md5(password + user); + const outer = await md5(Buffer.concat([Buffer.from(inner), salt])); + return "md5" + outer; + } + __name(postgresMd5PasswordHash, "postgresMd5PasswordHash"); + async function sha256(text) { + return await subtleCrypto.digest("SHA-256", text); + } + __name(sha256, "sha256"); + async function hashByName(hashName, text) { + return await subtleCrypto.digest(hashName, text); + } + __name(hashByName, "hashByName"); + async function hmacSha256(keyBuffer, msg) { + const key = await subtleCrypto.importKey("raw", keyBuffer, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]); + return await subtleCrypto.sign("HMAC", key, textEncoder.encode(msg)); + } + __name(hmacSha256, "hmacSha256"); + async function deriveKey(password, salt, iterations) { + const key = await subtleCrypto.importKey("raw", textEncoder.encode(password), "PBKDF2", false, ["deriveBits"]); + const params = { name: "PBKDF2", hash: "SHA-256", salt, iterations }; + return await subtleCrypto.deriveBits(params, key, 32 * 8, ["deriveBits"]); + } + __name(deriveKey, "deriveKey"); + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/crypto/cert-signatures.js +var require_cert_signatures = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/crypto/cert-signatures.js"(exports, module) { + function x509Error(msg, cert) { + return new Error("SASL channel binding: " + msg + " when parsing public certificate " + cert.toString("base64")); + } + __name(x509Error, "x509Error"); + function readASN1Length(data, index) { + let length = data[index++]; + if (length < 128) return { length, index }; + const lengthBytes = length & 127; + if (lengthBytes > 4) throw x509Error("bad length", data); + length = 0; + for (let i = 0; i < lengthBytes; i++) { + length = length << 8 | data[index++]; + } + return { length, index }; + } + __name(readASN1Length, "readASN1Length"); + function readASN1OID(data, index) { + if (data[index++] !== 6) throw x509Error("non-OID data", data); + const { length: OIDLength, index: indexAfterOIDLength } = readASN1Length(data, index); + index = indexAfterOIDLength; + const lastIndex = index + OIDLength; + const byte1 = data[index++]; + let oid = (byte1 / 40 >> 0) + "." + byte1 % 40; + while (index < lastIndex) { + let value = 0; + while (index < lastIndex) { + const nextByte = data[index++]; + value = value << 7 | nextByte & 127; + if (nextByte < 128) break; + } + oid += "." + value; + } + return { oid, index }; + } + __name(readASN1OID, "readASN1OID"); + function expectASN1Seq(data, index) { + if (data[index++] !== 48) throw x509Error("non-sequence data", data); + return readASN1Length(data, index); + } + __name(expectASN1Seq, "expectASN1Seq"); + function signatureAlgorithmHashFromCertificate(data, index) { + if (index === void 0) index = 0; + index = expectASN1Seq(data, index).index; + const { length: certInfoLength, index: indexAfterCertInfoLength } = expectASN1Seq(data, index); + index = indexAfterCertInfoLength + certInfoLength; + index = expectASN1Seq(data, index).index; + const { oid, index: indexAfterOID } = readASN1OID(data, index); + switch (oid) { + // RSA + case "1.2.840.113549.1.1.4": + return "MD5"; + case "1.2.840.113549.1.1.5": + return "SHA-1"; + case "1.2.840.113549.1.1.11": + return "SHA-256"; + case "1.2.840.113549.1.1.12": + return "SHA-384"; + case "1.2.840.113549.1.1.13": + return "SHA-512"; + case "1.2.840.113549.1.1.14": + return "SHA-224"; + case "1.2.840.113549.1.1.15": + return "SHA512-224"; + case "1.2.840.113549.1.1.16": + return "SHA512-256"; + // ECDSA + case "1.2.840.10045.4.1": + return "SHA-1"; + case "1.2.840.10045.4.3.1": + return "SHA-224"; + case "1.2.840.10045.4.3.2": + return "SHA-256"; + case "1.2.840.10045.4.3.3": + return "SHA-384"; + case "1.2.840.10045.4.3.4": + return "SHA-512"; + // RSASSA-PSS: hash is indicated separately + case "1.2.840.113549.1.1.10": { + index = indexAfterOID; + index = expectASN1Seq(data, index).index; + if (data[index++] !== 160) throw x509Error("non-tag data", data); + index = readASN1Length(data, index).index; + index = expectASN1Seq(data, index).index; + const { oid: hashOID } = readASN1OID(data, index); + switch (hashOID) { + // standalone hash OIDs + case "1.2.840.113549.2.5": + return "MD5"; + case "1.3.14.3.2.26": + return "SHA-1"; + case "2.16.840.1.101.3.4.2.1": + return "SHA-256"; + case "2.16.840.1.101.3.4.2.2": + return "SHA-384"; + case "2.16.840.1.101.3.4.2.3": + return "SHA-512"; + } + throw x509Error("unknown hash OID " + hashOID, data); + } + // Ed25519 -- see https://github.com/openssl/openssl/issues/15477 + case "1.3.101.110": + case "1.3.101.112": + return "SHA-512"; + // Ed448 -- still not in pg 17.2 (if supported, digest would be SHAKE256 x 64 bytes) + case "1.3.101.111": + case "1.3.101.113": + throw x509Error("Ed448 certificate channel binding is not currently supported by Postgres"); + } + throw x509Error("unknown OID " + oid, data); + } + __name(signatureAlgorithmHashFromCertificate, "signatureAlgorithmHashFromCertificate"); + module.exports = { signatureAlgorithmHashFromCertificate }; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/crypto/sasl.js +var require_sasl = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/crypto/sasl.js"(exports, module) { + "use strict"; + var crypto = require_utils2(); + var { signatureAlgorithmHashFromCertificate } = require_cert_signatures(); + function saslprep(password) { + const nonAsciiSpace = /[\u00A0\u1680\u2000-\u200B\u202F\u205F\u3000]/g; + const mappedToNothing = /[\u00AD\u034F\u1806\u180B\u180C\u180D\u200C\u200D\u2060\uFE00-\uFE0F\uFEFF]/g; + return password.replace(nonAsciiSpace, " ").replace(mappedToNothing, "").normalize("NFKC"); + } + __name(saslprep, "saslprep"); + var DEFAULT_MAX_SCRAM_ITERATIONS = 1e5; + function startSession(mechanisms, stream, scramMaxIterations = DEFAULT_MAX_SCRAM_ITERATIONS) { + const candidates = ["SCRAM-SHA-256"]; + if (stream) candidates.unshift("SCRAM-SHA-256-PLUS"); + const mechanism = candidates.find((candidate) => mechanisms.includes(candidate)); + if (!mechanism) { + throw new Error("SASL: Only mechanism(s) " + candidates.join(" and ") + " are supported"); + } + if (mechanism === "SCRAM-SHA-256-PLUS" && typeof stream.getPeerCertificate !== "function") { + throw new Error("SASL: Mechanism SCRAM-SHA-256-PLUS requires a certificate"); + } + const clientNonce = crypto.randomBytes(18).toString("base64"); + const gs2Header = mechanism === "SCRAM-SHA-256-PLUS" ? "p=tls-server-end-point" : stream ? "y" : "n"; + return { + mechanism, + clientNonce, + response: gs2Header + ",,n=*,r=" + clientNonce, + message: "SASLInitialResponse", + scramMaxIterations + }; + } + __name(startSession, "startSession"); + async function continueSession(session, password, serverData, stream) { + if (session.message !== "SASLInitialResponse") { + throw new Error("SASL: Last message was not SASLInitialResponse"); + } + if (typeof password !== "string") { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string"); + } + if (password === "") { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a non-empty string"); + } + if (typeof serverData !== "string") { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: serverData must be a string"); + } + const sv = parseServerFirstMessage(serverData); + if (!sv.nonce.startsWith(session.clientNonce)) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce does not start with client nonce"); + } else if (sv.nonce.length === session.clientNonce.length) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce is too short"); + } + const scramMaxIterations = typeof session.scramMaxIterations === "number" ? session.scramMaxIterations : DEFAULT_MAX_SCRAM_ITERATIONS; + if (scramMaxIterations !== 0 && sv.iteration > scramMaxIterations) { + throw new Error( + "SASL: SCRAM-SERVER-FIRST-MESSAGE: iteration count " + sv.iteration + " exceeds scramMaxIterations of " + scramMaxIterations + ); + } + const clientFirstMessageBare = "n=*,r=" + session.clientNonce; + const serverFirstMessage = "r=" + sv.nonce + ",s=" + sv.salt + ",i=" + sv.iteration; + let channelBinding = stream ? "eSws" : "biws"; + if (session.mechanism === "SCRAM-SHA-256-PLUS") { + const peerCert = stream.getPeerCertificate().raw; + let hashName = signatureAlgorithmHashFromCertificate(peerCert); + if (hashName === "MD5" || hashName === "SHA-1") hashName = "SHA-256"; + const certHash = await crypto.hashByName(hashName, peerCert); + const bindingData = Buffer.concat([Buffer.from("p=tls-server-end-point,,"), Buffer.from(certHash)]); + channelBinding = bindingData.toString("base64"); + } + const clientFinalMessageWithoutProof = "c=" + channelBinding + ",r=" + sv.nonce; + const authMessage = clientFirstMessageBare + "," + serverFirstMessage + "," + clientFinalMessageWithoutProof; + const saltBytes = Buffer.from(sv.salt, "base64"); + const saltedPassword = await crypto.deriveKey(saslprep(password), saltBytes, sv.iteration); + const clientKey = await crypto.hmacSha256(saltedPassword, "Client Key"); + const storedKey = await crypto.sha256(clientKey); + const clientSignature = await crypto.hmacSha256(storedKey, authMessage); + const clientProof = xorBuffers(Buffer.from(clientKey), Buffer.from(clientSignature)).toString("base64"); + const serverKey = await crypto.hmacSha256(saltedPassword, "Server Key"); + const serverSignatureBytes = await crypto.hmacSha256(serverKey, authMessage); + session.message = "SASLResponse"; + session.serverSignature = Buffer.from(serverSignatureBytes).toString("base64"); + session.response = clientFinalMessageWithoutProof + ",p=" + clientProof; + } + __name(continueSession, "continueSession"); + function finalizeSession(session, serverData) { + if (session.message !== "SASLResponse") { + throw new Error("SASL: Last message was not SASLResponse"); + } + if (typeof serverData !== "string") { + throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: serverData must be a string"); + } + const { serverSignature } = parseServerFinalMessage(serverData); + if (serverSignature !== session.serverSignature) { + throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature does not match"); + } + } + __name(finalizeSession, "finalizeSession"); + function isPrintableChars(text) { + if (typeof text !== "string") { + throw new TypeError("SASL: text must be a string"); + } + return text.split("").map((_, i) => text.charCodeAt(i)).every((c) => c >= 33 && c <= 43 || c >= 45 && c <= 126); + } + __name(isPrintableChars, "isPrintableChars"); + function isBase64(text) { + return /^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$/.test(text); + } + __name(isBase64, "isBase64"); + function parseAttributePairs(text) { + if (typeof text !== "string") { + throw new TypeError("SASL: attribute pairs text must be a string"); + } + return new Map( + text.split(",").map((attrValue) => { + if (!/^.=/.test(attrValue)) { + throw new Error("SASL: Invalid attribute pair entry"); + } + const name = attrValue[0]; + const value = attrValue.substring(2); + return [name, value]; + }) + ); + } + __name(parseAttributePairs, "parseAttributePairs"); + function parseServerFirstMessage(data) { + const attrPairs = parseAttributePairs(data); + const nonce = attrPairs.get("r"); + if (!nonce) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce missing"); + } else if (!isPrintableChars(nonce)) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce must only contain printable characters"); + } + const salt = attrPairs.get("s"); + if (!salt) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: salt missing"); + } else if (!isBase64(salt)) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: salt must be base64"); + } + const iterationText = attrPairs.get("i"); + if (!iterationText) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: iteration missing"); + } else if (!/^[1-9][0-9]*$/.test(iterationText)) { + throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: invalid iteration count"); + } + const iteration = parseInt(iterationText, 10); + return { + nonce, + salt, + iteration + }; + } + __name(parseServerFirstMessage, "parseServerFirstMessage"); + function parseServerFinalMessage(serverData) { + const attrPairs = parseAttributePairs(serverData); + const error = attrPairs.get("e"); + const serverSignature = attrPairs.get("v"); + if (error) { + throw new Error(`SASL: SCRAM-SERVER-FINAL-MESSAGE: server returned error: "${error}"`); + } + if (!serverSignature) { + throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature is missing"); + } else if (!isBase64(serverSignature)) { + throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature must be base64"); + } + return { + serverSignature + }; + } + __name(parseServerFinalMessage, "parseServerFinalMessage"); + function xorBuffers(a, b) { + if (!Buffer.isBuffer(a)) { + throw new TypeError("first argument must be a Buffer"); + } + if (!Buffer.isBuffer(b)) { + throw new TypeError("second argument must be a Buffer"); + } + if (a.length !== b.length) { + throw new Error("Buffer lengths must match"); + } + if (a.length === 0) { + throw new Error("Buffers cannot be empty"); + } + return Buffer.from(a.map((_, i) => a[i] ^ b[i])); + } + __name(xorBuffers, "xorBuffers"); + module.exports = { + startSession, + continueSession, + finalizeSession, + DEFAULT_MAX_SCRAM_ITERATIONS + }; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/type-overrides.js +var require_type_overrides = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/type-overrides.js"(exports, module) { + "use strict"; + var types2 = require_pg_types(); + function TypeOverrides2(userTypes) { + this._types = userTypes || types2; + this.text = {}; + this.binary = {}; + } + __name(TypeOverrides2, "TypeOverrides"); + TypeOverrides2.prototype.getOverrides = function(format) { + switch (format) { + case "text": + return this.text; + case "binary": + return this.binary; + default: + return {}; + } + }; + TypeOverrides2.prototype.setTypeParser = function(oid, format, parseFn) { + if (typeof format === "function") { + parseFn = format; + format = "text"; + } + this.getOverrides(format)[oid] = parseFn; + }; + TypeOverrides2.prototype.getTypeParser = function(oid, format) { + format = format || "text"; + return this.getOverrides(format)[oid] || this._types.getTypeParser(oid, format); + }; + module.exports = TypeOverrides2; + } +}); + +// ../../node_modules/.pnpm/pg-connection-string@2.14.1/node_modules/pg-connection-string/index.js +var require_pg_connection_string = __commonJS({ + "../../node_modules/.pnpm/pg-connection-string@2.14.1/node_modules/pg-connection-string/index.js"(exports, module) { + "use strict"; + function parse(str, options = {}) { + if (str.charAt(0) === "/") { + const config2 = str.split(" "); + return { host: config2[0], database: config2[1] }; + } + const config = /* @__PURE__ */ Object.create(null); + let result; + let dummyHost = false; + if (/ |%[^a-f0-9]|%[a-f0-9][^a-f0-9]/i.test(str)) { + str = encodeURI(str).replace(/%25(\d\d)/g, "%$1"); + } + try { + try { + result = new URL(str, "postgres://base"); + } catch (e) { + result = new URL(str.replace("@/", "@___DUMMY___/"), "postgres://base"); + dummyHost = true; + } + } catch (err) { + err.input && (err.input = "*****REDACTED*****"); + throw err; + } + for (const entry of result.searchParams.entries()) { + config[entry[0]] = entry[1]; + } + config.user = config.user || decodeURIComponent(result.username); + config.password = config.password || decodeURIComponent(result.password); + if (result.protocol == "socket:") { + config.host = decodeURI(result.pathname); + config.database = result.searchParams.get("db"); + config.client_encoding = result.searchParams.get("encoding"); + return config; + } + const hostname = (dummyHost ? "" : result.hostname).replace(/^\[(.+)\]$/, "$1"); + if (!config.host) { + config.host = decodeURIComponent(hostname); + } else if (hostname && /^%2f/i.test(hostname)) { + result.pathname = hostname + result.pathname; + } + if (!config.port) { + config.port = result.port; + } + const pathname = result.pathname.slice(1) || null; + config.database = pathname ? decodeURI(pathname) : null; + if (config.ssl === "true" || config.ssl === "1") { + config.ssl = true; + } + if (config.ssl === "0") { + config.ssl = false; + } + if (config.sslcert || config.sslkey || config.sslrootcert || config.sslmode) { + config.ssl = {}; + } + if (config.sslnegotiation === "direct" && config.ssl === void 0) { + config.ssl = true; + } + const fs = config.sslcert || config.sslkey || config.sslrootcert ? __require("fs") : null; + if (config.sslcert) { + config.ssl.cert = fs.readFileSync(config.sslcert).toString(); + } + if (config.sslkey) { + config.ssl.key = fs.readFileSync(config.sslkey).toString(); + } + if (config.sslrootcert) { + config.ssl.ca = fs.readFileSync(config.sslrootcert).toString(); + } + if (options.useLibpqCompat && config.uselibpqcompat) { + throw new Error("Both useLibpqCompat and uselibpqcompat are set. Please use only one of them."); + } + if (config.uselibpqcompat === "true" || options.useLibpqCompat) { + switch (config.sslmode) { + case "disable": { + config.ssl = false; + break; + } + case "prefer": { + config.ssl.rejectUnauthorized = false; + break; + } + case "require": { + if (config.sslrootcert) { + config.ssl.checkServerIdentity = function() { + }; + } else { + config.ssl.rejectUnauthorized = false; + } + break; + } + case "verify-ca": { + if (!config.ssl.ca) { + throw new Error( + "SECURITY WARNING: Using sslmode=verify-ca requires specifying a CA with sslrootcert. If a public CA is used, verify-ca allows connections to a server that somebody else may have registered with the CA, making you vulnerable to Man-in-the-Middle attacks. Either specify a custom CA certificate with sslrootcert parameter or use sslmode=verify-full for proper security." + ); + } + config.ssl.checkServerIdentity = function() { + }; + break; + } + case "verify-full": { + break; + } + } + } else { + switch (config.sslmode) { + case "disable": { + config.ssl = false; + break; + } + case "prefer": + case "require": + case "verify-ca": + case "verify-full": { + if (config.sslmode !== "verify-full") { + deprecatedSslModeWarning(config.sslmode); + } + break; + } + case "no-verify": { + config.ssl.rejectUnauthorized = false; + break; + } + } + } + return config; + } + __name(parse, "parse"); + function toConnectionOptions(sslConfig) { + const connectionOptions = Object.entries(sslConfig).reduce((c, [key, value]) => { + if (value !== void 0 && value !== null) { + c[key] = value; + } + return c; + }, /* @__PURE__ */ Object.create(null)); + return connectionOptions; + } + __name(toConnectionOptions, "toConnectionOptions"); + function toClientConfig(config) { + const poolConfig = Object.entries(config).reduce((c, [key, value]) => { + if (key === "ssl") { + const sslConfig = value; + if (typeof sslConfig === "boolean") { + c[key] = sslConfig; + } + if (typeof sslConfig === "object") { + c[key] = toConnectionOptions(sslConfig); + } + } else if (value !== void 0 && value !== null) { + if (key === "port") { + if (value !== "") { + const v = parseInt(value, 10); + if (isNaN(v)) { + throw new Error(`Invalid ${key}: ${value}`); + } + c[key] = v; + } + } else { + c[key] = value; + } + } + return c; + }, /* @__PURE__ */ Object.create(null)); + return poolConfig; + } + __name(toClientConfig, "toClientConfig"); + function parseIntoClientConfig(str) { + return toClientConfig(parse(str)); + } + __name(parseIntoClientConfig, "parseIntoClientConfig"); + function deprecatedSslModeWarning(sslmode) { + if (!deprecatedSslModeWarning.warned && typeof process !== "undefined" && process.emitWarning) { + deprecatedSslModeWarning.warned = true; + process.emitWarning(`SECURITY WARNING: The SSL modes 'prefer', 'require', and 'verify-ca' are treated as aliases for 'verify-full'. +In the next major version (pg-connection-string v3.0.0 and pg v9.0.0), these modes will adopt standard libpq semantics, which have weaker security guarantees. + +To prepare for this change: +- If you want the current behavior, explicitly use 'sslmode=verify-full' +- If you want libpq compatibility now, use 'uselibpqcompat=true&sslmode=${sslmode}' + +See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode definitions.`); + } + } + __name(deprecatedSslModeWarning, "deprecatedSslModeWarning"); + module.exports = parse; + parse.parse = parse; + parse.toClientConfig = toClientConfig; + parse.parseIntoClientConfig = parseIntoClientConfig; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/connection-parameters.js +var require_connection_parameters = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/connection-parameters.js"(exports, module) { + "use strict"; + var dns = __require("dns"); + var defaults2 = require_defaults(); + var parse = require_pg_connection_string().parse; + var val = /* @__PURE__ */ __name(function(key, config, envVar) { + if (config[key]) { + return config[key]; + } + if (envVar === void 0) { + envVar = process.env["PG" + key.toUpperCase()]; + } else if (envVar === false) { + } else { + envVar = process.env[envVar]; + } + return envVar || defaults2[key]; + }, "val"); + var readSSLConfigFromEnvironment = /* @__PURE__ */ __name(function() { + switch (process.env.PGSSLMODE) { + case "disable": + return false; + case "prefer": + case "require": + case "verify-ca": + case "verify-full": + return true; + case "no-verify": + return { rejectUnauthorized: false }; + } + return defaults2.ssl; + }, "readSSLConfigFromEnvironment"); + var quoteParamValue = /* @__PURE__ */ __name(function(value) { + return "'" + ("" + value).replace(/\\/g, "\\\\").replace(/'/g, "\\'") + "'"; + }, "quoteParamValue"); + var add = /* @__PURE__ */ __name(function(params, config, paramName) { + const value = config[paramName]; + if (value !== void 0 && value !== null) { + params.push(paramName + "=" + quoteParamValue(value)); + } + }, "add"); + var ConnectionParameters = class { + static { + __name(this, "ConnectionParameters"); + } + constructor(config) { + config = typeof config === "string" ? parse(config) : config || {}; + if (config.connectionString) { + config = Object.assign({}, config, parse(config.connectionString)); + } + this.user = val("user", config); + this.database = val("database", config); + if (this.database === void 0) { + this.database = this.user; + } + this.port = parseInt(val("port", config), 10); + this.host = val("host", config); + Object.defineProperty(this, "password", { + configurable: true, + enumerable: false, + writable: true, + value: val("password", config) + }); + this.binary = val("binary", config); + this.options = val("options", config); + this.ssl = typeof config.ssl === "undefined" ? readSSLConfigFromEnvironment() : config.ssl; + if (typeof this.ssl === "string") { + if (this.ssl === "true") { + this.ssl = true; + } + } + if (this.ssl === "no-verify") { + this.ssl = { rejectUnauthorized: false }; + } + if (this.ssl && this.ssl.key) { + Object.defineProperty(this.ssl, "key", { + enumerable: false + }); + } + this.sslnegotiation = val("sslnegotiation", config, "PGSSLNEGOTIATION"); + if (this.sslnegotiation !== void 0 && this.sslnegotiation !== "postgres" && this.sslnegotiation !== "direct") { + throw new Error( + `Invalid sslnegotiation value: "${this.sslnegotiation}". Valid values are "postgres" and "direct".` + ); + } + if (this.sslnegotiation === "direct" && !this.ssl) { + throw new Error("sslnegotiation=direct requires SSL to be enabled"); + } + this.client_encoding = val("client_encoding", config); + this.replication = val("replication", config); + this.isDomainSocket = !(this.host || "").indexOf("/"); + this.application_name = val("application_name", config, "PGAPPNAME"); + this.fallback_application_name = val("fallback_application_name", config, false); + this.statement_timeout = val("statement_timeout", config, false); + this.lock_timeout = val("lock_timeout", config, false); + this.idle_in_transaction_session_timeout = val("idle_in_transaction_session_timeout", config, false); + this.query_timeout = val("query_timeout", config, false); + if (config.connectionTimeoutMillis === void 0) { + this.connect_timeout = process.env.PGCONNECT_TIMEOUT || 0; + } else { + this.connect_timeout = Math.floor(config.connectionTimeoutMillis / 1e3); + } + if (config.keepAlive === false) { + this.keepalives = 0; + } else if (config.keepAlive === true) { + this.keepalives = 1; + } + if (typeof config.keepAliveInitialDelayMillis === "number") { + this.keepalives_idle = Math.floor(config.keepAliveInitialDelayMillis / 1e3); + } + } + getLibpqConnectionString(cb) { + const params = []; + add(params, this, "user"); + add(params, this, "password"); + add(params, this, "port"); + add(params, this, "application_name"); + add(params, this, "fallback_application_name"); + add(params, this, "connect_timeout"); + add(params, this, "options"); + const ssl = typeof this.ssl === "object" ? this.ssl : this.ssl ? { sslmode: this.ssl } : {}; + add(params, ssl, "sslmode"); + add(params, ssl, "sslca"); + add(params, ssl, "sslkey"); + add(params, ssl, "sslcert"); + add(params, ssl, "sslrootcert"); + add(params, this, "sslnegotiation"); + if (this.database) { + params.push("dbname=" + quoteParamValue(this.database)); + } + if (this.replication) { + params.push("replication=" + quoteParamValue(this.replication)); + } + if (this.host) { + params.push("host=" + quoteParamValue(this.host)); + } + if (this.isDomainSocket) { + return cb(null, params.join(" ")); + } + if (this.client_encoding) { + params.push("client_encoding=" + quoteParamValue(this.client_encoding)); + } + dns.lookup(this.host, function(err, address) { + if (err) return cb(err, null); + params.push("hostaddr=" + quoteParamValue(address)); + return cb(null, params.join(" ")); + }); + } + }; + module.exports = ConnectionParameters; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/result.js +var require_result = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/result.js"(exports, module) { + "use strict"; + var types2 = require_pg_types(); + var matchRegexp = /^([A-Za-z]+)(?: (\d+))?(?: (\d+))?/; + var Result2 = class { + static { + __name(this, "Result"); + } + constructor(rowMode, types3) { + this.command = null; + this.rowCount = null; + this.oid = null; + this.rows = []; + this.fields = []; + this._parsers = void 0; + this._types = types3; + this.RowCtor = null; + this.rowAsArray = rowMode === "array"; + if (this.rowAsArray) { + this.parseRow = this._parseRowAsArray; + } + this._prebuiltEmptyResultObject = null; + } + // adds a command complete message + addCommandComplete(msg) { + let match; + if (msg.text) { + match = matchRegexp.exec(msg.text); + } else { + match = matchRegexp.exec(msg.command); + } + if (match) { + this.command = match[1]; + if (match[3]) { + this.oid = parseInt(match[2], 10); + this.rowCount = parseInt(match[3], 10); + } else if (match[2]) { + this.rowCount = parseInt(match[2], 10); + } + } + } + _parseRowAsArray(rowData) { + const row = new Array(rowData.length); + for (let i = 0, len = rowData.length; i < len; i++) { + const rawValue = rowData[i]; + if (rawValue !== null) { + row[i] = this._parsers[i](rawValue); + } else { + row[i] = null; + } + } + return row; + } + parseRow(rowData) { + const row = { ...this._prebuiltEmptyResultObject }; + for (let i = 0, len = rowData.length; i < len; i++) { + const rawValue = rowData[i]; + const field = this.fields[i].name; + if (rawValue !== null) { + const v = this.fields[i].format === "binary" ? Buffer.from(rawValue) : rawValue; + row[field] = this._parsers[i](v); + } else { + row[field] = null; + } + } + return row; + } + addRow(row) { + this.rows.push(row); + } + addFields(fieldDescriptions) { + this.fields = fieldDescriptions; + if (this.fields.length) { + this._parsers = new Array(fieldDescriptions.length); + } + const row = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < fieldDescriptions.length; i++) { + const desc = fieldDescriptions[i]; + row[desc.name] = null; + if (this._types) { + this._parsers[i] = this._types.getTypeParser(desc.dataTypeID, desc.format || "text"); + } else { + this._parsers[i] = types2.getTypeParser(desc.dataTypeID, desc.format || "text"); + } + } + this._prebuiltEmptyResultObject = { ...row }; + } + }; + module.exports = Result2; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/query.js +var require_query = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/query.js"(exports, module) { + "use strict"; + var { EventEmitter } = __require("events"); + var Result2 = require_result(); + var utils = require_utils(); + var Query2 = class extends EventEmitter { + static { + __name(this, "Query"); + } + constructor(config, values, callback) { + super(); + config = utils.normalizeQueryConfig(config, values, callback); + this.text = config.text; + this.values = config.values; + this.rows = config.rows; + this.types = config.types; + this.name = config.name; + this.queryMode = config.queryMode; + this.binary = config.binary; + this.portal = config.portal || ""; + this.callback = config.callback; + this._rowMode = config.rowMode; + if (process.domain && config.callback) { + this.callback = process.domain.bind(config.callback); + } + this._result = new Result2(this._rowMode, this.types); + this._results = this._result; + this._canceledDueToError = false; + } + requiresPreparation() { + if (this.queryMode === "extended") { + return true; + } + if (this.name) { + return true; + } + if (this.rows) { + return true; + } + if (!this.text) { + return false; + } + if (!this.values) { + return false; + } + return this.values.length > 0; + } + _checkForMultirow() { + if (this._result.command) { + if (!Array.isArray(this._results)) { + this._results = [this._result]; + } + this._result = new Result2(this._rowMode, this._result._types); + this._results.push(this._result); + } + } + // associates row metadata from the supplied + // message with this query object + // metadata used when parsing row results + handleRowDescription(msg) { + this._checkForMultirow(); + this._result.addFields(msg.fields); + this._accumulateRows = this.callback || !this.listeners("row").length; + } + handleDataRow(msg) { + let row; + if (this._canceledDueToError) { + return; + } + try { + row = this._result.parseRow(msg.fields); + } catch (err) { + this._canceledDueToError = err; + return; + } + this.emit("row", row, this._result); + if (this._accumulateRows) { + this._result.addRow(row); + } + } + handleCommandComplete(msg, connection) { + this._checkForMultirow(); + this._result.addCommandComplete(msg); + if (this.rows) { + connection.sync(); + } + } + // if a named prepared statement is created with empty query text + // the backend will send an emptyQuery message but *not* a command complete message + // since we pipeline sync immediately after execute we don't need to do anything here + // unless we have rows specified, in which case we did not pipeline the initial sync call + handleEmptyQuery(connection) { + if (this.rows) { + connection.sync(); + } + } + handleError(err, connection) { + if (this._canceledDueToError) { + err = this._canceledDueToError; + this._canceledDueToError = false; + } + if (this.callback) { + return this.callback(err); + } + this.emit("error", err); + } + handleReadyForQuery(con) { + if (this._canceledDueToError) { + return this.handleError(this._canceledDueToError, con); + } + if (this.callback) { + try { + this.callback(null, this._results); + } catch (err) { + process.nextTick(() => { + throw err; + }); + } + } + this.emit("end", this._results); + } + submit(connection) { + if (typeof this.text !== "string" && typeof this.name !== "string") { + return new Error("A query must have either text or a name. Supplying neither is unsupported."); + } + const previous = connection.parsedStatements[this.name] || connection.submittedNamedStatements[this.name]; + if (this.text && previous && this.text !== previous) { + return new Error(`Prepared statements must be unique - '${this.name}' was used for a different statement`); + } + if (this.values && !Array.isArray(this.values)) { + return new Error("Query values must be an array"); + } + if (this.requiresPreparation()) { + connection.stream.cork && connection.stream.cork(); + try { + this.prepare(connection); + } finally { + connection.stream.uncork && connection.stream.uncork(); + } + } else { + connection.query(this.text); + } + return null; + } + hasBeenParsed(connection) { + return this.name && (connection.parsedStatements[this.name] !== void 0 || connection.submittedNamedStatements[this.name] !== void 0); + } + handlePortalSuspended(connection) { + this._getRows(connection, this.rows); + } + _getRows(connection, rows) { + connection.execute({ + portal: this.portal, + rows + }); + if (!rows) { + connection.sync(); + } else { + connection.flush(); + } + } + // http://developer.postgresql.org/pgdocs/postgres/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY + prepare(connection) { + if (!this.hasBeenParsed(connection)) { + connection.parse({ + text: this.text, + name: this.name, + types: this.types + }); + if (this.name) { + connection.submittedNamedStatements[this.name] = this.text; + } + } + try { + connection.bind({ + portal: this.portal, + statement: this.name, + values: this.values, + binary: this.binary, + valueMapper: utils.prepareValue + }); + } catch (err) { + connection.close({ type: "S", name: this.name }); + connection.sync(); + this.handleError(err, connection); + return; + } + connection.describe({ + type: "P", + name: this.portal || "" + }); + this._getRows(connection, this.rows); + } + handleCopyInResponse(connection) { + connection.sendCopyFail("No source stream defined"); + } + handleCopyData(msg, connection) { + } + }; + module.exports = Query2; + } +}); + +// ../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/messages.js +var require_messages = __commonJS({ + "../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/messages.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.NoticeMessage = exports.DataRowMessage = exports.CommandCompleteMessage = exports.ReadyForQueryMessage = exports.NotificationResponseMessage = exports.BackendKeyDataMessage = exports.AuthenticationMD5Password = exports.ParameterStatusMessage = exports.ParameterDescriptionMessage = exports.RowDescriptionMessage = exports.Field = exports.CopyResponse = exports.CopyDataMessage = exports.DatabaseError = exports.copyDone = exports.emptyQuery = exports.replicationStart = exports.portalSuspended = exports.noData = exports.closeComplete = exports.bindComplete = exports.parseComplete = void 0; + exports.parseComplete = { + name: "parseComplete", + length: 5 + }; + exports.bindComplete = { + name: "bindComplete", + length: 5 + }; + exports.closeComplete = { + name: "closeComplete", + length: 5 + }; + exports.noData = { + name: "noData", + length: 5 + }; + exports.portalSuspended = { + name: "portalSuspended", + length: 5 + }; + exports.replicationStart = { + name: "replicationStart", + length: 4 + }; + exports.emptyQuery = { + name: "emptyQuery", + length: 4 + }; + exports.copyDone = { + name: "copyDone", + length: 4 + }; + var DatabaseError2 = class extends Error { + static { + __name(this, "DatabaseError"); + } + constructor(message, length, name) { + super(message); + this.length = length; + this.name = name; + } + }; + exports.DatabaseError = DatabaseError2; + var CopyDataMessage = class { + static { + __name(this, "CopyDataMessage"); + } + constructor(length, chunk) { + this.length = length; + this.chunk = chunk; + this.name = "copyData"; + } + }; + exports.CopyDataMessage = CopyDataMessage; + var CopyResponse = class { + static { + __name(this, "CopyResponse"); + } + constructor(length, name, binary, columnCount) { + this.length = length; + this.name = name; + this.binary = binary; + this.columnTypes = new Array(columnCount); + } + }; + exports.CopyResponse = CopyResponse; + var Field = class { + static { + __name(this, "Field"); + } + constructor(name, tableID, columnID, dataTypeID, dataTypeSize, dataTypeModifier, format) { + this.name = name; + this.tableID = tableID; + this.columnID = columnID; + this.dataTypeID = dataTypeID; + this.dataTypeSize = dataTypeSize; + this.dataTypeModifier = dataTypeModifier; + this.format = format; + } + }; + exports.Field = Field; + var RowDescriptionMessage = class { + static { + __name(this, "RowDescriptionMessage"); + } + constructor(length, fieldCount) { + this.length = length; + this.fieldCount = fieldCount; + this.name = "rowDescription"; + this.fields = new Array(this.fieldCount); + } + }; + exports.RowDescriptionMessage = RowDescriptionMessage; + var ParameterDescriptionMessage = class { + static { + __name(this, "ParameterDescriptionMessage"); + } + constructor(length, parameterCount) { + this.length = length; + this.parameterCount = parameterCount; + this.name = "parameterDescription"; + this.dataTypeIDs = new Array(this.parameterCount); + } + }; + exports.ParameterDescriptionMessage = ParameterDescriptionMessage; + var ParameterStatusMessage = class { + static { + __name(this, "ParameterStatusMessage"); + } + constructor(length, parameterName, parameterValue) { + this.length = length; + this.parameterName = parameterName; + this.parameterValue = parameterValue; + this.name = "parameterStatus"; + } + }; + exports.ParameterStatusMessage = ParameterStatusMessage; + var AuthenticationMD5Password = class { + static { + __name(this, "AuthenticationMD5Password"); + } + constructor(length, salt) { + this.length = length; + this.salt = salt; + this.name = "authenticationMD5Password"; + } + }; + exports.AuthenticationMD5Password = AuthenticationMD5Password; + var BackendKeyDataMessage = class { + static { + __name(this, "BackendKeyDataMessage"); + } + constructor(length, processID, secretKey) { + this.length = length; + this.processID = processID; + this.secretKey = secretKey; + this.name = "backendKeyData"; + } + }; + exports.BackendKeyDataMessage = BackendKeyDataMessage; + var NotificationResponseMessage = class { + static { + __name(this, "NotificationResponseMessage"); + } + constructor(length, processId, channel, payload) { + this.length = length; + this.processId = processId; + this.channel = channel; + this.payload = payload; + this.name = "notification"; + } + }; + exports.NotificationResponseMessage = NotificationResponseMessage; + var ReadyForQueryMessage = class { + static { + __name(this, "ReadyForQueryMessage"); + } + constructor(length, status) { + this.length = length; + this.status = status; + this.name = "readyForQuery"; + } + }; + exports.ReadyForQueryMessage = ReadyForQueryMessage; + var CommandCompleteMessage = class { + static { + __name(this, "CommandCompleteMessage"); + } + constructor(length, text) { + this.length = length; + this.text = text; + this.name = "commandComplete"; + } + }; + exports.CommandCompleteMessage = CommandCompleteMessage; + var DataRowMessage = class { + static { + __name(this, "DataRowMessage"); + } + constructor(length, fields) { + this.length = length; + this.fields = fields; + this.name = "dataRow"; + this.fieldCount = fields.length; + } + }; + exports.DataRowMessage = DataRowMessage; + var NoticeMessage = class { + static { + __name(this, "NoticeMessage"); + } + constructor(length, message) { + this.length = length; + this.message = message; + this.name = "notice"; + } + }; + exports.NoticeMessage = NoticeMessage; + } +}); + +// ../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/buffer-writer.js +var require_buffer_writer = __commonJS({ + "../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/buffer-writer.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Writer = void 0; + var Writer = class { + static { + __name(this, "Writer"); + } + constructor(size = 256) { + this.size = size; + this.offset = 5; + this.headerPosition = 0; + this.buffer = Buffer.allocUnsafe(size); + } + ensure(size) { + const remaining = this.buffer.length - this.offset; + if (remaining < size) { + const oldBuffer = this.buffer; + const newSize = oldBuffer.length + (oldBuffer.length >> 1) + size; + this.buffer = Buffer.allocUnsafe(newSize); + oldBuffer.copy(this.buffer, 0, 0, this.offset); + } + } + addInt32(num) { + this.ensure(4); + this.buffer[this.offset++] = num >>> 24 & 255; + this.buffer[this.offset++] = num >>> 16 & 255; + this.buffer[this.offset++] = num >>> 8 & 255; + this.buffer[this.offset++] = num >>> 0 & 255; + return this; + } + addInt16(num) { + this.ensure(2); + this.buffer[this.offset++] = num >>> 8 & 255; + this.buffer[this.offset++] = num >>> 0 & 255; + return this; + } + addCString(string) { + if (!string) { + this.ensure(1); + } else { + const len = Buffer.byteLength(string); + this.ensure(len + 1); + this.buffer.write(string, this.offset, "utf-8"); + this.offset += len; + } + this.buffer[this.offset++] = 0; + return this; + } + addString(string = "") { + const len = Buffer.byteLength(string); + this.ensure(len); + this.buffer.write(string, this.offset); + this.offset += len; + return this; + } + // Write an Int32 byte-length prefix immediately followed by the string's UTF-8 + // bytes. Postgres' Bind wire format prefixes every parameter with its length, + // and doing it in one method computes Buffer.byteLength ONCE — the previous + // `addInt32(Buffer.byteLength(s)).addString(s)` pairing scanned the string + // three times (byteLength for the prefix, byteLength again inside addString, + // then the encode), which is costly for large text parameters. + addInt32PrefixedString(string) { + const len = Buffer.byteLength(string); + this.ensure(4 + len); + const buffer = this.buffer; + let offset = this.offset; + buffer[offset++] = len >>> 24 & 255; + buffer[offset++] = len >>> 16 & 255; + buffer[offset++] = len >>> 8 & 255; + buffer[offset++] = len >>> 0 & 255; + buffer.write(string, offset, "utf-8"); + this.offset = offset + len; + return this; + } + add(otherBuffer) { + this.ensure(otherBuffer.length); + otherBuffer.copy(this.buffer, this.offset); + this.offset += otherBuffer.length; + return this; + } + /** + * Appends an uninitialized block of {@link size} bytes to the buffer and returns its offset. + */ + reserveUnsafe(size) { + const offset = this.offset; + this.ensure(size); + this.offset += size; + return offset; + } + join(code) { + if (code) { + this.buffer[this.headerPosition] = code; + const length = this.offset - (this.headerPosition + 1); + this.buffer.writeInt32BE(length, this.headerPosition + 1); + } + return this.buffer.slice(code ? 0 : 5, this.offset); + } + flush(code) { + const result = this.join(code); + this.offset = 5; + this.headerPosition = 0; + this.buffer = Buffer.allocUnsafe(this.size); + return result; + } + clear() { + this.offset = 5; + this.headerPosition = 0; + } + }; + exports.Writer = Writer; + } +}); + +// ../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/serializer.js +var require_serializer = __commonJS({ + "../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/serializer.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.serialize = void 0; + var buffer_writer_1 = require_buffer_writer(); + var writer = new buffer_writer_1.Writer(); + var startup = /* @__PURE__ */ __name((opts) => { + writer.addInt16(3).addInt16(0); + for (const key of Object.keys(opts)) { + writer.addCString(key).addCString(opts[key]); + } + writer.addCString("client_encoding").addCString("UTF8"); + const bodyBuffer = writer.addCString("").flush(); + const length = bodyBuffer.length + 4; + return new buffer_writer_1.Writer().addInt32(length).add(bodyBuffer).flush(); + }, "startup"); + var requestSsl = /* @__PURE__ */ __name(() => { + const response = Buffer.allocUnsafe(8); + response.writeInt32BE(8, 0); + response.writeInt32BE(80877103, 4); + return response; + }, "requestSsl"); + var password = /* @__PURE__ */ __name((password2) => { + return writer.addCString(password2).flush( + 112 + /* code.startup */ + ); + }, "password"); + var sendSASLInitialResponseMessage = /* @__PURE__ */ __name(function(mechanism, initialResponse) { + writer.addCString(mechanism).addInt32PrefixedString(initialResponse); + return writer.flush( + 112 + /* code.startup */ + ); + }, "sendSASLInitialResponseMessage"); + var sendSCRAMClientFinalMessage = /* @__PURE__ */ __name(function(additionalData) { + return writer.addString(additionalData).flush( + 112 + /* code.startup */ + ); + }, "sendSCRAMClientFinalMessage"); + var query = /* @__PURE__ */ __name((text) => { + return writer.addCString(text).flush( + 81 + /* code.query */ + ); + }, "query"); + var emptyArray = []; + var parse = /* @__PURE__ */ __name((query2) => { + const name = query2.name || ""; + if (name.length > 63) { + console.error("Warning! Postgres only supports 63 characters for query names."); + console.error("You supplied %s (%s)", name, name.length); + console.error("This can cause conflicts and silent errors executing queries"); + } + const types2 = query2.types || emptyArray; + const len = types2.length; + const buffer = writer.addCString(name).addCString(query2.text).addInt16(len); + for (let i = 0; i < len; i++) { + buffer.addInt32(types2[i]); + } + return writer.flush( + 80 + /* code.parse */ + ); + }, "parse"); + var writeValues = /* @__PURE__ */ __name(function(values, valueMapper, formatsOffset) { + const len = values.length; + for (let i = 0; i < len; i++) { + const mappedVal = valueMapper ? valueMapper(values[i], i) : values[i]; + let formatByte = 0; + if (mappedVal == null) { + writer.addInt32(-1); + } else if (mappedVal instanceof Buffer) { + formatByte = 1; + writer.addInt32(mappedVal.length); + writer.add(mappedVal); + } else { + writer.addInt32PrefixedString(mappedVal); + } + const buf = writer.buffer; + buf[formatsOffset++] = 0; + buf[formatsOffset++] = formatByte; + } + }, "writeValues"); + var bind = /* @__PURE__ */ __name((config = {}) => { + const portal = config.portal || ""; + const statement = config.statement || ""; + const binary = config.binary || false; + const values = config.values || emptyArray; + const len = values.length; + writer.addCString(portal).addCString(statement); + writer.addInt16(len); + const formatsOffset = writer.reserveUnsafe(len * 2); + writer.addInt16(len); + try { + writeValues(values, config.valueMapper, formatsOffset); + } catch (err) { + writer.clear(); + throw err; + } + writer.addInt16(1); + writer.addInt16( + binary ? 1 : 0 + /* ParamType.STRING */ + ); + return writer.flush( + 66 + /* code.bind */ + ); + }, "bind"); + var emptyExecute = Buffer.from([69, 0, 0, 0, 9, 0, 0, 0, 0, 0]); + var execute = /* @__PURE__ */ __name((config) => { + if (!config || !config.portal && !config.rows) { + return emptyExecute; + } + const portal = config.portal || ""; + const rows = config.rows || 0; + const portalLength = Buffer.byteLength(portal); + const len = 4 + portalLength + 1 + 4; + const buff = Buffer.allocUnsafe(1 + len); + buff[0] = 69; + buff.writeInt32BE(len, 1); + buff.write(portal, 5, "utf-8"); + buff[portalLength + 5] = 0; + buff.writeUInt32BE(rows, buff.length - 4); + return buff; + }, "execute"); + var cancel = /* @__PURE__ */ __name((processID, secretKey) => { + const buffer = Buffer.allocUnsafe(16); + buffer.writeInt32BE(16, 0); + buffer.writeInt16BE(1234, 4); + buffer.writeInt16BE(5678, 6); + buffer.writeInt32BE(processID, 8); + buffer.writeInt32BE(secretKey, 12); + return buffer; + }, "cancel"); + var cstringMessage = /* @__PURE__ */ __name((code, string) => { + const stringLen = Buffer.byteLength(string); + const len = 4 + stringLen + 1; + const buffer = Buffer.allocUnsafe(1 + len); + buffer[0] = code; + buffer.writeInt32BE(len, 1); + buffer.write(string, 5, "utf-8"); + buffer[len] = 0; + return buffer; + }, "cstringMessage"); + var emptyDescribePortal = writer.addCString("P").flush( + 68 + /* code.describe */ + ); + var emptyDescribeStatement = writer.addCString("S").flush( + 68 + /* code.describe */ + ); + var describe = /* @__PURE__ */ __name((msg) => { + return msg.name ? cstringMessage(68, `${msg.type}${msg.name || ""}`) : msg.type === "P" ? emptyDescribePortal : emptyDescribeStatement; + }, "describe"); + var close = /* @__PURE__ */ __name((msg) => { + const text = `${msg.type}${msg.name || ""}`; + return cstringMessage(67, text); + }, "close"); + var copyData = /* @__PURE__ */ __name((chunk) => { + return writer.add(chunk).flush( + 100 + /* code.copyFromChunk */ + ); + }, "copyData"); + var copyFail = /* @__PURE__ */ __name((message) => { + return cstringMessage(102, message); + }, "copyFail"); + var codeOnlyBuffer = /* @__PURE__ */ __name((code) => Buffer.from([code, 0, 0, 0, 4]), "codeOnlyBuffer"); + var flushBuffer = codeOnlyBuffer( + 72 + /* code.flush */ + ); + var syncBuffer = codeOnlyBuffer( + 83 + /* code.sync */ + ); + var endBuffer = codeOnlyBuffer( + 88 + /* code.end */ + ); + var copyDoneBuffer = codeOnlyBuffer( + 99 + /* code.copyDone */ + ); + var serialize = { + startup, + password, + requestSsl, + sendSASLInitialResponseMessage, + sendSCRAMClientFinalMessage, + query, + parse, + bind, + execute, + describe, + close, + flush: /* @__PURE__ */ __name(() => flushBuffer, "flush"), + sync: /* @__PURE__ */ __name(() => syncBuffer, "sync"), + end: /* @__PURE__ */ __name(() => endBuffer, "end"), + copyData, + copyDone: /* @__PURE__ */ __name(() => copyDoneBuffer, "copyDone"), + copyFail, + cancel + }; + exports.serialize = serialize; + } +}); + +// ../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/buffer-reader.js +var require_buffer_reader = __commonJS({ + "../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/buffer-reader.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.BufferReader = void 0; + var BufferReader = class { + static { + __name(this, "BufferReader"); + } + constructor(offset = 0) { + this.offset = offset; + this.buffer = Buffer.allocUnsafe(0); + this.encoding = "utf-8"; + } + setBuffer(offset, buffer) { + this.offset = offset; + this.buffer = buffer; + } + int16() { + const result = this.buffer.readInt16BE(this.offset); + this.offset += 2; + return result; + } + byte() { + const result = this.buffer[this.offset]; + this.offset++; + return result; + } + int32() { + const result = this.buffer.readInt32BE(this.offset); + this.offset += 4; + return result; + } + uint32() { + const result = this.buffer.readUInt32BE(this.offset); + this.offset += 4; + return result; + } + string(length) { + const result = this.buffer.toString(this.encoding, this.offset, this.offset + length); + this.offset += length; + return result; + } + cstring() { + const start = this.offset; + let end = start; + while (this.buffer[end++]) { + } + this.offset = end; + return this.buffer.toString(this.encoding, start, end - 1); + } + bytes(length) { + const result = this.buffer.slice(this.offset, this.offset + length); + this.offset += length; + return result; + } + }; + exports.BufferReader = BufferReader; + } +}); + +// ../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/parser.js +var require_parser = __commonJS({ + "../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/parser.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Parser = void 0; + var messages_1 = require_messages(); + var buffer_reader_1 = require_buffer_reader(); + var CODE_LENGTH = 1; + var LEN_LENGTH = 4; + var HEADER_LENGTH = CODE_LENGTH + LEN_LENGTH; + var LATEINIT_LENGTH = -1; + var emptyBuffer = Buffer.allocUnsafe(0); + var Parser = class { + static { + __name(this, "Parser"); + } + constructor(opts) { + this.buffer = emptyBuffer; + this.bufferLength = 0; + this.bufferOffset = 0; + this.reader = new buffer_reader_1.BufferReader(); + if ((opts === null || opts === void 0 ? void 0 : opts.mode) === "binary") { + throw new Error("Binary mode not supported yet"); + } + this.mode = (opts === null || opts === void 0 ? void 0 : opts.mode) || "text"; + } + parse(buffer, callback) { + this.mergeBuffer(buffer); + const bufferFullLength = this.bufferOffset + this.bufferLength; + let offset = this.bufferOffset; + while (offset + HEADER_LENGTH <= bufferFullLength) { + const code = this.buffer[offset]; + const length = this.buffer.readUInt32BE(offset + CODE_LENGTH); + const fullMessageLength = CODE_LENGTH + length; + if (fullMessageLength + offset <= bufferFullLength) { + const message = this.handlePacket(offset + HEADER_LENGTH, code, length, this.buffer); + callback(message); + offset += fullMessageLength; + } else { + break; + } + } + if (offset === bufferFullLength) { + this.buffer = emptyBuffer; + this.bufferLength = 0; + this.bufferOffset = 0; + } else { + this.bufferLength = bufferFullLength - offset; + this.bufferOffset = offset; + } + } + mergeBuffer(buffer) { + if (this.bufferLength > 0) { + const newLength = this.bufferLength + buffer.byteLength; + const newFullLength = newLength + this.bufferOffset; + if (newFullLength > this.buffer.byteLength) { + let newBuffer; + if (newLength <= this.buffer.byteLength && this.bufferOffset >= this.bufferLength) { + newBuffer = this.buffer; + } else { + let newBufferLength = this.buffer.byteLength * 2; + while (newLength >= newBufferLength) { + newBufferLength *= 2; + } + newBuffer = Buffer.allocUnsafe(newBufferLength); + } + this.buffer.copy(newBuffer, 0, this.bufferOffset, this.bufferOffset + this.bufferLength); + this.buffer = newBuffer; + this.bufferOffset = 0; + } + buffer.copy(this.buffer, this.bufferOffset + this.bufferLength); + this.bufferLength = newLength; + } else { + this.buffer = buffer; + this.bufferOffset = 0; + this.bufferLength = buffer.byteLength; + } + } + handlePacket(offset, code, length, bytes) { + const { reader } = this; + reader.setBuffer(offset, bytes); + let message; + switch (code) { + case 50: + message = messages_1.bindComplete; + break; + case 49: + message = messages_1.parseComplete; + break; + case 51: + message = messages_1.closeComplete; + break; + case 110: + message = messages_1.noData; + break; + case 115: + message = messages_1.portalSuspended; + break; + case 99: + message = messages_1.copyDone; + break; + case 87: + message = messages_1.replicationStart; + break; + case 73: + message = messages_1.emptyQuery; + break; + case 68: + message = parseDataRowMessage(reader); + break; + case 67: + message = parseCommandCompleteMessage(reader); + break; + case 90: + message = parseReadyForQueryMessage(reader); + break; + case 65: + message = parseNotificationMessage(reader); + break; + case 82: + message = parseAuthenticationResponse(reader, length); + break; + case 83: + message = parseParameterStatusMessage(reader); + break; + case 75: + message = parseBackendKeyData(reader); + break; + case 69: + message = parseErrorMessage(reader, "error"); + break; + case 78: + message = parseErrorMessage(reader, "notice"); + break; + case 84: + message = parseRowDescriptionMessage(reader); + break; + case 116: + message = parseParameterDescriptionMessage(reader); + break; + case 71: + message = parseCopyInMessage(reader); + break; + case 72: + message = parseCopyOutMessage(reader); + break; + case 100: + message = parseCopyData(reader, length); + break; + default: + return new messages_1.DatabaseError("received invalid response: " + code.toString(16), length, "error"); + } + reader.setBuffer(0, emptyBuffer); + message.length = length; + return message; + } + }; + exports.Parser = Parser; + var parseReadyForQueryMessage = /* @__PURE__ */ __name((reader) => { + const status = reader.string(1); + return new messages_1.ReadyForQueryMessage(LATEINIT_LENGTH, status); + }, "parseReadyForQueryMessage"); + var parseCommandCompleteMessage = /* @__PURE__ */ __name((reader) => { + const text = reader.cstring(); + return new messages_1.CommandCompleteMessage(LATEINIT_LENGTH, text); + }, "parseCommandCompleteMessage"); + var parseCopyData = /* @__PURE__ */ __name((reader, length) => { + const chunk = reader.bytes(length - 4); + return new messages_1.CopyDataMessage(LATEINIT_LENGTH, chunk); + }, "parseCopyData"); + var parseCopyInMessage = /* @__PURE__ */ __name((reader) => parseCopyMessage(reader, "copyInResponse"), "parseCopyInMessage"); + var parseCopyOutMessage = /* @__PURE__ */ __name((reader) => parseCopyMessage(reader, "copyOutResponse"), "parseCopyOutMessage"); + var parseCopyMessage = /* @__PURE__ */ __name((reader, messageName) => { + const isBinary = reader.byte() !== 0; + const columnCount = reader.int16(); + const message = new messages_1.CopyResponse(LATEINIT_LENGTH, messageName, isBinary, columnCount); + for (let i = 0; i < columnCount; i++) { + message.columnTypes[i] = reader.int16(); + } + return message; + }, "parseCopyMessage"); + var parseNotificationMessage = /* @__PURE__ */ __name((reader) => { + const processId = reader.int32(); + const channel = reader.cstring(); + const payload = reader.cstring(); + return new messages_1.NotificationResponseMessage(LATEINIT_LENGTH, processId, channel, payload); + }, "parseNotificationMessage"); + var parseRowDescriptionMessage = /* @__PURE__ */ __name((reader) => { + const fieldCount = reader.int16(); + const message = new messages_1.RowDescriptionMessage(LATEINIT_LENGTH, fieldCount); + for (let i = 0; i < fieldCount; i++) { + message.fields[i] = parseField(reader); + } + return message; + }, "parseRowDescriptionMessage"); + var parseField = /* @__PURE__ */ __name((reader) => { + const name = reader.cstring(); + const tableID = reader.uint32(); + const columnID = reader.int16(); + const dataTypeID = reader.uint32(); + const dataTypeSize = reader.int16(); + const dataTypeModifier = reader.int32(); + const mode = reader.int16() === 0 ? "text" : "binary"; + return new messages_1.Field(name, tableID, columnID, dataTypeID, dataTypeSize, dataTypeModifier, mode); + }, "parseField"); + var parseParameterDescriptionMessage = /* @__PURE__ */ __name((reader) => { + const parameterCount = reader.int16(); + const message = new messages_1.ParameterDescriptionMessage(LATEINIT_LENGTH, parameterCount); + for (let i = 0; i < parameterCount; i++) { + message.dataTypeIDs[i] = reader.uint32(); + } + return message; + }, "parseParameterDescriptionMessage"); + var parseDataRowMessage = /* @__PURE__ */ __name((reader) => { + const fieldCount = reader.int16(); + const fields = new Array(fieldCount); + for (let i = 0; i < fieldCount; i++) { + const len = reader.int32(); + fields[i] = len === -1 ? null : reader.string(len); + } + return new messages_1.DataRowMessage(LATEINIT_LENGTH, fields); + }, "parseDataRowMessage"); + var parseParameterStatusMessage = /* @__PURE__ */ __name((reader) => { + const name = reader.cstring(); + const value = reader.cstring(); + return new messages_1.ParameterStatusMessage(LATEINIT_LENGTH, name, value); + }, "parseParameterStatusMessage"); + var parseBackendKeyData = /* @__PURE__ */ __name((reader) => { + const processID = reader.int32(); + const secretKey = reader.int32(); + return new messages_1.BackendKeyDataMessage(LATEINIT_LENGTH, processID, secretKey); + }, "parseBackendKeyData"); + var parseAuthenticationResponse = /* @__PURE__ */ __name((reader, length) => { + const code = reader.int32(); + const message = { + name: "authenticationOk", + length + }; + switch (code) { + case 0: + break; + case 3: + if (message.length === 8) { + message.name = "authenticationCleartextPassword"; + } + break; + case 5: + if (message.length === 12) { + message.name = "authenticationMD5Password"; + const salt = reader.bytes(4); + return new messages_1.AuthenticationMD5Password(LATEINIT_LENGTH, salt); + } + break; + case 10: + { + message.name = "authenticationSASL"; + message.mechanisms = []; + let mechanism; + do { + mechanism = reader.cstring(); + if (mechanism) { + message.mechanisms.push(mechanism); + } + } while (mechanism); + } + break; + case 11: + message.name = "authenticationSASLContinue"; + message.data = reader.string(length - 8); + break; + case 12: + message.name = "authenticationSASLFinal"; + message.data = reader.string(length - 8); + break; + default: + throw new Error("Unknown authenticationOk message type " + code); + } + return message; + }, "parseAuthenticationResponse"); + var parseErrorMessage = /* @__PURE__ */ __name((reader, name) => { + const fields = {}; + let fieldType = reader.string(1); + while (fieldType !== "\0") { + fields[fieldType] = reader.cstring(); + fieldType = reader.string(1); + } + const messageValue = fields.M; + const message = name === "notice" ? new messages_1.NoticeMessage(LATEINIT_LENGTH, messageValue) : new messages_1.DatabaseError(messageValue, LATEINIT_LENGTH, name); + message.severity = fields.S; + message.code = fields.C; + message.detail = fields.D; + message.hint = fields.H; + message.position = fields.P; + message.internalPosition = fields.p; + message.internalQuery = fields.q; + message.where = fields.W; + message.schema = fields.s; + message.table = fields.t; + message.column = fields.c; + message.dataType = fields.d; + message.constraint = fields.n; + message.file = fields.F; + message.line = fields.L; + message.routine = fields.R; + return message; + }, "parseErrorMessage"); + } +}); + +// ../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/index.js +var require_dist = __commonJS({ + "../../node_modules/.pnpm/pg-protocol@1.16.1/node_modules/pg-protocol/dist/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DatabaseError = exports.serialize = void 0; + exports.parse = parse; + var messages_1 = require_messages(); + Object.defineProperty(exports, "DatabaseError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return messages_1.DatabaseError; + }, "get") }); + var serializer_1 = require_serializer(); + Object.defineProperty(exports, "serialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return serializer_1.serialize; + }, "get") }); + var parser_1 = require_parser(); + function parse(stream, callback) { + const parser = new parser_1.Parser(); + stream.on("data", (buffer) => parser.parse(buffer, callback)); + return new Promise((resolve) => stream.on("end", () => resolve())); + } + __name(parse, "parse"); + } +}); + +// ../../node_modules/.pnpm/pg-cloudflare@1.4.1/node_modules/pg-cloudflare/dist/empty.js +var require_empty = __commonJS({ + "../../node_modules/.pnpm/pg-cloudflare@1.4.1/node_modules/pg-cloudflare/dist/empty.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = {}; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/stream.js +var require_stream = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/stream.js"(exports, module) { + var { getStream, getSecureStream } = getStreamFuncs(); + module.exports = { + /** + * Get a socket stream compatible with the current runtime environment. + * @returns {Duplex} + */ + getStream, + /** + * Get a TLS secured socket, compatible with the current environment, + * using the socket and other settings given in `options`. + * @returns {Duplex} + */ + getSecureStream + }; + function getNodejsStreamFuncs() { + function getStream2(ssl) { + const net = __require("net"); + return new net.Socket(); + } + __name(getStream2, "getStream"); + function getSecureStream2(options) { + const tls = __require("tls"); + return tls.connect(options); + } + __name(getSecureStream2, "getSecureStream"); + return { + getStream: getStream2, + getSecureStream: getSecureStream2 + }; + } + __name(getNodejsStreamFuncs, "getNodejsStreamFuncs"); + function getCloudflareStreamFuncs() { + function getStream2(ssl) { + const { CloudflareSocket } = require_empty(); + return new CloudflareSocket(ssl); + } + __name(getStream2, "getStream"); + function getSecureStream2(options) { + options.socket.startTls(options); + return options.socket; + } + __name(getSecureStream2, "getSecureStream"); + return { + getStream: getStream2, + getSecureStream: getSecureStream2 + }; + } + __name(getCloudflareStreamFuncs, "getCloudflareStreamFuncs"); + function isCloudflareRuntime() { + if (typeof navigator === "object" && navigator !== null && typeof navigator.userAgent === "string") { + return navigator.userAgent === "Cloudflare-Workers"; + } + if (typeof Response === "function") { + const resp = new Response(null, { cf: { thing: true } }); + if (typeof resp.cf === "object" && resp.cf !== null && resp.cf.thing) { + return true; + } + } + return false; + } + __name(isCloudflareRuntime, "isCloudflareRuntime"); + function getStreamFuncs() { + if (isCloudflareRuntime()) { + return getCloudflareStreamFuncs(); + } + return getNodejsStreamFuncs(); + } + __name(getStreamFuncs, "getStreamFuncs"); + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/connection.js +var require_connection = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/connection.js"(exports, module) { + "use strict"; + var EventEmitter = __require("events").EventEmitter; + var { parse, serialize } = require_dist(); + var stream = require_stream(); + var { getStream } = stream; + var flushBuffer = serialize.flush(); + var syncBuffer = serialize.sync(); + var endBuffer = serialize.end(); + var Connection2 = class extends EventEmitter { + static { + __name(this, "Connection"); + } + constructor(config) { + super(); + config = config || {}; + this.stream = config.stream || getStream(config.ssl); + if (typeof this.stream === "function") { + this.stream = this.stream(config); + } + this._keepAlive = config.keepAlive; + this._keepAliveInitialDelayMillis = config.keepAliveInitialDelayMillis; + this.parsedStatements = {}; + this.submittedNamedStatements = {}; + this.ssl = config.ssl || false; + this.sslNegotiation = config.sslNegotiation || "postgres"; + this._ending = false; + this._emitMessage = false; + const self = this; + this.on("newListener", function(eventName) { + if (eventName === "message") { + self._emitMessage = true; + } + }); + } + connect(port, host) { + const self = this; + this._connecting = true; + this.stream.setNoDelay(true); + this.stream.connect(port, host); + this.stream.once("connect", function() { + if (self._keepAlive) { + self.stream.setKeepAlive(true, self._keepAliveInitialDelayMillis); + } + self.emit("connect"); + }); + const reportStreamError = /* @__PURE__ */ __name(function(error) { + if (self._ending && (error.code === "ECONNRESET" || error.code === "EPIPE")) { + return; + } + self.emit("error", error); + }, "reportStreamError"); + this.stream.on("error", reportStreamError); + this.stream.on("close", function() { + self.emit("end"); + }); + if (!this.ssl) { + return this.attachListeners(this.stream); + } + if (this.sslNegotiation === "direct") { + return this.stream.once("connect", function() { + self.upgradeToSSL(host, reportStreamError); + }); + } + this.stream.once("data", function(buffer) { + const responseCode = buffer.toString("utf8"); + switch (responseCode) { + case "S": + break; + case "N": + self.stream.end(); + return self.emit("error", new Error("The server does not support SSL connections")); + default: + self.stream.end(); + return self.emit("error", new Error("There was an error establishing an SSL connection")); + } + self.upgradeToSSL(host, reportStreamError); + }); + } + upgradeToSSL(host, reportStreamError) { + const self = this; + const options = { + socket: self.stream, + // tls.connect checks the server identity against `servername`, falling + // back to `host` and then to 'localhost'. `servername` must stay unset + // for IP addresses (see below), so `host` is needed to keep certificate + // validation working when connecting to an IP address. + host + }; + if (self.ssl !== true) { + Object.assign(options, self.ssl); + if ("key" in self.ssl) { + options.key = self.ssl.key; + } + } + if (self.sslNegotiation === "direct") { + options.ALPNProtocols = ["postgresql"]; + } + const net = __require("net"); + if (net.isIP && net.isIP(host) === 0) { + options.servername = host; + } + try { + self.stream = stream.getSecureStream(options); + } catch (err) { + return self.emit("error", err); + } + self.attachListeners(self.stream); + self.stream.on("error", reportStreamError); + self.emit("sslconnect"); + } + attachListeners(stream2) { + parse(stream2, (msg) => { + const eventName = msg.name === "error" ? "errorMessage" : msg.name; + if (this._emitMessage) { + this.emit("message", msg); + } + this.emit(eventName, msg); + }); + } + requestSsl() { + this.stream.write(serialize.requestSsl()); + } + startup(config) { + this.stream.write(serialize.startup(config)); + } + cancel(processID, secretKey) { + this._send(serialize.cancel(processID, secretKey)); + } + password(password) { + this._send(serialize.password(password)); + } + sendSASLInitialResponseMessage(mechanism, initialResponse) { + this._send(serialize.sendSASLInitialResponseMessage(mechanism, initialResponse)); + } + sendSCRAMClientFinalMessage(additionalData) { + this._send(serialize.sendSCRAMClientFinalMessage(additionalData)); + } + _send(buffer) { + if (!this.stream.writable) { + return false; + } + return this.stream.write(buffer); + } + query(text) { + this._send(serialize.query(text)); + } + // send parse message + parse(query) { + this._send(serialize.parse(query)); + } + // send bind message + bind(config) { + this._send(serialize.bind(config)); + } + // send execute message + execute(config) { + this._send(serialize.execute(config)); + } + flush() { + if (this.stream.writable) { + this.stream.write(flushBuffer); + } + } + sync() { + this._send(syncBuffer); + } + ref() { + this.stream.ref(); + } + unref() { + this.stream.unref(); + } + end() { + this._ending = true; + if (!this._connecting || !this.stream.writable) { + this.stream.end(); + return; + } + return this.stream.write(endBuffer, () => { + this.stream.end(); + }); + } + close(msg) { + this._send(serialize.close(msg)); + } + describe(msg) { + this._send(serialize.describe(msg)); + } + sendCopyFromChunk(chunk) { + this._send(serialize.copyData(chunk)); + } + endCopyFrom() { + this._send(serialize.copyDone()); + } + sendCopyFail(msg) { + this._send(serialize.copyFail(msg)); + } + }; + module.exports = Connection2; + } +}); + +// ../../node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js +var require_split2 = __commonJS({ + "../../node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js"(exports, module) { + "use strict"; + var { Transform } = __require("stream"); + var { StringDecoder } = __require("string_decoder"); + var kLast = /* @__PURE__ */ Symbol("last"); + var kDecoder = /* @__PURE__ */ Symbol("decoder"); + function transform(chunk, enc, cb) { + let list; + if (this.overflow) { + const buf = this[kDecoder].write(chunk); + list = buf.split(this.matcher); + if (list.length === 1) return cb(); + list.shift(); + this.overflow = false; + } else { + this[kLast] += this[kDecoder].write(chunk); + list = this[kLast].split(this.matcher); + } + this[kLast] = list.pop(); + for (let i = 0; i < list.length; i++) { + try { + push(this, this.mapper(list[i])); + } catch (error) { + return cb(error); + } + } + this.overflow = this[kLast].length > this.maxLength; + if (this.overflow && !this.skipOverflow) { + cb(new Error("maximum buffer reached")); + return; + } + cb(); + } + __name(transform, "transform"); + function flush(cb) { + this[kLast] += this[kDecoder].end(); + if (this[kLast]) { + try { + push(this, this.mapper(this[kLast])); + } catch (error) { + return cb(error); + } + } + cb(); + } + __name(flush, "flush"); + function push(self, val) { + if (val !== void 0) { + self.push(val); + } + } + __name(push, "push"); + function noop(incoming) { + return incoming; + } + __name(noop, "noop"); + function split(matcher, mapper, options) { + matcher = matcher || /\r?\n/; + mapper = mapper || noop; + options = options || {}; + switch (arguments.length) { + case 1: + if (typeof matcher === "function") { + mapper = matcher; + matcher = /\r?\n/; + } else if (typeof matcher === "object" && !(matcher instanceof RegExp) && !matcher[Symbol.split]) { + options = matcher; + matcher = /\r?\n/; + } + break; + case 2: + if (typeof matcher === "function") { + options = mapper; + mapper = matcher; + matcher = /\r?\n/; + } else if (typeof mapper === "object") { + options = mapper; + mapper = noop; + } + } + options = Object.assign({}, options); + options.autoDestroy = true; + options.transform = transform; + options.flush = flush; + options.readableObjectMode = true; + const stream = new Transform(options); + stream[kLast] = ""; + stream[kDecoder] = new StringDecoder("utf8"); + stream.matcher = matcher; + stream.mapper = mapper; + stream.maxLength = options.maxLength; + stream.skipOverflow = options.skipOverflow || false; + stream.overflow = false; + stream._destroy = function(err, cb) { + this._writableState.errorEmitted = false; + cb(err); + }; + return stream; + } + __name(split, "split"); + module.exports = split; + } +}); + +// ../../node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/helper.js +var require_helper = __commonJS({ + "../../node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/helper.js"(exports, module) { + "use strict"; + var path = __require("path"); + var Stream = __require("stream").Stream; + var split = require_split2(); + var util = __require("util"); + var defaultPort = 5432; + var isWin = process.platform === "win32"; + var warnStream = process.stderr; + var S_IRWXG = 56; + var S_IRWXO = 7; + var S_IFMT = 61440; + var S_IFREG = 32768; + function isRegFile(mode) { + return (mode & S_IFMT) == S_IFREG; + } + __name(isRegFile, "isRegFile"); + var fieldNames = ["host", "port", "database", "user", "password"]; + var nrOfFields = fieldNames.length; + var passKey = fieldNames[nrOfFields - 1]; + function warn() { + var isWritable = warnStream instanceof Stream && true === warnStream.writable; + if (isWritable) { + var args = Array.prototype.slice.call(arguments).concat("\n"); + warnStream.write(util.format.apply(util, args)); + } + } + __name(warn, "warn"); + Object.defineProperty(module.exports, "isWin", { + get: /* @__PURE__ */ __name(function() { + return isWin; + }, "get"), + set: /* @__PURE__ */ __name(function(val) { + isWin = val; + }, "set") + }); + module.exports.warnTo = function(stream) { + var old = warnStream; + warnStream = stream; + return old; + }; + module.exports.getFileName = function(rawEnv) { + var env = rawEnv || process.env; + var file = env.PGPASSFILE || (isWin ? path.join(env.APPDATA || "./", "postgresql", "pgpass.conf") : path.join(env.HOME || "./", ".pgpass")); + return file; + }; + module.exports.usePgPass = function(stats, fname) { + if (Object.prototype.hasOwnProperty.call(process.env, "PGPASSWORD")) { + return false; + } + if (isWin) { + return true; + } + fname = fname || ""; + if (!isRegFile(stats.mode)) { + warn('WARNING: password file "%s" is not a plain file', fname); + return false; + } + if (stats.mode & (S_IRWXG | S_IRWXO)) { + warn('WARNING: password file "%s" has group or world access; permissions should be u=rw (0600) or less', fname); + return false; + } + return true; + }; + var matcher = module.exports.match = function(connInfo, entry) { + return fieldNames.slice(0, -1).reduce(function(prev, field, idx) { + if (idx == 1) { + if (Number(connInfo[field] || defaultPort) === Number(entry[field])) { + return prev && true; + } + } + return prev && (entry[field] === "*" || entry[field] === connInfo[field]); + }, true); + }; + module.exports.getPassword = function(connInfo, stream, cb) { + var pass; + var lineStream = stream.pipe(split()); + function onLine(line) { + var entry = parseLine(line); + if (entry && isValidEntry(entry) && matcher(connInfo, entry)) { + pass = entry[passKey]; + lineStream.end(); + } + } + __name(onLine, "onLine"); + var onEnd = /* @__PURE__ */ __name(function() { + stream.destroy(); + cb(pass); + }, "onEnd"); + var onErr = /* @__PURE__ */ __name(function(err) { + stream.destroy(); + warn("WARNING: error on reading file: %s", err); + cb(void 0); + }, "onErr"); + stream.on("error", onErr); + lineStream.on("data", onLine).on("end", onEnd).on("error", onErr); + }; + var parseLine = module.exports.parseLine = function(line) { + if (line.length < 11 || line.match(/^\s+#/)) { + return null; + } + var curChar = ""; + var prevChar = ""; + var fieldIdx = 0; + var startIdx = 0; + var endIdx = 0; + var obj = {}; + var isLastField = false; + var addToObj = /* @__PURE__ */ __name(function(idx, i0, i1) { + var field = line.substring(i0, i1); + if (!Object.hasOwnProperty.call(process.env, "PGPASS_NO_DEESCAPE")) { + field = field.replace(/\\([:\\])/g, "$1"); + } + obj[fieldNames[idx]] = field; + }, "addToObj"); + for (var i = 0; i < line.length - 1; i += 1) { + curChar = line.charAt(i + 1); + prevChar = line.charAt(i); + isLastField = fieldIdx == nrOfFields - 1; + if (isLastField) { + addToObj(fieldIdx, startIdx); + break; + } + if (i >= 0 && curChar == ":" && prevChar !== "\\") { + addToObj(fieldIdx, startIdx, i + 1); + startIdx = i + 2; + fieldIdx += 1; + } + } + obj = Object.keys(obj).length === nrOfFields ? obj : null; + return obj; + }; + var isValidEntry = module.exports.isValidEntry = function(entry) { + var rules = { + // host + 0: function(x) { + return x.length > 0; + }, + // port + 1: function(x) { + if (x === "*") { + return true; + } + x = Number(x); + return isFinite(x) && x > 0 && x < 9007199254740992 && Math.floor(x) === x; + }, + // database + 2: function(x) { + return x.length > 0; + }, + // username + 3: function(x) { + return x.length > 0; + }, + // password + 4: function(x) { + return x.length > 0; + } + }; + for (var idx = 0; idx < fieldNames.length; idx += 1) { + var rule = rules[idx]; + var value = entry[fieldNames[idx]] || ""; + var res = rule(value); + if (!res) { + return false; + } + } + return true; + }; + } +}); + +// ../../node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/index.js +var require_lib = __commonJS({ + "../../node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/index.js"(exports, module) { + "use strict"; + var path = __require("path"); + var fs = __require("fs"); + var helper = require_helper(); + module.exports = function(connInfo, cb) { + var file = helper.getFileName(); + fs.stat(file, function(err, stat) { + if (err || !helper.usePgPass(stat, file)) { + return cb(void 0); + } + var st = fs.createReadStream(file); + helper.getPassword(connInfo, st, cb); + }); + }; + module.exports.warnTo = helper.warnTo; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/client.js +var require_client = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/client.js"(exports, module) { + var EventEmitter = __require("events").EventEmitter; + var utils = require_utils(); + var nodeUtils = __require("util"); + var sasl = require_sasl(); + var TypeOverrides2 = require_type_overrides(); + var ConnectionParameters = require_connection_parameters(); + var Query2 = require_query(); + var defaults2 = require_defaults(); + var Connection2 = require_connection(); + var crypto = require_utils2(); + var activeQueryDeprecationNotice = nodeUtils.deprecate( + () => { + }, + "Client.activeQuery is deprecated and will be removed in pg@9.0" + ); + var queryQueueDeprecationNotice = nodeUtils.deprecate( + () => { + }, + "Client.queryQueue is deprecated and will be removed in pg@9.0." + ); + var pgPassDeprecationNotice = nodeUtils.deprecate( + () => { + }, + "pgpass support is deprecated and will be removed in pg@9.0. You can provide an async function as the password property to the Client/Pool constructor that returns a password instead. Within this function you can call the pgpass module in your own code." + ); + var byoPromiseDeprecationNotice = nodeUtils.deprecate( + () => { + }, + "Passing a custom Promise implementation to the Client/Pool constructor is deprecated and will be removed in pg@9.0." + ); + var queryQueueLengthDeprecationNotice = nodeUtils.deprecate( + () => { + }, + "Calling client.query() when the client is already executing a query is deprecated and will be removed in pg@9.0. Use async/await or an external async flow control mechanism instead." + ); + function coerceNumberOrDefault(value, defaultValue) { + if (typeof value === "number") { + return Number.isFinite(value) ? value : defaultValue; + } + if (typeof value === "string" && value.trim() !== "") { + const n = Number(value); + return Number.isFinite(n) ? n : defaultValue; + } + return defaultValue; + } + __name(coerceNumberOrDefault, "coerceNumberOrDefault"); + var Client2 = class extends EventEmitter { + static { + __name(this, "Client"); + } + constructor(config) { + super(); + this.connectionParameters = new ConnectionParameters(config); + this.user = this.connectionParameters.user; + this.database = this.connectionParameters.database; + this.port = this.connectionParameters.port; + this.host = this.connectionParameters.host; + Object.defineProperty(this, "password", { + configurable: true, + enumerable: false, + writable: true, + value: this.connectionParameters.password + }); + this.replication = this.connectionParameters.replication; + const c = config || {}; + if (c.Promise) { + byoPromiseDeprecationNotice(); + } + this._Promise = c.Promise || global.Promise; + this._types = new TypeOverrides2(c.types); + this._ending = false; + this._ended = false; + this._connecting = false; + this._connected = false; + this._connectionError = false; + this._queryable = true; + this._activeQuery = null; + this._txStatus = null; + this.enableChannelBinding = Boolean(c.enableChannelBinding); + this.scramMaxIterations = coerceNumberOrDefault(c.scramMaxIterations, sasl.DEFAULT_MAX_SCRAM_ITERATIONS); + this.connection = c.connection || new Connection2({ + stream: c.stream, + ssl: this.connectionParameters.ssl, + sslNegotiation: this.connectionParameters.sslnegotiation, + keepAlive: c.keepAlive || false, + keepAliveInitialDelayMillis: c.keepAliveInitialDelayMillis || 0, + encoding: this.connectionParameters.client_encoding || "utf8" + }); + this._queryQueue = []; + this._sentQueryQueue = []; + this.pipeline = Boolean(c.pipeline); + this.binary = c.binary || defaults2.binary; + this.processID = null; + this.secretKey = null; + this.ssl = this.connectionParameters.ssl || false; + this.sslNegotiation = this.connectionParameters.sslnegotiation || "postgres"; + if (this.ssl && this.ssl.key) { + Object.defineProperty(this.ssl, "key", { + enumerable: false + }); + } + this._connectionTimeoutMillis = c.connectionTimeoutMillis || 0; + } + get activeQuery() { + activeQueryDeprecationNotice(); + return this._activeQuery; + } + set activeQuery(val) { + activeQueryDeprecationNotice(); + this._activeQuery = val; + } + _getActiveQuery() { + return this._activeQuery; + } + _errorAllQueries(err) { + const enqueueError = /* @__PURE__ */ __name((query) => { + process.nextTick(() => { + query.handleError(err, this.connection); + }); + }, "enqueueError"); + const activeQuery = this._getActiveQuery(); + if (activeQuery) { + enqueueError(activeQuery); + this._activeQuery = null; + } + this._sentQueryQueue.forEach(enqueueError); + this._sentQueryQueue.length = 0; + this._queryQueue.forEach(enqueueError); + this._queryQueue.length = 0; + } + _connect(callback) { + const self = this; + const con = this.connection; + this._connectionCallback = callback; + if (this._connecting || this._connected) { + const err = new Error("Client has already been connected. You cannot reuse a client."); + process.nextTick(() => { + callback(err); + }); + return; + } + this._connecting = true; + if (this._connectionTimeoutMillis > 0) { + this.connectionTimeoutHandle = setTimeout(() => { + con._ending = true; + con.stream.destroy(new Error("timeout expired")); + }, this._connectionTimeoutMillis); + if (this.connectionTimeoutHandle.unref) { + this.connectionTimeoutHandle.unref(); + } + } + if (this.host && this.host.indexOf("/") === 0) { + con.connect(this.host + "/.s.PGSQL." + this.port); + } else { + con.connect(this.port, this.host); + } + con.on("connect", function() { + if (self.ssl) { + if (self.sslNegotiation !== "direct") { + con.requestSsl(); + } + } else { + con.startup(self.getStartupConf()); + } + }); + con.on("sslconnect", function() { + con.startup(self.getStartupConf()); + }); + this._attachListeners(con); + con.once("end", () => { + const error = this._ending ? new Error("Connection terminated") : new Error("Connection terminated unexpectedly"); + clearTimeout(this.connectionTimeoutHandle); + this._errorAllQueries(error); + this._ended = true; + if (!this._ending) { + if (this._connecting && !this._connectionError) { + if (this._connectionCallback) { + this._connectionCallback(error); + } else { + this._handleErrorEvent(error); + } + } else if (!this._connectionError) { + this._handleErrorEvent(error); + } + } + process.nextTick(() => { + this.emit("end"); + }); + }); + } + connect(callback) { + if (callback) { + this._connect(callback); + return; + } + return new this._Promise((resolve, reject) => { + this._connect((error) => { + if (error) { + reject(error); + } else { + resolve(this); + } + }); + }); + } + _attachListeners(con) { + con.on("authenticationCleartextPassword", this._handleAuthCleartextPassword.bind(this)); + con.on("authenticationMD5Password", this._handleAuthMD5Password.bind(this)); + con.on("authenticationSASL", this._handleAuthSASL.bind(this)); + con.on("authenticationSASLContinue", this._handleAuthSASLContinue.bind(this)); + con.on("authenticationSASLFinal", this._handleAuthSASLFinal.bind(this)); + con.on("backendKeyData", this._handleBackendKeyData.bind(this)); + con.on("error", this._handleErrorEvent.bind(this)); + con.on("errorMessage", this._handleErrorMessage.bind(this)); + con.on("readyForQuery", this._handleReadyForQuery.bind(this)); + con.on("notice", this._handleNotice.bind(this)); + con.on("rowDescription", this._handleRowDescription.bind(this)); + con.on("dataRow", this._handleDataRow.bind(this)); + con.on("portalSuspended", this._handlePortalSuspended.bind(this)); + con.on("emptyQuery", this._handleEmptyQuery.bind(this)); + con.on("commandComplete", this._handleCommandComplete.bind(this)); + con.on("parseComplete", this._handleParseComplete.bind(this)); + con.on("copyInResponse", this._handleCopyInResponse.bind(this)); + con.on("copyData", this._handleCopyData.bind(this)); + con.on("notification", this._handleNotification.bind(this)); + } + _getPassword(cb) { + const con = this.connection; + if (typeof this.password === "function") { + this._Promise.resolve().then(() => this.password(this.connectionParameters)).then((pass) => { + if (pass !== void 0) { + if (typeof pass !== "string") { + con.emit("error", new TypeError("Password must be a string")); + return; + } + this.connectionParameters.password = this.password = pass; + } else { + this.connectionParameters.password = this.password = null; + } + cb(); + }).catch((err) => { + con.emit("error", err); + }); + } else if (this.password !== null) { + cb(); + } else { + try { + const pgPass = require_lib(); + pgPass(this.connectionParameters, (pass) => { + if (void 0 !== pass) { + pgPassDeprecationNotice(); + this.connectionParameters.password = this.password = pass; + } + cb(); + }); + } catch (e) { + this.emit("error", e); + } + } + } + _handleAuthCleartextPassword(msg) { + this._getPassword(() => { + this.connection.password(this.password); + }); + } + _handleAuthMD5Password(msg) { + this._getPassword(async () => { + try { + const hashedPassword = await crypto.postgresMd5PasswordHash(this.user, this.password, msg.salt); + this.connection.password(hashedPassword); + } catch (e) { + this.emit("error", e); + } + }); + } + _handleAuthSASL(msg) { + this._getPassword(() => { + try { + this.saslSession = sasl.startSession( + msg.mechanisms, + this.enableChannelBinding && this.connection.stream, + this.scramMaxIterations + ); + this.connection.sendSASLInitialResponseMessage(this.saslSession.mechanism, this.saslSession.response); + } catch (err) { + this.connection.emit("error", err); + } + }); + } + async _handleAuthSASLContinue(msg) { + try { + await sasl.continueSession( + this.saslSession, + this.password, + msg.data, + this.enableChannelBinding && this.connection.stream + ); + this.connection.sendSCRAMClientFinalMessage(this.saslSession.response); + } catch (err) { + this.connection.emit("error", err); + } + } + _handleAuthSASLFinal(msg) { + try { + sasl.finalizeSession(this.saslSession, msg.data); + this.saslSession = null; + } catch (err) { + this.connection.emit("error", err); + } + } + _handleBackendKeyData(msg) { + this.processID = msg.processID; + this.secretKey = msg.secretKey; + } + _handleReadyForQuery(msg) { + if (this._connecting) { + this._connecting = false; + this._connected = true; + clearTimeout(this.connectionTimeoutHandle); + if (this._connectionCallback) { + this._connectionCallback(null, this); + this._connectionCallback = null; + } + this.emit("connect"); + } + const activeQuery = this._getActiveQuery(); + this._activeQuery = null; + this._txStatus = msg?.status ?? null; + this.readyForQuery = true; + if (activeQuery) { + activeQuery.handleReadyForQuery(this.connection); + } + this._pulseQueryQueue(); + } + // if we receive an error event or error message + // during the connection process we handle it here + _handleErrorWhileConnecting(err) { + if (this._connectionError) { + return; + } + this._connectionError = true; + clearTimeout(this.connectionTimeoutHandle); + if (this._connectionCallback) { + return this._connectionCallback(err); + } + this.emit("error", err); + } + // if we're connected and we receive an error event from the connection + // this means the socket is dead - do a hard abort of all queries and emit + // the socket error on the client as well + _handleErrorEvent(err) { + if (this._connecting) { + return this._handleErrorWhileConnecting(err); + } + this._queryable = false; + this._errorAllQueries(err); + this.emit("error", err); + } + // handle error messages from the postgres backend + _handleErrorMessage(msg) { + if (this._connecting) { + return this._handleErrorWhileConnecting(msg); + } + const activeQuery = this._getActiveQuery(); + if (!activeQuery) { + this._handleErrorEvent(msg); + return; + } + this._activeQuery = null; + if (activeQuery.name) { + delete this.connection.submittedNamedStatements[activeQuery.name]; + } + activeQuery.handleError(msg, this.connection); + } + _handleRowDescription(msg) { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected rowDescription message from backend."); + this._handleErrorEvent(error); + return; + } + activeQuery.handleRowDescription(msg); + } + _handleDataRow(msg) { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected dataRow message from backend."); + this._handleErrorEvent(error); + return; + } + activeQuery.handleDataRow(msg); + } + _handlePortalSuspended(msg) { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected portalSuspended message from backend."); + this._handleErrorEvent(error); + return; + } + activeQuery.handlePortalSuspended(this.connection); + } + _handleEmptyQuery(msg) { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected emptyQuery message from backend."); + this._handleErrorEvent(error); + return; + } + activeQuery.handleEmptyQuery(this.connection); + } + _handleCommandComplete(msg) { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected commandComplete message from backend."); + this._handleErrorEvent(error); + return; + } + activeQuery.handleCommandComplete(msg, this.connection); + } + _handleParseComplete() { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected parseComplete message from backend."); + this._handleErrorEvent(error); + return; + } + if (activeQuery.name) { + this.connection.parsedStatements[activeQuery.name] = activeQuery.text; + delete this.connection.submittedNamedStatements[activeQuery.name]; + } + } + _handleCopyInResponse(msg) { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected copyInResponse message from backend."); + this._handleErrorEvent(error); + return; + } + activeQuery.handleCopyInResponse(this.connection); + } + _handleCopyData(msg) { + const activeQuery = this._getActiveQuery(); + if (activeQuery == null) { + const error = new Error("Received unexpected copyData message from backend."); + this._handleErrorEvent(error); + return; + } + activeQuery.handleCopyData(msg, this.connection); + } + _handleNotification(msg) { + this.emit("notification", msg); + } + _handleNotice(msg) { + this.emit("notice", msg); + } + getStartupConf() { + const params = this.connectionParameters; + const data = { + user: params.user, + database: params.database + }; + const appName = params.application_name || params.fallback_application_name; + if (appName) { + data.application_name = appName; + } + if (params.replication) { + data.replication = "" + params.replication; + } + if (params.statement_timeout) { + data.statement_timeout = String(parseInt(params.statement_timeout, 10)); + } + if (params.lock_timeout) { + data.lock_timeout = String(parseInt(params.lock_timeout, 10)); + } + if (params.idle_in_transaction_session_timeout) { + data.idle_in_transaction_session_timeout = String(parseInt(params.idle_in_transaction_session_timeout, 10)); + } + if (params.options) { + data.options = params.options; + } + return data; + } + cancel(client, query) { + if (client.activeQuery === query) { + const con = this.connection; + if (this.host && this.host.indexOf("/") === 0) { + con.connect(this.host + "/.s.PGSQL." + this.port); + } else { + con.connect(this.port, this.host); + } + con.on("connect", function() { + con.cancel(client.processID, client.secretKey); + }); + } else if (client._queryQueue.indexOf(query) !== -1) { + client._queryQueue.splice(client._queryQueue.indexOf(query), 1); + } else if (client._sentQueryQueue.indexOf(query) !== -1) { + query.callback = () => { + }; + } + } + setTypeParser(oid, format, parseFn) { + return this._types.setTypeParser(oid, format, parseFn); + } + getTypeParser(oid, format) { + return this._types.getTypeParser(oid, format); + } + // escapeIdentifier and escapeLiteral moved to utility functions & exported + // on PG + // re-exported here for backwards compatibility + escapeIdentifier(str) { + return utils.escapeIdentifier(str); + } + escapeLiteral(str) { + return utils.escapeLiteral(str); + } + _pulseQueryQueue() { + if (this.pipeline) { + this._pulsePipelinedQueryQueue(); + return; + } + if (this.readyForQuery === true) { + this._activeQuery = this._queryQueue.shift(); + const activeQuery = this._getActiveQuery(); + if (activeQuery) { + this.readyForQuery = false; + this.hasExecuted = true; + const queryError = activeQuery.submit(this.connection); + if (queryError) { + process.nextTick(() => { + activeQuery.handleError(queryError, this.connection); + this.readyForQuery = true; + this._pulseQueryQueue(); + }); + } + } else if (this.hasExecuted) { + this._activeQuery = null; + this.emit("drain"); + } + } + } + _pulsePipelinedQueryQueue() { + if (!this._connected || !this._queryable) { + return; + } + while (this._queryQueue.length > 0) { + const query = this._queryQueue.shift(); + this.hasExecuted = true; + const queryError = query.submit(this.connection); + if (queryError) { + process.nextTick(() => { + query.handleError(queryError, this.connection); + }); + continue; + } + this._sentQueryQueue.push(query); + } + if (this.readyForQuery && !this._activeQuery && this._sentQueryQueue.length > 0) { + this._activeQuery = this._sentQueryQueue.shift(); + this.readyForQuery = false; + } + if (!this._activeQuery && this._sentQueryQueue.length === 0 && this._queryQueue.length === 0 && this.hasExecuted) { + this.emit("drain"); + } + } + query(config, values, callback) { + let query; + let result; + if (config == null) { + throw new TypeError("Client was passed a null or undefined query"); + } + if (typeof config.submit === "function") { + result = query = config; + if (!query.callback) { + if (typeof values === "function") { + query.callback = values; + } else if (callback) { + query.callback = callback; + } + } + } else { + query = new Query2(config, values, callback); + if (!query.callback) { + result = new this._Promise((resolve, reject) => { + query.callback = (err, res) => err ? reject(err) : resolve(res); + }).catch((err) => { + Error.captureStackTrace(err); + throw err; + }); + } else if (typeof query.callback !== "function") { + throw new TypeError("callback is not a function"); + } + } + const readTimeout = config.query_timeout || this.connectionParameters.query_timeout; + if (readTimeout) { + const queryCallback = query.callback || (() => { + }); + const readTimeoutTimer = setTimeout(() => { + const error = new Error("Query read timeout"); + process.nextTick(() => { + query.handleError(error, this.connection); + }); + queryCallback(error); + query.callback = () => { + }; + const index = this._queryQueue.indexOf(query); + if (index > -1) { + this._queryQueue.splice(index, 1); + } else if (this.pipeline) { + this.connection.stream.destroy(); + return; + } + this._pulseQueryQueue(); + }, readTimeout); + query.callback = (err, res) => { + clearTimeout(readTimeoutTimer); + queryCallback(err, res); + }; + } + if (this.binary && !query.binary) { + query.binary = true; + } + if (query._result && !query._result._types) { + query._result._types = this._types; + } + if (this.pipeline) { + const portalQuery = typeof config.submit === "function" && !(query instanceof Query2) ? "Custom query classes such as pg-cursor and pg-query-stream are" : query.rows ? "The `rows` option is" : null; + if (portalQuery) { + process.nextTick(() => { + query.handleError(new Error(`${portalQuery} not supported in pipeline mode`), this.connection); + }); + return result; + } + } + if (!this._queryable) { + process.nextTick(() => { + query.handleError(new Error("Client has encountered a connection error and is not queryable"), this.connection); + }); + return result; + } + if (this._ending) { + process.nextTick(() => { + query.handleError(new Error("Client was closed and is not queryable"), this.connection); + }); + return result; + } + if (this._queryQueue.length > 0 && !this.pipeline) { + queryQueueLengthDeprecationNotice(); + } + this._queryQueue.push(query); + this._pulseQueryQueue(); + return result; + } + ref() { + this.connection.ref(); + } + unref() { + this.connection.unref(); + } + getTransactionStatus() { + return this._txStatus; + } + end(cb) { + this._ending = true; + if (!this.connection._connecting || this._ended) { + if (cb) { + cb(); + return; + } else { + return this._Promise.resolve(); + } + } + if (!this._queryable) { + this.connection.stream.destroy(); + } else if (this.pipeline && (this._getActiveQuery() || this._sentQueryQueue.length > 0 || this._queryQueue.length > 0)) { + this.once("drain", () => this.connection.end()); + } else if (this._getActiveQuery()) { + this.connection.stream.destroy(); + } else { + this.connection.end(); + } + if (cb) { + this.connection.once("end", cb); + } else { + return new this._Promise((resolve) => { + this.connection.once("end", resolve); + }); + } + } + get queryQueue() { + queryQueueDeprecationNotice(); + return this._queryQueue; + } + }; + Client2.Query = Query2; + module.exports = Client2; + } +}); + +// ../../node_modules/.pnpm/pg-pool@3.14.0_pg@8.23.1/node_modules/pg-pool/index.js +var require_pg_pool = __commonJS({ + "../../node_modules/.pnpm/pg-pool@3.14.0_pg@8.23.1/node_modules/pg-pool/index.js"(exports, module) { + "use strict"; + var EventEmitter = __require("events").EventEmitter; + var NOOP = /* @__PURE__ */ __name(function() { + }, "NOOP"); + var removeWhere = /* @__PURE__ */ __name((list, predicate) => { + const i = list.findIndex(predicate); + return i === -1 ? void 0 : list.splice(i, 1)[0]; + }, "removeWhere"); + var IdleItem = class { + static { + __name(this, "IdleItem"); + } + constructor(client, idleListener, timeoutId) { + this.client = client; + this.idleListener = idleListener; + this.timeoutId = timeoutId; + } + }; + var PendingItem = class { + static { + __name(this, "PendingItem"); + } + constructor(callback) { + this.callback = callback; + } + }; + function throwOnDoubleRelease() { + throw new Error("Release called on client which has already been released to the pool."); + } + __name(throwOnDoubleRelease, "throwOnDoubleRelease"); + function promisify(Promise2, callback) { + if (callback) { + return { callback, result: void 0 }; + } + let rej; + let res; + const cb = /* @__PURE__ */ __name(function(err, client) { + err ? rej(err) : res(client); + }, "cb"); + const result = new Promise2(function(resolve, reject) { + res = resolve; + rej = reject; + }).catch((err) => { + Error.captureStackTrace(err); + throw err; + }); + return { callback: cb, result }; + } + __name(promisify, "promisify"); + function makeIdleListener(pool, client) { + return /* @__PURE__ */ __name(function idleListener(err) { + err.client = client; + client.removeListener("error", idleListener); + client.on("error", () => { + pool.log("additional client error after disconnection due to error", err); + }); + pool._remove(client); + pool.emit("error", err, client); + }, "idleListener"); + } + __name(makeIdleListener, "makeIdleListener"); + var Pool2 = class extends EventEmitter { + static { + __name(this, "Pool"); + } + constructor(options, Client2) { + super(); + this.options = Object.assign({}, options); + if (options != null && "password" in options) { + Object.defineProperty(this.options, "password", { + configurable: true, + enumerable: false, + writable: true, + value: options.password + }); + } + if (options != null && options.ssl && options.ssl.key) { + Object.defineProperty(this.options.ssl, "key", { + enumerable: false + }); + } + this.options.max = this.options.max || this.options.poolSize || 10; + this.options.min = this.options.min || 0; + this.options.maxUses = this.options.maxUses || Infinity; + this.options.allowExitOnIdle = this.options.allowExitOnIdle || false; + this.options.maxLifetimeSeconds = this.options.maxLifetimeSeconds || 0; + this.log = this.options.log || function() { + }; + this.Client = this.options.Client || Client2 || require_lib2().Client; + this.Promise = this.options.Promise || global.Promise; + if (typeof this.options.idleTimeoutMillis === "undefined") { + this.options.idleTimeoutMillis = 1e4; + } + this._clients = []; + this._idle = []; + this._expired = /* @__PURE__ */ new WeakSet(); + this._pendingQueue = []; + this._endCallback = void 0; + this.ending = false; + this.ended = false; + } + _promiseTry(f) { + const Promise2 = this.Promise; + if (typeof Promise2.try === "function") { + return Promise2.try(f); + } + return new Promise2((resolve) => resolve(f())); + } + _isFull() { + return this._clients.length >= this.options.max; + } + _isAboveMin() { + return this._clients.length > this.options.min; + } + _pulseQueue() { + this.log("pulse queue"); + if (this.ended) { + this.log("pulse queue ended"); + return; + } + if (this.ending) { + this.log("pulse queue on ending"); + if (this._idle.length) { + this._idle.slice().map((item) => { + this._remove(item.client); + }); + } + if (!this._clients.length) { + this.ended = true; + this._endCallback(); + } + return; + } + if (!this._pendingQueue.length) { + this.log("no queued requests"); + return; + } + if (!this._idle.length && this._isFull()) { + return; + } + const pendingItem = this._pendingQueue.shift(); + if (this._idle.length) { + const idleItem = this._idle.pop(); + clearTimeout(idleItem.timeoutId); + const client = idleItem.client; + client.ref && client.ref(); + const idleListener = idleItem.idleListener; + return this._acquireClient(client, pendingItem, idleListener, false); + } + if (!this._isFull()) { + return this.newClient(pendingItem); + } + throw new Error("unexpected condition"); + } + _remove(client, callback) { + const removed = removeWhere(this._idle, (item) => item.client === client); + if (removed !== void 0) { + clearTimeout(removed.timeoutId); + } + this._clients = this._clients.filter((c) => c !== client); + const context = this; + client.end(() => { + context.emit("remove", client); + if (typeof callback === "function") { + callback(); + } + }); + } + connect(cb) { + if (this.ending) { + const err = new Error("Cannot use a pool after calling end on the pool"); + return cb ? cb(err) : this.Promise.reject(err); + } + const response = promisify(this.Promise, cb); + const result = response.result; + if (this._isFull() || this._idle.length) { + if (this._idle.length) { + process.nextTick(() => this._pulseQueue()); + } + if (!this.options.connectionTimeoutMillis) { + this._pendingQueue.push(new PendingItem(response.callback)); + return result; + } + const queueCallback = /* @__PURE__ */ __name((err, res, done) => { + clearTimeout(tid); + response.callback(err, res, done); + }, "queueCallback"); + const pendingItem = new PendingItem(queueCallback); + const tid = setTimeout(() => { + removeWhere(this._pendingQueue, (i) => i.callback === queueCallback); + pendingItem.timedOut = true; + response.callback(new Error("timeout exceeded when trying to connect")); + }, this.options.connectionTimeoutMillis); + if (tid.unref) { + tid.unref(); + } + this._pendingQueue.push(pendingItem); + return result; + } + this.newClient(new PendingItem(response.callback)); + return result; + } + newClient(pendingItem) { + const client = new this.Client(this.options); + this._clients.push(client); + const idleListener = makeIdleListener(this, client); + this.log("checking client timeout"); + let tid; + let timeoutHit = false; + if (this.options.connectionTimeoutMillis) { + tid = setTimeout(() => { + if (client.connection) { + this.log("ending client due to timeout"); + timeoutHit = true; + client.connection.stream.destroy(); + } else if (!client.isConnected()) { + this.log("ending client due to timeout"); + timeoutHit = true; + client.end(); + } + }, this.options.connectionTimeoutMillis); + } + this.log("connecting new client"); + client.connect((err) => { + if (tid) { + clearTimeout(tid); + } + client.on("error", idleListener); + if (err) { + this.log("client failed to connect", err); + this._clients = this._clients.filter((c) => c !== client); + if (timeoutHit) { + err = new Error("Connection terminated due to connection timeout", { cause: err }); + } + this._pulseQueue(); + if (!pendingItem.timedOut) { + pendingItem.callback(err, void 0, NOOP); + } + } else { + this.log("new client connected"); + if (this.options.onConnect) { + this._promiseTry(() => this.options.onConnect(client)).then( + () => { + this._afterConnect(client, pendingItem, idleListener); + }, + (hookErr) => { + this._clients = this._clients.filter((c) => c !== client); + client.end(() => { + this._pulseQueue(); + if (!pendingItem.timedOut) { + pendingItem.callback(hookErr, void 0, NOOP); + } + }); + } + ); + return; + } + return this._afterConnect(client, pendingItem, idleListener); + } + }); + } + _afterConnect(client, pendingItem, idleListener) { + if (this.options.maxLifetimeSeconds !== 0) { + const maxLifetimeTimeout = setTimeout(() => { + this.log("ending client due to expired lifetime"); + this._expired.add(client); + const idleIndex = this._idle.findIndex((idleItem) => idleItem.client === client); + if (idleIndex !== -1) { + this._acquireClient( + client, + new PendingItem((err, client2, clientRelease) => clientRelease()), + idleListener, + false + ); + } + }, this.options.maxLifetimeSeconds * 1e3); + maxLifetimeTimeout.unref(); + client.once("end", () => clearTimeout(maxLifetimeTimeout)); + } + return this._acquireClient(client, pendingItem, idleListener, true); + } + // acquire a client for a pending work item + _acquireClient(client, pendingItem, idleListener, isNew) { + if (isNew) { + this.emit("connect", client); + } + this.emit("acquire", client); + client.release = this._releaseOnce(client, idleListener); + client.removeListener("error", idleListener); + if (!pendingItem.timedOut) { + if (isNew && this.options.verify) { + this.options.verify(client, (err) => { + if (err) { + client.release(err); + return pendingItem.callback(err, void 0, NOOP); + } + pendingItem.callback(void 0, client, client.release); + }); + } else { + pendingItem.callback(void 0, client, client.release); + } + } else { + if (isNew && this.options.verify) { + this.options.verify(client, client.release); + } else { + client.release(); + } + } + } + // returns a function that wraps _release and throws if called more than once + _releaseOnce(client, idleListener) { + let released = false; + return (err) => { + if (released) { + throwOnDoubleRelease(); + } + released = true; + this._release(client, idleListener, err); + }; + } + // release a client back to the poll, include an error + // to remove it from the pool + _release(client, idleListener, err) { + client.on("error", idleListener); + client._poolUseCount = (client._poolUseCount || 0) + 1; + this.emit("release", err, client); + if (err || this.ending || !client._queryable || client._ending || client._poolUseCount >= this.options.maxUses) { + if (client._poolUseCount >= this.options.maxUses) { + this.log("remove expended client"); + } + return this._remove(client, this._pulseQueue.bind(this)); + } + const isExpired = this._expired.has(client); + if (isExpired) { + this.log("remove expired client"); + this._expired.delete(client); + return this._remove(client, this._pulseQueue.bind(this)); + } + let tid; + if (this.options.idleTimeoutMillis && this._isAboveMin()) { + tid = setTimeout(() => { + if (this._isAboveMin()) { + this.log("remove idle client"); + this._remove(client, this._pulseQueue.bind(this)); + } + }, this.options.idleTimeoutMillis); + if (this.options.allowExitOnIdle) { + tid.unref(); + } + } + if (this.options.allowExitOnIdle) { + client.unref(); + } + this._idle.push(new IdleItem(client, idleListener, tid)); + this._pulseQueue(); + } + query(text, values, cb) { + if (typeof text === "function") { + const response2 = promisify(this.Promise, text); + setImmediate(function() { + return response2.callback(new Error("Passing a function as the first parameter to pool.query is not supported")); + }); + return response2.result; + } + if (typeof values === "function") { + cb = values; + values = void 0; + } + const response = promisify(this.Promise, cb); + cb = response.callback; + this.connect((err, client) => { + if (err) { + return cb(err); + } + let clientReleased = false; + const onError = /* @__PURE__ */ __name((err2) => { + if (clientReleased) { + return; + } + clientReleased = true; + client.release(err2); + cb(err2); + }, "onError"); + client.once("error", onError); + this.log("dispatching query"); + try { + client.query(text, values, (err2, res) => { + this.log("query dispatched"); + client.removeListener("error", onError); + if (clientReleased) { + return; + } + clientReleased = true; + client.release(err2); + if (err2) { + return cb(err2); + } + return cb(void 0, res); + }); + } catch (err2) { + client.release(err2); + return cb(err2); + } + }); + return response.result; + } + end(cb) { + this.log("ending"); + if (this.ending) { + const err = new Error("Called end on pool more than once"); + return cb ? cb(err) : this.Promise.reject(err); + } + this.ending = true; + const promised = promisify(this.Promise, cb); + this._endCallback = promised.callback; + this._pulseQueue(); + return promised.result; + } + get waitingCount() { + return this._pendingQueue.length; + } + get idleCount() { + return this._idle.length; + } + get expiredCount() { + return this._clients.reduce((acc, client) => acc + (this._expired.has(client) ? 1 : 0), 0); + } + get totalCount() { + return this._clients.length; + } + }; + module.exports = Pool2; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/native/query.js +var require_query2 = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/native/query.js"(exports, module) { + "use strict"; + var EventEmitter = __require("events").EventEmitter; + var util = __require("util"); + var utils = require_utils(); + var NativeQuery = module.exports = function(config, values, callback) { + EventEmitter.call(this); + config = utils.normalizeQueryConfig(config, values, callback); + this.text = config.text; + this.values = config.values; + this.name = config.name; + this.queryMode = config.queryMode; + this.callback = config.callback; + this.state = "new"; + this._arrayMode = config.rowMode === "array"; + this._emitRowEvents = false; + this.on( + "newListener", + function(event) { + if (event === "row") this._emitRowEvents = true; + }.bind(this) + ); + }; + util.inherits(NativeQuery, EventEmitter); + var errorFieldMap = { + sqlState: "code", + statementPosition: "position", + messagePrimary: "message", + messageDetail: "detail", + messageHint: "hint", + context: "where", + schemaName: "schema", + tableName: "table", + columnName: "column", + dataTypeName: "dataType", + constraintName: "constraint", + sourceFile: "file", + sourceLine: "line", + sourceFunction: "routine" + }; + NativeQuery.prototype.handleError = function(err) { + const fields = this.native && this.native.pq.resultErrorFields(); + if (fields) { + for (const key in fields) { + const normalizedFieldName = errorFieldMap[key] || key; + err[normalizedFieldName] = fields[key]; + } + } + if (this.callback) { + this.callback(err); + } else { + this.emit("error", err); + } + this.state = "error"; + }; + NativeQuery.prototype.then = function(onSuccess, onFailure) { + return this._getPromise().then(onSuccess, onFailure); + }; + NativeQuery.prototype.catch = function(callback) { + return this._getPromise().catch(callback); + }; + NativeQuery.prototype._getPromise = function() { + if (this._promise) return this._promise; + this._promise = new Promise( + function(resolve, reject) { + this._once("end", resolve); + this._once("error", reject); + }.bind(this) + ); + return this._promise; + }; + NativeQuery.prototype.submit = function(client) { + this.state = "running"; + const self = this; + this.native = client.native; + client.native.arrayMode = this._arrayMode; + let after = /* @__PURE__ */ __name(function(err, rows, results) { + client.native.arrayMode = false; + setImmediate(function() { + self.emit("_done"); + }); + if (err) { + return self.handleError(err); + } + if (self._emitRowEvents) { + if (results.length > 1) { + rows.forEach((rowOfRows, i) => { + rowOfRows.forEach((row) => { + self.emit("row", row, results[i]); + }); + }); + } else { + rows.forEach(function(row) { + self.emit("row", row, results); + }); + } + } + self.state = "end"; + self.emit("end", results); + if (self.callback) { + self.callback(null, results); + } + }, "after"); + if (process.domain) { + after = process.domain.bind(after); + } + if (this.name) { + if (this.name.length > 63) { + console.error("Warning! Postgres only supports 63 characters for query names."); + console.error("You supplied %s (%s)", this.name, this.name.length); + console.error("This can cause conflicts and silent errors executing queries"); + } + const values = (this.values || []).map(utils.prepareValue); + if (client.namedQueries[this.name] !== void 0) { + if (this.text && client.namedQueries[this.name] !== this.text) { + const err = new Error(`Prepared statements must be unique - '${this.name}' was used for a different statement`); + return after(err); + } + return client.native.execute(this.name, values, after); + } + return client.native.prepare(this.name, this.text, values.length, function(err) { + if (err) return after(err); + client.namedQueries[self.name] = self.text; + return self.native.execute(self.name, values, after); + }); + } else if (this.values) { + if (!Array.isArray(this.values)) { + const err = new Error("Query values must be an array"); + return after(err); + } + const vals = this.values.map(utils.prepareValue); + client.native.query(this.text, vals, after); + } else if (this.queryMode === "extended") { + client.native.query(this.text, [], after); + } else { + client.native.query(this.text, after); + } + }; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/native/client.js +var require_client2 = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/native/client.js"(exports, module) { + var nodeUtils = __require("util"); + var Native; + try { + Native = __require("pg-native"); + } catch (e) { + throw e; + } + var TypeOverrides2 = require_type_overrides(); + var EventEmitter = __require("events").EventEmitter; + var util = __require("util"); + var ConnectionParameters = require_connection_parameters(); + var NativeQuery = require_query2(); + var queryQueueLengthDeprecationNotice = nodeUtils.deprecate( + () => { + }, + "Calling client.query() when the client is already executing a query is deprecated and will be removed in pg@9.0. Use async/await or an external async flow control mechanism instead." + ); + var Client2 = module.exports = function(config) { + EventEmitter.call(this); + config = config || {}; + this._Promise = config.Promise || global.Promise; + this._types = new TypeOverrides2(config.types); + this.native = new Native({ + types: this._types + }); + this._queryQueue = []; + this._ending = false; + this._connecting = false; + this._connected = false; + this._queryable = true; + this.pipeline = Boolean(config.pipeline); + this._pipelineInFlight = false; + const cp = this.connectionParameters = new ConnectionParameters(config); + if (config.nativeConnectionString) cp.nativeConnectionString = config.nativeConnectionString; + this.user = cp.user; + Object.defineProperty(this, "password", { + configurable: true, + enumerable: false, + writable: true, + value: cp.password + }); + this.database = cp.database; + this.host = cp.host; + this.port = cp.port; + this.namedQueries = {}; + }; + Client2.Query = NativeQuery; + util.inherits(Client2, EventEmitter); + Client2.prototype._errorAllQueries = function(err) { + const enqueueError = /* @__PURE__ */ __name((query) => { + process.nextTick(() => { + query.native = this.native; + query.handleError(err); + }); + }, "enqueueError"); + if (this._hasActiveQuery()) { + enqueueError(this._activeQuery); + this._activeQuery = null; + } + this._queryQueue.forEach(enqueueError); + this._queryQueue.length = 0; + }; + Client2.prototype._connect = function(cb) { + const self = this; + if (this._connecting) { + process.nextTick(() => cb(new Error("Client has already been connected. You cannot reuse a client."))); + return; + } + this._connecting = true; + this.connectionParameters.getLibpqConnectionString(function(err, conString) { + if (self.connectionParameters.nativeConnectionString) conString = self.connectionParameters.nativeConnectionString; + if (err) return cb(err); + self.native.connect(conString, function(err2) { + if (err2) { + self.native.end(); + return cb(err2); + } + self._connected = true; + self.native.on("error", function(err3) { + self._queryable = false; + self._errorAllQueries(err3); + self.emit("error", err3); + }); + self.native.on("notification", function(msg) { + self.emit("notification", { + channel: msg.relname, + payload: msg.extra + }); + }); + self.emit("connect"); + self._pulseQueryQueue(true); + cb(null, this); + }); + }); + }; + Client2.prototype.connect = function(callback) { + if (callback) { + this._connect(callback); + return; + } + return new this._Promise((resolve, reject) => { + this._connect((error) => { + if (error) { + reject(error); + } else { + resolve(this); + } + }); + }); + }; + Client2.prototype.query = function(config, values, callback) { + let query; + let result; + let readTimeout; + let readTimeoutTimer; + let queryCallback; + if (config === null || config === void 0) { + throw new TypeError("Client was passed a null or undefined query"); + } else if (typeof config.submit === "function") { + readTimeout = config.query_timeout || this.connectionParameters.query_timeout; + result = query = config; + if (typeof values === "function") { + config.callback = values; + } + } else { + readTimeout = config.query_timeout || this.connectionParameters.query_timeout; + query = new NativeQuery(config, values, callback); + if (!query.callback) { + let resolveOut, rejectOut; + result = new this._Promise((resolve, reject) => { + resolveOut = resolve; + rejectOut = reject; + }).catch((err) => { + Error.captureStackTrace(err); + throw err; + }); + query.callback = (err, res) => err ? rejectOut(err) : resolveOut(res); + } + } + if (readTimeout) { + queryCallback = query.callback || (() => { + }); + readTimeoutTimer = setTimeout(() => { + const error = new Error("Query read timeout"); + process.nextTick(() => { + query.handleError(error, this.connection); + }); + queryCallback(error); + query.callback = () => { + }; + const index = this._queryQueue.indexOf(query); + if (index > -1) { + this._queryQueue.splice(index, 1); + } + this._pulseQueryQueue(); + }, readTimeout); + query.callback = (err, res) => { + clearTimeout(readTimeoutTimer); + queryCallback(err, res); + }; + } + if (!this._queryable) { + query.native = this.native; + process.nextTick(() => { + query.handleError(new Error("Client has encountered a connection error and is not queryable")); + }); + return result; + } + if (this._ending) { + query.native = this.native; + process.nextTick(() => { + query.handleError(new Error("Client was closed and is not queryable")); + }); + return result; + } + if (this._queryQueue.length > 0 && !this.pipeline) { + queryQueueLengthDeprecationNotice(); + } + this._queryQueue.push(query); + this._pulseQueryQueue(); + return result; + }; + Client2.prototype.end = function(cb) { + const self = this; + this._ending = true; + if (this._connecting && !this._connected) { + this.once("connect", () => { + this.end(() => { + }); + }); + } + let result; + if (!cb) { + result = new this._Promise(function(resolve, reject) { + cb = /* @__PURE__ */ __name((err) => err ? reject(err) : resolve(), "cb"); + }); + } + const doEnd = /* @__PURE__ */ __name(function() { + self.native.end(function() { + self._connected = false; + self._errorAllQueries(new Error("Connection terminated")); + process.nextTick(() => { + self.emit("end"); + if (cb) cb(); + }); + }); + }, "doEnd"); + if (this.pipeline && (this._pipelineInFlight || this._queryQueue.length > 0)) { + this.once("drain", doEnd); + } else { + doEnd(); + } + return result; + }; + Client2.prototype._hasActiveQuery = function() { + return this._activeQuery && this._activeQuery.state !== "error" && this._activeQuery.state !== "end"; + }; + Client2.prototype._pulseQueryQueue = function(initialConnection) { + if (!this._connected) { + return; + } + if (this.pipeline && !initialConnection) { + return this._pulsePipelinedQueryQueue(); + } + if (this._hasActiveQuery()) { + return; + } + const query = this._queryQueue.shift(); + if (!query) { + if (!initialConnection) { + this.emit("drain"); + } + return; + } + this._activeQuery = query; + query.submit(this); + const self = this; + query.once("_done", function() { + self._pulseQueryQueue(); + }); + }; + Client2.prototype._pulsePipelinedQueryQueue = function() { + if (!this._connected || this._pipelineInFlight) { + return; + } + if (this._queryQueue.length === 0) { + if (this.hasExecuted) { + this.emit("drain"); + } + return; + } + this._pipelineInFlight = true; + const self = this; + const queries = []; + const nativeQueries = []; + const utils = require_utils(); + while (this._queryQueue.length > 0) { + const query = this._queryQueue.shift(); + this.hasExecuted = true; + nativeQueries.push(query); + const values = query.values ? query.values.map(utils.prepareValue) : null; + const pipelineEntry = { text: query.text, name: query.name, arrayMode: query._arrayMode }; + if (values) { + pipelineEntry.values = values; + } + if (query.name && this.namedQueries[query.name]) { + pipelineEntry._alreadyPrepared = true; + } + queries.push(pipelineEntry); + } + this.native.pipeline(queries, function(err, results) { + self._pipelineInFlight = false; + if (err) { + self._connected = false; + self._queryable = false; + for (let i = 0; i < nativeQueries.length; i++) { + const q = nativeQueries[i]; + q.native = self.native; + q.handleError(err); + } + self._errorAllQueries(err); + self.emit("error", err); + self.emit("end"); + return; + } + for (let i = 0; i < nativeQueries.length; i++) { + const q = nativeQueries[i]; + const r = results[i]; + q.native = self.native; + if (r.err) { + q.handleError(r.err); + } else { + if (q.name) { + self.namedQueries[q.name] = q.text; + } + q.state = "end"; + q.emit("end", r.result); + if (q.callback) { + q.callback(null, r.result); + } + } + setImmediate(function() { + q.emit("_done"); + }); + } + self._pulsePipelinedQueryQueue(); + }); + }; + Client2.prototype.cancel = function(query) { + if (this._activeQuery === query) { + this.native.cancel(function() { + }); + } else if (this._queryQueue.indexOf(query) !== -1) { + this._queryQueue.splice(this._queryQueue.indexOf(query), 1); + } + }; + Client2.prototype.ref = function() { + }; + Client2.prototype.unref = function() { + }; + Client2.prototype.setTypeParser = function(oid, format, parseFn) { + return this._types.setTypeParser(oid, format, parseFn); + }; + Client2.prototype.getTypeParser = function(oid, format) { + return this._types.getTypeParser(oid, format); + }; + Client2.prototype.isConnected = function() { + return this._connected; + }; + Client2.prototype.getTransactionStatus = function() { + return this.native.getTransactionStatus(); + }; + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/native/index.js +var require_native = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/native/index.js"(exports, module) { + "use strict"; + module.exports = require_client2(); + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/index.js +var require_lib2 = __commonJS({ + "../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/lib/index.js"(exports, module) { + "use strict"; + var Client2 = require_client(); + var defaults2 = require_defaults(); + var Connection2 = require_connection(); + var Result2 = require_result(); + var utils = require_utils(); + var Pool2 = require_pg_pool(); + var TypeOverrides2 = require_type_overrides(); + var { DatabaseError: DatabaseError2 } = require_dist(); + var { escapeIdentifier: escapeIdentifier2, escapeLiteral: escapeLiteral2 } = require_utils(); + var poolFactory = /* @__PURE__ */ __name((Client3) => { + return class BoundPool extends Pool2 { + static { + __name(this, "BoundPool"); + } + constructor(options) { + super(options, Client3); + } + }; + }, "poolFactory"); + var PG = /* @__PURE__ */ __name(function(clientConstructor2) { + this.defaults = defaults2; + this.Client = clientConstructor2; + this.Query = this.Client.Query; + this.Pool = poolFactory(this.Client); + this._pools = []; + this.Connection = Connection2; + this.types = require_pg_types(); + this.DatabaseError = DatabaseError2; + this.TypeOverrides = TypeOverrides2; + this.escapeIdentifier = escapeIdentifier2; + this.escapeLiteral = escapeLiteral2; + this.Result = Result2; + this.utils = utils; + }, "PG"); + var clientConstructor = Client2; + var forceNative = false; + try { + forceNative = !!process.env.NODE_PG_FORCE_NATIVE; + } catch { + } + if (forceNative) { + clientConstructor = require_native(); + } + module.exports = new PG(clientConstructor); + Object.defineProperty(module.exports, "native", { + configurable: true, + enumerable: false, + get() { + let native = null; + try { + native = new PG(require_native()); + } catch (err) { + if (err.code !== "MODULE_NOT_FOUND") { + throw err; + } + } + Object.defineProperty(module.exports, "native", { + value: native + }); + return native; + } + }); + } +}); + +// ../../node_modules/.pnpm/pg@8.23.1/node_modules/pg/esm/index.mjs +var import_lib = __toESM(require_lib2(), 1); +var Client = import_lib.default.Client; +var Pool = import_lib.default.Pool; +var Connection = import_lib.default.Connection; +var types = import_lib.default.types; +var Query = import_lib.default.Query; +var DatabaseError = import_lib.default.DatabaseError; +var escapeIdentifier = import_lib.default.escapeIdentifier; +var escapeLiteral = import_lib.default.escapeLiteral; +var Result = import_lib.default.Result; +var TypeOverrides = import_lib.default.TypeOverrides; +var defaults = import_lib.default.defaults; +var esm_default = import_lib.default; + +export { + esm_default +}; diff --git a/apps/api/.output/dist/chunks/chunk-T6GW54FI.js b/apps/api/.output/dist/chunks/chunk-T6GW54FI.js new file mode 100644 index 0000000..191ebf8 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-T6GW54FI.js @@ -0,0 +1,60 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { + get: (a, b) => (typeof require !== "undefined" ? require : a)[b] +}) : x)(function(x) { + if (typeof require !== "undefined") return require.apply(this, arguments); + throw Error('Dynamic require of "' + x + '" is not supported'); +}); +var __esm = (fn, res, err) => function __init() { + if (err) throw err[0]; + try { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; + } catch (e) { + throw err = [e], e; + } +}; +var __commonJS = (cb, mod) => function __require2() { + try { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + } catch (e) { + throw mod = 0, e; + } +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +export { + __name, + __require, + __esm, + __commonJS, + __export, + __toESM, + __toCommonJS +}; diff --git a/apps/api/.output/dist/chunks/chunk-TXBARIZB.js b/apps/api/.output/dist/chunks/chunk-TXBARIZB.js new file mode 100644 index 0000000..19bd5b8 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-TXBARIZB.js @@ -0,0 +1,64774 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + esm_default +} from "./chunk-KIUJQ22G.js"; +import { + BadRequestException, + Global, + Inject, + Injectable, + Logger, + Module, + Optional, + UnauthorizedException, + init_common +} from "./chunk-BX2ML7LW.js"; +import { + require_ms +} from "./chunk-A34KYKJP.js"; +import { + BinaryDecisionDiagram, + Client, + Command, + Crc32Node, + EndpointCache, + EndpointError, + HttpRequest, + HttpResponse, + LazyJsonString, + NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, + NoOpLogger, + NormalizedSchema, + NumericValue, + ProviderError, + REGION_ENV_NAME, + REGION_INI_NAME, + SelectorType, + ServiceException, + Sha256Js, + Sha256Node, + TypeRegistry, + Uint8ArrayBlobAdapter, + _parseEpochTimestamp, + _parseRfc3339DateTimeWithOffset, + _parseRfc7231DateTime, + booleanSelector, + calculateBodyLength, + checksum_exports, + client_exports, + concatBytes, + config_exports, + createAggregatedClient, + createBufferedReadable, + createChecksumStream, + customEndpointFunctions, + dateToUtcString, + decideEndpoint, + decorateServiceException, + deref, + emitWarningIfUnsupportedVersion, + endpoints_exports, + event_streams_exports, + fromBase64, + fromUtf8, + generateIdempotencyToken, + getDefaultExtensionConfiguration, + getEndpointPlugin, + getSchemaSerdePlugin, + getSmithyContext, + getValueFromTextNode, + hasOwn, + init_checksum, + init_client, + init_config, + init_endpoints, + init_event_streams, + init_schema, + init_serde, + init_transport, + isArrayBuffer, + isIpAddress, + isValidHostLabel, + isValidHostname, + loadConfig, + loadConfigsForDefaultMode, + makeBuilder, + normalizeProvider, + parseEpochTimestamp, + parseQueryString, + parseRfc3339DateTimeWithOffset, + parseRfc7231DateTime, + parseUrl, + quoteHeader, + require_dist_cjs, + resolveDefaultRuntimeConfig, + resolveDefaultsModeConfig, + resolveEndpoint, + resolveEndpointConfig, + resolveParams, + resolveRegionConfig, + schema_exports, + sdkStreamMixin, + serde_exports, + splitEvery, + splitHeader, + toBase64, + toUint8Array, + toUtf8, + translateTraits, + v4 +} from "./chunk-6UPY3HEI.js"; +import { + __commonJS, + __esm, + __export, + __name, + __require, + __toCommonJS, + __toESM +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/postgres-array@3.0.4/node_modules/postgres-array/index.js +var require_postgres_array = __commonJS({ + "../../node_modules/.pnpm/postgres-array@3.0.4/node_modules/postgres-array/index.js"(exports) { + "use strict"; + var BACKSLASH2 = "\\"; + var DQUOT = '"'; + var LBRACE = "{"; + var RBRACE = "}"; + var LBRACKET = "["; + var EQUALS = "="; + var COMMA2 = ","; + var NULL_STRING = "NULL"; + function makeParseArrayWithTransform(transform2) { + const haveTransform = transform2 != null; + return /* @__PURE__ */ __name(function parseArray3(str) { + const rbraceIndex = str.length - 1; + if (rbraceIndex === 1) { + return []; + } + if (str[rbraceIndex] !== RBRACE) { + throw new Error("Invalid array text - must end with }"); + } + let position = 0; + if (str[position] === LBRACKET) { + position = str.indexOf(EQUALS) + 1; + } + if (str[position++] !== LBRACE) { + throw new Error("Invalid array text - must start with {"); + } + const output2 = []; + let current = output2; + const stack = []; + let currentStringStart = position; + let currentString = ""; + let expectValue = true; + for (; position < rbraceIndex; ++position) { + let char = str[position]; + if (char === DQUOT) { + currentStringStart = ++position; + let dquot = str.indexOf(DQUOT, currentStringStart); + let backSlash = str.indexOf(BACKSLASH2, currentStringStart); + while (backSlash !== -1 && backSlash < dquot) { + position = backSlash; + const part2 = str.slice(currentStringStart, position); + currentString += part2; + currentStringStart = ++position; + if (dquot === position++) { + dquot = str.indexOf(DQUOT, position); + } + backSlash = str.indexOf(BACKSLASH2, position); + } + position = dquot; + const part = str.slice(currentStringStart, position); + currentString += part; + current.push(haveTransform ? transform2(currentString) : currentString); + currentString = ""; + expectValue = false; + } else if (char === LBRACE) { + const newArray = []; + current.push(newArray); + stack.push(current); + current = newArray; + currentStringStart = position + 1; + expectValue = true; + } else if (char === COMMA2) { + expectValue = true; + } else if (char === RBRACE) { + expectValue = false; + const arr = stack.pop(); + if (arr === void 0) { + throw new Error("Invalid array text - too many '}'"); + } + current = arr; + } else if (expectValue) { + currentStringStart = position; + while ((char = str[position]) !== COMMA2 && char !== RBRACE && position < rbraceIndex) { + ++position; + } + const part = str.slice(currentStringStart, position--); + current.push( + part === NULL_STRING ? null : haveTransform ? transform2(part) : part + ); + expectValue = false; + } else { + throw new Error("Was expecting delimeter"); + } + } + return output2; + }, "parseArray"); + } + __name(makeParseArrayWithTransform, "makeParseArrayWithTransform"); + var parseArray2 = makeParseArrayWithTransform(); + exports.parse = (source, transform2) => transform2 != null ? makeParseArrayWithTransform(transform2)(source) : parseArray2(source); + } +}); + +// ../../node_modules/.pnpm/@prisma+client-runtime-utils@7.10.1/node_modules/@prisma/client-runtime-utils/dist/index.js +var require_dist = __commonJS({ + "../../node_modules/.pnpm/@prisma+client-runtime-utils@7.10.1/node_modules/@prisma/client-runtime-utils/dist/index.js"(exports, module) { + "use strict"; + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __export3 = /* @__PURE__ */ __name((target, all) => { + for (var name2 in all) + __defProp2(target, name2, { get: all[name2], enumerable: true }); + }, "__export"); + var __copyProps = /* @__PURE__ */ __name((to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp2(to, key, { get: /* @__PURE__ */ __name(() => from[key], "get"), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }, "__copyProps"); + var __toCommonJS2 = /* @__PURE__ */ __name((mod2) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod2), "__toCommonJS"); + var index_exports = {}; + __export3(index_exports, { + AnyNull: /* @__PURE__ */ __name(() => AnyNull4, "AnyNull"), + AnyNullClass: /* @__PURE__ */ __name(() => AnyNullClass, "AnyNullClass"), + DbNull: /* @__PURE__ */ __name(() => DbNull4, "DbNull"), + DbNullClass: /* @__PURE__ */ __name(() => DbNullClass, "DbNullClass"), + Decimal: /* @__PURE__ */ __name(() => Decimal4, "Decimal"), + JsonNull: /* @__PURE__ */ __name(() => JsonNull4, "JsonNull"), + JsonNullClass: /* @__PURE__ */ __name(() => JsonNullClass, "JsonNullClass"), + NullTypes: /* @__PURE__ */ __name(() => NullTypes4, "NullTypes"), + ObjectEnumValue: /* @__PURE__ */ __name(() => ObjectEnumValue2, "ObjectEnumValue"), + PrismaClientInitializationError: /* @__PURE__ */ __name(() => PrismaClientInitializationError4, "PrismaClientInitializationError"), + PrismaClientKnownRequestError: /* @__PURE__ */ __name(() => PrismaClientKnownRequestError4, "PrismaClientKnownRequestError"), + PrismaClientRustError: /* @__PURE__ */ __name(() => PrismaClientRustError, "PrismaClientRustError"), + PrismaClientRustPanicError: /* @__PURE__ */ __name(() => PrismaClientRustPanicError4, "PrismaClientRustPanicError"), + PrismaClientUnknownRequestError: /* @__PURE__ */ __name(() => PrismaClientUnknownRequestError4, "PrismaClientUnknownRequestError"), + PrismaClientValidationError: /* @__PURE__ */ __name(() => PrismaClientValidationError4, "PrismaClientValidationError"), + Sql: /* @__PURE__ */ __name(() => Sql4, "Sql"), + empty: /* @__PURE__ */ __name(() => empty4, "empty"), + hasBatchIndex: /* @__PURE__ */ __name(() => hasBatchIndex, "hasBatchIndex"), + isAnyNull: /* @__PURE__ */ __name(() => isAnyNull2, "isAnyNull"), + isDbNull: /* @__PURE__ */ __name(() => isDbNull2, "isDbNull"), + isJsonNull: /* @__PURE__ */ __name(() => isJsonNull2, "isJsonNull"), + isObjectEnumValue: /* @__PURE__ */ __name(() => isObjectEnumValue2, "isObjectEnumValue"), + join: /* @__PURE__ */ __name(() => join4, "join"), + raw: /* @__PURE__ */ __name(() => raw4, "raw"), + sql: /* @__PURE__ */ __name(() => sql2, "sql") + }); + module.exports = __toCommonJS2(index_exports); + function hasBatchIndex(value) { + return typeof value["batchRequestIdx"] === "number"; + } + __name(hasBatchIndex, "hasBatchIndex"); + function setClassName(classObject, name2) { + Object.defineProperty(classObject, "name", { + value: name2, + configurable: true + }); + } + __name(setClassName, "setClassName"); + var PrismaClientInitializationError4 = class _PrismaClientInitializationError extends Error { + static { + __name(this, "_PrismaClientInitializationError"); + } + clientVersion; + errorCode; + retryable; + constructor(message, clientVersion, errorCode) { + super(message); + this.name = "PrismaClientInitializationError"; + this.clientVersion = clientVersion; + this.errorCode = errorCode; + Error.captureStackTrace(_PrismaClientInitializationError); + } + get [Symbol.toStringTag]() { + return "PrismaClientInitializationError"; + } + }; + setClassName(PrismaClientInitializationError4, "PrismaClientInitializationError"); + var PrismaClientKnownRequestError4 = class extends Error { + static { + __name(this, "PrismaClientKnownRequestError"); + } + code; + meta; + clientVersion; + batchRequestIdx; + constructor(message, { code, clientVersion, meta: meta3, batchRequestIdx }) { + super(message); + this.name = "PrismaClientKnownRequestError"; + this.code = code; + this.clientVersion = clientVersion; + this.meta = meta3; + Object.defineProperty(this, "batchRequestIdx", { + value: batchRequestIdx, + enumerable: false, + writable: true + }); + } + get [Symbol.toStringTag]() { + return "PrismaClientKnownRequestError"; + } + }; + setClassName(PrismaClientKnownRequestError4, "PrismaClientKnownRequestError"); + function getBacktrace(log3) { + if (log3.fields?.message) { + let str = log3.fields?.message; + if (log3.fields?.file) { + str += ` in ${log3.fields.file}`; + if (log3.fields?.line) { + str += `:${log3.fields.line}`; + } + if (log3.fields?.column) { + str += `:${log3.fields.column}`; + } + } + if (log3.fields?.reason) { + str += ` +${log3.fields?.reason}`; + } + return str; + } + return "Unknown error"; + } + __name(getBacktrace, "getBacktrace"); + function isPanic(err) { + return err.fields?.message === "PANIC"; + } + __name(isPanic, "isPanic"); + var PrismaClientRustError = class extends Error { + static { + __name(this, "PrismaClientRustError"); + } + clientVersion; + _isPanic; + constructor({ clientVersion, error: error62 }) { + const backtrace = getBacktrace(error62); + super(backtrace ?? "Unknown error"); + this._isPanic = isPanic(error62); + this.clientVersion = clientVersion; + } + get [Symbol.toStringTag]() { + return "PrismaClientRustError"; + } + isPanic() { + return this._isPanic; + } + }; + setClassName(PrismaClientRustError, "PrismaClientRustError"); + var PrismaClientRustPanicError4 = class extends Error { + static { + __name(this, "PrismaClientRustPanicError"); + } + clientVersion; + constructor(message, clientVersion) { + super(message); + this.name = "PrismaClientRustPanicError"; + this.clientVersion = clientVersion; + } + get [Symbol.toStringTag]() { + return "PrismaClientRustPanicError"; + } + }; + setClassName(PrismaClientRustPanicError4, "PrismaClientRustPanicError"); + var PrismaClientUnknownRequestError4 = class extends Error { + static { + __name(this, "PrismaClientUnknownRequestError"); + } + clientVersion; + batchRequestIdx; + constructor(message, { clientVersion, batchRequestIdx }) { + super(message); + this.name = "PrismaClientUnknownRequestError"; + this.clientVersion = clientVersion; + Object.defineProperty(this, "batchRequestIdx", { + value: batchRequestIdx, + writable: true, + enumerable: false + }); + } + get [Symbol.toStringTag]() { + return "PrismaClientUnknownRequestError"; + } + }; + setClassName(PrismaClientUnknownRequestError4, "PrismaClientUnknownRequestError"); + var PrismaClientValidationError4 = class extends Error { + static { + __name(this, "PrismaClientValidationError"); + } + name = "PrismaClientValidationError"; + clientVersion; + constructor(message, { clientVersion }) { + super(message); + this.clientVersion = clientVersion; + } + get [Symbol.toStringTag]() { + return "PrismaClientValidationError"; + } + }; + setClassName(PrismaClientValidationError4, "PrismaClientValidationError"); + var secret = /* @__PURE__ */ Symbol(); + var PRISMA_OBJECT_ENUM_VALUE = /* @__PURE__ */ Symbol.for("prisma.objectEnumValue"); + var ObjectEnumValue2 = class { + static { + __name(this, "ObjectEnumValue"); + } + [PRISMA_OBJECT_ENUM_VALUE] = true; + #representation; + constructor(arg) { + if (arg === secret) { + this.#representation = `Prisma.${this._getName()}`; + } else { + this.#representation = `new Prisma.${this._getNamespace()}.${this._getName()}()`; + } + } + _getName() { + return this.constructor.name; + } + toString() { + return this.#representation; + } + }; + function setClassName2(classObject, name2) { + Object.defineProperty(classObject, "name", { + value: name2, + configurable: true + }); + } + __name(setClassName2, "setClassName2"); + var NullTypesEnumValue = class extends ObjectEnumValue2 { + static { + __name(this, "NullTypesEnumValue"); + } + _getNamespace() { + return "NullTypes"; + } + }; + var DbNullClass = class extends NullTypesEnumValue { + static { + __name(this, "DbNullClass"); + } + // Phantom private property to prevent structural type equality + // eslint-disable-next-line no-unused-private-class-members + #_brand_DbNull; + }; + setClassName2(DbNullClass, "DbNull"); + var JsonNullClass = class extends NullTypesEnumValue { + static { + __name(this, "JsonNullClass"); + } + // Phantom private property to prevent structural type equality + // eslint-disable-next-line no-unused-private-class-members + #_brand_JsonNull; + }; + setClassName2(JsonNullClass, "JsonNull"); + var AnyNullClass = class extends NullTypesEnumValue { + static { + __name(this, "AnyNullClass"); + } + // Phantom private property to prevent structural type equality + // eslint-disable-next-line no-unused-private-class-members + #_brand_AnyNull; + }; + setClassName2(AnyNullClass, "AnyNull"); + var NullTypes4 = { + DbNull: DbNullClass, + JsonNull: JsonNullClass, + AnyNull: AnyNullClass + }; + var DbNull4 = new DbNullClass(secret); + var JsonNull4 = new JsonNullClass(secret); + var AnyNull4 = new AnyNullClass(secret); + function isObjectEnumValue2(value) { + return typeof value === "object" && value !== null && value[PRISMA_OBJECT_ENUM_VALUE] === true; + } + __name(isObjectEnumValue2, "isObjectEnumValue"); + function isDbNull2(value) { + return value === DbNull4; + } + __name(isDbNull2, "isDbNull"); + function isJsonNull2(value) { + return value === JsonNull4; + } + __name(isJsonNull2, "isJsonNull"); + function isAnyNull2(value) { + return value === AnyNull4; + } + __name(isAnyNull2, "isAnyNull"); + var EXP_LIMIT = 9e15; + var MAX_DIGITS = 1e9; + var NUMERALS = "0123456789abcdef"; + var LN10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058"; + var PI = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789"; + var DEFAULTS = { + // These values must be integers within the stated ranges (inclusive). + // Most of these values can be changed at run-time using the `Decimal.config` method. + // The maximum number of significant digits of the result of a calculation or base conversion. + // E.g. `Decimal.config({ precision: 20 });` + precision: 20, + // 1 to MAX_DIGITS + // The rounding mode used when rounding to `precision`. + // + // ROUND_UP 0 Away from zero. + // ROUND_DOWN 1 Towards zero. + // ROUND_CEIL 2 Towards +Infinity. + // ROUND_FLOOR 3 Towards -Infinity. + // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up. + // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. + // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. + // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. + // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. + // + // E.g. + // `Decimal.rounding = 4;` + // `Decimal.rounding = Decimal.ROUND_HALF_UP;` + rounding: 4, + // 0 to 8 + // The modulo mode used when calculating the modulus: a mod n. + // The quotient (q = a / n) is calculated according to the corresponding rounding mode. + // The remainder (r) is calculated as: r = a - n * q. + // + // UP 0 The remainder is positive if the dividend is negative, else is negative. + // DOWN 1 The remainder has the same sign as the dividend (JavaScript %). + // FLOOR 3 The remainder has the same sign as the divisor (Python %). + // HALF_EVEN 6 The IEEE 754 remainder function. + // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive. + // + // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian + // division (9) are commonly used for the modulus operation. The other rounding modes can also + // be used, but they may not give useful results. + modulo: 1, + // 0 to 9 + // The exponent value at and beneath which `toString` returns exponential notation. + // JavaScript numbers: -7 + toExpNeg: -7, + // 0 to -EXP_LIMIT + // The exponent value at and above which `toString` returns exponential notation. + // JavaScript numbers: 21 + toExpPos: 21, + // 0 to EXP_LIMIT + // The minimum exponent value, beneath which underflow to zero occurs. + // JavaScript numbers: -324 (5e-324) + minE: -EXP_LIMIT, + // -1 to -EXP_LIMIT + // The maximum exponent value, above which overflow to Infinity occurs. + // JavaScript numbers: 308 (1.7976931348623157e+308) + maxE: EXP_LIMIT, + // 1 to EXP_LIMIT + // Whether to use cryptographically-secure random number generation, if available. + crypto: false + // true/false + }; + var inexact; + var quadrant; + var external = true; + var decimalError = "[DecimalError] "; + var invalidArgument = decimalError + "Invalid argument: "; + var precisionLimitExceeded = decimalError + "Precision limit exceeded"; + var cryptoUnavailable = decimalError + "crypto unavailable"; + var tag = "[object Decimal]"; + var mathfloor = Math.floor; + var mathpow = Math.pow; + var isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i; + var isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i; + var isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i; + var isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; + var BASE = 1e7; + var LOG_BASE = 7; + var MAX_SAFE_INTEGER = 9007199254740991; + var LN10_PRECISION = LN10.length - 1; + var PI_PRECISION = PI.length - 1; + var P = { toStringTag: tag }; + P.absoluteValue = P.abs = function() { + var x = new this.constructor(this); + if (x.s < 0) x.s = 1; + return finalise(x); + }; + P.ceil = function() { + return finalise(new this.constructor(this), this.e + 1, 2); + }; + P.clampedTo = P.clamp = function(min2, max2) { + var k5, x = this, Ctor = x.constructor; + min2 = new Ctor(min2); + max2 = new Ctor(max2); + if (!min2.s || !max2.s) return new Ctor(NaN); + if (min2.gt(max2)) throw Error(invalidArgument + max2); + k5 = x.cmp(min2); + return k5 < 0 ? min2 : x.cmp(max2) > 0 ? max2 : new Ctor(x); + }; + P.comparedTo = P.cmp = function(y) { + var i5, j5, xdL, ydL, x = this, xd = x.d, yd = (y = new x.constructor(y)).d, xs = x.s, ys = y.s; + if (!xd || !yd) { + return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1; + } + if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0; + if (xs !== ys) return xs; + if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1; + xdL = xd.length; + ydL = yd.length; + for (i5 = 0, j5 = xdL < ydL ? xdL : ydL; i5 < j5; ++i5) { + if (xd[i5] !== yd[i5]) return xd[i5] > yd[i5] ^ xs < 0 ? 1 : -1; + } + return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1; + }; + P.cosine = P.cos = function() { + var pr, rm, x = this, Ctor = x.constructor; + if (!x.d) return new Ctor(NaN); + if (!x.d[0]) return new Ctor(1); + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; + Ctor.rounding = 1; + x = cosine(Ctor, toLessThanHalfPi(Ctor, x)); + Ctor.precision = pr; + Ctor.rounding = rm; + return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true); + }; + P.cubeRoot = P.cbrt = function() { + var e5, m3, n3, r5, rep, s2, sd, t, t32, t3plusx, x = this, Ctor = x.constructor; + if (!x.isFinite() || x.isZero()) return new Ctor(x); + external = false; + s2 = x.s * mathpow(x.s * x, 1 / 3); + if (!s2 || Math.abs(s2) == 1 / 0) { + n3 = digitsToString(x.d); + e5 = x.e; + if (s2 = (e5 - n3.length + 1) % 3) n3 += s2 == 1 || s2 == -2 ? "0" : "00"; + s2 = mathpow(n3, 1 / 3); + e5 = mathfloor((e5 + 1) / 3) - (e5 % 3 == (e5 < 0 ? -1 : 2)); + if (s2 == 1 / 0) { + n3 = "5e" + e5; + } else { + n3 = s2.toExponential(); + n3 = n3.slice(0, n3.indexOf("e") + 1) + e5; + } + r5 = new Ctor(n3); + r5.s = x.s; + } else { + r5 = new Ctor(s2.toString()); + } + sd = (e5 = Ctor.precision) + 3; + for (; ; ) { + t = r5; + t32 = t.times(t).times(t); + t3plusx = t32.plus(x); + r5 = divide(t3plusx.plus(x).times(t), t3plusx.plus(t32), sd + 2, 1); + if (digitsToString(t.d).slice(0, sd) === (n3 = digitsToString(r5.d)).slice(0, sd)) { + n3 = n3.slice(sd - 3, sd + 1); + if (n3 == "9999" || !rep && n3 == "4999") { + if (!rep) { + finalise(t, e5 + 1, 0); + if (t.times(t).times(t).eq(x)) { + r5 = t; + break; + } + } + sd += 4; + rep = 1; + } else { + if (!+n3 || !+n3.slice(1) && n3.charAt(0) == "5") { + finalise(r5, e5 + 1, 1); + m3 = !r5.times(r5).times(r5).eq(x); + } + break; + } + } + } + external = true; + return finalise(r5, e5, Ctor.rounding, m3); + }; + P.decimalPlaces = P.dp = function() { + var w, d5 = this.d, n3 = NaN; + if (d5) { + w = d5.length - 1; + n3 = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE; + w = d5[w]; + if (w) for (; w % 10 == 0; w /= 10) n3--; + if (n3 < 0) n3 = 0; + } + return n3; + }; + P.dividedBy = P.div = function(y) { + return divide(this, new this.constructor(y)); + }; + P.dividedToIntegerBy = P.divToInt = function(y) { + var x = this, Ctor = x.constructor; + return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding); + }; + P.equals = P.eq = function(y) { + return this.cmp(y) === 0; + }; + P.floor = function() { + return finalise(new this.constructor(this), this.e + 1, 3); + }; + P.greaterThan = P.gt = function(y) { + return this.cmp(y) > 0; + }; + P.greaterThanOrEqualTo = P.gte = function(y) { + var k5 = this.cmp(y); + return k5 == 1 || k5 === 0; + }; + P.hyperbolicCosine = P.cosh = function() { + var k5, n3, pr, rm, len, x = this, Ctor = x.constructor, one = new Ctor(1); + if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN); + if (x.isZero()) return one; + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; + Ctor.rounding = 1; + len = x.d.length; + if (len < 32) { + k5 = Math.ceil(len / 3); + n3 = (1 / tinyPow(4, k5)).toString(); + } else { + k5 = 16; + n3 = "2.3283064365386962890625e-10"; + } + x = taylorSeries(Ctor, 1, x.times(n3), new Ctor(1), true); + var cosh2_x, i5 = k5, d8 = new Ctor(8); + for (; i5--; ) { + cosh2_x = x.times(x); + x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8)))); + } + return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true); + }; + P.hyperbolicSine = P.sinh = function() { + var k5, pr, rm, len, x = this, Ctor = x.constructor; + if (!x.isFinite() || x.isZero()) return new Ctor(x); + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; + Ctor.rounding = 1; + len = x.d.length; + if (len < 3) { + x = taylorSeries(Ctor, 2, x, x, true); + } else { + k5 = 1.4 * Math.sqrt(len); + k5 = k5 > 16 ? 16 : k5 | 0; + x = x.times(1 / tinyPow(5, k5)); + x = taylorSeries(Ctor, 2, x, x, true); + var sinh2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20); + for (; k5--; ) { + sinh2_x = x.times(x); + x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20)))); + } + } + Ctor.precision = pr; + Ctor.rounding = rm; + return finalise(x, pr, rm, true); + }; + P.hyperbolicTangent = P.tanh = function() { + var pr, rm, x = this, Ctor = x.constructor; + if (!x.isFinite()) return new Ctor(x.s); + if (x.isZero()) return new Ctor(x); + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + 7; + Ctor.rounding = 1; + return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm); + }; + P.inverseCosine = P.acos = function() { + var x = this, Ctor = x.constructor, k5 = x.abs().cmp(1), pr = Ctor.precision, rm = Ctor.rounding; + if (k5 !== -1) { + return k5 === 0 ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) : new Ctor(NaN); + } + if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5); + Ctor.precision = pr + 6; + Ctor.rounding = 1; + x = new Ctor(1).minus(x).div(x.plus(1)).sqrt().atan(); + Ctor.precision = pr; + Ctor.rounding = rm; + return x.times(2); + }; + P.inverseHyperbolicCosine = P.acosh = function() { + var pr, rm, x = this, Ctor = x.constructor; + if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN); + if (!x.isFinite()) return new Ctor(x); + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4; + Ctor.rounding = 1; + external = false; + x = x.times(x).minus(1).sqrt().plus(x); + external = true; + Ctor.precision = pr; + Ctor.rounding = rm; + return x.ln(); + }; + P.inverseHyperbolicSine = P.asinh = function() { + var pr, rm, x = this, Ctor = x.constructor; + if (!x.isFinite() || x.isZero()) return new Ctor(x); + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6; + Ctor.rounding = 1; + external = false; + x = x.times(x).plus(1).sqrt().plus(x); + external = true; + Ctor.precision = pr; + Ctor.rounding = rm; + return x.ln(); + }; + P.inverseHyperbolicTangent = P.atanh = function() { + var pr, rm, wpr, xsd, x = this, Ctor = x.constructor; + if (!x.isFinite()) return new Ctor(NaN); + if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN); + pr = Ctor.precision; + rm = Ctor.rounding; + xsd = x.sd(); + if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true); + Ctor.precision = wpr = xsd - x.e; + x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1); + Ctor.precision = pr + 4; + Ctor.rounding = 1; + x = x.ln(); + Ctor.precision = pr; + Ctor.rounding = rm; + return x.times(0.5); + }; + P.inverseSine = P.asin = function() { + var halfPi, k5, pr, rm, x = this, Ctor = x.constructor; + if (x.isZero()) return new Ctor(x); + k5 = x.abs().cmp(1); + pr = Ctor.precision; + rm = Ctor.rounding; + if (k5 !== -1) { + if (k5 === 0) { + halfPi = getPi(Ctor, pr + 4, rm).times(0.5); + halfPi.s = x.s; + return halfPi; + } + return new Ctor(NaN); + } + Ctor.precision = pr + 6; + Ctor.rounding = 1; + x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan(); + Ctor.precision = pr; + Ctor.rounding = rm; + return x.times(2); + }; + P.inverseTangent = P.atan = function() { + var i5, j5, k5, n3, px, t, r5, wpr, x2, x = this, Ctor = x.constructor, pr = Ctor.precision, rm = Ctor.rounding; + if (!x.isFinite()) { + if (!x.s) return new Ctor(NaN); + if (pr + 4 <= PI_PRECISION) { + r5 = getPi(Ctor, pr + 4, rm).times(0.5); + r5.s = x.s; + return r5; + } + } else if (x.isZero()) { + return new Ctor(x); + } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) { + r5 = getPi(Ctor, pr + 4, rm).times(0.25); + r5.s = x.s; + return r5; + } + Ctor.precision = wpr = pr + 10; + Ctor.rounding = 1; + k5 = Math.min(28, wpr / LOG_BASE + 2 | 0); + for (i5 = k5; i5; --i5) x = x.div(x.times(x).plus(1).sqrt().plus(1)); + external = false; + j5 = Math.ceil(wpr / LOG_BASE); + n3 = 1; + x2 = x.times(x); + r5 = new Ctor(x); + px = x; + for (; i5 !== -1; ) { + px = px.times(x2); + t = r5.minus(px.div(n3 += 2)); + px = px.times(x2); + r5 = t.plus(px.div(n3 += 2)); + if (r5.d[j5] !== void 0) for (i5 = j5; r5.d[i5] === t.d[i5] && i5--; ) ; + } + if (k5) r5 = r5.times(2 << k5 - 1); + external = true; + return finalise(r5, Ctor.precision = pr, Ctor.rounding = rm, true); + }; + P.isFinite = function() { + return !!this.d; + }; + P.isInteger = P.isInt = function() { + return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2; + }; + P.isNaN = function() { + return !this.s; + }; + P.isNegative = P.isNeg = function() { + return this.s < 0; + }; + P.isPositive = P.isPos = function() { + return this.s > 0; + }; + P.isZero = function() { + return !!this.d && this.d[0] === 0; + }; + P.lessThan = P.lt = function(y) { + return this.cmp(y) < 0; + }; + P.lessThanOrEqualTo = P.lte = function(y) { + return this.cmp(y) < 1; + }; + P.logarithm = P.log = function(base) { + var isBase10, d5, denominator, k5, inf, num, sd, r5, arg = this, Ctor = arg.constructor, pr = Ctor.precision, rm = Ctor.rounding, guard = 5; + if (base == null) { + base = new Ctor(10); + isBase10 = true; + } else { + base = new Ctor(base); + d5 = base.d; + if (base.s < 0 || !d5 || !d5[0] || base.eq(1)) return new Ctor(NaN); + isBase10 = base.eq(10); + } + d5 = arg.d; + if (arg.s < 0 || !d5 || !d5[0] || arg.eq(1)) { + return new Ctor(d5 && !d5[0] ? -1 / 0 : arg.s != 1 ? NaN : d5 ? 0 : 1 / 0); + } + if (isBase10) { + if (d5.length > 1) { + inf = true; + } else { + for (k5 = d5[0]; k5 % 10 === 0; ) k5 /= 10; + inf = k5 !== 1; + } + } + external = false; + sd = pr + guard; + num = naturalLogarithm(arg, sd); + denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); + r5 = divide(num, denominator, sd, 1); + if (checkRoundingDigits(r5.d, k5 = pr, rm)) { + do { + sd += 10; + num = naturalLogarithm(arg, sd); + denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); + r5 = divide(num, denominator, sd, 1); + if (!inf) { + if (+digitsToString(r5.d).slice(k5 + 1, k5 + 15) + 1 == 1e14) { + r5 = finalise(r5, pr + 1, 0); + } + break; + } + } while (checkRoundingDigits(r5.d, k5 += 10, rm)); + } + external = true; + return finalise(r5, pr, rm); + }; + P.minus = P.sub = function(y) { + var d5, e5, i5, j5, k5, len, pr, rm, xd, xe, xLTy, yd, x = this, Ctor = x.constructor; + y = new Ctor(y); + if (!x.d || !y.d) { + if (!x.s || !y.s) y = new Ctor(NaN); + else if (x.d) y.s = -y.s; + else y = new Ctor(y.d || x.s !== y.s ? x : NaN); + return y; + } + if (x.s != y.s) { + y.s = -y.s; + return x.plus(y); + } + xd = x.d; + yd = y.d; + pr = Ctor.precision; + rm = Ctor.rounding; + if (!xd[0] || !yd[0]) { + if (yd[0]) y.s = -y.s; + else if (xd[0]) y = new Ctor(x); + else return new Ctor(rm === 3 ? -0 : 0); + return external ? finalise(y, pr, rm) : y; + } + e5 = mathfloor(y.e / LOG_BASE); + xe = mathfloor(x.e / LOG_BASE); + xd = xd.slice(); + k5 = xe - e5; + if (k5) { + xLTy = k5 < 0; + if (xLTy) { + d5 = xd; + k5 = -k5; + len = yd.length; + } else { + d5 = yd; + e5 = xe; + len = xd.length; + } + i5 = Math.max(Math.ceil(pr / LOG_BASE), len) + 2; + if (k5 > i5) { + k5 = i5; + d5.length = 1; + } + d5.reverse(); + for (i5 = k5; i5--; ) d5.push(0); + d5.reverse(); + } else { + i5 = xd.length; + len = yd.length; + xLTy = i5 < len; + if (xLTy) len = i5; + for (i5 = 0; i5 < len; i5++) { + if (xd[i5] != yd[i5]) { + xLTy = xd[i5] < yd[i5]; + break; + } + } + k5 = 0; + } + if (xLTy) { + d5 = xd; + xd = yd; + yd = d5; + y.s = -y.s; + } + len = xd.length; + for (i5 = yd.length - len; i5 > 0; --i5) xd[len++] = 0; + for (i5 = yd.length; i5 > k5; ) { + if (xd[--i5] < yd[i5]) { + for (j5 = i5; j5 && xd[--j5] === 0; ) xd[j5] = BASE - 1; + --xd[j5]; + xd[i5] += BASE; + } + xd[i5] -= yd[i5]; + } + for (; xd[--len] === 0; ) xd.pop(); + for (; xd[0] === 0; xd.shift()) --e5; + if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0); + y.d = xd; + y.e = getBase10Exponent(xd, e5); + return external ? finalise(y, pr, rm) : y; + }; + P.modulo = P.mod = function(y) { + var q3, x = this, Ctor = x.constructor; + y = new Ctor(y); + if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN); + if (!y.d || x.d && !x.d[0]) { + return finalise(new Ctor(x), Ctor.precision, Ctor.rounding); + } + external = false; + if (Ctor.modulo == 9) { + q3 = divide(x, y.abs(), 0, 3, 1); + q3.s *= y.s; + } else { + q3 = divide(x, y, 0, Ctor.modulo, 1); + } + q3 = q3.times(y); + external = true; + return x.minus(q3); + }; + P.naturalExponential = P.exp = function() { + return naturalExponential(this); + }; + P.naturalLogarithm = P.ln = function() { + return naturalLogarithm(this); + }; + P.negated = P.neg = function() { + var x = new this.constructor(this); + x.s = -x.s; + return finalise(x); + }; + P.plus = P.add = function(y) { + var carry, d5, e5, i5, k5, len, pr, rm, xd, yd, x = this, Ctor = x.constructor; + y = new Ctor(y); + if (!x.d || !y.d) { + if (!x.s || !y.s) y = new Ctor(NaN); + else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN); + return y; + } + if (x.s != y.s) { + y.s = -y.s; + return x.minus(y); + } + xd = x.d; + yd = y.d; + pr = Ctor.precision; + rm = Ctor.rounding; + if (!xd[0] || !yd[0]) { + if (!yd[0]) y = new Ctor(x); + return external ? finalise(y, pr, rm) : y; + } + k5 = mathfloor(x.e / LOG_BASE); + e5 = mathfloor(y.e / LOG_BASE); + xd = xd.slice(); + i5 = k5 - e5; + if (i5) { + if (i5 < 0) { + d5 = xd; + i5 = -i5; + len = yd.length; + } else { + d5 = yd; + e5 = k5; + len = xd.length; + } + k5 = Math.ceil(pr / LOG_BASE); + len = k5 > len ? k5 + 1 : len + 1; + if (i5 > len) { + i5 = len; + d5.length = 1; + } + d5.reverse(); + for (; i5--; ) d5.push(0); + d5.reverse(); + } + len = xd.length; + i5 = yd.length; + if (len - i5 < 0) { + i5 = len; + d5 = yd; + yd = xd; + xd = d5; + } + for (carry = 0; i5; ) { + carry = (xd[--i5] = xd[i5] + yd[i5] + carry) / BASE | 0; + xd[i5] %= BASE; + } + if (carry) { + xd.unshift(carry); + ++e5; + } + for (len = xd.length; xd[--len] == 0; ) xd.pop(); + y.d = xd; + y.e = getBase10Exponent(xd, e5); + return external ? finalise(y, pr, rm) : y; + }; + P.precision = P.sd = function(z2) { + var k5, x = this; + if (z2 !== void 0 && z2 !== !!z2 && z2 !== 1 && z2 !== 0) throw Error(invalidArgument + z2); + if (x.d) { + k5 = getPrecision(x.d); + if (z2 && x.e + 1 > k5) k5 = x.e + 1; + } else { + k5 = NaN; + } + return k5; + }; + P.round = function() { + var x = this, Ctor = x.constructor; + return finalise(new Ctor(x), x.e + 1, Ctor.rounding); + }; + P.sine = P.sin = function() { + var pr, rm, x = this, Ctor = x.constructor; + if (!x.isFinite()) return new Ctor(NaN); + if (x.isZero()) return new Ctor(x); + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; + Ctor.rounding = 1; + x = sine(Ctor, toLessThanHalfPi(Ctor, x)); + Ctor.precision = pr; + Ctor.rounding = rm; + return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true); + }; + P.squareRoot = P.sqrt = function() { + var m3, n3, sd, r5, rep, t, x = this, d5 = x.d, e5 = x.e, s2 = x.s, Ctor = x.constructor; + if (s2 !== 1 || !d5 || !d5[0]) { + return new Ctor(!s2 || s2 < 0 && (!d5 || d5[0]) ? NaN : d5 ? x : 1 / 0); + } + external = false; + s2 = Math.sqrt(+x); + if (s2 == 0 || s2 == 1 / 0) { + n3 = digitsToString(d5); + if ((n3.length + e5) % 2 == 0) n3 += "0"; + s2 = Math.sqrt(n3); + e5 = mathfloor((e5 + 1) / 2) - (e5 < 0 || e5 % 2); + if (s2 == 1 / 0) { + n3 = "5e" + e5; + } else { + n3 = s2.toExponential(); + n3 = n3.slice(0, n3.indexOf("e") + 1) + e5; + } + r5 = new Ctor(n3); + } else { + r5 = new Ctor(s2.toString()); + } + sd = (e5 = Ctor.precision) + 3; + for (; ; ) { + t = r5; + r5 = t.plus(divide(x, t, sd + 2, 1)).times(0.5); + if (digitsToString(t.d).slice(0, sd) === (n3 = digitsToString(r5.d)).slice(0, sd)) { + n3 = n3.slice(sd - 3, sd + 1); + if (n3 == "9999" || !rep && n3 == "4999") { + if (!rep) { + finalise(t, e5 + 1, 0); + if (t.times(t).eq(x)) { + r5 = t; + break; + } + } + sd += 4; + rep = 1; + } else { + if (!+n3 || !+n3.slice(1) && n3.charAt(0) == "5") { + finalise(r5, e5 + 1, 1); + m3 = !r5.times(r5).eq(x); + } + break; + } + } + } + external = true; + return finalise(r5, e5, Ctor.rounding, m3); + }; + P.tangent = P.tan = function() { + var pr, rm, x = this, Ctor = x.constructor; + if (!x.isFinite()) return new Ctor(NaN); + if (x.isZero()) return new Ctor(x); + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + 10; + Ctor.rounding = 1; + x = x.sin(); + x.s = 1; + x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0); + Ctor.precision = pr; + Ctor.rounding = rm; + return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true); + }; + P.times = P.mul = function(y) { + var carry, e5, i5, k5, r5, rL, t, xdL, ydL, x = this, Ctor = x.constructor, xd = x.d, yd = (y = new Ctor(y)).d; + y.s *= x.s; + if (!xd || !xd[0] || !yd || !yd[0]) { + return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd ? NaN : !xd || !yd ? y.s / 0 : y.s * 0); + } + e5 = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE); + xdL = xd.length; + ydL = yd.length; + if (xdL < ydL) { + r5 = xd; + xd = yd; + yd = r5; + rL = xdL; + xdL = ydL; + ydL = rL; + } + r5 = []; + rL = xdL + ydL; + for (i5 = rL; i5--; ) r5.push(0); + for (i5 = ydL; --i5 >= 0; ) { + carry = 0; + for (k5 = xdL + i5; k5 > i5; ) { + t = r5[k5] + yd[i5] * xd[k5 - i5 - 1] + carry; + r5[k5--] = t % BASE | 0; + carry = t / BASE | 0; + } + r5[k5] = (r5[k5] + carry) % BASE | 0; + } + for (; !r5[--rL]; ) r5.pop(); + if (carry) ++e5; + else r5.shift(); + y.d = r5; + y.e = getBase10Exponent(r5, e5); + return external ? finalise(y, Ctor.precision, Ctor.rounding) : y; + }; + P.toBinary = function(sd, rm) { + return toStringBinary(this, 2, sd, rm); + }; + P.toDecimalPlaces = P.toDP = function(dp, rm) { + var x = this, Ctor = x.constructor; + x = new Ctor(x); + if (dp === void 0) return x; + checkInt32(dp, 0, MAX_DIGITS); + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + return finalise(x, dp + x.e + 1, rm); + }; + P.toExponential = function(dp, rm) { + var str, x = this, Ctor = x.constructor; + if (dp === void 0) { + str = finiteToString(x, true); + } else { + checkInt32(dp, 0, MAX_DIGITS); + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + x = finalise(new Ctor(x), dp + 1, rm); + str = finiteToString(x, true, dp + 1); + } + return x.isNeg() && !x.isZero() ? "-" + str : str; + }; + P.toFixed = function(dp, rm) { + var str, y, x = this, Ctor = x.constructor; + if (dp === void 0) { + str = finiteToString(x); + } else { + checkInt32(dp, 0, MAX_DIGITS); + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + y = finalise(new Ctor(x), dp + x.e + 1, rm); + str = finiteToString(y, false, dp + y.e + 1); + } + return x.isNeg() && !x.isZero() ? "-" + str : str; + }; + P.toFraction = function(maxD) { + var d5, d0, d1, d22, e5, k5, n3, n05, n1, pr, q3, r5, x = this, xd = x.d, Ctor = x.constructor; + if (!xd) return new Ctor(x); + n1 = d0 = new Ctor(1); + d1 = n05 = new Ctor(0); + d5 = new Ctor(d1); + e5 = d5.e = getPrecision(xd) - x.e - 1; + k5 = e5 % LOG_BASE; + d5.d[0] = mathpow(10, k5 < 0 ? LOG_BASE + k5 : k5); + if (maxD == null) { + maxD = e5 > 0 ? d5 : n1; + } else { + n3 = new Ctor(maxD); + if (!n3.isInt() || n3.lt(n1)) throw Error(invalidArgument + n3); + maxD = n3.gt(d5) ? e5 > 0 ? d5 : n1 : n3; + } + external = false; + n3 = new Ctor(digitsToString(xd)); + pr = Ctor.precision; + Ctor.precision = e5 = xd.length * LOG_BASE * 2; + for (; ; ) { + q3 = divide(n3, d5, 0, 1, 1); + d22 = d0.plus(q3.times(d1)); + if (d22.cmp(maxD) == 1) break; + d0 = d1; + d1 = d22; + d22 = n1; + n1 = n05.plus(q3.times(d22)); + n05 = d22; + d22 = d5; + d5 = n3.minus(q3.times(d22)); + n3 = d22; + } + d22 = divide(maxD.minus(d0), d1, 0, 1, 1); + n05 = n05.plus(d22.times(n1)); + d0 = d0.plus(d22.times(d1)); + n05.s = n1.s = x.s; + r5 = divide(n1, d1, e5, 1).minus(x).abs().cmp(divide(n05, d0, e5, 1).minus(x).abs()) < 1 ? [n1, d1] : [n05, d0]; + Ctor.precision = pr; + external = true; + return r5; + }; + P.toHexadecimal = P.toHex = function(sd, rm) { + return toStringBinary(this, 16, sd, rm); + }; + P.toNearest = function(y, rm) { + var x = this, Ctor = x.constructor; + x = new Ctor(x); + if (y == null) { + if (!x.d) return x; + y = new Ctor(1); + rm = Ctor.rounding; + } else { + y = new Ctor(y); + if (rm === void 0) { + rm = Ctor.rounding; + } else { + checkInt32(rm, 0, 8); + } + if (!x.d) return y.s ? x : y; + if (!y.d) { + if (y.s) y.s = x.s; + return y; + } + } + if (y.d[0]) { + external = false; + x = divide(x, y, 0, rm, 1).times(y); + external = true; + finalise(x); + } else { + y.s = x.s; + x = y; + } + return x; + }; + P.toNumber = function() { + return +this; + }; + P.toOctal = function(sd, rm) { + return toStringBinary(this, 8, sd, rm); + }; + P.toPower = P.pow = function(y) { + var e5, k5, pr, r5, rm, s2, x = this, Ctor = x.constructor, yn = +(y = new Ctor(y)); + if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn)); + x = new Ctor(x); + if (x.eq(1)) return x; + pr = Ctor.precision; + rm = Ctor.rounding; + if (y.eq(1)) return finalise(x, pr, rm); + e5 = mathfloor(y.e / LOG_BASE); + if (e5 >= y.d.length - 1 && (k5 = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) { + r5 = intPow(Ctor, x, k5, pr); + return y.s < 0 ? new Ctor(1).div(r5) : finalise(r5, pr, rm); + } + s2 = x.s; + if (s2 < 0) { + if (e5 < y.d.length - 1) return new Ctor(NaN); + if ((y.d[e5] & 1) == 0) s2 = 1; + if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) { + x.s = s2; + return x; + } + } + k5 = mathpow(+x, yn); + e5 = k5 == 0 || !isFinite(k5) ? mathfloor(yn * (Math.log("0." + digitsToString(x.d)) / Math.LN10 + x.e + 1)) : new Ctor(k5 + "").e; + if (e5 > Ctor.maxE + 1 || e5 < Ctor.minE - 1) return new Ctor(e5 > 0 ? s2 / 0 : 0); + external = false; + Ctor.rounding = x.s = 1; + k5 = Math.min(12, (e5 + "").length); + r5 = naturalExponential(y.times(naturalLogarithm(x, pr + k5)), pr); + if (r5.d) { + r5 = finalise(r5, pr + 5, 1); + if (checkRoundingDigits(r5.d, pr, rm)) { + e5 = pr + 10; + r5 = finalise(naturalExponential(y.times(naturalLogarithm(x, e5 + k5)), e5), e5 + 5, 1); + if (+digitsToString(r5.d).slice(pr + 1, pr + 15) + 1 == 1e14) { + r5 = finalise(r5, pr + 1, 0); + } + } + } + r5.s = s2; + external = true; + Ctor.rounding = rm; + return finalise(r5, pr, rm); + }; + P.toPrecision = function(sd, rm) { + var str, x = this, Ctor = x.constructor; + if (sd === void 0) { + str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); + } else { + checkInt32(sd, 1, MAX_DIGITS); + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + x = finalise(new Ctor(x), sd, rm); + str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd); + } + return x.isNeg() && !x.isZero() ? "-" + str : str; + }; + P.toSignificantDigits = P.toSD = function(sd, rm) { + var x = this, Ctor = x.constructor; + if (sd === void 0) { + sd = Ctor.precision; + rm = Ctor.rounding; + } else { + checkInt32(sd, 1, MAX_DIGITS); + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + } + return finalise(new Ctor(x), sd, rm); + }; + P.toString = function() { + var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); + return x.isNeg() && !x.isZero() ? "-" + str : str; + }; + P.truncated = P.trunc = function() { + return finalise(new this.constructor(this), this.e + 1, 1); + }; + P.valueOf = P.toJSON = function() { + var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); + return x.isNeg() ? "-" + str : str; + }; + function digitsToString(d5) { + var i5, k5, ws, indexOfLastWord = d5.length - 1, str = "", w = d5[0]; + if (indexOfLastWord > 0) { + str += w; + for (i5 = 1; i5 < indexOfLastWord; i5++) { + ws = d5[i5] + ""; + k5 = LOG_BASE - ws.length; + if (k5) str += getZeroString(k5); + str += ws; + } + w = d5[i5]; + ws = w + ""; + k5 = LOG_BASE - ws.length; + if (k5) str += getZeroString(k5); + } else if (w === 0) { + return "0"; + } + for (; w % 10 === 0; ) w /= 10; + return str + w; + } + __name(digitsToString, "digitsToString"); + function checkInt32(i5, min2, max2) { + if (i5 !== ~~i5 || i5 < min2 || i5 > max2) { + throw Error(invalidArgument + i5); + } + } + __name(checkInt32, "checkInt32"); + function checkRoundingDigits(d5, i5, rm, repeating) { + var di, k5, r5, rd; + for (k5 = d5[0]; k5 >= 10; k5 /= 10) --i5; + if (--i5 < 0) { + i5 += LOG_BASE; + di = 0; + } else { + di = Math.ceil((i5 + 1) / LOG_BASE); + i5 %= LOG_BASE; + } + k5 = mathpow(10, LOG_BASE - i5); + rd = d5[di] % k5 | 0; + if (repeating == null) { + if (i5 < 3) { + if (i5 == 0) rd = rd / 100 | 0; + else if (i5 == 1) rd = rd / 10 | 0; + r5 = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 5e4 || rd == 0; + } else { + r5 = (rm < 4 && rd + 1 == k5 || rm > 3 && rd + 1 == k5 / 2) && (d5[di + 1] / k5 / 100 | 0) == mathpow(10, i5 - 2) - 1 || (rd == k5 / 2 || rd == 0) && (d5[di + 1] / k5 / 100 | 0) == 0; + } + } else { + if (i5 < 4) { + if (i5 == 0) rd = rd / 1e3 | 0; + else if (i5 == 1) rd = rd / 100 | 0; + else if (i5 == 2) rd = rd / 10 | 0; + r5 = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999; + } else { + r5 = ((repeating || rm < 4) && rd + 1 == k5 || !repeating && rm > 3 && rd + 1 == k5 / 2) && (d5[di + 1] / k5 / 1e3 | 0) == mathpow(10, i5 - 3) - 1; + } + } + return r5; + } + __name(checkRoundingDigits, "checkRoundingDigits"); + function convertBase(str, baseIn, baseOut) { + var j5, arr = [0], arrL, i5 = 0, strL = str.length; + for (; i5 < strL; ) { + for (arrL = arr.length; arrL--; ) arr[arrL] *= baseIn; + arr[0] += NUMERALS.indexOf(str.charAt(i5++)); + for (j5 = 0; j5 < arr.length; j5++) { + if (arr[j5] > baseOut - 1) { + if (arr[j5 + 1] === void 0) arr[j5 + 1] = 0; + arr[j5 + 1] += arr[j5] / baseOut | 0; + arr[j5] %= baseOut; + } + } + } + return arr.reverse(); + } + __name(convertBase, "convertBase"); + function cosine(Ctor, x) { + var k5, len, y; + if (x.isZero()) return x; + len = x.d.length; + if (len < 32) { + k5 = Math.ceil(len / 3); + y = (1 / tinyPow(4, k5)).toString(); + } else { + k5 = 16; + y = "2.3283064365386962890625e-10"; + } + Ctor.precision += k5; + x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1)); + for (var i5 = k5; i5--; ) { + var cos2x = x.times(x); + x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1); + } + Ctor.precision -= k5; + return x; + } + __name(cosine, "cosine"); + var divide = /* @__PURE__ */ (function() { + function multiplyInteger(x, k5, base) { + var temp, carry = 0, i5 = x.length; + for (x = x.slice(); i5--; ) { + temp = x[i5] * k5 + carry; + x[i5] = temp % base | 0; + carry = temp / base | 0; + } + if (carry) x.unshift(carry); + return x; + } + __name(multiplyInteger, "multiplyInteger"); + function compare(a5, b5, aL, bL) { + var i5, r5; + if (aL != bL) { + r5 = aL > bL ? 1 : -1; + } else { + for (i5 = r5 = 0; i5 < aL; i5++) { + if (a5[i5] != b5[i5]) { + r5 = a5[i5] > b5[i5] ? 1 : -1; + break; + } + } + } + return r5; + } + __name(compare, "compare"); + function subtract(a5, b5, aL, base) { + var i5 = 0; + for (; aL--; ) { + a5[aL] -= i5; + i5 = a5[aL] < b5[aL] ? 1 : 0; + a5[aL] = i5 * base + a5[aL] - b5[aL]; + } + for (; !a5[0] && a5.length > 1; ) a5.shift(); + } + __name(subtract, "subtract"); + return function(x, y, pr, rm, dp, base) { + var cmp, e5, i5, k5, logBase, more, prod, prodL, q3, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz, Ctor = x.constructor, sign22 = x.s == y.s ? 1 : -1, xd = x.d, yd = y.d; + if (!xd || !xd[0] || !yd || !yd[0]) { + return new Ctor( + // Return NaN if either NaN, or both Infinity or 0. + !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : ( + // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0. + xd && xd[0] == 0 || !yd ? sign22 * 0 : sign22 / 0 + ) + ); + } + if (base) { + logBase = 1; + e5 = x.e - y.e; + } else { + base = BASE; + logBase = LOG_BASE; + e5 = mathfloor(x.e / logBase) - mathfloor(y.e / logBase); + } + yL = yd.length; + xL = xd.length; + q3 = new Ctor(sign22); + qd = q3.d = []; + for (i5 = 0; yd[i5] == (xd[i5] || 0); i5++) ; + if (yd[i5] > (xd[i5] || 0)) e5--; + if (pr == null) { + sd = pr = Ctor.precision; + rm = Ctor.rounding; + } else if (dp) { + sd = pr + (x.e - y.e) + 1; + } else { + sd = pr; + } + if (sd < 0) { + qd.push(1); + more = true; + } else { + sd = sd / logBase + 2 | 0; + i5 = 0; + if (yL == 1) { + k5 = 0; + yd = yd[0]; + sd++; + for (; (i5 < xL || k5) && sd--; i5++) { + t = k5 * base + (xd[i5] || 0); + qd[i5] = t / yd | 0; + k5 = t % yd | 0; + } + more = k5 || i5 < xL; + } else { + k5 = base / (yd[0] + 1) | 0; + if (k5 > 1) { + yd = multiplyInteger(yd, k5, base); + xd = multiplyInteger(xd, k5, base); + yL = yd.length; + xL = xd.length; + } + xi = yL; + rem = xd.slice(0, yL); + remL = rem.length; + for (; remL < yL; ) rem[remL++] = 0; + yz = yd.slice(); + yz.unshift(0); + yd0 = yd[0]; + if (yd[1] >= base / 2) ++yd0; + do { + k5 = 0; + cmp = compare(yd, rem, yL, remL); + if (cmp < 0) { + rem0 = rem[0]; + if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); + k5 = rem0 / yd0 | 0; + if (k5 > 1) { + if (k5 >= base) k5 = base - 1; + prod = multiplyInteger(yd, k5, base); + prodL = prod.length; + remL = rem.length; + cmp = compare(prod, rem, prodL, remL); + if (cmp == 1) { + k5--; + subtract(prod, yL < prodL ? yz : yd, prodL, base); + } + } else { + if (k5 == 0) cmp = k5 = 1; + prod = yd.slice(); + } + prodL = prod.length; + if (prodL < remL) prod.unshift(0); + subtract(rem, prod, remL, base); + if (cmp == -1) { + remL = rem.length; + cmp = compare(yd, rem, yL, remL); + if (cmp < 1) { + k5++; + subtract(rem, yL < remL ? yz : yd, remL, base); + } + } + remL = rem.length; + } else if (cmp === 0) { + k5++; + rem = [0]; + } + qd[i5++] = k5; + if (cmp && rem[0]) { + rem[remL++] = xd[xi] || 0; + } else { + rem = [xd[xi]]; + remL = 1; + } + } while ((xi++ < xL || rem[0] !== void 0) && sd--); + more = rem[0] !== void 0; + } + if (!qd[0]) qd.shift(); + } + if (logBase == 1) { + q3.e = e5; + inexact = more; + } else { + for (i5 = 1, k5 = qd[0]; k5 >= 10; k5 /= 10) i5++; + q3.e = i5 + e5 * logBase - 1; + finalise(q3, dp ? pr + q3.e + 1 : pr, rm, more); + } + return q3; + }; + })(); + function finalise(x, sd, rm, isTruncated) { + var digits, i5, j5, k5, rd, roundUp, w, xd, xdi, Ctor = x.constructor; + out: if (sd != null) { + xd = x.d; + if (!xd) return x; + for (digits = 1, k5 = xd[0]; k5 >= 10; k5 /= 10) digits++; + i5 = sd - digits; + if (i5 < 0) { + i5 += LOG_BASE; + j5 = sd; + w = xd[xdi = 0]; + rd = w / mathpow(10, digits - j5 - 1) % 10 | 0; + } else { + xdi = Math.ceil((i5 + 1) / LOG_BASE); + k5 = xd.length; + if (xdi >= k5) { + if (isTruncated) { + for (; k5++ <= xdi; ) xd.push(0); + w = rd = 0; + digits = 1; + i5 %= LOG_BASE; + j5 = i5 - LOG_BASE + 1; + } else { + break out; + } + } else { + w = k5 = xd[xdi]; + for (digits = 1; k5 >= 10; k5 /= 10) digits++; + i5 %= LOG_BASE; + j5 = i5 - LOG_BASE + digits; + rd = j5 < 0 ? 0 : w / mathpow(10, digits - j5 - 1) % 10 | 0; + } + } + isTruncated = isTruncated || sd < 0 || xd[xdi + 1] !== void 0 || (j5 < 0 ? w : w % mathpow(10, digits - j5 - 1)); + roundUp = rm < 4 ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && // Check whether the digit to the left of the rounding digit is odd. + (i5 > 0 ? j5 > 0 ? w / mathpow(10, digits - j5) : 0 : xd[xdi - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7)); + if (sd < 1 || !xd[0]) { + xd.length = 0; + if (roundUp) { + sd -= x.e + 1; + xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE); + x.e = -sd || 0; + } else { + xd[0] = x.e = 0; + } + return x; + } + if (i5 == 0) { + xd.length = xdi; + k5 = 1; + xdi--; + } else { + xd.length = xdi + 1; + k5 = mathpow(10, LOG_BASE - i5); + xd[xdi] = j5 > 0 ? (w / mathpow(10, digits - j5) % mathpow(10, j5) | 0) * k5 : 0; + } + if (roundUp) { + for (; ; ) { + if (xdi == 0) { + for (i5 = 1, j5 = xd[0]; j5 >= 10; j5 /= 10) i5++; + j5 = xd[0] += k5; + for (k5 = 1; j5 >= 10; j5 /= 10) k5++; + if (i5 != k5) { + x.e++; + if (xd[0] == BASE) xd[0] = 1; + } + break; + } else { + xd[xdi] += k5; + if (xd[xdi] != BASE) break; + xd[xdi--] = 0; + k5 = 1; + } + } + } + for (i5 = xd.length; xd[--i5] === 0; ) xd.pop(); + } + if (external) { + if (x.e > Ctor.maxE) { + x.d = null; + x.e = NaN; + } else if (x.e < Ctor.minE) { + x.e = 0; + x.d = [0]; + } + } + return x; + } + __name(finalise, "finalise"); + function finiteToString(x, isExp, sd) { + if (!x.isFinite()) return nonFiniteToString(x); + var k5, e5 = x.e, str = digitsToString(x.d), len = str.length; + if (isExp) { + if (sd && (k5 = sd - len) > 0) { + str = str.charAt(0) + "." + str.slice(1) + getZeroString(k5); + } else if (len > 1) { + str = str.charAt(0) + "." + str.slice(1); + } + str = str + (x.e < 0 ? "e" : "e+") + x.e; + } else if (e5 < 0) { + str = "0." + getZeroString(-e5 - 1) + str; + if (sd && (k5 = sd - len) > 0) str += getZeroString(k5); + } else if (e5 >= len) { + str += getZeroString(e5 + 1 - len); + if (sd && (k5 = sd - e5 - 1) > 0) str = str + "." + getZeroString(k5); + } else { + if ((k5 = e5 + 1) < len) str = str.slice(0, k5) + "." + str.slice(k5); + if (sd && (k5 = sd - len) > 0) { + if (e5 + 1 === len) str += "."; + str += getZeroString(k5); + } + } + return str; + } + __name(finiteToString, "finiteToString"); + function getBase10Exponent(digits, e5) { + var w = digits[0]; + for (e5 *= LOG_BASE; w >= 10; w /= 10) e5++; + return e5; + } + __name(getBase10Exponent, "getBase10Exponent"); + function getLn10(Ctor, sd, pr) { + if (sd > LN10_PRECISION) { + external = true; + if (pr) Ctor.precision = pr; + throw Error(precisionLimitExceeded); + } + return finalise(new Ctor(LN10), sd, 1, true); + } + __name(getLn10, "getLn10"); + function getPi(Ctor, sd, rm) { + if (sd > PI_PRECISION) throw Error(precisionLimitExceeded); + return finalise(new Ctor(PI), sd, rm, true); + } + __name(getPi, "getPi"); + function getPrecision(digits) { + var w = digits.length - 1, len = w * LOG_BASE + 1; + w = digits[w]; + if (w) { + for (; w % 10 == 0; w /= 10) len--; + for (w = digits[0]; w >= 10; w /= 10) len++; + } + return len; + } + __name(getPrecision, "getPrecision"); + function getZeroString(k5) { + var zs = ""; + for (; k5--; ) zs += "0"; + return zs; + } + __name(getZeroString, "getZeroString"); + function intPow(Ctor, x, n3, pr) { + var isTruncated, r5 = new Ctor(1), k5 = Math.ceil(pr / LOG_BASE + 4); + external = false; + for (; ; ) { + if (n3 % 2) { + r5 = r5.times(x); + if (truncate(r5.d, k5)) isTruncated = true; + } + n3 = mathfloor(n3 / 2); + if (n3 === 0) { + n3 = r5.d.length - 1; + if (isTruncated && r5.d[n3] === 0) ++r5.d[n3]; + break; + } + x = x.times(x); + truncate(x.d, k5); + } + external = true; + return r5; + } + __name(intPow, "intPow"); + function isOdd(n3) { + return n3.d[n3.d.length - 1] & 1; + } + __name(isOdd, "isOdd"); + function maxOrMin(Ctor, args, n3) { + var k5, y, x = new Ctor(args[0]), i5 = 0; + for (; ++i5 < args.length; ) { + y = new Ctor(args[i5]); + if (!y.s) { + x = y; + break; + } + k5 = x.cmp(y); + if (k5 === n3 || k5 === 0 && x.s === n3) { + x = y; + } + } + return x; + } + __name(maxOrMin, "maxOrMin"); + function naturalExponential(x, sd) { + var denominator, guard, j5, pow2, sum2, t, wpr, rep = 0, i5 = 0, k5 = 0, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision; + if (!x.d || !x.d[0] || x.e > 17) { + return new Ctor(x.d ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 : x.s ? x.s < 0 ? 0 : x : 0 / 0); + } + if (sd == null) { + external = false; + wpr = pr; + } else { + wpr = sd; + } + t = new Ctor(0.03125); + while (x.e > -2) { + x = x.times(t); + k5 += 5; + } + guard = Math.log(mathpow(2, k5)) / Math.LN10 * 2 + 5 | 0; + wpr += guard; + denominator = pow2 = sum2 = new Ctor(1); + Ctor.precision = wpr; + for (; ; ) { + pow2 = finalise(pow2.times(x), wpr, 1); + denominator = denominator.times(++i5); + t = sum2.plus(divide(pow2, denominator, wpr, 1)); + if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) { + j5 = k5; + while (j5--) sum2 = finalise(sum2.times(sum2), wpr, 1); + if (sd == null) { + if (rep < 3 && checkRoundingDigits(sum2.d, wpr - guard, rm, rep)) { + Ctor.precision = wpr += 10; + denominator = pow2 = t = new Ctor(1); + i5 = 0; + rep++; + } else { + return finalise(sum2, Ctor.precision = pr, rm, external = true); + } + } else { + Ctor.precision = pr; + return sum2; + } + } + sum2 = t; + } + } + __name(naturalExponential, "naturalExponential"); + function naturalLogarithm(y, sd) { + var c5, c0, denominator, e5, numerator, rep, sum2, t, wpr, x1, x2, n3 = 1, guard = 10, x = y, xd = x.d, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision; + if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) { + return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x); + } + if (sd == null) { + external = false; + wpr = pr; + } else { + wpr = sd; + } + Ctor.precision = wpr += guard; + c5 = digitsToString(xd); + c0 = c5.charAt(0); + if (Math.abs(e5 = x.e) < 15e14) { + while (c0 < 7 && c0 != 1 || c0 == 1 && c5.charAt(1) > 3) { + x = x.times(y); + c5 = digitsToString(x.d); + c0 = c5.charAt(0); + n3++; + } + e5 = x.e; + if (c0 > 1) { + x = new Ctor("0." + c5); + e5++; + } else { + x = new Ctor(c0 + "." + c5.slice(1)); + } + } else { + t = getLn10(Ctor, wpr + 2, pr).times(e5 + ""); + x = naturalLogarithm(new Ctor(c0 + "." + c5.slice(1)), wpr - guard).plus(t); + Ctor.precision = pr; + return sd == null ? finalise(x, pr, rm, external = true) : x; + } + x1 = x; + sum2 = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1); + x2 = finalise(x.times(x), wpr, 1); + denominator = 3; + for (; ; ) { + numerator = finalise(numerator.times(x2), wpr, 1); + t = sum2.plus(divide(numerator, new Ctor(denominator), wpr, 1)); + if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) { + sum2 = sum2.times(2); + if (e5 !== 0) sum2 = sum2.plus(getLn10(Ctor, wpr + 2, pr).times(e5 + "")); + sum2 = divide(sum2, new Ctor(n3), wpr, 1); + if (sd == null) { + if (checkRoundingDigits(sum2.d, wpr - guard, rm, rep)) { + Ctor.precision = wpr += guard; + t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1); + x2 = finalise(x.times(x), wpr, 1); + denominator = rep = 1; + } else { + return finalise(sum2, Ctor.precision = pr, rm, external = true); + } + } else { + Ctor.precision = pr; + return sum2; + } + } + sum2 = t; + denominator += 2; + } + } + __name(naturalLogarithm, "naturalLogarithm"); + function nonFiniteToString(x) { + return String(x.s * x.s / 0); + } + __name(nonFiniteToString, "nonFiniteToString"); + function parseDecimal(x, str) { + var e5, i5, len; + if ((e5 = str.indexOf(".")) > -1) str = str.replace(".", ""); + if ((i5 = str.search(/e/i)) > 0) { + if (e5 < 0) e5 = i5; + e5 += +str.slice(i5 + 1); + str = str.substring(0, i5); + } else if (e5 < 0) { + e5 = str.length; + } + for (i5 = 0; str.charCodeAt(i5) === 48; i5++) ; + for (len = str.length; str.charCodeAt(len - 1) === 48; --len) ; + str = str.slice(i5, len); + if (str) { + len -= i5; + x.e = e5 = e5 - i5 - 1; + x.d = []; + i5 = (e5 + 1) % LOG_BASE; + if (e5 < 0) i5 += LOG_BASE; + if (i5 < len) { + if (i5) x.d.push(+str.slice(0, i5)); + for (len -= LOG_BASE; i5 < len; ) x.d.push(+str.slice(i5, i5 += LOG_BASE)); + str = str.slice(i5); + i5 = LOG_BASE - str.length; + } else { + i5 -= len; + } + for (; i5--; ) str += "0"; + x.d.push(+str); + if (external) { + if (x.e > x.constructor.maxE) { + x.d = null; + x.e = NaN; + } else if (x.e < x.constructor.minE) { + x.e = 0; + x.d = [0]; + } + } + } else { + x.e = 0; + x.d = [0]; + } + return x; + } + __name(parseDecimal, "parseDecimal"); + function parseOther(x, str) { + var base, Ctor, divisor, i5, isFloat, len, p3, xd, xe; + if (str.indexOf("_") > -1) { + str = str.replace(/(\d)_(?=\d)/g, "$1"); + if (isDecimal.test(str)) return parseDecimal(x, str); + } else if (str === "Infinity" || str === "NaN") { + if (!+str) x.s = NaN; + x.e = NaN; + x.d = null; + return x; + } + if (isHex.test(str)) { + base = 16; + str = str.toLowerCase(); + } else if (isBinary.test(str)) { + base = 2; + } else if (isOctal.test(str)) { + base = 8; + } else { + throw Error(invalidArgument + str); + } + i5 = str.search(/p/i); + if (i5 > 0) { + p3 = +str.slice(i5 + 1); + str = str.substring(2, i5); + } else { + str = str.slice(2); + } + i5 = str.indexOf("."); + isFloat = i5 >= 0; + Ctor = x.constructor; + if (isFloat) { + str = str.replace(".", ""); + len = str.length; + i5 = len - i5; + divisor = intPow(Ctor, new Ctor(base), i5, i5 * 2); + } + xd = convertBase(str, base, BASE); + xe = xd.length - 1; + for (i5 = xe; xd[i5] === 0; --i5) xd.pop(); + if (i5 < 0) return new Ctor(x.s * 0); + x.e = getBase10Exponent(xd, xe); + x.d = xd; + external = false; + if (isFloat) x = divide(x, divisor, len * 4); + if (p3) x = x.times(Math.abs(p3) < 54 ? mathpow(2, p3) : Decimal4.pow(2, p3)); + external = true; + return x; + } + __name(parseOther, "parseOther"); + function sine(Ctor, x) { + var k5, len = x.d.length; + if (len < 3) { + return x.isZero() ? x : taylorSeries(Ctor, 2, x, x); + } + k5 = 1.4 * Math.sqrt(len); + k5 = k5 > 16 ? 16 : k5 | 0; + x = x.times(1 / tinyPow(5, k5)); + x = taylorSeries(Ctor, 2, x, x); + var sin2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20); + for (; k5--; ) { + sin2_x = x.times(x); + x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20)))); + } + return x; + } + __name(sine, "sine"); + function taylorSeries(Ctor, n3, x, y, isHyperbolic) { + var j5, t, u, x2, i5 = 1, pr = Ctor.precision, k5 = Math.ceil(pr / LOG_BASE); + external = false; + x2 = x.times(x); + u = new Ctor(y); + for (; ; ) { + t = divide(u.times(x2), new Ctor(n3++ * n3++), pr, 1); + u = isHyperbolic ? y.plus(t) : y.minus(t); + y = divide(t.times(x2), new Ctor(n3++ * n3++), pr, 1); + t = u.plus(y); + if (t.d[k5] !== void 0) { + for (j5 = k5; t.d[j5] === u.d[j5] && j5--; ) ; + if (j5 == -1) break; + } + j5 = u; + u = y; + y = t; + t = j5; + i5++; + } + external = true; + t.d.length = k5 + 1; + return t; + } + __name(taylorSeries, "taylorSeries"); + function tinyPow(b5, e5) { + var n3 = b5; + while (--e5) n3 *= b5; + return n3; + } + __name(tinyPow, "tinyPow"); + function toLessThanHalfPi(Ctor, x) { + var t, isNeg = x.s < 0, pi = getPi(Ctor, Ctor.precision, 1), halfPi = pi.times(0.5); + x = x.abs(); + if (x.lte(halfPi)) { + quadrant = isNeg ? 4 : 1; + return x; + } + t = x.divToInt(pi); + if (t.isZero()) { + quadrant = isNeg ? 3 : 2; + } else { + x = x.minus(t.times(pi)); + if (x.lte(halfPi)) { + quadrant = isOdd(t) ? isNeg ? 2 : 3 : isNeg ? 4 : 1; + return x; + } + quadrant = isOdd(t) ? isNeg ? 1 : 4 : isNeg ? 3 : 2; + } + return x.minus(pi).abs(); + } + __name(toLessThanHalfPi, "toLessThanHalfPi"); + function toStringBinary(x, baseOut, sd, rm) { + var base, e5, i5, k5, len, roundUp, str, xd, y, Ctor = x.constructor, isExp = sd !== void 0; + if (isExp) { + checkInt32(sd, 1, MAX_DIGITS); + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + } else { + sd = Ctor.precision; + rm = Ctor.rounding; + } + if (!x.isFinite()) { + str = nonFiniteToString(x); + } else { + str = finiteToString(x); + i5 = str.indexOf("."); + if (isExp) { + base = 2; + if (baseOut == 16) { + sd = sd * 4 - 3; + } else if (baseOut == 8) { + sd = sd * 3 - 2; + } + } else { + base = baseOut; + } + if (i5 >= 0) { + str = str.replace(".", ""); + y = new Ctor(1); + y.e = str.length - i5; + y.d = convertBase(finiteToString(y), 10, base); + y.e = y.d.length; + } + xd = convertBase(str, 10, base); + e5 = len = xd.length; + for (; xd[--len] == 0; ) xd.pop(); + if (!xd[0]) { + str = isExp ? "0p+0" : "0"; + } else { + if (i5 < 0) { + e5--; + } else { + x = new Ctor(x); + x.d = xd; + x.e = e5; + x = divide(x, y, sd, rm, 0, base); + xd = x.d; + e5 = x.e; + roundUp = inexact; + } + i5 = xd[sd]; + k5 = base / 2; + roundUp = roundUp || xd[sd + 1] !== void 0; + roundUp = rm < 4 ? (i5 !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) : i5 > k5 || i5 === k5 && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || rm === (x.s < 0 ? 8 : 7)); + xd.length = sd; + if (roundUp) { + for (; ++xd[--sd] > base - 1; ) { + xd[sd] = 0; + if (!sd) { + ++e5; + xd.unshift(1); + } + } + } + for (len = xd.length; !xd[len - 1]; --len) ; + for (i5 = 0, str = ""; i5 < len; i5++) str += NUMERALS.charAt(xd[i5]); + if (isExp) { + if (len > 1) { + if (baseOut == 16 || baseOut == 8) { + i5 = baseOut == 16 ? 4 : 3; + for (--len; len % i5; len++) str += "0"; + xd = convertBase(str, base, baseOut); + for (len = xd.length; !xd[len - 1]; --len) ; + for (i5 = 1, str = "1."; i5 < len; i5++) str += NUMERALS.charAt(xd[i5]); + } else { + str = str.charAt(0) + "." + str.slice(1); + } + } + str = str + (e5 < 0 ? "p" : "p+") + e5; + } else if (e5 < 0) { + for (; ++e5; ) str = "0" + str; + str = "0." + str; + } else { + if (++e5 > len) for (e5 -= len; e5--; ) str += "0"; + else if (e5 < len) str = str.slice(0, e5) + "." + str.slice(e5); + } + } + str = (baseOut == 16 ? "0x" : baseOut == 2 ? "0b" : baseOut == 8 ? "0o" : "") + str; + } + return x.s < 0 ? "-" + str : str; + } + __name(toStringBinary, "toStringBinary"); + function truncate(arr, len) { + if (arr.length > len) { + arr.length = len; + return true; + } + } + __name(truncate, "truncate"); + function abs(x) { + return new this(x).abs(); + } + __name(abs, "abs"); + function acos(x) { + return new this(x).acos(); + } + __name(acos, "acos"); + function acosh(x) { + return new this(x).acosh(); + } + __name(acosh, "acosh"); + function add(x, y) { + return new this(x).plus(y); + } + __name(add, "add"); + function asin(x) { + return new this(x).asin(); + } + __name(asin, "asin"); + function asinh(x) { + return new this(x).asinh(); + } + __name(asinh, "asinh"); + function atan(x) { + return new this(x).atan(); + } + __name(atan, "atan"); + function atanh(x) { + return new this(x).atanh(); + } + __name(atanh, "atanh"); + function atan2(y, x) { + y = new this(y); + x = new this(x); + var r5, pr = this.precision, rm = this.rounding, wpr = pr + 4; + if (!y.s || !x.s) { + r5 = new this(NaN); + } else if (!y.d && !x.d) { + r5 = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75); + r5.s = y.s; + } else if (!x.d || y.isZero()) { + r5 = x.s < 0 ? getPi(this, pr, rm) : new this(0); + r5.s = y.s; + } else if (!y.d || x.isZero()) { + r5 = getPi(this, wpr, 1).times(0.5); + r5.s = y.s; + } else if (x.s < 0) { + this.precision = wpr; + this.rounding = 1; + r5 = this.atan(divide(y, x, wpr, 1)); + x = getPi(this, wpr, 1); + this.precision = pr; + this.rounding = rm; + r5 = y.s < 0 ? r5.minus(x) : r5.plus(x); + } else { + r5 = this.atan(divide(y, x, wpr, 1)); + } + return r5; + } + __name(atan2, "atan2"); + function cbrt(x) { + return new this(x).cbrt(); + } + __name(cbrt, "cbrt"); + function ceil(x) { + return finalise(x = new this(x), x.e + 1, 2); + } + __name(ceil, "ceil"); + function clamp(x, min2, max2) { + return new this(x).clamp(min2, max2); + } + __name(clamp, "clamp"); + function config3(obj) { + if (!obj || typeof obj !== "object") throw Error(decimalError + "Object expected"); + var i5, p3, v, useDefaults = obj.defaults === true, ps = [ + "precision", + 1, + MAX_DIGITS, + "rounding", + 0, + 8, + "toExpNeg", + -EXP_LIMIT, + 0, + "toExpPos", + 0, + EXP_LIMIT, + "maxE", + 0, + EXP_LIMIT, + "minE", + -EXP_LIMIT, + 0, + "modulo", + 0, + 9 + ]; + for (i5 = 0; i5 < ps.length; i5 += 3) { + if (p3 = ps[i5], useDefaults) this[p3] = DEFAULTS[p3]; + if ((v = obj[p3]) !== void 0) { + if (mathfloor(v) === v && v >= ps[i5 + 1] && v <= ps[i5 + 2]) this[p3] = v; + else throw Error(invalidArgument + p3 + ": " + v); + } + } + if (p3 = "crypto", useDefaults) this[p3] = DEFAULTS[p3]; + if ((v = obj[p3]) !== void 0) { + if (v === true || v === false || v === 0 || v === 1) { + if (v) { + if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) { + this[p3] = true; + } else { + throw Error(cryptoUnavailable); + } + } else { + this[p3] = false; + } + } else { + throw Error(invalidArgument + p3 + ": " + v); + } + } + return this; + } + __name(config3, "config"); + function cos(x) { + return new this(x).cos(); + } + __name(cos, "cos"); + function cosh(x) { + return new this(x).cosh(); + } + __name(cosh, "cosh"); + function clone2(obj) { + var i5, p3, ps; + function Decimal22(v) { + var e5, i22, t, x = this; + if (!(x instanceof Decimal22)) return new Decimal22(v); + x.constructor = Decimal22; + if (isDecimalInstance(v)) { + x.s = v.s; + if (external) { + if (!v.d || v.e > Decimal22.maxE) { + x.e = NaN; + x.d = null; + } else if (v.e < Decimal22.minE) { + x.e = 0; + x.d = [0]; + } else { + x.e = v.e; + x.d = v.d.slice(); + } + } else { + x.e = v.e; + x.d = v.d ? v.d.slice() : v.d; + } + return; + } + t = typeof v; + if (t === "number") { + if (v === 0) { + x.s = 1 / v < 0 ? -1 : 1; + x.e = 0; + x.d = [0]; + return; + } + if (v < 0) { + v = -v; + x.s = -1; + } else { + x.s = 1; + } + if (v === ~~v && v < 1e7) { + for (e5 = 0, i22 = v; i22 >= 10; i22 /= 10) e5++; + if (external) { + if (e5 > Decimal22.maxE) { + x.e = NaN; + x.d = null; + } else if (e5 < Decimal22.minE) { + x.e = 0; + x.d = [0]; + } else { + x.e = e5; + x.d = [v]; + } + } else { + x.e = e5; + x.d = [v]; + } + return; + } + if (v * 0 !== 0) { + if (!v) x.s = NaN; + x.e = NaN; + x.d = null; + return; + } + return parseDecimal(x, v.toString()); + } + if (t === "string") { + if ((i22 = v.charCodeAt(0)) === 45) { + v = v.slice(1); + x.s = -1; + } else { + if (i22 === 43) v = v.slice(1); + x.s = 1; + } + return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v); + } + if (t === "bigint") { + if (v < 0) { + v = -v; + x.s = -1; + } else { + x.s = 1; + } + return parseDecimal(x, v.toString()); + } + throw Error(invalidArgument + v); + } + __name(Decimal22, "Decimal2"); + Decimal22.prototype = P; + Decimal22.ROUND_UP = 0; + Decimal22.ROUND_DOWN = 1; + Decimal22.ROUND_CEIL = 2; + Decimal22.ROUND_FLOOR = 3; + Decimal22.ROUND_HALF_UP = 4; + Decimal22.ROUND_HALF_DOWN = 5; + Decimal22.ROUND_HALF_EVEN = 6; + Decimal22.ROUND_HALF_CEIL = 7; + Decimal22.ROUND_HALF_FLOOR = 8; + Decimal22.EUCLID = 9; + Decimal22.config = Decimal22.set = config3; + Decimal22.clone = clone2; + Decimal22.isDecimal = isDecimalInstance; + Decimal22.abs = abs; + Decimal22.acos = acos; + Decimal22.acosh = acosh; + Decimal22.add = add; + Decimal22.asin = asin; + Decimal22.asinh = asinh; + Decimal22.atan = atan; + Decimal22.atanh = atanh; + Decimal22.atan2 = atan2; + Decimal22.cbrt = cbrt; + Decimal22.ceil = ceil; + Decimal22.clamp = clamp; + Decimal22.cos = cos; + Decimal22.cosh = cosh; + Decimal22.div = div; + Decimal22.exp = exp; + Decimal22.floor = floor; + Decimal22.hypot = hypot; + Decimal22.ln = ln; + Decimal22.log = log; + Decimal22.log10 = log10; + Decimal22.log2 = log2; + Decimal22.max = max; + Decimal22.min = min; + Decimal22.mod = mod; + Decimal22.mul = mul; + Decimal22.pow = pow; + Decimal22.random = random; + Decimal22.round = round; + Decimal22.sign = sign2; + Decimal22.sin = sin; + Decimal22.sinh = sinh; + Decimal22.sqrt = sqrt; + Decimal22.sub = sub; + Decimal22.sum = sum; + Decimal22.tan = tan; + Decimal22.tanh = tanh; + Decimal22.trunc = trunc; + if (obj === void 0) obj = {}; + if (obj) { + if (obj.defaults !== true) { + ps = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"]; + for (i5 = 0; i5 < ps.length; ) if (!obj.hasOwnProperty(p3 = ps[i5++])) obj[p3] = this[p3]; + } + } + Decimal22.config(obj); + return Decimal22; + } + __name(clone2, "clone"); + function div(x, y) { + return new this(x).div(y); + } + __name(div, "div"); + function exp(x) { + return new this(x).exp(); + } + __name(exp, "exp"); + function floor(x) { + return finalise(x = new this(x), x.e + 1, 3); + } + __name(floor, "floor"); + function hypot() { + var i5, n3, t = new this(0); + external = false; + for (i5 = 0; i5 < arguments.length; ) { + n3 = new this(arguments[i5++]); + if (!n3.d) { + if (n3.s) { + external = true; + return new this(1 / 0); + } + t = n3; + } else if (t.d) { + t = t.plus(n3.times(n3)); + } + } + external = true; + return t.sqrt(); + } + __name(hypot, "hypot"); + function isDecimalInstance(obj) { + return obj instanceof Decimal4 || obj && obj.toStringTag === tag || false; + } + __name(isDecimalInstance, "isDecimalInstance"); + function ln(x) { + return new this(x).ln(); + } + __name(ln, "ln"); + function log(x, y) { + return new this(x).log(y); + } + __name(log, "log"); + function log2(x) { + return new this(x).log(2); + } + __name(log2, "log2"); + function log10(x) { + return new this(x).log(10); + } + __name(log10, "log10"); + function max() { + return maxOrMin(this, arguments, -1); + } + __name(max, "max"); + function min() { + return maxOrMin(this, arguments, 1); + } + __name(min, "min"); + function mod(x, y) { + return new this(x).mod(y); + } + __name(mod, "mod"); + function mul(x, y) { + return new this(x).mul(y); + } + __name(mul, "mul"); + function pow(x, y) { + return new this(x).pow(y); + } + __name(pow, "pow"); + function random(sd) { + var d5, e5, k5, n3, i5 = 0, r5 = new this(1), rd = []; + if (sd === void 0) sd = this.precision; + else checkInt32(sd, 1, MAX_DIGITS); + k5 = Math.ceil(sd / LOG_BASE); + if (!this.crypto) { + for (; i5 < k5; ) rd[i5++] = Math.random() * 1e7 | 0; + } else if (crypto.getRandomValues) { + d5 = crypto.getRandomValues(new Uint32Array(k5)); + for (; i5 < k5; ) { + n3 = d5[i5]; + if (n3 >= 429e7) { + d5[i5] = crypto.getRandomValues(new Uint32Array(1))[0]; + } else { + rd[i5++] = n3 % 1e7; + } + } + } else if (crypto.randomBytes) { + d5 = crypto.randomBytes(k5 *= 4); + for (; i5 < k5; ) { + n3 = d5[i5] + (d5[i5 + 1] << 8) + (d5[i5 + 2] << 16) + ((d5[i5 + 3] & 127) << 24); + if (n3 >= 214e7) { + crypto.randomBytes(4).copy(d5, i5); + } else { + rd.push(n3 % 1e7); + i5 += 4; + } + } + i5 = k5 / 4; + } else { + throw Error(cryptoUnavailable); + } + k5 = rd[--i5]; + sd %= LOG_BASE; + if (k5 && sd) { + n3 = mathpow(10, LOG_BASE - sd); + rd[i5] = (k5 / n3 | 0) * n3; + } + for (; rd[i5] === 0; i5--) rd.pop(); + if (i5 < 0) { + e5 = 0; + rd = [0]; + } else { + e5 = -1; + for (; rd[0] === 0; e5 -= LOG_BASE) rd.shift(); + for (k5 = 1, n3 = rd[0]; n3 >= 10; n3 /= 10) k5++; + if (k5 < LOG_BASE) e5 -= LOG_BASE - k5; + } + r5.e = e5; + r5.d = rd; + return r5; + } + __name(random, "random"); + function round(x) { + return finalise(x = new this(x), x.e + 1, this.rounding); + } + __name(round, "round"); + function sign2(x) { + x = new this(x); + return x.d ? x.d[0] ? x.s : 0 * x.s : x.s || NaN; + } + __name(sign2, "sign"); + function sin(x) { + return new this(x).sin(); + } + __name(sin, "sin"); + function sinh(x) { + return new this(x).sinh(); + } + __name(sinh, "sinh"); + function sqrt(x) { + return new this(x).sqrt(); + } + __name(sqrt, "sqrt"); + function sub(x, y) { + return new this(x).sub(y); + } + __name(sub, "sub"); + function sum() { + var i5 = 0, args = arguments, x = new this(args[i5]); + external = false; + for (; x.s && ++i5 < args.length; ) x = x.plus(args[i5]); + external = true; + return finalise(x, this.precision, this.rounding); + } + __name(sum, "sum"); + function tan(x) { + return new this(x).tan(); + } + __name(tan, "tan"); + function tanh(x) { + return new this(x).tanh(); + } + __name(tanh, "tanh"); + function trunc(x) { + return finalise(x = new this(x), x.e + 1, 1); + } + __name(trunc, "trunc"); + P[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = P.toString; + P[Symbol.toStringTag] = "Decimal"; + var Decimal4 = P.constructor = clone2(DEFAULTS); + LN10 = new Decimal4(LN10); + PI = new Decimal4(PI); + var Sql4 = class _Sql { + static { + __name(this, "_Sql"); + } + constructor(rawStrings, rawValues) { + if (rawStrings.length - 1 !== rawValues.length) { + if (rawStrings.length === 0) { + throw new TypeError("Expected at least 1 string"); + } + throw new TypeError(`Expected ${rawStrings.length} strings to have ${rawStrings.length - 1} values`); + } + const valuesLength = rawValues.reduce((len, value) => len + (value instanceof _Sql ? value.values.length : 1), 0); + this.values = new Array(valuesLength); + this.strings = new Array(valuesLength + 1); + this.strings[0] = rawStrings[0]; + let i5 = 0, pos = 0; + while (i5 < rawValues.length) { + const child = rawValues[i5++]; + const rawString = rawStrings[i5]; + if (child instanceof _Sql) { + this.strings[pos] += child.strings[0]; + let childIndex = 0; + while (childIndex < child.values.length) { + this.values[pos++] = child.values[childIndex++]; + this.strings[pos] = child.strings[childIndex]; + } + this.strings[pos] += rawString; + } else { + this.values[pos++] = child; + this.strings[pos] = rawString; + } + } + } + get sql() { + const len = this.strings.length; + let i5 = 1; + let value = this.strings[0]; + while (i5 < len) + value += `?${this.strings[i5++]}`; + return value; + } + get statement() { + const len = this.strings.length; + let i5 = 1; + let value = this.strings[0]; + while (i5 < len) + value += `:${i5}${this.strings[i5++]}`; + return value; + } + get text() { + const len = this.strings.length; + let i5 = 1; + let value = this.strings[0]; + while (i5 < len) + value += `$${i5}${this.strings[i5++]}`; + return value; + } + inspect() { + return { + sql: this.sql, + statement: this.statement, + text: this.text, + values: this.values + }; + } + }; + function join4(values, separator = ",", prefix = "", suffix = "") { + if (values.length === 0) { + throw new TypeError("Expected `join([])` to be called with an array of multiple elements, but got an empty array"); + } + return new Sql4([prefix, ...Array(values.length - 1).fill(separator), suffix], values); + } + __name(join4, "join"); + function raw4(value) { + return new Sql4([value], []); + } + __name(raw4, "raw"); + var empty4 = raw4(""); + function sql2(strings, ...values) { + return new Sql4(strings, values); + } + __name(sql2, "sql"); + } +}); + +// ../../node_modules/.pnpm/@prisma+client@7.10.1_prism_1fac53bcaa5c7503395b340f2e6f2cd9/node_modules/@prisma/client/runtime/client.js +var require_client = __commonJS({ + "../../node_modules/.pnpm/@prisma+client@7.10.1_prism_1fac53bcaa5c7503395b340f2e6f2cd9/node_modules/@prisma/client/runtime/client.js"(exports, module) { + "use strict"; + var pu = Object.create; + var xr = Object.defineProperty; + var du = Object.getOwnPropertyDescriptor; + var mu = Object.getOwnPropertyNames; + var fu = Object.getPrototypeOf; + var gu = Object.prototype.hasOwnProperty; + var eo = /* @__PURE__ */ __name((e5, t) => () => (e5 && (t = e5(e5 = 0)), t), "eo"); + var at = /* @__PURE__ */ __name((e5, t) => () => (t || e5((t = { exports: {} }).exports, t), t.exports), "at"); + var lt = /* @__PURE__ */ __name((e5, t) => { + for (var r5 in t) xr(e5, r5, { get: t[r5], enumerable: true }); + }, "lt"); + var to = /* @__PURE__ */ __name((e5, t, r5, n3) => { + if (t && typeof t == "object" || typeof t == "function") for (let i5 of mu(t)) !gu.call(e5, i5) && i5 !== r5 && xr(e5, i5, { get: /* @__PURE__ */ __name(() => t[i5], "get"), enumerable: !(n3 = du(t, i5)) || n3.enumerable }); + return e5; + }, "to"); + var Pe = /* @__PURE__ */ __name((e5, t, r5) => (r5 = e5 != null ? pu(fu(e5)) : {}, to(t || !e5 || !e5.__esModule ? xr(r5, "default", { value: e5, enumerable: true }) : r5, e5)), "Pe"); + var yu = /* @__PURE__ */ __name((e5) => to(xr({}, "__esModule", { value: true }), e5), "yu"); + var ho = at((Rf, Lu) => { + Lu.exports = { name: "@prisma/engines-version", version: "8.1.0-1.d1b3f377ca835d73fd50954a5e22128b9ebdd6b8", main: "index.js", types: "index.d.ts", license: "Apache-2.0", author: "Tim Suchanek ", prisma: { enginesVersion: "d1b3f377ca835d73fd50954a5e22128b9ebdd6b8" }, repository: { type: "git", url: "https://github.com/prisma/engines-wrapper.git", directory: "packages/engines-version" }, devDependencies: { "@types/node": "18.19.76", typescript: "4.9.5" }, files: ["index.js", "index.d.ts"], scripts: { build: "tsc -d" } }; + }); + var wo = at((Pr) => { + "use strict"; + Object.defineProperty(Pr, "__esModule", { value: true }); + Pr.enginesVersion = void 0; + Pr.enginesVersion = ho().prisma.enginesVersion; + }); + var bo = at((If, xo) => { + "use strict"; + xo.exports = (e5) => { + let t = e5.match(/^[ \t]*(?=\S)/gm); + return t ? t.reduce((r5, n3) => Math.min(r5, n3.length), 1 / 0) : 0; + }; + }); + var So = at((Nf, vo) => { + "use strict"; + vo.exports = (e5, t = 1, r5) => { + if (r5 = { indent: " ", includeEmptyLines: false, ...r5 }, typeof e5 != "string") throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e5}\``); + if (typeof t != "number") throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``); + if (typeof r5.indent != "string") throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r5.indent}\``); + if (t === 0) return e5; + let n3 = r5.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; + return e5.replace(n3, r5.indent.repeat(t)); + }; + }); + var Ro = at((Lf, Tr) => { + "use strict"; + Tr.exports = (e5 = {}) => { + let t; + if (e5.repoUrl) t = e5.repoUrl; + else if (e5.user && e5.repo) t = `https://github.com/${e5.user}/${e5.repo}`; + else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options"); + let r5 = new URL(`${t}/issues/new`), n3 = ["body", "title", "labels", "template", "milestone", "assignee", "projects"]; + for (let i5 of n3) { + let o3 = e5[i5]; + if (o3 !== void 0) { + if (i5 === "labels" || i5 === "projects") { + if (!Array.isArray(o3)) throw new TypeError(`The \`${i5}\` option should be an array`); + o3 = o3.join(","); + } + r5.searchParams.set(i5, o3); + } + } + return r5.toString(); + }; + Tr.exports.default = Tr.exports; + }); + var qn = at((Ig, Fo) => { + "use strict"; + Fo.exports = /* @__PURE__ */ (function() { + function e5(t, r5, n3, i5, o3) { + return t < r5 || n3 < r5 ? t > n3 ? n3 + 1 : t + 1 : i5 === o3 ? r5 : r5 + 1; + } + __name(e5, "e"); + return function(t, r5) { + if (t === r5) return 0; + if (t.length > r5.length) { + var n3 = t; + t = r5, r5 = n3; + } + for (var i5 = t.length, o3 = r5.length; i5 > 0 && t.charCodeAt(i5 - 1) === r5.charCodeAt(o3 - 1); ) i5--, o3--; + for (var s2 = 0; s2 < i5 && t.charCodeAt(s2) === r5.charCodeAt(s2); ) s2++; + if (i5 -= s2, o3 -= s2, i5 === 0 || o3 < 3) return o3; + var a5 = 0, u, m3, P, T2, S, I, A, M, L, q3, E, D, H = []; + for (u = 0; u < i5; u++) H.push(u + 1), H.push(t.charCodeAt(s2 + u)); + for (var ce = H.length - 1; a5 < o3 - 3; ) for (L = r5.charCodeAt(s2 + (m3 = a5)), q3 = r5.charCodeAt(s2 + (P = a5 + 1)), E = r5.charCodeAt(s2 + (T2 = a5 + 2)), D = r5.charCodeAt(s2 + (S = a5 + 3)), I = a5 += 4, u = 0; u < ce; u += 2) A = H[u], M = H[u + 1], m3 = e5(A, m3, P, L, M), P = e5(m3, P, T2, q3, M), T2 = e5(P, T2, S, E, M), I = e5(T2, S, I, D, M), H[u] = I, S = T2, T2 = P, P = m3, m3 = A; + for (; a5 < o3; ) for (L = r5.charCodeAt(s2 + (m3 = a5)), I = ++a5, u = 0; u < ce; u += 2) A = H[u], H[u] = I = e5(A, m3, I, L, H[u + 1]), m3 = A; + return I; + }; + })(); + }); + var qo = eo(() => { + "use strict"; + }); + var Uo = eo(() => { + "use strict"; + }); + var Hm = {}; + lt(Hm, { AnyNull: /* @__PURE__ */ __name(() => ee.AnyNull, "AnyNull"), DMMF: /* @__PURE__ */ __name(() => Qt, "DMMF"), DbNull: /* @__PURE__ */ __name(() => ee.DbNull, "DbNull"), Debug: /* @__PURE__ */ __name(() => K2, "Debug"), Decimal: /* @__PURE__ */ __name(() => cu.Decimal, "Decimal"), Extensions: /* @__PURE__ */ __name(() => Rn, "Extensions"), JsonNull: /* @__PURE__ */ __name(() => ee.JsonNull, "JsonNull"), NullTypes: /* @__PURE__ */ __name(() => ee.NullTypes, "NullTypes"), ObjectEnumValue: /* @__PURE__ */ __name(() => ee.ObjectEnumValue, "ObjectEnumValue"), PrismaClientInitializationError: /* @__PURE__ */ __name(() => _.PrismaClientInitializationError, "PrismaClientInitializationError"), PrismaClientKnownRequestError: /* @__PURE__ */ __name(() => _.PrismaClientKnownRequestError, "PrismaClientKnownRequestError"), PrismaClientRustPanicError: /* @__PURE__ */ __name(() => _.PrismaClientRustPanicError, "PrismaClientRustPanicError"), PrismaClientUnknownRequestError: /* @__PURE__ */ __name(() => _.PrismaClientUnknownRequestError, "PrismaClientUnknownRequestError"), PrismaClientValidationError: /* @__PURE__ */ __name(() => _.PrismaClientValidationError, "PrismaClientValidationError"), Public: /* @__PURE__ */ __name(() => Cn, "Public"), Sql: /* @__PURE__ */ __name(() => Fe.Sql, "Sql"), createParam: /* @__PURE__ */ __name(() => os, "createParam"), defineDmmfProperty: /* @__PURE__ */ __name(() => ps, "defineDmmfProperty"), deserializeJsonObject: /* @__PURE__ */ __name(() => Ae, "deserializeJsonObject"), deserializeRawResult: /* @__PURE__ */ __name(() => Tn, "deserializeRawResult"), dmmfToRuntimeDataModel: /* @__PURE__ */ __name(() => so, "dmmfToRuntimeDataModel"), empty: /* @__PURE__ */ __name(() => Fe.empty, "empty"), getPrismaClient: /* @__PURE__ */ __name(() => au, "getPrismaClient"), getRuntime: /* @__PURE__ */ __name(() => uu, "getRuntime"), isAnyNull: /* @__PURE__ */ __name(() => ee.isAnyNull, "isAnyNull"), isDbNull: /* @__PURE__ */ __name(() => ee.isDbNull, "isDbNull"), isJsonNull: /* @__PURE__ */ __name(() => ee.isJsonNull, "isJsonNull"), isObjectEnumValue: /* @__PURE__ */ __name(() => ee.isObjectEnumValue, "isObjectEnumValue"), join: /* @__PURE__ */ __name(() => Fe.join, "join"), makeStrictEnum: /* @__PURE__ */ __name(() => lu, "makeStrictEnum"), makeTypedQueryFactory: /* @__PURE__ */ __name(() => ds, "makeTypedQueryFactory"), raw: /* @__PURE__ */ __name(() => Fe.raw, "raw"), serializeJsonQuery: /* @__PURE__ */ __name(() => Vr, "serializeJsonQuery"), skip: /* @__PURE__ */ __name(() => Lr, "skip"), sqltag: /* @__PURE__ */ __name(() => Fe.sql, "sqltag"), warnOnce: /* @__PURE__ */ __name(() => Vn, "warnOnce") }); + module.exports = yu(Hm); + var Rn = {}; + lt(Rn, { defineExtension: /* @__PURE__ */ __name(() => ro, "defineExtension"), getExtensionContext: /* @__PURE__ */ __name(() => no, "getExtensionContext") }); + function ro(e5) { + return typeof e5 == "function" ? e5 : (t) => t.$extends(e5); + } + __name(ro, "ro"); + function no(e5) { + return e5; + } + __name(no, "no"); + var Cn = {}; + lt(Cn, { validator: /* @__PURE__ */ __name(() => io, "validator") }); + function io(...e5) { + return (t) => t; + } + __name(io, "io"); + var Ie = class { + static { + __name(this, "Ie"); + } + _map = /* @__PURE__ */ new Map(); + get(t) { + return this._map.get(t)?.value; + } + set(t, r5) { + this._map.set(t, { value: r5 }); + } + getOrCreate(t, r5) { + let n3 = this._map.get(t); + if (n3) return n3.value; + let i5 = r5(); + return this.set(t, i5), i5; + } + }; + function qe(e5) { + return e5.substring(0, 1).toLowerCase() + e5.substring(1); + } + __name(qe, "qe"); + function oo(e5, t) { + let r5 = {}; + for (let n3 of e5) { + let i5 = n3[t]; + r5[i5] = n3; + } + return r5; + } + __name(oo, "oo"); + function Nt(e5) { + let t; + return { get() { + return t || (t = { value: e5() }), t.value; + } }; + } + __name(Nt, "Nt"); + function so(e5) { + return { models: In(e5.models), enums: In(e5.enums), types: In(e5.types) }; + } + __name(so, "so"); + function In(e5) { + let t = {}; + for (let { name: r5, ...n3 } of e5) t[r5] = n3; + return t; + } + __name(In, "In"); + var as = require_dist(); + var br = {}; + lt(br, { $: /* @__PURE__ */ __name(() => po, "$"), bgBlack: /* @__PURE__ */ __name(() => Au, "bgBlack"), bgBlue: /* @__PURE__ */ __name(() => ku, "bgBlue"), bgCyan: /* @__PURE__ */ __name(() => Nu, "bgCyan"), bgGreen: /* @__PURE__ */ __name(() => Cu, "bgGreen"), bgMagenta: /* @__PURE__ */ __name(() => Ou, "bgMagenta"), bgRed: /* @__PURE__ */ __name(() => Ru, "bgRed"), bgWhite: /* @__PURE__ */ __name(() => Du, "bgWhite"), bgYellow: /* @__PURE__ */ __name(() => Iu, "bgYellow"), black: /* @__PURE__ */ __name(() => Eu, "black"), blue: /* @__PURE__ */ __name(() => He, "blue"), bold: /* @__PURE__ */ __name(() => Ee, "bold"), cyan: /* @__PURE__ */ __name(() => _e5, "cyan"), dim: /* @__PURE__ */ __name(() => Dt, "dim"), gray: /* @__PURE__ */ __name(() => $t, "gray"), green: /* @__PURE__ */ __name(() => Ft, "green"), grey: /* @__PURE__ */ __name(() => Su, "grey"), hidden: /* @__PURE__ */ __name(() => bu, "hidden"), inverse: /* @__PURE__ */ __name(() => xu, "inverse"), italic: /* @__PURE__ */ __name(() => wu, "italic"), magenta: /* @__PURE__ */ __name(() => Tu, "magenta"), red: /* @__PURE__ */ __name(() => ze, "red"), reset: /* @__PURE__ */ __name(() => hu, "reset"), strikethrough: /* @__PURE__ */ __name(() => Pu, "strikethrough"), underline: /* @__PURE__ */ __name(() => Mt, "underline"), white: /* @__PURE__ */ __name(() => vu, "white"), yellow: /* @__PURE__ */ __name(() => _t, "yellow") }); + var kn; + var ao; + var lo; + var uo; + var co = true; + typeof process < "u" && ({ FORCE_COLOR: kn, NODE_DISABLE_COLORS: ao, NO_COLOR: lo, TERM: uo } = process.env || {}, co = process.stdout && process.stdout.isTTY); + var po = { enabled: !ao && lo == null && uo !== "dumb" && (kn != null && kn !== "0" || co) }; + function B(e5, t) { + let r5 = new RegExp(`\\x1b\\[${t}m`, "g"), n3 = `\x1B[${e5}m`, i5 = `\x1B[${t}m`; + return function(o3) { + return !po.enabled || o3 == null ? o3 : n3 + (~("" + o3).indexOf(i5) ? o3.replace(r5, i5 + n3) : o3) + i5; + }; + } + __name(B, "B"); + var hu = B(0, 0); + var Ee = B(1, 22); + var Dt = B(2, 22); + var wu = B(3, 23); + var Mt = B(4, 24); + var xu = B(7, 27); + var bu = B(8, 28); + var Pu = B(9, 29); + var Eu = B(30, 39); + var ze = B(31, 39); + var Ft = B(32, 39); + var _t = B(33, 39); + var He = B(34, 39); + var Tu = B(35, 39); + var _e5 = B(36, 39); + var vu = B(37, 39); + var $t = B(90, 39); + var Su = B(90, 39); + var Au = B(40, 49); + var Ru = B(41, 49); + var Cu = B(42, 49); + var Iu = B(43, 49); + var ku = B(44, 49); + var Ou = B(45, 49); + var Nu = B(46, 49); + var Du = B(47, 49); + var Mu = 100; + var mo = ["green", "yellow", "blue", "magenta", "cyan", "red"]; + var Lt = []; + var fo = Date.now(); + var Fu = 0; + var On = typeof process < "u" ? process.env : {}; + globalThis.DEBUG ??= On.DEBUG ?? ""; + globalThis.DEBUG_COLORS ??= On.DEBUG_COLORS ? On.DEBUG_COLORS === "true" : true; + var Vt = { enable(e5) { + typeof e5 == "string" && (globalThis.DEBUG = e5); + }, disable() { + let e5 = globalThis.DEBUG; + return globalThis.DEBUG = "", e5; + }, enabled(e5) { + let t = globalThis.DEBUG.split(",").map((i5) => i5.replace(/[.+?^${}()|[\]\\]/g, "\\$&")), r5 = t.some((i5) => i5 === "" || i5[0] === "-" ? false : e5.match(RegExp(i5.split("*").join(".*") + "$"))), n3 = t.some((i5) => i5 === "" || i5[0] !== "-" ? false : e5.match(RegExp(i5.slice(1).split("*").join(".*") + "$"))); + return r5 && !n3; + }, log: /* @__PURE__ */ __name((...e5) => { + let [t, r5, ...n3] = e5; + (console.warn ?? console.log)(`${t} ${r5}`, ...n3); + }, "log"), formatters: {} }; + function _u(e5) { + let t = { color: mo[Fu++ % mo.length], enabled: Vt.enabled(e5), namespace: e5, log: Vt.log, extend: /* @__PURE__ */ __name(() => { + }, "extend") }, r5 = /* @__PURE__ */ __name((...n3) => { + let { enabled: i5, namespace: o3, color: s2, log: a5 } = t; + if (n3.length !== 0 && Lt.push([o3, ...n3]), Lt.length > Mu && Lt.shift(), Vt.enabled(o3) || i5) { + let u = n3.map((P) => typeof P == "string" ? P : $u(P)), m3 = `+${Date.now() - fo}ms`; + fo = Date.now(), globalThis.DEBUG_COLORS ? a5(br[s2](Ee(o3)), ...u, br[s2](m3)) : a5(o3, ...u, m3); + } + }, "r"); + return new Proxy(r5, { get: /* @__PURE__ */ __name((n3, i5) => t[i5], "get"), set: /* @__PURE__ */ __name((n3, i5, o3) => t[i5] = o3, "set") }); + } + __name(_u, "_u"); + var K2 = new Proxy(_u, { get: /* @__PURE__ */ __name((e5, t) => Vt[t], "get"), set: /* @__PURE__ */ __name((e5, t, r5) => Vt[t] = r5, "set") }); + function $u(e5, t = 2) { + let r5 = /* @__PURE__ */ new Set(); + return JSON.stringify(e5, (n3, i5) => { + if (typeof i5 == "object" && i5 !== null) { + if (r5.has(i5)) return "[Circular *]"; + r5.add(i5); + } else if (typeof i5 == "bigint") return i5.toString(); + return i5; + }, t); + } + __name($u, "$u"); + function go(e5 = 7500) { + let t = Lt.map(([r5, ...n3]) => `${r5} ${n3.map((i5) => typeof i5 == "string" ? i5 : JSON.stringify(i5)).join(" ")}`).join(` +`); + return t.length < e5 ? t : t.slice(-e5); + } + __name(go, "go"); + function yo() { + Lt.length = 0; + } + __name(yo, "yo"); + function $e(e5, t) { + throw new Error(t); + } + __name($e, "$e"); + var Po = Pe(bo(), 1); + function Nn(e5) { + let t = (0, Po.default)(e5); + if (t === 0) return e5; + let r5 = new RegExp(`^[ \\t]{${t}}`, "gm"); + return e5.replace(r5, ""); + } + __name(Nn, "Nn"); + var Eo = "prisma+postgres"; + var Er = `${Eo}:`; + function To(e5) { + return e5?.toString().startsWith(`${Er}//`) ?? false; + } + __name(To, "To"); + function Dn(e5) { + if (!To(e5)) return false; + let { host: t } = new URL(e5); + return t.includes("localhost") || t.includes("127.0.0.1") || t.includes("[::1]"); + } + __name(Dn, "Dn"); + var Ut = {}; + lt(Ut, { error: /* @__PURE__ */ __name(() => Uu, "error"), info: /* @__PURE__ */ __name(() => qu, "info"), log: /* @__PURE__ */ __name(() => Vu, "log"), query: /* @__PURE__ */ __name(() => ju, "query"), should: /* @__PURE__ */ __name(() => Ao, "should"), tags: /* @__PURE__ */ __name(() => qt, "tags"), warn: /* @__PURE__ */ __name(() => Mn, "warn") }); + var qt = { error: ze("prisma:error"), warn: _t("prisma:warn"), info: _e5("prisma:info"), query: He("prisma:query") }; + var Ao = { warn: /* @__PURE__ */ __name(() => !process.env.PRISMA_DISABLE_WARNINGS, "warn") }; + function Vu(...e5) { + console.log(...e5); + } + __name(Vu, "Vu"); + function Mn(e5, ...t) { + Ao.warn() && console.warn(`${qt.warn} ${e5}`, ...t); + } + __name(Mn, "Mn"); + function qu(e5, ...t) { + console.info(`${qt.info} ${e5}`, ...t); + } + __name(qu, "qu"); + function Uu(e5, ...t) { + console.error(`${qt.error} ${e5}`, ...t); + } + __name(Uu, "Uu"); + function ju(e5, ...t) { + console.log(`${qt.query} ${e5}`, ...t); + } + __name(ju, "ju"); + function Fn({ onlyFirst: e5 = false } = {}) { + let r5 = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|"); + return new RegExp(r5, e5 ? void 0 : "g"); + } + __name(Fn, "Fn"); + var Bu = Fn(); + function ut(e5) { + if (typeof e5 != "string") throw new TypeError(`Expected a \`string\`, got \`${typeof e5}\``); + return e5.replace(Bu, ""); + } + __name(ut, "ut"); + var jt = Pe(__require("node:path")); + function _n(e5) { + return jt.default.sep === jt.default.posix.sep ? e5 : e5.split(jt.default.sep).join(jt.default.posix.sep); + } + __name(_n, "_n"); + function $n(e5, t) { + return Object.prototype.hasOwnProperty.call(e5, t); + } + __name($n, "$n"); + function vr(e5, t) { + let r5 = {}; + for (let n3 of Object.keys(e5)) r5[n3] = t(e5[n3], n3); + return r5; + } + __name(vr, "vr"); + function Ln(e5, t) { + if (e5.length === 0) return; + let r5 = e5[0]; + for (let n3 = 1; n3 < e5.length; n3++) t(r5, e5[n3]) < 0 && (r5 = e5[n3]); + return r5; + } + __name(Ln, "Ln"); + function Bt(e5, t) { + Object.defineProperty(e5, "name", { value: t, configurable: true }); + } + __name(Bt, "Bt"); + var Co = /* @__PURE__ */ new Set(); + var Vn = /* @__PURE__ */ __name((e5, t, ...r5) => { + Co.has(e5) || (Co.add(e5), Mn(t, ...r5)); + }, "Vn"); + function ct(e5) { + return e5 instanceof Date || Object.prototype.toString.call(e5) === "[object Date]"; + } + __name(ct, "ct"); + function pt(e5) { + return e5.toString() !== "Invalid Date"; + } + __name(pt, "pt"); + var Io = require_dist(); + function dt(e5) { + return Io.Decimal.isDecimal(e5) ? true : e5 !== null && typeof e5 == "object" && typeof e5.s == "number" && typeof e5.e == "number" && typeof e5.toFixed == "function" && Array.isArray(e5.d); + } + __name(dt, "dt"); + var Yo = require_dist(); + var Qt = {}; + lt(Qt, { ModelAction: /* @__PURE__ */ __name(() => mt, "ModelAction"), datamodelEnumToSchemaEnum: /* @__PURE__ */ __name(() => Qu, "datamodelEnumToSchemaEnum") }); + function Qu(e5) { + return { name: e5.name, values: e5.values.map((t) => t.name) }; + } + __name(Qu, "Qu"); + var mt = ((D) => (D.findUnique = "findUnique", D.findUniqueOrThrow = "findUniqueOrThrow", D.findFirst = "findFirst", D.findFirstOrThrow = "findFirstOrThrow", D.findMany = "findMany", D.create = "create", D.createMany = "createMany", D.createManyAndReturn = "createManyAndReturn", D.update = "update", D.updateMany = "updateMany", D.updateManyAndReturn = "updateManyAndReturn", D.upsert = "upsert", D.delete = "delete", D.deleteMany = "deleteMany", D.groupBy = "groupBy", D.count = "count", D.aggregate = "aggregate", D.findRaw = "findRaw", D.aggregateRaw = "aggregateRaw", D))(mt || {}); + var Mo = Pe(So()); + var Do = Pe(__require("node:fs")); + var ko = { keyword: _e5, entity: _e5, value: /* @__PURE__ */ __name((e5) => Ee(He(e5)), "value"), punctuation: He, directive: _e5, function: _e5, variable: /* @__PURE__ */ __name((e5) => Ee(He(e5)), "variable"), string: /* @__PURE__ */ __name((e5) => Ee(Ft(e5)), "string"), boolean: _t, number: _e5, comment: $t }; + var Ju = /* @__PURE__ */ __name((e5) => e5, "Ju"); + var Sr = {}; + var Gu = 0; + var O = { manual: Sr.Prism && Sr.Prism.manual, disableWorkerMessageHandler: Sr.Prism && Sr.Prism.disableWorkerMessageHandler, util: { encode: /* @__PURE__ */ __name(function(e5) { + if (e5 instanceof Te) { + let t = e5; + return new Te(t.type, O.util.encode(t.content), t.alias); + } else return Array.isArray(e5) ? e5.map(O.util.encode) : e5.replace(/&/g, "&").replace(/ e5.length) return; + if (p3 instanceof Te) continue; + if (ce && l3 != t.length - 1) { + E.lastIndex = c5; + var T2 = E.exec(e5); + if (!T2) break; + var P = T2.index + (H ? T2[1].length : 0), S = T2.index + T2[0].length, a5 = l3, u = c5; + for (let g5 = t.length; a5 < g5 && (u < S || !t[a5].type && !t[a5 - 1].greedy); ++a5) u += t[a5].length, P >= u && (++l3, c5 = u); + if (t[l3] instanceof Te) continue; + m3 = a5 - l3, p3 = e5.slice(c5, u), T2.index -= c5; + } else { + E.lastIndex = 0; + var T2 = E.exec(p3), m3 = 1; + } + if (!T2) { + if (o3) break; + continue; + } + H && (ie = T2[1] ? T2[1].length : 0); + var P = T2.index + ie, T2 = T2[0].slice(ie), S = P + T2.length, I = p3.slice(0, P), A = p3.slice(S); + let h5 = [l3, m3]; + I && (++l3, c5 += I.length, h5.push(I)); + let f5 = new Te(M, D ? O.tokenize(T2, D) : T2, be, T2, ce); + if (h5.push(f5), A && h5.push(A), Array.prototype.splice.apply(t, h5), m3 != 1 && O.matchGrammar(e5, t, r5, l3, c5, true, M), o3) break; + } + } + } + }, "matchGrammar"), tokenize: /* @__PURE__ */ __name(function(e5, t) { + let r5 = [e5], n3 = t.rest; + if (n3) { + for (let i5 in n3) t[i5] = n3[i5]; + delete t.rest; + } + return O.matchGrammar(e5, r5, t, 0, 0, false), r5; + }, "tokenize"), hooks: { all: {}, add: /* @__PURE__ */ __name(function(e5, t) { + let r5 = O.hooks.all; + r5[e5] = r5[e5] || [], r5[e5].push(t); + }, "add"), run: /* @__PURE__ */ __name(function(e5, t) { + let r5 = O.hooks.all[e5]; + if (!(!r5 || !r5.length)) for (var n3 = 0, i5; i5 = r5[n3++]; ) i5(t); + }, "run") }, Token: Te }; + O.languages.clike = { comment: [{ pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true, greedy: true }], string: { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, "class-name": { pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, lookbehind: true, inside: { punctuation: /[.\\]/ } }, keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, boolean: /\b(?:true|false)\b/, function: /\w+(?=\()/, number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, punctuation: /[{}[\];(),.:]/ }; + O.languages.javascript = O.languages.extend("clike", { "class-name": [O.languages.clike["class-name"], { pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, lookbehind: true }], keyword: [{ pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: true }, { pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, lookbehind: true }], number: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, function: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ }); + O.languages.javascript["class-name"][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/; + O.languages.insertBefore("javascript", "keyword", { regex: { pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/, lookbehind: true, greedy: true }, "function-variable": { pattern: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, alias: "function" }, parameter: [{ pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, lookbehind: true, inside: O.languages.javascript }, { pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, inside: O.languages.javascript }, { pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, lookbehind: true, inside: O.languages.javascript }, { pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, lookbehind: true, inside: O.languages.javascript }], constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/ }); + O.languages.markup && O.languages.markup.tag.addInlined("script", "javascript"); + O.languages.js = O.languages.javascript; + O.languages.typescript = O.languages.extend("javascript", { keyword: /\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/, builtin: /\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/ }); + O.languages.ts = O.languages.typescript; + function Te(e5, t, r5, n3, i5) { + this.type = e5, this.content = t, this.alias = r5, this.length = (n3 || "").length | 0, this.greedy = !!i5; + } + __name(Te, "Te"); + Te.stringify = function(e5, t) { + return typeof e5 == "string" ? e5 : Array.isArray(e5) ? e5.map(function(r5) { + return Te.stringify(r5, t); + }).join("") : zu(e5.type)(e5.content); + }; + function zu(e5) { + return ko[e5] || Ju; + } + __name(zu, "zu"); + function Oo(e5) { + return Hu(e5, O.languages.javascript); + } + __name(Oo, "Oo"); + function Hu(e5, t) { + return O.tokenize(e5, t).map((n3) => Te.stringify(n3)).join(""); + } + __name(Hu, "Hu"); + function No(e5) { + return Nn(e5); + } + __name(No, "No"); + var Ar = class e5 { + static { + __name(this, "e"); + } + firstLineNumber; + lines; + static read(t) { + let r5; + try { + r5 = Do.default.readFileSync(t, "utf-8"); + } catch { + return null; + } + return e5.fromContent(r5); + } + static fromContent(t) { + let r5 = t.split(/\r?\n/); + return new e5(1, r5); + } + constructor(t, r5) { + this.firstLineNumber = t, this.lines = r5; + } + get lastLineNumber() { + return this.firstLineNumber + this.lines.length - 1; + } + mapLineAt(t, r5) { + if (t < this.firstLineNumber || t > this.lastLineNumber) return this; + let n3 = t - this.firstLineNumber, i5 = [...this.lines]; + return i5[n3] = r5(i5[n3]), new e5(this.firstLineNumber, i5); + } + mapLines(t) { + return new e5(this.firstLineNumber, this.lines.map((r5, n3) => t(r5, this.firstLineNumber + n3))); + } + lineAt(t) { + return this.lines[t - this.firstLineNumber]; + } + prependSymbolAt(t, r5) { + return this.mapLines((n3, i5) => i5 === t ? `${r5} ${n3}` : ` ${n3}`); + } + slice(t, r5) { + let n3 = Math.max(t, this.firstLineNumber), i5 = Math.min(r5, this.lastLineNumber); + if (n3 > i5) return new e5(t, []); + let o3 = this.lines.slice(n3 - this.firstLineNumber, i5 - this.firstLineNumber + 1).join(` +`); + return new e5(n3, No(o3).split(` +`)); + } + highlight() { + let t = Oo(this.toString()); + return new e5(this.firstLineNumber, t.split(` +`)); + } + toString() { + return this.lines.join(` +`); + } + }; + var Wu = { red: ze, gray: $t, dim: Dt, bold: Ee, underline: Mt, highlightSource: /* @__PURE__ */ __name((e5) => e5.highlight(), "highlightSource") }; + var Ku = { red: /* @__PURE__ */ __name((e5) => e5, "red"), gray: /* @__PURE__ */ __name((e5) => e5, "gray"), dim: /* @__PURE__ */ __name((e5) => e5, "dim"), bold: /* @__PURE__ */ __name((e5) => e5, "bold"), underline: /* @__PURE__ */ __name((e5) => e5, "underline"), highlightSource: /* @__PURE__ */ __name((e5) => e5, "highlightSource") }; + function Zu({ message: e5, originalMethod: t, isPanic: r5, callArguments: n3 }) { + return { functionName: `prisma.${t}()`, message: e5, isPanic: r5 ?? false, callArguments: n3 }; + } + __name(Zu, "Zu"); + function Xu({ callsite: e5, message: t, originalMethod: r5, isPanic: n3, callArguments: i5 }, o3) { + let s2 = Zu({ message: t, originalMethod: r5, isPanic: n3, callArguments: i5 }); + if (!e5 || typeof window < "u" || process.env.NODE_ENV === "production") return s2; + let a5 = e5.getLocation(); + if (!a5 || !a5.lineNumber || !a5.columnNumber) return s2; + let u = Math.max(1, a5.lineNumber - 3), m3 = Ar.read(a5.fileName)?.slice(u, a5.lineNumber), P = m3?.lineAt(a5.lineNumber); + if (m3 && P) { + let T2 = ec(P), S = Yu(P); + if (!S) return s2; + s2.functionName = `${S.code})`, s2.location = a5, n3 || (m3 = m3.mapLineAt(a5.lineNumber, (A) => A.slice(0, S.openingBraceIndex))), m3 = o3.highlightSource(m3); + let I = String(m3.lastLineNumber).length; + if (s2.contextLines = m3.mapLines((A, M) => o3.gray(String(M).padStart(I)) + " " + A).mapLines((A) => o3.dim(A)).prependSymbolAt(a5.lineNumber, o3.bold(o3.red("\u2192"))), i5) { + let A = T2 + I + 1; + A += 2, s2.callArguments = (0, Mo.default)(i5, A).slice(A); + } + } + return s2; + } + __name(Xu, "Xu"); + function Yu(e5) { + let t = Object.keys(mt).join("|"), n3 = new RegExp(String.raw`\.(${t})\(`).exec(e5); + if (n3) { + let i5 = n3.index + n3[0].length, o3 = e5.lastIndexOf(" ", n3.index) + 1; + return { code: e5.slice(o3, i5), openingBraceIndex: i5 }; + } + return null; + } + __name(Yu, "Yu"); + function ec(e5) { + let t = 0; + for (let r5 = 0; r5 < e5.length; r5++) { + if (e5.charAt(r5) !== " ") return t; + t++; + } + return t; + } + __name(ec, "ec"); + function tc({ functionName: e5, location: t, message: r5, isPanic: n3, contextLines: i5, callArguments: o3 }, s2) { + let a5 = [""], u = t ? " in" : ":"; + if (n3 ? (a5.push(s2.red(`Oops, an unknown error occurred! This is ${s2.bold("on us")}, you did nothing wrong.`)), a5.push(s2.red(`It occurred in the ${s2.bold(`\`${e5}\``)} invocation${u}`))) : a5.push(s2.red(`Invalid ${s2.bold(`\`${e5}\``)} invocation${u}`)), t && a5.push(s2.underline(rc(t))), i5) { + a5.push(""); + let m3 = [i5.toString()]; + o3 && (m3.push(o3), m3.push(s2.dim(")"))), a5.push(m3.join("")), o3 && a5.push(""); + } else a5.push(""), o3 && a5.push(o3), a5.push(""); + return a5.push(r5), a5.join(` +`); + } + __name(tc, "tc"); + function rc(e5) { + let t = [e5.fileName]; + return e5.lineNumber && t.push(String(e5.lineNumber)), e5.columnNumber && t.push(String(e5.columnNumber)), t.join(":"); + } + __name(rc, "rc"); + function Rr(e5) { + let t = e5.showColors ? Wu : Ku, r5; + return r5 = Xu(e5, t), tc(r5, t); + } + __name(Rr, "Rr"); + var Bo = Pe(qn()); + function Lo(e5, t, r5) { + let n3 = Vo(e5), i5 = nc(n3), o3 = oc(i5); + o3 ? Cr(o3, t, r5) : t.addErrorMessage(() => "Unknown error"); + } + __name(Lo, "Lo"); + function Vo(e5) { + return e5.errors.flatMap((t) => t.kind === "Union" ? Vo(t) : [t]); + } + __name(Vo, "Vo"); + function nc(e5) { + let t = /* @__PURE__ */ new Map(), r5 = []; + for (let n3 of e5) { + if (n3.kind !== "InvalidArgumentType") { + r5.push(n3); + continue; + } + let i5 = `${n3.selectionPath.join(".")}:${n3.argumentPath.join(".")}`, o3 = t.get(i5); + o3 ? t.set(i5, { ...n3, argument: { ...n3.argument, typeNames: ic(o3.argument.typeNames, n3.argument.typeNames) } }) : t.set(i5, n3); + } + return r5.push(...t.values()), r5; + } + __name(nc, "nc"); + function ic(e5, t) { + return [...new Set(e5.concat(t))]; + } + __name(ic, "ic"); + function oc(e5) { + return Ln(e5, (t, r5) => { + let n3 = _o(t), i5 = _o(r5); + return n3 !== i5 ? n3 - i5 : $o(t) - $o(r5); + }); + } + __name(oc, "oc"); + function _o(e5) { + let t = 0; + return Array.isArray(e5.selectionPath) && (t += e5.selectionPath.length), Array.isArray(e5.argumentPath) && (t += e5.argumentPath.length), t; + } + __name(_o, "_o"); + function $o(e5) { + switch (e5.kind) { + case "InvalidArgumentValue": + case "ValueTooLarge": + return 20; + case "InvalidArgumentType": + return 10; + case "RequiredArgumentMissing": + return -10; + default: + return 0; + } + } + __name($o, "$o"); + var pe = class { + static { + __name(this, "pe"); + } + constructor(t, r5) { + this.name = t; + this.value = r5; + } + isRequired = false; + makeRequired() { + return this.isRequired = true, this; + } + write(t) { + let { colors: { green: r5 } } = t.context; + t.addMarginSymbol(r5(this.isRequired ? "+" : "?")), t.write(r5(this.name)), this.isRequired || t.write(r5("?")), t.write(r5(": ")), typeof this.value == "string" ? t.write(r5(this.value)) : t.write(this.value); + } + }; + Uo(); + var ft = class { + static { + __name(this, "ft"); + } + constructor(t = 0, r5) { + this.context = r5; + this.currentIndent = t; + } + lines = []; + currentLine = ""; + currentIndent = 0; + marginSymbol; + afterNextNewLineCallback; + write(t) { + return typeof t == "string" ? this.currentLine += t : t.write(this), this; + } + writeJoined(t, r5, n3 = (i5, o3) => o3.write(i5)) { + let i5 = r5.length - 1; + for (let o3 = 0; o3 < r5.length; o3++) n3(r5[o3], this), o3 !== i5 && this.write(t); + return this; + } + writeLine(t) { + return this.write(t).newLine(); + } + newLine() { + this.lines.push(this.indentedCurrentLine()), this.currentLine = "", this.marginSymbol = void 0; + let t = this.afterNextNewLineCallback; + return this.afterNextNewLineCallback = void 0, t?.(), this; + } + withIndent(t) { + return this.indent(), t(this), this.unindent(), this; + } + afterNextNewline(t) { + return this.afterNextNewLineCallback = t, this; + } + indent() { + return this.currentIndent++, this; + } + unindent() { + return this.currentIndent > 0 && this.currentIndent--, this; + } + addMarginSymbol(t) { + return this.marginSymbol = t, this; + } + toString() { + return this.lines.concat(this.indentedCurrentLine()).join(` +`); + } + getCurrentLineLength() { + return this.currentLine.length; + } + indentedCurrentLine() { + let t = this.currentLine.padStart(this.currentLine.length + 2 * this.currentIndent); + return this.marginSymbol ? this.marginSymbol + t.slice(1) : t; + } + }; + qo(); + var Ir = class { + static { + __name(this, "Ir"); + } + constructor(t) { + this.value = t; + } + write(t) { + t.write(this.value); + } + markAsError() { + this.value.markAsError(); + } + }; + var kr = /* @__PURE__ */ __name((e5) => e5, "kr"); + var Or = { bold: kr, red: kr, green: kr, dim: kr, enabled: false }; + var jo = { bold: Ee, red: ze, green: Ft, dim: Dt, enabled: true }; + var gt = { write(e5) { + e5.writeLine(","); + } }; + var ke = class { + static { + __name(this, "ke"); + } + constructor(t) { + this.contents = t; + } + isUnderlined = false; + color = /* @__PURE__ */ __name((t) => t, "color"); + underline() { + return this.isUnderlined = true, this; + } + setColor(t) { + return this.color = t, this; + } + write(t) { + let r5 = t.getCurrentLineLength(); + t.write(this.color(this.contents)), this.isUnderlined && t.afterNextNewline(() => { + t.write(" ".repeat(r5)).writeLine(this.color("~".repeat(this.contents.length))); + }); + } + }; + var Ue = class { + static { + __name(this, "Ue"); + } + hasError = false; + markAsError() { + return this.hasError = true, this; + } + }; + var yt = class extends Ue { + static { + __name(this, "yt"); + } + items = []; + addItem(t) { + return this.items.push(new Ir(t)), this; + } + getField(t) { + return this.items[t]; + } + getPrintWidth() { + return this.items.length === 0 ? 2 : Math.max(...this.items.map((r5) => r5.value.getPrintWidth())) + 2; + } + write(t) { + if (this.items.length === 0) { + this.writeEmpty(t); + return; + } + this.writeWithItems(t); + } + writeEmpty(t) { + let r5 = new ke("[]"); + this.hasError && r5.setColor(t.context.colors.red).underline(), t.write(r5); + } + writeWithItems(t) { + let { colors: r5 } = t.context; + t.writeLine("[").withIndent(() => t.writeJoined(gt, this.items).newLine()).write("]"), this.hasError && t.afterNextNewline(() => { + t.writeLine(r5.red("~".repeat(this.getPrintWidth()))); + }); + } + asObject() { + } + }; + var ht = class e5 extends Ue { + static { + __name(this, "e"); + } + fields = {}; + suggestions = []; + addField(t) { + this.fields[t.name] = t; + } + addSuggestion(t) { + this.suggestions.push(t); + } + getField(t) { + return this.fields[t]; + } + getDeepField(t) { + let [r5, ...n3] = t, i5 = this.getField(r5); + if (!i5) return; + let o3 = i5; + for (let s2 of n3) { + let a5; + if (o3.value instanceof e5 ? a5 = o3.value.getField(s2) : o3.value instanceof yt && (a5 = o3.value.getField(Number(s2))), !a5) return; + o3 = a5; + } + return o3; + } + getDeepFieldValue(t) { + return t.length === 0 ? this : this.getDeepField(t)?.value; + } + hasField(t) { + return !!this.getField(t); + } + removeAllFields() { + this.fields = {}; + } + removeField(t) { + delete this.fields[t]; + } + getFields() { + return this.fields; + } + isEmpty() { + return Object.keys(this.fields).length === 0; + } + getFieldValue(t) { + return this.getField(t)?.value; + } + getDeepSubSelectionValue(t) { + let r5 = this; + for (let n3 of t) { + if (!(r5 instanceof e5)) return; + let i5 = r5.getSubSelectionValue(n3); + if (!i5) return; + r5 = i5; + } + return r5; + } + getDeepSelectionParent(t) { + let r5 = this.getSelectionParent(); + if (!r5) return; + let n3 = r5; + for (let i5 of t) { + let o3 = n3.value.getFieldValue(i5); + if (!o3 || !(o3 instanceof e5)) return; + let s2 = o3.getSelectionParent(); + if (!s2) return; + n3 = s2; + } + return n3; + } + getSelectionParent() { + let t = this.getField("select")?.value.asObject(); + if (t) return { kind: "select", value: t }; + let r5 = this.getField("include")?.value.asObject(); + if (r5) return { kind: "include", value: r5 }; + } + getSubSelectionValue(t) { + return this.getSelectionParent()?.value.fields[t].value; + } + getPrintWidth() { + let t = Object.values(this.fields); + return t.length == 0 ? 2 : Math.max(...t.map((n3) => n3.getPrintWidth())) + 2; + } + write(t) { + let r5 = Object.values(this.fields); + if (r5.length === 0 && this.suggestions.length === 0) { + this.writeEmpty(t); + return; + } + this.writeWithContents(t, r5); + } + asObject() { + return this; + } + writeEmpty(t) { + let r5 = new ke("{}"); + this.hasError && r5.setColor(t.context.colors.red).underline(), t.write(r5); + } + writeWithContents(t, r5) { + t.writeLine("{").withIndent(() => { + t.writeJoined(gt, [...r5, ...this.suggestions]).newLine(); + }), t.write("}"), this.hasError && t.afterNextNewline(() => { + t.writeLine(t.context.colors.red("~".repeat(this.getPrintWidth()))); + }); + } + }; + var Z = class extends Ue { + static { + __name(this, "Z"); + } + constructor(r5) { + super(); + this.text = r5; + } + getPrintWidth() { + return this.text.length; + } + write(r5) { + let n3 = new ke(this.text); + this.hasError && n3.underline().setColor(r5.context.colors.red), r5.write(n3); + } + asObject() { + } + }; + var Jt = class { + static { + __name(this, "Jt"); + } + fields = []; + addField(t, r5) { + return this.fields.push({ write(n3) { + let { green: i5, dim: o3 } = n3.context.colors; + n3.write(i5(o3(`${t}: ${r5}`))).addMarginSymbol(i5(o3("+"))); + } }), this; + } + write(t) { + let { colors: { green: r5 } } = t.context; + t.writeLine(r5("{")).withIndent(() => { + t.writeJoined(gt, this.fields).newLine(); + }).write(r5("}")).addMarginSymbol(r5("+")); + } + }; + function Cr(e5, t, r5) { + switch (e5.kind) { + case "MutuallyExclusiveFields": + sc(e5, t); + break; + case "IncludeOnScalar": + ac(e5, t); + break; + case "EmptySelection": + lc(e5, t, r5); + break; + case "UnknownSelectionField": + dc(e5, t); + break; + case "InvalidSelectionValue": + mc(e5, t); + break; + case "UnknownArgument": + fc(e5, t); + break; + case "UnknownInputField": + gc(e5, t); + break; + case "RequiredArgumentMissing": + yc(e5, t); + break; + case "InvalidArgumentType": + hc(e5, t); + break; + case "InvalidArgumentValue": + wc(e5, t); + break; + case "ValueTooLarge": + xc(e5, t); + break; + case "SomeFieldsMissing": + bc(e5, t); + break; + case "TooManyFieldsGiven": + Pc(e5, t); + break; + case "Union": + Lo(e5, t, r5); + break; + default: + throw new Error("not implemented: " + e5.kind); + } + } + __name(Cr, "Cr"); + function sc(e5, t) { + let r5 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + r5 && (r5.getField(e5.firstField)?.markAsError(), r5.getField(e5.secondField)?.markAsError()), t.addErrorMessage((n3) => `Please ${n3.bold("either")} use ${n3.green(`\`${e5.firstField}\``)} or ${n3.green(`\`${e5.secondField}\``)}, but ${n3.red("not both")} at the same time.`); + } + __name(sc, "sc"); + function ac(e5, t) { + let [r5, n3] = wt(e5.selectionPath), i5 = e5.outputType, o3 = t.arguments.getDeepSelectionParent(r5)?.value; + if (o3 && (o3.getField(n3)?.markAsError(), i5)) for (let s2 of i5.fields) s2.isRelation && o3.addSuggestion(new pe(s2.name, "true")); + t.addErrorMessage((s2) => { + let a5 = `Invalid scalar field ${s2.red(`\`${n3}\``)} for ${s2.bold("include")} statement`; + return i5 ? a5 += ` on model ${s2.bold(i5.name)}. ${Gt(s2)}` : a5 += ".", a5 += ` +Note that ${s2.bold("include")} statements only accept relation fields.`, a5; + }); + } + __name(ac, "ac"); + function lc(e5, t, r5) { + let n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + if (n3) { + let i5 = n3.getField("omit")?.value.asObject(); + if (i5) { + uc(e5, t, i5); + return; + } + if (n3.hasField("select")) { + cc(e5, t); + return; + } + } + if (r5?.[qe(e5.outputType.name)]) { + pc(e5, t); + return; + } + t.addErrorMessage(() => `Unknown field at "${e5.selectionPath.join(".")} selection"`); + } + __name(lc, "lc"); + function uc(e5, t, r5) { + r5.removeAllFields(); + for (let n3 of e5.outputType.fields) r5.addSuggestion(new pe(n3.name, "false")); + t.addErrorMessage((n3) => `The ${n3.red("omit")} statement includes every field of the model ${n3.bold(e5.outputType.name)}. At least one field must be included in the result`); + } + __name(uc, "uc"); + function cc(e5, t) { + let r5 = e5.outputType, n3 = t.arguments.getDeepSelectionParent(e5.selectionPath)?.value, i5 = n3?.isEmpty() ?? false; + n3 && (n3.removeAllFields(), Go(n3, r5)), t.addErrorMessage((o3) => i5 ? `The ${o3.red("`select`")} statement for type ${o3.bold(r5.name)} must not be empty. ${Gt(o3)}` : `The ${o3.red("`select`")} statement for type ${o3.bold(r5.name)} needs ${o3.bold("at least one truthy value")}.`); + } + __name(cc, "cc"); + function pc(e5, t) { + let r5 = new Jt(); + for (let i5 of e5.outputType.fields) i5.isRelation || r5.addField(i5.name, "false"); + let n3 = new pe("omit", r5).makeRequired(); + if (e5.selectionPath.length === 0) t.arguments.addSuggestion(n3); + else { + let [i5, o3] = wt(e5.selectionPath), a5 = t.arguments.getDeepSelectionParent(i5)?.value.asObject()?.getField(o3); + if (a5) { + let u = a5?.value.asObject() ?? new ht(); + u.addSuggestion(n3), a5.value = u; + } + } + t.addErrorMessage((i5) => `The global ${i5.red("omit")} configuration excludes every field of the model ${i5.bold(e5.outputType.name)}. At least one field must be included in the result`); + } + __name(pc, "pc"); + function dc(e5, t) { + let r5 = zo(e5.selectionPath, t); + if (r5.parentKind !== "unknown") { + r5.field.markAsError(); + let n3 = r5.parent; + switch (r5.parentKind) { + case "select": + Go(n3, e5.outputType); + break; + case "include": + Ec(n3, e5.outputType); + break; + case "omit": + Tc(n3, e5.outputType); + break; + } + } + t.addErrorMessage((n3) => { + let i5 = [`Unknown field ${n3.red(`\`${r5.fieldName}\``)}`]; + return r5.parentKind !== "unknown" && i5.push(`for ${n3.bold(r5.parentKind)} statement`), i5.push(`on model ${n3.bold(`\`${e5.outputType.name}\``)}.`), i5.push(Gt(n3)), i5.join(" "); + }); + } + __name(dc, "dc"); + function mc(e5, t) { + let r5 = zo(e5.selectionPath, t); + r5.parentKind !== "unknown" && r5.field.value.markAsError(), t.addErrorMessage((n3) => `Invalid value for selection field \`${n3.red(r5.fieldName)}\`: ${e5.underlyingError}`); + } + __name(mc, "mc"); + function fc(e5, t) { + let r5 = e5.argumentPath[0], n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + n3 && (n3.getField(r5)?.markAsError(), vc(n3, e5.arguments)), t.addErrorMessage((i5) => Qo(i5, r5, e5.arguments.map((o3) => o3.name))); + } + __name(fc, "fc"); + function gc(e5, t) { + let [r5, n3] = wt(e5.argumentPath), i5 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + if (i5) { + i5.getDeepField(e5.argumentPath)?.markAsError(); + let o3 = i5.getDeepFieldValue(r5)?.asObject(); + o3 && Ho(o3, e5.inputType); + } + t.addErrorMessage((o3) => Qo(o3, n3, e5.inputType.fields.map((s2) => s2.name))); + } + __name(gc, "gc"); + function Qo(e5, t, r5) { + let n3 = [`Unknown argument \`${e5.red(t)}\`.`], i5 = Ac(t, r5); + return i5 && n3.push(`Did you mean \`${e5.green(i5)}\`?`), r5.length > 0 && n3.push(Gt(e5)), n3.join(" "); + } + __name(Qo, "Qo"); + function yc(e5, t) { + let r5; + t.addErrorMessage((u) => r5?.value instanceof Z && r5.value.text === "null" ? `Argument \`${u.green(o3)}\` must not be ${u.red("null")}.` : `Argument \`${u.green(o3)}\` is missing.`); + let n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + if (!n3) return; + let [i5, o3] = wt(e5.argumentPath), s2 = new Jt(), a5 = n3.getDeepFieldValue(i5)?.asObject(); + if (a5) { + if (r5 = a5.getField(o3), r5 && a5.removeField(o3), e5.inputTypes.length === 1 && e5.inputTypes[0].kind === "object") { + for (let u of e5.inputTypes[0].fields) s2.addField(u.name, u.typeNames.join(" | ")); + a5.addSuggestion(new pe(o3, s2).makeRequired()); + } else { + let u = e5.inputTypes.map(Jo).join(" | "); + a5.addSuggestion(new pe(o3, u).makeRequired()); + } + if (e5.dependentArgumentPath) { + n3.getDeepField(e5.dependentArgumentPath)?.markAsError(); + let [, u] = wt(e5.dependentArgumentPath); + t.addErrorMessage((m3) => `Argument \`${m3.green(o3)}\` is required because argument \`${m3.green(u)}\` was provided.`); + } + } + } + __name(yc, "yc"); + function Jo(e5) { + return e5.kind === "list" ? `${Jo(e5.elementType)}[]` : e5.name; + } + __name(Jo, "Jo"); + function hc(e5, t) { + let r5 = e5.argument.name, n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + n3 && n3.getDeepFieldValue(e5.argumentPath)?.markAsError(), t.addErrorMessage((i5) => { + let o3 = Nr("or", e5.argument.typeNames.map((s2) => i5.green(s2))); + return `Argument \`${i5.bold(r5)}\`: Invalid value provided. Expected ${o3}, provided ${i5.red(e5.inferredType)}.`; + }); + } + __name(hc, "hc"); + function wc(e5, t) { + let r5 = e5.argument.name, n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + n3 && n3.getDeepFieldValue(e5.argumentPath)?.markAsError(), t.addErrorMessage((i5) => { + let o3 = [`Invalid value for argument \`${i5.bold(r5)}\``]; + if (e5.underlyingError && o3.push(`: ${e5.underlyingError}`), o3.push("."), e5.argument.typeNames.length > 0) { + let s2 = Nr("or", e5.argument.typeNames.map((a5) => i5.green(a5))); + o3.push(` Expected ${s2}.`); + } + return o3.join(""); + }); + } + __name(wc, "wc"); + function xc(e5, t) { + let r5 = e5.argument.name, n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(), i5; + if (n3) { + let s2 = n3.getDeepField(e5.argumentPath)?.value; + s2?.markAsError(), s2 instanceof Z && (i5 = s2.text); + } + t.addErrorMessage((o3) => { + let s2 = ["Unable to fit value"]; + return i5 && s2.push(o3.red(i5)), s2.push(`into a 64-bit signed integer for field \`${o3.bold(r5)}\``), s2.join(" "); + }); + } + __name(xc, "xc"); + function bc(e5, t) { + let r5 = e5.argumentPath[e5.argumentPath.length - 1], n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(); + if (n3) { + let i5 = n3.getDeepFieldValue(e5.argumentPath)?.asObject(); + i5 && Ho(i5, e5.inputType); + } + t.addErrorMessage((i5) => { + let o3 = [`Argument \`${i5.bold(r5)}\` of type ${i5.bold(e5.inputType.name)} needs`]; + return e5.constraints.minFieldCount === 1 ? e5.constraints.requiredFields ? o3.push(`${i5.green("at least one of")} ${Nr("or", e5.constraints.requiredFields.map((s2) => `\`${i5.bold(s2)}\``))} arguments.`) : o3.push(`${i5.green("at least one")} argument.`) : o3.push(`${i5.green(`at least ${e5.constraints.minFieldCount}`)} arguments.`), o3.push(Gt(i5)), o3.join(" "); + }); + } + __name(bc, "bc"); + function Pc(e5, t) { + let r5 = e5.argumentPath[e5.argumentPath.length - 1], n3 = t.arguments.getDeepSubSelectionValue(e5.selectionPath)?.asObject(), i5 = []; + if (n3) { + let o3 = n3.getDeepFieldValue(e5.argumentPath)?.asObject(); + o3 && (o3.markAsError(), i5 = Object.keys(o3.getFields())); + } + t.addErrorMessage((o3) => { + let s2 = [`Argument \`${o3.bold(r5)}\` of type ${o3.bold(e5.inputType.name)} needs`]; + return e5.constraints.minFieldCount === 1 && e5.constraints.maxFieldCount == 1 ? s2.push(`${o3.green("exactly one")} argument,`) : e5.constraints.maxFieldCount == 1 ? s2.push(`${o3.green("at most one")} argument,`) : s2.push(`${o3.green(`at most ${e5.constraints.maxFieldCount}`)} arguments,`), s2.push(`but you provided ${Nr("and", i5.map((a5) => o3.red(a5)))}. Please choose`), e5.constraints.maxFieldCount === 1 ? s2.push("one.") : s2.push(`${e5.constraints.maxFieldCount}.`), s2.join(" "); + }); + } + __name(Pc, "Pc"); + function Go(e5, t) { + for (let r5 of t.fields) e5.hasField(r5.name) || e5.addSuggestion(new pe(r5.name, "true")); + } + __name(Go, "Go"); + function Ec(e5, t) { + for (let r5 of t.fields) r5.isRelation && !e5.hasField(r5.name) && e5.addSuggestion(new pe(r5.name, "true")); + } + __name(Ec, "Ec"); + function Tc(e5, t) { + for (let r5 of t.fields) !e5.hasField(r5.name) && !r5.isRelation && e5.addSuggestion(new pe(r5.name, "true")); + } + __name(Tc, "Tc"); + function vc(e5, t) { + for (let r5 of t) e5.hasField(r5.name) || e5.addSuggestion(new pe(r5.name, r5.typeNames.join(" | "))); + } + __name(vc, "vc"); + function zo(e5, t) { + let [r5, n3] = wt(e5), i5 = t.arguments.getDeepSubSelectionValue(r5)?.asObject(); + if (!i5) return { parentKind: "unknown", fieldName: n3 }; + let o3 = i5.getFieldValue("select")?.asObject(), s2 = i5.getFieldValue("include")?.asObject(), a5 = i5.getFieldValue("omit")?.asObject(), u = o3?.getField(n3); + return o3 && u ? { parentKind: "select", parent: o3, field: u, fieldName: n3 } : (u = s2?.getField(n3), s2 && u ? { parentKind: "include", field: u, parent: s2, fieldName: n3 } : (u = a5?.getField(n3), a5 && u ? { parentKind: "omit", field: u, parent: a5, fieldName: n3 } : { parentKind: "unknown", fieldName: n3 })); + } + __name(zo, "zo"); + function Ho(e5, t) { + if (t.kind === "object") for (let r5 of t.fields) e5.hasField(r5.name) || e5.addSuggestion(new pe(r5.name, r5.typeNames.join(" | "))); + } + __name(Ho, "Ho"); + function wt(e5) { + let t = [...e5], r5 = t.pop(); + if (!r5) throw new Error("unexpected empty path"); + return [t, r5]; + } + __name(wt, "wt"); + function Gt({ green: e5, enabled: t }) { + return "Available options are " + (t ? `listed in ${e5("green")}` : "marked with ?") + "."; + } + __name(Gt, "Gt"); + function Nr(e5, t) { + if (t.length === 1) return t[0]; + let r5 = [...t], n3 = r5.pop(); + return `${r5.join(", ")} ${e5} ${n3}`; + } + __name(Nr, "Nr"); + var Sc = 3; + function Ac(e5, t) { + let r5 = 1 / 0, n3; + for (let i5 of t) { + let o3 = (0, Bo.default)(e5, i5); + o3 > Sc || o3 < r5 && (r5 = o3, n3 = i5); + } + return n3; + } + __name(Ac, "Ac"); + var Ko = require_dist(); + var zt = class { + static { + __name(this, "zt"); + } + modelName; + name; + typeName; + isList; + isEnum; + constructor(t, r5, n3, i5, o3) { + this.modelName = t, this.name = r5, this.typeName = n3, this.isList = i5, this.isEnum = o3; + } + _toGraphQLInputType() { + let t = this.isList ? "List" : "", r5 = this.isEnum ? "Enum" : ""; + return `${t}${r5}${this.typeName}FieldRefInput<${this.modelName}>`; + } + }; + function xt(e5) { + return e5 instanceof zt; + } + __name(xt, "xt"); + var Wo = ": "; + var Dr = class { + static { + __name(this, "Dr"); + } + constructor(t, r5) { + this.name = t; + this.value = r5; + } + hasError = false; + markAsError() { + this.hasError = true; + } + getPrintWidth() { + return this.name.length + this.value.getPrintWidth() + Wo.length; + } + write(t) { + let r5 = new ke(this.name); + this.hasError && r5.underline().setColor(t.context.colors.red), t.write(r5).write(Wo).write(this.value); + } + }; + var jn = class { + static { + __name(this, "jn"); + } + arguments; + errorMessages = []; + constructor(t) { + this.arguments = t; + } + write(t) { + t.write(this.arguments); + } + addErrorMessage(t) { + this.errorMessages.push(t); + } + renderAllMessages(t) { + return this.errorMessages.map((r5) => r5(t)).join(` +`); + } + }; + function bt(e5) { + return new jn(Zo(e5)); + } + __name(bt, "bt"); + function Zo(e5) { + let t = new ht(); + for (let [r5, n3] of Object.entries(e5)) { + let i5 = new Dr(r5, Xo(n3)); + t.addField(i5); + } + return t; + } + __name(Zo, "Zo"); + function Xo(e5) { + if (typeof e5 == "string") return new Z(JSON.stringify(e5)); + if (typeof e5 == "number" || typeof e5 == "boolean") return new Z(String(e5)); + if (typeof e5 == "bigint") return new Z(`${e5}n`); + if (e5 === null) return new Z("null"); + if (e5 === void 0) return new Z("undefined"); + if (dt(e5)) return new Z(`new Prisma.Decimal("${e5.toFixed()}")`); + if (e5 instanceof Uint8Array) return Buffer.isBuffer(e5) ? new Z(`Buffer.alloc(${e5.byteLength})`) : new Z(`new Uint8Array(${e5.byteLength})`); + if (e5 instanceof Date) { + let t = pt(e5) ? e5.toISOString() : "Invalid Date"; + return new Z(`new Date("${t}")`); + } + return (0, Ko.isObjectEnumValue)(e5) ? new Z(`Prisma.${e5._getName()}`) : xt(e5) ? new Z(`prisma.${qe(e5.modelName)}.$fields.${e5.name}`) : Array.isArray(e5) ? Rc(e5) : typeof e5 == "object" ? Zo(e5) : new Z(Object.prototype.toString.call(e5)); + } + __name(Xo, "Xo"); + function Rc(e5) { + let t = new yt(); + for (let r5 of e5) t.addItem(Xo(r5)); + return t; + } + __name(Rc, "Rc"); + function Mr(e5, t) { + let r5 = t === "pretty" ? jo : Or, n3 = e5.renderAllMessages(r5), i5 = new ft(0, { colors: r5 }).write(e5).toString(); + return { message: n3, args: i5 }; + } + __name(Mr, "Mr"); + function Fr({ args: e5, errors: t, errorFormat: r5, callsite: n3, originalMethod: i5, clientVersion: o3, globalOmit: s2 }) { + let a5 = bt(e5); + for (let T2 of t) Cr(T2, a5, s2); + let { message: u, args: m3 } = Mr(a5, r5), P = Rr({ message: u, callsite: n3, originalMethod: i5, showColors: r5 === "pretty", callArguments: m3 }); + throw new Yo.PrismaClientValidationError(P, { clientVersion: o3 }); + } + __name(Fr, "Fr"); + function Oe(e5) { + return e5.replace(/^./, (t) => t.toLowerCase()); + } + __name(Oe, "Oe"); + function ts(e5, t, r5) { + let n3 = Oe(r5); + return !t.result || !(t.result.$allModels || t.result[n3]) ? e5 : Cc({ ...e5, ...es(t.name, e5, t.result.$allModels), ...es(t.name, e5, t.result[n3]) }); + } + __name(ts, "ts"); + function Cc(e5) { + let t = new Ie(), r5 = /* @__PURE__ */ __name((n3, i5) => t.getOrCreate(n3, () => i5.has(n3) ? [n3] : (i5.add(n3), e5[n3] ? e5[n3].needs.flatMap((o3) => r5(o3, i5)) : [n3])), "r"); + return vr(e5, (n3) => ({ ...n3, needs: r5(n3.name, /* @__PURE__ */ new Set()) })); + } + __name(Cc, "Cc"); + function es(e5, t, r5) { + return r5 ? vr(r5, ({ needs: n3, compute: i5 }, o3) => ({ name: o3, needs: n3 ? Object.keys(n3).filter((s2) => n3[s2]) : [], compute: Ic(t, o3, i5) })) : {}; + } + __name(es, "es"); + function Ic(e5, t, r5) { + let n3 = e5?.[t]?.compute; + return n3 ? (i5, o3) => r5({ ...i5, [t]: n3(i5, o3) }, o3) : r5; + } + __name(Ic, "Ic"); + function rs(e5, t) { + if (!t) return e5; + let r5 = { ...e5 }; + for (let n3 of Object.values(t)) if (e5[n3.name]) for (let i5 of n3.needs) r5[i5] = true; + return r5; + } + __name(rs, "rs"); + function ns(e5, t) { + if (!t) return e5; + let r5 = { ...e5 }; + for (let n3 of Object.values(t)) if (!e5[n3.name]) for (let i5 of n3.needs) delete r5[i5]; + return r5; + } + __name(ns, "ns"); + var _r3 = class { + static { + __name(this, "_r"); + } + constructor(t, r5) { + this.extension = t; + this.previous = r5; + } + computedFieldsCache = new Ie(); + modelExtensionsCache = new Ie(); + queryCallbacksCache = new Ie(); + clientExtensions = Nt(() => this.extension.client ? { ...this.previous?.getAllClientExtensions(), ...this.extension.client } : this.previous?.getAllClientExtensions()); + batchCallbacks = Nt(() => { + let t = this.previous?.getAllBatchQueryCallbacks() ?? [], r5 = this.extension.query?.$__internalBatch; + return r5 ? t.concat(r5) : t; + }); + getAllComputedFields(t) { + return this.computedFieldsCache.getOrCreate(t, () => ts(this.previous?.getAllComputedFields(t), this.extension, t)); + } + getAllClientExtensions() { + return this.clientExtensions.get(); + } + getAllModelExtensions(t) { + return this.modelExtensionsCache.getOrCreate(t, () => { + let r5 = Oe(t); + return !this.extension.model || !(this.extension.model[r5] || this.extension.model.$allModels) ? this.previous?.getAllModelExtensions(t) : { ...this.previous?.getAllModelExtensions(t), ...this.extension.model.$allModels, ...this.extension.model[r5] }; + }); + } + getAllQueryCallbacks(t, r5) { + return this.queryCallbacksCache.getOrCreate(`${t}:${r5}`, () => { + let n3 = this.previous?.getAllQueryCallbacks(t, r5) ?? [], i5 = [], o3 = this.extension.query; + return !o3 || !(o3[t] || o3.$allModels || o3[r5] || o3.$allOperations) ? n3 : (o3[t] !== void 0 && (o3[t][r5] !== void 0 && i5.push(o3[t][r5]), o3[t].$allOperations !== void 0 && i5.push(o3[t].$allOperations)), t !== "$none" && o3.$allModels !== void 0 && (o3.$allModels[r5] !== void 0 && i5.push(o3.$allModels[r5]), o3.$allModels.$allOperations !== void 0 && i5.push(o3.$allModels.$allOperations)), o3[r5] !== void 0 && i5.push(o3[r5]), o3.$allOperations !== void 0 && i5.push(o3.$allOperations), n3.concat(i5)); + }); + } + getAllBatchQueryCallbacks() { + return this.batchCallbacks.get(); + } + }; + var Pt = class e5 { + static { + __name(this, "e"); + } + constructor(t) { + this.head = t; + } + static empty() { + return new e5(); + } + static single(t) { + return new e5(new _r3(t)); + } + isEmpty() { + return this.head === void 0; + } + append(t) { + return new e5(new _r3(t, this.head)); + } + getAllComputedFields(t) { + return this.head?.getAllComputedFields(t); + } + getAllClientExtensions() { + return this.head?.getAllClientExtensions(); + } + getAllModelExtensions(t) { + return this.head?.getAllModelExtensions(t); + } + getAllQueryCallbacks(t, r5) { + return this.head?.getAllQueryCallbacks(t, r5) ?? []; + } + getAllBatchQueryCallbacks() { + return this.head?.getAllBatchQueryCallbacks() ?? []; + } + }; + var $r = class { + static { + __name(this, "$r"); + } + constructor(t) { + this.name = t; + } + }; + function is(e5) { + return e5 instanceof $r; + } + __name(is, "is"); + function os(e5) { + return new $r(e5); + } + __name(os, "os"); + var ss = /* @__PURE__ */ Symbol(); + var Ht = class { + static { + __name(this, "Ht"); + } + constructor(t) { + if (t !== ss) throw new Error("Skip instance can not be constructed directly"); + } + ifUndefined(t) { + return t === void 0 ? Lr : t; + } + }; + var Lr = new Ht(ss); + function fe(e5) { + return e5 instanceof Ht; + } + __name(fe, "fe"); + var kc = { findUnique: "findUnique", findUniqueOrThrow: "findUniqueOrThrow", findFirst: "findFirst", findFirstOrThrow: "findFirstOrThrow", findMany: "findMany", count: "aggregate", create: "createOne", createMany: "createMany", createManyAndReturn: "createManyAndReturn", update: "updateOne", updateMany: "updateMany", updateManyAndReturn: "updateManyAndReturn", upsert: "upsertOne", delete: "deleteOne", deleteMany: "deleteMany", executeRaw: "executeRaw", queryRaw: "queryRaw", aggregate: "aggregate", groupBy: "groupBy", runCommandRaw: "runCommandRaw", findRaw: "findRaw", aggregateRaw: "aggregateRaw" }; + var ls = "explicitly `undefined` values are not allowed"; + function Vr({ modelName: e5, action: t, args: r5, runtimeDataModel: n3, extensions: i5 = Pt.empty(), callsite: o3, clientMethod: s2, errorFormat: a5, clientVersion: u, previewFeatures: m3, globalOmit: P, wrapRawValues: T2 }) { + let S = new Bn({ runtimeDataModel: n3, modelName: e5, action: t, rootArgs: r5, callsite: o3, extensions: i5, selectionPath: [], argumentPath: [], originalMethod: s2, errorFormat: a5, clientVersion: u, previewFeatures: m3, globalOmit: P, wrapRawValues: T2 }); + return { modelName: e5, action: kc[t], query: Wt(r5, S) }; + } + __name(Vr, "Vr"); + function Wt({ select: e5, include: t, ...r5 } = {}, n3) { + let i5 = r5.omit; + return delete r5.omit, { arguments: cs(r5, n3), selection: Oc(e5, t, i5, n3) }; + } + __name(Wt, "Wt"); + function Oc(e5, t, r5, n3) { + return e5 ? (t ? n3.throwValidationError({ kind: "MutuallyExclusiveFields", firstField: "include", secondField: "select", selectionPath: n3.getSelectionPath() }) : r5 && n3.throwValidationError({ kind: "MutuallyExclusiveFields", firstField: "omit", secondField: "select", selectionPath: n3.getSelectionPath() }), Fc(e5, n3)) : Nc(n3, t, r5); + } + __name(Oc, "Oc"); + function Nc(e5, t, r5) { + let n3 = {}; + return e5.modelOrType && !e5.isRawAction() && (n3.$composites = true, n3.$scalars = true), t && Dc(n3, t, e5), Mc(n3, r5, e5), n3; + } + __name(Nc, "Nc"); + function Dc(e5, t, r5) { + for (let [n3, i5] of Object.entries(t)) { + if (fe(i5)) continue; + let o3 = r5.nestSelection(n3); + if (Qn(i5, o3), i5 === false || i5 === void 0) { + e5[n3] = false; + continue; + } + let s2 = r5.findField(n3); + if (s2 && s2.kind !== "object" && r5.throwValidationError({ kind: "IncludeOnScalar", selectionPath: r5.getSelectionPath().concat(n3), outputType: r5.getOutputTypeDescription() }), s2) { + e5[n3] = Wt(i5 === true ? {} : i5, o3); + continue; + } + if (i5 === true) { + e5[n3] = true; + continue; + } + e5[n3] = Wt(i5, o3); + } + } + __name(Dc, "Dc"); + function Mc(e5, t, r5) { + let n3 = r5.getComputedFields(), i5 = { ...r5.getGlobalOmit(), ...t }, o3 = ns(i5, n3); + for (let [s2, a5] of Object.entries(o3)) { + if (fe(a5)) continue; + Qn(a5, r5.nestSelection(s2)); + let u = r5.findField(s2); + n3?.[s2] && !u || (e5[s2] = !a5); + } + } + __name(Mc, "Mc"); + function Fc(e5, t) { + let r5 = {}, n3 = t.getComputedFields(), i5 = rs(e5, n3); + for (let [o3, s2] of Object.entries(i5)) { + if (fe(s2)) continue; + let a5 = t.nestSelection(o3); + Qn(s2, a5); + let u = t.findField(o3); + if (!(n3?.[o3] && !u)) { + if (s2 === false || s2 === void 0 || fe(s2)) { + r5[o3] = false; + continue; + } + if (s2 === true) { + u?.kind === "object" ? r5[o3] = Wt({}, a5) : r5[o3] = true; + continue; + } + r5[o3] = Wt(s2, a5); + } + } + return r5; + } + __name(Fc, "Fc"); + function us(e5, t) { + if (e5 === null) return null; + if (typeof e5 == "string" || typeof e5 == "number" || typeof e5 == "boolean") return e5; + if (typeof e5 == "bigint") return { $type: "BigInt", value: String(e5) }; + if (ct(e5)) { + if (pt(e5)) return { $type: "DateTime", value: e5.toISOString() }; + t.throwValidationError({ kind: "InvalidArgumentValue", selectionPath: t.getSelectionPath(), argumentPath: t.getArgumentPath(), argument: { name: t.getArgumentName(), typeNames: ["Date"] }, underlyingError: "Provided Date object is invalid" }); + } + if (is(e5)) return { $type: "Param", value: e5.name }; + if (xt(e5)) return { $type: "FieldRef", value: { _ref: e5.name, _container: e5.modelName } }; + if (Array.isArray(e5)) return _c5(e5, t); + if (ArrayBuffer.isView(e5)) { + let { buffer: r5, byteOffset: n3, byteLength: i5 } = e5; + return { $type: "Bytes", value: Buffer.from(r5, n3, i5).toString("base64") }; + } + if ($c(e5)) return e5.values; + if (dt(e5)) return { $type: "Decimal", value: e5.toFixed() }; + if ((0, as.isObjectEnumValue)(e5)) { + let r5 = e5._getName(); + if (r5 !== "DbNull" && r5 !== "JsonNull" && r5 !== "AnyNull") throw new Error(`Invalid ObjectEnumValue: expected DbNull, JsonNull, or AnyNull, got ${r5}`); + return { $type: "Enum", value: r5 }; + } + if (Lc(e5)) return e5.toJSON(); + if (typeof e5 == "object") return cs(e5, t); + t.throwValidationError({ kind: "InvalidArgumentValue", selectionPath: t.getSelectionPath(), argumentPath: t.getArgumentPath(), argument: { name: t.getArgumentName(), typeNames: [] }, underlyingError: `We could not serialize ${Object.prototype.toString.call(e5)} value. Serialize the object to JSON or implement a ".toJSON()" method on it` }); + } + __name(us, "us"); + function cs(e5, t) { + if (t.shouldWrapRawValues() && e5.$type) return { $type: "Raw", value: e5 }; + let r5 = {}; + for (let n3 in e5) { + let i5 = e5[n3], o3 = t.nestArgument(n3); + fe(i5) || (i5 !== void 0 ? r5[n3] = us(i5, o3) : t.isPreviewFeatureOn("strictUndefinedChecks") && t.throwValidationError({ kind: "InvalidArgumentValue", argumentPath: o3.getArgumentPath(), selectionPath: t.getSelectionPath(), argument: { name: t.getArgumentName(), typeNames: [] }, underlyingError: ls })); + } + return r5; + } + __name(cs, "cs"); + function _c5(e5, t) { + let r5 = []; + for (let n3 = 0; n3 < e5.length; n3++) { + let i5 = t.nestArgument(String(n3)), o3 = e5[n3]; + if (o3 === void 0 || fe(o3)) { + let s2 = o3 === void 0 ? "undefined" : "Prisma.skip"; + t.throwValidationError({ kind: "InvalidArgumentValue", selectionPath: i5.getSelectionPath(), argumentPath: i5.getArgumentPath(), argument: { name: `${t.getArgumentName()}[${n3}]`, typeNames: [] }, underlyingError: `Can not use \`${s2}\` value within array. Use \`null\` or filter out \`${s2}\` values` }); + } + r5.push(us(o3, i5)); + } + return r5; + } + __name(_c5, "_c"); + function $c(e5) { + return typeof e5 == "object" && e5 !== null && e5.__prismaRawParameters__ === true; + } + __name($c, "$c"); + function Lc(e5) { + return typeof e5 == "object" && e5 !== null && typeof e5.toJSON == "function"; + } + __name(Lc, "Lc"); + function Qn(e5, t) { + e5 === void 0 && t.isPreviewFeatureOn("strictUndefinedChecks") && t.throwValidationError({ kind: "InvalidSelectionValue", selectionPath: t.getSelectionPath(), underlyingError: ls }); + } + __name(Qn, "Qn"); + var Bn = class e5 { + static { + __name(this, "e"); + } + constructor(t) { + this.params = t; + this.params.modelName && (this.modelOrType = this.params.runtimeDataModel.models[this.params.modelName] ?? this.params.runtimeDataModel.types[this.params.modelName]); + } + modelOrType; + throwValidationError(t) { + Fr({ errors: [t], originalMethod: this.params.originalMethod, args: this.params.rootArgs ?? {}, callsite: this.params.callsite, errorFormat: this.params.errorFormat, clientVersion: this.params.clientVersion, globalOmit: this.params.globalOmit }); + } + getSelectionPath() { + return this.params.selectionPath; + } + getArgumentPath() { + return this.params.argumentPath; + } + getArgumentName() { + return this.params.argumentPath[this.params.argumentPath.length - 1]; + } + getOutputTypeDescription() { + if (!(!this.params.modelName || !this.modelOrType)) return { name: this.params.modelName, fields: this.modelOrType.fields.map((t) => ({ name: t.name, typeName: "boolean", isRelation: t.kind === "object" })) }; + } + isRawAction() { + return ["executeRaw", "queryRaw", "runCommandRaw", "findRaw", "aggregateRaw"].includes(this.params.action); + } + isPreviewFeatureOn(t) { + return this.params.previewFeatures.includes(t); + } + shouldWrapRawValues() { + return this.params.wrapRawValues ?? true; + } + getComputedFields() { + if (this.params.modelName) return this.params.extensions.getAllComputedFields(this.params.modelName); + } + findField(t) { + return this.modelOrType?.fields.find((r5) => r5.name === t); + } + nestSelection(t) { + let r5 = this.findField(t), n3 = r5?.kind === "object" ? r5.type : void 0; + return new e5({ ...this.params, modelName: n3, selectionPath: this.params.selectionPath.concat(t) }); + } + getGlobalOmit() { + return this.params.modelName && this.shouldApplyGlobalOmit() ? this.params.globalOmit?.[qe(this.params.modelName)] ?? {} : {}; + } + shouldApplyGlobalOmit() { + switch (this.params.action) { + case "findFirst": + case "findFirstOrThrow": + case "findUniqueOrThrow": + case "findMany": + case "upsert": + case "findUnique": + case "createManyAndReturn": + case "create": + case "update": + case "updateManyAndReturn": + case "delete": + return true; + case "executeRaw": + case "aggregateRaw": + case "runCommandRaw": + case "findRaw": + case "createMany": + case "deleteMany": + case "groupBy": + case "updateMany": + case "count": + case "aggregate": + case "queryRaw": + return false; + default: + $e(this.params.action, "Unknown action"); + } + } + nestArgument(t) { + return new e5({ ...this.params, argumentPath: this.params.argumentPath.concat(t) }); + } + }; + function ps(e5, t) { + let r5 = Nt(() => Vc(t)); + Object.defineProperty(e5, "dmmf", { get: /* @__PURE__ */ __name(() => r5.get(), "get") }); + } + __name(ps, "ps"); + function Vc(e5) { + return { datamodel: { models: Jn(e5.models), enums: Jn(e5.enums), types: Jn(e5.types) } }; + } + __name(Vc, "Vc"); + function Jn(e5) { + return Object.entries(e5).map(([t, r5]) => ({ name: t, ...r5 })); + } + __name(Jn, "Jn"); + var Gn = /* @__PURE__ */ new WeakMap(); + var qr = "$$PrismaTypedSql"; + var Kt = class { + static { + __name(this, "Kt"); + } + constructor(t, r5) { + Gn.set(this, { sql: t, values: r5 }), Object.defineProperty(this, qr, { value: qr }); + } + get sql() { + return Gn.get(this).sql; + } + get values() { + return Gn.get(this).values; + } + }; + function ds(e5) { + return (...t) => new Kt(e5, t); + } + __name(ds, "ds"); + function Ur(e5) { + return e5 != null && e5[qr] === qr; + } + __name(Ur, "Ur"); + var nu = require_dist(); + var iu = __require("node:async_hooks"); + var ou = __require("node:events"); + function Zt(e5) { + return { getKeys() { + return Object.keys(e5); + }, getPropertyValue(t) { + return e5[t]; + } }; + } + __name(Zt, "Zt"); + function ae(e5, t) { + return { getKeys() { + return [e5]; + }, getPropertyValue() { + return t(); + } }; + } + __name(ae, "ae"); + function We(e5) { + let t = new Ie(); + return { getKeys() { + return e5.getKeys(); + }, getPropertyValue(r5) { + return t.getOrCreate(r5, () => e5.getPropertyValue(r5)); + }, getPropertyDescriptor(r5) { + return e5.getPropertyDescriptor?.(r5); + } }; + } + __name(We, "We"); + var jr = { enumerable: true, configurable: true, writable: true }; + function Br(e5) { + let t = new Set(e5); + return { getPrototypeOf: /* @__PURE__ */ __name(() => Object.prototype, "getPrototypeOf"), getOwnPropertyDescriptor: /* @__PURE__ */ __name(() => jr, "getOwnPropertyDescriptor"), has: /* @__PURE__ */ __name((r5, n3) => t.has(n3), "has"), set: /* @__PURE__ */ __name((r5, n3, i5) => t.add(n3) && Reflect.set(r5, n3, i5), "set"), ownKeys: /* @__PURE__ */ __name(() => [...t], "ownKeys") }; + } + __name(Br, "Br"); + var ms = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom"); + function ve(e5, t) { + let r5 = qc(t), n3 = /* @__PURE__ */ new Set(), i5 = new Proxy(e5, { get(o3, s2) { + if (n3.has(s2)) return o3[s2]; + let a5 = r5.get(s2); + return a5 ? a5.getPropertyValue(s2) : o3[s2]; + }, has(o3, s2) { + if (n3.has(s2)) return true; + let a5 = r5.get(s2); + return a5 ? a5.has?.(s2) ?? true : Reflect.has(o3, s2); + }, ownKeys(o3) { + let s2 = fs(Reflect.ownKeys(o3), r5), a5 = fs(Array.from(r5.keys()), r5); + return [.../* @__PURE__ */ new Set([...s2, ...a5, ...n3])]; + }, set(o3, s2, a5) { + return r5.get(s2)?.getPropertyDescriptor?.(s2)?.writable === false ? false : (n3.add(s2), Reflect.set(o3, s2, a5)); + }, getOwnPropertyDescriptor(o3, s2) { + let a5 = Reflect.getOwnPropertyDescriptor(o3, s2); + if (a5 && !a5.configurable) return a5; + let u = r5.get(s2); + return u ? u.getPropertyDescriptor ? { ...jr, ...u?.getPropertyDescriptor(s2) } : jr : a5; + }, defineProperty(o3, s2, a5) { + return n3.add(s2), Reflect.defineProperty(o3, s2, a5); + }, getPrototypeOf: /* @__PURE__ */ __name(() => Object.prototype, "getPrototypeOf") }); + return i5[ms] = function() { + let o3 = { ...this }; + return delete o3[ms], o3; + }, i5; + } + __name(ve, "ve"); + function qc(e5) { + let t = /* @__PURE__ */ new Map(); + for (let r5 of e5) { + let n3 = r5.getKeys(); + for (let i5 of n3) t.set(i5, r5); + } + return t; + } + __name(qc, "qc"); + function fs(e5, t) { + return e5.filter((r5) => t.get(r5)?.has?.(r5) ?? true); + } + __name(fs, "fs"); + function Et(e5) { + return { getKeys() { + return e5; + }, has() { + return false; + }, getPropertyValue() { + } }; + } + __name(Et, "Et"); + function gs(e5) { + if (e5 === void 0) return ""; + let t = bt(e5); + return new ft(0, { colors: Or }).write(t).toString(); + } + __name(gs, "gs"); + var Xt = ""; + function ys(e5) { + var t = e5.split(` +`); + return t.reduce(function(r5, n3) { + var i5 = Bc(n3) || Jc(n3) || Hc(n3) || Xc(n3) || Kc(n3); + return i5 && r5.push(i5), r5; + }, []); + } + __name(ys, "ys"); + var Uc = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i; + var jc = /\((\S*)(?::(\d+))(?::(\d+))\)/; + function Bc(e5) { + var t = Uc.exec(e5); + if (!t) return null; + var r5 = t[2] && t[2].indexOf("native") === 0, n3 = t[2] && t[2].indexOf("eval") === 0, i5 = jc.exec(t[2]); + return n3 && i5 != null && (t[2] = i5[1], t[3] = i5[2], t[4] = i5[3]), { file: r5 ? null : t[2], methodName: t[1] || Xt, arguments: r5 ? [t[2]] : [], lineNumber: t[3] ? +t[3] : null, column: t[4] ? +t[4] : null }; + } + __name(Bc, "Bc"); + var Qc = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i; + function Jc(e5) { + var t = Qc.exec(e5); + return t ? { file: t[2], methodName: t[1] || Xt, arguments: [], lineNumber: +t[3], column: t[4] ? +t[4] : null } : null; + } + __name(Jc, "Jc"); + var Gc = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i; + var zc = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i; + function Hc(e5) { + var t = Gc.exec(e5); + if (!t) return null; + var r5 = t[3] && t[3].indexOf(" > eval") > -1, n3 = zc.exec(t[3]); + return r5 && n3 != null && (t[3] = n3[1], t[4] = n3[2], t[5] = null), { file: t[3], methodName: t[1] || Xt, arguments: t[2] ? t[2].split(",") : [], lineNumber: t[4] ? +t[4] : null, column: t[5] ? +t[5] : null }; + } + __name(Hc, "Hc"); + var Wc = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i; + function Kc(e5) { + var t = Wc.exec(e5); + return t ? { file: t[3], methodName: t[1] || Xt, arguments: [], lineNumber: +t[4], column: t[5] ? +t[5] : null } : null; + } + __name(Kc, "Kc"); + var Zc = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i; + function Xc(e5) { + var t = Zc.exec(e5); + return t ? { file: t[2], methodName: t[1] || Xt, arguments: [], lineNumber: +t[3], column: t[4] ? +t[4] : null } : null; + } + __name(Xc, "Xc"); + var zn = class { + static { + __name(this, "zn"); + } + getLocation() { + return null; + } + }; + var Hn = class { + static { + __name(this, "Hn"); + } + _error; + constructor() { + this._error = new Error(); + } + getLocation() { + let t = this._error.stack; + if (!t) return null; + let n3 = ys(t).find((i5) => { + if (!i5.file) return false; + let o3 = _n(i5.file); + return o3 !== "" && !o3.includes("@prisma") && !o3.includes("/packages/client/src/runtime/") && !o3.endsWith("/runtime/client.js") && !o3.startsWith("internal/") && !i5.methodName.includes("new ") && !i5.methodName.includes("getCallSite") && !i5.methodName.includes("Proxy.") && i5.methodName.split(".").length < 4; + }); + return !n3 || !n3.file ? null : { fileName: n3.file, lineNumber: n3.lineNumber, columnNumber: n3.column }; + } + }; + function je(e5) { + return e5 === "minimal" ? typeof $EnabledCallSite == "function" && e5 !== "minimal" ? new $EnabledCallSite() : new zn() : new Hn(); + } + __name(je, "je"); + var hs = { _avg: true, _count: true, _sum: true, _min: true, _max: true }; + function Tt(e5 = {}) { + let t = ep(e5); + return Object.entries(t).reduce((n3, [i5, o3]) => (hs[i5] !== void 0 ? n3.select[i5] = { select: o3 } : n3[i5] = o3, n3), { select: {} }); + } + __name(Tt, "Tt"); + function ep(e5 = {}) { + return typeof e5._count == "boolean" ? { ...e5, _count: { _all: e5._count } } : e5; + } + __name(ep, "ep"); + function Qr(e5 = {}) { + return (t) => (typeof e5._count == "boolean" && (t._count = t._count._all), t); + } + __name(Qr, "Qr"); + function ws(e5, t) { + let r5 = Qr(e5); + return t({ action: "aggregate", unpacker: r5, argsMapper: Tt })(e5); + } + __name(ws, "ws"); + function tp(e5 = {}) { + let { select: t, ...r5 } = e5; + return typeof t == "object" ? Tt({ ...r5, _count: t }) : Tt({ ...r5, _count: { _all: true } }); + } + __name(tp, "tp"); + function rp(e5 = {}) { + return typeof e5.select == "object" ? (t) => Qr(e5)(t)._count : (t) => Qr(e5)(t)._count._all; + } + __name(rp, "rp"); + function xs(e5, t) { + return t({ action: "count", unpacker: rp(e5), argsMapper: tp })(e5); + } + __name(xs, "xs"); + function np(e5 = {}) { + let t = Tt(e5); + if (Array.isArray(t.by)) for (let r5 of t.by) typeof r5 == "string" && (t.select[r5] = true); + else typeof t.by == "string" && (t.select[t.by] = true); + return t; + } + __name(np, "np"); + function ip(e5 = {}) { + return (t) => (typeof e5?._count == "boolean" && t.forEach((r5) => { + r5._count = r5._count._all; + }), t); + } + __name(ip, "ip"); + function bs(e5, t) { + return t({ action: "groupBy", unpacker: ip(e5), argsMapper: np })(e5); + } + __name(bs, "bs"); + function Ps(e5, t, r5) { + if (t === "aggregate") return (n3) => ws(n3, r5); + if (t === "count") return (n3) => xs(n3, r5); + if (t === "groupBy") return (n3) => bs(n3, r5); + } + __name(Ps, "Ps"); + function Es(e5, t) { + let r5 = t.fields.filter((i5) => !i5.relationName), n3 = oo(r5, "name"); + return new Proxy({}, { get(i5, o3) { + if (o3 in i5 || typeof o3 == "symbol") return i5[o3]; + let s2 = n3[o3]; + if (s2) return new zt(e5, o3, s2.type, s2.isList, s2.kind === "enum"); + }, ...Br(Object.keys(n3)) }); + } + __name(Es, "Es"); + var Ts = /* @__PURE__ */ __name((e5) => Array.isArray(e5) ? e5 : e5.split("."), "Ts"); + var Wn = /* @__PURE__ */ __name((e5, t) => Ts(t).reduce((r5, n3) => r5 && r5[n3], e5), "Wn"); + var vs = /* @__PURE__ */ __name((e5, t, r5) => Ts(t).reduceRight((n3, i5, o3, s2) => Object.assign({}, Wn(e5, s2.slice(0, o3)), { [i5]: n3 }), r5), "vs"); + function op(e5, t) { + return e5 === void 0 || t === void 0 ? [] : [...t, "select", e5]; + } + __name(op, "op"); + function sp(e5, t, r5) { + return t === void 0 ? e5 ?? {} : vs(t, r5, e5 || true); + } + __name(sp, "sp"); + function Kn(e5, t, r5, n3, i5, o3) { + let s2 = e5._runtimeDataModel.models[t], a5; + return (u) => { + let m3 = je(e5._errorFormat), P = op(n3, i5), T2 = sp(u, o3, P), S = r5({ dataPath: P, callsite: m3 })(T2), I = ap(e5, t); + return new Proxy(S, { get(A, M) { + if (!I.includes(M)) return A[M]; + a5 ??= Object.fromEntries(s2.fields.map((D) => [D.name, D])); + let q3 = [a5[M].type, r5, M], E = [P, T2]; + return Kn(e5, ...q3, ...E); + }, ...Br([...I, ...Object.getOwnPropertyNames(S)]) }); + }; + } + __name(Kn, "Kn"); + function ap(e5, t) { + return e5._runtimeDataModel.models[t].fields.filter((r5) => r5.kind === "object").map((r5) => r5.name); + } + __name(ap, "ap"); + var lp = ["findUnique", "findUniqueOrThrow", "findFirst", "findFirstOrThrow", "create", "update", "upsert", "delete"]; + var up = ["aggregate", "count", "groupBy"]; + function Zn(e5, t) { + let r5 = e5._extensions.getAllModelExtensions(t) ?? {}, n3 = [cp(e5, t), dp(e5, t), Zt(r5), ae("name", () => t), ae("$name", () => t), ae("$parent", () => e5._appliedParent)]; + return ve({}, n3); + } + __name(Zn, "Zn"); + function cp(e5, t) { + let r5 = Oe(t), n3 = Object.keys(mt).concat("count"); + return { getKeys() { + return n3; + }, getPropertyValue(i5) { + let o3 = i5, s2 = /* @__PURE__ */ __name((a5) => (u) => { + let m3 = je(e5._errorFormat); + return e5._createPrismaPromise((P) => { + let T2 = { args: u, dataPath: [], action: o3, model: t, clientMethod: `${r5}.${i5}`, jsModelName: r5, transaction: P, callsite: m3 }; + return e5._request({ ...T2, ...a5 }); + }, { action: o3, args: u, model: t }); + }, "s"); + return lp.includes(o3) ? Kn(e5, t, s2) : pp(i5) ? Ps(e5, i5, s2) : s2({}); + } }; + } + __name(cp, "cp"); + function pp(e5) { + return up.includes(e5); + } + __name(pp, "pp"); + function dp(e5, t) { + return We(ae("fields", () => { + let r5 = e5._runtimeDataModel.models[t]; + return Es(t, r5); + })); + } + __name(dp, "dp"); + function Ss(e5) { + return e5.replace(/^./, (t) => t.toUpperCase()); + } + __name(Ss, "Ss"); + var Xn = /* @__PURE__ */ Symbol(); + function Yt(e5) { + let t = [mp(e5), fp(e5), ae(Xn, () => e5), ae("$parent", () => e5._appliedParent)], r5 = e5._extensions.getAllClientExtensions(); + return r5 && t.push(Zt(r5)), ve(e5, t); + } + __name(Yt, "Yt"); + function mp(e5) { + let t = Object.getPrototypeOf(e5._originalClient), r5 = [...new Set(Object.getOwnPropertyNames(t))]; + return { getKeys() { + return r5; + }, getPropertyValue(n3) { + return e5[n3]; + } }; + } + __name(mp, "mp"); + function fp(e5) { + let t = Object.keys(e5._runtimeDataModel.models), r5 = t.map(Oe), n3 = [...new Set(t.concat(r5))]; + return We({ getKeys() { + return n3; + }, getPropertyValue(i5) { + let o3 = Ss(i5); + if (e5._runtimeDataModel.models[o3] !== void 0) return Zn(e5, o3); + if (e5._runtimeDataModel.models[i5] !== void 0) return Zn(e5, i5); + }, getPropertyDescriptor(i5) { + if (!r5.includes(i5)) return { enumerable: false }; + } }); + } + __name(fp, "fp"); + function As(e5) { + return e5[Xn] ? e5[Xn] : e5; + } + __name(As, "As"); + function Rs(e5) { + if (typeof e5 == "function") return e5(this); + let t = Object.create(this._originalClient, { _extensions: { value: this._extensions.append(e5) }, _appliedParent: { value: this, configurable: true }, $on: { value: void 0 } }); + return Yt(t); + } + __name(Rs, "Rs"); + function Cs({ result: e5, modelName: t, select: r5, omit: n3, extensions: i5 }) { + let o3 = i5.getAllComputedFields(t); + if (!o3) return e5; + let s2 = [], a5 = []; + for (let u of Object.values(o3)) { + if (n3) { + if (n3[u.name]) continue; + let m3 = u.needs.filter((P) => n3[P]); + m3.length > 0 && a5.push(Et(m3)); + } else if (r5) { + if (!r5[u.name]) continue; + let m3 = u.needs.filter((P) => !r5[P]); + m3.length > 0 && a5.push(Et(m3)); + } + gp(e5, u.needs) && s2.push(yp(u, ve(e5, s2), t)); + } + return s2.length > 0 || a5.length > 0 ? ve(e5, [...s2, ...a5]) : e5; + } + __name(Cs, "Cs"); + function gp(e5, t) { + return t.every((r5) => $n(e5, r5)); + } + __name(gp, "gp"); + function yp(e5, t, r5) { + return We(ae(e5.name, () => e5.compute(t, r5))); + } + __name(yp, "yp"); + function Jr({ visitor: e5, result: t, args: r5, runtimeDataModel: n3, modelName: i5 }) { + if (Array.isArray(t)) { + for (let s2 = 0; s2 < t.length; s2++) t[s2] = Jr({ result: t[s2], args: r5, modelName: i5, runtimeDataModel: n3, visitor: e5 }); + return t; + } + let o3 = e5(t, i5, r5) ?? t; + return r5.include && Is({ includeOrSelect: r5.include, result: o3, parentModelName: i5, runtimeDataModel: n3, visitor: e5 }), r5.select && Is({ includeOrSelect: r5.select, result: o3, parentModelName: i5, runtimeDataModel: n3, visitor: e5 }), o3; + } + __name(Jr, "Jr"); + function Is({ includeOrSelect: e5, result: t, parentModelName: r5, runtimeDataModel: n3, visitor: i5 }) { + for (let [o3, s2] of Object.entries(e5)) { + if (!s2 || t[o3] == null || fe(s2)) continue; + let u = n3.models[r5].fields.find((P) => P.name === o3); + if (!u || u.kind !== "object" || !u.relationName) continue; + let m3 = typeof s2 == "object" ? s2 : {}; + t[o3] = Jr({ visitor: i5, result: t[o3], args: m3, modelName: u.type, runtimeDataModel: n3 }); + } + } + __name(Is, "Is"); + function ks({ result: e5, modelName: t, args: r5, extensions: n3, runtimeDataModel: i5, globalOmit: o3 }) { + return n3.isEmpty() || e5 == null || typeof e5 != "object" || !i5.models[t] ? e5 : Jr({ result: e5, args: r5 ?? {}, modelName: t, runtimeDataModel: i5, visitor: /* @__PURE__ */ __name((a5, u, m3) => { + let P = Oe(u); + return Cs({ result: a5, modelName: P, select: m3.select, omit: m3.select ? void 0 : { ...o3?.[P], ...m3.omit }, extensions: n3 }); + }, "visitor") }); + } + __name(ks, "ks"); + var Ke = require_dist(); + var hp = ["$connect", "$disconnect", "$on", "$use", "$extends"]; + var Os = hp; + function Ns(e5) { + if (e5 instanceof Ke.Sql) return wp(e5); + if (Ur(e5)) return xp(e5); + if (Array.isArray(e5)) { + let r5 = [e5[0]]; + for (let n3 = 1; n3 < e5.length; n3++) r5[n3] = er(e5[n3]); + return r5; + } + let t = {}; + for (let r5 in e5) t[r5] = er(e5[r5]); + return t; + } + __name(Ns, "Ns"); + function wp(e5) { + return new Ke.Sql(e5.strings, e5.values); + } + __name(wp, "wp"); + function xp(e5) { + return new Kt(e5.sql, e5.values); + } + __name(xp, "xp"); + function er(e5) { + if (typeof e5 != "object" || e5 == null || (0, Ke.isObjectEnumValue)(e5) || xt(e5) || fe(e5)) return e5; + if (dt(e5)) return new Ke.Decimal(e5.toFixed()); + if (ct(e5)) return /* @__PURE__ */ new Date(+e5); + if (ArrayBuffer.isView(e5)) return e5.slice(0); + if (Array.isArray(e5)) { + let t = e5.length, r5; + for (r5 = Array(t); t--; ) r5[t] = er(e5[t]); + return r5; + } + if (typeof e5 == "object") { + let t = {}; + for (let r5 in e5) r5 === "__proto__" ? Object.defineProperty(t, r5, { value: er(e5[r5]), configurable: true, enumerable: true, writable: true }) : t[r5] = er(e5[r5]); + return t; + } + $e(e5, "Unknown value"); + } + __name(er, "er"); + function Ms(e5, t, r5, n3 = 0) { + return e5._createPrismaPromise((i5) => { + let o3 = t.customDataProxyFetch; + return "transaction" in t && i5 !== void 0 && (t.transaction?.kind === "batch" && t.transaction.lock.then(), t.transaction = i5), n3 === r5.length ? e5._executeRequest(t) : r5[n3]({ model: t.model, operation: t.model ? t.action : t.clientMethod, args: Ns(t.args ?? {}), __internalParams: t, query: /* @__PURE__ */ __name((s2, a5 = t) => { + let u = a5.customDataProxyFetch; + return a5.customDataProxyFetch = Ls(o3, u), a5.args = s2, Ms(e5, a5, r5, n3 + 1); + }, "query") }); + }); + } + __name(Ms, "Ms"); + function Fs(e5, t) { + let { jsModelName: r5, action: n3, clientMethod: i5 } = t, o3 = r5 ? n3 : i5; + if (e5._extensions.isEmpty()) return e5._executeRequest(t); + let s2 = e5._extensions.getAllQueryCallbacks(r5 ?? "$none", o3); + return Ms(e5, t, s2); + } + __name(Fs, "Fs"); + function _s5(e5) { + return (t) => { + let r5 = { requests: t }, n3 = t[0].extensions.getAllBatchQueryCallbacks(); + return n3.length ? $s(r5, n3, 0, e5) : e5(r5); + }; + } + __name(_s5, "_s"); + function $s(e5, t, r5, n3) { + if (r5 === t.length) return n3(e5); + let i5 = e5.customDataProxyFetch, o3 = e5.requests[0].transaction; + return t[r5]({ args: { queries: e5.requests.map((s2) => ({ model: s2.modelName, operation: s2.action, args: s2.args })), transaction: o3 ? { isolationLevel: o3.kind === "batch" ? o3.isolationLevel : void 0 } : void 0 }, __internalParams: e5, query(s2, a5 = e5) { + let u = a5.customDataProxyFetch; + return a5.customDataProxyFetch = Ls(i5, u), $s(a5, t, r5 + 1, n3); + } }); + } + __name($s, "$s"); + var Ds = /* @__PURE__ */ __name((e5) => e5, "Ds"); + function Ls(e5 = Ds, t = Ds) { + return (r5) => e5(t(r5)); + } + __name(Ls, "Ls"); + function qs({ dataPath: e5, modelName: t, args: r5, runtimeDataModel: n3 }) { + let i5 = { modelName: t, args: r5 ?? {} }, o3 = bp(e5); + if (!o3 || o3.length === 0) return i5; + let s2 = t, a5 = r5 ?? {}; + for (let u of o3) { + let m3 = n3.models[s2]; + if (!m3) return i5; + let P = m3.fields.find((T2) => T2.name === u); + if (!P) throw new Error(`Could not resolve relation field "${u}" on model "${s2}" from dataPath "${e5.join(".")}"`); + if (P.kind !== "object" || !P.relationName) return i5; + s2 = P.type, a5 = Pp(a5, u); + } + return { modelName: s2, args: a5 }; + } + __name(qs, "qs"); + function bp(e5) { + let t = []; + for (let r5 = 0; r5 < e5.length; r5 += 2) { + let n3 = e5[r5], i5 = e5[r5 + 1]; + if (n3 !== "select" && n3 !== "include" || i5 === void 0) return; + t.push(i5); + } + return t; + } + __name(bp, "bp"); + function Pp(e5, t) { + let r5 = e5.select?.[t]; + if (Vs(r5)) return r5; + let n3 = e5.include?.[t]; + return Vs(n3) ? n3 : {}; + } + __name(Pp, "Pp"); + function Vs(e5) { + return !!e5 && typeof e5 == "object" && !Array.isArray(e5); + } + __name(Vs, "Vs"); + var Gs = require_dist(); + var tr = require_dist(); + function vt(e5) { + return ArrayBuffer.isView(e5) && Object.prototype.toString.call(e5) === "[object Uint8Array]"; + } + __name(vt, "vt"); + function rr(e5) { + return Object.prototype.toString.call(e5) === "[object Date]"; + } + __name(rr, "rr"); + function V(e5, t) { + throw new Error(t); + } + __name(V, "V"); + function ei(e5, t) { + return e5 === t || e5 !== null && t !== null && typeof e5 == "object" && typeof t == "object" && Object.keys(e5).length === Object.keys(t).length && Object.keys(e5).every((r5) => ei(e5[r5], t[r5])); + } + __name(ei, "ei"); + function St(e5, t) { + let r5 = Object.keys(e5), n3 = Object.keys(t); + return (r5.length < n3.length ? r5 : n3).every((o3) => { + if (typeof e5[o3] == typeof t[o3] && typeof e5[o3] != "object") return e5[o3] === t[o3]; + if (tr.Decimal.isDecimal(e5[o3]) || tr.Decimal.isDecimal(t[o3])) { + let s2 = Us(e5[o3]), a5 = Us(t[o3]); + return s2 && a5 && s2.equals(a5); + } else if (vt(e5[o3]) || vt(t[o3])) { + let s2 = js(e5[o3]), a5 = js(t[o3]); + return s2 && a5 && s2.equals(a5); + } else { + if (rr(e5[o3]) || rr(t[o3])) return Bs(e5[o3])?.getTime() === Bs(t[o3])?.getTime(); + if (typeof e5[o3] == "bigint" || typeof t[o3] == "bigint") return Qs(e5[o3]) === Qs(t[o3]); + if (typeof e5[o3] == "number" || typeof t[o3] == "number") return Js(e5[o3]) === Js(t[o3]); + } + return ei(e5[o3], t[o3]); + }); + } + __name(St, "St"); + function Us(e5) { + return tr.Decimal.isDecimal(e5) ? e5 : typeof e5 == "number" || typeof e5 == "string" ? new tr.Decimal(e5) : void 0; + } + __name(Us, "Us"); + function js(e5) { + return Buffer.isBuffer(e5) ? e5 : vt(e5) ? Buffer.from(e5.buffer, e5.byteOffset, e5.byteLength) : typeof e5 == "string" ? Buffer.from(e5, "base64") : void 0; + } + __name(js, "js"); + function Bs(e5) { + return rr(e5) ? e5 : typeof e5 == "string" || typeof e5 == "number" ? new Date(e5) : void 0; + } + __name(Bs, "Bs"); + function Qs(e5) { + return typeof e5 == "bigint" ? e5 : typeof e5 == "number" || typeof e5 == "string" ? BigInt(e5) : void 0; + } + __name(Qs, "Qs"); + function Js(e5) { + return typeof e5 == "number" ? e5 : typeof e5 == "string" ? Number(e5) : void 0; + } + __name(Js, "Js"); + function Se(e5) { + return JSON.stringify(e5, (t, r5) => typeof r5 == "bigint" ? r5.toString() : ArrayBuffer.isView(r5) ? Buffer.from(r5.buffer, r5.byteOffset, r5.byteLength).toString("base64") : r5); + } + __name(Se, "Se"); + var Yn = 8192; + function Gr(e5, t) { + if (t.length <= Yn) { + e5.push(...t); + return; + } + for (let r5 = 0; r5 < t.length; r5 += Yn) e5.push(...t.slice(r5, r5 + Yn)); + } + __name(Gr, "Gr"); + function Ep(e5) { + return e5 !== null && typeof e5 == "object" && typeof e5.$type == "string"; + } + __name(Ep, "Ep"); + function Tp(e5, t) { + let r5 = {}; + for (let n3 of Object.keys(e5)) r5[n3] = t(e5[n3], n3); + return r5; + } + __name(Tp, "Tp"); + function Ae(e5) { + return e5 === null ? e5 : Array.isArray(e5) ? e5.map(Ae) : typeof e5 == "object" ? Ep(e5) ? vp(e5) : e5.constructor !== null && e5.constructor.name !== "Object" ? e5 : Tp(e5, Ae) : e5; + } + __name(Ae, "Ae"); + function vp({ $type: e5, value: t }) { + switch (e5) { + case "BigInt": + return BigInt(t); + case "Bytes": + return new Uint8Array(Buffer.from(t, "base64")); + case "DateTime": + return new Date(t); + case "Decimal": + return new Gs.Decimal(t); + case "Json": + return JSON.parse(t); + case "Raw": + return t; + case "FieldRef": + throw new Error("FieldRef tagged values cannot be deserialized to JavaScript values"); + case "Enum": + return t; + default: + V(t, "Unknown tagged value"); + } + } + __name(vp, "vp"); + function zr(e5) { + return e5.name === "DriverAdapterError" && typeof e5.cause == "object"; + } + __name(zr, "zr"); + var k5 = { Int32: 0, Int64: 1, Float: 2, Double: 3, Numeric: 4, Boolean: 5, Character: 6, Text: 7, Date: 8, Time: 9, DateTime: 10, Json: 11, Enum: 12, Bytes: 13, Set: 14, Uuid: 15, Int32Array: 64, Int64Array: 65, FloatArray: 66, DoubleArray: 67, NumericArray: 68, BooleanArray: 69, CharacterArray: 70, TextArray: 71, DateArray: 72, TimeArray: 73, DateTimeArray: 74, JsonArray: 75, EnumArray: 76, BytesArray: 77, UuidArray: 78, UnknownNumber: 128 }; + var X = class extends Error { + static { + __name(this, "X"); + } + name = "UserFacingError"; + code; + meta; + constructor(t, r5, n3) { + super(t), this.code = r5, this.meta = n3 ?? {}; + } + toQueryResponseErrorObject() { + return { error: this.message, user_facing_error: { is_panic: false, message: this.message, meta: this.meta, error_code: this.code } }; + } + }; + function Be(e5) { + if (!zr(e5)) throw e5; + let t = Cp(e5), r5 = Hs(e5); + if (t !== void 0 && r5 !== void 0) { + let n3 = { driverAdapterError: e5 }; + throw e5.cause.kind === "UniqueConstraintViolation" && e5.cause.table && (n3.table = e5.cause.table), new X(r5, t, n3); + } + throw Rp(e5.cause.kind) ? Ap(e5) : e5; + } + __name(Be, "Be"); + function ri(e5) { + throw zr(e5) ? Sp(e5) : e5; + } + __name(ri, "ri"); + function Sp(e5) { + let t = e5.cause.originalCode ?? "N/A", r5 = zs(e5); + return new X(`Raw query failed. Code: \`${t}\`. Message: \`${r5}\``, "P2010", { driverAdapterError: e5 }); + } + __name(Sp, "Sp"); + function Ap(e5) { + let t = e5.cause.originalCode ?? "N/A", r5 = zs(e5); + return new X(`Database error. Code: \`${t}\`. Message: \`${r5}\``, "P2039", { driverAdapterError: e5 }); + } + __name(Ap, "Ap"); + function zs(e5) { + return e5.cause.originalMessage ?? Hs(e5) ?? e5.message ?? "N/A"; + } + __name(zs, "zs"); + function Rp(e5) { + switch (e5) { + case "postgres": + case "mysql": + case "sqlite": + case "mssql": + return true; + default: + return false; + } + } + __name(Rp, "Rp"); + function Cp(e5) { + switch (e5.cause.kind) { + case "AuthenticationFailed": + return "P1000"; + case "DatabaseNotReachable": + return "P1001"; + case "DatabaseDoesNotExist": + return "P1003"; + case "SocketTimeout": + return "P1008"; + case "DatabaseAlreadyExists": + return "P1009"; + case "DatabaseAccessDenied": + return "P1010"; + case "TlsConnectionError": + return "P1011"; + case "ConnectionClosed": + return "P1017"; + case "TransactionAlreadyClosed": + return "P1018"; + case "LengthMismatch": + return "P2000"; + case "UniqueConstraintViolation": + return "P2002"; + case "ForeignKeyConstraintViolation": + case "RestrictViolation": + return "P2003"; + case "InvalidInputValue": + return "P2007"; + case "UnsupportedNativeDataType": + return "P2010"; + case "NullConstraintViolation": + return "P2011"; + case "ValueOutOfRange": + return "P2020"; + case "TableDoesNotExist": + return "P2021"; + case "ColumnNotFound": + return "P2022"; + case "InvalidIsolationLevel": + case "InconsistentColumnData": + return "P2023"; + case "MissingFullTextSearchIndex": + return "P2030"; + case "TransactionWriteConflict": + return "P2034"; + case "GenericJs": + return "P2036"; + case "TooManyConnections": + return "P2037"; + case "postgres": + case "sqlite": + case "mysql": + case "mssql": + return; + default: + V(e5.cause, `Unknown error: ${Se(e5.cause)}`); + } + } + __name(Cp, "Cp"); + function Hs(e5) { + switch (e5.cause.kind) { + case "AuthenticationFailed": + return `Authentication failed against the database server, the provided database credentials for \`${e5.cause.user ?? "(not available)"}\` are not valid`; + case "DatabaseNotReachable": { + let t = e5.cause.host && e5.cause.port ? `${e5.cause.host}:${e5.cause.port}` : e5.cause.host; + return `Can't reach database server${t ? ` at ${t}` : ""}`; + } + case "DatabaseDoesNotExist": + return `Database \`${e5.cause.db ?? "(not available)"}\` does not exist on the database server`; + case "SocketTimeout": + return "Operation has timed out"; + case "DatabaseAlreadyExists": + return `Database \`${e5.cause.db ?? "(not available)"}\` already exists on the database server`; + case "DatabaseAccessDenied": + return `User was denied access on the database \`${e5.cause.db ?? "(not available)"}\``; + case "TlsConnectionError": + return `Error opening a TLS connection: ${e5.cause.reason}`; + case "ConnectionClosed": + return "Server has closed the connection."; + case "TransactionAlreadyClosed": + return e5.cause.cause; + case "LengthMismatch": + return `The provided value for the column is too long for the column's type. Column: ${e5.cause.column ?? "(not available)"}`; + case "UniqueConstraintViolation": + return `Unique constraint failed on the ${ti(e5.cause.constraint)}`; + case "ForeignKeyConstraintViolation": + case "RestrictViolation": + return `Foreign key constraint violated on the ${ti(e5.cause.constraint)}`; + case "UnsupportedNativeDataType": + return `Failed to deserialize column of type '${e5.cause.type}'. If you're using $queryRaw and this column is explicitly marked as \`Unsupported\` in your Prisma schema, try casting this column to any supported Prisma type such as \`String\`.`; + case "NullConstraintViolation": + return `Null constraint violation on the ${ti(e5.cause.constraint)}`; + case "ValueOutOfRange": + return `Value out of range for the type: ${e5.cause.cause}`; + case "TableDoesNotExist": + return `The table \`${e5.cause.table ?? "(not available)"}\` does not exist in the current database.`; + case "ColumnNotFound": + return `The column \`${e5.cause.column ?? "(not available)"}\` does not exist in the current database.`; + case "InvalidIsolationLevel": + return `Error in connector: Conversion error: ${e5.cause.level}`; + case "InconsistentColumnData": + return `Inconsistent column data: ${e5.cause.cause}`; + case "MissingFullTextSearchIndex": + return "Cannot find a fulltext index to use for the native search, try adding a @@fulltext([Fields...]) to your schema"; + case "TransactionWriteConflict": + return "Transaction failed due to a write conflict or a deadlock. Please retry your transaction"; + case "GenericJs": + return `Error in external connector (id ${e5.cause.id})`; + case "TooManyConnections": + return `Too many database connections opened: ${e5.cause.cause}`; + case "InvalidInputValue": + return `Invalid input value: ${e5.cause.message}`; + case "sqlite": + case "postgres": + case "mysql": + case "mssql": + return; + default: + V(e5.cause, `Unknown error: ${Se(e5.cause)}`); + } + } + __name(Hs, "Hs"); + function ti(e5) { + return e5 && "fields" in e5 ? `fields: (${e5.fields.map((t) => `\`${t}\``).join(", ")})` : e5 && "index" in e5 ? `constraint: \`${e5.index}\`` : e5 && "foreignKey" in e5 ? "foreign key" : "(not available)"; + } + __name(ti, "ti"); + function Ip(e5) { + if (typeof e5 != "object" || e5 === null) return false; + let t = e5; + return "$type" in t && t.$type === "Param" || "prisma__type" in t && t.prisma__type === "param"; + } + __name(Ip, "Ip"); + function kp(e5) { + return "prisma__type" in e5 ? e5.prisma__value?.name : e5.value.name; + } + __name(kp, "kp"); + function Op(e5, t) { + let r5 = {}; + for (let [n3, i5] of Object.entries(e5)) if (r5[n3] = i5, Ip(i5)) { + let o3 = kp(i5); + o3 && o3 in t && (r5[n3] = t[o3]); + } + return r5; + } + __name(Op, "Op"); + function Ws(e5, t, r5 = {}) { + let n3 = e5.map((o3) => t.keys.reduce((s2, a5) => (s2[a5] = Ae(o3[a5]), s2), {})), i5 = new Set(t.nestedSelection); + return t.arguments.map((o3) => { + let s2 = Op(o3, r5), a5 = n3.findIndex((u) => St(u, s2)); + if (a5 === -1) return t.expectNonEmpty ? new X("An operation failed because it depends on one or more records that were required but not found", "P2025") : null; + { + let u = Object.entries(e5[a5]).filter(([m3]) => i5.has(m3)); + return Object.fromEntries(u); + } + }); + } + __name(Ws, "Ws"); + var Xs = require_dist(); + var Q = class extends X { + static { + __name(this, "Q"); + } + name = "DataMapperError"; + constructor(t, r5) { + super(t, "P2023", r5); + } + }; + var Ks = /* @__PURE__ */ new WeakMap(); + function Np(e5) { + let t = Ks.get(e5); + return t || (t = Object.entries(e5), Ks.set(e5, t)), t; + } + __name(Np, "Np"); + function ii(e5, t, r5) { + switch (t.type) { + case "affectedRows": + if (typeof e5 != "number") throw new Q(`Expected an affected rows count, got: ${typeof e5} (${e5})`); + return { count: e5 }; + case "object": + return oi(e5, t.fields, r5, t.skipNulls); + case "field": + return ni(e5, "", t.fieldType, r5); + default: + V(t, `Invalid data mapping type: '${t.type}'`); + } + } + __name(ii, "ii"); + function oi(e5, t, r5, n3) { + if (e5 === null) return null; + if (Array.isArray(e5)) { + let i5 = e5; + return n3 && (i5 = i5.filter((o3) => o3 !== null)), i5.map((o3) => Zs(o3, t, r5)); + } + if (typeof e5 == "object") return Zs(e5, t, r5); + if (typeof e5 == "string") { + let i5; + try { + i5 = JSON.parse(e5); + } catch (o3) { + throw new Q("Expected an array or object, got a string that is not valid JSON", { cause: o3 }); + } + return oi(i5, t, r5, n3); + } + throw new Q(`Expected an array or an object, got: ${typeof e5}`); + } + __name(oi, "oi"); + function Zs(e5, t, r5) { + if (typeof e5 != "object") throw new Q(`Expected an object, but got '${typeof e5}'`); + let n3 = {}; + for (let [i5, o3] of Np(t)) switch (o3.type) { + case "affectedRows": + throw new Q(`Unexpected 'AffectedRows' node in data mapping for field '${i5}'`); + case "object": { + let { serializedName: s2, fields: a5, skipNulls: u } = o3; + if (s2 !== null && !Object.hasOwn(e5, s2)) throw new Q(`Missing data field (Object): '${i5}'; node: ${JSON.stringify(o3)}; data: ${JSON.stringify(e5)}`); + let m3 = s2 !== null ? e5[s2] : e5; + n3[i5] = oi(m3, a5, r5, u); + break; + } + case "field": + { + let s2 = o3.dbName; + if (Object.hasOwn(e5, s2)) n3[i5] = Dp(e5[s2], s2, o3.fieldType, r5); + else throw new Q(`Missing data field (Value): '${s2}'; node: ${JSON.stringify(o3)}; data: ${JSON.stringify(e5)}`); + } + break; + default: + V(o3, `DataMapper: Invalid data mapping node type: '${o3.type}'`); + } + return n3; + } + __name(Zs, "Zs"); + function Dp(e5, t, r5, n3) { + return e5 === null ? r5.arity === "list" ? [] : null : r5.arity === "list" ? e5.map((o3, s2) => ni(o3, `${t}[${s2}]`, r5, n3)) : ni(e5, t, r5, n3); + } + __name(Dp, "Dp"); + function ni(e5, t, r5, n3) { + switch (r5.type) { + case "unsupported": + return e5; + case "string": { + if (typeof e5 != "string") throw new Q(`Expected a string in column '${t}', got ${typeof e5}: ${e5}`); + return e5; + } + case "int": + switch (typeof e5) { + case "number": + return Math.trunc(e5); + case "string": { + let i5 = Math.trunc(Number(e5)); + if (Number.isNaN(i5) || !Number.isFinite(i5)) throw new Q(`Expected an integer in column '${t}', got string: ${e5}`); + if (!Number.isSafeInteger(i5)) throw new Q(`Integer value in column '${t}' is too large to represent as a JavaScript number without loss of precision, got: ${e5}. Consider using BigInt type.`); + return i5; + } + default: + throw new Q(`Expected an integer in column '${t}', got ${typeof e5}: ${e5}`); + } + case "bigint": { + if (typeof e5 != "number" && typeof e5 != "string") throw new Q(`Expected a bigint in column '${t}', got ${typeof e5}: ${e5}`); + return { $type: "BigInt", value: e5 }; + } + case "float": { + if (typeof e5 == "number") return e5; + if (typeof e5 == "string") { + let i5 = Number(e5); + if (Number.isNaN(i5) && !/^[-+]?nan$/.test(e5.toLowerCase())) throw new Q(`Expected a float in column '${t}', got string: ${e5}`); + return i5; + } + throw new Q(`Expected a float in column '${t}', got ${typeof e5}: ${e5}`); + } + case "boolean": { + if (typeof e5 == "boolean") return e5; + if (typeof e5 == "number") return e5 === 1; + if (typeof e5 == "string") { + if (e5 === "true" || e5 === "TRUE" || e5 === "1") return true; + if (e5 === "false" || e5 === "FALSE" || e5 === "0") return false; + throw new Q(`Expected a boolean in column '${t}', got ${typeof e5}: ${e5}`); + } + if (Array.isArray(e5) || vt(e5)) { + for (let i5 of e5) if (i5 !== 0) return true; + return false; + } + throw new Q(`Expected a boolean in column '${t}', got ${typeof e5}: ${e5}`); + } + case "decimal": + if (typeof e5 != "number" && typeof e5 != "string" && !Xs.Decimal.isDecimal(e5)) throw new Q(`Expected a decimal in column '${t}', got ${typeof e5}: ${e5}`); + return { $type: "Decimal", value: e5 }; + case "datetime": { + if (typeof e5 == "string") return { $type: "DateTime", value: Fp(e5) }; + if (typeof e5 == "number" || rr(e5)) return { $type: "DateTime", value: e5 }; + throw new Q(`Expected a date in column '${t}', got ${typeof e5}: ${e5}`); + } + case "object": + return { $type: "Json", value: Se(e5) }; + case "json": + return { $type: "Json", value: `${e5}` }; + case "bytes": { + switch (r5.encoding) { + case "base64": + if (typeof e5 != "string") throw new Q(`Expected a base64-encoded byte array in column '${t}', got ${typeof e5}: ${e5}`); + return { $type: "Bytes", value: e5 }; + case "hex": + if (typeof e5 != "string" || !e5.startsWith("\\x")) throw new Q(`Expected a hex-encoded byte array in column '${t}', got ${typeof e5}: ${e5}`); + return { $type: "Bytes", value: Buffer.from(e5.slice(2), "hex").toString("base64") }; + case "array": + if (Array.isArray(e5)) return { $type: "Bytes", value: Buffer.from(e5).toString("base64") }; + if (vt(e5)) return { $type: "Bytes", value: Buffer.from(e5).toString("base64") }; + throw new Q(`Expected a byte array in column '${t}', got ${typeof e5}: ${e5}`); + default: + V(r5.encoding, `DataMapper: Unknown bytes encoding: ${r5.encoding}`); + } + break; + } + case "enum": { + let i5 = n3[r5.name]; + if (i5 === void 0) throw new Q(`Unknown enum '${r5.name}'`); + let o3 = i5[`${e5}`]; + if (o3 === void 0) throw new Q(`Value '${e5}' not found in enum '${r5.name}'`); + return o3; + } + default: + V(r5, `DataMapper: Unknown result type: ${r5.type}`); + } + } + __name(ni, "ni"); + var Mp = /\d{2}:\d{2}:\d{2}(?:\.\d+)?(Z|[+-]\d{2}(:?\d{2})?)?$/; + function Fp(e5) { + let t = Mp.exec(e5); + if (t === null) return `${e5}T00:00:00Z`; + let r5 = e5, [n3, i5, o3] = t; + if (i5 !== void 0 && i5 !== "Z" && o3 === void 0 ? r5 = `${e5}:00` : i5 === void 0 && (r5 = `${e5}Z`), n3.length === e5.length) return `1970-01-01T${r5}`; + let s2 = t.index - 1; + return r5[s2] === " " && (r5 = `${r5.slice(0, s2)}T${r5.slice(s2 + 1)}`), r5; + } + __name(Fp, "Fp"); + function ge(e5) { + if (typeof e5 != "object") return e5; + var t, r5, n3 = Object.prototype.toString.call(e5); + if (n3 === "[object Object]") { + if (e5.constructor !== Object && typeof e5.constructor == "function") { + r5 = new e5.constructor(); + for (t in e5) e5.hasOwnProperty(t) && r5[t] !== e5[t] && (r5[t] = ge(e5[t])); + } else { + r5 = {}; + for (t in e5) t === "__proto__" ? Object.defineProperty(r5, t, { value: ge(e5[t]), configurable: true, enumerable: true, writable: true }) : r5[t] = ge(e5[t]); + } + return r5; + } + if (n3 === "[object Array]") { + for (t = e5.length, r5 = Array(t); t--; ) r5[t] = ge(e5[t]); + return r5; + } + return n3 === "[object Set]" ? (r5 = /* @__PURE__ */ new Set(), e5.forEach(function(i5) { + r5.add(ge(i5)); + }), r5) : n3 === "[object Map]" ? (r5 = /* @__PURE__ */ new Map(), e5.forEach(function(i5, o3) { + r5.set(ge(o3), ge(i5)); + }), r5) : n3 === "[object Date]" ? /* @__PURE__ */ new Date(+e5) : n3 === "[object RegExp]" ? (r5 = new RegExp(e5.source, e5.flags), r5.lastIndex = e5.lastIndex, r5) : n3 === "[object DataView]" ? new e5.constructor(ge(e5.buffer)) : n3 === "[object ArrayBuffer]" ? e5.slice(0) : n3.slice(-6) === "Array]" ? new e5.constructor(e5) : e5; + } + __name(ge, "ge"); + function _p(e5) { + let t = Object.entries(e5); + return t.length === 0 ? "" : (t.sort(([n3], [i5]) => n3.localeCompare(i5)), `/*${t.map(([n3, i5]) => { + let o3 = encodeURIComponent(n3), s2 = encodeURIComponent(i5).replace(/'/g, "\\'"); + return `${o3}='${s2}'`; + }).join(",")}*/`); + } + __name(_p, "_p"); + function Hr(e5, t) { + let r5 = {}; + for (let n3 of e5) { + let i5 = n3(ge(t)); + for (let [o3, s2] of Object.entries(i5)) s2 !== void 0 && (r5[o3] = s2); + } + return r5; + } + __name(Hr, "Hr"); + function Ys(e5, t) { + let r5 = Hr(e5, t); + return _p(r5); + } + __name(Ys, "Ys"); + function ea(e5, t) { + return t ? `${e5} ${t}` : e5; + } + __name(ea, "ea"); + var nr; + (function(e5) { + e5[e5.INTERNAL = 0] = "INTERNAL", e5[e5.SERVER = 1] = "SERVER", e5[e5.CLIENT = 2] = "CLIENT", e5[e5.PRODUCER = 3] = "PRODUCER", e5[e5.CONSUMER = 4] = "CONSUMER"; + })(nr || (nr = {})); + function $p(e5) { + switch (e5) { + case "postgresql": + case "postgres": + case "prisma+postgres": + return "postgresql"; + case "sqlserver": + return "mssql"; + case "mysql": + case "sqlite": + case "cockroachdb": + case "mongodb": + return e5; + default: + V(e5, `Unknown provider: ${e5}`); + } + } + __name($p, "$p"); + async function Wr({ query: e5, tracingHelper: t, provider: r5, onQuery: n3, execute: i5 }) { + let o3 = n3 === void 0 ? i5 : async () => { + let s2 = /* @__PURE__ */ new Date(), a5 = performance.now(), u = await i5(), m3 = performance.now(); + return n3({ timestamp: s2, duration: m3 - a5, query: e5.sql, params: e5.args }), u; + }; + return t.isEnabled() ? await t.runInChildSpan({ name: "db_query", kind: nr.CLIENT, attributes: { "db.query.text": e5.sql, "db.system.name": $p(r5) } }, o3) : o3(); + } + __name(Wr, "Wr"); + function Ze(e5, t) { + var r5 = "000000000" + e5; + return r5.substr(r5.length - t); + } + __name(Ze, "Ze"); + var ta = Pe(__require("node:os"), 1); + function Lp() { + try { + return ta.default.hostname(); + } catch { + return process.env._CLUSTER_NETWORK_NAME_ || process.env.COMPUTERNAME || "hostname"; + } + } + __name(Lp, "Lp"); + var ra = 2; + var Vp = Ze(process.pid.toString(36), ra); + var na = Lp(); + var qp = na.length; + var Up = Ze(na.split("").reduce(function(e5, t) { + return +e5 + t.charCodeAt(0); + }, +qp + 36).toString(36), ra); + function si() { + return Vp + Up; + } + __name(si, "si"); + function Kr(e5) { + return typeof e5 == "string" && /^c[a-z0-9]{20,32}$/.test(e5); + } + __name(Kr, "Kr"); + function ai(e5) { + let n3 = Math.pow(36, 4), i5 = 0; + function o3() { + return Ze((Math.random() * n3 << 0).toString(36), 4); + } + __name(o3, "o"); + function s2() { + return i5 = i5 < n3 ? i5 : 0, i5++, i5 - 1; + } + __name(s2, "s"); + function a5() { + var u = "c", m3 = (/* @__PURE__ */ new Date()).getTime().toString(36), P = Ze(s2().toString(36), 4), T2 = e5(), S = o3() + o3(); + return u + m3 + P + T2 + S; + } + __name(a5, "a"); + return a5.fingerprint = e5, a5.isCuid = Kr, a5; + } + __name(ai, "ai"); + var jp = ai(si); + var ia = jp; + var Zr = BigInt(4294967295); + var oa = BigInt(32); + function Bp(e5, t = false) { + return t ? { h: Number(e5 & Zr), l: Number(e5 >> oa & Zr) } : { h: Number(e5 >> oa & Zr) | 0, l: Number(e5 & Zr) | 0 }; + } + __name(Bp, "Bp"); + function sa(e5, t = false) { + let r5 = e5.length, n3 = new Uint32Array(r5), i5 = new Uint32Array(r5); + for (let o3 = 0; o3 < r5; o3++) { + let { h: s2, l: a5 } = Bp(e5[o3], t); + [n3[o3], i5[o3]] = [s2, a5]; + } + return [n3, i5]; + } + __name(sa, "sa"); + var aa = /* @__PURE__ */ __name((e5, t, r5) => e5 << r5 | t >>> 32 - r5, "aa"); + var la = /* @__PURE__ */ __name((e5, t, r5) => t << r5 | e5 >>> 32 - r5, "la"); + var ua = /* @__PURE__ */ __name((e5, t, r5) => t << r5 - 32 | e5 >>> 64 - r5, "ua"); + var ca = /* @__PURE__ */ __name((e5, t, r5) => e5 << r5 - 32 | t >>> 64 - r5, "ca"); + function Qp(e5) { + return e5 instanceof Uint8Array || ArrayBuffer.isView(e5) && e5.constructor.name === "Uint8Array" && "BYTES_PER_ELEMENT" in e5 && e5.BYTES_PER_ELEMENT === 1; + } + __name(Qp, "Qp"); + function Xr(e5, t = "") { + if (typeof e5 != "number") { + let r5 = t && `"${t}" `; + throw new TypeError(`${r5}expected number, got ${typeof e5}`); + } + if (!Number.isSafeInteger(e5) || e5 < 0) { + let r5 = t && `"${t}" `; + throw new RangeError(`${r5}expected integer >= 0, got ${e5}`); + } + } + __name(Xr, "Xr"); + function Yr(e5, t, r5 = "") { + let n3 = Qp(e5), i5 = e5?.length, o3 = t !== void 0; + if (!n3 || o3 && i5 !== t) { + let s2 = r5 && `"${r5}" `, a5 = o3 ? ` of length ${t}` : "", u = n3 ? `length=${i5}` : `type=${typeof e5}`, m3 = s2 + "expected Uint8Array" + a5 + ", got " + u; + throw n3 ? new RangeError(m3) : new TypeError(m3); + } + return e5; + } + __name(Yr, "Yr"); + function li(e5, t = true) { + if (e5.destroyed) throw new Error("Hash instance has been destroyed"); + if (t && e5.finished) throw new Error("Hash#digest() has already been called"); + } + __name(li, "li"); + function pa(e5, t) { + Yr(e5, void 0, "digestInto() output"); + let r5 = t.outputLen; + if (e5.length < r5) throw new RangeError('"digestInto() output" expected to be of length >=' + r5); + } + __name(pa, "pa"); + function da(e5) { + return new Uint32Array(e5.buffer, e5.byteOffset, Math.floor(e5.byteLength / 4)); + } + __name(da, "da"); + function ui(...e5) { + for (let t = 0; t < e5.length; t++) e5[t].fill(0); + } + __name(ui, "ui"); + var Jp = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68; + function Gp(e5) { + return e5 << 24 & 4278190080 | e5 << 8 & 16711680 | e5 >>> 8 & 65280 | e5 >>> 24 & 255; + } + __name(Gp, "Gp"); + function zp(e5) { + for (let t = 0; t < e5.length; t++) e5[t] = Gp(e5[t]); + return e5; + } + __name(zp, "zp"); + var ci = Jp ? (e5) => e5 : zp; + function ma(e5, t = {}) { + let r5 = /* @__PURE__ */ __name((i5, o3) => e5(o3).update(i5).digest(), "r"), n3 = e5(void 0); + return r5.outputLen = n3.outputLen, r5.blockLen = n3.blockLen, r5.canXOF = n3.canXOF, r5.create = (i5) => e5(i5), Object.assign(r5, t), Object.freeze(r5); + } + __name(ma, "ma"); + var fa = /* @__PURE__ */ __name((e5) => ({ oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, e5]) }), "fa"); + var Hp = BigInt(0); + var ir = BigInt(1); + var Wp = BigInt(2); + var Kp = BigInt(7); + var Zp = BigInt(256); + var Xp = BigInt(113); + var ha = []; + var wa = []; + var xa = []; + for (let e5 = 0, t = ir, r5 = 1, n3 = 0; e5 < 24; e5++) { + [r5, n3] = [n3, (2 * r5 + 3 * n3) % 5], ha.push(2 * (5 * n3 + r5)), wa.push((e5 + 1) * (e5 + 2) / 2 % 64); + let i5 = Hp; + for (let o3 = 0; o3 < 7; o3++) t = (t << ir ^ (t >> Kp) * Xp) % Zp, t & Wp && (i5 ^= ir << (ir << BigInt(o3)) - ir); + xa.push(i5); + } + var ba = sa(xa, true); + var Yp = ba[0]; + var ed = ba[1]; + var ga = /* @__PURE__ */ __name((e5, t, r5) => r5 > 32 ? ua(e5, t, r5) : aa(e5, t, r5), "ga"); + var ya = /* @__PURE__ */ __name((e5, t, r5) => r5 > 32 ? ca(e5, t, r5) : la(e5, t, r5), "ya"); + function td(e5, t = 24) { + if (Xr(t, "rounds"), t < 1 || t > 24) throw new Error('"rounds" expected integer 1..24'); + let r5 = new Uint32Array(5 * 2); + for (let n3 = 24 - t; n3 < 24; n3++) { + for (let s2 = 0; s2 < 10; s2++) r5[s2] = e5[s2] ^ e5[s2 + 10] ^ e5[s2 + 20] ^ e5[s2 + 30] ^ e5[s2 + 40]; + for (let s2 = 0; s2 < 10; s2 += 2) { + let a5 = (s2 + 8) % 10, u = (s2 + 2) % 10, m3 = r5[u], P = r5[u + 1], T2 = ga(m3, P, 1) ^ r5[a5], S = ya(m3, P, 1) ^ r5[a5 + 1]; + for (let I = 0; I < 50; I += 10) e5[s2 + I] ^= T2, e5[s2 + I + 1] ^= S; + } + let i5 = e5[2], o3 = e5[3]; + for (let s2 = 0; s2 < 24; s2++) { + let a5 = wa[s2], u = ga(i5, o3, a5), m3 = ya(i5, o3, a5), P = ha[s2]; + i5 = e5[P], o3 = e5[P + 1], e5[P] = u, e5[P + 1] = m3; + } + for (let s2 = 0; s2 < 50; s2 += 10) { + let a5 = e5[s2], u = e5[s2 + 1], m3 = e5[s2 + 2], P = e5[s2 + 3]; + e5[s2] ^= ~e5[s2 + 2] & e5[s2 + 4], e5[s2 + 1] ^= ~e5[s2 + 3] & e5[s2 + 5], e5[s2 + 2] ^= ~e5[s2 + 4] & e5[s2 + 6], e5[s2 + 3] ^= ~e5[s2 + 5] & e5[s2 + 7], e5[s2 + 4] ^= ~e5[s2 + 6] & e5[s2 + 8], e5[s2 + 5] ^= ~e5[s2 + 7] & e5[s2 + 9], e5[s2 + 6] ^= ~e5[s2 + 8] & a5, e5[s2 + 7] ^= ~e5[s2 + 9] & u, e5[s2 + 8] ^= ~a5 & m3, e5[s2 + 9] ^= ~u & P; + } + e5[0] ^= Yp[n3], e5[1] ^= ed[n3]; + } + ui(r5); + } + __name(td, "td"); + var pi = class e5 { + static { + __name(this, "e"); + } + state; + pos = 0; + posOut = 0; + finished = false; + state32; + destroyed = false; + blockLen; + suffix; + outputLen; + canXOF; + enableXOF = false; + rounds; + constructor(t, r5, n3, i5 = false, o3 = 24) { + if (this.blockLen = t, this.suffix = r5, this.outputLen = n3, this.enableXOF = i5, this.canXOF = i5, this.rounds = o3, Xr(n3, "outputLen"), !(0 < t && t < 200)) throw new Error("only keccak-f1600 function is supported"); + this.state = new Uint8Array(200), this.state32 = da(this.state); + } + clone() { + return this._cloneInto(); + } + keccak() { + ci(this.state32), td(this.state32, this.rounds), ci(this.state32), this.posOut = 0, this.pos = 0; + } + update(t) { + li(this), Yr(t); + let { blockLen: r5, state: n3 } = this, i5 = t.length; + for (let o3 = 0; o3 < i5; ) { + let s2 = Math.min(r5 - this.pos, i5 - o3); + for (let a5 = 0; a5 < s2; a5++) n3[this.pos++] ^= t[o3++]; + this.pos === r5 && this.keccak(); + } + return this; + } + finish() { + if (this.finished) return; + this.finished = true; + let { state: t, suffix: r5, pos: n3, blockLen: i5 } = this; + t[n3] ^= r5, (r5 & 128) !== 0 && n3 === i5 - 1 && this.keccak(), t[i5 - 1] ^= 128, this.keccak(); + } + writeInto(t) { + li(this, false), Yr(t), this.finish(); + let r5 = this.state, { blockLen: n3 } = this; + for (let i5 = 0, o3 = t.length; i5 < o3; ) { + this.posOut >= n3 && this.keccak(); + let s2 = Math.min(n3 - this.posOut, o3 - i5); + t.set(r5.subarray(this.posOut, this.posOut + s2), i5), this.posOut += s2, i5 += s2; + } + return t; + } + xofInto(t) { + if (!this.enableXOF) throw new Error("XOF is not possible for this instance"); + return this.writeInto(t); + } + xof(t) { + return Xr(t), this.xofInto(new Uint8Array(t)); + } + digestInto(t) { + if (pa(t, this), this.finished) throw new Error("digest() was already called"); + this.writeInto(t.subarray(0, this.outputLen)), this.destroy(); + } + digest() { + let t = new Uint8Array(this.outputLen); + return this.digestInto(t), t; + } + destroy() { + this.destroyed = true, ui(this.state); + } + _cloneInto(t) { + let { blockLen: r5, suffix: n3, outputLen: i5, rounds: o3, enableXOF: s2 } = this; + return t ||= new e5(r5, n3, i5, s2, o3), t.blockLen = r5, t.state32.set(this.state32), t.pos = this.pos, t.posOut = this.posOut, t.finished = this.finished, t.rounds = o3, t.suffix = n3, t.outputLen = i5, t.enableXOF = s2, t.canXOF = this.canXOF, t.destroyed = this.destroyed, t; + } + }; + var rd = /* @__PURE__ */ __name((e5, t, r5, n3 = {}) => ma(() => new pi(t, e5, r5), n3), "rd"); + var Pa = rd(6, 72, 64, fa(10)); + var nd = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i; + var di = Math.ceil; + var he = Math.floor; + var le = "[BigNumber Error] "; + var Ea = le + "Number primitive has more than 15 significant digits: "; + var Re = 1e14; + var N = 14; + var mi = 9007199254740991; + var fi = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13]; + var Qe = 1e7; + var Y = 1e9; + function Ta(e5) { + var t, r5, n3, i5 = E.prototype = { constructor: E, toString: null, valueOf: null }, o3 = new E(1), s2 = 20, a5 = 4, u = -7, m3 = 21, P = -1e7, T2 = 1e7, S = false, I = 1, A = 0, M = { prefix: "", groupSize: 3, secondaryGroupSize: 0, groupSeparator: ",", decimalSeparator: ".", fractionGroupSize: 0, fractionGroupSeparator: "\xA0", suffix: "" }, L = "0123456789abcdefghijklmnopqrstuvwxyz", q3 = true; + function E(l3, c5) { + var p3, h5, f5, y, b5, d5, g5, x, w = this; + if (!(w instanceof E)) return new E(l3, c5); + if (c5 == null) { + if (l3 && l3._isBigNumber === true) { + w.s = l3.s, !l3.c || l3.e > T2 ? w.c = w.e = null : l3.e < P ? w.c = [w.e = 0] : (w.e = l3.e, w.c = l3.c.slice()); + return; + } + if ((d5 = typeof l3 == "number") && l3 * 0 == 0) { + if (w.s = 1 / l3 < 0 ? (l3 = -l3, -1) : 1, l3 === ~~l3) { + for (y = 0, b5 = l3; b5 >= 10; b5 /= 10, y++) ; + y > T2 ? w.c = w.e = null : (w.e = y, w.c = [l3]); + return; + } + x = String(l3); + } else { + if (!nd.test(x = String(l3))) return n3(w, x, d5); + w.s = x.charCodeAt(0) == 45 ? (x = x.slice(1), -1) : 1; + } + (y = x.indexOf(".")) > -1 && (x = x.replace(".", "")), (b5 = x.search(/e/i)) > 0 ? (y < 0 && (y = b5), y += +x.slice(b5 + 1), x = x.substring(0, b5)) : y < 0 && (y = x.length); + } else { + if (J(c5, 2, L.length, "Base"), c5 == 10 && q3) return w = new E(l3), ie(w, s2 + w.e + 1, a5); + if (x = String(l3), d5 = typeof l3 == "number") { + if (l3 * 0 != 0) return n3(w, x, d5, c5); + if (w.s = 1 / l3 < 0 ? (x = x.slice(1), -1) : 1, E.DEBUG && x.replace(/^0\.0*|\./, "").length > 15) throw Error(Ea + l3); + } else w.s = x.charCodeAt(0) === 45 ? (x = x.slice(1), -1) : 1; + for (p3 = L.slice(0, c5), y = b5 = 0, g5 = x.length; b5 < g5; b5++) if (p3.indexOf(h5 = x.charAt(b5)) < 0) { + if (h5 == ".") { + if (b5 > y) { + y = g5; + continue; + } + } else if (!f5 && (x == x.toUpperCase() && (x = x.toLowerCase()) || x == x.toLowerCase() && (x = x.toUpperCase()))) { + f5 = true, b5 = -1, y = 0; + continue; + } + return n3(w, String(l3), d5, c5); + } + d5 = false, x = r5(x, c5, 10, w.s), (y = x.indexOf(".")) > -1 ? x = x.replace(".", "") : y = x.length; + } + for (b5 = 0; x.charCodeAt(b5) === 48; b5++) ; + for (g5 = x.length; x.charCodeAt(--g5) === 48; ) ; + if (x = x.slice(b5, ++g5)) { + if (g5 -= b5, d5 && E.DEBUG && g5 > 15 && (l3 > mi || l3 !== he(l3))) throw Error(Ea + w.s * l3); + if ((y = y - b5 - 1) > T2) w.c = w.e = null; + else if (y < P) w.c = [w.e = 0]; + else { + if (w.e = y, w.c = [], b5 = (y + 1) % N, y < 0 && (b5 += N), b5 < g5) { + for (b5 && w.c.push(+x.slice(0, b5)), g5 -= N; b5 < g5; ) w.c.push(+x.slice(b5, b5 += N)); + b5 = N - (x = x.slice(b5)).length; + } else b5 -= g5; + for (; b5--; x += "0") ; + w.c.push(+x); + } + } else w.c = [w.e = 0]; + } + __name(E, "E"); + E.clone = Ta, E.ROUND_UP = 0, E.ROUND_DOWN = 1, E.ROUND_CEIL = 2, E.ROUND_FLOOR = 3, E.ROUND_HALF_UP = 4, E.ROUND_HALF_DOWN = 5, E.ROUND_HALF_EVEN = 6, E.ROUND_HALF_CEIL = 7, E.ROUND_HALF_FLOOR = 8, E.EUCLID = 9, E.config = E.set = function(l3) { + var c5, p3; + if (l3 != null) if (typeof l3 == "object") { + if (l3.hasOwnProperty(c5 = "DECIMAL_PLACES") && (p3 = l3[c5], J(p3, 0, Y, c5), s2 = p3), l3.hasOwnProperty(c5 = "ROUNDING_MODE") && (p3 = l3[c5], J(p3, 0, 8, c5), a5 = p3), l3.hasOwnProperty(c5 = "EXPONENTIAL_AT") && (p3 = l3[c5], p3 && p3.pop ? (J(p3[0], -Y, 0, c5), J(p3[1], 0, Y, c5), u = p3[0], m3 = p3[1]) : (J(p3, -Y, Y, c5), u = -(m3 = p3 < 0 ? -p3 : p3))), l3.hasOwnProperty(c5 = "RANGE")) if (p3 = l3[c5], p3 && p3.pop) J(p3[0], -Y, -1, c5), J(p3[1], 1, Y, c5), P = p3[0], T2 = p3[1]; + else if (J(p3, -Y, Y, c5), p3) P = -(T2 = p3 < 0 ? -p3 : p3); + else throw Error(le + c5 + " cannot be zero: " + p3); + if (l3.hasOwnProperty(c5 = "CRYPTO")) if (p3 = l3[c5], p3 === !!p3) if (p3) if (typeof crypto < "u" && crypto && (crypto.getRandomValues || crypto.randomBytes)) S = p3; + else throw S = !p3, Error(le + "crypto unavailable"); + else S = p3; + else throw Error(le + c5 + " not true or false: " + p3); + if (l3.hasOwnProperty(c5 = "MODULO_MODE") && (p3 = l3[c5], J(p3, 0, 9, c5), I = p3), l3.hasOwnProperty(c5 = "POW_PRECISION") && (p3 = l3[c5], J(p3, 0, Y, c5), A = p3), l3.hasOwnProperty(c5 = "FORMAT")) if (p3 = l3[c5], typeof p3 == "object") M = p3; + else throw Error(le + c5 + " not an object: " + p3); + if (l3.hasOwnProperty(c5 = "ALPHABET")) if (p3 = l3[c5], typeof p3 == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(p3)) q3 = p3.slice(0, 10) == "0123456789", L = p3; + else throw Error(le + c5 + " invalid: " + p3); + } else throw Error(le + "Object expected: " + l3); + return { DECIMAL_PLACES: s2, ROUNDING_MODE: a5, EXPONENTIAL_AT: [u, m3], RANGE: [P, T2], CRYPTO: S, MODULO_MODE: I, POW_PRECISION: A, FORMAT: M, ALPHABET: L }; + }, E.isBigNumber = function(l3) { + if (!l3 || l3._isBigNumber !== true) return false; + if (!E.DEBUG) return true; + var c5, p3, h5 = l3.c, f5 = l3.e, y = l3.s; + e: if ({}.toString.call(h5) == "[object Array]") { + if ((y === 1 || y === -1) && f5 >= -Y && f5 <= Y && f5 === he(f5)) { + if (h5[0] === 0) { + if (f5 === 0 && h5.length === 1) return true; + break e; + } + if (c5 = (f5 + 1) % N, c5 < 1 && (c5 += N), String(h5[0]).length == c5) { + for (c5 = 0; c5 < h5.length; c5++) if (p3 = h5[c5], p3 < 0 || p3 >= Re || p3 !== he(p3)) break e; + if (p3 !== 0) return true; + } + } + } else if (h5 === null && f5 === null && (y === null || y === 1 || y === -1)) return true; + throw Error(le + "Invalid BigNumber: " + l3); + }, E.maximum = E.max = function() { + return H(arguments, -1); + }, E.minimum = E.min = function() { + return H(arguments, 1); + }, E.random = (function() { + var l3 = 9007199254740992, c5 = Math.random() * l3 & 2097151 ? function() { + return he(Math.random() * l3); + } : function() { + return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0); + }; + return function(p3) { + var h5, f5, y, b5, d5, g5 = 0, x = [], w = new E(o3); + if (p3 == null ? p3 = s2 : J(p3, 0, Y), b5 = di(p3 / N), S) if (crypto.getRandomValues) { + for (h5 = crypto.getRandomValues(new Uint32Array(b5 *= 2)); g5 < b5; ) d5 = h5[g5] * 131072 + (h5[g5 + 1] >>> 11), d5 >= 9e15 ? (f5 = crypto.getRandomValues(new Uint32Array(2)), h5[g5] = f5[0], h5[g5 + 1] = f5[1]) : (x.push(d5 % 1e14), g5 += 2); + g5 = b5 / 2; + } else if (crypto.randomBytes) { + for (h5 = crypto.randomBytes(b5 *= 7); g5 < b5; ) d5 = (h5[g5] & 31) * 281474976710656 + h5[g5 + 1] * 1099511627776 + h5[g5 + 2] * 4294967296 + h5[g5 + 3] * 16777216 + (h5[g5 + 4] << 16) + (h5[g5 + 5] << 8) + h5[g5 + 6], d5 >= 9e15 ? crypto.randomBytes(7).copy(h5, g5) : (x.push(d5 % 1e14), g5 += 7); + g5 = b5 / 7; + } else throw S = false, Error(le + "crypto unavailable"); + if (!S) for (; g5 < b5; ) d5 = c5(), d5 < 9e15 && (x[g5++] = d5 % 1e14); + for (b5 = x[--g5], p3 %= N, b5 && p3 && (d5 = fi[N - p3], x[g5] = he(b5 / d5) * d5); x[g5] === 0; x.pop(), g5--) ; + if (g5 < 0) x = [y = 0]; + else { + for (y = -1; x[0] === 0; x.splice(0, 1), y -= N) ; + for (g5 = 1, d5 = x[0]; d5 >= 10; d5 /= 10, g5++) ; + g5 < N && (y -= N - g5); + } + return w.e = y, w.c = x, w; + }; + })(), E.sum = function() { + for (var l3 = 1, c5 = arguments, p3 = new E(c5[0]); l3 < c5.length; ) p3 = p3.plus(c5[l3++]); + return p3; + }, r5 = /* @__PURE__ */ (function() { + var l3 = "0123456789"; + function c5(p3, h5, f5, y) { + for (var b5, d5 = [0], g5, x = 0, w = p3.length; x < w; ) { + for (g5 = d5.length; g5--; d5[g5] *= h5) ; + for (d5[0] += y.indexOf(p3.charAt(x++)), b5 = 0; b5 < d5.length; b5++) d5[b5] > f5 - 1 && (d5[b5 + 1] == null && (d5[b5 + 1] = 0), d5[b5 + 1] += d5[b5] / f5 | 0, d5[b5] %= f5); + } + return d5.reverse(); + } + __name(c5, "c"); + return function(p3, h5, f5, y, b5) { + var d5, g5, x, w, v, R, C, $2, G = p3.indexOf("."), W = s2, F = a5; + for (G >= 0 && (w = A, A = 0, p3 = p3.replace(".", ""), $2 = new E(h5), R = $2.pow(p3.length - G), A = w, $2.c = c5(Le(ye(R.c), R.e, "0"), 10, f5, l3), $2.e = $2.c.length), C = c5(p3, h5, f5, b5 ? (d5 = L, l3) : (d5 = l3, L)), x = w = C.length; C[--w] == 0; C.pop()) ; + if (!C[0]) return d5.charAt(0); + if (G < 0 ? --x : (R.c = C, R.e = x, R.s = y, R = t(R, $2, W, F, f5), C = R.c, v = R.r, x = R.e), g5 = x + W + 1, G = C[g5], w = f5 / 2, v = v || g5 < 0 || C[g5 + 1] != null, v = F < 4 ? (G != null || v) && (F == 0 || F == (R.s < 0 ? 3 : 2)) : G > w || G == w && (F == 4 || v || F == 6 && C[g5 - 1] & 1 || F == (R.s < 0 ? 8 : 7)), g5 < 1 || !C[0]) p3 = v ? Le(d5.charAt(1), -W, d5.charAt(0)) : d5.charAt(0); + else { + if (C.length = g5, v) for (--f5; ++C[--g5] > f5; ) C[g5] = 0, g5 || (++x, C = [1].concat(C)); + for (w = C.length; !C[--w]; ) ; + for (G = 0, p3 = ""; G <= w; p3 += d5.charAt(C[G++])) ; + p3 = Le(p3, x, d5.charAt(0)); + } + return p3; + }; + })(), t = /* @__PURE__ */ (function() { + function l3(h5, f5, y) { + var b5, d5, g5, x, w = 0, v = h5.length, R = f5 % Qe, C = f5 / Qe | 0; + for (h5 = h5.slice(); v--; ) g5 = h5[v] % Qe, x = h5[v] / Qe | 0, b5 = C * g5 + x * R, d5 = R * g5 + b5 % Qe * Qe + w, w = (d5 / y | 0) + (b5 / Qe | 0) + C * x, h5[v] = d5 % y; + return w && (h5 = [w].concat(h5)), h5; + } + __name(l3, "l"); + function c5(h5, f5, y, b5) { + var d5, g5; + if (y != b5) g5 = y > b5 ? 1 : -1; + else for (d5 = g5 = 0; d5 < y; d5++) if (h5[d5] != f5[d5]) { + g5 = h5[d5] > f5[d5] ? 1 : -1; + break; + } + return g5; + } + __name(c5, "c"); + function p3(h5, f5, y, b5) { + for (var d5 = 0; y--; ) h5[y] -= d5, d5 = h5[y] < f5[y] ? 1 : 0, h5[y] = d5 * b5 + h5[y] - f5[y]; + for (; !h5[0] && h5.length > 1; h5.splice(0, 1)) ; + } + __name(p3, "p"); + return function(h5, f5, y, b5, d5) { + var g5, x, w, v, R, C, $2, G, W, F, U, oe, wr, Sn, An, Ce, Ot, me = h5.s == f5.s ? 1 : -1, se = h5.c, z2 = f5.c; + if (!se || !se[0] || !z2 || !z2[0]) return new E(!h5.s || !f5.s || (se ? z2 && se[0] == z2[0] : !z2) ? NaN : se && se[0] == 0 || !z2 ? me * 0 : me / 0); + for (G = new E(me), W = G.c = [], x = h5.e - f5.e, me = y + x + 1, d5 || (d5 = Re, x = we(h5.e / N) - we(f5.e / N), me = me / N | 0), w = 0; z2[w] == (se[w] || 0); w++) ; + if (z2[w] > (se[w] || 0) && x--, me < 0) W.push(1), v = true; + else { + for (Sn = se.length, Ce = z2.length, w = 0, me += 2, R = he(d5 / (z2[0] + 1)), R > 1 && (z2 = l3(z2, R, d5), se = l3(se, R, d5), Ce = z2.length, Sn = se.length), wr = Ce, F = se.slice(0, Ce), U = F.length; U < Ce; F[U++] = 0) ; + Ot = z2.slice(), Ot = [0].concat(Ot), An = z2[0], z2[1] >= d5 / 2 && An++; + do { + if (R = 0, g5 = c5(z2, F, Ce, U), g5 < 0) { + if (oe = F[0], Ce != U && (oe = oe * d5 + (F[1] || 0)), R = he(oe / An), R > 1) for (R >= d5 && (R = d5 - 1), C = l3(z2, R, d5), $2 = C.length, U = F.length; c5(C, F, $2, U) == 1; ) R--, p3(C, Ce < $2 ? Ot : z2, $2, d5), $2 = C.length, g5 = 1; + else R == 0 && (g5 = R = 1), C = z2.slice(), $2 = C.length; + if ($2 < U && (C = [0].concat(C)), p3(F, C, U, d5), U = F.length, g5 == -1) for (; c5(z2, F, Ce, U) < 1; ) R++, p3(F, Ce < U ? Ot : z2, U, d5), U = F.length; + } else g5 === 0 && (R++, F = [0]); + W[w++] = R, F[0] ? F[U++] = se[wr] || 0 : (F = [se[wr]], U = 1); + } while ((wr++ < Sn || F[0] != null) && me--); + v = F[0] != null, W[0] || W.splice(0, 1); + } + if (d5 == Re) { + for (w = 1, me = W[0]; me >= 10; me /= 10, w++) ; + ie(G, y + (G.e = w + x * N - 1) + 1, b5, v); + } else G.e = x, G.r = +v; + return G; + }; + })(); + function D(l3, c5, p3, h5) { + var f5, y, b5, d5, g5; + if (p3 == null ? p3 = a5 : J(p3, 0, 8), !l3.c) return l3.toString(); + if (f5 = l3.c[0], b5 = l3.e, c5 == null) g5 = ye(l3.c), g5 = h5 == 1 || h5 == 2 && (b5 <= u || b5 >= m3) ? tn(g5, b5) : Le(g5, b5, "0"); + else if (l3 = ie(new E(l3), c5, p3), y = l3.e, g5 = ye(l3.c), d5 = g5.length, h5 == 1 || h5 == 2 && (c5 <= y || y <= u)) { + for (; d5 < c5; g5 += "0", d5++) ; + g5 = tn(g5, y); + } else if (c5 -= b5 + (h5 === 2 && y > b5), g5 = Le(g5, y, "0"), y + 1 > d5) { + if (--c5 > 0) for (g5 += "."; c5--; g5 += "0") ; + } else if (c5 += y - d5, c5 > 0) for (y + 1 == d5 && (g5 += "."); c5--; g5 += "0") ; + return l3.s < 0 && f5 ? "-" + g5 : g5; + } + __name(D, "D"); + function H(l3, c5) { + for (var p3, h5, f5 = 1, y = new E(l3[0]); f5 < l3.length; f5++) h5 = new E(l3[f5]), (!h5.s || (p3 = Xe(y, h5)) === c5 || p3 === 0 && y.s === c5) && (y = h5); + return y; + } + __name(H, "H"); + function ce(l3, c5, p3) { + for (var h5 = 1, f5 = c5.length; !c5[--f5]; c5.pop()) ; + for (f5 = c5[0]; f5 >= 10; f5 /= 10, h5++) ; + return (p3 = h5 + p3 * N - 1) > T2 ? l3.c = l3.e = null : p3 < P ? l3.c = [l3.e = 0] : (l3.e = p3, l3.c = c5), l3; + } + __name(ce, "ce"); + n3 = /* @__PURE__ */ (function() { + var l3 = /^(-?)0([xbo])(?=\w[\w.]*$)/i, c5 = /^([^.]+)\.$/, p3 = /^\.([^.]+)$/, h5 = /^-?(Infinity|NaN)$/, f5 = /^\s*\+(?=[\w.])|^\s+|\s+$/g; + return function(y, b5, d5, g5) { + var x, w = d5 ? b5 : b5.replace(f5, ""); + if (h5.test(w)) y.s = isNaN(w) ? null : w < 0 ? -1 : 1; + else { + if (!d5 && (w = w.replace(l3, function(v, R, C) { + return x = (C = C.toLowerCase()) == "x" ? 16 : C == "b" ? 2 : 8, !g5 || g5 == x ? R : v; + }), g5 && (x = g5, w = w.replace(c5, "$1").replace(p3, "0.$1")), b5 != w)) return new E(w, x); + if (E.DEBUG) throw Error(le + "Not a" + (g5 ? " base " + g5 : "") + " number: " + b5); + y.s = null; + } + y.c = y.e = null; + }; + })(); + function ie(l3, c5, p3, h5) { + var f5, y, b5, d5, g5, x, w, v = l3.c, R = fi; + if (v) { + e: { + for (f5 = 1, d5 = v[0]; d5 >= 10; d5 /= 10, f5++) ; + if (y = c5 - f5, y < 0) y += N, b5 = c5, g5 = v[x = 0], w = he(g5 / R[f5 - b5 - 1] % 10); + else if (x = di((y + 1) / N), x >= v.length) if (h5) { + for (; v.length <= x; v.push(0)) ; + g5 = w = 0, f5 = 1, y %= N, b5 = y - N + 1; + } else break e; + else { + for (g5 = d5 = v[x], f5 = 1; d5 >= 10; d5 /= 10, f5++) ; + y %= N, b5 = y - N + f5, w = b5 < 0 ? 0 : he(g5 / R[f5 - b5 - 1] % 10); + } + if (h5 = h5 || c5 < 0 || v[x + 1] != null || (b5 < 0 ? g5 : g5 % R[f5 - b5 - 1]), h5 = p3 < 4 ? (w || h5) && (p3 == 0 || p3 == (l3.s < 0 ? 3 : 2)) : w > 5 || w == 5 && (p3 == 4 || h5 || p3 == 6 && (y > 0 ? b5 > 0 ? g5 / R[f5 - b5] : 0 : v[x - 1]) % 10 & 1 || p3 == (l3.s < 0 ? 8 : 7)), c5 < 1 || !v[0]) return v.length = 0, h5 ? (c5 -= l3.e + 1, v[0] = R[(N - c5 % N) % N], l3.e = -c5 || 0) : v[0] = l3.e = 0, l3; + if (y == 0 ? (v.length = x, d5 = 1, x--) : (v.length = x + 1, d5 = R[N - y], v[x] = b5 > 0 ? he(g5 / R[f5 - b5] % R[b5]) * d5 : 0), h5) for (; ; ) if (x == 0) { + for (y = 1, b5 = v[0]; b5 >= 10; b5 /= 10, y++) ; + for (b5 = v[0] += d5, d5 = 1; b5 >= 10; b5 /= 10, d5++) ; + y != d5 && (l3.e++, v[0] == Re && (v[0] = 1)); + break; + } else { + if (v[x] += d5, v[x] != Re) break; + v[x--] = 0, d5 = 1; + } + for (y = v.length; v[--y] === 0; v.pop()) ; + } + l3.e > T2 ? l3.c = l3.e = null : l3.e < P && (l3.c = [l3.e = 0]); + } + return l3; + } + __name(ie, "ie"); + function be(l3) { + var c5, p3 = l3.e; + return p3 === null ? l3.toString() : (c5 = ye(l3.c), c5 = p3 <= u || p3 >= m3 ? tn(c5, p3) : Le(c5, p3, "0"), l3.s < 0 ? "-" + c5 : c5); + } + __name(be, "be"); + return i5.absoluteValue = i5.abs = function() { + var l3 = new E(this); + return l3.s < 0 && (l3.s = 1), l3; + }, i5.comparedTo = function(l3, c5) { + return Xe(this, new E(l3, c5)); + }, i5.decimalPlaces = i5.dp = function(l3, c5) { + var p3, h5, f5, y = this; + if (l3 != null) return J(l3, 0, Y), c5 == null ? c5 = a5 : J(c5, 0, 8), ie(new E(y), l3 + y.e + 1, c5); + if (!(p3 = y.c)) return null; + if (h5 = ((f5 = p3.length - 1) - we(this.e / N)) * N, f5 = p3[f5]) for (; f5 % 10 == 0; f5 /= 10, h5--) ; + return h5 < 0 && (h5 = 0), h5; + }, i5.dividedBy = i5.div = function(l3, c5) { + return t(this, new E(l3, c5), s2, a5); + }, i5.dividedToIntegerBy = i5.idiv = function(l3, c5) { + return t(this, new E(l3, c5), 0, 1); + }, i5.exponentiatedBy = i5.pow = function(l3, c5) { + var p3, h5, f5, y, b5, d5, g5, x, w, v = this; + if (l3 = new E(l3), l3.c && !l3.isInteger()) throw Error(le + "Exponent not an integer: " + be(l3)); + if (c5 != null && (c5 = new E(c5)), d5 = l3.e > 14, !v.c || !v.c[0] || v.c[0] == 1 && !v.e && v.c.length == 1 || !l3.c || !l3.c[0]) return w = new E(Math.pow(+be(v), d5 ? l3.s * (2 - en(l3)) : +be(l3))), c5 ? w.mod(c5) : w; + if (g5 = l3.s < 0, c5) { + if (c5.c ? !c5.c[0] : !c5.s) return new E(NaN); + h5 = !g5 && v.isInteger() && c5.isInteger(), h5 && (v = v.mod(c5)); + } else { + if (l3.e > 9 && (v.e > 0 || v.e < -1 || (v.e == 0 ? v.c[0] > 1 || d5 && v.c[1] >= 24e7 : v.c[0] < 8e13 || d5 && v.c[0] <= 9999975e7))) return y = v.s < 0 && en(l3) ? -0 : 0, v.e > -1 && (y = 1 / y), new E(g5 ? 1 / y : y); + A && (y = di(A / N + 2)); + } + for (d5 ? (p3 = new E(0.5), g5 && (l3.s = 1), x = en(l3)) : (f5 = Math.abs(+be(l3)), x = f5 % 2), w = new E(o3); ; ) { + if (x) { + if (w = w.times(v), !w.c) break; + y ? w.c.length > y && (w.c.length = y) : h5 && (w = w.mod(c5)); + } + if (f5) { + if (f5 = he(f5 / 2), f5 === 0) break; + x = f5 % 2; + } else if (l3 = l3.times(p3), ie(l3, l3.e + 1, 1), l3.e > 14) x = en(l3); + else { + if (f5 = +be(l3), f5 === 0) break; + x = f5 % 2; + } + v = v.times(v), y ? v.c && v.c.length > y && (v.c.length = y) : h5 && (v = v.mod(c5)); + } + return h5 ? w : (g5 && (w = o3.div(w)), c5 ? w.mod(c5) : y ? ie(w, A, a5, b5) : w); + }, i5.integerValue = function(l3) { + var c5 = new E(this); + return l3 == null ? l3 = a5 : J(l3, 0, 8), ie(c5, c5.e + 1, l3); + }, i5.isEqualTo = i5.eq = function(l3, c5) { + return Xe(this, new E(l3, c5)) === 0; + }, i5.isFinite = function() { + return !!this.c; + }, i5.isGreaterThan = i5.gt = function(l3, c5) { + return Xe(this, new E(l3, c5)) > 0; + }, i5.isGreaterThanOrEqualTo = i5.gte = function(l3, c5) { + return (c5 = Xe(this, new E(l3, c5))) === 1 || c5 === 0; + }, i5.isInteger = function() { + return !!this.c && we(this.e / N) > this.c.length - 2; + }, i5.isLessThan = i5.lt = function(l3, c5) { + return Xe(this, new E(l3, c5)) < 0; + }, i5.isLessThanOrEqualTo = i5.lte = function(l3, c5) { + return (c5 = Xe(this, new E(l3, c5))) === -1 || c5 === 0; + }, i5.isNaN = function() { + return !this.s; + }, i5.isNegative = function() { + return this.s < 0; + }, i5.isPositive = function() { + return this.s > 0; + }, i5.isZero = function() { + return !!this.c && this.c[0] == 0; + }, i5.minus = function(l3, c5) { + var p3, h5, f5, y, b5 = this, d5 = b5.s; + if (l3 = new E(l3, c5), c5 = l3.s, !d5 || !c5) return new E(NaN); + if (d5 != c5) return l3.s = -c5, b5.plus(l3); + var g5 = b5.e / N, x = l3.e / N, w = b5.c, v = l3.c; + if (!g5 || !x) { + if (!w || !v) return w ? (l3.s = -c5, l3) : new E(v ? b5 : NaN); + if (!w[0] || !v[0]) return v[0] ? (l3.s = -c5, l3) : new E(w[0] ? b5 : a5 == 3 ? -0 : 0); + } + if (g5 = we(g5), x = we(x), w = w.slice(), d5 = g5 - x) { + for ((y = d5 < 0) ? (d5 = -d5, f5 = w) : (x = g5, f5 = v), f5.reverse(), c5 = d5; c5--; f5.push(0)) ; + f5.reverse(); + } else for (h5 = (y = (d5 = w.length) < (c5 = v.length)) ? d5 : c5, d5 = c5 = 0; c5 < h5; c5++) if (w[c5] != v[c5]) { + y = w[c5] < v[c5]; + break; + } + if (y && (f5 = w, w = v, v = f5, l3.s = -l3.s), c5 = (h5 = v.length) - (p3 = w.length), c5 > 0) for (; c5--; w[p3++] = 0) ; + for (c5 = Re - 1; h5 > d5; ) { + if (w[--h5] < v[h5]) { + for (p3 = h5; p3 && !w[--p3]; w[p3] = c5) ; + --w[p3], w[h5] += Re; + } + w[h5] -= v[h5]; + } + for (; w[0] == 0; w.splice(0, 1), --x) ; + return w[0] ? ce(l3, w, x) : (l3.s = a5 == 3 ? -1 : 1, l3.c = [l3.e = 0], l3); + }, i5.modulo = i5.mod = function(l3, c5) { + var p3, h5, f5 = this; + return l3 = new E(l3, c5), !f5.c || !l3.s || l3.c && !l3.c[0] ? new E(NaN) : !l3.c || f5.c && !f5.c[0] ? new E(f5) : (I == 9 ? (h5 = l3.s, l3.s = 1, p3 = t(f5, l3, 0, 3), l3.s = h5, p3.s *= h5) : p3 = t(f5, l3, 0, I), l3 = f5.minus(p3.times(l3)), !l3.c[0] && I == 1 && (l3.s = f5.s), l3); + }, i5.multipliedBy = i5.times = function(l3, c5) { + var p3, h5, f5, y, b5, d5, g5, x, w, v, R, C, $2, G, W, F = this, U = F.c, oe = (l3 = new E(l3, c5)).c; + if (!U || !oe || !U[0] || !oe[0]) return !F.s || !l3.s || U && !U[0] && !oe || oe && !oe[0] && !U ? l3.c = l3.e = l3.s = null : (l3.s *= F.s, !U || !oe ? l3.c = l3.e = null : (l3.c = [0], l3.e = 0)), l3; + for (h5 = we(F.e / N) + we(l3.e / N), l3.s *= F.s, g5 = U.length, v = oe.length, g5 < v && ($2 = U, U = oe, oe = $2, f5 = g5, g5 = v, v = f5), f5 = g5 + v, $2 = []; f5--; $2.push(0)) ; + for (G = Re, W = Qe, f5 = v; --f5 >= 0; ) { + for (p3 = 0, R = oe[f5] % W, C = oe[f5] / W | 0, b5 = g5, y = f5 + b5; y > f5; ) x = U[--b5] % W, w = U[b5] / W | 0, d5 = C * x + w * R, x = R * x + d5 % W * W + $2[y] + p3, p3 = (x / G | 0) + (d5 / W | 0) + C * w, $2[y--] = x % G; + $2[y] = p3; + } + return p3 ? ++h5 : $2.splice(0, 1), ce(l3, $2, h5); + }, i5.negated = function() { + var l3 = new E(this); + return l3.s = -l3.s || null, l3; + }, i5.plus = function(l3, c5) { + var p3, h5 = this, f5 = h5.s; + if (l3 = new E(l3, c5), c5 = l3.s, !f5 || !c5) return new E(NaN); + if (f5 != c5) return l3.s = -c5, h5.minus(l3); + var y = h5.e / N, b5 = l3.e / N, d5 = h5.c, g5 = l3.c; + if (!y || !b5) { + if (!d5 || !g5) return new E(f5 / 0); + if (!d5[0] || !g5[0]) return g5[0] ? l3 : new E(d5[0] ? h5 : f5 * 0); + } + if (y = we(y), b5 = we(b5), d5 = d5.slice(), f5 = y - b5) { + for (f5 > 0 ? (b5 = y, p3 = g5) : (f5 = -f5, p3 = d5), p3.reverse(); f5--; p3.push(0)) ; + p3.reverse(); + } + for (f5 = d5.length, c5 = g5.length, f5 - c5 < 0 && (p3 = g5, g5 = d5, d5 = p3, c5 = f5), f5 = 0; c5; ) f5 = (d5[--c5] = d5[c5] + g5[c5] + f5) / Re | 0, d5[c5] = Re === d5[c5] ? 0 : d5[c5] % Re; + return f5 && (d5 = [f5].concat(d5), ++b5), ce(l3, d5, b5); + }, i5.precision = i5.sd = function(l3, c5) { + var p3, h5, f5, y = this; + if (l3 != null && l3 !== !!l3) return J(l3, 1, Y), c5 == null ? c5 = a5 : J(c5, 0, 8), ie(new E(y), l3, c5); + if (!(p3 = y.c)) return null; + if (f5 = p3.length - 1, h5 = f5 * N + 1, f5 = p3[f5]) { + for (; f5 % 10 == 0; f5 /= 10, h5--) ; + for (f5 = p3[0]; f5 >= 10; f5 /= 10, h5++) ; + } + return l3 && y.e + 1 > h5 && (h5 = y.e + 1), h5; + }, i5.shiftedBy = function(l3) { + return J(l3, -mi, mi), this.times("1e" + l3); + }, i5.squareRoot = i5.sqrt = function() { + var l3, c5, p3, h5, f5, y = this, b5 = y.c, d5 = y.s, g5 = y.e, x = s2 + 4, w = new E("0.5"); + if (d5 !== 1 || !b5 || !b5[0]) return new E(!d5 || d5 < 0 && (!b5 || b5[0]) ? NaN : b5 ? y : 1 / 0); + if (d5 = Math.sqrt(+be(y)), d5 == 0 || d5 == 1 / 0 ? (c5 = ye(b5), (c5.length + g5) % 2 == 0 && (c5 += "0"), d5 = Math.sqrt(+c5), g5 = we((g5 + 1) / 2) - (g5 < 0 || g5 % 2), d5 == 1 / 0 ? c5 = "5e" + g5 : (c5 = d5.toExponential(), c5 = c5.slice(0, c5.indexOf("e") + 1) + g5), p3 = new E(c5)) : p3 = new E(d5 + ""), p3.c[0]) { + for (g5 = p3.e, d5 = g5 + x, d5 < 3 && (d5 = 0); ; ) if (f5 = p3, p3 = w.times(f5.plus(t(y, f5, x, 1))), ye(f5.c).slice(0, d5) === (c5 = ye(p3.c)).slice(0, d5)) if (p3.e < g5 && --d5, c5 = c5.slice(d5 - 3, d5 + 1), c5 == "9999" || !h5 && c5 == "4999") { + if (!h5 && (ie(f5, f5.e + s2 + 2, 0), f5.times(f5).eq(y))) { + p3 = f5; + break; + } + x += 4, d5 += 4, h5 = 1; + } else { + (!+c5 || !+c5.slice(1) && c5.charAt(0) == "5") && (ie(p3, p3.e + s2 + 2, 1), l3 = !p3.times(p3).eq(y)); + break; + } + } + return ie(p3, p3.e + s2 + 1, a5, l3); + }, i5.toExponential = function(l3, c5) { + return l3 != null && (J(l3, 0, Y), l3++), D(this, l3, c5, 1); + }, i5.toFixed = function(l3, c5) { + return l3 != null && (J(l3, 0, Y), l3 = l3 + this.e + 1), D(this, l3, c5); + }, i5.toFormat = function(l3, c5, p3) { + var h5, f5 = this; + if (p3 == null) l3 != null && c5 && typeof c5 == "object" ? (p3 = c5, c5 = null) : l3 && typeof l3 == "object" ? (p3 = l3, l3 = c5 = null) : p3 = M; + else if (typeof p3 != "object") throw Error(le + "Argument not an object: " + p3); + if (h5 = f5.toFixed(l3, c5), f5.c) { + var y, b5 = h5.split("."), d5 = +p3.groupSize, g5 = +p3.secondaryGroupSize, x = p3.groupSeparator || "", w = b5[0], v = b5[1], R = f5.s < 0, C = R ? w.slice(1) : w, $2 = C.length; + if (g5 && (y = d5, d5 = g5, g5 = y, $2 -= y), d5 > 0 && $2 > 0) { + for (y = $2 % d5 || d5, w = C.substr(0, y); y < $2; y += d5) w += x + C.substr(y, d5); + g5 > 0 && (w += x + C.slice(y)), R && (w = "-" + w); + } + h5 = v ? w + (p3.decimalSeparator || "") + ((g5 = +p3.fractionGroupSize) ? v.replace(new RegExp("\\d{" + g5 + "}\\B", "g"), "$&" + (p3.fractionGroupSeparator || "")) : v) : w; + } + return (p3.prefix || "") + h5 + (p3.suffix || ""); + }, i5.toFraction = function(l3) { + var c5, p3, h5, f5, y, b5, d5, g5, x, w, v, R, C = this, $2 = C.c; + if (l3 != null && (d5 = new E(l3), !d5.isInteger() && (d5.c || d5.s !== 1) || d5.lt(o3))) throw Error(le + "Argument " + (d5.isInteger() ? "out of range: " : "not an integer: ") + be(d5)); + if (!$2) return new E(C); + for (c5 = new E(o3), x = p3 = new E(o3), h5 = g5 = new E(o3), R = ye($2), y = c5.e = R.length - C.e - 1, c5.c[0] = fi[(b5 = y % N) < 0 ? N + b5 : b5], l3 = !l3 || d5.comparedTo(c5) > 0 ? y > 0 ? c5 : x : d5, b5 = T2, T2 = 1 / 0, d5 = new E(R), g5.c[0] = 0; w = t(d5, c5, 0, 1), f5 = p3.plus(w.times(h5)), f5.comparedTo(l3) != 1; ) p3 = h5, h5 = f5, x = g5.plus(w.times(f5 = x)), g5 = f5, c5 = d5.minus(w.times(f5 = c5)), d5 = f5; + return f5 = t(l3.minus(p3), h5, 0, 1), g5 = g5.plus(f5.times(x)), p3 = p3.plus(f5.times(h5)), g5.s = x.s = C.s, y = y * 2, v = t(x, h5, y, a5).minus(C).abs().comparedTo(t(g5, p3, y, a5).minus(C).abs()) < 1 ? [x, h5] : [g5, p3], T2 = b5, v; + }, i5.toNumber = function() { + return +be(this); + }, i5.toPrecision = function(l3, c5) { + return l3 != null && J(l3, 1, Y), D(this, l3, c5, 2); + }, i5.toString = function(l3) { + var c5, p3 = this, h5 = p3.s, f5 = p3.e; + return f5 === null ? h5 ? (c5 = "Infinity", h5 < 0 && (c5 = "-" + c5)) : c5 = "NaN" : (l3 == null ? c5 = f5 <= u || f5 >= m3 ? tn(ye(p3.c), f5) : Le(ye(p3.c), f5, "0") : l3 === 10 && q3 ? (p3 = ie(new E(p3), s2 + f5 + 1, a5), c5 = Le(ye(p3.c), p3.e, "0")) : (J(l3, 2, L.length, "Base"), c5 = r5(Le(ye(p3.c), f5, "0"), 10, l3, h5, true)), h5 < 0 && p3.c[0] && (c5 = "-" + c5)), c5; + }, i5.valueOf = i5.toJSON = function() { + return be(this); + }, i5._isBigNumber = true, i5[Symbol.toStringTag] = "BigNumber", i5[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = i5.valueOf, e5 != null && E.set(e5), E; + } + __name(Ta, "Ta"); + function we(e5) { + var t = e5 | 0; + return e5 > 0 || e5 === t ? t : t - 1; + } + __name(we, "we"); + function ye(e5) { + for (var t, r5, n3 = 1, i5 = e5.length, o3 = e5[0] + ""; n3 < i5; ) { + for (t = e5[n3++] + "", r5 = N - t.length; r5--; t = "0" + t) ; + o3 += t; + } + for (i5 = o3.length; o3.charCodeAt(--i5) === 48; ) ; + return o3.slice(0, i5 + 1 || 1); + } + __name(ye, "ye"); + function Xe(e5, t) { + var r5, n3, i5 = e5.c, o3 = t.c, s2 = e5.s, a5 = t.s, u = e5.e, m3 = t.e; + if (!s2 || !a5) return null; + if (r5 = i5 && !i5[0], n3 = o3 && !o3[0], r5 || n3) return r5 ? n3 ? 0 : -a5 : s2; + if (s2 != a5) return s2; + if (r5 = s2 < 0, n3 = u == m3, !i5 || !o3) return n3 ? 0 : !i5 ^ r5 ? 1 : -1; + if (!n3) return u > m3 ^ r5 ? 1 : -1; + for (a5 = (u = i5.length) < (m3 = o3.length) ? u : m3, s2 = 0; s2 < a5; s2++) if (i5[s2] != o3[s2]) return i5[s2] > o3[s2] ^ r5 ? 1 : -1; + return u == m3 ? 0 : u > m3 ^ r5 ? 1 : -1; + } + __name(Xe, "Xe"); + function J(e5, t, r5, n3) { + if (e5 < t || e5 > r5 || e5 !== he(e5)) throw Error(le + (n3 || "Argument") + (typeof e5 == "number" ? e5 < t || e5 > r5 ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(e5)); + } + __name(J, "J"); + function en(e5) { + var t = e5.c.length - 1; + return we(e5.e / N) == t && e5.c[t] % 2 != 0; + } + __name(en, "en"); + function tn(e5, t) { + return (e5.length > 1 ? e5.charAt(0) + "." + e5.slice(1) : e5) + (t < 0 ? "e" : "e+") + t; + } + __name(tn, "tn"); + function Le(e5, t, r5) { + var n3, i5; + if (t < 0) { + for (i5 = r5 + "."; ++t; i5 += r5) ; + e5 = i5 + e5; + } else if (n3 = e5.length, ++t > n3) { + for (i5 = r5, t -= n3; --t; i5 += r5) ; + e5 += i5; + } else t < n3 && (e5 = e5.slice(0, t) + "." + e5.slice(t)); + return e5; + } + __name(Le, "Le"); + var id = Ta(); + var va = id; + var od = 24; + var or = 32; + var sd = /* @__PURE__ */ __name(() => typeof globalThis < "u" && globalThis.crypto && typeof globalThis.crypto.getRandomValues == "function" ? () => { + let e5 = new Uint32Array(1); + return globalThis.crypto.getRandomValues(e5), e5[0] / 4294967296; + } : Math.random, "sd"); + var yi = sd(); + var gi = /* @__PURE__ */ __name((e5 = 4, t = yi) => { + let r5 = ""; + for (; r5.length < e5; ) r5 = r5 + Math.floor(t() * 36).toString(36); + return r5; + }, "gi"); + function ad(e5) { + let t = new va(0); + for (let r5 of e5.values()) t = t.multipliedBy(256).plus(r5); + return t; + } + __name(ad, "ad"); + var Aa = /* @__PURE__ */ __name((e5 = "") => { + let t = new TextEncoder(); + return ad(Pa(t.encode(e5))).toString(36).slice(1); + }, "Aa"); + var Sa = Array.from({ length: 26 }, (e5, t) => String.fromCharCode(t + 97)); + var ld = /* @__PURE__ */ __name((e5) => Sa[Math.floor(e5() * Sa.length)], "ld"); + var ud = /* @__PURE__ */ __name(({ globalObj: e5 = typeof global < "u" ? global : typeof window < "u" ? window : {}, random: t = yi } = {}) => { + let r5 = Object.keys(e5).toString(), n3 = r5.length ? r5 + gi(or, t) : gi(or, t); + return Aa(n3).substring(0, or); + }, "ud"); + var cd = /* @__PURE__ */ __name((e5) => () => e5++, "cd"); + var pd = 476782367; + var Ra = /* @__PURE__ */ __name(({ random: e5 = yi, counter: t = cd(Math.floor(e5() * pd)), length: r5 = od, fingerprint: n3 = ud({ random: e5 }) } = {}) => { + if (r5 > or) throw new Error(`Length must be between 2 and ${or}. Received: ${r5}`); + return function() { + let o3 = ld(e5), s2 = Date.now().toString(36), a5 = t().toString(36), u = gi(r5, e5), m3 = `${s2 + u + a5 + n3}`; + return `${o3 + Aa(m3).substring(1, r5)}`; + }; + }, "Ra"); + var hi = dd(Ra); + function dd(e5) { + let t; + return () => (t || (t = e5()), t()); + } + __name(dd, "dd"); + var wi = __require("node:crypto"); + var Ca = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; + var md = 128; + var Je; + var At; + function fd(e5) { + if (e5 < 0) throw new RangeError("Wrong ID size"); + try { + !Je || Je.length < e5 ? (Je = Buffer.allocUnsafe(e5 * md), wi.webcrypto.getRandomValues(Je), At = 0) : At + e5 > Je.length && (wi.webcrypto.getRandomValues(Je), At = 0); + } catch (t) { + throw Je = void 0, t; + } + At += e5; + } + __name(fd, "fd"); + function xi(e5 = 21) { + fd(e5 |= 0); + let t = ""; + for (let r5 = At - e5; r5 < At; r5++) t += Ca[Je[r5] & 63]; + return t; + } + __name(xi, "xi"); + var sr = Pe(__require("node:crypto"), 1); + var ka = "0123456789ABCDEFGHJKMNPQRSTVWXYZ"; + var ar = 32; + var gd = 16; + var Oa = 10; + var Ia = 281474976710655; + var Ye; + (function(e5) { + e5.Base32IncorrectEncoding = "B32_ENC_INVALID", e5.DecodeTimeInvalidCharacter = "DEC_TIME_CHAR", e5.DecodeTimeValueMalformed = "DEC_TIME_MALFORMED", e5.EncodeTimeNegative = "ENC_TIME_NEG", e5.EncodeTimeSizeExceeded = "ENC_TIME_SIZE_EXCEED", e5.EncodeTimeValueMalformed = "ENC_TIME_MALFORMED", e5.PRNGDetectFailure = "PRNG_DETECT", e5.ULIDInvalid = "ULID_INVALID", e5.Unexpected = "UNEXPECTED", e5.UUIDInvalid = "UUID_INVALID"; + })(Ye || (Ye = {})); + var et = class extends Error { + static { + __name(this, "et"); + } + constructor(t, r5) { + super(`${r5} (${t})`), this.name = "ULIDError", this.code = t; + } + }; + function yd(e5) { + let t = Math.floor(e5() * ar); + return t === ar && (t = ar - 1), ka.charAt(t); + } + __name(yd, "yd"); + function hd(e5) { + let t = wd(), r5 = t && (t.crypto || t.msCrypto) || (typeof sr.default < "u" ? sr.default : null); + if (typeof r5?.getRandomValues == "function") return () => { + let n3 = new Uint8Array(1); + return r5.getRandomValues(n3), n3[0] / 255; + }; + if (typeof r5?.randomBytes == "function") return () => r5.randomBytes(1).readUInt8() / 255; + if (sr.default?.randomBytes) return () => sr.default.randomBytes(1).readUInt8() / 255; + throw new et(Ye.PRNGDetectFailure, "Failed to find a reliable PRNG"); + } + __name(hd, "hd"); + function wd() { + return Pd() ? self : typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : null; + } + __name(wd, "wd"); + function xd(e5, t) { + let r5 = ""; + for (; e5 > 0; e5--) r5 = yd(t) + r5; + return r5; + } + __name(xd, "xd"); + function bd(e5, t = Oa) { + if (isNaN(e5)) throw new et(Ye.EncodeTimeValueMalformed, `Time must be a number: ${e5}`); + if (e5 > Ia) throw new et(Ye.EncodeTimeSizeExceeded, `Cannot encode a time larger than ${Ia}: ${e5}`); + if (e5 < 0) throw new et(Ye.EncodeTimeNegative, `Time must be positive: ${e5}`); + if (Number.isInteger(e5) === false) throw new et(Ye.EncodeTimeValueMalformed, `Time must be an integer: ${e5}`); + let r5, n3 = ""; + for (let i5 = t; i5 > 0; i5--) r5 = e5 % ar, n3 = ka.charAt(r5) + n3, e5 = (e5 - r5) / ar; + return n3; + } + __name(bd, "bd"); + function Pd() { + return typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope; + } + __name(Pd, "Pd"); + function Na(e5, t) { + let r5 = t || hd(), n3 = !e5 || isNaN(e5) ? Date.now() : e5; + return bd(n3, Oa) + xd(gd, r5); + } + __name(Na, "Na"); + var te = []; + for (let e5 = 0; e5 < 256; ++e5) te.push((e5 + 256).toString(16).slice(1)); + function rn(e5, t = 0) { + return (te[e5[t + 0]] + te[e5[t + 1]] + te[e5[t + 2]] + te[e5[t + 3]] + "-" + te[e5[t + 4]] + te[e5[t + 5]] + "-" + te[e5[t + 6]] + te[e5[t + 7]] + "-" + te[e5[t + 8]] + te[e5[t + 9]] + "-" + te[e5[t + 10]] + te[e5[t + 11]] + te[e5[t + 12]] + te[e5[t + 13]] + te[e5[t + 14]] + te[e5[t + 15]]).toLowerCase(); + } + __name(rn, "rn"); + var Ed = new Uint8Array(16); + function Rt() { + return crypto.getRandomValues(Ed); + } + __name(Rt, "Rt"); + function Td(e5, t, r5) { + return !t && !e5 && crypto.randomUUID ? crypto.randomUUID() : vd(e5, t, r5); + } + __name(Td, "Td"); + function vd(e5, t, r5) { + e5 = e5 || {}; + let n3 = e5.random ?? e5.rng?.() ?? Rt(); + if (n3.length < 16) throw new Error("Random bytes length must be >= 16"); + if (n3[6] = n3[6] & 15 | 64, n3[8] = n3[8] & 63 | 128, t) { + if (r5 = r5 || 0, r5 < 0 || r5 + 16 > t.length) throw new RangeError(`UUID byte range ${r5}:${r5 + 15} is out of buffer bounds`); + for (let i5 = 0; i5 < 16; ++i5) t[r5 + i5] = n3[i5]; + return t; + } + return rn(n3); + } + __name(vd, "vd"); + var bi = Td; + var Pi = {}; + function Sd(e5, t, r5) { + let n3; + if (e5) n3 = Da(e5.random ?? e5.rng?.() ?? Rt(), e5.msecs, e5.seq, t, r5); + else { + let i5 = Date.now(), o3 = Rt(); + Ad(Pi, i5, o3), n3 = Da(o3, Pi.msecs, Pi.seq, t, r5); + } + return t ?? rn(n3); + } + __name(Sd, "Sd"); + function Ad(e5, t, r5) { + return e5.msecs ??= -1 / 0, e5.seq ??= 0, t > e5.msecs ? (e5.seq = r5[6] << 23 | r5[7] << 16 | r5[8] << 8 | r5[9], e5.msecs = t) : (e5.seq = e5.seq + 1 | 0, e5.seq === 0 && e5.msecs++), e5; + } + __name(Ad, "Ad"); + function Da(e5, t, r5, n3, i5 = 0) { + if (e5.length < 16) throw new Error("Random bytes length must be >= 16"); + if (!n3) n3 = new Uint8Array(16), i5 = 0; + else if (i5 < 0 || i5 + 16 > n3.length) throw new RangeError(`UUID byte range ${i5}:${i5 + 15} is out of buffer bounds`); + return t ??= Date.now(), r5 ??= e5[6] * 127 << 24 | e5[7] << 16 | e5[8] << 8 | e5[9], n3[i5++] = t / 1099511627776 & 255, n3[i5++] = t / 4294967296 & 255, n3[i5++] = t / 16777216 & 255, n3[i5++] = t / 65536 & 255, n3[i5++] = t / 256 & 255, n3[i5++] = t & 255, n3[i5++] = 112 | r5 >>> 28 & 15, n3[i5++] = r5 >>> 20 & 255, n3[i5++] = 128 | r5 >>> 14 & 63, n3[i5++] = r5 >>> 6 & 255, n3[i5++] = r5 << 2 & 255 | e5[10] & 3, n3[i5++] = e5[11], n3[i5++] = e5[12], n3[i5++] = e5[13], n3[i5++] = e5[14], n3[i5++] = e5[15], n3; + } + __name(Da, "Da"); + var Ei = Sd; + var nn = class { + static { + __name(this, "nn"); + } + #e = {}; + constructor() { + this.register("uuid", new vi()), this.register("cuid", new Si()), this.register("ulid", new Ai()), this.register("nanoid", new Ri()), this.register("product", new Ci()); + } + snapshot() { + return Object.create(this.#e, { now: { value: new Ti() } }); + } + register(t, r5) { + this.#e[t] = r5; + } + }; + var Ti = class { + static { + __name(this, "Ti"); + } + #e; + generate() { + return this.#e === void 0 && (this.#e = /* @__PURE__ */ new Date()), this.#e.toISOString(); + } + }; + var vi = class { + static { + __name(this, "vi"); + } + generate(t) { + if (t === 4) return bi(); + if (t === 7) return Ei(); + throw new Error("Invalid UUID generator arguments"); + } + }; + var Si = class { + static { + __name(this, "Si"); + } + generate(t) { + if (t === 1) return ia(); + if (t === 2) return hi(); + throw new Error("Invalid CUID generator arguments"); + } + }; + var Ai = class { + static { + __name(this, "Ai"); + } + generate() { + return Na(); + } + }; + var Ri = class { + static { + __name(this, "Ri"); + } + generate(t) { + if (typeof t == "number") return xi(t); + if (t === void 0) return xi(); + throw new Error("Invalid Nanoid generator arguments"); + } + }; + var Ci = class { + static { + __name(this, "Ci"); + } + generate(t, r5) { + if (t === void 0 || r5 === void 0) throw new Error("Invalid Product generator arguments"); + return Array.isArray(t) && Array.isArray(r5) ? t.flatMap((n3) => r5.map((i5) => [n3, i5])) : Array.isArray(t) ? t.map((n3) => [n3, r5]) : Array.isArray(r5) ? r5.map((n3) => [t, n3]) : [[t, r5]]; + } + }; + function lr(e5, t) { + return e5 == null ? e5 : typeof e5 == "string" ? lr(JSON.parse(e5), t) : Array.isArray(e5) ? Cd(e5, t) : Rd(e5, t); + } + __name(lr, "lr"); + function Rd(e5, t) { + if (t.pagination) { + let { skip: r5, take: n3, cursor: i5 } = t.pagination; + if (r5 !== null && r5 > 0 || n3 === 0 || i5 !== null && !St(e5, i5)) return null; + } + return Fa(e5, t.nested); + } + __name(Rd, "Rd"); + function Fa(e5, t) { + for (let [r5, n3] of Object.entries(t)) e5[r5] = lr(e5[r5], n3); + return e5; + } + __name(Fa, "Fa"); + function Cd(e5, t) { + if (t.distinct !== null) { + let r5 = t.linkingFields !== null ? [...t.distinct, ...t.linkingFields] : t.distinct; + e5 = Id(e5, r5); + } + return t.pagination && (e5 = kd(e5, t.pagination, t.linkingFields)), t.reverse && e5.reverse(), Object.keys(t.nested).length === 0 ? e5 : e5.map((r5) => Fa(r5, t.nested)); + } + __name(Cd, "Cd"); + function Id(e5, t) { + let r5 = /* @__PURE__ */ new Set(), n3 = []; + for (let i5 of e5) { + let o3 = tt(i5, t); + r5.has(o3) || (r5.add(o3), n3.push(i5)); + } + return n3; + } + __name(Id, "Id"); + function kd(e5, t, r5) { + if (r5 === null) return Ma(e5, t); + let n3 = /* @__PURE__ */ new Map(); + for (let o3 of e5) { + let s2 = tt(o3, r5); + n3.has(s2) || n3.set(s2, []), n3.get(s2).push(o3); + } + let i5 = Array.from(n3.entries()); + return i5.sort(([o3], [s2]) => o3 < s2 ? -1 : o3 > s2 ? 1 : 0), i5.flatMap(([, o3]) => Ma(o3, t)); + } + __name(kd, "kd"); + function Ma(e5, { cursor: t, skip: r5, take: n3 }) { + let i5 = t !== null ? e5.findIndex((a5) => St(a5, t)) : 0; + if (i5 === -1) return []; + let o3 = i5 + (r5 ?? 0), s2 = n3 !== null ? o3 + n3 : e5.length; + return e5.slice(o3, s2); + } + __name(Ma, "Ma"); + function tt(e5, t, r5) { + let n3 = t.map((i5, o3) => r5?.[o3] ? e5[i5] !== null ? r5[o3](e5[i5]) : null : e5[i5]); + return JSON.stringify(n3); + } + __name(tt, "tt"); + function Ii(e5) { + return typeof e5 == "object" && e5 !== null && e5.prisma__type === "param"; + } + __name(Ii, "Ii"); + function ki(e5) { + return typeof e5 == "object" && e5 !== null && e5.prisma__type === "generatorCall"; + } + __name(ki, "ki"); + function Di(e5, t, r5, n3) { + let i5 = e5.args.map((o3) => de(o3, t, r5)); + switch (e5.type) { + case "rawSql": + return [Dd(e5.sql, i5, e5.argTypes)]; + case "templateSql": + return (e5.chunkable ? Fd(e5.fragments, i5, n3) : [i5]).map((s2) => { + let a5 = Od(e5.fragments, e5.placeholderFormat, s2, e5.argTypes); + if (n3 !== void 0 && a5.args.length > n3) throw new X("The query parameter limit supported by your database is exceeded.", "P2029"); + return a5; + }); + default: + V(e5.type, "Invalid query type"); + } + } + __name(Di, "Di"); + function de(e5, t, r5) { + for (; Md(e5); ) if (Ii(e5)) { + let n3 = t[e5.prisma__value.name]; + if (n3 === void 0) throw new Error(`Missing value for query variable ${e5.prisma__value.name}`); + e5.prisma__value.type === "DateTime" && typeof n3 == "string" ? e5 = new Date(n3) : e5 = n3; + } else if (ki(e5)) { + let { name: n3, args: i5 } = e5.prisma__value, o3 = r5[n3]; + if (!o3) throw new Error(`Encountered an unknown generator '${n3}'`); + e5 = o3.generate(...i5.map((s2) => de(s2, t, r5))); + } else V(e5, `Unexpected unevaluated value type: ${e5}`); + return Array.isArray(e5) && (e5 = e5.map((n3) => de(n3, t, r5))), e5; + } + __name(de, "de"); + function Od(e5, t, r5, n3) { + let i5 = "", o3 = { placeholderNumber: 1 }, s2 = [], a5 = []; + for (let u of Ni(e5, r5, n3)) { + if (i5 += Nd(u, t, o3), u.type === "stringChunk") continue; + let m3 = Array.from(_a4(u)), P = m3.length; + if (Gr(s2, m3), u.argType.arity === "tuple") { + if (P % u.argType.elements.length !== 0) throw new Error(`Malformed query template. Expected the number of parameters to match the tuple arity, but got ${P} parameters for a tuple of arity ${u.argType.elements.length}.`); + for (let T2 = 0; T2 < P / u.argType.elements.length; T2++) a5.push(...u.argType.elements); + } else for (let T2 = 0; T2 < P; T2++) a5.push(u.argType); + } + return { sql: i5, args: s2, argTypes: a5 }; + } + __name(Od, "Od"); + function Nd(e5, t, r5) { + let n3 = e5.type; + switch (n3) { + case "parameter": + return Oi(t, r5.placeholderNumber++); + case "stringChunk": + return e5.chunk; + case "parameterTuple": + return `(${e5.value.length == 0 ? "NULL" : e5.value.map(() => { + let o3 = Oi(t, r5.placeholderNumber++); + return `${e5.itemPrefix}${o3}${e5.itemSuffix}`; + }).join(e5.itemSeparator)})`; + case "parameterTupleList": + return e5.value.map((i5) => { + let o3 = i5.map(() => Oi(t, r5.placeholderNumber++)).join(e5.itemSeparator); + return `${e5.itemPrefix}${o3}${e5.itemSuffix}`; + }).join(e5.groupSeparator); + default: + V(n3, "Invalid fragment type"); + } + } + __name(Nd, "Nd"); + function Oi(e5, t) { + return e5.hasNumbering ? `${e5.prefix}${t}` : e5.prefix; + } + __name(Oi, "Oi"); + function Dd(e5, t, r5) { + return { sql: e5, args: t, argTypes: r5 }; + } + __name(Dd, "Dd"); + function Md(e5) { + return Ii(e5) || ki(e5); + } + __name(Md, "Md"); + function* Ni(e5, t, r5) { + let n3 = 0; + for (let i5 of e5) switch (i5.type) { + case "parameter": { + if (n3 >= t.length) throw new Error(`Malformed query template. Fragments attempt to read over ${t.length} parameters.`); + yield { ...i5, value: t[n3], argType: r5?.[n3] }, n3++; + break; + } + case "stringChunk": { + yield i5; + break; + } + case "parameterTuple": { + if (n3 >= t.length) throw new Error(`Malformed query template. Fragments attempt to read over ${t.length} parameters.`); + let o3 = t[n3]; + yield { ...i5, value: Array.isArray(o3) ? o3 : [o3], argType: r5?.[n3] }, n3++; + break; + } + case "parameterTupleList": { + if (n3 >= t.length) throw new Error(`Malformed query template. Fragments attempt to read over ${t.length} parameters.`); + let o3 = t[n3]; + if (!Array.isArray(o3)) throw new Error("Malformed query template. Tuple list expected."); + if (o3.length === 0) throw new Error("Malformed query template. Tuple list cannot be empty."); + for (let s2 of o3) if (!Array.isArray(s2)) throw new Error("Malformed query template. Tuple expected."); + yield { ...i5, value: o3, argType: r5?.[n3] }, n3++; + break; + } + } + } + __name(Ni, "Ni"); + function* _a4(e5) { + switch (e5.type) { + case "parameter": + yield e5.value; + break; + case "stringChunk": + break; + case "parameterTuple": + yield* e5.value; + break; + case "parameterTupleList": + for (let t of e5.value) yield* t; + break; + } + } + __name(_a4, "_a"); + function Fd(e5, t, r5) { + let n3 = 0, i5 = 0; + for (let s2 of Ni(e5, t, void 0)) { + let a5 = 0; + for (let u of _a4(s2)) a5++; + i5 = Math.max(i5, a5), n3 += a5; + } + let o3 = [[]]; + for (let s2 of Ni(e5, t, void 0)) switch (s2.type) { + case "parameter": { + for (let a5 of o3) a5.push(s2.value); + break; + } + case "stringChunk": + break; + case "parameterTuple": { + let a5 = s2.value.length, u = []; + if (r5 && o3.length === 1 && a5 === i5 && n3 > r5 && n3 - a5 < r5) { + let m3 = r5 - (n3 - a5); + u = _d(s2.value, m3); + } else u = [s2.value]; + o3 = o3.flatMap((m3) => u.map((P) => [...m3, P])); + break; + } + case "parameterTupleList": { + let a5 = s2.value.reduce((T2, S) => T2 + S.length, 0), u = [], m3 = [], P = 0; + for (let T2 of s2.value) r5 && o3.length === 1 && a5 === i5 && m3.length > 0 && n3 - a5 + P + T2.length > r5 && (u.push(m3), m3 = [], P = 0), m3.push(T2), P += T2.length; + m3.length > 0 && u.push(m3), o3 = o3.flatMap((T2) => u.map((S) => [...T2, S])); + break; + } + } + return o3; + } + __name(Fd, "Fd"); + function _d(e5, t) { + let r5 = []; + for (let n3 = 0; n3 < e5.length; n3 += t) r5.push(e5.slice(n3, n3 + t)); + return r5; + } + __name(_d, "_d"); + function $a(e5) { + return e5.rows.map((t) => t.reduce((r5, n3, i5) => (r5[e5.columnNames[i5]] = n3, r5), {})); + } + __name($a, "$a"); + function La(e5) { + return { columns: e5.columnNames, types: e5.columnTypes.map((t) => $d(t)), rows: e5.rows.map((t) => t.map((r5, n3) => ur(r5, e5.columnTypes[n3]))) }; + } + __name(La, "La"); + function ur(e5, t) { + if (e5 === null) return null; + switch (t) { + case k5.Int32: + switch (typeof e5) { + case "number": + return Math.trunc(e5); + case "string": + return Math.trunc(Number(e5)); + default: + throw new Error(`Cannot serialize value of type ${typeof e5} as Int32`); + } + case k5.Int32Array: + if (!Array.isArray(e5)) throw new Error(`Cannot serialize value of type ${typeof e5} as Int32Array`); + return e5.map((r5) => ur(r5, k5.Int32)); + case k5.Int64: + switch (typeof e5) { + case "number": + return BigInt(Math.trunc(e5)); + case "string": + return e5; + default: + throw new Error(`Cannot serialize value of type ${typeof e5} as Int64`); + } + case k5.Int64Array: + if (!Array.isArray(e5)) throw new Error(`Cannot serialize value of type ${typeof e5} as Int64Array`); + return e5.map((r5) => ur(r5, k5.Int64)); + case k5.Json: + switch (typeof e5) { + case "string": + return JSON.parse(e5); + default: + throw new Error(`Cannot serialize value of type ${typeof e5} as Json`); + } + case k5.JsonArray: + if (!Array.isArray(e5)) throw new Error(`Cannot serialize value of type ${typeof e5} as JsonArray`); + return e5.map((r5) => ur(r5, k5.Json)); + case k5.Boolean: + switch (typeof e5) { + case "boolean": + return e5; + case "string": + return e5 === "true" || e5 === "1"; + case "number": + return e5 === 1; + default: + throw new Error(`Cannot serialize value of type ${typeof e5} as Boolean`); + } + case k5.BooleanArray: + if (!Array.isArray(e5)) throw new Error(`Cannot serialize value of type ${typeof e5} as BooleanArray`); + return e5.map((r5) => ur(r5, k5.Boolean)); + default: + return e5; + } + } + __name(ur, "ur"); + function $d(e5) { + switch (e5) { + case k5.Int32: + return "int"; + case k5.Int64: + return "bigint"; + case k5.Float: + return "float"; + case k5.Double: + return "double"; + case k5.Text: + return "string"; + case k5.Enum: + return "enum"; + case k5.Bytes: + return "bytes"; + case k5.Boolean: + return "bool"; + case k5.Character: + return "char"; + case k5.Numeric: + return "decimal"; + case k5.Json: + return "json"; + case k5.Uuid: + return "uuid"; + case k5.DateTime: + return "datetime"; + case k5.Date: + return "date"; + case k5.Time: + return "time"; + case k5.Int32Array: + return "int-array"; + case k5.Int64Array: + return "bigint-array"; + case k5.FloatArray: + return "float-array"; + case k5.DoubleArray: + return "double-array"; + case k5.TextArray: + return "string-array"; + case k5.EnumArray: + return "string-array"; + case k5.BytesArray: + return "bytes-array"; + case k5.BooleanArray: + return "bool-array"; + case k5.CharacterArray: + return "char-array"; + case k5.NumericArray: + return "decimal-array"; + case k5.JsonArray: + return "json-array"; + case k5.UuidArray: + return "uuid-array"; + case k5.DateTimeArray: + return "datetime-array"; + case k5.DateArray: + return "date-array"; + case k5.TimeArray: + return "time-array"; + case k5.UnknownNumber: + return "unknown"; + case k5.Set: + return "string"; + default: + V(e5, `Unexpected column type: ${e5}`); + } + } + __name($d, "$d"); + function Mi(e5, t, r5) { + if (!t.every((n3) => on(e5, n3))) { + let n3 = Ld(e5, r5), i5 = Vd(r5); + throw new X(n3, i5, r5.context); + } + } + __name(Mi, "Mi"); + function on(e5, t) { + switch (t.type) { + case "rowCountEq": + return Array.isArray(e5) ? e5.length === t.args : e5 === null ? t.args === 0 : t.args === 1; + case "rowCountNeq": + return Array.isArray(e5) ? e5.length !== t.args : e5 === null ? t.args !== 0 : t.args !== 1; + case "affectedRowCountEq": + return e5 === t.args; + case "never": + return false; + default: + V(t, `Unknown rule type: ${t.type}`); + } + } + __name(on, "on"); + function Ld(e5, t) { + switch (t.errorIdentifier) { + case "RELATION_VIOLATION": + return `The change you are trying to make would violate the required relation '${t.context.relation}' between the \`${t.context.modelA}\` and \`${t.context.modelB}\` models.`; + case "MISSING_RECORD": + return `An operation failed because it depends on one or more records that were required but not found. No record was found for ${t.context.operation}.`; + case "MISSING_RELATED_RECORD": { + let r5 = t.context.neededFor ? ` (needed to ${t.context.neededFor})` : ""; + return `An operation failed because it depends on one or more records that were required but not found. No '${t.context.model}' record${r5} was found for ${t.context.operation} on ${t.context.relationType} relation '${t.context.relation}'.`; + } + case "INCOMPLETE_CONNECT_INPUT": + return `An operation failed because it depends on one or more records that were required but not found. Expected ${t.context.expectedRows} records to be connected, found only ${Array.isArray(e5) ? e5.length : e5}.`; + case "INCOMPLETE_CONNECT_OUTPUT": + return `The required connected records were not found. Expected ${t.context.expectedRows} records to be connected after connect operation on ${t.context.relationType} relation '${t.context.relation}', found ${Array.isArray(e5) ? e5.length : e5}.`; + case "RECORDS_NOT_CONNECTED": + return `The records for relation \`${t.context.relation}\` between the \`${t.context.parent}\` and \`${t.context.child}\` models are not connected.`; + default: + V(t, `Unknown error identifier: ${t}`); + } + } + __name(Ld, "Ld"); + function Vd(e5) { + switch (e5.errorIdentifier) { + case "RELATION_VIOLATION": + return "P2014"; + case "RECORDS_NOT_CONNECTED": + return "P2017"; + case "INCOMPLETE_CONNECT_OUTPUT": + return "P2018"; + case "MISSING_RECORD": + case "MISSING_RELATED_RECORD": + case "INCOMPLETE_CONNECT_INPUT": + return "P2025"; + default: + V(e5, `Unknown error identifier: ${e5}`); + } + } + __name(Vd, "Vd"); + var qd = K2("prisma:client:queryInterpreter"); + var dr = class e5 { + static { + __name(this, "e"); + } + #e; + #t = new nn(); + #r; + #i; + #o; + #s; + #a; + constructor({ onQuery: t, tracingHelper: r5, serializer: n3, rawSerializer: i5, provider: o3, connectionInfo: s2 }) { + this.#e = t, this.#r = r5, this.#i = n3, this.#o = i5 ?? n3, this.#s = o3, this.#a = s2; + } + static forSql(t) { + return new e5({ onQuery: t.onQuery, tracingHelper: t.tracingHelper, serializer: $a, rawSerializer: La, provider: t.provider, connectionInfo: t.connectionInfo }); + } + async run(t, r5) { + let n3 = this.#t.snapshot(), i5 = { ...r5, generators: n3 }, o3 = jd(t, (a5) => this.interpretNode(a5, i5))?.catch((a5) => Be(a5)); + if (o3) try { + return this.#n(await o3, i5.scope, n3).value; + } catch (a5) { + Be(a5); + } + let { value: s2 } = await this.interpretNode(t, i5).catch((a5) => Be(a5)); + return s2; + } + async interpretNode(t, r5) { + switch (t.type) { + case "value": + return { value: de(t.args, r5.scope, r5.generators), lastInsertId: t.lastInsertId }; + case "seq": { + let n3; + for (let i5 of t.args) n3 = await this.interpretNode(i5, r5); + return n3 ?? { value: void 0 }; + } + case "let": { + let n3 = Object.create(r5.scope); + for (let i5 of t.args.bindings) { + let { value: o3 } = await this.interpretNode(i5.expr, { ...r5, scope: n3 }); + n3[i5.name] = o3; + } + return this.interpretNode(t.args.expr, { ...r5, scope: n3 }); + } + case "concat": { + let n3 = await Promise.all(t.args.map((i5) => this.interpretNode(i5, r5).then((o3) => o3.value))); + return { value: n3.length > 0 ? n3.reduce((i5, o3) => i5.concat(Ct(o3)), []) : [] }; + } + case "sum": { + let n3 = await Promise.all(t.args.map((i5) => this.interpretNode(i5, r5).then((o3) => o3.value))); + return { value: n3.length > 0 ? n3.reduce((i5, o3) => xe(i5) + xe(o3)) : 0 }; + } + case "execute": { + let n3 = Di(t.args, r5.scope, r5.generators, this.#p()); + return this.#u(n3.length, r5, async (i5) => { + let o3 = 0; + for (let s2 of n3) { + let a5 = ja(s2, i5.sqlCommenter); + o3 += await this.#d(a5, i5.queryable, () => i5.queryable.executeRaw(sn(a5)).catch((u) => t.args.type === "rawSql" ? ri(u) : Be(u))); + } + return { value: o3 }; + }); + } + case "query": { + let n3 = Di(t.args, r5.scope, r5.generators, this.#p()); + return this.#u(n3.length, r5, async (i5) => { + let o3; + for (let s2 of n3) { + let a5 = ja(s2, i5.sqlCommenter), u = await this.#d(a5, i5.queryable, () => i5.queryable.queryRaw(sn(a5)).catch((m3) => t.args.type === "rawSql" ? ri(m3) : Be(m3))); + o3 === void 0 ? o3 = u : (Gr(o3.rows, u.rows), o3.lastInsertId = u.lastInsertId); + } + return { value: t.args.type === "rawSql" ? this.#o(o3) : this.#i(o3), lastInsertId: o3?.lastInsertId }; + }); + } + case "reverse": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args, r5); + return { value: Array.isArray(n3) ? n3.reverse() : n3, lastInsertId: i5 }; + } + case "unique": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args, r5); + if (!Array.isArray(n3)) return { value: n3, lastInsertId: i5 }; + if (n3.length > 1) throw new Error(`Expected zero or one element, got ${n3.length}`); + return { value: n3[0] ?? null, lastInsertId: i5 }; + } + case "required": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args, r5); + if (Fi(n3)) throw new Error("Required value is empty"); + return { value: n3, lastInsertId: i5 }; + } + case "mapField": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args.records, r5); + return { value: _i(n3, t.args.field), lastInsertId: i5 }; + } + case "join": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args.parent, r5); + if (n3 === null) return { value: null, lastInsertId: i5 }; + let o3 = await Promise.all(t.args.children.map(async (s2) => ({ joinExpr: s2, childRecords: (await this.interpretNode(s2.child, r5)).value }))); + return { value: Va(n3, o3, t.args.canAssumeStrictEquality), lastInsertId: i5 }; + } + case "transaction": + return this.#l(r5, (n3) => this.interpretNode(t.args, n3)); + case "dataMap": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args.expr, r5); + return { value: ii(n3, t.args.structure, t.args.enums), lastInsertId: i5 }; + } + case "validate": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args.expr, r5); + return Mi(n3, t.args.rules, t.args), { value: n3, lastInsertId: i5 }; + } + case "if": { + let { value: n3 } = await this.interpretNode(t.args.value, r5); + return on(n3, t.args.rule) ? await this.interpretNode(t.args.then, r5) : await this.interpretNode(t.args.else, r5); + } + case "diff": { + let { value: n3 } = await this.interpretNode(t.args.from, r5), { value: i5 } = await this.interpretNode(t.args.to, r5), o3 = /* @__PURE__ */ __name((a5) => a5 !== null ? tt(rt(a5), t.args.fields) : null, "o"), s2 = new Set(Ct(i5).map(o3)); + return { value: Ct(n3).filter((a5) => !s2.has(o3(a5))) }; + } + case "process": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args.expr, r5), o3 = sn(t.args.operations); + return $i(o3, r5.scope, r5.generators), { value: lr(n3, o3), lastInsertId: i5 }; + } + case "initializeRecord": { + let { lastInsertId: n3 } = await this.interpretNode(t.args.expr, r5), i5 = {}; + for (let [o3, s2] of Object.entries(t.args.fields)) i5[o3] = qa(s2, n3, r5.scope, r5.generators); + return { value: i5, lastInsertId: n3 }; + } + case "mapRecord": { + let { value: n3, lastInsertId: i5 } = await this.interpretNode(t.args.expr, r5), o3 = n3 === null ? {} : rt(n3); + for (let [s2, a5] of Object.entries(t.args.fields)) o3[s2] = Ua(a5, o3[s2], r5.scope, r5.generators); + return { value: o3, lastInsertId: i5 }; + } + default: + return this.#n(t, r5.scope, r5.generators); + } + } + #n(t, r5, n3) { + switch (t.type) { + case "value": + return { value: de(t.args, r5, n3), lastInsertId: t.lastInsertId }; + case "seq": { + let i5; + for (let o3 of t.args) i5 = this.#n(o3, r5, n3); + return i5 ?? { value: void 0 }; + } + case "get": + return { value: r5[t.args.name] }; + case "let": { + let i5 = Object.create(r5); + for (let o3 of t.args.bindings) { + let { value: s2 } = this.#n(o3.expr, i5, n3); + i5[o3.name] = s2; + } + return this.#n(t.args.expr, i5, n3); + } + case "getFirstNonEmpty": { + for (let i5 of t.args.names) { + let o3 = r5[i5]; + if (!Fi(o3)) return { value: o3 }; + } + return { value: [] }; + } + case "concat": { + let i5 = t.args.map((o3) => this.#n(o3, r5, n3).value); + return { value: i5.length > 0 ? i5.reduce((o3, s2) => o3.concat(Ct(s2)), []) : [] }; + } + case "sum": { + let i5 = t.args.map((o3) => this.#n(o3, r5, n3).value); + return { value: i5.length > 0 ? i5.reduce((o3, s2) => xe(o3) + xe(s2)) : 0 }; + } + case "reverse": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args, r5, n3); + return { value: Array.isArray(i5) ? i5.reverse() : i5, lastInsertId: o3 }; + } + case "unique": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args, r5, n3); + if (!Array.isArray(i5)) return { value: i5, lastInsertId: o3 }; + if (i5.length > 1) throw new Error(`Expected zero or one element, got ${i5.length}`); + return { value: i5[0] ?? null, lastInsertId: o3 }; + } + case "required": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args, r5, n3); + if (Fi(i5)) throw new Error("Required value is empty"); + return { value: i5, lastInsertId: o3 }; + } + case "mapField": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args.records, r5, n3); + return { value: _i(i5, t.args.field), lastInsertId: o3 }; + } + case "join": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args.parent, r5, n3); + if (i5 === null) return { value: null, lastInsertId: o3 }; + let s2 = t.args.children.map((a5) => ({ joinExpr: a5, childRecords: this.#n(a5.child, r5, n3).value })); + return { value: Va(i5, s2, t.args.canAssumeStrictEquality), lastInsertId: o3 }; + } + case "dataMap": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args.expr, r5, n3); + return { value: ii(i5, t.args.structure, t.args.enums), lastInsertId: o3 }; + } + case "validate": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args.expr, r5, n3); + return Mi(i5, t.args.rules, t.args), { value: i5, lastInsertId: o3 }; + } + case "if": { + let { value: i5 } = this.#n(t.args.value, r5, n3); + return on(i5, t.args.rule) ? this.#n(t.args.then, r5, n3) : this.#n(t.args.else, r5, n3); + } + case "unit": + return { value: void 0 }; + case "diff": { + let { value: i5 } = this.#n(t.args.from, r5, n3), { value: o3 } = this.#n(t.args.to, r5, n3), s2 = /* @__PURE__ */ __name((u) => u !== null ? tt(rt(u), t.args.fields) : null, "s"), a5 = new Set(Ct(o3).map(s2)); + return { value: Ct(i5).filter((u) => !a5.has(s2(u))) }; + } + case "process": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args.expr, r5, n3), s2 = sn(t.args.operations); + return $i(s2, r5, n3), { value: lr(i5, s2), lastInsertId: o3 }; + } + case "initializeRecord": { + let { lastInsertId: i5 } = this.#n(t.args.expr, r5, n3), o3 = {}; + for (let [s2, a5] of Object.entries(t.args.fields)) o3[s2] = qa(a5, i5, r5, n3); + return { value: o3, lastInsertId: i5 }; + } + case "mapRecord": { + let { value: i5, lastInsertId: o3 } = this.#n(t.args.expr, r5, n3), s2 = i5 === null ? {} : rt(i5); + for (let [a5, u] of Object.entries(t.args.fields)) s2[a5] = Ua(u, s2[a5], r5, n3); + return { value: s2, lastInsertId: o3 }; + } + default: + V(t, `Unexpected node type: ${t.type}`); + } + } + #u(t, r5, n3) { + return t <= 1 ? n3(r5) : this.#l(r5, n3); + } + async #l(t, r5) { + if (!t.transactionManager.enabled) return r5(t); + let n3 = t.transactionManager.manager, i5 = await n3.startInternalTransaction(), o3 = await n3.getTransaction(i5, "query"); + try { + let s2 = await r5({ ...t, queryable: o3, transactionManager: { enabled: false } }); + return await n3.commitTransaction(i5.id), s2; + } catch (s2) { + try { + await n3.rollbackTransaction(i5.id); + } catch (a5) { + qd("failed to roll back an internal transaction", a5); + } + throw s2; + } + } + #p() { + return this.#a?.maxBindValues !== void 0 ? this.#a.maxBindValues : this.#c(); + } + #c() { + if (this.#s !== void 0) switch (this.#s) { + case "cockroachdb": + case "postgres": + case "postgresql": + case "prisma+postgres": + return 32766; + case "mysql": + return 65535; + case "sqlite": + return 999; + case "sqlserver": + return 2098; + case "mongodb": + return; + default: + V(this.#s, `Unexpected provider: ${this.#s}`); + } + } + #d(t, r5, n3) { + return Wr({ query: t, execute: n3, provider: this.#s ?? r5.provider, tracingHelper: this.#r, onQuery: this.#e }); + } + }; + function Fi(e5) { + return Array.isArray(e5) ? e5.length === 0 : e5 == null; + } + __name(Fi, "Fi"); + function Ct(e5) { + return Array.isArray(e5) ? e5 : [e5]; + } + __name(Ct, "Ct"); + function xe(e5) { + if (typeof e5 == "number") return e5; + if (typeof e5 == "string") return Number(e5); + throw new Error(`Expected number, got ${typeof e5}`); + } + __name(xe, "xe"); + function rt(e5) { + if (typeof e5 == "object" && e5 !== null) return e5; + throw new Error(`Expected object, got ${typeof e5}`); + } + __name(rt, "rt"); + function _i(e5, t) { + return Array.isArray(e5) ? e5.map((r5) => _i(r5, t)) : typeof e5 == "object" && e5 !== null ? e5[t] ?? null : e5; + } + __name(_i, "_i"); + function Va(e5, t, r5) { + for (let { joinExpr: n3, childRecords: i5 } of t) { + let o3 = n3.on.map(([P]) => P), s2 = n3.on.map(([, P]) => P), a5 = {}, u = Array.isArray(e5) ? e5 : [e5]; + for (let P of u) { + let T2 = rt(P), S = tt(T2, o3); + a5[S] || (a5[S] = []), a5[S].push(T2), n3.isRelationUnique ? T2[n3.parentField] = null : T2[n3.parentField] = []; + } + let m3 = r5 ? void 0 : Ud(u, o3); + for (let P of Array.isArray(i5) ? i5 : [i5]) { + if (P === null) continue; + let T2 = tt(rt(P), s2, m3); + for (let S of a5[T2] ?? []) n3.isRelationUnique ? S[n3.parentField] = P : S[n3.parentField].push(P); + } + } + return e5; + } + __name(Va, "Va"); + function Ud(e5, t) { + function r5(o3) { + switch (o3) { + case "number": + return Number; + case "string": + return String; + case "boolean": + return Boolean; + case "bigint": + return BigInt; + default: + return; + } + } + __name(r5, "r"); + let n3 = Array.from({ length: t.length }), i5 = 0; + for (let o3 of e5) { + let s2 = rt(o3); + for (let [a5, u] of t.entries()) if (s2[u] !== null && n3[a5] === void 0) { + let m3 = r5(typeof s2[u]); + m3 !== void 0 && (n3[a5] = m3), i5++; + } + if (i5 === t.length) break; + } + return n3; + } + __name(Ud, "Ud"); + function qa(e5, t, r5, n3) { + switch (e5.type) { + case "value": + return de(e5.value, r5, n3); + case "lastInsertId": + return t; + default: + V(e5, `Unexpected field initializer type: ${e5.type}`); + } + } + __name(qa, "qa"); + function Ua(e5, t, r5, n3) { + switch (e5.type) { + case "set": + return de(e5.value, r5, n3); + case "add": + return xe(t) + xe(de(e5.value, r5, n3)); + case "subtract": + return xe(t) - xe(de(e5.value, r5, n3)); + case "multiply": + return xe(t) * xe(de(e5.value, r5, n3)); + case "divide": { + let i5 = xe(t), o3 = xe(de(e5.value, r5, n3)); + return o3 === 0 ? null : i5 / o3; + } + default: + V(e5, `Unexpected field operation type: ${e5.type}`); + } + } + __name(Ua, "Ua"); + function jd(e5, t) { + let r5 = pr(e5); + if (r5) return t(r5).then((n3) => { + let i5 = { type: "value", args: n3.value, lastInsertId: n3.lastInsertId }, o3 = cr(e5, r5, i5); + if (!o3) throw new Error("Could not substitute the evaluated impure node into the query plan"); + return o3; + }); + } + __name(jd, "jd"); + function cr(e5, t, r5) { + if (e5 === t) return r5; + switch (e5.type) { + case "seq": + case "sum": + case "concat": { + for (let n3 = 0; n3 < e5.args.length; n3++) { + let i5 = cr(e5.args[n3], t, r5); + if (i5) return { ...e5, args: e5.args.map((o3, s2) => s2 === n3 ? i5 : o3) }; + } + return; + } + case "dataMap": + case "validate": + case "initializeRecord": + case "mapRecord": + case "process": { + let n3 = cr(e5.args.expr, t, r5); + return n3 && { ...e5, args: { ...e5.args, expr: n3 } }; + } + case "mapField": { + let n3 = cr(e5.args.records, t, r5); + return n3 && { ...e5, args: { ...e5.args, records: n3 } }; + } + case "reverse": + case "unique": + case "required": { + let n3 = cr(e5.args, t, r5); + return n3 && { ...e5, args: n3 }; + } + default: + return; + } + } + __name(cr, "cr"); + function pr(e5) { + switch (e5.type) { + case "query": + case "execute": + return e5; + case "seq": + case "sum": + case "concat": { + let t; + for (let r5 of e5.args) { + let n3 = pr(r5); + if (n3 === null) return null; + if (n3) { + if (t) return null; + t = n3; + } + } + return t; + } + case "dataMap": + case "validate": + case "initializeRecord": + case "mapRecord": + case "process": + return pr(e5.args.expr); + case "mapField": + return pr(e5.args.records); + case "reverse": + case "unique": + case "required": + return pr(e5.args); + case "let": + case "join": + case "diff": + case "if": + case "transaction": + return null; + case "value": + case "get": + case "getFirstNonEmpty": + case "unit": + return; + default: + V(e5, `Unexpected node type: ${e5.type}`); + } + } + __name(pr, "pr"); + function ja(e5, t) { + if (!t || t.plugins.length === 0) return e5; + let r5 = Ys(t.plugins, { query: t.queryInfo, sql: e5.sql }); + return r5 ? { ...e5, sql: ea(e5.sql, r5) } : e5; + } + __name(ja, "ja"); + function $i(e5, t, r5) { + let n3 = e5.pagination?.cursor; + if (n3) for (let [i5, o3] of Object.entries(n3)) n3[i5] = de(o3, t, r5); + for (let i5 of Object.values(e5.nested)) $i(i5, t, r5); + } + __name($i, "$i"); + function sn(e5) { + return ge(e5); + } + __name(sn, "sn"); + function Ba(e5) { + return new Li(e5).deserialize(); + } + __name(Ba, "Ba"); + function Bd(e5) { + return Buffer.from(e5, "base64url"); + } + __name(Bd, "Bd"); + var Li = class { + static { + __name(this, "Li"); + } + #e; + #t; + #r = 0; + constructor(t) { + this.#e = t; + let r5 = Bd(t.graph); + this.#t = new DataView(r5.buffer, r5.byteOffset, r5.byteLength); + } + deserialize() { + let { inputNodeCount: t, outputNodeCount: r5, rootCount: n3 } = this.#n(), i5 = this.#u(t), o3 = this.#l(r5), s2 = this.#p(n3); + return { strings: this.#e.strings, inputNodes: i5, outputNodes: o3, roots: s2 }; + } + #i() { + let t = 0, r5 = 0, n3; + do + n3 = this.#t.getUint8(this.#r++), t |= (n3 & 127) << r5, r5 += 7; + while (n3 >= 128); + return t; + } + #o() { + let t = this.#i(); + return t === 0 ? void 0 : t - 1; + } + #s() { + let t = this.#t.getUint8(this.#r); + return this.#r += 1, t; + } + #a() { + let t = this.#t.getUint16(this.#r, true); + return this.#r += 2, t; + } + #n() { + let t = this.#i(), r5 = this.#i(), n3 = this.#i(); + return { inputNodeCount: t, outputNodeCount: r5, rootCount: n3 }; + } + #u(t) { + let r5 = []; + for (let n3 = 0; n3 < t; n3++) { + let i5 = this.#i(), o3 = {}; + for (let s2 = 0; s2 < i5; s2++) { + let a5 = this.#i(), u = this.#a(), m3 = this.#o(), P = this.#o(), S = { flags: this.#s() }; + u !== 0 && (S.scalarMask = u), m3 !== void 0 && (S.childNodeId = m3), P !== void 0 && (S.enumNameIndex = P), o3[a5] = S; + } + r5.push({ edges: o3 }); + } + return r5; + } + #l(t) { + let r5 = []; + for (let n3 = 0; n3 < t; n3++) { + let i5 = this.#i(), o3 = {}; + for (let s2 = 0; s2 < i5; s2++) { + let a5 = this.#i(), u = this.#o(), m3 = this.#o(), P = {}; + u !== void 0 && (P.argsNodeId = u), m3 !== void 0 && (P.outputNodeId = m3), o3[a5] = P; + } + r5.push({ edges: o3 }); + } + return r5; + } + #p(t) { + let r5 = {}; + for (let n3 = 0; n3 < t; n3++) { + let i5 = this.#i(), o3 = this.#o(), s2 = this.#o(), a5 = this.#e.strings[i5], u = {}; + o3 !== void 0 && (u.argsNodeId = o3), s2 !== void 0 && (u.outputNodeId = s2), r5[a5] = u; + } + return r5; + } + }; + var mr = class e5 { + static { + __name(this, "e"); + } + #e; + #t; + #r; + constructor(t, r5) { + this.#e = t, this.#r = r5, this.#t = /* @__PURE__ */ new Map(); + for (let n3 = 0; n3 < t.strings.length; n3++) this.#t.set(t.strings[n3], n3); + } + static deserialize(t, r5) { + let n3 = Ba(t); + return new e5(n3, r5); + } + static fromData(t, r5) { + return new e5(t, r5); + } + root(t) { + let r5 = this.#e.roots[t]; + if (r5) return { argsNodeId: r5.argsNodeId, outputNodeId: r5.outputNodeId }; + } + inputNode(t) { + if (!(t === void 0 || t < 0 || t >= this.#e.inputNodes.length)) return { id: t }; + } + outputNode(t) { + if (!(t === void 0 || t < 0 || t >= this.#e.outputNodes.length)) return { id: t }; + } + inputEdge(t, r5) { + if (!t) return; + let n3 = this.#e.inputNodes[t.id]; + if (!n3) return; + let i5 = this.#t.get(r5); + if (i5 === void 0) return; + let o3 = n3.edges[i5]; + if (o3) return { flags: o3.flags, childNodeId: o3.childNodeId, scalarMask: o3.scalarMask ?? 0, enumNameIndex: o3.enumNameIndex }; + } + outputEdge(t, r5) { + if (!t) return; + let n3 = this.#e.outputNodes[t.id]; + if (!n3) return; + let i5 = this.#t.get(r5); + if (i5 === void 0) return; + let o3 = n3.edges[i5]; + if (o3) return { argsNodeId: o3.argsNodeId, outputNodeId: o3.outputNodeId }; + } + enumValues(t) { + if (t?.enumNameIndex === void 0) return; + let r5 = this.#e.strings[t.enumNameIndex]; + if (r5) return this.#r(r5); + } + getString(t) { + return this.#e.strings[t]; + } + }; + var Ne = { ParamScalar: 1, ParamEnum: 2, ParamListScalar: 4, ParamListEnum: 8, ListObject: 16, Object: 32 }; + var re = { String: 1, Int: 2, BigInt: 4, Float: 8, Decimal: 16, Boolean: 32, DateTime: 64, Json: 128, Bytes: 256 }; + function De(e5, t) { + return (e5.flags & t) !== 0; + } + __name(De, "De"); + function Ge(e5) { + return e5.scalarMask; + } + __name(Ge, "Ge"); + var Qd = /* @__PURE__ */ new Set(["DateTime", "Decimal", "BigInt", "Bytes", "Json", "Raw"]); + function an(e5) { + if (e5 == null) return { kind: "null" }; + if (typeof e5 == "string") return { kind: "primitive", value: e5 }; + if (typeof e5 == "number") return { kind: "primitive", value: e5 }; + if (typeof e5 == "boolean") return { kind: "primitive", value: e5 }; + if (Array.isArray(e5)) return { kind: "array", items: e5 }; + if (typeof e5 == "object") { + let t = e5; + if ("$type" in t && typeof t.$type == "string") { + let r5 = t.$type; + return Qd.has(r5) ? { kind: "taggedScalar", tag: r5, value: t.value } : { kind: "structural", value: t.value }; + } + return { kind: "object", entries: t }; + } + return { kind: "structural", value: e5 }; + } + __name(an, "an"); + function Qa(e5) { + return typeof e5 == "object" && e5 !== null && !Array.isArray(e5) && !("$type" in e5); + } + __name(Qa, "Qa"); + function Ja(e5) { + return typeof e5 == "object" && e5 !== null && "$type" in e5 && typeof e5.$type == "string"; + } + __name(Ja, "Ja"); + function Vi(e5, t) { + let r5 = new ln(t), n3 = e5.modelName ? `${e5.modelName}.${e5.action}` : e5.action, i5 = t.root(n3); + return { parameterizedQuery: { ...e5, query: r5.parameterizeFieldSelection(e5.query, i5?.argsNodeId, i5?.outputNodeId) }, placeholderValues: r5.getPlaceholderValues() }; + } + __name(Vi, "Vi"); + function qi(e5, t) { + let r5 = new ln(t), n3 = []; + for (let i5 = 0; i5 < e5.batch.length; i5++) { + let o3 = e5.batch[i5], s2 = o3.modelName ? `${o3.modelName}.${o3.action}` : o3.action, a5 = t.root(s2); + n3.push({ ...o3, query: r5.parameterizeFieldSelection(o3.query, a5?.argsNodeId, a5?.outputNodeId) }); + } + return { parameterizedBatch: { ...e5, batch: n3 }, placeholderValues: r5.getPlaceholderValues() }; + } + __name(qi, "qi"); + var ln = class { + static { + __name(this, "ln"); + } + #e; + #t = /* @__PURE__ */ new Map(); + #r = /* @__PURE__ */ new Map(); + #i = 1; + constructor(t) { + this.#e = t; + } + getPlaceholderValues() { + return Object.fromEntries(this.#t); + } + #o(t, r5) { + let n3 = Gd(t, r5), i5 = this.#r.get(n3); + if (i5 !== void 0) return Ga(i5, r5); + let o3 = `%${this.#i++}`; + return this.#r.set(n3, o3), this.#t.set(o3, t), Ga(o3, r5); + } + parameterizeFieldSelection(t, r5, n3) { + let i5 = this.#e.inputNode(r5), o3 = this.#e.outputNode(n3), s2 = { ...t }; + return t.arguments && t.arguments.$type !== "Raw" && (s2.arguments = this.#s(t.arguments, i5)), t.selection && (s2.selection = this.#c(t.selection, o3)), s2; + } + #s(t, r5) { + if (!r5) return t; + let n3 = {}; + for (let [i5, o3] of Object.entries(t)) { + let s2 = this.#e.inputEdge(r5, i5); + s2 ? n3[i5] = this.#a(o3, s2) : n3[i5] = o3; + } + return n3; + } + #a(t, r5) { + let n3 = an(t); + switch (n3.kind) { + case "null": + return t; + case "structural": + return t; + case "primitive": + return this.#n(n3.value, r5); + case "taggedScalar": + return this.#u(t, n3.tag, r5); + case "array": + return this.#l(n3.items, t, r5); + case "object": + return this.#p(n3.entries, r5); + default: + throw new Error(`Unknown value kind ${n3.kind}`); + } + } + #n(t, r5) { + if (De(r5, Ne.ParamEnum) && r5.enumNameIndex !== void 0 && typeof t == "string") { + let o3 = this.#e.enumValues(r5); + if (o3 && Object.hasOwn(o3, t)) { + let s2 = { type: "Enum" }; + return this.#o(o3[t], s2); + } + } + if (!De(r5, Ne.ParamScalar)) return t; + let n3 = Ge(r5); + if (n3 === 0) return t; + let i5 = Ui(t); + return Ha(i5, n3) ? (n3 & re.Json && (t = JSON.stringify(t)), this.#o(t, i5)) : t; + } + #u(t, r5, n3) { + if (!De(n3, Ne.ParamScalar)) return t; + let i5 = Ge(n3); + if (i5 === 0 || !Ka(r5, i5)) return t; + let o3 = Wa(t.$type), s2 = Za(t); + return this.#o(s2, o3); + } + #l(t, r5, n3) { + if (De(n3, Ne.ParamScalar) && Ge(n3) & re.Json) { + let i5 = Se(Ae(t)), o3 = { type: "Json" }; + return this.#o(i5, o3); + } + if (De(n3, Ne.ParamEnum)) { + let i5 = this.#e.enumValues(n3); + if (i5 && t.every((o3) => typeof o3 == "string" && Object.hasOwn(i5, o3))) { + let o3 = { type: "List", inner: { type: "Enum" } }; + return this.#o(t, o3); + } + } + if (De(n3, Ne.ParamListScalar) && t.every((o3) => Zd(o3, n3)) && t.length > 0) { + let o3 = t.map((u) => Xd(u)), a5 = { type: "List", inner: Wd(t) }; + return this.#o(o3, a5); + } + if (De(n3, Ne.ListObject)) { + let i5 = this.#e.inputNode(n3.childNodeId); + if (i5) return t.map((o3) => Qa(o3) ? this.#s(o3, i5) : o3); + } + return r5; + } + #p(t, r5) { + if (De(r5, Ne.Object)) { + let i5 = this.#e.inputNode(r5.childNodeId); + if (i5) return this.#s(t, i5); + } + if (Ge(r5) & re.Json) { + let i5 = Se(Ae(t)), o3 = { type: "Json" }; + return this.#o(i5, o3); + } + return t; + } + #c(t, r5) { + if (!t || !r5) return t; + let n3 = {}; + for (let [i5, o3] of Object.entries(t)) { + if (i5 === "$scalars" || i5 === "$composites" || typeof o3 == "boolean") { + n3[i5] = o3; + continue; + } + let s2 = this.#e.outputEdge(r5, i5); + if (s2) { + let a5 = o3, u = this.#e.inputNode(s2.argsNodeId), m3 = this.#e.outputNode(s2.outputNodeId), P = { selection: a5.selection ? this.#c(a5.selection, m3) : {} }; + a5.arguments && (P.arguments = this.#s(a5.arguments, u)), n3[i5] = P; + } else n3[i5] = o3; + } + return n3; + } + }; + function Ga(e5, t) { + return { $type: "Param", value: { name: e5, ...t } }; + } + __name(Ga, "Ga"); + function za(e5) { + return e5.type === "List" ? `List<${za(e5.inner)}>` : e5.type; + } + __name(za, "za"); + function Jd(e5) { + return ArrayBuffer.isView(e5) ? Buffer.from(e5.buffer, e5.byteOffset, e5.byteLength).toString("base64") : JSON.stringify(e5); + } + __name(Jd, "Jd"); + function Gd(e5, t) { + let r5 = za(t), n3 = Jd(e5); + return `${r5}:${n3}`; + } + __name(Gd, "Gd"); + var zd = 2 ** 31 - 1; + var Hd = -(2 ** 31); + function Ui(e5) { + switch (typeof e5) { + case "boolean": + return { type: "Boolean" }; + case "number": + return Number.isInteger(e5) ? Hd <= e5 && e5 <= zd ? { type: "Int" } : { type: "BigInt" } : { type: "Float" }; + case "string": + return { type: "String" }; + default: + throw new Error("unreachable"); + } + } + __name(Ui, "Ui"); + function Ha({ type: e5 }, t) { + switch (e5) { + case "Boolean": + return (t & re.Boolean) !== 0; + case "Int": + return (t & (re.Int | re.BigInt | re.Float)) !== 0; + case "BigInt": + return (t & re.BigInt) !== 0; + case "Float": + return (t & re.Float) !== 0; + case "String": + return (t & re.String) !== 0; + default: + return false; + } + } + __name(Ha, "Ha"); + function Wa(e5) { + switch (e5) { + case "BigInt": + case "Bytes": + case "DateTime": + case "Json": + return { type: e5 }; + case "Decimal": + return { type: "Float" }; + default: + return; + } + } + __name(Wa, "Wa"); + function Wd(e5) { + let t = { type: "Any" }; + for (let r5 of e5) { + let n3 = an(r5), i5; + switch (n3.kind) { + case "primitive": + i5 = Ui(n3.value); + break; + case "taggedScalar": + i5 = Wa(n3.tag) ?? { type: "Any" }; + break; + default: + return { type: "Any" }; + } + t = Kd(t, i5); + } + return t; + } + __name(Wd, "Wd"); + function Kd(e5, t) { + if (e5.type === "Any") return t; + if (t.type === "Any" || e5.type === t.type) return e5; + let r5 = { Int: 0, BigInt: 1, Float: 2 }, n3 = r5[e5.type], i5 = r5[t.type]; + return n3 !== void 0 && i5 !== void 0 ? n3 >= i5 ? e5 : t : { type: "Any" }; + } + __name(Kd, "Kd"); + function Ka(e5, t) { + switch (e5) { + case "DateTime": + return (t & re.DateTime) !== 0; + case "Decimal": + return (t & re.Decimal) !== 0; + case "BigInt": + return (t & re.BigInt) !== 0; + case "Bytes": + return (t & re.Bytes) !== 0; + case "Json": + return (t & re.Json) !== 0; + default: + return false; + } + } + __name(Ka, "Ka"); + function Zd(e5, t) { + let r5 = an(e5); + switch (r5.kind) { + case "structural": + return false; + case "null": + return false; + case "primitive": { + let n3 = Ui(r5.value), i5 = Ge(t); + return i5 !== 0 && Ha(n3, i5); + } + case "taggedScalar": { + let n3 = Ge(t); + return n3 !== 0 && Ka(r5.tag, n3); + } + default: + return false; + } + } + __name(Zd, "Zd"); + function Xd(e5) { + return Ja(e5) ? Za(e5) : e5; + } + __name(Xd, "Xd"); + function Za(e5) { + return e5.value; + } + __name(Za, "Za"); + async function Yd() { + return globalThis.crypto ?? await import("node:crypto"); + } + __name(Yd, "Yd"); + async function Xa() { + return (await Yd()).randomUUID(); + } + __name(Xa, "Xa"); + async function Ya(e5, t) { + return new Promise((r5) => { + e5.addEventListener(t, r5, { once: true }); + }); + } + __name(Ya, "Ya"); + var ue = class extends X { + static { + __name(this, "ue"); + } + name = "TransactionManagerError"; + constructor(t, r5) { + super("Transaction API error: " + t, "P2028", r5); + } + }; + var nt = class extends ue { + static { + __name(this, "nt"); + } + constructor() { + super("Transaction not found. Transaction ID is invalid, refers to an old closed transaction Prisma doesn't have information about anymore, or was obtained before disconnecting."); + } + }; + var un = class extends ue { + static { + __name(this, "un"); + } + constructor(t) { + super(`Transaction already closed: A ${t} cannot be executed on a committed transaction.`); + } + }; + var cn = class extends ue { + static { + __name(this, "cn"); + } + constructor(t) { + super(`Transaction already closed: A ${t} cannot be executed on a transaction that was rolled back.`); + } + }; + var fr = class extends ue { + static { + __name(this, "fr"); + } + constructor() { + super("Unable to start a transaction in the given time."); + } + }; + var pn = class extends ue { + static { + __name(this, "pn"); + } + constructor(t, { timeout: r5, timeTaken: n3 }) { + super(`A ${t} cannot be executed on an expired transaction. The timeout for this transaction was ${r5} ms, however ${n3} ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.`, { operation: t, timeout: r5, timeTaken: n3 }); + } + }; + var Me = class extends ue { + static { + __name(this, "Me"); + } + constructor(t) { + super(`Internal Consistency Error: ${t}`); + } + }; + var dn = class extends ue { + static { + __name(this, "dn"); + } + constructor(t) { + super(`Invalid isolation level: ${t}`, { isolationLevel: t }); + } + }; + var em = 100; + var tm = 2e3; + function rm() { + let e5, t = new Promise((r5) => { + e5 = r5; + }); + return { abortController: new AbortController(), settled: t, markSettled: e5 }; + } + __name(rm, "rm"); + var it = K2("prisma:client:transactionManager"); + var nm = /* @__PURE__ */ __name(() => ({ sql: "COMMIT", args: [], argTypes: [] }), "nm"); + var el = /* @__PURE__ */ __name(() => ({ sql: "ROLLBACK", args: [], argTypes: [] }), "el"); + var im = /* @__PURE__ */ __name(() => ({ sql: '-- Implicit "COMMIT" query via underlying driver', args: [], argTypes: [] }), "im"); + var om = /* @__PURE__ */ __name(() => ({ sql: '-- Implicit "ROLLBACK" query via underlying driver', args: [], argTypes: [] }), "om"); + var gr = class { + static { + __name(this, "gr"); + } + transactions = /* @__PURE__ */ new Map(); + closedTransactions = []; + #e = /* @__PURE__ */ new Set(); + driverAdapter; + transactionOptions; + tracingHelper; + #t; + #r; + constructor({ driverAdapter: t, transactionOptions: r5, tracingHelper: n3, onQuery: i5, provider: o3 }) { + this.driverAdapter = t, this.transactionOptions = r5, this.tracingHelper = n3, this.#t = i5, this.#r = o3; + } + async startInternalTransaction(t) { + let r5 = t !== void 0 ? this.#y(t) : {}; + return await this.tracingHelper.runInChildSpan("start_transaction", () => this.#i(r5)); + } + async startTransaction(t) { + let r5 = t !== void 0 ? this.#y(t) : this.transactionOptions; + return await this.tracingHelper.runInChildSpan("start_transaction", () => this.#i(r5)); + } + async #i(t) { + if (t.newTxId) return await this.#d(t.newTxId, "start", async (o3) => { + if (o3.status !== "running") throw new Me(`Transaction in invalid state ${o3.status} when starting a nested transaction.`); + if (!o3.transaction) throw new Me("Transaction missing underlying driver transaction when starting a nested transaction."); + o3.depth += 1; + let s2 = this.#a(o3); + o3.savepoints.push(s2); + try { + await this.#n(o3.transaction)(s2); + } catch (a5) { + throw o3.depth -= 1, o3.savepoints.pop(), a5; + } + return { id: o3.id }; + }); + let r5 = rm(), { abortController: n3 } = r5; + this.#e.add(r5); + let i5; + try { + let o3 = { id: await Xa(), status: "waiting", timer: void 0, timeout: t.timeout, startedAt: Date.now(), transaction: void 0, operationQueue: Promise.resolve(), depth: 1, savepoints: [], savepointCounter: 0 }; + if (n3.signal.aborted) throw new fr(); + let s2 = tl(() => n3.abort(), t.maxWait); + s2?.unref?.(); + let a5 = this.driverAdapter.startTransaction(t.isolationLevel).catch(Be); + switch (o3.transaction = await Promise.race([a5.finally(() => clearTimeout(s2)), Ya(n3.signal, "abort").then(() => { + })]), this.transactions.set(o3.id, o3), o3.status) { + case "waiting": + if (n3.signal.aborted) throw o3.transaction = void 0, i5 = this.#o(a5), await this.#f(o3, "timed_out"), new fr(); + return o3.status = "running", o3.startedAt = Date.now(), o3.timer = this.#c(o3.id, t.timeout), { id: o3.id }; + case "timed_out": + case "running": + case "committed": + case "rolled_back": + throw new Me(`Transaction in invalid state ${o3.status} although it just finished startup.`); + default: + return V(o3.status, "Unknown transaction status."); + } + } finally { + this.#e.delete(r5), i5 ? i5.finally(r5.markSettled) : r5.markSettled(); + } + } + async #o(t) { + try { + let r5 = await t; + if (r5.options.usePhantomQuery) await r5.rollback(); + else try { + await r5.executeRaw(el()); + } finally { + await r5.rollback(); + } + } catch (r5) { + it("error in discarded transaction:", r5); + } + } + async commitTransaction(t) { + return await this.tracingHelper.runInChildSpan("commit_transaction", async () => { + await this.#d(t, "commit", async (r5) => { + if (r5.depth > 1) { + if (!r5.transaction) throw new nt(); + let n3 = r5.savepoints.at(-1); + if (!n3) throw new Me(`Missing savepoint for nested commit. Depth: ${r5.depth}, transactionId: ${r5.id}`); + try { + await this.#l(r5.transaction, n3); + } finally { + r5.savepoints.pop(), r5.depth -= 1; + } + return; + } + await this.#f(r5, "committed"); + }); + }); + } + async rollbackTransaction(t) { + return await this.tracingHelper.runInChildSpan("rollback_transaction", async () => { + await this.#d(t, "rollback", async (r5) => { + if (r5.depth > 1) { + if (!r5.transaction) throw new nt(); + let n3 = r5.savepoints.at(-1); + if (!n3) throw new Me(`Missing savepoint for nested rollback. Depth: ${r5.depth}, transactionId: ${r5.id}`); + try { + await this.#u(r5.transaction)(n3), await this.#l(r5.transaction, n3); + } finally { + r5.savepoints.pop(), r5.depth -= 1; + } + return; + } + await this.#f(r5, "rolled_back"); + }); + }); + } + async getTransaction(t, r5) { + let n3 = this.#s(t.id, r5); + if (n3.status === "closing" && (await n3.closing, n3 = this.#s(t.id, r5)), !n3.transaction) throw new nt(); + return n3.transaction; + } + #s(t, r5) { + let n3 = this.transactions.get(t); + if (!n3) { + let i5 = this.closedTransactions.find((o3) => o3.id === t); + if (i5) switch (it("Transaction already closed.", { transactionId: t, status: i5.status }), i5.status) { + case "closing": + case "waiting": + case "running": + throw new Me("Active transaction found in closed transactions list."); + case "committed": + throw new un(r5); + case "rolled_back": + throw new cn(r5); + case "timed_out": + throw new pn(r5, { timeout: i5.timeout, timeTaken: Date.now() - i5.startedAt }); + } + else throw it("Transaction not found.", t), new nt(); + } + if (["committed", "rolled_back", "timed_out"].includes(n3.status)) throw new Me("Closed transaction found in active transactions map."); + return n3; + } + async cancelAllTransactions() { + let t = [...this.#e]; + for (let { abortController: r5 } of t) r5.abort(); + await Promise.allSettled([...[...this.transactions.values()].map((r5) => this.#m(r5, async () => { + let n3 = this.transactions.get(r5.id); + n3 && await this.#f(n3, "rolled_back"); + })), ...t.map(({ settled: r5 }) => sm(r5, tm))]); + } + #a(t) { + return `prisma_sp_${t.savepointCounter++}`; + } + #n(t) { + if (t.createSavepoint) return t.createSavepoint.bind(t); + throw new ue(`Nested transactions are not supported by adapter "${t.adapterName}" (${t.provider}): createSavepoint is not implemented.`); + } + #u(t) { + if (t.rollbackToSavepoint) return t.rollbackToSavepoint.bind(t); + throw new ue(`Nested transactions are not supported by adapter "${t.adapterName}" (${t.provider}): rollbackToSavepoint is not implemented.`); + } + async #l(t, r5) { + t.releaseSavepoint && await t.releaseSavepoint(r5); + } + #p(t) { + it("Transaction already committed or rolled back when timeout happened.", t); + } + #c(t, r5) { + let n3 = Date.now(), i5 = tl(async () => { + try { + it("Transaction timed out.", { transactionId: t, timeoutStartedAt: n3, timeout: r5 }); + let o3 = this.transactions.get(t); + if (!o3) { + this.#p(t); + return; + } + await this.#m(o3, async () => { + let s2 = this.transactions.get(t); + s2 && ["running", "waiting"].includes(s2.status) ? await this.#f(s2, "timed_out") : this.#p(t); + }); + } catch (o3) { + it("Error while closing timed-out transaction.", { transactionId: t, error: o3 }); + } + }, r5); + return i5?.unref?.(), i5; + } + async #d(t, r5, n3) { + let i5 = this.#s(t, r5); + return await this.#m(i5, async () => { + let o3 = this.#s(t, r5); + return await n3(o3); + }); + } + async #m(t, r5) { + let n3 = t.operationQueue, i5; + t.operationQueue = new Promise((o3) => { + i5 = o3; + }), await n3; + try { + return await r5(); + } finally { + i5(); + } + } + async #f(t, r5) { + let n3 = /* @__PURE__ */ __name(async () => { + it("Closing transaction.", { transactionId: t.id, status: r5 }); + try { + if (t.transaction && r5 === "committed") if (t.transaction.options.usePhantomQuery) await this.#g(im(), t.transaction, () => t.transaction.commit()); + else { + let i5 = nm(); + await this.#g(i5, t.transaction, () => t.transaction.executeRaw(i5)).then(() => t.transaction.commit(), (o3) => { + let s2 = /* @__PURE__ */ __name(() => Promise.reject(o3), "s"); + return t.transaction.rollback().then(s2, s2); + }); + } + else if (t.transaction) if (t.transaction.options.usePhantomQuery) await this.#g(om(), t.transaction, () => t.transaction.rollback()); + else { + let i5 = el(); + try { + await this.#g(i5, t.transaction, () => t.transaction.executeRaw(i5)); + } finally { + await t.transaction.rollback(); + } + } + } finally { + t.status = r5, clearTimeout(t.timer), t.timer = void 0, this.transactions.delete(t.id), this.closedTransactions.push(t), this.closedTransactions.length > em && this.closedTransactions.shift(); + } + }, "n"); + t.status === "closing" ? (await t.closing, this.#s(t.id, r5 === "committed" ? "commit" : "rollback")) : await Object.assign(t, { status: "closing", reason: r5, closing: n3() }).closing; + } + #y(t) { + if (!t.timeout) throw new ue("timeout is required"); + if (!t.maxWait) throw new ue("maxWait is required"); + if (t.isolationLevel === "SNAPSHOT") throw new dn(t.isolationLevel); + return { ...t, timeout: t.timeout, maxWait: t.maxWait }; + } + #g(t, r5, n3) { + return Wr({ query: t, execute: n3, provider: this.#r ?? r5.provider, tracingHelper: this.tracingHelper, onQuery: this.#t }); + } + }; + function tl(e5, t) { + return t !== void 0 ? setTimeout(e5, t) : void 0; + } + __name(tl, "tl"); + function sm(e5, t) { + let r5, n3 = new Promise((i5) => { + r5 = setTimeout(i5, t), r5?.unref?.(); + }); + return Promise.race([e5, n3]).finally(() => clearTimeout(r5)); + } + __name(sm, "sm"); + var ne = require_dist(); + var mn = "7.10.1"; + var rl = { bigint: "bigint", date: "datetime", decimal: "decimal", bytes: "bytes" }; + function il(e5) { + let t; + try { + t = JSON.parse(e5); + } catch (i5) { + throw new Error(`Received invalid serialized parameters: ${i5.message}`); + } + if (!Array.isArray(t)) throw new Error("Received invalid serialized parameters: expected an array"); + let r5 = t.map((i5) => ol(i5)), n3 = t.map((i5) => lm(i5)); + return { args: r5, argTypes: n3 }; + } + __name(il, "il"); + function ol(e5) { + if (Array.isArray(e5)) return e5.map((t) => ol(t)); + if (typeof e5 == "object" && e5 !== null && "prisma__value" in e5) { + if (!("prisma__type" in e5)) throw new Error("Invalid serialized parameter, prisma__type should be present when prisma__value is present"); + return `${e5.prisma__value}`; + } + return typeof e5 == "object" && e5 !== null ? JSON.stringify(e5) : e5; + } + __name(ol, "ol"); + function lm(e5) { + return Array.isArray(e5) ? { scalarType: e5.length > 0 ? nl(e5[0]) : "unknown", arity: "list" } : { scalarType: nl(e5), arity: "scalar" }; + } + __name(lm, "lm"); + function nl(e5) { + return typeof e5 == "object" && e5 !== null && "prisma__type" in e5 && typeof e5.prisma__type == "string" && e5.prisma__type in rl ? rl[e5.prisma__type] : typeof e5 == "number" ? "decimal" : typeof e5 == "string" ? "string" : "unknown"; + } + __name(nl, "nl"); + function sl(e5, t) { + return { batch: e5, transaction: t?.kind === "batch" ? { isolationLevel: t.options.isolationLevel } : void 0 }; + } + __name(sl, "sl"); + function al(e5) { + return e5 ? e5.replace(/"(?:[^"\\]|\\.)*"/g, '"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g, (t) => `${t[0]}5`) : ""; + } + __name(al, "al"); + function ll(e5) { + return e5.split(` +`).map((t) => t.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/, "").replace(/\+\d+\s*ms$/, "")).join(` +`); + } + __name(ll, "ll"); + var ul = Pe(Ro()); + function cl({ title: e5, user: t = "prisma", repo: r5 = "prisma", template: n3 = "bug_report.yml", body: i5 }) { + return (0, ul.default)({ user: t, repo: r5, template: n3, title: e5, body: i5 }); + } + __name(cl, "cl"); + function pl({ version: e5, binaryTarget: t, title: r5, description: n3, engineVersion: i5, database: o3, query: s2 }) { + let a5 = go(6e3 - (s2?.length ?? 0)), u = ll(ut(a5)), m3 = n3 ? `# Description +\`\`\` +${n3} +\`\`\`` : "", P = ut(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${process.version?.padEnd(19)}| +| OS | ${t?.padEnd(19)}| +| Prisma Client | ${e5?.padEnd(19)}| +| Query Engine | ${i5?.padEnd(19)}| +| Database | ${o3?.padEnd(19)}| + +${m3} + +## Logs +\`\`\` +${u} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s2 ? al(s2) : ""} +\`\`\` +`), T2 = cl({ title: r5, body: P }); + return `${r5} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${Mt(T2)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`; + } + __name(pl, "pl"); + var fn = class e5 { + static { + __name(this, "e"); + } + #e; + #t; + #r; + #i; + #o; + constructor(t, r5, n3) { + this.#e = t, this.#t = r5, this.#r = n3, this.#i = r5.getConnectionInfo?.(), this.#o = dr.forSql({ onQuery: this.#e.onQuery, tracingHelper: this.#e.tracingHelper, provider: this.#e.provider, connectionInfo: this.#i }); + } + static async connect(t) { + let r5, n3; + try { + r5 = await t.driverAdapterFactory.connect(), n3 = new gr({ driverAdapter: r5, transactionOptions: t.transactionOptions, tracingHelper: t.tracingHelper, onQuery: t.onQuery, provider: t.provider }); + } catch (i5) { + throw await r5?.dispose(), i5; + } + return new e5(t, r5, n3); + } + getConnectionInfo() { + let t = this.#i ?? { supportsRelationJoins: false }; + return Promise.resolve({ provider: this.#t.provider, connectionInfo: t }); + } + async execute({ plan: t, placeholderValues: r5, transaction: n3, batchIndex: i5, queryInfo: o3 }) { + let s2 = n3 ? await this.#r.getTransaction(n3, i5 !== void 0 ? "batch query" : "query") : this.#t; + return await this.#o.run(t, { queryable: s2, transactionManager: n3 ? { enabled: false } : { enabled: true, manager: this.#r }, scope: r5, sqlCommenter: this.#e.sqlCommenters && { plugins: this.#e.sqlCommenters, queryInfo: o3 } }); + } + async startTransaction(t) { + return { ...await this.#r.startTransaction(t), payload: void 0 }; + } + async commitTransaction(t) { + await this.#r.commitTransaction(t.id); + } + async rollbackTransaction(t) { + await this.#r.rollbackTransaction(t.id); + } + async disconnect() { + try { + await this.#r.cancelAllTransactions(); + } finally { + await this.#t.dispose(); + } + } + apiKey() { + return null; + } + }; + var gn = class { + static { + __name(this, "gn"); + } + #e; + #t; + #r; + constructor(t = 1e3) { + this.#e = /* @__PURE__ */ new Map(), this.#t = /* @__PURE__ */ new Map(), this.#r = t; + } + getSingle(t) { + let r5 = this.#e.get(t); + return r5 && (this.#e.delete(t), this.#e.set(t, r5)), r5; + } + setSingle(t, r5) { + if (this.#e.has(t)) { + this.#e.delete(t), this.#e.set(t, r5); + return; + } + if (this.#e.size >= this.#r) { + let n3 = this.#e.keys().next().value; + n3 !== void 0 && this.#e.delete(n3); + } + this.#e.set(t, r5); + } + getBatch(t) { + let r5 = this.#t.get(t); + return r5 && (this.#t.delete(t), this.#t.set(t, r5)), r5; + } + setBatch(t, r5) { + if (this.#t.has(t)) { + this.#t.delete(t), this.#t.set(t, r5); + return; + } + if (this.#t.size >= this.#r) { + let n3 = this.#t.keys().next().value; + n3 !== void 0 && this.#t.delete(n3); + } + this.#t.set(t, r5); + } + clear() { + this.#e.clear(), this.#t.clear(); + } + get size() { + return this.#e.size + this.#t.size; + } + get singleCacheSize() { + return this.#e.size; + } + get batchCacheSize() { + return this.#t.size; + } + }; + var hl = require_dist(); + var yn = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; + function dl(e5, t, r5) { + let n3 = r5 || {}, i5 = n3.encode || encodeURIComponent; + if (typeof i5 != "function") throw new TypeError("option encode is invalid"); + if (!yn.test(e5)) throw new TypeError("argument name is invalid"); + let o3 = i5(t); + if (o3 && !yn.test(o3)) throw new TypeError("argument val is invalid"); + let s2 = e5 + "=" + o3; + if (n3.maxAge !== void 0 && n3.maxAge !== null) { + let a5 = n3.maxAge - 0; + if (Number.isNaN(a5) || !Number.isFinite(a5)) throw new TypeError("option maxAge is invalid"); + s2 += "; Max-Age=" + Math.floor(a5); + } + if (n3.domain) { + if (!yn.test(n3.domain)) throw new TypeError("option domain is invalid"); + s2 += "; Domain=" + n3.domain; + } + if (n3.path) { + if (!yn.test(n3.path)) throw new TypeError("option path is invalid"); + s2 += "; Path=" + n3.path; + } + if (n3.expires) { + if (!um(n3.expires) || Number.isNaN(n3.expires.valueOf())) throw new TypeError("option expires is invalid"); + s2 += "; Expires=" + n3.expires.toUTCString(); + } + if (n3.httpOnly && (s2 += "; HttpOnly"), n3.secure && (s2 += "; Secure"), n3.priority) switch (typeof n3.priority == "string" ? n3.priority.toLowerCase() : n3.priority) { + case "low": { + s2 += "; Priority=Low"; + break; + } + case "medium": { + s2 += "; Priority=Medium"; + break; + } + case "high": { + s2 += "; Priority=High"; + break; + } + default: + throw new TypeError("option priority is invalid"); + } + if (n3.sameSite) switch (typeof n3.sameSite == "string" ? n3.sameSite.toLowerCase() : n3.sameSite) { + case true: { + s2 += "; SameSite=Strict"; + break; + } + case "lax": { + s2 += "; SameSite=Lax"; + break; + } + case "strict": { + s2 += "; SameSite=Strict"; + break; + } + case "none": { + s2 += "; SameSite=None"; + break; + } + default: + throw new TypeError("option sameSite is invalid"); + } + return n3.partitioned && (s2 += "; Partitioned"), s2; + } + __name(dl, "dl"); + function um(e5) { + return Object.prototype.toString.call(e5) === "[object Date]" || e5 instanceof Date; + } + __name(um, "um"); + function ml(e5, t) { + let r5 = (e5 || "").split(";").filter((u) => typeof u == "string" && !!u.trim()), n3 = r5.shift() || "", i5 = cm(n3), o3 = i5.name, s2 = i5.value; + try { + s2 = t?.decode === false ? s2 : (t?.decode || decodeURIComponent)(s2); + } catch { + } + let a5 = { name: o3, value: s2 }; + for (let u of r5) { + let m3 = u.split("="), P = (m3.shift() || "").trimStart().toLowerCase(), T2 = m3.join("="); + switch (P) { + case "expires": { + a5.expires = new Date(T2); + break; + } + case "max-age": { + a5.maxAge = Number.parseInt(T2, 10); + break; + } + case "secure": { + a5.secure = true; + break; + } + case "httponly": { + a5.httpOnly = true; + break; + } + case "samesite": { + a5.sameSite = T2; + break; + } + default: + a5[P] = T2; + } + } + return a5; + } + __name(ml, "ml"); + function cm(e5) { + let t = "", r5 = "", n3 = e5.split("="); + return n3.length > 1 ? (t = n3.shift(), r5 = n3.join("=")) : r5 = e5, { name: t, value: r5 }; + } + __name(cm, "cm"); + var hn = class extends Error { + static { + __name(this, "hn"); + } + clientVersion; + cause; + constructor(t, r5) { + super(t), this.clientVersion = r5.clientVersion, this.cause = r5.cause; + } + get [Symbol.toStringTag]() { + return this.name; + } + }; + var wn = class extends hn { + static { + __name(this, "wn"); + } + isRetryable; + constructor(t, r5) { + super(t, r5), this.isRetryable = r5.isRetryable ?? true; + } + }; + function fl(e5, t) { + return { ...e5, isRetryable: t }; + } + __name(fl, "fl"); + var ot = class extends wn { + static { + __name(this, "ot"); + } + name = "InvalidDatasourceError"; + code = "P6001"; + constructor(t, r5) { + super(t, fl(r5, false)); + } + }; + Bt(ot, "InvalidDatasourceError"); + function gl(e5) { + let t = { clientVersion: e5.clientVersion }, r5; + try { + r5 = new URL(e5.accelerateUrl); + } catch (u) { + let m3 = u.message; + throw new ot(`Error validating \`accelerateUrl\`, the URL cannot be parsed, reason: ${m3}`, t); + } + let { protocol: n3, searchParams: i5 } = r5; + if (n3 !== "prisma:" && n3 !== Er) throw new ot("Error validating `accelerateUrl`: the URL must start with the protocol `prisma://` or `prisma+postgres://`", t); + let o3 = i5.get("api_key"); + if (o3 === null || o3.length < 1) throw new ot("Error validating `accelerateUrl`: the URL must contain a valid API key", t); + let s2 = Dn(r5) ? "http:" : "https:"; + process.env.TEST_CLIENT_ENGINE_REMOTE_EXECUTOR && r5.searchParams.has("use_http") && (s2 = "http:"); + let a5 = new URL(r5.href.replace(n3, s2)); + return { apiKey: o3, url: a5 }; + } + __name(gl, "gl"); + var yl = Pe(wo()); + var xn = class { + static { + __name(this, "xn"); + } + apiKey; + tracingHelper; + logLevel; + logQueries; + engineHash; + constructor({ apiKey: t, tracingHelper: r5, logLevel: n3, logQueries: i5, engineHash: o3 }) { + this.apiKey = t, this.tracingHelper = r5, this.logLevel = n3, this.logQueries = i5, this.engineHash = o3; + } + build({ traceparent: t, transactionId: r5 } = {}) { + let n3 = { Accept: "application/json", Authorization: `Bearer ${this.apiKey}`, "Content-Type": "application/json", "Prisma-Engine-Hash": this.engineHash, "Prisma-Engine-Version": yl.enginesVersion }; + this.tracingHelper.isEnabled() && (n3.traceparent = t ?? this.tracingHelper.getTraceParent()), r5 && (n3["X-Transaction-Id"] = r5); + let i5 = this.#e(); + return i5.length > 0 && (n3["X-Capture-Telemetry"] = i5.join(", ")), n3; + } + #e() { + let t = []; + return this.tracingHelper.isEnabled() && t.push("tracing"), this.logLevel && t.push(this.logLevel), this.logQueries && t.push("query"), t; + } + }; + function pm(e5) { + return e5[0] * 1e3 + e5[1] / 1e6; + } + __name(pm, "pm"); + function ji(e5) { + return new Date(pm(e5)); + } + __name(ji, "ji"); + var wl = K2("prisma:client:clientEngine:remoteExecutor"); + var bn = class { + static { + __name(this, "bn"); + } + #e; + #t; + #r; + #i; + #o; + #s; + constructor(t) { + this.#e = t.clientVersion, this.#i = t.logEmitter, this.#o = t.tracingHelper, this.#s = t.sqlCommenters; + let { url: r5, apiKey: n3 } = gl({ clientVersion: t.clientVersion, accelerateUrl: t.accelerateUrl }); + this.#r = new Bi(r5), this.#t = new xn({ apiKey: n3, engineHash: t.clientVersion, logLevel: t.logLevel, logQueries: t.logQueries, tracingHelper: t.tracingHelper }); + } + async getConnectionInfo() { + return await this.#a({ path: "/connection-info", method: "GET" }); + } + async execute({ plan: t, placeholderValues: r5, batchIndex: n3, model: i5, operation: o3, transaction: s2, customFetch: a5, queryInfo: u }) { + let m3 = u && this.#s?.length ? Hr(this.#s, { query: u }) : void 0; + return (await this.#a({ path: s2 ? `/transaction/${s2.id}/query` : "/query", method: "POST", body: { model: i5, operation: o3, plan: t, params: r5, comments: m3 && Object.keys(m3).length > 0 ? m3 : void 0 }, batchRequestIdx: n3, fetch: a5 })).data; + } + async startTransaction(t) { + return { ...await this.#a({ path: "/transaction/start", method: "POST", body: t }), payload: void 0 }; + } + async commitTransaction(t) { + await this.#a({ path: `/transaction/${t.id}/commit`, method: "POST" }); + } + async rollbackTransaction(t) { + await this.#a({ path: `/transaction/${t.id}/rollback`, method: "POST" }); + } + disconnect() { + return Promise.resolve(); + } + apiKey() { + return this.#t.apiKey; + } + async #a({ path: t, method: r5, body: n3, fetch: i5 = globalThis.fetch, batchRequestIdx: o3 }) { + let s2 = await this.#r.request({ method: r5, path: t, headers: this.#t.build(), body: n3, fetch: i5 }); + s2.ok || await this.#n(s2, o3); + let a5 = await s2.json(); + return typeof a5.extensions == "object" && a5.extensions !== null && this.#u(a5.extensions), a5; + } + async #n(t, r5) { + let n3 = t.headers.get("Prisma-Error-Code"), i5 = await t.text(), o3, s2 = i5; + try { + o3 = JSON.parse(i5); + } catch { + o3 = {}; + } + typeof o3.code == "string" && (n3 = o3.code), typeof o3.error == "string" ? s2 = o3.error : typeof o3.message == "string" ? s2 = o3.message : typeof o3.InvalidRequestError == "object" && o3.InvalidRequestError !== null && typeof o3.InvalidRequestError.reason == "string" && (s2 = o3.InvalidRequestError.reason), s2 = s2 || `HTTP ${t.status}: ${t.statusText}`; + let a5 = typeof o3.meta == "object" && o3.meta !== null ? o3.meta : o3; + throw new hl.PrismaClientKnownRequestError(s2, { clientVersion: this.#e, code: n3 ?? "P6000", batchRequestIdx: r5, meta: a5 }); + } + #u(t) { + let r5 = t.logs ?? []; + if (t.spans) this.#o.dispatchEngineSpans(t.spans, r5, (n3) => this.#l(n3)); + else for (let n3 of r5) this.#l(n3); + } + #l(t) { + switch (t.level) { + case "debug": + case "trace": + wl(t); + break; + case "error": + case "warn": + case "info": { + this.#i.emit(t.level, { timestamp: ji(t.timestamp), message: t.attributes.message ?? "", target: t.target ?? "RemoteExecutor" }); + break; + } + case "query": { + this.#i.emit("query", { query: t.attributes.query ?? "", timestamp: ji(t.timestamp), duration: t.attributes.duration_ms ?? 0, params: t.attributes.params ?? "", target: t.target ?? "RemoteExecutor" }); + break; + } + default: + throw new Error(`Unexpected log level: ${t.level}`); + } + } + }; + var Bi = class { + static { + __name(this, "Bi"); + } + #e; + #t; + #r; + constructor(t) { + this.#e = t, this.#t = /* @__PURE__ */ new Map(); + } + async request({ method: t, path: r5, headers: n3, body: i5, fetch: o3 }) { + let s2 = new URL(r5, this.#e), a5 = this.#i(s2); + a5 && (n3.Cookie = a5), this.#r && (n3["Accelerate-Query-Engine-Jwt"] = this.#r); + let u = await o3(s2.href, { method: t, body: i5 !== void 0 ? JSON.stringify(i5) : void 0, headers: n3 }); + return wl(t, s2, u.status, u.statusText), this.#r = u.headers.get("Accelerate-Query-Engine-Jwt") ?? void 0, this.#o(s2, u), u; + } + #i(t) { + let r5 = [], n3 = /* @__PURE__ */ new Date(); + for (let [i5, o3] of this.#t) { + if (o3.expires && o3.expires < n3) { + this.#t.delete(i5); + continue; + } + let s2 = o3.domain ?? t.hostname, a5 = o3.path ?? "/"; + t.hostname.endsWith(s2) && t.pathname.startsWith(a5) && r5.push(dl(o3.name, o3.value)); + } + return r5.length > 0 ? r5.join("; ") : void 0; + } + #o(t, r5) { + let n3 = r5.headers.getSetCookie?.() || []; + if (n3.length === 0) { + let i5 = r5.headers.get("Set-Cookie"); + i5 && n3.push(i5); + } + for (let i5 of n3) { + let o3 = ml(i5), s2 = o3.domain ?? t.hostname, a5 = o3.path ?? "/", u = `${s2}:${a5}:${o3.name}`; + this.#t.set(u, { name: o3.name, value: o3.value, domain: s2, path: a5, expires: o3.expires }); + } + } + }; + var Ji = require_dist(); + var Qi = {}; + var xl = { async loadQueryCompiler(e5) { + let { clientVersion: t, compilerWasm: r5 } = e5; + if (r5 === void 0) throw new Ji.PrismaClientInitializationError("WASM query compiler was unexpectedly `undefined`", t); + let n3; + return e5.activeProvider === void 0 || Qi[e5.activeProvider] === void 0 ? (n3 = (async () => { + let i5 = await r5.getRuntime(), o3 = await r5.getQueryCompilerWasmModule(); + if (o3 == null) throw new Ji.PrismaClientInitializationError("The loaded wasm module was unexpectedly `undefined` or `null` once loaded", t); + let s2 = { [r5.importName]: i5 }, a5 = new WebAssembly.Instance(o3, s2), u = a5.exports.__wbindgen_start; + return i5.__wbg_set_wasm(a5.exports), u(), i5.QueryCompiler; + })(), e5.activeProvider !== void 0 && (Qi[e5.activeProvider] = n3)) : n3 = Qi[e5.activeProvider], await n3; + } }; + var dm = "P2038"; + var Ve = K2("prisma:client:clientEngine"); + var Tl = globalThis; + Tl.PRISMA_WASM_PANIC_REGISTRY = { set_message(e5) { + throw new ne.PrismaClientRustPanicError(e5, mn); + } }; + var yr = class { + static { + __name(this, "yr"); + } + name = "ClientEngine"; + #e; + #t = { type: "disconnected" }; + #r; + #i; + #o; + #s; + config; + datamodel; + logEmitter; + logQueries; + logLevel; + tracingHelper; + #a; + constructor(t, r5) { + if (t.accelerateUrl !== void 0) this.#i = { remote: true, accelerateUrl: t.accelerateUrl }; + else if (t.adapter) this.#i = { remote: false, driverAdapterFactory: t.adapter }, Ve("Using driver adapter: %O", t.adapter); + else throw new ne.PrismaClientInitializationError("PrismaClient requires a driver adapter to connect to your database, but none was provided. Pass one to the PrismaClient constructor, e.g. `new PrismaClient({ adapter })`. Learn more: https://pris.ly/d/driver-adapters", t.clientVersion, dm); + this.#r = r5 ?? xl, this.config = t, this.logQueries = t.logQueries ?? false, this.logLevel = t.logLevel ?? "error", this.logEmitter = t.logEmitter, this.datamodel = t.inlineSchema, this.tracingHelper = t.tracingHelper, this.#o = t.queryPlanCacheMaxSize === 0 ? void 0 : new gn(t.queryPlanCacheMaxSize), this.#s = mr.deserialize(t.parameterizationSchema, (n3) => { + if (!Object.hasOwn(t.runtimeDataModel.enums, n3)) return; + let i5 = {}; + for (let o3 of t.runtimeDataModel.enums[n3].values) i5[o3.name] = o3.dbName ?? o3.name; + return i5; + }), t.enableDebugLogs && (this.logLevel = "debug"), this.logQueries && (this.#a = (n3) => { + this.logEmitter.emit("query", { ...n3, params: Se(n3.params), target: "ClientEngine" }); + }); + } + async #n() { + switch (this.#t.type) { + case "disconnected": { + let t = this.tracingHelper.runInChildSpan("connect", async () => { + let r5, n3; + try { + r5 = await this.#u(), n3 = await this.#l(r5); + } catch (o3) { + throw this.#t = { type: "disconnected" }, n3?.free(), await r5?.disconnect(), o3; + } + let i5 = { executor: r5, queryCompiler: n3 }; + return this.#t = { type: "connected", engine: i5 }, i5; + }); + return this.#t = { type: "connecting", promise: t }, await t; + } + case "connecting": + return await this.#t.promise; + case "connected": + return this.#t.engine; + case "disconnecting": + return await this.#t.promise, await this.#n(); + } + } + async #u() { + return this.#i.remote ? new bn({ clientVersion: this.config.clientVersion, accelerateUrl: this.#i.accelerateUrl, logEmitter: this.logEmitter, logLevel: this.logLevel, logQueries: this.logQueries, tracingHelper: this.tracingHelper, sqlCommenters: this.config.sqlCommenters }) : await fn.connect({ driverAdapterFactory: this.#i.driverAdapterFactory, tracingHelper: this.tracingHelper, transactionOptions: { ...this.config.transactionOptions, isolationLevel: this.#g(this.config.transactionOptions.isolationLevel) }, onQuery: this.#a, provider: this.config.activeProvider, sqlCommenters: this.config.sqlCommenters }); + } + async #l(t) { + let r5 = this.#e; + r5 === void 0 && (r5 = await this.#r.loadQueryCompiler(this.config), this.#e = r5); + let { provider: n3, connectionInfo: i5 } = await t.getConnectionInfo(); + try { + return this.#m(() => new r5({ datamodel: this.datamodel, provider: n3, connectionInfo: i5 }), void 0, false); + } catch (o3) { + throw this.#p(o3); + } + } + #p(t) { + if (t instanceof ne.PrismaClientRustPanicError) return t; + try { + let r5 = JSON.parse(t.message); + return new ne.PrismaClientInitializationError(r5.message, this.config.clientVersion, r5.error_code); + } catch { + return t; + } + } + #c(t, r5) { + if (t instanceof ne.PrismaClientInitializationError) return t; + if (t.code === "GenericFailure" && t.message?.startsWith("PANIC:")) return new ne.PrismaClientRustPanicError(bl(this, t.message, r5), this.config.clientVersion); + if (t instanceof X) return new ne.PrismaClientKnownRequestError(t.message, { code: t.code, meta: t.meta, clientVersion: this.config.clientVersion }); + try { + let n3 = JSON.parse(t); + return new ne.PrismaClientUnknownRequestError(`${n3.message} +${n3.backtrace}`, { clientVersion: this.config.clientVersion }); + } catch { + return t; + } + } + #d(t) { + return t instanceof ne.PrismaClientRustPanicError ? t : typeof t.message == "string" && typeof t.code == "string" ? new ne.PrismaClientKnownRequestError(t.message, { code: t.code, meta: t.meta, clientVersion: this.config.clientVersion }) : typeof t.message == "string" ? new ne.PrismaClientUnknownRequestError(t.message, { clientVersion: this.config.clientVersion }) : t; + } + #m(t, r5, n3 = true) { + let i5 = Tl.PRISMA_WASM_PANIC_REGISTRY.set_message, o3; + global.PRISMA_WASM_PANIC_REGISTRY.set_message = (s2) => { + o3 = s2; + }; + try { + return t(); + } finally { + if (global.PRISMA_WASM_PANIC_REGISTRY.set_message = i5, o3) throw this.#e = void 0, n3 && this.stop().catch((s2) => Ve("failed to disconnect:", s2)), new ne.PrismaClientRustPanicError(bl(this, o3, r5), this.config.clientVersion); + } + } + onBeforeExit() { + throw new Error('"beforeExit" hook is not applicable to the client engine, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.'); + } + async start() { + await this.#n(); + } + async stop() { + switch (this.#t.type) { + case "disconnected": + return; + case "connecting": + return await this.#t.promise, await this.stop(); + case "connected": { + let t = this.#t.engine, r5 = this.tracingHelper.runInChildSpan("disconnect", async () => { + try { + await t.executor.disconnect(), t.queryCompiler.free(); + } finally { + this.#t = { type: "disconnected" }; + } + }); + return this.#t = { type: "disconnecting", promise: r5 }, await r5; + } + case "disconnecting": + return await this.#t.promise; + } + } + version() { + return "unknown"; + } + async transaction(t, r5, n3) { + let i5, { executor: o3 } = await this.#n(); + try { + if (t === "start") { + let s2 = n3; + i5 = await o3.startTransaction({ ...s2, isolationLevel: this.#g(s2.isolationLevel) }); + } else if (t === "commit") { + let s2 = n3; + await o3.commitTransaction(s2); + } else if (t === "rollback") { + let s2 = n3; + await o3.rollbackTransaction(s2); + } else $e(t, "Invalid transaction action."); + } catch (s2) { + throw this.#c(s2); + } + return i5 ? { id: i5.id, payload: void 0 } : void 0; + } + async request(t, { interactiveTransaction: r5, customDataProxyFetch: n3 }) { + Ve("sending request"); + let { executor: i5, queryCompiler: o3 } = await this.#n().catch((m3) => { + throw this.#c(m3, JSON.stringify(t)); + }), s2, a5 = {}, u = t.query; + if (Pl(t)) s2 = El(t); + else { + let { parameterizedQuery: m3, placeholderValues: P } = Vi(t, this.#s), T2 = JSON.stringify(m3); + a5 = P, u = m3.query; + let S = t.action !== "createMany" && t.action !== "createManyAndReturn", I = S ? this.#o?.getSingle(T2) : void 0; + I ? (Ve("query plan cache hit"), s2 = I) : (Ve("query plan cache miss"), s2 = this.#f(m3, T2, o3), S && this.#o?.setSingle(T2, s2)); + } + try { + Ve("query plan created", s2); + let m3 = await i5.execute({ plan: s2, model: t.modelName, operation: t.action, placeholderValues: a5, transaction: r5, batchIndex: void 0, customFetch: n3?.(globalThis.fetch), queryInfo: { type: "single", modelName: t.modelName, action: t.action, query: u } }); + return Ve("query plan executed"), { data: { [t.action]: m3 } }; + } catch (m3) { + throw this.#c(m3, JSON.stringify(t)); + } + } + async requestBatch(t, { transaction: r5, customDataProxyFetch: n3 }) { + if (t.length === 0) return []; + let i5 = t[0].action, o3 = t[0].modelName, s2 = sl(t, r5), a5 = JSON.stringify(s2), { executor: u, queryCompiler: m3 } = await this.#n().catch((A) => { + throw this.#c(A, a5); + }), P = o3 === void 0, T2, S = {}, I = t.map((A) => A.query); + if (P) T2 = this.#y(t, a5, m3); + else { + let { parameterizedBatch: A, placeholderValues: M } = qi(s2, this.#s), L = JSON.stringify(A); + S = M, I = A.batch.map((E) => E.query); + let q3 = this.#o?.getBatch(L); + if (q3) Ve("batch query plan cache hit"), T2 = q3; + else { + Ve("batch query plan cache miss"); + try { + T2 = this.#y(A.batch, L, m3), this.#o?.setBatch(L, T2); + } catch (E) { + throw this.#d(E); + } + } + } + try { + let A; + switch (r5?.kind === "itx" && (A = r5.options), T2.type) { + case "multi": { + if (r5?.kind !== "itx") { + let E = r5?.options, D = { maxWait: E?.maxWait ?? this.config.transactionOptions.maxWait, timeout: E?.timeout ?? this.config.transactionOptions.timeout, isolationLevel: E?.isolationLevel ?? this.config.transactionOptions.isolationLevel }; + A = await this.transaction("start", {}, D); + } + let M = [], L = false, q3; + for (let [E, D] of T2.plans.entries()) try { + let H = await u.execute({ plan: D, placeholderValues: S, model: t[E].modelName, operation: t[E].action, batchIndex: E, transaction: A, customFetch: n3?.(globalThis.fetch), queryInfo: { type: "single", modelName: t[E].modelName, action: t[E].action, query: I[E] } }); + M.push({ data: { [t[E].action]: H } }); + } catch (H) { + if (q3 ??= r5?.kind !== "batch" && t.every((ce) => ce.action === "findUnique" || ce.action === "findUniqueOrThrow"), M.push(H), L = true, !q3) break; + } + return A !== void 0 && r5?.kind !== "itx" && (L ? await this.transaction("rollback", {}, A) : await this.transaction("commit", {}, A)), M; + } + case "compacted": { + if (!t.every((q3) => q3.action === i5 && q3.modelName === o3)) { + let q3 = t.map((D) => D.action).join(", "), E = t.map((D) => D.modelName).join(", "); + throw new Error(`Internal error: All queries in a compacted batch must have the same action and model name, but received actions: [${q3}] and model names: [${E}]. This indicates a bug in the client. Please report this issue to the Prisma team with your query details.`); + } + if (o3 === void 0) throw new Error("Internal error: A compacted batch cannot contain raw queries. This indicates a bug in the client. Please report this issue to the Prisma team with your query details."); + let M = await u.execute({ plan: T2.plan, placeholderValues: S, model: o3, operation: i5, batchIndex: void 0, transaction: A, customFetch: n3?.(globalThis.fetch), queryInfo: { type: "compacted", action: i5, modelName: o3, queries: I } }); + return Ws(M, T2, S).map((q3) => ({ data: { [i5]: q3 } })); + } + } + } catch (A) { + throw this.#c(A, a5); + } + } + async apiKey() { + let { executor: t } = await this.#n(); + return t.apiKey(); + } + #f(t, r5, n3) { + try { + return this.#m(() => this.#h({ queries: [t], execute: /* @__PURE__ */ __name(() => n3.compile(r5), "execute") })); + } catch (i5) { + throw this.#d(i5); + } + } + #y(t, r5, n3) { + if (t.every(Pl)) return { type: "multi", plans: t.map((i5) => El(i5)) }; + try { + return this.#m(() => this.#h({ queries: t, execute: /* @__PURE__ */ __name(() => n3.compileBatch(r5), "execute") })); + } catch (i5) { + throw this.#d(i5); + } + } + #g(t) { + switch (t) { + case void 0: + return; + case "ReadUncommitted": + return "READ UNCOMMITTED"; + case "ReadCommitted": + return "READ COMMITTED"; + case "RepeatableRead": + return "REPEATABLE READ"; + case "Serializable": + return "SERIALIZABLE"; + case "Snapshot": + return "SNAPSHOT"; + default: + throw new ne.PrismaClientKnownRequestError(`Inconsistent column data: Conversion failed: Invalid isolation level \`${t}\``, { code: "P2023", clientVersion: this.config.clientVersion, meta: { providedIsolationLevel: t } }); + } + } + #h({ queries: t, execute: r5 }) { + return this.tracingHelper.runInChildSpan({ name: "compile", attributes: { models: t.map((n3) => n3.modelName).filter((n3) => n3 !== void 0), actions: t.map((n3) => n3.action) } }, r5); + } + }; + function bl(e5, t, r5) { + return pl({ binaryTarget: void 0, title: t, version: e5.config.clientVersion, engineVersion: "unknown", database: e5.config.activeProvider, query: r5 }); + } + __name(bl, "bl"); + function Pl(e5) { + return e5.action === "queryRaw" || e5.action === "executeRaw"; + } + __name(Pl, "Pl"); + function El(e5) { + let t = e5.query.arguments.query, { args: r5, argTypes: n3 } = il(e5.query.arguments.parameters); + return { type: e5.action === "queryRaw" ? "query" : "execute", args: { type: "rawSql", sql: t, args: r5, argTypes: n3 } }; + } + __name(El, "El"); + function vl(e5) { + return new yr(e5); + } + __name(vl, "vl"); + var Sl = /* @__PURE__ */ __name((e5) => ({ command: e5 }), "Sl"); + var Nl = require_dist(); + var Al = /* @__PURE__ */ __name((e5) => e5.strings.reduce((t, r5, n3) => `${t}@P${n3}${r5}`), "Al"); + var Pn = require_dist(); + function It(e5, t) { + try { + return Rl(e5, "fast", t); + } catch (r5) { + if (r5 instanceof TypeError) return Rl(e5, "slow", t); + throw r5; + } + } + __name(It, "It"); + function Rl(e5, t, r5) { + return JSON.stringify(e5.map((n3) => Il(n3, t, r5))); + } + __name(Rl, "Rl"); + function Il(e5, t, r5) { + if (Array.isArray(e5)) return e5.map((n3) => Il(n3, t, r5)); + if (typeof e5 == "bigint") return { prisma__type: "bigint", prisma__value: e5.toString() }; + if (ct(e5)) { + if (!pt(e5)) throw new Pn.PrismaClientValidationError("Provided Date object is invalid", { clientVersion: r5 }); + return { prisma__type: "date", prisma__value: e5.toJSON() }; + } + if (Pn.Decimal.isDecimal(e5)) return { prisma__type: "decimal", prisma__value: e5.toJSON() }; + if (Buffer.isBuffer(e5)) return { prisma__type: "bytes", prisma__value: e5.toString("base64") }; + if (mm(e5)) return { prisma__type: "bytes", prisma__value: Buffer.from(e5).toString("base64") }; + if (ArrayBuffer.isView(e5)) { + let { buffer: n3, byteOffset: i5, byteLength: o3 } = e5; + return { prisma__type: "bytes", prisma__value: Buffer.from(n3, i5, o3).toString("base64") }; + } + return typeof e5 == "object" && t === "slow" ? kl(e5) : e5; + } + __name(Il, "Il"); + function mm(e5) { + return e5 instanceof ArrayBuffer || e5 instanceof SharedArrayBuffer ? true : typeof e5 == "object" && e5 !== null ? e5[Symbol.toStringTag] === "ArrayBuffer" || e5[Symbol.toStringTag] === "SharedArrayBuffer" : false; + } + __name(mm, "mm"); + function kl(e5) { + if (typeof e5 != "object" || e5 === null) return e5; + if (typeof e5.toJSON == "function") return e5.toJSON(); + if (Array.isArray(e5)) return e5.map(Cl); + let t = {}; + for (let r5 of Object.keys(e5)) t[r5] = Cl(e5[r5]); + return t; + } + __name(kl, "kl"); + function Cl(e5) { + return typeof e5 == "bigint" ? e5.toString() : kl(e5); + } + __name(Cl, "Cl"); + var fm = /^(\s*alter\s)/i; + var Ol = K2("prisma:client"); + function Gi(e5, t, r5, n3) { + if (!(e5 !== "postgresql" && e5 !== "cockroachdb") && r5.length > 0 && fm.exec(t)) throw new Error(`Running ALTER using ${n3} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`); + } + __name(Gi, "Gi"); + var zi = /* @__PURE__ */ __name(({ clientMethod: e5, activeProvider: t, clientVersion: r5 }) => (n3) => { + let i5 = "", o3; + if (Ur(n3)) i5 = n3.sql, o3 = { values: It(n3.values, r5), __prismaRawParameters__: true }; + else if (Array.isArray(n3)) { + let [s2, ...a5] = n3; + i5 = s2, o3 = { values: It(a5 || [], r5), __prismaRawParameters__: true }; + } else switch (t) { + case "sqlite": + case "mysql": { + i5 = n3.sql, o3 = { values: It(n3.values, r5), __prismaRawParameters__: true }; + break; + } + case "cockroachdb": + case "postgresql": + case "postgres": { + i5 = n3.text, o3 = { values: It(n3.values, r5), __prismaRawParameters__: true }; + break; + } + case "sqlserver": { + i5 = Al(n3), o3 = { values: It(n3.values, r5), __prismaRawParameters__: true }; + break; + } + default: + throw new Error(`The ${t} provider does not support ${e5}`); + } + return o3?.values ? Ol(`prisma.${e5}(${i5}, ${o3.values})`) : Ol(`prisma.${e5}(${i5})`), { query: i5, parameters: o3 }; + }, "zi"); + var Dl = { requestArgsToMiddlewareArgs(e5) { + return [e5.strings, ...e5.values]; + }, middlewareArgsToRequestArgs(e5) { + let [t, ...r5] = e5; + return new Nl.Sql(t, r5); + } }; + var Ml = { requestArgsToMiddlewareArgs(e5) { + return [e5]; + }, middlewareArgsToRequestArgs(e5) { + return e5[0]; + } }; + function Hi(e5) { + return function(r5, n3) { + let i5, o3 = /* @__PURE__ */ __name((s2 = e5) => { + try { + return s2 === void 0 || s2?.kind === "itx" ? i5 ??= Fl(r5(s2)) : Fl(r5(s2)); + } catch (a5) { + return Promise.reject(a5); + } + }, "o"); + return { get spec() { + return n3; + }, then(s2, a5) { + return o3().then(s2, a5); + }, catch(s2) { + return o3().catch(s2); + }, finally(s2) { + return o3().finally(s2); + }, requestTransaction(s2) { + let a5 = o3(s2); + return a5.requestTransaction ? a5.requestTransaction(s2) : a5; + }, [Symbol.toStringTag]: "PrismaPromise" }; + }; + } + __name(Hi, "Hi"); + function Fl(e5) { + return typeof e5.then == "function" ? e5 : Promise.resolve(e5); + } + __name(Fl, "Fl"); + var _l = { name: "@prisma/instrumentation-contract", version: "7.10.1", description: "Shared types and utilities for Prisma instrumentation", main: "dist/index.js", module: "dist/index.mjs", types: "dist/index.d.ts", exports: { ".": { require: { types: "./dist/index.d.ts", default: "./dist/index.js" }, import: { types: "./dist/index.d.mts", default: "./dist/index.mjs" } } }, license: "Apache-2.0", homepage: "https://www.prisma.io", repository: { type: "git", url: "https://github.com/prisma/orm.git", directory: "packages/instrumentation-contract" }, bugs: "https://github.com/prisma/prisma/issues", scripts: { dev: "DEV=true tsx helpers/build.ts", build: "tsx helpers/build.ts", prepublishOnly: "pnpm run build", test: "vitest run" }, files: ["dist"], sideEffects: false, devDependencies: { "@opentelemetry/api": "1.9.0" }, peerDependencies: { "@opentelemetry/api": "^1.8" } }; + var ym = _l.version.split(".")[0]; + var hm = "PRISMA_INSTRUMENTATION"; + var wm = `V${ym}_PRISMA_INSTRUMENTATION`; + var $l = globalThis; + function Ll() { + let e5 = $l[wm]; + return e5?.helper ? e5.helper : $l[hm]?.helper; + } + __name(Ll, "Ll"); + var xm = { isEnabled() { + return false; + }, getTraceParent() { + return "00-10-10-00"; + }, dispatchEngineSpans(e5, t, r5) { + for (let n3 of t) r5(n3); + }, getActiveContext() { + }, runInChildSpan(e5, t) { + return t(); + } }; + var Wi = class { + static { + __name(this, "Wi"); + } + isEnabled() { + return this.getTracingHelper().isEnabled(); + } + getTraceParent(t) { + return this.getTracingHelper().getTraceParent(t); + } + dispatchEngineSpans(t, r5, n3) { + return this.getTracingHelper().dispatchEngineSpans(t, r5, n3); + } + getActiveContext() { + return this.getTracingHelper().getActiveContext(); + } + runInChildSpan(t, r5) { + return this.getTracingHelper().runInChildSpan(t, r5); + } + getTracingHelper() { + return Ll() ?? xm; + } + }; + function Vl() { + return new Wi(); + } + __name(Vl, "Vl"); + function ql(e5, t = () => { + }) { + let r5, n3 = new Promise((i5) => r5 = i5); + return { then(i5) { + return --e5 === 0 && r5(t()), i5?.(n3); + } }; + } + __name(ql, "ql"); + function Ul(e5) { + return typeof e5 == "string" ? e5 : e5.reduce((t, r5) => { + let n3 = typeof r5 == "string" ? r5 : r5.level; + return n3 === "query" ? t : t && (r5 === "info" || t === "info") ? "info" : n3; + }, void 0); + } + __name(Ul, "Ul"); + var Ql = require_dist(); + function Zi(e5) { + if (e5.action !== "findUnique" && e5.action !== "findUniqueOrThrow") return; + let t = []; + return e5.modelName && t.push(e5.modelName), e5.query.arguments && t.push(Ki(e5.query.arguments)), t.push(Ki(e5.query.selection)), t.join(""); + } + __name(Zi, "Zi"); + function Ki(e5) { + return `(${Object.keys(e5).sort().map((r5) => { + let n3 = e5[r5]; + return typeof n3 == "object" && n3 !== null ? `(${r5} ${Ki(n3)})` : r5; + }).join(" ")})`; + } + __name(Ki, "Ki"); + var bm = { aggregate: false, aggregateRaw: false, createMany: true, createManyAndReturn: true, createOne: true, deleteMany: true, deleteOne: true, executeRaw: true, findFirst: false, findFirstOrThrow: false, findMany: false, findRaw: false, findUnique: false, findUniqueOrThrow: false, groupBy: false, queryRaw: false, runCommandRaw: true, updateMany: true, updateManyAndReturn: true, updateOne: true, upsertOne: true }; + function Xi(e5) { + return bm[e5]; + } + __name(Xi, "Xi"); + var En = class { + static { + __name(this, "En"); + } + constructor(t) { + this.options = t; + this.batches = {}; + } + batches; + tickActive = false; + request(t) { + let r5 = this.options.batchBy(t); + return r5 ? (this.batches[r5] || (this.batches[r5] = [], this.tickActive || (this.tickActive = true, process.nextTick(() => { + this.dispatchBatches(), this.tickActive = false; + }))), new Promise((n3, i5) => { + this.batches[r5].push({ request: t, resolve: n3, reject: i5 }); + })) : this.options.singleLoader(t); + } + dispatchBatches() { + for (let t in this.batches) { + let r5 = this.batches[t]; + delete this.batches[t], r5.length === 1 ? this.options.singleLoader(r5[0].request).then((n3) => { + n3 instanceof Error ? r5[0].reject(n3) : r5[0].resolve(n3); + }).catch((n3) => { + r5[0].reject(n3); + }) : (r5.sort((n3, i5) => this.options.batchOrder(n3.request, i5.request)), this.options.batchLoader(r5.map((n3) => n3.request)).then((n3) => { + if (n3 instanceof Error) for (let i5 = 0; i5 < r5.length; i5++) r5[i5].reject(n3); + else for (let i5 = 0; i5 < r5.length; i5++) { + let o3 = n3[i5]; + o3 instanceof Error ? r5[i5].reject(o3) : r5[i5].resolve(o3); + } + }).catch((n3) => { + for (let i5 = 0; i5 < r5.length; i5++) r5[i5].reject(n3); + })); + } + } + get [Symbol.toStringTag]() { + return "DataLoader"; + } + }; + var jl = require_dist(); + function st(e5, t) { + if (t === null) return t; + switch (e5) { + case "bigint": + return BigInt(t); + case "bytes": + return new Uint8Array(Buffer.from(t, "base64")); + case "decimal": + return new jl.Decimal(t); + case "datetime": + case "date": + return new Date(t); + case "time": + return /* @__PURE__ */ new Date(`1970-01-01T${t}Z`); + case "bigint-array": + return t.map((r5) => st("bigint", r5)); + case "bytes-array": + return t.map((r5) => st("bytes", r5)); + case "decimal-array": + return t.map((r5) => st("decimal", r5)); + case "datetime-array": + return t.map((r5) => st("datetime", r5)); + case "date-array": + return t.map((r5) => st("date", r5)); + case "time-array": + return t.map((r5) => st("time", r5)); + default: + return t; + } + } + __name(st, "st"); + function Tn(e5) { + let t = [], r5 = Pm(e5); + for (let n3 = 0; n3 < e5.rows.length; n3++) { + let i5 = e5.rows[n3], o3 = { ...r5 }; + for (let s2 = 0; s2 < i5.length; s2++) o3[e5.columns[s2]] = st(e5.types[s2], i5[s2]); + t.push(o3); + } + return t; + } + __name(Tn, "Tn"); + function Pm(e5) { + let t = {}; + for (let r5 = 0; r5 < e5.columns.length; r5++) t[e5.columns[r5]] = null; + return t; + } + __name(Pm, "Pm"); + function Bl(e5, t) { + let { schema: r5, name: n3 } = Em(t), i5 = Object.entries(e5.models).filter(([o3, s2]) => (s2.dbName ?? o3) === n3); + if (i5.length <= 1) return i5[0]?.[0]; + if (r5 !== void 0) { + let o3 = i5.filter(([, s2]) => s2.schema === r5); + if (o3.length === 1) return o3[0][0]; + } + } + __name(Bl, "Bl"); + function Em(e5) { + let t = e5.lastIndexOf("."); + return t === -1 ? { schema: void 0, name: e5 } : { schema: e5.slice(0, t), name: e5.slice(t + 1) }; + } + __name(Em, "Em"); + var Tm = K2("prisma:client:request_handler"); + var vn = class { + static { + __name(this, "vn"); + } + client; + dataloader; + logEmitter; + constructor(t, r5) { + this.logEmitter = r5, this.client = t, this.dataloader = new En({ batchLoader: _s5(async ({ requests: n3, customDataProxyFetch: i5 }) => { + let { transaction: o3, otelParentCtx: s2 } = n3[0], a5 = n3.map((T2) => T2.protocolQuery), u = this.client._tracingHelper.getTraceParent(s2), m3 = n3.some((T2) => Xi(T2.protocolQuery.action)); + return (await this.client._engine.requestBatch(a5, { traceparent: u, transaction: vm(o3), containsWrite: m3, customDataProxyFetch: i5 })).map((T2, S) => { + if (T2 instanceof Error) return T2; + try { + return this.mapQueryEngineResult(n3[S], T2); + } catch (I) { + return I; + } + }); + }), singleLoader: /* @__PURE__ */ __name(async (n3) => { + let i5 = n3.transaction?.kind === "itx" ? Jl(n3.transaction) : void 0, o3 = await this.client._engine.request(n3.protocolQuery, { traceparent: this.client._tracingHelper.getTraceParent(), interactiveTransaction: i5, isWrite: Xi(n3.protocolQuery.action), customDataProxyFetch: n3.customDataProxyFetch }); + return this.mapQueryEngineResult(n3, o3); + }, "singleLoader"), batchBy: /* @__PURE__ */ __name((n3) => { + if (n3.transaction?.kind === "itx") { + let i5 = Zi(n3.protocolQuery); + return `itx-${n3.transaction.id}${i5 ? `-${i5}` : ""}`; + } + return n3.transaction?.id ? `transaction-${n3.transaction.id}` : Zi(n3.protocolQuery); + }, "batchBy"), batchOrder(n3, i5) { + return n3.transaction?.kind === "batch" && i5.transaction?.kind === "batch" ? n3.transaction.index - i5.transaction.index : 0; + } }); + } + async request(t) { + try { + return await this.dataloader.request(t); + } catch (r5) { + let { clientMethod: n3, callsite: i5, transaction: o3, args: s2, modelName: a5 } = t; + this.handleAndLogRequestError({ error: r5, clientMethod: n3, callsite: i5, transaction: o3, args: s2, modelName: a5, globalOmit: t.globalOmit }); + } + } + mapQueryEngineResult({ dataPath: t, unpacker: r5 }, n3) { + let i5 = n3?.data, o3 = this.unpack(i5, t, r5); + return process.env.PRISMA_CLIENT_GET_TIME ? { data: o3 } : o3; + } + handleAndLogRequestError(t) { + try { + this.handleRequestError(t); + } catch (r5) { + throw this.logEmitter && this.logEmitter.emit("error", { message: r5.message, target: t.clientMethod, timestamp: /* @__PURE__ */ new Date() }), r5; + } + } + handleRequestError({ error: t, clientMethod: r5, callsite: n3, transaction: i5, args: o3, modelName: s2, globalOmit: a5 }) { + if (Tm(t), Sm(t, i5)) throw t; + if (t instanceof _.PrismaClientKnownRequestError && Am(t)) { + let m3 = Gl(t.meta); + Fr({ args: o3, errors: [m3], callsite: n3, errorFormat: this.client._errorFormat, originalMethod: r5, clientVersion: this.client._clientVersion, globalOmit: a5 }); + } + let u = t.message; + if (n3 && (u = Rr({ callsite: n3, originalMethod: r5, isPanic: t.isPanic, showColors: this.client._errorFormat === "pretty", message: u })), u = this.sanitizeMessage(u), t.code) { + let m3 = this.resolveErrorMeta(t.meta, t.code, s2); + throw new _.PrismaClientKnownRequestError(u, { code: t.code, clientVersion: this.client._clientVersion, meta: m3, batchRequestIdx: t.batchRequestIdx }); + } else { + if (t.isPanic) throw new _.PrismaClientRustPanicError(u, this.client._clientVersion); + if (t instanceof _.PrismaClientUnknownRequestError) throw new _.PrismaClientUnknownRequestError(u, { clientVersion: this.client._clientVersion, batchRequestIdx: t.batchRequestIdx }); + if (t instanceof _.PrismaClientInitializationError) throw new _.PrismaClientInitializationError(u, this.client._clientVersion); + if (t instanceof _.PrismaClientRustPanicError) throw new _.PrismaClientRustPanicError(u, this.client._clientVersion); + } + throw t.clientVersion = this.client._clientVersion, t; + } + resolveErrorMeta(t, r5, n3) { + if (r5 !== "P2002" || typeof t?.table != "string") return n3 ? { modelName: n3, ...t } : t; + let i5 = { ...t }; + delete i5.table; + let o3 = Bl(this.client._runtimeDataModel, t.table) ?? (typeof i5.modelName == "string" ? i5.modelName : n3); + return o3 !== void 0 ? { ...i5, modelName: o3 } : i5; + } + sanitizeMessage(t) { + return this.client._errorFormat && this.client._errorFormat !== "pretty" ? ut(t) : t; + } + unpack(t, r5, n3) { + if (!t || (t.data && (t = t.data), !t)) return t; + let i5 = Object.keys(t)[0], o3 = Object.values(t)[0], s2 = Rm(r5), a5 = Wn(o3, s2), u = i5 === "queryRaw" ? Tn(a5) : Ae(a5); + return n3 ? n3(u) : u; + } + get [Symbol.toStringTag]() { + return "RequestHandler"; + } + }; + function vm(e5) { + if (e5) { + if (e5.kind === "batch") return { kind: "batch", options: { isolationLevel: e5.isolationLevel, maxWait: e5.maxWait, timeout: e5.timeout } }; + if (e5.kind === "itx") return { kind: "itx", options: Jl(e5) }; + $e(e5, "Unknown transaction kind"); + } + } + __name(vm, "vm"); + function Jl(e5) { + return { id: e5.id, payload: e5.payload }; + } + __name(Jl, "Jl"); + function Sm(e5, t) { + return (0, Ql.hasBatchIndex)(e5) && t?.kind === "batch" && e5.batchRequestIdx !== t.index; + } + __name(Sm, "Sm"); + function Am(e5) { + return e5.code === "P2009" || e5.code === "P2012"; + } + __name(Am, "Am"); + function Gl(e5) { + if (e5.kind === "Union") return { kind: "Union", errors: e5.errors.map(Gl) }; + if (Array.isArray(e5.selectionPath)) { + let [, ...t] = e5.selectionPath; + return { ...e5, selectionPath: t }; + } + return e5; + } + __name(Gl, "Gl"); + function Rm(e5) { + let t = []; + for (let r5 = 1; r5 < e5.length; r5 += 2) t.push(e5[r5]); + return t; + } + __name(Rm, "Rm"); + var Yi = mn; + var Zl = Pe(qn()); + var j5 = class extends Error { + static { + __name(this, "j"); + } + constructor(t) { + super(t + ` +Read more at https://pris.ly/d/client-constructor`), this.name = "PrismaClientConstructorValidationError"; + } + get [Symbol.toStringTag]() { + return "PrismaClientConstructorValidationError"; + } + }; + Bt(j5, "PrismaClientConstructorValidationError"); + var zl = ["errorFormat", "adapter", "accelerateUrl", "log", "transactionOptions", "omit", "comments", "queryPlanCacheMaxSize", "__internal"]; + var Hl = ["pretty", "colorless", "minimal"]; + var Wl = ["info", "query", "warn", "error"]; + var Cm = { adapter: /* @__PURE__ */ __name(() => { + }, "adapter"), accelerateUrl: /* @__PURE__ */ __name((e5) => { + if (e5 !== void 0) { + if (typeof e5 != "string") throw new j5(`Invalid value ${JSON.stringify(e5)} for "accelerateUrl" provided to PrismaClient constructor.`); + if (e5.trim().length === 0) throw new j5('"accelerateUrl" provided to PrismaClient constructor must be a non-empty string.'); + } + }, "accelerateUrl"), errorFormat: /* @__PURE__ */ __name((e5) => { + if (e5) { + if (typeof e5 != "string") throw new j5(`Invalid value ${JSON.stringify(e5)} for "errorFormat" provided to PrismaClient constructor.`); + if (!Hl.includes(e5)) { + let t = hr(e5, Hl); + throw new j5(`Invalid errorFormat ${e5} provided to PrismaClient constructor.${t}`); + } + } + }, "errorFormat"), log: /* @__PURE__ */ __name((e5) => { + if (!e5) return; + if (!Array.isArray(e5)) throw new j5(`Invalid value ${JSON.stringify(e5)} for "log" provided to PrismaClient constructor.`); + function t(r5) { + if (typeof r5 == "string" && !Wl.includes(r5)) { + let n3 = hr(r5, Wl); + throw new j5(`Invalid log level "${r5}" provided to PrismaClient constructor.${n3}`); + } + } + __name(t, "t"); + for (let r5 of e5) { + t(r5); + let n3 = { level: t, emit: /* @__PURE__ */ __name((i5) => { + let o3 = ["stdout", "event"]; + if (!o3.includes(i5)) { + let s2 = hr(i5, o3); + throw new j5(`Invalid value ${JSON.stringify(i5)} for "emit" in logLevel provided to PrismaClient constructor.${s2}`); + } + }, "emit") }; + if (r5 && typeof r5 == "object") for (let [i5, o3] of Object.entries(r5)) if (n3[i5]) n3[i5](o3); + else throw new j5(`Invalid property ${i5} for "log" provided to PrismaClient constructor`); + } + }, "log"), transactionOptions: /* @__PURE__ */ __name((e5) => { + if (!e5) return; + let t = e5.maxWait; + if (t != null && t <= 0) throw new j5(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`); + let r5 = e5.timeout; + if (r5 != null && r5 <= 0) throw new j5(`Invalid value ${r5} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`); + }, "transactionOptions"), omit: /* @__PURE__ */ __name((e5, t) => { + if (typeof e5 != "object") throw new j5('"omit" option is expected to be an object.'); + if (e5 === null) throw new j5('"omit" option can not be `null`'); + let r5 = []; + for (let [n3, i5] of Object.entries(e5)) { + let o3 = Om(n3, t.runtimeDataModel); + if (!o3) { + r5.push({ kind: "UnknownModel", modelKey: n3 }); + continue; + } + for (let [s2, a5] of Object.entries(i5)) { + let u = o3.fields.find((m3) => m3.name === s2); + if (!u) { + r5.push({ kind: "UnknownField", modelKey: n3, fieldName: s2 }); + continue; + } + if (u.relationName) { + r5.push({ kind: "RelationInOmit", modelKey: n3, fieldName: s2 }); + continue; + } + typeof a5 != "boolean" && r5.push({ kind: "InvalidFieldValue", modelKey: n3, fieldName: s2 }); + } + } + if (r5.length > 0) throw new j5(Nm(e5, r5)); + }, "omit"), queryPlanCacheMaxSize: /* @__PURE__ */ __name((e5) => { + if (e5 !== void 0) { + if (typeof e5 != "number") throw new j5(`Invalid value ${JSON.stringify(e5)} for "queryPlanCacheMaxSize" provided to PrismaClient constructor. Expected a number.`); + if (!Number.isInteger(e5)) throw new j5(`Invalid value ${e5} for "queryPlanCacheMaxSize" provided to PrismaClient constructor. Expected an integer.`); + if (e5 < 0) throw new j5(`Invalid value ${e5} for "queryPlanCacheMaxSize" provided to PrismaClient constructor. Cache size needs to be greater or equal to 0.`); + } + }, "queryPlanCacheMaxSize"), comments: /* @__PURE__ */ __name((e5) => { + if (e5 !== void 0) { + if (!Array.isArray(e5)) throw new j5(`Invalid value ${JSON.stringify(e5)} for "comments" provided to PrismaClient constructor. Expected an array of SQL commenter plugins.`); + for (let t = 0; t < e5.length; t++) if (typeof e5[t] != "function") throw new j5(`Invalid value at index ${t} for "comments" provided to PrismaClient constructor. Each plugin must be a function.`); + } + }, "comments"), __internal: /* @__PURE__ */ __name((e5) => { + if (!e5) return; + let t = ["debug", "engine", "configOverride"]; + if (typeof e5 != "object") throw new j5(`Invalid value ${JSON.stringify(e5)} for "__internal" to PrismaClient constructor`); + for (let [r5] of Object.entries(e5)) if (!t.includes(r5)) { + let n3 = hr(r5, t); + throw new j5(`Invalid property ${JSON.stringify(r5)} for "__internal" provided to PrismaClient constructor.${n3}`); + } + }, "__internal") }; + function Im(e5) { + let t = e5.adapter !== void 0, r5 = e5.accelerateUrl !== void 0; + if (t && r5) throw new j5('The "adapter" and "accelerateUrl" options are mutually exclusive. Please provide only one of them.'); + if (!t && !r5) throw new j5(`PrismaClient requires a driver adapter to connect to your database, but none was provided. + +Pass a driver adapter to the PrismaClient constructor, for example: + + import { PrismaPg } from '@prisma/adapter-pg' + import { PrismaClient } from './generated/prisma/client' + + const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL }) + const prisma = new PrismaClient({ adapter }) + +Learn more about driver adapters: https://pris.ly/d/driver-adapters + +If you use Prisma Accelerate instead of connecting to your database directly, pass \`accelerateUrl\` to the PrismaClient constructor instead of \`adapter\`.`); + } + __name(Im, "Im"); + function Xl(e5, t) { + for (let [r5, n3] of Object.entries(e5)) { + if (!zl.includes(r5)) { + let i5 = hr(r5, zl); + throw new j5(`Unknown property ${r5} provided to PrismaClient constructor.${i5}`); + } + Cm[r5](n3, t); + } + Im(e5); + } + __name(Xl, "Xl"); + function hr(e5, t) { + if (t.length === 0 || typeof e5 != "string") return ""; + let r5 = km(e5, t); + return r5 ? ` Did you mean "${r5}"?` : ""; + } + __name(hr, "hr"); + function km(e5, t) { + if (t.length === 0) return null; + let r5 = t.map((i5) => ({ value: i5, distance: (0, Zl.default)(e5, i5) })); + r5.sort((i5, o3) => i5.distance < o3.distance ? -1 : 1); + let n3 = r5[0]; + return n3.distance < 3 ? n3.value : null; + } + __name(km, "km"); + function Om(e5, t) { + return Kl(t.models, e5) ?? Kl(t.types, e5); + } + __name(Om, "Om"); + function Kl(e5, t) { + let r5 = Object.keys(e5).find((n3) => qe(n3) === t); + if (r5) return e5[r5]; + } + __name(Kl, "Kl"); + function Nm(e5, t) { + let r5 = bt(e5); + for (let o3 of t) switch (o3.kind) { + case "UnknownModel": + r5.arguments.getField(o3.modelKey)?.markAsError(), r5.addErrorMessage(() => `Unknown model name: ${o3.modelKey}.`); + break; + case "UnknownField": + r5.arguments.getDeepField([o3.modelKey, o3.fieldName])?.markAsError(), r5.addErrorMessage(() => `Model "${o3.modelKey}" does not have a field named "${o3.fieldName}".`); + break; + case "RelationInOmit": + r5.arguments.getDeepField([o3.modelKey, o3.fieldName])?.markAsError(), r5.addErrorMessage(() => 'Relations are already excluded by default and can not be specified in "omit".'); + break; + case "InvalidFieldValue": + r5.arguments.getDeepFieldValue([o3.modelKey, o3.fieldName])?.markAsError(), r5.addErrorMessage(() => "Omit field option value must be a boolean."); + break; + } + let { message: n3, args: i5 } = Mr(r5, "colorless"); + return `Error validating "omit" option: + +${i5} + +${n3}`; + } + __name(Nm, "Nm"); + var Yl = require_dist(); + function eu(e5) { + return e5.length === 0 ? Promise.resolve([]) : new Promise((t, r5) => { + let n3 = new Array(e5.length), i5 = null, o3 = false, s2 = 0, a5 = /* @__PURE__ */ __name(() => { + o3 || (s2++, s2 === e5.length && (o3 = true, i5 ? r5(i5) : t(n3))); + }, "a"), u = /* @__PURE__ */ __name((m3) => { + o3 || (o3 = true, r5(m3)); + }, "u"); + for (let m3 = 0; m3 < e5.length; m3++) e5[m3].then((P) => { + n3[m3] = P, a5(); + }, (P) => { + if (!(0, Yl.hasBatchIndex)(P)) { + u(P); + return; + } + P.batchRequestIdx === m3 ? u(P) : (i5 || (i5 = P), a5()); + }); + }); + } + __name(eu, "eu"); + var kt = K2("prisma:client"); + typeof globalThis == "object" && (globalThis.NODE_CLIENT = true); + var Dm = { requestArgsToMiddlewareArgs: /* @__PURE__ */ __name((e5) => e5, "requestArgsToMiddlewareArgs"), middlewareArgsToRequestArgs: /* @__PURE__ */ __name((e5) => e5, "middlewareArgsToRequestArgs") }; + var su = /* @__PURE__ */ Symbol.for("prisma.client.transaction.scope_context"); + function tu(e5) { + let r5 = e5[su]; + if (r5 === void 0) return { kind: "top-level" }; + if (Mm(r5)) return r5; + throw new Error("Internal error: inconsistent transaction scope context."); + } + __name(tu, "tu"); + function Mm(e5) { + if (typeof e5 != "object" || e5 === null) return false; + let t = e5; + return t.kind === "nested" && typeof t.txId == "string" && typeof t.scopeId == "string" && Fm(t.scopeState); + } + __name(Mm, "Mm"); + function Fm(e5) { + return typeof e5 != "object" || e5 === null ? false : Array.isArray(e5.stack); + } + __name(Fm, "Fm"); + function _m4() { + return typeof globalThis.crypto?.randomUUID == "function" ? globalThis.crypto.randomUUID() : `${Date.now()}-${Math.random().toString(16).slice(2)}`; + } + __name(_m4, "_m"); + var $m = { id: 0, nextId() { + return ++this.id; + } }; + function au(e5) { + class t { + static { + __name(this, "t"); + } + _originalClient = this; + _runtimeDataModel; + _requestHandler; + _connectionPromise; + _disconnectionPromise; + _engineConfig; + _accelerateEngineConfig; + _clientVersion; + _errorFormat; + _tracingHelper; + _previewFeatures; + _activeProvider; + _globalOmit; + _extensions; + _engine; + _appliedParent; + _createPrismaPromise = Hi(); + constructor(n3) { + if (!n3) throw new _.PrismaClientInitializationError(`PrismaClient was instantiated without any options. A driver adapter is required to connect to your database. + +Pass a driver adapter to the PrismaClient constructor, for example: + + import { PrismaPg } from '@prisma/adapter-pg' + import { PrismaClient } from './generated/prisma/client' + + const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL }) + const prisma = new PrismaClient({ adapter }) + +Learn more about driver adapters: https://pris.ly/d/driver-adapters + +If you use Prisma Accelerate instead of connecting to your database directly, pass \`accelerateUrl\` to the PrismaClient constructor instead of \`adapter\`.`, Yi); + e5 = n3.__internal?.configOverride?.(e5) ?? e5, Xl(n3, e5); + let i5 = new ou.EventEmitter().on("error", () => { + }); + this._extensions = Pt.empty(), this._previewFeatures = e5.previewFeatures, this._clientVersion = e5.clientVersion ?? Yi, this._activeProvider = e5.activeProvider, this._globalOmit = n3?.omit, this._tracingHelper = Vl(); + let o3; + if (n3.adapter) { + o3 = n3.adapter; + let s2 = e5.activeProvider === "postgresql" || e5.activeProvider === "cockroachdb" ? "postgres" : e5.activeProvider; + if (o3.provider !== s2) throw new _.PrismaClientInitializationError(`The Driver Adapter \`${o3.adapterName}\`, based on \`${o3.provider}\`, is not compatible with the provider \`${s2}\` specified in the Prisma schema.`, this._clientVersion); + } + try { + let s2 = n3 ?? {}, u = (s2.__internal ?? {}).debug === true; + if (u && K2.enable("prisma:client"), s2.errorFormat ? this._errorFormat = s2.errorFormat : process.env.NODE_ENV === "production" ? this._errorFormat = "minimal" : process.env.NO_COLOR ? this._errorFormat = "colorless" : this._errorFormat = "colorless", this._runtimeDataModel = e5.runtimeDataModel, this._engineConfig = { enableDebugLogs: u, logLevel: s2.log && Ul(s2.log), logQueries: s2.log && !!(typeof s2.log == "string" ? s2.log === "query" : s2.log.find((m3) => typeof m3 == "string" ? m3 === "query" : m3.level === "query")), compilerWasm: e5.compilerWasm, clientVersion: e5.clientVersion, previewFeatures: this._previewFeatures, activeProvider: e5.activeProvider, inlineSchema: e5.inlineSchema, tracingHelper: this._tracingHelper, transactionOptions: { maxWait: s2.transactionOptions?.maxWait ?? 2e3, timeout: s2.transactionOptions?.timeout ?? 5e3, isolationLevel: s2.transactionOptions?.isolationLevel }, logEmitter: i5, adapter: o3, accelerateUrl: s2.accelerateUrl, sqlCommenters: s2.comments, parameterizationSchema: e5.parameterizationSchema, runtimeDataModel: e5.runtimeDataModel, queryPlanCacheMaxSize: n3.queryPlanCacheMaxSize }, this._accelerateEngineConfig = Object.create(this._engineConfig), this._accelerateEngineConfig.accelerateUtils = { resolveDatasourceUrl: /* @__PURE__ */ __name(() => { + if (s2.accelerateUrl) return s2.accelerateUrl; + throw new _.PrismaClientInitializationError(`\`accelerateUrl\` is required when using \`@prisma/extension-accelerate\`: + +new PrismaClient({ + accelerateUrl: "prisma://...", +}).$extends(withAccelerate()) +`, e5.clientVersion); + }, "resolveDatasourceUrl") }, kt("clientVersion", e5.clientVersion), this._engine = vl(this._engineConfig), this._requestHandler = new vn(this, i5), s2.log) for (let m3 of s2.log) { + let P = typeof m3 == "string" ? m3 : m3.emit === "stdout" ? m3.level : null; + P && this.$on(P, (T2) => { + Ut.log(`${Ut.tags[P] ?? ""}`, T2.message || T2.query); + }); + } + } catch (s2) { + throw s2.clientVersion = this._clientVersion, s2; + } + return this._appliedParent = Yt(this); + } + get [Symbol.toStringTag]() { + return "PrismaClient"; + } + $on(n3, i5) { + return n3 === "beforeExit" ? this._engine.onBeforeExit(i5) : n3 && this._engineConfig.logEmitter.on(n3, i5), this; + } + $connect() { + try { + return this._engine.start(); + } catch (n3) { + throw n3.clientVersion = this._clientVersion, n3; + } + } + async $disconnect() { + try { + await this._engine.stop(); + } catch (n3) { + throw n3.clientVersion = this._clientVersion, n3; + } finally { + yo(); + } + } + $executeRawInternal(n3, i5, o3, s2) { + let a5 = this._activeProvider; + return this._request({ action: "executeRaw", args: o3, transaction: n3, clientMethod: i5, argsMapper: zi({ clientMethod: i5, activeProvider: a5, clientVersion: this._clientVersion }), callsite: je(this._errorFormat), dataPath: [], middlewareArgsMapper: s2 }); + } + $executeRaw(n3, ...i5) { + return this._createPrismaPromise((o3) => { + if (n3.raw !== void 0 || n3.sql !== void 0) { + let [s2, a5] = ru(n3, i5); + return Gi(this._activeProvider, s2.text, s2.values, Array.isArray(n3) ? "prisma.$executeRaw``" : "prisma.$executeRaw(sql``)"), this.$executeRawInternal(o3, "$executeRaw", s2, a5); + } + throw new _.PrismaClientValidationError("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n", { clientVersion: this._clientVersion }); + }); + } + $executeRawUnsafe(n3, ...i5) { + return this._createPrismaPromise((o3) => (Gi(this._activeProvider, n3, i5, "prisma.$executeRawUnsafe(, [...values])"), this.$executeRawInternal(o3, "$executeRawUnsafe", [n3, ...i5]))); + } + $runCommandRaw(n3) { + if (e5.activeProvider !== "mongodb") throw new _.PrismaClientValidationError(`The ${e5.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`, { clientVersion: this._clientVersion }); + return this._createPrismaPromise((i5) => this._request({ args: n3, clientMethod: "$runCommandRaw", dataPath: [], action: "runCommandRaw", argsMapper: Sl, callsite: je(this._errorFormat), transaction: i5 })); + } + async $queryRawInternal(n3, i5, o3, s2) { + let a5 = this._activeProvider; + return this._request({ action: "queryRaw", args: o3, transaction: n3, clientMethod: i5, argsMapper: zi({ clientMethod: i5, activeProvider: a5, clientVersion: this._clientVersion }), callsite: je(this._errorFormat), dataPath: [], middlewareArgsMapper: s2 }); + } + $queryRaw(n3, ...i5) { + return this._createPrismaPromise((o3) => { + if (n3.raw !== void 0 || n3.sql !== void 0) return this.$queryRawInternal(o3, "$queryRaw", ...ru(n3, i5)); + throw new _.PrismaClientValidationError("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n", { clientVersion: this._clientVersion }); + }); + } + $queryRawTyped(n3) { + return this._createPrismaPromise((i5) => { + if (!this._hasPreviewFlag("typedSql")) throw new _.PrismaClientValidationError("`typedSql` preview feature must be enabled in order to access $queryRawTyped API", { clientVersion: this._clientVersion }); + return this.$queryRawInternal(i5, "$queryRawTyped", n3); + }); + } + $queryRawUnsafe(n3, ...i5) { + return this._createPrismaPromise((o3) => this.$queryRawInternal(o3, "$queryRawUnsafe", [n3, ...i5])); + } + _transactionWithArray({ promises: n3, options: i5 }) { + let o3 = $m.nextId(), s2 = ql(n3.length), a5 = n3.map((u, m3) => { + if (u?.[Symbol.toStringTag] !== "PrismaPromise") throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function."); + let P = i5?.isolationLevel ?? this._engineConfig.transactionOptions.isolationLevel, T2 = { kind: "batch", id: o3, index: m3, isolationLevel: P, maxWait: i5?.maxWait ?? this._engineConfig.transactionOptions.maxWait, timeout: i5?.timeout ?? this._engineConfig.transactionOptions.timeout, lock: s2 }; + return u.requestTransaction?.(T2) ?? u; + }); + return eu(a5); + } + async _transactionWithCallback({ callback: n3, options: i5 = {} }) { + let o3 = tu(this), s2 = o3.kind === "nested", a5 = s2 ? o3.scopeState : { stack: [] }, u = a5.stack, m3 = _m4(); + if (s2 && u.at(-1) !== o3.scopeId) throw new Error("Concurrent nested transactions are not supported"); + u.push(m3); + let P = { traceparent: this._tracingHelper.getTraceParent() }, T2 = { maxWait: i5?.maxWait ?? this._engineConfig.transactionOptions.maxWait, timeout: i5?.timeout ?? this._engineConfig.transactionOptions.timeout, isolationLevel: i5?.isolationLevel ?? this._engineConfig.transactionOptions.isolationLevel, newTxId: s2 ? o3.txId : void 0 }, S; + try { + S = await this._engine.transaction("start", P, T2); + } catch (A) { + throw u.at(-1) === m3 && u.pop(), A; + } + let I; + try { + let A = { kind: "itx", ...S }; + if (I = await n3(this._createItxClient(A, m3, a5)), s2) { + if (u.at(-1) !== m3) throw new Error("Nested transactions must be closed in reverse order of creation."); + } else if (u.length !== 1) throw new Error("Cannot close transaction while a nested transaction is still active."); + await this._engine.transaction("commit", P, S); + } catch (A) { + let L = u.at(-1) !== m3 ? Math.max(1, u.length) : 1; + for (let q3 = 0; q3 < L; q3++) await this._engine.transaction("rollback", P, S).catch((E) => { + kt("rollback attempt %d/%d failed: %O", q3 + 1, L, E); + }); + throw A; + } finally { + u.at(-1) === m3 ? u.pop() : u.length = 0; + } + return I; + } + _createItxClient(n3, i5, o3) { + let s2 = { kind: "nested", txId: n3.id, scopeId: i5, scopeState: o3 }; + return ve(Yt(ve(As(this), [ae("_appliedParent", () => this._appliedParent._createItxClient(n3, i5, o3)), ae("_createPrismaPromise", () => Hi(n3)), ae(su, () => s2)])), [Et(Os)]); + } + $transaction(n3, i5) { + let o3; + typeof n3 == "function" ? this._engineConfig.adapter?.adapterName === "@prisma/adapter-d1" ? o3 = /* @__PURE__ */ __name(() => { + throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable."); + }, "o") : e5.activeProvider === "mongodb" && tu(this).kind === "nested" ? o3 = /* @__PURE__ */ __name(() => { + throw new _.PrismaClientValidationError(`The ${e5.activeProvider} provider does not support nested transactions`, { clientVersion: this._clientVersion }); + }, "o") : o3 = /* @__PURE__ */ __name(() => this._transactionWithCallback({ callback: n3, options: i5 }), "o") : o3 = /* @__PURE__ */ __name(() => this._transactionWithArray({ promises: n3, options: i5 }), "o"); + let s2 = { name: "transaction", attributes: { method: "$transaction" } }; + return this._tracingHelper.runInChildSpan(s2, o3); + } + _request(n3) { + n3.otelParentCtx = this._tracingHelper.getActiveContext(); + let i5 = n3.middlewareArgsMapper ?? Dm, o3 = { args: i5.requestArgsToMiddlewareArgs(n3.args), dataPath: n3.dataPath, runInTransaction: !!n3.transaction, action: n3.action, model: n3.model }, s2 = { operation: { name: "operation", attributes: { method: o3.action, model: o3.model, name: o3.model ? `${o3.model}.${o3.action}` : o3.action } } }, a5 = /* @__PURE__ */ __name(async (u) => { + let { runInTransaction: m3, args: P, ...T2 } = u, S = { ...n3, ...T2 }; + P && (S.args = i5.middlewareArgsToRequestArgs(P)), n3.transaction !== void 0 && m3 === false && delete S.transaction; + let I = await Fs(this, S); + if (!S.model) return I; + let A = qs({ dataPath: S.dataPath, modelName: S.model, args: S.args, runtimeDataModel: this._runtimeDataModel }); + return ks({ result: I, modelName: A.modelName, args: A.args, extensions: this._extensions, runtimeDataModel: this._runtimeDataModel, globalOmit: this._globalOmit }); + }, "a"); + return this._tracingHelper.runInChildSpan(s2.operation, () => new iu.AsyncResource("prisma-client-request").runInAsyncScope(() => a5(o3))); + } + async _executeRequest({ args: n3, clientMethod: i5, dataPath: o3, callsite: s2, action: a5, model: u, argsMapper: m3, transaction: P, unpacker: T2, otelParentCtx: S, customDataProxyFetch: I }) { + try { + n3 = m3 ? m3(n3) : n3; + let A = { name: "serialize" }, M = this._tracingHelper.runInChildSpan(A, () => Vr({ modelName: u, runtimeDataModel: this._runtimeDataModel, action: a5, args: n3, clientMethod: i5, callsite: s2, extensions: this._extensions, errorFormat: this._errorFormat, clientVersion: this._clientVersion, previewFeatures: this._previewFeatures, globalOmit: this._globalOmit })); + return K2.enabled("prisma:client") && (kt("Prisma Client call:"), kt(`prisma.${i5}(${gs(n3)})`), kt("Generated request:"), kt(JSON.stringify(M, null, 2) + ` +`)), P?.kind === "batch" && await P.lock, this._requestHandler.request({ protocolQuery: M, modelName: u, action: a5, clientMethod: i5, dataPath: o3, callsite: s2, args: n3, extensions: this._extensions, transaction: P, unpacker: T2, otelParentCtx: S, otelChildCtx: this._tracingHelper.getActiveContext(), globalOmit: this._globalOmit, customDataProxyFetch: I }); + } catch (A) { + throw A.clientVersion = this._clientVersion, A; + } + } + _hasPreviewFlag(n3) { + return !!this._engineConfig.previewFeatures?.includes(n3); + } + $extends = Rs; + } + return t; + } + __name(au, "au"); + function ru(e5, t) { + return Lm(e5) ? [new nu.Sql(e5, t), Dl] : [e5, Ml]; + } + __name(ru, "ru"); + function Lm(e5) { + return Array.isArray(e5) && Array.isArray(e5.raw); + } + __name(Lm, "Lm"); + var Vm = /* @__PURE__ */ new Set(["toJSON", "$$typeof", "asymmetricMatch", Symbol.iterator, Symbol.toStringTag, Symbol.isConcatSpreadable, Symbol.toPrimitive]); + function lu(e5) { + return new Proxy(e5, { get(t, r5) { + if (r5 in t) return t[r5]; + if (!Vm.has(r5)) throw new TypeError(`Invalid enum value: ${String(r5)}`); + } }); + } + __name(lu, "lu"); + var qm = /* @__PURE__ */ __name(() => globalThis.process?.release?.name === "node", "qm"); + var Um = /* @__PURE__ */ __name(() => !!globalThis.Bun || !!globalThis.process?.versions?.bun, "Um"); + var jm = /* @__PURE__ */ __name(() => !!globalThis.Deno, "jm"); + var Bm = /* @__PURE__ */ __name(() => typeof globalThis.Netlify == "object", "Bm"); + var Qm = /* @__PURE__ */ __name(() => typeof globalThis.EdgeRuntime == "object", "Qm"); + var Jm = /* @__PURE__ */ __name(() => globalThis.navigator?.userAgent === "Cloudflare-Workers", "Jm"); + function Gm() { + return [[Bm, "netlify"], [Qm, "edge-light"], [Jm, "workerd"], [jm, "deno"], [Um, "bun"], [qm, "node"]].flatMap((r5) => r5[0]() ? [r5[1]] : []).at(0) ?? ""; + } + __name(Gm, "Gm"); + var zm = { node: "Node.js", workerd: "Cloudflare Workers", deno: "Deno and Deno Deploy", netlify: "Netlify Edge Functions", "edge-light": "Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)" }; + function uu() { + let e5 = Gm(); + return { id: e5, prettyName: zm[e5] || e5, isEdge: ["workerd", "deno", "netlify", "edge-light"].includes(e5) }; + } + __name(uu, "uu"); + var _ = require_dist(); + var Fe = require_dist(); + var ee = require_dist(); + var cu = require_dist(); + } +}); + +// ../../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "../../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js"(exports, module) { + var buffer = __require("buffer"); + var Buffer2 = buffer.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + __name(copyProps, "copyProps"); + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + module.exports = buffer; + } else { + copyProps(buffer, exports); + exports.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + __name(SafeBuffer, "SafeBuffer"); + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer.SlowBuffer(size); + }; + } +}); + +// ../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/data-stream.js +var require_data_stream = __commonJS({ + "../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/data-stream.js"(exports, module) { + var Buffer2 = require_safe_buffer().Buffer; + var Stream = __require("stream"); + var util = __require("util"); + function DataStream(data) { + this.buffer = null; + this.writable = true; + this.readable = true; + if (!data) { + this.buffer = Buffer2.alloc(0); + return this; + } + if (typeof data.pipe === "function") { + this.buffer = Buffer2.alloc(0); + data.pipe(this); + return this; + } + if (data.length || typeof data === "object") { + this.buffer = data; + this.writable = false; + process.nextTick(function() { + this.emit("end", data); + this.readable = false; + this.emit("close"); + }.bind(this)); + return this; + } + throw new TypeError("Unexpected data type (" + typeof data + ")"); + } + __name(DataStream, "DataStream"); + util.inherits(DataStream, Stream); + DataStream.prototype.write = /* @__PURE__ */ __name(function write(data) { + this.buffer = Buffer2.concat([this.buffer, Buffer2.from(data)]); + this.emit("data", data); + }, "write"); + DataStream.prototype.end = /* @__PURE__ */ __name(function end(data) { + if (data) + this.write(data); + this.emit("end", data); + this.emit("close"); + this.writable = false; + this.readable = false; + }, "end"); + module.exports = DataStream; + } +}); + +// ../../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js +var require_param_bytes_for_alg = __commonJS({ + "../../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js"(exports, module) { + "use strict"; + function getParamSize(keySize) { + var result = (keySize / 8 | 0) + (keySize % 8 === 0 ? 0 : 1); + return result; + } + __name(getParamSize, "getParamSize"); + var paramBytesForAlg = { + ES256: getParamSize(256), + ES384: getParamSize(384), + ES512: getParamSize(521) + }; + function getParamBytesForAlg(alg) { + var paramBytes = paramBytesForAlg[alg]; + if (paramBytes) { + return paramBytes; + } + throw new Error('Unknown algorithm "' + alg + '"'); + } + __name(getParamBytesForAlg, "getParamBytesForAlg"); + module.exports = getParamBytesForAlg; + } +}); + +// ../../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js +var require_ecdsa_sig_formatter = __commonJS({ + "../../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js"(exports, module) { + "use strict"; + var Buffer2 = require_safe_buffer().Buffer; + var getParamBytesForAlg = require_param_bytes_for_alg(); + var MAX_OCTET = 128; + var CLASS_UNIVERSAL = 0; + var PRIMITIVE_BIT = 32; + var TAG_SEQ = 16; + var TAG_INT = 2; + var ENCODED_TAG_SEQ = TAG_SEQ | PRIMITIVE_BIT | CLASS_UNIVERSAL << 6; + var ENCODED_TAG_INT = TAG_INT | CLASS_UNIVERSAL << 6; + function base64Url(base643) { + return base643.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); + } + __name(base64Url, "base64Url"); + function signatureAsBuffer(signature) { + if (Buffer2.isBuffer(signature)) { + return signature; + } else if ("string" === typeof signature) { + return Buffer2.from(signature, "base64"); + } + throw new TypeError("ECDSA signature must be a Base64 string or a Buffer"); + } + __name(signatureAsBuffer, "signatureAsBuffer"); + function derToJose(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); + var maxEncodedParamLength = paramBytes + 1; + var inputLength = signature.length; + var offset = 0; + if (signature[offset++] !== ENCODED_TAG_SEQ) { + throw new Error('Could not find expected "seq"'); + } + var seqLength = signature[offset++]; + if (seqLength === (MAX_OCTET | 1)) { + seqLength = signature[offset++]; + } + if (inputLength - offset < seqLength) { + throw new Error('"seq" specified length of "' + seqLength + '", only "' + (inputLength - offset) + '" remaining'); + } + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "r"'); + } + var rLength = signature[offset++]; + if (inputLength - offset - 2 < rLength) { + throw new Error('"r" specified length of "' + rLength + '", only "' + (inputLength - offset - 2) + '" available'); + } + if (maxEncodedParamLength < rLength) { + throw new Error('"r" specified length of "' + rLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } + var rOffset = offset; + offset += rLength; + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "s"'); + } + var sLength = signature[offset++]; + if (inputLength - offset !== sLength) { + throw new Error('"s" specified length of "' + sLength + '", expected "' + (inputLength - offset) + '"'); + } + if (maxEncodedParamLength < sLength) { + throw new Error('"s" specified length of "' + sLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } + var sOffset = offset; + offset += sLength; + if (offset !== inputLength) { + throw new Error('Expected to consume entire buffer, but "' + (inputLength - offset) + '" bytes remain'); + } + var rPadding = paramBytes - rLength, sPadding = paramBytes - sLength; + var dst = Buffer2.allocUnsafe(rPadding + rLength + sPadding + sLength); + for (offset = 0; offset < rPadding; ++offset) { + dst[offset] = 0; + } + signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength); + offset = paramBytes; + for (var o3 = offset; offset < o3 + sPadding; ++offset) { + dst[offset] = 0; + } + signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength); + dst = dst.toString("base64"); + dst = base64Url(dst); + return dst; + } + __name(derToJose, "derToJose"); + function countPadding(buf, start, stop) { + var padding = 0; + while (start + padding < stop && buf[start + padding] === 0) { + ++padding; + } + var needsSign = buf[start + padding] >= MAX_OCTET; + if (needsSign) { + --padding; + } + return padding; + } + __name(countPadding, "countPadding"); + function joseToDer(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); + var signatureBytes = signature.length; + if (signatureBytes !== paramBytes * 2) { + throw new TypeError('"' + alg + '" signatures must be "' + paramBytes * 2 + '" bytes, saw "' + signatureBytes + '"'); + } + var rPadding = countPadding(signature, 0, paramBytes); + var sPadding = countPadding(signature, paramBytes, signature.length); + var rLength = paramBytes - rPadding; + var sLength = paramBytes - sPadding; + var rsBytes = 1 + 1 + rLength + 1 + 1 + sLength; + var shortLength = rsBytes < MAX_OCTET; + var dst = Buffer2.allocUnsafe((shortLength ? 2 : 3) + rsBytes); + var offset = 0; + dst[offset++] = ENCODED_TAG_SEQ; + if (shortLength) { + dst[offset++] = rsBytes; + } else { + dst[offset++] = MAX_OCTET | 1; + dst[offset++] = rsBytes & 255; + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = rLength; + if (rPadding < 0) { + dst[offset++] = 0; + offset += signature.copy(dst, offset, 0, paramBytes); + } else { + offset += signature.copy(dst, offset, rPadding, paramBytes); + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = sLength; + if (sPadding < 0) { + dst[offset++] = 0; + signature.copy(dst, offset, paramBytes); + } else { + signature.copy(dst, offset, paramBytes + sPadding); + } + return dst; + } + __name(joseToDer, "joseToDer"); + module.exports = { + derToJose, + joseToDer + }; + } +}); + +// ../../node_modules/.pnpm/buffer-equal-constant-time@1.0.1/node_modules/buffer-equal-constant-time/index.js +var require_buffer_equal_constant_time = __commonJS({ + "../../node_modules/.pnpm/buffer-equal-constant-time@1.0.1/node_modules/buffer-equal-constant-time/index.js"(exports, module) { + "use strict"; + var Buffer2 = __require("buffer").Buffer; + var SlowBuffer = __require("buffer").SlowBuffer; + module.exports = bufferEq; + function bufferEq(a5, b5) { + if (!Buffer2.isBuffer(a5) || !Buffer2.isBuffer(b5)) { + return false; + } + if (a5.length !== b5.length) { + return false; + } + var c5 = 0; + for (var i5 = 0; i5 < a5.length; i5++) { + c5 |= a5[i5] ^ b5[i5]; + } + return c5 === 0; + } + __name(bufferEq, "bufferEq"); + bufferEq.install = function() { + Buffer2.prototype.equal = SlowBuffer.prototype.equal = /* @__PURE__ */ __name(function equal(that) { + return bufferEq(this, that); + }, "equal"); + }; + var origBufEqual = Buffer2.prototype.equal; + var origSlowBufEqual = SlowBuffer.prototype.equal; + bufferEq.restore = function() { + Buffer2.prototype.equal = origBufEqual; + SlowBuffer.prototype.equal = origSlowBufEqual; + }; + } +}); + +// ../../node_modules/.pnpm/jwa@2.0.1/node_modules/jwa/index.js +var require_jwa = __commonJS({ + "../../node_modules/.pnpm/jwa@2.0.1/node_modules/jwa/index.js"(exports, module) { + var Buffer2 = require_safe_buffer().Buffer; + var crypto2 = __require("crypto"); + var formatEcdsa = require_ecdsa_sig_formatter(); + var util = __require("util"); + var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".'; + var MSG_INVALID_SECRET = "secret must be a string or buffer"; + var MSG_INVALID_VERIFIER_KEY = "key must be a string or a buffer"; + var MSG_INVALID_SIGNER_KEY = "key must be a string, a buffer or an object"; + var supportsKeyObjects = typeof crypto2.createPublicKey === "function"; + if (supportsKeyObjects) { + MSG_INVALID_VERIFIER_KEY += " or a KeyObject"; + MSG_INVALID_SECRET += "or a KeyObject"; + } + function checkIsPublicKey(key) { + if (Buffer2.isBuffer(key)) { + return; + } + if (typeof key === "string") { + return; + } + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key !== "object") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key.type !== "string") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key.asymmetricKeyType !== "string") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key.export !== "function") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + } + __name(checkIsPublicKey, "checkIsPublicKey"); + function checkIsPrivateKey(key) { + if (Buffer2.isBuffer(key)) { + return; + } + if (typeof key === "string") { + return; + } + if (typeof key === "object") { + return; + } + throw typeError(MSG_INVALID_SIGNER_KEY); + } + __name(checkIsPrivateKey, "checkIsPrivateKey"); + function checkIsSecretKey(key) { + if (Buffer2.isBuffer(key)) { + return; + } + if (typeof key === "string") { + return key; + } + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_SECRET); + } + if (typeof key !== "object") { + throw typeError(MSG_INVALID_SECRET); + } + if (key.type !== "secret") { + throw typeError(MSG_INVALID_SECRET); + } + if (typeof key.export !== "function") { + throw typeError(MSG_INVALID_SECRET); + } + } + __name(checkIsSecretKey, "checkIsSecretKey"); + function fromBase642(base643) { + return base643.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); + } + __name(fromBase642, "fromBase64"); + function toBase642(base64url3) { + base64url3 = base64url3.toString(); + var padding = 4 - base64url3.length % 4; + if (padding !== 4) { + for (var i5 = 0; i5 < padding; ++i5) { + base64url3 += "="; + } + } + return base64url3.replace(/\-/g, "+").replace(/_/g, "/"); + } + __name(toBase642, "toBase64"); + function typeError(template) { + var args = [].slice.call(arguments, 1); + var errMsg = util.format.bind(util, template).apply(null, args); + return new TypeError(errMsg); + } + __name(typeError, "typeError"); + function bufferOrString(obj) { + return Buffer2.isBuffer(obj) || typeof obj === "string"; + } + __name(bufferOrString, "bufferOrString"); + function normalizeInput(thing) { + if (!bufferOrString(thing)) + thing = JSON.stringify(thing); + return thing; + } + __name(normalizeInput, "normalizeInput"); + function createHmacSigner(bits) { + return /* @__PURE__ */ __name(function sign2(thing, secret) { + checkIsSecretKey(secret); + thing = normalizeInput(thing); + var hmac = crypto2.createHmac("sha" + bits, secret); + var sig = (hmac.update(thing), hmac.digest("base64")); + return fromBase642(sig); + }, "sign"); + } + __name(createHmacSigner, "createHmacSigner"); + var bufferEqual; + var timingSafeEqual = "timingSafeEqual" in crypto2 ? /* @__PURE__ */ __name(function timingSafeEqual2(a5, b5) { + if (a5.byteLength !== b5.byteLength) { + return false; + } + return crypto2.timingSafeEqual(a5, b5); + }, "timingSafeEqual") : /* @__PURE__ */ __name(function timingSafeEqual2(a5, b5) { + if (!bufferEqual) { + bufferEqual = require_buffer_equal_constant_time(); + } + return bufferEqual(a5, b5); + }, "timingSafeEqual"); + function createHmacVerifier(bits) { + return /* @__PURE__ */ __name(function verify2(thing, signature, secret) { + var computedSig = createHmacSigner(bits)(thing, secret); + return timingSafeEqual(Buffer2.from(signature), Buffer2.from(computedSig)); + }, "verify"); + } + __name(createHmacVerifier, "createHmacVerifier"); + function createKeySigner(bits) { + return /* @__PURE__ */ __name(function sign2(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + var signer = crypto2.createSign("RSA-SHA" + bits); + var sig = (signer.update(thing), signer.sign(privateKey, "base64")); + return fromBase642(sig); + }, "sign"); + } + __name(createKeySigner, "createKeySigner"); + function createKeyVerifier(bits) { + return /* @__PURE__ */ __name(function verify2(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase642(signature); + var verifier = crypto2.createVerify("RSA-SHA" + bits); + verifier.update(thing); + return verifier.verify(publicKey, signature, "base64"); + }, "verify"); + } + __name(createKeyVerifier, "createKeyVerifier"); + function createPSSKeySigner(bits) { + return /* @__PURE__ */ __name(function sign2(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + var signer = crypto2.createSign("RSA-SHA" + bits); + var sig = (signer.update(thing), signer.sign({ + key: privateKey, + padding: crypto2.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto2.constants.RSA_PSS_SALTLEN_DIGEST + }, "base64")); + return fromBase642(sig); + }, "sign"); + } + __name(createPSSKeySigner, "createPSSKeySigner"); + function createPSSKeyVerifier(bits) { + return /* @__PURE__ */ __name(function verify2(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase642(signature); + var verifier = crypto2.createVerify("RSA-SHA" + bits); + verifier.update(thing); + return verifier.verify({ + key: publicKey, + padding: crypto2.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto2.constants.RSA_PSS_SALTLEN_DIGEST + }, signature, "base64"); + }, "verify"); + } + __name(createPSSKeyVerifier, "createPSSKeyVerifier"); + function createECDSASigner(bits) { + var inner = createKeySigner(bits); + return /* @__PURE__ */ __name(function sign2() { + var signature = inner.apply(null, arguments); + signature = formatEcdsa.derToJose(signature, "ES" + bits); + return signature; + }, "sign"); + } + __name(createECDSASigner, "createECDSASigner"); + function createECDSAVerifer(bits) { + var inner = createKeyVerifier(bits); + return /* @__PURE__ */ __name(function verify2(thing, signature, publicKey) { + signature = formatEcdsa.joseToDer(signature, "ES" + bits).toString("base64"); + var result = inner(thing, signature, publicKey); + return result; + }, "verify"); + } + __name(createECDSAVerifer, "createECDSAVerifer"); + function createNoneSigner() { + return /* @__PURE__ */ __name(function sign2() { + return ""; + }, "sign"); + } + __name(createNoneSigner, "createNoneSigner"); + function createNoneVerifier() { + return /* @__PURE__ */ __name(function verify2(thing, signature) { + return signature === ""; + }, "verify"); + } + __name(createNoneVerifier, "createNoneVerifier"); + module.exports = /* @__PURE__ */ __name(function jwa(algorithm) { + var signerFactories = { + hs: createHmacSigner, + rs: createKeySigner, + ps: createPSSKeySigner, + es: createECDSASigner, + none: createNoneSigner + }; + var verifierFactories = { + hs: createHmacVerifier, + rs: createKeyVerifier, + ps: createPSSKeyVerifier, + es: createECDSAVerifer, + none: createNoneVerifier + }; + var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/); + if (!match) + throw typeError(MSG_INVALID_ALGORITHM, algorithm); + var algo = (match[1] || match[3]).toLowerCase(); + var bits = match[2]; + return { + sign: signerFactories[algo](bits), + verify: verifierFactories[algo](bits) + }; + }, "jwa"); + } +}); + +// ../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/tostring.js +var require_tostring = __commonJS({ + "../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/tostring.js"(exports, module) { + var Buffer2 = __require("buffer").Buffer; + module.exports = /* @__PURE__ */ __name(function toString(obj) { + if (typeof obj === "string") + return obj; + if (typeof obj === "number" || Buffer2.isBuffer(obj)) + return obj.toString(); + return JSON.stringify(obj); + }, "toString"); + } +}); + +// ../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/sign-stream.js +var require_sign_stream = __commonJS({ + "../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/sign-stream.js"(exports, module) { + var Buffer2 = require_safe_buffer().Buffer; + var DataStream = require_data_stream(); + var jwa = require_jwa(); + var Stream = __require("stream"); + var toString = require_tostring(); + var util = __require("util"); + function base64url3(string4, encoding) { + return Buffer2.from(string4, encoding).toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); + } + __name(base64url3, "base64url"); + function jwsSecuredInput(header, payload, encoding) { + encoding = encoding || "utf8"; + var encodedHeader = base64url3(toString(header), "binary"); + var encodedPayload = base64url3(toString(payload), encoding); + return util.format("%s.%s", encodedHeader, encodedPayload); + } + __name(jwsSecuredInput, "jwsSecuredInput"); + function jwsSign(opts) { + var header = opts.header; + var payload = opts.payload; + var secretOrKey = opts.secret || opts.privateKey; + var encoding = opts.encoding; + var algo = jwa(header.alg); + var securedInput = jwsSecuredInput(header, payload, encoding); + var signature = algo.sign(securedInput, secretOrKey); + return util.format("%s.%s", securedInput, signature); + } + __name(jwsSign, "jwsSign"); + function SignStream(opts) { + var secret = opts.secret; + secret = secret == null ? opts.privateKey : secret; + secret = secret == null ? opts.key : secret; + if (/^hs/i.test(opts.header.alg) === true && secret == null) { + throw new TypeError("secret must be a string or buffer or a KeyObject"); + } + var secretStream = new DataStream(secret); + this.readable = true; + this.header = opts.header; + this.encoding = opts.encoding; + this.secret = this.privateKey = this.key = secretStream; + this.payload = new DataStream(opts.payload); + this.secret.once("close", function() { + if (!this.payload.writable && this.readable) + this.sign(); + }.bind(this)); + this.payload.once("close", function() { + if (!this.secret.writable && this.readable) + this.sign(); + }.bind(this)); + } + __name(SignStream, "SignStream"); + util.inherits(SignStream, Stream); + SignStream.prototype.sign = /* @__PURE__ */ __name(function sign2() { + try { + var signature = jwsSign({ + header: this.header, + payload: this.payload.buffer, + secret: this.secret.buffer, + encoding: this.encoding + }); + this.emit("done", signature); + this.emit("data", signature); + this.emit("end"); + this.readable = false; + return signature; + } catch (e5) { + this.readable = false; + this.emit("error", e5); + this.emit("close"); + } + }, "sign"); + SignStream.sign = jwsSign; + module.exports = SignStream; + } +}); + +// ../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/verify-stream.js +var require_verify_stream = __commonJS({ + "../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/lib/verify-stream.js"(exports, module) { + var Buffer2 = require_safe_buffer().Buffer; + var DataStream = require_data_stream(); + var jwa = require_jwa(); + var Stream = __require("stream"); + var toString = require_tostring(); + var util = __require("util"); + var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/; + function isObject2(thing) { + return Object.prototype.toString.call(thing) === "[object Object]"; + } + __name(isObject2, "isObject"); + function safeJsonParse(thing) { + if (isObject2(thing)) + return thing; + try { + return JSON.parse(thing); + } catch (e5) { + return void 0; + } + } + __name(safeJsonParse, "safeJsonParse"); + function headerFromJWS(jwsSig) { + var encodedHeader = jwsSig.split(".", 1)[0]; + return safeJsonParse(Buffer2.from(encodedHeader, "base64").toString("binary")); + } + __name(headerFromJWS, "headerFromJWS"); + function securedInputFromJWS(jwsSig) { + return jwsSig.split(".", 2).join("."); + } + __name(securedInputFromJWS, "securedInputFromJWS"); + function signatureFromJWS(jwsSig) { + return jwsSig.split(".")[2]; + } + __name(signatureFromJWS, "signatureFromJWS"); + function payloadFromJWS(jwsSig, encoding) { + encoding = encoding || "utf8"; + var payload = jwsSig.split(".")[1]; + return Buffer2.from(payload, "base64").toString(encoding); + } + __name(payloadFromJWS, "payloadFromJWS"); + function isValidJws(string4) { + return JWS_REGEX.test(string4) && !!headerFromJWS(string4); + } + __name(isValidJws, "isValidJws"); + function jwsVerify(jwsSig, algorithm, secretOrKey) { + if (!algorithm) { + var err = new Error("Missing algorithm parameter for jws.verify"); + err.code = "MISSING_ALGORITHM"; + throw err; + } + jwsSig = toString(jwsSig); + var signature = signatureFromJWS(jwsSig); + var securedInput = securedInputFromJWS(jwsSig); + var algo = jwa(algorithm); + return algo.verify(securedInput, signature, secretOrKey); + } + __name(jwsVerify, "jwsVerify"); + function jwsDecode(jwsSig, opts) { + opts = opts || {}; + jwsSig = toString(jwsSig); + if (!isValidJws(jwsSig)) + return null; + var header = headerFromJWS(jwsSig); + if (!header) + return null; + var payload = payloadFromJWS(jwsSig); + if (header.typ === "JWT" || opts.json) + payload = JSON.parse(payload, opts.encoding); + return { + header, + payload, + signature: signatureFromJWS(jwsSig) + }; + } + __name(jwsDecode, "jwsDecode"); + function VerifyStream(opts) { + opts = opts || {}; + var secretOrKey = opts.secret; + secretOrKey = secretOrKey == null ? opts.publicKey : secretOrKey; + secretOrKey = secretOrKey == null ? opts.key : secretOrKey; + if (/^hs/i.test(opts.algorithm) === true && secretOrKey == null) { + throw new TypeError("secret must be a string or buffer or a KeyObject"); + } + var secretStream = new DataStream(secretOrKey); + this.readable = true; + this.algorithm = opts.algorithm; + this.encoding = opts.encoding; + this.secret = this.publicKey = this.key = secretStream; + this.signature = new DataStream(opts.signature); + this.secret.once("close", function() { + if (!this.signature.writable && this.readable) + this.verify(); + }.bind(this)); + this.signature.once("close", function() { + if (!this.secret.writable && this.readable) + this.verify(); + }.bind(this)); + } + __name(VerifyStream, "VerifyStream"); + util.inherits(VerifyStream, Stream); + VerifyStream.prototype.verify = /* @__PURE__ */ __name(function verify2() { + try { + var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer); + var obj = jwsDecode(this.signature.buffer, this.encoding); + this.emit("done", valid, obj); + this.emit("data", valid); + this.emit("end"); + this.readable = false; + return valid; + } catch (e5) { + this.readable = false; + this.emit("error", e5); + this.emit("close"); + } + }, "verify"); + VerifyStream.decode = jwsDecode; + VerifyStream.isValid = isValidJws; + VerifyStream.verify = jwsVerify; + module.exports = VerifyStream; + } +}); + +// ../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/index.js +var require_jws = __commonJS({ + "../../node_modules/.pnpm/jws@4.0.1/node_modules/jws/index.js"(exports) { + var SignStream = require_sign_stream(); + var VerifyStream = require_verify_stream(); + var ALGORITHMS = [ + "HS256", + "HS384", + "HS512", + "RS256", + "RS384", + "RS512", + "PS256", + "PS384", + "PS512", + "ES256", + "ES384", + "ES512" + ]; + exports.ALGORITHMS = ALGORITHMS; + exports.sign = SignStream.sign; + exports.verify = VerifyStream.verify; + exports.decode = VerifyStream.decode; + exports.isValid = VerifyStream.isValid; + exports.createSign = /* @__PURE__ */ __name(function createSign(opts) { + return new SignStream(opts); + }, "createSign"); + exports.createVerify = /* @__PURE__ */ __name(function createVerify(opts) { + return new VerifyStream(opts); + }, "createVerify"); + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/decode.js +var require_decode = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/decode.js"(exports, module) { + var jws = require_jws(); + module.exports = function(jwt2, options) { + options = options || {}; + var decoded = jws.decode(jwt2, options); + if (!decoded) { + return null; + } + var payload = decoded.payload; + if (typeof payload === "string") { + try { + var obj = JSON.parse(payload); + if (obj !== null && typeof obj === "object") { + payload = obj; + } + } catch (e5) { + } + } + if (options.complete === true) { + return { + header: decoded.header, + payload, + signature: decoded.signature + }; + } + return payload; + }; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/JsonWebTokenError.js +var require_JsonWebTokenError = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/JsonWebTokenError.js"(exports, module) { + var JsonWebTokenError2 = /* @__PURE__ */ __name(function(message, error62) { + Error.call(this, message); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "JsonWebTokenError"; + this.message = message; + if (error62) this.inner = error62; + }, "JsonWebTokenError"); + JsonWebTokenError2.prototype = Object.create(Error.prototype); + JsonWebTokenError2.prototype.constructor = JsonWebTokenError2; + module.exports = JsonWebTokenError2; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/NotBeforeError.js +var require_NotBeforeError = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/NotBeforeError.js"(exports, module) { + var JsonWebTokenError2 = require_JsonWebTokenError(); + var NotBeforeError2 = /* @__PURE__ */ __name(function(message, date5) { + JsonWebTokenError2.call(this, message); + this.name = "NotBeforeError"; + this.date = date5; + }, "NotBeforeError"); + NotBeforeError2.prototype = Object.create(JsonWebTokenError2.prototype); + NotBeforeError2.prototype.constructor = NotBeforeError2; + module.exports = NotBeforeError2; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/TokenExpiredError.js +var require_TokenExpiredError = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/TokenExpiredError.js"(exports, module) { + var JsonWebTokenError2 = require_JsonWebTokenError(); + var TokenExpiredError2 = /* @__PURE__ */ __name(function(message, expiredAt) { + JsonWebTokenError2.call(this, message); + this.name = "TokenExpiredError"; + this.expiredAt = expiredAt; + }, "TokenExpiredError"); + TokenExpiredError2.prototype = Object.create(JsonWebTokenError2.prototype); + TokenExpiredError2.prototype.constructor = TokenExpiredError2; + module.exports = TokenExpiredError2; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/timespan.js +var require_timespan = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/timespan.js"(exports, module) { + var ms = require_ms(); + module.exports = function(time3, iat) { + var timestamp = iat || Math.floor(Date.now() / 1e3); + if (typeof time3 === "string") { + var milliseconds = ms(time3); + if (typeof milliseconds === "undefined") { + return; + } + return Math.floor(timestamp + milliseconds / 1e3); + } else if (typeof time3 === "number") { + return timestamp + time3; + } else { + return; + } + }; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js +var require_constants = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js"(exports, module) { + "use strict"; + var SEMVER_SPEC_VERSION = "2.0.0"; + var MAX_LENGTH = 256; + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ + 9007199254740991; + var MAX_SAFE_COMPONENT_LENGTH = 16; + var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; + var RELEASE_TYPES = [ + "major", + "premajor", + "minor", + "preminor", + "patch", + "prepatch", + "prerelease" + ]; + module.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 1, + FLAG_LOOSE: 2 + }; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js +var require_debug = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js"(exports, module) { + "use strict"; + var debug3 = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { + }; + module.exports = debug3; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js +var require_re = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js"(exports, module) { + "use strict"; + var { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH + } = require_constants(); + var debug3 = require_debug(); + exports = module.exports = {}; + var re = exports.re = []; + var safeRe = exports.safeRe = []; + var src = exports.src = []; + var safeSrc = exports.safeSrc = []; + var t = exports.t = {}; + var R = 0; + var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; + var safeRegexReplacements = [ + ["\\s", 1], + ["\\d", MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] + ]; + var makeSafeRegex = /* @__PURE__ */ __name((value) => { + for (const [token, max] of safeRegexReplacements) { + value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); + } + return value; + }, "makeSafeRegex"); + var createToken = /* @__PURE__ */ __name((name2, value, isGlobal) => { + const safe = makeSafeRegex(value); + const index = R++; + debug3(name2, index, value); + t[name2] = index; + src[index] = value; + safeSrc[index] = safe; + re[index] = new RegExp(value, isGlobal ? "g" : void 0); + safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); + }, "createToken"); + createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); + createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); + createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); + createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`); + createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`); + createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); + createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); + createToken("FULL", `^${src[t.FULLPLAIN]}$`); + createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); + createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`); + createToken("GTLT", "((?:<|>)?=?)"); + createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); + createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`); + createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`); + createToken("COERCERTL", src[t.COERCE], true); + createToken("COERCERTLFULL", src[t.COERCEFULL], true); + createToken("LONETILDE", "(?:~>?)"); + createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports.tildeTrimReplace = "$1~"; + createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("LONECARET", "(?:\\^)"); + createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports.caretTrimReplace = "$1^"; + createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports.comparatorTrimReplace = "$1$2$3"; + createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`); + createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`); + createToken("STAR", "(<|>)?=?\\s*\\*"); + createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); + createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js +var require_parse_options = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js"(exports, module) { + "use strict"; + var looseOption = Object.freeze({ loose: true }); + var emptyOpts = Object.freeze({}); + var parseOptions = /* @__PURE__ */ __name((options) => { + if (!options) { + return emptyOpts; + } + if (typeof options !== "object") { + return looseOption; + } + return options; + }, "parseOptions"); + module.exports = parseOptions; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js +var require_identifiers = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js"(exports, module) { + "use strict"; + var numeric = /^[0-9]+$/; + var compareIdentifiers = /* @__PURE__ */ __name((a5, b5) => { + if (typeof a5 === "number" && typeof b5 === "number") { + return a5 === b5 ? 0 : a5 < b5 ? -1 : 1; + } + const anum = numeric.test(a5); + const bnum = numeric.test(b5); + if (anum && bnum) { + a5 = +a5; + b5 = +b5; + } + return a5 === b5 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a5 < b5 ? -1 : 1; + }, "compareIdentifiers"); + var rcompareIdentifiers = /* @__PURE__ */ __name((a5, b5) => compareIdentifiers(b5, a5), "rcompareIdentifiers"); + module.exports = { + compareIdentifiers, + rcompareIdentifiers + }; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js +var require_semver = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js"(exports, module) { + "use strict"; + var debug3 = require_debug(); + var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); + var { safeRe: re, t } = require_re(); + var parseOptions = require_parse_options(); + var { compareIdentifiers } = require_identifiers(); + var isPrereleaseIdentifier = /* @__PURE__ */ __name((prerelease, identifier) => { + const identifiers = identifier.split("."); + if (identifiers.length > prerelease.length) { + return false; + } + for (let i5 = 0; i5 < identifiers.length; i5++) { + if (compareIdentifiers(prerelease[i5], identifiers[i5]) !== 0) { + return false; + } + } + return true; + }, "isPrereleaseIdentifier"); + var SemVer = class _SemVer { + static { + __name(this, "SemVer"); + } + constructor(version2, options) { + options = parseOptions(options); + if (version2 instanceof _SemVer) { + if (version2.loose === !!options.loose && version2.includePrerelease === !!options.includePrerelease) { + return version2; + } else { + version2 = version2.version; + } + } else if (typeof version2 !== "string") { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version2}".`); + } + if (version2.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ); + } + debug3("SemVer", version2, options); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + const m3 = version2.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + if (!m3) { + throw new TypeError(`Invalid Version: ${version2}`); + } + this.raw = version2; + this.major = +m3[1]; + this.minor = +m3[2]; + this.patch = +m3[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError("Invalid major version"); + } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError("Invalid minor version"); + } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError("Invalid patch version"); + } + if (!m3[4]) { + this.prerelease = []; + } else { + this.prerelease = m3[4].split(".").map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + return id; + }); + } + this.build = m3[5] ? m3[5].split(".") : []; + this.format(); + } + format() { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join(".")}`; + } + return this.version; + } + toString() { + return this.version; + } + compare(other) { + debug3("SemVer.compare", this.version, this.options, other); + if (!(other instanceof _SemVer)) { + if (typeof other === "string" && other === this.version) { + return 0; + } + other = new _SemVer(other, this.options); + } + if (other.version === this.version) { + return 0; + } + return this.compareMain(other) || this.comparePre(other); + } + compareMain(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + if (this.major < other.major) { + return -1; + } + if (this.major > other.major) { + return 1; + } + if (this.minor < other.minor) { + return -1; + } + if (this.minor > other.minor) { + return 1; + } + if (this.patch < other.patch) { + return -1; + } + if (this.patch > other.patch) { + return 1; + } + return 0; + } + comparePre(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + let i5 = 0; + do { + const a5 = this.prerelease[i5]; + const b5 = other.prerelease[i5]; + debug3("prerelease compare", i5, a5, b5); + if (a5 === void 0 && b5 === void 0) { + return 0; + } else if (b5 === void 0) { + return 1; + } else if (a5 === void 0) { + return -1; + } else if (a5 === b5) { + continue; + } else { + return compareIdentifiers(a5, b5); + } + } while (++i5); + } + compareBuild(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + let i5 = 0; + do { + const a5 = this.build[i5]; + const b5 = other.build[i5]; + debug3("build compare", i5, a5, b5); + if (a5 === void 0 && b5 === void 0) { + return 0; + } else if (b5 === void 0) { + return 1; + } else if (a5 === void 0) { + return -1; + } else if (a5 === b5) { + continue; + } else { + return compareIdentifiers(a5, b5); + } + } while (++i5); + } + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc(release2, identifier, identifierBase) { + if (release2.startsWith("pre")) { + if (!identifier && identifierBase === false) { + throw new Error("invalid increment argument: identifier is empty"); + } + if (identifier) { + const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]); + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`); + } + } + } + switch (release2) { + case "premajor": + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc("pre", identifier, identifierBase); + break; + case "preminor": + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc("pre", identifier, identifierBase); + break; + case "prepatch": + this.prerelease.length = 0; + this.inc("patch", identifier, identifierBase); + this.inc("pre", identifier, identifierBase); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case "prerelease": + if (this.prerelease.length === 0) { + this.inc("patch", identifier, identifierBase); + } + this.inc("pre", identifier, identifierBase); + break; + case "release": + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`); + } + this.prerelease.length = 0; + break; + case "major": + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case "minor": + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case "patch": + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case "pre": { + const base = Number(identifierBase) ? 1 : 0; + if (this.prerelease.length === 0) { + this.prerelease = [base]; + } else { + let i5 = this.prerelease.length; + while (--i5 >= 0) { + if (typeof this.prerelease[i5] === "number") { + this.prerelease[i5]++; + i5 = -2; + } + } + if (i5 === -1) { + if (identifier === this.prerelease.join(".") && identifierBase === false) { + throw new Error("invalid increment argument: identifier already exists"); + } + this.prerelease.push(base); + } + } + if (identifier) { + let prerelease = [identifier, base]; + if (identifierBase === false) { + prerelease = [identifier]; + } + if (isPrereleaseIdentifier(this.prerelease, identifier)) { + const prereleaseBase = this.prerelease[identifier.split(".").length]; + if (isNaN(prereleaseBase)) { + this.prerelease = prerelease; + } + } else { + this.prerelease = prerelease; + } + } + break; + } + default: + throw new Error(`invalid increment argument: ${release2}`); + } + this.raw = this.format(); + if (this.build.length) { + this.raw += `+${this.build.join(".")}`; + } + return this; + } + }; + module.exports = SemVer; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js +var require_parse = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var parse4 = /* @__PURE__ */ __name((version2, options, throwErrors = false) => { + if (version2 instanceof SemVer) { + return version2; + } + try { + return new SemVer(version2, options); + } catch (er) { + if (!throwErrors) { + return null; + } + throw er; + } + }, "parse"); + module.exports = parse4; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js +var require_valid = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"(exports, module) { + "use strict"; + var parse4 = require_parse(); + var valid = /* @__PURE__ */ __name((version2, options) => { + const v = parse4(version2, options); + return v ? v.version : null; + }, "valid"); + module.exports = valid; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js +var require_clean = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js"(exports, module) { + "use strict"; + var parse4 = require_parse(); + var clean = /* @__PURE__ */ __name((version2, options) => { + const s2 = parse4(version2.trim().replace(/^[=v]+/, ""), options); + return s2 ? s2.version : null; + }, "clean"); + module.exports = clean; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js +var require_inc = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var inc = /* @__PURE__ */ __name((version2, release2, options, identifier, identifierBase) => { + if (typeof options === "string") { + identifierBase = identifier; + identifier = options; + options = void 0; + } + try { + return new SemVer( + version2 instanceof SemVer ? version2.version : version2, + options + ).inc(release2, identifier, identifierBase).version; + } catch (er) { + return null; + } + }, "inc"); + module.exports = inc; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js +var require_diff = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js"(exports, module) { + "use strict"; + var parse4 = require_parse(); + var diff = /* @__PURE__ */ __name((version1, version2) => { + const v1 = parse4(version1, null, true); + const v2 = parse4(version2, null, true); + const comparison = v1.compare(v2); + if (comparison === 0) { + return null; + } + const v1Higher = comparison > 0; + const highVersion = v1Higher ? v1 : v2; + const lowVersion = v1Higher ? v2 : v1; + const highHasPre = !!highVersion.prerelease.length; + const lowHasPre = !!lowVersion.prerelease.length; + if (lowHasPre && !highHasPre) { + if (!lowVersion.patch && !lowVersion.minor) { + return "major"; + } + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return "minor"; + } + return "patch"; + } + } + const prefix = highHasPre ? "pre" : ""; + if (v1.major !== v2.major) { + return prefix + "major"; + } + if (v1.minor !== v2.minor) { + return prefix + "minor"; + } + if (v1.patch !== v2.patch) { + return prefix + "patch"; + } + return "prerelease"; + }, "diff"); + module.exports = diff; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js +var require_major = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var major = /* @__PURE__ */ __name((a5, loose) => new SemVer(a5, loose).major, "major"); + module.exports = major; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js +var require_minor = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var minor = /* @__PURE__ */ __name((a5, loose) => new SemVer(a5, loose).minor, "minor"); + module.exports = minor; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js +var require_patch = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var patch = /* @__PURE__ */ __name((a5, loose) => new SemVer(a5, loose).patch, "patch"); + module.exports = patch; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js +var require_prerelease = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js"(exports, module) { + "use strict"; + var parse4 = require_parse(); + var prerelease = /* @__PURE__ */ __name((version2, options) => { + const parsed2 = parse4(version2, options); + return parsed2 && parsed2.prerelease.length ? parsed2.prerelease : null; + }, "prerelease"); + module.exports = prerelease; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js +var require_compare = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var compare = /* @__PURE__ */ __name((a5, b5, loose) => new SemVer(a5, loose).compare(new SemVer(b5, loose)), "compare"); + module.exports = compare; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js +var require_rcompare = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var rcompare = /* @__PURE__ */ __name((a5, b5, loose) => compare(b5, a5, loose), "rcompare"); + module.exports = rcompare; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js +var require_compare_loose = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var compareLoose = /* @__PURE__ */ __name((a5, b5) => compare(a5, b5, true), "compareLoose"); + module.exports = compareLoose; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js +var require_compare_build = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var compareBuild = /* @__PURE__ */ __name((a5, b5, loose) => { + const versionA = new SemVer(a5, loose); + const versionB = new SemVer(b5, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); + }, "compareBuild"); + module.exports = compareBuild; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js +var require_sort = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js"(exports, module) { + "use strict"; + var compareBuild = require_compare_build(); + var sort = /* @__PURE__ */ __name((list, loose) => list.sort((a5, b5) => compareBuild(a5, b5, loose)), "sort"); + module.exports = sort; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js +var require_rsort = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js"(exports, module) { + "use strict"; + var compareBuild = require_compare_build(); + var rsort = /* @__PURE__ */ __name((list, loose) => list.sort((a5, b5) => compareBuild(b5, a5, loose)), "rsort"); + module.exports = rsort; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js +var require_gt = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var gt = /* @__PURE__ */ __name((a5, b5, loose) => compare(a5, b5, loose) > 0, "gt"); + module.exports = gt; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js +var require_lt = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var lt = /* @__PURE__ */ __name((a5, b5, loose) => compare(a5, b5, loose) < 0, "lt"); + module.exports = lt; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js +var require_eq = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var eq = /* @__PURE__ */ __name((a5, b5, loose) => compare(a5, b5, loose) === 0, "eq"); + module.exports = eq; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js +var require_neq = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var neq = /* @__PURE__ */ __name((a5, b5, loose) => compare(a5, b5, loose) !== 0, "neq"); + module.exports = neq; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js +var require_gte = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var gte = /* @__PURE__ */ __name((a5, b5, loose) => compare(a5, b5, loose) >= 0, "gte"); + module.exports = gte; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js +var require_lte = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js"(exports, module) { + "use strict"; + var compare = require_compare(); + var lte = /* @__PURE__ */ __name((a5, b5, loose) => compare(a5, b5, loose) <= 0, "lte"); + module.exports = lte; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js +var require_cmp = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js"(exports, module) { + "use strict"; + var eq = require_eq(); + var neq = require_neq(); + var gt = require_gt(); + var gte = require_gte(); + var lt = require_lt(); + var lte = require_lte(); + var cmp = /* @__PURE__ */ __name((a5, op, b5, loose) => { + switch (op) { + case "===": + if (typeof a5 === "object") { + a5 = a5.version; + } + if (typeof b5 === "object") { + b5 = b5.version; + } + return a5 === b5; + case "!==": + if (typeof a5 === "object") { + a5 = a5.version; + } + if (typeof b5 === "object") { + b5 = b5.version; + } + return a5 !== b5; + case "": + case "=": + case "==": + return eq(a5, b5, loose); + case "!=": + return neq(a5, b5, loose); + case ">": + return gt(a5, b5, loose); + case ">=": + return gte(a5, b5, loose); + case "<": + return lt(a5, b5, loose); + case "<=": + return lte(a5, b5, loose); + default: + throw new TypeError(`Invalid operator: ${op}`); + } + }, "cmp"); + module.exports = cmp; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js +var require_coerce = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var parse4 = require_parse(); + var { safeRe: re, t } = require_re(); + var coerce = /* @__PURE__ */ __name((version2, options) => { + if (version2 instanceof SemVer) { + return version2; + } + if (typeof version2 === "number") { + version2 = String(version2); + } + if (typeof version2 !== "string") { + return null; + } + options = options || {}; + let match = null; + if (!options.rtl) { + match = version2.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]); + } else { + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]; + let next; + while ((next = coerceRtlRegex.exec(version2)) && (!match || match.index + match[0].length !== version2.length)) { + if (!match || next.index + next[0].length !== match.index + match[0].length) { + match = next; + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; + } + coerceRtlRegex.lastIndex = -1; + } + if (match === null) { + return null; + } + const major = match[2]; + const minor = match[3] || "0"; + const patch = match[4] || "0"; + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ""; + const build2 = options.includePrerelease && match[6] ? `+${match[6]}` : ""; + return parse4(`${major}.${minor}.${patch}${prerelease}${build2}`, options); + }, "coerce"); + module.exports = coerce; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js +var require_truncate = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js"(exports, module) { + "use strict"; + var parse4 = require_parse(); + var constants = require_constants(); + var SemVer = require_semver(); + var truncate = /* @__PURE__ */ __name((version2, truncation, options) => { + if (!constants.RELEASE_TYPES.includes(truncation)) { + return null; + } + const clonedVersion = cloneInputVersion(version2, options); + return clonedVersion && doTruncation(clonedVersion, truncation); + }, "truncate"); + var cloneInputVersion = /* @__PURE__ */ __name((version2, options) => { + const versionStringToParse = version2 instanceof SemVer ? version2.version : version2; + return parse4(versionStringToParse, options); + }, "cloneInputVersion"); + var doTruncation = /* @__PURE__ */ __name((version2, truncation) => { + if (isPrerelease(truncation)) { + return version2.version; + } + version2.prerelease = []; + switch (truncation) { + case "major": + version2.minor = 0; + version2.patch = 0; + break; + case "minor": + version2.patch = 0; + break; + } + return version2.format(); + }, "doTruncation"); + var isPrerelease = /* @__PURE__ */ __name((type) => { + return type.startsWith("pre"); + }, "isPrerelease"); + module.exports = truncate; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js +var require_lrucache = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js"(exports, module) { + "use strict"; + var LRUCache = class { + static { + __name(this, "LRUCache"); + } + constructor() { + this.max = 1e3; + this.map = /* @__PURE__ */ new Map(); + } + get(key) { + const value = this.map.get(key); + if (value === void 0) { + return void 0; + } else { + this.map.delete(key); + this.map.set(key, value); + return value; + } + } + delete(key) { + return this.map.delete(key); + } + set(key, value) { + const deleted = this.delete(key); + if (!deleted && value !== void 0) { + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value; + this.delete(firstKey); + } + this.map.set(key, value); + } + return this; + } + }; + module.exports = LRUCache; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js +var require_range = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js"(exports, module) { + "use strict"; + var SPACE_CHARACTERS = /\s+/g; + var Range = class _Range { + static { + __name(this, "Range"); + } + constructor(range, options) { + options = parseOptions(options); + if (range instanceof _Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new _Range(range.raw, options); + } + } + if (range instanceof Comparator) { + this.raw = range.value; + this.set = [[range]]; + this.formatted = void 0; + return this; + } + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + this.raw = range.trim().replace(SPACE_CHARACTERS, " "); + this.set = this.raw.split("||").map((r5) => this.parseRange(r5.trim())).filter((c5) => c5.length); + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`); + } + if (this.set.length > 1) { + const first = this.set[0]; + this.set = this.set.filter((c5) => !isNullSet(c5[0])); + if (this.set.length === 0) { + this.set = [first]; + } else if (this.set.length > 1) { + for (const c5 of this.set) { + if (c5.length === 1 && isAny(c5[0])) { + this.set = [c5]; + break; + } + } + } + } + this.formatted = void 0; + } + get range() { + if (this.formatted === void 0) { + this.formatted = ""; + for (let i5 = 0; i5 < this.set.length; i5++) { + if (i5 > 0) { + this.formatted += "||"; + } + const comps = this.set[i5]; + for (let k5 = 0; k5 < comps.length; k5++) { + if (k5 > 0) { + this.formatted += " "; + } + this.formatted += comps[k5].toString().trim(); + } + } + } + return this.formatted; + } + format() { + return this.range; + } + toString() { + return this.range; + } + parseRange(range) { + range = range.replace(BUILDSTRIPRE, ""); + const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE); + const memoKey = memoOpts + ":" + range; + const cached2 = cache5.get(memoKey); + if (cached2) { + return cached2; + } + const loose = this.options.loose; + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug3("hyphen replace", range); + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug3("comparator trim", range); + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + debug3("tilde trim", range); + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + debug3("caret trim", range); + let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options)); + if (loose) { + rangeList = rangeList.filter((comp) => { + debug3("loose invalid filter", comp, this.options); + return !!comp.match(re[t.COMPARATORLOOSE]); + }); + } + debug3("range list", rangeList); + const rangeMap = /* @__PURE__ */ new Map(); + const comparators = rangeList.map((comp) => new Comparator(comp, this.options)); + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp]; + } + rangeMap.set(comp.value, comp); + } + if (rangeMap.size > 1 && rangeMap.has("")) { + rangeMap.delete(""); + } + const result = [...rangeMap.values()]; + cache5.set(memoKey, result); + return result; + } + intersects(range, options) { + if (!(range instanceof _Range)) { + throw new TypeError("a Range is required"); + } + return this.set.some((thisComparators) => { + return isSatisfiable(thisComparators, options) && range.set.some((rangeComparators) => { + return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options); + }); + }); + }); + }); + } + // if ANY of the sets match ALL of its comparators, then pass + test(version2) { + if (!version2) { + return false; + } + if (typeof version2 === "string") { + try { + version2 = new SemVer(version2, this.options); + } catch (er) { + return false; + } + } + for (let i5 = 0; i5 < this.set.length; i5++) { + if (testSet(this.set[i5], version2, this.options)) { + return true; + } + } + return false; + } + }; + module.exports = Range; + var LRU = require_lrucache(); + var cache5 = new LRU(); + var parseOptions = require_parse_options(); + var Comparator = require_comparator(); + var debug3 = require_debug(); + var SemVer = require_semver(); + var { + safeRe: re, + src, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace + } = require_re(); + var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants(); + var BUILDSTRIPRE = new RegExp(src[t.BUILD], "g"); + var isNullSet = /* @__PURE__ */ __name((c5) => c5.value === "<0.0.0-0", "isNullSet"); + var isAny = /* @__PURE__ */ __name((c5) => c5.value === "", "isAny"); + var isSatisfiable = /* @__PURE__ */ __name((comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); + } + return result; + }, "isSatisfiable"); + var parseComparator = /* @__PURE__ */ __name((comp, options) => { + comp = comp.replace(re[t.BUILD], ""); + debug3("comp", comp, options); + comp = replaceCarets(comp, options); + debug3("caret", comp); + comp = replaceTildes(comp, options); + debug3("tildes", comp); + comp = replaceXRanges(comp, options); + debug3("xrange", comp); + comp = replaceStars(comp, options); + debug3("stars", comp); + return comp; + }, "parseComparator"); + var isX = /* @__PURE__ */ __name((id) => !id || id.toLowerCase() === "x" || id === "*", "isX"); + var invalidXRangeOrder = /* @__PURE__ */ __name((M, m3, p3) => isX(M) && !isX(m3) || isX(m3) && p3 && !isX(p3), "invalidXRangeOrder"); + var replaceTildes = /* @__PURE__ */ __name((comp, options) => { + return comp.trim().split(/\s+/).map((c5) => replaceTilde(c5, options)).join(" "); + }, "replaceTildes"); + var replaceTilde = /* @__PURE__ */ __name((comp, options) => { + const r5 = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + const z2 = options.includePrerelease ? "-0" : ""; + return comp.replace(r5, (_, M, m3, p3, pr) => { + debug3("tilde", comp, _, M, m3, p3, pr); + let ret; + if (isX(M)) { + ret = ""; + } else if (isX(m3)) { + ret = `>=${M}.0.0${z2} <${+M + 1}.0.0-0`; + } else if (isX(p3)) { + ret = `>=${M}.${m3}.0${z2} <${M}.${+m3 + 1}.0-0`; + } else if (pr) { + debug3("replaceTilde pr", pr); + ret = `>=${M}.${m3}.${p3}-${pr} <${M}.${+m3 + 1}.0-0`; + } else { + ret = `>=${M}.${m3}.${p3} <${M}.${+m3 + 1}.0-0`; + } + debug3("tilde return", ret); + return ret; + }); + }, "replaceTilde"); + var replaceCarets = /* @__PURE__ */ __name((comp, options) => { + return comp.trim().split(/\s+/).map((c5) => replaceCaret(c5, options)).join(" "); + }, "replaceCarets"); + var replaceCaret = /* @__PURE__ */ __name((comp, options) => { + debug3("caret", comp, options); + const r5 = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + const z2 = options.includePrerelease ? "-0" : ""; + return comp.replace(r5, (_, M, m3, p3, pr) => { + debug3("caret", comp, _, M, m3, p3, pr); + let ret; + if (isX(M)) { + ret = ""; + } else if (isX(m3)) { + ret = `>=${M}.0.0${z2} <${+M + 1}.0.0-0`; + } else if (isX(p3)) { + if (M === "0") { + ret = `>=${M}.${m3}.0${z2} <${M}.${+m3 + 1}.0-0`; + } else { + ret = `>=${M}.${m3}.0${z2} <${+M + 1}.0.0-0`; + } + } else if (pr) { + debug3("replaceCaret pr", pr); + if (M === "0") { + if (m3 === "0") { + ret = `>=${M}.${m3}.${p3}-${pr} <${M}.${m3}.${+p3 + 1}-0`; + } else { + ret = `>=${M}.${m3}.${p3}-${pr} <${M}.${+m3 + 1}.0-0`; + } + } else { + ret = `>=${M}.${m3}.${p3}-${pr} <${+M + 1}.0.0-0`; + } + } else { + debug3("no pr"); + if (M === "0") { + if (m3 === "0") { + ret = `>=${M}.${m3}.${p3} <${M}.${m3}.${+p3 + 1}-0`; + } else { + ret = `>=${M}.${m3}.${p3} <${M}.${+m3 + 1}.0-0`; + } + } else { + ret = `>=${M}.${m3}.${p3} <${+M + 1}.0.0-0`; + } + } + debug3("caret return", ret); + return ret; + }); + }, "replaceCaret"); + var replaceXRanges = /* @__PURE__ */ __name((comp, options) => { + debug3("replaceXRanges", comp, options); + return comp.split(/\s+/).map((c5) => replaceXRange(c5, options)).join(" "); + }, "replaceXRanges"); + var replaceXRange = /* @__PURE__ */ __name((comp, options) => { + comp = comp.trim(); + const r5 = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r5, (ret, gtlt, M, m3, p3, pr) => { + debug3("xRange", comp, ret, gtlt, M, m3, p3, pr); + if (invalidXRangeOrder(M, m3, p3)) { + return comp; + } + const xM = isX(M); + const xm = xM || isX(m3); + const xp = xm || isX(p3); + const anyX = xp; + if (gtlt === "=" && anyX) { + gtlt = ""; + } + pr = options.includePrerelease ? "-0" : ""; + if (xM) { + if (gtlt === ">" || gtlt === "<") { + ret = "<0.0.0-0"; + } else { + ret = "*"; + } + } else if (gtlt && anyX) { + if (xm) { + m3 = 0; + } + p3 = 0; + if (gtlt === ">") { + gtlt = ">="; + if (xm) { + M = +M + 1; + m3 = 0; + p3 = 0; + } else { + m3 = +m3 + 1; + p3 = 0; + } + } else if (gtlt === "<=") { + gtlt = "<"; + if (xm) { + M = +M + 1; + } else { + m3 = +m3 + 1; + } + } + if (gtlt === "<") { + pr = "-0"; + } + ret = `${gtlt + M}.${m3}.${p3}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m3}.0${pr} <${M}.${+m3 + 1}.0-0`; + } + debug3("xRange return", ret); + return ret; + }); + }, "replaceXRange"); + var replaceStars = /* @__PURE__ */ __name((comp, options) => { + debug3("replaceStars", comp, options); + return comp.trim().replace(re[t.STAR], ""); + }, "replaceStars"); + var replaceGTE0 = /* @__PURE__ */ __name((comp, options) => { + debug3("replaceGTE0", comp, options); + return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ""); + }, "replaceGTE0"); + var hyphenReplace = /* @__PURE__ */ __name((incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = ""; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? "-0" : ""}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? "-0" : ""}`; + } + if (isX(tM)) { + to = ""; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; + } + return `${from} ${to}`.trim(); + }, "hyphenReplace"); + var testSet = /* @__PURE__ */ __name((set2, version2, options) => { + for (let i5 = 0; i5 < set2.length; i5++) { + if (!set2[i5].test(version2)) { + return false; + } + } + if (version2.prerelease.length && !options.includePrerelease) { + for (let i5 = 0; i5 < set2.length; i5++) { + debug3(set2[i5].semver); + if (set2[i5].semver === Comparator.ANY) { + continue; + } + if (set2[i5].semver.prerelease.length > 0) { + const allowed = set2[i5].semver; + if (allowed.major === version2.major && allowed.minor === version2.minor && allowed.patch === version2.patch) { + return true; + } + } + } + return false; + } + return true; + }, "testSet"); + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js +var require_comparator = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js"(exports, module) { + "use strict"; + var ANY = /* @__PURE__ */ Symbol("SemVer ANY"); + var Comparator = class _Comparator { + static { + __name(this, "Comparator"); + } + static get ANY() { + return ANY; + } + constructor(comp, options) { + options = parseOptions(options); + if (comp instanceof _Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } + comp = comp.trim().split(/\s+/).join(" "); + debug3("comparator", comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + if (this.semver === ANY) { + this.value = ""; + } else { + this.value = this.operator + this.semver.version; + } + debug3("comp", this); + } + parse(comp) { + const r5 = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const m3 = comp.match(r5); + if (!m3) { + throw new TypeError(`Invalid comparator: ${comp}`); + } + this.operator = m3[1] !== void 0 ? m3[1] : ""; + if (this.operator === "=") { + this.operator = ""; + } + if (!m3[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m3[2], this.options.loose); + } + } + toString() { + return this.value; + } + test(version2) { + debug3("Comparator.test", version2, this.options.loose); + if (this.semver === ANY || version2 === ANY) { + return true; + } + if (typeof version2 === "string") { + try { + version2 = new SemVer(version2, this.options); + } catch (er) { + return false; + } + } + return cmp(version2, this.operator, this.semver, this.options); + } + intersects(comp, options) { + if (!(comp instanceof _Comparator)) { + throw new TypeError("a Comparator is required"); + } + if (this.operator === "") { + if (this.value === "") { + return true; + } + return new Range(comp.value, options).test(this.value); + } else if (comp.operator === "") { + if (comp.value === "") { + return true; + } + return new Range(this.value, options).test(comp.semver); + } + options = parseOptions(options); + if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) { + return false; + } + if (!options.includePrerelease && (this.value.startsWith("<0.0.0") || comp.value.startsWith("<0.0.0"))) { + return false; + } + if (this.operator.startsWith(">") && comp.operator.startsWith(">")) { + return true; + } + if (this.operator.startsWith("<") && comp.operator.startsWith("<")) { + return true; + } + if (this.semver.version === comp.semver.version && this.operator.includes("=") && comp.operator.includes("=")) { + return true; + } + if (cmp(this.semver, "<", comp.semver, options) && this.operator.startsWith(">") && comp.operator.startsWith("<")) { + return true; + } + if (cmp(this.semver, ">", comp.semver, options) && this.operator.startsWith("<") && comp.operator.startsWith(">")) { + return true; + } + return false; + } + }; + module.exports = Comparator; + var parseOptions = require_parse_options(); + var { safeRe: re, t } = require_re(); + var cmp = require_cmp(); + var debug3 = require_debug(); + var SemVer = require_semver(); + var Range = require_range(); + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js +var require_satisfies = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js"(exports, module) { + "use strict"; + var Range = require_range(); + var satisfies = /* @__PURE__ */ __name((version2, range, options) => { + try { + range = new Range(range, options); + } catch (er) { + return false; + } + return range.test(version2); + }, "satisfies"); + module.exports = satisfies; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js +var require_to_comparators = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js"(exports, module) { + "use strict"; + var Range = require_range(); + var toComparators = /* @__PURE__ */ __name((range, options) => new Range(range, options).set.map((comp) => comp.map((c5) => c5.value).join(" ").trim().split(" ")), "toComparators"); + module.exports = toComparators; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js +var require_max_satisfying = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range(); + var maxSatisfying = /* @__PURE__ */ __name((versions2, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions2.forEach((v) => { + if (rangeObj.test(v)) { + if (!max || maxSV.compare(v) === -1) { + max = v; + maxSV = new SemVer(max, options); + } + } + }); + return max; + }, "maxSatisfying"); + module.exports = maxSatisfying; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js +var require_min_satisfying = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range(); + var minSatisfying = /* @__PURE__ */ __name((versions2, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions2.forEach((v) => { + if (rangeObj.test(v)) { + if (!min || minSV.compare(v) === 1) { + min = v; + minSV = new SemVer(min, options); + } + } + }); + return min; + }, "minSatisfying"); + module.exports = minSatisfying; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js +var require_min_version = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range(); + var gt = require_gt(); + var minVersion = /* @__PURE__ */ __name((range, loose) => { + range = new Range(range, loose); + let minver = new SemVer("0.0.0"); + if (range.test(minver)) { + return minver; + } + minver = new SemVer("0.0.0-0"); + if (range.test(minver)) { + return minver; + } + minver = null; + for (let i5 = 0; i5 < range.set.length; ++i5) { + const comparators = range.set[i5]; + let setMin = null; + comparators.forEach((comparator) => { + const compver = new SemVer(comparator.semver.version); + switch (comparator.operator) { + case ">": + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + /* fallthrough */ + case "": + case ">=": + if (!setMin || gt(compver, setMin)) { + setMin = compver; + } + break; + case "<": + case "<=": + break; + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`); + } + }); + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin; + } + } + if (minver && range.test(minver)) { + return minver; + } + return null; + }, "minVersion"); + module.exports = minVersion; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js +var require_valid2 = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js"(exports, module) { + "use strict"; + var Range = require_range(); + var validRange = /* @__PURE__ */ __name((range, options) => { + try { + return new Range(range, options).range || "*"; + } catch (er) { + return null; + } + }, "validRange"); + module.exports = validRange; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js +var require_outside = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js"(exports, module) { + "use strict"; + var SemVer = require_semver(); + var Comparator = require_comparator(); + var { ANY } = Comparator; + var Range = require_range(); + var satisfies = require_satisfies(); + var gt = require_gt(); + var lt = require_lt(); + var lte = require_lte(); + var gte = require_gte(); + var outside = /* @__PURE__ */ __name((version2, range, hilo, options) => { + version2 = new SemVer(version2, options); + range = new Range(range, options); + let gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case ">": + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = ">"; + ecomp = ">="; + break; + case "<": + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = "<"; + ecomp = "<="; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + if (satisfies(version2, range, options)) { + return false; + } + for (let i5 = 0; i5 < range.set.length; ++i5) { + const comparators = range.set[i5]; + let high = null; + let low = null; + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator(">=0.0.0"); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + if (high.operator === comp || high.operator === ecomp) { + return false; + } + if ((!low.operator || low.operator === comp) && ltefn(version2, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version2, low.semver)) { + return false; + } + } + return true; + }, "outside"); + module.exports = outside; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js +var require_gtr = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js"(exports, module) { + "use strict"; + var outside = require_outside(); + var gtr = /* @__PURE__ */ __name((version2, range, options) => outside(version2, range, ">", options), "gtr"); + module.exports = gtr; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js +var require_ltr = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js"(exports, module) { + "use strict"; + var outside = require_outside(); + var ltr = /* @__PURE__ */ __name((version2, range, options) => outside(version2, range, "<", options), "ltr"); + module.exports = ltr; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js +var require_intersects = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js"(exports, module) { + "use strict"; + var Range = require_range(); + var intersects = /* @__PURE__ */ __name((r1, r22, options) => { + r1 = new Range(r1, options); + r22 = new Range(r22, options); + return r1.intersects(r22, options); + }, "intersects"); + module.exports = intersects; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js +var require_simplify = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js"(exports, module) { + "use strict"; + var satisfies = require_satisfies(); + var compare = require_compare(); + module.exports = (versions2, range, options) => { + const set2 = []; + let first = null; + let prev = null; + const v = versions2.sort((a5, b5) => compare(a5, b5, options)); + for (const version2 of v) { + const included = satisfies(version2, range, options); + if (included) { + prev = version2; + if (!first) { + first = version2; + } + } else { + if (prev) { + set2.push([first, prev]); + } + prev = null; + first = null; + } + } + if (first) { + set2.push([first, null]); + } + const ranges = []; + for (const [min, max] of set2) { + if (min === max) { + ranges.push(min); + } else if (!max && min === v[0]) { + ranges.push("*"); + } else if (!max) { + ranges.push(`>=${min}`); + } else if (min === v[0]) { + ranges.push(`<=${max}`); + } else { + ranges.push(`${min} - ${max}`); + } + } + const simplified = ranges.join(" || "); + const original = typeof range.raw === "string" ? range.raw : String(range); + return simplified.length < original.length ? simplified : range; + }; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js +var require_subset = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js"(exports, module) { + "use strict"; + var Range = require_range(); + var Comparator = require_comparator(); + var { ANY } = Comparator; + var satisfies = require_satisfies(); + var compare = require_compare(); + var subset = /* @__PURE__ */ __name((sub, dom, options = {}) => { + if (sub === dom) { + return true; + } + sub = new Range(sub, options); + dom = new Range(dom, options); + let sawNonNull = false; + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options); + sawNonNull = sawNonNull || isSub !== null; + if (isSub) { + continue OUTER; + } + } + if (sawNonNull) { + return false; + } + } + return true; + }, "subset"); + var minimumVersionWithPreRelease = [new Comparator(">=0.0.0-0")]; + var minimumVersion = [new Comparator(">=0.0.0")]; + var simpleSubset = /* @__PURE__ */ __name((sub, dom, options) => { + if (sub === dom) { + return true; + } + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true; + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease; + } else { + sub = minimumVersion; + } + } + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true; + } else { + dom = minimumVersion; + } + } + const eqSet = /* @__PURE__ */ new Set(); + let gt, lt; + for (const c5 of sub) { + if (c5.operator === ">" || c5.operator === ">=") { + gt = higherGT(gt, c5, options); + } else if (c5.operator === "<" || c5.operator === "<=") { + lt = lowerLT(lt, c5, options); + } else { + eqSet.add(c5.semver); + } + } + if (eqSet.size > 1) { + return null; + } + let gtltComp; + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options); + if (gtltComp > 0) { + return null; + } else if (gtltComp === 0 && (gt.operator !== ">=" || lt.operator !== "<=")) { + return null; + } + } + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null; + } + if (lt && !satisfies(eq, String(lt), options)) { + return null; + } + for (const c5 of dom) { + if (!satisfies(eq, String(c5), options)) { + return false; + } + } + return true; + } + let higher, lower; + let hasDomLT, hasDomGT; + let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; + let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false; + } + for (const c5 of dom) { + hasDomGT = hasDomGT || c5.operator === ">" || c5.operator === ">="; + hasDomLT = hasDomLT || c5.operator === "<" || c5.operator === "<="; + if (gt) { + if (needDomGTPre) { + if (c5.semver.prerelease && c5.semver.prerelease.length && c5.semver.major === needDomGTPre.major && c5.semver.minor === needDomGTPre.minor && c5.semver.patch === needDomGTPre.patch) { + needDomGTPre = false; + } + } + if (c5.operator === ">" || c5.operator === ">=") { + higher = higherGT(gt, c5, options); + if (higher === c5 && higher !== gt) { + return false; + } + } else if (gt.operator === ">=" && !c5.test(gt.semver)) { + return false; + } + } + if (lt) { + if (needDomLTPre) { + if (c5.semver.prerelease && c5.semver.prerelease.length && c5.semver.major === needDomLTPre.major && c5.semver.minor === needDomLTPre.minor && c5.semver.patch === needDomLTPre.patch) { + needDomLTPre = false; + } + } + if (c5.operator === "<" || c5.operator === "<=") { + lower = lowerLT(lt, c5, options); + if (lower === c5 && lower !== lt) { + return false; + } + } else if (lt.operator === "<=" && !c5.test(lt.semver)) { + return false; + } + } + if (!c5.operator && (lt || gt) && gtltComp !== 0) { + return false; + } + } + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false; + } + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false; + } + if (needDomGTPre || needDomLTPre) { + return false; + } + return true; + }, "simpleSubset"); + var higherGT = /* @__PURE__ */ __name((a5, b5, options) => { + if (!a5) { + return b5; + } + const comp = compare(a5.semver, b5.semver, options); + return comp > 0 ? a5 : comp < 0 ? b5 : b5.operator === ">" && a5.operator === ">=" ? b5 : a5; + }, "higherGT"); + var lowerLT = /* @__PURE__ */ __name((a5, b5, options) => { + if (!a5) { + return b5; + } + const comp = compare(a5.semver, b5.semver, options); + return comp < 0 ? a5 : comp > 0 ? b5 : b5.operator === "<" && a5.operator === "<=" ? b5 : a5; + }, "lowerLT"); + module.exports = subset; + } +}); + +// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js +var require_semver2 = __commonJS({ + "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js"(exports, module) { + "use strict"; + var internalRe = require_re(); + var constants = require_constants(); + var SemVer = require_semver(); + var identifiers = require_identifiers(); + var parse4 = require_parse(); + var valid = require_valid(); + var clean = require_clean(); + var inc = require_inc(); + var diff = require_diff(); + var major = require_major(); + var minor = require_minor(); + var patch = require_patch(); + var prerelease = require_prerelease(); + var compare = require_compare(); + var rcompare = require_rcompare(); + var compareLoose = require_compare_loose(); + var compareBuild = require_compare_build(); + var sort = require_sort(); + var rsort = require_rsort(); + var gt = require_gt(); + var lt = require_lt(); + var eq = require_eq(); + var neq = require_neq(); + var gte = require_gte(); + var lte = require_lte(); + var cmp = require_cmp(); + var coerce = require_coerce(); + var truncate = require_truncate(); + var Comparator = require_comparator(); + var Range = require_range(); + var satisfies = require_satisfies(); + var toComparators = require_to_comparators(); + var maxSatisfying = require_max_satisfying(); + var minSatisfying = require_min_satisfying(); + var minVersion = require_min_version(); + var validRange = require_valid2(); + var outside = require_outside(); + var gtr = require_gtr(); + var ltr = require_ltr(); + var intersects = require_intersects(); + var simplifyRange = require_simplify(); + var subset = require_subset(); + module.exports = { + parse: parse4, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + truncate, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers + }; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js +var require_asymmetricKeyDetailsSupported = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js"(exports, module) { + var semver = require_semver2(); + module.exports = semver.satisfies(process.version, ">=15.7.0"); + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js +var require_rsaPssKeyDetailsSupported = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js"(exports, module) { + var semver = require_semver2(); + module.exports = semver.satisfies(process.version, ">=16.9.0"); + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js +var require_validateAsymmetricKey = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js"(exports, module) { + var ASYMMETRIC_KEY_DETAILS_SUPPORTED = require_asymmetricKeyDetailsSupported(); + var RSA_PSS_KEY_DETAILS_SUPPORTED = require_rsaPssKeyDetailsSupported(); + var allowedAlgorithmsForKeys = { + "ec": ["ES256", "ES384", "ES512"], + "rsa": ["RS256", "PS256", "RS384", "PS384", "RS512", "PS512"], + "rsa-pss": ["PS256", "PS384", "PS512"] + }; + var allowedCurves = { + ES256: "prime256v1", + ES384: "secp384r1", + ES512: "secp521r1" + }; + module.exports = function(algorithm, key) { + if (!algorithm || !key) return; + const keyType = key.asymmetricKeyType; + if (!keyType) return; + const allowedAlgorithms = allowedAlgorithmsForKeys[keyType]; + if (!allowedAlgorithms) { + throw new Error(`Unknown key type "${keyType}".`); + } + if (!allowedAlgorithms.includes(algorithm)) { + throw new Error(`"alg" parameter for "${keyType}" key type must be one of: ${allowedAlgorithms.join(", ")}.`); + } + if (ASYMMETRIC_KEY_DETAILS_SUPPORTED) { + switch (keyType) { + case "ec": + const keyCurve = key.asymmetricKeyDetails.namedCurve; + const allowedCurve = allowedCurves[algorithm]; + if (keyCurve !== allowedCurve) { + throw new Error(`"alg" parameter "${algorithm}" requires curve "${allowedCurve}".`); + } + break; + case "rsa-pss": + if (RSA_PSS_KEY_DETAILS_SUPPORTED) { + const length = parseInt(algorithm.slice(-3), 10); + const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = key.asymmetricKeyDetails; + if (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm) { + throw new Error(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${algorithm}.`); + } + if (saltLength !== void 0 && saltLength > length >> 3) { + throw new Error(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${algorithm}.`); + } + } + break; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/psSupported.js +var require_psSupported = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/lib/psSupported.js"(exports, module) { + var semver = require_semver2(); + module.exports = semver.satisfies(process.version, "^6.12.0 || >=8.0.0"); + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/verify.js +var require_verify = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/verify.js"(exports, module) { + var JsonWebTokenError2 = require_JsonWebTokenError(); + var NotBeforeError2 = require_NotBeforeError(); + var TokenExpiredError2 = require_TokenExpiredError(); + var decode3 = require_decode(); + var timespan = require_timespan(); + var validateAsymmetricKey = require_validateAsymmetricKey(); + var PS_SUPPORTED = require_psSupported(); + var jws = require_jws(); + var { KeyObject, createSecretKey, createPublicKey } = __require("crypto"); + var PUB_KEY_ALGS = ["RS256", "RS384", "RS512"]; + var EC_KEY_ALGS = ["ES256", "ES384", "ES512"]; + var RSA_KEY_ALGS = ["RS256", "RS384", "RS512"]; + var HS_ALGS = ["HS256", "HS384", "HS512"]; + if (PS_SUPPORTED) { + PUB_KEY_ALGS.splice(PUB_KEY_ALGS.length, 0, "PS256", "PS384", "PS512"); + RSA_KEY_ALGS.splice(RSA_KEY_ALGS.length, 0, "PS256", "PS384", "PS512"); + } + module.exports = function(jwtString, secretOrPublicKey, options, callback) { + if (typeof options === "function" && !callback) { + callback = options; + options = {}; + } + if (!options) { + options = {}; + } + options = Object.assign({}, options); + let done; + if (callback) { + done = callback; + } else { + done = /* @__PURE__ */ __name(function(err, data) { + if (err) throw err; + return data; + }, "done"); + } + if (options.clockTimestamp && typeof options.clockTimestamp !== "number") { + return done(new JsonWebTokenError2("clockTimestamp must be a number")); + } + if (options.nonce !== void 0 && (typeof options.nonce !== "string" || options.nonce.trim() === "")) { + return done(new JsonWebTokenError2("nonce must be a non-empty string")); + } + if (options.allowInvalidAsymmetricKeyTypes !== void 0 && typeof options.allowInvalidAsymmetricKeyTypes !== "boolean") { + return done(new JsonWebTokenError2("allowInvalidAsymmetricKeyTypes must be a boolean")); + } + const clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1e3); + if (!jwtString) { + return done(new JsonWebTokenError2("jwt must be provided")); + } + if (typeof jwtString !== "string") { + return done(new JsonWebTokenError2("jwt must be a string")); + } + const parts = jwtString.split("."); + if (parts.length !== 3) { + return done(new JsonWebTokenError2("jwt malformed")); + } + let decodedToken; + try { + decodedToken = decode3(jwtString, { complete: true }); + } catch (err) { + return done(err); + } + if (!decodedToken) { + return done(new JsonWebTokenError2("invalid token")); + } + const header = decodedToken.header; + let getSecret; + if (typeof secretOrPublicKey === "function") { + if (!callback) { + return done(new JsonWebTokenError2("verify must be called asynchronous if secret or public key is provided as a callback")); + } + getSecret = secretOrPublicKey; + } else { + getSecret = /* @__PURE__ */ __name(function(header2, secretCallback) { + return secretCallback(null, secretOrPublicKey); + }, "getSecret"); + } + return getSecret(header, function(err, secretOrPublicKey2) { + if (err) { + return done(new JsonWebTokenError2("error in secret or public key callback: " + err.message)); + } + const hasSignature = parts[2].trim() !== ""; + if (!hasSignature && secretOrPublicKey2) { + return done(new JsonWebTokenError2("jwt signature is required")); + } + if (hasSignature && !secretOrPublicKey2) { + return done(new JsonWebTokenError2("secret or public key must be provided")); + } + if (!hasSignature && !options.algorithms) { + return done(new JsonWebTokenError2('please specify "none" in "algorithms" to verify unsigned tokens')); + } + if (secretOrPublicKey2 != null && !(secretOrPublicKey2 instanceof KeyObject)) { + try { + secretOrPublicKey2 = createPublicKey(secretOrPublicKey2); + } catch (_) { + try { + secretOrPublicKey2 = createSecretKey(typeof secretOrPublicKey2 === "string" ? Buffer.from(secretOrPublicKey2) : secretOrPublicKey2); + } catch (_2) { + return done(new JsonWebTokenError2("secretOrPublicKey is not valid key material")); + } + } + } + if (!options.algorithms) { + if (secretOrPublicKey2.type === "secret") { + options.algorithms = HS_ALGS; + } else if (["rsa", "rsa-pss"].includes(secretOrPublicKey2.asymmetricKeyType)) { + options.algorithms = RSA_KEY_ALGS; + } else if (secretOrPublicKey2.asymmetricKeyType === "ec") { + options.algorithms = EC_KEY_ALGS; + } else { + options.algorithms = PUB_KEY_ALGS; + } + } + if (options.algorithms.indexOf(decodedToken.header.alg) === -1) { + return done(new JsonWebTokenError2("invalid algorithm")); + } + if (header.alg.startsWith("HS") && secretOrPublicKey2.type !== "secret") { + return done(new JsonWebTokenError2(`secretOrPublicKey must be a symmetric key when using ${header.alg}`)); + } else if (/^(?:RS|PS|ES)/.test(header.alg) && secretOrPublicKey2.type !== "public") { + return done(new JsonWebTokenError2(`secretOrPublicKey must be an asymmetric key when using ${header.alg}`)); + } + if (!options.allowInvalidAsymmetricKeyTypes) { + try { + validateAsymmetricKey(header.alg, secretOrPublicKey2); + } catch (e5) { + return done(e5); + } + } + let valid; + try { + valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey2); + } catch (e5) { + return done(e5); + } + if (!valid) { + return done(new JsonWebTokenError2("invalid signature")); + } + const payload = decodedToken.payload; + if (typeof payload.nbf !== "undefined" && !options.ignoreNotBefore) { + if (typeof payload.nbf !== "number") { + return done(new JsonWebTokenError2("invalid nbf value")); + } + if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) { + return done(new NotBeforeError2("jwt not active", new Date(payload.nbf * 1e3))); + } + } + if (typeof payload.exp !== "undefined" && !options.ignoreExpiration) { + if (typeof payload.exp !== "number") { + return done(new JsonWebTokenError2("invalid exp value")); + } + if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) { + return done(new TokenExpiredError2("jwt expired", new Date(payload.exp * 1e3))); + } + } + if (options.audience) { + const audiences = Array.isArray(options.audience) ? options.audience : [options.audience]; + const target = Array.isArray(payload.aud) ? payload.aud : [payload.aud]; + const match = target.some(function(targetAudience) { + return audiences.some(function(audience) { + return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience; + }); + }); + if (!match) { + return done(new JsonWebTokenError2("jwt audience invalid. expected: " + audiences.join(" or "))); + } + } + if (options.issuer) { + const invalid_issuer = typeof options.issuer === "string" && payload.iss !== options.issuer || Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1; + if (invalid_issuer) { + return done(new JsonWebTokenError2("jwt issuer invalid. expected: " + options.issuer)); + } + } + if (options.subject) { + if (payload.sub !== options.subject) { + return done(new JsonWebTokenError2("jwt subject invalid. expected: " + options.subject)); + } + } + if (options.jwtid) { + if (payload.jti !== options.jwtid) { + return done(new JsonWebTokenError2("jwt jwtid invalid. expected: " + options.jwtid)); + } + } + if (options.nonce) { + if (payload.nonce !== options.nonce) { + return done(new JsonWebTokenError2("jwt nonce invalid. expected: " + options.nonce)); + } + } + if (options.maxAge) { + if (typeof payload.iat !== "number") { + return done(new JsonWebTokenError2("iat required when maxAge is specified")); + } + const maxAgeTimestamp = timespan(options.maxAge, payload.iat); + if (typeof maxAgeTimestamp === "undefined") { + return done(new JsonWebTokenError2('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) { + return done(new TokenExpiredError2("maxAge exceeded", new Date(maxAgeTimestamp * 1e3))); + } + } + if (options.complete === true) { + const signature = decodedToken.signature; + return done(null, { + header, + payload, + signature + }); + } + return done(null, payload); + }); + }; + } +}); + +// ../../node_modules/.pnpm/lodash.includes@4.3.0/node_modules/lodash.includes/index.js +var require_lodash = __commonJS({ + "../../node_modules/.pnpm/lodash.includes@4.3.0/node_modules/lodash.includes/index.js"(exports, module) { + var INFINITY = 1 / 0; + var MAX_SAFE_INTEGER = 9007199254740991; + var MAX_INTEGER = 17976931348623157e292; + var NAN = 0 / 0; + var argsTag = "[object Arguments]"; + var funcTag = "[object Function]"; + var genTag = "[object GeneratorFunction]"; + var stringTag = "[object String]"; + var symbolTag = "[object Symbol]"; + var reTrim = /^\s+|\s+$/g; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var reIsUint = /^(?:0|[1-9]\d*)$/; + var freeParseInt = parseInt; + function arrayMap(array2, iteratee) { + var index = -1, length = array2 ? array2.length : 0, result = Array(length); + while (++index < length) { + result[index] = iteratee(array2[index], index, array2); + } + return result; + } + __name(arrayMap, "arrayMap"); + function baseFindIndex(array2, predicate, fromIndex, fromRight) { + var length = array2.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array2[index], index, array2)) { + return index; + } + } + return -1; + } + __name(baseFindIndex, "baseFindIndex"); + function baseIndexOf(array2, value, fromIndex) { + if (value !== value) { + return baseFindIndex(array2, baseIsNaN, fromIndex); + } + var index = fromIndex - 1, length = array2.length; + while (++index < length) { + if (array2[index] === value) { + return index; + } + } + return -1; + } + __name(baseIndexOf, "baseIndexOf"); + function baseIsNaN(value) { + return value !== value; + } + __name(baseIsNaN, "baseIsNaN"); + function baseTimes(n3, iteratee) { + var index = -1, result = Array(n3); + while (++index < n3) { + result[index] = iteratee(index); + } + return result; + } + __name(baseTimes, "baseTimes"); + function baseValues(object2, props) { + return arrayMap(props, function(key) { + return object2[key]; + }); + } + __name(baseValues, "baseValues"); + function overArg(func, transform2) { + return function(arg) { + return func(transform2(arg)); + }; + } + __name(overArg, "overArg"); + var objectProto = Object.prototype; + var hasOwnProperty = objectProto.hasOwnProperty; + var objectToString = objectProto.toString; + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + var nativeKeys = overArg(Object.keys, Object); + var nativeMax = Math.max; + function arrayLikeKeys(value, inherited) { + var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; + var length = result.length, skipIndexes = !!length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { + result.push(key); + } + } + return result; + } + __name(arrayLikeKeys, "arrayLikeKeys"); + function baseKeys(object2) { + if (!isPrototype(object2)) { + return nativeKeys(object2); + } + var result = []; + for (var key in Object(object2)) { + if (hasOwnProperty.call(object2, key) && key != "constructor") { + result.push(key); + } + } + return result; + } + __name(baseKeys, "baseKeys"); + function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + __name(isIndex, "isIndex"); + function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; + return value === proto; + } + __name(isPrototype, "isPrototype"); + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; + } + __name(includes, "includes"); + function isArguments(value) { + return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); + } + __name(isArguments, "isArguments"); + var isArray = Array.isArray; + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + __name(isArrayLike, "isArrayLike"); + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + __name(isArrayLikeObject, "isArrayLikeObject"); + function isFunction(value) { + var tag = isObject2(value) ? objectToString.call(value) : ""; + return tag == funcTag || tag == genTag; + } + __name(isFunction, "isFunction"); + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + __name(isLength, "isLength"); + function isObject2(value) { + var type = typeof value; + return !!value && (type == "object" || type == "function"); + } + __name(isObject2, "isObject"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isString(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag; + } + __name(isString, "isString"); + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; + } + __name(isSymbol, "isSymbol"); + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign2 = value < 0 ? -1 : 1; + return sign2 * MAX_INTEGER; + } + return value === value ? value : 0; + } + __name(toFinite, "toFinite"); + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + __name(toInteger, "toInteger"); + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject2(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject2(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + __name(toNumber, "toNumber"); + function keys(object2) { + return isArrayLike(object2) ? arrayLikeKeys(object2) : baseKeys(object2); + } + __name(keys, "keys"); + function values(object2) { + return object2 ? baseValues(object2, keys(object2)) : []; + } + __name(values, "values"); + module.exports = includes; + } +}); + +// ../../node_modules/.pnpm/lodash.isboolean@3.0.3/node_modules/lodash.isboolean/index.js +var require_lodash2 = __commonJS({ + "../../node_modules/.pnpm/lodash.isboolean@3.0.3/node_modules/lodash.isboolean/index.js"(exports, module) { + var boolTag = "[object Boolean]"; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function isBoolean(value) { + return value === true || value === false || isObjectLike(value) && objectToString.call(value) == boolTag; + } + __name(isBoolean, "isBoolean"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + module.exports = isBoolean; + } +}); + +// ../../node_modules/.pnpm/lodash.isinteger@4.0.4/node_modules/lodash.isinteger/index.js +var require_lodash3 = __commonJS({ + "../../node_modules/.pnpm/lodash.isinteger@4.0.4/node_modules/lodash.isinteger/index.js"(exports, module) { + var INFINITY = 1 / 0; + var MAX_INTEGER = 17976931348623157e292; + var NAN = 0 / 0; + var symbolTag = "[object Symbol]"; + var reTrim = /^\s+|\s+$/g; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var freeParseInt = parseInt; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function isInteger(value) { + return typeof value == "number" && value == toInteger(value); + } + __name(isInteger, "isInteger"); + function isObject2(value) { + var type = typeof value; + return !!value && (type == "object" || type == "function"); + } + __name(isObject2, "isObject"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; + } + __name(isSymbol, "isSymbol"); + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign2 = value < 0 ? -1 : 1; + return sign2 * MAX_INTEGER; + } + return value === value ? value : 0; + } + __name(toFinite, "toFinite"); + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + __name(toInteger, "toInteger"); + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject2(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject2(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + __name(toNumber, "toNumber"); + module.exports = isInteger; + } +}); + +// ../../node_modules/.pnpm/lodash.isnumber@3.0.3/node_modules/lodash.isnumber/index.js +var require_lodash4 = __commonJS({ + "../../node_modules/.pnpm/lodash.isnumber@3.0.3/node_modules/lodash.isnumber/index.js"(exports, module) { + var numberTag = "[object Number]"; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isNumber(value) { + return typeof value == "number" || isObjectLike(value) && objectToString.call(value) == numberTag; + } + __name(isNumber, "isNumber"); + module.exports = isNumber; + } +}); + +// ../../node_modules/.pnpm/lodash.isplainobject@4.0.6/node_modules/lodash.isplainobject/index.js +var require_lodash5 = __commonJS({ + "../../node_modules/.pnpm/lodash.isplainobject@4.0.6/node_modules/lodash.isplainobject/index.js"(exports, module) { + var objectTag = "[object Object]"; + function isHostObject(value) { + var result = false; + if (value != null && typeof value.toString != "function") { + try { + result = !!(value + ""); + } catch (e5) { + } + } + return result; + } + __name(isHostObject, "isHostObject"); + function overArg(func, transform2) { + return function(arg) { + return func(transform2(arg)); + }; + } + __name(overArg, "overArg"); + var funcProto = Function.prototype; + var objectProto = Object.prototype; + var funcToString = funcProto.toString; + var hasOwnProperty = objectProto.hasOwnProperty; + var objectCtorString = funcToString.call(Object); + var objectToString = objectProto.toString; + var getPrototype = overArg(Object.getPrototypeOf, Object); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isPlainObject2(value) { + if (!isObjectLike(value) || objectToString.call(value) != objectTag || isHostObject(value)) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + __name(isPlainObject2, "isPlainObject"); + module.exports = isPlainObject2; + } +}); + +// ../../node_modules/.pnpm/lodash.isstring@4.0.1/node_modules/lodash.isstring/index.js +var require_lodash6 = __commonJS({ + "../../node_modules/.pnpm/lodash.isstring@4.0.1/node_modules/lodash.isstring/index.js"(exports, module) { + var stringTag = "[object String]"; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + var isArray = Array.isArray; + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isString(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag; + } + __name(isString, "isString"); + module.exports = isString; + } +}); + +// ../../node_modules/.pnpm/lodash.once@4.1.1/node_modules/lodash.once/index.js +var require_lodash7 = __commonJS({ + "../../node_modules/.pnpm/lodash.once@4.1.1/node_modules/lodash.once/index.js"(exports, module) { + var FUNC_ERROR_TEXT = "Expected a function"; + var INFINITY = 1 / 0; + var MAX_INTEGER = 17976931348623157e292; + var NAN = 0 / 0; + var symbolTag = "[object Symbol]"; + var reTrim = /^\s+|\s+$/g; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var freeParseInt = parseInt; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function before(n3, func) { + var result; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + n3 = toInteger(n3); + return function() { + if (--n3 > 0) { + result = func.apply(this, arguments); + } + if (n3 <= 1) { + func = void 0; + } + return result; + }; + } + __name(before, "before"); + function once(func) { + return before(2, func); + } + __name(once, "once"); + function isObject2(value) { + var type = typeof value; + return !!value && (type == "object" || type == "function"); + } + __name(isObject2, "isObject"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; + } + __name(isSymbol, "isSymbol"); + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign2 = value < 0 ? -1 : 1; + return sign2 * MAX_INTEGER; + } + return value === value ? value : 0; + } + __name(toFinite, "toFinite"); + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + __name(toInteger, "toInteger"); + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject2(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject2(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + __name(toNumber, "toNumber"); + module.exports = once; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/sign.js +var require_sign = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/sign.js"(exports, module) { + var timespan = require_timespan(); + var PS_SUPPORTED = require_psSupported(); + var validateAsymmetricKey = require_validateAsymmetricKey(); + var jws = require_jws(); + var includes = require_lodash(); + var isBoolean = require_lodash2(); + var isInteger = require_lodash3(); + var isNumber = require_lodash4(); + var isPlainObject2 = require_lodash5(); + var isString = require_lodash6(); + var once = require_lodash7(); + var { KeyObject, createSecretKey, createPrivateKey } = __require("crypto"); + var SUPPORTED_ALGS = ["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "HS256", "HS384", "HS512", "none"]; + if (PS_SUPPORTED) { + SUPPORTED_ALGS.splice(3, 0, "PS256", "PS384", "PS512"); + } + var sign_options_schema = { + expiresIn: { isValid: /* @__PURE__ */ __name(function(value) { + return isInteger(value) || isString(value) && value; + }, "isValid"), message: '"expiresIn" should be a number of seconds or string representing a timespan' }, + notBefore: { isValid: /* @__PURE__ */ __name(function(value) { + return isInteger(value) || isString(value) && value; + }, "isValid"), message: '"notBefore" should be a number of seconds or string representing a timespan' }, + audience: { isValid: /* @__PURE__ */ __name(function(value) { + return isString(value) || Array.isArray(value); + }, "isValid"), message: '"audience" must be a string or array' }, + algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '"algorithm" must be a valid string enum value' }, + header: { isValid: isPlainObject2, message: '"header" must be an object' }, + encoding: { isValid: isString, message: '"encoding" must be a string' }, + issuer: { isValid: isString, message: '"issuer" must be a string' }, + subject: { isValid: isString, message: '"subject" must be a string' }, + jwtid: { isValid: isString, message: '"jwtid" must be a string' }, + noTimestamp: { isValid: isBoolean, message: '"noTimestamp" must be a boolean' }, + keyid: { isValid: isString, message: '"keyid" must be a string' }, + mutatePayload: { isValid: isBoolean, message: '"mutatePayload" must be a boolean' }, + allowInsecureKeySizes: { isValid: isBoolean, message: '"allowInsecureKeySizes" must be a boolean' }, + allowInvalidAsymmetricKeyTypes: { isValid: isBoolean, message: '"allowInvalidAsymmetricKeyTypes" must be a boolean' } + }; + var registered_claims_schema = { + iat: { isValid: isNumber, message: '"iat" should be a number of seconds' }, + exp: { isValid: isNumber, message: '"exp" should be a number of seconds' }, + nbf: { isValid: isNumber, message: '"nbf" should be a number of seconds' } + }; + function validate3(schema2, allowUnknown, object2, parameterName) { + if (!isPlainObject2(object2)) { + throw new Error('Expected "' + parameterName + '" to be a plain object.'); + } + Object.keys(object2).forEach(function(key) { + const validator = schema2[key]; + if (!validator) { + if (!allowUnknown) { + throw new Error('"' + key + '" is not allowed in "' + parameterName + '"'); + } + return; + } + if (!validator.isValid(object2[key])) { + throw new Error(validator.message); + } + }); + } + __name(validate3, "validate"); + function validateOptions(options) { + return validate3(sign_options_schema, false, options, "options"); + } + __name(validateOptions, "validateOptions"); + function validatePayload(payload) { + return validate3(registered_claims_schema, true, payload, "payload"); + } + __name(validatePayload, "validatePayload"); + var options_to_payload = { + "audience": "aud", + "issuer": "iss", + "subject": "sub", + "jwtid": "jti" + }; + var options_for_objects = [ + "expiresIn", + "notBefore", + "noTimestamp", + "audience", + "issuer", + "subject", + "jwtid" + ]; + module.exports = function(payload, secretOrPrivateKey, options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } else { + options = options || {}; + } + const isObjectPayload = typeof payload === "object" && !Buffer.isBuffer(payload); + const header = Object.assign({ + alg: options.algorithm || "HS256", + typ: isObjectPayload ? "JWT" : void 0, + kid: options.keyid + }, options.header); + function failure2(err) { + if (callback) { + return callback(err); + } + throw err; + } + __name(failure2, "failure"); + if (!secretOrPrivateKey && options.algorithm !== "none") { + return failure2(new Error("secretOrPrivateKey must have a value")); + } + if (secretOrPrivateKey != null && !(secretOrPrivateKey instanceof KeyObject)) { + try { + secretOrPrivateKey = createPrivateKey(secretOrPrivateKey); + } catch (_) { + try { + secretOrPrivateKey = createSecretKey(typeof secretOrPrivateKey === "string" ? Buffer.from(secretOrPrivateKey) : secretOrPrivateKey); + } catch (_2) { + return failure2(new Error("secretOrPrivateKey is not valid key material")); + } + } + } + if (header.alg.startsWith("HS") && secretOrPrivateKey.type !== "secret") { + return failure2(new Error(`secretOrPrivateKey must be a symmetric key when using ${header.alg}`)); + } else if (/^(?:RS|PS|ES)/.test(header.alg)) { + if (secretOrPrivateKey.type !== "private") { + return failure2(new Error(`secretOrPrivateKey must be an asymmetric key when using ${header.alg}`)); + } + if (!options.allowInsecureKeySizes && !header.alg.startsWith("ES") && secretOrPrivateKey.asymmetricKeyDetails !== void 0 && //KeyObject.asymmetricKeyDetails is supported in Node 15+ + secretOrPrivateKey.asymmetricKeyDetails.modulusLength < 2048) { + return failure2(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)); + } + } + if (typeof payload === "undefined") { + return failure2(new Error("payload is required")); + } else if (isObjectPayload) { + try { + validatePayload(payload); + } catch (error62) { + return failure2(error62); + } + if (!options.mutatePayload) { + payload = Object.assign({}, payload); + } + } else { + const invalid_options = options_for_objects.filter(function(opt) { + return typeof options[opt] !== "undefined"; + }); + if (invalid_options.length > 0) { + return failure2(new Error("invalid " + invalid_options.join(",") + " option for " + typeof payload + " payload")); + } + } + if (typeof payload.exp !== "undefined" && typeof options.expiresIn !== "undefined") { + return failure2(new Error('Bad "options.expiresIn" option the payload already has an "exp" property.')); + } + if (typeof payload.nbf !== "undefined" && typeof options.notBefore !== "undefined") { + return failure2(new Error('Bad "options.notBefore" option the payload already has an "nbf" property.')); + } + try { + validateOptions(options); + } catch (error62) { + return failure2(error62); + } + if (!options.allowInvalidAsymmetricKeyTypes) { + try { + validateAsymmetricKey(header.alg, secretOrPrivateKey); + } catch (error62) { + return failure2(error62); + } + } + const timestamp = payload.iat || Math.floor(Date.now() / 1e3); + if (options.noTimestamp) { + delete payload.iat; + } else if (isObjectPayload) { + payload.iat = timestamp; + } + if (typeof options.notBefore !== "undefined") { + try { + payload.nbf = timespan(options.notBefore, timestamp); + } catch (err) { + return failure2(err); + } + if (typeof payload.nbf === "undefined") { + return failure2(new Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + } + if (typeof options.expiresIn !== "undefined" && typeof payload === "object") { + try { + payload.exp = timespan(options.expiresIn, timestamp); + } catch (err) { + return failure2(err); + } + if (typeof payload.exp === "undefined") { + return failure2(new Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + } + Object.keys(options_to_payload).forEach(function(key) { + const claim2 = options_to_payload[key]; + if (typeof options[key] !== "undefined") { + if (typeof payload[claim2] !== "undefined") { + return failure2(new Error('Bad "options.' + key + '" option. The payload already has an "' + claim2 + '" property.')); + } + payload[claim2] = options[key]; + } + }); + const encoding = options.encoding || "utf8"; + if (typeof callback === "function") { + callback = callback && once(callback); + jws.createSign({ + header, + privateKey: secretOrPrivateKey, + payload, + encoding + }).once("error", callback).once("done", function(signature) { + if (!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) { + return callback(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)); + } + callback(null, signature); + }); + } else { + let signature = jws.sign({ header, payload, secret: secretOrPrivateKey, encoding }); + if (!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) { + throw new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`); + } + return signature; + } + }; + } +}); + +// ../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/index.js +var require_jsonwebtoken = __commonJS({ + "../../node_modules/.pnpm/jsonwebtoken@9.0.3/node_modules/jsonwebtoken/index.js"(exports, module) { + module.exports = { + decode: require_decode(), + verify: require_verify(), + sign: require_sign(), + JsonWebTokenError: require_JsonWebTokenError(), + NotBeforeError: require_NotBeforeError(), + TokenExpiredError: require_TokenExpiredError() + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/constants.js +var RequestChecksumCalculation, DEFAULT_REQUEST_CHECKSUM_CALCULATION, ResponseChecksumValidation, DEFAULT_RESPONSE_CHECKSUM_VALIDATION, ChecksumAlgorithm, ChecksumLocation, DEFAULT_CHECKSUM_ALGORITHM; +var init_constants = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/constants.js"() { + RequestChecksumCalculation = { + WHEN_SUPPORTED: "WHEN_SUPPORTED", + WHEN_REQUIRED: "WHEN_REQUIRED" + }; + DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED; + ResponseChecksumValidation = { + WHEN_SUPPORTED: "WHEN_SUPPORTED", + WHEN_REQUIRED: "WHEN_REQUIRED" + }; + DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED; + (function(ChecksumAlgorithm2) { + ChecksumAlgorithm2["MD5"] = "MD5"; + ChecksumAlgorithm2["CRC32"] = "CRC32"; + ChecksumAlgorithm2["CRC32C"] = "CRC32C"; + ChecksumAlgorithm2["CRC64NVME"] = "CRC64NVME"; + ChecksumAlgorithm2["SHA1"] = "SHA1"; + ChecksumAlgorithm2["SHA256"] = "SHA256"; + })(ChecksumAlgorithm || (ChecksumAlgorithm = {})); + (function(ChecksumLocation2) { + ChecksumLocation2["HEADER"] = "header"; + ChecksumLocation2["TRAILER"] = "trailer"; + })(ChecksumLocation || (ChecksumLocation = {})); + DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/stringUnionSelector.js +var SelectorType2, stringUnionSelector; +var init_stringUnionSelector = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/stringUnionSelector.js"() { + (function(SelectorType3) { + SelectorType3["ENV"] = "env"; + SelectorType3["CONFIG"] = "shared config entry"; + })(SelectorType2 || (SelectorType2 = {})); + stringUnionSelector = /* @__PURE__ */ __name((obj, key, union2, type) => { + if (!(key in obj)) + return void 0; + const value = obj[key].toUpperCase(); + if (!Object.values(union2).includes(value)) { + throw new TypeError(`Cannot load ${type} '${key}'. Expected one of ${Object.values(union2)}, got '${obj[key]}'.`); + } + return value; + }, "stringUnionSelector"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.js +var ENV_REQUEST_CHECKSUM_CALCULATION, CONFIG_REQUEST_CHECKSUM_CALCULATION, NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS; +var init_NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.js"() { + init_constants(); + init_stringUnionSelector(); + ENV_REQUEST_CHECKSUM_CALCULATION = "AWS_REQUEST_CHECKSUM_CALCULATION"; + CONFIG_REQUEST_CHECKSUM_CALCULATION = "request_checksum_calculation"; + NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => stringUnionSelector(env3, ENV_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, SelectorType2.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, SelectorType2.CONFIG), "configFileSelector"), + default: DEFAULT_REQUEST_CHECKSUM_CALCULATION + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.js +var ENV_RESPONSE_CHECKSUM_VALIDATION, CONFIG_RESPONSE_CHECKSUM_VALIDATION, NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS; +var init_NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.js"() { + init_constants(); + init_stringUnionSelector(); + ENV_RESPONSE_CHECKSUM_VALIDATION = "AWS_RESPONSE_CHECKSUM_VALIDATION"; + CONFIG_RESPONSE_CHECKSUM_VALIDATION = "response_checksum_validation"; + NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => stringUnionSelector(env3, ENV_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, SelectorType2.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, SelectorType2.CONFIG), "configFileSelector"), + default: DEFAULT_RESPONSE_CHECKSUM_VALIDATION + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js +var state, emitWarningIfUnsupportedVersion2; +var init_emitWarningIfUnsupportedVersion = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js"() { + state = { + warningEmitted: false + }; + emitWarningIfUnsupportedVersion2 = /* @__PURE__ */ __name((version2) => { + if (version2 && !state.warningEmitted) { + if (process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED === "true") { + state.warningEmitted = true; + return; + } + const userMajorVersion = parseInt(version2.substring(1, version2.indexOf("."))); + const vv = 22; + if (userMajorVersion < vv) { + state.warningEmitted = true; + process.emitWarning(`NodeVersionSupportWarning: The AWS SDK for JavaScript (v3) +versions published after the first week of January 2027 +will require node >=${vv}. You are running node ${version2}. + +To continue receiving updates to AWS services, bug fixes, +and security updates please upgrade to node >=${vv}. + +More information can be found at: https://a.co/c895JFp`); + } + } + }, "emitWarningIfUnsupportedVersion"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/longPollMiddleware.js +var longPollMiddleware, longPollMiddlewareOptions, getLongPollPlugin; +var init_longPollMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/longPollMiddleware.js"() { + longPollMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => { + context.__retryLongPoll = true; + return next(args); + }, "longPollMiddleware"); + longPollMiddlewareOptions = { + name: "longPollMiddleware", + tags: ["RETRY"], + step: "initialize", + override: true + }; + getLongPollPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(longPollMiddleware(), longPollMiddlewareOptions); + }, "applyToStack") + }), "getLongPollPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js +function setCredentialFeature(credentials, feature, value) { + if (!credentials.$source) { + credentials.$source = {}; + } + credentials.$source[feature] = value; + return credentials; +} +var init_setCredentialFeature = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js"() { + __name(setCredentialFeature, "setCredentialFeature"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/isStreamingPayload/isStreamingPayload.js +import { Readable } from "node:stream"; +var isStreamingPayload; +var init_isStreamingPayload = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/isStreamingPayload/isStreamingPayload.js"() { + isStreamingPayload = /* @__PURE__ */ __name((request) => request?.body instanceof Readable || typeof ReadableStream !== "undefined" && request?.body instanceof ReadableStream, "isStreamingPayload"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js +var collectBody; +var init_collect_stream_body = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js"() { + init_serde(); + collectBody = /* @__PURE__ */ __name(async (streamBody = new Uint8Array(), context) => { + if (streamBody instanceof Uint8Array) { + return Uint8ArrayBlobAdapter.mutate(streamBody); + } + if (!streamBody) { + return Uint8ArrayBlobAdapter.mutate(new Uint8Array()); + } + const fromContext = context.streamCollector(streamBody); + return Uint8ArrayBlobAdapter.mutate(await fromContext); + }, "collectBody"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js +function extendedEncodeURIComponent(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c5) { + return "%" + c5.charCodeAt(0).toString(16).toUpperCase(); + }); +} +var init_extended_encode_uri_component = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js"() { + __name(extendedEncodeURIComponent, "extendedEncodeURIComponent"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/SerdeContext.js +var SerdeContext; +var init_SerdeContext = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/SerdeContext.js"() { + SerdeContext = class { + static { + __name(this, "SerdeContext"); + } + serdeContext; + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +var HttpProtocol; +var init_HttpProtocol = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js"() { + init_transport(); + init_schema(); + init_transport(); + init_SerdeContext(); + HttpProtocol = class extends SerdeContext { + static { + __name(this, "HttpProtocol"); + } + options; + compositeErrorRegistry; + constructor(options) { + super(); + this.options = options; + this.compositeErrorRegistry = new TypeRegistry(options.defaultNamespace); + for (const etr of options.errorTypeRegistries ?? []) { + this.compositeErrorRegistry.copyFrom(etr); + } + } + getRequestType() { + return HttpRequest; + } + getResponseType() { + return HttpResponse; + } + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + this.serializer.setSerdeContext(serdeContext); + this.deserializer.setSerdeContext(serdeContext); + if (this.getPayloadCodec()) { + this.getPayloadCodec().setSerdeContext(serdeContext); + } + } + updateServiceEndpoint(request, endpoint) { + if ("url" in endpoint) { + request.protocol = endpoint.url.protocol; + request.hostname = endpoint.url.hostname; + request.port = endpoint.url.port ? Number(endpoint.url.port) : void 0; + request.path = endpoint.url.pathname; + request.fragment = endpoint.url.hash || void 0; + request.username = endpoint.url.username || void 0; + request.password = endpoint.url.password || void 0; + if (!request.query) { + request.query = {}; + } + for (const [k5, v] of endpoint.url.searchParams.entries()) { + request.query[k5] = v; + } + if (endpoint.headers) { + for (const name2 in endpoint.headers) { + if (!hasOwn(endpoint.headers, name2)) + continue; + request.headers[name2] = endpoint.headers[name2].join(", "); + } + } + return request; + } else { + request.protocol = endpoint.protocol; + request.hostname = endpoint.hostname; + request.port = endpoint.port ? Number(endpoint.port) : void 0; + request.path = endpoint.path; + request.query = { + ...endpoint.query + }; + if (endpoint.headers) { + for (const name2 in endpoint.headers) { + if (!hasOwn(endpoint.headers, name2)) + continue; + request.headers[name2] = endpoint.headers[name2]; + } + } + return request; + } + } + setHostPrefix(request, operationSchema, input2) { + if (this.serdeContext?.disableHostPrefix) { + return; + } + const inputNs = NormalizedSchema.of(operationSchema.input); + const opTraits = translateTraits(operationSchema.traits ?? {}); + if (opTraits.endpoint) { + let hostPrefix = opTraits.endpoint?.[0]; + if (typeof hostPrefix === "string") { + for (const [name2, member] of inputNs.structIterator()) { + if (!member.getMergedTraits().hostLabel) { + continue; + } + const replacement = input2[name2]; + if (typeof replacement !== "string") { + throw new Error(`@smithy/core/schema - ${name2} in input must be a string as hostLabel.`); + } + hostPrefix = hostPrefix.replace(`{${name2}}`, replacement); + } + request.hostname = hostPrefix + request.hostname; + if (!isValidHostname(request.hostname)) { + throw new Error(`[${request.hostname}] is not a valid hostname.`); + } + } + } + } + deserializeMetadata(output2) { + return { + httpStatusCode: output2.statusCode, + requestId: output2.headers["x-amzn-requestid"] ?? output2.headers["x-amzn-request-id"] ?? output2.headers["x-amz-request-id"], + extendedRequestId: output2.headers["x-amz-id-2"], + cfId: output2.headers["x-amz-cf-id"] + }; + } + resolveError(name2, namespaces, registries) { + const defaultErrorSchema = [-3, "", "Error", 0, [], [], 0]; + let schema2; + for (const registry2 of registries) { + for (const ns of namespaces) { + try { + if (ns === "*") { + schema2 = registry2.getSchema(name2); + } else { + schema2 = registry2.getSchema(ns + "#" + name2); + } + const errorCtor = registry2.getErrorCtor(schema2); + if (errorCtor) { + return [schema2, errorCtor, "modeled"]; + } else { + const syntheticErrorSchema = registry2.getBaseException(); + if (syntheticErrorSchema) { + const syntheticErrorCtor = registry2.getErrorCtor(syntheticErrorSchema); + if (syntheticErrorCtor) { + return [schema2, syntheticErrorCtor, "synthetic"]; + } + } + } + } catch (ignored) { + } + } + } + for (const registry2 of registries) { + const syntheticErrorSchema = registry2.getBaseException(); + if (syntheticErrorSchema) { + const syntheticErrorCtor = registry2.getErrorCtor(syntheticErrorSchema); + if (syntheticErrorCtor) { + return [syntheticErrorSchema, syntheticErrorCtor, "synthetic"]; + } + } + } + return [defaultErrorSchema, Error, "native"]; + } + async serializeEventStream({ eventStream, requestSchema, initialRequest }) { + const eventStreamSerde = await this.loadEventStreamCapability(); + return eventStreamSerde.serializeEventStream({ + eventStream, + requestSchema, + initialRequest + }); + } + async deserializeEventStream({ response, responseSchema, initialResponseContainer }) { + const eventStreamSerde = await this.loadEventStreamCapability(); + return eventStreamSerde.deserializeEventStream({ + response, + responseSchema, + initialResponseContainer + }); + } + async loadEventStreamCapability() { + const { EventStreamSerde, eventStreamSerdeProvider } = await import("./event-streams-IPK6VS6T.js"); + const marshaller = this.resolveEventStreamMarshaller(eventStreamSerdeProvider); + return new EventStreamSerde({ + marshaller, + serializer: this.serializer, + deserializer: this.deserializer, + serdeContext: this.serdeContext, + defaultContentType: this.getDefaultContentType(), + compositeErrorRegistry: this.compositeErrorRegistry + }); + } + getDefaultContentType() { + throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`); + } + async deserializeHttpMessage(schema2, context, response, arg4, arg5) { + void schema2; + void context; + void response; + void arg4; + void arg5; + return []; + } + getEventStreamMarshaller() { + const context = this.serdeContext; + if (!context.eventStreamMarshaller) { + throw new Error("@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext."); + } + return context.eventStreamMarshaller; + } + resolveEventStreamMarshaller(importedProvider) { + const context = this.serdeContext; + if (context.eventStreamMarshaller) { + return context.eventStreamMarshaller; + } + return importedProvider(this.serdeContext); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +var HttpBindingProtocol; +var init_HttpBindingProtocol = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js"() { + init_transport(); + init_schema(); + init_serde(); + init_transport(); + init_HttpProtocol(); + init_collect_stream_body(); + init_extended_encode_uri_component(); + HttpBindingProtocol = class extends HttpProtocol { + static { + __name(this, "HttpBindingProtocol"); + } + async serializeRequest(operationSchema, _input, context) { + const input2 = _input && typeof _input === "object" ? _input : {}; + const serializer = this.serializer; + const query = {}; + const headers = {}; + const endpoint = await context.endpoint(); + const ns = NormalizedSchema.of(operationSchema?.input); + const payloadMemberNames = []; + const payloadMemberSchemas = []; + let hasNonHttpBindingMember = false; + let payload; + const request = new HttpRequest({ + protocol: "", + hostname: "", + port: void 0, + path: "", + fragment: void 0, + query, + headers, + body: void 0 + }); + if (endpoint) { + this.updateServiceEndpoint(request, endpoint); + this.setHostPrefix(request, operationSchema, input2); + const opTraits = translateTraits(operationSchema.traits); + if (opTraits.http) { + request.method = opTraits.http[0]; + const [path2, search] = opTraits.http[1].split("?"); + if (request.path == "/") { + request.path = path2; + } else { + request.path += path2; + } + const traitSearchParams = new URLSearchParams(search ?? ""); + for (const [key, value] of traitSearchParams) { + query[key] = value; + } + } + } + for (const [memberName, memberNs] of ns.structIterator()) { + const memberTraits = memberNs.getMergedTraits() ?? {}; + const inputMemberValue = input2[memberName]; + if (inputMemberValue == null && !memberNs.isIdempotencyToken()) { + if (memberTraits.httpLabel) { + if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) { + throw new Error(`No value provided for input HTTP label: ${memberName}.`); + } + } + continue; + } + if (memberTraits.httpPayload) { + const isStreaming2 = memberNs.isStreaming(); + if (isStreaming2) { + const isEventStream = memberNs.isStructSchema(); + if (isEventStream) { + if (input2[memberName]) { + payload = await this.serializeEventStream({ + eventStream: input2[memberName], + requestSchema: ns + }); + } + } else { + payload = inputMemberValue; + } + } else { + serializer.write(memberNs, inputMemberValue); + payload = serializer.flush(); + } + } else if (memberTraits.httpLabel) { + serializer.write(memberNs, inputMemberValue); + const replacement = serializer.flush(); + if (request.path.includes(`{${memberName}+}`)) { + request.path = request.path.replace(`{${memberName}+}`, replacement.split("/").map(extendedEncodeURIComponent).join("/")); + } else if (request.path.includes(`{${memberName}}`)) { + request.path = request.path.replace(`{${memberName}}`, extendedEncodeURIComponent(replacement)); + } + } else if (memberTraits.httpHeader) { + serializer.write(memberNs, inputMemberValue); + headers[memberTraits.httpHeader.toLowerCase()] = String(serializer.flush()); + } else if (typeof memberTraits.httpPrefixHeaders === "string") { + for (const key in inputMemberValue) { + if (!hasOwn(inputMemberValue, key)) + continue; + const val = inputMemberValue[key]; + const amalgam = memberTraits.httpPrefixHeaders + key; + serializer.write([memberNs.getValueSchema(), { httpHeader: amalgam }], val); + headers[amalgam.toLowerCase()] = serializer.flush(); + } + } else if (memberTraits.httpQuery || memberTraits.httpQueryParams) { + this.serializeQuery(memberNs, inputMemberValue, query); + } else { + hasNonHttpBindingMember = true; + payloadMemberNames.push(memberName); + payloadMemberSchemas.push(memberNs); + } + } + if (hasNonHttpBindingMember && input2) { + const [namespace, name2] = (ns.getName(true) ?? "#Unknown").split("#"); + const requiredMembers = ns.getSchema()[6]; + const payloadSchema = [ + 3, + namespace, + name2, + ns.getMergedTraits(), + payloadMemberNames, + payloadMemberSchemas, + void 0 + ]; + if (requiredMembers) { + payloadSchema[6] = requiredMembers; + } else { + payloadSchema.pop(); + } + serializer.write(payloadSchema, input2); + payload = serializer.flush(); + } + request.headers = headers; + request.query = query; + request.body = payload; + return request; + } + serializeQuery(ns, data, query) { + const serializer = this.serializer; + const traits = ns.getMergedTraits(); + if (traits.httpQueryParams) { + for (const key in data) { + if (!hasOwn(data, key)) + continue; + if (!(key in query)) { + const val = data[key]; + const valueSchema = ns.getValueSchema(); + Object.assign(valueSchema.getMergedTraits(), { + ...traits, + httpQuery: key, + httpQueryParams: void 0 + }); + this.serializeQuery(valueSchema, val, query); + } + } + return; + } + if (ns.isListSchema()) { + const sparse = !!ns.getMergedTraits().sparse; + const buffer = []; + for (const item of data) { + serializer.write([ns.getValueSchema(), traits], item); + const serializable = serializer.flush(); + if (sparse || serializable !== void 0) { + buffer.push(serializable); + } + } + query[traits.httpQuery] = buffer; + } else { + serializer.write([ns, traits], data); + query[traits.httpQuery] = serializer.flush(); + } + } + async deserializeResponse(operationSchema, context, response) { + const deserializer = this.deserializer; + const ns = NormalizedSchema.of(operationSchema.output); + const dataObject = {}; + if (response.statusCode >= 300) { + const bytes = await collectBody(response.body, context); + if (bytes.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(15, bytes)); + } + await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response)); + throw new Error("@smithy/core/protocols - HTTP Protocol error handler failed to throw."); + } + for (const header in response.headers) { + if (!hasOwn(response.headers, header)) + continue; + const value = response.headers[header]; + delete response.headers[header]; + response.headers[header.toLowerCase()] = value; + } + const nonHttpBindingMembers = await this.deserializeHttpMessage(ns, context, response, dataObject); + if (nonHttpBindingMembers.length) { + const bytes = await collectBody(response.body, context); + if (bytes.byteLength > 0) { + const dataFromBody = await deserializer.read(ns, bytes); + for (const member of nonHttpBindingMembers) { + if (dataFromBody[member] != null) { + dataObject[member] = dataFromBody[member]; + } + } + } + } else if (nonHttpBindingMembers.discardResponseBody) { + await collectBody(response.body, context); + } + dataObject.$metadata = this.deserializeMetadata(response); + return dataObject; + } + async deserializeHttpMessage(schema2, context, response, arg4, arg5) { + let dataObject; + if (arg4 instanceof Set) { + dataObject = arg5; + } else { + dataObject = arg4; + } + let discardResponseBody = true; + const deserializer = this.deserializer; + const ns = NormalizedSchema.of(schema2); + const nonHttpBindingMembers = []; + for (const [memberName, memberSchema] of ns.structIterator()) { + const memberTraits = memberSchema.getMemberTraits(); + if (memberTraits.httpPayload) { + discardResponseBody = false; + const isStreaming2 = memberSchema.isStreaming(); + if (isStreaming2) { + const isEventStream = memberSchema.isStructSchema(); + if (isEventStream) { + dataObject[memberName] = await this.deserializeEventStream({ + response, + responseSchema: ns + }); + } else { + dataObject[memberName] = sdkStreamMixin(response.body); + } + } else if (response.body) { + const bytes = await collectBody(response.body, context); + if (bytes.byteLength > 0) { + dataObject[memberName] = await deserializer.read(memberSchema, bytes); + } + } + } else if (memberTraits.httpHeader) { + const key = String(memberTraits.httpHeader).toLowerCase(); + const value = response.headers[key]; + if (null != value) { + if (memberSchema.isListSchema()) { + const headerListValueSchema = memberSchema.getValueSchema(); + headerListValueSchema.getMergedTraits().httpHeader = key; + let sections; + if (headerListValueSchema.isTimestampSchema() && headerListValueSchema.getSchema() === 4) { + sections = splitEvery(value, ",", 2); + } else { + sections = splitHeader(value); + } + const list = []; + for (const section of sections) { + list.push(await deserializer.read(headerListValueSchema, section.trim())); + } + dataObject[memberName] = list; + } else { + dataObject[memberName] = await deserializer.read(memberSchema, value); + } + } + } else if (memberTraits.httpPrefixHeaders !== void 0) { + dataObject[memberName] = {}; + for (const header in response.headers) { + if (!hasOwn(response.headers, header)) + continue; + if (header.startsWith(memberTraits.httpPrefixHeaders)) { + const value = response.headers[header]; + const valueSchema = memberSchema.getValueSchema(); + valueSchema.getMergedTraits().httpHeader = header; + dataObject[memberName][header.slice(memberTraits.httpPrefixHeaders.length)] = await deserializer.read(valueSchema, value); + } + } + } else if (memberTraits.httpResponseCode) { + dataObject[memberName] = response.statusCode; + } else { + nonHttpBindingMembers.push(memberName); + } + } + nonHttpBindingMembers.discardResponseBody = discardResponseBody; + return nonHttpBindingMembers; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +var RpcProtocol; +var init_RpcProtocol = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js"() { + init_transport(); + init_schema(); + init_transport(); + init_HttpProtocol(); + init_collect_stream_body(); + RpcProtocol = class extends HttpProtocol { + static { + __name(this, "RpcProtocol"); + } + async serializeRequest(operationSchema, _input, context) { + const serializer = this.serializer; + const query = {}; + const headers = {}; + const endpoint = await context.endpoint(); + const ns = NormalizedSchema.of(operationSchema?.input); + const schema2 = ns.getSchema(); + let payload; + const input2 = _input && typeof _input === "object" ? _input : {}; + const request = new HttpRequest({ + protocol: "", + hostname: "", + port: void 0, + path: "/", + fragment: void 0, + query, + headers, + body: void 0 + }); + if (endpoint) { + this.updateServiceEndpoint(request, endpoint); + this.setHostPrefix(request, operationSchema, input2); + } + if (input2) { + const eventStreamMember = ns.getEventStreamMember(); + if (eventStreamMember) { + if (input2[eventStreamMember]) { + const initialRequest = {}; + for (const [memberName] of ns.structIterator()) { + if (memberName !== eventStreamMember && input2[memberName] != null) { + initialRequest[memberName] = input2[memberName]; + } + } + payload = await this.serializeEventStream({ + eventStream: input2[eventStreamMember], + requestSchema: ns, + initialRequest + }); + } + } else { + serializer.write(schema2, input2); + payload = serializer.flush(); + } + } + request.headers = Object.assign(request.headers, headers); + request.query = query; + request.body = payload; + request.method = "POST"; + return request; + } + async deserializeResponse(operationSchema, context, response) { + const deserializer = this.deserializer; + const ns = NormalizedSchema.of(operationSchema.output); + const dataObject = {}; + if (response.statusCode >= 300) { + const bytes = await collectBody(response.body, context); + if (bytes.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(15, bytes)); + } + await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response)); + throw new Error("@smithy/core/protocols - RPC Protocol error handler failed to throw."); + } + for (const header in response.headers) { + if (!hasOwn(response.headers, header)) + continue; + const value = response.headers[header]; + delete response.headers[header]; + response.headers[header.toLowerCase()] = value; + } + const eventStreamMember = ns.getEventStreamMember(); + if (eventStreamMember) { + dataObject[eventStreamMember] = await this.deserializeEventStream({ + response, + responseSchema: ns, + initialResponseContainer: dataObject + }); + } else { + const bytes = await collectBody(response.body, context); + if (bytes.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(ns, bytes)); + } + } + dataObject.$metadata = this.deserializeMetadata(response); + return dataObject; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/resolve-path.js +var resolvedPath; +var init_resolve_path = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/resolve-path.js"() { + init_extended_encode_uri_component(); + resolvedPath = /* @__PURE__ */ __name((resolvedPath2, input2, memberName, labelValueProvider, uriLabel, isGreedyLabel) => { + if (input2 != null && input2[memberName] !== void 0) { + const labelValue = labelValueProvider(); + if (labelValue == null || labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: " + memberName + "."); + } + resolvedPath2 = resolvedPath2.replace(uriLabel, isGreedyLabel ? labelValue.split("/").map((segment) => extendedEncodeURIComponent(segment)).join("/") : extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: " + memberName + "."); + } + return resolvedPath2; + }, "resolvedPath"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js +function requestBuilder(input2, context) { + return new RequestBuilder(input2, context); +} +var RequestBuilder; +var init_requestBuilder = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js"() { + init_transport(); + init_resolve_path(); + __name(requestBuilder, "requestBuilder"); + RequestBuilder = class { + static { + __name(this, "RequestBuilder"); + } + input; + context; + query = {}; + method = ""; + headers = {}; + path = ""; + body = null; + hostname = ""; + resolvePathStack = []; + constructor(input2, context) { + this.input = input2; + this.context = context; + } + async build() { + const { hostname: hostname3, protocol = "https", port, path: basePath } = await this.context.endpoint(); + this.path = basePath; + for (const resolvePath of this.resolvePathStack) { + resolvePath(this.path); + } + return new HttpRequest({ + protocol, + hostname: this.hostname || hostname3, + port, + method: this.method, + path: this.path, + query: this.query, + body: this.body, + headers: this.headers + }); + } + hn(hostname3) { + this.hostname = hostname3; + return this; + } + bp(uriLabel) { + this.resolvePathStack.push((basePath) => { + this.path = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + uriLabel; + }); + return this; + } + p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { + this.resolvePathStack.push((path2) => { + this.path = resolvedPath(path2, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel); + }); + return this; + } + h(headers) { + this.headers = headers; + return this; + } + q(query) { + this.query = query; + return this; + } + b(body) { + this.body = body; + return this; + } + m(method) { + this.method = method; + return this; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js +function determineTimestampFormat(ns, settings) { + if (settings.timestampFormat.useTrait) { + if (ns.isTimestampSchema() && (ns.getSchema() === 5 || ns.getSchema() === 6 || ns.getSchema() === 7)) { + return ns.getSchema(); + } + } + const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits(); + const bindingFormat = settings.httpBindings ? typeof httpPrefixHeaders === "string" || Boolean(httpHeader) ? 6 : Boolean(httpQuery) || Boolean(httpLabel) ? 5 : void 0 : void 0; + return bindingFormat ?? settings.timestampFormat.default; +} +var init_determineTimestampFormat = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js"() { + __name(determineTimestampFormat, "determineTimestampFormat"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js +var FromStringShapeDeserializer; +var init_FromStringShapeDeserializer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js"() { + init_schema(); + init_serde(); + init_SerdeContext(); + init_determineTimestampFormat(); + FromStringShapeDeserializer = class extends SerdeContext { + static { + __name(this, "FromStringShapeDeserializer"); + } + settings; + constructor(settings) { + super(); + this.settings = settings; + } + read(_schema, data) { + const ns = NormalizedSchema.of(_schema); + if (ns.isListSchema()) { + return splitHeader(data).map((item) => this.read(ns.getValueSchema(), item)); + } + if (ns.isBlobSchema()) { + return (this.serdeContext?.base64Decoder ?? fromBase64)(data); + } + if (ns.isTimestampSchema()) { + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: + return _parseRfc3339DateTimeWithOffset(data); + case 6: + return _parseRfc7231DateTime(data); + case 7: + return _parseEpochTimestamp(data); + default: + console.warn("Missing timestamp format, parsing value with Date constructor:", data); + return new Date(data); + } + } + if (ns.isStringSchema()) { + const mediaType = ns.getMergedTraits().mediaType; + let intermediateValue = data; + if (mediaType) { + if (ns.getMergedTraits().httpHeader) { + intermediateValue = this.base64ToUtf8(intermediateValue); + } + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + intermediateValue = LazyJsonString.from(intermediateValue); + } + return intermediateValue; + } + } + if (ns.isNumericSchema()) { + return Number(data); + } + if (ns.isBigIntegerSchema()) { + return BigInt(data); + } + if (ns.isBigDecimalSchema()) { + return new NumericValue(data, "bigDecimal"); + } + if (ns.isBooleanSchema()) { + return String(data).toLowerCase() === "true"; + } + return data; + } + base64ToUtf8(base64String) { + return (this.serdeContext?.utf8Encoder ?? toUtf8)((this.serdeContext?.base64Decoder ?? fromBase64)(base64String)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeDeserializer.js +var HttpInterceptingShapeDeserializer; +var init_HttpInterceptingShapeDeserializer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeDeserializer.js"() { + init_schema(); + init_serde(); + init_SerdeContext(); + init_FromStringShapeDeserializer(); + HttpInterceptingShapeDeserializer = class extends SerdeContext { + static { + __name(this, "HttpInterceptingShapeDeserializer"); + } + codecDeserializer; + stringDeserializer; + constructor(codecDeserializer, codecSettings) { + super(); + this.codecDeserializer = codecDeserializer; + this.stringDeserializer = new FromStringShapeDeserializer(codecSettings); + } + setSerdeContext(serdeContext) { + this.stringDeserializer.setSerdeContext(serdeContext); + this.codecDeserializer.setSerdeContext(serdeContext); + this.serdeContext = serdeContext; + } + read(schema2, data) { + const ns = NormalizedSchema.of(schema2); + const traits = ns.getMergedTraits(); + const toString = this.serdeContext?.utf8Encoder ?? toUtf8; + if (traits.httpHeader || traits.httpResponseCode) { + return this.stringDeserializer.read(ns, toString(data)); + } + if (traits.httpPayload) { + if (ns.isBlobSchema()) { + const toBytes = this.serdeContext?.utf8Decoder ?? fromUtf8; + if (typeof data === "string") { + return toBytes(data); + } + return data; + } else if (ns.isStringSchema()) { + if ("byteLength" in data) { + return toString(data); + } + return data; + } + } + return this.codecDeserializer.read(ns, data); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js +var ToStringShapeSerializer; +var init_ToStringShapeSerializer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js"() { + init_schema(); + init_serde(); + init_SerdeContext(); + init_determineTimestampFormat(); + ToStringShapeSerializer = class extends SerdeContext { + static { + __name(this, "ToStringShapeSerializer"); + } + settings; + stringBuffer = ""; + constructor(settings) { + super(); + this.settings = settings; + } + write(schema2, value) { + const ns = NormalizedSchema.of(schema2); + switch (typeof value) { + case "object": + if (value === null) { + this.stringBuffer = "null"; + return; + } + if (ns.isTimestampSchema()) { + if (!(value instanceof Date)) { + throw new Error(`@smithy/core/protocols - received non-Date value ${value} when schema expected Date in ${ns.getName(true)}`); + } + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: + this.stringBuffer = value.toISOString().replace(".000Z", "Z"); + break; + case 6: + this.stringBuffer = dateToUtcString(value); + break; + case 7: + this.stringBuffer = String(value.getTime() / 1e3); + break; + default: + console.warn("Missing timestamp format, using epoch seconds", value); + this.stringBuffer = String(value.getTime() / 1e3); + } + return; + } + if (ns.isBlobSchema() && "byteLength" in value) { + this.stringBuffer = (this.serdeContext?.base64Encoder ?? toBase64)(value); + return; + } + if (ns.isListSchema() && Array.isArray(value)) { + let buffer = ""; + for (const item of value) { + this.write([ns.getValueSchema(), ns.getMergedTraits()], item); + const headerItem = this.flush(); + const serialized = ns.getValueSchema().isTimestampSchema() ? headerItem : quoteHeader(headerItem); + if (buffer !== "") { + buffer += ", "; + } + buffer += serialized; + } + this.stringBuffer = buffer; + return; + } + this.stringBuffer = JSON.stringify(value, null, 2); + break; + case "string": + const mediaType = ns.getMergedTraits().mediaType; + let intermediateValue = value; + if (mediaType) { + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + intermediateValue = LazyJsonString.from(intermediateValue); + } + if (ns.getMergedTraits().httpHeader) { + this.stringBuffer = (this.serdeContext?.base64Encoder ?? toBase64)(intermediateValue.toString()); + return; + } + } + this.stringBuffer = value; + break; + default: + if (ns.isIdempotencyToken()) { + this.stringBuffer = generateIdempotencyToken(); + } else { + this.stringBuffer = String(value); + } + } + } + flush() { + const buffer = this.stringBuffer; + this.stringBuffer = ""; + return buffer; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeSerializer.js +var HttpInterceptingShapeSerializer; +var init_HttpInterceptingShapeSerializer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeSerializer.js"() { + init_schema(); + init_ToStringShapeSerializer(); + HttpInterceptingShapeSerializer = class { + static { + __name(this, "HttpInterceptingShapeSerializer"); + } + codecSerializer; + stringSerializer; + buffer; + constructor(codecSerializer, codecSettings, stringSerializer = new ToStringShapeSerializer(codecSettings)) { + this.codecSerializer = codecSerializer; + this.stringSerializer = stringSerializer; + } + setSerdeContext(serdeContext) { + this.codecSerializer.setSerdeContext(serdeContext); + this.stringSerializer.setSerdeContext(serdeContext); + } + write(schema2, value) { + const ns = NormalizedSchema.of(schema2); + const traits = ns.getMergedTraits(); + if (traits.httpHeader || traits.httpLabel || traits.httpQuery) { + this.stringSerializer.write(ns, value); + this.buffer = this.stringSerializer.flush(); + return; + } + return this.codecSerializer.write(ns, value); + } + flush() { + if (this.buffer !== void 0) { + const buffer = this.buffer; + this.buffer = void 0; + return buffer; + } + return this.codecSerializer.flush(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/Field.js +var import_types, Field; +var init_Field = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/Field.js"() { + import_types = __toESM(require_dist_cjs()); + Field = class { + static { + __name(this, "Field"); + } + name; + kind; + values; + constructor({ name: name2, kind = import_types.FieldPosition.HEADER, values = [] }) { + this.name = name2; + this.kind = kind; + this.values = values; + } + add(value) { + this.values.push(value); + } + set(values) { + this.values = values; + } + remove(value) { + this.values = this.values.filter((v) => v !== value); + } + toString() { + return this.values.map((v) => v.includes(",") || v.includes(" ") ? `"${v}"` : v).join(", "); + } + get() { + return this.values; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/Fields.js +var Fields; +var init_Fields = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/Fields.js"() { + Fields = class { + static { + __name(this, "Fields"); + } + entries = {}; + encoding; + constructor({ fields = [], encoding = "utf-8" }) { + fields.forEach(this.setField.bind(this)); + this.encoding = encoding; + } + setField(field) { + this.entries[field.name.toLowerCase()] = field; + } + getField(name2) { + return this.entries[name2.toLowerCase()]; + } + removeField(name2) { + delete this.entries[name2.toLowerCase()]; + } + getByType(kind) { + return Object.values(this.entries).filter((field) => field.kind === kind); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/extensions/httpExtensionConfiguration.js +var getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig; +var init_httpExtensionConfiguration = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/extensions/httpExtensionConfiguration.js"() { + getHttpHandlerExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + if (runtimeConfig.logger && runtimeConfig.logger.constructor?.name !== "NoOpLogger") { + runtimeConfig.requestHandler?.updateHttpClientConfig?.(/* @__PURE__ */ Symbol.for("logger"), runtimeConfig.logger); + } + return { + setHttpHandler(handler) { + runtimeConfig.requestHandler = handler; + }, + httpHandler() { + return runtimeConfig.requestHandler; + }, + updateHttpClientConfig(key, value) { + runtimeConfig.requestHandler?.updateHttpClientConfig(key, value); + }, + httpHandlerConfigs() { + return runtimeConfig.requestHandler.httpHandlerConfigs(); + } + }; + }, "getHttpHandlerExtensionConfiguration"); + resolveHttpHandlerRuntimeConfig = /* @__PURE__ */ __name((httpHandlerExtensionConfiguration) => { + return { + requestHandler: httpHandlerExtensionConfiguration.httpHandler() + }; + }, "resolveHttpHandlerRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/middleware-content-length/contentLengthMiddleware.js +function contentLengthMiddleware(bodyLengthChecker) { + return (next) => async (args) => { + const request = args.request; + if (HttpRequest.isInstance(request)) { + const { body, headers } = request; + if (body && Object.keys(headers).map((str) => str.toLowerCase()).indexOf(CONTENT_LENGTH_HEADER) === -1) { + try { + const length = bodyLengthChecker(body); + if (length != null) { + request.headers = { + ...request.headers, + [CONTENT_LENGTH_HEADER]: String(length) + }; + } + } catch (ignored) { + } + } + } + return next({ + ...args, + request + }); + }; +} +var CONTENT_LENGTH_HEADER, contentLengthMiddlewareOptions, getContentLengthPlugin; +var init_contentLengthMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/middleware-content-length/contentLengthMiddleware.js"() { + init_transport(); + CONTENT_LENGTH_HEADER = "content-length"; + __name(contentLengthMiddleware, "contentLengthMiddleware"); + contentLengthMiddlewareOptions = { + step: "build", + tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"], + name: "contentLengthMiddleware", + override: true + }; + getContentLengthPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions); + }, "applyToStack") + }), "getContentLengthPlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/util-uri-escape/escape-uri.js +var escapeUri, hexEncode; +var init_escape_uri = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/util-uri-escape/escape-uri.js"() { + escapeUri = /* @__PURE__ */ __name((uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode), "escapeUri"); + hexEncode = /* @__PURE__ */ __name((c5) => `%${c5.charCodeAt(0).toString(16).toUpperCase()}`, "hexEncode"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/util-uri-escape/escape-uri-path.js +var escapeUriPath; +var init_escape_uri_path = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/util-uri-escape/escape-uri-path.js"() { + init_escape_uri(); + escapeUriPath = /* @__PURE__ */ __name((uri) => uri.split("/").map(escapeUri).join("/"), "escapeUriPath"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/querystring-builder/buildQueryString.js +function buildQueryString(query) { + const parts = []; + for (let key of Object.keys(query).sort()) { + const value = query[key]; + key = escapeUri(key); + if (Array.isArray(value)) { + for (let i5 = 0, iLen = value.length; i5 < iLen; i5++) { + parts.push(`${key}=${escapeUri(value[i5])}`); + } + } else { + let qsEntry = key; + if (value || typeof value === "string") { + qsEntry += `=${escapeUri(value)}`; + } + parts.push(qsEntry); + } + } + return parts.join("&"); +} +var init_buildQueryString = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/querystring-builder/buildQueryString.js"() { + init_escape_uri(); + __name(buildQueryString, "buildQueryString"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +var SerdeContextConfig; +var init_ConfigurableSerdeContext = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js"() { + SerdeContextConfig = class { + static { + __name(this, "SerdeContextConfig"); + } + serdeContext; + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +var UnionSerde; +var init_UnionSerde = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js"() { + UnionSerde = class { + static { + __name(this, "UnionSerde"); + } + from; + to; + keys; + constructor(from, to) { + this.from = from; + this.to = to; + const keys = Object.keys(this.from); + const set2 = new Set(keys); + set2.delete("__type"); + this.keys = set2; + } + mark(key) { + this.keys.delete(key); + } + hasUnknown() { + return this.keys.size === 1 && Object.keys(this.to).length === 0; + } + writeUnknown() { + if (this.hasUnknown()) { + const k5 = this.keys.values().next().value; + const v = this.from[k5]; + this.to.$unknown = [k5, v]; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/detectBufferParsing.js +function detectBufferParsing() { + if (canParseBuffer === void 0) { + try { + if (typeof Buffer !== "function") { + canParseBuffer = false; + } else { + const result = JSON.parse(Buffer.from([123, 125])); + canParseBuffer = result !== null && typeof result === "object"; + } + } catch { + canParseBuffer = false; + } + } + return canParseBuffer; +} +var canParseBuffer; +var init_detectBufferParsing = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/detectBufferParsing.js"() { + __name(detectBufferParsing, "detectBufferParsing"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/jsonReviver.js +function jsonReviver(key, value, context) { + if (context?.source) { + const numericString = context.source; + if (typeof value === "number") { + const inSafeRange = value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER; + if (inSafeRange) { + if (isRepresentable(numericString, value)) { + return value; + } + return new NumericValue(numericString, "bigDecimal"); + } else { + if (isFractionalBigNumeric(numericString)) { + return new NumericValue(numericString, "bigDecimal"); + } + if (/[eE]/.test(numericString)) { + return expandExponentToBigInt(numericString); + } + return BigInt(numericString); + } + } + } + return value; +} +function isFractionalBigNumeric(s2) { + const dotIndex = s2.indexOf("."); + if (dotIndex === -1) { + return false; + } + const eIndex = s2.search(/[eE]/); + if (eIndex === -1) { + return true; + } + const fracDigits = eIndex - dotIndex - 1; + const exp = parseInt(s2.slice(eIndex + 1), 10); + return exp < fracDigits; +} +function isRepresentable(numericString, value) { + if (numericString === String(value)) { + return true; + } + if (Object.is(value, -0)) { + return true; + } + if (/[eE]/.test(numericString)) { + return expandToDecimal(numericString) === expandToDecimal(String(value)); + } + const normalized = numericString.replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, ""); + const canonical = String(value); + if (normalized === canonical) { + return true; + } + if (/[eE]/.test(canonical)) { + return normalized === expandToDecimal(canonical); + } + return false; +} +function expandToDecimal(s2) { + const negative = s2.startsWith("-"); + const abs = negative ? s2.slice(1) : s2; + const eIndex = abs.search(/[eE]/); + let result; + if (eIndex === -1) { + result = abs; + } else { + const exp = parseInt(abs.slice(eIndex + 1), 10); + const mantissa = abs.slice(0, eIndex); + const dotIndex = mantissa.indexOf("."); + let digits; + let intLen; + if (dotIndex === -1) { + digits = mantissa; + intLen = mantissa.length; + } else { + digits = mantissa.slice(0, dotIndex) + mantissa.slice(dotIndex + 1); + intLen = dotIndex; + } + digits = digits.replace(/0+$/, "") || "0"; + const newDotPos = intLen + exp; + if (digits === "0") { + result = "0"; + } else if (newDotPos <= 0) { + result = "0." + "0".repeat(-newDotPos) + digits; + } else if (newDotPos >= digits.length) { + result = digits + "0".repeat(newDotPos - digits.length); + } else { + result = digits.slice(0, newDotPos) + "." + digits.slice(newDotPos); + } + } + if (result.includes(".")) { + result = result.replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, ""); + } + return (negative ? "-" : "") + result; +} +function expandExponentToBigInt(s2) { + const eIndex = s2.search(/[eE]/); + const exp = parseInt(s2.slice(eIndex + 1), 10); + const negative = s2.startsWith("-"); + const mantissa = s2.slice(negative ? 1 : 0, eIndex); + const dotIndex = mantissa.indexOf("."); + let digits; + let shift; + if (dotIndex === -1) { + digits = mantissa; + shift = exp; + } else { + digits = mantissa.slice(0, dotIndex) + mantissa.slice(dotIndex + 1); + const fracDigits = mantissa.length - dotIndex - 1; + shift = exp - fracDigits; + } + digits = digits.replace(/0+$/, "") || "0"; + const result = BigInt(digits) * 10n ** BigInt(shift + (mantissa.replace(".", "").length - digits.length)); + return negative ? -result : result; +} +var init_jsonReviver = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/jsonReviver.js"() { + init_serde(); + __name(jsonReviver, "jsonReviver"); + __name(isFractionalBigNumeric, "isFractionalBigNumeric"); + __name(isRepresentable, "isRepresentable"); + __name(expandToDecimal, "expandToDecimal"); + __name(expandExponentToBigInt, "expandExponentToBigInt"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/needsReviver.js +function needsReviver(schema2) { + const ns = NormalizedSchema.of(schema2); + const raw4 = ns.getSchema(); + if (Array.isArray(raw4) && ns.isStructSchema()) { + if (REVIVER_SYMBOL in raw4) { + return raw4[REVIVER_SYMBOL]; + } + const result = _check2(ns, /* @__PURE__ */ new Set()); + raw4[REVIVER_SYMBOL] = result; + return result; + } + return _check2(ns, /* @__PURE__ */ new Set()); +} +function _check2(ns, seen) { + const raw4 = ns.getSchema(); + if (seen.has(raw4)) { + return false; + } + seen.add(raw4); + if (ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) { + return true; + } + if (ns.isStructSchema()) { + for (const [, memberSchema] of ns.structIterator()) { + if (_check2(memberSchema, seen)) { + return true; + } + } + } else if (ns.isListSchema() || ns.isMapSchema()) { + if (_check2(ns.getValueSchema(), seen)) { + return true; + } + } else if (ns.isDocumentSchema()) { + return true; + } + return false; +} +var REVIVER_SYMBOL; +var init_needsReviver = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/needsReviver.js"() { + init_schema(); + REVIVER_SYMBOL = /* @__PURE__ */ Symbol.for("@aws-sdk/reviver"); + __name(needsReviver, "needsReviver"); + __name(_check2, "_check"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +var collectBodyString; +var init_common2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/common.js"() { + init_collect_stream_body(); + init_serde(); + collectBodyString = /* @__PURE__ */ __name((streamBody, context) => collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? toUtf8)(body)), "collectBodyString"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/parseJsonBody.js +async function parseJsonBody(streamBody, context, schema2) { + let parsingInput; + if (detectBufferParsing() && typeof streamBody?.[Symbol.asyncIterator] === "function") { + const buffer = await collectBody(streamBody, context); + if (typeof Buffer === "function") { + if (Buffer.isBuffer(buffer)) { + parsingInput = buffer; + } else { + parsingInput = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength); + } + } + } + if (!parsingInput) { + parsingInput = await collectBodyString(streamBody, context); + } + if (parsingInput.length === 0) { + return {}; + } + const reviver = schema2 && needsReviver(schema2) ? jsonReviver : void 0; + try { + return JSON.parse(parsingInput, reviver); + } catch (e5) { + if (e5?.name === "SyntaxError") { + Object.defineProperty(e5, "$responseBodyText", { + value: typeof parsingInput === "string" ? parsingInput : parsingInput.toString("utf8") + }); + } + throw e5; + } +} +var parseJsonErrorBody, findKey, sanitizeErrorCode, loadRestJsonErrorCode, loadJsonRpcErrorCode, loadSmithyRpcV2JsonErrorCode, loadErrorCode; +var init_parseJsonBody = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/parseJsonBody.js"() { + init_collect_stream_body(); + init_common2(); + init_detectBufferParsing(); + init_jsonReviver(); + init_needsReviver(); + __name(parseJsonBody, "parseJsonBody"); + parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => { + const value = await parseJsonBody(errorBody, context); + value.message = value.message ?? value.Message; + return value; + }, "parseJsonErrorBody"); + findKey = /* @__PURE__ */ __name((object2, key) => Object.keys(object2).find((k5) => k5.toLowerCase() === key.toLowerCase()), "findKey"); + sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => { + let cleanValue = rawValue; + if (typeof cleanValue === "number") { + cleanValue = cleanValue.toString(); + } + if (cleanValue.indexOf(",") >= 0) { + cleanValue = cleanValue.split(",")[0]; + } + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + if (cleanValue.indexOf("#") >= 0) { + cleanValue = cleanValue.split("#")[1]; + } + return cleanValue; + }, "sanitizeErrorCode"); + loadRestJsonErrorCode = /* @__PURE__ */ __name((output2, data) => { + return loadErrorCode(output2, data, ["header", "code", "type"]); + }, "loadRestJsonErrorCode"); + loadJsonRpcErrorCode = /* @__PURE__ */ __name((output2, data, queryCompat = false) => { + return loadErrorCode(output2, data, queryCompat ? ["code", "header", "type"] : ["type", "code", "header"]); + }, "loadJsonRpcErrorCode"); + loadSmithyRpcV2JsonErrorCode = /* @__PURE__ */ __name((output2, data) => { + if (data?.__type !== void 0) { + let cleanValue = data.__type; + if (typeof cleanValue === "number") { + cleanValue = cleanValue.toString(); + } + if (cleanValue.indexOf(",") >= 0) { + cleanValue = cleanValue.split(",")[0]; + } + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + return cleanValue; + } + }, "loadSmithyRpcV2JsonErrorCode"); + loadErrorCode = /* @__PURE__ */ __name(({ headers }, data, order) => { + while (order.length > 0) { + const location = order.shift(); + switch (location) { + case "header": + const headerKey = findKey(headers ?? {}, "x-amzn-errortype"); + if (headerKey !== void 0) { + return sanitizeErrorCode(headers[headerKey]); + } + break; + case "code": + const codeKey = findKey(data ?? {}, "code"); + if (codeKey && data[codeKey] !== void 0) { + return sanitizeErrorCode(data[codeKey]); + } + break; + case "type": + if (data?.__type !== void 0) { + return sanitizeErrorCode(data.__type); + } + break; + } + } + }, "loadErrorCode"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +function writeKey(obj) { + Object.defineProperty(obj, "__proto__", { value: void 0, writable: true, enumerable: true, configurable: true }); +} +var init_writeKey = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js"() { + __name(writeKey, "writeKey"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +var JsonShapeDeserializer2; +var init_JsonShapeDeserializer2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js"() { + init_determineTimestampFormat(); + init_schema(); + init_serde(); + init_ConfigurableSerdeContext(); + init_UnionSerde(); + init_detectBufferParsing(); + init_jsonReviver(); + init_needsReviver(); + init_parseJsonBody(); + init_writeKey(); + init_transport(); + JsonShapeDeserializer2 = class extends SerdeContextConfig { + static { + __name(this, "JsonShapeDeserializer2"); + } + settings; + constructor(settings) { + super(); + this.settings = settings; + } + async read(schema2, data) { + const reviver = needsReviver(schema2) ? jsonReviver : void 0; + let parsed2; + if (typeof data === "string") { + if (data.length === 0) { + return {}; + } + parsed2 = JSON.parse(data, reviver); + } else if (data instanceof Uint8Array && detectBufferParsing()) { + if (data.byteLength === 0) { + return {}; + } + const buf = Buffer.isBuffer(data) ? data : Buffer.from(data.buffer, data.byteOffset, data.byteLength); + parsed2 = JSON.parse(buf, reviver); + } else { + parsed2 = await parseJsonBody(data, this.serdeContext, schema2); + } + return this._read(schema2, parsed2); + } + readObject(schema2, data) { + return this._read(schema2, data); + } + _read(schema2, value) { + const isObject2 = value !== null && typeof value === "object"; + const ns = NormalizedSchema.of(schema2); + if (isObject2) { + if (ns.isStructSchema()) { + return this._readStruct(ns, value); + } + if (Array.isArray(value) && ns.isListSchema()) { + const listMember = ns.getValueSchema(); + if (this.needsTransform(listMember)) { + for (let i5 = 0; i5 < value.length; ++i5) { + value[i5] = this._read(listMember, value[i5]); + } + } + return value; + } + if (ns.isMapSchema()) { + const mapMember = ns.getValueSchema(); + const map2 = value; + if (this.needsTransform(mapMember)) { + for (const k5 in map2) { + if (!hasOwn(map2, k5)) + continue; + if (k5 === "__proto__") { + writeKey(map2); + } + map2[k5] = this._read(mapMember, map2[k5]); + } + } + return map2; + } + } + if (ns.isBlobSchema() && typeof value === "string") { + return fromBase64(value); + } + const mediaType = ns.getMergedTraits().mediaType; + if (ns.isStringSchema() && typeof value === "string" && mediaType) { + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + return LazyJsonString.from(value); + } + return value; + } + if (ns.isTimestampSchema() && value != null) { + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: + return parseRfc3339DateTimeWithOffset(value); + case 6: + return parseRfc7231DateTime(value); + case 7: + return parseEpochTimestamp(value); + default: + console.warn("Missing timestamp format, parsing value with Date constructor:", value); + return new Date(value); + } + } + if (ns.isBigIntegerSchema() && (typeof value === "number" || typeof value === "string")) { + return BigInt(value); + } + if (ns.isBigDecimalSchema() && value != void 0) { + if (value instanceof NumericValue) { + return value; + } + const untyped = value; + if (untyped.type === "bigDecimal" && "string" in untyped) { + return new NumericValue(untyped.string, untyped.type); + } + return new NumericValue(String(value), "bigDecimal"); + } + if (ns.isNumericSchema() && typeof value === "string") { + switch (value) { + case "Infinity": + return Infinity; + case "-Infinity": + return -Infinity; + case "NaN": + return NaN; + } + return value; + } + if (ns.isDocumentSchema()) { + if (isObject2) { + if (Array.isArray(value)) { + for (let i5 = 0; i5 < value.length; ++i5) { + const v = value[i5]; + if (!(v instanceof NumericValue)) { + value[i5] = this._read(ns, v); + } + } + } else { + const doc = value; + for (const k5 in doc) { + if (!hasOwn(doc, k5)) + continue; + if (k5 === "__proto__") { + writeKey(doc); + } + const v = doc[k5]; + if (!(v instanceof NumericValue)) { + doc[k5] = this._read(ns, v); + } + } + } + } + } + return value; + } + _readStruct(ns, record2) { + const union2 = ns.isUnionSchema(); + const out = {}; + let nameMap; + const hasType = typeof record2.__type === "string"; + const { jsonName } = this.settings; + if (jsonName && hasType) { + nameMap = {}; + } + let unionSerde; + if (union2) { + unionSerde = new UnionSerde(record2, out); + } + for (const [memberName, memberSchema] of ns.structIterator()) { + let fromKey = memberName; + if (jsonName) { + fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey; + if (hasType) { + nameMap[fromKey] = memberName; + } + } + if (union2) { + unionSerde.mark(fromKey); + } + if (record2[fromKey] != null) { + out[memberName] = this._read(memberSchema, record2[fromKey]); + } + } + if (union2) { + unionSerde.writeUnknown(); + } else if (hasType) { + for (const k5 in record2) { + if (!hasOwn(record2, k5)) + continue; + const v = record2[k5]; + const t = jsonName ? nameMap[k5] ?? k5 : k5; + if (!(t in out)) { + out[t] = v; + } + } + } + return out; + } + needsTransform(ns) { + if (ns.isBlobSchema() || ns.isTimestampSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema() || ns.isNumericSchema()) { + return true; + } + if (ns.isDocumentSchema() || ns.isStructSchema() || ns.isListSchema() || ns.isMapSchema()) { + return true; + } + if (ns.isStringSchema() && ns.getMergedTraits().mediaType) { + return true; + } + return false; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +var JsonBytesStringAdapter, warned; +var init_JsonBytesStringAdapter = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js"() { + init_serde(); + JsonBytesStringAdapter = class _JsonBytesStringAdapter extends Uint8Array { + static { + __name(this, "JsonBytesStringAdapter"); + } + string = null; + static allocUnsafe(bytes) { + if (typeof Buffer === "function") { + const buffer = Buffer.allocUnsafe(bytes); + return new _JsonBytesStringAdapter(buffer.buffer, buffer.byteOffset, buffer.byteLength); + } + return new _JsonBytesStringAdapter(bytes); + } + toString() { + return this.s(); + } + valueOf() { + return this.s(); + } + includes(searchString, position) { + if (typeof searchString === "string") { + return this.s().includes(searchString, position); + } + return Uint8Array.prototype.includes.call(this, searchString, position); + } + indexOf(searchString, position) { + if (typeof searchString === "string") { + return this.s().indexOf(searchString, position); + } + return Uint8Array.prototype.indexOf.call(this, searchString, position); + } + lastIndexOf(searchString, position) { + if (typeof searchString === "string") { + return this.s().lastIndexOf(searchString, position); + } + const fn = Uint8Array.prototype.lastIndexOf; + if (position !== void 0) { + return fn.call(this, searchString, position); + } + return fn.call(this, searchString); + } + startsWith(searchString, position) { + return this.s().startsWith(searchString, position); + } + endsWith(searchString, endPosition) { + return this.s().endsWith(searchString, endPosition); + } + match(regexp) { + return this.s().match(regexp); + } + replace(searchValue, replaceValue) { + return this.s().replace(searchValue, replaceValue); + } + search(regexp) { + return this.s().search(regexp); + } + split(separator, limit) { + return this.s().split(separator, limit); + } + substring(start, end) { + return this.s().substring(start, end); + } + trim() { + return this.s().trim(); + } + trimStart() { + return this.s().trimStart(); + } + trimEnd() { + return this.s().trimEnd(); + } + charAt(pos) { + return this.s().charAt(pos); + } + charCodeAt(index) { + return this.s().charCodeAt(index); + } + padStart(maxLength, fillString) { + return this.s().padStart(maxLength, fillString); + } + padEnd(maxLength, fillString) { + return this.s().padEnd(maxLength, fillString); + } + repeat(count) { + return this.s().repeat(count); + } + toUpperCase() { + return this.s().toUpperCase(); + } + toLowerCase() { + return this.s().toLowerCase(); + } + s() { + if (this.string == null) { + const n3 = Date.now(); + if (n3 > warned + 6e4) { + console.warn("@aws-sdk/core/protocols - WARN - JsonCodec2: you have called a string method on a Uint8Array request body. It has been automatically converted to string. In a future version this will throw an error."); + warned = n3; + } + this.string = toUtf8(this); + } + return this.string; + } + }; + warned = 0; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +function alloc(size) { + return JsonBytesStringAdapter.allocUnsafe(size); +} +var encoder, OPEN_BRACE, CLOSE_BRACE, OPEN_BRACKET, CLOSE_BRACKET, QUOTE, COLON, COMMA, BACKSLASH, TRUE, FALSE, NULL, ESCAPE_TABLE, INITIAL_BUFFER_SIZE, JsonShapeSerializer2; +var init_JsonShapeSerializer2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js"() { + init_determineTimestampFormat(); + init_schema(); + init_serde(); + init_ConfigurableSerdeContext(); + init_transport(); + init_JsonBytesStringAdapter(); + encoder = new TextEncoder(); + OPEN_BRACE = 123; + CLOSE_BRACE = 125; + OPEN_BRACKET = 91; + CLOSE_BRACKET = 93; + QUOTE = 34; + COLON = 58; + COMMA = 44; + BACKSLASH = 92; + TRUE = new Uint8Array([116, 114, 117, 101]); + FALSE = new Uint8Array([102, 97, 108, 115, 101]); + NULL = new Uint8Array([110, 117, 108, 108]); + ESCAPE_TABLE = new Array(128).fill(null); + ESCAPE_TABLE[8] = "b"; + ESCAPE_TABLE[9] = "t"; + ESCAPE_TABLE[10] = "n"; + ESCAPE_TABLE[12] = "f"; + ESCAPE_TABLE[13] = "r"; + ESCAPE_TABLE[34] = '"'; + ESCAPE_TABLE[92] = "\\"; + for (let i5 = 0; i5 < 32; i5++) { + if (ESCAPE_TABLE[i5] === null) { + ESCAPE_TABLE[i5] = "u00" + i5.toString(16).padStart(2, "0"); + } + } + INITIAL_BUFFER_SIZE = 2048; + __name(alloc, "alloc"); + JsonShapeSerializer2 = class _JsonShapeSerializer2 extends SerdeContextConfig { + static { + __name(this, "JsonShapeSerializer2"); + } + settings; + json; + i = 0; + rootSchema; + rawValue; + passthrough = false; + constructor(settings) { + super(); + this.settings = settings; + this.json = alloc(INITIAL_BUFFER_SIZE); + } + write(schema2, value) { + this.i = 0; + this.rawValue = value; + this.rootSchema = NormalizedSchema.of(schema2); + this.passthrough = this.rootSchema.isBlobSchema() || this.rootSchema.isStringSchema(); + if (!this.passthrough) { + this.writeValue(this.rootSchema, value, void 0); + } + } + writeDiscriminatedDocument(schema2, value) { + this.i = 0; + this.rootSchema = NormalizedSchema.of(schema2); + const ns = this.rootSchema; + if (ns.isStructSchema() && value != null && typeof value === "object") { + this.writeValue(ns, value, void 0); + const prefix = `"__type":"${ns.getName(true) ?? "Unknown"}",`; + const z2 = prefix.length; + this.ensure(z2); + this.json.copyWithin(1 + z2, 1, this.i); + encoder.encodeInto(prefix, this.json.subarray(1)); + this.i += z2; + } else { + this.writeValue(ns, value, void 0); + } + } + flush() { + this.rootSchema = void 0; + const finalPosition = this.i; + this.i = 0; + const raw4 = this.rawValue; + this.rawValue = void 0; + if (finalPosition === 0) { + return raw4; + } + const result = this.json.subarray(0, finalPosition); + this.json = alloc(INITIAL_BUFFER_SIZE); + return result; + } + ensure(byteCount) { + const { i: i5, json: json2 } = this; + if (i5 + byteCount > json2.length) { + let newSize = json2.length * 2; + while (newSize < i5 + byteCount) { + newSize *= 2; + } + const next = alloc(newSize); + next.set(this.json); + this.json = next; + } + } + writeAscii(s2) { + const z2 = s2.length; + this.ensure(z2); + let { i: i5, json: json2 } = this; + for (let j5 = 0; j5 < z2; ++j5) { + json2[i5] = s2.charCodeAt(j5); + i5 += 1; + } + this.i = i5; + } + writeAsciiQuoted(s2) { + const z2 = s2.length; + this.ensure(z2 + 4); + let { json: json2, i: i5 } = this; + json2[i5++] = QUOTE; + for (let j5 = 0; j5 < z2; ++j5) { + json2[i5++] = s2.charCodeAt(j5); + } + json2[i5++] = QUOTE; + this.i = i5; + } + writeJsonString(s2) { + const z2 = s2.length; + this.ensure(z2 * 3 + 2); + this.json[this.i++] = QUOTE; + for (let j5 = 0; j5 < z2; ++j5) { + const c5 = s2.charCodeAt(j5); + if (c5 > 34 && c5 < 92) { + this.json[this.i++] = c5; + } else if (c5 < 128) { + const esc2 = ESCAPE_TABLE[c5]; + if (esc2 !== null) { + this.ensure(esc2.length + 1 + (z2 - j5 - 1) * 3 + 1); + this.json[this.i++] = BACKSLASH; + for (let k5 = 0; k5 < esc2.length; k5++) { + this.json[this.i++] = esc2.charCodeAt(k5); + } + } else { + this.json[this.i++] = c5; + } + } else if (c5 >= 55296 && c5 <= 56319) { + const next = j5 + 1 < z2 ? s2.charCodeAt(j5 + 1) : 0; + if (next >= 56320 && next <= 57343) { + this.ensure(4); + const { written } = encoder.encodeInto(s2.substring(j5, j5 + 2), this.json.subarray(this.i)); + this.i += written; + ++j5; + } else { + this.ensure(6 + (z2 - j5 - 1) * 3 + 1); + this.writeUnicodeEscape(c5); + } + } else if (c5 >= 56320 && c5 <= 57343) { + this.ensure(6 + (z2 - j5 - 1) * 3 + 1); + this.writeUnicodeEscape(c5); + } else { + let { i: i5, json: json2 } = this; + if (c5 < 2048) { + json2[i5++] = 192 | c5 >> 6; + json2[i5++] = 128 | c5 & 63; + } else { + json2[i5++] = 224 | c5 >> 12; + json2[i5++] = 128 | c5 >> 6 & 63; + json2[i5++] = 128 | c5 & 63; + } + this.i = i5; + } + } + this.json[this.i++] = QUOTE; + } + writeUnicodeEscape(code) { + let { json: json2, i: i5 } = this; + json2[i5++] = BACKSLASH; + json2[i5++] = 117; + const hex3 = code.toString(16).padStart(4, "0"); + for (let j5 = 0; j5 < 4; ++j5) { + json2[i5++] = hex3.charCodeAt(j5); + } + this.i = i5; + } + static B64 = (() => { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + const table = new Uint8Array(64); + for (let i5 = 0; i5 < 64; ++i5) { + table[i5] = chars.charCodeAt(i5); + } + return table; + })(); + writeBase64(data) { + const b64Len = Math.ceil(data.length / 3) * 4; + this.ensure(b64Len + 2); + const json2 = this.json; + const B64 = _JsonShapeSerializer2.B64; + let i5 = this.i; + json2[i5++] = QUOTE; + const len = data.length; + const remainder = len % 3; + const mainLen = len - remainder; + for (let j5 = 0; j5 < mainLen; j5 += 3) { + const a5 = data[j5]; + const b5 = data[j5 + 1]; + const c5 = data[j5 + 2]; + json2[i5++] = B64[a5 >> 2]; + json2[i5++] = B64[(a5 & 3) << 4 | b5 >> 4]; + json2[i5++] = B64[(b5 & 15) << 2 | c5 >> 6]; + json2[i5++] = B64[c5 & 63]; + } + if (remainder === 2) { + const a5 = data[mainLen]; + const b5 = data[mainLen + 1]; + json2[i5++] = B64[a5 >> 2]; + json2[i5++] = B64[(a5 & 3) << 4 | b5 >> 4]; + json2[i5++] = B64[(b5 & 15) << 2]; + json2[i5++] = 61; + } else if (remainder === 1) { + const a5 = data[mainLen]; + json2[i5++] = B64[a5 >> 2]; + json2[i5++] = B64[(a5 & 3) << 4]; + json2[i5++] = 61; + json2[i5++] = 61; + } + json2[i5++] = QUOTE; + this.i = i5; + } + writeValue(schema2, value, container) { + if (value == null) { + if (container?.isStructSchema()) { + if (value === void 0) { + const ns2 = NormalizedSchema.of(schema2); + if (ns2.isIdempotencyToken()) { + this.writeAsciiQuoted(generateIdempotencyToken()); + return; + } + } + return; + } + this.ensure(4); + this.json.set(NULL, this.i); + this.i += 4; + return; + } + const ns = NormalizedSchema.of(schema2); + const isObject2 = typeof value === "object"; + if (ns.isStringSchema()) { + const mediaType = ns.getMergedTraits().mediaType; + if (mediaType) { + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + this.writeJsonString(LazyJsonString.from(value).toString()); + return; + } + } + } + if (this.settings.bigNumberAsString && value != null && (ns.isBigIntegerSchema() || ns.isBigDecimalSchema())) { + const asString = value instanceof NumericValue ? value.string : String(value); + this.writeAsciiQuoted(asString); + return; + } + if (isObject2) { + if (ns.isStructSchema()) { + this.writeStruct(ns, value); + return; + } + if (Array.isArray(value) && (ns.isListSchema() || ns.isDocumentSchema())) { + this.writeList(ns, value, ns.isDocumentSchema()); + return; + } + if (ns.isMapSchema()) { + this.writeMap(ns, value, false); + return; + } + if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) { + this.writeBase64(value); + return; + } + if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) { + this.writeTimestamp(ns, value); + return; + } + if (value instanceof NumericValue) { + this.writeAscii(value.string); + return; + } + if (ns.isDocumentSchema()) { + if (Array.isArray(value)) { + this.writeList(ns, value, true); + } else { + this.writeMap(ns, value, true); + } + return; + } + const json2 = JSON.stringify(value); + this.writeAscii(json2); + return; + } + if (typeof value === "string") { + if (ns.isBlobSchema()) { + const b64 = (this.serdeContext?.base64Encoder ?? toBase64)(value); + this.writeAsciiQuoted(b64); + return; + } + this.writeJsonString(value); + return; + } + if (typeof value === "number") { + if (Math.abs(value) === Infinity || Number.isNaN(value)) { + this.writeAsciiQuoted(String(value)); + return; + } + const numStr = String(value); + this.writeAscii(numStr); + return; + } + if (typeof value === "boolean") { + this.ensure(5); + let { i: i5, json: json2 } = this; + if (value) { + json2.set(TRUE, i5); + i5 += 4; + } else { + json2.set(FALSE, i5); + i5 += 5; + } + this.i = i5; + return; + } + if (typeof value === "bigint") { + this.writeAscii(value.toString()); + return; + } + this.writeAscii(String(value)); + } + writeStruct(ns, value) { + this.ensure(2); + this.json[this.i++] = OPEN_BRACE; + let wroteAny = false; + const hasType = typeof value.__type === "string"; + let writtenKeys; + if (hasType) { + writtenKeys = /* @__PURE__ */ new Set(); + } + for (const [memberName, memberSchema] of ns.structIterator()) { + const item = value[memberName]; + if (item == null && !memberSchema.isIdempotencyToken()) { + continue; + } + if (wroteAny) { + this.ensure(1); + this.json[this.i++] = COMMA; + } + wroteAny = true; + const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName; + if (writtenKeys) { + writtenKeys.add(memberName); + writtenKeys.add(targetKey); + } + this.writeAsciiQuoted(targetKey); + this.json[this.i++] = COLON; + this.writeValue(memberSchema, item, ns); + } + if (!wroteAny && ns.isUnionSchema()) { + const { $unknown } = value; + if (Array.isArray($unknown)) { + const [k5, v] = $unknown; + this.writeAsciiQuoted(k5); + this.ensure(1); + this.json[this.i++] = COLON; + this.writeValue(15, v, ns); + } + } else if (hasType) { + for (const k5 in value) { + if (writtenKeys.has(k5)) { + continue; + } + writtenKeys.add(k5); + const v = value[k5]; + if (wroteAny) { + this.ensure(1); + this.json[this.i++] = COMMA; + } + wroteAny = true; + this.writeAsciiQuoted(k5); + this.ensure(1); + this.json[this.i++] = COLON; + this.writeValue(15, v, void 0); + } + } + this.ensure(1); + this.json[this.i++] = CLOSE_BRACE; + } + writeList(ns, value, isDocument) { + const sparse = !!ns.getMergedTraits().sparse; + const valueSchema = ns.getValueSchema(); + if (!isDocument) { + if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) { + let hasSpecials = false; + for (let i5 = 0; i5 < value.length; ++i5) { + const v = value[i5]; + if (Number.isNaN(v) || v === Infinity || v === -Infinity || v == null && !sparse) { + hasSpecials = true; + break; + } + } + let json2; + if (!hasSpecials) { + json2 = JSON.stringify(value); + } else { + const out = []; + for (let i5 = 0; i5 < value.length; ++i5) { + const v = value[i5]; + if (v == null && !sparse) + continue; + if (Number.isNaN(v) || v === Infinity || v === -Infinity) { + out.push(String(v)); + } else { + out.push(v); + } + } + json2 = JSON.stringify(out); + } + this.ensure(json2.length * 3); + this.i += encoder.encodeInto(json2, this.json.subarray(this.i)).written; + return; + } + } + this.ensure(2); + this.json[this.i++] = OPEN_BRACKET; + let wroteFirstItem = false; + for (let i5 = 0; i5 < value.length; ++i5) { + const item = value[i5]; + if (isDocument ? item === void 0 : item == null && !sparse) { + continue; + } + if (wroteFirstItem) { + this.ensure(1); + this.json[this.i++] = COMMA; + } + this.writeValue(valueSchema, item, void 0); + wroteFirstItem = true; + } + this.ensure(1); + this.json[this.i++] = CLOSE_BRACKET; + } + writeMap(ns, value, isDocument) { + const sparse = !!ns.getMergedTraits().sparse; + const valueSchema = ns.getValueSchema(); + if (!isDocument) { + if (valueSchema.isStringSchema() || valueSchema.isNumericSchema() || valueSchema.isBooleanSchema()) { + let modifications; + for (const k5 in value) { + if (!hasOwn(value, k5)) + continue; + const v = value[k5]; + if (Number.isNaN(v) || v === Infinity || v === -Infinity) { + (modifications ??= {})[k5] = v; + value[k5] = String(v); + } else if (v === null && !sparse) { + (modifications ??= {})[k5] = null; + value[k5] = void 0; + } + } + const json2 = JSON.stringify(value); + if (modifications) { + Object.assign(value, modifications); + } + this.ensure(json2.length * 3); + this.i += encoder.encodeInto(json2, this.json.subarray(this.i)).written; + return; + } + } + this.ensure(2); + this.json[this.i++] = OPEN_BRACE; + let first = true; + for (const k5 in value) { + if (!hasOwn(value, k5)) + continue; + const v = value[k5]; + if (isDocument ? v === void 0 : v == null && !sparse) { + continue; + } + if (!first) { + this.ensure(1); + this.json[this.i++] = COMMA; + } + first = false; + this.writeJsonString(k5); + this.ensure(1); + this.json[this.i++] = COLON; + this.writeValue(valueSchema, v, void 0); + } + this.ensure(1); + this.json[this.i++] = CLOSE_BRACE; + } + writeTimestamp(ns, value) { + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: { + const iso = value.toISOString().replace(".000Z", "Z"); + this.writeAsciiQuoted(iso); + return; + } + case 6: { + this.writeAsciiQuoted(dateToUtcString(value)); + return; + } + case 7: { + const epochSecs = String(value.getTime() / 1e3); + this.writeAscii(epochSecs); + return; + } + default: { + const epochSecs = String(value.getTime() / 1e3); + this.writeAscii(epochSecs); + return; + } + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +var JsonCodec2; +var init_JsonCodec2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js"() { + init_ConfigurableSerdeContext(); + init_JsonShapeDeserializer2(); + init_JsonShapeSerializer2(); + JsonCodec2 = class extends SerdeContextConfig { + static { + __name(this, "JsonCodec2"); + } + settings; + constructor(settings) { + super(); + this.settings = settings; + } + createSerializer() { + const serializer = new JsonShapeSerializer2(this.settings); + serializer.setSerdeContext(this.serdeContext); + return serializer; + } + createDeserializer() { + const deserializer = new JsonShapeDeserializer2(this.settings); + deserializer.setSerdeContext(this.serdeContext); + return deserializer; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +var SmithyRpcV2JsonProtocol; +var init_SmithyRpcV2JsonProtocol = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js"() { + init_RpcProtocol(); + init_schema(); + init_transport(); + init_JsonCodec2(); + init_parseJsonBody(); + SmithyRpcV2JsonProtocol = class extends RpcProtocol { + static { + __name(this, "SmithyRpcV2JsonProtocol"); + } + codec = new JsonCodec2({ + timestampFormat: { + useTrait: false, + default: 7 + }, + jsonName: false, + bigNumberAsString: true + }); + serializer = this.codec.createSerializer(); + deserializer = this.codec.createDeserializer(); + constructor({ defaultNamespace, errorTypeRegistries: errorTypeRegistries5 }) { + super({ defaultNamespace, errorTypeRegistries: errorTypeRegistries5 }); + } + getShapeId() { + return "smithy.protocols#rpcv2Json"; + } + getPayloadCodec() { + return this.codec; + } + async serializeRequest(operationSchema, input2, context) { + const request = await super.serializeRequest(operationSchema, input2, context); + Object.assign(request.headers, { + "content-type": this.getDefaultContentType(), + "smithy-protocol": "rpc-v2-json", + accept: this.getDefaultContentType() + }); + if (deref(operationSchema.input) === "unit") { + delete request.body; + delete request.headers["content-type"]; + } else if (!request.body) { + request.body = "{}"; + } + const { service, operation } = getSmithyContext(context); + const path2 = `/service/${service}/operation/${operation}`; + if (request.path.endsWith("/")) { + request.path += path2.slice(1); + } else { + request.path += path2; + } + return request; + } + async deserializeResponse(operationSchema, context, response) { + return super.deserializeResponse(operationSchema, context, response); + } + async handleError(operationSchema, context, response, dataObject, metadata) { + const errorName = loadSmithyRpcV2JsonErrorCode(response, dataObject) ?? "Unknown"; + const errorMetadata = { + $metadata: metadata, + $fault: response.statusCode <= 500 ? "client" : "server" + }; + let namespace = this.options.defaultNamespace; + if (errorName.includes("#")) { + [namespace] = errorName.split("#"); + } + const registry2 = this.compositeErrorRegistry; + const nsRegistry = TypeRegistry.for(namespace); + registry2.copyFrom(nsRegistry); + let errorSchema; + try { + errorSchema = registry2.getSchema(errorName); + } catch (ignored) { + if (dataObject.Message) { + dataObject.message = dataObject.Message; + } + const syntheticRegistry = TypeRegistry.for("smithy.ts.sdk.synthetic." + namespace); + registry2.copyFrom(syntheticRegistry); + const baseExceptionSchema = registry2.getBaseException(); + if (baseExceptionSchema) { + const ErrorCtor2 = registry2.getErrorCtor(baseExceptionSchema); + throw Object.assign(new ErrorCtor2({ name: errorName }), errorMetadata, dataObject); + } + throw Object.assign(new Error(errorName), errorMetadata, dataObject); + } + const ns = NormalizedSchema.of(errorSchema); + const ErrorCtor = registry2.getErrorCtor(errorSchema); + const message = dataObject.message ?? dataObject.Message ?? "Unknown"; + const exception = new ErrorCtor({}); + const output2 = {}; + const errorDeserializer = this.codec.createDeserializer(); + for (const [name2, member] of ns.structIterator()) { + if (dataObject[name2] != null) { + output2[name2] = errorDeserializer.readObject(member, dataObject[name2]); + } + } + throw Object.assign(exception, errorMetadata, { + $fault: ns.getMergedTraits().error, + message + }, output2); + } + getDefaultContentType() { + return "application/json"; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +var JsonShapeDeserializer; +var init_JsonShapeDeserializer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js"() { + init_determineTimestampFormat(); + init_schema(); + init_serde(); + init_serde(); + init_transport(); + init_ConfigurableSerdeContext(); + init_UnionSerde(); + init_jsonReviver(); + init_needsReviver(); + init_parseJsonBody(); + init_writeKey(); + JsonShapeDeserializer = class extends SerdeContextConfig { + static { + __name(this, "JsonShapeDeserializer"); + } + settings; + constructor(settings) { + super(); + this.settings = settings; + } + async read(schema2, data) { + const reviver = needsReviver(schema2) ? jsonReviver : void 0; + return this._read(schema2, typeof data === "string" ? JSON.parse(data, reviver) : await parseJsonBody(data, this.serdeContext, schema2)); + } + readObject(schema2, data) { + return this._read(schema2, data); + } + _read(schema2, value) { + const isObject2 = value !== null && typeof value === "object"; + const ns = NormalizedSchema.of(schema2); + if (isObject2) { + if (ns.isStructSchema()) { + const record2 = value; + const union2 = ns.isUnionSchema(); + const out = {}; + let nameMap = void 0; + const { jsonName } = this.settings; + if (jsonName) { + nameMap = {}; + } + let unionSerde; + if (union2) { + unionSerde = new UnionSerde(record2, out); + } + for (const [memberName, memberSchema] of ns.structIterator()) { + let fromKey = memberName; + if (jsonName) { + fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey; + nameMap[fromKey] = memberName; + } + if (union2) { + unionSerde.mark(fromKey); + } + if (record2[fromKey] != null) { + out[memberName] = this._read(memberSchema, record2[fromKey]); + } + } + if (union2) { + unionSerde.writeUnknown(); + } else if (typeof record2.__type === "string") { + for (const k5 in record2) { + if (!hasOwn(record2, k5)) + continue; + const v = record2[k5]; + const t = jsonName ? nameMap[k5] ?? k5 : k5; + if (!(t in out)) { + out[t] = v; + } + } + } + return out; + } + if (Array.isArray(value) && ns.isListSchema()) { + const listMember = ns.getValueSchema(); + const out = []; + for (const item of value) { + out.push(this._read(listMember, item)); + } + return out; + } + if (ns.isMapSchema()) { + const mapMember = ns.getValueSchema(); + const out = {}; + for (const _k in value) { + if (!hasOwn(value, _k)) + continue; + if (_k === "__proto__") { + writeKey(out); + } + out[_k] = this._read(mapMember, value[_k]); + } + return out; + } + } + if (ns.isBlobSchema() && typeof value === "string") { + return fromBase64(value); + } + const mediaType = ns.getMergedTraits().mediaType; + if (ns.isStringSchema() && typeof value === "string" && mediaType) { + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + return LazyJsonString.from(value); + } + return value; + } + if (ns.isTimestampSchema() && value != null) { + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: + return parseRfc3339DateTimeWithOffset(value); + case 6: + return parseRfc7231DateTime(value); + case 7: + return parseEpochTimestamp(value); + default: + console.warn("Missing timestamp format, parsing value with Date constructor:", value); + return new Date(value); + } + } + if (ns.isBigIntegerSchema() && (typeof value === "number" || typeof value === "string")) { + return BigInt(value); + } + if (ns.isBigDecimalSchema() && value != void 0) { + if (value instanceof NumericValue) { + return value; + } + const untyped = value; + if (untyped.type === "bigDecimal" && "string" in untyped) { + return new NumericValue(untyped.string, untyped.type); + } + return new NumericValue(String(value), "bigDecimal"); + } + if (ns.isNumericSchema() && typeof value === "string") { + switch (value) { + case "Infinity": + return Infinity; + case "-Infinity": + return -Infinity; + case "NaN": + return NaN; + } + return value; + } + if (ns.isDocumentSchema()) { + if (isObject2) { + const out = Array.isArray(value) ? [] : {}; + for (const k5 in value) { + if (!hasOwn(value, k5)) + continue; + if (k5 === "__proto__") { + writeKey(out); + } + const v = value[k5]; + if (v instanceof NumericValue) { + out[k5] = v; + } else { + out[k5] = this._read(ns, v); + } + } + return out; + } else { + return structuredClone(value); + } + } + return value; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/jsonReplacer.js +var NUMERIC_CONTROL_CHAR, JsonReplacer; +var init_jsonReplacer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/jsonReplacer.js"() { + init_serde(); + NUMERIC_CONTROL_CHAR = String.fromCharCode(925); + JsonReplacer = class { + static { + __name(this, "JsonReplacer"); + } + values = /* @__PURE__ */ new Map(); + counter = 0; + stage = 0; + createReplacer() { + if (this.stage === 1) { + throw new Error("@aws-sdk/core/protocols - JsonReplacer already created."); + } + if (this.stage === 2) { + throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted."); + } + this.stage = 1; + return (key, value) => { + if (value instanceof NumericValue) { + const v = `${NUMERIC_CONTROL_CHAR + "nv" + this.counter++}_` + value.string; + this.values.set(`"${v}"`, value.string); + return v; + } + if (typeof value === "bigint") { + const s2 = value.toString(); + const v = `${NUMERIC_CONTROL_CHAR + "b" + this.counter++}_` + s2; + this.values.set(`"${v}"`, s2); + return v; + } + return value; + }; + } + replaceInJson(json2) { + if (this.stage === 0) { + throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet."); + } + if (this.stage === 2) { + throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted."); + } + this.stage = 2; + if (this.counter === 0) { + return json2; + } + for (const [key, value] of this.values) { + json2 = json2.replace(key, value); + } + return json2; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +var JsonShapeSerializer; +var init_JsonShapeSerializer = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js"() { + init_determineTimestampFormat(); + init_schema(); + init_serde(); + init_ConfigurableSerdeContext(); + init_jsonReplacer(); + init_writeKey(); + init_transport(); + JsonShapeSerializer = class extends SerdeContextConfig { + static { + __name(this, "JsonShapeSerializer"); + } + settings; + buffer; + useReplacer = false; + rootSchema; + constructor(settings) { + super(); + this.settings = settings; + } + write(schema2, value) { + this.rootSchema = NormalizedSchema.of(schema2); + this.buffer = this._write(this.rootSchema, value); + } + flush() { + const { rootSchema, useReplacer } = this; + this.rootSchema = void 0; + this.useReplacer = false; + if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) { + if (!useReplacer) { + return JSON.stringify(this.buffer); + } + const replacer = new JsonReplacer(); + return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0)); + } + return this.buffer; + } + writeDiscriminatedDocument(schema2, value) { + this.write(schema2, value); + if (typeof this.buffer === "object") { + this.buffer.__type = NormalizedSchema.of(schema2).getName(true); + } + } + _write(schema2, value, container) { + const isObject2 = value !== null && typeof value === "object"; + const ns = NormalizedSchema.of(schema2); + if (isObject2) { + if (ns.isStructSchema()) { + const record2 = value; + const out = {}; + const { jsonName } = this.settings; + let nameMap = void 0; + if (jsonName) { + nameMap = {}; + } + let outCount = 0; + for (const [memberName, memberSchema] of ns.structIterator()) { + const serializableValue = this._write(memberSchema, record2[memberName], ns); + if (serializableValue !== void 0) { + let targetKey = memberName; + if (jsonName) { + targetKey = memberSchema.getMergedTraits().jsonName ?? memberName; + nameMap[memberName] = targetKey; + } + out[targetKey] = serializableValue; + outCount++; + } + } + if (ns.isUnionSchema() && outCount === 0) { + const { $unknown } = record2; + if (Array.isArray($unknown)) { + const [k5, v] = $unknown; + if (k5 === "__proto__") { + writeKey(out); + } + out[k5] = this._write(15, v); + } + } else if (typeof record2.__type === "string") { + for (const k5 in record2) { + if (!hasOwn(record2, k5)) + continue; + const v = record2[k5]; + const targetKey = jsonName ? nameMap[k5] ?? k5 : k5; + if (!(targetKey in out)) { + out[targetKey] = this._write(15, v); + } + } + } + return out; + } + if (Array.isArray(value) && ns.isListSchema()) { + const listMember = ns.getValueSchema(); + const out = []; + const sparse = !!ns.getMergedTraits().sparse; + for (const item of value) { + if (sparse || item != null) { + out.push(this._write(listMember, item)); + } + } + return out; + } + if (ns.isMapSchema()) { + const mapMember = ns.getValueSchema(); + const out = {}; + const sparse = !!ns.getMergedTraits().sparse; + for (const _k in value) { + if (!hasOwn(value, _k)) + continue; + const _v = value[_k]; + if (sparse || _v != null) { + if (_k === "__proto__") { + writeKey(out); + } + out[_k] = this._write(mapMember, _v); + } + } + return out; + } + if (value instanceof Uint8Array && ns.isBlobSchema()) { + if (ns === this.rootSchema) { + return value; + } + return (this.serdeContext?.base64Encoder ?? toBase64)(value); + } + if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) { + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: + return value.toISOString().replace(".000Z", "Z"); + case 6: + return dateToUtcString(value); + case 7: + return value.getTime() / 1e3; + default: + console.warn("Missing timestamp format, using epoch seconds", value); + return value.getTime() / 1e3; + } + } + if (value instanceof NumericValue) { + this.useReplacer = true; + } + } + if (value === null && container?.isStructSchema()) { + return void 0; + } + if (ns.isStringSchema()) { + if (typeof value === "undefined" && ns.isIdempotencyToken()) { + return generateIdempotencyToken(); + } + const mediaType = ns.getMergedTraits().mediaType; + if (value != null && mediaType) { + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + return LazyJsonString.from(value); + } + } + return value; + } + if (typeof value === "number") { + if (Math.abs(value) === Infinity || isNaN(value)) { + return String(value); + } + return value; + } + if (typeof value === "string" && ns.isBlobSchema()) { + if (ns === this.rootSchema) { + return value; + } + return (this.serdeContext?.base64Encoder ?? toBase64)(value); + } + if (typeof value === "bigint") { + this.useReplacer = true; + } + if (ns.isDocumentSchema()) { + if (isObject2) { + if (value instanceof Uint8Array) { + return (this.serdeContext?.base64Encoder ?? toBase64)(value); + } + const out = Array.isArray(value) ? [] : {}; + for (const k5 in value) { + if (!hasOwn(value, k5)) + continue; + const v = value[k5]; + if (k5 === "__proto__") { + writeKey(out); + } + if (v instanceof NumericValue) { + this.useReplacer = true; + out[k5] = v; + } else { + out[k5] = this._write(ns, v); + } + } + return out; + } else { + return structuredClone(value); + } + } + return value; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +var JsonCodec; +var init_JsonCodec = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js"() { + init_ConfigurableSerdeContext(); + init_JsonShapeDeserializer(); + init_JsonShapeSerializer(); + JsonCodec = class extends SerdeContextConfig { + static { + __name(this, "JsonCodec"); + } + settings; + constructor(settings) { + super(); + this.settings = settings; + } + createSerializer() { + const serializer = new JsonShapeSerializer(this.settings); + serializer.setSerdeContext(this.serdeContext); + return serializer; + } + createDeserializer() { + const deserializer = new JsonShapeDeserializer(this.settings); + deserializer.setSerdeContext(this.serdeContext); + return deserializer; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +var protocols_exports = {}; +__export(protocols_exports, { + Field: () => Field, + Fields: () => Fields, + FromStringShapeDeserializer: () => FromStringShapeDeserializer, + HttpBindingProtocol: () => HttpBindingProtocol, + HttpInterceptingShapeDeserializer: () => HttpInterceptingShapeDeserializer, + HttpInterceptingShapeSerializer: () => HttpInterceptingShapeSerializer, + HttpProtocol: () => HttpProtocol, + HttpRequest: () => HttpRequest, + HttpResponse: () => HttpResponse, + JsonCodec: () => JsonCodec, + JsonCodec2: () => JsonCodec2, + JsonShapeDeserializer: () => JsonShapeDeserializer, + JsonShapeDeserializer2: () => JsonShapeDeserializer2, + JsonShapeSerializer: () => JsonShapeSerializer, + JsonShapeSerializer2: () => JsonShapeSerializer2, + RequestBuilder: () => RequestBuilder, + RpcProtocol: () => RpcProtocol, + SerdeContext: () => SerdeContext, + SmithyRpcV2JsonProtocol: () => SmithyRpcV2JsonProtocol, + ToStringShapeSerializer: () => ToStringShapeSerializer, + buildQueryString: () => buildQueryString, + collectBody: () => collectBody, + contentLengthMiddleware: () => contentLengthMiddleware, + contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, + determineTimestampFormat: () => determineTimestampFormat, + escapeUri: () => escapeUri, + escapeUriPath: () => escapeUriPath, + extendedEncodeURIComponent: () => extendedEncodeURIComponent, + getContentLengthPlugin: () => getContentLengthPlugin, + getHttpHandlerExtensionConfiguration: () => getHttpHandlerExtensionConfiguration, + isValidHostname: () => isValidHostname, + loadJsonRpcErrorCode: () => loadJsonRpcErrorCode, + loadRestJsonErrorCode: () => loadRestJsonErrorCode, + loadSmithyRpcV2JsonErrorCode: () => loadSmithyRpcV2JsonErrorCode, + parseJsonBody: () => parseJsonBody, + parseJsonErrorBody: () => parseJsonErrorBody, + parseQueryString: () => parseQueryString, + parseUrl: () => parseUrl, + requestBuilder: () => requestBuilder, + resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig, + resolvedPath: () => resolvedPath +}); +var init_protocols = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/protocols/index.js"() { + init_collect_stream_body(); + init_extended_encode_uri_component(); + init_HttpBindingProtocol(); + init_HttpProtocol(); + init_RpcProtocol(); + init_requestBuilder(); + init_resolve_path(); + init_FromStringShapeDeserializer(); + init_HttpInterceptingShapeDeserializer(); + init_HttpInterceptingShapeSerializer(); + init_ToStringShapeSerializer(); + init_determineTimestampFormat(); + init_SerdeContext(); + init_Field(); + init_Fields(); + init_transport(); + init_transport(); + init_transport(); + init_httpExtensionConfiguration(); + init_contentLengthMiddleware(); + init_escape_uri(); + init_escape_uri_path(); + init_buildQueryString(); + init_transport(); + init_transport(); + init_SmithyRpcV2JsonProtocol(); + init_parseJsonBody(); + init_JsonCodec(); + init_JsonShapeSerializer(); + init_JsonShapeDeserializer(); + init_JsonCodec2(); + init_JsonShapeSerializer2(); + init_JsonShapeDeserializer2(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/constants.js +var CLOCK_SKEW_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, NODEJS_TIMEOUT_ERROR_CODES, NODEJS_NETWORK_ERROR_CODES; +var init_constants2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/constants.js"() { + CLOCK_SKEW_ERROR_CODES = [ + "AccessDeniedException", + "AuthFailure", + "InvalidSignatureException", + "RequestExpired", + "RequestInTheFuture", + "RequestTimeTooSkewed", + "SignatureDoesNotMatch" + ]; + THROTTLING_ERROR_CODES = [ + "BandwidthLimitExceeded", + "EC2ThrottledException", + "LimitExceededException", + "PriorRequestNotComplete", + "ProvisionedThroughputExceededException", + "RequestLimitExceeded", + "RequestThrottled", + "RequestThrottledException", + "SlowDown", + "ThrottledException", + "Throttling", + "ThrottlingException", + "TooManyRequestsException", + "TransactionInProgressException" + ]; + TRANSIENT_ERROR_CODES = ["TimeoutError", "RequestTimeout", "RequestTimeoutException"]; + TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504]; + NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "ECONNREFUSED", "EPIPE", "ETIMEDOUT"]; + NODEJS_NETWORK_ERROR_CODES = ["EHOSTUNREACH", "ENETUNREACH", "ENOTFOUND", "EAI_AGAIN"]; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/service-error-classification.js +function isNodeJsHttp2TransientError(error62) { + return error62.code === "ERR_HTTP2_STREAM_ERROR" && error62.message.includes("NGHTTP2_REFUSED_STREAM"); +} +var isRetryableByTrait, isClockSkewError, isClockSkewCorrectedError, isBrowserNetworkError, isThrottlingError, isTransientError, isServerError; +var init_service_error_classification = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/service-error-classification.js"() { + init_constants2(); + isRetryableByTrait = /* @__PURE__ */ __name((error62) => error62?.$retryable !== void 0, "isRetryableByTrait"); + isClockSkewError = /* @__PURE__ */ __name((error62) => CLOCK_SKEW_ERROR_CODES.includes(error62.name), "isClockSkewError"); + isClockSkewCorrectedError = /* @__PURE__ */ __name((error62) => error62.$metadata?.clockSkewCorrected, "isClockSkewCorrectedError"); + isBrowserNetworkError = /* @__PURE__ */ __name((error62) => { + const errorMessages = /* @__PURE__ */ new Set([ + "Failed to fetch", + "NetworkError when attempting to fetch resource", + "The Internet connection appears to be offline", + "Load failed", + "Network request failed" + ]); + const isValid = error62 && error62 instanceof TypeError; + if (!isValid) { + return false; + } + return errorMessages.has(error62.message); + }, "isBrowserNetworkError"); + isThrottlingError = /* @__PURE__ */ __name((error62) => error62.$metadata?.httpStatusCode === 429 || THROTTLING_ERROR_CODES.includes(error62.name) || error62.$retryable?.throttling == true, "isThrottlingError"); + isTransientError = /* @__PURE__ */ __name((error62, depth = 0) => error62?.name !== "AbortError" && (isRetryableByTrait(error62) || isClockSkewCorrectedError(error62) || error62.name === "InvalidSignatureException" && error62.message?.includes("Signature expired") || TRANSIENT_ERROR_CODES.includes(error62.name) || NODEJS_TIMEOUT_ERROR_CODES.includes(error62?.code || "") || NODEJS_NETWORK_ERROR_CODES.includes(error62?.code || "") || TRANSIENT_ERROR_STATUS_CODES.includes(error62.$metadata?.httpStatusCode || 0) || isBrowserNetworkError(error62) || isNodeJsHttp2TransientError(error62) || error62.cause !== void 0 && depth <= 10 && isTransientError(error62.cause, depth + 1)), "isTransientError"); + isServerError = /* @__PURE__ */ __name((error62) => { + if (error62.$metadata?.httpStatusCode !== void 0) { + const statusCode = error62.$metadata.httpStatusCode; + if (500 <= statusCode && statusCode <= 599 && !isTransientError(error62)) { + return true; + } + return false; + } + return false; + }, "isServerError"); + __name(isNodeJsHttp2TransientError, "isNodeJsHttp2TransientError"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/constants.js +var DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY, THROTTLING_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, RETRY_COST, TIMEOUT_RETRY_COST, NO_RETRY_INCREMENT, INVOCATION_ID_HEADER, REQUEST_HEADER; +var init_constants3 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/constants.js"() { + DEFAULT_RETRY_DELAY_BASE = 100; + MAXIMUM_RETRY_DELAY = 20 * 1e3; + THROTTLING_RETRY_DELAY_BASE = 500; + INITIAL_RETRY_TOKENS = 500; + RETRY_COST = 5; + TIMEOUT_RETRY_COST = 10; + NO_RETRY_INCREMENT = 1; + INVOCATION_ID_HEADER = "amz-sdk-invocation-id"; + REQUEST_HEADER = "amz-sdk-request"; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/parseRetryAfterHeader.js +function parseRetryAfterHeader(response, logger) { + if (!HttpResponse.isInstance(response)) { + return; + } + for (const header in response.headers) { + if (!hasOwn(response.headers, header)) + continue; + const h5 = header.toLowerCase(); + if (h5 === "retry-after") { + const retryAfter = response.headers[header]; + let retryAfterSeconds = NaN; + if (retryAfter.endsWith("GMT")) { + try { + const date5 = parseRfc7231DateTime(retryAfter); + retryAfterSeconds = (date5.getTime() - Date.now()) / 1e3; + } catch (e5) { + logger?.trace?.("Failed to parse retry-after header"); + logger?.trace?.(e5); + } + } else if (retryAfter.match(/ GMT, ((\d+)|(\d+\.\d+))$/)) { + retryAfterSeconds = Number(retryAfter.match(/ GMT, ([\d.]+)$/)?.[1]); + } else if (retryAfter.match(/^((\d+)|(\d+\.\d+))$/)) { + retryAfterSeconds = Number(retryAfter); + } else if (Date.parse(retryAfter) >= Date.now()) { + retryAfterSeconds = (Date.parse(retryAfter) - Date.now()) / 1e3; + } + if (isNaN(retryAfterSeconds)) { + return; + } + return new Date(Date.now() + retryAfterSeconds * 1e3); + } else if (h5 === "x-amz-retry-after") { + const v = response.headers[header]; + const backoffMilliseconds = Number(v); + if (isNaN(backoffMilliseconds)) { + logger?.trace?.(`Failed to parse x-amz-retry-after=${v}`); + return; + } + return new Date(Date.now() + backoffMilliseconds); + } + } +} +function getRetryAfterHint(response, logger) { + return parseRetryAfterHeader(response, logger); +} +var init_parseRetryAfterHeader = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/parseRetryAfterHeader.js"() { + init_transport(); + init_protocols(); + init_serde(); + __name(parseRetryAfterHeader, "parseRetryAfterHeader"); + __name(getRetryAfterHint, "getRetryAfterHint"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/util.js +var asSdkError; +var init_util = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/util.js"() { + asSdkError = /* @__PURE__ */ __name((error62) => { + if (error62 instanceof Error) + return error62; + if (error62 instanceof Object) + return Object.assign(new Error(), error62); + if (typeof error62 === "string") + return new Error(error62); + return new Error(`AWS SDK error wrapper for ${error62}`); + }, "asSdkError"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retryMiddleware.js +function bindRetryMiddleware(isStreamingPayload2) { + return (options) => (next, context) => async (args) => { + let retryStrategy = await options.retryStrategy(); + const maxAttempts = await options.maxAttempts(); + if (isRetryStrategyV2(retryStrategy)) { + retryStrategy = retryStrategy; + let retryToken = await retryStrategy.acquireInitialRetryToken((context["partition_id"] ?? "") + (context.__retryLongPoll ? ":longpoll" : "")); + let lastError = new Error(); + let attempts = 0; + let totalRetryDelay = 0; + const { request } = args; + const isRequest = HttpRequest.isInstance(request); + if (isRequest) { + request.headers[INVOCATION_ID_HEADER] = v4(); + } + while (true) { + try { + if (isRequest) { + request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; + } + const { response, output: output2 } = await next(args); + retryStrategy.recordSuccess(retryToken); + output2.$metadata.attempts = attempts + 1; + output2.$metadata.totalRetryDelay = totalRetryDelay; + return { response, output: output2 }; + } catch (e5) { + const retryErrorInfo = getRetryErrorInfo(e5, options.logger); + lastError = asSdkError(e5); + if (isRequest && isStreamingPayload2(request)) { + (context.logger instanceof NoOpLogger ? console : context.logger)?.warn("An error was encountered in a non-retryable streaming request."); + throw lastError; + } + try { + retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo); + } catch (ignoredRefreshError) { + if (!lastError.$metadata) { + lastError.$metadata = {}; + } + lastError.$metadata.attempts = attempts + 1; + lastError.$metadata.totalRetryDelay = totalRetryDelay; + throw lastError; + } + attempts = retryToken.getRetryCount(); + const delay = retryToken.getRetryDelay(); + totalRetryDelay += (retryToken?.$retryLog?.acquisitionDelay ?? 0) + delay; + if (delay > 0) { + await cooldown(delay); + } + } + } + } else { + retryStrategy = retryStrategy; + if (retryStrategy?.mode) { + context.userAgent = [...context.userAgent || [], ["cfg/retry-mode", retryStrategy.mode]]; + } + return retryStrategy.retry(next, args); + } + }; +} +function bindGetRetryPlugin(isStreamingPayload2) { + const retryMiddleware2 = bindRetryMiddleware(isStreamingPayload2); + return (options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(retryMiddleware2(options), retryMiddlewareOptions); + }, "applyToStack") + }); +} +var cooldown, isRetryStrategyV2, getRetryErrorInfo, getRetryErrorType, retryMiddlewareOptions; +var init_retryMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retryMiddleware.js"() { + init_client(); + init_protocols(); + init_serde(); + init_service_error_classification(); + init_constants3(); + init_parseRetryAfterHeader(); + init_util(); + __name(bindRetryMiddleware, "bindRetryMiddleware"); + cooldown = /* @__PURE__ */ __name((ms) => new Promise((resolve) => setTimeout(resolve, ms)), "cooldown"); + isRetryStrategyV2 = /* @__PURE__ */ __name((retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== "undefined" && typeof retryStrategy.refreshRetryTokenForRetry !== "undefined" && typeof retryStrategy.recordSuccess !== "undefined", "isRetryStrategyV2"); + getRetryErrorInfo = /* @__PURE__ */ __name((error62, logger) => { + const errorInfo = { + error: error62, + errorType: getRetryErrorType(error62) + }; + const retryAfterHint = parseRetryAfterHeader(error62.$response, logger); + if (retryAfterHint) { + errorInfo.retryAfterHint = retryAfterHint; + } + return errorInfo; + }, "getRetryErrorInfo"); + getRetryErrorType = /* @__PURE__ */ __name((error62) => { + if (isThrottlingError(error62)) + return "THROTTLING"; + if (isTransientError(error62)) + return "TRANSIENT"; + if (isServerError(error62)) + return "SERVER_ERROR"; + return "CLIENT_ERROR"; + }, "getRetryErrorType"); + retryMiddlewareOptions = { + name: "retryMiddleware", + tags: ["RETRY"], + step: "finalizeRequest", + priority: "high", + override: true + }; + __name(bindGetRetryPlugin, "bindGetRetryPlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRateLimiter.js +var DefaultRateLimiter; +var init_DefaultRateLimiter = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRateLimiter.js"() { + init_service_error_classification(); + DefaultRateLimiter = class _DefaultRateLimiter { + static { + __name(this, "DefaultRateLimiter"); + } + static setTimeoutFn = /* @__PURE__ */ __name((fn, delay) => setTimeout(fn, delay), "setTimeoutFn"); + beta; + minCapacity; + minFillRate; + scaleConstant; + smooth; + enabled = false; + availableTokens = 0; + lastMaxRate = 0; + measuredTxRate = 0; + requestCount = 0; + fillRate; + lastThrottleTime; + lastTimestamp = 0; + lastTxRateBucket; + maxCapacity; + timeWindow = 0; + constructor(options) { + this.beta = options?.beta ?? 0.7; + this.minCapacity = options?.minCapacity ?? 1; + this.minFillRate = options?.minFillRate ?? 0.5; + this.scaleConstant = options?.scaleConstant ?? 0.4; + this.smooth = options?.smooth ?? 0.8; + this.lastThrottleTime = this.getCurrentTimeInSeconds(); + this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()); + this.fillRate = this.minFillRate; + this.maxCapacity = this.minCapacity; + } + async getSendToken() { + return this.acquireTokenBucket(1); + } + updateClientSendingRate(response) { + let calculatedRate; + this.updateMeasuredRate(); + const retryErrorInfo = response; + const isThrottling = retryErrorInfo?.errorType === "THROTTLING" || isThrottlingError(retryErrorInfo?.error ?? response); + if (isThrottling) { + const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate); + this.lastMaxRate = rateToUse; + this.calculateTimeWindow(); + this.lastThrottleTime = this.getCurrentTimeInSeconds(); + calculatedRate = this.cubicThrottle(rateToUse); + this.enableTokenBucket(); + } else { + this.calculateTimeWindow(); + calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()); + } + const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate); + this.updateTokenBucketRate(newRate); + } + getCurrentTimeInSeconds() { + return Date.now() / 1e3; + } + async acquireTokenBucket(amount) { + if (!this.enabled) { + return; + } + this.refillTokenBucket(); + while (amount > this.availableTokens) { + const delay = (amount - this.availableTokens) / this.fillRate * 1e3; + await new Promise((resolve) => _DefaultRateLimiter.setTimeoutFn(resolve, delay)); + this.refillTokenBucket(); + } + this.availableTokens = this.availableTokens - amount; + } + refillTokenBucket() { + const timestamp = this.getCurrentTimeInSeconds(); + if (!this.lastTimestamp) { + this.lastTimestamp = timestamp; + return; + } + const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate; + this.availableTokens = Math.min(this.maxCapacity, this.availableTokens + fillAmount); + this.lastTimestamp = timestamp; + } + calculateTimeWindow() { + this.timeWindow = this.getPrecise(Math.pow(this.lastMaxRate * (1 - this.beta) / this.scaleConstant, 1 / 3)); + } + cubicThrottle(rateToUse) { + return this.getPrecise(rateToUse * this.beta); + } + cubicSuccess(timestamp) { + return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate); + } + enableTokenBucket() { + this.enabled = true; + } + updateTokenBucketRate(newRate) { + this.refillTokenBucket(); + this.fillRate = Math.max(newRate, this.minFillRate); + this.maxCapacity = Math.max(newRate, this.minCapacity); + this.availableTokens = Math.min(this.availableTokens, this.maxCapacity); + } + updateMeasuredRate() { + const t = this.getCurrentTimeInSeconds(); + const timeBucket = Math.floor(t * 2) / 2; + this.requestCount++; + if (timeBucket > this.lastTxRateBucket) { + const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket); + this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth)); + this.requestCount = 0; + this.lastTxRateBucket = timeBucket; + } + } + getPrecise(num) { + return parseFloat(num.toFixed(8)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/retries-2026-config.js +var Retry; +var init_retries_2026_config = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/retries-2026-config.js"() { + Retry = class _Retry { + static { + __name(this, "Retry"); + } + static v2026 = typeof process !== "undefined" && process.env?.SMITHY_NEW_RETRIES_2026 === "true"; + static delay() { + return _Retry.v2026 ? 50 : 100; + } + static throttlingDelay() { + return _Retry.v2026 ? 1e3 : 500; + } + static cost() { + return _Retry.v2026 ? 14 : 5; + } + static throttlingCost() { + return _Retry.v2026 ? 5 : 10; + } + static modifiedCostType() { + return _Retry.v2026 ? "THROTTLING" : "TRANSIENT"; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRetryBackoffStrategy.js +var DefaultRetryBackoffStrategy; +var init_DefaultRetryBackoffStrategy = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRetryBackoffStrategy.js"() { + init_constants3(); + init_retries_2026_config(); + DefaultRetryBackoffStrategy = class { + static { + __name(this, "DefaultRetryBackoffStrategy"); + } + x = Retry.delay(); + computeNextBackoffDelay(i5) { + const b5 = Math.random(); + const r5 = 2; + const t_i = b5 * Math.min(this.x * r5 ** i5, MAXIMUM_RETRY_DELAY); + return Math.floor(t_i); + } + setDelayBase(delay) { + this.x = delay; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRetryToken.js +var DefaultRetryToken; +var init_DefaultRetryToken = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRetryToken.js"() { + init_constants3(); + DefaultRetryToken = class { + static { + __name(this, "DefaultRetryToken"); + } + delay; + count; + cost; + longPoll; + $retryLog = { + acquisitionDelay: 0 + }; + constructor(delay, count, cost, longPoll) { + this.delay = delay; + this.count = count; + this.cost = cost; + this.longPoll = longPoll; + } + getRetryCount() { + return this.count; + } + getRetryDelay() { + return Math.min(MAXIMUM_RETRY_DELAY, this.delay); + } + getRetryCost() { + return this.cost; + } + isLongPoll() { + return this.longPoll; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/config.js +var RETRY_MODES, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE; +var init_config2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/config.js"() { + (function(RETRY_MODES2) { + RETRY_MODES2["STANDARD"] = "standard"; + RETRY_MODES2["ADAPTIVE"] = "adaptive"; + })(RETRY_MODES || (RETRY_MODES = {})); + DEFAULT_MAX_ATTEMPTS = 3; + DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/StandardRetryStrategy.js +var refusal, StandardRetryStrategy; +var init_StandardRetryStrategy = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/StandardRetryStrategy.js"() { + init_DefaultRetryBackoffStrategy(); + init_DefaultRetryToken(); + init_config2(); + init_constants3(); + init_retries_2026_config(); + refusal = { + incompatible: 1, + attempts: 2, + capacity: 3 + }; + StandardRetryStrategy = class { + static { + __name(this, "StandardRetryStrategy"); + } + mode = RETRY_MODES.STANDARD; + retryBackoffStrategy; + capacity = INITIAL_RETRY_TOKENS; + maxAttemptsProvider; + baseDelay; + constructor(arg1) { + if (typeof arg1 === "number") { + this.maxAttemptsProvider = async () => arg1; + } else if (typeof arg1 === "function") { + this.maxAttemptsProvider = arg1; + } else if (arg1 && typeof arg1 === "object") { + this.maxAttemptsProvider = async () => arg1.maxAttempts; + this.baseDelay = arg1.baseDelay; + this.retryBackoffStrategy = arg1.backoff; + } + this.maxAttemptsProvider ??= async () => DEFAULT_MAX_ATTEMPTS; + this.baseDelay ??= Retry.delay(); + this.retryBackoffStrategy ??= new DefaultRetryBackoffStrategy(); + } + async acquireInitialRetryToken(retryTokenScope) { + return new DefaultRetryToken(Retry.delay(), 0, void 0, Retry.v2026 && retryTokenScope.includes(":longpoll")); + } + async refreshRetryTokenForRetry(token, errorInfo) { + const maxAttempts = await this.getMaxAttempts(); + const retryCode = this.retryCode(token, errorInfo, maxAttempts); + const shouldRetry = retryCode === 0; + const isLongPoll = token.isLongPoll?.(); + if (shouldRetry || isLongPoll) { + const errorType = errorInfo.errorType; + this.retryBackoffStrategy.setDelayBase(errorType === "THROTTLING" ? Retry.throttlingDelay() : this.baseDelay); + const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount()); + let retryDelay = delayFromErrorType; + if (errorInfo.retryAfterHint instanceof Date) { + retryDelay = Math.max(delayFromErrorType, Math.min(errorInfo.retryAfterHint.getTime() - Date.now(), delayFromErrorType + 5e3)); + } + if (!shouldRetry) { + const longPollBackoff = Retry.v2026 && retryCode === refusal.capacity && isLongPoll ? retryDelay : 0; + if (longPollBackoff > 0) { + await new Promise((r5) => setTimeout(r5, longPollBackoff)); + } + } else { + const capacityCost = this.getCapacityCost(errorType); + this.capacity -= capacityCost; + const nextToken = new DefaultRetryToken(0, token.getRetryCount() + 1, capacityCost, token.isLongPoll?.() ?? false); + await new Promise((r5) => setTimeout(r5, retryDelay)); + nextToken.$retryLog.acquisitionDelay = retryDelay; + return nextToken; + } + } + throw new Error("No retry token available"); + } + recordSuccess(token) { + this.capacity = Math.min(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT)); + } + getCapacity() { + return this.capacity; + } + async maxAttempts() { + return this.maxAttemptsProvider(); + } + async getMaxAttempts() { + try { + return await this.maxAttemptsProvider(); + } catch (ignored) { + console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`); + return DEFAULT_MAX_ATTEMPTS; + } + } + retryCode(tokenToRenew, errorInfo, maxAttempts) { + const attempts = tokenToRenew.getRetryCount() + 1; + const retryableStatus = this.isRetryableError(errorInfo.errorType) ? 0 : refusal.incompatible; + const attemptStatus = attempts < maxAttempts ? 0 : refusal.attempts; + const capacityStatus = this.capacity >= this.getCapacityCost(errorInfo.errorType) ? 0 : refusal.capacity; + return retryableStatus || attemptStatus || capacityStatus; + } + getCapacityCost(errorType) { + return errorType === Retry.modifiedCostType() ? Retry.throttlingCost() : Retry.cost(); + } + isRetryableError(errorType) { + return errorType === "THROTTLING" || errorType === "TRANSIENT"; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/AdaptiveRetryStrategy.js +var AdaptiveRetryStrategy; +var init_AdaptiveRetryStrategy = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/AdaptiveRetryStrategy.js"() { + init_DefaultRateLimiter(); + init_StandardRetryStrategy(); + init_config2(); + AdaptiveRetryStrategy = class { + static { + __name(this, "AdaptiveRetryStrategy"); + } + mode = RETRY_MODES.ADAPTIVE; + rateLimiter; + standardRetryStrategy; + constructor(maxAttemptsProvider, options) { + const { rateLimiter } = options ?? {}; + this.rateLimiter = rateLimiter ?? new DefaultRateLimiter(); + this.standardRetryStrategy = options ? new StandardRetryStrategy({ + maxAttempts: typeof maxAttemptsProvider === "number" ? maxAttemptsProvider : 3, + ...options + }) : new StandardRetryStrategy(maxAttemptsProvider); + } + async acquireInitialRetryToken(retryTokenScope) { + const token = await this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope); + await this.rateLimiter.getSendToken(); + return token; + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + this.rateLimiter.updateClientSendingRate(errorInfo); + const token = await this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo); + await this.rateLimiter.getSendToken(); + return token; + } + recordSuccess(token) { + this.rateLimiter.updateClientSendingRate({}); + this.standardRetryStrategy.recordSuccess(token); + } + async maxAttemptsProvider() { + return this.standardRetryStrategy.maxAttempts(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/ConfiguredRetryStrategy.js +var ConfiguredRetryStrategy; +var init_ConfiguredRetryStrategy = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/util-retry/ConfiguredRetryStrategy.js"() { + init_StandardRetryStrategy(); + init_retries_2026_config(); + ConfiguredRetryStrategy = class extends StandardRetryStrategy { + static { + __name(this, "ConfiguredRetryStrategy"); + } + computeNextBackoffDelay; + constructor(maxAttempts, computeNextBackoffDelay = Retry.delay()) { + super(typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts); + if (typeof computeNextBackoffDelay === "number") { + this.computeNextBackoffDelay = () => computeNextBackoffDelay; + } else { + this.computeNextBackoffDelay = computeNextBackoffDelay; + } + this.retryBackoffStrategy.computeNextBackoffDelay = (completedAttempt) => { + const nextAttempt = completedAttempt + 1; + return this.computeNextBackoffDelay(nextAttempt); + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/defaultRetryQuota.js +var getDefaultRetryQuota; +var init_defaultRetryQuota = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/defaultRetryQuota.js"() { + init_constants3(); + getDefaultRetryQuota = /* @__PURE__ */ __name((initialRetryTokens, options) => { + const MAX_CAPACITY = initialRetryTokens; + const noRetryIncrement = options?.noRetryIncrement ?? NO_RETRY_INCREMENT; + const retryCost = options?.retryCost ?? RETRY_COST; + const timeoutRetryCost = options?.timeoutRetryCost ?? TIMEOUT_RETRY_COST; + let availableCapacity = initialRetryTokens; + const getCapacityAmount = /* @__PURE__ */ __name((error62) => error62.name === "TimeoutError" ? timeoutRetryCost : retryCost, "getCapacityAmount"); + const hasRetryTokens = /* @__PURE__ */ __name((error62) => getCapacityAmount(error62) <= availableCapacity, "hasRetryTokens"); + const retrieveRetryTokens = /* @__PURE__ */ __name((error62) => { + if (!hasRetryTokens(error62)) { + throw new Error("No retry token available"); + } + const capacityAmount = getCapacityAmount(error62); + availableCapacity -= capacityAmount; + return capacityAmount; + }, "retrieveRetryTokens"); + const releaseRetryTokens = /* @__PURE__ */ __name((capacityReleaseAmount) => { + availableCapacity += capacityReleaseAmount ?? noRetryIncrement; + availableCapacity = Math.min(availableCapacity, MAX_CAPACITY); + }, "releaseRetryTokens"); + return Object.freeze({ + hasRetryTokens, + retrieveRetryTokens, + releaseRetryTokens + }); + }, "getDefaultRetryQuota"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/delayDecider.js +var defaultDelayDecider; +var init_delayDecider = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/delayDecider.js"() { + init_constants3(); + defaultDelayDecider = /* @__PURE__ */ __name((delayBase, attempts) => Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)), "defaultDelayDecider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/retryDecider.js +var defaultRetryDecider; +var init_retryDecider = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/retryDecider.js"() { + init_service_error_classification(); + defaultRetryDecider = /* @__PURE__ */ __name((error62) => { + if (!error62) { + return false; + } + return isRetryableByTrait(error62) || isClockSkewError(error62) || isThrottlingError(error62) || isTransientError(error62); + }, "defaultRetryDecider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/StandardRetryStrategy.js +var StandardRetryStrategy2, getDelayFromRetryAfterHeader; +var init_StandardRetryStrategy2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/StandardRetryStrategy.js"() { + init_protocols(); + init_serde(); + init_service_error_classification(); + init_config2(); + init_constants3(); + init_util(); + init_defaultRetryQuota(); + init_delayDecider(); + init_retryDecider(); + StandardRetryStrategy2 = class { + static { + __name(this, "StandardRetryStrategy"); + } + maxAttemptsProvider; + retryDecider; + delayDecider; + retryQuota; + mode = RETRY_MODES.STANDARD; + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider; + this.retryDecider = options?.retryDecider ?? defaultRetryDecider; + this.delayDecider = options?.delayDecider ?? defaultDelayDecider; + this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(INITIAL_RETRY_TOKENS); + } + shouldRetry(error62, attempts, maxAttempts) { + return attempts < maxAttempts && this.retryDecider(error62) && this.retryQuota.hasRetryTokens(error62); + } + async getMaxAttempts() { + let maxAttempts; + try { + maxAttempts = await this.maxAttemptsProvider(); + } catch (ignored) { + maxAttempts = DEFAULT_MAX_ATTEMPTS; + } + return maxAttempts; + } + async retry(next, args, options) { + let retryTokenAmount; + let attempts = 0; + let totalDelay = 0; + const maxAttempts = await this.getMaxAttempts(); + const { request } = args; + if (HttpRequest.isInstance(request)) { + request.headers[INVOCATION_ID_HEADER] = v4(); + } + while (true) { + try { + if (HttpRequest.isInstance(request)) { + request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; + } + if (options?.beforeRequest) { + await options.beforeRequest(); + } + const { response, output: output2 } = await next(args); + if (options?.afterRequest) { + options.afterRequest(response); + } + this.retryQuota.releaseRetryTokens(retryTokenAmount); + output2.$metadata.attempts = attempts + 1; + output2.$metadata.totalRetryDelay = totalDelay; + return { response, output: output2 }; + } catch (e5) { + const err = asSdkError(e5); + attempts++; + if (this.shouldRetry(err, attempts, maxAttempts)) { + retryTokenAmount = this.retryQuota.retrieveRetryTokens(err); + const delayFromDecider = this.delayDecider(isThrottlingError(err) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts); + const delayFromResponse = getDelayFromRetryAfterHeader(err.$response); + const delay = Math.max(delayFromResponse || 0, delayFromDecider); + totalDelay += delay; + await new Promise((resolve) => setTimeout(resolve, delay)); + continue; + } + if (!err.$metadata) { + err.$metadata = {}; + } + err.$metadata.attempts = attempts; + err.$metadata.totalRetryDelay = totalDelay; + throw err; + } + } + } + }; + getDelayFromRetryAfterHeader = /* @__PURE__ */ __name((response) => { + if (!HttpResponse.isInstance(response)) + return; + const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); + if (!retryAfterHeaderName) + return; + const retryAfter = response.headers[retryAfterHeaderName]; + const retryAfterSeconds = Number(retryAfter); + if (!Number.isNaN(retryAfterSeconds)) + return Math.min(retryAfterSeconds * 1e3, 2e4); + const retryAfterDate = new Date(retryAfter); + return Math.min(retryAfterDate.getTime() - Date.now(), 2e4); + }, "getDelayFromRetryAfterHeader"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/AdaptiveRetryStrategy.js +var AdaptiveRetryStrategy2; +var init_AdaptiveRetryStrategy2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retry-pre-sra-deprecated/AdaptiveRetryStrategy.js"() { + init_DefaultRateLimiter(); + init_config2(); + init_StandardRetryStrategy2(); + AdaptiveRetryStrategy2 = class extends StandardRetryStrategy2 { + static { + __name(this, "AdaptiveRetryStrategy"); + } + rateLimiter; + constructor(maxAttemptsProvider, options) { + const { rateLimiter, ...superOptions } = options ?? {}; + super(maxAttemptsProvider, superOptions); + this.rateLimiter = rateLimiter ?? new DefaultRateLimiter(); + this.mode = RETRY_MODES.ADAPTIVE; + } + async retry(next, args) { + return super.retry(next, args, { + beforeRequest: /* @__PURE__ */ __name(async () => { + return this.rateLimiter.getSendToken(); + }, "beforeRequest"), + afterRequest: /* @__PURE__ */ __name((response) => { + this.rateLimiter.updateClientSendingRate(response); + }, "afterRequest") + }); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/configurations.js +var ENV_MAX_ATTEMPTS, CONFIG_MAX_ATTEMPTS, NODE_MAX_ATTEMPT_CONFIG_OPTIONS, resolveRetryConfig, ENV_RETRY_MODE, CONFIG_RETRY_MODE, NODE_RETRY_MODE_CONFIG_OPTIONS; +var init_configurations = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/configurations.js"() { + init_client(); + init_AdaptiveRetryStrategy(); + init_StandardRetryStrategy(); + init_config2(); + init_retries_2026_config(); + ENV_MAX_ATTEMPTS = "AWS_MAX_ATTEMPTS"; + CONFIG_MAX_ATTEMPTS = "max_attempts"; + NODE_MAX_ATTEMPT_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => { + const value = env3[ENV_MAX_ATTEMPTS]; + if (!value) + return void 0; + const maxAttempt = parseInt(value); + if (Number.isNaN(maxAttempt)) { + throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"`); + } + return maxAttempt; + }, "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => { + const value = profile[CONFIG_MAX_ATTEMPTS]; + if (!value) + return void 0; + const maxAttempt = parseInt(value); + if (Number.isNaN(maxAttempt)) { + throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"`); + } + return maxAttempt; + }, "configFileSelector"), + default: DEFAULT_MAX_ATTEMPTS + }; + resolveRetryConfig = /* @__PURE__ */ __name((input2, defaults) => { + const { retryStrategy, retryMode } = input2; + const { defaultMaxAttempts = DEFAULT_MAX_ATTEMPTS, defaultBaseDelay = Retry.delay() } = defaults ?? {}; + const maxAttemptsProvider = normalizeProvider(input2.maxAttempts ?? defaultMaxAttempts); + let controller = retryStrategy ? Promise.resolve(retryStrategy) : void 0; + const getDefault = /* @__PURE__ */ __name(async () => { + const maxAttempts = await maxAttemptsProvider(); + const adaptive = await normalizeProvider(retryMode)() === RETRY_MODES.ADAPTIVE; + if (adaptive) { + return new AdaptiveRetryStrategy(maxAttemptsProvider, { + maxAttempts, + baseDelay: defaultBaseDelay + }); + } + return new StandardRetryStrategy({ + maxAttempts, + baseDelay: defaultBaseDelay + }); + }, "getDefault"); + return Object.assign(input2, { + maxAttempts: maxAttemptsProvider, + retryStrategy: /* @__PURE__ */ __name(() => controller ??= getDefault(), "retryStrategy") + }); + }, "resolveRetryConfig"); + ENV_RETRY_MODE = "AWS_RETRY_MODE"; + CONFIG_RETRY_MODE = "retry_mode"; + NODE_RETRY_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => env3[ENV_RETRY_MODE], "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => profile[CONFIG_RETRY_MODE], "configFileSelector"), + default: DEFAULT_RETRY_MODE + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/omitRetryHeadersMiddleware.js +var omitRetryHeadersMiddleware, omitRetryHeadersMiddlewareOptions, getOmitRetryHeadersPlugin; +var init_omitRetryHeadersMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/omitRetryHeadersMiddleware.js"() { + init_protocols(); + init_constants3(); + omitRetryHeadersMiddleware = /* @__PURE__ */ __name(() => (next) => async (args) => { + const { request } = args; + if (HttpRequest.isInstance(request)) { + delete request.headers[INVOCATION_ID_HEADER]; + delete request.headers[REQUEST_HEADER]; + } + return next(args); + }, "omitRetryHeadersMiddleware"); + omitRetryHeadersMiddlewareOptions = { + name: "omitRetryHeadersMiddleware", + tags: ["RETRY", "HEADERS", "OMIT_RETRY_HEADERS"], + relation: "before", + toMiddleware: "awsAuthMiddleware", + override: true + }; + getOmitRetryHeadersPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions); + }, "applyToStack") + }), "getOmitRetryHeadersPlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/index.js +var retry_exports = {}; +__export(retry_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, + CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, + ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, + DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, + DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, + DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE, + DefaultRateLimiter: () => DefaultRateLimiter, + DeprecatedAdaptiveRetryStrategy: () => AdaptiveRetryStrategy2, + DeprecatedStandardRetryStrategy: () => StandardRetryStrategy2, + ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, + ENV_RETRY_MODE: () => ENV_RETRY_MODE, + INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, + INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, + MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, + NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS, + NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS, + NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, + REQUEST_HEADER: () => REQUEST_HEADER, + RETRY_COST: () => RETRY_COST, + RETRY_MODES: () => RETRY_MODES, + Retry: () => Retry, + StandardRetryStrategy: () => StandardRetryStrategy, + THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, + TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST, + defaultDelayDecider: () => defaultDelayDecider, + defaultRetryDecider: () => defaultRetryDecider, + getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, + getRetryAfterHint: () => getRetryAfterHint, + getRetryPlugin: () => getRetryPlugin, + isBrowserNetworkError: () => isBrowserNetworkError, + isClockSkewCorrectedError: () => isClockSkewCorrectedError, + isClockSkewError: () => isClockSkewError, + isNodeJsHttp2TransientError: () => isNodeJsHttp2TransientError, + isRetryableByTrait: () => isRetryableByTrait, + isServerError: () => isServerError, + isThrottlingError: () => isThrottlingError, + isTransientError: () => isTransientError, + omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, + omitRetryHeadersMiddlewareOptions: () => omitRetryHeadersMiddlewareOptions, + resolveRetryConfig: () => resolveRetryConfig, + retryMiddleware: () => retryMiddleware, + retryMiddlewareOptions: () => retryMiddlewareOptions +}); +var retryMiddleware, getRetryPlugin; +var init_retry = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/submodules/retry/index.js"() { + init_isStreamingPayload(); + init_retryMiddleware(); + init_service_error_classification(); + init_AdaptiveRetryStrategy(); + init_ConfiguredRetryStrategy(); + init_DefaultRateLimiter(); + init_StandardRetryStrategy(); + init_config2(); + init_constants3(); + init_retries_2026_config(); + init_AdaptiveRetryStrategy2(); + init_StandardRetryStrategy2(); + init_delayDecider(); + init_retryDecider(); + init_configurations(); + init_omitRetryHeadersMiddleware(); + init_retryMiddleware(); + init_parseRetryAfterHeader(); + retryMiddleware = bindRetryMiddleware(isStreamingPayload); + getRetryPlugin = bindGetRetryPlugin(isStreamingPayload); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js +function setFeature(context, feature, value) { + if (!context.__aws_sdk_context) { + context.__aws_sdk_context = { + features: {} + }; + } else if (!context.__aws_sdk_context.features) { + context.__aws_sdk_context.features = {}; + } + context.__aws_sdk_context.features[feature] = value; +} +var init_setFeature = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js"() { + init_retry(); + Retry.v2026 ||= typeof process === "object" && process.env?.AWS_NEW_RETRIES_2026 === "true"; + __name(setFeature, "setFeature"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/setTokenFeature.js +function setTokenFeature(token, feature, value) { + if (!token.$source) { + token.$source = {}; + } + token.$source[feature] = value; + return token; +} +var init_setTokenFeature = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/setTokenFeature.js"() { + __name(setTokenFeature, "setTokenFeature"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-host-header/hostHeaderMiddleware.js +function resolveHostHeaderConfig(input2) { + return input2; +} +var hostHeaderMiddleware, hostHeaderMiddlewareOptions, getHostHeaderPlugin; +var init_hostHeaderMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-host-header/hostHeaderMiddleware.js"() { + init_protocols(); + __name(resolveHostHeaderConfig, "resolveHostHeaderConfig"); + hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { + if (!HttpRequest.isInstance(args.request)) + return next(args); + const { request } = args; + const { handlerProtocol = "" } = options.requestHandler.metadata || {}; + if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { + delete request.headers["host"]; + request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : ""); + } else if (!request.headers["host"]) { + let host = request.hostname; + if (request.port != null) + host += `:${request.port}`; + request.headers["host"] = host; + } + return next(args); + }, "hostHeaderMiddleware"); + hostHeaderMiddlewareOptions = { + name: "hostHeaderMiddleware", + step: "build", + priority: "low", + tags: ["HOST"], + override: true + }; + getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions); + }, "applyToStack") + }), "getHostHeaderPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-logger/loggerMiddleware.js +var loggerMiddleware, loggerMiddlewareOptions, getLoggerPlugin; +var init_loggerMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-logger/loggerMiddleware.js"() { + loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => { + try { + const response = await next(args); + const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; + const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions; + const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; + const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog; + const { $metadata, ...outputWithoutMetadata } = response.output; + logger?.info?.({ + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + output: outputFilterSensitiveLog(outputWithoutMetadata), + metadata: $metadata + }); + return response; + } catch (error62) { + const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; + const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions; + const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; + logger?.error?.({ + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + error: error62, + metadata: error62.$metadata + }); + throw error62; + } + }, "loggerMiddleware"); + loggerMiddlewareOptions = { + name: "loggerMiddleware", + tags: ["LOGGER"], + step: "initialize", + override: true + }; + getLoggerPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(loggerMiddleware(), loggerMiddlewareOptions); + }, "applyToStack") + }), "getLoggerPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-recursion-detection/configuration.js +var recursionDetectionMiddlewareOptions; +var init_configuration = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-recursion-detection/configuration.js"() { + recursionDetectionMiddlewareOptions = { + step: "build", + tags: ["RECURSION_DETECTION", "TRACE_CONTEXT_PROPAGATION"], + name: "recursionDetectionMiddleware", + override: true, + priority: "low" + }; + } +}); + +// ../../node_modules/.pnpm/@aws+lambda-invoke-store@0.3.0/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +var PROTECTED_KEYS, NO_GLOBAL_AWS_LAMBDA, InvokeStoreBase, InvokeStoreSingle, InvokeStoreMulti, InvokeStore; +var init_invoke_store = __esm({ + "../../node_modules/.pnpm/@aws+lambda-invoke-store@0.3.0/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js"() { + PROTECTED_KEYS = { + REQUEST_ID: /* @__PURE__ */ Symbol.for("_AWS_LAMBDA_REQUEST_ID"), + X_RAY_TRACE_ID: /* @__PURE__ */ Symbol.for("_AWS_LAMBDA_X_RAY_TRACE_ID"), + TENANT_ID: /* @__PURE__ */ Symbol.for("_AWS_LAMBDA_TENANT_ID"), + TRACEPARENT: /* @__PURE__ */ Symbol.for("_AWS_LAMBDA_TRACEPARENT"), + TRACESTATE: /* @__PURE__ */ Symbol.for("_AWS_LAMBDA_TRACESTATE"), + BAGGAGE: /* @__PURE__ */ Symbol.for("_AWS_LAMBDA_BAGGAGE") + }; + NO_GLOBAL_AWS_LAMBDA = ["true", "1"].includes(process.env?.AWS_LAMBDA_NODEJS_NO_GLOBAL_AWSLAMBDA ?? ""); + if (!NO_GLOBAL_AWS_LAMBDA) { + globalThis.awslambda = globalThis.awslambda || {}; + } + InvokeStoreBase = class { + static { + __name(this, "InvokeStoreBase"); + } + static PROTECTED_KEYS = PROTECTED_KEYS; + isProtectedKey(key) { + return Object.values(PROTECTED_KEYS).includes(key); + } + getRequestId() { + return this.get(PROTECTED_KEYS.REQUEST_ID) ?? "-"; + } + getXRayTraceId() { + return this.get(PROTECTED_KEYS.X_RAY_TRACE_ID); + } + getTenantId() { + return this.get(PROTECTED_KEYS.TENANT_ID); + } + getTraceparent() { + return this.get(PROTECTED_KEYS.TRACEPARENT); + } + getTracestate() { + return this.get(PROTECTED_KEYS.TRACESTATE); + } + getBaggage() { + return this.get(PROTECTED_KEYS.BAGGAGE); + } + }; + InvokeStoreSingle = class extends InvokeStoreBase { + static { + __name(this, "InvokeStoreSingle"); + } + currentContext; + getContext() { + return this.currentContext; + } + hasContext() { + return this.currentContext !== void 0; + } + get(key) { + return this.currentContext?.[key]; + } + set(key, value) { + if (this.isProtectedKey(key)) { + throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`); + } + this.currentContext = this.currentContext || {}; + this.currentContext[key] = value; + } + run(context, fn) { + this.currentContext = context; + return fn(); + } + }; + InvokeStoreMulti = class _InvokeStoreMulti extends InvokeStoreBase { + static { + __name(this, "InvokeStoreMulti"); + } + als; + static async create() { + const instance = new _InvokeStoreMulti(); + const asyncHooks = await import("node:async_hooks"); + instance.als = new asyncHooks.AsyncLocalStorage(); + return instance; + } + getContext() { + return this.als.getStore(); + } + hasContext() { + return this.als.getStore() !== void 0; + } + get(key) { + return this.als.getStore()?.[key]; + } + set(key, value) { + if (this.isProtectedKey(key)) { + throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`); + } + const store = this.als.getStore(); + if (!store) { + throw new Error("No context available"); + } + store[key] = value; + } + run(context, fn) { + return this.als.run(context, fn); + } + }; + (function(InvokeStore2) { + let instance = null; + async function getInstanceAsync(forceInvokeStoreMulti) { + if (!instance) { + instance = (async () => { + const isMulti = forceInvokeStoreMulti === true || "AWS_LAMBDA_MAX_CONCURRENCY" in process.env; + const newInstance = isMulti ? await InvokeStoreMulti.create() : new InvokeStoreSingle(); + if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda?.InvokeStore) { + return globalThis.awslambda.InvokeStore; + } else if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda) { + globalThis.awslambda.InvokeStore = newInstance; + return newInstance; + } else { + return newInstance; + } + })(); + } + return instance; + } + __name(getInstanceAsync, "getInstanceAsync"); + InvokeStore2.getInstanceAsync = getInstanceAsync; + InvokeStore2._testing = process.env.AWS_LAMBDA_BENCHMARK_MODE === "1" ? { + reset: /* @__PURE__ */ __name(() => { + instance = null; + if (globalThis.awslambda?.InvokeStore) { + delete globalThis.awslambda.InvokeStore; + } + globalThis.awslambda = { InvokeStore: void 0 }; + }, "reset") + } : void 0; + })(InvokeStore || (InvokeStore = {})); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.js +function sanitizeTraceHeaders(headers) { + for (const header of Object.keys(headers)) { + const lower = header.toLowerCase(); + if (header !== lower && (lower === TRACEPARENT || lower === TRACESTATE || lower === BAGGAGE)) { + headers[lower] = headers[header]; + delete headers[header]; + } + } +} +var AWS_LAMBDA_FUNCTION_NAME, _X_AMZN_TRACE_ID, X_AMZN_TRACE_ID, TRACEPARENT, TRACESTATE, BAGGAGE, recursionDetectionMiddleware; +var init_recursionDetectionMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.js"() { + init_invoke_store(); + init_protocols(); + AWS_LAMBDA_FUNCTION_NAME = "AWS_LAMBDA_FUNCTION_NAME"; + _X_AMZN_TRACE_ID = "_X_AMZN_TRACE_ID"; + X_AMZN_TRACE_ID = "X-Amzn-Trace-Id"; + TRACEPARENT = "traceparent"; + TRACESTATE = "tracestate"; + BAGGAGE = "baggage"; + recursionDetectionMiddleware = /* @__PURE__ */ __name(() => (next) => async (args) => { + const { request } = args; + if (!HttpRequest.isInstance(request)) { + return next(args); + } + let invokeStore; + { + const traceIdHeader = Object.keys(request.headers ?? {}).find((h5) => h5.toLowerCase() === X_AMZN_TRACE_ID.toLowerCase()) ?? X_AMZN_TRACE_ID; + if (!request.headers.hasOwnProperty(traceIdHeader)) { + const functionName = process.env[AWS_LAMBDA_FUNCTION_NAME]; + const traceIdFromEnv = process.env[_X_AMZN_TRACE_ID]; + invokeStore ??= await InvokeStore.getInstanceAsync(); + const traceIdFromInvokeStore = invokeStore?.getXRayTraceId(); + const traceId = traceIdFromInvokeStore ?? traceIdFromEnv; + const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === "string" && str.length > 0, "nonEmptyString"); + if (nonEmptyString(functionName) && nonEmptyString(traceId)) { + request.headers[X_AMZN_TRACE_ID] = traceId; + } + } + } + { + sanitizeTraceHeaders(request.headers); + const existingTraceparent = request.headers[TRACEPARENT]; + if (!existingTraceparent) { + const traceparent = (invokeStore ??= await InvokeStore.getInstanceAsync())?.getTraceparent?.(); + if (traceparent) { + request.headers[TRACEPARENT] = traceparent; + const tracestate = invokeStore?.getTracestate?.(); + if (tracestate) { + request.headers[TRACESTATE] = tracestate; + } + const baggage = invokeStore?.getBaggage?.(); + if (baggage) { + request.headers[BAGGAGE] = baggage; + } + } + } + } + return next(args); + }, "recursionDetectionMiddleware"); + __name(sanitizeTraceHeaders, "sanitizeTraceHeaders"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.js +var getRecursionDetectionPlugin; +var init_getRecursionDetectionPlugin = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.js"() { + init_configuration(); + init_recursionDetectionMiddleware(); + getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(recursionDetectionMiddleware(), recursionDetectionMiddlewareOptions); + }, "applyToStack") + }), "getRecursionDetectionPlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/resolveAuthOptions.js +var resolveAuthOptions; +var init_resolveAuthOptions = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/resolveAuthOptions.js"() { + resolveAuthOptions = /* @__PURE__ */ __name((candidateAuthOptions, authSchemePreference) => { + if (!authSchemePreference || authSchemePreference.length === 0) { + return candidateAuthOptions; + } + const preferredAuthOptions = []; + for (const preferredSchemeName of authSchemePreference) { + for (const candidateAuthOption of candidateAuthOptions) { + const candidateAuthSchemeName = candidateAuthOption.schemeId.split("#")[1]; + if (candidateAuthSchemeName === preferredSchemeName) { + preferredAuthOptions.push(candidateAuthOption); + } + } + } + for (const candidateAuthOption of candidateAuthOptions) { + if (!preferredAuthOptions.find(({ schemeId }) => schemeId === candidateAuthOption.schemeId)) { + preferredAuthOptions.push(candidateAuthOption); + } + } + return preferredAuthOptions; + }, "resolveAuthOptions"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +function convertHttpAuthSchemesToMap(httpAuthSchemes) { + const map2 = /* @__PURE__ */ new Map(); + for (const scheme of httpAuthSchemes) { + map2.set(scheme.schemeId, scheme); + } + return map2; +} +var httpAuthSchemeMiddleware; +var init_httpAuthSchemeMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js"() { + init_transport(); + init_resolveAuthOptions(); + __name(convertHttpAuthSchemesToMap, "convertHttpAuthSchemesToMap"); + httpAuthSchemeMiddleware = /* @__PURE__ */ __name((config3, mwOptions) => (next, context) => async (args) => { + const options = config3.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config3, context, args.input)); + const authSchemePreference = config3.authSchemePreference ? await config3.authSchemePreference() : []; + const resolvedOptions = resolveAuthOptions(options, authSchemePreference); + const authSchemes = convertHttpAuthSchemesToMap(config3.httpAuthSchemes); + const smithyContext = getSmithyContext(context); + const failureReasons = []; + for (const option of resolvedOptions) { + const scheme = authSchemes.get(option.schemeId); + if (!scheme) { + failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.`); + continue; + } + const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config3)); + if (!identityProvider) { + failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.`); + continue; + } + const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config3, context) || {}; + option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties); + option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties); + smithyContext.selectedHttpAuthScheme = { + httpAuthOption: option, + identity: await identityProvider(option.identityProperties), + signer: scheme.signer + }; + break; + } + if (!smithyContext.selectedHttpAuthScheme) { + throw new Error(failureReasons.join("\n")); + } + return next(args); + }, "httpAuthSchemeMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +var httpAuthSchemeEndpointRuleSetMiddlewareOptions, getHttpAuthSchemeEndpointRuleSetPlugin; +var init_getHttpAuthSchemeEndpointRuleSetPlugin = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js"() { + init_httpAuthSchemeMiddleware(); + httpAuthSchemeEndpointRuleSetMiddlewareOptions = { + step: "serialize", + tags: ["HTTP_AUTH_SCHEME"], + name: "httpAuthSchemeMiddleware", + override: true, + relation: "before", + toMiddleware: "endpointV2Middleware" + }; + getHttpAuthSchemeEndpointRuleSetPlugin = /* @__PURE__ */ __name((config3, { httpAuthSchemeParametersProvider, identityProviderConfigProvider }) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(httpAuthSchemeMiddleware(config3, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), httpAuthSchemeEndpointRuleSetMiddlewareOptions); + }, "applyToStack") + }), "getHttpAuthSchemeEndpointRuleSetPlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +var httpAuthSchemeMiddlewareOptions, getHttpAuthSchemePlugin; +var init_getHttpAuthSchemePlugin = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js"() { + init_httpAuthSchemeMiddleware(); + httpAuthSchemeMiddlewareOptions = { + step: "serialize", + tags: ["HTTP_AUTH_SCHEME"], + name: "httpAuthSchemeMiddleware", + override: true, + relation: "before", + toMiddleware: "serializerMiddleware" + }; + getHttpAuthSchemePlugin = /* @__PURE__ */ __name((config3, { httpAuthSchemeParametersProvider, identityProviderConfigProvider }) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(httpAuthSchemeMiddleware(config3, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), httpAuthSchemeMiddlewareOptions); + }, "applyToStack") + }), "getHttpAuthSchemePlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/index.js +var init_middleware_http_auth_scheme = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/index.js"() { + init_httpAuthSchemeMiddleware(); + init_getHttpAuthSchemeEndpointRuleSetPlugin(); + init_getHttpAuthSchemePlugin(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/httpSigningMiddleware.js +var defaultErrorHandler, defaultSuccessHandler, httpSigningMiddleware; +var init_httpSigningMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/httpSigningMiddleware.js"() { + init_protocols(); + init_transport(); + defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error62) => { + throw error62; + }, "defaultErrorHandler"); + defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => { + }, "defaultSuccessHandler"); + httpSigningMiddleware = /* @__PURE__ */ __name((config3) => (next, context) => async (args) => { + if (!HttpRequest.isInstance(args.request)) { + return next(args); + } + const smithyContext = getSmithyContext(context); + const scheme = smithyContext.selectedHttpAuthScheme; + if (!scheme) { + throw new Error(`No HttpAuthScheme was selected: unable to sign request`); + } + const { httpAuthOption: { signingProperties = {} }, identity, signer } = scheme; + const output2 = await next({ + ...args, + request: await signer.sign(args.request, identity, signingProperties) + }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties)); + (signer.successHandler || defaultSuccessHandler)(output2.response, signingProperties); + return output2; + }, "httpSigningMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/getHttpSigningMiddleware.js +var httpSigningMiddlewareOptions, getHttpSigningPlugin; +var init_getHttpSigningMiddleware = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/getHttpSigningMiddleware.js"() { + init_httpSigningMiddleware(); + httpSigningMiddlewareOptions = { + step: "finalizeRequest", + tags: ["HTTP_SIGNING"], + name: "httpSigningMiddleware", + aliases: ["apiKeyMiddleware", "tokenMiddleware", "awsAuthMiddleware"], + override: true, + relation: "after", + toMiddleware: "retryMiddleware" + }; + getHttpSigningPlugin = /* @__PURE__ */ __name((config3) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(httpSigningMiddleware(config3), httpSigningMiddlewareOptions); + }, "applyToStack") + }), "getHttpSigningPlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/index.js +var init_middleware_http_signing = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/index.js"() { + init_httpSigningMiddleware(); + init_getHttpSigningMiddleware(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/normalizeProvider.js +var normalizeProvider2; +var init_normalizeProvider = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/normalizeProvider.js"() { + normalizeProvider2 = /* @__PURE__ */ __name((input2) => { + if (typeof input2 === "function") + return input2; + const promisified = Promise.resolve(input2); + return () => promisified; + }, "normalizeProvider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/pagination/createPaginator.js +function createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) { + return /* @__PURE__ */ __name(async function* paginateOperation(config3, input2, ...additionalArguments) { + const _input = input2; + let token = config3.startingToken ?? _input[inputTokenName]; + let hasNext = true; + let page; + while (hasNext) { + _input[inputTokenName] = token; + if (pageSizeTokenName) { + _input[pageSizeTokenName] = _input[pageSizeTokenName] ?? config3.pageSize; + } + if (config3.client instanceof ClientCtor) { + page = await makePagedClientRequest(CommandCtor, config3.client, input2, config3.withCommand, ...additionalArguments); + } else { + throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`); + } + yield page; + const prevToken = token; + token = get(page, outputTokenName); + hasNext = !!(token && (!config3.stopOnSameToken || token !== prevToken)); + } + return void 0; + }, "paginateOperation"); +} +var makePagedClientRequest, get; +var init_createPaginator = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/pagination/createPaginator.js"() { + makePagedClientRequest = /* @__PURE__ */ __name(async (CommandCtor, client, input2, withCommand = (_) => _, ...args) => { + let command5 = new CommandCtor(input2); + command5 = withCommand(command5) ?? command5; + return await client.send(command5, ...args); + }, "makePagedClientRequest"); + __name(createPaginator, "createPaginator"); + get = /* @__PURE__ */ __name((fromObject, path2) => { + let cursor = fromObject; + const pathComponents = path2.split("."); + for (const step of pathComponents) { + if (!cursor || typeof cursor !== "object") { + return void 0; + } + cursor = cursor[step]; + } + return cursor; + }, "get"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/setFeature.js +function setFeature2(context, feature, value) { + if (!context.__smithy_context) { + context.__smithy_context = { + features: {} + }; + } else if (!context.__smithy_context.features) { + context.__smithy_context.features = {}; + } + context.__smithy_context.features[feature] = value; +} +var init_setFeature2 = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/setFeature.js"() { + __name(setFeature2, "setFeature"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/DefaultIdentityProviderConfig.js +var DefaultIdentityProviderConfig; +var init_DefaultIdentityProviderConfig = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/DefaultIdentityProviderConfig.js"() { + init_transport(); + DefaultIdentityProviderConfig = class { + static { + __name(this, "DefaultIdentityProviderConfig"); + } + authSchemes = /* @__PURE__ */ new Map(); + constructor(config3) { + for (const key in config3) { + if (!hasOwn(config3, key)) + continue; + const value = config3[key]; + if (value !== void 0) { + this.authSchemes.set(key, value); + } + } + } + getIdentityProvider(schemeId) { + return this.authSchemes.get(schemeId); + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +var import_types2, HttpApiKeyAuthSigner; +var init_httpApiKeyAuth = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js"() { + init_protocols(); + import_types2 = __toESM(require_dist_cjs()); + HttpApiKeyAuthSigner = class { + static { + __name(this, "HttpApiKeyAuthSigner"); + } + async sign(httpRequest, identity, signingProperties) { + if (!signingProperties) { + throw new Error("request could not be signed with `apiKey` since the `name` and `in` signer properties are missing"); + } + if (!signingProperties.name) { + throw new Error("request could not be signed with `apiKey` since the `name` signer property is missing"); + } + if (!signingProperties.in) { + throw new Error("request could not be signed with `apiKey` since the `in` signer property is missing"); + } + if (!identity.apiKey) { + throw new Error("request could not be signed with `apiKey` since the `apiKey` is not defined"); + } + const clonedRequest = HttpRequest.clone(httpRequest); + if (signingProperties.in === import_types2.HttpApiKeyAuthLocation.QUERY) { + clonedRequest.query[signingProperties.name] = identity.apiKey; + } else if (signingProperties.in === import_types2.HttpApiKeyAuthLocation.HEADER) { + clonedRequest.headers[signingProperties.name] = signingProperties.scheme ? `${signingProperties.scheme} ${identity.apiKey}` : identity.apiKey; + } else { + throw new Error("request can only be signed with `apiKey` locations `query` or `header`, but found: `" + signingProperties.in + "`"); + } + return clonedRequest; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +var HttpBearerAuthSigner; +var init_httpBearerAuth = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js"() { + init_protocols(); + HttpBearerAuthSigner = class { + static { + __name(this, "HttpBearerAuthSigner"); + } + async sign(httpRequest, identity, signingProperties) { + const clonedRequest = HttpRequest.clone(httpRequest); + if (!identity.token) { + throw new Error("request could not be signed with `token` since the `token` is not defined"); + } + clonedRequest.headers["Authorization"] = `Bearer ${identity.token}`; + return clonedRequest; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/noAuth.js +var NoAuthSigner; +var init_noAuth = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/noAuth.js"() { + NoAuthSigner = class { + static { + __name(this, "NoAuthSigner"); + } + async sign(httpRequest, identity, signingProperties) { + return httpRequest; + } + }; + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/index.js +var init_httpAuthSchemes = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/httpAuthSchemes/index.js"() { + init_httpApiKeyAuth(); + init_httpBearerAuth(); + init_noAuth(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/memoizeIdentityProvider.js +var createIsIdentityExpiredFunction, EXPIRATION_MS, isIdentityExpired, doesIdentityRequireRefresh, memoizeIdentityProvider; +var init_memoizeIdentityProvider = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/memoizeIdentityProvider.js"() { + createIsIdentityExpiredFunction = /* @__PURE__ */ __name((expirationMs) => /* @__PURE__ */ __name(function isIdentityExpired2(identity) { + return doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs; + }, "isIdentityExpired"), "createIsIdentityExpiredFunction"); + EXPIRATION_MS = 3e5; + isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS); + doesIdentityRequireRefresh = /* @__PURE__ */ __name((identity) => identity.expiration !== void 0, "doesIdentityRequireRefresh"); + memoizeIdentityProvider = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { + if (provider === void 0) { + return void 0; + } + const normalizedProvider = typeof provider !== "function" ? async () => Promise.resolve(provider) : provider; + let resolved; + let pending; + let hasResult; + let isConstant = false; + const coalesceProvider = /* @__PURE__ */ __name(async (options) => { + if (!pending) { + pending = normalizedProvider(options); + } + try { + resolved = await pending; + hasResult = true; + isConstant = false; + } finally { + pending = void 0; + } + return resolved; + }, "coalesceProvider"); + if (isExpired === void 0) { + return async (options) => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(options); + } + return resolved; + }; + } + return async (options) => { + if (!hasResult || options?.forceRefresh) { + resolved = await coalesceProvider(options); + } + if (isConstant) { + return resolved; + } + if (!requiresRefresh(resolved)) { + isConstant = true; + return resolved; + } + if (isExpired(resolved)) { + await coalesceProvider(options); + return resolved; + } + return resolved; + }; + }, "memoizeIdentityProvider"); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/index.js +var init_util_identity_and_auth = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/index.js"() { + init_DefaultIdentityProviderConfig(); + init_httpAuthSchemes(); + init_memoizeIdentityProvider(); + } +}); + +// ../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/index.js +var dist_es_exports = {}; +__export(dist_es_exports, { + DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, + EXPIRATION_MS: () => EXPIRATION_MS, + HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, + HttpBearerAuthSigner: () => HttpBearerAuthSigner, + NoAuthSigner: () => NoAuthSigner, + createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, + createPaginator: () => createPaginator, + doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, + getHttpAuthSchemeEndpointRuleSetPlugin: () => getHttpAuthSchemeEndpointRuleSetPlugin, + getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, + getHttpSigningPlugin: () => getHttpSigningPlugin, + getSmithyContext: () => getSmithyContext, + httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => httpAuthSchemeEndpointRuleSetMiddlewareOptions, + httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, + httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, + httpSigningMiddleware: () => httpSigningMiddleware, + httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, + isIdentityExpired: () => isIdentityExpired, + memoizeIdentityProvider: () => memoizeIdentityProvider, + normalizeProvider: () => normalizeProvider2, + requestBuilder: () => requestBuilder, + setFeature: () => setFeature2 +}); +var init_dist_es = __esm({ + "../../node_modules/.pnpm/@smithy+core@3.36.1/node_modules/@smithy/core/dist-es/index.js"() { + init_transport(); + init_middleware_http_auth_scheme(); + init_middleware_http_signing(); + init_normalizeProvider(); + init_createPaginator(); + init_protocols(); + init_setFeature2(); + init_util_identity_and_auth(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/configurations.js +function isValidUserAgentAppId(appId) { + if (appId === void 0) { + return true; + } + return typeof appId === "string" && appId.length <= 50; +} +function resolveUserAgentConfig(input2) { + const normalizedAppIdProvider = normalizeProvider2(input2.userAgentAppId ?? DEFAULT_UA_APP_ID); + const { customUserAgent } = input2; + return Object.assign(input2, { + customUserAgent: typeof customUserAgent === "string" ? [[customUserAgent]] : customUserAgent, + userAgentAppId: /* @__PURE__ */ __name(async () => { + const appId = await normalizedAppIdProvider(); + if (!isValidUserAgentAppId(appId)) { + const logger = input2.logger?.constructor?.name === "NoOpLogger" || !input2.logger ? console : input2.logger; + if (typeof appId !== "string") { + logger?.warn("userAgentAppId must be a string or undefined."); + } else if (appId.length > 50) { + logger?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters."); + } + } + return appId; + }, "userAgentAppId") + }); +} +var DEFAULT_UA_APP_ID; +var init_configurations2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/configurations.js"() { + init_dist_es(); + DEFAULT_UA_APP_ID = void 0; + __name(isValidUserAgentAppId, "isValidUserAgentAppId"); + __name(resolveUserAgentConfig, "resolveUserAgentConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/partitions.js +var partitionsInfo; +var init_partitions = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/partitions.js"() { + partitionsInfo = { + "partitions": [ + { + "id": "aws", + "outputs": { + "dnsSuffix": "amazonaws.com", + "dualStackDnsSuffix": "api.aws", + "implicitGlobalRegion": "us-east-1", + "name": "aws", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", + "regions": { + "af-south-1": { + "description": "Africa (Cape Town)" + }, + "ap-east-1": { + "description": "Asia Pacific (Hong Kong)" + }, + "ap-east-2": { + "description": "Asia Pacific (Taipei)" + }, + "ap-northeast-1": { + "description": "Asia Pacific (Tokyo)" + }, + "ap-northeast-2": { + "description": "Asia Pacific (Seoul)" + }, + "ap-northeast-3": { + "description": "Asia Pacific (Osaka)" + }, + "ap-south-1": { + "description": "Asia Pacific (Mumbai)" + }, + "ap-south-2": { + "description": "Asia Pacific (Hyderabad)" + }, + "ap-southeast-1": { + "description": "Asia Pacific (Singapore)" + }, + "ap-southeast-2": { + "description": "Asia Pacific (Sydney)" + }, + "ap-southeast-3": { + "description": "Asia Pacific (Jakarta)" + }, + "ap-southeast-4": { + "description": "Asia Pacific (Melbourne)" + }, + "ap-southeast-5": { + "description": "Asia Pacific (Malaysia)" + }, + "ap-southeast-6": { + "description": "Asia Pacific (New Zealand)" + }, + "ap-southeast-7": { + "description": "Asia Pacific (Thailand)" + }, + "aws-global": { + "description": "aws global region" + }, + "ca-central-1": { + "description": "Canada (Central)" + }, + "ca-west-1": { + "description": "Canada West (Calgary)" + }, + "eu-central-1": { + "description": "Europe (Frankfurt)" + }, + "eu-central-2": { + "description": "Europe (Zurich)" + }, + "eu-north-1": { + "description": "Europe (Stockholm)" + }, + "eu-south-1": { + "description": "Europe (Milan)" + }, + "eu-south-2": { + "description": "Europe (Spain)" + }, + "eu-west-1": { + "description": "Europe (Ireland)" + }, + "eu-west-2": { + "description": "Europe (London)" + }, + "eu-west-3": { + "description": "Europe (Paris)" + }, + "il-central-1": { + "description": "Israel (Tel Aviv)" + }, + "me-central-1": { + "description": "Middle East (UAE)" + }, + "me-south-1": { + "description": "Middle East (Bahrain)" + }, + "mx-central-1": { + "description": "Mexico (Central)" + }, + "sa-east-1": { + "description": "South America (Sao Paulo)" + }, + "us-east-1": { + "description": "US East (N. Virginia)" + }, + "us-east-2": { + "description": "US East (Ohio)" + }, + "us-west-1": { + "description": "US West (N. California)" + }, + "us-west-2": { + "description": "US West (Oregon)" + } + } + }, + { + "id": "aws-cn", + "outputs": { + "dnsSuffix": "amazonaws.com.cn", + "dualStackDnsSuffix": "api.amazonwebservices.com.cn", + "implicitGlobalRegion": "cn-northwest-1", + "name": "aws-cn", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^cn\\-\\w+\\-\\d+$", + "regions": { + "aws-cn-global": { + "description": "aws-cn global region" + }, + "cn-north-1": { + "description": "China (Beijing)" + }, + "cn-northwest-1": { + "description": "China (Ningxia)" + } + } + }, + { + "id": "aws-eusc", + "outputs": { + "dnsSuffix": "amazonaws.eu", + "dualStackDnsSuffix": "api.amazonwebservices.eu", + "implicitGlobalRegion": "eusc-de-east-1", + "name": "aws-eusc", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^eusc\\-(de)\\-\\w+\\-\\d+$", + "regions": { + "eusc-de-east-1": { + "description": "AWS European Sovereign Cloud (Germany)" + } + } + }, + { + "id": "aws-iso", + "outputs": { + "dnsSuffix": "c2s.ic.gov", + "dualStackDnsSuffix": "api.aws.ic.gov", + "implicitGlobalRegion": "us-iso-east-1", + "name": "aws-iso", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^us\\-iso\\-\\w+\\-\\d+$", + "regions": { + "aws-iso-global": { + "description": "aws-iso global region" + }, + "us-iso-east-1": { + "description": "US ISO East" + }, + "us-iso-west-1": { + "description": "US ISO WEST" + } + } + }, + { + "id": "aws-iso-b", + "outputs": { + "dnsSuffix": "sc2s.sgov.gov", + "dualStackDnsSuffix": "api.aws.scloud", + "implicitGlobalRegion": "us-isob-east-1", + "name": "aws-iso-b", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^us\\-isob\\-\\w+\\-\\d+$", + "regions": { + "aws-iso-b-global": { + "description": "aws-iso-b global region" + }, + "us-isob-east-1": { + "description": "US ISOB East (Ohio)" + }, + "us-isob-west-1": { + "description": "US ISOB West" + } + } + }, + { + "id": "aws-iso-e", + "outputs": { + "dnsSuffix": "cloud.adc-e.uk", + "dualStackDnsSuffix": "api.cloud-aws.adc-e.uk", + "implicitGlobalRegion": "eu-isoe-west-1", + "name": "aws-iso-e", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^eu\\-isoe\\-\\w+\\-\\d+$", + "regions": { + "aws-iso-e-global": { + "description": "aws-iso-e global region" + }, + "eu-isoe-west-1": { + "description": "EU ISOE West" + } + } + }, + { + "id": "aws-iso-f", + "outputs": { + "dnsSuffix": "csp.hci.ic.gov", + "dualStackDnsSuffix": "api.aws.hci.ic.gov", + "implicitGlobalRegion": "us-isof-south-1", + "name": "aws-iso-f", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^us\\-isof\\-\\w+\\-\\d+$", + "regions": { + "aws-iso-f-global": { + "description": "aws-iso-f global region" + }, + "us-isof-east-1": { + "description": "US ISOF EAST" + }, + "us-isof-south-1": { + "description": "US ISOF SOUTH" + } + } + }, + { + "id": "aws-us-gov", + "outputs": { + "dnsSuffix": "amazonaws.com", + "dualStackDnsSuffix": "api.aws", + "implicitGlobalRegion": "us-gov-west-1", + "name": "aws-us-gov", + "supportsDualStack": true, + "supportsFIPS": true + }, + "regionRegex": "^us\\-gov\\-\\w+\\-\\d+$", + "regions": { + "aws-us-gov-global": { + "description": "aws-us-gov global region" + }, + "us-gov-east-1": { + "description": "AWS GovCloud (US-East)" + }, + "us-gov-west-1": { + "description": "AWS GovCloud (US-West)" + } + } + } + ], + "version": "1.1" + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/partition.js +var selectedPartitionsInfo, selectedUserAgentPrefix, partition, setPartitionInfo, useDefaultPartitionInfo, getUserAgentPrefix; +var init_partition = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/partition.js"() { + init_partitions(); + selectedPartitionsInfo = partitionsInfo; + selectedUserAgentPrefix = ""; + partition = /* @__PURE__ */ __name((value) => { + const { partitions } = selectedPartitionsInfo; + for (const partition2 of partitions) { + const { regions, outputs } = partition2; + for (const [region, regionData] of Object.entries(regions)) { + if (region === value) { + return { + ...outputs, + ...regionData + }; + } + } + } + for (const partition2 of partitions) { + const { regionRegex, outputs } = partition2; + if (new RegExp(regionRegex).test(value)) { + return { + ...outputs + }; + } + } + const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === "aws"); + if (!DEFAULT_PARTITION) { + throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist."); + } + return { + ...DEFAULT_PARTITION.outputs + }; + }, "partition"); + setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo2, userAgentPrefix = "") => { + selectedPartitionsInfo = partitionsInfo2; + selectedUserAgentPrefix = userAgentPrefix; + }, "setPartitionInfo"); + useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { + setPartitionInfo(partitionsInfo, ""); + }, "useDefaultPartitionInfo"); + getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, "getUserAgentPrefix"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/check-features.js +async function checkFeatures(context, config3, args) { + const request = args.request; + if (request?.headers?.["smithy-protocol"] === "rpc-v2-cbor") { + setFeature(context, "PROTOCOL_RPC_V2_CBOR", "M"); + } + if (typeof config3.retryStrategy === "function") { + const retryStrategy = await config3.retryStrategy(); + if (typeof retryStrategy.mode === "string") { + switch (retryStrategy.mode) { + case RETRY_MODES.ADAPTIVE: + setFeature(context, "RETRY_MODE_ADAPTIVE", "F"); + break; + case RETRY_MODES.STANDARD: + setFeature(context, "RETRY_MODE_STANDARD", "E"); + break; + } + } + } + if (typeof config3.accountIdEndpointMode === "function") { + const endpointV2 = context.endpointV2; + if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) { + setFeature(context, "ACCOUNT_ID_ENDPOINT", "O"); + } + switch (await config3.accountIdEndpointMode?.()) { + case "disabled": + setFeature(context, "ACCOUNT_ID_MODE_DISABLED", "Q"); + break; + case "preferred": + setFeature(context, "ACCOUNT_ID_MODE_PREFERRED", "P"); + break; + case "required": + setFeature(context, "ACCOUNT_ID_MODE_REQUIRED", "R"); + break; + } + } + const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity; + if (identity?.$source) { + const credentials = identity; + if (credentials.accountId) { + setFeature(context, "RESOLVED_ACCOUNT_ID", "T"); + } + for (const [key, value] of Object.entries(credentials.$source ?? {})) { + setFeature(context, key, value); + } + } +} +var ACCOUNT_ID_ENDPOINT_REGEX; +var init_check_features = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/check-features.js"() { + init_retry(); + init_setFeature(); + ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/; + __name(checkFeatures, "checkFeatures"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/constants.js +var USER_AGENT, X_AMZ_USER_AGENT, SPACE, UA_NAME_SEPARATOR, UA_NAME_ESCAPE_REGEX, UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR; +var init_constants4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/constants.js"() { + USER_AGENT = "user-agent"; + X_AMZ_USER_AGENT = "x-amz-user-agent"; + SPACE = " "; + UA_NAME_SEPARATOR = "/"; + UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\-.^_`|~\w]/g; + UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\-.^_`|~\w#]/g; + UA_ESCAPE_CHAR = "-"; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/encode-features.js +function encodeFeatures(features) { + let buffer = ""; + for (const key in features) { + const val = features[key]; + if (buffer.length + val.length + 1 <= BYTE_LIMIT) { + if (buffer.length) { + buffer += "," + val; + } else { + buffer += val; + } + continue; + } + break; + } + return buffer; +} +var BYTE_LIMIT; +var init_encode_features = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/encode-features.js"() { + BYTE_LIMIT = 1024; + __name(encodeFeatures, "encodeFeatures"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/user-agent-middleware.js +var userAgentMiddleware, escapeUserAgent, getUserAgentMiddlewareOptions, getUserAgentPlugin; +var init_user_agent_middleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/user-agent-middleware.js"() { + init_protocols(); + init_partition(); + init_check_features(); + init_constants4(); + init_encode_features(); + userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { + const { request } = args; + if (!HttpRequest.isInstance(request)) { + return next(args); + } + const { headers } = request; + const userAgent = context?.userAgent?.map(escapeUserAgent) || []; + const defaultUserAgent2 = (await options.defaultUserAgentProvider()).map(escapeUserAgent); + await checkFeatures(context, options, args); + const awsContext = context; + defaultUserAgent2.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`); + const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || []; + const appId = await options.userAgentAppId(); + if (appId) { + defaultUserAgent2.push(escapeUserAgent([`app`, `${appId}`])); + } + const prefix = getUserAgentPrefix(); + const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent2, ...userAgent, ...customUserAgent]).join(SPACE); + const normalUAValue = [ + ...defaultUserAgent2.filter((section) => section.startsWith("aws-sdk-")), + ...customUserAgent + ].join(SPACE); + if (options.runtime !== "browser") { + if (normalUAValue) { + headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue; + } + headers[USER_AGENT] = sdkUserAgentValue; + } else { + headers[X_AMZ_USER_AGENT] = sdkUserAgentValue; + } + return next({ + ...args, + request + }); + }, "userAgentMiddleware"); + escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => { + const name2 = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR); + const version2 = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR); + const prefixSeparatorIndex = name2.indexOf(UA_NAME_SEPARATOR); + const prefix = name2.substring(0, prefixSeparatorIndex); + let uaName = name2.substring(prefixSeparatorIndex + 1); + if (prefix === "api") { + uaName = uaName.toLowerCase(); + } + return [prefix, uaName, version2].filter((item) => item && item.length > 0).reduce((acc, item, index) => { + switch (index) { + case 0: + return item; + case 1: + return `${acc}/${item}`; + default: + return `${acc}#${item}`; + } + }, ""); + }, "escapeUserAgent"); + getUserAgentMiddlewareOptions = { + name: "getUserAgentMiddleware", + step: "build", + priority: "low", + tags: ["SET_USER_AGENT", "USER_AGENT"], + override: true + }; + getUserAgentPlugin = /* @__PURE__ */ __name((config3) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(userAgentMiddleware(config3), getUserAgentMiddlewareOptions); + }, "applyToStack") + }), "getUserAgentPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/getRuntimeUserAgentPair.js +import { versions } from "node:process"; +var getRuntimeUserAgentPair; +var init_getRuntimeUserAgentPair = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/getRuntimeUserAgentPair.js"() { + getRuntimeUserAgentPair = /* @__PURE__ */ __name(() => { + const runtimesToCheck = ["deno", "bun", "llrt"]; + for (const runtime3 of runtimesToCheck) { + if (versions[runtime3]) { + return [`md/${runtime3}`, versions[runtime3]]; + } + } + return ["md/nodejs", versions.node]; + }, "getRuntimeUserAgentPair"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/crt-availability.js +var crtAvailability; +var init_crt_availability = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/crt-availability.js"() { + crtAvailability = { + isCrtAvailable: false + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/is-crt-available.js +var isCrtAvailable; +var init_is_crt_available = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/is-crt-available.js"() { + init_crt_availability(); + isCrtAvailable = /* @__PURE__ */ __name(() => { + if (crtAvailability.isCrtAvailable) { + return ["md/crt-avail"]; + } + return null; + }, "isCrtAvailable"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/defaultUserAgent.js +import { platform, release } from "node:os"; +import { env as env2 } from "node:process"; +var createDefaultUserAgentProvider, defaultUserAgent; +var init_defaultUserAgent = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/defaultUserAgent.js"() { + init_getRuntimeUserAgentPair(); + init_is_crt_available(); + init_crt_availability(); + createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => { + const runtimeUserAgentPair = getRuntimeUserAgentPair(); + return async (config3) => { + const sections = [ + ["aws-sdk-js", clientVersion], + ["ua", "2.1"], + [`os/${platform()}`, release()], + ["lang/js"], + runtimeUserAgentPair + ]; + const crtAvailable = isCrtAvailable(); + if (crtAvailable) { + sections.push(crtAvailable); + } + if (serviceId) { + sections.push([`api/${serviceId}`, clientVersion]); + } + if (env2.AWS_EXECUTION_ENV) { + sections.push([`exec-env/${env2.AWS_EXECUTION_ENV}`]); + } + const appId = await config3?.userAgentAppId?.(); + const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections]; + return resolvedUserAgent; + }; + }, "createDefaultUserAgentProvider"); + defaultUserAgent = createDefaultUserAgentProvider; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/nodeAppIdConfigOptions.js +var UA_APP_ID_ENV_NAME, UA_APP_ID_INI_NAME, UA_APP_ID_INI_NAME_DEPRECATED, NODE_APP_ID_CONFIG_OPTIONS; +var init_nodeAppIdConfigOptions = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/nodeAppIdConfigOptions.js"() { + init_configurations2(); + UA_APP_ID_ENV_NAME = "AWS_SDK_UA_APP_ID"; + UA_APP_ID_INI_NAME = "sdk_ua_app_id"; + UA_APP_ID_INI_NAME_DEPRECATED = "sdk-ua-app-id"; + NODE_APP_ID_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => env3[UA_APP_ID_ENV_NAME], "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], "configFileSelector"), + default: DEFAULT_UA_APP_ID + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-browser/createUserAgentStringParsingProvider.js +var createUserAgentStringParsingProvider; +var init_createUserAgentStringParsingProvider = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-browser/createUserAgentStringParsingProvider.js"() { + createUserAgentStringParsingProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => async (config3) => { + const module = await import("./es5-NIUGVEY6.js"); + const parse4 = module.parse ?? module.default.parse ?? (() => ""); + const parsedUA = typeof window !== "undefined" && window?.navigator?.userAgent ? parse4(window.navigator.userAgent) : void 0; + const sections = [ + ["aws-sdk-js", clientVersion], + ["ua", "2.1"], + [`os/${parsedUA?.os?.name || "other"}`, parsedUA?.os?.version], + ["lang/js"], + ["md/browser", `${parsedUA?.browser?.name ?? "unknown"}_${parsedUA?.browser?.version ?? "unknown"}`] + ]; + if (serviceId) { + sections.push([`api/${serviceId}`, clientVersion]); + } + const appId = await config3?.userAgentAppId?.(); + if (appId) { + sections.push([`app/${appId}`]); + } + return sections; + }, "createUserAgentStringParsingProvider"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-browser/defaultUserAgent.js +var fallback; +var init_defaultUserAgent2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-browser/defaultUserAgent.js"() { + fallback = { + os(ua) { + if (/iPhone|iPad|iPod/.test(ua)) + return "iOS"; + if (/Macintosh|Mac OS X/.test(ua)) + return "macOS"; + if (/Windows NT/.test(ua)) + return "Windows"; + if (/Android/.test(ua)) + return "Android"; + if (/Linux/.test(ua)) + return "Linux"; + return void 0; + }, + browser(ua) { + if (/EdgiOS|EdgA|Edg\//.test(ua)) + return "Microsoft Edge"; + if (/Firefox\//.test(ua)) + return "Firefox"; + if (/Chrome\//.test(ua)) + return "Chrome"; + if (/Safari\//.test(ua)) + return "Safari"; + return void 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/isIpAddress.js +var init_isIpAddress = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/isIpAddress.js"() { + init_endpoints(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/isVirtualHostableS3Bucket.js +var isVirtualHostableS3Bucket; +var init_isVirtualHostableS3Bucket = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/isVirtualHostableS3Bucket.js"() { + init_endpoints(); + init_isIpAddress(); + isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => { + if (allowSubDomains) { + for (const label of value.split(".")) { + if (!isVirtualHostableS3Bucket(label)) { + return false; + } + } + return true; + } + if (!isValidHostLabel(value)) { + return false; + } + if (value.length < 3 || value.length > 63) { + return false; + } + if (value !== value.toLowerCase()) { + return false; + } + if (isIpAddress(value)) { + return false; + } + return true; + }, "isVirtualHostableS3Bucket"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/parseArn.js +var ARN_DELIMITER, RESOURCE_DELIMITER, parseArn; +var init_parseArn = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/parseArn.js"() { + ARN_DELIMITER = ":"; + RESOURCE_DELIMITER = "/"; + parseArn = /* @__PURE__ */ __name((value) => { + const segments = value.split(ARN_DELIMITER); + if (segments.length < 6) + return null; + const [arn, partition2, service, region, accountId, ...resourcePath] = segments; + if (arn !== "arn" || partition2 === "" || service === "" || resourcePath.join(ARN_DELIMITER) === "") + return null; + const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat(); + return { + partition: partition2, + service, + region, + accountId, + resourceId + }; + }, "parseArn"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/aws.js +var awsEndpointFunctions; +var init_aws = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/aws.js"() { + init_endpoints(); + init_isVirtualHostableS3Bucket(); + init_parseArn(); + init_partition(); + awsEndpointFunctions = { + isVirtualHostableS3Bucket, + parseArn, + partition + }; + customEndpointFunctions.aws = awsEndpointFunctions; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/resolveEndpoint.js +var init_resolveEndpoint = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/resolveEndpoint.js"() { + init_endpoints(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/resolveDefaultAwsRegionalEndpointsConfig.js +var resolveDefaultAwsRegionalEndpointsConfig, toEndpointV1; +var init_resolveDefaultAwsRegionalEndpointsConfig = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/resolveDefaultAwsRegionalEndpointsConfig.js"() { + init_protocols(); + resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input2) => { + if (typeof input2.endpointProvider !== "function") { + throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client."); + } + const { endpoint } = input2; + if (endpoint === void 0) { + input2.endpoint = async () => { + return toEndpointV1(input2.endpointProvider({ + Region: typeof input2.region === "function" ? await input2.region() : input2.region, + UseDualStack: typeof input2.useDualstackEndpoint === "function" ? await input2.useDualstackEndpoint() : input2.useDualstackEndpoint, + UseFIPS: typeof input2.useFipsEndpoint === "function" ? await input2.useFipsEndpoint() : input2.useFipsEndpoint, + Endpoint: void 0 + }, { logger: input2.logger })); + }; + } + return input2; + }, "resolveDefaultAwsRegionalEndpointsConfig"); + toEndpointV1 = /* @__PURE__ */ __name((endpoint) => parseUrl(endpoint.url), "toEndpointV1"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/types/EndpointError.js +var init_EndpointError = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/types/EndpointError.js"() { + init_endpoints(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/region-config-resolver/awsRegionConfig.js +var init_awsRegionConfig = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/region-config-resolver/awsRegionConfig.js"() { + init_config(); + init_config(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/region-config-resolver/stsRegionDefaultResolver.js +function stsRegionDefaultResolver(loaderConfig = {}) { + return loadConfig({ + ...NODE_REGION_CONFIG_OPTIONS, + async default() { + if (!warning.silence) { + console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."); + } + return "us-east-1"; + } + }, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }); +} +var warning; +var init_stsRegionDefaultResolver = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/region-config-resolver/stsRegionDefaultResolver.js"() { + init_config(); + __name(stsRegionDefaultResolver, "stsRegionDefaultResolver"); + warning = { + silence: false + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/region-config-resolver/extensions.js +var getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration; +var init_extensions = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/region-config-resolver/extensions.js"() { + getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + return { + setRegion(region) { + runtimeConfig.region = region; + }, + region() { + return runtimeConfig.region; + } + }; + }, "getAwsRegionExtensionConfiguration"); + resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => { + return { + region: awsRegionExtensionConfiguration.region() + }; + }, "resolveAwsRegionExtensionConfiguration"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js +var client_exports2 = {}; +__export(client_exports2, { + DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID, + EndpointError: () => EndpointError, + NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS, + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, + UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, + awsEndpointFunctions: () => awsEndpointFunctions, + createDefaultUserAgentProvider: () => createDefaultUserAgentProvider, + createUserAgentStringParsingProvider: () => createUserAgentStringParsingProvider, + crtAvailability: () => crtAvailability, + defaultUserAgent: () => defaultUserAgent, + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion2, + fallback: () => fallback, + getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration, + getHostHeaderPlugin: () => getHostHeaderPlugin, + getLoggerPlugin: () => getLoggerPlugin, + getLongPollPlugin: () => getLongPollPlugin, + getRecursionDetectionPlugin: () => getRecursionDetectionPlugin, + getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, + getUserAgentPlugin: () => getUserAgentPlugin, + getUserAgentPrefix: () => getUserAgentPrefix, + hostHeaderMiddleware: () => hostHeaderMiddleware, + hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, + isIpAddress: () => isIpAddress, + isVirtualHostableS3Bucket: () => isVirtualHostableS3Bucket, + loggerMiddleware: () => loggerMiddleware, + loggerMiddlewareOptions: () => loggerMiddlewareOptions, + parseArn: () => parseArn, + partition: () => partition, + recursionDetectionMiddleware: () => recursionDetectionMiddleware, + recursionDetectionMiddlewareOptions: () => recursionDetectionMiddlewareOptions, + resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration, + resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig, + resolveEndpoint: () => resolveEndpoint, + resolveHostHeaderConfig: () => resolveHostHeaderConfig, + resolveRegionConfig: () => resolveRegionConfig, + resolveUserAgentConfig: () => resolveUserAgentConfig, + setCredentialFeature: () => setCredentialFeature, + setFeature: () => setFeature, + setPartitionInfo: () => setPartitionInfo, + setTokenFeature: () => setTokenFeature, + state: () => state, + stsRegionDefaultResolver: () => stsRegionDefaultResolver, + stsRegionWarning: () => warning, + toEndpointV1: () => toEndpointV1, + useDefaultPartitionInfo: () => useDefaultPartitionInfo, + userAgentMiddleware: () => userAgentMiddleware +}); +var init_client2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js"() { + init_emitWarningIfUnsupportedVersion(); + init_longPollMiddleware(); + init_setCredentialFeature(); + init_setFeature(); + init_setTokenFeature(); + init_hostHeaderMiddleware(); + init_loggerMiddleware(); + init_configuration(); + init_getRecursionDetectionPlugin(); + init_recursionDetectionMiddleware(); + init_configurations2(); + init_user_agent_middleware(); + init_defaultUserAgent(); + init_nodeAppIdConfigOptions(); + init_defaultUserAgent2(); + init_createUserAgentStringParsingProvider(); + init_aws(); + init_resolveEndpoint(); + init_resolveDefaultAwsRegionalEndpointsConfig(); + init_isIpAddress(); + init_isVirtualHostableS3Bucket(); + init_parseArn(); + init_partition(); + init_EndpointError(); + init_awsRegionConfig(); + init_stsRegionDefaultResolver(); + init_extensions(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksumAlgorithmForRequest.js +var getChecksumAlgorithmForRequest; +var init_getChecksumAlgorithmForRequest = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksumAlgorithmForRequest.js"() { + init_constants(); + getChecksumAlgorithmForRequest = /* @__PURE__ */ __name((input2, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => { + if (!requestAlgorithmMember) { + return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired ? DEFAULT_CHECKSUM_ALGORITHM : void 0; + } + if (!input2[requestAlgorithmMember]) { + return void 0; + } + const checksumAlgorithm = input2[requestAlgorithmMember]; + return checksumAlgorithm; + }, "getChecksumAlgorithmForRequest"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksumLocationName.js +var getChecksumLocationName; +var init_getChecksumLocationName = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksumLocationName.js"() { + init_constants(); + getChecksumLocationName = /* @__PURE__ */ __name((algorithm) => algorithm === ChecksumAlgorithm.MD5 ? "content-md5" : `x-amz-checksum-${algorithm.toLowerCase()}`, "getChecksumLocationName"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/hasHeader.js +var hasHeader; +var init_hasHeader = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/hasHeader.js"() { + hasHeader = /* @__PURE__ */ __name((header, headers) => { + const soughtHeader = header.toLowerCase(); + for (const headerName of Object.keys(headers)) { + if (soughtHeader === headerName.toLowerCase()) { + return true; + } + } + return false; + }, "hasHeader"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/hasHeaderWithPrefix.js +var hasHeaderWithPrefix; +var init_hasHeaderWithPrefix = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/hasHeaderWithPrefix.js"() { + hasHeaderWithPrefix = /* @__PURE__ */ __name((headerPrefix, headers) => { + const soughtHeaderPrefix = headerPrefix.toLowerCase(); + for (const headerName of Object.keys(headers)) { + if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) { + return true; + } + } + return false; + }, "hasHeaderWithPrefix"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/isStreaming.js +var isStreaming; +var init_isStreaming = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/isStreaming.js"() { + init_serde(); + isStreaming = /* @__PURE__ */ __name((body) => body !== void 0 && typeof body !== "string" && !ArrayBuffer.isView(body) && !isArrayBuffer(body), "isStreaming"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc32c/Crc32cJs.js +var T, Crc32cJs; +var init_Crc32cJs = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc32c/Crc32cJs.js"() { + T = new Uint32Array(256); + for (let i5 = 0; i5 < 256; ++i5) { + let c5 = i5; + for (let j5 = 0; j5 < 8; ++j5) { + c5 = c5 & 1 ? 2197175160 ^ c5 >>> 1 : c5 >>> 1; + } + T[i5] = c5 >>> 0; + } + Crc32cJs = class { + static { + __name(this, "Crc32cJs"); + } + digestLength = 4; + crc = 4294967295; + update(data) { + let crc = this.crc; + for (let i5 = 0; i5 < data.length; ++i5) { + crc = crc >>> 8 ^ T[(crc ^ data[i5]) & 255]; + } + this.crc = crc; + } + async digest() { + const value = (this.crc ^ 4294967295) >>> 0; + const out = new Uint8Array(4); + out[0] = value >>> 24; + out[1] = value >>> 16 & 255; + out[2] = value >>> 8 & 255; + out[3] = value & 255; + return out; + } + reset() { + this.crc = 4294967295; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc32c/Crc32cNode.js +var Crc32cNode; +var init_Crc32cNode = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc32c/Crc32cNode.js"() { + init_Crc32cJs(); + Crc32cNode = Crc32cJs; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc64-nvme/crc64-nvme-crt-container.js +var crc64NvmeCrtContainer; +var init_crc64_nvme_crt_container = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc64-nvme/crc64-nvme-crt-container.js"() { + crc64NvmeCrtContainer = { + CrtCrc64Nvme: null + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc64-nvme/Crc64NvmeJs.js +var generateCRC64NVMETable, CRC64_NVME_REVERSED_TABLE, t0, t1, t2, t3, t4, t5, t6, t7, ensureTablesInitialized, Crc64NvmeJs; +var init_Crc64NvmeJs = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc64-nvme/Crc64NvmeJs.js"() { + generateCRC64NVMETable = /* @__PURE__ */ __name(() => { + const sliceLength = 8; + const tables = new Array(sliceLength); + for (let slice = 0; slice < sliceLength; slice++) { + const table = new Array(512); + for (let i5 = 0; i5 < 256; i5++) { + let crc = BigInt(i5); + for (let j5 = 0; j5 < 8 * (slice + 1); j5++) { + if (crc & 1n) { + crc = crc >> 1n ^ 0x9a6c9329ac4bc9b5n; + } else { + crc = crc >> 1n; + } + } + table[i5 * 2] = Number(crc >> 32n & 0xffffffffn); + table[i5 * 2 + 1] = Number(crc & 0xffffffffn); + } + tables[slice] = new Uint32Array(table); + } + return tables; + }, "generateCRC64NVMETable"); + ensureTablesInitialized = /* @__PURE__ */ __name(() => { + if (!CRC64_NVME_REVERSED_TABLE) { + CRC64_NVME_REVERSED_TABLE = generateCRC64NVMETable(); + [t0, t1, t2, t3, t4, t5, t6, t7] = CRC64_NVME_REVERSED_TABLE; + } + }, "ensureTablesInitialized"); + Crc64NvmeJs = class { + static { + __name(this, "Crc64NvmeJs"); + } + c1 = 0; + c2 = 0; + constructor() { + ensureTablesInitialized(); + this.reset(); + } + update(data) { + const len = data.length; + let i5 = 0; + let crc1 = this.c1; + let crc2 = this.c2; + while (i5 + 8 <= len) { + const idx0 = ((crc2 ^ data[i5++]) & 255) << 1; + const idx1 = ((crc2 >>> 8 ^ data[i5++]) & 255) << 1; + const idx2 = ((crc2 >>> 16 ^ data[i5++]) & 255) << 1; + const idx3 = ((crc2 >>> 24 ^ data[i5++]) & 255) << 1; + const idx4 = ((crc1 ^ data[i5++]) & 255) << 1; + const idx5 = ((crc1 >>> 8 ^ data[i5++]) & 255) << 1; + const idx6 = ((crc1 >>> 16 ^ data[i5++]) & 255) << 1; + const idx7 = ((crc1 >>> 24 ^ data[i5++]) & 255) << 1; + crc1 = t7[idx0] ^ t6[idx1] ^ t5[idx2] ^ t4[idx3] ^ t3[idx4] ^ t2[idx5] ^ t1[idx6] ^ t0[idx7]; + crc2 = t7[idx0 + 1] ^ t6[idx1 + 1] ^ t5[idx2 + 1] ^ t4[idx3 + 1] ^ t3[idx4 + 1] ^ t2[idx5 + 1] ^ t1[idx6 + 1] ^ t0[idx7 + 1]; + } + while (i5 < len) { + const idx = ((crc2 ^ data[i5]) & 255) << 1; + crc2 = (crc2 >>> 8 | (crc1 & 255) << 24) >>> 0; + crc1 = crc1 >>> 8 ^ t0[idx]; + crc2 ^= t0[idx + 1]; + ++i5; + } + this.c1 = crc1; + this.c2 = crc2; + } + async digest() { + const c1 = this.c1 ^ 4294967295; + const c22 = this.c2 ^ 4294967295; + return new Uint8Array([ + c1 >>> 24, + c1 >>> 16 & 255, + c1 >>> 8 & 255, + c1 & 255, + c22 >>> 24, + c22 >>> 16 & 255, + c22 >>> 8 & 255, + c22 & 255 + ]); + } + reset() { + this.c1 = 4294967295; + this.c2 = 4294967295; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc64-nvme/Crc64Nvme.js +var Crc64Nvme; +var init_Crc64Nvme = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/crc64-nvme/Crc64Nvme.js"() { + init_crc64_nvme_crt_container(); + init_Crc64NvmeJs(); + Crc64Nvme = class { + static { + __name(this, "Crc64Nvme"); + } + impl; + constructor() { + const Crt = crc64NvmeCrtContainer.CrtCrc64Nvme; + this.impl = Crt ? new Crt() : new Crc64NvmeJs(); + } + update(data) { + this.impl.update(data); + } + async digest() { + return this.impl.digest(); + } + reset() { + this.impl.reset(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/index.js +var init_crc = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/crc/index.js"() { + init_Crc32cNode(); + init_Crc64Nvme(); + init_checksum(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/types.js +var CLIENT_SUPPORTED_ALGORITHMS, PRIORITY_ORDER_ALGORITHMS; +var init_types = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/types.js"() { + init_constants(); + CLIENT_SUPPORTED_ALGORITHMS = [ + ChecksumAlgorithm.CRC32, + ChecksumAlgorithm.CRC32C, + ChecksumAlgorithm.CRC64NVME, + ChecksumAlgorithm.SHA1, + ChecksumAlgorithm.SHA256 + ]; + PRIORITY_ORDER_ALGORITHMS = [ + ChecksumAlgorithm.SHA256, + ChecksumAlgorithm.SHA1, + ChecksumAlgorithm.CRC32, + ChecksumAlgorithm.CRC32C, + ChecksumAlgorithm.CRC64NVME + ]; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/selectChecksumAlgorithmFunction.js +var selectChecksumAlgorithmFunction; +var init_selectChecksumAlgorithmFunction = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/selectChecksumAlgorithmFunction.js"() { + init_crc(); + init_constants(); + init_types(); + selectChecksumAlgorithmFunction = /* @__PURE__ */ __name((checksumAlgorithm, config3) => { + const { checksumAlgorithms = {} } = config3; + switch (checksumAlgorithm) { + case ChecksumAlgorithm.MD5: + return checksumAlgorithms?.MD5 ?? config3.md5; + case ChecksumAlgorithm.CRC32: + return checksumAlgorithms?.CRC32 ?? Crc32Node; + case ChecksumAlgorithm.CRC32C: + return checksumAlgorithms?.CRC32C ?? Crc32cNode; + case ChecksumAlgorithm.CRC64NVME: + return checksumAlgorithms?.CRC64NVME ?? Crc64Nvme; + case ChecksumAlgorithm.SHA1: + return checksumAlgorithms?.SHA1 ?? config3.sha1; + case ChecksumAlgorithm.SHA256: + return checksumAlgorithms?.SHA256 ?? config3.sha256; + default: + if (checksumAlgorithms?.[checksumAlgorithm]) { + return checksumAlgorithms[checksumAlgorithm]; + } + throw new Error(`The checksum algorithm "${checksumAlgorithm}" is not supported by the client. Select one of ${CLIENT_SUPPORTED_ALGORITHMS}, or provide an implementation to the client constructor checksums field.`); + } + }, "selectChecksumAlgorithmFunction"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/stringHasher.js +var stringHasher; +var init_stringHasher = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/stringHasher.js"() { + init_serde(); + stringHasher = /* @__PURE__ */ __name((checksumAlgorithmFn, body) => { + const hash3 = new checksumAlgorithmFn(); + hash3.update(toUint8Array(body || "")); + return hash3.digest(); + }, "stringHasher"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/flexibleChecksumsMiddleware.js +var flexibleChecksumsMiddlewareOptions, flexibleChecksumsMiddleware; +var init_flexibleChecksumsMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/flexibleChecksumsMiddleware.js"() { + init_client2(); + init_protocols(); + init_serde(); + init_constants(); + init_getChecksumAlgorithmForRequest(); + init_getChecksumLocationName(); + init_hasHeader(); + init_hasHeaderWithPrefix(); + init_isStreaming(); + init_selectChecksumAlgorithmFunction(); + init_stringHasher(); + flexibleChecksumsMiddlewareOptions = { + name: "flexibleChecksumsMiddleware", + step: "build", + tags: ["BODY_CHECKSUM"], + override: true + }; + flexibleChecksumsMiddleware = /* @__PURE__ */ __name((config3, middlewareConfig) => (next, context) => async (args) => { + if (!HttpRequest.isInstance(args.request)) { + return next(args); + } + if (hasHeaderWithPrefix("x-amz-checksum-", args.request.headers)) { + return next(args); + } + const { request, input: input2 } = args; + const { body: requestBody, headers } = request; + const { base64Encoder, streamHasher } = config3; + const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig; + const requestChecksumCalculation = await config3.requestChecksumCalculation(); + const requestAlgorithmMemberName = requestAlgorithmMember?.name; + const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader; + if (requestAlgorithmMemberName && !input2[requestAlgorithmMemberName]) { + if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) { + input2[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM; + if (requestAlgorithmMemberHttpHeader) { + headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM; + } + } + } + const checksumAlgorithm = getChecksumAlgorithmForRequest(input2, { + requestChecksumRequired, + requestAlgorithmMember: requestAlgorithmMember?.name, + requestChecksumCalculation + }); + let updatedBody = requestBody; + let updatedHeaders = headers; + if (checksumAlgorithm) { + switch (checksumAlgorithm) { + case ChecksumAlgorithm.CRC32: + setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_CRC32", "U"); + break; + case ChecksumAlgorithm.CRC32C: + setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_CRC32C", "V"); + break; + case ChecksumAlgorithm.CRC64NVME: + setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_CRC64", "W"); + break; + case ChecksumAlgorithm.SHA1: + setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_SHA1", "X"); + break; + case ChecksumAlgorithm.SHA256: + setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_SHA256", "Y"); + break; + } + const checksumLocationName = getChecksumLocationName(checksumAlgorithm); + const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config3); + if (isStreaming(requestBody)) { + const { getAwsChunkedEncodingStream, bodyLengthChecker } = config3; + updatedBody = getAwsChunkedEncodingStream(typeof config3.requestStreamBufferSize === "number" && config3.requestStreamBufferSize >= 8 * 1024 ? createBufferedReadable(requestBody, config3.requestStreamBufferSize, context.logger) : requestBody, { + base64Encoder, + bodyLengthChecker, + checksumLocationName, + checksumAlgorithmFn, + streamHasher + }); + updatedHeaders = { + ...headers, + "content-encoding": headers["content-encoding"] ? `${headers["content-encoding"]},aws-chunked` : "aws-chunked", + "transfer-encoding": "chunked", + "x-amz-decoded-content-length": headers["content-length"], + "x-amz-content-sha256": "STREAMING-UNSIGNED-PAYLOAD-TRAILER", + "x-amz-trailer": checksumLocationName + }; + delete updatedHeaders["content-length"]; + } else if (!hasHeader(checksumLocationName, headers)) { + const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody); + updatedHeaders = { + ...headers, + [checksumLocationName]: base64Encoder(rawChecksum) + }; + } + } + try { + const result = await next({ + ...args, + request: { + ...request, + headers: updatedHeaders, + body: updatedBody + } + }); + return result; + } catch (e5) { + if (e5 instanceof Error && e5.name === "InvalidChunkSizeError") { + try { + if (!e5.message.endsWith(".")) { + e5.message += "."; + } + e5.message += " Set [requestStreamBufferSize=number e.g. 65_536] in client constructor to instruct AWS SDK to buffer your input stream."; + } catch (ignored) { + } + } + throw e5; + } + }, "flexibleChecksumsMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/flexibleChecksumsInputMiddleware.js +var flexibleChecksumsInputMiddlewareOptions, flexibleChecksumsInputMiddleware; +var init_flexibleChecksumsInputMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/flexibleChecksumsInputMiddleware.js"() { + init_client2(); + init_constants(); + flexibleChecksumsInputMiddlewareOptions = { + name: "flexibleChecksumsInputMiddleware", + toMiddleware: "serializerMiddleware", + relation: "before", + tags: ["BODY_CHECKSUM"], + override: true + }; + flexibleChecksumsInputMiddleware = /* @__PURE__ */ __name((config3, middlewareConfig) => (next, context) => async (args) => { + const input2 = args.input; + const { requestValidationModeMember } = middlewareConfig; + const requestChecksumCalculation = await config3.requestChecksumCalculation(); + const responseChecksumValidation = await config3.responseChecksumValidation(); + switch (requestChecksumCalculation) { + case RequestChecksumCalculation.WHEN_REQUIRED: + setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED", "a"); + break; + case RequestChecksumCalculation.WHEN_SUPPORTED: + setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED", "Z"); + break; + } + switch (responseChecksumValidation) { + case ResponseChecksumValidation.WHEN_REQUIRED: + setFeature(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED", "c"); + break; + case ResponseChecksumValidation.WHEN_SUPPORTED: + setFeature(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED", "b"); + break; + } + if (requestValidationModeMember && !input2[requestValidationModeMember]) { + if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) { + input2[requestValidationModeMember] = "ENABLED"; + } + } + return next(args); + }, "flexibleChecksumsInputMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksumAlgorithmListForResponse.js +var getChecksumAlgorithmListForResponse; +var init_getChecksumAlgorithmListForResponse = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksumAlgorithmListForResponse.js"() { + init_types(); + getChecksumAlgorithmListForResponse = /* @__PURE__ */ __name((responseAlgorithms = []) => { + const validChecksumAlgorithms = []; + let i5 = PRIORITY_ORDER_ALGORITHMS.length; + for (const algorithm of responseAlgorithms) { + const priority = PRIORITY_ORDER_ALGORITHMS.indexOf(algorithm); + if (priority !== -1) { + validChecksumAlgorithms[priority] = algorithm; + } else { + validChecksumAlgorithms[i5++] = algorithm; + } + } + return validChecksumAlgorithms.filter(Boolean); + }, "getChecksumAlgorithmListForResponse"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/isChecksumWithPartNumber.js +var isChecksumWithPartNumber; +var init_isChecksumWithPartNumber = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/isChecksumWithPartNumber.js"() { + isChecksumWithPartNumber = /* @__PURE__ */ __name((checksum) => { + const lastHyphenIndex = checksum.lastIndexOf("-"); + if (lastHyphenIndex !== -1) { + const numberPart = checksum.slice(lastHyphenIndex + 1); + if (!numberPart.startsWith("0")) { + const number4 = parseInt(numberPart, 10); + if (!isNaN(number4) && number4 >= 1 && number4 <= 1e4) { + return true; + } + } + } + return false; + }, "isChecksumWithPartNumber"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksum.js +var getChecksum; +var init_getChecksum = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getChecksum.js"() { + init_stringHasher(); + getChecksum = /* @__PURE__ */ __name(async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body)), "getChecksum"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/validateChecksumFromResponse.js +var validateChecksumFromResponse; +var init_validateChecksumFromResponse = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/validateChecksumFromResponse.js"() { + init_serde(); + init_constants(); + init_getChecksum(); + init_getChecksumAlgorithmListForResponse(); + init_getChecksumLocationName(); + init_isStreaming(); + init_selectChecksumAlgorithmFunction(); + validateChecksumFromResponse = /* @__PURE__ */ __name(async (response, { config: config3, responseAlgorithms, logger }) => { + const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms); + const { body: responseBody, headers: responseHeaders } = response; + for (const algorithm of checksumAlgorithms) { + const responseHeader = getChecksumLocationName(algorithm); + const checksumFromResponse = responseHeaders[responseHeader]; + if (checksumFromResponse) { + let checksumAlgorithmFn; + try { + checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config3); + } catch (error62) { + if (algorithm === ChecksumAlgorithm.CRC64NVME) { + logger?.warn(`Skipping ${ChecksumAlgorithm.CRC64NVME} checksum validation: ${error62.message}`); + continue; + } + throw error62; + } + const { base64Encoder } = config3; + if (isStreaming(responseBody)) { + response.body = createChecksumStream({ + expectedChecksum: checksumFromResponse, + checksumSourceLocation: responseHeader, + checksum: new checksumAlgorithmFn(), + source: responseBody, + base64Encoder + }); + return; + } + const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder }); + if (checksum === checksumFromResponse) { + break; + } + throw new Error(`Checksum mismatch: expected "${checksum}" but received "${checksumFromResponse}" in response header "${responseHeader}".`); + } + } + }, "validateChecksumFromResponse"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/flexibleChecksumsResponseMiddleware.js +var flexibleChecksumsResponseMiddlewareOptions, flexibleChecksumsResponseMiddleware; +var init_flexibleChecksumsResponseMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/flexibleChecksumsResponseMiddleware.js"() { + init_protocols(); + init_getChecksumAlgorithmListForResponse(); + init_getChecksumLocationName(); + init_isChecksumWithPartNumber(); + init_validateChecksumFromResponse(); + flexibleChecksumsResponseMiddlewareOptions = { + name: "flexibleChecksumsResponseMiddleware", + toMiddleware: "deserializerMiddleware", + relation: "after", + tags: ["BODY_CHECKSUM"], + override: true + }; + flexibleChecksumsResponseMiddleware = /* @__PURE__ */ __name((config3, middlewareConfig) => (next, context) => async (args) => { + if (!HttpRequest.isInstance(args.request)) { + return next(args); + } + const input2 = args.input; + const result = await next(args); + const response = result.response; + const { requestValidationModeMember, responseAlgorithms } = middlewareConfig; + if (requestValidationModeMember && input2[requestValidationModeMember] === "ENABLED") { + const { clientName, commandName } = context; + const customChecksumAlgorithms = Object.keys(config3.checksumAlgorithms ?? {}).filter((algorithm) => { + const responseHeader = getChecksumLocationName(algorithm); + return response.headers[responseHeader] !== void 0; + }); + const algoList = getChecksumAlgorithmListForResponse([ + ...responseAlgorithms ?? [], + ...customChecksumAlgorithms + ]); + const isS3WholeObjectMultipartGetResponseChecksum = clientName === "S3Client" && commandName === "GetObjectCommand" && algoList.every((algorithm) => { + const responseHeader = getChecksumLocationName(algorithm); + const checksumFromResponse = response.headers[responseHeader]; + return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse); + }); + if (isS3WholeObjectMultipartGetResponseChecksum) { + return result; + } + await validateChecksumFromResponse(response, { + config: config3, + responseAlgorithms: algoList, + logger: context.logger + }); + } + return result; + }, "flexibleChecksumsResponseMiddleware"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getFlexibleChecksumsPlugin.js +var getFlexibleChecksumsPlugin; +var init_getFlexibleChecksumsPlugin = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/getFlexibleChecksumsPlugin.js"() { + init_flexibleChecksumsInputMiddleware(); + init_flexibleChecksumsMiddleware(); + init_flexibleChecksumsResponseMiddleware(); + getFlexibleChecksumsPlugin = /* @__PURE__ */ __name((config3, middlewareConfig) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(flexibleChecksumsMiddleware(config3, middlewareConfig), flexibleChecksumsMiddlewareOptions); + clientStack.addRelativeTo(flexibleChecksumsInputMiddleware(config3, middlewareConfig), flexibleChecksumsInputMiddlewareOptions); + clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config3, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions); + }, "applyToStack") + }), "getFlexibleChecksumsPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/resolveFlexibleChecksumsConfig.js +var resolveFlexibleChecksumsConfig; +var init_resolveFlexibleChecksumsConfig = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/resolveFlexibleChecksumsConfig.js"() { + init_client(); + init_constants(); + resolveFlexibleChecksumsConfig = /* @__PURE__ */ __name((input2) => { + const { requestChecksumCalculation, responseChecksumValidation, requestStreamBufferSize } = input2; + return Object.assign(input2, { + requestChecksumCalculation: normalizeProvider(requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION), + responseChecksumValidation: normalizeProvider(responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION), + requestStreamBufferSize: Number(requestStreamBufferSize ?? 0), + checksumAlgorithms: input2.checksumAlgorithms ?? {} + }); + }, "resolveFlexibleChecksumsConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/index.js +var flexible_checksums_exports = {}; +__export(flexible_checksums_exports, { + CONFIG_REQUEST_CHECKSUM_CALCULATION: () => CONFIG_REQUEST_CHECKSUM_CALCULATION, + CONFIG_RESPONSE_CHECKSUM_VALIDATION: () => CONFIG_RESPONSE_CHECKSUM_VALIDATION, + ChecksumAlgorithm: () => ChecksumAlgorithm, + ChecksumLocation: () => ChecksumLocation, + DEFAULT_CHECKSUM_ALGORITHM: () => DEFAULT_CHECKSUM_ALGORITHM, + DEFAULT_REQUEST_CHECKSUM_CALCULATION: () => DEFAULT_REQUEST_CHECKSUM_CALCULATION, + DEFAULT_RESPONSE_CHECKSUM_VALIDATION: () => DEFAULT_RESPONSE_CHECKSUM_VALIDATION, + ENV_REQUEST_CHECKSUM_CALCULATION: () => ENV_REQUEST_CHECKSUM_CALCULATION, + ENV_RESPONSE_CHECKSUM_VALIDATION: () => ENV_RESPONSE_CHECKSUM_VALIDATION, + NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS: () => NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS, + NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS: () => NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS, + RequestChecksumCalculation: () => RequestChecksumCalculation, + ResponseChecksumValidation: () => ResponseChecksumValidation, + flexibleChecksumsMiddleware: () => flexibleChecksumsMiddleware, + flexibleChecksumsMiddlewareOptions: () => flexibleChecksumsMiddlewareOptions, + getFlexibleChecksumsPlugin: () => getFlexibleChecksumsPlugin, + resolveFlexibleChecksumsConfig: () => resolveFlexibleChecksumsConfig +}); +var init_flexible_checksums = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/flexible-checksums/index.js"() { + init_NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS(); + init_NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS(); + init_constants(); + init_flexibleChecksumsMiddleware(); + init_getFlexibleChecksumsPlugin(); + init_resolveFlexibleChecksumsConfig(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-check-content-length-header/check-content-length-header.js +function checkContentLengthHeader() { + return (next, context) => async (args) => { + const { request } = args; + if (HttpRequest.isInstance(request)) { + if (!(CONTENT_LENGTH_HEADER2 in request.headers) && !(DECODED_CONTENT_LENGTH_HEADER in request.headers)) { + const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`; + if (typeof context?.logger?.warn === "function" && !(context.logger instanceof NoOpLogger)) { + context.logger.warn(message); + } else { + console.warn(message); + } + } + } + return next({ ...args }); + }; +} +var CONTENT_LENGTH_HEADER2, DECODED_CONTENT_LENGTH_HEADER, checkContentLengthHeaderMiddlewareOptions, getCheckContentLengthHeaderPlugin; +var init_check_content_length_header = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-check-content-length-header/check-content-length-header.js"() { + init_client(); + init_protocols(); + CONTENT_LENGTH_HEADER2 = "content-length"; + DECODED_CONTENT_LENGTH_HEADER = "x-amz-decoded-content-length"; + __name(checkContentLengthHeader, "checkContentLengthHeader"); + checkContentLengthHeaderMiddlewareOptions = { + step: "finalizeRequest", + tags: ["CHECK_CONTENT_LENGTH_HEADER"], + name: "getCheckContentLengthHeaderPlugin", + override: true + }; + getCheckContentLengthHeaderPlugin = /* @__PURE__ */ __name((unused) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions); + }, "applyToStack") + }), "getCheckContentLengthHeaderPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-region-redirect/region-redirect-endpoint-middleware.js +var regionRedirectEndpointMiddleware, regionRedirectEndpointMiddlewareOptions; +var init_region_redirect_endpoint_middleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-region-redirect/region-redirect-endpoint-middleware.js"() { + regionRedirectEndpointMiddleware = /* @__PURE__ */ __name((config3) => { + return (next, context) => async (args) => { + const originalRegion = await config3.region(); + const regionProviderRef = config3.region; + let unlock = /* @__PURE__ */ __name(() => { + }, "unlock"); + if (context.__s3RegionRedirect) { + Object.defineProperty(config3, "region", { + writable: false, + value: /* @__PURE__ */ __name(async () => { + return context.__s3RegionRedirect; + }, "value") + }); + unlock = /* @__PURE__ */ __name(() => Object.defineProperty(config3, "region", { + writable: true, + value: regionProviderRef + }), "unlock"); + } + try { + const result = await next(args); + if (context.__s3RegionRedirect) { + unlock(); + const region = await config3.region(); + if (originalRegion !== region) { + throw new Error("Region was not restored following S3 region redirect."); + } + } + return result; + } catch (e5) { + unlock(); + throw e5; + } + }; + }, "regionRedirectEndpointMiddleware"); + regionRedirectEndpointMiddlewareOptions = { + tags: ["REGION_REDIRECT", "S3"], + name: "regionRedirectEndpointMiddleware", + override: true, + relation: "before", + toMiddleware: "endpointV2Middleware" + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-region-redirect/region-redirect-middleware.js +function regionRedirectMiddleware(clientConfig) { + return (next, context) => async (args) => { + try { + return await next(args); + } catch (err) { + if (clientConfig.followRegionRedirects) { + const statusCode = err?.$metadata?.httpStatusCode; + const isHeadBucket = context.commandName === "HeadBucketCommand"; + const bucketRegionHeader = err?.$response?.headers?.["x-amz-bucket-region"]; + if (bucketRegionHeader) { + if (statusCode === 301 || statusCode === 400 && (err?.name === "IllegalLocationConstraintException" || isHeadBucket)) { + try { + const actualRegion = bucketRegionHeader; + context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`); + context.__s3RegionRedirect = actualRegion; + setFeature(context, "S3_REGION_REDIRECT", "Ah"); + } catch (e5) { + throw new Error("Region redirect failed: " + e5); + } + return next(args); + } + } + } + throw err; + } + }; +} +var regionRedirectMiddlewareOptions, getRegionRedirectMiddlewarePlugin; +var init_region_redirect_middleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-region-redirect/region-redirect-middleware.js"() { + init_client2(); + init_region_redirect_endpoint_middleware(); + __name(regionRedirectMiddleware, "regionRedirectMiddleware"); + regionRedirectMiddlewareOptions = { + step: "initialize", + tags: ["REGION_REDIRECT", "S3"], + name: "regionRedirectMiddleware", + override: true + }; + getRegionRedirectMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions); + clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions); + }, "applyToStack") + }), "getRegionRedirectMiddlewarePlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/S3ExpressIdentityCache.js +var S3ExpressIdentityCache; +var init_S3ExpressIdentityCache = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/S3ExpressIdentityCache.js"() { + S3ExpressIdentityCache = class _S3ExpressIdentityCache { + static { + __name(this, "S3ExpressIdentityCache"); + } + data; + lastPurgeTime = Date.now(); + static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 3e4; + constructor(data = {}) { + this.data = data; + } + get(key) { + const entry = this.data[key]; + if (!entry) { + return; + } + return entry; + } + set(key, entry) { + this.data[key] = entry; + return entry; + } + delete(key) { + delete this.data[key]; + } + async purgeExpired() { + const now = Date.now(); + if (this.lastPurgeTime + _S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) { + return; + } + for (const key in this.data) { + const entry = this.data[key]; + if (!entry.isRefreshing) { + const credential = await entry.identity; + if (credential.expiration) { + if (credential.expiration.getTime() < now) { + delete this.data[key]; + } + } + } + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/S3ExpressIdentityCacheEntry.js +var S3ExpressIdentityCacheEntry; +var init_S3ExpressIdentityCacheEntry = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/S3ExpressIdentityCacheEntry.js"() { + S3ExpressIdentityCacheEntry = class { + static { + __name(this, "S3ExpressIdentityCacheEntry"); + } + _identity; + isRefreshing; + accessed; + constructor(_identity, isRefreshing = false, accessed = Date.now()) { + this._identity = _identity; + this.isRefreshing = isRefreshing; + this.accessed = accessed; + } + get identity() { + this.accessed = Date.now(); + return this._identity; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/S3ExpressIdentityProviderImpl.js +var S3ExpressIdentityProviderImpl; +var init_S3ExpressIdentityProviderImpl = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/S3ExpressIdentityProviderImpl.js"() { + init_S3ExpressIdentityCache(); + init_S3ExpressIdentityCacheEntry(); + S3ExpressIdentityProviderImpl = class _S3ExpressIdentityProviderImpl { + static { + __name(this, "S3ExpressIdentityProviderImpl"); + } + createSessionFn; + cache; + static REFRESH_WINDOW_MS = 6e4; + constructor(createSessionFn, cache5 = new S3ExpressIdentityCache()) { + this.createSessionFn = createSessionFn; + this.cache = cache5; + } + async getS3ExpressIdentity(awsIdentity, identityProperties) { + const key = identityProperties.Bucket; + const { cache: cache5 } = this; + const entry = cache5.get(key); + if (entry) { + return entry.identity.then((identity) => { + const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now(); + if (isExpired) { + return cache5.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity; + } + const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + _S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS; + if (isExpiringSoon && !entry.isRefreshing) { + entry.isRefreshing = true; + this.getIdentity(key).then((id) => { + cache5.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id))); + }); + } + return identity; + }); + } + return cache5.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity; + } + async getIdentity(key) { + await this.cache.purgeExpired().catch((error62) => { + console.warn("Error while clearing expired entries in S3ExpressIdentityCache: \n" + error62); + }); + const session = await this.createSessionFn(key); + if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) { + throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey."); + } + const identity = { + accessKeyId: session.Credentials.AccessKeyId, + secretAccessKey: session.Credentials.SecretAccessKey, + sessionToken: session.Credentials.SessionToken, + expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : void 0 + }; + return identity; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-configuration/s3Configuration.js +var resolveS3Config; +var init_s3Configuration = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-configuration/s3Configuration.js"() { + init_S3ExpressIdentityProviderImpl(); + resolveS3Config = /* @__PURE__ */ __name((input2, { session }) => { + const [s3ClientProvider, CreateSessionCommandCtor] = session; + const { forcePathStyle, useAccelerateEndpoint, disableMultiregionAccessPoints, followRegionRedirects, s3ExpressIdentityProvider, bucketEndpoint, expectContinueHeader } = input2; + return Object.assign(input2, { + forcePathStyle: forcePathStyle ?? false, + useAccelerateEndpoint: useAccelerateEndpoint ?? false, + disableMultiregionAccessPoints: disableMultiregionAccessPoints ?? false, + followRegionRedirects: followRegionRedirects ?? false, + s3ExpressIdentityProvider: s3ExpressIdentityProvider ?? new S3ExpressIdentityProviderImpl(async (key) => s3ClientProvider().send(new CreateSessionCommandCtor({ + Bucket: key + }))), + bucketEndpoint: bucketEndpoint ?? false, + expectContinueHeader: expectContinueHeader ?? 2097152 + }); + }, "resolveS3Config"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-expires/s3-expires-middleware.js +var s3ExpiresMiddleware, s3ExpiresMiddlewareOptions, getS3ExpiresMiddlewarePlugin; +var init_s3_expires_middleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-expires/s3-expires-middleware.js"() { + init_protocols(); + init_serde(); + s3ExpiresMiddleware = /* @__PURE__ */ __name((config3) => { + return (next, context) => async (args) => { + const result = await next(args); + const { response } = result; + if (HttpResponse.isInstance(response)) { + if (response.headers.expires) { + response.headers.expiresstring = response.headers.expires; + try { + parseRfc7231DateTime(response.headers.expires); + } catch (e5) { + context.logger?.warn(`AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e5}`); + delete response.headers.expires; + } + } + } + return result; + }; + }, "s3ExpiresMiddleware"); + s3ExpiresMiddlewareOptions = { + tags: ["S3"], + name: "s3ExpiresMiddleware", + override: true, + relation: "after", + toMiddleware: "deserializerMiddleware" + }; + getS3ExpiresMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(s3ExpiresMiddleware(clientConfig), s3ExpiresMiddlewareOptions); + }, "applyToStack") + }), "getS3ExpiresMiddlewarePlugin"); + } +}); + +// ../../node_modules/.pnpm/@smithy+signature-v4@5.7.4/node_modules/@smithy/signature-v4/dist-cjs/index.js +var require_dist_cjs2 = __commonJS({ + "../../node_modules/.pnpm/@smithy+signature-v4@5.7.4/node_modules/@smithy/signature-v4/dist-cjs/index.js"(exports) { + var { hasOwn: hasOwn2, fromUtf8: fromUtf82, fromHex, toHex, toUint8Array: toUint8Array2, isArrayBuffer: isArrayBuffer2 } = (init_serde(), __toCommonJS(serde_exports)); + var { normalizeProvider: normalizeProvider3 } = (init_client(), __toCommonJS(client_exports)); + var { escapeUri: escapeUri2, HttpRequest: HttpRequest2 } = (init_protocols(), __toCommonJS(protocols_exports)); + var HeaderFormatter = class { + static { + __name(this, "HeaderFormatter"); + } + format(headers) { + const chunks = []; + for (const headerName in headers) { + if (!hasOwn2(headers, headerName)) + continue; + const bytes = fromUtf82(headerName); + chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName])); + } + const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0)); + let position = 0; + for (const chunk of chunks) { + out.set(chunk, position); + position += chunk.byteLength; + } + return out; + } + formatHeaderValue(header) { + switch (header.type) { + case "boolean": + return Uint8Array.from([header.value ? 0 : 1]); + case "byte": + return Uint8Array.from([2, header.value]); + case "short": + const shortView = new DataView(new ArrayBuffer(3)); + shortView.setUint8(0, 3); + shortView.setInt16(1, header.value, false); + return new Uint8Array(shortView.buffer); + case "integer": + const intView = new DataView(new ArrayBuffer(5)); + intView.setUint8(0, 4); + intView.setInt32(1, header.value, false); + return new Uint8Array(intView.buffer); + case "long": + const longBytes = new Uint8Array(9); + longBytes[0] = 5; + longBytes.set(header.value.bytes, 1); + return longBytes; + case "binary": + const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength)); + binView.setUint8(0, 6); + binView.setUint16(1, header.value.byteLength, false); + const binBytes = new Uint8Array(binView.buffer); + binBytes.set(header.value, 3); + return binBytes; + case "string": + const utf8Bytes = fromUtf82(header.value); + const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength)); + strView.setUint8(0, 7); + strView.setUint16(1, utf8Bytes.byteLength, false); + const strBytes = new Uint8Array(strView.buffer); + strBytes.set(utf8Bytes, 3); + return strBytes; + case "timestamp": + const tsBytes = new Uint8Array(9); + tsBytes[0] = 8; + tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1); + return tsBytes; + case "uuid": + if (!UUID_PATTERN.test(header.value)) { + throw new Error(`Invalid UUID received: ${header.value}`); + } + const uuidBytes = new Uint8Array(17); + uuidBytes[0] = 9; + uuidBytes.set(fromHex(header.value.replace(/-/g, "")), 1); + return uuidBytes; + } + } + }; + var HEADER_VALUE_TYPE; + (function(HEADER_VALUE_TYPE2) { + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["boolTrue"] = 0] = "boolTrue"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["boolFalse"] = 1] = "boolFalse"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["byte"] = 2] = "byte"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["short"] = 3] = "short"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["integer"] = 4] = "integer"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["long"] = 5] = "long"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["byteArray"] = 6] = "byteArray"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["string"] = 7] = "string"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["timestamp"] = 8] = "timestamp"; + HEADER_VALUE_TYPE2[HEADER_VALUE_TYPE2["uuid"] = 9] = "uuid"; + })(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {})); + var UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/; + var Int64 = class _Int64 { + static { + __name(this, "Int64"); + } + bytes; + constructor(bytes) { + this.bytes = bytes; + if (bytes.byteLength !== 8) { + throw new Error("Int64 buffers must be exactly 8 bytes"); + } + } + static fromNumber(number4) { + if (number4 > 9223372036854776e3 || number4 < -9223372036854776e3) { + throw new Error(`${number4} is too large (or, if negative, too small) to represent as an Int64`); + } + const bytes = new Uint8Array(8); + for (let i5 = 7, remaining = Math.abs(Math.round(number4)); i5 > -1 && remaining > 0; i5--, remaining /= 256) { + bytes[i5] = remaining; + } + if (number4 < 0) { + negate(bytes); + } + return new _Int64(bytes); + } + valueOf() { + const bytes = this.bytes.slice(0); + const negative = bytes[0] & 128; + if (negative) { + negate(bytes); + } + return parseInt(toHex(bytes), 16) * (negative ? -1 : 1); + } + toString() { + return String(this.valueOf()); + } + }; + function negate(bytes) { + for (let i5 = 0; i5 < 8; i5++) { + bytes[i5] ^= 255; + } + for (let i5 = 7; i5 > -1; i5--) { + bytes[i5]++; + if (bytes[i5] !== 0) + break; + } + } + __name(negate, "negate"); + var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm"; + var CREDENTIAL_QUERY_PARAM = "X-Amz-Credential"; + var AMZ_DATE_QUERY_PARAM = "X-Amz-Date"; + var SIGNED_HEADERS_QUERY_PARAM = "X-Amz-SignedHeaders"; + var EXPIRES_QUERY_PARAM = "X-Amz-Expires"; + var SIGNATURE_QUERY_PARAM = "X-Amz-Signature"; + var TOKEN_QUERY_PARAM = "X-Amz-Security-Token"; + var REGION_SET_PARAM = "X-Amz-Region-Set"; + var AUTH_HEADER = "authorization"; + var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase(); + var DATE_HEADER = "date"; + var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER]; + var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase(); + var SHA256_HEADER = "x-amz-content-sha256"; + var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase(); + var HOST_HEADER = "host"; + var ALWAYS_UNSIGNABLE_HEADERS = { + authorization: true, + "cache-control": true, + connection: true, + expect: true, + from: true, + "keep-alive": true, + "max-forwards": true, + pragma: true, + referer: true, + te: true, + trailer: true, + "transfer-encoding": true, + upgrade: true, + "user-agent": true, + "x-amzn-trace-id": true + }; + var PROXY_HEADER_PATTERN = /^proxy-/; + var SEC_HEADER_PATTERN = /^sec-/; + var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i]; + var ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256"; + var ALGORITHM_IDENTIFIER_V4A = "AWS4-ECDSA-P256-SHA256"; + var EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD"; + var UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD"; + var MAX_CACHE_SIZE = 50; + var KEY_TYPE_IDENTIFIER = "aws4_request"; + var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7; + var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { + const keys = []; + const serialized = {}; + for (const key in query) { + if (!hasOwn2(query, key)) + continue; + if (key.toLowerCase() === SIGNATURE_HEADER) { + continue; + } + const encodedKey = escapeUri2(key); + keys.push(encodedKey); + const value = query[key]; + if (typeof value === "string") { + serialized[encodedKey] = `${encodedKey}=${escapeUri2(value)}`; + } else if (Array.isArray(value)) { + serialized[encodedKey] = value.slice(0).reduce((encoded, value2) => encoded.concat([`${encodedKey}=${escapeUri2(value2)}`]), []).sort().join("&"); + } + } + return keys.sort().map((key) => serialized[key]).filter((serialized2) => serialized2).join("&"); + }, "getCanonicalQuery"); + var iso8601 = /* @__PURE__ */ __name((time3) => toDate(time3).toISOString().replace(/\.\d{3}Z$/, "Z"), "iso8601"); + var toDate = /* @__PURE__ */ __name((time3) => { + if (typeof time3 === "number") { + return new Date(time3 * 1e3); + } + if (typeof time3 === "string") { + if (Number(time3)) { + return new Date(Number(time3) * 1e3); + } + return new Date(time3); + } + return time3; + }, "toDate"); + var SignatureV4Base = class { + static { + __name(this, "SignatureV4Base"); + } + service; + regionProvider; + credentialProvider; + sha256; + uriEscapePath; + applyChecksum; + constructor({ applyChecksum, credentials, region, service, sha256: sha2562, uriEscapePath = true }) { + this.service = service; + this.sha256 = sha2562; + this.uriEscapePath = uriEscapePath; + this.applyChecksum = typeof applyChecksum === "boolean" ? applyChecksum : true; + this.regionProvider = normalizeProvider3(region); + this.credentialProvider = normalizeProvider3(credentials); + } + createCanonicalRequest(request, canonicalHeaders, payloadHash) { + const sortedHeaders = Object.keys(canonicalHeaders).sort(); + return `${request.method} +${this.getCanonicalPath(request)} +${getCanonicalQuery(request)} +${sortedHeaders.map((name2) => `${name2}:${canonicalHeaders[name2]}`).join("\n")} + +${sortedHeaders.join(";")} +${payloadHash}`; + } + async createStringToSign(longDate, credentialScope, canonicalRequest, algorithmIdentifier) { + const hash3 = new this.sha256(); + hash3.update(toUint8Array2(canonicalRequest)); + const hashedRequest = await hash3.digest(); + return `${algorithmIdentifier} +${longDate} +${credentialScope} +${toHex(hashedRequest)}`; + } + getCanonicalPath({ path: path2 }) { + if (this.uriEscapePath) { + const normalizedPathSegments = []; + for (const pathSegment of path2.split("/")) { + if (pathSegment?.length === 0) + continue; + if (pathSegment === ".") + continue; + if (pathSegment === "..") { + normalizedPathSegments.pop(); + } else { + normalizedPathSegments.push(pathSegment); + } + } + const normalizedPath = `${path2?.startsWith("/") ? "/" : ""}${normalizedPathSegments.join("/")}${normalizedPathSegments.length > 0 && path2?.endsWith("/") ? "/" : ""}`; + const doubleEncoded = escapeUri2(normalizedPath); + return doubleEncoded.replace(/%2F/g, "/"); + } + return path2; + } + validateResolvedCredentials(credentials) { + if (typeof credentials !== "object" || typeof credentials.accessKeyId !== "string" || typeof credentials.secretAccessKey !== "string") { + throw new Error("Resolved credential object is not valid"); + } + } + formatDate(now) { + const longDate = iso8601(now).replace(/[-:]/g, ""); + return { + longDate, + shortDate: longDate.slice(0, 8) + }; + } + getCanonicalHeaderList(headers) { + return Object.keys(headers).sort().join(";"); + } + }; + var signingKeyCache = {}; + var cacheQueue = []; + var createScope = /* @__PURE__ */ __name((shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, "createScope"); + var getSigningKey = /* @__PURE__ */ __name(async (sha256Constructor, credentials, shortDate, region, service) => { + const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId); + const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`; + if (cacheKey in signingKeyCache) { + return signingKeyCache[cacheKey]; + } + cacheQueue.push(cacheKey); + while (cacheQueue.length > MAX_CACHE_SIZE) { + delete signingKeyCache[cacheQueue.shift()]; + } + let key = `AWS4${credentials.secretAccessKey}`; + for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) { + key = await hmac(sha256Constructor, key, signable); + } + return signingKeyCache[cacheKey] = key; + }, "getSigningKey"); + var clearCredentialCache = /* @__PURE__ */ __name(() => { + cacheQueue.length = 0; + Object.keys(signingKeyCache).forEach((cacheKey) => { + delete signingKeyCache[cacheKey]; + }); + }, "clearCredentialCache"); + var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { + const hash3 = new ctor(secret); + hash3.update(toUint8Array2(data)); + return hash3.digest(); + }, "hmac"); + var getCanonicalHeaders = /* @__PURE__ */ __name(({ headers }, unsignableHeaders, signableHeaders) => { + const canonical = {}; + for (const headerName of Object.keys(headers).sort()) { + if (headers[headerName] == void 0) { + continue; + } + const canonicalHeaderName = headerName.toLowerCase(); + if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || unsignableHeaders?.has(canonicalHeaderName) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || SEC_HEADER_PATTERN.test(canonicalHeaderName)) { + if (!signableHeaders || signableHeaders && !signableHeaders.has(canonicalHeaderName)) { + continue; + } + } + canonical[canonicalHeaderName] = headers[headerName].replace(/[\r\n]/g, " ").replace(/[ \t]+/g, " ").replace(/^ | $/g, ""); + } + return canonical; + }, "getCanonicalHeaders"); + var getPayloadHash = /* @__PURE__ */ __name(async ({ headers, body }, hashConstructor) => { + for (const headerName in headers) { + if (!hasOwn2(headers, headerName)) + continue; + if (headerName.toLowerCase() === SHA256_HEADER) { + return headers[headerName]; + } + } + if (body == void 0) { + return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; + } else if (typeof body === "string" || ArrayBuffer.isView(body) || isArrayBuffer2(body)) { + const hashCtor = new hashConstructor(); + hashCtor.update(toUint8Array2(body)); + return toHex(await hashCtor.digest()); + } + return UNSIGNED_PAYLOAD; + }, "getPayloadHash"); + var hasHeader2 = /* @__PURE__ */ __name((soughtHeader, headers) => { + soughtHeader = soughtHeader.toLowerCase(); + for (const headerName in headers) { + if (!hasOwn2(headers, headerName)) + continue; + if (soughtHeader === headerName.toLowerCase()) { + return true; + } + } + return false; + }, "hasHeader"); + var moveHeadersToQuery = /* @__PURE__ */ __name((request, options = {}) => { + const { headers, query = {} } = HttpRequest2.clone(request); + for (const name2 in headers) { + if (!hasOwn2(headers, name2)) + continue; + const lname = name2.toLowerCase(); + if (lname.slice(0, 6) === "x-amz-" && !options.unhoistableHeaders?.has(lname) || options.hoistableHeaders?.has(lname)) { + query[name2] = headers[name2]; + delete headers[name2]; + } + } + return { + ...request, + headers, + query + }; + }, "moveHeadersToQuery"); + var prepareRequest = /* @__PURE__ */ __name((request) => { + request = HttpRequest2.clone(request); + for (const headerName in request.headers) { + if (!hasOwn2(request.headers, headerName)) + continue; + if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { + delete request.headers[headerName]; + } + } + return request; + }, "prepareRequest"); + var SignatureV42 = class extends SignatureV4Base { + static { + __name(this, "SignatureV4"); + } + headerFormatter = new HeaderFormatter(); + constructor({ applyChecksum, credentials, region, service, sha256: sha2562, uriEscapePath = true }) { + super({ + applyChecksum, + credentials, + region, + service, + sha256: sha2562, + uriEscapePath + }); + } + async presign(originalRequest, options = {}) { + const { signingDate = /* @__PURE__ */ new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, hoistableHeaders, signingRegion, signingService } = options; + const credentials = await this.credentialProvider(); + this.validateResolvedCredentials(credentials); + const region = signingRegion ?? await this.regionProvider(); + const { longDate, shortDate } = this.formatDate(signingDate); + if (expiresIn > MAX_PRESIGNED_TTL) { + return Promise.reject("Signature version 4 presigned URLs must have an expiration date less than one week in the future"); + } + const scope = createScope(shortDate, region, signingService ?? this.service); + const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders }); + if (credentials.sessionToken) { + request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken; + } + request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER; + request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`; + request.query[AMZ_DATE_QUERY_PARAM] = longDate; + request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10); + const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); + request.query[SIGNED_HEADERS_QUERY_PARAM] = this.getCanonicalHeaderList(canonicalHeaders); + request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256))); + return request; + } + async sign(toSign, options) { + if (typeof toSign === "string") { + return this.signString(toSign, options); + } else if (toSign.headers && toSign.payload) { + return this.signEvent(toSign, options); + } else if (toSign.message) { + return this.signMessage(toSign, options); + } else { + return this.signRequest(toSign, options); + } + } + async signEvent({ headers, payload }, { signingDate = /* @__PURE__ */ new Date(), priorSignature, signingRegion, signingService, eventStreamCredentials }) { + const region = signingRegion ?? await this.regionProvider(); + const { shortDate, longDate } = this.formatDate(signingDate); + const scope = createScope(shortDate, region, signingService ?? this.service); + const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256); + const hash3 = new this.sha256(); + hash3.update(headers); + const hashedHeaders = toHex(await hash3.digest()); + const stringToSign = [ + EVENT_ALGORITHM_IDENTIFIER, + longDate, + scope, + priorSignature, + hashedHeaders, + hashedPayload + ].join("\n"); + return this.signString(stringToSign, { + signingDate, + signingRegion: region, + signingService, + eventStreamCredentials + }); + } + async signMessage(signableMessage, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService, eventStreamCredentials }) { + const promise2 = this.signEvent({ + headers: this.headerFormatter.format(signableMessage.message.headers), + payload: signableMessage.message.body + }, { + signingDate, + signingRegion, + signingService, + priorSignature: signableMessage.priorSignature, + eventStreamCredentials + }); + return promise2.then((signature) => { + return { message: signableMessage.message, signature }; + }); + } + async signString(stringToSign, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService, eventStreamCredentials } = {}) { + const credentials = eventStreamCredentials ?? await this.credentialProvider(); + this.validateResolvedCredentials(credentials); + const region = signingRegion ?? await this.regionProvider(); + const { shortDate } = this.formatDate(signingDate); + const hash3 = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService)); + hash3.update(toUint8Array2(stringToSign)); + return toHex(await hash3.digest()); + } + async signRequest(requestToSign, { signingDate = /* @__PURE__ */ new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService } = {}) { + const credentials = await this.credentialProvider(); + this.validateResolvedCredentials(credentials); + const region = signingRegion ?? await this.regionProvider(); + const request = prepareRequest(requestToSign); + const { longDate, shortDate } = this.formatDate(signingDate); + const scope = createScope(shortDate, region, signingService ?? this.service); + request.headers[AMZ_DATE_HEADER] = longDate; + if (credentials.sessionToken) { + request.headers[TOKEN_HEADER] = credentials.sessionToken; + } + const payloadHash = await getPayloadHash(request, this.sha256); + if (!hasHeader2(SHA256_HEADER, request.headers) && this.applyChecksum) { + request.headers[SHA256_HEADER] = payloadHash; + } + const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); + const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash)); + request.headers[AUTH_HEADER] = `${ALGORITHM_IDENTIFIER} Credential=${credentials.accessKeyId}/${scope}, SignedHeaders=${this.getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}`; + return request; + } + async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) { + const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest, ALGORITHM_IDENTIFIER); + const hash3 = new this.sha256(await keyPromise); + hash3.update(toUint8Array2(stringToSign)); + return toHex(await hash3.digest()); + } + getSigningKey(credentials, region, shortDate, service) { + return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service); + } + }; + var signatureV4aContainer = { + SignatureV4a: null + }; + exports.ALGORITHM_IDENTIFIER = ALGORITHM_IDENTIFIER; + exports.ALGORITHM_IDENTIFIER_V4A = ALGORITHM_IDENTIFIER_V4A; + exports.ALGORITHM_QUERY_PARAM = ALGORITHM_QUERY_PARAM; + exports.ALWAYS_UNSIGNABLE_HEADERS = ALWAYS_UNSIGNABLE_HEADERS; + exports.AMZ_DATE_HEADER = AMZ_DATE_HEADER; + exports.AMZ_DATE_QUERY_PARAM = AMZ_DATE_QUERY_PARAM; + exports.AUTH_HEADER = AUTH_HEADER; + exports.CREDENTIAL_QUERY_PARAM = CREDENTIAL_QUERY_PARAM; + exports.DATE_HEADER = DATE_HEADER; + exports.EVENT_ALGORITHM_IDENTIFIER = EVENT_ALGORITHM_IDENTIFIER; + exports.EXPIRES_QUERY_PARAM = EXPIRES_QUERY_PARAM; + exports.GENERATED_HEADERS = GENERATED_HEADERS; + exports.HOST_HEADER = HOST_HEADER; + exports.KEY_TYPE_IDENTIFIER = KEY_TYPE_IDENTIFIER; + exports.MAX_CACHE_SIZE = MAX_CACHE_SIZE; + exports.MAX_PRESIGNED_TTL = MAX_PRESIGNED_TTL; + exports.PROXY_HEADER_PATTERN = PROXY_HEADER_PATTERN; + exports.REGION_SET_PARAM = REGION_SET_PARAM; + exports.SEC_HEADER_PATTERN = SEC_HEADER_PATTERN; + exports.SHA256_HEADER = SHA256_HEADER; + exports.SIGNATURE_HEADER = SIGNATURE_HEADER; + exports.SIGNATURE_QUERY_PARAM = SIGNATURE_QUERY_PARAM; + exports.SIGNED_HEADERS_QUERY_PARAM = SIGNED_HEADERS_QUERY_PARAM; + exports.SignatureV4 = SignatureV42; + exports.SignatureV4Base = SignatureV4Base; + exports.TOKEN_HEADER = TOKEN_HEADER; + exports.TOKEN_QUERY_PARAM = TOKEN_QUERY_PARAM; + exports.UNSIGNABLE_PATTERNS = UNSIGNABLE_PATTERNS; + exports.UNSIGNED_PAYLOAD = UNSIGNED_PAYLOAD; + exports.clearCredentialCache = clearCredentialCache; + exports.createScope = createScope; + exports.getCanonicalHeaders = getCanonicalHeaders; + exports.getCanonicalQuery = getCanonicalQuery; + exports.getPayloadHash = getPayloadHash; + exports.getSigningKey = getSigningKey; + exports.hasHeader = hasHeader2; + exports.moveHeadersToQuery = moveHeadersToQuery; + exports.prepareRequest = prepareRequest; + exports.signatureV4aContainer = signatureV4aContainer; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.996.48/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +var require_dist_cjs3 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.996.48/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js"(exports) { + var { SignatureV4: SignatureV42, signatureV4aContainer } = require_dist_cjs2(); + var signatureV4CrtContainer = { + CrtSignerV4: null + }; + var SESSION_TOKEN_QUERY_PARAM2 = "X-Amz-S3session-Token"; + var SESSION_TOKEN_HEADER2 = SESSION_TOKEN_QUERY_PARAM2.toLowerCase(); + var SignatureV4SignWithCredentials2 = class extends SignatureV42 { + static { + __name(this, "SignatureV4SignWithCredentials"); + } + async signWithCredentials(requestToSign, credentials, options) { + const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials); + requestToSign.headers[SESSION_TOKEN_HEADER2] = credentials.sessionToken; + const privateAccess = this; + setSingleOverride(privateAccess, credentialsWithoutSessionToken); + return privateAccess.signRequest(requestToSign, options ?? {}); + } + async presignWithCredentials(requestToSign, credentials, options) { + const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials); + delete requestToSign.headers[SESSION_TOKEN_HEADER2]; + requestToSign.headers[SESSION_TOKEN_QUERY_PARAM2] = credentials.sessionToken; + requestToSign.query = requestToSign.query ?? {}; + requestToSign.query[SESSION_TOKEN_QUERY_PARAM2] = credentials.sessionToken; + const privateAccess = this; + setSingleOverride(privateAccess, credentialsWithoutSessionToken); + return this.presign(requestToSign, options); + } + }; + function getCredentialsWithoutSessionToken(credentials) { + return { + accessKeyId: credentials.accessKeyId, + secretAccessKey: credentials.secretAccessKey, + expiration: credentials.expiration + }; + } + __name(getCredentialsWithoutSessionToken, "getCredentialsWithoutSessionToken"); + function setSingleOverride(privateAccess, credentialsWithoutSessionToken) { + const currentCredentialProvider = privateAccess.credentialProvider; + privateAccess.credentialProvider = () => { + privateAccess.credentialProvider = currentCredentialProvider; + return Promise.resolve(credentialsWithoutSessionToken); + }; + } + __name(setSingleOverride, "setSingleOverride"); + var SignatureV4MultiRegion3 = class { + static { + __name(this, "SignatureV4MultiRegion"); + } + sigv4aSigner; + sigv4Signer; + signerOptions; + static sigv4aDependency() { + if (typeof signatureV4CrtContainer.CrtSignerV4 === "function") { + return "crt"; + } else if (typeof signatureV4aContainer.SignatureV4a === "function") { + return "js"; + } + return "none"; + } + constructor(options) { + this.sigv4Signer = new SignatureV4SignWithCredentials2(options); + this.signerOptions = options; + } + async sign(requestToSign, options = {}) { + if (options.signingRegion === "*") { + return this.getSigv4aSigner().sign(requestToSign, options); + } + return this.sigv4Signer.sign(requestToSign, options); + } + async signWithCredentials(requestToSign, credentials, options = {}) { + if (options.signingRegion === "*") { + const signer = this.getSigv4aSigner(); + const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4; + if (CrtSignerV4 && signer instanceof CrtSignerV4) { + return signer.signWithCredentials(requestToSign, credentials, options); + } else { + throw new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`); + } + } + return this.sigv4Signer.signWithCredentials(requestToSign, credentials, options); + } + async presign(originalRequest, options = {}) { + if (options.signingRegion === "*") { + const signer = this.getSigv4aSigner(); + const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4; + if (CrtSignerV4 && signer instanceof CrtSignerV4) { + return signer.presign(originalRequest, options); + } else { + throw new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`); + } + } + return this.sigv4Signer.presign(originalRequest, options); + } + async presignWithCredentials(originalRequest, credentials, options = {}) { + if (options.signingRegion === "*") { + throw new Error("Method presignWithCredentials is not supported for [signingRegion=*]."); + } + return this.sigv4Signer.presignWithCredentials(originalRequest, credentials, options); + } + getSigv4aSigner() { + if (!this.sigv4aSigner) { + const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4; + const JsSigV4aSigner = signatureV4aContainer.SignatureV4a; + if (this.signerOptions.runtime === "node") { + if (!CrtSignerV4 && !JsSigV4aSigner) { + throw new Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt"); + } + if (CrtSignerV4 && typeof CrtSignerV4 === "function") { + this.sigv4aSigner = new CrtSignerV4({ + ...this.signerOptions, + signingAlgorithm: 1 + }); + } else if (JsSigV4aSigner && typeof JsSigV4aSigner === "function") { + this.sigv4aSigner = new JsSigV4aSigner({ + ...this.signerOptions + }); + } else { + throw new Error("Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt"); + } + } else { + if (!JsSigV4aSigner || typeof JsSigV4aSigner !== "function") { + throw new Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a"); + } + this.sigv4aSigner = new JsSigV4aSigner({ + ...this.signerOptions + }); + } + } + return this.sigv4aSigner; + } + }; + exports.SignatureV4MultiRegion = SignatureV4MultiRegion3; + exports.SignatureV4SignWithCredentials = SignatureV4SignWithCredentials2; + exports.signatureV4CrtContainer = signatureV4CrtContainer; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/SignatureV4S3Express.js +var import_signature_v4_multi_region, SignatureV4S3Express; +var init_SignatureV4S3Express = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/classes/SignatureV4S3Express.js"() { + import_signature_v4_multi_region = __toESM(require_dist_cjs3()); + SignatureV4S3Express = class extends import_signature_v4_multi_region.SignatureV4SignWithCredentials { + static { + __name(this, "SignatureV4S3Express"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/constants.js +var S3_EXPRESS_BUCKET_TYPE, S3_EXPRESS_BACKEND, S3_EXPRESS_AUTH_SCHEME, SESSION_TOKEN_QUERY_PARAM, SESSION_TOKEN_HEADER, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS; +var init_constants5 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/constants.js"() { + init_config(); + S3_EXPRESS_BUCKET_TYPE = "Directory"; + S3_EXPRESS_BACKEND = "S3Express"; + S3_EXPRESS_AUTH_SCHEME = "sigv4-s3express"; + SESSION_TOKEN_QUERY_PARAM = "X-Amz-S3session-Token"; + SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase(); + NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = "AWS_S3_DISABLE_EXPRESS_SESSION_AUTH"; + NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = "s3_disable_express_session_auth"; + NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => booleanSelector(env3, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, SelectorType.CONFIG), "configFileSelector"), + default: false + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/functions/s3ExpressMiddleware.js +var s3ExpressMiddleware, s3ExpressMiddlewareOptions, getS3ExpressPlugin; +var init_s3ExpressMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/functions/s3ExpressMiddleware.js"() { + init_client2(); + init_protocols(); + init_constants5(); + s3ExpressMiddleware = /* @__PURE__ */ __name((options) => { + return (next, context) => async (args) => { + if (context.endpointV2) { + const endpoint = context.endpointV2; + const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME; + const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND || endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE; + if (isS3ExpressBucket) { + setFeature(context, "S3_EXPRESS_BUCKET", "J"); + context.isS3ExpressBucket = true; + } + if (isS3ExpressAuth) { + const requestBucket = args.input.Bucket; + if (requestBucket) { + const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(await options.credentials(), { + Bucket: requestBucket + }); + context.s3ExpressIdentity = s3ExpressIdentity; + if (HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) { + args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken; + } + } + } + } + return next(args); + }; + }, "s3ExpressMiddleware"); + s3ExpressMiddlewareOptions = { + name: "s3ExpressMiddleware", + step: "build", + tags: ["S3", "S3_EXPRESS"], + override: true + }; + getS3ExpressPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions); + }, "applyToStack") + }), "getS3ExpressPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/functions/signS3Express.js +var signS3Express; +var init_signS3Express = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/functions/signS3Express.js"() { + signS3Express = /* @__PURE__ */ __name(async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => { + const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {}); + if (signedRequest.headers["X-Amz-Security-Token"] || signedRequest.headers["x-amz-security-token"]) { + throw new Error("X-Amz-Security-Token must not be set for s3-express requests."); + } + return signedRequest; + }, "signS3Express"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/functions/s3ExpressHttpSigningMiddleware.js +var defaultErrorHandler2, defaultSuccessHandler2, s3ExpressHttpSigningMiddlewareOptions, s3ExpressHttpSigningMiddleware, getS3ExpressHttpSigningPlugin; +var init_s3ExpressHttpSigningMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-s3-express/functions/s3ExpressHttpSigningMiddleware.js"() { + init_dist_es(); + init_client(); + init_protocols(); + init_signS3Express(); + defaultErrorHandler2 = /* @__PURE__ */ __name((signingProperties) => (error62) => { + throw error62; + }, "defaultErrorHandler"); + defaultSuccessHandler2 = /* @__PURE__ */ __name((httpResponse, signingProperties) => { + }, "defaultSuccessHandler"); + s3ExpressHttpSigningMiddlewareOptions = httpSigningMiddlewareOptions; + s3ExpressHttpSigningMiddleware = /* @__PURE__ */ __name((config3) => (next, context) => async (args) => { + if (!HttpRequest.isInstance(args.request)) { + return next(args); + } + const smithyContext = getSmithyContext(context); + const scheme = smithyContext.selectedHttpAuthScheme; + if (!scheme) { + throw new Error(`No HttpAuthScheme was selected: unable to sign request`); + } + const { httpAuthOption: { signingProperties = {} }, identity, signer } = scheme; + let request; + if (context.s3ExpressIdentity) { + request = await signS3Express(context.s3ExpressIdentity, signingProperties, args.request, await config3.signer()); + } else { + request = await signer.sign(args.request, identity, signingProperties); + } + const output2 = await next({ + ...args, + request + }).catch((signer.errorHandler || defaultErrorHandler2)(signingProperties)); + (signer.successHandler || defaultSuccessHandler2)(output2.response, signingProperties); + return output2; + }, "s3ExpressHttpSigningMiddleware"); + getS3ExpressHttpSigningPlugin = /* @__PURE__ */ __name((config3) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(s3ExpressHttpSigningMiddleware(config3), httpSigningMiddlewareOptions); + }, "applyToStack") + }), "getS3ExpressHttpSigningPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/to-stream/toStream.js +import { Readable as Readable2 } from "node:stream"; +function toStream(bytes) { + return Readable2.from(Buffer.from(bytes)); +} +var init_toStream = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/to-stream/toStream.js"() { + __name(toStream, "toStream"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-throw-200-exceptions/throw-200-exceptions.js +var THROW_IF_EMPTY_BODY, throw200ExceptionsMiddleware, collectBody2, throw200ExceptionsMiddlewareOptions, getThrow200ExceptionsPlugin; +var init_throw_200_exceptions = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-throw-200-exceptions/throw-200-exceptions.js"() { + init_protocols(); + init_toStream(); + THROW_IF_EMPTY_BODY = { + CopyObjectCommand: true, + UploadPartCopyCommand: true, + CompleteMultipartUploadCommand: true + }; + throw200ExceptionsMiddleware = /* @__PURE__ */ __name((config3) => (next, context) => async (args) => { + const result = await next(args); + const { response } = result; + if (!HttpResponse.isInstance(response)) { + return result; + } + const { statusCode, body } = response; + if (statusCode < 200 || statusCode >= 300) { + return result; + } + const bodyBytes = await collectBody2(body, config3); + response.body = toStream(bodyBytes); + if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) { + const err = new Error("S3 aborted request"); + err.$metadata = { + httpStatusCode: 503 + }; + err.name = "InternalError"; + throw err; + } + const bodyStringTail = config3.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16)); + if (bodyStringTail && bodyStringTail.endsWith("")) { + response.statusCode = 503; + } + return result; + }, "throw200ExceptionsMiddleware"); + collectBody2 = /* @__PURE__ */ __name((streamBody = new Uint8Array(), context) => { + if (streamBody instanceof Uint8Array) { + return Promise.resolve(streamBody); + } + return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); + }, "collectBody"); + throw200ExceptionsMiddlewareOptions = { + relation: "after", + toMiddleware: "deserializerMiddleware", + tags: ["THROW_200_EXCEPTIONS", "S3"], + name: "throw200ExceptionsMiddleware", + override: true + }; + getThrow200ExceptionsPlugin = /* @__PURE__ */ __name((config3) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(throw200ExceptionsMiddleware(config3), throw200ExceptionsMiddlewareOptions); + }, "applyToStack") + }), "getThrow200ExceptionsPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/util/util-arn-parser/arn.js +var validate2, parse3; +var init_arn = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/util/util-arn-parser/arn.js"() { + validate2 = /* @__PURE__ */ __name((str) => typeof str === "string" && str.indexOf("arn:") === 0 && str.split(":").length >= 6, "validate"); + parse3 = /* @__PURE__ */ __name((arn) => { + const segments = arn.split(":"); + if (segments.length < 6 || segments[0] !== "arn") + throw new Error("Malformed ARN"); + const [, partition2, service, region, accountId, ...resource] = segments; + return { + partition: partition2, + service, + region, + accountId, + resource: resource.join(":") + }; + }, "parse"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/util/index.js +var init_util2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/util/index.js"() { + init_arn(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-region-redirect/bucket-endpoint-middleware.js +function bucketEndpointMiddleware(options) { + return (next, context) => async (args) => { + if (options.bucketEndpoint) { + const endpoint = context.endpointV2; + if (endpoint) { + const bucket = args.input.Bucket; + if (typeof bucket === "string") { + try { + const bucketEndpointUrl = new URL(bucket); + context.endpointV2 = { + ...endpoint, + url: bucketEndpointUrl + }; + } catch (e5) { + const warning2 = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`; + if (context.logger?.constructor?.name === "NoOpLogger") { + console.warn(warning2); + } else { + context.logger?.warn?.(warning2); + } + throw e5; + } + } + } + } + return next(args); + }; +} +var bucketEndpointMiddlewareOptions; +var init_bucket_endpoint_middleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-region-redirect/bucket-endpoint-middleware.js"() { + __name(bucketEndpointMiddleware, "bucketEndpointMiddleware"); + bucketEndpointMiddlewareOptions = { + name: "bucketEndpointMiddleware", + override: true, + relation: "after", + toMiddleware: "endpointV2Middleware" + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-validate-bucket-name/validate-bucket-name.js +function validateBucketNameMiddleware({ bucketEndpoint }) { + return (next) => async (args) => { + const { input: { Bucket } } = args; + if (!bucketEndpoint && typeof Bucket === "string" && !validate2(Bucket) && Bucket.indexOf("/") >= 0) { + const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`); + err.name = "InvalidBucketName"; + throw err; + } + return next({ ...args }); + }; +} +var validateBucketNameMiddlewareOptions, getValidateBucketNamePlugin; +var init_validate_bucket_name = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-validate-bucket-name/validate-bucket-name.js"() { + init_util2(); + init_bucket_endpoint_middleware(); + __name(validateBucketNameMiddleware, "validateBucketNameMiddleware"); + validateBucketNameMiddlewareOptions = { + step: "initialize", + tags: ["VALIDATE_BUCKET_NAME"], + name: "validateBucketNameMiddleware", + override: true + }; + getValidateBucketNamePlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions); + clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions); + }, "applyToStack") + }), "getValidateBucketNamePlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +var ProtocolLib; +var init_ProtocolLib = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js"() { + init_client(); + init_schema(); + ProtocolLib = class { + static { + __name(this, "ProtocolLib"); + } + queryCompat; + errorRegistry; + constructor(queryCompat = false) { + this.queryCompat = queryCompat; + } + resolveRestContentType(defaultContentType, inputSchema) { + const members2 = inputSchema.getMemberSchemas(); + const httpPayloadMember = Object.values(members2).find((m3) => { + return !!m3.getMergedTraits().httpPayload; + }); + if (httpPayloadMember) { + const mediaType = httpPayloadMember.getMergedTraits().mediaType; + if (mediaType) { + return mediaType; + } else if (httpPayloadMember.isStringSchema()) { + return "text/plain"; + } else if (httpPayloadMember.isBlobSchema()) { + return "application/octet-stream"; + } else { + return defaultContentType; + } + } else if (!inputSchema.isUnitSchema()) { + const hasBody = Object.values(members2).find((m3) => { + const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m3.getMergedTraits(); + const noPrefixHeaders = httpPrefixHeaders === void 0; + return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders; + }); + if (hasBody) { + return defaultContentType; + } + } + } + async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) { + let errorName = errorIdentifier; + if (errorIdentifier.includes("#")) { + [, errorName] = errorIdentifier.split("#"); + } + const errorMetadata = { + $metadata: metadata, + $fault: response.statusCode < 500 ? "client" : "server" + }; + if (!this.errorRegistry) { + throw new Error("@aws-sdk/core/protocols - error handler not initialized."); + } + try { + const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ?? this.errorRegistry.getSchema(errorIdentifier); + return { errorSchema, errorMetadata }; + } catch (e5) { + dataObject.message = dataObject.message ?? dataObject.Message ?? "UnknownError"; + const synthetic = this.errorRegistry; + const baseExceptionSchema = synthetic.getBaseException(); + if (baseExceptionSchema) { + const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error; + throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject); + } + const d5 = dataObject; + const message = d5?.message ?? d5?.Message ?? d5?.Error?.Message ?? d5?.Error?.message; + throw this.decorateServiceException(Object.assign(new Error(message), { + name: errorName + }, errorMetadata), dataObject); + } + } + compose(composite, errorIdentifier, defaultNamespace) { + let namespace = defaultNamespace; + if (errorIdentifier.includes("#")) { + [namespace] = errorIdentifier.split("#"); + } + const staticRegistry = TypeRegistry.for(namespace); + const defaultSyntheticRegistry = TypeRegistry.for("smithy.ts.sdk.synthetic." + defaultNamespace); + composite.copyFrom(staticRegistry); + composite.copyFrom(defaultSyntheticRegistry); + this.errorRegistry = composite; + } + decorateServiceException(exception, additions = {}) { + if (this.queryCompat) { + const msg = exception.Message ?? additions.Message; + const error62 = decorateServiceException(exception, additions); + if (msg) { + error62.message = msg; + } + const errorObj = error62.Error ?? {}; + errorObj.Type = error62.Error?.Type; + errorObj.Code = error62.Error?.Code; + errorObj.Message = error62.Error?.message ?? error62.Error?.Message ?? msg; + error62.Error = errorObj; + const reqId = error62.$metadata.requestId; + if (reqId) { + error62.RequestId = reqId; + } + return error62; + } + return decorateServiceException(exception, additions); + } + setQueryCompatError(output2, response) { + const queryErrorHeader = response.headers?.["x-amzn-query-error"]; + if (output2 !== void 0 && queryErrorHeader != null) { + const [Code, Type] = queryErrorHeader.split(";"); + const keys = Object.keys(output2); + const Error2 = { + Code, + Type + }; + output2.Code = Code; + output2.Type = Type; + for (let i5 = 0; i5 < keys.length; i5++) { + const k5 = keys[i5]; + Error2[k5 === "message" ? "Message" : k5] = output2[k5]; + } + delete Error2.__type; + output2.Error = Error2; + } + } + queryCompatOutput(queryCompatErrorData, errorData) { + if (queryCompatErrorData.Error) { + errorData.Error = queryCompatErrorData.Error; + } + if (queryCompatErrorData.Type) { + errorData.Type = queryCompatErrorData.Type; + } + if (queryCompatErrorData.Code) { + errorData.Code = queryCompatErrorData.Code; + } + } + findQueryCompatibleError(registry2, errorName) { + try { + return registry2.getSchema(errorName); + } catch (e5) { + return registry2.find((schema2) => NormalizedSchema.of(schema2).getMergedTraits().awsQueryError?.[0] === errorName); + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +var AwsRestJsonProtocol; +var init_AwsRestJsonProtocol = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js"() { + init_protocols(); + init_schema(); + init_ProtocolLib(); + AwsRestJsonProtocol = class extends HttpBindingProtocol { + static { + __name(this, "AwsRestJsonProtocol"); + } + serializer; + deserializer; + codec; + mixin = new ProtocolLib(); + constructor({ defaultNamespace, errorTypeRegistries: errorTypeRegistries5, jsonCodec }) { + super({ + defaultNamespace, + errorTypeRegistries: errorTypeRegistries5 + }); + const settings = { + timestampFormat: { + useTrait: true, + default: 7 + }, + httpBindings: true, + jsonName: true + }; + this.codec = jsonCodec ?? new JsonCodec2(settings); + this.serializer = new HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings); + this.deserializer = new HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings); + } + getShapeId() { + return "aws.protocols#restJson1"; + } + getPayloadCodec() { + return this.codec; + } + setSerdeContext(serdeContext) { + this.codec.setSerdeContext(serdeContext); + super.setSerdeContext(serdeContext); + } + async serializeRequest(operationSchema, input2, context) { + const request = await super.serializeRequest(operationSchema, input2, context); + const inputSchema = NormalizedSchema.of(operationSchema.input); + if (!request.headers["content-type"]) { + const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema); + if (contentType) { + request.headers["content-type"] = contentType; + } + } + if (request.body == null && request.headers["content-type"] === this.getDefaultContentType()) { + request.body = "{}"; + } + return request; + } + async deserializeResponse(operationSchema, context, response) { + const output2 = await super.deserializeResponse(operationSchema, context, response); + const outputSchema = NormalizedSchema.of(operationSchema.output); + for (const [name2, member] of outputSchema.structIterator()) { + if (member.getMemberTraits().httpPayload && !(name2 in output2)) { + output2[name2] = null; + } + } + return output2; + } + async handleError(operationSchema, context, response, dataObject, metadata) { + const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? "Unknown"; + this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace); + const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata); + const ns = NormalizedSchema.of(errorSchema); + const message = dataObject.message ?? dataObject.Message ?? "UnknownError"; + const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error; + const exception = new ErrorCtor({}); + await this.deserializeHttpMessage(errorSchema, context, response, dataObject); + const output2 = {}; + const errorDeserializer = this.codec.createDeserializer(); + for (const [name2, member] of ns.structIterator()) { + const target = member.getMergedTraits().jsonName ?? name2; + output2[name2] = errorDeserializer.readObject(member, dataObject[target]); + } + throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, { + $fault: ns.getMergedTraits().error, + message + }, output2), dataObject); + } + getDefaultContentType() { + return "application/json"; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+xml-builder@3.972.41/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +var require_dist_cjs4 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+xml-builder@3.972.41/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js"(exports) { + var ATTR_ESCAPE_RE = /[&<>"]/g; + var ATTR_ESCAPE_MAP = { + "&": "&", + "<": "<", + ">": ">", + '"': """ + }; + function escapeAttribute(value) { + return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]); + } + __name(escapeAttribute, "escapeAttribute"); + var ELEMENT_ESCAPE_RE = /[&"'<>\r\n\u0085\u2028]/g; + var ELEMENT_ESCAPE_MAP = { + "&": "&", + '"': """, + "'": "'", + "<": "<", + ">": ">", + "\r": " ", + "\n": " ", + "\x85": "…", + "\u2028": "
" + }; + function escapeElement(value) { + return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]); + } + __name(escapeElement, "escapeElement"); + var XmlText2 = class { + static { + __name(this, "XmlText"); + } + value; + constructor(value) { + this.value = value; + } + toString() { + return escapeElement("" + this.value); + } + }; + var XmlNode2 = class _XmlNode { + static { + __name(this, "XmlNode"); + } + name; + children; + attributes = {}; + static of(name2, childText, withName) { + const node2 = new _XmlNode(name2); + if (childText !== void 0) { + node2.addChildNode(new XmlText2(childText)); + } + if (withName !== void 0) { + node2.withName(withName); + } + return node2; + } + constructor(name2, children = []) { + this.name = name2; + this.children = children; + } + withName(name2) { + this.name = name2; + return this; + } + addAttribute(name2, value) { + this.attributes[name2] = value; + return this; + } + addChildNode(child) { + this.children.push(child); + return this; + } + removeAttribute(name2) { + delete this.attributes[name2]; + return this; + } + n(name2) { + this.name = name2; + return this; + } + c(child) { + this.children.push(child); + return this; + } + a(name2, value) { + if (value != null) { + this.attributes[name2] = value; + } + return this; + } + cc(input2, field, withName = field) { + if (input2[field] != null) { + const node2 = _XmlNode.of(field, input2[field]).withName(withName); + this.c(node2); + } + } + l(input2, listName, memberName, valueProvider) { + if (input2[listName] != null) { + const nodes5 = valueProvider(); + nodes5.map((node2) => { + node2.withName(memberName); + this.c(node2); + }); + } + } + lc(input2, listName, memberName, valueProvider) { + if (input2[listName] != null) { + const nodes5 = valueProvider(); + const containerNode = new _XmlNode(memberName); + nodes5.map((node2) => { + containerNode.c(node2); + }); + this.c(containerNode); + } + } + toString() { + const hasChildren = Boolean(this.children.length); + let xmlText = `<${this.name}`; + const attributes = this.attributes; + for (const attributeName of Object.keys(attributes)) { + const attribute = attributes[attributeName]; + if (attribute != null) { + xmlText += ` ${attributeName}="${escapeAttribute("" + attribute)}"`; + } + } + return xmlText += !hasChildren ? "/>" : `>${this.children.map((c5) => c5.toString()).join("")}`; + } + }; + function writeKey3(obj) { + Object.defineProperty(obj, "__proto__", { value: void 0, writable: true, enumerable: true, configurable: true }); + } + __name(writeKey3, "writeKey"); + function parseXML2(xml) { + const state2 = new AwsXmlParser(xml); + return state2.parse(); + } + __name(parseXML2, "parseXML"); + var AwsXmlParser = class _AwsXmlParser { + static { + __name(this, "AwsXmlParser"); + } + x; + i = 0; + z; + constructor(x) { + this.x = x; + this.x = x.replace(/\r\n?/g, "\n"); + this.z = this.x.length; + } + parse() { + const p3 = this; + const { z: z2 } = p3; + while (p3.i < z2) { + p3.trim(); + if (p3.i >= z2) { + break; + } + if (p3.isNext(""); + p3.trim(); + } else if (p3.isNext(""); + p3.trim(); + } else if (p3.isNext("/".includes(p3.x[p3.i])) { + tag += p3.x[p3.i++]; + } + let hasAttrs = false; + const attrs = {}; + while (p3.i < p3.z) { + p3.trim(); + if (">/".includes(p3.x[p3.i])) { + break; + } + let name2 = ""; + while (p3.i < p3.z && !"= \r\n>/?".includes(p3.x[p3.i])) { + name2 += p3.x[p3.i++]; + } + p3.trim(); + if (p3.x[p3.i] !== "=") { + break; + } + ++p3.i; + p3.trim(); + if (name2 === "__proto__") { + writeKey3(attrs); + } + attrs[name2] = p3.readAttrValue(); + hasAttrs = true; + } + if (p3.i >= p3.z) { + throw new Error("@aws-sdk XML parse error: unexpected end of input."); + } + if (p3.x[p3.i] === "/") { + ++p3.i; + if (p3.i >= p3.z || p3.x[p3.i] !== ">") { + throw new Error("@aws-sdk XML parse error: expected > at the end of self-closing tag."); + } + ++p3.i; + return { tag, value: hasAttrs ? attrs : "" }; + } + if (p3.x[p3.i] !== ">") { + throw new Error("@aws-sdk XML parse error: expected > at the end of opening tag."); + } + ++p3.i; + const textParts = []; + const childTags = []; + let hasElementChild = false; + while (p3.i < p3.z) { + if (p3.isNext(""); + } else if (p3.isNext("")); + } else if (p3.isNext(""); + } else { + hasElementChild = true; + childTags.push(p3.parseTag()); + } + } else { + let text2 = ""; + while (p3.i < p3.z && p3.x[p3.i] !== "<") { + text2 += p3.x[p3.i++]; + } + textParts.push(p3.decodeEntities(text2)); + } + } + if (!p3.isNext(".`); + } + p3.i += 2; + const closeTag = p3.readTo(">").trim(); + if (closeTag !== tag) { + throw new Error(`@aws-sdk XML parse error: mismatched tags <${tag}> and .`); + } + if (!hasAttrs && textParts.length === 0 && !hasElementChild) { + return { tag, value: "" }; + } + if (!hasAttrs && !hasElementChild) { + const text2 = textParts.length === 1 ? textParts[0] : textParts.join(""); + if (text2.trim() === "" && text2.includes("\n")) { + return { tag, value: "" }; + } + return { tag, value: text2 }; + } + const obj = {}; + for (const text2 of textParts) { + if (text2.trim() === "" && text2.includes("\n")) { + continue; + } + obj["#text"] = "#text" in obj ? obj["#text"] + text2 : text2; + } + for (const child of childTags) { + if (child.tag === "__proto__") { + writeKey3(obj); + } + if (child.tag in obj) { + if (Array.isArray(obj[child.tag])) { + obj[child.tag].push(child.value); + } else { + obj[child.tag] = [obj[child.tag], child.value]; + } + } else { + obj[child.tag] = child.value; + } + } + for (const [k5, v] of Object.entries(attrs)) { + if (k5 === "__proto__") { + writeKey3(obj); + } + obj[k5] = v; + } + return { tag, value: obj }; + } + static ENTITIES = { + amp: "&", + lt: "<", + gt: ">", + quot: '"', + apos: "'" + }; + skipDoctype() { + const p3 = this; + p3.i += 9; + let depth = 0; + while (p3.i < p3.z) { + const c5 = p3.x[p3.i]; + if (c5 === "[") { + ++depth; + } else if (c5 === "]") { + --depth; + } else if (c5 === ">" && depth === 0) { + ++p3.i; + return; + } + ++p3.i; + } + throw new Error("@aws-sdk XML parse error: unclosed DOCTYPE."); + } + decodeEntities(s2) { + return s2.replace(/&(?:#x([0-9a-fA-F]{1,6})|#(\d{1,7})|([a-zA-Z][a-zA-Z0-9]{0,30}));/g, (_, hex3, dec, named) => { + if (hex3) { + return String.fromCharCode(parseInt(hex3, 16)); + } + if (dec) { + return String.fromCharCode(parseInt(dec, 10)); + } + return _AwsXmlParser.ENTITIES[named] ?? ""; + }); + } + }; + exports.XmlNode = XmlNode2; + exports.XmlText = XmlText2; + exports.parseXML = parseXML2; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +var SerdeContextConfig2; +var init_ConfigurableSerdeContext2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js"() { + SerdeContextConfig2 = class { + static { + __name(this, "SerdeContextConfig"); + } + serdeContext; + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js +var UnionSerde2; +var init_UnionSerde2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js"() { + UnionSerde2 = class { + static { + __name(this, "UnionSerde"); + } + from; + to; + keys; + constructor(from, to) { + this.from = from; + this.to = to; + const keys = Object.keys(this.from); + const set2 = new Set(keys); + set2.delete("__type"); + this.keys = set2; + } + mark(key) { + this.keys.delete(key); + } + hasUnknown() { + return this.keys.size === 1 && Object.keys(this.to).length === 0; + } + writeUnknown() { + if (this.hasUnknown()) { + const k5 = this.keys.values().next().value; + const v = this.from[k5]; + this.to.$unknown = [k5, v]; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/writeKey.js +function writeKey2(obj) { + Object.defineProperty(obj, "__proto__", { value: void 0, writable: true, enumerable: true, configurable: true }); +} +var init_writeKey2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/writeKey.js"() { + __name(writeKey2, "writeKey"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +var import_xml_builder, XmlShapeDeserializer; +var init_XmlShapeDeserializer = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js"() { + import_xml_builder = __toESM(require_dist_cjs4()); + init_client(); + init_protocols(); + init_schema(); + init_serde(); + init_ConfigurableSerdeContext2(); + init_UnionSerde2(); + init_writeKey2(); + XmlShapeDeserializer = class extends SerdeContextConfig2 { + static { + __name(this, "XmlShapeDeserializer"); + } + settings; + stringDeserializer; + constructor(settings) { + super(); + this.settings = settings; + this.stringDeserializer = new FromStringShapeDeserializer(settings); + } + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + this.stringDeserializer.setSerdeContext(serdeContext); + } + read(schema2, bytes, key) { + const ns = NormalizedSchema.of(schema2); + const memberSchemas = ns.getMemberSchemas(); + const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => { + return !!memberNs.getMemberTraits().eventPayload; + }); + if (isEventPayload) { + const output2 = {}; + const memberName = Object.keys(memberSchemas)[0]; + const eventMemberSchema = memberSchemas[memberName]; + if (eventMemberSchema.isBlobSchema()) { + output2[memberName] = bytes; + } else { + output2[memberName] = this.read(memberSchemas[memberName], bytes); + } + return output2; + } + const xmlString = (this.serdeContext?.utf8Encoder ?? toUtf8)(bytes); + const parsedObject = this.parseXml(xmlString); + return this.readSchema(schema2, key ? parsedObject[key] : parsedObject); + } + readSchema(_schema, value) { + const ns = NormalizedSchema.of(_schema); + if (ns.isUnitSchema()) { + return; + } + const traits = ns.getMergedTraits(); + if (ns.isListSchema() && !Array.isArray(value)) { + return this.readSchema(ns, [value]); + } + if (value == null) { + return value; + } + if (typeof value === "object") { + const flat = !!traits.xmlFlattened; + if (ns.isListSchema()) { + const listValue = ns.getValueSchema(); + const buffer2 = []; + const sourceKey = listValue.getMergedTraits().xmlName ?? "member"; + const source = flat ? value : (value[0] ?? value)[sourceKey]; + if (source == null) { + return buffer2; + } + const sourceArray = Array.isArray(source) ? source : [source]; + for (const v of sourceArray) { + buffer2.push(this.readSchema(listValue, v)); + } + return buffer2; + } + const buffer = {}; + if (ns.isMapSchema()) { + const keyNs = ns.getKeySchema(); + const memberNs = ns.getValueSchema(); + let entries; + if (flat) { + entries = Array.isArray(value) ? value : [value]; + } else { + entries = Array.isArray(value.entry) ? value.entry : [value.entry]; + } + const keyProperty = keyNs.getMergedTraits().xmlName ?? "key"; + const valueProperty = memberNs.getMergedTraits().xmlName ?? "value"; + for (const entry of entries) { + const key = entry[keyProperty]; + const value2 = entry[valueProperty]; + if (key === "__proto__") { + writeKey2(buffer); + } + buffer[key] = this.readSchema(memberNs, value2); + } + return buffer; + } + if (ns.isStructSchema()) { + const union2 = ns.isUnionSchema(); + let unionSerde; + if (union2) { + unionSerde = new UnionSerde2(value, buffer); + } + for (const [memberName, memberSchema] of ns.structIterator()) { + const memberTraits = memberSchema.getMergedTraits(); + const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName(); + if (union2) { + unionSerde.mark(xmlObjectKey); + } + if (value[xmlObjectKey] != null) { + buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]); + } + } + if (union2) { + unionSerde.writeUnknown(); + } + return buffer; + } + if (ns.isDocumentSchema()) { + return value; + } + throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`); + } + if (ns.isListSchema()) { + return []; + } + if (ns.isMapSchema() || ns.isStructSchema()) { + return {}; + } + return this.stringDeserializer.read(ns, value); + } + parseXml(xml) { + if (xml.length) { + let parsedObj; + try { + parsedObj = (0, import_xml_builder.parseXML)(xml); + } catch (e5) { + if (e5 && typeof e5 === "object") { + Object.defineProperty(e5, "$responseBodyText", { + value: xml + }); + } + throw e5; + } + const textNodeName = "#text"; + const key = Object.keys(parsedObj)[0]; + const parsedObjToReturn = parsedObj[key]; + if (parsedObjToReturn[textNodeName]) { + parsedObjToReturn[key] = parsedObjToReturn[textNodeName]; + delete parsedObjToReturn[textNodeName]; + } + return getValueFromTextNode(parsedObjToReturn); + } + return {}; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +var QueryShapeSerializer; +var init_QueryShapeSerializer = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js"() { + init_protocols(); + init_schema(); + init_serde(); + init_serde(); + init_ConfigurableSerdeContext2(); + QueryShapeSerializer = class extends SerdeContextConfig2 { + static { + __name(this, "QueryShapeSerializer"); + } + settings; + buffer; + constructor(settings) { + super(); + this.settings = settings; + } + write(schema2, value, prefix = "") { + if (this.buffer === void 0) { + this.buffer = ""; + } + const ns = NormalizedSchema.of(schema2); + if (prefix && !prefix.endsWith(".")) { + prefix += "."; + } + if (ns.isBlobSchema()) { + if (typeof value === "string" || value instanceof Uint8Array) { + this.writeKey(prefix); + this.writeValue((this.serdeContext?.base64Encoder ?? toBase64)(value)); + } + } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) { + if (value != null) { + this.writeKey(prefix); + this.writeValue(String(value)); + } else if (ns.isIdempotencyToken()) { + this.writeKey(prefix); + this.writeValue(generateIdempotencyToken()); + } + } else if (ns.isBigIntegerSchema()) { + if (value != null) { + this.writeKey(prefix); + this.writeValue(String(value)); + } + } else if (ns.isBigDecimalSchema()) { + if (value != null) { + this.writeKey(prefix); + this.writeValue(value instanceof NumericValue ? value.string : String(value)); + } + } else if (ns.isTimestampSchema()) { + if (value instanceof Date) { + this.writeKey(prefix); + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: + this.writeValue(value.toISOString().replace(".000Z", "Z")); + break; + case 6: + this.writeValue(dateToUtcString(value)); + break; + case 7: + this.writeValue(String(value.getTime() / 1e3)); + break; + } + } + } else if (ns.isDocumentSchema()) { + if (Array.isArray(value)) { + this.write(64 | 15, value, prefix); + } else if (value instanceof Date) { + this.write(4, value, prefix); + } else if (value instanceof Uint8Array) { + this.write(21, value, prefix); + } else if (value && typeof value === "object") { + this.write(128 | 15, value, prefix); + } else { + this.writeKey(prefix); + this.writeValue(String(value)); + } + } else if (ns.isListSchema()) { + if (Array.isArray(value)) { + if (value.length === 0) { + if (this.settings.serializeEmptyLists) { + this.writeKey(prefix); + this.writeValue(""); + } + } else { + const member = ns.getValueSchema(); + const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened; + let i5 = 1; + for (const item of value) { + if (item == null) { + continue; + } + const traits = member.getMergedTraits(); + const suffix = this.getKey("member", traits.xmlName, traits.ec2QueryName); + const key = flat ? `${prefix}${i5}` : `${prefix}${suffix}.${i5}`; + this.write(member, item, key); + ++i5; + } + } + } + } else if (ns.isMapSchema()) { + if (value && typeof value === "object") { + const keySchema = ns.getKeySchema(); + const memberSchema = ns.getValueSchema(); + const flat = ns.getMergedTraits().xmlFlattened; + let i5 = 1; + for (const k5 in value) { + const v = value[k5]; + if (v == null) { + continue; + } + const keyTraits = keySchema.getMergedTraits(); + const keySuffix = this.getKey("key", keyTraits.xmlName, keyTraits.ec2QueryName); + const key = flat ? `${prefix}${i5}.${keySuffix}` : `${prefix}entry.${i5}.${keySuffix}`; + const valTraits = memberSchema.getMergedTraits(); + const valueSuffix = this.getKey("value", valTraits.xmlName, valTraits.ec2QueryName); + const valueKey = flat ? `${prefix}${i5}.${valueSuffix}` : `${prefix}entry.${i5}.${valueSuffix}`; + this.write(keySchema, k5, key); + this.write(memberSchema, v, valueKey); + ++i5; + } + } + } else if (ns.isStructSchema()) { + if (value && typeof value === "object") { + let didWriteMember = false; + for (const [memberName, member] of ns.structIterator()) { + if (value[memberName] == null && !member.isIdempotencyToken()) { + continue; + } + const traits = member.getMergedTraits(); + const suffix = this.getKey(memberName, traits.xmlName, traits.ec2QueryName, "struct"); + const key = `${prefix}${suffix}`; + this.write(member, value[memberName], key); + didWriteMember = true; + } + if (!didWriteMember && ns.isUnionSchema()) { + const { $unknown } = value; + if (Array.isArray($unknown)) { + const [k5, v] = $unknown; + const key = `${prefix}${k5}`; + this.write(15, v, key); + } + } + } + } else if (ns.isUnitSchema()) { + } else { + throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`); + } + } + flush() { + if (this.buffer === void 0) { + throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer."); + } + const str = this.buffer; + delete this.buffer; + return str; + } + getKey(memberName, xmlName, ec2QueryName, keySource) { + const { ec2, capitalizeKeys } = this.settings; + if (ec2 && ec2QueryName) { + return ec2QueryName; + } + const key = xmlName ?? memberName; + if (capitalizeKeys && keySource === "struct") { + return key[0].toUpperCase() + key.slice(1); + } + return key; + } + writeKey(key) { + if (key.endsWith(".")) { + key = key.slice(0, key.length - 1); + } + this.buffer += `&${extendedEncodeURIComponent(key)}=`; + } + writeValue(value) { + this.buffer += extendedEncodeURIComponent(value); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +var AwsQueryProtocol; +var init_AwsQueryProtocol = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js"() { + init_protocols(); + init_schema(); + init_ProtocolLib(); + init_XmlShapeDeserializer(); + init_QueryShapeSerializer(); + AwsQueryProtocol = class extends RpcProtocol { + static { + __name(this, "AwsQueryProtocol"); + } + options; + serializer; + deserializer; + mixin = new ProtocolLib(); + constructor(options) { + super({ + defaultNamespace: options.defaultNamespace, + errorTypeRegistries: options.errorTypeRegistries + }); + this.options = options; + const settings = { + timestampFormat: { + useTrait: true, + default: 5 + }, + httpBindings: false, + xmlNamespace: options.xmlNamespace, + serviceNamespace: options.defaultNamespace, + serializeEmptyLists: true + }; + this.serializer = new QueryShapeSerializer(settings); + this.deserializer = new XmlShapeDeserializer(settings); + } + getShapeId() { + return "aws.protocols#awsQuery"; + } + setSerdeContext(serdeContext) { + this.serializer.setSerdeContext(serdeContext); + this.deserializer.setSerdeContext(serdeContext); + } + getPayloadCodec() { + throw new Error("AWSQuery protocol has no payload codec."); + } + async serializeRequest(operationSchema, input2, context) { + const request = await super.serializeRequest(operationSchema, input2, context); + if (!request.path.endsWith("/")) { + request.path += "/"; + } + request.headers["content-type"] = "application/x-www-form-urlencoded"; + if (deref(operationSchema.input) === "unit" || !request.body) { + request.body = ""; + } + const action = operationSchema.name.split("#")[1] ?? operationSchema.name; + request.body = `Action=${action}&Version=${this.options.version}` + request.body; + if (request.body.endsWith("&")) { + request.body = request.body.slice(-1); + } + return request; + } + async deserializeResponse(operationSchema, context, response) { + const deserializer = this.deserializer; + const ns = NormalizedSchema.of(operationSchema.output); + const dataObject = {}; + if (response.statusCode >= 300) { + const bytes2 = await collectBody(response.body, context); + if (bytes2.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(15, bytes2)); + } + await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response)); + } + for (const header in response.headers) { + const value = response.headers[header]; + delete response.headers[header]; + response.headers[header.toLowerCase()] = value; + } + const shortName = operationSchema.name.split("#")[1] ?? operationSchema.name; + const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? shortName + "Result" : void 0; + const bytes = await collectBody(response.body, context); + if (bytes.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey)); + } + dataObject.$metadata = this.deserializeMetadata(response); + return dataObject; + } + useNestedResult() { + return true; + } + async handleError(operationSchema, context, response, dataObject, metadata) { + const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? "Unknown"; + this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace); + const errorData = this.loadQueryError(dataObject) ?? {}; + const message = this.loadQueryErrorMessage(dataObject); + errorData.message = message; + errorData.Error = { + Type: errorData.Type, + Code: errorData.Code, + Message: message + }; + const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, errorData, metadata, this.mixin.findQueryCompatibleError); + const ns = NormalizedSchema.of(errorSchema); + const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error; + const exception = new ErrorCtor({}); + const output2 = { + Type: errorData.Error.Type, + Code: errorData.Error.Code, + Error: errorData.Error + }; + for (const [name2, member] of ns.structIterator()) { + const target = member.getMergedTraits().xmlName ?? name2; + const value = errorData[target] ?? dataObject[target]; + output2[name2] = this.deserializer.readSchema(member, value); + } + throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, { + $fault: ns.getMergedTraits().error, + message + }, output2), dataObject); + } + loadQueryErrorCode(output2, data) { + const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code; + if (code !== void 0) { + return code; + } + if (output2.statusCode == 404) { + return "NotFound"; + } + } + loadQueryError(data) { + return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error; + } + loadQueryErrorMessage(data) { + const errorData = this.loadQueryError(data); + return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? "Unknown"; + } + getDefaultContentType() { + return "application/x-www-form-urlencoded"; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js +var loadRestXmlErrorCode; +var init_parseXmlBody = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js"() { + loadRestXmlErrorCode = /* @__PURE__ */ __name((output2, data) => { + if (data?.Error?.Code !== void 0) { + return data.Error.Code; + } + if (data?.Code !== void 0) { + return data.Code; + } + if (output2.statusCode == 404) { + return "NotFound"; + } + }, "loadRestXmlErrorCode"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +var import_xml_builder2, XmlShapeSerializer; +var init_XmlShapeSerializer = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js"() { + import_xml_builder2 = __toESM(require_dist_cjs4()); + init_protocols(); + init_schema(); + init_serde(); + init_serde(); + init_ConfigurableSerdeContext2(); + XmlShapeSerializer = class extends SerdeContextConfig2 { + static { + __name(this, "XmlShapeSerializer"); + } + settings; + stringBuffer; + byteBuffer; + buffer; + constructor(settings) { + super(); + this.settings = settings; + } + write(schema2, value) { + const ns = NormalizedSchema.of(schema2); + if (ns.isStringSchema() && typeof value === "string") { + this.stringBuffer = value; + } else if (ns.isBlobSchema()) { + this.byteBuffer = "byteLength" in value ? value : (this.serdeContext?.base64Decoder ?? fromBase64)(value); + } else { + this.buffer = this.writeStruct(ns, value, void 0); + const traits = ns.getMergedTraits(); + if (traits.httpPayload && !traits.xmlName) { + this.buffer.withName(ns.getName()); + } + } + } + flush() { + if (this.byteBuffer !== void 0) { + const bytes = this.byteBuffer; + delete this.byteBuffer; + return bytes; + } + if (this.stringBuffer !== void 0) { + const str = this.stringBuffer; + delete this.stringBuffer; + return str; + } + const buffer = this.buffer; + if (this.settings.xmlNamespace) { + if (!buffer?.attributes?.["xmlns"]) { + buffer.addAttribute("xmlns", this.settings.xmlNamespace); + } + } + delete this.buffer; + return buffer.toString(); + } + writeStruct(ns, value, parentXmlns) { + const traits = ns.getMergedTraits(); + const name2 = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName(); + if (!name2 || !ns.isStructSchema()) { + throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`); + } + const structXmlNode = import_xml_builder2.XmlNode.of(name2); + const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns); + for (const [memberName, memberSchema] of ns.structIterator()) { + const val = value[memberName]; + if (val != null || memberSchema.isIdempotencyToken()) { + if (memberSchema.getMergedTraits().xmlAttribute) { + structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val)); + continue; + } + if (memberSchema.isListSchema()) { + this.writeList(memberSchema, val, structXmlNode, xmlns); + } else if (memberSchema.isMapSchema()) { + this.writeMap(memberSchema, val, structXmlNode, xmlns); + } else if (memberSchema.isStructSchema()) { + structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns)); + } else { + const memberNode = import_xml_builder2.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName()); + this.writeSimpleInto(memberSchema, val, memberNode, xmlns); + structXmlNode.addChildNode(memberNode); + } + } + } + const { $unknown } = value; + if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) { + const [k5, v] = $unknown; + const node2 = import_xml_builder2.XmlNode.of(k5); + if (typeof v !== "string") { + if (value instanceof import_xml_builder2.XmlNode || value instanceof import_xml_builder2.XmlText) { + structXmlNode.addChildNode(value); + } else { + throw new Error(`@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`); + } + } + this.writeSimpleInto(0, v, node2, xmlns); + structXmlNode.addChildNode(node2); + } + if (xmlns) { + structXmlNode.addAttribute(xmlnsAttr, xmlns); + } + return structXmlNode; + } + writeList(listMember, array2, container, parentXmlns) { + if (!listMember.isMemberSchema()) { + throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`); + } + const listTraits = listMember.getMergedTraits(); + const listValueSchema = listMember.getValueSchema(); + const listValueTraits = listValueSchema.getMergedTraits(); + const sparse = !!listValueTraits.sparse; + const flat = !!listTraits.xmlFlattened; + const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns); + const writeItem = /* @__PURE__ */ __name((container2, value) => { + if (listValueSchema.isListSchema()) { + this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns); + } else if (listValueSchema.isMapSchema()) { + this.writeMap(listValueSchema, value, container2, xmlns); + } else if (listValueSchema.isStructSchema()) { + const struct = this.writeStruct(listValueSchema, value, xmlns); + container2.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? "member")); + } else { + const listItemNode = import_xml_builder2.XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? "member"); + this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns); + container2.addChildNode(listItemNode); + } + }, "writeItem"); + if (flat) { + for (const value of array2) { + if (sparse || value != null) { + writeItem(container, value); + } + } + } else { + const listNode = import_xml_builder2.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName()); + if (xmlns) { + listNode.addAttribute(xmlnsAttr, xmlns); + } + for (const value of array2) { + if (sparse || value != null) { + writeItem(listNode, value); + } + } + container.addChildNode(listNode); + } + } + writeMap(mapMember, map2, container, parentXmlns, containerIsMap = false) { + if (!mapMember.isMemberSchema()) { + throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`); + } + const mapTraits = mapMember.getMergedTraits(); + const mapKeySchema = mapMember.getKeySchema(); + const mapKeyTraits = mapKeySchema.getMergedTraits(); + const keyTag = mapKeyTraits.xmlName ?? "key"; + const mapValueSchema = mapMember.getValueSchema(); + const mapValueTraits = mapValueSchema.getMergedTraits(); + const valueTag = mapValueTraits.xmlName ?? "value"; + const sparse = !!mapValueTraits.sparse; + const flat = !!mapTraits.xmlFlattened; + const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns); + const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => { + const keyNode = import_xml_builder2.XmlNode.of(keyTag, key); + const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns); + if (keyXmlns) { + keyNode.addAttribute(keyXmlnsAttr, keyXmlns); + } + entry.addChildNode(keyNode); + let valueNode = import_xml_builder2.XmlNode.of(valueTag); + if (mapValueSchema.isListSchema()) { + this.writeList(mapValueSchema, val, valueNode, xmlns); + } else if (mapValueSchema.isMapSchema()) { + this.writeMap(mapValueSchema, val, valueNode, xmlns, true); + } else if (mapValueSchema.isStructSchema()) { + valueNode = this.writeStruct(mapValueSchema, val, xmlns); + } else { + this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns); + } + entry.addChildNode(valueNode); + }, "addKeyValue"); + if (flat) { + for (const key in map2) { + const val = map2[key]; + if (sparse || val != null) { + const entry = import_xml_builder2.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName()); + addKeyValue(entry, key, val); + container.addChildNode(entry); + } + } + } else { + let mapNode; + if (!containerIsMap) { + mapNode = import_xml_builder2.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName()); + if (xmlns) { + mapNode.addAttribute(xmlnsAttr, xmlns); + } + container.addChildNode(mapNode); + } + for (const key in map2) { + const val = map2[key]; + if (sparse || val != null) { + const entry = import_xml_builder2.XmlNode.of("entry"); + addKeyValue(entry, key, val); + (containerIsMap ? container : mapNode).addChildNode(entry); + } + } + } + } + writeSimple(_schema, value) { + if (null === value) { + throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value."); + } + const ns = NormalizedSchema.of(_schema); + let nodeContents = null; + if (value && typeof value === "object") { + if (ns.isBlobSchema()) { + nodeContents = (this.serdeContext?.base64Encoder ?? toBase64)(value); + } else if (ns.isTimestampSchema() && value instanceof Date) { + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case 5: + nodeContents = value.toISOString().replace(".000Z", "Z"); + break; + case 6: + nodeContents = dateToUtcString(value); + break; + case 7: + nodeContents = String(value.getTime() / 1e3); + break; + default: + console.warn("Missing timestamp format, using http date", value); + nodeContents = dateToUtcString(value); + break; + } + } else if (ns.isBigDecimalSchema() && value) { + if (value instanceof NumericValue) { + return value.string; + } + return String(value); + } else if (ns.isMapSchema() || ns.isListSchema()) { + throw new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."); + } else { + throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`); + } + } + if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) { + nodeContents = String(value); + } + if (ns.isStringSchema()) { + if (value === void 0 && ns.isIdempotencyToken()) { + nodeContents = generateIdempotencyToken(); + } else { + nodeContents = String(value); + } + } + if (nodeContents === null) { + throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`); + } + return nodeContents; + } + writeSimpleInto(_schema, value, into, parentXmlns) { + const nodeContents = this.writeSimple(_schema, value); + const ns = NormalizedSchema.of(_schema); + const content = new import_xml_builder2.XmlText(nodeContents); + const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns); + if (xmlns) { + into.addAttribute(xmlnsAttr, xmlns); + } + into.addChildNode(content); + } + getXmlnsAttribute(ns, parentXmlns) { + const traits = ns.getMergedTraits(); + const [prefix, xmlns] = traits.xmlNamespace ?? []; + if (xmlns && xmlns !== parentXmlns) { + return [prefix ? `xmlns:${prefix}` : "xmlns", xmlns]; + } + return [void 0, void 0]; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlCodec.js +var XmlCodec; +var init_XmlCodec = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlCodec.js"() { + init_ConfigurableSerdeContext2(); + init_XmlShapeDeserializer(); + init_XmlShapeSerializer(); + XmlCodec = class extends SerdeContextConfig2 { + static { + __name(this, "XmlCodec"); + } + settings; + constructor(settings) { + super(); + this.settings = settings; + } + createSerializer() { + const serializer = new XmlShapeSerializer(this.settings); + serializer.setSerdeContext(this.serdeContext); + return serializer; + } + createDeserializer() { + const deserializer = new XmlShapeDeserializer(this.settings); + deserializer.setSerdeContext(this.serdeContext); + return deserializer; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +var AwsRestXmlProtocol; +var init_AwsRestXmlProtocol = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js"() { + init_protocols(); + init_schema(); + init_ProtocolLib(); + init_parseXmlBody(); + init_XmlCodec(); + AwsRestXmlProtocol = class extends HttpBindingProtocol { + static { + __name(this, "AwsRestXmlProtocol"); + } + codec; + serializer; + deserializer; + mixin = new ProtocolLib(); + constructor(options) { + super(options); + const settings = { + timestampFormat: { + useTrait: true, + default: 5 + }, + httpBindings: true, + xmlNamespace: options.xmlNamespace, + serviceNamespace: options.defaultNamespace + }; + this.codec = new XmlCodec(settings); + this.serializer = new HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings); + this.deserializer = new HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings); + } + getPayloadCodec() { + return this.codec; + } + getShapeId() { + return "aws.protocols#restXml"; + } + async serializeRequest(operationSchema, input2, context) { + const request = await super.serializeRequest(operationSchema, input2, context); + const inputSchema = NormalizedSchema.of(operationSchema.input); + if (!request.headers["content-type"]) { + const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema); + if (contentType) { + request.headers["content-type"] = contentType; + } + } + if (typeof request.body === "string" && request.headers["content-type"] === this.getDefaultContentType() && !request.body.startsWith("' + request.body; + } + return request; + } + async deserializeResponse(operationSchema, context, response) { + return super.deserializeResponse(operationSchema, context, response); + } + async handleError(operationSchema, context, response, dataObject, metadata) { + const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? "Unknown"; + this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace); + if (dataObject.Error && typeof dataObject.Error === "object") { + for (const key of Object.keys(dataObject.Error)) { + dataObject[key] = dataObject.Error[key]; + if (key.toLowerCase() === "message") { + dataObject.message = dataObject.Error[key]; + } + } + } + if (dataObject.RequestId && !metadata.requestId) { + metadata.requestId = dataObject.RequestId; + } + const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata); + const ns = NormalizedSchema.of(errorSchema); + const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? "UnknownError"; + const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error; + const exception = new ErrorCtor({}); + await this.deserializeHttpMessage(errorSchema, context, response, dataObject); + const output2 = {}; + const errorDeserializer = this.codec.createDeserializer(); + for (const [name2, member] of ns.structIterator()) { + const target = member.getMergedTraits().xmlName ?? name2; + const value = dataObject.Error?.[target] ?? dataObject[target]; + output2[name2] = errorDeserializer.readSchema(member, value); + } + throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, { + $fault: ns.getMergedTraits().error, + message + }, output2), dataObject); + } + getDefaultContentType() { + return "application/xml"; + } + hasUnstructuredPayloadBinding(ns) { + for (const [, member] of ns.structIterator()) { + if (member.getMergedTraits().httpPayload) { + return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema()); + } + } + return false; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +var init_protocols2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js"() { + init_AwsRestJsonProtocol(); + init_AwsQueryProtocol(); + init_AwsRestXmlProtocol(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/protocol/S3RestXmlProtocol.js +var S3RestXmlProtocol; +var init_S3RestXmlProtocol = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/protocol/S3RestXmlProtocol.js"() { + init_protocols2(); + init_schema(); + S3RestXmlProtocol = class extends AwsRestXmlProtocol { + static { + __name(this, "S3RestXmlProtocol"); + } + async serializeRequest(operationSchema, input2, context) { + const request = await super.serializeRequest(operationSchema, input2, context); + const ns = NormalizedSchema.of(operationSchema.input); + const staticStructureSchema = ns.getSchema(); + let bucketMemberIndex = 0; + const requiredMemberCount = staticStructureSchema[6] ?? 0; + if (input2 && typeof input2 === "object") { + for (const [memberName, memberNs] of ns.structIterator()) { + if (++bucketMemberIndex > requiredMemberCount) { + break; + } + if (memberName === "Bucket") { + if (!input2.Bucket && memberNs.getMergedTraits().httpLabel) { + throw new Error(`No value provided for input HTTP label: Bucket.`); + } + break; + } + } + } + return request; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/NodeDisableMultiregionAccessPointConfigOptions.js +var NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME, NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME, NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS; +var init_NodeDisableMultiregionAccessPointConfigOptions = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/NodeDisableMultiregionAccessPointConfigOptions.js"() { + init_config(); + NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = "AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS"; + NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = "s3_disable_multiregion_access_points"; + NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => booleanSelector(env3, NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME, SelectorType.CONFIG), "configFileSelector"), + default: false + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/NodeUseArnRegionConfigOptions.js +var NODE_USE_ARN_REGION_ENV_NAME, NODE_USE_ARN_REGION_INI_NAME, NODE_USE_ARN_REGION_CONFIG_OPTIONS; +var init_NodeUseArnRegionConfigOptions = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/NodeUseArnRegionConfigOptions.js"() { + init_config(); + NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION"; + NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region"; + NODE_USE_ARN_REGION_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => booleanSelector(env3, NODE_USE_ARN_REGION_ENV_NAME, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, NODE_USE_ARN_REGION_INI_NAME, SelectorType.CONFIG), "configFileSelector"), + default: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/bucketHostnameUtils.js +var DOMAIN_PATTERN, IP_ADDRESS_PATTERN, DOTS_PATTERN, DOT_PATTERN, S3_HOSTNAME_PATTERN, S3_US_EAST_1_ALTNAME_PATTERN, AWS_PARTITION_SUFFIX, isBucketNameOptions, isDnsCompatibleBucketName, getRegionalSuffix, getSuffix, getSuffixForArnEndpoint, validateArnEndpointOptions, validateService, validateS3Service, validateOutpostService, validatePartition, validateRegion, validateRegionalClient, validateAccountId, validateDNSHostLabel, validateCustomEndpoint, getArnResources, validateNoDualstack, validateNoFIPS, validateMrapAlias; +var init_bucketHostnameUtils = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/bucketHostnameUtils.js"() { + DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/; + IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; + DOTS_PATTERN = /\.\./; + DOT_PATTERN = /\./; + S3_HOSTNAME_PATTERN = /^(.+\.)?s3(-fips)?(\.dualstack)?[.-]([a-z0-9-]+)\./; + S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\.amazonaws\.com$/; + AWS_PARTITION_SUFFIX = "amazonaws.com"; + isBucketNameOptions = /* @__PURE__ */ __name((options) => typeof options.bucketName === "string", "isBucketNameOptions"); + isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), "isDnsCompatibleBucketName"); + getRegionalSuffix = /* @__PURE__ */ __name((hostname3) => { + const parts = hostname3.match(S3_HOSTNAME_PATTERN); + return [parts[4], hostname3.replace(new RegExp(`^${parts[0]}`), "")]; + }, "getRegionalSuffix"); + getSuffix = /* @__PURE__ */ __name((hostname3) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname3) ? ["us-east-1", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname3), "getSuffix"); + getSuffixForArnEndpoint = /* @__PURE__ */ __name((hostname3) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname3) ? [hostname3.replace(`.${AWS_PARTITION_SUFFIX}`, ""), AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname3), "getSuffixForArnEndpoint"); + validateArnEndpointOptions = /* @__PURE__ */ __name((options) => { + if (options.pathStyleEndpoint) { + throw new Error("Path-style S3 endpoint is not supported when bucket is an ARN"); + } + if (options.accelerateEndpoint) { + throw new Error("Accelerate endpoint is not supported when bucket is an ARN"); + } + if (!options.tlsCompatible) { + throw new Error("HTTPS is required when bucket is an ARN"); + } + }, "validateArnEndpointOptions"); + validateService = /* @__PURE__ */ __name((service) => { + if (service !== "s3" && service !== "s3-outposts" && service !== "s3-object-lambda") { + throw new Error("Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component"); + } + }, "validateService"); + validateS3Service = /* @__PURE__ */ __name((service) => { + if (service !== "s3") { + throw new Error("Expect 's3' in Accesspoint ARN service component"); + } + }, "validateS3Service"); + validateOutpostService = /* @__PURE__ */ __name((service) => { + if (service !== "s3-outposts") { + throw new Error("Expect 's3-posts' in Outpost ARN service component"); + } + }, "validateOutpostService"); + validatePartition = /* @__PURE__ */ __name((partition2, options) => { + if (partition2 !== options.clientPartition) { + throw new Error(`Partition in ARN is incompatible, got "${partition2}" but expected "${options.clientPartition}"`); + } + }, "validatePartition"); + validateRegion = /* @__PURE__ */ __name((region, options) => { + }, "validateRegion"); + validateRegionalClient = /* @__PURE__ */ __name((region) => { + if (["s3-external-1", "aws-global"].includes(region)) { + throw new Error(`Client region ${region} is not regional`); + } + }, "validateRegionalClient"); + validateAccountId = /* @__PURE__ */ __name((accountId) => { + if (!/[0-9]{12}/.exec(accountId)) { + throw new Error("Access point ARN accountID does not match regex '[0-9]{12}'"); + } + }, "validateAccountId"); + validateDNSHostLabel = /* @__PURE__ */ __name((label, options = { tlsCompatible: true }) => { + if (label.length >= 64 || !/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(label) || /(\d+\.){3}\d+/.test(label) || /[.-]{2}/.test(label) || options?.tlsCompatible && DOT_PATTERN.test(label)) { + throw new Error(`Invalid DNS label ${label}`); + } + }, "validateDNSHostLabel"); + validateCustomEndpoint = /* @__PURE__ */ __name((options) => { + if (options.isCustomEndpoint) { + if (options.dualstackEndpoint) + throw new Error("Dualstack endpoint is not supported with custom endpoint"); + if (options.accelerateEndpoint) + throw new Error("Accelerate endpoint is not supported with custom endpoint"); + } + }, "validateCustomEndpoint"); + getArnResources = /* @__PURE__ */ __name((resource) => { + const delimiter = resource.includes(":") ? ":" : "/"; + const [resourceType, ...rest] = resource.split(delimiter); + if (resourceType === "accesspoint") { + if (rest.length !== 1 || rest[0] === "") { + throw new Error(`Access Point ARN should have one resource accesspoint${delimiter}{accesspointname}`); + } + return { accesspointName: rest[0] }; + } else if (resourceType === "outpost") { + if (!rest[0] || rest[1] !== "accesspoint" || !rest[2] || rest.length !== 3) { + throw new Error(`Outpost ARN should have resource outpost${delimiter}{outpostId}${delimiter}accesspoint${delimiter}{accesspointName}`); + } + const [outpostId, _, accesspointName] = rest; + return { outpostId, accesspointName }; + } else { + throw new Error(`ARN resource should begin with 'accesspoint${delimiter}' or 'outpost${delimiter}'`); + } + }, "getArnResources"); + validateNoDualstack = /* @__PURE__ */ __name((dualstackEndpoint) => { + }, "validateNoDualstack"); + validateNoFIPS = /* @__PURE__ */ __name((useFipsEndpoint) => { + if (useFipsEndpoint) + throw new Error(`FIPS region is not supported with Outpost.`); + }, "validateNoFIPS"); + validateMrapAlias = /* @__PURE__ */ __name((name2) => { + try { + name2.split(".").forEach((label) => { + validateDNSHostLabel(label); + }); + } catch (e5) { + throw new Error(`"${name2}" is not a DNS compatible name.`); + } + }, "validateMrapAlias"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/bucketHostname.js +var bucketHostname, getEndpointFromBucketName, getEndpointFromArn, getEndpointFromObjectLambdaArn, getEndpointFromMRAPArn, getEndpointFromOutpostArn, getEndpointFromAccessPointArn; +var init_bucketHostname = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/bucketHostname.js"() { + init_bucketHostnameUtils(); + bucketHostname = /* @__PURE__ */ __name((options) => { + validateCustomEndpoint(options); + return isBucketNameOptions(options) ? getEndpointFromBucketName(options) : getEndpointFromArn(options); + }, "bucketHostname"); + getEndpointFromBucketName = /* @__PURE__ */ __name(({ accelerateEndpoint = false, clientRegion: region, baseHostname, bucketName, dualstackEndpoint = false, fipsEndpoint = false, pathStyleEndpoint = false, tlsCompatible = true, isCustomEndpoint = false }) => { + const [clientRegion, hostnameSuffix] = isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname); + if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || tlsCompatible && DOT_PATTERN.test(bucketName)) { + return { + bucketEndpoint: false, + hostname: dualstackEndpoint ? `s3.dualstack.${clientRegion}.${hostnameSuffix}` : baseHostname + }; + } + if (accelerateEndpoint) { + baseHostname = `s3-accelerate${dualstackEndpoint ? ".dualstack" : ""}.${hostnameSuffix}`; + } else if (dualstackEndpoint) { + baseHostname = `s3.dualstack.${clientRegion}.${hostnameSuffix}`; + } + return { + bucketEndpoint: true, + hostname: `${bucketName}.${baseHostname}` + }; + }, "getEndpointFromBucketName"); + getEndpointFromArn = /* @__PURE__ */ __name((options) => { + const { isCustomEndpoint, baseHostname, clientRegion } = options; + const hostnameSuffix = isCustomEndpoint ? baseHostname : getSuffixForArnEndpoint(baseHostname)[1]; + const { pathStyleEndpoint, accelerateEndpoint = false, fipsEndpoint = false, tlsCompatible = true, bucketName, clientPartition = "aws" } = options; + validateArnEndpointOptions({ pathStyleEndpoint, accelerateEndpoint, tlsCompatible }); + const { service, partition: partition2, accountId, region, resource } = bucketName; + validateService(service); + validatePartition(partition2, { clientPartition }); + validateAccountId(accountId); + const { accesspointName, outpostId } = getArnResources(resource); + if (service === "s3-object-lambda") { + return getEndpointFromObjectLambdaArn({ ...options, tlsCompatible, bucketName, accesspointName, hostnameSuffix }); + } + if (region === "") { + return getEndpointFromMRAPArn({ ...options, clientRegion, mrapAlias: accesspointName, hostnameSuffix }); + } + if (outpostId) { + return getEndpointFromOutpostArn({ ...options, clientRegion, outpostId, accesspointName, hostnameSuffix }); + } + return getEndpointFromAccessPointArn({ ...options, clientRegion, accesspointName, hostnameSuffix }); + }, "getEndpointFromArn"); + getEndpointFromObjectLambdaArn = /* @__PURE__ */ __name(({ dualstackEndpoint = false, fipsEndpoint = false, tlsCompatible = true, useArnRegion, clientRegion, clientSigningRegion = clientRegion, accesspointName, bucketName, hostnameSuffix }) => { + const { accountId, region, service } = bucketName; + validateRegionalClient(clientRegion); + const DNSHostLabel = `${accesspointName}-${accountId}`; + validateDNSHostLabel(DNSHostLabel, { tlsCompatible }); + const endpointRegion = useArnRegion ? region : clientRegion; + const signingRegion = useArnRegion ? region : clientSigningRegion; + return { + bucketEndpoint: true, + hostname: `${DNSHostLabel}.${service}${fipsEndpoint ? "-fips" : ""}.${endpointRegion}.${hostnameSuffix}`, + signingRegion, + signingService: service + }; + }, "getEndpointFromObjectLambdaArn"); + getEndpointFromMRAPArn = /* @__PURE__ */ __name(({ disableMultiregionAccessPoints, dualstackEndpoint = false, isCustomEndpoint, mrapAlias, hostnameSuffix }) => { + if (disableMultiregionAccessPoints === true) { + throw new Error("SDK is attempting to use a MRAP ARN. Please enable to feature."); + } + validateMrapAlias(mrapAlias); + return { + bucketEndpoint: true, + hostname: `${mrapAlias}${isCustomEndpoint ? "" : `.accesspoint.s3-global`}.${hostnameSuffix}`, + signingRegion: "*" + }; + }, "getEndpointFromMRAPArn"); + getEndpointFromOutpostArn = /* @__PURE__ */ __name(({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, outpostId, dualstackEndpoint = false, fipsEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix }) => { + validateRegionalClient(clientRegion); + const DNSHostLabel = `${accesspointName}-${bucketName.accountId}`; + validateDNSHostLabel(DNSHostLabel, { tlsCompatible }); + const endpointRegion = useArnRegion ? bucketName.region : clientRegion; + const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion; + validateOutpostService(bucketName.service); + validateDNSHostLabel(outpostId, { tlsCompatible }); + validateNoFIPS(fipsEndpoint); + const hostnamePrefix = `${DNSHostLabel}.${outpostId}`; + return { + bucketEndpoint: true, + hostname: `${hostnamePrefix}${isCustomEndpoint ? "" : `.s3-outposts.${endpointRegion}`}.${hostnameSuffix}`, + signingRegion, + signingService: "s3-outposts" + }; + }, "getEndpointFromOutpostArn"); + getEndpointFromAccessPointArn = /* @__PURE__ */ __name(({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, dualstackEndpoint = false, fipsEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix }) => { + validateRegionalClient(clientRegion); + const hostnamePrefix = `${accesspointName}-${bucketName.accountId}`; + validateDNSHostLabel(hostnamePrefix, { tlsCompatible }); + const endpointRegion = useArnRegion ? bucketName.region : clientRegion; + const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion; + validateS3Service(bucketName.service); + return { + bucketEndpoint: true, + hostname: `${hostnamePrefix}${isCustomEndpoint ? "" : `.s3-accesspoint${fipsEndpoint ? "-fips" : ""}${dualstackEndpoint ? ".dualstack" : ""}.${endpointRegion}`}.${hostnameSuffix}`, + signingRegion + }; + }, "getEndpointFromAccessPointArn"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/bucketEndpointMiddleware.js +var bucketEndpointMiddleware2, bucketEndpointMiddlewareOptions2, getBucketEndpointPlugin; +var init_bucketEndpointMiddleware = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/bucketEndpointMiddleware.js"() { + init_util2(); + init_protocols(); + init_bucketHostname(); + bucketEndpointMiddleware2 = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { + const { Bucket: bucketName } = args.input; + let replaceBucketInPath = options.bucketEndpoint; + const request = args.request; + if (HttpRequest.isInstance(request)) { + if (options.bucketEndpoint) { + request.hostname = bucketName; + } else if (validate2(bucketName)) { + const bucketArn = parse3(bucketName); + const clientRegion = await options.region(); + const useDualstackEndpoint = await options.useDualstackEndpoint(); + const useFipsEndpoint = await options.useFipsEndpoint(); + const { partition: partition2, signingRegion = clientRegion } = await options.regionInfoProvider(clientRegion, { useDualstackEndpoint, useFipsEndpoint }) || {}; + const useArnRegion = await options.useArnRegion(); + const { hostname: hostname3, bucketEndpoint, signingRegion: modifiedSigningRegion, signingService } = bucketHostname({ + bucketName: bucketArn, + baseHostname: request.hostname, + accelerateEndpoint: options.useAccelerateEndpoint, + dualstackEndpoint: useDualstackEndpoint, + fipsEndpoint: useFipsEndpoint, + pathStyleEndpoint: options.forcePathStyle, + tlsCompatible: request.protocol === "https:", + useArnRegion, + clientPartition: partition2, + clientSigningRegion: signingRegion, + clientRegion, + isCustomEndpoint: options.isCustomEndpoint, + disableMultiregionAccessPoints: await options.disableMultiregionAccessPoints() + }); + if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) { + context["signing_region"] = modifiedSigningRegion; + } + if (signingService && signingService !== "s3") { + context["signing_service"] = signingService; + } + request.hostname = hostname3; + replaceBucketInPath = bucketEndpoint; + } else { + const clientRegion = await options.region(); + const dualstackEndpoint = await options.useDualstackEndpoint(); + const fipsEndpoint = await options.useFipsEndpoint(); + const { hostname: hostname3, bucketEndpoint } = bucketHostname({ + bucketName, + clientRegion, + baseHostname: request.hostname, + accelerateEndpoint: options.useAccelerateEndpoint, + dualstackEndpoint, + fipsEndpoint, + pathStyleEndpoint: options.forcePathStyle, + tlsCompatible: request.protocol === "https:", + isCustomEndpoint: options.isCustomEndpoint + }); + request.hostname = hostname3; + replaceBucketInPath = bucketEndpoint; + } + if (replaceBucketInPath) { + request.path = request.path.replace(/^(\/)?[^\/]+/, ""); + if (request.path === "") { + request.path = "/"; + } + } + } + return next({ ...args, request }); + }, "bucketEndpointMiddleware"); + bucketEndpointMiddlewareOptions2 = { + tags: ["BUCKET_ENDPOINT"], + name: "bucketEndpointMiddleware", + relation: "before", + toMiddleware: "hostHeaderMiddleware", + override: true + }; + getBucketEndpointPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.addRelativeTo(bucketEndpointMiddleware2(options), bucketEndpointMiddlewareOptions2); + }, "applyToStack") + }), "getBucketEndpointPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/configurations.js +function resolveBucketEndpointConfig(input2) { + const { bucketEndpoint = false, forcePathStyle = false, useAccelerateEndpoint = false, useArnRegion, disableMultiregionAccessPoints = false } = input2; + return Object.assign(input2, { + bucketEndpoint, + forcePathStyle, + useAccelerateEndpoint, + useArnRegion: typeof useArnRegion === "function" ? useArnRegion : () => Promise.resolve(useArnRegion), + disableMultiregionAccessPoints: typeof disableMultiregionAccessPoints === "function" ? disableMultiregionAccessPoints : () => Promise.resolve(disableMultiregionAccessPoints) + }); +} +var init_configurations3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-bucket-endpoint/configurations.js"() { + __name(resolveBucketEndpointConfig, "resolveBucketEndpointConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-expect-continue/middleware-expect-continue.js +function addExpectContinueMiddleware(options) { + return (next) => async (args) => { + const { request } = args; + if (options.expectContinueHeader !== false && HttpRequest.isInstance(request) && request.body && options.runtime === "node" && options.requestHandler?.constructor?.name !== "FetchHttpHandler") { + let sendHeader = true; + if (typeof options.expectContinueHeader === "number") { + try { + const bodyLength = Number(request.headers?.["content-length"]) ?? options.bodyLengthChecker?.(request.body) ?? Infinity; + sendHeader = bodyLength >= options.expectContinueHeader; + } catch (e5) { + } + } else { + sendHeader = !!options.expectContinueHeader; + } + if (sendHeader) { + request.headers.Expect = "100-continue"; + } + } + return next({ + ...args, + request + }); + }; +} +var addExpectContinueMiddlewareOptions, getAddExpectContinuePlugin; +var init_middleware_expect_continue = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-expect-continue/middleware-expect-continue.js"() { + init_protocols(); + __name(addExpectContinueMiddleware, "addExpectContinueMiddleware"); + addExpectContinueMiddlewareOptions = { + step: "build", + tags: ["SET_EXPECT_HEADER", "EXPECT_HEADER"], + name: "addExpectContinueMiddleware", + override: true + }; + getAddExpectContinuePlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions); + }, "applyToStack") + }), "getAddExpectContinuePlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-location-constraint/middleware-location-constraint.js +function locationConstraintMiddleware(options) { + return (next) => async (args) => { + const { CreateBucketConfiguration } = args.input; + const region = await options.region(); + if (!CreateBucketConfiguration?.LocationConstraint && !CreateBucketConfiguration?.Location) { + if (region !== "us-east-1") { + args.input.CreateBucketConfiguration = args.input.CreateBucketConfiguration ?? {}; + args.input.CreateBucketConfiguration.LocationConstraint = region; + } + } + return next(args); + }; +} +var locationConstraintMiddlewareOptions, getLocationConstraintPlugin; +var init_middleware_location_constraint = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-location-constraint/middleware-location-constraint.js"() { + __name(locationConstraintMiddleware, "locationConstraintMiddleware"); + locationConstraintMiddlewareOptions = { + step: "initialize", + tags: ["LOCATION_CONSTRAINT", "CREATE_BUCKET_CONFIGURATION"], + name: "locationConstraintMiddleware", + override: true + }; + getLocationConstraintPlugin = /* @__PURE__ */ __name((config3) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(locationConstraintMiddleware(config3), locationConstraintMiddlewareOptions); + }, "applyToStack") + }), "getLocationConstraintPlugin"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-location-constraint/configuration.js +function resolveLocationConstraintConfig(input2) { + return input2; +} +var init_configuration2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-location-constraint/configuration.js"() { + __name(resolveLocationConstraintConfig, "resolveLocationConstraintConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-ssec/middleware-ssec.js +function ssecMiddleware(options) { + return (next) => async (args) => { + const input2 = { ...args.input }; + const properties = [ + { + target: "SSECustomerKey", + hash: "SSECustomerKeyMD5" + }, + { + target: "CopySourceSSECustomerKey", + hash: "CopySourceSSECustomerKeyMD5" + } + ]; + for (const prop of properties) { + const value = input2[prop.target]; + if (value) { + let valueForHash; + if (typeof value === "string") { + if (isValidBase64EncodedSSECustomerKey(value, options)) { + valueForHash = options.base64Decoder(value); + } else { + valueForHash = options.utf8Decoder(value); + input2[prop.target] = options.base64Encoder(valueForHash); + } + } else { + valueForHash = ArrayBuffer.isView(value) ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength) : new Uint8Array(value); + input2[prop.target] = options.base64Encoder(valueForHash); + } + const hash3 = new options.md5(); + hash3.update(valueForHash); + input2[prop.hash] = options.base64Encoder(await hash3.digest()); + } + } + return next({ + ...args, + input: input2 + }); + }; +} +function isValidBase64EncodedSSECustomerKey(str, options) { + const base64Regex = /^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/; + if (!base64Regex.test(str)) + return false; + try { + const decodedBytes = options.base64Decoder(str); + return decodedBytes.length === 32; + } catch { + return false; + } +} +var ssecMiddlewareOptions, getSsecPlugin; +var init_middleware_ssec = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/middleware-ssec/middleware-ssec.js"() { + __name(ssecMiddleware, "ssecMiddleware"); + ssecMiddlewareOptions = { + name: "ssecMiddleware", + step: "initialize", + tags: ["SSE"], + override: true + }; + getSsecPlugin = /* @__PURE__ */ __name((config3) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(ssecMiddleware(config3), ssecMiddlewareOptions); + }, "applyToStack") + }), "getSsecPlugin"); + __name(isValidBase64EncodedSSECustomerKey, "isValidBase64EncodedSSECustomerKey"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/index.js +var s3_exports = {}; +__export(s3_exports, { + NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS, + NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME, + NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME, + NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS: () => NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS, + NODE_USE_ARN_REGION_CONFIG_OPTIONS: () => NODE_USE_ARN_REGION_CONFIG_OPTIONS, + NODE_USE_ARN_REGION_ENV_NAME: () => NODE_USE_ARN_REGION_ENV_NAME, + NODE_USE_ARN_REGION_INI_NAME: () => NODE_USE_ARN_REGION_INI_NAME, + S3ExpressIdentityCache: () => S3ExpressIdentityCache, + S3ExpressIdentityCacheEntry: () => S3ExpressIdentityCacheEntry, + S3ExpressIdentityProviderImpl: () => S3ExpressIdentityProviderImpl, + S3RestXmlProtocol: () => S3RestXmlProtocol, + SignatureV4S3Express: () => SignatureV4S3Express, + addExpectContinueMiddleware: () => addExpectContinueMiddleware, + addExpectContinueMiddlewareOptions: () => addExpectContinueMiddlewareOptions, + bucketEndpointMiddleware: () => bucketEndpointMiddleware2, + bucketEndpointMiddlewareOptions: () => bucketEndpointMiddlewareOptions2, + bucketHostname: () => bucketHostname, + checkContentLengthHeader: () => checkContentLengthHeader, + checkContentLengthHeaderMiddlewareOptions: () => checkContentLengthHeaderMiddlewareOptions, + getAddExpectContinuePlugin: () => getAddExpectContinuePlugin, + getArnResources: () => getArnResources, + getBucketEndpointPlugin: () => getBucketEndpointPlugin, + getCheckContentLengthHeaderPlugin: () => getCheckContentLengthHeaderPlugin, + getLocationConstraintPlugin: () => getLocationConstraintPlugin, + getRegionRedirectMiddlewarePlugin: () => getRegionRedirectMiddlewarePlugin, + getS3ExpiresMiddlewarePlugin: () => getS3ExpiresMiddlewarePlugin, + getS3ExpressHttpSigningPlugin: () => getS3ExpressHttpSigningPlugin, + getS3ExpressPlugin: () => getS3ExpressPlugin, + getSsecPlugin: () => getSsecPlugin, + getSuffixForArnEndpoint: () => getSuffixForArnEndpoint, + getThrow200ExceptionsPlugin: () => getThrow200ExceptionsPlugin, + getValidateBucketNamePlugin: () => getValidateBucketNamePlugin, + isValidBase64EncodedSSECustomerKey: () => isValidBase64EncodedSSECustomerKey, + locationConstraintMiddleware: () => locationConstraintMiddleware, + locationConstraintMiddlewareOptions: () => locationConstraintMiddlewareOptions, + regionRedirectEndpointMiddleware: () => regionRedirectEndpointMiddleware, + regionRedirectEndpointMiddlewareOptions: () => regionRedirectEndpointMiddlewareOptions, + regionRedirectMiddleware: () => regionRedirectMiddleware, + regionRedirectMiddlewareOptions: () => regionRedirectMiddlewareOptions, + resolveBucketEndpointConfig: () => resolveBucketEndpointConfig, + resolveLocationConstraintConfig: () => resolveLocationConstraintConfig, + resolveS3Config: () => resolveS3Config, + s3ExpiresMiddleware: () => s3ExpiresMiddleware, + s3ExpiresMiddlewareOptions: () => s3ExpiresMiddlewareOptions, + s3ExpressHttpSigningMiddleware: () => s3ExpressHttpSigningMiddleware, + s3ExpressHttpSigningMiddlewareOptions: () => s3ExpressHttpSigningMiddlewareOptions, + s3ExpressMiddleware: () => s3ExpressMiddleware, + s3ExpressMiddlewareOptions: () => s3ExpressMiddlewareOptions, + ssecMiddleware: () => ssecMiddleware, + ssecMiddlewareOptions: () => ssecMiddlewareOptions, + throw200ExceptionsMiddleware: () => throw200ExceptionsMiddleware, + throw200ExceptionsMiddlewareOptions: () => throw200ExceptionsMiddlewareOptions, + validateAccountId: () => validateAccountId, + validateBucketNameMiddleware: () => validateBucketNameMiddleware, + validateBucketNameMiddlewareOptions: () => validateBucketNameMiddlewareOptions, + validateDNSHostLabel: () => validateDNSHostLabel, + validateNoDualstack: () => validateNoDualstack, + validateNoFIPS: () => validateNoFIPS, + validateOutpostService: () => validateOutpostService, + validatePartition: () => validatePartition, + validateRegion: () => validateRegion +}); +var init_s3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.972.80/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/submodules/s3/index.js"() { + init_check_content_length_header(); + init_region_redirect_endpoint_middleware(); + init_region_redirect_middleware(); + init_s3Configuration(); + init_s3_expires_middleware(); + init_S3ExpressIdentityCache(); + init_S3ExpressIdentityCacheEntry(); + init_S3ExpressIdentityProviderImpl(); + init_SignatureV4S3Express(); + init_constants5(); + init_s3ExpressMiddleware(); + init_s3ExpressHttpSigningMiddleware(); + init_throw_200_exceptions(); + init_validate_bucket_name(); + init_S3RestXmlProtocol(); + init_NodeDisableMultiregionAccessPointConfigOptions(); + init_NodeUseArnRegionConfigOptions(); + init_bucketEndpointMiddleware(); + init_bucketHostname(); + init_configurations3(); + init_bucketHostnameUtils(); + init_middleware_expect_continue(); + init_middleware_location_constraint(); + init_configuration2(); + init_middleware_ssec(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js +var getDateHeader, getAgeHeader; +var init_getDateHeader = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js"() { + init_protocols(); + getDateHeader = /* @__PURE__ */ __name((response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, "getDateHeader"); + getAgeHeader = /* @__PURE__ */ __name((response) => HttpResponse.isInstance(response) ? response.headers?.age ?? response.headers?.Age : void 0, "getAgeHeader"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js +var getSkewCorrectedDate; +var init_getSkewCorrectedDate = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js"() { + getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), "getSkewCorrectedDate"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js +var getUpdatedSystemClockOffset; +var init_getUpdatedSystemClockOffset = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js"() { + getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset, timeRequestSent, ageHeader) => { + if (ageHeader !== void 0) { + return currentSystemClockOffset; + } + const serverTime = Date.parse(clockTime); + const timeResponseReceived = Date.now(); + if (timeRequestSent !== void 0 && timeResponseReceived - timeRequestSent > 9e5) { + return currentSystemClockOffset; + } + const candidateSkew = timeRequestSent !== void 0 ? serverTime - (timeRequestSent + timeResponseReceived) / 2 : serverTime - timeResponseReceived; + return candidateSkew; + }, "getUpdatedSystemClockOffset"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js +var init_utils = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js"() { + init_getDateHeader(); + init_getSkewCorrectedDate(); + init_getUpdatedSystemClockOffset(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +var import_types5, throwSigningPropertyError, hasEventStreamOutput, validateSigningProperties, AwsSdkSigV4Signer, AWSSDKSigV4Signer; +var init_AwsSdkSigV4Signer = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js"() { + init_protocols(); + import_types5 = __toESM(require_dist_cjs()); + init_utils(); + throwSigningPropertyError = /* @__PURE__ */ __name((name2, property) => { + if (!property) { + throw new Error(`Property \`${name2}\` is not resolved for AWS SDK SigV4Auth`); + } + return property; + }, "throwSigningPropertyError"); + hasEventStreamOutput = /* @__PURE__ */ __name((signingProperties) => { + const context = signingProperties.context; + const eventStream = context?.[import_types5.SMITHY_CONTEXT_KEY]?.eventStream; + return eventStream?.output === true; + }, "hasEventStreamOutput"); + validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => { + const context = throwSigningPropertyError("context", signingProperties.context); + const config3 = throwSigningPropertyError("config", signingProperties.config); + const authScheme = context.endpointV2?.properties?.authSchemes?.[0]; + const signerFunction = throwSigningPropertyError("signer", config3.signer); + const signer = await signerFunction(authScheme); + const signingRegion = signingProperties?.signingRegion; + const signingRegionSet = signingProperties?.signingRegionSet; + const signingName = signingProperties?.signingName; + return { + config: config3, + signer, + signingRegion, + signingRegionSet, + signingName + }; + }, "validateSigningProperties"); + AwsSdkSigV4Signer = class { + static { + __name(this, "AwsSdkSigV4Signer"); + } + async sign(httpRequest, identity, signingProperties) { + if (!HttpRequest.isInstance(httpRequest)) { + throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); + } + const validatedProps = await validateSigningProperties(signingProperties); + const { config: config3, signer } = validatedProps; + let { signingRegion, signingName } = validatedProps; + const handlerExecutionContext = signingProperties.context; + if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) { + const [first, second] = handlerExecutionContext.authSchemes; + if (first?.name === "sigv4a" && second?.name === "sigv4") { + signingRegion = second?.signingRegion ?? signingRegion; + signingName = second?.signingName ?? signingName; + } + } + const noSkewCorrection = await config3.disableClockSkewCorrection?.() === true; + signingProperties._disableClockSkewCorrection = noSkewCorrection; + const skipSkewSampling = noSkewCorrection || hasEventStreamOutput(signingProperties); + signingProperties._skipClockSkewSampling = skipSkewSampling; + if (!skipSkewSampling) { + signingProperties._preRequestSystemClockOffset = config3.systemClockOffset; + signingProperties._requestSentAt = Date.now(); + } + const signedRequest = await signer.sign(httpRequest, { + signingDate: noSkewCorrection ? /* @__PURE__ */ new Date() : getSkewCorrectedDate(config3.systemClockOffset), + signingRegion, + signingService: signingName + }); + return signedRequest; + } + errorHandler(signingProperties) { + return (error62) => { + const errorException = error62; + if (!signingProperties._skipClockSkewSampling && !signingProperties._disableClockSkewCorrection) { + const serverTime = errorException.ServerTime ?? getDateHeader(errorException.$response); + if (serverTime) { + const config3 = throwSigningPropertyError("config", signingProperties.config); + const preRequestOffset = signingProperties._preRequestSystemClockOffset; + const timeRequestSent = signingProperties._requestSentAt; + const ageHeader = getAgeHeader(errorException.$response); + const newOffset = getUpdatedSystemClockOffset(serverTime, config3.systemClockOffset, timeRequestSent, ageHeader); + config3.systemClockOffset = newOffset; + const skewExceedsThreshold = Math.abs(newOffset) >= 24e4; + const isLocalCorrection = newOffset !== preRequestOffset; + const isConcurrentCorrection = preRequestOffset !== void 0 && preRequestOffset !== newOffset; + if (skewExceedsThreshold && (isLocalCorrection || isConcurrentCorrection) && errorException.$metadata) { + errorException.$metadata.clockSkewCorrected = true; + } + } + } + throw error62; + }; + } + successHandler(httpResponse, signingProperties) { + if (signingProperties._skipClockSkewSampling || signingProperties._disableClockSkewCorrection) { + return; + } + const dateHeader = getDateHeader(httpResponse); + if (dateHeader) { + const config3 = throwSigningPropertyError("config", signingProperties.config); + const timeRequestSent = signingProperties._requestSentAt; + const ageHeader = getAgeHeader(httpResponse); + config3.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config3.systemClockOffset, timeRequestSent, ageHeader); + } + } + }; + AWSSDKSigV4Signer = AwsSdkSigV4Signer; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js +var AwsSdkSigV4ASigner; +var init_AwsSdkSigV4ASigner = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js"() { + init_protocols(); + init_utils(); + init_AwsSdkSigV4Signer(); + AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer { + static { + __name(this, "AwsSdkSigV4ASigner"); + } + async sign(httpRequest, identity, signingProperties) { + if (!HttpRequest.isInstance(httpRequest)) { + throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); + } + const { config: config3, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties); + const configResolvedSigningRegionSet = await config3.sigv4aSigningRegionSet?.(); + const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(","); + const noSkewCorrection = await config3.disableClockSkewCorrection?.() === true; + signingProperties._disableClockSkewCorrection = noSkewCorrection; + if (!noSkewCorrection) { + signingProperties._preRequestSystemClockOffset = config3.systemClockOffset; + signingProperties._requestSentAt = Date.now(); + } + const signedRequest = await signer.sign(httpRequest, { + signingDate: noSkewCorrection ? /* @__PURE__ */ new Date() : getSkewCorrectedDate(config3.systemClockOffset), + signingRegion: multiRegionOverride, + signingService: signingName + }); + return signedRequest; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.js +var getArrayForCommaSeparatedString; +var init_getArrayForCommaSeparatedString = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.js"() { + getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === "string" && str.length > 0 ? str.split(",").map((item) => item.trim()) : [], "getArrayForCommaSeparatedString"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.js +var getBearerTokenEnvKey; +var init_getBearerTokenEnvKey = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.js"() { + getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\s-]/g, "_").toUpperCase()}`, "getBearerTokenEnvKey"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.js +var NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY, NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY, NODE_AUTH_SCHEME_PREFERENCE_OPTIONS; +var init_NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.js"() { + init_getArrayForCommaSeparatedString(); + init_getBearerTokenEnvKey(); + NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = "AWS_AUTH_SCHEME_PREFERENCE"; + NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = "auth_scheme_preference"; + NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3, options) => { + if (options?.signingName) { + const bearerTokenKey = getBearerTokenEnvKey(options.signingName); + if (bearerTokenKey in env3) + return ["httpBearerAuth"]; + } + if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env3)) + return void 0; + return getArrayForCommaSeparatedString(env3[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]); + }, "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => { + if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) + return void 0; + return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]); + }, "configFileSelector"), + default: [] + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js +var resolveAwsSdkSigV4AConfig, NODE_SIGV4A_CONFIG_OPTIONS; +var init_resolveAwsSdkSigV4AConfig = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js"() { + init_dist_es(); + init_config(); + resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config3) => { + config3.sigv4aSigningRegionSet = normalizeProvider2(config3.sigv4aSigningRegionSet); + return config3; + }, "resolveAwsSdkSigV4AConfig"); + NODE_SIGV4A_CONFIG_OPTIONS = { + environmentVariableSelector(env3) { + if (env3.AWS_SIGV4A_SIGNING_REGION_SET) { + return env3.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map((_) => _.trim()); + } + throw new ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.", { + tryNextLink: true + }); + }, + configFileSelector(profile) { + if (profile.sigv4a_signing_region_set) { + return (profile.sigv4a_signing_region_set ?? "").split(",").map((_) => _.trim()); + } + throw new ProviderError("sigv4a_signing_region_set not set in profile.", { + tryNextLink: true + }); + }, + default: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +function normalizeCredentialProvider(config3, { credentials, credentialDefaultProvider }) { + let credentialsProvider; + if (credentials) { + if (!credentials?.memoized) { + credentialsProvider = memoizeIdentityProvider(credentials, isIdentityExpired, doesIdentityRequireRefresh); + } else { + credentialsProvider = credentials; + } + } else { + if (credentialDefaultProvider) { + credentialsProvider = normalizeProvider2(credentialDefaultProvider(Object.assign({}, config3, { + parentClientConfig: config3 + }))); + } else { + credentialsProvider = /* @__PURE__ */ __name(async () => { + throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured."); + }, "credentialsProvider"); + } + } + credentialsProvider.memoized = true; + return credentialsProvider; +} +function bindCallerConfig(config3, credentialsProvider) { + if (credentialsProvider.configBound) { + return credentialsProvider; + } + const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config3 }), "fn"); + fn.memoized = credentialsProvider.memoized; + fn.configBound = true; + return fn; +} +var import_signature_v4, bindResolveAwsSdkSigV4Config; +var init_resolveAwsSdkSigV4Config = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js"() { + init_client2(); + init_dist_es(); + import_signature_v4 = __toESM(require_dist_cjs2()); + bindResolveAwsSdkSigV4Config = /* @__PURE__ */ __name((defaultDisableClockSkewCorrection) => (config3) => { + let inputCredentials = config3.credentials; + let isUserSupplied = !!config3.credentials; + let resolvedCredentials = void 0; + Object.defineProperty(config3, "credentials", { + set(credentials) { + if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) { + isUserSupplied = true; + } + inputCredentials = credentials; + const memoizedProvider = normalizeCredentialProvider(config3, { + credentials: inputCredentials, + credentialDefaultProvider: config3.credentialDefaultProvider + }); + const boundProvider = bindCallerConfig(config3, memoizedProvider); + if (isUserSupplied && !boundProvider.attributed) { + const isCredentialObject = typeof inputCredentials === "object" && inputCredentials !== null; + resolvedCredentials = /* @__PURE__ */ __name(async (options) => { + const creds = await boundProvider(options); + const attributedCreds = creds; + if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) { + return setCredentialFeature(attributedCreds, "CREDENTIALS_CODE", "e"); + } + return attributedCreds; + }, "resolvedCredentials"); + resolvedCredentials.memoized = boundProvider.memoized; + resolvedCredentials.configBound = boundProvider.configBound; + resolvedCredentials.attributed = true; + } else { + resolvedCredentials = boundProvider; + } + }, + get() { + return resolvedCredentials; + }, + enumerable: true, + configurable: true + }); + config3.credentials = inputCredentials; + const { signingEscapePath = true, systemClockOffset = config3.systemClockOffset || 0, sha256: sha2562 } = config3; + let signer; + if (config3.signer) { + signer = normalizeProvider2(config3.signer); + } else if (config3.regionInfoProvider) { + signer = /* @__PURE__ */ __name(() => normalizeProvider2(config3.region)().then(async (region) => [ + await config3.regionInfoProvider(region, { + useFipsEndpoint: await config3.useFipsEndpoint(), + useDualstackEndpoint: await config3.useDualstackEndpoint() + }) || {}, + region + ]).then(([regionInfo, region]) => { + const { signingRegion, signingService } = regionInfo; + config3.signingRegion = config3.signingRegion || signingRegion || region; + config3.signingName = config3.signingName || signingService || config3.serviceId; + const params = { + ...config3, + credentials: config3.credentials, + region: config3.signingRegion, + service: config3.signingName, + sha256: sha2562, + uriEscapePath: signingEscapePath + }; + const SignerCtor = config3.signerConstructor || import_signature_v4.SignatureV4; + return new SignerCtor(params); + }), "signer"); + } else { + signer = /* @__PURE__ */ __name(async (authScheme) => { + authScheme = Object.assign({}, { + name: "sigv4", + signingName: config3.signingName || config3.defaultSigningName, + signingRegion: await normalizeProvider2(config3.region)(), + properties: {} + }, authScheme); + const signingRegion = authScheme.signingRegion; + const signingService = authScheme.signingName; + config3.signingRegion = config3.signingRegion || signingRegion; + config3.signingName = config3.signingName || signingService || config3.serviceId; + const params = { + ...config3, + credentials: config3.credentials, + region: config3.signingRegion, + service: config3.signingName, + sha256: sha2562, + uriEscapePath: signingEscapePath + }; + const SignerCtor = config3.signerConstructor || import_signature_v4.SignatureV4; + return new SignerCtor(params); + }, "signer"); + } + const resolvedConfig = Object.assign(config3, { + systemClockOffset, + signingEscapePath, + signer, + disableClockSkewCorrection: normalizeProvider2(config3.disableClockSkewCorrection ?? defaultDisableClockSkewCorrection) + }); + return resolvedConfig; + }, "bindResolveAwsSdkSigV4Config"); + __name(normalizeCredentialProvider, "normalizeCredentialProvider"); + __name(bindCallerConfig, "bindCallerConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js +var init_aws_sdk = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js"() { + init_AwsSdkSigV4Signer(); + init_AwsSdkSigV4ASigner(); + init_NODE_AUTH_SCHEME_PREFERENCE_OPTIONS(); + init_resolveAwsSdkSigV4AConfig(); + init_resolveAwsSdkSigV4Config(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.js +var ENV_DISABLE_CLOCK_SKEW_CORRECTION, CONFIG_DISABLE_CLOCK_SKEW_CORRECTION, NODE_DISABLE_CLOCK_SKEW_CORRECTION_CONFIG_OPTIONS; +var init_clock_skew_node_config = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.js"() { + init_config(); + ENV_DISABLE_CLOCK_SKEW_CORRECTION = "AWS_DISABLE_CLOCK_SKEW_CORRECTION"; + CONFIG_DISABLE_CLOCK_SKEW_CORRECTION = "disable_clock_skew_correction"; + NODE_DISABLE_CLOCK_SKEW_CORRECTION_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => booleanSelector(env3, ENV_DISABLE_CLOCK_SKEW_CORRECTION, SelectorType.ENV), "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => booleanSelector(profile, CONFIG_DISABLE_CLOCK_SKEW_CORRECTION, SelectorType.CONFIG), "configFileSelector"), + default: false + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.js +var DEFAULT_DISABLE_CLOCK_SKEW_CORRECTION; +var init_clock_skew_defaults = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.js"() { + init_config(); + init_clock_skew_node_config(); + DEFAULT_DISABLE_CLOCK_SKEW_CORRECTION = loadConfig(NODE_DISABLE_CLOCK_SKEW_CORRECTION_CONFIG_OPTIONS); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js +var httpAuthSchemes_exports = {}; +__export(httpAuthSchemes_exports, { + AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, + AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, + AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, + NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, + NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, + getBearerTokenEnvKey: () => getBearerTokenEnvKey, + resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, + resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, + resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, + validateSigningProperties: () => validateSigningProperties +}); +var resolveAwsSdkSigV4Config, resolveAWSSDKSigV4Config; +var init_httpAuthSchemes2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+core@3.978.4/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js"() { + init_aws_sdk(); + init_getBearerTokenEnvKey(); + init_aws_sdk(); + init_clock_skew_defaults(); + resolveAwsSdkSigV4Config = bindResolveAwsSdkSigV4Config(DEFAULT_DISABLE_CLOCK_SKEW_CORRECTION); + resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.972.75/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +var require_dist_cjs5 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.972.75/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js"(exports) { + var { setCredentialFeature: setCredentialFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var { CredentialsProviderError } = (init_config(), __toCommonJS(config_exports)); + var ENV_KEY = "AWS_ACCESS_KEY_ID"; + var ENV_SECRET = "AWS_SECRET_ACCESS_KEY"; + var ENV_SESSION = "AWS_SESSION_TOKEN"; + var ENV_EXPIRATION = "AWS_CREDENTIAL_EXPIRATION"; + var ENV_CREDENTIAL_SCOPE = "AWS_CREDENTIAL_SCOPE"; + var ENV_ACCOUNT_ID = "AWS_ACCOUNT_ID"; + var fromEnv = /* @__PURE__ */ __name((init2) => async () => { + init2?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv"); + const accessKeyId = process.env[ENV_KEY]; + const secretAccessKey = process.env[ENV_SECRET]; + const sessionToken = process.env[ENV_SESSION]; + const expiry = process.env[ENV_EXPIRATION]; + const credentialScope = process.env[ENV_CREDENTIAL_SCOPE]; + const accountId = process.env[ENV_ACCOUNT_ID]; + if (accessKeyId && secretAccessKey) { + const credentials = { + accessKeyId, + secretAccessKey, + ...sessionToken && { sessionToken }, + ...expiry && { expiration: new Date(expiry) }, + ...credentialScope && { credentialScope }, + ...accountId && { accountId } + }; + setCredentialFeature2(credentials, "CREDENTIALS_ENV_VARS", "g"); + return credentials; + } + throw new CredentialsProviderError("Unable to find environment variable credentials.", { logger: init2?.logger }); + }, "fromEnv"); + exports.ENV_ACCOUNT_ID = ENV_ACCOUNT_ID; + exports.ENV_CREDENTIAL_SCOPE = ENV_CREDENTIAL_SCOPE; + exports.ENV_EXPIRATION = ENV_EXPIRATION; + exports.ENV_KEY = ENV_KEY; + exports.ENV_SECRET = ENV_SECRET; + exports.ENV_SESSION = ENV_SESSION; + exports.fromEnv = fromEnv; + } +}); + +// ../../node_modules/.pnpm/@smithy+credential-provider-imds@4.5.2/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +var require_dist_cjs6 = __commonJS({ + "../../node_modules/.pnpm/@smithy+credential-provider-imds@4.5.2/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js"(exports) { + var { ProviderError: ProviderError2, CredentialsProviderError, loadConfig: loadConfig2 } = (init_config(), __toCommonJS(config_exports)); + var node_http = __require("node:http"); + var { parseUrl: parseUrl2 } = (init_protocols(), __toCommonJS(protocols_exports)); + var isImdsCredentials = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string", "isImdsCredentials"); + var fromImdsCredentials = /* @__PURE__ */ __name((creds) => ({ + accessKeyId: creds.AccessKeyId, + secretAccessKey: creds.SecretAccessKey, + sessionToken: creds.Token, + expiration: new Date(creds.Expiration), + ...creds.AccountId && { accountId: creds.AccountId } + }), "fromImdsCredentials"); + var DEFAULT_TIMEOUT = 1e3; + var DEFAULT_MAX_RETRIES = 0; + var providerConfigFromInit = /* @__PURE__ */ __name(({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT }) => ({ maxRetries, timeout }), "providerConfigFromInit"); + function httpRequest(options) { + return new Promise((resolve, reject) => { + const req2 = node_http.request({ + method: "GET", + ...options, + hostname: options.hostname?.replace(/^\[(.+)\]$/, "$1") + }); + req2.on("error", (err) => { + reject(Object.assign(new ProviderError2("Unable to connect to instance metadata service"), err)); + req2.destroy(); + }); + req2.on("timeout", () => { + reject(new ProviderError2("TimeoutError from instance metadata service")); + req2.destroy(); + }); + req2.on("response", (res) => { + const { statusCode = 400 } = res; + if (statusCode < 200 || 300 <= statusCode) { + reject(Object.assign(new ProviderError2("Error response received from instance metadata service"), { statusCode })); + req2.destroy(); + } + const chunks = []; + res.on("data", (chunk) => { + chunks.push(chunk); + }); + res.on("end", () => { + resolve(Buffer.concat(chunks)); + req2.destroy(); + }); + }); + req2.end(); + }); + } + __name(httpRequest, "httpRequest"); + var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { + let promise2 = toRetry(); + for (let i5 = 0; i5 < maxRetries; i5++) { + promise2 = promise2.catch(toRetry); + } + return promise2; + }, "retry"); + var ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; + var ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; + var ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; + var fromContainerMetadata = /* @__PURE__ */ __name((init2 = {}) => { + const { timeout, maxRetries } = providerConfigFromInit(init2); + return () => retry(async () => { + const requestOptions = await getCmdsUri({ logger: init2.logger }); + const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions)); + if (!isImdsCredentials(credsResponse)) { + throw new CredentialsProviderError("Invalid response received from instance metadata service.", { + logger: init2.logger + }); + } + return fromImdsCredentials(credsResponse); + }, maxRetries); + }, "fromContainerMetadata"); + var requestFromEcsImds = /* @__PURE__ */ __name(async (timeout, options) => { + if (process.env[ENV_CMDS_AUTH_TOKEN]) { + options.headers = { + ...options.headers, + Authorization: process.env[ENV_CMDS_AUTH_TOKEN] + }; + } + const buffer = await httpRequest({ + ...options, + timeout + }); + return buffer.toString(); + }, "requestFromEcsImds"); + var CMDS_IP = "169.254.170.2"; + var GREENGRASS_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1"]); + var GREENGRASS_PROTOCOLS = /* @__PURE__ */ new Set(["http:", "https:"]); + var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => { + if (process.env[ENV_CMDS_RELATIVE_URI]) { + return { + hostname: CMDS_IP, + path: process.env[ENV_CMDS_RELATIVE_URI] + }; + } + if (process.env[ENV_CMDS_FULL_URI]) { + let parsed2; + try { + parsed2 = new URL(process.env[ENV_CMDS_FULL_URI]); + } catch { + throw new CredentialsProviderError(`${process.env[ENV_CMDS_FULL_URI]} is not a valid container metadata service URL`, { tryNextLink: false, logger }); + } + if (!parsed2.hostname || !GREENGRASS_HOSTS.has(parsed2.hostname)) { + throw new CredentialsProviderError(`${parsed2.hostname} is not a valid container metadata service hostname`, { + tryNextLink: false, + logger + }); + } + if (!parsed2.protocol || !GREENGRASS_PROTOCOLS.has(parsed2.protocol)) { + throw new CredentialsProviderError(`${parsed2.protocol} is not a valid container metadata service protocol`, { + tryNextLink: false, + logger + }); + } + return { + protocol: parsed2.protocol, + hostname: parsed2.hostname, + path: parsed2.pathname + parsed2.search, + port: parsed2.port ? parseInt(parsed2.port, 10) : void 0 + }; + } + throw new CredentialsProviderError(`The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, { + tryNextLink: false, + logger + }); + }, "getCmdsUri"); + var InstanceMetadataV1FallbackError = class _InstanceMetadataV1FallbackError extends CredentialsProviderError { + static { + __name(this, "InstanceMetadataV1FallbackError"); + } + tryNextLink; + name = "InstanceMetadataV1FallbackError"; + constructor(message, tryNextLink = true) { + super(message, tryNextLink); + this.tryNextLink = tryNextLink; + Object.setPrototypeOf(this, _InstanceMetadataV1FallbackError.prototype); + } + }; + var Endpoint; + (function(Endpoint2) { + Endpoint2["IPv4"] = "http://169.254.169.254"; + Endpoint2["IPv6"] = "http://[fd00:ec2::254]"; + })(Endpoint || (Endpoint = {})); + var ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT"; + var CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint"; + var ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => env3[ENV_ENDPOINT_NAME], "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => profile[CONFIG_ENDPOINT_NAME], "configFileSelector"), + default: void 0 + }; + var EndpointMode; + (function(EndpointMode2) { + EndpointMode2["IPv4"] = "IPv4"; + EndpointMode2["IPv6"] = "IPv6"; + })(EndpointMode || (EndpointMode = {})); + var ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE"; + var CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode"; + var ENDPOINT_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => env3[ENV_ENDPOINT_MODE_NAME], "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => profile[CONFIG_ENDPOINT_MODE_NAME], "configFileSelector"), + default: EndpointMode.IPv4 + }; + var getInstanceMetadataEndpoint = /* @__PURE__ */ __name(async () => parseUrl2(await getFromEndpointConfig() || await getFromEndpointModeConfig()), "getInstanceMetadataEndpoint"); + var getFromEndpointConfig = /* @__PURE__ */ __name(async () => loadConfig2(ENDPOINT_CONFIG_OPTIONS)(), "getFromEndpointConfig"); + var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { + const endpointMode = await loadConfig2(ENDPOINT_MODE_CONFIG_OPTIONS)(); + switch (endpointMode) { + case EndpointMode.IPv4: + return Endpoint.IPv4; + case EndpointMode.IPv6: + return Endpoint.IPv6; + default: + throw new Error(`Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}`); + } + }, "getFromEndpointModeConfig"); + var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60; + var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60; + var STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html"; + var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name((credentials, logger) => { + const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS); + const newExpiration = new Date(Date.now() + refreshInterval * 1e3); + logger.warn(`Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. +For more information, please visit: ` + STATIC_STABILITY_DOC_URL); + const originalExpiration = credentials.originalExpiration ?? credentials.expiration; + return { + ...credentials, + ...originalExpiration ? { originalExpiration } : {}, + expiration: newExpiration + }; + }, "getExtendedInstanceMetadataCredentials"); + var staticStabilityProvider = /* @__PURE__ */ __name((provider, options = {}) => { + const logger = options?.logger || console; + let pastCredentials; + return async () => { + let credentials; + try { + credentials = await provider(); + if (credentials.expiration && credentials.expiration.getTime() < Date.now()) { + credentials = getExtendedInstanceMetadataCredentials(credentials, logger); + } + } catch (e5) { + if (pastCredentials) { + logger.warn("Credential renew failed: ", e5); + credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger); + } else { + throw e5; + } + } + pastCredentials = credentials; + return credentials; + }; + }, "staticStabilityProvider"); + var IMDS_PATH = "/latest/meta-data/iam/security-credentials/"; + var IMDS_TOKEN_PATH = "/latest/api/token"; + var AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED"; + var PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled"; + var X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token"; + var fromInstanceMetadata = /* @__PURE__ */ __name((init2 = {}) => staticStabilityProvider(getInstanceMetadataProvider(init2), { logger: init2.logger }), "fromInstanceMetadata"); + var getInstanceMetadataProvider = /* @__PURE__ */ __name((init2 = {}) => { + let disableFetchToken = false; + const { logger, profile } = init2; + const { timeout, maxRetries } = providerConfigFromInit(init2); + const getCredentials = /* @__PURE__ */ __name(async (maxRetries2, options) => { + const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null; + if (isImdsV1Fallback) { + let fallbackBlockedFromProfile = false; + let fallbackBlockedFromProcessEnv = false; + const configValue = await loadConfig2({ + environmentVariableSelector: /* @__PURE__ */ __name((env3) => { + const envValue = env3[AWS_EC2_METADATA_V1_DISABLED]; + fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false"; + if (envValue === void 0) { + throw new CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init2.logger }); + } + return fallbackBlockedFromProcessEnv; + }, "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile2) => { + const profileValue = profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED]; + fallbackBlockedFromProfile = !!profileValue && profileValue !== "false"; + return fallbackBlockedFromProfile; + }, "configFileSelector"), + default: false + }, { + profile + })(); + if (init2.ec2MetadataV1Disabled || configValue) { + const causes = []; + if (init2.ec2MetadataV1Disabled) + causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)"); + if (fallbackBlockedFromProfile) + causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`); + if (fallbackBlockedFromProcessEnv) + causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`); + throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(", ")}].`); + } + } + const imdsProfile = (await retry(async () => { + let profile2; + try { + profile2 = await getProfile(options); + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false; + } + throw err; + } + return profile2; + }, maxRetries2)).trim(); + return retry(async () => { + let creds; + try { + creds = await getCredentialsFromProfile(imdsProfile, options, init2); + } catch (err) { + if (err.statusCode === 401) { + disableFetchToken = false; + } + throw err; + } + return creds; + }, maxRetries2); + }, "getCredentials"); + return async () => { + const endpoint = await getInstanceMetadataEndpoint(); + if (disableFetchToken) { + logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)"); + return getCredentials(maxRetries, { ...endpoint, timeout }); + } else { + let token; + try { + token = (await getMetadataToken({ ...endpoint, timeout })).toString(); + } catch (error62) { + if (error62?.statusCode === 400) { + throw Object.assign(error62, { + message: "EC2 Metadata token request returned error" + }); + } else if (error62.message === "TimeoutError" || [403, 404, 405].includes(error62.statusCode)) { + disableFetchToken = true; + } + logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)"); + return getCredentials(maxRetries, { ...endpoint, timeout }); + } + return getCredentials(maxRetries, { + ...endpoint, + headers: { + [X_AWS_EC2_METADATA_TOKEN]: token + }, + timeout + }); + } + }; + }, "getInstanceMetadataProvider"); + var getMetadataToken = /* @__PURE__ */ __name(async (options) => httpRequest({ + ...options, + path: IMDS_TOKEN_PATH, + method: "PUT", + headers: { + "x-aws-ec2-metadata-token-ttl-seconds": "21600" + } + }), "getMetadataToken"); + var getProfile = /* @__PURE__ */ __name(async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), "getProfile"); + var getCredentialsFromProfile = /* @__PURE__ */ __name(async (profile, options, init2) => { + const credentialsResponse = JSON.parse((await httpRequest({ + ...options, + path: IMDS_PATH + profile + })).toString()); + if (!isImdsCredentials(credentialsResponse)) { + throw new CredentialsProviderError("Invalid response received from instance metadata service.", { + logger: init2.logger + }); + } + return fromImdsCredentials(credentialsResponse); + }, "getCredentialsFromProfile"); + exports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES; + exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT; + exports.ENV_CMDS_AUTH_TOKEN = ENV_CMDS_AUTH_TOKEN; + exports.ENV_CMDS_FULL_URI = ENV_CMDS_FULL_URI; + exports.ENV_CMDS_RELATIVE_URI = ENV_CMDS_RELATIVE_URI; + exports.Endpoint = Endpoint; + exports.fromContainerMetadata = fromContainerMetadata; + exports.fromInstanceMetadata = fromInstanceMetadata; + exports.getInstanceMetadataEndpoint = getInstanceMetadataEndpoint; + exports.httpRequest = httpRequest; + exports.providerConfigFromInit = providerConfigFromInit; + } +}); + +// ../../node_modules/.pnpm/@smithy+node-http-handler@4.12.1/node_modules/@smithy/node-http-handler/dist-cjs/index.js +var require_dist_cjs7 = __commonJS({ + "../../node_modules/.pnpm/@smithy+node-http-handler@4.12.1/node_modules/@smithy/node-http-handler/dist-cjs/index.js"(exports) { + var { hasOwn: hasOwn2 } = (init_serde(), __toCommonJS(serde_exports)); + var { streamCollector: streamCollector5 } = (init_serde(), __toCommonJS(serde_exports)); + exports.streamCollector = streamCollector5; + var { buildQueryString: buildQueryString2, HttpResponse: HttpResponse2 } = (init_protocols(), __toCommonJS(protocols_exports)); + var node_https = __require("node:https"); + var { Readable: Readable3 } = __require("node:stream"); + var http2 = __require("node:http2"); + function buildAbortError(abortSignal) { + const reason = abortSignal && typeof abortSignal === "object" && "reason" in abortSignal ? abortSignal.reason : void 0; + if (reason) { + if (reason instanceof Error) { + const abortError3 = new Error("Request aborted"); + abortError3.name = "AbortError"; + abortError3.cause = reason; + return abortError3; + } + const abortError2 = new Error(String(reason)); + abortError2.name = "AbortError"; + return abortError2; + } + const abortError = new Error("Request aborted"); + abortError.name = "AbortError"; + return abortError; + } + __name(buildAbortError, "buildAbortError"); + var NODEJS_TIMEOUT_ERROR_CODES2 = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; + var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { + const transformedHeaders = {}; + for (const name2 in headers) { + if (!hasOwn2(headers, name2)) + continue; + const headerValues = headers[name2]; + transformedHeaders[name2] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; + } + return transformedHeaders; + }, "getTransformedHeaders"); + var timing = { + setTimeout: /* @__PURE__ */ __name((cb, ms) => setTimeout(cb, ms), "setTimeout"), + clearTimeout: /* @__PURE__ */ __name((timeoutId) => clearTimeout(timeoutId), "clearTimeout") + }; + var DEFER_EVENT_LISTENER_TIME$2 = 1e3; + var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1; + } + const registerTimeout = /* @__PURE__ */ __name((offset) => { + const timeoutId = timing.setTimeout(() => { + request.destroy(); + reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), { + name: "TimeoutError" + })); + }, timeoutInMs - offset); + const doWithSocket = /* @__PURE__ */ __name((socket) => { + if (socket?.connecting) { + socket.on("connect", () => { + timing.clearTimeout(timeoutId); + }); + } else { + timing.clearTimeout(timeoutId); + } + }, "doWithSocket"); + if (request.socket) { + doWithSocket(request.socket); + } else { + request.on("socket", doWithSocket); + } + }, "registerTimeout"); + if (timeoutInMs < 2e3) { + registerTimeout(0); + return 0; + } + return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME$2), DEFER_EVENT_LISTENER_TIME$2); + }, "setConnectionTimeout"); + var setRequestTimeout = /* @__PURE__ */ __name((req2, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => { + if (timeoutInMs) { + return timing.setTimeout(() => { + let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? "ERROR" : "WARN"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`; + if (throwOnRequestTimeout) { + const error62 = Object.assign(new Error(msg), { + name: "TimeoutError", + code: "ETIMEDOUT" + }); + req2.destroy(error62); + reject(error62); + } else { + msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`; + logger?.warn?.(msg); + } + }, timeoutInMs); + } + return -1; + }, "setRequestTimeout"); + var DEFER_EVENT_LISTENER_TIME$1 = 3e3; + var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME$1) => { + if (keepAlive !== true) { + return -1; + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); + } else { + request.on("socket", (socket) => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); + }); + } + }, "registerListener"); + if (deferTimeMs === 0) { + registerListener(); + return 0; + } + return timing.setTimeout(registerListener, deferTimeMs); + }, "setSocketKeepAlive"); + var DEFER_EVENT_LISTENER_TIME = 3e3; + var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { + const registerTimeout = /* @__PURE__ */ __name((offset) => { + const timeout = timeoutInMs - offset; + const onTimeout = /* @__PURE__ */ __name(() => { + request.destroy(); + reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: "TimeoutError" })); + }, "onTimeout"); + if (request.socket) { + request.socket.setTimeout(timeout, onTimeout); + request.on("close", () => request.socket?.removeListener("timeout", onTimeout)); + } else { + request.setTimeout(timeout, onTimeout); + } + }, "registerTimeout"); + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0); + return 0; + } + return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); + }, "setSocketTimeout"); + var MIN_WAIT_TIME = 6e3; + async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) { + const headers = request.headers; + const expect = headers ? headers.Expect || headers.expect : void 0; + let timeoutId = -1; + let sendBody = true; + if (!externalAgent && expect === "100-continue") { + sendBody = await Promise.race([ + new Promise((resolve) => { + timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); + }), + new Promise((resolve) => { + httpRequest.on("continue", () => { + timing.clearTimeout(timeoutId); + resolve(true); + }); + httpRequest.on("response", () => { + timing.clearTimeout(timeoutId); + resolve(false); + }); + httpRequest.on("error", () => { + timing.clearTimeout(timeoutId); + resolve(false); + }); + }) + ]); + } + if (sendBody) { + writeBody(httpRequest, request.body); + } + } + __name(writeRequestBody, "writeRequestBody"); + function writeBody(httpRequest, body) { + if (body instanceof Readable3) { + body.pipe(httpRequest); + return; + } + if (body) { + const isBuffer = Buffer.isBuffer(body); + const isString = typeof body === "string"; + if (isBuffer || isString) { + if (isBuffer && body.byteLength === 0) { + httpRequest.end(); + } else { + httpRequest.end(body); + } + return; + } + const uint8 = body; + if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { + httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); + return; + } + httpRequest.end(Buffer.from(body)); + return; + } + httpRequest.end(); + } + __name(writeBody, "writeBody"); + var DEFAULT_REQUEST_TIMEOUT = 0; + var hAgent = void 0; + var hRequest = void 0; + var NodeHttpHandler = class _NodeHttpHandler { + static { + __name(this, "NodeHttpHandler"); + } + config; + configProvider; + socketWarningTimestamp = 0; + externalAgent = false; + metadata = { handlerProtocol: "http/1.1" }; + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === "function") { + return instanceOrOptions; + } + return new _NodeHttpHandler(instanceOrOptions); + } + static checkSocketUsage(agent, socketWarningTimestamp, logger = console) { + const { sockets, requests, maxSockets } = agent; + if (typeof maxSockets !== "number" || maxSockets === Infinity) { + return socketWarningTimestamp; + } + const interval = 15e3; + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp; + } + if (sockets && requests) { + for (const origin in sockets) { + if (!hasOwn2(sockets, origin)) + continue; + const socketsInUse = sockets[origin]?.length ?? 0; + const requestsEnqueued = requests[origin]?.length ?? 0; + if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { + logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`); + return Date.now(); + } + } + } + return socketWarningTimestamp; + } + constructor(options) { + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === "function") { + options().then((_options) => { + resolve(this.resolveDefaultConfig(_options)); + }).catch(reject); + } else { + resolve(this.resolveDefaultConfig(options)); + } + }); + } + destroy() { + this.config?.httpAgent?.destroy(); + this.config?.httpsAgent?.destroy(); + } + async handle(request, { abortSignal, requestTimeout } = {}) { + if (!this.config) { + this.config = await this.configProvider; + } + const config3 = this.config; + const logger = config3.logger; + const isSSL = request.protocol === "https:"; + if (!isSSL && !this.config.httpAgent) { + this.config.httpAgent = await this.config.httpAgentProvider(); + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0; + let socketWarningTimeoutId = -1; + let connectionTimeoutId = -1; + let requestTimeoutId = -1; + let socketTimeoutId = -1; + let keepAliveTimeoutId = -1; + const clearTimeouts = /* @__PURE__ */ __name(() => { + timing.clearTimeout(socketWarningTimeoutId); + timing.clearTimeout(connectionTimeoutId); + timing.clearTimeout(requestTimeoutId); + timing.clearTimeout(socketTimeoutId); + timing.clearTimeout(keepAliveTimeoutId); + }, "clearTimeouts"); + const resolve = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + clearTimeouts(); + _resolve(arg); + }, "resolve"); + const reject = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + clearTimeouts(); + _reject(arg); + }, "reject"); + if (abortSignal?.aborted) { + const abortError = buildAbortError(abortSignal); + reject(abortError); + return; + } + const headers = request.headers; + const expectContinue = headers ? (headers.Expect ?? headers.expect) === "100-continue" : false; + let agent = isSSL ? config3.httpsAgent : config3.httpAgent; + if (expectContinue && !this.externalAgent) { + agent = new (isSSL ? node_https.Agent : hAgent)({ + keepAlive: false, + maxSockets: Infinity + }); + } + socketWarningTimeoutId = timing.setTimeout(() => { + this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, logger); + }, config3.socketAcquisitionWarningTimeout ?? (config3.requestTimeout ?? 2e3) + (config3.connectionTimeout ?? 1e3)); + const queryString = request.query ? buildQueryString2(request.query) : ""; + let auth = void 0; + if (request.username != null || request.password != null) { + const username = request.username ?? ""; + const password2 = request.password ?? ""; + auth = `${username}:${password2}`; + } + let path2 = request.path; + if (queryString) { + path2 += `?${queryString}`; + } + if (request.fragment) { + path2 += `#${request.fragment}`; + } + let hostname3 = request.hostname ?? ""; + if (hostname3[0] === "[" && hostname3.endsWith("]")) { + hostname3 = request.hostname.slice(1, -1); + } else { + hostname3 = request.hostname; + } + const nodeHttpsOptions = { + headers: request.headers, + host: hostname3, + method: request.method, + path: path2, + port: request.port, + agent, + auth + }; + const requestFunc = isSSL ? node_https.request : hRequest; + const req2 = requestFunc(nodeHttpsOptions, (res) => { + const httpResponse = new HttpResponse2({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }); + resolve({ response: httpResponse }); + }); + req2.on("error", (err) => { + if (NODEJS_TIMEOUT_ERROR_CODES2.includes(err.code)) { + reject(Object.assign(err, { name: "TimeoutError" })); + } else { + reject(err); + } + }); + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req2.destroy(); + const abortError = buildAbortError(abortSignal); + reject(abortError); + }, "onAbort"); + if (typeof abortSignal.addEventListener === "function") { + const signal = abortSignal; + signal.addEventListener("abort", onAbort, { once: true }); + req2.once("close", () => signal.removeEventListener("abort", onAbort)); + } else { + abortSignal.onabort = onAbort; + } + } + const effectiveRequestTimeout = requestTimeout ?? config3.requestTimeout; + connectionTimeoutId = setConnectionTimeout(req2, reject, config3.connectionTimeout); + requestTimeoutId = setRequestTimeout(req2, reject, effectiveRequestTimeout, config3.throwOnRequestTimeout, logger ?? console); + socketTimeoutId = setSocketTimeout(req2, reject, config3.socketTimeout); + const httpAgent = nodeHttpsOptions.agent; + if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { + keepAliveTimeoutId = setSocketKeepAlive(req2, { + keepAlive: httpAgent.keepAlive, + keepAliveMsecs: httpAgent.keepAliveMsecs + }); + } + writeRequestBodyPromise = writeRequestBody(req2, request, effectiveRequestTimeout, this.externalAgent).catch((e5) => { + clearTimeouts(); + return _reject(e5); + }); + }); + } + updateHttpClientConfig(key, value) { + this.config = void 0; + this.configProvider = this.configProvider.then((config3) => { + if (key === /* @__PURE__ */ Symbol.for("logger")) { + return { + ...config3, + logger: config3.logger ?? value + }; + } + return { + ...config3, + [key]: value + }; + }); + } + httpHandlerConfigs() { + return this.config ?? {}; + } + resolveDefaultConfig(options) { + const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger } = options || {}; + const keepAlive = true; + const maxSockets = 50; + return { + connectionTimeout, + requestTimeout, + socketTimeout, + socketAcquisitionWarningTimeout, + throwOnRequestTimeout, + httpAgentProvider: /* @__PURE__ */ __name(async () => { + const node_http = __require("node:http"); + const { Agent, request } = node_http.default ?? node_http; + hRequest = request; + hAgent = Agent; + if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === "function") { + this.externalAgent = true; + return httpAgent; + } + return new hAgent({ keepAlive, maxSockets, ...httpAgent }); + }, "httpAgentProvider"), + httpsAgent: (() => { + if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === "function") { + this.externalAgent = true; + return httpsAgent; + } + return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); + })(), + logger + }; + } + }; + var ids = new Uint16Array(1); + var ClientHttp2SessionRef = class { + static { + __name(this, "ClientHttp2SessionRef"); + } + id = ids[0]++; + total = 0; + max = 0; + session; + refs = 0; + constructor(session) { + session.unref(); + this.session = session; + } + retain() { + if (this.session.destroyed) { + throw new Error("@smithy/node-http-handler - cannot acquire reference to destroyed session."); + } + this.refs += 1; + this.total += 1; + this.max = Math.max(this.refs, this.max); + this.session.ref(); + } + free() { + if (this.session.destroyed) { + return; + } + this.refs -= 1; + if (this.refs === 0) { + this.session.unref(); + } + if (this.refs < 0) { + throw new Error("@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement."); + } + } + deref() { + return this.session; + } + close() { + if (!this.session.closed) { + this.session.close(); + } + } + destroy() { + this.refs = 0; + if (!this.session.destroyed) { + this.session.setTimeout(0); + this.session.destroy(); + } + } + useCount() { + return this.refs; + } + }; + var NodeHttp2ConnectionPool = class { + static { + __name(this, "NodeHttp2ConnectionPool"); + } + sessions = []; + maxConcurrency = 0; + constructor(sessions) { + this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session)); + } + poll() { + let cleanup = false; + for (const session of this.sessions) { + if (session.deref().destroyed) { + cleanup = true; + continue; + } + if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) { + return session; + } + } + if (cleanup) { + for (const session of this.sessions) { + if (session.deref().destroyed) { + this.remove(session); + } + } + } + } + offerLast(ref) { + this.sessions.push(ref); + } + remove(ref) { + const ix = this.sessions.indexOf(ref); + if (ix > -1) { + this.sessions.splice(ix, 1); + } + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator](); + } + setMaxConcurrency(maxConcurrency) { + this.maxConcurrency = maxConcurrency; + } + destroy(ref) { + this.remove(ref); + ref.destroy(); + } + }; + var NodeHttp2ConnectionManager = class { + static { + __name(this, "NodeHttp2ConnectionManager"); + } + config; + connectOptions; + connectionPools = /* @__PURE__ */ new Map(); + constructor(config3) { + this.config = config3; + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError("maxConcurrency must be greater than zero."); + } + } + lease(requestContext, connectionConfiguration) { + const url2 = this.getUrlString(requestContext); + const pool = this.getPool(url2); + if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) { + const available = pool.poll(); + if (available) { + available.retain(); + return available; + } + } + const ref = new ClientHttp2SessionRef(this.connect(url2)); + const session = ref.deref(); + if (this.config.maxConcurrency) { + session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => { + if (err) { + throw new Error("Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString()); + } + }); + } + const graceful = /* @__PURE__ */ __name(() => { + this.removeFromPoolAndClose(url2, ref); + }, "graceful"); + const ensureDestroyed = /* @__PURE__ */ __name(() => { + this.removeFromPoolAndCheckedDestroy(url2, ref); + }, "ensureDestroyed"); + session.on("goaway", graceful); + session.on("error", ensureDestroyed); + session.on("frameError", ensureDestroyed); + session.on("close", ensureDestroyed); + if (connectionConfiguration.requestTimeout) { + session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed); + } + pool.offerLast(ref); + ref.retain(); + return ref; + } + release(_requestContext, ref) { + ref.free(); + } + createIsolatedSession(requestContext, connectionConfiguration) { + const url2 = this.getUrlString(requestContext); + const ref = new ClientHttp2SessionRef(this.connect(url2)); + const session = ref.deref(); + session.settings({ maxConcurrentStreams: 1 }); + const ensureDestroyed = /* @__PURE__ */ __name(() => { + ref.destroy(); + }, "ensureDestroyed"); + session.on("error", ensureDestroyed); + session.on("frameError", ensureDestroyed); + session.on("close", ensureDestroyed); + const timeout = connectionConfiguration.requestTimeout ?? 3e5; + session.setTimeout(timeout, ensureDestroyed); + ref.retain(); + return ref; + } + destroy() { + for (const [url2, connectionPool] of this.connectionPools) { + for (const session of [...connectionPool]) { + session.destroy(); + } + this.connectionPools.delete(url2); + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (maxConcurrentStreams && maxConcurrentStreams <= 0) { + throw new RangeError("maxConcurrentStreams must be greater than zero."); + } + this.config.maxConcurrency = maxConcurrentStreams; + for (const pool of this.connectionPools.values()) { + pool.setMaxConcurrency(maxConcurrentStreams); + } + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams; + } + setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions) { + this.connectOptions = nodeHttp2ConnectOptions; + } + debug() { + const pools = {}; + for (const [url2, pool] of this.connectionPools) { + const sessions = []; + for (const ref of pool) { + sessions.push({ + id: ref.id, + active: ref.useCount(), + maxConcurrent: ref.max, + totalRequests: ref.total + }); + } + pools[url2] = { sessions }; + } + return pools; + } + removeFromPoolAndClose(authority, ref) { + this.connectionPools.get(authority)?.remove(ref); + ref.close(); + } + removeFromPoolAndCheckedDestroy(authority, ref) { + this.connectionPools.get(authority)?.remove(ref); + ref.destroy(); + } + getPool(url2) { + if (!this.connectionPools.has(url2)) { + const pool = new NodeHttp2ConnectionPool(); + if (this.config.maxConcurrency) { + pool.setMaxConcurrency(this.config.maxConcurrency); + } + this.connectionPools.set(url2, pool); + } + return this.connectionPools.get(url2); + } + getUrlString(request) { + return request.destination.toString(); + } + connect(url2) { + return this.connectOptions === void 0 ? http2.connect(url2) : http2.connect(url2, this.connectOptions); + } + }; + var { constants } = http2; + var NodeHttp2Handler = class _NodeHttp2Handler { + static { + __name(this, "NodeHttp2Handler"); + } + config; + configProvider; + metadata = { handlerProtocol: "h2" }; + connectionManager = new NodeHttp2ConnectionManager({}); + static create(instanceOrOptions) { + if (typeof instanceOrOptions?.handle === "function") { + return instanceOrOptions; + } + return new _NodeHttp2Handler(instanceOrOptions); + } + constructor(options) { + this.configProvider = new Promise((resolve, reject) => { + if (typeof options === "function") { + options().then((opts) => { + resolve(opts || {}); + }).catch(reject); + } else { + resolve(options || {}); + } + }); + } + destroy() { + this.connectionManager.destroy(); + } + async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) { + if (!this.config) { + this.config = await this.configProvider; + const { disableConcurrentStreams: disableConcurrentStreams2, maxConcurrentStreams, nodeHttp2ConnectOptions } = this.config; + this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams2 ?? false); + if (maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams); + } + if (nodeHttp2ConnectOptions) { + this.connectionManager.setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions); + } + } + const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config; + const useIsolatedSession = disableConcurrentStreams || isEventStream; + const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout; + return new Promise((_resolve, _reject) => { + let fulfilled = false; + let writeRequestBodyPromise = void 0; + const resolve = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + _resolve(arg); + }, "resolve"); + const reject = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + _reject(arg); + }, "reject"); + if (abortSignal?.aborted) { + fulfilled = true; + const abortError = buildAbortError(abortSignal); + reject(abortError); + return; + } + const { hostname: hostname3, method, port, protocol, query } = request; + let auth = ""; + if (request.username != null || request.password != null) { + const username = request.username ?? ""; + const password2 = request.password ?? ""; + auth = `${username}:${password2}@`; + } + const authority = `${protocol}//${auth}${hostname3}${port ? `:${port}` : ""}`; + const requestContext = { destination: new URL(authority) }; + const connectConfig = { + requestTimeout: this.config?.sessionTimeout, + isEventStream + }; + const ref = useIsolatedSession ? this.connectionManager.createIsolatedSession(requestContext, connectConfig) : this.connectionManager.lease(requestContext, connectConfig); + const session = ref.deref(); + const rejectWithDestroy = /* @__PURE__ */ __name((err) => { + if (useIsolatedSession) { + ref.destroy(); + } + fulfilled = true; + reject(err); + }, "rejectWithDestroy"); + const queryString = query ? buildQueryString2(query) : ""; + let path2 = request.path; + if (queryString) { + path2 += `?${queryString}`; + } + if (request.fragment) { + path2 += `#${request.fragment}`; + } + const clientHttp2Stream = session.request({ + ...request.headers, + [constants.HTTP2_HEADER_PATH]: path2, + [constants.HTTP2_HEADER_METHOD]: method + }); + if (effectiveRequestTimeout) { + clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => { + clientHttp2Stream.close(); + const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`); + timeoutError.name = "TimeoutError"; + rejectWithDestroy(timeoutError); + }); + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + clientHttp2Stream.close(); + const abortError = buildAbortError(abortSignal); + rejectWithDestroy(abortError); + }, "onAbort"); + if (typeof abortSignal.addEventListener === "function") { + const signal = abortSignal; + signal.addEventListener("abort", onAbort, { once: true }); + clientHttp2Stream.once("close", () => signal.removeEventListener("abort", onAbort)); + } else { + abortSignal.onabort = onAbort; + } + } + clientHttp2Stream.on("frameError", (type, code, id) => { + rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); + }); + clientHttp2Stream.on("error", rejectWithDestroy); + clientHttp2Stream.on("aborted", () => { + rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`)); + }); + clientHttp2Stream.on("response", (headers) => { + const httpResponse = new HttpResponse2({ + statusCode: headers[":status"] ?? -1, + headers: getTransformedHeaders(headers), + body: clientHttp2Stream + }); + fulfilled = true; + resolve({ response: httpResponse }); + if (useIsolatedSession) { + session.close(); + clientHttp2Stream.on("end", () => { + ref.destroy(); + }); + } + }); + clientHttp2Stream.on("close", () => { + if (useIsolatedSession) { + ref.destroy(); + } else { + this.connectionManager.release(requestContext, ref); + } + if (!fulfilled) { + const error62 = new Error("Unexpected error: http2 request did not get a response"); + if (session.destroyed) { + error62.name = "TimeoutError"; + } + rejectWithDestroy(error62); + } + }); + writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout); + }); + } + updateHttpClientConfig(key, value) { + this.config = void 0; + this.configProvider = this.configProvider.then((config3) => { + return { + ...config3, + [key]: value + }; + }); + } + httpHandlerConfigs() { + return this.config ?? {}; + } + }; + exports.DEFAULT_REQUEST_TIMEOUT = DEFAULT_REQUEST_TIMEOUT; + exports.NodeHttp2Handler = NodeHttp2Handler; + exports.NodeHttpHandler = NodeHttpHandler; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.972.77/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +var require_dist_cjs8 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.972.77/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js"(exports) { + var { setCredentialFeature: setCredentialFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var { CredentialsProviderError } = (init_config(), __toCommonJS(config_exports)); + var { NodeHttpHandler } = require_dist_cjs7(); + var fs = __require("node:fs/promises"); + var { HttpRequest: HttpRequest2 } = (init_protocols(), __toCommonJS(protocols_exports)); + var { sdkStreamMixin: sdkStreamMixin2, parseRfc3339DateTime } = (init_serde(), __toCommonJS(serde_exports)); + var ECS_CONTAINER_HOST = "169.254.170.2"; + var EKS_CONTAINER_HOST_IPv4 = "169.254.170.23"; + var EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]"; + var checkUrl = /* @__PURE__ */ __name((url2, logger) => { + if (url2.protocol === "https:") { + return; + } + if (url2.hostname === ECS_CONTAINER_HOST || url2.hostname === EKS_CONTAINER_HOST_IPv4 || url2.hostname === EKS_CONTAINER_HOST_IPv6) { + return; + } + if (url2.hostname.includes("[")) { + if (url2.hostname === "[::1]" || url2.hostname === "[0000:0000:0000:0000:0000:0000:0000:0001]") { + return; + } + } else { + if (url2.hostname === "localhost") { + return; + } + const ipComponents = url2.hostname.split("."); + const inRange = /* @__PURE__ */ __name((component) => { + const num = parseInt(component, 10); + return 0 <= num && num <= 255; + }, "inRange"); + if (ipComponents[0] === "127" && inRange(ipComponents[1]) && inRange(ipComponents[2]) && inRange(ipComponents[3]) && ipComponents.length === 4) { + return; + } + } + throw new CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: + - loopback CIDR 127.0.0.0/8 or [::1/128] + - ECS container host 169.254.170.2 + - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger }); + }, "checkUrl"); + function createGetRequest(url2) { + return new HttpRequest2({ + protocol: url2.protocol, + hostname: url2.hostname, + port: Number(url2.port), + path: url2.pathname, + query: Array.from(url2.searchParams.entries()).reduce((acc, [k5, v]) => { + acc[k5] = v; + return acc; + }, {}), + fragment: url2.hash + }); + } + __name(createGetRequest, "createGetRequest"); + async function getCredentials(response, logger) { + const stream = sdkStreamMixin2(response.body); + const str = await stream.transformToString(); + if (response.statusCode === 200) { + const parsed2 = JSON.parse(str); + if (typeof parsed2.AccessKeyId !== "string" || typeof parsed2.SecretAccessKey !== "string" || typeof parsed2.Token !== "string" || typeof parsed2.Expiration !== "string") { + throw new CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger }); + } + return { + accessKeyId: parsed2.AccessKeyId, + secretAccessKey: parsed2.SecretAccessKey, + sessionToken: parsed2.Token, + expiration: parseRfc3339DateTime(parsed2.Expiration) + }; + } + if (response.statusCode >= 400 && response.statusCode < 500) { + let parsedBody = {}; + try { + parsedBody = JSON.parse(str); + } catch (e5) { + } + throw Object.assign(new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), { + Code: parsedBody.Code, + Message: parsedBody.Message + }); + } + throw new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }); + } + __name(getCredentials, "getCredentials"); + var retryWrapper = /* @__PURE__ */ __name((toRetry, maxRetries, delayMs) => { + return async () => { + for (let i5 = 0; i5 < maxRetries; ++i5) { + try { + return await toRetry(); + } catch (e5) { + await new Promise((resolve) => setTimeout(resolve, delayMs)); + } + } + return await toRetry(); + }; + }, "retryWrapper"); + var AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; + var DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2"; + var AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; + var AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE"; + var AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; + var fromHttp = /* @__PURE__ */ __name((options = {}) => { + options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp"); + let host; + const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI]; + const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI]; + const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN]; + const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE]; + const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger?.warn ? console.warn : options.logger.warn.bind(options.logger); + if (relative && full) { + warn("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."); + warn("awsContainerCredentialsRelativeUri will take precedence."); + } + if (token && tokenFile) { + warn("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."); + warn("awsContainerAuthorizationTokenFile will take precedence."); + } + if (relative) { + host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`; + } else if (full) { + host = full; + } else { + throw new CredentialsProviderError(`No HTTP credential provider host provided. +Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger }); + } + const url2 = new URL(host); + checkUrl(url2, options.logger); + const requestHandler = NodeHttpHandler.create({ connectionTimeout: options.timeout ?? 1e3 }); + const requestTimeout = options.timeout ?? 1e3; + const provider = retryWrapper(async () => { + const request = createGetRequest(url2); + if (tokenFile) { + request.headers.Authorization = validateToken((await fs.readFile(tokenFile)).toString()); + } else if (token) { + request.headers.Authorization = validateToken(token); + } + try { + const result = await requestHandler.handle(request, { requestTimeout }); + return getCredentials(result.response).then((creds) => setCredentialFeature2(creds, "CREDENTIALS_HTTP", "z")); + } catch (e5) { + throw new CredentialsProviderError(String(e5), { logger: options.logger }); + } + }, options.maxRetries ?? 3, options.timeout ?? 1e3); + return async () => { + try { + return await provider(); + } finally { + requestHandler.destroy?.(); + } + }; + }, "fromHttp"); + var validateToken = /* @__PURE__ */ __name((token) => { + if (token.includes("\r\n")) { + throw new CredentialsProviderError("Authorization token contains invalid \\r\\n sequence."); + } + return token; + }, "validateToken"); + exports.fromHttp = fromHttp; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "sso-oauth", + region: authParameters.region + }, + propertiesExtractor: /* @__PURE__ */ __name((config3, context) => ({ + signingProperties: { + config: config3, + context + } + }), "propertiesExtractor") + }; +} +function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: "smithy.api#noAuth" + }; +} +var defaultSSOOIDCHttpAuthSchemeParametersProvider, defaultSSOOIDCHttpAuthSchemeProvider, resolveHttpAuthSchemeConfig; +var init_httpAuthSchemeProvider = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js"() { + init_httpAuthSchemes2(); + init_client(); + defaultSSOOIDCHttpAuthSchemeParametersProvider = /* @__PURE__ */ __name(async (config3, context, input2) => { + return { + operation: getSmithyContext(context).operation, + region: await normalizeProvider(config3.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }, "defaultSSOOIDCHttpAuthSchemeParametersProvider"); + __name(createAwsAuthSigv4HttpAuthOption, "createAwsAuthSigv4HttpAuthOption"); + __name(createSmithyApiNoAuthHttpAuthOption, "createSmithyApiNoAuthHttpAuthOption"); + defaultSSOOIDCHttpAuthSchemeProvider = /* @__PURE__ */ __name((authParameters) => { + const options = []; + switch (authParameters.operation) { + case "CreateToken": + { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); + break; + } + ; + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + } + } + return options; + }, "defaultSSOOIDCHttpAuthSchemeProvider"); + resolveHttpAuthSchemeConfig = /* @__PURE__ */ __name((config3) => { + const config_0 = resolveAwsSdkSigV4Config(config3); + return Object.assign(config_0, { + authSchemePreference: normalizeProvider(config3.authSchemePreference ?? []) + }); + }, "resolveHttpAuthSchemeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/EndpointParameters.js +var resolveClientEndpointParameters, commonParams; +var init_EndpointParameters = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/EndpointParameters.js"() { + resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "sso-oauth" + }); + }, "resolveClientEndpointParameters"); + commonParams = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/package.json +var package_default; +var init_package = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/package.json"() { + package_default = { + name: "@aws-sdk/nested-clients", + version: "3.997.49", + description: "Nested clients for AWS SDK packages.", + homepage: "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients", + license: "Apache-2.0", + author: { + name: "AWS SDK for JavaScript Team", + url: "https://aws.amazon.com/sdk-for-javascript/" + }, + repository: { + type: "git", + url: "https://github.com/aws/aws-sdk-js-v3.git", + directory: "packages/nested-clients" + }, + files: [ + "./cognito-identity.d.ts", + "./cognito-identity.js", + "./signin.d.ts", + "./signin.js", + "./sso-oidc.d.ts", + "./sso-oidc.js", + "./sso.d.ts", + "./sso.js", + "./sts.d.ts", + "./sts.js", + "dist-*/**" + ], + sideEffects: false, + main: "./dist-cjs/index.js", + module: "./dist-es/index.js", + browser: { + "./dist-es/submodules/cognito-identity/runtimeConfig": "./dist-es/submodules/cognito-identity/runtimeConfig.browser", + "./dist-es/submodules/signin/runtimeConfig": "./dist-es/submodules/signin/runtimeConfig.browser", + "./dist-es/submodules/sso-oidc/runtimeConfig": "./dist-es/submodules/sso-oidc/runtimeConfig.browser", + "./dist-es/submodules/sso/runtimeConfig": "./dist-es/submodules/sso/runtimeConfig.browser", + "./dist-es/submodules/sts/runtimeConfig": "./dist-es/submodules/sts/runtimeConfig.browser" + }, + types: "./dist-types/index.d.ts", + typesVersions: { + "<4.5": { + "dist-types/*": [ + "dist-types/ts3.4/*" + ], + "*": [ + "dist-types/ts3.4/submodules/*/index.d.ts" + ] + } + }, + "react-native": {}, + exports: { + "./package.json": "./package.json", + "./sso-oidc": { + types: "./dist-types/submodules/sso-oidc/index.d.ts", + module: "./dist-es/submodules/sso-oidc/index.js", + node: "./dist-cjs/submodules/sso-oidc/index.js", + import: "./dist-es/submodules/sso-oidc/index.js", + require: "./dist-cjs/submodules/sso-oidc/index.js" + }, + "./sts": { + types: "./dist-types/submodules/sts/index.d.ts", + module: "./dist-es/submodules/sts/index.js", + node: "./dist-cjs/submodules/sts/index.js", + import: "./dist-es/submodules/sts/index.js", + require: "./dist-cjs/submodules/sts/index.js" + }, + "./signin": { + types: "./dist-types/submodules/signin/index.d.ts", + module: "./dist-es/submodules/signin/index.js", + node: "./dist-cjs/submodules/signin/index.js", + import: "./dist-es/submodules/signin/index.js", + require: "./dist-cjs/submodules/signin/index.js" + }, + "./cognito-identity": { + types: "./dist-types/submodules/cognito-identity/index.d.ts", + module: "./dist-es/submodules/cognito-identity/index.js", + node: "./dist-cjs/submodules/cognito-identity/index.js", + import: "./dist-es/submodules/cognito-identity/index.js", + require: "./dist-cjs/submodules/cognito-identity/index.js" + }, + "./sso": { + types: "./dist-types/submodules/sso/index.d.ts", + module: "./dist-es/submodules/sso/index.js", + node: "./dist-cjs/submodules/sso/index.js", + import: "./dist-es/submodules/sso/index.js", + require: "./dist-cjs/submodules/sso/index.js" + } + }, + scripts: { + build: "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs", + "build:cjs": "node ../../scripts/compilation/inline", + "build:es": "premove dist-es && tsc -p tsconfig.es.json", + "build:include:deps": 'yarn g:turbo run build -F="$npm_package_name"', + "build:types": "premove dist-types && tsc -p tsconfig.types.json", + "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4", + clean: "premove dist-cjs dist-es dist-types", + lint: "node ../../scripts/validation/submodules-linter.js", + prebuild: "yarn lint", + test: "yarn g:vitest run", + "test:watch": "yarn g:vitest watch" + }, + dependencies: { + "@aws-sdk/core": "^3.978.4", + "@aws-sdk/signature-v4-multi-region": "^3.996.48", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.36.0", + "@smithy/fetch-http-handler": "^5.8.0", + "@smithy/node-http-handler": "^4.12.1", + "@smithy/types": "^4.19.0", + tslib: "^2.6.2" + }, + devDependencies: { + concurrently: "7.0.0", + "downlevel-dts": "0.10.1", + premove: "4.0.0", + typescript: "~7.0.2" + }, + engines: { + node: ">=20.0.0" + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/bdd.js +var k, a, b, c, d, e, f, g, h, i, j, _data, root, r, nodes, bdd; +var init_bdd = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/bdd.js"() { + init_endpoints(); + k = "ref"; + a = -1; + b = true; + c = "isSet"; + d = "PartitionResult"; + e = "booleanEquals"; + f = "getAttr"; + g = { [k]: "Endpoint" }; + h = { [k]: d }; + i = {}; + j = [{ [k]: "Region" }]; + _data = { + conditions: [ + [c, [g]], + [c, j], + ["aws.partition", j, d], + [e, [{ [k]: "UseFIPS" }, b]], + [e, [{ [k]: "UseDualStack" }, b]], + [e, [{ fn: f, argv: [h, "supportsDualStack"] }, b]], + [e, [{ fn: f, argv: [h, "supportsFIPS"] }, b]], + ["stringEquals", [{ fn: f, argv: [h, "name"] }, "aws-us-gov"]] + ], + results: [ + [a], + [a, "Invalid Configuration: FIPS and custom endpoint are not supported"], + [a, "Invalid Configuration: Dualstack and custom endpoint are not supported"], + [g, i], + ["https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", i], + [a, "FIPS and DualStack are enabled, but this partition does not support one or both"], + ["https://oidc.{Region}.amazonaws.com", i], + ["https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}", i], + [a, "FIPS is enabled but this partition does not support FIPS"], + ["https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}", i], + [a, "DualStack is enabled but this partition does not support DualStack"], + ["https://oidc.{Region}.{PartitionResult#dnsSuffix}", i], + [a, "Invalid Configuration: Missing Region"] + ] + }; + root = 2; + r = 1e8; + nodes = new Int32Array([ + -1, + 1, + -1, + 0, + 13, + 3, + 1, + 4, + r + 12, + 2, + 5, + r + 12, + 3, + 8, + 6, + 4, + 7, + r + 11, + 5, + r + 9, + r + 10, + 4, + 11, + 9, + 6, + 10, + r + 8, + 7, + r + 6, + r + 7, + 5, + 12, + r + 5, + 6, + r + 4, + r + 5, + 3, + r + 1, + 14, + 4, + r + 2, + r + 3 + ]); + bdd = BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/endpointResolver.js +var cache, defaultEndpointResolver; +var init_endpointResolver = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/endpointResolver.js"() { + init_client2(); + init_endpoints(); + init_bdd(); + cache = new EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"] + }); + defaultEndpointResolver = /* @__PURE__ */ __name((endpointParams, context = {}) => { + return cache.get(endpointParams, () => decideEndpoint(bdd, { + endpointParams, + logger: context.logger + })); + }, "defaultEndpointResolver"); + customEndpointFunctions.aws = awsEndpointFunctions; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +var SSOOIDCServiceException; +var init_SSOOIDCServiceException = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js"() { + init_client(); + SSOOIDCServiceException = class _SSOOIDCServiceException extends ServiceException { + static { + __name(this, "SSOOIDCServiceException"); + } + static shapeId = "smithy.ts.sdk.synthetic.com.amazonaws.ssooidc#SSOOIDCServiceException"; + constructor(options) { + super(options); + Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/errors.js +var AccessDeniedException, AuthorizationPendingException, ExpiredTokenException, InternalServerException, InvalidClientException, InvalidGrantException, InvalidRequestException, InvalidScopeException, SlowDownException, UnauthorizedClientException, UnsupportedGrantTypeException; +var init_errors = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/errors.js"() { + init_SSOOIDCServiceException(); + AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException { + static { + __name(this, "AccessDeniedException"); + } + static shapeId = "com.amazonaws.ssooidc#AccessDeniedException"; + name = "AccessDeniedException"; + $fault = "client"; + error; + reason; + error_description; + constructor(opts) { + super({ + name: "AccessDeniedException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AccessDeniedException.prototype); + this.error = opts.error; + this.reason = opts.reason; + this.error_description = opts.error_description; + } + }; + AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException { + static { + __name(this, "AuthorizationPendingException"); + } + static shapeId = "com.amazonaws.ssooidc#AuthorizationPendingException"; + name = "AuthorizationPendingException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "AuthorizationPendingException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AuthorizationPendingException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException { + static { + __name(this, "ExpiredTokenException"); + } + static shapeId = "com.amazonaws.ssooidc#ExpiredTokenException"; + name = "ExpiredTokenException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "ExpiredTokenException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ExpiredTokenException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InternalServerException = class _InternalServerException extends SSOOIDCServiceException { + static { + __name(this, "InternalServerException"); + } + static shapeId = "com.amazonaws.ssooidc#InternalServerException"; + name = "InternalServerException"; + $fault = "server"; + error; + error_description; + constructor(opts) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts + }); + Object.setPrototypeOf(this, _InternalServerException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException { + static { + __name(this, "InvalidClientException"); + } + static shapeId = "com.amazonaws.ssooidc#InvalidClientException"; + name = "InvalidClientException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "InvalidClientException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidClientException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException { + static { + __name(this, "InvalidGrantException"); + } + static shapeId = "com.amazonaws.ssooidc#InvalidGrantException"; + name = "InvalidGrantException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "InvalidGrantException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidGrantException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException { + static { + __name(this, "InvalidRequestException"); + } + static shapeId = "com.amazonaws.ssooidc#InvalidRequestException"; + name = "InvalidRequestException"; + $fault = "client"; + error; + reason; + error_description; + constructor(opts) { + super({ + name: "InvalidRequestException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidRequestException.prototype); + this.error = opts.error; + this.reason = opts.reason; + this.error_description = opts.error_description; + } + }; + InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException { + static { + __name(this, "InvalidScopeException"); + } + static shapeId = "com.amazonaws.ssooidc#InvalidScopeException"; + name = "InvalidScopeException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "InvalidScopeException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidScopeException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + SlowDownException = class _SlowDownException extends SSOOIDCServiceException { + static { + __name(this, "SlowDownException"); + } + static shapeId = "com.amazonaws.ssooidc#SlowDownException"; + name = "SlowDownException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "SlowDownException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _SlowDownException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException { + static { + __name(this, "UnauthorizedClientException"); + } + static shapeId = "com.amazonaws.ssooidc#UnauthorizedClientException"; + name = "UnauthorizedClientException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "UnauthorizedClientException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _UnauthorizedClientException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException { + static { + __name(this, "UnsupportedGrantTypeException"); + } + static shapeId = "com.amazonaws.ssooidc#UnsupportedGrantTypeException"; + name = "UnsupportedGrantTypeException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "UnsupportedGrantTypeException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js +var _ADE, _APE, _AT, _CS, _CT, _CTR, _CTRr, _CV, _ETE, _ICE, _IGE, _IRE, _ISE, _ISEn, _IT, _RT, _SDE, _UCE, _UGTE, _aT, _c, _cI, _cS, _cV, _co, _dC, _e, _eI, _ed, _gT, _h, _hE, _iT, _r, _rT, _rU, _s, _sc, _se, _tT, n0, _s_registry, SSOOIDCServiceException$, n0_registry, AccessDeniedException$, AuthorizationPendingException$, ExpiredTokenException$, InternalServerException$, InvalidClientException$, InvalidGrantException$, InvalidRequestException$, InvalidScopeException$, SlowDownException$, UnauthorizedClientException$, UnsupportedGrantTypeException$, errorTypeRegistries, AccessToken, ClientSecret, CodeVerifier, IdToken, RefreshToken, CreateTokenRequest$, CreateTokenResponse$, Scopes, CreateToken$; +var init_schemas_0 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js"() { + init_schema(); + init_errors(); + init_SSOOIDCServiceException(); + _ADE = "AccessDeniedException"; + _APE = "AuthorizationPendingException"; + _AT = "AccessToken"; + _CS = "ClientSecret"; + _CT = "CreateToken"; + _CTR = "CreateTokenRequest"; + _CTRr = "CreateTokenResponse"; + _CV = "CodeVerifier"; + _ETE = "ExpiredTokenException"; + _ICE = "InvalidClientException"; + _IGE = "InvalidGrantException"; + _IRE = "InvalidRequestException"; + _ISE = "InternalServerException"; + _ISEn = "InvalidScopeException"; + _IT = "IdToken"; + _RT = "RefreshToken"; + _SDE = "SlowDownException"; + _UCE = "UnauthorizedClientException"; + _UGTE = "UnsupportedGrantTypeException"; + _aT = "accessToken"; + _c = "client"; + _cI = "clientId"; + _cS = "clientSecret"; + _cV = "codeVerifier"; + _co = "code"; + _dC = "deviceCode"; + _e = "error"; + _eI = "expiresIn"; + _ed = "error_description"; + _gT = "grantType"; + _h = "http"; + _hE = "httpError"; + _iT = "idToken"; + _r = "reason"; + _rT = "refreshToken"; + _rU = "redirectUri"; + _s = "smithy.ts.sdk.synthetic.com.amazonaws.ssooidc"; + _sc = "scope"; + _se = "server"; + _tT = "tokenType"; + n0 = "com.amazonaws.ssooidc"; + _s_registry = new TypeRegistry(_s); + SSOOIDCServiceException$ = [-3, _s, "SSOOIDCServiceException", 0, [], []]; + _s_registry.registerError(SSOOIDCServiceException$, SSOOIDCServiceException); + n0_registry = new TypeRegistry(n0); + AccessDeniedException$ = [ + -3, + n0, + _ADE, + { [_e]: _c, [_hE]: 400 }, + [_e, _r, _ed], + [0, 0, 0] + ]; + n0_registry.registerError(AccessDeniedException$, AccessDeniedException); + AuthorizationPendingException$ = [ + -3, + n0, + _APE, + { [_e]: _c, [_hE]: 400 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(AuthorizationPendingException$, AuthorizationPendingException); + ExpiredTokenException$ = [ + -3, + n0, + _ETE, + { [_e]: _c, [_hE]: 400 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(ExpiredTokenException$, ExpiredTokenException); + InternalServerException$ = [ + -3, + n0, + _ISE, + { [_e]: _se, [_hE]: 500 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(InternalServerException$, InternalServerException); + InvalidClientException$ = [ + -3, + n0, + _ICE, + { [_e]: _c, [_hE]: 401 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(InvalidClientException$, InvalidClientException); + InvalidGrantException$ = [ + -3, + n0, + _IGE, + { [_e]: _c, [_hE]: 400 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(InvalidGrantException$, InvalidGrantException); + InvalidRequestException$ = [ + -3, + n0, + _IRE, + { [_e]: _c, [_hE]: 400 }, + [_e, _r, _ed], + [0, 0, 0] + ]; + n0_registry.registerError(InvalidRequestException$, InvalidRequestException); + InvalidScopeException$ = [ + -3, + n0, + _ISEn, + { [_e]: _c, [_hE]: 400 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(InvalidScopeException$, InvalidScopeException); + SlowDownException$ = [ + -3, + n0, + _SDE, + { [_e]: _c, [_hE]: 400 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(SlowDownException$, SlowDownException); + UnauthorizedClientException$ = [ + -3, + n0, + _UCE, + { [_e]: _c, [_hE]: 400 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(UnauthorizedClientException$, UnauthorizedClientException); + UnsupportedGrantTypeException$ = [ + -3, + n0, + _UGTE, + { [_e]: _c, [_hE]: 400 }, + [_e, _ed], + [0, 0] + ]; + n0_registry.registerError(UnsupportedGrantTypeException$, UnsupportedGrantTypeException); + errorTypeRegistries = [ + _s_registry, + n0_registry + ]; + AccessToken = [0, n0, _AT, 8, 0]; + ClientSecret = [0, n0, _CS, 8, 0]; + CodeVerifier = [0, n0, _CV, 8, 0]; + IdToken = [0, n0, _IT, 8, 0]; + RefreshToken = [0, n0, _RT, 8, 0]; + CreateTokenRequest$ = [ + 3, + n0, + _CTR, + 0, + [_cI, _cS, _gT, _dC, _co, _rT, _sc, _rU, _cV], + [0, [() => ClientSecret, 0], 0, 0, 0, [() => RefreshToken, 0], 64 | 0, 0, [() => CodeVerifier, 0]], + 3 + ]; + CreateTokenResponse$ = [ + 3, + n0, + _CTRr, + 0, + [_aT, _tT, _eI, _rT, _iT], + [[() => AccessToken, 0], 0, 1, [() => RefreshToken, 0], [() => IdToken, 0]] + ]; + Scopes = 64 | 0; + CreateToken$ = [ + 9, + n0, + _CT, + { [_h]: ["POST", "/token", 200] }, + () => CreateTokenRequest$, + () => CreateTokenResponse$ + ]; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +var getRuntimeConfig; +var init_runtimeConfig_shared = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js"() { + init_httpAuthSchemes2(); + init_protocols2(); + init_dist_es(); + init_checksum(); + init_client(); + init_protocols(); + init_serde(); + init_httpAuthSchemeProvider(); + init_endpointResolver(); + init_schemas_0(); + getRuntimeConfig = /* @__PURE__ */ __name((config3) => { + return { + apiVersion: "2019-06-10", + base64Decoder: config3?.base64Decoder ?? fromBase64, + base64Encoder: config3?.base64Encoder ?? toBase64, + disableHostPrefix: config3?.disableHostPrefix ?? false, + endpointProvider: config3?.endpointProvider ?? defaultEndpointResolver, + extensions: config3?.extensions ?? [], + httpAuthSchemeProvider: config3?.httpAuthSchemeProvider ?? defaultSSOOIDCHttpAuthSchemeProvider, + httpAuthSchemes: config3?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), "identityProvider"), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), "identityProvider"), + signer: new NoAuthSigner() + } + ], + logger: config3?.logger ?? new NoOpLogger(), + protocol: config3?.protocol ?? AwsRestJsonProtocol, + protocolSettings: config3?.protocolSettings ?? { + defaultNamespace: "com.amazonaws.ssooidc", + errorTypeRegistries, + version: "2019-06-10", + serviceTarget: "AWSSSOOIDCService" + }, + serviceId: config3?.serviceId ?? "SSO OIDC", + sha256: config3?.sha256 ?? Sha256Node, + urlParser: config3?.urlParser ?? parseUrl, + utf8Decoder: config3?.utf8Decoder ?? fromUtf8, + utf8Encoder: config3?.utf8Encoder ?? toUtf8 + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +var import_node_http_handler, getRuntimeConfig2; +var init_runtimeConfig = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js"() { + init_package(); + init_client2(); + init_httpAuthSchemes2(); + init_client(); + init_config(); + init_retry(); + init_serde(); + import_node_http_handler = __toESM(require_dist_cjs7()); + init_runtimeConfig_shared(); + getRuntimeConfig2 = /* @__PURE__ */ __name((config3) => { + emitWarningIfUnsupportedVersion(process.version); + const defaultsMode = resolveDefaultsModeConfig(config3); + const defaultConfigProvider = /* @__PURE__ */ __name(() => defaultsMode().then(loadConfigsForDefaultMode), "defaultConfigProvider"); + const clientSharedValues = getRuntimeConfig(config3); + emitWarningIfUnsupportedVersion2(process.version); + const loaderConfig = { + profile: config3?.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config3, + runtime: "node", + defaultsMode, + authSchemePreference: config3?.authSchemePreference ?? loadConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: config3?.bodyLengthChecker ?? calculateBodyLength, + defaultUserAgentProvider: config3?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: package_default.version }), + maxAttempts: config3?.maxAttempts ?? loadConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config3), + region: config3?.region ?? loadConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: import_node_http_handler.NodeHttpHandler.create(config3?.requestHandler ?? defaultConfigProvider), + retryMode: config3?.retryMode ?? loadConfig({ + ...NODE_RETRY_MODE_CONFIG_OPTIONS, + default: /* @__PURE__ */ __name(async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, "default") + }, config3), + streamCollector: config3?.streamCollector ?? import_node_http_handler.streamCollector, + useDualstackEndpoint: config3?.useDualstackEndpoint ?? loadConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: config3?.useFipsEndpoint ?? loadConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: config3?.userAgentAppId ?? loadConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.js +var getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig; +var init_httpAuthExtensionConfiguration = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.js"() { + getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials) { + _credentials = credentials; + }, + credentials() { + return _credentials; + } + }; + }, "getHttpAuthExtensionConfiguration"); + resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config3) => { + return { + httpAuthSchemes: config3.httpAuthSchemes(), + httpAuthSchemeProvider: config3.httpAuthSchemeProvider(), + credentials: config3.credentials() + }; + }, "resolveHttpAuthRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeExtensions.js +var resolveRuntimeExtensions; +var init_runtimeExtensions = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeExtensions.js"() { + init_client2(); + init_client(); + init_protocols(); + init_httpAuthExtensionConfiguration(); + resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration(runtimeConfig), getDefaultExtensionConfiguration(runtimeConfig), getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig)); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration(extensionConfiguration), resolveDefaultRuntimeConfig(extensionConfiguration), resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration)); + }, "resolveRuntimeExtensions"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +var SSOOIDCClient; +var init_SSOOIDCClient = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js"() { + init_client2(); + init_dist_es(); + init_client(); + init_config(); + init_endpoints(); + init_protocols(); + init_retry(); + init_schema(); + init_httpAuthSchemeProvider(); + init_EndpointParameters(); + init_runtimeConfig(); + init_runtimeExtensions(); + SSOOIDCClient = class extends Client { + static { + __name(this, "SSOOIDCClient"); + } + config; + constructor(...[configuration]) { + const _config_0 = getRuntimeConfig2(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters(_config_0); + const _config_2 = resolveUserAgentConfig(_config_1); + const _config_3 = resolveRetryConfig(_config_2); + const _config_4 = resolveRegionConfig(_config_3); + const _config_5 = resolveHostHeaderConfig(_config_4); + const _config_6 = resolveEndpointConfig(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig(_config_6); + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + this.config = _config_8; + this.middlewareStack.use(getSchemaSerdePlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + this.middlewareStack.use(getRecursionDetectionPlugin(this.config)); + this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultSSOOIDCHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name(async (config3) => new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config3.credentials + }), "identityProviderConfigProvider") + })); + this.middlewareStack.use(getHttpSigningPlugin(this.config)); + } + destroy() { + super.destroy(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commandBuilder.js +var command, _ep0, _mw0; +var init_commandBuilder = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commandBuilder.js"() { + init_client(); + init_endpoints(); + init_EndpointParameters(); + command = makeBuilder(commonParams, "AWSSSOOIDCService", "SSOOIDCClient", getEndpointPlugin); + _ep0 = {}; + _mw0 = /* @__PURE__ */ __name((Command2, cs, config3, o3) => [], "_mw0"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +var CreateTokenCommand; +var init_CreateTokenCommand = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js"() { + init_commandBuilder(); + init_schemas_0(); + CreateTokenCommand = class extends command(_ep0, _mw0, "CreateToken", CreateToken$) { + static { + __name(this, "CreateTokenCommand"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js +var commands, SSOOIDC; +var init_SSOOIDC = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js"() { + init_client(); + init_CreateTokenCommand(); + init_SSOOIDCClient(); + commands = { + CreateTokenCommand + }; + SSOOIDC = class extends SSOOIDCClient { + static { + __name(this, "SSOOIDC"); + } + }; + createAggregatedClient(commands, SSOOIDC); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/index.js +var init_commands = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/index.js"() { + init_CreateTokenCommand(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/enums.js +var AccessDeniedExceptionReason, InvalidRequestExceptionReason; +var init_enums = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/enums.js"() { + AccessDeniedExceptionReason = { + KMS_ACCESS_DENIED: "KMS_AccessDeniedException" + }; + InvalidRequestExceptionReason = { + KMS_DISABLED_KEY: "KMS_DisabledException", + KMS_INVALID_KEY_USAGE: "KMS_InvalidKeyUsageException", + KMS_INVALID_STATE: "KMS_InvalidStateException", + KMS_KEY_NOT_FOUND: "KMS_NotFoundException" + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/models_0.js +var init_models_0 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/models_0.js"() { + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +var sso_oidc_exports = {}; +__export(sso_oidc_exports, { + $Command: () => Command, + AccessDeniedException: () => AccessDeniedException, + AccessDeniedException$: () => AccessDeniedException$, + AccessDeniedExceptionReason: () => AccessDeniedExceptionReason, + AuthorizationPendingException: () => AuthorizationPendingException, + AuthorizationPendingException$: () => AuthorizationPendingException$, + CreateToken$: () => CreateToken$, + CreateTokenCommand: () => CreateTokenCommand, + CreateTokenRequest$: () => CreateTokenRequest$, + CreateTokenResponse$: () => CreateTokenResponse$, + ExpiredTokenException: () => ExpiredTokenException, + ExpiredTokenException$: () => ExpiredTokenException$, + InternalServerException: () => InternalServerException, + InternalServerException$: () => InternalServerException$, + InvalidClientException: () => InvalidClientException, + InvalidClientException$: () => InvalidClientException$, + InvalidGrantException: () => InvalidGrantException, + InvalidGrantException$: () => InvalidGrantException$, + InvalidRequestException: () => InvalidRequestException, + InvalidRequestException$: () => InvalidRequestException$, + InvalidRequestExceptionReason: () => InvalidRequestExceptionReason, + InvalidScopeException: () => InvalidScopeException, + InvalidScopeException$: () => InvalidScopeException$, + SSOOIDC: () => SSOOIDC, + SSOOIDCClient: () => SSOOIDCClient, + SSOOIDCServiceException: () => SSOOIDCServiceException, + SSOOIDCServiceException$: () => SSOOIDCServiceException$, + SlowDownException: () => SlowDownException, + SlowDownException$: () => SlowDownException$, + UnauthorizedClientException: () => UnauthorizedClientException, + UnauthorizedClientException$: () => UnauthorizedClientException$, + UnsupportedGrantTypeException: () => UnsupportedGrantTypeException, + UnsupportedGrantTypeException$: () => UnsupportedGrantTypeException$, + __Client: () => Client, + errorTypeRegistries: () => errorTypeRegistries +}); +var init_sso_oidc = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js"() { + init_SSOOIDCClient(); + init_SSOOIDC(); + init_commands(); + init_client(); + init_schemas_0(); + init_enums(); + init_errors(); + init_models_0(); + init_SSOOIDCServiceException(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1153.0/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +var require_dist_cjs9 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+token-providers@3.1153.0/node_modules/@aws-sdk/token-providers/dist-cjs/index.js"(exports) { + var { setTokenFeature: setTokenFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var { getBearerTokenEnvKey: getBearerTokenEnvKey2 } = (init_httpAuthSchemes2(), __toCommonJS(httpAuthSchemes_exports)); + var { TokenProviderError, getSSOTokenFilepath, parseKnownFiles, getProfileName, loadSsoSessionData, getSSOTokenFromFile, memoize, chain } = (init_config(), __toCommonJS(config_exports)); + var { promises } = __require("node:fs"); + var fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => { + logger?.debug?.("@aws-sdk/token-providers - fromEnvSigningName"); + if (!signingName) { + throw new TokenProviderError("Please pass 'signingName' to compute environment variable key", { logger }); + } + const bearerTokenKey = getBearerTokenEnvKey2(signingName); + if (!(bearerTokenKey in process.env)) { + throw new TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger }); + } + const token = { token: process.env[bearerTokenKey] }; + setTokenFeature2(token, "BEARER_SERVICE_ENV_VARS", "3"); + return token; + }, "fromEnvSigningName"); + var EXPIRE_WINDOW_MS = 5 * 60 * 1e3; + var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`; + var getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init2 = {}, callerClientConfig) => { + const { SSOOIDCClient: SSOOIDCClient2 } = (init_sso_oidc(), __toCommonJS(sso_oidc_exports)); + const coalesce = /* @__PURE__ */ __name((prop) => init2.clientConfig?.[prop] ?? init2.parentClientConfig?.[prop] ?? callerClientConfig?.[prop], "coalesce"); + const ssoOidcClient = new SSOOIDCClient2(Object.assign({}, init2.clientConfig ?? {}, { + region: ssoRegion ?? init2.clientConfig?.region, + logger: coalesce("logger"), + userAgentAppId: coalesce("userAgentAppId") + })); + return ssoOidcClient; + }, "getSsoOidcClient"); + var getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init2 = {}, callerClientConfig) => { + const { CreateTokenCommand: CreateTokenCommand2 } = (init_sso_oidc(), __toCommonJS(sso_oidc_exports)); + const ssoOidcClient = await getSsoOidcClient(ssoRegion, init2, callerClientConfig); + return ssoOidcClient.send(new CreateTokenCommand2({ + clientId: ssoToken.clientId, + clientSecret: ssoToken.clientSecret, + refreshToken: ssoToken.refreshToken, + grantType: "refresh_token" + })); + }, "getNewSsoOidcToken"); + var validateTokenExpiry = /* @__PURE__ */ __name((token) => { + if (token.expiration && token.expiration.getTime() < Date.now()) { + throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false); + } + }, "validateTokenExpiry"); + var validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => { + if (typeof value === "undefined") { + throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? ". Cannot refresh" : ""}. ${REFRESH_MESSAGE}`, false); + } + }, "validateTokenKey"); + var { writeFile } = promises; + var writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => { + const tokenFilepath = getSSOTokenFilepath(id); + const tokenString = JSON.stringify(ssoToken, null, 2); + return writeFile(tokenFilepath, tokenString); + }, "writeSSOTokenToFile"); + var lastRefreshAttemptTimes = /* @__PURE__ */ new Map(); + var inFlightRefreshes = /* @__PURE__ */ new Map(); + var fromSso = /* @__PURE__ */ __name((init2 = {}) => async ({ callerClientConfig } = {}) => { + init2.logger?.debug("@aws-sdk/token-providers - fromSso"); + const profiles = await parseKnownFiles(init2); + const profileName = getProfileName({ + profile: init2.profile ?? callerClientConfig?.profile + }); + const profile = profiles[profileName]; + if (!profile) { + throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false); + } else if (!profile["sso_session"]) { + throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`); + } + const ssoSessionName = profile["sso_session"]; + const inFlightRefresh = inFlightRefreshes.get(ssoSessionName); + if (inFlightRefresh) { + return await inFlightRefresh; + } + const ssoSessions = await loadSsoSessionData(init2); + const ssoSession = ssoSessions[ssoSessionName]; + if (!ssoSession) { + throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false); + } + for (const ssoSessionRequiredKey of ["sso_start_url", "sso_region"]) { + if (!ssoSession[ssoSessionRequiredKey]) { + throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false); + } + } + ssoSession["sso_start_url"]; + const ssoRegion = ssoSession["sso_region"]; + let ssoToken; + try { + ssoToken = await getSSOTokenFromFile(ssoSessionName); + } catch (e5) { + throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false); + } + validateTokenKey("accessToken", ssoToken.accessToken); + validateTokenKey("expiresAt", ssoToken.expiresAt); + const { accessToken, expiresAt } = ssoToken; + const existingToken = { + token: accessToken, + expiration: new Date(expiresAt) + }; + if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) { + return existingToken; + } + const inFlightRefreshAfterReadingToken = inFlightRefreshes.get(ssoSessionName); + if (inFlightRefreshAfterReadingToken) { + return await inFlightRefreshAfterReadingToken; + } + const lastRefreshAttemptTime = lastRefreshAttemptTimes.get(ssoSessionName) ?? 0; + if (Date.now() - lastRefreshAttemptTime < 30 * 1e3) { + validateTokenExpiry(existingToken); + return existingToken; + } + validateTokenKey("clientId", ssoToken.clientId, true); + validateTokenKey("clientSecret", ssoToken.clientSecret, true); + validateTokenKey("refreshToken", ssoToken.refreshToken, true); + const refresh = (async () => { + try { + lastRefreshAttemptTimes.set(ssoSessionName, Date.now()); + const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init2, callerClientConfig); + validateTokenKey("accessToken", newSsoOidcToken.accessToken); + validateTokenKey("expiresIn", newSsoOidcToken.expiresIn); + const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3); + try { + await writeSSOTokenToFile(ssoSessionName, { + ...ssoToken, + accessToken: newSsoOidcToken.accessToken, + expiresAt: newTokenExpiration.toISOString(), + refreshToken: newSsoOidcToken.refreshToken + }); + } catch (error62) { + } + return { + token: newSsoOidcToken.accessToken, + expiration: newTokenExpiration + }; + } catch (error62) { + validateTokenExpiry(existingToken); + return existingToken; + } + })(); + inFlightRefreshes.set(ssoSessionName, refresh); + try { + return await refresh; + } finally { + inFlightRefreshes.delete(ssoSessionName); + } + }, "fromSso"); + var fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => { + logger?.debug("@aws-sdk/token-providers - fromStatic"); + if (!token || !token.token) { + throw new TokenProviderError(`Please pass a valid token to fromStatic`, false); + } + return token; + }, "fromStatic"); + var nodeProvider = /* @__PURE__ */ __name((init2 = {}) => memoize(chain(fromSso(init2), async () => { + throw new TokenProviderError("Could not load token from any providers", false); + }), (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5, (token) => token.expiration !== void 0), "nodeProvider"); + exports.fromEnvSigningName = fromEnvSigningName; + exports.fromSso = fromSso; + exports.fromStatic = fromStatic; + exports.nodeProvider = nodeProvider; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/auth/httpAuthSchemeProvider.js +function createAwsAuthSigv4HttpAuthOption2(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "awsssoportal", + region: authParameters.region + }, + propertiesExtractor: /* @__PURE__ */ __name((config3, context) => ({ + signingProperties: { + config: config3, + context + } + }), "propertiesExtractor") + }; +} +function createSmithyApiNoAuthHttpAuthOption2(authParameters) { + return { + schemeId: "smithy.api#noAuth" + }; +} +var defaultSSOHttpAuthSchemeParametersProvider, defaultSSOHttpAuthSchemeProvider, resolveHttpAuthSchemeConfig2; +var init_httpAuthSchemeProvider2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/auth/httpAuthSchemeProvider.js"() { + init_httpAuthSchemes2(); + init_client(); + defaultSSOHttpAuthSchemeParametersProvider = /* @__PURE__ */ __name(async (config3, context, input2) => { + return { + operation: getSmithyContext(context).operation, + region: await normalizeProvider(config3.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }, "defaultSSOHttpAuthSchemeParametersProvider"); + __name(createAwsAuthSigv4HttpAuthOption2, "createAwsAuthSigv4HttpAuthOption"); + __name(createSmithyApiNoAuthHttpAuthOption2, "createSmithyApiNoAuthHttpAuthOption"); + defaultSSOHttpAuthSchemeProvider = /* @__PURE__ */ __name((authParameters) => { + const options = []; + switch (authParameters.operation) { + case "GetRoleCredentials": + { + options.push(createSmithyApiNoAuthHttpAuthOption2(authParameters)); + break; + } + ; + default: { + options.push(createAwsAuthSigv4HttpAuthOption2(authParameters)); + } + } + return options; + }, "defaultSSOHttpAuthSchemeProvider"); + resolveHttpAuthSchemeConfig2 = /* @__PURE__ */ __name((config3) => { + const config_0 = resolveAwsSdkSigV4Config(config3); + return Object.assign(config_0, { + authSchemePreference: normalizeProvider(config3.authSchemePreference ?? []) + }); + }, "resolveHttpAuthSchemeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/EndpointParameters.js +var resolveClientEndpointParameters2, commonParams2; +var init_EndpointParameters2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/EndpointParameters.js"() { + resolveClientEndpointParameters2 = /* @__PURE__ */ __name((options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "awsssoportal" + }); + }, "resolveClientEndpointParameters"); + commonParams2 = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/bdd.js +var k2, a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, _data2, root2, r2, nodes2, bdd2; +var init_bdd2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/bdd.js"() { + init_endpoints(); + k2 = "ref"; + a2 = -1; + b2 = true; + c2 = "isSet"; + d2 = "PartitionResult"; + e2 = "booleanEquals"; + f2 = "getAttr"; + g2 = { [k2]: "Endpoint" }; + h2 = { [k2]: d2 }; + i2 = {}; + j2 = [{ [k2]: "Region" }]; + _data2 = { + conditions: [ + [c2, [g2]], + [c2, j2], + ["aws.partition", j2, d2], + [e2, [{ [k2]: "UseFIPS" }, b2]], + [e2, [{ [k2]: "UseDualStack" }, b2]], + [e2, [{ fn: f2, argv: [h2, "supportsDualStack"] }, b2]], + [e2, [{ fn: f2, argv: [h2, "supportsFIPS"] }, b2]], + ["stringEquals", [{ fn: f2, argv: [h2, "name"] }, "aws-us-gov"]] + ], + results: [ + [a2], + [a2, "Invalid Configuration: FIPS and custom endpoint are not supported"], + [a2, "Invalid Configuration: Dualstack and custom endpoint are not supported"], + [g2, i2], + ["https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", i2], + [a2, "FIPS and DualStack are enabled, but this partition does not support one or both"], + ["https://portal.sso.{Region}.amazonaws.com", i2], + ["https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}", i2], + [a2, "FIPS is enabled but this partition does not support FIPS"], + ["https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}", i2], + [a2, "DualStack is enabled but this partition does not support DualStack"], + ["https://portal.sso.{Region}.{PartitionResult#dnsSuffix}", i2], + [a2, "Invalid Configuration: Missing Region"] + ] + }; + root2 = 2; + r2 = 1e8; + nodes2 = new Int32Array([ + -1, + 1, + -1, + 0, + 13, + 3, + 1, + 4, + r2 + 12, + 2, + 5, + r2 + 12, + 3, + 8, + 6, + 4, + 7, + r2 + 11, + 5, + r2 + 9, + r2 + 10, + 4, + 11, + 9, + 6, + 10, + r2 + 8, + 7, + r2 + 6, + r2 + 7, + 5, + 12, + r2 + 5, + 6, + r2 + 4, + r2 + 5, + 3, + r2 + 1, + 14, + 4, + r2 + 2, + r2 + 3 + ]); + bdd2 = BinaryDecisionDiagram.from(nodes2, root2, _data2.conditions, _data2.results); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/endpointResolver.js +var cache2, defaultEndpointResolver2; +var init_endpointResolver2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/endpointResolver.js"() { + init_client2(); + init_endpoints(); + init_bdd2(); + cache2 = new EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"] + }); + defaultEndpointResolver2 = /* @__PURE__ */ __name((endpointParams, context = {}) => { + return cache2.get(endpointParams, () => decideEndpoint(bdd2, { + endpointParams, + logger: context.logger + })); + }, "defaultEndpointResolver"); + customEndpointFunctions.aws = awsEndpointFunctions; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/SSOServiceException.js +var SSOServiceException; +var init_SSOServiceException = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/SSOServiceException.js"() { + init_client(); + SSOServiceException = class _SSOServiceException extends ServiceException { + static { + __name(this, "SSOServiceException"); + } + static shapeId = "smithy.ts.sdk.synthetic.com.amazonaws.sso#SSOServiceException"; + constructor(options) { + super(options); + Object.setPrototypeOf(this, _SSOServiceException.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/errors.js +var InvalidRequestException2, ResourceNotFoundException, TooManyRequestsException, UnauthorizedException2; +var init_errors2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/errors.js"() { + init_SSOServiceException(); + InvalidRequestException2 = class _InvalidRequestException extends SSOServiceException { + static { + __name(this, "InvalidRequestException"); + } + static shapeId = "com.amazonaws.sso#InvalidRequestException"; + name = "InvalidRequestException"; + $fault = "client"; + constructor(opts) { + super({ + name: "InvalidRequestException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidRequestException.prototype); + } + }; + ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException { + static { + __name(this, "ResourceNotFoundException"); + } + static shapeId = "com.amazonaws.sso#ResourceNotFoundException"; + name = "ResourceNotFoundException"; + $fault = "client"; + constructor(opts) { + super({ + name: "ResourceNotFoundException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ResourceNotFoundException.prototype); + } + }; + TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException { + static { + __name(this, "TooManyRequestsException"); + } + static shapeId = "com.amazonaws.sso#TooManyRequestsException"; + name = "TooManyRequestsException"; + $fault = "client"; + constructor(opts) { + super({ + name: "TooManyRequestsException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _TooManyRequestsException.prototype); + } + }; + UnauthorizedException2 = class _UnauthorizedException extends SSOServiceException { + static { + __name(this, "UnauthorizedException"); + } + static shapeId = "com.amazonaws.sso#UnauthorizedException"; + name = "UnauthorizedException"; + $fault = "client"; + constructor(opts) { + super({ + name: "UnauthorizedException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _UnauthorizedException.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/schemas/schemas_0.js +var _ATT, _GRC, _GRCR, _GRCRe, _IRE2, _RC, _RNFE, _SAKT, _STT, _TMRE, _UE, _aI, _aKI, _aT2, _ai, _c2, _e2, _ex, _h2, _hE2, _hH, _hQ, _m, _rC, _rN, _rn, _s2, _sAK, _sT, _xasbt, n02, _s_registry2, SSOServiceException$, n0_registry2, InvalidRequestException$2, ResourceNotFoundException$, TooManyRequestsException$, UnauthorizedException$, errorTypeRegistries2, AccessTokenType, SecretAccessKeyType, SessionTokenType, GetRoleCredentialsRequest$, GetRoleCredentialsResponse$, RoleCredentials$, GetRoleCredentials$; +var init_schemas_02 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/schemas/schemas_0.js"() { + init_schema(); + init_errors2(); + init_SSOServiceException(); + _ATT = "AccessTokenType"; + _GRC = "GetRoleCredentials"; + _GRCR = "GetRoleCredentialsRequest"; + _GRCRe = "GetRoleCredentialsResponse"; + _IRE2 = "InvalidRequestException"; + _RC = "RoleCredentials"; + _RNFE = "ResourceNotFoundException"; + _SAKT = "SecretAccessKeyType"; + _STT = "SessionTokenType"; + _TMRE = "TooManyRequestsException"; + _UE = "UnauthorizedException"; + _aI = "accountId"; + _aKI = "accessKeyId"; + _aT2 = "accessToken"; + _ai = "account_id"; + _c2 = "client"; + _e2 = "error"; + _ex = "expiration"; + _h2 = "http"; + _hE2 = "httpError"; + _hH = "httpHeader"; + _hQ = "httpQuery"; + _m = "message"; + _rC = "roleCredentials"; + _rN = "roleName"; + _rn = "role_name"; + _s2 = "smithy.ts.sdk.synthetic.com.amazonaws.sso"; + _sAK = "secretAccessKey"; + _sT = "sessionToken"; + _xasbt = "x-amz-sso_bearer_token"; + n02 = "com.amazonaws.sso"; + _s_registry2 = new TypeRegistry(_s2); + SSOServiceException$ = [-3, _s2, "SSOServiceException", 0, [], []]; + _s_registry2.registerError(SSOServiceException$, SSOServiceException); + n0_registry2 = new TypeRegistry(n02); + InvalidRequestException$2 = [ + -3, + n02, + _IRE2, + { [_e2]: _c2, [_hE2]: 400 }, + [_m], + [0] + ]; + n0_registry2.registerError(InvalidRequestException$2, InvalidRequestException2); + ResourceNotFoundException$ = [ + -3, + n02, + _RNFE, + { [_e2]: _c2, [_hE2]: 404 }, + [_m], + [0] + ]; + n0_registry2.registerError(ResourceNotFoundException$, ResourceNotFoundException); + TooManyRequestsException$ = [ + -3, + n02, + _TMRE, + { [_e2]: _c2, [_hE2]: 429 }, + [_m], + [0] + ]; + n0_registry2.registerError(TooManyRequestsException$, TooManyRequestsException); + UnauthorizedException$ = [ + -3, + n02, + _UE, + { [_e2]: _c2, [_hE2]: 401 }, + [_m], + [0] + ]; + n0_registry2.registerError(UnauthorizedException$, UnauthorizedException2); + errorTypeRegistries2 = [ + _s_registry2, + n0_registry2 + ]; + AccessTokenType = [0, n02, _ATT, 8, 0]; + SecretAccessKeyType = [0, n02, _SAKT, 8, 0]; + SessionTokenType = [0, n02, _STT, 8, 0]; + GetRoleCredentialsRequest$ = [ + 3, + n02, + _GRCR, + 0, + [_rN, _aI, _aT2], + [[0, { [_hQ]: _rn }], [0, { [_hQ]: _ai }], [() => AccessTokenType, { [_hH]: _xasbt }]], + 3 + ]; + GetRoleCredentialsResponse$ = [ + 3, + n02, + _GRCRe, + 0, + [_rC], + [[() => RoleCredentials$, 0]] + ]; + RoleCredentials$ = [ + 3, + n02, + _RC, + 0, + [_aKI, _sAK, _sT, _ex], + [0, [() => SecretAccessKeyType, 0], [() => SessionTokenType, 0], 1] + ]; + GetRoleCredentials$ = [ + 9, + n02, + _GRC, + { [_h2]: ["GET", "/federation/credentials", 200] }, + () => GetRoleCredentialsRequest$, + () => GetRoleCredentialsResponse$ + ]; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.shared.js +var getRuntimeConfig3; +var init_runtimeConfig_shared2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.shared.js"() { + init_httpAuthSchemes2(); + init_protocols2(); + init_dist_es(); + init_checksum(); + init_client(); + init_protocols(); + init_serde(); + init_httpAuthSchemeProvider2(); + init_endpointResolver2(); + init_schemas_02(); + getRuntimeConfig3 = /* @__PURE__ */ __name((config3) => { + return { + apiVersion: "2019-06-10", + base64Decoder: config3?.base64Decoder ?? fromBase64, + base64Encoder: config3?.base64Encoder ?? toBase64, + disableHostPrefix: config3?.disableHostPrefix ?? false, + endpointProvider: config3?.endpointProvider ?? defaultEndpointResolver2, + extensions: config3?.extensions ?? [], + httpAuthSchemeProvider: config3?.httpAuthSchemeProvider ?? defaultSSOHttpAuthSchemeProvider, + httpAuthSchemes: config3?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), "identityProvider"), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), "identityProvider"), + signer: new NoAuthSigner() + } + ], + logger: config3?.logger ?? new NoOpLogger(), + protocol: config3?.protocol ?? AwsRestJsonProtocol, + protocolSettings: config3?.protocolSettings ?? { + defaultNamespace: "com.amazonaws.sso", + errorTypeRegistries: errorTypeRegistries2, + version: "2019-06-10", + serviceTarget: "SWBPortalService" + }, + serviceId: config3?.serviceId ?? "SSO", + sha256: config3?.sha256 ?? Sha256Node, + urlParser: config3?.urlParser ?? parseUrl, + utf8Decoder: config3?.utf8Decoder ?? fromUtf8, + utf8Encoder: config3?.utf8Encoder ?? toUtf8 + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.js +var import_node_http_handler2, getRuntimeConfig4; +var init_runtimeConfig2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.js"() { + init_package(); + init_client2(); + init_httpAuthSchemes2(); + init_client(); + init_config(); + init_retry(); + init_serde(); + import_node_http_handler2 = __toESM(require_dist_cjs7()); + init_runtimeConfig_shared2(); + getRuntimeConfig4 = /* @__PURE__ */ __name((config3) => { + emitWarningIfUnsupportedVersion(process.version); + const defaultsMode = resolveDefaultsModeConfig(config3); + const defaultConfigProvider = /* @__PURE__ */ __name(() => defaultsMode().then(loadConfigsForDefaultMode), "defaultConfigProvider"); + const clientSharedValues = getRuntimeConfig3(config3); + emitWarningIfUnsupportedVersion2(process.version); + const loaderConfig = { + profile: config3?.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config3, + runtime: "node", + defaultsMode, + authSchemePreference: config3?.authSchemePreference ?? loadConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: config3?.bodyLengthChecker ?? calculateBodyLength, + defaultUserAgentProvider: config3?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: package_default.version }), + maxAttempts: config3?.maxAttempts ?? loadConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config3), + region: config3?.region ?? loadConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: import_node_http_handler2.NodeHttpHandler.create(config3?.requestHandler ?? defaultConfigProvider), + retryMode: config3?.retryMode ?? loadConfig({ + ...NODE_RETRY_MODE_CONFIG_OPTIONS, + default: /* @__PURE__ */ __name(async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, "default") + }, config3), + streamCollector: config3?.streamCollector ?? import_node_http_handler2.streamCollector, + useDualstackEndpoint: config3?.useDualstackEndpoint ?? loadConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: config3?.useFipsEndpoint ?? loadConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: config3?.userAgentAppId ?? loadConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/auth/httpAuthExtensionConfiguration.js +var getHttpAuthExtensionConfiguration2, resolveHttpAuthRuntimeConfig2; +var init_httpAuthExtensionConfiguration2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/auth/httpAuthExtensionConfiguration.js"() { + getHttpAuthExtensionConfiguration2 = /* @__PURE__ */ __name((runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials) { + _credentials = credentials; + }, + credentials() { + return _credentials; + } + }; + }, "getHttpAuthExtensionConfiguration"); + resolveHttpAuthRuntimeConfig2 = /* @__PURE__ */ __name((config3) => { + return { + httpAuthSchemes: config3.httpAuthSchemes(), + httpAuthSchemeProvider: config3.httpAuthSchemeProvider(), + credentials: config3.credentials() + }; + }, "resolveHttpAuthRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeExtensions.js +var resolveRuntimeExtensions2; +var init_runtimeExtensions2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeExtensions.js"() { + init_client2(); + init_client(); + init_protocols(); + init_httpAuthExtensionConfiguration2(); + resolveRuntimeExtensions2 = /* @__PURE__ */ __name((runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration(runtimeConfig), getDefaultExtensionConfiguration(runtimeConfig), getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration2(runtimeConfig)); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration(extensionConfiguration), resolveDefaultRuntimeConfig(extensionConfiguration), resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig2(extensionConfiguration)); + }, "resolveRuntimeExtensions"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSOClient.js +var SSOClient; +var init_SSOClient = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSOClient.js"() { + init_client2(); + init_dist_es(); + init_client(); + init_config(); + init_endpoints(); + init_protocols(); + init_retry(); + init_schema(); + init_httpAuthSchemeProvider2(); + init_EndpointParameters2(); + init_runtimeConfig2(); + init_runtimeExtensions2(); + SSOClient = class extends Client { + static { + __name(this, "SSOClient"); + } + config; + constructor(...[configuration]) { + const _config_0 = getRuntimeConfig4(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters2(_config_0); + const _config_2 = resolveUserAgentConfig(_config_1); + const _config_3 = resolveRetryConfig(_config_2); + const _config_4 = resolveRegionConfig(_config_3); + const _config_5 = resolveHostHeaderConfig(_config_4); + const _config_6 = resolveEndpointConfig(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig2(_config_6); + const _config_8 = resolveRuntimeExtensions2(_config_7, configuration?.extensions || []); + this.config = _config_8; + this.middlewareStack.use(getSchemaSerdePlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + this.middlewareStack.use(getRecursionDetectionPlugin(this.config)); + this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultSSOHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name(async (config3) => new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config3.credentials + }), "identityProviderConfigProvider") + })); + this.middlewareStack.use(getHttpSigningPlugin(this.config)); + } + destroy() { + super.destroy(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commandBuilder.js +var command2, _ep02, _mw02; +var init_commandBuilder2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commandBuilder.js"() { + init_client(); + init_endpoints(); + init_EndpointParameters2(); + command2 = makeBuilder(commonParams2, "SWBPortalService", "SSOClient", getEndpointPlugin); + _ep02 = {}; + _mw02 = /* @__PURE__ */ __name((Command2, cs, config3, o3) => [], "_mw0"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commands/GetRoleCredentialsCommand.js +var GetRoleCredentialsCommand; +var init_GetRoleCredentialsCommand = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commands/GetRoleCredentialsCommand.js"() { + init_commandBuilder2(); + init_schemas_02(); + GetRoleCredentialsCommand = class extends command2(_ep02, _mw02, "GetRoleCredentials", GetRoleCredentials$) { + static { + __name(this, "GetRoleCredentialsCommand"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSO.js +var commands2, SSO; +var init_SSO = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSO.js"() { + init_client(); + init_GetRoleCredentialsCommand(); + init_SSOClient(); + commands2 = { + GetRoleCredentialsCommand + }; + SSO = class extends SSOClient { + static { + __name(this, "SSO"); + } + }; + createAggregatedClient(commands2, SSO); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commands/index.js +var init_commands2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commands/index.js"() { + init_GetRoleCredentialsCommand(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/models_0.js +var init_models_02 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/models_0.js"() { + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/index.js +var sso_exports = {}; +__export(sso_exports, { + $Command: () => Command, + GetRoleCredentials$: () => GetRoleCredentials$, + GetRoleCredentialsCommand: () => GetRoleCredentialsCommand, + GetRoleCredentialsRequest$: () => GetRoleCredentialsRequest$, + GetRoleCredentialsResponse$: () => GetRoleCredentialsResponse$, + InvalidRequestException: () => InvalidRequestException2, + InvalidRequestException$: () => InvalidRequestException$2, + ResourceNotFoundException: () => ResourceNotFoundException, + ResourceNotFoundException$: () => ResourceNotFoundException$, + RoleCredentials$: () => RoleCredentials$, + SSO: () => SSO, + SSOClient: () => SSOClient, + SSOServiceException: () => SSOServiceException, + SSOServiceException$: () => SSOServiceException$, + TooManyRequestsException: () => TooManyRequestsException, + TooManyRequestsException$: () => TooManyRequestsException$, + UnauthorizedException: () => UnauthorizedException2, + UnauthorizedException$: () => UnauthorizedException$, + __Client: () => Client, + errorTypeRegistries: () => errorTypeRegistries2 +}); +var init_sso = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/index.js"() { + init_SSOClient(); + init_SSO(); + init_commands2(); + init_client(); + init_schemas_02(); + init_errors2(); + init_models_02(); + init_SSOServiceException(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.19/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-BGYXHf8s.js +var require_loadSso_BGYXHf8s = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.19/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-BGYXHf8s.js"(exports) { + var { GetRoleCredentialsCommand: GetRoleCredentialsCommand2, SSOClient: SSOClient2 } = (init_sso(), __toCommonJS(sso_exports)); + exports.GetRoleCredentialsCommand = GetRoleCredentialsCommand2; + exports.SSOClient = SSOClient2; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.19/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +var require_dist_cjs10 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.19/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js"(exports) { + var { CredentialsProviderError, getSSOTokenFromFile, getProfileName, parseKnownFiles, loadSsoSessionData } = (init_config(), __toCommonJS(config_exports)); + var { setCredentialFeature: setCredentialFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var { fromSso } = require_dist_cjs9(); + var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); + var SHOULD_FAIL_CREDENTIAL_CHAIN = false; + var resolveSSOCredentials = /* @__PURE__ */ __name(async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, callerClientConfig, profile, filepath, configFilepath, ignoreCache, logger }) => { + let token; + const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`; + if (ssoSession) { + try { + const _token = await fromSso({ + profile, + filepath, + configFilepath, + ignoreCache, + clientConfig, + parentClientConfig, + logger + })({ callerClientConfig }); + token = { + accessToken: _token.token, + expiresAt: new Date(_token.expiration).toISOString() + }; + } catch (e5) { + throw new CredentialsProviderError(e5.message, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + }); + } + } else { + try { + token = await getSSOTokenFromFile(ssoStartUrl); + } catch (e5) { + throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + }); + } + } + if (new Date(token.expiresAt).getTime() - Date.now() <= 0) { + throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + }); + } + const { accessToken } = token; + const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = require_loadSso_BGYXHf8s(); + const sso = ssoClient || new SSOClient2(Object.assign({}, clientConfig ?? {}, { + logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger, + region: clientConfig?.region ?? ssoRegion, + userAgentAppId: clientConfig?.userAgentAppId ?? callerClientConfig?.userAgentAppId ?? parentClientConfig?.userAgentAppId + })); + let ssoResp; + try { + ssoResp = await sso.send(new GetRoleCredentialsCommand2({ + accountId: ssoAccountId, + roleName: ssoRoleName, + accessToken + })); + } catch (e5) { + throw new CredentialsProviderError(e5, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + }); + } + const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {} } = ssoResp; + if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) { + throw new CredentialsProviderError("SSO returns an invalid temporary credential.", { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger + }); + } + const credentials = { + accessKeyId, + secretAccessKey, + sessionToken, + expiration: new Date(expiration), + ...credentialScope && { credentialScope }, + ...accountId && { accountId } + }; + if (ssoSession) { + setCredentialFeature2(credentials, "CREDENTIALS_SSO", "s"); + } else { + setCredentialFeature2(credentials, "CREDENTIALS_SSO_LEGACY", "u"); + } + return credentials; + }, "resolveSSOCredentials"); + var validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => { + const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile; + if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) { + throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join(", ")} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger }); + } + return profile; + }, "validateSsoProfile"); + var fromSSO = /* @__PURE__ */ __name((init2 = {}) => async ({ callerClientConfig } = {}) => { + init2.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO"); + const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init2; + const { ssoClient } = init2; + const profileName = getProfileName({ + profile: init2.profile ?? callerClientConfig?.profile + }); + if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { + const profiles = await parseKnownFiles(init2); + const profile = profiles[profileName]; + if (!profile) { + throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init2.logger }); + } + if (!isSsoProfile(profile)) { + throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, { + logger: init2.logger + }); + } + if (profile?.sso_session) { + const ssoSessions = await loadSsoSessionData(init2); + const session = ssoSessions[profile.sso_session]; + const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`; + if (ssoRegion && ssoRegion !== session.sso_region) { + throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, { + tryNextLink: false, + logger: init2.logger + }); + } + if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) { + throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, { + tryNextLink: false, + logger: init2.logger + }); + } + profile.sso_region = session.sso_region; + profile.sso_start_url = session.sso_start_url; + } + const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init2.logger); + return resolveSSOCredentials({ + ssoStartUrl: sso_start_url, + ssoSession: sso_session, + ssoAccountId: sso_account_id, + ssoRegion: sso_region, + ssoRoleName: sso_role_name, + ssoClient, + clientConfig: init2.clientConfig, + parentClientConfig: init2.parentClientConfig, + callerClientConfig: init2.callerClientConfig, + profile: profileName, + filepath: init2.filepath, + configFilepath: init2.configFilepath, + ignoreCache: init2.ignoreCache, + logger: init2.logger + }); + } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) { + throw new CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', { tryNextLink: false, logger: init2.logger }); + } else { + return resolveSSOCredentials({ + ssoStartUrl, + ssoSession, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoClient, + clientConfig: init2.clientConfig, + parentClientConfig: init2.parentClientConfig, + callerClientConfig: init2.callerClientConfig, + profile: profileName, + filepath: init2.filepath, + configFilepath: init2.configFilepath, + ignoreCache: init2.ignoreCache, + logger: init2.logger + }); + } + }, "fromSSO"); + exports.fromSSO = fromSSO; + exports.isSsoProfile = isSsoProfile; + exports.validateSsoProfile = validateSsoProfile; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/bdd.js +var q, a3, b3, c3, d3, e3, f3, g3, h3, i3, j3, k3, l, m, n, o, p, _data3, root3, r3, nodes3, bdd3; +var init_bdd3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/bdd.js"() { + init_endpoints(); + q = "ref"; + a3 = -1; + b3 = true; + c3 = "isSet"; + d3 = "PartitionResult"; + e3 = "booleanEquals"; + f3 = "stringEquals"; + g3 = "getAttr"; + h3 = "us-east-1"; + i3 = "sigv4"; + j3 = "sts"; + k3 = "https://sts.{Region}.{PartitionResult#dnsSuffix}"; + l = { [q]: "Endpoint" }; + m = { [q]: "Region" }; + n = { [q]: d3 }; + o = {}; + p = [m]; + _data3 = { + conditions: [ + [c3, [l]], + [c3, p], + ["aws.partition", p, d3], + [e3, [{ [q]: "UseFIPS" }, b3]], + [e3, [{ [q]: "UseDualStack" }, b3]], + [f3, [m, "aws-global"]], + [e3, [{ [q]: "UseGlobalEndpoint" }, b3]], + [f3, [m, "eu-central-1"]], + [e3, [{ fn: g3, argv: [n, "supportsDualStack"] }, b3]], + [e3, [{ fn: g3, argv: [n, "supportsFIPS"] }, b3]], + [f3, [m, "ap-south-1"]], + [f3, [m, "eu-north-1"]], + [f3, [m, "eu-west-1"]], + [f3, [m, "eu-west-2"]], + [f3, [m, "eu-west-3"]], + [f3, [m, "sa-east-1"]], + [f3, [m, h3]], + [f3, [m, "us-east-2"]], + [f3, [m, "us-west-2"]], + [f3, [m, "us-west-1"]], + [f3, [m, "ca-central-1"]], + [f3, [m, "ap-southeast-1"]], + [f3, [m, "ap-northeast-1"]], + [f3, [m, "ap-southeast-2"]], + [f3, [{ fn: g3, argv: [n, "name"] }, "aws-us-gov"]] + ], + results: [ + [a3], + ["https://sts.amazonaws.com", { authSchemes: [{ name: i3, signingName: j3, signingRegion: h3 }] }], + [k3, { authSchemes: [{ name: i3, signingName: j3, signingRegion: "{Region}" }] }], + [a3, "Invalid Configuration: FIPS and custom endpoint are not supported"], + [a3, "Invalid Configuration: Dualstack and custom endpoint are not supported"], + [l, o], + ["https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", o], + [a3, "FIPS and DualStack are enabled, but this partition does not support one or both"], + ["https://sts.{Region}.amazonaws.com", o], + ["https://sts-fips.{Region}.{PartitionResult#dnsSuffix}", o], + [a3, "FIPS is enabled but this partition does not support FIPS"], + ["https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}", o], + [a3, "DualStack is enabled but this partition does not support DualStack"], + [k3, o], + [a3, "Invalid Configuration: Missing Region"] + ] + }; + root3 = 2; + r3 = 1e8; + nodes3 = new Int32Array([ + -1, + 1, + -1, + 0, + 30, + 3, + 1, + 4, + r3 + 14, + 2, + 5, + r3 + 14, + 3, + 25, + 6, + 4, + 24, + 7, + 5, + r3 + 1, + 8, + 6, + 9, + r3 + 13, + 7, + r3 + 1, + 10, + 10, + r3 + 1, + 11, + 11, + r3 + 1, + 12, + 12, + r3 + 1, + 13, + 13, + r3 + 1, + 14, + 14, + r3 + 1, + 15, + 15, + r3 + 1, + 16, + 16, + r3 + 1, + 17, + 17, + r3 + 1, + 18, + 18, + r3 + 1, + 19, + 19, + r3 + 1, + 20, + 20, + r3 + 1, + 21, + 21, + r3 + 1, + 22, + 22, + r3 + 1, + 23, + 23, + r3 + 1, + r3 + 2, + 8, + r3 + 11, + r3 + 12, + 4, + 28, + 26, + 9, + 27, + r3 + 10, + 24, + r3 + 8, + r3 + 9, + 8, + 29, + r3 + 7, + 9, + r3 + 6, + r3 + 7, + 3, + r3 + 3, + 31, + 4, + r3 + 4, + r3 + 5 + ]); + bdd3 = BinaryDecisionDiagram.from(nodes3, root3, _data3.conditions, _data3.results); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/endpointResolver.js +var cache3, defaultEndpointResolver3; +var init_endpointResolver3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/endpointResolver.js"() { + init_client2(); + init_endpoints(); + init_bdd3(); + cache3 = new EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS", "UseGlobalEndpoint"] + }); + defaultEndpointResolver3 = /* @__PURE__ */ __name((endpointParams, context = {}) => { + return cache3.get(endpointParams, () => decideEndpoint(bdd3, { + endpointParams, + logger: context.logger + })); + }, "defaultEndpointResolver"); + customEndpointFunctions.aws = awsEndpointFunctions; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js +function createAwsAuthSigv4HttpAuthOption3(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "sts", + region: authParameters.region + }, + propertiesExtractor: /* @__PURE__ */ __name((config3, context) => ({ + signingProperties: { + config: config3, + context + } + }), "propertiesExtractor") + }; +} +function createAwsAuthSigv4aHttpAuthOption(authParameters) { + return { + schemeId: "aws.auth#sigv4a", + signingProperties: { + name: "sts", + region: authParameters.region + }, + propertiesExtractor: /* @__PURE__ */ __name((config3, context) => ({ + signingProperties: { + config: config3, + context + } + }), "propertiesExtractor") + }; +} +function createSmithyApiNoAuthHttpAuthOption3(authParameters) { + return { + schemeId: "smithy.api#noAuth" + }; +} +var import_signature_v4_multi_region2, createEndpointRuleSetHttpAuthSchemeParametersProvider, _defaultSTSHttpAuthSchemeParametersProvider, defaultSTSHttpAuthSchemeParametersProvider, createEndpointRuleSetHttpAuthSchemeProvider, _defaultSTSHttpAuthSchemeProvider, defaultSTSHttpAuthSchemeProvider, resolveHttpAuthSchemeConfig3; +var init_httpAuthSchemeProvider3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js"() { + init_httpAuthSchemes2(); + import_signature_v4_multi_region2 = __toESM(require_dist_cjs3()); + init_client(); + init_endpoints(); + init_endpointResolver3(); + createEndpointRuleSetHttpAuthSchemeParametersProvider = /* @__PURE__ */ __name((defaultHttpAuthSchemeParametersProvider) => async (config3, context, input2) => { + if (!input2) { + throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`"); + } + const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config3, context, input2); + const instructionsFn = getSmithyContext(context)?.commandInstance?.constructor?.getEndpointParameterInstructions; + if (!instructionsFn) { + throw new Error(`getEndpointParameterInstructions() is not defined on '${context.commandName}'`); + } + const endpointParameters = await resolveParams(input2, { getEndpointParameterInstructions: instructionsFn }, config3); + return Object.assign(defaultParameters, endpointParameters); + }, "createEndpointRuleSetHttpAuthSchemeParametersProvider"); + _defaultSTSHttpAuthSchemeParametersProvider = /* @__PURE__ */ __name(async (config3, context, input2) => { + return { + operation: getSmithyContext(context).operation, + region: await normalizeProvider(config3.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }, "_defaultSTSHttpAuthSchemeParametersProvider"); + defaultSTSHttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultSTSHttpAuthSchemeParametersProvider); + __name(createAwsAuthSigv4HttpAuthOption3, "createAwsAuthSigv4HttpAuthOption"); + __name(createAwsAuthSigv4aHttpAuthOption, "createAwsAuthSigv4aHttpAuthOption"); + __name(createSmithyApiNoAuthHttpAuthOption3, "createSmithyApiNoAuthHttpAuthOption"); + createEndpointRuleSetHttpAuthSchemeProvider = /* @__PURE__ */ __name((defaultEndpointResolver5, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => { + const endpointRuleSetHttpAuthSchemeProvider = /* @__PURE__ */ __name((authParameters) => { + const endpoint = defaultEndpointResolver5(authParameters); + const authSchemes = endpoint.properties?.authSchemes; + if (!authSchemes) { + return defaultHttpAuthSchemeResolver(authParameters); + } + const options = []; + for (const scheme of authSchemes) { + const { name: resolvedName, properties = {}, ...rest } = scheme; + const name2 = resolvedName.toLowerCase(); + if (resolvedName !== name2) { + console.warn(`HttpAuthScheme has been normalized with lowercasing: '${resolvedName}' to '${name2}'`); + } + let schemeId; + if (name2 === "sigv4a") { + schemeId = "aws.auth#sigv4a"; + const sigv4Present = authSchemes.find((s2) => { + const name3 = s2.name.toLowerCase(); + return name3 !== "sigv4a" && name3.startsWith("sigv4"); + }); + if (import_signature_v4_multi_region2.SignatureV4MultiRegion.sigv4aDependency() === "none" && sigv4Present) { + continue; + } + } else if (name2.startsWith("sigv4")) { + schemeId = "aws.auth#sigv4"; + } else { + throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${name2}'`); + } + const createOption = createHttpAuthOptionFunctions[schemeId]; + if (!createOption) { + throw new Error(`Could not find HttpAuthOption create function for '${schemeId}'`); + } + const option = createOption(authParameters); + option.schemeId = schemeId; + option.signingProperties = { ...option.signingProperties || {}, ...rest, ...properties }; + options.push(option); + } + return options; + }, "endpointRuleSetHttpAuthSchemeProvider"); + return endpointRuleSetHttpAuthSchemeProvider; + }, "createEndpointRuleSetHttpAuthSchemeProvider"); + _defaultSTSHttpAuthSchemeProvider = /* @__PURE__ */ __name((authParameters) => { + const options = []; + switch (authParameters.operation) { + case "AssumeRoleWithWebIdentity": { + options.push(createSmithyApiNoAuthHttpAuthOption3(authParameters)); + options.push(createAwsAuthSigv4aHttpAuthOption(authParameters)); + break; + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption3(authParameters)); + options.push(createAwsAuthSigv4aHttpAuthOption(authParameters)); + } + } + return options; + }, "_defaultSTSHttpAuthSchemeProvider"); + defaultSTSHttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(defaultEndpointResolver3, _defaultSTSHttpAuthSchemeProvider, { + "aws.auth#sigv4": createAwsAuthSigv4HttpAuthOption3, + "aws.auth#sigv4a": createAwsAuthSigv4aHttpAuthOption, + "smithy.api#noAuth": createSmithyApiNoAuthHttpAuthOption3 + }); + resolveHttpAuthSchemeConfig3 = /* @__PURE__ */ __name((config3) => { + const config_0 = resolveAwsSdkSigV4Config(config3); + const config_1 = resolveAwsSdkSigV4AConfig(config_0); + return Object.assign(config_1, { + authSchemePreference: normalizeProvider(config3.authSchemePreference ?? []) + }); + }, "resolveHttpAuthSchemeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/EndpointParameters.js +var resolveClientEndpointParameters3, commonParams3; +var init_EndpointParameters3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/EndpointParameters.js"() { + resolveClientEndpointParameters3 = /* @__PURE__ */ __name((options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + useGlobalEndpoint: options.useGlobalEndpoint ?? false, + defaultSigningName: "sts" + }); + }, "resolveClientEndpointParameters"); + commonParams3 = { + UseGlobalEndpoint: { type: "builtInParams", name: "useGlobalEndpoint" }, + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js +var STSServiceException; +var init_STSServiceException = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js"() { + init_client(); + STSServiceException = class _STSServiceException extends ServiceException { + static { + __name(this, "STSServiceException"); + } + static shapeId = "smithy.ts.sdk.synthetic.com.amazonaws.sts#STSServiceException"; + constructor(options) { + super(options); + Object.setPrototypeOf(this, _STSServiceException.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/errors.js +var ExpiredTokenException2, MalformedPolicyDocumentException, PackedPolicyTooLargeException, RegionDisabledException, IDPRejectedClaimException, InvalidIdentityTokenException, IDPCommunicationErrorException; +var init_errors3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/errors.js"() { + init_STSServiceException(); + ExpiredTokenException2 = class _ExpiredTokenException extends STSServiceException { + static { + __name(this, "ExpiredTokenException"); + } + static shapeId = "com.amazonaws.sts#ExpiredTokenException"; + name = "ExpiredTokenException"; + $fault = "client"; + constructor(opts) { + super({ + name: "ExpiredTokenException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ExpiredTokenException.prototype); + } + }; + MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException { + static { + __name(this, "MalformedPolicyDocumentException"); + } + static shapeId = "com.amazonaws.sts#MalformedPolicyDocumentException"; + name = "MalformedPolicyDocumentException"; + $fault = "client"; + constructor(opts) { + super({ + name: "MalformedPolicyDocumentException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype); + } + }; + PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException { + static { + __name(this, "PackedPolicyTooLargeException"); + } + static shapeId = "com.amazonaws.sts#PackedPolicyTooLargeException"; + name = "PackedPolicyTooLargeException"; + $fault = "client"; + constructor(opts) { + super({ + name: "PackedPolicyTooLargeException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype); + } + }; + RegionDisabledException = class _RegionDisabledException extends STSServiceException { + static { + __name(this, "RegionDisabledException"); + } + static shapeId = "com.amazonaws.sts#RegionDisabledException"; + name = "RegionDisabledException"; + $fault = "client"; + constructor(opts) { + super({ + name: "RegionDisabledException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _RegionDisabledException.prototype); + } + }; + IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException { + static { + __name(this, "IDPRejectedClaimException"); + } + static shapeId = "com.amazonaws.sts#IDPRejectedClaimException"; + name = "IDPRejectedClaimException"; + $fault = "client"; + constructor(opts) { + super({ + name: "IDPRejectedClaimException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype); + } + }; + InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException { + static { + __name(this, "InvalidIdentityTokenException"); + } + static shapeId = "com.amazonaws.sts#InvalidIdentityTokenException"; + name = "InvalidIdentityTokenException"; + $fault = "client"; + constructor(opts) { + super({ + name: "InvalidIdentityTokenException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype); + } + }; + IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException { + static { + __name(this, "IDPCommunicationErrorException"); + } + static shapeId = "com.amazonaws.sts#IDPCommunicationErrorException"; + name = "IDPCommunicationErrorException"; + $fault = "client"; + $retryable = {}; + constructor(opts) { + super({ + name: "IDPCommunicationErrorException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js +var _A, _AKI, _AR, _ARI, _ARR, _ARRs, _ARU, _ARWWI, _ARWWIR, _ARWWIRs, _Au, _C, _CA, _DS, _E2, _EI, _ETE2, _IDPCEE, _IDPRCE, _IITE, _K, _MPDE, _MSTS, _P, _PA, _PAr, _PC, _PCLT, _PCr, _PDT, _PI, _PPS, _PPTLE, _Pr, _RA, _RDE, _RSN, _SAK, _SFWIT, _SI, _SN, _ST, _STS, _STU, _T, _TC, _TTK, _Ta, _V, _WIT, _a3, _aKST, _aQE, _c3, _cTT, _e3, _hE3, _m2, _pDLT, _s3, _tLT, n03, _s_registry3, STSServiceException$, n0_registry3, ExpiredTokenException$2, IDPCommunicationErrorException$, IDPRejectedClaimException$, InvalidIdentityTokenException$, MalformedPolicyDocumentException$, PackedPolicyTooLargeException$, RegionDisabledException$, errorTypeRegistries3, accessKeySecretType, clientTokenType, AssumedRoleUser$, AssumeRoleRequest$, AssumeRoleResponse$, AssumeRoleWithWebIdentityRequest$, AssumeRoleWithWebIdentityResponse$, Credentials$, PolicyDescriptorType$, ProvidedContext$, Tag$, policyDescriptorListType, ProvidedContextsListType, tagKeyListType, tagListType, AssumeRole$, AssumeRoleWithWebIdentity$; +var init_schemas_03 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js"() { + init_schema(); + init_errors3(); + init_STSServiceException(); + _A = "Arn"; + _AKI = "AccessKeyId"; + _AR = "AssumeRole"; + _ARI = "AssumedRoleId"; + _ARR = "AssumeRoleRequest"; + _ARRs = "AssumeRoleResponse"; + _ARU = "AssumedRoleUser"; + _ARWWI = "AssumeRoleWithWebIdentity"; + _ARWWIR = "AssumeRoleWithWebIdentityRequest"; + _ARWWIRs = "AssumeRoleWithWebIdentityResponse"; + _Au = "Audience"; + _C = "Credentials"; + _CA = "ContextAssertion"; + _DS = "DurationSeconds"; + _E2 = "Expiration"; + _EI = "ExternalId"; + _ETE2 = "ExpiredTokenException"; + _IDPCEE = "IDPCommunicationErrorException"; + _IDPRCE = "IDPRejectedClaimException"; + _IITE = "InvalidIdentityTokenException"; + _K = "Key"; + _MPDE = "MalformedPolicyDocumentException"; + _MSTS = "MinimumSessionTokenSize"; + _P = "Policy"; + _PA = "PolicyArns"; + _PAr = "ProviderArn"; + _PC = "ProvidedContexts"; + _PCLT = "ProvidedContextsListType"; + _PCr = "ProvidedContext"; + _PDT = "PolicyDescriptorType"; + _PI = "ProviderId"; + _PPS = "PackedPolicySize"; + _PPTLE = "PackedPolicyTooLargeException"; + _Pr = "Provider"; + _RA = "RoleArn"; + _RDE = "RegionDisabledException"; + _RSN = "RoleSessionName"; + _SAK = "SecretAccessKey"; + _SFWIT = "SubjectFromWebIdentityToken"; + _SI = "SourceIdentity"; + _SN = "SerialNumber"; + _ST = "SessionToken"; + _STS = "SessionTokenSize"; + _STU = "SessionTokenUtilization"; + _T = "Tags"; + _TC = "TokenCode"; + _TTK = "TransitiveTagKeys"; + _Ta = "Tag"; + _V = "Value"; + _WIT = "WebIdentityToken"; + _a3 = "arn"; + _aKST = "accessKeySecretType"; + _aQE = "awsQueryError"; + _c3 = "client"; + _cTT = "clientTokenType"; + _e3 = "error"; + _hE3 = "httpError"; + _m2 = "message"; + _pDLT = "policyDescriptorListType"; + _s3 = "smithy.ts.sdk.synthetic.com.amazonaws.sts"; + _tLT = "tagListType"; + n03 = "com.amazonaws.sts"; + _s_registry3 = new TypeRegistry(_s3); + STSServiceException$ = [-3, _s3, "STSServiceException", 0, [], []]; + _s_registry3.registerError(STSServiceException$, STSServiceException); + n0_registry3 = new TypeRegistry(n03); + ExpiredTokenException$2 = [ + -3, + n03, + _ETE2, + { [_aQE]: [`ExpiredTokenException`, 400], [_e3]: _c3, [_hE3]: 400 }, + [_m2], + [0] + ]; + n0_registry3.registerError(ExpiredTokenException$2, ExpiredTokenException2); + IDPCommunicationErrorException$ = [ + -3, + n03, + _IDPCEE, + { [_aQE]: [`IDPCommunicationError`, 400], [_e3]: _c3, [_hE3]: 400 }, + [_m2], + [0] + ]; + n0_registry3.registerError(IDPCommunicationErrorException$, IDPCommunicationErrorException); + IDPRejectedClaimException$ = [ + -3, + n03, + _IDPRCE, + { [_aQE]: [`IDPRejectedClaim`, 403], [_e3]: _c3, [_hE3]: 403 }, + [_m2], + [0] + ]; + n0_registry3.registerError(IDPRejectedClaimException$, IDPRejectedClaimException); + InvalidIdentityTokenException$ = [ + -3, + n03, + _IITE, + { [_aQE]: [`InvalidIdentityToken`, 400], [_e3]: _c3, [_hE3]: 400 }, + [_m2], + [0] + ]; + n0_registry3.registerError(InvalidIdentityTokenException$, InvalidIdentityTokenException); + MalformedPolicyDocumentException$ = [ + -3, + n03, + _MPDE, + { [_aQE]: [`MalformedPolicyDocument`, 400], [_e3]: _c3, [_hE3]: 400 }, + [_m2], + [0] + ]; + n0_registry3.registerError(MalformedPolicyDocumentException$, MalformedPolicyDocumentException); + PackedPolicyTooLargeException$ = [ + -3, + n03, + _PPTLE, + { [_aQE]: [`PackedPolicyTooLarge`, 400], [_e3]: _c3, [_hE3]: 400 }, + [_m2], + [0] + ]; + n0_registry3.registerError(PackedPolicyTooLargeException$, PackedPolicyTooLargeException); + RegionDisabledException$ = [ + -3, + n03, + _RDE, + { [_aQE]: [`RegionDisabledException`, 403], [_e3]: _c3, [_hE3]: 403 }, + [_m2], + [0] + ]; + n0_registry3.registerError(RegionDisabledException$, RegionDisabledException); + errorTypeRegistries3 = [ + _s_registry3, + n0_registry3 + ]; + accessKeySecretType = [0, n03, _aKST, 8, 0]; + clientTokenType = [0, n03, _cTT, 8, 0]; + AssumedRoleUser$ = [ + 3, + n03, + _ARU, + 0, + [_ARI, _A], + [0, 0], + 2 + ]; + AssumeRoleRequest$ = [ + 3, + n03, + _ARR, + 0, + [_RA, _RSN, _PA, _P, _DS, _T, _TTK, _EI, _SN, _TC, _SI, _PC, _MSTS], + [0, 0, () => policyDescriptorListType, 0, 1, () => tagListType, 64 | 0, 0, 0, 0, 0, () => ProvidedContextsListType, 1], + 2 + ]; + AssumeRoleResponse$ = [ + 3, + n03, + _ARRs, + 0, + [_C, _ARU, _PPS, _SI, _STU, _STS], + [[() => Credentials$, 0], () => AssumedRoleUser$, 1, 0, 1, 1] + ]; + AssumeRoleWithWebIdentityRequest$ = [ + 3, + n03, + _ARWWIR, + 0, + [_RA, _RSN, _WIT, _PI, _PA, _P, _DS, _MSTS], + [0, 0, [() => clientTokenType, 0], 0, () => policyDescriptorListType, 0, 1, 1], + 3 + ]; + AssumeRoleWithWebIdentityResponse$ = [ + 3, + n03, + _ARWWIRs, + 0, + [_C, _SFWIT, _ARU, _PPS, _Pr, _Au, _SI, _STU, _STS], + [[() => Credentials$, 0], 0, () => AssumedRoleUser$, 1, 0, 0, 0, 1, 1] + ]; + Credentials$ = [ + 3, + n03, + _C, + 0, + [_AKI, _SAK, _ST, _E2], + [0, [() => accessKeySecretType, 0], 0, 4], + 4 + ]; + PolicyDescriptorType$ = [ + 3, + n03, + _PDT, + 0, + [_a3], + [0] + ]; + ProvidedContext$ = [ + 3, + n03, + _PCr, + 0, + [_PAr, _CA], + [0, 0] + ]; + Tag$ = [ + 3, + n03, + _Ta, + 0, + [_K, _V], + [0, 0], + 2 + ]; + policyDescriptorListType = [ + 1, + n03, + _pDLT, + 0, + () => PolicyDescriptorType$ + ]; + ProvidedContextsListType = [ + 1, + n03, + _PCLT, + 0, + () => ProvidedContext$ + ]; + tagKeyListType = 64 | 0; + tagListType = [ + 1, + n03, + _tLT, + 0, + () => Tag$ + ]; + AssumeRole$ = [ + 9, + n03, + _AR, + 0, + () => AssumeRoleRequest$, + () => AssumeRoleResponse$ + ]; + AssumeRoleWithWebIdentity$ = [ + 9, + n03, + _ARWWI, + 0, + () => AssumeRoleWithWebIdentityRequest$, + () => AssumeRoleWithWebIdentityResponse$ + ]; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +var import_signature_v4_multi_region3, getRuntimeConfig5; +var init_runtimeConfig_shared3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js"() { + init_httpAuthSchemes2(); + init_protocols2(); + import_signature_v4_multi_region3 = __toESM(require_dist_cjs3()); + init_dist_es(); + init_checksum(); + init_client(); + init_protocols(); + init_serde(); + init_httpAuthSchemeProvider3(); + init_endpointResolver3(); + init_schemas_03(); + getRuntimeConfig5 = /* @__PURE__ */ __name((config3) => { + return { + apiVersion: "2011-06-15", + base64Decoder: config3?.base64Decoder ?? fromBase64, + base64Encoder: config3?.base64Encoder ?? toBase64, + disableHostPrefix: config3?.disableHostPrefix ?? false, + endpointProvider: config3?.endpointProvider ?? defaultEndpointResolver3, + extensions: config3?.extensions ?? [], + httpAuthSchemeProvider: config3?.httpAuthSchemeProvider ?? defaultSTSHttpAuthSchemeProvider, + httpAuthSchemes: config3?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), "identityProvider"), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "aws.auth#sigv4a", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4a"), "identityProvider"), + signer: new AwsSdkSigV4ASigner() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), "identityProvider"), + signer: new NoAuthSigner() + } + ], + logger: config3?.logger ?? new NoOpLogger(), + protocol: config3?.protocol ?? AwsQueryProtocol, + protocolSettings: config3?.protocolSettings ?? { + defaultNamespace: "com.amazonaws.sts", + errorTypeRegistries: errorTypeRegistries3, + xmlNamespace: "https://sts.amazonaws.com/doc/2011-06-15/", + version: "2011-06-15", + serviceTarget: "AWSSecurityTokenServiceV20110615" + }, + serviceId: config3?.serviceId ?? "STS", + sha256: config3?.sha256 ?? Sha256Node, + signerConstructor: config3?.signerConstructor ?? import_signature_v4_multi_region3.SignatureV4MultiRegion, + urlParser: config3?.urlParser ?? parseUrl, + utf8Decoder: config3?.utf8Decoder ?? fromUtf8, + utf8Encoder: config3?.utf8Encoder ?? toUtf8 + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +var import_node_http_handler3, getRuntimeConfig6; +var init_runtimeConfig3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js"() { + init_package(); + init_client2(); + init_httpAuthSchemes2(); + init_dist_es(); + init_client(); + init_config(); + init_retry(); + init_serde(); + import_node_http_handler3 = __toESM(require_dist_cjs7()); + init_runtimeConfig_shared3(); + getRuntimeConfig6 = /* @__PURE__ */ __name((config3) => { + emitWarningIfUnsupportedVersion(process.version); + const defaultsMode = resolveDefaultsModeConfig(config3); + const defaultConfigProvider = /* @__PURE__ */ __name(() => defaultsMode().then(loadConfigsForDefaultMode), "defaultConfigProvider"); + const clientSharedValues = getRuntimeConfig5(config3); + emitWarningIfUnsupportedVersion2(process.version); + const loaderConfig = { + profile: config3?.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config3, + runtime: "node", + defaultsMode, + authSchemePreference: config3?.authSchemePreference ?? loadConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: config3?.bodyLengthChecker ?? calculateBodyLength, + defaultUserAgentProvider: config3?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: package_default.version }), + httpAuthSchemes: config3?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4") || (async (idProps) => await config3.credentialDefaultProvider(idProps?.__config || {})()), "identityProvider"), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "aws.auth#sigv4a", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4a"), "identityProvider"), + signer: new AwsSdkSigV4ASigner() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), "identityProvider"), + signer: new NoAuthSigner() + } + ], + maxAttempts: config3?.maxAttempts ?? loadConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config3), + region: config3?.region ?? loadConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: import_node_http_handler3.NodeHttpHandler.create(config3?.requestHandler ?? defaultConfigProvider), + retryMode: config3?.retryMode ?? loadConfig({ + ...NODE_RETRY_MODE_CONFIG_OPTIONS, + default: /* @__PURE__ */ __name(async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, "default") + }, config3), + sigv4aSigningRegionSet: config3?.sigv4aSigningRegionSet ?? loadConfig(NODE_SIGV4A_CONFIG_OPTIONS, loaderConfig), + streamCollector: config3?.streamCollector ?? import_node_http_handler3.streamCollector, + useDualstackEndpoint: config3?.useDualstackEndpoint ?? loadConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: config3?.useFipsEndpoint ?? loadConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: config3?.userAgentAppId ?? loadConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthExtensionConfiguration.js +var getHttpAuthExtensionConfiguration3, resolveHttpAuthRuntimeConfig3; +var init_httpAuthExtensionConfiguration3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthExtensionConfiguration.js"() { + getHttpAuthExtensionConfiguration3 = /* @__PURE__ */ __name((runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials) { + _credentials = credentials; + }, + credentials() { + return _credentials; + } + }; + }, "getHttpAuthExtensionConfiguration"); + resolveHttpAuthRuntimeConfig3 = /* @__PURE__ */ __name((config3) => { + return { + httpAuthSchemes: config3.httpAuthSchemes(), + httpAuthSchemeProvider: config3.httpAuthSchemeProvider(), + credentials: config3.credentials() + }; + }, "resolveHttpAuthRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeExtensions.js +var resolveRuntimeExtensions3; +var init_runtimeExtensions3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeExtensions.js"() { + init_client2(); + init_client(); + init_protocols(); + init_httpAuthExtensionConfiguration3(); + resolveRuntimeExtensions3 = /* @__PURE__ */ __name((runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration(runtimeConfig), getDefaultExtensionConfiguration(runtimeConfig), getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration3(runtimeConfig)); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration(extensionConfiguration), resolveDefaultRuntimeConfig(extensionConfiguration), resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig3(extensionConfiguration)); + }, "resolveRuntimeExtensions"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +var STSClient; +var init_STSClient = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js"() { + init_client2(); + init_dist_es(); + init_client(); + init_config(); + init_endpoints(); + init_protocols(); + init_retry(); + init_schema(); + init_httpAuthSchemeProvider3(); + init_EndpointParameters3(); + init_runtimeConfig3(); + init_runtimeExtensions3(); + STSClient = class extends Client { + static { + __name(this, "STSClient"); + } + config; + constructor(...[configuration]) { + const _config_0 = getRuntimeConfig6(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters3(_config_0); + const _config_2 = resolveUserAgentConfig(_config_1); + const _config_3 = resolveRetryConfig(_config_2); + const _config_4 = resolveRegionConfig(_config_3); + const _config_5 = resolveHostHeaderConfig(_config_4); + const _config_6 = resolveEndpointConfig(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig3(_config_6); + const _config_8 = resolveRuntimeExtensions3(_config_7, configuration?.extensions || []); + this.config = _config_8; + this.middlewareStack.use(getSchemaSerdePlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + this.middlewareStack.use(getRecursionDetectionPlugin(this.config)); + this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultSTSHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name(async (config3) => new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config3.credentials, + "aws.auth#sigv4a": config3.credentials + }), "identityProviderConfigProvider") + })); + this.middlewareStack.use(getHttpSigningPlugin(this.config)); + } + destroy() { + super.destroy(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commandBuilder.js +var command3, _ep03, _mw03; +var init_commandBuilder3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commandBuilder.js"() { + init_client(); + init_endpoints(); + init_EndpointParameters3(); + command3 = makeBuilder(commonParams3, "AWSSecurityTokenServiceV20110615", "STSClient", getEndpointPlugin); + _ep03 = {}; + _mw03 = /* @__PURE__ */ __name((Command2, cs, config3, o3) => [], "_mw0"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +var AssumeRoleCommand; +var init_AssumeRoleCommand = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js"() { + init_commandBuilder3(); + init_schemas_03(); + AssumeRoleCommand = class extends command3(_ep03, _mw03, "AssumeRole", AssumeRole$) { + static { + __name(this, "AssumeRoleCommand"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +var AssumeRoleWithWebIdentityCommand; +var init_AssumeRoleWithWebIdentityCommand = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js"() { + init_commandBuilder3(); + init_schemas_03(); + AssumeRoleWithWebIdentityCommand = class extends command3(_ep03, _mw03, "AssumeRoleWithWebIdentity", AssumeRoleWithWebIdentity$) { + static { + __name(this, "AssumeRoleWithWebIdentityCommand"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js +var commands3, STS; +var init_STS = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js"() { + init_client(); + init_AssumeRoleCommand(); + init_AssumeRoleWithWebIdentityCommand(); + init_STSClient(); + commands3 = { + AssumeRoleCommand, + AssumeRoleWithWebIdentityCommand + }; + STS = class extends STSClient { + static { + __name(this, "STS"); + } + }; + createAggregatedClient(commands3, STS); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/index.js +var init_commands3 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/index.js"() { + init_AssumeRoleCommand(); + init_AssumeRoleWithWebIdentityCommand(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/models_0.js +var init_models_03 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/models_0.js"() { + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +var getAccountIdFromAssumedRoleUser, resolveRegion, getDefaultRoleAssumer, getDefaultRoleAssumerWithWebIdentity, isH2; +var init_defaultStsRoleAssumers = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js"() { + init_client2(); + init_AssumeRoleCommand(); + init_AssumeRoleWithWebIdentityCommand(); + getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => { + if (typeof assumedRoleUser?.Arn === "string") { + const arnComponents = assumedRoleUser.Arn.split(":"); + if (arnComponents.length > 4 && arnComponents[4] !== "") { + return arnComponents[4]; + } + } + return void 0; + }, "getAccountIdFromAssumedRoleUser"); + resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger, loaderConfig = {}) => { + const region = typeof _region === "function" ? await _region() : _region; + const parentRegion = typeof _parentRegion === "function" ? await _parentRegion() : _parentRegion; + let stsDefaultRegion = ""; + const resolvedRegion = region ?? parentRegion ?? (stsDefaultRegion = await stsRegionDefaultResolver(loaderConfig)()); + credentialProviderLogger?.debug?.("@aws-sdk/client-sts::resolveRegion", "accepting first of:", `${region} (credential provider clientConfig)`, `${parentRegion} (contextual client)`, `${stsDefaultRegion} (STS default: AWS_REGION, profile region, or us-east-1)`); + return resolvedRegion; + }, "resolveRegion"); + getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient2) => { + let stsClient; + let closureSourceCreds; + return async (sourceCreds, params) => { + closureSourceCreds = sourceCreds; + if (!stsClient) { + const { logger = stsOptions?.parentClientConfig?.logger, profile = stsOptions?.parentClientConfig?.profile, region, requestHandler = stsOptions?.parentClientConfig?.requestHandler, credentialProviderLogger, userAgentAppId = stsOptions?.parentClientConfig?.userAgentAppId } = stsOptions; + const resolvedRegion = await resolveRegion(region, stsOptions?.parentClientConfig?.region, credentialProviderLogger, { + logger, + profile + }); + const isCompatibleRequestHandler = !isH2(requestHandler); + stsClient = new STSClient2({ + ...stsOptions, + userAgentAppId, + profile, + credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, "credentialDefaultProvider"), + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, + logger + }); + } + const { Credentials, AssumedRoleUser } = await stsClient.send(new AssumeRoleCommand(params)); + if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) { + throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`); + } + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser); + const credentials = { + accessKeyId: Credentials.AccessKeyId, + secretAccessKey: Credentials.SecretAccessKey, + sessionToken: Credentials.SessionToken, + expiration: Credentials.Expiration, + ...Credentials.CredentialScope && { credentialScope: Credentials.CredentialScope }, + ...accountId && { accountId } + }; + setCredentialFeature(credentials, "CREDENTIALS_STS_ASSUME_ROLE", "i"); + return credentials; + }; + }, "getDefaultRoleAssumer"); + getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient2) => { + let stsClient; + return async (params) => { + if (!stsClient) { + const { logger = stsOptions?.parentClientConfig?.logger, profile = stsOptions?.parentClientConfig?.profile, region, requestHandler = stsOptions?.parentClientConfig?.requestHandler, credentialProviderLogger, userAgentAppId = stsOptions?.parentClientConfig?.userAgentAppId } = stsOptions; + const resolvedRegion = await resolveRegion(region, stsOptions?.parentClientConfig?.region, credentialProviderLogger, { + logger, + profile + }); + const isCompatibleRequestHandler = !isH2(requestHandler); + stsClient = new STSClient2({ + ...stsOptions, + userAgentAppId, + profile, + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, + logger + }); + } + const { Credentials, AssumedRoleUser } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params)); + if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) { + throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`); + } + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser); + const credentials = { + accessKeyId: Credentials.AccessKeyId, + secretAccessKey: Credentials.SecretAccessKey, + sessionToken: Credentials.SessionToken, + expiration: Credentials.Expiration, + ...Credentials.CredentialScope && { credentialScope: Credentials.CredentialScope }, + ...accountId && { accountId } + }; + if (accountId) { + setCredentialFeature(credentials, "RESOLVED_ACCOUNT_ID", "T"); + } + setCredentialFeature(credentials, "CREDENTIALS_STS_ASSUME_ROLE_WEB_ID", "k"); + return credentials; + }; + }, "getDefaultRoleAssumerWithWebIdentity"); + isH2 = /* @__PURE__ */ __name((requestHandler) => { + return requestHandler?.metadata?.handlerProtocol === "h2"; + }, "isH2"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultRoleAssumers.js +var getCustomizableStsClientCtor, getDefaultRoleAssumer2, getDefaultRoleAssumerWithWebIdentity2, decorateDefaultCredentialProvider; +var init_defaultRoleAssumers = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultRoleAssumers.js"() { + init_defaultStsRoleAssumers(); + init_STSClient(); + getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => { + if (!customizations) + return baseCtor; + else + return class CustomizableSTSClient extends baseCtor { + static { + __name(this, "CustomizableSTSClient"); + } + constructor(config3) { + super(config3); + for (const customization of customizations) { + this.middlewareStack.use(customization); + } + } + }; + }, "getCustomizableStsClientCtor"); + getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(STSClient, stsPlugins)), "getDefaultRoleAssumer"); + getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(STSClient, stsPlugins)), "getDefaultRoleAssumerWithWebIdentity"); + decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input2) => provider({ + roleAssumer: getDefaultRoleAssumer2(input2), + roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input2), + ...input2 + }), "decorateDefaultCredentialProvider"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +var sts_exports = {}; +__export(sts_exports, { + $Command: () => Command, + AssumeRole$: () => AssumeRole$, + AssumeRoleCommand: () => AssumeRoleCommand, + AssumeRoleRequest$: () => AssumeRoleRequest$, + AssumeRoleResponse$: () => AssumeRoleResponse$, + AssumeRoleWithWebIdentity$: () => AssumeRoleWithWebIdentity$, + AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand, + AssumeRoleWithWebIdentityRequest$: () => AssumeRoleWithWebIdentityRequest$, + AssumeRoleWithWebIdentityResponse$: () => AssumeRoleWithWebIdentityResponse$, + AssumedRoleUser$: () => AssumedRoleUser$, + Credentials$: () => Credentials$, + ExpiredTokenException: () => ExpiredTokenException2, + ExpiredTokenException$: () => ExpiredTokenException$2, + IDPCommunicationErrorException: () => IDPCommunicationErrorException, + IDPCommunicationErrorException$: () => IDPCommunicationErrorException$, + IDPRejectedClaimException: () => IDPRejectedClaimException, + IDPRejectedClaimException$: () => IDPRejectedClaimException$, + InvalidIdentityTokenException: () => InvalidIdentityTokenException, + InvalidIdentityTokenException$: () => InvalidIdentityTokenException$, + MalformedPolicyDocumentException: () => MalformedPolicyDocumentException, + MalformedPolicyDocumentException$: () => MalformedPolicyDocumentException$, + PackedPolicyTooLargeException: () => PackedPolicyTooLargeException, + PackedPolicyTooLargeException$: () => PackedPolicyTooLargeException$, + PolicyDescriptorType$: () => PolicyDescriptorType$, + ProvidedContext$: () => ProvidedContext$, + RegionDisabledException: () => RegionDisabledException, + RegionDisabledException$: () => RegionDisabledException$, + STS: () => STS, + STSClient: () => STSClient, + STSServiceException: () => STSServiceException, + STSServiceException$: () => STSServiceException$, + Tag$: () => Tag$, + __Client: () => Client, + decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider, + errorTypeRegistries: () => errorTypeRegistries3, + getDefaultRoleAssumer: () => getDefaultRoleAssumer2, + getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2 +}); +var init_sts = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js"() { + init_STSClient(); + init_STS(); + init_commands3(); + init_client(); + init_schemas_03(); + init_errors3(); + init_models_03(); + init_defaultRoleAssumers(); + init_STSServiceException(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/auth/httpAuthSchemeProvider.js +function createAwsAuthSigv4HttpAuthOption4(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "signin", + region: authParameters.region + }, + propertiesExtractor: /* @__PURE__ */ __name((config3, context) => ({ + signingProperties: { + config: config3, + context + } + }), "propertiesExtractor") + }; +} +function createSmithyApiNoAuthHttpAuthOption4(authParameters) { + return { + schemeId: "smithy.api#noAuth" + }; +} +var defaultSigninHttpAuthSchemeParametersProvider, defaultSigninHttpAuthSchemeProvider, resolveHttpAuthSchemeConfig4; +var init_httpAuthSchemeProvider4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/auth/httpAuthSchemeProvider.js"() { + init_httpAuthSchemes2(); + init_client(); + defaultSigninHttpAuthSchemeParametersProvider = /* @__PURE__ */ __name(async (config3, context, input2) => { + return { + operation: getSmithyContext(context).operation, + region: await normalizeProvider(config3.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }, "defaultSigninHttpAuthSchemeParametersProvider"); + __name(createAwsAuthSigv4HttpAuthOption4, "createAwsAuthSigv4HttpAuthOption"); + __name(createSmithyApiNoAuthHttpAuthOption4, "createSmithyApiNoAuthHttpAuthOption"); + defaultSigninHttpAuthSchemeProvider = /* @__PURE__ */ __name((authParameters) => { + const options = []; + switch (authParameters.operation) { + case "CreateOAuth2Token": + { + options.push(createSmithyApiNoAuthHttpAuthOption4(authParameters)); + break; + } + ; + default: { + options.push(createAwsAuthSigv4HttpAuthOption4(authParameters)); + } + } + return options; + }, "defaultSigninHttpAuthSchemeProvider"); + resolveHttpAuthSchemeConfig4 = /* @__PURE__ */ __name((config3) => { + const config_0 = resolveAwsSdkSigV4Config(config3); + return Object.assign(config_0, { + authSchemePreference: normalizeProvider(config3.authSchemePreference ?? []) + }); + }, "resolveHttpAuthSchemeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/EndpointParameters.js +var resolveClientEndpointParameters4, commonParams4; +var init_EndpointParameters4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/EndpointParameters.js"() { + resolveClientEndpointParameters4 = /* @__PURE__ */ __name((options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "signin" + }); + }, "resolveClientEndpointParameters"); + commonParams4 = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/bdd.js +var s, a4, b4, c4, d4, e4, f4, g4, h4, i4, j4, k4, l2, m2, n2, o2, p2, q2, _data4, root4, r4, nodes4, bdd4; +var init_bdd4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/bdd.js"() { + init_endpoints(); + s = "ref"; + a4 = -1; + b4 = false; + c4 = true; + d4 = "isSet"; + e4 = "booleanEquals"; + f4 = "coalesce"; + g4 = "PartitionResult"; + h4 = "stringEquals"; + i4 = "getAttr"; + j4 = "https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}"; + k4 = { [s]: "Endpoint" }; + l2 = { "fn": i4, "argv": [{ [s]: g4 }, "name"] }; + m2 = { [s]: "Region" }; + n2 = { [s]: g4 }; + o2 = { "authSchemes": [{ "name": "sigv4", "signingName": "signin", "signingRegion": "{Region}" }] }; + p2 = {}; + q2 = [m2]; + _data4 = { + conditions: [ + [d4, q2], + [e4, [{ fn: f4, argv: [{ [s]: "IsControlPlane" }, b4] }, c4]], + [d4, [k4]], + ["aws.partition", q2, g4], + [e4, [{ [s]: "UseFIPS" }, c4]], + [h4, [l2, "aws"]], + [e4, [{ fn: f4, argv: [{ [s]: "IsOAuthEndpoint" }, b4] }, c4]], + [e4, [{ [s]: "UseDualStack" }, c4]], + [h4, [l2, "aws-cn"]], + [h4, [m2, "us-gov-west-1"]], + [h4, [l2, "aws-us-gov"]], + [e4, [{ fn: i4, argv: [n2, "supportsFIPS"] }, c4]], + [h4, [l2, "aws-iso"]], + [h4, [l2, "aws-iso-b"]], + [h4, [l2, "aws-iso-f"]], + [h4, [l2, "aws-iso-e"]], + [h4, [l2, "aws-eusc"]], + [e4, [{ fn: i4, argv: [n2, "supportsDualStack"] }, c4]] + ], + results: [ + [a4], + ["https://signin.{Region}.api.aws", o2], + ["https://signin.{Region}.api.amazonwebservices.com.cn", o2], + [j4, o2], + [a4, "FIPS endpoints are not supported for OAuth operations. Disable FIPS or use a non-OAuth operation."], + ["https://{Region}.oauth.signin.aws", o2], + ["https://{Region}.signin.aws.amazon.com", p2], + ["https://{Region}.signin.amazonaws.cn", p2], + ["https://{Region}.signin.amazonaws-us-gov.com", p2], + ["https://{Region}.signin.c2shome.ic.gov", p2], + ["https://{Region}.signin.sc2shome.sgov.gov", p2], + ["https://{Region}.signin.csphome.hci.ic.gov", p2], + ["https://{Region}.signin.csphome.adc-e.uk", p2], + ["https://{Region}.signin.amazonaws-eusc.eu", p2], + ["https://signin-fips.amazonaws-us-gov.com", p2], + ["https://{Region}.signin-fips.amazonaws-us-gov.com", p2], + ["https://{Region}.signin.{PartitionResult#dnsSuffix}", p2], + [a4, "Invalid Configuration: FIPS and custom endpoint are not supported"], + [a4, "Invalid Configuration: Dualstack and custom endpoint are not supported"], + [k4, p2], + ["https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", p2], + [a4, "FIPS and DualStack are enabled, but this partition does not support one or both"], + ["https://signin-fips.{Region}.{PartitionResult#dnsSuffix}", p2], + [a4, "FIPS is enabled but this partition does not support FIPS"], + [j4, p2], + [a4, "DualStack is enabled but this partition does not support DualStack"], + ["https://signin.{Region}.{PartitionResult#dnsSuffix}", p2], + [a4, "Invalid Configuration: Missing Region"] + ] + }; + root4 = 2; + r4 = 1e8; + nodes4 = new Int32Array([ + -1, + 1, + -1, + 0, + 6, + 3, + 2, + 36, + 4, + 4, + 5, + r4 + 27, + 6, + r4 + 4, + r4 + 27, + 1, + 29, + 7, + 2, + 36, + 8, + 3, + 9, + 31, + 4, + 22, + 10, + 5, + 19, + 11, + 7, + 21, + 12, + 8, + r4 + 7, + 13, + 10, + r4 + 8, + 14, + 12, + r4 + 9, + 15, + 13, + r4 + 10, + 16, + 14, + r4 + 11, + 17, + 15, + r4 + 12, + 18, + 16, + r4 + 13, + r4 + 16, + 6, + r4 + 5, + 20, + 7, + 21, + r4 + 6, + 17, + r4 + 24, + r4 + 25, + 6, + r4 + 4, + 23, + 7, + 27, + 24, + 9, + r4 + 14, + 25, + 10, + r4 + 15, + 26, + 11, + r4 + 22, + r4 + 23, + 11, + 28, + r4 + 21, + 17, + r4 + 20, + r4 + 21, + 2, + 35, + 30, + 3, + 39, + 31, + 4, + 32, + r4 + 27, + 6, + r4 + 4, + 33, + 7, + r4 + 27, + 34, + 9, + r4 + 14, + r4 + 27, + 3, + 39, + 36, + 4, + 38, + 37, + 7, + r4 + 18, + r4 + 19, + 6, + r4 + 4, + r4 + 17, + 5, + r4 + 1, + 40, + 8, + r4 + 2, + r4 + 3 + ]); + bdd4 = BinaryDecisionDiagram.from(nodes4, root4, _data4.conditions, _data4.results); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/endpointResolver.js +var cache4, defaultEndpointResolver4; +var init_endpointResolver4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/endpointResolver.js"() { + init_client2(); + init_endpoints(); + init_bdd4(); + cache4 = new EndpointCache({ + size: 50, + params: ["Endpoint", "IsControlPlane", "IsOAuthEndpoint", "Region", "UseDualStack", "UseFIPS"] + }); + defaultEndpointResolver4 = /* @__PURE__ */ __name((endpointParams, context = {}) => { + return cache4.get(endpointParams, () => decideEndpoint(bdd4, { + endpointParams, + logger: context.logger + })); + }, "defaultEndpointResolver"); + customEndpointFunctions.aws = awsEndpointFunctions; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/SigninServiceException.js +var SigninServiceException; +var init_SigninServiceException = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/SigninServiceException.js"() { + init_client(); + SigninServiceException = class _SigninServiceException extends ServiceException { + static { + __name(this, "SigninServiceException"); + } + static shapeId = "smithy.ts.sdk.synthetic.com.amazonaws.signin#SigninServiceException"; + constructor(options) { + super(options); + Object.setPrototypeOf(this, _SigninServiceException.prototype); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/errors.js +var AccessDeniedException2, InternalServerException2, TooManyRequestsError, ValidationException; +var init_errors4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/errors.js"() { + init_SigninServiceException(); + AccessDeniedException2 = class _AccessDeniedException extends SigninServiceException { + static { + __name(this, "AccessDeniedException"); + } + static shapeId = "com.amazonaws.signin#AccessDeniedException"; + name = "AccessDeniedException"; + $fault = "client"; + error; + constructor(opts) { + super({ + name: "AccessDeniedException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AccessDeniedException.prototype); + this.error = opts.error; + } + }; + InternalServerException2 = class _InternalServerException extends SigninServiceException { + static { + __name(this, "InternalServerException"); + } + static shapeId = "com.amazonaws.signin#InternalServerException"; + name = "InternalServerException"; + $fault = "server"; + error; + constructor(opts) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts + }); + Object.setPrototypeOf(this, _InternalServerException.prototype); + this.error = opts.error; + } + }; + TooManyRequestsError = class _TooManyRequestsError extends SigninServiceException { + static { + __name(this, "TooManyRequestsError"); + } + static shapeId = "com.amazonaws.signin#TooManyRequestsError"; + name = "TooManyRequestsError"; + $fault = "client"; + error; + constructor(opts) { + super({ + name: "TooManyRequestsError", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _TooManyRequestsError.prototype); + this.error = opts.error; + } + }; + ValidationException = class _ValidationException extends SigninServiceException { + static { + __name(this, "ValidationException"); + } + static shapeId = "com.amazonaws.signin#ValidationException"; + name = "ValidationException"; + $fault = "client"; + error; + constructor(opts) { + super({ + name: "ValidationException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ValidationException.prototype); + this.error = opts.error; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/schemas/schemas_0.js +var _ADE2, _AT2, _COAT, _COATR, _COATRB, _COATRBr, _COATRr, _COATWIAM, _COATWIAMR, _COATWIAMRr, _ISE2, _OAAT, _RT2, _TMRE2, _VE, _aKI2, _aT3, _at, _c4, _cI2, _cV2, _co2, _e4, _eI2, _ei, _gT2, _gt2, _h3, _hE4, _iT2, _jN, _m3, _r2, _rT2, _rU2, _s4, _sAK2, _sT2, _se2, _tI, _tO, _tT2, _tt, n04, _s_registry4, SigninServiceException$, n0_registry4, AccessDeniedException$2, InternalServerException$2, TooManyRequestsError$, ValidationException$, errorTypeRegistries4, OAuthAccessToken, RefreshToken2, AccessToken$, CreateOAuth2TokenRequest$, CreateOAuth2TokenRequestBody$, CreateOAuth2TokenResponse$, CreateOAuth2TokenResponseBody$, CreateOAuth2TokenWithIAMRequest$, CreateOAuth2TokenWithIAMResponse$, CreateOAuth2Token$, CreateOAuth2TokenWithIAM$; +var init_schemas_04 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/schemas/schemas_0.js"() { + init_schema(); + init_errors4(); + init_SigninServiceException(); + _ADE2 = "AccessDeniedException"; + _AT2 = "AccessToken"; + _COAT = "CreateOAuth2Token"; + _COATR = "CreateOAuth2TokenRequest"; + _COATRB = "CreateOAuth2TokenRequestBody"; + _COATRBr = "CreateOAuth2TokenResponseBody"; + _COATRr = "CreateOAuth2TokenResponse"; + _COATWIAM = "CreateOAuth2TokenWithIAM"; + _COATWIAMR = "CreateOAuth2TokenWithIAMRequest"; + _COATWIAMRr = "CreateOAuth2TokenWithIAMResponse"; + _ISE2 = "InternalServerException"; + _OAAT = "OAuthAccessToken"; + _RT2 = "RefreshToken"; + _TMRE2 = "TooManyRequestsError"; + _VE = "ValidationException"; + _aKI2 = "accessKeyId"; + _aT3 = "accessToken"; + _at = "access_token"; + _c4 = "client"; + _cI2 = "clientId"; + _cV2 = "codeVerifier"; + _co2 = "code"; + _e4 = "error"; + _eI2 = "expiresIn"; + _ei = "expires_in"; + _gT2 = "grantType"; + _gt2 = "grant_type"; + _h3 = "http"; + _hE4 = "httpError"; + _iT2 = "idToken"; + _jN = "jsonName"; + _m3 = "message"; + _r2 = "resource"; + _rT2 = "refreshToken"; + _rU2 = "redirectUri"; + _s4 = "smithy.ts.sdk.synthetic.com.amazonaws.signin"; + _sAK2 = "secretAccessKey"; + _sT2 = "sessionToken"; + _se2 = "server"; + _tI = "tokenInput"; + _tO = "tokenOutput"; + _tT2 = "tokenType"; + _tt = "token_type"; + n04 = "com.amazonaws.signin"; + _s_registry4 = new TypeRegistry(_s4); + SigninServiceException$ = [-3, _s4, "SigninServiceException", 0, [], []]; + _s_registry4.registerError(SigninServiceException$, SigninServiceException); + n0_registry4 = new TypeRegistry(n04); + AccessDeniedException$2 = [ + -3, + n04, + _ADE2, + { [_e4]: _c4 }, + [_e4, _m3], + [0, 0], + 2 + ]; + n0_registry4.registerError(AccessDeniedException$2, AccessDeniedException2); + InternalServerException$2 = [ + -3, + n04, + _ISE2, + { [_e4]: _se2, [_hE4]: 500 }, + [_e4, _m3], + [0, 0], + 2 + ]; + n0_registry4.registerError(InternalServerException$2, InternalServerException2); + TooManyRequestsError$ = [ + -3, + n04, + _TMRE2, + { [_e4]: _c4, [_hE4]: 429 }, + [_e4, _m3], + [0, 0], + 2 + ]; + n0_registry4.registerError(TooManyRequestsError$, TooManyRequestsError); + ValidationException$ = [ + -3, + n04, + _VE, + { [_e4]: _c4, [_hE4]: 400 }, + [_e4, _m3], + [0, 0], + 2 + ]; + n0_registry4.registerError(ValidationException$, ValidationException); + errorTypeRegistries4 = [ + _s_registry4, + n0_registry4 + ]; + OAuthAccessToken = [0, n04, _OAAT, 8, 0]; + RefreshToken2 = [0, n04, _RT2, 8, 0]; + AccessToken$ = [ + 3, + n04, + _AT2, + 8, + [_aKI2, _sAK2, _sT2], + [[0, { [_jN]: _aKI2 }], [0, { [_jN]: _sAK2 }], [0, { [_jN]: _sT2 }]], + 3 + ]; + CreateOAuth2TokenRequest$ = [ + 3, + n04, + _COATR, + 0, + [_tI], + [[() => CreateOAuth2TokenRequestBody$, 16]], + 1 + ]; + CreateOAuth2TokenRequestBody$ = [ + 3, + n04, + _COATRB, + 0, + [_cI2, _gT2, _co2, _rU2, _cV2, _rT2], + [[0, { [_jN]: _cI2 }], [0, { [_jN]: _gT2 }], 0, [0, { [_jN]: _rU2 }], [0, { [_jN]: _cV2 }], [() => RefreshToken2, { [_jN]: _rT2 }]], + 2 + ]; + CreateOAuth2TokenResponse$ = [ + 3, + n04, + _COATRr, + 0, + [_tO], + [[() => CreateOAuth2TokenResponseBody$, 16]], + 1 + ]; + CreateOAuth2TokenResponseBody$ = [ + 3, + n04, + _COATRBr, + 0, + [_aT3, _tT2, _eI2, _rT2, _iT2], + [[() => AccessToken$, { [_jN]: _aT3 }], [0, { [_jN]: _tT2 }], [1, { [_jN]: _eI2 }], [() => RefreshToken2, { [_jN]: _rT2 }], [0, { [_jN]: _iT2 }]], + 4 + ]; + CreateOAuth2TokenWithIAMRequest$ = [ + 3, + n04, + _COATWIAMR, + 0, + [_gT2, _r2], + [[0, { [_jN]: _gt2 }], 0], + 2 + ]; + CreateOAuth2TokenWithIAMResponse$ = [ + 3, + n04, + _COATWIAMRr, + 0, + [_aT3, _tT2, _eI2], + [[() => OAuthAccessToken, { [_jN]: _at }], [0, { [_jN]: _tt }], [1, { [_jN]: _ei }]], + 3 + ]; + CreateOAuth2Token$ = [ + 9, + n04, + _COAT, + { [_h3]: ["POST", "/v1/token", 200] }, + () => CreateOAuth2TokenRequest$, + () => CreateOAuth2TokenResponse$ + ]; + CreateOAuth2TokenWithIAM$ = [ + 9, + n04, + _COATWIAM, + { [_h3]: ["POST", "/v1/token?x-amz-client-auth-method=iam", 200] }, + () => CreateOAuth2TokenWithIAMRequest$, + () => CreateOAuth2TokenWithIAMResponse$ + ]; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.shared.js +var getRuntimeConfig7; +var init_runtimeConfig_shared4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.shared.js"() { + init_httpAuthSchemes2(); + init_protocols2(); + init_dist_es(); + init_checksum(); + init_client(); + init_protocols(); + init_serde(); + init_httpAuthSchemeProvider4(); + init_endpointResolver4(); + init_schemas_04(); + getRuntimeConfig7 = /* @__PURE__ */ __name((config3) => { + return { + apiVersion: "2023-01-01", + base64Decoder: config3?.base64Decoder ?? fromBase64, + base64Encoder: config3?.base64Encoder ?? toBase64, + disableHostPrefix: config3?.disableHostPrefix ?? false, + endpointProvider: config3?.endpointProvider ?? defaultEndpointResolver4, + extensions: config3?.extensions ?? [], + httpAuthSchemeProvider: config3?.httpAuthSchemeProvider ?? defaultSigninHttpAuthSchemeProvider, + httpAuthSchemes: config3?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), "identityProvider"), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), "identityProvider"), + signer: new NoAuthSigner() + } + ], + logger: config3?.logger ?? new NoOpLogger(), + protocol: config3?.protocol ?? AwsRestJsonProtocol, + protocolSettings: config3?.protocolSettings ?? { + defaultNamespace: "com.amazonaws.signin", + errorTypeRegistries: errorTypeRegistries4, + version: "2023-01-01", + serviceTarget: "Signin" + }, + serviceId: config3?.serviceId ?? "Signin", + sha256: config3?.sha256 ?? Sha256Node, + urlParser: config3?.urlParser ?? parseUrl, + utf8Decoder: config3?.utf8Decoder ?? fromUtf8, + utf8Encoder: config3?.utf8Encoder ?? toUtf8 + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.js +var import_node_http_handler4, getRuntimeConfig8; +var init_runtimeConfig4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.js"() { + init_package(); + init_client2(); + init_httpAuthSchemes2(); + init_client(); + init_config(); + init_retry(); + init_serde(); + import_node_http_handler4 = __toESM(require_dist_cjs7()); + init_runtimeConfig_shared4(); + getRuntimeConfig8 = /* @__PURE__ */ __name((config3) => { + emitWarningIfUnsupportedVersion(process.version); + const defaultsMode = resolveDefaultsModeConfig(config3); + const defaultConfigProvider = /* @__PURE__ */ __name(() => defaultsMode().then(loadConfigsForDefaultMode), "defaultConfigProvider"); + const clientSharedValues = getRuntimeConfig7(config3); + emitWarningIfUnsupportedVersion2(process.version); + const loaderConfig = { + profile: config3?.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config3, + runtime: "node", + defaultsMode, + authSchemePreference: config3?.authSchemePreference ?? loadConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: config3?.bodyLengthChecker ?? calculateBodyLength, + defaultUserAgentProvider: config3?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: package_default.version }), + maxAttempts: config3?.maxAttempts ?? loadConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config3), + region: config3?.region ?? loadConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: import_node_http_handler4.NodeHttpHandler.create(config3?.requestHandler ?? defaultConfigProvider), + retryMode: config3?.retryMode ?? loadConfig({ + ...NODE_RETRY_MODE_CONFIG_OPTIONS, + default: /* @__PURE__ */ __name(async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, "default") + }, config3), + streamCollector: config3?.streamCollector ?? import_node_http_handler4.streamCollector, + useDualstackEndpoint: config3?.useDualstackEndpoint ?? loadConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: config3?.useFipsEndpoint ?? loadConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: config3?.userAgentAppId ?? loadConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }, "getRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/auth/httpAuthExtensionConfiguration.js +var getHttpAuthExtensionConfiguration4, resolveHttpAuthRuntimeConfig4; +var init_httpAuthExtensionConfiguration4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/auth/httpAuthExtensionConfiguration.js"() { + getHttpAuthExtensionConfiguration4 = /* @__PURE__ */ __name((runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials) { + _credentials = credentials; + }, + credentials() { + return _credentials; + } + }; + }, "getHttpAuthExtensionConfiguration"); + resolveHttpAuthRuntimeConfig4 = /* @__PURE__ */ __name((config3) => { + return { + httpAuthSchemes: config3.httpAuthSchemes(), + httpAuthSchemeProvider: config3.httpAuthSchemeProvider(), + credentials: config3.credentials() + }; + }, "resolveHttpAuthRuntimeConfig"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeExtensions.js +var resolveRuntimeExtensions4; +var init_runtimeExtensions4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeExtensions.js"() { + init_client2(); + init_client(); + init_protocols(); + init_httpAuthExtensionConfiguration4(); + resolveRuntimeExtensions4 = /* @__PURE__ */ __name((runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration(runtimeConfig), getDefaultExtensionConfiguration(runtimeConfig), getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration4(runtimeConfig)); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration(extensionConfiguration), resolveDefaultRuntimeConfig(extensionConfiguration), resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig4(extensionConfiguration)); + }, "resolveRuntimeExtensions"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/SigninClient.js +var SigninClient; +var init_SigninClient = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/SigninClient.js"() { + init_client2(); + init_dist_es(); + init_client(); + init_config(); + init_endpoints(); + init_protocols(); + init_retry(); + init_schema(); + init_httpAuthSchemeProvider4(); + init_EndpointParameters4(); + init_runtimeConfig4(); + init_runtimeExtensions4(); + SigninClient = class extends Client { + static { + __name(this, "SigninClient"); + } + config; + constructor(...[configuration]) { + const _config_0 = getRuntimeConfig8(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters4(_config_0); + const _config_2 = resolveUserAgentConfig(_config_1); + const _config_3 = resolveRetryConfig(_config_2); + const _config_4 = resolveRegionConfig(_config_3); + const _config_5 = resolveHostHeaderConfig(_config_4); + const _config_6 = resolveEndpointConfig(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig4(_config_6); + const _config_8 = resolveRuntimeExtensions4(_config_7, configuration?.extensions || []); + this.config = _config_8; + this.middlewareStack.use(getSchemaSerdePlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + this.middlewareStack.use(getRecursionDetectionPlugin(this.config)); + this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultSigninHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name(async (config3) => new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config3.credentials + }), "identityProviderConfigProvider") + })); + this.middlewareStack.use(getHttpSigningPlugin(this.config)); + } + destroy() { + super.destroy(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commandBuilder.js +var command4, _ep04, _ep1, _mw04; +var init_commandBuilder4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commandBuilder.js"() { + init_client(); + init_endpoints(); + init_EndpointParameters4(); + command4 = makeBuilder(commonParams4, "Signin", "SigninClient", getEndpointPlugin); + _ep04 = { + IsControlPlane: { type: "staticContextParams", value: false } + }; + _ep1 = { + IsOAuthEndpoint: { type: "staticContextParams", value: true } + }; + _mw04 = /* @__PURE__ */ __name((Command2, cs, config3, o3) => [], "_mw0"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js +var CreateOAuth2TokenCommand; +var init_CreateOAuth2TokenCommand = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js"() { + init_commandBuilder4(); + init_schemas_04(); + CreateOAuth2TokenCommand = class extends command4(_ep04, _mw04, "CreateOAuth2Token", CreateOAuth2Token$) { + static { + __name(this, "CreateOAuth2TokenCommand"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenWithIAMCommand.js +var CreateOAuth2TokenWithIAMCommand; +var init_CreateOAuth2TokenWithIAMCommand = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenWithIAMCommand.js"() { + init_commandBuilder4(); + init_schemas_04(); + CreateOAuth2TokenWithIAMCommand = class extends command4(_ep1, _mw04, "CreateOAuth2TokenWithIAM", CreateOAuth2TokenWithIAM$) { + static { + __name(this, "CreateOAuth2TokenWithIAMCommand"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/Signin.js +var commands4, Signin; +var init_Signin = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/Signin.js"() { + init_client(); + init_CreateOAuth2TokenCommand(); + init_CreateOAuth2TokenWithIAMCommand(); + init_SigninClient(); + commands4 = { + CreateOAuth2TokenCommand, + CreateOAuth2TokenWithIAMCommand + }; + Signin = class extends SigninClient { + static { + __name(this, "Signin"); + } + }; + createAggregatedClient(commands4, Signin); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/index.js +var init_commands4 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/index.js"() { + init_CreateOAuth2TokenCommand(); + init_CreateOAuth2TokenWithIAMCommand(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/enums.js +var OAuth2ErrorCode; +var init_enums2 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/enums.js"() { + OAuth2ErrorCode = { + AUTHCODE_EXPIRED: "AUTHCODE_EXPIRED", + CONFLICT: "CONFLICT", + INSUFFICIENT_PERMISSIONS: "INSUFFICIENT_PERMISSIONS", + INVALID_REQUEST: "INVALID_REQUEST", + RESOURCE_NOT_FOUND: "RESOURCE_NOT_FOUND", + SERVER_ERROR: "server_error", + SERVICE_QUOTA_EXCEEDED: "SERVICE_QUOTA_EXCEEDED", + TOKEN_EXPIRED: "TOKEN_EXPIRED", + USER_CREDENTIALS_CHANGED: "USER_CREDENTIALS_CHANGED" + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/models_0.js +var init_models_04 = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/models_0.js"() { + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/index.js +var signin_exports = {}; +__export(signin_exports, { + $Command: () => Command, + AccessDeniedException: () => AccessDeniedException2, + AccessDeniedException$: () => AccessDeniedException$2, + AccessToken$: () => AccessToken$, + CreateOAuth2Token$: () => CreateOAuth2Token$, + CreateOAuth2TokenCommand: () => CreateOAuth2TokenCommand, + CreateOAuth2TokenRequest$: () => CreateOAuth2TokenRequest$, + CreateOAuth2TokenRequestBody$: () => CreateOAuth2TokenRequestBody$, + CreateOAuth2TokenResponse$: () => CreateOAuth2TokenResponse$, + CreateOAuth2TokenResponseBody$: () => CreateOAuth2TokenResponseBody$, + CreateOAuth2TokenWithIAM$: () => CreateOAuth2TokenWithIAM$, + CreateOAuth2TokenWithIAMCommand: () => CreateOAuth2TokenWithIAMCommand, + CreateOAuth2TokenWithIAMRequest$: () => CreateOAuth2TokenWithIAMRequest$, + CreateOAuth2TokenWithIAMResponse$: () => CreateOAuth2TokenWithIAMResponse$, + InternalServerException: () => InternalServerException2, + InternalServerException$: () => InternalServerException$2, + OAuth2ErrorCode: () => OAuth2ErrorCode, + Signin: () => Signin, + SigninClient: () => SigninClient, + SigninServiceException: () => SigninServiceException, + SigninServiceException$: () => SigninServiceException$, + TooManyRequestsError: () => TooManyRequestsError, + TooManyRequestsError$: () => TooManyRequestsError$, + ValidationException: () => ValidationException, + ValidationException$: () => ValidationException$, + __Client: () => Client, + errorTypeRegistries: () => errorTypeRegistries4 +}); +var init_signin = __esm({ + "../../node_modules/.pnpm/@aws-sdk+nested-clients@3.997.49/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/index.js"() { + init_SigninClient(); + init_Signin(); + init_commands4(); + init_client(); + init_schemas_04(); + init_enums2(); + init_errors4(); + init_models_04(); + init_SigninServiceException(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-login@3.972.82/node_modules/@aws-sdk/credential-provider-login/dist-cjs/index.js +var require_dist_cjs11 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-login@3.972.82/node_modules/@aws-sdk/credential-provider-login/dist-cjs/index.js"(exports) { + var { setCredentialFeature: setCredentialFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var { CredentialsProviderError, parseKnownFiles, getProfileName } = (init_config(), __toCommonJS(config_exports)); + var { HttpRequest: HttpRequest2 } = (init_protocols(), __toCommonJS(protocols_exports)); + var { createHash: createHash3, createPrivateKey, createPublicKey, sign: sign2 } = __require("node:crypto"); + var { promises } = __require("node:fs"); + var { homedir } = __require("node:os"); + var { dirname: dirname2, join: join4 } = __require("node:path"); + var LoginCredentialsFetcher = class _LoginCredentialsFetcher { + static { + __name(this, "LoginCredentialsFetcher"); + } + profileData; + init; + callerClientConfig; + static REFRESH_THRESHOLD = 5 * 60 * 1e3; + constructor(profileData, init2, callerClientConfig) { + this.profileData = profileData; + this.init = init2; + this.callerClientConfig = callerClientConfig; + } + async loadCredentials() { + const token = await this.loadToken(); + if (!token) { + throw new CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`, { tryNextLink: false, logger: this.logger }); + } + const accessToken = token.accessToken; + const now = Date.now(); + const expiryTime = new Date(accessToken.expiresAt).getTime(); + const timeUntilExpiry = expiryTime - now; + if (timeUntilExpiry <= _LoginCredentialsFetcher.REFRESH_THRESHOLD) { + return this.refresh(token); + } + return this.toCredentials(token.accessToken); + } + get logger() { + return this.init?.logger; + } + get loginSession() { + return this.profileData.login_session; + } + toCredentials(token) { + return { + accessKeyId: token.accessKeyId, + secretAccessKey: token.secretAccessKey, + sessionToken: token.sessionToken, + accountId: token.accountId, + expiration: new Date(token.expiresAt) + }; + } + async refresh(token) { + const diskToken = await this.loadToken().catch(() => token); + const now = Date.now(); + const diskExpiry = new Date(diskToken.accessToken.expiresAt).getTime(); + const tokenExpiry = new Date(token.accessToken.expiresAt).getTime(); + const freshToken = diskExpiry <= now && tokenExpiry > now ? token : diskToken; + const freshExpiry = new Date(freshToken.accessToken.expiresAt).getTime(); + if (freshExpiry - Date.now() > _LoginCredentialsFetcher.REFRESH_THRESHOLD) { + return this.toCredentials(freshToken.accessToken); + } + const { SigninClient: SigninClient2, CreateOAuth2TokenCommand: CreateOAuth2TokenCommand2 } = (init_signin(), __toCommonJS(signin_exports)); + const { logger, userAgentAppId } = this.callerClientConfig ?? {}; + const isH22 = /* @__PURE__ */ __name((requestHandler2) => { + return requestHandler2?.metadata?.handlerProtocol === "h2"; + }, "isH2"); + const requestHandler = isH22(this.callerClientConfig?.requestHandler) ? void 0 : this.callerClientConfig?.requestHandler; + const region = this.profileData.region ?? await this.callerClientConfig?.region?.() ?? process.env.AWS_REGION; + const client = new SigninClient2({ + credentials: { + accessKeyId: "", + secretAccessKey: "" + }, + region, + requestHandler, + logger, + userAgentAppId, + ...this.init?.clientConfig + }); + this.createDPoPInterceptor(client.middlewareStack); + const commandInput = { + tokenInput: { + clientId: freshToken.clientId, + refreshToken: freshToken.refreshToken, + grantType: "refresh_token" + } + }; + try { + const response = await client.send(new CreateOAuth2TokenCommand2(commandInput)); + const { accessKeyId, secretAccessKey, sessionToken } = response.tokenOutput?.accessToken ?? {}; + const { refreshToken, expiresIn } = response.tokenOutput ?? {}; + if (!accessKeyId || !secretAccessKey || !sessionToken || !refreshToken) { + throw new CredentialsProviderError("Token refresh response missing required fields", { + logger: this.logger, + tryNextLink: false + }); + } + const expiresInMs = (expiresIn ?? 900) * 1e3; + const expiration = new Date(Date.now() + expiresInMs); + const updatedToken = { + ...freshToken, + accessToken: { + ...freshToken.accessToken, + accessKeyId, + secretAccessKey, + sessionToken, + expiresAt: expiration.toISOString() + }, + refreshToken + }; + await this.saveToken(updatedToken); + return this.toCredentials(updatedToken.accessToken); + } catch (error62) { + if (error62.name === "AccessDeniedException") { + const errorType = error62.error; + let message; + switch (errorType) { + case "TOKEN_EXPIRED": + message = "Your session has expired. Please reauthenticate."; + break; + case "USER_CREDENTIALS_CHANGED": + message = "Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password."; + break; + case "INSUFFICIENT_PERMISSIONS": + message = "Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action."; + break; + default: + message = `Failed to refresh token: ${String(error62)}. Please re-authenticate using \`aws login\``; + } + throw new CredentialsProviderError(message, { + logger: this.logger, + tryNextLink: false + }); + } + const tokenExpiry2 = new Date(freshToken.accessToken.expiresAt).getTime(); + if (tokenExpiry2 > Date.now()) { + this.logger?.warn?.(`Failed to refresh token: ${String(error62)}. Using existing token until expiry.`); + return this.toCredentials(freshToken.accessToken); + } + throw new CredentialsProviderError(`Failed to refresh token: ${String(error62)}. Please re-authenticate using aws login`, { logger: this.logger }); + } + } + async loadToken() { + const tokenFilePath = this.getTokenFilePath(); + try { + const tokenData = await promises.readFile(tokenFilePath, "utf8"); + const token = JSON.parse(tokenData); + const missingFields = ["accessToken", "clientId", "refreshToken", "dpopKey"].filter((k5) => !token[k5]); + if (!token.accessToken?.accountId) { + missingFields.push("accountId"); + } + if (missingFields.length > 0) { + throw new CredentialsProviderError(`Token validation failed, missing fields: ${missingFields.join(", ")}`, { + logger: this.logger, + tryNextLink: false + }); + } + return token; + } catch (error62) { + throw new CredentialsProviderError(`Failed to load token from ${tokenFilePath}: ${String(error62)}`, { + logger: this.logger, + tryNextLink: false + }); + } + } + async saveToken(token) { + const tokenFilePath = this.getTokenFilePath(); + const directory = dirname2(tokenFilePath); + try { + await promises.mkdir(directory, { recursive: true }); + } catch (error62) { + } + await promises.writeFile(tokenFilePath, JSON.stringify(token, null, 2), "utf8"); + } + getTokenFilePath() { + const directory = process.env.AWS_LOGIN_CACHE_DIRECTORY ?? join4(homedir(), ".aws", "login", "cache"); + const loginSessionBytes = Buffer.from(this.loginSession, "utf8"); + const loginSessionSha256 = createHash3("sha256").update(loginSessionBytes).digest("hex"); + return join4(directory, `${loginSessionSha256}.json`); + } + derToRawSignature(derSignature) { + let offset = 2; + if (derSignature[offset] !== 2) { + throw new Error("Invalid DER signature"); + } + offset++; + const rLength = derSignature[offset++]; + let r5 = derSignature.subarray(offset, offset + rLength); + offset += rLength; + if (derSignature[offset] !== 2) { + throw new Error("Invalid DER signature"); + } + offset++; + const sLength = derSignature[offset++]; + let s2 = derSignature.subarray(offset, offset + sLength); + r5 = r5[0] === 0 ? r5.subarray(1) : r5; + s2 = s2[0] === 0 ? s2.subarray(1) : s2; + const rPadded = Buffer.concat([Buffer.alloc(32 - r5.length), r5]); + const sPadded = Buffer.concat([Buffer.alloc(32 - s2.length), s2]); + return Buffer.concat([rPadded, sPadded]); + } + createDPoPInterceptor(middlewareStack) { + middlewareStack.add((next) => async (args) => { + if (HttpRequest2.isInstance(args.request)) { + const request = args.request; + const actualEndpoint = `${request.protocol}//${request.hostname}${request.port ? `:${request.port}` : ""}${request.path}`; + const dpop = await this.generateDpop(request.method, actualEndpoint); + request.headers = { + ...request.headers, + DPoP: dpop + }; + } + return next(args); + }, { + step: "finalizeRequest", + name: "dpopInterceptor", + override: true + }); + } + async generateDpop(method = "POST", endpoint) { + const token = await this.loadToken(); + try { + const privateKey = createPrivateKey({ + key: token.dpopKey, + format: "pem", + type: "sec1" + }); + const publicKey = createPublicKey(privateKey); + const publicDer = publicKey.export({ format: "der", type: "spki" }); + let pointStart = -1; + for (let i5 = 0; i5 < publicDer.length; i5++) { + if (publicDer[i5] === 4) { + pointStart = i5; + break; + } + } + const x = publicDer.slice(pointStart + 1, pointStart + 33); + const y = publicDer.slice(pointStart + 33, pointStart + 65); + const header = { + alg: "ES256", + typ: "dpop+jwt", + jwk: { + kty: "EC", + crv: "P-256", + x: x.toString("base64url"), + y: y.toString("base64url") + } + }; + const payload = { + jti: crypto.randomUUID(), + htm: method, + htu: endpoint, + iat: Math.floor(Date.now() / 1e3) + }; + const headerB64 = Buffer.from(JSON.stringify(header)).toString("base64url"); + const payloadB64 = Buffer.from(JSON.stringify(payload)).toString("base64url"); + const message = `${headerB64}.${payloadB64}`; + const asn1Signature = sign2("sha256", Buffer.from(message), privateKey); + const rawSignature = this.derToRawSignature(asn1Signature); + const signatureB64 = rawSignature.toString("base64url"); + return `${message}.${signatureB64}`; + } catch (error62) { + throw new CredentialsProviderError(`Failed to generate Dpop proof: ${error62 instanceof Error ? error62.message : String(error62)}`, { logger: this.logger, tryNextLink: false }); + } + } + }; + var fromLoginCredentials = /* @__PURE__ */ __name((init2) => async ({ callerClientConfig } = {}) => { + init2?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials"); + const profiles = await parseKnownFiles(init2 || {}); + const profileName = getProfileName({ + profile: init2?.profile ?? callerClientConfig?.profile + }); + const profile = profiles[profileName]; + if (!profile?.login_session) { + throw new CredentialsProviderError(`Profile ${profileName} does not contain login_session.`, { + tryNextLink: true, + logger: init2?.logger + }); + } + const fetcher = new LoginCredentialsFetcher(profile, init2, callerClientConfig); + const credentials = await fetcher.loadCredentials(); + return setCredentialFeature2(credentials, "CREDENTIALS_LOGIN", "AD"); + }, "fromLoginCredentials"); + exports.fromLoginCredentials = fromLoginCredentials; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.972.75/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +var require_dist_cjs12 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.972.75/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js"(exports) { + var { externalDataInterceptor, CredentialsProviderError, parseKnownFiles, getProfileName } = (init_config(), __toCommonJS(config_exports)); + var { exec } = __require("node:child_process"); + var { promisify } = __require("node:util"); + var { setCredentialFeature: setCredentialFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => { + if (data.Version !== 1) { + throw Error(`Profile ${profileName} credential_process did not return Version 1.`); + } + if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) { + throw Error(`Profile ${profileName} credential_process returned invalid credentials.`); + } + if (data.Expiration) { + const currentTime = /* @__PURE__ */ new Date(); + const expireTime = new Date(data.Expiration); + if (expireTime < currentTime) { + throw Error(`Profile ${profileName} credential_process returned expired credentials.`); + } + } + let accountId = data.AccountId; + if (!accountId && profiles?.[profileName]?.aws_account_id) { + accountId = profiles[profileName].aws_account_id; + } + const credentials = { + accessKeyId: data.AccessKeyId, + secretAccessKey: data.SecretAccessKey, + ...data.SessionToken && { sessionToken: data.SessionToken }, + ...data.Expiration && { expiration: new Date(data.Expiration) }, + ...data.CredentialScope && { credentialScope: data.CredentialScope }, + ...accountId && { accountId } + }; + setCredentialFeature2(credentials, "CREDENTIALS_PROCESS", "w"); + return credentials; + }, "getValidatedProcessCredentials"); + var resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => { + const profile = profiles[profileName]; + if (profiles[profileName]) { + const credentialProcess = profile["credential_process"]; + if (credentialProcess !== void 0) { + const execPromise = promisify(externalDataInterceptor?.getTokenRecord?.().exec ?? exec); + try { + const { stdout } = await execPromise(credentialProcess); + let data; + try { + data = JSON.parse(stdout.trim()); + } catch { + throw Error(`Profile ${profileName} credential_process returned invalid JSON.`); + } + return getValidatedProcessCredentials(profileName, data, profiles); + } catch (error62) { + throw new CredentialsProviderError(error62.message, { logger }); + } + } else { + throw new CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger }); + } + } else { + throw new CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, { + logger + }); + } + }, "resolveProcessCredentials"); + var fromProcess = /* @__PURE__ */ __name((init2 = {}) => async ({ callerClientConfig } = {}) => { + init2.logger?.debug("@aws-sdk/credential-provider-process - fromProcess"); + const profiles = await parseKnownFiles(init2); + return resolveProcessCredentials(getProfileName({ + profile: init2.profile ?? callerClientConfig?.profile + }), profiles, init2.logger); + }, "fromProcess"); + exports.fromProcess = fromProcess; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.81/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +var require_dist_cjs13 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.81/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js"(exports) { + var { setCredentialFeature: setCredentialFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var { CredentialsProviderError, externalDataInterceptor } = (init_config(), __toCommonJS(config_exports)); + var { readFileSync } = __require("node:fs"); + var fromWebToken = /* @__PURE__ */ __name((init2) => async (awsIdentityProperties) => { + init2.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken"); + const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init2; + let { roleAssumerWithWebIdentity } = init2; + if (!roleAssumerWithWebIdentity) { + const { getDefaultRoleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity3 } = (init_sts(), __toCommonJS(sts_exports)); + roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity3({ + ...init2.clientConfig, + credentialProviderLogger: init2.logger, + parentClientConfig: { + ...awsIdentityProperties?.callerClientConfig, + ...init2.parentClientConfig + } + }, init2.clientPlugins); + } + return roleAssumerWithWebIdentity({ + RoleArn: roleArn, + RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`, + WebIdentityToken: webIdentityToken, + ProviderId: providerId, + PolicyArns: policyArns, + Policy: policy, + DurationSeconds: durationSeconds + }); + }, "fromWebToken"); + var ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE"; + var ENV_ROLE_ARN = "AWS_ROLE_ARN"; + var ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME"; + var fromTokenFile = /* @__PURE__ */ __name((init2 = {}) => async (awsIdentityProperties) => { + init2.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile"); + const webIdentityTokenFile = init2?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE]; + const roleArn = init2?.roleArn ?? process.env[ENV_ROLE_ARN]; + const roleSessionName = init2?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME]; + if (!webIdentityTokenFile || !roleArn) { + throw new CredentialsProviderError("Web identity configuration not specified", { + logger: init2.logger + }); + } + const credentials = await fromWebToken({ + ...init2, + webIdentityToken: externalDataInterceptor?.getTokenRecord?.()[webIdentityTokenFile] ?? readFileSync(webIdentityTokenFile, { encoding: "ascii" }), + roleArn, + roleSessionName + })(awsIdentityProperties); + if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) { + setCredentialFeature2(credentials, "CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN", "h"); + } + return credentials; + }, "fromTokenFile"); + exports.fromTokenFile = fromTokenFile; + exports.fromWebToken = fromWebToken; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.973.20/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +var require_dist_cjs14 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.973.20/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js"(exports) { + var { CredentialsProviderError, chain, getProfileName, parseKnownFiles } = (init_config(), __toCommonJS(config_exports)); + var { setCredentialFeature: setCredentialFeature2 } = (init_client2(), __toCommonJS(client_exports2)); + var resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => { + const sourceProvidersMap = { + EcsContainer: /* @__PURE__ */ __name(async (options) => { + const { fromHttp } = require_dist_cjs8(); + const { fromContainerMetadata } = require_dist_cjs6(); + logger?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"); + return async () => chain(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider); + }, "EcsContainer"), + Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => { + logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata"); + const { fromInstanceMetadata } = require_dist_cjs6(); + return async () => fromInstanceMetadata(options)().then(setNamedProvider); + }, "Ec2InstanceMetadata"), + Environment: /* @__PURE__ */ __name(async (options) => { + logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment"); + const { fromEnv } = require_dist_cjs5(); + return async () => fromEnv(options)().then(setNamedProvider); + }, "Environment") + }; + if (credentialSource in sourceProvidersMap) { + return sourceProvidersMap[credentialSource]; + } else { + throw new CredentialsProviderError(`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`, { logger }); + } + }, "resolveCredentialSource"); + var setNamedProvider = /* @__PURE__ */ __name((creds) => setCredentialFeature2(creds, "CREDENTIALS_PROFILE_NAMED_PROVIDER", "p"), "setNamedProvider"); + var isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = "default", logger } = {}) => { + return Boolean(arg) && typeof arg === "object" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1 && ["undefined", "string"].indexOf(typeof arg.external_id) > -1 && ["undefined", "string"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger })); + }, "isAssumeRoleProfile"); + var isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => { + const withSourceProfile = typeof arg.source_profile === "string" && typeof arg.credential_source === "undefined"; + if (withSourceProfile) { + logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`); + } + return withSourceProfile; + }, "isAssumeRoleWithSourceProfile"); + var isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => { + const withProviderProfile = typeof arg.credential_source === "string" && typeof arg.source_profile === "undefined"; + if (withProviderProfile) { + logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`); + } + return withProviderProfile; + }, "isCredentialSourceProfile"); + var resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, callerClientConfig, visitedProfiles = {}, resolveProfileData2) => { + options.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)"); + const profileData = profiles[profileName]; + const { source_profile, region } = profileData; + if (!options.roleAssumer) { + const { getDefaultRoleAssumer: getDefaultRoleAssumer3 } = (init_sts(), __toCommonJS(sts_exports)); + options.roleAssumer = getDefaultRoleAssumer3({ + ...options.clientConfig, + credentialProviderLogger: options.logger, + parentClientConfig: { + ...callerClientConfig, + ...options?.parentClientConfig, + region: region ?? options?.parentClientConfig?.region ?? callerClientConfig?.region + } + }, options.clientPlugins); + } + if (source_profile && source_profile in visitedProfiles) { + throw new CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${getProfileName(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(", "), { logger: options.logger }); + } + options.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`); + const sourceCredsProvider = source_profile ? resolveProfileData2(source_profile, profiles, options, callerClientConfig, { + ...visitedProfiles, + [source_profile]: true + }, isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))(); + if (isCredentialSourceWithoutRoleArn(profileData)) { + return sourceCredsProvider.then((creds) => setCredentialFeature2(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o")); + } else { + const params = { + RoleArn: profileData.role_arn, + RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`, + ExternalId: profileData.external_id, + DurationSeconds: parseInt(profileData.duration_seconds || "3600", 10) + }; + const { mfa_serial } = profileData; + if (mfa_serial) { + if (!options.mfaCodeProvider) { + throw new CredentialsProviderError(`Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, { logger: options.logger, tryNextLink: false }); + } + params.SerialNumber = mfa_serial; + params.TokenCode = await options.mfaCodeProvider(mfa_serial); + } + const sourceCreds = await sourceCredsProvider; + return options.roleAssumer(sourceCreds, params).then((creds) => setCredentialFeature2(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o")); + } + }, "resolveAssumeRoleCredentials"); + var isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => { + return !section.role_arn && !!section.credential_source; + }, "isCredentialSourceWithoutRoleArn"); + var isLoginProfile = /* @__PURE__ */ __name((data) => { + return Boolean(data && data.login_session); + }, "isLoginProfile"); + var resolveLoginCredentials = /* @__PURE__ */ __name(async (profileName, options, callerClientConfig) => { + const { fromLoginCredentials } = require_dist_cjs11(); + const credentials = await fromLoginCredentials({ + ...options, + profile: profileName + })({ callerClientConfig }); + return setCredentialFeature2(credentials, "CREDENTIALS_PROFILE_LOGIN", "AC"); + }, "resolveLoginCredentials"); + var isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.credential_process === "string", "isProcessProfile"); + var resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => { + const { fromProcess } = require_dist_cjs12(); + const credentials = await fromProcess({ + ...options, + profile + })(); + return setCredentialFeature2(credentials, "CREDENTIALS_PROFILE_PROCESS", "v"); + }, "resolveProcessCredentials"); + var resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}, callerClientConfig) => { + const { fromSSO } = require_dist_cjs10(); + return fromSSO({ + profile, + logger: options.logger, + parentClientConfig: options.parentClientConfig, + clientConfig: options.clientConfig + })({ + callerClientConfig + }).then((creds) => { + if (profileData.sso_session) { + return setCredentialFeature2(creds, "CREDENTIALS_PROFILE_SSO", "r"); + } else { + return setCredentialFeature2(creds, "CREDENTIALS_PROFILE_SSO_LEGACY", "t"); + } + }); + }, "resolveSsoCredentials"); + var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); + var isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.aws_access_key_id === "string" && typeof arg.aws_secret_access_key === "string" && ["undefined", "string"].indexOf(typeof arg.aws_session_token) > -1 && ["undefined", "string"].indexOf(typeof arg.aws_account_id) > -1, "isStaticCredsProfile"); + var resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => { + options?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials"); + const credentials = { + accessKeyId: profile.aws_access_key_id, + secretAccessKey: profile.aws_secret_access_key, + sessionToken: profile.aws_session_token, + ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }, + ...profile.aws_account_id && { accountId: profile.aws_account_id } + }; + return setCredentialFeature2(credentials, "CREDENTIALS_PROFILE", "n"); + }, "resolveStaticCredentials"); + var isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.web_identity_token_file === "string" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1, "isWebIdentityProfile"); + var resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options, callerClientConfig) => { + const { fromTokenFile } = require_dist_cjs13(); + const credentials = await fromTokenFile({ + webIdentityTokenFile: profile.web_identity_token_file, + roleArn: profile.role_arn, + roleSessionName: profile.role_session_name, + roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity, + logger: options.logger, + parentClientConfig: options.parentClientConfig + })({ + callerClientConfig + }); + return setCredentialFeature2(credentials, "CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN", "q"); + }, "resolveWebIdentityCredentials"); + var resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, callerClientConfig, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => { + const data = profiles[profileName]; + if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) { + return resolveStaticCredentials(data, options); + } + if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) { + return resolveAssumeRoleCredentials(profileName, profiles, options, callerClientConfig, visitedProfiles, resolveProfileData); + } + if (isStaticCredsProfile(data)) { + return resolveStaticCredentials(data, options); + } + if (isWebIdentityProfile(data)) { + return resolveWebIdentityCredentials(data, options, callerClientConfig); + } + if (isProcessProfile(data)) { + return resolveProcessCredentials(options, profileName); + } + if (isSsoProfile(data)) { + return await resolveSsoCredentials(profileName, data, options, callerClientConfig); + } + if (isLoginProfile(data)) { + return resolveLoginCredentials(profileName, options, callerClientConfig); + } + throw new CredentialsProviderError(`Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, { logger: options.logger }); + }, "resolveProfileData"); + var fromIni = /* @__PURE__ */ __name((init2 = {}) => async ({ callerClientConfig } = {}) => { + init2.logger?.debug("@aws-sdk/credential-provider-ini - fromIni"); + const profiles = await parseKnownFiles(init2); + return resolveProfileData(getProfileName({ + profile: init2.profile ?? callerClientConfig?.profile + }), profiles, init2, callerClientConfig); + }, "fromIni"); + exports.fromIni = fromIni; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.972.87/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +var require_dist_cjs15 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.972.87/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js"(exports) { + var { ENV_KEY, ENV_SECRET, fromEnv } = require_dist_cjs5(); + var { chain, CredentialsProviderError, ENV_PROFILE } = (init_config(), __toCommonJS(config_exports)); + var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; + var remoteProvider = /* @__PURE__ */ __name(async (init2) => { + const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = require_dist_cjs6(); + if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) { + init2.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata"); + const { fromHttp } = require_dist_cjs8(); + return chain(fromHttp(init2), fromContainerMetadata(init2)); + } + if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== "false") { + return async () => { + throw new CredentialsProviderError("EC2 Instance Metadata Service access disabled", { logger: init2.logger }); + }; + } + init2.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"); + return fromInstanceMetadata(init2); + }, "remoteProvider"); + function memoizeChain(providers, treatAsExpired) { + const chain2 = internalCreateChain(providers); + let activeLock; + let passiveLock; + let credentials; + let forceRefreshLock; + const provider = /* @__PURE__ */ __name(async (options) => { + if (options?.forceRefresh) { + if (!forceRefreshLock) { + forceRefreshLock = chain2(options).then((c5) => { + credentials = c5; + }).finally(() => { + forceRefreshLock = void 0; + }); + } + await forceRefreshLock; + return credentials; + } + if (credentials?.expiration) { + if (credentials?.expiration?.getTime() < Date.now()) { + credentials = void 0; + } + } + if (activeLock) { + await activeLock; + } else if (!credentials || treatAsExpired?.(credentials)) { + if (credentials) { + if (!passiveLock) { + passiveLock = chain2(options).then((c5) => { + credentials = c5; + }).catch(() => { + }).finally(() => { + passiveLock = void 0; + }); + } + } else { + activeLock = chain2(options).then((c5) => { + credentials = c5; + }).finally(() => { + activeLock = void 0; + }); + return provider(options); + } + } + return credentials; + }, "provider"); + return provider; + } + __name(memoizeChain, "memoizeChain"); + var internalCreateChain = /* @__PURE__ */ __name((providers) => async (awsIdentityProperties) => { + let lastProviderError; + for (const provider of providers) { + try { + return await provider(awsIdentityProperties); + } catch (err) { + lastProviderError = err; + if (err?.tryNextLink) { + continue; + } + throw err; + } + } + throw lastProviderError; + }, "internalCreateChain"); + var multipleCredentialSourceWarningEmitted = false; + var defaultProvider = /* @__PURE__ */ __name((init2 = {}) => memoizeChain([ + async () => { + const profile = init2.profile ?? process.env[ENV_PROFILE]; + if (profile) { + const envStaticCredentialsAreSet = process.env[ENV_KEY] && process.env[ENV_SECRET]; + if (envStaticCredentialsAreSet) { + if (!multipleCredentialSourceWarningEmitted) { + const warnFn = init2.logger?.warn && init2.logger?.constructor?.name !== "NoOpLogger" ? init2.logger.warn.bind(init2.logger) : console.warn; + warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: + Multiple credential sources detected: + Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. + This SDK will proceed with the AWS_PROFILE value. + + However, a future version may change this behavior to prefer the ENV static credentials. + Please ensure that your environment only sets either the AWS_PROFILE or the + AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. +`); + multipleCredentialSourceWarningEmitted = true; + } + } + throw new CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.", { + logger: init2.logger, + tryNextLink: true + }); + } + init2.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"); + return fromEnv(init2)(); + }, + async (awsIdentityProperties) => { + init2.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO"); + const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init2; + if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { + throw new CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).", { logger: init2.logger }); + } + const { fromSSO } = require_dist_cjs10(); + return fromSSO(init2)(awsIdentityProperties); + }, + async (awsIdentityProperties) => { + init2.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni"); + const { fromIni } = require_dist_cjs14(); + return fromIni(init2)(awsIdentityProperties); + }, + async (awsIdentityProperties) => { + init2.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess"); + const { fromProcess } = require_dist_cjs12(); + return fromProcess(init2)(awsIdentityProperties); + }, + async (awsIdentityProperties) => { + init2.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile"); + const { fromTokenFile } = require_dist_cjs13(); + return fromTokenFile(init2)(awsIdentityProperties); + }, + async () => { + init2.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"); + return (await remoteProvider(init2))(); + }, + async () => { + throw new CredentialsProviderError("Could not load credentials from any providers", { + tryNextLink: false, + logger: init2.logger + }); + } + ], credentialsTreatedAsExpired), "defaultProvider"); + var credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, "credentialsWillNeedRefresh"); + var credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, "credentialsTreatedAsExpired"); + exports.credentialsTreatedAsExpired = credentialsTreatedAsExpired; + exports.credentialsWillNeedRefresh = credentialsWillNeedRefresh; + exports.defaultProvider = defaultProvider; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/sha1/Sha1Js.js +var BLOCK, DIGEST_LENGTH, INIT, K, Sha1Js; +var init_Sha1Js = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/sha1/Sha1Js.js"() { + init_serde(); + BLOCK = 64; + DIGEST_LENGTH = 20; + INIT = new Int32Array([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + K = new Int32Array([1518500249, 1859775393, 2400959708, 3395469782]); + Sha1Js = class _Sha1Js { + static { + __name(this, "Sha1Js"); + } + digestLength = DIGEST_LENGTH; + state = Int32Array.from(INIT); + w; + buffer = new Uint8Array(BLOCK); + bufferLength = 0; + bytesHashed = 0; + finished = false; + inner; + outer; + constructor(secret) { + if (secret) { + const key = _Sha1Js.normalizeKey(secret); + this.inner = new _Sha1Js(); + this.outer = new _Sha1Js(); + const pad = new Uint8Array(BLOCK * 2); + for (let i5 = 0; i5 < BLOCK; ++i5) { + pad[i5] = 54 ^ key[i5]; + pad[i5 + BLOCK] = 92 ^ key[i5]; + } + this.inner.update(pad.subarray(0, BLOCK)); + this.outer.update(pad.subarray(BLOCK)); + } + } + update(data) { + if (this.finished) { + throw new Error("Attempted to update an already finished HMAC."); + } + if (this.inner) { + this.inner.update(data); + return; + } + let pos = 0; + let { length } = data; + this.bytesHashed += length; + if (this.bufferLength > 0) { + while (length > 0 && this.bufferLength < BLOCK) { + this.buffer[this.bufferLength++] = data[pos++]; + --length; + } + if (this.bufferLength === BLOCK) { + this.hashBuffer(this.buffer, 0); + this.bufferLength = 0; + } + } + while (length >= BLOCK) { + this.hashBuffer(data, pos); + pos += BLOCK; + length -= BLOCK; + } + while (length > 0) { + this.buffer[this.bufferLength++] = data[pos++]; + --length; + } + } + async digest() { + if (this.inner && this.outer) { + if (this.finished) { + throw new Error("Attempted to digest an already finished HMAC."); + } + this.finished = true; + const innerDigest = this.inner.digestSync(); + this.outer.update(innerDigest); + return this.outer.digestSync(); + } + return this.digestSync(); + } + reset() { + this.state = Int32Array.from(INIT); + this.buffer = new Uint8Array(BLOCK); + this.bufferLength = 0; + this.bytesHashed = 0; + } + digestSync() { + const state2 = this.state.slice(); + const buffer = this.buffer.slice(); + let bufferLength = this.bufferLength; + const bitsHi = this.bytesHashed / 536870912 | 0; + const bitsLo = this.bytesHashed << 3; + buffer[bufferLength++] = 128; + if (bufferLength > BLOCK - 8) { + for (let i5 = bufferLength; i5 < BLOCK; ++i5) { + buffer[i5] = 0; + } + this.hashBufferWith(state2, buffer, 0); + bufferLength = 0; + } + for (let i5 = bufferLength; i5 < BLOCK - 8; ++i5) { + buffer[i5] = 0; + } + const v = new DataView(buffer.buffer, buffer.byteOffset, BLOCK); + v.setUint32(BLOCK - 8, bitsHi, false); + v.setUint32(BLOCK - 4, bitsLo, false); + this.hashBufferWith(state2, buffer, 0); + const out = new Uint8Array(DIGEST_LENGTH); + out[0] = state2[0] >>> 24 & 255; + out[1] = state2[0] >>> 16 & 255; + out[2] = state2[0] >>> 8 & 255; + out[3] = state2[0] & 255; + out[4] = state2[1] >>> 24 & 255; + out[5] = state2[1] >>> 16 & 255; + out[6] = state2[1] >>> 8 & 255; + out[7] = state2[1] & 255; + out[8] = state2[2] >>> 24 & 255; + out[9] = state2[2] >>> 16 & 255; + out[10] = state2[2] >>> 8 & 255; + out[11] = state2[2] & 255; + out[12] = state2[3] >>> 24 & 255; + out[13] = state2[3] >>> 16 & 255; + out[14] = state2[3] >>> 8 & 255; + out[15] = state2[3] & 255; + out[16] = state2[4] >>> 24 & 255; + out[17] = state2[4] >>> 16 & 255; + out[18] = state2[4] >>> 8 & 255; + out[19] = state2[4] & 255; + return out; + } + static normalizeKey(secret) { + const key = toUint8Array(secret); + if (key.byteLength > BLOCK) { + const h5 = new _Sha1Js(); + h5.update(key); + const digest2 = h5.digestSync(); + const padded2 = new Uint8Array(BLOCK); + padded2.set(digest2); + return padded2; + } + const padded = new Uint8Array(BLOCK); + padded.set(key); + return padded; + } + hashBuffer(data, offset) { + this.hashBufferWith(this.state, data, offset); + } + hashBufferWith(state2, data, offset) { + const w = this.w ??= new Int32Array(80); + let s0 = state2[0], s1 = state2[1], s2 = state2[2], s3 = state2[3], s4 = state2[4]; + for (let t = 0; t < 16; ++t) { + w[t] = (data[offset + t * 4] & 255) << 24 | (data[offset + t * 4 + 1] & 255) << 16 | (data[offset + t * 4 + 2] & 255) << 8 | data[offset + t * 4 + 3] & 255; + } + for (let t = 16; t < 80; ++t) { + const x = w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]; + w[t] = x << 1 | x >>> 31; + } + for (let t = 0; t < 80; ++t) { + const r5 = t < 20 ? 0 : t < 40 ? 1 : t < 60 ? 2 : 3; + const temp = ((s0 << 5 | s0 >>> 27) + (r5 === 0 ? s1 & s2 ^ ~s1 & s3 : r5 === 2 ? s1 & s2 ^ s1 & s3 ^ s2 & s3 : s1 ^ s2 ^ s3) | 0) + (s4 + (K[r5] + w[t] | 0) | 0) | 0; + s4 = s3; + s3 = s2; + s2 = s1 << 30 | s1 >>> 2; + s1 = s0; + s0 = temp; + } + state2[0] = state2[0] + s0 | 0; + state2[1] = state2[1] + s1 | 0; + state2[2] = state2[2] + s2 | 0; + state2[3] = state2[3] + s3 | 0; + state2[4] = state2[4] + s4 | 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/sha1/Sha1Node.js +import { createHash as createHash2, createHmac } from "node:crypto"; +function buildNativeClass() { + return class Sha1Node { + static { + __name(this, "Sha1Node"); + } + digestLength = 20; + secret; + hash; + isHmac; + finished = false; + constructor(secret) { + this.secret = secret; + this.isHmac = !!secret; + this.hash = this.createHash(); + } + update(data) { + if (this.finished) { + throw new Error("Attempted to update an already finished hash."); + } + this.hash.update(data); + } + async digest() { + let buf; + if (this.isHmac) { + this.finished = true; + buf = this.hash.digest(); + } else { + buf = this.hash.copy().digest(); + } + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + reset() { + this.hash = this.createHash(); + this.finished = false; + } + createHash() { + return this.secret ? createHmac("sha1", toBuffer(this.secret)) : createHash2("sha1"); + } + }; +} +function toBuffer(data) { + if (typeof data === "string") { + return data; + } + if (ArrayBuffer.isView(data)) { + return Buffer.from(data.buffer, data.byteOffset, data.byteLength); + } + return Buffer.from(data); +} +var hasNativeCrypto, Sha1Node; +var init_Sha1Node = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/sha1/Sha1Node.js"() { + init_Sha1Js(); + hasNativeCrypto = (() => { + try { + createHash2("sha1"); + return true; + } catch { + return false; + } + })(); + Sha1Node = hasNativeCrypto ? buildNativeClass() : Sha1Js; + __name(buildNativeClass, "buildNativeClass"); + __name(toBuffer, "toBuffer"); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/sha1/Sha1WebCrypto.js +var digest, sign, importKey, subtle, MAX_PENDING_BYTES, Sha1WebCrypto; +var init_Sha1WebCrypto = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/sha1/Sha1WebCrypto.js"() { + init_serde(); + init_Sha1Js(); + ({ digest, sign, importKey } = globalThis?.crypto?.subtle ?? {}); + subtle = typeof digest === "function" && typeof sign === "function" && typeof importKey === "function" ? globalThis.crypto.subtle : void 0; + MAX_PENDING_BYTES = 8 * 1024 * 1024; + Sha1WebCrypto = class { + static { + __name(this, "Sha1WebCrypto"); + } + digestLength = 20; + secret; + pending = []; + pendingBytes = 0; + fallback; + finished = false; + constructor(secret) { + if (secret) { + this.secret = toUint8Array(secret); + } + } + update(data) { + if (this.finished) { + throw new Error("Attempted to update an already finished HMAC."); + } + if (this.fallback) { + this.fallback.update(data); + return; + } + this.pending.push(data.slice()); + this.pendingBytes += data.byteLength; + if (this.pendingBytes >= MAX_PENDING_BYTES) { + this.switchToFallback(); + } + } + async digest() { + if (this.fallback) { + return this.fallback.digest(); + } + if (this.secret && this.finished) { + throw new Error("Attempted to digest an already finished HMAC."); + } + const data = concatBytes(this.pending); + if (subtle) { + if (this.secret) { + this.finished = true; + const key = await subtle.importKey("raw", this.secret, { name: "HMAC", hash: "SHA-1" }, false, ["sign"]); + const sig = await subtle.sign("HMAC", key, data); + return new Uint8Array(sig); + } + const hash3 = await subtle.digest("SHA-1", data); + return new Uint8Array(hash3); + } + const sha1 = new Sha1Js(this.secret); + sha1.update(data); + return sha1.digest(); + } + reset() { + this.pending = []; + this.pendingBytes = 0; + this.fallback = void 0; + this.finished = false; + } + switchToFallback() { + const sha1Js = new Sha1Js(this.secret); + for (const chunk of this.pending) { + sha1Js.update(chunk); + } + this.fallback = sha1Js; + this.pending = []; + this.pendingBytes = 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/index.js +var sha_exports = {}; +__export(sha_exports, { + Sha1: () => Sha1Node, + Sha1Js: () => Sha1Js, + Sha1Node: () => Sha1Node, + Sha1WebCrypto: () => Sha1WebCrypto, + Sha256: () => Sha256Node, + Sha256Js: () => Sha256Js, + Sha256Node: () => Sha256Node +}); +var init_sha = __esm({ + "../../node_modules/.pnpm/@aws-sdk+checksums@3.1001.4/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/index.js"() { + init_Sha1Js(); + init_Sha1Node(); + init_Sha1WebCrypto(); + init_checksum(); + } +}); + +// ../../node_modules/.pnpm/@aws-sdk+client-s3@3.1154.0/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +var require_dist_cjs16 = __commonJS({ + "../../node_modules/.pnpm/@aws-sdk+client-s3@3.1154.0/node_modules/@aws-sdk/client-s3/dist-cjs/index.js"(exports) { + var { getFlexibleChecksumsPlugin: getFlexibleChecksumsPlugin2, NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS: NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS2, NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS: NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS2, resolveFlexibleChecksumsConfig: resolveFlexibleChecksumsConfig2 } = (init_flexible_checksums(), __toCommonJS(flexible_checksums_exports)); + var { awsEndpointFunctions: awsEndpointFunctions2, emitWarningIfUnsupportedVersion: emitWarningIfUnsupportedVersion$1, createDefaultUserAgentProvider: createDefaultUserAgentProvider2, NODE_APP_ID_CONFIG_OPTIONS: NODE_APP_ID_CONFIG_OPTIONS2, getAwsRegionExtensionConfiguration: getAwsRegionExtensionConfiguration2, resolveAwsRegionExtensionConfiguration: resolveAwsRegionExtensionConfiguration2, resolveUserAgentConfig: resolveUserAgentConfig2, resolveHostHeaderConfig: resolveHostHeaderConfig2, getUserAgentPlugin: getUserAgentPlugin2, getHostHeaderPlugin: getHostHeaderPlugin2, getLoggerPlugin: getLoggerPlugin2, getRecursionDetectionPlugin: getRecursionDetectionPlugin2 } = (init_client2(), __toCommonJS(client_exports2)); + var { getThrow200ExceptionsPlugin: getThrow200ExceptionsPlugin2, getSsecPlugin: getSsecPlugin2, getLocationConstraintPlugin: getLocationConstraintPlugin2, getS3ExpiresMiddlewarePlugin: getS3ExpiresMiddlewarePlugin2, getCheckContentLengthHeaderPlugin: getCheckContentLengthHeaderPlugin2, S3RestXmlProtocol: S3RestXmlProtocol2, NODE_USE_ARN_REGION_CONFIG_OPTIONS: NODE_USE_ARN_REGION_CONFIG_OPTIONS2, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS: NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS2, resolveS3Config: resolveS3Config2, getValidateBucketNamePlugin: getValidateBucketNamePlugin2, getAddExpectContinuePlugin: getAddExpectContinuePlugin2, getRegionRedirectMiddlewarePlugin: getRegionRedirectMiddlewarePlugin2, getS3ExpressPlugin: getS3ExpressPlugin2, getS3ExpressHttpSigningPlugin: getS3ExpressHttpSigningPlugin2 } = (init_s3(), __toCommonJS(s3_exports)); + var { getHttpAuthSchemeEndpointRuleSetPlugin: getHttpAuthSchemeEndpointRuleSetPlugin2, DefaultIdentityProviderConfig: DefaultIdentityProviderConfig2, getHttpSigningPlugin: getHttpSigningPlugin2, createPaginator: createPaginator2 } = (init_dist_es(), __toCommonJS(dist_es_exports)); + var { normalizeProvider: normalizeProvider3, getSmithyContext: getSmithyContext2, makeBuilder: makeBuilder2, ServiceException: ServiceException2, NoOpLogger: NoOpLogger2, emitWarningIfUnsupportedVersion: emitWarningIfUnsupportedVersion3, loadConfigsForDefaultMode: loadConfigsForDefaultMode2, getDefaultExtensionConfiguration: getDefaultExtensionConfiguration2, resolveDefaultRuntimeConfig: resolveDefaultRuntimeConfig2, Client: Client2, createWaiter, checkExceptions, WaiterState, createAggregatedClient: createAggregatedClient2 } = (init_client(), __toCommonJS(client_exports)); + var { Command: $Command } = (init_client(), __toCommonJS(client_exports)); + exports.$Command = $Command; + exports.__Client = Client2; + var { resolveDefaultsModeConfig: resolveDefaultsModeConfig2, loadConfig: loadConfig2, NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS2, NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS2, NODE_REGION_CONFIG_OPTIONS: NODE_REGION_CONFIG_OPTIONS2, NODE_REGION_CONFIG_FILE_OPTIONS: NODE_REGION_CONFIG_FILE_OPTIONS2, resolveRegionConfig: resolveRegionConfig2 } = (init_config(), __toCommonJS(config_exports)); + var { BinaryDecisionDiagram: BinaryDecisionDiagram2, EndpointCache: EndpointCache2, decideEndpoint: decideEndpoint2, customEndpointFunctions: customEndpointFunctions2, resolveParams: resolveParams2, getEndpointPlugin: getEndpointPlugin2, resolveEndpointConfig: resolveEndpointConfig2 } = (init_endpoints(), __toCommonJS(endpoints_exports)); + var { eventStreamSerdeProvider, resolveEventStreamSerdeConfig } = (init_event_streams(), __toCommonJS(event_streams_exports)); + var { parseUrl: parseUrl2, getHttpHandlerExtensionConfiguration: getHttpHandlerExtensionConfiguration2, resolveHttpHandlerRuntimeConfig: resolveHttpHandlerRuntimeConfig2, getContentLengthPlugin: getContentLengthPlugin2 } = (init_protocols(), __toCommonJS(protocols_exports)); + var { DEFAULT_RETRY_MODE: DEFAULT_RETRY_MODE2, NODE_RETRY_MODE_CONFIG_OPTIONS: NODE_RETRY_MODE_CONFIG_OPTIONS2, NODE_MAX_ATTEMPT_CONFIG_OPTIONS: NODE_MAX_ATTEMPT_CONFIG_OPTIONS2, resolveRetryConfig: resolveRetryConfig2, getRetryPlugin: getRetryPlugin2 } = (init_retry(), __toCommonJS(retry_exports)); + var { TypeRegistry: TypeRegistry2, getSchemaSerdePlugin: getSchemaSerdePlugin2 } = (init_schema(), __toCommonJS(schema_exports)); + var { resolveAwsSdkSigV4Config: resolveAwsSdkSigV4Config2, resolveAwsSdkSigV4AConfig: resolveAwsSdkSigV4AConfig2, AwsSdkSigV4Signer: AwsSdkSigV4Signer2, AwsSdkSigV4ASigner: AwsSdkSigV4ASigner2, NODE_SIGV4A_CONFIG_OPTIONS: NODE_SIGV4A_CONFIG_OPTIONS2, NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: NODE_AUTH_SCHEME_PREFERENCE_OPTIONS2 } = (init_httpAuthSchemes2(), __toCommonJS(httpAuthSchemes_exports)); + var { SignatureV4MultiRegion: SignatureV4MultiRegion3 } = require_dist_cjs3(); + var { defaultProvider } = require_dist_cjs15(); + var { Sha256, Md5, readableStreamHasher } = (init_checksum(), __toCommonJS(checksum_exports)); + var { toUtf8: toUtf82, fromUtf8: fromUtf82, sdkStreamMixin: sdkStreamMixin2, getAwsChunkedEncodingStream, toBase64: toBase642, fromBase64: fromBase642, calculateBodyLength: calculateBodyLength2 } = (init_serde(), __toCommonJS(serde_exports)); + var { streamCollector: streamCollector5, NodeHttpHandler } = require_dist_cjs7(); + var { Sha1 } = (init_sha(), __toCommonJS(sha_exports)); + var aw = "ref"; + var ax = "argv"; + var ay = "backend"; + var az = "authSchemes"; + var aA = "disableDoubleEncoding"; + var aB = "signingName"; + var aC = "signingRegion"; + var aD = "signingRegionSet"; + var a5 = -1; + var b5 = true; + var c5 = false; + var d5 = "isSet"; + var e5 = "booleanEquals"; + var f5 = "stringEquals"; + var g5 = "coalesce"; + var h5 = "substring"; + var i5 = ""; + var j5 = "aws.partition"; + var k5 = "partitionResult"; + var l3 = "accessPointSuffix"; + var m3 = "regionPrefix"; + var n3 = /* @__PURE__ */ __name((n4) => "outpostId_ssa_" + n4 + i5, "n"); + var o3 = "hardwareType"; + var p3 = "ite"; + var q3 = "isValidHostLabel"; + var s2 = "sigv4"; + var t = "aws.isVirtualHostableS3Bucket"; + var u = "url"; + var v = "getAttr"; + var w = "bucketArn"; + var x = "--"; + var y = "arnType"; + var z2 = "accesspoint"; + var A = /* @__PURE__ */ __name((n4) => "accessPointName_ssa_" + n4 + i5, "A"); + var B = "s3-object-lambda"; + var C = "s3-outposts"; + var D = "bucketPartition"; + var E = "us-east-1"; + var F = "outpostType"; + var G = "name"; + var H = "s3"; + var I = "{url#scheme}://{Bucket}.{url#authority}{url#path}"; + var J = "{url#scheme}://{url#authority}{url#path}"; + var K2 = "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}"; + var L = "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}"; + var M = "https://{Bucket}.s3.{partitionResult#dnsSuffix}"; + var N = /* @__PURE__ */ __name((n4) => "{url#scheme}://{accessPointName_ssa_" + n4 + "}-{bucketArn#accountId}.{url#authority}{url#path}", "N"); + var O = /* @__PURE__ */ __name((n4) => "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName_ssa_" + n4 + "}`", "O"); + var P = "sigv4a"; + var Q = "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}"; + var R = "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}"; + var S = "https://s3.{partitionResult#dnsSuffix}"; + var T2 = { [aw]: "UseFIPS" }; + var U = { [aw]: "UseDualStack" }; + var V = { [aw]: "Bucket" }; + var W = { "fn": v, [ax]: [{ [aw]: k5 }, G] }; + var X = { [aw]: u }; + var Y = { [aw]: "Region" }; + var Z = { [aw]: w }; + var aa = { [aw]: y }; + var ab = { [aw]: "accessPointName_ssa_1" }; + var ac = { "fn": v, [ax]: [Z, "region"] }; + var ad = { [aw]: o3 }; + var ae = { "fn": v, [ax]: [Z, "service"] }; + var af = { "fn": v, [ax]: [Z, "accountId"] }; + var ag = { [ay]: "S3Express", [az]: [{ [aA]: true, [G]: "{_s3e_auth}", [aB]: "s3express", [aC]: "{Region}" }] }; + var ah = { [ay]: "S3Express", [az]: [{ [aA]: true, [G]: s2, [aB]: "s3express", [aC]: "{Region}" }] }; + var ai = { [az]: [{ [aA]: true, [G]: P, [aB]: C, [aD]: ["*"] }, { [aA]: true, [G]: s2, [aB]: C, [aC]: "{Region}" }] }; + var aj = { [az]: [{ [aA]: true, [G]: s2, [aB]: H, [aC]: E }] }; + var ak = { [az]: [{ [aA]: true, [G]: s2, [aB]: H, [aC]: "{Region}" }] }; + var al = { [az]: [{ [aA]: true, [G]: s2, [aB]: B, [aC]: "{bucketArn#region}" }] }; + var am = { [az]: [{ [aA]: true, [G]: s2, [aB]: H, [aC]: "{bucketArn#region}" }] }; + var an = { [az]: [{ [aA]: true, [G]: P, [aB]: C, [aD]: ["*"] }, { [aA]: true, [G]: s2, [aB]: C, [aC]: "{bucketArn#region}" }] }; + var ao = { [az]: [{ [aA]: true, [G]: s2, [aB]: B, [aC]: "{Region}" }] }; + var ap = [Y]; + var aq = [{ [aw]: "Endpoint" }]; + var as = [V]; + var at = [V, 0, 7, true]; + var au = [Z, "resourceId[1]"]; + var av = ["*"]; + var _data5 = { + conditions: [ + [d5, ap], + [e5, [{ [aw]: "Accelerate" }, b5]], + [e5, [T2, b5]], + [e5, [U, b5]], + [d5, aq], + [d5, as], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 0, 6, b5] }, i5] }, "--x-s3"]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: at }, i5] }, "--xa-s3"]], + [j5, ap, k5], + [h5, at, l3], + [f5, [{ [aw]: l3 }, "--op-s3"]], + [h5, [V, 8, 12, b5], m3], + [h5, [V, 32, 49, b5], n3(2)], + [h5, [V, 49, 50, b5], o3], + [e5, [{ [aw]: "ForcePathStyle" }, b5]], + [f5, [W, "aws-cn"]], + [p3, [U, ".dualstack", i5], "_s3e_ds"], + [q3, [{ [aw]: n3(2) }, c5]], + [p3, [T2, "-fips", i5], "_s3e_fips"], + [p3, [{ fn: g5, [ax]: [{ [aw]: "DisableS3ExpressSessionAuth" }, c5] }, s2, "sigv4-s3express"], "_s3e_auth"], + [t, [V, c5]], + ["parseURL", aq, u], + [e5, [{ fn: g5, [ax]: [{ [aw]: "UseS3ExpressControlEndpoint" }, c5] }, b5]], + [t, [V, b5]], + [f5, [{ fn: v, [ax]: [X, "scheme"] }, "http"]], + [q3, [Y, c5]], + ["aws.parseArn", as, w], + [v, [{ fn: "split", [ax]: [V, x, 0] }, "[-2]"], "s3expressAvailabilityZoneId"], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 0, 4, c5] }, i5] }, "arn:"]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 16, 18, b5] }, i5] }, x]], + [e5, [{ fn: v, [ax]: [X, "isIp"] }, b5]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 21, 23, b5] }, i5] }, x]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 27, 29, b5] }, i5] }, x]], + [f5, [{ [aw]: m3 }, "beta"]], + ["uriEncode", as, "uri_encoded_bucket"], + [q3, [Y, b5]], + [e5, [{ fn: g5, [ax]: [{ [aw]: "UseObjectLambdaEndpoint" }, c5] }, b5]], + [v, [Z, "resourceId[0]"], y], + [f5, [aa, i5]], + [f5, [aa, z2]], + [v, au, A(1)], + [f5, [ab, i5]], + [f5, [ac, i5]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 14, 16, b5] }, i5] }, x]], + [f5, [ad, "e"]], + [f5, [ad, "o"]], + [f5, [Y, "aws-global"]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 19, 21, b5] }, i5] }, x]], + [f5, [ae, B]], + [e5, [{ fn: g5, [ax]: [{ [aw]: "DisableAccessPoints" }, c5] }, b5]], + [f5, [ae, C]], + [j5, [ac], D], + [q3, [ab, b5]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 26, 28, b5] }, i5] }, x]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 15, 17, b5] }, i5] }, x]], + [v, [Z, "resourceId[4]"]], + [f5, [{ fn: g5, [ax]: [{ fn: h5, [ax]: [V, 20, 22, b5] }, i5] }, x]], + [e5, [{ [aw]: "UseGlobalEndpoint" }, b5]], + [f5, [Y, E]], + [v, au, n3(1)], + [e5, [{ fn: g5, [ax]: [{ [aw]: "UseArnRegion" }, b5] }, b5]], + [q3, [{ [aw]: n3(1) }, c5]], + [v, [Z, "resourceId[2]"], F], + [f5, [Y, ac]], + [f5, [{ fn: v, [ax]: [{ [aw]: D }, G] }, W]], + [e5, [{ [aw]: "DisableMultiRegionAccessPoints" }, b5]], + [q3, [ac, b5]], + [f5, [{ fn: v, [ax]: [Z, "partition"] }, W]], + [f5, [af, i5]], + [f5, [ae, H]], + [q3, [af, c5]], + [v, [Z, "resourceId[3]"], A(2)], + [q3, [ab, c5]], + [f5, [{ [aw]: F }, z2]], + [q3, [{ [aw]: A(2) }, c5]] + ], + results: [ + [a5], + [a5, "Accelerate cannot be used with FIPS"], + [a5, "Cannot set dual-stack in combination with a custom endpoint."], + [a5, "A custom endpoint cannot be combined with FIPS"], + [a5, "A custom endpoint cannot be combined with S3 Accelerate"], + [a5, "Partition does not support FIPS"], + [a5, "S3Express does not support S3 Accelerate."], + ["{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", ag], + [I, ag], + [a5, "S3Express bucket name is not a valid virtual hostable name."], + ["https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", ah], + ["https://{Bucket}.s3express{_s3e_fips}-{s3expressAvailabilityZoneId}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}", ag], + [a5, "Unrecognized S3Express bucket name format."], + [J, ag], + ["https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}", ah], + [a5, "Expected a endpoint to be specified but no endpoint was found"], + ["https://{Bucket}.ec2.{url#authority}", ai], + ["https://{Bucket}.ec2.s3-outposts.{Region}.{partitionResult#dnsSuffix}", ai], + ["https://{Bucket}.op-{outpostId_ssa_2}.{url#authority}", ai], + ["https://{Bucket}.op-{outpostId_ssa_2}.s3-outposts.{Region}.{partitionResult#dnsSuffix}", ai], + [a5, 'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"'], + [a5, "Invalid Outposts Bucket alias - it must be a valid bucket name."], + [a5, "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`."], + [a5, "Custom endpoint `{Endpoint}` was not a valid URI"], + [a5, "S3 Accelerate cannot be used in this region"], + ["https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", aj], + ["https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", ak], + ["https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", aj], + ["https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", ak], + ["https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", aj], + ["https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", ak], + ["https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", aj], + ["https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", ak], + [K2, aj], + [I, aj], + [K2, ak], + [I, ak], + [L, aj], + [L, ak], + [M, aj], + [M, ak], + ["https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", ak], + [a5, "Invalid region: region was not a valid DNS name."], + [a5, "S3 Object Lambda does not support Dual-stack"], + [a5, "S3 Object Lambda does not support S3 Accelerate"], + [a5, "Access points are not supported for this operation"], + [a5, "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`"], + [a5, "Invalid ARN: Missing account id"], + [N(1), al], + ["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", al], + ["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}", al], + [a5, O(1)], + [a5, "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`"], + [a5, "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)"], + [a5, "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`"], + [a5, "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`."], + [a5, "Invalid ARN: bucket ARN is missing a region"], + [a5, "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided"], + [a5, "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`"], + [a5, "Access Points do not support S3 Accelerate"], + ["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", am], + ["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", am], + ["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", am], + [N(1), am], + ["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}", am], + [a5, "Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}"], + [a5, "S3 MRAP does not support dual-stack"], + [a5, "S3 MRAP does not support FIPS"], + [a5, "S3 MRAP does not support S3 Accelerate"], + [a5, "Invalid configuration: Multi-Region Access Point ARNs are disabled."], + ["https://{accessPointName_ssa_1}.accesspoint.s3-global.{partitionResult#dnsSuffix}", { [az]: [{ [aA]: b5, name: P, [aB]: H, [aD]: av }] }], + [a5, "Client was configured for partition `{partitionResult#name}` but bucket referred to partition `{bucketArn#partition}`"], + [a5, "Invalid Access Point Name"], + [a5, "S3 Outposts does not support Dual-stack"], + [a5, "S3 Outposts does not support FIPS"], + [a5, "S3 Outposts does not support S3 Accelerate"], + [a5, "Invalid Arn: Outpost Access Point ARN contains sub resources"], + ["https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.{url#authority}", an], + ["https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}", an], + [a5, O(2)], + [a5, "Expected an outpost type `accesspoint`, found {outpostType}"], + [a5, "Invalid ARN: expected an access point name"], + [a5, "Invalid ARN: Expected a 4-component resource"], + [a5, "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId_ssa_1}`"], + [a5, "Invalid ARN: The Outpost Id was not set"], + [a5, "Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})"], + [a5, "Invalid ARN: No ARN type specified"], + [a5, "Invalid ARN: `{Bucket}` was not a valid ARN"], + [a5, "Path-style addressing cannot be used with ARN buckets"], + ["https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", aj], + ["https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", ak], + ["https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", aj], + ["https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", ak], + ["https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", aj], + ["https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", ak], + [Q, aj], + [Q, ak], + [R, aj], + [R, ak], + ["https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", ak], + [a5, "Path-style addressing cannot be used with S3 Accelerate"], + [J, ao], + ["https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}", ao], + ["https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}", ao], + ["https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", aj], + ["https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", ak], + ["https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", aj], + ["https://s3-fips.{Region}.{partitionResult#dnsSuffix}", ak], + ["https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", aj], + ["https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", ak], + [J, aj], + [J, ak], + [S, aj], + [S, ak], + ["https://s3.{Region}.{partitionResult#dnsSuffix}", ak], + [a5, "A region must be set when sending requests to S3."] + ] + }; + var root5 = 2; + var r5 = 1e8; + var nodes5 = new Int32Array([ + -1, + 1, + -1, + 0, + 3, + r5 + 115, + 1, + 424, + 4, + 2, + 272, + 5, + 3, + 233, + 6, + 4, + 85, + 7, + 5, + 15, + 8, + 8, + 9, + r5 + 115, + 16, + 10, + 13, + 18, + 11, + 13, + 19, + 12, + 13, + 22, + r5 + 14, + 13, + 35, + 14, + r5 + 42, + 36, + r5 + 103, + 435, + 6, + 271, + 16, + 7, + 270, + 17, + 8, + 19, + 18, + 14, + 501, + 106, + 9, + 20, + 24, + 10, + 21, + 24, + 11, + 22, + 24, + 12, + 23, + 24, + 13, + 547, + 24, + 14, + 77, + 25, + 20, + 73, + 26, + 26, + 27, + 78, + 37, + 28, + r5 + 86, + 38, + r5 + 86, + 29, + 39, + 47, + 30, + 48, + r5 + 58, + 31, + 50, + 32, + r5 + 85, + 51, + 33, + 136, + 55, + r5 + 76, + 34, + 59, + 35, + r5 + 84, + 60, + 39, + 36, + 61, + 37, + r5 + 83, + 62, + 38, + 146, + 63, + 41, + r5 + 46, + 61, + 40, + r5 + 83, + 62, + 41, + 150, + 64, + 42, + r5 + 54, + 66, + 43, + r5 + 53, + 70, + 44, + r5 + 52, + 71, + 45, + r5 + 81, + 73, + 46, + r5 + 80, + 74, + r5 + 78, + r5 + 79, + 40, + 48, + r5 + 57, + 41, + r5 + 57, + 49, + 42, + 185, + 50, + 48, + 62, + 51, + 49, + r5 + 45, + 52, + 51, + 53, + 526, + 60, + 56, + 54, + 62, + r5 + 55, + 55, + 63, + 57, + r5 + 46, + 62, + r5 + 55, + 57, + 64, + 58, + r5 + 54, + 66, + 59, + r5 + 53, + 69, + 60, + r5 + 65, + 70, + 61, + r5 + 52, + 72, + r5 + 64, + r5 + 51, + 49, + r5 + 45, + 63, + 51, + 64, + 526, + 60, + 67, + 65, + 62, + r5 + 55, + 66, + 63, + 68, + r5 + 46, + 62, + r5 + 55, + 68, + 64, + 69, + r5 + 54, + 66, + 70, + r5 + 53, + 68, + r5 + 47, + 71, + 70, + 72, + r5 + 52, + 72, + r5 + 50, + r5 + 51, + 25, + 74, + r5 + 42, + 46, + r5 + 39, + 75, + 57, + 76, + r5 + 41, + 58, + r5 + 40, + r5 + 41, + 26, + r5 + 88, + 78, + 28, + r5 + 87, + 79, + 34, + 82, + 80, + 35, + 81, + 545, + 36, + r5 + 103, + r5 + 115, + 46, + r5 + 97, + 83, + 57, + 84, + r5 + 99, + 58, + r5 + 98, + r5 + 99, + 5, + 101, + 86, + 8, + 87, + r5 + 115, + 16, + 88, + 89, + 18, + 91, + 89, + 19, + 90, + 92, + 21, + 97, + 95, + 19, + 93, + 92, + 21, + 98, + 95, + 21, + 97, + 94, + 22, + r5 + 14, + 95, + 35, + 96, + r5 + 42, + 36, + r5 + 103, + r5 + 42, + 22, + r5 + 13, + 98, + 35, + 99, + r5 + 42, + 36, + r5 + 101, + 100, + 46, + r5 + 110, + r5 + 111, + 6, + 214, + 102, + 7, + 208, + 103, + 8, + 119, + 104, + 14, + 118, + 105, + 21, + 106, + r5 + 23, + 26, + 107, + 502, + 37, + 108, + r5 + 86, + 38, + r5 + 86, + 109, + 39, + 112, + 110, + 48, + r5 + 58, + 111, + 50, + 136, + r5 + 85, + 40, + 113, + r5 + 57, + 41, + r5 + 57, + 114, + 42, + 115, + 500, + 48, + r5 + 56, + 116, + 52, + 117, + r5 + 72, + 65, + r5 + 69, + r5 + 72, + 21, + 501, + r5 + 23, + 9, + 120, + 124, + 10, + 121, + 124, + 11, + 122, + 124, + 12, + 123, + 124, + 13, + 202, + 124, + 14, + 195, + 125, + 20, + 190, + 126, + 21, + 127, + r5 + 23, + 23, + 128, + 129, + 24, + 189, + 129, + 26, + 130, + 197, + 37, + 131, + r5 + 86, + 38, + r5 + 86, + 132, + 39, + 159, + 133, + 48, + r5 + 58, + 134, + 50, + 135, + r5 + 85, + 51, + 141, + 136, + 55, + r5 + 76, + 137, + 59, + 138, + r5 + 84, + 60, + r5 + 83, + 139, + 61, + 140, + r5 + 83, + 63, + r5 + 83, + r5 + 46, + 55, + r5 + 76, + 142, + 59, + 143, + r5 + 84, + 60, + 148, + 144, + 61, + 145, + r5 + 83, + 62, + 147, + 146, + 63, + 150, + r5 + 46, + 63, + 153, + r5 + 46, + 61, + 149, + r5 + 83, + 62, + 153, + 150, + 64, + 151, + r5 + 54, + 66, + 152, + r5 + 53, + 70, + r5 + 82, + r5 + 52, + 64, + 154, + r5 + 54, + 66, + 155, + r5 + 53, + 70, + 156, + r5 + 52, + 71, + 157, + r5 + 81, + 73, + 158, + r5 + 80, + 74, + r5 + 77, + r5 + 79, + 40, + 160, + r5 + 57, + 41, + r5 + 57, + 161, + 42, + 185, + 162, + 48, + 174, + 163, + 49, + r5 + 45, + 164, + 51, + 165, + 526, + 60, + 168, + 166, + 62, + r5 + 55, + 167, + 63, + 169, + r5 + 46, + 62, + r5 + 55, + 169, + 64, + 170, + r5 + 54, + 66, + 171, + r5 + 53, + 69, + 172, + r5 + 65, + 70, + 173, + r5 + 52, + 72, + r5 + 63, + r5 + 51, + 49, + r5 + 45, + 175, + 51, + 176, + 526, + 60, + 179, + 177, + 62, + r5 + 55, + 178, + 63, + 180, + r5 + 46, + 62, + r5 + 55, + 180, + 64, + 181, + r5 + 54, + 66, + 182, + r5 + 53, + 68, + r5 + 47, + 183, + 70, + 184, + r5 + 52, + 72, + r5 + 48, + r5 + 51, + 48, + r5 + 56, + 186, + 52, + 187, + r5 + 72, + 65, + r5 + 69, + 188, + 67, + r5 + 70, + r5 + 71, + 25, + r5 + 36, + r5 + 42, + 21, + 191, + r5 + 23, + 25, + 192, + r5 + 42, + 30, + 194, + 193, + 46, + r5 + 34, + r5 + 36, + 46, + r5 + 33, + r5 + 35, + 21, + 196, + r5 + 23, + 26, + r5 + 88, + 197, + 28, + r5 + 87, + 198, + 34, + 201, + 199, + 35, + 200, + 545, + 36, + r5 + 101, + r5 + 115, + 46, + r5 + 95, + r5 + 96, + 17, + 203, + r5 + 22, + 20, + 204, + r5 + 21, + 21, + 205, + 550, + 33, + 206, + 550, + 44, + r5 + 16, + 207, + 45, + r5 + 18, + r5 + 20, + 8, + 209, + 215, + 16, + 210, + 220, + 18, + 211, + 220, + 19, + 212, + 224, + 20, + 213, + 227, + 21, + 231, + 401, + 8, + 218, + 215, + 19, + 216, + r5 + 9, + 20, + 217, + 227, + 21, + 231, + r5 + 9, + 16, + 219, + 220, + 18, + 223, + 220, + 19, + 221, + 224, + 20, + 222, + 227, + 21, + 231, + r5 + 12, + 19, + 226, + 224, + 20, + 225, + r5 + 9, + 21, + r5 + 9, + r5 + 12, + 20, + 230, + 227, + 21, + 228, + r5 + 9, + 30, + 229, + r5 + 9, + 34, + r5 + 7, + r5 + 9, + 21, + 231, + 415, + 30, + 232, + r5 + 8, + 34, + r5 + 7, + r5 + 8, + 4, + r5 + 2, + 234, + 5, + 235, + 480, + 6, + 271, + 236, + 7, + 270, + 237, + 8, + 238, + 491, + 9, + 239, + 243, + 10, + 240, + 243, + 11, + 241, + 243, + 12, + 242, + 243, + 13, + 547, + 243, + 14, + 266, + 244, + 20, + 264, + 245, + 26, + 246, + 267, + 37, + 247, + r5 + 86, + 38, + r5 + 86, + 248, + 39, + 249, + 518, + 40, + 250, + r5 + 57, + 41, + r5 + 57, + 251, + 42, + 538, + 252, + 48, + r5 + 43, + 253, + 49, + r5 + 45, + 254, + 51, + 255, + 526, + 60, + 258, + 256, + 62, + r5 + 55, + 257, + 63, + 259, + r5 + 46, + 62, + r5 + 55, + 259, + 64, + 260, + r5 + 54, + 66, + 261, + r5 + 53, + 69, + 262, + r5 + 65, + 70, + 263, + r5 + 52, + 72, + r5 + 62, + r5 + 51, + 25, + 265, + r5 + 42, + 46, + r5 + 31, + r5 + 32, + 26, + r5 + 88, + 267, + 28, + r5 + 87, + 268, + 34, + 269, + 544, + 46, + r5 + 93, + r5 + 94, + 8, + 397, + r5 + 9, + 8, + 407, + r5 + 9, + 3, + 346, + 273, + 4, + r5 + 3, + 274, + 5, + 284, + 275, + 8, + 276, + r5 + 115, + 15, + r5 + 5, + 277, + 16, + 278, + 281, + 18, + 279, + 281, + 19, + 280, + 281, + 22, + r5 + 14, + 281, + 35, + 282, + r5 + 42, + 36, + r5 + 102, + 283, + 46, + r5 + 106, + r5 + 107, + 6, + 405, + 285, + 7, + 395, + 286, + 8, + 295, + 287, + 14, + 501, + 288, + 26, + 289, + 502, + 37, + 290, + r5 + 86, + 38, + r5 + 86, + 291, + 39, + 292, + 307, + 40, + 293, + r5 + 57, + 41, + r5 + 57, + 294, + 42, + 335, + 500, + 9, + 296, + 300, + 10, + 297, + 300, + 11, + 298, + 300, + 12, + 299, + 300, + 13, + 394, + 300, + 14, + 339, + 301, + 15, + r5 + 5, + 302, + 20, + 337, + 303, + 26, + 304, + 341, + 37, + 305, + r5 + 86, + 38, + r5 + 86, + 306, + 39, + 309, + 307, + 48, + r5 + 58, + 308, + 50, + r5 + 74, + r5 + 85, + 40, + 310, + r5 + 57, + 41, + r5 + 57, + 311, + 42, + 335, + 312, + 48, + 324, + 313, + 49, + r5 + 45, + 314, + 51, + 315, + 526, + 60, + 318, + 316, + 62, + r5 + 55, + 317, + 63, + 319, + r5 + 46, + 62, + r5 + 55, + 319, + 64, + 320, + r5 + 54, + 66, + 321, + r5 + 53, + 69, + 322, + r5 + 65, + 70, + 323, + r5 + 52, + 72, + r5 + 61, + r5 + 51, + 49, + r5 + 45, + 325, + 51, + 326, + 526, + 60, + 329, + 327, + 62, + r5 + 55, + 328, + 63, + 330, + r5 + 46, + 62, + r5 + 55, + 330, + 64, + 331, + r5 + 54, + 66, + 332, + r5 + 53, + 68, + r5 + 47, + 333, + 70, + 334, + r5 + 52, + 72, + r5 + 49, + r5 + 51, + 48, + r5 + 56, + 336, + 52, + r5 + 67, + r5 + 72, + 25, + 338, + r5 + 42, + 46, + r5 + 27, + r5 + 28, + 15, + r5 + 5, + 340, + 26, + r5 + 88, + 341, + 28, + r5 + 87, + 342, + 34, + 345, + 343, + 35, + 344, + 545, + 36, + r5 + 102, + r5 + 115, + 46, + r5 + 91, + r5 + 92, + 4, + r5 + 2, + 347, + 5, + 357, + 348, + 8, + 349, + r5 + 115, + 15, + r5 + 5, + 350, + 16, + 351, + 354, + 18, + 352, + 354, + 19, + 353, + 354, + 22, + r5 + 14, + 354, + 35, + 355, + r5 + 42, + 36, + r5 + 43, + 356, + 46, + r5 + 104, + r5 + 105, + 6, + 405, + 358, + 7, + 395, + 359, + 8, + 360, + 491, + 9, + 361, + 365, + 10, + 362, + 365, + 11, + 363, + 365, + 12, + 364, + 365, + 13, + 394, + 365, + 14, + 389, + 366, + 15, + r5 + 5, + 367, + 20, + 387, + 368, + 26, + 369, + 391, + 37, + 370, + r5 + 86, + 38, + r5 + 86, + 371, + 39, + 372, + 518, + 40, + 373, + r5 + 57, + 41, + r5 + 57, + 374, + 42, + 538, + 375, + 48, + r5 + 43, + 376, + 49, + r5 + 45, + 377, + 51, + 378, + 526, + 60, + 381, + 379, + 62, + r5 + 55, + 380, + 63, + 382, + r5 + 46, + 62, + r5 + 55, + 382, + 64, + 383, + r5 + 54, + 66, + 384, + r5 + 53, + 69, + 385, + r5 + 65, + 70, + 386, + r5 + 52, + 72, + r5 + 60, + r5 + 51, + 25, + 388, + r5 + 42, + 46, + r5 + 25, + r5 + 26, + 15, + r5 + 5, + 390, + 26, + r5 + 88, + 391, + 28, + r5 + 87, + 392, + 34, + 393, + 544, + 46, + r5 + 89, + r5 + 90, + 15, + r5 + 5, + 547, + 8, + 396, + r5 + 9, + 15, + r5 + 5, + 397, + 16, + 398, + 410, + 18, + 399, + 410, + 19, + 400, + 410, + 20, + 401, + r5 + 9, + 27, + 402, + r5 + 12, + 29, + r5 + 11, + 403, + 31, + r5 + 11, + 404, + 32, + r5 + 11, + 422, + 8, + 406, + r5 + 9, + 15, + r5 + 5, + 407, + 16, + 408, + 410, + 18, + 409, + 410, + 19, + 411, + 410, + 20, + r5 + 12, + r5 + 9, + 20, + 414, + 412, + 22, + 413, + r5 + 9, + 34, + r5 + 10, + r5 + 9, + 22, + 416, + 415, + 27, + 419, + r5 + 12, + 27, + 418, + 417, + 34, + r5 + 10, + r5 + 12, + 34, + r5 + 10, + 419, + 43, + r5 + 11, + 420, + 47, + r5 + 11, + 421, + 53, + r5 + 11, + 422, + 54, + r5 + 11, + 423, + 56, + r5 + 11, + r5 + 12, + 2, + r5 + 1, + 425, + 3, + 478, + 426, + 4, + r5 + 4, + 427, + 5, + 438, + 428, + 8, + 429, + r5 + 115, + 16, + 430, + 433, + 18, + 431, + 433, + 19, + 432, + 433, + 22, + r5 + 14, + 433, + 35, + 434, + r5 + 42, + 36, + r5 + 44, + 435, + 46, + r5 + 112, + 436, + 57, + 437, + r5 + 114, + 58, + r5 + 113, + r5 + 114, + 6, + r5 + 6, + 439, + 7, + r5 + 6, + 440, + 8, + 450, + 441, + 14, + 501, + 442, + 26, + 443, + 502, + 37, + 444, + r5 + 86, + 38, + r5 + 86, + 445, + 39, + 446, + 465, + 40, + 447, + r5 + 57, + 41, + r5 + 57, + 448, + 42, + 471, + 449, + 48, + r5 + 44, + 500, + 9, + 451, + 455, + 10, + 452, + 455, + 11, + 453, + 455, + 12, + 454, + 455, + 13, + 547, + 455, + 14, + 473, + 456, + 15, + 460, + 457, + 20, + 458, + 461, + 25, + 459, + r5 + 42, + 46, + r5 + 37, + r5 + 38, + 20, + 540, + 461, + 26, + 462, + 474, + 37, + 463, + r5 + 86, + 38, + r5 + 86, + 464, + 39, + 467, + 465, + 48, + r5 + 58, + 466, + 50, + r5 + 75, + r5 + 85, + 40, + 468, + r5 + 57, + 41, + r5 + 57, + 469, + 42, + 471, + 470, + 48, + r5 + 44, + 524, + 48, + r5 + 44, + 472, + 52, + r5 + 68, + r5 + 72, + 26, + r5 + 88, + 474, + 28, + r5 + 87, + 475, + 34, + r5 + 100, + 476, + 35, + 477, + 545, + 36, + r5 + 44, + r5 + 115, + 4, + r5 + 2, + 479, + 5, + 488, + 480, + 8, + 481, + r5 + 115, + 16, + 482, + 485, + 18, + 483, + 485, + 19, + 484, + 485, + 22, + r5 + 14, + 485, + 35, + 486, + r5 + 42, + 36, + r5 + 43, + 487, + 46, + r5 + 108, + r5 + 109, + 6, + r5 + 6, + 489, + 7, + r5 + 6, + 490, + 8, + 503, + 491, + 14, + 501, + 492, + 26, + 493, + 502, + 37, + 494, + r5 + 86, + 38, + r5 + 86, + 495, + 39, + 496, + 518, + 40, + 497, + r5 + 57, + 41, + r5 + 57, + 498, + 42, + 538, + 499, + 48, + r5 + 43, + 500, + 49, + r5 + 45, + 526, + 26, + r5 + 88, + 502, + 28, + r5 + 87, + r5 + 115, + 9, + 504, + 508, + 10, + 505, + 508, + 11, + 506, + 508, + 12, + 507, + 508, + 13, + 547, + 508, + 14, + 541, + 509, + 15, + 513, + 510, + 20, + 511, + 514, + 25, + 512, + r5 + 42, + 46, + r5 + 29, + r5 + 30, + 20, + 540, + 514, + 26, + 515, + 542, + 37, + 516, + r5 + 86, + 38, + r5 + 86, + 517, + 39, + 520, + 518, + 48, + r5 + 58, + 519, + 50, + r5 + 73, + r5 + 85, + 40, + 521, + r5 + 57, + 41, + r5 + 57, + 522, + 42, + 538, + 523, + 48, + r5 + 43, + 524, + 49, + r5 + 45, + 525, + 51, + 529, + 526, + 60, + r5 + 55, + 527, + 62, + r5 + 55, + 528, + 63, + r5 + 55, + r5 + 46, + 60, + 532, + 530, + 62, + r5 + 55, + 531, + 63, + 533, + r5 + 46, + 62, + r5 + 55, + 533, + 64, + 534, + r5 + 54, + 66, + 535, + r5 + 53, + 69, + 536, + r5 + 65, + 70, + 537, + r5 + 52, + 72, + r5 + 59, + r5 + 51, + 48, + r5 + 43, + 539, + 52, + r5 + 66, + r5 + 72, + 25, + r5 + 24, + r5 + 42, + 26, + r5 + 88, + 542, + 28, + r5 + 87, + 543, + 34, + r5 + 100, + 544, + 35, + 546, + 545, + 36, + r5 + 42, + r5 + 115, + 36, + r5 + 43, + r5 + 115, + 17, + 548, + r5 + 22, + 20, + 549, + r5 + 21, + 33, + 552, + 550, + 44, + r5 + 17, + 551, + 45, + r5 + 19, + r5 + 20, + 44, + r5 + 15, + 553, + 45, + r5 + 15, + r5 + 20 + ]); + var bdd5 = BinaryDecisionDiagram2.from(nodes5, root5, _data5.conditions, _data5.results); + var cache5 = new EndpointCache2({ + size: 50, + params: [ + "Accelerate", + "Bucket", + "DisableAccessPoints", + "DisableMultiRegionAccessPoints", + "DisableS3ExpressSessionAuth", + "Endpoint", + "ForcePathStyle", + "Region", + "UseArnRegion", + "UseDualStack", + "UseFIPS", + "UseGlobalEndpoint", + "UseObjectLambdaEndpoint", + "UseS3ExpressControlEndpoint" + ] + }); + var defaultEndpointResolver5 = /* @__PURE__ */ __name((endpointParams, context = {}) => { + return cache5.get(endpointParams, () => decideEndpoint2(bdd5, { + endpointParams, + logger: context.logger + })); + }, "defaultEndpointResolver"); + customEndpointFunctions2.aws = awsEndpointFunctions2; + var createEndpointRuleSetHttpAuthSchemeParametersProvider2 = /* @__PURE__ */ __name((defaultHttpAuthSchemeParametersProvider) => async (config3, context, input2) => { + if (!input2) { + throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`"); + } + const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config3, context, input2); + const instructionsFn = getSmithyContext2(context)?.commandInstance?.constructor?.getEndpointParameterInstructions; + if (!instructionsFn) { + throw new Error(`getEndpointParameterInstructions() is not defined on '${context.commandName}'`); + } + const endpointParameters = await resolveParams2(input2, { getEndpointParameterInstructions: instructionsFn }, config3); + return Object.assign(defaultParameters, endpointParameters); + }, "createEndpointRuleSetHttpAuthSchemeParametersProvider"); + var _defaultS3HttpAuthSchemeParametersProvider = /* @__PURE__ */ __name(async (config3, context, input2) => { + return { + operation: getSmithyContext2(context).operation, + region: await normalizeProvider3(config3.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }, "_defaultS3HttpAuthSchemeParametersProvider"); + var defaultS3HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider2(_defaultS3HttpAuthSchemeParametersProvider); + function createAwsAuthSigv4HttpAuthOption5(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "s3", + region: authParameters.region + }, + propertiesExtractor: /* @__PURE__ */ __name((config3, context) => ({ + signingProperties: { + config: config3, + context + } + }), "propertiesExtractor") + }; + } + __name(createAwsAuthSigv4HttpAuthOption5, "createAwsAuthSigv4HttpAuthOption"); + function createAwsAuthSigv4aHttpAuthOption2(authParameters) { + return { + schemeId: "aws.auth#sigv4a", + signingProperties: { + name: "s3", + region: authParameters.region + }, + propertiesExtractor: /* @__PURE__ */ __name((config3, context) => ({ + signingProperties: { + config: config3, + context + } + }), "propertiesExtractor") + }; + } + __name(createAwsAuthSigv4aHttpAuthOption2, "createAwsAuthSigv4aHttpAuthOption"); + var createEndpointRuleSetHttpAuthSchemeProvider2 = /* @__PURE__ */ __name((defaultEndpointResolver6, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => { + const endpointRuleSetHttpAuthSchemeProvider = /* @__PURE__ */ __name((authParameters) => { + const endpoint = defaultEndpointResolver6(authParameters); + const authSchemes = endpoint.properties?.authSchemes; + if (!authSchemes) { + return defaultHttpAuthSchemeResolver(authParameters); + } + const options = []; + for (const scheme of authSchemes) { + const { name: resolvedName, properties = {}, ...rest } = scheme; + const name2 = resolvedName.toLowerCase(); + if (resolvedName !== name2) { + console.warn(`HttpAuthScheme has been normalized with lowercasing: '${resolvedName}' to '${name2}'`); + } + let schemeId; + if (name2 === "sigv4a") { + schemeId = "aws.auth#sigv4a"; + const sigv4Present = authSchemes.find((s3) => { + const name3 = s3.name.toLowerCase(); + return name3 !== "sigv4a" && name3.startsWith("sigv4"); + }); + if (SignatureV4MultiRegion3.sigv4aDependency() === "none" && sigv4Present) { + continue; + } + } else if (name2.startsWith("sigv4")) { + schemeId = "aws.auth#sigv4"; + } else { + throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${name2}'`); + } + const createOption = createHttpAuthOptionFunctions[schemeId]; + if (!createOption) { + throw new Error(`Could not find HttpAuthOption create function for '${schemeId}'`); + } + const option = createOption(authParameters); + option.schemeId = schemeId; + option.signingProperties = { ...option.signingProperties || {}, ...rest, ...properties }; + options.push(option); + } + return options; + }, "endpointRuleSetHttpAuthSchemeProvider"); + return endpointRuleSetHttpAuthSchemeProvider; + }, "createEndpointRuleSetHttpAuthSchemeProvider"); + var _defaultS3HttpAuthSchemeProvider = /* @__PURE__ */ __name((authParameters) => { + const options = []; + switch (authParameters.operation) { + default: { + options.push(createAwsAuthSigv4HttpAuthOption5(authParameters)); + options.push(createAwsAuthSigv4aHttpAuthOption2(authParameters)); + } + } + return options; + }, "_defaultS3HttpAuthSchemeProvider"); + var defaultS3HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider2(defaultEndpointResolver5, _defaultS3HttpAuthSchemeProvider, { + "aws.auth#sigv4": createAwsAuthSigv4HttpAuthOption5, + "aws.auth#sigv4a": createAwsAuthSigv4aHttpAuthOption2 + }); + var resolveHttpAuthSchemeConfig5 = /* @__PURE__ */ __name((config3) => { + const config_0 = resolveAwsSdkSigV4Config2(config3); + const config_1 = resolveAwsSdkSigV4AConfig2(config_0); + return Object.assign(config_1, { + authSchemePreference: normalizeProvider3(config3.authSchemePreference ?? []) + }); + }, "resolveHttpAuthSchemeConfig"); + var resolveClientEndpointParameters5 = /* @__PURE__ */ __name((options) => { + return Object.assign(options, { + useFipsEndpoint: options.useFipsEndpoint ?? false, + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + forcePathStyle: options.forcePathStyle ?? false, + useAccelerateEndpoint: options.useAccelerateEndpoint ?? false, + useGlobalEndpoint: options.useGlobalEndpoint ?? false, + disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false, + defaultSigningName: "s3", + clientContextParams: options.clientContextParams ?? {} + }); + }, "resolveClientEndpointParameters"); + var commonParams5 = { + ForcePathStyle: { type: "clientContextParams", name: "forcePathStyle" }, + UseArnRegion: { type: "clientContextParams", name: "useArnRegion" }, + DisableMultiRegionAccessPoints: { type: "clientContextParams", name: "disableMultiregionAccessPoints" }, + Accelerate: { type: "clientContextParams", name: "useAccelerateEndpoint" }, + DisableS3ExpressSessionAuth: { type: "clientContextParams", name: "disableS3ExpressSessionAuth" }, + UseGlobalEndpoint: { type: "builtInParams", name: "useGlobalEndpoint" }, + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + var command5 = makeBuilder2(commonParams5, "AmazonS3", "S3Client", getEndpointPlugin2); + var _ep05 = { + Bucket: { type: "contextParams", name: "Bucket" }, + Key: { type: "contextParams", name: "Key" } + }; + var _ep12 = { + DisableS3ExpressSessionAuth: { type: "staticContextParams", value: true }, + Bucket: { type: "contextParams", name: "Bucket" }, + Key: { type: "contextParams", name: "Key" }, + CopySource: { type: "contextParams", name: "CopySource" } + }; + var _ep2 = { + UseS3ExpressControlEndpoint: { type: "staticContextParams", value: true }, + DisableAccessPoints: { type: "staticContextParams", value: true }, + Bucket: { type: "contextParams", name: "Bucket" } + }; + var _ep3 = { + UseS3ExpressControlEndpoint: { type: "staticContextParams", value: true }, + Bucket: { type: "contextParams", name: "Bucket" } + }; + var _ep4 = { + DisableS3ExpressSessionAuth: { type: "staticContextParams", value: true }, + Bucket: { type: "contextParams", name: "Bucket" } + }; + var _ep5 = { + Bucket: { type: "contextParams", name: "Bucket" } + }; + var _ep6 = {}; + var _ep7 = { + UseS3ExpressControlEndpoint: { type: "staticContextParams", value: true } + }; + var _ep8 = { + Bucket: { type: "contextParams", name: "Bucket" }, + Prefix: { type: "contextParams", name: "Prefix" } + }; + var _ep9 = { + UseObjectLambdaEndpoint: { type: "staticContextParams", value: true } + }; + var _mw05 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getThrow200ExceptionsPlugin2(config3) + ], "_mw0"); + var _mw1 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getThrow200ExceptionsPlugin2(config3), + getSsecPlugin2(config3) + ], "_mw1"); + var _mw2 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getThrow200ExceptionsPlugin2(config3), + getLocationConstraintPlugin2(config3) + ], "_mw2"); + var _mw3 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestAlgorithmMember: { "httpHeader": "x-amz-sdk-checksum-algorithm", "name": "ChecksumAlgorithm" }, + requestChecksumRequired: true + }) + ], "_mw3"); + var _mw4 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [], "_mw4"); + var _mw5 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestAlgorithmMember: { "httpHeader": "x-amz-sdk-checksum-algorithm", "name": "ChecksumAlgorithm" }, + requestChecksumRequired: true + }), + getThrow200ExceptionsPlugin2(config3) + ], "_mw5"); + var _mw6 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestChecksumRequired: false, + requestValidationModeMember: "ChecksumMode", + responseAlgorithms: ["CRC64NVME", "CRC32", "CRC32C", "SHA256", "SHA1", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"] + }) + ], "_mw6"); + var _mw7 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestChecksumRequired: false, + requestValidationModeMember: "ChecksumMode", + responseAlgorithms: ["CRC64NVME", "CRC32", "CRC32C", "SHA256", "SHA1", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"] + }), + getSsecPlugin2(config3), + getS3ExpiresMiddlewarePlugin2(config3) + ], "_mw7"); + var _mw8 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getThrow200ExceptionsPlugin2(config3), + getSsecPlugin2(config3), + getS3ExpiresMiddlewarePlugin2(config3) + ], "_mw8"); + var _mw9 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestAlgorithmMember: { "httpHeader": "x-amz-sdk-checksum-algorithm", "name": "ChecksumAlgorithm" }, + requestChecksumRequired: false + }) + ], "_mw9"); + var _mw10 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestAlgorithmMember: { "httpHeader": "x-amz-sdk-checksum-algorithm", "name": "ChecksumAlgorithm" }, + requestChecksumRequired: false + }), + getThrow200ExceptionsPlugin2(config3) + ], "_mw10"); + var _mw11 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestAlgorithmMember: { "httpHeader": "x-amz-sdk-checksum-algorithm", "name": "ChecksumAlgorithm" }, + requestChecksumRequired: false + }), + getCheckContentLengthHeaderPlugin2(config3), + getThrow200ExceptionsPlugin2(config3), + getSsecPlugin2(config3) + ], "_mw11"); + var _mw12 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getSsecPlugin2(config3) + ], "_mw12"); + var _mw13 = /* @__PURE__ */ __name((Command2, cs, config3, o4) => [ + getFlexibleChecksumsPlugin2(config3, { + requestAlgorithmMember: { "httpHeader": "x-amz-sdk-checksum-algorithm", "name": "ChecksumAlgorithm" }, + requestChecksumRequired: false + }), + getThrow200ExceptionsPlugin2(config3), + getSsecPlugin2(config3) + ], "_mw13"); + var S3ServiceException = class _S3ServiceException extends ServiceException2 { + static { + __name(this, "S3ServiceException"); + } + static shapeId = "smithy.ts.sdk.synthetic.com.amazonaws.s3#S3ServiceException"; + constructor(options) { + super(options); + Object.setPrototypeOf(this, _S3ServiceException.prototype); + } + }; + var NoSuchUpload = class _NoSuchUpload extends S3ServiceException { + static { + __name(this, "NoSuchUpload"); + } + static shapeId = "com.amazonaws.s3#NoSuchUpload"; + name = "NoSuchUpload"; + $fault = "client"; + constructor(opts) { + super({ + name: "NoSuchUpload", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _NoSuchUpload.prototype); + } + }; + var AccessDenied = class _AccessDenied extends S3ServiceException { + static { + __name(this, "AccessDenied"); + } + static shapeId = "com.amazonaws.s3#AccessDenied"; + name = "AccessDenied"; + $fault = "client"; + constructor(opts) { + super({ + name: "AccessDenied", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AccessDenied.prototype); + } + }; + var ObjectNotInActiveTierError = class _ObjectNotInActiveTierError extends S3ServiceException { + static { + __name(this, "ObjectNotInActiveTierError"); + } + static shapeId = "com.amazonaws.s3#ObjectNotInActiveTierError"; + name = "ObjectNotInActiveTierError"; + $fault = "client"; + constructor(opts) { + super({ + name: "ObjectNotInActiveTierError", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ObjectNotInActiveTierError.prototype); + } + }; + var BucketAlreadyExists = class _BucketAlreadyExists extends S3ServiceException { + static { + __name(this, "BucketAlreadyExists"); + } + static shapeId = "com.amazonaws.s3#BucketAlreadyExists"; + name = "BucketAlreadyExists"; + $fault = "client"; + constructor(opts) { + super({ + name: "BucketAlreadyExists", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _BucketAlreadyExists.prototype); + } + }; + var BucketAlreadyOwnedByYou = class _BucketAlreadyOwnedByYou extends S3ServiceException { + static { + __name(this, "BucketAlreadyOwnedByYou"); + } + static shapeId = "com.amazonaws.s3#BucketAlreadyOwnedByYou"; + name = "BucketAlreadyOwnedByYou"; + $fault = "client"; + constructor(opts) { + super({ + name: "BucketAlreadyOwnedByYou", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _BucketAlreadyOwnedByYou.prototype); + } + }; + var NoSuchBucket = class _NoSuchBucket extends S3ServiceException { + static { + __name(this, "NoSuchBucket"); + } + static shapeId = "com.amazonaws.s3#NoSuchBucket"; + name = "NoSuchBucket"; + $fault = "client"; + constructor(opts) { + super({ + name: "NoSuchBucket", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _NoSuchBucket.prototype); + } + }; + var NoSuchKey = class _NoSuchKey extends S3ServiceException { + static { + __name(this, "NoSuchKey"); + } + static shapeId = "com.amazonaws.s3#NoSuchKey"; + name = "NoSuchKey"; + $fault = "client"; + constructor(opts) { + super({ + name: "NoSuchKey", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _NoSuchKey.prototype); + } + }; + var InvalidObjectState = class _InvalidObjectState extends S3ServiceException { + static { + __name(this, "InvalidObjectState"); + } + static shapeId = "com.amazonaws.s3#InvalidObjectState"; + name = "InvalidObjectState"; + $fault = "client"; + StorageClass; + AccessTier; + constructor(opts) { + super({ + name: "InvalidObjectState", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidObjectState.prototype); + this.StorageClass = opts.StorageClass; + this.AccessTier = opts.AccessTier; + } + }; + var NoSuchAnnotation = class _NoSuchAnnotation extends S3ServiceException { + static { + __name(this, "NoSuchAnnotation"); + } + static shapeId = "com.amazonaws.s3#NoSuchAnnotation"; + name = "NoSuchAnnotation"; + $fault = "client"; + constructor(opts) { + super({ + name: "NoSuchAnnotation", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _NoSuchAnnotation.prototype); + } + }; + var NotFound = class _NotFound extends S3ServiceException { + static { + __name(this, "NotFound"); + } + static shapeId = "com.amazonaws.s3#NotFound"; + name = "NotFound"; + $fault = "client"; + constructor(opts) { + super({ + name: "NotFound", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _NotFound.prototype); + } + }; + var InvalidPrefix = class _InvalidPrefix extends S3ServiceException { + static { + __name(this, "InvalidPrefix"); + } + static shapeId = "com.amazonaws.s3#InvalidPrefix"; + name = "InvalidPrefix"; + $fault = "client"; + constructor(opts) { + super({ + name: "InvalidPrefix", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidPrefix.prototype); + } + }; + var EncryptionTypeMismatch = class _EncryptionTypeMismatch extends S3ServiceException { + static { + __name(this, "EncryptionTypeMismatch"); + } + static shapeId = "com.amazonaws.s3#EncryptionTypeMismatch"; + name = "EncryptionTypeMismatch"; + $fault = "client"; + constructor(opts) { + super({ + name: "EncryptionTypeMismatch", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _EncryptionTypeMismatch.prototype); + } + }; + var InvalidRequest = class _InvalidRequest extends S3ServiceException { + static { + __name(this, "InvalidRequest"); + } + static shapeId = "com.amazonaws.s3#InvalidRequest"; + name = "InvalidRequest"; + $fault = "client"; + constructor(opts) { + super({ + name: "InvalidRequest", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidRequest.prototype); + } + }; + var InvalidWriteOffset = class _InvalidWriteOffset extends S3ServiceException { + static { + __name(this, "InvalidWriteOffset"); + } + static shapeId = "com.amazonaws.s3#InvalidWriteOffset"; + name = "InvalidWriteOffset"; + $fault = "client"; + constructor(opts) { + super({ + name: "InvalidWriteOffset", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidWriteOffset.prototype); + } + }; + var TooManyParts = class _TooManyParts extends S3ServiceException { + static { + __name(this, "TooManyParts"); + } + static shapeId = "com.amazonaws.s3#TooManyParts"; + name = "TooManyParts"; + $fault = "client"; + constructor(opts) { + super({ + name: "TooManyParts", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _TooManyParts.prototype); + } + }; + var AnnotationLimitExceeded = class _AnnotationLimitExceeded extends S3ServiceException { + static { + __name(this, "AnnotationLimitExceeded"); + } + static shapeId = "com.amazonaws.s3#AnnotationLimitExceeded"; + name = "AnnotationLimitExceeded"; + $fault = "client"; + constructor(opts) { + super({ + name: "AnnotationLimitExceeded", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AnnotationLimitExceeded.prototype); + } + }; + var AnnotationNameTooLong = class _AnnotationNameTooLong extends S3ServiceException { + static { + __name(this, "AnnotationNameTooLong"); + } + static shapeId = "com.amazonaws.s3#AnnotationNameTooLong"; + name = "AnnotationNameTooLong"; + $fault = "client"; + constructor(opts) { + super({ + name: "AnnotationNameTooLong", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AnnotationNameTooLong.prototype); + } + }; + var InvalidAnnotationName = class _InvalidAnnotationName extends S3ServiceException { + static { + __name(this, "InvalidAnnotationName"); + } + static shapeId = "com.amazonaws.s3#InvalidAnnotationName"; + name = "InvalidAnnotationName"; + $fault = "client"; + constructor(opts) { + super({ + name: "InvalidAnnotationName", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidAnnotationName.prototype); + } + }; + var UnsupportedMediaType = class _UnsupportedMediaType extends S3ServiceException { + static { + __name(this, "UnsupportedMediaType"); + } + static shapeId = "com.amazonaws.s3#UnsupportedMediaType"; + name = "UnsupportedMediaType"; + $fault = "client"; + constructor(opts) { + super({ + name: "UnsupportedMediaType", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _UnsupportedMediaType.prototype); + } + }; + var IdempotencyParameterMismatch = class _IdempotencyParameterMismatch extends S3ServiceException { + static { + __name(this, "IdempotencyParameterMismatch"); + } + static shapeId = "com.amazonaws.s3#IdempotencyParameterMismatch"; + name = "IdempotencyParameterMismatch"; + $fault = "client"; + constructor(opts) { + super({ + name: "IdempotencyParameterMismatch", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _IdempotencyParameterMismatch.prototype); + } + }; + var ObjectAlreadyInActiveTierError = class _ObjectAlreadyInActiveTierError extends S3ServiceException { + static { + __name(this, "ObjectAlreadyInActiveTierError"); + } + static shapeId = "com.amazonaws.s3#ObjectAlreadyInActiveTierError"; + name = "ObjectAlreadyInActiveTierError"; + $fault = "client"; + constructor(opts) { + super({ + name: "ObjectAlreadyInActiveTierError", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ObjectAlreadyInActiveTierError.prototype); + } + }; + var _A2 = "Account"; + var _AAO = "AnalyticsAndOperator"; + var _AC = "AccelerateConfiguration"; + var _ACL = "AccessControlList"; + var _ACL_ = "ACL"; + var _ACLn = "AnalyticsConfigurationList"; + var _ACP = "AccessControlPolicy"; + var _ACT = "AccessControlTranslation"; + var _ACn = "AnalyticsConfiguration"; + var _ACnn = "AnnotationCount"; + var _AD = "AccessDenied"; + var _ADb = "AbortDate"; + var _ADn = "AnnotationDirective"; + var _AE = "AnnotationEntry"; + var _AED = "AnalyticsExportDestination"; + var _AF = "AnalyticsFilter"; + var _AH = "AllowedHeaders"; + var _AHl = "AllowedHeader"; + var _AI = "AccountId"; + var _AIMU = "AbortIncompleteMultipartUpload"; + var _AKI2 = "AccessKeyId"; + var _AL = "AnnotationList"; + var _ALE = "AnnotationLimitExceeded"; + var _AM = "AllowedMethods"; + var _AMU = "AbortMultipartUpload"; + var _AMUO = "AbortMultipartUploadOutput"; + var _AMUR = "AbortMultipartUploadRequest"; + var _AMl = "AllowedMethod"; + var _AN = "AnnotationName"; + var _ANTL = "AnnotationNameTooLong"; + var _AO = "AllowedOrigins"; + var _AOl = "AllowedOrigin"; + var _AP = "AnnotationPayload"; + var _APA = "AccessPointAlias"; + var _APAc = "AccessPointArn"; + var _APn = "AnnotationPrefix"; + var _AQRD = "AllowQuotedRecordDelimiter"; + var _AR2 = "AcceptRanges"; + var _ARI2 = "AbortRuleId"; + var _AS = "AbacStatus"; + var _ASBD = "AnalyticsS3BucketDestination"; + var _ASSEBD = "ApplyServerSideEncryptionByDefault"; + var _ASr = "ArchiveStatus"; + var _AT3 = "AccessTier"; + var _ATC = "AnnotationTableConfiguration"; + var _ATCR = "AnnotationTableConfigurationResult"; + var _ATCU = "AnnotationTableConfigurationUpdates"; + var _An = "And"; + var _Ann = "Annotations"; + var _B = "Bucket"; + var _BA = "BucketArn"; + var _BAE = "BucketAlreadyExists"; + var _BAI = "BucketAccountId"; + var _BAOBY = "BucketAlreadyOwnedByYou"; + var _BET = "BlockedEncryptionTypes"; + var _BGR = "BypassGovernanceRetention"; + var _BI = "BucketInfo"; + var _BKE = "BucketKeyEnabled"; + var _BLC = "BucketLifecycleConfiguration"; + var _BLN = "BucketLocationName"; + var _BLS = "BucketLoggingStatus"; + var _BLT = "BucketLocationType"; + var _BN = "BucketNamespace"; + var _BNu = "BucketName"; + var _BP = "BytesProcessed"; + var _BPA = "BlockPublicAcls"; + var _BPP = "BlockPublicPolicy"; + var _BR = "BucketRegion"; + var _BRy = "BytesReturned"; + var _BS = "BytesScanned"; + var _Bo = "Body"; + var _Bu = "Buckets"; + var _C2 = "Checksum"; + var _CA2 = "ChecksumAlgorithm"; + var _CACL = "CannedACL"; + var _CB = "CreateBucket"; + var _CBC = "CreateBucketConfiguration"; + var _CBMC = "CreateBucketMetadataConfiguration"; + var _CBMCR = "CreateBucketMetadataConfigurationRequest"; + var _CBMTC = "CreateBucketMetadataTableConfiguration"; + var _CBMTCR = "CreateBucketMetadataTableConfigurationRequest"; + var _CBO = "CreateBucketOutput"; + var _CBR = "CreateBucketRequest"; + var _CC = "CacheControl"; + var _CCRC = "ChecksumCRC32"; + var _CCRCC = "ChecksumCRC32C"; + var _CCRCNVME = "ChecksumCRC64NVME"; + var _CC_ = "Cache-Control"; + var _CD = "CreationDate"; + var _CD_ = "Content-Disposition"; + var _CDo = "ContentDisposition"; + var _CE = "ContinuationEvent"; + var _CE_ = "Content-Encoding"; + var _CEo = "ContentEncoding"; + var _CF = "CloudFunction"; + var _CFC = "CloudFunctionConfiguration"; + var _CL = "ContentLanguage"; + var _CL_ = "Content-Language"; + var _CL__ = "Content-Length"; + var _CLo = "ContentLength"; + var _CM = "Content-MD5"; + var _CMD = "ChecksumMD5"; + var _CMDo = "ContentMD5"; + var _CMU = "CompletedMultipartUpload"; + var _CMUO = "CompleteMultipartUploadOutput"; + var _CMUOr = "CreateMultipartUploadOutput"; + var _CMUR = "CompleteMultipartUploadResult"; + var _CMURo = "CompleteMultipartUploadRequest"; + var _CMURr = "CreateMultipartUploadRequest"; + var _CMUo = "CompleteMultipartUpload"; + var _CMUr = "CreateMultipartUpload"; + var _CMh = "ChecksumMode"; + var _CO = "CopyObject"; + var _COO = "CopyObjectOutput"; + var _COR = "CopyObjectResult"; + var _CORSC = "CORSConfiguration"; + var _CORSR = "CORSRules"; + var _CORSRu = "CORSRule"; + var _CORo = "CopyObjectRequest"; + var _CP = "CommonPrefix"; + var _CPL = "CommonPrefixList"; + var _CPLo = "CompletedPartList"; + var _CPR = "CopyPartResult"; + var _CPo = "CompletedPart"; + var _CPom = "CommonPrefixes"; + var _CR = "ContentRange"; + var _CRSBA = "ConfirmRemoveSelfBucketAccess"; + var _CR_ = "Content-Range"; + var _CS2 = "ConfigurationState"; + var _CSHA = "ChecksumSHA1"; + var _CSHAh = "ChecksumSHA256"; + var _CSHAhe = "ChecksumSHA512"; + var _CSIM = "CopySourceIfMatch"; + var _CSIMS = "CopySourceIfModifiedSince"; + var _CSINM = "CopySourceIfNoneMatch"; + var _CSIUS = "CopySourceIfUnmodifiedSince"; + var _CSO = "CreateSessionOutput"; + var _CSR = "CreateSessionResult"; + var _CSRo = "CopySourceRange"; + var _CSRr = "CreateSessionRequest"; + var _CSSSECA = "CopySourceSSECustomerAlgorithm"; + var _CSSSECK = "CopySourceSSECustomerKey"; + var _CSSSECKMD = "CopySourceSSECustomerKeyMD5"; + var _CSV = "CSV"; + var _CSVI = "CopySourceVersionId"; + var _CSVIn = "CSVInput"; + var _CSVO = "CSVOutput"; + var _CSo = "CopySource"; + var _CSr = "CreateSession"; + var _CT2 = "ChecksumType"; + var _CT_ = "Content-Type"; + var _CTl = "ClientToken"; + var _CTo = "ContentType"; + var _CTom = "CompressionType"; + var _CTon = "ContinuationToken"; + var _CXXHASH = "ChecksumXXHASH64"; + var _CXXHASHh = "ChecksumXXHASH3"; + var _CXXHASHhe = "ChecksumXXHASH128"; + var _Co = "Condition"; + var _Cod = "Code"; + var _Com = "Comments"; + var _Con = "Contents"; + var _Cont = "Cont"; + var _Cr = "Credentials"; + var _D = "Days"; + var _DAI = "DaysAfterInitiation"; + var _DB = "DeleteBucket"; + var _DBAC = "DeleteBucketAnalyticsConfiguration"; + var _DBACR = "DeleteBucketAnalyticsConfigurationRequest"; + var _DBC = "DeleteBucketCors"; + var _DBCR = "DeleteBucketCorsRequest"; + var _DBE = "DeleteBucketEncryption"; + var _DBER = "DeleteBucketEncryptionRequest"; + var _DBIC = "DeleteBucketInventoryConfiguration"; + var _DBICR = "DeleteBucketInventoryConfigurationRequest"; + var _DBITC = "DeleteBucketIntelligentTieringConfiguration"; + var _DBITCR = "DeleteBucketIntelligentTieringConfigurationRequest"; + var _DBL = "DeleteBucketLifecycle"; + var _DBLR = "DeleteBucketLifecycleRequest"; + var _DBMC = "DeleteBucketMetadataConfiguration"; + var _DBMCR = "DeleteBucketMetadataConfigurationRequest"; + var _DBMCRe = "DeleteBucketMetricsConfigurationRequest"; + var _DBMCe = "DeleteBucketMetricsConfiguration"; + var _DBMTC = "DeleteBucketMetadataTableConfiguration"; + var _DBMTCR = "DeleteBucketMetadataTableConfigurationRequest"; + var _DBOC = "DeleteBucketOwnershipControls"; + var _DBOCR = "DeleteBucketOwnershipControlsRequest"; + var _DBP = "DeleteBucketPolicy"; + var _DBPR = "DeleteBucketPolicyRequest"; + var _DBR = "DeleteBucketRequest"; + var _DBRR = "DeleteBucketReplicationRequest"; + var _DBRe = "DeleteBucketReplication"; + var _DBT = "DeleteBucketTagging"; + var _DBTR = "DeleteBucketTaggingRequest"; + var _DBW = "DeleteBucketWebsite"; + var _DBWR = "DeleteBucketWebsiteRequest"; + var _DE = "DataExport"; + var _DEH = "DefaultEventHold"; + var _DIM = "DestinationIfMatch"; + var _DIMS = "DestinationIfModifiedSince"; + var _DINM = "DestinationIfNoneMatch"; + var _DIUS = "DestinationIfUnmodifiedSince"; + var _DM = "DeleteMarker"; + var _DME = "DeleteMarkerEntry"; + var _DMR = "DeleteMarkerReplication"; + var _DMVI = "DeleteMarkerVersionId"; + var _DMe = "DeleteMarkers"; + var _DN = "DisplayName"; + var _DO = "DeletedObject"; + var _DOA = "DeleteObjectAnnotation"; + var _DOAO = "DeleteObjectAnnotationOutput"; + var _DOAR = "DeleteObjectAnnotationRequest"; + var _DOO = "DeleteObjectOutput"; + var _DOOe = "DeleteObjectsOutput"; + var _DOR = "DeleteObjectRequest"; + var _DORe = "DeleteObjectsRequest"; + var _DOT = "DeleteObjectTagging"; + var _DOTO = "DeleteObjectTaggingOutput"; + var _DOTR = "DeleteObjectTaggingRequest"; + var _DOe = "DeletedObjects"; + var _DOel = "DeleteObject"; + var _DOele = "DeleteObjects"; + var _DPAB = "DeletePublicAccessBlock"; + var _DPABR = "DeletePublicAccessBlockRequest"; + var _DR = "DataRedundancy"; + var _DRe = "DefaultRetention"; + var _DRel = "DeleteResult"; + var _DRes = "DestinationResult"; + var _Da = "Date"; + var _De = "Delete"; + var _Del = "Deleted"; + var _Deli = "Delimiter"; + var _Des = "Destination"; + var _Desc = "Description"; + var _Det = "Details"; + var _E3 = "Error"; + var _EA = "EmailAddress"; + var _EBC = "EventBridgeConfiguration"; + var _EBO = "ExpectedBucketOwner"; + var _EC = "EncryptionConfiguration"; + var _ECr = "ErrorCode"; + var _ED = "ErrorDetails"; + var _EDr = "ErrorDocument"; + var _EE = "EndEvent"; + var _EH = "ExposeHeaders"; + var _EHD = "EventHoldDuration"; + var _EHv = "EventHold"; + var _EHx = "ExposeHeader"; + var _EM = "ErrorMessage"; + var _EODM = "ExpiredObjectDeleteMarker"; + var _EOR = "ExistingObjectReplication"; + var _ES = "ExpiresString"; + var _ESBO = "ExpectedSourceBucketOwner"; + var _ET = "ETag"; + var _ETL = "EncryptionTypeList"; + var _ETM = "EncryptionTypeMismatch"; + var _ETn = "EncryptionType"; + var _ETnc = "EncodingType"; + var _ETv = "EventThreshold"; + var _ETx = "ExpressionType"; + var _En = "Encryption"; + var _Ena = "Enabled"; + var _End = "End"; + var _Er = "Errors"; + var _Ev = "Events"; + var _Eve = "Event"; + var _Ex = "Expiration"; + var _Exp = "Expires"; + var _Expr = "Expression"; + var _F = "Filter"; + var _FD = "FieldDelimiter"; + var _FHI = "FileHeaderInfo"; + var _FO = "FetchOwner"; + var _FR = "FilterRule"; + var _FRL = "FilterRuleList"; + var _FRi = "FilterRules"; + var _Fi = "Field"; + var _Fo = "Format"; + var _Fr = "Frequency"; + var _G = "Grants"; + var _GBA = "GetBucketAbac"; + var _GBAC = "GetBucketAccelerateConfiguration"; + var _GBACO = "GetBucketAccelerateConfigurationOutput"; + var _GBACOe = "GetBucketAnalyticsConfigurationOutput"; + var _GBACR = "GetBucketAccelerateConfigurationRequest"; + var _GBACRe = "GetBucketAnalyticsConfigurationRequest"; + var _GBACe = "GetBucketAnalyticsConfiguration"; + var _GBAO = "GetBucketAbacOutput"; + var _GBAOe = "GetBucketAclOutput"; + var _GBAR = "GetBucketAbacRequest"; + var _GBARe = "GetBucketAclRequest"; + var _GBAe = "GetBucketAcl"; + var _GBC = "GetBucketCors"; + var _GBCO = "GetBucketCorsOutput"; + var _GBCR = "GetBucketCorsRequest"; + var _GBE = "GetBucketEncryption"; + var _GBEO = "GetBucketEncryptionOutput"; + var _GBER = "GetBucketEncryptionRequest"; + var _GBIC = "GetBucketInventoryConfiguration"; + var _GBICO = "GetBucketInventoryConfigurationOutput"; + var _GBICR = "GetBucketInventoryConfigurationRequest"; + var _GBITC = "GetBucketIntelligentTieringConfiguration"; + var _GBITCO = "GetBucketIntelligentTieringConfigurationOutput"; + var _GBITCR = "GetBucketIntelligentTieringConfigurationRequest"; + var _GBL = "GetBucketLocation"; + var _GBLC = "GetBucketLifecycleConfiguration"; + var _GBLCO = "GetBucketLifecycleConfigurationOutput"; + var _GBLCR = "GetBucketLifecycleConfigurationRequest"; + var _GBLO = "GetBucketLocationOutput"; + var _GBLOe = "GetBucketLoggingOutput"; + var _GBLR = "GetBucketLocationRequest"; + var _GBLRe = "GetBucketLoggingRequest"; + var _GBLe = "GetBucketLogging"; + var _GBMC = "GetBucketMetadataConfiguration"; + var _GBMCO = "GetBucketMetadataConfigurationOutput"; + var _GBMCOe = "GetBucketMetricsConfigurationOutput"; + var _GBMCR = "GetBucketMetadataConfigurationResult"; + var _GBMCRe = "GetBucketMetadataConfigurationRequest"; + var _GBMCRet = "GetBucketMetricsConfigurationRequest"; + var _GBMCe = "GetBucketMetricsConfiguration"; + var _GBMTC = "GetBucketMetadataTableConfiguration"; + var _GBMTCO = "GetBucketMetadataTableConfigurationOutput"; + var _GBMTCR = "GetBucketMetadataTableConfigurationResult"; + var _GBMTCRe = "GetBucketMetadataTableConfigurationRequest"; + var _GBNC = "GetBucketNotificationConfiguration"; + var _GBNCR = "GetBucketNotificationConfigurationRequest"; + var _GBOC = "GetBucketOwnershipControls"; + var _GBOCO = "GetBucketOwnershipControlsOutput"; + var _GBOCR = "GetBucketOwnershipControlsRequest"; + var _GBP = "GetBucketPolicy"; + var _GBPO = "GetBucketPolicyOutput"; + var _GBPR = "GetBucketPolicyRequest"; + var _GBPS = "GetBucketPolicyStatus"; + var _GBPSO = "GetBucketPolicyStatusOutput"; + var _GBPSR = "GetBucketPolicyStatusRequest"; + var _GBR = "GetBucketReplication"; + var _GBRO = "GetBucketReplicationOutput"; + var _GBRP = "GetBucketRequestPayment"; + var _GBRPO = "GetBucketRequestPaymentOutput"; + var _GBRPR = "GetBucketRequestPaymentRequest"; + var _GBRR = "GetBucketReplicationRequest"; + var _GBT = "GetBucketTagging"; + var _GBTO = "GetBucketTaggingOutput"; + var _GBTR = "GetBucketTaggingRequest"; + var _GBV = "GetBucketVersioning"; + var _GBVO = "GetBucketVersioningOutput"; + var _GBVR = "GetBucketVersioningRequest"; + var _GBW = "GetBucketWebsite"; + var _GBWO = "GetBucketWebsiteOutput"; + var _GBWR = "GetBucketWebsiteRequest"; + var _GFC = "GrantFullControl"; + var _GJP = "GlacierJobParameters"; + var _GO = "GetObject"; + var _GOA = "GetObjectAcl"; + var _GOAO = "GetObjectAclOutput"; + var _GOAOe = "GetObjectAnnotationOutput"; + var _GOAOet = "GetObjectAttributesOutput"; + var _GOAP = "GetObjectAttributesParts"; + var _GOAR = "GetObjectAclRequest"; + var _GOARe = "GetObjectAnnotationRequest"; + var _GOARet = "GetObjectAttributesResponse"; + var _GOARetb = "GetObjectAttributesRequest"; + var _GOAe = "GetObjectAnnotation"; + var _GOAet = "GetObjectAttributes"; + var _GOLC = "GetObjectLockConfiguration"; + var _GOLCO = "GetObjectLockConfigurationOutput"; + var _GOLCR = "GetObjectLockConfigurationRequest"; + var _GOLH = "GetObjectLegalHold"; + var _GOLHO = "GetObjectLegalHoldOutput"; + var _GOLHR = "GetObjectLegalHoldRequest"; + var _GOO = "GetObjectOutput"; + var _GOR = "GetObjectRequest"; + var _GORO = "GetObjectRetentionOutput"; + var _GORR = "GetObjectRetentionRequest"; + var _GORe = "GetObjectRetention"; + var _GOT = "GetObjectTagging"; + var _GOTO = "GetObjectTaggingOutput"; + var _GOTOe = "GetObjectTorrentOutput"; + var _GOTR = "GetObjectTaggingRequest"; + var _GOTRe = "GetObjectTorrentRequest"; + var _GOTe = "GetObjectTorrent"; + var _GPAB = "GetPublicAccessBlock"; + var _GPABO = "GetPublicAccessBlockOutput"; + var _GPABR = "GetPublicAccessBlockRequest"; + var _GR = "GrantRead"; + var _GRACP = "GrantReadACP"; + var _GW = "GrantWrite"; + var _GWACP = "GrantWriteACP"; + var _Gr = "Grant"; + var _Gra = "Grantee"; + var _HB = "HeadBucket"; + var _HBO = "HeadBucketOutput"; + var _HBR = "HeadBucketRequest"; + var _HECRE = "HttpErrorCodeReturnedEquals"; + var _HN = "HostName"; + var _HO = "HeadObject"; + var _HOO = "HeadObjectOutput"; + var _HOR = "HeadObjectRequest"; + var _HRC = "HttpRedirectCode"; + var _I = "Id"; + var _IAN = "InvalidAnnotationName"; + var _IC = "InventoryConfiguration"; + var _ICL = "InventoryConfigurationList"; + var _ID = "ID"; + var _IDn = "IndexDocument"; + var _IDnv = "InventoryDestination"; + var _IE = "IsEnabled"; + var _IEn = "InventoryEncryption"; + var _IF = "InventoryFilter"; + var _IL = "IsLatest"; + var _IM = "IfMatch"; + var _IMIT = "IfMatchInitiatedTime"; + var _IMLMT = "IfMatchLastModifiedTime"; + var _IMS = "IfMatchSize"; + var _IMS_ = "If-Modified-Since"; + var _IMSf = "IfModifiedSince"; + var _IMUR = "InitiateMultipartUploadResult"; + var _IM_ = "If-Match"; + var _INM = "IfNoneMatch"; + var _INM_ = "If-None-Match"; + var _IOF = "InventoryOptionalFields"; + var _IOS = "InvalidObjectState"; + var _IOV = "IncludedObjectVersions"; + var _IP = "InvalidPrefix"; + var _IPA = "IgnorePublicAcls"; + var _IPM = "IdempotencyParameterMismatch"; + var _IPs = "IsPublic"; + var _IR = "InvalidRequest"; + var _IRIP = "IsRestoreInProgress"; + var _IS = "InputSerialization"; + var _ISBD = "InventoryS3BucketDestination"; + var _ISn = "InventorySchedule"; + var _IT2 = "IsTruncated"; + var _ITAO = "IntelligentTieringAndOperator"; + var _ITC = "IntelligentTieringConfiguration"; + var _ITCL = "IntelligentTieringConfigurationList"; + var _ITCR = "InventoryTableConfigurationResult"; + var _ITCU = "InventoryTableConfigurationUpdates"; + var _ITCn = "InventoryTableConfiguration"; + var _ITF = "IntelligentTieringFilter"; + var _IUS = "IfUnmodifiedSince"; + var _IUS_ = "If-Unmodified-Since"; + var _IWO = "InvalidWriteOffset"; + var _In = "Initiator"; + var _Ini = "Initiated"; + var _JSON = "JSON"; + var _JSONI = "JSONInput"; + var _JSONO = "JSONOutput"; + var _JTC = "JournalTableConfiguration"; + var _JTCR = "JournalTableConfigurationResult"; + var _JTCU = "JournalTableConfigurationUpdates"; + var _K2 = "Key"; + var _KC = "KeyCount"; + var _KI = "KeyId"; + var _KKA = "KmsKeyArn"; + var _KM = "KeyMarker"; + var _KMSC = "KMSContext"; + var _KMSKA = "KMSKeyArn"; + var _KMSKI = "KMSKeyId"; + var _KMSMKID = "KMSMasterKeyID"; + var _KPE = "KeyPrefixEquals"; + var _L = "Location"; + var _LAMBR = "ListAllMyBucketsResult"; + var _LAMDBR = "ListAllMyDirectoryBucketsResult"; + var _LB = "ListBuckets"; + var _LBAC = "ListBucketAnalyticsConfigurations"; + var _LBACO = "ListBucketAnalyticsConfigurationsOutput"; + var _LBACR = "ListBucketAnalyticsConfigurationResult"; + var _LBACRi = "ListBucketAnalyticsConfigurationsRequest"; + var _LBIC = "ListBucketInventoryConfigurations"; + var _LBICO = "ListBucketInventoryConfigurationsOutput"; + var _LBICR = "ListBucketInventoryConfigurationsRequest"; + var _LBITC = "ListBucketIntelligentTieringConfigurations"; + var _LBITCO = "ListBucketIntelligentTieringConfigurationsOutput"; + var _LBITCR = "ListBucketIntelligentTieringConfigurationsRequest"; + var _LBMC = "ListBucketMetricsConfigurations"; + var _LBMCO = "ListBucketMetricsConfigurationsOutput"; + var _LBMCR = "ListBucketMetricsConfigurationsRequest"; + var _LBO = "ListBucketsOutput"; + var _LBR = "ListBucketsRequest"; + var _LBRi = "ListBucketResult"; + var _LC = "LocationConstraint"; + var _LCi = "LifecycleConfiguration"; + var _LDB = "ListDirectoryBuckets"; + var _LDBO = "ListDirectoryBucketsOutput"; + var _LDBR = "ListDirectoryBucketsRequest"; + var _LE = "LoggingEnabled"; + var _LEi = "LifecycleExpiration"; + var _LFA = "LambdaFunctionArn"; + var _LFC = "LambdaFunctionConfiguration"; + var _LFCL = "LambdaFunctionConfigurationList"; + var _LFCa = "LambdaFunctionConfigurations"; + var _LH = "LegalHold"; + var _LI = "LocationInfo"; + var _LICR = "ListInventoryConfigurationsResult"; + var _LM = "LastModified"; + var _LMCR = "ListMetricsConfigurationsResult"; + var _LMT = "LastModifiedTime"; + var _LMU = "ListMultipartUploads"; + var _LMUO = "ListMultipartUploadsOutput"; + var _LMUR = "ListMultipartUploadsResult"; + var _LMURi = "ListMultipartUploadsRequest"; + var _LM_ = "Last-Modified"; + var _LO = "ListObjects"; + var _LOA = "ListObjectAnnotations"; + var _LOAO = "ListObjectAnnotationsOutput"; + var _LOAR = "ListObjectAnnotationsRequest"; + var _LOO = "ListObjectsOutput"; + var _LOR = "ListObjectsRequest"; + var _LOV = "ListObjectsV2"; + var _LOVO = "ListObjectsV2Output"; + var _LOVOi = "ListObjectVersionsOutput"; + var _LOVR = "ListObjectsV2Request"; + var _LOVRi = "ListObjectVersionsRequest"; + var _LOVi = "ListObjectVersions"; + var _LP = "ListParts"; + var _LPO = "ListPartsOutput"; + var _LPR = "ListPartsResult"; + var _LPRi = "ListPartsRequest"; + var _LR = "LifecycleRule"; + var _LRAO = "LifecycleRuleAndOperator"; + var _LRF = "LifecycleRuleFilter"; + var _LRi = "LifecycleRules"; + var _LVR = "ListVersionsResult"; + var _M = "Metadata"; + var _MAO = "MetricsAndOperator"; + var _MAR = "MaxAnnotationResults"; + var _MAS = "MaxAgeSeconds"; + var _MB = "MaxBuckets"; + var _MC = "MetadataConfiguration"; + var _MCL = "MetricsConfigurationList"; + var _MCR = "MetadataConfigurationResult"; + var _MCe = "MetricsConfiguration"; + var _MD = "MetadataDirective"; + var _MDB = "MaxDirectoryBuckets"; + var _MDf = "MfaDelete"; + var _ME = "MetadataEntry"; + var _MF = "MetricsFilter"; + var _MFA = "MFA"; + var _MFAD = "MFADelete"; + var _MK = "MaxKeys"; + var _MM = "MissingMeta"; + var _MOS = "MpuObjectSize"; + var _MP = "MaxParts"; + var _MTC = "MetadataTableConfiguration"; + var _MTCR = "MetadataTableConfigurationResult"; + var _MTEC = "MetadataTableEncryptionConfiguration"; + var _MU = "MultipartUpload"; + var _MUL = "MultipartUploadList"; + var _MUa = "MaxUploads"; + var _Ma = "Marker"; + var _Me = "Metrics"; + var _Mes = "Message"; + var _Mi = "Minutes"; + var _Mo = "Mode"; + var _N = "Name"; + var _NC = "NotificationConfiguration"; + var _NCF = "NotificationConfigurationFilter"; + var _NCT = "NextContinuationToken"; + var _ND = "NoncurrentDays"; + var _NEKKAS = "NonEmptyKmsKeyArnString"; + var _NF = "NotFound"; + var _NKM = "NextKeyMarker"; + var _NM = "NextMarker"; + var _NNV = "NewerNoncurrentVersions"; + var _NPNM = "NextPartNumberMarker"; + var _NSA = "NoSuchAnnotation"; + var _NSB = "NoSuchBucket"; + var _NSK = "NoSuchKey"; + var _NSU = "NoSuchUpload"; + var _NUIM = "NextUploadIdMarker"; + var _NVE = "NoncurrentVersionExpiration"; + var _NVIM = "NextVersionIdMarker"; + var _NVT = "NoncurrentVersionTransitions"; + var _NVTL = "NoncurrentVersionTransitionList"; + var _NVTo = "NoncurrentVersionTransition"; + var _O = "Owner"; + var _OA = "ObjectAttributes"; + var _OAIATE = "ObjectAlreadyInActiveTierError"; + var _OC = "OwnershipControls"; + var _OCR = "OwnershipControlsRule"; + var _OCRw = "OwnershipControlsRules"; + var _OE = "ObjectEncryption"; + var _OF = "OptionalFields"; + var _OI = "ObjectIdentifier"; + var _OIL = "ObjectIdentifierList"; + var _OIM = "ObjectIfMatch"; + var _OL = "OutputLocation"; + var _OLC = "ObjectLockConfiguration"; + var _OLE = "ObjectLockEnabled"; + var _OLEFB = "ObjectLockEnabledForBucket"; + var _OLEH = "ObjectLockEventHold"; + var _OLEHDD = "ObjectLockEventHoldDurationDays"; + var _OLEHDY = "ObjectLockEventHoldDurationYears"; + var _OLLH = "ObjectLockLegalHold"; + var _OLLHS = "ObjectLockLegalHoldStatus"; + var _OLM = "ObjectLockMode"; + var _OLR = "ObjectLockRetention"; + var _OLRUD = "ObjectLockRetainUntilDate"; + var _OLRb = "ObjectLockRule"; + var _OLb = "ObjectList"; + var _ONIATE = "ObjectNotInActiveTierError"; + var _OO = "ObjectOwnership"; + var _OOA = "OptionalObjectAttributes"; + var _OP = "ObjectParts"; + var _OPb = "ObjectPart"; + var _OS = "ObjectSize"; + var _OSGT = "ObjectSizeGreaterThan"; + var _OSLT = "ObjectSizeLessThan"; + var _OSV = "OutputSchemaVersion"; + var _OSu = "OutputSerialization"; + var _OV = "ObjectVersion"; + var _OVI = "ObjectVersionId"; + var _OVL = "ObjectVersionList"; + var _Ob = "Objects"; + var _Obj = "Object"; + var _P2 = "Prefix"; + var _PABC = "PublicAccessBlockConfiguration"; + var _PBA = "PutBucketAbac"; + var _PBAC = "PutBucketAccelerateConfiguration"; + var _PBACR = "PutBucketAccelerateConfigurationRequest"; + var _PBACRu = "PutBucketAnalyticsConfigurationRequest"; + var _PBACu = "PutBucketAnalyticsConfiguration"; + var _PBAR = "PutBucketAbacRequest"; + var _PBARu = "PutBucketAclRequest"; + var _PBAu = "PutBucketAcl"; + var _PBC = "PutBucketCors"; + var _PBCR = "PutBucketCorsRequest"; + var _PBE = "PutBucketEncryption"; + var _PBER = "PutBucketEncryptionRequest"; + var _PBIC = "PutBucketInventoryConfiguration"; + var _PBICR = "PutBucketInventoryConfigurationRequest"; + var _PBITC = "PutBucketIntelligentTieringConfiguration"; + var _PBITCR = "PutBucketIntelligentTieringConfigurationRequest"; + var _PBL = "PutBucketLogging"; + var _PBLC = "PutBucketLifecycleConfiguration"; + var _PBLCO = "PutBucketLifecycleConfigurationOutput"; + var _PBLCR = "PutBucketLifecycleConfigurationRequest"; + var _PBLR = "PutBucketLoggingRequest"; + var _PBMC = "PutBucketMetricsConfiguration"; + var _PBMCR = "PutBucketMetricsConfigurationRequest"; + var _PBNC = "PutBucketNotificationConfiguration"; + var _PBNCR = "PutBucketNotificationConfigurationRequest"; + var _PBOC = "PutBucketOwnershipControls"; + var _PBOCR = "PutBucketOwnershipControlsRequest"; + var _PBP = "PutBucketPolicy"; + var _PBPR = "PutBucketPolicyRequest"; + var _PBR = "PutBucketReplication"; + var _PBRP = "PutBucketRequestPayment"; + var _PBRPR = "PutBucketRequestPaymentRequest"; + var _PBRR = "PutBucketReplicationRequest"; + var _PBT = "PutBucketTagging"; + var _PBTR = "PutBucketTaggingRequest"; + var _PBV = "PutBucketVersioning"; + var _PBVR = "PutBucketVersioningRequest"; + var _PBW = "PutBucketWebsite"; + var _PBWR = "PutBucketWebsiteRequest"; + var _PC2 = "PartsCount"; + var _PDS = "PartitionDateSource"; + var _PE = "ProgressEvent"; + var _PI2 = "ParquetInput"; + var _PL = "PartsList"; + var _PN = "PartNumber"; + var _PNM = "PartNumberMarker"; + var _PO = "PutObject"; + var _POA = "PutObjectAcl"; + var _POAO = "PutObjectAclOutput"; + var _POAOu = "PutObjectAnnotationOutput"; + var _POAR = "PutObjectAclRequest"; + var _POARu = "PutObjectAnnotationRequest"; + var _POAu = "PutObjectAnnotation"; + var _POLC = "PutObjectLockConfiguration"; + var _POLCO = "PutObjectLockConfigurationOutput"; + var _POLCR = "PutObjectLockConfigurationRequest"; + var _POLH = "PutObjectLegalHold"; + var _POLHO = "PutObjectLegalHoldOutput"; + var _POLHR = "PutObjectLegalHoldRequest"; + var _POO = "PutObjectOutput"; + var _POR = "PutObjectRequest"; + var _PORO = "PutObjectRetentionOutput"; + var _PORR = "PutObjectRetentionRequest"; + var _PORu = "PutObjectRetention"; + var _POT = "PutObjectTagging"; + var _POTO = "PutObjectTaggingOutput"; + var _POTR = "PutObjectTaggingRequest"; + var _PP = "PartitionedPrefix"; + var _PPAB = "PutPublicAccessBlock"; + var _PPABR = "PutPublicAccessBlockRequest"; + var _PS = "PolicyStatus"; + var _Pa = "Parts"; + var _Par = "Part"; + var _Parq = "Parquet"; + var _Pay = "Payer"; + var _Payl = "Payload"; + var _Pe = "Permission"; + var _Po = "Policy"; + var _Pr2 = "Progress"; + var _Pri = "Priority"; + var _Pro = "Protocol"; + var _Q = "Quiet"; + var _QA = "QueueArn"; + var _QC = "QuoteCharacter"; + var _QCL = "QueueConfigurationList"; + var _QCu = "QueueConfigurations"; + var _QCue = "QueueConfiguration"; + var _QEC = "QuoteEscapeCharacter"; + var _QF = "QuoteFields"; + var _Qu = "Queue"; + var _R = "Role"; + var _RART = "RedirectAllRequestsTo"; + var _RC2 = "RequestCharged"; + var _RCC = "ResponseCacheControl"; + var _RCD = "ResponseContentDisposition"; + var _RCE = "ResponseContentEncoding"; + var _RCL = "ResponseContentLanguage"; + var _RCT = "ResponseContentType"; + var _RCe = "ReplicationConfiguration"; + var _RD = "RecordDelimiter"; + var _RE = "ResponseExpires"; + var _RED = "RestoreExpiryDate"; + var _REe = "RecordExpiration"; + var _REec = "RecordsEvent"; + var _RKKID = "ReplicaKmsKeyID"; + var _RKPW = "ReplaceKeyPrefixWith"; + var _RKW = "ReplaceKeyWith"; + var _RM = "ReplicaModifications"; + var _RO = "RenameObject"; + var _ROO = "RenameObjectOutput"; + var _ROOe = "RestoreObjectOutput"; + var _ROP = "RestoreOutputPath"; + var _ROR = "RenameObjectRequest"; + var _RORe = "RestoreObjectRequest"; + var _ROe = "RestoreObject"; + var _RP = "RequestPayer"; + var _RPB = "RestrictPublicBuckets"; + var _RPC = "RequestPaymentConfiguration"; + var _RPe = "RequestProgress"; + var _RR = "RoutingRules"; + var _RRAO = "ReplicationRuleAndOperator"; + var _RRF = "ReplicationRuleFilter"; + var _RRe = "ReplicationRule"; + var _RRep = "ReplicationRules"; + var _RReq = "RequestRoute"; + var _RRes = "RestoreRequest"; + var _RRo = "RoutingRule"; + var _RS = "ReplicationStatus"; + var _RSe = "RestoreStatus"; + var _RSen = "RenameSource"; + var _RT3 = "ReplicationTime"; + var _RTV = "ReplicationTimeValue"; + var _RTe = "RequestToken"; + var _RUD = "RetainUntilDate"; + var _Ra = "Range"; + var _Re = "Restore"; + var _Rec = "Records"; + var _Red = "Redirect"; + var _Ret = "Retention"; + var _Ru = "Rules"; + var _Rul = "Rule"; + var _S = "Status"; + var _SA = "StartAfter"; + var _SAK2 = "SecretAccessKey"; + var _SAs = "SseAlgorithm"; + var _SB = "StreamingBlob"; + var _SBD = "S3BucketDestination"; + var _SC = "StorageClass"; + var _SCA = "StorageClassAnalysis"; + var _SCADE = "StorageClassAnalysisDataExport"; + var _SCV = "SessionCredentialValue"; + var _SCe = "SessionCredentials"; + var _SCt = "StatusCode"; + var _SDV = "SkipDestinationValidation"; + var _SE = "StatsEvent"; + var _SIM = "SourceIfMatch"; + var _SIMS = "SourceIfModifiedSince"; + var _SINM = "SourceIfNoneMatch"; + var _SIUS = "SourceIfUnmodifiedSince"; + var _SK = "SSE-KMS"; + var _SKEO = "SseKmsEncryptedObjects"; + var _SKF = "S3KeyFilter"; + var _SKe = "S3Key"; + var _SL = "S3Location"; + var _SM = "SessionMode"; + var _SOC = "SelectObjectContent"; + var _SOCES = "SelectObjectContentEventStream"; + var _SOCO = "SelectObjectContentOutput"; + var _SOCR = "SelectObjectContentRequest"; + var _SP = "SelectParameters"; + var _SPi = "SimplePrefix"; + var _SR = "ScanRange"; + var _SS = "SSE-S3"; + var _SSC = "SourceSelectionCriteria"; + var _SSE = "ServerSideEncryption"; + var _SSEA = "SSEAlgorithm"; + var _SSEBD = "ServerSideEncryptionByDefault"; + var _SSEC = "ServerSideEncryptionConfiguration"; + var _SSECA = "SSECustomerAlgorithm"; + var _SSECK = "SSECustomerKey"; + var _SSECKMD = "SSECustomerKeyMD5"; + var _SSEKMS = "SSEKMS"; + var _SSEKMSE = "SSEKMSEncryption"; + var _SSEKMSEC = "SSEKMSEncryptionContext"; + var _SSEKMSKI = "SSEKMSKeyId"; + var _SSER = "ServerSideEncryptionRule"; + var _SSERe = "ServerSideEncryptionRules"; + var _SSES = "SSES3"; + var _ST2 = "SessionToken"; + var _STD = "S3TablesDestination"; + var _STDR = "S3TablesDestinationResult"; + var _S_ = "S3"; + var _Sc = "Schedule"; + var _Si = "Size"; + var _St = "Start"; + var _Sta = "Stats"; + var _Su = "Suffix"; + var _T2 = "Tags"; + var _TA = "TableArn"; + var _TAo = "TopicArn"; + var _TB = "TargetBucket"; + var _TBA = "TableBucketArn"; + var _TBT = "TableBucketType"; + var _TC2 = "TagCount"; + var _TCL = "TopicConfigurationList"; + var _TCo = "TopicConfigurations"; + var _TCop = "TopicConfiguration"; + var _TD = "TaggingDirective"; + var _TDMOS = "TransitionDefaultMinimumObjectSize"; + var _TG = "TargetGrants"; + var _TGa = "TargetGrant"; + var _TL = "TieringList"; + var _TLr = "TransitionList"; + var _TMP = "TooManyParts"; + var _TN = "TableName"; + var _TNa = "TableNamespace"; + var _TOKF = "TargetObjectKeyFormat"; + var _TP = "TargetPrefix"; + var _TPC = "TotalPartsCount"; + var _TS = "TableStatus"; + var _TSa = "TagSet"; + var _Ta2 = "Tag"; + var _Tag = "Tagging"; + var _Ti = "Tier"; + var _Tie = "Tierings"; + var _Tier = "Tiering"; + var _Tim = "Time"; + var _To = "Token"; + var _Top = "Topic"; + var _Tr = "Transitions"; + var _Tra = "Transition"; + var _Ty = "Type"; + var _U = "Uploads"; + var _UBMATC = "UpdateBucketMetadataAnnotationTableConfiguration"; + var _UBMATCR = "UpdateBucketMetadataAnnotationTableConfigurationRequest"; + var _UBMITC = "UpdateBucketMetadataInventoryTableConfiguration"; + var _UBMITCR = "UpdateBucketMetadataInventoryTableConfigurationRequest"; + var _UBMJTC = "UpdateBucketMetadataJournalTableConfiguration"; + var _UBMJTCR = "UpdateBucketMetadataJournalTableConfigurationRequest"; + var _UI = "UploadId"; + var _UIM = "UploadIdMarker"; + var _UM = "UserMetadata"; + var _UMT = "UnsupportedMediaType"; + var _UOE = "UpdateObjectEncryption"; + var _UOER = "UpdateObjectEncryptionRequest"; + var _UOERp = "UpdateObjectEncryptionResponse"; + var _UP = "UploadPart"; + var _UPC = "UploadPartCopy"; + var _UPCO = "UploadPartCopyOutput"; + var _UPCR = "UploadPartCopyRequest"; + var _UPO = "UploadPartOutput"; + var _UPR = "UploadPartRequest"; + var _URI = "URI"; + var _Up = "Upload"; + var _V2 = "Value"; + var _VC = "VersioningConfiguration"; + var _VI = "VersionId"; + var _VIM = "VersionIdMarker"; + var _Ve = "Versions"; + var _Ver = "Version"; + var _WC = "WebsiteConfiguration"; + var _WGOR = "WriteGetObjectResponse"; + var _WGORR = "WriteGetObjectResponseRequest"; + var _WOB = "WriteOffsetBytes"; + var _WRL = "WebsiteRedirectLocation"; + var _Y = "Years"; + var _aN = "annotationName"; + var _ap = "annotation-prefix"; + var _ar = "accept-ranges"; + var _br = "bucket-region"; + var _c5 = "client"; + var _ct = "continuation-token"; + var _d = "delimiter"; + var _e5 = "error"; + var _eP = "eventPayload"; + var _en = "endpoint"; + var _et = "encoding-type"; + var _fo = "fetch-owner"; + var _h4 = "http"; + var _hC = "httpChecksum"; + var _hE5 = "httpError"; + var _hH2 = "httpHeader"; + var _hL = "hostLabel"; + var _hP = "httpPayload"; + var _hPH = "httpPrefixHeaders"; + var _hQ2 = "httpQuery"; + var _hi = "http://www.w3.org/2001/XMLSchema-instance"; + var _i = "id"; + var _iT3 = "idempotencyToken"; + var _km = "key-marker"; + var _m4 = "marker"; + var _mar = "max-annotation-results"; + var _mb = "max-buckets"; + var _mdb = "max-directory-buckets"; + var _mk = "max-keys"; + var _mp = "max-parts"; + var _mu = "max-uploads"; + var _p = "prefix"; + var _pN = "partNumber"; + var _pnm = "part-number-marker"; + var _rcc = "response-cache-control"; + var _rcd = "response-content-disposition"; + var _rce = "response-content-encoding"; + var _rcl = "response-content-language"; + var _rct = "response-content-type"; + var _re = "response-expires"; + var _s5 = "smithy.ts.sdk.synthetic.com.amazonaws.s3"; + var _sa = "start-after"; + var _st = "streaming"; + var _uI = "uploadId"; + var _uim = "upload-id-marker"; + var _vI = "versionId"; + var _vim = "version-id-marker"; + var _x = "xsi"; + var _xA = "xmlAttribute"; + var _xF = "xmlFlattened"; + var _xN = "xmlName"; + var _xNm = "xmlNamespace"; + var _xaa = "x-amz-acl"; + var _xaad = "x-amz-abort-date"; + var _xaapa = "x-amz-access-point-alias"; + var _xaari = "x-amz-abort-rule-id"; + var _xaas = "x-amz-archive-status"; + var _xaba = "x-amz-bucket-arn"; + var _xabgr = "x-amz-bypass-governance-retention"; + var _xabln = "x-amz-bucket-location-name"; + var _xablt = "x-amz-bucket-location-type"; + var _xabn = "x-amz-bucket-namespace"; + var _xabole = "x-amz-bucket-object-lock-enabled"; + var _xabolt = "x-amz-bucket-object-lock-token"; + var _xabr = "x-amz-bucket-region"; + var _xaca = "x-amz-checksum-algorithm"; + var _xacc = "x-amz-checksum-crc32"; + var _xacc_ = "x-amz-checksum-crc32c"; + var _xacc__ = "x-amz-checksum-crc64nvme"; + var _xacm = "x-amz-checksum-md5"; + var _xacm_ = "x-amz-checksum-mode"; + var _xacrsba = "x-amz-confirm-remove-self-bucket-access"; + var _xacs = "x-amz-checksum-sha1"; + var _xacs_ = "x-amz-checksum-sha256"; + var _xacs__ = "x-amz-checksum-sha512"; + var _xacs___ = "x-amz-copy-source"; + var _xacsim = "x-amz-copy-source-if-match"; + var _xacsims = "x-amz-copy-source-if-modified-since"; + var _xacsinm = "x-amz-copy-source-if-none-match"; + var _xacsius = "x-amz-copy-source-if-unmodified-since"; + var _xacsm = "x-amz-create-session-mode"; + var _xacsr = "x-amz-copy-source-range"; + var _xacssseca = "x-amz-copy-source-server-side-encryption-customer-algorithm"; + var _xacssseck = "x-amz-copy-source-server-side-encryption-customer-key"; + var _xacssseckM = "x-amz-copy-source-server-side-encryption-customer-key-MD5"; + var _xacsvi = "x-amz-copy-source-version-id"; + var _xact = "x-amz-checksum-type"; + var _xact_ = "x-amz-client-token"; + var _xacx = "x-amz-checksum-xxhash64"; + var _xacx_ = "x-amz-checksum-xxhash3"; + var _xacx__ = "x-amz-checksum-xxhash128"; + var _xadm = "x-amz-delete-marker"; + var _xae = "x-amz-expiration"; + var _xaebo = "x-amz-expected-bucket-owner"; + var _xafec = "x-amz-fwd-error-code"; + var _xafem = "x-amz-fwd-error-message"; + var _xafhCC = "x-amz-fwd-header-Cache-Control"; + var _xafhCD = "x-amz-fwd-header-Content-Disposition"; + var _xafhCE = "x-amz-fwd-header-Content-Encoding"; + var _xafhCL = "x-amz-fwd-header-Content-Language"; + var _xafhCR = "x-amz-fwd-header-Content-Range"; + var _xafhCT = "x-amz-fwd-header-Content-Type"; + var _xafhE = "x-amz-fwd-header-ETag"; + var _xafhE_ = "x-amz-fwd-header-Expires"; + var _xafhLM = "x-amz-fwd-header-Last-Modified"; + var _xafhar = "x-amz-fwd-header-accept-ranges"; + var _xafhxacc = "x-amz-fwd-header-x-amz-checksum-crc32"; + var _xafhxacc_ = "x-amz-fwd-header-x-amz-checksum-crc32c"; + var _xafhxacc__ = "x-amz-fwd-header-x-amz-checksum-crc64nvme"; + var _xafhxacm = "x-amz-fwd-header-x-amz-checksum-md5"; + var _xafhxacs = "x-amz-fwd-header-x-amz-checksum-sha1"; + var _xafhxacs_ = "x-amz-fwd-header-x-amz-checksum-sha256"; + var _xafhxacs__ = "x-amz-fwd-header-x-amz-checksum-sha512"; + var _xafhxacx = "x-amz-fwd-header-x-amz-checksum-xxhash64"; + var _xafhxacx_ = "x-amz-fwd-header-x-amz-checksum-xxhash3"; + var _xafhxacx__ = "x-amz-fwd-header-x-amz-checksum-xxhash128"; + var _xafhxadm = "x-amz-fwd-header-x-amz-delete-marker"; + var _xafhxae = "x-amz-fwd-header-x-amz-expiration"; + var _xafhxamm = "x-amz-fwd-header-x-amz-missing-meta"; + var _xafhxampc = "x-amz-fwd-header-x-amz-mp-parts-count"; + var _xafhxaollh = "x-amz-fwd-header-x-amz-object-lock-legal-hold"; + var _xafhxaolm = "x-amz-fwd-header-x-amz-object-lock-mode"; + var _xafhxaolrud = "x-amz-fwd-header-x-amz-object-lock-retain-until-date"; + var _xafhxar = "x-amz-fwd-header-x-amz-restore"; + var _xafhxarc = "x-amz-fwd-header-x-amz-request-charged"; + var _xafhxars = "x-amz-fwd-header-x-amz-replication-status"; + var _xafhxasc = "x-amz-fwd-header-x-amz-storage-class"; + var _xafhxasse = "x-amz-fwd-header-x-amz-server-side-encryption"; + var _xafhxasseakki = "x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id"; + var _xafhxassebke = "x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled"; + var _xafhxasseca = "x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm"; + var _xafhxasseckM = "x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5"; + var _xafhxatc = "x-amz-fwd-header-x-amz-tagging-count"; + var _xafhxavi = "x-amz-fwd-header-x-amz-version-id"; + var _xafs = "x-amz-fwd-status"; + var _xagfc = "x-amz-grant-full-control"; + var _xagr = "x-amz-grant-read"; + var _xagra = "x-amz-grant-read-acp"; + var _xagw = "x-amz-grant-write"; + var _xagwa = "x-amz-grant-write-acp"; + var _xaimit = "x-amz-if-match-initiated-time"; + var _xaimlmt = "x-amz-if-match-last-modified-time"; + var _xaims = "x-amz-if-match-size"; + var _xam = "x-amz-meta-"; + var _xam_ = "x-amz-mfa"; + var _xamd = "x-amz-metadata-directive"; + var _xamm = "x-amz-missing-meta"; + var _xamos = "x-amz-mp-object-size"; + var _xamp = "x-amz-max-parts"; + var _xampc = "x-amz-mp-parts-count"; + var _xaoa = "x-amz-object-attributes"; + var _xaoad = "x-amz-object-annotation-directive"; + var _xaoim = "x-amz-object-if-match"; + var _xaoleh = "x-amz-object-lock-event-hold"; + var _xaolehdd = "x-amz-object-lock-event-hold-duration-days"; + var _xaolehdy = "x-amz-object-lock-event-hold-duration-years"; + var _xaollh = "x-amz-object-lock-legal-hold"; + var _xaolm = "x-amz-object-lock-mode"; + var _xaolrud = "x-amz-object-lock-retain-until-date"; + var _xaoo = "x-amz-object-ownership"; + var _xaooa = "x-amz-optional-object-attributes"; + var _xaos = "x-amz-object-size"; + var _xaovi = "x-amz-object-version-id"; + var _xapnm = "x-amz-part-number-marker"; + var _xar = "x-amz-restore"; + var _xarc = "x-amz-request-charged"; + var _xarop = "x-amz-restore-output-path"; + var _xarp = "x-amz-request-payer"; + var _xarr = "x-amz-request-route"; + var _xars = "x-amz-replication-status"; + var _xars_ = "x-amz-rename-source"; + var _xarsim = "x-amz-rename-source-if-match"; + var _xarsims = "x-amz-rename-source-if-modified-since"; + var _xarsinm = "x-amz-rename-source-if-none-match"; + var _xarsius = "x-amz-rename-source-if-unmodified-since"; + var _xart = "x-amz-request-token"; + var _xasc = "x-amz-storage-class"; + var _xasca = "x-amz-sdk-checksum-algorithm"; + var _xasdv = "x-amz-skip-destination-validation"; + var _xasebo = "x-amz-source-expected-bucket-owner"; + var _xasse = "x-amz-server-side-encryption"; + var _xasseakki = "x-amz-server-side-encryption-aws-kms-key-id"; + var _xassebke = "x-amz-server-side-encryption-bucket-key-enabled"; + var _xassec = "x-amz-server-side-encryption-context"; + var _xasseca = "x-amz-server-side-encryption-customer-algorithm"; + var _xasseck = "x-amz-server-side-encryption-customer-key"; + var _xasseckM = "x-amz-server-side-encryption-customer-key-MD5"; + var _xat = "x-amz-tagging"; + var _xatc = "x-amz-tagging-count"; + var _xatd = "x-amz-tagging-directive"; + var _xatdmos = "x-amz-transition-default-minimum-object-size"; + var _xavi = "x-amz-version-id"; + var _xawob = "x-amz-write-offset-bytes"; + var _xawrl = "x-amz-website-redirect-location"; + var _xs = "xsi:type"; + var n05 = "com.amazonaws.s3"; + var _s_registry5 = new TypeRegistry2(_s5); + var S3ServiceException$ = [-3, _s5, "S3ServiceException", 0, [], []]; + _s_registry5.registerError(S3ServiceException$, S3ServiceException); + var n0_registry5 = new TypeRegistry2(n05); + var AccessDenied$ = [ + -3, + n05, + _AD, + { [_e5]: _c5, [_hE5]: 403 }, + [], + [] + ]; + n0_registry5.registerError(AccessDenied$, AccessDenied); + var AnnotationLimitExceeded$ = [ + -3, + n05, + _ALE, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(AnnotationLimitExceeded$, AnnotationLimitExceeded); + var AnnotationNameTooLong$ = [ + -3, + n05, + _ANTL, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(AnnotationNameTooLong$, AnnotationNameTooLong); + var BucketAlreadyExists$ = [ + -3, + n05, + _BAE, + { [_e5]: _c5, [_hE5]: 409 }, + [], + [] + ]; + n0_registry5.registerError(BucketAlreadyExists$, BucketAlreadyExists); + var BucketAlreadyOwnedByYou$ = [ + -3, + n05, + _BAOBY, + { [_e5]: _c5, [_hE5]: 409 }, + [], + [] + ]; + n0_registry5.registerError(BucketAlreadyOwnedByYou$, BucketAlreadyOwnedByYou); + var EncryptionTypeMismatch$ = [ + -3, + n05, + _ETM, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(EncryptionTypeMismatch$, EncryptionTypeMismatch); + var IdempotencyParameterMismatch$ = [ + -3, + n05, + _IPM, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(IdempotencyParameterMismatch$, IdempotencyParameterMismatch); + var InvalidAnnotationName$ = [ + -3, + n05, + _IAN, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(InvalidAnnotationName$, InvalidAnnotationName); + var InvalidObjectState$ = [ + -3, + n05, + _IOS, + { [_e5]: _c5, [_hE5]: 403 }, + [_SC, _AT3], + [0, 0] + ]; + n0_registry5.registerError(InvalidObjectState$, InvalidObjectState); + var InvalidPrefix$ = [ + -3, + n05, + _IP, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(InvalidPrefix$, InvalidPrefix); + var InvalidRequest$ = [ + -3, + n05, + _IR, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(InvalidRequest$, InvalidRequest); + var InvalidWriteOffset$ = [ + -3, + n05, + _IWO, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(InvalidWriteOffset$, InvalidWriteOffset); + var NoSuchAnnotation$ = [ + -3, + n05, + _NSA, + { [_e5]: _c5, [_hE5]: 404 }, + [], + [] + ]; + n0_registry5.registerError(NoSuchAnnotation$, NoSuchAnnotation); + var NoSuchBucket$ = [ + -3, + n05, + _NSB, + { [_e5]: _c5, [_hE5]: 404 }, + [], + [] + ]; + n0_registry5.registerError(NoSuchBucket$, NoSuchBucket); + var NoSuchKey$ = [ + -3, + n05, + _NSK, + { [_e5]: _c5, [_hE5]: 404 }, + [], + [] + ]; + n0_registry5.registerError(NoSuchKey$, NoSuchKey); + var NoSuchUpload$ = [ + -3, + n05, + _NSU, + { [_e5]: _c5, [_hE5]: 404 }, + [], + [] + ]; + n0_registry5.registerError(NoSuchUpload$, NoSuchUpload); + var NotFound$ = [ + -3, + n05, + _NF, + { [_e5]: _c5 }, + [], + [] + ]; + n0_registry5.registerError(NotFound$, NotFound); + var ObjectAlreadyInActiveTierError$ = [ + -3, + n05, + _OAIATE, + { [_e5]: _c5, [_hE5]: 403 }, + [], + [] + ]; + n0_registry5.registerError(ObjectAlreadyInActiveTierError$, ObjectAlreadyInActiveTierError); + var ObjectNotInActiveTierError$ = [ + -3, + n05, + _ONIATE, + { [_e5]: _c5, [_hE5]: 403 }, + [], + [] + ]; + n0_registry5.registerError(ObjectNotInActiveTierError$, ObjectNotInActiveTierError); + var TooManyParts$ = [ + -3, + n05, + _TMP, + { [_e5]: _c5, [_hE5]: 400 }, + [], + [] + ]; + n0_registry5.registerError(TooManyParts$, TooManyParts); + var UnsupportedMediaType$ = [ + -3, + n05, + _UMT, + { [_e5]: _c5, [_hE5]: 415 }, + [], + [] + ]; + n0_registry5.registerError(UnsupportedMediaType$, UnsupportedMediaType); + var errorTypeRegistries5 = [ + _s_registry5, + n0_registry5 + ]; + var CopySourceSSECustomerKey = [0, n05, _CSSSECK, 8, 0]; + var NonEmptyKmsKeyArnString = [0, n05, _NEKKAS, 8, 0]; + var SessionCredentialValue = [0, n05, _SCV, 8, 0]; + var SSECustomerKey = [0, n05, _SSECK, 8, 0]; + var SSEKMSEncryptionContext = [0, n05, _SSEKMSEC, 8, 0]; + var SSEKMSKeyId = [0, n05, _SSEKMSKI, 8, 0]; + var StreamingBlob = [0, n05, _SB, { [_st]: 1 }, 42]; + var AbacStatus$ = [ + 3, + n05, + _AS, + 0, + [_S], + [0] + ]; + var AbortIncompleteMultipartUpload$ = [ + 3, + n05, + _AIMU, + 0, + [_DAI], + [1] + ]; + var AbortMultipartUploadOutput$ = [ + 3, + n05, + _AMUO, + 0, + [_RC2], + [[0, { [_hH2]: _xarc }]] + ]; + var AbortMultipartUploadRequest$ = [ + 3, + n05, + _AMUR, + 0, + [_B, _K2, _UI, _RP, _EBO, _IMIT], + [[0, 1], [0, 1], [0, { [_hQ2]: _uI }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [6, { [_hH2]: _xaimit }]], + 3 + ]; + var AccelerateConfiguration$ = [ + 3, + n05, + _AC, + 0, + [_S], + [0] + ]; + var AccessControlPolicy$ = [ + 3, + n05, + _ACP, + 0, + [_G, _O], + [[() => Grants, { [_xN]: _ACL }], () => Owner$] + ]; + var AccessControlTranslation$ = [ + 3, + n05, + _ACT, + 0, + [_O], + [0], + 1 + ]; + var AnalyticsAndOperator$ = [ + 3, + n05, + _AAO, + 0, + [_P2, _T2], + [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta2 }]] + ]; + var AnalyticsConfiguration$ = [ + 3, + n05, + _ACn, + 0, + [_I, _SCA, _F], + [0, () => StorageClassAnalysis$, [() => AnalyticsFilter$, 0]], + 2 + ]; + var AnalyticsExportDestination$ = [ + 3, + n05, + _AED, + 0, + [_SBD], + [() => AnalyticsS3BucketDestination$], + 1 + ]; + var AnalyticsS3BucketDestination$ = [ + 3, + n05, + _ASBD, + 0, + [_Fo, _B, _BAI, _P2], + [0, 0, 0, 0], + 2 + ]; + var AnnotationEntry$ = [ + 3, + n05, + _AE, + 0, + [_AN, _LM, _Si, _ET, _CA2, _RS], + [0, 4, 1, 0, [64 | 0, { [_xF]: 1 }], 0], + 3 + ]; + var AnnotationTableConfiguration$ = [ + 3, + n05, + _ATC, + 0, + [_CS2, _EC, _R], + [0, () => MetadataTableEncryptionConfiguration$, 0], + 1 + ]; + var AnnotationTableConfigurationResult$ = [ + 3, + n05, + _ATCR, + 0, + [_CS2, _TS, _E3, _TN, _TA, _R], + [0, 0, () => ErrorDetails$, 0, 0, 0], + 1 + ]; + var AnnotationTableConfigurationUpdates$ = [ + 3, + n05, + _ATCU, + 0, + [_CS2, _EC, _R], + [0, () => MetadataTableEncryptionConfiguration$, 0], + 1 + ]; + var BlockedEncryptionTypes$ = [ + 3, + n05, + _BET, + 0, + [_ETn], + [[() => EncryptionTypeList, { [_xF]: 1 }]] + ]; + var Bucket$ = [ + 3, + n05, + _B, + 0, + [_N, _CD, _BR, _BA], + [0, 4, 0, 0] + ]; + var BucketInfo$ = [ + 3, + n05, + _BI, + 0, + [_DR, _Ty], + [0, 0] + ]; + var BucketLifecycleConfiguration$ = [ + 3, + n05, + _BLC, + 0, + [_Ru], + [[() => LifecycleRules, { [_xF]: 1, [_xN]: _Rul }]], + 1 + ]; + var BucketLoggingStatus$ = [ + 3, + n05, + _BLS, + 0, + [_LE], + [[() => LoggingEnabled$, 0]] + ]; + var Checksum$ = [ + 3, + n05, + _C2, + 0, + [_CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ]; + var CommonPrefix$ = [ + 3, + n05, + _CP, + 0, + [_P2], + [0] + ]; + var CompletedMultipartUpload$ = [ + 3, + n05, + _CMU, + 0, + [_Pa], + [[() => CompletedPartList, { [_xF]: 1, [_xN]: _Par }]] + ]; + var CompletedPart$ = [ + 3, + n05, + _CPo, + 0, + [_ET, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _PN], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] + ]; + var CompleteMultipartUploadOutput$ = [ + 3, + n05, + _CMUO, + { [_xN]: _CMUR }, + [_L, _B, _K2, _Ex, _ET, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2, _SSE, _VI, _SSEKMSKI, _BKE, _RC2], + [0, 0, 0, [0, { [_hH2]: _xae }], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xavi }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xarc }]] + ]; + var CompleteMultipartUploadRequest$ = [ + 3, + n05, + _CMURo, + 0, + [_B, _K2, _UI, _MU, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2, _MOS, _RP, _EBO, _IM, _INM, _SSECA, _SSECK, _SSECKMD], + [[0, 1], [0, 1], [0, { [_hQ2]: _uI }], [() => CompletedMultipartUpload$, { [_hP]: 1, [_xN]: _CMUo }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xact }], [1, { [_hH2]: _xamos }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _IM_ }], [0, { [_hH2]: _INM_ }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }]], + 3 + ]; + var Condition$ = [ + 3, + n05, + _Co, + 0, + [_HECRE, _KPE], + [0, 0] + ]; + var ContinuationEvent$ = [ + 3, + n05, + _CE, + 0, + [], + [] + ]; + var CopyObjectOutput$ = [ + 3, + n05, + _COO, + 0, + [_COR, _Ex, _CSVI, _VI, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RC2], + [[() => CopyObjectResult$, 16], [0, { [_hH2]: _xae }], [0, { [_hH2]: _xacsvi }], [0, { [_hH2]: _xavi }], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xasseca }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xarc }]] + ]; + var CopyObjectRequest$ = [ + 3, + n05, + _CORo, + 0, + [_B, _CSo, _K2, _ACL_, _CC, _CA2, _CDo, _CEo, _CL, _CTo, _CSIM, _CSIMS, _CSINM, _CSIUS, _Exp, _GFC, _GR, _GRACP, _GWACP, _IM, _INM, _M, _MD, _TD, _ADn, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _CSSSECA, _CSSSECK, _CSSSECKMD, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _OLEH, _OLEHDD, _OLEHDY, _EBO, _ESBO], + [[0, 1], [0, { [_hH2]: _xacs___ }], [0, 1], [0, { [_hH2]: _xaa }], [0, { [_hH2]: _CC_ }], [0, { [_hH2]: _xaca }], [0, { [_hH2]: _CD_ }], [0, { [_hH2]: _CE_ }], [0, { [_hH2]: _CL_ }], [0, { [_hH2]: _CT_ }], [0, { [_hH2]: _xacsim }], [4, { [_hH2]: _xacsims }], [0, { [_hH2]: _xacsinm }], [4, { [_hH2]: _xacsius }], [4, { [_hH2]: _Exp }], [0, { [_hH2]: _xagfc }], [0, { [_hH2]: _xagr }], [0, { [_hH2]: _xagra }], [0, { [_hH2]: _xagwa }], [0, { [_hH2]: _IM_ }], [0, { [_hH2]: _INM_ }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH2]: _xamd }], [0, { [_hH2]: _xatd }], [0, { [_hH2]: _xaoad }], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xasc }], [0, { [_hH2]: _xawrl }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xacssseca }], [() => CopySourceSSECustomerKey, { [_hH2]: _xacssseck }], [0, { [_hH2]: _xacssseckM }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xat }], [0, { [_hH2]: _xaolm }], [5, { [_hH2]: _xaolrud }], [0, { [_hH2]: _xaollh }], [0, { [_hH2]: _xaoleh }], [1, { [_hH2]: _xaolehdd }], [1, { [_hH2]: _xaolehdy }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xasebo }]], + 3 + ]; + var CopyObjectResult$ = [ + 3, + n05, + _COR, + 0, + [_ET, _LM, _CT2, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe], + [0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ]; + var CopyPartResult$ = [ + 3, + n05, + _CPR, + 0, + [_ET, _LM, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe], + [0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ]; + var CORSConfiguration$ = [ + 3, + n05, + _CORSC, + 0, + [_CORSR], + [[() => CORSRules, { [_xF]: 1, [_xN]: _CORSRu }]], + 1 + ]; + var CORSRule$ = [ + 3, + n05, + _CORSRu, + 0, + [_AM, _AO, _ID, _AH, _EH, _MAS], + [[64 | 0, { [_xF]: 1, [_xN]: _AMl }], [64 | 0, { [_xF]: 1, [_xN]: _AOl }], 0, [64 | 0, { [_xF]: 1, [_xN]: _AHl }], [64 | 0, { [_xF]: 1, [_xN]: _EHx }], 1], + 2 + ]; + var CreateBucketConfiguration$ = [ + 3, + n05, + _CBC, + 0, + [_LC, _L, _B, _T2], + [0, () => LocationInfo$, () => BucketInfo$, [() => TagSet, 0]] + ]; + var CreateBucketMetadataConfigurationRequest$ = [ + 3, + n05, + _CBMCR, + 0, + [_B, _MC, _CMDo, _CA2, _EBO], + [[0, 1], [() => MetadataConfiguration$, { [_hP]: 1, [_xN]: _MC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var CreateBucketMetadataTableConfigurationRequest$ = [ + 3, + n05, + _CBMTCR, + 0, + [_B, _MTC, _CMDo, _CA2, _EBO], + [[0, 1], [() => MetadataTableConfiguration$, { [_hP]: 1, [_xN]: _MTC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var CreateBucketOutput$ = [ + 3, + n05, + _CBO, + 0, + [_L, _BA], + [[0, { [_hH2]: _L }], [0, { [_hH2]: _xaba }]] + ]; + var CreateBucketRequest$ = [ + 3, + n05, + _CBR, + 0, + [_B, _ACL_, _CBC, _GFC, _GR, _GRACP, _GW, _GWACP, _OLEFB, _OO, _BN], + [[0, 1], [0, { [_hH2]: _xaa }], [() => CreateBucketConfiguration$, { [_hP]: 1, [_xN]: _CBC }], [0, { [_hH2]: _xagfc }], [0, { [_hH2]: _xagr }], [0, { [_hH2]: _xagra }], [0, { [_hH2]: _xagw }], [0, { [_hH2]: _xagwa }], [2, { [_hH2]: _xabole }], [0, { [_hH2]: _xaoo }], [0, { [_hH2]: _xabn }]], + 1 + ]; + var CreateMultipartUploadOutput$ = [ + 3, + n05, + _CMUOr, + { [_xN]: _IMUR }, + [_ADb, _ARI2, _B, _K2, _UI, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RC2, _CA2, _CT2], + [[4, { [_hH2]: _xaad }], [0, { [_hH2]: _xaari }], [0, { [_xN]: _B }], 0, 0, [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xasseca }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xarc }], [0, { [_hH2]: _xaca }], [0, { [_hH2]: _xact }]] + ]; + var CreateMultipartUploadRequest$ = [ + 3, + n05, + _CMURr, + 0, + [_B, _K2, _ACL_, _CC, _CDo, _CEo, _CL, _CTo, _Exp, _GFC, _GR, _GRACP, _GWACP, _M, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _OLEH, _OLEHDD, _OLEHDY, _EBO, _CA2, _CT2], + [[0, 1], [0, 1], [0, { [_hH2]: _xaa }], [0, { [_hH2]: _CC_ }], [0, { [_hH2]: _CD_ }], [0, { [_hH2]: _CE_ }], [0, { [_hH2]: _CL_ }], [0, { [_hH2]: _CT_ }], [4, { [_hH2]: _Exp }], [0, { [_hH2]: _xagfc }], [0, { [_hH2]: _xagr }], [0, { [_hH2]: _xagra }], [0, { [_hH2]: _xagwa }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xasc }], [0, { [_hH2]: _xawrl }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xat }], [0, { [_hH2]: _xaolm }], [5, { [_hH2]: _xaolrud }], [0, { [_hH2]: _xaollh }], [0, { [_hH2]: _xaoleh }], [1, { [_hH2]: _xaolehdd }], [1, { [_hH2]: _xaolehdy }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xaca }], [0, { [_hH2]: _xact }]], + 2 + ]; + var CreateSessionOutput$ = [ + 3, + n05, + _CSO, + { [_xN]: _CSR }, + [_Cr, _SSE, _SSEKMSKI, _SSEKMSEC, _BKE], + [[() => SessionCredentials$, { [_xN]: _Cr }], [0, { [_hH2]: _xasse }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }]], + 1 + ]; + var CreateSessionRequest$ = [ + 3, + n05, + _CSRr, + 0, + [_B, _SM, _SSE, _SSEKMSKI, _SSEKMSEC, _BKE], + [[0, 1], [0, { [_hH2]: _xacsm }], [0, { [_hH2]: _xasse }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }]], + 1 + ]; + var CSVInput$ = [ + 3, + n05, + _CSVIn, + 0, + [_FHI, _Com, _QEC, _RD, _FD, _QC, _AQRD], + [0, 0, 0, 0, 0, 0, 2] + ]; + var CSVOutput$ = [ + 3, + n05, + _CSVO, + 0, + [_QF, _QEC, _RD, _FD, _QC], + [0, 0, 0, 0, 0] + ]; + var DefaultRetention$ = [ + 3, + n05, + _DRe, + 0, + [_Mo, _D, _Y, _DEH], + [0, 1, 1, () => EventHoldDuration$] + ]; + var Delete$ = [ + 3, + n05, + _De, + 0, + [_Ob, _Q], + [[() => ObjectIdentifierList, { [_xF]: 1, [_xN]: _Obj }], 2], + 1 + ]; + var DeleteBucketAnalyticsConfigurationRequest$ = [ + 3, + n05, + _DBACR, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var DeleteBucketCorsRequest$ = [ + 3, + n05, + _DBCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketEncryptionRequest$ = [ + 3, + n05, + _DBER, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketIntelligentTieringConfigurationRequest$ = [ + 3, + n05, + _DBITCR, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var DeleteBucketInventoryConfigurationRequest$ = [ + 3, + n05, + _DBICR, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var DeleteBucketLifecycleRequest$ = [ + 3, + n05, + _DBLR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketMetadataConfigurationRequest$ = [ + 3, + n05, + _DBMCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketMetadataTableConfigurationRequest$ = [ + 3, + n05, + _DBMTCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketMetricsConfigurationRequest$ = [ + 3, + n05, + _DBMCRe, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var DeleteBucketOwnershipControlsRequest$ = [ + 3, + n05, + _DBOCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketPolicyRequest$ = [ + 3, + n05, + _DBPR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketReplicationRequest$ = [ + 3, + n05, + _DBRR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketRequest$ = [ + 3, + n05, + _DBR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketTaggingRequest$ = [ + 3, + n05, + _DBTR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeleteBucketWebsiteRequest$ = [ + 3, + n05, + _DBWR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var DeletedObject$ = [ + 3, + n05, + _DO, + 0, + [_K2, _VI, _DM, _DMVI], + [0, 0, 2, 0] + ]; + var DeleteMarkerEntry$ = [ + 3, + n05, + _DME, + 0, + [_O, _K2, _VI, _IL, _LM], + [() => Owner$, 0, 0, 2, 4] + ]; + var DeleteMarkerReplication$ = [ + 3, + n05, + _DMR, + 0, + [_S], + [0] + ]; + var DeleteObjectAnnotationOutput$ = [ + 3, + n05, + _DOAO, + 0, + [_OVI, _RC2], + [[0, { [_hH2]: _xaovi }], [0, { [_hH2]: _xarc }]] + ]; + var DeleteObjectAnnotationRequest$ = [ + 3, + n05, + _DOAR, + 0, + [_B, _K2, _AN, _VI, _RP, _EBO, _OIM], + [[0, 1], [0, 1], [0, { [_hQ2]: _aN }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xaoim }]], + 3 + ]; + var DeleteObjectOutput$ = [ + 3, + n05, + _DOO, + 0, + [_DM, _VI, _RC2], + [[2, { [_hH2]: _xadm }], [0, { [_hH2]: _xavi }], [0, { [_hH2]: _xarc }]] + ]; + var DeleteObjectRequest$ = [ + 3, + n05, + _DOR, + 0, + [_B, _K2, _MFA, _VI, _RP, _BGR, _EBO, _IM, _IMLMT, _IMS], + [[0, 1], [0, 1], [0, { [_hH2]: _xam_ }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xarp }], [2, { [_hH2]: _xabgr }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _IM_ }], [6, { [_hH2]: _xaimlmt }], [1, { [_hH2]: _xaims }]], + 2 + ]; + var DeleteObjectsOutput$ = [ + 3, + n05, + _DOOe, + { [_xN]: _DRel }, + [_Del, _RC2, _Er], + [[() => DeletedObjects, { [_xF]: 1 }], [0, { [_hH2]: _xarc }], [() => Errors, { [_xF]: 1, [_xN]: _E3 }]] + ]; + var DeleteObjectsRequest$ = [ + 3, + n05, + _DORe, + 0, + [_B, _De, _MFA, _RP, _BGR, _EBO, _CA2], + [[0, 1], [() => Delete$, { [_hP]: 1, [_xN]: _De }], [0, { [_hH2]: _xam_ }], [0, { [_hH2]: _xarp }], [2, { [_hH2]: _xabgr }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xasca }]], + 2 + ]; + var DeleteObjectTaggingOutput$ = [ + 3, + n05, + _DOTO, + 0, + [_VI], + [[0, { [_hH2]: _xavi }]] + ]; + var DeleteObjectTaggingRequest$ = [ + 3, + n05, + _DOTR, + 0, + [_B, _K2, _VI, _EBO], + [[0, 1], [0, 1], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var DeletePublicAccessBlockRequest$ = [ + 3, + n05, + _DPABR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var Destination$ = [ + 3, + n05, + _Des, + 0, + [_B, _A2, _SC, _ACT, _EC, _RT3, _Me], + [0, 0, 0, () => AccessControlTranslation$, () => EncryptionConfiguration$, () => ReplicationTime$, () => Metrics$], + 1 + ]; + var DestinationResult$ = [ + 3, + n05, + _DRes, + 0, + [_TBT, _TBA, _TNa], + [0, 0, 0] + ]; + var Encryption$ = [ + 3, + n05, + _En, + 0, + [_ETn, _KMSKI, _KMSC], + [0, [() => SSEKMSKeyId, 0], 0], + 1 + ]; + var EncryptionConfiguration$ = [ + 3, + n05, + _EC, + 0, + [_RKKID], + [0] + ]; + var EndEvent$ = [ + 3, + n05, + _EE, + 0, + [], + [] + ]; + var _Error$ = [ + 3, + n05, + _E3, + 0, + [_K2, _VI, _Cod, _Mes], + [0, 0, 0, 0] + ]; + var ErrorDetails$ = [ + 3, + n05, + _ED, + 0, + [_ECr, _EM], + [0, 0] + ]; + var ErrorDocument$ = [ + 3, + n05, + _EDr, + 0, + [_K2], + [0], + 1 + ]; + var EventBridgeConfiguration$ = [ + 3, + n05, + _EBC, + 0, + [], + [] + ]; + var EventHoldDuration$ = [ + 3, + n05, + _EHD, + 0, + [_D, _Y], + [1, 1] + ]; + var ExistingObjectReplication$ = [ + 3, + n05, + _EOR, + 0, + [_S], + [0], + 1 + ]; + var FilterRule$ = [ + 3, + n05, + _FR, + 0, + [_N, _V2], + [0, 0] + ]; + var GetBucketAbacOutput$ = [ + 3, + n05, + _GBAO, + 0, + [_AS], + [[() => AbacStatus$, 16]] + ]; + var GetBucketAbacRequest$ = [ + 3, + n05, + _GBAR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketAccelerateConfigurationOutput$ = [ + 3, + n05, + _GBACO, + { [_xN]: _AC }, + [_S, _RC2], + [0, [0, { [_hH2]: _xarc }]] + ]; + var GetBucketAccelerateConfigurationRequest$ = [ + 3, + n05, + _GBACR, + 0, + [_B, _EBO, _RP], + [[0, 1], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xarp }]], + 1 + ]; + var GetBucketAclOutput$ = [ + 3, + n05, + _GBAOe, + { [_xN]: _ACP }, + [_O, _G], + [() => Owner$, [() => Grants, { [_xN]: _ACL }]] + ]; + var GetBucketAclRequest$ = [ + 3, + n05, + _GBARe, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketAnalyticsConfigurationOutput$ = [ + 3, + n05, + _GBACOe, + 0, + [_ACn], + [[() => AnalyticsConfiguration$, 16]] + ]; + var GetBucketAnalyticsConfigurationRequest$ = [ + 3, + n05, + _GBACRe, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetBucketCorsOutput$ = [ + 3, + n05, + _GBCO, + { [_xN]: _CORSC }, + [_CORSR], + [[() => CORSRules, { [_xF]: 1, [_xN]: _CORSRu }]] + ]; + var GetBucketCorsRequest$ = [ + 3, + n05, + _GBCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketEncryptionOutput$ = [ + 3, + n05, + _GBEO, + 0, + [_SSEC], + [[() => ServerSideEncryptionConfiguration$, 16]] + ]; + var GetBucketEncryptionRequest$ = [ + 3, + n05, + _GBER, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketIntelligentTieringConfigurationOutput$ = [ + 3, + n05, + _GBITCO, + 0, + [_ITC], + [[() => IntelligentTieringConfiguration$, 16]] + ]; + var GetBucketIntelligentTieringConfigurationRequest$ = [ + 3, + n05, + _GBITCR, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetBucketInventoryConfigurationOutput$ = [ + 3, + n05, + _GBICO, + 0, + [_IC], + [[() => InventoryConfiguration$, 16]] + ]; + var GetBucketInventoryConfigurationRequest$ = [ + 3, + n05, + _GBICR, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetBucketLifecycleConfigurationOutput$ = [ + 3, + n05, + _GBLCO, + { [_xN]: _LCi }, + [_Ru, _TDMOS], + [[() => LifecycleRules, { [_xF]: 1, [_xN]: _Rul }], [0, { [_hH2]: _xatdmos }]] + ]; + var GetBucketLifecycleConfigurationRequest$ = [ + 3, + n05, + _GBLCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketLocationOutput$ = [ + 3, + n05, + _GBLO, + { [_xN]: _LC }, + [_LC], + [0] + ]; + var GetBucketLocationRequest$ = [ + 3, + n05, + _GBLR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketLoggingOutput$ = [ + 3, + n05, + _GBLOe, + { [_xN]: _BLS }, + [_LE], + [[() => LoggingEnabled$, 0]] + ]; + var GetBucketLoggingRequest$ = [ + 3, + n05, + _GBLRe, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketMetadataConfigurationOutput$ = [ + 3, + n05, + _GBMCO, + 0, + [_GBMCR], + [[() => GetBucketMetadataConfigurationResult$, 16]] + ]; + var GetBucketMetadataConfigurationRequest$ = [ + 3, + n05, + _GBMCRe, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketMetadataConfigurationResult$ = [ + 3, + n05, + _GBMCR, + 0, + [_MCR], + [() => MetadataConfigurationResult$], + 1 + ]; + var GetBucketMetadataTableConfigurationOutput$ = [ + 3, + n05, + _GBMTCO, + 0, + [_GBMTCR], + [[() => GetBucketMetadataTableConfigurationResult$, 16]] + ]; + var GetBucketMetadataTableConfigurationRequest$ = [ + 3, + n05, + _GBMTCRe, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketMetadataTableConfigurationResult$ = [ + 3, + n05, + _GBMTCR, + 0, + [_MTCR, _S, _E3], + [() => MetadataTableConfigurationResult$, 0, () => ErrorDetails$], + 2 + ]; + var GetBucketMetricsConfigurationOutput$ = [ + 3, + n05, + _GBMCOe, + 0, + [_MCe], + [[() => MetricsConfiguration$, 16]] + ]; + var GetBucketMetricsConfigurationRequest$ = [ + 3, + n05, + _GBMCRet, + 0, + [_B, _I, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetBucketNotificationConfigurationRequest$ = [ + 3, + n05, + _GBNCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketOwnershipControlsOutput$ = [ + 3, + n05, + _GBOCO, + 0, + [_OC], + [[() => OwnershipControls$, 16]] + ]; + var GetBucketOwnershipControlsRequest$ = [ + 3, + n05, + _GBOCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketPolicyOutput$ = [ + 3, + n05, + _GBPO, + 0, + [_Po], + [[0, 16]] + ]; + var GetBucketPolicyRequest$ = [ + 3, + n05, + _GBPR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketPolicyStatusOutput$ = [ + 3, + n05, + _GBPSO, + 0, + [_PS], + [[() => PolicyStatus$, 16]] + ]; + var GetBucketPolicyStatusRequest$ = [ + 3, + n05, + _GBPSR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketReplicationOutput$ = [ + 3, + n05, + _GBRO, + 0, + [_RCe], + [[() => ReplicationConfiguration$, 16]] + ]; + var GetBucketReplicationRequest$ = [ + 3, + n05, + _GBRR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketRequestPaymentOutput$ = [ + 3, + n05, + _GBRPO, + { [_xN]: _RPC }, + [_Pay], + [0] + ]; + var GetBucketRequestPaymentRequest$ = [ + 3, + n05, + _GBRPR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketTaggingOutput$ = [ + 3, + n05, + _GBTO, + { [_xN]: _Tag }, + [_TSa], + [[() => TagSet, 0]], + 1 + ]; + var GetBucketTaggingRequest$ = [ + 3, + n05, + _GBTR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketVersioningOutput$ = [ + 3, + n05, + _GBVO, + { [_xN]: _VC }, + [_S, _MFAD], + [0, [0, { [_xN]: _MDf }]] + ]; + var GetBucketVersioningRequest$ = [ + 3, + n05, + _GBVR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetBucketWebsiteOutput$ = [ + 3, + n05, + _GBWO, + { [_xN]: _WC }, + [_RART, _IDn, _EDr, _RR], + [() => RedirectAllRequestsTo$, () => IndexDocument$, () => ErrorDocument$, [() => RoutingRules, 0]] + ]; + var GetBucketWebsiteRequest$ = [ + 3, + n05, + _GBWR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetObjectAclOutput$ = [ + 3, + n05, + _GOAO, + { [_xN]: _ACP }, + [_O, _G, _RC2], + [() => Owner$, [() => Grants, { [_xN]: _ACL }], [0, { [_hH2]: _xarc }]] + ]; + var GetObjectAclRequest$ = [ + 3, + n05, + _GOAR, + 0, + [_B, _K2, _VI, _RP, _EBO], + [[0, 1], [0, 1], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetObjectAnnotationOutput$ = [ + 3, + n05, + _GOAOe, + 0, + [_AP, _OVI, _LM, _CLo, _ET, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2, _SSE, _RC2, _RS], + [[() => StreamingBlob, 16], [0, { [_hH2]: _xaovi }], [4, { [_hH2]: _LM_ }], [1, { [_hH2]: _CL__ }], [0, { [_hH2]: _ET }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xact }], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xarc }], [0, { [_hH2]: _xars }]] + ]; + var GetObjectAnnotationRequest$ = [ + 3, + n05, + _GOARe, + 0, + [_B, _K2, _AN, _VI, _RP, _EBO, _CMh], + [[0, 1], [0, 1], [0, { [_hQ2]: _aN }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xacm_ }]], + 3 + ]; + var GetObjectAttributesOutput$ = [ + 3, + n05, + _GOAOet, + { [_xN]: _GOARet }, + [_DM, _LM, _VI, _RC2, _ET, _C2, _OP, _SC, _OS], + [[2, { [_hH2]: _xadm }], [4, { [_hH2]: _LM_ }], [0, { [_hH2]: _xavi }], [0, { [_hH2]: _xarc }], 0, () => Checksum$, [() => GetObjectAttributesParts$, 0], 0, 1] + ]; + var GetObjectAttributesParts$ = [ + 3, + n05, + _GOAP, + 0, + [_TPC, _PNM, _NPNM, _MP, _IT2, _Pa], + [[1, { [_xN]: _PC2 }], 0, 0, 1, 2, [() => PartsList, { [_xF]: 1, [_xN]: _Par }]] + ]; + var GetObjectAttributesRequest$ = [ + 3, + n05, + _GOARetb, + 0, + [_B, _K2, _OA, _VI, _MP, _PNM, _SSECA, _SSECK, _SSECKMD, _RP, _EBO], + [[0, 1], [0, 1], [64 | 0, { [_hH2]: _xaoa }], [0, { [_hQ2]: _vI }], [1, { [_hH2]: _xamp }], [0, { [_hH2]: _xapnm }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 3 + ]; + var GetObjectLegalHoldOutput$ = [ + 3, + n05, + _GOLHO, + 0, + [_LH], + [[() => ObjectLockLegalHold$, { [_hP]: 1, [_xN]: _LH }]] + ]; + var GetObjectLegalHoldRequest$ = [ + 3, + n05, + _GOLHR, + 0, + [_B, _K2, _VI, _RP, _EBO], + [[0, 1], [0, 1], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetObjectLockConfigurationOutput$ = [ + 3, + n05, + _GOLCO, + 0, + [_OLC], + [[() => ObjectLockConfiguration$, 16]] + ]; + var GetObjectLockConfigurationRequest$ = [ + 3, + n05, + _GOLCR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GetObjectOutput$ = [ + 3, + n05, + _GOO, + 0, + [_Bo, _DM, _AR2, _Ex, _Re, _LM, _CLo, _ET, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2, _MM, _VI, _CC, _CDo, _CEo, _CL, _CR, _CTo, _Exp, _ES, _WRL, _SSE, _M, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _SC, _RC2, _RS, _PC2, _TC2, _OLM, _OLRUD, _OLLHS, _OLEH, _OLEHDD, _OLEHDY], + [[() => StreamingBlob, 16], [2, { [_hH2]: _xadm }], [0, { [_hH2]: _ar }], [0, { [_hH2]: _xae }], [0, { [_hH2]: _xar }], [4, { [_hH2]: _LM_ }], [1, { [_hH2]: _CL__ }], [0, { [_hH2]: _ET }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xact }], [1, { [_hH2]: _xamm }], [0, { [_hH2]: _xavi }], [0, { [_hH2]: _CC_ }], [0, { [_hH2]: _CD_ }], [0, { [_hH2]: _CE_ }], [0, { [_hH2]: _CL_ }], [0, { [_hH2]: _CR_ }], [0, { [_hH2]: _CT_ }], [4, { [_hH2]: _Exp }], [0, { [_hH2]: _ES }], [0, { [_hH2]: _xawrl }], [0, { [_hH2]: _xasse }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH2]: _xasseca }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xasc }], [0, { [_hH2]: _xarc }], [0, { [_hH2]: _xars }], [1, { [_hH2]: _xampc }], [1, { [_hH2]: _xatc }], [0, { [_hH2]: _xaolm }], [5, { [_hH2]: _xaolrud }], [0, { [_hH2]: _xaollh }], [0, { [_hH2]: _xaoleh }], [1, { [_hH2]: _xaolehdd }], [1, { [_hH2]: _xaolehdy }]] + ]; + var GetObjectRequest$ = [ + 3, + n05, + _GOR, + 0, + [_B, _K2, _IM, _IMSf, _INM, _IUS, _Ra, _RCC, _RCD, _RCE, _RCL, _RCT, _RE, _VI, _SSECA, _SSECK, _SSECKMD, _RP, _PN, _EBO, _CMh], + [[0, 1], [0, 1], [0, { [_hH2]: _IM_ }], [4, { [_hH2]: _IMS_ }], [0, { [_hH2]: _INM_ }], [4, { [_hH2]: _IUS_ }], [0, { [_hH2]: _Ra }], [0, { [_hQ2]: _rcc }], [0, { [_hQ2]: _rcd }], [0, { [_hQ2]: _rce }], [0, { [_hQ2]: _rcl }], [0, { [_hQ2]: _rct }], [6, { [_hQ2]: _re }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [0, { [_hH2]: _xarp }], [1, { [_hQ2]: _pN }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xacm_ }]], + 2 + ]; + var GetObjectRetentionOutput$ = [ + 3, + n05, + _GORO, + 0, + [_Ret], + [[() => ObjectLockRetention$, { [_hP]: 1, [_xN]: _Ret }]] + ]; + var GetObjectRetentionRequest$ = [ + 3, + n05, + _GORR, + 0, + [_B, _K2, _VI, _RP, _EBO], + [[0, 1], [0, 1], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetObjectTaggingOutput$ = [ + 3, + n05, + _GOTO, + { [_xN]: _Tag }, + [_TSa, _VI], + [[() => TagSet, 0], [0, { [_hH2]: _xavi }]], + 1 + ]; + var GetObjectTaggingRequest$ = [ + 3, + n05, + _GOTR, + 0, + [_B, _K2, _VI, _EBO, _RP], + [[0, 1], [0, 1], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xarp }]], + 2 + ]; + var GetObjectTorrentOutput$ = [ + 3, + n05, + _GOTOe, + 0, + [_Bo, _RC2], + [[() => StreamingBlob, 16], [0, { [_hH2]: _xarc }]] + ]; + var GetObjectTorrentRequest$ = [ + 3, + n05, + _GOTRe, + 0, + [_B, _K2, _RP, _EBO], + [[0, 1], [0, 1], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var GetPublicAccessBlockOutput$ = [ + 3, + n05, + _GPABO, + 0, + [_PABC], + [[() => PublicAccessBlockConfiguration$, 16]] + ]; + var GetPublicAccessBlockRequest$ = [ + 3, + n05, + _GPABR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var GlacierJobParameters$ = [ + 3, + n05, + _GJP, + 0, + [_Ti], + [0], + 1 + ]; + var Grant$ = [ + 3, + n05, + _Gr, + 0, + [_Gra, _Pe], + [[() => Grantee$, { [_xNm]: [_x, _hi] }], 0] + ]; + var Grantee$ = [ + 3, + n05, + _Gra, + 0, + [_Ty, _DN, _EA, _ID, _URI], + [[0, { [_xA]: 1, [_xN]: _xs }], 0, 0, 0, 0], + 1 + ]; + var HeadBucketOutput$ = [ + 3, + n05, + _HBO, + 0, + [_BA, _BLT, _BLN, _BR, _APA], + [[0, { [_hH2]: _xaba }], [0, { [_hH2]: _xablt }], [0, { [_hH2]: _xabln }], [0, { [_hH2]: _xabr }], [2, { [_hH2]: _xaapa }]] + ]; + var HeadBucketRequest$ = [ + 3, + n05, + _HBR, + 0, + [_B, _EBO], + [[0, 1], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var HeadObjectOutput$ = [ + 3, + n05, + _HOO, + 0, + [_DM, _AR2, _Ex, _Re, _ASr, _LM, _CLo, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2, _ET, _MM, _VI, _CC, _CDo, _CEo, _CL, _CTo, _CR, _Exp, _ES, _WRL, _SSE, _M, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _SC, _RC2, _RS, _PC2, _TC2, _OLM, _OLRUD, _OLLHS, _OLEH, _OLEHDD, _OLEHDY], + [[2, { [_hH2]: _xadm }], [0, { [_hH2]: _ar }], [0, { [_hH2]: _xae }], [0, { [_hH2]: _xar }], [0, { [_hH2]: _xaas }], [4, { [_hH2]: _LM_ }], [1, { [_hH2]: _CL__ }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xact }], [0, { [_hH2]: _ET }], [1, { [_hH2]: _xamm }], [0, { [_hH2]: _xavi }], [0, { [_hH2]: _CC_ }], [0, { [_hH2]: _CD_ }], [0, { [_hH2]: _CE_ }], [0, { [_hH2]: _CL_ }], [0, { [_hH2]: _CT_ }], [0, { [_hH2]: _CR_ }], [4, { [_hH2]: _Exp }], [0, { [_hH2]: _ES }], [0, { [_hH2]: _xawrl }], [0, { [_hH2]: _xasse }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH2]: _xasseca }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xasc }], [0, { [_hH2]: _xarc }], [0, { [_hH2]: _xars }], [1, { [_hH2]: _xampc }], [1, { [_hH2]: _xatc }], [0, { [_hH2]: _xaolm }], [5, { [_hH2]: _xaolrud }], [0, { [_hH2]: _xaollh }], [0, { [_hH2]: _xaoleh }], [1, { [_hH2]: _xaolehdd }], [1, { [_hH2]: _xaolehdy }]] + ]; + var HeadObjectRequest$ = [ + 3, + n05, + _HOR, + 0, + [_B, _K2, _IM, _IMSf, _INM, _IUS, _Ra, _RCC, _RCD, _RCE, _RCL, _RCT, _RE, _VI, _SSECA, _SSECK, _SSECKMD, _RP, _PN, _EBO, _CMh], + [[0, 1], [0, 1], [0, { [_hH2]: _IM_ }], [4, { [_hH2]: _IMS_ }], [0, { [_hH2]: _INM_ }], [4, { [_hH2]: _IUS_ }], [0, { [_hH2]: _Ra }], [0, { [_hQ2]: _rcc }], [0, { [_hQ2]: _rcd }], [0, { [_hQ2]: _rce }], [0, { [_hQ2]: _rcl }], [0, { [_hQ2]: _rct }], [6, { [_hQ2]: _re }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [0, { [_hH2]: _xarp }], [1, { [_hQ2]: _pN }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xacm_ }]], + 2 + ]; + var IndexDocument$ = [ + 3, + n05, + _IDn, + 0, + [_Su], + [0], + 1 + ]; + var Initiator$ = [ + 3, + n05, + _In, + 0, + [_ID, _DN], + [0, 0] + ]; + var InputSerialization$ = [ + 3, + n05, + _IS, + 0, + [_CSV, _CTom, _JSON, _Parq], + [() => CSVInput$, 0, () => JSONInput$, () => ParquetInput$] + ]; + var IntelligentTieringAndOperator$ = [ + 3, + n05, + _ITAO, + 0, + [_P2, _T2], + [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta2 }]] + ]; + var IntelligentTieringConfiguration$ = [ + 3, + n05, + _ITC, + 0, + [_I, _S, _Tie, _F], + [0, 0, [() => TieringList, { [_xF]: 1, [_xN]: _Tier }], [() => IntelligentTieringFilter$, 0]], + 3 + ]; + var IntelligentTieringFilter$ = [ + 3, + n05, + _ITF, + 0, + [_P2, _Ta2, _An], + [0, () => Tag$2, [() => IntelligentTieringAndOperator$, 0]] + ]; + var InventoryConfiguration$ = [ + 3, + n05, + _IC, + 0, + [_Des, _IE, _I, _IOV, _Sc, _F, _OF], + [[() => InventoryDestination$, 0], 2, 0, 0, () => InventorySchedule$, () => InventoryFilter$, [() => InventoryOptionalFields, 0]], + 5 + ]; + var InventoryDestination$ = [ + 3, + n05, + _IDnv, + 0, + [_SBD], + [[() => InventoryS3BucketDestination$, 0]], + 1 + ]; + var InventoryEncryption$ = [ + 3, + n05, + _IEn, + 0, + [_SSES, _SSEKMS], + [[() => SSES3$, { [_xN]: _SS }], [() => SSEKMS$, { [_xN]: _SK }]] + ]; + var InventoryFilter$ = [ + 3, + n05, + _IF, + 0, + [_P2], + [0], + 1 + ]; + var InventoryS3BucketDestination$ = [ + 3, + n05, + _ISBD, + 0, + [_B, _Fo, _AI, _P2, _En], + [0, 0, 0, 0, [() => InventoryEncryption$, 0]], + 2 + ]; + var InventorySchedule$ = [ + 3, + n05, + _ISn, + 0, + [_Fr], + [0], + 1 + ]; + var InventoryTableConfiguration$ = [ + 3, + n05, + _ITCn, + 0, + [_CS2, _EC], + [0, () => MetadataTableEncryptionConfiguration$], + 1 + ]; + var InventoryTableConfigurationResult$ = [ + 3, + n05, + _ITCR, + 0, + [_CS2, _TS, _E3, _TN, _TA], + [0, 0, () => ErrorDetails$, 0, 0], + 1 + ]; + var InventoryTableConfigurationUpdates$ = [ + 3, + n05, + _ITCU, + 0, + [_CS2, _EC], + [0, () => MetadataTableEncryptionConfiguration$], + 1 + ]; + var JournalTableConfiguration$ = [ + 3, + n05, + _JTC, + 0, + [_REe, _EC], + [() => RecordExpiration$, () => MetadataTableEncryptionConfiguration$], + 1 + ]; + var JournalTableConfigurationResult$ = [ + 3, + n05, + _JTCR, + 0, + [_TS, _TN, _REe, _E3, _TA], + [0, 0, () => RecordExpiration$, () => ErrorDetails$, 0], + 3 + ]; + var JournalTableConfigurationUpdates$ = [ + 3, + n05, + _JTCU, + 0, + [_REe], + [() => RecordExpiration$], + 1 + ]; + var JSONInput$ = [ + 3, + n05, + _JSONI, + 0, + [_Ty], + [0] + ]; + var JSONOutput$ = [ + 3, + n05, + _JSONO, + 0, + [_RD], + [0] + ]; + var LambdaFunctionConfiguration$ = [ + 3, + n05, + _LFC, + 0, + [_LFA, _Ev, _I, _F], + [[0, { [_xN]: _CF }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], + 2 + ]; + var LifecycleExpiration$ = [ + 3, + n05, + _LEi, + 0, + [_Da, _D, _EODM], + [5, 1, 2] + ]; + var LifecycleRule$ = [ + 3, + n05, + _LR, + 0, + [_S, _Ex, _ID, _P2, _F, _Tr, _NVT, _NVE, _AIMU], + [0, () => LifecycleExpiration$, 0, 0, [() => LifecycleRuleFilter$, 0], [() => TransitionList, { [_xF]: 1, [_xN]: _Tra }], [() => NoncurrentVersionTransitionList, { [_xF]: 1, [_xN]: _NVTo }], () => NoncurrentVersionExpiration$, () => AbortIncompleteMultipartUpload$], + 1 + ]; + var LifecycleRuleAndOperator$ = [ + 3, + n05, + _LRAO, + 0, + [_P2, _T2, _OSGT, _OSLT], + [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta2 }], 1, 1] + ]; + var LifecycleRuleFilter$ = [ + 3, + n05, + _LRF, + 0, + [_P2, _Ta2, _OSGT, _OSLT, _An], + [0, () => Tag$2, 1, 1, [() => LifecycleRuleAndOperator$, 0]] + ]; + var ListBucketAnalyticsConfigurationsOutput$ = [ + 3, + n05, + _LBACO, + { [_xN]: _LBACR }, + [_IT2, _CTon, _NCT, _ACLn], + [2, 0, 0, [() => AnalyticsConfigurationList, { [_xF]: 1, [_xN]: _ACn }]] + ]; + var ListBucketAnalyticsConfigurationsRequest$ = [ + 3, + n05, + _LBACRi, + 0, + [_B, _CTon, _EBO], + [[0, 1], [0, { [_hQ2]: _ct }], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var ListBucketIntelligentTieringConfigurationsOutput$ = [ + 3, + n05, + _LBITCO, + 0, + [_IT2, _CTon, _NCT, _ITCL], + [2, 0, 0, [() => IntelligentTieringConfigurationList, { [_xF]: 1, [_xN]: _ITC }]] + ]; + var ListBucketIntelligentTieringConfigurationsRequest$ = [ + 3, + n05, + _LBITCR, + 0, + [_B, _CTon, _EBO], + [[0, 1], [0, { [_hQ2]: _ct }], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var ListBucketInventoryConfigurationsOutput$ = [ + 3, + n05, + _LBICO, + { [_xN]: _LICR }, + [_CTon, _ICL, _IT2, _NCT], + [0, [() => InventoryConfigurationList, { [_xF]: 1, [_xN]: _IC }], 2, 0] + ]; + var ListBucketInventoryConfigurationsRequest$ = [ + 3, + n05, + _LBICR, + 0, + [_B, _CTon, _EBO], + [[0, 1], [0, { [_hQ2]: _ct }], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var ListBucketMetricsConfigurationsOutput$ = [ + 3, + n05, + _LBMCO, + { [_xN]: _LMCR }, + [_IT2, _CTon, _NCT, _MCL], + [2, 0, 0, [() => MetricsConfigurationList, { [_xF]: 1, [_xN]: _MCe }]] + ]; + var ListBucketMetricsConfigurationsRequest$ = [ + 3, + n05, + _LBMCR, + 0, + [_B, _CTon, _EBO], + [[0, 1], [0, { [_hQ2]: _ct }], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var ListBucketsOutput$ = [ + 3, + n05, + _LBO, + { [_xN]: _LAMBR }, + [_Bu, _O, _CTon, _P2], + [[() => Buckets, 0], () => Owner$, 0, 0] + ]; + var ListBucketsRequest$ = [ + 3, + n05, + _LBR, + 0, + [_MB, _CTon, _P2, _BR], + [[1, { [_hQ2]: _mb }], [0, { [_hQ2]: _ct }], [0, { [_hQ2]: _p }], [0, { [_hQ2]: _br }]] + ]; + var ListDirectoryBucketsOutput$ = [ + 3, + n05, + _LDBO, + { [_xN]: _LAMDBR }, + [_Bu, _CTon], + [[() => Buckets, 0], 0] + ]; + var ListDirectoryBucketsRequest$ = [ + 3, + n05, + _LDBR, + 0, + [_CTon, _MDB], + [[0, { [_hQ2]: _ct }], [1, { [_hQ2]: _mdb }]] + ]; + var ListMultipartUploadsOutput$ = [ + 3, + n05, + _LMUO, + { [_xN]: _LMUR }, + [_B, _KM, _UIM, _NKM, _P2, _Deli, _NUIM, _MUa, _IT2, _U, _CPom, _ETnc, _RC2], + [0, 0, 0, 0, 0, 0, 0, 1, 2, [() => MultipartUploadList, { [_xF]: 1, [_xN]: _Up }], [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH2]: _xarc }]] + ]; + var ListMultipartUploadsRequest$ = [ + 3, + n05, + _LMURi, + 0, + [_B, _Deli, _ETnc, _KM, _MUa, _P2, _UIM, _EBO, _RP], + [[0, 1], [0, { [_hQ2]: _d }], [0, { [_hQ2]: _et }], [0, { [_hQ2]: _km }], [1, { [_hQ2]: _mu }], [0, { [_hQ2]: _p }], [0, { [_hQ2]: _uim }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xarp }]], + 1 + ]; + var ListObjectAnnotationsOutput$ = [ + 3, + n05, + _LOAO, + 0, + [_Ann, _B, _K2, _OVI, _APn, _MAR, _ACnn, _CTon, _NCT, _RC2], + [[() => AnnotationList, 0], 0, 0, [0, { [_hH2]: _xaovi }], 0, 1, 1, 0, 0, [0, { [_hH2]: _xarc }]] + ]; + var ListObjectAnnotationsRequest$ = [ + 3, + n05, + _LOAR, + 0, + [_B, _K2, _VI, _MAR, _APn, _CTon, _RP, _EBO], + [[0, 1], [0, 1], [0, { [_hQ2]: _vI }], [1, { [_hQ2]: _mar }], [0, { [_hQ2]: _ap }], [0, { [_hQ2]: _ct }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var ListObjectsOutput$ = [ + 3, + n05, + _LOO, + { [_xN]: _LBRi }, + [_IT2, _Ma, _NM, _Con, _N, _P2, _Deli, _MK, _CPom, _ETnc, _RC2], + [2, 0, 0, [() => ObjectList, { [_xF]: 1 }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH2]: _xarc }]] + ]; + var ListObjectsRequest$ = [ + 3, + n05, + _LOR, + 0, + [_B, _Deli, _ETnc, _Ma, _MK, _P2, _RP, _EBO, _OOA], + [[0, 1], [0, { [_hQ2]: _d }], [0, { [_hQ2]: _et }], [0, { [_hQ2]: _m4 }], [1, { [_hQ2]: _mk }], [0, { [_hQ2]: _p }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [64 | 0, { [_hH2]: _xaooa }]], + 1 + ]; + var ListObjectsV2Output$ = [ + 3, + n05, + _LOVO, + { [_xN]: _LBRi }, + [_IT2, _Con, _N, _P2, _Deli, _MK, _CPom, _ETnc, _KC, _CTon, _NCT, _SA, _RC2], + [2, [() => ObjectList, { [_xF]: 1 }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, 1, 0, 0, 0, [0, { [_hH2]: _xarc }]] + ]; + var ListObjectsV2Request$ = [ + 3, + n05, + _LOVR, + 0, + [_B, _Deli, _ETnc, _MK, _P2, _CTon, _FO, _SA, _RP, _EBO, _OOA], + [[0, 1], [0, { [_hQ2]: _d }], [0, { [_hQ2]: _et }], [1, { [_hQ2]: _mk }], [0, { [_hQ2]: _p }], [0, { [_hQ2]: _ct }], [2, { [_hQ2]: _fo }], [0, { [_hQ2]: _sa }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [64 | 0, { [_hH2]: _xaooa }]], + 1 + ]; + var ListObjectVersionsOutput$ = [ + 3, + n05, + _LOVOi, + { [_xN]: _LVR }, + [_IT2, _KM, _VIM, _NKM, _NVIM, _Ve, _DMe, _N, _P2, _Deli, _MK, _CPom, _ETnc, _RC2], + [2, 0, 0, 0, 0, [() => ObjectVersionList, { [_xF]: 1, [_xN]: _Ver }], [() => DeleteMarkers, { [_xF]: 1, [_xN]: _DM }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH2]: _xarc }]] + ]; + var ListObjectVersionsRequest$ = [ + 3, + n05, + _LOVRi, + 0, + [_B, _Deli, _ETnc, _KM, _MK, _P2, _VIM, _EBO, _RP, _OOA], + [[0, 1], [0, { [_hQ2]: _d }], [0, { [_hQ2]: _et }], [0, { [_hQ2]: _km }], [1, { [_hQ2]: _mk }], [0, { [_hQ2]: _p }], [0, { [_hQ2]: _vim }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xarp }], [64 | 0, { [_hH2]: _xaooa }]], + 1 + ]; + var ListPartsOutput$ = [ + 3, + n05, + _LPO, + { [_xN]: _LPR }, + [_ADb, _ARI2, _B, _K2, _UI, _PNM, _NPNM, _MP, _IT2, _Pa, _In, _O, _SC, _RC2, _CA2, _CT2], + [[4, { [_hH2]: _xaad }], [0, { [_hH2]: _xaari }], 0, 0, 0, 0, 0, 1, 2, [() => Parts, { [_xF]: 1, [_xN]: _Par }], () => Initiator$, () => Owner$, 0, [0, { [_hH2]: _xarc }], 0, 0] + ]; + var ListPartsRequest$ = [ + 3, + n05, + _LPRi, + 0, + [_B, _K2, _UI, _MP, _PNM, _RP, _EBO, _SSECA, _SSECK, _SSECKMD], + [[0, 1], [0, 1], [0, { [_hQ2]: _uI }], [1, { [_hQ2]: _mp }], [0, { [_hQ2]: _pnm }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }]], + 3 + ]; + var LocationInfo$ = [ + 3, + n05, + _LI, + 0, + [_Ty, _N], + [0, 0] + ]; + var LoggingEnabled$ = [ + 3, + n05, + _LE, + 0, + [_TB, _TP, _TG, _TOKF], + [0, 0, [() => TargetGrants, 0], [() => TargetObjectKeyFormat$, 0]], + 2 + ]; + var MetadataConfiguration$ = [ + 3, + n05, + _MC, + 0, + [_JTC, _ITCn, _ATC], + [() => JournalTableConfiguration$, () => InventoryTableConfiguration$, () => AnnotationTableConfiguration$], + 1 + ]; + var MetadataConfigurationResult$ = [ + 3, + n05, + _MCR, + 0, + [_DRes, _JTCR, _ITCR, _ATCR], + [() => DestinationResult$, () => JournalTableConfigurationResult$, () => InventoryTableConfigurationResult$, () => AnnotationTableConfigurationResult$], + 1 + ]; + var MetadataEntry$ = [ + 3, + n05, + _ME, + 0, + [_N, _V2], + [0, 0] + ]; + var MetadataTableConfiguration$ = [ + 3, + n05, + _MTC, + 0, + [_STD], + [() => S3TablesDestination$], + 1 + ]; + var MetadataTableConfigurationResult$ = [ + 3, + n05, + _MTCR, + 0, + [_STDR], + [() => S3TablesDestinationResult$], + 1 + ]; + var MetadataTableEncryptionConfiguration$ = [ + 3, + n05, + _MTEC, + 0, + [_SAs, _KKA], + [0, 0], + 1 + ]; + var Metrics$ = [ + 3, + n05, + _Me, + 0, + [_S, _ETv], + [0, () => ReplicationTimeValue$], + 1 + ]; + var MetricsAndOperator$ = [ + 3, + n05, + _MAO, + 0, + [_P2, _T2, _APAc], + [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta2 }], 0] + ]; + var MetricsConfiguration$ = [ + 3, + n05, + _MCe, + 0, + [_I, _F], + [0, [() => MetricsFilter$, 0]], + 1 + ]; + var MultipartUpload$ = [ + 3, + n05, + _MU, + 0, + [_UI, _K2, _Ini, _SC, _O, _In, _CA2, _CT2], + [0, 0, 4, 0, () => Owner$, () => Initiator$, 0, 0] + ]; + var NoncurrentVersionExpiration$ = [ + 3, + n05, + _NVE, + 0, + [_ND, _NNV], + [1, 1] + ]; + var NoncurrentVersionTransition$ = [ + 3, + n05, + _NVTo, + 0, + [_ND, _SC, _NNV], + [1, 0, 1] + ]; + var NotificationConfiguration$ = [ + 3, + n05, + _NC, + 0, + [_TCo, _QCu, _LFCa, _EBC], + [[() => TopicConfigurationList, { [_xF]: 1, [_xN]: _TCop }], [() => QueueConfigurationList, { [_xF]: 1, [_xN]: _QCue }], [() => LambdaFunctionConfigurationList, { [_xF]: 1, [_xN]: _CFC }], () => EventBridgeConfiguration$] + ]; + var NotificationConfigurationFilter$ = [ + 3, + n05, + _NCF, + 0, + [_K2], + [[() => S3KeyFilter$, { [_xN]: _SKe }]] + ]; + var _Object$ = [ + 3, + n05, + _Obj, + 0, + [_K2, _LM, _ET, _CA2, _CT2, _Si, _SC, _O, _RSe], + [0, 4, 0, [64 | 0, { [_xF]: 1 }], 0, 1, 0, () => Owner$, () => RestoreStatus$] + ]; + var ObjectIdentifier$ = [ + 3, + n05, + _OI, + 0, + [_K2, _VI, _ET, _LMT, _Si], + [0, 0, 0, 6, 1], + 1 + ]; + var ObjectLockConfiguration$ = [ + 3, + n05, + _OLC, + 0, + [_OLE, _Rul], + [0, () => ObjectLockRule$] + ]; + var ObjectLockLegalHold$ = [ + 3, + n05, + _OLLH, + 0, + [_S], + [0] + ]; + var ObjectLockRetention$ = [ + 3, + n05, + _OLR, + 0, + [_Mo, _RUD, _EHv, _EHD], + [0, 5, 0, () => EventHoldDuration$] + ]; + var ObjectLockRule$ = [ + 3, + n05, + _OLRb, + 0, + [_DRe], + [() => DefaultRetention$] + ]; + var ObjectPart$ = [ + 3, + n05, + _OPb, + 0, + [_PN, _Si, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe], + [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ]; + var ObjectVersion$ = [ + 3, + n05, + _OV, + 0, + [_ET, _CA2, _CT2, _Si, _SC, _K2, _VI, _IL, _LM, _O, _RSe], + [0, [64 | 0, { [_xF]: 1 }], 0, 1, 0, 0, 0, 2, 4, () => Owner$, () => RestoreStatus$] + ]; + var OutputLocation$ = [ + 3, + n05, + _OL, + 0, + [_S_], + [[() => S3Location$, 0]] + ]; + var OutputSerialization$ = [ + 3, + n05, + _OSu, + 0, + [_CSV, _JSON], + [() => CSVOutput$, () => JSONOutput$] + ]; + var Owner$ = [ + 3, + n05, + _O, + 0, + [_DN, _ID], + [0, 0] + ]; + var OwnershipControls$ = [ + 3, + n05, + _OC, + 0, + [_Ru], + [[() => OwnershipControlsRules, { [_xF]: 1, [_xN]: _Rul }]], + 1 + ]; + var OwnershipControlsRule$ = [ + 3, + n05, + _OCR, + 0, + [_OO], + [0], + 1 + ]; + var ParquetInput$ = [ + 3, + n05, + _PI2, + 0, + [], + [] + ]; + var Part$ = [ + 3, + n05, + _Par, + 0, + [_PN, _LM, _ET, _Si, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe], + [1, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ]; + var PartitionedPrefix$ = [ + 3, + n05, + _PP, + { [_xN]: _PP }, + [_PDS], + [0] + ]; + var PolicyStatus$ = [ + 3, + n05, + _PS, + 0, + [_IPs], + [[2, { [_xN]: _IPs }]] + ]; + var Progress$ = [ + 3, + n05, + _Pr2, + 0, + [_BS, _BP, _BRy], + [1, 1, 1] + ]; + var ProgressEvent$ = [ + 3, + n05, + _PE, + 0, + [_Det], + [[() => Progress$, { [_eP]: 1 }]] + ]; + var PublicAccessBlockConfiguration$ = [ + 3, + n05, + _PABC, + 0, + [_BPA, _IPA, _BPP, _RPB], + [[2, { [_xN]: _BPA }], [2, { [_xN]: _IPA }], [2, { [_xN]: _BPP }], [2, { [_xN]: _RPB }]] + ]; + var PutBucketAbacRequest$ = [ + 3, + n05, + _PBAR, + 0, + [_B, _AS, _CMDo, _CA2, _EBO], + [[0, 1], [() => AbacStatus$, { [_hP]: 1, [_xN]: _AS }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketAccelerateConfigurationRequest$ = [ + 3, + n05, + _PBACR, + 0, + [_B, _AC, _EBO, _CA2], + [[0, 1], [() => AccelerateConfiguration$, { [_hP]: 1, [_xN]: _AC }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xasca }]], + 2 + ]; + var PutBucketAclRequest$ = [ + 3, + n05, + _PBARu, + 0, + [_B, _ACL_, _ACP, _CMDo, _CA2, _GFC, _GR, _GRACP, _GW, _GWACP, _EBO], + [[0, 1], [0, { [_hH2]: _xaa }], [() => AccessControlPolicy$, { [_hP]: 1, [_xN]: _ACP }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xagfc }], [0, { [_hH2]: _xagr }], [0, { [_hH2]: _xagra }], [0, { [_hH2]: _xagw }], [0, { [_hH2]: _xagwa }], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var PutBucketAnalyticsConfigurationRequest$ = [ + 3, + n05, + _PBACRu, + 0, + [_B, _I, _ACn, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [() => AnalyticsConfiguration$, { [_hP]: 1, [_xN]: _ACn }], [0, { [_hH2]: _xaebo }]], + 3 + ]; + var PutBucketCorsRequest$ = [ + 3, + n05, + _PBCR, + 0, + [_B, _CORSC, _CMDo, _CA2, _EBO], + [[0, 1], [() => CORSConfiguration$, { [_hP]: 1, [_xN]: _CORSC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketEncryptionRequest$ = [ + 3, + n05, + _PBER, + 0, + [_B, _SSEC, _CMDo, _CA2, _EBO], + [[0, 1], [() => ServerSideEncryptionConfiguration$, { [_hP]: 1, [_xN]: _SSEC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketIntelligentTieringConfigurationRequest$ = [ + 3, + n05, + _PBITCR, + 0, + [_B, _I, _ITC, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [() => IntelligentTieringConfiguration$, { [_hP]: 1, [_xN]: _ITC }], [0, { [_hH2]: _xaebo }]], + 3 + ]; + var PutBucketInventoryConfigurationRequest$ = [ + 3, + n05, + _PBICR, + 0, + [_B, _I, _IC, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [() => InventoryConfiguration$, { [_hP]: 1, [_xN]: _IC }], [0, { [_hH2]: _xaebo }]], + 3 + ]; + var PutBucketLifecycleConfigurationOutput$ = [ + 3, + n05, + _PBLCO, + 0, + [_TDMOS], + [[0, { [_hH2]: _xatdmos }]] + ]; + var PutBucketLifecycleConfigurationRequest$ = [ + 3, + n05, + _PBLCR, + 0, + [_B, _CA2, _LCi, _EBO, _TDMOS], + [[0, 1], [0, { [_hH2]: _xasca }], [() => BucketLifecycleConfiguration$, { [_hP]: 1, [_xN]: _LCi }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xatdmos }]], + 1 + ]; + var PutBucketLoggingRequest$ = [ + 3, + n05, + _PBLR, + 0, + [_B, _BLS, _CMDo, _CA2, _EBO], + [[0, 1], [() => BucketLoggingStatus$, { [_hP]: 1, [_xN]: _BLS }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketMetricsConfigurationRequest$ = [ + 3, + n05, + _PBMCR, + 0, + [_B, _I, _MCe, _EBO], + [[0, 1], [0, { [_hQ2]: _i }], [() => MetricsConfiguration$, { [_hP]: 1, [_xN]: _MCe }], [0, { [_hH2]: _xaebo }]], + 3 + ]; + var PutBucketNotificationConfigurationRequest$ = [ + 3, + n05, + _PBNCR, + 0, + [_B, _NC, _EBO, _SDV], + [[0, 1], [() => NotificationConfiguration$, { [_hP]: 1, [_xN]: _NC }], [0, { [_hH2]: _xaebo }], [2, { [_hH2]: _xasdv }]], + 2 + ]; + var PutBucketOwnershipControlsRequest$ = [ + 3, + n05, + _PBOCR, + 0, + [_B, _OC, _CMDo, _EBO, _CA2], + [[0, 1], [() => OwnershipControls$, { [_hP]: 1, [_xN]: _OC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xasca }]], + 2 + ]; + var PutBucketPolicyRequest$ = [ + 3, + n05, + _PBPR, + 0, + [_B, _Po, _CMDo, _CA2, _CRSBA, _EBO], + [[0, 1], [0, 16], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [2, { [_hH2]: _xacrsba }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketReplicationRequest$ = [ + 3, + n05, + _PBRR, + 0, + [_B, _RCe, _CMDo, _CA2, _To, _EBO], + [[0, 1], [() => ReplicationConfiguration$, { [_hP]: 1, [_xN]: _RCe }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xabolt }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketRequestPaymentRequest$ = [ + 3, + n05, + _PBRPR, + 0, + [_B, _RPC, _CMDo, _CA2, _EBO], + [[0, 1], [() => RequestPaymentConfiguration$, { [_hP]: 1, [_xN]: _RPC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketTaggingRequest$ = [ + 3, + n05, + _PBTR, + 0, + [_B, _Tag, _CMDo, _CA2, _EBO], + [[0, 1], [() => Tagging$, { [_hP]: 1, [_xN]: _Tag }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketVersioningRequest$ = [ + 3, + n05, + _PBVR, + 0, + [_B, _VC, _CMDo, _CA2, _MFA, _EBO], + [[0, 1], [() => VersioningConfiguration$, { [_hP]: 1, [_xN]: _VC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xam_ }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutBucketWebsiteRequest$ = [ + 3, + n05, + _PBWR, + 0, + [_B, _WC, _CMDo, _CA2, _EBO], + [[0, 1], [() => WebsiteConfiguration$, { [_hP]: 1, [_xN]: _WC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutObjectAclOutput$ = [ + 3, + n05, + _POAO, + 0, + [_RC2], + [[0, { [_hH2]: _xarc }]] + ]; + var PutObjectAclRequest$ = [ + 3, + n05, + _POAR, + 0, + [_B, _K2, _ACL_, _ACP, _CMDo, _CA2, _GFC, _GR, _GRACP, _GW, _GWACP, _RP, _VI, _EBO], + [[0, 1], [0, 1], [0, { [_hH2]: _xaa }], [() => AccessControlPolicy$, { [_hP]: 1, [_xN]: _ACP }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xagfc }], [0, { [_hH2]: _xagr }], [0, { [_hH2]: _xagra }], [0, { [_hH2]: _xagw }], [0, { [_hH2]: _xagwa }], [0, { [_hH2]: _xarp }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutObjectAnnotationOutput$ = [ + 3, + n05, + _POAOu, + 0, + [_K2, _AN, _OVI, _ET, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2, _SSE, _RC2], + [0, 0, [0, { [_hH2]: _xaovi }], [0, { [_hH2]: _ET }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xact }], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xarc }]] + ]; + var PutObjectAnnotationRequest$ = [ + 3, + n05, + _POARu, + 0, + [_B, _K2, _AN, _AP, _VI, _OIM, _CA2, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CMDo, _RP, _EBO], + [[0, 1], [0, 1], [0, { [_hQ2]: _aN }], [() => StreamingBlob, 16], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xaoim }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 4 + ]; + var PutObjectLegalHoldOutput$ = [ + 3, + n05, + _POLHO, + 0, + [_RC2], + [[0, { [_hH2]: _xarc }]] + ]; + var PutObjectLegalHoldRequest$ = [ + 3, + n05, + _POLHR, + 0, + [_B, _K2, _LH, _RP, _VI, _CMDo, _CA2, _EBO], + [[0, 1], [0, 1], [() => ObjectLockLegalHold$, { [_hP]: 1, [_xN]: _LH }], [0, { [_hH2]: _xarp }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutObjectLockConfigurationOutput$ = [ + 3, + n05, + _POLCO, + 0, + [_RC2], + [[0, { [_hH2]: _xarc }]] + ]; + var PutObjectLockConfigurationRequest$ = [ + 3, + n05, + _POLCR, + 0, + [_B, _OLC, _RP, _To, _CMDo, _CA2, _EBO], + [[0, 1], [() => ObjectLockConfiguration$, { [_hP]: 1, [_xN]: _OLC }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xabolt }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 1 + ]; + var PutObjectOutput$ = [ + 3, + n05, + _POO, + 0, + [_Ex, _ET, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _CT2, _SSE, _VI, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _Si, _RC2], + [[0, { [_hH2]: _xae }], [0, { [_hH2]: _ET }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xact }], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xavi }], [0, { [_hH2]: _xasseca }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }], [1, { [_hH2]: _xaos }], [0, { [_hH2]: _xarc }]] + ]; + var PutObjectRequest$ = [ + 3, + n05, + _POR, + 0, + [_B, _K2, _ACL_, _Bo, _CC, _CDo, _CEo, _CL, _CLo, _CMDo, _CTo, _CA2, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _Exp, _IM, _INM, _GFC, _GR, _GRACP, _GWACP, _WOB, _M, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _OLEH, _OLEHDD, _OLEHDY, _EBO], + [[0, 1], [0, 1], [0, { [_hH2]: _xaa }], [() => StreamingBlob, 16], [0, { [_hH2]: _CC_ }], [0, { [_hH2]: _CD_ }], [0, { [_hH2]: _CE_ }], [0, { [_hH2]: _CL_ }], [1, { [_hH2]: _CL__ }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _CT_ }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [4, { [_hH2]: _Exp }], [0, { [_hH2]: _IM_ }], [0, { [_hH2]: _INM_ }], [0, { [_hH2]: _xagfc }], [0, { [_hH2]: _xagr }], [0, { [_hH2]: _xagra }], [0, { [_hH2]: _xagwa }], [1, { [_hH2]: _xawob }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xasc }], [0, { [_hH2]: _xawrl }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH2]: _xassec }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xat }], [0, { [_hH2]: _xaolm }], [5, { [_hH2]: _xaolrud }], [0, { [_hH2]: _xaollh }], [0, { [_hH2]: _xaoleh }], [1, { [_hH2]: _xaolehdd }], [1, { [_hH2]: _xaolehdy }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutObjectRetentionOutput$ = [ + 3, + n05, + _PORO, + 0, + [_RC2], + [[0, { [_hH2]: _xarc }]] + ]; + var PutObjectRetentionRequest$ = [ + 3, + n05, + _PORR, + 0, + [_B, _K2, _Ret, _RP, _VI, _BGR, _CMDo, _CA2, _EBO], + [[0, 1], [0, 1], [() => ObjectLockRetention$, { [_hP]: 1, [_xN]: _Ret }], [0, { [_hH2]: _xarp }], [0, { [_hQ2]: _vI }], [2, { [_hH2]: _xabgr }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var PutObjectTaggingOutput$ = [ + 3, + n05, + _POTO, + 0, + [_VI], + [[0, { [_hH2]: _xavi }]] + ]; + var PutObjectTaggingRequest$ = [ + 3, + n05, + _POTR, + 0, + [_B, _K2, _Tag, _VI, _CMDo, _CA2, _EBO, _RP], + [[0, 1], [0, 1], [() => Tagging$, { [_hP]: 1, [_xN]: _Tag }], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xarp }]], + 3 + ]; + var PutPublicAccessBlockRequest$ = [ + 3, + n05, + _PPABR, + 0, + [_B, _PABC, _CMDo, _CA2, _EBO], + [[0, 1], [() => PublicAccessBlockConfiguration$, { [_hP]: 1, [_xN]: _PABC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var QueueConfiguration$ = [ + 3, + n05, + _QCue, + 0, + [_QA, _Ev, _I, _F], + [[0, { [_xN]: _Qu }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], + 2 + ]; + var RecordExpiration$ = [ + 3, + n05, + _REe, + 0, + [_Ex, _D], + [0, 1], + 1 + ]; + var RecordsEvent$ = [ + 3, + n05, + _REec, + 0, + [_Payl], + [[21, { [_eP]: 1 }]] + ]; + var Redirect$ = [ + 3, + n05, + _Red, + 0, + [_HN, _HRC, _Pro, _RKPW, _RKW], + [0, 0, 0, 0, 0] + ]; + var RedirectAllRequestsTo$ = [ + 3, + n05, + _RART, + 0, + [_HN, _Pro], + [0, 0], + 1 + ]; + var RenameObjectOutput$ = [ + 3, + n05, + _ROO, + 0, + [], + [] + ]; + var RenameObjectRequest$ = [ + 3, + n05, + _ROR, + 0, + [_B, _K2, _RSen, _DIM, _DINM, _DIMS, _DIUS, _SIM, _SINM, _SIMS, _SIUS, _CTl], + [[0, 1], [0, 1], [0, { [_hH2]: _xars_ }], [0, { [_hH2]: _IM_ }], [0, { [_hH2]: _INM_ }], [4, { [_hH2]: _IMS_ }], [4, { [_hH2]: _IUS_ }], [0, { [_hH2]: _xarsim }], [0, { [_hH2]: _xarsinm }], [6, { [_hH2]: _xarsims }], [6, { [_hH2]: _xarsius }], [0, { [_hH2]: _xact_, [_iT3]: 1 }]], + 3 + ]; + var ReplicaModifications$ = [ + 3, + n05, + _RM, + 0, + [_S], + [0], + 1 + ]; + var ReplicationConfiguration$ = [ + 3, + n05, + _RCe, + 0, + [_R, _Ru], + [0, [() => ReplicationRules, { [_xF]: 1, [_xN]: _Rul }]], + 2 + ]; + var ReplicationRule$ = [ + 3, + n05, + _RRe, + 0, + [_S, _Des, _ID, _Pri, _P2, _F, _SSC, _EOR, _DMR], + [0, () => Destination$, 0, 1, 0, [() => ReplicationRuleFilter$, 0], () => SourceSelectionCriteria$, () => ExistingObjectReplication$, () => DeleteMarkerReplication$], + 2 + ]; + var ReplicationRuleAndOperator$ = [ + 3, + n05, + _RRAO, + 0, + [_P2, _T2], + [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta2 }]] + ]; + var ReplicationRuleFilter$ = [ + 3, + n05, + _RRF, + 0, + [_P2, _Ta2, _An], + [0, () => Tag$2, [() => ReplicationRuleAndOperator$, 0]] + ]; + var ReplicationTime$ = [ + 3, + n05, + _RT3, + 0, + [_S, _Tim], + [0, () => ReplicationTimeValue$], + 2 + ]; + var ReplicationTimeValue$ = [ + 3, + n05, + _RTV, + 0, + [_Mi], + [1] + ]; + var RequestPaymentConfiguration$ = [ + 3, + n05, + _RPC, + 0, + [_Pay], + [0], + 1 + ]; + var RequestProgress$ = [ + 3, + n05, + _RPe, + 0, + [_Ena], + [2] + ]; + var RestoreObjectOutput$ = [ + 3, + n05, + _ROOe, + 0, + [_RC2, _ROP], + [[0, { [_hH2]: _xarc }], [0, { [_hH2]: _xarop }]] + ]; + var RestoreObjectRequest$ = [ + 3, + n05, + _RORe, + 0, + [_B, _K2, _VI, _RRes, _RP, _CA2, _EBO], + [[0, 1], [0, 1], [0, { [_hQ2]: _vI }], [() => RestoreRequest$, { [_hP]: 1, [_xN]: _RRes }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var RestoreRequest$ = [ + 3, + n05, + _RRes, + 0, + [_D, _GJP, _Ty, _Ti, _Desc, _SP, _OL], + [1, () => GlacierJobParameters$, 0, 0, 0, () => SelectParameters$, [() => OutputLocation$, 0]] + ]; + var RestoreStatus$ = [ + 3, + n05, + _RSe, + 0, + [_IRIP, _RED], + [2, 4] + ]; + var RoutingRule$ = [ + 3, + n05, + _RRo, + 0, + [_Red, _Co], + [() => Redirect$, () => Condition$], + 1 + ]; + var S3KeyFilter$ = [ + 3, + n05, + _SKF, + 0, + [_FRi], + [[() => FilterRuleList, { [_xF]: 1, [_xN]: _FR }]] + ]; + var S3Location$ = [ + 3, + n05, + _SL, + 0, + [_BNu, _P2, _En, _CACL, _ACL, _Tag, _UM, _SC], + [0, 0, [() => Encryption$, 0], 0, [() => Grants, 0], [() => Tagging$, 0], [() => UserMetadata, 0], 0], + 2 + ]; + var S3TablesDestination$ = [ + 3, + n05, + _STD, + 0, + [_TBA, _TN], + [0, 0], + 2 + ]; + var S3TablesDestinationResult$ = [ + 3, + n05, + _STDR, + 0, + [_TBA, _TN, _TA, _TNa], + [0, 0, 0, 0], + 4 + ]; + var ScanRange$ = [ + 3, + n05, + _SR, + 0, + [_St, _End], + [1, 1] + ]; + var SelectObjectContentOutput$ = [ + 3, + n05, + _SOCO, + 0, + [_Payl], + [[() => SelectObjectContentEventStream$, 16]] + ]; + var SelectObjectContentRequest$ = [ + 3, + n05, + _SOCR, + 0, + [_B, _K2, _Expr, _ETx, _IS, _OSu, _SSECA, _SSECK, _SSECKMD, _RPe, _SR, _EBO], + [[0, 1], [0, 1], 0, 0, () => InputSerialization$, () => OutputSerialization$, [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], () => RequestProgress$, () => ScanRange$, [0, { [_hH2]: _xaebo }]], + 6 + ]; + var SelectParameters$ = [ + 3, + n05, + _SP, + 0, + [_IS, _ETx, _Expr, _OSu], + [() => InputSerialization$, 0, 0, () => OutputSerialization$], + 4 + ]; + var ServerSideEncryptionByDefault$ = [ + 3, + n05, + _SSEBD, + 0, + [_SSEA, _KMSMKID], + [0, [() => SSEKMSKeyId, 0]], + 1 + ]; + var ServerSideEncryptionConfiguration$ = [ + 3, + n05, + _SSEC, + 0, + [_Ru], + [[() => ServerSideEncryptionRules, { [_xF]: 1, [_xN]: _Rul }]], + 1 + ]; + var ServerSideEncryptionRule$ = [ + 3, + n05, + _SSER, + 0, + [_ASSEBD, _BKE, _BET], + [[() => ServerSideEncryptionByDefault$, 0], 2, [() => BlockedEncryptionTypes$, 0]] + ]; + var SessionCredentials$ = [ + 3, + n05, + _SCe, + 0, + [_AKI2, _SAK2, _ST2, _Ex], + [[0, { [_xN]: _AKI2 }], [() => SessionCredentialValue, { [_xN]: _SAK2 }], [() => SessionCredentialValue, { [_xN]: _ST2 }], [4, { [_xN]: _Ex }]], + 4 + ]; + var SimplePrefix$ = [ + 3, + n05, + _SPi, + { [_xN]: _SPi }, + [], + [] + ]; + var SourceSelectionCriteria$ = [ + 3, + n05, + _SSC, + 0, + [_SKEO, _RM], + [() => SseKmsEncryptedObjects$, () => ReplicaModifications$] + ]; + var SSEKMS$ = [ + 3, + n05, + _SSEKMS, + { [_xN]: _SK }, + [_KI], + [[() => SSEKMSKeyId, 0]], + 1 + ]; + var SseKmsEncryptedObjects$ = [ + 3, + n05, + _SKEO, + 0, + [_S], + [0], + 1 + ]; + var SSEKMSEncryption$ = [ + 3, + n05, + _SSEKMSE, + { [_xN]: _SK }, + [_KMSKA, _BKE], + [[() => NonEmptyKmsKeyArnString, 0], 2], + 1 + ]; + var SSES3$ = [ + 3, + n05, + _SSES, + { [_xN]: _SS }, + [], + [] + ]; + var Stats$ = [ + 3, + n05, + _Sta, + 0, + [_BS, _BP, _BRy], + [1, 1, 1] + ]; + var StatsEvent$ = [ + 3, + n05, + _SE, + 0, + [_Det], + [[() => Stats$, { [_eP]: 1 }]] + ]; + var StorageClassAnalysis$ = [ + 3, + n05, + _SCA, + 0, + [_DE], + [() => StorageClassAnalysisDataExport$] + ]; + var StorageClassAnalysisDataExport$ = [ + 3, + n05, + _SCADE, + 0, + [_OSV, _Des], + [0, () => AnalyticsExportDestination$], + 2 + ]; + var Tag$2 = [ + 3, + n05, + _Ta2, + 0, + [_K2, _V2], + [0, 0], + 2 + ]; + var Tagging$ = [ + 3, + n05, + _Tag, + 0, + [_TSa], + [[() => TagSet, 0]], + 1 + ]; + var TargetGrant$ = [ + 3, + n05, + _TGa, + 0, + [_Gra, _Pe], + [[() => Grantee$, { [_xNm]: [_x, _hi] }], 0] + ]; + var TargetObjectKeyFormat$ = [ + 3, + n05, + _TOKF, + 0, + [_SPi, _PP], + [[() => SimplePrefix$, { [_xN]: _SPi }], [() => PartitionedPrefix$, { [_xN]: _PP }]] + ]; + var Tiering$ = [ + 3, + n05, + _Tier, + 0, + [_D, _AT3], + [1, 0], + 2 + ]; + var TopicConfiguration$ = [ + 3, + n05, + _TCop, + 0, + [_TAo, _Ev, _I, _F], + [[0, { [_xN]: _Top }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], + 2 + ]; + var Transition$ = [ + 3, + n05, + _Tra, + 0, + [_Da, _D, _SC], + [5, 1, 0] + ]; + var UpdateBucketMetadataAnnotationTableConfigurationRequest$ = [ + 3, + n05, + _UBMATCR, + 0, + [_B, _ATC, _CMDo, _CA2, _EBO], + [[0, 1], [() => AnnotationTableConfigurationUpdates$, { [_hP]: 1, [_xN]: _ATC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var UpdateBucketMetadataInventoryTableConfigurationRequest$ = [ + 3, + n05, + _UBMITCR, + 0, + [_B, _ITCn, _CMDo, _CA2, _EBO], + [[0, 1], [() => InventoryTableConfigurationUpdates$, { [_hP]: 1, [_xN]: _ITCn }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var UpdateBucketMetadataJournalTableConfigurationRequest$ = [ + 3, + n05, + _UBMJTCR, + 0, + [_B, _JTC, _CMDo, _CA2, _EBO], + [[0, 1], [() => JournalTableConfigurationUpdates$, { [_hP]: 1, [_xN]: _JTC }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xaebo }]], + 2 + ]; + var UpdateObjectEncryptionRequest$ = [ + 3, + n05, + _UOER, + 0, + [_B, _K2, _OE, _VI, _RP, _EBO, _CMDo, _CA2], + [[0, 1], [0, 1], [() => ObjectEncryption$, 16], [0, { [_hQ2]: _vI }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }]], + 3 + ]; + var UpdateObjectEncryptionResponse$ = [ + 3, + n05, + _UOERp, + 0, + [_RC2], + [[0, { [_hH2]: _xarc }]] + ]; + var UploadPartCopyOutput$ = [ + 3, + n05, + _UPCO, + 0, + [_CSVI, _CPR, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _RC2], + [[0, { [_hH2]: _xacsvi }], [() => CopyPartResult$, 16], [0, { [_hH2]: _xasse }], [0, { [_hH2]: _xasseca }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xarc }]] + ]; + var UploadPartCopyRequest$ = [ + 3, + n05, + _UPCR, + 0, + [_B, _CSo, _K2, _PN, _UI, _CSIM, _CSIMS, _CSINM, _CSIUS, _CSRo, _SSECA, _SSECK, _SSECKMD, _CSSSECA, _CSSSECK, _CSSSECKMD, _RP, _EBO, _ESBO], + [[0, 1], [0, { [_hH2]: _xacs___ }], [0, 1], [1, { [_hQ2]: _pN }], [0, { [_hQ2]: _uI }], [0, { [_hH2]: _xacsim }], [4, { [_hH2]: _xacsims }], [0, { [_hH2]: _xacsinm }], [4, { [_hH2]: _xacsius }], [0, { [_hH2]: _xacsr }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [0, { [_hH2]: _xacssseca }], [() => CopySourceSSECustomerKey, { [_hH2]: _xacssseck }], [0, { [_hH2]: _xacssseckM }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }], [0, { [_hH2]: _xasebo }]], + 5 + ]; + var UploadPartOutput$ = [ + 3, + n05, + _UPO, + 0, + [_SSE, _ET, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _RC2], + [[0, { [_hH2]: _xasse }], [0, { [_hH2]: _ET }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xasseca }], [0, { [_hH2]: _xasseckM }], [() => SSEKMSKeyId, { [_hH2]: _xasseakki }], [2, { [_hH2]: _xassebke }], [0, { [_hH2]: _xarc }]] + ]; + var UploadPartRequest$ = [ + 3, + n05, + _UPR, + 0, + [_B, _K2, _PN, _UI, _Bo, _CLo, _CMDo, _CA2, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _SSECA, _SSECK, _SSECKMD, _RP, _EBO], + [[0, 1], [0, 1], [1, { [_hQ2]: _pN }], [0, { [_hQ2]: _uI }], [() => StreamingBlob, 16], [1, { [_hH2]: _CL__ }], [0, { [_hH2]: _CM }], [0, { [_hH2]: _xasca }], [0, { [_hH2]: _xacc }], [0, { [_hH2]: _xacc_ }], [0, { [_hH2]: _xacc__ }], [0, { [_hH2]: _xacs }], [0, { [_hH2]: _xacs_ }], [0, { [_hH2]: _xacs__ }], [0, { [_hH2]: _xacm }], [0, { [_hH2]: _xacx }], [0, { [_hH2]: _xacx_ }], [0, { [_hH2]: _xacx__ }], [0, { [_hH2]: _xasseca }], [() => SSECustomerKey, { [_hH2]: _xasseck }], [0, { [_hH2]: _xasseckM }], [0, { [_hH2]: _xarp }], [0, { [_hH2]: _xaebo }]], + 4 + ]; + var VersioningConfiguration$ = [ + 3, + n05, + _VC, + 0, + [_MFAD, _S], + [[0, { [_xN]: _MDf }], 0] + ]; + var WebsiteConfiguration$ = [ + 3, + n05, + _WC, + 0, + [_EDr, _IDn, _RART, _RR], + [() => ErrorDocument$, () => IndexDocument$, () => RedirectAllRequestsTo$, [() => RoutingRules, 0]] + ]; + var WriteGetObjectResponseRequest$ = [ + 3, + n05, + _WGORR, + 0, + [_RReq, _RTe, _Bo, _SCt, _ECr, _EM, _AR2, _CC, _CDo, _CEo, _CL, _CLo, _CR, _CTo, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CSHAhe, _CMD, _CXXHASH, _CXXHASHh, _CXXHASHhe, _DM, _ET, _Exp, _Ex, _LM, _MM, _M, _OLM, _OLLHS, _OLRUD, _PC2, _RS, _RC2, _Re, _SSE, _SSECA, _SSEKMSKI, _SSECKMD, _SC, _TC2, _VI, _BKE], + [[0, { [_hL]: 1, [_hH2]: _xarr }], [0, { [_hH2]: _xart }], [() => StreamingBlob, 16], [1, { [_hH2]: _xafs }], [0, { [_hH2]: _xafec }], [0, { [_hH2]: _xafem }], [0, { [_hH2]: _xafhar }], [0, { [_hH2]: _xafhCC }], [0, { [_hH2]: _xafhCD }], [0, { [_hH2]: _xafhCE }], [0, { [_hH2]: _xafhCL }], [1, { [_hH2]: _CL__ }], [0, { [_hH2]: _xafhCR }], [0, { [_hH2]: _xafhCT }], [0, { [_hH2]: _xafhxacc }], [0, { [_hH2]: _xafhxacc_ }], [0, { [_hH2]: _xafhxacc__ }], [0, { [_hH2]: _xafhxacs }], [0, { [_hH2]: _xafhxacs_ }], [0, { [_hH2]: _xafhxacs__ }], [0, { [_hH2]: _xafhxacm }], [0, { [_hH2]: _xafhxacx }], [0, { [_hH2]: _xafhxacx_ }], [0, { [_hH2]: _xafhxacx__ }], [2, { [_hH2]: _xafhxadm }], [0, { [_hH2]: _xafhE }], [4, { [_hH2]: _xafhE_ }], [0, { [_hH2]: _xafhxae }], [4, { [_hH2]: _xafhLM }], [1, { [_hH2]: _xafhxamm }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH2]: _xafhxaolm }], [0, { [_hH2]: _xafhxaollh }], [5, { [_hH2]: _xafhxaolrud }], [1, { [_hH2]: _xafhxampc }], [0, { [_hH2]: _xafhxars }], [0, { [_hH2]: _xafhxarc }], [0, { [_hH2]: _xafhxar }], [0, { [_hH2]: _xafhxasse }], [0, { [_hH2]: _xafhxasseca }], [() => SSEKMSKeyId, { [_hH2]: _xafhxasseakki }], [0, { [_hH2]: _xafhxasseckM }], [0, { [_hH2]: _xafhxasc }], [1, { [_hH2]: _xafhxatc }], [0, { [_hH2]: _xafhxavi }], [2, { [_hH2]: _xafhxassebke }]], + 2 + ]; + var __Unit = "unit"; + var AnalyticsConfigurationList = [ + 1, + n05, + _ACLn, + 0, + [ + () => AnalyticsConfiguration$, + 0 + ] + ]; + var AnnotationList = [ + 1, + n05, + _AL, + 0, + [ + () => AnnotationEntry$, + { [_xN]: _AE } + ] + ]; + var Buckets = [ + 1, + n05, + _Bu, + 0, + [ + () => Bucket$, + { [_xN]: _B } + ] + ]; + var CommonPrefixList = [ + 1, + n05, + _CPL, + 0, + () => CommonPrefix$ + ]; + var CompletedPartList = [ + 1, + n05, + _CPLo, + 0, + () => CompletedPart$ + ]; + var CORSRules = [ + 1, + n05, + _CORSR, + 0, + [ + () => CORSRule$, + 0 + ] + ]; + var DeletedObjects = [ + 1, + n05, + _DOe, + 0, + () => DeletedObject$ + ]; + var DeleteMarkers = [ + 1, + n05, + _DMe, + 0, + () => DeleteMarkerEntry$ + ]; + var EncryptionTypeList = [ + 1, + n05, + _ETL, + 0, + [ + 0, + { [_xN]: _ETn } + ] + ]; + var Errors = [ + 1, + n05, + _Er, + 0, + () => _Error$ + ]; + var FilterRuleList = [ + 1, + n05, + _FRL, + 0, + () => FilterRule$ + ]; + var Grants = [ + 1, + n05, + _G, + 0, + [ + () => Grant$, + { [_xN]: _Gr } + ] + ]; + var IntelligentTieringConfigurationList = [ + 1, + n05, + _ITCL, + 0, + [ + () => IntelligentTieringConfiguration$, + 0 + ] + ]; + var InventoryConfigurationList = [ + 1, + n05, + _ICL, + 0, + [ + () => InventoryConfiguration$, + 0 + ] + ]; + var InventoryOptionalFields = [ + 1, + n05, + _IOF, + 0, + [ + 0, + { [_xN]: _Fi } + ] + ]; + var LambdaFunctionConfigurationList = [ + 1, + n05, + _LFCL, + 0, + [ + () => LambdaFunctionConfiguration$, + 0 + ] + ]; + var LifecycleRules = [ + 1, + n05, + _LRi, + 0, + [ + () => LifecycleRule$, + 0 + ] + ]; + var MetricsConfigurationList = [ + 1, + n05, + _MCL, + 0, + [ + () => MetricsConfiguration$, + 0 + ] + ]; + var MultipartUploadList = [ + 1, + n05, + _MUL, + 0, + () => MultipartUpload$ + ]; + var NoncurrentVersionTransitionList = [ + 1, + n05, + _NVTL, + 0, + () => NoncurrentVersionTransition$ + ]; + var ObjectIdentifierList = [ + 1, + n05, + _OIL, + 0, + () => ObjectIdentifier$ + ]; + var ObjectList = [ + 1, + n05, + _OLb, + 0, + [ + () => _Object$, + 0 + ] + ]; + var ObjectVersionList = [ + 1, + n05, + _OVL, + 0, + [ + () => ObjectVersion$, + 0 + ] + ]; + var OwnershipControlsRules = [ + 1, + n05, + _OCRw, + 0, + () => OwnershipControlsRule$ + ]; + var Parts = [ + 1, + n05, + _Pa, + 0, + () => Part$ + ]; + var PartsList = [ + 1, + n05, + _PL, + 0, + () => ObjectPart$ + ]; + var QueueConfigurationList = [ + 1, + n05, + _QCL, + 0, + [ + () => QueueConfiguration$, + 0 + ] + ]; + var ReplicationRules = [ + 1, + n05, + _RRep, + 0, + [ + () => ReplicationRule$, + 0 + ] + ]; + var RoutingRules = [ + 1, + n05, + _RR, + 0, + [ + () => RoutingRule$, + { [_xN]: _RRo } + ] + ]; + var ServerSideEncryptionRules = [ + 1, + n05, + _SSERe, + 0, + [ + () => ServerSideEncryptionRule$, + 0 + ] + ]; + var TagSet = [ + 1, + n05, + _TSa, + 0, + [ + () => Tag$2, + { [_xN]: _Ta2 } + ] + ]; + var TargetGrants = [ + 1, + n05, + _TG, + 0, + [ + () => TargetGrant$, + { [_xN]: _Gr } + ] + ]; + var TieringList = [ + 1, + n05, + _TL, + 0, + () => Tiering$ + ]; + var TopicConfigurationList = [ + 1, + n05, + _TCL, + 0, + [ + () => TopicConfiguration$, + 0 + ] + ]; + var TransitionList = [ + 1, + n05, + _TLr, + 0, + () => Transition$ + ]; + var UserMetadata = [ + 1, + n05, + _UM, + 0, + [ + () => MetadataEntry$, + { [_xN]: _ME } + ] + ]; + var AnalyticsFilter$ = [ + 4, + n05, + _AF, + 0, + [_P2, _Ta2, _An], + [0, () => Tag$2, [() => AnalyticsAndOperator$, 0]] + ]; + var MetricsFilter$ = [ + 4, + n05, + _MF, + 0, + [_P2, _Ta2, _APAc, _An], + [0, () => Tag$2, 0, [() => MetricsAndOperator$, 0]] + ]; + var ObjectEncryption$ = [ + 4, + n05, + _OE, + 0, + [_SSEKMS], + [[() => SSEKMSEncryption$, { [_xN]: _SK }]] + ]; + var SelectObjectContentEventStream$ = [ + 4, + n05, + _SOCES, + { [_st]: 1 }, + [_Rec, _Sta, _Pr2, _Cont, _End], + [[() => RecordsEvent$, 0], [() => StatsEvent$, 0], [() => ProgressEvent$, 0], () => ContinuationEvent$, () => EndEvent$] + ]; + var AbortMultipartUpload$ = [ + 9, + n05, + _AMU, + { [_h4]: ["DELETE", "/{Key+}?x-id=AbortMultipartUpload", 204] }, + () => AbortMultipartUploadRequest$, + () => AbortMultipartUploadOutput$ + ]; + var CompleteMultipartUpload$ = [ + 9, + n05, + _CMUo, + { [_h4]: ["POST", "/{Key+}", 200] }, + () => CompleteMultipartUploadRequest$, + () => CompleteMultipartUploadOutput$ + ]; + var CopyObject$ = [ + 9, + n05, + _CO, + { [_h4]: ["PUT", "/{Key+}?x-id=CopyObject", 200] }, + () => CopyObjectRequest$, + () => CopyObjectOutput$ + ]; + var CreateBucket$ = [ + 9, + n05, + _CB, + { [_h4]: ["PUT", "/", 200] }, + () => CreateBucketRequest$, + () => CreateBucketOutput$ + ]; + var CreateBucketMetadataConfiguration$ = [ + 9, + n05, + _CBMC, + { [_hC]: "-", [_h4]: ["POST", "/?metadataConfiguration", 200] }, + () => CreateBucketMetadataConfigurationRequest$, + () => __Unit + ]; + var CreateBucketMetadataTableConfiguration$ = [ + 9, + n05, + _CBMTC, + { [_hC]: "-", [_h4]: ["POST", "/?metadataTable", 200] }, + () => CreateBucketMetadataTableConfigurationRequest$, + () => __Unit + ]; + var CreateMultipartUpload$ = [ + 9, + n05, + _CMUr, + { [_h4]: ["POST", "/{Key+}?uploads", 200] }, + () => CreateMultipartUploadRequest$, + () => CreateMultipartUploadOutput$ + ]; + var CreateSession$ = [ + 9, + n05, + _CSr, + { [_h4]: ["GET", "/?session", 200] }, + () => CreateSessionRequest$, + () => CreateSessionOutput$ + ]; + var DeleteBucket$ = [ + 9, + n05, + _DB, + { [_h4]: ["DELETE", "/", 204] }, + () => DeleteBucketRequest$, + () => __Unit + ]; + var DeleteBucketAnalyticsConfiguration$ = [ + 9, + n05, + _DBAC, + { [_h4]: ["DELETE", "/?analytics", 204] }, + () => DeleteBucketAnalyticsConfigurationRequest$, + () => __Unit + ]; + var DeleteBucketCors$ = [ + 9, + n05, + _DBC, + { [_h4]: ["DELETE", "/?cors", 204] }, + () => DeleteBucketCorsRequest$, + () => __Unit + ]; + var DeleteBucketEncryption$ = [ + 9, + n05, + _DBE, + { [_h4]: ["DELETE", "/?encryption", 204] }, + () => DeleteBucketEncryptionRequest$, + () => __Unit + ]; + var DeleteBucketIntelligentTieringConfiguration$ = [ + 9, + n05, + _DBITC, + { [_h4]: ["DELETE", "/?intelligent-tiering", 204] }, + () => DeleteBucketIntelligentTieringConfigurationRequest$, + () => __Unit + ]; + var DeleteBucketInventoryConfiguration$ = [ + 9, + n05, + _DBIC, + { [_h4]: ["DELETE", "/?inventory", 204] }, + () => DeleteBucketInventoryConfigurationRequest$, + () => __Unit + ]; + var DeleteBucketLifecycle$ = [ + 9, + n05, + _DBL, + { [_h4]: ["DELETE", "/?lifecycle", 204] }, + () => DeleteBucketLifecycleRequest$, + () => __Unit + ]; + var DeleteBucketMetadataConfiguration$ = [ + 9, + n05, + _DBMC, + { [_h4]: ["DELETE", "/?metadataConfiguration", 204] }, + () => DeleteBucketMetadataConfigurationRequest$, + () => __Unit + ]; + var DeleteBucketMetadataTableConfiguration$ = [ + 9, + n05, + _DBMTC, + { [_h4]: ["DELETE", "/?metadataTable", 204] }, + () => DeleteBucketMetadataTableConfigurationRequest$, + () => __Unit + ]; + var DeleteBucketMetricsConfiguration$ = [ + 9, + n05, + _DBMCe, + { [_h4]: ["DELETE", "/?metrics", 204] }, + () => DeleteBucketMetricsConfigurationRequest$, + () => __Unit + ]; + var DeleteBucketOwnershipControls$ = [ + 9, + n05, + _DBOC, + { [_h4]: ["DELETE", "/?ownershipControls", 204] }, + () => DeleteBucketOwnershipControlsRequest$, + () => __Unit + ]; + var DeleteBucketPolicy$ = [ + 9, + n05, + _DBP, + { [_h4]: ["DELETE", "/?policy", 204] }, + () => DeleteBucketPolicyRequest$, + () => __Unit + ]; + var DeleteBucketReplication$ = [ + 9, + n05, + _DBRe, + { [_h4]: ["DELETE", "/?replication", 204] }, + () => DeleteBucketReplicationRequest$, + () => __Unit + ]; + var DeleteBucketTagging$ = [ + 9, + n05, + _DBT, + { [_h4]: ["DELETE", "/?tagging", 204] }, + () => DeleteBucketTaggingRequest$, + () => __Unit + ]; + var DeleteBucketWebsite$ = [ + 9, + n05, + _DBW, + { [_h4]: ["DELETE", "/?website", 204] }, + () => DeleteBucketWebsiteRequest$, + () => __Unit + ]; + var DeleteObject$ = [ + 9, + n05, + _DOel, + { [_h4]: ["DELETE", "/{Key+}?x-id=DeleteObject", 204] }, + () => DeleteObjectRequest$, + () => DeleteObjectOutput$ + ]; + var DeleteObjectAnnotation$ = [ + 9, + n05, + _DOA, + { [_h4]: ["DELETE", "/{Key+}?annotation", 204] }, + () => DeleteObjectAnnotationRequest$, + () => DeleteObjectAnnotationOutput$ + ]; + var DeleteObjects$ = [ + 9, + n05, + _DOele, + { [_hC]: "-", [_h4]: ["POST", "/?delete", 200] }, + () => DeleteObjectsRequest$, + () => DeleteObjectsOutput$ + ]; + var DeleteObjectTagging$ = [ + 9, + n05, + _DOT, + { [_h4]: ["DELETE", "/{Key+}?tagging", 204] }, + () => DeleteObjectTaggingRequest$, + () => DeleteObjectTaggingOutput$ + ]; + var DeletePublicAccessBlock$ = [ + 9, + n05, + _DPAB, + { [_h4]: ["DELETE", "/?publicAccessBlock", 204] }, + () => DeletePublicAccessBlockRequest$, + () => __Unit + ]; + var GetBucketAbac$ = [ + 9, + n05, + _GBA, + { [_h4]: ["GET", "/?abac", 200] }, + () => GetBucketAbacRequest$, + () => GetBucketAbacOutput$ + ]; + var GetBucketAccelerateConfiguration$ = [ + 9, + n05, + _GBAC, + { [_h4]: ["GET", "/?accelerate", 200] }, + () => GetBucketAccelerateConfigurationRequest$, + () => GetBucketAccelerateConfigurationOutput$ + ]; + var GetBucketAcl$ = [ + 9, + n05, + _GBAe, + { [_h4]: ["GET", "/?acl", 200] }, + () => GetBucketAclRequest$, + () => GetBucketAclOutput$ + ]; + var GetBucketAnalyticsConfiguration$ = [ + 9, + n05, + _GBACe, + { [_h4]: ["GET", "/?analytics&x-id=GetBucketAnalyticsConfiguration", 200] }, + () => GetBucketAnalyticsConfigurationRequest$, + () => GetBucketAnalyticsConfigurationOutput$ + ]; + var GetBucketCors$ = [ + 9, + n05, + _GBC, + { [_h4]: ["GET", "/?cors", 200] }, + () => GetBucketCorsRequest$, + () => GetBucketCorsOutput$ + ]; + var GetBucketEncryption$ = [ + 9, + n05, + _GBE, + { [_h4]: ["GET", "/?encryption", 200] }, + () => GetBucketEncryptionRequest$, + () => GetBucketEncryptionOutput$ + ]; + var GetBucketIntelligentTieringConfiguration$ = [ + 9, + n05, + _GBITC, + { [_h4]: ["GET", "/?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration", 200] }, + () => GetBucketIntelligentTieringConfigurationRequest$, + () => GetBucketIntelligentTieringConfigurationOutput$ + ]; + var GetBucketInventoryConfiguration$ = [ + 9, + n05, + _GBIC, + { [_h4]: ["GET", "/?inventory&x-id=GetBucketInventoryConfiguration", 200] }, + () => GetBucketInventoryConfigurationRequest$, + () => GetBucketInventoryConfigurationOutput$ + ]; + var GetBucketLifecycleConfiguration$ = [ + 9, + n05, + _GBLC, + { [_h4]: ["GET", "/?lifecycle", 200] }, + () => GetBucketLifecycleConfigurationRequest$, + () => GetBucketLifecycleConfigurationOutput$ + ]; + var GetBucketLocation$ = [ + 9, + n05, + _GBL, + { [_h4]: ["GET", "/?location", 200] }, + () => GetBucketLocationRequest$, + () => GetBucketLocationOutput$ + ]; + var GetBucketLogging$ = [ + 9, + n05, + _GBLe, + { [_h4]: ["GET", "/?logging", 200] }, + () => GetBucketLoggingRequest$, + () => GetBucketLoggingOutput$ + ]; + var GetBucketMetadataConfiguration$ = [ + 9, + n05, + _GBMC, + { [_h4]: ["GET", "/?metadataConfiguration", 200] }, + () => GetBucketMetadataConfigurationRequest$, + () => GetBucketMetadataConfigurationOutput$ + ]; + var GetBucketMetadataTableConfiguration$ = [ + 9, + n05, + _GBMTC, + { [_h4]: ["GET", "/?metadataTable", 200] }, + () => GetBucketMetadataTableConfigurationRequest$, + () => GetBucketMetadataTableConfigurationOutput$ + ]; + var GetBucketMetricsConfiguration$ = [ + 9, + n05, + _GBMCe, + { [_h4]: ["GET", "/?metrics&x-id=GetBucketMetricsConfiguration", 200] }, + () => GetBucketMetricsConfigurationRequest$, + () => GetBucketMetricsConfigurationOutput$ + ]; + var GetBucketNotificationConfiguration$ = [ + 9, + n05, + _GBNC, + { [_h4]: ["GET", "/?notification", 200] }, + () => GetBucketNotificationConfigurationRequest$, + () => NotificationConfiguration$ + ]; + var GetBucketOwnershipControls$ = [ + 9, + n05, + _GBOC, + { [_h4]: ["GET", "/?ownershipControls", 200] }, + () => GetBucketOwnershipControlsRequest$, + () => GetBucketOwnershipControlsOutput$ + ]; + var GetBucketPolicy$ = [ + 9, + n05, + _GBP, + { [_h4]: ["GET", "/?policy", 200] }, + () => GetBucketPolicyRequest$, + () => GetBucketPolicyOutput$ + ]; + var GetBucketPolicyStatus$ = [ + 9, + n05, + _GBPS, + { [_h4]: ["GET", "/?policyStatus", 200] }, + () => GetBucketPolicyStatusRequest$, + () => GetBucketPolicyStatusOutput$ + ]; + var GetBucketReplication$ = [ + 9, + n05, + _GBR, + { [_h4]: ["GET", "/?replication", 200] }, + () => GetBucketReplicationRequest$, + () => GetBucketReplicationOutput$ + ]; + var GetBucketRequestPayment$ = [ + 9, + n05, + _GBRP, + { [_h4]: ["GET", "/?requestPayment", 200] }, + () => GetBucketRequestPaymentRequest$, + () => GetBucketRequestPaymentOutput$ + ]; + var GetBucketTagging$ = [ + 9, + n05, + _GBT, + { [_h4]: ["GET", "/?tagging", 200] }, + () => GetBucketTaggingRequest$, + () => GetBucketTaggingOutput$ + ]; + var GetBucketVersioning$ = [ + 9, + n05, + _GBV, + { [_h4]: ["GET", "/?versioning", 200] }, + () => GetBucketVersioningRequest$, + () => GetBucketVersioningOutput$ + ]; + var GetBucketWebsite$ = [ + 9, + n05, + _GBW, + { [_h4]: ["GET", "/?website", 200] }, + () => GetBucketWebsiteRequest$, + () => GetBucketWebsiteOutput$ + ]; + var GetObject$ = [ + 9, + n05, + _GO, + { [_hC]: "-", [_h4]: ["GET", "/{Key+}?x-id=GetObject", 200] }, + () => GetObjectRequest$, + () => GetObjectOutput$ + ]; + var GetObjectAcl$ = [ + 9, + n05, + _GOA, + { [_h4]: ["GET", "/{Key+}?acl", 200] }, + () => GetObjectAclRequest$, + () => GetObjectAclOutput$ + ]; + var GetObjectAnnotation$ = [ + 9, + n05, + _GOAe, + { [_hC]: "-", [_h4]: ["GET", "/{Key+}?annotation&x-id=GetObjectAnnotation", 200] }, + () => GetObjectAnnotationRequest$, + () => GetObjectAnnotationOutput$ + ]; + var GetObjectAttributes$ = [ + 9, + n05, + _GOAet, + { [_h4]: ["GET", "/{Key+}?attributes", 200] }, + () => GetObjectAttributesRequest$, + () => GetObjectAttributesOutput$ + ]; + var GetObjectLegalHold$ = [ + 9, + n05, + _GOLH, + { [_h4]: ["GET", "/{Key+}?legal-hold", 200] }, + () => GetObjectLegalHoldRequest$, + () => GetObjectLegalHoldOutput$ + ]; + var GetObjectLockConfiguration$ = [ + 9, + n05, + _GOLC, + { [_h4]: ["GET", "/?object-lock", 200] }, + () => GetObjectLockConfigurationRequest$, + () => GetObjectLockConfigurationOutput$ + ]; + var GetObjectRetention$ = [ + 9, + n05, + _GORe, + { [_h4]: ["GET", "/{Key+}?retention", 200] }, + () => GetObjectRetentionRequest$, + () => GetObjectRetentionOutput$ + ]; + var GetObjectTagging$ = [ + 9, + n05, + _GOT, + { [_h4]: ["GET", "/{Key+}?tagging", 200] }, + () => GetObjectTaggingRequest$, + () => GetObjectTaggingOutput$ + ]; + var GetObjectTorrent$ = [ + 9, + n05, + _GOTe, + { [_h4]: ["GET", "/{Key+}?torrent", 200] }, + () => GetObjectTorrentRequest$, + () => GetObjectTorrentOutput$ + ]; + var GetPublicAccessBlock$ = [ + 9, + n05, + _GPAB, + { [_h4]: ["GET", "/?publicAccessBlock", 200] }, + () => GetPublicAccessBlockRequest$, + () => GetPublicAccessBlockOutput$ + ]; + var HeadBucket$ = [ + 9, + n05, + _HB, + { [_h4]: ["HEAD", "/", 200] }, + () => HeadBucketRequest$, + () => HeadBucketOutput$ + ]; + var HeadObject$ = [ + 9, + n05, + _HO, + { [_h4]: ["HEAD", "/{Key+}", 200] }, + () => HeadObjectRequest$, + () => HeadObjectOutput$ + ]; + var ListBucketAnalyticsConfigurations$ = [ + 9, + n05, + _LBAC, + { [_h4]: ["GET", "/?analytics&x-id=ListBucketAnalyticsConfigurations", 200] }, + () => ListBucketAnalyticsConfigurationsRequest$, + () => ListBucketAnalyticsConfigurationsOutput$ + ]; + var ListBucketIntelligentTieringConfigurations$ = [ + 9, + n05, + _LBITC, + { [_h4]: ["GET", "/?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations", 200] }, + () => ListBucketIntelligentTieringConfigurationsRequest$, + () => ListBucketIntelligentTieringConfigurationsOutput$ + ]; + var ListBucketInventoryConfigurations$ = [ + 9, + n05, + _LBIC, + { [_h4]: ["GET", "/?inventory&x-id=ListBucketInventoryConfigurations", 200] }, + () => ListBucketInventoryConfigurationsRequest$, + () => ListBucketInventoryConfigurationsOutput$ + ]; + var ListBucketMetricsConfigurations$ = [ + 9, + n05, + _LBMC, + { [_h4]: ["GET", "/?metrics&x-id=ListBucketMetricsConfigurations", 200] }, + () => ListBucketMetricsConfigurationsRequest$, + () => ListBucketMetricsConfigurationsOutput$ + ]; + var ListBuckets$ = [ + 9, + n05, + _LB, + { [_h4]: ["GET", "/?x-id=ListBuckets", 200] }, + () => ListBucketsRequest$, + () => ListBucketsOutput$ + ]; + var ListDirectoryBuckets$ = [ + 9, + n05, + _LDB, + { [_h4]: ["GET", "/?x-id=ListDirectoryBuckets", 200] }, + () => ListDirectoryBucketsRequest$, + () => ListDirectoryBucketsOutput$ + ]; + var ListMultipartUploads$ = [ + 9, + n05, + _LMU, + { [_h4]: ["GET", "/?uploads", 200] }, + () => ListMultipartUploadsRequest$, + () => ListMultipartUploadsOutput$ + ]; + var ListObjectAnnotations$ = [ + 9, + n05, + _LOA, + { [_h4]: ["GET", "/{Key+}?annotation&x-id=ListObjectAnnotations", 200] }, + () => ListObjectAnnotationsRequest$, + () => ListObjectAnnotationsOutput$ + ]; + var ListObjects$ = [ + 9, + n05, + _LO, + { [_h4]: ["GET", "/", 200] }, + () => ListObjectsRequest$, + () => ListObjectsOutput$ + ]; + var ListObjectsV2$ = [ + 9, + n05, + _LOV, + { [_h4]: ["GET", "/?list-type=2", 200] }, + () => ListObjectsV2Request$, + () => ListObjectsV2Output$ + ]; + var ListObjectVersions$ = [ + 9, + n05, + _LOVi, + { [_h4]: ["GET", "/?versions", 200] }, + () => ListObjectVersionsRequest$, + () => ListObjectVersionsOutput$ + ]; + var ListParts$ = [ + 9, + n05, + _LP, + { [_h4]: ["GET", "/{Key+}?x-id=ListParts", 200] }, + () => ListPartsRequest$, + () => ListPartsOutput$ + ]; + var PutBucketAbac$ = [ + 9, + n05, + _PBA, + { [_hC]: "-", [_h4]: ["PUT", "/?abac", 200] }, + () => PutBucketAbacRequest$, + () => __Unit + ]; + var PutBucketAccelerateConfiguration$ = [ + 9, + n05, + _PBAC, + { [_hC]: "-", [_h4]: ["PUT", "/?accelerate", 200] }, + () => PutBucketAccelerateConfigurationRequest$, + () => __Unit + ]; + var PutBucketAcl$ = [ + 9, + n05, + _PBAu, + { [_hC]: "-", [_h4]: ["PUT", "/?acl", 200] }, + () => PutBucketAclRequest$, + () => __Unit + ]; + var PutBucketAnalyticsConfiguration$ = [ + 9, + n05, + _PBACu, + { [_h4]: ["PUT", "/?analytics", 200] }, + () => PutBucketAnalyticsConfigurationRequest$, + () => __Unit + ]; + var PutBucketCors$ = [ + 9, + n05, + _PBC, + { [_hC]: "-", [_h4]: ["PUT", "/?cors", 200] }, + () => PutBucketCorsRequest$, + () => __Unit + ]; + var PutBucketEncryption$ = [ + 9, + n05, + _PBE, + { [_hC]: "-", [_h4]: ["PUT", "/?encryption", 200] }, + () => PutBucketEncryptionRequest$, + () => __Unit + ]; + var PutBucketIntelligentTieringConfiguration$ = [ + 9, + n05, + _PBITC, + { [_h4]: ["PUT", "/?intelligent-tiering", 200] }, + () => PutBucketIntelligentTieringConfigurationRequest$, + () => __Unit + ]; + var PutBucketInventoryConfiguration$ = [ + 9, + n05, + _PBIC, + { [_h4]: ["PUT", "/?inventory", 200] }, + () => PutBucketInventoryConfigurationRequest$, + () => __Unit + ]; + var PutBucketLifecycleConfiguration$ = [ + 9, + n05, + _PBLC, + { [_hC]: "-", [_h4]: ["PUT", "/?lifecycle", 200] }, + () => PutBucketLifecycleConfigurationRequest$, + () => PutBucketLifecycleConfigurationOutput$ + ]; + var PutBucketLogging$ = [ + 9, + n05, + _PBL, + { [_hC]: "-", [_h4]: ["PUT", "/?logging", 200] }, + () => PutBucketLoggingRequest$, + () => __Unit + ]; + var PutBucketMetricsConfiguration$ = [ + 9, + n05, + _PBMC, + { [_h4]: ["PUT", "/?metrics", 200] }, + () => PutBucketMetricsConfigurationRequest$, + () => __Unit + ]; + var PutBucketNotificationConfiguration$ = [ + 9, + n05, + _PBNC, + { [_h4]: ["PUT", "/?notification", 200] }, + () => PutBucketNotificationConfigurationRequest$, + () => __Unit + ]; + var PutBucketOwnershipControls$ = [ + 9, + n05, + _PBOC, + { [_hC]: "-", [_h4]: ["PUT", "/?ownershipControls", 200] }, + () => PutBucketOwnershipControlsRequest$, + () => __Unit + ]; + var PutBucketPolicy$ = [ + 9, + n05, + _PBP, + { [_hC]: "-", [_h4]: ["PUT", "/?policy", 200] }, + () => PutBucketPolicyRequest$, + () => __Unit + ]; + var PutBucketReplication$ = [ + 9, + n05, + _PBR, + { [_hC]: "-", [_h4]: ["PUT", "/?replication", 200] }, + () => PutBucketReplicationRequest$, + () => __Unit + ]; + var PutBucketRequestPayment$ = [ + 9, + n05, + _PBRP, + { [_hC]: "-", [_h4]: ["PUT", "/?requestPayment", 200] }, + () => PutBucketRequestPaymentRequest$, + () => __Unit + ]; + var PutBucketTagging$ = [ + 9, + n05, + _PBT, + { [_hC]: "-", [_h4]: ["PUT", "/?tagging", 200] }, + () => PutBucketTaggingRequest$, + () => __Unit + ]; + var PutBucketVersioning$ = [ + 9, + n05, + _PBV, + { [_hC]: "-", [_h4]: ["PUT", "/?versioning", 200] }, + () => PutBucketVersioningRequest$, + () => __Unit + ]; + var PutBucketWebsite$ = [ + 9, + n05, + _PBW, + { [_hC]: "-", [_h4]: ["PUT", "/?website", 200] }, + () => PutBucketWebsiteRequest$, + () => __Unit + ]; + var PutObject$ = [ + 9, + n05, + _PO, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?x-id=PutObject", 200] }, + () => PutObjectRequest$, + () => PutObjectOutput$ + ]; + var PutObjectAcl$ = [ + 9, + n05, + _POA, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?acl", 200] }, + () => PutObjectAclRequest$, + () => PutObjectAclOutput$ + ]; + var PutObjectAnnotation$ = [ + 9, + n05, + _POAu, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?annotation", 200] }, + () => PutObjectAnnotationRequest$, + () => PutObjectAnnotationOutput$ + ]; + var PutObjectLegalHold$ = [ + 9, + n05, + _POLH, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?legal-hold", 200] }, + () => PutObjectLegalHoldRequest$, + () => PutObjectLegalHoldOutput$ + ]; + var PutObjectLockConfiguration$ = [ + 9, + n05, + _POLC, + { [_hC]: "-", [_h4]: ["PUT", "/?object-lock", 200] }, + () => PutObjectLockConfigurationRequest$, + () => PutObjectLockConfigurationOutput$ + ]; + var PutObjectRetention$ = [ + 9, + n05, + _PORu, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?retention", 200] }, + () => PutObjectRetentionRequest$, + () => PutObjectRetentionOutput$ + ]; + var PutObjectTagging$ = [ + 9, + n05, + _POT, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?tagging", 200] }, + () => PutObjectTaggingRequest$, + () => PutObjectTaggingOutput$ + ]; + var PutPublicAccessBlock$ = [ + 9, + n05, + _PPAB, + { [_hC]: "-", [_h4]: ["PUT", "/?publicAccessBlock", 200] }, + () => PutPublicAccessBlockRequest$, + () => __Unit + ]; + var RenameObject$ = [ + 9, + n05, + _RO, + { [_h4]: ["PUT", "/{Key+}?renameObject", 200] }, + () => RenameObjectRequest$, + () => RenameObjectOutput$ + ]; + var RestoreObject$ = [ + 9, + n05, + _ROe, + { [_hC]: "-", [_h4]: ["POST", "/{Key+}?restore", 200] }, + () => RestoreObjectRequest$, + () => RestoreObjectOutput$ + ]; + var SelectObjectContent$ = [ + 9, + n05, + _SOC, + { [_h4]: ["POST", "/{Key+}?select&select-type=2", 200] }, + () => SelectObjectContentRequest$, + () => SelectObjectContentOutput$ + ]; + var UpdateBucketMetadataAnnotationTableConfiguration$ = [ + 9, + n05, + _UBMATC, + { [_hC]: "-", [_h4]: ["PUT", "/?metadataAnnotationTable", 200] }, + () => UpdateBucketMetadataAnnotationTableConfigurationRequest$, + () => __Unit + ]; + var UpdateBucketMetadataInventoryTableConfiguration$ = [ + 9, + n05, + _UBMITC, + { [_hC]: "-", [_h4]: ["PUT", "/?metadataInventoryTable", 200] }, + () => UpdateBucketMetadataInventoryTableConfigurationRequest$, + () => __Unit + ]; + var UpdateBucketMetadataJournalTableConfiguration$ = [ + 9, + n05, + _UBMJTC, + { [_hC]: "-", [_h4]: ["PUT", "/?metadataJournalTable", 200] }, + () => UpdateBucketMetadataJournalTableConfigurationRequest$, + () => __Unit + ]; + var UpdateObjectEncryption$ = [ + 9, + n05, + _UOE, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?encryption", 200] }, + () => UpdateObjectEncryptionRequest$, + () => UpdateObjectEncryptionResponse$ + ]; + var UploadPart$ = [ + 9, + n05, + _UP, + { [_hC]: "-", [_h4]: ["PUT", "/{Key+}?x-id=UploadPart", 200] }, + () => UploadPartRequest$, + () => UploadPartOutput$ + ]; + var UploadPartCopy$ = [ + 9, + n05, + _UPC, + { [_h4]: ["PUT", "/{Key+}?x-id=UploadPartCopy", 200] }, + () => UploadPartCopyRequest$, + () => UploadPartCopyOutput$ + ]; + var WriteGetObjectResponse$ = [ + 9, + n05, + _WGOR, + { [_en]: ["{RequestRoute}."], [_h4]: ["POST", "/WriteGetObjectResponse", 200] }, + () => WriteGetObjectResponseRequest$, + () => __Unit + ]; + var CreateSessionCommand = class extends command5(_ep4, _mw05, "CreateSession", CreateSession$) { + static { + __name(this, "CreateSessionCommand"); + } + }; + var version2 = "3.1153.0"; + var packageInfo = { + version: version2 + }; + var getRuntimeConfig$1 = /* @__PURE__ */ __name((config3) => { + return { + apiVersion: "2006-03-01", + base64Decoder: config3?.base64Decoder ?? fromBase642, + base64Encoder: config3?.base64Encoder ?? toBase642, + disableHostPrefix: config3?.disableHostPrefix ?? false, + endpointProvider: config3?.endpointProvider ?? defaultEndpointResolver5, + extensions: config3?.extensions ?? [], + getAwsChunkedEncodingStream: config3?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream, + httpAuthSchemeProvider: config3?.httpAuthSchemeProvider ?? defaultS3HttpAuthSchemeProvider, + httpAuthSchemes: config3?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), "identityProvider"), + signer: new AwsSdkSigV4Signer2() + }, + { + schemeId: "aws.auth#sigv4a", + identityProvider: /* @__PURE__ */ __name((ipc) => ipc.getIdentityProvider("aws.auth#sigv4a"), "identityProvider"), + signer: new AwsSdkSigV4ASigner2() + } + ], + logger: config3?.logger ?? new NoOpLogger2(), + md5: config3?.md5 ?? Md5, + protocol: config3?.protocol ?? S3RestXmlProtocol2, + protocolSettings: config3?.protocolSettings ?? { + defaultNamespace: "com.amazonaws.s3", + errorTypeRegistries: errorTypeRegistries5, + xmlNamespace: "http://s3.amazonaws.com/doc/2006-03-01/", + version: "2006-03-01", + serviceTarget: "AmazonS3" + }, + sdkStreamMixin: config3?.sdkStreamMixin ?? sdkStreamMixin2, + serviceId: config3?.serviceId ?? "S3", + sha1: config3?.sha1 ?? Sha1, + sha256: config3?.sha256 ?? Sha256, + signerConstructor: config3?.signerConstructor ?? SignatureV4MultiRegion3, + signingEscapePath: config3?.signingEscapePath ?? false, + urlParser: config3?.urlParser ?? parseUrl2, + useArnRegion: config3?.useArnRegion ?? void 0, + utf8Decoder: config3?.utf8Decoder ?? fromUtf82, + utf8Encoder: config3?.utf8Encoder ?? toUtf82 + }; + }, "getRuntimeConfig$1"); + var getRuntimeConfig9 = /* @__PURE__ */ __name((config3) => { + emitWarningIfUnsupportedVersion3(process.version); + const defaultsMode = resolveDefaultsModeConfig2(config3); + const defaultConfigProvider = /* @__PURE__ */ __name(() => defaultsMode().then(loadConfigsForDefaultMode2), "defaultConfigProvider"); + const clientSharedValues = getRuntimeConfig$1(config3); + emitWarningIfUnsupportedVersion$1(process.version); + const loaderConfig = { + profile: config3?.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config3, + runtime: "node", + defaultsMode, + authSchemePreference: config3?.authSchemePreference ?? loadConfig2(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS2, loaderConfig), + bodyLengthChecker: config3?.bodyLengthChecker ?? calculateBodyLength2, + credentialDefaultProvider: config3?.credentialDefaultProvider ?? defaultProvider, + defaultUserAgentProvider: config3?.defaultUserAgentProvider ?? createDefaultUserAgentProvider2({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), + disableS3ExpressSessionAuth: config3?.disableS3ExpressSessionAuth ?? loadConfig2(NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS2, loaderConfig), + eventStreamSerdeProvider: config3?.eventStreamSerdeProvider ?? eventStreamSerdeProvider, + maxAttempts: config3?.maxAttempts ?? loadConfig2(NODE_MAX_ATTEMPT_CONFIG_OPTIONS2, config3), + region: config3?.region ?? loadConfig2(NODE_REGION_CONFIG_OPTIONS2, { ...NODE_REGION_CONFIG_FILE_OPTIONS2, ...loaderConfig }), + requestChecksumCalculation: config3?.requestChecksumCalculation ?? loadConfig2(NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS2, loaderConfig), + requestHandler: NodeHttpHandler.create(config3?.requestHandler ?? defaultConfigProvider), + responseChecksumValidation: config3?.responseChecksumValidation ?? loadConfig2(NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS2, loaderConfig), + retryMode: config3?.retryMode ?? loadConfig2({ + ...NODE_RETRY_MODE_CONFIG_OPTIONS2, + default: /* @__PURE__ */ __name(async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE2, "default") + }, config3), + sigv4aSigningRegionSet: config3?.sigv4aSigningRegionSet ?? loadConfig2(NODE_SIGV4A_CONFIG_OPTIONS2, loaderConfig), + streamCollector: config3?.streamCollector ?? streamCollector5, + streamHasher: config3?.streamHasher ?? readableStreamHasher, + useArnRegion: config3?.useArnRegion ?? loadConfig2(NODE_USE_ARN_REGION_CONFIG_OPTIONS2, loaderConfig), + useDualstackEndpoint: config3?.useDualstackEndpoint ?? loadConfig2(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS2, loaderConfig), + useFipsEndpoint: config3?.useFipsEndpoint ?? loadConfig2(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS2, loaderConfig), + userAgentAppId: config3?.userAgentAppId ?? loadConfig2(NODE_APP_ID_CONFIG_OPTIONS2, loaderConfig) + }; + }, "getRuntimeConfig"); + var getHttpAuthExtensionConfiguration5 = /* @__PURE__ */ __name((runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials) { + _credentials = credentials; + }, + credentials() { + return _credentials; + } + }; + }, "getHttpAuthExtensionConfiguration"); + var resolveHttpAuthRuntimeConfig5 = /* @__PURE__ */ __name((config3) => { + return { + httpAuthSchemes: config3.httpAuthSchemes(), + httpAuthSchemeProvider: config3.httpAuthSchemeProvider(), + credentials: config3.credentials() + }; + }, "resolveHttpAuthRuntimeConfig"); + var resolveRuntimeExtensions5 = /* @__PURE__ */ __name((runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration2(runtimeConfig), getDefaultExtensionConfiguration2(runtimeConfig), getHttpHandlerExtensionConfiguration2(runtimeConfig), getHttpAuthExtensionConfiguration5(runtimeConfig)); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration2(extensionConfiguration), resolveDefaultRuntimeConfig2(extensionConfiguration), resolveHttpHandlerRuntimeConfig2(extensionConfiguration), resolveHttpAuthRuntimeConfig5(extensionConfiguration)); + }, "resolveRuntimeExtensions"); + var S3Client2 = class extends Client2 { + static { + __name(this, "S3Client"); + } + config; + constructor(...[configuration]) { + const _config_0 = getRuntimeConfig9(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters5(_config_0); + const _config_2 = resolveUserAgentConfig2(_config_1); + const _config_3 = resolveFlexibleChecksumsConfig2(_config_2); + const _config_4 = resolveRetryConfig2(_config_3); + const _config_5 = resolveRegionConfig2(_config_4); + const _config_6 = resolveHostHeaderConfig2(_config_5); + const _config_7 = resolveEndpointConfig2(_config_6); + const _config_8 = resolveEventStreamSerdeConfig(_config_7); + const _config_9 = resolveHttpAuthSchemeConfig5(_config_8); + const _config_10 = resolveS3Config2(_config_9, { session: [() => this, CreateSessionCommand] }); + const _config_11 = resolveRuntimeExtensions5(_config_10, configuration?.extensions || []); + this.config = _config_11; + this.middlewareStack.use(getSchemaSerdePlugin2(this.config)); + this.middlewareStack.use(getUserAgentPlugin2(this.config)); + this.middlewareStack.use(getRetryPlugin2(this.config)); + this.middlewareStack.use(getContentLengthPlugin2(this.config)); + this.middlewareStack.use(getHostHeaderPlugin2(this.config)); + this.middlewareStack.use(getLoggerPlugin2(this.config)); + this.middlewareStack.use(getRecursionDetectionPlugin2(this.config)); + this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin2(this.config, { + httpAuthSchemeParametersProvider: defaultS3HttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name(async (config3) => new DefaultIdentityProviderConfig2({ + "aws.auth#sigv4": config3.credentials, + "aws.auth#sigv4a": config3.credentials + }), "identityProviderConfigProvider") + })); + this.middlewareStack.use(getHttpSigningPlugin2(this.config)); + this.middlewareStack.use(getValidateBucketNamePlugin2(this.config)); + this.middlewareStack.use(getAddExpectContinuePlugin2(this.config)); + this.middlewareStack.use(getRegionRedirectMiddlewarePlugin2(this.config)); + this.middlewareStack.use(getS3ExpressPlugin2(this.config)); + this.middlewareStack.use(getS3ExpressHttpSigningPlugin2(this.config)); + } + destroy() { + super.destroy(); + } + }; + var AbortMultipartUploadCommand = class extends command5(_ep05, _mw05, "AbortMultipartUpload", AbortMultipartUpload$) { + static { + __name(this, "AbortMultipartUploadCommand"); + } + }; + var CompleteMultipartUploadCommand = class extends command5(_ep05, _mw1, "CompleteMultipartUpload", CompleteMultipartUpload$) { + static { + __name(this, "CompleteMultipartUploadCommand"); + } + }; + var CopyObjectCommand = class extends command5(_ep12, _mw1, "CopyObject", CopyObject$) { + static { + __name(this, "CopyObjectCommand"); + } + }; + var CreateBucketCommand2 = class extends command5(_ep2, _mw2, "CreateBucket", CreateBucket$) { + static { + __name(this, "CreateBucketCommand"); + } + }; + var CreateBucketMetadataConfigurationCommand = class extends command5(_ep3, _mw3, "CreateBucketMetadataConfiguration", CreateBucketMetadataConfiguration$) { + static { + __name(this, "CreateBucketMetadataConfigurationCommand"); + } + }; + var CreateBucketMetadataTableConfigurationCommand = class extends command5(_ep3, _mw3, "CreateBucketMetadataTableConfiguration", CreateBucketMetadataTableConfiguration$) { + static { + __name(this, "CreateBucketMetadataTableConfigurationCommand"); + } + }; + var CreateMultipartUploadCommand = class extends command5(_ep05, _mw1, "CreateMultipartUpload", CreateMultipartUpload$) { + static { + __name(this, "CreateMultipartUploadCommand"); + } + }; + var DeleteBucketAnalyticsConfigurationCommand = class extends command5(_ep3, _mw4, "DeleteBucketAnalyticsConfiguration", DeleteBucketAnalyticsConfiguration$) { + static { + __name(this, "DeleteBucketAnalyticsConfigurationCommand"); + } + }; + var DeleteBucketCommand = class extends command5(_ep3, _mw4, "DeleteBucket", DeleteBucket$) { + static { + __name(this, "DeleteBucketCommand"); + } + }; + var DeleteBucketCorsCommand = class extends command5(_ep3, _mw4, "DeleteBucketCors", DeleteBucketCors$) { + static { + __name(this, "DeleteBucketCorsCommand"); + } + }; + var DeleteBucketEncryptionCommand = class extends command5(_ep3, _mw4, "DeleteBucketEncryption", DeleteBucketEncryption$) { + static { + __name(this, "DeleteBucketEncryptionCommand"); + } + }; + var DeleteBucketIntelligentTieringConfigurationCommand = class extends command5(_ep3, _mw4, "DeleteBucketIntelligentTieringConfiguration", DeleteBucketIntelligentTieringConfiguration$) { + static { + __name(this, "DeleteBucketIntelligentTieringConfigurationCommand"); + } + }; + var DeleteBucketInventoryConfigurationCommand = class extends command5(_ep3, _mw4, "DeleteBucketInventoryConfiguration", DeleteBucketInventoryConfiguration$) { + static { + __name(this, "DeleteBucketInventoryConfigurationCommand"); + } + }; + var DeleteBucketLifecycleCommand = class extends command5(_ep3, _mw4, "DeleteBucketLifecycle", DeleteBucketLifecycle$) { + static { + __name(this, "DeleteBucketLifecycleCommand"); + } + }; + var DeleteBucketMetadataConfigurationCommand = class extends command5(_ep3, _mw4, "DeleteBucketMetadataConfiguration", DeleteBucketMetadataConfiguration$) { + static { + __name(this, "DeleteBucketMetadataConfigurationCommand"); + } + }; + var DeleteBucketMetadataTableConfigurationCommand = class extends command5(_ep3, _mw4, "DeleteBucketMetadataTableConfiguration", DeleteBucketMetadataTableConfiguration$) { + static { + __name(this, "DeleteBucketMetadataTableConfigurationCommand"); + } + }; + var DeleteBucketMetricsConfigurationCommand = class extends command5(_ep3, _mw4, "DeleteBucketMetricsConfiguration", DeleteBucketMetricsConfiguration$) { + static { + __name(this, "DeleteBucketMetricsConfigurationCommand"); + } + }; + var DeleteBucketOwnershipControlsCommand = class extends command5(_ep3, _mw4, "DeleteBucketOwnershipControls", DeleteBucketOwnershipControls$) { + static { + __name(this, "DeleteBucketOwnershipControlsCommand"); + } + }; + var DeleteBucketPolicyCommand = class extends command5(_ep3, _mw4, "DeleteBucketPolicy", DeleteBucketPolicy$) { + static { + __name(this, "DeleteBucketPolicyCommand"); + } + }; + var DeleteBucketReplicationCommand = class extends command5(_ep3, _mw4, "DeleteBucketReplication", DeleteBucketReplication$) { + static { + __name(this, "DeleteBucketReplicationCommand"); + } + }; + var DeleteBucketTaggingCommand = class extends command5(_ep3, _mw4, "DeleteBucketTagging", DeleteBucketTagging$) { + static { + __name(this, "DeleteBucketTaggingCommand"); + } + }; + var DeleteBucketWebsiteCommand = class extends command5(_ep3, _mw4, "DeleteBucketWebsite", DeleteBucketWebsite$) { + static { + __name(this, "DeleteBucketWebsiteCommand"); + } + }; + var DeleteObjectAnnotationCommand = class extends command5(_ep5, _mw05, "DeleteObjectAnnotation", DeleteObjectAnnotation$) { + static { + __name(this, "DeleteObjectAnnotationCommand"); + } + }; + var DeleteObjectCommand2 = class extends command5(_ep05, _mw05, "DeleteObject", DeleteObject$) { + static { + __name(this, "DeleteObjectCommand"); + } + }; + var DeleteObjectsCommand = class extends command5(_ep5, _mw5, "DeleteObjects", DeleteObjects$) { + static { + __name(this, "DeleteObjectsCommand"); + } + }; + var DeleteObjectTaggingCommand = class extends command5(_ep5, _mw05, "DeleteObjectTagging", DeleteObjectTagging$) { + static { + __name(this, "DeleteObjectTaggingCommand"); + } + }; + var DeletePublicAccessBlockCommand = class extends command5(_ep3, _mw4, "DeletePublicAccessBlock", DeletePublicAccessBlock$) { + static { + __name(this, "DeletePublicAccessBlockCommand"); + } + }; + var GetBucketAbacCommand = class extends command5(_ep5, _mw05, "GetBucketAbac", GetBucketAbac$) { + static { + __name(this, "GetBucketAbacCommand"); + } + }; + var GetBucketAccelerateConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketAccelerateConfiguration", GetBucketAccelerateConfiguration$) { + static { + __name(this, "GetBucketAccelerateConfigurationCommand"); + } + }; + var GetBucketAclCommand = class extends command5(_ep3, _mw05, "GetBucketAcl", GetBucketAcl$) { + static { + __name(this, "GetBucketAclCommand"); + } + }; + var GetBucketAnalyticsConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketAnalyticsConfiguration", GetBucketAnalyticsConfiguration$) { + static { + __name(this, "GetBucketAnalyticsConfigurationCommand"); + } + }; + var GetBucketCorsCommand = class extends command5(_ep3, _mw05, "GetBucketCors", GetBucketCors$) { + static { + __name(this, "GetBucketCorsCommand"); + } + }; + var GetBucketEncryptionCommand = class extends command5(_ep3, _mw05, "GetBucketEncryption", GetBucketEncryption$) { + static { + __name(this, "GetBucketEncryptionCommand"); + } + }; + var GetBucketIntelligentTieringConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketIntelligentTieringConfiguration", GetBucketIntelligentTieringConfiguration$) { + static { + __name(this, "GetBucketIntelligentTieringConfigurationCommand"); + } + }; + var GetBucketInventoryConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketInventoryConfiguration", GetBucketInventoryConfiguration$) { + static { + __name(this, "GetBucketInventoryConfigurationCommand"); + } + }; + var GetBucketLifecycleConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketLifecycleConfiguration", GetBucketLifecycleConfiguration$) { + static { + __name(this, "GetBucketLifecycleConfigurationCommand"); + } + }; + var GetBucketLocationCommand = class extends command5(_ep3, _mw05, "GetBucketLocation", GetBucketLocation$) { + static { + __name(this, "GetBucketLocationCommand"); + } + }; + var GetBucketLoggingCommand = class extends command5(_ep3, _mw05, "GetBucketLogging", GetBucketLogging$) { + static { + __name(this, "GetBucketLoggingCommand"); + } + }; + var GetBucketMetadataConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketMetadataConfiguration", GetBucketMetadataConfiguration$) { + static { + __name(this, "GetBucketMetadataConfigurationCommand"); + } + }; + var GetBucketMetadataTableConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketMetadataTableConfiguration", GetBucketMetadataTableConfiguration$) { + static { + __name(this, "GetBucketMetadataTableConfigurationCommand"); + } + }; + var GetBucketMetricsConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketMetricsConfiguration", GetBucketMetricsConfiguration$) { + static { + __name(this, "GetBucketMetricsConfigurationCommand"); + } + }; + var GetBucketNotificationConfigurationCommand = class extends command5(_ep3, _mw05, "GetBucketNotificationConfiguration", GetBucketNotificationConfiguration$) { + static { + __name(this, "GetBucketNotificationConfigurationCommand"); + } + }; + var GetBucketOwnershipControlsCommand = class extends command5(_ep3, _mw05, "GetBucketOwnershipControls", GetBucketOwnershipControls$) { + static { + __name(this, "GetBucketOwnershipControlsCommand"); + } + }; + var GetBucketPolicyCommand = class extends command5(_ep3, _mw4, "GetBucketPolicy", GetBucketPolicy$) { + static { + __name(this, "GetBucketPolicyCommand"); + } + }; + var GetBucketPolicyStatusCommand = class extends command5(_ep3, _mw05, "GetBucketPolicyStatus", GetBucketPolicyStatus$) { + static { + __name(this, "GetBucketPolicyStatusCommand"); + } + }; + var GetBucketReplicationCommand = class extends command5(_ep3, _mw05, "GetBucketReplication", GetBucketReplication$) { + static { + __name(this, "GetBucketReplicationCommand"); + } + }; + var GetBucketRequestPaymentCommand = class extends command5(_ep3, _mw05, "GetBucketRequestPayment", GetBucketRequestPayment$) { + static { + __name(this, "GetBucketRequestPaymentCommand"); + } + }; + var GetBucketTaggingCommand = class extends command5(_ep3, _mw05, "GetBucketTagging", GetBucketTagging$) { + static { + __name(this, "GetBucketTaggingCommand"); + } + }; + var GetBucketVersioningCommand = class extends command5(_ep3, _mw05, "GetBucketVersioning", GetBucketVersioning$) { + static { + __name(this, "GetBucketVersioningCommand"); + } + }; + var GetBucketWebsiteCommand = class extends command5(_ep3, _mw05, "GetBucketWebsite", GetBucketWebsite$) { + static { + __name(this, "GetBucketWebsiteCommand"); + } + }; + var GetObjectAclCommand = class extends command5(_ep05, _mw05, "GetObjectAcl", GetObjectAcl$) { + static { + __name(this, "GetObjectAclCommand"); + } + }; + var GetObjectAnnotationCommand = class extends command5(_ep05, _mw6, "GetObjectAnnotation", GetObjectAnnotation$) { + static { + __name(this, "GetObjectAnnotationCommand"); + } + }; + var GetObjectAttributesCommand = class extends command5(_ep5, _mw1, "GetObjectAttributes", GetObjectAttributes$) { + static { + __name(this, "GetObjectAttributesCommand"); + } + }; + var GetObjectCommand = class extends command5(_ep05, _mw7, "GetObject", GetObject$) { + static { + __name(this, "GetObjectCommand"); + } + }; + var GetObjectLegalHoldCommand = class extends command5(_ep5, _mw05, "GetObjectLegalHold", GetObjectLegalHold$) { + static { + __name(this, "GetObjectLegalHoldCommand"); + } + }; + var GetObjectLockConfigurationCommand = class extends command5(_ep5, _mw05, "GetObjectLockConfiguration", GetObjectLockConfiguration$) { + static { + __name(this, "GetObjectLockConfigurationCommand"); + } + }; + var GetObjectRetentionCommand = class extends command5(_ep5, _mw05, "GetObjectRetention", GetObjectRetention$) { + static { + __name(this, "GetObjectRetentionCommand"); + } + }; + var GetObjectTaggingCommand = class extends command5(_ep5, _mw05, "GetObjectTagging", GetObjectTagging$) { + static { + __name(this, "GetObjectTaggingCommand"); + } + }; + var GetObjectTorrentCommand = class extends command5(_ep5, _mw4, "GetObjectTorrent", GetObjectTorrent$) { + static { + __name(this, "GetObjectTorrentCommand"); + } + }; + var GetPublicAccessBlockCommand = class extends command5(_ep3, _mw05, "GetPublicAccessBlock", GetPublicAccessBlock$) { + static { + __name(this, "GetPublicAccessBlockCommand"); + } + }; + var HeadBucketCommand2 = class extends command5(_ep5, _mw05, "HeadBucket", HeadBucket$) { + static { + __name(this, "HeadBucketCommand"); + } + }; + var HeadObjectCommand = class extends command5(_ep05, _mw8, "HeadObject", HeadObject$) { + static { + __name(this, "HeadObjectCommand"); + } + }; + var ListBucketAnalyticsConfigurationsCommand = class extends command5(_ep3, _mw05, "ListBucketAnalyticsConfigurations", ListBucketAnalyticsConfigurations$) { + static { + __name(this, "ListBucketAnalyticsConfigurationsCommand"); + } + }; + var ListBucketIntelligentTieringConfigurationsCommand = class extends command5(_ep3, _mw05, "ListBucketIntelligentTieringConfigurations", ListBucketIntelligentTieringConfigurations$) { + static { + __name(this, "ListBucketIntelligentTieringConfigurationsCommand"); + } + }; + var ListBucketInventoryConfigurationsCommand = class extends command5(_ep3, _mw05, "ListBucketInventoryConfigurations", ListBucketInventoryConfigurations$) { + static { + __name(this, "ListBucketInventoryConfigurationsCommand"); + } + }; + var ListBucketMetricsConfigurationsCommand = class extends command5(_ep3, _mw05, "ListBucketMetricsConfigurations", ListBucketMetricsConfigurations$) { + static { + __name(this, "ListBucketMetricsConfigurationsCommand"); + } + }; + var ListBucketsCommand = class extends command5(_ep6, _mw05, "ListBuckets", ListBuckets$) { + static { + __name(this, "ListBucketsCommand"); + } + }; + var ListDirectoryBucketsCommand = class extends command5(_ep7, _mw05, "ListDirectoryBuckets", ListDirectoryBuckets$) { + static { + __name(this, "ListDirectoryBucketsCommand"); + } + }; + var ListMultipartUploadsCommand = class extends command5(_ep8, _mw05, "ListMultipartUploads", ListMultipartUploads$) { + static { + __name(this, "ListMultipartUploadsCommand"); + } + }; + var ListObjectAnnotationsCommand = class extends command5(_ep5, _mw05, "ListObjectAnnotations", ListObjectAnnotations$) { + static { + __name(this, "ListObjectAnnotationsCommand"); + } + }; + var ListObjectsCommand = class extends command5(_ep8, _mw05, "ListObjects", ListObjects$) { + static { + __name(this, "ListObjectsCommand"); + } + }; + var ListObjectsV2Command = class extends command5(_ep8, _mw05, "ListObjectsV2", ListObjectsV2$) { + static { + __name(this, "ListObjectsV2Command"); + } + }; + var ListObjectVersionsCommand = class extends command5(_ep8, _mw05, "ListObjectVersions", ListObjectVersions$) { + static { + __name(this, "ListObjectVersionsCommand"); + } + }; + var ListPartsCommand = class extends command5(_ep05, _mw1, "ListParts", ListParts$) { + static { + __name(this, "ListPartsCommand"); + } + }; + var PutBucketAbacCommand = class extends command5(_ep5, _mw9, "PutBucketAbac", PutBucketAbac$) { + static { + __name(this, "PutBucketAbacCommand"); + } + }; + var PutBucketAccelerateConfigurationCommand = class extends command5(_ep3, _mw9, "PutBucketAccelerateConfiguration", PutBucketAccelerateConfiguration$) { + static { + __name(this, "PutBucketAccelerateConfigurationCommand"); + } + }; + var PutBucketAclCommand = class extends command5(_ep3, _mw3, "PutBucketAcl", PutBucketAcl$) { + static { + __name(this, "PutBucketAclCommand"); + } + }; + var PutBucketAnalyticsConfigurationCommand = class extends command5(_ep3, _mw4, "PutBucketAnalyticsConfiguration", PutBucketAnalyticsConfiguration$) { + static { + __name(this, "PutBucketAnalyticsConfigurationCommand"); + } + }; + var PutBucketCorsCommand = class extends command5(_ep3, _mw3, "PutBucketCors", PutBucketCors$) { + static { + __name(this, "PutBucketCorsCommand"); + } + }; + var PutBucketEncryptionCommand = class extends command5(_ep3, _mw3, "PutBucketEncryption", PutBucketEncryption$) { + static { + __name(this, "PutBucketEncryptionCommand"); + } + }; + var PutBucketIntelligentTieringConfigurationCommand = class extends command5(_ep3, _mw4, "PutBucketIntelligentTieringConfiguration", PutBucketIntelligentTieringConfiguration$) { + static { + __name(this, "PutBucketIntelligentTieringConfigurationCommand"); + } + }; + var PutBucketInventoryConfigurationCommand = class extends command5(_ep3, _mw4, "PutBucketInventoryConfiguration", PutBucketInventoryConfiguration$) { + static { + __name(this, "PutBucketInventoryConfigurationCommand"); + } + }; + var PutBucketLifecycleConfigurationCommand = class extends command5(_ep3, _mw5, "PutBucketLifecycleConfiguration", PutBucketLifecycleConfiguration$) { + static { + __name(this, "PutBucketLifecycleConfigurationCommand"); + } + }; + var PutBucketLoggingCommand = class extends command5(_ep3, _mw3, "PutBucketLogging", PutBucketLogging$) { + static { + __name(this, "PutBucketLoggingCommand"); + } + }; + var PutBucketMetricsConfigurationCommand = class extends command5(_ep3, _mw4, "PutBucketMetricsConfiguration", PutBucketMetricsConfiguration$) { + static { + __name(this, "PutBucketMetricsConfigurationCommand"); + } + }; + var PutBucketNotificationConfigurationCommand = class extends command5(_ep3, _mw4, "PutBucketNotificationConfiguration", PutBucketNotificationConfiguration$) { + static { + __name(this, "PutBucketNotificationConfigurationCommand"); + } + }; + var PutBucketOwnershipControlsCommand = class extends command5(_ep3, _mw3, "PutBucketOwnershipControls", PutBucketOwnershipControls$) { + static { + __name(this, "PutBucketOwnershipControlsCommand"); + } + }; + var PutBucketPolicyCommand2 = class extends command5(_ep3, _mw3, "PutBucketPolicy", PutBucketPolicy$) { + static { + __name(this, "PutBucketPolicyCommand"); + } + }; + var PutBucketReplicationCommand = class extends command5(_ep3, _mw3, "PutBucketReplication", PutBucketReplication$) { + static { + __name(this, "PutBucketReplicationCommand"); + } + }; + var PutBucketRequestPaymentCommand = class extends command5(_ep3, _mw3, "PutBucketRequestPayment", PutBucketRequestPayment$) { + static { + __name(this, "PutBucketRequestPaymentCommand"); + } + }; + var PutBucketTaggingCommand = class extends command5(_ep3, _mw3, "PutBucketTagging", PutBucketTagging$) { + static { + __name(this, "PutBucketTaggingCommand"); + } + }; + var PutBucketVersioningCommand = class extends command5(_ep3, _mw3, "PutBucketVersioning", PutBucketVersioning$) { + static { + __name(this, "PutBucketVersioningCommand"); + } + }; + var PutBucketWebsiteCommand = class extends command5(_ep3, _mw3, "PutBucketWebsite", PutBucketWebsite$) { + static { + __name(this, "PutBucketWebsiteCommand"); + } + }; + var PutObjectAclCommand = class extends command5(_ep05, _mw5, "PutObjectAcl", PutObjectAcl$) { + static { + __name(this, "PutObjectAclCommand"); + } + }; + var PutObjectAnnotationCommand = class extends command5(_ep05, _mw10, "PutObjectAnnotation", PutObjectAnnotation$) { + static { + __name(this, "PutObjectAnnotationCommand"); + } + }; + var PutObjectCommand2 = class extends command5(_ep05, _mw11, "PutObject", PutObject$) { + static { + __name(this, "PutObjectCommand"); + } + }; + var PutObjectLegalHoldCommand = class extends command5(_ep5, _mw5, "PutObjectLegalHold", PutObjectLegalHold$) { + static { + __name(this, "PutObjectLegalHoldCommand"); + } + }; + var PutObjectLockConfigurationCommand = class extends command5(_ep5, _mw5, "PutObjectLockConfiguration", PutObjectLockConfiguration$) { + static { + __name(this, "PutObjectLockConfigurationCommand"); + } + }; + var PutObjectRetentionCommand = class extends command5(_ep5, _mw5, "PutObjectRetention", PutObjectRetention$) { + static { + __name(this, "PutObjectRetentionCommand"); + } + }; + var PutObjectTaggingCommand = class extends command5(_ep5, _mw5, "PutObjectTagging", PutObjectTagging$) { + static { + __name(this, "PutObjectTaggingCommand"); + } + }; + var PutPublicAccessBlockCommand = class extends command5(_ep3, _mw3, "PutPublicAccessBlock", PutPublicAccessBlock$) { + static { + __name(this, "PutPublicAccessBlockCommand"); + } + }; + var RenameObjectCommand = class extends command5(_ep05, _mw05, "RenameObject", RenameObject$) { + static { + __name(this, "RenameObjectCommand"); + } + }; + var RestoreObjectCommand = class extends command5(_ep5, _mw10, "RestoreObject", RestoreObject$) { + static { + __name(this, "RestoreObjectCommand"); + } + }; + var SelectObjectContentCommand = class extends command5(_ep5, _mw12, "SelectObjectContent", SelectObjectContent$) { + static { + __name(this, "SelectObjectContentCommand"); + } + }; + var UpdateBucketMetadataAnnotationTableConfigurationCommand = class extends command5(_ep3, _mw3, "UpdateBucketMetadataAnnotationTableConfiguration", UpdateBucketMetadataAnnotationTableConfiguration$) { + static { + __name(this, "UpdateBucketMetadataAnnotationTableConfigurationCommand"); + } + }; + var UpdateBucketMetadataInventoryTableConfigurationCommand = class extends command5(_ep3, _mw3, "UpdateBucketMetadataInventoryTableConfiguration", UpdateBucketMetadataInventoryTableConfiguration$) { + static { + __name(this, "UpdateBucketMetadataInventoryTableConfigurationCommand"); + } + }; + var UpdateBucketMetadataJournalTableConfigurationCommand = class extends command5(_ep3, _mw3, "UpdateBucketMetadataJournalTableConfiguration", UpdateBucketMetadataJournalTableConfiguration$) { + static { + __name(this, "UpdateBucketMetadataJournalTableConfigurationCommand"); + } + }; + var UpdateObjectEncryptionCommand = class extends command5(_ep5, _mw5, "UpdateObjectEncryption", UpdateObjectEncryption$) { + static { + __name(this, "UpdateObjectEncryptionCommand"); + } + }; + var UploadPartCommand = class extends command5(_ep05, _mw13, "UploadPart", UploadPart$) { + static { + __name(this, "UploadPartCommand"); + } + }; + var UploadPartCopyCommand = class extends command5(_ep4, _mw1, "UploadPartCopy", UploadPartCopy$) { + static { + __name(this, "UploadPartCopyCommand"); + } + }; + var WriteGetObjectResponseCommand = class extends command5(_ep9, _mw4, "WriteGetObjectResponse", WriteGetObjectResponse$) { + static { + __name(this, "WriteGetObjectResponseCommand"); + } + }; + var paginateListBuckets = createPaginator2(S3Client2, ListBucketsCommand, "ContinuationToken", "ContinuationToken", "MaxBuckets"); + var paginateListDirectoryBuckets = createPaginator2(S3Client2, ListDirectoryBucketsCommand, "ContinuationToken", "ContinuationToken", "MaxDirectoryBuckets"); + var paginateListObjectAnnotations = createPaginator2(S3Client2, ListObjectAnnotationsCommand, "ContinuationToken", "NextContinuationToken", "MaxAnnotationResults"); + var paginateListObjectsV2 = createPaginator2(S3Client2, ListObjectsV2Command, "ContinuationToken", "NextContinuationToken", "MaxKeys"); + var paginateListParts = createPaginator2(S3Client2, ListPartsCommand, "PartNumberMarker", "NextPartNumberMarker", "MaxParts"); + var checkState$3 = /* @__PURE__ */ __name(async (client, input2) => { + let reason; + try { + let result = await client.send(new HeadBucketCommand2(input2)); + reason = result; + return { state: WaiterState.SUCCESS, reason }; + } catch (exception) { + reason = exception; + if (exception.name === "NotFound") { + return { state: WaiterState.RETRY, reason }; + } + } + return { state: WaiterState.RETRY, reason }; + }, "checkState$3"); + var waitForBucketExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + return createWaiter({ ...serviceDefaults, ...params }, input2, checkState$3); + }, "waitForBucketExists"); + var waitUntilBucketExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + const result = await createWaiter({ ...serviceDefaults, ...params }, input2, checkState$3); + return checkExceptions(result); + }, "waitUntilBucketExists"); + var checkState$2 = /* @__PURE__ */ __name(async (client, input2) => { + let reason; + try { + let result = await client.send(new HeadBucketCommand2(input2)); + reason = result; + } catch (exception) { + reason = exception; + if (exception.name === "NotFound") { + return { state: WaiterState.SUCCESS, reason }; + } + } + return { state: WaiterState.RETRY, reason }; + }, "checkState$2"); + var waitForBucketNotExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + return createWaiter({ ...serviceDefaults, ...params }, input2, checkState$2); + }, "waitForBucketNotExists"); + var waitUntilBucketNotExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + const result = await createWaiter({ ...serviceDefaults, ...params }, input2, checkState$2); + return checkExceptions(result); + }, "waitUntilBucketNotExists"); + var checkState$1 = /* @__PURE__ */ __name(async (client, input2) => { + let reason; + try { + let result = await client.send(new HeadObjectCommand(input2)); + reason = result; + return { state: WaiterState.SUCCESS, reason }; + } catch (exception) { + reason = exception; + if (exception.name === "NotFound") { + return { state: WaiterState.RETRY, reason }; + } + } + return { state: WaiterState.RETRY, reason }; + }, "checkState$1"); + var waitForObjectExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + return createWaiter({ ...serviceDefaults, ...params }, input2, checkState$1); + }, "waitForObjectExists"); + var waitUntilObjectExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + const result = await createWaiter({ ...serviceDefaults, ...params }, input2, checkState$1); + return checkExceptions(result); + }, "waitUntilObjectExists"); + var checkState = /* @__PURE__ */ __name(async (client, input2) => { + let reason; + try { + let result = await client.send(new HeadObjectCommand(input2)); + reason = result; + } catch (exception) { + reason = exception; + if (exception.name === "NotFound") { + return { state: WaiterState.SUCCESS, reason }; + } + } + return { state: WaiterState.RETRY, reason }; + }, "checkState"); + var waitForObjectNotExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + return createWaiter({ ...serviceDefaults, ...params }, input2, checkState); + }, "waitForObjectNotExists"); + var waitUntilObjectNotExists = /* @__PURE__ */ __name(async (params, input2) => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + const result = await createWaiter({ ...serviceDefaults, ...params }, input2, checkState); + return checkExceptions(result); + }, "waitUntilObjectNotExists"); + var commands5 = { + AbortMultipartUploadCommand, + CompleteMultipartUploadCommand, + CopyObjectCommand, + CreateBucketCommand: CreateBucketCommand2, + CreateBucketMetadataConfigurationCommand, + CreateBucketMetadataTableConfigurationCommand, + CreateMultipartUploadCommand, + CreateSessionCommand, + DeleteBucketCommand, + DeleteBucketAnalyticsConfigurationCommand, + DeleteBucketCorsCommand, + DeleteBucketEncryptionCommand, + DeleteBucketIntelligentTieringConfigurationCommand, + DeleteBucketInventoryConfigurationCommand, + DeleteBucketLifecycleCommand, + DeleteBucketMetadataConfigurationCommand, + DeleteBucketMetadataTableConfigurationCommand, + DeleteBucketMetricsConfigurationCommand, + DeleteBucketOwnershipControlsCommand, + DeleteBucketPolicyCommand, + DeleteBucketReplicationCommand, + DeleteBucketTaggingCommand, + DeleteBucketWebsiteCommand, + DeleteObjectCommand: DeleteObjectCommand2, + DeleteObjectAnnotationCommand, + DeleteObjectsCommand, + DeleteObjectTaggingCommand, + DeletePublicAccessBlockCommand, + GetBucketAbacCommand, + GetBucketAccelerateConfigurationCommand, + GetBucketAclCommand, + GetBucketAnalyticsConfigurationCommand, + GetBucketCorsCommand, + GetBucketEncryptionCommand, + GetBucketIntelligentTieringConfigurationCommand, + GetBucketInventoryConfigurationCommand, + GetBucketLifecycleConfigurationCommand, + GetBucketLocationCommand, + GetBucketLoggingCommand, + GetBucketMetadataConfigurationCommand, + GetBucketMetadataTableConfigurationCommand, + GetBucketMetricsConfigurationCommand, + GetBucketNotificationConfigurationCommand, + GetBucketOwnershipControlsCommand, + GetBucketPolicyCommand, + GetBucketPolicyStatusCommand, + GetBucketReplicationCommand, + GetBucketRequestPaymentCommand, + GetBucketTaggingCommand, + GetBucketVersioningCommand, + GetBucketWebsiteCommand, + GetObjectCommand, + GetObjectAclCommand, + GetObjectAnnotationCommand, + GetObjectAttributesCommand, + GetObjectLegalHoldCommand, + GetObjectLockConfigurationCommand, + GetObjectRetentionCommand, + GetObjectTaggingCommand, + GetObjectTorrentCommand, + GetPublicAccessBlockCommand, + HeadBucketCommand: HeadBucketCommand2, + HeadObjectCommand, + ListBucketAnalyticsConfigurationsCommand, + ListBucketIntelligentTieringConfigurationsCommand, + ListBucketInventoryConfigurationsCommand, + ListBucketMetricsConfigurationsCommand, + ListBucketsCommand, + ListDirectoryBucketsCommand, + ListMultipartUploadsCommand, + ListObjectAnnotationsCommand, + ListObjectsCommand, + ListObjectsV2Command, + ListObjectVersionsCommand, + ListPartsCommand, + PutBucketAbacCommand, + PutBucketAccelerateConfigurationCommand, + PutBucketAclCommand, + PutBucketAnalyticsConfigurationCommand, + PutBucketCorsCommand, + PutBucketEncryptionCommand, + PutBucketIntelligentTieringConfigurationCommand, + PutBucketInventoryConfigurationCommand, + PutBucketLifecycleConfigurationCommand, + PutBucketLoggingCommand, + PutBucketMetricsConfigurationCommand, + PutBucketNotificationConfigurationCommand, + PutBucketOwnershipControlsCommand, + PutBucketPolicyCommand: PutBucketPolicyCommand2, + PutBucketReplicationCommand, + PutBucketRequestPaymentCommand, + PutBucketTaggingCommand, + PutBucketVersioningCommand, + PutBucketWebsiteCommand, + PutObjectCommand: PutObjectCommand2, + PutObjectAclCommand, + PutObjectAnnotationCommand, + PutObjectLegalHoldCommand, + PutObjectLockConfigurationCommand, + PutObjectRetentionCommand, + PutObjectTaggingCommand, + PutPublicAccessBlockCommand, + RenameObjectCommand, + RestoreObjectCommand, + SelectObjectContentCommand, + UpdateBucketMetadataAnnotationTableConfigurationCommand, + UpdateBucketMetadataInventoryTableConfigurationCommand, + UpdateBucketMetadataJournalTableConfigurationCommand, + UpdateObjectEncryptionCommand, + UploadPartCommand, + UploadPartCopyCommand, + WriteGetObjectResponseCommand + }; + var paginators = { + paginateListBuckets, + paginateListDirectoryBuckets, + paginateListObjectAnnotations, + paginateListObjectsV2, + paginateListParts + }; + var waiters = { + waitUntilBucketExists, + waitUntilBucketNotExists, + waitUntilObjectExists, + waitUntilObjectNotExists + }; + var S3 = class extends S3Client2 { + static { + __name(this, "S3"); + } + }; + createAggregatedClient2(commands5, S3, { paginators, waiters }); + var BucketAbacStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var RequestCharged = { + requester: "requester" + }; + var RequestPayer = { + requester: "requester" + }; + var BucketAccelerateStatus = { + Enabled: "Enabled", + Suspended: "Suspended" + }; + var Type = { + AmazonCustomerByEmail: "AmazonCustomerByEmail", + CanonicalUser: "CanonicalUser", + Group: "Group" + }; + var Permission = { + FULL_CONTROL: "FULL_CONTROL", + READ: "READ", + READ_ACP: "READ_ACP", + WRITE: "WRITE", + WRITE_ACP: "WRITE_ACP" + }; + var OwnerOverride = { + Destination: "Destination" + }; + var ChecksumType = { + COMPOSITE: "COMPOSITE", + FULL_OBJECT: "FULL_OBJECT" + }; + var ServerSideEncryption = { + AES256: "AES256", + aws_backup: "aws:backup", + aws_fsx: "aws:fsx", + aws_kms: "aws:kms", + aws_kms_dsse: "aws:kms:dsse" + }; + var ObjectCannedACL = { + authenticated_read: "authenticated-read", + aws_exec_read: "aws-exec-read", + bucket_owner_full_control: "bucket-owner-full-control", + bucket_owner_read: "bucket-owner-read", + private: "private", + public_read: "public-read", + public_read_write: "public-read-write" + }; + var AnnotationDirective = { + COPY: "COPY", + EXCLUDE: "EXCLUDE" + }; + var ChecksumAlgorithm2 = { + CRC32: "CRC32", + CRC32C: "CRC32C", + CRC64NVME: "CRC64NVME", + MD5: "MD5", + SHA1: "SHA1", + SHA256: "SHA256", + SHA512: "SHA512", + XXHASH128: "XXHASH128", + XXHASH3: "XXHASH3", + XXHASH64: "XXHASH64" + }; + var MetadataDirective = { + COPY: "COPY", + REPLACE: "REPLACE" + }; + var ObjectLockEventHold = { + OFF: "OFF", + ON: "ON" + }; + var ObjectLockLegalHoldStatus = { + OFF: "OFF", + ON: "ON" + }; + var ObjectLockMode = { + COMPLIANCE: "COMPLIANCE", + GOVERNANCE: "GOVERNANCE" + }; + var StorageClass = { + AWS_BACKUP_LOW_COST_WARM: "AWS_BACKUP_LOW_COST_WARM", + AWS_BACKUP_WARM: "AWS_BACKUP_WARM", + DEEP_ARCHIVE: "DEEP_ARCHIVE", + EXPRESS_ONEZONE: "EXPRESS_ONEZONE", + FSX_ONTAP: "FSX_ONTAP", + FSX_OPENZFS: "FSX_OPENZFS", + GLACIER: "GLACIER", + GLACIER_IR: "GLACIER_IR", + INTELLIGENT_TIERING: "INTELLIGENT_TIERING", + ONEZONE_IA: "ONEZONE_IA", + OUTPOSTS: "OUTPOSTS", + REDUCED_REDUNDANCY: "REDUCED_REDUNDANCY", + SNOW: "SNOW", + STANDARD: "STANDARD", + STANDARD_IA: "STANDARD_IA" + }; + var TaggingDirective = { + COPY: "COPY", + REPLACE: "REPLACE" + }; + var BucketCannedACL = { + authenticated_read: "authenticated-read", + private: "private", + public_read: "public-read", + public_read_write: "public-read-write" + }; + var BucketNamespace = { + ACCOUNT_REGIONAL: "account-regional", + GLOBAL: "global" + }; + var DataRedundancy = { + SingleAvailabilityZone: "SingleAvailabilityZone", + SingleLocalZone: "SingleLocalZone" + }; + var BucketType = { + Directory: "Directory" + }; + var LocationType = { + AvailabilityZone: "AvailabilityZone", + LocalZone: "LocalZone" + }; + var BucketLocationConstraint = { + EU: "EU", + af_south_1: "af-south-1", + ap_east_1: "ap-east-1", + ap_east_2: "ap-east-2", + ap_northeast_1: "ap-northeast-1", + ap_northeast_2: "ap-northeast-2", + ap_northeast_3: "ap-northeast-3", + ap_south_1: "ap-south-1", + ap_south_2: "ap-south-2", + ap_southeast_1: "ap-southeast-1", + ap_southeast_2: "ap-southeast-2", + ap_southeast_3: "ap-southeast-3", + ap_southeast_4: "ap-southeast-4", + ap_southeast_5: "ap-southeast-5", + ap_southeast_6: "ap-southeast-6", + ap_southeast_7: "ap-southeast-7", + ca_central_1: "ca-central-1", + ca_west_1: "ca-west-1", + cn_north_1: "cn-north-1", + cn_northwest_1: "cn-northwest-1", + eu_central_1: "eu-central-1", + eu_central_2: "eu-central-2", + eu_north_1: "eu-north-1", + eu_south_1: "eu-south-1", + eu_south_2: "eu-south-2", + eu_west_1: "eu-west-1", + eu_west_2: "eu-west-2", + eu_west_3: "eu-west-3", + il_central_1: "il-central-1", + me_central_1: "me-central-1", + me_south_1: "me-south-1", + mx_central_1: "mx-central-1", + sa_east_1: "sa-east-1", + us_east_2: "us-east-2", + us_gov_east_1: "us-gov-east-1", + us_gov_west_1: "us-gov-west-1", + us_west_1: "us-west-1", + us_west_2: "us-west-2" + }; + var ObjectOwnership = { + BucketOwnerEnforced: "BucketOwnerEnforced", + BucketOwnerPreferred: "BucketOwnerPreferred", + ObjectWriter: "ObjectWriter" + }; + var AnnotationConfigurationState = { + DISABLED: "DISABLED", + ENABLED: "ENABLED" + }; + var TableSseAlgorithm = { + AES256: "AES256", + aws_kms: "aws:kms" + }; + var InventoryConfigurationState = { + DISABLED: "DISABLED", + ENABLED: "ENABLED" + }; + var ExpirationState = { + DISABLED: "DISABLED", + ENABLED: "ENABLED" + }; + var SessionMode = { + ReadOnly: "ReadOnly", + ReadWrite: "ReadWrite" + }; + var AnalyticsS3ExportFileFormat = { + CSV: "CSV" + }; + var StorageClassAnalysisSchemaVersion = { + V_1: "V_1" + }; + var EncryptionType = { + NONE: "NONE", + SSE_C: "SSE-C" + }; + var IntelligentTieringStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var IntelligentTieringAccessTier = { + ARCHIVE_ACCESS: "ARCHIVE_ACCESS", + DEEP_ARCHIVE_ACCESS: "DEEP_ARCHIVE_ACCESS" + }; + var InventoryFormat = { + CSV: "CSV", + ORC: "ORC", + Parquet: "Parquet" + }; + var InventoryIncludedObjectVersions = { + All: "All", + Current: "Current" + }; + var InventoryOptionalField = { + BucketKeyStatus: "BucketKeyStatus", + ChecksumAlgorithm: "ChecksumAlgorithm", + ETag: "ETag", + EncryptionStatus: "EncryptionStatus", + IntelligentTieringAccessTier: "IntelligentTieringAccessTier", + IntelligentTieringReferenceDate: "IntelligentTieringReferenceDate", + IsMultipartUploaded: "IsMultipartUploaded", + LastModifiedDate: "LastModifiedDate", + LifecycleExpirationDate: "LifecycleExpirationDate", + ObjectAccessControlList: "ObjectAccessControlList", + ObjectLockEventHoldDuration: "ObjectLockEventHoldDuration", + ObjectLockEventHoldStatus: "ObjectLockEventHoldStatus", + ObjectLockLegalHoldStatus: "ObjectLockLegalHoldStatus", + ObjectLockMode: "ObjectLockMode", + ObjectLockRetainUntilDate: "ObjectLockRetainUntilDate", + ObjectOwner: "ObjectOwner", + ReplicationStatus: "ReplicationStatus", + Size: "Size", + StorageClass: "StorageClass" + }; + var InventoryFrequency = { + Daily: "Daily", + Weekly: "Weekly" + }; + var TransitionStorageClass = { + DEEP_ARCHIVE: "DEEP_ARCHIVE", + GLACIER: "GLACIER", + GLACIER_IR: "GLACIER_IR", + INTELLIGENT_TIERING: "INTELLIGENT_TIERING", + ONEZONE_IA: "ONEZONE_IA", + STANDARD_IA: "STANDARD_IA" + }; + var ExpirationStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var TransitionDefaultMinimumObjectSize = { + all_storage_classes_128K: "all_storage_classes_128K", + varies_by_storage_class: "varies_by_storage_class" + }; + var BucketLogsPermission = { + FULL_CONTROL: "FULL_CONTROL", + READ: "READ", + WRITE: "WRITE" + }; + var PartitionDateSource = { + DeliveryTime: "DeliveryTime", + EventTime: "EventTime" + }; + var S3TablesBucketType = { + aws: "aws", + customer: "customer" + }; + var Event = { + s3_IntelligentTiering: "s3:IntelligentTiering", + s3_LifecycleExpiration_: "s3:LifecycleExpiration:*", + s3_LifecycleExpiration_Delete: "s3:LifecycleExpiration:Delete", + s3_LifecycleExpiration_DeleteMarkerCreated: "s3:LifecycleExpiration:DeleteMarkerCreated", + s3_LifecycleTransition: "s3:LifecycleTransition", + s3_ObjectAcl_Put: "s3:ObjectAcl:Put", + s3_ObjectAnnotation_: "s3:ObjectAnnotation:*", + s3_ObjectAnnotation_Delete: "s3:ObjectAnnotation:Delete", + s3_ObjectAnnotation_Put: "s3:ObjectAnnotation:Put", + s3_ObjectCreated_: "s3:ObjectCreated:*", + s3_ObjectCreated_CompleteMultipartUpload: "s3:ObjectCreated:CompleteMultipartUpload", + s3_ObjectCreated_Copy: "s3:ObjectCreated:Copy", + s3_ObjectCreated_Post: "s3:ObjectCreated:Post", + s3_ObjectCreated_Put: "s3:ObjectCreated:Put", + s3_ObjectRemoved_: "s3:ObjectRemoved:*", + s3_ObjectRemoved_Delete: "s3:ObjectRemoved:Delete", + s3_ObjectRemoved_DeleteMarkerCreated: "s3:ObjectRemoved:DeleteMarkerCreated", + s3_ObjectRestore_: "s3:ObjectRestore:*", + s3_ObjectRestore_Completed: "s3:ObjectRestore:Completed", + s3_ObjectRestore_Delete: "s3:ObjectRestore:Delete", + s3_ObjectRestore_Post: "s3:ObjectRestore:Post", + s3_ObjectRetention_Put: "s3:ObjectRetention:Put", + s3_ObjectTagging_: "s3:ObjectTagging:*", + s3_ObjectTagging_Delete: "s3:ObjectTagging:Delete", + s3_ObjectTagging_Put: "s3:ObjectTagging:Put", + s3_ReducedRedundancyLostObject: "s3:ReducedRedundancyLostObject", + s3_Replication_: "s3:Replication:*", + s3_Replication_OperationFailedReplication: "s3:Replication:OperationFailedReplication", + s3_Replication_OperationMissedThreshold: "s3:Replication:OperationMissedThreshold", + s3_Replication_OperationNotTracked: "s3:Replication:OperationNotTracked", + s3_Replication_OperationReplicatedAfterThreshold: "s3:Replication:OperationReplicatedAfterThreshold" + }; + var FilterRuleName = { + prefix: "prefix", + suffix: "suffix" + }; + var DeleteMarkerReplicationStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var MetricsStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var ReplicationTimeStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var ExistingObjectReplicationStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var ReplicaModificationsStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var SseKmsEncryptedObjectsStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var ReplicationRuleStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var Payer = { + BucketOwner: "BucketOwner", + Requester: "Requester" + }; + var MFADeleteStatus = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var BucketVersioningStatus = { + Enabled: "Enabled", + Suspended: "Suspended" + }; + var Protocol = { + http: "http", + https: "https" + }; + var ReplicationStatus = { + COMPLETE: "COMPLETE", + COMPLETED: "COMPLETED", + FAILED: "FAILED", + PENDING: "PENDING", + REPLICA: "REPLICA" + }; + var ChecksumMode = { + ENABLED: "ENABLED" + }; + var ObjectAttributes = { + CHECKSUM: "Checksum", + ETAG: "ETag", + OBJECT_PARTS: "ObjectParts", + OBJECT_SIZE: "ObjectSize", + STORAGE_CLASS: "StorageClass" + }; + var ObjectLockEnabled = { + Enabled: "Enabled" + }; + var ObjectLockRetentionMode = { + COMPLIANCE: "COMPLIANCE", + GOVERNANCE: "GOVERNANCE" + }; + var ArchiveStatus = { + ARCHIVE_ACCESS: "ARCHIVE_ACCESS", + DEEP_ARCHIVE_ACCESS: "DEEP_ARCHIVE_ACCESS" + }; + var EncodingType = { + url: "url" + }; + var ObjectStorageClass = { + AWS_BACKUP_LOW_COST_WARM: "AWS_BACKUP_LOW_COST_WARM", + AWS_BACKUP_WARM: "AWS_BACKUP_WARM", + DEEP_ARCHIVE: "DEEP_ARCHIVE", + EXPRESS_ONEZONE: "EXPRESS_ONEZONE", + FSX_ONTAP: "FSX_ONTAP", + FSX_OPENZFS: "FSX_OPENZFS", + GLACIER: "GLACIER", + GLACIER_IR: "GLACIER_IR", + INTELLIGENT_TIERING: "INTELLIGENT_TIERING", + ONEZONE_IA: "ONEZONE_IA", + OUTPOSTS: "OUTPOSTS", + REDUCED_REDUNDANCY: "REDUCED_REDUNDANCY", + SNOW: "SNOW", + STANDARD: "STANDARD", + STANDARD_IA: "STANDARD_IA" + }; + var OptionalObjectAttributes = { + RESTORE_STATUS: "RestoreStatus" + }; + var ObjectVersionStorageClass = { + STANDARD: "STANDARD" + }; + var MFADelete = { + Disabled: "Disabled", + Enabled: "Enabled" + }; + var Tier = { + Bulk: "Bulk", + Expedited: "Expedited", + Standard: "Standard" + }; + var ExpressionType = { + SQL: "SQL" + }; + var CompressionType = { + BZIP2: "BZIP2", + GZIP: "GZIP", + NONE: "NONE" + }; + var FileHeaderInfo = { + IGNORE: "IGNORE", + NONE: "NONE", + USE: "USE" + }; + var JSONType = { + DOCUMENT: "DOCUMENT", + LINES: "LINES" + }; + var QuoteFields = { + ALWAYS: "ALWAYS", + ASNEEDED: "ASNEEDED" + }; + var RestoreRequestType = { + SELECT: "SELECT" + }; + exports.AbacStatus$ = AbacStatus$; + exports.AbortIncompleteMultipartUpload$ = AbortIncompleteMultipartUpload$; + exports.AbortMultipartUpload$ = AbortMultipartUpload$; + exports.AbortMultipartUploadCommand = AbortMultipartUploadCommand; + exports.AbortMultipartUploadOutput$ = AbortMultipartUploadOutput$; + exports.AbortMultipartUploadRequest$ = AbortMultipartUploadRequest$; + exports.AccelerateConfiguration$ = AccelerateConfiguration$; + exports.AccessControlPolicy$ = AccessControlPolicy$; + exports.AccessControlTranslation$ = AccessControlTranslation$; + exports.AccessDenied = AccessDenied; + exports.AccessDenied$ = AccessDenied$; + exports.AnalyticsAndOperator$ = AnalyticsAndOperator$; + exports.AnalyticsConfiguration$ = AnalyticsConfiguration$; + exports.AnalyticsExportDestination$ = AnalyticsExportDestination$; + exports.AnalyticsFilter$ = AnalyticsFilter$; + exports.AnalyticsS3BucketDestination$ = AnalyticsS3BucketDestination$; + exports.AnalyticsS3ExportFileFormat = AnalyticsS3ExportFileFormat; + exports.AnnotationConfigurationState = AnnotationConfigurationState; + exports.AnnotationDirective = AnnotationDirective; + exports.AnnotationEntry$ = AnnotationEntry$; + exports.AnnotationLimitExceeded = AnnotationLimitExceeded; + exports.AnnotationLimitExceeded$ = AnnotationLimitExceeded$; + exports.AnnotationNameTooLong = AnnotationNameTooLong; + exports.AnnotationNameTooLong$ = AnnotationNameTooLong$; + exports.AnnotationTableConfiguration$ = AnnotationTableConfiguration$; + exports.AnnotationTableConfigurationResult$ = AnnotationTableConfigurationResult$; + exports.AnnotationTableConfigurationUpdates$ = AnnotationTableConfigurationUpdates$; + exports.ArchiveStatus = ArchiveStatus; + exports.BlockedEncryptionTypes$ = BlockedEncryptionTypes$; + exports.Bucket$ = Bucket$; + exports.BucketAbacStatus = BucketAbacStatus; + exports.BucketAccelerateStatus = BucketAccelerateStatus; + exports.BucketAlreadyExists = BucketAlreadyExists; + exports.BucketAlreadyExists$ = BucketAlreadyExists$; + exports.BucketAlreadyOwnedByYou = BucketAlreadyOwnedByYou; + exports.BucketAlreadyOwnedByYou$ = BucketAlreadyOwnedByYou$; + exports.BucketCannedACL = BucketCannedACL; + exports.BucketInfo$ = BucketInfo$; + exports.BucketLifecycleConfiguration$ = BucketLifecycleConfiguration$; + exports.BucketLocationConstraint = BucketLocationConstraint; + exports.BucketLoggingStatus$ = BucketLoggingStatus$; + exports.BucketLogsPermission = BucketLogsPermission; + exports.BucketNamespace = BucketNamespace; + exports.BucketType = BucketType; + exports.BucketVersioningStatus = BucketVersioningStatus; + exports.CORSConfiguration$ = CORSConfiguration$; + exports.CORSRule$ = CORSRule$; + exports.CSVInput$ = CSVInput$; + exports.CSVOutput$ = CSVOutput$; + exports.Checksum$ = Checksum$; + exports.ChecksumAlgorithm = ChecksumAlgorithm2; + exports.ChecksumMode = ChecksumMode; + exports.ChecksumType = ChecksumType; + exports.CommonPrefix$ = CommonPrefix$; + exports.CompleteMultipartUpload$ = CompleteMultipartUpload$; + exports.CompleteMultipartUploadCommand = CompleteMultipartUploadCommand; + exports.CompleteMultipartUploadOutput$ = CompleteMultipartUploadOutput$; + exports.CompleteMultipartUploadRequest$ = CompleteMultipartUploadRequest$; + exports.CompletedMultipartUpload$ = CompletedMultipartUpload$; + exports.CompletedPart$ = CompletedPart$; + exports.CompressionType = CompressionType; + exports.Condition$ = Condition$; + exports.ContinuationEvent$ = ContinuationEvent$; + exports.CopyObject$ = CopyObject$; + exports.CopyObjectCommand = CopyObjectCommand; + exports.CopyObjectOutput$ = CopyObjectOutput$; + exports.CopyObjectRequest$ = CopyObjectRequest$; + exports.CopyObjectResult$ = CopyObjectResult$; + exports.CopyPartResult$ = CopyPartResult$; + exports.CreateBucket$ = CreateBucket$; + exports.CreateBucketCommand = CreateBucketCommand2; + exports.CreateBucketConfiguration$ = CreateBucketConfiguration$; + exports.CreateBucketMetadataConfiguration$ = CreateBucketMetadataConfiguration$; + exports.CreateBucketMetadataConfigurationCommand = CreateBucketMetadataConfigurationCommand; + exports.CreateBucketMetadataConfigurationRequest$ = CreateBucketMetadataConfigurationRequest$; + exports.CreateBucketMetadataTableConfiguration$ = CreateBucketMetadataTableConfiguration$; + exports.CreateBucketMetadataTableConfigurationCommand = CreateBucketMetadataTableConfigurationCommand; + exports.CreateBucketMetadataTableConfigurationRequest$ = CreateBucketMetadataTableConfigurationRequest$; + exports.CreateBucketOutput$ = CreateBucketOutput$; + exports.CreateBucketRequest$ = CreateBucketRequest$; + exports.CreateMultipartUpload$ = CreateMultipartUpload$; + exports.CreateMultipartUploadCommand = CreateMultipartUploadCommand; + exports.CreateMultipartUploadOutput$ = CreateMultipartUploadOutput$; + exports.CreateMultipartUploadRequest$ = CreateMultipartUploadRequest$; + exports.CreateSession$ = CreateSession$; + exports.CreateSessionCommand = CreateSessionCommand; + exports.CreateSessionOutput$ = CreateSessionOutput$; + exports.CreateSessionRequest$ = CreateSessionRequest$; + exports.DataRedundancy = DataRedundancy; + exports.DefaultRetention$ = DefaultRetention$; + exports.Delete$ = Delete$; + exports.DeleteBucket$ = DeleteBucket$; + exports.DeleteBucketAnalyticsConfiguration$ = DeleteBucketAnalyticsConfiguration$; + exports.DeleteBucketAnalyticsConfigurationCommand = DeleteBucketAnalyticsConfigurationCommand; + exports.DeleteBucketAnalyticsConfigurationRequest$ = DeleteBucketAnalyticsConfigurationRequest$; + exports.DeleteBucketCommand = DeleteBucketCommand; + exports.DeleteBucketCors$ = DeleteBucketCors$; + exports.DeleteBucketCorsCommand = DeleteBucketCorsCommand; + exports.DeleteBucketCorsRequest$ = DeleteBucketCorsRequest$; + exports.DeleteBucketEncryption$ = DeleteBucketEncryption$; + exports.DeleteBucketEncryptionCommand = DeleteBucketEncryptionCommand; + exports.DeleteBucketEncryptionRequest$ = DeleteBucketEncryptionRequest$; + exports.DeleteBucketIntelligentTieringConfiguration$ = DeleteBucketIntelligentTieringConfiguration$; + exports.DeleteBucketIntelligentTieringConfigurationCommand = DeleteBucketIntelligentTieringConfigurationCommand; + exports.DeleteBucketIntelligentTieringConfigurationRequest$ = DeleteBucketIntelligentTieringConfigurationRequest$; + exports.DeleteBucketInventoryConfiguration$ = DeleteBucketInventoryConfiguration$; + exports.DeleteBucketInventoryConfigurationCommand = DeleteBucketInventoryConfigurationCommand; + exports.DeleteBucketInventoryConfigurationRequest$ = DeleteBucketInventoryConfigurationRequest$; + exports.DeleteBucketLifecycle$ = DeleteBucketLifecycle$; + exports.DeleteBucketLifecycleCommand = DeleteBucketLifecycleCommand; + exports.DeleteBucketLifecycleRequest$ = DeleteBucketLifecycleRequest$; + exports.DeleteBucketMetadataConfiguration$ = DeleteBucketMetadataConfiguration$; + exports.DeleteBucketMetadataConfigurationCommand = DeleteBucketMetadataConfigurationCommand; + exports.DeleteBucketMetadataConfigurationRequest$ = DeleteBucketMetadataConfigurationRequest$; + exports.DeleteBucketMetadataTableConfiguration$ = DeleteBucketMetadataTableConfiguration$; + exports.DeleteBucketMetadataTableConfigurationCommand = DeleteBucketMetadataTableConfigurationCommand; + exports.DeleteBucketMetadataTableConfigurationRequest$ = DeleteBucketMetadataTableConfigurationRequest$; + exports.DeleteBucketMetricsConfiguration$ = DeleteBucketMetricsConfiguration$; + exports.DeleteBucketMetricsConfigurationCommand = DeleteBucketMetricsConfigurationCommand; + exports.DeleteBucketMetricsConfigurationRequest$ = DeleteBucketMetricsConfigurationRequest$; + exports.DeleteBucketOwnershipControls$ = DeleteBucketOwnershipControls$; + exports.DeleteBucketOwnershipControlsCommand = DeleteBucketOwnershipControlsCommand; + exports.DeleteBucketOwnershipControlsRequest$ = DeleteBucketOwnershipControlsRequest$; + exports.DeleteBucketPolicy$ = DeleteBucketPolicy$; + exports.DeleteBucketPolicyCommand = DeleteBucketPolicyCommand; + exports.DeleteBucketPolicyRequest$ = DeleteBucketPolicyRequest$; + exports.DeleteBucketReplication$ = DeleteBucketReplication$; + exports.DeleteBucketReplicationCommand = DeleteBucketReplicationCommand; + exports.DeleteBucketReplicationRequest$ = DeleteBucketReplicationRequest$; + exports.DeleteBucketRequest$ = DeleteBucketRequest$; + exports.DeleteBucketTagging$ = DeleteBucketTagging$; + exports.DeleteBucketTaggingCommand = DeleteBucketTaggingCommand; + exports.DeleteBucketTaggingRequest$ = DeleteBucketTaggingRequest$; + exports.DeleteBucketWebsite$ = DeleteBucketWebsite$; + exports.DeleteBucketWebsiteCommand = DeleteBucketWebsiteCommand; + exports.DeleteBucketWebsiteRequest$ = DeleteBucketWebsiteRequest$; + exports.DeleteMarkerEntry$ = DeleteMarkerEntry$; + exports.DeleteMarkerReplication$ = DeleteMarkerReplication$; + exports.DeleteMarkerReplicationStatus = DeleteMarkerReplicationStatus; + exports.DeleteObject$ = DeleteObject$; + exports.DeleteObjectAnnotation$ = DeleteObjectAnnotation$; + exports.DeleteObjectAnnotationCommand = DeleteObjectAnnotationCommand; + exports.DeleteObjectAnnotationOutput$ = DeleteObjectAnnotationOutput$; + exports.DeleteObjectAnnotationRequest$ = DeleteObjectAnnotationRequest$; + exports.DeleteObjectCommand = DeleteObjectCommand2; + exports.DeleteObjectOutput$ = DeleteObjectOutput$; + exports.DeleteObjectRequest$ = DeleteObjectRequest$; + exports.DeleteObjectTagging$ = DeleteObjectTagging$; + exports.DeleteObjectTaggingCommand = DeleteObjectTaggingCommand; + exports.DeleteObjectTaggingOutput$ = DeleteObjectTaggingOutput$; + exports.DeleteObjectTaggingRequest$ = DeleteObjectTaggingRequest$; + exports.DeleteObjects$ = DeleteObjects$; + exports.DeleteObjectsCommand = DeleteObjectsCommand; + exports.DeleteObjectsOutput$ = DeleteObjectsOutput$; + exports.DeleteObjectsRequest$ = DeleteObjectsRequest$; + exports.DeletePublicAccessBlock$ = DeletePublicAccessBlock$; + exports.DeletePublicAccessBlockCommand = DeletePublicAccessBlockCommand; + exports.DeletePublicAccessBlockRequest$ = DeletePublicAccessBlockRequest$; + exports.DeletedObject$ = DeletedObject$; + exports.Destination$ = Destination$; + exports.DestinationResult$ = DestinationResult$; + exports.EncodingType = EncodingType; + exports.Encryption$ = Encryption$; + exports.EncryptionConfiguration$ = EncryptionConfiguration$; + exports.EncryptionType = EncryptionType; + exports.EncryptionTypeMismatch = EncryptionTypeMismatch; + exports.EncryptionTypeMismatch$ = EncryptionTypeMismatch$; + exports.EndEvent$ = EndEvent$; + exports.ErrorDetails$ = ErrorDetails$; + exports.ErrorDocument$ = ErrorDocument$; + exports.Event = Event; + exports.EventBridgeConfiguration$ = EventBridgeConfiguration$; + exports.EventHoldDuration$ = EventHoldDuration$; + exports.ExistingObjectReplication$ = ExistingObjectReplication$; + exports.ExistingObjectReplicationStatus = ExistingObjectReplicationStatus; + exports.ExpirationState = ExpirationState; + exports.ExpirationStatus = ExpirationStatus; + exports.ExpressionType = ExpressionType; + exports.FileHeaderInfo = FileHeaderInfo; + exports.FilterRule$ = FilterRule$; + exports.FilterRuleName = FilterRuleName; + exports.GetBucketAbac$ = GetBucketAbac$; + exports.GetBucketAbacCommand = GetBucketAbacCommand; + exports.GetBucketAbacOutput$ = GetBucketAbacOutput$; + exports.GetBucketAbacRequest$ = GetBucketAbacRequest$; + exports.GetBucketAccelerateConfiguration$ = GetBucketAccelerateConfiguration$; + exports.GetBucketAccelerateConfigurationCommand = GetBucketAccelerateConfigurationCommand; + exports.GetBucketAccelerateConfigurationOutput$ = GetBucketAccelerateConfigurationOutput$; + exports.GetBucketAccelerateConfigurationRequest$ = GetBucketAccelerateConfigurationRequest$; + exports.GetBucketAcl$ = GetBucketAcl$; + exports.GetBucketAclCommand = GetBucketAclCommand; + exports.GetBucketAclOutput$ = GetBucketAclOutput$; + exports.GetBucketAclRequest$ = GetBucketAclRequest$; + exports.GetBucketAnalyticsConfiguration$ = GetBucketAnalyticsConfiguration$; + exports.GetBucketAnalyticsConfigurationCommand = GetBucketAnalyticsConfigurationCommand; + exports.GetBucketAnalyticsConfigurationOutput$ = GetBucketAnalyticsConfigurationOutput$; + exports.GetBucketAnalyticsConfigurationRequest$ = GetBucketAnalyticsConfigurationRequest$; + exports.GetBucketCors$ = GetBucketCors$; + exports.GetBucketCorsCommand = GetBucketCorsCommand; + exports.GetBucketCorsOutput$ = GetBucketCorsOutput$; + exports.GetBucketCorsRequest$ = GetBucketCorsRequest$; + exports.GetBucketEncryption$ = GetBucketEncryption$; + exports.GetBucketEncryptionCommand = GetBucketEncryptionCommand; + exports.GetBucketEncryptionOutput$ = GetBucketEncryptionOutput$; + exports.GetBucketEncryptionRequest$ = GetBucketEncryptionRequest$; + exports.GetBucketIntelligentTieringConfiguration$ = GetBucketIntelligentTieringConfiguration$; + exports.GetBucketIntelligentTieringConfigurationCommand = GetBucketIntelligentTieringConfigurationCommand; + exports.GetBucketIntelligentTieringConfigurationOutput$ = GetBucketIntelligentTieringConfigurationOutput$; + exports.GetBucketIntelligentTieringConfigurationRequest$ = GetBucketIntelligentTieringConfigurationRequest$; + exports.GetBucketInventoryConfiguration$ = GetBucketInventoryConfiguration$; + exports.GetBucketInventoryConfigurationCommand = GetBucketInventoryConfigurationCommand; + exports.GetBucketInventoryConfigurationOutput$ = GetBucketInventoryConfigurationOutput$; + exports.GetBucketInventoryConfigurationRequest$ = GetBucketInventoryConfigurationRequest$; + exports.GetBucketLifecycleConfiguration$ = GetBucketLifecycleConfiguration$; + exports.GetBucketLifecycleConfigurationCommand = GetBucketLifecycleConfigurationCommand; + exports.GetBucketLifecycleConfigurationOutput$ = GetBucketLifecycleConfigurationOutput$; + exports.GetBucketLifecycleConfigurationRequest$ = GetBucketLifecycleConfigurationRequest$; + exports.GetBucketLocation$ = GetBucketLocation$; + exports.GetBucketLocationCommand = GetBucketLocationCommand; + exports.GetBucketLocationOutput$ = GetBucketLocationOutput$; + exports.GetBucketLocationRequest$ = GetBucketLocationRequest$; + exports.GetBucketLogging$ = GetBucketLogging$; + exports.GetBucketLoggingCommand = GetBucketLoggingCommand; + exports.GetBucketLoggingOutput$ = GetBucketLoggingOutput$; + exports.GetBucketLoggingRequest$ = GetBucketLoggingRequest$; + exports.GetBucketMetadataConfiguration$ = GetBucketMetadataConfiguration$; + exports.GetBucketMetadataConfigurationCommand = GetBucketMetadataConfigurationCommand; + exports.GetBucketMetadataConfigurationOutput$ = GetBucketMetadataConfigurationOutput$; + exports.GetBucketMetadataConfigurationRequest$ = GetBucketMetadataConfigurationRequest$; + exports.GetBucketMetadataConfigurationResult$ = GetBucketMetadataConfigurationResult$; + exports.GetBucketMetadataTableConfiguration$ = GetBucketMetadataTableConfiguration$; + exports.GetBucketMetadataTableConfigurationCommand = GetBucketMetadataTableConfigurationCommand; + exports.GetBucketMetadataTableConfigurationOutput$ = GetBucketMetadataTableConfigurationOutput$; + exports.GetBucketMetadataTableConfigurationRequest$ = GetBucketMetadataTableConfigurationRequest$; + exports.GetBucketMetadataTableConfigurationResult$ = GetBucketMetadataTableConfigurationResult$; + exports.GetBucketMetricsConfiguration$ = GetBucketMetricsConfiguration$; + exports.GetBucketMetricsConfigurationCommand = GetBucketMetricsConfigurationCommand; + exports.GetBucketMetricsConfigurationOutput$ = GetBucketMetricsConfigurationOutput$; + exports.GetBucketMetricsConfigurationRequest$ = GetBucketMetricsConfigurationRequest$; + exports.GetBucketNotificationConfiguration$ = GetBucketNotificationConfiguration$; + exports.GetBucketNotificationConfigurationCommand = GetBucketNotificationConfigurationCommand; + exports.GetBucketNotificationConfigurationRequest$ = GetBucketNotificationConfigurationRequest$; + exports.GetBucketOwnershipControls$ = GetBucketOwnershipControls$; + exports.GetBucketOwnershipControlsCommand = GetBucketOwnershipControlsCommand; + exports.GetBucketOwnershipControlsOutput$ = GetBucketOwnershipControlsOutput$; + exports.GetBucketOwnershipControlsRequest$ = GetBucketOwnershipControlsRequest$; + exports.GetBucketPolicy$ = GetBucketPolicy$; + exports.GetBucketPolicyCommand = GetBucketPolicyCommand; + exports.GetBucketPolicyOutput$ = GetBucketPolicyOutput$; + exports.GetBucketPolicyRequest$ = GetBucketPolicyRequest$; + exports.GetBucketPolicyStatus$ = GetBucketPolicyStatus$; + exports.GetBucketPolicyStatusCommand = GetBucketPolicyStatusCommand; + exports.GetBucketPolicyStatusOutput$ = GetBucketPolicyStatusOutput$; + exports.GetBucketPolicyStatusRequest$ = GetBucketPolicyStatusRequest$; + exports.GetBucketReplication$ = GetBucketReplication$; + exports.GetBucketReplicationCommand = GetBucketReplicationCommand; + exports.GetBucketReplicationOutput$ = GetBucketReplicationOutput$; + exports.GetBucketReplicationRequest$ = GetBucketReplicationRequest$; + exports.GetBucketRequestPayment$ = GetBucketRequestPayment$; + exports.GetBucketRequestPaymentCommand = GetBucketRequestPaymentCommand; + exports.GetBucketRequestPaymentOutput$ = GetBucketRequestPaymentOutput$; + exports.GetBucketRequestPaymentRequest$ = GetBucketRequestPaymentRequest$; + exports.GetBucketTagging$ = GetBucketTagging$; + exports.GetBucketTaggingCommand = GetBucketTaggingCommand; + exports.GetBucketTaggingOutput$ = GetBucketTaggingOutput$; + exports.GetBucketTaggingRequest$ = GetBucketTaggingRequest$; + exports.GetBucketVersioning$ = GetBucketVersioning$; + exports.GetBucketVersioningCommand = GetBucketVersioningCommand; + exports.GetBucketVersioningOutput$ = GetBucketVersioningOutput$; + exports.GetBucketVersioningRequest$ = GetBucketVersioningRequest$; + exports.GetBucketWebsite$ = GetBucketWebsite$; + exports.GetBucketWebsiteCommand = GetBucketWebsiteCommand; + exports.GetBucketWebsiteOutput$ = GetBucketWebsiteOutput$; + exports.GetBucketWebsiteRequest$ = GetBucketWebsiteRequest$; + exports.GetObject$ = GetObject$; + exports.GetObjectAcl$ = GetObjectAcl$; + exports.GetObjectAclCommand = GetObjectAclCommand; + exports.GetObjectAclOutput$ = GetObjectAclOutput$; + exports.GetObjectAclRequest$ = GetObjectAclRequest$; + exports.GetObjectAnnotation$ = GetObjectAnnotation$; + exports.GetObjectAnnotationCommand = GetObjectAnnotationCommand; + exports.GetObjectAnnotationOutput$ = GetObjectAnnotationOutput$; + exports.GetObjectAnnotationRequest$ = GetObjectAnnotationRequest$; + exports.GetObjectAttributes$ = GetObjectAttributes$; + exports.GetObjectAttributesCommand = GetObjectAttributesCommand; + exports.GetObjectAttributesOutput$ = GetObjectAttributesOutput$; + exports.GetObjectAttributesParts$ = GetObjectAttributesParts$; + exports.GetObjectAttributesRequest$ = GetObjectAttributesRequest$; + exports.GetObjectCommand = GetObjectCommand; + exports.GetObjectLegalHold$ = GetObjectLegalHold$; + exports.GetObjectLegalHoldCommand = GetObjectLegalHoldCommand; + exports.GetObjectLegalHoldOutput$ = GetObjectLegalHoldOutput$; + exports.GetObjectLegalHoldRequest$ = GetObjectLegalHoldRequest$; + exports.GetObjectLockConfiguration$ = GetObjectLockConfiguration$; + exports.GetObjectLockConfigurationCommand = GetObjectLockConfigurationCommand; + exports.GetObjectLockConfigurationOutput$ = GetObjectLockConfigurationOutput$; + exports.GetObjectLockConfigurationRequest$ = GetObjectLockConfigurationRequest$; + exports.GetObjectOutput$ = GetObjectOutput$; + exports.GetObjectRequest$ = GetObjectRequest$; + exports.GetObjectRetention$ = GetObjectRetention$; + exports.GetObjectRetentionCommand = GetObjectRetentionCommand; + exports.GetObjectRetentionOutput$ = GetObjectRetentionOutput$; + exports.GetObjectRetentionRequest$ = GetObjectRetentionRequest$; + exports.GetObjectTagging$ = GetObjectTagging$; + exports.GetObjectTaggingCommand = GetObjectTaggingCommand; + exports.GetObjectTaggingOutput$ = GetObjectTaggingOutput$; + exports.GetObjectTaggingRequest$ = GetObjectTaggingRequest$; + exports.GetObjectTorrent$ = GetObjectTorrent$; + exports.GetObjectTorrentCommand = GetObjectTorrentCommand; + exports.GetObjectTorrentOutput$ = GetObjectTorrentOutput$; + exports.GetObjectTorrentRequest$ = GetObjectTorrentRequest$; + exports.GetPublicAccessBlock$ = GetPublicAccessBlock$; + exports.GetPublicAccessBlockCommand = GetPublicAccessBlockCommand; + exports.GetPublicAccessBlockOutput$ = GetPublicAccessBlockOutput$; + exports.GetPublicAccessBlockRequest$ = GetPublicAccessBlockRequest$; + exports.GlacierJobParameters$ = GlacierJobParameters$; + exports.Grant$ = Grant$; + exports.Grantee$ = Grantee$; + exports.HeadBucket$ = HeadBucket$; + exports.HeadBucketCommand = HeadBucketCommand2; + exports.HeadBucketOutput$ = HeadBucketOutput$; + exports.HeadBucketRequest$ = HeadBucketRequest$; + exports.HeadObject$ = HeadObject$; + exports.HeadObjectCommand = HeadObjectCommand; + exports.HeadObjectOutput$ = HeadObjectOutput$; + exports.HeadObjectRequest$ = HeadObjectRequest$; + exports.IdempotencyParameterMismatch = IdempotencyParameterMismatch; + exports.IdempotencyParameterMismatch$ = IdempotencyParameterMismatch$; + exports.IndexDocument$ = IndexDocument$; + exports.Initiator$ = Initiator$; + exports.InputSerialization$ = InputSerialization$; + exports.IntelligentTieringAccessTier = IntelligentTieringAccessTier; + exports.IntelligentTieringAndOperator$ = IntelligentTieringAndOperator$; + exports.IntelligentTieringConfiguration$ = IntelligentTieringConfiguration$; + exports.IntelligentTieringFilter$ = IntelligentTieringFilter$; + exports.IntelligentTieringStatus = IntelligentTieringStatus; + exports.InvalidAnnotationName = InvalidAnnotationName; + exports.InvalidAnnotationName$ = InvalidAnnotationName$; + exports.InvalidObjectState = InvalidObjectState; + exports.InvalidObjectState$ = InvalidObjectState$; + exports.InvalidPrefix = InvalidPrefix; + exports.InvalidPrefix$ = InvalidPrefix$; + exports.InvalidRequest = InvalidRequest; + exports.InvalidRequest$ = InvalidRequest$; + exports.InvalidWriteOffset = InvalidWriteOffset; + exports.InvalidWriteOffset$ = InvalidWriteOffset$; + exports.InventoryConfiguration$ = InventoryConfiguration$; + exports.InventoryConfigurationState = InventoryConfigurationState; + exports.InventoryDestination$ = InventoryDestination$; + exports.InventoryEncryption$ = InventoryEncryption$; + exports.InventoryFilter$ = InventoryFilter$; + exports.InventoryFormat = InventoryFormat; + exports.InventoryFrequency = InventoryFrequency; + exports.InventoryIncludedObjectVersions = InventoryIncludedObjectVersions; + exports.InventoryOptionalField = InventoryOptionalField; + exports.InventoryS3BucketDestination$ = InventoryS3BucketDestination$; + exports.InventorySchedule$ = InventorySchedule$; + exports.InventoryTableConfiguration$ = InventoryTableConfiguration$; + exports.InventoryTableConfigurationResult$ = InventoryTableConfigurationResult$; + exports.InventoryTableConfigurationUpdates$ = InventoryTableConfigurationUpdates$; + exports.JSONInput$ = JSONInput$; + exports.JSONOutput$ = JSONOutput$; + exports.JSONType = JSONType; + exports.JournalTableConfiguration$ = JournalTableConfiguration$; + exports.JournalTableConfigurationResult$ = JournalTableConfigurationResult$; + exports.JournalTableConfigurationUpdates$ = JournalTableConfigurationUpdates$; + exports.LambdaFunctionConfiguration$ = LambdaFunctionConfiguration$; + exports.LifecycleExpiration$ = LifecycleExpiration$; + exports.LifecycleRule$ = LifecycleRule$; + exports.LifecycleRuleAndOperator$ = LifecycleRuleAndOperator$; + exports.LifecycleRuleFilter$ = LifecycleRuleFilter$; + exports.ListBucketAnalyticsConfigurations$ = ListBucketAnalyticsConfigurations$; + exports.ListBucketAnalyticsConfigurationsCommand = ListBucketAnalyticsConfigurationsCommand; + exports.ListBucketAnalyticsConfigurationsOutput$ = ListBucketAnalyticsConfigurationsOutput$; + exports.ListBucketAnalyticsConfigurationsRequest$ = ListBucketAnalyticsConfigurationsRequest$; + exports.ListBucketIntelligentTieringConfigurations$ = ListBucketIntelligentTieringConfigurations$; + exports.ListBucketIntelligentTieringConfigurationsCommand = ListBucketIntelligentTieringConfigurationsCommand; + exports.ListBucketIntelligentTieringConfigurationsOutput$ = ListBucketIntelligentTieringConfigurationsOutput$; + exports.ListBucketIntelligentTieringConfigurationsRequest$ = ListBucketIntelligentTieringConfigurationsRequest$; + exports.ListBucketInventoryConfigurations$ = ListBucketInventoryConfigurations$; + exports.ListBucketInventoryConfigurationsCommand = ListBucketInventoryConfigurationsCommand; + exports.ListBucketInventoryConfigurationsOutput$ = ListBucketInventoryConfigurationsOutput$; + exports.ListBucketInventoryConfigurationsRequest$ = ListBucketInventoryConfigurationsRequest$; + exports.ListBucketMetricsConfigurations$ = ListBucketMetricsConfigurations$; + exports.ListBucketMetricsConfigurationsCommand = ListBucketMetricsConfigurationsCommand; + exports.ListBucketMetricsConfigurationsOutput$ = ListBucketMetricsConfigurationsOutput$; + exports.ListBucketMetricsConfigurationsRequest$ = ListBucketMetricsConfigurationsRequest$; + exports.ListBuckets$ = ListBuckets$; + exports.ListBucketsCommand = ListBucketsCommand; + exports.ListBucketsOutput$ = ListBucketsOutput$; + exports.ListBucketsRequest$ = ListBucketsRequest$; + exports.ListDirectoryBuckets$ = ListDirectoryBuckets$; + exports.ListDirectoryBucketsCommand = ListDirectoryBucketsCommand; + exports.ListDirectoryBucketsOutput$ = ListDirectoryBucketsOutput$; + exports.ListDirectoryBucketsRequest$ = ListDirectoryBucketsRequest$; + exports.ListMultipartUploads$ = ListMultipartUploads$; + exports.ListMultipartUploadsCommand = ListMultipartUploadsCommand; + exports.ListMultipartUploadsOutput$ = ListMultipartUploadsOutput$; + exports.ListMultipartUploadsRequest$ = ListMultipartUploadsRequest$; + exports.ListObjectAnnotations$ = ListObjectAnnotations$; + exports.ListObjectAnnotationsCommand = ListObjectAnnotationsCommand; + exports.ListObjectAnnotationsOutput$ = ListObjectAnnotationsOutput$; + exports.ListObjectAnnotationsRequest$ = ListObjectAnnotationsRequest$; + exports.ListObjectVersions$ = ListObjectVersions$; + exports.ListObjectVersionsCommand = ListObjectVersionsCommand; + exports.ListObjectVersionsOutput$ = ListObjectVersionsOutput$; + exports.ListObjectVersionsRequest$ = ListObjectVersionsRequest$; + exports.ListObjects$ = ListObjects$; + exports.ListObjectsCommand = ListObjectsCommand; + exports.ListObjectsOutput$ = ListObjectsOutput$; + exports.ListObjectsRequest$ = ListObjectsRequest$; + exports.ListObjectsV2$ = ListObjectsV2$; + exports.ListObjectsV2Command = ListObjectsV2Command; + exports.ListObjectsV2Output$ = ListObjectsV2Output$; + exports.ListObjectsV2Request$ = ListObjectsV2Request$; + exports.ListParts$ = ListParts$; + exports.ListPartsCommand = ListPartsCommand; + exports.ListPartsOutput$ = ListPartsOutput$; + exports.ListPartsRequest$ = ListPartsRequest$; + exports.LocationInfo$ = LocationInfo$; + exports.LocationType = LocationType; + exports.LoggingEnabled$ = LoggingEnabled$; + exports.MFADelete = MFADelete; + exports.MFADeleteStatus = MFADeleteStatus; + exports.MetadataConfiguration$ = MetadataConfiguration$; + exports.MetadataConfigurationResult$ = MetadataConfigurationResult$; + exports.MetadataDirective = MetadataDirective; + exports.MetadataEntry$ = MetadataEntry$; + exports.MetadataTableConfiguration$ = MetadataTableConfiguration$; + exports.MetadataTableConfigurationResult$ = MetadataTableConfigurationResult$; + exports.MetadataTableEncryptionConfiguration$ = MetadataTableEncryptionConfiguration$; + exports.Metrics$ = Metrics$; + exports.MetricsAndOperator$ = MetricsAndOperator$; + exports.MetricsConfiguration$ = MetricsConfiguration$; + exports.MetricsFilter$ = MetricsFilter$; + exports.MetricsStatus = MetricsStatus; + exports.MultipartUpload$ = MultipartUpload$; + exports.NoSuchAnnotation = NoSuchAnnotation; + exports.NoSuchAnnotation$ = NoSuchAnnotation$; + exports.NoSuchBucket = NoSuchBucket; + exports.NoSuchBucket$ = NoSuchBucket$; + exports.NoSuchKey = NoSuchKey; + exports.NoSuchKey$ = NoSuchKey$; + exports.NoSuchUpload = NoSuchUpload; + exports.NoSuchUpload$ = NoSuchUpload$; + exports.NoncurrentVersionExpiration$ = NoncurrentVersionExpiration$; + exports.NoncurrentVersionTransition$ = NoncurrentVersionTransition$; + exports.NotFound = NotFound; + exports.NotFound$ = NotFound$; + exports.NotificationConfiguration$ = NotificationConfiguration$; + exports.NotificationConfigurationFilter$ = NotificationConfigurationFilter$; + exports.ObjectAlreadyInActiveTierError = ObjectAlreadyInActiveTierError; + exports.ObjectAlreadyInActiveTierError$ = ObjectAlreadyInActiveTierError$; + exports.ObjectAttributes = ObjectAttributes; + exports.ObjectCannedACL = ObjectCannedACL; + exports.ObjectEncryption$ = ObjectEncryption$; + exports.ObjectIdentifier$ = ObjectIdentifier$; + exports.ObjectLockConfiguration$ = ObjectLockConfiguration$; + exports.ObjectLockEnabled = ObjectLockEnabled; + exports.ObjectLockEventHold = ObjectLockEventHold; + exports.ObjectLockLegalHold$ = ObjectLockLegalHold$; + exports.ObjectLockLegalHoldStatus = ObjectLockLegalHoldStatus; + exports.ObjectLockMode = ObjectLockMode; + exports.ObjectLockRetention$ = ObjectLockRetention$; + exports.ObjectLockRetentionMode = ObjectLockRetentionMode; + exports.ObjectLockRule$ = ObjectLockRule$; + exports.ObjectNotInActiveTierError = ObjectNotInActiveTierError; + exports.ObjectNotInActiveTierError$ = ObjectNotInActiveTierError$; + exports.ObjectOwnership = ObjectOwnership; + exports.ObjectPart$ = ObjectPart$; + exports.ObjectStorageClass = ObjectStorageClass; + exports.ObjectVersion$ = ObjectVersion$; + exports.ObjectVersionStorageClass = ObjectVersionStorageClass; + exports.OptionalObjectAttributes = OptionalObjectAttributes; + exports.OutputLocation$ = OutputLocation$; + exports.OutputSerialization$ = OutputSerialization$; + exports.Owner$ = Owner$; + exports.OwnerOverride = OwnerOverride; + exports.OwnershipControls$ = OwnershipControls$; + exports.OwnershipControlsRule$ = OwnershipControlsRule$; + exports.ParquetInput$ = ParquetInput$; + exports.Part$ = Part$; + exports.PartitionDateSource = PartitionDateSource; + exports.PartitionedPrefix$ = PartitionedPrefix$; + exports.Payer = Payer; + exports.Permission = Permission; + exports.PolicyStatus$ = PolicyStatus$; + exports.Progress$ = Progress$; + exports.ProgressEvent$ = ProgressEvent$; + exports.Protocol = Protocol; + exports.PublicAccessBlockConfiguration$ = PublicAccessBlockConfiguration$; + exports.PutBucketAbac$ = PutBucketAbac$; + exports.PutBucketAbacCommand = PutBucketAbacCommand; + exports.PutBucketAbacRequest$ = PutBucketAbacRequest$; + exports.PutBucketAccelerateConfiguration$ = PutBucketAccelerateConfiguration$; + exports.PutBucketAccelerateConfigurationCommand = PutBucketAccelerateConfigurationCommand; + exports.PutBucketAccelerateConfigurationRequest$ = PutBucketAccelerateConfigurationRequest$; + exports.PutBucketAcl$ = PutBucketAcl$; + exports.PutBucketAclCommand = PutBucketAclCommand; + exports.PutBucketAclRequest$ = PutBucketAclRequest$; + exports.PutBucketAnalyticsConfiguration$ = PutBucketAnalyticsConfiguration$; + exports.PutBucketAnalyticsConfigurationCommand = PutBucketAnalyticsConfigurationCommand; + exports.PutBucketAnalyticsConfigurationRequest$ = PutBucketAnalyticsConfigurationRequest$; + exports.PutBucketCors$ = PutBucketCors$; + exports.PutBucketCorsCommand = PutBucketCorsCommand; + exports.PutBucketCorsRequest$ = PutBucketCorsRequest$; + exports.PutBucketEncryption$ = PutBucketEncryption$; + exports.PutBucketEncryptionCommand = PutBucketEncryptionCommand; + exports.PutBucketEncryptionRequest$ = PutBucketEncryptionRequest$; + exports.PutBucketIntelligentTieringConfiguration$ = PutBucketIntelligentTieringConfiguration$; + exports.PutBucketIntelligentTieringConfigurationCommand = PutBucketIntelligentTieringConfigurationCommand; + exports.PutBucketIntelligentTieringConfigurationRequest$ = PutBucketIntelligentTieringConfigurationRequest$; + exports.PutBucketInventoryConfiguration$ = PutBucketInventoryConfiguration$; + exports.PutBucketInventoryConfigurationCommand = PutBucketInventoryConfigurationCommand; + exports.PutBucketInventoryConfigurationRequest$ = PutBucketInventoryConfigurationRequest$; + exports.PutBucketLifecycleConfiguration$ = PutBucketLifecycleConfiguration$; + exports.PutBucketLifecycleConfigurationCommand = PutBucketLifecycleConfigurationCommand; + exports.PutBucketLifecycleConfigurationOutput$ = PutBucketLifecycleConfigurationOutput$; + exports.PutBucketLifecycleConfigurationRequest$ = PutBucketLifecycleConfigurationRequest$; + exports.PutBucketLogging$ = PutBucketLogging$; + exports.PutBucketLoggingCommand = PutBucketLoggingCommand; + exports.PutBucketLoggingRequest$ = PutBucketLoggingRequest$; + exports.PutBucketMetricsConfiguration$ = PutBucketMetricsConfiguration$; + exports.PutBucketMetricsConfigurationCommand = PutBucketMetricsConfigurationCommand; + exports.PutBucketMetricsConfigurationRequest$ = PutBucketMetricsConfigurationRequest$; + exports.PutBucketNotificationConfiguration$ = PutBucketNotificationConfiguration$; + exports.PutBucketNotificationConfigurationCommand = PutBucketNotificationConfigurationCommand; + exports.PutBucketNotificationConfigurationRequest$ = PutBucketNotificationConfigurationRequest$; + exports.PutBucketOwnershipControls$ = PutBucketOwnershipControls$; + exports.PutBucketOwnershipControlsCommand = PutBucketOwnershipControlsCommand; + exports.PutBucketOwnershipControlsRequest$ = PutBucketOwnershipControlsRequest$; + exports.PutBucketPolicy$ = PutBucketPolicy$; + exports.PutBucketPolicyCommand = PutBucketPolicyCommand2; + exports.PutBucketPolicyRequest$ = PutBucketPolicyRequest$; + exports.PutBucketReplication$ = PutBucketReplication$; + exports.PutBucketReplicationCommand = PutBucketReplicationCommand; + exports.PutBucketReplicationRequest$ = PutBucketReplicationRequest$; + exports.PutBucketRequestPayment$ = PutBucketRequestPayment$; + exports.PutBucketRequestPaymentCommand = PutBucketRequestPaymentCommand; + exports.PutBucketRequestPaymentRequest$ = PutBucketRequestPaymentRequest$; + exports.PutBucketTagging$ = PutBucketTagging$; + exports.PutBucketTaggingCommand = PutBucketTaggingCommand; + exports.PutBucketTaggingRequest$ = PutBucketTaggingRequest$; + exports.PutBucketVersioning$ = PutBucketVersioning$; + exports.PutBucketVersioningCommand = PutBucketVersioningCommand; + exports.PutBucketVersioningRequest$ = PutBucketVersioningRequest$; + exports.PutBucketWebsite$ = PutBucketWebsite$; + exports.PutBucketWebsiteCommand = PutBucketWebsiteCommand; + exports.PutBucketWebsiteRequest$ = PutBucketWebsiteRequest$; + exports.PutObject$ = PutObject$; + exports.PutObjectAcl$ = PutObjectAcl$; + exports.PutObjectAclCommand = PutObjectAclCommand; + exports.PutObjectAclOutput$ = PutObjectAclOutput$; + exports.PutObjectAclRequest$ = PutObjectAclRequest$; + exports.PutObjectAnnotation$ = PutObjectAnnotation$; + exports.PutObjectAnnotationCommand = PutObjectAnnotationCommand; + exports.PutObjectAnnotationOutput$ = PutObjectAnnotationOutput$; + exports.PutObjectAnnotationRequest$ = PutObjectAnnotationRequest$; + exports.PutObjectCommand = PutObjectCommand2; + exports.PutObjectLegalHold$ = PutObjectLegalHold$; + exports.PutObjectLegalHoldCommand = PutObjectLegalHoldCommand; + exports.PutObjectLegalHoldOutput$ = PutObjectLegalHoldOutput$; + exports.PutObjectLegalHoldRequest$ = PutObjectLegalHoldRequest$; + exports.PutObjectLockConfiguration$ = PutObjectLockConfiguration$; + exports.PutObjectLockConfigurationCommand = PutObjectLockConfigurationCommand; + exports.PutObjectLockConfigurationOutput$ = PutObjectLockConfigurationOutput$; + exports.PutObjectLockConfigurationRequest$ = PutObjectLockConfigurationRequest$; + exports.PutObjectOutput$ = PutObjectOutput$; + exports.PutObjectRequest$ = PutObjectRequest$; + exports.PutObjectRetention$ = PutObjectRetention$; + exports.PutObjectRetentionCommand = PutObjectRetentionCommand; + exports.PutObjectRetentionOutput$ = PutObjectRetentionOutput$; + exports.PutObjectRetentionRequest$ = PutObjectRetentionRequest$; + exports.PutObjectTagging$ = PutObjectTagging$; + exports.PutObjectTaggingCommand = PutObjectTaggingCommand; + exports.PutObjectTaggingOutput$ = PutObjectTaggingOutput$; + exports.PutObjectTaggingRequest$ = PutObjectTaggingRequest$; + exports.PutPublicAccessBlock$ = PutPublicAccessBlock$; + exports.PutPublicAccessBlockCommand = PutPublicAccessBlockCommand; + exports.PutPublicAccessBlockRequest$ = PutPublicAccessBlockRequest$; + exports.QueueConfiguration$ = QueueConfiguration$; + exports.QuoteFields = QuoteFields; + exports.RecordExpiration$ = RecordExpiration$; + exports.RecordsEvent$ = RecordsEvent$; + exports.Redirect$ = Redirect$; + exports.RedirectAllRequestsTo$ = RedirectAllRequestsTo$; + exports.RenameObject$ = RenameObject$; + exports.RenameObjectCommand = RenameObjectCommand; + exports.RenameObjectOutput$ = RenameObjectOutput$; + exports.RenameObjectRequest$ = RenameObjectRequest$; + exports.ReplicaModifications$ = ReplicaModifications$; + exports.ReplicaModificationsStatus = ReplicaModificationsStatus; + exports.ReplicationConfiguration$ = ReplicationConfiguration$; + exports.ReplicationRule$ = ReplicationRule$; + exports.ReplicationRuleAndOperator$ = ReplicationRuleAndOperator$; + exports.ReplicationRuleFilter$ = ReplicationRuleFilter$; + exports.ReplicationRuleStatus = ReplicationRuleStatus; + exports.ReplicationStatus = ReplicationStatus; + exports.ReplicationTime$ = ReplicationTime$; + exports.ReplicationTimeStatus = ReplicationTimeStatus; + exports.ReplicationTimeValue$ = ReplicationTimeValue$; + exports.RequestCharged = RequestCharged; + exports.RequestPayer = RequestPayer; + exports.RequestPaymentConfiguration$ = RequestPaymentConfiguration$; + exports.RequestProgress$ = RequestProgress$; + exports.RestoreObject$ = RestoreObject$; + exports.RestoreObjectCommand = RestoreObjectCommand; + exports.RestoreObjectOutput$ = RestoreObjectOutput$; + exports.RestoreObjectRequest$ = RestoreObjectRequest$; + exports.RestoreRequest$ = RestoreRequest$; + exports.RestoreRequestType = RestoreRequestType; + exports.RestoreStatus$ = RestoreStatus$; + exports.RoutingRule$ = RoutingRule$; + exports.S3 = S3; + exports.S3Client = S3Client2; + exports.S3KeyFilter$ = S3KeyFilter$; + exports.S3Location$ = S3Location$; + exports.S3ServiceException = S3ServiceException; + exports.S3ServiceException$ = S3ServiceException$; + exports.S3TablesBucketType = S3TablesBucketType; + exports.S3TablesDestination$ = S3TablesDestination$; + exports.S3TablesDestinationResult$ = S3TablesDestinationResult$; + exports.SSEKMS$ = SSEKMS$; + exports.SSEKMSEncryption$ = SSEKMSEncryption$; + exports.SSES3$ = SSES3$; + exports.ScanRange$ = ScanRange$; + exports.SelectObjectContent$ = SelectObjectContent$; + exports.SelectObjectContentCommand = SelectObjectContentCommand; + exports.SelectObjectContentEventStream$ = SelectObjectContentEventStream$; + exports.SelectObjectContentOutput$ = SelectObjectContentOutput$; + exports.SelectObjectContentRequest$ = SelectObjectContentRequest$; + exports.SelectParameters$ = SelectParameters$; + exports.ServerSideEncryption = ServerSideEncryption; + exports.ServerSideEncryptionByDefault$ = ServerSideEncryptionByDefault$; + exports.ServerSideEncryptionConfiguration$ = ServerSideEncryptionConfiguration$; + exports.ServerSideEncryptionRule$ = ServerSideEncryptionRule$; + exports.SessionCredentials$ = SessionCredentials$; + exports.SessionMode = SessionMode; + exports.SimplePrefix$ = SimplePrefix$; + exports.SourceSelectionCriteria$ = SourceSelectionCriteria$; + exports.SseKmsEncryptedObjects$ = SseKmsEncryptedObjects$; + exports.SseKmsEncryptedObjectsStatus = SseKmsEncryptedObjectsStatus; + exports.Stats$ = Stats$; + exports.StatsEvent$ = StatsEvent$; + exports.StorageClass = StorageClass; + exports.StorageClassAnalysis$ = StorageClassAnalysis$; + exports.StorageClassAnalysisDataExport$ = StorageClassAnalysisDataExport$; + exports.StorageClassAnalysisSchemaVersion = StorageClassAnalysisSchemaVersion; + exports.TableSseAlgorithm = TableSseAlgorithm; + exports.Tag$ = Tag$2; + exports.Tagging$ = Tagging$; + exports.TaggingDirective = TaggingDirective; + exports.TargetGrant$ = TargetGrant$; + exports.TargetObjectKeyFormat$ = TargetObjectKeyFormat$; + exports.Tier = Tier; + exports.Tiering$ = Tiering$; + exports.TooManyParts = TooManyParts; + exports.TooManyParts$ = TooManyParts$; + exports.TopicConfiguration$ = TopicConfiguration$; + exports.Transition$ = Transition$; + exports.TransitionDefaultMinimumObjectSize = TransitionDefaultMinimumObjectSize; + exports.TransitionStorageClass = TransitionStorageClass; + exports.Type = Type; + exports.UnsupportedMediaType = UnsupportedMediaType; + exports.UnsupportedMediaType$ = UnsupportedMediaType$; + exports.UpdateBucketMetadataAnnotationTableConfiguration$ = UpdateBucketMetadataAnnotationTableConfiguration$; + exports.UpdateBucketMetadataAnnotationTableConfigurationCommand = UpdateBucketMetadataAnnotationTableConfigurationCommand; + exports.UpdateBucketMetadataAnnotationTableConfigurationRequest$ = UpdateBucketMetadataAnnotationTableConfigurationRequest$; + exports.UpdateBucketMetadataInventoryTableConfiguration$ = UpdateBucketMetadataInventoryTableConfiguration$; + exports.UpdateBucketMetadataInventoryTableConfigurationCommand = UpdateBucketMetadataInventoryTableConfigurationCommand; + exports.UpdateBucketMetadataInventoryTableConfigurationRequest$ = UpdateBucketMetadataInventoryTableConfigurationRequest$; + exports.UpdateBucketMetadataJournalTableConfiguration$ = UpdateBucketMetadataJournalTableConfiguration$; + exports.UpdateBucketMetadataJournalTableConfigurationCommand = UpdateBucketMetadataJournalTableConfigurationCommand; + exports.UpdateBucketMetadataJournalTableConfigurationRequest$ = UpdateBucketMetadataJournalTableConfigurationRequest$; + exports.UpdateObjectEncryption$ = UpdateObjectEncryption$; + exports.UpdateObjectEncryptionCommand = UpdateObjectEncryptionCommand; + exports.UpdateObjectEncryptionRequest$ = UpdateObjectEncryptionRequest$; + exports.UpdateObjectEncryptionResponse$ = UpdateObjectEncryptionResponse$; + exports.UploadPart$ = UploadPart$; + exports.UploadPartCommand = UploadPartCommand; + exports.UploadPartCopy$ = UploadPartCopy$; + exports.UploadPartCopyCommand = UploadPartCopyCommand; + exports.UploadPartCopyOutput$ = UploadPartCopyOutput$; + exports.UploadPartCopyRequest$ = UploadPartCopyRequest$; + exports.UploadPartOutput$ = UploadPartOutput$; + exports.UploadPartRequest$ = UploadPartRequest$; + exports.VersioningConfiguration$ = VersioningConfiguration$; + exports.WebsiteConfiguration$ = WebsiteConfiguration$; + exports.WriteGetObjectResponse$ = WriteGetObjectResponse$; + exports.WriteGetObjectResponseCommand = WriteGetObjectResponseCommand; + exports.WriteGetObjectResponseRequest$ = WriteGetObjectResponseRequest$; + exports._Error$ = _Error$; + exports._Object$ = _Object$; + exports.errorTypeRegistries = errorTypeRegistries5; + exports.paginateListBuckets = paginateListBuckets; + exports.paginateListDirectoryBuckets = paginateListDirectoryBuckets; + exports.paginateListObjectAnnotations = paginateListObjectAnnotations; + exports.paginateListObjectsV2 = paginateListObjectsV2; + exports.paginateListParts = paginateListParts; + exports.waitForBucketExists = waitForBucketExists; + exports.waitForBucketNotExists = waitForBucketNotExists; + exports.waitForObjectExists = waitForObjectExists; + exports.waitForObjectNotExists = waitForObjectNotExists; + exports.waitUntilBucketExists = waitUntilBucketExists; + exports.waitUntilBucketNotExists = waitUntilBucketNotExists; + exports.waitUntilObjectExists = waitUntilObjectExists; + exports.waitUntilObjectNotExists = waitUntilObjectNotExists; + } +}); + +// dist/config/env.js +import { existsSync } from "node:fs"; + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/external.js +var external_exports = {}; +__export(external_exports, { + $brand: () => $brand, + $input: () => $input, + $output: () => $output, + INVALID: () => INVALID, + NEVER: () => NEVER, + TimePrecision: () => TimePrecision, + ZodAny: () => ZodAny, + ZodArray: () => ZodArray, + ZodBase64: () => ZodBase64, + ZodBase64URL: () => ZodBase64URL, + ZodBigInt: () => ZodBigInt, + ZodBigIntFormat: () => ZodBigIntFormat, + ZodBoolean: () => ZodBoolean, + ZodCIDRv4: () => ZodCIDRv4, + ZodCIDRv6: () => ZodCIDRv6, + ZodCUID: () => ZodCUID, + ZodCUID2: () => ZodCUID2, + ZodCatch: () => ZodCatch, + ZodCodec: () => ZodCodec, + ZodCompileAsyncError: () => ZodCompileAsyncError, + ZodCompileUnsupportedError: () => ZodCompileUnsupportedError, + ZodCreditCard: () => ZodCreditCard, + ZodCustom: () => ZodCustom, + ZodCustomStringFormat: () => ZodCustomStringFormat, + ZodDate: () => ZodDate, + ZodDefault: () => ZodDefault, + ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, + ZodE164: () => ZodE164, + ZodEmail: () => ZodEmail, + ZodEmoji: () => ZodEmoji, + ZodEnum: () => ZodEnum, + ZodError: () => ZodError, + ZodExactOptional: () => ZodExactOptional, + ZodFile: () => ZodFile, + ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind, + ZodFunction: () => ZodFunction, + ZodGUID: () => ZodGUID, + ZodIBAN: () => ZodIBAN, + ZodIPv4: () => ZodIPv4, + ZodIPv6: () => ZodIPv6, + ZodISODate: () => ZodISODate, + ZodISODateTime: () => ZodISODateTime, + ZodISODuration: () => ZodISODuration, + ZodISOTime: () => ZodISOTime, + ZodInstanceOf: () => ZodInstanceOf, + ZodIntersection: () => ZodIntersection, + ZodIssueCode: () => ZodIssueCode, + ZodJWT: () => ZodJWT, + ZodKSUID: () => ZodKSUID, + ZodLazy: () => ZodLazy, + ZodLiteral: () => ZodLiteral, + ZodMAC: () => ZodMAC, + ZodMap: () => ZodMap, + ZodNaN: () => ZodNaN, + ZodNanoID: () => ZodNanoID, + ZodNever: () => ZodNever, + ZodNonOptional: () => ZodNonOptional, + ZodNull: () => ZodNull, + ZodNullable: () => ZodNullable, + ZodNumber: () => ZodNumber, + ZodNumberFormat: () => ZodNumberFormat, + ZodObject: () => ZodObject, + ZodOptional: () => ZodOptional, + ZodPipe: () => ZodPipe, + ZodPrefault: () => ZodPrefault, + ZodPreprocess: () => ZodPreprocess, + ZodPromise: () => ZodPromise, + ZodReadonly: () => ZodReadonly, + ZodRealError: () => ZodRealError, + ZodRecord: () => ZodRecord, + ZodSet: () => ZodSet, + ZodString: () => ZodString, + ZodStringFormat: () => ZodStringFormat, + ZodSuccess: () => ZodSuccess, + ZodSymbol: () => ZodSymbol, + ZodTemplateLiteral: () => ZodTemplateLiteral, + ZodTransform: () => ZodTransform, + ZodTuple: () => ZodTuple, + ZodType: () => ZodType, + ZodULID: () => ZodULID, + ZodURL: () => ZodURL, + ZodUUID: () => ZodUUID, + ZodUndefined: () => ZodUndefined, + ZodUnion: () => ZodUnion, + ZodUnknown: () => ZodUnknown, + ZodVoid: () => ZodVoid, + ZodXID: () => ZodXID, + ZodXor: () => ZodXor, + _ZodString: () => _ZodString, + _default: () => _default2, + _function: () => _function, + any: () => any, + array: () => array, + base64: () => base642, + base64url: () => base64url2, + bigint: () => bigint2, + boolean: () => boolean2, + catch: () => _catch2, + check: () => check, + cidrv4: () => cidrv42, + cidrv6: () => cidrv62, + clone: () => clone, + codec: () => codec, + coerce: () => coerce_exports, + compile: () => compile, + config: () => config, + core: () => core_exports2, + creditCard: () => creditCard2, + cuid: () => cuid3, + cuid2: () => cuid22, + currencyCode: () => currencyCode2, + custom: () => custom, + date: () => date2, + decode: () => decode2, + decodeAsync: () => decodeAsync2, + deepPartial: () => deepPartial, + describe: () => describe2, + discriminatedUnion: () => discriminatedUnion, + e164: () => e1642, + email: () => email2, + emoji: () => emoji2, + encode: () => encode2, + encodeAsync: () => encodeAsync2, + endsWith: () => _endsWith, + enum: () => _enum2, + exactOptional: () => exactOptional, + file: () => file, + flattenError: () => flattenError, + float32: () => float32, + float64: () => float64, + formatError: () => formatError, + fromJSONSchema: () => fromJSONSchema, + function: () => _function, + getDiscriminatedOption: () => getDiscriminatedOption, + getErrorMap: () => getErrorMap, + globalRegistry: () => globalRegistry, + gt: () => _gt, + gte: () => _gte, + guid: () => guid2, + hash: () => hash, + hex: () => hex2, + hostname: () => hostname2, + httpUrl: () => httpUrl, + iban: () => iban2, + includes: () => _includes, + input: () => input, + instanceof: () => _instanceof, + int: () => int, + int32: () => int32, + int64: () => int64, + intersection: () => intersection, + invertCodec: () => invertCodec, + ipv4: () => ipv42, + ipv6: () => ipv62, + iso: () => iso_exports, + json: () => json, + jwt: () => jwt, + keyof: () => keyof, + ksuid: () => ksuid2, + lazy: () => lazy, + length: () => _length, + literal: () => literal, + locales: () => locales_exports, + looseObject: () => looseObject, + looseRecord: () => looseRecord, + lowercase: () => _lowercase, + lt: () => _lt, + lte: () => _lte, + mac: () => mac2, + map: () => map, + maxLength: () => _maxLength, + maxSize: () => _maxSize, + memoizer: () => memoizer, + meta: () => meta2, + mime: () => _mime, + minLength: () => _minLength, + minSize: () => _minSize, + multipleOf: () => _multipleOf, + nan: () => nan, + nanoid: () => nanoid2, + nativeEnum: () => nativeEnum, + negative: () => _negative, + never: () => never, + nonnegative: () => _nonnegative, + nonoptional: () => nonoptional, + nonpositive: () => _nonpositive, + normalize: () => _normalize, + null: () => _null3, + nullable: () => nullable, + nullish: () => nullish2, + number: () => number2, + object: () => object, + optional: () => optional, + output: () => output, + overwrite: () => _overwrite, + parse: () => parse2, + parseAsync: () => parseAsync2, + partialRecord: () => partialRecord, + pipe: () => pipe, + positive: () => _positive, + prefault: () => prefault, + preprocess: () => preprocess, + prettifyError: () => prettifyError, + promise: () => promise, + properties: () => _properties, + property: () => _property, + readonly: () => readonly, + record: () => record, + refine: () => refine, + regex: () => _regex, + regexes: () => regexes_exports, + registry: () => registry, + safeDecode: () => safeDecode2, + safeDecodeAsync: () => safeDecodeAsync2, + safeEncode: () => safeEncode2, + safeEncodeAsync: () => safeEncodeAsync2, + safeParse: () => safeParse2, + safeParseAsync: () => safeParseAsync2, + set: () => set, + setErrorMap: () => setErrorMap, + size: () => _size, + slugify: () => _slugify, + startsWith: () => _startsWith, + strictObject: () => strictObject, + string: () => string2, + stringFormat: () => stringFormat, + stringbool: () => stringbool, + success: () => success, + superRefine: () => superRefine, + symbol: () => symbol, + templateLiteral: () => templateLiteral, + toJSONSchema: () => toJSONSchema, + toLowerCase: () => _toLowerCase, + toUpperCase: () => _toUpperCase, + toZod: () => toZod, + transform: () => transform, + treeifyError: () => treeifyError, + trim: () => _trim, + tuple: () => tuple, + uint32: () => uint32, + uint64: () => uint64, + ulid: () => ulid2, + undefined: () => _undefined3, + union: () => union, + unknown: () => unknown, + uppercase: () => _uppercase, + url: () => url, + util: () => util_exports, + uuid: () => uuid2, + uuidv4: () => uuidv4, + uuidv6: () => uuidv6, + uuidv7: () => uuidv7, + validate: () => validate, + validateAsync: () => validateAsync, + void: () => _void2, + withParser: () => withParser, + xid: () => xid2, + xor: () => xor +}); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/index.js +var core_exports2 = {}; +__export(core_exports2, { + $ZodAny: () => $ZodAny, + $ZodArray: () => $ZodArray, + $ZodAsyncError: () => $ZodAsyncError, + $ZodBase64: () => $ZodBase64, + $ZodBase64URL: () => $ZodBase64URL, + $ZodBigInt: () => $ZodBigInt, + $ZodBigIntFormat: () => $ZodBigIntFormat, + $ZodBoolean: () => $ZodBoolean, + $ZodCIDRv4: () => $ZodCIDRv4, + $ZodCIDRv6: () => $ZodCIDRv6, + $ZodCUID: () => $ZodCUID, + $ZodCUID2: () => $ZodCUID2, + $ZodCatch: () => $ZodCatch, + $ZodCheck: () => $ZodCheck, + $ZodCheckBigIntFormat: () => $ZodCheckBigIntFormat, + $ZodCheckEndsWith: () => $ZodCheckEndsWith, + $ZodCheckGreaterThan: () => $ZodCheckGreaterThan, + $ZodCheckIncludes: () => $ZodCheckIncludes, + $ZodCheckLengthEquals: () => $ZodCheckLengthEquals, + $ZodCheckLessThan: () => $ZodCheckLessThan, + $ZodCheckLowerCase: () => $ZodCheckLowerCase, + $ZodCheckMaxLength: () => $ZodCheckMaxLength, + $ZodCheckMaxSize: () => $ZodCheckMaxSize, + $ZodCheckMimeType: () => $ZodCheckMimeType, + $ZodCheckMinLength: () => $ZodCheckMinLength, + $ZodCheckMinSize: () => $ZodCheckMinSize, + $ZodCheckMultipleOf: () => $ZodCheckMultipleOf, + $ZodCheckNumberFormat: () => $ZodCheckNumberFormat, + $ZodCheckOverwrite: () => $ZodCheckOverwrite, + $ZodCheckProperties: () => $ZodCheckProperties, + $ZodCheckProperty: () => $ZodCheckProperty, + $ZodCheckRegex: () => $ZodCheckRegex, + $ZodCheckSizeEquals: () => $ZodCheckSizeEquals, + $ZodCheckStartsWith: () => $ZodCheckStartsWith, + $ZodCheckStringFormat: () => $ZodCheckStringFormat, + $ZodCheckUpperCase: () => $ZodCheckUpperCase, + $ZodCodec: () => $ZodCodec, + $ZodCreditCard: () => $ZodCreditCard, + $ZodCustom: () => $ZodCustom, + $ZodCustomStringFormat: () => $ZodCustomStringFormat, + $ZodCyclicError: () => $ZodCyclicError, + $ZodDate: () => $ZodDate, + $ZodDefault: () => $ZodDefault, + $ZodDiscriminatedUnion: () => $ZodDiscriminatedUnion, + $ZodE164: () => $ZodE164, + $ZodEmail: () => $ZodEmail, + $ZodEmoji: () => $ZodEmoji, + $ZodEncodeError: () => $ZodEncodeError, + $ZodEnum: () => $ZodEnum, + $ZodError: () => $ZodError, + $ZodExactOptional: () => $ZodExactOptional, + $ZodFile: () => $ZodFile, + $ZodFunction: () => $ZodFunction, + $ZodGUID: () => $ZodGUID, + $ZodIBAN: () => $ZodIBAN, + $ZodIPv4: () => $ZodIPv4, + $ZodIPv6: () => $ZodIPv6, + $ZodISODate: () => $ZodISODate, + $ZodISODateTime: () => $ZodISODateTime, + $ZodISODuration: () => $ZodISODuration, + $ZodISOTime: () => $ZodISOTime, + $ZodIntersection: () => $ZodIntersection, + $ZodJWT: () => $ZodJWT, + $ZodKSUID: () => $ZodKSUID, + $ZodLazy: () => $ZodLazy, + $ZodLiteral: () => $ZodLiteral, + $ZodMAC: () => $ZodMAC, + $ZodMap: () => $ZodMap, + $ZodNaN: () => $ZodNaN, + $ZodNanoID: () => $ZodNanoID, + $ZodNever: () => $ZodNever, + $ZodNonOptional: () => $ZodNonOptional, + $ZodNull: () => $ZodNull, + $ZodNullable: () => $ZodNullable, + $ZodNumber: () => $ZodNumber, + $ZodNumberFormat: () => $ZodNumberFormat, + $ZodObject: () => $ZodObject, + $ZodObjectJIT: () => $ZodObjectJIT, + $ZodOptional: () => $ZodOptional, + $ZodPipe: () => $ZodPipe, + $ZodPrefault: () => $ZodPrefault, + $ZodPreprocess: () => $ZodPreprocess, + $ZodPromise: () => $ZodPromise, + $ZodReadonly: () => $ZodReadonly, + $ZodRealError: () => $ZodRealError, + $ZodRecord: () => $ZodRecord, + $ZodRegistry: () => $ZodRegistry, + $ZodSet: () => $ZodSet, + $ZodString: () => $ZodString, + $ZodStringFormat: () => $ZodStringFormat, + $ZodSuccess: () => $ZodSuccess, + $ZodSymbol: () => $ZodSymbol, + $ZodTemplateLiteral: () => $ZodTemplateLiteral, + $ZodTransform: () => $ZodTransform, + $ZodTuple: () => $ZodTuple, + $ZodType: () => $ZodType, + $ZodULID: () => $ZodULID, + $ZodURL: () => $ZodURL, + $ZodUUID: () => $ZodUUID, + $ZodUndefined: () => $ZodUndefined, + $ZodUnion: () => $ZodUnion, + $ZodUnknown: () => $ZodUnknown, + $ZodVoid: () => $ZodVoid, + $ZodXID: () => $ZodXID, + $ZodXor: () => $ZodXor, + $brand: () => $brand, + $constructor: () => $constructor, + $input: () => $input, + $output: () => $output, + Doc: () => Doc, + INVALID: () => INVALID, + JSONSchema: () => json_schema_exports, + JSONSchemaGenerator: () => JSONSchemaGenerator, + NEVER: () => NEVER, + TimePrecision: () => TimePrecision, + URL_BAD_FORMAT: () => URL_BAD_FORMAT, + URL_UNPARSEABLE: () => URL_UNPARSEABLE, + ZodCompileAsyncError: () => ZodCompileAsyncError, + ZodCompileUnsupportedError: () => ZodCompileUnsupportedError, + _any: () => _any, + _array: () => _array, + _base64: () => _base64, + _base64url: () => _base64url, + _bigint: () => _bigint, + _boolean: () => _boolean, + _catch: () => _catch, + _check: () => _check, + _cidrv4: () => _cidrv4, + _cidrv6: () => _cidrv6, + _coercedBigint: () => _coercedBigint, + _coercedBoolean: () => _coercedBoolean, + _coercedDate: () => _coercedDate, + _coercedNumber: () => _coercedNumber, + _coercedString: () => _coercedString, + _creditCard: () => _creditCard, + _cuid: () => _cuid, + _cuid2: () => _cuid2, + _custom: () => _custom, + _date: () => _date, + _decode: () => _decode, + _decodeAsync: () => _decodeAsync, + _default: () => _default, + _discriminatedUnion: () => _discriminatedUnion, + _e164: () => _e164, + _email: () => _email, + _emoji: () => _emoji2, + _encode: () => _encode, + _encodeAsync: () => _encodeAsync, + _endsWith: () => _endsWith, + _enum: () => _enum, + _file: () => _file, + _float32: () => _float32, + _float64: () => _float64, + _gt: () => _gt, + _gte: () => _gte, + _guid: () => _guid, + _iban: () => _iban, + _includes: () => _includes, + _int: () => _int, + _int32: () => _int32, + _int64: () => _int64, + _intersection: () => _intersection, + _ipv4: () => _ipv4, + _ipv6: () => _ipv6, + _isoDate: () => _isoDate, + _isoDateTime: () => _isoDateTime, + _isoDuration: () => _isoDuration, + _isoTime: () => _isoTime, + _jwt: () => _jwt, + _ksuid: () => _ksuid, + _lazy: () => _lazy, + _length: () => _length, + _literal: () => _literal, + _lowercase: () => _lowercase, + _lt: () => _lt, + _lte: () => _lte, + _mac: () => _mac, + _map: () => _map, + _max: () => _lte, + _maxLength: () => _maxLength, + _maxSize: () => _maxSize, + _mime: () => _mime, + _min: () => _gte, + _minLength: () => _minLength, + _minSize: () => _minSize, + _multipleOf: () => _multipleOf, + _nan: () => _nan, + _nanoid: () => _nanoid, + _nativeEnum: () => _nativeEnum, + _negative: () => _negative, + _never: () => _never, + _nonnegative: () => _nonnegative, + _nonoptional: () => _nonoptional, + _nonpositive: () => _nonpositive, + _normalize: () => _normalize, + _null: () => _null2, + _nullable: () => _nullable, + _number: () => _number, + _optional: () => _optional, + _overwrite: () => _overwrite, + _parse: () => _parse, + _parseAsync: () => _parseAsync, + _pipe: () => _pipe, + _positive: () => _positive, + _promise: () => _promise, + _properties: () => _properties, + _property: () => _property, + _readonly: () => _readonly, + _record: () => _record, + _refine: () => _refine, + _regex: () => _regex, + _safeDecode: () => _safeDecode, + _safeDecodeAsync: () => _safeDecodeAsync, + _safeEncode: () => _safeEncode, + _safeEncodeAsync: () => _safeEncodeAsync, + _safeParse: () => _safeParse, + _safeParseAsync: () => _safeParseAsync, + _set: () => _set, + _size: () => _size, + _slugify: () => _slugify, + _startsWith: () => _startsWith, + _string: () => _string, + _stringFormat: () => _stringFormat, + _stringbool: () => _stringbool, + _success: () => _success, + _superRefine: () => _superRefine, + _symbol: () => _symbol, + _templateLiteral: () => _templateLiteral, + _toLowerCase: () => _toLowerCase, + _toUpperCase: () => _toUpperCase, + _transform: () => _transform, + _trim: () => _trim, + _tuple: () => _tuple, + _uint32: () => _uint32, + _uint64: () => _uint64, + _ulid: () => _ulid, + _undefined: () => _undefined2, + _union: () => _union, + _unknown: () => _unknown, + _uppercase: () => _uppercase, + _url: () => _url, + _uuid: () => _uuid, + _uuidv4: () => _uuidv4, + _uuidv6: () => _uuidv6, + _uuidv7: () => _uuidv7, + _void: () => _void, + _xid: () => _xid, + _xor: () => _xor, + base64Charset: () => base64Charset, + base64urlCharset: () => base64urlCharset, + canParseURL: () => canParseURL, + clone: () => clone, + compile: () => compile, + compileFn: () => compileFn, + config: () => config, + createStandardJSONSchemaMethod: () => createStandardJSONSchemaMethod, + createToJSONSchemaMethod: () => createToJSONSchemaMethod, + decode: () => decode, + decodeAsync: () => decodeAsync, + describe: () => describe, + encode: () => encode, + encodeAsync: () => encodeAsync, + extractDefs: () => extractDefs, + finalize: () => finalize, + flattenError: () => flattenError, + formatError: () => formatError, + getDiscriminatedOption: () => getDiscriminatedOption, + globalConfig: () => globalConfig, + globalRegistry: () => globalRegistry, + handleUnrepresentable: () => handleUnrepresentable, + initializeContext: () => initializeContext, + isBackEdge: () => isBackEdge, + isRecursiveSchema: () => isRecursiveSchema, + isValidBase64: () => isValidBase64, + isValidBase64URL: () => isValidBase64URL, + isValidCIDRv6: () => isValidCIDRv6, + isValidCreditCard: () => isValidCreditCard, + isValidIBAN: () => isValidIBAN, + isValidIPv6: () => isValidIPv6, + isValidJWT: () => isValidJWT, + locales: () => locales_exports, + memoizer: () => memoizer, + mergeValues: () => mergeValues, + meta: () => meta, + parse: () => parse, + parseAsync: () => parseAsync, + parseURLObject: () => parseURLObject, + prettifyError: () => prettifyError, + process: () => processSchema, + processSchema: () => processSchema, + regexes: () => regexes_exports, + registry: () => registry, + safeDecode: () => safeDecode, + safeDecodeAsync: () => safeDecodeAsync, + safeEncode: () => safeEncode, + safeEncodeAsync: () => safeEncodeAsync, + safeParse: () => safeParse, + safeParseAsync: () => safeParseAsync, + standardProps: () => standardProps, + stripTabAndNewline: () => stripTabAndNewline, + toDotPath: () => toDotPath, + toJSONSchema: () => toJSONSchema, + toZod: () => toZod, + treeifyError: () => treeifyError, + urlHostnameOk: () => urlHostnameOk, + urlProtocolOk: () => urlProtocolOk, + util: () => util_exports, + validate: () => validate, + validateAsync: () => validateAsync, + validateURL: () => validateURL, + version: () => version, + withParser: () => withParser +}); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/util.js +var util_exports = {}; +__export(util_exports, { + BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES, + CONSTANT_CATCH: () => CONSTANT_CATCH, + Class: () => Class, + NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES, + aborted: () => aborted, + allowsEval: () => allowsEval, + assert: () => assert, + assertEqual: () => assertEqual, + assertIs: () => assertIs, + assertNever: () => assertNever, + assertNotEqual: () => assertNotEqual, + assignProp: () => assignProp, + attachSchema: () => attachSchema, + base64ToUint8Array: () => base64ToUint8Array, + base64urlToUint8Array: () => base64urlToUint8Array, + cached: () => cached, + captureStackTrace: () => captureStackTrace, + cleanEnum: () => cleanEnum, + cleanRegex: () => cleanRegex, + clone: () => clone, + cloneDef: () => cloneDef, + codePointLength: () => codePointLength, + constantCatch: () => constantCatch, + createTransparentProxy: () => createTransparentProxy, + defineLazy: () => defineLazy, + defineLazyInternal: () => defineLazyInternal, + derived: () => derived, + esc: () => esc, + escapeRegex: () => escapeRegex, + explicitlyAborted: () => explicitlyAborted, + extend: () => extend, + finalizeIssue: () => finalizeIssue, + floatSafeRemainder: () => floatSafeRemainder, + getElementAtPath: () => getElementAtPath, + getEnumValues: () => getEnumValues, + getLengthableOrigin: () => getLengthableOrigin, + getParsedType: () => getParsedType, + getSizableOrigin: () => getSizableOrigin, + hexToUint8Array: () => hexToUint8Array, + hide: () => hide, + installLazyProp: () => installLazyProp, + isObject: () => isObject, + isPlainObject: () => isPlainObject, + issue: () => issue, + joinValues: () => joinValues, + jsonStringifyReplacer: () => jsonStringifyReplacer, + members: () => members, + merge: () => merge, + mergeDefs: () => mergeDefs, + normalizeParams: () => normalizeParams, + nullish: () => nullish, + numKeys: () => numKeys, + objectClone: () => objectClone, + omit: () => omit, + optionalKeys: () => optionalKeys, + own: () => own, + parsedType: () => parsedType, + partial: () => partial, + pick: () => pick, + prefixIssues: () => prefixIssues, + primitiveTypes: () => primitiveTypes, + promiseAllObject: () => promiseAllObject, + propertyKeyTypes: () => propertyKeyTypes, + randomString: () => randomString, + rawShape: () => rawShape, + required: () => required, + safeExtend: () => safeExtend, + shallowClone: () => shallowClone, + sizeCaps: () => sizeCaps, + slugify: () => slugify, + stringifyPrimitive: () => stringifyPrimitive, + toZod: () => toZod, + uint8ArrayToBase64: () => uint8ArrayToBase64, + uint8ArrayToBase64url: () => uint8ArrayToBase64url, + uint8ArrayToHex: () => uint8ArrayToHex, + unwrapMessage: () => unwrapMessage +}); +function assertEqual(val) { + return val; +} +__name(assertEqual, "assertEqual"); +function assertNotEqual(val) { + return val; +} +__name(assertNotEqual, "assertNotEqual"); +function toZod() { + return (schema2) => schema2; +} +__name(toZod, "toZod"); +function assertIs(_arg) { +} +__name(assertIs, "assertIs"); +function assertNever(_x) { + throw new Error("Unexpected value in exhaustive check"); +} +__name(assertNever, "assertNever"); +function assert(_) { +} +__name(assert, "assert"); +function getEnumValues(entries) { + const numericValues = Object.values(entries).filter((v) => typeof v === "number"); + const values = Object.entries(entries).filter(([k5, _]) => numericValues.indexOf(+k5) === -1).map(([_, v]) => v); + return values; +} +__name(getEnumValues, "getEnumValues"); +function joinValues(array2, separator = "|") { + return array2.map((val) => stringifyPrimitive(val)).join(separator); +} +__name(joinValues, "joinValues"); +function jsonStringifyReplacer(_, value) { + if (typeof value === "bigint") + return value.toString(); + return value; +} +__name(jsonStringifyReplacer, "jsonStringifyReplacer"); +var Cached = class { + static { + __name(this, "Cached"); + } + constructor(getter) { + this._getter = getter; + this._value = void 0; + } + get value() { + const getter = this._getter; + if (getter !== void 0) { + this._value = getter(); + this._getter = void 0; + } + return this._value; + } +}; +function cached(getter) { + return new Cached(getter); +} +__name(cached, "cached"); +function nullish(input2) { + return input2 === null || input2 === void 0; +} +__name(nullish, "nullish"); +function cleanRegex(source) { + const start = source.startsWith("^") ? 1 : 0; + const end = source.endsWith("$") ? source.length - 1 : source.length; + return source.slice(start, end); +} +__name(cleanRegex, "cleanRegex"); +function floatSafeRemainder(val, step) { + const ratio = val / step; + const roundedRatio = Math.round(ratio); + const tolerance = 4 * Number.EPSILON * Math.max(Math.abs(ratio), 1); + if (Math.abs(ratio - roundedRatio) < tolerance) + return 0; + return ratio - roundedRatio; +} +__name(floatSafeRemainder, "floatSafeRemainder"); +var EVALUATING = /* @__PURE__ */ Symbol("evaluating"); +function defineLazy(object2, key, getter) { + let value = void 0; + Object.defineProperty(object2, key, { + get() { + if (value === EVALUATING) { + return void 0; + } + if (value === void 0) { + value = EVALUATING; + value = getter(); + } + return value; + }, + set(v) { + Object.defineProperty(object2, key, { + value: v + // configurable: true, + }); + }, + configurable: true + }); +} +__name(defineLazy, "defineLazy"); +function objectClone(obj) { + return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj)); +} +__name(objectClone, "objectClone"); +function assignProp(target, prop, value) { + Object.defineProperty(target, prop, { + value, + writable: true, + enumerable: true, + configurable: true + }); +} +__name(assignProp, "assignProp"); +function rawShape(def) { + const desc = Object.getOwnPropertyDescriptor(def, "shape"); + return desc?.get ? desc.get.raw : desc?.value; +} +__name(rawShape, "rawShape"); +function sourceShape(schema2) { + return rawShape(schema2._zod.def) ?? schema2._zod.def.shape; +} +__name(sourceShape, "sourceShape"); +function deferProp(target, key, getter) { + Object.defineProperty(target, key, { + get() { + const value = getter(); + assignProp(this, key, value); + return value; + }, + enumerable: true, + configurable: true + }); +} +__name(deferProp, "deferProp"); +function putProp(target, key, value) { + if (key in target) + assignProp(target, key, value); + else + target[key] = value; +} +__name(putProp, "putProp"); +function mirrorShape(target, source, keys, wrap) { + const raw4 = sourceShape(source); + for (const key of keys) { + const desc = Object.getOwnPropertyDescriptor(raw4, key); + if (!desc.enumerable) + continue; + if (desc.get) { + deferProp(target, key, () => { + const value = source._zod.def.shape[key]; + return wrap ? wrap(value, key) : value; + }); + } else + putProp(target, key, wrap ? wrap(desc.value, key) : desc.value); + } +} +__name(mirrorShape, "mirrorShape"); +function mirrorProps(target, source) { + for (const key of Reflect.ownKeys(source)) { + const desc = Object.getOwnPropertyDescriptor(source, key); + if (!desc.enumerable) + continue; + if (desc.get) + deferProp(target, key, () => source[key]); + else + putProp(target, key, desc.value); + } +} +__name(mirrorProps, "mirrorProps"); +function mergeDefs(...defs) { + const mergedDescriptors = {}; + for (const def of defs) { + const descriptors = Object.getOwnPropertyDescriptors(def); + Object.assign(mergedDescriptors, descriptors); + } + return Object.defineProperties({}, mergedDescriptors); +} +__name(mergeDefs, "mergeDefs"); +function cloneDef(schema2) { + return mergeDefs(schema2._zod.def); +} +__name(cloneDef, "cloneDef"); +function getElementAtPath(obj, path2) { + if (!path2) + return obj; + return path2.reduce((acc, key) => acc?.[key], obj); +} +__name(getElementAtPath, "getElementAtPath"); +function promiseAllObject(promisesObj) { + const keys = Object.keys(promisesObj); + const promises = keys.map((key) => promisesObj[key]); + return Promise.all(promises).then((results) => { + const resolvedObj = {}; + for (let i5 = 0; i5 < keys.length; i5++) { + resolvedObj[keys[i5]] = results[i5]; + } + return resolvedObj; + }); +} +__name(promiseAllObject, "promiseAllObject"); +function randomString(length = 10) { + const chars = "abcdefghijklmnopqrstuvwxyz"; + let str = ""; + for (let i5 = 0; i5 < length; i5++) { + str += chars[Math.floor(Math.random() * chars.length)]; + } + return str; +} +__name(randomString, "randomString"); +function esc(str) { + return JSON.stringify(str); +} +__name(esc, "esc"); +function slugify(input2) { + return input2.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, ""); +} +__name(slugify, "slugify"); +var captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => { +}; +function isObject(data) { + return typeof data === "object" && data !== null && !Array.isArray(data); +} +__name(isObject, "isObject"); +var allowsEval = /* @__PURE__ */ cached(() => { + if (globalConfig.jitless) { + return false; + } + if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) { + return false; + } + try { + const F = Function; + new F(""); + return true; + } catch (_) { + return false; + } +}); +function isPlainObject(o3) { + if (isObject(o3) === false) + return false; + const ctor = o3.constructor; + if (ctor === void 0) + return true; + if (typeof ctor !== "function") + return true; + const prot = ctor.prototype; + if (isObject(prot) === false) + return false; + if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) { + return false; + } + return true; +} +__name(isPlainObject, "isPlainObject"); +function shallowClone(o3) { + if (isPlainObject(o3)) + return { ...o3 }; + if (Array.isArray(o3)) + return [...o3]; + if (o3 instanceof Map) + return new Map(o3); + if (o3 instanceof Set) + return new Set(o3); + return o3; +} +__name(shallowClone, "shallowClone"); +function numKeys(data) { + let keyCount = 0; + for (const key in data) { + if (Object.prototype.hasOwnProperty.call(data, key)) { + keyCount++; + } + } + return keyCount; +} +__name(numKeys, "numKeys"); +var getParsedType = /* @__PURE__ */ __name((data) => { + const t = typeof data; + switch (t) { + case "undefined": + return "undefined"; + case "string": + return "string"; + case "number": + return Number.isNaN(data) ? "nan" : "number"; + case "boolean": + return "boolean"; + case "function": + return "function"; + case "bigint": + return "bigint"; + case "symbol": + return "symbol"; + case "object": + if (Array.isArray(data)) { + return "array"; + } + if (data === null) { + return "null"; + } + if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { + return "promise"; + } + if (typeof Map !== "undefined" && data instanceof Map) { + return "map"; + } + if (typeof Set !== "undefined" && data instanceof Set) { + return "set"; + } + if (typeof Date !== "undefined" && data instanceof Date) { + return "date"; + } + if (typeof File !== "undefined" && data instanceof File) { + return "file"; + } + return "object"; + default: + throw new Error(`Unknown data type: ${t}`); + } +}, "getParsedType"); +var propertyKeyTypes = /* @__PURE__ */ new Set(["string", "number", "symbol"]); +var primitiveTypes = /* @__PURE__ */ new Set([ + "string", + "number", + "bigint", + "boolean", + "symbol", + "undefined" +]); +function escapeRegex(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); +} +__name(escapeRegex, "escapeRegex"); +function clone(inst, def, params) { + const cl = new inst._zod.constr(def ?? inst._zod.def); + if (!def || params?.parent) + cl._zod.parent = inst; + return cl; +} +__name(clone, "clone"); +function normalizeParams(_params) { + const params = _params; + if (!params) + return {}; + if (typeof params === "string") + return { error: /* @__PURE__ */ __name(() => params, "error") }; + if (params?.message !== void 0) { + if (params?.error !== void 0) + throw new Error("Cannot specify both `message` and `error` params"); + params.error = params.message; + } + delete params.message; + if (typeof params.error === "string") + return { ...params, error: /* @__PURE__ */ __name(() => params.error, "error") }; + return params; +} +__name(normalizeParams, "normalizeParams"); +function createTransparentProxy(getter) { + let target; + return new Proxy({}, { + get(_, prop, receiver) { + target ?? (target = getter()); + return Reflect.get(target, prop, receiver); + }, + set(_, prop, value, receiver) { + target ?? (target = getter()); + return Reflect.set(target, prop, value, receiver); + }, + has(_, prop) { + target ?? (target = getter()); + return Reflect.has(target, prop); + }, + deleteProperty(_, prop) { + target ?? (target = getter()); + return Reflect.deleteProperty(target, prop); + }, + ownKeys(_) { + target ?? (target = getter()); + return Reflect.ownKeys(target); + }, + getOwnPropertyDescriptor(_, prop) { + target ?? (target = getter()); + return Reflect.getOwnPropertyDescriptor(target, prop); + }, + defineProperty(_, prop, descriptor) { + target ?? (target = getter()); + return Reflect.defineProperty(target, prop, descriptor); + } + }); +} +__name(createTransparentProxy, "createTransparentProxy"); +function stringifyPrimitive(value) { + if (typeof value === "bigint") + return value.toString() + "n"; + if (typeof value === "string") + return `"${value}"`; + return `${value}`; +} +__name(stringifyPrimitive, "stringifyPrimitive"); +function optionalKeys(shape) { + return Object.keys(shape).filter((k5) => { + return shape[k5]._zod.optin !== void 0 && shape[k5]._zod.optout === "optional"; + }); +} +__name(optionalKeys, "optionalKeys"); +var NUMBER_FORMAT_RANGES = /* @__PURE__ */ (() => ({ + safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], + int32: [-2147483648, 2147483647], + uint32: [0, 4294967295], + float32: [-34028234663852886e22, 34028234663852886e22], + float64: [-Number.MAX_VALUE, Number.MAX_VALUE] +}))(); +var BIGINT_FORMAT_RANGES = { + int64: [/* @__PURE__ */ BigInt("-9223372036854775808"), /* @__PURE__ */ BigInt("9223372036854775807")], + uint64: [/* @__PURE__ */ BigInt(0), /* @__PURE__ */ BigInt("18446744073709551615")] +}; +function pick(schema2, mask) { + const currDef = schema2._zod.def; + const checks = currDef.checks; + const hasChecks = checks && checks.length > 0; + if (hasChecks) { + throw new Error(".pick() cannot be used on object schemas containing refinements"); + } + const newShape = {}; + mirrorShape(newShape, schema2, maskedKeys(schema2, mask)); + return clone(schema2, mergeDefs(currDef, { shape: newShape, checks: [] })); +} +__name(pick, "pick"); +function maskedKeys(schema2, mask) { + const raw4 = sourceShape(schema2); + const keys = []; + for (const key of Reflect.ownKeys(mask)) { + if (!Object.getOwnPropertyDescriptor(raw4, key)?.enumerable) { + throw new Error(`Unrecognized key: "${String(key)}"`); + } + if (mask[key]) + keys.push(key); + } + return keys; +} +__name(maskedKeys, "maskedKeys"); +function omit(schema2, mask) { + const currDef = schema2._zod.def; + const checks = currDef.checks; + const hasChecks = checks && checks.length > 0; + if (hasChecks) { + throw new Error(".omit() cannot be used on object schemas containing refinements"); + } + const omitted = new Set(maskedKeys(schema2, mask)); + const newShape = {}; + mirrorShape(newShape, schema2, Reflect.ownKeys(sourceShape(schema2)).filter((key) => !omitted.has(key))); + return clone(schema2, mergeDefs(currDef, { shape: newShape, checks: [] })); +} +__name(omit, "omit"); +function extend(schema2, shape) { + if (!isPlainObject(shape)) { + throw new Error("Invalid input to extend: expected a plain object"); + } + const checks = schema2._zod.def.checks; + const hasChecks = checks && checks.length > 0; + if (hasChecks) { + const existingShape = sourceShape(schema2); + for (const key of Reflect.ownKeys(shape)) { + if (Object.getOwnPropertyDescriptor(existingShape, key) !== void 0) { + throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead."); + } + } + } + return clone(schema2, mergeDefs(schema2._zod.def, { shape: extended(schema2, shape) })); +} +__name(extend, "extend"); +function extended(schema2, shape) { + const newShape = {}; + mirrorShape(newShape, schema2, Reflect.ownKeys(sourceShape(schema2))); + mirrorProps(newShape, shape); + return newShape; +} +__name(extended, "extended"); +function safeExtend(schema2, shape) { + if (!isPlainObject(shape)) { + throw new Error("Invalid input to safeExtend: expected a plain object"); + } + return clone(schema2, mergeDefs(schema2._zod.def, { shape: extended(schema2, shape) })); +} +__name(safeExtend, "safeExtend"); +function merge(a5, b5) { + if (!b5?._zod?.def) { + throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`."); + } + if (a5._zod.def.checks?.length) { + throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead."); + } + const newShape = {}; + mirrorShape(newShape, a5, Reflect.ownKeys(sourceShape(a5))); + mirrorShape(newShape, b5, Reflect.ownKeys(sourceShape(b5))); + const def = mergeDefs(a5._zod.def, { + shape: newShape, + get catchall() { + return b5._zod.def.catchall; + }, + checks: b5._zod.def.checks ?? [] + }); + return clone(a5, def); +} +__name(merge, "merge"); +function partial(Class2, schema2, mask, name2 = "partial") { + const currDef = schema2._zod.def; + const checks = currDef.checks; + const hasChecks = checks && checks.length > 0; + if (hasChecks) { + throw new Error(`.${name2}() cannot be used on object schemas containing refinements`); + } + const selected = mask ? new Set(maskedKeys(schema2, mask)) : void 0; + const newShape = {}; + mirrorShape(newShape, schema2, Reflect.ownKeys(sourceShape(schema2)), Class2 && ((value, key) => selected && !selected.has(key) ? value : new Class2({ type: "optional", innerType: value }))); + return clone(schema2, mergeDefs(schema2._zod.def, { shape: newShape, checks: [] })); +} +__name(partial, "partial"); +function required(Class2, schema2, mask) { + const selected = mask ? new Set(maskedKeys(schema2, mask)) : void 0; + const newShape = {}; + mirrorShape(newShape, schema2, Reflect.ownKeys(sourceShape(schema2)), (value, key) => ( + // overwrite with non-optional + selected && !selected.has(key) ? value : new Class2({ type: "nonoptional", innerType: value }) + )); + return clone(schema2, mergeDefs(schema2._zod.def, { shape: newShape })); +} +__name(required, "required"); +function aborted(x, startIndex = 0) { + if (x.aborted === true) + return true; + for (let i5 = startIndex; i5 < x.issues.length; i5++) { + if (x.issues[i5]?.continue !== true) { + return true; + } + } + return false; +} +__name(aborted, "aborted"); +function explicitlyAborted(x, startIndex = 0) { + if (x.aborted === true) + return true; + for (let i5 = startIndex; i5 < x.issues.length; i5++) { + if (x.issues[i5]?.continue === false) { + return true; + } + } + return false; +} +__name(explicitlyAborted, "explicitlyAborted"); +function prefixIssues(path2, issues) { + return issues.map((iss) => { + var _a4; + (_a4 = iss).path ?? (_a4.path = []); + iss.path.unshift(path2); + return iss; + }); +} +__name(prefixIssues, "prefixIssues"); +function unwrapMessage(message) { + return typeof message === "string" ? message : message?.message; +} +__name(unwrapMessage, "unwrapMessage"); +function sizeCaps(defChecks) { + const caps = []; + for (const ch of defChecks ?? []) { + const d5 = ch._zod.def; + if (!/_(length|size)$|_equals$/.test(d5.check)) + break; + const max = d5.maximum ?? d5.length ?? d5.size; + if (max >= 0) + caps.push([max, ch]); + } + return caps; +} +__name(sizeCaps, "sizeCaps"); +function attachSchema(issues, start, inst) { + var _a4; + for (let i5 = start; i5 < issues.length; i5++) { + (_a4 = issues[i5]).schema ?? (_a4.schema = inst); + } +} +__name(attachSchema, "attachSchema"); +function finalizeIssue(iss, ctx, config3) { + var _a4; + const traits = iss.inst?._zod?.traits; + if (traits?.has("$ZodType")) { + if (traits.has("$ZodCheck")) + (_a4 = iss).schema ?? (_a4.schema = iss.inst); + else + iss.schema = iss.inst; + } + const schemaError = iss.schema !== iss.inst ? iss.schema?._zod.def?.error : void 0; + const message = iss.message ? iss.message : unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(schemaError?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config3.customError?.(iss)) ?? unwrapMessage(config3.localeError?.(iss)) ?? "Invalid input"; + const full = {}; + for (const k5 of Object.keys(iss)) { + if (k5 === "inst" || k5 === "schema" || k5 === "continue" || k5 === "input" || k5 === "__proto__") + continue; + full[k5] = iss[k5]; + } + full.path ?? (full.path = []); + full.message = message; + if (ctx?.reportInput) { + full.input = iss.input; + } + return full; +} +__name(finalizeIssue, "finalizeIssue"); +function getSizableOrigin(input2) { + if (input2 instanceof Set) + return "set"; + if (input2 instanceof Map) + return "map"; + if (input2 instanceof File) + return "file"; + return "unknown"; +} +__name(getSizableOrigin, "getSizableOrigin"); +var highSurrogate = /[\uD800-\uDBFF]/; +function codePointLength(str) { + const units = str.length; + if (!highSurrogate.test(str)) + return units; + let count = units; + for (let i5 = 0; i5 < units - 1; i5++) { + if ((str.charCodeAt(i5) & 64512) === 55296 && (str.charCodeAt(i5 + 1) & 64512) === 56320) { + count--; + i5++; + } + } + return count; +} +__name(codePointLength, "codePointLength"); +function getLengthableOrigin(input2) { + if (Array.isArray(input2)) + return "array"; + if (typeof input2 === "string") + return "string"; + return "unknown"; +} +__name(getLengthableOrigin, "getLengthableOrigin"); +function parsedType(data) { + const t = typeof data; + switch (t) { + case "number": { + return Number.isNaN(data) ? "nan" : "number"; + } + case "object": { + if (data === null) { + return "null"; + } + if (Array.isArray(data)) { + return "array"; + } + const obj = data; + if (obj && Object.getPrototypeOf(obj) !== Object.prototype && "constructor" in obj && obj.constructor) { + return obj.constructor.name; + } + } + } + return t; +} +__name(parsedType, "parsedType"); +function issue(...args) { + const [iss, input2, inst] = args; + if (typeof iss === "string") { + return { + message: iss, + code: "custom", + input: input2, + inst + }; + } + return { ...iss }; +} +__name(issue, "issue"); +function cleanEnum(obj) { + return Object.entries(obj).filter(([k5, _]) => { + return Number.isNaN(Number.parseInt(k5, 10)); + }).map((el) => el[1]); +} +__name(cleanEnum, "cleanEnum"); +function base64ToUint8Array(base643) { + const binaryString = atob(base643); + const bytes = new Uint8Array(binaryString.length); + for (let i5 = 0; i5 < binaryString.length; i5++) { + bytes[i5] = binaryString.charCodeAt(i5); + } + return bytes; +} +__name(base64ToUint8Array, "base64ToUint8Array"); +function uint8ArrayToBase64(bytes) { + let binaryString = ""; + for (let i5 = 0; i5 < bytes.length; i5++) { + binaryString += String.fromCharCode(bytes[i5]); + } + return btoa(binaryString); +} +__name(uint8ArrayToBase64, "uint8ArrayToBase64"); +function base64urlToUint8Array(base64url3) { + const base643 = base64url3.replace(/-/g, "+").replace(/_/g, "/"); + const padding = "=".repeat((4 - base643.length % 4) % 4); + return base64ToUint8Array(base643 + padding); +} +__name(base64urlToUint8Array, "base64urlToUint8Array"); +function uint8ArrayToBase64url(bytes) { + return uint8ArrayToBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, ""); +} +__name(uint8ArrayToBase64url, "uint8ArrayToBase64url"); +function hexToUint8Array(hex3) { + const cleanHex = hex3.replace(/^0x/, ""); + if (cleanHex.length % 2 !== 0) { + throw new Error("Invalid hex string length"); + } + const bytes = new Uint8Array(cleanHex.length / 2); + for (let i5 = 0; i5 < cleanHex.length; i5 += 2) { + bytes[i5 / 2] = Number.parseInt(cleanHex.slice(i5, i5 + 2), 16); + } + return bytes; +} +__name(hexToUint8Array, "hexToUint8Array"); +function uint8ArrayToHex(bytes) { + return Array.from(bytes).map((b5) => b5.toString(16).padStart(2, "0")).join(""); +} +__name(uint8ArrayToHex, "uint8ArrayToHex"); +var Class = class { + static { + __name(this, "Class"); + } + constructor(..._args) { + } +}; +function members(proto, table) { + for (const key in table) { + const desc = Object.getOwnPropertyDescriptor(table, key); + if (desc.get) + Object.defineProperty(proto, key, { ...desc, enumerable: false }); + else + defineBound(proto, key, desc.value); + } +} +__name(members, "members"); +function own(inst, key, value, enumerable = true) { + Object.defineProperty(inst, key, { configurable: true, writable: true, enumerable, value }); + return value; +} +__name(own, "own"); +function hide(inst, key, value) { + return own(inst, key, value, false); +} +__name(hide, "hide"); +// @__NO_SIDE_EFFECTS__ +function derived(computes, table) { + for (const key in computes) { + const compute = computes[key]; + Object.defineProperty(table, key, { + configurable: true, + enumerable: true, + get() { + return own(this, key, compute(this)); + }, + set(value) { + own(this, key, value); + } + }); + } + return table; +} +__name(derived, "derived"); +function defineBound(proto, key, fn) { + Object.defineProperty(proto, key, { + configurable: true, + get() { + return this == null ? fn : own(this, key, fn.bind(this)); + }, + set(value) { + own(this, key, value); + } + }); +} +__name(defineBound, "defineBound"); +function claim(inst, sentinel) { + const proto = Object.getPrototypeOf(inst); + return sentinel in proto ? void 0 : proto; +} +__name(claim, "claim"); +var installing; +var broke = false; +var breaker = { + configurable: true, + get() { + broke = true; + return void 0; + } +}; +function defineLazyInternal(inst, key, compute) { + const proto = Object.getPrototypeOf(inst._zod); + if (key in proto && installing !== inst._zod) { + installing = void 0; + return; + } + installing = inst._zod; + Object.defineProperty(proto, key, { + configurable: true, + get() { + Object.defineProperty(this, key, breaker); + const outer = broke; + broke = false; + try { + const value = compute(this); + if (broke) + delete this[key]; + else + Object.defineProperty(this, key, { configurable: true, writable: true, value }); + broke = broke || outer; + return value; + } catch (err) { + delete this[key]; + broke = broke || outer; + throw err; + } + }, + set(value) { + Object.defineProperty(this, key, { configurable: true, writable: true, value }); + } + }); +} +__name(defineLazyInternal, "defineLazyInternal"); +function installLazyProp(inst, key, make, enumerable) { + const proto = claim(inst, key); + if (!proto) + return; + Object.defineProperty(proto, key, { + configurable: true, + get() { + const desc = { configurable: true, writable: true, enumerable, value: void 0 }; + Object.defineProperty(this, key, desc); + desc.value = make(this); + Object.defineProperty(this, key, desc); + return desc.value; + }, + set(value) { + Object.defineProperty(this, key, { configurable: true, writable: true, enumerable, value }); + } + }); +} +__name(installLazyProp, "installLazyProp"); +var CONSTANT_CATCH = "~constantCatch"; +function constantCatch(value) { + const fn = /* @__PURE__ */ __name(() => value, "fn"); + fn[CONSTANT_CATCH] = true; + return fn; +} +__name(constantCatch, "constantCatch"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/core.js +var _a; +var NEVER = /* @__PURE__ */ Object.freeze({ + status: "aborted" +}); +var _zodDesc = { value: void 0, enumerable: false }; +var _E = "captureStackTrace" in Error ? Error : null; +function newError(Definition) { + const E = _E; + if (E) { + const saved = E.stackTraceLimit; + if (typeof saved === "number") { + try { + E.stackTraceLimit = 0; + } catch { + _E = null; + return new Definition(); + } + try { + return new Definition(); + } finally { + E.stackTraceLimit = saved; + } + } + } + return new Definition(); +} +__name(newError, "newError"); +// @__NO_SIDE_EFFECTS__ +function $constructor(name2, initializer3, proto, params) { + const zodProto = {}; + function Internals(def) { + this.def = def; + this.constr = _; + this.traits = /* @__PURE__ */ new Set(); + } + __name(Internals, "Internals"); + Internals.prototype = zodProto; + const protoMembers = proto; + const initialized = protoMembers && /* @__PURE__ */ new WeakSet(); + function init2(inst, def) { + if (!inst._zod) { + _zodDesc.value = new Internals(def); + try { + Object.defineProperty(inst, "_zod", _zodDesc); + } finally { + _zodDesc.value = void 0; + } + } else if (inst._zod.traits.has(name2)) { + return; + } + inst._zod.traits.add(name2); + initializer3(inst, def); + if (initialized) { + const own2 = Object.getPrototypeOf(inst); + const ctorProto = inst._zod.constr.prototype; + let up = own2; + while (up && up !== ctorProto) + up = Object.getPrototypeOf(up); + const target = up ?? own2; + if (!initialized.has(target)) { + initialized.add(target); + members(target, protoMembers); + } + } + const proto2 = _.prototype; + for (const k5 in proto2) { + if (!Object.prototype.hasOwnProperty.call(proto2, k5)) + continue; + if (!(k5 in inst)) { + inst[k5] = proto2[k5].bind(inst); + } + } + } + __name(init2, "init"); + const Parent = params?.Parent ?? Object; + class Definition extends Parent { + static { + __name(this, "Definition"); + } + } + Object.defineProperty(Definition, "name", { value: name2 }); + function _(def) { + const inst = params?.Parent ? newError(Definition) : this; + init2(inst, def); + const deferred = inst._zod.deferred; + if (deferred) { + for (const fn of deferred) { + fn(); + } + inst._zod.deferred = void 0; + } + const pp = globalThis.__zod_globalConfig?.postProcessor; + if (pp) + pp(inst); + return inst; + } + __name(_, "_"); + Object.defineProperty(_, "init", { value: init2 }); + Object.defineProperty(_, Symbol.hasInstance, { + value: /* @__PURE__ */ __name((inst) => { + if (params?.Parent && inst instanceof params.Parent) + return true; + return inst?._zod?.traits?.has(name2); + }, "value") + }); + Object.defineProperty(_, "name", { value: name2 }); + return _; +} +__name($constructor, "$constructor"); +var $brand = /* @__PURE__ */ Symbol("zod_brand"); +var $ZodAsyncError = class extends Error { + static { + __name(this, "$ZodAsyncError"); + } + constructor() { + super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); + } +}; +var $ZodEncodeError = class extends Error { + static { + __name(this, "$ZodEncodeError"); + } + constructor(name2) { + super(`Encountered unidirectional transform during encode: ${name2}`); + this.name = "ZodEncodeError"; + } +}; +(_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {}); +var globalConfig = globalThis.__zod_globalConfig; +function config(newConfig) { + if (newConfig) + Object.assign(globalConfig, newConfig); + return globalConfig; +} +__name(config, "config"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/errors.js +function _getMessage() { + const internals = this._zod; + internals.message ?? (internals.message = JSON.stringify(internals.def, jsonStringifyReplacer, 2)); + return internals.message; +} +__name(_getMessage, "_getMessage"); +function _setMessage(value) { + this._zod.message = value; +} +__name(_setMessage, "_setMessage"); +var _messageDesc = { + get: _getMessage, + set: _setMessage, + enumerable: true, + configurable: true +}; +var _issuesDesc = { value: void 0, enumerable: false }; +var _installedToString = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]); +var initializer = /* @__PURE__ */ __name((inst, def) => { + inst.name = "$ZodError"; + _issuesDesc.value = def; + Object.defineProperty(inst, "issues", _issuesDesc); + _issuesDesc.value = void 0; + Object.defineProperty(inst, "message", _messageDesc); + const proto = Object.getPrototypeOf(inst); + if (!_installedToString.has(proto)) { + _installedToString.add(proto); + Object.defineProperty(proto, "toString", { + configurable: true, + enumerable: false, + get() { + const value = /* @__PURE__ */ __name(() => this.message, "value"); + Object.defineProperty(this, "toString", { value, configurable: true, writable: true }); + return value; + }, + set(value) { + Object.defineProperty(this, "toString", { value, configurable: true, writable: true }); + } + }); + } +}, "initializer"); +var $ZodError = $constructor("$ZodError", initializer); +var $ZodRealError = $constructor("$ZodError", initializer, void 0, { + Parent: Error +}); +function node(obj, key, make) { + if (!Object.prototype.hasOwnProperty.call(obj, key)) { + if (key === "__proto__") { + Object.defineProperty(obj, key, { value: make(), writable: true, enumerable: true, configurable: true }); + } else { + obj[key] = make(); + } + } + return obj[key]; +} +__name(node, "node"); +function flattenError(error62, mapper = (issue2) => issue2.message) { + const fieldErrors = {}; + const formErrors = []; + for (const sub of error62.issues) { + if (sub.path.length > 0) { + node(fieldErrors, sub.path[0], () => []).push(mapper(sub)); + } else { + formErrors.push(mapper(sub)); + } + } + return { formErrors, fieldErrors }; +} +__name(flattenError, "flattenError"); +function formatError(error62, mapper = (issue2) => issue2.message) { + const fieldErrors = { _errors: [] }; + const processError = /* @__PURE__ */ __name((error63, path2 = []) => { + for (const issue2 of error63.issues) { + if (issue2.code === "invalid_union" && issue2.errors.length) { + issue2.errors.map((issues) => processError({ issues }, [...path2, ...issue2.path])); + } else if (issue2.code === "invalid_key") { + processError({ issues: issue2.issues }, [...path2, ...issue2.path]); + } else if (issue2.code === "invalid_element") { + processError({ issues: issue2.issues }, [...path2, ...issue2.path]); + } else { + const fullpath = [...path2, ...issue2.path]; + if (fullpath.length === 0) { + fieldErrors._errors.push(mapper(issue2)); + } else { + let curr = fieldErrors; + let i5 = 0; + while (i5 < fullpath.length) { + const el = fullpath[i5]; + const terminal = i5 === fullpath.length - 1; + if (el === "_errors") { + if (terminal) + curr._errors.push(mapper(issue2)); + i5++; + continue; + } + if (!Object.prototype.hasOwnProperty.call(curr, el)) { + Object.defineProperty(curr, el, { + value: { _errors: [] }, + enumerable: true, + writable: true, + configurable: true + }); + } + const node2 = curr[el]; + if (terminal) { + node2._errors.push(mapper(issue2)); + } + curr = node2; + i5++; + } + } + } + } + }, "processError"); + processError(error62); + return fieldErrors; +} +__name(formatError, "formatError"); +function treeifyError(error62, mapper = (issue2) => issue2.message) { + const result = { errors: [] }; + const processError = /* @__PURE__ */ __name((error63, path2 = []) => { + var _a4; + for (const issue2 of error63.issues) { + if (issue2.code === "invalid_union" && issue2.errors.length) { + issue2.errors.map((issues) => processError({ issues }, [...path2, ...issue2.path])); + } else if (issue2.code === "invalid_key") { + processError({ issues: issue2.issues }, [...path2, ...issue2.path]); + } else if (issue2.code === "invalid_element") { + processError({ issues: issue2.issues }, [...path2, ...issue2.path]); + } else { + const fullpath = [...path2, ...issue2.path]; + if (fullpath.length === 0) { + result.errors.push(mapper(issue2)); + continue; + } + let curr = result; + let i5 = 0; + while (i5 < fullpath.length) { + const el = fullpath[i5]; + const terminal = i5 === fullpath.length - 1; + if (typeof el === "string") { + curr.properties ?? (curr.properties = {}); + if (!Object.prototype.hasOwnProperty.call(curr.properties, el)) { + Object.defineProperty(curr.properties, el, { + value: { errors: [] }, + enumerable: true, + writable: true, + configurable: true + }); + } + curr = curr.properties[el]; + } else { + curr.items ?? (curr.items = []); + (_a4 = curr.items)[el] ?? (_a4[el] = { errors: [] }); + curr = curr.items[el]; + } + if (terminal) { + curr.errors.push(mapper(issue2)); + } + i5++; + } + } + } + }, "processError"); + processError(error62); + return result; +} +__name(treeifyError, "treeifyError"); +function toDotPath(_path) { + const segs = []; + const path2 = _path.map((seg) => typeof seg === "object" ? seg.key : seg); + for (const seg of path2) { + if (typeof seg === "number") + segs.push(`[${seg}]`); + else if (typeof seg === "symbol") + segs.push(`[${JSON.stringify(String(seg))}]`); + else if (/[^\w$]/.test(seg)) + segs.push(`[${JSON.stringify(seg)}]`); + else { + if (segs.length) + segs.push("."); + segs.push(seg); + } + } + return segs.join(""); +} +__name(toDotPath, "toDotPath"); +function prettifyError(error62) { + const lines = []; + const issues = [...error62.issues].sort((a5, b5) => (a5.path ?? []).length - (b5.path ?? []).length); + for (const issue2 of issues) { + lines.push(`\u2716 ${issue2.message}`); + if (issue2.path?.length) + lines.push(` \u2192 at ${toDotPath(issue2.path)}`); + } + return lines.join("\n"); +} +__name(prettifyError, "prettifyError"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/parse.js +function finalizeParams(callee, params) { + return { callee: params?.callee ?? callee, Err: params?.Err }; +} +__name(finalizeParams, "finalizeParams"); +var _parse = /* @__PURE__ */ __name((_Err) => { + const fn = /* @__PURE__ */ __name((schema2, value, _ctx, _params) => { + const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; + const result = schema2._zod.run({ value, issues: [] }, ctx); + if (result instanceof Promise) { + throw new $ZodAsyncError(); + } + if (result.issues.length) { + const e5 = new (_params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e5, _params?.callee ?? fn); + throw e5; + } + return result.value; + }, "fn"); + return fn; +}, "_parse"); +var parse = /* @__PURE__ */ _parse($ZodRealError); +var _parseAsync = /* @__PURE__ */ __name((_Err) => { + const fn = /* @__PURE__ */ __name(async (schema2, value, _ctx, params) => { + const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; + let result = schema2._zod.run({ value, issues: [] }, ctx); + if (result instanceof Promise) + result = await result; + if (result.issues.length) { + const e5 = new (params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e5, params?.callee ?? fn); + throw e5; + } + return result.value; + }, "fn"); + return fn; +}, "_parseAsync"); +var parseAsync = /* @__PURE__ */ _parseAsync($ZodRealError); +var _safeParse = /* @__PURE__ */ __name((_Err) => (schema2, value, _ctx) => { + const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; + const result = schema2._zod.run({ value, issues: [] }, ctx); + if (result instanceof Promise) { + throw new $ZodAsyncError(); + } + return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value }; +}, "_safeParse"); +var safeParse = /* @__PURE__ */ _safeParse($ZodRealError); +function failure(Err, issues, ctx) { + let error62; + return { + success: false, + get error() { + if (!error62) { + error62 = new Err(issues.map((iss) => finalizeIssue(iss, ctx, config()))); + issues = void 0; + ctx = void 0; + } + return error62; + }, + set error(e5) { + error62 = e5; + issues = void 0; + ctx = void 0; + } + }; +} +__name(failure, "failure"); +var _safeParseAsync = /* @__PURE__ */ __name((_Err) => async (schema2, value, _ctx) => { + const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; + let result = schema2._zod.run({ value, issues: [] }, ctx); + if (result instanceof Promise) + result = await result; + return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value }; +}, "_safeParseAsync"); +var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError); +var COMPILE_INVALID = /* @__PURE__ */ Symbol.for("zod.compile.invalid"); +var COMPILE_FALLBACK = /* @__PURE__ */ Symbol.for("zod.compile.fallback"); +var validate = /* @__PURE__ */ __name(((schema2, value, _ctx) => { + const validator = schema2._zod.bag.validator; + if (validator !== void 0) { + if (validator(value) !== COMPILE_INVALID) + return true; + if (validator.definite === true && _ctx === void 0) + return false; + } + return validateFallback(schema2, value, _ctx); +}), "validate"); +function validateFallback(schema2, value, _ctx) { + const ctx = _ctx ? { ..._ctx, async: false, abortEarly: true } : { async: false, abortEarly: true }; + const fallbackRun = schema2._zod.bag.fallbackRun; + let result; + if (fallbackRun) { + ctx[COMPILE_FALLBACK] = true; + result = fallbackRun({ value, issues: [] }, ctx); + } else { + result = schema2._zod.run({ value, issues: [] }, ctx); + } + if (result instanceof Promise) { + throw new $ZodAsyncError(); + } + return result.issues.length === 0; +} +__name(validateFallback, "validateFallback"); +var validateAsync = /* @__PURE__ */ __name(async (schema2, value, _ctx) => { + const ctx = _ctx ? { ..._ctx, async: true, abortEarly: true } : { async: true, abortEarly: true }; + let result = schema2._zod.run({ value, issues: [] }, ctx); + if (result instanceof Promise) + result = await result; + return result.issues.length === 0; +}, "validateAsync"); +var _encode = /* @__PURE__ */ __name((_Err) => { + const parse4 = _parse(_Err); + const fn = /* @__PURE__ */ __name((schema2, value, _ctx, _params) => { + const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; + return parse4(schema2, value, ctx, finalizeParams(fn, _params)); + }, "fn"); + return fn; +}, "_encode"); +var encode = /* @__PURE__ */ _encode($ZodRealError); +var _decode = /* @__PURE__ */ __name((_Err) => { + const parse4 = _parse(_Err); + const fn = /* @__PURE__ */ __name((schema2, value, _ctx, _params) => { + return parse4(schema2, value, _ctx, finalizeParams(fn, _params)); + }, "fn"); + return fn; +}, "_decode"); +var decode = /* @__PURE__ */ _decode($ZodRealError); +var _encodeAsync = /* @__PURE__ */ __name((_Err) => { + const parseAsync3 = _parseAsync(_Err); + const fn = /* @__PURE__ */ __name(async (schema2, value, _ctx, _params) => { + const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; + return await parseAsync3(schema2, value, ctx, finalizeParams(fn, _params)); + }, "fn"); + return fn; +}, "_encodeAsync"); +var encodeAsync = /* @__PURE__ */ _encodeAsync($ZodRealError); +var _decodeAsync = /* @__PURE__ */ __name((_Err) => { + const parseAsync3 = _parseAsync(_Err); + const fn = /* @__PURE__ */ __name(async (schema2, value, _ctx, _params) => { + return await parseAsync3(schema2, value, _ctx, finalizeParams(fn, _params)); + }, "fn"); + return fn; +}, "_decodeAsync"); +var decodeAsync = /* @__PURE__ */ _decodeAsync($ZodRealError); +var _safeEncode = /* @__PURE__ */ __name((_Err) => (schema2, value, _ctx) => { + const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; + return _safeParse(_Err)(schema2, value, ctx); +}, "_safeEncode"); +var safeEncode = /* @__PURE__ */ _safeEncode($ZodRealError); +var _safeDecode = /* @__PURE__ */ __name((_Err) => (schema2, value, _ctx) => { + return _safeParse(_Err)(schema2, value, _ctx); +}, "_safeDecode"); +var safeDecode = /* @__PURE__ */ _safeDecode($ZodRealError); +var _safeEncodeAsync = /* @__PURE__ */ __name((_Err) => async (schema2, value, _ctx) => { + const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; + return _safeParseAsync(_Err)(schema2, value, ctx); +}, "_safeEncodeAsync"); +var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync($ZodRealError); +var _safeDecodeAsync = /* @__PURE__ */ __name((_Err) => async (schema2, value, _ctx) => { + return _safeParseAsync(_Err)(schema2, value, _ctx); +}, "_safeDecodeAsync"); +var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/regexes.js +var regexes_exports = {}; +__export(regexes_exports, { + anyString: () => anyString, + base64: () => base64, + base64url: () => base64url, + bigint: () => bigint, + boolean: () => boolean, + browserEmail: () => browserEmail, + cidrv4: () => cidrv4, + cidrv6: () => cidrv6, + creditCard: () => creditCard, + cuid: () => cuid, + cuid2: () => cuid2, + currencyCode: () => currencyCode, + date: () => date, + datetime: () => datetime, + domain: () => domain, + duration: () => duration, + e164: () => e164, + email: () => email, + emoji: () => emoji, + extendedDuration: () => extendedDuration, + guid: () => guid, + hex: () => hex, + hostname: () => hostname, + html5Email: () => html5Email, + httpProtocol: () => httpProtocol, + iban: () => iban, + idnEmail: () => idnEmail, + integer: () => integer, + ipv4: () => ipv4, + ipv6: () => ipv6, + ksuid: () => ksuid, + lowercase: () => lowercase, + mac: () => mac, + md5_base64: () => md5_base64, + md5_base64url: () => md5_base64url, + md5_hex: () => md5_hex, + nanoid: () => nanoid, + nanoidOfLength: () => nanoidOfLength, + null: () => _null, + number: () => number, + rfc5322Email: () => rfc5322Email, + sha1_base64: () => sha1_base64, + sha1_base64url: () => sha1_base64url, + sha1_hex: () => sha1_hex, + sha256_base64: () => sha256_base64, + sha256_base64url: () => sha256_base64url, + sha256_hex: () => sha256_hex, + sha384_base64: () => sha384_base64, + sha384_base64url: () => sha384_base64url, + sha384_hex: () => sha384_hex, + sha512_base64: () => sha512_base64, + sha512_base64url: () => sha512_base64url, + sha512_hex: () => sha512_hex, + string: () => string, + time: () => time, + ulid: () => ulid, + undefined: () => _undefined, + unicodeEmail: () => unicodeEmail, + uppercase: () => uppercase, + uuid: () => uuid, + uuid4: () => uuid4, + uuid6: () => uuid6, + uuid7: () => uuid7, + xid: () => xid +}); +var cuid = /^[cC][0-9a-z]{6,}$/; +var cuid2 = /^[0-9a-z]+$/; +var ulid = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/; +var xid = /^[0-9a-vA-V]{20}$/; +var ksuid = /^[A-Za-z0-9]{27}$/; +var nanoid = /^[a-zA-Z0-9_-]{21}$/; +function nanoidOfLength(length) { + return new RegExp(`^[a-zA-Z0-9_-]{${length}}$`); +} +__name(nanoidOfLength, "nanoidOfLength"); +var duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/; +var extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/; +var guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/; +var uuid = /* @__PURE__ */ __name((version2) => { + if (!version2) + return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/; + return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version2}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`); +}, "uuid"); +var uuid4 = /* @__PURE__ */ uuid(4); +var uuid6 = /* @__PURE__ */ uuid(6); +var uuid7 = /* @__PURE__ */ uuid(7); +var email = /^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/; +var html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; +var rfc5322Email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; +var unicodeEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u; +var idnEmail = unicodeEmail; +var browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; +var _emoji = `^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`; +function emoji() { + return new RegExp(_emoji, "u"); +} +__name(emoji, "emoji"); +var ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; +var ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; +var mac = /* @__PURE__ */ __name((delimiter) => { + const escapedDelim = escapeRegex(delimiter ?? ":"); + return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`); +}, "mac"); +var cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/; +var cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; +var base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/; +var base64url = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/; +var hostname = /^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/; +var domain = /^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/; +var httpProtocol = /^https?$/; +var e164 = /^\+[1-9]\d{6,14}$/; +var creditCard = /^\d(?:[ -]?\d){11,18}$/; +var currencyCode = /^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/; +var iban = /^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/; +var dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`; +function anchor(source) { + return new RegExp(`^${source}$`); +} +__name(anchor, "anchor"); +var date = /* @__PURE__ */ anchor(dateSource); +function timeSource(args) { + const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`; + const regex = typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : args.seconds ? `${hhmm}:[0-5]\\d(?:\\.\\d+)?` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`; + return regex; +} +__name(timeSource, "timeSource"); +function time(args) { + return new RegExp(`^${timeSource(args)}$`); +} +__name(time, "time"); +function datetime(args) { + const opts = ["Z"]; + if (args.offset) + opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`); + const qualified = `${timeSource({ precision: args.precision, seconds: true })}(?:${opts.join("|")})`; + const timeRegex = args.local ? `${qualified}|${timeSource({ precision: args.precision })}` : qualified; + return new RegExp(`^${dateSource}T(?:${timeRegex})$`); +} +__name(datetime, "datetime"); +var anyString = /^[\s\S]{0,}$/; +var string = /* @__PURE__ */ __name((params) => { + const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`; + return new RegExp(`^${regex}$`); +}, "string"); +var bigint = /^-?\d+n?$/; +var integer = /^-?\d+$/; +var number = /^-?\d+(?:\.\d+)?$/; +var boolean = /^(?:true|false)$/i; +var _null = /^null$/i; +var _undefined = /^undefined$/i; +var lowercase = /^[^A-Z]*$/; +var uppercase = /^[^a-z]*$/; +var hex = /^[0-9a-fA-F]*$/; +function fixedBase64(bodyLength, padding) { + return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`); +} +__name(fixedBase64, "fixedBase64"); +function fixedBase64url(length) { + return new RegExp(`^[A-Za-z0-9_-]{${length}}$`); +} +__name(fixedBase64url, "fixedBase64url"); +var md5_hex = /^[0-9a-fA-F]{32}$/; +var md5_base64 = /* @__PURE__ */ fixedBase64(22, "=="); +var md5_base64url = /* @__PURE__ */ fixedBase64url(22); +var sha1_hex = /^[0-9a-fA-F]{40}$/; +var sha1_base64 = /* @__PURE__ */ fixedBase64(27, "="); +var sha1_base64url = /* @__PURE__ */ fixedBase64url(27); +var sha256_hex = /^[0-9a-fA-F]{64}$/; +var sha256_base64 = /* @__PURE__ */ fixedBase64(43, "="); +var sha256_base64url = /* @__PURE__ */ fixedBase64url(43); +var sha384_hex = /^[0-9a-fA-F]{96}$/; +var sha384_base64 = /* @__PURE__ */ fixedBase64(64, ""); +var sha384_base64url = /* @__PURE__ */ fixedBase64url(64); +var sha512_hex = /^[0-9a-fA-F]{128}$/; +var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "=="); +var sha512_base64url = /* @__PURE__ */ fixedBase64url(86); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/checks.js +var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => { + var _a4; + inst._zod ?? (inst._zod = {}); + inst._zod.def = def; + (_a4 = inst._zod).onattach ?? (_a4.onattach = []); +}); +var _whenHasSize = /* @__PURE__ */ __name((payload) => { + const val = payload.value; + return !nullish(val) && val.size !== void 0; +}, "_whenHasSize"); +var _whenHasLength = /* @__PURE__ */ __name((payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; +}, "_whenHasLength"); +var numericOriginMap = { + number: "number", + bigint: "bigint", + object: "date" +}; +var $ZodCheckLessThan = /* @__PURE__ */ $constructor("$ZodCheckLessThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value <= def.value : payload.value < def.value) { + return; + } + payload.issues.push({ + origin: numericOriginMap[typeof payload.value] ?? origin, + code: "too_big", + maximum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value >= def.value : payload.value > def.value) { + return; + } + payload.issues.push({ + origin: numericOriginMap[typeof payload.value] ?? origin, + code: "too_small", + minimum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.check = (payload) => { + if (typeof payload.value !== typeof def.value) + throw new Error("Cannot mix number and bigint in multiple_of check."); + const isMultiple = typeof payload.value === "bigint" ? ( + // `value % 0n` throws, and nothing is a multiple of zero — the number branch already fails this way via NaN + def.value !== BigInt(0) && payload.value % def.value === BigInt(0) + ) : floatSafeRemainder(payload.value, def.value) === 0; + if (isMultiple) + return; + payload.issues.push({ + origin: typeof payload.value, + code: "not_multiple_of", + divisor: def.value, + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckNumberFormat = /* @__PURE__ */ $constructor("$ZodCheckNumberFormat", (inst, def) => { + $ZodCheck.init(inst, def); + def.format = def.format || "float64"; + const isInt = def.format?.includes("int"); + const origin = isInt ? "int" : "number"; + const [minimum, maximum] = NUMBER_FORMAT_RANGES[def.format]; + inst._zod.check = (payload) => { + const input2 = payload.value; + if (isInt) { + if (!Number.isInteger(input2)) { + payload.issues.push({ + expected: origin, + format: def.format, + code: "invalid_type", + continue: false, + input: input2, + inst + }); + return; + } + if (!Number.isSafeInteger(input2)) { + if (input2 > 0) { + payload.issues.push({ + input: input2, + code: "too_big", + maximum: Number.MAX_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + } else { + payload.issues.push({ + input: input2, + code: "too_small", + minimum: Number.MIN_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + } + return; + } + } + if (input2 < minimum) { + payload.issues.push({ + origin: "number", + input: input2, + code: "too_small", + minimum, + inclusive: true, + inst, + continue: !def.abort + }); + } + if (input2 > maximum) { + payload.issues.push({ + origin: "number", + input: input2, + code: "too_big", + maximum, + inclusive: true, + inst, + continue: !def.abort + }); + } + }; +}); +var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat", (inst, def) => { + $ZodCheck.init(inst, def); + const [minimum, maximum] = BIGINT_FORMAT_RANGES[def.format]; + inst._zod.check = (payload) => { + const input2 = payload.value; + if (input2 < minimum) { + payload.issues.push({ + origin: "bigint", + input: input2, + code: "too_small", + minimum, + inclusive: true, + inst, + continue: !def.abort + }); + } + if (input2 > maximum) { + payload.issues.push({ + origin: "bigint", + input: input2, + code: "too_big", + maximum, + inclusive: true, + inst, + continue: !def.abort + }); + } + }; +}); +var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => { + var _a4; + $ZodCheck.init(inst, def); + (_a4 = inst._zod.def).when ?? (_a4.when = _whenHasSize); + inst._zod.check = (payload) => { + const input2 = payload.value; + const size = input2.size; + if (size <= def.maximum) + return; + payload.issues.push({ + origin: getSizableOrigin(input2), + code: "too_big", + maximum: def.maximum, + inclusive: true, + input: input2, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => { + var _a4; + $ZodCheck.init(inst, def); + (_a4 = inst._zod.def).when ?? (_a4.when = _whenHasSize); + inst._zod.check = (payload) => { + const input2 = payload.value; + const size = input2.size; + if (size >= def.minimum) + return; + payload.issues.push({ + origin: getSizableOrigin(input2), + code: "too_small", + minimum: def.minimum, + inclusive: true, + input: input2, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => { + var _a4; + $ZodCheck.init(inst, def); + (_a4 = inst._zod.def).when ?? (_a4.when = _whenHasSize); + inst._zod.check = (payload) => { + const input2 = payload.value; + const size = input2.size; + if (size === def.size) + return; + const tooBig = size > def.size; + payload.issues.push({ + origin: getSizableOrigin(input2), + ...tooBig ? { code: "too_big", maximum: def.size } : { code: "too_small", minimum: def.size }, + inclusive: true, + exact: true, + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => { + var _a4; + $ZodCheck.init(inst, def); + (_a4 = inst._zod.def).when ?? (_a4.when = _whenHasLength); + inst._zod.check = (payload) => { + const input2 = payload.value; + const units = input2.length; + const length = typeof input2 === "string" && units > def.maximum ? codePointLength(input2) : units; + if (length <= def.maximum) + return; + const origin = getLengthableOrigin(input2); + payload.issues.push({ + origin, + code: "too_big", + maximum: def.maximum, + inclusive: true, + input: input2, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => { + var _a4; + $ZodCheck.init(inst, def); + (_a4 = inst._zod.def).when ?? (_a4.when = _whenHasLength); + inst._zod.check = (payload) => { + const input2 = payload.value; + const units = input2.length; + const length = typeof input2 === "string" && units >= def.minimum && units < def.minimum * 2 ? codePointLength(input2) : units; + if (length >= def.minimum) + return; + const origin = getLengthableOrigin(input2); + payload.issues.push({ + origin, + code: "too_small", + minimum: def.minimum, + inclusive: true, + input: input2, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => { + var _a4; + $ZodCheck.init(inst, def); + (_a4 = inst._zod.def).when ?? (_a4.when = _whenHasLength); + inst._zod.check = (payload) => { + const input2 = payload.value; + const units = input2.length; + const length = typeof input2 === "string" && units >= def.length && units <= def.length * 2 ? codePointLength(input2) : units; + if (length === def.length) + return; + const origin = getLengthableOrigin(input2); + const tooBig = length > def.length; + payload.issues.push({ + origin, + ...tooBig ? { code: "too_big", maximum: def.length } : { code: "too_small", minimum: def.length }, + inclusive: true, + exact: true, + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => { + var _a4, _b; + $ZodCheck.init(inst, def); + if (def.pattern) + (_a4 = inst._zod).check ?? (_a4.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) + return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: def.format, + input: payload.value, + ...def.pattern ? { pattern: def.pattern.toString() } : {}, + inst, + continue: !def.abort + }); + }); + else + (_b = inst._zod).check ?? (_b.check = () => { + }); +}); +var $ZodCheckRegex = /* @__PURE__ */ $constructor("$ZodCheckRegex", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + inst._zod.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) + return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "regex", + input: payload.value, + pattern: def.pattern.toString(), + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckLowerCase = /* @__PURE__ */ $constructor("$ZodCheckLowerCase", (inst, def) => { + def.pattern ?? (def.pattern = lowercase); + $ZodCheckStringFormat.init(inst, def); +}); +var $ZodCheckUpperCase = /* @__PURE__ */ $constructor("$ZodCheckUpperCase", (inst, def) => { + def.pattern ?? (def.pattern = uppercase); + $ZodCheckStringFormat.init(inst, def); +}); +var $ZodCheckIncludes = /* @__PURE__ */ $constructor("$ZodCheckIncludes", (inst, def) => { + $ZodCheck.init(inst, def); + const escapedRegex = escapeRegex(def.includes); + const pattern = new RegExp(typeof def.position === "number" ? `^.{${def.position},}${escapedRegex}` : escapedRegex); + def.pattern = pattern; + inst._zod.check = (payload) => { + if (payload.value.includes(def.includes, def.position)) + return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "includes", + includes: def.includes, + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckStartsWith = /* @__PURE__ */ $constructor("$ZodCheckStartsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`^${escapeRegex(def.prefix)}.*`); + def.pattern ?? (def.pattern = pattern); + inst._zod.check = (payload) => { + if (payload.value.startsWith(def.prefix)) + return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "starts_with", + prefix: def.prefix, + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckEndsWith = /* @__PURE__ */ $constructor("$ZodCheckEndsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`.*${escapeRegex(def.suffix)}$`); + def.pattern ?? (def.pattern = pattern); + inst._zod.check = (payload) => { + if (payload.value.endsWith(def.suffix)) + return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "ends_with", + suffix: def.suffix, + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +function handleCheckPropertyResult(result, payload, property) { + if (result.issues.length) { + payload.issues.push(...prefixIssues(property, result.issues)); + } +} +__name(handleCheckPropertyResult, "handleCheckPropertyResult"); +var $ZodCheckProperty = /* @__PURE__ */ $constructor("$ZodCheckProperty", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.check = (payload) => { + const result = def.schema._zod.run({ + value: payload.value[def.property], + issues: [] + }, {}); + if (result instanceof Promise) { + return result.then((result2) => handleCheckPropertyResult(result2, payload, def.property)); + } + handleCheckPropertyResult(result, payload, def.property); + return; + }; +}); +var $ZodCheckProperties = /* @__PURE__ */ $constructor("$ZodCheckProperties", (inst, def) => { + $ZodCheck.init(inst, def); + hide(inst, Symbol.iterator, function* () { + yield inst; + }); + let entries; + inst._zod.check = (payload) => { + if (payload.value == null) { + payload.issues.push({ expected: "object", code: "invalid_type", input: payload.value, inst }); + return void 0; + } + entries ?? (entries = Reflect.ownKeys(def.shape).map((key) => [key, def.shape[key]])); + const input2 = payload.value; + let proms; + for (const [key, schema2] of entries) { + const result = schema2._zod.run({ value: input2[key], issues: [] }, {}); + if (result instanceof Promise) { + proms ?? (proms = []); + proms.push(result.then((result2) => handleCheckPropertyResult(result2, payload, key))); + } else { + handleCheckPropertyResult(result, payload, key); + } + } + if (proms) + return Promise.all(proms).then(() => void 0); + return void 0; + }; +}); +var $ZodCheckMimeType = /* @__PURE__ */ $constructor("$ZodCheckMimeType", (inst, def) => { + $ZodCheck.init(inst, def); + const mimeSet = new Set(def.mime); + inst._zod.check = (payload) => { + if (mimeSet.has(payload.value.type)) + return; + payload.issues.push({ + code: "invalid_value", + values: def.mime, + input: payload.value.type, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.check = (payload) => { + payload.value = def.tx(payload.value); + }; +}); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/doc.js +var Doc = class { + static { + __name(this, "Doc"); + } + constructor(args = [], closed = {}) { + this.content = []; + this.indent = 0; + this.args = args; + this.closed = closed; + } + // the compiler catches a child's throw and keeps writing into this doc, so the indent has to unwind with it + indented(fn) { + this.indent += 1; + try { + fn(this); + } finally { + this.indent -= 1; + } + } + write(arg) { + if (typeof arg === "function") { + arg(this, { execution: "sync" }); + arg(this, { execution: "async" }); + return; + } + const content = arg; + const lines = content.split("\n").filter((x) => x); + const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); + const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); + for (const line of dedented) { + this.content.push(line); + } + } + compile() { + const F = Function; + const content = this?.content ?? [``]; + const factory = new F(...Object.keys(this.closed), `return function (${this.args.join(", ")}) { +${content.join("\n")} +};`); + return factory(...Object.values(this.closed)); + } +}; + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/versions.js +var version = { + major: 4, + minor: 6, + patch: 7 +}; + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/schemas.js +var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => { + var _a4; + inst ?? (inst = {}); + inst._zod.def = def; + inst._zod.bag = inst._zod.bag || {}; + inst._zod.version = version; + const defChecks = inst._zod.def.checks; + const checks = inst._zod.traits.has("$ZodCheck") ? [inst, ...defChecks ?? []] : defChecks?.length ? [...defChecks] : []; + for (const ch of checks) { + for (const fn of ch._zod.onattach) { + fn(inst); + } + } + if (checks.length === 0) { + (_a4 = inst._zod).deferred ?? (_a4.deferred = []); + inst._zod.deferred?.push(() => { + inst._zod.run = inst._zod.parse; + }); + } else { + const runChecks = /* @__PURE__ */ __name((payload, checks2, ctx) => { + if (payload.memo) + return payload; + let isAborted = aborted(payload); + let asyncResult; + for (const ch of checks2) { + if (ch._zod.def.when) { + if (explicitlyAborted(payload)) + continue; + const shouldRun = ch._zod.def.when(payload); + if (!shouldRun) + continue; + } else if (isAborted) { + continue; + } + const currLen = payload.issues.length; + const _ = ch._zod.check(payload); + if (_ instanceof Promise && ctx?.async === false) { + throw new $ZodAsyncError(); + } + if (asyncResult || _ instanceof Promise) { + asyncResult = (asyncResult ?? Promise.resolve()).then(async () => { + await _; + const nextLen = payload.issues.length; + if (nextLen === currLen) + return; + attachSchema(payload.issues, currLen, inst); + if (!isAborted) + isAborted = aborted(payload, currLen); + }); + } else { + const nextLen = payload.issues.length; + if (nextLen === currLen) + continue; + attachSchema(payload.issues, currLen, inst); + if (!isAborted) + isAborted = aborted(payload, currLen); + } + } + if (asyncResult) { + return asyncResult.then(() => { + return payload; + }); + } + return payload; + }, "runChecks"); + const handleCanaryResult = /* @__PURE__ */ __name((canary, payload, ctx) => { + if (aborted(canary)) { + canary.aborted = true; + return canary; + } + const checkResult = runChecks(payload, checks, ctx); + if (checkResult instanceof Promise) { + if (ctx.async === false) + throw new $ZodAsyncError(); + return checkResult.then((checkResult2) => inst._zod.parse(checkResult2, ctx)); + } + return inst._zod.parse(checkResult, ctx); + }, "handleCanaryResult"); + inst._zod.run = (payload, ctx) => { + if (ctx.skipChecks) { + return inst._zod.parse(payload, ctx); + } + if (ctx.direction === "backward") { + const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true }); + if (canary instanceof Promise) { + return canary.then((canary2) => { + return handleCanaryResult(canary2, payload, ctx); + }); + } + return handleCanaryResult(canary, payload, ctx); + } + const result = inst._zod.parse(payload, ctx); + if (result instanceof Promise) { + if (ctx.async === false) + throw new $ZodAsyncError(); + return result.then((result2) => runChecks(result2, checks, ctx)); + } + return runChecks(result, checks, ctx); + }; + } +}, { + // Wrappers extend this by installing a richer factory over it; reading it eagerly would defeat the laziness. + get "~standard"() { + return hide(this, "~standard", standardProps(this)); + }, + set "~standard"(value) { + own(this, "~standard", value); + } +}); +var toStandardResult = /* @__PURE__ */ __name((r5, ctx) => r5.issues.length ? { issues: r5.issues.map((iss) => finalizeIssue(iss, ctx, config())) } : { value: r5.value }, "toStandardResult"); +async function validateAsync2(inst, value) { + const ctx = { async: true }; + return toStandardResult(await inst._zod.run({ value, issues: [] }, ctx), ctx); +} +__name(validateAsync2, "validateAsync"); +function standardProps(inst) { + return { + validate: /* @__PURE__ */ __name((value) => { + const ctx = { async: false }; + try { + const r5 = inst._zod.run({ value, issues: [] }, ctx); + if (!(r5 instanceof Promise)) + return toStandardResult(r5, ctx); + } catch (_) { + } + return validateAsync2(inst, value); + }, "validate"), + vendor: "zod", + version: 1 + }; +} +__name(standardProps, "standardProps"); +var $ZodString = /* @__PURE__ */ $constructor("$ZodString", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = def.pattern ?? anyString; + inst._zod.parse = (payload, _) => { + if (def.coerce) + try { + payload.value = String(payload.value); + } catch (_2) { + } + if (typeof payload.value === "string") + return payload; + payload.issues.push({ + expected: "string", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; +}); +var $ZodStringFormat = /* @__PURE__ */ $constructor("$ZodStringFormat", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + $ZodString.init(inst, def); +}); +var $ZodGUID = /* @__PURE__ */ $constructor("$ZodGUID", (inst, def) => { + def.pattern ?? (def.pattern = guid); + $ZodStringFormat.init(inst, def); +}); +var $ZodUUID = /* @__PURE__ */ $constructor("$ZodUUID", (inst, def) => { + if (def.version) { + const versionMap = { + v1: 1, + v2: 2, + v3: 3, + v4: 4, + v5: 5, + v6: 6, + v7: 7, + v8: 8 + }; + const v = versionMap[def.version]; + if (v === void 0) + throw new Error(`Invalid UUID version: "${def.version}"`); + def.pattern ?? (def.pattern = uuid(v)); + } else + def.pattern ?? (def.pattern = uuid()); + $ZodStringFormat.init(inst, def); +}); +var $ZodEmail = /* @__PURE__ */ $constructor("$ZodEmail", (inst, def) => { + def.pattern ?? (def.pattern = email); + $ZodStringFormat.init(inst, def); +}); +var URL_BAD_FORMAT = 1; +var URL_UNPARSEABLE = 2; +function canParseURL(input2) { + try { + if (typeof URL !== "undefined" && typeof URL.canParse === "function") + return URL.canParse(input2); + new URL(input2); + return true; + } catch { + return false; + } +} +__name(canParseURL, "canParseURL"); +function validateURL(trimmed, def) { + if (!("normalize" in def) && !("hostname" in def) && !("protocol" in def)) { + return canParseURL(trimmed) || URL_UNPARSEABLE; + } + return parseURLObject(trimmed, def); +} +__name(validateURL, "validateURL"); +function parseURLObject(trimmed, def) { + if (!def.normalize && def.protocol?.source === httpProtocol.source && !/^https?:\/\//i.test(trimmed)) { + return URL_BAD_FORMAT; + } + try { + if (typeof URL !== "undefined") { + const URLStatic = URL; + if (typeof URLStatic.parse === "function") + return URLStatic.parse(trimmed) ?? URL_UNPARSEABLE; + } + return new URL(trimmed); + } catch { + return URL_UNPARSEABLE; + } +} +__name(parseURLObject, "parseURLObject"); +var asciiTabOrNewline = /[\t\n\r]/g; +function stripTabAndNewline(value) { + return value.replace(asciiTabOrNewline, ""); +} +__name(stripTabAndNewline, "stripTabAndNewline"); +function urlHostnameOk(url2, hostname3) { + hostname3.lastIndex = 0; + return hostname3.test(url2.hostname); +} +__name(urlHostnameOk, "urlHostnameOk"); +function urlProtocolOk(url2, protocol) { + protocol.lastIndex = 0; + return protocol.test(url2.protocol.endsWith(":") ? url2.protocol.slice(0, -1) : url2.protocol); +} +__name(urlProtocolOk, "urlProtocolOk"); +var $ZodURL = /* @__PURE__ */ $constructor("$ZodURL", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + try { + const trimmed = payload.value.trim(); + const url2 = validateURL(trimmed, def); + if (url2 === URL_BAD_FORMAT) { + payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid URL format", + input: payload.value, + inst, + continue: !def.abort + }); + return; + } + if (url2 === URL_UNPARSEABLE) { + payload.issues.push({ + code: "invalid_format", + format: "url", + input: payload.value, + inst, + continue: !def.abort + }); + return; + } + if (url2 === true) { + payload.value = stripTabAndNewline(trimmed); + return; + } + if (def.hostname && !urlHostnameOk(url2, def.hostname)) { + payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid hostname", + pattern: def.hostname.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + if (def.protocol && !urlProtocolOk(url2, def.protocol)) { + payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid protocol", + pattern: def.protocol.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + payload.value = def.normalize ? url2.href : stripTabAndNewline(trimmed); + return; + } catch (_) { + payload.issues.push({ + code: "invalid_format", + format: "url", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; +}); +var $ZodEmoji = /* @__PURE__ */ $constructor("$ZodEmoji", (inst, def) => { + def.pattern ?? (def.pattern = emoji()); + $ZodStringFormat.init(inst, def); +}); +var $ZodNanoID = /* @__PURE__ */ $constructor("$ZodNanoID", (inst, def) => { + if (def.length !== void 0 && (!Number.isInteger(def.length) || def.length < 1)) + throw new Error(`Invalid nanoid length: ${def.length}`); + def.pattern ?? (def.pattern = def.length === void 0 ? nanoid : nanoidOfLength(def.length)); + $ZodStringFormat.init(inst, def); +}); +var $ZodCUID = /* @__PURE__ */ $constructor("$ZodCUID", (inst, def) => { + def.pattern ?? (def.pattern = cuid); + $ZodStringFormat.init(inst, def); +}); +var $ZodCUID2 = /* @__PURE__ */ $constructor("$ZodCUID2", (inst, def) => { + def.pattern ?? (def.pattern = cuid2); + $ZodStringFormat.init(inst, def); +}); +var $ZodULID = /* @__PURE__ */ $constructor("$ZodULID", (inst, def) => { + def.pattern ?? (def.pattern = ulid); + $ZodStringFormat.init(inst, def); +}); +var $ZodXID = /* @__PURE__ */ $constructor("$ZodXID", (inst, def) => { + def.pattern ?? (def.pattern = xid); + $ZodStringFormat.init(inst, def); +}); +var $ZodKSUID = /* @__PURE__ */ $constructor("$ZodKSUID", (inst, def) => { + def.pattern ?? (def.pattern = ksuid); + $ZodStringFormat.init(inst, def); +}); +var $ZodISODateTime = /* @__PURE__ */ $constructor("$ZodISODateTime", (inst, def) => { + def.pattern ?? (def.pattern = datetime(def)); + $ZodStringFormat.init(inst, def); +}); +var $ZodISODate = /* @__PURE__ */ $constructor("$ZodISODate", (inst, def) => { + def.pattern ?? (def.pattern = date); + $ZodStringFormat.init(inst, def); +}); +var $ZodISOTime = /* @__PURE__ */ $constructor("$ZodISOTime", (inst, def) => { + def.pattern ?? (def.pattern = time(def)); + $ZodStringFormat.init(inst, def); +}); +var $ZodISODuration = /* @__PURE__ */ $constructor("$ZodISODuration", (inst, def) => { + def.pattern ?? (def.pattern = duration); + $ZodStringFormat.init(inst, def); +}); +var $ZodIPv4 = /* @__PURE__ */ $constructor("$ZodIPv4", (inst, def) => { + def.pattern ?? (def.pattern = ipv4); + $ZodStringFormat.init(inst, def); +}); +var ipv6Alphabet = /^[0-9a-fA-F:.]+$/; +function isValidIPv6(value) { + if (!ipv6Alphabet.test(value)) + return false; + return canParseURL(`http://[${value}]`); +} +__name(isValidIPv6, "isValidIPv6"); +var $ZodIPv6 = /* @__PURE__ */ $constructor("$ZodIPv6", (inst, def) => { + def.pattern ?? (def.pattern = ipv6); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (!isValidIPv6(payload.value)) { + payload.issues.push({ + code: "invalid_format", + format: "ipv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; +}); +var $ZodMAC = /* @__PURE__ */ $constructor("$ZodMAC", (inst, def) => { + def.pattern ?? (def.pattern = mac(def.delimiter)); + $ZodStringFormat.init(inst, def); +}); +var $ZodCIDRv4 = /* @__PURE__ */ $constructor("$ZodCIDRv4", (inst, def) => { + def.pattern ?? (def.pattern = cidrv4); + $ZodStringFormat.init(inst, def); +}); +function isValidCIDRv6(value) { + const parts = value.split("/"); + if (parts.length !== 2) + return false; + const [address, prefix] = parts; + if (!prefix) + return false; + const prefixNum = Number(prefix); + if (`${prefixNum}` !== prefix) + return false; + if (prefixNum < 0 || prefixNum > 128) + return false; + return isValidIPv6(address); +} +__name(isValidCIDRv6, "isValidCIDRv6"); +var $ZodCIDRv6 = /* @__PURE__ */ $constructor("$ZodCIDRv6", (inst, def) => { + def.pattern ?? (def.pattern = cidrv6); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (!isValidCIDRv6(payload.value)) { + payload.issues.push({ + code: "invalid_format", + format: "cidrv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; +}); +function isValidBase64(data) { + if (data === "") + return true; + if (/\s/.test(data)) + return false; + if (data.length % 4 !== 0) + return false; + try { + atob(data); + return true; + } catch { + return false; + } +} +__name(isValidBase64, "isValidBase64"); +var base64Charset = /^[0-9a-zA-Z+/]*={0,2}$/; +var $ZodBase64 = /* @__PURE__ */ $constructor("$ZodBase64", (inst, def) => { + def.pattern ?? (def.pattern = base64Charset); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidBase64(payload.value)) + return; + payload.issues.push({ + code: "invalid_format", + format: "base64", + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var base64urlCharset = /^[A-Za-z0-9_-]*$/; +function isValidBase64URL(data) { + if (!base64urlCharset.test(data)) + return false; + const base643 = data.replace(/[-_]/g, (c5) => c5 === "-" ? "+" : "/"); + const padded = base643.padEnd(Math.ceil(base643.length / 4) * 4, "="); + return isValidBase64(padded); +} +__name(isValidBase64URL, "isValidBase64URL"); +var $ZodBase64URL = /* @__PURE__ */ $constructor("$ZodBase64URL", (inst, def) => { + def.pattern ?? (def.pattern = base64urlCharset); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidBase64URL(payload.value)) + return; + payload.issues.push({ + code: "invalid_format", + format: "base64url", + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodE164 = /* @__PURE__ */ $constructor("$ZodE164", (inst, def) => { + def.pattern ?? (def.pattern = e164); + $ZodStringFormat.init(inst, def); +}); +var CC_SANITIZE = /[- ]/g; +function isLuhnAlgo(digits) { + let length = digits.length; + let bit = 1; + let sum = 0; + while (length) { + const value = digits.charCodeAt(--length) - 48; + bit ^= 1; + sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value] : value; + } + return sum % 10 === 0; +} +__name(isLuhnAlgo, "isLuhnAlgo"); +function isValidCreditCard(input2) { + if (!creditCard.test(input2)) + return false; + return isLuhnAlgo(input2.replace(CC_SANITIZE, "")); +} +__name(isValidCreditCard, "isValidCreditCard"); +var $ZodCreditCard = /* @__PURE__ */ $constructor("$ZodCreditCard", (inst, def) => { + def.pattern ?? (def.pattern = creditCard); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidCreditCard(payload.value)) + return; + payload.issues.push({ + code: "invalid_format", + format: "credit_card", + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +function isIso7064Mod97(iban3) { + let remainder = 0; + const len = iban3.length; + for (let i5 = 4; i5 < len; i5++) { + const code = iban3.charCodeAt(i5); + remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97; + } + for (let i5 = 0; i5 < 4; i5++) { + const code = iban3.charCodeAt(i5); + remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97; + } + return remainder === 1; +} +__name(isIso7064Mod97, "isIso7064Mod97"); +function isValidIBAN(input2) { + if (!iban.test(input2)) + return false; + return isIso7064Mod97(input2); +} +__name(isValidIBAN, "isValidIBAN"); +var $ZodIBAN = /* @__PURE__ */ $constructor("$ZodIBAN", (inst, def) => { + def.pattern ?? (def.pattern = iban); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidIBAN(payload.value)) + return; + payload.issues.push({ + code: "invalid_format", + format: "iban", + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +function isValidJWT(token, algorithm = null) { + try { + const tokensParts = token.split("."); + if (tokensParts.length !== 3) + return false; + const [header] = tokensParts; + if (!header) + return false; + const parsedHeader = JSON.parse(atob(header)); + if ("typ" in parsedHeader && parsedHeader?.typ !== "JWT") + return false; + if (!parsedHeader.alg) + return false; + if (algorithm && (!("alg" in parsedHeader) || parsedHeader.alg !== algorithm)) + return false; + return true; + } catch { + return false; + } +} +__name(isValidJWT, "isValidJWT"); +var $ZodJWT = /* @__PURE__ */ $constructor("$ZodJWT", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidJWT(payload.value, def.alg)) + return; + payload.issues.push({ + code: "invalid_format", + format: "jwt", + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodCustomStringFormat = /* @__PURE__ */ $constructor("$ZodCustomStringFormat", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (def.fn(payload.value)) + return; + payload.issues.push({ + code: "invalid_format", + format: def.format, + input: payload.value, + inst, + continue: !def.abort + }); + }; +}); +var $ZodNumber = /* @__PURE__ */ $constructor("$ZodNumber", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = number; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) + try { + payload.value = Number(payload.value); + } catch (_) { + } + const input2 = payload.value; + if (typeof input2 === "number" && !Number.isNaN(input2) && Number.isFinite(input2)) { + return payload; + } + const received = typeof input2 === "number" ? Number.isNaN(input2) ? "NaN" : !Number.isFinite(input2) ? String(input2) : void 0 : void 0; + payload.issues.push({ + expected: "number", + code: "invalid_type", + input: input2, + inst, + ...received ? { received } : {} + }); + return payload; + }; +}); +var $ZodNumberFormat = /* @__PURE__ */ $constructor("$ZodNumberFormat", (inst, def) => { + $ZodCheckNumberFormat.init(inst, def); + $ZodNumber.init(inst, def); +}); +var $ZodBoolean = /* @__PURE__ */ $constructor("$ZodBoolean", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = boolean; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) + try { + payload.value = Boolean(payload.value); + } catch (_) { + } + const input2 = payload.value; + if (typeof input2 === "boolean") + return payload; + payload.issues.push({ + expected: "boolean", + code: "invalid_type", + input: input2, + inst + }); + return payload; + }; +}); +var $ZodBigInt = /* @__PURE__ */ $constructor("$ZodBigInt", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = bigint; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) + try { + payload.value = BigInt(payload.value); + } catch (_) { + } + if (typeof payload.value === "bigint") + return payload; + payload.issues.push({ + expected: "bigint", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; +}); +var $ZodBigIntFormat = /* @__PURE__ */ $constructor("$ZodBigIntFormat", (inst, def) => { + $ZodCheckBigIntFormat.init(inst, def); + $ZodBigInt.init(inst, def); +}); +var $ZodSymbol = /* @__PURE__ */ $constructor("$ZodSymbol", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + const input2 = payload.value; + if (typeof input2 === "symbol") + return payload; + payload.issues.push({ + expected: "symbol", + code: "invalid_type", + input: input2, + inst + }); + return payload; + }; +}); +var $ZodUndefined = /* @__PURE__ */ $constructor("$ZodUndefined", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = _undefined; + inst._zod.values = /* @__PURE__ */ new Set([void 0]); + inst._zod.parse = (payload, _ctx) => { + const input2 = payload.value; + if (typeof input2 === "undefined") + return payload; + payload.issues.push({ + expected: "undefined", + code: "invalid_type", + input: input2, + inst + }); + return payload; + }; +}); +var $ZodNull = /* @__PURE__ */ $constructor("$ZodNull", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = _null; + inst._zod.values = /* @__PURE__ */ new Set([null]); + inst._zod.parse = (payload, _ctx) => { + const input2 = payload.value; + if (input2 === null) + return payload; + payload.issues.push({ + expected: "null", + code: "invalid_type", + input: input2, + inst + }); + return payload; + }; +}); +var $ZodAny = /* @__PURE__ */ $constructor("$ZodAny", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload) => payload; +}); +var $ZodUnknown = /* @__PURE__ */ $constructor("$ZodUnknown", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload) => payload; +}); +var $ZodNever = /* @__PURE__ */ $constructor("$ZodNever", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + payload.issues.push({ + expected: "never", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; +}); +var $ZodVoid = /* @__PURE__ */ $constructor("$ZodVoid", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + const input2 = payload.value; + if (typeof input2 === "undefined") + return payload; + payload.issues.push({ + expected: "void", + code: "invalid_type", + input: input2, + inst + }); + return payload; + }; +}); +var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) { + try { + payload.value = new Date(payload.value); + } catch (_err) { + } + } + const input2 = payload.value; + const isDate = input2 instanceof Date; + const isValidDate = isDate && !Number.isNaN(input2.getTime()); + if (isValidDate) + return payload; + payload.issues.push({ + expected: "date", + code: "invalid_type", + input: input2, + ...isDate ? { received: "Invalid Date" } : {}, + inst + }); + return payload; + }; +}); +function capSize(inst, size) { + const caps = sizeCaps(inst._zod.def.checks); + if (!caps.length) + return; + const cap = Math.min(...caps.map((c5) => c5[0])); + const parse4 = inst._zod.parse; + inst._zod.parse = (payload, ctx) => { + const n3 = size(payload.value); + if (n3 > cap && !ctx?.skipChecks && ctx?.direction !== "backward") { + for (const [max, ch] of sizeCaps(inst._zod.def.checks)) { + if (n3 > max && ch._zod.def.when(payload)) { + const start = payload.issues.length; + ch._zod.check(payload); + payload.issues[start].continue = false; + attachSchema(payload.issues, start, inst); + return payload; + } + } + } + return parse4(payload, ctx); + }; +} +__name(capSize, "capSize"); +var arraySize = /* @__PURE__ */ __name((input2) => Array.isArray(input2) ? input2.length : -1, "arraySize"); +var mapSize = /* @__PURE__ */ __name((input2) => input2 instanceof Map ? input2.size : -1, "mapSize"); +var setSize = /* @__PURE__ */ __name((input2) => input2 instanceof Set ? input2.size : -1, "setSize"); +function handleArrayResult(result, final, index) { + if (result.issues.length) { + final.issues.push(...prefixIssues(index, result.issues)); + } + final.value[index] = result.value; +} +__name(handleArrayResult, "handleArrayResult"); +var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => { + $ZodType.init(inst, def); + const memo2 = globalConfig.memoizer; + memo2?.attach(inst); + inst._zod.parse = (payload, ctx) => { + const input2 = payload.value; + if (!Array.isArray(input2)) { + payload.issues.push({ + expected: "array", + code: "invalid_type", + input: input2, + inst + }); + return payload; + } + payload.value = memo2 ? memo2.alloc(inst, payload, Array(input2.length), ctx) : Array(input2.length); + const proms = []; + const abortEarly = ctx?.abortEarly; + for (let i5 = 0; i5 < input2.length; i5++) { + const item = input2[i5]; + const result = def.element._zod.run({ + value: item, + issues: [] + }, ctx); + if (result instanceof Promise) { + proms.push(result.then((result2) => handleArrayResult(result2, payload, i5))); + } else { + handleArrayResult(result, payload, i5); + if (abortEarly && result.issues.length !== 0 && aborted(result)) + break; + } + } + if (proms.length) { + return Promise.all(proms).then(() => payload); + } + return payload; + }; + capSize(inst, arraySize); +}); +function handlePropertyResult(result, final, key, input2, optin, optout) { + const isPresent = key in input2; + const isOptionalOut = optout === "optional"; + if (!isPresent && isOptionalOut && optin === "optional") { + return; + } + if (result.issues.length) { + if (optin !== void 0 && isOptionalOut && !isPresent) { + return; + } + final.issues.push(...prefixIssues(key, result.issues)); + } + if (!isPresent && optin === void 0) { + if (!result.issues.length) { + final.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: void 0, + path: [key] + }); + } + return; + } + if (result.value === void 0) { + if (isPresent || optin === "defaulted" && !isOptionalOut) { + final.value[key] = void 0; + } + } else { + final.value[key] = result.value; + } +} +__name(handlePropertyResult, "handlePropertyResult"); +var NO_SYMBOL_KEYS = []; +function normalizeDef(def) { + const keys = Object.keys(def.shape); + const ownSymbols = Object.getOwnPropertySymbols(def.shape); + const symbolKeys = ownSymbols.length ? ownSymbols : NO_SYMBOL_KEYS; + const allKeys = symbolKeys.length ? [...keys, ...symbolKeys] : keys; + for (const k5 of allKeys) { + if (!def.shape?.[k5]?._zod?.traits?.has("$ZodType")) { + throw new Error(`Invalid element at key "${String(k5)}": expected a Zod schema`); + } + } + const okeys = optionalKeys(def.shape); + return { + ...def, + allKeys, + symbolKeys, + // string-only: handleCatchall matches it against `for...in`, which never yields a symbol + keySet: new Set(keys), + numKeys: keys.length, + optionalKeys: new Set(okeys) + }; +} +__name(normalizeDef, "normalizeDef"); +function handleCatchall(proms, input2, payload, ctx, def, inst, abortEarly) { + const unrecognized = []; + const keySet = def.keySet; + const _catchall = def.catchall._zod; + const t = _catchall.def.type; + const optin = _catchall.optin; + const optout = _catchall.optout; + let seen = 0; + for (const key in input2) { + if (abortEarly && payload.issues.length !== seen) { + if (aborted(payload, seen)) + break; + seen = payload.issues.length; + } + if (keySet.has(key)) + continue; + if (key === "__proto__") { + if (t === "never") + unrecognized.push(key); + continue; + } + if (t === "never") { + unrecognized.push(key); + continue; + } + const r5 = _catchall.run({ value: input2[key], issues: [] }, ctx); + if (r5 instanceof Promise) { + proms.push(r5.then((r6) => handlePropertyResult(r6, payload, key, input2, optin, optout))); + } else { + handlePropertyResult(r5, payload, key, input2, optin, optout); + } + } + if (unrecognized.length) { + payload.issues.push({ + code: "unrecognized_keys", + keys: unrecognized, + input: input2, + inst, + // Describes the shape of the input, not the validity of the parsed value, so it never aborts. The parse still fails; the schema's own checks just get to run first, and an enclosing intersection can reconcile the key against a sibling operand. + continue: true + }); + } + if (!proms.length) + return payload; + return Promise.all(proms).then(() => { + return payload; + }); +} +__name(handleCatchall, "handleCatchall"); +var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => { + $ZodType.init(inst, def); + const desc = Object.getOwnPropertyDescriptor(def, "shape"); + const sh = desc?.get ? desc.get.raw : def.shape ?? {}; + if (sh) { + const get2 = /* @__PURE__ */ __name(() => { + const newSh = { ...sh }; + Object.defineProperty(def, "shape", { value: newSh }); + get2.raw = newSh; + return newSh; + }, "get"); + get2.raw = sh; + Object.defineProperty(def, "shape", { get: get2 }); + } + const _normalized = cached(() => normalizeDef(def)); + defineLazyInternal(inst, "propValues", (zod) => { + const shape = zod.def.shape; + const propValues = {}; + for (const key in shape) { + const field = shape[key]._zod; + if (field.values) { + if (!Object.prototype.hasOwnProperty.call(propValues, key)) { + assignProp(propValues, key, /* @__PURE__ */ new Set()); + } + for (const v of field.values) + propValues[key].add(v); + if (field.optin !== void 0) + propValues[key].add(void 0); + } + } + return propValues; + }); + const isObject2 = isObject; + const catchall = def.catchall; + let value; + const memo2 = globalConfig.memoizer; + memo2?.attach(inst); + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input2 = payload.value; + if (!isObject2(input2)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input: input2, + inst + }); + return payload; + } + payload.value = memo2 ? memo2.alloc(inst, payload, {}, ctx) : {}; + const proms = []; + const shape = value.shape; + const abortEarly = ctx?.abortEarly; + let seen = payload.issues.length; + for (const key of value.allKeys) { + if (abortEarly && payload.issues.length !== seen) { + if (aborted(payload, seen)) + break; + seen = payload.issues.length; + } + if (key === "__proto__") + continue; + const el = shape[key]; + const optin = el._zod.optin; + const optout = el._zod.optout; + const r5 = el._zod.run({ value: input2[key], issues: [] }, ctx); + if (r5 instanceof Promise) { + proms.push(r5.then((r6) => handlePropertyResult(r6, payload, key, input2, optin, optout))); + } else { + handlePropertyResult(r5, payload, key, input2, optin, optout); + } + } + if (!catchall) { + return proms.length ? Promise.all(proms).then(() => payload) : payload; + } + return handleCatchall(proms, input2, payload, ctx, _normalized.value, inst, abortEarly === true); + }; +}); +var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) => { + $ZodObject.init(inst, def); + const superParse = inst._zod.parse; + const _normalized = cached(() => normalizeDef(def)); + const memo2 = globalConfig.memoizer; + const generateFastpass = /* @__PURE__ */ __name((shape) => { + const normalized = _normalized.value; + const syms = normalized.symbolKeys; + const doc = new Doc(["payload", "ctx"], { shape, inst, memo: memo2, syms }); + const parseStr = /* @__PURE__ */ __name((k5) => `shape[${k5}]._zod.run({ value: input[${k5}], issues: [] }, ctx)`, "parseStr"); + const prefixStr = /* @__PURE__ */ __name((id, k5) => ` + let ${id}_ab = false; + for (let i = 0; i < ${id}.issues.length; i++) { + const iss = ${id}.issues[i]; + iss.path = iss.path ? [${k5}, ...iss.path] : [${k5}]; + payload.issues.push(iss); + if (iss.continue !== true) ${id}_ab = true; + } + if (${id}_ab && ctx && ctx.abortEarly) { + payload.value = newResult; + return payload; + }`, "prefixStr"); + doc.write(`const input = payload.value;`); + const ids = /* @__PURE__ */ Object.create(null); + let counter = 0; + for (const key of normalized.allKeys) { + ids[key] = `key_${counter++}`; + } + doc.write(memo2 ? `const newResult = memo.alloc(inst, payload, {}, ctx);` : `const newResult = {};`); + for (const key of normalized.allKeys) { + if (key === "__proto__") + continue; + const id = ids[key]; + const k5 = typeof key === "symbol" ? `syms[${syms.indexOf(key)}]` : esc(key); + const isPresent = `${k5} in input`; + const schema2 = shape[key]; + const optin = schema2?._zod?.optin; + const isOptionalIn = optin !== void 0; + const isOptionalOut = schema2?._zod?.optout === "optional"; + doc.write(`const ${id} = ${parseStr(k5)};`); + if (isOptionalIn && isOptionalOut) { + const assign = optin === "optional" ? `${id}_present` : `${id}.value !== undefined || ${id}_present`; + doc.write(` + const ${id}_present = ${isPresent}; + if (!${id}.issues.length || ${id}_present) { + if (${id}.issues.length) {${prefixStr(id, k5)} + } + + if (${assign}) { + newResult[${k5}] = ${id}.value; + } + } + + `); + } else if (!isOptionalIn) { + doc.write(` + const ${id}_present = ${isPresent}; + if (${id}.issues.length) {${prefixStr(id, k5)} + } + if (!${id}_present && !${id}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${k5}] + }); + if (ctx && ctx.abortEarly) { + payload.value = newResult; + return payload; + } + } + + if (${id}_present) { + newResult[${k5}] = ${id}.value; + } + + `); + } else { + doc.write(` + if (${id}.issues.length) {${prefixStr(id, k5)} + } + `); + if (optin === "defaulted") { + doc.write(`newResult[${k5}] = ${id}.value;`); + } else { + doc.write(` + if (${id}.value !== undefined || ${isPresent}) { + newResult[${k5}] = ${id}.value; + } + `); + } + } + } + doc.write(`payload.value = newResult;`); + doc.write(`return payload;`); + return doc.compile(); + }, "generateFastpass"); + let fastpass; + const isObject2 = isObject; + const jit = !globalConfig.jitless; + const allowsEval2 = allowsEval; + const fastEnabled = jit && allowsEval2.value; + const catchall = def.catchall; + let value; + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input2 = payload.value; + if (!isObject2(input2)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input: input2, + inst + }); + return payload; + } + if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) { + if (!fastpass) + fastpass = generateFastpass(def.shape); + payload = fastpass(payload, ctx); + if (!catchall) + return payload; + return handleCatchall([], input2, payload, ctx, value, inst, ctx?.abortEarly === true); + } + return superParse(payload, ctx); + }; +}); +function handleUnionResults(results, final, inst, ctx) { + for (const result of results) { + if (result.issues.length === 0) { + final.value = result.value; + return final; + } + } + const nonaborted = results.filter((r5) => !aborted(r5)); + if (nonaborted.length === 1) { + final.value = nonaborted[0].value; + return nonaborted[0]; + } + final.issues.push({ + code: "invalid_union", + input: final.value, + inst, + errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + }); + return final; +} +__name(handleUnionResults, "handleUnionResults"); +var $ZodUnion = /* @__PURE__ */ $constructor("$ZodUnion", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "optin", (zod) => zod.def.options.some((o3) => o3._zod.optin === "defaulted") ? "defaulted" : zod.def.options.some((o3) => o3._zod.optin !== void 0) ? "optional" : void 0); + defineLazyInternal(inst, "optout", (zod) => zod.def.options.some((o3) => o3._zod.optout === "optional") ? "optional" : void 0); + defineLazyInternal(inst, "values", (zod) => { + if (zod.def.options.every((o3) => o3._zod.values)) { + return new Set(zod.def.options.flatMap((option) => Array.from(option._zod.values))); + } + return void 0; + }); + defineLazyInternal(inst, "pattern", (zod) => { + if (zod.def.options.every((o3) => o3._zod.pattern)) { + const patterns = zod.def.options.map((o3) => o3._zod.pattern); + return new RegExp(`^(${patterns.map((p3) => cleanRegex(p3.source)).join("|")})$`); + } + return void 0; + }); + const first = def.options.length === 1 ? def.options[0]._zod.run : null; + inst._zod.parse = (payload, ctx) => { + if (first) { + return first(payload, ctx); + } + let async = false; + const results = []; + for (const option of def.options) { + const result = option._zod.run({ + value: payload.value, + issues: [] + }, ctx); + if (result instanceof Promise) { + results.push(result); + async = true; + } else { + if (result.issues.length === 0) + return result; + results.push(result); + } + } + if (!async) + return handleUnionResults(results, payload, inst, ctx); + return Promise.all(results).then((results2) => { + return handleUnionResults(results2, payload, inst, ctx); + }); + }; +}); +function handleExclusiveUnionResults(results, final, inst, ctx) { + const matches = []; + for (let i5 = 0; i5 < results.length; i5++) { + if (results[i5].issues.length === 0) + matches.push(i5); + } + if (matches.length === 1) { + final.value = results[matches[0]].value; + return final; + } + if (matches.length === 0) { + final.issues.push({ + code: "invalid_union", + input: final.value, + inst, + errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + }); + } else { + final.issues.push({ + code: "invalid_union", + input: final.value, + inst, + errors: [], + inclusive: false, + matches + }); + } + return final; +} +__name(handleExclusiveUnionResults, "handleExclusiveUnionResults"); +var $ZodXor = /* @__PURE__ */ $constructor("$ZodXor", (inst, def) => { + $ZodUnion.init(inst, def); + def.inclusive = false; + const first = def.options.length === 1 ? def.options[0]._zod.run : null; + inst._zod.parse = (payload, ctx) => { + if (first) { + return first(payload, ctx); + } + let async = false; + const results = []; + for (const option of def.options) { + const result = option._zod.run({ + value: payload.value, + issues: [] + }, ctx); + if (result instanceof Promise) { + results.push(result); + async = true; + } else { + results.push(result); + } + } + if (!async) + return handleExclusiveUnionResults(results, payload, inst, ctx); + return Promise.all(results).then((results2) => { + return handleExclusiveUnionResults(results2, payload, inst, ctx); + }); + }; +}); +function getDiscriminatedOption(union2, value) { + const internals = union2._zod; + let map2 = internals.bag.optionsMap; + if (!map2) { + map2 = discriminatorMap(internals.def); + internals.bag.optionsMap = map2; + } + const option = map2.get(value); + if (option === null) + throw new Error(`Ambiguous discriminator value "${String(value)}"`); + return option; +} +__name(getDiscriminatedOption, "getDiscriminatedOption"); +function discriminatorMap(def) { + const map2 = /* @__PURE__ */ new Map(); + for (const option of def.options) { + const values = option._zod.propValues?.[def.discriminator]; + if (!values || values.size === 0) + throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`); + for (const value of values) { + if (map2.has(value)) { + if (value !== void 0) + throw new Error(`Duplicate discriminator value "${String(value)}"`); + map2.set(value, null); + } else { + map2.set(value, option); + } + } + } + return map2; +} +__name(discriminatorMap, "discriminatorMap"); +var $ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("$ZodDiscriminatedUnion", (inst, def) => { + def.inclusive = false; + $ZodUnion.init(inst, def); + const _super = inst._zod.parse; + defineLazyInternal(inst, "propValues", (zod) => { + const propValues = {}; + let undefinedCount = 0; + for (const option of zod.def.options) { + const pv = option._zod.propValues; + if (!pv || Object.keys(pv).length === 0) + throw new Error(`Invalid discriminated union option at index "${zod.def.options.indexOf(option)}"`); + if (pv[zod.def.discriminator]?.has(void 0)) + undefinedCount++; + for (const [k5, v] of Object.entries(pv)) { + if (!Object.prototype.hasOwnProperty.call(propValues, k5)) { + assignProp(propValues, k5, /* @__PURE__ */ new Set()); + } + for (const val of v) { + propValues[k5].add(val); + } + } + } + if (!zod.def.unionFallback && undefinedCount > 1) + propValues[zod.def.discriminator]?.delete(void 0); + return propValues; + }); + def.options.forEach((option, i5) => { + const propShape = rawShape(option._zod.def); + if (propShape && !Object.prototype.hasOwnProperty.call(propShape, def.discriminator)) { + throw new Error(`Invalid discriminated union option at index "${i5}"`); + } + }); + const disc = cached(() => discriminatorMap(def)); + inst._zod.parse = (payload, ctx) => { + const input2 = payload.value; + if (!isObject(input2)) { + payload.issues.push({ + code: "invalid_type", + expected: "object", + input: input2, + inst + }); + return payload; + } + const value = input2?.[def.discriminator]; + const opt = disc.value.get(value); + if (opt && (value !== void 0 || ctx.direction !== "backward")) { + return opt._zod.run(payload, ctx); + } + if (def.unionFallback || ctx.direction === "backward") { + return _super(payload, ctx); + } + payload.issues.push({ + code: "invalid_union", + errors: [], + note: "No matching discriminator", + discriminator: def.discriminator, + options: Array.from(disc.value.keys()).filter((value2) => disc.value.get(value2) !== null), + input: input2, + path: [def.discriminator], + inst + }); + return payload; + }; +}); +var $ZodIntersection = /* @__PURE__ */ $constructor("$ZodIntersection", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input2 = payload.value; + const left = def.left._zod.run({ value: input2, issues: [] }, ctx); + const right = def.right._zod.run({ value: input2, issues: [] }, ctx); + const async = left instanceof Promise || right instanceof Promise; + if (async) { + return Promise.all([left, right]).then(([left2, right2]) => { + return handleIntersectionResults(payload, left2, right2); + }); + } + return handleIntersectionResults(payload, left, right); + }; +}); +function mergeValues(a5, b5) { + if (a5 === b5) { + return { valid: true, data: a5 }; + } + if (a5 instanceof Date && b5 instanceof Date && +a5 === +b5) { + return { valid: true, data: a5 }; + } + if (isPlainObject(a5) && isPlainObject(b5)) { + const bKeys = Object.keys(b5); + const sharedKeys = Object.keys(a5).filter((key) => bKeys.indexOf(key) !== -1); + const newObj = { ...a5, ...b5 }; + if (Object.prototype.hasOwnProperty.call(newObj, "__proto__")) + delete newObj.__proto__; + for (const key of sharedKeys) { + if (key === "__proto__") + continue; + const sharedValue = mergeValues(a5[key], b5[key]); + if (!sharedValue.valid) { + return { + valid: false, + mergeErrorPath: [key, ...sharedValue.mergeErrorPath] + }; + } + newObj[key] = sharedValue.data; + } + return { valid: true, data: newObj }; + } + if (Array.isArray(a5) && Array.isArray(b5)) { + if (a5.length !== b5.length) { + return { valid: false, mergeErrorPath: [] }; + } + const newArray = []; + for (let index = 0; index < a5.length; index++) { + const itemA = a5[index]; + const itemB = b5[index]; + const sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) { + return { + valid: false, + mergeErrorPath: [index, ...sharedValue.mergeErrorPath] + }; + } + newArray.push(sharedValue.data); + } + return { valid: true, data: newArray }; + } + return { valid: false, mergeErrorPath: [] }; +} +__name(mergeValues, "mergeValues"); +function handleIntersectionResults(result, left, right) { + const unrecKeys = /* @__PURE__ */ new Map(); + let unrecIssue; + const keyIssues = /* @__PURE__ */ new Map(); + const collect = /* @__PURE__ */ __name((iss, side) => { + let keys; + if (iss.code === "unrecognized_keys" && !iss.path?.length) { + unrecIssue ?? (unrecIssue = iss); + keys = iss.keys; + } else if (iss.code === "invalid_key" && iss.origin === "record" && iss.path?.length === 1) { + const k5 = String(iss.path[0]); + if (!keyIssues.has(k5)) + keyIssues.set(k5, iss); + keys = [k5]; + } else { + return false; + } + for (const k5 of keys) { + if (!unrecKeys.has(k5)) + unrecKeys.set(k5, {}); + unrecKeys.get(k5)[side] = true; + } + return true; + }, "collect"); + for (const iss of left.issues) { + if (!collect(iss, "l")) + result.issues.push(iss); + } + for (const iss of right.issues) { + if (!collect(iss, "r")) + result.issues.push(iss); + } + const bothKeys = [...unrecKeys].filter(([, f5]) => f5.l && f5.r).map(([k5]) => k5); + if (bothKeys.length) { + const aggregated = unrecIssue ? bothKeys.filter((k5) => unrecIssue.keys.includes(k5)) : []; + if (aggregated.length) + result.issues.push({ ...unrecIssue, keys: aggregated }); + for (const k5 of bothKeys) { + if (!aggregated.includes(k5) && keyIssues.has(k5)) + result.issues.push(keyIssues.get(k5)); + } + } + const merged = mergeValues(left.value, right.value); + if (!merged.valid) { + if (aborted(result)) + return result; + throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`); + } + result.value = merged.data; + return result; +} +__name(handleIntersectionResults, "handleIntersectionResults"); +var $ZodTuple = /* @__PURE__ */ $constructor("$ZodTuple", (inst, def) => { + $ZodType.init(inst, def); + const items = def.items; + const memo2 = globalConfig.memoizer; + memo2?.attach(inst); + inst._zod.parse = (payload, ctx) => { + const input2 = payload.value; + if (!Array.isArray(input2)) { + payload.issues.push({ + input: input2, + inst, + expected: "tuple", + code: "invalid_type" + }); + return payload; + } + payload.value = memo2 ? memo2.alloc(inst, payload, [], ctx) : []; + const proms = []; + const optinStart = getTupleOptStart(items, "optin"); + const optoutStart = getTupleOptStart(items, "optout"); + if (!def.rest) { + if (input2.length < optinStart) { + payload.issues.push({ + code: "too_small", + minimum: optinStart, + inclusive: true, + input: input2, + inst, + origin: "array" + }); + return payload; + } + if (input2.length > items.length) { + payload.issues.push({ + code: "too_big", + maximum: items.length, + inclusive: true, + input: input2, + inst, + origin: "array" + }); + } + } + const itemResults = new Array(items.length); + const abortEarly = def.rest ? ctx?.abortEarly : void 0; + let itemAborted = false; + for (let i5 = 0; i5 < items.length; i5++) { + const r5 = items[i5]._zod.run({ value: input2[i5], issues: [] }, ctx); + if (r5 instanceof Promise) { + proms.push(r5.then((rr) => { + itemResults[i5] = rr; + })); + } else { + itemResults[i5] = r5; + if (abortEarly && !itemAborted && r5.issues.length) + itemAborted = aborted(r5); + } + } + if (def.rest && !itemAborted) { + let i5 = items.length - 1; + const rest = input2.slice(items.length); + let seen = payload.issues.length; + for (const el of rest) { + if (abortEarly && payload.issues.length !== seen) { + if (aborted(payload, seen)) + break; + seen = payload.issues.length; + } + i5++; + const result = def.rest._zod.run({ value: el, issues: [] }, ctx); + if (result instanceof Promise) { + proms.push(result.then((r5) => handleTupleResult(r5, payload, i5))); + } else { + handleTupleResult(result, payload, i5); + } + } + } + if (proms.length) { + return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input2, optoutStart)); + } + return handleTupleResults(itemResults, payload, items, input2, optoutStart); + }; +}); +function getTupleOptStart(items, key) { + for (let i5 = items.length - 1; i5 >= 0; i5--) { + const omittable = key === "optin" ? items[i5]._zod.optin !== void 0 : items[i5]._zod.optout === "optional"; + if (!omittable) + return i5 + 1; + } + return 0; +} +__name(getTupleOptStart, "getTupleOptStart"); +function handleTupleResult(result, final, index) { + if (result.issues.length) { + final.issues.push(...prefixIssues(index, result.issues)); + } + final.value[index] = result.value; +} +__name(handleTupleResult, "handleTupleResult"); +function handleTupleResults(itemResults, final, items, input2, optoutStart) { + for (let i5 = 0; i5 < items.length; i5++) { + const r5 = itemResults[i5]; + const isPresent = i5 < input2.length; + if (!isPresent && i5 >= optoutStart && items[i5]._zod.optin === "optional") { + final.value.length = i5; + break; + } + if (r5.issues.length) { + if (!isPresent && i5 >= optoutStart) { + final.value.length = i5; + break; + } + final.issues.push(...prefixIssues(i5, r5.issues)); + } + final.value[i5] = r5.value; + } + for (let i5 = final.value.length - 1; i5 >= input2.length; i5--) { + if (items[i5]._zod.optout === "optional" && final.value[i5] === void 0) { + final.value.length = i5; + } else { + break; + } + } + return final; +} +__name(handleTupleResults, "handleTupleResults"); +var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => { + $ZodType.init(inst, def); + const memo2 = globalConfig.memoizer; + memo2?.attach(inst); + inst._zod.parse = (payload, ctx) => { + const input2 = payload.value; + if (!isPlainObject(input2)) { + payload.issues.push({ + expected: "record", + code: "invalid_type", + input: input2, + inst + }); + return payload; + } + const proms = []; + const values = def.keyType._zod.values; + if (values && !def.partial) { + payload.value = memo2 ? memo2.alloc(inst, payload, {}, ctx) : {}; + const recordKeys = /* @__PURE__ */ new Set(); + for (const key of values) { + if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") { + recordKeys.add(typeof key === "number" ? key.toString() : key); + if (key === "__proto__") + continue; + const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); + if (keyResult instanceof Promise) { + throw new Error("Async schemas not supported in object keys currently"); + } + if (keyResult.issues.length) { + payload.issues.push({ + code: "invalid_key", + origin: "record", + issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), + input: key, + path: [key], + inst + }); + continue; + } + const outKey = keyResult.value; + if (outKey === "__proto__") + continue; + const result = def.valueType._zod.run({ value: input2[key], issues: [] }, ctx); + if (result instanceof Promise) { + proms.push(result.then((result2) => { + if (result2.issues.length) { + payload.issues.push(...prefixIssues(key, result2.issues)); + } + payload.value[outKey] = result2.value; + })); + } else { + if (result.issues.length) { + payload.issues.push(...prefixIssues(key, result.issues)); + } + payload.value[outKey] = result.value; + } + } + } + let unrecognized; + for (const key in input2) { + if (!recordKeys.has(key)) { + if (def.mode === "loose") { + if (key === "__proto__") + continue; + payload.value[key] = input2[key]; + } else { + unrecognized = unrecognized ?? []; + unrecognized.push(key); + } + } + } + if (unrecognized && unrecognized.length > 0) { + payload.issues.push({ + code: "unrecognized_keys", + input: input2, + inst, + keys: unrecognized, + continue: true + }); + } + } else { + payload.value = memo2 ? memo2.alloc(inst, payload, {}, ctx) : {}; + let unrecognized; + for (const key of Reflect.ownKeys(input2)) { + if (key === "__proto__") + continue; + if (!Object.prototype.propertyIsEnumerable.call(input2, key)) + continue; + let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); + if (keyResult instanceof Promise) { + throw new Error("Async schemas not supported in object keys currently"); + } + const checkNumericKey = typeof key === "string" && number.test(key) && keyResult.issues.length; + if (checkNumericKey) { + const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx); + if (retryResult instanceof Promise) { + throw new Error("Async schemas not supported in object keys currently"); + } + if (retryResult.issues.length === 0) { + keyResult = retryResult; + } + } + if (keyResult.issues.length) { + if (def.mode === "loose") { + payload.value[key] = input2[key]; + } else if (values) { + unrecognized = unrecognized ?? []; + unrecognized.push(key); + } else { + payload.issues.push({ + code: "invalid_key", + origin: "record", + issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), + input: key, + path: [key], + inst + }); + } + continue; + } + const outKey = keyResult.value; + if (outKey === "__proto__") + continue; + const result = def.valueType._zod.run({ value: input2[key], issues: [] }, ctx); + if (result instanceof Promise) { + proms.push(result.then((result2) => { + if (result2.issues.length) { + payload.issues.push(...prefixIssues(key, result2.issues)); + } + payload.value[outKey] = result2.value; + })); + } else { + if (result.issues.length) { + payload.issues.push(...prefixIssues(key, result.issues)); + } + payload.value[outKey] = result.value; + } + } + if (unrecognized && unrecognized.length > 0) { + payload.issues.push({ + code: "unrecognized_keys", + input: input2, + inst, + keys: unrecognized, + continue: true + }); + } + } + if (proms.length) { + return Promise.all(proms).then(() => payload); + } + return payload; + }; +}); +var $ZodMap = /* @__PURE__ */ $constructor("$ZodMap", (inst, def) => { + $ZodType.init(inst, def); + const memo2 = globalConfig.memoizer; + memo2?.attach(inst); + inst._zod.parse = (payload, ctx) => { + const input2 = payload.value; + if (!(input2 instanceof Map)) { + payload.issues.push({ + expected: "map", + code: "invalid_type", + input: input2, + inst + }); + return payload; + } + const proms = []; + payload.value = memo2 ? memo2.alloc(inst, payload, /* @__PURE__ */ new Map(), ctx) : /* @__PURE__ */ new Map(); + const abortEarly = ctx?.abortEarly; + let seen = payload.issues.length; + for (const [key, value] of input2) { + if (abortEarly && payload.issues.length !== seen) { + if (aborted(payload, seen)) + break; + seen = payload.issues.length; + } + const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); + const valueResult = def.valueType._zod.run({ value, issues: [] }, ctx); + if (keyResult instanceof Promise || valueResult instanceof Promise) { + proms.push(Promise.all([keyResult, valueResult]).then(([keyResult2, valueResult2]) => { + handleMapResult(keyResult2, valueResult2, payload, key, input2, inst, ctx); + })); + } else { + handleMapResult(keyResult, valueResult, payload, key, input2, inst, ctx); + } + } + if (proms.length) + return Promise.all(proms).then(() => payload); + return payload; + }; + capSize(inst, mapSize); +}); +function handleMapResult(keyResult, valueResult, final, key, input2, inst, ctx) { + if (keyResult.issues.length) { + if (propertyKeyTypes.has(typeof key)) { + final.issues.push(...prefixIssues(key, keyResult.issues)); + } else { + final.issues.push({ + code: "invalid_key", + origin: "map", + input: input2, + inst, + issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())) + }); + } + } + if (valueResult.issues.length) { + if (propertyKeyTypes.has(typeof key)) { + final.issues.push(...prefixIssues(key, valueResult.issues)); + } else { + final.issues.push({ + origin: "map", + code: "invalid_element", + input: input2, + inst, + key, + issues: valueResult.issues.map((iss) => finalizeIssue(iss, ctx, config())) + }); + } + } + final.value.set(keyResult.value, valueResult.value); +} +__name(handleMapResult, "handleMapResult"); +var $ZodSet = /* @__PURE__ */ $constructor("$ZodSet", (inst, def) => { + $ZodType.init(inst, def); + const memo2 = globalConfig.memoizer; + memo2?.attach(inst); + inst._zod.parse = (payload, ctx) => { + const input2 = payload.value; + if (!(input2 instanceof Set)) { + payload.issues.push({ + input: input2, + inst, + expected: "set", + code: "invalid_type" + }); + return payload; + } + const proms = []; + payload.value = memo2 ? memo2.alloc(inst, payload, /* @__PURE__ */ new Set(), ctx) : /* @__PURE__ */ new Set(); + const abortEarly = ctx?.abortEarly; + let seen = payload.issues.length; + for (const item of input2) { + if (abortEarly && payload.issues.length !== seen) { + if (aborted(payload, seen)) + break; + seen = payload.issues.length; + } + const result = def.valueType._zod.run({ value: item, issues: [] }, ctx); + if (result instanceof Promise) { + proms.push(result.then((result2) => handleSetResult(result2, payload))); + } else + handleSetResult(result, payload); + } + if (proms.length) + return Promise.all(proms).then(() => payload); + return payload; + }; + capSize(inst, setSize); +}); +function handleSetResult(result, final) { + if (result.issues.length) { + final.issues.push(...result.issues); + } + final.value.add(result.value); +} +__name(handleSetResult, "handleSetResult"); +var $ZodEnum = /* @__PURE__ */ $constructor("$ZodEnum", (inst, def) => { + $ZodType.init(inst, def); + const values = getEnumValues(def.entries); + const valuesSet = new Set(values); + inst._zod.values = valuesSet; + defineLazyInternal(inst, "pattern", (zod) => { + const patternValues = getEnumValues(zod.def.entries).filter((k5) => propertyKeyTypes.has(typeof k5)); + return new RegExp(patternValues.length ? `^(${patternValues.map((o3) => escapeRegex(o3.toString())).join("|")})$` : "^[^\\s\\S]$"); + }); + inst._zod.parse = (payload, _ctx) => { + const input2 = payload.value; + if (valuesSet.has(input2)) { + return payload; + } + payload.issues.push({ + code: "invalid_value", + values, + input: input2, + inst + }); + return payload; + }; +}); +var $ZodLiteral = /* @__PURE__ */ $constructor("$ZodLiteral", (inst, def) => { + $ZodType.init(inst, def); + const values = new Set(def.values); + inst._zod.values = values; + defineLazyInternal(inst, "pattern", (zod) => { + const vals = zod.def.values; + return new RegExp(vals.length ? `^(${vals.map((o3) => typeof o3 === "string" ? escapeRegex(o3) : o3 ? escapeRegex(o3.toString()) : String(o3)).join("|")})$` : "^[^\\s\\S]$"); + }); + inst._zod.parse = (payload, _ctx) => { + const input2 = payload.value; + if (values.has(input2)) { + return payload; + } + payload.issues.push({ + code: "invalid_value", + values: def.values, + input: input2, + inst + }); + return payload; + }; +}); +var $ZodFile = /* @__PURE__ */ $constructor("$ZodFile", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + const input2 = payload.value; + if (input2 instanceof File) + return payload; + payload.issues.push({ + expected: "file", + code: "invalid_type", + input: input2, + inst + }); + return payload; + }; +}); +var $ZodTransform = /* @__PURE__ */ $constructor("$ZodTransform", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + globalConfig.memoizer?.guard(inst); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + throw new $ZodEncodeError(inst.constructor.name); + } + const _out = def.transform(payload.value, payload); + if (ctx.async) { + const output2 = _out instanceof Promise ? _out : Promise.resolve(_out); + return output2.then((output3) => { + payload.value = output3; + return payload; + }); + } + if (_out instanceof Promise) { + throw new $ZodAsyncError(); + } + payload.value = _out; + return payload; + }; +}); +function handleOptionalResult(payload, result) { + payload.value = result.issues.length ? void 0 : result.value; + return payload; +} +__name(handleOptionalResult, "handleOptionalResult"); +var $ZodOptional = /* @__PURE__ */ $constructor("$ZodOptional", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "optin", (zod) => zod.def.innerType._zod.optin === "defaulted" ? "defaulted" : "optional"); + inst._zod.optout = "optional"; + defineLazyInternal(inst, "values", (zod) => { + const values = zod.def.innerType._zod.values; + return values ? /* @__PURE__ */ new Set([...values, void 0]) : void 0; + }); + defineLazyInternal(inst, "pattern", (zod) => { + const pattern = zod.def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (payload.value === void 0) { + if (def.innerType._zod.optin !== "defaulted") + return payload; + const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx); + if (result instanceof Promise) + return result.then((result2) => handleOptionalResult(payload, result2)); + return handleOptionalResult(payload, result); + } + return def.innerType._zod.run(payload, ctx); + }; +}); +var $ZodExactOptional = /* @__PURE__ */ $constructor("$ZodExactOptional", (inst, def) => { + $ZodOptional.init(inst, def); + defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); + defineLazyInternal(inst, "pattern", (zod) => zod.def.innerType._zod.pattern); + inst._zod.parse = (payload, ctx) => { + return def.innerType._zod.run(payload, ctx); + }; +}); +var $ZodNullable = /* @__PURE__ */ $constructor("$ZodNullable", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "optin", (zod) => zod.def.innerType._zod.optin); + defineLazyInternal(inst, "optout", (zod) => zod.def.innerType._zod.optout); + defineLazyInternal(inst, "pattern", (zod) => { + const pattern = zod.def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : void 0; + }); + defineLazyInternal(inst, "values", (zod) => { + return zod.def.innerType._zod.values ? /* @__PURE__ */ new Set([...zod.def.innerType._zod.values, null]) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (payload.value === null) + return payload; + return def.innerType._zod.run(payload, ctx); + }; +}); +var $ZodDefault = /* @__PURE__ */ $constructor("$ZodDefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "defaulted"; + defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + return def.innerType._zod.run(payload, ctx); + } + if (payload.value === void 0) { + payload.value = def.defaultValue; + return payload; + } + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) { + return result.then((result2) => handleDefaultResult(result2, def)); + } + return handleDefaultResult(result, def); + }; +}); +function handleDefaultResult(payload, def) { + if (payload.value === void 0) { + payload.value = def.defaultValue; + } + return payload; +} +__name(handleDefaultResult, "handleDefaultResult"); +var $ZodPrefault = /* @__PURE__ */ $constructor("$ZodPrefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "defaulted"; + defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + return def.innerType._zod.run(payload, ctx); + } + if (payload.value === void 0) { + payload.value = def.defaultValue; + } + return def.innerType._zod.run(payload, ctx); + }; +}); +var $ZodNonOptional = /* @__PURE__ */ $constructor("$ZodNonOptional", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "values", (zod) => { + const v = zod.def.innerType._zod.values; + return v ? new Set([...v].filter((x) => x !== void 0)) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) { + return result.then((result2) => handleNonOptionalResult(result2, inst)); + } + return handleNonOptionalResult(result, inst); + }; +}); +function handleNonOptionalResult(payload, inst) { + if (!payload.issues.length && payload.value === void 0) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: payload.value, + inst + }); + } + return payload; +} +__name(handleNonOptionalResult, "handleNonOptionalResult"); +var $ZodSuccess = /* @__PURE__ */ $constructor("$ZodSuccess", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + throw new $ZodEncodeError("ZodSuccess"); + } + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) { + return result.then((result2) => { + payload.value = result2.issues.length === 0; + return payload; + }); + } + payload.value = result.issues.length === 0; + return payload; + }; +}); +function handleCatchResult(payload, result, def, ctx) { + if (!result.issues.length) { + payload.value = result.value; + if (result.memo) + payload.memo = true; + return payload; + } + payload.value = def.catchValue({ + ...result, + value: payload.value, + error: { + issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) + }, + input: payload.value + }); + return payload; +} +__name(handleCatchResult, "handleCatchResult"); +var $ZodCatch = /* @__PURE__ */ $constructor("$ZodCatch", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "optin", (zod) => zod.def.innerType._zod.optin === "defaulted" ? "defaulted" : "optional"); + defineLazyInternal(inst, "optout", (zod) => zod.def.innerType._zod.optout); + defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + return def.innerType._zod.run(payload, ctx); + } + const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx); + if (result instanceof Promise) { + return result.then((result2) => handleCatchResult(payload, result2, def, ctx)); + } + return handleCatchResult(payload, result, def, ctx); + }; +}); +var $ZodNaN = /* @__PURE__ */ $constructor("$ZodNaN", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + if (typeof payload.value !== "number" || !Number.isNaN(payload.value)) { + payload.issues.push({ + input: payload.value, + inst, + expected: "nan", + code: "invalid_type" + }); + return payload; + } + return payload; + }; +}); +var $ZodPipe = /* @__PURE__ */ $constructor("$ZodPipe", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "values", (zod) => zod.def.in._zod.values); + defineLazyInternal(inst, "optin", (zod) => zod.def.in._zod.optin); + defineLazyInternal(inst, "optout", (zod) => zod.def.out._zod.optout); + defineLazyInternal(inst, "propValues", (zod) => zod.def.in._zod.propValues); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + const right = def.out._zod.run(payload, ctx); + if (right instanceof Promise) { + return right.then((right2) => handlePipeResult(right2, def.in, ctx)); + } + return handlePipeResult(right, def.in, ctx); + } + const left = def.in._zod.run(payload, ctx); + if (left instanceof Promise) { + return left.then((left2) => handlePipeResult(left2, def.out, ctx)); + } + return handlePipeResult(left, def.out, ctx); + }; +}); +function handlePipeResult(left, next, ctx) { + if (left.issues.some((iss) => iss.code !== "unrecognized_keys")) { + left.aborted = true; + return left; + } + return next._zod.run({ value: left.value, issues: left.issues }, ctx); +} +__name(handlePipeResult, "handlePipeResult"); +var $ZodCodec = /* @__PURE__ */ $constructor("$ZodCodec", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "values", (zod) => zod.def.in._zod.values); + defineLazyInternal(inst, "optin", (zod) => zod.def.in._zod.optin); + defineLazyInternal(inst, "optout", (zod) => zod.def.out._zod.optout); + defineLazyInternal(inst, "propValues", (zod) => zod.def.in._zod.propValues); + inst._zod.parse = (payload, ctx) => { + const direction = ctx.direction || "forward"; + if (direction === "forward") { + const left = def.in._zod.run(payload, ctx); + if (left instanceof Promise) { + return left.then((left2) => handleCodecAResult(left2, def, ctx)); + } + return handleCodecAResult(left, def, ctx); + } else { + const right = def.out._zod.run(payload, ctx); + if (right instanceof Promise) { + return right.then((right2) => handleCodecAResult(right2, def, ctx)); + } + return handleCodecAResult(right, def, ctx); + } + }; +}); +function handleCodecAResult(result, def, ctx) { + if (result.issues.length) { + result.aborted = true; + return result; + } + const direction = ctx.direction || "forward"; + if (direction === "forward") { + const transformed = def.transform(result.value, result); + if (transformed instanceof Promise) { + return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx)); + } + return handleCodecTxResult(result, transformed, def.out, ctx); + } else { + const transformed = def.reverseTransform(result.value, result); + if (transformed instanceof Promise) { + return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx)); + } + return handleCodecTxResult(result, transformed, def.in, ctx); + } +} +__name(handleCodecAResult, "handleCodecAResult"); +function handleCodecTxResult(left, value, nextSchema, ctx) { + if (left.issues.length) { + left.aborted = true; + return left; + } + return nextSchema._zod.run({ value, issues: left.issues }, ctx); +} +__name(handleCodecTxResult, "handleCodecTxResult"); +var $ZodPreprocess = /* @__PURE__ */ $constructor("$ZodPreprocess", (inst, def) => { + $ZodPipe.init(inst, def); +}); +var $ZodReadonly = /* @__PURE__ */ $constructor("$ZodReadonly", (inst, def) => { + $ZodType.init(inst, def); + defineLazyInternal(inst, "propValues", (zod) => zod.def.innerType._zod.propValues); + defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); + defineLazyInternal(inst, "optin", (zod) => zod.def.innerType?._zod?.optin); + defineLazyInternal(inst, "optout", (zod) => zod.def.innerType?._zod?.optout); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + return def.innerType._zod.run(payload, ctx); + } + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) { + return result.then(handleReadonlyResult); + } + return handleReadonlyResult(result); + }; +}); +function handleReadonlyResult(payload) { + if (!payload.memo) + payload.value = Object.freeze(payload.value); + return payload; +} +__name(handleReadonlyResult, "handleReadonlyResult"); +function leafPattern(schema2) { + const def = schema2._zod.def; + let pattern = def.pattern; + let isInt = !!def.format?.includes("int"); + let minimum; + let maximum; + for (const ch of def.checks ?? []) { + const d5 = ch._zod.def; + if (d5.pattern) + pattern = d5.pattern; + isInt || (isInt = !!d5.format?.includes("int")); + const lo = d5.minimum ?? d5.length; + const hi = d5.maximum ?? d5.length; + if (lo !== void 0 && (minimum === void 0 || lo > minimum)) + minimum = lo; + if (hi !== void 0 && (maximum === void 0 || hi < maximum)) + maximum = hi; + } + if (pattern) + return pattern.source; + if (minimum !== void 0 && maximum !== void 0 && minimum > maximum) + return "(?!)"; + if (minimum !== void 0 || maximum !== void 0) + return string({ minimum, maximum }).source; + const own2 = schema2._zod.pattern; + return (isInt && own2 === number ? integer : own2)?.source; +} +__name(leafPattern, "leafPattern"); +function partPattern(schema2) { + const def = schema2._zod.def; + const own2 = schema2._zod.pattern?.source; + const inner = def.innerType ?? schema2._zod.innerType; + if (inner) { + const before = inner._zod.pattern?.source; + const after = partPattern(inner); + if (own2 && before && after && after !== before) { + return own2.replace(cleanRegex(before), () => cleanRegex(after)); + } + return own2; + } + if (def.options) { + const sources = def.options.map(partPattern); + if (sources.every(Boolean)) + return `^(${sources.map((s2) => cleanRegex(s2)).join("|")})$`; + } + return leafPattern(schema2); +} +__name(partPattern, "partPattern"); +var $ZodTemplateLiteral = /* @__PURE__ */ $constructor("$ZodTemplateLiteral", (inst, def) => { + $ZodType.init(inst, def); + const regexParts = []; + for (const part of def.parts) { + if (typeof part === "object" && part !== null) { + const source = partPattern(part); + if (!source) { + throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`); + } + regexParts.push(cleanRegex(source)); + } else if (part === null || primitiveTypes.has(typeof part)) { + regexParts.push(escapeRegex(`${part}`)); + } else { + throw new Error(`Invalid template literal part: ${part}`); + } + } + inst._zod.pattern = new RegExp(`^${regexParts.join("")}$`); + inst._zod.parse = (payload, _ctx) => { + if (typeof payload.value !== "string") { + payload.issues.push({ + input: payload.value, + inst, + expected: "string", + code: "invalid_type" + }); + return payload; + } + inst._zod.pattern.lastIndex = 0; + if (!inst._zod.pattern.test(payload.value)) { + payload.issues.push({ + input: payload.value, + inst, + code: "invalid_format", + format: def.format ?? "template_literal", + pattern: inst._zod.pattern.source + }); + return payload; + } + return payload; + }; +}); +var $ZodFunction = /* @__PURE__ */ $constructor("$ZodFunction", (inst, def) => { + $ZodType.init(inst, def); + Object.defineProperty(inst, "_def", { value: def }); + inst._zod.def = def; + inst.implement = (func) => { + if (typeof func !== "function") { + throw new Error("implement() must be called with a function"); + } + return Object.defineProperty(function(...args) { + const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args; + const result = Reflect.apply(func, this, parsedArgs); + if (inst._def.output) { + return parse(inst._def.output, result); + } + return result; + }, "_zod", { value: inst._zod, enumerable: false }); + }; + inst.implementAsync = (func) => { + if (typeof func !== "function") { + throw new Error("implementAsync() must be called with a function"); + } + return Object.defineProperty(async function(...args) { + const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args; + const result = await Reflect.apply(func, this, parsedArgs); + if (inst._def.output) { + return await parseAsync(inst._def.output, result); + } + return result; + }, "_zod", { value: inst._zod, enumerable: false }); + }; + inst._zod.parse = (payload, _ctx) => { + if (typeof payload.value !== "function") { + payload.issues.push({ + code: "invalid_type", + expected: "function", + input: payload.value, + inst + }); + return payload; + } + const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === "promise"; + if (hasPromiseOutput) { + payload.value = inst.implementAsync(payload.value); + } else { + payload.value = inst.implement(payload.value); + } + return payload; + }; + inst.input = (...args) => { + const F = inst.constructor; + if (Array.isArray(args[0])) { + return new F({ + type: "function", + input: new $ZodTuple({ + type: "tuple", + items: args[0], + rest: args[1] + }), + output: inst._def.output + }); + } + return new F({ + type: "function", + input: args[0], + output: inst._def.output + }); + }; + inst.output = (output2) => { + const F = inst.constructor; + return new F({ + type: "function", + input: inst._def.input, + output: output2 + }); + }; + return inst; +}); +var $ZodPromise = /* @__PURE__ */ $constructor("$ZodPromise", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx)); + }; +}); +var $ZodLazy = /* @__PURE__ */ $constructor("$ZodLazy", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "innerType", () => { + const d5 = def; + if (!d5._cachedInner) + d5._cachedInner = def.getter(); + return d5._cachedInner; + }); + defineLazyInternal(inst, "pattern", (zod) => zod.innerType?._zod?.pattern); + defineLazyInternal(inst, "propValues", (zod) => zod.innerType?._zod?.propValues); + defineLazyInternal(inst, "optin", (zod) => zod.innerType?._zod?.optin ?? void 0); + defineLazyInternal(inst, "optout", (zod) => zod.innerType?._zod?.optout ?? void 0); + inst._zod.parse = (payload, ctx) => { + const inner = inst._zod.innerType; + return inner._zod.run(payload, ctx); + }; +}); +var $ZodCustom = /* @__PURE__ */ $constructor("$ZodCustom", (inst, def) => { + $ZodCheck.init(inst, def); + $ZodType.init(inst, def); + inst._zod.parse = (payload, _) => { + return payload; + }; + inst._zod.check = (payload) => { + const input2 = payload.value; + const r5 = def.fn(input2); + if (r5 instanceof Promise) { + return r5.then((r6) => handleRefineResult(r6, payload, input2, inst)); + } + handleRefineResult(r5, payload, input2, inst); + return; + }; +}); +function handleRefineResult(result, payload, input2, inst) { + if (!result) { + const _iss = { + code: "custom", + input: input2, + inst, + // incorporates params.error into issue reporting + path: [...inst._zod.def.path ?? []], + // incorporates params.error into issue reporting + continue: !inst._zod.def.abort + // params: inst._zod.def.params, + }; + if (inst._zod.def.params) + _iss.params = inst._zod.def.params; + payload.issues.push(issue(_iss)); + } +} +__name(handleRefineResult, "handleRefineResult"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/memoizer.js +var $ZodCyclicError = class extends Error { + static { + __name(this, "$ZodCyclicError"); + } + constructor() { + super(`Cannot parse a reference cycle that closes through a transform`); + this.name = "ZodCyclicError"; + } +}; +var STATE = "~memo"; +var NO_ISSUES = []; +function isRef(value) { + return value !== null && typeof value === "object"; +} +__name(isRef, "isRef"); +function cloneIssues(issues) { + return issues.map((iss) => iss.path ? { ...iss, path: iss.path.slice() } : { ...iss }); +} +__name(cloneIssues, "cloneIssues"); +var recursive = /* @__PURE__ */ new WeakMap(); +var NONE = 0; +var ASSUMED = 1; +var PROVEN = 2; +function isRecursive(inst, stack, resolve) { + const cached2 = recursive.get(inst); + if (cached2 !== void 0) + return cached2 ? PROVEN : NONE; + if (stack.has(inst)) + return PROVEN; + stack.add(inst); + let result = NONE; + const check2 = /* @__PURE__ */ __name((child) => { + if (result !== PROVEN && child?._zod) { + const answer = isRecursive(child, stack, resolve); + if (answer > result) + result = answer; + } + }, "check"); + const shape = /* @__PURE__ */ __name((sh, spread) => { + let answer = NONE; + for (const key of Reflect.ownKeys(sh)) { + const desc = Object.getOwnPropertyDescriptor(sh, key); + if (spread && !desc.enumerable) + continue; + const child = desc.get ? ASSUMED : desc.value?._zod ? isRecursive(desc.value, stack, resolve) : NONE; + if (child > answer) + answer = child; + } + return answer; + }, "shape"); + const merge2 = /* @__PURE__ */ __name((answer) => { + if (answer > result) + result = answer; + }, "merge"); + const def = inst._zod.def; + const kind = def.type; + switch (kind) { + case "object": { + const raw4 = rawShape(def); + merge2(raw4 ? shape(raw4, true) : ASSUMED); + check2(def.catchall); + break; + } + case "array": + check2(def.element); + break; + case "tuple": + for (const el of def.items) + check2(el); + check2(def.rest); + break; + case "record": + case "map": + check2(def.keyType); + check2(def.valueType); + break; + case "set": + check2(def.valueType); + break; + case "union": + for (const el of def.options) + check2(el); + break; + case "intersection": + check2(def.left); + check2(def.right); + break; + case "optional": + case "nullable": + case "default": + case "prefault": + case "catch": + case "readonly": + case "nonoptional": + case "promise": + case "success": + check2(def.innerType); + break; + case "pipe": + check2(def.in); + check2(def.out); + break; + case "function": + check2(def.input); + check2(def.output); + break; + // `$ZodLazy` caches its inner on the def, so a resolved edge is followed exactly + case "lazy": { + const inner = def._cachedInner ?? (resolve ? inst._zod.innerType : void 0); + merge2(inner ? isRecursive(inner, stack, false) : ASSUMED); + break; + } + // a leaf by choice: `parts` are regex fragments, not data positions + case "template_literal": + // leaves + case "string": + case "number": + case "int": + case "boolean": + case "bigint": + case "symbol": + case "undefined": + case "null": + case "void": + case "never": + case "any": + case "unknown": + case "date": + case "nan": + case "enum": + case "literal": + case "file": + case "transform": + case "custom": + break; + default: { + kind; + for (const key in def) { + const desc = Object.getOwnPropertyDescriptor(def, key); + if (!desc || desc.get) + continue; + const value = desc.value; + if (!value || typeof value !== "object") + continue; + if (value._zod) + check2(value); + else if (Array.isArray(value)) + for (const el of value) + check2(el); + } + } + } + stack.delete(inst); + return settle(inst, result); +} +__name(isRecursive, "isRecursive"); +function settle(inst, answer) { + if (answer !== ASSUMED) + recursive.set(inst, answer === PROVEN); + return answer; +} +__name(settle, "settle"); +function isRecursiveSchema(inst) { + return isRecursive(inst, /* @__PURE__ */ new Set(), true) !== NONE; +} +__name(isRecursiveSchema, "isRecursiveSchema"); +function bucketFor(state2, inst) { + let bucket = state2.buckets.get(inst); + if (!bucket) { + bucket = /* @__PURE__ */ new WeakMap(); + state2.buckets.set(inst, bucket); + } + return bucket; +} +__name(bucketFor, "bucketFor"); +var handoff; +var open = []; +var memo = { + alloc(_inst, payload, empty4) { + const bucket = handoff; + if (!bucket) + return empty4; + handoff = void 0; + const entry = { value: empty4, issues: null }; + bucket.set(payload.value, entry); + open.push(entry); + return empty4; + }, + guard(inst) { + var _a4; + (_a4 = inst._zod).deferred ?? (_a4.deferred = []); + inst._zod.deferred.push(() => { + const base = inst._zod.parse; + const wrapped = /* @__PURE__ */ __name((payload, ctx) => { + if (ctx.direction !== "backward" && isBackEdge(ctx, payload.value)) + throw new $ZodCyclicError(); + return base(payload, ctx); + }, "wrapped"); + inst._zod.parse = wrapped; + if (inst._zod.run === base) + inst._zod.run = wrapped; + }); + }, + attach(inst) { + var _a4; + let isRecursiveInst; + let rechecked = false; + let lastCtx; + let lastBucket; + (_a4 = inst._zod).deferred ?? (_a4.deferred = []); + inst._zod.deferred.push(() => { + const base = inst._zod.parse; + const wrapped = /* @__PURE__ */ __name((payload, ctx) => { + if (isRecursiveInst === void 0) { + const walked = isRecursive(inst, /* @__PURE__ */ new Set(), false); + if (walked === NONE) { + inst._zod.parse = base; + if (inst._zod.run === wrapped) + inst._zod.run = base; + return base(payload, ctx); + } + if (walked === PROVEN || rechecked) + isRecursiveInst = true; + else + rechecked = true; + } + const input2 = payload.value; + if (!isRef(input2)) + return base(payload, ctx); + let state2 = ctx[STATE]; + if (!state2) { + state2 = { buckets: /* @__PURE__ */ new WeakMap(), backEdges: void 0 }; + ctx[STATE] = state2; + } + let bucket; + if (lastCtx === ctx) { + bucket = lastBucket; + } else { + bucket = bucketFor(state2, inst); + lastCtx = ctx; + lastBucket = bucket; + } + const hit = bucket.get(input2); + if (hit) { + payload.value = hit.value; + if (hit.issues) { + if (hit.issues.length) + payload.issues.push(...cloneIssues(hit.issues)); + } else { + payload.memo = true; + state2.backEdges ?? (state2.backEdges = /* @__PURE__ */ new WeakSet()); + state2.backEdges.add(hit.value); + } + return payload; + } + handoff = bucket; + const depth = open.length; + const result = base(payload, ctx); + handoff = void 0; + const entry = open.length > depth ? open.pop() : void 0; + if (result instanceof Promise) { + return result.then((r5) => { + if (entry) + entry.issues = r5.issues.length ? cloneIssues(r5.issues) : NO_ISSUES; + return r5; + }); + } + if (entry) + entry.issues = result.issues.length ? cloneIssues(result.issues) : NO_ISSUES; + return result; + }, "wrapped"); + inst._zod.parse = wrapped; + if (inst._zod.run === base) + inst._zod.run = wrapped; + }); + } +}; +function memoizer() { + return memo; +} +__name(memoizer, "memoizer"); +function isBackEdge(ctx, value) { + const backEdges = ctx[STATE]?.backEdges; + return backEdges !== void 0 && isRef(value) && backEdges.has(value); +} +__name(isBackEdge, "isBackEdge"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/index.js +var locales_exports = {}; +__export(locales_exports, { + ar: () => ar_default, + az: () => az_default, + be: () => be_default, + bg: () => bg_default, + bn: () => bn_default, + ca: () => ca_default, + ckb: () => ckb_default, + cs: () => cs_default, + da: () => da_default, + de: () => de_default, + el: () => el_default, + en: () => en_default, + eo: () => eo_default, + es: () => es_default, + fa: () => fa_default, + fi: () => fi_default, + fr: () => fr_default, + frCA: () => fr_CA_default, + gu: () => gu_default, + he: () => he_default, + hi: () => hi_default, + hr: () => hr_default, + hu: () => hu_default, + hy: () => hy_default, + id: () => id_default, + is: () => is_default, + it: () => it_default, + ja: () => ja_default, + ka: () => ka_default, + kh: () => kh_default, + km: () => km_default, + kn: () => kn_default, + ko: () => ko_default, + lt: () => lt_default, + mk: () => mk_default, + ms: () => ms_default, + ne: () => ne_default, + nl: () => nl_default, + nn: () => nn_default, + no: () => no_default, + ota: () => ota_default, + pl: () => pl_default, + ps: () => ps_default, + pt: () => pt_default, + ptBR: () => pt_BR_default, + ro: () => ro_default, + ru: () => ru_default, + sk: () => sk_default, + sl: () => sl_default, + sv: () => sv_default, + ta: () => ta_default, + tg: () => tg_default, + th: () => th_default, + tk: () => tk_default, + tr: () => tr_default, + ua: () => ua_default, + uk: () => uk_default, + ur: () => ur_default, + uz: () => uz_default, + vi: () => vi_default, + yo: () => yo_default, + zhCN: () => zh_CN_default, + zhTW: () => zh_TW_default +}); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ar.js +var error = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, + file: { unit: "\u0628\u0627\u064A\u062A", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, + array: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, + set: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, + map: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0645\u062F\u062E\u0644", + email: "\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A", + url: "\u0631\u0627\u0628\u0637", + emoji: "\u0625\u064A\u0645\u0648\u062C\u064A", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO", + date: "\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO", + time: "\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO", + duration: "\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO", + ipv4: "\u0639\u0646\u0648\u0627\u0646 IPv4", + ipv6: "\u0639\u0646\u0648\u0627\u0646 IPv6", + mac: "\u0639\u0646\u0648\u0627\u0646 MAC", + cidrv4: "\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4", + cidrv6: "\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6", + base64: "\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded", + base64url: "\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded", + json_string: "\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON", + e164: "\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164", + credit_card: "\u0631\u0642\u0645 \u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0627\u0626\u062A\u0645\u0627\u0646", + currency_code: "\u0631\u0645\u0632 \u0627\u0644\u0639\u0645\u0644\u0629", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0645\u062F\u062E\u0644" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${issue2.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`; + } + return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return ` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue2.origin ?? "\u0627\u0644\u0642\u064A\u0645\u0629"} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0635\u0631"}`; + return `\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue2.origin ?? "\u0627\u0644\u0642\u064A\u0645\u0629"} ${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue2.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue2.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${issue2.prefix}"`; + if (_issue.format === "ends_with") + return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${_issue.pattern}`; + return `${FormatDictionary[_issue.format] ?? issue2.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`; + } + case "not_multiple_of": + return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${issue2.divisor}`; + case "unrecognized_keys": + return `\u0645\u0639\u0631\u0641${issue2.keys.length > 1 ? "\u0627\u062A" : ""} \u063A\u0631\u064A\u0628${issue2.keys.length > 1 ? "\u0629" : ""}: ${joinValues(issue2.keys, "\u060C ")}`; + case "invalid_key": + return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue2.origin}`; + case "invalid_union": + return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"; + case "invalid_element": + return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue2.origin}`; + default: + return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"; + } + }; +}, "error"); +function ar_default() { + return { + localeError: error() + }; +} +__name(ar_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/az.js +var error2 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "simvol", verb: "olmal\u0131d\u0131r" }, + file: { unit: "bayt", verb: "olmal\u0131d\u0131r" }, + array: { unit: "element", verb: "olmal\u0131d\u0131r" }, + set: { unit: "element", verb: "olmal\u0131d\u0131r" }, + map: { unit: "element", verb: "olmal\u0131d\u0131r" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "email address", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO datetime", + date: "ISO date", + time: "ISO time", + duration: "ISO duration", + ipv4: "IPv4 address", + ipv6: "IPv6 address", + mac: "MAC address", + cidrv4: "IPv4 range", + cidrv6: "IPv6 range", + base64: "base64-encoded string", + base64url: "base64url-encoded string", + json_string: "JSON string", + e164: "E.164 number", + credit_card: "kredit kart\u0131 n\xF6mr\u0259si", + currency_code: "valyuta kodu", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n instanceof ${issue2.expected}, daxil olan ${received}`; + } + return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${expected}, daxil olan ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${stringifyPrimitive(issue2.values[0])}`; + return `Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${issue2.origin ?? "d\u0259y\u0259r"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; + return `\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${issue2.origin ?? "d\u0259y\u0259r"} ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + return `\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${issue2.origin} ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Yanl\u0131\u015F m\u0259tn: "${_issue.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`; + if (_issue.format === "ends_with") + return `Yanl\u0131\u015F m\u0259tn: "${_issue.suffix}" il\u0259 bitm\u0259lidir`; + if (_issue.format === "includes") + return `Yanl\u0131\u015F m\u0259tn: "${_issue.includes}" daxil olmal\u0131d\u0131r`; + if (_issue.format === "regex") + return `Yanl\u0131\u015F m\u0259tn: ${_issue.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`; + return `Yanl\u0131\u015F ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Yanl\u0131\u015F \u0259d\u0259d: ${issue2.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`; + case "unrecognized_keys": + return `Tan\u0131nmayan a\xE7ar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`; + case "invalid_union": + return "Yanl\u0131\u015F d\u0259y\u0259r"; + case "invalid_element": + return `${issue2.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`; + default: + return `Yanl\u0131\u015F d\u0259y\u0259r`; + } + }; +}, "error"); +function az_default() { + return { + localeError: error2() + }; +} +__name(az_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/be.js +function getBelarusianPlural(count, one, few, many) { + const absCount = Math.abs(count); + const lastDigit = absCount % 10; + const lastTwoDigits = absCount % 100; + if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { + return many; + } + if (lastDigit === 1) { + return one; + } + if (lastDigit >= 2 && lastDigit <= 4) { + return few; + } + return many; +} +__name(getBelarusianPlural, "getBelarusianPlural"); +var error3 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { + unit: { + one: "\u0441\u0456\u043C\u0432\u0430\u043B", + few: "\u0441\u0456\u043C\u0432\u0430\u043B\u044B", + many: "\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E" + }, + verb: "\u043C\u0435\u0446\u044C" + }, + array: { + unit: { + one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", + few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", + many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" + }, + verb: "\u043C\u0435\u0446\u044C" + }, + set: { + unit: { + one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", + few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", + many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" + }, + verb: "\u043C\u0435\u0446\u044C" + }, + map: { + unit: { + one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", + few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", + many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" + }, + verb: "\u043C\u0435\u0446\u044C" + }, + file: { + unit: { + one: "\u0431\u0430\u0439\u0442", + few: "\u0431\u0430\u0439\u0442\u044B", + many: "\u0431\u0430\u0439\u0442\u0430\u045E" + }, + verb: "\u043C\u0435\u0446\u044C" + } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0443\u0432\u043E\u0434", + email: "email \u0430\u0434\u0440\u0430\u0441", + url: "URL", + emoji: "\u044D\u043C\u043E\u0434\u0437\u0456", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441", + date: "ISO \u0434\u0430\u0442\u0430", + time: "ISO \u0447\u0430\u0441", + duration: "ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C", + ipv4: "IPv4 \u0430\u0434\u0440\u0430\u0441", + ipv6: "IPv6 \u0430\u0434\u0440\u0430\u0441", + mac: "MAC \u0430\u0434\u0440\u0430\u0441", + cidrv4: "IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D", + cidrv6: "IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D", + base64: "\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64", + base64url: "\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url", + json_string: "JSON \u0440\u0430\u0434\u043E\u043A", + e164: "\u043D\u0443\u043C\u0430\u0440 E.164", + credit_card: "\u043D\u0443\u043C\u0430\u0440 \u043A\u0440\u044D\u0434\u044B\u0442\u043D\u0430\u0439 \u043A\u0430\u0440\u0442\u044B", + currency_code: "\u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u044B", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0443\u0432\u043E\u0434" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u043B\u0456\u043A", + array: "\u043C\u0430\u0441\u0456\u045E" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${issue2.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`; + } + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${stringifyPrimitive(issue2.values[0])}`; + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + const maxValue = Number(issue2.maximum); + const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); + return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue2.maximum.toString()} ${unit}`; + } + return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + const minValue = Number(issue2.minimum); + const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); + return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue2.minimum.toString()} ${unit}`; + } + return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue2.divisor}`; + case "unrecognized_keys": + return `\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${issue2.keys.length > 1 ? "\u043A\u043B\u044E\u0447\u044B" : "\u043A\u043B\u044E\u0447"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${issue2.origin}`; + case "invalid_union": + return "\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"; + case "invalid_element": + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${issue2.origin}`; + default: + return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434`; + } + }; +}, "error"); +function be_default() { + return { + localeError: error3() + }; +} +__name(be_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/bg.js +var error4 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, + file: { unit: "\u0431\u0430\u0439\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, + array: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, + set: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, + map: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0432\u0445\u043E\u0434", + email: "\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441", + url: "URL", + emoji: "\u0435\u043C\u043E\u0434\u0436\u0438", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0432\u0440\u0435\u043C\u0435", + date: "ISO \u0434\u0430\u0442\u0430", + time: "ISO \u0432\u0440\u0435\u043C\u0435", + duration: "ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442", + ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441", + ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441", + mac: "MAC \u0430\u0434\u0440\u0435\u0441", + cidrv4: "IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", + cidrv6: "IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", + base64: "base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437", + base64url: "base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437", + json_string: "JSON \u043D\u0438\u0437", + e164: "E.164 \u043D\u043E\u043C\u0435\u0440", + credit_card: "\u043D\u043E\u043C\u0435\u0440 \u043D\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u0430 \u043A\u0430\u0440\u0442\u0430", + currency_code: "\u043A\u043E\u0434 \u043D\u0430 \u0432\u0430\u043B\u0443\u0442\u0430", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0432\u0445\u043E\u0434" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0447\u0438\u0441\u043B\u043E", + array: "\u043C\u0430\u0441\u0438\u0432" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${issue2.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`; + } + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${stringifyPrimitive(issue2.values[0])}`; + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin ?? "\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`; + return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin ?? "\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${_issue.pattern}`; + let invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D"; + if (_issue.format === "emoji") + invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; + if (_issue.format === "datetime") + invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; + if (_issue.format === "date") + invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"; + if (_issue.format === "time") + invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; + if (_issue.format === "duration") + invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"; + return `${invalid_adj} ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${issue2.divisor}`; + case "unrecognized_keys": + return `\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${issue2.keys.length > 1 ? "\u0438" : ""} \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u043E\u0432\u0435" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${issue2.origin}`; + case "invalid_union": + return "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"; + case "invalid_element": + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${issue2.origin}`; + default: + return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434`; + } + }; +}, "error"); +function bg_default() { + return { + localeError: error4() + }; +} +__name(bg_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/bn.js +var error5 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0985\u0995\u09CD\u09B7\u09B0", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, + file: { unit: "\u09AC\u09BE\u0987\u099F", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, + array: { unit: "\u0986\u0987\u099F\u09C7\u09AE", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, + set: { unit: "\u0986\u0987\u099F\u09C7\u09AE", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, + map: { unit: "\u098F\u09A8\u09CD\u099F\u09CD\u09B0\u09BF", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0987\u09A8\u09AA\u09C1\u099F", + email: "\u0987\u09AE\u09C7\u0987\u09B2 \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", + url: "URL", + emoji: "\u0987\u09AE\u09CB\u099C\u09BF", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u09A4\u09BE\u09B0\u09BF\u0996 \u0993 \u09B8\u09AE\u09AF\u09BC", + date: "ISO \u09A4\u09BE\u09B0\u09BF\u0996", + time: "ISO \u09B8\u09AE\u09AF\u09BC", + duration: "ISO \u09B8\u09AE\u09AF\u09BC\u0995\u09BE\u09B2", + ipv4: "IPv4 \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", + ipv6: "IPv6 \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", + mac: "MAC \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", + cidrv4: "IPv4 \u09B0\u09C7\u099E\u09CD\u099C", + cidrv6: "IPv6 \u09B0\u09C7\u099E\u09CD\u099C", + base64: "base64-\u098F\u09A8\u0995\u09CB\u09A1\u09C7\u09A1 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982", + base64url: "base64url-\u098F\u09A8\u0995\u09CB\u09A1\u09C7\u09A1 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982", + json_string: "JSON \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982", + e164: "E.164 \u09A8\u09AE\u09CD\u09AC\u09B0", + credit_card: "\u0995\u09CD\u09B0\u09C7\u09A1\u09BF\u099F \u0995\u09BE\u09B0\u09CD\u09A1 \u09A8\u09AE\u09CD\u09AC\u09B0", + currency_code: "\u09AE\u09C1\u09A6\u09CD\u09B0\u09BE \u0995\u09CB\u09A1", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0987\u09A8\u09AA\u09C1\u099F" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F: \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4 ${expected}, \u09AA\u09CD\u09B0\u09BE\u09AA\u09CD\u09A4 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F: \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0985\u09AC\u09C8\u09A7 \u0985\u09AA\u09B6\u09A8: ${joinValues(issue2.values, " | ")} \u098F\u09B0 \u09AE\u09A7\u09CD\u09AF\u09C7 \u098F\u0995\u099F\u09BF \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0985\u09A8\u09C7\u0995 \u09AC\u09A1\u09BC: ${issue2.origin ?? "\u09AE\u09BE\u09A8"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u098F\u09B2\u09BF\u09AE\u09C7\u09A8\u09CD\u099F"} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; + return `\u0985\u09A8\u09C7\u0995 \u09AC\u09A1\u09BC: ${issue2.origin ?? "\u09AE\u09BE\u09A8"} ${adj}${issue2.maximum.toString()} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0985\u09A8\u09C7\u0995 \u099B\u09CB\u099F: ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; + } + return `\u0985\u09A8\u09C7\u0995 \u099B\u09CB\u099F: ${issue2.origin} ${adj}${issue2.minimum.toString()} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: "${_issue.prefix}" \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B6\u09C1\u09B0\u09C1 \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; + } + if (_issue.format === "ends_with") + return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: "${_issue.suffix}" \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B6\u09C7\u09B7 \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; + if (_issue.format === "includes") + return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: "${_issue.includes}" \u0985\u09A8\u09CD\u09A4\u09B0\u09CD\u09AD\u09C1\u0995\u09CD\u09A4 \u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7`; + if (_issue.format === "regex") + return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: ${_issue.pattern} \u09AA\u09CD\u09AF\u09BE\u099F\u09BE\u09B0\u09CD\u09A8 \u09AE\u09BF\u09B2\u09A4\u09C7 \u09B9\u09AC\u09C7`; + return `\u0985\u09AC\u09C8\u09A7 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0985\u09AC\u09C8\u09A7 \u09A8\u09AE\u09CD\u09AC\u09B0: ${issue2.divisor} \u098F\u09B0 \u0997\u09C1\u09A3\u09BF\u09A4\u0995 \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; + case "unrecognized_keys": + return `\u0985\u099A\u09C7\u09A8\u09BE \u0995\u09C0${issue2.keys.length > 1 ? "\u0997\u09C1\u09B2\u09CB" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} \u098F \u0985\u09AC\u09C8\u09A7 \u0995\u09C0`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `\u0985\u09AC\u09C8\u09A7 \u09A1\u09BF\u09B8\u0995\u09CD\u09B0\u09BF\u09AE\u09BF\u09A8\u09C7\u099F\u09B0 \u09AE\u09BE\u09A8\u0964 \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4 ${opts}`; + } + return "\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F"; + case "invalid_element": + return `${issue2.origin} \u098F \u0985\u09AC\u09C8\u09A7 \u09AE\u09BE\u09A8`; + default: + return "\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F"; + } + }; +}, "error"); +function bn_default() { + return { + localeError: error5() + }; +} +__name(bn_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ca.js +var error6 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "car\xE0cters", verb: "contenir" }, + file: { unit: "bytes", verb: "contenir" }, + array: { unit: "elements", verb: "contenir" }, + set: { unit: "elements", verb: "contenir" }, + map: { unit: "elements", verb: "contenir" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "entrada", + email: "adre\xE7a electr\xF2nica", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "data i hora ISO", + date: "data ISO", + time: "hora ISO", + duration: "durada ISO", + ipv4: "adre\xE7a IPv4", + ipv6: "adre\xE7a IPv6", + mac: "adre\xE7a MAC", + cidrv4: "rang IPv4", + cidrv6: "rang IPv6", + base64: "cadena codificada en base64", + base64url: "cadena codificada en base64url", + json_string: "cadena JSON", + e164: "n\xFAmero E.164", + credit_card: "n\xFAmero de targeta de cr\xE8dit", + currency_code: "codi de moneda", + iban: "IBAN", + jwt: "JWT", + template_literal: "entrada" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Tipus inv\xE0lid: s'esperava instanceof ${issue2.expected}, s'ha rebut ${received}`; + } + return `Tipus inv\xE0lid: s'esperava ${expected}, s'ha rebut ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Valor inv\xE0lid: s'esperava ${stringifyPrimitive(issue2.values[0])}`; + return `Opci\xF3 inv\xE0lida: s'esperava una de ${joinValues(issue2.values, " o ")}`; + case "too_big": { + const adj = issue2.inclusive ? "com a m\xE0xim" : "menys de"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Massa gran: s'esperava que ${issue2.origin ?? "el valor"} contingu\xE9s ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elements"}`; + return `Massa gran: s'esperava que ${issue2.origin ?? "el valor"} fos ${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? "com a m\xEDnim" : "m\xE9s de"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Massa petit: s'esperava que ${issue2.origin} contingu\xE9s ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Massa petit: s'esperava que ${issue2.origin} fos ${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Format inv\xE0lid: ha de comen\xE7ar amb "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `Format inv\xE0lid: ha d'acabar amb "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Format inv\xE0lid: ha d'incloure "${_issue.includes}"`; + if (_issue.format === "regex") + return `Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${_issue.pattern}`; + return `Format inv\xE0lid per a ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${issue2.divisor}`; + case "unrecognized_keys": + return `Clau${issue2.keys.length > 1 ? "s" : ""} no reconeguda${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Clau inv\xE0lida a ${issue2.origin}`; + case "invalid_union": + return "Entrada inv\xE0lida"; + // Could also be "Tipus d'unió invàlid" but "Entrada invàlida" is more general + case "invalid_element": + return `Element inv\xE0lid a ${issue2.origin}`; + default: + return `Entrada inv\xE0lida`; + } + }; +}, "error"); +function ca_default() { + return { + localeError: error6() + }; +} +__name(ca_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ckb.js +var error7 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u067E\u06CC\u062A", verb: "\u0628\u06CE\u062A" }, + file: { unit: "\u0628\u0627\u06CC\u062A", verb: "\u0628\u06CE\u062A" }, + array: { unit: "\u062F\u0627\u0646\u06D5", verb: "\u0628\u06CE\u062A" }, + set: { unit: "\u062F\u0627\u0646\u06D5", verb: "\u0628\u06CE\u062A" }, + map: { unit: "\u062F\u0627\u0646\u06D5", verb: "\u0628\u06CE\u062A" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "regex", + email: "\u0626\u06CC\u0645\u06D5\u06CC\u06B5", + url: "\u0628\u06D5\u0633\u062A\u06D5\u0631 (URL)", + emoji: "\u0626\u06CC\u0645\u06C6\u062C\u06CC", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u0695\u06CE\u06A9\u06D5\u0648\u062A \u0648 \u06A9\u0627\u062A", + date: "\u0695\u06CE\u06A9\u06D5\u0648\u062A", + time: "\u06A9\u0627\u062A", + duration: "\u0645\u0627\u0648\u06D5", + ipv4: "\u0646\u0627\u0648\u0646\u06CC\u0634\u0627\u0646\u06CC IPv4", + ipv6: "\u0646\u0627\u0648\u0646\u06CC\u0634\u0627\u0646\u06CC IPv6", + mac: "\u0646\u0627\u0648\u0646\u06CC\u0634\u0627\u0646\u06CC MAC", + cidrv4: "\u0645\u06D5\u0648\u062F\u0627\u06CC IPv4", + cidrv6: "\u0645\u06D5\u0648\u062F\u0627\u06CC IPv6", + base64: "\u062F\u06D5\u0642\u06CC base64", + base64url: "\u062F\u06D5\u0642\u06CC base64url", + json_string: "\u062F\u06D5\u0642\u06CC JSON", + e164: "\u0698\u0645\u0627\u0631\u06D5\u06CC E.164", + credit_card: "\u0698\u0645\u0627\u0631\u06D5\u06CC \u06A9\u0627\u0631\u062A\u06CC \u06A9\u0631\u06CE\u062F\u06CC\u062A", + currency_code: "\u06A9\u06C6\u062F\u06CC \u062F\u0631\u0627\u0648", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u062A\u06CE\u06A9\u0631\u062F\u06D5" + }; + const TypeDictionary = { + nan: "NaN", + string: "\u0646\u0648\u0648\u0633\u06CC\u0646", + number: "\u0698\u0645\u0627\u0631\u06D5", + boolean: "boolean", + array: "array", + object: "object", + date: "\u0695\u06CE\u06A9\u06D5\u0648\u062A", + integer: "\u0698\u0645\u0627\u0631\u06D5", + float: "\u0698\u0645\u0627\u0631\u06D5", + null: "null", + undefined: "undefined", + function: "function", + symbol: "symbol", + unknown: "unknown", + promise: "promise", + void: "void", + never: "never", + map: "map", + set: "set" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + const postfix = ["\u0627", "\u0648", "\u06C6", "\u0648\u0648", "\u06D5", "\u06CC", "\u06CE"].some((p3) => received.endsWith(p3)) ? "\u06CC\u06D5" : "\u06D5"; + const isEnglish = /^[a-zA-Z]+$/.test(received); + if (receivedType === "null" || receivedType === "undefined") + return `\u062F\u0627\u0648\u0627\u06A9\u0631\u0627\u0648\u06D5`; + return `\u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648\u06D5 ${expected} \u0628\u06CE\u062A\u060C \u0628\u06D5\u06B5\u0627\u0645 ${received}${isEnglish ? "" : postfix}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0628\u06D5\u0647\u0627\u06A9\u06D5 \u0646\u0627\u062F\u0631\u0648\u0648\u0633\u062A\u06D5: \u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648\u06D5 ${stringifyPrimitive(issue2.values[0])} \u0628\u06CE\u062A`; + return `\u0647\u06D5\u06B5\u0628\u0698\u0627\u0631\u062F\u06D5\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648\u06D5 \u06CC\u06D5\u06A9\u06CE\u06A9 \u0628\u06CE\u062A \u0644\u06D5 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u0632\u06C6\u0631\u06D5\u0648\u06D5 ${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; + return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u0632\u06C6\u0631\u06D5\u0648\u06D5 ${issue2.maximum.toString()} \u0628\u06CE\u062A`; + } + case "too_small": { + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u06A9\u06D5\u0645\u06D5\u0648\u06D5 ${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; + return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u06A9\u06D5\u0645\u06D5\u0648\u06D5 ${issue2.minimum.toString()} \u0628\u06CE\u062A`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u062F\u06D5\u0633\u062A\u067E\u06CE\u0628\u06A9\u0627\u062A \u0628\u06D5 "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u06A9\u06C6\u062A\u0627\u06CC\u06CC\u0628\u06CE\u062A \u0628\u06D5 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 "${_issue.includes}" \u0644\u06D5\u062E\u06C6\u0628\u06AF\u0631\u06CE\u062A`; + if (_issue.format === "regex") + return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0644\u06D5\u06AF\u06D5\u06B5 \u067E\u0627\u062A\u06CE\u0631\u0646\u06CC ${_issue.pattern} \u0628\u06AF\u0648\u0646\u062C\u06CE\u062A`; + return `\u0628\u06D5\u0647\u0627\u06CC ${FormatDictionary[_issue.format] ?? issue2.format} \u0646\u0627\u062F\u0631\u0648\u0633\u062A\u06D5`; + } + case "not_multiple_of": + return `\u0698\u0645\u0627\u0631\u06D5\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u062F\u06D5\u0628\u06CE\u062A \u0686\u06D5\u0646\u062F \u0647\u06CE\u0646\u062F\u06D5 \u0628\u06CE\u062A \u0628\u06C6 ${issue2.divisor}`; + case "unrecognized_keys": + return `\u06A9\u0644\u06CC\u0644\u06CC \u0646\u06D5\u0646\u0627\u0633\u0631\u0627\u0648: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u06A9\u0644\u06CC\u0644\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A \u0644\u06D5 ${issue2.origin}`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `\u0628\u06D5\u0647\u0627\u06CC \u0646\u06D5\u0646\u0627\u0633\u0631\u0627\u0648 \u0647\u06D5\u06CC\u06D5. \u0628\u06D5\u0647\u0627\u06CC \u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648: ${opts}`; + } + return "\u06CC\u06D5\u06A9\u06AF\u0631\u062A\u0646\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A"; + case "invalid_element": + return `${issue2.origin} \u0628\u06D5\u0647\u0627\u06A9\u06D5 \u0646\u0627\u062F\u0631\u0648\u0633\u062A\u06D5`; + default: + return `\u062A\u06CE\u06A9\u0631\u062F\u06D5\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A`; + } + }; +}, "error"); +function ckb_default() { + return { + localeError: error7() + }; +} +__name(ckb_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/cs.js +var error8 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "znak\u016F", verb: "m\xEDt" }, + file: { unit: "bajt\u016F", verb: "m\xEDt" }, + array: { unit: "prvk\u016F", verb: "m\xEDt" }, + set: { unit: "prvk\u016F", verb: "m\xEDt" }, + map: { unit: "prvk\u016F", verb: "m\xEDt" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "regul\xE1rn\xED v\xFDraz", + email: "e-mailov\xE1 adresa", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "datum a \u010Das ve form\xE1tu ISO", + date: "datum ve form\xE1tu ISO", + time: "\u010Das ve form\xE1tu ISO", + duration: "doba trv\xE1n\xED ISO", + ipv4: "IPv4 adresa", + ipv6: "IPv6 adresa", + mac: "MAC adresa", + cidrv4: "rozsah IPv4", + cidrv6: "rozsah IPv6", + base64: "\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64", + base64url: "\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url", + json_string: "\u0159et\u011Bzec ve form\xE1tu JSON", + e164: "\u010D\xEDslo E.164", + credit_card: "\u010D\xEDslo kreditn\xED karty", + currency_code: "k\xF3d m\u011Bny", + iban: "IBAN", + jwt: "JWT", + template_literal: "vstup" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u010D\xEDslo", + string: "\u0159et\u011Bzec", + function: "funkce", + array: "pole" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no instanceof ${issue2.expected}, obdr\u017Eeno ${received}`; + } + return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${expected}, obdr\u017Eeno ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${stringifyPrimitive(issue2.values[0])}`; + return `Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${issue2.origin ?? "hodnota"} mus\xED m\xEDt ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "prvk\u016F"}`; + } + return `Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${issue2.origin ?? "hodnota"} mus\xED b\xFDt ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED m\xEDt ${adj}${issue2.minimum.toString()} ${sizing.unit ?? "prvk\u016F"}`; + } + return `Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED b\xFDt ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${_issue.includes}"`; + if (_issue.format === "regex") + return `Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${_issue.pattern}`; + return `Neplatn\xFD form\xE1t ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${issue2.divisor}`; + case "unrecognized_keys": + return `Nezn\xE1m\xE9 kl\xED\u010De: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Neplatn\xFD kl\xED\u010D v ${issue2.origin}`; + case "invalid_union": + return "Neplatn\xFD vstup"; + case "invalid_element": + return `Neplatn\xE1 hodnota v ${issue2.origin}`; + default: + return `Neplatn\xFD vstup`; + } + }; +}, "error"); +function cs_default() { + return { + localeError: error8() + }; +} +__name(cs_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/da.js +var error9 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "tegn", verb: "havde" }, + file: { unit: "bytes", verb: "havde" }, + array: { unit: "elementer", verb: "indeholdt" }, + set: { unit: "elementer", verb: "indeholdt" }, + map: { unit: "elementer", verb: "indeholdt" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "e-mailadresse", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO dato- og klokkesl\xE6t", + date: "ISO-dato", + time: "ISO-klokkesl\xE6t", + duration: "ISO-varighed", + ipv4: "IPv4-adresse", + ipv6: "IPv6-adresse", + mac: "MAC-adresse", + cidrv4: "IPv4-spektrum", + cidrv6: "IPv6-spektrum", + base64: "base64-kodet streng", + base64url: "base64url-kodet streng", + json_string: "JSON-streng", + e164: "E.164-nummer", + credit_card: "kreditkortnummer", + currency_code: "valutakode", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN", + string: "streng", + number: "tal", + boolean: "boolean", + array: "liste", + object: "objekt", + set: "s\xE6t", + file: "fil" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Ugyldigt input: forventede instanceof ${issue2.expected}, fik ${received}`; + } + return `Ugyldigt input: forventede ${expected}, fik ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Ugyldig v\xE6rdi: forventede ${stringifyPrimitive(issue2.values[0])}`; + return `Ugyldigt valg: forventede en af f\xF8lgende ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + if (sizing) + return `For stor: forventede ${origin ?? "value"} ${sizing.verb} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elementer"}`; + return `For stor: forventede ${origin ?? "value"} havde ${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + if (sizing) { + return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; + } + return `For lille: forventede ${origin} havde ${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Ugyldig streng: skal starte med "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Ugyldig streng: skal ende med "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Ugyldig streng: skal indeholde "${_issue.includes}"`; + if (_issue.format === "regex") + return `Ugyldig streng: skal matche m\xF8nsteret ${_issue.pattern}`; + return `Ugyldig ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Ugyldigt tal: skal v\xE6re deleligt med ${issue2.divisor}`; + case "unrecognized_keys": + return `${issue2.keys.length > 1 ? "Ukendte n\xF8gler" : "Ukendt n\xF8gle"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Ugyldig n\xF8gle i ${issue2.origin}`; + case "invalid_union": + return "Ugyldigt input: matcher ingen af de tilladte typer"; + case "invalid_element": + return `Ugyldig v\xE6rdi i ${issue2.origin}`; + default: + return `Ugyldigt input`; + } + }; +}, "error"); +function da_default() { + return { + localeError: error9() + }; +} +__name(da_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/de.js +var error10 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "Zeichen", verb: "zu haben" }, + file: { unit: "Bytes", verb: "zu haben" }, + array: { unit: "Elemente", verb: "zu haben" }, + set: { unit: "Elemente", verb: "zu haben" }, + map: { unit: "Elemente", verb: "zu haben" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "Eingabe", + email: "E-Mail-Adresse", + url: "URL", + emoji: "Emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO-Datum und -Uhrzeit", + date: "ISO-Datum", + time: "ISO-Uhrzeit", + duration: "ISO-Dauer", + ipv4: "IPv4-Adresse", + ipv6: "IPv6-Adresse", + mac: "MAC-Adresse", + cidrv4: "IPv4-Bereich", + cidrv6: "IPv6-Bereich", + base64: "Base64-codierter String", + base64url: "Base64-URL-codierter String", + json_string: "JSON-String", + e164: "E.164-Nummer", + credit_card: "Kreditkartennummer", + currency_code: "W\xE4hrungscode", + iban: "IBAN", + jwt: "JWT", + template_literal: "Eingabe" + }; + const TypeDictionary = { + nan: "NaN", + number: "Zahl", + array: "Array" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Ung\xFCltige Eingabe: erwartet instanceof ${issue2.expected}, erhalten ${received}`; + } + return `Ung\xFCltige Eingabe: erwartet ${expected}, erhalten ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Ung\xFCltige Eingabe: erwartet ${stringifyPrimitive(issue2.values[0])}`; + return `Ung\xFCltige Option: erwartet eine von ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Zu gro\xDF: erwartet, dass ${issue2.origin ?? "Wert"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "Elemente"} hat`; + return `Zu gro\xDF: erwartet, dass ${issue2.origin ?? "Wert"} ${adj}${issue2.maximum.toString()} ist`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Zu klein: erwartet, dass ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} hat`; + } + return `Zu klein: erwartet, dass ${issue2.origin} ${adj}${issue2.minimum.toString()} ist`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Ung\xFCltiger String: muss mit "${_issue.prefix}" beginnen`; + if (_issue.format === "ends_with") + return `Ung\xFCltiger String: muss mit "${_issue.suffix}" enden`; + if (_issue.format === "includes") + return `Ung\xFCltiger String: muss "${_issue.includes}" enthalten`; + if (_issue.format === "regex") + return `Ung\xFCltiger String: muss dem Muster ${_issue.pattern} entsprechen`; + return `Ung\xFCltig: ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Ung\xFCltige Zahl: muss ein Vielfaches von ${issue2.divisor} sein`; + case "unrecognized_keys": + return `${issue2.keys.length > 1 ? "Unbekannte Schl\xFCssel" : "Unbekannter Schl\xFCssel"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Ung\xFCltiger Schl\xFCssel in ${issue2.origin}`; + case "invalid_union": + return "Ung\xFCltige Eingabe"; + case "invalid_element": + return `Ung\xFCltiger Wert in ${issue2.origin}`; + default: + return `Ung\xFCltige Eingabe`; + } + }; +}, "error"); +function de_default() { + return { + localeError: error10() + }; +} +__name(de_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/el.js +var error11 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, + file: { unit: "bytes", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, + array: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, + set: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, + map: { unit: "\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2", + email: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1", + date: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1", + time: "ISO \u03CE\u03C1\u03B1", + duration: "ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1", + ipv4: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4", + ipv6: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6", + mac: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC", + cidrv4: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4", + cidrv6: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6", + base64: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64", + base64url: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url", + json_string: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON", + e164: "\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164", + credit_card: "\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 \u03C0\u03B9\u03C3\u03C4\u03C9\u03C4\u03B9\u03BA\u03AE\u03C2 \u03BA\u03AC\u03C1\u03C4\u03B1\u03C2", + currency_code: "\u03BA\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 \u03BD\u03BF\u03BC\u03AF\u03C3\u03BC\u03B1\u03C4\u03BF\u03C2", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (typeof issue2.expected === "string" && /^[A-Z]/.test(issue2.expected)) { + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${issue2.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`; + } + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${stringifyPrimitive(issue2.values[0])}`; + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin ?? "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`; + return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin ?? "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${_issue.pattern}`; + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${issue2.divisor}`; + case "unrecognized_keys": + return `\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${issue2.keys.length > 1 ? "\u03B1" : "\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${issue2.keys.length > 1 ? "\u03B9\u03AC" : "\u03AF"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${issue2.origin}`; + case "invalid_union": + return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"; + case "invalid_element": + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${issue2.origin}`; + default: + return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2`; + } + }; +}, "error"); +function el_default() { + return { + localeError: error11() + }; +} +__name(el_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/en.js +var error12 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "characters", verb: "to have" }, + file: { unit: "bytes", verb: "to have" }, + array: { unit: "items", verb: "to have" }, + set: { unit: "items", verb: "to have" }, + map: { unit: "entries", verb: "to have" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "email address", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO datetime", + date: "ISO date", + time: "ISO time", + duration: "ISO duration", + ipv4: "IPv4 address", + ipv6: "IPv6 address", + mac: "MAC address", + cidrv4: "IPv4 range", + cidrv6: "IPv6 range", + base64: "base64-encoded string", + base64url: "base64url-encoded string", + json_string: "JSON string", + e164: "E.164 number", + currency_code: "currency code", + credit_card: "credit card number", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + // Compatibility: "nan" -> "NaN" for display + nan: "NaN" + // All other type names omitted - they fall back to raw values via ?? operator + }; + function getTypeName(type, input2) { + if (type === "number" && typeof input2 === "number" && !Number.isFinite(input2)) { + return String(input2); + } + return TypeDictionary[type] ?? type; + } + __name(getTypeName, "getTypeName"); + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = getTypeName(issue2.expected); + const receivedType = parsedType(issue2.input); + const received = getTypeName(receivedType, issue2.input); + return `Invalid input: expected ${expected}, received ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Invalid input: expected ${stringifyPrimitive(issue2.values[0])}`; + return `Invalid option: expected one of ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.exact ? "exactly " : issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Too big: expected ${issue2.origin ?? "value"} to have ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elements"}`; + return `Too big: expected ${issue2.origin ?? "value"} to be ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.exact ? "exactly " : issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Too small: expected ${issue2.origin} to have ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Too small: expected ${issue2.origin} to be ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Invalid string: must start with "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `Invalid string: must end with "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Invalid string: must include "${_issue.includes}"`; + if (_issue.format === "regex") + return `Invalid string: must match pattern ${_issue.pattern}`; + return `Invalid ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Invalid number: must be a multiple of ${issue2.divisor}`; + case "unrecognized_keys": + return `Unrecognized key${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Invalid key in ${issue2.origin}`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `Invalid discriminator value. Expected ${opts}`; + } + if (issue2.inclusive === false) { + return "Invalid input: more than one option matched"; + } + return "Invalid input"; + case "invalid_element": + return `Invalid value in ${issue2.origin}`; + default: + return `Invalid input`; + } + }; +}, "error"); +function en_default() { + return { + localeError: error12() + }; +} +__name(en_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/eo.js +var error13 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "karaktrojn", verb: "havi" }, + file: { unit: "bajtojn", verb: "havi" }, + array: { unit: "elementojn", verb: "havi" }, + set: { unit: "elementojn", verb: "havi" }, + map: { unit: "elementojn", verb: "havi" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "enigo", + email: "retadreso", + url: "URL", + emoji: "emo\u011Dio", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO-datotempo", + date: "ISO-dato", + time: "ISO-tempo", + duration: "ISO-da\u016Dro", + ipv4: "IPv4-adreso", + ipv6: "IPv6-adreso", + mac: "MAC-adreso", + cidrv4: "IPv4-rango", + cidrv6: "IPv6-rango", + base64: "64-ume kodita karaktraro", + base64url: "URL-64-ume kodita karaktraro", + json_string: "JSON-karaktraro", + e164: "E.164-nombro", + credit_card: "kreditkarta numero", + currency_code: "valuta kodo", + iban: "IBAN", + jwt: "JWT", + template_literal: "enigo" + }; + const TypeDictionary = { + nan: "NaN", + number: "nombro", + array: "tabelo", + null: "senvalora" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Nevalida enigo: atendi\u011Dis instanceof ${issue2.expected}, ricevi\u011Dis ${received}`; + } + return `Nevalida enigo: atendi\u011Dis ${expected}, ricevi\u011Dis ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Nevalida enigo: atendi\u011Dis ${stringifyPrimitive(issue2.values[0])}`; + return `Nevalida opcio: atendi\u011Dis unu el ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Tro granda: atendi\u011Dis ke ${issue2.origin ?? "valoro"} havu ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementojn"}`; + return `Tro granda: atendi\u011Dis ke ${issue2.origin ?? "valoro"} havu ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Tro malgranda: atendi\u011Dis ke ${issue2.origin} havu ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Tro malgranda: atendi\u011Dis ke ${issue2.origin} estu ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Nevalida karaktraro: devas komenci\u011Di per "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Nevalida karaktraro: devas fini\u011Di per "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Nevalida karaktraro: devas inkluzivi "${_issue.includes}"`; + if (_issue.format === "regex") + return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`; + return `Nevalida ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Nevalida nombro: devas esti oblo de ${issue2.divisor}`; + case "unrecognized_keys": + return `Nekonata${issue2.keys.length > 1 ? "j" : ""} \u015Dlosilo${issue2.keys.length > 1 ? "j" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Nevalida \u015Dlosilo en ${issue2.origin}`; + case "invalid_union": + return "Nevalida enigo"; + case "invalid_element": + return `Nevalida valoro en ${issue2.origin}`; + default: + return `Nevalida enigo`; + } + }; +}, "error"); +function eo_default() { + return { + localeError: error13() + }; +} +__name(eo_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/es.js +var error14 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "caracteres", verb: "tener" }, + file: { unit: "bytes", verb: "tener" }, + array: { unit: "elementos", verb: "tener" }, + set: { unit: "elementos", verb: "tener" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "entrada", + email: "direcci\xF3n de correo electr\xF3nico", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "fecha y hora ISO", + date: "fecha ISO", + time: "hora ISO", + duration: "duraci\xF3n ISO", + ipv4: "direcci\xF3n IPv4", + ipv6: "direcci\xF3n IPv6", + mac: "direcci\xF3n MAC", + cidrv4: "rango IPv4", + cidrv6: "rango IPv6", + base64: "cadena codificada en base64", + base64url: "URL codificada en base64", + json_string: "cadena JSON", + e164: "n\xFAmero E.164", + credit_card: "n\xFAmero de tarjeta de cr\xE9dito", + currency_code: "c\xF3digo de moneda", + iban: "IBAN", + jwt: "JWT", + template_literal: "entrada" + }; + const TypeDictionary = { + nan: "NaN", + string: "texto", + number: "n\xFAmero", + boolean: "booleano", + array: "arreglo", + object: "objeto", + set: "conjunto", + file: "archivo", + date: "fecha", + bigint: "n\xFAmero grande", + symbol: "s\xEDmbolo", + undefined: "indefinido", + null: "nulo", + function: "funci\xF3n", + map: "mapa", + record: "registro", + tuple: "tupla", + enum: "enumeraci\xF3n", + union: "uni\xF3n", + literal: "literal", + promise: "promesa", + void: "vac\xEDo", + never: "nunca", + unknown: "desconocido", + any: "cualquiera" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Entrada inv\xE1lida: se esperaba instanceof ${issue2.expected}, recibido ${received}`; + } + return `Entrada inv\xE1lida: se esperaba ${expected}, recibido ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Entrada inv\xE1lida: se esperaba ${stringifyPrimitive(issue2.values[0])}`; + return `Opci\xF3n inv\xE1lida: se esperaba una de ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + if (sizing) + return `Demasiado grande: se esperaba que ${origin ?? "valor"} tuviera ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementos"}`; + return `Demasiado grande: se esperaba que ${origin ?? "valor"} fuera ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + if (sizing) { + return `Demasiado peque\xF1o: se esperaba que ${origin} tuviera ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Demasiado peque\xF1o: se esperaba que ${origin} fuera ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Cadena inv\xE1lida: debe comenzar con "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Cadena inv\xE1lida: debe terminar en "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Cadena inv\xE1lida: debe incluir "${_issue.includes}"`; + if (_issue.format === "regex") + return `Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${_issue.pattern}`; + return `Inv\xE1lido ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${issue2.divisor}`; + case "unrecognized_keys": + return `Llave${issue2.keys.length > 1 ? "s" : ""} desconocida${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Llave inv\xE1lida en ${TypeDictionary[issue2.origin] ?? issue2.origin}`; + case "invalid_union": + return "Entrada inv\xE1lida"; + case "invalid_element": + return `Valor inv\xE1lido en ${TypeDictionary[issue2.origin] ?? issue2.origin}`; + default: + return `Entrada inv\xE1lida`; + } + }; +}, "error"); +function es_default() { + return { + localeError: error14() + }; +} +__name(es_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fa.js +var error15 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, + file: { unit: "\u0628\u0627\u06CC\u062A", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, + array: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, + set: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, + map: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0648\u0631\u0648\u062F\u06CC", + email: "\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644", + url: "URL", + emoji: "\u0627\u06CC\u0645\u0648\u062C\u06CC", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", + date: "\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648", + time: "\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", + duration: "\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", + ipv4: "IPv4 \u0622\u062F\u0631\u0633", + ipv6: "IPv6 \u0622\u062F\u0631\u0633", + mac: "MAC \u0622\u062F\u0631\u0633", + cidrv4: "IPv4 \u062F\u0627\u0645\u0646\u0647", + cidrv6: "IPv6 \u062F\u0627\u0645\u0646\u0647", + base64: "base64-encoded \u0631\u0634\u062A\u0647", + base64url: "base64url-encoded \u0631\u0634\u062A\u0647", + json_string: "JSON \u0631\u0634\u062A\u0647", + e164: "E.164 \u0639\u062F\u062F", + credit_card: "\u0634\u0645\u0627\u0631\u0647 \u06A9\u0627\u0631\u062A \u0627\u0639\u062A\u0628\u0627\u0631\u06CC", + currency_code: "\u06A9\u062F \u0627\u0631\u0632", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0648\u0631\u0648\u062F\u06CC" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0639\u062F\u062F", + array: "\u0622\u0631\u0627\u06CC\u0647" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${issue2.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`; + } + return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`; + } + case "invalid_value": + if (issue2.values.length === 1) { + return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${stringifyPrimitive(issue2.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`; + } + return `\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${joinValues(issue2.values, "|")} \u0645\u06CC\u200C\u0628\u0648\u062F`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue2.origin ?? "\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`; + } + return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue2.origin ?? "\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} \u0628\u0627\u0634\u062F`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0628\u0627\u0634\u062F`; + } + return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} \u0628\u0627\u0634\u062F`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_issue.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`; + } + if (_issue.format === "ends_with") { + return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_issue.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`; + } + if (_issue.format === "includes") { + return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${_issue.includes}" \u0628\u0627\u0634\u062F`; + } + if (_issue.format === "regex") { + return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${_issue.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`; + } + return `${FormatDictionary[_issue.format] ?? issue2.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; + } + case "not_multiple_of": + return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${issue2.divisor} \u0628\u0627\u0634\u062F`; + case "unrecognized_keys": + return `\u06A9\u0644\u06CC\u062F${issue2.keys.length > 1 ? "\u0647\u0627\u06CC" : ""} \u0646\u0627\u0634\u0646\u0627\u0633: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${issue2.origin}`; + case "invalid_union": + return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; + case "invalid_element": + return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${issue2.origin}`; + default: + return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; + } + }; +}, "error"); +function fa_default() { + return { + localeError: error15() + }; +} +__name(fa_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fi.js +var error16 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "merkki\xE4", subject: "merkkijonon" }, + file: { unit: "tavua", subject: "tiedoston" }, + array: { unit: "alkiota", subject: "listan" }, + set: { unit: "alkiota", subject: "joukon" }, + map: { unit: "alkiota", subject: "kuvauksen" }, + number: { unit: "", subject: "luvun" }, + bigint: { unit: "", subject: "suuren kokonaisluvun" }, + int: { unit: "", subject: "kokonaisluvun" }, + date: { unit: "", subject: "p\xE4iv\xE4m\xE4\xE4r\xE4n" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "s\xE4\xE4nn\xF6llinen lauseke", + email: "s\xE4hk\xF6postiosoite", + url: "URL-osoite", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO-aikaleima", + date: "ISO-p\xE4iv\xE4m\xE4\xE4r\xE4", + time: "ISO-aika", + duration: "ISO-kesto", + ipv4: "IPv4-osoite", + ipv6: "IPv6-osoite", + mac: "MAC-osoite", + cidrv4: "IPv4-alue", + cidrv6: "IPv6-alue", + base64: "base64-koodattu merkkijono", + base64url: "base64url-koodattu merkkijono", + json_string: "JSON-merkkijono", + e164: "E.164-luku", + credit_card: "luottokortin numero", + currency_code: "valuuttakoodi", + iban: "IBAN", + jwt: "JWT", + template_literal: "templaattimerkkijono" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Virheellinen tyyppi: odotettiin instanceof ${issue2.expected}, oli ${received}`; + } + return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Virheellinen sy\xF6te: t\xE4ytyy olla ${stringifyPrimitive(issue2.values[0])}`; + return `Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Liian suuri: ${sizing.subject} t\xE4ytyy olla ${adj}${issue2.maximum.toString()} ${sizing.unit}`.trim(); + } + return `Liian suuri: arvon t\xE4ytyy olla ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Liian pieni: ${sizing.subject} t\xE4ytyy olla ${adj}${issue2.minimum.toString()} ${sizing.unit}`.trim(); + } + return `Liian pieni: arvon t\xE4ytyy olla ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Virheellinen sy\xF6te: t\xE4ytyy alkaa "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Virheellinen sy\xF6te: t\xE4ytyy loppua "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${_issue.includes}"`; + if (_issue.format === "regex") { + return `Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${_issue.pattern}`; + } + return `Virheellinen ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Virheellinen luku: t\xE4ytyy olla luvun ${issue2.divisor} monikerta`; + case "unrecognized_keys": + return `${issue2.keys.length > 1 ? "Tuntemattomat avaimet" : "Tuntematon avain"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return "Virheellinen avain tietueessa"; + case "invalid_union": + return "Virheellinen unioni"; + case "invalid_element": + return "Virheellinen arvo joukossa"; + default: + return `Virheellinen sy\xF6te`; + } + }; +}, "error"); +function fi_default() { + return { + localeError: error16() + }; +} +__name(fi_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fr.js +var error17 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "caract\xE8res", verb: "avoir" }, + file: { unit: "octets", verb: "avoir" }, + array: { unit: "\xE9l\xE9ments", verb: "avoir" }, + set: { unit: "\xE9l\xE9ments", verb: "avoir" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "expression r\xE9guli\xE8re", + email: "adresse e-mail", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "date et heure ISO", + date: "date ISO", + time: "heure ISO", + duration: "dur\xE9e ISO", + ipv4: "adresse IPv4", + ipv6: "adresse IPv6", + mac: "adresse MAC", + cidrv4: "plage IPv4", + cidrv6: "plage IPv6", + base64: "cha\xEEne de caract\xE8res encod\xE9e en base64", + base64url: "cha\xEEne de caract\xE8res encod\xE9e en base64url", + json_string: "cha\xEEne de caract\xE8res JSON", + e164: "num\xE9ro au format E.164", + credit_card: "num\xE9ro de carte de cr\xE9dit", + currency_code: "code de devise", + iban: "IBAN", + jwt: "JWT", + template_literal: "entr\xE9e" + }; + const TypeDictionary = { + string: "cha\xEEne de caract\xE8res", + number: "nombre", + int: "entier", + boolean: "bool\xE9en", + bigint: "grand entier", + symbol: "symbole", + undefined: "ind\xE9fini", + null: "null", + never: "jamais", + void: "vide", + date: "date", + array: "tableau", + object: "objet", + tuple: "tuple", + record: "record", + map: "map", + set: "ensemble", + file: "fichier", + nonoptional: "non optionnel", + nan: "NaN", + function: "fonction" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Entr\xE9e invalide : instance de ${issue2.expected} attendu, ${received} re\xE7u`; + } + return `Entr\xE9e invalide : ${expected} attendu, ${received} re\xE7u`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Entr\xE9e invalide : ${stringifyPrimitive(issue2.values[0])} attendu`; + return `Option invalide : une valeur parmi ${joinValues(issue2.values, "|")} attendue`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Trop grand : ${TypeDictionary[issue2.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\xE9l\xE9ment(s)"}`; + return `Trop grand : ${TypeDictionary[issue2.origin] ?? "valeur"} doit \xEAtre ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Trop petit : ${TypeDictionary[issue2.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + return `Trop petit : ${TypeDictionary[issue2.origin] ?? "valeur"} doit \xEAtre ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Cha\xEEne de caract\xE8res invalide : doit commencer par "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Cha\xEEne de caract\xE8res invalide : doit se terminer par "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Cha\xEEne de caract\xE8res invalide : doit inclure "${_issue.includes}"`; + if (_issue.format === "regex") + return `Cha\xEEne de caract\xE8res invalide : doit correspondre au motif ${_issue.pattern}`; + return `${FormatDictionary[_issue.format] ?? issue2.format} invalide`; + } + case "not_multiple_of": + return `Nombre invalide : doit \xEAtre un multiple de ${issue2.divisor}`; + case "unrecognized_keys": + return `Cl\xE9${issue2.keys.length > 1 ? "s" : ""} non reconnue${issue2.keys.length > 1 ? "s" : ""} : ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Cl\xE9 invalide dans ${issue2.origin}`; + case "invalid_union": + return "Entr\xE9e invalide"; + case "invalid_element": + return `Valeur invalide dans ${issue2.origin}`; + default: + return `Entr\xE9e invalide`; + } + }; +}, "error"); +function fr_default() { + return { + localeError: error17() + }; +} +__name(fr_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fr-CA.js +var error18 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "caract\xE8res", verb: "avoir" }, + file: { unit: "octets", verb: "avoir" }, + array: { unit: "\xE9l\xE9ments", verb: "avoir" }, + set: { unit: "\xE9l\xE9ments", verb: "avoir" }, + map: { unit: "\xE9l\xE9ments", verb: "avoir" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "entr\xE9e", + email: "adresse courriel", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "date-heure ISO", + date: "date ISO", + time: "heure ISO", + duration: "dur\xE9e ISO", + ipv4: "adresse IPv4", + ipv6: "adresse IPv6", + mac: "adresse MAC", + cidrv4: "plage IPv4", + cidrv6: "plage IPv6", + base64: "cha\xEEne encod\xE9e en base64", + base64url: "cha\xEEne encod\xE9e en base64url", + json_string: "cha\xEEne JSON", + e164: "num\xE9ro E.164", + credit_card: "num\xE9ro de carte de cr\xE9dit", + currency_code: "code de devise", + iban: "IBAN", + jwt: "JWT", + template_literal: "entr\xE9e" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Entr\xE9e invalide : attendu instanceof ${issue2.expected}, re\xE7u ${received}`; + } + return `Entr\xE9e invalide : attendu ${expected}, re\xE7u ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Entr\xE9e invalide : attendu ${stringifyPrimitive(issue2.values[0])}`; + return `Option invalide : attendu l'une des valeurs suivantes ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "\u2264" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Trop grand : attendu que ${issue2.origin ?? "la valeur"} ait ${adj}${issue2.maximum.toString()} ${sizing.unit}`; + return `Trop grand : attendu que ${issue2.origin ?? "la valeur"} soit ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? "\u2265" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Trop petit : attendu que ${issue2.origin} ait ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Trop petit : attendu que ${issue2.origin} soit ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Cha\xEEne invalide : doit commencer par "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `Cha\xEEne invalide : doit se terminer par "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Cha\xEEne invalide : doit inclure "${_issue.includes}"`; + if (_issue.format === "regex") + return `Cha\xEEne invalide : doit correspondre au motif ${_issue.pattern}`; + return `${FormatDictionary[_issue.format] ?? issue2.format} invalide`; + } + case "not_multiple_of": + return `Nombre invalide : doit \xEAtre un multiple de ${issue2.divisor}`; + case "unrecognized_keys": + return `Cl\xE9${issue2.keys.length > 1 ? "s" : ""} non reconnue${issue2.keys.length > 1 ? "s" : ""} : ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Cl\xE9 invalide dans ${issue2.origin}`; + case "invalid_union": + return "Entr\xE9e invalide"; + case "invalid_element": + return `Valeur invalide dans ${issue2.origin}`; + default: + return `Entr\xE9e invalide`; + } + }; +}, "error"); +function fr_CA_default() { + return { + localeError: error18() + }; +} +__name(fr_CA_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/gu.js +var error19 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0A85\u0A95\u0ACD\u0AB7\u0AB0", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, + file: { unit: "\u0AAC\u0ABE\u0AAF\u0A9F", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, + array: { unit: "\u0A86\u0A87\u0A9F\u0AAE", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, + set: { unit: "\u0A86\u0A87\u0A9F\u0AAE", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, + map: { unit: "\u0A8F\u0AA8\u0ACD\u0A9F\u0ACD\u0AB0\u0AC0", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0A87\u0AA8\u0AAA\u0AC1\u0A9F", + email: "\u0A88\u0AAE\u0AC7\u0A87\u0AB2 \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", + url: "URL", + emoji: "\u0A87\u0AAE\u0ACB\u0A9C\u0AC0", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0AA4\u0ABE\u0AB0\u0AC0\u0A96 \u0A85\u0AA8\u0AC7 \u0AB8\u0AAE\u0AAF", + date: "ISO \u0AA4\u0ABE\u0AB0\u0AC0\u0A96", + time: "ISO \u0AB8\u0AAE\u0AAF", + duration: "ISO \u0A85\u0AB5\u0AA7\u0ABF", + ipv4: "IPv4 \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", + ipv6: "IPv6 \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", + mac: "MAC \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", + cidrv4: "IPv4 \u0AB6\u0ACD\u0AB0\u0AC7\u0AA3\u0AC0", + cidrv6: "IPv6 \u0AB6\u0ACD\u0AB0\u0AC7\u0AA3\u0AC0", + base64: "base64-\u0A8F\u0AA8\u0ACD\u0A95\u0ACB\u0AA1\u0AC7\u0AA1 \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97", + base64url: "base64url-\u0A8F\u0AA8\u0ACD\u0A95\u0ACB\u0AA1\u0AC7\u0AA1 \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97", + json_string: "JSON \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97", + e164: "E.164 \u0AA8\u0A82\u0AAC\u0AB0", + credit_card: "\u0A95\u0ACD\u0AB0\u0AC7\u0AA1\u0ABF\u0A9F \u0A95\u0ABE\u0AB0\u0ACD\u0AA1 \u0AA8\u0A82\u0AAC\u0AB0", + currency_code: "\u0A9A\u0AB2\u0AA3 \u0A95\u0ACB\u0AA1", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0A87\u0AA8\u0AAA\u0AC1\u0A9F" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F: \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4 ${expected}, \u0AAA\u0ACD\u0AB0\u0ABE\u0AAA\u0ACD\u0AA4 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F: \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB5\u0ABF\u0A95\u0AB2\u0ACD\u0AAA: ${joinValues(issue2.values, " | ")} \u0AAE\u0ABE\u0AA7\u0ACD\u0AAF\u0AAE\u0AA5\u0AC0 \u0A8F\u0A95 \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0A96\u0AC2\u0AAC \u0AAE\u0ACB\u0A9F\u0AC1\u0A82: ${issue2.origin ?? "\u0AAE\u0AC2\u0AB2\u0ACD\u0AAF"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0A8F\u0AB2\u0ABF\u0AAE\u0AC7\u0AA8\u0ACD\u0A9F"} \u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F`; + return `\u0A96\u0AC2\u0AAC \u0AAE\u0ACB\u0A9F\u0AC1\u0A82: ${issue2.origin ?? "\u0AAE\u0AC2\u0AB2\u0ACD\u0AAF"} ${adj}${issue2.maximum.toString()} \u0AB9\u0ACB\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0A96\u0AC2\u0AAC \u0AA8\u0ABE\u0AA8\u0AC1\u0A82: ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F`; + } + return `\u0A96\u0AC2\u0AAC \u0AA8\u0ABE\u0AA8\u0AC1\u0A82: ${issue2.origin} ${adj}${issue2.minimum.toString()} \u0AB9\u0ACB\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: "${_issue.prefix}" \u0AA5\u0AC0 \u0AB6\u0AB0\u0AC2 \u0AA5\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; + } + if (_issue.format === "ends_with") + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: "${_issue.suffix}" \u0AAA\u0AB0 \u0AB8\u0AAE\u0ABE\u0AAA\u0ACD\u0AA4 \u0AA5\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; + if (_issue.format === "includes") + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: "${_issue.includes}" \u0AB6\u0ABE\u0AAE\u0AC7\u0AB2 \u0AB9\u0ACB\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; + if (_issue.format === "regex") + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: \u0AAA\u0AC7\u0A9F\u0AB0\u0ACD\u0AA8 ${_issue.pattern} \u0AB8\u0ABE\u0AA5\u0AC7 \u0AAE\u0AC7\u0AB3 \u0A96\u0ABE\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AA8\u0A82\u0AAC\u0AB0: ${issue2.divisor} \u0AA8\u0ACB \u0A97\u0AC1\u0AA3\u0ABE\u0A82\u0A95 \u0AB9\u0ACB\u0AB5\u0ACB \u0A9C\u0ACB\u0A88\u0A8F`; + case "unrecognized_keys": + return `\u0A93\u0AB3\u0A96\u0AC0 \u0AB6\u0A95\u0ABE\u0AA4\u0ABE \u0AA8\u0AB9\u0AC0\u0A82 \u0AA4\u0AC7 \u0A95\u0AC0${issue2.keys.length > 1 ? "\u0A93" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} \u0AAE\u0ABE\u0A82 \u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A95\u0AC0`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AA1\u0ABF\u0AB8\u0ACD\u0A95\u0ACD\u0AB0\u0ABF\u0AAE\u0ABF\u0AA8\u0AC7\u0A9F\u0AB0 \u0AAE\u0AC2\u0AB2\u0ACD\u0AAF. \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4 ${opts}`; + } + return "\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F"; + case "invalid_element": + return `${issue2.origin} \u0AAE\u0ABE\u0A82 \u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AAE\u0AC2\u0AB2\u0ACD\u0AAF`; + default: + return "\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F"; + } + }; +}, "error"); +function gu_default() { + return { + localeError: error19() + }; +} +__name(gu_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/he.js +var error20 = /* @__PURE__ */ __name(() => { + const TypeNames = { + string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" }, + number: { label: "\u05DE\u05E1\u05E4\u05E8", gender: "m" }, + boolean: { label: "\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9", gender: "m" }, + bigint: { label: "BigInt", gender: "m" }, + date: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA", gender: "m" }, + array: { label: "\u05DE\u05E2\u05E8\u05DA", gender: "m" }, + object: { label: "\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8", gender: "m" }, + null: { label: "\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)", gender: "m" }, + undefined: { label: "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)", gender: "m" }, + symbol: { label: "\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)", gender: "m" }, + function: { label: "\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4", gender: "f" }, + map: { label: "\u05DE\u05E4\u05D4 (Map)", gender: "f" }, + set: { label: "\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)", gender: "f" }, + file: { label: "\u05E7\u05D5\u05D1\u05E5", gender: "m" }, + promise: { label: "Promise", gender: "m" }, + NaN: { label: "NaN", gender: "m" }, + unknown: { label: "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2", gender: "m" }, + value: { label: "\u05E2\u05E8\u05DA", gender: "m" } + }; + const Sizable = { + string: { unit: "\u05EA\u05D5\u05D5\u05D9\u05DD", shortLabel: "\u05E7\u05E6\u05E8", longLabel: "\u05D0\u05E8\u05D5\u05DA" }, + file: { unit: "\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, + array: { unit: "\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, + set: { unit: "\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, + number: { unit: "", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" } + // no unit + }; + const typeEntry = /* @__PURE__ */ __name((t) => t ? TypeNames[t] : void 0, "typeEntry"); + const typeLabel = /* @__PURE__ */ __name((t) => { + const e5 = typeEntry(t); + if (e5) + return e5.label; + return t ?? TypeNames.unknown.label; + }, "typeLabel"); + const withDefinite = /* @__PURE__ */ __name((t) => `\u05D4${typeLabel(t)}`, "withDefinite"); + const verbFor = /* @__PURE__ */ __name((t) => { + const e5 = typeEntry(t); + const gender = e5?.gender ?? "m"; + return gender === "f" ? "\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA" : "\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"; + }, "verbFor"); + const getSizing = /* @__PURE__ */ __name((origin) => { + if (!origin) + return null; + return Sizable[origin] ?? null; + }, "getSizing"); + const FormatDictionary = { + regex: { label: "\u05E7\u05DC\u05D8", gender: "m" }, + email: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC", gender: "f" }, + url: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA", gender: "f" }, + emoji: { label: "\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9", gender: "m" }, + uuid: { label: "UUID", gender: "m" }, + uuidv4: { label: "UUIDv4", gender: "m" }, + uuidv6: { label: "UUIDv6", gender: "m" }, + nanoid: { label: "nanoid", gender: "m" }, + guid: { label: "GUID", gender: "m" }, + cuid: { label: "cuid", gender: "m" }, + cuid2: { label: "cuid2", gender: "m" }, + ulid: { label: "ULID", gender: "m" }, + xid: { label: "XID", gender: "m" }, + ksuid: { label: "KSUID", gender: "m" }, + datetime: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO", gender: "m" }, + date: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA ISO", gender: "m" }, + time: { label: "\u05D6\u05DE\u05DF ISO", gender: "m" }, + duration: { label: "\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO", gender: "m" }, + ipv4: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA IPv4", gender: "f" }, + ipv6: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA IPv6", gender: "f" }, + mac: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA MAC", gender: "f" }, + cidrv4: { label: "\u05D8\u05D5\u05D5\u05D7 IPv4", gender: "m" }, + cidrv6: { label: "\u05D8\u05D5\u05D5\u05D7 IPv6", gender: "m" }, + base64: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64", gender: "f" }, + base64url: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA", gender: "f" }, + json_string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON", gender: "f" }, + e164: { label: "\u05DE\u05E1\u05E4\u05E8 E.164", gender: "m" }, + credit_card: { label: "\u05DE\u05E1\u05E4\u05E8 \u05DB\u05E8\u05D8\u05D9\u05E1 \u05D0\u05E9\u05E8\u05D0\u05D9", gender: "m" }, + currency_code: { label: "\u05E7\u05D5\u05D3 \u05DE\u05D8\u05D1\u05E2", gender: "m" }, + iban: { label: "IBAN", gender: "m" }, + jwt: { label: "JWT", gender: "m" }, + template_literal: { label: "\u05E7\u05DC\u05D8", gender: "m" }, + ends_with: { label: "\u05E7\u05DC\u05D8", gender: "m" }, + includes: { label: "\u05E7\u05DC\u05D8", gender: "m" }, + lowercase: { label: "\u05E7\u05DC\u05D8", gender: "m" }, + starts_with: { label: "\u05E7\u05DC\u05D8", gender: "m" }, + uppercase: { label: "\u05E7\u05DC\u05D8", gender: "m" } + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expectedKey = issue2.expected; + const expected = TypeDictionary[expectedKey ?? ""] ?? typeLabel(expectedKey); + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? TypeNames[receivedType]?.label ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${issue2.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`; + } + return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`; + } + case "invalid_value": { + if (issue2.values.length === 1) { + return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${stringifyPrimitive(issue2.values[0])}`; + } + const stringified = issue2.values.map((v) => stringifyPrimitive(v)); + if (issue2.values.length === 2) { + return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${stringified[0]} \u05D0\u05D5 ${stringified[1]}`; + } + const lastValue = stringified[stringified.length - 1]; + const restValues = stringified.slice(0, -1).join(", "); + return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${restValues} \u05D0\u05D5 ${lastValue}`; + } + case "too_big": { + const sizing = getSizing(issue2.origin); + const subject = withDefinite(issue2.origin ?? "value"); + if (issue2.origin === "string") { + return `${sizing?.longLabel ?? "\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue2.maximum.toString()} ${sizing?.unit ?? ""} ${issue2.inclusive ? "\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA" : "\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim(); + } + if (issue2.origin === "number") { + const comparison = issue2.inclusive ? `\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue2.maximum}` : `\u05E7\u05D8\u05DF \u05DE-${issue2.maximum}`; + return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`; + } + if (issue2.origin === "array" || issue2.origin === "set") { + const verb = issue2.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA"; + const comparison = issue2.inclusive ? `${issue2.maximum} ${sizing?.unit ?? ""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA` : `\u05E4\u05D7\u05D5\u05EA \u05DE-${issue2.maximum} ${sizing?.unit ?? ""}`; + return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim(); + } + const adj = issue2.inclusive ? "<=" : "<"; + const be = verbFor(issue2.origin ?? "value"); + if (sizing?.unit) { + return `${sizing.longLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.maximum.toString()} ${sizing.unit}`; + } + return `${sizing?.longLabel ?? "\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const sizing = getSizing(issue2.origin); + const subject = withDefinite(issue2.origin ?? "value"); + if (issue2.origin === "string") { + return `${sizing?.shortLabel ?? "\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue2.minimum.toString()} ${sizing?.unit ?? ""} ${issue2.inclusive ? "\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8" : "\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim(); + } + if (issue2.origin === "number") { + const comparison = issue2.inclusive ? `\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue2.minimum}` : `\u05D2\u05D3\u05D5\u05DC \u05DE-${issue2.minimum}`; + return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`; + } + if (issue2.origin === "array" || issue2.origin === "set") { + const verb = issue2.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA"; + if (issue2.minimum === 1 && issue2.inclusive) { + const singularPhrase = issue2.origin === "set" ? "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3" : "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3"; + return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${singularPhrase}`; + } + const comparison = issue2.inclusive ? `${issue2.minimum} ${sizing?.unit ?? ""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8` : `\u05D9\u05D5\u05EA\u05E8 \u05DE-${issue2.minimum} ${sizing?.unit ?? ""}`; + return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim(); + } + const adj = issue2.inclusive ? ">=" : ">"; + const be = verbFor(issue2.origin ?? "value"); + if (sizing?.unit) { + return `${sizing.shortLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `${sizing?.shortLabel ?? "\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${_issue.pattern}`; + const nounEntry = FormatDictionary[_issue.format]; + const noun = nounEntry?.label ?? _issue.format; + const gender = nounEntry?.gender ?? "m"; + const adjective = gender === "f" ? "\u05EA\u05E7\u05D9\u05E0\u05D4" : "\u05EA\u05E7\u05D9\u05DF"; + return `${noun} \u05DC\u05D0 ${adjective}`; + } + case "not_multiple_of": + return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${issue2.divisor}`; + case "unrecognized_keys": + return `\u05DE\u05E4\u05EA\u05D7${issue2.keys.length > 1 ? "\u05D5\u05EA" : ""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${issue2.keys.length > 1 ? "\u05D9\u05DD" : "\u05D4"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": { + return `\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8`; + } + case "invalid_union": + return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"; + case "invalid_element": { + const place = withDefinite(issue2.origin ?? "array"); + return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${place}`; + } + default: + return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`; + } + }; +}, "error"); +function he_default() { + return { + localeError: error20() + }; +} +__name(he_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hi.js +var error21 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0905\u0915\u094D\u0937\u0930", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, + file: { unit: "\u092C\u093E\u0907\u091F\u094D\u0938", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, + array: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, + set: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, + map: { unit: "\u092A\u094D\u0930\u0935\u093F\u0937\u094D\u091F\u093F\u092F\u093E\u0901", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0907\u0928\u092A\u0941\u091F", + email: "\u0908\u092E\u0947\u0932 \u092A\u0924\u093E", + url: "URL", + emoji: "\u0907\u092E\u094B\u091C\u0940", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0924\u093F\u0925\u093F \u0914\u0930 \u0938\u092E\u092F", + date: "ISO \u0924\u093F\u0925\u093F", + time: "ISO \u0938\u092E\u092F", + duration: "ISO \u0905\u0935\u0927\u093F", + ipv4: "IPv4 \u092A\u0924\u093E", + ipv6: "IPv6 \u092A\u0924\u093E", + mac: "MAC \u092A\u0924\u093E", + cidrv4: "IPv4 \u0936\u094D\u0930\u0947\u0923\u0940", + cidrv6: "IPv6 \u0936\u094D\u0930\u0947\u0923\u0940", + base64: "Base64-\u090F\u0928\u094D\u0915\u094B\u0921\u0947\u0921 \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917", + base64url: "Base64URL-\u090F\u0928\u094D\u0915\u094B\u0921\u0947\u0921 \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917", + json_string: "JSON \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917", + e164: "E.164 \u0938\u0902\u0916\u094D\u092F\u093E", + credit_card: "\u0915\u094D\u0930\u0947\u0921\u093F\u091F \u0915\u093E\u0930\u094D\u0921 \u0938\u0902\u0916\u094D\u092F\u093E", + currency_code: "\u092E\u0941\u0926\u094D\u0930\u093E \u0915\u094B\u0921", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0907\u0928\u092A\u0941\u091F" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${expected}, \u092A\u094D\u0930\u093E\u092A\u094D\u0924 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0935\u093F\u0915\u0932\u094D\u092A: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u092E\u093E\u0928\u094B\u0902 \u092E\u0947\u0902 \u0938\u0947 \u090F\u0915 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u092C\u0939\u0941\u0924 \u092C\u0921\u093C\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin ?? "\u092E\u093E\u0928"} \u092E\u0947\u0902 ${adj}${issue2.maximum} ${sizing.unit} \u0939\u094B\u0902`; + return `\u092C\u0939\u0941\u0924 \u092C\u0921\u093C\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin ?? "\u092E\u093E\u0928"} ${adj}${issue2.maximum} \u0939\u094B`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u092C\u0939\u0941\u0924 \u091B\u094B\u091F\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin} \u092E\u0947\u0902 ${adj}${issue2.minimum} ${sizing.unit} \u0939\u094B\u0902`; + return `\u092C\u0939\u0941\u0924 \u091B\u094B\u091F\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin} ${adj}${issue2.minimum} \u0939\u094B`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: "${_issue.prefix}" \u0938\u0947 \u0936\u0941\u0930\u0942 \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; + if (_issue.format === "ends_with") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: "${_issue.suffix}" \u092A\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; + if (_issue.format === "includes") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: \u0907\u0938\u092E\u0947\u0902 "${_issue.includes}" \u0936\u093E\u092E\u093F\u0932 \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; + if (_issue.format === "regex") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: \u092A\u0948\u091F\u0930\u094D\u0928 ${_issue.pattern} \u0938\u0947 \u092E\u0947\u0932 \u0916\u093E\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; + return `\u0905\u092E\u093E\u0928\u094D\u092F ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u0902\u0916\u094D\u092F\u093E: \u092F\u0939 ${issue2.divisor} \u0915\u093E \u0917\u0941\u0923\u091C \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; + case "unrecognized_keys": + return `\u0905\u092A\u0930\u093F\u091A\u093F\u0924 \u0915\u0941\u0902\u091C\u0940${issue2.keys.length > 1 ? "\u092F\u093E\u0901" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0915\u0941\u0902\u091C\u0940: ${issue2.origin} \u092E\u0947\u0902`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0921\u093F\u0938\u094D\u0915\u094D\u0930\u093F\u092E\u093F\u0928\u0947\u091F\u0930 \u092E\u093E\u0928: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${opts}`; + } + return "\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F"; + case "invalid_element": + return `\u0905\u092E\u093E\u0928\u094D\u092F \u092E\u093E\u0928: ${issue2.origin} \u092E\u0947\u0902`; + default: + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F`; + } + }; +}, "error"); +function hi_default() { + return { + localeError: error21() + }; +} +__name(hi_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hr.js +var error22 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "znakova", verb: "imati" }, + file: { unit: "bajtova", verb: "imati" }, + array: { unit: "stavki", verb: "imati" }, + set: { unit: "stavki", verb: "imati" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "unos", + email: "email adresa", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO datum i vrijeme", + date: "ISO datum", + time: "ISO vrijeme", + duration: "ISO trajanje", + ipv4: "IPv4 adresa", + ipv6: "IPv6 adresa", + mac: "MAC adresa", + cidrv4: "IPv4 raspon", + cidrv6: "IPv6 raspon", + base64: "base64 kodirani tekst", + base64url: "base64url kodirani tekst", + json_string: "JSON tekst", + e164: "E.164 broj", + credit_card: "broj kreditne kartice", + currency_code: "kod valute", + iban: "IBAN", + jwt: "JWT", + template_literal: "unos" + }; + const TypeDictionary = { + nan: "NaN", + string: "tekst", + number: "broj", + boolean: "boolean", + array: "niz", + object: "objekt", + set: "skup", + file: "datoteka", + date: "datum", + bigint: "bigint", + symbol: "simbol", + undefined: "undefined", + null: "null", + function: "funkcija", + map: "mapa" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Neispravan unos: o\u010Dekuje se instanceof ${issue2.expected}, a primljeno je ${received}`; + } + return `Neispravan unos: o\u010Dekuje se ${expected}, a primljeno je ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Neispravna vrijednost: o\u010Dekivano ${stringifyPrimitive(issue2.values[0])}`; + return `Neispravna opcija: o\u010Dekivano jedno od ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + if (sizing) + return `Preveliko: o\u010Dekivano da ${origin ?? "vrijednost"} ima ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemenata"}`; + return `Preveliko: o\u010Dekivano da ${origin ?? "vrijednost"} bude ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + if (sizing) { + return `Premalo: o\u010Dekivano da ${origin} ima ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Premalo: o\u010Dekivano da ${origin} bude ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Neispravan tekst: mora zapo\u010Dinjati s "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Neispravan tekst: mora zavr\u0161avati s "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Neispravan tekst: mora sadr\u017Eavati "${_issue.includes}"`; + if (_issue.format === "regex") + return `Neispravan tekst: mora odgovarati uzorku ${_issue.pattern}`; + return `Neispravna ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Neispravan broj: mora biti vi\u0161ekratnik od ${issue2.divisor}`; + case "unrecognized_keys": + return `Neprepoznat${issue2.keys.length > 1 ? "i klju\u010Devi" : " klju\u010D"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Neispravan klju\u010D u ${TypeDictionary[issue2.origin] ?? issue2.origin}`; + case "invalid_union": + return "Neispravan unos"; + case "invalid_element": + return `Neispravna vrijednost u ${TypeDictionary[issue2.origin] ?? issue2.origin}`; + default: + return `Neispravan unos`; + } + }; +}, "error"); +function hr_default() { + return { + localeError: error22() + }; +} +__name(hr_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hu.js +var error23 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "karakter", verb: "legyen" }, + file: { unit: "byte", verb: "legyen" }, + array: { unit: "elem", verb: "legyen" }, + set: { unit: "elem", verb: "legyen" }, + map: { unit: "elem", verb: "legyen" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "bemenet", + email: "email c\xEDm", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO id\u0151b\xE9lyeg", + date: "ISO d\xE1tum", + time: "ISO id\u0151", + duration: "ISO id\u0151intervallum", + ipv4: "IPv4 c\xEDm", + ipv6: "IPv6 c\xEDm", + mac: "MAC c\xEDm", + cidrv4: "IPv4 tartom\xE1ny", + cidrv6: "IPv6 tartom\xE1ny", + base64: "base64-k\xF3dolt string", + base64url: "base64url-k\xF3dolt string", + json_string: "JSON string", + e164: "E.164 sz\xE1m", + credit_card: "hitelk\xE1rtyasz\xE1m", + currency_code: "p\xE9nznemk\xF3d", + iban: "IBAN", + jwt: "JWT", + template_literal: "bemenet" + }; + const TypeDictionary = { + nan: "NaN", + number: "sz\xE1m", + array: "t\xF6mb" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k instanceof ${issue2.expected}, a kapott \xE9rt\xE9k ${received}`; + } + return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${expected}, a kapott \xE9rt\xE9k ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${stringifyPrimitive(issue2.values[0])}`; + return `\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `T\xFAl nagy: ${issue2.origin ?? "\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elem"}`; + return `T\xFAl nagy: a bemeneti \xE9rt\xE9k ${issue2.origin ?? "\xE9rt\xE9k"} t\xFAl nagy: ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${issue2.origin} m\xE9rete t\xFAl kicsi ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${issue2.origin} t\xFAl kicsi ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\xC9rv\xE9nytelen string: "${_issue.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`; + if (_issue.format === "ends_with") + return `\xC9rv\xE9nytelen string: "${_issue.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`; + if (_issue.format === "includes") + return `\xC9rv\xE9nytelen string: "${_issue.includes}" \xE9rt\xE9ket kell tartalmaznia`; + if (_issue.format === "regex") + return `\xC9rv\xE9nytelen string: ${_issue.pattern} mint\xE1nak kell megfelelnie`; + return `\xC9rv\xE9nytelen ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\xC9rv\xE9nytelen sz\xE1m: ${issue2.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`; + case "unrecognized_keys": + return `Ismeretlen kulcs${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\xC9rv\xE9nytelen kulcs ${issue2.origin}`; + case "invalid_union": + return "\xC9rv\xE9nytelen bemenet"; + case "invalid_element": + return `\xC9rv\xE9nytelen \xE9rt\xE9k: ${issue2.origin}`; + default: + return `\xC9rv\xE9nytelen bemenet`; + } + }; +}, "error"); +function hu_default() { + return { + localeError: error23() + }; +} +__name(hu_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hy.js +function getArmenianPlural(count, one, many) { + return Math.abs(count) === 1 ? one : many; +} +__name(getArmenianPlural, "getArmenianPlural"); +function withDefiniteArticle(word) { + if (!word) + return ""; + const vowels = ["\u0561", "\u0565", "\u0568", "\u056B", "\u0578", "\u0578\u0582", "\u0585"]; + const lastChar = word[word.length - 1]; + return word + (vowels.includes(lastChar) ? "\u0576" : "\u0568"); +} +__name(withDefiniteArticle, "withDefiniteArticle"); +var error24 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { + unit: { + one: "\u0576\u0577\u0561\u0576", + many: "\u0576\u0577\u0561\u0576\u0576\u0565\u0580" + }, + verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" + }, + file: { + unit: { + one: "\u0562\u0561\u0575\u0569", + many: "\u0562\u0561\u0575\u0569\u0565\u0580" + }, + verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" + }, + array: { + unit: { + one: "\u057F\u0561\u0580\u0580", + many: "\u057F\u0561\u0580\u0580\u0565\u0580" + }, + verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" + }, + set: { + unit: { + one: "\u057F\u0561\u0580\u0580", + many: "\u057F\u0561\u0580\u0580\u0565\u0580" + }, + verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" + }, + map: { + unit: { + one: "\u057F\u0561\u0580\u0580", + many: "\u057F\u0561\u0580\u0580\u0565\u0580" + }, + verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" + } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0574\u0578\u0582\u057F\u0584", + email: "\u0567\u056C. \u0570\u0561\u057D\u0581\u0565", + url: "URL", + emoji: "\u0567\u0574\u0578\u057B\u056B", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574", + date: "ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E", + time: "ISO \u056A\u0561\u0574", + duration: "ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576", + ipv4: "IPv4 \u0570\u0561\u057D\u0581\u0565", + ipv6: "IPv6 \u0570\u0561\u057D\u0581\u0565", + mac: "MAC \u0570\u0561\u057D\u0581\u0565", + cidrv4: "IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584", + cidrv6: "IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584", + base64: "base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572", + base64url: "base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572", + json_string: "JSON \u057F\u0578\u0572", + e164: "E.164 \u0570\u0561\u0574\u0561\u0580", + credit_card: "\u056F\u0580\u0565\u0564\u056B\u057F \u0584\u0561\u0580\u057F\u056B \u0570\u0561\u0574\u0561\u0580", + currency_code: "\u0561\u0580\u056A\u0578\u0582\u0575\u0569\u056B \u056F\u0578\u0564", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0574\u0578\u0582\u057F\u0584" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0569\u056B\u057E", + array: "\u0566\u0561\u0576\u0563\u057E\u0561\u056E" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${issue2.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`; + } + return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${stringifyPrimitive(issue2.values[1])}`; + return `\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + const maxValue = Number(issue2.maximum); + const unit = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many); + return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin ?? "\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue2.maximum.toString()} ${unit}`; + } + return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin ?? "\u0561\u0580\u056A\u0565\u0584")} \u056C\u056B\u0576\u056B ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + const minValue = Number(issue2.minimum); + const unit = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many); + return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue2.minimum.toString()} ${unit}`; + } + return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin)} \u056C\u056B\u0576\u056B ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${_issue.prefix}"-\u0578\u057E`; + if (_issue.format === "ends_with") + return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${_issue.suffix}"-\u0578\u057E`; + if (_issue.format === "includes") + return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${_issue.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`; + return `\u054D\u056D\u0561\u056C ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${issue2.divisor}-\u056B`; + case "unrecognized_keys": + return `\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${issue2.keys.length > 1 ? "\u0576\u0565\u0580" : ""}. ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${withDefiniteArticle(issue2.origin)}-\u0578\u0582\u0574`; + case "invalid_union": + return "\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"; + case "invalid_element": + return `\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${withDefiniteArticle(issue2.origin)}-\u0578\u0582\u0574`; + default: + return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574`; + } + }; +}, "error"); +function hy_default() { + return { + localeError: error24() + }; +} +__name(hy_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/id.js +var error25 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "karakter", verb: "memiliki" }, + file: { unit: "byte", verb: "memiliki" }, + array: { unit: "item", verb: "memiliki" }, + set: { unit: "item", verb: "memiliki" }, + map: { unit: "item", verb: "memiliki" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "alamat email", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "tanggal dan waktu format ISO", + date: "tanggal format ISO", + time: "jam format ISO", + duration: "durasi format ISO", + ipv4: "alamat IPv4", + ipv6: "alamat IPv6", + mac: "alamat MAC", + cidrv4: "rentang alamat IPv4", + cidrv6: "rentang alamat IPv6", + base64: "string dengan enkode base64", + base64url: "string dengan enkode base64url", + json_string: "string JSON", + e164: "angka E.164", + credit_card: "nomor kartu kredit", + currency_code: "kode mata uang", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Input tidak valid: diharapkan instanceof ${issue2.expected}, diterima ${received}`; + } + return `Input tidak valid: diharapkan ${expected}, diterima ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Input tidak valid: diharapkan ${stringifyPrimitive(issue2.values[0])}`; + return `Pilihan tidak valid: diharapkan salah satu dari ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Terlalu besar: diharapkan ${issue2.origin ?? "value"} memiliki ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemen"}`; + return `Terlalu besar: diharapkan ${issue2.origin ?? "value"} menjadi ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Terlalu kecil: diharapkan ${issue2.origin} memiliki ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Terlalu kecil: diharapkan ${issue2.origin} menjadi ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `String tidak valid: harus dimulai dengan "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `String tidak valid: harus berakhir dengan "${_issue.suffix}"`; + if (_issue.format === "includes") + return `String tidak valid: harus menyertakan "${_issue.includes}"`; + if (_issue.format === "regex") + return `String tidak valid: harus sesuai pola ${_issue.pattern}`; + return `${FormatDictionary[_issue.format] ?? issue2.format} tidak valid`; + } + case "not_multiple_of": + return `Angka tidak valid: harus kelipatan dari ${issue2.divisor}`; + case "unrecognized_keys": + return `Kunci tidak dikenali ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Kunci tidak valid di ${issue2.origin}`; + case "invalid_union": + return "Input tidak valid"; + case "invalid_element": + return `Nilai tidak valid di ${issue2.origin}`; + default: + return `Input tidak valid`; + } + }; +}, "error"); +function id_default() { + return { + localeError: error25() + }; +} +__name(id_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/is.js +var error26 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "stafi", verb: "a\xF0 hafa" }, + file: { unit: "b\xE6ti", verb: "a\xF0 hafa" }, + array: { unit: "hluti", verb: "a\xF0 hafa" }, + set: { unit: "hluti", verb: "a\xF0 hafa" }, + map: { unit: "hluti", verb: "a\xF0 hafa" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "gildi", + email: "netfang", + url: "vefsl\xF3\xF0", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO dagsetning og t\xEDmi", + date: "ISO dagsetning", + time: "ISO t\xEDmi", + duration: "ISO t\xEDmalengd", + ipv4: "IPv4 address", + ipv6: "IPv6 address", + mac: "MAC address", + cidrv4: "IPv4 range", + cidrv6: "IPv6 range", + base64: "base64-encoded strengur", + base64url: "base64url-encoded strengur", + json_string: "JSON strengur", + e164: "E.164 t\xF6lugildi", + credit_card: "kreditkortan\xFAmer", + currency_code: "gjaldmi\xF0ilsk\xF3\xF0i", + iban: "IBAN", + jwt: "JWT", + template_literal: "gildi" + }; + const TypeDictionary = { + nan: "NaN", + number: "n\xFAmer", + array: "fylki" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Rangt gildi: \xDE\xFA sl\xF3st inn ${received} \xFEar sem \xE1 a\xF0 vera instanceof ${issue2.expected}`; + } + return `Rangt gildi: \xDE\xFA sl\xF3st inn ${received} \xFEar sem \xE1 a\xF0 vera ${expected}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Rangt gildi: gert r\xE1\xF0 fyrir ${stringifyPrimitive(issue2.values[0])}`; + return `\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin ?? "gildi"} hafi ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "hluti"}`; + return `Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin ?? "gildi"} s\xE9 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin} hafi ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin} s\xE9 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${_issue.includes}"`; + if (_issue.format === "regex") + return `\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${_issue.pattern}`; + return `Rangt ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${issue2.divisor}`; + case "unrecognized_keys": + return `\xD3\xFEekkt ${issue2.keys.length > 1 ? "ir lyklar" : "ur lykill"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Rangur lykill \xED ${issue2.origin}`; + case "invalid_union": + return "Rangt gildi"; + case "invalid_element": + return `Rangt gildi \xED ${issue2.origin}`; + default: + return `Rangt gildi`; + } + }; +}, "error"); +function is_default() { + return { + localeError: error26() + }; +} +__name(is_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/it.js +var error27 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "caratteri", verb: "avere" }, + file: { unit: "byte", verb: "avere" }, + array: { unit: "elementi", verb: "avere" }, + set: { unit: "elementi", verb: "avere" }, + map: { unit: "elementi", verb: "avere" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "indirizzo email", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "data e ora ISO", + date: "data ISO", + time: "ora ISO", + duration: "durata ISO", + ipv4: "indirizzo IPv4", + ipv6: "indirizzo IPv6", + mac: "indirizzo MAC", + cidrv4: "intervallo IPv4", + cidrv6: "intervallo IPv6", + base64: "stringa codificata in base64", + base64url: "URL codificata in base64", + json_string: "stringa JSON", + e164: "numero E.164", + credit_card: "numero di carta di credito", + currency_code: "codice valuta", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN", + number: "numero", + array: "vettore" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Input non valido: atteso instanceof ${issue2.expected}, ricevuto ${received}`; + } + return `Input non valido: atteso ${expected}, ricevuto ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Input non valido: atteso ${stringifyPrimitive(issue2.values[0])}`; + return `Opzione non valida: atteso uno tra ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Troppo grande: ${issue2.origin ?? "valore"} deve avere ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementi"}`; + return `Troppo grande: ${issue2.origin ?? "valore"} deve essere ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Troppo piccolo: ${issue2.origin} deve avere ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Troppo piccolo: ${issue2.origin} deve essere ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Stringa non valida: deve iniziare con "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Stringa non valida: deve terminare con "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Stringa non valida: deve includere "${_issue.includes}"`; + if (_issue.format === "regex") + return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`; + return `Input non valido: ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Numero non valido: deve essere un multiplo di ${issue2.divisor}`; + case "unrecognized_keys": + return `Chiav${issue2.keys.length > 1 ? "i" : "e"} non riconosciut${issue2.keys.length > 1 ? "e" : "a"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Chiave non valida in ${issue2.origin}`; + case "invalid_union": + return "Input non valido"; + case "invalid_element": + return `Valore non valido in ${issue2.origin}`; + default: + return `Input non valido`; + } + }; +}, "error"); +function it_default() { + return { + localeError: error27() + }; +} +__name(it_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ja.js +var error28 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" }, + file: { unit: "\u30D0\u30A4\u30C8", verb: "\u3067\u3042\u308B" }, + array: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" }, + set: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" }, + map: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u5165\u529B\u5024", + email: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9", + url: "URL", + emoji: "\u7D75\u6587\u5B57", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO\u65E5\u6642", + date: "ISO\u65E5\u4ED8", + time: "ISO\u6642\u523B", + duration: "ISO\u671F\u9593", + ipv4: "IPv4\u30A2\u30C9\u30EC\u30B9", + ipv6: "IPv6\u30A2\u30C9\u30EC\u30B9", + mac: "MAC\u30A2\u30C9\u30EC\u30B9", + cidrv4: "IPv4\u7BC4\u56F2", + cidrv6: "IPv6\u7BC4\u56F2", + base64: "base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217", + base64url: "base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217", + json_string: "JSON\u6587\u5B57\u5217", + e164: "E.164\u756A\u53F7", + credit_card: "\u30AF\u30EC\u30B8\u30C3\u30C8\u30AB\u30FC\u30C9\u756A\u53F7", + currency_code: "\u901A\u8CA8\u30B3\u30FC\u30C9", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u5165\u529B\u5024" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u6570\u5024", + array: "\u914D\u5217" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u7121\u52B9\u306A\u5165\u529B: instanceof ${issue2.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`; + } + return `\u7121\u52B9\u306A\u5165\u529B: ${expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u7121\u52B9\u306A\u5165\u529B: ${stringifyPrimitive(issue2.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`; + return `\u7121\u52B9\u306A\u9078\u629E: ${joinValues(issue2.values, "\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + case "too_big": { + const adj = issue2.inclusive ? "\u4EE5\u4E0B\u3067\u3042\u308B" : "\u3088\u308A\u5C0F\u3055\u3044"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue2.origin ?? "\u5024"}\u306F${issue2.maximum.toString()}${sizing.unit ?? "\u8981\u7D20"}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue2.origin ?? "\u5024"}\u306F${issue2.maximum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + } + case "too_small": { + const adj = issue2.inclusive ? "\u4EE5\u4E0A\u3067\u3042\u308B" : "\u3088\u308A\u5927\u304D\u3044"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue2.origin}\u306F${issue2.minimum.toString()}${sizing.unit}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue2.origin}\u306F${issue2.minimum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + if (_issue.format === "ends_with") + return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + if (_issue.format === "includes") + return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + if (_issue.format === "regex") + return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${_issue.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + return `\u7121\u52B9\u306A${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u7121\u52B9\u306A\u6570\u5024: ${issue2.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; + case "unrecognized_keys": + return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${issue2.keys.length > 1 ? "\u7FA4" : ""}: ${joinValues(issue2.keys, "\u3001")}`; + case "invalid_key": + return `${issue2.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`; + case "invalid_union": + return "\u7121\u52B9\u306A\u5165\u529B"; + case "invalid_element": + return `${issue2.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`; + default: + return `\u7121\u52B9\u306A\u5165\u529B`; + } + }; +}, "error"); +function ja_default() { + return { + localeError: error28() + }; +} +__name(ja_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ka.js +var error29 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, + file: { unit: "\u10D1\u10D0\u10D8\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, + array: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, + set: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, + map: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0", + email: "\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", + url: "URL", + emoji: "\u10D4\u10DB\u10DD\u10EF\u10D8", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD", + date: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8", + time: "\u10D3\u10E0\u10DD", + duration: "\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0", + ipv4: "IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", + ipv6: "IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", + mac: "MAC \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", + cidrv4: "IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8", + cidrv6: "IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8", + base64: "base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8", + base64url: "base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8", + json_string: "JSON \u10D5\u10D4\u10DA\u10D8", + e164: "E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8", + credit_card: "\u10E1\u10D0\u10D9\u10E0\u10D4\u10D3\u10D8\u10E2\u10DD \u10D1\u10D0\u10E0\u10D0\u10D7\u10D8\u10E1 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8", + currency_code: "\u10D5\u10D0\u10DA\u10E3\u10E2\u10D8\u10E1 \u10D9\u10DD\u10D3\u10D8", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8", + string: "\u10D5\u10D4\u10DA\u10D8", + boolean: "\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8", + function: "\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0", + array: "\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${issue2.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`; + } + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${stringifyPrimitive(issue2.values[0])}`; + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${joinValues(issue2.values, "|")}-\u10D3\u10D0\u10DC`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin ?? "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit}`; + return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin ?? "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.prefix}"-\u10D8\u10D7`; + } + if (_issue.format === "ends_with") + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.suffix}"-\u10D8\u10D7`; + if (_issue.format === "includes") + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${_issue.includes}"-\u10E1`; + if (_issue.format === "regex") + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`; + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${issue2.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`; + case "unrecognized_keys": + return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${issue2.keys.length > 1 ? "\u10D4\u10D1\u10D8" : "\u10D8"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${issue2.origin}-\u10E8\u10D8`; + case "invalid_union": + return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"; + case "invalid_element": + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${issue2.origin}-\u10E8\u10D8`; + default: + return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0`; + } + }; +}, "error"); +function ka_default() { + return { + localeError: error29() + }; +} +__name(ka_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/km.js +var error30 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, + file: { unit: "\u1794\u17C3", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, + array: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, + set: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, + map: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B", + email: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B", + url: "URL", + emoji: "\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO", + date: "\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO", + time: "\u1798\u17C9\u17C4\u1784 ISO", + duration: "\u179A\u1799\u17C8\u1796\u17C1\u179B ISO", + ipv4: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4", + ipv6: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6", + mac: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 MAC", + cidrv4: "\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4", + cidrv6: "\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6", + base64: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64", + base64url: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url", + json_string: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON", + e164: "\u179B\u17C1\u1781 E.164", + credit_card: "\u179B\u17C1\u1781\u1794\u17D0\u178E\u17D2\u178E\u17A5\u178E\u1791\u17B6\u1793", + currency_code: "\u1780\u17BC\u178A\u179A\u17BC\u1794\u17B7\u1799\u1794\u17D0\u178E\u17D2\u178E", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u179B\u17C1\u1781", + array: "\u17A2\u17B6\u179A\u17C1 (Array)", + null: "\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${issue2.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`; + } + return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${stringifyPrimitive(issue2.values[0])}`; + return `\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin ?? "\u178F\u1798\u17D2\u179B\u17C3"} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "\u1792\u17B6\u178F\u17BB"}`; + return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin ?? "\u178F\u1798\u17D2\u179B\u17C3"} ${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin} ${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${_issue.pattern}`; + return `\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${issue2.divisor}`; + case "unrecognized_keys": + return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue2.origin}`; + case "invalid_union": + return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`; + case "invalid_element": + return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue2.origin}`; + default: + return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`; + } + }; +}, "error"); +function km_default() { + return { + localeError: error30() + }; +} +__name(km_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/kh.js +function kh_default() { + return km_default(); +} +__name(kh_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/kn.js +var error31 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0C85\u0C95\u0CCD\u0CB7\u0CB0\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, + file: { unit: "\u0CAC\u0CC8\u0C9F\u0CCD\u200C\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, + array: { unit: "\u0CB5\u0CB8\u0CCD\u0CA4\u0CC1\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, + set: { unit: "\u0CB5\u0CB8\u0CCD\u0CA4\u0CC1\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, + map: { unit: "entries", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0C87\u0CA8\u0CCD\u0CAA\u0CC1\u0C9F\u0CCD", + email: "email \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0CA6\u0CBF\u0CA8\u0CBE\u0C82\u0C95\u0CA6 \u0CB8\u0CAE\u0CAF", + date: "ISO \u0CA6\u0CBF\u0CA8\u0CBE\u0C82\u0C95", + time: "ISO \u0CB8\u0CAE\u0CAF", + duration: "ISO \u0C85\u0CB5\u0CA7\u0CBF", + ipv4: "IPv4 \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", + ipv6: "IPv6 \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", + mac: "MAC \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", + cidrv4: "IPv4 \u0CB5\u0CCD\u0CAF\u0CBE\u0CAA\u0CCD\u0CA4\u0CBF\u0CAF", + cidrv6: "IPv6 \u0CB5\u0CCD\u0CAF\u0CBE\u0CAA\u0CCD\u0CA4\u0CBF\u0CAF", + base64: "base64-encoded\u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD", + base64url: "base64url-encoded\u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD", + json_string: "JSON\u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD", + e164: "E.164 \u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6", + credit_card: "\u0C95\u0CCD\u0CB0\u0CC6\u0CA1\u0CBF\u0C9F\u0CCD \u0C95\u0CBE\u0CB0\u0CCD\u0CA1\u0CCD \u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6", + currency_code: "\u0C95\u0CB0\u0CC6\u0CA8\u0CCD\u0CB8\u0CBF \u0C95\u0CCB\u0CA1\u0CCD", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0C87\u0CA8\u0CCD\u0CAA\u0CC1\u0C9F\u0CCD" + }; + const TypeDictionary = { + // Compatibility: "nan" -> "NaN" for display + nan: "NaN" + // All other type names omitted - they fall back to raw values via ?? operator + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${expected}, \u0CB8\u0CCD\u0CB5\u0CC0\u0C95\u0CB0\u0CBF\u0CB8\u0CBF\u0CA6\u0CA8\u0CC1 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C86\u0CAF\u0CCD\u0C95\u0CC6: \u0C87\u0CB5\u0CC1\u0C97\u0CB3\u0CB2\u0CCD\u0CB2\u0CBF \u0C92\u0C82\u0CA6\u0CA8\u0CCD\u0CA8\u0CC1 \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0CA6\u0CCA\u0CA1\u0CCD\u0CA1\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin ?? "value"} \u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0C85\u0C82\u0CB6\u0C97\u0CB3\u0CC1"}`; + return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0CA6\u0CCA\u0CA1\u0CCD\u0CA1\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin ?? "value"} \u0C8E\u0C82\u0CA6\u0CC1 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0C9A\u0CBF\u0C95\u0CCD\u0C95\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin} \u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0C9A\u0CBF\u0C95\u0CCD\u0C95\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin} \u0C8E\u0C82\u0CA6\u0CC1 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0C87\u0CA6\u0CB0\u0CCA\u0C82\u0CA6\u0CBF\u0C97\u0CC6 \u0CAA\u0CCD\u0CB0\u0CBE\u0CB0\u0C82\u0CAD\u0CBF\u0CB8\u0CAC\u0CC7\u0C95\u0CC1 "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0C87\u0CA6\u0CB0\u0CCA\u0C82\u0CA6\u0CBF\u0C97\u0CC6 \u0C95\u0CCA\u0CA8\u0CC6\u0C97\u0CCA\u0CB3\u0CCD\u0CB3\u0CAC\u0CC7\u0C95\u0CC1 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0C92\u0CB3\u0C97\u0CCA\u0C82\u0CA1\u0CBF\u0CB0\u0CAC\u0CC7\u0C95\u0CC1 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0CAE\u0CBE\u0CA6\u0CB0\u0CBF\u0C97\u0CC6 \u0CB9\u0CCA\u0C82\u0CA6\u0CBF\u0C95\u0CC6\u0CAF\u0CBE\u0C97\u0CAC\u0CC7\u0C95\u0CC1 ${_issue.pattern}`; + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6: \u0CAC\u0CB9\u0CC1\u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6\u0CAF\u0CBE\u0C97\u0CBF\u0CB0\u0CAC\u0CC7\u0C95\u0CC1 ${issue2.divisor}`; + case "unrecognized_keys": + return `\u0C97\u0CC1\u0CB0\u0CC1\u0CA4\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CA6 \u0C95\u0CC0 ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0C95\u0CC0 \u0C87\u0CA8\u0CCD ${issue2.origin}`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CA4\u0CBE\u0CB0\u0CA4\u0CAE\u0CCD\u0CAF \u0CAE\u0CCC\u0CB2\u0CCD\u0CAF. \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${opts}`; + } + return "\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD"; + case "invalid_element": + return `\u0CB0\u0CB2\u0CCD\u0CB2\u0CBF \u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CAE\u0CCC\u0CB2\u0CCD\u0CAF ${issue2.origin}`; + default: + return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD`; + } + }; +}, "error"); +function kn_default() { + return { + localeError: error31() + }; +} +__name(kn_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ko.js +var error32 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\uBB38\uC790", verb: "to have" }, + file: { unit: "\uBC14\uC774\uD2B8", verb: "to have" }, + array: { unit: "\uAC1C", verb: "to have" }, + set: { unit: "\uAC1C", verb: "to have" }, + map: { unit: "\uAC1C", verb: "to have" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\uC785\uB825", + email: "\uC774\uBA54\uC77C \uC8FC\uC18C", + url: "URL", + emoji: "\uC774\uBAA8\uC9C0", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \uB0A0\uC9DC\uC2DC\uAC04", + date: "ISO \uB0A0\uC9DC", + time: "ISO \uC2DC\uAC04", + duration: "ISO \uAE30\uAC04", + ipv4: "IPv4 \uC8FC\uC18C", + ipv6: "IPv6 \uC8FC\uC18C", + mac: "MAC \uC8FC\uC18C", + cidrv4: "IPv4 \uBC94\uC704", + cidrv6: "IPv6 \uBC94\uC704", + base64: "base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4", + base64url: "base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4", + json_string: "JSON \uBB38\uC790\uC5F4", + e164: "E.164 \uBC88\uD638", + credit_card: "\uC2E0\uC6A9\uCE74\uB4DC \uBC88\uD638", + currency_code: "\uD1B5\uD654 \uCF54\uB4DC", + iban: "IBAN", + jwt: "JWT", + template_literal: "\uC785\uB825" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${issue2.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`; + } + return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${stringifyPrimitive(issue2.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`; + return `\uC798\uBABB\uB41C \uC635\uC158: ${joinValues(issue2.values, "\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`; + case "too_big": { + const adj = issue2.inclusive ? "\uC774\uD558" : "\uBBF8\uB9CC"; + const suffix = adj === "\uBBF8\uB9CC" ? "\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" : "\uC5EC\uC57C \uD569\uB2C8\uB2E4"; + const sizing = getSizing(issue2.origin); + const unit = sizing?.unit ?? "\uC694\uC18C"; + if (sizing) + return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue2.maximum.toString()}${unit} ${adj}${suffix}`; + return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue2.maximum.toString()} ${adj}${suffix}`; + } + case "too_small": { + const adj = issue2.inclusive ? "\uC774\uC0C1" : "\uCD08\uACFC"; + const suffix = adj === "\uC774\uC0C1" ? "\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" : "\uC5EC\uC57C \uD569\uB2C8\uB2E4"; + const sizing = getSizing(issue2.origin); + const unit = sizing?.unit ?? "\uC694\uC18C"; + if (sizing) { + return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue2.minimum.toString()}${unit} ${adj}${suffix}`; + } + return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue2.minimum.toString()} ${adj}${suffix}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`; + } + if (_issue.format === "ends_with") + return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`; + if (_issue.format === "includes") + return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`; + if (_issue.format === "regex") + return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${_issue.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`; + return `\uC798\uBABB\uB41C ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\uC798\uBABB\uB41C \uC22B\uC790: ${issue2.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`; + case "unrecognized_keys": + return `\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\uC798\uBABB\uB41C \uD0A4: ${issue2.origin}`; + case "invalid_union": + return `\uC798\uBABB\uB41C \uC785\uB825`; + case "invalid_element": + return `\uC798\uBABB\uB41C \uAC12: ${issue2.origin}`; + default: + return `\uC798\uBABB\uB41C \uC785\uB825`; + } + }; +}, "error"); +function ko_default() { + return { + localeError: error32() + }; +} +__name(ko_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/lt.js +var capitalizeFirstCharacter = /* @__PURE__ */ __name((text2) => { + return text2.charAt(0).toUpperCase() + text2.slice(1); +}, "capitalizeFirstCharacter"); +function getUnitTypeFromNumber(number4) { + const abs = Math.abs(number4); + const last = abs % 10; + const last2 = abs % 100; + if (last2 >= 11 && last2 <= 19 || last === 0) + return "many"; + if (last === 1) + return "one"; + return "few"; +} +__name(getUnitTypeFromNumber, "getUnitTypeFromNumber"); +var error33 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { + unit: { + one: "simbolis", + few: "simboliai", + many: "simboli\u0173" + }, + verb: { + smaller: { + inclusive: "turi b\u016Bti ne ilgesn\u0117 kaip", + notInclusive: "turi b\u016Bti trumpesn\u0117 kaip" + }, + bigger: { + inclusive: "turi b\u016Bti ne trumpesn\u0117 kaip", + notInclusive: "turi b\u016Bti ilgesn\u0117 kaip" + } + } + }, + file: { + unit: { + one: "baitas", + few: "baitai", + many: "bait\u0173" + }, + verb: { + smaller: { + inclusive: "turi b\u016Bti ne didesnis kaip", + notInclusive: "turi b\u016Bti ma\u017Eesnis kaip" + }, + bigger: { + inclusive: "turi b\u016Bti ne ma\u017Eesnis kaip", + notInclusive: "turi b\u016Bti didesnis kaip" + } + } + }, + array: { + unit: { + one: "element\u0105", + few: "elementus", + many: "element\u0173" + }, + verb: { + smaller: { + inclusive: "turi tur\u0117ti ne daugiau kaip", + notInclusive: "turi tur\u0117ti ma\u017Eiau kaip" + }, + bigger: { + inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip", + notInclusive: "turi tur\u0117ti daugiau kaip" + } + } + }, + set: { + unit: { + one: "element\u0105", + few: "elementus", + many: "element\u0173" + }, + verb: { + smaller: { + inclusive: "turi tur\u0117ti ne daugiau kaip", + notInclusive: "turi tur\u0117ti ma\u017Eiau kaip" + }, + bigger: { + inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip", + notInclusive: "turi tur\u0117ti daugiau kaip" + } + } + } + }; + function getSizing(origin, unitType, inclusive, targetShouldBe) { + const result = Sizable[origin] ?? null; + if (result === null) + return result; + return { + unit: result.unit[unitType], + verb: result.verb[targetShouldBe][inclusive ? "inclusive" : "notInclusive"] + }; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u012Fvestis", + email: "el. pa\u0161to adresas", + url: "URL", + emoji: "jaustukas", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO data ir laikas", + date: "ISO data", + time: "ISO laikas", + duration: "ISO trukm\u0117", + ipv4: "IPv4 adresas", + ipv6: "IPv6 adresas", + mac: "MAC adresas", + cidrv4: "IPv4 tinklo prefiksas (CIDR)", + cidrv6: "IPv6 tinklo prefiksas (CIDR)", + base64: "base64 u\u017Ekoduota eilut\u0117", + base64url: "base64url u\u017Ekoduota eilut\u0117", + json_string: "JSON eilut\u0117", + e164: "E.164 numeris", + credit_card: "kredito kortel\u0117s numeris", + currency_code: "valiutos kodas", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u012Fvestis" + }; + const TypeDictionary = { + nan: "NaN", + number: "skai\u010Dius", + bigint: "sveikasis skai\u010Dius", + string: "eilut\u0117", + boolean: "login\u0117 reik\u0161m\u0117", + undefined: "neapibr\u0117\u017Eta reik\u0161m\u0117", + function: "funkcija", + symbol: "simbolis", + array: "masyvas", + object: "objektas", + null: "nulin\u0117 reik\u0161m\u0117" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Gautas tipas ${received}, o tik\u0117tasi - instanceof ${issue2.expected}`; + } + return `Gautas tipas ${received}, o tik\u0117tasi - ${expected}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Privalo b\u016Bti ${stringifyPrimitive(issue2.values[0])}`; + return `Privalo b\u016Bti vienas i\u0161 ${joinValues(issue2.values, "|")} pasirinkim\u0173`; + case "too_big": { + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + const sizing = getSizing(issue2.origin, getUnitTypeFromNumber(Number(issue2.maximum)), issue2.inclusive ?? false, "smaller"); + if (sizing?.verb) + return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} ${sizing.verb} ${issue2.maximum.toString()} ${sizing.unit ?? "element\u0173"}`; + const adj = issue2.inclusive ? "ne didesnis kaip" : "ma\u017Eesnis kaip"; + return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue2.maximum.toString()} ${sizing?.unit}`; + } + case "too_small": { + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + const sizing = getSizing(issue2.origin, getUnitTypeFromNumber(Number(issue2.minimum)), issue2.inclusive ?? false, "bigger"); + if (sizing?.verb) + return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} ${sizing.verb} ${issue2.minimum.toString()} ${sizing.unit ?? "element\u0173"}`; + const adj = issue2.inclusive ? "ne ma\u017Eesnis kaip" : "didesnis kaip"; + return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue2.minimum.toString()} ${sizing?.unit}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Eilut\u0117 privalo prasid\u0117ti "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `Eilut\u0117 privalo pasibaigti "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Eilut\u0117 privalo \u012Ftraukti "${_issue.includes}"`; + if (_issue.format === "regex") + return `Eilut\u0117 privalo atitikti ${_issue.pattern}`; + return `Neteisingas ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Skai\u010Dius privalo b\u016Bti ${issue2.divisor} kartotinis.`; + case "unrecognized_keys": + return `Neatpa\u017Eint${issue2.keys.length > 1 ? "i" : "as"} rakt${issue2.keys.length > 1 ? "ai" : "as"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return "Rastas klaidingas raktas"; + case "invalid_union": + return "Klaidinga \u012Fvestis"; + case "invalid_element": { + const origin = TypeDictionary[issue2.origin] ?? issue2.origin; + return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`; + } + default: + return "Klaidinga \u012Fvestis"; + } + }; +}, "error"); +function lt_default() { + return { + localeError: error33() + }; +} +__name(lt_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/mk.js +var error34 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, + file: { unit: "\u0431\u0430\u0458\u0442\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, + array: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, + set: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, + map: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0432\u043D\u0435\u0441", + email: "\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430", + url: "URL", + emoji: "\u0435\u043C\u043E\u045F\u0438", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435", + date: "ISO \u0434\u0430\u0442\u0443\u043C", + time: "ISO \u0432\u0440\u0435\u043C\u0435", + duration: "ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435", + ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441\u0430", + ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441\u0430", + mac: "MAC \u0430\u0434\u0440\u0435\u0441\u0430", + cidrv4: "IPv4 \u043E\u043F\u0441\u0435\u0433", + cidrv6: "IPv6 \u043E\u043F\u0441\u0435\u0433", + base64: "base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430", + base64url: "base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430", + json_string: "JSON \u043D\u0438\u0437\u0430", + e164: "E.164 \u0431\u0440\u043E\u0458", + credit_card: "\u0431\u0440\u043E\u0458 \u043D\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u0447\u043A\u0430", + currency_code: "\u043A\u043E\u0434 \u043D\u0430 \u0432\u0430\u043B\u0443\u0442\u0430", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0432\u043D\u0435\u0441" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0431\u0440\u043E\u0458", + array: "\u043D\u0438\u0437\u0430" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${issue2.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`; + } + return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Invalid input: expected ${stringifyPrimitive(issue2.values[0])}`; + return `\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin ?? "\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`; + return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin ?? "\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${_issue.pattern}`; + return `Invalid ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${issue2.divisor}`; + case "unrecognized_keys": + return `${issue2.keys.length > 1 ? "\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438" : "\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${issue2.origin}`; + case "invalid_union": + return "\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"; + case "invalid_element": + return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${issue2.origin}`; + default: + return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441`; + } + }; +}, "error"); +function mk_default() { + return { + localeError: error34() + }; +} +__name(mk_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ms.js +var error35 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "aksara", verb: "mempunyai" }, + file: { unit: "bait", verb: "mempunyai" }, + array: { unit: "elemen", verb: "mempunyai" }, + set: { unit: "elemen", verb: "mempunyai" }, + map: { unit: "elemen", verb: "mempunyai" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "alamat e-mel", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "tarikh masa ISO", + date: "tarikh ISO", + time: "masa ISO", + duration: "tempoh ISO", + ipv4: "alamat IPv4", + ipv6: "alamat IPv6", + mac: "alamat MAC", + cidrv4: "julat IPv4", + cidrv6: "julat IPv6", + base64: "string dikodkan base64", + base64url: "string dikodkan base64url", + json_string: "string JSON", + e164: "nombor E.164", + credit_card: "nombor kad kredit", + currency_code: "kod mata wang", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN", + number: "nombor" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Input tidak sah: dijangka instanceof ${issue2.expected}, diterima ${received}`; + } + return `Input tidak sah: dijangka ${expected}, diterima ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Input tidak sah: dijangka ${stringifyPrimitive(issue2.values[0])}`; + return `Pilihan tidak sah: dijangka salah satu daripada ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Terlalu besar: dijangka ${issue2.origin ?? "nilai"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemen"}`; + return `Terlalu besar: dijangka ${issue2.origin ?? "nilai"} adalah ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Terlalu kecil: dijangka ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Terlalu kecil: dijangka ${issue2.origin} adalah ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `String tidak sah: mesti bermula dengan "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `String tidak sah: mesti berakhir dengan "${_issue.suffix}"`; + if (_issue.format === "includes") + return `String tidak sah: mesti mengandungi "${_issue.includes}"`; + if (_issue.format === "regex") + return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`; + return `${FormatDictionary[_issue.format] ?? issue2.format} tidak sah`; + } + case "not_multiple_of": + return `Nombor tidak sah: perlu gandaan ${issue2.divisor}`; + case "unrecognized_keys": + return `Kunci tidak dikenali: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Kunci tidak sah dalam ${issue2.origin}`; + case "invalid_union": + return "Input tidak sah"; + case "invalid_element": + return `Nilai tidak sah dalam ${issue2.origin}`; + default: + return `Input tidak sah`; + } + }; +}, "error"); +function ms_default() { + return { + localeError: error35() + }; +} +__name(ms_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ne.js +var error36 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0905\u0915\u094D\u0937\u0930", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, + file: { unit: "\u092C\u093E\u0907\u091F", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, + array: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, + set: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, + map: { unit: "\u092A\u094D\u0930\u0935\u093F\u0937\u094D\u091F\u093F", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0907\u0928\u092A\u0941\u091F", + email: "\u0907\u092E\u0947\u0932 \u0920\u0947\u0917\u093E\u0928\u093E", + url: "URL", + emoji: "\u0907\u092E\u094B\u091C\u0940", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u092E\u093F\u0924\u093F \u0930 \u0938\u092E\u092F", + date: "ISO \u092E\u093F\u0924\u093F", + time: "ISO \u0938\u092E\u092F", + duration: "ISO \u0905\u0935\u0927\u093F", + ipv4: "IPv4 \u0920\u0947\u0917\u093E\u0928\u093E", + ipv6: "IPv6 \u0920\u0947\u0917\u093E\u0928\u093E", + mac: "MAC \u0920\u0947\u0917\u093E\u0928\u093E", + cidrv4: "IPv4 \u0926\u093E\u092F\u0930\u093E", + cidrv6: "IPv6 \u0926\u093E\u092F\u0930\u093E", + base64: "base64-\u0907\u0928\u094D\u0915\u094B\u0921 \u0917\u0930\u093F\u090F\u0915\u094B \u0938\u094D\u091F\u094D\u0930\u093F\u0919", + base64url: "base64url-\u0907\u0928\u094D\u0915\u094B\u0921 \u0917\u0930\u093F\u090F\u0915\u094B \u0938\u094D\u091F\u094D\u0930\u093F\u0919", + json_string: "JSON \u0938\u094D\u091F\u094D\u0930\u093F\u0919", + e164: "E.164 \u0928\u092E\u094D\u092C\u0930", + credit_card: "\u0915\u094D\u0930\u0947\u0921\u093F\u091F \u0915\u093E\u0930\u094D\u0921 \u0928\u092E\u094D\u092C\u0930", + currency_code: "\u092E\u0941\u0926\u094D\u0930\u093E \u0915\u094B\u0921", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0907\u0928\u092A\u0941\u091F" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${expected}, \u092A\u094D\u0930\u093E\u092A\u094D\u0924 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0935\u093F\u0915\u0932\u094D\u092A: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u092E\u093E\u0928\u0939\u0930\u0942 \u092E\u0927\u094D\u092F\u0947 \u090F\u0915 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0927\u0947\u0930\u0948 \u0920\u0942\u0932\u094B: ${issue2.origin ?? "\u092E\u093E\u0928"} \u092E\u093E ${adj}${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; + return `\u0927\u0947\u0930\u0948 \u0920\u0942\u0932\u094B: ${issue2.origin ?? "\u092E\u093E\u0928"} ${adj}${issue2.maximum.toString()} \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0927\u0947\u0930\u0948 \u0938\u093E\u0928\u094B: ${issue2.origin} \u092E\u093E ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; + return `\u0927\u0947\u0930\u0948 \u0938\u093E\u0928\u094B: ${issue2.origin} ${adj}${issue2.minimum.toString()} \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: "${_issue.prefix}" \u092C\u093E\u091F \u0938\u0941\u0930\u0941 \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; + if (_issue.format === "ends_with") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: "${_issue.suffix}" \u092E\u093E \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; + if (_issue.format === "includes") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: "${_issue.includes}" \u0938\u092E\u093E\u0935\u0947\u0936 \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; + if (_issue.format === "regex") + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: \u0922\u093E\u0901\u091A\u093E ${_issue.pattern} \u0938\u0901\u0917 \u092E\u0947\u0932 \u0916\u093E\u0928\u0941\u092A\u0930\u094D\u091B`; + return `\u0905\u092E\u093E\u0928\u094D\u092F ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u0902\u0916\u094D\u092F\u093E: ${issue2.divisor} \u0915\u094B \u0917\u0941\u0923\u091C \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; + case "unrecognized_keys": + return `\u0905\u092A\u0930\u093F\u091A\u093F\u0924 \u0915\u0941\u091E\u094D\u091C\u0940${issue2.keys.length > 1 ? "\u0939\u0930\u0942" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0915\u0941\u091E\u094D\u091C\u0940: ${issue2.origin} \u092E\u093E`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0921\u093F\u0938\u094D\u0915\u094D\u0930\u093F\u092E\u093F\u0928\u0947\u091F\u0930 \u092E\u093E\u0928: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${opts}`; + } + return "\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F"; + case "invalid_element": + return `\u0905\u092E\u093E\u0928\u094D\u092F \u092E\u093E\u0928: ${issue2.origin} \u092E\u093E`; + default: + return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F`; + } + }; +}, "error"); +function ne_default() { + return { + localeError: error36() + }; +} +__name(ne_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/nl.js +var error37 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "tekens", verb: "heeft" }, + file: { unit: "bytes", verb: "heeft" }, + array: { unit: "elementen", verb: "heeft" }, + set: { unit: "elementen", verb: "heeft" }, + map: { unit: "elementen", verb: "heeft" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "invoer", + email: "emailadres", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO datum en tijd", + date: "ISO datum", + time: "ISO tijd", + duration: "ISO duur", + ipv4: "IPv4-adres", + ipv6: "IPv6-adres", + mac: "MAC-adres", + cidrv4: "IPv4-bereik", + cidrv6: "IPv6-bereik", + base64: "base64-gecodeerde tekst", + base64url: "base64 URL-gecodeerde tekst", + json_string: "JSON string", + e164: "E.164-nummer", + credit_card: "creditcardnummer", + currency_code: "valutacode", + iban: "IBAN", + jwt: "JWT", + template_literal: "invoer" + }; + const TypeDictionary = { + nan: "NaN", + number: "getal" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Ongeldige invoer: verwacht instanceof ${issue2.expected}, ontving ${received}`; + } + return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Ongeldige invoer: verwacht ${stringifyPrimitive(issue2.values[0])}`; + return `Ongeldige optie: verwacht \xE9\xE9n van ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + const longName = issue2.origin === "date" ? "laat" : issue2.origin === "string" ? "lang" : "groot"; + if (sizing) + return `Te ${longName}: verwacht dat ${issue2.origin ?? "waarde"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementen"} ${sizing.verb}`; + return `Te ${longName}: verwacht dat ${issue2.origin ?? "waarde"} ${adj}${issue2.maximum.toString()} is`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + const shortName = issue2.origin === "date" ? "vroeg" : issue2.origin === "string" ? "kort" : "klein"; + if (sizing) { + return `Te ${shortName}: verwacht dat ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; + } + return `Te ${shortName}: verwacht dat ${issue2.origin} ${adj}${issue2.minimum.toString()} is`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Ongeldige tekst: moet met "${_issue.prefix}" beginnen`; + } + if (_issue.format === "ends_with") + return `Ongeldige tekst: moet op "${_issue.suffix}" eindigen`; + if (_issue.format === "includes") + return `Ongeldige tekst: moet "${_issue.includes}" bevatten`; + if (_issue.format === "regex") + return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`; + return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Ongeldig getal: moet een veelvoud van ${issue2.divisor} zijn`; + case "unrecognized_keys": + return `Onbekende key${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Ongeldige key in ${issue2.origin}`; + case "invalid_union": + return "Ongeldige invoer"; + case "invalid_element": + return `Ongeldige waarde in ${issue2.origin}`; + default: + return `Ongeldige invoer`; + } + }; +}, "error"); +function nl_default() { + return { + localeError: error37() + }; +} +__name(nl_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/nn.js +var error38 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "teikn", verb: "\xE5 ha" }, + file: { unit: "bytes", verb: "\xE5 ha" }, + array: { unit: "element", verb: "\xE5 innehalde" }, + set: { unit: "element", verb: "\xE5 innehalde" }, + map: { unit: "element", verb: "\xE5 innehalde" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "e-postadresse", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO dato- og klokkeslett", + date: "ISO-dato", + time: "ISO-klokkeslett", + duration: "ISO-varigheit", + ipv4: "IPv4-adresse", + ipv6: "IPv6-adresse", + mac: "MAC-adresse", + cidrv4: "IPv4-spekter", + cidrv6: "IPv6-spekter", + base64: "base64-enkoda streng", + base64url: "base64url-enkoda streng", + json_string: "JSON-streng", + e164: "E.164-nummer", + credit_card: "kredittkortnummer", + currency_code: "valutakode", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN", + number: "tal", + array: "liste" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Ugyldig input: forventa instanceof ${issue2.expected}, fekk ${received}`; + } + return `Ugyldig input: forventa ${expected}, fekk ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Ugyldig verdi: forventa ${stringifyPrimitive(issue2.values[0])}`; + return `Ugyldig val: forventa eitt av ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `For stor(t): forventa ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; + return `For stor(t): forventa ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `For lite(n): forventa ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `For lite(n): forventa ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Ugyldig streng: m\xE5 starte med "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Ugyldig streng: m\xE5 slutte med "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Ugyldig streng: m\xE5 innehalde "${_issue.includes}"`; + if (_issue.format === "regex") + return `Ugyldig streng: m\xE5 matche m\xF8nsteret ${_issue.pattern}`; + return `Ugyldig ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Ugyldig tal: m\xE5 vere eit multiplum av ${issue2.divisor}`; + case "unrecognized_keys": + return `${issue2.keys.length > 1 ? "Ukjende n\xF8klar" : "Ukjend n\xF8kkel"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Ugyldig n\xF8kkel i ${issue2.origin}`; + case "invalid_union": + return "Ugyldig input"; + case "invalid_element": + return `Ugyldig verdi i ${issue2.origin}`; + default: + return `Ugyldig input`; + } + }; +}, "error"); +function nn_default() { + return { + localeError: error38() + }; +} +__name(nn_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/no.js +var error39 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "tegn", verb: "\xE5 ha" }, + file: { unit: "bytes", verb: "\xE5 ha" }, + array: { unit: "elementer", verb: "\xE5 inneholde" }, + set: { unit: "elementer", verb: "\xE5 inneholde" }, + map: { unit: "elementer", verb: "\xE5 inneholde" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "input", + email: "e-postadresse", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO dato- og klokkeslett", + date: "ISO-dato", + time: "ISO-klokkeslett", + duration: "ISO-varighet", + ipv4: "IPv4-adresse", + ipv6: "IPv6-adresse", + mac: "MAC-adresse", + cidrv4: "IPv4-spekter", + cidrv6: "IPv6-spekter", + base64: "base64-enkodet streng", + base64url: "base64url-enkodet streng", + json_string: "JSON-streng", + e164: "E.164-nummer", + credit_card: "kredittkortnummer", + currency_code: "valutakode", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN", + number: "tall", + array: "liste" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Ugyldig input: forventet instanceof ${issue2.expected}, fikk ${received}`; + } + return `Ugyldig input: forventet ${expected}, fikk ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Ugyldig verdi: forventet ${stringifyPrimitive(issue2.values[0])}`; + return `Ugyldig valg: forventet en av ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `For stor(t): forventet ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementer"}`; + return `For stor(t): forventet ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `For lite(n): forventet ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `For lite(n): forventet ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Ugyldig streng: m\xE5 starte med "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Ugyldig streng: m\xE5 ende med "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Ugyldig streng: m\xE5 inneholde "${_issue.includes}"`; + if (_issue.format === "regex") + return `Ugyldig streng: m\xE5 matche m\xF8nsteret ${_issue.pattern}`; + return `Ugyldig ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Ugyldig tall: m\xE5 v\xE6re et multiplum av ${issue2.divisor}`; + case "unrecognized_keys": + return `${issue2.keys.length > 1 ? "Ukjente n\xF8kler" : "Ukjent n\xF8kkel"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Ugyldig n\xF8kkel i ${issue2.origin}`; + case "invalid_union": + return "Ugyldig input"; + case "invalid_element": + return `Ugyldig verdi i ${issue2.origin}`; + default: + return `Ugyldig input`; + } + }; +}, "error"); +function no_default() { + return { + localeError: error39() + }; +} +__name(no_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ota.js +var error40 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "harf", verb: "olmal\u0131d\u0131r" }, + file: { unit: "bayt", verb: "olmal\u0131d\u0131r" }, + array: { unit: "unsur", verb: "olmal\u0131d\u0131r" }, + set: { unit: "unsur", verb: "olmal\u0131d\u0131r" }, + map: { unit: "unsur", verb: "olmal\u0131d\u0131r" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "giren", + email: "epostag\xE2h", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO heng\xE2m\u0131", + date: "ISO tarihi", + time: "ISO zaman\u0131", + duration: "ISO m\xFCddeti", + ipv4: "IPv4 ni\u015F\xE2n\u0131", + ipv6: "IPv6 ni\u015F\xE2n\u0131", + mac: "MAC ni\u015F\xE2n\u0131", + cidrv4: "IPv4 menzili", + cidrv6: "IPv6 menzili", + base64: "base64-\u015Fifreli metin", + base64url: "base64url-\u015Fifreli metin", + json_string: "JSON metin", + e164: "E.164 say\u0131s\u0131", + credit_card: "i'tib\xE2r kart\u0131 numaras\u0131", + currency_code: "para birimi kodu", + iban: "IBAN", + jwt: "JWT", + template_literal: "giren" + }; + const TypeDictionary = { + nan: "NaN", + number: "numara", + array: "saf", + null: "gayb" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `F\xE2sit giren: umulan instanceof ${issue2.expected}, al\u0131nan ${received}`; + } + return `F\xE2sit giren: umulan ${expected}, al\u0131nan ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `F\xE2sit giren: umulan ${stringifyPrimitive(issue2.values[0])}`; + return `F\xE2sit tercih: m\xFBteberler ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Fazla b\xFCy\xFCk: ${issue2.origin ?? "value"}, ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elements"} sahip olmal\u0131yd\u0131.`; + return `Fazla b\xFCy\xFCk: ${issue2.origin ?? "value"}, ${adj}${issue2.maximum.toString()} olmal\u0131yd\u0131.`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Fazla k\xFC\xE7\xFCk: ${issue2.origin}, ${adj}${issue2.minimum.toString()} ${sizing.unit} sahip olmal\u0131yd\u0131.`; + } + return `Fazla k\xFC\xE7\xFCk: ${issue2.origin}, ${adj}${issue2.minimum.toString()} olmal\u0131yd\u0131.`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `F\xE2sit metin: "${_issue.prefix}" ile ba\u015Flamal\u0131.`; + if (_issue.format === "ends_with") + return `F\xE2sit metin: "${_issue.suffix}" ile bitmeli.`; + if (_issue.format === "includes") + return `F\xE2sit metin: "${_issue.includes}" ihtiv\xE2 etmeli.`; + if (_issue.format === "regex") + return `F\xE2sit metin: ${_issue.pattern} nak\u015F\u0131na uymal\u0131.`; + return `F\xE2sit ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `F\xE2sit say\u0131: ${issue2.divisor} kat\u0131 olmal\u0131yd\u0131.`; + case "unrecognized_keys": + return `Tan\u0131nmayan anahtar ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} i\xE7in tan\u0131nmayan anahtar var.`; + case "invalid_union": + return "Giren tan\u0131namad\u0131."; + case "invalid_element": + return `${issue2.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`; + default: + return `K\u0131ymet tan\u0131namad\u0131.`; + } + }; +}, "error"); +function ota_default() { + return { + localeError: error40() + }; +} +__name(ota_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ps.js +var error41 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, + file: { unit: "\u0628\u0627\u06CC\u067C\u0633", verb: "\u0648\u0644\u0631\u064A" }, + array: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, + set: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, + map: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0648\u0631\u0648\u062F\u064A", + email: "\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9", + url: "\u06CC\u0648 \u0622\u0631 \u0627\u0644", + emoji: "\u0627\u06CC\u0645\u0648\u062C\u064A", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A", + date: "\u0646\u06D0\u067C\u0647", + time: "\u0648\u062E\u062A", + duration: "\u0645\u0648\u062F\u0647", + ipv4: "\u062F IPv4 \u067E\u062A\u0647", + ipv6: "\u062F IPv6 \u067E\u062A\u0647", + mac: "\u062F MAC \u067E\u062A\u0647", + cidrv4: "\u062F IPv4 \u0633\u0627\u062D\u0647", + cidrv6: "\u062F IPv6 \u0633\u0627\u062D\u0647", + base64: "base64-encoded \u0645\u062A\u0646", + base64url: "base64url-encoded \u0645\u062A\u0646", + json_string: "JSON \u0645\u062A\u0646", + e164: "\u062F E.164 \u0634\u0645\u06D0\u0631\u0647", + credit_card: "\u062F \u06A9\u0631\u06CC\u0689\u06CC\u067C \u06A9\u0627\u0631\u062A \u0634\u0645\u06CC\u0631\u0647", + currency_code: "\u062F \u0627\u0633\u0639\u0627\u0631\u0648 \u06A9\u0648\u0689", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0648\u0631\u0648\u062F\u064A" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0639\u062F\u062F", + array: "\u0627\u0631\u06D0" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${issue2.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`; + } + return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`; + } + case "invalid_value": + if (issue2.values.length === 1) { + return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${stringifyPrimitive(issue2.values[0])} \u0648\u0627\u06CC`; + } + return `\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${joinValues(issue2.values, "|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue2.origin ?? "\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`; + } + return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue2.origin ?? "\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} \u0648\u064A`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0648\u0644\u0631\u064A`; + } + return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} \u0648\u064A`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_issue.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`; + } + if (_issue.format === "ends_with") { + return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_issue.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`; + } + if (_issue.format === "includes") { + return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${_issue.includes}" \u0648\u0644\u0631\u064A`; + } + if (_issue.format === "regex") { + return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${_issue.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`; + } + return `${FormatDictionary[_issue.format] ?? issue2.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`; + } + case "not_multiple_of": + return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${issue2.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`; + case "unrecognized_keys": + return `\u0646\u0627\u0633\u0645 ${issue2.keys.length > 1 ? "\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647" : "\u06A9\u0644\u06CC\u0689"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${issue2.origin} \u06A9\u06D0`; + case "invalid_union": + return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`; + case "invalid_element": + return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${issue2.origin} \u06A9\u06D0`; + default: + return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`; + } + }; +}, "error"); +function ps_default() { + return { + localeError: error41() + }; +} +__name(ps_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/pl.js +var error42 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "znak\xF3w", verb: "mie\u0107" }, + file: { unit: "bajt\xF3w", verb: "mie\u0107" }, + array: { unit: "element\xF3w", verb: "mie\u0107" }, + set: { unit: "element\xF3w", verb: "mie\u0107" }, + map: { unit: "element\xF3w", verb: "mie\u0107" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "wyra\u017Cenie", + email: "adres email", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "data i godzina w formacie ISO", + date: "data w formacie ISO", + time: "godzina w formacie ISO", + duration: "czas trwania ISO", + ipv4: "adres IPv4", + ipv6: "adres IPv6", + mac: "adres MAC", + cidrv4: "zakres IPv4", + cidrv6: "zakres IPv6", + base64: "ci\u0105g znak\xF3w zakodowany w formacie base64", + base64url: "ci\u0105g znak\xF3w zakodowany w formacie base64url", + json_string: "ci\u0105g znak\xF3w w formacie JSON", + e164: "liczba E.164", + credit_card: "numer karty kredytowej", + currency_code: "kod waluty", + iban: "IBAN", + jwt: "JWT", + template_literal: "wej\u015Bcie" + }; + const TypeDictionary = { + nan: "NaN", + number: "liczba", + array: "tablica" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${issue2.expected}, otrzymano ${received}`; + } + return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${expected}, otrzymano ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${stringifyPrimitive(issue2.values[0])}`; + return `Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie mie\u0107 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element\xF3w"}`; + } + return `Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie mie\u0107 ${adj}${issue2.minimum.toString()} ${sizing.unit ?? "element\xF3w"}`; + } + return `Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${_issue.includes}"`; + if (_issue.format === "regex") + return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${_issue.pattern}`; + return `Nieprawid\u0142ow(y/a/e) ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${issue2.divisor}`; + case "unrecognized_keys": + return `Nierozpoznane klucze${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Nieprawid\u0142owy klucz w ${issue2.origin}`; + case "invalid_union": + return "Nieprawid\u0142owe dane wej\u015Bciowe"; + case "invalid_element": + return `Nieprawid\u0142owa warto\u015B\u0107 w ${issue2.origin}`; + default: + return `Nieprawid\u0142owe dane wej\u015Bciowe`; + } + }; +}, "error"); +function pl_default() { + return { + localeError: error42() + }; +} +__name(pl_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/pt.js +var error43 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "caracteres" }, + file: { unit: "bytes" }, + array: { unit: "elementos" }, + set: { unit: "elementos" }, + map: { unit: "entradas" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "a entrada", + email: "o endere\xE7o de e-mail", + url: "o URL", + emoji: "o emoji", + uuid: "o UUID", + uuidv4: "o UUIDv4", + uuidv6: "o UUIDv6", + nanoid: "o nanoid", + guid: "o GUID", + cuid: "o cuid", + cuid2: "o cuid2", + ulid: "o ULID", + xid: "o XID", + ksuid: "o KSUID", + datetime: "a data e hora ISO", + date: "a data ISO", + time: "a hora ISO", + duration: "a dura\xE7\xE3o ISO", + ipv4: "o endere\xE7o IPv4", + ipv6: "o endere\xE7o IPv6", + mac: "o endere\xE7o MAC", + cidrv4: "o intervalo de endere\xE7os IPv4", + cidrv6: "o intervalo de endere\xE7os IPv6", + base64: "o texto codificado em base64", + base64url: "o texto codificado em base64url", + json_string: "o texto JSON", + e164: "o n\xFAmero E.164", + credit_card: "o n\xFAmero de cart\xE3o de cr\xE9dito", + currency_code: "o c\xF3digo de moeda", + iban: "o IBAN", + jwt: "o JWT", + template_literal: "a entrada" + }; + const Gender = { + masculine: { definite: "o", indefinite: "um" }, + feminine: { definite: "a", indefinite: "uma" } + }; + const TypeDictionary = { + string: { name: "texto", articles: Gender.masculine }, + number: { name: "n\xFAmero", articles: Gender.masculine }, + int: { name: "n\xFAmero inteiro", articles: Gender.masculine }, + boolean: { name: "valor booleano", articles: Gender.masculine }, + bigint: { name: "n\xFAmero bigint", articles: Gender.masculine }, + symbol: { name: "s\xEDmbolo", articles: Gender.masculine }, + undefined: { name: 'valor "undefined"', articles: Gender.masculine }, + null: { name: 'valor "nulo"', articles: Gender.masculine }, + never: { name: 'valor "never"', articles: Gender.masculine }, + void: { name: 'valor "void"', articles: Gender.masculine }, + date: { name: "data", articles: Gender.feminine }, + array: { name: "vetor", articles: Gender.masculine }, + object: { name: "objeto", articles: Gender.masculine }, + tuple: { name: "tuplo", articles: Gender.masculine }, + record: { name: "registo", articles: Gender.masculine }, + map: { name: "mapa", articles: Gender.masculine }, + set: { name: "conjunto", articles: Gender.masculine }, + file: { name: "ficheiro", articles: Gender.masculine }, + nonoptional: { name: "valor n\xE3o opcional", articles: Gender.masculine }, + nan: { name: 'valor "NaN"', articles: Gender.masculine }, + // Compatibility: "nan" -> "NaN" for display + function: { name: "fun\xE7\xE3o", articles: Gender.feminine } + }; + function translateOriginWithArticle(type, articleType) { + const translatedValue = TypeDictionary[type] ?? { name: `valor "${type}"`, articles: Gender.masculine }; + return `${translatedValue.articles[articleType]} ${translatedValue.name}`; + } + __name(translateOriginWithArticle, "translateOriginWithArticle"); + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = translateOriginWithArticle(issue2.expected, "indefinite"); + const receivedType = parsedType(issue2.input); + const received = translateOriginWithArticle(receivedType, "indefinite"); + return `Entrada inv\xE1lida: esperava ${expected}, recebeu ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Entrada inv\xE1lida: esperava ${stringifyPrimitive(issue2.values[0])}`; + return `Op\xE7\xE3o inv\xE1lida: esperava uma das seguintes op\xE7\xF5es: ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Demasiado grande: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elementos"}`; + return `Demasiado grande: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Demasiado pequeno: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.minimum.toString()} ${sizing.unit ?? "elementos"}`; + } + return `Demasiado pequeno: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Texto inv\xE1lido: deve come\xE7ar por "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Texto inv\xE1lido: deve terminar em "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Texto inv\xE1lido: deve incluir "${_issue.includes}"`; + if (_issue.format === "regex") + return `Texto inv\xE1lido: deve corresponder ao padr\xE3o ${_issue.pattern}`; + return `Formato d${FormatDictionary[_issue.format] ?? issue2.format} inv\xE1lido`; + } + case "not_multiple_of": + return `N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${issue2.divisor}`; + case "unrecognized_keys": { + const plural2 = issue2.keys.length > 1 ? "s" : ""; + return `Chave${plural2} inv\xE1lida${plural2}: ${joinValues(issue2.keys, ", ")}`; + } + case "invalid_key": + return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `Valor de discrimina\xE7\xE3o inv\xE1lido. Esperava ${opts}`; + } + return "Entrada inv\xE1lida"; + case "invalid_element": + return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; + default: + return `Entrada inv\xE1lida`; + } + }; +}, "error"); +function pt_default() { + return { + localeError: error43() + }; +} +__name(pt_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/pt-BR.js +var error44 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "caracteres" }, + file: { unit: "bytes" }, + array: { unit: "elementos" }, + set: { unit: "elementos" }, + map: { unit: "entradas" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "a entrada", + email: "o endere\xE7o de e-mail", + url: "o URL", + emoji: "o emoji", + uuid: "o UUID", + uuidv4: "o UUIDv4", + uuidv6: "o UUIDv6", + nanoid: "o nanoid", + guid: "o GUID", + cuid: "o cuid", + cuid2: "o cuid2", + ulid: "o ULID", + xid: "o XID", + ksuid: "o KSUID", + datetime: "a data e hora ISO", + date: "a data ISO", + time: "a hora ISO", + duration: "a dura\xE7\xE3o ISO", + ipv4: "o endere\xE7o IPv4", + ipv6: "o endere\xE7o IPv6", + mac: "o endere\xE7o MAC", + cidrv4: "a faixa de endere\xE7os IPv4", + cidrv6: "a faixa de endere\xE7os IPv6", + base64: "o texto codificado em base64", + base64url: "o texto codificado em base64url", + json_string: "o texto JSON", + e164: "o n\xFAmero E.164", + credit_card: "o n\xFAmero de cart\xE3o de cr\xE9dito", + currency_code: "o c\xF3digo de moeda", + iban: "o IBAN", + jwt: "o JWT", + template_literal: "a entrada" + }; + const Gender = { + masculine: { definite: "o", indefinite: "um" }, + feminine: { definite: "a", indefinite: "uma" } + }; + const TypeDictionary = { + string: { name: "texto", articles: Gender.masculine }, + number: { name: "n\xFAmero", articles: Gender.masculine }, + int: { name: "n\xFAmero inteiro", articles: Gender.masculine }, + boolean: { name: "valor booleano", articles: Gender.masculine }, + bigint: { name: "n\xFAmero bigint", articles: Gender.masculine }, + symbol: { name: "s\xEDmbolo", articles: Gender.masculine }, + undefined: { name: 'valor "undefined"', articles: Gender.masculine }, + null: { name: 'valor "nulo"', articles: Gender.masculine }, + never: { name: 'valor "never"', articles: Gender.masculine }, + void: { name: 'valor "void"', articles: Gender.masculine }, + date: { name: "data", articles: Gender.feminine }, + array: { name: "vetor", articles: Gender.masculine }, + object: { name: "objeto", articles: Gender.masculine }, + tuple: { name: "tupla", articles: Gender.feminine }, + record: { name: "registro", articles: Gender.masculine }, + map: { name: "mapa", articles: Gender.masculine }, + set: { name: "conjunto", articles: Gender.masculine }, + file: { name: "arquivo", articles: Gender.masculine }, + nonoptional: { name: "valor n\xE3o opcional", articles: Gender.masculine }, + nan: { name: 'valor "NaN"', articles: Gender.masculine }, + // Compatibility: "nan" -> "NaN" for display + function: { name: "fun\xE7\xE3o", articles: Gender.feminine } + }; + function translateOriginWithArticle(type, articleType) { + const translatedValue = TypeDictionary[type] ?? { name: `valor "${type}"`, articles: Gender.masculine }; + return `${translatedValue.articles[articleType]} ${translatedValue.name}`; + } + __name(translateOriginWithArticle, "translateOriginWithArticle"); + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = translateOriginWithArticle(issue2.expected, "indefinite"); + const receivedType = parsedType(issue2.input); + const received = translateOriginWithArticle(receivedType, "indefinite"); + return `Entrada inv\xE1lida: esperava ${expected}, recebeu ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Entrada inv\xE1lida: esperava ${stringifyPrimitive(issue2.values[0])}`; + return `Op\xE7\xE3o inv\xE1lida: esperava uma das seguintes op\xE7\xF5es: ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Grande demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elementos"}`; + return `Grande demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Pequeno demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.minimum.toString()} ${sizing.unit ?? "elementos"}`; + } + return `Pequeno demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Texto inv\xE1lido: deve come\xE7ar com "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `Texto inv\xE1lido: deve terminar com "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Texto inv\xE1lido: deve incluir "${_issue.includes}"`; + if (_issue.format === "regex") + return `Texto inv\xE1lido: deve corresponder ao padr\xE3o ${_issue.pattern}`; + return `Formato d${FormatDictionary[_issue.format] ?? issue2.format} inv\xE1lido`; + } + case "not_multiple_of": + return `N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${issue2.divisor}`; + case "unrecognized_keys": { + const plural2 = issue2.keys.length > 1 ? "s" : ""; + return `Chave${plural2} inv\xE1lida${plural2}: ${joinValues(issue2.keys, ", ")}`; + } + case "invalid_key": + return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `Valor de discrimina\xE7\xE3o inv\xE1lido. Esperava ${opts}`; + } + return "Entrada inv\xE1lida"; + case "invalid_element": + return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; + default: + return `Entrada inv\xE1lida`; + } + }; +}, "error"); +function pt_BR_default() { + return { + localeError: error44() + }; +} +__name(pt_BR_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ro.js +var error45 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "caractere", verb: "s\u0103 aib\u0103" }, + file: { unit: "octe\u021Bi", verb: "s\u0103 aib\u0103" }, + array: { unit: "elemente", verb: "s\u0103 aib\u0103" }, + set: { unit: "elemente", verb: "s\u0103 aib\u0103" }, + map: { unit: "intr\u0103ri", verb: "s\u0103 aib\u0103" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "intrare", + email: "adres\u0103 de email", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "dat\u0103 \u0219i or\u0103 ISO", + date: "dat\u0103 ISO", + time: "or\u0103 ISO", + duration: "durat\u0103 ISO", + ipv4: "adres\u0103 IPv4", + ipv6: "adres\u0103 IPv6", + mac: "adres\u0103 MAC", + cidrv4: "interval IPv4", + cidrv6: "interval IPv6", + base64: "\u0219ir codat base64", + base64url: "\u0219ir codat base64url", + json_string: "\u0219ir JSON", + e164: "num\u0103r E.164", + credit_card: "num\u0103r de card de credit", + currency_code: "cod valutar", + iban: "IBAN", + jwt: "JWT", + template_literal: "intrare" + }; + const TypeDictionary = { + nan: "NaN", + string: "\u0219ir", + number: "num\u0103r", + boolean: "boolean", + function: "func\u021Bie", + array: "matrice", + object: "obiect", + undefined: "nedefinit", + symbol: "simbol", + bigint: "num\u0103r mare", + void: "void", + never: "never", + map: "hart\u0103", + set: "set" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `Intrare invalid\u0103: a\u0219teptat ${expected}, primit ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Intrare invalid\u0103: a\u0219teptat ${stringifyPrimitive(issue2.values[0])}`; + return `Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Prea mare: a\u0219teptat ca ${issue2.origin ?? "valoarea"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemente"}`; + return `Prea mare: a\u0219teptat ca ${issue2.origin ?? "valoarea"} s\u0103 fie ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Prea mic: a\u0219teptat ca ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Prea mic: a\u0219teptat ca ${issue2.origin} s\u0103 fie ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u0218ir invalid: trebuie s\u0103 se termine cu "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u0218ir invalid: trebuie s\u0103 includ\u0103 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${_issue.pattern}`; + return `Format invalid: ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${issue2.divisor}`; + case "unrecognized_keys": + return `Chei nerecunoscute: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Cheie invalid\u0103 \xEEn ${issue2.origin}`; + case "invalid_union": + return "Intrare invalid\u0103"; + case "invalid_element": + return `Valoare invalid\u0103 \xEEn ${issue2.origin}`; + default: + return `Intrare invalid\u0103`; + } + }; +}, "error"); +function ro_default() { + return { + localeError: error45() + }; +} +__name(ro_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ru.js +function getRussianPlural(count, one, few, many) { + const absCount = Math.abs(count); + const lastDigit = absCount % 10; + const lastTwoDigits = absCount % 100; + if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { + return many; + } + if (lastDigit === 1) { + return one; + } + if (lastDigit >= 2 && lastDigit <= 4) { + return few; + } + return many; +} +__name(getRussianPlural, "getRussianPlural"); +var error46 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { + unit: { + one: "\u0441\u0438\u043C\u0432\u043E\u043B", + few: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", + many: "\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432" + }, + verb: "\u0438\u043C\u0435\u0442\u044C" + }, + file: { + unit: { + one: "\u0431\u0430\u0439\u0442", + few: "\u0431\u0430\u0439\u0442\u0430", + many: "\u0431\u0430\u0439\u0442" + }, + verb: "\u0438\u043C\u0435\u0442\u044C" + }, + array: { + unit: { + one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", + few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", + many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" + }, + verb: "\u0438\u043C\u0435\u0442\u044C" + }, + set: { + unit: { + one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", + few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", + many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" + }, + verb: "\u0438\u043C\u0435\u0442\u044C" + }, + map: { + unit: { + one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", + few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", + many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" + }, + verb: "\u0438\u043C\u0435\u0442\u044C" + } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0432\u0432\u043E\u0434", + email: "email \u0430\u0434\u0440\u0435\u0441", + url: "URL", + emoji: "\u044D\u043C\u043E\u0434\u0437\u0438", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F", + date: "ISO \u0434\u0430\u0442\u0430", + time: "ISO \u0432\u0440\u0435\u043C\u044F", + duration: "ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C", + ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441", + ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441", + mac: "MAC \u0430\u0434\u0440\u0435\u0441", + cidrv4: "IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", + cidrv6: "IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", + base64: "\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64", + base64url: "\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url", + json_string: "JSON \u0441\u0442\u0440\u043E\u043A\u0430", + e164: "\u043D\u043E\u043C\u0435\u0440 E.164", + credit_card: "\u043D\u043E\u043C\u0435\u0440 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u043E\u0439 \u043A\u0430\u0440\u0442\u044B", + currency_code: "\u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u044B", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0432\u0432\u043E\u0434" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0447\u0438\u0441\u043B\u043E", + array: "\u043C\u0430\u0441\u0441\u0438\u0432" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${issue2.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`; + } + return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${stringifyPrimitive(issue2.values[0])}`; + return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + const maxValue = Number(issue2.maximum); + const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); + return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue2.maximum.toString()} ${unit}`; + } + return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + const minValue = Number(issue2.minimum); + const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); + return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue2.minimum.toString()} ${unit}`; + } + return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; + return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue2.divisor}`; + case "unrecognized_keys": + return `\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${issue2.keys.length > 1 ? "\u044B\u0435" : "\u044B\u0439"} \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u0438" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${issue2.origin}`; + case "invalid_union": + return "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"; + case "invalid_element": + return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${issue2.origin}`; + default: + return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435`; + } + }; +}, "error"); +function ru_default() { + return { + localeError: error46() + }; +} +__name(ru_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/sk.js +var error47 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "znakov", verb: "ma\u0165" }, + file: { unit: "bajtov", verb: "ma\u0165" }, + array: { unit: "prvkov", verb: "ma\u0165" }, + set: { unit: "prvkov", verb: "ma\u0165" }, + map: { unit: "polo\u017Eiek", verb: "ma\u0165" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "regul\xE1rny v\xFDraz", + email: "e-mailov\xE1 adresa", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "d\xE1tum a \u010Das vo form\xE1te ISO", + date: "d\xE1tum vo form\xE1te ISO", + time: "\u010Das vo form\xE1te ISO", + duration: "doba trvania ISO", + ipv4: "IPv4 adresa", + ipv6: "IPv6 adresa", + mac: "MAC adresa", + cidrv4: "rozsah IPv4", + cidrv6: "rozsah IPv6", + base64: "re\u0165azec zak\xF3dovan\xFD vo form\xE1te base64", + base64url: "re\u0165azec zak\xF3dovan\xFD vo form\xE1te base64url", + json_string: "re\u0165azec vo form\xE1te JSON", + e164: "\u010D\xEDslo E.164", + credit_card: "\u010D\xEDslo kreditnej karty", + currency_code: "k\xF3d meny", + iban: "IBAN", + jwt: "JWT", + template_literal: "vstup" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u010D\xEDslo", + string: "re\u0165azec", + function: "funkcia", + array: "pole" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE9 instanceof ${issue2.expected}, obdr\u017Ean\xE9 ${received}`; + } + return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE9 ${expected}, obdr\u017Ean\xE9 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE9 ${stringifyPrimitive(issue2.values[0])}`; + return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE1 jedna z hodn\xF4t ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Hodnota je pr\xEDli\u0161 ve\u013Ek\xE1: ${issue2.origin ?? "hodnota"} mus\xED ma\u0165 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "prvkov"}`; + } + return `Hodnota je pr\xEDli\u0161 ve\u013Ek\xE1: ${issue2.origin ?? "hodnota"} mus\xED by\u0165 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Hodnota je pr\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED ma\u0165 ${adj}${issue2.minimum.toString()} ${sizing.unit ?? "prvkov"}`; + } + return `Hodnota je pr\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED by\u0165 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Neplatn\xFD re\u0165azec: mus\xED za\u010D\xEDna\u0165 na "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Neplatn\xFD re\u0165azec: mus\xED kon\u010Di\u0165 na "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Neplatn\xFD re\u0165azec: mus\xED obsahova\u0165 "${_issue.includes}"`; + if (_issue.format === "regex") + return `Neplatn\xFD re\u0165azec: mus\xED zodpoveda\u0165 vzoru ${_issue.pattern}`; + return `Neplatn\xFD form\xE1t ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Neplatn\xE9 \u010D\xEDslo: mus\xED by\u0165 n\xE1sobkom ${issue2.divisor}`; + case "unrecognized_keys": + return `Nezn\xE1me kl\xFA\u010De: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Neplatn\xFD kl\xFA\u010D v ${issue2.origin}`; + case "invalid_union": + return "Neplatn\xFD vstup"; + case "invalid_element": + return `Neplatn\xE1 hodnota v ${issue2.origin}`; + default: + return `Neplatn\xFD vstup`; + } + }; +}, "error"); +function sk_default() { + return { + localeError: error47() + }; +} +__name(sk_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/sl.js +var error48 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "znakov", verb: "imeti" }, + file: { unit: "bajtov", verb: "imeti" }, + array: { unit: "elementov", verb: "imeti" }, + set: { unit: "elementov", verb: "imeti" }, + map: { unit: "elementov", verb: "imeti" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "vnos", + email: "e-po\u0161tni naslov", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO datum in \u010Das", + date: "ISO datum", + time: "ISO \u010Das", + duration: "ISO trajanje", + ipv4: "IPv4 naslov", + ipv6: "IPv6 naslov", + mac: "MAC naslov", + cidrv4: "obseg IPv4", + cidrv6: "obseg IPv6", + base64: "base64 kodiran niz", + base64url: "base64url kodiran niz", + json_string: "JSON niz", + e164: "E.164 \u0161tevilka", + credit_card: "\u0161tevilka kreditne kartice", + currency_code: "koda valute", + iban: "IBAN", + jwt: "JWT", + template_literal: "vnos" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0161tevilo", + array: "tabela" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Neveljaven vnos: pri\u010Dakovano instanceof ${issue2.expected}, prejeto ${received}`; + } + return `Neveljaven vnos: pri\u010Dakovano ${expected}, prejeto ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Neveljaven vnos: pri\u010Dakovano ${stringifyPrimitive(issue2.values[0])}`; + return `Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Preveliko: pri\u010Dakovano, da bo ${issue2.origin ?? "vrednost"} imelo ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementov"}`; + return `Preveliko: pri\u010Dakovano, da bo ${issue2.origin ?? "vrednost"} ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Premajhno: pri\u010Dakovano, da bo ${issue2.origin} imelo ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Premajhno: pri\u010Dakovano, da bo ${issue2.origin} ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Neveljaven niz: mora se za\u010Deti z "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `Neveljaven niz: mora se kon\u010Dati z "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Neveljaven niz: mora vsebovati "${_issue.includes}"`; + if (_issue.format === "regex") + return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`; + return `Neveljaven ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${issue2.divisor}`; + case "unrecognized_keys": + return `Neprepoznan${issue2.keys.length > 1 ? "i klju\u010Di" : " klju\u010D"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Neveljaven klju\u010D v ${issue2.origin}`; + case "invalid_union": + return "Neveljaven vnos"; + case "invalid_element": + return `Neveljavna vrednost v ${issue2.origin}`; + default: + return "Neveljaven vnos"; + } + }; +}, "error"); +function sl_default() { + return { + localeError: error48() + }; +} +__name(sl_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/sv.js +var error49 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "tecken", verb: "att ha" }, + file: { unit: "bytes", verb: "att ha" }, + array: { unit: "objekt", verb: "att inneh\xE5lla" }, + set: { unit: "objekt", verb: "att inneh\xE5lla" }, + map: { unit: "objekt", verb: "att inneh\xE5lla" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "regulj\xE4rt uttryck", + email: "e-postadress", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO-datum och tid", + date: "ISO-datum", + time: "ISO-tid", + duration: "ISO-varaktighet", + ipv4: "IPv4-adress", + ipv6: "IPv6-adress", + mac: "MAC-adress", + cidrv4: "IPv4-spektrum", + cidrv6: "IPv6-spektrum", + base64: "base64-kodad str\xE4ng", + base64url: "base64url-kodad str\xE4ng", + json_string: "JSON-str\xE4ng", + e164: "E.164-nummer", + credit_card: "kreditkortsnummer", + currency_code: "valutakod", + iban: "IBAN", + jwt: "JWT", + template_literal: "mall-literal" + }; + const TypeDictionary = { + nan: "NaN", + number: "antal", + array: "lista" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Ogiltig inmatning: f\xF6rv\xE4ntat instanceof ${issue2.expected}, fick ${received}`; + } + return `Ogiltig inmatning: f\xF6rv\xE4ntat ${expected}, fick ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Ogiltig inmatning: f\xF6rv\xE4ntat ${stringifyPrimitive(issue2.values[0])}`; + return `Ogiltigt val: f\xF6rv\xE4ntade en av ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `F\xF6r stor(t): f\xF6rv\xE4ntade ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; + } + return `F\xF6r stor(t): f\xF6rv\xE4ntat ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `F\xF6r lite(t): f\xF6rv\xE4ntade ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `F\xF6r lite(t): f\xF6rv\xE4ntade ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `Ogiltig str\xE4ng: m\xE5ste sluta med "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${_issue.includes}"`; + if (_issue.format === "regex") + return `Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${_issue.pattern}"`; + return `Ogiltig(t) ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Ogiltigt tal: m\xE5ste vara en multipel av ${issue2.divisor}`; + case "unrecognized_keys": + return `${issue2.keys.length > 1 ? "Ok\xE4nda nycklar" : "Ok\xE4nd nyckel"}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Ogiltig nyckel i ${issue2.origin ?? "v\xE4rdet"}`; + case "invalid_union": + return "Ogiltig input"; + case "invalid_element": + return `Ogiltigt v\xE4rde i ${issue2.origin ?? "v\xE4rdet"}`; + default: + return `Ogiltig input`; + } + }; +}, "error"); +function sv_default() { + return { + localeError: error49() + }; +} +__name(sv_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ta.js +var error50 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, + file: { unit: "\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, + array: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, + set: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, + map: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1", + email: "\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD", + date: "ISO \u0BA4\u0BC7\u0BA4\u0BBF", + time: "ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD", + duration: "ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1", + ipv4: "IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", + ipv6: "IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", + mac: "MAC \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", + cidrv4: "IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1", + cidrv6: "IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1", + base64: "base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD", + base64url: "base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD", + json_string: "JSON \u0B9A\u0BB0\u0BAE\u0BCD", + e164: "E.164 \u0B8E\u0BA3\u0BCD", + credit_card: "\u0B95\u0B9F\u0BA9\u0BCD \u0B85\u0B9F\u0BCD\u0B9F\u0BC8 \u0B8E\u0BA3\u0BCD", + currency_code: "\u0BA8\u0BBE\u0BA3\u0BAF\u0B95\u0BCD \u0B95\u0BC1\u0BB1\u0BBF\u0BAF\u0BC0\u0B9F\u0BC1", + iban: "IBAN", + jwt: "JWT", + template_literal: "input" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0B8E\u0BA3\u0BCD", + array: "\u0B85\u0BA3\u0BBF", + null: "\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${issue2.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`; + } + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${joinValues(issue2.values, "|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin ?? "\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + } + return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin ?? "\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${adj}${issue2.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + } + return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin} ${adj}${issue2.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + if (_issue.format === "ends_with") + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + if (_issue.format === "includes") + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + if (_issue.format === "regex") + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${_issue.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${issue2.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; + case "unrecognized_keys": + return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${issue2.keys.length > 1 ? "\u0B95\u0BB3\u0BCD" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`; + case "invalid_union": + return "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"; + case "invalid_element": + return `${issue2.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`; + default: + return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1`; + } + }; +}, "error"); +function ta_default() { + return { + localeError: error50() + }; +} +__name(ta_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/tg.js +var error51 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0430\u043B\u043E\u043C\u0430\u0442", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, + file: { unit: "\u0431\u0430\u0439\u0442", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, + array: { unit: "\u0443\u043D\u0441\u0443\u0440", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, + set: { unit: "\u0443\u043D\u0441\u0443\u0440", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, + map: { unit: "\u0441\u0430\u0431\u0442", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0432\u0443\u0440\u0443\u0434", + email: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 email", + url: "URL", + emoji: "\u044D\u043C\u043E\u04B7\u0438", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u0441\u0430\u043D\u0430\u0432\u0443 \u0432\u0430\u049B\u0442\u0438 ISO", + date: "\u0441\u0430\u043D\u0430\u0438 ISO", + time: "\u0432\u0430\u049B\u0442\u0438 ISO", + duration: "\u0434\u0430\u0432\u043E\u043C\u043D\u043E\u043A\u0438\u0438 ISO", + ipv4: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 IPv4", + ipv6: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 IPv6", + mac: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 MAC", + cidrv4: "\u043C\u0430\u04B3\u0434\u0443\u0434\u0430\u0438 IPv4", + cidrv6: "\u043C\u0430\u04B3\u0434\u0443\u0434\u0430\u0438 IPv6", + base64: "\u0441\u0430\u0442\u0440\u0438 \u0434\u0430\u0440 \u0444\u043E\u0440\u043C\u0430\u0442\u0438 base64", + base64url: "\u0441\u0430\u0442\u0440\u0438 \u0434\u0430\u0440 \u0444\u043E\u0440\u043C\u0430\u0442\u0438 base64url", + json_string: "\u0441\u0430\u0442\u0440\u0438 JSON", + e164: "\u0440\u0430\u049B\u0430\u043C\u0438 E.164", + credit_card: "\u0440\u0430\u049B\u0430\u043C\u0438 \u043A\u043E\u0440\u0442\u0438 \u043A\u0440\u0435\u0434\u0438\u0442\u04E3", + currency_code: "\u0440\u0430\u043C\u0437\u0438 \u0430\u0441\u044A\u043E\u0440", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0432\u0443\u0440\u0443\u0434" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0440\u0430\u049B\u0430\u043C", + string: "\u0441\u0430\u0442\u0440", + array: "\u043C\u0430\u0441\u0441\u0438\u0432", + object: "\u043E\u0431\u044A\u0435\u043A\u0442", + date: "\u0441\u0430\u043D\u0430" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: ${expected} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442, ${received} \u0433\u0438\u0440\u0438\u0444\u0442\u0430 \u0448\u0443\u0434`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: ${stringifyPrimitive(issue2.values[0])} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442`; + return `\u0418\u043D\u0442\u0438\u0445\u043E\u0431\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u044F\u043A\u0435 \u0430\u0437 ${joinValues(issue2.values, "|")} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0425\u0435\u043B\u0435 \u043A\u0430\u043B\u043E\u043D: ${issue2.origin ?? "\u049B\u0438\u043C\u0430\u0442"} \u0431\u043E\u044F\u0434 ${adj}${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; + return `\u0425\u0435\u043B\u0435 \u043A\u0430\u043B\u043E\u043D: ${issue2.origin ?? "\u049B\u0438\u043C\u0430\u0442"} \u0431\u043E\u044F\u0434 ${adj}${issue2.maximum.toString()} \u0431\u043E\u0448\u0430\u0434`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0425\u0435\u043B\u0435 \u0445\u0443\u0440\u0434: ${issue2.origin} \u0431\u043E\u044F\u0434 ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; + return `\u0425\u0435\u043B\u0435 \u0445\u0443\u0440\u0434: ${issue2.origin} \u0431\u043E\u044F\u0434 ${adj}${issue2.minimum.toString()} \u0431\u043E\u0448\u0430\u0434`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u043E "${_issue.prefix}" \u043E\u0493\u043E\u0437 \u0448\u0430\u0432\u0430\u0434`; + if (_issue.format === "ends_with") + return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u043E "${_issue.suffix}" \u0430\u043D\u04B7\u043E\u043C \u0451\u0431\u0430\u0434`; + if (_issue.format === "includes") + return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 "${_issue.includes}"-\u0440\u043E \u0434\u0430\u0440 \u0431\u0430\u0440 \u0433\u0438\u0440\u0430\u0434`; + if (_issue.format === "regex") + return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u0430 \u043D\u0430\u043C\u0443\u043D\u0430\u0438 ${_issue.pattern} \u043C\u0443\u0432\u043E\u0444\u0438\u049B\u0430\u0442 \u043A\u0443\u043D\u0430\u0434`; + return `${FormatDictionary[_issue.format] ?? issue2.format}-\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442`; + } + case "not_multiple_of": + return `\u0420\u0430\u049B\u0430\u043C\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u0430 ${issue2.divisor} \u0431\u0435 \u0431\u0430\u049B\u0438\u044F \u0442\u0430\u049B\u0441\u0438\u043C \u0448\u0430\u0432\u0430\u0434`; + case "unrecognized_keys": + return `\u041A\u0430\u043B\u0438\u0434${issue2.keys.length > 1 ? "\u04B3\u043E\u0438" : "\u0438"} \u043D\u043E\u043C\u0430\u044A\u043B\u0443\u043C: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u041A\u0430\u043B\u0438\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442 \u0434\u0430\u0440 ${issue2.origin}`; + case "invalid_union": + if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { + const opts = issue2.options.map((o3) => `'${o3}'`).join(" | "); + return `\u049A\u0438\u043C\u0430\u0442\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442\u0438 \u0434\u0438\u0441\u043A\u0440\u0438\u043C\u0438\u043D\u0430\u0442\u043E\u0440: ${opts} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442`; + } + return "\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442"; + case "invalid_element": + return `\u049A\u0438\u043C\u0430\u0442\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442 \u0434\u0430\u0440 ${issue2.origin}`; + default: + return `\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442`; + } + }; +}, "error"); +function tg_default() { + return { + localeError: error51() + }; +} +__name(tg_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/th.js +var error52 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, + file: { unit: "\u0E44\u0E1A\u0E15\u0E4C", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, + array: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, + set: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, + map: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19", + email: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25", + url: "URL", + emoji: "\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", + date: "\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO", + time: "\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", + duration: "\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", + ipv4: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4", + ipv6: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6", + mac: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 MAC", + cidrv4: "\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4", + cidrv6: "\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6", + base64: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64", + base64url: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL", + json_string: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON", + e164: "\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)", + credit_card: "\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E1A\u0E31\u0E15\u0E23\u0E40\u0E04\u0E23\u0E14\u0E34\u0E15", + currency_code: "\u0E23\u0E2B\u0E31\u0E2A\u0E2A\u0E01\u0E38\u0E25\u0E40\u0E07\u0E34\u0E19", + iban: "IBAN", + jwt: "\u0E42\u0E17\u0E40\u0E04\u0E19 JWT", + template_literal: "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02", + array: "\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)", + null: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${issue2.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`; + } + return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${stringifyPrimitive(issue2.values[0])}`; + return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19" : "\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin ?? "\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`; + return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin ?? "\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? "\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22" : "\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${_issue.prefix}"`; + } + if (_issue.format === "ends_with") + return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${_issue.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`; + if (_issue.format === "regex") + return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${_issue.pattern}`; + return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${issue2.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`; + case "unrecognized_keys": + return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue2.origin}`; + case "invalid_union": + return "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49"; + case "invalid_element": + return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue2.origin}`; + default: + return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07`; + } + }; +}, "error"); +function th_default() { + return { + localeError: error52() + }; +} +__name(th_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/tk.js +var error53 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "simwol", verb: "bolmaly" }, + file: { unit: "ba\xFDt", verb: "bolmaly" }, + array: { unit: "elementler", verb: "bolmaly" }, + set: { unit: "elementler", verb: "bolmaly" }, + map: { unit: "elementler", verb: "bolmaly" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "giri\u015F", + email: "e-po\xE7ta salgysy", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO sene we wagt", + date: "ISO sene", + time: "ISO wagt", + duration: "ISO wagt aralygy", + ipv4: "IPv4 salgysy", + ipv6: "IPv6 salgysy", + mac: "MAC salgysy", + cidrv4: "IPv4 aralygy", + cidrv6: "IPv6 aralygy", + base64: "base64 bilen \u015Fifrlenen setir", + base64url: "base64url bilen \u015Fifrlenen setir", + json_string: "JSON setiri", + e164: "E.164 nomeri", + credit_card: "kredit kartyny\u0148 nomeri", + currency_code: "wal\xFDuta kody", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u015Fablon" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + return `N\xE4dogry baha: gara\u015Fylan ${expected} \xFDerine ${received} alyndy`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `N\xE4dogry baha: ${stringifyPrimitive(issue2.values[0])} bolmaly`; + return `N\xE4dogry sa\xFDlaw: a\u015Fakdakylardan biri bolmaly: ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Has uly: gara\u015Fyl\xFDan ${issue2.origin ?? "baha"} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; + return `Has uly: gara\u015Fyl\xFDan ${issue2.origin ?? "baha"} ${adj} ${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Has ki\xE7i: gara\u015Fyl\xFDan ${issue2.origin} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; + return `Has ki\xE7i: gara\u015Fyl\xFDan ${issue2.origin} ${adj} ${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `N\xE4dogry setir: "${_issue.prefix}" bilen ba\u015Flamaly`; + if (_issue.format === "ends_with") + return `N\xE4dogry setir: "${_issue.suffix}" bilen gutarmaly`; + if (_issue.format === "includes") + return `N\xE4dogry setir: "${_issue.includes}" saklamaly`; + if (_issue.format === "regex") + return `N\xE4dogry setir: ${_issue.pattern} nusga la\xFDyk bolmaly`; + return `N\xE4dogry ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `N\xE4dogry san: ${issue2.divisor} bilen galyndysyz b\xF6l\xFCnmeli`; + case "unrecognized_keys": + return `Tanalma\xFDan a\xE7ar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} i\xE7inde n\xE4dogry a\xE7ar`; + case "invalid_union": + return "N\xE4dogry baha"; + case "invalid_element": + return `${issue2.origin} i\xE7inde n\xE4dogry baha`; + default: + return `N\xE4dogry baha`; + } + }; +}, "error"); +function tk_default() { + return { + localeError: error53() + }; +} +__name(tk_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/tr.js +var error54 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "karakter", verb: "olmal\u0131" }, + file: { unit: "bayt", verb: "olmal\u0131" }, + array: { unit: "\xF6\u011Fe", verb: "olmal\u0131" }, + set: { unit: "\xF6\u011Fe", verb: "olmal\u0131" }, + map: { unit: "\xF6\u011Fe", verb: "olmal\u0131" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "girdi", + email: "e-posta adresi", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO tarih ve saat", + date: "ISO tarih", + time: "ISO saat", + duration: "ISO s\xFCre", + ipv4: "IPv4 adresi", + ipv6: "IPv6 adresi", + mac: "MAC adresi", + cidrv4: "IPv4 aral\u0131\u011F\u0131", + cidrv6: "IPv6 aral\u0131\u011F\u0131", + base64: "base64 ile \u015Fifrelenmi\u015F metin", + base64url: "base64url ile \u015Fifrelenmi\u015F metin", + json_string: "JSON dizesi", + e164: "E.164 say\u0131s\u0131", + credit_card: "kredi kart\u0131 numaras\u0131", + currency_code: "para birimi kodu", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u015Eablon dizesi" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Ge\xE7ersiz de\u011Fer: beklenen instanceof ${issue2.expected}, al\u0131nan ${received}`; + } + return `Ge\xE7ersiz de\u011Fer: beklenen ${expected}, al\u0131nan ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Ge\xE7ersiz de\u011Fer: beklenen ${stringifyPrimitive(issue2.values[0])}`; + return `Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\xC7ok b\xFCy\xFCk: beklenen ${issue2.origin ?? "de\u011Fer"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\xF6\u011Fe"}`; + return `\xC7ok b\xFCy\xFCk: beklenen ${issue2.origin ?? "de\u011Fer"} ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\xC7ok k\xFC\xE7\xFCk: beklenen ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + return `\xC7ok k\xFC\xE7\xFCk: beklenen ${issue2.origin} ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Ge\xE7ersiz metin: "${_issue.prefix}" ile ba\u015Flamal\u0131`; + if (_issue.format === "ends_with") + return `Ge\xE7ersiz metin: "${_issue.suffix}" ile bitmeli`; + if (_issue.format === "includes") + return `Ge\xE7ersiz metin: "${_issue.includes}" i\xE7ermeli`; + if (_issue.format === "regex") + return `Ge\xE7ersiz metin: ${_issue.pattern} desenine uymal\u0131`; + return `Ge\xE7ersiz ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Ge\xE7ersiz say\u0131: ${issue2.divisor} ile tam b\xF6l\xFCnebilmeli`; + case "unrecognized_keys": + return `Tan\u0131nmayan anahtar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} i\xE7inde ge\xE7ersiz anahtar`; + case "invalid_union": + return "Ge\xE7ersiz de\u011Fer"; + case "invalid_element": + return `${issue2.origin} i\xE7inde ge\xE7ersiz de\u011Fer`; + default: + return `Ge\xE7ersiz de\u011Fer`; + } + }; +}, "error"); +function tr_default() { + return { + localeError: error54() + }; +} +__name(tr_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/uk.js +var error55 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, + file: { unit: "\u0431\u0430\u0439\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, + array: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, + set: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, + map: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456", + email: "\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438", + url: "URL", + emoji: "\u0435\u043C\u043E\u0434\u0437\u0456", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO", + date: "\u0434\u0430\u0442\u0430 ISO", + time: "\u0447\u0430\u0441 ISO", + duration: "\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO", + ipv4: "\u0430\u0434\u0440\u0435\u0441\u0430 IPv4", + ipv6: "\u0430\u0434\u0440\u0435\u0441\u0430 IPv6", + mac: "\u0430\u0434\u0440\u0435\u0441\u0430 MAC", + cidrv4: "\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4", + cidrv6: "\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6", + base64: "\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64", + base64url: "\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url", + json_string: "\u0440\u044F\u0434\u043E\u043A JSON", + e164: "\u043D\u043E\u043C\u0435\u0440 E.164", + credit_card: "\u043D\u043E\u043C\u0435\u0440 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u043E\u0457 \u043A\u0430\u0440\u0442\u043A\u0438", + currency_code: "\u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u0438", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0447\u0438\u0441\u043B\u043E", + array: "\u043C\u0430\u0441\u0438\u0432" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${issue2.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`; + } + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${stringifyPrimitive(issue2.values[0])}`; + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`; + return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin} \u0431\u0443\u0434\u0435 ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${issue2.divisor}`; + case "unrecognized_keys": + return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u0456" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${issue2.origin}`; + case "invalid_union": + return "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"; + case "invalid_element": + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${issue2.origin}`; + default: + return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456`; + } + }; +}, "error"); +function uk_default() { + return { + localeError: error55() + }; +} +__name(uk_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ua.js +function ua_default() { + return uk_default(); +} +__name(ua_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ur.js +var error56 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" }, + file: { unit: "\u0628\u0627\u0626\u0679\u0633", verb: "\u06C1\u0648\u0646\u0627" }, + array: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" }, + set: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" }, + map: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0627\u0646 \u067E\u0679", + email: "\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633", + url: "\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644", + emoji: "\u0627\u06CC\u0645\u0648\u062C\u06CC", + uuid: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", + uuidv4: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4", + uuidv6: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6", + nanoid: "\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC", + guid: "\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", + cuid: "\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", + cuid2: "\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2", + ulid: "\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC", + xid: "\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC", + ksuid: "\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", + datetime: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645", + date: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E", + time: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A", + duration: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A", + ipv4: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633", + ipv6: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633", + mac: "\u0627\u06CC\u0645 \u0627\u06D2 \u0633\u06CC \u0627\u06CC\u0688\u0631\u06CC\u0633", + cidrv4: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C", + cidrv6: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C", + base64: "\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF", + base64url: "\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF", + json_string: "\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF", + e164: "\u0627\u06CC 164 \u0646\u0645\u0628\u0631", + credit_card: "\u06A9\u0631\u06CC\u0688\u0679 \u06A9\u0627\u0631\u0688 \u0646\u0645\u0628\u0631", + currency_code: "\u06A9\u0631\u0646\u0633\u06CC \u06A9\u0648\u0688", + iban: "IBAN", + jwt: "\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC", + template_literal: "\u0627\u0646 \u067E\u0679" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u0646\u0645\u0628\u0631", + array: "\u0622\u0631\u06D2", + null: "\u0646\u0644" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${issue2.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`; + } + return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${stringifyPrimitive(issue2.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; + return `\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${joinValues(issue2.values, "|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue2.origin ?? "\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`; + return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue2.origin ?? "\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${adj}${issue2.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue2.origin} \u06A9\u06D2 ${adj}${issue2.minimum.toString()} ${sizing.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`; + } + return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue2.origin} \u06A9\u0627 ${adj}${issue2.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; + } + if (_issue.format === "ends_with") + return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; + if (_issue.format === "includes") + return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; + if (_issue.format === "regex") + return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${_issue.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; + return `\u063A\u0644\u0637 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${issue2.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; + case "unrecognized_keys": + return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${issue2.keys.length > 1 ? "\u0632" : ""}: ${joinValues(issue2.keys, "\u060C ")}`; + case "invalid_key": + return `${issue2.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`; + case "invalid_union": + return "\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"; + case "invalid_element": + return `${issue2.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`; + default: + return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679`; + } + }; +}, "error"); +function ur_default() { + return { + localeError: error56() + }; +} +__name(ur_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/uz.js +var error57 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "belgi", verb: "bo\u2018lishi kerak" }, + file: { unit: "bayt", verb: "bo\u2018lishi kerak" }, + array: { unit: "element", verb: "bo\u2018lishi kerak" }, + set: { unit: "element", verb: "bo\u2018lishi kerak" }, + map: { unit: "yozuv", verb: "bo\u2018lishi kerak" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "kirish", + email: "elektron pochta manzili", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO sana va vaqti", + date: "ISO sana", + time: "ISO vaqt", + duration: "ISO davomiylik", + ipv4: "IPv4 manzil", + ipv6: "IPv6 manzil", + mac: "MAC manzil", + cidrv4: "IPv4 diapazon", + cidrv6: "IPv6 diapazon", + base64: "base64 kodlangan satr", + base64url: "base64url kodlangan satr", + json_string: "JSON satr", + e164: "E.164 raqam", + credit_card: "kredit karta raqami", + currency_code: "valyuta kodi", + iban: "IBAN", + jwt: "JWT", + template_literal: "kirish" + }; + const TypeDictionary = { + nan: "NaN", + number: "raqam", + array: "massiv" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `Noto\u2018g\u2018ri kirish: kutilgan instanceof ${issue2.expected}, qabul qilingan ${received}`; + } + return `Noto\u2018g\u2018ri kirish: kutilgan ${expected}, qabul qilingan ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `Noto\u2018g\u2018ri kirish: kutilgan ${stringifyPrimitive(issue2.values[0])}`; + return `Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Juda katta: kutilgan ${issue2.origin ?? "qiymat"} ${adj}${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; + return `Juda katta: kutilgan ${issue2.origin ?? "qiymat"} ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Juda kichik: kutilgan ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; + } + return `Juda kichik: kutilgan ${issue2.origin} ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Noto\u2018g\u2018ri satr: "${_issue.prefix}" bilan boshlanishi kerak`; + if (_issue.format === "ends_with") + return `Noto\u2018g\u2018ri satr: "${_issue.suffix}" bilan tugashi kerak`; + if (_issue.format === "includes") + return `Noto\u2018g\u2018ri satr: "${_issue.includes}" ni o\u2018z ichiga olishi kerak`; + if (_issue.format === "regex") + return `Noto\u2018g\u2018ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`; + return `Noto\u2018g\u2018ri ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `Noto\u2018g\u2018ri raqam: ${issue2.divisor} ning karralisi bo\u2018lishi kerak`; + case "unrecognized_keys": + return `Noma\u2019lum kalit${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} dagi kalit noto\u2018g\u2018ri`; + case "invalid_union": + return "Noto\u2018g\u2018ri kirish"; + case "invalid_element": + return `${issue2.origin} da noto\u2018g\u2018ri qiymat`; + default: + return `Noto\u2018g\u2018ri kirish`; + } + }; +}, "error"); +function uz_default() { + return { + localeError: error57() + }; +} +__name(uz_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/vi.js +var error58 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" }, + file: { unit: "byte", verb: "c\xF3" }, + array: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" }, + set: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" }, + map: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u0111\u1EA7u v\xE0o", + email: "\u0111\u1ECBa ch\u1EC9 email", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ng\xE0y gi\u1EDD ISO", + date: "ng\xE0y ISO", + time: "gi\u1EDD ISO", + duration: "kho\u1EA3ng th\u1EDDi gian ISO", + ipv4: "\u0111\u1ECBa ch\u1EC9 IPv4", + ipv6: "\u0111\u1ECBa ch\u1EC9 IPv6", + mac: "\u0111\u1ECBa ch\u1EC9 MAC", + cidrv4: "d\u1EA3i IPv4", + cidrv6: "d\u1EA3i IPv6", + base64: "chu\u1ED7i m\xE3 h\xF3a base64", + base64url: "chu\u1ED7i m\xE3 h\xF3a base64url", + json_string: "chu\u1ED7i JSON", + e164: "s\u1ED1 E.164", + credit_card: "s\u1ED1 th\u1EBB t\xEDn d\u1EE5ng", + currency_code: "m\xE3 ti\u1EC1n t\u1EC7", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u0111\u1EA7u v\xE0o" + }; + const TypeDictionary = { + nan: "NaN", + number: "s\u1ED1", + array: "m\u1EA3ng" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${issue2.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`; + } + return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${stringifyPrimitive(issue2.values[0])}`; + return `T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${issue2.origin ?? "gi\xE1 tr\u1ECB"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "ph\u1EA7n t\u1EED"}`; + return `Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${issue2.origin ?? "gi\xE1 tr\u1ECB"} ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${issue2.origin} ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${_issue.suffix}"`; + if (_issue.format === "includes") + return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${_issue.includes}"`; + if (_issue.format === "regex") + return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${_issue.pattern}`; + return `${FormatDictionary[_issue.format] ?? issue2.format} kh\xF4ng h\u1EE3p l\u1EC7`; + } + case "not_multiple_of": + return `S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${issue2.divisor}`; + case "unrecognized_keys": + return `Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${issue2.origin}`; + case "invalid_union": + return "\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"; + case "invalid_element": + return `Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${issue2.origin}`; + default: + return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7`; + } + }; +}, "error"); +function vi_default() { + return { + localeError: error58() + }; +} +__name(vi_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/zh-CN.js +var error59 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" }, + file: { unit: "\u5B57\u8282", verb: "\u5305\u542B" }, + array: { unit: "\u9879", verb: "\u5305\u542B" }, + set: { unit: "\u9879", verb: "\u5305\u542B" }, + map: { unit: "\u9879", verb: "\u5305\u542B" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u8F93\u5165", + email: "\u7535\u5B50\u90AE\u4EF6", + url: "URL", + emoji: "\u8868\u60C5\u7B26\u53F7", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO\u65E5\u671F\u65F6\u95F4", + date: "ISO\u65E5\u671F", + time: "ISO\u65F6\u95F4", + duration: "ISO\u65F6\u957F", + ipv4: "IPv4\u5730\u5740", + ipv6: "IPv6\u5730\u5740", + mac: "MAC\u5730\u5740", + cidrv4: "IPv4\u7F51\u6BB5", + cidrv6: "IPv6\u7F51\u6BB5", + base64: "base64\u7F16\u7801\u5B57\u7B26\u4E32", + base64url: "base64url\u7F16\u7801\u5B57\u7B26\u4E32", + json_string: "JSON\u5B57\u7B26\u4E32", + e164: "E.164\u53F7\u7801", + credit_card: "\u4FE1\u7528\u5361\u53F7", + currency_code: "\u8D27\u5E01\u4EE3\u7801", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u8F93\u5165" + }; + const TypeDictionary = { + nan: "NaN", + number: "\u6570\u5B57", + array: "\u6570\u7EC4", + null: "\u7A7A\u503C(null)" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${issue2.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`; + } + return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${stringifyPrimitive(issue2.values[0])}`; + return `\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue2.origin ?? "\u503C"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u4E2A\u5143\u7D20"}`; + return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue2.origin ?? "\u503C"} ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue2.origin} ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_issue.prefix}" \u5F00\u5934`; + if (_issue.format === "ends_with") + return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_issue.suffix}" \u7ED3\u5C3E`; + if (_issue.format === "includes") + return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${_issue.pattern}`; + return `\u65E0\u6548${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${issue2.divisor} \u7684\u500D\u6570`; + case "unrecognized_keys": + return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `${issue2.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`; + case "invalid_union": + return "\u65E0\u6548\u8F93\u5165"; + case "invalid_element": + return `${issue2.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`; + default: + return `\u65E0\u6548\u8F93\u5165`; + } + }; +}, "error"); +function zh_CN_default() { + return { + localeError: error59() + }; +} +__name(zh_CN_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/zh-TW.js +var error60 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" }, + file: { unit: "\u4F4D\u5143\u7D44", verb: "\u64C1\u6709" }, + array: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" }, + set: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" }, + map: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u8F38\u5165", + email: "\u90F5\u4EF6\u5730\u5740", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "ISO \u65E5\u671F\u6642\u9593", + date: "ISO \u65E5\u671F", + time: "ISO \u6642\u9593", + duration: "ISO \u671F\u9593", + ipv4: "IPv4 \u4F4D\u5740", + ipv6: "IPv6 \u4F4D\u5740", + mac: "MAC \u4F4D\u5740", + cidrv4: "IPv4 \u7BC4\u570D", + cidrv6: "IPv6 \u7BC4\u570D", + base64: "base64 \u7DE8\u78BC\u5B57\u4E32", + base64url: "base64url \u7DE8\u78BC\u5B57\u4E32", + json_string: "JSON \u5B57\u4E32", + e164: "E.164 \u6578\u503C", + credit_card: "\u4FE1\u7528\u5361\u865F", + currency_code: "\u8CA8\u5E63\u4EE3\u78BC", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u8F38\u5165" + }; + const TypeDictionary = { + nan: "NaN" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${issue2.expected}\uFF0C\u4F46\u6536\u5230 ${received}`; + } + return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${expected}\uFF0C\u4F46\u6536\u5230 ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${stringifyPrimitive(issue2.values[0])}`; + return `\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue2.origin ?? "\u503C"} \u61C9\u70BA ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u500B\u5143\u7D20"}`; + return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue2.origin ?? "\u503C"} \u61C9\u70BA ${adj}${issue2.maximum.toString()}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) { + return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue2.origin} \u61C9\u70BA ${adj}${issue2.minimum.toString()} ${sizing.unit}`; + } + return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue2.origin} \u61C9\u70BA ${adj}${issue2.minimum.toString()}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") { + return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_issue.prefix}" \u958B\u982D`; + } + if (_issue.format === "ends_with") + return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_issue.suffix}" \u7D50\u5C3E`; + if (_issue.format === "includes") + return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${_issue.pattern}`; + return `\u7121\u6548\u7684 ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${issue2.divisor} \u7684\u500D\u6578`; + case "unrecognized_keys": + return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${issue2.keys.length > 1 ? "\u5011" : ""}\uFF1A${joinValues(issue2.keys, "\u3001")}`; + case "invalid_key": + return `${issue2.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`; + case "invalid_union": + return "\u7121\u6548\u7684\u8F38\u5165\u503C"; + case "invalid_element": + return `${issue2.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`; + default: + return `\u7121\u6548\u7684\u8F38\u5165\u503C`; + } + }; +}, "error"); +function zh_TW_default() { + return { + localeError: error60() + }; +} +__name(zh_TW_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/yo.js +var error61 = /* @__PURE__ */ __name(() => { + const Sizable = { + string: { unit: "\xE0mi", verb: "n\xED" }, + file: { unit: "bytes", verb: "n\xED" }, + array: { unit: "nkan", verb: "n\xED" }, + set: { unit: "nkan", verb: "n\xED" }, + map: { unit: "nkan", verb: "n\xED" } + }; + function getSizing(origin) { + return Sizable[origin] ?? null; + } + __name(getSizing, "getSizing"); + const FormatDictionary = { + regex: "\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9", + email: "\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC", + url: "URL", + emoji: "emoji", + uuid: "UUID", + uuidv4: "UUIDv4", + uuidv6: "UUIDv6", + nanoid: "nanoid", + guid: "GUID", + cuid: "cuid", + cuid2: "cuid2", + ulid: "ULID", + xid: "XID", + ksuid: "KSUID", + datetime: "\xE0k\xF3k\xF2 ISO", + date: "\u1ECDj\u1ECD\u0301 ISO", + time: "\xE0k\xF3k\xF2 ISO", + duration: "\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO", + ipv4: "\xE0d\xEDr\u1EB9\u0301s\xEC IPv4", + ipv6: "\xE0d\xEDr\u1EB9\u0301s\xEC IPv6", + mac: "\xE0d\xEDr\u1EB9\u0301s\xEC MAC", + cidrv4: "\xE0gb\xE8gb\xE8 IPv4", + cidrv6: "\xE0gb\xE8gb\xE8 IPv6", + base64: "\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64", + base64url: "\u1ECD\u0300r\u1ECD\u0300 base64url", + json_string: "\u1ECD\u0300r\u1ECD\u0300 JSON", + e164: "n\u1ECD\u0301mb\xE0 E.164", + credit_card: "n\u1ECDmba kaadi gbese", + currency_code: "koodu ow\xF3", + iban: "IBAN", + jwt: "JWT", + template_literal: "\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9" + }; + const TypeDictionary = { + nan: "NaN", + number: "n\u1ECD\u0301mb\xE0", + array: "akop\u1ECD" + }; + return (issue2) => { + switch (issue2.code) { + case "invalid_type": { + const expected = TypeDictionary[issue2.expected] ?? issue2.expected; + const receivedType = parsedType(issue2.input); + const received = TypeDictionary[receivedType] ?? receivedType; + if (/^[A-Z]/.test(issue2.expected)) { + return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi instanceof ${issue2.expected}, \xE0m\u1ECD\u0300 a r\xED ${received}`; + } + return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${expected}, \xE0m\u1ECD\u0300 a r\xED ${received}`; + } + case "invalid_value": + if (issue2.values.length === 1) + return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${stringifyPrimitive(issue2.values[0])}`; + return `\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${joinValues(issue2.values, "|")}`; + case "too_big": { + const adj = issue2.inclusive ? "<=" : "<"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${issue2.origin ?? "iye"} ${sizing.verb} ${adj}${issue2.maximum} ${sizing.unit}`; + return `T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${adj}${issue2.maximum}`; + } + case "too_small": { + const adj = issue2.inclusive ? ">=" : ">"; + const sizing = getSizing(issue2.origin); + if (sizing) + return `K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum} ${sizing.unit}`; + return `K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${adj}${issue2.minimum}`; + } + case "invalid_format": { + const _issue = issue2; + if (_issue.format === "starts_with") + return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${_issue.prefix}"`; + if (_issue.format === "ends_with") + return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${_issue.suffix}"`; + if (_issue.format === "includes") + return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${_issue.includes}"`; + if (_issue.format === "regex") + return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${_issue.pattern}`; + return `A\u1E63\xEC\u1E63e: ${FormatDictionary[_issue.format] ?? issue2.format}`; + } + case "not_multiple_of": + return `N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${issue2.divisor}`; + case "unrecognized_keys": + return `B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${joinValues(issue2.keys, ", ")}`; + case "invalid_key": + return `B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${issue2.origin}`; + case "invalid_union": + return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"; + case "invalid_element": + return `Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${issue2.origin}`; + default: + return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"; + } + }; +}, "error"); +function yo_default() { + return { + localeError: error61() + }; +} +__name(yo_default, "default"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/registries.js +var _a2; +var $output = /* @__PURE__ */ Symbol("ZodOutput"); +var $input = /* @__PURE__ */ Symbol("ZodInput"); +var $ZodRegistry = class { + static { + __name(this, "$ZodRegistry"); + } + constructor() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + } + add(schema2, ..._meta) { + const meta3 = _meta[0]; + this._map.set(schema2, meta3); + if (meta3 && typeof meta3 === "object" && "id" in meta3) { + this._idmap.set(meta3.id, schema2); + } + return this; + } + clear() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + return this; + } + remove(schema2) { + const meta3 = this._map.get(schema2); + if (meta3 && typeof meta3 === "object" && "id" in meta3) { + this._idmap.delete(meta3.id); + } + this._map.delete(schema2); + return this; + } + get(schema2) { + const p3 = schema2._zod.parent; + if (p3) { + const pm = { ...this.get(p3) ?? {} }; + delete pm.id; + const f5 = { ...pm, ...this._map.get(schema2) }; + return Object.keys(f5).length ? f5 : void 0; + } + return this._map.get(schema2); + } + has(schema2) { + return this._map.has(schema2); + } +}; +function registry() { + return new $ZodRegistry(); +} +__name(registry, "registry"); +(_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry()); +var globalRegistry = globalThis.__zod_globalRegistry; + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/compile.js +var INVALID = /* @__PURE__ */ Symbol.for("zod.compile.invalid"); +var FALLBACK_FLAG = /* @__PURE__ */ Symbol.for("zod.compile.fallback"); +var ZodCompileAsyncError = class extends Error { + static { + __name(this, "ZodCompileAsyncError"); + } + constructor(message = "z.compile does not support async refinements, transforms, or checks") { + super(message); + this.name = "ZodCompileAsyncError"; + } +}; +var ZodCompileUnsupportedError = class extends Error { + static { + __name(this, "ZodCompileUnsupportedError"); + } + constructor(feature, islandable = true) { + super(`z.compile does not support ${feature}; this schema must use the runtime parser`); + this.name = "ZodCompileUnsupportedError"; + this.islandable = islandable; + } +}; +function compileValidator(schema2, parser) { + try { + return compileFn(schema2, { assertOnly: true }); + } catch { + return parser; + } +} +__name(compileValidator, "compileValidator"); +function compile(schema2, options) { + try { + const parser = compileFn(schema2); + const clone2 = withParser(schema2, parser); + clone2._zod.bag.validator = compileValidator(schema2, parser); + return clone2; + } catch (err) { + if (options?.strict) + throw err; + return schema2; + } +} +__name(compile, "compile"); +function withParser(schema2, parser) { + if (isRecursiveSchema(schema2)) { + throw new ZodCompileUnsupportedError("a schema whose subtree contains a reference cycle"); + } + const clone2 = clone(schema2); + const liveRun = schema2._zod.run; + const originalRun = liveRun.__originalRun ?? liveRun; + const wrapped = /* @__PURE__ */ __name((payload, ctx) => { + if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks || ctx?.[FALLBACK_FLAG]) { + return originalRun(payload, ctx); + } + if (ctx && isBackEdge(ctx, payload.value)) { + return originalRun(payload, ctx); + } + const out = parser(payload.value); + if (out !== INVALID) { + payload.value = out; + return payload; + } + if (ctx) + ctx[FALLBACK_FLAG] = true; + return originalRun(payload, ctx); + }, "wrapped"); + wrapped.__originalRun = originalRun; + clone2._zod.bag.fallbackRun = originalRun; + clone2._zod.bag.validator = parser; + clone2._zod.run = wrapped; + if (!liveRun.__originalRun) + installCompiledUserMethods(clone2, schema2, parser); + return clone2; +} +__name(withParser, "withParser"); +function installCompiledUserMethods(target, source, parser) { + const targetAny = target; + const sourceAny = source; + if (typeof sourceAny.safeParse === "function") { + const originalSafeParse = sourceAny.safeParse; + targetAny.safeParse = (data, params) => { + const out = parser(data); + if (out !== INVALID) { + return { success: true, data: out }; + } + return originalSafeParse(data, params); + }; + } + if (typeof sourceAny.parse === "function") { + const originalParse = sourceAny.parse; + targetAny.parse = (data, params) => { + const out = parser(data); + if (out !== INVALID) { + return out; + } + return originalParse(data, params); + }; + } +} +__name(installCompiledUserMethods, "installCompiledUserMethods"); +function compileFn(schema2, options) { + let recursive2 = true; + try { + recursive2 = isRecursiveSchema(schema2); + } catch { + } + if (recursive2) { + throw new ZodCompileUnsupportedError("a schema whose subtree contains a reference cycle"); + } + const ctx = { + constants: /* @__PURE__ */ new Map(), + constantCounter: 0, + varCounter: 0, + definite: true + }; + const doc = new Doc(["input"]); + const outputAccessor = generateCheck(doc, ctx, schema2, "input", !options?.assertOnly); + doc.write(outputAccessor === null ? `return true;` : `return ${outputAccessor};`); + const constantNames = ["INVALID", ...ctx.constants.keys()]; + const constantValues = [INVALID, ...ctx.constants.values()]; + const code = doc.content.join("\n"); + const fullCode = options?.debug ? constantNames.length > 0 ? `// Constants: ${constantNames.join(", ")} +${code}` : code : ""; + const F = Function; + const factoryCode = `return (input) => { +${code} +}`; + let fn; + try { + const factory = new F(...constantNames, factoryCode); + fn = factory(...constantValues); + } catch (err) { + throw new ZodCompileUnsupportedError(`this schema (generated code failed to evaluate: ${err.message})`); + } + if (options?.debug) { + fn.code = fullCode; + } + fn.definite = ctx.definite; + return fn; +} +__name(compileFn, "compileFn"); +function addConstant(ctx, value) { + for (const [name3, v] of ctx.constants) { + if (v === value) + return name3; + } + const name2 = `c${ctx.constantCounter++}`; + ctx.constants.set(name2, value); + return name2; +} +__name(addConstant, "addConstant"); +function addUserConstant(ctx, fn) { + ctx.definite = false; + return addConstant(ctx, fn); +} +__name(addUserConstant, "addUserConstant"); +function newVar(ctx) { + return `v${ctx.varCounter++}`; +} +__name(newVar, "newVar"); +function runtimeRun(schema2, value) { + const result = schema2._zod.run({ value, issues: [] }, {}); + if (result && typeof result.then === "function") + return INVALID; + const r5 = result; + return r5.issues.length === 0 ? r5.value : INVALID; +} +__name(runtimeRun, "runtimeRun"); +function compileChild(doc, ctx, schema2, accessor, needsValue = true) { + const contentLen = doc.content.length; + const constantCount = ctx.constants.size; + const constantCounter = ctx.constantCounter; + const varCounter = ctx.varCounter; + try { + return generateCheck(doc, ctx, schema2, accessor, needsValue); + } catch (err) { + if (!(err instanceof ZodCompileUnsupportedError) || !err.islandable) + throw err; + doc.content.length = contentLen; + if (ctx.constants.size > constantCount) { + const trailing = Array.from(ctx.constants.keys()).slice(constantCount); + for (const k5 of trailing) + ctx.constants.delete(k5); + } + ctx.constantCounter = constantCounter; + ctx.varCounter = varCounter; + return emitRuntimeIsland(doc, ctx, schema2, accessor); + } +} +__name(compileChild, "compileChild"); +function emitRuntimeIsland(doc, ctx, schema2, accessor) { + ctx.definite = false; + const schemaConst = addConstant(ctx, schema2); + const runConst = addConstant(ctx, runtimeRun); + const outVar = newVar(ctx); + doc.write(`const ${outVar} = ${runConst}(${schemaConst}, ${accessor});`); + doc.write(`if (${outVar} === INVALID) return INVALID;`); + return outVar; +} +__name(emitRuntimeIsland, "emitRuntimeIsland"); +var WHEN_DEFAULTED_CHECKS = /* @__PURE__ */ new Set([ + "max_size", + "min_size", + "size_equals", + "max_length", + "min_length", + "length_equals" +]); +function generateChecks(doc, ctx, schema2, accessor) { + const schemaChecks = schema2._zod.def.checks; + if (!schemaChecks || schemaChecks.length === 0) + return accessor; + let currentAccessor = accessor; + for (const check2 of schemaChecks) { + const def = check2._zod.def; + if (def.when && !WHEN_DEFAULTED_CHECKS.has(def.check)) { + throw new ZodCompileUnsupportedError(`check with a custom "when" condition`); + } + switch (def.check) { + case "greater_than": + generateGreaterThanCheck(doc, ctx, def, currentAccessor); + break; + case "less_than": + generateLessThanCheck(doc, ctx, def, currentAccessor); + break; + case "multiple_of": + generateMultipleOfCheck(doc, ctx, def, currentAccessor); + break; + case "number_format": + generateNumberFormatCheck(doc, def, currentAccessor); + break; + case "min_length": { + const min = numericOperand(def.minimum, "min_length"); + const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length >= ${min} && ${currentAccessor}.length < ${def.minimum * 2}`); + doc.write(`if (${len} < ${min}) return INVALID;`); + break; + } + case "max_length": { + const max = numericOperand(def.maximum, "max_length"); + const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length > ${max}`); + doc.write(`if (${len} > ${max}) return INVALID;`); + break; + } + case "length_equals": { + const exact = numericOperand(def.length, "length_equals"); + const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length >= ${exact} && ${currentAccessor}.length <= ${def.length * 2}`); + doc.write(`if (${len} !== ${exact}) return INVALID;`); + break; + } + case "min_size": + doc.write(`if (${currentAccessor}.size < ${numericOperand(def.minimum, "min_size")}) return INVALID;`); + break; + case "max_size": + doc.write(`if (${currentAccessor}.size > ${numericOperand(def.maximum, "max_size")}) return INVALID;`); + break; + case "size_equals": + doc.write(`if (${currentAccessor}.size !== ${numericOperand(def.size, "size_equals")}) return INVALID;`); + break; + case "string_format": + currentAccessor = generateStringFormatCheck(doc, ctx, def, currentAccessor); + break; + case "custom": + currentAccessor = generateCustomRefineCheck(doc, ctx, check2, currentAccessor); + break; + case "bigint_format": + generateBigIntFormatCheck(doc, def, currentAccessor); + break; + case "mime_type": + generateMimeTypeCheck(doc, ctx, def, currentAccessor); + break; + case "property": + generatePropertyCheck(doc, ctx, def, currentAccessor); + break; + case "properties": + generatePropertiesChecks(doc, ctx, def, currentAccessor); + break; + case "overwrite": { + const newAccessor = newVar(ctx); + generateOverwriteCheck(doc, ctx, check2, currentAccessor, newAccessor); + currentAccessor = newAccessor; + break; + } + default: { + void def; + throw new ZodCompileUnsupportedError(`check type ${def.check}`); + } + } + } + return currentAccessor; +} +__name(generateChecks, "generateChecks"); +function codePointLengthVar(doc, ctx, accessor, inDoubt) { + const cpLen = addConstant(ctx, codePointLength); + const v = newVar(ctx); + doc.write(`const ${v} = typeof ${accessor} === "string" && ${inDoubt} ? ${cpLen}(${accessor}) : ${accessor}.length;`); + return v; +} +__name(codePointLengthVar, "codePointLengthVar"); +function numericOperand(value, label) { + if (typeof value !== "number" || !Number.isFinite(value)) { + throw new ZodCompileUnsupportedError(`${label} bound of type ${typeof value}`); + } + return `${value}`; +} +__name(numericOperand, "numericOperand"); +function comparisonOperand(ctx, value) { + if (typeof value === "bigint") + return `${value}n`; + if (typeof value === "number") { + if (Number.isNaN(value)) + throw new ZodCompileUnsupportedError("comparison check with NaN bound"); + return `${value}`; + } + if (value instanceof Date) { + if (Number.isNaN(value.getTime())) { + throw new ZodCompileUnsupportedError("comparison check with Invalid Date bound"); + } + return addConstant(ctx, value); + } + throw new ZodCompileUnsupportedError(`comparison check bound of type ${typeof value}`); +} +__name(comparisonOperand, "comparisonOperand"); +function generateGreaterThanCheck(doc, ctx, def, accessor) { + const op = def.inclusive ? "<" : "<="; + doc.write(`if (${accessor} ${op} ${comparisonOperand(ctx, def.value)}) return INVALID;`); +} +__name(generateGreaterThanCheck, "generateGreaterThanCheck"); +function generateLessThanCheck(doc, ctx, def, accessor) { + const op = def.inclusive ? ">" : ">="; + doc.write(`if (${accessor} ${op} ${comparisonOperand(ctx, def.value)}) return INVALID;`); +} +__name(generateLessThanCheck, "generateLessThanCheck"); +function generateMultipleOfCheck(doc, ctx, def, accessor) { + if (typeof def.value === "bigint") { + if (def.value === BigInt(0)) + throw new ZodCompileUnsupportedError("multiple_of check with a zero divisor"); + doc.write(`if (${accessor} % ${def.value}n !== 0n) return INVALID;`); + } else { + const remainder = addConstant(ctx, floatSafeRemainder); + doc.write(`if (${remainder}(${accessor}, ${numericOperand(def.value, "multiple_of")}) !== 0) return INVALID;`); + } +} +__name(generateMultipleOfCheck, "generateMultipleOfCheck"); +function generateNumberFormatCheck(doc, def, accessor) { + const format = def.format; + switch (format) { + case "safeint": + doc.write(`if (!Number.isSafeInteger(${accessor})) return INVALID;`); + break; + case "int32": + doc.write(`if (!Number.isInteger(${accessor}) || ${accessor} < -2147483648 || ${accessor} > 2147483647) return INVALID;`); + break; + case "uint32": + doc.write(`if (!Number.isInteger(${accessor}) || ${accessor} < 0 || ${accessor} > 4294967295) return INVALID;`); + break; + case "float32": + doc.write(`if (!Number.isFinite(${accessor}) || ${accessor} < -3.4028234663852886e38 || ${accessor} > 3.4028234663852886e38) return INVALID;`); + break; + case "float64": + doc.write(`if (!Number.isFinite(${accessor})) return INVALID;`); + break; + default: { + void format; + throw new ZodCompileUnsupportedError(`number format ${format}`); + } + } +} +__name(generateNumberFormatCheck, "generateNumberFormatCheck"); +function generateBigIntFormatCheck(doc, def, accessor) { + const format = def.format; + if (!format) + return; + switch (format) { + case "int64": + doc.write(`if (${accessor} < -9223372036854775808n || ${accessor} > 9223372036854775807n) return INVALID;`); + break; + case "uint64": + doc.write(`if (${accessor} < 0n || ${accessor} > 18446744073709551615n) return INVALID;`); + break; + default: { + void format; + throw new ZodCompileUnsupportedError(`bigint format ${format}`); + } + } +} +__name(generateBigIntFormatCheck, "generateBigIntFormatCheck"); +function generateMimeTypeCheck(doc, ctx, def, accessor) { + const mimeTypes = def.mime; + if (mimeTypes && mimeTypes.length > 0) { + const mimeSet = addConstant(ctx, new Set(mimeTypes)); + doc.write(`if (!${mimeSet}.has(${accessor}.type)) return INVALID;`); + } +} +__name(generateMimeTypeCheck, "generateMimeTypeCheck"); +function generatePropertiesChecks(doc, ctx, def, accessor) { + if (def.when) { + throw new ZodCompileUnsupportedError(`check with a custom "when" condition`); + } + doc.write(`if (${accessor} == null) return INVALID;`); + const shape = def.shape; + for (const key of Reflect.ownKeys(shape)) { + const keyExpr = typeof key === "symbol" ? addConstant(ctx, key) : esc(key); + const inputVar = newVar(ctx); + doc.write(`const ${inputVar} = ${accessor}[${keyExpr}];`); + compileChild(doc, ctx, shape[key], inputVar, false); + } +} +__name(generatePropertiesChecks, "generatePropertiesChecks"); +function generatePropertyCheck(doc, ctx, def, accessor) { + const propAccessor = `${accessor}[${JSON.stringify(def.property)}]`; + generateCheck(doc, ctx, def.schema, propAccessor); +} +__name(generatePropertyCheck, "generatePropertyCheck"); +function generateOverwriteCheck(doc, ctx, check2, currentAccessor, newAccessor) { + const tx = check2._zod.def.tx; + if (!tx) { + throw new ZodCompileUnsupportedError("overwrite check without a transform function"); + } + if (isAsyncFunction(tx)) { + throw new ZodCompileAsyncError("z.compile: async overwrite transforms are not supported"); + } + const txConst = addConstant(ctx, tx); + doc.write(`const ${newAccessor} = ${txConst}(${currentAccessor});`); +} +__name(generateOverwriteCheck, "generateOverwriteCheck"); +function throwAsync() { + throw new $ZodAsyncError(); +} +__name(throwAsync, "throwAsync"); +function pushIssue(issue2) { + this.issues.push(issue2); +} +__name(pushIssue, "pushIssue"); +function generateCustomRefineCheck(doc, ctx, check2, accessor) { + const def = check2._zod.def; + if (def.fn) { + if (isAsyncFunction(def.fn)) { + throw new ZodCompileAsyncError("z.compile: async .refine() predicates are not supported"); + } + const fnConst = addUserConstant(ctx, def.fn); + const throwAsyncConst = addConstant(ctx, throwAsync); + const resVar = newVar(ctx); + doc.write(`const ${resVar} = ${fnConst}(${accessor});`); + doc.write(`if (${resVar} instanceof Promise) ${throwAsyncConst}();`); + doc.write(`if (!${resVar}) return INVALID;`); + return accessor; + } + if (check2._zod.check) { + if (isAsyncFunction(check2._zod.check)) { + throw new ZodCompileAsyncError("z.compile: async .superRefine() / check functions are not supported"); + } + const checkFn = check2._zod.check; + const helperFn = /* @__PURE__ */ __name((value) => { + const fakePayload = { value, issues: [], addIssue: pushIssue }; + const result = checkFn(fakePayload); + if (result instanceof Promise) + throwAsync(); + return fakePayload.issues.length === 0 ? fakePayload.value : INVALID; + }, "helperFn"); + const helperConst = addUserConstant(ctx, helperFn); + const outVar = newVar(ctx); + doc.write(`const ${outVar} = ${helperConst}(${accessor});`); + doc.write(`if (${outVar} === INVALID) return INVALID;`); + return outVar; + } + throw new ZodCompileUnsupportedError("custom check without a predicate or check function"); +} +__name(generateCustomRefineCheck, "generateCustomRefineCheck"); +var PATTERN_IS_COMPLETE = /* @__PURE__ */ new Set([ + "cidrv4", + "cuid", + "cuid2", + "date", + "datetime", + "duration", + "e164", + "email", + "emoji", + "ends_with", + "guid", + "includes", + "ipv4", + "ksuid", + "lowercase", + "mac", + "nanoid", + "regex", + "starts_with", + "time", + "ulid", + "uppercase", + "uuid", + "xid" +]); +function generateStringFormatCheck(doc, ctx, def, accessor, needsValue = true) { + const fmt = def.format; + if (fmt === "base64") { + const validator = addConstant(ctx, isValidBase64); + doc.write(`if (!${validator}(${accessor})) return INVALID;`); + return accessor; + } + if (fmt === "base64url") { + const validator = addConstant(ctx, isValidBase64URL); + doc.write(`if (!${validator}(${accessor})) return INVALID;`); + return accessor; + } + if (fmt === "jwt") { + const validator = addConstant(ctx, isValidJWT); + const alg = addConstant(ctx, def.alg ?? null); + doc.write(`if (!${validator}(${accessor}, ${alg})) return INVALID;`); + return accessor; + } + if (fmt === "ipv6") { + const validator = addConstant(ctx, isValidIPv6); + doc.write(`if (!${validator}(${accessor})) return INVALID;`); + return accessor; + } + if (fmt === "cidrv6") { + const validator = addConstant(ctx, isValidCIDRv6); + doc.write(`if (!${validator}(${accessor})) return INVALID;`); + return accessor; + } + if (fmt === "credit_card") { + const validator = addConstant(ctx, isValidCreditCard); + doc.write(`if (!${validator}(${accessor})) return INVALID;`); + return accessor; + } + if (fmt === "iban") { + const validator = addConstant(ctx, isValidIBAN); + doc.write(`if (!${validator}(${accessor})) return INVALID;`); + return accessor; + } + const formatDef = def; + if (fmt === "url" || fmt === "httpurl" || formatDef.normalize || formatDef.hostname !== void 0 || formatDef.protocol !== void 0) { + const parseConst = addConstant(ctx, validateURL); + const defConst = addConstant(ctx, def); + const trimVar = newVar(ctx); + const urlVar = newVar(ctx); + doc.write(`const ${trimVar} = ${accessor}.trim();`); + doc.write(`const ${urlVar} = ${parseConst}(${trimVar}, ${defConst});`); + doc.write(`if (typeof ${urlVar} === "number") return INVALID;`); + if (formatDef.hostname !== void 0) { + const hostnameConst = addConstant(ctx, urlHostnameOk); + doc.write(`if (!${hostnameConst}(${urlVar}, ${defConst}.hostname)) return INVALID;`); + } + if (formatDef.protocol !== void 0) { + const protocolConst = addConstant(ctx, urlProtocolOk); + doc.write(`if (!${protocolConst}(${urlVar}, ${defConst}.protocol)) return INVALID;`); + } + if (!needsValue) + return null; + const outputVar = newVar(ctx); + const outputExpr = formatDef.normalize ? `${urlVar}.href` : `${addConstant(ctx, stripTabAndNewline)}(${trimVar})`; + doc.write(`const ${outputVar} = ${outputExpr};`); + return outputVar; + } + const customFn = def.fn; + if (customFn) { + if (isAsyncFunction(customFn)) + throw new ZodCompileUnsupportedError(`async string format ${fmt}`); + const fnConst = addConstant(ctx, customFn); + doc.write(`if (!${fnConst}(${accessor})) return INVALID;`); + return accessor; + } + if (PATTERN_IS_COMPLETE.has(fmt) && def.pattern) { + const patternConst = addConstant(ctx, def.pattern); + doc.write(`${patternConst}.lastIndex = 0;`); + doc.write(`if (!${patternConst}.test(${accessor})) return INVALID;`); + return accessor; + } + const format = def.format; + switch (format) { + case "regex": + throw new ZodCompileUnsupportedError("regex format without a pattern"); + case "lowercase": + doc.write(`if (${accessor} !== ${accessor}.toLowerCase()) return INVALID;`); + break; + case "uppercase": + doc.write(`if (${accessor} !== ${accessor}.toUpperCase()) return INVALID;`); + break; + case "includes": + doc.write(`if (!${accessor}.includes(${esc(def.includes)})) return INVALID;`); + break; + case "starts_with": { + const prefix = def.prefix; + doc.write(`if (${accessor}.slice(0, ${prefix.length}) !== ${esc(prefix)}) return INVALID;`); + break; + } + case "ends_with": { + const suffix = def.suffix; + doc.write(`if (${accessor}.slice(-${suffix.length}) !== ${esc(suffix)}) return INVALID;`); + break; + } + default: { + void format; + throw new ZodCompileUnsupportedError(`string format ${format}`); + } + } + return accessor; +} +__name(generateStringFormatCheck, "generateStringFormatCheck"); +function generateCheck(doc, ctx, schema2, accessor, needsValue = true) { + const def = schema2._zod.def; + const type = def.type; + if (def.coerce) { + throw new ZodCompileUnsupportedError(`coercion (z.coerce.${type}())`); + } + const buildsValue = needsValue || !!def.checks?.length; + let typeAccessor; + switch (type) { + case "string": + typeAccessor = generateStringCheck(doc, ctx, schema2, accessor, buildsValue); + break; + case "number": + typeAccessor = generateNumberCheck(doc, schema2, accessor); + break; + case "boolean": + typeAccessor = generateBooleanCheck(doc, accessor); + break; + case "bigint": + typeAccessor = generateBigIntCheck(doc, schema2, accessor); + break; + case "symbol": + typeAccessor = generateSymbolCheck(doc, accessor); + break; + case "undefined": + typeAccessor = generateUndefinedCheck(doc, accessor); + break; + case "null": + typeAccessor = generateNullCheck(doc, accessor); + break; + case "any": + case "unknown": + typeAccessor = accessor; + break; + case "never": + doc.write("return INVALID;"); + typeAccessor = accessor; + break; + case "void": + typeAccessor = generateVoidCheck(doc, accessor); + break; + case "nan": + typeAccessor = generateNaNCheck(doc, accessor); + break; + case "date": + typeAccessor = generateDateCheck(doc, accessor); + break; + case "object": + typeAccessor = generateObjectCheck(doc, ctx, schema2, accessor, buildsValue); + break; + case "optional": + typeAccessor = generateOptionalCheck(doc, ctx, schema2, accessor, buildsValue); + break; + case "nullable": + typeAccessor = generateNullableCheck(doc, ctx, schema2, accessor, buildsValue); + break; + case "array": + typeAccessor = generateArrayCheck(doc, ctx, schema2, accessor, buildsValue); + break; + case "literal": + typeAccessor = generateLiteralCheck(doc, ctx, schema2, accessor); + break; + case "enum": + typeAccessor = generateEnumCheck(doc, ctx, schema2, accessor); + break; + case "readonly": { + const innerOut = generateWrapperCheck(doc, ctx, schema2, accessor); + const frozenVar = newVar(ctx); + doc.write(`const ${frozenVar} = Object.freeze(${innerOut});`); + typeAccessor = frozenVar; + break; + } + case "success": + generateWrapperCheck(doc, ctx, schema2, accessor); + typeAccessor = "true"; + break; + case "default": + case "prefault": + typeAccessor = generateDefaultCheck(doc, ctx, schema2, accessor); + break; + case "nonoptional": + typeAccessor = generateNonOptionalCheck(doc, ctx, schema2, accessor); + break; + case "tuple": + typeAccessor = generateTupleCheck(doc, ctx, schema2, accessor); + break; + case "union": + typeAccessor = generateUnionCheck(doc, ctx, schema2, accessor); + break; + case "intersection": + typeAccessor = generateIntersectionCheck(doc, ctx, schema2, accessor); + break; + case "record": + typeAccessor = generateRecordCheck(doc, ctx, schema2, accessor); + break; + case "map": + typeAccessor = generateMapCheck(doc, ctx, schema2, accessor); + break; + case "set": + typeAccessor = generateSetCheck(doc, ctx, schema2, accessor); + break; + case "file": + typeAccessor = generateFileCheck(doc, accessor); + break; + case "template_literal": + typeAccessor = generateTemplateLiteralCheck(doc, ctx, schema2, accessor); + break; + case "lazy": + typeAccessor = generateLazyCheck(doc, ctx, schema2, accessor); + break; + case "pipe": + typeAccessor = generatePipeCheck(doc, ctx, schema2, accessor); + break; + case "custom": + typeAccessor = generateCustomCheck(doc, ctx, schema2, accessor); + break; + case "transform": + typeAccessor = generateTransformCheck(doc, ctx, schema2, accessor); + break; + case "catch": + typeAccessor = generateCatchCheck(doc, ctx, schema2, accessor); + break; + default: { + void type; + throw new ZodCompileUnsupportedError(`schema type ${type}`); + } + } + if (typeAccessor === null) + return null; + return generateChecks(doc, ctx, schema2, typeAccessor); +} +__name(generateCheck, "generateCheck"); +function generateStringCheck(doc, ctx, schema2, accessor, needsValue = true) { + doc.write(`if (typeof ${accessor} !== "string") return INVALID;`); + const def = schema2._zod.def; + if (def.format === void 0) + return accessor; + return generateStringFormatCheck(doc, ctx, def, accessor, needsValue); +} +__name(generateStringCheck, "generateStringCheck"); +function generateNumberCheck(doc, schema2, accessor) { + doc.write(`if (typeof ${accessor} !== "number" || !Number.isFinite(${accessor})) return INVALID;`); + const def = schema2._zod.def; + if (def.check === "number_format" && def.format) { + generateNumberFormatCheck(doc, { format: def.format }, accessor); + } + return accessor; +} +__name(generateNumberCheck, "generateNumberCheck"); +function generateBooleanCheck(doc, accessor) { + doc.write(`if (typeof ${accessor} !== "boolean") return INVALID;`); + return accessor; +} +__name(generateBooleanCheck, "generateBooleanCheck"); +function generateBigIntCheck(doc, schema2, accessor) { + doc.write(`if (typeof ${accessor} !== "bigint") return INVALID;`); + const def = schema2._zod.def; + if (def.format) { + switch (def.format) { + case "int64": + doc.write(`if (${accessor} < -9223372036854775808n || ${accessor} > 9223372036854775807n) return INVALID;`); + break; + case "uint64": + doc.write(`if (${accessor} < 0n || ${accessor} > 18446744073709551615n) return INVALID;`); + break; + } + } + return accessor; +} +__name(generateBigIntCheck, "generateBigIntCheck"); +function generateSymbolCheck(doc, accessor) { + doc.write(`if (typeof ${accessor} !== "symbol") return INVALID;`); + return accessor; +} +__name(generateSymbolCheck, "generateSymbolCheck"); +function generateUndefinedCheck(doc, accessor) { + doc.write(`if (${accessor} !== undefined) return INVALID;`); + return accessor; +} +__name(generateUndefinedCheck, "generateUndefinedCheck"); +function generateNullCheck(doc, accessor) { + doc.write(`if (${accessor} !== null) return INVALID;`); + return accessor; +} +__name(generateNullCheck, "generateNullCheck"); +function generateVoidCheck(doc, accessor) { + doc.write(`if (${accessor} !== undefined) return INVALID;`); + return accessor; +} +__name(generateVoidCheck, "generateVoidCheck"); +function generateNaNCheck(doc, accessor) { + doc.write(`if (typeof ${accessor} !== "number" || !Number.isNaN(${accessor})) return INVALID;`); + return accessor; +} +__name(generateNaNCheck, "generateNaNCheck"); +function generateDateCheck(doc, accessor) { + doc.write(`if (!(${accessor} instanceof Date) || Number.isNaN(${accessor}.getTime())) return INVALID;`); + return accessor; +} +__name(generateDateCheck, "generateDateCheck"); +function generateObjectCheck(doc, ctx, schema2, accessor, buildsValue = true) { + const def = schema2._zod.def; + doc.write(`if (typeof ${accessor} !== "object" || ${accessor} === null || Array.isArray(${accessor})) return INVALID;`); + const shape = def.shape; + const keys = Object.keys(shape); + const symbolKeys = Object.getOwnPropertySymbols(shape); + const allKeys = symbolKeys.length ? [...keys, ...symbolKeys] : keys; + const keyExpr = /* @__PURE__ */ __name((k5) => typeof k5 === "symbol" ? addConstant(ctx, k5) : esc(k5), "keyExpr"); + const propKey = /* @__PURE__ */ __name((k5) => typeof k5 === "symbol" ? `[${keyExpr(k5)}]` : esc(k5), "propKey"); + const propShape = shape; + if (keys.includes("__proto__")) { + throw new ZodCompileUnsupportedError('object shape key "__proto__"'); + } + const propOutputs = /* @__PURE__ */ new Map(); + for (const key of allKeys) { + const propSchema = propShape[key]; + const kx = keyExpr(key); + const inputVar = newVar(ctx); + doc.write(`const ${inputVar} = ${accessor}[${kx}];`); + if (propSchema._zod.optin !== void 0) { + const outputVar2 = newVar(ctx); + doc.write(`let ${outputVar2} = (() => {`); + doc.indented((d5) => { + const outputAccessor = compileChild(d5, ctx, propSchema, inputVar); + d5.write(`return ${outputAccessor};`); + }); + doc.write(`})();`); + if (propSchema._zod.optout === "optional") { + doc.write(`if (${outputVar2} === INVALID) {`); + doc.indented((d5) => { + d5.write(`if (${kx} in ${accessor}) return INVALID;`); + d5.write(`${outputVar2} = undefined;`); + }); + doc.write(`}`); + } else { + doc.write(`if (${outputVar2} === INVALID) return INVALID;`); + } + propOutputs.set(key, outputVar2); + } else { + if (requiresPresenceCheck(propSchema)) { + doc.write(`if (!(${kx} in ${accessor})) return INVALID;`); + } + const outputAccessor = compileChild(doc, ctx, propSchema, inputVar, buildsValue); + if (outputAccessor !== null) + propOutputs.set(key, outputAccessor); + } + } + const catchall = def.catchall; + let unknownKeysMode = "none"; + if (catchall) { + const catchallType = catchall._zod.def.type; + if (catchallType === "never") { + const condition = keys.map((k5) => `k !== ${esc(k5)}`).join(" && ") || "true"; + doc.write(`for (const k in ${accessor}) {`); + doc.indented((d5) => { + d5.write(`if (${condition}) return INVALID;`); + }); + doc.write(`}`); + } else if ((catchallType === "unknown" || catchallType === "any") && !catchall._zod.def.checks?.length) { + unknownKeysMode = "passthrough"; + } else { + unknownKeysMode = "schema"; + } + } + const outputVar = newVar(ctx); + const hasConditionalKeys = allKeys.some((k5) => mayOmitUndefined(propShape[k5]) || dropsWhenAbsent(propShape[k5])); + if (!buildsValue) { + if (unknownKeysMode === "schema") { + const knownSet = keys.length > 0 ? addConstant(ctx, new Set(keys)) : null; + doc.write(`for (const k in ${accessor}) {`); + doc.indented((d5) => { + d5.write(`if (k === "__proto__") continue;`); + if (knownSet) + d5.write(`if (${knownSet}.has(k)) continue;`); + const valVar = newVar(ctx); + d5.write(`const ${valVar} = ${accessor}[k];`); + compileChild(d5, ctx, catchall, valVar, false); + }); + doc.write(`}`); + } + return null; + } + if (!hasConditionalKeys) { + const propLiterals = allKeys.map((k5) => `${propKey(k5)}: ${propOutputs.get(k5)}`).join(", "); + doc.write(`const ${outputVar} = { ${propLiterals} };`); + } else { + doc.write(`const ${outputVar} = {};`); + for (const k5 of allKeys) { + const kx = keyExpr(k5); + const out = propOutputs.get(k5); + if (dropsWhenAbsent(propShape[k5])) { + doc.write(`if (${kx} in ${accessor}) ${outputVar}[${kx}] = ${out};`); + } else if (mayOmitUndefined(propShape[k5])) { + doc.write(`if (${out} !== undefined || ${kx} in ${accessor}) ${outputVar}[${kx}] = ${out};`); + } else { + doc.write(`${outputVar}[${kx}] = ${out};`); + } + } + } + if (unknownKeysMode !== "none") { + const knownSet = keys.length > 0 ? addConstant(ctx, new Set(keys)) : null; + doc.write(`for (const k in ${accessor}) {`); + doc.indented((d5) => { + d5.write(`if (k === "__proto__") continue;`); + if (knownSet) + d5.write(`if (${knownSet}.has(k)) continue;`); + if (unknownKeysMode === "passthrough") { + d5.write(`${outputVar}[k] = ${accessor}[k];`); + } else { + const valVar = newVar(ctx); + d5.write(`const ${valVar} = ${accessor}[k];`); + const catchallOut = compileChild(d5, ctx, catchall, valVar); + d5.write(`${outputVar}[k] = ${catchallOut};`); + } + }); + doc.write(`}`); + } + return outputVar; +} +__name(generateObjectCheck, "generateObjectCheck"); +function generateOptionalCheck(doc, ctx, schema2, accessor, buildsValue = true) { + const def = schema2._zod.def; + if (isExactOptional(schema2)) { + return generateCheck(doc, ctx, def.innerType, accessor, buildsValue); + } + if (def.innerType._zod.optin === "defaulted") { + const outputVar2 = newVar(ctx); + const branchVar = newVar(ctx); + doc.write(`let ${outputVar2};`); + doc.write(`if (${accessor} === undefined) {`); + doc.indented((d5) => { + d5.write(`const ${branchVar} = (() => {`); + d5.indented((d22) => { + const innerOutput = generateCheck(d22, ctx, def.innerType, accessor); + d22.write(`return ${innerOutput};`); + }); + d5.write(`})();`); + d5.write(`if (${branchVar} !== INVALID) ${outputVar2} = ${branchVar};`); + }); + doc.write(`} else {`); + doc.indented((d5) => { + const innerOutput = generateCheck(d5, ctx, def.innerType, accessor); + d5.write(`${outputVar2} = ${innerOutput};`); + }); + doc.write(`}`); + return outputVar2; + } + const outputVar = buildsValue ? newVar(ctx) : null; + if (outputVar) + doc.write(`let ${outputVar};`); + doc.write(`if (${accessor} !== undefined) {`); + doc.indented((d5) => { + const innerOutput = generateCheck(d5, ctx, def.innerType, accessor, buildsValue); + if (outputVar && innerOutput !== null) + d5.write(`${outputVar} = ${innerOutput};`); + }); + doc.write(`}`); + return outputVar; +} +__name(generateOptionalCheck, "generateOptionalCheck"); +function isExactOptional(schema2) { + return schema2._zod.traits?.has("$ZodExactOptional") === true; +} +__name(isExactOptional, "isExactOptional"); +function requiresPresenceCheck(schema2) { + return schema2._zod.optin === void 0 && fastPathAcceptsAbsence(schema2); +} +__name(requiresPresenceCheck, "requiresPresenceCheck"); +function fastPathAcceptsAbsence(schema2) { + if (schema2._zod.def.coerce) + return true; + const def = schema2._zod.def; + switch (def.type) { + case "any": + case "unknown": + case "undefined": + case "void": + case "default": + case "prefault": + case "transform": + case "custom": + case "lazy": + return true; + case "string": + case "number": + case "boolean": + case "bigint": + case "symbol": + case "null": + case "never": + case "nan": + case "date": + case "object": + case "array": + case "tuple": + case "record": + case "map": + case "set": + case "file": + case "template_literal": + return false; + case "nonoptional": + return def.innerType ? fastPathAcceptsAbsence(def.innerType) : false; + case "literal": + return !!def.values?.includes(void 0); + case "enum": + return !!schema2._zod.values?.has(void 0); + case "optional": + case "nullable": + case "readonly": + case "success": + return def.innerType ? fastPathAcceptsAbsence(def.innerType) : true; + case "catch": + return true; + case "union": + return def.options ? def.options.some(fastPathAcceptsAbsence) : true; + case "intersection": + if (!def.left || !def.right) + return true; + return fastPathAcceptsAbsence(def.left) && fastPathAcceptsAbsence(def.right); + case "pipe": + return def.in ? fastPathAcceptsAbsence(def.in) : true; + default: + return true; + } +} +__name(fastPathAcceptsAbsence, "fastPathAcceptsAbsence"); +function dropsWhenAbsent(schema2) { + return schema2._zod.optin === "optional" && schema2._zod.optout === "optional"; +} +__name(dropsWhenAbsent, "dropsWhenAbsent"); +function mayOmitUndefined(schema2) { + return (schema2._zod.optin !== "defaulted" || schema2._zod.optout === "optional") && mayOutputUndefined(schema2); +} +__name(mayOmitUndefined, "mayOmitUndefined"); +function mayOutputUndefined(schema2) { + const def = schema2._zod.def; + switch (def.type) { + case "string": + case "number": + case "boolean": + case "bigint": + case "symbol": + case "null": + case "nan": + case "date": + case "object": + case "array": + case "tuple": + case "record": + case "map": + case "set": + case "file": + case "template_literal": + case "never": + case "success": + return false; + case "literal": + return !!def.values?.includes(void 0); + case "enum": + return !!schema2._zod.values?.has(void 0); + case "optional": + return true; + case "nullable": + case "readonly": + case "nonoptional": + return def.innerType ? mayOutputUndefined(def.innerType) : true; + case "union": + return def.options ? def.options.some(mayOutputUndefined) : true; + case "intersection": + return !def.left || !def.right || mayOutputUndefined(def.left) || mayOutputUndefined(def.right); + case "pipe": + return def.out ? mayOutputUndefined(def.out) : true; + default: + return true; + } +} +__name(mayOutputUndefined, "mayOutputUndefined"); +function generateNullableCheck(doc, ctx, schema2, accessor, buildsValue = true) { + const def = schema2._zod.def; + const outputVar = buildsValue ? newVar(ctx) : null; + if (outputVar) + doc.write(`let ${outputVar} = null;`); + doc.write(`if (${accessor} !== null) {`); + doc.indented((d5) => { + const innerOutput = generateCheck(d5, ctx, def.innerType, accessor, buildsValue); + if (outputVar && innerOutput !== null) + d5.write(`${outputVar} = ${innerOutput};`); + }); + doc.write(`}`); + return outputVar; +} +__name(generateNullableCheck, "generateNullableCheck"); +function generateSizeGate(doc, schema2, size) { + for (const [max, check2] of sizeCaps(schema2._zod.def.checks)) { + doc.write(`if (${size} > ${numericOperand(max, check2._zod.def.check)}) return INVALID;`); + } +} +__name(generateSizeGate, "generateSizeGate"); +function generateArrayCheck(doc, ctx, schema2, accessor, buildsValue = true) { + const def = schema2._zod.def; + doc.write(`if (!Array.isArray(${accessor})) return INVALID;`); + generateSizeGate(doc, schema2, `${accessor}.length`); + const outputVar = buildsValue ? newVar(ctx) : null; + const iVar = newVar(ctx); + const elemVar = newVar(ctx); + if (outputVar) + doc.write(`const ${outputVar} = new Array(${accessor}.length);`); + doc.write(`for (let ${iVar} = 0; ${iVar} < ${accessor}.length; ${iVar}++) {`); + doc.indented((d5) => { + d5.write(`const ${elemVar} = ${accessor}[${iVar}];`); + const elemOutput = compileChild(d5, ctx, def.element, elemVar, buildsValue); + if (outputVar && elemOutput !== null) + d5.write(`${outputVar}[${iVar}] = ${elemOutput};`); + }); + doc.write(`}`); + return outputVar; +} +__name(generateArrayCheck, "generateArrayCheck"); +function generateLiteralCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const values = def.values; + if (values.length !== 1) { + const literalSet = addConstant(ctx, new Set(values)); + doc.write(`if (!${literalSet}.has(${accessor})) return INVALID;`); + return accessor; + } + const value = values[0]; + if (typeof value === "number" && Number.isNaN(value)) { + const literalSet = addConstant(ctx, new Set(values)); + doc.write(`if (!${literalSet}.has(${accessor})) return INVALID;`); + return accessor; + } + if (typeof value === "string") { + doc.write(`if (${accessor} !== ${esc(value)}) return INVALID;`); + } else if (typeof value === "number" || typeof value === "boolean") { + doc.write(`if (${accessor} !== ${value}) return INVALID;`); + } else if (value === null) { + doc.write(`if (${accessor} !== null) return INVALID;`); + } else if (value === void 0) { + doc.write(`if (${accessor} !== undefined) return INVALID;`); + } else if (typeof value === "bigint") { + doc.write(`if (${accessor} !== ${value}n) return INVALID;`); + } else { + throw new ZodCompileUnsupportedError(`literal type ${typeof value}`); + } + return accessor; +} +__name(generateLiteralCheck, "generateLiteralCheck"); +function generateEnumCheck(doc, ctx, schema2, accessor) { + const values = schema2._zod.values; + if (!values) { + throw new ZodCompileUnsupportedError("enum schema without enumerated values"); + } + const enumSet = addConstant(ctx, values); + doc.write(`if (!${enumSet}.has(${accessor})) return INVALID;`); + return accessor; +} +__name(generateEnumCheck, "generateEnumCheck"); +function generateWrapperCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + return generateCheck(doc, ctx, def.innerType, accessor); +} +__name(generateWrapperCheck, "generateWrapperCheck"); +function generateDefaultCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const descriptor = Object.getOwnPropertyDescriptor(schema2._zod.def, "defaultValue"); + const defaultGetter = descriptor ? () => schema2._zod.def.defaultValue : void 0; + if (schema2._zod.def.type === "prefault") { + if (!defaultGetter) { + return generateCheck(doc, ctx, def.innerType, accessor); + } + const defaultFn = addConstant(ctx, defaultGetter); + const inputVar = newVar(ctx); + doc.write(`let ${inputVar} = ${accessor};`); + doc.write(`if (${accessor} === undefined) ${inputVar} = ${defaultFn}();`); + return generateCheck(doc, ctx, def.innerType, inputVar); + } + const outputVar = newVar(ctx); + if (defaultGetter) { + const defaultFn = addConstant(ctx, defaultGetter); + const cloneFn = addConstant(ctx, shallowClone); + doc.write(`let ${outputVar};`); + doc.write(`if (${accessor} === undefined) {`); + doc.indented((d5) => { + d5.write(`${outputVar} = ${cloneFn}(${defaultFn}());`); + }); + doc.write(`} else {`); + doc.indented((d5) => { + const innerOutput = generateCheck(d5, ctx, def.innerType, accessor); + d5.write(`${outputVar} = ${innerOutput} === undefined ? ${cloneFn}(${defaultFn}()) : ${innerOutput};`); + }); + doc.write(`}`); + } else { + doc.write(`let ${outputVar};`); + doc.write(`if (${accessor} !== undefined) {`); + doc.indented((d5) => { + const innerOutput = generateCheck(d5, ctx, def.innerType, accessor); + d5.write(`${outputVar} = ${innerOutput};`); + }); + doc.write(`}`); + } + return outputVar; +} +__name(generateDefaultCheck, "generateDefaultCheck"); +function generateNonOptionalCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const innerOutput = generateCheck(doc, ctx, def.innerType, accessor); + const outputVar = newVar(ctx); + doc.write(`const ${outputVar} = ${innerOutput};`); + doc.write(`if (${outputVar} === undefined) return INVALID;`); + return outputVar; +} +__name(generateNonOptionalCheck, "generateNonOptionalCheck"); +function generateTupleCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const items = def.items; + const rest = def.rest; + doc.write(`if (!Array.isArray(${accessor})) return INVALID;`); + const optinStart = getTupleOptStart2(items, "optin"); + const optoutStart = getTupleOptStart2(items, "optout"); + if (rest) { + doc.write(`if (${accessor}.length < ${optinStart}) return INVALID;`); + } else { + doc.write(`if (${accessor}.length < ${optinStart} || ${accessor}.length > ${items.length}) return INVALID;`); + } + const outputVar = newVar(ctx); + doc.write(`const ${outputVar} = [];`); + for (let i5 = 0; i5 < items.length; i5++) { + const itemSchema = items[i5]; + if (i5 >= optoutStart) { + doc.write(`if (${outputVar}.length === ${i5}) {`); + doc.indented((d5) => { + d5.write(`if (${i5} < ${accessor}.length) {`); + d5.indented((d22) => { + const elemVar = newVar(ctx); + d22.write(`const ${elemVar} = ${accessor}[${i5}];`); + const elemOutput = compileChild(d22, ctx, itemSchema, elemVar); + d22.write(`${outputVar}[${i5}] = ${elemOutput};`); + }); + d5.write(`} else {`); + d5.indented((d22) => { + if (dropsWhenAbsent(itemSchema)) { + d22.write(`${outputVar}.length = ${i5};`); + return; + } + const elemVar = newVar(ctx); + const branchVar = newVar(ctx); + d22.write(`const ${elemVar} = undefined;`); + d22.write(`const ${branchVar} = (() => {`); + d22.indented((d32) => { + const elemOutput = compileChild(d32, ctx, itemSchema, elemVar); + d32.write(`return ${elemOutput};`); + }); + d22.write(`})();`); + d22.write(`if (${branchVar} === INVALID || ${branchVar} === undefined) ${outputVar}.length = ${i5};`); + d22.write(`else ${outputVar}[${i5}] = ${branchVar};`); + }); + d5.write(`}`); + }); + doc.write(`}`); + } else { + const elemVar = newVar(ctx); + doc.write(`const ${elemVar} = ${accessor}[${i5}];`); + const elemOutput = compileChild(doc, ctx, itemSchema, elemVar); + doc.write(`${outputVar}[${i5}] = ${elemOutput};`); + } + } + if (rest) { + const iVar = newVar(ctx); + const elemVar = newVar(ctx); + doc.write(`for (let ${iVar} = ${items.length}; ${iVar} < ${accessor}.length; ${iVar}++) {`); + doc.indented((d5) => { + d5.write(`const ${elemVar} = ${accessor}[${iVar}];`); + const elemOutput = compileChild(d5, ctx, rest, elemVar); + d5.write(`${outputVar}[${iVar}] = ${elemOutput};`); + }); + doc.write(`}`); + } + return outputVar; +} +__name(generateTupleCheck, "generateTupleCheck"); +function getTupleOptStart2(items, key) { + for (let i5 = items.length - 1; i5 >= 0; i5--) { + const omittable = key === "optin" ? items[i5]._zod.optin !== void 0 : items[i5]._zod.optout === "optional"; + if (!omittable) + return i5 + 1; + } + return 0; +} +__name(getTupleOptStart2, "getTupleOptStart"); +function generateUnionCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const options = def.options; + if (def.discriminator) { + return generateDiscriminatedUnionCheck(doc, ctx, def, accessor); + } + if (def.inclusive === false) { + throw new ZodCompileUnsupportedError("exclusive unions (z.xor)"); + } + if (options.length === 0) { + doc.write("return INVALID;"); + return accessor; + } + if (options.length === 1) { + return generateCheck(doc, ctx, options[0], accessor); + } + const allLiterals = options.every((opt) => opt._zod.def.type === "literal" && !opt._zod.def.checks?.length); + if (allLiterals) { + const values = new Set(options.flatMap((opt) => opt._zod.def.values)); + const valuesConst = addConstant(ctx, values); + doc.write(`if (!${valuesConst}.has(${accessor})) return INVALID;`); + return accessor; + } + const outputVar = newVar(ctx); + doc.write(`let ${outputVar};`); + for (let i5 = 0; i5 < options.length; i5++) { + const opt = options[i5]; + if (i5 === 0) { + doc.write(`${outputVar} = (() => {`); + } else { + doc.write(`if (${outputVar} === INVALID) ${outputVar} = (() => {`); + } + doc.indented((d5) => { + const branchOutput = generateCheck(d5, ctx, opt, accessor); + d5.write(`return ${branchOutput};`); + }); + doc.write(`})();`); + } + doc.write(`if (${outputVar} === INVALID) return INVALID;`); + return outputVar; +} +__name(generateUnionCheck, "generateUnionCheck"); +function generateDiscriminatedUnionCheck(doc, ctx, def, accessor) { + if (def.unionFallback) { + throw new ZodCompileUnsupportedError("discriminated union with unionFallback"); + } + if (def.options.length === 0) { + doc.write("return INVALID;"); + return accessor; + } + const discVar = newVar(ctx); + const outputVar = newVar(ctx); + doc.write(`const ${discVar} = ${accessor}?.[${esc(def.discriminator)}];`); + doc.write(`let ${outputVar};`); + let firstBranch = true; + const claimed = /* @__PURE__ */ new Set(); + for (const option of def.options) { + const values = option._zod.propValues?.[def.discriminator]; + if (!values || values.size === 0) { + throw new ZodCompileUnsupportedError("discriminated union option without static discriminator values"); + } + for (const value of values) { + if (claimed.has(value)) { + throw new ZodCompileUnsupportedError(`duplicate discriminator value ${String(value)}`); + } + claimed.add(value); + } + const conditions = Array.from(values, (value) => literalEquality(ctx, discVar, value)); + const prefix = firstBranch ? "if" : "else if"; + doc.write(`${prefix} (${conditions.join(" || ")}) {`); + doc.indented((d5) => { + const branchOutput = generateCheck(d5, ctx, option, accessor); + d5.write(`${outputVar} = ${branchOutput};`); + }); + doc.write(`}`); + firstBranch = false; + } + doc.write(`else { return INVALID; }`); + return outputVar; +} +__name(generateDiscriminatedUnionCheck, "generateDiscriminatedUnionCheck"); +function literalEquality(ctx, accessor, value) { + if (typeof value === "string") + return `${accessor} === ${esc(value)}`; + if (typeof value === "number") { + if (Number.isNaN(value)) + return `Number.isNaN(${accessor})`; + return `${accessor} === ${value}`; + } + if (typeof value === "boolean") + return `${accessor} === ${value}`; + if (value === null) + return `${accessor} === null`; + if (value === void 0) + return `${accessor} === undefined`; + if (typeof value === "bigint") + return `${accessor} === ${value}n`; + if (typeof value === "symbol") { + const symbolConst = addConstant(ctx, value); + return `${accessor} === ${symbolConst}`; + } + throw new ZodCompileUnsupportedError(`literal discriminator value ${String(value)}`); +} +__name(literalEquality, "literalEquality"); +function generateIntersectionCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + ctx.definite = false; + const leftOutput = compileChild(doc, ctx, def.left, accessor); + const rightOutput = compileChild(doc, ctx, def.right, accessor); + const mergeConst = addConstant(ctx, mergeValues); + const mergedVar = newVar(ctx); + doc.write(`const ${mergedVar} = ${mergeConst}(${leftOutput}, ${rightOutput});`); + doc.write(`if (!${mergedVar}.valid) return INVALID;`); + return `${mergedVar}.data`; +} +__name(generateIntersectionCheck, "generateIntersectionCheck"); +function generateRecordCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const isPlainObjectConst = addConstant(ctx, isPlainObject); + doc.write(`if (!${isPlainObjectConst}(${accessor})) return INVALID;`); + const outputVar = newVar(ctx); + const kVar = newVar(ctx); + const valVar = newVar(ctx); + doc.write(`const ${outputVar} = {};`); + const recordDef = def; + const keyValues = recordDef.partial ? void 0 : def.keyType._zod.values; + if (keyValues) { + const inputKeys = []; + for (const key of keyValues) { + if (!(typeof key === "string" || typeof key === "number" || typeof key === "symbol")) { + throw new ZodCompileUnsupportedError(`record key value ${String(key)}`); + } + const inputKey = typeof key === "number" ? key.toString() : key; + if (inputKey === "__proto__") { + throw new ZodCompileUnsupportedError('record key "__proto__"'); + } + inputKeys.push(inputKey); + const keyConst = addConstant(ctx, key); + const outKey = generateCheck(doc, ctx, def.keyType, keyConst); + const valueVar = newVar(ctx); + doc.write(`const ${valueVar} = ${accessor}[${literalPropertyKey(ctx, inputKey)}];`); + const valOutput = compileChild(doc, ctx, def.valueType, valueVar); + doc.write(`${outputVar}[${outKey}] = ${valOutput};`); + } + const knownKeysConst = addConstant(ctx, new Set(inputKeys)); + doc.write(`for (const ${kVar} in ${accessor}) {`); + doc.indented((d5) => { + d5.write(`if (${knownKeysConst}.has(${kVar})) continue;`); + if (recordDef.mode === "loose") { + d5.write(`if (${kVar} !== "__proto__") ${outputVar}[${kVar}] = ${accessor}[${kVar}];`); + } else { + d5.write(`return INVALID;`); + } + }); + doc.write(`}`); + return outputVar; + } + const keyDef = def.keyType._zod.def; + const keyIsBareString = keyDef.type === "string" && keyDef.format === void 0 && !keyDef.coerce && (keyDef.checks?.length ?? 0) === 0; + if (!keyIsBareString) { + const isLoose = def.mode === "loose"; + const keyFn = compileFn(def.keyType); + if (keyFn.definite === false) + ctx.definite = false; + const keyFast = addConstant(ctx, keyFn); + const numericConst = addConstant(ctx, number); + const outKeyVar = newVar(ctx); + emitOwnKeys(doc, ctx, accessor, kVar, (d5) => { + d5.write(`let ${outKeyVar} = ${keyFast}(${kVar});`); + d5.write(`if (${outKeyVar} === INVALID && typeof ${kVar} === "string" && ${numericConst}.test(${kVar})) ${outKeyVar} = ${keyFast}(Number(${kVar}));`); + if (isLoose) { + d5.write(`if (${outKeyVar} === INVALID) { ${outputVar}[${kVar}] = ${accessor}[${kVar}]; continue; }`); + } else { + d5.write(`if (${outKeyVar} === INVALID) return INVALID;`); + } + d5.write(`if (${outKeyVar} === "__proto__") continue;`); + const valueVar = newVar(ctx); + d5.write(`const ${valueVar} = ${accessor}[${kVar}];`); + const valOutput = compileChild(d5, ctx, def.valueType, valueVar); + d5.write(`${outputVar}[${outKeyVar}] = ${valOutput};`); + }); + return outputVar; + } + emitOwnKeys(doc, ctx, accessor, kVar, (d5) => { + d5.write(`const ${valVar} = ${accessor}[${kVar}];`); + const valOutput = compileChild(d5, ctx, def.valueType, valVar); + d5.write(`${outputVar}[${kVar}] = ${valOutput};`); + }, `return INVALID;`); + return outputVar; +} +__name(generateRecordCheck, "generateRecordCheck"); +function emitOwnKeys(doc, ctx, accessor, kVar, body, onSymbol) { + const propIsEnumerableConst = addConstant(ctx, Object.prototype.propertyIsEnumerable); + const symsVar = newVar(ctx); + const keysVar = newVar(ctx); + const iVar = newVar(ctx); + doc.write(`const ${symsVar} = Object.getOwnPropertySymbols(${accessor});`); + doc.write(`const ${keysVar} = Object.getOwnPropertyNames(${accessor});`); + doc.write(`for (let ${iVar} = 0; ${iVar} < ${keysVar}.length; ${iVar}++) {`); + doc.indented((d5) => { + d5.write(`const ${kVar} = ${keysVar}[${iVar}];`); + d5.write(`if (${kVar} === "__proto__" || !${propIsEnumerableConst}.call(${accessor}, ${kVar})) continue;`); + body(d5); + }); + doc.write(`}`); + doc.write(`for (let ${iVar} = 0; ${iVar} < ${symsVar}.length; ${iVar}++) {`); + doc.indented((d5) => { + d5.write(`const ${kVar} = ${symsVar}[${iVar}];`); + d5.write(`if (!${propIsEnumerableConst}.call(${accessor}, ${kVar})) continue;`); + if (onSymbol) + d5.write(onSymbol); + else + body(d5); + }); + doc.write(`}`); +} +__name(emitOwnKeys, "emitOwnKeys"); +function literalPropertyKey(ctx, key) { + if (typeof key === "string") + return esc(key); + return addConstant(ctx, key); +} +__name(literalPropertyKey, "literalPropertyKey"); +function generateMapCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + doc.write(`if (!(${accessor} instanceof Map)) return INVALID;`); + generateSizeGate(doc, schema2, `${accessor}.size`); + const outputVar = newVar(ctx); + const kVar = newVar(ctx); + const valVar = newVar(ctx); + doc.write(`const ${outputVar} = new Map();`); + doc.write(`for (const [${kVar}, ${valVar}] of ${accessor}) {`); + doc.indented((d5) => { + const keyOutput = generateCheck(d5, ctx, def.keyType, kVar); + const valOutput = generateCheck(d5, ctx, def.valueType, valVar); + d5.write(`${outputVar}.set(${keyOutput}, ${valOutput});`); + }); + doc.write(`}`); + return outputVar; +} +__name(generateMapCheck, "generateMapCheck"); +function generateSetCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + doc.write(`if (!(${accessor} instanceof Set)) return INVALID;`); + generateSizeGate(doc, schema2, `${accessor}.size`); + const outputVar = newVar(ctx); + const valVar = newVar(ctx); + doc.write(`const ${outputVar} = new Set();`); + doc.write(`for (const ${valVar} of ${accessor}) {`); + doc.indented((d5) => { + const valOutput = generateCheck(d5, ctx, def.valueType, valVar); + d5.write(`${outputVar}.add(${valOutput});`); + }); + doc.write(`}`); + return outputVar; +} +__name(generateSetCheck, "generateSetCheck"); +function generateFileCheck(doc, accessor) { + doc.write(`if (!(${accessor} instanceof File)) return INVALID;`); + return accessor; +} +__name(generateFileCheck, "generateFileCheck"); +function generateTemplateLiteralCheck(doc, ctx, schema2, accessor) { + doc.write(`if (typeof ${accessor} !== "string") return INVALID;`); + const pattern = schema2._zod.pattern; + if (pattern) { + const patternConst = addConstant(ctx, pattern); + doc.write(`${patternConst}.lastIndex = 0;`); + doc.write(`if (!${patternConst}.test(${accessor})) return INVALID;`); + } + return accessor; +} +__name(generateTemplateLiteralCheck, "generateTemplateLiteralCheck"); +function generateLazyCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const getterConst = addUserConstant(ctx, def.getter); + const cacheConst = addConstant(ctx, { parser: null }); + doc.write(`if (!${cacheConst}.parser) {`); + doc.indented((d5) => { + d5.write(`const inner = ${getterConst}();`); + d5.write(`${cacheConst}.parser = function(input) {`); + d5.indented((d22) => { + d22.write(`const result = inner._zod.run({ value: input, issues: [] }, {});`); + d22.write(`return result.issues.length === 0 ? result.value : INVALID;`); + }); + d5.write(`};`); + }); + doc.write(`}`); + const outputVar = newVar(ctx); + doc.write(`const ${outputVar} = ${cacheConst}.parser(${accessor});`); + doc.write(`if (${outputVar} === INVALID) return INVALID;`); + return outputVar; +} +__name(generateLazyCheck, "generateLazyCheck"); +function generatePipeCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + const inputOutput = generateCheck(doc, ctx, def.in, accessor); + if (def.transform) { + if (isAsyncFunction(def.transform)) { + throw new ZodCompileAsyncError("z.compile: async transforms in pipes are not supported"); + } + const transformFn = def.transform; + const helperFn = /* @__PURE__ */ __name((value) => { + const fakePayload = { value, issues: [], addIssue: pushIssue }; + const result = transformFn(value, fakePayload); + if (result instanceof Promise) + return INVALID; + return fakePayload.issues.length === 0 ? result : INVALID; + }, "helperFn"); + const helperConst = addUserConstant(ctx, helperFn); + const transformedVar = newVar(ctx); + doc.write(`const ${transformedVar} = ${helperConst}(${inputOutput});`); + doc.write(`if (${transformedVar} === INVALID) return INVALID;`); + return generateCheck(doc, ctx, def.out, transformedVar); + } else { + return generateCheck(doc, ctx, def.out, inputOutput); + } +} +__name(generatePipeCheck, "generatePipeCheck"); +function isAsyncFunction(fn) { + return typeof fn === "function" && (fn.constructor.name === "AsyncFunction" || fn[Symbol.toStringTag] === "AsyncFunction"); +} +__name(isAsyncFunction, "isAsyncFunction"); +function generateCustomCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + if (def.fn) { + if (isAsyncFunction(def.fn)) { + throw new ZodCompileAsyncError("z.compile: async custom predicates are not supported"); + } + const fnConst = addUserConstant(ctx, def.fn); + const throwAsyncConst = addConstant(ctx, throwAsync); + const resVar = newVar(ctx); + doc.write(`const ${resVar} = ${fnConst}(${accessor});`); + doc.write(`if (${resVar} instanceof Promise) ${throwAsyncConst}();`); + doc.write(`if (!${resVar}) return INVALID;`); + } else { + throw new ZodCompileUnsupportedError("custom schema without a predicate function"); + } + return accessor; +} +__name(generateCustomCheck, "generateCustomCheck"); +function runtimeCatch(innerSchema, catchValue, value) { + const result = innerSchema._zod.run({ value, issues: [] }, {}); + if (result && typeof result.then === "function") + return INVALID; + const r5 = result; + if (r5.issues.length === 0) + return r5.value; + return catchValue(); +} +__name(runtimeCatch, "runtimeCatch"); +function generateCatchCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + if (!def.catchValue[CONSTANT_CATCH]) { + throw new ZodCompileUnsupportedError("catch with a callback (only a constant catch value compiles)", false); + } + const outputVar = newVar(ctx); + doc.write(`let ${outputVar} = (() => {`); + doc.indented((d5) => { + const innerOut = compileChild(d5, ctx, def.innerType, accessor); + d5.write(`return ${innerOut};`); + }); + doc.write(`})();`); + const innerConst = addConstant(ctx, def.innerType); + const catchConst = addUserConstant(ctx, def.catchValue); + const catchHelperConst = addConstant(ctx, runtimeCatch); + doc.write(`if (${outputVar} === INVALID) {`); + doc.indented((d5) => { + d5.write(`${outputVar} = ${catchHelperConst}(${innerConst}, ${catchConst}, ${accessor});`); + d5.write(`if (${outputVar} === INVALID) return INVALID;`); + }); + doc.write(`}`); + return outputVar; +} +__name(generateCatchCheck, "generateCatchCheck"); +function generateTransformCheck(doc, ctx, schema2, accessor) { + const def = schema2._zod.def; + if (def.transform) { + if (isAsyncFunction(def.transform)) { + throw new ZodCompileAsyncError("z.compile: async transforms are not supported"); + } + const transformFn = def.transform; + const helperFn = /* @__PURE__ */ __name((value) => { + const fakePayload = { value, issues: [], addIssue: pushIssue }; + const result = transformFn(value, fakePayload); + if (result instanceof Promise) + return INVALID; + return fakePayload.issues.length === 0 ? result : INVALID; + }, "helperFn"); + const helperConst = addUserConstant(ctx, helperFn); + const outputVar = newVar(ctx); + doc.write(`const ${outputVar} = ${helperConst}(${accessor});`); + doc.write(`if (${outputVar} === INVALID) return INVALID;`); + return outputVar; + } + return accessor; +} +__name(generateTransformCheck, "generateTransformCheck"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/api.js +function snapshotChecks(def) { + if (def.checks) + def.checks = [...def.checks]; + return def; +} +__name(snapshotChecks, "snapshotChecks"); +// @__NO_SIDE_EFFECTS__ +function _string(Class2, params) { + return new Class2(snapshotChecks({ type: "string", ...normalizeParams(params) })); +} +__name(_string, "_string"); +// @__NO_SIDE_EFFECTS__ +function _coercedString(Class2, params) { + return new Class2(snapshotChecks({ type: "string", coerce: true, ...normalizeParams(params) })); +} +__name(_coercedString, "_coercedString"); +// @__NO_SIDE_EFFECTS__ +function _email(Class2, params) { + return new Class2({ + type: "string", + format: "email", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_email, "_email"); +// @__NO_SIDE_EFFECTS__ +function _guid(Class2, params) { + return new Class2({ + type: "string", + format: "guid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_guid, "_guid"); +// @__NO_SIDE_EFFECTS__ +function _uuid(Class2, params) { + return new Class2({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_uuid, "_uuid"); +// @__NO_SIDE_EFFECTS__ +function _uuidv4(Class2, params) { + return new Class2({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v4", + ...normalizeParams(params) + }); +} +__name(_uuidv4, "_uuidv4"); +// @__NO_SIDE_EFFECTS__ +function _uuidv6(Class2, params) { + return new Class2({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v6", + ...normalizeParams(params) + }); +} +__name(_uuidv6, "_uuidv6"); +// @__NO_SIDE_EFFECTS__ +function _uuidv7(Class2, params) { + return new Class2({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v7", + ...normalizeParams(params) + }); +} +__name(_uuidv7, "_uuidv7"); +// @__NO_SIDE_EFFECTS__ +function _url(Class2, params) { + return new Class2({ + type: "string", + format: "url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_url, "_url"); +// @__NO_SIDE_EFFECTS__ +function _emoji2(Class2, params) { + return new Class2({ + type: "string", + format: "emoji", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_emoji2, "_emoji"); +// @__NO_SIDE_EFFECTS__ +function _nanoid(Class2, params) { + return new Class2({ + type: "string", + format: "nanoid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_nanoid, "_nanoid"); +// @__NO_SIDE_EFFECTS__ +function _cuid(Class2, params) { + return new Class2({ + type: "string", + format: "cuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_cuid, "_cuid"); +// @__NO_SIDE_EFFECTS__ +function _cuid2(Class2, params) { + return new Class2({ + type: "string", + format: "cuid2", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_cuid2, "_cuid2"); +// @__NO_SIDE_EFFECTS__ +function _ulid(Class2, params) { + return new Class2({ + type: "string", + format: "ulid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_ulid, "_ulid"); +// @__NO_SIDE_EFFECTS__ +function _xid(Class2, params) { + return new Class2({ + type: "string", + format: "xid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_xid, "_xid"); +// @__NO_SIDE_EFFECTS__ +function _ksuid(Class2, params) { + return new Class2({ + type: "string", + format: "ksuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_ksuid, "_ksuid"); +// @__NO_SIDE_EFFECTS__ +function _ipv4(Class2, params) { + return new Class2({ + type: "string", + format: "ipv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_ipv4, "_ipv4"); +// @__NO_SIDE_EFFECTS__ +function _ipv6(Class2, params) { + return new Class2({ + type: "string", + format: "ipv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_ipv6, "_ipv6"); +// @__NO_SIDE_EFFECTS__ +function _mac(Class2, params) { + return new Class2({ + type: "string", + format: "mac", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_mac, "_mac"); +// @__NO_SIDE_EFFECTS__ +function _cidrv4(Class2, params) { + return new Class2({ + type: "string", + format: "cidrv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_cidrv4, "_cidrv4"); +// @__NO_SIDE_EFFECTS__ +function _cidrv6(Class2, params) { + return new Class2({ + type: "string", + format: "cidrv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_cidrv6, "_cidrv6"); +// @__NO_SIDE_EFFECTS__ +function _base64(Class2, params) { + return new Class2({ + type: "string", + format: "base64", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_base64, "_base64"); +// @__NO_SIDE_EFFECTS__ +function _base64url(Class2, params) { + return new Class2({ + type: "string", + format: "base64url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_base64url, "_base64url"); +// @__NO_SIDE_EFFECTS__ +function _e164(Class2, params) { + return new Class2({ + type: "string", + format: "e164", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_e164, "_e164"); +// @__NO_SIDE_EFFECTS__ +function _creditCard(Class2, params) { + return new Class2({ + type: "string", + format: "credit_card", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_creditCard, "_creditCard"); +// @__NO_SIDE_EFFECTS__ +function _iban(Class2, params) { + return new Class2({ + type: "string", + format: "iban", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_iban, "_iban"); +// @__NO_SIDE_EFFECTS__ +function _jwt(Class2, params) { + return new Class2({ + type: "string", + format: "jwt", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); +} +__name(_jwt, "_jwt"); +var TimePrecision = { + Any: null, + Minute: -1, + Second: 0, + Millisecond: 3, + Microsecond: 6 +}; +// @__NO_SIDE_EFFECTS__ +function _isoDateTime(Class2, params) { + return new Class2({ + type: "string", + format: "datetime", + check: "string_format", + offset: false, + local: false, + precision: null, + ...normalizeParams(params) + }); +} +__name(_isoDateTime, "_isoDateTime"); +// @__NO_SIDE_EFFECTS__ +function _isoDate(Class2, params) { + return new Class2({ + type: "string", + format: "date", + check: "string_format", + ...normalizeParams(params) + }); +} +__name(_isoDate, "_isoDate"); +// @__NO_SIDE_EFFECTS__ +function _isoTime(Class2, params) { + return new Class2({ + type: "string", + format: "time", + check: "string_format", + precision: null, + ...normalizeParams(params) + }); +} +__name(_isoTime, "_isoTime"); +// @__NO_SIDE_EFFECTS__ +function _isoDuration(Class2, params) { + return new Class2({ + type: "string", + format: "duration", + check: "string_format", + ...normalizeParams(params) + }); +} +__name(_isoDuration, "_isoDuration"); +// @__NO_SIDE_EFFECTS__ +function _number(Class2, params) { + return new Class2(snapshotChecks({ type: "number", checks: [], ...normalizeParams(params) })); +} +__name(_number, "_number"); +// @__NO_SIDE_EFFECTS__ +function _coercedNumber(Class2, params) { + return new Class2(snapshotChecks({ type: "number", coerce: true, checks: [], ...normalizeParams(params) })); +} +__name(_coercedNumber, "_coercedNumber"); +// @__NO_SIDE_EFFECTS__ +function _int(Class2, params) { + return new Class2({ + type: "number", + check: "number_format", + abort: false, + format: "safeint", + ...normalizeParams(params) + }); +} +__name(_int, "_int"); +// @__NO_SIDE_EFFECTS__ +function _float32(Class2, params) { + return new Class2({ + type: "number", + check: "number_format", + abort: false, + format: "float32", + ...normalizeParams(params) + }); +} +__name(_float32, "_float32"); +// @__NO_SIDE_EFFECTS__ +function _float64(Class2, params) { + return new Class2({ + type: "number", + check: "number_format", + abort: false, + format: "float64", + ...normalizeParams(params) + }); +} +__name(_float64, "_float64"); +// @__NO_SIDE_EFFECTS__ +function _int32(Class2, params) { + return new Class2({ + type: "number", + check: "number_format", + abort: false, + format: "int32", + ...normalizeParams(params) + }); +} +__name(_int32, "_int32"); +// @__NO_SIDE_EFFECTS__ +function _uint32(Class2, params) { + return new Class2({ + type: "number", + check: "number_format", + abort: false, + format: "uint32", + ...normalizeParams(params) + }); +} +__name(_uint32, "_uint32"); +// @__NO_SIDE_EFFECTS__ +function _boolean(Class2, params) { + return new Class2({ + type: "boolean", + ...normalizeParams(params) + }); +} +__name(_boolean, "_boolean"); +// @__NO_SIDE_EFFECTS__ +function _coercedBoolean(Class2, params) { + return new Class2({ + type: "boolean", + coerce: true, + ...normalizeParams(params) + }); +} +__name(_coercedBoolean, "_coercedBoolean"); +// @__NO_SIDE_EFFECTS__ +function _bigint(Class2, params) { + return new Class2({ + type: "bigint", + ...normalizeParams(params) + }); +} +__name(_bigint, "_bigint"); +// @__NO_SIDE_EFFECTS__ +function _coercedBigint(Class2, params) { + return new Class2({ + type: "bigint", + coerce: true, + ...normalizeParams(params) + }); +} +__name(_coercedBigint, "_coercedBigint"); +// @__NO_SIDE_EFFECTS__ +function _int64(Class2, params) { + return new Class2({ + type: "bigint", + check: "bigint_format", + abort: false, + format: "int64", + ...normalizeParams(params) + }); +} +__name(_int64, "_int64"); +// @__NO_SIDE_EFFECTS__ +function _uint64(Class2, params) { + return new Class2({ + type: "bigint", + check: "bigint_format", + abort: false, + format: "uint64", + ...normalizeParams(params) + }); +} +__name(_uint64, "_uint64"); +// @__NO_SIDE_EFFECTS__ +function _symbol(Class2, params) { + return new Class2({ + type: "symbol", + ...normalizeParams(params) + }); +} +__name(_symbol, "_symbol"); +// @__NO_SIDE_EFFECTS__ +function _undefined2(Class2, params) { + return new Class2({ + type: "undefined", + ...normalizeParams(params) + }); +} +__name(_undefined2, "_undefined"); +// @__NO_SIDE_EFFECTS__ +function _null2(Class2, params) { + return new Class2({ + type: "null", + ...normalizeParams(params) + }); +} +__name(_null2, "_null"); +// @__NO_SIDE_EFFECTS__ +function _any(Class2) { + return new Class2({ + type: "any" + }); +} +__name(_any, "_any"); +// @__NO_SIDE_EFFECTS__ +function _unknown(Class2) { + return new Class2({ + type: "unknown" + }); +} +__name(_unknown, "_unknown"); +// @__NO_SIDE_EFFECTS__ +function _never(Class2, params) { + return new Class2({ + type: "never", + ...normalizeParams(params) + }); +} +__name(_never, "_never"); +// @__NO_SIDE_EFFECTS__ +function _void(Class2, params) { + return new Class2({ + type: "void", + ...normalizeParams(params) + }); +} +__name(_void, "_void"); +// @__NO_SIDE_EFFECTS__ +function _date(Class2, params) { + return new Class2({ + type: "date", + ...normalizeParams(params) + }); +} +__name(_date, "_date"); +// @__NO_SIDE_EFFECTS__ +function _coercedDate(Class2, params) { + return new Class2({ + type: "date", + coerce: true, + ...normalizeParams(params) + }); +} +__name(_coercedDate, "_coercedDate"); +// @__NO_SIDE_EFFECTS__ +function _nan(Class2, params) { + return new Class2({ + type: "nan", + ...normalizeParams(params) + }); +} +__name(_nan, "_nan"); +// @__NO_SIDE_EFFECTS__ +function _lt(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: false + }); +} +__name(_lt, "_lt"); +// @__NO_SIDE_EFFECTS__ +function _lte(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: true + }); +} +__name(_lte, "_lte"); +// @__NO_SIDE_EFFECTS__ +function _gt(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: false + }); +} +__name(_gt, "_gt"); +// @__NO_SIDE_EFFECTS__ +function _gte(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: true + }); +} +__name(_gte, "_gte"); +// @__NO_SIDE_EFFECTS__ +function _positive(params) { + return /* @__PURE__ */ _gt(0, params); +} +__name(_positive, "_positive"); +// @__NO_SIDE_EFFECTS__ +function _negative(params) { + return /* @__PURE__ */ _lt(0, params); +} +__name(_negative, "_negative"); +// @__NO_SIDE_EFFECTS__ +function _nonpositive(params) { + return /* @__PURE__ */ _lte(0, params); +} +__name(_nonpositive, "_nonpositive"); +// @__NO_SIDE_EFFECTS__ +function _nonnegative(params) { + return /* @__PURE__ */ _gte(0, params); +} +__name(_nonnegative, "_nonnegative"); +// @__NO_SIDE_EFFECTS__ +function _multipleOf(value, params) { + return new $ZodCheckMultipleOf({ + check: "multiple_of", + ...normalizeParams(params), + value + }); +} +__name(_multipleOf, "_multipleOf"); +// @__NO_SIDE_EFFECTS__ +function _maxSize(maximum, params) { + return new $ZodCheckMaxSize({ + check: "max_size", + ...normalizeParams(params), + maximum + }); +} +__name(_maxSize, "_maxSize"); +// @__NO_SIDE_EFFECTS__ +function _minSize(minimum, params) { + return new $ZodCheckMinSize({ + check: "min_size", + ...normalizeParams(params), + minimum + }); +} +__name(_minSize, "_minSize"); +// @__NO_SIDE_EFFECTS__ +function _size(size, params) { + return new $ZodCheckSizeEquals({ + check: "size_equals", + ...normalizeParams(params), + size + }); +} +__name(_size, "_size"); +// @__NO_SIDE_EFFECTS__ +function _maxLength(maximum, params) { + const ch = new $ZodCheckMaxLength({ + check: "max_length", + ...normalizeParams(params), + maximum + }); + return ch; +} +__name(_maxLength, "_maxLength"); +// @__NO_SIDE_EFFECTS__ +function _minLength(minimum, params) { + return new $ZodCheckMinLength({ + check: "min_length", + ...normalizeParams(params), + minimum + }); +} +__name(_minLength, "_minLength"); +// @__NO_SIDE_EFFECTS__ +function _length(length, params) { + return new $ZodCheckLengthEquals({ + check: "length_equals", + ...normalizeParams(params), + length + }); +} +__name(_length, "_length"); +// @__NO_SIDE_EFFECTS__ +function _regex(pattern, params) { + return new $ZodCheckRegex({ + check: "string_format", + format: "regex", + ...normalizeParams(params), + pattern + }); +} +__name(_regex, "_regex"); +// @__NO_SIDE_EFFECTS__ +function _lowercase(params) { + return new $ZodCheckLowerCase({ + check: "string_format", + format: "lowercase", + ...normalizeParams(params) + }); +} +__name(_lowercase, "_lowercase"); +// @__NO_SIDE_EFFECTS__ +function _uppercase(params) { + return new $ZodCheckUpperCase({ + check: "string_format", + format: "uppercase", + ...normalizeParams(params) + }); +} +__name(_uppercase, "_uppercase"); +// @__NO_SIDE_EFFECTS__ +function _includes(includes, params) { + return new $ZodCheckIncludes({ + check: "string_format", + format: "includes", + ...normalizeParams(params), + includes + }); +} +__name(_includes, "_includes"); +// @__NO_SIDE_EFFECTS__ +function _startsWith(prefix, params) { + return new $ZodCheckStartsWith({ + check: "string_format", + format: "starts_with", + ...normalizeParams(params), + prefix + }); +} +__name(_startsWith, "_startsWith"); +// @__NO_SIDE_EFFECTS__ +function _endsWith(suffix, params) { + return new $ZodCheckEndsWith({ + check: "string_format", + format: "ends_with", + ...normalizeParams(params), + suffix + }); +} +__name(_endsWith, "_endsWith"); +// @__NO_SIDE_EFFECTS__ +function _property(property, schema2, params) { + return new $ZodCheckProperty({ + check: "property", + property, + schema: schema2, + ...normalizeParams(params) + }); +} +__name(_property, "_property"); +// @__NO_SIDE_EFFECTS__ +function _properties(shape, params) { + return new $ZodCheckProperties({ + check: "properties", + shape, + ...normalizeParams(params) + }); +} +__name(_properties, "_properties"); +// @__NO_SIDE_EFFECTS__ +function _mime(types3, params) { + return new $ZodCheckMimeType({ + check: "mime_type", + mime: types3, + ...normalizeParams(params) + }); +} +__name(_mime, "_mime"); +// @__NO_SIDE_EFFECTS__ +function _overwrite(tx) { + return new $ZodCheckOverwrite({ + check: "overwrite", + tx + }); +} +__name(_overwrite, "_overwrite"); +// @__NO_SIDE_EFFECTS__ +function _normalize(form) { + return /* @__PURE__ */ _overwrite((input2) => input2.normalize(form)); +} +__name(_normalize, "_normalize"); +// @__NO_SIDE_EFFECTS__ +function _trim() { + return /* @__PURE__ */ _overwrite((input2) => input2.trim()); +} +__name(_trim, "_trim"); +// @__NO_SIDE_EFFECTS__ +function _toLowerCase() { + return /* @__PURE__ */ _overwrite((input2) => input2.toLowerCase()); +} +__name(_toLowerCase, "_toLowerCase"); +// @__NO_SIDE_EFFECTS__ +function _toUpperCase() { + return /* @__PURE__ */ _overwrite((input2) => input2.toUpperCase()); +} +__name(_toUpperCase, "_toUpperCase"); +// @__NO_SIDE_EFFECTS__ +function _slugify() { + return /* @__PURE__ */ _overwrite((input2) => slugify(input2)); +} +__name(_slugify, "_slugify"); +// @__NO_SIDE_EFFECTS__ +function _array(Class2, element, params) { + return new Class2({ + type: "array", + element, + // get element() { + // return element; + // }, + ...normalizeParams(params) + }); +} +__name(_array, "_array"); +// @__NO_SIDE_EFFECTS__ +function _union(Class2, options, params) { + return new Class2({ + type: "union", + options, + ...normalizeParams(params) + }); +} +__name(_union, "_union"); +function _xor(Class2, options, params) { + return new Class2({ + type: "union", + options, + inclusive: false, + ...normalizeParams(params) + }); +} +__name(_xor, "_xor"); +// @__NO_SIDE_EFFECTS__ +function _discriminatedUnion(Class2, discriminator, options, params) { + return new Class2({ + type: "union", + options, + discriminator, + ...normalizeParams(params) + }); +} +__name(_discriminatedUnion, "_discriminatedUnion"); +// @__NO_SIDE_EFFECTS__ +function _intersection(Class2, left, right) { + return new Class2({ + type: "intersection", + left, + right + }); +} +__name(_intersection, "_intersection"); +// @__NO_SIDE_EFFECTS__ +function _tuple(Class2, items, _paramsOrRest, _params) { + const hasRest = _paramsOrRest instanceof $ZodType; + const params = hasRest ? _params : _paramsOrRest; + const rest = hasRest ? _paramsOrRest : null; + return new Class2({ + type: "tuple", + items, + rest, + ...normalizeParams(params) + }); +} +__name(_tuple, "_tuple"); +// @__NO_SIDE_EFFECTS__ +function _record(Class2, keyType, valueType, params) { + return new Class2({ + type: "record", + keyType, + valueType, + ...normalizeParams(params) + }); +} +__name(_record, "_record"); +// @__NO_SIDE_EFFECTS__ +function _map(Class2, keyType, valueType, params) { + return new Class2({ + type: "map", + keyType, + valueType, + ...normalizeParams(params) + }); +} +__name(_map, "_map"); +// @__NO_SIDE_EFFECTS__ +function _set(Class2, valueType, params) { + return new Class2({ + type: "set", + valueType, + ...normalizeParams(params) + }); +} +__name(_set, "_set"); +// @__NO_SIDE_EFFECTS__ +function _enum(Class2, values, params) { + const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; + return new Class2({ + type: "enum", + entries, + ...normalizeParams(params) + }); +} +__name(_enum, "_enum"); +// @__NO_SIDE_EFFECTS__ +function _nativeEnum(Class2, entries, params) { + return new Class2({ + type: "enum", + entries, + ...normalizeParams(params) + }); +} +__name(_nativeEnum, "_nativeEnum"); +// @__NO_SIDE_EFFECTS__ +function _literal(Class2, value, params) { + return new Class2({ + type: "literal", + values: Array.isArray(value) ? value : [value], + ...normalizeParams(params) + }); +} +__name(_literal, "_literal"); +// @__NO_SIDE_EFFECTS__ +function _file(Class2, params) { + return new Class2({ + type: "file", + ...normalizeParams(params) + }); +} +__name(_file, "_file"); +// @__NO_SIDE_EFFECTS__ +function _transform(Class2, fn) { + return new Class2({ + type: "transform", + transform: fn + }); +} +__name(_transform, "_transform"); +// @__NO_SIDE_EFFECTS__ +function _optional(Class2, innerType) { + return new Class2({ + type: "optional", + innerType + }); +} +__name(_optional, "_optional"); +// @__NO_SIDE_EFFECTS__ +function _nullable(Class2, innerType) { + return new Class2({ + type: "nullable", + innerType + }); +} +__name(_nullable, "_nullable"); +// @__NO_SIDE_EFFECTS__ +function _default(Class2, innerType, defaultValue) { + return new Class2({ + type: "default", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); + } + }); +} +__name(_default, "_default"); +// @__NO_SIDE_EFFECTS__ +function _nonoptional(Class2, innerType, params) { + return new Class2({ + type: "nonoptional", + innerType, + ...normalizeParams(params) + }); +} +__name(_nonoptional, "_nonoptional"); +// @__NO_SIDE_EFFECTS__ +function _success(Class2, innerType) { + return new Class2({ + type: "success", + innerType + }); +} +__name(_success, "_success"); +// @__NO_SIDE_EFFECTS__ +function _catch(Class2, innerType, catchValue) { + return new Class2({ + type: "catch", + innerType, + catchValue: typeof catchValue === "function" ? catchValue : constantCatch(catchValue) + }); +} +__name(_catch, "_catch"); +// @__NO_SIDE_EFFECTS__ +function _pipe(Class2, in_, out) { + return new Class2({ + type: "pipe", + in: in_, + out + }); +} +__name(_pipe, "_pipe"); +// @__NO_SIDE_EFFECTS__ +function _readonly(Class2, innerType) { + return new Class2({ + type: "readonly", + innerType + }); +} +__name(_readonly, "_readonly"); +// @__NO_SIDE_EFFECTS__ +function _templateLiteral(Class2, parts, params) { + return new Class2({ + type: "template_literal", + parts, + ...normalizeParams(params) + }); +} +__name(_templateLiteral, "_templateLiteral"); +// @__NO_SIDE_EFFECTS__ +function _lazy(Class2, getter) { + return new Class2({ + type: "lazy", + getter + }); +} +__name(_lazy, "_lazy"); +// @__NO_SIDE_EFFECTS__ +function _promise(Class2, innerType) { + return new Class2({ + type: "promise", + innerType + }); +} +__name(_promise, "_promise"); +// @__NO_SIDE_EFFECTS__ +function _custom(Class2, fn, _params) { + const norm = normalizeParams(_params); + norm.abort ?? (norm.abort = true); + const schema2 = new Class2({ + type: "custom", + check: "custom", + fn, + ...norm + }); + return schema2; +} +__name(_custom, "_custom"); +// @__NO_SIDE_EFFECTS__ +function _refine(Class2, fn, _params) { + const schema2 = new Class2({ + type: "custom", + check: "custom", + fn, + ...normalizeParams(_params) + }); + return schema2; +} +__name(_refine, "_refine"); +// @__NO_SIDE_EFFECTS__ +function _superRefine(fn, params) { + const ch = /* @__PURE__ */ _check((payload) => { + payload.addIssue = (issue2) => { + if (typeof issue2 === "string") { + payload.issues.push(issue(issue2, payload.value, ch._zod.def)); + } else { + const _issue = issue2; + if (_issue.fatal) + _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + if (!("input" in _issue)) + _issue.input = payload.value; + _issue.inst ?? (_issue.inst = ch); + _issue.continue ?? (_issue.continue = !ch._zod.def.abort); + payload.issues.push(issue(_issue)); + } + }; + return fn(payload.value, payload); + }, params); + return ch; +} +__name(_superRefine, "_superRefine"); +// @__NO_SIDE_EFFECTS__ +function _check(fn, params) { + const ch = new $ZodCheck({ + check: "custom", + ...normalizeParams(params) + }); + ch._zod.check = fn; + return ch; +} +__name(_check, "_check"); +// @__NO_SIDE_EFFECTS__ +function describe(description) { + const ch = new $ZodCheck({ check: "describe" }); + ch._zod.onattach = [ + (inst) => { + const existing = globalRegistry.get(inst) ?? {}; + globalRegistry.add(inst, { ...existing, description }); + } + ]; + ch._zod.check = () => { + }; + return ch; +} +__name(describe, "describe"); +// @__NO_SIDE_EFFECTS__ +function meta(metadata) { + const ch = new $ZodCheck({ check: "meta" }); + ch._zod.onattach = [ + (inst) => { + const existing = globalRegistry.get(inst) ?? {}; + globalRegistry.add(inst, { ...existing, ...metadata }); + } + ]; + ch._zod.check = () => { + }; + return ch; +} +__name(meta, "meta"); +// @__NO_SIDE_EFFECTS__ +function _stringbool(Classes, _params) { + const params = normalizeParams(_params); + let truthyArray = params.truthy ?? ["true", "1", "yes", "on", "y", "enabled"]; + let falsyArray = params.falsy ?? ["false", "0", "no", "off", "n", "disabled"]; + if (params.case !== "sensitive") { + truthyArray = truthyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v); + falsyArray = falsyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v); + } + const truthySet = new Set(truthyArray); + const falsySet = new Set(falsyArray); + const _Codec = Classes.Codec ?? $ZodCodec; + const _Boolean = Classes.Boolean ?? $ZodBoolean; + const _String = Classes.String ?? $ZodString; + const stringSchema = new _String({ type: "string", error: params.error }); + const booleanSchema = new _Boolean({ type: "boolean", error: params.error }); + const codec2 = new _Codec({ + type: "pipe", + in: stringSchema, + out: booleanSchema, + transform: /* @__PURE__ */ __name(((input2, payload) => { + let data = input2; + if (params.case !== "sensitive") + data = data.toLowerCase(); + if (truthySet.has(data)) { + return true; + } else if (falsySet.has(data)) { + return false; + } else { + payload.issues.push({ + code: "invalid_value", + expected: "stringbool", + values: [...truthySet, ...falsySet], + input: payload.value, + inst: codec2, + continue: false + }); + return {}; + } + }), "transform"), + reverseTransform: /* @__PURE__ */ __name(((input2, _payload) => { + if (input2 === true) { + return truthyArray[0] || "true"; + } else { + return falsyArray[0] || "false"; + } + }), "reverseTransform"), + error: params.error + }); + codec2._zod.bag.truthy = truthyArray; + codec2._zod.bag.falsy = falsyArray; + codec2._zod.bag.case = params.case ?? "insensitive"; + return codec2; +} +__name(_stringbool, "_stringbool"); +// @__NO_SIDE_EFFECTS__ +function _stringFormat(Class2, format, fnOrRegex, _params = {}) { + const params = normalizeParams(_params); + const def = { + check: "string_format", + type: "string", + format, + fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val), + ...params + }; + if (fnOrRegex instanceof RegExp) { + def.pattern = fnOrRegex; + } + const inst = new Class2(def); + return inst; +} +__name(_stringFormat, "_stringFormat"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/to-json-schema.js +function assignProps(target, ...sources) { + for (const source of sources) { + for (const key of Reflect.ownKeys(source)) { + if (Object.prototype.propertyIsEnumerable.call(source, key)) { + assignProp(target, key, source[key]); + } + } + } + return target; +} +__name(assignProps, "assignProps"); +function initializeContext(params) { + let target = params?.target ?? "draft-2020-12"; + if (target === "draft-4") + target = "draft-04"; + if (target === "draft-7") + target = "draft-07"; + return { + processors: params.processors ?? {}, + metadataRegistry: params?.metadata ?? globalRegistry, + target, + unrepresentable: params?.unrepresentable ?? "throw", + override: params?.override ?? (() => { + }), + io: params?.io ?? "output", + counter: 0, + seen: /* @__PURE__ */ new Map(), + sharedDefsExtractedFor: void 0, + sharedEmitDoneFor: void 0, + cycles: params?.cycles ?? "ref", + reused: params?.reused ?? "inline", + intersections: [], + deferred: [], + external: params?.external ?? void 0 + }; +} +__name(initializeContext, "initializeContext"); +function handleUnrepresentable(schema2, ctx, json2, params, message) { + const result = typeof ctx.unrepresentable === "function" ? ctx.unrepresentable({ zodSchema: schema2, path: params.path, message }) : ctx.unrepresentable; + if (result === "any") + return false; + if (result === void 0 || result === "throw") + throw new Error(message); + Object.assign(json2, result); + return true; +} +__name(handleUnrepresentable, "handleUnrepresentable"); +function processSchema(schema2, ctx, _params = { path: [], schemaPath: [] }) { + var _a4; + const def = schema2._zod.def; + const seen = ctx.seen.get(schema2); + if (seen) { + seen.count++; + const isCycle = _params.schemaPath.includes(schema2); + if (isCycle) { + seen.cycle = _params.path; + } + return seen.schema; + } + const result = { schema: {}, count: 1, cycle: void 0, path: _params.path }; + ctx.seen.set(schema2, result); + ctx.sharedDefsExtractedFor = void 0; + ctx.sharedEmitDoneFor = void 0; + const overrideSchema = schema2._zod.toJSONSchema?.(); + if (overrideSchema) { + result.schema = overrideSchema; + } else { + const params = { + ..._params, + schemaPath: [..._params.schemaPath, schema2], + path: _params.path + }; + if (schema2._zod.processJSONSchema) { + schema2._zod.processJSONSchema(ctx, result.schema, params); + } else { + const _json = result.schema; + const processor = ctx.processors[def.type]; + if (!processor) { + throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); + } + processor(schema2, ctx, _json, params); + } + const parent = schema2._zod.parent; + if (parent) { + if (!result.ref) + result.ref = parent; + processSchema(parent, ctx, params); + ctx.seen.get(parent).isParent = true; + } + } + const meta3 = ctx.metadataRegistry.get(schema2); + if (meta3) + assignProps(result.schema, meta3); + if (ctx.io === "input" && isTransforming(schema2)) { + delete result.schema.examples; + delete result.schema.default; + } + if (ctx.io === "input" && "_prefault" in result.schema) + (_a4 = result.schema).default ?? (_a4.default = result.schema._prefault); + delete result.schema._prefault; + const _result = ctx.seen.get(schema2); + return _result.schema; +} +__name(processSchema, "processSchema"); +function encodeJSONPointerSegment(segment) { + return segment.replace(/~/g, "~0").replace(/\//g, "~1"); +} +__name(encodeJSONPointerSegment, "encodeJSONPointerSegment"); +function extractDefs(ctx, schema2) { + const root5 = ctx.seen.get(schema2); + if (!root5) + throw new Error("Unprocessed schema. This is a bug in Zod."); + if (ctx.external && ctx.sharedDefsExtractedFor === ctx.external) + return; + const idToSchema = /* @__PURE__ */ new Map(); + for (const entry of ctx.seen.entries()) { + const id = ctx.metadataRegistry.get(entry[0])?.id; + if (id) { + const existing = idToSchema.get(id); + if (existing && existing !== entry[0]) { + throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); + } + idToSchema.set(id, entry[0]); + } + } + const makeURI = /* @__PURE__ */ __name((entry) => { + const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; + if (ctx.external) { + const externalId = ctx.external.registry.get(entry[0])?.id; + const uriGenerator = ctx.external.uri ?? ((id2) => id2); + if (externalId) { + return { ref: uriGenerator(externalId) }; + } + const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`; + entry[1].defId = id; + return { defId: id, ref: `${uriGenerator("__shared")}#/${defsSegment}/${encodeJSONPointerSegment(id)}` }; + } + const uriPrefix = `#`; + const defUriPrefix = `${uriPrefix}/${defsSegment}/`; + if (entry[1] === root5 && !entry[1].schema.id) { + return { ref: uriPrefix }; + } + const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`; + return { defId, ref: defUriPrefix + encodeJSONPointerSegment(defId) }; + }, "makeURI"); + const extractToDef = /* @__PURE__ */ __name((entry) => { + if (entry[1].schema.$ref) { + return; + } + const seen = entry[1]; + const { ref, defId } = makeURI(entry); + seen.def = { ...seen.schema }; + if (defId) + seen.defId = defId; + const schema3 = seen.schema; + for (const key in schema3) { + delete schema3[key]; + } + schema3.$ref = ref; + }, "extractToDef"); + if (ctx.cycles === "throw") { + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.cycle) { + throw new Error(`Cycle detected: #/${seen.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`); + } + } + } + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (schema2 === entry[0]) { + extractToDef(entry); + continue; + } + if (ctx.external) { + const ext = ctx.external.registry.get(entry[0])?.id; + if (schema2 !== entry[0] && ext) { + extractToDef(entry); + continue; + } + } + const id = ctx.metadataRegistry.get(entry[0])?.id; + if (id) { + extractToDef(entry); + continue; + } + if (seen.cycle) { + extractToDef(entry); + continue; + } + if (seen.count > 1) { + if (ctx.reused === "ref") { + extractToDef(entry); + } + } + } + if (ctx.external) + ctx.sharedDefsExtractedFor = ctx.external; +} +__name(extractDefs, "extractDefs"); +function compactTypeUnion(schema2) { + const options = schema2.anyOf; + if (!Array.isArray(options) || options.length === 0 || schema2.type !== void 0) + return; + const types3 = []; + for (const option of options) { + if (!option || typeof option !== "object") + return; + compactTypeUnion(option); + const keys = Object.keys(option); + if (keys.length !== 1 || keys[0] !== "type") + return; + const type = option.type; + for (const member of Array.isArray(type) ? type : [type]) { + if (typeof member !== "string") + return; + if (!types3.includes(member)) + types3.push(member); + } + } + delete schema2.anyOf; + schema2.type = types3.length === 1 ? types3[0] : types3; +} +__name(compactTypeUnion, "compactTypeUnion"); +var FOLDABLE_KEYS = /* @__PURE__ */ new Set(["type", "properties", "required", "additionalProperties"]); +var UNION_KEYS = ["oneOf", "anyOf"]; +function undeclaredConstraint(member) { + const extra = member.additionalProperties; + if (extra === void 0 || extra === false || typeof extra !== "object" || extra === null) + return null; + return Object.keys(extra).length ? extra : null; +} +__name(undeclaredConstraint, "undeclaredConstraint"); +function foldObjects(members2) { + const objects = []; + for (const member of members2) { + if (typeof member !== "object" || member.type !== "object") + return null; + for (const key in member) { + if (!FOLDABLE_KEYS.has(key)) + return null; + } + objects.push(member); + } + const properties = {}; + const required2 = /* @__PURE__ */ new Set(); + for (const object2 of objects) { + for (const key in object2.properties) { + if (Object.prototype.hasOwnProperty.call(properties, key)) + continue; + const parts = []; + for (const other of objects) { + const part = other.properties?.[key] ?? undeclaredConstraint(other); + if (part === null || part === void 0) + continue; + if (!parts.some((seen) => JSON.stringify(seen) === JSON.stringify(part))) + parts.push(part); + } + const merged = parts.length === 1 ? parts[0] : foldObjects(parts) ?? { allOf: parts }; + assignProp(properties, key, merged); + } + for (const key of object2.required ?? []) + required2.add(key); + } + const folded = { type: "object", properties }; + if (required2.size) + folded.required = [...required2]; + if (objects.every((object2) => object2.additionalProperties === false)) { + folded.additionalProperties = false; + } else { + const constraints = []; + for (const object2 of objects) { + const constraint = undeclaredConstraint(object2); + if (constraint && !constraints.some((seen) => JSON.stringify(seen) === JSON.stringify(constraint))) + constraints.push(constraint); + } + if (constraints.length === 1) + folded.additionalProperties = constraints[0]; + else if (constraints.length > 1) + folded.additionalProperties = { allOf: constraints }; + } + return folded; +} +__name(foldObjects, "foldObjects"); +function foldIntersection(json2) { + const allOf = json2.allOf; + if (!Array.isArray(allOf) || allOf.length < 2) + return; + for (const key of FOLDABLE_KEYS) + if (key in json2) + return; + const unions = allOf.filter((m3) => UNION_KEYS.some((k5) => Array.isArray(m3[k5]))); + let folded = null; + if (!unions.length) { + folded = foldObjects(allOf); + } else { + const union2 = unions[0]; + const keyword = UNION_KEYS.find((k5) => Array.isArray(union2[k5])); + if (Object.keys(union2).length !== 1) + return; + const rest = allOf.filter((m3) => m3 !== union2); + const branches = union2[keyword].map((branch) => foldObjects([...rest, branch])); + if (branches.some((b5) => !b5)) + return; + folded = { [keyword]: branches }; + } + if (!folded) + return; + delete json2.allOf; + assignProps(json2, folded); +} +__name(foldIntersection, "foldIntersection"); +function finalize(ctx, schema2) { + const root5 = ctx.seen.get(schema2); + if (!root5) + throw new Error("Unprocessed schema. This is a bug in Zod."); + const flattenRef = /* @__PURE__ */ __name((zodSchema) => { + const seen = ctx.seen.get(zodSchema); + if (seen.ref === null) + return; + const schema3 = seen.def ?? seen.schema; + const _cached = { ...schema3 }; + const ref = seen.ref; + seen.ref = null; + if (ref) { + flattenRef(ref); + const refSeen = ctx.seen.get(ref); + const refSchema = refSeen.schema; + if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { + schema3.allOf = schema3.allOf ?? []; + schema3.allOf.push(refSchema); + } else { + assignProps(schema3, refSchema); + } + assignProps(schema3, _cached); + const isParentRef = zodSchema._zod.parent === ref; + if (isParentRef) { + for (const key in schema3) { + if (key === "$ref" || key === "allOf") + continue; + if (!(key in _cached)) { + delete schema3[key]; + } + } + } + if (refSchema.$ref && refSeen.def) { + for (const key in schema3) { + if (key === "$ref" || key === "allOf") + continue; + if (key in refSeen.def && JSON.stringify(schema3[key]) === JSON.stringify(refSeen.def[key])) { + delete schema3[key]; + } + } + } + } + const parent = zodSchema._zod.parent; + if (parent && parent !== ref) { + flattenRef(parent); + const parentSeen = ctx.seen.get(parent); + if (parentSeen?.schema.$ref) { + schema3.$ref = parentSeen.schema.$ref; + if (parentSeen.def) { + for (const key in schema3) { + if (key === "$ref" || key === "allOf") + continue; + if (key in parentSeen.def && JSON.stringify(schema3[key]) === JSON.stringify(parentSeen.def[key])) { + delete schema3[key]; + } + } + } + } + } + ctx.override({ + zodSchema, + jsonSchema: schema3, + path: seen.path ?? [] + }); + }, "flattenRef"); + if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) { + for (const entry of [...ctx.seen.entries()].reverse()) { + flattenRef(entry[0]); + } + if (ctx.target !== "openapi-3.0") { + for (const entry of ctx.seen.entries()) { + compactTypeUnion(entry[1].def ?? entry[1].schema); + } + } + for (const rewrite of ctx.deferred) + rewrite(); + if (ctx.intersections.length) { + const carriers = /* @__PURE__ */ new Map(); + for (const seen of ctx.seen.values()) { + for (const json2 of [seen.schema, seen.def]) { + const allOf = json2?.allOf; + if (!Array.isArray(allOf)) + continue; + const existing = carriers.get(allOf); + if (existing) + existing.push(json2); + else + carriers.set(allOf, [json2]); + } + } + for (const allOf of ctx.intersections) { + for (const json2 of carriers.get(allOf) ?? []) + foldIntersection(json2); + } + } + } + const result = {}; + if (ctx.target === "draft-2020-12") { + result.$schema = "https://json-schema.org/draft/2020-12/schema"; + } else if (ctx.target === "draft-07") { + result.$schema = "http://json-schema.org/draft-07/schema#"; + } else if (ctx.target === "draft-04") { + result.$schema = "http://json-schema.org/draft-04/schema#"; + } else if (ctx.target === "openapi-3.0") { + } else { + } + if (ctx.external?.uri) { + const id = ctx.external.registry.get(schema2)?.id; + if (!id) + throw new Error("Schema is missing an `id` property"); + result.$id = ctx.external.uri(id); + } + assignProps(result, root5.defId ? root5.schema : root5.def ?? root5.schema); + const rootMetaId = ctx.metadataRegistry.get(schema2)?.id; + if (rootMetaId !== void 0 && result.id === rootMetaId) + delete result.id; + const defs = ctx.external?.defs ?? {}; + if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) { + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.def && seen.defId) { + if (seen.def.id === seen.defId) + delete seen.def.id; + assignProp(defs, seen.defId, seen.def); + } + } + } + if (ctx.external) + ctx.sharedEmitDoneFor = ctx.external; + if (ctx.external) { + } else { + if (Object.keys(defs).length > 0) { + if (ctx.target === "draft-2020-12") { + result.$defs = defs; + } else { + result.definitions = defs; + } + } + } + try { + const finalized = JSON.parse(JSON.stringify(result)); + Object.defineProperty(finalized, "~standard", { + value: { + ...schema2["~standard"], + jsonSchema: { + input: createStandardJSONSchemaMethod(schema2, "input", ctx.processors), + output: createStandardJSONSchemaMethod(schema2, "output", ctx.processors) + } + }, + enumerable: false, + writable: false + }); + return finalized; + } catch (_err) { + throw new Error("Error converting schema to JSON."); + } +} +__name(finalize, "finalize"); +function isTransforming(_schema, _ctx) { + const ctx = _ctx ?? { seen: /* @__PURE__ */ new Set() }; + if (ctx.seen.has(_schema)) + return false; + ctx.seen.add(_schema); + const def = _schema._zod.def; + if (def.type === "transform") + return true; + if (def.type === "array") + return isTransforming(def.element, ctx); + if (def.type === "set") + return isTransforming(def.valueType, ctx); + if (def.type === "lazy") + return isTransforming(def.getter(), ctx); + if (def.type === "promise" || def.type === "optional" || def.type === "nonoptional" || def.type === "nullable" || def.type === "readonly" || def.type === "default" || def.type === "prefault" || def.type === "catch") { + return isTransforming(def.innerType, ctx); + } + if (def.type === "intersection") { + return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); + } + if (def.type === "record" || def.type === "map") { + return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); + } + if (def.type === "pipe") { + if (_schema._zod.traits.has("$ZodCodec")) + return true; + return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); + } + if (def.type === "object") { + for (const key in def.shape) { + if (isTransforming(def.shape[key], ctx)) + return true; + } + return false; + } + if (def.type === "union") { + for (const option of def.options) { + if (isTransforming(option, ctx)) + return true; + } + return false; + } + if (def.type === "tuple") { + for (const item of def.items) { + if (isTransforming(item, ctx)) + return true; + } + if (def.rest && isTransforming(def.rest, ctx)) + return true; + return false; + } + return false; +} +__name(isTransforming, "isTransforming"); +var createToJSONSchemaMethod = /* @__PURE__ */ __name((schema2, processors = {}) => (params) => { + const ctx = initializeContext({ ...params, processors }); + processSchema(schema2, ctx); + extractDefs(ctx, schema2); + return finalize(ctx, schema2); +}, "createToJSONSchemaMethod"); +var createStandardJSONSchemaMethod = /* @__PURE__ */ __name((schema2, io, processors = {}) => (params) => { + const { libraryOptions, target } = params ?? {}; + const ctx = initializeContext({ ...libraryOptions ?? {}, target, io, processors }); + processSchema(schema2, ctx); + extractDefs(ctx, schema2); + return finalize(ctx, schema2); +}, "createStandardJSONSchemaMethod"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/json-schema-processors.js +var narrowMin = /* @__PURE__ */ __name((agg, key, value) => { + if (agg[key] === void 0 || value > agg[key]) + agg[key] = value; +}, "narrowMin"); +var narrowMax = /* @__PURE__ */ __name((agg, key, value) => { + if (agg[key] === void 0 || value < agg[key]) + agg[key] = value; +}, "narrowMax"); +var narrowBoth = /* @__PURE__ */ __name((agg, value) => { + narrowMin(agg, "minimum", value); + narrowMax(agg, "maximum", value); +}, "narrowBoth"); +var addDivisor = /* @__PURE__ */ __name((agg, value) => { + agg.multipleOf ?? (agg.multipleOf = []); + if (!agg.multipleOf.includes(value)) + agg.multipleOf.push(value); +}, "addDivisor"); +var addPattern = /* @__PURE__ */ __name((agg, pattern) => { + agg.patterns ?? (agg.patterns = /* @__PURE__ */ new Set()); + agg.patterns.add(pattern); +}, "addPattern"); +var intersectMime = /* @__PURE__ */ __name((agg, mime) => { + agg.mime = agg.mime ? agg.mime.filter((m3) => mime.includes(m3)) : [...mime]; +}, "intersectMime"); +var setFormat = /* @__PURE__ */ __name((agg, format) => { + agg.format = format; + if (format.includes("int")) + agg.isInt = true; +}, "setFormat"); +var minContributor = /* @__PURE__ */ __name((agg, def) => narrowMin(agg, "minimum", def.minimum), "minContributor"); +var maxContributor = /* @__PURE__ */ __name((agg, def) => narrowMax(agg, "maximum", def.maximum), "maxContributor"); +var formatContributor = /* @__PURE__ */ __name((ranges) => (agg, def) => { + setFormat(agg, def.format); + const [minimum, maximum] = ranges[def.format]; + narrowMin(agg, "minimum", minimum); + narrowMax(agg, "maximum", maximum); +}, "formatContributor"); +var contributors = { + greater_than: /* @__PURE__ */ __name((agg, def) => narrowMin(agg, def.inclusive ? "minimum" : "exclusiveMinimum", def.value), "greater_than"), + less_than: /* @__PURE__ */ __name((agg, def) => narrowMax(agg, def.inclusive ? "maximum" : "exclusiveMaximum", def.value), "less_than"), + multiple_of: /* @__PURE__ */ __name((agg, def) => addDivisor(agg, def.value), "multiple_of"), + number_format: formatContributor(NUMBER_FORMAT_RANGES), + bigint_format: formatContributor(BIGINT_FORMAT_RANGES), + min_length: minContributor, + max_length: maxContributor, + length_equals: /* @__PURE__ */ __name((agg, def) => narrowBoth(agg, def.length), "length_equals"), + min_size: minContributor, + max_size: maxContributor, + size_equals: /* @__PURE__ */ __name((agg, def) => narrowBoth(agg, def.size), "size_equals"), + string_format: /* @__PURE__ */ __name((agg, def) => { + setFormat(agg, def.format); + if (def.pattern) + addPattern(agg, def.pattern); + if (def.format === "base64" || def.format === "base64url") + agg.contentEncoding = def.format; + if (def.local || def.precision === -1) + agg.laxFormat = true; + }, "string_format"), + mime_type: /* @__PURE__ */ __name((agg, def) => intersectMime(agg, def.mime), "mime_type") +}; +function aggregateChecks(schema2) { + const agg = {}; + const def = schema2._zod.def; + const list = schema2._zod.traits.has("$ZodCheck") ? [schema2, ...def.checks ?? []] : def.checks ?? []; + for (const ch of list) + contributors[ch._zod.def.check]?.(agg, ch._zod.def); + const bag = schema2._zod.bag; + if (bag.minimum !== void 0) + narrowMin(agg, "minimum", bag.minimum); + if (bag.exclusiveMinimum !== void 0) + narrowMin(agg, "exclusiveMinimum", bag.exclusiveMinimum); + if (bag.maximum !== void 0) + narrowMax(agg, "maximum", bag.maximum); + if (bag.exclusiveMaximum !== void 0) + narrowMax(agg, "exclusiveMaximum", bag.exclusiveMaximum); + if (bag.multipleOf !== void 0) + addDivisor(agg, bag.multipleOf); + if (bag.format !== void 0) { + agg.format ?? (agg.format = bag.format); + if (bag.format.includes("int")) + agg.isInt = true; + } + if (bag.mime) + intersectMime(agg, bag.mime); + for (const pattern of bag.patterns ?? []) + addPattern(agg, pattern); + return agg; +} +__name(aggregateChecks, "aggregateChecks"); +var formatMap = { + guid: "uuid", + url: "uri", + datetime: "date-time", + json_string: "json-string", + regex: "" + // do not set +}; +var exactPatterns = /* @__PURE__ */ new Map([ + [base64Charset, base64], + [base64urlCharset, base64url] +]); +var exactPattern = /* @__PURE__ */ __name((p3) => exactPatterns.get(p3) ?? p3, "exactPattern"); +var stringProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, _params) => { + const json2 = _json; + json2.type = "string"; + const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = aggregateChecks(schema2); + if (typeof minimum === "number") + json2.minLength = minimum; + if (typeof maximum === "number") + json2.maxLength = maximum; + if (format) { + json2.format = formatMap[format] ?? format; + if (json2.format === "") + delete json2.format; + if (format === "time" || laxFormat) { + delete json2.format; + } + } + if (contentEncoding) + json2.contentEncoding = contentEncoding; + if (patterns && patterns.size > 0) { + const patternList = [...patterns].map(exactPattern); + if (patternList.length === 1) + json2.pattern = patternList[0].source; + else if (patternList.length > 1) { + json2.allOf = [ + ...patternList.map((regex) => ({ + ...ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}, + pattern: regex.source + })) + ]; + } + } +}, "stringProcessor"); +var numberProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const json2 = _json; + const { minimum, maximum, multipleOf, exclusiveMaximum, exclusiveMinimum, isInt } = aggregateChecks(schema2); + json2.type = isInt ? "integer" : "number"; + const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY); + const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY); + const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; + if (exMin) { + if (legacy) { + json2.minimum = exclusiveMinimum; + json2.exclusiveMinimum = true; + } else { + json2.exclusiveMinimum = exclusiveMinimum; + } + } else if (typeof minimum === "number") { + json2.minimum = minimum; + } + if (exMax) { + if (legacy) { + json2.maximum = exclusiveMaximum; + json2.exclusiveMaximum = true; + } else { + json2.exclusiveMaximum = exclusiveMaximum; + } + } else if (typeof maximum === "number") { + json2.maximum = maximum; + } + if (multipleOf) { + const divisors = /* @__PURE__ */ new Set(); + for (const divisor of multipleOf) { + if (Number.isFinite(divisor) && divisor !== 0) + divisors.add(Math.abs(divisor)); + else + handleUnrepresentable(schema2, ctx, json2, params, `A multipleOf divisor of ${divisor} cannot be represented in JSON Schema`); + } + const [first, ...rest] = divisors; + if (first !== void 0) + json2.multipleOf = first; + if (rest.length) + json2.allOf = [...json2.allOf ?? [], ...rest.map((m3) => ({ multipleOf: m3 }))]; + } +}, "numberProcessor"); +var booleanProcessor = /* @__PURE__ */ __name((_schema, _ctx, json2, _params) => { + json2.type = "boolean"; +}, "booleanProcessor"); +var bigintProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "BigInt cannot be represented in JSON Schema"); +}, "bigintProcessor"); +var symbolProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Symbols cannot be represented in JSON Schema"); +}, "symbolProcessor"); +var nullProcessor = /* @__PURE__ */ __name((_schema, ctx, json2, _params) => { + if (ctx.target === "openapi-3.0") { + json2.type = "string"; + json2.nullable = true; + json2.enum = [null]; + } else { + json2.type = "null"; + } +}, "nullProcessor"); +var undefinedProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Undefined cannot be represented in JSON Schema"); +}, "undefinedProcessor"); +var voidProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Void cannot be represented in JSON Schema"); +}, "voidProcessor"); +var neverProcessor = /* @__PURE__ */ __name((_schema, _ctx, json2, _params) => { + json2.not = {}; +}, "neverProcessor"); +var anyProcessor = /* @__PURE__ */ __name((_schema, _ctx, _json, _params) => { +}, "anyProcessor"); +var unknownProcessor = /* @__PURE__ */ __name((_schema, _ctx, _json, _params) => { +}, "unknownProcessor"); +var dateProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Date cannot be represented in JSON Schema"); +}, "dateProcessor"); +var enumProcessor = /* @__PURE__ */ __name((schema2, _ctx, json2, _params) => { + const def = schema2._zod.def; + const values = getEnumValues(def.entries); + if (values.length === 0) { + json2.not = {}; + return; + } + if (values.every((v) => typeof v === "number")) + json2.type = "number"; + if (values.every((v) => typeof v === "string")) + json2.type = "string"; + json2.enum = values; +}, "enumProcessor"); +var literalProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + if (def.values.length === 0) { + json2.not = {}; + return; + } + const vals = []; + for (const val of def.values) { + if (val === void 0) { + if (handleUnrepresentable(schema2, ctx, json2, params, "Literal `undefined` cannot be represented in JSON Schema")) + return; + } else if (typeof val === "bigint") { + if (handleUnrepresentable(schema2, ctx, json2, params, "BigInt literals cannot be represented in JSON Schema")) + return; + vals.push(Number(val)); + } else { + vals.push(val); + } + } + if (vals.length === 0) { + } else if (vals.length === 1) { + const val = vals[0]; + json2.type = val === null ? "null" : typeof val; + if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") { + json2.enum = [val]; + } else { + json2.const = val; + } + } else { + if (vals.every((v) => typeof v === "number")) + json2.type = "number"; + if (vals.every((v) => typeof v === "string")) + json2.type = "string"; + if (vals.every((v) => typeof v === "boolean")) + json2.type = "boolean"; + if (vals.every((v) => v === null)) + json2.type = "null"; + json2.enum = vals; + } +}, "literalProcessor"); +var nanProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "NaN cannot be represented in JSON Schema"); +}, "nanProcessor"); +var templateLiteralProcessor = /* @__PURE__ */ __name((schema2, _ctx, json2, _params) => { + const _json = json2; + const pattern = schema2._zod.pattern; + if (!pattern) + throw new Error("Pattern not found in template literal"); + _json.type = "string"; + _json.pattern = pattern.source; +}, "templateLiteralProcessor"); +var fileProcessor = /* @__PURE__ */ __name((schema2, _ctx, json2, _params) => { + const _json = json2; + _json.type = "string"; + _json.format = "binary"; + _json.contentEncoding = "binary"; + const { minimum, maximum, mime } = aggregateChecks(schema2); + if (minimum !== void 0) + _json.minLength = minimum; + if (maximum !== void 0) + _json.maxLength = maximum; + if (!mime) + return; + if (mime.length === 0) + _json.not = {}; + else if (mime.length === 1) + _json.contentMediaType = mime[0]; + else + _json.anyOf = mime.map((m3) => ({ contentMediaType: m3 })); +}, "fileProcessor"); +var successProcessor = /* @__PURE__ */ __name((_schema, _ctx, json2, _params) => { + json2.type = "boolean"; +}, "successProcessor"); +var customProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Custom types cannot be represented in JSON Schema"); +}, "customProcessor"); +var functionProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Function types cannot be represented in JSON Schema"); +}, "functionProcessor"); +var transformProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Transforms cannot be represented in JSON Schema"); +}, "transformProcessor"); +var mapProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Map cannot be represented in JSON Schema"); +}, "mapProcessor"); +var setProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + handleUnrepresentable(schema2, ctx, json2, params, "Set cannot be represented in JSON Schema"); +}, "setProcessor"); +var arrayProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const json2 = _json; + const def = schema2._zod.def; + const { minimum, maximum } = aggregateChecks(schema2); + if (typeof minimum === "number") + json2.minItems = minimum; + if (typeof maximum === "number") + json2.maxItems = maximum; + json2.type = "array"; + json2.items = processSchema(def.element, ctx, { + ...params, + path: [...params.path, "items"] + }); +}, "arrayProcessor"); +function inputOptin(schema2) { + const def = schema2._zod.def; + if (def.type === "pipe" && def.in._zod.traits.has("$ZodTransform")) { + return inputOptin(def.out); + } + if (def.type === "catch") { + return inputOptin(def.innerType); + } + return schema2._zod.optin; +} +__name(inputOptin, "inputOptin"); +var objectProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const json2 = _json; + const def = schema2._zod.def; + const shape = def.shape; + const symbolKeys = Object.getOwnPropertySymbols(shape); + if (symbolKeys.length && handleUnrepresentable(schema2, ctx, json2, params, "Symbol keys cannot be represented in JSON Schema")) { + return; + } + json2.type = "object"; + json2.properties = {}; + for (const key in shape) { + assignProp(json2.properties, key, processSchema(shape[key], ctx, { + ...params, + path: [...params.path, "properties", key] + })); + } + const requiredKeys = []; + for (const key of Object.keys(shape)) { + const field = def.shape[key]; + if (ctx.io === "input" ? inputOptin(field) === void 0 : field._zod.optout === void 0) { + requiredKeys.push(key); + } + } + if (requiredKeys.length > 0) { + json2.required = requiredKeys; + } + if (def.catchall?._zod.def.type === "never") { + json2.additionalProperties = false; + } else if (!def.catchall) { + if (ctx.io === "output") + json2.additionalProperties = false; + } else if (def.catchall) { + json2.additionalProperties = processSchema(def.catchall, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + } +}, "objectProcessor"); +var unionProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + const isExclusive = def.inclusive === false; + const options = def.options.map((x, i5) => processSchema(x, ctx, { + ...params, + path: [...params.path, isExclusive ? "oneOf" : "anyOf", i5] + })); + if (isExclusive) { + json2.oneOf = options; + } else { + json2.anyOf = options; + } +}, "unionProcessor"); +var intersectionProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + const a5 = processSchema(def.left, ctx, { + ...params, + path: [...params.path, "allOf", 0] + }); + const b5 = processSchema(def.right, ctx, { + ...params, + path: [...params.path, "allOf", 1] + }); + const isSimpleIntersection = /* @__PURE__ */ __name((val) => "allOf" in val && Object.keys(val).length === 1, "isSimpleIntersection"); + const allOf = [ + ...isSimpleIntersection(a5) ? a5.allOf : [a5], + ...isSimpleIntersection(b5) ? b5.allOf : [b5] + ]; + json2.allOf = allOf; + ctx.intersections.push(allOf); +}, "intersectionProcessor"); +var tupleProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const json2 = _json; + const def = schema2._zod.def; + json2.type = "array"; + const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items"; + const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems"; + const prefixItems = def.items.map((x, i5) => processSchema(x, ctx, { + ...params, + path: [...params.path, prefixPath, i5] + })); + const rest = def.rest ? processSchema(def.rest, ctx, { + ...params, + path: [...params.path, restPath, ...ctx.target === "openapi-3.0" ? [def.items.length] : []] + }) : null; + let minItems = def.items.length; + while (minItems > 0) { + const item = def.items[minItems - 1]; + const optional2 = ctx.io === "input" ? inputOptin(item) !== void 0 : item._zod.optout === "optional"; + if (!optional2) + break; + minItems--; + } + const maxItems = def.items.length; + const isClosed = !def.rest; + if (ctx.target === "draft-2020-12") { + json2.prefixItems = prefixItems; + if (isClosed) { + json2.items = false; + } else if (rest) { + json2.items = rest; + } + if (minItems > 0) + json2.minItems = minItems; + if (isClosed) + json2.maxItems = maxItems; + } else if (ctx.target === "openapi-3.0") { + json2.items = { + anyOf: prefixItems + }; + if (rest) { + json2.items.anyOf.push(rest); + } + if (minItems > 0) + json2.minItems = minItems; + if (isClosed) + json2.maxItems = maxItems; + } else { + json2.items = prefixItems; + if (isClosed) { + json2.additionalItems = false; + } else if (rest) { + json2.additionalItems = rest; + } + if (minItems > 0) + json2.minItems = minItems; + if (isClosed) + json2.maxItems = maxItems; + } + const { minimum, maximum } = aggregateChecks(schema2); + if (typeof minimum === "number") + json2.minItems = minimum; + if (typeof maximum === "number") + json2.maxItems = maximum; +}, "tupleProcessor"); +function stringifyKeyNames(bySchema, json2, visited) { + if (json2.$ref) { + if (visited.has(json2)) + return json2; + visited.add(json2); + const def = bySchema.get(json2)?.def; + if (!def) + return json2; + const inlined = stringifyKeyNames(bySchema, def, visited); + return inlined === def ? json2 : inlined; + } + for (const keyword of ["anyOf", "oneOf"]) { + const branches = json2[keyword]; + if (!Array.isArray(branches)) + continue; + const mapped = branches.map((branch) => stringifyKeyNames(bySchema, branch, visited)); + if (mapped.some((branch, i5) => branch !== branches[i5])) + json2 = { ...json2, [keyword]: mapped }; + } + const types3 = Array.isArray(json2.type) ? json2.type : [json2.type]; + const numericType = !types3.includes("string") && types3.some((t) => t === "number" || t === "integer"); + const values = json2.enum ?? (json2.const !== void 0 ? [json2.const] : void 0); + if (!numericType && !values?.some((v) => typeof v === "number")) + return json2; + const { minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, format, id, ...rest } = json2; + if (rest.enum) + rest.enum = rest.enum.map((v) => typeof v === "number" ? String(v) : v); + else if (typeof rest.const === "number") + rest.const = String(rest.const); + if (!numericType) + return rest; + rest.type = "string"; + if (!values) + rest.pattern = (types3.includes("number") ? number : integer).source; + return rest; +} +__name(stringifyKeyNames, "stringifyKeyNames"); +var pendingRecords = /* @__PURE__ */ new WeakMap(); +function rewriteKeyNames(ctx) { + const bySchema = /* @__PURE__ */ new Map(); + for (const entry of ctx.seen.values()) { + if (entry.def && !bySchema.has(entry.schema)) + bySchema.set(entry.schema, entry); + } + const rewrites = /* @__PURE__ */ new Map(); + for (const record2 of pendingRecords.get(ctx) ?? []) { + const seen = ctx.seen.get(record2); + const names = (seen?.def ?? seen?.schema)?.propertyNames; + if (!names || names === true || rewrites.has(names)) + continue; + const rewritten = stringifyKeyNames(bySchema, names, /* @__PURE__ */ new Set()); + if (rewritten !== names) + rewrites.set(names, rewritten); + } + if (!rewrites.size) + return; + for (const entry of ctx.seen.values()) { + for (const carrier of [entry.schema, entry.def]) { + const rewritten = carrier && rewrites.get(carrier.propertyNames); + if (rewritten) + carrier.propertyNames = rewritten; + } + } +} +__name(rewriteKeyNames, "rewriteKeyNames"); +var recordProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const json2 = _json; + const def = schema2._zod.def; + json2.type = "object"; + const keyType = def.keyType; + const patterns = aggregateChecks(keyType).patterns; + if (def.mode === "loose" && patterns && patterns.size > 0) { + const valueSchema = processSchema(def.valueType, ctx, { + ...params, + path: [...params.path, "patternProperties", "*"] + }); + json2.patternProperties = {}; + for (const pattern of patterns) { + assignProp(json2.patternProperties, exactPattern(pattern).source, valueSchema); + } + } else { + if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") { + json2.propertyNames = processSchema(def.keyType, ctx, { + ...params, + path: [...params.path, "propertyNames"] + }); + let pending = pendingRecords.get(ctx); + if (!pending) { + pending = []; + pendingRecords.set(ctx, pending); + ctx.deferred.push(() => rewriteKeyNames(ctx)); + } + pending.push(schema2); + } + json2.additionalProperties = processSchema(def.valueType, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + } + const keyValues = keyType._zod.values; + const omittableOnInput = ctx.io === "input" && inputOptin(def.valueType) !== void 0; + if (keyValues && !def.partial && !omittableOnInput) { + const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); + if (validKeyValues.length > 0) { + json2.required = validKeyValues.map(String); + } + } +}, "recordProcessor"); +var nullableProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + const inner = processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + if (ctx.target === "openapi-3.0") { + seen.ref = def.innerType; + json2.nullable = true; + } else { + json2.anyOf = [inner, { type: "null" }]; + } +}, "nullableProcessor"); +var nonoptionalProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const def = schema2._zod.def; + processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = def.innerType; +}, "nonoptionalProcessor"); +var UNREPRESENTABLE_DEFAULT = /* @__PURE__ */ Symbol(); +function serializeDefaultValue(value, schema2, ctx, json2, params) { + let unrepresentable = false; + const serialized = JSON.stringify(value, (_, val) => { + if (typeof val !== "bigint") + return val; + unrepresentable = true; + return null; + }); + if (!unrepresentable) + return JSON.parse(serialized); + handleUnrepresentable(schema2, ctx, json2, params, "BigInt defaults cannot be represented in JSON Schema"); + return UNREPRESENTABLE_DEFAULT; +} +__name(serializeDefaultValue, "serializeDefaultValue"); +var defaultProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = def.innerType; + const value = serializeDefaultValue(def.defaultValue, schema2, ctx, json2, params); + if (value !== UNREPRESENTABLE_DEFAULT) + json2.default = value; +}, "defaultProcessor"); +var prefaultProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = def.innerType; + if (ctx.io !== "input") + return; + const value = serializeDefaultValue(def.defaultValue, schema2, ctx, json2, params); + if (value !== UNREPRESENTABLE_DEFAULT) + json2._prefault = value; +}, "prefaultProcessor"); +var catchProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = def.innerType; + let catchValue; + try { + catchValue = def.catchValue(void 0); + } catch { + handleUnrepresentable(schema2, ctx, json2, params, "Dynamic catch values are not supported in JSON Schema"); + return; + } + json2.default = catchValue; +}, "catchProcessor"); +var pipeProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const def = schema2._zod.def; + const inIsTransform = def.in._zod.traits.has("$ZodTransform"); + const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out; + processSchema(innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = innerType; +}, "pipeProcessor"); +var readonlyProcessor = /* @__PURE__ */ __name((schema2, ctx, json2, params) => { + const def = schema2._zod.def; + processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = def.innerType; + json2.readOnly = true; +}, "readonlyProcessor"); +var promiseProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const def = schema2._zod.def; + processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = def.innerType; +}, "promiseProcessor"); +var optionalProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const def = schema2._zod.def; + processSchema(def.innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = def.innerType; +}, "optionalProcessor"); +var lazyProcessor = /* @__PURE__ */ __name((schema2, ctx, _json, params) => { + const innerType = schema2._zod.innerType; + processSchema(innerType, ctx, params); + const seen = ctx.seen.get(schema2); + seen.ref = innerType; +}, "lazyProcessor"); +var allProcessors = { + string: stringProcessor, + number: numberProcessor, + boolean: booleanProcessor, + bigint: bigintProcessor, + symbol: symbolProcessor, + null: nullProcessor, + undefined: undefinedProcessor, + void: voidProcessor, + never: neverProcessor, + any: anyProcessor, + unknown: unknownProcessor, + date: dateProcessor, + enum: enumProcessor, + literal: literalProcessor, + nan: nanProcessor, + template_literal: templateLiteralProcessor, + file: fileProcessor, + success: successProcessor, + custom: customProcessor, + function: functionProcessor, + transform: transformProcessor, + map: mapProcessor, + set: setProcessor, + array: arrayProcessor, + object: objectProcessor, + union: unionProcessor, + intersection: intersectionProcessor, + tuple: tupleProcessor, + record: recordProcessor, + nullable: nullableProcessor, + nonoptional: nonoptionalProcessor, + default: defaultProcessor, + prefault: prefaultProcessor, + catch: catchProcessor, + pipe: pipeProcessor, + readonly: readonlyProcessor, + promise: promiseProcessor, + optional: optionalProcessor, + lazy: lazyProcessor +}; +function toJSONSchema(input2, params) { + if ("_idmap" in input2) { + const registry2 = input2; + const ctx2 = initializeContext({ ...params, processors: allProcessors }); + const defs = {}; + for (const entry of registry2._idmap.entries()) { + const [_, schema2] = entry; + processSchema(schema2, ctx2); + } + const schemas = {}; + const external = { + registry: registry2, + uri: params?.uri, + defs + }; + ctx2.external = external; + for (const entry of registry2._idmap.entries()) { + const [key, schema2] = entry; + extractDefs(ctx2, schema2); + assignProp(schemas, key, finalize(ctx2, schema2)); + } + if (Object.keys(defs).length > 0) { + const defsSegment = ctx2.target === "draft-2020-12" ? "$defs" : "definitions"; + schemas.__shared = { + [defsSegment]: defs + }; + } + return { schemas }; + } + const ctx = initializeContext({ ...params, processors: allProcessors }); + processSchema(input2, ctx); + extractDefs(ctx, input2); + return finalize(ctx, input2); +} +__name(toJSONSchema, "toJSONSchema"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/json-schema-generator.js +var JSONSchemaGenerator = class { + static { + __name(this, "JSONSchemaGenerator"); + } + /** @deprecated Access via ctx instead */ + get metadataRegistry() { + return this.ctx.metadataRegistry; + } + /** @deprecated Access via ctx instead */ + get target() { + return this.ctx.target; + } + // annotated so the .d.cts emits an indexed access rather than an inline `import()` of an ESM path + /** @deprecated Access via ctx instead */ + get unrepresentable() { + return this.ctx.unrepresentable; + } + /** @deprecated Access via ctx instead */ + get override() { + return this.ctx.override; + } + /** @deprecated Access via ctx instead */ + get io() { + return this.ctx.io; + } + /** @deprecated Access via ctx instead */ + get counter() { + return this.ctx.counter; + } + set counter(value) { + this.ctx.counter = value; + } + /** @deprecated Access via ctx instead */ + get seen() { + return this.ctx.seen; + } + constructor(params) { + let normalizedTarget = params?.target ?? "draft-2020-12"; + if (normalizedTarget === "draft-4") + normalizedTarget = "draft-04"; + if (normalizedTarget === "draft-7") + normalizedTarget = "draft-07"; + this.ctx = initializeContext({ + processors: allProcessors, + target: normalizedTarget, + ...params?.metadata && { metadata: params.metadata }, + ...params?.unrepresentable && { unrepresentable: params.unrepresentable }, + ...params?.override && { override: params.override }, + ...params?.io && { io: params.io } + }); + } + /** + * Process a schema to prepare it for JSON Schema generation. + * This must be called before emit(). + */ + process(schema2, _params = { path: [], schemaPath: [] }) { + return processSchema(schema2, this.ctx, _params); + } + /** + * Emit the final JSON Schema after processing. + * Must call process() first. + */ + emit(schema2, _params) { + if (_params) { + if (_params.cycles) + this.ctx.cycles = _params.cycles; + if (_params.reused) + this.ctx.reused = _params.reused; + if (_params.external) + this.ctx.external = _params.external; + } + this.ctx.sharedDefsExtractedFor = void 0; + this.ctx.sharedEmitDoneFor = void 0; + extractDefs(this.ctx, schema2); + const result = finalize(this.ctx, schema2); + const { "~standard": _, ...plainResult } = result; + return plainResult; + } +}; + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/json-schema.js +var json_schema_exports = {}; + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/schemas.js +var schemas_exports2 = {}; +__export(schemas_exports2, { + ZodAny: () => ZodAny, + ZodArray: () => ZodArray, + ZodBase64: () => ZodBase64, + ZodBase64URL: () => ZodBase64URL, + ZodBigInt: () => ZodBigInt, + ZodBigIntFormat: () => ZodBigIntFormat, + ZodBoolean: () => ZodBoolean, + ZodCIDRv4: () => ZodCIDRv4, + ZodCIDRv6: () => ZodCIDRv6, + ZodCUID: () => ZodCUID, + ZodCUID2: () => ZodCUID2, + ZodCatch: () => ZodCatch, + ZodCodec: () => ZodCodec, + ZodCreditCard: () => ZodCreditCard, + ZodCustom: () => ZodCustom, + ZodCustomStringFormat: () => ZodCustomStringFormat, + ZodDate: () => ZodDate, + ZodDefault: () => ZodDefault, + ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, + ZodE164: () => ZodE164, + ZodEmail: () => ZodEmail, + ZodEmoji: () => ZodEmoji, + ZodEnum: () => ZodEnum, + ZodExactOptional: () => ZodExactOptional, + ZodFile: () => ZodFile, + ZodFunction: () => ZodFunction, + ZodGUID: () => ZodGUID, + ZodIBAN: () => ZodIBAN, + ZodIPv4: () => ZodIPv4, + ZodIPv6: () => ZodIPv6, + ZodISODate: () => ZodISODate, + ZodISODateTime: () => ZodISODateTime, + ZodISODuration: () => ZodISODuration, + ZodISOTime: () => ZodISOTime, + ZodInstanceOf: () => ZodInstanceOf, + ZodIntersection: () => ZodIntersection, + ZodJWT: () => ZodJWT, + ZodKSUID: () => ZodKSUID, + ZodLazy: () => ZodLazy, + ZodLiteral: () => ZodLiteral, + ZodMAC: () => ZodMAC, + ZodMap: () => ZodMap, + ZodNaN: () => ZodNaN, + ZodNanoID: () => ZodNanoID, + ZodNever: () => ZodNever, + ZodNonOptional: () => ZodNonOptional, + ZodNull: () => ZodNull, + ZodNullable: () => ZodNullable, + ZodNumber: () => ZodNumber, + ZodNumberFormat: () => ZodNumberFormat, + ZodObject: () => ZodObject, + ZodOptional: () => ZodOptional, + ZodPipe: () => ZodPipe, + ZodPrefault: () => ZodPrefault, + ZodPreprocess: () => ZodPreprocess, + ZodPromise: () => ZodPromise, + ZodReadonly: () => ZodReadonly, + ZodRecord: () => ZodRecord, + ZodSet: () => ZodSet, + ZodString: () => ZodString, + ZodStringFormat: () => ZodStringFormat, + ZodSuccess: () => ZodSuccess, + ZodSymbol: () => ZodSymbol, + ZodTemplateLiteral: () => ZodTemplateLiteral, + ZodTransform: () => ZodTransform, + ZodTuple: () => ZodTuple, + ZodType: () => ZodType, + ZodULID: () => ZodULID, + ZodURL: () => ZodURL, + ZodUUID: () => ZodUUID, + ZodUndefined: () => ZodUndefined, + ZodUnion: () => ZodUnion, + ZodUnknown: () => ZodUnknown, + ZodVoid: () => ZodVoid, + ZodXID: () => ZodXID, + ZodXor: () => ZodXor, + _ZodString: () => _ZodString, + _default: () => _default2, + _function: () => _function, + any: () => any, + array: () => array, + base64: () => base642, + base64url: () => base64url2, + bigint: () => bigint2, + boolean: () => boolean2, + catch: () => _catch2, + check: () => check, + cidrv4: () => cidrv42, + cidrv6: () => cidrv62, + codec: () => codec, + creditCard: () => creditCard2, + cuid: () => cuid3, + cuid2: () => cuid22, + currencyCode: () => currencyCode2, + custom: () => custom, + date: () => date2, + describe: () => describe2, + discriminatedUnion: () => discriminatedUnion, + e164: () => e1642, + email: () => email2, + emoji: () => emoji2, + enum: () => _enum2, + exactOptional: () => exactOptional, + file: () => file, + float32: () => float32, + float64: () => float64, + function: () => _function, + guid: () => guid2, + hash: () => hash, + hex: () => hex2, + hostname: () => hostname2, + httpUrl: () => httpUrl, + iban: () => iban2, + instanceof: () => _instanceof, + int: () => int, + int32: () => int32, + int64: () => int64, + intersection: () => intersection, + invertCodec: () => invertCodec, + ipv4: () => ipv42, + ipv6: () => ipv62, + json: () => json, + jwt: () => jwt, + keyof: () => keyof, + ksuid: () => ksuid2, + lazy: () => lazy, + literal: () => literal, + looseObject: () => looseObject, + looseRecord: () => looseRecord, + mac: () => mac2, + map: () => map, + meta: () => meta2, + nan: () => nan, + nanoid: () => nanoid2, + nativeEnum: () => nativeEnum, + never: () => never, + nonoptional: () => nonoptional, + null: () => _null3, + nullable: () => nullable, + nullish: () => nullish2, + number: () => number2, + object: () => object, + optional: () => optional, + partialRecord: () => partialRecord, + pipe: () => pipe, + prefault: () => prefault, + preprocess: () => preprocess, + promise: () => promise, + readonly: () => readonly, + record: () => record, + refine: () => refine, + set: () => set, + strictObject: () => strictObject, + string: () => string2, + stringFormat: () => stringFormat, + stringbool: () => stringbool, + success: () => success, + superRefine: () => superRefine, + symbol: () => symbol, + templateLiteral: () => templateLiteral, + transform: () => transform, + tuple: () => tuple, + uint32: () => uint32, + uint64: () => uint64, + ulid: () => ulid2, + undefined: () => _undefined3, + union: () => union, + unknown: () => unknown, + url: () => url, + uuid: () => uuid2, + uuidv4: () => uuidv4, + uuidv6: () => uuidv6, + uuidv7: () => uuidv7, + void: () => _void2, + xid: () => xid2, + xor: () => xor +}); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/checks.js +var checks_exports2 = {}; +__export(checks_exports2, { + endsWith: () => _endsWith, + gt: () => _gt, + gte: () => _gte, + includes: () => _includes, + length: () => _length, + lowercase: () => _lowercase, + lt: () => _lt, + lte: () => _lte, + maxLength: () => _maxLength, + maxSize: () => _maxSize, + mime: () => _mime, + minLength: () => _minLength, + minSize: () => _minSize, + multipleOf: () => _multipleOf, + negative: () => _negative, + nonnegative: () => _nonnegative, + nonpositive: () => _nonpositive, + normalize: () => _normalize, + overwrite: () => _overwrite, + positive: () => _positive, + properties: () => _properties, + property: () => _property, + regex: () => _regex, + size: () => _size, + slugify: () => _slugify, + startsWith: () => _startsWith, + toLowerCase: () => _toLowerCase, + toUpperCase: () => _toUpperCase, + trim: () => _trim, + uppercase: () => _uppercase +}); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/errors.js +var _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]); +function _lazyMethod(proto, key, make) { + Object.defineProperty(proto, key, { + configurable: true, + enumerable: false, + get() { + const value = make(this); + Object.defineProperty(this, key, { value, configurable: true, writable: true }); + return value; + }, + set(value) { + Object.defineProperty(this, key, { value, configurable: true, writable: true }); + } + }); +} +__name(_lazyMethod, "_lazyMethod"); +var initializer2 = /* @__PURE__ */ __name((inst, issues) => { + $ZodError.init(inst, issues); + inst.name = "ZodError"; + const proto = Object.getPrototypeOf(inst); + if (_installedErrorProtos.has(proto)) + return; + _installedErrorProtos.add(proto); + _lazyMethod(proto, "format", (self2) => (mapper) => formatError(self2, mapper)); + _lazyMethod(proto, "flatten", (self2) => (mapper) => flattenError(self2, mapper)); + _lazyMethod(proto, "addIssue", (self2) => (issue2) => { + self2.issues.push(issue2); + self2.message = JSON.stringify(self2.issues, jsonStringifyReplacer, 2); + }); + _lazyMethod(proto, "addIssues", (self2) => (issues2) => { + self2.issues.push(...issues2); + self2.message = JSON.stringify(self2.issues, jsonStringifyReplacer, 2); + }); + Object.defineProperty(proto, "isEmpty", { + configurable: true, + enumerable: false, + get() { + return this.issues.length === 0; + } + }); +}, "initializer"); +var ZodError = /* @__PURE__ */ $constructor("ZodError", initializer2); +var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, void 0, { + Parent: Error +}); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/parse.js +var parse2 = /* @__PURE__ */ _parse(ZodRealError); +var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError); +var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError); +var safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError); +var encode2 = /* @__PURE__ */ _encode(ZodRealError); +var decode2 = /* @__PURE__ */ _decode(ZodRealError); +var encodeAsync2 = /* @__PURE__ */ _encodeAsync(ZodRealError); +var decodeAsync2 = /* @__PURE__ */ _decodeAsync(ZodRealError); +var safeEncode2 = /* @__PURE__ */ _safeEncode(ZodRealError); +var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError); +var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError); +var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/schemas.js +function _ensureDefaultLocale() { + if (!globalConfig.localeError) + config(en_default()); +} +__name(_ensureDefaultLocale, "_ensureDefaultLocale"); +function _ensureDefaultMemoizer() { + if (!globalConfig.memoizer) + config({ memoizer: memoizer() }); +} +__name(_ensureDefaultMemoizer, "_ensureDefaultMemoizer"); +var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => { + _ensureDefaultLocale(); + $ZodType.init(inst, def); + inst.def = def; + inst.type = def.type; + return inst; +}, { + check(...chks) { + const def = this.def; + return this.clone(util_exports.mergeDefs(def, { + checks: [ + ...def.checks ?? [], + ...chks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch) + ] + }), { parent: true }); + }, + with(...chks) { + return this.check(...chks); + }, + clone(def, params) { + return clone(this, def, params); + }, + brand() { + return this; + }, + register(reg, meta3) { + reg.add(this, meta3); + return this; + }, + refine(check2, params) { + return this.check(refine(check2, params)); + }, + superRefine(refinement, params) { + return this.check(superRefine(refinement, params)); + }, + overwrite(fn) { + return this.check(_overwrite(fn)); + }, + optional() { + return optional(this); + }, + exactOptional() { + return exactOptional(this); + }, + nullable() { + return nullable(this); + }, + nullish() { + return optional(nullable(this)); + }, + nonoptional(params) { + return nonoptional(this, params); + }, + array() { + return array(this); + }, + or(arg) { + return union([this, arg]); + }, + and(arg) { + return intersection(this, arg); + }, + transform(tx) { + return pipe(this, transform(tx)); + }, + default(d5) { + return _default2(this, d5); + }, + prefault(d5) { + return prefault(this, d5); + }, + catch(params) { + return _catch2(this, params); + }, + pipe(target) { + return pipe(this, target); + }, + readonly() { + return readonly(this); + }, + describe(description) { + const cl = this.clone(); + globalRegistry.add(cl, { description }); + return cl; + }, + meta(...args) { + if (args.length === 0) + return globalRegistry.get(this); + const cl = this.clone(); + globalRegistry.add(cl, args[0]); + return cl; + }, + isOptional() { + return this.safeParse(void 0).success; + }, + isNullable() { + return this.safeParse(null).success; + }, + apply(fn, ...args) { + return args.length === 0 ? fn(this) : fn(this, ...args); + }, + // Overrides core's `~standard` to add `jsonSchema`. Must stay a prototype entry: redefining it per instance demotes instances to dictionary mode. + get "~standard"() { + return util_exports.hide(this, "~standard", { + ...standardProps(this), + jsonSchema: { + input: createStandardJSONSchemaMethod(this, "input"), + output: createStandardJSONSchemaMethod(this, "output") + } + }); + }, + set "~standard"(value) { + util_exports.own(this, "~standard", value); + }, + parse: /* @__PURE__ */ __name(function _parse2(data, params) { + return parse2(this, data, params, { callee: _parse2 }); + }, "_parse"), + parseAsync: /* @__PURE__ */ __name(async function _parseAsync2(data, params) { + return await parseAsync2(this, data, params, { callee: _parseAsync2 }); + }, "_parseAsync"), + safeParse(data, params) { + return safeParse2(this, data, params); + }, + async safeParseAsync(data, params) { + return safeParseAsync2(this, data, params); + }, + // `spa` is an alias: same function object as `safeParseAsync`, as before. + get spa() { + return this?.safeParseAsync; + }, + set spa(value) { + util_exports.own(this, "spa", value); + }, + validate(data, params) { + return validate(this, data, params); + }, + validateAsync(data, params) { + return validateAsync(this, data, params); + }, + encode: /* @__PURE__ */ __name(function _encode2(data, params) { + return encode2(this, data, params, { callee: _encode2 }); + }, "_encode"), + decode: /* @__PURE__ */ __name(function _decode2(data, params) { + return decode2(this, data, params, { callee: _decode2 }); + }, "_decode"), + encodeAsync: /* @__PURE__ */ __name(async function _encodeAsync2(data, params) { + return await encodeAsync2(this, data, params, { callee: _encodeAsync2 }); + }, "_encodeAsync"), + decodeAsync: /* @__PURE__ */ __name(async function _decodeAsync2(data, params) { + return await decodeAsync2(this, data, params, { callee: _decodeAsync2 }); + }, "_decodeAsync"), + safeEncode(data, params) { + return safeEncode2(this, data, params); + }, + safeDecode(data, params) { + return safeDecode2(this, data, params); + }, + async safeEncodeAsync(data, params) { + return safeEncodeAsync2(this, data, params); + }, + async safeDecodeAsync(data, params) { + return safeDecodeAsync2(this, data, params); + }, + toJSONSchema(params) { + return createToJSONSchemaMethod(this, {})(params); + }, + // Reads through to the registry on every access, so it must not cache. + get description() { + return globalRegistry.get(this)?.description; + }, + // No setter: `schema._def = x` throws, as it did when `_def` was a non-writable own property. + get _def() { + return this._zod.def; + } +}); +var _ZodString = /* @__PURE__ */ $constructor( + "_ZodString", + (inst, def) => { + $ZodString.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => stringProcessor(inst, ctx, json2, params); + }, + /* @__PURE__ */ util_exports.derived({ + format: /* @__PURE__ */ __name((inst) => aggregateChecks(inst).format ?? null, "format"), + minLength: /* @__PURE__ */ __name((inst) => aggregateChecks(inst).minimum ?? null, "minLength"), + maxLength: /* @__PURE__ */ __name((inst) => aggregateChecks(inst).maximum ?? null, "maxLength") + }, { + regex(...args) { + return this.check(_regex(...args)); + }, + includes(...args) { + return this.check(_includes(...args)); + }, + startsWith(...args) { + return this.check(_startsWith(...args)); + }, + endsWith(...args) { + return this.check(_endsWith(...args)); + }, + min(...args) { + return this.check(_minLength(...args)); + }, + max(...args) { + return this.check(_maxLength(...args)); + }, + length(...args) { + return this.check(_length(...args)); + }, + nonempty(...args) { + return this.check(_minLength(1, ...args)); + }, + lowercase(params) { + return this.check(_lowercase(params)); + }, + uppercase(params) { + return this.check(_uppercase(params)); + }, + trim() { + return this.check(_trim()); + }, + normalize(...args) { + return this.check(_normalize(...args)); + }, + toLowerCase() { + return this.check(_toLowerCase()); + }, + toUpperCase() { + return this.check(_toUpperCase()); + }, + slugify() { + return this.check(_slugify()); + } + }) +); +var ZodString = /* @__PURE__ */ $constructor("ZodString", (inst, def) => { + $ZodString.init(inst, def); + _ZodString.init(inst, def); +}, { + email(params) { + return this.check(_email(ZodEmail, params)); + }, + url(params) { + return this.check(_url(ZodURL, params)); + }, + jwt(params) { + return this.check(_jwt(ZodJWT, params)); + }, + emoji(params) { + return this.check(_emoji2(ZodEmoji, params)); + }, + guid(params) { + return this.check(_guid(ZodGUID, params)); + }, + uuid(params) { + return this.check(_uuid(ZodUUID, params)); + }, + uuidv4(params) { + return this.check(_uuidv4(ZodUUID, params)); + }, + uuidv6(params) { + return this.check(_uuidv6(ZodUUID, params)); + }, + uuidv7(params) { + return this.check(_uuidv7(ZodUUID, params)); + }, + nanoid(params) { + return this.check(_nanoid(ZodNanoID, params)); + }, + cuid(params) { + return this.check(_cuid(ZodCUID, params)); + }, + cuid2(params) { + return this.check(_cuid2(ZodCUID2, params)); + }, + ulid(params) { + return this.check(_ulid(ZodULID, params)); + }, + base64(params) { + return this.check(_base64(ZodBase64, params)); + }, + base64url(params) { + return this.check(_base64url(ZodBase64URL, params)); + }, + xid(params) { + return this.check(_xid(ZodXID, params)); + }, + ksuid(params) { + return this.check(_ksuid(ZodKSUID, params)); + }, + ipv4(params) { + return this.check(_ipv4(ZodIPv4, params)); + }, + ipv6(params) { + return this.check(_ipv6(ZodIPv6, params)); + }, + cidrv4(params) { + return this.check(_cidrv4(ZodCIDRv4, params)); + }, + cidrv6(params) { + return this.check(_cidrv6(ZodCIDRv6, params)); + }, + e164(params) { + return this.check(_e164(ZodE164, params)); + }, + datetime(params) { + return this.check(_isoDateTime(ZodISODateTime, params)); + }, + date(params) { + return this.check(_isoDate(ZodISODate, params)); + }, + time(params) { + return this.check(_isoTime(ZodISOTime, params)); + }, + duration(params) { + return this.check(_isoDuration(ZodISODuration, params)); + } +}); +function string2(params) { + return _string(ZodString, params); +} +__name(string2, "string"); +var ZodStringFormat = /* @__PURE__ */ $constructor("ZodStringFormat", (inst, def) => { + $ZodStringFormat.init(inst, def); + _ZodString.init(inst, def); +}); +var ZodISODateTime = /* @__PURE__ */ $constructor("ZodISODateTime", (inst, def) => { + $ZodISODateTime.init(inst, def); + ZodStringFormat.init(inst, def); +}); +var ZodISODate = /* @__PURE__ */ $constructor("ZodISODate", (inst, def) => { + $ZodISODate.init(inst, def); + ZodStringFormat.init(inst, def); +}); +var ZodISOTime = /* @__PURE__ */ $constructor("ZodISOTime", (inst, def) => { + $ZodISOTime.init(inst, def); + ZodStringFormat.init(inst, def); +}); +var ZodISODuration = /* @__PURE__ */ $constructor("ZodISODuration", (inst, def) => { + $ZodISODuration.init(inst, def); + ZodStringFormat.init(inst, def); +}); +var ZodEmail = /* @__PURE__ */ $constructor("ZodEmail", (inst, def) => { + $ZodEmail.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function email2(params) { + return _email(ZodEmail, params); +} +__name(email2, "email"); +var ZodGUID = /* @__PURE__ */ $constructor("ZodGUID", (inst, def) => { + $ZodGUID.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function guid2(params) { + return _guid(ZodGUID, params); +} +__name(guid2, "guid"); +var ZodUUID = /* @__PURE__ */ $constructor("ZodUUID", (inst, def) => { + $ZodUUID.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function uuid2(params) { + return _uuid(ZodUUID, params); +} +__name(uuid2, "uuid"); +function uuidv4(params) { + return _uuidv4(ZodUUID, params); +} +__name(uuidv4, "uuidv4"); +function uuidv6(params) { + return _uuidv6(ZodUUID, params); +} +__name(uuidv6, "uuidv6"); +function uuidv7(params) { + return _uuidv7(ZodUUID, params); +} +__name(uuidv7, "uuidv7"); +var ZodURL = /* @__PURE__ */ $constructor("ZodURL", (inst, def) => { + $ZodURL.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function url(params) { + return _url(ZodURL, params); +} +__name(url, "url"); +function httpUrl(params) { + return _url(ZodURL, { + protocol: httpProtocol, + hostname: domain, + ...util_exports.normalizeParams(params) + }); +} +__name(httpUrl, "httpUrl"); +var ZodEmoji = /* @__PURE__ */ $constructor("ZodEmoji", (inst, def) => { + $ZodEmoji.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function emoji2(params) { + return _emoji2(ZodEmoji, params); +} +__name(emoji2, "emoji"); +var ZodNanoID = /* @__PURE__ */ $constructor("ZodNanoID", (inst, def) => { + $ZodNanoID.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function nanoid2(params) { + return _nanoid(ZodNanoID, params); +} +__name(nanoid2, "nanoid"); +var ZodCUID = /* @__PURE__ */ $constructor("ZodCUID", (inst, def) => { + $ZodCUID.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function cuid3(params) { + return _cuid(ZodCUID, params); +} +__name(cuid3, "cuid"); +var ZodCUID2 = /* @__PURE__ */ $constructor("ZodCUID2", (inst, def) => { + $ZodCUID2.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function cuid22(params) { + return _cuid2(ZodCUID2, params); +} +__name(cuid22, "cuid2"); +var ZodULID = /* @__PURE__ */ $constructor("ZodULID", (inst, def) => { + $ZodULID.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function ulid2(params) { + return _ulid(ZodULID, params); +} +__name(ulid2, "ulid"); +var ZodXID = /* @__PURE__ */ $constructor("ZodXID", (inst, def) => { + $ZodXID.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function xid2(params) { + return _xid(ZodXID, params); +} +__name(xid2, "xid"); +var ZodKSUID = /* @__PURE__ */ $constructor("ZodKSUID", (inst, def) => { + $ZodKSUID.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function ksuid2(params) { + return _ksuid(ZodKSUID, params); +} +__name(ksuid2, "ksuid"); +var ZodIPv4 = /* @__PURE__ */ $constructor("ZodIPv4", (inst, def) => { + $ZodIPv4.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function ipv42(params) { + return _ipv4(ZodIPv4, params); +} +__name(ipv42, "ipv4"); +var ZodMAC = /* @__PURE__ */ $constructor("ZodMAC", (inst, def) => { + $ZodMAC.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function mac2(params) { + return _mac(ZodMAC, params); +} +__name(mac2, "mac"); +var ZodIPv6 = /* @__PURE__ */ $constructor("ZodIPv6", (inst, def) => { + $ZodIPv6.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function ipv62(params) { + return _ipv6(ZodIPv6, params); +} +__name(ipv62, "ipv6"); +var ZodCIDRv4 = /* @__PURE__ */ $constructor("ZodCIDRv4", (inst, def) => { + $ZodCIDRv4.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function cidrv42(params) { + return _cidrv4(ZodCIDRv4, params); +} +__name(cidrv42, "cidrv4"); +var ZodCIDRv6 = /* @__PURE__ */ $constructor("ZodCIDRv6", (inst, def) => { + $ZodCIDRv6.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function cidrv62(params) { + return _cidrv6(ZodCIDRv6, params); +} +__name(cidrv62, "cidrv6"); +var ZodBase64 = /* @__PURE__ */ $constructor("ZodBase64", (inst, def) => { + $ZodBase64.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function base642(params) { + return _base64(ZodBase64, params); +} +__name(base642, "base64"); +var ZodBase64URL = /* @__PURE__ */ $constructor("ZodBase64URL", (inst, def) => { + $ZodBase64URL.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function base64url2(params) { + return _base64url(ZodBase64URL, params); +} +__name(base64url2, "base64url"); +var ZodE164 = /* @__PURE__ */ $constructor("ZodE164", (inst, def) => { + $ZodE164.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function e1642(params) { + return _e164(ZodE164, params); +} +__name(e1642, "e164"); +var ZodCreditCard = /* @__PURE__ */ $constructor("ZodCreditCard", (inst, def) => { + $ZodCreditCard.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function creditCard2(params) { + return _creditCard(ZodCreditCard, params); +} +__name(creditCard2, "creditCard"); +var ZodIBAN = /* @__PURE__ */ $constructor("ZodIBAN", (inst, def) => { + $ZodIBAN.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function iban2(params) { + return _iban(ZodIBAN, params); +} +__name(iban2, "iban"); +var ZodJWT = /* @__PURE__ */ $constructor("ZodJWT", (inst, def) => { + $ZodJWT.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function jwt(params) { + return _jwt(ZodJWT, params); +} +__name(jwt, "jwt"); +var ZodCustomStringFormat = /* @__PURE__ */ $constructor("ZodCustomStringFormat", (inst, def) => { + $ZodCustomStringFormat.init(inst, def); + ZodStringFormat.init(inst, def); +}); +function stringFormat(format, fnOrRegex, _params = {}) { + return _stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params); +} +__name(stringFormat, "stringFormat"); +function hostname2(_params) { + return _stringFormat(ZodCustomStringFormat, "hostname", hostname, _params); +} +__name(hostname2, "hostname"); +function hex2(_params) { + return _stringFormat(ZodCustomStringFormat, "hex", hex, _params); +} +__name(hex2, "hex"); +function currencyCode2(_params) { + return _stringFormat(ZodCustomStringFormat, "currency_code", currencyCode, _params); +} +__name(currencyCode2, "currencyCode"); +function hash(alg, params) { + const enc = params?.enc ?? "hex"; + const format = `${alg}_${enc}`; + const regex = regexes_exports[format]; + if (!regex) + throw new Error(`Unrecognized hash format: ${format}`); + return _stringFormat(ZodCustomStringFormat, format, regex, params); +} +__name(hash, "hash"); +var ZodNumber = /* @__PURE__ */ $constructor( + "ZodNumber", + (inst, def) => { + $ZodNumber.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => numberProcessor(inst, ctx, json2, params); + inst.isFinite = true; + }, + /* @__PURE__ */ util_exports.derived({ + minValue: /* @__PURE__ */ __name((inst) => { + const { minimum, exclusiveMinimum } = aggregateChecks(inst); + return Math.max(minimum ?? Number.NEGATIVE_INFINITY, exclusiveMinimum ?? Number.NEGATIVE_INFINITY); + }, "minValue"), + maxValue: /* @__PURE__ */ __name((inst) => { + const { maximum, exclusiveMaximum } = aggregateChecks(inst); + return Math.min(maximum ?? Number.POSITIVE_INFINITY, exclusiveMaximum ?? Number.POSITIVE_INFINITY); + }, "maxValue"), + isInt: /* @__PURE__ */ __name((inst) => { + const { isInt, multipleOf } = aggregateChecks(inst); + return !!isInt || !!multipleOf?.some(Number.isSafeInteger); + }, "isInt"), + format: /* @__PURE__ */ __name((inst) => aggregateChecks(inst).format ?? null, "format") + }, { + gt(value, params) { + return this.check(_gt(value, params)); + }, + gte(value, params) { + return this.check(_gte(value, params)); + }, + min(value, params) { + return this.check(_gte(value, params)); + }, + lt(value, params) { + return this.check(_lt(value, params)); + }, + lte(value, params) { + return this.check(_lte(value, params)); + }, + max(value, params) { + return this.check(_lte(value, params)); + }, + int(params) { + return this.check(int(params)); + }, + safe(params) { + return this.check(int(params)); + }, + positive(params) { + return this.check(_gt(0, params)); + }, + nonnegative(params) { + return this.check(_gte(0, params)); + }, + negative(params) { + return this.check(_lt(0, params)); + }, + nonpositive(params) { + return this.check(_lte(0, params)); + }, + multipleOf(value, params) { + return this.check(_multipleOf(value, params)); + }, + step(value, params) { + return this.check(_multipleOf(value, params)); + }, + finite() { + return this; + } + }) +); +function number2(params) { + return _number(ZodNumber, params); +} +__name(number2, "number"); +var ZodNumberFormat = /* @__PURE__ */ $constructor("ZodNumberFormat", (inst, def) => { + $ZodNumberFormat.init(inst, def); + ZodNumber.init(inst, def); +}); +function int(params) { + return _int(ZodNumberFormat, params); +} +__name(int, "int"); +function float32(params) { + return _float32(ZodNumberFormat, params); +} +__name(float32, "float32"); +function float64(params) { + return _float64(ZodNumberFormat, params); +} +__name(float64, "float64"); +function int32(params) { + return _int32(ZodNumberFormat, params); +} +__name(int32, "int32"); +function uint32(params) { + return _uint32(ZodNumberFormat, params); +} +__name(uint32, "uint32"); +var ZodBoolean = /* @__PURE__ */ $constructor("ZodBoolean", (inst, def) => { + $ZodBoolean.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => booleanProcessor(inst, ctx, json2, params); +}); +function boolean2(params) { + return _boolean(ZodBoolean, params); +} +__name(boolean2, "boolean"); +var ZodBigInt = /* @__PURE__ */ $constructor( + "ZodBigInt", + (inst, def) => { + $ZodBigInt.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => bigintProcessor(inst, ctx, json2, params); + }, + /* @__PURE__ */ util_exports.derived({ + minValue: /* @__PURE__ */ __name((inst) => aggregateChecks(inst).minimum ?? null, "minValue"), + maxValue: /* @__PURE__ */ __name((inst) => aggregateChecks(inst).maximum ?? null, "maxValue"), + format: /* @__PURE__ */ __name((inst) => aggregateChecks(inst).format ?? null, "format") + }, { + gte(value, params) { + return this.check(_gte(value, params)); + }, + min(value, params) { + return this.check(_gte(value, params)); + }, + gt(value, params) { + return this.check(_gt(value, params)); + }, + lt(value, params) { + return this.check(_lt(value, params)); + }, + lte(value, params) { + return this.check(_lte(value, params)); + }, + max(value, params) { + return this.check(_lte(value, params)); + }, + positive(params) { + return this.check(_gt(BigInt(0), params)); + }, + negative(params) { + return this.check(_lt(BigInt(0), params)); + }, + nonpositive(params) { + return this.check(_lte(BigInt(0), params)); + }, + nonnegative(params) { + return this.check(_gte(BigInt(0), params)); + }, + multipleOf(value, params) { + return this.check(_multipleOf(value, params)); + } + }) +); +function bigint2(params) { + return _bigint(ZodBigInt, params); +} +__name(bigint2, "bigint"); +var ZodBigIntFormat = /* @__PURE__ */ $constructor("ZodBigIntFormat", (inst, def) => { + $ZodBigIntFormat.init(inst, def); + ZodBigInt.init(inst, def); +}); +function int64(params) { + return _int64(ZodBigIntFormat, params); +} +__name(int64, "int64"); +function uint64(params) { + return _uint64(ZodBigIntFormat, params); +} +__name(uint64, "uint64"); +var ZodSymbol = /* @__PURE__ */ $constructor("ZodSymbol", (inst, def) => { + $ZodSymbol.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => symbolProcessor(inst, ctx, json2, params); +}); +function symbol(params) { + return _symbol(ZodSymbol, params); +} +__name(symbol, "symbol"); +var ZodUndefined = /* @__PURE__ */ $constructor("ZodUndefined", (inst, def) => { + $ZodUndefined.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => undefinedProcessor(inst, ctx, json2, params); +}); +function _undefined3(params) { + return _undefined2(ZodUndefined, params); +} +__name(_undefined3, "_undefined"); +var ZodNull = /* @__PURE__ */ $constructor("ZodNull", (inst, def) => { + $ZodNull.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => nullProcessor(inst, ctx, json2, params); +}); +function _null3(params) { + return _null2(ZodNull, params); +} +__name(_null3, "_null"); +var ZodAny = /* @__PURE__ */ $constructor("ZodAny", (inst, def) => { + $ZodAny.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => anyProcessor(inst, ctx, json2, params); +}); +function any() { + return _any(ZodAny); +} +__name(any, "any"); +var ZodUnknown = /* @__PURE__ */ $constructor("ZodUnknown", (inst, def) => { + $ZodUnknown.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => unknownProcessor(inst, ctx, json2, params); +}); +function unknown() { + return _unknown(ZodUnknown); +} +__name(unknown, "unknown"); +var ZodNever = /* @__PURE__ */ $constructor("ZodNever", (inst, def) => { + $ZodNever.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => neverProcessor(inst, ctx, json2, params); +}); +function never(params) { + return _never(ZodNever, params); +} +__name(never, "never"); +var ZodVoid = /* @__PURE__ */ $constructor("ZodVoid", (inst, def) => { + $ZodVoid.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => voidProcessor(inst, ctx, json2, params); +}); +function _void2(params) { + return _void(ZodVoid, params); +} +__name(_void2, "_void"); +var ZodDate = /* @__PURE__ */ $constructor( + "ZodDate", + (inst, def) => { + $ZodDate.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => dateProcessor(inst, ctx, json2, params); + inst.min = (value, params) => inst.check(_gte(value, params)); + inst.max = (value, params) => inst.check(_lte(value, params)); + }, + /* @__PURE__ */ util_exports.derived({ + minDate: /* @__PURE__ */ __name((inst) => { + const { minimum } = aggregateChecks(inst); + return minimum ? new Date(minimum) : null; + }, "minDate"), + maxDate: /* @__PURE__ */ __name((inst) => { + const { maximum } = aggregateChecks(inst); + return maximum ? new Date(maximum) : null; + }, "maxDate") + }, {}) +); +function date2(params) { + return _date(ZodDate, params); +} +__name(date2, "date"); +var ZodArray = /* @__PURE__ */ $constructor("ZodArray", (inst, def) => { + _ensureDefaultMemoizer(); + $ZodArray.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => arrayProcessor(inst, ctx, json2, params); + inst.element = def.element; +}, { + min(n3, params) { + return this.check(_minLength(n3, params)); + }, + nonempty(params) { + return this.check(_minLength(1, params)); + }, + max(n3, params) { + return this.check(_maxLength(n3, params)); + }, + length(n3, params) { + return this.check(_length(n3, params)); + }, + unwrap() { + return this.element; + } +}); +function array(element, params) { + return _array(ZodArray, element, params); +} +__name(array, "array"); +function keyof(schema2) { + const shape = schema2._zod.def.shape; + return _enum2(Object.keys(shape)); +} +__name(keyof, "keyof"); +var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => { + _ensureDefaultMemoizer(); + $ZodObjectJIT.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => objectProcessor(inst, ctx, json2, params); + util_exports.installLazyProp(inst, "shape", (self2) => self2._zod.def.shape, false); +}, { + keyof() { + return _enum2(Object.keys(this._zod.def.shape)); + }, + catchall(catchall) { + return this.clone(util_exports.mergeDefs(this._zod.def, { catchall })); + }, + passthrough() { + return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: unknown() })); + }, + loose() { + return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: unknown() })); + }, + strict() { + return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: never() })); + }, + strip() { + return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: void 0 })); + }, + extend(incoming) { + return util_exports.extend(this, incoming); + }, + safeExtend(incoming) { + return util_exports.safeExtend(this, incoming); + }, + merge(other) { + return util_exports.merge(this, other); + }, + pick(mask) { + return util_exports.pick(this, mask); + }, + omit(mask) { + return util_exports.omit(this, mask); + }, + partial(...args) { + return util_exports.partial(ZodOptional, this, args[0]); + }, + exactPartial(...args) { + return util_exports.partial(ZodExactOptional, this, args[0], "exactPartial"); + }, + required(...args) { + return util_exports.required(ZodNonOptional, this, args[0]); + } +}); +function object(shape, params) { + const def = { + type: "object", + shape: shape ?? {}, + ...util_exports.normalizeParams(params) + }; + return new ZodObject(def); +} +__name(object, "object"); +function strictObject(shape, params) { + return new ZodObject({ + type: "object", + shape, + catchall: never(), + ...util_exports.normalizeParams(params) + }); +} +__name(strictObject, "strictObject"); +function looseObject(shape, params) { + return new ZodObject({ + type: "object", + shape, + catchall: unknown(), + ...util_exports.normalizeParams(params) + }); +} +__name(looseObject, "looseObject"); +var ZodUnion = /* @__PURE__ */ $constructor("ZodUnion", (inst, def) => { + $ZodUnion.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); + inst.options = def.options; +}); +function union(options, params) { + return new ZodUnion({ + type: "union", + options, + ...util_exports.normalizeParams(params) + }); +} +__name(union, "union"); +var ZodXor = /* @__PURE__ */ $constructor("ZodXor", (inst, def) => { + ZodUnion.init(inst, def); + $ZodXor.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); + inst.options = def.options; +}); +function xor(options, params) { + return new ZodXor({ + type: "union", + options, + inclusive: false, + ...util_exports.normalizeParams(params) + }); +} +__name(xor, "xor"); +var ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("ZodDiscriminatedUnion", (inst, def) => { + ZodUnion.init(inst, def); + $ZodDiscriminatedUnion.init(inst, def); +}); +function discriminatedUnion(discriminator, options, params) { + return new ZodDiscriminatedUnion({ + type: "union", + options, + discriminator, + ...util_exports.normalizeParams(params) + }); +} +__name(discriminatedUnion, "discriminatedUnion"); +var ZodIntersection = /* @__PURE__ */ $constructor("ZodIntersection", (inst, def) => { + $ZodIntersection.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => intersectionProcessor(inst, ctx, json2, params); +}); +function intersection(left, right) { + return new ZodIntersection({ + type: "intersection", + left, + right + }); +} +__name(intersection, "intersection"); +var ZodTuple = /* @__PURE__ */ $constructor("ZodTuple", (inst, def) => { + _ensureDefaultMemoizer(); + $ZodTuple.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => tupleProcessor(inst, ctx, json2, params); +}, { + rest(rest) { + return this.clone({ + ...this._zod.def, + rest + }); + }, + partial() { + const def = this._zod.def; + if (def.checks?.length) + throw new Error(".partial() cannot be used on tuple schemas containing refinements"); + return this.clone({ + ...def, + items: def.items.map((item) => new ZodOptional({ type: "optional", innerType: item })) + }); + } +}); +function tuple(items, _paramsOrRest, _params) { + const hasRest = _paramsOrRest instanceof $ZodType; + const params = hasRest ? _params : _paramsOrRest; + const rest = hasRest ? _paramsOrRest : null; + return new ZodTuple({ + type: "tuple", + items, + rest, + ...util_exports.normalizeParams(params) + }); +} +__name(tuple, "tuple"); +var ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => { + _ensureDefaultMemoizer(); + $ZodRecord.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => recordProcessor(inst, ctx, json2, params); + inst.keyType = def.keyType; + inst.valueType = def.valueType; +}); +function record(keyType, valueType, params) { + if (!valueType || !valueType._zod) { + return new ZodRecord({ + type: "record", + keyType: string2(), + valueType: keyType, + ...util_exports.normalizeParams(valueType) + }); + } + return new ZodRecord({ + type: "record", + keyType, + valueType, + ...util_exports.normalizeParams(params) + }); +} +__name(record, "record"); +function partialRecord(keyType, valueType, params) { + return new ZodRecord({ + type: "record", + keyType, + valueType, + ...util_exports.normalizeParams(params), + partial: true + }); +} +__name(partialRecord, "partialRecord"); +function looseRecord(keyType, valueType, params) { + return new ZodRecord({ + type: "record", + keyType, + valueType, + mode: "loose", + ...util_exports.normalizeParams(params) + }); +} +__name(looseRecord, "looseRecord"); +var ZodMap = /* @__PURE__ */ $constructor("ZodMap", (inst, def) => { + _ensureDefaultMemoizer(); + $ZodMap.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => mapProcessor(inst, ctx, json2, params); + inst.keyType = def.keyType; + inst.valueType = def.valueType; + inst.min = (...args) => inst.check(_minSize(...args)); + inst.nonempty = (params) => inst.check(_minSize(1, params)); + inst.max = (...args) => inst.check(_maxSize(...args)); + inst.size = (...args) => inst.check(_size(...args)); +}); +function map(keyType, valueType, params) { + return new ZodMap({ + type: "map", + keyType, + valueType, + ...util_exports.normalizeParams(params) + }); +} +__name(map, "map"); +var ZodSet = /* @__PURE__ */ $constructor("ZodSet", (inst, def) => { + _ensureDefaultMemoizer(); + $ZodSet.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => setProcessor(inst, ctx, json2, params); + inst.min = (...args) => inst.check(_minSize(...args)); + inst.nonempty = (params) => inst.check(_minSize(1, params)); + inst.max = (...args) => inst.check(_maxSize(...args)); + inst.size = (...args) => inst.check(_size(...args)); +}); +function set(valueType, params) { + return new ZodSet({ + type: "set", + valueType, + ...util_exports.normalizeParams(params) + }); +} +__name(set, "set"); +var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => { + $ZodEnum.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => enumProcessor(inst, ctx, json2, params); + inst.enum = def.entries; + inst.options = [...inst._zod.values]; + const keys = new Set(Object.keys(def.entries)); + inst.extract = (values, params) => { + const newEntries = {}; + for (const value of values) { + if (keys.has(value)) { + newEntries[value] = def.entries[value]; + } else + throw new Error(`Key ${value} not found in enum`); + } + return new ZodEnum({ + ...def, + checks: [], + ...util_exports.normalizeParams(params), + entries: newEntries + }); + }; + inst.exclude = (values, params) => { + const newEntries = { ...def.entries }; + for (const value of values) { + if (keys.has(value)) { + delete newEntries[value]; + } else + throw new Error(`Key ${value} not found in enum`); + } + return new ZodEnum({ + ...def, + checks: [], + ...util_exports.normalizeParams(params), + entries: newEntries + }); + }; +}); +function _enum2(values, params) { + const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; + return new ZodEnum({ + type: "enum", + entries, + ...util_exports.normalizeParams(params) + }); +} +__name(_enum2, "_enum"); +function nativeEnum(entries, params) { + return new ZodEnum({ + type: "enum", + entries, + ...util_exports.normalizeParams(params) + }); +} +__name(nativeEnum, "nativeEnum"); +var ZodLiteral = /* @__PURE__ */ $constructor("ZodLiteral", (inst, def) => { + $ZodLiteral.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => literalProcessor(inst, ctx, json2, params); + inst.values = new Set(def.values); + Object.defineProperty(inst, "value", { + get() { + if (def.values.length > 1) { + throw new Error("This schema contains multiple valid literal values. Use `.values` instead."); + } + return def.values[0]; + } + }); +}); +function literal(value, params) { + return new ZodLiteral({ + type: "literal", + values: Array.isArray(value) ? value : [value], + ...util_exports.normalizeParams(params) + }); +} +__name(literal, "literal"); +var ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => { + $ZodFile.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => fileProcessor(inst, ctx, json2, params); + inst.min = (size, params) => inst.check(_minSize(size, params)); + inst.max = (size, params) => inst.check(_maxSize(size, params)); + inst.mime = (types3, params) => inst.check(_mime(Array.isArray(types3) ? types3 : [types3], params)); +}); +function file(params) { + return _file(ZodFile, params); +} +__name(file, "file"); +var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => { + _ensureDefaultMemoizer(); + $ZodTransform.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => transformProcessor(inst, ctx, json2, params); + inst._zod.parse = (payload, _ctx) => { + if (_ctx.direction === "backward") { + throw new $ZodEncodeError(inst.constructor.name); + } + payload.addIssue = (issue2) => { + if (typeof issue2 === "string") { + payload.issues.push(util_exports.issue(issue2, payload.value, def)); + } else { + const _issue = issue2; + if (_issue.fatal) + _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + if (!("input" in _issue)) + _issue.input = payload.value; + _issue.inst ?? (_issue.inst = inst); + payload.issues.push(util_exports.issue(_issue)); + } + }; + const output2 = def.transform(payload.value, payload); + if (output2 instanceof Promise) { + return output2.then((output3) => { + payload.value = output3; + return payload; + }); + } + payload.value = output2; + return payload; + }; +}); +function transform(fn) { + return new ZodTransform({ + type: "transform", + transform: fn + }); +} +__name(transform, "transform"); +var ZodOptional = /* @__PURE__ */ $constructor("ZodOptional", (inst, def) => { + $ZodOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function optional(innerType) { + return new ZodOptional({ + type: "optional", + innerType + }); +} +__name(optional, "optional"); +var ZodExactOptional = /* @__PURE__ */ $constructor("ZodExactOptional", (inst, def) => { + $ZodExactOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function exactOptional(innerType) { + return new ZodExactOptional({ + type: "optional", + innerType + }); +} +__name(exactOptional, "exactOptional"); +var ZodNullable = /* @__PURE__ */ $constructor("ZodNullable", (inst, def) => { + $ZodNullable.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => nullableProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function nullable(innerType) { + return new ZodNullable({ + type: "nullable", + innerType + }); +} +__name(nullable, "nullable"); +function nullish2(innerType) { + return optional(nullable(innerType)); +} +__name(nullish2, "nullish"); +var ZodDefault = /* @__PURE__ */ $constructor("ZodDefault", (inst, def) => { + $ZodDefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => defaultProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeDefault = inst.unwrap; +}); +function _default2(innerType, defaultValue) { + return new ZodDefault({ + type: "default", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : util_exports.shallowClone(defaultValue); + } + }); +} +__name(_default2, "_default"); +var ZodPrefault = /* @__PURE__ */ $constructor("ZodPrefault", (inst, def) => { + $ZodPrefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => prefaultProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function prefault(innerType, defaultValue) { + return new ZodPrefault({ + type: "prefault", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : util_exports.shallowClone(defaultValue); + } + }); +} +__name(prefault, "prefault"); +var ZodNonOptional = /* @__PURE__ */ $constructor("ZodNonOptional", (inst, def) => { + $ZodNonOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => nonoptionalProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function nonoptional(innerType, params) { + return new ZodNonOptional({ + type: "nonoptional", + innerType, + ...util_exports.normalizeParams(params) + }); +} +__name(nonoptional, "nonoptional"); +var ZodSuccess = /* @__PURE__ */ $constructor("ZodSuccess", (inst, def) => { + $ZodSuccess.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => successProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function success(innerType) { + return new ZodSuccess({ + type: "success", + innerType + }); +} +__name(success, "success"); +var ZodCatch = /* @__PURE__ */ $constructor("ZodCatch", (inst, def) => { + $ZodCatch.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => catchProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeCatch = inst.unwrap; +}); +function _catch2(innerType, catchValue) { + return new ZodCatch({ + type: "catch", + innerType, + catchValue: typeof catchValue === "function" ? catchValue : util_exports.constantCatch(catchValue) + }); +} +__name(_catch2, "_catch"); +var ZodNaN = /* @__PURE__ */ $constructor("ZodNaN", (inst, def) => { + $ZodNaN.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => nanProcessor(inst, ctx, json2, params); +}); +function nan(params) { + return _nan(ZodNaN, params); +} +__name(nan, "nan"); +var ZodPipe = /* @__PURE__ */ $constructor("ZodPipe", (inst, def) => { + $ZodPipe.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => pipeProcessor(inst, ctx, json2, params); + inst.in = def.in; + inst.out = def.out; +}); +function pipe(in_, out) { + return new ZodPipe({ + type: "pipe", + in: in_, + out + // ...util.normalizeParams(params), + }); +} +__name(pipe, "pipe"); +var ZodCodec = /* @__PURE__ */ $constructor("ZodCodec", (inst, def) => { + ZodPipe.init(inst, def); + $ZodCodec.init(inst, def); +}); +function codec(in_, out, params) { + return new ZodCodec({ + type: "pipe", + in: in_, + out, + transform: params.decode, + reverseTransform: params.encode + }); +} +__name(codec, "codec"); +function invertCodec(codec2) { + const def = codec2._zod.def; + return new ZodCodec({ + type: "pipe", + in: def.out, + out: def.in, + transform: def.reverseTransform, + reverseTransform: def.transform + }); +} +__name(invertCodec, "invertCodec"); +var ZodPreprocess = /* @__PURE__ */ $constructor("ZodPreprocess", (inst, def) => { + ZodPipe.init(inst, def); + $ZodPreprocess.init(inst, def); +}); +var ZodReadonly = /* @__PURE__ */ $constructor("ZodReadonly", (inst, def) => { + $ZodReadonly.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => readonlyProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function readonly(innerType) { + return new ZodReadonly({ + type: "readonly", + innerType + }); +} +__name(readonly, "readonly"); +var ZodTemplateLiteral = /* @__PURE__ */ $constructor("ZodTemplateLiteral", (inst, def) => { + $ZodTemplateLiteral.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => templateLiteralProcessor(inst, ctx, json2, params); +}); +function templateLiteral(parts, params) { + return new ZodTemplateLiteral({ + type: "template_literal", + parts, + ...util_exports.normalizeParams(params) + }); +} +__name(templateLiteral, "templateLiteral"); +var ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => { + $ZodLazy.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => lazyProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.getter(); +}); +function lazy(getter) { + return new ZodLazy({ + type: "lazy", + getter + }); +} +__name(lazy, "lazy"); +var ZodPromise = /* @__PURE__ */ $constructor("ZodPromise", (inst, def) => { + $ZodPromise.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => promiseProcessor(inst, ctx, json2, params); + inst.unwrap = () => inst._zod.def.innerType; +}); +function promise(innerType) { + return new ZodPromise({ + type: "promise", + innerType + }); +} +__name(promise, "promise"); +var ZodFunction = /* @__PURE__ */ $constructor("ZodFunction", (inst, def) => { + $ZodFunction.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => functionProcessor(inst, ctx, json2, params); +}); +function _function(params) { + return new ZodFunction({ + type: "function", + input: Array.isArray(params?.input) ? tuple(params?.input) : params?.input ?? array(unknown()), + output: params?.output ?? unknown() + }); +} +__name(_function, "_function"); +var ZodCustom = /* @__PURE__ */ $constructor("ZodCustom", (inst, def) => { + $ZodCustom.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json2, params) => customProcessor(inst, ctx, json2, params); +}); +function check(fn) { + const ch = new $ZodCheck({ + check: "custom" + // ...util.normalizeParams(params), + }); + ch._zod.check = fn; + return ch; +} +__name(check, "check"); +function custom(fn, _params) { + return _custom(ZodCustom, fn ?? (() => true), _params); +} +__name(custom, "custom"); +function refine(fn, _params = {}) { + return _refine(ZodCustom, fn, _params); +} +__name(refine, "refine"); +function superRefine(fn, params) { + return _superRefine(fn, params); +} +__name(superRefine, "superRefine"); +var describe2 = describe; +var meta2 = meta; +var ZodInstanceOf = /* @__PURE__ */ $constructor("ZodInstanceOf", (inst, def) => { + ZodCustom.init(inst, def); +}, { + properties(shape, params) { + return this.check(_properties(shape, params)); + } +}); +function _instanceof(cls, params = {}) { + const inst = new ZodInstanceOf({ + type: "custom", + check: "custom", + fn: /* @__PURE__ */ __name((data) => data instanceof cls, "fn"), + abort: true, + ...util_exports.normalizeParams(params) + }); + inst._zod.bag.Class = cls; + inst._zod.check = (payload) => { + if (!(payload.value instanceof cls)) { + payload.issues.push({ + code: "invalid_type", + expected: cls.name, + input: payload.value, + inst, + path: [...inst._zod.def.path ?? []] + }); + } + }; + return inst; +} +__name(_instanceof, "_instanceof"); +var stringbool = /* @__PURE__ */ __name((...args) => _stringbool({ + Codec: ZodCodec, + Boolean: ZodBoolean, + String: ZodString +}, ...args), "stringbool"); +function json(params) { + const jsonSchema = lazy(() => { + return union([string2(params), number2(), boolean2(), _null3(), array(jsonSchema), record(string2(), jsonSchema)]); + }); + return jsonSchema; +} +__name(json, "json"); +function preprocess(fn, schema2) { + return new ZodPreprocess({ + type: "pipe", + in: transform(fn), + out: schema2 + }); +} +__name(preprocess, "preprocess"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/compat.js +var ZodIssueCode = { + invalid_type: "invalid_type", + too_big: "too_big", + too_small: "too_small", + invalid_format: "invalid_format", + not_multiple_of: "not_multiple_of", + unrecognized_keys: "unrecognized_keys", + invalid_union: "invalid_union", + invalid_key: "invalid_key", + invalid_element: "invalid_element", + invalid_value: "invalid_value", + custom: "custom" +}; +function setErrorMap(map2) { + config({ + customError: map2 + }); +} +__name(setErrorMap, "setErrorMap"); +function getErrorMap() { + return config().customError; +} +__name(getErrorMap, "getErrorMap"); +var ZodFirstPartyTypeKind; +/* @__PURE__ */ (function(ZodFirstPartyTypeKind2) { +})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/iso.js +var iso_exports = {}; +__export(iso_exports, { + ZodISODate: () => ZodISODate, + ZodISODateTime: () => ZodISODateTime, + ZodISODuration: () => ZodISODuration, + ZodISOTime: () => ZodISOTime, + date: () => date3, + datetime: () => datetime2, + duration: () => duration2, + time: () => time2 +}); +function datetime2(params) { + return _isoDateTime(ZodISODateTime, params); +} +__name(datetime2, "datetime"); +function date3(params) { + return _isoDate(ZodISODate, params); +} +__name(date3, "date"); +function time2(params) { + return _isoTime(ZodISOTime, params); +} +__name(time2, "time"); +function duration2(params) { + return _isoDuration(ZodISODuration, params); +} +__name(duration2, "duration"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/from-json-schema.js +var z = { + ...schemas_exports2, + ...checks_exports2, + iso: iso_exports +}; +var RECOGNIZED_KEYS = /* @__PURE__ */ new Set([ + // Schema identification + "$schema", + "$ref", + "$defs", + "definitions", + // Core schema keywords + "$id", + "id", + "$comment", + "$anchor", + "$vocabulary", + "$dynamicRef", + "$dynamicAnchor", + // Type + "type", + "enum", + "const", + // Composition + "anyOf", + "oneOf", + "allOf", + "not", + // Object + "properties", + "required", + "additionalProperties", + "patternProperties", + "propertyNames", + "minProperties", + "maxProperties", + // Array + "items", + "prefixItems", + "additionalItems", + "minItems", + "maxItems", + "uniqueItems", + "contains", + "minContains", + "maxContains", + // String + "minLength", + "maxLength", + "pattern", + "format", + // Number + "minimum", + "maximum", + "exclusiveMinimum", + "exclusiveMaximum", + "multipleOf", + // Already handled metadata + "description", + "default", + // Content + "contentEncoding", + "contentMediaType", + "contentSchema", + // Unsupported (error-throwing) + "unevaluatedItems", + "unevaluatedProperties", + "if", + "then", + "else", + "dependentSchemas", + "dependentRequired", + // OpenAPI + "nullable", + "readOnly" +]); +function detectVersion(schema2, defaultTarget) { + const $schema = schema2.$schema; + if ($schema === "https://json-schema.org/draft/2020-12/schema") { + return "draft-2020-12"; + } + if ($schema === "http://json-schema.org/draft-07/schema#") { + return "draft-7"; + } + if ($schema === "http://json-schema.org/draft-04/schema#") { + return "draft-4"; + } + return defaultTarget ?? "draft-2020-12"; +} +__name(detectVersion, "detectVersion"); +function applyMinItems(items, minItems) { + return items.map((item, index) => index < minItems ? item : item.optional()); +} +__name(applyMinItems, "applyMinItems"); +function decodeJSONPointerSegment(segment) { + return segment.replace(/~1/g, "/").replace(/~0/g, "~"); +} +__name(decodeJSONPointerSegment, "decodeJSONPointerSegment"); +function resolveRef(ref, ctx) { + if (!ref.startsWith("#")) { + throw new Error("External $ref is not supported, only local refs (#/...) are allowed"); + } + const path2 = ref.slice(1).split("/").filter(Boolean); + if (path2.length === 0) { + return ctx.rootSchema; + } + const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions"; + if (path2[0] === defsKey) { + const key = path2[1] === void 0 ? void 0 : decodeJSONPointerSegment(path2[1]); + if (!key || !ctx.defs[key]) { + throw new Error(`Reference not found: ${ref}`); + } + return ctx.defs[key]; + } + throw new Error(`Reference not found: ${ref}`); +} +__name(resolveRef, "resolveRef"); +function checkObjectGuards(objectSchema, guards) { + const guard = z.transform((value) => value).check((payload) => { + const value = payload.value; + if (typeof value !== "object" || value === null || Array.isArray(value)) + return; + const keys = Object.getOwnPropertyNames(value); + if (guards.minProperties !== void 0 && keys.length < guards.minProperties) { + payload.issues.push({ + origin: "object", + code: "too_small", + minimum: guards.minProperties, + inclusive: true, + message: `Too small: expected object to have >=${guards.minProperties} properties`, + input: value, + inst: objectSchema, + continue: true + }); + } + if (guards.maxProperties !== void 0 && keys.length > guards.maxProperties) { + payload.issues.push({ + origin: "object", + code: "too_big", + maximum: guards.maxProperties, + inclusive: true, + message: `Too big: expected object to have <=${guards.maxProperties} properties`, + input: value, + inst: objectSchema, + continue: true + }); + } + if (guards.keySchema) { + for (const key of keys) { + const result = guards.keySchema.safeParse(key); + if (result.success) + continue; + payload.issues.push({ + code: "invalid_key", + origin: "record", + issues: result.error.issues, + input: key, + path: [key], + continue: true + }); + } + } + }); + return guard.pipe(objectSchema); +} +__name(checkObjectGuards, "checkObjectGuards"); +function canonicalKey(value, seen) { + if (value === null) + return "z"; + const type = typeof value; + if (type !== "object") { + if (type === "number" && Number.isNaN(value)) + return null; + const raw4 = String(value); + return `${type[0]}${raw4.length}:${raw4}`; + } + if (seen.has(value)) + return null; + seen.add(value); + try { + if (Array.isArray(value)) { + const parts2 = []; + for (const item of value) { + const key = canonicalKey(item, seen); + if (key === null) + return null; + parts2.push(key); + } + return `a${parts2.length}:[${parts2.join(",")}]`; + } + const keys = Object.keys(value).sort(); + const parts = []; + for (const k5 of keys) { + const key = canonicalKey(value[k5], seen); + if (key === null) + return null; + parts.push(`${k5.length}:${k5}=${key}`); + } + return `o${parts.length}:{${parts.join(",")}}`; + } finally { + seen.delete(value); + } +} +__name(canonicalKey, "canonicalKey"); +var SCHEMA_KEYWORDS = /* @__PURE__ */ new Set([ + "items", + "prefixItems", + "additionalItems", + "additionalProperties", + "contains", + "propertyNames", + "not", + "if", + "then", + "else", + "allOf", + "anyOf", + "oneOf", + "unevaluatedItems", + "unevaluatedProperties", + "contentSchema" +]); +var SCHEMA_MAP_KEYWORDS = /* @__PURE__ */ new Set([ + "properties", + "patternProperties", + "dependentSchemas", + "dependencies", + "$defs", + "definitions" +]); +function containsRef(value) { + if (typeof value !== "object" || value === null) + return false; + if (Array.isArray(value)) + return value.some(containsRef); + if (typeof value.$ref === "string") + return true; + return Object.entries(value).some(([key, sub]) => { + if (SCHEMA_KEYWORDS.has(key)) + return containsRef(sub); + if (!SCHEMA_MAP_KEYWORDS.has(key) || typeof sub !== "object" || sub === null) + return false; + return Object.values(sub).some(containsRef); + }); +} +__name(containsRef, "containsRef"); +function plural(n3) { + return n3 === 1 ? "element" : "elements"; +} +__name(plural, "plural"); +function checkArrayGuards(arraySchema, guards) { + const guard = z.transform((value) => value).check((payload) => { + const items = payload.value; + if (!Array.isArray(items)) + return; + if (guards.uniqueItems === true) { + const firstSeen = /* @__PURE__ */ new Map(); + for (let i5 = 0; i5 < items.length; i5++) { + const key = canonicalKey(items[i5], /* @__PURE__ */ new Set()); + if (key === null) + continue; + const first = firstSeen.get(key); + if (first === void 0) { + firstSeen.set(key, i5); + continue; + } + payload.issues.push({ + code: "custom", + message: `Array items must be unique: element at index ${i5} duplicates the one at index ${first}`, + input: items, + path: [i5], + continue: true + }); + } + } + if (guards.containsSchema) { + const minContains = guards.minContains ?? 1; + const ceiling = guards.maxContains !== void 0 ? guards.maxContains + 1 : Number.POSITIVE_INFINITY; + let matches = 0; + for (const item of items) { + if (guards.containsSchema.safeParse(item).success && ++matches >= ceiling) + break; + } + if (matches < minContains) { + payload.issues.push({ + code: "custom", + message: `Array must contain at least ${minContains} matching ${plural(minContains)}; found ${matches}`, + input: items, + continue: true + }); + } + if (guards.maxContains !== void 0 && matches > guards.maxContains) { + payload.issues.push({ + code: "custom", + message: `Array must contain at most ${guards.maxContains} matching ${plural(guards.maxContains)}`, + input: items, + continue: true + }); + } + } + }); + return guard.pipe(arraySchema); +} +__name(checkArrayGuards, "checkArrayGuards"); +function getTupleRest(restSchema, ctx) { + if (restSchema === false) { + return void 0; + } + if (restSchema === void 0 || restSchema === true) { + return z.any(); + } + return convertSchema(restSchema, ctx); +} +__name(getTupleRest, "getTupleRest"); +var fullTime = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/; +function convertBaseSchema(schema2, ctx) { + if (schema2.not !== void 0) { + if (typeof schema2.not === "object" && Object.keys(schema2.not).length === 0) { + return z.never(); + } + throw new Error("not is not supported in Zod (except { not: {} } for never)"); + } + if (schema2.unevaluatedItems !== void 0) { + throw new Error("unevaluatedItems is not supported"); + } + if (schema2.unevaluatedProperties !== void 0) { + throw new Error("unevaluatedProperties is not supported"); + } + if (schema2.if !== void 0 || schema2.then !== void 0 || schema2.else !== void 0) { + throw new Error("Conditional schemas (if/then/else) are not supported"); + } + if (schema2.dependentSchemas !== void 0 || schema2.dependentRequired !== void 0) { + throw new Error("dependentSchemas and dependentRequired are not supported"); + } + if (schema2.$ref) { + const refPath = schema2.$ref; + if (ctx.refs.has(refPath)) { + return ctx.refs.get(refPath); + } + if (ctx.processing.has(refPath)) { + return z.lazy(() => { + if (!ctx.refs.has(refPath)) { + throw new Error(`Circular reference not resolved: ${refPath}`); + } + return ctx.refs.get(refPath); + }); + } + ctx.processing.add(refPath); + const resolved = resolveRef(refPath, ctx); + const zodSchema2 = convertSchema(resolved, ctx); + ctx.refs.set(refPath, zodSchema2); + ctx.processing.delete(refPath); + return zodSchema2; + } + if (schema2.enum !== void 0) { + const enumValues = schema2.enum; + if (ctx.version === "openapi-3.0" && schema2.nullable === true && enumValues.length === 1 && enumValues[0] === null) { + return z.null(); + } + if (enumValues.length === 0) { + return z.never(); + } + if (enumValues.length === 1) { + return z.literal(enumValues[0]); + } + if (enumValues.every((v) => typeof v === "string")) { + return z.enum(enumValues); + } + const literalSchemas = enumValues.map((v) => z.literal(v)); + if (literalSchemas.length < 2) { + return literalSchemas[0]; + } + return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]); + } + if (schema2.const !== void 0) { + return z.literal(schema2.const); + } + const type = schema2.type; + if (Array.isArray(type)) { + const typeSchemas = type.map((t) => { + const typeSchema = { ...schema2, type: t }; + return convertBaseSchema(typeSchema, ctx); + }); + if (typeSchemas.length === 0) { + return z.never(); + } + if (typeSchemas.length === 1) { + return typeSchemas[0]; + } + return z.union(typeSchemas); + } + if (!type) { + return z.any(); + } + let zodSchema; + switch (type) { + case "string": { + let stringSchema = z.string(); + if (schema2.format) { + const format = schema2.format; + if (format === "email") { + stringSchema = stringSchema.check(z.email()); + } else if (format === "uri" || format === "uri-reference") { + stringSchema = stringSchema.check(z.url()); + } else if (format === "uuid" || format === "guid") { + stringSchema = stringSchema.check(z.uuid()); + } else if (format === "date-time") { + stringSchema = stringSchema.check(z.iso.datetime({ offset: true })); + } else if (format === "date") { + stringSchema = stringSchema.check(z.iso.date()); + } else if (format === "time") { + stringSchema = stringSchema.check(z.regex(fullTime)); + } else if (format === "duration") { + stringSchema = stringSchema.check(z.iso.duration()); + } else if (format === "hostname") { + stringSchema = stringSchema.check(z.hostname()); + } else if (format === "ipv4") { + stringSchema = stringSchema.check(z.ipv4()); + } else if (format === "ipv6") { + stringSchema = stringSchema.check(z.ipv6()); + } else if (format === "mac") { + stringSchema = stringSchema.check(z.mac()); + } else if (format === "cidr") { + stringSchema = stringSchema.check(z.cidrv4()); + } else if (format === "cidr-v6") { + stringSchema = stringSchema.check(z.cidrv6()); + } else if (format === "base64") { + stringSchema = stringSchema.check(z.base64()); + } else if (format === "base64url") { + stringSchema = stringSchema.check(z.base64url()); + } else if (format === "e164") { + stringSchema = stringSchema.check(z.e164()); + } else if (format === "credit_card") { + stringSchema = stringSchema.check(z.creditCard()); + } else if (format === "iban") { + stringSchema = stringSchema.check(z.iban()); + } else if (format === "jwt") { + stringSchema = stringSchema.check(z.jwt()); + } else if (format === "emoji") { + stringSchema = stringSchema.check(z.emoji()); + } else if (format === "nanoid") { + stringSchema = stringSchema.check(z.nanoid()); + } else if (format === "cuid") { + stringSchema = stringSchema.check(z.cuid()); + } else if (format === "cuid2") { + stringSchema = stringSchema.check(z.cuid2()); + } else if (format === "ulid") { + stringSchema = stringSchema.check(z.ulid()); + } else if (format === "xid") { + stringSchema = stringSchema.check(z.xid()); + } else if (format === "ksuid") { + stringSchema = stringSchema.check(z.ksuid()); + } + } + if (typeof schema2.minLength === "number") { + stringSchema = stringSchema.min(schema2.minLength); + } + if (typeof schema2.maxLength === "number") { + stringSchema = stringSchema.max(schema2.maxLength); + } + if (schema2.pattern) { + stringSchema = stringSchema.regex(new RegExp(schema2.pattern)); + } + zodSchema = stringSchema; + break; + } + case "number": + case "integer": { + let numberSchema = type === "integer" ? z.number().int() : z.number(); + if (typeof schema2.minimum === "number" && schema2.exclusiveMinimum !== true) { + numberSchema = numberSchema.min(schema2.minimum); + } + if (typeof schema2.maximum === "number" && schema2.exclusiveMaximum !== true) { + numberSchema = numberSchema.max(schema2.maximum); + } + if (typeof schema2.exclusiveMinimum === "number") { + numberSchema = numberSchema.gt(schema2.exclusiveMinimum); + } else if (schema2.exclusiveMinimum === true && typeof schema2.minimum === "number") { + numberSchema = numberSchema.gt(schema2.minimum); + } + if (typeof schema2.exclusiveMaximum === "number") { + numberSchema = numberSchema.lt(schema2.exclusiveMaximum); + } else if (schema2.exclusiveMaximum === true && typeof schema2.maximum === "number") { + numberSchema = numberSchema.lt(schema2.maximum); + } + if (typeof schema2.multipleOf === "number") { + numberSchema = numberSchema.multipleOf(schema2.multipleOf); + } + zodSchema = numberSchema; + break; + } + case "boolean": { + zodSchema = z.boolean(); + break; + } + case "null": { + zodSchema = z.null(); + break; + } + case "object": { + const shape = {}; + const properties = schema2.properties || {}; + const requiredSet = new Set(schema2.required || []); + const additionalSchema = typeof schema2.additionalProperties === "object" ? convertSchema(schema2.additionalProperties, ctx) : void 0; + for (const [key, propSchema] of Object.entries(properties)) { + const propZodSchema = convertSchema(propSchema, ctx); + assignProp(shape, key, requiredSet.has(key) ? propZodSchema : propZodSchema.optional()); + } + if (schema2.patternProperties) { + const patternProps = schema2.patternProperties; + const patternKeys = Object.keys(patternProps); + const looseRecords = []; + for (const pattern of patternKeys) { + const patternValue = convertSchema(patternProps[pattern], ctx); + const keySchema = z.string().regex(new RegExp(pattern)); + looseRecords.push(z.looseRecord(keySchema, patternValue)); + } + const schemasToIntersect = []; + if (Object.keys(shape).length > 0) { + schemasToIntersect.push(z.object(shape).passthrough()); + } + schemasToIntersect.push(...looseRecords); + if (schemasToIntersect.length === 0) { + zodSchema = z.object({}).passthrough(); + } else if (schemasToIntersect.length === 1) { + zodSchema = schemasToIntersect[0]; + } else { + let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]); + for (let i5 = 2; i5 < schemasToIntersect.length; i5++) { + result = z.intersection(result, schemasToIntersect[i5]); + } + zodSchema = result; + } + if (schema2.additionalProperties === false) { + const propertyKeys = Object.keys(shape); + const patterns = patternKeys.map((p3) => new RegExp(p3)); + const basePatternSchema = zodSchema; + zodSchema = zodSchema.check((payload) => { + if (!isPlainObject(payload.value)) + return; + const unrecognized = []; + for (const key of Object.keys(payload.value)) { + if (propertyKeys.includes(key)) + continue; + if (patterns.some((regex) => regex.test(key))) + continue; + unrecognized.push(key); + } + if (unrecognized.length) { + payload.issues.push({ + code: "unrecognized_keys", + keys: unrecognized, + input: payload.value, + inst: basePatternSchema + }); + } + }); + } + } else { + const objectSchema = z.object(shape); + if (schema2.additionalProperties === false) { + zodSchema = objectSchema.strict(); + } else if (additionalSchema) { + zodSchema = objectSchema.catchall(additionalSchema); + } else { + zodSchema = objectSchema.passthrough(); + } + } + const hasKeyGuard = schema2.propertyNames !== void 0 && schema2.propertyNames !== true; + const minProperties = typeof schema2.minProperties === "number" ? schema2.minProperties : void 0; + const maxProperties = typeof schema2.maxProperties === "number" ? schema2.maxProperties : void 0; + if (hasKeyGuard || minProperties !== void 0 || maxProperties !== void 0) { + let keySchema; + if (hasKeyGuard) { + const keyJSONSchema = typeof schema2.propertyNames === "object" && schema2.propertyNames.type === void 0 ? { type: "string", ...schema2.propertyNames } : schema2.propertyNames; + keySchema = convertSchema(keyJSONSchema, ctx); + } + zodSchema = checkObjectGuards(zodSchema, { keySchema, minProperties, maxProperties }); + } + break; + } + case "array": { + const prefixItems = schema2.prefixItems; + const items = schema2.items; + if (prefixItems && Array.isArray(prefixItems)) { + const minItems = typeof schema2.minItems === "number" ? schema2.minItems : 0; + const tupleItems = prefixItems.map((item) => convertSchema(item, ctx)); + const positionalItems = applyMinItems(tupleItems, minItems); + const rest = !Array.isArray(items) ? getTupleRest(items, ctx) : void 0; + const tupleSchema = z.tuple(positionalItems); + zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema; + if (typeof schema2.minItems === "number") { + zodSchema = zodSchema.check(z.minLength(schema2.minItems)); + } + if (typeof schema2.maxItems === "number") { + zodSchema = zodSchema.check(z.maxLength(schema2.maxItems)); + } + } else if (Array.isArray(items)) { + const minItems = typeof schema2.minItems === "number" ? schema2.minItems : 0; + const tupleItems = items.map((item) => convertSchema(item, ctx)); + const positionalItems = applyMinItems(tupleItems, minItems); + const rest = getTupleRest(schema2.additionalItems, ctx); + const tupleSchema = z.tuple(positionalItems); + zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema; + if (typeof schema2.minItems === "number") { + zodSchema = zodSchema.check(z.minLength(schema2.minItems)); + } + if (typeof schema2.maxItems === "number") { + zodSchema = zodSchema.check(z.maxLength(schema2.maxItems)); + } + } else if (items !== void 0) { + const element = convertSchema(items, ctx); + let arraySchema = z.array(element); + if (typeof schema2.minItems === "number") { + arraySchema = arraySchema.min(schema2.minItems); + } + if (typeof schema2.maxItems === "number") { + arraySchema = arraySchema.max(schema2.maxItems); + } + zodSchema = arraySchema; + } else { + zodSchema = z.array(z.any()); + } + if (schema2.uniqueItems === true || schema2.contains !== void 0) { + zodSchema = checkArrayGuards(zodSchema, { + uniqueItems: schema2.uniqueItems === true, + containsSchema: schema2.contains !== void 0 ? convertSchema(schema2.contains, ctx) : void 0, + minContains: typeof schema2.minContains === "number" ? schema2.minContains : void 0, + maxContains: typeof schema2.maxContains === "number" ? schema2.maxContains : void 0 + }); + } + break; + } + default: + throw new Error(`Unsupported type: ${type}`); + } + return zodSchema; +} +__name(convertBaseSchema, "convertBaseSchema"); +function convertSchema(schema2, ctx) { + if (typeof schema2 === "boolean") { + return schema2 ? z.any() : z.never(); + } + let baseSchema = convertBaseSchema(schema2, ctx); + const hasExplicitType = schema2.type || schema2.enum !== void 0 || schema2.const !== void 0; + if (schema2.anyOf && Array.isArray(schema2.anyOf)) { + const options = schema2.anyOf.map((s2) => convertSchema(s2, ctx)); + const anyOfUnion = z.union(options); + baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion; + } + if (schema2.oneOf && Array.isArray(schema2.oneOf)) { + const options = schema2.oneOf.map((s2) => convertSchema(s2, ctx)); + const oneOfUnion = z.xor(options); + baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion; + } + if (schema2.allOf && Array.isArray(schema2.allOf)) { + if (schema2.allOf.length === 0) { + baseSchema = hasExplicitType ? baseSchema : z.any(); + } else { + let result = hasExplicitType ? baseSchema : convertSchema(schema2.allOf[0], ctx); + const startIdx = hasExplicitType ? 0 : 1; + for (let i5 = startIdx; i5 < schema2.allOf.length; i5++) { + result = z.intersection(result, convertSchema(schema2.allOf[i5], ctx)); + } + baseSchema = result; + } + } + if (schema2.nullable === true && ctx.version === "openapi-3.0") { + baseSchema = z.nullable(baseSchema); + } + if (schema2.readOnly === true) { + baseSchema = z.readonly(baseSchema); + } + if (schema2.default !== void 0) { + baseSchema = baseSchema.default(schema2.default); + } + const extraMeta = {}; + const coreMetadataKeys = ["$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor"]; + for (const key of coreMetadataKeys) { + if (key in schema2) { + extraMeta[key] = schema2[key]; + } + } + const contentMetadataKeys = ["contentEncoding", "contentMediaType", "contentSchema"]; + for (const key of contentMetadataKeys) { + if (key in schema2) { + extraMeta[key] = schema2[key]; + } + } + if (schema2.type === "object" && schema2.$ref === void 0) { + if (schema2.propertyNames !== void 0 && !containsRef(schema2.propertyNames)) { + extraMeta.propertyNames = schema2.propertyNames; + } + for (const key of ["minProperties", "maxProperties"]) { + if (schema2[key] !== void 0) + extraMeta[key] = schema2[key]; + } + } + if (schema2.type === "array" && schema2.$ref === void 0) { + if (schema2.contains !== void 0 && !containsRef(schema2.contains)) { + extraMeta.contains = schema2.contains; + } + for (const key of ["uniqueItems", "minContains", "maxContains"]) { + if (schema2[key] !== void 0) + extraMeta[key] = schema2[key]; + } + } + for (const key of Object.keys(schema2)) { + if (!RECOGNIZED_KEYS.has(key)) { + assignProp(extraMeta, key, schema2[key]); + } + } + if (Object.keys(extraMeta).length > 0) { + ctx.registry.add(baseSchema, extraMeta); + } + if (schema2.description) { + baseSchema = baseSchema.describe(schema2.description); + } + return baseSchema; +} +__name(convertSchema, "convertSchema"); +function fromJSONSchema(schema2, params) { + if (typeof schema2 === "boolean") { + return schema2 ? z.any() : z.never(); + } + let normalized; + try { + normalized = JSON.parse(JSON.stringify(schema2)); + } catch { + throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas"); + } + const version2 = detectVersion(normalized, params?.defaultTarget); + const defs = normalized.$defs || normalized.definitions || {}; + const ctx = { + version: version2, + defs, + refs: /* @__PURE__ */ new Map(), + processing: /* @__PURE__ */ new Set(), + rootSchema: normalized, + registry: params?.registry ?? globalRegistry + }; + return convertSchema(normalized, ctx); +} +__name(fromJSONSchema, "fromJSONSchema"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/visit.js +var RESOLVING = /* @__PURE__ */ Symbol("z.visit/resolving"); +function visit(schema2, fnOrHandlers) { + const fn = typeof fnOrHandlers === "function" ? fnOrHandlers : (node2, rewritten) => { + const h5 = fnOrHandlers[node2._zod.def.type]; + return h5 ? h5(node2, rewritten) : node2; + }; + const cache5 = /* @__PURE__ */ new Map(); + function run(s2) { + const cached2 = cache5.get(s2); + if (cached2 === RESOLVING) { + return new $ZodLazy({ + type: "lazy", + getter: /* @__PURE__ */ __name(() => cache5.get(s2), "getter") + }); + } + if (cached2 !== void 0) + return cached2; + cache5.set(s2, RESOLVING); + const inner = mapInner(s2); + const mapped = fn(inner, inner !== s2); + cache5.set(s2, mapped); + return mapped; + } + __name(run, "run"); + function mapInner(s2) { + const def = s2._zod.def; + const kind = def.type; + switch (kind) { + case "object": { + const oldShape = def.shape; + const keys = Object.keys(oldShape); + let changed = false; + const newShape = {}; + for (const k5 of keys) { + const mapped = run(oldShape[k5]); + if (mapped !== oldShape[k5]) + changed = true; + newShape[k5] = mapped; + } + let newCatchall = def.catchall; + if (def.catchall) { + newCatchall = run(def.catchall); + if (newCatchall !== def.catchall) + changed = true; + } + return changed ? clone(s2, { ...def, shape: newShape, catchall: newCatchall }) : s2; + } + case "array": { + const mapped = run(def.element); + return mapped === def.element ? s2 : clone(s2, { ...def, element: mapped }); + } + case "tuple": { + const oldItems = def.items; + let changed = false; + const newItems = []; + for (const item of oldItems) { + const mapped = run(item); + if (mapped !== item) + changed = true; + newItems.push(mapped); + } + let newRest = def.rest; + if (def.rest) { + newRest = run(def.rest); + if (newRest !== def.rest) + changed = true; + } + return changed ? clone(s2, { ...def, items: newItems, rest: newRest }) : s2; + } + case "record": + case "map": { + const newKey = run(def.keyType); + const newVal = run(def.valueType); + return newKey === def.keyType && newVal === def.valueType ? s2 : clone(s2, { ...def, keyType: newKey, valueType: newVal }); + } + case "set": { + const newVal = run(def.valueType); + return newVal === def.valueType ? s2 : clone(s2, { ...def, valueType: newVal }); + } + case "union": { + const oldOptions = def.options; + let changed = false; + const newOptions = []; + for (const opt of oldOptions) { + const mapped = run(opt); + if (mapped !== opt) + changed = true; + newOptions.push(mapped); + } + return changed ? clone(s2, { ...def, options: newOptions }) : s2; + } + case "intersection": { + const newLeft = run(def.left); + const newRight = run(def.right); + return newLeft === def.left && newRight === def.right ? s2 : clone(s2, { ...def, left: newLeft, right: newRight }); + } + case "optional": + case "nullable": + case "default": + case "prefault": + case "catch": + case "readonly": + case "nonoptional": + case "promise": + case "success": { + const newInner = run(def.innerType); + return newInner === def.innerType ? s2 : clone(s2, { ...def, innerType: newInner }); + } + case "pipe": { + const newIn = run(def.in); + const newOut = run(def.out); + return newIn === def.in && newOut === def.out ? s2 : clone(s2, { ...def, in: newIn, out: newOut }); + } + case "function": { + const newInput = run(def.input); + const newOutput = run(def.output); + return newInput === def.input && newOutput === def.output ? s2 : clone(s2, { ...def, input: newInput, output: newOutput }); + } + case "lazy": { + const original = def.getter; + const { _cachedInner, ...rest } = def; + return clone(s2, { ...rest, getter: /* @__PURE__ */ __name(() => run(original()), "getter") }); + } + // A leaf by choice: `parts` are regex fragments, not data positions. + case "template_literal": + // Leaves. + case "string": + case "number": + case "int": + case "boolean": + case "bigint": + case "symbol": + case "undefined": + case "null": + case "void": + case "never": + case "any": + case "unknown": + case "date": + case "nan": + case "enum": + case "literal": + case "file": + case "transform": + case "custom": + return s2; + default: { + kind; + return s2; + } + } + } + __name(mapInner, "mapInner"); + return run(schema2); +} +__name(visit, "visit"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/deep-partial.js +function deepPartial(schema2) { + return visit(schema2, { + object: /* @__PURE__ */ __name((s2) => s2.partial(), "object"), + // Every partialed option now admits `undefined`, which the constructor rejects as a duplicate. + union: /* @__PURE__ */ __name((s2) => { + const def = s2._zod.def; + return def.discriminator === void 0 ? s2 : union(def.options); + }, "union") + }); +} +__name(deepPartial, "deepPartial"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/in-out.js +function withChecks(side, checks) { + if (!checks?.length) + return side; + const def = side._zod.def; + return clone(side, mergeDefs(def, { checks: [...def.checks ?? [], ...checks] }), { parent: true }); +} +__name(withChecks, "withChecks"); +function outSide(def) { + return withChecks(def.out, def.checks); +} +__name(outSide, "outSide"); +function inSide(def) { + return def.in._zod.traits.has("$ZodTransform") ? outSide(def) : def.in; +} +__name(inSide, "inSide"); +function input(schema2) { + return visit(schema2, { + pipe: /* @__PURE__ */ __name((s2) => inSide(s2._zod.def), "pipe"), + // A default value belongs to the output side, so a rewritten inner type leaves it stranded. `.default()` widens the declared input type with `undefined`, and `optional` is what carries that across. + default: /* @__PURE__ */ __name((s2, rewritten) => rewritten ? optional(s2._zod.def.innerType) : s2, "default"), + // A catch value is output-side too, but `.catch()` leaves the declared input type alone, so the inner schema stands on its own. + catch: /* @__PURE__ */ __name((s2, rewritten) => rewritten ? s2._zod.def.innerType : s2, "catch") + }); +} +__name(input, "input"); +function output(schema2) { + return visit(schema2, { + pipe: /* @__PURE__ */ __name((s2) => outSide(s2._zod.def), "pipe"), + // A prefault value is fed through the schema, which makes it input-side, so a rewritten inner type leaves it stranded. + prefault: /* @__PURE__ */ __name((s2, rewritten) => rewritten ? s2._zod.def.innerType : s2, "prefault") + }); +} +__name(output, "output"); + +// ../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/coerce.js +var coerce_exports = {}; +__export(coerce_exports, { + bigint: () => bigint3, + boolean: () => boolean3, + date: () => date4, + number: () => number3, + string: () => string3 +}); +function string3(params) { + return _coercedString(ZodString, params); +} +__name(string3, "string"); +function number3(params) { + return _coercedNumber(ZodNumber, params); +} +__name(number3, "number"); +function boolean3(params) { + return _coercedBoolean(ZodBoolean, params); +} +__name(boolean3, "boolean"); +function bigint3(params) { + return _coercedBigint(ZodBigInt, params); +} +__name(bigint3, "bigint"); +function date4(params) { + return _coercedDate(ZodDate, params); +} +__name(date4, "date"); + +// dist/config/env.js +if (existsSync(".env")) + process.loadEnvFile(".env"); +var bool = /* @__PURE__ */ __name((fallback2) => external_exports.enum(["true", "false", "1", "0"]).optional().transform((v) => v === void 0 ? fallback2 : v === "true" || v === "1"), "bool"); +var schema = external_exports.object({ + NODE_ENV: external_exports.enum(["development", "production", "test"]).default("development"), + PORT: external_exports.coerce.number().int().default(4e3), + CORS_ORIGINS: external_exports.string().default(""), + TRUST_PROXY: external_exports.coerce.number().int().min(0).default(1), + DATABASE_URL: external_exports.string().min(1), + JWT_SECRET: external_exports.string().min(32, "JWT_SECRET must be at least 32 characters"), + JWT_ACCESS_TTL: external_exports.string().default("15m"), + REFRESH_TTL_DAYS: external_exports.coerce.number().int().positive().default(30), + COOKIE_SECURE: bool(true), + S3_ENDPOINT: external_exports.string().optional(), + S3_REGION: external_exports.string().default("us-east-1"), + S3_BUCKET: external_exports.string().default("imen-media"), + S3_ACCESS_KEY: external_exports.string().default(""), + S3_SECRET_KEY: external_exports.string().default(""), + S3_FORCE_PATH_STYLE: bool(true), + S3_ENSURE_BUCKET: bool(false), + MEDIA_PUBLIC_URL: external_exports.string().default("/media").transform((v) => v.replace(/\/+$/, "")), + WEB_REVALIDATE_URL: external_exports.string().optional(), + REVALIDATE_SECRET: external_exports.string().optional(), + ADMIN_PHONE: external_exports.string().optional(), + ADMIN_PASSWORD: external_exports.string().optional(), + ADMIN_NAME: external_exports.string().default("\u0645\u062F\u06CC\u0631 \u0633\u0627\u06CC\u062A") +}); +var parsed = schema.safeParse(process.env); +if (!parsed.success) { + console.error("Invalid environment variables:\n" + external_exports.prettifyError(parsed.error)); + process.exit(1); +} +var env = parsed.data; +var isProd = env.NODE_ENV === "production"; + +// ../../packages/shared/dist/common.js +var req = /* @__PURE__ */ __name((max = 300) => external_exports.string().trim().min(1, "\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A").max(max), "req"); +var text = /* @__PURE__ */ __name((max = 300) => external_exports.string().trim().max(max).default(""), "text"); +var idSchema = external_exports.coerce.number().int().positive(); +var slugSchema = external_exports.string().trim().min(1, "\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A").max(80).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "\u0641\u0642\u0637 \u062D\u0631\u0648\u0641 \u06A9\u0648\u0686\u06A9 \u0627\u0646\u06AF\u0644\u06CC\u0633\u06CC\u060C \u0639\u062F\u062F \u0648 \u062E\u0637 \u062A\u06CC\u0631\u0647 (\u0645\u062B\u0644\u0627\u064B safety-shoes)"); +var iconNameSchema = external_exports.string().trim().min(1).max(80); +var imageRefSchema = external_exports.object({ + url: req(500), + alt: text(200) +}); +var linkSchema = external_exports.object({ + label: req(60), + href: req(300) +}); +var toIssues = /* @__PURE__ */ __name((error62) => error62.issues.map((i5) => ({ path: i5.path.map(String).join("."), message: i5.message })), "toIssues"); + +// ../../packages/shared/dist/sections.js +var WEEK_DAYS = [ + "Saturday", + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday" +]; +var SOCIAL_TYPES = [ + "website", + "telegram", + "instagram", + "linkedin", + "whatsapp", + "bale", + "eitaa", + "aparat", + "youtube", + "email", + "phone" +]; +var iconLabel = external_exports.object({ icon: iconNameSchema, label: req(80) }); +var iconCard = external_exports.object({ icon: iconNameSchema, title: req(80), desc: text(300) }); +var sectionHeadSchema = external_exports.object({ + tag: req(80), + title: req(200), + /** optional accented last line of the title */ + highlight: text(120), + desc: text(500) +}); +var settingsSectionSchema = external_exports.object({ + name: req(80), + nameEn: req(120), + /** default and og:title */ + title: req(120), + /** default meta description */ + description: req(400), + /** machine-readable phone for tel: links and schema.org, e.g. +98-21-91008800 */ + phone: req(30), + phoneDisplay: req(40), + email: external_exports.email("\u0627\u06CC\u0645\u06CC\u0644 \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A"), + address: external_exports.object({ + street: req(200), + locality: req(80), + country: external_exports.string().trim().length(2).default("IR") + }), + /** human-readable working hours, e.g. «شنبه تا پنجشنبه — ۸:۰۰ تا ۱۷:۰۰» */ + workingHours: req(120), + openingHours: external_exports.object({ + days: external_exports.array(external_exports.enum(WEEK_DAYS)).max(7), + opens: external_exports.string().regex(/^\d{2}:\d{2}$/, "\u0642\u0627\u0644\u0628 \u0633\u0627\u0639\u062A \u0628\u0627\u06CC\u062F HH:MM \u0628\u0627\u0634\u062F"), + closes: external_exports.string().regex(/^\d{2}:\d{2}$/, "\u0642\u0627\u0644\u0628 \u0633\u0627\u0639\u062A \u0628\u0627\u06CC\u062F HH:MM \u0628\u0627\u0634\u062F") + }), + foundingDate: external_exports.string().regex(/^\d{4}$/, "\u0633\u0627\u0644 \u0645\u06CC\u0644\u0627\u062F\u06CC \u0686\u0647\u0627\u0631\u0631\u0642\u0645\u06CC"), + socials: external_exports.array(external_exports.object({ type: external_exports.enum(SOCIAL_TYPES), url: req(300) })).max(12), + ogImage: imageRefSchema.extend({ + width: external_exports.number().int().positive().nullable().default(null), + height: external_exports.number().int().positive().nullable().default(null) + }) +}); +var heroSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + badge: req(120), + title: req(80), + titleHighlight: req(80), + intro: req(600), + primaryCta: linkSchema, + secondaryCta: linkSchema, + chips: external_exports.array(iconLabel).max(6), + miniStats: external_exports.array(external_exports.object({ value: req(20), label: req(80) })).max(4), + image: imageRefSchema, + /** «آخرین بازرسی» date shown on the status card */ + lastInspection: text(20) +}); +var tapeSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + items: external_exports.array(req(80)).min(1).max(20) +}); +var statsSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + items: external_exports.array(external_exports.object({ + end: external_exports.number().int().min(0).max(1e9), + suffix: text(5), + label: req(80), + note: text(40) + })).max(8) +}); +var productsIntroSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + head: sectionHeadSchema, + ctaLabel: req(60), + trust: external_exports.array(iconCard).max(6) +}); +var aboutSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + head: sectionHeadSchema, + body: req(2e3), + image: imageRefSchema, + badge: external_exports.object({ value: req(20), label: req(80) }), + timeline: external_exports.array(external_exports.object({ year: req(10), text: req(200) })).max(12), + features: external_exports.array(iconLabel).max(6) +}); +var servicesSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + head: sectionHeadSchema, + items: external_exports.array(external_exports.object({ + icon: iconNameSchema, + title: req(80), + desc: req(600), + items: external_exports.array(req(120)).max(8) + })).max(10) +}); +var standardsSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + head: sectionHeadSchema, + note: text(500), + ctaLabel: req(80), + items: external_exports.array(external_exports.object({ code: req(30), label: req(80) })).max(12) +}); +var industriesSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + head: sectionHeadSchema, + items: external_exports.array(external_exports.object({ + name: req(60), + nameEn: text(60), + count: text(20), + image: imageRefSchema + })).max(12) +}); +var testimonialsSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + head: sectionHeadSchema, + items: external_exports.array(external_exports.object({ text: req(600), name: req(80), role: text(160) })).max(12) +}); +var contactSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + head: sectionHeadSchema, + emergencyTitle: req(80), + emergencyText: req(400), + formTag: text(80), + formTitle: req(160), + successTitle: req(80), + successText: req(300) +}); +var footerSectionSchema = external_exports.object({ + enabled: external_exports.boolean().default(true), + about: req(500), + copyright: req(160), + certLine: text(160), + emergencyNote: text(80) +}); +var sectionSchemas = { + settings: settingsSectionSchema, + hero: heroSectionSchema, + tape: tapeSectionSchema, + stats: statsSectionSchema, + productsIntro: productsIntroSectionSchema, + about: aboutSectionSchema, + services: servicesSectionSchema, + standards: standardsSectionSchema, + industries: industriesSectionSchema, + testimonials: testimonialsSectionSchema, + contact: contactSectionSchema, + footer: footerSectionSchema +}; +var SECTION_KEYS = Object.keys(sectionSchemas); +var isSectionKey = /* @__PURE__ */ __name((key) => key in sectionSchemas, "isSectionKey"); + +// ../../packages/shared/dist/admin.js +var ROLES = ["ADMIN", "EDITOR"]; +var password = external_exports.string().min(8, "\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0627\u06CC\u062F \u062D\u062F\u0627\u0642\u0644 \u06F8 \u06A9\u0627\u0631\u0627\u06A9\u062A\u0631 \u0628\u0627\u0634\u062F").max(128); +var FA_DIGITS = "\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9"; +var AR_DIGITS = "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669"; +function normalizeIrMobile(raw4) { + let s2 = raw4.trim().replace(/[\s\-()]/g, ""); + s2 = s2.replace(/[۰-۹٠-٩]/g, (d5) => { + const fa = FA_DIGITS.indexOf(d5); + if (fa >= 0) + return String(fa); + const ar = AR_DIGITS.indexOf(d5); + return ar >= 0 ? String(ar) : d5; + }); + if (s2.startsWith("+98")) + s2 = `0${s2.slice(3)}`; + else if (s2.startsWith("0098")) + s2 = `0${s2.slice(4)}`; + else if (s2.startsWith("98") && s2.length === 12) + s2 = `0${s2.slice(2)}`; + return s2; +} +__name(normalizeIrMobile, "normalizeIrMobile"); +var irMobileSchema = external_exports.string().trim().min(1, "\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F").transform(normalizeIrMobile).pipe(external_exports.string().regex(/^09\d{9}$/, "\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A (\u0645\u062B\u0644\u0627\u064B \u06F0\u06F9\u06F1\u06F2\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7)")); +var loginSchema = external_exports.object({ + phone: irMobileSchema, + password: external_exports.string().min(1, "\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F").max(128) +}); +var changePasswordSchema = external_exports.object({ + currentPassword: external_exports.string().min(1, "\u0631\u0645\u0632 \u0641\u0639\u0644\u06CC \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F").max(128), + newPassword: password +}); +var userCreateSchema = external_exports.object({ + phone: irMobileSchema, + name: req(80), + role: external_exports.enum(ROLES), + password +}); +var userUpdateSchema = external_exports.object({ + name: req(80), + role: external_exports.enum(ROLES), + isActive: external_exports.boolean(), + /** set only when resetting the password */ + password: password.optional() +}); +var MESSAGE_STATUSES = ["NEW", "READ", "ARCHIVED"]; +var contactInputSchema = external_exports.object({ + name: req(80), + org: req(120), + phone: external_exports.string().trim().min(1, "\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A").max(30).regex(/^[0-9۰-۹+\-\s()]{5,30}$/, "\u0634\u0645\u0627\u0631\u0647 \u062A\u0645\u0627\u0633 \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A"), + message: text(2e3), + /** honeypot — real visitors never fill it */ + website: external_exports.string().max(200).optional() +}); +var messageUpdateSchema = external_exports.object({ + status: external_exports.enum(MESSAGE_STATUSES) +}); +var mediaUpdateSchema = external_exports.object({ alt: text(200) }); + +// ../../packages/shared/dist/icons.js +var ICON_ALIASES = { + // Navigation & Actions + ArrowLeft: "arrow-left", + ArrowRight: "arrow-right", + ArrowUp: "arrow-up", + ArrowDown: "arrow-down", + ChevronDown: "arrow-down-1", + ChevronUp: "arrow-up-1", + ChevronLeft: "arrow-left-1", + ChevronRight: "arrow-right-1", + Menu: "menu", + X: "close-circle", + Plus: "add", + Trash: "trash", + Edit: "edit-2", + Copy: "copy", + Check: "tick-circle", + Search: "search-normal", + Filter: "filter", + Eye: "eye", + EyeOff: "eye-slash", + ImageOff: "gallery-slash", + Quote: "quote-up", + // Contact & Social + Phone: "call", + Mail: "sms", + MapPin: "location", + Clock: "clock", + Globe: "global", + Send: "send-2", + Instagram: "instagram", + Linkedin: "link", + MessageCircle: "messages-2", + Youtube: "video-play", + AtSign: "sms", + // Equipment & Safety Categories + HardHat: "security-safe", + Glasses: "glass", + Shirt: "tag", + Footprints: "routing-2", + Hand: "shield-tick", + Ear: "volume-high", + Wind: "wind-2", + TriangleAlert: "danger", + Siren: "lamp-on", + TrafficCone: "danger", + Construction: "setting-2", + Factory: "building-4", + Building2: "buildings-2", + Fuel: "gas-station", + Pickaxe: "hierarchy", + Flame: "flash", + Zap: "flash-circle", + Leaf: "tree", + HeartPulse: "heart-tick", + Star: "star", + ThumbsUp: "like-1", + Target: "radar-2", + Lock: "lock", + // Trust, Certifications & Standards + ShieldCheck: "shield-tick", + ShieldPlus: "shield-security", + ShieldAlert: "shield-cross", + BadgeCheck: "verify", + Award: "award", + Medal: "medal-star", + PackageCheck: "box-tick", + Package: "box", + Truck: "truck-time", + Warehouse: "buildings", + Users: "people", + Handshake: "user-tag", + Headset: "24-support", + ClipboardCheck: "clipboard-tick", + FileCheck: "document-text", + FileSearch: "document-filter", + GraduationCap: "teacher", + Gauge: "status", + Microscope: "search-status", + Wrench: "setting-4" +}; +var RECOMMENDED_ICONS = [ + "shield-tick", + "shield-security", + "shield-cross", + "security-safe", + "security-user", + "verify", + "award", + "medal-star", + "box-tick", + "box", + "truck-time", + "buildings", + "building-4", + "buildings-2", + "global", + "people", + "user-tag", + "24-support", + "call", + "sms", + "location", + "clock", + "clipboard-tick", + "document-text", + "document-filter", + "teacher", + "status", + "search-status", + "setting-2", + "setting-4", + "glass", + "tag", + "routing-2", + "volume-high", + "wind-2", + "danger", + "lamp-on", + "gas-station", + "hierarchy", + "flash", + "flash-circle", + "tree", + "heart-tick", + "star", + "like-1", + "radar-2", + "lock", + "eye", + "gallery", + "video-play" +]; +var ICON_NAMES = [ + ...RECOMMENDED_ICONS, + ...Object.keys(ICON_ALIASES) +]; + +// ../../packages/shared/dist/catalog.js +var shortList = external_exports.array(external_exports.string().trim().min(1).max(120)).max(20).default([]); +var productAttributeSchema = external_exports.object({ + name: req(80), + value: req(300) +}); +var productGroupInputSchema = external_exports.object({ + /** present when editing an existing group */ + id: idSchema.optional(), + slug: slugSchema, + name: req(120), + desc: text(1e3) +}); +var categoryInputSchema = external_exports.object({ + slug: slugSchema, + code: req(20), + name: req(120), + nameEn: text(120), + shortDesc: text(500), + fullDesc: text(3e3), + icon: text(40), + coverImageId: idSchema.nullable().default(null), + isPublished: external_exports.boolean().default(true), + seoTitle: text(120), + seoDescription: text(300), + groups: external_exports.array(productGroupInputSchema).max(30).default([]) +}); +var productInputSchema = external_exports.object({ + categoryId: idSchema, + groupId: idSchema.nullable().default(null), + code: req(30), + slug: slugSchema, + name: req(160), + nameEn: text(160), + desc: text(2e3), + specs: shortList, + variants: shortList, + details: text(8e3), + brand: text(80), + origin: text(80), + sizes: shortList, + standards: shortList, + features: external_exports.array(external_exports.string().trim().min(1).max(300)).max(30).default([]), + applications: shortList, + attributes: external_exports.array(productAttributeSchema).max(40).default([]), + packaging: text(200), + minOrder: text(120), + seoTitle: text(120), + seoDescription: text(300), + imageId: idSchema.nullable().default(null), + galleryIds: external_exports.array(idSchema).max(12).default([]), + isPublished: external_exports.boolean().default(true) +}); +var reorderSchema = external_exports.object({ + ids: external_exports.array(idSchema).min(1).max(1e3) +}); +var productListQuerySchema = external_exports.object({ + categoryId: idSchema.optional(), + groupId: idSchema.optional(), + q: external_exports.string().trim().max(100).optional(), + status: external_exports.enum(["published", "draft"]).optional(), + page: external_exports.coerce.number().int().min(1).default(1), + pageSize: external_exports.coerce.number().int().min(1).max(200).default(50) +}); + +// dist/prisma/prisma.service.js +init_common(); + +// ../../node_modules/.pnpm/@prisma+debug@7.10.1/node_modules/@prisma/debug/dist/index.mjs +var __defProp = Object.defineProperty; +var __export2 = /* @__PURE__ */ __name((target, all) => { + for (var name2 in all) + __defProp(target, name2, { get: all[name2], enumerable: true }); +}, "__export"); +var colors_exports = {}; +__export2(colors_exports, { + $: /* @__PURE__ */ __name(() => $, "$"), + bgBlack: /* @__PURE__ */ __name(() => bgBlack, "bgBlack"), + bgBlue: /* @__PURE__ */ __name(() => bgBlue, "bgBlue"), + bgCyan: /* @__PURE__ */ __name(() => bgCyan, "bgCyan"), + bgGreen: /* @__PURE__ */ __name(() => bgGreen, "bgGreen"), + bgMagenta: /* @__PURE__ */ __name(() => bgMagenta, "bgMagenta"), + bgRed: /* @__PURE__ */ __name(() => bgRed, "bgRed"), + bgWhite: /* @__PURE__ */ __name(() => bgWhite, "bgWhite"), + bgYellow: /* @__PURE__ */ __name(() => bgYellow, "bgYellow"), + black: /* @__PURE__ */ __name(() => black, "black"), + blue: /* @__PURE__ */ __name(() => blue, "blue"), + bold: /* @__PURE__ */ __name(() => bold, "bold"), + cyan: /* @__PURE__ */ __name(() => cyan, "cyan"), + dim: /* @__PURE__ */ __name(() => dim, "dim"), + gray: /* @__PURE__ */ __name(() => gray, "gray"), + green: /* @__PURE__ */ __name(() => green, "green"), + grey: /* @__PURE__ */ __name(() => grey, "grey"), + hidden: /* @__PURE__ */ __name(() => hidden, "hidden"), + inverse: /* @__PURE__ */ __name(() => inverse, "inverse"), + italic: /* @__PURE__ */ __name(() => italic, "italic"), + magenta: /* @__PURE__ */ __name(() => magenta, "magenta"), + red: /* @__PURE__ */ __name(() => red, "red"), + reset: /* @__PURE__ */ __name(() => reset, "reset"), + strikethrough: /* @__PURE__ */ __name(() => strikethrough, "strikethrough"), + underline: /* @__PURE__ */ __name(() => underline, "underline"), + white: /* @__PURE__ */ __name(() => white, "white"), + yellow: /* @__PURE__ */ __name(() => yellow, "yellow") +}); +var FORCE_COLOR; +var NODE_DISABLE_COLORS; +var NO_COLOR; +var TERM; +var isTTY = true; +if (typeof process !== "undefined") { + ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}); + isTTY = process.stdout && process.stdout.isTTY; +} +var $ = { + enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY) +}; +function init(x, y) { + let rgx = new RegExp(`\\x1b\\[${y}m`, "g"); + let open2 = `\x1B[${x}m`, close = `\x1B[${y}m`; + return function(txt) { + if (!$.enabled || txt == null) return txt; + return open2 + (!!~("" + txt).indexOf(close) ? txt.replace(rgx, close + open2) : txt) + close; + }; +} +__name(init, "init"); +var reset = init(0, 0); +var bold = init(1, 22); +var dim = init(2, 22); +var italic = init(3, 23); +var underline = init(4, 24); +var inverse = init(7, 27); +var hidden = init(8, 28); +var strikethrough = init(9, 29); +var black = init(30, 39); +var red = init(31, 39); +var green = init(32, 39); +var yellow = init(33, 39); +var blue = init(34, 39); +var magenta = init(35, 39); +var cyan = init(36, 39); +var white = init(37, 39); +var gray = init(90, 39); +var grey = init(90, 39); +var bgBlack = init(40, 49); +var bgRed = init(41, 49); +var bgGreen = init(42, 49); +var bgYellow = init(43, 49); +var bgBlue = init(44, 49); +var bgMagenta = init(45, 49); +var bgCyan = init(46, 49); +var bgWhite = init(47, 49); +var MAX_ARGS_HISTORY = 100; +var COLORS = ["green", "yellow", "blue", "magenta", "cyan", "red"]; +var argsHistory = []; +var lastTimestamp = Date.now(); +var lastColor = 0; +var processEnv = typeof process !== "undefined" ? process.env : {}; +globalThis.DEBUG ??= processEnv.DEBUG ?? ""; +globalThis.DEBUG_COLORS ??= processEnv.DEBUG_COLORS ? processEnv.DEBUG_COLORS === "true" : true; +var topProps = { + enable(namespace) { + if (typeof namespace === "string") { + globalThis.DEBUG = namespace; + } + }, + disable() { + const prev = globalThis.DEBUG; + globalThis.DEBUG = ""; + return prev; + }, + // this is the core logic to check if logging should happen or not + enabled(namespace) { + const listenedNamespaces = globalThis.DEBUG.split(",").map((s2) => { + return s2.replace(/[.+?^${}()|[\]\\]/g, "\\$&"); + }); + const isListened = listenedNamespaces.some((listenedNamespace) => { + if (listenedNamespace === "" || listenedNamespace[0] === "-") return false; + return namespace.match(RegExp(listenedNamespace.split("*").join(".*") + "$")); + }); + const isExcluded = listenedNamespaces.some((listenedNamespace) => { + if (listenedNamespace === "" || listenedNamespace[0] !== "-") return false; + return namespace.match(RegExp(listenedNamespace.slice(1).split("*").join(".*") + "$")); + }); + return isListened && !isExcluded; + }, + log: /* @__PURE__ */ __name((...args) => { + const [namespace, format, ...rest] = args; + const logWithFormatting = console.warn ?? console.log; + logWithFormatting(`${namespace} ${format}`, ...rest); + }, "log"), + formatters: {} + // not implemented +}; +function debugCreate(namespace) { + const instanceProps = { + color: COLORS[lastColor++ % COLORS.length], + enabled: topProps.enabled(namespace), + namespace, + log: topProps.log, + extend: /* @__PURE__ */ __name(() => { + }, "extend") + // not implemented + }; + const debugCall = /* @__PURE__ */ __name((...args) => { + const { enabled, namespace: namespace2, color, log } = instanceProps; + if (args.length !== 0) { + argsHistory.push([namespace2, ...args]); + } + if (argsHistory.length > MAX_ARGS_HISTORY) { + argsHistory.shift(); + } + if (topProps.enabled(namespace2) || enabled) { + const stringArgs = args.map((arg) => { + if (typeof arg === "string") { + return arg; + } + return safeStringify(arg); + }); + const ms = `+${Date.now() - lastTimestamp}ms`; + lastTimestamp = Date.now(); + if (globalThis.DEBUG_COLORS) { + log(colors_exports[color](bold(namespace2)), ...stringArgs, colors_exports[color](ms)); + } else { + log(namespace2, ...stringArgs, ms); + } + } + }, "debugCall"); + return new Proxy(debugCall, { + get: /* @__PURE__ */ __name((_, prop) => instanceProps[prop], "get"), + set: /* @__PURE__ */ __name((_, prop, value) => instanceProps[prop] = value, "set") + }); +} +__name(debugCreate, "debugCreate"); +var Debug2 = new Proxy(debugCreate, { + get: /* @__PURE__ */ __name((_, prop) => topProps[prop], "get"), + set: /* @__PURE__ */ __name((_, prop, value) => topProps[prop] = value, "set") +}); +function safeStringify(value, indent = 2) { + const cache5 = /* @__PURE__ */ new Set(); + return JSON.stringify( + value, + (key, value2) => { + if (typeof value2 === "object" && value2 !== null) { + if (cache5.has(value2)) { + return `[Circular *]`; + } + cache5.add(value2); + } else if (typeof value2 === "bigint") { + return value2.toString(); + } + return value2; + }, + indent + ); +} +__name(safeStringify, "safeStringify"); + +// ../../node_modules/.pnpm/@prisma+driver-adapter-utils@7.10.1/node_modules/@prisma/driver-adapter-utils/dist/index.mjs +var DriverAdapterError = class extends Error { + static { + __name(this, "DriverAdapterError"); + } + name = "DriverAdapterError"; + cause; + constructor(payload) { + super(typeof payload["message"] === "string" ? payload["message"] : payload.kind); + this.cause = payload; + } +}; +var debug = Debug2("driver-adapter-utils"); +var ColumnTypeEnum = { + // Scalars + Int32: 0, + Int64: 1, + Float: 2, + Double: 3, + Numeric: 4, + Boolean: 5, + Character: 6, + Text: 7, + Date: 8, + Time: 9, + DateTime: 10, + Json: 11, + Enum: 12, + Bytes: 13, + Set: 14, + Uuid: 15, + // Arrays + Int32Array: 64, + Int64Array: 65, + FloatArray: 66, + DoubleArray: 67, + NumericArray: 68, + BooleanArray: 69, + CharacterArray: 70, + TextArray: 71, + DateArray: 72, + TimeArray: 73, + DateTimeArray: 74, + JsonArray: 75, + EnumArray: 76, + BytesArray: 77, + UuidArray: 78, + // Custom + UnknownNumber: 128 +}; +var mockAdapterErrors = { + queryRaw: new Error("Not implemented: queryRaw"), + executeRaw: new Error("Not implemented: executeRaw"), + startTransaction: new Error("Not implemented: startTransaction"), + executeScript: new Error("Not implemented: executeScript"), + dispose: new Error("Not implemented: dispose") +}; + +// ../../node_modules/.pnpm/@prisma+adapter-pg@7.10.1/node_modules/@prisma/adapter-pg/dist/index.mjs +var import_postgres_array = __toESM(require_postgres_array(), 1); +var name = "@prisma/adapter-pg"; +var FIRST_NORMAL_OBJECT_ID = 16384; +var { types } = esm_default; +var { builtins: ScalarColumnType, getTypeParser } = types; +var AdditionalScalarColumnType = { + NAME: 19 +}; +var ArrayColumnType = { + BIT_ARRAY: 1561, + BOOL_ARRAY: 1e3, + BYTEA_ARRAY: 1001, + BPCHAR_ARRAY: 1014, + CHAR_ARRAY: 1002, + CIDR_ARRAY: 651, + DATE_ARRAY: 1182, + FLOAT4_ARRAY: 1021, + FLOAT8_ARRAY: 1022, + INET_ARRAY: 1041, + INT2_ARRAY: 1005, + INT4_ARRAY: 1007, + INT8_ARRAY: 1016, + JSONB_ARRAY: 3807, + JSON_ARRAY: 199, + MONEY_ARRAY: 791, + NUMERIC_ARRAY: 1231, + OID_ARRAY: 1028, + TEXT_ARRAY: 1009, + TIMESTAMP_ARRAY: 1115, + TIMESTAMPTZ_ARRAY: 1185, + TIME_ARRAY: 1183, + UUID_ARRAY: 2951, + VARBIT_ARRAY: 1563, + VARCHAR_ARRAY: 1015, + XML_ARRAY: 143 +}; +var UnsupportedNativeDataType = class _UnsupportedNativeDataType extends Error { + static { + __name(this, "_UnsupportedNativeDataType"); + } + // map of type codes to type names + static typeNames = { + 16: "bool", + 17: "bytea", + 18: "char", + 19: "name", + 20: "int8", + 21: "int2", + 22: "int2vector", + 23: "int4", + 24: "regproc", + 25: "text", + 26: "oid", + 27: "tid", + 28: "xid", + 29: "cid", + 30: "oidvector", + 32: "pg_ddl_command", + 71: "pg_type", + 75: "pg_attribute", + 81: "pg_proc", + 83: "pg_class", + 114: "json", + 142: "xml", + 194: "pg_node_tree", + 269: "table_am_handler", + 325: "index_am_handler", + 600: "point", + 601: "lseg", + 602: "path", + 603: "box", + 604: "polygon", + 628: "line", + 650: "cidr", + 700: "float4", + 701: "float8", + 705: "unknown", + 718: "circle", + 774: "macaddr8", + 790: "money", + 829: "macaddr", + 869: "inet", + 1033: "aclitem", + 1042: "bpchar", + 1043: "varchar", + 1082: "date", + 1083: "time", + 1114: "timestamp", + 1184: "timestamptz", + 1186: "interval", + 1266: "timetz", + 1560: "bit", + 1562: "varbit", + 1700: "numeric", + 1790: "refcursor", + 2202: "regprocedure", + 2203: "regoper", + 2204: "regoperator", + 2205: "regclass", + 2206: "regtype", + 2249: "record", + 2275: "cstring", + 2276: "any", + 2277: "anyarray", + 2278: "void", + 2279: "trigger", + 2280: "language_handler", + 2281: "internal", + 2283: "anyelement", + 2287: "_record", + 2776: "anynonarray", + 2950: "uuid", + 2970: "txid_snapshot", + 3115: "fdw_handler", + 3220: "pg_lsn", + 3310: "tsm_handler", + 3361: "pg_ndistinct", + 3402: "pg_dependencies", + 3500: "anyenum", + 3614: "tsvector", + 3615: "tsquery", + 3642: "gtsvector", + 3734: "regconfig", + 3769: "regdictionary", + 3802: "jsonb", + 3831: "anyrange", + 3838: "event_trigger", + 3904: "int4range", + 3906: "numrange", + 3908: "tsrange", + 3910: "tstzrange", + 3912: "daterange", + 3926: "int8range", + 4072: "jsonpath", + 4089: "regnamespace", + 4096: "regrole", + 4191: "regcollation", + 4451: "int4multirange", + 4532: "nummultirange", + 4533: "tsmultirange", + 4534: "tstzmultirange", + 4535: "datemultirange", + 4536: "int8multirange", + 4537: "anymultirange", + 4538: "anycompatiblemultirange", + 4600: "pg_brin_bloom_summary", + 4601: "pg_brin_minmax_multi_summary", + 5017: "pg_mcv_list", + 5038: "pg_snapshot", + 5069: "xid8", + 5077: "anycompatible", + 5078: "anycompatiblearray", + 5079: "anycompatiblenonarray", + 5080: "anycompatiblerange" + }; + type; + constructor(code) { + super(); + this.type = _UnsupportedNativeDataType.typeNames[code] || "Unknown"; + this.message = `Unsupported column type ${this.type}`; + } +}; +function fieldToColumnType(fieldTypeId) { + switch (fieldTypeId) { + case ScalarColumnType.INT2: + case ScalarColumnType.INT4: + return ColumnTypeEnum.Int32; + case ScalarColumnType.INT8: + return ColumnTypeEnum.Int64; + case ScalarColumnType.FLOAT4: + return ColumnTypeEnum.Float; + case ScalarColumnType.FLOAT8: + return ColumnTypeEnum.Double; + case ScalarColumnType.BOOL: + return ColumnTypeEnum.Boolean; + case ScalarColumnType.DATE: + return ColumnTypeEnum.Date; + case ScalarColumnType.TIME: + case ScalarColumnType.TIMETZ: + return ColumnTypeEnum.Time; + case ScalarColumnType.TIMESTAMP: + case ScalarColumnType.TIMESTAMPTZ: + return ColumnTypeEnum.DateTime; + case ScalarColumnType.NUMERIC: + case ScalarColumnType.MONEY: + return ColumnTypeEnum.Numeric; + case ScalarColumnType.JSON: + case ScalarColumnType.JSONB: + return ColumnTypeEnum.Json; + case ScalarColumnType.UUID: + return ColumnTypeEnum.Uuid; + case ScalarColumnType.OID: + return ColumnTypeEnum.Int64; + case ScalarColumnType.BPCHAR: + case ScalarColumnType.TEXT: + case ScalarColumnType.VARCHAR: + case ScalarColumnType.BIT: + case ScalarColumnType.VARBIT: + case ScalarColumnType.INET: + case ScalarColumnType.CIDR: + case ScalarColumnType.XML: + case AdditionalScalarColumnType.NAME: + return ColumnTypeEnum.Text; + case ScalarColumnType.BYTEA: + return ColumnTypeEnum.Bytes; + case ArrayColumnType.INT2_ARRAY: + case ArrayColumnType.INT4_ARRAY: + return ColumnTypeEnum.Int32Array; + case ArrayColumnType.FLOAT4_ARRAY: + return ColumnTypeEnum.FloatArray; + case ArrayColumnType.FLOAT8_ARRAY: + return ColumnTypeEnum.DoubleArray; + case ArrayColumnType.NUMERIC_ARRAY: + case ArrayColumnType.MONEY_ARRAY: + return ColumnTypeEnum.NumericArray; + case ArrayColumnType.BOOL_ARRAY: + return ColumnTypeEnum.BooleanArray; + case ArrayColumnType.CHAR_ARRAY: + return ColumnTypeEnum.CharacterArray; + case ArrayColumnType.BPCHAR_ARRAY: + case ArrayColumnType.TEXT_ARRAY: + case ArrayColumnType.VARCHAR_ARRAY: + case ArrayColumnType.VARBIT_ARRAY: + case ArrayColumnType.BIT_ARRAY: + case ArrayColumnType.INET_ARRAY: + case ArrayColumnType.CIDR_ARRAY: + case ArrayColumnType.XML_ARRAY: + return ColumnTypeEnum.TextArray; + case ArrayColumnType.DATE_ARRAY: + return ColumnTypeEnum.DateArray; + case ArrayColumnType.TIME_ARRAY: + return ColumnTypeEnum.TimeArray; + case ArrayColumnType.TIMESTAMP_ARRAY: + return ColumnTypeEnum.DateTimeArray; + case ArrayColumnType.TIMESTAMPTZ_ARRAY: + return ColumnTypeEnum.DateTimeArray; + case ArrayColumnType.JSON_ARRAY: + case ArrayColumnType.JSONB_ARRAY: + return ColumnTypeEnum.JsonArray; + case ArrayColumnType.BYTEA_ARRAY: + return ColumnTypeEnum.BytesArray; + case ArrayColumnType.UUID_ARRAY: + return ColumnTypeEnum.UuidArray; + case ArrayColumnType.INT8_ARRAY: + case ArrayColumnType.OID_ARRAY: + return ColumnTypeEnum.Int64Array; + default: + if (fieldTypeId >= FIRST_NORMAL_OBJECT_ID) { + return ColumnTypeEnum.Text; + } + throw new UnsupportedNativeDataType(fieldTypeId); + } +} +__name(fieldToColumnType, "fieldToColumnType"); +function normalize_array(element_normalizer) { + return (str) => (0, import_postgres_array.parse)(str, element_normalizer); +} +__name(normalize_array, "normalize_array"); +function normalize_numeric(numeric) { + return numeric; +} +__name(normalize_numeric, "normalize_numeric"); +function normalize_date(date5) { + return date5; +} +__name(normalize_date, "normalize_date"); +function normalize_timestamp(time3) { + return `${time3.replace(" ", "T")}+00:00`; +} +__name(normalize_timestamp, "normalize_timestamp"); +function normalize_timestamptz(time3) { + return time3.replace(" ", "T").replace(/[+-]\d{2}(:\d{2})?$/, "+00:00"); +} +__name(normalize_timestamptz, "normalize_timestamptz"); +function normalize_time(time3) { + return time3; +} +__name(normalize_time, "normalize_time"); +function normalize_timez(time3) { + return time3.replace(/[+-]\d{2}(:\d{2})?$/, ""); +} +__name(normalize_timez, "normalize_timez"); +function normalize_money(money) { + return money.slice(1); +} +__name(normalize_money, "normalize_money"); +function normalize_xml(xml) { + return xml; +} +__name(normalize_xml, "normalize_xml"); +function toJson(json2) { + return json2; +} +__name(toJson, "toJson"); +var parsePgBytes = getTypeParser(ScalarColumnType.BYTEA); +var normalizeByteaArray = getTypeParser(ArrayColumnType.BYTEA_ARRAY); +function convertBytes(serializedBytes) { + return parsePgBytes(serializedBytes); +} +__name(convertBytes, "convertBytes"); +function normalizeBit(bit) { + return bit; +} +__name(normalizeBit, "normalizeBit"); +var customParsers = { + [ScalarColumnType.NUMERIC]: normalize_numeric, + [ArrayColumnType.NUMERIC_ARRAY]: normalize_array(normalize_numeric), + [ScalarColumnType.TIME]: normalize_time, + [ArrayColumnType.TIME_ARRAY]: normalize_array(normalize_time), + [ScalarColumnType.TIMETZ]: normalize_timez, + [ScalarColumnType.DATE]: normalize_date, + [ArrayColumnType.DATE_ARRAY]: normalize_array(normalize_date), + [ScalarColumnType.TIMESTAMP]: normalize_timestamp, + [ArrayColumnType.TIMESTAMP_ARRAY]: normalize_array(normalize_timestamp), + [ScalarColumnType.TIMESTAMPTZ]: normalize_timestamptz, + [ArrayColumnType.TIMESTAMPTZ_ARRAY]: normalize_array(normalize_timestamptz), + [ScalarColumnType.MONEY]: normalize_money, + [ArrayColumnType.MONEY_ARRAY]: normalize_array(normalize_money), + [ScalarColumnType.JSON]: toJson, + [ArrayColumnType.JSON_ARRAY]: normalize_array(toJson), + [ScalarColumnType.JSONB]: toJson, + [ArrayColumnType.JSONB_ARRAY]: normalize_array(toJson), + [ScalarColumnType.BYTEA]: convertBytes, + [ArrayColumnType.BYTEA_ARRAY]: normalizeByteaArray, + [ArrayColumnType.BIT_ARRAY]: normalize_array(normalizeBit), + [ArrayColumnType.VARBIT_ARRAY]: normalize_array(normalizeBit), + [ArrayColumnType.XML_ARRAY]: normalize_array(normalize_xml) +}; +function mapArg(arg, argType) { + if (arg === null) { + return null; + } + if (Array.isArray(arg) && argType.arity === "list") { + return arg.map((value) => mapArg(value, argType)); + } + if (typeof arg === "string" && argType.scalarType === "datetime") { + arg = new Date(arg); + } + if (arg instanceof Date) { + switch (argType.dbType) { + case "TIME": + case "TIMETZ": + return formatTime(arg); + case "DATE": + return formatDate(arg); + default: + return formatDateTime(arg); + } + } + if (typeof arg === "string" && argType.scalarType === "bytes") { + return Buffer.from(arg, "base64"); + } + if (ArrayBuffer.isView(arg)) { + return new Uint8Array(arg.buffer, arg.byteOffset, arg.byteLength); + } + return arg; +} +__name(mapArg, "mapArg"); +function formatDateTime(date5) { + const pad = /* @__PURE__ */ __name((n3, z2 = 2) => String(n3).padStart(z2, "0"), "pad"); + const ms = date5.getUTCMilliseconds(); + return pad(date5.getUTCFullYear(), 4) + "-" + pad(date5.getUTCMonth() + 1) + "-" + pad(date5.getUTCDate()) + " " + pad(date5.getUTCHours()) + ":" + pad(date5.getUTCMinutes()) + ":" + pad(date5.getUTCSeconds()) + (ms ? "." + String(ms).padStart(3, "0") : ""); +} +__name(formatDateTime, "formatDateTime"); +function formatDate(date5) { + const pad = /* @__PURE__ */ __name((n3, z2 = 2) => String(n3).padStart(z2, "0"), "pad"); + return pad(date5.getUTCFullYear(), 4) + "-" + pad(date5.getUTCMonth() + 1) + "-" + pad(date5.getUTCDate()); +} +__name(formatDate, "formatDate"); +function formatTime(date5) { + const pad = /* @__PURE__ */ __name((n3, z2 = 2) => String(n3).padStart(z2, "0"), "pad"); + const ms = date5.getUTCMilliseconds(); + return pad(date5.getUTCHours()) + ":" + pad(date5.getUTCMinutes()) + ":" + pad(date5.getUTCSeconds()) + (ms ? "." + String(ms).padStart(3, "0") : ""); +} +__name(formatTime, "formatTime"); +var TLS_ERRORS = /* @__PURE__ */ new Set([ + "UNABLE_TO_GET_ISSUER_CERT", + "UNABLE_TO_GET_CRL", + "UNABLE_TO_DECRYPT_CERT_SIGNATURE", + "UNABLE_TO_DECRYPT_CRL_SIGNATURE", + "UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY", + "CERT_SIGNATURE_FAILURE", + "CRL_SIGNATURE_FAILURE", + "CERT_NOT_YET_VALID", + "CERT_HAS_EXPIRED", + "CRL_NOT_YET_VALID", + "CRL_HAS_EXPIRED", + "ERROR_IN_CERT_NOT_BEFORE_FIELD", + "ERROR_IN_CERT_NOT_AFTER_FIELD", + "ERROR_IN_CRL_LAST_UPDATE_FIELD", + "ERROR_IN_CRL_NEXT_UPDATE_FIELD", + "DEPTH_ZERO_SELF_SIGNED_CERT", + "SELF_SIGNED_CERT_IN_CHAIN", + "UNABLE_TO_GET_ISSUER_CERT_LOCALLY", + "UNABLE_TO_VERIFY_LEAF_SIGNATURE", + "CERT_CHAIN_TOO_LONG", + "CERT_REVOKED", + "INVALID_CA", + "INVALID_PURPOSE", + "CERT_UNTRUSTED", + "CERT_REJECTED", + "HOSTNAME_MISMATCH", + "ERR_TLS_CERT_ALTNAME_FORMAT", + "ERR_TLS_CERT_ALTNAME_INVALID" +]); +var SOCKET_ERRORS = /* @__PURE__ */ new Set(["ENOTFOUND", "ECONNREFUSED", "ECONNRESET", "ETIMEDOUT"]); +function convertDriverError(error62) { + if (isSocketError(error62)) { + return mapSocketError(error62); + } + if (isTlsError(error62)) { + return { + kind: "TlsConnectionError", + reason: error62.message + }; + } + if (isDriverError(error62)) { + return { + originalCode: error62.code, + originalMessage: error62.message, + ...mapDriverError(error62) + }; + } + throw error62; +} +__name(convertDriverError, "convertDriverError"); +function mapDriverError(error62) { + switch (error62.code) { + case "22001": + return { + kind: "LengthMismatch", + column: error62.column + }; + case "22003": + return { + kind: "ValueOutOfRange", + cause: error62.message + }; + case "22P02": + return { + kind: "InvalidInputValue", + message: error62.message + }; + case "23505": { + const fields = error62.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", "); + let constraint; + if (error62.constraint) { + constraint = { index: error62.constraint }; + } else if (fields !== void 0) { + constraint = { fields }; + } + let table = error62.table; + if (table === void 0 && fields !== void 0 && fields.length > 0) { + const suffix = `_${fields.join("_")}_key`; + if (error62.constraint?.endsWith(suffix)) { + table = error62.constraint.slice(0, -suffix.length); + } + } + return { + kind: "UniqueConstraintViolation", + constraint, + table + }; + } + case "23502": { + const fields = error62.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", "); + return { + kind: "NullConstraintViolation", + constraint: fields !== void 0 ? { fields } : void 0 + }; + } + case "23503": { + let constraint; + if (error62.column) { + constraint = { fields: [error62.column] }; + } else if (error62.constraint) { + constraint = { index: error62.constraint }; + } + return { + kind: "ForeignKeyConstraintViolation", + constraint + }; + } + case "23001": { + let constraint; + if (error62.column) { + constraint = { fields: [error62.column] }; + } else if (error62.constraint) { + constraint = { index: error62.constraint }; + } + return { + kind: "RestrictViolation", + constraint + }; + } + case "3D000": + return { + kind: "DatabaseDoesNotExist", + db: error62.message.split(" ").at(1)?.split('"').at(1) + }; + case "28000": + return { + kind: "DatabaseAccessDenied", + db: error62.message.split(",").find((s2) => s2.startsWith(" database"))?.split('"').at(1) + }; + case "28P01": + return { + kind: "AuthenticationFailed", + user: error62.message.split(" ").pop()?.split('"').at(1) + }; + case "40001": + case "40P01": + return { + kind: "TransactionWriteConflict" + }; + case "42P01": + return { + kind: "TableDoesNotExist", + table: error62.message.split(" ").at(1)?.split('"').at(1) + }; + case "42703": { + const rawColumn = error62.message.match(/^column (.+) does not exist$/)?.at(1); + return { + kind: "ColumnNotFound", + column: rawColumn?.replace(/"((?:""|[^"])*)"/g, (_, id) => id.replaceAll('""', '"')) + }; + } + case "42P04": + return { + kind: "DatabaseAlreadyExists", + db: error62.message.split(" ").at(1)?.split('"').at(1) + }; + case "53300": + return { + kind: "TooManyConnections", + cause: error62.message + }; + default: + return { + kind: "postgres", + code: error62.code ?? "N/A", + severity: error62.severity ?? "N/A", + message: error62.message, + detail: error62.detail, + column: error62.column, + hint: error62.hint + }; + } +} +__name(mapDriverError, "mapDriverError"); +function isDriverError(error62) { + return typeof error62.code === "string" && typeof error62.message === "string" && typeof error62.severity === "string" && (typeof error62.detail === "string" || error62.detail === void 0) && (typeof error62.column === "string" || error62.column === void 0) && (typeof error62.hint === "string" || error62.hint === void 0); +} +__name(isDriverError, "isDriverError"); +function mapSocketError(error62) { + switch (error62.code) { + case "ENOTFOUND": + case "ECONNREFUSED": + return { + kind: "DatabaseNotReachable", + host: error62.address ?? error62.hostname, + port: error62.port + }; + case "ECONNRESET": + return { + kind: "ConnectionClosed" + }; + case "ETIMEDOUT": + return { + kind: "SocketTimeout" + }; + } +} +__name(mapSocketError, "mapSocketError"); +function isSocketError(error62) { + return typeof error62.code === "string" && typeof error62.syscall === "string" && typeof error62.errno === "number" && SOCKET_ERRORS.has(error62.code); +} +__name(isSocketError, "isSocketError"); +function isTlsError(error62) { + if (typeof error62.code === "string") { + return TLS_ERRORS.has(error62.code); + } + switch (error62.message) { + case "The server does not support SSL connections": + case "There was an error establishing an SSL connection": + return true; + } + return false; +} +__name(isTlsError, "isTlsError"); +var types2 = esm_default.types; +var debug2 = Debug2("prisma:driver-adapter:pg"); +var PgQueryable = class { + static { + __name(this, "PgQueryable"); + } + constructor(client, pgOptions) { + this.client = client; + this.pgOptions = pgOptions; + } + provider = "postgres"; + adapterName = name; + /** + * Execute a query given as SQL, interpolating the given parameters. + */ + async queryRaw(query) { + const tag = "[js::query_raw]"; + debug2(`${tag} %O`, query); + const { fields, rows } = await this.performIO(query); + const columnNames = fields.map((field) => field.name); + let columnTypes = []; + try { + columnTypes = fields.map((field) => fieldToColumnType(field.dataTypeID)); + } catch (e5) { + if (e5 instanceof UnsupportedNativeDataType) { + throw new DriverAdapterError({ + kind: "UnsupportedNativeDataType", + type: e5.type + }); + } + throw e5; + } + const udtParser = this.pgOptions?.userDefinedTypeParser; + if (udtParser) { + for (let i5 = 0; i5 < fields.length; i5++) { + const field = fields[i5]; + if (field.dataTypeID >= FIRST_NORMAL_OBJECT_ID && !Object.hasOwn(customParsers, field.dataTypeID)) { + for (let j5 = 0; j5 < rows.length; j5++) { + rows[j5][i5] = await udtParser(field.dataTypeID, rows[j5][i5], this); + } + } + } + } + return { + columnNames, + columnTypes, + rows + }; + } + /** + * Execute a query given as SQL, interpolating the given parameters and + * returning the number of affected rows. + * Note: Queryable expects a u64, but napi.rs only supports u32. + */ + async executeRaw(query) { + const tag = "[js::execute_raw]"; + debug2(`${tag} %O`, query); + return (await this.performIO(query)).rowCount ?? 0; + } + /** + * Run a query against the database, returning the result set. + * Should the query fail due to a connection error, the connection is + * marked as unhealthy. + */ + async performIO(query) { + const { sql: sql2, args } = query; + const values = args.map((arg, i5) => mapArg(arg, query.argTypes[i5])); + try { + const result = await this.client.query({ + name: this.pgOptions?.statementNameGenerator?.(query), + text: sql2, + values, + rowMode: "array", + types: { + getTypeParser: /* @__PURE__ */ __name((oid, format) => { + if (format === "text" && customParsers[oid]) { + return customParsers[oid]; + } + return types2.getTypeParser(oid, format); + }, "getTypeParser") + } + }); + return result; + } catch (e5) { + this.onError(e5); + } + } + onError(error62) { + debug2("Error in performIO: %O", error62); + throw new DriverAdapterError(convertDriverError(error62)); + } +}; +var PgTransaction = class extends PgQueryable { + static { + __name(this, "PgTransaction"); + } + constructor(client, options, pgOptions, cleanup) { + super(client, pgOptions); + this.options = options; + this.pgOptions = pgOptions; + this.cleanup = cleanup; + } + async commit() { + debug2(`[js::commit]`); + this.cleanup?.(); + this.client.release(); + } + async rollback() { + debug2(`[js::rollback]`); + this.cleanup?.(); + this.client.release(); + } + async createSavepoint(name2) { + await this.executeRaw({ sql: `SAVEPOINT ${name2}`, args: [], argTypes: [] }); + } + async rollbackToSavepoint(name2) { + await this.executeRaw({ sql: `ROLLBACK TO SAVEPOINT ${name2}`, args: [], argTypes: [] }); + } + async releaseSavepoint(name2) { + await this.executeRaw({ sql: `RELEASE SAVEPOINT ${name2}`, args: [], argTypes: [] }); + } +}; +var PrismaPgAdapter = class extends PgQueryable { + static { + __name(this, "PrismaPgAdapter"); + } + constructor(client, pgOptions, release2) { + super(client); + this.pgOptions = pgOptions; + this.release = release2; + } + async startTransaction(isolationLevel) { + const options = { + usePhantomQuery: false + }; + const tag = "[js::startTransaction]"; + debug2("%s options: %O", tag, options); + const conn = await this.client.connect().catch((error62) => this.onError(error62)); + const onError = /* @__PURE__ */ __name((err) => { + debug2(`Error from pool connection: ${err.message} %O`, err); + this.pgOptions?.onConnectionError?.(err); + }, "onError"); + conn.on("error", onError); + const cleanup = /* @__PURE__ */ __name(() => { + conn.removeListener("error", onError); + }, "cleanup"); + try { + const tx = new PgTransaction(conn, options, this.pgOptions, cleanup); + await tx.executeRaw({ sql: "BEGIN", args: [], argTypes: [] }); + if (isolationLevel) { + await tx.executeRaw({ + sql: `SET TRANSACTION ISOLATION LEVEL ${isolationLevel}`, + args: [], + argTypes: [] + }); + } + return tx; + } catch (error62) { + cleanup(); + conn.release(error62); + this.onError(error62); + } + } + async executeScript(script) { + const statements = script.split(";").map((stmt) => stmt.trim()).filter((stmt) => stmt.length > 0); + for (const stmt of statements) { + try { + await this.client.query(stmt); + } catch (error62) { + this.onError(error62); + } + } + } + getConnectionInfo() { + return { + schemaName: this.pgOptions?.schema, + supportsRelationJoins: true + }; + } + async dispose() { + return this.release?.(); + } + underlyingDriver() { + return this.client; + } +}; +var PrismaPgAdapterFactory = class { + static { + __name(this, "PrismaPgAdapterFactory"); + } + constructor(poolOrConfig, options) { + this.options = options; + if (poolOrConfig instanceof esm_default.Pool) { + this.externalPool = poolOrConfig; + this.config = poolOrConfig.options; + } else if (typeof poolOrConfig === "string") { + this.externalPool = null; + this.config = { connectionString: poolOrConfig }; + } else { + this.externalPool = null; + this.config = poolOrConfig; + } + } + provider = "postgres"; + adapterName = name; + config; + externalPool; + async connect() { + const client = this.externalPool ?? new esm_default.Pool(this.config); + const onIdleClientError = /* @__PURE__ */ __name((err) => { + debug2(`Error from idle pool client: ${err.message} %O`, err); + this.options?.onPoolError?.(err); + }, "onIdleClientError"); + client.on("error", onIdleClientError); + return new PrismaPgAdapter(client, this.options, async () => { + if (this.externalPool) { + if (this.options?.disposeExternalPool) { + await this.externalPool.end(); + this.externalPool = null; + } else { + this.externalPool.removeListener("error", onIdleClientError); + } + } else { + await client.end(); + } + }); + } + async connectToShadowDb() { + const conn = await this.connect(); + const database = `prisma_migrate_shadow_db_${globalThis.crypto.randomUUID()}`; + await conn.executeScript(`CREATE DATABASE "${database}"`); + const client = new esm_default.Pool({ ...this.config, database }); + return new PrismaPgAdapter(client, void 0, async () => { + await conn.executeScript(`DROP DATABASE "${database}"`); + await client.end(); + }); + } +}; + +// dist/generated/prisma/client.js +import * as path from "node:path"; +import { fileURLToPath } from "node:url"; + +// dist/generated/prisma/internal/class.js +var runtime = __toESM(require_client(), 1); +var config2 = { + "previewFeatures": [], + "clientVersion": "7.10.1", + "engineVersion": "d1b3f377ca835d73fd50954a5e22128b9ebdd6b8", + "activeProvider": "postgresql", + "inlineSchema": 'generator client {\n provider = "prisma-client"\n output = "../src/generated/prisma"\n moduleFormat = "esm"\n importFileExtension = "js"\n}\n\ndatasource db {\n provider = "postgresql"\n}\n\nenum Role {\n ADMIN\n EDITOR\n}\n\nenum MessageStatus {\n NEW\n READ\n ARCHIVED\n}\n\nmodel AdminUser {\n id Int @id @default(autoincrement())\n phone String @unique\n name String\n passwordHash String\n role Role @default(EDITOR)\n isActive Boolean @default(true)\n lastLoginAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n refreshTokens RefreshToken[]\n auditLogs AuditLog[]\n}\n\nmodel RefreshToken {\n id Int @id @default(autoincrement())\n userId Int\n user AdminUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n /// sha256 of the opaque token stored in the httpOnly cookie\n tokenHash String @unique\n expiresAt DateTime\n revokedAt DateTime?\n userAgent String @default("")\n createdAt DateTime @default(now())\n\n @@index([userId])\n}\n\nmodel Media {\n id Int @id @default(autoincrement())\n /// object key in the S3 bucket; the public URL is MEDIA_PUBLIC_URL + "/" + key\n key String @unique\n mime String\n size Int\n width Int?\n height Int?\n alt String @default("")\n originalName String @default("")\n createdAt DateTime @default(now())\n categoryCovers Category[] @relation("CategoryCover")\n productImages Product[] @relation("ProductImage")\n productGallery ProductImage[]\n}\n\nmodel Category {\n id Int @id @default(autoincrement())\n slug String @unique\n code String\n name String\n nameEn String @default("")\n shortDesc String @default("")\n fullDesc String @default("")\n /// Lucide icon name\n icon String @default("")\n coverImageId Int?\n coverImage Media? @relation("CategoryCover", fields: [coverImageId], references: [id], onDelete: SetNull)\n sortOrder Int @default(0)\n isPublished Boolean @default(true)\n seoTitle String @default("")\n seoDescription String @default("")\n groups ProductGroup[]\n products Product[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([sortOrder])\n}\n\nmodel ProductGroup {\n id Int @id @default(autoincrement())\n categoryId Int\n category Category @relation(fields: [categoryId], references: [id], onDelete: Cascade)\n slug String\n name String\n desc String @default("")\n sortOrder Int @default(0)\n products Product[]\n\n @@unique([categoryId, slug])\n}\n\nmodel Product {\n id Int @id @default(autoincrement())\n categoryId Int\n category Category @relation(fields: [categoryId], references: [id], onDelete: Restrict)\n groupId Int?\n group ProductGroup? @relation(fields: [groupId], references: [id], onDelete: SetNull)\n code String @unique\n slug String @unique\n name String\n nameEn String @default("")\n desc String @default("")\n specs String[]\n variants String[]\n /// long description for the product page; a blank line starts a new paragraph\n details String @default("")\n brand String @default("")\n /// country of manufacture\n origin String @default("")\n sizes String[] @default([])\n standards String[] @default([])\n features String[] @default([])\n applications String[] @default([])\n /// technical specification table: [{ "name": "...", "value": "..." }]\n attributes Json @default("[]")\n packaging String @default("")\n minOrder String @default("")\n seoTitle String @default("")\n seoDescription String @default("")\n imageId Int?\n image Media? @relation("ProductImage", fields: [imageId], references: [id], onDelete: SetNull)\n gallery ProductImage[]\n sortOrder Int @default(0)\n isPublished Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([categoryId, sortOrder])\n}\n\nmodel ProductImage {\n productId Int\n mediaId Int\n sortOrder Int @default(0)\n product Product @relation(fields: [productId], references: [id], onDelete: Cascade)\n media Media @relation(fields: [mediaId], references: [id], onDelete: Cascade)\n\n @@id([productId, mediaId])\n}\n\n/// One row per editable website section; `data` is validated by the zod schema for `key` (@imen/shared)\nmodel SiteSection {\n key String @id\n data Json\n updatedById Int?\n updatedAt DateTime @updatedAt\n}\n\nmodel ContactMessage {\n id Int @id @default(autoincrement())\n name String\n org String\n phone String\n message String @default("")\n status MessageStatus @default(NEW)\n ip String @default("")\n userAgent String @default("")\n createdAt DateTime @default(now())\n\n @@index([status, createdAt])\n}\n\nmodel AuditLog {\n id Int @id @default(autoincrement())\n userId Int?\n user AdminUser? @relation(fields: [userId], references: [id], onDelete: SetNull)\n /// create | update | delete | login ...\n action String\n /// product | category | section | media | user | message\n entity String\n entityId String @default("")\n summary String @default("")\n createdAt DateTime @default(now())\n\n @@index([createdAt])\n}\n', + "runtimeDataModel": { + "models": {}, + "enums": {}, + "types": {} + }, + "parameterizationSchema": { + "strings": [], + "graph": "" + } +}; +config2.runtimeDataModel = JSON.parse('{"models":{"AdminUser":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"phone","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"passwordHash","kind":"scalar","type":"String"},{"name":"role","kind":"enum","type":"Role"},{"name":"isActive","kind":"scalar","type":"Boolean"},{"name":"lastLoginAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"refreshTokens","kind":"object","type":"RefreshToken","relationName":"AdminUserToRefreshToken"},{"name":"auditLogs","kind":"object","type":"AuditLog","relationName":"AdminUserToAuditLog"}],"dbName":null,"schema":null},"RefreshToken":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"userId","kind":"scalar","type":"Int"},{"name":"user","kind":"object","type":"AdminUser","relationName":"AdminUserToRefreshToken"},{"name":"tokenHash","kind":"scalar","type":"String"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"revokedAt","kind":"scalar","type":"DateTime"},{"name":"userAgent","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null,"schema":null},"Media":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"key","kind":"scalar","type":"String"},{"name":"mime","kind":"scalar","type":"String"},{"name":"size","kind":"scalar","type":"Int"},{"name":"width","kind":"scalar","type":"Int"},{"name":"height","kind":"scalar","type":"Int"},{"name":"alt","kind":"scalar","type":"String"},{"name":"originalName","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"categoryCovers","kind":"object","type":"Category","relationName":"CategoryCover"},{"name":"productImages","kind":"object","type":"Product","relationName":"ProductImage"},{"name":"productGallery","kind":"object","type":"ProductImage","relationName":"MediaToProductImage"}],"dbName":null,"schema":null},"Category":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"slug","kind":"scalar","type":"String"},{"name":"code","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"nameEn","kind":"scalar","type":"String"},{"name":"shortDesc","kind":"scalar","type":"String"},{"name":"fullDesc","kind":"scalar","type":"String"},{"name":"icon","kind":"scalar","type":"String"},{"name":"coverImageId","kind":"scalar","type":"Int"},{"name":"coverImage","kind":"object","type":"Media","relationName":"CategoryCover"},{"name":"sortOrder","kind":"scalar","type":"Int"},{"name":"isPublished","kind":"scalar","type":"Boolean"},{"name":"seoTitle","kind":"scalar","type":"String"},{"name":"seoDescription","kind":"scalar","type":"String"},{"name":"groups","kind":"object","type":"ProductGroup","relationName":"CategoryToProductGroup"},{"name":"products","kind":"object","type":"Product","relationName":"CategoryToProduct"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null,"schema":null},"ProductGroup":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"categoryId","kind":"scalar","type":"Int"},{"name":"category","kind":"object","type":"Category","relationName":"CategoryToProductGroup"},{"name":"slug","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"desc","kind":"scalar","type":"String"},{"name":"sortOrder","kind":"scalar","type":"Int"},{"name":"products","kind":"object","type":"Product","relationName":"ProductToProductGroup"}],"dbName":null,"schema":null},"Product":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"categoryId","kind":"scalar","type":"Int"},{"name":"category","kind":"object","type":"Category","relationName":"CategoryToProduct"},{"name":"groupId","kind":"scalar","type":"Int"},{"name":"group","kind":"object","type":"ProductGroup","relationName":"ProductToProductGroup"},{"name":"code","kind":"scalar","type":"String"},{"name":"slug","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"nameEn","kind":"scalar","type":"String"},{"name":"desc","kind":"scalar","type":"String"},{"name":"specs","kind":"scalar","type":"String"},{"name":"variants","kind":"scalar","type":"String"},{"name":"details","kind":"scalar","type":"String"},{"name":"brand","kind":"scalar","type":"String"},{"name":"origin","kind":"scalar","type":"String"},{"name":"sizes","kind":"scalar","type":"String"},{"name":"standards","kind":"scalar","type":"String"},{"name":"features","kind":"scalar","type":"String"},{"name":"applications","kind":"scalar","type":"String"},{"name":"attributes","kind":"scalar","type":"Json"},{"name":"packaging","kind":"scalar","type":"String"},{"name":"minOrder","kind":"scalar","type":"String"},{"name":"seoTitle","kind":"scalar","type":"String"},{"name":"seoDescription","kind":"scalar","type":"String"},{"name":"imageId","kind":"scalar","type":"Int"},{"name":"image","kind":"object","type":"Media","relationName":"ProductImage"},{"name":"gallery","kind":"object","type":"ProductImage","relationName":"ProductToProductImage"},{"name":"sortOrder","kind":"scalar","type":"Int"},{"name":"isPublished","kind":"scalar","type":"Boolean"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null,"schema":null},"ProductImage":{"fields":[{"name":"productId","kind":"scalar","type":"Int"},{"name":"mediaId","kind":"scalar","type":"Int"},{"name":"sortOrder","kind":"scalar","type":"Int"},{"name":"product","kind":"object","type":"Product","relationName":"ProductToProductImage"},{"name":"media","kind":"object","type":"Media","relationName":"MediaToProductImage"}],"dbName":null,"schema":null},"SiteSection":{"fields":[{"name":"key","kind":"scalar","type":"String"},{"name":"data","kind":"scalar","type":"Json"},{"name":"updatedById","kind":"scalar","type":"Int"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null,"schema":null},"ContactMessage":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"name","kind":"scalar","type":"String"},{"name":"org","kind":"scalar","type":"String"},{"name":"phone","kind":"scalar","type":"String"},{"name":"message","kind":"scalar","type":"String"},{"name":"status","kind":"enum","type":"MessageStatus"},{"name":"ip","kind":"scalar","type":"String"},{"name":"userAgent","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null,"schema":null},"AuditLog":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"userId","kind":"scalar","type":"Int"},{"name":"user","kind":"object","type":"AdminUser","relationName":"AdminUserToAuditLog"},{"name":"action","kind":"scalar","type":"String"},{"name":"entity","kind":"scalar","type":"String"},{"name":"entityId","kind":"scalar","type":"String"},{"name":"summary","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null,"schema":null}},"enums":{},"types":{}}'); +config2.parameterizationSchema = { + strings: JSON.parse('["where","orderBy","cursor","user","refreshTokens","auditLogs","_count","AdminUser.findUnique","AdminUser.findUniqueOrThrow","AdminUser.findFirst","AdminUser.findFirstOrThrow","AdminUser.findMany","data","AdminUser.createOne","AdminUser.createMany","AdminUser.createManyAndReturn","AdminUser.updateOne","AdminUser.updateMany","AdminUser.updateManyAndReturn","create","update","AdminUser.upsertOne","AdminUser.deleteOne","AdminUser.deleteMany","having","_avg","_sum","_min","_max","AdminUser.groupBy","AdminUser.aggregate","RefreshToken.findUnique","RefreshToken.findUniqueOrThrow","RefreshToken.findFirst","RefreshToken.findFirstOrThrow","RefreshToken.findMany","RefreshToken.createOne","RefreshToken.createMany","RefreshToken.createManyAndReturn","RefreshToken.updateOne","RefreshToken.updateMany","RefreshToken.updateManyAndReturn","RefreshToken.upsertOne","RefreshToken.deleteOne","RefreshToken.deleteMany","RefreshToken.groupBy","RefreshToken.aggregate","coverImage","category","group","image","product","media","gallery","products","groups","categoryCovers","productImages","productGallery","Media.findUnique","Media.findUniqueOrThrow","Media.findFirst","Media.findFirstOrThrow","Media.findMany","Media.createOne","Media.createMany","Media.createManyAndReturn","Media.updateOne","Media.updateMany","Media.updateManyAndReturn","Media.upsertOne","Media.deleteOne","Media.deleteMany","Media.groupBy","Media.aggregate","Category.findUnique","Category.findUniqueOrThrow","Category.findFirst","Category.findFirstOrThrow","Category.findMany","Category.createOne","Category.createMany","Category.createManyAndReturn","Category.updateOne","Category.updateMany","Category.updateManyAndReturn","Category.upsertOne","Category.deleteOne","Category.deleteMany","Category.groupBy","Category.aggregate","ProductGroup.findUnique","ProductGroup.findUniqueOrThrow","ProductGroup.findFirst","ProductGroup.findFirstOrThrow","ProductGroup.findMany","ProductGroup.createOne","ProductGroup.createMany","ProductGroup.createManyAndReturn","ProductGroup.updateOne","ProductGroup.updateMany","ProductGroup.updateManyAndReturn","ProductGroup.upsertOne","ProductGroup.deleteOne","ProductGroup.deleteMany","ProductGroup.groupBy","ProductGroup.aggregate","Product.findUnique","Product.findUniqueOrThrow","Product.findFirst","Product.findFirstOrThrow","Product.findMany","Product.createOne","Product.createMany","Product.createManyAndReturn","Product.updateOne","Product.updateMany","Product.updateManyAndReturn","Product.upsertOne","Product.deleteOne","Product.deleteMany","Product.groupBy","Product.aggregate","ProductImage.findUnique","ProductImage.findUniqueOrThrow","ProductImage.findFirst","ProductImage.findFirstOrThrow","ProductImage.findMany","ProductImage.createOne","ProductImage.createMany","ProductImage.createManyAndReturn","ProductImage.updateOne","ProductImage.updateMany","ProductImage.updateManyAndReturn","ProductImage.upsertOne","ProductImage.deleteOne","ProductImage.deleteMany","ProductImage.groupBy","ProductImage.aggregate","SiteSection.findUnique","SiteSection.findUniqueOrThrow","SiteSection.findFirst","SiteSection.findFirstOrThrow","SiteSection.findMany","SiteSection.createOne","SiteSection.createMany","SiteSection.createManyAndReturn","SiteSection.updateOne","SiteSection.updateMany","SiteSection.updateManyAndReturn","SiteSection.upsertOne","SiteSection.deleteOne","SiteSection.deleteMany","SiteSection.groupBy","SiteSection.aggregate","ContactMessage.findUnique","ContactMessage.findUniqueOrThrow","ContactMessage.findFirst","ContactMessage.findFirstOrThrow","ContactMessage.findMany","ContactMessage.createOne","ContactMessage.createMany","ContactMessage.createManyAndReturn","ContactMessage.updateOne","ContactMessage.updateMany","ContactMessage.updateManyAndReturn","ContactMessage.upsertOne","ContactMessage.deleteOne","ContactMessage.deleteMany","ContactMessage.groupBy","ContactMessage.aggregate","AuditLog.findUnique","AuditLog.findUniqueOrThrow","AuditLog.findFirst","AuditLog.findFirstOrThrow","AuditLog.findMany","AuditLog.createOne","AuditLog.createMany","AuditLog.createManyAndReturn","AuditLog.updateOne","AuditLog.updateMany","AuditLog.updateManyAndReturn","AuditLog.upsertOne","AuditLog.deleteOne","AuditLog.deleteMany","AuditLog.groupBy","AuditLog.aggregate","AND","OR","NOT","id","userId","action","entity","entityId","summary","createdAt","equals","in","notIn","lt","lte","gt","gte","not","contains","startsWith","endsWith","name","org","phone","message","MessageStatus","status","ip","userAgent","key","updatedById","updatedAt","string_contains","string_starts_with","string_ends_with","array_starts_with","array_ends_with","array_contains","productId","mediaId","sortOrder","categoryId","groupId","code","slug","nameEn","desc","specs","variants","details","brand","origin","sizes","standards","features","applications","attributes","packaging","minOrder","seoTitle","seoDescription","imageId","isPublished","has","hasEvery","hasSome","shortDesc","fullDesc","icon","coverImageId","mime","size","width","height","alt","originalName","productId_mediaId","every","some","none","categoryId_slug","tokenHash","expiresAt","revokedAt","passwordHash","Role","role","isActive","lastLoginAt","is","isNot","connectOrCreate","upsert","createMany","set","disconnect","delete","connect","updateMany","deleteMany","push","increment","decrement","multiply","divide"]'), + graph: "8ARqoAEOBAAA3AIAIAUAAN0CACC7AQAA2QIAMLwBAAALABC9AQAA2QIAML4BAgAAAAHEAUAAsAIAIdABAQCuAgAh0gEBAAAAAdoBQACwAgAhjwIBAK4CACGRAgAA2gKRAiKSAiAAxQIAIZMCQADbAgAhAQAAAAEAIAsDAADhAgAguwEAAOACADC8AQAAAwAQvQEAAOACADC-AQIArQIAIb8BAgCtAgAhxAFAALACACHXAQEArgIAIYwCAQCuAgAhjQJAALACACGOAkAA2wIAIQIDAAC6BAAgjgIAAOICACALAwAA4QIAILsBAADgAgAwvAEAAAMAEL0BAADgAgAwvgECAAAAAb8BAgCtAgAhxAFAALACACHXAQEArgIAIYwCAQAAAAGNAkAAsAIAIY4CQADbAgAhAwAAAAMAIAEAAAQAMAIAAAUAIAsDAADfAgAguwEAAN4CADC8AQAABwAQvQEAAN4CADC-AQIArQIAIb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQIDAAC6BAAgvwEAAOICACALAwAA3wIAILsBAADeAgAwvAEAAAcAEL0BAADeAgAwvgECAAAAAb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQMAAAAHACABAAAIADACAAAJACAOBAAA3AIAIAUAAN0CACC7AQAA2QIAMLwBAAALABC9AQAA2QIAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdIBAQCuAgAh2gFAALACACGPAgEArgIAIZECAADaApECIpICIADFAgAhkwJAANsCACEBAAAACwAgAQAAAAMAIAEAAAAHACABAAAAAQAgAwQAALgEACAFAAC5BAAgkwIAAOICACADAAAACwAgAQAAEAAwAgAAAQAgAwAAAAsAIAEAABAAMAIAAAEAIAMAAAALACABAAAQADACAAABACALBAAAtgQAIAUAALcEACC-AQIAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB2gFAAAAAAY8CAQAAAAGRAgAAAJECApICIAAAAAGTAkAAAAABAQwAABQAIAm-AQIAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB2gFAAAAAAY8CAQAAAAGRAgAAAJECApICIAAAAAGTAkAAAAABAQwAABYAMAEMAAAWADALBAAAnAQAIAUAAJ0EACC-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHSAQEA6AIAIdoBQADpAgAhjwIBAOgCACGRAgAAmwSRAiKSAiAAjQMAIZMCQACTBAAhAgAAAAEAIAwAABkAIAm-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHSAQEA6AIAIdoBQADpAgAhjwIBAOgCACGRAgAAmwSRAiKSAiAAjQMAIZMCQACTBAAhAgAAAAsAIAwAABsAIAIAAAALACAMAAAbACADAAAAAQAgEwAAFAAgFAAAGQAgAQAAAAEAIAEAAAALACAGBgAAlgQAIBkAAJcEACAaAACaBAAgGwAAmQQAIBwAAJgEACCTAgAA4gIAIAy7AQAA1QIAMLwBAAAiABC9AQAA1QIAML4BAgCaAgAhxAFAAJ0CACHQAQEAnAIAIdIBAQCcAgAh2gFAAJ0CACGPAgEAnAIAIZECAADWApECIpICIAC6AgAhkwJAANICACEDAAAACwAgAQAAIQAwGAAAIgAgAwAAAAsAIAEAABAAMAIAAAEAIAEAAAAFACABAAAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgCAMAAJUEACC-AQIAAAABvwECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABAQwAACoAIAe-AQIAAAABvwECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABAQwAACwAMAEMAAAsADAIAwAAlAQAIL4BAgDqAgAhvwECAOoCACHEAUAA6QIAIdcBAQDoAgAhjAIBAOgCACGNAkAA6QIAIY4CQACTBAAhAgAAAAUAIAwAAC8AIAe-AQIA6gIAIb8BAgDqAgAhxAFAAOkCACHXAQEA6AIAIYwCAQDoAgAhjQJAAOkCACGOAkAAkwQAIQIAAAADACAMAAAxACACAAAAAwAgDAAAMQAgAwAAAAUAIBMAACoAIBQAAC8AIAEAAAAFACABAAAAAwAgBgYAAI4EACAZAACPBAAgGgAAkgQAIBsAAJEEACAcAACQBAAgjgIAAOICACAKuwEAANECADC8AQAAOAAQvQEAANECADC-AQIAmgIAIb8BAgCaAgAhxAFAAJ0CACHXAQEAnAIAIYwCAQCcAgAhjQJAAJ0CACGOAkAA0gIAIQMAAAADACABAAA3ADAYAAA4ACADAAAAAwAgAQAABAAwAgAABQAgDzgAAM4CACA5AADMAgAgOgAAyQIAILsBAADNAgAwvAEAAEEAEL0BAADNAgAwvgECAAAAAcQBQACwAgAh2AEBAAAAAYECAQCuAgAhggICAK0CACGDAgIAtgIAIYQCAgC2AgAhhQIBAK4CACGGAgEArgIAIQEAAAA7ACAVLwAAyAIAIDYAAMwCACA3AADQAgAguwEAAM8CADC8AQAAPQAQvQEAAM8CADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHaAUAAsAIAIeMBAgCtAgAh5gEBAK4CACHnAQEArgIAIegBAQCuAgAh9gEBAK4CACH3AQEArgIAIfkBIADFAgAh_QEBAK4CACH-AQEArgIAIf8BAQCuAgAhgAICALYCACEELwAAigQAIDYAAIcEACA3AACNBAAggAIAAOICACAVLwAAyAIAIDYAAMwCACA3AADQAgAguwEAAM8CADC8AQAAPQAQvQEAAM8CADC-AQIAAAABxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQAAAAHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhAwAAAD0AIAEAAD4AMAIAAD8AIA84AADOAgAgOQAAzAIAIDoAAMkCACC7AQAAzQIAMLwBAABBABC9AQAAzQIAML4BAgCtAgAhxAFAALACACHYAQEArgIAIYECAQCuAgAhggICAK0CACGDAgIAtgIAIYQCAgC2AgAhhQIBAK4CACGGAgEArgIAIQEAAABBACALMAAAxgIAIDYAAMwCACC7AQAAywIAMLwBAABDABC9AQAAywIAML4BAgCtAgAh0AEBAK4CACHjAQIArQIAIeQBAgCtAgAh5wEBAK4CACHpAQEArgIAIQIwAACLBAAgNgAAhwQAIAwwAADGAgAgNgAAzAIAILsBAADLAgAwvAEAAEMAEL0BAADLAgAwvgECAAAAAdABAQCuAgAh4wECAK0CACHkAQIArQIAIecBAQCuAgAh6QEBAK4CACGLAgAAygIAIAMAAABDACABAABEADACAABFACAiMAAAxgIAIDEAAMcCACAyAADIAgAgNQAAyQIAILsBAADEAgAwvAEAAEcAEL0BAADEAgAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeQBAgCtAgAh5QECALYCACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACHpAQEArgIAIeoBAAC5AgAg6wEAALkCACDsAQEArgIAIe0BAQCuAgAh7gEBAK4CACHvAQAAuQIAIPABAAC5AgAg8QEAALkCACDyAQAAuQIAIPMBAAC1AgAg9AEBAK4CACH1AQEArgIAIfYBAQCuAgAh9wEBAK4CACH4AQIAtgIAIfkBIADFAgAhBjAAAIsEACAxAACMBAAgMgAAigQAIDUAAIgEACDlAQAA4gIAIPgBAADiAgAgIjAAAMYCACAxAADHAgAgMgAAyAIAIDUAAMkCACC7AQAAxAIAMLwBAABHABC9AQAAxAIAML4BAgAAAAHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeQBAgCtAgAh5QECALYCACHmAQEAAAAB5wEBAAAAAegBAQCuAgAh6QEBAK4CACHqAQAAuQIAIOsBAAC5AgAg7AEBAK4CACHtAQEArgIAIe4BAQCuAgAh7wEAALkCACDwAQAAuQIAIPEBAAC5AgAg8gEAALkCACDzAQAAtQIAIPQBAQCuAgAh9QEBAK4CACH2AQEArgIAIfcBAQCuAgAh-AECALYCACH5ASAAxQIAIQMAAABHACABAABIADACAABJACABAAAAQwAgAQAAAEEAIAgzAADCAgAgNAAAwwIAILsBAADBAgAwvAEAAE0AEL0BAADBAgAw4QECAK0CACHiAQIArQIAIeMBAgCtAgAhAjMAAIkEACA0AACKBAAgCTMAAMICACA0AADDAgAguwEAAMECADC8AQAATQAQvQEAAMECADDhAQIArQIAIeIBAgCtAgAh4wECAK0CACGHAgAAwAIAIAMAAABNACABAABOADACAABPACABAAAATQAgAQAAAEcAIAMAAABHACABAABIADACAABJACABAAAAQwAgAQAAAEcAIAMAAABHACABAABIADACAABJACADAAAATQAgAQAATgAwAgAATwAgAQAAAD0AIAEAAABHACABAAAATQAgAQAAADsAIAU4AACGBAAgOQAAhwQAIDoAAIgEACCDAgAA4gIAIIQCAADiAgAgAwAAAEEAIAEAAFwAMAIAADsAIAMAAABBACABAABcADACAAA7ACADAAAAQQAgAQAAXAAwAgAAOwAgDDgAAIMEACA5AACEBAAgOgAAhQQAIL4BAgAAAAHEAUAAAAAB2AEBAAAAAYECAQAAAAGCAgIAAAABgwICAAAAAYQCAgAAAAGFAgEAAAABhgIBAAAAAQEMAABgACAJvgECAAAAAcQBQAAAAAHYAQEAAAABgQIBAAAAAYICAgAAAAGDAgIAAAABhAICAAAAAYUCAQAAAAGGAgEAAAABAQwAAGIAMAEMAABiADAMOAAA4gMAIDkAAOMDACA6AADkAwAgvgECAOoCACHEAUAA6QIAIdgBAQDoAgAhgQIBAOgCACGCAgIA6gIAIYMCAgDrAgAhhAICAOsCACGFAgEA6AIAIYYCAQDoAgAhAgAAADsAIAwAAGUAIAm-AQIA6gIAIcQBQADpAgAh2AEBAOgCACGBAgEA6AIAIYICAgDqAgAhgwICAOsCACGEAgIA6wIAIYUCAQDoAgAhhgIBAOgCACECAAAAQQAgDAAAZwAgAgAAAEEAIAwAAGcAIAMAAAA7ACATAABgACAUAABlACABAAAAOwAgAQAAAEEAIAcGAADdAwAgGQAA3gMAIBoAAOEDACAbAADgAwAgHAAA3wMAIIMCAADiAgAghAIAAOICACAMuwEAAL8CADC8AQAAbgAQvQEAAL8CADC-AQIAmgIAIcQBQACdAgAh2AEBAJwCACGBAgEAnAIAIYICAgCaAgAhgwICAJsCACGEAgIAmwIAIYUCAQCcAgAhhgIBAJwCACEDAAAAQQAgAQAAbQAwGAAAbgAgAwAAAEEAIAEAAFwAMAIAADsAIAEAAAA_ACABAAAAPwAgAwAAAD0AIAEAAD4AMAIAAD8AIAMAAAA9ACABAAA-ADACAAA_ACADAAAAPQAgAQAAPgAwAgAAPwAgEi8AANoDACA2AADcAwAgNwAA2wMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABgAICAAAAAQEMAAB2ACAPvgECAAAAAcQBQAAAAAHQAQEAAAAB2gFAAAAAAeMBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAH2AQEAAAAB9wEBAAAAAfkBIAAAAAH9AQEAAAAB_gEBAAAAAf8BAQAAAAGAAgIAAAABAQwAAHgAMAEMAAB4ADABAAAAQQAgEi8AAMIDACA2AADEAwAgNwAAwwMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIQIAAAA_ACAMAAB8ACAPvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIfYBAQDoAgAh9wEBAOgCACH5ASAAjQMAIf0BAQDoAgAh_gEBAOgCACH_AQEA6AIAIYACAgDrAgAhAgAAAD0AIAwAAH4AIAIAAAA9ACAMAAB-ACABAAAAQQAgAwAAAD8AIBMAAHYAIBQAAHwAIAEAAAA_ACABAAAAPQAgBgYAAL0DACAZAAC-AwAgGgAAwQMAIBsAAMADACAcAAC_AwAggAIAAOICACASuwEAAL4CADC8AQAAhgEAEL0BAAC-AgAwvgECAJoCACHEAUAAnQIAIdABAQCcAgAh2gFAAJ0CACHjAQIAmgIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIfYBAQCcAgAh9wEBAJwCACH5ASAAugIAIf0BAQCcAgAh_gEBAJwCACH_AQEAnAIAIYACAgCbAgAhAwAAAD0AIAEAAIUBADAYAACGAQAgAwAAAD0AIAEAAD4AMAIAAD8AIAEAAABFACABAAAARQAgAwAAAEMAIAEAAEQAMAIAAEUAIAMAAABDACABAABEADACAABFACADAAAAQwAgAQAARAAwAgAARQAgCDAAALsDACA2AAC8AwAgvgECAAAAAdABAQAAAAHjAQIAAAAB5AECAAAAAecBAQAAAAHpAQEAAAABAQwAAI4BACAGvgECAAAAAdABAQAAAAHjAQIAAAAB5AECAAAAAecBAQAAAAHpAQEAAAABAQwAAJABADABDAAAkAEAMAgwAACtAwAgNgAArgMAIL4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIeQBAgDqAgAh5wEBAOgCACHpAQEA6AIAIQIAAABFACAMAACTAQAgBr4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIeQBAgDqAgAh5wEBAOgCACHpAQEA6AIAIQIAAABDACAMAACVAQAgAgAAAEMAIAwAAJUBACADAAAARQAgEwAAjgEAIBQAAJMBACABAAAARQAgAQAAAEMAIAUGAACoAwAgGQAAqQMAIBoAAKwDACAbAACrAwAgHAAAqgMAIAm7AQAAvQIAMLwBAACcAQAQvQEAAL0CADC-AQIAmgIAIdABAQCcAgAh4wECAJoCACHkAQIAmgIAIecBAQCcAgAh6QEBAJwCACEDAAAAQwAgAQAAmwEAMBgAAJwBACADAAAAQwAgAQAARAAwAgAARQAgAQAAAEkAIAEAAABJACADAAAARwAgAQAASAAwAgAASQAgAwAAAEcAIAEAAEgAMAIAAEkAIAMAAABHACABAABIADACAABJACAfMAAApAMAIDEAAKUDACAyAACmAwAgNQAApwMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeUBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAHpAQEAAAAB6gEAAJ4DACDrAQAAnwMAIOwBAQAAAAHtAQEAAAAB7gEBAAAAAe8BAACgAwAg8AEAAKEDACDxAQAAogMAIPIBAACjAwAg8wGAAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AQIAAAAB-QEgAAAAAQEMAACkAQAgG74BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeUBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAHpAQEAAAAB6gEAAJ4DACDrAQAAnwMAIOwBAQAAAAHtAQEAAAAB7gEBAAAAAe8BAACgAwAg8AEAAKEDACDxAQAAogMAIPIBAACjAwAg8wGAAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AQIAAAAB-QEgAAAAAQEMAACmAQAwAQwAAKYBADABAAAAQwAgAQAAAEEAIB8wAACOAwAgMQAAjwMAIDIAAJADACA1AACRAwAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeQBAgDqAgAh5QECAOsCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACHpAQEA6AIAIeoBAACHAwAg6wEAAIgDACDsAQEA6AIAIe0BAQDoAgAh7gEBAOgCACHvAQAAiQMAIPABAACKAwAg8QEAAIsDACDyAQAAjAMAIPMBgAAAAAH0AQEA6AIAIfUBAQDoAgAh9gEBAOgCACH3AQEA6AIAIfgBAgDrAgAh-QEgAI0DACECAAAASQAgDAAAqwEAIBu-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5AECAOoCACHlAQIA6wIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIekBAQDoAgAh6gEAAIcDACDrAQAAiAMAIOwBAQDoAgAh7QEBAOgCACHuAQEA6AIAIe8BAACJAwAg8AEAAIoDACDxAQAAiwMAIPIBAACMAwAg8wGAAAAAAfQBAQDoAgAh9QEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-AECAOsCACH5ASAAjQMAIQIAAABHACAMAACtAQAgAgAAAEcAIAwAAK0BACABAAAAQwAgAQAAAEEAIAMAAABJACATAACkAQAgFAAAqwEAIAEAAABJACABAAAARwAgBwYAAIIDACAZAACDAwAgGgAAhgMAIBsAAIUDACAcAACEAwAg5QEAAOICACD4AQAA4gIAIB67AQAAuAIAMLwBAAC2AQAQvQEAALgCADC-AQIAmgIAIcQBQACdAgAh0AEBAJwCACHaAUAAnQIAIeMBAgCaAgAh5AECAJoCACHlAQIAmwIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIekBAQCcAgAh6gEAALkCACDrAQAAuQIAIOwBAQCcAgAh7QEBAJwCACHuAQEAnAIAIe8BAAC5AgAg8AEAALkCACDxAQAAuQIAIPIBAAC5AgAg8wEAALICACD0AQEAnAIAIfUBAQCcAgAh9gEBAJwCACH3AQEAnAIAIfgBAgCbAgAh-QEgALoCACEDAAAARwAgAQAAtQEAMBgAALYBACADAAAARwAgAQAASAAwAgAASQAgAQAAAE8AIAEAAABPACADAAAATQAgAQAATgAwAgAATwAgAwAAAE0AIAEAAE4AMAIAAE8AIAMAAABNACABAABOADACAABPACAFMwAAgAMAIDQAAIEDACDhAQIAAAAB4gECAAAAAeMBAgAAAAEBDAAAvgEAIAPhAQIAAAAB4gECAAAAAeMBAgAAAAEBDAAAwAEAMAEMAADAAQAwBTMAAP4CACA0AAD_AgAg4QECAOoCACHiAQIA6gIAIeMBAgDqAgAhAgAAAE8AIAwAAMMBACAD4QECAOoCACHiAQIA6gIAIeMBAgDqAgAhAgAAAE0AIAwAAMUBACACAAAATQAgDAAAxQEAIAMAAABPACATAAC-AQAgFAAAwwEAIAEAAABPACABAAAATQAgBQYAAPkCACAZAAD6AgAgGgAA_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_gEAEL0BAACoAgAwvgECAJoCACHEAUAAnQIAIdABAQCcAgAh0QEBAJwCACHSAQEAnAIAIdMBAQCcAgAh1QEAAKkC1QEi1gEBAJwCACHXAQEAnAIAIQcGAACfAgAgGwAAqwIAIBwAAKsCACDFAQAAANUBAsYBAAAA1QEIxwEAAADVAQjMAQAAqgLVASIHBgAAnwIAIBsAAKsCACAcAACrAgAgxQEAAADVAQLGAQAAANUBCMcBAAAA1QEIzAEAAKoC1QEiBMUBAAAA1QECxgEAAADVAQjHAQAAANUBCMwBAACrAtUBIgy7AQAArAIAMLwBAADrAQAQvQEAAKwCADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHRAQEArgIAIdIBAQCuAgAh0wEBAK4CACHVAQAArwLVASLWAQEArgIAIdcBAQCuAgAhCMUBAgAAAAHGAQIAAAAExwECAAAABMgBAgAAAAHJAQIAAAABygECAAAAAcsBAgAAAAHMAQIAnwIAIQvFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAKICACHNAQEAAAABzgEBAAAAAc8BAQAAAAEExQEAAADVAQLGAQAAANUBCMcBAAAA1QEIzAEAAKsC1QEiCMUBQAAAAAHGAUAAAAAExwFAAAAABMgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAAoAIAIQcMAACyAgAguwEAALECADC8AQAA5QEAEL0BAACxAgAw2AEBAJwCACHZAQIAmwIAIdoBQACdAgAhDwYAAJ8CACAbAACzAgAgHAAAswIAIMUBgAAAAAHIAYAAAAAByQGAAAAAAcoBgAAAAAHLAYAAAAABzAGAAAAAAdsBAQAAAAHcAQEAAAAB3QEBAAAAAd4BgAAAAAHfAYAAAAAB4AGAAAAAAQzFAYAAAAAByAGAAAAAAckBgAAAAAHKAYAAAAABywGAAAAAAcwBgAAAAAHbAQEAAAAB3AEBAAAAAd0BAQAAAAHeAYAAAAAB3wGAAAAAAeABgAAAAAEHDAAAtQIAILsBAAC0AgAwvAEAANIBABC9AQAAtAIAMNgBAQCuAgAh2QECALYCACHaAUAAsAIAIQzFAYAAAAAByAGAAAAAAckBgAAAAAHKAYAAAAABywGAAAAAAcwBgAAAAAHbAQEAAAAB3AEBAAAAAd0BAQAAAAHeAYAAAAAB3wGAAAAAAeABgAAAAAEIxQECAAAAAcYBAgAAAAXHAQIAAAAFyAECAAAAAckBAgAAAAHKAQIAAAABywECAAAAAcwBAgCkAgAhBrsBAAC3AgAwvAEAAMwBABC9AQAAtwIAMOEBAgCaAgAh4gECAJoCACHjAQIAmgIAIR67AQAAuAIAMLwBAAC2AQAQvQEAALgCADC-AQIAmgIAIcQBQACdAgAh0AEBAJwCACHaAUAAnQIAIeMBAgCaAgAh5AECAJoCACHlAQIAmwIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIekBAQCcAgAh6gEAALkCACDrAQAAuQIAIOwBAQCcAgAh7QEBAJwCACHuAQEAnAIAIe8BAAC5AgAg8AEAALkCACDxAQAAuQIAIPIBAAC5AgAg8wEAALICACD0AQEAnAIAIfUBAQCcAgAh9gEBAJwCACH3AQEAnAIAIfgBAgCbAgAh-QEgALoCACEExQEBAAAABfoBAQAAAAH7AQEAAAAE_AEBAAAABAUGAACfAgAgGwAAvAIAIBwAALwCACDFASAAAAABzAEgALsCACEFBgAAnwIAIBsAALwCACAcAAC8AgAgxQEgAAAAAcwBIAC7AgAhAsUBIAAAAAHMASAAvAIAIQm7AQAAvQIAMLwBAACcAQAQvQEAAL0CADC-AQIAmgIAIdABAQCcAgAh4wECAJoCACHkAQIAmgIAIecBAQCcAgAh6QEBAJwCACESuwEAAL4CADC8AQAAhgEAEL0BAAC-AgAwvgECAJoCACHEAUAAnQIAIdABAQCcAgAh2gFAAJ0CACHjAQIAmgIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIfYBAQCcAgAh9wEBAJwCACH5ASAAugIAIf0BAQCcAgAh_gEBAJwCACH_AQEAnAIAIYACAgCbAgAhDLsBAAC_AgAwvAEAAG4AEL0BAAC_AgAwvgECAJoCACHEAUAAnQIAIdgBAQCcAgAhgQIBAJwCACGCAgIAmgIAIYMCAgCbAgAhhAICAJsCACGFAgEAnAIAIYYCAQCcAgAhAuEBAgAAAAHiAQIAAAABCDMAAMICACA0AADDAgAguwEAAMECADC8AQAATQAQvQEAAMECADDhAQIArQIAIeIBAgCtAgAh4wECAK0CACEkMAAAxgIAIDEAAMcCACAyAADIAgAgNQAAyQIAILsBAADEAgAwvAEAAEcAEL0BAADEAgAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeQBAgCtAgAh5QECALYCACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACHpAQEArgIAIeoBAAC5AgAg6wEAALkCACDsAQEArgIAIe0BAQCuAgAh7gEBAK4CACHvAQAAuQIAIPABAAC5AgAg8QEAALkCACDyAQAAuQIAIPMBAAC1AgAg9AEBAK4CACH1AQEArgIAIfYBAQCuAgAh9wEBAK4CACH4AQIAtgIAIfkBIADFAgAhlAIAAEcAIJUCAABHACAROAAAzgIAIDkAAMwCACA6AADJAgAguwEAAM0CADC8AQAAQQAQvQEAAM0CADC-AQIArQIAIcQBQACwAgAh2AEBAK4CACGBAgEArgIAIYICAgCtAgAhgwICALYCACGEAgIAtgIAIYUCAQCuAgAhhgIBAK4CACGUAgAAQQAglQIAAEEAICIwAADGAgAgMQAAxwIAIDIAAMgCACA1AADJAgAguwEAAMQCADC8AQAARwAQvQEAAMQCADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHaAUAAsAIAIeMBAgCtAgAh5AECAK0CACHlAQIAtgIAIeYBAQCuAgAh5wEBAK4CACHoAQEArgIAIekBAQCuAgAh6gEAALkCACDrAQAAuQIAIOwBAQCuAgAh7QEBAK4CACHuAQEArgIAIe8BAAC5AgAg8AEAALkCACDxAQAAuQIAIPIBAAC5AgAg8wEAALUCACD0AQEArgIAIfUBAQCuAgAh9gEBAK4CACH3AQEArgIAIfgBAgC2AgAh-QEgAMUCACECxQEgAAAAAcwBIAC8AgAhFy8AAMgCACA2AADMAgAgNwAA0AIAILsBAADPAgAwvAEAAD0AEL0BAADPAgAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeYBAQCuAgAh5wEBAK4CACHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhlAIAAD0AIJUCAAA9ACANMAAAxgIAIDYAAMwCACC7AQAAywIAMLwBAABDABC9AQAAywIAML4BAgCtAgAh0AEBAK4CACHjAQIArQIAIeQBAgCtAgAh5wEBAK4CACHpAQEArgIAIZQCAABDACCVAgAAQwAgETgAAM4CACA5AADMAgAgOgAAyQIAILsBAADNAgAwvAEAAEEAEL0BAADNAgAwvgECAK0CACHEAUAAsAIAIdgBAQCuAgAhgQIBAK4CACGCAgIArQIAIYMCAgC2AgAhhAICALYCACGFAgEArgIAIYYCAQCuAgAhlAIAAEEAIJUCAABBACADiAIAAE0AIIkCAABNACCKAgAATQAgAuQBAgAAAAHnAQEAAAABCzAAAMYCACA2AADMAgAguwEAAMsCADC8AQAAQwAQvQEAAMsCADC-AQIArQIAIdABAQCuAgAh4wECAK0CACHkAQIArQIAIecBAQCuAgAh6QEBAK4CACEDiAIAAEcAIIkCAABHACCKAgAARwAgDzgAAM4CACA5AADMAgAgOgAAyQIAILsBAADNAgAwvAEAAEEAEL0BAADNAgAwvgECAK0CACHEAUAAsAIAIdgBAQCuAgAhgQIBAK4CACGCAgIArQIAIYMCAgC2AgAhhAICALYCACGFAgEArgIAIYYCAQCuAgAhA4gCAAA9ACCJAgAAPQAgigIAAD0AIBUvAADIAgAgNgAAzAIAIDcAANACACC7AQAAzwIAMLwBAAA9ABC9AQAAzwIAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACH2AQEArgIAIfcBAQCuAgAh-QEgAMUCACH9AQEArgIAIf4BAQCuAgAh_wEBAK4CACGAAgIAtgIAIQOIAgAAQwAgiQIAAEMAIIoCAABDACAKuwEAANECADC8AQAAOAAQvQEAANECADC-AQIAmgIAIb8BAgCaAgAhxAFAAJ0CACHXAQEAnAIAIYwCAQCcAgAhjQJAAJ0CACGOAkAA0gIAIQsGAACkAgAgGwAA1AIAIBwAANQCACDFAUAAAAABxgFAAAAABccBQAAAAAXIAUAAAAAByQFAAAAAAcoBQAAAAAHLAUAAAAABzAFAANMCACELBgAApAIAIBsAANQCACAcAADUAgAgxQFAAAAAAcYBQAAAAAXHAUAAAAAFyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQADTAgAhCMUBQAAAAAHGAUAAAAAFxwFAAAAABcgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAA1AIAIQy7AQAA1QIAMLwBAAAiABC9AQAA1QIAML4BAgCaAgAhxAFAAJ0CACHQAQEAnAIAIdIBAQCcAgAh2gFAAJ0CACGPAgEAnAIAIZECAADWApECIpICIAC6AgAhkwJAANICACEHBgAAnwIAIBsAANgCACAcAADYAgAgxQEAAACRAgLGAQAAAJECCMcBAAAAkQIIzAEAANcCkQIiBwYAAJ8CACAbAADYAgAgHAAA2AIAIMUBAAAAkQICxgEAAACRAgjHAQAAAJECCMwBAADXApECIgTFAQAAAJECAsYBAAAAkQIIxwEAAACRAgjMAQAA2AKRAiIOBAAA3AIAIAUAAN0CACC7AQAA2QIAMLwBAAALABC9AQAA2QIAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdIBAQCuAgAh2gFAALACACGPAgEArgIAIZECAADaApECIpICIADFAgAhkwJAANsCACEExQEAAACRAgLGAQAAAJECCMcBAAAAkQIIzAEAANgCkQIiCMUBQAAAAAHGAUAAAAAFxwFAAAAABcgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAA1AIAIQOIAgAAAwAgiQIAAAMAIIoCAAADACADiAIAAAcAIIkCAAAHACCKAgAABwAgCwMAAN8CACC7AQAA3gIAMLwBAAAHABC9AQAA3gIAML4BAgCtAgAhvwECALYCACHAAQEArgIAIcEBAQCuAgAhwgEBAK4CACHDAQEArgIAIcQBQACwAgAhEAQAANwCACAFAADdAgAguwEAANkCADC8AQAACwAQvQEAANkCADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHSAQEArgIAIdoBQACwAgAhjwIBAK4CACGRAgAA2gKRAiKSAiAAxQIAIZMCQADbAgAhlAIAAAsAIJUCAAALACALAwAA4QIAILsBAADgAgAwvAEAAAMAEL0BAADgAgAwvgECAK0CACG_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-AECALYCACH5ASAAxQIAIRq-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5AECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACHpAQEA6AIAIeoBAACHAwAg6wEAAIgDACDsAQEA6AIAIe0BAQDoAgAh7gEBAOgCACHvAQAAiQMAIPABAACKAwAg8QEAAIsDACDyAQAAjAMAIPMBgAAAAAH0AQEA6AIAIfUBAQDoAgAh9gEBAOgCACH3AQEA6AIAIfgBAgDrAgAh-QEgAI0DACEdMAAAjgMAIDIAAJADACA1AACRAwAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeQBAgDqAgAh5gEBAOgCACHnAQEA6AIAIegBAQDoAgAh6QEBAOgCACHqAQAAhwMAIOsBAACIAwAg7AEBAOgCACHtAQEA6AIAIe4BAQDoAgAh7wEAAIkDACDwAQAAigMAIPEBAACLAwAg8gEAAIwDACDzAYAAAAAB9AEBAOgCACH1AQEA6AIAIfYBAQDoAgAh9wEBAOgCACH4AQIA6wIAIfkBIACNAwAhHTAAAKQDACAyAACmAwAgNQAApwMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBAgAAAAH5ASAAAAABAxMAAMwEACCWAgAAzQQAIJwCAAA_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-AMAMJcCAAD5AwAwmAIAAPoDACCZAgAA-wMAMJoCAAD7AwAwmwIAAPsDADCcAgAA-wMAMJ0CAAD9AwAwngIAAP4DADALEwAA7gMAMBQAAPIDADCWAgAA7wMAMJcCAADwAwAwmAIAAPEDACCZAgAAswMAMJoCAACzAwAwmwIAALMDADCcAgAAswMAMJ0CAADzAwAwngIAALYDADALEwAA5QMAMBQAAOkDADCWAgAA5gMAMJcCAADnAwAwmAIAAOgDACCZAgAAlgMAMJoCAACWAwAwmwIAAJYDADCcAgAAlgMAMJ0CAADqAwAwngIAAJkDADADMwAAgAMAIOEBAgAAAAHjAQIAAAABAgAAAE8AIBMAAO0DACADAAAATwAgEwAA7QMAIBQAAOwDACABDAAAxAQAMAIAAABPACAMAADsAwAgAgAAAJoDACAMAADrAwAgAuEBAgDqAgAh4wECAOoCACEDMwAA_gIAIOEBAgDqAgAh4wECAOoCACEDMwAAgAMAIOEBAgAAAAHjAQIAAAABHTAAAKQDACAxAAClAwAgNQAApwMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeUBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAHpAQEAAAAB6gEAAJ4DACDrAQAAnwMAIOwBAQAAAAHtAQEAAAAB7gEBAAAAAe8BAACgAwAg8AEAAKEDACDxAQAAogMAIPIBAACjAwAg8wGAAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAABAgAAAEkAIBMAAPYDACADAAAASQAgEwAA9gMAIBQAAPUDACABDAAAwwQAMAIAAABJACAMAAD1AwAgAgAAALcDACAMAAD0AwAgGr4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHkAQIA6gIAIeUBAgDrAgAh5gEBAOgCACHnAQEA6AIAIegBAQDoAgAh6QEBAOgCACHqAQAAhwMAIOsBAACIAwAg7AEBAOgCACHtAQEA6AIAIe4BAQDoAgAh7wEAAIkDACDwAQAAigMAIPEBAACLAwAg8gEAAIwDACDzAYAAAAAB9AEBAOgCACH1AQEA6AIAIfYBAQDoAgAh9wEBAOgCACH5ASAAjQMAIR0wAACOAwAgMQAAjwMAIDUAAJEDACC-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5AECAOoCACHlAQIA6wIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIekBAQDoAgAh6gEAAIcDACDrAQAAiAMAIOwBAQDoAgAh7QEBAOgCACHuAQEA6AIAIe8BAACJAwAg8AEAAIoDACDxAQAAiwMAIPIBAACMAwAg8wGAAAAAAfQBAQDoAgAh9QEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACEdMAAApAMAIDEAAKUDACA1AACnAwAgvgECAAAAAcQBQAAAAAHQAQEAAAAB2gFAAAAAAeMBAgAAAAHkAQIAAAAB5QECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfkBIAAAAAEQNgAA3AMAIDcAANsDACC-AQIAAAABxAFAAAAAAdABAQAAAAHaAUAAAAAB4wECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAfYBAQAAAAH3AQEAAAAB-QEgAAAAAf0BAQAAAAH-AQEAAAAB_wEBAAAAAQIAAAA_ACATAACCBAAgAwAAAD8AIBMAAIIEACAUAACBBAAgAQwAAMIEADAVLwAAyAIAIDYAAMwCACA3AADQAgAguwEAAM8CADC8AQAAPQAQvQEAAM8CADC-AQIAAAABxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQAAAAHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhAgAAAD8AIAwAAIEEACACAAAA_wMAIAwAAIAEACASuwEAAP4DADC8AQAA_wMAEL0BAAD-AwAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeYBAQCuAgAh5wEBAK4CACHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhErsBAAD-AwAwvAEAAP8DABC9AQAA_gMAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACH2AQEArgIAIfcBAQCuAgAh-QEgAMUCACH9AQEArgIAIf4BAQCuAgAh_wEBAK4CACGAAgIAtgIAIQ6-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5gEBAOgCACHnAQEA6AIAIegBAQDoAgAh9gEBAOgCACH3AQEA6AIAIfkBIACNAwAh_QEBAOgCACH-AQEA6AIAIf8BAQDoAgAhEDYAAMQDACA3AADDAwAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIfYBAQDoAgAh9wEBAOgCACH5ASAAjQMAIf0BAQDoAgAh_gEBAOgCACH_AQEA6AIAIRA2AADcAwAgNwAA2wMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABBBMAAPcDADCWAgAA-AMAMJgCAAD6AwAgnAIAAPsDADAEEwAA7gMAMJYCAADvAwAwmAIAAPEDACCcAgAAswMAMAQTAADlAwAwlgIAAOYDADCYAgAA6AMAIJwCAACWAwAwAAAABjAAAIsEACAxAACMBAAgMgAAigQAIDUAAIgEACDlAQAA4gIAIPgBAADiAgAgBTgAAIYEACA5AACHBAAgOgAAiAQAIIMCAADiAgAghAIAAOICACAELwAAigQAIDYAAIcEACA3AACNBAAggAIAAOICACACMAAAiwQAIDYAAIcEACAAAAAAAAABmQJAAAAAAQUTAAC9BAAgFAAAwAQAIJYCAAC-BAAglwIAAL8EACCcAgAAAQAgAxMAAL0EACCWAgAAvgQAIJwCAAABACAAAAAAAAGZAgAAAJECAgsTAACqBAAwFAAArwQAMJYCAACrBAAwlwIAAKwEADCYAgAArQQAIJkCAACuBAAwmgIAAK4EADCbAgAArgQAMJwCAACuBAAwnQIAALAEADCeAgAAsQQAMAsTAACeBAAwFAAAowQAMJYCAACfBAAwlwIAAKAEADCYAgAAoQQAIJkCAACiBAAwmgIAAKIEADCbAgAAogQAMJwCAACiBAAwnQIAAKQEADCeAgAApQQAMAa-AQIAAAABwAEBAAAAAcEBAQAAAAHCAQEAAAABwwEBAAAAAcQBQAAAAAECAAAACQAgEwAAqQQAIAMAAAAJACATAACpBAAgFAAAqAQAIAEMAAC8BAAwCwMAAN8CACC7AQAA3gIAMLwBAAAHABC9AQAA3gIAML4BAgAAAAG_AQIAtgIAIcABAQCuAgAhwQEBAK4CACHCAQEArgIAIcMBAQCuAgAhxAFAALACACECAAAACQAgDAAAqAQAIAIAAACmBAAgDAAApwQAIAq7AQAApQQAMLwBAACmBAAQvQEAAKUEADC-AQIArQIAIb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQq7AQAApQQAMLwBAACmBAAQvQEAAKUEADC-AQIArQIAIb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQa-AQIA6gIAIcABAQDoAgAhwQEBAOgCACHCAQEA6AIAIcMBAQDoAgAhxAFAAOkCACEGvgECAOoCACHAAQEA6AIAIcEBAQDoAgAhwgEBAOgCACHDAQEA6AIAIcQBQADpAgAhBr4BAgAAAAHAAQEAAAABwQEBAAAAAcIBAQAAAAHDAQEAAAABxAFAAAAAAQa-AQIAAAABxAFAAAAAAdcBAQAAAAGMAgEAAAABjQJAAAAAAY4CQAAAAAECAAAABQAgEwAAtQQAIAMAAAAFACATAAC1BAAgFAAAtAQAIAEMAAC7BAAwCwMAAOECACC7AQAA4AIAMLwBAAADABC9AQAA4AIAML4BAgAAAAG_AQIArQIAIcQBQACwAgAh1wEBAK4CACGMAgEAAAABjQJAALACACGOAkAA2wIAIQIAAAAFACAMAAC0BAAgAgAAALIEACAMAACzBAAgCrsBAACxBAAwvAEAALIEABC9AQAAsQQAML4BAgCtAgAhvwECAK0CACHEAUAAsAIAIdcBAQCuAgAhjAIBAK4CACGNAkAAsAIAIY4CQADbAgAhCrsBAACxBAAwvAEAALIEABC9AQAAsQQAML4BAgCtAgAhvwECAK0CACHEAUAAsAIAIdcBAQCuAgAhjAIBAK4CACGNAkAAsAIAIY4CQADbAgAhBr4BAgDqAgAhxAFAAOkCACHXAQEA6AIAIYwCAQDoAgAhjQJAAOkCACGOAkAAkwQAIQa-AQIA6gIAIcQBQADpAgAh1wEBAOgCACGMAgEA6AIAIY0CQADpAgAhjgJAAJMEACEGvgECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABBBMAAKoEADCWAgAAqwQAMJgCAACtBAAgnAIAAK4EADAEEwAAngQAMJYCAACfBAAwmAIAAKEEACCcAgAAogQAMAAAAwQAALgEACAFAAC5BAAgkwIAAOICACAGvgECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABBr4BAgAAAAHAAQEAAAABwQEBAAAAAcIBAQAAAAHDAQEAAAABxAFAAAAAAQoFAAC3BAAgvgECAAAAAcQBQAAAAAHQAQEAAAAB0gEBAAAAAdoBQAAAAAGPAgEAAAABkQIAAACRAgKSAiAAAAABkwJAAAAAAQIAAAABACATAAC9BAAgAwAAAAsAIBMAAL0EACAUAADBBAAgDAAAAAsAIAUAAJ0EACAMAADBBAAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh0gEBAOgCACHaAUAA6QIAIY8CAQDoAgAhkQIAAJsEkQIikgIgAI0DACGTAkAAkwQAIQoFAACdBAAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh0gEBAOgCACHaAUAA6QIAIY8CAQDoAgAhkQIAAJsEkQIikgIgAI0DACGTAkAAkwQAIQ6-AQIAAAABxAFAAAAAAdABAQAAAAHaAUAAAAAB4wECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAfYBAQAAAAH3AQEAAAAB-QEgAAAAAf0BAQAAAAH-AQEAAAAB_wEBAAAAARq-AQIAAAABxAFAAAAAAdABAQAAAAHaAUAAAAAB4wECAAAAAeQBAgAAAAHlAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB6QEBAAAAAeoBAACeAwAg6wEAAJ8DACDsAQEAAAAB7QEBAAAAAe4BAQAAAAHvAQAAoAMAIPABAAChAwAg8QEAAKIDACDyAQAAowMAIPMBgAAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-QEgAAAAAQLhAQIAAAAB4wECAAAAAQs5AACEBAAgOgAAhQQAIL4BAgAAAAHEAUAAAAAB2AEBAAAAAYECAQAAAAGCAgIAAAABgwICAAAAAYQCAgAAAAGFAgEAAAABhgIBAAAAAQIAAAA7ACATAADFBAAgBb4BAgAAAAHQAQEAAAAB4wECAAAAAecBAQAAAAHpAQEAAAABGr4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5QECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBAgAAAAH5ASAAAAABAwAAAEEAIBMAAMUEACAUAADLBAAgDQAAAEEAIAwAAMsEACA5AADjAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIQs5AADjAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIREvAADaAwAgNgAA3AMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABgAICAAAAAQIAAAA_ACATAADMBAAgGr4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBAgAAAAH5ASAAAAABAwAAAD0AIBMAAMwEACAUAADRBAAgEwAAAD0AIAwAANEEACAvAADCAwAgNgAAxAMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIREvAADCAwAgNgAAxAMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIQs4AACDBAAgOgAAhQQAIL4BAgAAAAHEAUAAAAAB2AEBAAAAAYECAQAAAAGCAgIAAAABgwICAAAAAYQCAgAAAAGFAgEAAAABhgIBAAAAAQIAAAA7ACATAADSBAAgBzAAALsDACC-AQIAAAAB0AEBAAAAAeMBAgAAAAHkAQIAAAAB5wEBAAAAAekBAQAAAAECAAAARQAgEwAA1AQAIBEvAADaAwAgNwAA2wMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABgAICAAAAAQIAAAA_ACATAADWBAAgAuIBAgAAAAHjAQIAAAABAwAAAEEAIBMAANIEACAUAADbBAAgDQAAAEEAIAwAANsEACA4AADiAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIQs4AADiAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIQMAAABDACATAADUBAAgFAAA3gQAIAkAAABDACAMAADeBAAgMAAArQMAIL4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIeQBAgDqAgAh5wEBAOgCACHpAQEA6AIAIQcwAACtAwAgvgECAOoCACHQAQEA6AIAIeMBAgDqAgAh5AECAOoCACHnAQEA6AIAIekBAQDoAgAhAwAAAD0AIBMAANYEACAUAADhBAAgEwAAAD0AIAwAAOEEACAvAADCAwAgNwAAwwMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIREvAADCAwAgNwAAwwMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_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_GQBAGgBBGwBCHABDAAAAAAAFBgA_GQBAGgBBGwBCHABDAjMAGzQAGAIzABs0ABgFBgBIGQBJGgBKGwBLHABMAAAAAAAFBgBIGQBJGgBKGwBLHABMAAAABQYAUhkAUxoAVBsAVRwAVgAAAAAABQYAUhkAUxoAVBsAVRwAVgAAAAUGAFwZAF0aAF4bAF8cAGAAAAAAAAUGAFwZAF0aAF4bAF8cAGABA4sCAQEDkQIBBQYAZRkAZhoAZxsAaBwAaQAAAAAABQYAZRkAZhoAZxsAaBwAaQcCAQgPAQkRAQoSAQsTAQ0VAQ4XBQ8YBhAaAREcBRIdBxUeARYfARcgBR0jCB4kDh8lAiAmAiEnAiIoAiMpAiQrAiUtBSYuDycwAigyBSkzECo0Ais1Aiw2BS05ES46Fzs8GDxbGD1dGD5eGD9fGEBhGEFjBUJkIUNmGERoBUVpIkZqGEdrGEhsBUlvI0pwKUtxGUxyGU1zGU50GU91GVB3GVF5BVJ6KlN9GVR_BVWAAStWggEZV4MBGViEAQVZhwEsWogBMluJARpcigEaXYsBGl6MARpfjQEaYI8BGmGRAQVikgEzY5QBGmSWAQVllwE0ZpgBGmeZARpomgEFaZ0BNWqeATtrnwEbbKABG22hARtuogEbb6MBG3ClARtxpwEFcqgBPHOsARt0rgEFda8BPXayARt3swEbeLQBBXm3AT56uAFEe7kBHHy6ARx9uwEcfrwBHH-9ARyAAb8BHIEBwQEFggHCAUWDAcQBHIQBxgEFhQHHAUaGAcgBHIcByQEciAHKAQWJAc0BR4oBzgFNiwHQAU6MAdEBTo0B1AFOjgHVAU6PAdYBTpAB2AFOkQHaAQWSAdsBT5MB3QFOlAHfAQWVAeABUJYB4QFOlwHiAU6YAeMBBZkB5gFRmgHnAVebAekBWJwB6gFYnQHtAVieAe4BWJ8B7wFYoAHxAVihAfMBBaIB9AFZowH2AVikAfgBBaUB-QFapgH6AVinAfsBWKgB_AEFqQH_AVuqAYACYasBgQIDrAGCAgOtAYMCA64BhAIDrwGFAgOwAYcCA7EBiQIFsgGKAmKzAY0CA7QBjwIFtQGQAmO2AZICA7cBkwIDuAGUAgW5AZcCZLoBmAJq" +}; +async function decodeBase64AsWasm(wasmBase64) { + const { Buffer: Buffer2 } = await import("node:buffer"); + const wasmArray = Buffer2.from(wasmBase64, "base64"); + return new WebAssembly.Module(wasmArray); +} +__name(decodeBase64AsWasm, "decodeBase64AsWasm"); +config2.compilerWasm = { + getRuntime: /* @__PURE__ */ __name(async () => await import("./query_compiler_fast_bg.postgresql-RWS5SSGB.js"), "getRuntime"), + getQueryCompilerWasmModule: /* @__PURE__ */ __name(async () => { + const { wasm } = await import("./query_compiler_fast_bg.postgresql.wasm-base64-5YP3ZLAU.js"); + return await decodeBase64AsWasm(wasm); + }, "getQueryCompilerWasmModule"), + importName: "./query_compiler_fast_bg.js" +}; +function getPrismaClientClass() { + return runtime.getPrismaClient(config2); +} +__name(getPrismaClientClass, "getPrismaClientClass"); + +// dist/generated/prisma/internal/prismaNamespace.js +var prismaNamespace_exports = {}; +__export(prismaNamespace_exports, { + AdminUserScalarFieldEnum: () => AdminUserScalarFieldEnum, + AnyNull: () => AnyNull3, + AuditLogScalarFieldEnum: () => AuditLogScalarFieldEnum, + CategoryScalarFieldEnum: () => CategoryScalarFieldEnum, + ContactMessageScalarFieldEnum: () => ContactMessageScalarFieldEnum, + DbNull: () => DbNull3, + Decimal: () => Decimal3, + JsonNull: () => JsonNull3, + JsonNullValueFilter: () => JsonNullValueFilter, + JsonNullValueInput: () => JsonNullValueInput, + MediaScalarFieldEnum: () => MediaScalarFieldEnum, + ModelName: () => ModelName, + NullTypes: () => NullTypes3, + NullsOrder: () => NullsOrder, + PrismaClientInitializationError: () => PrismaClientInitializationError3, + PrismaClientKnownRequestError: () => PrismaClientKnownRequestError3, + PrismaClientRustPanicError: () => PrismaClientRustPanicError3, + PrismaClientUnknownRequestError: () => PrismaClientUnknownRequestError3, + PrismaClientValidationError: () => PrismaClientValidationError3, + ProductGroupScalarFieldEnum: () => ProductGroupScalarFieldEnum, + ProductImageScalarFieldEnum: () => ProductImageScalarFieldEnum, + ProductScalarFieldEnum: () => ProductScalarFieldEnum, + QueryMode: () => QueryMode, + RefreshTokenScalarFieldEnum: () => RefreshTokenScalarFieldEnum, + SiteSectionScalarFieldEnum: () => SiteSectionScalarFieldEnum, + SortOrder: () => SortOrder, + Sql: () => Sql3, + TransactionIsolationLevel: () => TransactionIsolationLevel, + defineExtension: () => defineExtension, + empty: () => empty3, + getExtensionContext: () => getExtensionContext, + join: () => join3, + prismaVersion: () => prismaVersion, + raw: () => raw3, + sql: () => sql +}); +var runtime2 = __toESM(require_client(), 1); +var PrismaClientKnownRequestError3 = runtime2.PrismaClientKnownRequestError; +var PrismaClientUnknownRequestError3 = runtime2.PrismaClientUnknownRequestError; +var PrismaClientRustPanicError3 = runtime2.PrismaClientRustPanicError; +var PrismaClientInitializationError3 = runtime2.PrismaClientInitializationError; +var PrismaClientValidationError3 = runtime2.PrismaClientValidationError; +var sql = runtime2.sqltag; +var empty3 = runtime2.empty; +var join3 = runtime2.join; +var raw3 = runtime2.raw; +var Sql3 = runtime2.Sql; +var Decimal3 = runtime2.Decimal; +var getExtensionContext = runtime2.Extensions.getExtensionContext; +var prismaVersion = { + client: "7.10.1", + engine: "d1b3f377ca835d73fd50954a5e22128b9ebdd6b8" +}; +var NullTypes3 = { + DbNull: runtime2.NullTypes.DbNull, + JsonNull: runtime2.NullTypes.JsonNull, + AnyNull: runtime2.NullTypes.AnyNull +}; +var DbNull3 = runtime2.DbNull; +var JsonNull3 = runtime2.JsonNull; +var AnyNull3 = runtime2.AnyNull; +var ModelName = { + AdminUser: "AdminUser", + RefreshToken: "RefreshToken", + Media: "Media", + Category: "Category", + ProductGroup: "ProductGroup", + Product: "Product", + ProductImage: "ProductImage", + SiteSection: "SiteSection", + ContactMessage: "ContactMessage", + AuditLog: "AuditLog" +}; +var TransactionIsolationLevel = runtime2.makeStrictEnum({ + ReadUncommitted: "ReadUncommitted", + ReadCommitted: "ReadCommitted", + RepeatableRead: "RepeatableRead", + Serializable: "Serializable" +}); +var AdminUserScalarFieldEnum = { + id: "id", + phone: "phone", + name: "name", + passwordHash: "passwordHash", + role: "role", + isActive: "isActive", + lastLoginAt: "lastLoginAt", + createdAt: "createdAt", + updatedAt: "updatedAt" +}; +var RefreshTokenScalarFieldEnum = { + id: "id", + userId: "userId", + tokenHash: "tokenHash", + expiresAt: "expiresAt", + revokedAt: "revokedAt", + userAgent: "userAgent", + createdAt: "createdAt" +}; +var MediaScalarFieldEnum = { + id: "id", + key: "key", + mime: "mime", + size: "size", + width: "width", + height: "height", + alt: "alt", + originalName: "originalName", + createdAt: "createdAt" +}; +var CategoryScalarFieldEnum = { + id: "id", + slug: "slug", + code: "code", + name: "name", + nameEn: "nameEn", + shortDesc: "shortDesc", + fullDesc: "fullDesc", + icon: "icon", + coverImageId: "coverImageId", + sortOrder: "sortOrder", + isPublished: "isPublished", + seoTitle: "seoTitle", + seoDescription: "seoDescription", + createdAt: "createdAt", + updatedAt: "updatedAt" +}; +var ProductGroupScalarFieldEnum = { + id: "id", + categoryId: "categoryId", + slug: "slug", + name: "name", + desc: "desc", + sortOrder: "sortOrder" +}; +var ProductScalarFieldEnum = { + id: "id", + categoryId: "categoryId", + groupId: "groupId", + code: "code", + slug: "slug", + name: "name", + nameEn: "nameEn", + desc: "desc", + specs: "specs", + variants: "variants", + details: "details", + brand: "brand", + origin: "origin", + sizes: "sizes", + standards: "standards", + features: "features", + applications: "applications", + attributes: "attributes", + packaging: "packaging", + minOrder: "minOrder", + seoTitle: "seoTitle", + seoDescription: "seoDescription", + imageId: "imageId", + sortOrder: "sortOrder", + isPublished: "isPublished", + createdAt: "createdAt", + updatedAt: "updatedAt" +}; +var ProductImageScalarFieldEnum = { + productId: "productId", + mediaId: "mediaId", + sortOrder: "sortOrder" +}; +var SiteSectionScalarFieldEnum = { + key: "key", + data: "data", + updatedById: "updatedById", + updatedAt: "updatedAt" +}; +var ContactMessageScalarFieldEnum = { + id: "id", + name: "name", + org: "org", + phone: "phone", + message: "message", + status: "status", + ip: "ip", + userAgent: "userAgent", + createdAt: "createdAt" +}; +var AuditLogScalarFieldEnum = { + id: "id", + userId: "userId", + action: "action", + entity: "entity", + entityId: "entityId", + summary: "summary", + createdAt: "createdAt" +}; +var SortOrder = { + asc: "asc", + desc: "desc" +}; +var JsonNullValueInput = { + JsonNull: JsonNull3 +}; +var QueryMode = { + default: "default", + insensitive: "insensitive" +}; +var NullsOrder = { + first: "first", + last: "last" +}; +var JsonNullValueFilter = { + DbNull: DbNull3, + JsonNull: JsonNull3, + AnyNull: AnyNull3 +}; +var defineExtension = runtime2.Extensions.defineExtension; + +// dist/generated/prisma/client.js +globalThis["__dirname"] = path.dirname(fileURLToPath(import.meta.url)); +var PrismaClient = getPrismaClientClass(); + +// dist/prisma/prisma.service.js +var __decorate = function(decorators, target, key, desc) { + var c5 = arguments.length, r5 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d5; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r5 = Reflect.decorate(decorators, target, key, desc); + else for (var i5 = decorators.length - 1; i5 >= 0; i5--) if (d5 = decorators[i5]) r5 = (c5 < 3 ? d5(r5) : c5 > 3 ? d5(target, key, r5) : d5(target, key)) || r5; + return c5 > 3 && r5 && Object.defineProperty(target, key, r5), r5; +}; +var __metadata = function(k5, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k5, v); +}; +var createPrismaClient = /* @__PURE__ */ __name(() => new PrismaClient({ adapter: new PrismaPgAdapterFactory({ connectionString: env.DATABASE_URL }) }), "createPrismaClient"); +var PrismaService = class PrismaService2 extends PrismaClient { + static { + __name(this, "PrismaService"); + } + constructor() { + super({ adapter: new PrismaPgAdapterFactory({ connectionString: env.DATABASE_URL }) }); + } + async onModuleDestroy() { + await this.$disconnect(); + } +}; +PrismaService = __decorate([ + Injectable(), + __metadata("design:paramtypes", []) +], PrismaService); +var PrismaModule = class PrismaModule2 { + static { + __name(this, "PrismaModule"); + } +}; +PrismaModule = __decorate([ + Global(), + Module({ providers: [PrismaService], exports: [PrismaService] }) +], PrismaModule); + +// dist/auth/auth.service.js +init_common(); +import { createHash, randomBytes } from "node:crypto"; + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/index.js +var import_jsonwebtoken2 = __toESM(require_jsonwebtoken(), 1); + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.js +var JwtSecretRequestType; +(function(JwtSecretRequestType2) { + JwtSecretRequestType2[JwtSecretRequestType2["SIGN"] = 0] = "SIGN"; + JwtSecretRequestType2[JwtSecretRequestType2["VERIFY"] = 1] = "VERIFY"; +})(JwtSecretRequestType || (JwtSecretRequestType = {})); + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/jwt.errors.js +var WrongSecretProviderError = class extends Error { + static { + __name(this, "WrongSecretProviderError"); + } +}; + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/jwt.module.js +init_common(); + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/jwt.constants.js +var JWT_MODULE_OPTIONS = "JWT_MODULE_OPTIONS"; + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/jwt.providers.js +function createJwtProvider(options) { + return [{ provide: JWT_MODULE_OPTIONS, useValue: options || {} }]; +} +__name(createJwtProvider, "createJwtProvider"); + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/jwt.service.js +init_common(); +var import_jsonwebtoken = __toESM(require_jsonwebtoken(), 1); +var __decorate2 = function(decorators, target, key, desc) { + var c5 = arguments.length, r5 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d5; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r5 = Reflect.decorate(decorators, target, key, desc); + else for (var i5 = decorators.length - 1; i5 >= 0; i5--) if (d5 = decorators[i5]) r5 = (c5 < 3 ? d5(r5) : c5 > 3 ? d5(target, key, r5) : d5(target, key)) || r5; + return c5 > 3 && r5 && Object.defineProperty(target, key, r5), r5; +}; +var __metadata2 = function(k5, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k5, v); +}; +var __param = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var JwtService = class JwtService2 { + static { + __name(this, "JwtService"); + } + constructor(options = {}) { + this.options = options; + this.logger = new Logger("JwtService"); + } + sign(payload, options) { + const signOptions = this.mergeJwtOptions({ ...options }, "signOptions"); + const secret = this.getSecretKey(payload, options, "privateKey", JwtSecretRequestType.SIGN); + if (secret instanceof Promise) { + secret.catch(() => { + }); + this.logger.warn('For async version of "secretOrKeyProvider", please use "signAsync".'); + throw new WrongSecretProviderError(); + } + const allowedSignOptKeys = ["secret", "privateKey"]; + const signOptKeys = Object.keys(signOptions); + if (typeof payload === "string" && signOptKeys.some((k5) => !allowedSignOptKeys.includes(k5))) { + throw new Error("Payload as string is not allowed with the following sign options: " + signOptKeys.join(", ")); + } + return import_jsonwebtoken.default.sign(payload, secret, signOptions); + } + signAsync(payload, options) { + const signOptions = this.mergeJwtOptions({ ...options }, "signOptions"); + const secret = this.getSecretKey(payload, options, "privateKey", JwtSecretRequestType.SIGN); + const allowedSignOptKeys = ["secret", "privateKey"]; + const signOptKeys = Object.keys(signOptions); + if (typeof payload === "string" && signOptKeys.some((k5) => !allowedSignOptKeys.includes(k5))) { + if (secret instanceof Promise) { + secret.catch(() => { + }); + } + throw new Error("Payload as string is not allowed with the following sign options: " + signOptKeys.join(", ")); + } + return new Promise((resolve, reject) => Promise.resolve().then(() => secret).then((scrt) => { + import_jsonwebtoken.default.sign(payload, scrt, signOptions, (err, encoded) => err ? reject(err) : resolve(encoded)); + }).catch(reject)); + } + verify(token, options) { + const verifyOptions = this.mergeJwtOptions({ ...options }, "verifyOptions"); + const secret = this.getSecretKey(token, options, "publicKey", JwtSecretRequestType.VERIFY); + if (secret instanceof Promise) { + secret.catch(() => { + }); + this.logger.warn('For async version of "secretOrKeyProvider", please use "verifyAsync".'); + throw new WrongSecretProviderError(); + } + return import_jsonwebtoken.default.verify(token, secret, verifyOptions); + } + verifyAsync(token, options) { + const verifyOptions = this.mergeJwtOptions({ ...options }, "verifyOptions"); + const secret = this.getSecretKey(token, options, "publicKey", JwtSecretRequestType.VERIFY); + return new Promise((resolve, reject) => Promise.resolve().then(() => secret).then((scrt) => { + import_jsonwebtoken.default.verify(token, scrt, verifyOptions, (err, decoded) => err ? reject(err) : resolve(decoded)); + }).catch(reject)); + } + decode(token, options) { + return import_jsonwebtoken.default.decode(token, options); + } + mergeJwtOptions(options, key) { + delete options.secret; + if (key === "signOptions") { + delete options.privateKey; + } else { + delete options.publicKey; + } + return options ? { ...this.options[key] || {}, ...options } : this.options[key]; + } + overrideSecretFromOptions(secret) { + if (this.options.secretOrPrivateKey) { + this.logger.warn(`"secretOrPrivateKey" has been deprecated, please use the new explicit "secret" or use "secretOrKeyProvider" or "privateKey"/"publicKey" exclusively.`); + secret = this.options.secretOrPrivateKey; + } + return secret; + } + getSecretKey(token, options, key, secretRequestType) { + const secret = this.options.secretOrKeyProvider ? this.options.secretOrKeyProvider(secretRequestType, token, options) : options?.secret || this.options.secret || (key === "privateKey" ? options?.privateKey || this.options.privateKey : options?.publicKey || this.options.publicKey) || this.options[key]; + return secret instanceof Promise ? secret.then((sec) => this.overrideSecretFromOptions(sec)) : this.overrideSecretFromOptions(secret); + } +}; +JwtService = __decorate2([ + Injectable(), + __param(0, Optional()), + __param(0, Inject(JWT_MODULE_OPTIONS)), + __metadata2("design:paramtypes", [Object]) +], JwtService); + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/jwt.module.js +var __decorate3 = function(decorators, target, key, desc) { + var c5 = arguments.length, r5 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d5; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r5 = Reflect.decorate(decorators, target, key, desc); + else for (var i5 = decorators.length - 1; i5 >= 0; i5--) if (d5 = decorators[i5]) r5 = (c5 < 3 ? d5(r5) : c5 > 3 ? d5(target, key, r5) : d5(target, key)) || r5; + return c5 > 3 && r5 && Object.defineProperty(target, key, r5), r5; +}; +var JwtModule_1; +var JwtModule = JwtModule_1 = class JwtModule2 { + static { + __name(this, "JwtModule"); + } + static register(options) { + return { + module: JwtModule_1, + global: options.global, + providers: createJwtProvider(options) + }; + } + static registerAsync(options) { + return { + module: JwtModule_1, + global: options.global, + imports: options.imports || [], + providers: [ + ...this.createAsyncProviders(options), + ...options.extraProviders ?? [] + ] + }; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + return [this.createAsyncOptionsProvider(options)]; + } + return [ + this.createAsyncOptionsProvider(options), + { + provide: options.useClass, + useClass: options.useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: JWT_MODULE_OPTIONS, + useFactory: options.useFactory, + inject: options.inject || [] + }; + } + return { + provide: JWT_MODULE_OPTIONS, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => await optionsFactory.createJwtOptions(), "useFactory"), + inject: [options.useExisting || options.useClass] + }; + } +}; +JwtModule = JwtModule_1 = __decorate3([ + Module({ + providers: [JwtService], + exports: [JwtService] + }) +], JwtModule); + +// ../../node_modules/.pnpm/@nestjs+jwt@12.0.3_@nestjs+_facab28c43df169ee1a851fa7198ecfe/node_modules/@nestjs/jwt/dist/index.js +var TokenExpiredError = import_jsonwebtoken2.default.TokenExpiredError; +var NotBeforeError = import_jsonwebtoken2.default.NotBeforeError; +var JsonWebTokenError = import_jsonwebtoken2.default.JsonWebTokenError; + +// dist/auth/auth.service.js +import { hash as hash2, verify } from "@node-rs/argon2"; + +// dist/common/common.module.js +init_common(); +var __decorate4 = function(decorators, target, key, desc) { + var c5 = arguments.length, r5 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d5; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r5 = Reflect.decorate(decorators, target, key, desc); + else for (var i5 = decorators.length - 1; i5 >= 0; i5--) if (d5 = decorators[i5]) r5 = (c5 < 3 ? d5(r5) : c5 > 3 ? d5(target, key, r5) : d5(target, key)) || r5; + return c5 > 3 && r5 && Object.defineProperty(target, key, r5), r5; +}; +var __metadata3 = function(k5, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k5, v); +}; +var AuditService_1; +var RevalidateService_1; +var AuditService = AuditService_1 = class AuditService2 { + static { + __name(this, "AuditService"); + } + prisma; + logger = new Logger(AuditService_1.name); + constructor(prisma) { + this.prisma = prisma; + } + log(userId, action, entity, entityId = "", summary = "") { + this.prisma.auditLog.create({ data: { userId, action, entity, entityId: String(entityId), summary } }).catch((e5) => this.logger.warn(`audit log failed: ${String(e5)}`)); + } +}; +AuditService = AuditService_1 = __decorate4([ + Injectable(), + __metadata3("design:paramtypes", [PrismaService]) +], AuditService); +var RevalidateService = RevalidateService_1 = class RevalidateService2 { + static { + __name(this, "RevalidateService"); + } + logger = new Logger(RevalidateService_1.name); + timer; + trigger() { + if (!env.WEB_REVALIDATE_URL) + return; + clearTimeout(this.timer); + this.timer = setTimeout(() => void this.run(), 1500); + this.timer.unref(); + } + async run() { + try { + const res = await fetch(env.WEB_REVALIDATE_URL, { + method: "POST", + headers: { "x-revalidate-secret": env.REVALIDATE_SECRET ?? "" }, + signal: AbortSignal.timeout(5e3) + }); + if (!res.ok) + this.logger.warn(`site revalidation returned ${res.status}`); + } catch (e5) { + this.logger.warn(`site revalidation failed: ${String(e5)}`); + } + } +}; +RevalidateService = RevalidateService_1 = __decorate4([ + Injectable() +], RevalidateService); +var CommonModule = class CommonModule2 { + static { + __name(this, "CommonModule"); + } +}; +CommonModule = __decorate4([ + Global(), + Module({ + providers: [AuditService, RevalidateService], + exports: [AuditService, RevalidateService] + }) +], CommonModule); + +// dist/auth/auth.service.js +var __decorate5 = function(decorators, target, key, desc) { + var c5 = arguments.length, r5 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d5; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r5 = Reflect.decorate(decorators, target, key, desc); + else for (var i5 = decorators.length - 1; i5 >= 0; i5--) if (d5 = decorators[i5]) r5 = (c5 < 3 ? d5(r5) : c5 > 3 ? d5(target, key, r5) : d5(target, key)) || r5; + return c5 > 3 && r5 && Object.defineProperty(target, key, r5), r5; +}; +var __metadata4 = function(k5, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k5, v); +}; +var hashPassword = /* @__PURE__ */ __name((password2) => hash2(password2), "hashPassword"); +var sha256 = /* @__PURE__ */ __name((v) => createHash("sha256").update(v).digest("hex"), "sha256"); +var toUserDto = /* @__PURE__ */ __name((u) => ({ + id: u.id, + phone: u.phone, + name: u.name, + role: u.role, + isActive: u.isActive, + lastLoginAt: u.lastLoginAt?.toISOString() ?? null, + createdAt: u.createdAt.toISOString() +}), "toUserDto"); +var INVALID_LOGIN = "\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u06CC\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0627\u0634\u062A\u0628\u0627\u0647 \u0627\u0633\u062A"; +var DUMMY_HASH = hashPassword(randomBytes(16).toString("hex")); +var AuthService = class AuthService2 { + static { + __name(this, "AuthService"); + } + prisma; + jwt; + audit; + constructor(prisma, jwt2, audit) { + this.prisma = prisma; + this.jwt = jwt2; + this.audit = audit; + } + async login(input2, userAgent) { + const user = await this.prisma.adminUser.findUnique({ where: { phone: input2.phone } }); + const ok = await verify(user?.passwordHash ?? await DUMMY_HASH, input2.password).catch(() => false); + if (!user || !ok || !user.isActive) + throw new UnauthorizedException(INVALID_LOGIN); + const updated = await this.prisma.adminUser.update({ + where: { id: user.id }, + data: { lastLoginAt: /* @__PURE__ */ new Date() } + }); + this.audit.log(user.id, "login", "user", user.id, user.phone); + return this.issue(updated, userAgent); + } + async refresh(token, userAgent) { + if (!token) + throw new UnauthorizedException("\u0646\u0634\u0633\u062A \u0634\u0645\u0627 \u0645\u0646\u0642\u0636\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A"); + const stored = await this.prisma.refreshToken.findUnique({ + where: { tokenHash: sha256(token) }, + include: { user: true } + }); + if (!stored) + throw new UnauthorizedException("\u0646\u0634\u0633\u062A \u0634\u0645\u0627 \u0645\u0646\u0642\u0636\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A"); + if (stored.revokedAt) { + await this.revokeAll(stored.userId); + throw new UnauthorizedException("\u0646\u0634\u0633\u062A \u0634\u0645\u0627 \u0645\u0646\u0642\u0636\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + if (stored.expiresAt < /* @__PURE__ */ new Date() || !stored.user.isActive) { + throw new UnauthorizedException("\u0646\u0634\u0633\u062A \u0634\u0645\u0627 \u0645\u0646\u0642\u0636\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + await this.prisma.refreshToken.update({ + where: { id: stored.id }, + data: { revokedAt: /* @__PURE__ */ new Date() } + }); + return this.issue(stored.user, userAgent); + } + async logout(token) { + if (!token) + return; + await this.prisma.refreshToken.updateMany({ + where: { tokenHash: sha256(token), revokedAt: null }, + data: { revokedAt: /* @__PURE__ */ new Date() } + }); + } + async changePassword(userId, input2) { + const user = await this.prisma.adminUser.findUniqueOrThrow({ where: { id: userId } }); + if (!await verify(user.passwordHash, input2.currentPassword).catch(() => false)) { + throw new BadRequestException("\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0641\u0639\u0644\u06CC \u0627\u0634\u062A\u0628\u0627\u0647 \u0627\u0633\u062A"); + } + await this.prisma.adminUser.update({ + where: { id: userId }, + data: { passwordHash: await hashPassword(input2.newPassword) } + }); + this.audit.log(userId, "change-password", "user", userId, user.phone); + } + async me(userId) { + return toUserDto(await this.prisma.adminUser.findUniqueOrThrow({ where: { id: userId } })); + } + revokeAll(userId) { + return this.prisma.refreshToken.updateMany({ + where: { userId, revokedAt: null }, + data: { revokedAt: /* @__PURE__ */ new Date() } + }); + } + async issue(user, userAgent) { + const payload = { sub: user.id, role: user.role }; + const accessToken = await this.jwt.signAsync(payload); + const refreshToken = randomBytes(48).toString("base64url"); + const refreshExpiresAt = new Date(Date.now() + env.REFRESH_TTL_DAYS * 864e5); + await this.prisma.refreshToken.create({ + data: { + userId: user.id, + tokenHash: sha256(refreshToken), + expiresAt: refreshExpiresAt, + userAgent: userAgent.slice(0, 300) + } + }); + void this.prisma.refreshToken.deleteMany({ where: { expiresAt: { lt: new Date(Date.now() - 864e5) } } }).catch(() => void 0); + return { accessToken, refreshToken, refreshExpiresAt, user: toUserDto(user) }; + } +}; +AuthService = __decorate5([ + Injectable(), + __metadata4("design:paramtypes", [ + PrismaService, + JwtService, + AuditService + ]) +], AuthService); + +// dist/media/s3-storage.js +var import_client_s3 = __toESM(require_dist_cjs16(), 1); +import sharp from "sharp"; +var S3Storage = class { + static { + __name(this, "S3Storage"); + } + client = new import_client_s3.S3Client({ + endpoint: env.S3_ENDPOINT, + region: env.S3_REGION, + forcePathStyle: env.S3_FORCE_PATH_STYLE, + credentials: { accessKeyId: env.S3_ACCESS_KEY, secretAccessKey: env.S3_SECRET_KEY } + }); + bucket = env.S3_BUCKET; + publicUrl(key) { + return `${env.MEDIA_PUBLIC_URL}/${key}`; + } + async put(key, body, contentType) { + await this.client.send(new import_client_s3.PutObjectCommand({ + Bucket: this.bucket, + Key: key, + Body: body, + ContentType: contentType, + CacheControl: "public, max-age=31536000, immutable" + })); + } + async remove(key) { + await this.client.send(new import_client_s3.DeleteObjectCommand({ Bucket: this.bucket, Key: key })); + } + async ensureBucket() { + try { + await this.client.send(new import_client_s3.HeadBucketCommand({ Bucket: this.bucket })); + } catch { + await this.client.send(new import_client_s3.CreateBucketCommand({ Bucket: this.bucket })); + } + try { + await this.client.send(new import_client_s3.PutBucketPolicyCommand({ + Bucket: this.bucket, + Policy: JSON.stringify({ + Version: "2012-10-17", + Statement: [ + { + Effect: "Allow", + Principal: { AWS: ["*"] }, + Action: ["s3:GetObject"], + Resource: [`arn:aws:s3:::${this.bucket}/*`] + } + ] + }) + })); + } catch { + } + } +}; +var ACCEPTED_IMAGE_TYPES = [ + "image/jpeg", + "image/png", + "image/webp", + "image/avif", + "image/gif" +]; +async function toWebp(input2) { + const { data, info } = await sharp(input2).rotate().resize({ width: 2e3, height: 2e3, fit: "inside", withoutEnlargement: true }).webp({ quality: 82 }).toBuffer({ resolveWithObject: true }); + return { data, width: info.width, height: info.height, size: info.size }; +} +__name(toWebp, "toWebp"); + +export { + external_exports, + env, + isProd, + JwtService, + JwtModule, + toIssues, + categoryInputSchema, + productInputSchema, + reorderSchema, + productListQuerySchema, + sectionSchemas, + SECTION_KEYS, + isSectionKey, + normalizeIrMobile, + loginSchema, + changePasswordSchema, + userCreateSchema, + userUpdateSchema, + MESSAGE_STATUSES, + contactInputSchema, + messageUpdateSchema, + mediaUpdateSchema, + prismaNamespace_exports, + createPrismaClient, + PrismaService, + PrismaModule, + AuditService, + RevalidateService, + CommonModule, + hashPassword, + toUserDto, + AuthService, + S3Storage, + ACCEPTED_IMAGE_TYPES, + toWebp +}; diff --git a/apps/api/.output/dist/chunks/chunk-XSOBN2CI.js b/apps/api/.output/dist/chunks/chunk-XSOBN2CI.js new file mode 100644 index 0000000..5526423 --- /dev/null +++ b/apps/api/.output/dist/chunks/chunk-XSOBN2CI.js @@ -0,0 +1,53629 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + BadRequestException, + CATCH_WATERMARK, + CONTROLLER_WATERMARK, + CUSTOM_ROUTE_ARGS_METADATA, + ConsoleLogger, + ENHANCER_KEY_TO_SUBTYPE_MAP, + ENTRY_PROVIDER_WATERMARK, + EXCEPTION_FILTERS_METADATA, + FILTER_CATCH_EXCEPTIONS, + ForbiddenException, + GLOBAL_MODULE_METADATA, + GUARDS_METADATA, + Global, + HEADERS_METADATA, + HOST_METADATA, + HTTP_CODE_METADATA, + HttpException, + HttpStatus, + INJECTABLE_WATERMARK, + INTERCEPTORS_METADATA, + Inject, + Injectable, + InternalServerErrorException, + IntrinsicException, + Logger, + METHOD_METADATA, + MODULE_METADATA, + MODULE_PATH, + Module, + NotFoundException, + OPTIONAL_DEPS_METADATA, + OPTIONAL_PROPERTY_DEPS_METADATA, + Optional, + PARAMTYPES_METADATA, + PATH_METADATA, + PIPES_METADATA, + PROPERTY_DEPS_METADATA, + PayloadTooLargeException, + REDIRECT_METADATA, + RENDER_METADATA, + RESPONSE_PASSTHROUGH_METADATA, + ROUTE_ARGS_METADATA, + RequestMethod, + RouteParamtypes, + SCOPE_OPTIONS_METADATA, + SELF_DECLARED_DEPS_METADATA, + SSE_ABORT_CONTROLLER, + SSE_METADATA, + SSE_OPTIONS_METADATA, + Scope, + SetMetadata, + ShutdownSignal, + StreamableFile, + VERSION_METADATA, + VERSION_NEUTRAL, + VersioningType, + __decorate, + __metadata, + __param, + addLeadingSlash, + clc, + flatten, + init_cli_colors_util, + init_common, + init_constants, + init_dist, + init_load_package_util, + init_parameter_decorator_options_util, + init_random_string_generator_util, + init_route_params_decorator, + init_route_paramtypes_enum, + init_shared_utils, + init_tslib_es6, + isConstructor, + isEmpty, + isEmptyArray, + isFunction, + isNil, + isObject, + isPlainObject, + isString, + isSymbol, + isUndefined, + loadPackage, + loadPackageCached, + mixin, + normalizePath, + randomStringGenerator, + require_ArgumentOutOfRangeError, + require_AsyncAction, + require_AsyncScheduler, + require_AsyncSubject, + require_BehaviorSubject, + require_ConnectableObservable, + require_EmptyError, + require_NotFoundError, + require_Notification, + require_ObjectUnsubscribedError, + require_Observable, + require_OperatorSubscriber, + require_Reflect, + require_ReplaySubject, + require_Scheduler, + require_SequenceError, + require_Subject, + require_Subscriber, + require_Subscription, + require_UnsubscriptionError, + require_args, + require_argsArgArrayOrObject, + require_async, + require_audit, + require_auditTime, + require_buffer, + require_bufferCount, + require_bufferTime, + require_bufferToggle, + require_bufferWhen, + require_catchError, + require_combineAll, + require_combineLatest, + require_combineLatestAll, + require_combineLatestWith, + require_concat, + require_concatAll, + require_concatMap, + require_concatMapTo, + require_concatWith, + require_config, + require_connect, + require_count, + require_createObject, + require_debounce, + require_debounceTime, + require_defaultIfEmpty, + require_delay, + require_delayWhen, + require_dematerialize, + require_distinct, + require_distinctUntilChanged, + require_distinctUntilKeyChanged, + require_elementAt, + require_empty, + require_endWith, + require_every, + require_exhaust, + require_exhaustAll, + require_exhaustMap, + require_expand, + require_filter, + require_finalize, + require_find, + require_findIndex, + require_first, + require_flatMap, + require_from, + require_groupBy, + require_identity, + require_ignoreElements, + require_innerFrom, + require_interval, + require_isArrayLike, + require_isEmpty, + require_isFunction, + require_isScheduler, + require_last, + require_lib, + require_map, + require_mapOneOrManyArgs, + require_mapTo, + require_materialize, + require_max, + require_mergeAll, + require_mergeMap, + require_mergeMapTo, + require_mergeScan, + require_mergeWith, + require_min, + require_multicast, + require_noop, + require_not, + require_observable, + require_observeOn, + require_of, + require_onErrorResumeNext, + require_onErrorResumeNextWith, + require_operators, + require_pairwise, + require_pipe, + require_pluck, + require_publish, + require_publishBehavior, + require_publishLast, + require_publishReplay, + require_race, + require_raceWith, + require_reduce, + require_refCount, + require_repeat, + require_repeatWhen, + require_retry, + require_retryWhen, + require_sample, + require_sampleTime, + require_scan, + require_scheduleIterable, + require_scheduled, + require_sequenceEqual, + require_share, + require_shareReplay, + require_single, + require_skip, + require_skipLast, + require_skipUntil, + require_skipWhile, + require_startWith, + require_subscribeOn, + require_switchAll, + require_switchMap, + require_switchMapTo, + require_switchScan, + require_take, + require_takeLast, + require_takeUntil, + require_takeWhile, + require_tap, + require_throttle, + require_throttleTime, + require_throwError, + require_throwIfEmpty, + require_timeInterval, + require_timeout, + require_timeoutWith, + require_timer, + require_timestamp, + require_toArray, + require_window, + require_windowCount, + require_windowTime, + require_windowToggle, + require_windowWhen, + require_withLatestFrom, + require_zip, + require_zipAll, + require_zipWith, + stripEndSlash, + tryLoadPackage, + uid +} from "./chunk-BX2ML7LW.js"; +import { + require_src +} from "./chunk-C4DYPKAN.js"; +import { + require_ms +} from "./chunk-A34KYKJP.js"; +import { + __commonJS, + __esm, + __export, + __name, + __require, + __toESM +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js +var require_object_assign = __commonJS({ + "../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js"(exports, module) { + "use strict"; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + function toObject(val) { + if (val === null || val === void 0) { + throw new TypeError("Object.assign cannot be called with null or undefined"); + } + return Object(val); + } + __name(toObject, "toObject"); + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + var test1 = new String("abc"); + test1[5] = "de"; + if (Object.getOwnPropertyNames(test1)[0] === "5") { + return false; + } + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2["_" + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function(n) { + return test2[n]; + }); + if (order2.join("") !== "0123456789") { + return false; + } + var test3 = {}; + "abcdefghijklmnopqrst".split("").forEach(function(letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { + return false; + } + return true; + } catch (err) { + return false; + } + } + __name(shouldUseNative, "shouldUseNative"); + module.exports = shouldUseNative() ? Object.assign : function(target, source) { + var from2; + var to = toObject(target); + var symbols; + for (var s = 1; s < arguments.length; s++) { + from2 = Object(arguments[s]); + for (var key in from2) { + if (hasOwnProperty.call(from2, key)) { + to[key] = from2[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from2); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from2, symbols[i])) { + to[symbols[i]] = from2[symbols[i]]; + } + } + } + } + return to; + }; + } +}); + +// ../../node_modules/.pnpm/vary@1.1.2/node_modules/vary/index.js +var require_vary = __commonJS({ + "../../node_modules/.pnpm/vary@1.1.2/node_modules/vary/index.js"(exports, module) { + "use strict"; + module.exports = vary; + module.exports.append = append; + var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + function append(header, field) { + if (typeof header !== "string") { + throw new TypeError("header argument is required"); + } + if (!field) { + throw new TypeError("field argument is required"); + } + var fields = !Array.isArray(field) ? parse(String(field)) : field; + for (var j = 0; j < fields.length; j++) { + if (!FIELD_NAME_REGEXP.test(fields[j])) { + throw new TypeError("field argument contains an invalid header name"); + } + } + if (header === "*") { + return header; + } + var val = header; + var vals = parse(header.toLowerCase()); + if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) { + return "*"; + } + for (var i = 0; i < fields.length; i++) { + var fld = fields[i].toLowerCase(); + if (vals.indexOf(fld) === -1) { + vals.push(fld); + val = val ? val + ", " + fields[i] : fields[i]; + } + } + return val; + } + __name(append, "append"); + function parse(header) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = header.length; i < len; i++) { + switch (header.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + list.push(header.substring(start, end)); + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + list.push(header.substring(start, end)); + return list; + } + __name(parse, "parse"); + function vary(res, field) { + if (!res || !res.getHeader || !res.setHeader) { + throw new TypeError("res argument is required"); + } + var val = res.getHeader("Vary") || ""; + var header = Array.isArray(val) ? val.join(", ") : String(val); + if (val = append(header, field)) { + res.setHeader("Vary", val); + } + } + __name(vary, "vary"); + } +}); + +// ../../node_modules/.pnpm/cors@2.8.6/node_modules/cors/lib/index.js +var require_lib2 = __commonJS({ + "../../node_modules/.pnpm/cors@2.8.6/node_modules/cors/lib/index.js"(exports, module) { + (function() { + "use strict"; + var assign = require_object_assign(); + var vary = require_vary(); + var defaults = { + origin: "*", + methods: "GET,HEAD,PUT,PATCH,POST,DELETE", + preflightContinue: false, + optionsSuccessStatus: 204 + }; + function isString2(s) { + return typeof s === "string" || s instanceof String; + } + __name(isString2, "isString"); + function isOriginAllowed(origin, allowedOrigin) { + if (Array.isArray(allowedOrigin)) { + for (var i = 0; i < allowedOrigin.length; ++i) { + if (isOriginAllowed(origin, allowedOrigin[i])) { + return true; + } + } + return false; + } else if (isString2(allowedOrigin)) { + return origin === allowedOrigin; + } else if (allowedOrigin instanceof RegExp) { + return allowedOrigin.test(origin); + } else { + return !!allowedOrigin; + } + } + __name(isOriginAllowed, "isOriginAllowed"); + function configureOrigin(options, req) { + var requestOrigin = req.headers.origin, headers = [], isAllowed; + if (!options.origin || options.origin === "*") { + headers.push([{ + key: "Access-Control-Allow-Origin", + value: "*" + }]); + } else if (isString2(options.origin)) { + headers.push([{ + key: "Access-Control-Allow-Origin", + value: options.origin + }]); + headers.push([{ + key: "Vary", + value: "Origin" + }]); + } else { + isAllowed = isOriginAllowed(requestOrigin, options.origin); + headers.push([{ + key: "Access-Control-Allow-Origin", + value: isAllowed ? requestOrigin : false + }]); + headers.push([{ + key: "Vary", + value: "Origin" + }]); + } + return headers; + } + __name(configureOrigin, "configureOrigin"); + function configureMethods(options) { + var methods = options.methods; + if (methods.join) { + methods = options.methods.join(","); + } + return { + key: "Access-Control-Allow-Methods", + value: methods + }; + } + __name(configureMethods, "configureMethods"); + function configureCredentials(options) { + if (options.credentials === true) { + return { + key: "Access-Control-Allow-Credentials", + value: "true" + }; + } + return null; + } + __name(configureCredentials, "configureCredentials"); + function configureAllowedHeaders(options, req) { + var allowedHeaders = options.allowedHeaders || options.headers; + var headers = []; + if (!allowedHeaders) { + allowedHeaders = req.headers["access-control-request-headers"]; + headers.push([{ + key: "Vary", + value: "Access-Control-Request-Headers" + }]); + } else if (allowedHeaders.join) { + allowedHeaders = allowedHeaders.join(","); + } + if (allowedHeaders && allowedHeaders.length) { + headers.push([{ + key: "Access-Control-Allow-Headers", + value: allowedHeaders + }]); + } + return headers; + } + __name(configureAllowedHeaders, "configureAllowedHeaders"); + function configureExposedHeaders(options) { + var headers = options.exposedHeaders; + if (!headers) { + return null; + } else if (headers.join) { + headers = headers.join(","); + } + if (headers && headers.length) { + return { + key: "Access-Control-Expose-Headers", + value: headers + }; + } + return null; + } + __name(configureExposedHeaders, "configureExposedHeaders"); + function configureMaxAge(options) { + var maxAge = (typeof options.maxAge === "number" || options.maxAge) && options.maxAge.toString(); + if (maxAge && maxAge.length) { + return { + key: "Access-Control-Max-Age", + value: maxAge + }; + } + return null; + } + __name(configureMaxAge, "configureMaxAge"); + function applyHeaders(headers, res) { + for (var i = 0, n = headers.length; i < n; i++) { + var header = headers[i]; + if (header) { + if (Array.isArray(header)) { + applyHeaders(header, res); + } else if (header.key === "Vary" && header.value) { + vary(res, header.value); + } else if (header.value) { + res.setHeader(header.key, header.value); + } + } + } + } + __name(applyHeaders, "applyHeaders"); + function cors2(options, req, res, next) { + var headers = [], method = req.method && req.method.toUpperCase && req.method.toUpperCase(); + if (method === "OPTIONS") { + headers.push(configureOrigin(options, req)); + headers.push(configureCredentials(options)); + headers.push(configureMethods(options)); + headers.push(configureAllowedHeaders(options, req)); + headers.push(configureMaxAge(options)); + headers.push(configureExposedHeaders(options)); + applyHeaders(headers, res); + if (options.preflightContinue) { + next(); + } else { + res.statusCode = options.optionsSuccessStatus; + res.setHeader("Content-Length", "0"); + res.end(); + } + } else { + headers.push(configureOrigin(options, req)); + headers.push(configureCredentials(options)); + headers.push(configureExposedHeaders(options)); + applyHeaders(headers, res); + next(); + } + } + __name(cors2, "cors"); + function middlewareWrapper(o) { + var optionsCallback = null; + if (typeof o === "function") { + optionsCallback = o; + } else { + optionsCallback = /* @__PURE__ */ __name(function(req, cb) { + cb(null, o); + }, "optionsCallback"); + } + return /* @__PURE__ */ __name(function corsMiddleware(req, res, next) { + optionsCallback(req, function(err, options) { + if (err) { + next(err); + } else { + var corsOptions = assign({}, defaults, options); + var originCallback = null; + if (corsOptions.origin && typeof corsOptions.origin === "function") { + originCallback = corsOptions.origin; + } else if (corsOptions.origin) { + originCallback = /* @__PURE__ */ __name(function(origin, cb) { + cb(null, corsOptions.origin); + }, "originCallback"); + } + if (originCallback) { + originCallback(req.headers.origin, function(err2, origin) { + if (err2 || !origin) { + next(err2); + } else { + corsOptions.origin = origin; + cors2(corsOptions, req, res, next); + } + }); + } else { + next(); + } + } + }); + }, "corsMiddleware"); + } + __name(middlewareWrapper, "middlewareWrapper"); + module.exports = middlewareWrapper; + })(); + } +}); + +// ../../node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js +var require_depd = __commonJS({ + "../../node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js"(exports, module) { + var relative = __require("path").relative; + module.exports = depd; + var basePath = process.cwd(); + function containsNamespace(str, namespace) { + var vals = str.split(/[ ,]+/); + var ns = String(namespace).toLowerCase(); + for (var i = 0; i < vals.length; i++) { + var val = vals[i]; + if (val && (val === "*" || val.toLowerCase() === ns)) { + return true; + } + } + return false; + } + __name(containsNamespace, "containsNamespace"); + function convertDataDescriptorToAccessor(obj, prop, message) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + var value = descriptor.value; + descriptor.get = /* @__PURE__ */ __name(function getter() { + return value; + }, "getter"); + if (descriptor.writable) { + descriptor.set = /* @__PURE__ */ __name(function setter(val) { + return value = val; + }, "setter"); + } + delete descriptor.value; + delete descriptor.writable; + Object.defineProperty(obj, prop, descriptor); + return descriptor; + } + __name(convertDataDescriptorToAccessor, "convertDataDescriptorToAccessor"); + function createArgumentsString(arity) { + var str = ""; + for (var i = 0; i < arity; i++) { + str += ", arg" + i; + } + return str.substr(2); + } + __name(createArgumentsString, "createArgumentsString"); + function createStackString(stack) { + var str = this.name + ": " + this.namespace; + if (this.message) { + str += " deprecated " + this.message; + } + for (var i = 0; i < stack.length; i++) { + str += "\n at " + stack[i].toString(); + } + return str; + } + __name(createStackString, "createStackString"); + function depd(namespace) { + if (!namespace) { + throw new TypeError("argument namespace is required"); + } + var stack = getStack(); + var site = callSiteLocation(stack[1]); + var file = site[0]; + function deprecate(message) { + log.call(deprecate, message); + } + __name(deprecate, "deprecate"); + deprecate._file = file; + deprecate._ignored = isignored(namespace); + deprecate._namespace = namespace; + deprecate._traced = istraced(namespace); + deprecate._warned = /* @__PURE__ */ Object.create(null); + deprecate.function = wrapfunction; + deprecate.property = wrapproperty; + return deprecate; + } + __name(depd, "depd"); + function eehaslisteners(emitter, type) { + var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type); + return count > 0; + } + __name(eehaslisteners, "eehaslisteners"); + function isignored(namespace) { + if (process.noDeprecation) { + return true; + } + var str = process.env.NO_DEPRECATION || ""; + return containsNamespace(str, namespace); + } + __name(isignored, "isignored"); + function istraced(namespace) { + if (process.traceDeprecation) { + return true; + } + var str = process.env.TRACE_DEPRECATION || ""; + return containsNamespace(str, namespace); + } + __name(istraced, "istraced"); + function log(message, site) { + var haslisteners = eehaslisteners(process, "deprecation"); + if (!haslisteners && this._ignored) { + return; + } + var caller; + var callFile; + var callSite; + var depSite; + var i = 0; + var seen = false; + var stack = getStack(); + var file = this._file; + if (site) { + depSite = site; + callSite = callSiteLocation(stack[1]); + callSite.name = depSite.name; + file = callSite[0]; + } else { + i = 2; + depSite = callSiteLocation(stack[i]); + callSite = depSite; + } + for (; i < stack.length; i++) { + caller = callSiteLocation(stack[i]); + callFile = caller[0]; + if (callFile === file) { + seen = true; + } else if (callFile === this._file) { + file = this._file; + } else if (seen) { + break; + } + } + var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0; + if (key !== void 0 && key in this._warned) { + return; + } + this._warned[key] = true; + var msg = message; + if (!msg) { + msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite); + } + if (haslisteners) { + var err = DeprecationError(this._namespace, msg, stack.slice(i)); + process.emit("deprecation", err); + return; + } + var format = process.stderr.isTTY ? formatColor : formatPlain; + var output = format.call(this, msg, caller, stack.slice(i)); + process.stderr.write(output + "\n", "utf8"); + } + __name(log, "log"); + function callSiteLocation(callSite) { + var file = callSite.getFileName() || "<anonymous>"; + var line = callSite.getLineNumber(); + var colm = callSite.getColumnNumber(); + if (callSite.isEval()) { + file = callSite.getEvalOrigin() + ", " + file; + } + var site = [file, line, colm]; + site.callSite = callSite; + site.name = callSite.getFunctionName(); + return site; + } + __name(callSiteLocation, "callSiteLocation"); + function defaultMessage(site) { + var callSite = site.callSite; + var funcName = site.name; + if (!funcName) { + funcName = "<anonymous@" + formatLocation(site) + ">"; + } + var context = callSite.getThis(); + var typeName = context && callSite.getTypeName(); + if (typeName === "Object") { + typeName = void 0; + } + if (typeName === "Function") { + typeName = context.name || typeName; + } + return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName; + } + __name(defaultMessage, "defaultMessage"); + function formatPlain(msg, caller, stack) { + var timestamp = (/* @__PURE__ */ new Date()).toUTCString(); + var formatted = timestamp + " " + this._namespace + " deprecated " + msg; + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += "\n at " + stack[i].toString(); + } + return formatted; + } + if (caller) { + formatted += " at " + formatLocation(caller); + } + return formatted; + } + __name(formatPlain, "formatPlain"); + function formatColor(msg, caller, stack) { + var formatted = "\x1B[36;1m" + this._namespace + "\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m" + msg + "\x1B[39m"; + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += "\n \x1B[36mat " + stack[i].toString() + "\x1B[39m"; + } + return formatted; + } + if (caller) { + formatted += " \x1B[36m" + formatLocation(caller) + "\x1B[39m"; + } + return formatted; + } + __name(formatColor, "formatColor"); + function formatLocation(callSite) { + return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2]; + } + __name(formatLocation, "formatLocation"); + function getStack() { + var limit = Error.stackTraceLimit; + var obj = {}; + var prep = Error.prepareStackTrace; + Error.prepareStackTrace = prepareObjectStackTrace; + Error.stackTraceLimit = Math.max(10, limit); + Error.captureStackTrace(obj); + var stack = obj.stack.slice(1); + Error.prepareStackTrace = prep; + Error.stackTraceLimit = limit; + return stack; + } + __name(getStack, "getStack"); + function prepareObjectStackTrace(obj, stack) { + return stack; + } + __name(prepareObjectStackTrace, "prepareObjectStackTrace"); + function wrapfunction(fn, message) { + if (typeof fn !== "function") { + throw new TypeError("argument fn must be a function"); + } + var args = createArgumentsString(fn.length); + var stack = getStack(); + var site = callSiteLocation(stack[1]); + site.name = fn.name; + var deprecatedfn = new Function( + "fn", + "log", + "deprecate", + "message", + "site", + '"use strict"\nreturn function (' + args + ") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}" + )(fn, log, this, message, site); + return deprecatedfn; + } + __name(wrapfunction, "wrapfunction"); + function wrapproperty(obj, prop, message) { + if (!obj || typeof obj !== "object" && typeof obj !== "function") { + throw new TypeError("argument obj must be object"); + } + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + if (!descriptor) { + throw new TypeError("must call property on owner object"); + } + if (!descriptor.configurable) { + throw new TypeError("property must be configurable"); + } + var deprecate = this; + var stack = getStack(); + var site = callSiteLocation(stack[1]); + site.name = prop; + if ("value" in descriptor) { + descriptor = convertDataDescriptorToAccessor(obj, prop, message); + } + var get = descriptor.get; + var set = descriptor.set; + if (typeof get === "function") { + descriptor.get = /* @__PURE__ */ __name(function getter() { + log.call(deprecate, message, site); + return get.apply(this, arguments); + }, "getter"); + } + if (typeof set === "function") { + descriptor.set = /* @__PURE__ */ __name(function setter() { + log.call(deprecate, message, site); + return set.apply(this, arguments); + }, "setter"); + } + Object.defineProperty(obj, prop, descriptor); + } + __name(wrapproperty, "wrapproperty"); + function DeprecationError(namespace, message, stack) { + var error = new Error(); + var stackString; + Object.defineProperty(error, "constructor", { + value: DeprecationError + }); + Object.defineProperty(error, "message", { + configurable: true, + enumerable: false, + value: message, + writable: true + }); + Object.defineProperty(error, "name", { + enumerable: false, + configurable: true, + value: "DeprecationError", + writable: true + }); + Object.defineProperty(error, "namespace", { + configurable: true, + enumerable: false, + value: namespace, + writable: true + }); + Object.defineProperty(error, "stack", { + configurable: true, + enumerable: false, + get: /* @__PURE__ */ __name(function() { + if (stackString !== void 0) { + return stackString; + } + return stackString = createStackString.call(this, stack); + }, "get"), + set: /* @__PURE__ */ __name(function setter(val) { + stackString = val; + }, "setter") + }); + return error; + } + __name(DeprecationError, "DeprecationError"); + } +}); + +// ../../node_modules/.pnpm/setprototypeof@1.2.0/node_modules/setprototypeof/index.js +var require_setprototypeof = __commonJS({ + "../../node_modules/.pnpm/setprototypeof@1.2.0/node_modules/setprototypeof/index.js"(exports, module) { + "use strict"; + module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties); + function setProtoOf(obj, proto) { + obj.__proto__ = proto; + return obj; + } + __name(setProtoOf, "setProtoOf"); + function mixinProperties(obj, proto) { + for (var prop in proto) { + if (!Object.prototype.hasOwnProperty.call(obj, prop)) { + obj[prop] = proto[prop]; + } + } + return obj; + } + __name(mixinProperties, "mixinProperties"); + } +}); + +// ../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/codes.json +var require_codes = __commonJS({ + "../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/codes.json"(exports, module) { + module.exports = { + "100": "Continue", + "101": "Switching Protocols", + "102": "Processing", + "103": "Early Hints", + "200": "OK", + "201": "Created", + "202": "Accepted", + "203": "Non-Authoritative Information", + "204": "No Content", + "205": "Reset Content", + "206": "Partial Content", + "207": "Multi-Status", + "208": "Already Reported", + "226": "IM Used", + "300": "Multiple Choices", + "301": "Moved Permanently", + "302": "Found", + "303": "See Other", + "304": "Not Modified", + "305": "Use Proxy", + "307": "Temporary Redirect", + "308": "Permanent Redirect", + "400": "Bad Request", + "401": "Unauthorized", + "402": "Payment Required", + "403": "Forbidden", + "404": "Not Found", + "405": "Method Not Allowed", + "406": "Not Acceptable", + "407": "Proxy Authentication Required", + "408": "Request Timeout", + "409": "Conflict", + "410": "Gone", + "411": "Length Required", + "412": "Precondition Failed", + "413": "Payload Too Large", + "414": "URI Too Long", + "415": "Unsupported Media Type", + "416": "Range Not Satisfiable", + "417": "Expectation Failed", + "418": "I'm a Teapot", + "421": "Misdirected Request", + "422": "Unprocessable Entity", + "423": "Locked", + "424": "Failed Dependency", + "425": "Too Early", + "426": "Upgrade Required", + "428": "Precondition Required", + "429": "Too Many Requests", + "431": "Request Header Fields Too Large", + "451": "Unavailable For Legal Reasons", + "500": "Internal Server Error", + "501": "Not Implemented", + "502": "Bad Gateway", + "503": "Service Unavailable", + "504": "Gateway Timeout", + "505": "HTTP Version Not Supported", + "506": "Variant Also Negotiates", + "507": "Insufficient Storage", + "508": "Loop Detected", + "509": "Bandwidth Limit Exceeded", + "510": "Not Extended", + "511": "Network Authentication Required" + }; + } +}); + +// ../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/index.js +var require_statuses = __commonJS({ + "../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/index.js"(exports, module) { + "use strict"; + var codes = require_codes(); + module.exports = status; + status.message = codes; + status.code = createMessageToStatusCodeMap(codes); + status.codes = createStatusCodeList(codes); + status.redirect = { + 300: true, + 301: true, + 302: true, + 303: true, + 305: true, + 307: true, + 308: true + }; + status.empty = { + 204: true, + 205: true, + 304: true + }; + status.retry = { + 502: true, + 503: true, + 504: true + }; + function createMessageToStatusCodeMap(codes2) { + var map2 = {}; + Object.keys(codes2).forEach(/* @__PURE__ */ __name(function forEachCode(code) { + var message = codes2[code]; + var status2 = Number(code); + map2[message.toLowerCase()] = status2; + }, "forEachCode")); + return map2; + } + __name(createMessageToStatusCodeMap, "createMessageToStatusCodeMap"); + function createStatusCodeList(codes2) { + return Object.keys(codes2).map(/* @__PURE__ */ __name(function mapCode(code) { + return Number(code); + }, "mapCode")); + } + __name(createStatusCodeList, "createStatusCodeList"); + function getStatusCode(message) { + var msg = message.toLowerCase(); + if (!Object.prototype.hasOwnProperty.call(status.code, msg)) { + throw new Error('invalid status message: "' + message + '"'); + } + return status.code[msg]; + } + __name(getStatusCode, "getStatusCode"); + function getStatusMessage(code) { + if (!Object.prototype.hasOwnProperty.call(status.message, code)) { + throw new Error("invalid status code: " + code); + } + return status.message[code]; + } + __name(getStatusMessage, "getStatusMessage"); + function status(code) { + if (typeof code === "number") { + return getStatusMessage(code); + } + if (typeof code !== "string") { + throw new TypeError("code must be a number or string"); + } + var n = parseInt(code, 10); + if (!isNaN(n)) { + return getStatusMessage(n); + } + return getStatusCode(code); + } + __name(status, "status"); + } +}); + +// ../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js"(exports, module) { + if (typeof Object.create === "function") { + module.exports = /* @__PURE__ */ __name(function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }, "inherits"); + } else { + module.exports = /* @__PURE__ */ __name(function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = /* @__PURE__ */ __name(function() { + }, "TempCtor"); + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }, "inherits"); + } + } +}); + +// ../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js +var require_inherits = __commonJS({ + "../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js"(exports, module) { + try { + util = __require("util"); + if (typeof util.inherits !== "function") throw ""; + module.exports = util.inherits; + } catch (e) { + module.exports = require_inherits_browser(); + } + var util; + } +}); + +// ../../node_modules/.pnpm/toidentifier@1.0.1/node_modules/toidentifier/index.js +var require_toidentifier = __commonJS({ + "../../node_modules/.pnpm/toidentifier@1.0.1/node_modules/toidentifier/index.js"(exports, module) { + "use strict"; + module.exports = toIdentifier; + function toIdentifier(str) { + return str.split(" ").map(function(token) { + return token.slice(0, 1).toUpperCase() + token.slice(1); + }).join("").replace(/[^ _0-9a-z]/gi, ""); + } + __name(toIdentifier, "toIdentifier"); + } +}); + +// ../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js +var require_http_errors = __commonJS({ + "../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js"(exports, module) { + "use strict"; + var deprecate = require_depd()("http-errors"); + var setPrototypeOf = require_setprototypeof(); + var statuses = require_statuses(); + var inherits = require_inherits(); + var toIdentifier = require_toidentifier(); + module.exports = createError; + module.exports.HttpError = createHttpErrorConstructor(); + module.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError); + populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError); + function codeClass(status) { + return Number(String(status).charAt(0) + "00"); + } + __name(codeClass, "codeClass"); + function createError() { + var err; + var msg; + var status = 500; + var props = {}; + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + var type = typeof arg; + if (type === "object" && arg instanceof Error) { + err = arg; + status = err.status || err.statusCode || status; + } else if (type === "number" && i === 0) { + status = arg; + } else if (type === "string") { + msg = arg; + } else if (type === "object") { + props = arg; + } else { + throw new TypeError("argument #" + (i + 1) + " unsupported type " + type); + } + } + if (typeof status === "number" && (status < 400 || status >= 600)) { + deprecate("non-error status code; use only 4xx or 5xx status codes"); + } + if (typeof status !== "number" || !statuses.message[status] && (status < 400 || status >= 600)) { + status = 500; + } + var HttpError = createError[status] || createError[codeClass(status)]; + if (!err) { + err = HttpError ? new HttpError(msg) : new Error(msg || statuses.message[status]); + Error.captureStackTrace(err, createError); + } + if (!HttpError || !(err instanceof HttpError) || err.status !== status) { + err.expose = status < 500; + err.status = err.statusCode = status; + } + for (var key in props) { + if (key !== "status" && key !== "statusCode") { + err[key] = props[key]; + } + } + return err; + } + __name(createError, "createError"); + function createHttpErrorConstructor() { + function HttpError() { + throw new TypeError("cannot construct abstract class"); + } + __name(HttpError, "HttpError"); + inherits(HttpError, Error); + return HttpError; + } + __name(createHttpErrorConstructor, "createHttpErrorConstructor"); + function createClientErrorConstructor(HttpError, name, code) { + var className = toClassName(name); + function ClientError(message) { + var msg = message != null ? message : statuses.message[code]; + var err = new Error(msg); + Error.captureStackTrace(err, ClientError); + setPrototypeOf(err, ClientError.prototype); + Object.defineProperty(err, "message", { + enumerable: true, + configurable: true, + value: msg, + writable: true + }); + Object.defineProperty(err, "name", { + enumerable: false, + configurable: true, + value: className, + writable: true + }); + return err; + } + __name(ClientError, "ClientError"); + inherits(ClientError, HttpError); + nameFunc(ClientError, className); + ClientError.prototype.status = code; + ClientError.prototype.statusCode = code; + ClientError.prototype.expose = true; + return ClientError; + } + __name(createClientErrorConstructor, "createClientErrorConstructor"); + function createIsHttpErrorFunction(HttpError) { + return /* @__PURE__ */ __name(function isHttpError(val) { + if (!val || typeof val !== "object") { + return false; + } + if (val instanceof HttpError) { + return true; + } + return val instanceof Error && typeof val.expose === "boolean" && typeof val.statusCode === "number" && val.status === val.statusCode; + }, "isHttpError"); + } + __name(createIsHttpErrorFunction, "createIsHttpErrorFunction"); + function createServerErrorConstructor(HttpError, name, code) { + var className = toClassName(name); + function ServerError(message) { + var msg = message != null ? message : statuses.message[code]; + var err = new Error(msg); + Error.captureStackTrace(err, ServerError); + setPrototypeOf(err, ServerError.prototype); + Object.defineProperty(err, "message", { + enumerable: true, + configurable: true, + value: msg, + writable: true + }); + Object.defineProperty(err, "name", { + enumerable: false, + configurable: true, + value: className, + writable: true + }); + return err; + } + __name(ServerError, "ServerError"); + inherits(ServerError, HttpError); + nameFunc(ServerError, className); + ServerError.prototype.status = code; + ServerError.prototype.statusCode = code; + ServerError.prototype.expose = false; + return ServerError; + } + __name(createServerErrorConstructor, "createServerErrorConstructor"); + function nameFunc(func, name) { + var desc = Object.getOwnPropertyDescriptor(func, "name"); + if (desc && desc.configurable) { + desc.value = name; + Object.defineProperty(func, "name", desc); + } + } + __name(nameFunc, "nameFunc"); + function populateConstructorExports(exports2, codes, HttpError) { + codes.forEach(/* @__PURE__ */ __name(function forEachCode(code) { + var CodeError; + var name = toIdentifier(statuses.message[code]); + switch (codeClass(code)) { + case 400: + CodeError = createClientErrorConstructor(HttpError, name, code); + break; + case 500: + CodeError = createServerErrorConstructor(HttpError, name, code); + break; + } + if (CodeError) { + exports2[code] = CodeError; + exports2[name] = CodeError; + } + }, "forEachCode")); + } + __name(populateConstructorExports, "populateConstructorExports"); + function toClassName(name) { + return name.slice(-5) === "Error" ? name : name + "Error"; + } + __name(toClassName, "toClassName"); + } +}); + +// ../../node_modules/.pnpm/bytes@3.1.2/node_modules/bytes/index.js +var require_bytes = __commonJS({ + "../../node_modules/.pnpm/bytes@3.1.2/node_modules/bytes/index.js"(exports, module) { + "use strict"; + module.exports = bytes; + module.exports.format = format; + module.exports.parse = parse; + var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + var map2 = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5) + }; + var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + function bytes(value, options) { + if (typeof value === "string") { + return parse(value); + } + if (typeof value === "number") { + return format(value, options); + } + return null; + } + __name(bytes, "bytes"); + function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + var mag = Math.abs(value); + var thousandsSeparator = options && options.thousandsSeparator || ""; + var unitSeparator = options && options.unitSeparator || ""; + var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = options && options.unit || ""; + if (!unit || !map2[unit.toLowerCase()]) { + if (mag >= map2.pb) { + unit = "PB"; + } else if (mag >= map2.tb) { + unit = "TB"; + } else if (mag >= map2.gb) { + unit = "GB"; + } else if (mag >= map2.mb) { + unit = "MB"; + } else if (mag >= map2.kb) { + unit = "KB"; + } else { + unit = "B"; + } + } + var val = value / map2[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, "$1"); + } + if (thousandsSeparator) { + str = str.split(".").map(function(s, i) { + return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s; + }).join("."); + } + return str + unitSeparator + unit; + } + __name(format, "format"); + function parse(val) { + if (typeof val === "number" && !isNaN(val)) { + return val; + } + if (typeof val !== "string") { + return null; + } + var results = parseRegExp.exec(val); + var floatValue; + var unit = "b"; + if (!results) { + floatValue = parseInt(val, 10); + unit = "b"; + } else { + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + if (isNaN(floatValue)) { + return null; + } + return Math.floor(map2[unit] * floatValue); + } + __name(parse, "parse"); + } +}); + +// ../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js +var require_safer = __commonJS({ + "../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js"(exports, module) { + "use strict"; + var buffer = __require("buffer"); + var Buffer2 = buffer.Buffer; + var safer = {}; + var key; + for (key in buffer) { + if (!buffer.hasOwnProperty(key)) continue; + if (key === "SlowBuffer" || key === "Buffer") continue; + safer[key] = buffer[key]; + } + var Safer = safer.Buffer = {}; + for (key in Buffer2) { + if (!Buffer2.hasOwnProperty(key)) continue; + if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue; + Safer[key] = Buffer2[key]; + } + safer.Buffer.prototype = Buffer2.prototype; + if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function(value, encodingOrOffset, length) { + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); + } + if (value && typeof value.length === "undefined") { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + return Buffer2(value, encodingOrOffset, length); + }; + } + if (!Safer.alloc) { + Safer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + var buf = Buffer2(size); + if (!fill || fill.length === 0) { + buf.fill(0); + } else if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + return buf; + }; + } + if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding("buffer").kStringMaxLength; + } catch (e) { + } + } + if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + }; + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength; + } + } + module.exports = safer; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/bom-handling.js +var require_bom_handling = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/bom-handling.js"(exports) { + "use strict"; + var BOMChar = "\uFEFF"; + exports.PrependBOM = PrependBOMWrapper; + function PrependBOMWrapper(encoder, options) { + this.encoder = encoder; + this.addBOM = true; + } + __name(PrependBOMWrapper, "PrependBOMWrapper"); + PrependBOMWrapper.prototype.write = function(str) { + if (this.addBOM) { + str = BOMChar + str; + this.addBOM = false; + } + return this.encoder.write(str); + }; + PrependBOMWrapper.prototype.end = function() { + return this.encoder.end(); + }; + exports.StripBOM = StripBOMWrapper; + function StripBOMWrapper(decoder, options) { + this.decoder = decoder; + this.pass = false; + this.options = options || {}; + } + __name(StripBOMWrapper, "StripBOMWrapper"); + StripBOMWrapper.prototype.write = function(buf) { + var res = this.decoder.write(buf); + if (this.pass || !res) { + return res; + } + if (res[0] === BOMChar) { + res = res.slice(1); + if (typeof this.options.stripBOM === "function") { + this.options.stripBOM(); + } + } + this.pass = true; + return res; + }; + StripBOMWrapper.prototype.end = function() { + return this.decoder.end(); + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/helpers/merge-exports.js +var require_merge_exports = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/helpers/merge-exports.js"(exports, module) { + "use strict"; + var hasOwn = typeof Object.hasOwn === "undefined" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn; + function mergeModules(target, module2) { + for (var key in module2) { + if (hasOwn(module2, key)) { + target[key] = module2[key]; + } + } + } + __name(mergeModules, "mergeModules"); + module.exports = mergeModules; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/internal.js +var require_internal = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/internal.js"(exports, module) { + "use strict"; + var Buffer2 = require_safer().Buffer; + module.exports = { + // Encodings + utf8: { type: "_internal", bomAware: true }, + cesu8: { type: "_internal", bomAware: true }, + unicode11utf8: "utf8", + ucs2: { type: "_internal", bomAware: true }, + utf16le: "ucs2", + binary: { type: "_internal" }, + base64: { type: "_internal" }, + hex: { type: "_internal" }, + // Codec. + _internal: InternalCodec + }; + function InternalCodec(codecOptions, iconv) { + this.enc = codecOptions.encodingName; + this.bomAware = codecOptions.bomAware; + if (this.enc === "base64") { + this.encoder = InternalEncoderBase64; + } else if (this.enc === "utf8") { + this.encoder = InternalEncoderUtf8; + } else if (this.enc === "cesu8") { + this.enc = "utf8"; + this.encoder = InternalEncoderCesu8; + if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") { + this.decoder = InternalDecoderCesu8; + this.defaultCharUnicode = iconv.defaultCharUnicode; + } + } + } + __name(InternalCodec, "InternalCodec"); + InternalCodec.prototype.encoder = InternalEncoder; + InternalCodec.prototype.decoder = InternalDecoder; + var StringDecoder = __require("string_decoder").StringDecoder; + function InternalDecoder(options, codec) { + this.decoder = new StringDecoder(codec.enc); + } + __name(InternalDecoder, "InternalDecoder"); + InternalDecoder.prototype.write = function(buf) { + if (!Buffer2.isBuffer(buf)) { + buf = Buffer2.from(buf); + } + return this.decoder.write(buf); + }; + InternalDecoder.prototype.end = function() { + return this.decoder.end(); + }; + function InternalEncoder(options, codec) { + this.enc = codec.enc; + } + __name(InternalEncoder, "InternalEncoder"); + InternalEncoder.prototype.write = function(str) { + return Buffer2.from(str, this.enc); + }; + InternalEncoder.prototype.end = function() { + }; + function InternalEncoderBase64(options, codec) { + this.prevStr = ""; + } + __name(InternalEncoderBase64, "InternalEncoderBase64"); + InternalEncoderBase64.prototype.write = function(str) { + str = this.prevStr + str; + var completeQuads = str.length - str.length % 4; + this.prevStr = str.slice(completeQuads); + str = str.slice(0, completeQuads); + return Buffer2.from(str, "base64"); + }; + InternalEncoderBase64.prototype.end = function() { + return Buffer2.from(this.prevStr, "base64"); + }; + function InternalEncoderCesu8(options, codec) { + } + __name(InternalEncoderCesu8, "InternalEncoderCesu8"); + InternalEncoderCesu8.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length * 3); + var bufIdx = 0; + for (var i = 0; i < str.length; i++) { + var charCode = str.charCodeAt(i); + if (charCode < 128) { + buf[bufIdx++] = charCode; + } else if (charCode < 2048) { + buf[bufIdx++] = 192 + (charCode >>> 6); + buf[bufIdx++] = 128 + (charCode & 63); + } else { + buf[bufIdx++] = 224 + (charCode >>> 12); + buf[bufIdx++] = 128 + (charCode >>> 6 & 63); + buf[bufIdx++] = 128 + (charCode & 63); + } + } + return buf.slice(0, bufIdx); + }; + InternalEncoderCesu8.prototype.end = function() { + }; + function InternalDecoderCesu8(options, codec) { + this.acc = 0; + this.contBytes = 0; + this.accBytes = 0; + this.defaultCharUnicode = codec.defaultCharUnicode; + } + __name(InternalDecoderCesu8, "InternalDecoderCesu8"); + InternalDecoderCesu8.prototype.write = function(buf) { + var acc = this.acc; + var contBytes = this.contBytes; + var accBytes = this.accBytes; + var res = ""; + for (var i = 0; i < buf.length; i++) { + var curByte = buf[i]; + if ((curByte & 192) !== 128) { + if (contBytes > 0) { + res += this.defaultCharUnicode; + contBytes = 0; + } + if (curByte < 128) { + res += String.fromCharCode(curByte); + } else if (curByte < 224) { + acc = curByte & 31; + contBytes = 1; + accBytes = 1; + } else if (curByte < 240) { + acc = curByte & 15; + contBytes = 2; + accBytes = 1; + } else { + res += this.defaultCharUnicode; + } + } else { + if (contBytes > 0) { + acc = acc << 6 | curByte & 63; + contBytes--; + accBytes++; + if (contBytes === 0) { + if (accBytes === 2 && acc < 128 && acc > 0) { + res += this.defaultCharUnicode; + } else if (accBytes === 3 && acc < 2048) { + res += this.defaultCharUnicode; + } else { + res += String.fromCharCode(acc); + } + } + } else { + res += this.defaultCharUnicode; + } + } + } + this.acc = acc; + this.contBytes = contBytes; + this.accBytes = accBytes; + return res; + }; + InternalDecoderCesu8.prototype.end = function() { + var res = 0; + if (this.contBytes > 0) { + res += this.defaultCharUnicode; + } + return res; + }; + function InternalEncoderUtf8(options, codec) { + this.highSurrogate = ""; + } + __name(InternalEncoderUtf8, "InternalEncoderUtf8"); + InternalEncoderUtf8.prototype.write = function(str) { + if (this.highSurrogate) { + str = this.highSurrogate + str; + this.highSurrogate = ""; + } + if (str.length > 0) { + var charCode = str.charCodeAt(str.length - 1); + if (charCode >= 55296 && charCode < 56320) { + this.highSurrogate = str[str.length - 1]; + str = str.slice(0, str.length - 1); + } + } + return Buffer2.from(str, this.enc); + }; + InternalEncoderUtf8.prototype.end = function() { + if (this.highSurrogate) { + var str = this.highSurrogate; + this.highSurrogate = ""; + return Buffer2.from(str, this.enc); + } + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf32.js +var require_utf32 = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf32.js"(exports) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports._utf32 = Utf32Codec; + function Utf32Codec(codecOptions, iconv) { + this.iconv = iconv; + this.bomAware = true; + this.isLE = codecOptions.isLE; + } + __name(Utf32Codec, "Utf32Codec"); + exports.utf32le = { type: "_utf32", isLE: true }; + exports.utf32be = { type: "_utf32", isLE: false }; + exports.ucs4le = "utf32le"; + exports.ucs4be = "utf32be"; + Utf32Codec.prototype.encoder = Utf32Encoder; + Utf32Codec.prototype.decoder = Utf32Decoder; + function Utf32Encoder(options, codec) { + this.isLE = codec.isLE; + this.highSurrogate = 0; + } + __name(Utf32Encoder, "Utf32Encoder"); + Utf32Encoder.prototype.write = function(str) { + var src = Buffer2.from(str, "ucs2"); + var dst = Buffer2.alloc(src.length * 2 + 4); + var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE; + var offset = 0; + for (var i = 0; i < src.length; i += 2) { + var code = src.readUInt16LE(i); + var isHighSurrogate = code >= 55296 && code < 56320; + var isLowSurrogate = code >= 56320 && code < 57344; + if (this.highSurrogate) { + if (isHighSurrogate || !isLowSurrogate) { + write32.call(dst, this.highSurrogate, offset); + offset += 4; + } else { + var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536; + write32.call(dst, codepoint, offset); + offset += 4; + this.highSurrogate = 0; + continue; + } + } + if (isHighSurrogate) { + this.highSurrogate = code; + } else { + write32.call(dst, code, offset); + offset += 4; + this.highSurrogate = 0; + } + } + if (offset < dst.length) { + dst = dst.slice(0, offset); + } + return dst; + }; + Utf32Encoder.prototype.end = function() { + if (!this.highSurrogate) { + return; + } + var buf = Buffer2.alloc(4); + if (this.isLE) { + buf.writeUInt32LE(this.highSurrogate, 0); + } else { + buf.writeUInt32BE(this.highSurrogate, 0); + } + this.highSurrogate = 0; + return buf; + }; + function Utf32Decoder(options, codec) { + this.isLE = codec.isLE; + this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0); + this.overflow = []; + } + __name(Utf32Decoder, "Utf32Decoder"); + Utf32Decoder.prototype.write = function(src) { + if (src.length === 0) { + return ""; + } + var i = 0; + var codepoint = 0; + var dst = Buffer2.alloc(src.length + 4); + var offset = 0; + var isLE = this.isLE; + var overflow = this.overflow; + var badChar = this.badChar; + if (overflow.length > 0) { + for (; i < src.length && overflow.length < 4; i++) { + overflow.push(src[i]); + } + if (overflow.length === 4) { + if (isLE) { + codepoint = overflow[0] | overflow[1] << 8 | overflow[2] << 16 | overflow[3] << 24; + } else { + codepoint = overflow[3] | overflow[2] << 8 | overflow[1] << 16 | overflow[0] << 24; + } + overflow.length = 0; + offset = _writeCodepoint(dst, offset, codepoint, badChar); + } + } + for (; i < src.length - 3; i += 4) { + if (isLE) { + codepoint = src[i] | src[i + 1] << 8 | src[i + 2] << 16 | src[i + 3] << 24; + } else { + codepoint = src[i + 3] | src[i + 2] << 8 | src[i + 1] << 16 | src[i] << 24; + } + offset = _writeCodepoint(dst, offset, codepoint, badChar); + } + for (; i < src.length; i++) { + overflow.push(src[i]); + } + return dst.slice(0, offset).toString("ucs2"); + }; + function _writeCodepoint(dst, offset, codepoint, badChar) { + if (codepoint < 0 || codepoint > 1114111) { + codepoint = badChar; + } + if (codepoint >= 65536) { + codepoint -= 65536; + var high = 55296 | codepoint >> 10; + dst[offset++] = high & 255; + dst[offset++] = high >> 8; + var codepoint = 56320 | codepoint & 1023; + } + dst[offset++] = codepoint & 255; + dst[offset++] = codepoint >> 8; + return offset; + } + __name(_writeCodepoint, "_writeCodepoint"); + Utf32Decoder.prototype.end = function() { + if (this.overflow.length === 0) { + return; + } + this.overflow.length = 0; + return String.fromCharCode(this.badChar); + }; + exports.utf32 = Utf32AutoCodec; + exports.ucs4 = "utf32"; + function Utf32AutoCodec(options, iconv) { + this.iconv = iconv; + } + __name(Utf32AutoCodec, "Utf32AutoCodec"); + Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder; + Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder; + function Utf32AutoEncoder(options, codec) { + options = options || {}; + if (options.addBOM === void 0) { + options.addBOM = true; + } + this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options); + } + __name(Utf32AutoEncoder, "Utf32AutoEncoder"); + Utf32AutoEncoder.prototype.write = function(str) { + return this.encoder.write(str); + }; + Utf32AutoEncoder.prototype.end = function() { + return this.encoder.end(); + }; + function Utf32AutoDecoder(options, codec) { + this.decoder = null; + this.initialBufs = []; + this.initialBufsLen = 0; + this.options = options || {}; + this.iconv = codec.iconv; + } + __name(Utf32AutoDecoder, "Utf32AutoDecoder"); + Utf32AutoDecoder.prototype.write = function(buf) { + if (!this.decoder) { + this.initialBufs.push(buf); + this.initialBufsLen += buf.length; + if (this.initialBufsLen < 32) { + return ""; + } + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.write(buf); + }; + Utf32AutoDecoder.prototype.end = function() { + if (!this.decoder) { + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + var trail = this.decoder.end(); + if (trail) { + resStr += trail; + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.end(); + }; + function detectEncoding(bufs, defaultEncoding) { + var b = []; + var charsProcessed = 0; + var invalidLE = 0; + var invalidBE = 0; + var bmpCharsLE = 0; + var bmpCharsBE = 0; + outerLoop: + for (var i = 0; i < bufs.length; i++) { + var buf = bufs[i]; + for (var j = 0; j < buf.length; j++) { + b.push(buf[j]); + if (b.length === 4) { + if (charsProcessed === 0) { + if (b[0] === 255 && b[1] === 254 && b[2] === 0 && b[3] === 0) { + return "utf-32le"; + } + if (b[0] === 0 && b[1] === 0 && b[2] === 254 && b[3] === 255) { + return "utf-32be"; + } + } + if (b[0] !== 0 || b[1] > 16) invalidBE++; + if (b[3] !== 0 || b[2] > 16) invalidLE++; + if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++; + if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++; + b.length = 0; + charsProcessed++; + if (charsProcessed >= 100) { + break outerLoop; + } + } + } + } + if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be"; + if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le"; + return defaultEncoding || "utf-32le"; + } + __name(detectEncoding, "detectEncoding"); + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf16.js +var require_utf16 = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf16.js"(exports) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports.utf16be = Utf16BECodec; + function Utf16BECodec() { + } + __name(Utf16BECodec, "Utf16BECodec"); + Utf16BECodec.prototype.encoder = Utf16BEEncoder; + Utf16BECodec.prototype.decoder = Utf16BEDecoder; + Utf16BECodec.prototype.bomAware = true; + function Utf16BEEncoder() { + } + __name(Utf16BEEncoder, "Utf16BEEncoder"); + Utf16BEEncoder.prototype.write = function(str) { + var buf = Buffer2.from(str, "ucs2"); + for (var i = 0; i < buf.length; i += 2) { + var tmp = buf[i]; + buf[i] = buf[i + 1]; + buf[i + 1] = tmp; + } + return buf; + }; + Utf16BEEncoder.prototype.end = function() { + }; + function Utf16BEDecoder() { + this.overflowByte = -1; + } + __name(Utf16BEDecoder, "Utf16BEDecoder"); + Utf16BEDecoder.prototype.write = function(buf) { + if (buf.length == 0) { + return ""; + } + var buf2 = Buffer2.alloc(buf.length + 1); + var i = 0; + var j = 0; + if (this.overflowByte !== -1) { + buf2[0] = buf[0]; + buf2[1] = this.overflowByte; + i = 1; + j = 2; + } + for (; i < buf.length - 1; i += 2, j += 2) { + buf2[j] = buf[i + 1]; + buf2[j + 1] = buf[i]; + } + this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1; + return buf2.slice(0, j).toString("ucs2"); + }; + Utf16BEDecoder.prototype.end = function() { + this.overflowByte = -1; + }; + exports.utf16 = Utf16Codec; + function Utf16Codec(codecOptions, iconv) { + this.iconv = iconv; + } + __name(Utf16Codec, "Utf16Codec"); + Utf16Codec.prototype.encoder = Utf16Encoder; + Utf16Codec.prototype.decoder = Utf16Decoder; + function Utf16Encoder(options, codec) { + options = options || {}; + if (options.addBOM === void 0) { + options.addBOM = true; + } + this.encoder = codec.iconv.getEncoder("utf-16le", options); + } + __name(Utf16Encoder, "Utf16Encoder"); + Utf16Encoder.prototype.write = function(str) { + return this.encoder.write(str); + }; + Utf16Encoder.prototype.end = function() { + return this.encoder.end(); + }; + function Utf16Decoder(options, codec) { + this.decoder = null; + this.initialBufs = []; + this.initialBufsLen = 0; + this.options = options || {}; + this.iconv = codec.iconv; + } + __name(Utf16Decoder, "Utf16Decoder"); + Utf16Decoder.prototype.write = function(buf) { + if (!this.decoder) { + this.initialBufs.push(buf); + this.initialBufsLen += buf.length; + if (this.initialBufsLen < 16) { + return ""; + } + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.write(buf); + }; + Utf16Decoder.prototype.end = function() { + if (!this.decoder) { + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + var trail = this.decoder.end(); + if (trail) { + resStr += trail; + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.end(); + }; + function detectEncoding(bufs, defaultEncoding) { + var b = []; + var charsProcessed = 0; + var asciiCharsLE = 0; + var asciiCharsBE = 0; + outerLoop: + for (var i = 0; i < bufs.length; i++) { + var buf = bufs[i]; + for (var j = 0; j < buf.length; j++) { + b.push(buf[j]); + if (b.length === 2) { + if (charsProcessed === 0) { + if (b[0] === 255 && b[1] === 254) return "utf-16le"; + if (b[0] === 254 && b[1] === 255) return "utf-16be"; + } + if (b[0] === 0 && b[1] !== 0) asciiCharsBE++; + if (b[0] !== 0 && b[1] === 0) asciiCharsLE++; + b.length = 0; + charsProcessed++; + if (charsProcessed >= 100) { + break outerLoop; + } + } + } + } + if (asciiCharsBE > asciiCharsLE) return "utf-16be"; + if (asciiCharsBE < asciiCharsLE) return "utf-16le"; + return defaultEncoding || "utf-16le"; + } + __name(detectEncoding, "detectEncoding"); + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf7.js +var require_utf7 = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf7.js"(exports) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports.utf7 = Utf7Codec; + exports.unicode11utf7 = "utf7"; + function Utf7Codec(codecOptions, iconv) { + this.iconv = iconv; + } + __name(Utf7Codec, "Utf7Codec"); + Utf7Codec.prototype.encoder = Utf7Encoder; + Utf7Codec.prototype.decoder = Utf7Decoder; + Utf7Codec.prototype.bomAware = true; + var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; + function Utf7Encoder(options, codec) { + this.iconv = codec.iconv; + } + __name(Utf7Encoder, "Utf7Encoder"); + Utf7Encoder.prototype.write = function(str) { + return Buffer2.from(str.replace(nonDirectChars, function(chunk) { + return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-"; + }.bind(this))); + }; + Utf7Encoder.prototype.end = function() { + }; + function Utf7Decoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + __name(Utf7Decoder, "Utf7Decoder"); + var base64Regex = /[A-Za-z0-9\/+]/; + var base64Chars = []; + for (i = 0; i < 256; i++) { + base64Chars[i] = base64Regex.test(String.fromCharCode(i)); + } + var i; + var plusChar = "+".charCodeAt(0); + var minusChar = "-".charCodeAt(0); + var andChar = "&".charCodeAt(0); + Utf7Decoder.prototype.write = function(buf) { + var res = ""; + var lastI = 0; + var inBase64 = this.inBase64; + var base64Accum = this.base64Accum; + for (var i2 = 0; i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == plusChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64Chars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "+"; + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii"); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) { + i2--; + } + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii"); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7Decoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) { + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + } + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; + exports.utf7imap = Utf7IMAPCodec; + function Utf7IMAPCodec(codecOptions, iconv) { + this.iconv = iconv; + } + __name(Utf7IMAPCodec, "Utf7IMAPCodec"); + Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; + Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; + Utf7IMAPCodec.prototype.bomAware = true; + function Utf7IMAPEncoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = Buffer2.alloc(6); + this.base64AccumIdx = 0; + } + __name(Utf7IMAPEncoder, "Utf7IMAPEncoder"); + Utf7IMAPEncoder.prototype.write = function(str) { + var inBase64 = this.inBase64; + var base64Accum = this.base64Accum; + var base64AccumIdx = this.base64AccumIdx; + var buf = Buffer2.alloc(str.length * 5 + 10); + var bufIdx = 0; + for (var i2 = 0; i2 < str.length; i2++) { + var uChar = str.charCodeAt(i2); + if (uChar >= 32 && uChar <= 126) { + if (inBase64) { + if (base64AccumIdx > 0) { + bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + inBase64 = false; + } + if (!inBase64) { + buf[bufIdx++] = uChar; + if (uChar === andChar) { + buf[bufIdx++] = minusChar; + } + } + } else { + if (!inBase64) { + buf[bufIdx++] = andChar; + inBase64 = true; + } + if (inBase64) { + base64Accum[base64AccumIdx++] = uChar >> 8; + base64Accum[base64AccumIdx++] = uChar & 255; + if (base64AccumIdx == base64Accum.length) { + bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx); + base64AccumIdx = 0; + } + } + } + } + this.inBase64 = inBase64; + this.base64AccumIdx = base64AccumIdx; + return buf.slice(0, bufIdx); + }; + Utf7IMAPEncoder.prototype.end = function() { + var buf = Buffer2.alloc(10); + var bufIdx = 0; + if (this.inBase64) { + if (this.base64AccumIdx > 0) { + bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + this.base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + this.inBase64 = false; + } + return buf.slice(0, bufIdx); + }; + function Utf7IMAPDecoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + __name(Utf7IMAPDecoder, "Utf7IMAPDecoder"); + var base64IMAPChars = base64Chars.slice(); + base64IMAPChars[",".charCodeAt(0)] = true; + Utf7IMAPDecoder.prototype.write = function(buf) { + var res = ""; + var lastI = 0; + var inBase64 = this.inBase64; + var base64Accum = this.base64Accum; + for (var i2 = 0; i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == andChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64IMAPChars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "&"; + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii").replace(/,/g, "/"); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) { + i2--; + } + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/"); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7IMAPDecoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) { + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + } + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-codec.js +var require_sbcs_codec = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports._sbcs = SBCSCodec; + function SBCSCodec(codecOptions, iconv) { + if (!codecOptions) { + throw new Error("SBCS codec is called without the data."); + } + if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) { + throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)"); + } + if (codecOptions.chars.length === 128) { + var asciiString = ""; + for (var i = 0; i < 128; i++) { + asciiString += String.fromCharCode(i); + } + codecOptions.chars = asciiString + codecOptions.chars; + } + this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2"); + var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); + for (var i = 0; i < codecOptions.chars.length; i++) { + encodeBuf[codecOptions.chars.charCodeAt(i)] = i; + } + this.encodeBuf = encodeBuf; + } + __name(SBCSCodec, "SBCSCodec"); + SBCSCodec.prototype.encoder = SBCSEncoder; + SBCSCodec.prototype.decoder = SBCSDecoder; + function SBCSEncoder(options, codec) { + this.encodeBuf = codec.encodeBuf; + } + __name(SBCSEncoder, "SBCSEncoder"); + SBCSEncoder.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length); + for (var i = 0; i < str.length; i++) { + buf[i] = this.encodeBuf[str.charCodeAt(i)]; + } + return buf; + }; + SBCSEncoder.prototype.end = function() { + }; + function SBCSDecoder(options, codec) { + this.decodeBuf = codec.decodeBuf; + } + __name(SBCSDecoder, "SBCSDecoder"); + SBCSDecoder.prototype.write = function(buf) { + var decodeBuf = this.decodeBuf; + var newBuf = Buffer2.alloc(buf.length * 2); + var idx1 = 0; + var idx2 = 0; + for (var i = 0; i < buf.length; i++) { + idx1 = buf[i] * 2; + idx2 = i * 2; + newBuf[idx2] = decodeBuf[idx1]; + newBuf[idx2 + 1] = decodeBuf[idx1 + 1]; + } + return newBuf.toString("ucs2"); + }; + SBCSDecoder.prototype.end = function() { + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data.js +var require_sbcs_data = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data.js"(exports, module) { + "use strict"; + module.exports = { + // Not supported by iconv, not sure why. + 10029: "maccenteuro", + maccenteuro: { + type: "_sbcs", + chars: "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7" + }, + 808: "cp808", + ibm808: "cp808", + cp808: { + type: "_sbcs", + chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0" + }, + mik: { + type: "_sbcs", + chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + cp720: { + type: "_sbcs", + chars: "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + // Aliases of generated encodings. + ascii8bit: "ascii", + usascii: "ascii", + ansix34: "ascii", + ansix341968: "ascii", + ansix341986: "ascii", + csascii: "ascii", + cp367: "ascii", + ibm367: "ascii", + isoir6: "ascii", + iso646us: "ascii", + iso646irv: "ascii", + us: "ascii", + latin1: "iso88591", + latin2: "iso88592", + latin3: "iso88593", + latin4: "iso88594", + latin5: "iso88599", + latin6: "iso885910", + latin7: "iso885913", + latin8: "iso885914", + latin9: "iso885915", + latin10: "iso885916", + csisolatin1: "iso88591", + csisolatin2: "iso88592", + csisolatin3: "iso88593", + csisolatin4: "iso88594", + csisolatincyrillic: "iso88595", + csisolatinarabic: "iso88596", + csisolatingreek: "iso88597", + csisolatinhebrew: "iso88598", + csisolatin5: "iso88599", + csisolatin6: "iso885910", + l1: "iso88591", + l2: "iso88592", + l3: "iso88593", + l4: "iso88594", + l5: "iso88599", + l6: "iso885910", + l7: "iso885913", + l8: "iso885914", + l9: "iso885915", + l10: "iso885916", + isoir14: "iso646jp", + isoir57: "iso646cn", + isoir100: "iso88591", + isoir101: "iso88592", + isoir109: "iso88593", + isoir110: "iso88594", + isoir144: "iso88595", + isoir127: "iso88596", + isoir126: "iso88597", + isoir138: "iso88598", + isoir148: "iso88599", + isoir157: "iso885910", + isoir166: "tis620", + isoir179: "iso885913", + isoir199: "iso885914", + isoir203: "iso885915", + isoir226: "iso885916", + cp819: "iso88591", + ibm819: "iso88591", + cyrillic: "iso88595", + arabic: "iso88596", + arabic8: "iso88596", + ecma114: "iso88596", + asmo708: "iso88596", + greek: "iso88597", + greek8: "iso88597", + ecma118: "iso88597", + elot928: "iso88597", + hebrew: "iso88598", + hebrew8: "iso88598", + iso88598i: "iso88598", + iso88598e: "iso88598", + turkish: "iso88599", + turkish8: "iso88599", + thai: "iso885911", + thai8: "iso885911", + celtic: "iso885914", + celtic8: "iso885914", + isoceltic: "iso885914", + tis6200: "tis620", + tis62025291: "tis620", + tis62025330: "tis620", + 1e4: "macroman", + 10006: "macgreek", + 10007: "maccyrillic", + 10079: "maciceland", + 10081: "macturkish", + cspc8codepage437: "cp437", + cspc775baltic: "cp775", + cspc850multilingual: "cp850", + cspcp852: "cp852", + cspc862latinhebrew: "cp862", + cpgr: "cp869", + msee: "cp1250", + mscyrl: "cp1251", + msansi: "cp1252", + msgreek: "cp1253", + msturk: "cp1254", + mshebr: "cp1255", + msarab: "cp1256", + winbaltrim: "cp1257", + cp20866: "koi8r", + 20866: "koi8r", + ibm878: "koi8r", + cskoi8r: "koi8r", + cp21866: "koi8u", + 21866: "koi8u", + ibm1168: "koi8u", + strk10482002: "rk1048", + tcvn5712: "tcvn", + tcvn57121: "tcvn", + gb198880: "iso646cn", + cn: "iso646cn", + csiso14jisc6220ro: "iso646jp", + jisc62201969ro: "iso646jp", + jp: "iso646jp", + cshproman8: "hproman8", + r8: "hproman8", + roman8: "hproman8", + xroman8: "hproman8", + ibm1051: "hproman8", + mac: "macintosh", + csmacintosh: "macintosh" + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js +var require_sbcs_data_generated = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports, module) { + "use strict"; + module.exports = { + "437": "cp437", + "737": "cp737", + "775": "cp775", + "850": "cp850", + "852": "cp852", + "855": "cp855", + "856": "cp856", + "857": "cp857", + "858": "cp858", + "860": "cp860", + "861": "cp861", + "862": "cp862", + "863": "cp863", + "864": "cp864", + "865": "cp865", + "866": "cp866", + "869": "cp869", + "874": "windows874", + "922": "cp922", + "1046": "cp1046", + "1124": "cp1124", + "1125": "cp1125", + "1129": "cp1129", + "1133": "cp1133", + "1161": "cp1161", + "1162": "cp1162", + "1163": "cp1163", + "1250": "windows1250", + "1251": "windows1251", + "1252": "windows1252", + "1253": "windows1253", + "1254": "windows1254", + "1255": "windows1255", + "1256": "windows1256", + "1257": "windows1257", + "1258": "windows1258", + "28591": "iso88591", + "28592": "iso88592", + "28593": "iso88593", + "28594": "iso88594", + "28595": "iso88595", + "28596": "iso88596", + "28597": "iso88597", + "28598": "iso88598", + "28599": "iso88599", + "28600": "iso885910", + "28601": "iso885911", + "28603": "iso885913", + "28604": "iso885914", + "28605": "iso885915", + "28606": "iso885916", + "windows874": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "win874": "windows874", + "cp874": "windows874", + "windows1250": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9" + }, + "win1250": "windows1250", + "cp1250": "windows1250", + "windows1251": { + "type": "_sbcs", + "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "win1251": "windows1251", + "cp1251": "windows1251", + "windows1252": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "win1252": "windows1252", + "cp1252": "windows1252", + "windows1253": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + }, + "win1253": "windows1253", + "cp1253": "windows1253", + "windows1254": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF" + }, + "win1254": "windows1254", + "cp1254": "windows1254", + "windows1255": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + }, + "win1255": "windows1255", + "cp1255": "windows1255", + "windows1256": { + "type": "_sbcs", + "chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2" + }, + "win1256": "windows1256", + "cp1256": "windows1256", + "windows1257": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9" + }, + "win1257": "windows1257", + "cp1257": "windows1257", + "windows1258": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "win1258": "windows1258", + "cp1258": "windows1258", + "iso88591": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "cp28591": "iso88591", + "iso88592": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9" + }, + "cp28592": "iso88592", + "iso88593": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9" + }, + "cp28593": "iso88593", + "iso88594": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9" + }, + "cp28594": "iso88594", + "iso88595": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F" + }, + "cp28595": "iso88595", + "iso88596": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "cp28596": "iso88596", + "iso88597": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + }, + "cp28597": "iso88597", + "iso88598": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + }, + "cp28598": "iso88598", + "iso88599": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF" + }, + "cp28599": "iso88599", + "iso885910": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138" + }, + "cp28600": "iso885910", + "iso885911": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "cp28601": "iso885911", + "iso885913": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019" + }, + "cp28603": "iso885913", + "iso885914": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF" + }, + "cp28604": "iso885914", + "iso885915": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "cp28605": "iso885915", + "iso885916": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF" + }, + "cp28606": "iso885916", + "cp437": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm437": "cp437", + "csibm437": "cp437", + "cp737": { + "type": "_sbcs", + "chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm737": "cp737", + "csibm737": "cp737", + "cp775": { + "type": "_sbcs", + "chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm775": "cp775", + "csibm775": "cp775", + "cp850": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm850": "cp850", + "csibm850": "cp850", + "cp852": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0" + }, + "ibm852": "cp852", + "csibm852": "cp852", + "cp855": { + "type": "_sbcs", + "chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0" + }, + "ibm855": "cp855", + "csibm855": "cp855", + "cp856": { + "type": "_sbcs", + "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm856": "cp856", + "csibm856": "cp856", + "cp857": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm857": "cp857", + "csibm857": "cp857", + "cp858": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm858": "cp858", + "csibm858": "cp858", + "cp860": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm860": "cp860", + "csibm860": "cp860", + "cp861": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm861": "cp861", + "csibm861": "cp861", + "cp862": { + "type": "_sbcs", + "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm862": "cp862", + "csibm862": "cp862", + "cp863": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm863": "cp863", + "csibm863": "cp863", + "cp864": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD" + }, + "ibm864": "cp864", + "csibm864": "cp864", + "cp865": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm865": "cp865", + "csibm865": "cp865", + "cp866": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0" + }, + "ibm866": "cp866", + "csibm866": "cp866", + "cp869": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0" + }, + "ibm869": "cp869", + "csibm869": "cp869", + "cp922": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF" + }, + "ibm922": "cp922", + "csibm922": "cp922", + "cp1046": { + "type": "_sbcs", + "chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD" + }, + "ibm1046": "cp1046", + "csibm1046": "cp1046", + "cp1124": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F" + }, + "ibm1124": "cp1124", + "csibm1124": "cp1124", + "cp1125": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0" + }, + "ibm1125": "cp1125", + "csibm1125": "cp1125", + "cp1129": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "ibm1129": "cp1129", + "csibm1129": "cp1129", + "cp1133": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD" + }, + "ibm1133": "cp1133", + "csibm1133": "cp1133", + "cp1161": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0" + }, + "ibm1161": "cp1161", + "csibm1161": "cp1161", + "cp1162": { + "type": "_sbcs", + "chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "ibm1162": "cp1162", + "csibm1162": "cp1162", + "cp1163": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "ibm1163": "cp1163", + "csibm1163": "cp1163", + "maccroatian": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7" + }, + "maccyrillic": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4" + }, + "macgreek": { + "type": "_sbcs", + "chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD" + }, + "maciceland": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macroman": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macromania": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macthai": { + "type": "_sbcs", + "chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "macturkish": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macukraine": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4" + }, + "koi8r": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8u": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8ru": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8t": { + "type": "_sbcs", + "chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "armscii8": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD" + }, + "rk1048": { + "type": "_sbcs", + "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "tcvn": { + "type": "_sbcs", + "chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0" + }, + "georgianacademy": { + "type": "_sbcs", + "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "georgianps": { + "type": "_sbcs", + "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "pt154": { + "type": "_sbcs", + "chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "viscii": { + "type": "_sbcs", + "chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE" + }, + "iso646cn": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "iso646jp": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "hproman8": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD" + }, + "macintosh": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "ascii": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "tis620": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + } + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-codec.js +var require_dbcs_codec = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports._dbcs = DBCSCodec; + var UNASSIGNED = -1; + var GB18030_CODE = -2; + var SEQ_START = -10; + var NODE_START = -1e3; + var UNASSIGNED_NODE = new Array(256); + var DEF_CHAR = -1; + for (i = 0; i < 256; i++) { + UNASSIGNED_NODE[i] = UNASSIGNED; + } + var i; + function DBCSCodec(codecOptions, iconv) { + this.encodingName = codecOptions.encodingName; + if (!codecOptions) { + throw new Error("DBCS codec is called without the data."); + } + if (!codecOptions.table) { + throw new Error("Encoding '" + this.encodingName + "' has no data."); + } + var mappingTable = codecOptions.table(); + this.decodeTables = []; + this.decodeTables[0] = UNASSIGNED_NODE.slice(0); + this.decodeTableSeq = []; + for (var i2 = 0; i2 < mappingTable.length; i2++) { + this._addDecodeChunk(mappingTable[i2]); + } + if (typeof codecOptions.gb18030 === "function") { + this.gb18030 = codecOptions.gb18030(); + var commonThirdByteNodeIdx = this.decodeTables.length; + this.decodeTables.push(UNASSIGNED_NODE.slice(0)); + var commonFourthByteNodeIdx = this.decodeTables.length; + this.decodeTables.push(UNASSIGNED_NODE.slice(0)); + var firstByteNode = this.decodeTables[0]; + for (var i2 = 129; i2 <= 254; i2++) { + var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i2]]; + for (var j = 48; j <= 57; j++) { + if (secondByteNode[j] === UNASSIGNED) { + secondByteNode[j] = NODE_START - commonThirdByteNodeIdx; + } else if (secondByteNode[j] > NODE_START) { + throw new Error("gb18030 decode tables conflict at byte 2"); + } + var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]]; + for (var k = 129; k <= 254; k++) { + if (thirdByteNode[k] === UNASSIGNED) { + thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx; + } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) { + continue; + } else if (thirdByteNode[k] > NODE_START) { + throw new Error("gb18030 decode tables conflict at byte 3"); + } + var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]]; + for (var l = 48; l <= 57; l++) { + if (fourthByteNode[l] === UNASSIGNED) { + fourthByteNode[l] = GB18030_CODE; + } + } + } + } + } + } + this.defaultCharUnicode = iconv.defaultCharUnicode; + this.encodeTable = []; + this.encodeTableSeq = []; + var skipEncodeChars = {}; + if (codecOptions.encodeSkipVals) { + for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) { + var val = codecOptions.encodeSkipVals[i2]; + if (typeof val === "number") { + skipEncodeChars[val] = true; + } else { + for (var j = val.from; j <= val.to; j++) { + skipEncodeChars[j] = true; + } + } + } + } + this._fillEncodeTable(0, 0, skipEncodeChars); + if (codecOptions.encodeAdd) { + for (var uChar in codecOptions.encodeAdd) { + if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) { + this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); + } + } + } + this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; + if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"]; + if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0); + } + __name(DBCSCodec, "DBCSCodec"); + DBCSCodec.prototype.encoder = DBCSEncoder; + DBCSCodec.prototype.decoder = DBCSDecoder; + DBCSCodec.prototype._getDecodeTrieNode = function(addr) { + var bytes = []; + for (; addr > 0; addr >>>= 8) { + bytes.push(addr & 255); + } + if (bytes.length == 0) { + bytes.push(0); + } + var node = this.decodeTables[0]; + for (var i2 = bytes.length - 1; i2 > 0; i2--) { + var val = node[bytes[i2]]; + if (val == UNASSIGNED) { + node[bytes[i2]] = NODE_START - this.decodeTables.length; + this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); + } else if (val <= NODE_START) { + node = this.decodeTables[NODE_START - val]; + } else { + throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); + } + } + return node; + }; + DBCSCodec.prototype._addDecodeChunk = function(chunk) { + var curAddr = parseInt(chunk[0], 16); + var writeTable = this._getDecodeTrieNode(curAddr); + curAddr = curAddr & 255; + for (var k = 1; k < chunk.length; k++) { + var part = chunk[k]; + if (typeof part === "string") { + for (var l = 0; l < part.length; ) { + var code = part.charCodeAt(l++); + if (code >= 55296 && code < 56320) { + var codeTrail = part.charCodeAt(l++); + if (codeTrail >= 56320 && codeTrail < 57344) { + writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320); + } else { + throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); + } + } else if (code > 4080 && code <= 4095) { + var len = 4095 - code + 2; + var seq = []; + for (var m = 0; m < len; m++) { + seq.push(part.charCodeAt(l++)); + } + writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; + this.decodeTableSeq.push(seq); + } else { + writeTable[curAddr++] = code; + } + } + } else if (typeof part === "number") { + var charCode = writeTable[curAddr - 1] + 1; + for (var l = 0; l < part; l++) { + writeTable[curAddr++] = charCode++; + } + } else { + throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); + } + } + if (curAddr > 255) { + throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); + } + }; + DBCSCodec.prototype._getEncodeBucket = function(uCode) { + var high = uCode >> 8; + if (this.encodeTable[high] === void 0) { + this.encodeTable[high] = UNASSIGNED_NODE.slice(0); + } + return this.encodeTable[high]; + }; + DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + if (bucket[low] <= SEQ_START) { + this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode; + } else if (bucket[low] == UNASSIGNED) { + bucket[low] = dbcsCode; + } + }; + DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { + var uCode = seq[0]; + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + var node; + if (bucket[low] <= SEQ_START) { + node = this.encodeTableSeq[SEQ_START - bucket[low]]; + } else { + node = {}; + if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; + bucket[low] = SEQ_START - this.encodeTableSeq.length; + this.encodeTableSeq.push(node); + } + for (var j = 1; j < seq.length - 1; j++) { + var oldVal = node[uCode]; + if (typeof oldVal === "object") { + node = oldVal; + } else { + node = node[uCode] = {}; + if (oldVal !== void 0) { + node[DEF_CHAR] = oldVal; + } + } + } + uCode = seq[seq.length - 1]; + node[uCode] = dbcsCode; + }; + DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { + var node = this.decodeTables[nodeIdx]; + var hasValues = false; + var subNodeEmpty = {}; + for (var i2 = 0; i2 < 256; i2++) { + var uCode = node[i2]; + var mbCode = prefix + i2; + if (skipEncodeChars[mbCode]) { + continue; + } + if (uCode >= 0) { + this._setEncodeChar(uCode, mbCode); + hasValues = true; + } else if (uCode <= NODE_START) { + var subNodeIdx = NODE_START - uCode; + if (!subNodeEmpty[subNodeIdx]) { + var newPrefix = mbCode << 8 >>> 0; + if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) { + hasValues = true; + } else { + subNodeEmpty[subNodeIdx] = true; + } + } + } else if (uCode <= SEQ_START) { + this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); + hasValues = true; + } + } + return hasValues; + }; + function DBCSEncoder(options, codec) { + this.leadSurrogate = -1; + this.seqObj = void 0; + this.encodeTable = codec.encodeTable; + this.encodeTableSeq = codec.encodeTableSeq; + this.defaultCharSingleByte = codec.defCharSB; + this.gb18030 = codec.gb18030; + } + __name(DBCSEncoder, "DBCSEncoder"); + DBCSEncoder.prototype.write = function(str) { + var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)); + var leadSurrogate = this.leadSurrogate; + var seqObj = this.seqObj; + var nextChar = -1; + var i2 = 0; + var j = 0; + while (true) { + if (nextChar === -1) { + if (i2 == str.length) break; + var uCode = str.charCodeAt(i2++); + } else { + var uCode = nextChar; + nextChar = -1; + } + if (uCode >= 55296 && uCode < 57344) { + if (uCode < 56320) { + if (leadSurrogate === -1) { + leadSurrogate = uCode; + continue; + } else { + leadSurrogate = uCode; + uCode = UNASSIGNED; + } + } else { + if (leadSurrogate !== -1) { + uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320); + leadSurrogate = -1; + } else { + uCode = UNASSIGNED; + } + } + } else if (leadSurrogate !== -1) { + nextChar = uCode; + uCode = UNASSIGNED; + leadSurrogate = -1; + } + var dbcsCode = UNASSIGNED; + if (seqObj !== void 0 && uCode != UNASSIGNED) { + var resCode = seqObj[uCode]; + if (typeof resCode === "object") { + seqObj = resCode; + continue; + } else if (typeof resCode === "number") { + dbcsCode = resCode; + } else if (resCode == void 0) { + resCode = seqObj[DEF_CHAR]; + if (resCode !== void 0) { + dbcsCode = resCode; + nextChar = uCode; + } else { + } + } + seqObj = void 0; + } else if (uCode >= 0) { + var subtable = this.encodeTable[uCode >> 8]; + if (subtable !== void 0) { + dbcsCode = subtable[uCode & 255]; + } + if (dbcsCode <= SEQ_START) { + seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]; + continue; + } + if (dbcsCode == UNASSIGNED && this.gb18030) { + var idx = findIdx(this.gb18030.uChars, uCode); + if (idx != -1) { + var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); + newBuf[j++] = 129 + Math.floor(dbcsCode / 12600); + dbcsCode = dbcsCode % 12600; + newBuf[j++] = 48 + Math.floor(dbcsCode / 1260); + dbcsCode = dbcsCode % 1260; + newBuf[j++] = 129 + Math.floor(dbcsCode / 10); + dbcsCode = dbcsCode % 10; + newBuf[j++] = 48 + dbcsCode; + continue; + } + } + } + if (dbcsCode === UNASSIGNED) { + dbcsCode = this.defaultCharSingleByte; + } + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else if (dbcsCode < 65536) { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } else if (dbcsCode < 16777216) { + newBuf[j++] = dbcsCode >> 16; + newBuf[j++] = dbcsCode >> 8 & 255; + newBuf[j++] = dbcsCode & 255; + } else { + newBuf[j++] = dbcsCode >>> 24; + newBuf[j++] = dbcsCode >>> 16 & 255; + newBuf[j++] = dbcsCode >>> 8 & 255; + newBuf[j++] = dbcsCode & 255; + } + } + this.seqObj = seqObj; + this.leadSurrogate = leadSurrogate; + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.end = function() { + if (this.leadSurrogate === -1 && this.seqObj === void 0) { + return; + } + var newBuf = Buffer2.alloc(10); + var j = 0; + if (this.seqObj) { + var dbcsCode = this.seqObj[DEF_CHAR]; + if (dbcsCode !== void 0) { + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } + } else { + } + this.seqObj = void 0; + } + if (this.leadSurrogate !== -1) { + newBuf[j++] = this.defaultCharSingleByte; + this.leadSurrogate = -1; + } + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.findIdx = findIdx; + function DBCSDecoder(options, codec) { + this.nodeIdx = 0; + this.prevBytes = []; + this.decodeTables = codec.decodeTables; + this.decodeTableSeq = codec.decodeTableSeq; + this.defaultCharUnicode = codec.defaultCharUnicode; + this.gb18030 = codec.gb18030; + } + __name(DBCSDecoder, "DBCSDecoder"); + DBCSDecoder.prototype.write = function(buf) { + var newBuf = Buffer2.alloc(buf.length * 2); + var nodeIdx = this.nodeIdx; + var prevBytes = this.prevBytes; + var prevOffset = this.prevBytes.length; + var seqStart = -this.prevBytes.length; + var uCode; + for (var i2 = 0, j = 0; i2 < buf.length; i2++) { + var curByte = i2 >= 0 ? buf[i2] : prevBytes[i2 + prevOffset]; + var uCode = this.decodeTables[nodeIdx][curByte]; + if (uCode >= 0) { + } else if (uCode === UNASSIGNED) { + uCode = this.defaultCharUnicode.charCodeAt(0); + i2 = seqStart; + } else if (uCode === GB18030_CODE) { + if (i2 >= 3) { + var ptr = (buf[i2 - 3] - 129) * 12600 + (buf[i2 - 2] - 48) * 1260 + (buf[i2 - 1] - 129) * 10 + (curByte - 48); + } else { + var ptr = (prevBytes[i2 - 3 + prevOffset] - 129) * 12600 + ((i2 - 2 >= 0 ? buf[i2 - 2] : prevBytes[i2 - 2 + prevOffset]) - 48) * 1260 + ((i2 - 1 >= 0 ? buf[i2 - 1] : prevBytes[i2 - 1 + prevOffset]) - 129) * 10 + (curByte - 48); + } + var idx = findIdx(this.gb18030.gbChars, ptr); + uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; + } else if (uCode <= NODE_START) { + nodeIdx = NODE_START - uCode; + continue; + } else if (uCode <= SEQ_START) { + var seq = this.decodeTableSeq[SEQ_START - uCode]; + for (var k = 0; k < seq.length - 1; k++) { + uCode = seq[k]; + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + } + uCode = seq[seq.length - 1]; + } else { + throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); + } + if (uCode >= 65536) { + uCode -= 65536; + var uCodeLead = 55296 | uCode >> 10; + newBuf[j++] = uCodeLead & 255; + newBuf[j++] = uCodeLead >> 8; + uCode = 56320 | uCode & 1023; + } + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + nodeIdx = 0; + seqStart = i2 + 1; + } + this.nodeIdx = nodeIdx; + this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf)); + return newBuf.slice(0, j).toString("ucs2"); + }; + DBCSDecoder.prototype.end = function() { + var ret = ""; + while (this.prevBytes.length > 0) { + ret += this.defaultCharUnicode; + var bytesArr = this.prevBytes.slice(1); + this.prevBytes = []; + this.nodeIdx = 0; + if (bytesArr.length > 0) { + ret += this.write(bytesArr); + } + } + this.prevBytes = []; + this.nodeIdx = 0; + return ret; + }; + function findIdx(table, val) { + if (table[0] > val) { + return -1; + } + var l = 0; + var r = table.length; + while (l < r - 1) { + var mid = l + (r - l + 1 >> 1); + if (table[mid] <= val) { + l = mid; + } else { + r = mid; + } + } + return l; + } + __name(findIdx, "findIdx"); + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/shiftjis.json +var require_shiftjis = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports, module) { + module.exports = [ + ["0", "\0", 128], + ["a1", "\uFF61", 62], + ["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"], + ["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"], + ["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"], + ["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"], + ["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"], + ["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"], + ["81fc", "\u25EF"], + ["824f", "\uFF10", 9], + ["8260", "\uFF21", 25], + ["8281", "\uFF41", 25], + ["829f", "\u3041", 82], + ["8340", "\u30A1", 62], + ["8380", "\u30E0", 22], + ["839f", "\u0391", 16, "\u03A3", 6], + ["83bf", "\u03B1", 16, "\u03C3", 6], + ["8440", "\u0410", 5, "\u0401\u0416", 25], + ["8470", "\u0430", 5, "\u0451\u0436", 7], + ["8480", "\u043E", 17], + ["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"], + ["8740", "\u2460", 19, "\u2160", 9], + ["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"], + ["877e", "\u337B"], + ["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"], + ["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"], + ["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"], + ["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"], + ["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"], + ["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"], + ["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"], + ["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"], + ["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"], + ["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"], + ["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"], + ["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"], + ["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"], + ["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"], + ["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"], + ["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"], + ["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"], + ["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"], + ["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"], + ["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"], + ["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"], + ["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"], + ["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"], + ["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"], + ["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"], + ["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"], + ["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"], + ["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"], + ["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"], + ["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"], + ["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"], + ["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"], + ["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"], + ["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"], + ["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"], + ["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"], + ["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"], + ["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"], + ["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"], + ["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"], + ["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"], + ["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"], + ["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"], + ["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"], + ["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"], + ["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"], + ["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"], + ["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"], + ["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"], + ["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"], + ["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"], + ["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"], + ["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"], + ["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"], + ["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"], + ["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"], + ["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"], + ["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"], + ["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"], + ["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"], + ["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"], + ["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"], + ["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"], + ["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"], + ["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"], + ["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"], + ["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"], + ["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"], + ["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"], + ["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"], + ["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"], + ["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"], + ["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"], + ["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"], + ["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"], + ["f040", "\uE000", 62], + ["f080", "\uE03F", 124], + ["f140", "\uE0BC", 62], + ["f180", "\uE0FB", 124], + ["f240", "\uE178", 62], + ["f280", "\uE1B7", 124], + ["f340", "\uE234", 62], + ["f380", "\uE273", 124], + ["f440", "\uE2F0", 62], + ["f480", "\uE32F", 124], + ["f540", "\uE3AC", 62], + ["f580", "\uE3EB", 124], + ["f640", "\uE468", 62], + ["f680", "\uE4A7", 124], + ["f740", "\uE524", 62], + ["f780", "\uE563", 124], + ["f840", "\uE5E0", 62], + ["f880", "\uE61F", 124], + ["f940", "\uE69C"], + ["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"], + ["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"], + ["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"], + ["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"], + ["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"] + ]; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/eucjp.json +var require_eucjp = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/eucjp.json"(exports, module) { + module.exports = [ + ["0", "\0", 127], + ["8ea1", "\uFF61", 62], + ["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"], + ["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"], + ["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"], + ["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"], + ["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"], + ["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"], + ["a2fe", "\u25EF"], + ["a3b0", "\uFF10", 9], + ["a3c1", "\uFF21", 25], + ["a3e1", "\uFF41", 25], + ["a4a1", "\u3041", 82], + ["a5a1", "\u30A1", 85], + ["a6a1", "\u0391", 16, "\u03A3", 6], + ["a6c1", "\u03B1", 16, "\u03C3", 6], + ["a7a1", "\u0410", 5, "\u0401\u0416", 25], + ["a7d1", "\u0430", 5, "\u0451\u0436", 25], + ["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"], + ["ada1", "\u2460", 19, "\u2160", 9], + ["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"], + ["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"], + ["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"], + ["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"], + ["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"], + ["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"], + ["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"], + ["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"], + ["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"], + ["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"], + ["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"], + ["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"], + ["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"], + ["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"], + ["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"], + ["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"], + ["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"], + ["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"], + ["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"], + ["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"], + ["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"], + ["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"], + ["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"], + ["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"], + ["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"], + ["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"], + ["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"], + ["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"], + ["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"], + ["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"], + ["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"], + ["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"], + ["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"], + ["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"], + ["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"], + ["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"], + ["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"], + ["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"], + ["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"], + ["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"], + ["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"], + ["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"], + ["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"], + ["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"], + ["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"], + ["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"], + ["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"], + ["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"], + ["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"], + ["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"], + ["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"], + ["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"], + ["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"], + ["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"], + ["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"], + ["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"], + ["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"], + ["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"], + ["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"], + ["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"], + ["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"], + ["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"], + ["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"], + ["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"], + ["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"], + ["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"], + ["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"], + ["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"], + ["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"], + ["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"], + ["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"], + ["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"], + ["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"], + ["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"], + ["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"], + ["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"], + ["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"], + ["8fa2c2", "\xA1\xA6\xBF"], + ["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"], + ["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"], + ["8fa6e7", "\u038C"], + ["8fa6e9", "\u038E\u03AB"], + ["8fa6ec", "\u038F"], + ["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"], + ["8fa7c2", "\u0402", 10, "\u040E\u040F"], + ["8fa7f2", "\u0452", 10, "\u045E\u045F"], + ["8fa9a1", "\xC6\u0110"], + ["8fa9a4", "\u0126"], + ["8fa9a6", "\u0132"], + ["8fa9a8", "\u0141\u013F"], + ["8fa9ab", "\u014A\xD8\u0152"], + ["8fa9af", "\u0166\xDE"], + ["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"], + ["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"], + ["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"], + ["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"], + ["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"], + ["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"], + ["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"], + ["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"], + ["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"], + ["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"], + ["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"], + ["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"], + ["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"], + ["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"], + ["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"], + ["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"], + ["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"], + ["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"], + ["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"], + ["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"], + ["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"], + ["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"], + ["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"], + ["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"], + ["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"], + ["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"], + ["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"], + ["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"], + ["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"], + ["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"], + ["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"], + ["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"], + ["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"], + ["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"], + ["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"], + ["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"], + ["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"], + ["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"], + ["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"], + ["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"], + ["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5], + ["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"], + ["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"], + ["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"], + ["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"], + ["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"], + ["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"], + ["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"], + ["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"], + ["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"], + ["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"], + ["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"], + ["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"], + ["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"], + ["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"], + ["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"], + ["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"], + ["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"], + ["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"], + ["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"], + ["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"], + ["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"], + ["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"], + ["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4], + ["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"], + ["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"], + ["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"], + ["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"] + ]; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp936.json +var require_cp936 = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp936.json"(exports, module) { + module.exports = [ + ["0", "\0", 127, "\u20AC"], + ["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"], + ["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"], + ["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11], + ["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"], + ["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"], + ["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5], + ["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"], + ["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"], + ["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"], + ["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"], + ["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"], + ["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"], + ["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4], + ["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6], + ["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"], + ["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7], + ["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"], + ["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"], + ["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"], + ["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5], + ["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"], + ["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6], + ["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"], + ["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4], + ["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4], + ["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"], + ["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"], + ["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6], + ["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"], + ["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"], + ["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"], + ["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6], + ["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"], + ["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"], + ["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"], + ["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"], + ["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"], + ["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"], + ["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8], + ["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"], + ["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"], + ["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"], + ["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"], + ["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5], + ["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"], + ["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"], + ["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"], + ["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"], + ["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5], + ["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6], + ["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"], + ["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"], + ["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"], + ["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"], + ["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"], + ["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5], + ["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"], + ["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"], + ["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6], + ["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"], + ["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"], + ["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4], + ["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19], + ["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"], + ["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"], + ["a2a1", "\u2170", 9], + ["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9], + ["a2e5", "\u3220", 9], + ["a2f1", "\u2160", 11], + ["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"], + ["a4a1", "\u3041", 82], + ["a5a1", "\u30A1", 85], + ["a6a1", "\u0391", 16, "\u03A3", 6], + ["a6c1", "\u03B1", 16, "\u03C3", 6], + ["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"], + ["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"], + ["a6f4", "\uFE33\uFE34"], + ["a7a1", "\u0410", 5, "\u0401\u0416", 25], + ["a7d1", "\u0430", 5, "\u0451\u0436", 25], + ["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6], + ["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"], + ["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"], + ["a8bd", "\u0144\u0148"], + ["a8c0", "\u0261"], + ["a8c5", "\u3105", 36], + ["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"], + ["a959", "\u2121\u3231"], + ["a95c", "\u2010"], + ["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8], + ["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"], + ["a996", "\u3007"], + ["a9a4", "\u2500", 75], + ["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8], + ["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"], + ["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4], + ["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4], + ["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11], + ["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"], + ["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12], + ["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"], + ["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"], + ["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"], + ["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"], + ["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"], + ["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"], + ["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"], + ["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"], + ["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"], + ["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4], + ["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"], + ["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"], + ["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"], + ["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9], + ["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"], + ["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"], + ["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"], + ["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"], + ["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"], + ["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16], + ["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"], + ["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"], + ["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"], + ["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"], + ["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"], + ["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"], + ["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"], + ["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9], + ["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"], + ["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5], + ["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"], + ["bd40", "\u7D37", 54, "\u7D6F", 7], + ["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"], + ["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42], + ["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"], + ["bf40", "\u7DFB", 62], + ["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"], + ["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"], + ["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"], + ["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"], + ["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"], + ["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"], + ["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"], + ["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"], + ["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"], + ["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"], + ["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"], + ["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"], + ["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"], + ["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"], + ["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"], + ["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"], + ["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"], + ["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"], + ["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"], + ["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"], + ["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"], + ["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10], + ["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"], + ["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"], + ["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"], + ["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"], + ["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"], + ["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"], + ["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"], + ["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"], + ["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"], + ["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9], + ["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"], + ["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"], + ["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"], + ["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5], + ["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"], + ["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"], + ["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"], + ["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6], + ["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"], + ["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21], + ["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"], + ["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46], + ["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"], + ["d640", "\u8AE4", 34, "\u8B08", 27], + ["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"], + ["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25], + ["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"], + ["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"], + ["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"], + ["d940", "\u8CAE", 62], + ["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"], + ["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"], + ["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"], + ["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"], + ["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"], + ["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7], + ["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"], + ["dd40", "\u8EE5", 62], + ["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"], + ["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"], + ["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"], + ["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"], + ["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"], + ["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"], + ["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"], + ["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"], + ["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"], + ["e240", "\u91E6", 62], + ["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"], + ["e340", "\u9246", 45, "\u9275", 16], + ["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"], + ["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31], + ["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"], + ["e540", "\u930A", 51, "\u933F", 10], + ["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"], + ["e640", "\u936C", 34, "\u9390", 27], + ["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"], + ["e740", "\u93CE", 7, "\u93D7", 54], + ["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"], + ["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"], + ["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"], + ["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42], + ["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"], + ["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"], + ["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"], + ["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"], + ["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"], + ["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7], + ["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"], + ["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46], + ["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"], + ["ee40", "\u980F", 62], + ["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"], + ["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4], + ["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"], + ["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26], + ["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"], + ["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47], + ["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"], + ["f240", "\u99FA", 62], + ["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"], + ["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"], + ["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"], + ["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5], + ["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"], + ["f540", "\u9B7C", 62], + ["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"], + ["f640", "\u9BDC", 62], + ["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"], + ["f740", "\u9C3C", 62], + ["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"], + ["f840", "\u9CE3", 62], + ["f880", "\u9D22", 32], + ["f940", "\u9D43", 62], + ["f980", "\u9D82", 32], + ["fa40", "\u9DA3", 62], + ["fa80", "\u9DE2", 32], + ["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"], + ["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"], + ["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6], + ["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"], + ["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38], + ["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"], + ["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"] + ]; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gbk-added.json +var require_gbk_added = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports, module) { + module.exports = [ + ["a140", "\uE4C6", 62], + ["a180", "\uE505", 32], + ["a240", "\uE526", 62], + ["a280", "\uE565", 32], + ["a2ab", "\uE766", 5], + ["a2e3", "\u20AC\uE76D"], + ["a2ef", "\uE76E\uE76F"], + ["a2fd", "\uE770\uE771"], + ["a340", "\uE586", 62], + ["a380", "\uE5C5", 31, "\u3000"], + ["a440", "\uE5E6", 62], + ["a480", "\uE625", 32], + ["a4f4", "\uE772", 10], + ["a540", "\uE646", 62], + ["a580", "\uE685", 32], + ["a5f7", "\uE77D", 7], + ["a640", "\uE6A6", 62], + ["a680", "\uE6E5", 32], + ["a6b9", "\uE785", 7], + ["a6d9", "\uE78D", 6], + ["a6ec", "\uE794\uE795"], + ["a6f3", "\uE796"], + ["a6f6", "\uE797", 8], + ["a740", "\uE706", 62], + ["a780", "\uE745", 32], + ["a7c2", "\uE7A0", 14], + ["a7f2", "\uE7AF", 12], + ["a896", "\uE7BC", 10], + ["a8bc", "\u1E3F"], + ["a8bf", "\u01F9"], + ["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"], + ["a8ea", "\uE7CD", 20], + ["a958", "\uE7E2"], + ["a95b", "\uE7E3"], + ["a95d", "\uE7E4\uE7E5\uE7E6"], + ["a989", "\u303E\u2FF0", 11], + ["a997", "\uE7F4", 12], + ["a9f0", "\uE801", 14], + ["aaa1", "\uE000", 93], + ["aba1", "\uE05E", 93], + ["aca1", "\uE0BC", 93], + ["ada1", "\uE11A", 93], + ["aea1", "\uE178", 93], + ["afa1", "\uE1D6", 93], + ["d7fa", "\uE810", 4], + ["f8a1", "\uE234", 93], + ["f9a1", "\uE292", 93], + ["faa1", "\uE2F0", 93], + ["fba1", "\uE34E", 93], + ["fca1", "\uE3AC", 93], + ["fda1", "\uE40A", 93], + ["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"], + ["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93], + ["8135f437", "\uE7C7"] + ]; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +var require_gb18030_ranges = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports, module) { + module.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp949.json +var require_cp949 = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp949.json"(exports, module) { + module.exports = [ + ["0", "\0", 127], + ["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"], + ["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"], + ["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"], + ["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5], + ["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"], + ["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18], + ["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7], + ["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"], + ["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8], + ["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8], + ["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18], + ["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"], + ["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4], + ["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"], + ["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"], + ["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"], + ["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10], + ["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"], + ["8741", "\uB19E", 9, "\uB1A9", 15], + ["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"], + ["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4], + ["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4], + ["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"], + ["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"], + ["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"], + ["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"], + ["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15], + ["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"], + ["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"], + ["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"], + ["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"], + ["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8], + ["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18], + ["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4], + ["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5], + ["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16], + ["8d41", "\uB6C3", 16, "\uB6D5", 8], + ["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"], + ["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"], + ["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8], + ["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19], + ["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7], + ["8f41", "\uB885", 7, "\uB88E", 17], + ["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4], + ["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5], + ["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"], + ["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15], + ["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"], + ["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5], + ["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5], + ["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6], + ["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"], + ["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4], + ["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"], + ["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"], + ["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8], + ["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"], + ["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8], + ["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12], + ["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24], + ["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"], + ["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"], + ["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14], + ["9641", "\uBEB8", 23, "\uBED2\uBED3"], + ["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8], + ["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44], + ["9741", "\uBF83", 16, "\uBF95", 8], + ["9761", "\uBF9E", 17, "\uBFB1", 7], + ["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"], + ["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"], + ["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15], + ["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"], + ["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"], + ["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"], + ["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"], + ["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16], + ["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"], + ["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"], + ["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8], + ["9b61", "\uC333", 17, "\uC346", 7], + ["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"], + ["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5], + ["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9], + ["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12], + ["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8], + ["9d61", "\uC4C6", 25], + ["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"], + ["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"], + ["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"], + ["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"], + ["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"], + ["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"], + ["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"], + ["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"], + ["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13], + ["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"], + ["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"], + ["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"], + ["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"], + ["a241", "\uC910\uC912", 5, "\uC919", 18], + ["a261", "\uC92D", 6, "\uC935", 18], + ["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"], + ["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"], + ["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16], + ["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"], + ["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"], + ["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12], + ["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93], + ["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"], + ["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"], + ["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9], + ["a5b0", "\u2160", 9], + ["a5c1", "\u0391", 16, "\u03A3", 6], + ["a5e1", "\u03B1", 16, "\u03C3", 6], + ["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"], + ["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6], + ["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7], + ["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7], + ["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"], + ["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"], + ["a841", "\uCB6D", 10, "\uCB7A", 14], + ["a861", "\uCB89", 18, "\uCB9D", 6], + ["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"], + ["a8a6", "\u0132"], + ["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"], + ["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"], + ["a941", "\uCBC5", 14, "\uCBD5", 10], + ["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18], + ["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"], + ["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"], + ["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"], + ["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82], + ["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"], + ["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5], + ["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85], + ["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"], + ["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4], + ["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25], + ["acd1", "\u0430", 5, "\u0451\u0436", 25], + ["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7], + ["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"], + ["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"], + ["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16], + ["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4], + ["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"], + ["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19], + ["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"], + ["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"], + ["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12], + ["b061", "\uCEBB", 5, "\uCEC2", 19], + ["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"], + ["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"], + ["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11], + ["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"], + ["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"], + ["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"], + ["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"], + ["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"], + ["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5], + ["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"], + ["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5], + ["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"], + ["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"], + ["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5], + ["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4], + ["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"], + ["b641", "\uD105", 7, "\uD10E", 17], + ["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"], + ["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"], + ["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"], + ["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"], + ["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"], + ["b841", "\uD1D0", 7, "\uD1D9", 17], + ["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13], + ["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"], + ["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"], + ["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"], + ["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"], + ["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"], + ["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5], + ["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"], + ["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"], + ["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"], + ["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"], + ["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"], + ["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"], + ["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"], + ["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"], + ["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13], + ["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"], + ["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14], + ["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"], + ["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"], + ["bf41", "\uD49E", 10, "\uD4AA", 14], + ["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"], + ["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"], + ["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5], + ["c061", "\uD51E", 25], + ["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"], + ["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"], + ["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"], + ["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"], + ["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"], + ["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"], + ["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"], + ["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4], + ["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11], + ["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"], + ["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"], + ["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4], + ["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"], + ["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"], + ["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4], + ["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"], + ["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5], + ["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"], + ["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"], + ["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"], + ["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"], + ["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"], + ["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"], + ["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"], + ["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"], + ["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"], + ["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"], + ["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"], + ["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"], + ["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"], + ["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"], + ["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"], + ["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"], + ["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"], + ["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"], + ["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"], + ["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"], + ["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"], + ["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"], + ["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"], + ["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"], + ["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"], + ["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"], + ["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"], + ["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"], + ["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"], + ["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"], + ["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"], + ["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"], + ["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"], + ["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"], + ["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"], + ["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"], + ["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"], + ["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"], + ["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"], + ["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"], + ["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"], + ["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"], + ["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"], + ["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"], + ["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"], + ["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"], + ["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"], + ["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"], + ["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"], + ["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"], + ["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"], + ["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"], + ["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"], + ["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"], + ["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"] + ]; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp950.json +var require_cp950 = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp950.json"(exports, module) { + module.exports = [ + ["0", "\0", 127], + ["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"], + ["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"], + ["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"], + ["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21], + ["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10], + ["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"], + ["a3e1", "\u20AC"], + ["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"], + ["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"], + ["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"], + ["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"], + ["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"], + ["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"], + ["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"], + ["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"], + ["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"], + ["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"], + ["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"], + ["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"], + ["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"], + ["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"], + ["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"], + ["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"], + ["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"], + ["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"], + ["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"], + ["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"], + ["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"], + ["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"], + ["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"], + ["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"], + ["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"], + ["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"], + ["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"], + ["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"], + ["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"], + ["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"], + ["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"], + ["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"], + ["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"], + ["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"], + ["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"], + ["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"], + ["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"], + ["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"], + ["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"], + ["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"], + ["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"], + ["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"], + ["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"], + ["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"], + ["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"], + ["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"], + ["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"], + ["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"], + ["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"], + ["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"], + ["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"], + ["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"], + ["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"], + ["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"], + ["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"], + ["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"], + ["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"], + ["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"], + ["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"], + ["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"], + ["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"], + ["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"], + ["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"], + ["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"], + ["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"], + ["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"], + ["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"], + ["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"], + ["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"], + ["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"], + ["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"], + ["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"], + ["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"], + ["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"], + ["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"], + ["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"], + ["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"], + ["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"], + ["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"], + ["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"], + ["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"], + ["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"], + ["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"], + ["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"], + ["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"], + ["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"], + ["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"], + ["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"], + ["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"], + ["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"], + ["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"], + ["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"], + ["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"], + ["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"], + ["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"], + ["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"], + ["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"], + ["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"], + ["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"], + ["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"], + ["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"], + ["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"], + ["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"], + ["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"], + ["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"], + ["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"], + ["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"], + ["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"], + ["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"], + ["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"], + ["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"], + ["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"], + ["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"], + ["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"], + ["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"], + ["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"], + ["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"], + ["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"], + ["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"], + ["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"], + ["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"], + ["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"], + ["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"], + ["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"], + ["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"], + ["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"], + ["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"], + ["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"], + ["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"], + ["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"], + ["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"], + ["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"], + ["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"], + ["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"], + ["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"], + ["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"], + ["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"], + ["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"], + ["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"], + ["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"], + ["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"], + ["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"], + ["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"], + ["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"], + ["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"], + ["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"], + ["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"], + ["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"], + ["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"], + ["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"], + ["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"], + ["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"], + ["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"], + ["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"], + ["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"], + ["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"], + ["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"], + ["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"], + ["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"], + ["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"], + ["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"], + ["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"], + ["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"], + ["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"], + ["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"], + ["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"], + ["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"] + ]; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/big5-added.json +var require_big5_added = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/big5-added.json"(exports, module) { + module.exports = [ + ["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"], + ["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"], + ["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"], + ["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"], + ["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"], + ["8940", "\u{2A3A9}\u{21145}"], + ["8943", "\u650A"], + ["8946", "\u4E3D\u6EDD\u9D4E\u91DF"], + ["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"], + ["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"], + ["89ab", "\u918C\u78B8\u915E\u80BC"], + ["89b0", "\u8D0B\u80F6\u{209E7}"], + ["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"], + ["89c1", "\u6E9A\u823E\u7519"], + ["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"], + ["8a40", "\u{27D84}\u5525"], + ["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"], + ["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"], + ["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"], + ["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"], + ["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"], + ["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"], + ["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"], + ["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"], + ["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"], + ["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"], + ["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"], + ["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"], + ["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"], + ["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"], + ["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"], + ["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"], + ["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"], + ["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"], + ["8cc9", "\u9868\u676B\u4276\u573D"], + ["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"], + ["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"], + ["8d40", "\u{20B9F}"], + ["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"], + ["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"], + ["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"], + ["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"], + ["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"], + ["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"], + ["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"], + ["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"], + ["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"], + ["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"], + ["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"], + ["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"], + ["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"], + ["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"], + ["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"], + ["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"], + ["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"], + ["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"], + ["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"], + ["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"], + ["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"], + ["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"], + ["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"], + ["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"], + ["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"], + ["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"], + ["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"], + ["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"], + ["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"], + ["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"], + ["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"], + ["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"], + ["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"], + ["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"], + ["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"], + ["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"], + ["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"], + ["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"], + ["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"], + ["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"], + ["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"], + ["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"], + ["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"], + ["9fae", "\u9159\u9681\u915C"], + ["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"], + ["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"], + ["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"], + ["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"], + ["9fe7", "\u6BFA\u8818\u7F78"], + ["9feb", "\u5620\u{2A64A}\u8E77\u9F53"], + ["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"], + ["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"], + ["a055", "\u{2183B}\u{26E05}"], + ["a058", "\u8A7E\u{2251B}"], + ["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"], + ["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"], + ["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"], + ["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"], + ["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"], + ["a0ae", "\u77FE"], + ["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"], + ["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"], + ["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"], + ["a3c0", "\u2400", 31, "\u2421"], + ["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23], + ["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"], + ["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4], + ["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"], + ["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"], + ["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"], + ["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"], + ["f9fe", "\uFFED"], + ["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"], + ["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"], + ["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"], + ["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"], + ["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"], + ["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"], + ["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"], + ["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"], + ["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"], + ["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"] + ]; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-data.js +var require_dbcs_data = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-data.js"(exports, module) { + "use strict"; + module.exports = { + // == Japanese/ShiftJIS ==================================================== + // All japanese encodings are based on JIS X set of standards: + // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF. + // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. + // Has several variations in 1978, 1983, 1990 and 1997. + // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead. + // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233. + // 2 planes, first is superset of 0208, second - revised 0212. + // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx) + // Byte encodings are: + // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte + // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC. + // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI. + // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes. + // 0x00-0x7F - lower part of 0201 + // 0x8E, 0xA1-0xDF - upper part of 0201 + // (0xA1-0xFE)x2 - 0208 plane (94x94). + // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94). + // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon. + // Used as-is in ISO2022 family. + // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, + // 0201-1976 Roman, 0208-1978, 0208-1983. + // * ISO2022-JP-1: Adds esc seq for 0212-1990. + // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7. + // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2. + // * ISO2022-JP-2004: Adds 0213-2004 Plane 1. + // + // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes. + // + // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html + shiftjis: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_shiftjis(); + }, "table"), + encodeAdd: { "\xA5": 92, "\u203E": 126 }, + encodeSkipVals: [{ from: 60736, to: 63808 }] + }, + csshiftjis: "shiftjis", + mskanji: "shiftjis", + sjis: "shiftjis", + windows31j: "shiftjis", + ms31j: "shiftjis", + xsjis: "shiftjis", + windows932: "shiftjis", + ms932: "shiftjis", + 932: "shiftjis", + cp932: "shiftjis", + eucjp: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_eucjp(); + }, "table"), + encodeAdd: { "\xA5": 92, "\u203E": 126 } + }, + // TODO: KDDI extension to Shift_JIS + // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes. + // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars. + // == Chinese/GBK ========================================================== + // http://en.wikipedia.org/wiki/GBK + // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder + // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936 + gb2312: "cp936", + gb231280: "cp936", + gb23121980: "cp936", + csgb2312: "cp936", + csiso58gb231280: "cp936", + euccn: "cp936", + // Microsoft's CP936 is a subset and approximation of GBK. + windows936: "cp936", + ms936: "cp936", + 936: "cp936", + cp936: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp936(); + }, "table") + }, + // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other. + gbk: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp936().concat(require_gbk_added()); + }, "table") + }, + xgbk: "gbk", + isoir58: "gbk", + // GB18030 is an algorithmic extension of GBK. + // Main source: https://www.w3.org/TR/encoding/#gbk-encoder + // http://icu-project.org/docs/papers/gb18030.html + // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml + // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0 + gb18030: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp936().concat(require_gbk_added()); + }, "table"), + gb18030: /* @__PURE__ */ __name(function() { + return require_gb18030_ranges(); + }, "gb18030"), + encodeSkipVals: [128], + encodeAdd: { "\u20AC": 41699 } + }, + chinese: "gb18030", + // == Korean =============================================================== + // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same. + windows949: "cp949", + ms949: "cp949", + 949: "cp949", + cp949: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp949(); + }, "table") + }, + cseuckr: "cp949", + csksc56011987: "cp949", + euckr: "cp949", + isoir149: "cp949", + korean: "cp949", + ksc56011987: "cp949", + ksc56011989: "cp949", + ksc5601: "cp949", + // == Big5/Taiwan/Hong Kong ================================================ + // There are lots of tables for Big5 and cp950. Please see the following links for history: + // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html + // Variations, in roughly number of defined chars: + // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT + // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/ + // * Big5-2003 (Taiwan standard) almost superset of cp950. + // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers. + // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. + // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years. + // Plus, it has 4 combining sequences. + // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299 + // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way. + // Implementations are not consistent within browsers; sometimes labeled as just big5. + // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied. + // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31 + // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s. + // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt + // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt + // + // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder + // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong. + windows950: "cp950", + ms950: "cp950", + 950: "cp950", + cp950: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp950(); + }, "table") + }, + // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus. + big5: "big5hkscs", + big5hkscs: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp950().concat(require_big5_added()); + }, "table"), + encodeSkipVals: [ + // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of + // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU. + // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter. + 36457, + 36463, + 36478, + 36523, + 36532, + 36557, + 36560, + 36695, + 36713, + 36718, + 36811, + 36862, + 36973, + 36986, + 37060, + 37084, + 37105, + 37311, + 37551, + 37552, + 37553, + 37554, + 37585, + 37959, + 38090, + 38361, + 38652, + 39285, + 39798, + 39800, + 39803, + 39878, + 39902, + 39916, + 39926, + 40002, + 40019, + 40034, + 40040, + 40043, + 40055, + 40124, + 40125, + 40144, + 40279, + 40282, + 40388, + 40431, + 40443, + 40617, + 40687, + 40701, + 40800, + 40907, + 41079, + 41180, + 41183, + 36812, + 37576, + 38468, + 38637, + // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345 + 41636, + 41637, + 41639, + 41638, + 41676, + 41678 + ] + }, + cnbig5: "big5hkscs", + csbig5: "big5hkscs", + xxbig5: "big5hkscs" + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/index.js +var require_encodings = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/index.js"(exports, module) { + "use strict"; + var mergeModules = require_merge_exports(); + var modules = [ + require_internal(), + require_utf32(), + require_utf16(), + require_utf7(), + require_sbcs_codec(), + require_sbcs_data(), + require_sbcs_data_generated(), + require_dbcs_codec(), + require_dbcs_data() + ]; + for (i = 0; i < modules.length; i++) { + module = modules[i]; + mergeModules(exports, module); + } + var module; + var i; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/streams.js +var require_streams = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/streams.js"(exports, module) { + "use strict"; + var Buffer2 = require_safer().Buffer; + module.exports = function(streamModule) { + var Transform2 = streamModule.Transform; + function IconvLiteEncoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.decodeStrings = false; + Transform2.call(this, options); + } + __name(IconvLiteEncoderStream, "IconvLiteEncoderStream"); + IconvLiteEncoderStream.prototype = Object.create(Transform2.prototype, { + constructor: { value: IconvLiteEncoderStream } + }); + IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { + if (typeof chunk !== "string") { + return done(new Error("Iconv encoding stream needs strings as its input.")); + } + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype.collect = function(cb) { + var chunks = []; + this.on("error", cb); + this.on("data", function(chunk) { + chunks.push(chunk); + }); + this.on("end", function() { + cb(null, Buffer2.concat(chunks)); + }); + return this; + }; + function IconvLiteDecoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.encoding = this.encoding = "utf8"; + Transform2.call(this, options); + } + __name(IconvLiteDecoderStream, "IconvLiteDecoderStream"); + IconvLiteDecoderStream.prototype = Object.create(Transform2.prototype, { + constructor: { value: IconvLiteDecoderStream } + }); + IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { + if (!Buffer2.isBuffer(chunk) && !(chunk instanceof Uint8Array)) { + return done(new Error("Iconv decoding stream needs buffers as its input.")); + } + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype.collect = function(cb) { + var res = ""; + this.on("error", cb); + this.on("data", function(chunk) { + res += chunk; + }); + this.on("end", function() { + cb(null, res); + }); + return this; + }; + return { + IconvLiteEncoderStream, + IconvLiteDecoderStream + }; + }; + } +}); + +// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/index.js +var require_lib3 = __commonJS({ + "../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/index.js"(exports, module) { + "use strict"; + var Buffer2 = require_safer().Buffer; + var bomHandling = require_bom_handling(); + var mergeModules = require_merge_exports(); + module.exports.encodings = null; + module.exports.defaultCharUnicode = "\uFFFD"; + module.exports.defaultCharSingleByte = "?"; + module.exports.encode = /* @__PURE__ */ __name(function encode(str, encoding, options) { + str = "" + (str || ""); + var encoder = module.exports.getEncoder(encoding, options); + var res = encoder.write(str); + var trail = encoder.end(); + return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; + }, "encode"); + module.exports.decode = /* @__PURE__ */ __name(function decode(buf, encoding, options) { + if (typeof buf === "string") { + if (!module.exports.skipDecodeWarning) { + console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); + module.exports.skipDecodeWarning = true; + } + buf = Buffer2.from("" + (buf || ""), "binary"); + } + var decoder = module.exports.getDecoder(encoding, options); + var res = decoder.write(buf); + var trail = decoder.end(); + return trail ? res + trail : res; + }, "decode"); + module.exports.encodingExists = /* @__PURE__ */ __name(function encodingExists(enc) { + try { + module.exports.getCodec(enc); + return true; + } catch (e) { + return false; + } + }, "encodingExists"); + module.exports.toEncoding = module.exports.encode; + module.exports.fromEncoding = module.exports.decode; + module.exports._codecDataCache = { __proto__: null }; + module.exports.getCodec = /* @__PURE__ */ __name(function getCodec(encoding) { + if (!module.exports.encodings) { + var raw = require_encodings(); + module.exports.encodings = { __proto__: null }; + mergeModules(module.exports.encodings, raw); + } + var enc = module.exports._canonicalizeEncoding(encoding); + var codecOptions = {}; + while (true) { + var codec = module.exports._codecDataCache[enc]; + if (codec) { + return codec; + } + var codecDef = module.exports.encodings[enc]; + switch (typeof codecDef) { + case "string": + enc = codecDef; + break; + case "object": + for (var key in codecDef) { + codecOptions[key] = codecDef[key]; + } + if (!codecOptions.encodingName) { + codecOptions.encodingName = enc; + } + enc = codecDef.type; + break; + case "function": + if (!codecOptions.encodingName) { + codecOptions.encodingName = enc; + } + codec = new codecDef(codecOptions, module.exports); + module.exports._codecDataCache[codecOptions.encodingName] = codec; + return codec; + default: + throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); + } + } + }, "getCodec"); + module.exports._canonicalizeEncoding = function(encoding) { + return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); + }; + module.exports.getEncoder = /* @__PURE__ */ __name(function getEncoder(encoding, options) { + var codec = module.exports.getCodec(encoding); + var encoder = new codec.encoder(options, codec); + if (codec.bomAware && options && options.addBOM) { + encoder = new bomHandling.PrependBOM(encoder, options); + } + return encoder; + }, "getEncoder"); + module.exports.getDecoder = /* @__PURE__ */ __name(function getDecoder(encoding, options) { + var codec = module.exports.getCodec(encoding); + var decoder = new codec.decoder(options, codec); + if (codec.bomAware && !(options && options.stripBOM === false)) { + decoder = new bomHandling.StripBOM(decoder, options); + } + return decoder; + }, "getDecoder"); + module.exports.enableStreamingAPI = /* @__PURE__ */ __name(function enableStreamingAPI(streamModule2) { + if (module.exports.supportsStreams) { + return; + } + var streams = require_streams()(streamModule2); + module.exports.IconvLiteEncoderStream = streams.IconvLiteEncoderStream; + module.exports.IconvLiteDecoderStream = streams.IconvLiteDecoderStream; + module.exports.encodeStream = /* @__PURE__ */ __name(function encodeStream(encoding, options) { + return new module.exports.IconvLiteEncoderStream(module.exports.getEncoder(encoding, options), options); + }, "encodeStream"); + module.exports.decodeStream = /* @__PURE__ */ __name(function decodeStream(encoding, options) { + return new module.exports.IconvLiteDecoderStream(module.exports.getDecoder(encoding, options), options); + }, "decodeStream"); + module.exports.supportsStreams = true; + }, "enableStreamingAPI"); + var streamModule; + try { + streamModule = __require("stream"); + } catch (e) { + } + if (streamModule && streamModule.Transform) { + module.exports.enableStreamingAPI(streamModule); + } else { + module.exports.encodeStream = module.exports.decodeStream = function() { + throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it."); + }; + } + if (false) { + console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info."); + } + } +}); + +// ../../node_modules/.pnpm/unpipe@1.0.0/node_modules/unpipe/index.js +var require_unpipe = __commonJS({ + "../../node_modules/.pnpm/unpipe@1.0.0/node_modules/unpipe/index.js"(exports, module) { + "use strict"; + module.exports = unpipe; + function hasPipeDataListeners(stream) { + var listeners = stream.listeners("data"); + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].name === "ondata") { + return true; + } + } + return false; + } + __name(hasPipeDataListeners, "hasPipeDataListeners"); + function unpipe(stream) { + if (!stream) { + throw new TypeError("argument stream is required"); + } + if (typeof stream.unpipe === "function") { + stream.unpipe(); + return; + } + if (!hasPipeDataListeners(stream)) { + return; + } + var listener; + var listeners = stream.listeners("close"); + for (var i = 0; i < listeners.length; i++) { + listener = listeners[i]; + if (listener.name !== "cleanup" && listener.name !== "onclose") { + continue; + } + listener.call(stream); + } + } + __name(unpipe, "unpipe"); + } +}); + +// ../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js +var require_raw_body = __commonJS({ + "../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js"(exports, module) { + "use strict"; + var asyncHooks = tryRequireAsyncHooks(); + var bytes = require_bytes(); + var createError = require_http_errors(); + var iconv = require_lib3(); + var unpipe = require_unpipe(); + module.exports = getRawBody; + var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /; + function getDecoder(encoding) { + if (!encoding) return null; + try { + return iconv.getDecoder(encoding); + } catch (e) { + if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e; + throw createError(415, "specified encoding unsupported", { + encoding, + type: "encoding.unsupported" + }); + } + } + __name(getDecoder, "getDecoder"); + function getRawBody(stream, options, callback) { + var done = callback; + var opts = options || {}; + if (stream === void 0) { + throw new TypeError("argument stream is required"); + } else if (typeof stream !== "object" || stream === null || typeof stream.on !== "function") { + throw new TypeError("argument stream must be a stream"); + } + if (options === true || typeof options === "string") { + opts = { + encoding: options + }; + } + if (typeof options === "function") { + done = options; + opts = {}; + } + if (done !== void 0 && typeof done !== "function") { + throw new TypeError("argument callback must be a function"); + } + if (!done && !global.Promise) { + throw new TypeError("argument callback is required"); + } + var encoding = opts.encoding !== true ? opts.encoding : "utf-8"; + var limit = bytes.parse(opts.limit); + var length = opts.length != null && !isNaN(opts.length) ? parseInt(opts.length, 10) : null; + if (done) { + return readStream(stream, encoding, length, limit, wrap(done)); + } + return new Promise(/* @__PURE__ */ __name(function executor(resolve, reject) { + readStream(stream, encoding, length, limit, /* @__PURE__ */ __name(function onRead(err, buf) { + if (err) return reject(err); + resolve(buf); + }, "onRead")); + }, "executor")); + } + __name(getRawBody, "getRawBody"); + function halt(stream) { + unpipe(stream); + if (typeof stream.pause === "function") { + stream.pause(); + } + } + __name(halt, "halt"); + function readStream(stream, encoding, length, limit, callback) { + var complete = false; + var sync = true; + if (limit !== null && length !== null && length > limit) { + return done(createError(413, "request entity too large", { + expected: length, + length, + limit, + type: "entity.too.large" + })); + } + var state = stream._readableState; + if (stream._decoder || state && (state.encoding || state.decoder)) { + return done(createError(500, "stream encoding should not be set", { + type: "stream.encoding.set" + })); + } + if (typeof stream.readable !== "undefined" && !stream.readable) { + return done(createError(500, "stream is not readable", { + type: "stream.not.readable" + })); + } + var received = 0; + var decoder; + try { + decoder = getDecoder(encoding); + } catch (err) { + return done(err); + } + var buffer = decoder ? "" : []; + stream.on("aborted", onAborted); + stream.on("close", cleanup); + stream.on("data", onData); + stream.on("end", onEnd); + stream.on("error", onEnd); + sync = false; + function done() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + complete = true; + if (sync) { + process.nextTick(invokeCallback); + } else { + invokeCallback(); + } + function invokeCallback() { + cleanup(); + if (args[0]) { + halt(stream); + } + callback.apply(null, args); + } + __name(invokeCallback, "invokeCallback"); + } + __name(done, "done"); + function onAborted() { + if (complete) return; + done(createError(400, "request aborted", { + code: "ECONNABORTED", + expected: length, + length, + received, + type: "request.aborted" + })); + } + __name(onAborted, "onAborted"); + function onData(chunk) { + if (complete) return; + received += chunk.length; + if (limit !== null && received > limit) { + done(createError(413, "request entity too large", { + limit, + received, + type: "entity.too.large" + })); + } else if (decoder) { + buffer += decoder.write(chunk); + } else { + buffer.push(chunk); + } + } + __name(onData, "onData"); + function onEnd(err) { + if (complete) return; + if (err) return done(err); + if (length !== null && received !== length) { + done(createError(400, "request size did not match content length", { + expected: length, + length, + received, + type: "request.size.invalid" + })); + } else { + var string = decoder ? buffer + (decoder.end() || "") : Buffer.concat(buffer); + done(null, string); + } + } + __name(onEnd, "onEnd"); + function cleanup() { + buffer = null; + stream.removeListener("aborted", onAborted); + stream.removeListener("data", onData); + stream.removeListener("end", onEnd); + stream.removeListener("error", onEnd); + stream.removeListener("close", cleanup); + } + __name(cleanup, "cleanup"); + } + __name(readStream, "readStream"); + function tryRequireAsyncHooks() { + try { + return __require("async_hooks"); + } catch (e) { + return {}; + } + } + __name(tryRequireAsyncHooks, "tryRequireAsyncHooks"); + function wrap(fn) { + var res; + if (asyncHooks.AsyncResource) { + res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn"); + } + if (!res || !res.runInAsyncScope) { + return fn; + } + return res.runInAsyncScope.bind(res, fn, null); + } + __name(wrap, "wrap"); + } +}); + +// ../../node_modules/.pnpm/ee-first@1.1.1/node_modules/ee-first/index.js +var require_ee_first = __commonJS({ + "../../node_modules/.pnpm/ee-first@1.1.1/node_modules/ee-first/index.js"(exports, module) { + "use strict"; + module.exports = first; + function first(stuff, done) { + if (!Array.isArray(stuff)) + throw new TypeError("arg must be an array of [ee, events...] arrays"); + var cleanups = []; + for (var i = 0; i < stuff.length; i++) { + var arr = stuff[i]; + if (!Array.isArray(arr) || arr.length < 2) + throw new TypeError("each array member must be [ee, events...]"); + var ee = arr[0]; + for (var j = 1; j < arr.length; j++) { + var event = arr[j]; + var fn = listener(event, callback); + ee.on(event, fn); + cleanups.push({ + ee, + event, + fn + }); + } + } + function callback() { + cleanup(); + done.apply(null, arguments); + } + __name(callback, "callback"); + function cleanup() { + var x; + for (var i2 = 0; i2 < cleanups.length; i2++) { + x = cleanups[i2]; + x.ee.removeListener(x.event, x.fn); + } + } + __name(cleanup, "cleanup"); + function thunk(fn2) { + done = fn2; + } + __name(thunk, "thunk"); + thunk.cancel = cleanup; + return thunk; + } + __name(first, "first"); + function listener(event, done) { + return /* @__PURE__ */ __name(function onevent(arg1) { + var args = new Array(arguments.length); + var ee = this; + var err = event === "error" ? arg1 : null; + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + done(err, ee, event, args); + }, "onevent"); + } + __name(listener, "listener"); + } +}); + +// ../../node_modules/.pnpm/on-finished@2.4.1/node_modules/on-finished/index.js +var require_on_finished = __commonJS({ + "../../node_modules/.pnpm/on-finished@2.4.1/node_modules/on-finished/index.js"(exports, module) { + "use strict"; + module.exports = onFinished; + module.exports.isFinished = isFinished; + var asyncHooks = tryRequireAsyncHooks(); + var first = require_ee_first(); + var defer2 = typeof setImmediate === "function" ? setImmediate : function(fn) { + process.nextTick(fn.bind.apply(fn, arguments)); + }; + function onFinished(msg, listener) { + if (isFinished(msg) !== false) { + defer2(listener, null, msg); + return msg; + } + attachListener(msg, wrap(listener)); + return msg; + } + __name(onFinished, "onFinished"); + function isFinished(msg) { + var socket = msg.socket; + if (typeof msg.finished === "boolean") { + return Boolean(msg.finished || socket && !socket.writable); + } + if (typeof msg.complete === "boolean") { + return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable); + } + return void 0; + } + __name(isFinished, "isFinished"); + function attachFinishedListener(msg, callback) { + var eeMsg; + var eeSocket; + var finished3 = false; + function onFinish(error) { + eeMsg.cancel(); + eeSocket.cancel(); + finished3 = true; + callback(error); + } + __name(onFinish, "onFinish"); + eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish); + function onSocket(socket) { + msg.removeListener("socket", onSocket); + if (finished3) return; + if (eeMsg !== eeSocket) return; + eeSocket = first([[socket, "error", "close"]], onFinish); + } + __name(onSocket, "onSocket"); + if (msg.socket) { + onSocket(msg.socket); + return; + } + msg.on("socket", onSocket); + if (msg.socket === void 0) { + patchAssignSocket(msg, onSocket); + } + } + __name(attachFinishedListener, "attachFinishedListener"); + function attachListener(msg, listener) { + var attached = msg.__onFinished; + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg); + attachFinishedListener(msg, attached); + } + attached.queue.push(listener); + } + __name(attachListener, "attachListener"); + function createListener(msg) { + function listener(err) { + if (msg.__onFinished === listener) msg.__onFinished = null; + if (!listener.queue) return; + var queue = listener.queue; + listener.queue = null; + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg); + } + } + __name(listener, "listener"); + listener.queue = []; + return listener; + } + __name(createListener, "createListener"); + function patchAssignSocket(res, callback) { + var assignSocket = res.assignSocket; + if (typeof assignSocket !== "function") return; + res.assignSocket = /* @__PURE__ */ __name(function _assignSocket(socket) { + assignSocket.call(this, socket); + callback(socket); + }, "_assignSocket"); + } + __name(patchAssignSocket, "patchAssignSocket"); + function tryRequireAsyncHooks() { + try { + return __require("async_hooks"); + } catch (e) { + return {}; + } + } + __name(tryRequireAsyncHooks, "tryRequireAsyncHooks"); + function wrap(fn) { + var res; + if (asyncHooks.AsyncResource) { + res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn"); + } + if (!res || !res.runInAsyncScope) { + return fn; + } + return res.runInAsyncScope.bind(res, fn, null); + } + __name(wrap, "wrap"); + } +}); + +// ../../node_modules/.pnpm/content-type@2.1.0/node_modules/content-type/dist/index.js +var require_dist = __commonJS({ + "../../node_modules/.pnpm/content-type@2.1.0/node_modules/content-type/dist/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.format = format; + exports.parse = parse; + var TEXT_REGEXP = /^[\u0009\u0020-\u007e\u0080-\u00ff]*$/; + var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var QUOTE_REGEXP = /[\\"]/g; + var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var NullObject = /* @__PURE__ */ (() => { + const C = /* @__PURE__ */ __name(function() { + }, "C"); + C.prototype = /* @__PURE__ */ Object.create(null); + return C; + })(); + function format(obj) { + const { type, parameters } = obj; + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError(`Invalid type: ${type}`); + } + let result = type; + if (parameters) { + for (const param of Object.keys(parameters)) { + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError(`Invalid parameter name: ${param}`); + } + result += `; ${param}=${qstring(parameters[param])}`; + } + } + return result; + } + __name(format, "format"); + function parse(header, options) { + const stopChar = options?.comma === true ? COMMA : 65536; + const len = header.length; + let index = skipOWS(header, options?.start ?? 0, len); + const valueStart = index; + index = skipValue(header, index, len, stopChar); + const valueEnd = trailingOWS(header, valueStart, index); + const type = header.slice(valueStart, valueEnd).toLowerCase(); + if (options?.parameters === false) { + return { type, index, parameters: new NullObject() }; + } + return parseParameters(header, type, index, len, stopChar); + } + __name(parse, "parse"); + var SP = 32; + var HTAB = 9; + var SEMI = 59; + var EQ = 61; + var DQUOTE = 34; + var BSLASH = 92; + var COMMA = 44; + function parseParameters(header, type, index, len, stopChar) { + const parameters = new NullObject(); + parameter: while (index < len) { + if (header.charCodeAt(index) === stopChar) + break; + index = skipOWS(header, index + 1, len); + const keyStart = index; + while (index < len) { + const code = header.charCodeAt(index); + if (code === stopChar) + break parameter; + if (code === SEMI) + continue parameter; + if (code === EQ) { + const keyEnd = trailingOWS(header, keyStart, index); + const key = header.slice(keyStart, keyEnd).toLowerCase(); + index = skipOWS(header, index + 1, len); + if (index < len && header.charCodeAt(index) === DQUOTE) { + index++; + let value = ""; + while (index < len) { + const code2 = header.charCodeAt(index++); + if (code2 === DQUOTE) { + index = skipValue(header, index, len, stopChar); + if (parameters[key] === void 0) + parameters[key] = value; + break; + } + if (code2 === BSLASH && index < len) { + value += header[index++]; + continue; + } + value += String.fromCharCode(code2); + } + continue parameter; + } + const valueStart = index; + index = skipValue(header, index, len, stopChar); + if (parameters[key] === void 0) { + const valueEnd = trailingOWS(header, valueStart, index); + parameters[key] = header.slice(valueStart, valueEnd); + } + continue parameter; + } + index++; + } + } + return { type, index, parameters }; + } + __name(parseParameters, "parseParameters"); + function skipValue(str, index, len, stopChar) { + while (index < len) { + const code = str.charCodeAt(index); + if (code === SEMI || code === stopChar) + break; + index++; + } + return index; + } + __name(skipValue, "skipValue"); + function skipOWS(header, index, len) { + while (index < len) { + const char = header.charCodeAt(index); + if (char !== SP && char !== HTAB) + break; + index++; + } + return index; + } + __name(skipOWS, "skipOWS"); + function trailingOWS(header, start, end) { + while (end > start) { + const char = header.charCodeAt(end - 1); + if (char !== SP && char !== HTAB) + break; + end--; + } + return end; + } + __name(trailingOWS, "trailingOWS"); + function qstring(str) { + if (TOKEN_REGEXP.test(str)) + return str; + if (TEXT_REGEXP.test(str)) + return `"${str.replace(QUOTE_REGEXP, "\\$&")}"`; + throw new TypeError(`Invalid parameter value: ${str}`); + } + __name(qstring, "qstring"); + } +}); + +// ../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/db.json +var require_db = __commonJS({ + "../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/db.json"(exports, module) { + module.exports = { + "application/1d-interleaved-parityfec": { + source: "iana" + }, + "application/3gpdash-qoe-report+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/3gpp-ims+xml": { + source: "iana", + compressible: true + }, + "application/3gpphal+json": { + source: "iana", + compressible: true + }, + "application/3gpphalforms+json": { + source: "iana", + compressible: true + }, + "application/a2l": { + source: "iana" + }, + "application/ace+cbor": { + source: "iana" + }, + "application/ace+json": { + source: "iana", + compressible: true + }, + "application/ace-groupcomm+cbor": { + source: "iana" + }, + "application/ace-trl+cbor": { + source: "iana" + }, + "application/activemessage": { + source: "iana" + }, + "application/activity+json": { + source: "iana", + compressible: true + }, + "application/aif+cbor": { + source: "iana" + }, + "application/aif+json": { + source: "iana", + compressible: true + }, + "application/alto-cdni+json": { + source: "iana", + compressible: true + }, + "application/alto-cdnifilter+json": { + source: "iana", + compressible: true + }, + "application/alto-costmap+json": { + source: "iana", + compressible: true + }, + "application/alto-costmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-directory+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcost+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcostparams+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointprop+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointpropparams+json": { + source: "iana", + compressible: true + }, + "application/alto-error+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmap+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-propmap+json": { + source: "iana", + compressible: true + }, + "application/alto-propmapparams+json": { + source: "iana", + compressible: true + }, + "application/alto-tips+json": { + source: "iana", + compressible: true + }, + "application/alto-tipsparams+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamcontrol+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamparams+json": { + source: "iana", + compressible: true + }, + "application/aml": { + source: "iana" + }, + "application/andrew-inset": { + source: "iana", + extensions: ["ez"] + }, + "application/appinstaller": { + compressible: false, + extensions: ["appinstaller"] + }, + "application/applefile": { + source: "iana" + }, + "application/applixware": { + source: "apache", + extensions: ["aw"] + }, + "application/appx": { + compressible: false, + extensions: ["appx"] + }, + "application/appxbundle": { + compressible: false, + extensions: ["appxbundle"] + }, + "application/at+jwt": { + source: "iana" + }, + "application/atf": { + source: "iana" + }, + "application/atfx": { + source: "iana" + }, + "application/atom+xml": { + source: "iana", + compressible: true, + extensions: ["atom"] + }, + "application/atomcat+xml": { + source: "iana", + compressible: true, + extensions: ["atomcat"] + }, + "application/atomdeleted+xml": { + source: "iana", + compressible: true, + extensions: ["atomdeleted"] + }, + "application/atomicmail": { + source: "iana" + }, + "application/atomsvc+xml": { + source: "iana", + compressible: true, + extensions: ["atomsvc"] + }, + "application/atsc-dwd+xml": { + source: "iana", + compressible: true, + extensions: ["dwd"] + }, + "application/atsc-dynamic-event-message": { + source: "iana" + }, + "application/atsc-held+xml": { + source: "iana", + compressible: true, + extensions: ["held"] + }, + "application/atsc-rdt+json": { + source: "iana", + compressible: true + }, + "application/atsc-rsat+xml": { + source: "iana", + compressible: true, + extensions: ["rsat"] + }, + "application/atxml": { + source: "iana" + }, + "application/auth-policy+xml": { + source: "iana", + compressible: true + }, + "application/automationml-aml+xml": { + source: "iana", + compressible: true, + extensions: ["aml"] + }, + "application/automationml-amlx+zip": { + source: "iana", + compressible: false, + extensions: ["amlx"] + }, + "application/bacnet-xdd+zip": { + source: "iana", + compressible: false + }, + "application/batch-smtp": { + source: "iana" + }, + "application/bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/beep+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/bufr": { + source: "iana" + }, + "application/c2pa": { + source: "iana" + }, + "application/calendar+json": { + source: "iana", + compressible: true + }, + "application/calendar+xml": { + source: "iana", + compressible: true, + extensions: ["xcs"] + }, + "application/call-completion": { + source: "iana" + }, + "application/cals-1840": { + source: "iana" + }, + "application/captive+json": { + source: "iana", + compressible: true + }, + "application/cbor": { + source: "iana" + }, + "application/cbor-seq": { + source: "iana" + }, + "application/cccex": { + source: "iana" + }, + "application/ccmp+xml": { + source: "iana", + compressible: true + }, + "application/ccxml+xml": { + source: "iana", + compressible: true, + extensions: ["ccxml"] + }, + "application/cda+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/cdfx+xml": { + source: "iana", + compressible: true, + extensions: ["cdfx"] + }, + "application/cdmi-capability": { + source: "iana", + extensions: ["cdmia"] + }, + "application/cdmi-container": { + source: "iana", + extensions: ["cdmic"] + }, + "application/cdmi-domain": { + source: "iana", + extensions: ["cdmid"] + }, + "application/cdmi-object": { + source: "iana", + extensions: ["cdmio"] + }, + "application/cdmi-queue": { + source: "iana", + extensions: ["cdmiq"] + }, + "application/cdni": { + source: "iana" + }, + "application/ce+cbor": { + source: "iana" + }, + "application/cea": { + source: "iana" + }, + "application/cea-2018+xml": { + source: "iana", + compressible: true + }, + "application/cellml+xml": { + source: "iana", + compressible: true + }, + "application/cfw": { + source: "iana" + }, + "application/cid-edhoc+cbor-seq": { + source: "iana" + }, + "application/city+json": { + source: "iana", + compressible: true + }, + "application/city+json-seq": { + source: "iana" + }, + "application/clr": { + source: "iana" + }, + "application/clue+xml": { + source: "iana", + compressible: true + }, + "application/clue_info+xml": { + source: "iana", + compressible: true + }, + "application/cms": { + source: "iana" + }, + "application/cnrp+xml": { + source: "iana", + compressible: true + }, + "application/coap-eap": { + source: "iana" + }, + "application/coap-group+json": { + source: "iana", + compressible: true + }, + "application/coap-payload": { + source: "iana" + }, + "application/commonground": { + source: "iana" + }, + "application/concise-problem-details+cbor": { + source: "iana" + }, + "application/conference-info+xml": { + source: "iana", + compressible: true + }, + "application/cose": { + source: "iana" + }, + "application/cose-key": { + source: "iana" + }, + "application/cose-key-set": { + source: "iana" + }, + "application/cose-x509": { + source: "iana" + }, + "application/cpl+xml": { + source: "iana", + compressible: true, + extensions: ["cpl"] + }, + "application/csrattrs": { + source: "iana" + }, + "application/csta+xml": { + source: "iana", + compressible: true + }, + "application/cstadata+xml": { + source: "iana", + compressible: true + }, + "application/csvm+json": { + source: "iana", + compressible: true + }, + "application/cu-seeme": { + source: "apache", + extensions: ["cu"] + }, + "application/cwl": { + source: "iana", + extensions: ["cwl"] + }, + "application/cwl+json": { + source: "iana", + compressible: true + }, + "application/cwl+yaml": { + source: "iana" + }, + "application/cwt": { + source: "iana" + }, + "application/cybercash": { + source: "iana" + }, + "application/dart": { + compressible: true + }, + "application/dash+xml": { + source: "iana", + compressible: true, + extensions: ["mpd"] + }, + "application/dash-patch+xml": { + source: "iana", + compressible: true, + extensions: ["mpp"] + }, + "application/dashdelta": { + source: "iana" + }, + "application/davmount+xml": { + source: "iana", + compressible: true, + extensions: ["davmount"] + }, + "application/dca-rft": { + source: "iana" + }, + "application/dcd": { + source: "iana" + }, + "application/dec-dx": { + source: "iana" + }, + "application/dialog-info+xml": { + source: "iana", + compressible: true + }, + "application/dicom": { + source: "iana", + extensions: ["dcm"] + }, + "application/dicom+json": { + source: "iana", + compressible: true + }, + "application/dicom+xml": { + source: "iana", + compressible: true + }, + "application/dii": { + source: "iana" + }, + "application/dit": { + source: "iana" + }, + "application/dns": { + source: "iana" + }, + "application/dns+json": { + source: "iana", + compressible: true + }, + "application/dns-message": { + source: "iana" + }, + "application/docbook+xml": { + source: "apache", + compressible: true, + extensions: ["dbk"] + }, + "application/dots+cbor": { + source: "iana" + }, + "application/dpop+jwt": { + source: "iana" + }, + "application/dskpp+xml": { + source: "iana", + compressible: true + }, + "application/dssc+der": { + source: "iana", + extensions: ["dssc"] + }, + "application/dssc+xml": { + source: "iana", + compressible: true, + extensions: ["xdssc"] + }, + "application/dvcs": { + source: "iana" + }, + "application/eat+cwt": { + source: "iana" + }, + "application/eat+jwt": { + source: "iana" + }, + "application/eat-bun+cbor": { + source: "iana" + }, + "application/eat-bun+json": { + source: "iana", + compressible: true + }, + "application/eat-ucs+cbor": { + source: "iana" + }, + "application/eat-ucs+json": { + source: "iana", + compressible: true + }, + "application/ecmascript": { + source: "apache", + compressible: true, + extensions: ["ecma"] + }, + "application/edhoc+cbor-seq": { + source: "iana" + }, + "application/edi-consent": { + source: "iana" + }, + "application/edi-x12": { + source: "iana", + compressible: false + }, + "application/edifact": { + source: "iana", + compressible: false + }, + "application/efi": { + source: "iana" + }, + "application/elm+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/elm+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.cap+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/emergencycalldata.comment+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.control+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.deviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.ecall.msd": { + source: "iana" + }, + "application/emergencycalldata.legacyesn+json": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.providerinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.serviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.subscriberinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.veds+xml": { + source: "iana", + compressible: true + }, + "application/emma+xml": { + source: "iana", + compressible: true, + extensions: ["emma"] + }, + "application/emotionml+xml": { + source: "iana", + compressible: true, + extensions: ["emotionml"] + }, + "application/encaprtp": { + source: "iana" + }, + "application/entity-statement+jwt": { + source: "iana" + }, + "application/epp+xml": { + source: "iana", + compressible: true + }, + "application/epub+zip": { + source: "iana", + compressible: false, + extensions: ["epub"] + }, + "application/eshop": { + source: "iana" + }, + "application/exi": { + source: "iana", + extensions: ["exi"] + }, + "application/expect-ct-report+json": { + source: "iana", + compressible: true + }, + "application/express": { + source: "iana", + extensions: ["exp"] + }, + "application/fastinfoset": { + source: "iana" + }, + "application/fastsoap": { + source: "iana" + }, + "application/fdf": { + source: "iana", + extensions: ["fdf"] + }, + "application/fdt+xml": { + source: "iana", + compressible: true, + extensions: ["fdt"] + }, + "application/fhir+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fhir+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fido.trusted-apps+json": { + compressible: true + }, + "application/fits": { + source: "iana" + }, + "application/flexfec": { + source: "iana" + }, + "application/font-sfnt": { + source: "iana" + }, + "application/font-tdpfr": { + source: "iana", + extensions: ["pfr"] + }, + "application/font-woff": { + source: "iana", + compressible: false + }, + "application/framework-attributes+xml": { + source: "iana", + compressible: true + }, + "application/geo+json": { + source: "iana", + compressible: true, + extensions: ["geojson"] + }, + "application/geo+json-seq": { + source: "iana" + }, + "application/geopackage+sqlite3": { + source: "iana" + }, + "application/geopose+json": { + source: "iana", + compressible: true + }, + "application/geoxacml+json": { + source: "iana", + compressible: true + }, + "application/geoxacml+xml": { + source: "iana", + compressible: true + }, + "application/gltf-buffer": { + source: "iana" + }, + "application/gml+xml": { + source: "iana", + compressible: true, + extensions: ["gml"] + }, + "application/gnap-binding-jws": { + source: "iana" + }, + "application/gnap-binding-jwsd": { + source: "iana" + }, + "application/gnap-binding-rotation-jws": { + source: "iana" + }, + "application/gnap-binding-rotation-jwsd": { + source: "iana" + }, + "application/gpx+xml": { + source: "apache", + compressible: true, + extensions: ["gpx"] + }, + "application/grib": { + source: "iana" + }, + "application/gxf": { + source: "apache", + extensions: ["gxf"] + }, + "application/gzip": { + source: "iana", + compressible: false, + extensions: ["gz"] + }, + "application/h224": { + source: "iana" + }, + "application/held+xml": { + source: "iana", + compressible: true + }, + "application/hjson": { + extensions: ["hjson"] + }, + "application/hl7v2+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/http": { + source: "iana" + }, + "application/hyperstudio": { + source: "iana", + extensions: ["stk"] + }, + "application/ibe-key-request+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pkg-reply+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pp-data": { + source: "iana" + }, + "application/iges": { + source: "iana" + }, + "application/im-iscomposing+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/index": { + source: "iana" + }, + "application/index.cmd": { + source: "iana" + }, + "application/index.obj": { + source: "iana" + }, + "application/index.response": { + source: "iana" + }, + "application/index.vnd": { + source: "iana" + }, + "application/inkml+xml": { + source: "iana", + compressible: true, + extensions: ["ink", "inkml"] + }, + "application/iotp": { + source: "iana" + }, + "application/ipfix": { + source: "iana", + extensions: ["ipfix"] + }, + "application/ipp": { + source: "iana" + }, + "application/isup": { + source: "iana" + }, + "application/its+xml": { + source: "iana", + compressible: true, + extensions: ["its"] + }, + "application/java-archive": { + source: "iana", + compressible: false, + extensions: ["jar", "war", "ear"] + }, + "application/java-serialized-object": { + source: "apache", + compressible: false, + extensions: ["ser"] + }, + "application/java-vm": { + source: "apache", + compressible: false, + extensions: ["class"] + }, + "application/javascript": { + source: "apache", + charset: "UTF-8", + compressible: true, + extensions: ["js"] + }, + "application/jf2feed+json": { + source: "iana", + compressible: true + }, + "application/jose": { + source: "iana" + }, + "application/jose+json": { + source: "iana", + compressible: true + }, + "application/jrd+json": { + source: "iana", + compressible: true + }, + "application/jscalendar+json": { + source: "iana", + compressible: true + }, + "application/jscontact+json": { + source: "iana", + compressible: true + }, + "application/json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["json", "map"] + }, + "application/json-patch+json": { + source: "iana", + compressible: true + }, + "application/json-seq": { + source: "iana" + }, + "application/json5": { + extensions: ["json5"] + }, + "application/jsonml+json": { + source: "apache", + compressible: true, + extensions: ["jsonml"] + }, + "application/jsonpath": { + source: "iana" + }, + "application/jwk+json": { + source: "iana", + compressible: true + }, + "application/jwk-set+json": { + source: "iana", + compressible: true + }, + "application/jwk-set+jwt": { + source: "iana" + }, + "application/jwt": { + source: "iana" + }, + "application/kpml-request+xml": { + source: "iana", + compressible: true + }, + "application/kpml-response+xml": { + source: "iana", + compressible: true + }, + "application/ld+json": { + source: "iana", + compressible: true, + extensions: ["jsonld"] + }, + "application/lgr+xml": { + source: "iana", + compressible: true, + extensions: ["lgr"] + }, + "application/link-format": { + source: "iana" + }, + "application/linkset": { + source: "iana" + }, + "application/linkset+json": { + source: "iana", + compressible: true + }, + "application/load-control+xml": { + source: "iana", + compressible: true + }, + "application/logout+jwt": { + source: "iana" + }, + "application/lost+xml": { + source: "iana", + compressible: true, + extensions: ["lostxml"] + }, + "application/lostsync+xml": { + source: "iana", + compressible: true + }, + "application/lpf+zip": { + source: "iana", + compressible: false + }, + "application/lxf": { + source: "iana" + }, + "application/mac-binhex40": { + source: "iana", + extensions: ["hqx"] + }, + "application/mac-compactpro": { + source: "apache", + extensions: ["cpt"] + }, + "application/macwriteii": { + source: "iana" + }, + "application/mads+xml": { + source: "iana", + compressible: true, + extensions: ["mads"] + }, + "application/manifest+json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["webmanifest"] + }, + "application/marc": { + source: "iana", + extensions: ["mrc"] + }, + "application/marcxml+xml": { + source: "iana", + compressible: true, + extensions: ["mrcx"] + }, + "application/mathematica": { + source: "iana", + extensions: ["ma", "nb", "mb"] + }, + "application/mathml+xml": { + source: "iana", + compressible: true, + extensions: ["mathml"] + }, + "application/mathml-content+xml": { + source: "iana", + compressible: true + }, + "application/mathml-presentation+xml": { + source: "iana", + compressible: true + }, + "application/mbms-associated-procedure-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-deregister+xml": { + source: "iana", + compressible: true + }, + "application/mbms-envelope+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-protection-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-reception-report+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-schedule+xml": { + source: "iana", + compressible: true + }, + "application/mbms-user-service-description+xml": { + source: "iana", + compressible: true + }, + "application/mbox": { + source: "iana", + extensions: ["mbox"] + }, + "application/media-policy-dataset+xml": { + source: "iana", + compressible: true, + extensions: ["mpf"] + }, + "application/media_control+xml": { + source: "iana", + compressible: true + }, + "application/mediaservercontrol+xml": { + source: "iana", + compressible: true, + extensions: ["mscml"] + }, + "application/merge-patch+json": { + source: "iana", + compressible: true + }, + "application/metalink+xml": { + source: "apache", + compressible: true, + extensions: ["metalink"] + }, + "application/metalink4+xml": { + source: "iana", + compressible: true, + extensions: ["meta4"] + }, + "application/mets+xml": { + source: "iana", + compressible: true, + extensions: ["mets"] + }, + "application/mf4": { + source: "iana" + }, + "application/mikey": { + source: "iana" + }, + "application/mipc": { + source: "iana" + }, + "application/missing-blocks+cbor-seq": { + source: "iana" + }, + "application/mmt-aei+xml": { + source: "iana", + compressible: true, + extensions: ["maei"] + }, + "application/mmt-usd+xml": { + source: "iana", + compressible: true, + extensions: ["musd"] + }, + "application/mods+xml": { + source: "iana", + compressible: true, + extensions: ["mods"] + }, + "application/moss-keys": { + source: "iana" + }, + "application/moss-signature": { + source: "iana" + }, + "application/mosskey-data": { + source: "iana" + }, + "application/mosskey-request": { + source: "iana" + }, + "application/mp21": { + source: "iana", + extensions: ["m21", "mp21"] + }, + "application/mp4": { + source: "iana", + extensions: ["mp4", "mpg4", "mp4s", "m4p"] + }, + "application/mpeg4-generic": { + source: "iana" + }, + "application/mpeg4-iod": { + source: "iana" + }, + "application/mpeg4-iod-xmt": { + source: "iana" + }, + "application/mrb-consumer+xml": { + source: "iana", + compressible: true + }, + "application/mrb-publish+xml": { + source: "iana", + compressible: true + }, + "application/msc-ivr+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msc-mixer+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msix": { + compressible: false, + extensions: ["msix"] + }, + "application/msixbundle": { + compressible: false, + extensions: ["msixbundle"] + }, + "application/msword": { + source: "iana", + compressible: false, + extensions: ["doc", "dot"] + }, + "application/mud+json": { + source: "iana", + compressible: true + }, + "application/multipart-core": { + source: "iana" + }, + "application/mxf": { + source: "iana", + extensions: ["mxf"] + }, + "application/n-quads": { + source: "iana", + extensions: ["nq"] + }, + "application/n-triples": { + source: "iana", + extensions: ["nt"] + }, + "application/nasdata": { + source: "iana" + }, + "application/news-checkgroups": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-groupinfo": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-transmission": { + source: "iana" + }, + "application/nlsml+xml": { + source: "iana", + compressible: true + }, + "application/node": { + source: "iana", + extensions: ["cjs"] + }, + "application/nss": { + source: "iana" + }, + "application/oauth-authz-req+jwt": { + source: "iana" + }, + "application/oblivious-dns-message": { + source: "iana" + }, + "application/ocsp-request": { + source: "iana" + }, + "application/ocsp-response": { + source: "iana" + }, + "application/octet-stream": { + source: "iana", + compressible: true, + extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"] + }, + "application/oda": { + source: "iana", + extensions: ["oda"] + }, + "application/odm+xml": { + source: "iana", + compressible: true + }, + "application/odx": { + source: "iana" + }, + "application/oebps-package+xml": { + source: "iana", + compressible: true, + extensions: ["opf"] + }, + "application/ogg": { + source: "iana", + compressible: false, + extensions: ["ogx"] + }, + "application/ohttp-keys": { + source: "iana" + }, + "application/omdoc+xml": { + source: "apache", + compressible: true, + extensions: ["omdoc"] + }, + "application/onenote": { + source: "apache", + extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"] + }, + "application/opc-nodeset+xml": { + source: "iana", + compressible: true + }, + "application/oscore": { + source: "iana" + }, + "application/oxps": { + source: "iana", + extensions: ["oxps"] + }, + "application/p21": { + source: "iana" + }, + "application/p21+zip": { + source: "iana", + compressible: false + }, + "application/p2p-overlay+xml": { + source: "iana", + compressible: true, + extensions: ["relo"] + }, + "application/parityfec": { + source: "iana" + }, + "application/passport": { + source: "iana" + }, + "application/patch-ops-error+xml": { + source: "iana", + compressible: true, + extensions: ["xer"] + }, + "application/pdf": { + source: "iana", + compressible: false, + extensions: ["pdf"] + }, + "application/pdx": { + source: "iana" + }, + "application/pem-certificate-chain": { + source: "iana" + }, + "application/pgp-encrypted": { + source: "iana", + compressible: false, + extensions: ["pgp"] + }, + "application/pgp-keys": { + source: "iana", + extensions: ["asc"] + }, + "application/pgp-signature": { + source: "iana", + extensions: ["sig", "asc"] + }, + "application/pics-rules": { + source: "apache", + extensions: ["prf"] + }, + "application/pidf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pidf-diff+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pkcs10": { + source: "iana", + extensions: ["p10"] + }, + "application/pkcs12": { + source: "iana" + }, + "application/pkcs7-mime": { + source: "iana", + extensions: ["p7m", "p7c"] + }, + "application/pkcs7-signature": { + source: "iana", + extensions: ["p7s"] + }, + "application/pkcs8": { + source: "iana", + extensions: ["p8"] + }, + "application/pkcs8-encrypted": { + source: "iana" + }, + "application/pkix-attr-cert": { + source: "iana", + extensions: ["ac"] + }, + "application/pkix-cert": { + source: "iana", + extensions: ["cer"] + }, + "application/pkix-crl": { + source: "iana", + extensions: ["crl"] + }, + "application/pkix-pkipath": { + source: "iana", + extensions: ["pkipath"] + }, + "application/pkixcmp": { + source: "iana", + extensions: ["pki"] + }, + "application/pls+xml": { + source: "iana", + compressible: true, + extensions: ["pls"] + }, + "application/poc-settings+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/postscript": { + source: "iana", + compressible: true, + extensions: ["ai", "eps", "ps"] + }, + "application/ppsp-tracker+json": { + source: "iana", + compressible: true + }, + "application/private-token-issuer-directory": { + source: "iana" + }, + "application/private-token-request": { + source: "iana" + }, + "application/private-token-response": { + source: "iana" + }, + "application/problem+json": { + source: "iana", + compressible: true + }, + "application/problem+xml": { + source: "iana", + compressible: true + }, + "application/provenance+xml": { + source: "iana", + compressible: true, + extensions: ["provx"] + }, + "application/provided-claims+jwt": { + source: "iana" + }, + "application/prs.alvestrand.titrax-sheet": { + source: "iana" + }, + "application/prs.cww": { + source: "iana", + extensions: ["cww"] + }, + "application/prs.cyn": { + source: "iana", + charset: "7-BIT" + }, + "application/prs.hpub+zip": { + source: "iana", + compressible: false + }, + "application/prs.implied-document+xml": { + source: "iana", + compressible: true + }, + "application/prs.implied-executable": { + source: "iana" + }, + "application/prs.implied-object+json": { + source: "iana", + compressible: true + }, + "application/prs.implied-object+json-seq": { + source: "iana" + }, + "application/prs.implied-object+yaml": { + source: "iana" + }, + "application/prs.implied-structure": { + source: "iana" + }, + "application/prs.mayfile": { + source: "iana" + }, + "application/prs.nprend": { + source: "iana" + }, + "application/prs.plucker": { + source: "iana" + }, + "application/prs.rdf-xml-crypt": { + source: "iana" + }, + "application/prs.vcfbzip2": { + source: "iana" + }, + "application/prs.xsf+xml": { + source: "iana", + compressible: true, + extensions: ["xsf"] + }, + "application/pskc+xml": { + source: "iana", + compressible: true, + extensions: ["pskcxml"] + }, + "application/pvd+json": { + source: "iana", + compressible: true + }, + "application/qsig": { + source: "iana" + }, + "application/raml+yaml": { + compressible: true, + extensions: ["raml"] + }, + "application/raptorfec": { + source: "iana" + }, + "application/rdap+json": { + source: "iana", + compressible: true + }, + "application/rdf+xml": { + source: "iana", + compressible: true, + extensions: ["rdf", "owl"] + }, + "application/reginfo+xml": { + source: "iana", + compressible: true, + extensions: ["rif"] + }, + "application/relax-ng-compact-syntax": { + source: "iana", + extensions: ["rnc"] + }, + "application/remote-printing": { + source: "apache" + }, + "application/reputon+json": { + source: "iana", + compressible: true + }, + "application/resolve-response+jwt": { + source: "iana" + }, + "application/resource-lists+xml": { + source: "iana", + compressible: true, + extensions: ["rl"] + }, + "application/resource-lists-diff+xml": { + source: "iana", + compressible: true, + extensions: ["rld"] + }, + "application/rfc+xml": { + source: "iana", + compressible: true + }, + "application/riscos": { + source: "iana" + }, + "application/rlmi+xml": { + source: "iana", + compressible: true + }, + "application/rls-services+xml": { + source: "iana", + compressible: true, + extensions: ["rs"] + }, + "application/route-apd+xml": { + source: "iana", + compressible: true, + extensions: ["rapd"] + }, + "application/route-s-tsid+xml": { + source: "iana", + compressible: true, + extensions: ["sls"] + }, + "application/route-usd+xml": { + source: "iana", + compressible: true, + extensions: ["rusd"] + }, + "application/rpki-checklist": { + source: "iana" + }, + "application/rpki-ghostbusters": { + source: "iana", + extensions: ["gbr"] + }, + "application/rpki-manifest": { + source: "iana", + extensions: ["mft"] + }, + "application/rpki-publication": { + source: "iana" + }, + "application/rpki-roa": { + source: "iana", + extensions: ["roa"] + }, + "application/rpki-signed-tal": { + source: "iana" + }, + "application/rpki-updown": { + source: "iana" + }, + "application/rsd+xml": { + source: "apache", + compressible: true, + extensions: ["rsd"] + }, + "application/rss+xml": { + source: "apache", + compressible: true, + extensions: ["rss"] + }, + "application/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "application/rtploopback": { + source: "iana" + }, + "application/rtx": { + source: "iana" + }, + "application/samlassertion+xml": { + source: "iana", + compressible: true + }, + "application/samlmetadata+xml": { + source: "iana", + compressible: true + }, + "application/sarif+json": { + source: "iana", + compressible: true + }, + "application/sarif-external-properties+json": { + source: "iana", + compressible: true + }, + "application/sbe": { + source: "iana" + }, + "application/sbml+xml": { + source: "iana", + compressible: true, + extensions: ["sbml"] + }, + "application/scaip+xml": { + source: "iana", + compressible: true + }, + "application/scim+json": { + source: "iana", + compressible: true + }, + "application/scvp-cv-request": { + source: "iana", + extensions: ["scq"] + }, + "application/scvp-cv-response": { + source: "iana", + extensions: ["scs"] + }, + "application/scvp-vp-request": { + source: "iana", + extensions: ["spq"] + }, + "application/scvp-vp-response": { + source: "iana", + extensions: ["spp"] + }, + "application/sdp": { + source: "iana", + extensions: ["sdp"] + }, + "application/secevent+jwt": { + source: "iana" + }, + "application/senml+cbor": { + source: "iana" + }, + "application/senml+json": { + source: "iana", + compressible: true + }, + "application/senml+xml": { + source: "iana", + compressible: true, + extensions: ["senmlx"] + }, + "application/senml-etch+cbor": { + source: "iana" + }, + "application/senml-etch+json": { + source: "iana", + compressible: true + }, + "application/senml-exi": { + source: "iana" + }, + "application/sensml+cbor": { + source: "iana" + }, + "application/sensml+json": { + source: "iana", + compressible: true + }, + "application/sensml+xml": { + source: "iana", + compressible: true, + extensions: ["sensmlx"] + }, + "application/sensml-exi": { + source: "iana" + }, + "application/sep+xml": { + source: "iana", + compressible: true + }, + "application/sep-exi": { + source: "iana" + }, + "application/session-info": { + source: "iana" + }, + "application/set-payment": { + source: "iana" + }, + "application/set-payment-initiation": { + source: "iana", + extensions: ["setpay"] + }, + "application/set-registration": { + source: "iana" + }, + "application/set-registration-initiation": { + source: "iana", + extensions: ["setreg"] + }, + "application/sgml": { + source: "iana" + }, + "application/sgml-open-catalog": { + source: "iana" + }, + "application/shf+xml": { + source: "iana", + compressible: true, + extensions: ["shf"] + }, + "application/sieve": { + source: "iana", + extensions: ["siv", "sieve"] + }, + "application/simple-filter+xml": { + source: "iana", + compressible: true + }, + "application/simple-message-summary": { + source: "iana" + }, + "application/simplesymbolcontainer": { + source: "iana" + }, + "application/sipc": { + source: "iana" + }, + "application/slate": { + source: "iana" + }, + "application/smil": { + source: "apache" + }, + "application/smil+xml": { + source: "iana", + compressible: true, + extensions: ["smi", "smil"] + }, + "application/smpte336m": { + source: "iana" + }, + "application/soap+fastinfoset": { + source: "iana" + }, + "application/soap+xml": { + source: "iana", + compressible: true + }, + "application/sparql-query": { + source: "iana", + extensions: ["rq"] + }, + "application/sparql-results+xml": { + source: "iana", + compressible: true, + extensions: ["srx"] + }, + "application/spdx+json": { + source: "iana", + compressible: true + }, + "application/spirits-event+xml": { + source: "iana", + compressible: true + }, + "application/sql": { + source: "iana", + extensions: ["sql"] + }, + "application/srgs": { + source: "iana", + extensions: ["gram"] + }, + "application/srgs+xml": { + source: "iana", + compressible: true, + extensions: ["grxml"] + }, + "application/sru+xml": { + source: "iana", + compressible: true, + extensions: ["sru"] + }, + "application/ssdl+xml": { + source: "apache", + compressible: true, + extensions: ["ssdl"] + }, + "application/sslkeylogfile": { + source: "iana" + }, + "application/ssml+xml": { + source: "iana", + compressible: true, + extensions: ["ssml"] + }, + "application/st2110-41": { + source: "iana" + }, + "application/stix+json": { + source: "iana", + compressible: true + }, + "application/stratum": { + source: "iana" + }, + "application/swid+cbor": { + source: "iana" + }, + "application/swid+xml": { + source: "iana", + compressible: true, + extensions: ["swidtag"] + }, + "application/tamp-apex-update": { + source: "iana" + }, + "application/tamp-apex-update-confirm": { + source: "iana" + }, + "application/tamp-community-update": { + source: "iana" + }, + "application/tamp-community-update-confirm": { + source: "iana" + }, + "application/tamp-error": { + source: "iana" + }, + "application/tamp-sequence-adjust": { + source: "iana" + }, + "application/tamp-sequence-adjust-confirm": { + source: "iana" + }, + "application/tamp-status-query": { + source: "iana" + }, + "application/tamp-status-response": { + source: "iana" + }, + "application/tamp-update": { + source: "iana" + }, + "application/tamp-update-confirm": { + source: "iana" + }, + "application/tar": { + compressible: true + }, + "application/taxii+json": { + source: "iana", + compressible: true + }, + "application/td+json": { + source: "iana", + compressible: true + }, + "application/tei+xml": { + source: "iana", + compressible: true, + extensions: ["tei", "teicorpus"] + }, + "application/tetra_isi": { + source: "iana" + }, + "application/thraud+xml": { + source: "iana", + compressible: true, + extensions: ["tfi"] + }, + "application/timestamp-query": { + source: "iana" + }, + "application/timestamp-reply": { + source: "iana" + }, + "application/timestamped-data": { + source: "iana", + extensions: ["tsd"] + }, + "application/tlsrpt+gzip": { + source: "iana" + }, + "application/tlsrpt+json": { + source: "iana", + compressible: true + }, + "application/tm+json": { + source: "iana", + compressible: true + }, + "application/tnauthlist": { + source: "iana" + }, + "application/toc+cbor": { + source: "iana" + }, + "application/token-introspection+jwt": { + source: "iana" + }, + "application/toml": { + source: "iana", + compressible: true, + extensions: ["toml"] + }, + "application/trickle-ice-sdpfrag": { + source: "iana" + }, + "application/trig": { + source: "iana", + extensions: ["trig"] + }, + "application/trust-chain+json": { + source: "iana", + compressible: true + }, + "application/trust-mark+jwt": { + source: "iana" + }, + "application/trust-mark-delegation+jwt": { + source: "iana" + }, + "application/ttml+xml": { + source: "iana", + compressible: true, + extensions: ["ttml"] + }, + "application/tve-trigger": { + source: "iana" + }, + "application/tzif": { + source: "iana" + }, + "application/tzif-leap": { + source: "iana" + }, + "application/ubjson": { + compressible: false, + extensions: ["ubj"] + }, + "application/uccs+cbor": { + source: "iana" + }, + "application/ujcs+json": { + source: "iana", + compressible: true + }, + "application/ulpfec": { + source: "iana" + }, + "application/urc-grpsheet+xml": { + source: "iana", + compressible: true + }, + "application/urc-ressheet+xml": { + source: "iana", + compressible: true, + extensions: ["rsheet"] + }, + "application/urc-targetdesc+xml": { + source: "iana", + compressible: true, + extensions: ["td"] + }, + "application/urc-uisocketdesc+xml": { + source: "iana", + compressible: true + }, + "application/vc": { + source: "iana" + }, + "application/vc+cose": { + source: "iana" + }, + "application/vc+jwt": { + source: "iana" + }, + "application/vcard+json": { + source: "iana", + compressible: true + }, + "application/vcard+xml": { + source: "iana", + compressible: true + }, + "application/vemmi": { + source: "iana" + }, + "application/vividence.scriptfile": { + source: "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + source: "iana", + compressible: true, + extensions: ["1km"] + }, + "application/vnd.1ob": { + source: "iana" + }, + "application/vnd.3gpp-prose+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3a+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3ach+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc8+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-v2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.5gnas": { + source: "iana" + }, + "application/vnd.3gpp.5gsa2x": { + source: "iana" + }, + "application/vnd.3gpp.5gsa2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.5gsv2x": { + source: "iana" + }, + "application/vnd.3gpp.5gsv2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.bsf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.crs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.current-location-discovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gmop+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gtpc": { + source: "iana" + }, + "application/vnd.3gpp.interworking-data": { + source: "iana" + }, + "application/vnd.3gpp.lpp": { + source: "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-payload": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-regroup+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-signalling": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-regroup+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-regroup+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mid-call+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ngap": { + source: "iana" + }, + "application/vnd.3gpp.pfcp": { + source: "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + source: "iana", + extensions: ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + source: "iana", + extensions: ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + source: "iana", + extensions: ["pvb"] + }, + "application/vnd.3gpp.pinapp-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.s1ap": { + source: "iana" + }, + "application/vnd.3gpp.seal-group-doc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-network-qos-management-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-ue-config-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-unicast-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-user-profile-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.sms": { + source: "iana" + }, + "application/vnd.3gpp.sms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ussd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.v2x": { + source: "iana" + }, + "application/vnd.3gpp.vae-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.sms": { + source: "iana" + }, + "application/vnd.3gpp2.tcap": { + source: "iana", + extensions: ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + source: "iana" + }, + "application/vnd.3m.post-it-notes": { + source: "iana", + extensions: ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + source: "iana", + extensions: ["aso"] + }, + "application/vnd.accpac.simply.imp": { + source: "iana", + extensions: ["imp"] + }, + "application/vnd.acm.addressxfer+json": { + source: "iana", + compressible: true + }, + "application/vnd.acm.chatbot+json": { + source: "iana", + compressible: true + }, + "application/vnd.acucobol": { + source: "iana", + extensions: ["acu"] + }, + "application/vnd.acucorp": { + source: "iana", + extensions: ["atc", "acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + source: "apache", + compressible: false, + extensions: ["air"] + }, + "application/vnd.adobe.flash.movie": { + source: "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + source: "iana", + extensions: ["fcdt"] + }, + "application/vnd.adobe.fxp": { + source: "iana", + extensions: ["fxp", "fxpl"] + }, + "application/vnd.adobe.partial-upload": { + source: "iana" + }, + "application/vnd.adobe.xdp+xml": { + source: "iana", + compressible: true, + extensions: ["xdp"] + }, + "application/vnd.adobe.xfdf": { + source: "apache", + extensions: ["xfdf"] + }, + "application/vnd.aether.imp": { + source: "iana" + }, + "application/vnd.afpc.afplinedata": { + source: "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + source: "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + source: "iana" + }, + "application/vnd.afpc.foca-charset": { + source: "iana" + }, + "application/vnd.afpc.foca-codedfont": { + source: "iana" + }, + "application/vnd.afpc.foca-codepage": { + source: "iana" + }, + "application/vnd.afpc.modca": { + source: "iana" + }, + "application/vnd.afpc.modca-cmtable": { + source: "iana" + }, + "application/vnd.afpc.modca-formdef": { + source: "iana" + }, + "application/vnd.afpc.modca-mediummap": { + source: "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + source: "iana" + }, + "application/vnd.afpc.modca-overlay": { + source: "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + source: "iana" + }, + "application/vnd.age": { + source: "iana", + extensions: ["age"] + }, + "application/vnd.ah-barcode": { + source: "apache" + }, + "application/vnd.ahead.space": { + source: "iana", + extensions: ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + source: "iana", + extensions: ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + source: "iana", + extensions: ["azs"] + }, + "application/vnd.amadeus+json": { + source: "iana", + compressible: true + }, + "application/vnd.amazon.ebook": { + source: "apache", + extensions: ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + source: "iana" + }, + "application/vnd.americandynamics.acc": { + source: "iana", + extensions: ["acc"] + }, + "application/vnd.amiga.ami": { + source: "iana", + extensions: ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + source: "iana", + compressible: true + }, + "application/vnd.android.ota": { + source: "iana" + }, + "application/vnd.android.package-archive": { + source: "apache", + compressible: false, + extensions: ["apk"] + }, + "application/vnd.anki": { + source: "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + source: "iana", + extensions: ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + source: "apache", + extensions: ["fti"] + }, + "application/vnd.antix.game-component": { + source: "iana", + extensions: ["atx"] + }, + "application/vnd.apache.arrow.file": { + source: "iana" + }, + "application/vnd.apache.arrow.stream": { + source: "iana" + }, + "application/vnd.apache.parquet": { + source: "iana" + }, + "application/vnd.apache.thrift.binary": { + source: "iana" + }, + "application/vnd.apache.thrift.compact": { + source: "iana" + }, + "application/vnd.apache.thrift.json": { + source: "iana" + }, + "application/vnd.apexlang": { + source: "iana" + }, + "application/vnd.api+json": { + source: "iana", + compressible: true + }, + "application/vnd.aplextor.warrp+json": { + source: "iana", + compressible: true + }, + "application/vnd.apothekende.reservation+json": { + source: "iana", + compressible: true + }, + "application/vnd.apple.installer+xml": { + source: "iana", + compressible: true, + extensions: ["mpkg"] + }, + "application/vnd.apple.keynote": { + source: "iana", + extensions: ["key"] + }, + "application/vnd.apple.mpegurl": { + source: "iana", + extensions: ["m3u8"] + }, + "application/vnd.apple.numbers": { + source: "iana", + extensions: ["numbers"] + }, + "application/vnd.apple.pages": { + source: "iana", + extensions: ["pages"] + }, + "application/vnd.apple.pkpass": { + compressible: false, + extensions: ["pkpass"] + }, + "application/vnd.arastra.swi": { + source: "apache" + }, + "application/vnd.aristanetworks.swi": { + source: "iana", + extensions: ["swi"] + }, + "application/vnd.artisan+json": { + source: "iana", + compressible: true + }, + "application/vnd.artsquare": { + source: "iana" + }, + "application/vnd.astraea-software.iota": { + source: "iana", + extensions: ["iota"] + }, + "application/vnd.audiograph": { + source: "iana", + extensions: ["aep"] + }, + "application/vnd.autodesk.fbx": { + extensions: ["fbx"] + }, + "application/vnd.autopackage": { + source: "iana" + }, + "application/vnd.avalon+json": { + source: "iana", + compressible: true + }, + "application/vnd.avistar+xml": { + source: "iana", + compressible: true + }, + "application/vnd.balsamiq.bmml+xml": { + source: "iana", + compressible: true, + extensions: ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + source: "iana" + }, + "application/vnd.banana-accounting": { + source: "iana" + }, + "application/vnd.bbf.usp.error": { + source: "iana" + }, + "application/vnd.bbf.usp.msg": { + source: "iana" + }, + "application/vnd.bbf.usp.msg+json": { + source: "iana", + compressible: true + }, + "application/vnd.bekitzur-stech+json": { + source: "iana", + compressible: true + }, + "application/vnd.belightsoft.lhzd+zip": { + source: "iana", + compressible: false + }, + "application/vnd.belightsoft.lhzl+zip": { + source: "iana", + compressible: false + }, + "application/vnd.bint.med-content": { + source: "iana" + }, + "application/vnd.biopax.rdf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.blink-idb-value-wrapper": { + source: "iana" + }, + "application/vnd.blueice.multipass": { + source: "iana", + extensions: ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + source: "iana" + }, + "application/vnd.bluetooth.le.oob": { + source: "iana" + }, + "application/vnd.bmi": { + source: "iana", + extensions: ["bmi"] + }, + "application/vnd.bpf": { + source: "iana" + }, + "application/vnd.bpf3": { + source: "iana" + }, + "application/vnd.businessobjects": { + source: "iana", + extensions: ["rep"] + }, + "application/vnd.byu.uapi+json": { + source: "iana", + compressible: true + }, + "application/vnd.bzip3": { + source: "iana" + }, + "application/vnd.c3voc.schedule+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cab-jscript": { + source: "iana" + }, + "application/vnd.canon-cpdl": { + source: "iana" + }, + "application/vnd.canon-lips": { + source: "iana" + }, + "application/vnd.capasystems-pg+json": { + source: "iana", + compressible: true + }, + "application/vnd.cendio.thinlinc.clientconf": { + source: "iana" + }, + "application/vnd.century-systems.tcp_stream": { + source: "iana" + }, + "application/vnd.chemdraw+xml": { + source: "iana", + compressible: true, + extensions: ["cdxml"] + }, + "application/vnd.chess-pgn": { + source: "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + source: "iana", + extensions: ["mmd"] + }, + "application/vnd.ciedi": { + source: "iana" + }, + "application/vnd.cinderella": { + source: "iana", + extensions: ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + source: "iana" + }, + "application/vnd.citationstyles.style+xml": { + source: "iana", + compressible: true, + extensions: ["csl"] + }, + "application/vnd.claymore": { + source: "iana", + extensions: ["cla"] + }, + "application/vnd.cloanto.rp9": { + source: "iana", + extensions: ["rp9"] + }, + "application/vnd.clonk.c4group": { + source: "iana", + extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + source: "iana", + extensions: ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + source: "iana", + extensions: ["c11amz"] + }, + "application/vnd.cncf.helm.chart.content.v1.tar+gzip": { + source: "iana" + }, + "application/vnd.cncf.helm.chart.provenance.v1.prov": { + source: "iana" + }, + "application/vnd.cncf.helm.config.v1+json": { + source: "iana", + compressible: true + }, + "application/vnd.coffeescript": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + source: "iana" + }, + "application/vnd.collection+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.doc+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.next+json": { + source: "iana", + compressible: true + }, + "application/vnd.comicbook+zip": { + source: "iana", + compressible: false + }, + "application/vnd.comicbook-rar": { + source: "iana" + }, + "application/vnd.commerce-battelle": { + source: "iana" + }, + "application/vnd.commonspace": { + source: "iana", + extensions: ["csp"] + }, + "application/vnd.contact.cmsg": { + source: "iana", + extensions: ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + source: "iana", + compressible: true + }, + "application/vnd.cosmocaller": { + source: "iana", + extensions: ["cmc"] + }, + "application/vnd.crick.clicker": { + source: "iana", + extensions: ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + source: "iana", + extensions: ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + source: "iana", + extensions: ["clkp"] + }, + "application/vnd.crick.clicker.template": { + source: "iana", + extensions: ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + source: "iana", + extensions: ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + source: "iana", + compressible: true, + extensions: ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + source: "iana", + compressible: true + }, + "application/vnd.crypto-shade-file": { + source: "iana" + }, + "application/vnd.cryptomator.encrypted": { + source: "iana" + }, + "application/vnd.cryptomator.vault": { + source: "iana" + }, + "application/vnd.ctc-posml": { + source: "iana", + extensions: ["pml"] + }, + "application/vnd.ctct.ws+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cups-pdf": { + source: "iana" + }, + "application/vnd.cups-postscript": { + source: "iana" + }, + "application/vnd.cups-ppd": { + source: "iana", + extensions: ["ppd"] + }, + "application/vnd.cups-raster": { + source: "iana" + }, + "application/vnd.cups-raw": { + source: "iana" + }, + "application/vnd.curl": { + source: "iana" + }, + "application/vnd.curl.car": { + source: "apache", + extensions: ["car"] + }, + "application/vnd.curl.pcurl": { + source: "apache", + extensions: ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cybank": { + source: "iana" + }, + "application/vnd.cyclonedx+json": { + source: "iana", + compressible: true + }, + "application/vnd.cyclonedx+xml": { + source: "iana", + compressible: true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + source: "iana", + compressible: false + }, + "application/vnd.d3m-dataset": { + source: "iana" + }, + "application/vnd.d3m-problem": { + source: "iana" + }, + "application/vnd.dart": { + source: "iana", + compressible: true, + extensions: ["dart"] + }, + "application/vnd.data-vision.rdz": { + source: "iana", + extensions: ["rdz"] + }, + "application/vnd.datalog": { + source: "iana" + }, + "application/vnd.datapackage+json": { + source: "iana", + compressible: true + }, + "application/vnd.dataresource+json": { + source: "iana", + compressible: true + }, + "application/vnd.dbf": { + source: "iana", + extensions: ["dbf"] + }, + "application/vnd.dcmp+xml": { + source: "iana", + compressible: true, + extensions: ["dcmp"] + }, + "application/vnd.debian.binary-package": { + source: "iana" + }, + "application/vnd.dece.data": { + source: "iana", + extensions: ["uvf", "uvvf", "uvd", "uvvd"] + }, + "application/vnd.dece.ttml+xml": { + source: "iana", + compressible: true, + extensions: ["uvt", "uvvt"] + }, + "application/vnd.dece.unspecified": { + source: "iana", + extensions: ["uvx", "uvvx"] + }, + "application/vnd.dece.zip": { + source: "iana", + extensions: ["uvz", "uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + source: "iana", + extensions: ["fe_launch"] + }, + "application/vnd.desmume.movie": { + source: "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + source: "iana" + }, + "application/vnd.dm.delegation+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dna": { + source: "iana", + extensions: ["dna"] + }, + "application/vnd.document+json": { + source: "iana", + compressible: true + }, + "application/vnd.dolby.mlp": { + source: "apache", + extensions: ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + source: "iana" + }, + "application/vnd.dolby.mobile.2": { + source: "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + source: "iana" + }, + "application/vnd.dpgraph": { + source: "iana", + extensions: ["dpg"] + }, + "application/vnd.dreamfactory": { + source: "iana", + extensions: ["dfac"] + }, + "application/vnd.drive+json": { + source: "iana", + compressible: true + }, + "application/vnd.ds-keypoint": { + source: "apache", + extensions: ["kpxx"] + }, + "application/vnd.dtg.local": { + source: "iana" + }, + "application/vnd.dtg.local.flash": { + source: "iana" + }, + "application/vnd.dtg.local.html": { + source: "iana" + }, + "application/vnd.dvb.ait": { + source: "iana", + extensions: ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.dvbj": { + source: "iana" + }, + "application/vnd.dvb.esgcontainer": { + source: "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + source: "iana" + }, + "application/vnd.dvb.ipdcroaming": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + source: "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-container+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-generic+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-init+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.pfr": { + source: "iana" + }, + "application/vnd.dvb.service": { + source: "iana", + extensions: ["svc"] + }, + "application/vnd.dxr": { + source: "iana" + }, + "application/vnd.dynageo": { + source: "iana", + extensions: ["geo"] + }, + "application/vnd.dzr": { + source: "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + source: "iana" + }, + "application/vnd.ecdis-update": { + source: "iana" + }, + "application/vnd.ecip.rlp": { + source: "iana" + }, + "application/vnd.eclipse.ditto+json": { + source: "iana", + compressible: true + }, + "application/vnd.ecowin.chart": { + source: "iana", + extensions: ["mag"] + }, + "application/vnd.ecowin.filerequest": { + source: "iana" + }, + "application/vnd.ecowin.fileupdate": { + source: "iana" + }, + "application/vnd.ecowin.series": { + source: "iana" + }, + "application/vnd.ecowin.seriesrequest": { + source: "iana" + }, + "application/vnd.ecowin.seriesupdate": { + source: "iana" + }, + "application/vnd.efi.img": { + source: "iana" + }, + "application/vnd.efi.iso": { + source: "iana" + }, + "application/vnd.eln+zip": { + source: "iana", + compressible: false + }, + "application/vnd.emclient.accessrequest+xml": { + source: "iana", + compressible: true + }, + "application/vnd.enliven": { + source: "iana", + extensions: ["nml"] + }, + "application/vnd.enphase.envoy": { + source: "iana" + }, + "application/vnd.eprints.data+xml": { + source: "iana", + compressible: true + }, + "application/vnd.epson.esf": { + source: "iana", + extensions: ["esf"] + }, + "application/vnd.epson.msf": { + source: "iana", + extensions: ["msf"] + }, + "application/vnd.epson.quickanime": { + source: "iana", + extensions: ["qam"] + }, + "application/vnd.epson.salt": { + source: "iana", + extensions: ["slt"] + }, + "application/vnd.epson.ssf": { + source: "iana", + extensions: ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + source: "iana" + }, + "application/vnd.erofs": { + source: "iana" + }, + "application/vnd.espass-espass+zip": { + source: "iana", + compressible: false + }, + "application/vnd.eszigno3+xml": { + source: "iana", + compressible: true, + extensions: ["es3", "et3"] + }, + "application/vnd.etsi.aoc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.asic-e+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.asic-s+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.cug+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvcommand+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvservice+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsync+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mcid+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mheg5": { + source: "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.pstn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.sci+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.simservs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.timestamp-token": { + source: "iana" + }, + "application/vnd.etsi.tsl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.tsl.der": { + source: "iana" + }, + "application/vnd.eu.kasparian.car+json": { + source: "iana", + compressible: true + }, + "application/vnd.eudora.data": { + source: "iana" + }, + "application/vnd.evolv.ecig.profile": { + source: "iana" + }, + "application/vnd.evolv.ecig.settings": { + source: "iana" + }, + "application/vnd.evolv.ecig.theme": { + source: "iana" + }, + "application/vnd.exstream-empower+zip": { + source: "iana", + compressible: false + }, + "application/vnd.exstream-package": { + source: "iana" + }, + "application/vnd.ezpix-album": { + source: "iana", + extensions: ["ez2"] + }, + "application/vnd.ezpix-package": { + source: "iana", + extensions: ["ez3"] + }, + "application/vnd.f-secure.mobile": { + source: "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + source: "iana", + compressible: false + }, + "application/vnd.fastcopy-disk-image": { + source: "iana" + }, + "application/vnd.fdf": { + source: "apache", + extensions: ["fdf"] + }, + "application/vnd.fdsn.mseed": { + source: "iana", + extensions: ["mseed"] + }, + "application/vnd.fdsn.seed": { + source: "iana", + extensions: ["seed", "dataless"] + }, + "application/vnd.fdsn.stationxml+xml": { + source: "iana", + charset: "XML-BASED", + compressible: true + }, + "application/vnd.ffsns": { + source: "iana" + }, + "application/vnd.ficlab.flb+zip": { + source: "iana", + compressible: false + }, + "application/vnd.filmit.zfc": { + source: "iana" + }, + "application/vnd.fints": { + source: "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + source: "iana" + }, + "application/vnd.flographit": { + source: "iana", + extensions: ["gph"] + }, + "application/vnd.fluxtime.clip": { + source: "iana", + extensions: ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + source: "iana" + }, + "application/vnd.framemaker": { + source: "iana", + extensions: ["fm", "frame", "maker", "book"] + }, + "application/vnd.freelog.comic": { + source: "iana" + }, + "application/vnd.frogans.fnc": { + source: "apache", + extensions: ["fnc"] + }, + "application/vnd.frogans.ltf": { + source: "apache", + extensions: ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + source: "iana", + extensions: ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + source: "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.fujitsu.oasys": { + source: "iana", + extensions: ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + source: "iana", + extensions: ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + source: "iana", + extensions: ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + source: "iana", + extensions: ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + source: "iana", + extensions: ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + source: "iana" + }, + "application/vnd.fujixerox.art4": { + source: "iana" + }, + "application/vnd.fujixerox.ddd": { + source: "iana", + extensions: ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + source: "iana", + extensions: ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + source: "iana", + extensions: ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + source: "iana" + }, + "application/vnd.fujixerox.hbpl": { + source: "iana" + }, + "application/vnd.fut-misnet": { + source: "iana" + }, + "application/vnd.futoin+cbor": { + source: "iana" + }, + "application/vnd.futoin+json": { + source: "iana", + compressible: true + }, + "application/vnd.fuzzysheet": { + source: "iana", + extensions: ["fzs"] + }, + "application/vnd.ga4gh.passport+jwt": { + source: "iana" + }, + "application/vnd.genomatix.tuxedo": { + source: "iana", + extensions: ["txd"] + }, + "application/vnd.genozip": { + source: "iana" + }, + "application/vnd.gentics.grd+json": { + source: "iana", + compressible: true + }, + "application/vnd.gentoo.catmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.gentoo.ebuild": { + source: "iana" + }, + "application/vnd.gentoo.eclass": { + source: "iana" + }, + "application/vnd.gentoo.gpkg": { + source: "iana" + }, + "application/vnd.gentoo.manifest": { + source: "iana" + }, + "application/vnd.gentoo.pkgmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.gentoo.xpak": { + source: "iana" + }, + "application/vnd.geo+json": { + source: "apache", + compressible: true + }, + "application/vnd.geocube+xml": { + source: "apache", + compressible: true + }, + "application/vnd.geogebra.file": { + source: "iana", + extensions: ["ggb"] + }, + "application/vnd.geogebra.pinboard": { + source: "iana" + }, + "application/vnd.geogebra.slides": { + source: "iana", + extensions: ["ggs"] + }, + "application/vnd.geogebra.tool": { + source: "iana", + extensions: ["ggt"] + }, + "application/vnd.geometry-explorer": { + source: "iana", + extensions: ["gex", "gre"] + }, + "application/vnd.geonext": { + source: "iana", + extensions: ["gxt"] + }, + "application/vnd.geoplan": { + source: "iana", + extensions: ["g2w"] + }, + "application/vnd.geospace": { + source: "iana", + extensions: ["g3w"] + }, + "application/vnd.gerber": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + source: "iana" + }, + "application/vnd.gmx": { + source: "iana", + extensions: ["gmx"] + }, + "application/vnd.gnu.taler.exchange+json": { + source: "iana", + compressible: true + }, + "application/vnd.gnu.taler.merchant+json": { + source: "iana", + compressible: true + }, + "application/vnd.google-apps.audio": {}, + "application/vnd.google-apps.document": { + compressible: false, + extensions: ["gdoc"] + }, + "application/vnd.google-apps.drawing": { + compressible: false, + extensions: ["gdraw"] + }, + "application/vnd.google-apps.drive-sdk": { + compressible: false + }, + "application/vnd.google-apps.file": {}, + "application/vnd.google-apps.folder": { + compressible: false + }, + "application/vnd.google-apps.form": { + compressible: false, + extensions: ["gform"] + }, + "application/vnd.google-apps.fusiontable": {}, + "application/vnd.google-apps.jam": { + compressible: false, + extensions: ["gjam"] + }, + "application/vnd.google-apps.mail-layout": {}, + "application/vnd.google-apps.map": { + compressible: false, + extensions: ["gmap"] + }, + "application/vnd.google-apps.photo": {}, + "application/vnd.google-apps.presentation": { + compressible: false, + extensions: ["gslides"] + }, + "application/vnd.google-apps.script": { + compressible: false, + extensions: ["gscript"] + }, + "application/vnd.google-apps.shortcut": {}, + "application/vnd.google-apps.site": { + compressible: false, + extensions: ["gsite"] + }, + "application/vnd.google-apps.spreadsheet": { + compressible: false, + extensions: ["gsheet"] + }, + "application/vnd.google-apps.unknown": {}, + "application/vnd.google-apps.video": {}, + "application/vnd.google-earth.kml+xml": { + source: "iana", + compressible: true, + extensions: ["kml"] + }, + "application/vnd.google-earth.kmz": { + source: "iana", + compressible: false, + extensions: ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + source: "apache", + compressible: true + }, + "application/vnd.gov.sk.e-form+zip": { + source: "iana", + compressible: false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + source: "iana", + compressible: true, + extensions: ["xdcf"] + }, + "application/vnd.gpxsee.map+xml": { + source: "iana", + compressible: true + }, + "application/vnd.grafeq": { + source: "iana", + extensions: ["gqf", "gqs"] + }, + "application/vnd.gridmp": { + source: "iana" + }, + "application/vnd.groove-account": { + source: "iana", + extensions: ["gac"] + }, + "application/vnd.groove-help": { + source: "iana", + extensions: ["ghf"] + }, + "application/vnd.groove-identity-message": { + source: "iana", + extensions: ["gim"] + }, + "application/vnd.groove-injector": { + source: "iana", + extensions: ["grv"] + }, + "application/vnd.groove-tool-message": { + source: "iana", + extensions: ["gtm"] + }, + "application/vnd.groove-tool-template": { + source: "iana", + extensions: ["tpl"] + }, + "application/vnd.groove-vcard": { + source: "iana", + extensions: ["vcg"] + }, + "application/vnd.hal+json": { + source: "iana", + compressible: true + }, + "application/vnd.hal+xml": { + source: "iana", + compressible: true, + extensions: ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + source: "iana", + compressible: true, + extensions: ["zmm"] + }, + "application/vnd.hbci": { + source: "iana", + extensions: ["hbci"] + }, + "application/vnd.hc+json": { + source: "iana", + compressible: true + }, + "application/vnd.hcl-bireports": { + source: "iana" + }, + "application/vnd.hdt": { + source: "iana" + }, + "application/vnd.heroku+json": { + source: "iana", + compressible: true + }, + "application/vnd.hhe.lesson-player": { + source: "iana", + extensions: ["les"] + }, + "application/vnd.hp-hpgl": { + source: "iana", + extensions: ["hpgl"] + }, + "application/vnd.hp-hpid": { + source: "iana", + extensions: ["hpid"] + }, + "application/vnd.hp-hps": { + source: "iana", + extensions: ["hps"] + }, + "application/vnd.hp-jlyt": { + source: "iana", + extensions: ["jlt"] + }, + "application/vnd.hp-pcl": { + source: "iana", + extensions: ["pcl"] + }, + "application/vnd.hp-pclxl": { + source: "iana", + extensions: ["pclxl"] + }, + "application/vnd.hsl": { + source: "iana" + }, + "application/vnd.httphone": { + source: "iana" + }, + "application/vnd.hydrostatix.sof-data": { + source: "iana", + extensions: ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyper-item+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyperdrive+json": { + source: "iana", + compressible: true + }, + "application/vnd.hzn-3d-crossword": { + source: "iana" + }, + "application/vnd.ibm.afplinedata": { + source: "apache" + }, + "application/vnd.ibm.electronic-media": { + source: "iana" + }, + "application/vnd.ibm.minipay": { + source: "iana", + extensions: ["mpy"] + }, + "application/vnd.ibm.modcap": { + source: "apache", + extensions: ["afp", "listafp", "list3820"] + }, + "application/vnd.ibm.rights-management": { + source: "iana", + extensions: ["irm"] + }, + "application/vnd.ibm.secure-container": { + source: "iana", + extensions: ["sc"] + }, + "application/vnd.iccprofile": { + source: "iana", + extensions: ["icc", "icm"] + }, + "application/vnd.ieee.1905": { + source: "iana" + }, + "application/vnd.igloader": { + source: "iana", + extensions: ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + source: "iana", + compressible: false + }, + "application/vnd.imagemeter.image+zip": { + source: "iana", + compressible: false + }, + "application/vnd.immervision-ivp": { + source: "iana", + extensions: ["ivp"] + }, + "application/vnd.immervision-ivu": { + source: "iana", + extensions: ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + source: "iana" + }, + "application/vnd.ims.imsccv1p2": { + source: "iana" + }, + "application/vnd.ims.imsccv1p3": { + source: "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + source: "iana", + compressible: true + }, + "application/vnd.informedcontrol.rms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.informix-visionary": { + source: "apache" + }, + "application/vnd.infotech.project": { + source: "iana" + }, + "application/vnd.infotech.project+xml": { + source: "iana", + compressible: true + }, + "application/vnd.innopath.wamp.notification": { + source: "iana" + }, + "application/vnd.insors.igm": { + source: "iana", + extensions: ["igm"] + }, + "application/vnd.intercon.formnet": { + source: "iana", + extensions: ["xpw", "xpx"] + }, + "application/vnd.intergeo": { + source: "iana", + extensions: ["i2g"] + }, + "application/vnd.intertrust.digibox": { + source: "iana" + }, + "application/vnd.intertrust.nncp": { + source: "iana" + }, + "application/vnd.intu.qbo": { + source: "iana", + extensions: ["qbo"] + }, + "application/vnd.intu.qfx": { + source: "iana", + extensions: ["qfx"] + }, + "application/vnd.ipfs.ipns-record": { + source: "iana" + }, + "application/vnd.ipld.car": { + source: "iana" + }, + "application/vnd.ipld.dag-cbor": { + source: "iana" + }, + "application/vnd.ipld.dag-json": { + source: "iana" + }, + "application/vnd.ipld.raw": { + source: "iana" + }, + "application/vnd.iptc.g2.catalogitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.packageitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.planningitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ipunplugged.rcprofile": { + source: "iana", + extensions: ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + source: "iana", + compressible: true, + extensions: ["irp"] + }, + "application/vnd.is-xpr": { + source: "iana", + extensions: ["xpr"] + }, + "application/vnd.isac.fcs": { + source: "iana", + extensions: ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + source: "iana", + compressible: false + }, + "application/vnd.jam": { + source: "iana", + extensions: ["jam"] + }, + "application/vnd.japannet-directory-service": { + source: "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-payment-wakeup": { + source: "iana" + }, + "application/vnd.japannet-registration": { + source: "iana" + }, + "application/vnd.japannet-registration-wakeup": { + source: "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-verification": { + source: "iana" + }, + "application/vnd.japannet-verification-wakeup": { + source: "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + source: "iana", + extensions: ["rms"] + }, + "application/vnd.jisp": { + source: "iana", + extensions: ["jisp"] + }, + "application/vnd.joost.joda-archive": { + source: "iana", + extensions: ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + source: "iana" + }, + "application/vnd.kahootz": { + source: "iana", + extensions: ["ktz", "ktr"] + }, + "application/vnd.kde.karbon": { + source: "iana", + extensions: ["karbon"] + }, + "application/vnd.kde.kchart": { + source: "iana", + extensions: ["chrt"] + }, + "application/vnd.kde.kformula": { + source: "iana", + extensions: ["kfo"] + }, + "application/vnd.kde.kivio": { + source: "iana", + extensions: ["flw"] + }, + "application/vnd.kde.kontour": { + source: "iana", + extensions: ["kon"] + }, + "application/vnd.kde.kpresenter": { + source: "iana", + extensions: ["kpr", "kpt"] + }, + "application/vnd.kde.kspread": { + source: "iana", + extensions: ["ksp"] + }, + "application/vnd.kde.kword": { + source: "iana", + extensions: ["kwd", "kwt"] + }, + "application/vnd.kdl": { + source: "iana" + }, + "application/vnd.kenameaapp": { + source: "iana", + extensions: ["htke"] + }, + "application/vnd.keyman.kmp+zip": { + source: "iana", + compressible: false + }, + "application/vnd.keyman.kmx": { + source: "iana" + }, + "application/vnd.kidspiration": { + source: "iana", + extensions: ["kia"] + }, + "application/vnd.kinar": { + source: "iana", + extensions: ["kne", "knp"] + }, + "application/vnd.koan": { + source: "iana", + extensions: ["skp", "skd", "skt", "skm"] + }, + "application/vnd.kodak-descriptor": { + source: "iana", + extensions: ["sse"] + }, + "application/vnd.las": { + source: "iana" + }, + "application/vnd.las.las+json": { + source: "iana", + compressible: true + }, + "application/vnd.las.las+xml": { + source: "iana", + compressible: true, + extensions: ["lasxml"] + }, + "application/vnd.laszip": { + source: "iana" + }, + "application/vnd.ldev.productlicensing": { + source: "iana" + }, + "application/vnd.leap+json": { + source: "iana", + compressible: true + }, + "application/vnd.liberty-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + source: "iana", + extensions: ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + source: "iana", + compressible: true, + extensions: ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + source: "iana", + compressible: false + }, + "application/vnd.loom": { + source: "iana" + }, + "application/vnd.lotus-1-2-3": { + source: "iana", + extensions: ["123"] + }, + "application/vnd.lotus-approach": { + source: "iana", + extensions: ["apr"] + }, + "application/vnd.lotus-freelance": { + source: "iana", + extensions: ["pre"] + }, + "application/vnd.lotus-notes": { + source: "iana", + extensions: ["nsf"] + }, + "application/vnd.lotus-organizer": { + source: "iana", + extensions: ["org"] + }, + "application/vnd.lotus-screencam": { + source: "iana", + extensions: ["scm"] + }, + "application/vnd.lotus-wordpro": { + source: "iana", + extensions: ["lwp"] + }, + "application/vnd.macports.portpkg": { + source: "iana", + extensions: ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + source: "iana", + extensions: ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.conftoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.license+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.mdcf": { + source: "iana" + }, + "application/vnd.mason+json": { + source: "iana", + compressible: true + }, + "application/vnd.maxar.archive.3tz+zip": { + source: "iana", + compressible: false + }, + "application/vnd.maxmind.maxmind-db": { + source: "iana" + }, + "application/vnd.mcd": { + source: "iana", + extensions: ["mcd"] + }, + "application/vnd.mdl": { + source: "iana" + }, + "application/vnd.mdl-mbsdf": { + source: "iana" + }, + "application/vnd.medcalcdata": { + source: "iana", + extensions: ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + source: "iana", + extensions: ["cdkey"] + }, + "application/vnd.medicalholodeck.recordxr": { + source: "iana" + }, + "application/vnd.meridian-slingshot": { + source: "iana" + }, + "application/vnd.mermaid": { + source: "iana" + }, + "application/vnd.mfer": { + source: "iana", + extensions: ["mwf"] + }, + "application/vnd.mfmp": { + source: "iana", + extensions: ["mfm"] + }, + "application/vnd.micro+json": { + source: "iana", + compressible: true + }, + "application/vnd.micrografx.flo": { + source: "iana", + extensions: ["flo"] + }, + "application/vnd.micrografx.igx": { + source: "iana", + extensions: ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + source: "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + source: "iana" + }, + "application/vnd.miele+json": { + source: "iana", + compressible: true + }, + "application/vnd.mif": { + source: "iana", + extensions: ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + source: "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + source: "iana" + }, + "application/vnd.mobius.daf": { + source: "iana", + extensions: ["daf"] + }, + "application/vnd.mobius.dis": { + source: "iana", + extensions: ["dis"] + }, + "application/vnd.mobius.mbk": { + source: "iana", + extensions: ["mbk"] + }, + "application/vnd.mobius.mqy": { + source: "iana", + extensions: ["mqy"] + }, + "application/vnd.mobius.msl": { + source: "iana", + extensions: ["msl"] + }, + "application/vnd.mobius.plc": { + source: "iana", + extensions: ["plc"] + }, + "application/vnd.mobius.txf": { + source: "iana", + extensions: ["txf"] + }, + "application/vnd.modl": { + source: "iana" + }, + "application/vnd.mophun.application": { + source: "iana", + extensions: ["mpn"] + }, + "application/vnd.mophun.certificate": { + source: "iana", + extensions: ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + source: "iana" + }, + "application/vnd.motorola.iprm": { + source: "iana" + }, + "application/vnd.mozilla.xul+xml": { + source: "iana", + compressible: true, + extensions: ["xul"] + }, + "application/vnd.ms-3mfdocument": { + source: "iana" + }, + "application/vnd.ms-artgalry": { + source: "iana", + extensions: ["cil"] + }, + "application/vnd.ms-asf": { + source: "iana" + }, + "application/vnd.ms-cab-compressed": { + source: "iana", + extensions: ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + source: "apache" + }, + "application/vnd.ms-excel": { + source: "iana", + compressible: false, + extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + source: "iana", + extensions: ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + source: "iana", + extensions: ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + source: "iana", + extensions: ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + source: "iana", + extensions: ["xltm"] + }, + "application/vnd.ms-fontobject": { + source: "iana", + compressible: true, + extensions: ["eot"] + }, + "application/vnd.ms-htmlhelp": { + source: "iana", + extensions: ["chm"] + }, + "application/vnd.ms-ims": { + source: "iana", + extensions: ["ims"] + }, + "application/vnd.ms-lrm": { + source: "iana", + extensions: ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-officetheme": { + source: "iana", + extensions: ["thmx"] + }, + "application/vnd.ms-opentype": { + source: "apache", + compressible: true + }, + "application/vnd.ms-outlook": { + compressible: false, + extensions: ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + source: "apache" + }, + "application/vnd.ms-pki.seccat": { + source: "apache", + extensions: ["cat"] + }, + "application/vnd.ms-pki.stl": { + source: "apache", + extensions: ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-powerpoint": { + source: "iana", + compressible: false, + extensions: ["ppt", "pps", "pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + source: "iana", + extensions: ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + source: "iana", + extensions: ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + source: "iana", + extensions: ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + source: "iana", + extensions: ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + source: "iana", + extensions: ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-printing.printticket+xml": { + source: "apache", + compressible: true + }, + "application/vnd.ms-printschematicket+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-project": { + source: "iana", + extensions: ["mpp", "mpt"] + }, + "application/vnd.ms-tnef": { + source: "iana" + }, + "application/vnd.ms-visio.viewer": { + extensions: ["vdx"] + }, + "application/vnd.ms-windows.devicepairing": { + source: "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + source: "iana" + }, + "application/vnd.ms-windows.printerpairing": { + source: "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + source: "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + source: "iana", + extensions: ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + source: "iana", + extensions: ["dotm"] + }, + "application/vnd.ms-works": { + source: "iana", + extensions: ["wps", "wks", "wcm", "wdb"] + }, + "application/vnd.ms-wpl": { + source: "iana", + extensions: ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + source: "iana", + compressible: false, + extensions: ["xps"] + }, + "application/vnd.msa-disk-image": { + source: "iana" + }, + "application/vnd.mseq": { + source: "iana", + extensions: ["mseq"] + }, + "application/vnd.msgpack": { + source: "iana" + }, + "application/vnd.msign": { + source: "iana" + }, + "application/vnd.multiad.creator": { + source: "iana" + }, + "application/vnd.multiad.creator.cif": { + source: "iana" + }, + "application/vnd.music-niff": { + source: "iana" + }, + "application/vnd.musician": { + source: "iana", + extensions: ["mus"] + }, + "application/vnd.muvee.style": { + source: "iana", + extensions: ["msty"] + }, + "application/vnd.mynfc": { + source: "iana", + extensions: ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + source: "iana", + compressible: true + }, + "application/vnd.nato.bindingdataobject+cbor": { + source: "iana" + }, + "application/vnd.nato.bindingdataobject+json": { + source: "iana", + compressible: true + }, + "application/vnd.nato.bindingdataobject+xml": { + source: "iana", + compressible: true, + extensions: ["bdo"] + }, + "application/vnd.nato.openxmlformats-package.iepd+zip": { + source: "iana", + compressible: false + }, + "application/vnd.ncd.control": { + source: "iana" + }, + "application/vnd.ncd.reference": { + source: "iana" + }, + "application/vnd.nearst.inv+json": { + source: "iana", + compressible: true + }, + "application/vnd.nebumind.line": { + source: "iana" + }, + "application/vnd.nervana": { + source: "iana" + }, + "application/vnd.netfpx": { + source: "iana" + }, + "application/vnd.neurolanguage.nlu": { + source: "iana", + extensions: ["nlu"] + }, + "application/vnd.nimn": { + source: "iana" + }, + "application/vnd.nintendo.nitro.rom": { + source: "iana" + }, + "application/vnd.nintendo.snes.rom": { + source: "iana" + }, + "application/vnd.nitf": { + source: "iana", + extensions: ["ntf", "nitf"] + }, + "application/vnd.noblenet-directory": { + source: "iana", + extensions: ["nnd"] + }, + "application/vnd.noblenet-sealer": { + source: "iana", + extensions: ["nns"] + }, + "application/vnd.noblenet-web": { + source: "iana", + extensions: ["nnw"] + }, + "application/vnd.nokia.catalogs": { + source: "iana" + }, + "application/vnd.nokia.conml+wbxml": { + source: "iana" + }, + "application/vnd.nokia.conml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.iptv.config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.isds-radio-presets": { + source: "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + source: "iana" + }, + "application/vnd.nokia.landmark+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.landmarkcollection+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.n-gage.ac+xml": { + source: "iana", + compressible: true, + extensions: ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + source: "iana", + extensions: ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + source: "apache", + extensions: ["n-gage"] + }, + "application/vnd.nokia.ncd": { + source: "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + source: "iana" + }, + "application/vnd.nokia.pcd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.radio-preset": { + source: "iana", + extensions: ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + source: "iana", + extensions: ["rpss"] + }, + "application/vnd.novadigm.edm": { + source: "iana", + extensions: ["edm"] + }, + "application/vnd.novadigm.edx": { + source: "iana", + extensions: ["edx"] + }, + "application/vnd.novadigm.ext": { + source: "iana", + extensions: ["ext"] + }, + "application/vnd.ntt-local.content-share": { + source: "iana" + }, + "application/vnd.ntt-local.file-transfer": { + source: "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + source: "iana" + }, + "application/vnd.oai.workflows": { + source: "iana" + }, + "application/vnd.oai.workflows+json": { + source: "iana", + compressible: true + }, + "application/vnd.oai.workflows+yaml": { + source: "iana" + }, + "application/vnd.oasis.opendocument.base": { + source: "iana" + }, + "application/vnd.oasis.opendocument.chart": { + source: "iana", + extensions: ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + source: "iana", + extensions: ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + source: "apache", + extensions: ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + source: "iana", + extensions: ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + source: "iana", + extensions: ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + source: "iana", + compressible: false, + extensions: ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + source: "iana", + extensions: ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + source: "iana", + extensions: ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + source: "iana", + extensions: ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + source: "iana", + compressible: false, + extensions: ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + source: "iana", + extensions: ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + source: "iana", + compressible: false, + extensions: ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + source: "iana", + extensions: ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + source: "iana", + compressible: false, + extensions: ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + source: "iana", + extensions: ["odm"] + }, + "application/vnd.oasis.opendocument.text-master-template": { + source: "iana" + }, + "application/vnd.oasis.opendocument.text-template": { + source: "iana", + extensions: ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + source: "iana", + extensions: ["oth"] + }, + "application/vnd.obn": { + source: "iana" + }, + "application/vnd.ocf+cbor": { + source: "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + source: "iana", + compressible: true + }, + "application/vnd.oftn.l10n+json": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.cspg-hexbinary": { + source: "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.dae.xhtml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.pae.gem": { + source: "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.spdlist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.ueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.userprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.olpc-sugar": { + source: "iana", + extensions: ["xo"] + }, + "application/vnd.oma-scws-config": { + source: "iana" + }, + "application/vnd.oma-scws-http-request": { + source: "iana" + }, + "application/vnd.oma-scws-http-response": { + source: "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + source: "apache", + compressible: true + }, + "application/vnd.oma.bcast.imd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.ltkm": { + source: "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + source: "iana" + }, + "application/vnd.oma.bcast.sgboot": { + source: "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sgdu": { + source: "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + source: "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + source: "apache", + compressible: true + }, + "application/vnd.oma.bcast.sprov+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.stkm": { + source: "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-feature-handler+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-pcc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-subs-invite+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-user-prefs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.dcd": { + source: "iana" + }, + "application/vnd.oma.dcdc": { + source: "iana" + }, + "application/vnd.oma.dd2+xml": { + source: "iana", + compressible: true, + extensions: ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.group-usage-list+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+cbor": { + source: "iana" + }, + "application/vnd.oma.lwm2m+json": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+tlv": { + source: "iana" + }, + "application/vnd.oma.pal+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.final-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.groups+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.push": { + source: "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.xcap-directory+xml": { + source: "iana", + compressible: true + }, + "application/vnd.omads-email+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-file+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-folder+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omaloc-supl-init": { + source: "iana" + }, + "application/vnd.onepager": { + source: "iana" + }, + "application/vnd.onepagertamp": { + source: "iana" + }, + "application/vnd.onepagertamx": { + source: "iana" + }, + "application/vnd.onepagertat": { + source: "iana" + }, + "application/vnd.onepagertatp": { + source: "iana" + }, + "application/vnd.onepagertatx": { + source: "iana" + }, + "application/vnd.onvif.metadata": { + source: "iana" + }, + "application/vnd.openblox.game+xml": { + source: "iana", + compressible: true, + extensions: ["obgx"] + }, + "application/vnd.openblox.game-binary": { + source: "iana" + }, + "application/vnd.openeye.oeb": { + source: "iana" + }, + "application/vnd.openofficeorg.extension": { + source: "apache", + extensions: ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + source: "iana", + compressible: true, + extensions: ["osm"] + }, + "application/vnd.opentimestamps.ots": { + source: "iana" + }, + "application/vnd.openvpi.dspx+json": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + source: "iana", + compressible: false, + extensions: ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + source: "iana", + extensions: ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + source: "iana", + extensions: ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + source: "iana", + extensions: ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + source: "iana", + compressible: false, + extensions: ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + source: "iana", + extensions: ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + source: "iana", + compressible: false, + extensions: ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + source: "iana", + extensions: ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oracle.resource+json": { + source: "iana", + compressible: true + }, + "application/vnd.orange.indata": { + source: "iana" + }, + "application/vnd.osa.netdeploy": { + source: "iana" + }, + "application/vnd.osgeo.mapguide.package": { + source: "iana", + extensions: ["mgp"] + }, + "application/vnd.osgi.bundle": { + source: "iana" + }, + "application/vnd.osgi.dp": { + source: "iana", + extensions: ["dp"] + }, + "application/vnd.osgi.subsystem": { + source: "iana", + extensions: ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oxli.countgraph": { + source: "iana" + }, + "application/vnd.pagerduty+json": { + source: "iana", + compressible: true + }, + "application/vnd.palm": { + source: "iana", + extensions: ["pdb", "pqa", "oprc"] + }, + "application/vnd.panoply": { + source: "iana" + }, + "application/vnd.paos.xml": { + source: "iana" + }, + "application/vnd.patentdive": { + source: "iana" + }, + "application/vnd.patientecommsdoc": { + source: "iana" + }, + "application/vnd.pawaafile": { + source: "iana", + extensions: ["paw"] + }, + "application/vnd.pcos": { + source: "iana" + }, + "application/vnd.pg.format": { + source: "iana", + extensions: ["str"] + }, + "application/vnd.pg.osasli": { + source: "iana", + extensions: ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + source: "iana" + }, + "application/vnd.picsel": { + source: "iana", + extensions: ["efif"] + }, + "application/vnd.pmi.widget": { + source: "iana", + extensions: ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + source: "iana", + compressible: true + }, + "application/vnd.pocketlearn": { + source: "iana", + extensions: ["plf"] + }, + "application/vnd.powerbuilder6": { + source: "iana", + extensions: ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + source: "iana" + }, + "application/vnd.powerbuilder7": { + source: "iana" + }, + "application/vnd.powerbuilder7-s": { + source: "iana" + }, + "application/vnd.powerbuilder75": { + source: "iana" + }, + "application/vnd.powerbuilder75-s": { + source: "iana" + }, + "application/vnd.preminet": { + source: "iana" + }, + "application/vnd.previewsystems.box": { + source: "iana", + extensions: ["box"] + }, + "application/vnd.procrate.brushset": { + extensions: ["brushset"] + }, + "application/vnd.procreate.brush": { + extensions: ["brush"] + }, + "application/vnd.procreate.dream": { + extensions: ["drm"] + }, + "application/vnd.proteus.magazine": { + source: "iana", + extensions: ["mgz"] + }, + "application/vnd.psfs": { + source: "iana" + }, + "application/vnd.pt.mundusmundi": { + source: "iana" + }, + "application/vnd.publishare-delta-tree": { + source: "iana", + extensions: ["qps"] + }, + "application/vnd.pvi.ptid1": { + source: "iana", + extensions: ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + source: "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + source: "iana", + compressible: true, + extensions: ["xhtm"] + }, + "application/vnd.qualcomm.brew-app-res": { + source: "iana" + }, + "application/vnd.quarantainenet": { + source: "iana" + }, + "application/vnd.quark.quarkxpress": { + source: "iana", + extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"] + }, + "application/vnd.quobject-quoxdocument": { + source: "iana" + }, + "application/vnd.radisys.moml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + source: "iana", + compressible: true + }, + "application/vnd.rainstor.data": { + source: "iana" + }, + "application/vnd.rapid": { + source: "iana" + }, + "application/vnd.rar": { + source: "iana", + extensions: ["rar"] + }, + "application/vnd.realvnc.bed": { + source: "iana", + extensions: ["bed"] + }, + "application/vnd.recordare.musicxml": { + source: "iana", + extensions: ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + source: "iana", + compressible: true, + extensions: ["musicxml"] + }, + "application/vnd.relpipe": { + source: "iana" + }, + "application/vnd.renlearn.rlprint": { + source: "iana" + }, + "application/vnd.resilient.logic": { + source: "iana" + }, + "application/vnd.restful+json": { + source: "iana", + compressible: true + }, + "application/vnd.rig.cryptonote": { + source: "iana", + extensions: ["cryptonote"] + }, + "application/vnd.rim.cod": { + source: "apache", + extensions: ["cod"] + }, + "application/vnd.rn-realmedia": { + source: "apache", + extensions: ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + source: "apache", + extensions: ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + source: "iana", + compressible: true, + extensions: ["link66"] + }, + "application/vnd.rs-274x": { + source: "iana" + }, + "application/vnd.ruckus.download": { + source: "iana" + }, + "application/vnd.s3sms": { + source: "iana" + }, + "application/vnd.sailingtracker.track": { + source: "iana", + extensions: ["st"] + }, + "application/vnd.sar": { + source: "iana" + }, + "application/vnd.sbm.cid": { + source: "iana" + }, + "application/vnd.sbm.mid2": { + source: "iana" + }, + "application/vnd.scribus": { + source: "iana" + }, + "application/vnd.sealed.3df": { + source: "iana" + }, + "application/vnd.sealed.csf": { + source: "iana" + }, + "application/vnd.sealed.doc": { + source: "iana" + }, + "application/vnd.sealed.eml": { + source: "iana" + }, + "application/vnd.sealed.mht": { + source: "iana" + }, + "application/vnd.sealed.net": { + source: "iana" + }, + "application/vnd.sealed.ppt": { + source: "iana" + }, + "application/vnd.sealed.tiff": { + source: "iana" + }, + "application/vnd.sealed.xls": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + source: "iana" + }, + "application/vnd.seemail": { + source: "iana", + extensions: ["see"] + }, + "application/vnd.seis+json": { + source: "iana", + compressible: true + }, + "application/vnd.sema": { + source: "iana", + extensions: ["sema"] + }, + "application/vnd.semd": { + source: "iana", + extensions: ["semd"] + }, + "application/vnd.semf": { + source: "iana", + extensions: ["semf"] + }, + "application/vnd.shade-save-file": { + source: "iana" + }, + "application/vnd.shana.informed.formdata": { + source: "iana", + extensions: ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + source: "iana", + extensions: ["itp"] + }, + "application/vnd.shana.informed.interchange": { + source: "iana", + extensions: ["iif"] + }, + "application/vnd.shana.informed.package": { + source: "iana", + extensions: ["ipk"] + }, + "application/vnd.shootproof+json": { + source: "iana", + compressible: true + }, + "application/vnd.shopkick+json": { + source: "iana", + compressible: true + }, + "application/vnd.shp": { + source: "iana" + }, + "application/vnd.shx": { + source: "iana" + }, + "application/vnd.sigrok.session": { + source: "iana" + }, + "application/vnd.simtech-mindmapper": { + source: "iana", + extensions: ["twd", "twds"] + }, + "application/vnd.siren+json": { + source: "iana", + compressible: true + }, + "application/vnd.sketchometry": { + source: "iana" + }, + "application/vnd.smaf": { + source: "iana", + extensions: ["mmf"] + }, + "application/vnd.smart.notebook": { + source: "iana" + }, + "application/vnd.smart.teacher": { + source: "iana", + extensions: ["teacher"] + }, + "application/vnd.smintio.portals.archive": { + source: "iana" + }, + "application/vnd.snesdev-page-table": { + source: "iana" + }, + "application/vnd.software602.filler.form+xml": { + source: "iana", + compressible: true, + extensions: ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + source: "iana" + }, + "application/vnd.solent.sdkm+xml": { + source: "iana", + compressible: true, + extensions: ["sdkm", "sdkd"] + }, + "application/vnd.spotfire.dxp": { + source: "iana", + extensions: ["dxp"] + }, + "application/vnd.spotfire.sfs": { + source: "iana", + extensions: ["sfs"] + }, + "application/vnd.sqlite3": { + source: "iana" + }, + "application/vnd.sss-cod": { + source: "iana" + }, + "application/vnd.sss-dtf": { + source: "iana" + }, + "application/vnd.sss-ntf": { + source: "iana" + }, + "application/vnd.stardivision.calc": { + source: "apache", + extensions: ["sdc"] + }, + "application/vnd.stardivision.draw": { + source: "apache", + extensions: ["sda"] + }, + "application/vnd.stardivision.impress": { + source: "apache", + extensions: ["sdd"] + }, + "application/vnd.stardivision.math": { + source: "apache", + extensions: ["smf"] + }, + "application/vnd.stardivision.writer": { + source: "apache", + extensions: ["sdw", "vor"] + }, + "application/vnd.stardivision.writer-global": { + source: "apache", + extensions: ["sgl"] + }, + "application/vnd.stepmania.package": { + source: "iana", + extensions: ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + source: "iana", + extensions: ["sm"] + }, + "application/vnd.street-stream": { + source: "iana" + }, + "application/vnd.sun.wadl+xml": { + source: "iana", + compressible: true, + extensions: ["wadl"] + }, + "application/vnd.sun.xml.calc": { + source: "apache", + extensions: ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + source: "apache", + extensions: ["stc"] + }, + "application/vnd.sun.xml.draw": { + source: "apache", + extensions: ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + source: "apache", + extensions: ["std"] + }, + "application/vnd.sun.xml.impress": { + source: "apache", + extensions: ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + source: "apache", + extensions: ["sti"] + }, + "application/vnd.sun.xml.math": { + source: "apache", + extensions: ["sxm"] + }, + "application/vnd.sun.xml.writer": { + source: "apache", + extensions: ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + source: "apache", + extensions: ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + source: "apache", + extensions: ["stw"] + }, + "application/vnd.sus-calendar": { + source: "iana", + extensions: ["sus", "susp"] + }, + "application/vnd.svd": { + source: "iana", + extensions: ["svd"] + }, + "application/vnd.swiftview-ics": { + source: "iana" + }, + "application/vnd.sybyl.mol2": { + source: "iana" + }, + "application/vnd.sycle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.syft+json": { + source: "iana", + compressible: true + }, + "application/vnd.symbian.install": { + source: "apache", + extensions: ["sis", "sisx"] + }, + "application/vnd.syncml+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + source: "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmddf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.syncml.ds.notification": { + source: "iana" + }, + "application/vnd.tableschema+json": { + source: "iana", + compressible: true + }, + "application/vnd.tao.intent-module-archive": { + source: "iana", + extensions: ["tao"] + }, + "application/vnd.tcpdump.pcap": { + source: "iana", + extensions: ["pcap", "cap", "dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + source: "iana", + compressible: true + }, + "application/vnd.tmd.mediaflex.api+xml": { + source: "iana", + compressible: true + }, + "application/vnd.tml": { + source: "iana" + }, + "application/vnd.tmobile-livetv": { + source: "iana", + extensions: ["tmo"] + }, + "application/vnd.tri.onesource": { + source: "iana" + }, + "application/vnd.trid.tpt": { + source: "iana", + extensions: ["tpt"] + }, + "application/vnd.triscape.mxs": { + source: "iana", + extensions: ["mxs"] + }, + "application/vnd.trueapp": { + source: "iana", + extensions: ["tra"] + }, + "application/vnd.truedoc": { + source: "iana" + }, + "application/vnd.ubisoft.webplayer": { + source: "iana" + }, + "application/vnd.ufdl": { + source: "iana", + extensions: ["ufd", "ufdl"] + }, + "application/vnd.uic.osdm+json": { + source: "iana", + compressible: true + }, + "application/vnd.uiq.theme": { + source: "iana", + extensions: ["utz"] + }, + "application/vnd.umajin": { + source: "iana", + extensions: ["umj"] + }, + "application/vnd.unity": { + source: "iana", + extensions: ["unityweb"] + }, + "application/vnd.uoml+xml": { + source: "iana", + compressible: true, + extensions: ["uoml", "uo"] + }, + "application/vnd.uplanet.alert": { + source: "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.cacheop": { + source: "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.channel": { + source: "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.list": { + source: "iana" + }, + "application/vnd.uplanet.list-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.listcmd": { + source: "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.signal": { + source: "iana" + }, + "application/vnd.uri-map": { + source: "iana" + }, + "application/vnd.valve.source.material": { + source: "iana" + }, + "application/vnd.vcx": { + source: "iana", + extensions: ["vcx"] + }, + "application/vnd.vd-study": { + source: "iana" + }, + "application/vnd.vectorworks": { + source: "iana" + }, + "application/vnd.vel+json": { + source: "iana", + compressible: true + }, + "application/vnd.veraison.tsm-report+cbor": { + source: "iana" + }, + "application/vnd.veraison.tsm-report+json": { + source: "iana", + compressible: true + }, + "application/vnd.verimatrix.vcas": { + source: "iana" + }, + "application/vnd.veritone.aion+json": { + source: "iana", + compressible: true + }, + "application/vnd.veryant.thin": { + source: "iana" + }, + "application/vnd.ves.encrypted": { + source: "iana" + }, + "application/vnd.vidsoft.vidconference": { + source: "iana" + }, + "application/vnd.visio": { + source: "iana", + extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"] + }, + "application/vnd.visionary": { + source: "iana", + extensions: ["vis"] + }, + "application/vnd.vividence.scriptfile": { + source: "iana" + }, + "application/vnd.vocalshaper.vsp4": { + source: "iana" + }, + "application/vnd.vsf": { + source: "iana", + extensions: ["vsf"] + }, + "application/vnd.wap.sic": { + source: "iana" + }, + "application/vnd.wap.slc": { + source: "iana" + }, + "application/vnd.wap.wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["wbxml"] + }, + "application/vnd.wap.wmlc": { + source: "iana", + extensions: ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + source: "iana", + extensions: ["wmlsc"] + }, + "application/vnd.wasmflow.wafl": { + source: "iana" + }, + "application/vnd.webturbo": { + source: "iana", + extensions: ["wtb"] + }, + "application/vnd.wfa.dpp": { + source: "iana" + }, + "application/vnd.wfa.p2p": { + source: "iana" + }, + "application/vnd.wfa.wsc": { + source: "iana" + }, + "application/vnd.windows.devicepairing": { + source: "iana" + }, + "application/vnd.wmc": { + source: "iana" + }, + "application/vnd.wmf.bootstrap": { + source: "iana" + }, + "application/vnd.wolfram.mathematica": { + source: "iana" + }, + "application/vnd.wolfram.mathematica.package": { + source: "iana" + }, + "application/vnd.wolfram.player": { + source: "iana", + extensions: ["nbp"] + }, + "application/vnd.wordlift": { + source: "iana" + }, + "application/vnd.wordperfect": { + source: "iana", + extensions: ["wpd"] + }, + "application/vnd.wqd": { + source: "iana", + extensions: ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + source: "iana" + }, + "application/vnd.wt.stf": { + source: "iana", + extensions: ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + source: "iana" + }, + "application/vnd.wv.csp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.wv.ssp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xacml+json": { + source: "iana", + compressible: true + }, + "application/vnd.xara": { + source: "iana", + extensions: ["xar"] + }, + "application/vnd.xarin.cpj": { + source: "iana" + }, + "application/vnd.xecrets-encrypted": { + source: "iana" + }, + "application/vnd.xfdl": { + source: "iana", + extensions: ["xfdl"] + }, + "application/vnd.xfdl.webform": { + source: "iana" + }, + "application/vnd.xmi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xmpie.cpkg": { + source: "iana" + }, + "application/vnd.xmpie.dpkg": { + source: "iana" + }, + "application/vnd.xmpie.plan": { + source: "iana" + }, + "application/vnd.xmpie.ppkg": { + source: "iana" + }, + "application/vnd.xmpie.xlim": { + source: "iana" + }, + "application/vnd.yamaha.hv-dic": { + source: "iana", + extensions: ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + source: "iana", + extensions: ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + source: "iana", + extensions: ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + source: "iana", + extensions: ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + source: "iana", + compressible: true, + extensions: ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + source: "iana" + }, + "application/vnd.yamaha.smaf-audio": { + source: "iana", + extensions: ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + source: "iana", + extensions: ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + source: "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + source: "iana" + }, + "application/vnd.yaoweme": { + source: "iana" + }, + "application/vnd.yellowriver-custom-menu": { + source: "iana", + extensions: ["cmp"] + }, + "application/vnd.zul": { + source: "iana", + extensions: ["zir", "zirz"] + }, + "application/vnd.zzazz.deck+xml": { + source: "iana", + compressible: true, + extensions: ["zaz"] + }, + "application/voicexml+xml": { + source: "iana", + compressible: true, + extensions: ["vxml"] + }, + "application/voucher-cms+json": { + source: "iana", + compressible: true + }, + "application/voucher-jws+json": { + source: "iana", + compressible: true + }, + "application/vp": { + source: "iana" + }, + "application/vp+cose": { + source: "iana" + }, + "application/vp+jwt": { + source: "iana" + }, + "application/vq-rtcpxr": { + source: "iana" + }, + "application/wasm": { + source: "iana", + compressible: true, + extensions: ["wasm"] + }, + "application/watcherinfo+xml": { + source: "iana", + compressible: true, + extensions: ["wif"] + }, + "application/webpush-options+json": { + source: "iana", + compressible: true + }, + "application/whoispp-query": { + source: "iana" + }, + "application/whoispp-response": { + source: "iana" + }, + "application/widget": { + source: "iana", + extensions: ["wgt"] + }, + "application/winhlp": { + source: "apache", + extensions: ["hlp"] + }, + "application/wita": { + source: "iana" + }, + "application/wordperfect5.1": { + source: "iana" + }, + "application/wsdl+xml": { + source: "iana", + compressible: true, + extensions: ["wsdl"] + }, + "application/wspolicy+xml": { + source: "iana", + compressible: true, + extensions: ["wspolicy"] + }, + "application/x-7z-compressed": { + source: "apache", + compressible: false, + extensions: ["7z"] + }, + "application/x-abiword": { + source: "apache", + extensions: ["abw"] + }, + "application/x-ace-compressed": { + source: "apache", + extensions: ["ace"] + }, + "application/x-amf": { + source: "apache" + }, + "application/x-apple-diskimage": { + source: "apache", + extensions: ["dmg"] + }, + "application/x-arj": { + compressible: false, + extensions: ["arj"] + }, + "application/x-authorware-bin": { + source: "apache", + extensions: ["aab", "x32", "u32", "vox"] + }, + "application/x-authorware-map": { + source: "apache", + extensions: ["aam"] + }, + "application/x-authorware-seg": { + source: "apache", + extensions: ["aas"] + }, + "application/x-bcpio": { + source: "apache", + extensions: ["bcpio"] + }, + "application/x-bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/x-bittorrent": { + source: "apache", + extensions: ["torrent"] + }, + "application/x-blender": { + extensions: ["blend"] + }, + "application/x-blorb": { + source: "apache", + extensions: ["blb", "blorb"] + }, + "application/x-bzip": { + source: "apache", + compressible: false, + extensions: ["bz"] + }, + "application/x-bzip2": { + source: "apache", + compressible: false, + extensions: ["bz2", "boz"] + }, + "application/x-cbr": { + source: "apache", + extensions: ["cbr", "cba", "cbt", "cbz", "cb7"] + }, + "application/x-cdlink": { + source: "apache", + extensions: ["vcd"] + }, + "application/x-cfs-compressed": { + source: "apache", + extensions: ["cfs"] + }, + "application/x-chat": { + source: "apache", + extensions: ["chat"] + }, + "application/x-chess-pgn": { + source: "apache", + extensions: ["pgn"] + }, + "application/x-chrome-extension": { + extensions: ["crx"] + }, + "application/x-cocoa": { + source: "nginx", + extensions: ["cco"] + }, + "application/x-compress": { + source: "apache" + }, + "application/x-compressed": { + extensions: ["rar"] + }, + "application/x-conference": { + source: "apache", + extensions: ["nsc"] + }, + "application/x-cpio": { + source: "apache", + extensions: ["cpio"] + }, + "application/x-csh": { + source: "apache", + extensions: ["csh"] + }, + "application/x-deb": { + compressible: false + }, + "application/x-debian-package": { + source: "apache", + extensions: ["deb", "udeb"] + }, + "application/x-dgc-compressed": { + source: "apache", + extensions: ["dgc"] + }, + "application/x-director": { + source: "apache", + extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"] + }, + "application/x-doom": { + source: "apache", + extensions: ["wad"] + }, + "application/x-dtbncx+xml": { + source: "apache", + compressible: true, + extensions: ["ncx"] + }, + "application/x-dtbook+xml": { + source: "apache", + compressible: true, + extensions: ["dtb"] + }, + "application/x-dtbresource+xml": { + source: "apache", + compressible: true, + extensions: ["res"] + }, + "application/x-dvi": { + source: "apache", + compressible: false, + extensions: ["dvi"] + }, + "application/x-envoy": { + source: "apache", + extensions: ["evy"] + }, + "application/x-eva": { + source: "apache", + extensions: ["eva"] + }, + "application/x-font-bdf": { + source: "apache", + extensions: ["bdf"] + }, + "application/x-font-dos": { + source: "apache" + }, + "application/x-font-framemaker": { + source: "apache" + }, + "application/x-font-ghostscript": { + source: "apache", + extensions: ["gsf"] + }, + "application/x-font-libgrx": { + source: "apache" + }, + "application/x-font-linux-psf": { + source: "apache", + extensions: ["psf"] + }, + "application/x-font-pcf": { + source: "apache", + extensions: ["pcf"] + }, + "application/x-font-snf": { + source: "apache", + extensions: ["snf"] + }, + "application/x-font-speedo": { + source: "apache" + }, + "application/x-font-sunos-news": { + source: "apache" + }, + "application/x-font-type1": { + source: "apache", + extensions: ["pfa", "pfb", "pfm", "afm"] + }, + "application/x-font-vfont": { + source: "apache" + }, + "application/x-freearc": { + source: "apache", + extensions: ["arc"] + }, + "application/x-futuresplash": { + source: "apache", + extensions: ["spl"] + }, + "application/x-gca-compressed": { + source: "apache", + extensions: ["gca"] + }, + "application/x-glulx": { + source: "apache", + extensions: ["ulx"] + }, + "application/x-gnumeric": { + source: "apache", + extensions: ["gnumeric"] + }, + "application/x-gramps-xml": { + source: "apache", + extensions: ["gramps"] + }, + "application/x-gtar": { + source: "apache", + extensions: ["gtar"] + }, + "application/x-gzip": { + source: "apache" + }, + "application/x-hdf": { + source: "apache", + extensions: ["hdf"] + }, + "application/x-httpd-php": { + compressible: true, + extensions: ["php"] + }, + "application/x-install-instructions": { + source: "apache", + extensions: ["install"] + }, + "application/x-ipynb+json": { + compressible: true, + extensions: ["ipynb"] + }, + "application/x-iso9660-image": { + source: "apache", + extensions: ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + extensions: ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + extensions: ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + extensions: ["pages"] + }, + "application/x-java-archive-diff": { + source: "nginx", + extensions: ["jardiff"] + }, + "application/x-java-jnlp-file": { + source: "apache", + compressible: false, + extensions: ["jnlp"] + }, + "application/x-javascript": { + compressible: true + }, + "application/x-keepass2": { + extensions: ["kdbx"] + }, + "application/x-latex": { + source: "apache", + compressible: false, + extensions: ["latex"] + }, + "application/x-lua-bytecode": { + extensions: ["luac"] + }, + "application/x-lzh-compressed": { + source: "apache", + extensions: ["lzh", "lha"] + }, + "application/x-makeself": { + source: "nginx", + extensions: ["run"] + }, + "application/x-mie": { + source: "apache", + extensions: ["mie"] + }, + "application/x-mobipocket-ebook": { + source: "apache", + extensions: ["prc", "mobi"] + }, + "application/x-mpegurl": { + compressible: false + }, + "application/x-ms-application": { + source: "apache", + extensions: ["application"] + }, + "application/x-ms-shortcut": { + source: "apache", + extensions: ["lnk"] + }, + "application/x-ms-wmd": { + source: "apache", + extensions: ["wmd"] + }, + "application/x-ms-wmz": { + source: "apache", + extensions: ["wmz"] + }, + "application/x-ms-xbap": { + source: "apache", + extensions: ["xbap"] + }, + "application/x-msaccess": { + source: "apache", + extensions: ["mdb"] + }, + "application/x-msbinder": { + source: "apache", + extensions: ["obd"] + }, + "application/x-mscardfile": { + source: "apache", + extensions: ["crd"] + }, + "application/x-msclip": { + source: "apache", + extensions: ["clp"] + }, + "application/x-msdos-program": { + extensions: ["exe"] + }, + "application/x-msdownload": { + source: "apache", + extensions: ["exe", "dll", "com", "bat", "msi"] + }, + "application/x-msmediaview": { + source: "apache", + extensions: ["mvb", "m13", "m14"] + }, + "application/x-msmetafile": { + source: "apache", + extensions: ["wmf", "wmz", "emf", "emz"] + }, + "application/x-msmoney": { + source: "apache", + extensions: ["mny"] + }, + "application/x-mspublisher": { + source: "apache", + extensions: ["pub"] + }, + "application/x-msschedule": { + source: "apache", + extensions: ["scd"] + }, + "application/x-msterminal": { + source: "apache", + extensions: ["trm"] + }, + "application/x-mswrite": { + source: "apache", + extensions: ["wri"] + }, + "application/x-netcdf": { + source: "apache", + extensions: ["nc", "cdf"] + }, + "application/x-ns-proxy-autoconfig": { + compressible: true, + extensions: ["pac"] + }, + "application/x-nzb": { + source: "apache", + extensions: ["nzb"] + }, + "application/x-perl": { + source: "nginx", + extensions: ["pl", "pm"] + }, + "application/x-pilot": { + source: "nginx", + extensions: ["prc", "pdb"] + }, + "application/x-pkcs12": { + source: "apache", + compressible: false, + extensions: ["p12", "pfx"] + }, + "application/x-pkcs7-certificates": { + source: "apache", + extensions: ["p7b", "spc"] + }, + "application/x-pkcs7-certreqresp": { + source: "apache", + extensions: ["p7r"] + }, + "application/x-pki-message": { + source: "iana" + }, + "application/x-rar-compressed": { + source: "apache", + compressible: false, + extensions: ["rar"] + }, + "application/x-redhat-package-manager": { + source: "nginx", + extensions: ["rpm"] + }, + "application/x-research-info-systems": { + source: "apache", + extensions: ["ris"] + }, + "application/x-sea": { + source: "nginx", + extensions: ["sea"] + }, + "application/x-sh": { + source: "apache", + compressible: true, + extensions: ["sh"] + }, + "application/x-shar": { + source: "apache", + extensions: ["shar"] + }, + "application/x-shockwave-flash": { + source: "apache", + compressible: false, + extensions: ["swf"] + }, + "application/x-silverlight-app": { + source: "apache", + extensions: ["xap"] + }, + "application/x-sql": { + source: "apache", + extensions: ["sql"] + }, + "application/x-stuffit": { + source: "apache", + compressible: false, + extensions: ["sit"] + }, + "application/x-stuffitx": { + source: "apache", + extensions: ["sitx"] + }, + "application/x-subrip": { + source: "apache", + extensions: ["srt"] + }, + "application/x-sv4cpio": { + source: "apache", + extensions: ["sv4cpio"] + }, + "application/x-sv4crc": { + source: "apache", + extensions: ["sv4crc"] + }, + "application/x-t3vm-image": { + source: "apache", + extensions: ["t3"] + }, + "application/x-tads": { + source: "apache", + extensions: ["gam"] + }, + "application/x-tar": { + source: "apache", + compressible: true, + extensions: ["tar"] + }, + "application/x-tcl": { + source: "apache", + extensions: ["tcl", "tk"] + }, + "application/x-tex": { + source: "apache", + extensions: ["tex"] + }, + "application/x-tex-tfm": { + source: "apache", + extensions: ["tfm"] + }, + "application/x-texinfo": { + source: "apache", + extensions: ["texinfo", "texi"] + }, + "application/x-tgif": { + source: "apache", + extensions: ["obj"] + }, + "application/x-ustar": { + source: "apache", + extensions: ["ustar"] + }, + "application/x-virtualbox-hdd": { + compressible: true, + extensions: ["hdd"] + }, + "application/x-virtualbox-ova": { + compressible: true, + extensions: ["ova"] + }, + "application/x-virtualbox-ovf": { + compressible: true, + extensions: ["ovf"] + }, + "application/x-virtualbox-vbox": { + compressible: true, + extensions: ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + compressible: false, + extensions: ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + compressible: true, + extensions: ["vdi"] + }, + "application/x-virtualbox-vhd": { + compressible: true, + extensions: ["vhd"] + }, + "application/x-virtualbox-vmdk": { + compressible: true, + extensions: ["vmdk"] + }, + "application/x-wais-source": { + source: "apache", + extensions: ["src"] + }, + "application/x-web-app-manifest+json": { + compressible: true, + extensions: ["webapp"] + }, + "application/x-www-form-urlencoded": { + source: "iana", + compressible: true + }, + "application/x-x509-ca-cert": { + source: "iana", + extensions: ["der", "crt", "pem"] + }, + "application/x-x509-ca-ra-cert": { + source: "iana" + }, + "application/x-x509-next-ca-cert": { + source: "iana" + }, + "application/x-xfig": { + source: "apache", + extensions: ["fig"] + }, + "application/x-xliff+xml": { + source: "apache", + compressible: true, + extensions: ["xlf"] + }, + "application/x-xpinstall": { + source: "apache", + compressible: false, + extensions: ["xpi"] + }, + "application/x-xz": { + source: "apache", + extensions: ["xz"] + }, + "application/x-zip-compressed": { + extensions: ["zip"] + }, + "application/x-zmachine": { + source: "apache", + extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"] + }, + "application/x400-bp": { + source: "iana" + }, + "application/xacml+xml": { + source: "iana", + compressible: true + }, + "application/xaml+xml": { + source: "apache", + compressible: true, + extensions: ["xaml"] + }, + "application/xcap-att+xml": { + source: "iana", + compressible: true, + extensions: ["xav"] + }, + "application/xcap-caps+xml": { + source: "iana", + compressible: true, + extensions: ["xca"] + }, + "application/xcap-diff+xml": { + source: "iana", + compressible: true, + extensions: ["xdf"] + }, + "application/xcap-el+xml": { + source: "iana", + compressible: true, + extensions: ["xel"] + }, + "application/xcap-error+xml": { + source: "iana", + compressible: true + }, + "application/xcap-ns+xml": { + source: "iana", + compressible: true, + extensions: ["xns"] + }, + "application/xcon-conference-info+xml": { + source: "iana", + compressible: true + }, + "application/xcon-conference-info-diff+xml": { + source: "iana", + compressible: true + }, + "application/xenc+xml": { + source: "iana", + compressible: true, + extensions: ["xenc"] + }, + "application/xfdf": { + source: "iana", + extensions: ["xfdf"] + }, + "application/xhtml+xml": { + source: "iana", + compressible: true, + extensions: ["xhtml", "xht"] + }, + "application/xhtml-voice+xml": { + source: "apache", + compressible: true + }, + "application/xliff+xml": { + source: "iana", + compressible: true, + extensions: ["xlf"] + }, + "application/xml": { + source: "iana", + compressible: true, + extensions: ["xml", "xsl", "xsd", "rng"] + }, + "application/xml-dtd": { + source: "iana", + compressible: true, + extensions: ["dtd"] + }, + "application/xml-external-parsed-entity": { + source: "iana" + }, + "application/xml-patch+xml": { + source: "iana", + compressible: true + }, + "application/xmpp+xml": { + source: "iana", + compressible: true + }, + "application/xop+xml": { + source: "iana", + compressible: true, + extensions: ["xop"] + }, + "application/xproc+xml": { + source: "apache", + compressible: true, + extensions: ["xpl"] + }, + "application/xslt+xml": { + source: "iana", + compressible: true, + extensions: ["xsl", "xslt"] + }, + "application/xspf+xml": { + source: "apache", + compressible: true, + extensions: ["xspf"] + }, + "application/xv+xml": { + source: "iana", + compressible: true, + extensions: ["mxml", "xhvml", "xvml", "xvm"] + }, + "application/yaml": { + source: "iana" + }, + "application/yang": { + source: "iana", + extensions: ["yang"] + }, + "application/yang-data+cbor": { + source: "iana" + }, + "application/yang-data+json": { + source: "iana", + compressible: true + }, + "application/yang-data+xml": { + source: "iana", + compressible: true + }, + "application/yang-patch+json": { + source: "iana", + compressible: true + }, + "application/yang-patch+xml": { + source: "iana", + compressible: true + }, + "application/yang-sid+json": { + source: "iana", + compressible: true + }, + "application/yin+xml": { + source: "iana", + compressible: true, + extensions: ["yin"] + }, + "application/zip": { + source: "iana", + compressible: false, + extensions: ["zip"] + }, + "application/zip+dotlottie": { + extensions: ["lottie"] + }, + "application/zlib": { + source: "iana" + }, + "application/zstd": { + source: "iana" + }, + "audio/1d-interleaved-parityfec": { + source: "iana" + }, + "audio/32kadpcm": { + source: "iana" + }, + "audio/3gpp": { + source: "iana", + compressible: false, + extensions: ["3gpp"] + }, + "audio/3gpp2": { + source: "iana" + }, + "audio/aac": { + source: "iana", + extensions: ["adts", "aac"] + }, + "audio/ac3": { + source: "iana" + }, + "audio/adpcm": { + source: "apache", + extensions: ["adp"] + }, + "audio/amr": { + source: "iana", + extensions: ["amr"] + }, + "audio/amr-wb": { + source: "iana" + }, + "audio/amr-wb+": { + source: "iana" + }, + "audio/aptx": { + source: "iana" + }, + "audio/asc": { + source: "iana" + }, + "audio/atrac-advanced-lossless": { + source: "iana" + }, + "audio/atrac-x": { + source: "iana" + }, + "audio/atrac3": { + source: "iana" + }, + "audio/basic": { + source: "iana", + compressible: false, + extensions: ["au", "snd"] + }, + "audio/bv16": { + source: "iana" + }, + "audio/bv32": { + source: "iana" + }, + "audio/clearmode": { + source: "iana" + }, + "audio/cn": { + source: "iana" + }, + "audio/dat12": { + source: "iana" + }, + "audio/dls": { + source: "iana" + }, + "audio/dsr-es201108": { + source: "iana" + }, + "audio/dsr-es202050": { + source: "iana" + }, + "audio/dsr-es202211": { + source: "iana" + }, + "audio/dsr-es202212": { + source: "iana" + }, + "audio/dv": { + source: "iana" + }, + "audio/dvi4": { + source: "iana" + }, + "audio/eac3": { + source: "iana" + }, + "audio/encaprtp": { + source: "iana" + }, + "audio/evrc": { + source: "iana" + }, + "audio/evrc-qcp": { + source: "iana" + }, + "audio/evrc0": { + source: "iana" + }, + "audio/evrc1": { + source: "iana" + }, + "audio/evrcb": { + source: "iana" + }, + "audio/evrcb0": { + source: "iana" + }, + "audio/evrcb1": { + source: "iana" + }, + "audio/evrcnw": { + source: "iana" + }, + "audio/evrcnw0": { + source: "iana" + }, + "audio/evrcnw1": { + source: "iana" + }, + "audio/evrcwb": { + source: "iana" + }, + "audio/evrcwb0": { + source: "iana" + }, + "audio/evrcwb1": { + source: "iana" + }, + "audio/evs": { + source: "iana" + }, + "audio/flac": { + source: "iana" + }, + "audio/flexfec": { + source: "iana" + }, + "audio/fwdred": { + source: "iana" + }, + "audio/g711-0": { + source: "iana" + }, + "audio/g719": { + source: "iana" + }, + "audio/g722": { + source: "iana" + }, + "audio/g7221": { + source: "iana" + }, + "audio/g723": { + source: "iana" + }, + "audio/g726-16": { + source: "iana" + }, + "audio/g726-24": { + source: "iana" + }, + "audio/g726-32": { + source: "iana" + }, + "audio/g726-40": { + source: "iana" + }, + "audio/g728": { + source: "iana" + }, + "audio/g729": { + source: "iana" + }, + "audio/g7291": { + source: "iana" + }, + "audio/g729d": { + source: "iana" + }, + "audio/g729e": { + source: "iana" + }, + "audio/gsm": { + source: "iana" + }, + "audio/gsm-efr": { + source: "iana" + }, + "audio/gsm-hr-08": { + source: "iana" + }, + "audio/ilbc": { + source: "iana" + }, + "audio/ip-mr_v2.5": { + source: "iana" + }, + "audio/isac": { + source: "apache" + }, + "audio/l16": { + source: "iana" + }, + "audio/l20": { + source: "iana" + }, + "audio/l24": { + source: "iana", + compressible: false + }, + "audio/l8": { + source: "iana" + }, + "audio/lpc": { + source: "iana" + }, + "audio/matroska": { + source: "iana" + }, + "audio/melp": { + source: "iana" + }, + "audio/melp1200": { + source: "iana" + }, + "audio/melp2400": { + source: "iana" + }, + "audio/melp600": { + source: "iana" + }, + "audio/mhas": { + source: "iana" + }, + "audio/midi": { + source: "apache", + extensions: ["mid", "midi", "kar", "rmi"] + }, + "audio/midi-clip": { + source: "iana" + }, + "audio/mobile-xmf": { + source: "iana", + extensions: ["mxmf"] + }, + "audio/mp3": { + compressible: false, + extensions: ["mp3"] + }, + "audio/mp4": { + source: "iana", + compressible: false, + extensions: ["m4a", "mp4a", "m4b"] + }, + "audio/mp4a-latm": { + source: "iana" + }, + "audio/mpa": { + source: "iana" + }, + "audio/mpa-robust": { + source: "iana" + }, + "audio/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] + }, + "audio/mpeg4-generic": { + source: "iana" + }, + "audio/musepack": { + source: "apache" + }, + "audio/ogg": { + source: "iana", + compressible: false, + extensions: ["oga", "ogg", "spx", "opus"] + }, + "audio/opus": { + source: "iana" + }, + "audio/parityfec": { + source: "iana" + }, + "audio/pcma": { + source: "iana" + }, + "audio/pcma-wb": { + source: "iana" + }, + "audio/pcmu": { + source: "iana" + }, + "audio/pcmu-wb": { + source: "iana" + }, + "audio/prs.sid": { + source: "iana" + }, + "audio/qcelp": { + source: "iana" + }, + "audio/raptorfec": { + source: "iana" + }, + "audio/red": { + source: "iana" + }, + "audio/rtp-enc-aescm128": { + source: "iana" + }, + "audio/rtp-midi": { + source: "iana" + }, + "audio/rtploopback": { + source: "iana" + }, + "audio/rtx": { + source: "iana" + }, + "audio/s3m": { + source: "apache", + extensions: ["s3m"] + }, + "audio/scip": { + source: "iana" + }, + "audio/silk": { + source: "apache", + extensions: ["sil"] + }, + "audio/smv": { + source: "iana" + }, + "audio/smv-qcp": { + source: "iana" + }, + "audio/smv0": { + source: "iana" + }, + "audio/sofa": { + source: "iana" + }, + "audio/sp-midi": { + source: "iana" + }, + "audio/speex": { + source: "iana" + }, + "audio/t140c": { + source: "iana" + }, + "audio/t38": { + source: "iana" + }, + "audio/telephone-event": { + source: "iana" + }, + "audio/tetra_acelp": { + source: "iana" + }, + "audio/tetra_acelp_bb": { + source: "iana" + }, + "audio/tone": { + source: "iana" + }, + "audio/tsvcis": { + source: "iana" + }, + "audio/uemclip": { + source: "iana" + }, + "audio/ulpfec": { + source: "iana" + }, + "audio/usac": { + source: "iana" + }, + "audio/vdvi": { + source: "iana" + }, + "audio/vmr-wb": { + source: "iana" + }, + "audio/vnd.3gpp.iufp": { + source: "iana" + }, + "audio/vnd.4sb": { + source: "iana" + }, + "audio/vnd.audiokoz": { + source: "iana" + }, + "audio/vnd.celp": { + source: "iana" + }, + "audio/vnd.cisco.nse": { + source: "iana" + }, + "audio/vnd.cmles.radio-events": { + source: "iana" + }, + "audio/vnd.cns.anp1": { + source: "iana" + }, + "audio/vnd.cns.inf1": { + source: "iana" + }, + "audio/vnd.dece.audio": { + source: "iana", + extensions: ["uva", "uvva"] + }, + "audio/vnd.digital-winds": { + source: "iana", + extensions: ["eol"] + }, + "audio/vnd.dlna.adts": { + source: "iana" + }, + "audio/vnd.dolby.heaac.1": { + source: "iana" + }, + "audio/vnd.dolby.heaac.2": { + source: "iana" + }, + "audio/vnd.dolby.mlp": { + source: "iana" + }, + "audio/vnd.dolby.mps": { + source: "iana" + }, + "audio/vnd.dolby.pl2": { + source: "iana" + }, + "audio/vnd.dolby.pl2x": { + source: "iana" + }, + "audio/vnd.dolby.pl2z": { + source: "iana" + }, + "audio/vnd.dolby.pulse.1": { + source: "iana" + }, + "audio/vnd.dra": { + source: "iana", + extensions: ["dra"] + }, + "audio/vnd.dts": { + source: "iana", + extensions: ["dts"] + }, + "audio/vnd.dts.hd": { + source: "iana", + extensions: ["dtshd"] + }, + "audio/vnd.dts.uhd": { + source: "iana" + }, + "audio/vnd.dvb.file": { + source: "iana" + }, + "audio/vnd.everad.plj": { + source: "iana" + }, + "audio/vnd.hns.audio": { + source: "iana" + }, + "audio/vnd.lucent.voice": { + source: "iana", + extensions: ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + source: "iana", + extensions: ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + source: "iana" + }, + "audio/vnd.nortel.vbk": { + source: "iana" + }, + "audio/vnd.nuera.ecelp4800": { + source: "iana", + extensions: ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + source: "iana", + extensions: ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + source: "iana", + extensions: ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + source: "iana" + }, + "audio/vnd.presonus.multitrack": { + source: "iana" + }, + "audio/vnd.qcelp": { + source: "apache" + }, + "audio/vnd.rhetorex.32kadpcm": { + source: "iana" + }, + "audio/vnd.rip": { + source: "iana", + extensions: ["rip"] + }, + "audio/vnd.rn-realaudio": { + compressible: false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + source: "iana" + }, + "audio/vnd.vmx.cvsd": { + source: "iana" + }, + "audio/vnd.wave": { + compressible: false + }, + "audio/vorbis": { + source: "iana", + compressible: false + }, + "audio/vorbis-config": { + source: "iana" + }, + "audio/wav": { + compressible: false, + extensions: ["wav"] + }, + "audio/wave": { + compressible: false, + extensions: ["wav"] + }, + "audio/webm": { + source: "apache", + compressible: false, + extensions: ["weba"] + }, + "audio/x-aac": { + source: "apache", + compressible: false, + extensions: ["aac"] + }, + "audio/x-aiff": { + source: "apache", + extensions: ["aif", "aiff", "aifc"] + }, + "audio/x-caf": { + source: "apache", + compressible: false, + extensions: ["caf"] + }, + "audio/x-flac": { + source: "apache", + extensions: ["flac"] + }, + "audio/x-m4a": { + source: "nginx", + extensions: ["m4a"] + }, + "audio/x-matroska": { + source: "apache", + extensions: ["mka"] + }, + "audio/x-mpegurl": { + source: "apache", + extensions: ["m3u"] + }, + "audio/x-ms-wax": { + source: "apache", + extensions: ["wax"] + }, + "audio/x-ms-wma": { + source: "apache", + extensions: ["wma"] + }, + "audio/x-pn-realaudio": { + source: "apache", + extensions: ["ram", "ra"] + }, + "audio/x-pn-realaudio-plugin": { + source: "apache", + extensions: ["rmp"] + }, + "audio/x-realaudio": { + source: "nginx", + extensions: ["ra"] + }, + "audio/x-tta": { + source: "apache" + }, + "audio/x-wav": { + source: "apache", + extensions: ["wav"] + }, + "audio/xm": { + source: "apache", + extensions: ["xm"] + }, + "chemical/x-cdx": { + source: "apache", + extensions: ["cdx"] + }, + "chemical/x-cif": { + source: "apache", + extensions: ["cif"] + }, + "chemical/x-cmdf": { + source: "apache", + extensions: ["cmdf"] + }, + "chemical/x-cml": { + source: "apache", + extensions: ["cml"] + }, + "chemical/x-csml": { + source: "apache", + extensions: ["csml"] + }, + "chemical/x-pdb": { + source: "apache" + }, + "chemical/x-xyz": { + source: "apache", + extensions: ["xyz"] + }, + "font/collection": { + source: "iana", + extensions: ["ttc"] + }, + "font/otf": { + source: "iana", + compressible: true, + extensions: ["otf"] + }, + "font/sfnt": { + source: "iana" + }, + "font/ttf": { + source: "iana", + compressible: true, + extensions: ["ttf"] + }, + "font/woff": { + source: "iana", + extensions: ["woff"] + }, + "font/woff2": { + source: "iana", + extensions: ["woff2"] + }, + "image/aces": { + source: "iana", + extensions: ["exr"] + }, + "image/apng": { + source: "iana", + compressible: false, + extensions: ["apng"] + }, + "image/avci": { + source: "iana", + extensions: ["avci"] + }, + "image/avcs": { + source: "iana", + extensions: ["avcs"] + }, + "image/avif": { + source: "iana", + compressible: false, + extensions: ["avif"] + }, + "image/bmp": { + source: "iana", + compressible: true, + extensions: ["bmp", "dib"] + }, + "image/cgm": { + source: "iana", + extensions: ["cgm"] + }, + "image/dicom-rle": { + source: "iana", + extensions: ["drle"] + }, + "image/dpx": { + source: "iana", + extensions: ["dpx"] + }, + "image/emf": { + source: "iana", + extensions: ["emf"] + }, + "image/fits": { + source: "iana", + extensions: ["fits"] + }, + "image/g3fax": { + source: "iana", + extensions: ["g3"] + }, + "image/gif": { + source: "iana", + compressible: false, + extensions: ["gif"] + }, + "image/heic": { + source: "iana", + extensions: ["heic"] + }, + "image/heic-sequence": { + source: "iana", + extensions: ["heics"] + }, + "image/heif": { + source: "iana", + extensions: ["heif"] + }, + "image/heif-sequence": { + source: "iana", + extensions: ["heifs"] + }, + "image/hej2k": { + source: "iana", + extensions: ["hej2"] + }, + "image/ief": { + source: "iana", + extensions: ["ief"] + }, + "image/j2c": { + source: "iana" + }, + "image/jaii": { + source: "iana", + extensions: ["jaii"] + }, + "image/jais": { + source: "iana", + extensions: ["jais"] + }, + "image/jls": { + source: "iana", + extensions: ["jls"] + }, + "image/jp2": { + source: "iana", + compressible: false, + extensions: ["jp2", "jpg2"] + }, + "image/jpeg": { + source: "iana", + compressible: false, + extensions: ["jpg", "jpeg", "jpe"] + }, + "image/jph": { + source: "iana", + extensions: ["jph"] + }, + "image/jphc": { + source: "iana", + extensions: ["jhc"] + }, + "image/jpm": { + source: "iana", + compressible: false, + extensions: ["jpm", "jpgm"] + }, + "image/jpx": { + source: "iana", + compressible: false, + extensions: ["jpx", "jpf"] + }, + "image/jxl": { + source: "iana", + extensions: ["jxl"] + }, + "image/jxr": { + source: "iana", + extensions: ["jxr"] + }, + "image/jxra": { + source: "iana", + extensions: ["jxra"] + }, + "image/jxrs": { + source: "iana", + extensions: ["jxrs"] + }, + "image/jxs": { + source: "iana", + extensions: ["jxs"] + }, + "image/jxsc": { + source: "iana", + extensions: ["jxsc"] + }, + "image/jxsi": { + source: "iana", + extensions: ["jxsi"] + }, + "image/jxss": { + source: "iana", + extensions: ["jxss"] + }, + "image/ktx": { + source: "iana", + extensions: ["ktx"] + }, + "image/ktx2": { + source: "iana", + extensions: ["ktx2"] + }, + "image/naplps": { + source: "iana" + }, + "image/pjpeg": { + compressible: false, + extensions: ["jfif"] + }, + "image/png": { + source: "iana", + compressible: false, + extensions: ["png"] + }, + "image/prs.btif": { + source: "iana", + extensions: ["btif", "btf"] + }, + "image/prs.pti": { + source: "iana", + extensions: ["pti"] + }, + "image/pwg-raster": { + source: "iana" + }, + "image/sgi": { + source: "apache", + extensions: ["sgi"] + }, + "image/svg+xml": { + source: "iana", + compressible: true, + extensions: ["svg", "svgz"] + }, + "image/t38": { + source: "iana", + extensions: ["t38"] + }, + "image/tiff": { + source: "iana", + compressible: false, + extensions: ["tif", "tiff"] + }, + "image/tiff-fx": { + source: "iana", + extensions: ["tfx"] + }, + "image/vnd.adobe.photoshop": { + source: "iana", + compressible: true, + extensions: ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + source: "iana", + extensions: ["azv"] + }, + "image/vnd.clip": { + source: "iana" + }, + "image/vnd.cns.inf2": { + source: "iana" + }, + "image/vnd.dece.graphic": { + source: "iana", + extensions: ["uvi", "uvvi", "uvg", "uvvg"] + }, + "image/vnd.djvu": { + source: "iana", + extensions: ["djvu", "djv"] + }, + "image/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "image/vnd.dwg": { + source: "iana", + extensions: ["dwg"] + }, + "image/vnd.dxf": { + source: "iana", + extensions: ["dxf"] + }, + "image/vnd.fastbidsheet": { + source: "iana", + extensions: ["fbs"] + }, + "image/vnd.fpx": { + source: "iana", + extensions: ["fpx"] + }, + "image/vnd.fst": { + source: "iana", + extensions: ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + source: "iana", + extensions: ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + source: "iana", + extensions: ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + source: "iana" + }, + "image/vnd.microsoft.icon": { + source: "iana", + compressible: true, + extensions: ["ico"] + }, + "image/vnd.mix": { + source: "iana" + }, + "image/vnd.mozilla.apng": { + source: "iana" + }, + "image/vnd.ms-dds": { + compressible: true, + extensions: ["dds"] + }, + "image/vnd.ms-modi": { + source: "iana", + extensions: ["mdi"] + }, + "image/vnd.ms-photo": { + source: "apache", + extensions: ["wdp"] + }, + "image/vnd.net-fpx": { + source: "iana", + extensions: ["npx"] + }, + "image/vnd.pco.b16": { + source: "iana", + extensions: ["b16"] + }, + "image/vnd.radiance": { + source: "iana" + }, + "image/vnd.sealed.png": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + source: "iana" + }, + "image/vnd.svf": { + source: "iana" + }, + "image/vnd.tencent.tap": { + source: "iana", + extensions: ["tap"] + }, + "image/vnd.valve.source.texture": { + source: "iana", + extensions: ["vtf"] + }, + "image/vnd.wap.wbmp": { + source: "iana", + extensions: ["wbmp"] + }, + "image/vnd.xiff": { + source: "iana", + extensions: ["xif"] + }, + "image/vnd.zbrush.pcx": { + source: "iana", + extensions: ["pcx"] + }, + "image/webp": { + source: "iana", + extensions: ["webp"] + }, + "image/wmf": { + source: "iana", + extensions: ["wmf"] + }, + "image/x-3ds": { + source: "apache", + extensions: ["3ds"] + }, + "image/x-adobe-dng": { + extensions: ["dng"] + }, + "image/x-cmu-raster": { + source: "apache", + extensions: ["ras"] + }, + "image/x-cmx": { + source: "apache", + extensions: ["cmx"] + }, + "image/x-emf": { + source: "iana" + }, + "image/x-freehand": { + source: "apache", + extensions: ["fh", "fhc", "fh4", "fh5", "fh7"] + }, + "image/x-icon": { + source: "apache", + compressible: true, + extensions: ["ico"] + }, + "image/x-jng": { + source: "nginx", + extensions: ["jng"] + }, + "image/x-mrsid-image": { + source: "apache", + extensions: ["sid"] + }, + "image/x-ms-bmp": { + source: "nginx", + compressible: true, + extensions: ["bmp"] + }, + "image/x-pcx": { + source: "apache", + extensions: ["pcx"] + }, + "image/x-pict": { + source: "apache", + extensions: ["pic", "pct"] + }, + "image/x-portable-anymap": { + source: "apache", + extensions: ["pnm"] + }, + "image/x-portable-bitmap": { + source: "apache", + extensions: ["pbm"] + }, + "image/x-portable-graymap": { + source: "apache", + extensions: ["pgm"] + }, + "image/x-portable-pixmap": { + source: "apache", + extensions: ["ppm"] + }, + "image/x-rgb": { + source: "apache", + extensions: ["rgb"] + }, + "image/x-tga": { + source: "apache", + extensions: ["tga"] + }, + "image/x-wmf": { + source: "iana" + }, + "image/x-xbitmap": { + source: "apache", + extensions: ["xbm"] + }, + "image/x-xcf": { + compressible: false + }, + "image/x-xpixmap": { + source: "apache", + extensions: ["xpm"] + }, + "image/x-xwindowdump": { + source: "apache", + extensions: ["xwd"] + }, + "message/bhttp": { + source: "iana" + }, + "message/cpim": { + source: "iana" + }, + "message/delivery-status": { + source: "iana" + }, + "message/disposition-notification": { + source: "iana", + extensions: [ + "disposition-notification" + ] + }, + "message/external-body": { + source: "iana" + }, + "message/feedback-report": { + source: "iana" + }, + "message/global": { + source: "iana", + extensions: ["u8msg"] + }, + "message/global-delivery-status": { + source: "iana", + extensions: ["u8dsn"] + }, + "message/global-disposition-notification": { + source: "iana", + extensions: ["u8mdn"] + }, + "message/global-headers": { + source: "iana", + extensions: ["u8hdr"] + }, + "message/http": { + source: "iana", + compressible: false + }, + "message/imdn+xml": { + source: "iana", + compressible: true + }, + "message/mls": { + source: "iana" + }, + "message/news": { + source: "apache" + }, + "message/ohttp-req": { + source: "iana" + }, + "message/ohttp-res": { + source: "iana" + }, + "message/partial": { + source: "iana", + compressible: false + }, + "message/rfc822": { + source: "iana", + compressible: true, + extensions: ["eml", "mime", "mht", "mhtml"] + }, + "message/s-http": { + source: "apache" + }, + "message/sip": { + source: "iana" + }, + "message/sipfrag": { + source: "iana" + }, + "message/tracking-status": { + source: "iana" + }, + "message/vnd.si.simp": { + source: "apache" + }, + "message/vnd.wfa.wsc": { + source: "iana", + extensions: ["wsc"] + }, + "model/3mf": { + source: "iana", + extensions: ["3mf"] + }, + "model/e57": { + source: "iana" + }, + "model/gltf+json": { + source: "iana", + compressible: true, + extensions: ["gltf"] + }, + "model/gltf-binary": { + source: "iana", + compressible: true, + extensions: ["glb"] + }, + "model/iges": { + source: "iana", + compressible: false, + extensions: ["igs", "iges"] + }, + "model/jt": { + source: "iana", + extensions: ["jt"] + }, + "model/mesh": { + source: "iana", + compressible: false, + extensions: ["msh", "mesh", "silo"] + }, + "model/mtl": { + source: "iana", + extensions: ["mtl"] + }, + "model/obj": { + source: "iana", + extensions: ["obj"] + }, + "model/prc": { + source: "iana", + extensions: ["prc"] + }, + "model/step": { + source: "iana", + extensions: ["step", "stp", "stpnc", "p21", "210"] + }, + "model/step+xml": { + source: "iana", + compressible: true, + extensions: ["stpx"] + }, + "model/step+zip": { + source: "iana", + compressible: false, + extensions: ["stpz"] + }, + "model/step-xml+zip": { + source: "iana", + compressible: false, + extensions: ["stpxz"] + }, + "model/stl": { + source: "iana", + extensions: ["stl"] + }, + "model/u3d": { + source: "iana", + extensions: ["u3d"] + }, + "model/vnd.bary": { + source: "iana", + extensions: ["bary"] + }, + "model/vnd.cld": { + source: "iana", + extensions: ["cld"] + }, + "model/vnd.collada+xml": { + source: "iana", + compressible: true, + extensions: ["dae"] + }, + "model/vnd.dwf": { + source: "iana", + extensions: ["dwf"] + }, + "model/vnd.flatland.3dml": { + source: "iana" + }, + "model/vnd.gdl": { + source: "iana", + extensions: ["gdl"] + }, + "model/vnd.gs-gdl": { + source: "apache" + }, + "model/vnd.gs.gdl": { + source: "iana" + }, + "model/vnd.gtw": { + source: "iana", + extensions: ["gtw"] + }, + "model/vnd.moml+xml": { + source: "iana", + compressible: true + }, + "model/vnd.mts": { + source: "iana", + extensions: ["mts"] + }, + "model/vnd.opengex": { + source: "iana", + extensions: ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + source: "iana", + extensions: ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + source: "iana", + extensions: ["x_t"] + }, + "model/vnd.pytha.pyox": { + source: "iana", + extensions: ["pyo", "pyox"] + }, + "model/vnd.rosette.annotated-data-model": { + source: "iana" + }, + "model/vnd.sap.vds": { + source: "iana", + extensions: ["vds"] + }, + "model/vnd.usda": { + source: "iana", + extensions: ["usda"] + }, + "model/vnd.usdz+zip": { + source: "iana", + compressible: false, + extensions: ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + source: "iana", + extensions: ["bsp"] + }, + "model/vnd.vtu": { + source: "iana", + extensions: ["vtu"] + }, + "model/vrml": { + source: "iana", + compressible: false, + extensions: ["wrl", "vrml"] + }, + "model/x3d+binary": { + source: "apache", + compressible: false, + extensions: ["x3db", "x3dbz"] + }, + "model/x3d+fastinfoset": { + source: "iana", + extensions: ["x3db"] + }, + "model/x3d+vrml": { + source: "apache", + compressible: false, + extensions: ["x3dv", "x3dvz"] + }, + "model/x3d+xml": { + source: "iana", + compressible: true, + extensions: ["x3d", "x3dz"] + }, + "model/x3d-vrml": { + source: "iana", + extensions: ["x3dv"] + }, + "multipart/alternative": { + source: "iana", + compressible: false + }, + "multipart/appledouble": { + source: "iana" + }, + "multipart/byteranges": { + source: "iana" + }, + "multipart/digest": { + source: "iana" + }, + "multipart/encrypted": { + source: "iana", + compressible: false + }, + "multipart/form-data": { + source: "iana", + compressible: false + }, + "multipart/header-set": { + source: "iana" + }, + "multipart/mixed": { + source: "iana" + }, + "multipart/multilingual": { + source: "iana" + }, + "multipart/parallel": { + source: "iana" + }, + "multipart/related": { + source: "iana", + compressible: false + }, + "multipart/report": { + source: "iana" + }, + "multipart/signed": { + source: "iana", + compressible: false + }, + "multipart/vnd.bint.med-plus": { + source: "iana" + }, + "multipart/voice-message": { + source: "iana" + }, + "multipart/x-mixed-replace": { + source: "iana" + }, + "text/1d-interleaved-parityfec": { + source: "iana" + }, + "text/cache-manifest": { + source: "iana", + compressible: true, + extensions: ["appcache", "manifest"] + }, + "text/calendar": { + source: "iana", + extensions: ["ics", "ifb"] + }, + "text/calender": { + compressible: true + }, + "text/cmd": { + compressible: true + }, + "text/coffeescript": { + extensions: ["coffee", "litcoffee"] + }, + "text/cql": { + source: "iana" + }, + "text/cql-expression": { + source: "iana" + }, + "text/cql-identifier": { + source: "iana" + }, + "text/css": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["css"] + }, + "text/csv": { + source: "iana", + compressible: true, + extensions: ["csv"] + }, + "text/csv-schema": { + source: "iana" + }, + "text/directory": { + source: "iana" + }, + "text/dns": { + source: "iana" + }, + "text/ecmascript": { + source: "apache" + }, + "text/encaprtp": { + source: "iana" + }, + "text/enriched": { + source: "iana" + }, + "text/fhirpath": { + source: "iana" + }, + "text/flexfec": { + source: "iana" + }, + "text/fwdred": { + source: "iana" + }, + "text/gff3": { + source: "iana" + }, + "text/grammar-ref-list": { + source: "iana" + }, + "text/hl7v2": { + source: "iana" + }, + "text/html": { + source: "iana", + compressible: true, + extensions: ["html", "htm", "shtml"] + }, + "text/jade": { + extensions: ["jade"] + }, + "text/javascript": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["js", "mjs"] + }, + "text/jcr-cnd": { + source: "iana" + }, + "text/jsx": { + compressible: true, + extensions: ["jsx"] + }, + "text/less": { + compressible: true, + extensions: ["less"] + }, + "text/markdown": { + source: "iana", + compressible: true, + extensions: ["md", "markdown"] + }, + "text/mathml": { + source: "nginx", + extensions: ["mml"] + }, + "text/mdx": { + compressible: true, + extensions: ["mdx"] + }, + "text/mizar": { + source: "iana" + }, + "text/n3": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["n3"] + }, + "text/parameters": { + source: "iana", + charset: "UTF-8" + }, + "text/parityfec": { + source: "iana" + }, + "text/plain": { + source: "iana", + compressible: true, + extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"] + }, + "text/provenance-notation": { + source: "iana", + charset: "UTF-8" + }, + "text/prs.fallenstein.rst": { + source: "iana" + }, + "text/prs.lines.tag": { + source: "iana", + extensions: ["dsc"] + }, + "text/prs.prop.logic": { + source: "iana" + }, + "text/prs.texi": { + source: "iana" + }, + "text/raptorfec": { + source: "iana" + }, + "text/red": { + source: "iana" + }, + "text/rfc822-headers": { + source: "iana" + }, + "text/richtext": { + source: "iana", + compressible: true, + extensions: ["rtx"] + }, + "text/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "text/rtp-enc-aescm128": { + source: "iana" + }, + "text/rtploopback": { + source: "iana" + }, + "text/rtx": { + source: "iana" + }, + "text/sgml": { + source: "iana", + extensions: ["sgml", "sgm"] + }, + "text/shaclc": { + source: "iana" + }, + "text/shex": { + source: "iana", + extensions: ["shex"] + }, + "text/slim": { + extensions: ["slim", "slm"] + }, + "text/spdx": { + source: "iana", + extensions: ["spdx"] + }, + "text/strings": { + source: "iana" + }, + "text/stylus": { + extensions: ["stylus", "styl"] + }, + "text/t140": { + source: "iana" + }, + "text/tab-separated-values": { + source: "iana", + compressible: true, + extensions: ["tsv"] + }, + "text/troff": { + source: "iana", + extensions: ["t", "tr", "roff", "man", "me", "ms"] + }, + "text/turtle": { + source: "iana", + charset: "UTF-8", + extensions: ["ttl"] + }, + "text/ulpfec": { + source: "iana" + }, + "text/uri-list": { + source: "iana", + compressible: true, + extensions: ["uri", "uris", "urls"] + }, + "text/vcard": { + source: "iana", + compressible: true, + extensions: ["vcard"] + }, + "text/vnd.a": { + source: "iana" + }, + "text/vnd.abc": { + source: "iana" + }, + "text/vnd.ascii-art": { + source: "iana" + }, + "text/vnd.curl": { + source: "iana", + extensions: ["curl"] + }, + "text/vnd.curl.dcurl": { + source: "apache", + extensions: ["dcurl"] + }, + "text/vnd.curl.mcurl": { + source: "apache", + extensions: ["mcurl"] + }, + "text/vnd.curl.scurl": { + source: "apache", + extensions: ["scurl"] + }, + "text/vnd.debian.copyright": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.dmclientscript": { + source: "iana" + }, + "text/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.exchangeable": { + source: "iana" + }, + "text/vnd.familysearch.gedcom": { + source: "iana", + extensions: ["ged"] + }, + "text/vnd.ficlab.flt": { + source: "iana" + }, + "text/vnd.fly": { + source: "iana", + extensions: ["fly"] + }, + "text/vnd.fmi.flexstor": { + source: "iana", + extensions: ["flx"] + }, + "text/vnd.gml": { + source: "iana" + }, + "text/vnd.graphviz": { + source: "iana", + extensions: ["gv"] + }, + "text/vnd.hans": { + source: "iana" + }, + "text/vnd.hgl": { + source: "iana" + }, + "text/vnd.in3d.3dml": { + source: "iana", + extensions: ["3dml"] + }, + "text/vnd.in3d.spot": { + source: "iana", + extensions: ["spot"] + }, + "text/vnd.iptc.newsml": { + source: "iana" + }, + "text/vnd.iptc.nitf": { + source: "iana" + }, + "text/vnd.latex-z": { + source: "iana" + }, + "text/vnd.motorola.reflex": { + source: "iana" + }, + "text/vnd.ms-mediapackage": { + source: "iana" + }, + "text/vnd.net2phone.commcenter.command": { + source: "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + source: "iana" + }, + "text/vnd.senx.warpscript": { + source: "iana" + }, + "text/vnd.si.uricatalogue": { + source: "apache" + }, + "text/vnd.sosi": { + source: "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + source: "iana", + charset: "UTF-8", + extensions: ["jad"] + }, + "text/vnd.trolltech.linguist": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.vcf": { + source: "iana" + }, + "text/vnd.wap.si": { + source: "iana" + }, + "text/vnd.wap.sl": { + source: "iana" + }, + "text/vnd.wap.wml": { + source: "iana", + extensions: ["wml"] + }, + "text/vnd.wap.wmlscript": { + source: "iana", + extensions: ["wmls"] + }, + "text/vnd.zoo.kcl": { + source: "iana" + }, + "text/vtt": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["vtt"] + }, + "text/wgsl": { + source: "iana", + extensions: ["wgsl"] + }, + "text/x-asm": { + source: "apache", + extensions: ["s", "asm"] + }, + "text/x-c": { + source: "apache", + extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"] + }, + "text/x-component": { + source: "nginx", + extensions: ["htc"] + }, + "text/x-fortran": { + source: "apache", + extensions: ["f", "for", "f77", "f90"] + }, + "text/x-gwt-rpc": { + compressible: true + }, + "text/x-handlebars-template": { + extensions: ["hbs"] + }, + "text/x-java-source": { + source: "apache", + extensions: ["java"] + }, + "text/x-jquery-tmpl": { + compressible: true + }, + "text/x-lua": { + extensions: ["lua"] + }, + "text/x-markdown": { + compressible: true, + extensions: ["mkd"] + }, + "text/x-nfo": { + source: "apache", + extensions: ["nfo"] + }, + "text/x-opml": { + source: "apache", + extensions: ["opml"] + }, + "text/x-org": { + compressible: true, + extensions: ["org"] + }, + "text/x-pascal": { + source: "apache", + extensions: ["p", "pas"] + }, + "text/x-processing": { + compressible: true, + extensions: ["pde"] + }, + "text/x-sass": { + extensions: ["sass"] + }, + "text/x-scss": { + extensions: ["scss"] + }, + "text/x-setext": { + source: "apache", + extensions: ["etx"] + }, + "text/x-sfv": { + source: "apache", + extensions: ["sfv"] + }, + "text/x-suse-ymp": { + compressible: true, + extensions: ["ymp"] + }, + "text/x-uuencode": { + source: "apache", + extensions: ["uu"] + }, + "text/x-vcalendar": { + source: "apache", + extensions: ["vcs"] + }, + "text/x-vcard": { + source: "apache", + extensions: ["vcf"] + }, + "text/xml": { + source: "iana", + compressible: true, + extensions: ["xml"] + }, + "text/xml-external-parsed-entity": { + source: "iana" + }, + "text/yaml": { + compressible: true, + extensions: ["yaml", "yml"] + }, + "video/1d-interleaved-parityfec": { + source: "iana" + }, + "video/3gpp": { + source: "iana", + extensions: ["3gp", "3gpp"] + }, + "video/3gpp-tt": { + source: "iana" + }, + "video/3gpp2": { + source: "iana", + extensions: ["3g2"] + }, + "video/av1": { + source: "iana" + }, + "video/bmpeg": { + source: "iana" + }, + "video/bt656": { + source: "iana" + }, + "video/celb": { + source: "iana" + }, + "video/dv": { + source: "iana" + }, + "video/encaprtp": { + source: "iana" + }, + "video/evc": { + source: "iana" + }, + "video/ffv1": { + source: "iana" + }, + "video/flexfec": { + source: "iana" + }, + "video/h261": { + source: "iana", + extensions: ["h261"] + }, + "video/h263": { + source: "iana", + extensions: ["h263"] + }, + "video/h263-1998": { + source: "iana" + }, + "video/h263-2000": { + source: "iana" + }, + "video/h264": { + source: "iana", + extensions: ["h264"] + }, + "video/h264-rcdo": { + source: "iana" + }, + "video/h264-svc": { + source: "iana" + }, + "video/h265": { + source: "iana" + }, + "video/h266": { + source: "iana" + }, + "video/iso.segment": { + source: "iana", + extensions: ["m4s"] + }, + "video/jpeg": { + source: "iana", + extensions: ["jpgv"] + }, + "video/jpeg2000": { + source: "iana" + }, + "video/jpm": { + source: "apache", + extensions: ["jpm", "jpgm"] + }, + "video/jxsv": { + source: "iana" + }, + "video/lottie+json": { + source: "iana", + compressible: true + }, + "video/matroska": { + source: "iana" + }, + "video/matroska-3d": { + source: "iana" + }, + "video/mj2": { + source: "iana", + extensions: ["mj2", "mjp2"] + }, + "video/mp1s": { + source: "iana" + }, + "video/mp2p": { + source: "iana" + }, + "video/mp2t": { + source: "iana", + extensions: ["ts", "m2t", "m2ts", "mts"] + }, + "video/mp4": { + source: "iana", + compressible: false, + extensions: ["mp4", "mp4v", "mpg4"] + }, + "video/mp4v-es": { + source: "iana" + }, + "video/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] + }, + "video/mpeg4-generic": { + source: "iana" + }, + "video/mpv": { + source: "iana" + }, + "video/nv": { + source: "iana" + }, + "video/ogg": { + source: "iana", + compressible: false, + extensions: ["ogv"] + }, + "video/parityfec": { + source: "iana" + }, + "video/pointer": { + source: "iana" + }, + "video/quicktime": { + source: "iana", + compressible: false, + extensions: ["qt", "mov"] + }, + "video/raptorfec": { + source: "iana" + }, + "video/raw": { + source: "iana" + }, + "video/rtp-enc-aescm128": { + source: "iana" + }, + "video/rtploopback": { + source: "iana" + }, + "video/rtx": { + source: "iana" + }, + "video/scip": { + source: "iana" + }, + "video/smpte291": { + source: "iana" + }, + "video/smpte292m": { + source: "iana" + }, + "video/ulpfec": { + source: "iana" + }, + "video/vc1": { + source: "iana" + }, + "video/vc2": { + source: "iana" + }, + "video/vnd.cctv": { + source: "iana" + }, + "video/vnd.dece.hd": { + source: "iana", + extensions: ["uvh", "uvvh"] + }, + "video/vnd.dece.mobile": { + source: "iana", + extensions: ["uvm", "uvvm"] + }, + "video/vnd.dece.mp4": { + source: "iana" + }, + "video/vnd.dece.pd": { + source: "iana", + extensions: ["uvp", "uvvp"] + }, + "video/vnd.dece.sd": { + source: "iana", + extensions: ["uvs", "uvvs"] + }, + "video/vnd.dece.video": { + source: "iana", + extensions: ["uvv", "uvvv"] + }, + "video/vnd.directv.mpeg": { + source: "iana" + }, + "video/vnd.directv.mpeg-tts": { + source: "iana" + }, + "video/vnd.dlna.mpeg-tts": { + source: "iana" + }, + "video/vnd.dvb.file": { + source: "iana", + extensions: ["dvb"] + }, + "video/vnd.fvt": { + source: "iana", + extensions: ["fvt"] + }, + "video/vnd.hns.video": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.ttsavc": { + source: "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + source: "iana" + }, + "video/vnd.motorola.video": { + source: "iana" + }, + "video/vnd.motorola.videop": { + source: "iana" + }, + "video/vnd.mpegurl": { + source: "iana", + extensions: ["mxu", "m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + source: "iana", + extensions: ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + source: "iana" + }, + "video/vnd.nokia.mp4vr": { + source: "iana" + }, + "video/vnd.nokia.videovoip": { + source: "iana" + }, + "video/vnd.objectvideo": { + source: "iana" + }, + "video/vnd.planar": { + source: "iana" + }, + "video/vnd.radgamettools.bink": { + source: "iana" + }, + "video/vnd.radgamettools.smacker": { + source: "apache" + }, + "video/vnd.sealed.mpeg1": { + source: "iana" + }, + "video/vnd.sealed.mpeg4": { + source: "iana" + }, + "video/vnd.sealed.swf": { + source: "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + source: "iana" + }, + "video/vnd.uvvu.mp4": { + source: "iana", + extensions: ["uvu", "uvvu"] + }, + "video/vnd.vivo": { + source: "iana", + extensions: ["viv"] + }, + "video/vnd.youtube.yt": { + source: "iana" + }, + "video/vp8": { + source: "iana" + }, + "video/vp9": { + source: "iana" + }, + "video/webm": { + source: "apache", + compressible: false, + extensions: ["webm"] + }, + "video/x-f4v": { + source: "apache", + extensions: ["f4v"] + }, + "video/x-fli": { + source: "apache", + extensions: ["fli"] + }, + "video/x-flv": { + source: "apache", + compressible: false, + extensions: ["flv"] + }, + "video/x-m4v": { + source: "apache", + extensions: ["m4v"] + }, + "video/x-matroska": { + source: "apache", + compressible: false, + extensions: ["mkv", "mk3d", "mks"] + }, + "video/x-mng": { + source: "apache", + extensions: ["mng"] + }, + "video/x-ms-asf": { + source: "apache", + extensions: ["asf", "asx"] + }, + "video/x-ms-vob": { + source: "apache", + extensions: ["vob"] + }, + "video/x-ms-wm": { + source: "apache", + extensions: ["wm"] + }, + "video/x-ms-wmv": { + source: "apache", + compressible: false, + extensions: ["wmv"] + }, + "video/x-ms-wmx": { + source: "apache", + extensions: ["wmx"] + }, + "video/x-ms-wvx": { + source: "apache", + extensions: ["wvx"] + }, + "video/x-msvideo": { + source: "apache", + extensions: ["avi"] + }, + "video/x-sgi-movie": { + source: "apache", + extensions: ["movie"] + }, + "video/x-smv": { + source: "apache", + extensions: ["smv"] + }, + "x-conference/x-cooltalk": { + source: "apache", + extensions: ["ice"] + }, + "x-shader/x-fragment": { + compressible: true + }, + "x-shader/x-vertex": { + compressible: true + } + }; + } +}); + +// ../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/index.js +var require_mime_db = __commonJS({ + "../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/index.js"(exports, module) { + module.exports = require_db(); + } +}); + +// ../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/mimeScore.js +var require_mimeScore = __commonJS({ + "../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/mimeScore.js"(exports, module) { + var FACET_SCORES = { + "prs.": 100, + "x-": 200, + "x.": 300, + "vnd.": 400, + default: 900 + }; + var SOURCE_SCORES = { + nginx: 10, + apache: 20, + iana: 40, + default: 30 + // definitions added by `jshttp/mime-db` project? + }; + var TYPE_SCORES = { + // prefer application/xml over text/xml + // prefer application/rtf over text/rtf + application: 1, + // prefer font/woff over application/font-woff + font: 2, + // prefer video/mp4 over audio/mp4 over application/mp4 + // See https://www.rfc-editor.org/rfc/rfc4337.html#section-2 + audio: 2, + video: 3, + default: 0 + }; + module.exports = /* @__PURE__ */ __name(function mimeScore(mimeType, source = "default") { + if (mimeType === "application/octet-stream") { + return 0; + } + const [type, subtype] = mimeType.split("/"); + const facet = subtype.replace(/(\.|x-).*/, "$1"); + const facetScore = FACET_SCORES[facet] || FACET_SCORES.default; + const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default; + const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default; + const lengthScore = 1 - mimeType.length / 100; + return facetScore + sourceScore + typeScore + lengthScore; + }, "mimeScore"); + } +}); + +// ../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/index.js +var require_mime_types = __commonJS({ + "../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/index.js"(exports) { + "use strict"; + var db = require_mime_db(); + var extname = __require("path").extname; + var mimeScore = require_mimeScore(); + var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/; + var TEXT_TYPE_REGEXP = /^text\//i; + exports.charset = charset; + exports.charsets = { lookup: charset }; + exports.contentType = contentType; + exports.extension = extension; + exports.extensions = /* @__PURE__ */ Object.create(null); + exports.lookup = lookup; + exports.types = /* @__PURE__ */ Object.create(null); + exports._extensionConflicts = []; + populateMaps(exports.extensions, exports.types); + function charset(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var mime = match && db[match[1].toLowerCase()]; + if (mime && mime.charset) { + return mime.charset; + } + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return "UTF-8"; + } + return false; + } + __name(charset, "charset"); + function contentType(str) { + if (!str || typeof str !== "string") { + return false; + } + var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str; + if (!mime) { + return false; + } + if (mime.indexOf("charset") === -1) { + var charset2 = exports.charset(mime); + if (charset2) mime += "; charset=" + charset2.toLowerCase(); + } + return mime; + } + __name(contentType, "contentType"); + function extension(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var exts = match && exports.extensions[match[1].toLowerCase()]; + if (!exts || !exts.length) { + return false; + } + return exts[0]; + } + __name(extension, "extension"); + function lookup(path) { + if (!path || typeof path !== "string") { + return false; + } + var extension2 = extname("x." + path).toLowerCase().slice(1); + if (!extension2) { + return false; + } + return exports.types[extension2] || false; + } + __name(lookup, "lookup"); + function populateMaps(extensions, types) { + Object.keys(db).forEach(/* @__PURE__ */ __name(function forEachMimeType(type) { + var mime = db[type]; + var exts = mime.extensions; + if (!exts || !exts.length) { + return; + } + extensions[type] = exts; + for (var i = 0; i < exts.length; i++) { + var extension2 = exts[i]; + types[extension2] = _preferredType(extension2, types[extension2], type); + const legacyType = _preferredTypeLegacy( + extension2, + types[extension2], + type + ); + if (legacyType !== types[extension2]) { + exports._extensionConflicts.push([extension2, legacyType, types[extension2]]); + } + } + }, "forEachMimeType")); + } + __name(populateMaps, "populateMaps"); + function _preferredType(ext, type0, type1) { + var score0 = type0 ? mimeScore(type0, db[type0].source) : 0; + var score1 = type1 ? mimeScore(type1, db[type1].source) : 0; + return score0 > score1 ? type0 : type1; + } + __name(_preferredType, "_preferredType"); + function _preferredTypeLegacy(ext, type0, type1) { + var SOURCE_RANK = ["nginx", "apache", void 0, "iana"]; + var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0; + var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0; + if (exports.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports.types[extension]?.slice(0, 12) === "application/")) { + return type0; + } + return score0 > score1 ? type0 : type1; + } + __name(_preferredTypeLegacy, "_preferredTypeLegacy"); + } +}); + +// ../../node_modules/.pnpm/media-typer@1.1.1/node_modules/media-typer/index.js +var require_media_typer = __commonJS({ + "../../node_modules/.pnpm/media-typer@1.1.1/node_modules/media-typer/index.js"(exports) { + "use strict"; + var SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/; + var TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/; + var TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; + exports.format = format; + exports.parse = parse; + exports.test = test; + function format(obj) { + if (!obj || typeof obj !== "object") { + throw new TypeError("argument obj is required"); + } + var subtype = obj.subtype; + var suffix = obj.suffix; + var type = obj.type; + if (!type || !TYPE_NAME_REGEXP.test(type)) { + throw new TypeError("invalid type"); + } + if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) { + throw new TypeError("invalid subtype"); + } + var string = type + "/" + subtype; + if (suffix) { + if (!TYPE_NAME_REGEXP.test(suffix)) { + throw new TypeError("invalid suffix"); + } + string += "+" + suffix; + } + return string; + } + __name(format, "format"); + function test(string) { + if (typeof string !== "string") { + throw new TypeError("argument string is required to be a string"); + } + return TYPE_REGEXP.test(string.toLowerCase()); + } + __name(test, "test"); + function parse(string) { + if (typeof string !== "string") { + throw new TypeError("argument string is required to be a string"); + } + var match = TYPE_REGEXP.exec(string.toLowerCase()); + if (!match) { + throw new TypeError("invalid media type"); + } + var type = match[1]; + var subtype = match[2]; + var suffix; + var index = subtype.lastIndexOf("+"); + if (index !== -1) { + suffix = subtype.substr(index + 1); + subtype = subtype.substr(0, index); + } + return new MediaType(type, subtype, suffix); + } + __name(parse, "parse"); + function MediaType(type, subtype, suffix) { + this.type = type; + this.subtype = subtype; + this.suffix = suffix; + } + __name(MediaType, "MediaType"); + } +}); + +// ../../node_modules/.pnpm/type-is@2.1.0/node_modules/type-is/index.js +var require_type_is = __commonJS({ + "../../node_modules/.pnpm/type-is@2.1.0/node_modules/type-is/index.js"(exports, module) { + "use strict"; + var contentType = require_dist(); + var mime = require_mime_types(); + var typer = require_media_typer(); + module.exports = typeofrequest; + module.exports.is = typeis; + module.exports.hasBody = hasbody; + module.exports.normalize = normalize; + module.exports.match = mimeMatch; + function typeis(value, types_) { + if (value && typeof value === "object") { + value = value.headers["content-type"]; + } + var i; + var types = types_; + var val = normalizeType(value); + if (!val) { + return false; + } + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1); + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + if (!types || !types.length) { + return val; + } + var type; + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === "+" || type.indexOf("*") !== -1 ? val : type; + } + } + return false; + } + __name(typeis, "typeis"); + function hasbody(req) { + return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]); + } + __name(hasbody, "hasbody"); + function typeofrequest(req, types_) { + if (!hasbody(req)) return null; + var types = arguments.length > 2 ? Array.prototype.slice.call(arguments, 1) : types_; + var value = req.headers["content-type"]; + return typeis(value, types); + } + __name(typeofrequest, "typeofrequest"); + function normalize(type) { + if (typeof type !== "string") { + return false; + } + switch (type) { + case "urlencoded": + return "application/x-www-form-urlencoded"; + case "multipart": + return "multipart/*"; + } + if (type[0] === "+") { + return "*/*" + type; + } + return type.indexOf("/") === -1 ? mime.lookup(type) : type; + } + __name(normalize, "normalize"); + function mimeMatch(expected, actual) { + if (expected === false) { + return false; + } + var actualParts = actual.split("/"); + var expectedParts = expected.split("/"); + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false; + } + if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) { + return false; + } + if (expectedParts[1].slice(0, 2) === "*+") { + return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].slice(1) === actualParts[1].slice(1 - expectedParts[1].length); + } + if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) { + return false; + } + return true; + } + __name(mimeMatch, "mimeMatch"); + function normalizeType(value) { + if (!value) return null; + var type = contentType.parse(value, { parameters: false }).type; + return typer.test(type) ? type : null; + } + __name(normalizeType, "normalizeType"); + } +}); + +// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/utils.js +var require_utils = __commonJS({ + "../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/utils.js"(exports, module) { + "use strict"; + var bytes = require_bytes(); + var contentType = require_dist(); + var typeis = require_type_is(); + module.exports = { + getCharset, + normalizeOptions, + passthrough + }; + function getCharset(req) { + const header = req.headers["content-type"]; + if (!header) return void 0; + return contentType.parse(header).parameters.charset?.toLowerCase(); + } + __name(getCharset, "getCharset"); + function typeChecker(type) { + return /* @__PURE__ */ __name(function checkType(req) { + return Boolean(typeis(req, type)); + }, "checkType"); + } + __name(typeChecker, "typeChecker"); + function normalizeOptions(options, defaultType) { + if (!defaultType) { + throw new TypeError("defaultType must be provided"); + } + const inflate = options?.inflate !== false; + const limit = typeof options?.limit === "undefined" || options?.limit === null ? 102400 : bytes.parse(options.limit); + const type = options?.type || defaultType; + const verify = options?.verify || false; + const defaultCharset = options?.defaultCharset || "utf-8"; + if (limit === null) { + throw new TypeError(`option limit "${String(options.limit)}" is invalid`); + } + if (verify !== false && typeof verify !== "function") { + throw new TypeError("option verify must be function"); + } + const shouldParse = typeof type !== "function" ? typeChecker(type) : type; + return { + inflate, + limit, + verify, + defaultCharset, + shouldParse + }; + } + __name(normalizeOptions, "normalizeOptions"); + function passthrough(value) { + return value; + } + __name(passthrough, "passthrough"); + } +}); + +// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/read.js +var require_read = __commonJS({ + "../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/read.js"(exports, module) { + "use strict"; + var createError = require_http_errors(); + var getBody = require_raw_body(); + var iconv = require_lib3(); + var onFinished = require_on_finished(); + var zlib = __require("node:zlib"); + var hasBody = require_type_is().hasBody; + var { getCharset } = require_utils(); + module.exports = read; + function read(req, res, next, parse, debug, options) { + if (onFinished.isFinished(req)) { + debug("body already parsed"); + next(); + return; + } + if (!("body" in req)) { + req.body = void 0; + } + if (!hasBody(req)) { + debug("skip empty body"); + next(); + return; + } + debug("content-type %j", req.headers["content-type"]); + if (!options.shouldParse(req)) { + debug("skip parsing"); + next(); + return; + } + let encoding = null; + if (options?.skipCharset !== true) { + encoding = getCharset(req) || options.defaultCharset; + if (!!options?.isValidCharset && !options.isValidCharset(encoding)) { + debug("invalid charset"); + next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding, + type: "charset.unsupported" + })); + return; + } + } + let length; + const opts = options; + let stream; + const verify = opts.verify; + try { + stream = contentstream(req, debug, opts.inflate); + length = stream.length; + stream.length = void 0; + } catch (err) { + return next(err); + } + opts.length = length; + opts.encoding = verify ? null : encoding; + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: "charset.unsupported" + })); + } + debug("read body"); + getBody(stream, opts, function(error, body) { + if (error) { + let _error; + if (error.type === "encoding.unsupported") { + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: "charset.unsupported" + }); + } else { + _error = createError(400, error); + } + if (stream !== req) { + req.unpipe(); + stream.destroy(); + } + dump(req, /* @__PURE__ */ __name(function onfinished() { + next(createError(400, _error)); + }, "onfinished")); + return; + } + if (verify) { + try { + debug("verify body"); + verify(req, res, body, encoding); + } catch (err) { + next(createError(403, err, { + body, + type: err.type || "entity.verify.failed" + })); + return; + } + } + let str = body; + try { + debug("parse body"); + str = typeof body !== "string" && encoding !== null ? iconv.decode(body, encoding) : body; + req.body = parse(str, encoding); + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || "entity.parse.failed" + })); + return; + } + next(); + }); + } + __name(read, "read"); + function contentstream(req, debug, inflate) { + const encoding = (req.headers["content-encoding"] || "identity").toLowerCase(); + const length = req.headers["content-length"]; + debug('content-encoding "%s"', encoding); + if (inflate === false && encoding !== "identity") { + throw createError(415, "content encoding unsupported", { + encoding, + type: "encoding.unsupported" + }); + } + if (encoding === "identity") { + req.length = length; + return req; + } + const stream = createDecompressionStream(encoding, debug); + req.pipe(stream); + return stream; + } + __name(contentstream, "contentstream"); + function createDecompressionStream(encoding, debug) { + switch (encoding) { + case "deflate": + debug("inflate body"); + return zlib.createInflate(); + case "gzip": + debug("gunzip body"); + return zlib.createGunzip(); + case "br": + debug("brotli decompress body"); + return zlib.createBrotliDecompress(); + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding, + type: "encoding.unsupported" + }); + } + } + __name(createDecompressionStream, "createDecompressionStream"); + function dump(req, callback) { + if (onFinished.isFinished(req)) { + callback(null); + } else { + onFinished(req, callback); + req.resume(); + } + } + __name(dump, "dump"); + } +}); + +// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/json.js +var require_json = __commonJS({ + "../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/json.js"(exports, module) { + "use strict"; + var debug = require_src()("body-parser:json"); + var read = require_read(); + var { normalizeOptions } = require_utils(); + module.exports = json; + var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/; + var JSON_SYNTAX_CHAR = "#"; + var JSON_SYNTAX_REGEXP = /#+/g; + function json(options) { + const normalizedOptions = normalizeOptions(options, "application/json"); + const parse = createJsonParser(options); + const readOptions = { + ...normalizedOptions, + // assert charset per RFC 7159 sec 8.1 + isValidCharset: /* @__PURE__ */ __name((charset) => charset.slice(0, 4) === "utf-", "isValidCharset") + }; + return /* @__PURE__ */ __name(function jsonParser(req, res, next) { + read(req, res, next, parse, debug, readOptions); + }, "jsonParser"); + } + __name(json, "json"); + function createJsonParser(options) { + const reviver = options?.reviver; + const strict = options?.strict !== false; + if (strict) { + return /* @__PURE__ */ __name(function parse(body) { + if (body.length === 0) { + return {}; + } + const first = firstchar(body); + if (first !== "{" && first !== "[") { + debug("strict violation"); + throw createStrictSyntaxError(body, first); + } + try { + debug("parse json"); + return JSON.parse(body, reviver); + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }); + } + }, "parse"); + } + return /* @__PURE__ */ __name(function parse(body) { + if (body.length === 0) { + return {}; + } + try { + debug("parse json"); + return JSON.parse(body, reviver); + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }); + } + }, "parse"); + } + __name(createJsonParser, "createJsonParser"); + function createStrictSyntaxError(str, char) { + const index = str.indexOf(char); + let partial = ""; + if (index !== -1) { + partial = str.substring(0, index) + JSON_SYNTAX_CHAR.repeat(str.length - index); + } + try { + JSON.parse(partial); + throw new SyntaxError("strict violation"); + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace(JSON_SYNTAX_REGEXP, function(placeholder) { + return str.substring(index, index + placeholder.length); + }), + stack: e.stack + }); + } + } + __name(createStrictSyntaxError, "createStrictSyntaxError"); + function firstchar(str) { + const match = FIRST_CHAR_REGEXP.exec(str); + return match ? match[1] : void 0; + } + __name(firstchar, "firstchar"); + function normalizeJsonSyntaxError(error, obj) { + const keys = Object.getOwnPropertyNames(error); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key !== "stack" && key !== "message") { + delete error[key]; + } + } + error.stack = obj.stack.replace(error.message, obj.message); + error.message = obj.message; + return error; + } + __name(normalizeJsonSyntaxError, "normalizeJsonSyntaxError"); + } +}); + +// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/raw.js +var require_raw = __commonJS({ + "../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/raw.js"(exports, module) { + "use strict"; + var debug = require_src()("body-parser:raw"); + var read = require_read(); + var { normalizeOptions, passthrough } = require_utils(); + module.exports = raw; + function raw(options) { + const normalizedOptions = normalizeOptions(options, "application/octet-stream"); + const readOptions = { + ...normalizedOptions, + // Skip charset validation and parse the body as is + skipCharset: true + }; + return /* @__PURE__ */ __name(function rawParser(req, res, next) { + read(req, res, next, passthrough, debug, readOptions); + }, "rawParser"); + } + __name(raw, "raw"); + } +}); + +// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/text.js +var require_text = __commonJS({ + "../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/text.js"(exports, module) { + "use strict"; + var debug = require_src()("body-parser:text"); + var read = require_read(); + var { normalizeOptions, passthrough } = require_utils(); + module.exports = text; + function text(options) { + const normalizedOptions = normalizeOptions(options, "text/plain"); + return /* @__PURE__ */ __name(function textParser(req, res, next) { + read(req, res, next, passthrough, debug, normalizedOptions); + }, "textParser"); + } + __name(text, "text"); + } +}); + +// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js +var require_type = __commonJS({ + "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js"(exports, module) { + "use strict"; + module.exports = TypeError; + } +}); + +// ../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/util.inspect.js +var require_util_inspect = __commonJS({ + "../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/util.inspect.js"(exports, module) { + module.exports = __require("util").inspect; + } +}); + +// ../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/index.js +var require_object_inspect = __commonJS({ + "../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/index.js"(exports, module) { + var hasMap = typeof Map === "function" && Map.prototype; + var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null; + var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null; + var mapForEach = hasMap && Map.prototype.forEach; + var hasSet = typeof Set === "function" && Set.prototype; + var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null; + var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null; + var setForEach = hasSet && Set.prototype.forEach; + var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype; + var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; + var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype; + var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; + var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype; + var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; + var booleanValueOf = Boolean.prototype.valueOf; + var objectToString = Object.prototype.toString; + var functionToString = Function.prototype.toString; + var $match = String.prototype.match; + var $slice = String.prototype.slice; + var $replace = String.prototype.replace; + var $toUpperCase = String.prototype.toUpperCase; + var $toLowerCase = String.prototype.toLowerCase; + var $test = RegExp.prototype.test; + var $concat = Array.prototype.concat; + var $join = Array.prototype.join; + var $arrSlice = Array.prototype.slice; + var $floor = Math.floor; + var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null; + var gOPS = Object.getOwnPropertySymbols; + var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null; + var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object"; + var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null; + var isEnumerable = Object.prototype.propertyIsEnumerable; + var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) { + return O.__proto__; + } : null); + function addNumericSeparator(num, str) { + if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === "number") { + var int = num < 0 ? -$floor(-num) : $floor(num); + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, ""); + } + } + return $replace.call(str, sepRegex, "$&_"); + } + __name(addNumericSeparator, "addNumericSeparator"); + var utilInspect = require_util_inspect(); + var inspectCustom = utilInspect.custom; + var inspectSymbol = isSymbol2(inspectCustom) ? inspectCustom : null; + var quotes = { + __proto__: null, + "double": '"', + single: "'" + }; + var quoteREs = { + __proto__: null, + "double": /(["\\])/g, + single: /(['\\])/g + }; + module.exports = /* @__PURE__ */ __name(function inspect_(obj, options, depth, seen) { + var opts = options || {}; + if (has(opts, "quoteStyle") && !has(quotes, opts.quoteStyle)) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, "customInspect") ? opts.customInspect : true; + if (typeof customInspect !== "boolean" && customInspect !== "symbol") { + throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"); + } + if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + if (typeof obj === "undefined") { + return "undefined"; + } + if (obj === null) { + return "null"; + } + if (typeof obj === "boolean") { + return obj ? "true" : "false"; + } + if (typeof obj === "string") { + return inspectString(obj, opts); + } + if (typeof obj === "number") { + if (obj === 0) { + return Infinity / obj > 0 ? "0" : "-0"; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === "bigint") { + var bigIntStr = String(obj) + "n"; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth; + if (typeof depth === "undefined") { + depth = 0; + } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") { + return isArray(obj) ? "[Array]" : "[Object]"; + } + var indent = getIndent(opts, depth); + if (typeof seen === "undefined") { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return "[Circular]"; + } + function inspect(value, from2, noIndent) { + if (from2) { + seen = $arrSlice.call(seen); + seen.push(from2); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, "quoteStyle")) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + __name(inspect, "inspect"); + if (typeof obj === "function" && !isRegExp(obj)) { + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : ""); + } + if (isSymbol2(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj); + return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = "<" + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts); + } + s += ">"; + if (obj.childNodes && obj.childNodes.length) { + s += "..."; + } + s += "</" + $toLowerCase.call(String(obj.nodeName)) + ">"; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { + return "[]"; + } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return "[" + indentedJoin(xs, indent) + "]"; + } + return "[ " + $join.call(xs, ", ") + " ]"; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) { + return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }"; + } + if (parts.length === 0) { + return "[" + String(obj) + "]"; + } + return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }"; + } + if (typeof obj === "object" && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); + } else if (customInspect !== "symbol" && typeof obj.inspect === "function") { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function(value, key) { + mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj)); + }); + } + return collectionOf("Map", mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function(value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf("Set", setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf("WeakMap"); + } + if (isWeakSet(obj)) { + return weakCollectionOf("WeakSet"); + } + if (isWeakRef(obj)) { + return weakCollectionOf("WeakRef"); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString2(obj)) { + return markBoxed(inspect(String(obj))); + } + if (typeof window !== "undefined" && obj === window) { + return "{ [object Window] }"; + } + if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) { + return "{ [object globalThis] }"; + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject2 = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? "" : "null prototype"; + var stringTag = !isPlainObject2 && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : ""; + var constructorTag = isPlainObject2 || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : ""; + var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : ""); + if (ys.length === 0) { + return tag + "{}"; + } + if (indent) { + return tag + "{" + indentedJoin(ys, indent) + "}"; + } + return tag + "{ " + $join.call(ys, ", ") + " }"; + } + return String(obj); + }, "inspect_"); + function wrapQuotes(s, defaultStyle, opts) { + var style = opts.quoteStyle || defaultStyle; + var quoteChar = quotes[style]; + return quoteChar + s + quoteChar; + } + __name(wrapQuotes, "wrapQuotes"); + function quote(s) { + return $replace.call(String(s), /"/g, """); + } + __name(quote, "quote"); + function canTrustToString(obj) { + return !toStringTag || !(typeof obj === "object" && (toStringTag in obj || typeof obj[toStringTag] !== "undefined")); + } + __name(canTrustToString, "canTrustToString"); + function isArray(obj) { + return toStr(obj) === "[object Array]" && canTrustToString(obj); + } + __name(isArray, "isArray"); + function isDate(obj) { + return toStr(obj) === "[object Date]" && canTrustToString(obj); + } + __name(isDate, "isDate"); + function isRegExp(obj) { + return toStr(obj) === "[object RegExp]" && canTrustToString(obj); + } + __name(isRegExp, "isRegExp"); + function isError(obj) { + return toStr(obj) === "[object Error]" && canTrustToString(obj); + } + __name(isError, "isError"); + function isString2(obj) { + return toStr(obj) === "[object String]" && canTrustToString(obj); + } + __name(isString2, "isString"); + function isNumber(obj) { + return toStr(obj) === "[object Number]" && canTrustToString(obj); + } + __name(isNumber, "isNumber"); + function isBoolean(obj) { + return toStr(obj) === "[object Boolean]" && canTrustToString(obj); + } + __name(isBoolean, "isBoolean"); + function isSymbol2(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === "object" && obj instanceof Symbol; + } + if (typeof obj === "symbol") { + return true; + } + if (!obj || typeof obj !== "object" || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) { + } + return false; + } + __name(isSymbol2, "isSymbol"); + function isBigInt(obj) { + if (!obj || typeof obj !== "object" || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) { + } + return false; + } + __name(isBigInt, "isBigInt"); + var hasOwn = Object.prototype.hasOwnProperty || function(key) { + return key in this; + }; + function has(obj, key) { + return hasOwn.call(obj, key); + } + __name(has, "has"); + function toStr(obj) { + return objectToString.call(obj); + } + __name(toStr, "toStr"); + function nameOf(f) { + if (f.name) { + return f.name; + } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { + return m[1]; + } + return null; + } + __name(nameOf, "nameOf"); + function indexOf(xs, x) { + if (xs.indexOf) { + return xs.indexOf(x); + } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { + return i; + } + } + return -1; + } + __name(indexOf, "indexOf"); + function isMap(x) { + if (!mapSize || !x || typeof x !== "object") { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; + } catch (e) { + } + return false; + } + __name(isMap, "isMap"); + function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== "object") { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; + } catch (e) { + } + return false; + } + __name(isWeakMap, "isWeakMap"); + function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== "object") { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) { + } + return false; + } + __name(isWeakRef, "isWeakRef"); + function isSet(x) { + if (!setSize || !x || typeof x !== "object") { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; + } catch (e) { + } + return false; + } + __name(isSet, "isSet"); + function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== "object") { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; + } catch (e) { + } + return false; + } + __name(isWeakSet, "isWeakSet"); + function isElement(x) { + if (!x || typeof x !== "object") { + return false; + } + if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === "string" && typeof x.getAttribute === "function"; + } + __name(isElement, "isElement"); + function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : ""); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var quoteRE = quoteREs[opts.quoteStyle || "single"]; + quoteRE.lastIndex = 0; + var s = $replace.call($replace.call(str, quoteRE, "\\$1"), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, "single", opts); + } + __name(inspectString, "inspectString"); + function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: "b", + 9: "t", + 10: "n", + 12: "f", + 13: "r" + }[n]; + if (x) { + return "\\" + x; + } + return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16)); + } + __name(lowbyte, "lowbyte"); + function markBoxed(str) { + return "Object(" + str + ")"; + } + __name(markBoxed, "markBoxed"); + function weakCollectionOf(type) { + return type + " { ? }"; + } + __name(weakCollectionOf, "weakCollectionOf"); + function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", "); + return type + " (" + size + ") {" + joinedEntries + "}"; + } + __name(collectionOf, "collectionOf"); + function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], "\n") >= 0) { + return false; + } + } + return true; + } + __name(singleLineValues, "singleLineValues"); + function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === " ") { + baseIndent = " "; + } else if (typeof opts.indent === "number" && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), " "); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; + } + __name(getIndent, "getIndent"); + function indentedJoin(xs, indent) { + if (xs.length === 0) { + return ""; + } + var lineJoiner = "\n" + indent.prev + indent.base; + return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev; + } + __name(indentedJoin, "indentedJoin"); + function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ""; + } + } + var syms = typeof gOPS === "function" ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap["$" + syms[k]] = syms[k]; + } + } + for (var key in obj) { + if (!has(obj, key)) { + continue; + } + if (isArr && String(Number(key)) === key && key < obj.length) { + continue; + } + if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) { + continue; + } else if ($test.call(/[^\w$]/, key)) { + xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj)); + } else { + xs.push(key + ": " + inspect(obj[key], obj)); + } + } + if (typeof gOPS === "function") { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj)); + } + } + } + return xs; + } + __name(arrObjKeys, "arrObjKeys"); + } +}); + +// ../../node_modules/.pnpm/side-channel-list@1.0.1/node_modules/side-channel-list/index.js +var require_side_channel_list = __commonJS({ + "../../node_modules/.pnpm/side-channel-list@1.0.1/node_modules/side-channel-list/index.js"(exports, module) { + "use strict"; + var inspect = require_object_inspect(); + var $TypeError = require_type(); + var listGetNode = /* @__PURE__ */ __name(function(list, key, isDelete) { + var prev = list; + var curr; + for (; (curr = prev.next) != null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + if (!isDelete) { + curr.next = /** @type {NonNullable<typeof list.next>} */ + list.next; + list.next = curr; + } + return curr; + } + } + }, "listGetNode"); + var listGet = /* @__PURE__ */ __name(function(objects, key) { + if (!objects) { + return void 0; + } + var node = listGetNode(objects, key); + return node && node.value; + }, "listGet"); + var listSet = /* @__PURE__ */ __name(function(objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + objects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */ + { + // eslint-disable-line no-param-reassign, no-extra-parens + key, + next: objects.next, + value + }; + } + }, "listSet"); + var listHas = /* @__PURE__ */ __name(function(objects, key) { + if (!objects) { + return false; + } + return !!listGetNode(objects, key); + }, "listHas"); + var listDelete = /* @__PURE__ */ __name(function(objects, key) { + if (objects) { + return listGetNode(objects, key, true); + } + }, "listDelete"); + module.exports = /* @__PURE__ */ __name(function getSideChannelList() { + var $o; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + var deletedNode = listDelete($o, key); + if (deletedNode && $o && !$o.next) { + $o = void 0; + } + return !!deletedNode; + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + return listGet($o, key); + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + return listHas($o, key); + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if (!$o) { + $o = { + next: void 0 + }; + } + listSet( + /** @type {NonNullable<typeof $o>} */ + $o, + key, + value + ); + }, "set") + }; + return channel; + }, "getSideChannelList"); + } +}); + +// ../../node_modules/.pnpm/es-object-atoms@1.1.2/node_modules/es-object-atoms/index.js +var require_es_object_atoms = __commonJS({ + "../../node_modules/.pnpm/es-object-atoms@1.1.2/node_modules/es-object-atoms/index.js"(exports, module) { + "use strict"; + module.exports = Object; + } +}); + +// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js +var require_es_errors = __commonJS({ + "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js"(exports, module) { + "use strict"; + module.exports = Error; + } +}); + +// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js +var require_eval = __commonJS({ + "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js"(exports, module) { + "use strict"; + module.exports = EvalError; + } +}); + +// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js +var require_range = __commonJS({ + "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js"(exports, module) { + "use strict"; + module.exports = RangeError; + } +}); + +// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js +var require_ref = __commonJS({ + "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js"(exports, module) { + "use strict"; + module.exports = ReferenceError; + } +}); + +// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js +var require_syntax = __commonJS({ + "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js"(exports, module) { + "use strict"; + module.exports = SyntaxError; + } +}); + +// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js +var require_uri = __commonJS({ + "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js"(exports, module) { + "use strict"; + module.exports = URIError; + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js +var require_abs = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js"(exports, module) { + "use strict"; + module.exports = Math.abs; + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js +var require_floor = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js"(exports, module) { + "use strict"; + module.exports = Math.floor; + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js +var require_max2 = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js"(exports, module) { + "use strict"; + module.exports = Math.max; + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js +var require_min2 = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js"(exports, module) { + "use strict"; + module.exports = Math.min; + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js +var require_pow = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js"(exports, module) { + "use strict"; + module.exports = Math.pow; + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js +var require_round = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js"(exports, module) { + "use strict"; + module.exports = Math.round; + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js +var require_isNaN = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js"(exports, module) { + "use strict"; + module.exports = Number.isNaN || /* @__PURE__ */ __name(function isNaN2(a) { + return a !== a; + }, "isNaN"); + } +}); + +// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js +var require_sign = __commonJS({ + "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js"(exports, module) { + "use strict"; + var $isNaN = require_isNaN(); + module.exports = /* @__PURE__ */ __name(function sign(number) { + if ($isNaN(number) || number === 0) { + return number; + } + return number < 0 ? -1 : 1; + }, "sign"); + } +}); + +// ../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js +var require_gOPD = __commonJS({ + "../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js"(exports, module) { + "use strict"; + module.exports = Object.getOwnPropertyDescriptor; + } +}); + +// ../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js +var require_gopd = __commonJS({ + "../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js"(exports, module) { + "use strict"; + var $gOPD = require_gOPD(); + if ($gOPD) { + try { + $gOPD([], "length"); + } catch (e) { + $gOPD = null; + } + } + module.exports = $gOPD; + } +}); + +// ../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js +var require_es_define_property = __commonJS({ + "../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js"(exports, module) { + "use strict"; + var $defineProperty = Object.defineProperty || false; + if ($defineProperty) { + try { + $defineProperty({}, "a", { value: 1 }); + } catch (e) { + $defineProperty = false; + } + } + module.exports = $defineProperty; + } +}); + +// ../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js +var require_shams = __commonJS({ + "../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js"(exports, module) { + "use strict"; + module.exports = /* @__PURE__ */ __name(function hasSymbols() { + if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") { + return false; + } + if (typeof Symbol.iterator === "symbol") { + return true; + } + var obj = {}; + var sym = /* @__PURE__ */ Symbol("test"); + var symObj = Object(sym); + if (typeof sym === "string") { + return false; + } + if (Object.prototype.toString.call(sym) !== "[object Symbol]") { + return false; + } + if (Object.prototype.toString.call(symObj) !== "[object Symbol]") { + return false; + } + var symVal = 42; + obj[sym] = symVal; + for (var _ in obj) { + return false; + } + if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) { + return false; + } + if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) { + return false; + } + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { + return false; + } + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { + return false; + } + if (typeof Object.getOwnPropertyDescriptor === "function") { + var descriptor = ( + /** @type {PropertyDescriptor} */ + Object.getOwnPropertyDescriptor(obj, sym) + ); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { + return false; + } + } + return true; + }, "hasSymbols"); + } +}); + +// ../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js +var require_has_symbols = __commonJS({ + "../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js"(exports, module) { + "use strict"; + var origSymbol = typeof Symbol !== "undefined" && Symbol; + var hasSymbolSham = require_shams(); + module.exports = /* @__PURE__ */ __name(function hasNativeSymbols() { + if (typeof origSymbol !== "function") { + return false; + } + if (typeof Symbol !== "function") { + return false; + } + if (typeof origSymbol("foo") !== "symbol") { + return false; + } + if (typeof /* @__PURE__ */ Symbol("bar") !== "symbol") { + return false; + } + return hasSymbolSham(); + }, "hasNativeSymbols"); + } +}); + +// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js +var require_Reflect_getPrototypeOf = __commonJS({ + "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js"(exports, module) { + "use strict"; + module.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null; + } +}); + +// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js +var require_Object_getPrototypeOf = __commonJS({ + "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js"(exports, module) { + "use strict"; + var $Object = require_es_object_atoms(); + module.exports = $Object.getPrototypeOf || null; + } +}); + +// ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js +var require_implementation = __commonJS({ + "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js"(exports, module) { + "use strict"; + var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; + var toStr = Object.prototype.toString; + var max = Math.max; + var funcType = "[object Function]"; + var concatty = /* @__PURE__ */ __name(function concatty2(a, b) { + var arr = []; + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + return arr; + }, "concatty"); + var slicy = /* @__PURE__ */ __name(function slicy2(arrLike, offset) { + var arr = []; + for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; + }, "slicy"); + var joiny = /* @__PURE__ */ __name(function(arr, joiner) { + var str = ""; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; + }, "joiny"); + module.exports = /* @__PURE__ */ __name(function bind(that) { + var target = this; + if (typeof target !== "function" || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + var bound; + var binder = /* @__PURE__ */ __name(function() { + if (this instanceof bound) { + var result = target.apply( + this, + concatty(args, arguments) + ); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply( + that, + concatty(args, arguments) + ); + }, "binder"); + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = "$" + i; + } + bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder); + if (target.prototype) { + var Empty = /* @__PURE__ */ __name(function Empty2() { + }, "Empty"); + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }, "bind"); + } +}); + +// ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js +var require_function_bind = __commonJS({ + "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js"(exports, module) { + "use strict"; + var implementation = require_implementation(); + module.exports = Function.prototype.bind || implementation; + } +}); + +// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js +var require_functionCall = __commonJS({ + "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js"(exports, module) { + "use strict"; + module.exports = Function.prototype.call; + } +}); + +// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js +var require_functionApply = __commonJS({ + "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js"(exports, module) { + "use strict"; + module.exports = Function.prototype.apply; + } +}); + +// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js +var require_reflectApply = __commonJS({ + "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js"(exports, module) { + "use strict"; + module.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply; + } +}); + +// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js +var require_actualApply = __commonJS({ + "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js"(exports, module) { + "use strict"; + var bind = require_function_bind(); + var $apply = require_functionApply(); + var $call = require_functionCall(); + var $reflectApply = require_reflectApply(); + module.exports = $reflectApply || bind.call($call, $apply); + } +}); + +// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js +var require_call_bind_apply_helpers = __commonJS({ + "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js"(exports, module) { + "use strict"; + var bind = require_function_bind(); + var $TypeError = require_type(); + var $call = require_functionCall(); + var $actualApply = require_actualApply(); + module.exports = /* @__PURE__ */ __name(function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== "function") { + throw new $TypeError("a function is required"); + } + return $actualApply(bind, $call, args); + }, "callBindBasic"); + } +}); + +// ../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js +var require_get = __commonJS({ + "../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js"(exports, module) { + "use strict"; + var callBind = require_call_bind_apply_helpers(); + var gOPD = require_gopd(); + var hasProtoAccessor; + try { + hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ + [].__proto__ === Array.prototype; + } catch (e) { + if (!e || typeof e !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") { + throw e; + } + } + var desc = !!hasProtoAccessor && gOPD && gOPD( + Object.prototype, + /** @type {keyof typeof Object.prototype} */ + "__proto__" + ); + var $Object = Object; + var $getPrototypeOf = $Object.getPrototypeOf; + module.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? ( + /** @type {import('./get')} */ + /* @__PURE__ */ __name(function getDunder(value) { + return $getPrototypeOf(value == null ? value : $Object(value)); + }, "getDunder") + ) : false; + } +}); + +// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js +var require_get_proto = __commonJS({ + "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js"(exports, module) { + "use strict"; + var reflectGetProto = require_Reflect_getPrototypeOf(); + var originalGetProto = require_Object_getPrototypeOf(); + var getDunderProto = require_get(); + module.exports = reflectGetProto ? /* @__PURE__ */ __name(function getProto(O) { + return reflectGetProto(O); + }, "getProto") : originalGetProto ? /* @__PURE__ */ __name(function getProto(O) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new TypeError("getProto: not an object"); + } + return originalGetProto(O); + }, "getProto") : getDunderProto ? /* @__PURE__ */ __name(function getProto(O) { + return getDunderProto(O); + }, "getProto") : null; + } +}); + +// ../../node_modules/.pnpm/hasown@2.0.4/node_modules/hasown/index.js +var require_hasown = __commonJS({ + "../../node_modules/.pnpm/hasown@2.0.4/node_modules/hasown/index.js"(exports, module) { + "use strict"; + var call = Function.prototype.call; + var $hasOwn = Object.prototype.hasOwnProperty; + var bind = require_function_bind(); + module.exports = bind.call(call, $hasOwn); + } +}); + +// ../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js +var require_get_intrinsic = __commonJS({ + "../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js"(exports, module) { + "use strict"; + var undefined2; + var $Object = require_es_object_atoms(); + var $Error = require_es_errors(); + var $EvalError = require_eval(); + var $RangeError = require_range(); + var $ReferenceError = require_ref(); + var $SyntaxError = require_syntax(); + var $TypeError = require_type(); + var $URIError = require_uri(); + var abs = require_abs(); + var floor = require_floor(); + var max = require_max2(); + var min = require_min2(); + var pow = require_pow(); + var round = require_round(); + var sign = require_sign(); + var $Function = Function; + var getEvalledConstructor = /* @__PURE__ */ __name(function(expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")(); + } catch (e) { + } + }, "getEvalledConstructor"); + var $gOPD = require_gopd(); + var $defineProperty = require_es_define_property(); + var throwTypeError = /* @__PURE__ */ __name(function() { + throw new $TypeError(); + }, "throwTypeError"); + var ThrowTypeError = $gOPD ? (function() { + try { + arguments.callee; + return throwTypeError; + } catch (calleeThrows) { + try { + return $gOPD(arguments, "callee").get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + })() : throwTypeError; + var hasSymbols = require_has_symbols()(); + var getProto = require_get_proto(); + var $ObjectGPO = require_Object_getPrototypeOf(); + var $ReflectGPO = require_Reflect_getPrototypeOf(); + var $apply = require_functionApply(); + var $call = require_functionCall(); + var needsEval = {}; + var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array); + var INTRINSICS = { + __proto__: null, + "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError, + "%Array%": Array, + "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer, + "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2, + "%AsyncFromSyncIteratorPrototype%": undefined2, + "%AsyncFunction%": needsEval, + "%AsyncGenerator%": needsEval, + "%AsyncGeneratorFunction%": needsEval, + "%AsyncIteratorPrototype%": needsEval, + "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics, + "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt, + "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array, + "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array, + "%Boolean%": Boolean, + "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView, + "%Date%": Date, + "%decodeURI%": decodeURI, + "%decodeURIComponent%": decodeURIComponent, + "%encodeURI%": encodeURI, + "%encodeURIComponent%": encodeURIComponent, + "%Error%": $Error, + "%eval%": eval, + // eslint-disable-line no-eval + "%EvalError%": $EvalError, + "%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array, + "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array, + "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array, + "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry, + "%Function%": $Function, + "%GeneratorFunction%": needsEval, + "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array, + "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array, + "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array, + "%isFinite%": isFinite, + "%isNaN%": isNaN, + "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2, + "%JSON%": typeof JSON === "object" ? JSON : undefined2, + "%Map%": typeof Map === "undefined" ? undefined2 : Map, + "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()), + "%Math%": Math, + "%Number%": Number, + "%Object%": $Object, + "%Object.getOwnPropertyDescriptor%": $gOPD, + "%parseFloat%": parseFloat, + "%parseInt%": parseInt, + "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise, + "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy, + "%RangeError%": $RangeError, + "%ReferenceError%": $ReferenceError, + "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect, + "%RegExp%": RegExp, + "%Set%": typeof Set === "undefined" ? undefined2 : Set, + "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()), + "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer, + "%String%": String, + "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2, + "%Symbol%": hasSymbols ? Symbol : undefined2, + "%SyntaxError%": $SyntaxError, + "%ThrowTypeError%": ThrowTypeError, + "%TypedArray%": TypedArray, + "%TypeError%": $TypeError, + "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array, + "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray, + "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array, + "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array, + "%URIError%": $URIError, + "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap, + "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef, + "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet, + "%Function.prototype.call%": $call, + "%Function.prototype.apply%": $apply, + "%Object.defineProperty%": $defineProperty, + "%Object.getPrototypeOf%": $ObjectGPO, + "%Math.abs%": abs, + "%Math.floor%": floor, + "%Math.max%": max, + "%Math.min%": min, + "%Math.pow%": pow, + "%Math.round%": round, + "%Math.sign%": sign, + "%Reflect.getPrototypeOf%": $ReflectGPO + }; + if (getProto) { + try { + null.error; + } catch (e) { + errorProto = getProto(getProto(e)); + INTRINSICS["%Error.prototype%"] = errorProto; + } + } + var errorProto; + var doEval = /* @__PURE__ */ __name(function doEval2(name) { + var value; + if (name === "%AsyncFunction%") { + value = getEvalledConstructor("async function () {}"); + } else if (name === "%GeneratorFunction%") { + value = getEvalledConstructor("function* () {}"); + } else if (name === "%AsyncGeneratorFunction%") { + value = getEvalledConstructor("async function* () {}"); + } else if (name === "%AsyncGenerator%") { + var fn = doEval2("%AsyncGeneratorFunction%"); + if (fn) { + value = fn.prototype; + } + } else if (name === "%AsyncIteratorPrototype%") { + var gen = doEval2("%AsyncGenerator%"); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + INTRINSICS[name] = value; + return value; + }, "doEval"); + var LEGACY_ALIASES = { + __proto__: null, + "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"], + "%ArrayPrototype%": ["Array", "prototype"], + "%ArrayProto_entries%": ["Array", "prototype", "entries"], + "%ArrayProto_forEach%": ["Array", "prototype", "forEach"], + "%ArrayProto_keys%": ["Array", "prototype", "keys"], + "%ArrayProto_values%": ["Array", "prototype", "values"], + "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"], + "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"], + "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"], + "%BooleanPrototype%": ["Boolean", "prototype"], + "%DataViewPrototype%": ["DataView", "prototype"], + "%DatePrototype%": ["Date", "prototype"], + "%ErrorPrototype%": ["Error", "prototype"], + "%EvalErrorPrototype%": ["EvalError", "prototype"], + "%Float32ArrayPrototype%": ["Float32Array", "prototype"], + "%Float64ArrayPrototype%": ["Float64Array", "prototype"], + "%FunctionPrototype%": ["Function", "prototype"], + "%Generator%": ["GeneratorFunction", "prototype"], + "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"], + "%Int8ArrayPrototype%": ["Int8Array", "prototype"], + "%Int16ArrayPrototype%": ["Int16Array", "prototype"], + "%Int32ArrayPrototype%": ["Int32Array", "prototype"], + "%JSONParse%": ["JSON", "parse"], + "%JSONStringify%": ["JSON", "stringify"], + "%MapPrototype%": ["Map", "prototype"], + "%NumberPrototype%": ["Number", "prototype"], + "%ObjectPrototype%": ["Object", "prototype"], + "%ObjProto_toString%": ["Object", "prototype", "toString"], + "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"], + "%PromisePrototype%": ["Promise", "prototype"], + "%PromiseProto_then%": ["Promise", "prototype", "then"], + "%Promise_all%": ["Promise", "all"], + "%Promise_reject%": ["Promise", "reject"], + "%Promise_resolve%": ["Promise", "resolve"], + "%RangeErrorPrototype%": ["RangeError", "prototype"], + "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"], + "%RegExpPrototype%": ["RegExp", "prototype"], + "%SetPrototype%": ["Set", "prototype"], + "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"], + "%StringPrototype%": ["String", "prototype"], + "%SymbolPrototype%": ["Symbol", "prototype"], + "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"], + "%TypedArrayPrototype%": ["TypedArray", "prototype"], + "%TypeErrorPrototype%": ["TypeError", "prototype"], + "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"], + "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"], + "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"], + "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"], + "%URIErrorPrototype%": ["URIError", "prototype"], + "%WeakMapPrototype%": ["WeakMap", "prototype"], + "%WeakSetPrototype%": ["WeakSet", "prototype"] + }; + var bind = require_function_bind(); + var hasOwn = require_hasown(); + var $concat = bind.call($call, Array.prototype.concat); + var $spliceApply = bind.call($apply, Array.prototype.splice); + var $replace = bind.call($call, String.prototype.replace); + var $strSlice = bind.call($call, String.prototype.slice); + var $exec = bind.call($call, RegExp.prototype.exec); + var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = /* @__PURE__ */ __name(function stringToPath2(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === "%" && last !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); + } else if (last === "%" && first !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`"); + } + var result = []; + $replace(string, rePropName, function(match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match; + }); + return result; + }, "stringToPath"); + var getBaseIntrinsic = /* @__PURE__ */ __name(function getBaseIntrinsic2(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = "%" + alias[0] + "%"; + } + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === "undefined" && !allowMissing) { + throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!"); + } + return { + alias, + name: intrinsicName, + value + }; + } + throw new $SyntaxError("intrinsic " + name + " does not exist!"); + }, "getBaseIntrinsic"); + module.exports = /* @__PURE__ */ __name(function GetIntrinsic(name, allowMissing) { + if (typeof name !== "string" || name.length === 0) { + throw new $TypeError("intrinsic name must be a non-empty string"); + } + if (arguments.length > 1 && typeof allowMissing !== "boolean") { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name"); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ""; + var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) { + throw new $SyntaxError("property names with quotes must have matching quotes"); + } + if (part === "constructor" || !isOwn) { + skipFurtherCaching = true; + } + intrinsicBaseName += "." + part; + intrinsicRealName = "%" + intrinsicBaseName + "%"; + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available."); + } + return void undefined2; + } + if ($gOPD && i + 1 >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + if (isOwn && "get" in desc && !("originalValue" in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; + }, "GetIntrinsic"); + } +}); + +// ../../node_modules/.pnpm/call-bound@1.0.4/node_modules/call-bound/index.js +var require_call_bound = __commonJS({ + "../../node_modules/.pnpm/call-bound@1.0.4/node_modules/call-bound/index.js"(exports, module) { + "use strict"; + var GetIntrinsic = require_get_intrinsic(); + var callBindBasic = require_call_bind_apply_helpers(); + var $indexOf = callBindBasic([GetIntrinsic("%String.prototype.indexOf%")]); + module.exports = /* @__PURE__ */ __name(function callBoundIntrinsic(name, allowMissing) { + var intrinsic = ( + /** @type {(this: unknown, ...args: unknown[]) => unknown} */ + GetIntrinsic(name, !!allowMissing) + ); + if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) { + return callBindBasic( + /** @type {const} */ + [intrinsic] + ); + } + return intrinsic; + }, "callBoundIntrinsic"); + } +}); + +// ../../node_modules/.pnpm/side-channel-map@1.0.1/node_modules/side-channel-map/index.js +var require_side_channel_map = __commonJS({ + "../../node_modules/.pnpm/side-channel-map@1.0.1/node_modules/side-channel-map/index.js"(exports, module) { + "use strict"; + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_call_bound(); + var inspect = require_object_inspect(); + var $TypeError = require_type(); + var $Map = GetIntrinsic("%Map%", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSet = callBound("Map.prototype.set", true); + var $mapHas = callBound("Map.prototype.has", true); + var $mapDelete = callBound("Map.prototype.delete", true); + var $mapSize = callBound("Map.prototype.size", true); + module.exports = !!$Map && /** @type {Exclude<import('.'), false>} */ + /* @__PURE__ */ __name(function getSideChannelMap() { + var $m; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + if ($m) { + var result = $mapDelete($m, key); + if ($mapSize($m) === 0) { + $m = void 0; + } + return result; + } + return false; + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + if ($m) { + return $mapGet($m, key); + } + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + if ($m) { + return $mapHas($m, key); + } + return false; + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key, value); + }, "set") + }; + return channel; + }, "getSideChannelMap"); + } +}); + +// ../../node_modules/.pnpm/side-channel-weakmap@1.0.2/node_modules/side-channel-weakmap/index.js +var require_side_channel_weakmap = __commonJS({ + "../../node_modules/.pnpm/side-channel-weakmap@1.0.2/node_modules/side-channel-weakmap/index.js"(exports, module) { + "use strict"; + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_call_bound(); + var inspect = require_object_inspect(); + var getSideChannelMap = require_side_channel_map(); + var $TypeError = require_type(); + var $WeakMap = GetIntrinsic("%WeakMap%", true); + var $weakMapGet = callBound("WeakMap.prototype.get", true); + var $weakMapSet = callBound("WeakMap.prototype.set", true); + var $weakMapHas = callBound("WeakMap.prototype.has", true); + var $weakMapDelete = callBound("WeakMap.prototype.delete", true); + module.exports = $WeakMap ? ( + /** @type {Exclude<import('.'), false>} */ + /* @__PURE__ */ __name(function getSideChannelWeakMap() { + var $wm; + var $m; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapDelete($wm, key); + } + } else if (getSideChannelMap) { + if ($m) { + return $m["delete"](key); + } + } + return false; + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapGet($wm, key); + } + } + return $m && $m.get(key); + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapHas($wm, key); + } + } + return !!$m && $m.has(key); + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if (getSideChannelMap) { + if (!$m) { + $m = getSideChannelMap(); + } + $m.set(key, value); + } + }, "set") + }; + return channel; + }, "getSideChannelWeakMap") + ) : getSideChannelMap; + } +}); + +// ../../node_modules/.pnpm/side-channel@1.1.1/node_modules/side-channel/index.js +var require_side_channel = __commonJS({ + "../../node_modules/.pnpm/side-channel@1.1.1/node_modules/side-channel/index.js"(exports, module) { + "use strict"; + var $TypeError = require_type(); + var inspect = require_object_inspect(); + var getSideChannelList = require_side_channel_list(); + var getSideChannelMap = require_side_channel_map(); + var getSideChannelWeakMap = require_side_channel_weakmap(); + var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList; + module.exports = /* @__PURE__ */ __name(function getSideChannel() { + var $channelData; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + var keyDesc = key && Object(key) === key ? "the given object key" : inspect(key); + throw new $TypeError("Side channel does not contain " + keyDesc); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + return !!$channelData && $channelData["delete"](key); + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + return $channelData && $channelData.get(key); + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + return !!$channelData && $channelData.has(key); + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if (!$channelData) { + $channelData = makeChannel(); + } + $channelData.set(key, value); + }, "set") + }; + return channel; + }, "getSideChannel"); + } +}); + +// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/formats.js +var require_formats = __commonJS({ + "../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/formats.js"(exports, module) { + "use strict"; + var replace = String.prototype.replace; + var percentTwenties = /%20/g; + var Format = { + RFC1738: "RFC1738", + RFC3986: "RFC3986" + }; + module.exports = { + "default": Format.RFC3986, + formatters: { + RFC1738: /* @__PURE__ */ __name(function(value) { + return replace.call(value, percentTwenties, "+"); + }, "RFC1738"), + RFC3986: /* @__PURE__ */ __name(function(value) { + return String(value); + }, "RFC3986") + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 + }; + } +}); + +// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/utils.js +var require_utils2 = __commonJS({ + "../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/utils.js"(exports, module) { + "use strict"; + var formats = require_formats(); + var getSideChannel = require_side_channel(); + var defineProperty = require_es_define_property(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var overflowChannel = getSideChannel(); + var markOverflow = /* @__PURE__ */ __name(function markOverflow2(obj, maxIndex) { + overflowChannel.set(obj, maxIndex); + return obj; + }, "markOverflow"); + var isOverflow = /* @__PURE__ */ __name(function isOverflow2(obj) { + return overflowChannel.has(obj); + }, "isOverflow"); + var getMaxIndex = /* @__PURE__ */ __name(function getMaxIndex2(obj) { + return overflowChannel.get(obj); + }, "getMaxIndex"); + var setMaxIndex = /* @__PURE__ */ __name(function setMaxIndex2(obj, maxIndex) { + overflowChannel.set(obj, maxIndex); + }, "setMaxIndex"); + var conflictChannel = getSideChannel(); + var markConflict = /* @__PURE__ */ __name(function markConflict2(obj, maxIndex) { + conflictChannel.set(obj, maxIndex); + return obj; + }, "markConflict"); + var isConflict = /* @__PURE__ */ __name(function isConflict2(obj) { + return conflictChannel.has(obj); + }, "isConflict"); + var getConflictIndex = /* @__PURE__ */ __name(function getConflictIndex2(obj) { + return conflictChannel.get(obj); + }, "getConflictIndex"); + var hexTable = (function() { + var array = []; + for (var i = 0; i < 256; ++i) { + array[array.length] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase(); + } + return array; + })(); + var compactQueue = /* @__PURE__ */ __name(function compactQueue2(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + if (isArray(obj)) { + var compacted = []; + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== "undefined") { + compacted[compacted.length] = obj[j]; + } + } + item.obj[item.prop] = compacted; + } + } + }, "compactQueue"); + var arrayToObject = /* @__PURE__ */ __name(function arrayToObject2(source, options) { + var obj = options && options.plainObjects ? { __proto__: null } : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== "undefined") { + obj[i] = source[i]; + } + } + return obj; + }, "arrayToObject"); + var setProperty = /* @__PURE__ */ __name(function setProperty2(obj, key, value) { + if (key === "__proto__" && defineProperty) { + defineProperty(obj, key, { + configurable: true, + enumerable: true, + value, + writable: true + }); + } else { + obj[key] = value; + } + }, "setProperty"); + var maxNumericIndex = /* @__PURE__ */ __name(function maxNumericIndex2(obj, min) { + var max = min; + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var num = parseInt(keys[i], 10); + if (String(num) === keys[i] && num > max) { + max = num; + } + } + return max; + }, "maxNumericIndex"); + var limitedPair = /* @__PURE__ */ __name(function limitedPair2(first, second, options) { + var pair = [first, second]; + if (options && typeof options.arrayLimit === "number" && pair.length > options.arrayLimit) { + if (options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(pair, options), 1); + } + return pair; + }, "limitedPair"); + var merge = /* @__PURE__ */ __name(function merge2(target, source, options) { + if (!source) { + return target; + } + if (typeof source !== "object" && typeof source !== "function") { + if (isArray(target)) { + var nextIndex = target.length; + if (options && typeof options.arrayLimit === "number" && nextIndex >= options.arrayLimit) { + if (options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(target.concat(source), options), nextIndex); + } + target[nextIndex] = source; + } else if (target && typeof target === "object") { + if (isOverflow(target)) { + var newIndex = getMaxIndex(target) + 1; + target[newIndex] = source; + setMaxIndex(target, newIndex); + } else if (options && options.strictMerge && isConflict(target)) { + var nextConflict = getConflictIndex(target) + 1; + if (options.throwOnLimitExceeded && typeof options.arrayLimit === "number" && nextConflict >= options.arrayLimit) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + target[nextConflict] = source; + markConflict(target, nextConflict); + } else if (options && options.strictMerge) { + var conflict = limitedPair(target, source, options); + return isArray(conflict) ? markConflict(conflict, 1) : conflict; + } else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return limitedPair(target, source, options); + } + return target; + } + if (!target || typeof target !== "object") { + if (isOverflow(source)) { + var sourceKeys = Object.keys(source); + var result = options && options.plainObjects ? { __proto__: null, 0: target } : { 0: target }; + for (var m = 0; m < sourceKeys.length; m++) { + var oldKey = parseInt(sourceKeys[m], 10); + result[oldKey + 1] = source[sourceKeys[m]]; + } + return markOverflow(result, getMaxIndex(source) + 1); + } + var combined = [target].concat(source); + if (options && typeof options.arrayLimit === "number" && combined.length > options.arrayLimit) { + if (options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(combined, options), combined.length - 1); + } + return combined; + } + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + if (isConflict(target)) { + markConflict(mergeTarget, target.length - 1); + } + } + if (isArray(target) && isArray(source)) { + source.forEach(function(item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === "object" && item && typeof item === "object") { + target[i] = merge2(targetItem, item, options); + } else { + target[target.length] = item; + } + } else { + target[i] = item; + } + }); + if (options && typeof options.arrayLimit === "number" && target.length > options.arrayLimit) { + if (options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(target, options), target.length - 1); + } + return target; + } + return Object.keys(source).reduce(function(acc, key) { + var value = source[key]; + if (has.call(acc, key)) { + setProperty(acc, key, merge2(acc[key], value, options)); + } else { + setProperty(acc, key, value); + } + if (isOverflow(source) && !isOverflow(acc)) { + markOverflow(acc, maxNumericIndex(acc, getMaxIndex(source))); + } + if (isOverflow(acc)) { + var keyNum = parseInt(key, 10); + if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) { + setMaxIndex(acc, keyNum); + } + } + if (isConflict(acc)) { + var conflictKey = parseInt(key, 10); + if (String(conflictKey) === key && conflictKey > getConflictIndex(acc)) { + markConflict(acc, conflictKey); + } + } + return acc; + }, mergeTarget); + }, "merge"); + var assign = /* @__PURE__ */ __name(function assignSingleSource(target, source) { + return Object.keys(source).reduce(function(acc, key) { + setProperty(acc, key, source[key]); + return acc; + }, target); + }, "assignSingleSource"); + var decode = /* @__PURE__ */ __name(function(str, defaultDecoder, charset) { + if (typeof str === "string" && str.indexOf("%") === -1) { + return str.indexOf("+") === -1 ? str : str.replace(/\+/g, " "); + } + var strWithoutPlus = str.replace(/\+/g, " "); + if (charset === "iso-8859-1") { + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } + }, "decode"); + var hasToPrimitive = typeof Symbol === "function" && typeof Symbol.toPrimitive === "symbol"; + var arrayJoin = Array.prototype.join; + var arrayToString = Array.prototype.toString; + var objectToString = Object.prototype.toString; + var toCoercible = /* @__PURE__ */ __name(function toCoercible2(value, joining) { + if (!value || typeof value !== "object" && typeof value !== "function") { + return value; + } + if (hasToPrimitive && value[Symbol.toPrimitive] != null) { + return value; + } + if (isArray(value) && value.toString === arrayToString && value.join === arrayJoin) { + var ancestors = joining || getSideChannel(); + if (ancestors.has(value)) { + return ""; + } + ancestors.set(value, true); + var copy; + for (var i = 0; i < value.length; i += 1) { + var item = value[i]; + var coerced = toCoercible2(item, ancestors); + if (!copy && coerced !== item) { + copy = []; + for (var j = 0; j < i; j += 1) { + copy[j] = value[j]; + } + } + if (copy) { + copy[i] = coerced; + } + } + ancestors["delete"](value); + return copy || value; + } + if (typeof value.toString === "function") { + return value; + } + var valueOf = value.valueOf; + if (typeof valueOf === "function") { + var primitive = valueOf.call(value); + if (!primitive || typeof primitive !== "object" && typeof primitive !== "function") { + return String(primitive); + } + } + return objectToString.call(value); + }, "toCoercible"); + var limit = 1024; + var encode = /* @__PURE__ */ __name(function encode2(str, defaultEncoder, charset, kind, format) { + if (str.length === 0) { + return str; + } + var string = str; + if (typeof str === "symbol") { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== "string") { + string = String(toCoercible(str)); + } + if (charset === "iso-8859-1") { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) { + return "%26%23" + parseInt($0.slice(2), 16) + "%3B"; + }).replace(/\+/g, "%2B"); + } + var out = ""; + for (var j = 0; j < string.length; j += limit) { + var segment = string.length >= limit ? string.slice(j, j + limit) : string; + if (j + limit < string.length) { + var last = segment.charCodeAt(segment.length - 1); + if (last >= 55296 && last <= 56319) { + segment = segment.slice(0, -1); + j -= 1; + } + } + var arr = []; + for (var i = 0; i < segment.length; ++i) { + var c = segment.charCodeAt(i); + if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) { + arr[arr.length] = segment.charAt(i); + continue; + } + if (c < 128) { + arr[arr.length] = hexTable[c]; + continue; + } + if (c < 2048) { + arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63]; + continue; + } + if (c < 55296 || c >= 57344) { + arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]; + continue; + } + i += 1; + c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023); + arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]; + } + out += arr.join(""); + } + return out; + }, "encode"); + var compact = /* @__PURE__ */ __name(function compact2(value) { + var queue = [{ obj: { o: value }, prop: "o" }]; + var refs = getSideChannel(); + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === "object" && val !== null && !refs.has(val)) { + queue[queue.length] = { obj, prop: key }; + refs.set(val, true); + } + } + } + compactQueue(queue); + return value; + }, "compact"); + var isRegExp = /* @__PURE__ */ __name(function isRegExp2(obj) { + return Object.prototype.toString.call(obj) === "[object RegExp]"; + }, "isRegExp"); + var isBuffer = /* @__PURE__ */ __name(function isBuffer2(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + return !!(obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj)); + }, "isBuffer"); + var combine = /* @__PURE__ */ __name(function combine2(a, b, arrayLimit, plainObjects, throwOnLimitExceeded) { + if (isOverflow(a)) { + if (throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + var bValues = isArray(b) ? b : [b]; + var newIndex = getMaxIndex(a); + for (var i = 0; i < bValues.length; ++i) { + newIndex += 1; + a[newIndex] = bValues[i]; + } + setMaxIndex(a, newIndex); + return a; + } + var result = [].concat(a, b); + if (result.length > arrayLimit) { + if (throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(result, { plainObjects }), result.length - 1); + } + return result; + }, "combine"); + var maybeMap = /* @__PURE__ */ __name(function maybeMap2(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped[mapped.length] = fn(val[i]); + } + return mapped; + } + return fn(val); + }, "maybeMap"); + module.exports = { + arrayToObject, + assign, + combine, + compact, + decode, + encode, + isBuffer, + isOverflow, + isRegExp, + markOverflow, + maybeMap, + merge, + toCoercible + }; + } +}); + +// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/stringify.js +var require_stringify = __commonJS({ + "../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/stringify.js"(exports, module) { + "use strict"; + var getSideChannel = require_side_channel(); + var utils = require_utils2(); + var formats = require_formats(); + var has = Object.prototype.hasOwnProperty; + var arrayPrefixGenerators = { + brackets: /* @__PURE__ */ __name(function brackets(prefix) { + return prefix + "[]"; + }, "brackets"), + comma: "comma", + indices: /* @__PURE__ */ __name(function indices(prefix, key) { + return prefix + "[" + key + "]"; + }, "indices"), + repeat: /* @__PURE__ */ __name(function repeat(prefix) { + return prefix; + }, "repeat") + }; + var isArray = Array.isArray; + var push = Array.prototype.push; + var pushToArray = /* @__PURE__ */ __name(function(arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); + }, "pushToArray"); + var toISO = Date.prototype.toISOString; + var defaultFormat = formats["default"]; + var defaults = { + addQueryPrefix: false, + allowDots: false, + allowEmptyArrays: false, + arrayFormat: "indices", + charset: "utf-8", + charsetSentinel: false, + commaRoundTrip: false, + delimiter: "&", + depth: Infinity, + encode: true, + encodeDotInKeys: false, + encoder: utils.encode, + encodeValuesOnly: false, + filter: void 0, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: /* @__PURE__ */ __name(function serializeDate(date) { + return toISO.call(date); + }, "serializeDate"), + skipNulls: false, + strictNullHandling: false + }; + var isNonNullishPrimitive = /* @__PURE__ */ __name(function isNonNullishPrimitive2(v) { + return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint"; + }, "isNonNullishPrimitive"); + var sentinel = {}; + var stringify2 = /* @__PURE__ */ __name(function stringify3(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel, depth, currentDepth) { + var obj = object; + if (currentDepth > depth) { + throw new RangeError("Input depth exceeded depth option of " + depth); + } + var tmpSc = sideChannel; + var step = 0; + var findFlag = false; + while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) { + var pos = tmpSc.get(object); + step += 1; + if (typeof pos !== "undefined") { + if (pos === step) { + throw new RangeError("Cyclic object value"); + } else { + findFlag = true; + } + } + if (typeof tmpSc.get(sentinel) === "undefined") { + step = 0; + } + } + obj = typeof filter === "function" ? filter(prefix, obj) : obj; + if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === "comma" && isArray(obj)) { + obj = utils.maybeMap(obj, function(value2) { + if (value2 instanceof Date) { + return serializeDate(value2); + } + return value2; + }); + } + if (obj === null) { + if (strictNullHandling) { + return formatter(encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format) : prefix); + } + obj = ""; + } + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format); + return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format))]; + } + return [formatter(prefix) + "=" + formatter(String(obj))]; + } + var values = []; + if (typeof obj === "undefined") { + return values; + } + var objKeys; + if (generateArrayPrefix === "comma" && isArray(obj)) { + if (encodeValuesOnly && encoder) { + obj = utils.maybeMap(obj, function(v) { + return v == null ? v : encoder(v, defaults.encoder, charset, "value", format); + }); + } + objKeys = [{ value: obj.length > 0 ? utils.toCoercible(obj).join(",") || null : void 0 }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + var encodedPrefix = String(prefix); + var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix; + if (allowEmptyArrays && isArray(obj) && obj.length === 0 && Object.keys(obj).length === 0) { + return adjustedPrefix + "[]"; + } + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key]; + if (skipNulls && value === null) { + continue; + } + var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key); + var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]"); + sideChannel.set(object, step); + var valueSideChannel = getSideChannel(); + valueSideChannel.set(sentinel, sideChannel); + pushToArray(values, stringify3( + value, + keyPrefix, + generateArrayPrefix, + commaRoundTrip, + allowEmptyArrays, + strictNullHandling, + skipNulls, + encodeDotInKeys, + generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + valueSideChannel, + depth, + currentDepth + 1 + )); + } + return values; + }, "stringify"); + var normalizeStringifyOptions = /* @__PURE__ */ __name(function normalizeStringifyOptions2(opts) { + if (!opts) { + return defaults; + } + if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") { + throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); + } + if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") { + throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided"); + } + if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") { + throw new TypeError("Encoder has to be a function."); + } + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + var format = formats["default"]; + if (typeof opts.format !== "undefined") { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError("Unknown format option provided."); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + var filter = defaults.filter; + if (typeof opts.filter === "function" || isArray(opts.filter)) { + filter = opts.filter; + } + var arrayFormat; + if (has.call(arrayPrefixGenerators, opts.arrayFormat)) { + arrayFormat = opts.arrayFormat; + } else if ("indices" in opts) { + arrayFormat = opts.indices ? "indices" : "repeat"; + } else { + arrayFormat = defaults.arrayFormat; + } + if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") { + throw new TypeError("`commaRoundTrip` must be a boolean, or absent"); + } + var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + return { + addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + arrayFormat, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + commaRoundTrip: !!opts.commaRoundTrip, + delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter, + depth: typeof opts.depth === "number" ? opts.depth : defaults.depth, + encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode, + encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys, + encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter, + format, + formatter, + serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === "function" ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling + }; + }, "normalizeStringifyOptions"); + module.exports = function(object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + var objKeys; + var filter; + if (typeof options.filter === "function") { + filter = options.filter; + obj = filter("", obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + var keys = []; + if (typeof obj !== "object" || obj === null) { + return ""; + } + var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat]; + var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip; + if (!objKeys) { + objKeys = Object.keys(obj); + } + if (options.sort) { + objKeys.sort(options.sort); + } + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + if (typeof key === "undefined" || key === null) { + continue; + } + var value = obj[key]; + if (options.skipNulls && value === null) { + continue; + } + var encodedKey = options.encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key); + pushToArray(keys, stringify2( + value, + encodedKey, + generateArrayPrefix, + commaRoundTrip, + options.allowEmptyArrays, + options.strictNullHandling, + options.skipNulls, + options.encodeDotInKeys, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset, + sideChannel, + options.depth, + 0 + )); + } + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? "?" : ""; + if (options.charsetSentinel) { + if (options.charset === "iso-8859-1") { + prefix += "utf8=%26%2310003%3B" + options.delimiter; + } else { + prefix += "utf8=%E2%9C%93" + options.delimiter; + } + } + return joined.length > 0 ? prefix + joined : ""; + }; + } +}); + +// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/parse.js +var require_parse = __commonJS({ + "../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/parse.js"(exports, module) { + "use strict"; + var getSideChannel = require_side_channel(); + var utils = require_utils2(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var getPrototypeOf = Object.getPrototypeOf; + var isPlainContainer = /* @__PURE__ */ __name(function isPlainContainer2(value) { + if (!value || typeof value !== "object") { + return false; + } + if (isArray(value)) { + return true; + } + var proto = getPrototypeOf(value); + return proto === Object.prototype || proto === null; + }, "isPlainContainer"); + var emptyCopyOf = /* @__PURE__ */ __name(function emptyCopyOf2(value) { + if (isArray(value)) { + var arr = []; + arr.length = value.length; + return arr; + } + return getPrototypeOf(value) === null ? { __proto__: null } : {}; + }, "emptyCopyOf"); + var copyInput = /* @__PURE__ */ __name(function copyInput2(input) { + var copies = getSideChannel(); + var result = {}; + var queue = [{ source: input, target: result }]; + for (var i = 0; i < queue.length; ++i) { + var source = queue[i].source; + var target = queue[i].target; + var keys = Object.keys(source); + for (var j = 0; j < keys.length; ++j) { + var value = source[keys[j]]; + if (isPlainContainer(value)) { + if (!copies.has(value)) { + var copy = emptyCopyOf(value); + copies.set(value, copy); + queue[queue.length] = { source: value, target: copy }; + } + target[keys[j]] = copies.get(value); + } else { + target[keys[j]] = value; + } + } + } + return result; + }, "copyInput"); + var defaults = { + allowDots: false, + allowEmptyArrays: false, + allowPrototypes: false, + allowSparse: false, + arrayLimit: 20, + charset: "utf-8", + charsetSentinel: false, + comma: false, + decodeDotInKeys: false, + decoder: utils.decode, + delimiter: "&", + depth: 5, + duplicates: "combine", + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1e3, + parseArrays: true, + plainObjects: false, + strictDepth: false, + strictMerge: true, + strictNullHandling: false, + throwOnLimitExceeded: false + }; + var interpretNumericEntities = /* @__PURE__ */ __name(function(str) { + return str.replace(/&#(\d+);/g, function($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); + }, "interpretNumericEntities"); + var parseArrayValue = /* @__PURE__ */ __name(function(val, options, currentArrayLength) { + if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) { + if (options.throwOnLimitExceeded) { + var commaCount = 0; + var commaIndex = val.indexOf(","); + while (commaIndex > -1) { + commaCount += 1; + if (commaCount >= options.arrayLimit) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + commaIndex = val.indexOf(",", commaIndex + 1); + } + } + return val.split(","); + } + if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return val; + }, "parseArrayValue"); + var isoSentinel = "utf8=%26%2310003%3B"; + var charsetSentinel = "utf8=%E2%9C%93"; + var parseValues = /* @__PURE__ */ __name(function parseQueryStringValues(str, options) { + var obj = { __proto__: null }; + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str; + cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]"); + var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit; + var parts = cleanStr.split( + options.delimiter, + options.throwOnLimitExceeded && typeof limit !== "undefined" ? limit + 1 : limit + ); + if (options.throwOnLimitExceeded && typeof limit !== "undefined" && parts.length > limit) { + throw new RangeError("Parameter limit exceeded. Only " + limit + " parameter" + (limit === 1 ? "" : "s") + " allowed."); + } + var skipIndex = -1; + var i; + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf("utf8=") === 0) { + if (parts[i] === charsetSentinel) { + charset = "utf-8"; + } else if (parts[i] === isoSentinel) { + charset = "iso-8859-1"; + } + skipIndex = i; + i = parts.length; + } + } + } + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + var bracketEqualsPos = part.indexOf("]="); + var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1; + var isEmptyBracketKey = pos > 1 && part.slice(pos - 2, pos) === "[]"; + var key; + var val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, "key"); + val = options.strictNullHandling ? null : ""; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key"); + if (key !== null) { + val = utils.maybeMap( + parseArrayValue( + part.slice(pos + 1), + options, + isArray(obj[key]) ? obj[key].length : 0 + ), + function(encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, "value"); + } + ); + } + } + if (val && options.interpretNumericEntities && charset === "iso-8859-1") { + val = interpretNumericEntities(String(val)); + } + if (isEmptyBracketKey) { + val = isArray(val) ? [val] : val; + } + if (options.comma && isArray(val) && val.length > options.arrayLimit) { + val = utils.combine([], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded); + } + if (key !== null) { + var existing = has.call(obj, key); + if (existing && (options.duplicates === "combine" || isEmptyBracketKey)) { + obj[key] = utils.combine( + obj[key], + val, + options.arrayLimit, + options.plainObjects, + options.throwOnLimitExceeded + ); + } else if (!existing || options.duplicates === "last") { + obj[key] = val; + } + } + } + return obj; + }, "parseQueryStringValues"); + var parseObject = /* @__PURE__ */ __name(function(chain, val, options, valuesParsed) { + var currentArrayLength = 0; + if (chain.length > 0 && chain[chain.length - 1] === "[]") { + var parentKey = chain.slice(0, -1).join(""); + currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0; + } + var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength); + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + if (root === "[]" && options.parseArrays) { + if (utils.isOverflow(leaf)) { + obj = leaf; + } else { + obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine( + [], + leaf, + options.arrayLimit, + options.plainObjects, + options.throwOnLimitExceeded + ); + } + } else { + obj = options.plainObjects ? { __proto__: null } : {}; + var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root; + var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot; + var index = parseInt(decodedRoot, 10); + var isValidArrayIndex = !isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays; + if (!options.parseArrays && decodedRoot === "") { + obj = { 0: leaf }; + } else if (isValidArrayIndex && index < options.arrayLimit) { + obj = []; + obj[index] = leaf; + } else if (isValidArrayIndex && options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } else if (isValidArrayIndex) { + obj[index] = leaf; + utils.markOverflow(obj, index); + } else if (decodedRoot !== "__proto__") { + obj[decodedRoot] = leaf; + } + } + leaf = obj; + } + return leaf; + }, "parseObject"); + var topLevelDotsToBrackets = /* @__PURE__ */ __name(function topLevelDotsToBrackets2(key) { + var result = ""; + var depth = 0; + for (var i = 0; i < key.length; i += 1) { + var cu = key.charCodeAt(i); + if (cu === 91) { + depth += 1; + result += "["; + } else if (cu === 93) { + if (depth > 0) { + depth -= 1; + } + result += "]"; + } else if (cu === 46 && depth === 0 && i + 1 < key.length && key.charCodeAt(i + 1) !== 46 && key.charCodeAt(i + 1) !== 91) { + var start = i + 1; + var j = start; + while (j < key.length && key.charCodeAt(j) !== 46 && key.charCodeAt(j) !== 91) { + j += 1; + } + result += "[" + key.slice(start, j) + "]"; + i = j - 1; + } else { + result += key.charAt(i); + } + } + return result; + }, "topLevelDotsToBrackets"); + var splitKeyIntoSegments = /* @__PURE__ */ __name(function splitKeyIntoSegments2(originalKey, options) { + var key = options.allowDots ? topLevelDotsToBrackets(originalKey) : originalKey; + if (options.depth <= 0) { + if (!options.plainObjects && has.call(Object.prototype, key)) { + if (!options.allowPrototypes) { + return; + } + } + return [key]; + } + var segments = []; + var first = key.indexOf("["); + var parent = first >= 0 ? key.slice(0, first) : key; + if (parent) { + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + segments[segments.length] = parent; + } + var n = key.length; + var open = first; + var collected = 0; + while (open >= 0 && collected < options.depth) { + var level = 1; + var i = open + 1; + var close = -1; + while (i < n && close < 0) { + var cu = key.charCodeAt(i); + if (cu === 91) { + level += 1; + } else if (cu === 93) { + level -= 1; + if (level === 0) { + close = i; + } + } + i += 1; + } + if (close < 0) { + segments[segments.length] = "[" + key.slice(open) + "]"; + return segments; + } + var seg = key.slice(open, close + 1); + var content = seg.slice(1, -1); + if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) { + return; + } + segments[segments.length] = seg; + collected += 1; + open = key.indexOf("[", close + 1); + } + if (open >= 0) { + if (options.strictDepth === true) { + throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true"); + } + segments[segments.length] = "[" + key.slice(open) + "]"; + } + return segments; + }, "splitKeyIntoSegments"); + var parseKeys = /* @__PURE__ */ __name(function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + var keys = splitKeyIntoSegments(givenKey, options); + if (!keys) { + return; + } + return parseObject(keys, val, options, valuesParsed); + }, "parseQueryStringKeys"); + var normalizeParseOptions = /* @__PURE__ */ __name(function normalizeParseOptions2(opts) { + if (!opts) { + return defaults; + } + if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") { + throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); + } + if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") { + throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided"); + } + if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") { + throw new TypeError("Decoder has to be a function."); + } + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") { + throw new TypeError("`throwOnLimitExceeded` option must be a boolean"); + } + var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset; + var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates; + if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") { + throw new TypeError("The duplicates option must be either combine, first, or last"); + } + var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + return { + allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma, + decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys, + decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth, + duplicates, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects, + strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth, + strictMerge: typeof opts.strictMerge === "boolean" ? !!opts.strictMerge : defaults.strictMerge, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling, + throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false + }; + }, "normalizeParseOptions"); + module.exports = function(str, opts) { + var options = normalizeParseOptions(opts); + if (str === "" || str === null || typeof str === "undefined") { + return options.plainObjects ? { __proto__: null } : {}; + } + var tempObj = typeof str === "string" ? parseValues(str, options) : copyInput(str); + var obj = options.plainObjects ? { __proto__: null } : {}; + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === "string"); + obj = utils.merge(obj, newObj, options); + } + if (options.allowSparse === true) { + return obj; + } + return utils.compact(obj); + }; + } +}); + +// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/index.js +var require_lib4 = __commonJS({ + "../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/index.js"(exports, module) { + "use strict"; + var stringify2 = require_stringify(); + var parse = require_parse(); + var formats = require_formats(); + module.exports = { + formats, + parse, + stringify: stringify2 + }; + } +}); + +// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/urlencoded.js +var require_urlencoded = __commonJS({ + "../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/urlencoded.js"(exports, module) { + "use strict"; + var createError = require_http_errors(); + var debug = require_src()("body-parser:urlencoded"); + var read = require_read(); + var qs = require_lib4(); + var { normalizeOptions } = require_utils(); + module.exports = urlencoded; + function urlencoded(options) { + const normalizedOptions = normalizeOptions(options, "application/x-www-form-urlencoded"); + if (normalizedOptions.defaultCharset !== "utf-8" && normalizedOptions.defaultCharset !== "iso-8859-1") { + throw new TypeError("option defaultCharset must be either utf-8 or iso-8859-1"); + } + const parse = createQueryParser(options); + const readOptions = { + ...normalizedOptions, + // assert charset + isValidCharset: /* @__PURE__ */ __name((charset) => charset === "utf-8" || charset === "iso-8859-1", "isValidCharset") + }; + return /* @__PURE__ */ __name(function urlencodedParser(req, res, next) { + read(req, res, next, parse, debug, readOptions); + }, "urlencodedParser"); + } + __name(urlencoded, "urlencoded"); + function createQueryParser(options) { + const extended = Boolean(options?.extended); + let parameterLimit = options?.parameterLimit !== void 0 ? options?.parameterLimit : 1e3; + const charsetSentinel = options?.charsetSentinel; + const interpretNumericEntities = options?.interpretNumericEntities; + const depth = extended ? options?.depth !== void 0 ? options?.depth : 32 : 0; + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError("option parameterLimit must be a positive number"); + } + if (isNaN(depth) || depth < 0) { + throw new TypeError("option depth must be a zero or a positive number"); + } + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0; + } + return /* @__PURE__ */ __name(function parse(body, encoding) { + if (!body.length) return {}; + const paramCount = parameterCount(body, parameterLimit); + if (paramCount === void 0) { + debug("too many parameters"); + throw createError(413, "too many parameters", { + type: "parameters.too.many" + }); + } + const arrayLimit = extended ? Math.max(100, paramCount) : paramCount; + debug("parse " + (extended ? "extended " : "") + "urlencoding"); + try { + return qs.parse(body, { + allowPrototypes: true, + arrayLimit, + depth, + charsetSentinel, + interpretNumericEntities, + charset: encoding, + parameterLimit, + strictDepth: true + }); + } catch (err) { + if (err instanceof RangeError) { + throw createError(400, "The input exceeded the depth", { + type: "querystring.parse.rangeError" + }); + } else { + throw err; + } + } + }, "parse"); + } + __name(createQueryParser, "createQueryParser"); + function parameterCount(body, limit) { + let count = 0; + let index = -1; + do { + count++; + if (count > limit) return void 0; + index = body.indexOf("&", index + 1); + } while (index !== -1); + return count; + } + __name(parameterCount, "parameterCount"); + } +}); + +// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/index.js +var require_body_parser = __commonJS({ + "../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/index.js"(exports, module) { + "use strict"; + exports = module.exports = bodyParser; + exports.json = require_json(); + exports.raw = require_raw(); + exports.text = require_text(); + exports.urlencoded = require_urlencoded(); + function bodyParser() { + throw new Error("The bodyParser() generic has been split into individual middleware to use instead."); + } + __name(bodyParser, "bodyParser"); + } +}); + +// ../../node_modules/.pnpm/merge-descriptors@2.0.0/node_modules/merge-descriptors/index.js +var require_merge_descriptors = __commonJS({ + "../../node_modules/.pnpm/merge-descriptors@2.0.0/node_modules/merge-descriptors/index.js"(exports, module) { + "use strict"; + function mergeDescriptors(destination, source, overwrite = true) { + if (!destination) { + throw new TypeError("The `destination` argument is required."); + } + if (!source) { + throw new TypeError("The `source` argument is required."); + } + for (const name of Object.getOwnPropertyNames(source)) { + if (!overwrite && Object.hasOwn(destination, name)) { + continue; + } + const descriptor = Object.getOwnPropertyDescriptor(source, name); + Object.defineProperty(destination, name, descriptor); + } + return destination; + } + __name(mergeDescriptors, "mergeDescriptors"); + module.exports = mergeDescriptors; + } +}); + +// ../../node_modules/.pnpm/encodeurl@2.0.0/node_modules/encodeurl/index.js +var require_encodeurl = __commonJS({ + "../../node_modules/.pnpm/encodeurl@2.0.0/node_modules/encodeurl/index.js"(exports, module) { + "use strict"; + module.exports = encodeUrl; + var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g; + var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g; + var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2"; + function encodeUrl(url) { + return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI); + } + __name(encodeUrl, "encodeUrl"); + } +}); + +// ../../node_modules/.pnpm/escape-html@1.0.3/node_modules/escape-html/index.js +var require_escape_html = __commonJS({ + "../../node_modules/.pnpm/escape-html@1.0.3/node_modules/escape-html/index.js"(exports, module) { + "use strict"; + var matchHtmlRegExp = /["'&<>]/; + module.exports = escapeHtml; + function escapeHtml(string) { + var str = "" + string; + var match = matchHtmlRegExp.exec(str); + if (!match) { + return str; + } + var escape2; + var html = ""; + var index = 0; + var lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escape2 = """; + break; + case 38: + escape2 = "&"; + break; + case 39: + escape2 = "'"; + break; + case 60: + escape2 = "<"; + break; + case 62: + escape2 = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + lastIndex = index + 1; + html += escape2; + } + return lastIndex !== index ? html + str.substring(lastIndex, index) : html; + } + __name(escapeHtml, "escapeHtml"); + } +}); + +// ../../node_modules/.pnpm/parseurl@1.3.3/node_modules/parseurl/index.js +var require_parseurl = __commonJS({ + "../../node_modules/.pnpm/parseurl@1.3.3/node_modules/parseurl/index.js"(exports, module) { + "use strict"; + var url = __require("url"); + var parse = url.parse; + var Url = url.Url; + module.exports = parseurl; + module.exports.original = originalurl; + function parseurl(req) { + var url2 = req.url; + if (url2 === void 0) { + return void 0; + } + var parsed = req._parsedUrl; + if (fresh(url2, parsed)) { + return parsed; + } + parsed = fastparse(url2); + parsed._raw = url2; + return req._parsedUrl = parsed; + } + __name(parseurl, "parseurl"); + function originalurl(req) { + var url2 = req.originalUrl; + if (typeof url2 !== "string") { + return parseurl(req); + } + var parsed = req._parsedOriginalUrl; + if (fresh(url2, parsed)) { + return parsed; + } + parsed = fastparse(url2); + parsed._raw = url2; + return req._parsedOriginalUrl = parsed; + } + __name(originalurl, "originalurl"); + function fastparse(str) { + if (typeof str !== "string" || str.charCodeAt(0) !== 47) { + return parse(str); + } + var pathname = str; + var query = null; + var search = null; + for (var i = 1; i < str.length; i++) { + switch (str.charCodeAt(i)) { + case 63: + if (search === null) { + pathname = str.substring(0, i); + query = str.substring(i + 1); + search = str.substring(i); + } + break; + case 9: + /* \t */ + case 10: + /* \n */ + case 12: + /* \f */ + case 13: + /* \r */ + case 32: + /* */ + case 35: + /* # */ + case 160: + case 65279: + return parse(str); + } + } + var url2 = Url !== void 0 ? new Url() : {}; + url2.path = str; + url2.href = str; + url2.pathname = pathname; + if (search !== null) { + url2.query = query; + url2.search = search; + } + return url2; + } + __name(fastparse, "fastparse"); + function fresh(url2, parsedUrl) { + return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url2; + } + __name(fresh, "fresh"); + } +}); + +// ../../node_modules/.pnpm/finalhandler@2.1.1/node_modules/finalhandler/index.js +var require_finalhandler = __commonJS({ + "../../node_modules/.pnpm/finalhandler@2.1.1/node_modules/finalhandler/index.js"(exports, module) { + "use strict"; + var debug = require_src()("finalhandler"); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var onFinished = require_on_finished(); + var parseUrl = require_parseurl(); + var statuses = require_statuses(); + var isFinished = onFinished.isFinished; + function createHtmlDocument(message) { + var body = escapeHtml(message).replaceAll("\n", "<br>").replaceAll(" ", "  "); + return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error\n\n\n
' + body + "
\n\n\n"; + } + __name(createHtmlDocument, "createHtmlDocument"); + module.exports = finalhandler; + function finalhandler(req, res, options) { + var opts = options || {}; + var env = opts.env || process.env.NODE_ENV || "development"; + var onerror = opts.onerror; + return function(err) { + var headers; + var msg; + var status; + if (!err && res.headersSent) { + debug("cannot 404 after headers sent"); + return; + } + if (err) { + status = getErrorStatusCode(err); + if (status === void 0) { + status = getResponseStatusCode(res); + } else { + headers = getErrorHeaders(err); + } + msg = getErrorMessage(err, status, env); + } else { + status = 404; + msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req)); + } + debug("default %s", status); + if (err && onerror) { + setImmediate(onerror, err, req, res); + } + if (res.headersSent) { + debug("cannot %d after headers sent", status); + if (req.socket) { + req.socket.destroy(); + } + return; + } + send(req, res, status, headers, msg); + }; + } + __name(finalhandler, "finalhandler"); + function getErrorHeaders(err) { + if (!err.headers || typeof err.headers !== "object") { + return void 0; + } + return { ...err.headers }; + } + __name(getErrorHeaders, "getErrorHeaders"); + function getErrorMessage(err, status, env) { + var msg; + if (env !== "production") { + msg = err.stack; + if (!msg && typeof err.toString === "function") { + msg = err.toString(); + } + } + return msg || statuses.message[status]; + } + __name(getErrorMessage, "getErrorMessage"); + function getErrorStatusCode(err) { + if (typeof err.status === "number" && err.status >= 400 && err.status < 600) { + return err.status; + } + if (typeof err.statusCode === "number" && err.statusCode >= 400 && err.statusCode < 600) { + return err.statusCode; + } + return void 0; + } + __name(getErrorStatusCode, "getErrorStatusCode"); + function getResourceName(req) { + try { + return parseUrl.original(req).pathname; + } catch (e) { + return "resource"; + } + } + __name(getResourceName, "getResourceName"); + function getResponseStatusCode(res) { + var status = res.statusCode; + if (typeof status !== "number" || status < 400 || status > 599) { + status = 500; + } + return status; + } + __name(getResponseStatusCode, "getResponseStatusCode"); + function send(req, res, status, headers, message) { + function write() { + var body = createHtmlDocument(message); + res.statusCode = status; + if (req.httpVersionMajor < 2) { + res.statusMessage = statuses.message[status]; + } + res.removeHeader("Content-Encoding"); + res.removeHeader("Content-Language"); + res.removeHeader("Content-Range"); + for (const [key, value] of Object.entries(headers ?? {})) { + res.setHeader(key, value); + } + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Content-Type", "text/html; charset=utf-8"); + res.setHeader("Content-Length", Buffer.byteLength(body, "utf8")); + if (req.method === "HEAD") { + res.end(); + return; + } + res.end(body, "utf8"); + } + __name(write, "write"); + if (isFinished(req)) { + write(); + return; + } + req.unpipe(); + onFinished(req, write); + req.resume(); + } + __name(send, "send"); + } +}); + +// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/view.js +var require_view = __commonJS({ + "../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/view.js"(exports, module) { + "use strict"; + var debug = require_src()("express:view"); + var path = __require("node:path"); + var fs = __require("node:fs"); + var dirname = path.dirname; + var basename = path.basename; + var extname = path.extname; + var join = path.join; + var resolve = path.resolve; + module.exports = View; + function View(name, options) { + var opts = options || {}; + this.defaultEngine = opts.defaultEngine; + this.ext = extname(name); + this.name = name; + this.root = opts.root; + if (!this.ext && !this.defaultEngine) { + throw new Error("No default engine was specified and no extension was provided."); + } + var fileName = name; + if (!this.ext) { + this.ext = this.defaultEngine[0] !== "." ? "." + this.defaultEngine : this.defaultEngine; + fileName += this.ext; + } + if (!opts.engines[this.ext]) { + var mod = this.ext.slice(1); + debug('require "%s"', mod); + var fn = __require(mod).__express; + if (typeof fn !== "function") { + throw new Error('Module "' + mod + '" does not provide a view engine.'); + } + opts.engines[this.ext] = fn; + } + this.engine = opts.engines[this.ext]; + this.path = this.lookup(fileName); + } + __name(View, "View"); + View.prototype.lookup = /* @__PURE__ */ __name(function lookup(name) { + var path2; + var roots = [].concat(this.root); + debug('lookup "%s"', name); + for (var i = 0; i < roots.length && !path2; i++) { + var root = roots[i]; + var loc = resolve(root, name); + var dir = dirname(loc); + var file = basename(loc); + path2 = this.resolve(dir, file); + } + return path2; + }, "lookup"); + View.prototype.render = /* @__PURE__ */ __name(function render(options, callback) { + var sync = true; + debug('render "%s"', this.path); + this.engine(this.path, options, /* @__PURE__ */ __name(function onRender() { + if (!sync) { + return callback.apply(this, arguments); + } + var args = new Array(arguments.length); + var cntx = this; + for (var i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + return process.nextTick(/* @__PURE__ */ __name(function renderTick() { + return callback.apply(cntx, args); + }, "renderTick")); + }, "onRender")); + sync = false; + }, "render"); + View.prototype.resolve = /* @__PURE__ */ __name(function resolve2(dir, file) { + var ext = this.ext; + var path2 = join(dir, file); + var stat = tryStat(path2); + if (stat && stat.isFile()) { + return path2; + } + path2 = join(dir, basename(file, ext), "index" + ext); + stat = tryStat(path2); + if (stat && stat.isFile()) { + return path2; + } + }, "resolve"); + function tryStat(path2) { + debug('stat "%s"', path2); + try { + return fs.statSync(path2); + } catch (e) { + return void 0; + } + } + __name(tryStat, "tryStat"); + } +}); + +// ../../node_modules/.pnpm/etag@1.8.1/node_modules/etag/index.js +var require_etag = __commonJS({ + "../../node_modules/.pnpm/etag@1.8.1/node_modules/etag/index.js"(exports, module) { + "use strict"; + module.exports = etag; + var crypto = __require("crypto"); + var Stats = __require("fs").Stats; + var toString = Object.prototype.toString; + function entitytag(entity) { + if (entity.length === 0) { + return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"'; + } + var hash = crypto.createHash("sha1").update(entity, "utf8").digest("base64").substring(0, 27); + var len = typeof entity === "string" ? Buffer.byteLength(entity, "utf8") : entity.length; + return '"' + len.toString(16) + "-" + hash + '"'; + } + __name(entitytag, "entitytag"); + function etag(entity, options) { + if (entity == null) { + throw new TypeError("argument entity is required"); + } + var isStats = isstats(entity); + var weak = options && typeof options.weak === "boolean" ? options.weak : isStats; + if (!isStats && typeof entity !== "string" && !Buffer.isBuffer(entity)) { + throw new TypeError("argument entity must be string, Buffer, or fs.Stats"); + } + var tag = isStats ? stattag(entity) : entitytag(entity); + return weak ? "W/" + tag : tag; + } + __name(etag, "etag"); + function isstats(obj) { + if (typeof Stats === "function" && obj instanceof Stats) { + return true; + } + return obj && typeof obj === "object" && "ctime" in obj && toString.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number"; + } + __name(isstats, "isstats"); + function stattag(stat) { + var mtime = stat.mtime.getTime().toString(16); + var size = stat.size.toString(16); + return '"' + size + "-" + mtime + '"'; + } + __name(stattag, "stattag"); + } +}); + +// ../../node_modules/.pnpm/forwarded@0.2.0/node_modules/forwarded/index.js +var require_forwarded = __commonJS({ + "../../node_modules/.pnpm/forwarded@0.2.0/node_modules/forwarded/index.js"(exports, module) { + "use strict"; + module.exports = forwarded; + function forwarded(req) { + if (!req) { + throw new TypeError("argument req is required"); + } + var proxyAddrs = parse(req.headers["x-forwarded-for"] || ""); + var socketAddr = getSocketAddr(req); + var addrs = [socketAddr].concat(proxyAddrs); + return addrs; + } + __name(forwarded, "forwarded"); + function getSocketAddr(req) { + return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress; + } + __name(getSocketAddr, "getSocketAddr"); + function parse(header) { + var end = header.length; + var list = []; + var start = header.length; + for (var i = header.length - 1; i >= 0; i--) { + switch (header.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i; + } + break; + case 44: + if (start !== end) { + list.push(header.substring(start, end)); + } + start = end = i; + break; + default: + start = i; + break; + } + } + if (start !== end) { + list.push(header.substring(start, end)); + } + return list; + } + __name(parse, "parse"); + } +}); + +// ../../node_modules/.pnpm/ipaddr.js@1.9.1/node_modules/ipaddr.js/lib/ipaddr.js +var require_ipaddr = __commonJS({ + "../../node_modules/.pnpm/ipaddr.js@1.9.1/node_modules/ipaddr.js/lib/ipaddr.js"(exports, module) { + (function() { + var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex; + ipaddr = {}; + root = this; + if (typeof module !== "undefined" && module !== null && module.exports) { + module.exports = ipaddr; + } else { + root["ipaddr"] = ipaddr; + } + matchCIDR = /* @__PURE__ */ __name(function(first, second, partSize, cidrBits) { + var part, shift; + if (first.length !== second.length) { + throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); + } + part = 0; + while (cidrBits > 0) { + shift = partSize - cidrBits; + if (shift < 0) { + shift = 0; + } + if (first[part] >> shift !== second[part] >> shift) { + return false; + } + cidrBits -= partSize; + part += 1; + } + return true; + }, "matchCIDR"); + ipaddr.subnetMatch = function(address, rangeList, defaultName) { + var k, len, rangeName, rangeSubnets, subnet; + if (defaultName == null) { + defaultName = "unicast"; + } + for (rangeName in rangeList) { + rangeSubnets = rangeList[rangeName]; + if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) { + rangeSubnets = [rangeSubnets]; + } + for (k = 0, len = rangeSubnets.length; k < len; k++) { + subnet = rangeSubnets[k]; + if (address.kind() === subnet[0].kind()) { + if (address.match.apply(address, subnet)) { + return rangeName; + } + } + } + } + return defaultName; + }; + ipaddr.IPv4 = (function() { + function IPv4(octets) { + var k, len, octet; + if (octets.length !== 4) { + throw new Error("ipaddr: ipv4 octet count should be 4"); + } + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!(0 <= octet && octet <= 255)) { + throw new Error("ipaddr: ipv4 octet should fit in 8 bits"); + } + } + this.octets = octets; + } + __name(IPv4, "IPv4"); + IPv4.prototype.kind = function() { + return "ipv4"; + }; + IPv4.prototype.toString = function() { + return this.octets.join("."); + }; + IPv4.prototype.toNormalizedString = function() { + return this.toString(); + }; + IPv4.prototype.toByteArray = function() { + return this.octets.slice(0); + }; + IPv4.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== "ipv4") { + throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); + } + return matchCIDR(this.octets, other.octets, 8, cidrRange); + }; + IPv4.prototype.SpecialRanges = { + unspecified: [[new IPv4([0, 0, 0, 0]), 8]], + broadcast: [[new IPv4([255, 255, 255, 255]), 32]], + multicast: [[new IPv4([224, 0, 0, 0]), 4]], + linkLocal: [[new IPv4([169, 254, 0, 0]), 16]], + loopback: [[new IPv4([127, 0, 0, 0]), 8]], + carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]], + "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]], + reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]] + }; + IPv4.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + IPv4.prototype.toIPv4MappedAddress = function() { + return ipaddr.IPv6.parse("::ffff:" + this.toString()); + }; + IPv4.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, octet, stop, zeros, zerotable; + zerotable = { + 0: 8, + 128: 7, + 192: 6, + 224: 5, + 240: 4, + 248: 3, + 252: 2, + 254: 1, + 255: 0 + }; + cidr = 0; + stop = false; + for (i = k = 3; k >= 0; i = k += -1) { + octet = this.octets[i]; + if (octet in zerotable) { + zeros = zerotable[octet]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 8) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 32 - cidr; + }; + return IPv4; + })(); + ipv4Part = "(0?\\d+|0x[a-f0-9]+)"; + ipv4Regexes = { + fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"), + longValue: new RegExp("^" + ipv4Part + "$", "i") + }; + ipaddr.IPv4.parser = function(string) { + var match, parseIntAuto, part, shift, value; + parseIntAuto = /* @__PURE__ */ __name(function(string2) { + if (string2[0] === "0" && string2[1] !== "x") { + return parseInt(string2, 8); + } else { + return parseInt(string2); + } + }, "parseIntAuto"); + if (match = string.match(ipv4Regexes.fourOctet)) { + return (function() { + var k, len, ref, results; + ref = match.slice(1, 6); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseIntAuto(part)); + } + return results; + })(); + } else if (match = string.match(ipv4Regexes.longValue)) { + value = parseIntAuto(match[1]); + if (value > 4294967295 || value < 0) { + throw new Error("ipaddr: address outside defined range"); + } + return (function() { + var k, results; + results = []; + for (shift = k = 0; k <= 24; shift = k += 8) { + results.push(value >> shift & 255); + } + return results; + })().reverse(); + } else { + return null; + } + }; + ipaddr.IPv6 = (function() { + function IPv6(parts, zoneId) { + var i, k, l, len, part, ref; + if (parts.length === 16) { + this.parts = []; + for (i = k = 0; k <= 14; i = k += 2) { + this.parts.push(parts[i] << 8 | parts[i + 1]); + } + } else if (parts.length === 8) { + this.parts = parts; + } else { + throw new Error("ipaddr: ipv6 part count should be 8 or 16"); + } + ref = this.parts; + for (l = 0, len = ref.length; l < len; l++) { + part = ref[l]; + if (!(0 <= part && part <= 65535)) { + throw new Error("ipaddr: ipv6 part should fit in 16 bits"); + } + } + if (zoneId) { + this.zoneId = zoneId; + } + } + __name(IPv6, "IPv6"); + IPv6.prototype.kind = function() { + return "ipv6"; + }; + IPv6.prototype.toString = function() { + return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::"); + }; + IPv6.prototype.toRFC5952String = function() { + var bestMatchIndex, bestMatchLength, match, regex, string; + regex = /((^|:)(0(:|$)){2,})/g; + string = this.toNormalizedString(); + bestMatchIndex = 0; + bestMatchLength = -1; + while (match = regex.exec(string)) { + if (match[0].length > bestMatchLength) { + bestMatchIndex = match.index; + bestMatchLength = match[0].length; + } + } + if (bestMatchLength < 0) { + return string; + } + return string.substring(0, bestMatchIndex) + "::" + string.substring(bestMatchIndex + bestMatchLength); + }; + IPv6.prototype.toByteArray = function() { + var bytes, k, len, part, ref; + bytes = []; + ref = this.parts; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + bytes.push(part >> 8); + bytes.push(part & 255); + } + return bytes; + }; + IPv6.prototype.toNormalizedString = function() { + var addr, part, suffix; + addr = (function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16)); + } + return results; + }).call(this).join(":"); + suffix = ""; + if (this.zoneId) { + suffix = "%" + this.zoneId; + } + return addr + suffix; + }; + IPv6.prototype.toFixedLengthString = function() { + var addr, part, suffix; + addr = (function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16).padStart(4, "0")); + } + return results; + }).call(this).join(":"); + suffix = ""; + if (this.zoneId) { + suffix = "%" + this.zoneId; + } + return addr + suffix; + }; + IPv6.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== "ipv6") { + throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); + } + return matchCIDR(this.parts, other.parts, 16, cidrRange); + }; + IPv6.prototype.SpecialRanges = { + unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128], + linkLocal: [new IPv6([65152, 0, 0, 0, 0, 0, 0, 0]), 10], + multicast: [new IPv6([65280, 0, 0, 0, 0, 0, 0, 0]), 8], + loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128], + uniqueLocal: [new IPv6([64512, 0, 0, 0, 0, 0, 0, 0]), 7], + ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 65535, 0, 0]), 96], + rfc6145: [new IPv6([0, 0, 0, 0, 65535, 0, 0, 0]), 96], + rfc6052: [new IPv6([100, 65435, 0, 0, 0, 0, 0, 0]), 96], + "6to4": [new IPv6([8194, 0, 0, 0, 0, 0, 0, 0]), 16], + teredo: [new IPv6([8193, 0, 0, 0, 0, 0, 0, 0]), 32], + reserved: [[new IPv6([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]] + }; + IPv6.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + IPv6.prototype.isIPv4MappedAddress = function() { + return this.range() === "ipv4Mapped"; + }; + IPv6.prototype.toIPv4Address = function() { + var high, low, ref; + if (!this.isIPv4MappedAddress()) { + throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); + } + ref = this.parts.slice(-2), high = ref[0], low = ref[1]; + return new ipaddr.IPv4([high >> 8, high & 255, low >> 8, low & 255]); + }; + IPv6.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, part, stop, zeros, zerotable; + zerotable = { + 0: 16, + 32768: 15, + 49152: 14, + 57344: 13, + 61440: 12, + 63488: 11, + 64512: 10, + 65024: 9, + 65280: 8, + 65408: 7, + 65472: 6, + 65504: 5, + 65520: 4, + 65528: 3, + 65532: 2, + 65534: 1, + 65535: 0 + }; + cidr = 0; + stop = false; + for (i = k = 7; k >= 0; i = k += -1) { + part = this.parts[i]; + if (part in zerotable) { + zeros = zerotable[part]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 16) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 128 - cidr; + }; + return IPv6; + })(); + ipv6Part = "(?:[0-9a-f]+::?)+"; + zoneIndex = "%[0-9a-z]{1,}"; + ipv6Regexes = { + zoneIndex: new RegExp(zoneIndex, "i"), + "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", "i"), + transitional: new RegExp("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)" + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), "i") + }; + expandIPv6 = /* @__PURE__ */ __name(function(string, parts) { + var colonCount, lastColon, part, replacement, replacementCount, zoneId; + if (string.indexOf("::") !== string.lastIndexOf("::")) { + return null; + } + zoneId = (string.match(ipv6Regexes["zoneIndex"]) || [])[0]; + if (zoneId) { + zoneId = zoneId.substring(1); + string = string.replace(/%.+$/, ""); + } + colonCount = 0; + lastColon = -1; + while ((lastColon = string.indexOf(":", lastColon + 1)) >= 0) { + colonCount++; + } + if (string.substr(0, 2) === "::") { + colonCount--; + } + if (string.substr(-2, 2) === "::") { + colonCount--; + } + if (colonCount > parts) { + return null; + } + replacementCount = parts - colonCount; + replacement = ":"; + while (replacementCount--) { + replacement += "0:"; + } + string = string.replace("::", replacement); + if (string[0] === ":") { + string = string.slice(1); + } + if (string[string.length - 1] === ":") { + string = string.slice(0, -1); + } + parts = (function() { + var k, len, ref, results; + ref = string.split(":"); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseInt(part, 16)); + } + return results; + })(); + return { + parts, + zoneId + }; + }, "expandIPv6"); + ipaddr.IPv6.parser = function(string) { + var addr, k, len, match, octet, octets, zoneId; + if (ipv6Regexes["native"].test(string)) { + return expandIPv6(string, 8); + } else if (match = string.match(ipv6Regexes["transitional"])) { + zoneId = match[6] || ""; + addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6); + if (addr.parts) { + octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])]; + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!(0 <= octet && octet <= 255)) { + return null; + } + } + addr.parts.push(octets[0] << 8 | octets[1]); + addr.parts.push(octets[2] << 8 | octets[3]); + return { + parts: addr.parts, + zoneId: addr.zoneId + }; + } + } + return null; + }; + ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) { + return this.parser(string) !== null; + }; + ipaddr.IPv4.isValid = function(string) { + var e; + try { + new this(this.parser(string)); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + ipaddr.IPv4.isValidFourPartDecimal = function(string) { + if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) { + return true; + } else { + return false; + } + }; + ipaddr.IPv6.isValid = function(string) { + var addr, e; + if (typeof string === "string" && string.indexOf(":") === -1) { + return false; + } + try { + addr = this.parser(string); + new this(addr.parts, addr.zoneId); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + ipaddr.IPv4.parse = function(string) { + var parts; + parts = this.parser(string); + if (parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(parts); + }; + ipaddr.IPv6.parse = function(string) { + var addr; + addr = this.parser(string); + if (addr.parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(addr.parts, addr.zoneId); + }; + ipaddr.IPv4.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 32) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, "toString", { + value: /* @__PURE__ */ __name(function() { + return this.join("/"); + }, "value") + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range"); + }; + ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) { + var filledOctetCount, j, octets; + prefix = parseInt(prefix); + if (prefix < 0 || prefix > 32) { + throw new Error("ipaddr: invalid IPv4 prefix length"); + } + octets = [0, 0, 0, 0]; + j = 0; + filledOctetCount = Math.floor(prefix / 8); + while (j < filledOctetCount) { + octets[j] = 255; + j++; + } + if (filledOctetCount < 4) { + octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8; + } + return new this(octets); + }; + ipaddr.IPv4.broadcastAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error("ipaddr: the address does not have IPv4 CIDR format"); + } + }; + ipaddr.IPv4.networkAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10)); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error("ipaddr: the address does not have IPv4 CIDR format"); + } + }; + ipaddr.IPv6.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 128) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, "toString", { + value: /* @__PURE__ */ __name(function() { + return this.join("/"); + }, "value") + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range"); + }; + ipaddr.isValid = function(string) { + return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string); + }; + ipaddr.parse = function(string) { + if (ipaddr.IPv6.isValid(string)) { + return ipaddr.IPv6.parse(string); + } else if (ipaddr.IPv4.isValid(string)) { + return ipaddr.IPv4.parse(string); + } else { + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format"); + } + }; + ipaddr.parseCIDR = function(string) { + var e; + try { + return ipaddr.IPv6.parseCIDR(string); + } catch (error1) { + e = error1; + try { + return ipaddr.IPv4.parseCIDR(string); + } catch (error12) { + e = error12; + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format"); + } + } + }; + ipaddr.fromByteArray = function(bytes) { + var length; + length = bytes.length; + if (length === 4) { + return new ipaddr.IPv4(bytes); + } else if (length === 16) { + return new ipaddr.IPv6(bytes); + } else { + throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address"); + } + }; + ipaddr.process = function(string) { + var addr; + addr = this.parse(string); + if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) { + return addr.toIPv4Address(); + } else { + return addr; + } + }; + }).call(exports); + } +}); + +// ../../node_modules/.pnpm/proxy-addr@2.0.8/node_modules/proxy-addr/index.js +var require_proxy_addr = __commonJS({ + "../../node_modules/.pnpm/proxy-addr@2.0.8/node_modules/proxy-addr/index.js"(exports, module) { + "use strict"; + module.exports = proxyaddr; + module.exports.all = alladdrs; + module.exports.compile = compile; + var forwarded = require_forwarded(); + var ipaddr = require_ipaddr(); + var DIGIT_REGEXP = /^[0-9]+$/; + var isip = ipaddr.isValid; + var parseip = ipaddr.parse; + var IP_RANGES = { + linklocal: ["169.254.0.0/16", "fe80::/10"], + loopback: ["127.0.0.1/8", "::1/128"], + uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"] + }; + function alladdrs(req, trust) { + var addrs = forwarded(req); + if (!trust) { + return addrs; + } + if (typeof trust !== "function") { + trust = compile(trust); + } + for (var i = 0; i < addrs.length - 1; i++) { + if (trust(addrs[i], i)) continue; + addrs.length = i + 1; + } + return addrs; + } + __name(alladdrs, "alladdrs"); + function compile(val) { + if (!val) { + throw new TypeError("argument is required"); + } + var trust; + if (typeof val === "string") { + trust = [val]; + } else if (Array.isArray(val)) { + trust = val.slice(); + } else { + throw new TypeError("unsupported trust argument"); + } + for (var i = 0; i < trust.length; i++) { + val = trust[i]; + if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) { + continue; + } + val = IP_RANGES[val]; + trust.splice.apply(trust, [i, 1].concat(val)); + i += val.length - 1; + } + return compileTrust(compileRangeSubnets(trust)); + } + __name(compile, "compile"); + function compileRangeSubnets(arr) { + var rangeSubnets = new Array(arr.length); + for (var i = 0; i < arr.length; i++) { + rangeSubnets[i] = parseipNotation(arr[i]); + } + return rangeSubnets; + } + __name(compileRangeSubnets, "compileRangeSubnets"); + function compileTrust(rangeSubnets) { + var len = rangeSubnets.length; + return len === 0 ? trustNone : len === 1 ? trustSingle(rangeSubnets[0]) : trustMulti(rangeSubnets); + } + __name(compileTrust, "compileTrust"); + function parseipNotation(note) { + var pos = note.lastIndexOf("/"); + var str = pos !== -1 ? note.substring(0, pos) : note; + if (!isip(str)) { + throw new TypeError("invalid IP address: " + str); + } + var ip = parseip(str); + if (pos === -1 && ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) { + ip = ip.toIPv4Address(); + } + var max = ip.kind() === "ipv6" ? 128 : 32; + var range = pos !== -1 ? note.substring(pos + 1, note.length) : null; + if (range === null) { + range = max; + } else if (DIGIT_REGEXP.test(range)) { + range = parseInt(range, 10); + } else if (ip.kind() === "ipv4" && isip(range)) { + range = parseNetmask(range); + } else { + range = null; + } + if (range <= 0 || range > max) { + throw new TypeError("invalid range on address: " + note); + } + return [ip, range]; + } + __name(parseipNotation, "parseipNotation"); + function parseNetmask(netmask) { + var ip = parseip(netmask); + var kind = ip.kind(); + return kind === "ipv4" ? ip.prefixLengthFromSubnetMask() : null; + } + __name(parseNetmask, "parseNetmask"); + function proxyaddr(req, trust) { + if (!req) { + throw new TypeError("req argument is required"); + } + if (!trust) { + throw new TypeError("trust argument is required"); + } + var addrs = alladdrs(req, trust); + var addr = addrs[addrs.length - 1]; + return addr; + } + __name(proxyaddr, "proxyaddr"); + function trustNone() { + return false; + } + __name(trustNone, "trustNone"); + function trustMulti(subnets) { + return /* @__PURE__ */ __name(function trust(addr) { + if (!isip(addr)) return false; + var ip = parseip(addr); + if (ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) { + ip = ip.toIPv4Address(); + } + var ipconv; + var kind = ip.kind(); + for (var i = 0; i < subnets.length; i++) { + var subnet = subnets[i]; + var subnetip = subnet[0]; + var subnetkind = subnetip.kind(); + var subnetrange = subnet[1]; + var trusted = ip; + if (kind !== subnetkind) { + if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) { + continue; + } + if (subnetkind !== "ipv4" && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) { + continue; + } + if (!ipconv) { + ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress(); + } + trusted = ipconv; + } else if (kind === "ipv6" && subnetip.isIPv4MappedAddress()) { + continue; + } + if (trusted.match(subnetip, subnetrange)) { + return true; + } + } + return false; + }, "trust"); + } + __name(trustMulti, "trustMulti"); + function trustSingle(subnet) { + var subnetip = subnet[0]; + var subnetkind = subnetip.kind(); + var subnetisipv4 = subnetkind === "ipv4"; + var subnetrange = subnet[1]; + return /* @__PURE__ */ __name(function trust(addr) { + if (!isip(addr)) return false; + var ip = parseip(addr); + if (ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) { + ip = ip.toIPv4Address(); + } + var kind = ip.kind(); + if (kind !== subnetkind) { + if (subnetisipv4 && !ip.isIPv4MappedAddress()) { + return false; + } + if (!subnetisipv4 && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) { + return false; + } + ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress(); + } else if (kind === "ipv6" && subnetip.isIPv4MappedAddress()) { + return false; + } + return ip.match(subnetip, subnetrange); + }, "trust"); + } + __name(trustSingle, "trustSingle"); + } +}); + +// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/utils.js +var require_utils3 = __commonJS({ + "../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/utils.js"(exports) { + "use strict"; + var { METHODS } = __require("node:http"); + var contentType = require_dist(); + var etag = require_etag(); + var mime = require_mime_types(); + var proxyaddr = require_proxy_addr(); + var qs = require_lib4(); + var querystring = __require("node:querystring"); + var { Buffer: Buffer2 } = __require("node:buffer"); + exports.methods = METHODS.map((method) => method.toLowerCase()); + exports.etag = createETagGenerator({ weak: false }); + exports.wetag = createETagGenerator({ weak: true }); + exports.normalizeType = function(type) { + return ~type.indexOf("/") ? acceptParams(type) : { value: mime.lookup(type) || "application/octet-stream", params: {} }; + }; + exports.normalizeTypes = function(types) { + return types.map(exports.normalizeType); + }; + function acceptParams(str) { + var length = str.length; + var colonIndex = str.indexOf(";"); + var index = colonIndex === -1 ? length : colonIndex; + var ret = { value: str.slice(0, index).trim(), quality: 1, params: {} }; + while (index < length) { + var splitIndex = str.indexOf("=", index); + if (splitIndex === -1) break; + var colonIndex = str.indexOf(";", index); + var endIndex = colonIndex === -1 ? length : colonIndex; + if (splitIndex > endIndex) { + index = str.lastIndexOf(";", splitIndex - 1) + 1; + continue; + } + var key = str.slice(index, splitIndex).trim(); + var value = str.slice(splitIndex + 1, endIndex).trim(); + if (key === "q") { + ret.quality = parseFloat(value); + } else { + ret.params[key] = value; + } + index = endIndex + 1; + } + return ret; + } + __name(acceptParams, "acceptParams"); + exports.compileETag = function(val) { + var fn; + if (typeof val === "function") { + return val; + } + switch (val) { + case true: + case "weak": + fn = exports.wetag; + break; + case false: + break; + case "strong": + fn = exports.etag; + break; + default: + throw new TypeError("unknown value for etag function: " + val); + } + return fn; + }; + exports.compileQueryParser = /* @__PURE__ */ __name(function compileQueryParser(val) { + var fn; + if (typeof val === "function") { + return val; + } + switch (val) { + case true: + case "simple": + fn = querystring.parse; + break; + case false: + break; + case "extended": + fn = parseExtendedQueryString; + break; + default: + throw new TypeError("unknown value for query parser function: " + val); + } + return fn; + }, "compileQueryParser"); + exports.compileTrust = function(val) { + if (typeof val === "function") return val; + if (val === true) { + return function() { + return true; + }; + } + if (typeof val === "number") { + return function(a, i) { + return i < val; + }; + } + if (typeof val === "string") { + val = val.split(",").map(function(v) { + return v.trim(); + }); + } + return proxyaddr.compile(val || []); + }; + exports.setCharset = /* @__PURE__ */ __name(function setCharset(type, charset) { + if (!type || !charset) { + return type; + } + var parsed = contentType.parse(type); + parsed.parameters.charset = charset; + return contentType.format(parsed); + }, "setCharset"); + function createETagGenerator(options) { + return /* @__PURE__ */ __name(function generateETag(body, encoding) { + var buf = !Buffer2.isBuffer(body) ? Buffer2.from(body, encoding) : body; + return etag(buf, options); + }, "generateETag"); + } + __name(createETagGenerator, "createETagGenerator"); + function parseExtendedQueryString(str) { + return qs.parse(str, { + allowPrototypes: true + }); + } + __name(parseExtendedQueryString, "parseExtendedQueryString"); + } +}); + +// ../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js +var require_wrappy = __commonJS({ + "../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"(exports, module) { + module.exports = wrappy; + function wrappy(fn, cb) { + if (fn && cb) return wrappy(fn)(cb); + if (typeof fn !== "function") + throw new TypeError("need wrapper function"); + Object.keys(fn).forEach(function(k) { + wrapper[k] = fn[k]; + }); + return wrapper; + function wrapper() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + var ret = fn.apply(this, args); + var cb2 = args[args.length - 1]; + if (typeof ret === "function" && ret !== cb2) { + Object.keys(cb2).forEach(function(k) { + ret[k] = cb2[k]; + }); + } + return ret; + } + __name(wrapper, "wrapper"); + } + __name(wrappy, "wrappy"); + } +}); + +// ../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js +var require_once = __commonJS({ + "../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"(exports, module) { + var wrappy = require_wrappy(); + module.exports = wrappy(once); + module.exports.strict = wrappy(onceStrict); + once.proto = once(function() { + Object.defineProperty(Function.prototype, "once", { + value: /* @__PURE__ */ __name(function() { + return once(this); + }, "value"), + configurable: true + }); + Object.defineProperty(Function.prototype, "onceStrict", { + value: /* @__PURE__ */ __name(function() { + return onceStrict(this); + }, "value"), + configurable: true + }); + }); + function once(fn) { + var f = /* @__PURE__ */ __name(function() { + if (f.called) return f.value; + f.called = true; + return f.value = fn.apply(this, arguments); + }, "f"); + f.called = false; + return f; + } + __name(once, "once"); + function onceStrict(fn) { + var f = /* @__PURE__ */ __name(function() { + if (f.called) + throw new Error(f.onceError); + f.called = true; + return f.value = fn.apply(this, arguments); + }, "f"); + var name = fn.name || "Function wrapped with `once`"; + f.onceError = name + " shouldn't be called more than once"; + f.called = false; + return f; + } + __name(onceStrict, "onceStrict"); + } +}); + +// ../../node_modules/.pnpm/is-promise@4.0.0/node_modules/is-promise/index.js +var require_is_promise = __commonJS({ + "../../node_modules/.pnpm/is-promise@4.0.0/node_modules/is-promise/index.js"(exports, module) { + module.exports = isPromise; + module.exports.default = isPromise; + function isPromise(obj) { + return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function"; + } + __name(isPromise, "isPromise"); + } +}); + +// ../../node_modules/.pnpm/path-to-regexp@8.4.2/node_modules/path-to-regexp/dist/index.js +var require_dist2 = __commonJS({ + "../../node_modules/.pnpm/path-to-regexp@8.4.2/node_modules/path-to-regexp/dist/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.PathError = exports.TokenData = void 0; + exports.parse = parse; + exports.compile = compile; + exports.match = match; + exports.pathToRegexp = pathToRegexp7; + exports.stringify = stringify2; + var DEFAULT_DELIMITER = "/"; + var NOOP_VALUE = /* @__PURE__ */ __name((value) => value, "NOOP_VALUE"); + var ID_START = /^[$_\p{ID_Start}]$/u; + var ID_CONTINUE = /^[$\u200c\u200d\p{ID_Continue}]$/u; + var ID = /^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u; + function escapeText(str) { + return str.replace(/[{}()\[\]+?!:*\\]/g, "\\$&"); + } + __name(escapeText, "escapeText"); + function escape2(str) { + return str.replace(/[.+*?^${}()[\]|/\\]/g, "\\$&"); + } + __name(escape2, "escape"); + var TokenData = class { + static { + __name(this, "TokenData"); + } + constructor(tokens, originalPath) { + this.tokens = tokens; + this.originalPath = originalPath; + } + }; + exports.TokenData = TokenData; + var PathError = class extends TypeError { + static { + __name(this, "PathError"); + } + constructor(message, originalPath) { + let text = message; + if (originalPath) + text += `: ${originalPath}`; + text += `; visit https://git.new/pathToRegexpError for info`; + super(text); + this.originalPath = originalPath; + } + }; + exports.PathError = PathError; + function parse(str, options = {}) { + const { encodePath = NOOP_VALUE } = options; + const chars = [...str]; + let index = 0; + function consumeUntil(end) { + const output = []; + let path = ""; + function writePath() { + if (!path) + return; + output.push({ + type: "text", + value: encodePath(path) + }); + path = ""; + } + __name(writePath, "writePath"); + while (index < chars.length) { + const value = chars[index++]; + if (value === end) { + writePath(); + return output; + } + if (value === "\\") { + if (index === chars.length) { + throw new PathError(`Unexpected end after \\ at index ${index}`, str); + } + path += chars[index++]; + continue; + } + if (value === ":" || value === "*") { + const type = value === ":" ? "param" : "wildcard"; + let name = ""; + if (ID_START.test(chars[index])) { + do { + name += chars[index++]; + } while (ID_CONTINUE.test(chars[index])); + } else if (chars[index] === '"') { + let quoteStart = index; + while (index < chars.length) { + if (chars[++index] === '"') { + index++; + quoteStart = 0; + break; + } + if (chars[index] === "\\") + index++; + name += chars[index]; + } + if (quoteStart) { + throw new PathError(`Unterminated quote at index ${quoteStart}`, str); + } + } + if (!name) { + throw new PathError(`Missing parameter name at index ${index}`, str); + } + writePath(); + output.push({ type, name }); + continue; + } + if (value === "{") { + writePath(); + output.push({ + type: "group", + tokens: consumeUntil("}") + }); + continue; + } + if (value === "}" || value === "(" || value === ")" || value === "[" || value === "]" || value === "+" || value === "?" || value === "!") { + throw new PathError(`Unexpected ${value} at index ${index - 1}`, str); + } + path += value; + } + if (end) { + throw new PathError(`Unexpected end at index ${index}, expected ${end}`, str); + } + writePath(); + return output; + } + __name(consumeUntil, "consumeUntil"); + return new TokenData(consumeUntil(""), str); + } + __name(parse, "parse"); + function compile(path, options = {}) { + const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options; + const data = typeof path === "object" ? path : parse(path, options); + const fn = tokensToFunction(data.tokens, delimiter, encode); + return /* @__PURE__ */ __name(function path2(params = {}) { + const missing = []; + const path3 = fn(params, missing); + if (missing.length) { + throw new TypeError(`Missing parameters: ${missing.join(", ")}`); + } + return path3; + }, "path"); + } + __name(compile, "compile"); + function tokensToFunction(tokens, delimiter, encode) { + const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode)); + return (data, missing) => { + let result = ""; + for (const encoder of encoders) { + result += encoder(data, missing); + } + return result; + }; + } + __name(tokensToFunction, "tokensToFunction"); + function tokenToFunction(token, delimiter, encode) { + if (token.type === "text") + return () => token.value; + if (token.type === "group") { + const fn = tokensToFunction(token.tokens, delimiter, encode); + return (data, missing) => { + const len = missing.length; + const value = fn(data, missing); + if (missing.length === len) + return value; + missing.length = len; + return ""; + }; + } + const encodeValue = encode || NOOP_VALUE; + if (token.type === "wildcard" && encode !== false) { + return (data, missing) => { + const value = data[token.name]; + if (value == null) { + missing.push(token.name); + return ""; + } + if (!Array.isArray(value) || value.length === 0) { + throw new TypeError(`Expected "${token.name}" to be a non-empty array`); + } + let result = ""; + for (let i = 0; i < value.length; i++) { + if (typeof value[i] !== "string") { + throw new TypeError(`Expected "${token.name}/${i}" to be a string`); + } + if (i > 0) + result += delimiter; + result += encodeValue(value[i]); + } + return result; + }; + } + return (data, missing) => { + const value = data[token.name]; + if (value == null) { + missing.push(token.name); + return ""; + } + if (typeof value !== "string") { + throw new TypeError(`Expected "${token.name}" to be a string`); + } + return encodeValue(value); + }; + } + __name(tokenToFunction, "tokenToFunction"); + function match(path, options = {}) { + const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options; + const { regexp, keys } = pathToRegexp7(path, options); + const decoders = keys.map((key) => { + if (decode === false) + return NOOP_VALUE; + if (key.type === "param") + return decode; + return (value) => value.split(delimiter).map(decode); + }); + return /* @__PURE__ */ __name(function match2(input) { + const m = regexp.exec(input); + if (!m) + return false; + const path2 = m[0]; + const params = /* @__PURE__ */ Object.create(null); + for (let i = 1; i < m.length; i++) { + if (m[i] === void 0) + continue; + const key = keys[i - 1]; + const decoder = decoders[i - 1]; + params[key.name] = decoder(m[i]); + } + return { path: path2, params }; + }, "match"); + } + __name(match, "match"); + function pathToRegexp7(path, options = {}) { + const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options; + const keys = []; + let source = ""; + let combinations = 0; + function process2(path2) { + if (Array.isArray(path2)) { + for (const p of path2) + process2(p); + return; + } + const data = typeof path2 === "object" ? path2 : parse(path2, options); + flatten2(data.tokens, 0, [], (tokens) => { + if (combinations >= 256) { + throw new PathError("Too many path combinations", data.originalPath); + } + if (combinations > 0) + source += "|"; + source += toRegExpSource(tokens, delimiter, keys, data.originalPath); + combinations++; + }); + } + __name(process2, "process"); + process2(path); + let pattern = `^(?:${source})`; + if (trailing) + pattern += "(?:" + escape2(delimiter) + "$)?"; + pattern += end ? "$" : "(?=" + escape2(delimiter) + "|$)"; + return { regexp: new RegExp(pattern, sensitive ? "" : "i"), keys }; + } + __name(pathToRegexp7, "pathToRegexp"); + function flatten2(tokens, index, result, callback) { + while (index < tokens.length) { + const token = tokens[index++]; + if (token.type === "group") { + const len = result.length; + flatten2(token.tokens, 0, result, (seq) => flatten2(tokens, index, seq, callback)); + result.length = len; + continue; + } + result.push(token); + } + callback(result); + } + __name(flatten2, "flatten"); + function toRegExpSource(tokens, delimiter, keys, originalPath) { + let result = ""; + let backtrack = ""; + let wildcardBacktrack = ""; + let prevCaptureType = 0; + let hasSegmentCapture = 0; + let index = 0; + function hasInSegment(index2, type) { + while (index2 < tokens.length) { + const token = tokens[index2++]; + if (token.type === type) + return true; + if (token.type === "text") { + if (token.value.includes(delimiter)) + break; + } + } + return false; + } + __name(hasInSegment, "hasInSegment"); + function peekText(index2) { + let result2 = ""; + while (index2 < tokens.length) { + const token = tokens[index2++]; + if (token.type !== "text") + break; + result2 += token.value; + } + return result2; + } + __name(peekText, "peekText"); + while (index < tokens.length) { + const token = tokens[index++]; + if (token.type === "text") { + result += escape2(token.value); + backtrack += token.value; + if (prevCaptureType === 2) + wildcardBacktrack += token.value; + if (token.value.includes(delimiter)) + hasSegmentCapture = 0; + continue; + } + if (token.type === "param" || token.type === "wildcard") { + if (prevCaptureType && !backtrack) { + throw new PathError(`Missing text before "${token.name}" ${token.type}`, originalPath); + } + if (token.type === "param") { + result += hasSegmentCapture & 2 ? `(${negate(delimiter, backtrack)}+)` : hasInSegment(index, "wildcard") ? `(${negate(delimiter, peekText(index))}+)` : hasSegmentCapture & 1 ? `(${negate(delimiter, backtrack)}+|${escape2(backtrack)})` : `(${negate(delimiter, "")}+)`; + hasSegmentCapture |= prevCaptureType = 1; + } else { + result += hasSegmentCapture & 2 ? `(${negate(backtrack, "")}+)` : wildcardBacktrack ? `(${negate(wildcardBacktrack, "")}+|${negate(delimiter, "")}+)` : `([^]+)`; + wildcardBacktrack = ""; + hasSegmentCapture |= prevCaptureType = 2; + } + keys.push(token); + backtrack = ""; + continue; + } + throw new TypeError(`Unknown token type: ${token.type}`); + } + return result; + } + __name(toRegExpSource, "toRegExpSource"); + function negate(a, b) { + if (b.length > a.length) + return negate(b, a); + if (a === b) + b = ""; + if (b.length > 1) + return `(?:(?!${escape2(a)}|${escape2(b)})[^])`; + if (a.length > 1) + return `(?:(?!${escape2(a)})[^${escape2(b)}])`; + return `[^${escape2(a + b)}]`; + } + __name(negate, "negate"); + function stringifyTokens(tokens, index) { + let value = ""; + while (index < tokens.length) { + const token = tokens[index++]; + if (token.type === "text") { + value += escapeText(token.value); + continue; + } + if (token.type === "group") { + value += "{" + stringifyTokens(token.tokens, 0) + "}"; + continue; + } + if (token.type === "param") { + value += ":" + stringifyName(token.name, tokens[index]); + continue; + } + if (token.type === "wildcard") { + value += "*" + stringifyName(token.name, tokens[index]); + continue; + } + throw new TypeError(`Unknown token type: ${token.type}`); + } + return value; + } + __name(stringifyTokens, "stringifyTokens"); + function stringify2(data) { + return stringifyTokens(data.tokens, 0); + } + __name(stringify2, "stringify"); + function stringifyName(name, next) { + if (!ID.test(name)) + return JSON.stringify(name); + if ((next === null || next === void 0 ? void 0 : next.type) === "text" && ID_CONTINUE.test(next.value[0])) { + return JSON.stringify(name); + } + return name; + } + __name(stringifyName, "stringifyName"); + } +}); + +// ../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/layer.js +var require_layer = __commonJS({ + "../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/layer.js"(exports, module) { + "use strict"; + var isPromise = require_is_promise(); + var pathRegexp = require_dist2(); + var debug = require_src()("router:layer"); + var deprecate = require_depd()("router"); + var TRAILING_SLASH_REGEXP = /\/+$/; + var MATCHING_GROUP_REGEXP = /\((?:\?<(.*?)>)?(?!\?)/g; + module.exports = Layer; + function Layer(path, options, fn) { + if (!(this instanceof Layer)) { + return new Layer(path, options, fn); + } + debug("new %o", path); + const opts = options || {}; + this.handle = fn; + this.keys = []; + this.name = fn.name || ""; + this.params = void 0; + this.path = void 0; + this.slash = path === "/" && opts.end === false; + function matcher(_path) { + if (_path instanceof RegExp) { + const keys = []; + let name = 0; + let m; + while (m = MATCHING_GROUP_REGEXP.exec(_path.source)) { + keys.push({ + name: m[1] || name++, + offset: m.index + }); + } + return /* @__PURE__ */ __name(function regexpMatcher(p) { + const match = _path.exec(p); + if (!match) { + return false; + } + const params = {}; + for (let i = 1; i < match.length; i++) { + const key = keys[i - 1]; + const prop = key.name; + const val = decodeParam(match[i]); + if (val !== void 0) { + params[prop] = val; + } + } + return { + params, + path: match[0] + }; + }, "regexpMatcher"); + } + return pathRegexp.match(opts.strict ? _path : loosen(_path), { + sensitive: opts.sensitive, + end: opts.end, + trailing: !opts.strict, + decode: decodeParam + }); + } + __name(matcher, "matcher"); + this.matchers = Array.isArray(path) ? path.map(matcher) : [matcher(path)]; + } + __name(Layer, "Layer"); + Layer.prototype.handleError = /* @__PURE__ */ __name(function handleError(error, req, res, next) { + const fn = this.handle; + if (fn.length !== 4) { + return next(error); + } + try { + const ret = fn(error, req, res, next); + if (isPromise(ret)) { + if (!(ret instanceof Promise)) { + deprecate("handlers that are Promise-like are deprecated, use a native Promise instead"); + } + ret.then(null, function(error2) { + next(error2 || new Error("Rejected promise")); + }); + } + } catch (err) { + next(err); + } + }, "handleError"); + Layer.prototype.handleRequest = /* @__PURE__ */ __name(function handleRequest(req, res, next) { + const fn = this.handle; + if (fn.length > 3) { + return next(); + } + try { + const ret = fn(req, res, next); + if (isPromise(ret)) { + if (!(ret instanceof Promise)) { + deprecate("handlers that are Promise-like are deprecated, use a native Promise instead"); + } + ret.then(null, function(error) { + next(error || new Error("Rejected promise")); + }); + } + } catch (err) { + next(err); + } + }, "handleRequest"); + Layer.prototype.match = /* @__PURE__ */ __name(function match(path) { + let match2; + if (path != null) { + if (this.slash) { + this.params = {}; + this.path = ""; + return true; + } + let i = 0; + while (!match2 && i < this.matchers.length) { + match2 = this.matchers[i](path); + i++; + } + } + if (!match2) { + this.params = void 0; + this.path = void 0; + return false; + } + this.params = match2.params; + this.path = match2.path; + this.keys = Object.keys(match2.params); + return true; + }, "match"); + function decodeParam(val) { + if (typeof val !== "string" || val.length === 0) { + return val; + } + try { + return decodeURIComponent(val); + } catch (err) { + if (err instanceof URIError) { + err.message = "Failed to decode param '" + val + "'"; + err.status = 400; + } + throw err; + } + } + __name(decodeParam, "decodeParam"); + function loosen(path) { + if (path instanceof RegExp || path === "/") { + return path; + } + return Array.isArray(path) ? path.map(function(p) { + return loosen(p); + }) : String(path).replace(TRAILING_SLASH_REGEXP, ""); + } + __name(loosen, "loosen"); + } +}); + +// ../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/route.js +var require_route = __commonJS({ + "../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/route.js"(exports, module) { + "use strict"; + var debug = require_src()("router:route"); + var Layer = require_layer(); + var { METHODS } = __require("node:http"); + var slice = Array.prototype.slice; + var flatten2 = Array.prototype.flat; + var methods = METHODS.map((method) => method.toLowerCase()); + module.exports = Route; + function Route(path) { + debug("new %o", path); + this.path = path; + this.stack = []; + this.methods = /* @__PURE__ */ Object.create(null); + } + __name(Route, "Route"); + Route.prototype._handlesMethod = /* @__PURE__ */ __name(function _handlesMethod(method) { + if (this.methods._all) { + return true; + } + let name = typeof method === "string" ? method.toLowerCase() : method; + if (name === "head" && !this.methods.head) { + name = "get"; + } + return Boolean(this.methods[name]); + }, "_handlesMethod"); + Route.prototype._methods = /* @__PURE__ */ __name(function _methods() { + const methods2 = Object.keys(this.methods); + if (this.methods.get && !this.methods.head) { + methods2.push("head"); + } + for (let i = 0; i < methods2.length; i++) { + methods2[i] = methods2[i].toUpperCase(); + } + return methods2; + }, "_methods"); + Route.prototype.dispatch = /* @__PURE__ */ __name(function dispatch(req, res, done) { + let idx = 0; + const stack = this.stack; + let sync = 0; + if (stack.length === 0) { + return done(); + } + let method = typeof req.method === "string" ? req.method.toLowerCase() : req.method; + if (method === "head" && !this.methods.head) { + method = "get"; + } + req.route = this; + next(); + function next(err) { + if (err && err === "route") { + return done(); + } + if (err && err === "router") { + return done(err); + } + if (idx >= stack.length) { + return done(err); + } + if (++sync > 100) { + return setImmediate(next, err); + } + let layer; + let match; + while (match !== true && idx < stack.length) { + layer = stack[idx++]; + match = !layer.method || layer.method === method; + } + if (match !== true) { + return done(err); + } + if (err) { + layer.handleError(err, req, res, next); + } else { + layer.handleRequest(req, res, next); + } + sync = 0; + } + __name(next, "next"); + }, "dispatch"); + Route.prototype.all = /* @__PURE__ */ __name(function all(handler) { + const callbacks = flatten2.call(slice.call(arguments), Infinity); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (let i = 0; i < callbacks.length; i++) { + const fn = callbacks[i]; + if (typeof fn !== "function") { + throw new TypeError("argument handler must be a function"); + } + const layer = Layer("/", {}, fn); + layer.method = void 0; + this.methods._all = true; + this.stack.push(layer); + } + return this; + }, "all"); + methods.forEach(function(method) { + Route.prototype[method] = function(handler) { + const callbacks = flatten2.call(slice.call(arguments), Infinity); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (let i = 0; i < callbacks.length; i++) { + const fn = callbacks[i]; + if (typeof fn !== "function") { + throw new TypeError("argument handler must be a function"); + } + debug("%s %s", method, this.path); + const layer = Layer("/", {}, fn); + layer.method = method; + this.methods[method] = true; + this.stack.push(layer); + } + return this; + }; + }); + } +}); + +// ../../node_modules/.pnpm/router@2.2.0/node_modules/router/index.js +var require_router = __commonJS({ + "../../node_modules/.pnpm/router@2.2.0/node_modules/router/index.js"(exports, module) { + "use strict"; + var isPromise = require_is_promise(); + var Layer = require_layer(); + var { METHODS } = __require("node:http"); + var parseUrl = require_parseurl(); + var Route = require_route(); + var debug = require_src()("router"); + var deprecate = require_depd()("router"); + var slice = Array.prototype.slice; + var flatten2 = Array.prototype.flat; + var methods = METHODS.map((method) => method.toLowerCase()); + module.exports = Router; + module.exports.Route = Route; + function Router(options) { + if (!(this instanceof Router)) { + return new Router(options); + } + const opts = options || {}; + function router(req, res, next) { + router.handle(req, res, next); + } + __name(router, "router"); + Object.setPrototypeOf(router, this); + router.caseSensitive = opts.caseSensitive; + router.mergeParams = opts.mergeParams; + router.params = {}; + router.strict = opts.strict; + router.stack = []; + return router; + } + __name(Router, "Router"); + Router.prototype = function() { + }; + Router.prototype.param = /* @__PURE__ */ __name(function param(name, fn) { + if (!name) { + throw new TypeError("argument name is required"); + } + if (typeof name !== "string") { + throw new TypeError("argument name must be a string"); + } + if (!fn) { + throw new TypeError("argument fn is required"); + } + if (typeof fn !== "function") { + throw new TypeError("argument fn must be a function"); + } + let params = this.params[name]; + if (!params) { + params = this.params[name] = []; + } + params.push(fn); + return this; + }, "param"); + Router.prototype.handle = /* @__PURE__ */ __name(function handle(req, res, callback) { + if (!callback) { + throw new TypeError("argument callback is required"); + } + debug("dispatching %s %s", req.method, req.url); + let idx = 0; + let methods2; + const protohost = getProtohost(req.url) || ""; + let removed = ""; + const self = this; + let slashAdded = false; + let sync = 0; + const paramcalled = {}; + const stack = this.stack; + const parentParams = req.params; + const parentUrl = req.baseUrl || ""; + let done = restore(callback, req, "baseUrl", "next", "params"); + req.next = next; + if (req.method === "OPTIONS") { + methods2 = []; + done = wrap(done, generateOptionsResponder(res, methods2)); + } + req.baseUrl = parentUrl; + req.originalUrl = req.originalUrl || req.url; + next(); + function next(err) { + let layerError = err === "route" ? null : err; + if (slashAdded) { + req.url = req.url.slice(1); + slashAdded = false; + } + if (removed.length !== 0) { + req.baseUrl = parentUrl; + req.url = protohost + removed + req.url.slice(protohost.length); + removed = ""; + } + if (layerError === "router") { + setImmediate(done, null); + return; + } + if (idx >= stack.length) { + setImmediate(done, layerError); + return; + } + if (++sync > 100) { + return setImmediate(next, err); + } + const path = getPathname(req); + if (path == null) { + return done(layerError); + } + let layer; + let match; + let route; + while (match !== true && idx < stack.length) { + layer = stack[idx++]; + match = matchLayer(layer, path); + route = layer.route; + if (typeof match !== "boolean") { + layerError = layerError || match; + } + if (match !== true) { + continue; + } + if (!route) { + continue; + } + if (layerError) { + match = false; + continue; + } + const method = req.method; + const hasMethod = route._handlesMethod(method); + if (!hasMethod && method === "OPTIONS" && methods2) { + methods2.push.apply(methods2, route._methods()); + } + if (!hasMethod && method !== "HEAD") { + match = false; + } + } + if (match !== true) { + return done(layerError); + } + if (route) { + req.route = route; + } + req.params = self.mergeParams ? mergeParams(layer.params, parentParams) : layer.params; + const layerPath = layer.path; + processParams(self.params, layer, paramcalled, req, res, function(err2) { + if (err2) { + next(layerError || err2); + } else if (route) { + layer.handleRequest(req, res, next); + } else { + trimPrefix(layer, layerError, layerPath, path); + } + sync = 0; + }); + } + __name(next, "next"); + function trimPrefix(layer, layerError, layerPath, path) { + if (layerPath.length !== 0) { + if (layerPath !== path.substring(0, layerPath.length)) { + next(layerError); + return; + } + const c = path[layerPath.length]; + if (c && c !== "/") { + next(layerError); + return; + } + debug("trim prefix (%s) from url %s", layerPath, req.url); + removed = layerPath; + req.url = protohost + req.url.slice(protohost.length + removed.length); + if (!protohost && req.url[0] !== "/") { + req.url = "/" + req.url; + slashAdded = true; + } + req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed); + } + debug("%s %s : %s", layer.name, layerPath, req.originalUrl); + if (layerError) { + layer.handleError(layerError, req, res, next); + } else { + layer.handleRequest(req, res, next); + } + } + __name(trimPrefix, "trimPrefix"); + }, "handle"); + Router.prototype.use = /* @__PURE__ */ __name(function use(handler) { + let offset = 0; + let path = "/"; + if (typeof handler !== "function") { + let arg = handler; + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + if (typeof arg !== "function") { + offset = 1; + path = handler; + } + } + const callbacks = flatten2.call(slice.call(arguments, offset), Infinity); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (let i = 0; i < callbacks.length; i++) { + const fn = callbacks[i]; + if (typeof fn !== "function") { + throw new TypeError("argument handler must be a function"); + } + debug("use %o %s", path, fn.name || ""); + const layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: false, + end: false + }, fn); + layer.route = void 0; + this.stack.push(layer); + } + return this; + }, "use"); + Router.prototype.route = /* @__PURE__ */ __name(function route(path) { + const route2 = new Route(path); + const layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: this.strict, + end: true + }, handle); + function handle(req, res, next) { + route2.dispatch(req, res, next); + } + __name(handle, "handle"); + layer.route = route2; + this.stack.push(layer); + return route2; + }, "route"); + methods.concat("all").forEach(function(method) { + Router.prototype[method] = function(path) { + const route = this.route(path); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; + }); + function generateOptionsResponder(res, methods2) { + return /* @__PURE__ */ __name(function onDone(fn, err) { + if (err || methods2.length === 0) { + return fn(err); + } + trySendOptionsResponse(res, methods2, fn); + }, "onDone"); + } + __name(generateOptionsResponder, "generateOptionsResponder"); + function getPathname(req) { + try { + return parseUrl(req).pathname; + } catch (err) { + return void 0; + } + } + __name(getPathname, "getPathname"); + function getProtohost(url) { + if (typeof url !== "string" || url.length === 0 || url[0] === "/") { + return void 0; + } + const searchIndex = url.indexOf("?"); + const pathLength = searchIndex !== -1 ? searchIndex : url.length; + const fqdnIndex = url.substring(0, pathLength).indexOf("://"); + return fqdnIndex !== -1 ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0; + } + __name(getProtohost, "getProtohost"); + function matchLayer(layer, path) { + try { + return layer.match(path); + } catch (err) { + return err; + } + } + __name(matchLayer, "matchLayer"); + function mergeParams(params, parent) { + if (typeof parent !== "object" || !parent) { + return params; + } + const obj = Object.assign({}, parent); + if (!(0 in params) || !(0 in parent)) { + return Object.assign(obj, params); + } + let i = 0; + let o = 0; + while (i in params) { + i++; + } + while (o in parent) { + o++; + } + for (i--; i >= 0; i--) { + params[i + o] = params[i]; + if (i < o) { + delete params[i]; + } + } + return Object.assign(obj, params); + } + __name(mergeParams, "mergeParams"); + function processParams(params, layer, called, req, res, done) { + const keys = layer.keys; + if (!keys || keys.length === 0) { + return done(); + } + let i = 0; + let paramIndex = 0; + let key; + let paramVal; + let paramCallbacks; + let paramCalled; + function param(err) { + if (err) { + return done(err); + } + if (i >= keys.length) { + return done(); + } + paramIndex = 0; + key = keys[i++]; + paramVal = req.params[key]; + paramCallbacks = params[key]; + paramCalled = called[key]; + if (paramVal === void 0 || !paramCallbacks) { + return param(); + } + if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) { + req.params[key] = paramCalled.value; + return param(paramCalled.error); + } + called[key] = paramCalled = { + error: null, + match: paramVal, + value: paramVal + }; + paramCallback(); + } + __name(param, "param"); + function paramCallback(err) { + const fn = paramCallbacks[paramIndex++]; + paramCalled.value = req.params[key]; + if (err) { + paramCalled.error = err; + param(err); + return; + } + if (!fn) return param(); + try { + const ret = fn(req, res, paramCallback, paramVal, key); + if (isPromise(ret)) { + if (!(ret instanceof Promise)) { + deprecate("parameters that are Promise-like are deprecated, use a native Promise instead"); + } + ret.then(null, function(error) { + paramCallback(error || new Error("Rejected promise")); + }); + } + } catch (e) { + paramCallback(e); + } + } + __name(paramCallback, "paramCallback"); + param(); + } + __name(processParams, "processParams"); + function restore(fn, obj) { + const props = new Array(arguments.length - 2); + const vals = new Array(arguments.length - 2); + for (let i = 0; i < props.length; i++) { + props[i] = arguments[i + 2]; + vals[i] = obj[props[i]]; + } + return function() { + for (let i = 0; i < props.length; i++) { + obj[props[i]] = vals[i]; + } + return fn.apply(this, arguments); + }; + } + __name(restore, "restore"); + function sendOptionsResponse(res, methods2) { + const options = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < methods2.length; i++) { + options[methods2[i]] = true; + } + const allow = Object.keys(options).sort().join(", "); + res.setHeader("Allow", allow); + res.setHeader("Content-Length", Buffer.byteLength(allow)); + res.setHeader("Content-Type", "text/plain"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.end(allow); + } + __name(sendOptionsResponse, "sendOptionsResponse"); + function trySendOptionsResponse(res, methods2, next) { + try { + sendOptionsResponse(res, methods2); + } catch (err) { + next(err); + } + } + __name(trySendOptionsResponse, "trySendOptionsResponse"); + function wrap(old, fn) { + return /* @__PURE__ */ __name(function proxy() { + const args = new Array(arguments.length + 1); + args[0] = old; + for (let i = 0, len = arguments.length; i < len; i++) { + args[i + 1] = arguments[i]; + } + fn.apply(this, args); + }, "proxy"); + } + __name(wrap, "wrap"); + } +}); + +// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/application.js +var require_application = __commonJS({ + "../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/application.js"(exports, module) { + "use strict"; + var finalhandler = require_finalhandler(); + var debug = require_src()("express:application"); + var View = require_view(); + var http2 = __require("node:http"); + var methods = require_utils3().methods; + var compileETag = require_utils3().compileETag; + var compileQueryParser = require_utils3().compileQueryParser; + var compileTrust = require_utils3().compileTrust; + var resolve = __require("node:path").resolve; + var once = require_once(); + var Router = require_router(); + var slice = Array.prototype.slice; + var flatten2 = Array.prototype.flat; + var app = exports = module.exports = {}; + var trustProxyDefaultSymbol = "@@symbol:trust_proxy_default"; + app.init = /* @__PURE__ */ __name(function init() { + var router = null; + this.cache = /* @__PURE__ */ Object.create(null); + this.engines = /* @__PURE__ */ Object.create(null); + this.settings = /* @__PURE__ */ Object.create(null); + this.defaultConfiguration(); + Object.defineProperty(this, "router", { + configurable: true, + enumerable: true, + get: /* @__PURE__ */ __name(function getrouter() { + if (router === null) { + router = new Router({ + caseSensitive: this.enabled("case sensitive routing"), + strict: this.enabled("strict routing") + }); + } + return router; + }, "getrouter") + }); + }, "init"); + app.defaultConfiguration = /* @__PURE__ */ __name(function defaultConfiguration() { + var env = process.env.NODE_ENV || "development"; + this.enable("x-powered-by"); + this.set("etag", "weak"); + this.set("env", env); + this.set("query parser", "simple"); + this.set("subdomain offset", 2); + this.set("trust proxy", false); + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: true + }); + debug("booting in %s mode", env); + this.on("mount", /* @__PURE__ */ __name(function onmount(parent) { + if (this.settings[trustProxyDefaultSymbol] === true && typeof parent.settings["trust proxy fn"] === "function") { + delete this.settings["trust proxy"]; + delete this.settings["trust proxy fn"]; + } + Object.setPrototypeOf(this.request, parent.request); + Object.setPrototypeOf(this.response, parent.response); + Object.setPrototypeOf(this.engines, parent.engines); + Object.setPrototypeOf(this.settings, parent.settings); + }, "onmount")); + this.locals = /* @__PURE__ */ Object.create(null); + this.mountpath = "/"; + this.locals.settings = this.settings; + this.set("view", View); + this.set("views", resolve("views")); + this.set("jsonp callback name", "callback"); + if (env === "production") { + this.enable("view cache"); + } + }, "defaultConfiguration"); + app.handle = /* @__PURE__ */ __name(function handle(req, res, callback) { + var done = callback || finalhandler(req, res, { + env: this.get("env"), + onerror: logerror.bind(this) + }); + if (this.enabled("x-powered-by")) { + res.setHeader("X-Powered-By", "Express"); + } + req.res = res; + res.req = req; + Object.setPrototypeOf(req, this.request); + Object.setPrototypeOf(res, this.response); + if (!res.locals) { + res.locals = /* @__PURE__ */ Object.create(null); + } + this.router.handle(req, res, done); + }, "handle"); + app.use = /* @__PURE__ */ __name(function use(fn) { + var offset = 0; + var path = "/"; + if (typeof fn !== "function") { + var arg = fn; + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + if (typeof arg !== "function") { + offset = 1; + path = fn; + } + } + var fns = flatten2.call(slice.call(arguments, offset), Infinity); + if (fns.length === 0) { + throw new TypeError("app.use() requires a middleware function"); + } + var router = this.router; + fns.forEach(function(fn2) { + if (!fn2 || !fn2.handle || !fn2.set) { + return router.use(path, fn2); + } + debug(".use app under %s", path); + fn2.mountpath = path; + fn2.parent = this; + router.use(path, /* @__PURE__ */ __name(function mounted_app(req, res, next) { + var orig = req.app; + fn2.handle(req, res, function(err) { + Object.setPrototypeOf(req, orig.request); + Object.setPrototypeOf(res, orig.response); + next(err); + }); + }, "mounted_app")); + fn2.emit("mount", this); + }, this); + return this; + }, "use"); + app.route = /* @__PURE__ */ __name(function route(path) { + return this.router.route(path); + }, "route"); + app.engine = /* @__PURE__ */ __name(function engine(ext, fn) { + if (typeof fn !== "function") { + throw new Error("callback function required"); + } + var extension = ext[0] !== "." ? "." + ext : ext; + this.engines[extension] = fn; + return this; + }, "engine"); + app.param = /* @__PURE__ */ __name(function param(name, fn) { + if (Array.isArray(name)) { + for (var i = 0; i < name.length; i++) { + this.param(name[i], fn); + } + return this; + } + this.router.param(name, fn); + return this; + }, "param"); + app.set = /* @__PURE__ */ __name(function set(setting, val) { + if (arguments.length === 1) { + return this.settings[setting]; + } + debug('set "%s" to %o', setting, val); + this.settings[setting] = val; + switch (setting) { + case "etag": + this.set("etag fn", compileETag(val)); + break; + case "query parser": + this.set("query parser fn", compileQueryParser(val)); + break; + case "trust proxy": + this.set("trust proxy fn", compileTrust(val)); + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: false + }); + break; + } + return this; + }, "set"); + app.path = /* @__PURE__ */ __name(function path() { + return this.parent ? this.parent.path() + this.mountpath : ""; + }, "path"); + app.enabled = /* @__PURE__ */ __name(function enabled(setting) { + return Boolean(this.set(setting)); + }, "enabled"); + app.disabled = /* @__PURE__ */ __name(function disabled(setting) { + return !this.set(setting); + }, "disabled"); + app.enable = /* @__PURE__ */ __name(function enable(setting) { + return this.set(setting, true); + }, "enable"); + app.disable = /* @__PURE__ */ __name(function disable(setting) { + return this.set(setting, false); + }, "disable"); + methods.forEach(function(method) { + app[method] = function(path) { + if (method === "get" && arguments.length === 1) { + return this.set(path); + } + var route = this.route(path); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; + }); + app.all = /* @__PURE__ */ __name(function all(path) { + var route = this.route(path); + var args = slice.call(arguments, 1); + for (var i = 0; i < methods.length; i++) { + route[methods[i]].apply(route, args); + } + return this; + }, "all"); + app.render = /* @__PURE__ */ __name(function render(name, options, callback) { + var cache = this.cache; + var done = callback; + var engines = this.engines; + var opts = options || {}; + var view; + if (typeof options === "function") { + done = options; + opts = {}; + } + var renderOptions = { ...this.locals, ...opts._locals, ...opts }; + if (renderOptions.cache == null) { + renderOptions.cache = this.enabled("view cache"); + } + if (renderOptions.cache) { + view = cache[name]; + } + if (!view) { + var View2 = this.get("view"); + view = new View2(name, { + defaultEngine: this.get("view engine"), + root: this.get("views"), + engines + }); + if (!view.path) { + var dirs = Array.isArray(view.root) && view.root.length > 1 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' : 'directory "' + view.root + '"'; + var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs); + err.view = view; + return done(err); + } + if (renderOptions.cache) { + cache[name] = view; + } + } + tryRender(view, renderOptions, done); + }, "render"); + app.listen = /* @__PURE__ */ __name(function listen() { + var server = http2.createServer(this); + var args = slice.call(arguments); + if (typeof args[args.length - 1] === "function") { + var done = args[args.length - 1] = once(args[args.length - 1]); + server.once("error", done); + } + return server.listen.apply(server, args); + }, "listen"); + function logerror(err) { + if (this.get("env") !== "test") console.error(err); + } + __name(logerror, "logerror"); + function tryRender(view, options, callback) { + try { + view.render(options, callback); + } catch (err) { + callback(err); + } + } + __name(tryRender, "tryRender"); + } +}); + +// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/accept.js +var require_accept = __commonJS({ + "../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/accept.js"(exports, module) { + "use strict"; + var contentType = require_dist(); + module.exports = parseAccept; + function parseAccept(header) { + var values = []; + var index = 0; + while (index < header.length) { + var start = skipOptionalWhitespace(header, index); + var parsed = contentType.parse(header, { comma: true, start }); + parsed.type = header.slice(start, start + parsed.type.length); + values.push(parsed); + index = parsed.index + 1; + } + return values; + } + __name(parseAccept, "parseAccept"); + function skipOptionalWhitespace(header, index) { + var cursor = index; + while (header.charCodeAt(cursor) === 32 || header.charCodeAt(cursor) === 9) { + cursor++; + } + return cursor; + } + __name(skipOptionalWhitespace, "skipOptionalWhitespace"); + } +}); + +// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/charset.js +var require_charset = __commonJS({ + "../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/charset.js"(exports, module) { + "use strict"; + var parseAccept = require_accept(); + module.exports = preferredCharsets; + module.exports.preferredCharsets = preferredCharsets; + function parseAcceptCharset(accept) { + var accepts = parseAccept(accept); + for (var i = 0, j = 0; i < accepts.length; i++) { + var charset = formatCharset(accepts[i], i); + if (charset) accepts[j++] = charset; + } + accepts.length = j; + return accepts; + } + __name(parseAcceptCharset, "parseAcceptCharset"); + function formatCharset(parsed, i) { + if (!parsed.type) return null; + return { + charset: parsed.type, + q: parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1, + i + }; + } + __name(formatCharset, "formatCharset"); + function getCharsetPriority(charset, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(charset, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getCharsetPriority, "getCharsetPriority"); + function specify(charset, spec, index) { + var s = 0; + if (spec.charset.toLowerCase() === charset.toLowerCase()) { + s |= 1; + } else if (spec.charset !== "*") { + return null; + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredCharsets(accept, provided) { + var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getCharsetPriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getCharset(priority) { + return provided[priorities.indexOf(priority)]; + }, "getCharset")); + } + __name(preferredCharsets, "preferredCharsets"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + __name(compareSpecs, "compareSpecs"); + function getFullCharset(spec) { + return spec.charset; + } + __name(getFullCharset, "getFullCharset"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + } +}); + +// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/encoding.js +var require_encoding = __commonJS({ + "../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/encoding.js"(exports, module) { + "use strict"; + var parseAccept = require_accept(); + module.exports = preferredEncodings; + module.exports.preferredEncodings = preferredEncodings; + function parseAcceptEncoding(accept) { + var accepts = parseAccept(accept); + var hasIdentity = false; + var minQuality = 1; + for (var i = 0, j = 0; i < accepts.length; i++) { + var encoding = formatEncoding(accepts[i], i); + if (encoding) { + accepts[j++] = encoding; + hasIdentity = hasIdentity || specify("identity", encoding); + minQuality = Math.min(minQuality, encoding.q || 1); + } + } + if (!hasIdentity) { + accepts[j++] = { + encoding: "identity", + q: minQuality, + i + }; + } + accepts.length = j; + return accepts; + } + __name(parseAcceptEncoding, "parseAcceptEncoding"); + function formatEncoding(parsed, i) { + if (!parsed.type) return null; + return { + encoding: parsed.type, + q: parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1, + i + }; + } + __name(formatEncoding, "formatEncoding"); + function getEncodingPriority(encoding, accepted, index) { + var priority = { encoding, o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(encoding, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getEncodingPriority, "getEncodingPriority"); + function specify(encoding, spec, index) { + var s = 0; + if (spec.encoding.toLowerCase() === encoding.toLowerCase()) { + s |= 1; + } else if (spec.encoding !== "*") { + return null; + } + return { + encoding, + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredEncodings(accept, provided, preferred) { + var accepts = parseAcceptEncoding(accept || ""); + var comparator = preferred ? /* @__PURE__ */ __name(function comparator2(a, b) { + if (a.q !== b.q) { + return b.q - a.q; + } + var aPreferred = preferred.indexOf(a.encoding); + var bPreferred = preferred.indexOf(b.encoding); + if (aPreferred === -1 && bPreferred === -1) { + return b.s - a.s || a.o - b.o || a.i - b.i; + } + if (aPreferred !== -1 && bPreferred !== -1) { + return aPreferred - bPreferred; + } + return aPreferred === -1 ? 1 : -1; + }, "comparator") : compareSpecs; + if (!provided) { + return accepts.filter(isQuality).sort(comparator).map(getFullEncoding); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getEncodingPriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(comparator).map(/* @__PURE__ */ __name(function getEncoding(priority) { + return provided[priorities.indexOf(priority)]; + }, "getEncoding")); + } + __name(preferredEncodings, "preferredEncodings"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i; + } + __name(compareSpecs, "compareSpecs"); + function getFullEncoding(spec) { + return spec.encoding; + } + __name(getFullEncoding, "getFullEncoding"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + } +}); + +// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/language.js +var require_language = __commonJS({ + "../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/language.js"(exports, module) { + "use strict"; + var contentType = require_dist(); + var parseAccept = require_accept(); + module.exports = preferredLanguages; + module.exports.preferredLanguages = preferredLanguages; + function parseAcceptLanguage(accept) { + var accepts = parseAccept(accept); + for (var i = 0, j = 0; i < accepts.length; i++) { + var language = formatLanguage(accepts[i], i); + if (language) accepts[j++] = language; + } + accepts.length = j; + return accepts; + } + __name(parseAcceptLanguage, "parseAcceptLanguage"); + function formatLanguage(parsed, i) { + if (!parsed.type) return null; + var hyphen = parsed.type.indexOf("-"); + var prefix = hyphen === -1 ? parsed.type : parsed.type.slice(0, hyphen); + var suffix = hyphen === -1 ? void 0 : parsed.type.slice(hyphen + 1); + return { + prefix, + suffix, + q: parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1, + i, + full: parsed.type + }; + } + __name(formatLanguage, "formatLanguage"); + function getLanguagePriority(language, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(language, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getLanguagePriority, "getLanguagePriority"); + function specify(language, spec, index) { + var p = formatLanguage(contentType.parse(language), 0); + if (!p) return null; + var s = 0; + if (spec.full.toLowerCase() === p.full.toLowerCase()) { + s |= 4; + } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) { + s |= 2; + } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) { + s |= 1; + } else if (spec.full !== "*") { + return null; + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredLanguages(accept, provided) { + var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getLanguagePriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getLanguage(priority) { + return provided[priorities.indexOf(priority)]; + }, "getLanguage")); + } + __name(preferredLanguages, "preferredLanguages"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + __name(compareSpecs, "compareSpecs"); + function getFullLanguage(spec) { + return spec.full; + } + __name(getFullLanguage, "getFullLanguage"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + } +}); + +// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/mediaType.js +var require_mediaType = __commonJS({ + "../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/mediaType.js"(exports, module) { + "use strict"; + var contentType = require_dist(); + var parseAcceptHeader = require_accept(); + module.exports = preferredMediaTypes; + module.exports.preferredMediaTypes = preferredMediaTypes; + function parseAccept(accept) { + var accepts = parseAcceptHeader(accept); + for (var i = 0, j = 0; i < accepts.length; i++) { + var mediaType = formatMediaType(accepts[i], i); + if (mediaType) accepts[j++] = mediaType; + } + accepts.length = j; + return accepts; + } + __name(parseAccept, "parseAccept"); + function formatMediaType(parsed, i) { + var slash = parsed.type.indexOf("/"); + if (slash === -1) return null; + var q = parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1; + delete parsed.parameters.q; + return { + type: parsed.type.slice(0, slash), + subtype: parsed.type.slice(slash + 1), + params: parsed.parameters, + q, + i + }; + } + __name(formatMediaType, "formatMediaType"); + function getMediaTypePriority(type, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(type, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getMediaTypePriority, "getMediaTypePriority"); + function specify(type, spec, index) { + var p = formatMediaType(contentType.parse(type), 0); + var s = 0; + if (!p) { + return null; + } + if (spec.type.toLowerCase() == p.type.toLowerCase()) { + s |= 4; + } else if (spec.type != "*") { + return null; + } + if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) { + s |= 2; + } else if (spec.subtype != "*") { + return null; + } + var keys = Object.keys(spec.params); + if (keys.length > 0) { + if (keys.every(function(k) { + return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase(); + })) { + s |= 1; + } else { + return null; + } + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredMediaTypes(accept, provided) { + var accepts = parseAccept(accept === void 0 ? "*/*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullType); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getMediaTypePriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getType(priority) { + return provided[priorities.indexOf(priority)]; + }, "getType")); + } + __name(preferredMediaTypes, "preferredMediaTypes"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + __name(compareSpecs, "compareSpecs"); + function getFullType(spec) { + return spec.type + "/" + spec.subtype; + } + __name(getFullType, "getFullType"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + } +}); + +// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/index.js +var require_negotiator = __commonJS({ + "../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/index.js"(exports, module) { + "use strict"; + var preferredCharsets = require_charset(); + var preferredEncodings = require_encoding(); + var preferredLanguages = require_language(); + var preferredMediaTypes = require_mediaType(); + module.exports = Negotiator; + module.exports.Negotiator = Negotiator; + function Negotiator(request) { + if (!(this instanceof Negotiator)) { + return new Negotiator(request); + } + this.request = request; + } + __name(Negotiator, "Negotiator"); + Negotiator.prototype.charset = /* @__PURE__ */ __name(function charset(available) { + var set = this.charsets(available); + return set && set[0]; + }, "charset"); + Negotiator.prototype.charsets = /* @__PURE__ */ __name(function charsets(available) { + return preferredCharsets(this.request.headers["accept-charset"], available); + }, "charsets"); + Negotiator.prototype.encoding = /* @__PURE__ */ __name(function encoding(available, opts) { + var set = this.encodings(available, opts); + return set && set[0]; + }, "encoding"); + Negotiator.prototype.encodings = /* @__PURE__ */ __name(function encodings(available, options) { + var opts = options || {}; + return preferredEncodings(this.request.headers["accept-encoding"], available, opts.preferred); + }, "encodings"); + Negotiator.prototype.language = /* @__PURE__ */ __name(function language(available) { + var set = this.languages(available); + return set && set[0]; + }, "language"); + Negotiator.prototype.languages = /* @__PURE__ */ __name(function languages(available) { + return preferredLanguages(this.request.headers["accept-language"], available); + }, "languages"); + Negotiator.prototype.mediaType = /* @__PURE__ */ __name(function mediaType(available) { + var set = this.mediaTypes(available); + return set && set[0]; + }, "mediaType"); + Negotiator.prototype.mediaTypes = /* @__PURE__ */ __name(function mediaTypes(available) { + return preferredMediaTypes(this.request.headers.accept, available); + }, "mediaTypes"); + Negotiator.prototype.preferredCharset = Negotiator.prototype.charset; + Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets; + Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding; + Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings; + Negotiator.prototype.preferredLanguage = Negotiator.prototype.language; + Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages; + Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType; + Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes; + } +}); + +// ../../node_modules/.pnpm/accepts@2.0.0/node_modules/accepts/index.js +var require_accepts = __commonJS({ + "../../node_modules/.pnpm/accepts@2.0.0/node_modules/accepts/index.js"(exports, module) { + "use strict"; + var Negotiator = require_negotiator(); + var mime = require_mime_types(); + module.exports = Accepts; + function Accepts(req) { + if (!(this instanceof Accepts)) { + return new Accepts(req); + } + this.headers = req.headers; + this.negotiator = new Negotiator(req); + } + __name(Accepts, "Accepts"); + Accepts.prototype.type = Accepts.prototype.types = function(types_) { + var types = types_; + if (types && !Array.isArray(types)) { + types = new Array(arguments.length); + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i]; + } + } + if (!types || types.length === 0) { + return this.negotiator.mediaTypes(); + } + if (!this.headers.accept) { + return types[0]; + } + var mimes = types.map(extToMime); + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)); + var first = accepts[0]; + return first ? types[mimes.indexOf(first)] : false; + }; + Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) { + var encodings = encodings_; + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length); + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i]; + } + } + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings(); + } + return this.negotiator.encodings(encodings)[0] || false; + }; + Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) { + var charsets = charsets_; + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length); + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i]; + } + } + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets(); + } + return this.negotiator.charsets(charsets)[0] || false; + }; + Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) { + var languages = languages_; + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length); + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i]; + } + } + if (!languages || languages.length === 0) { + return this.negotiator.languages(); + } + return this.negotiator.languages(languages)[0] || false; + }; + function extToMime(type) { + return type.indexOf("/") === -1 ? mime.lookup(type) : type; + } + __name(extToMime, "extToMime"); + function validMime(type) { + return typeof type === "string"; + } + __name(validMime, "validMime"); + } +}); + +// ../../node_modules/.pnpm/fresh@2.0.0/node_modules/fresh/index.js +var require_fresh = __commonJS({ + "../../node_modules/.pnpm/fresh@2.0.0/node_modules/fresh/index.js"(exports, module) { + "use strict"; + var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/; + module.exports = fresh; + function fresh(reqHeaders, resHeaders) { + var modifiedSince = reqHeaders["if-modified-since"]; + var noneMatch = reqHeaders["if-none-match"]; + if (!modifiedSince && !noneMatch) { + return false; + } + var cacheControl = reqHeaders["cache-control"]; + if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) { + return false; + } + if (noneMatch) { + if (noneMatch === "*") { + return true; + } + var etag = resHeaders.etag; + if (!etag) { + return false; + } + var matches = parseTokenList(noneMatch); + for (var i = 0; i < matches.length; i++) { + var match = matches[i]; + if (match === etag || match === "W/" + etag || "W/" + match === etag) { + return true; + } + } + return false; + } + if (modifiedSince) { + var lastModified = resHeaders["last-modified"]; + var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince)); + if (modifiedStale) { + return false; + } + } + return true; + } + __name(fresh, "fresh"); + function parseHttpDate(date) { + var timestamp = date && Date.parse(date); + return typeof timestamp === "number" ? timestamp : NaN; + } + __name(parseHttpDate, "parseHttpDate"); + function parseTokenList(str) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + list.push(str.substring(start, end)); + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + list.push(str.substring(start, end)); + return list; + } + __name(parseTokenList, "parseTokenList"); + } +}); + +// ../../node_modules/.pnpm/range-parser@1.3.0/node_modules/range-parser/index.js +var require_range_parser = __commonJS({ + "../../node_modules/.pnpm/range-parser@1.3.0/node_modules/range-parser/index.js"(exports, module) { + "use strict"; + module.exports = rangeParser; + function rangeParser(size, str, options) { + if (typeof str !== "string") { + throw new TypeError("argument str must be a string"); + } + var index = str.indexOf("="); + if (index === -1) { + return -2; + } + var arr = str.slice(index + 1).split(","); + var ranges = []; + ranges.type = str.slice(0, index); + for (var i = 0; i < arr.length; i++) { + var indexOf = arr[i].indexOf("-"); + if (indexOf === -1) { + return -2; + } + var startStr = arr[i].slice(0, indexOf).trim(); + var endStr = arr[i].slice(indexOf + 1).trim(); + var start = parsePos(startStr); + var end = parsePos(endStr); + if (startStr.length === 0) { + start = size - end; + end = size - 1; + } else if (endStr.length === 0) { + end = size - 1; + } + if (end > size - 1) { + end = size - 1; + } + if (isNaN(start) || isNaN(end)) { + return -2; + } + if (start > end || start < 0) { + continue; + } + ranges.push({ + start, + end + }); + } + if (ranges.length < 1) { + return -1; + } + return options && options.combine ? combineRanges(ranges) : ranges; + } + __name(rangeParser, "rangeParser"); + function parsePos(str) { + if (/^\d+$/.test(str)) return Number(str); + return NaN; + } + __name(parsePos, "parsePos"); + function combineRanges(ranges) { + var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart); + for (var j = 0, i = 1; i < ordered.length; i++) { + var range = ordered[i]; + var current = ordered[j]; + if (range.start > current.end + 1) { + ordered[++j] = range; + } else if (range.end > current.end) { + current.end = range.end; + current.index = Math.min(current.index, range.index); + } + } + ordered.length = j + 1; + var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex); + combined.type = ranges.type; + return combined; + } + __name(combineRanges, "combineRanges"); + function mapWithIndex(range, index) { + return { + start: range.start, + end: range.end, + index + }; + } + __name(mapWithIndex, "mapWithIndex"); + function mapWithoutIndex(range) { + return { + start: range.start, + end: range.end + }; + } + __name(mapWithoutIndex, "mapWithoutIndex"); + function sortByRangeIndex(a, b) { + return a.index - b.index; + } + __name(sortByRangeIndex, "sortByRangeIndex"); + function sortByRangeStart(a, b) { + return a.start - b.start; + } + __name(sortByRangeStart, "sortByRangeStart"); + } +}); + +// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/request.js +var require_request = __commonJS({ + "../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/request.js"(exports, module) { + "use strict"; + var accepts = require_accepts(); + var isIP = __require("node:net").isIP; + var typeis = require_type_is(); + var http2 = __require("node:http"); + var fresh = require_fresh(); + var parseRange = require_range_parser(); + var parse = require_parseurl(); + var proxyaddr = require_proxy_addr(); + var req = Object.create(http2.IncomingMessage.prototype); + module.exports = req; + req.get = req.header = /* @__PURE__ */ __name(function header(name) { + if (!name) { + throw new TypeError("name argument is required to req.get"); + } + if (typeof name !== "string") { + throw new TypeError("name must be a string to req.get"); + } + var lc = name.toLowerCase(); + switch (lc) { + case "referer": + case "referrer": + return this.headers.referrer || this.headers.referer; + default: + return this.headers[lc]; + } + }, "header"); + req.accepts = function() { + var accept = accepts(this); + return accept.types.apply(accept, arguments); + }; + req.acceptsEncodings = function() { + var accept = accepts(this); + return accept.encodings.apply(accept, arguments); + }; + req.acceptsCharsets = function(...charsets) { + const accept = accepts(this); + return accept.charsets(...charsets); + }; + req.acceptsLanguages = function(...languages) { + return accepts(this).languages(...languages); + }; + req.range = /* @__PURE__ */ __name(function range(size, options) { + var range2 = this.get("Range"); + if (!range2) return; + return parseRange(size, range2, options); + }, "range"); + defineGetter(req, "query", /* @__PURE__ */ __name(function query() { + var queryparse = this.app.get("query parser fn"); + if (!queryparse) { + return /* @__PURE__ */ Object.create(null); + } + var querystring = parse(this).query; + return queryparse(querystring); + }, "query")); + req.is = /* @__PURE__ */ __name(function is(types) { + var arr = types; + if (!Array.isArray(types)) { + arr = new Array(arguments.length); + for (var i = 0; i < arr.length; i++) { + arr[i] = arguments[i]; + } + } + return typeis(this, arr); + }, "is"); + defineGetter(req, "protocol", /* @__PURE__ */ __name(function protocol() { + var proto = this.socket.encrypted ? "https" : "http"; + var trust = this.app.get("trust proxy fn"); + if (!trust(this.socket.remoteAddress, 0)) { + return proto; + } + var header = this.get("X-Forwarded-Proto") || proto; + var index = header.indexOf(","); + return index !== -1 ? header.substring(0, index).trim() : header.trim(); + }, "protocol")); + defineGetter(req, "secure", /* @__PURE__ */ __name(function secure() { + return this.protocol === "https"; + }, "secure")); + defineGetter(req, "ip", /* @__PURE__ */ __name(function ip() { + var trust = this.app.get("trust proxy fn"); + return proxyaddr(this, trust); + }, "ip")); + defineGetter(req, "ips", /* @__PURE__ */ __name(function ips() { + var trust = this.app.get("trust proxy fn"); + var addrs = proxyaddr.all(this, trust); + addrs.reverse().pop(); + return addrs; + }, "ips")); + defineGetter(req, "subdomains", /* @__PURE__ */ __name(function subdomains() { + var hostname = this.hostname; + if (!hostname) return []; + var offset = this.app.get("subdomain offset"); + var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname]; + return subdomains2.slice(offset); + }, "subdomains")); + defineGetter(req, "path", /* @__PURE__ */ __name(function path() { + return parse(this).pathname; + }, "path")); + defineGetter(req, "host", /* @__PURE__ */ __name(function host() { + var trust = this.app.get("trust proxy fn"); + var val = this.get("X-Forwarded-Host"); + if (!val || !trust(this.socket.remoteAddress, 0)) { + val = this.get("Host"); + } else if (val.indexOf(",") !== -1) { + val = val.substring(0, val.indexOf(",")).trimEnd(); + } + return val || void 0; + }, "host")); + defineGetter(req, "hostname", /* @__PURE__ */ __name(function hostname() { + var host = this.host; + if (!host) return; + var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; + var index = host.indexOf(":", offset); + return index !== -1 ? host.substring(0, index) : host; + }, "hostname")); + defineGetter(req, "fresh", function() { + var method = this.method; + var res = this.res; + var status = res.statusCode; + if ("GET" !== method && "HEAD" !== method && "QUERY" !== method) return false; + if (status >= 200 && status < 300 || 304 === status) { + return fresh(this.headers, { + "etag": res.get("ETag"), + "last-modified": res.get("Last-Modified") + }); + } + return false; + }); + defineGetter(req, "stale", /* @__PURE__ */ __name(function stale() { + return !this.fresh; + }, "stale")); + defineGetter(req, "xhr", /* @__PURE__ */ __name(function xhr() { + var val = this.get("X-Requested-With") || ""; + return val.toLowerCase() === "xmlhttprequest"; + }, "xhr")); + function defineGetter(obj, name, getter) { + Object.defineProperty(obj, name, { + configurable: true, + enumerable: true, + get: getter + }); + } + __name(defineGetter, "defineGetter"); + } +}); + +// ../../node_modules/.pnpm/content-disposition@2.0.1/node_modules/content-disposition/dist/index.js +var require_dist3 = __commonJS({ + "../../node_modules/.pnpm/content-disposition@2.0.1/node_modules/content-disposition/dist/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.create = create; + exports.parse = parse; + exports.decodeExtended = decodeExtended; + exports.format = format; + exports.encodeExtended = encodeExtended; + var NullObject = /* @__PURE__ */ (() => { + const C = /* @__PURE__ */ __name(function() { + }, "C"); + C.prototype = /* @__PURE__ */ Object.create(null); + return C; + })(); + function create(filename, options) { + const type = options?.type || "attachment"; + const parameters = createParameters(filename, options?.fallback); + return format({ type, parameters }, { extended: false }); + } + __name(create, "create"); + var SP = 32; + var HTAB = 9; + var SEMI = 59; + var EQ = 61; + var DQUOTE = 34; + var BSLASH = 92; + var ASTERISK = 42; + function parse(header, options) { + const len = header.length; + const multipart = options?.multipart === true; + const extended = options?.extended !== false; + let index = skipOWS(header, 0, header.length); + const typeStart = index; + index = parseToken(header, index, len); + const typeEnd = trailingOWS(header, typeStart, index); + const type = header.slice(typeStart, typeEnd).toLowerCase(); + const parameters = new NullObject(); + parameter: while (index < len) { + index = skipOWS(header, index + 1, len); + const keyStart = index; + while (index < len) { + const char = header.charCodeAt(index); + if (char === SEMI) + continue parameter; + if (char === EQ) { + const keyEnd = trailingOWS(header, keyStart, index); + const key = header.slice(keyStart, keyEnd).toLowerCase(); + index = skipOWS(header, index + 1, len); + if (index < len && header.charCodeAt(index) === DQUOTE) { + index++; + let value2 = ""; + if (multipart) { + while (index < len) { + const code = header.charCodeAt(index++); + if (code === DQUOTE) { + index = parseToken(header, index, len); + if (parameters[key] === void 0) + parameters[key] = value2; + break; + } + if (code === /* % */ + 37 && index + 1 < len) { + const code2 = header.charCodeAt(index); + const code3 = header.charCodeAt(index + 1); + if (code2 === 50 && code3 === 50) { + value2 += '"'; + index += 2; + continue; + } + if (code2 === 48) { + if (code3 === 100 || code3 === 68) { + value2 += "\r"; + index += 2; + continue; + } + if (code3 === 97 || code3 === 65) { + value2 += "\n"; + index += 2; + continue; + } + } + } + value2 += String.fromCharCode(code); + } + } else { + while (index < len) { + const code = header.charCodeAt(index++); + if (code === DQUOTE) { + index = parseToken(header, index, len); + if (parameters[key] === void 0) + parameters[key] = value2; + break; + } + if (code === BSLASH && index < len) { + value2 += header[index++]; + continue; + } + value2 += String.fromCharCode(code); + } + } + continue parameter; + } + const valueStart = index; + index = parseToken(header, index, len); + const valueEnd = trailingOWS(header, valueStart, index); + const value = header.slice(valueStart, valueEnd); + if (parameters[key] === void 0) { + parameters[key] = value; + if (extended && key.charCodeAt(key.length - 1) === ASTERISK) { + const normalizedKey = key.slice(0, -1); + const decoded = decodeExtended(value); + if (decoded !== void 0) + parameters[normalizedKey] = decoded; + } + } + continue parameter; + } + index++; + } + } + return { type, parameters }; + } + __name(parse, "parse"); + var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g; + var NON_ASCII_REGEXP = /[^\x20-\x7e]/g; + var QUOTE_REGEXP = /[\\"]/g; + var INVALID_FILENAME_REGEXP = /%[0-9A-Fa-f]{2}/; + var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]*$/; + var ASCII_TEXT_REGEXP = /^[\x20-\x7e]*$/; + var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/; + function createParameters(filename, fallback = true) { + if (filename === void 0) + return; + if (typeof fallback === "string") { + if (!ASCII_TEXT_REGEXP.test(fallback)) { + throw new TypeError("Fallback must be valid US-ASCII: " + fallback); + } + if (fallback === filename) + return { filename }; + return { filename: fallback, "filename*": encodeExtended(filename) }; + } + if (ASCII_TEXT_REGEXP.test(filename) && !INVALID_FILENAME_REGEXP.test(filename)) { + return { filename }; + } + if (fallback === false) { + return { "filename*": encodeExtended(filename) }; + } + return { + filename: getAscii(filename), + "filename*": encodeExtended(filename) + }; + } + __name(createParameters, "createParameters"); + function decodeExtended(str) { + const charsetEnd = str.indexOf("'"); + if (charsetEnd <= 0) { + return void 0; + } + const languageEnd = str.indexOf("'", charsetEnd + 1); + if (languageEnd === -1) { + return void 0; + } + const charset = str.slice(0, charsetEnd).toLowerCase(); + const encoded = str.slice(languageEnd + 1); + switch (charset) { + case "iso-8859-1": { + return decodeHexEscapes(encoded); + } + case "utf-8": + case "utf8": { + return tryDecodeURIComponent(encoded); + } + } + return void 0; + } + __name(decodeExtended, "decodeExtended"); + function tryDecodeURIComponent(str) { + try { + return decodeURIComponent(str); + } catch { + return void 0; + } + } + __name(tryDecodeURIComponent, "tryDecodeURIComponent"); + function parseToken(str, index, len) { + while (index < len) { + const char = str.charCodeAt(index); + if (char === SEMI) + break; + index++; + } + return index; + } + __name(parseToken, "parseToken"); + function skipOWS(str, index, len) { + while (index < len) { + const char = str.charCodeAt(index); + if (char !== SP && char !== HTAB) + break; + index++; + } + return index; + } + __name(skipOWS, "skipOWS"); + function trailingOWS(str, start, end) { + while (end > start) { + const char = str.charCodeAt(end - 1); + if (char !== SP && char !== HTAB) + break; + end--; + } + return end; + } + __name(trailingOWS, "trailingOWS"); + function format(obj, options) { + const { type, parameters } = obj; + const multipart = options?.multipart === true; + const extended = options?.extended !== false; + if (!type || !TOKEN_REGEXP.test(type)) { + throw new TypeError("Invalid type: " + type); + } + let result = type; + if (parameters) { + for (const param of Object.keys(parameters)) { + const value = parameters[param]; + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError("Invalid parameter name: " + param); + } + if (multipart) { + result += "; " + param + "=" + qmultipart(value); + continue; + } + if (TOKEN_REGEXP.test(value)) { + result += "; " + param + "=" + value; + continue; + } + if (TEXT_REGEXP.test(value)) { + result += "; " + param + "=" + qstring(value); + continue; + } + if (!extended) { + throw new TypeError("Invalid parameter value: " + value); + } + result += "; " + param + "*=" + encodeExtended(value); + } + } + return result; + } + __name(format, "format"); + function getAscii(val) { + return val.replace(NON_ASCII_REGEXP, "?"); + } + __name(getAscii, "getAscii"); + function pencode(char) { + return "%" + char.charCodeAt(0).toString(16).toUpperCase(); + } + __name(pencode, "pencode"); + function qstring(str) { + return '"' + str.replace(QUOTE_REGEXP, "\\$&") + '"'; + } + __name(qstring, "qstring"); + function qmultipart(str) { + return '"' + str.replace(/[\n\r"]/g, multipartEscape) + '"'; + } + __name(qmultipart, "qmultipart"); + function multipartEscape(char) { + if (char === "\n") + return "%0A"; + if (char === "\r") + return "%0D"; + return "%22"; + } + __name(multipartEscape, "multipartEscape"); + function encodeExtended(str) { + const encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode); + return "UTF-8''" + encoded; + } + __name(encodeExtended, "encodeExtended"); + function isHexDigit(char) { + const code = char.charCodeAt(0); + return code >= 48 && code <= 57 || // 0-9 + code >= 65 && code <= 70 || // A-F + code >= 97 && code <= 102; + } + __name(isHexDigit, "isHexDigit"); + function decodeHexEscapes(str) { + const firstEscape = str.indexOf("%"); + if (firstEscape === -1) + return str; + let result = str.slice(0, firstEscape); + for (let idx = firstEscape; idx < str.length; idx++) { + if (str[idx] === "%" && idx + 2 < str.length && isHexDigit(str[idx + 1]) && isHexDigit(str[idx + 2])) { + result += String.fromCharCode(Number.parseInt(str[idx + 1] + str[idx + 2], 16)); + idx += 2; + } else { + result += str[idx]; + } + } + return result; + } + __name(decodeHexEscapes, "decodeHexEscapes"); + } +}); + +// ../../node_modules/.pnpm/cookie-signature@1.2.2/node_modules/cookie-signature/index.js +var require_cookie_signature = __commonJS({ + "../../node_modules/.pnpm/cookie-signature@1.2.2/node_modules/cookie-signature/index.js"(exports) { + var crypto = __require("crypto"); + exports.sign = function(val, secret) { + if ("string" != typeof val) throw new TypeError("Cookie value must be provided as a string."); + if (null == secret) throw new TypeError("Secret key must be provided."); + return val + "." + crypto.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, ""); + }; + exports.unsign = function(input, secret) { + if ("string" != typeof input) throw new TypeError("Signed cookie string must be provided."); + if (null == secret) throw new TypeError("Secret key must be provided."); + var tentativeValue = input.slice(0, input.lastIndexOf(".")), expectedInput = exports.sign(tentativeValue, secret), expectedBuffer = Buffer.from(expectedInput), inputBuffer = Buffer.from(input); + return expectedBuffer.length === inputBuffer.length && crypto.timingSafeEqual(expectedBuffer, inputBuffer) ? tentativeValue : false; + }; + } +}); + +// ../../node_modules/.pnpm/cookie@0.7.2/node_modules/cookie/index.js +var require_cookie = __commonJS({ + "../../node_modules/.pnpm/cookie@0.7.2/node_modules/cookie/index.js"(exports) { + "use strict"; + exports.parse = parse; + exports.serialize = serialize; + var __toString = Object.prototype.toString; + var __hasOwnProperty = Object.prototype.hasOwnProperty; + var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/; + var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i; + var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/; + function parse(str, opt) { + if (typeof str !== "string") { + throw new TypeError("argument str must be a string"); + } + var obj = {}; + var len = str.length; + if (len < 2) return obj; + var dec = opt && opt.decode || decode; + var index = 0; + var eqIdx = 0; + var endIdx = 0; + do { + eqIdx = str.indexOf("=", index); + if (eqIdx === -1) break; + endIdx = str.indexOf(";", index); + if (endIdx === -1) { + endIdx = len; + } else if (eqIdx > endIdx) { + index = str.lastIndexOf(";", eqIdx - 1) + 1; + continue; + } + var keyStartIdx = startIndex(str, index, eqIdx); + var keyEndIdx = endIndex(str, eqIdx, keyStartIdx); + var key = str.slice(keyStartIdx, keyEndIdx); + if (!__hasOwnProperty.call(obj, key)) { + var valStartIdx = startIndex(str, eqIdx + 1, endIdx); + var valEndIdx = endIndex(str, endIdx, valStartIdx); + if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) { + valStartIdx++; + valEndIdx--; + } + var val = str.slice(valStartIdx, valEndIdx); + obj[key] = tryDecode(val, dec); + } + index = endIdx + 1; + } while (index < len); + return obj; + } + __name(parse, "parse"); + function startIndex(str, index, max) { + do { + var code = str.charCodeAt(index); + if (code !== 32 && code !== 9) return index; + } while (++index < max); + return max; + } + __name(startIndex, "startIndex"); + function endIndex(str, index, min) { + while (index > min) { + var code = str.charCodeAt(--index); + if (code !== 32 && code !== 9) return index + 1; + } + return min; + } + __name(endIndex, "endIndex"); + function serialize(name, val, opt) { + var enc = opt && opt.encode || encodeURIComponent; + if (typeof enc !== "function") { + throw new TypeError("option encode is invalid"); + } + if (!cookieNameRegExp.test(name)) { + throw new TypeError("argument name is invalid"); + } + var value = enc(val); + if (!cookieValueRegExp.test(value)) { + throw new TypeError("argument val is invalid"); + } + var str = name + "=" + value; + if (!opt) return str; + if (null != opt.maxAge) { + var maxAge = Math.floor(opt.maxAge); + if (!isFinite(maxAge)) { + throw new TypeError("option maxAge is invalid"); + } + str += "; Max-Age=" + maxAge; + } + if (opt.domain) { + if (!domainValueRegExp.test(opt.domain)) { + throw new TypeError("option domain is invalid"); + } + str += "; Domain=" + opt.domain; + } + if (opt.path) { + if (!pathValueRegExp.test(opt.path)) { + throw new TypeError("option path is invalid"); + } + str += "; Path=" + opt.path; + } + if (opt.expires) { + var expires = opt.expires; + if (!isDate(expires) || isNaN(expires.valueOf())) { + throw new TypeError("option expires is invalid"); + } + str += "; Expires=" + expires.toUTCString(); + } + if (opt.httpOnly) { + str += "; HttpOnly"; + } + if (opt.secure) { + str += "; Secure"; + } + if (opt.partitioned) { + str += "; Partitioned"; + } + if (opt.priority) { + var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority; + switch (priority) { + case "low": + str += "; Priority=Low"; + break; + case "medium": + str += "; Priority=Medium"; + break; + case "high": + str += "; Priority=High"; + break; + default: + throw new TypeError("option priority is invalid"); + } + } + if (opt.sameSite) { + var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite; + switch (sameSite) { + case true: + str += "; SameSite=Strict"; + break; + case "lax": + str += "; SameSite=Lax"; + break; + case "strict": + str += "; SameSite=Strict"; + break; + case "none": + str += "; SameSite=None"; + break; + default: + throw new TypeError("option sameSite is invalid"); + } + } + return str; + } + __name(serialize, "serialize"); + function decode(str) { + return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str; + } + __name(decode, "decode"); + function isDate(val) { + return __toString.call(val) === "[object Date]"; + } + __name(isDate, "isDate"); + function tryDecode(str, decode2) { + try { + return decode2(str); + } catch (e) { + return str; + } + } + __name(tryDecode, "tryDecode"); + } +}); + +// ../../node_modules/.pnpm/send@1.2.1/node_modules/send/index.js +var require_send = __commonJS({ + "../../node_modules/.pnpm/send@1.2.1/node_modules/send/index.js"(exports, module) { + "use strict"; + var createError = require_http_errors(); + var debug = require_src()("send"); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var etag = require_etag(); + var fresh = require_fresh(); + var fs = __require("fs"); + var mime = require_mime_types(); + var ms = require_ms(); + var onFinished = require_on_finished(); + var parseRange = require_range_parser(); + var path = __require("path"); + var statuses = require_statuses(); + var Stream = __require("stream"); + var util = __require("util"); + var extname = path.extname; + var join = path.join; + var normalize = path.normalize; + var resolve = path.resolve; + var sep = path.sep; + var BYTES_RANGE_REGEXP = /^ *bytes=/; + var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3; + var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/; + module.exports = send; + function send(req, path2, options) { + return new SendStream(req, path2, options); + } + __name(send, "send"); + function SendStream(req, path2, options) { + Stream.call(this); + var opts = options || {}; + this.options = opts; + this.path = path2; + this.req = req; + this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true; + this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true; + this._etag = opts.etag !== void 0 ? Boolean(opts.etag) : true; + this._dotfiles = opts.dotfiles !== void 0 ? opts.dotfiles : "ignore"; + if (this._dotfiles !== "ignore" && this._dotfiles !== "allow" && this._dotfiles !== "deny") { + throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"'); + } + this._extensions = opts.extensions !== void 0 ? normalizeList(opts.extensions, "extensions option") : []; + this._immutable = opts.immutable !== void 0 ? Boolean(opts.immutable) : false; + this._index = opts.index !== void 0 ? normalizeList(opts.index, "index option") : ["index.html"]; + this._lastModified = opts.lastModified !== void 0 ? Boolean(opts.lastModified) : true; + this._maxage = opts.maxAge || opts.maxage; + this._maxage = typeof this._maxage === "string" ? ms(this._maxage) : Number(this._maxage); + this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0; + this._root = opts.root ? resolve(opts.root) : null; + } + __name(SendStream, "SendStream"); + util.inherits(SendStream, Stream); + SendStream.prototype.error = /* @__PURE__ */ __name(function error(status, err) { + if (hasListeners(this, "error")) { + return this.emit("error", createHttpError(status, err)); + } + var res = this.res; + var msg = statuses.message[status] || String(status); + var doc = createHtmlDocument("Error", escapeHtml(msg)); + clearHeaders(res); + if (err && err.headers) { + setHeaders(res, err.headers); + } + res.statusCode = status; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.end(doc); + }, "error"); + SendStream.prototype.hasTrailingSlash = /* @__PURE__ */ __name(function hasTrailingSlash() { + return this.path[this.path.length - 1] === "/"; + }, "hasTrailingSlash"); + SendStream.prototype.isConditionalGET = /* @__PURE__ */ __name(function isConditionalGET() { + return this.req.headers["if-match"] || this.req.headers["if-unmodified-since"] || this.req.headers["if-none-match"] || this.req.headers["if-modified-since"]; + }, "isConditionalGET"); + SendStream.prototype.isPreconditionFailure = /* @__PURE__ */ __name(function isPreconditionFailure() { + var req = this.req; + var res = this.res; + var match = req.headers["if-match"]; + if (match) { + var etag2 = res.getHeader("ETag"); + return !etag2 || match !== "*" && parseTokenList(match).every(function(match2) { + return match2 !== etag2 && match2 !== "W/" + etag2 && "W/" + match2 !== etag2; + }); + } + var unmodifiedSince = parseHttpDate(req.headers["if-unmodified-since"]); + if (!isNaN(unmodifiedSince)) { + var lastModified = parseHttpDate(res.getHeader("Last-Modified")); + return isNaN(lastModified) || lastModified > unmodifiedSince; + } + return false; + }, "isPreconditionFailure"); + SendStream.prototype.removeContentHeaderFields = /* @__PURE__ */ __name(function removeContentHeaderFields() { + var res = this.res; + res.removeHeader("Content-Encoding"); + res.removeHeader("Content-Language"); + res.removeHeader("Content-Length"); + res.removeHeader("Content-Range"); + res.removeHeader("Content-Type"); + }, "removeContentHeaderFields"); + SendStream.prototype.notModified = /* @__PURE__ */ __name(function notModified() { + var res = this.res; + debug("not modified"); + this.removeContentHeaderFields(); + res.statusCode = 304; + res.end(); + }, "notModified"); + SendStream.prototype.headersAlreadySent = /* @__PURE__ */ __name(function headersAlreadySent() { + var err = new Error("Can't set headers after they are sent."); + debug("headers already sent"); + this.error(500, err); + }, "headersAlreadySent"); + SendStream.prototype.isCachable = /* @__PURE__ */ __name(function isCachable() { + var statusCode = this.res.statusCode; + return statusCode >= 200 && statusCode < 300 || statusCode === 304; + }, "isCachable"); + SendStream.prototype.onStatError = /* @__PURE__ */ __name(function onStatError(error) { + switch (error.code) { + case "ENAMETOOLONG": + case "ENOENT": + case "ENOTDIR": + this.error(404, error); + break; + default: + this.error(500, error); + break; + } + }, "onStatError"); + SendStream.prototype.isFresh = /* @__PURE__ */ __name(function isFresh() { + return fresh(this.req.headers, { + etag: this.res.getHeader("ETag"), + "last-modified": this.res.getHeader("Last-Modified") + }); + }, "isFresh"); + SendStream.prototype.isRangeFresh = /* @__PURE__ */ __name(function isRangeFresh() { + var ifRange = this.req.headers["if-range"]; + if (!ifRange) { + return true; + } + if (ifRange.indexOf('"') !== -1) { + var etag2 = this.res.getHeader("ETag"); + return Boolean(etag2 && ifRange.indexOf(etag2) !== -1); + } + var lastModified = this.res.getHeader("Last-Modified"); + return parseHttpDate(lastModified) <= parseHttpDate(ifRange); + }, "isRangeFresh"); + SendStream.prototype.redirect = /* @__PURE__ */ __name(function redirect(path2) { + var res = this.res; + if (hasListeners(this, "directory")) { + this.emit("directory", res, path2); + return; + } + if (this.hasTrailingSlash()) { + this.error(403); + return; + } + var loc = encodeUrl(collapseLeadingSlashes(this.path + "/")); + var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc)); + res.statusCode = 301; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Location", loc); + res.end(doc); + }, "redirect"); + SendStream.prototype.pipe = /* @__PURE__ */ __name(function pipe(res) { + var root = this._root; + this.res = res; + var path2 = decode(this.path); + if (path2 === -1) { + this.error(400); + return res; + } + if (~path2.indexOf("\0")) { + this.error(400); + return res; + } + var parts; + if (root !== null) { + if (path2) { + path2 = normalize("." + sep + path2); + } + if (UP_PATH_REGEXP.test(path2)) { + debug('malicious path "%s"', path2); + this.error(403); + return res; + } + parts = path2.split(sep); + path2 = normalize(join(root, path2)); + } else { + if (UP_PATH_REGEXP.test(path2)) { + debug('malicious path "%s"', path2); + this.error(403); + return res; + } + parts = normalize(path2).split(sep); + path2 = resolve(path2); + } + if (containsDotFile(parts)) { + debug('%s dotfile "%s"', this._dotfiles, path2); + switch (this._dotfiles) { + case "allow": + break; + case "deny": + this.error(403); + return res; + case "ignore": + default: + this.error(404); + return res; + } + } + if (this._index.length && this.hasTrailingSlash()) { + this.sendIndex(path2); + return res; + } + this.sendFile(path2); + return res; + }, "pipe"); + SendStream.prototype.send = /* @__PURE__ */ __name(function send2(path2, stat) { + var len = stat.size; + var options = this.options; + var opts = {}; + var res = this.res; + var req = this.req; + var ranges = req.headers.range; + var offset = options.start || 0; + if (res.headersSent) { + this.headersAlreadySent(); + return; + } + debug('pipe "%s"', path2); + this.setHeader(path2, stat); + this.type(path2); + if (this.isConditionalGET()) { + if (this.isPreconditionFailure()) { + this.error(412); + return; + } + if (this.isCachable() && this.isFresh()) { + this.notModified(); + return; + } + } + len = Math.max(0, len - offset); + if (options.end !== void 0) { + var bytes = options.end - offset + 1; + if (len > bytes) len = bytes; + } + if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) { + ranges = parseRange(len, ranges, { + combine: true + }); + if (!this.isRangeFresh()) { + debug("range stale"); + ranges = -2; + } + if (ranges === -1) { + debug("range unsatisfiable"); + res.setHeader("Content-Range", contentRange("bytes", len)); + return this.error(416, { + headers: { "Content-Range": res.getHeader("Content-Range") } + }); + } + if (ranges !== -2 && ranges.length === 1) { + debug("range %j", ranges); + res.statusCode = 206; + res.setHeader("Content-Range", contentRange("bytes", len, ranges[0])); + offset += ranges[0].start; + len = ranges[0].end - ranges[0].start + 1; + } + } + for (var prop in options) { + opts[prop] = options[prop]; + } + opts.start = offset; + opts.end = Math.max(offset, offset + len - 1); + res.setHeader("Content-Length", len); + if (req.method === "HEAD") { + res.end(); + return; + } + this.stream(path2, opts); + }, "send"); + SendStream.prototype.sendFile = /* @__PURE__ */ __name(function sendFile(path2) { + var i = 0; + var self = this; + debug('stat "%s"', path2); + fs.stat(path2, /* @__PURE__ */ __name(function onstat(err, stat) { + var pathEndsWithSep = path2[path2.length - 1] === sep; + if (err && err.code === "ENOENT" && !extname(path2) && !pathEndsWithSep) { + return next(err); + } + if (err) return self.onStatError(err); + if (stat.isDirectory()) return self.redirect(path2); + if (pathEndsWithSep) return self.error(404); + self.emit("file", path2, stat); + self.send(path2, stat); + }, "onstat")); + function next(err) { + if (self._extensions.length <= i) { + return err ? self.onStatError(err) : self.error(404); + } + var p = path2 + "." + self._extensions[i++]; + debug('stat "%s"', p); + fs.stat(p, function(err2, stat) { + if (err2) return next(err2); + if (stat.isDirectory()) return next(); + self.emit("file", p, stat); + self.send(p, stat); + }); + } + __name(next, "next"); + }, "sendFile"); + SendStream.prototype.sendIndex = /* @__PURE__ */ __name(function sendIndex(path2) { + var i = -1; + var self = this; + function next(err) { + if (++i >= self._index.length) { + if (err) return self.onStatError(err); + return self.error(404); + } + var p = join(path2, self._index[i]); + debug('stat "%s"', p); + fs.stat(p, function(err2, stat) { + if (err2) return next(err2); + if (stat.isDirectory()) return next(); + self.emit("file", p, stat); + self.send(p, stat); + }); + } + __name(next, "next"); + next(); + }, "sendIndex"); + SendStream.prototype.stream = /* @__PURE__ */ __name(function stream(path2, options) { + var self = this; + var res = this.res; + var stream2 = fs.createReadStream(path2, options); + this.emit("stream", stream2); + stream2.pipe(res); + function cleanup() { + stream2.destroy(); + } + __name(cleanup, "cleanup"); + onFinished(res, cleanup); + stream2.on("error", /* @__PURE__ */ __name(function onerror(err) { + cleanup(); + self.onStatError(err); + }, "onerror")); + stream2.on("end", /* @__PURE__ */ __name(function onend() { + self.emit("end"); + }, "onend")); + }, "stream"); + SendStream.prototype.type = /* @__PURE__ */ __name(function type(path2) { + var res = this.res; + if (res.getHeader("Content-Type")) return; + var ext = extname(path2); + var type2 = mime.contentType(ext) || "application/octet-stream"; + debug("content-type %s", type2); + res.setHeader("Content-Type", type2); + }, "type"); + SendStream.prototype.setHeader = /* @__PURE__ */ __name(function setHeader(path2, stat) { + var res = this.res; + this.emit("headers", res, path2, stat); + if (this._acceptRanges && !res.getHeader("Accept-Ranges")) { + debug("accept ranges"); + res.setHeader("Accept-Ranges", "bytes"); + } + if (this._cacheControl && !res.getHeader("Cache-Control")) { + var cacheControl = "public, max-age=" + Math.floor(this._maxage / 1e3); + if (this._immutable) { + cacheControl += ", immutable"; + } + debug("cache-control %s", cacheControl); + res.setHeader("Cache-Control", cacheControl); + } + if (this._lastModified && !res.getHeader("Last-Modified")) { + var modified = stat.mtime.toUTCString(); + debug("modified %s", modified); + res.setHeader("Last-Modified", modified); + } + if (this._etag && !res.getHeader("ETag")) { + var val = etag(stat); + debug("etag %s", val); + res.setHeader("ETag", val); + } + }, "setHeader"); + function clearHeaders(res) { + for (const header of res.getHeaderNames()) { + res.removeHeader(header); + } + } + __name(clearHeaders, "clearHeaders"); + function collapseLeadingSlashes(str) { + for (var i = 0; i < str.length; i++) { + if (str[i] !== "/") { + break; + } + } + return i > 1 ? "/" + str.substr(i) : str; + } + __name(collapseLeadingSlashes, "collapseLeadingSlashes"); + function containsDotFile(parts) { + for (var i = 0; i < parts.length; i++) { + var part = parts[i]; + if (part.length > 1 && part[0] === ".") { + return true; + } + } + return false; + } + __name(containsDotFile, "containsDotFile"); + function contentRange(type, size, range) { + return type + " " + (range ? range.start + "-" + range.end : "*") + "/" + size; + } + __name(contentRange, "contentRange"); + function createHtmlDocument(title, body) { + return '\n\n\n\n' + title + "\n\n\n
" + body + "
\n\n\n"; + } + __name(createHtmlDocument, "createHtmlDocument"); + function createHttpError(status, err) { + if (!err) { + return createError(status); + } + return err instanceof Error ? createError(status, err, { expose: false }) : createError(status, err); + } + __name(createHttpError, "createHttpError"); + function decode(path2) { + try { + return decodeURIComponent(path2); + } catch (err) { + return -1; + } + } + __name(decode, "decode"); + function hasListeners(emitter, type) { + var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type); + return count > 0; + } + __name(hasListeners, "hasListeners"); + function normalizeList(val, name) { + var list = [].concat(val || []); + for (var i = 0; i < list.length; i++) { + if (typeof list[i] !== "string") { + throw new TypeError(name + " must be array of strings or false"); + } + } + return list; + } + __name(normalizeList, "normalizeList"); + function parseHttpDate(date) { + var timestamp = date && Date.parse(date); + return typeof timestamp === "number" ? timestamp : NaN; + } + __name(parseHttpDate, "parseHttpDate"); + function parseTokenList(str) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + if (start !== end) { + list.push(str.substring(start, end)); + } + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + if (start !== end) { + list.push(str.substring(start, end)); + } + return list; + } + __name(parseTokenList, "parseTokenList"); + function setHeaders(res, headers) { + var keys = Object.keys(headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + res.setHeader(key, headers[key]); + } + } + __name(setHeaders, "setHeaders"); + } +}); + +// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/response.js +var require_response = __commonJS({ + "../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/response.js"(exports, module) { + "use strict"; + var contentDisposition = require_dist3(); + var createError = require_http_errors(); + var deprecate = require_depd()("express"); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var http2 = __require("node:http"); + var onFinished = require_on_finished(); + var mime = require_mime_types(); + var path = __require("node:path"); + var pathIsAbsolute = __require("node:path").isAbsolute; + var statuses = require_statuses(); + var sign = require_cookie_signature().sign; + var normalizeType = require_utils3().normalizeType; + var normalizeTypes = require_utils3().normalizeTypes; + var setCharset = require_utils3().setCharset; + var cookie = require_cookie(); + var send = require_send(); + var extname = path.extname; + var resolve = path.resolve; + var basename = path.basename; + var vary = require_vary(); + var { Buffer: Buffer2 } = __require("node:buffer"); + var res = Object.create(http2.ServerResponse.prototype); + module.exports = res; + res.status = /* @__PURE__ */ __name(function status(code) { + if (!Number.isInteger(code)) { + throw new TypeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be an integer.`); + } + if (code < 100 || code > 999) { + throw new RangeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be greater than 99 and less than 1000.`); + } + this.statusCode = code; + return this; + }, "status"); + res.links = function(links) { + var link = this.get("Link") || ""; + if (link) link += ", "; + return this.set("Link", link + Object.keys(links).map(function(rel) { + if (Array.isArray(links[rel])) { + return links[rel].map(function(singleLink) { + return `<${singleLink}>; rel="${rel}"`; + }).join(", "); + } else { + return `<${links[rel]}>; rel="${rel}"`; + } + }).join(", ")); + }; + res.send = /* @__PURE__ */ __name(function send2(body) { + var chunk = body; + var encoding; + var req = this.req; + var app = this.app; + switch (typeof chunk) { + // string defaulting to html + case "string": + encoding = "utf8"; + const type = this.get("Content-Type"); + if (typeof type === "string") { + this.set("Content-Type", setCharset(type, "utf-8")); + } else { + this.type("html"); + } + break; + case "boolean": + case "number": + case "object": + if (chunk === null) { + chunk = ""; + } else if (ArrayBuffer.isView(chunk)) { + if (!this.get("Content-Type")) { + this.type("bin"); + } + } else { + return this.json(chunk); + } + break; + } + var etagFn = app.get("etag fn"); + var generateETag = !this.get("ETag") && typeof etagFn === "function"; + var len; + if (chunk !== void 0) { + if (Buffer2.isBuffer(chunk)) { + len = chunk.length; + } else if (!generateETag && chunk.length < 1e3) { + len = Buffer2.byteLength(chunk, encoding); + } else { + chunk = Buffer2.from(chunk, encoding); + encoding = void 0; + len = chunk.length; + } + if (!this.get("Transfer-Encoding")) { + this.set("Content-Length", len); + } + } + var etag; + if (generateETag && len !== void 0) { + if (etag = etagFn(chunk, encoding)) { + this.set("ETag", etag); + } + } + if (req.fresh) this.status(304); + if (204 === this.statusCode || 304 === this.statusCode) { + this.removeHeader("Content-Type"); + this.removeHeader("Content-Length"); + this.removeHeader("Transfer-Encoding"); + chunk = ""; + } + if (this.statusCode === 205) { + this.set("Content-Length", "0"); + this.removeHeader("Transfer-Encoding"); + chunk = ""; + } + if (req.method === "HEAD") { + this.end(); + } else { + this.end(chunk, encoding); + } + return this; + }, "send"); + res.json = /* @__PURE__ */ __name(function json(obj) { + var app = this.app; + var escape2 = app.get("json escape"); + var replacer = app.get("json replacer"); + var spaces = app.get("json spaces"); + var body = stringify2(obj, replacer, spaces, escape2); + if (!this.get("Content-Type")) { + this.set("Content-Type", "application/json"); + } + return this.send(body); + }, "json"); + res.jsonp = /* @__PURE__ */ __name(function jsonp(obj) { + var app = this.app; + var escape2 = app.get("json escape"); + var replacer = app.get("json replacer"); + var spaces = app.get("json spaces"); + var body = stringify2(obj, replacer, spaces, escape2); + var callback = this.req.query[app.get("jsonp callback name")]; + if (!this.get("Content-Type")) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "application/json"); + } + if (Array.isArray(callback)) { + callback = callback[0]; + } + if (typeof callback === "string" && callback.length !== 0) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "text/javascript"); + callback = callback.replace(/[^\[\]\w$.]/g, ""); + if (body === void 0) { + body = ""; + } else if (typeof body === "string") { + body = body.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); + } + body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");"; + } + return this.send(body); + }, "jsonp"); + res.sendStatus = /* @__PURE__ */ __name(function sendStatus(statusCode) { + var body = statuses.message[statusCode] || String(statusCode); + this.status(statusCode); + this.type("txt"); + return this.send(body); + }, "sendStatus"); + res.sendFile = /* @__PURE__ */ __name(function sendFile(path2, options, callback) { + var done = callback; + var req = this.req; + var res2 = this; + var next = req.next; + var opts = options || {}; + if (!path2) { + throw new TypeError("path argument is required to res.sendFile"); + } + if (typeof path2 !== "string") { + throw new TypeError("path must be a string to res.sendFile"); + } + if (typeof options === "function") { + done = options; + opts = {}; + } + if (!opts.root && !pathIsAbsolute(path2)) { + throw new TypeError("path must be absolute or specify root to res.sendFile"); + } + var pathname = encodeURI(path2); + opts.etag = this.app.enabled("etag"); + var file = send(req, pathname, opts); + sendfile(res2, file, opts, function(err) { + if (done) return done(err); + if (err && err.code === "EISDIR") return next(); + if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") { + next(err); + } + }); + }, "sendFile"); + res.download = /* @__PURE__ */ __name(function download(path2, filename, options, callback) { + var done = callback; + var name = filename; + var opts = options || null; + if (typeof filename === "function") { + done = filename; + name = null; + opts = null; + } else if (typeof options === "function") { + done = options; + opts = null; + } + if (typeof filename === "object" && (typeof options === "function" || options === void 0)) { + name = null; + opts = filename; + } + var headers = { + "Content-Disposition": contentDisposition.create(basename(name || path2)) + }; + if (opts && opts.headers) { + var keys = Object.keys(opts.headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key.toLowerCase() !== "content-disposition") { + headers[key] = opts.headers[key]; + } + } + } + opts = Object.create(opts); + opts.headers = headers; + var fullPath = !opts.root ? resolve(path2) : path2; + return this.sendFile(fullPath, opts, done); + }, "download"); + res.contentType = res.type = /* @__PURE__ */ __name(function contentType(type) { + var ct = type.indexOf("/") === -1 ? mime.contentType(type) || "application/octet-stream" : type; + return this.set("Content-Type", ct); + }, "contentType"); + res.format = function(obj) { + var req = this.req; + var next = req.next; + var keys = Object.keys(obj).filter(function(v) { + return v !== "default"; + }); + var key = keys.length > 0 ? req.accepts(keys) : false; + this.vary("Accept"); + if (key) { + this.set("Content-Type", normalizeType(key).value); + obj[key](req, this, next); + } else if (obj.default) { + obj.default(req, this, next); + } else { + next(createError(406, { + types: normalizeTypes(keys).map(function(o) { + return o.value; + }) + })); + } + return this; + }; + res.attachment = /* @__PURE__ */ __name(function attachment(filename) { + const name = filename !== void 0 ? basename(filename) : void 0; + if (name) { + this.type(extname(name)); + } + this.set("Content-Disposition", contentDisposition.create(name)); + return this; + }, "attachment"); + res.append = /* @__PURE__ */ __name(function append(field, val) { + var prev = this.get(field); + var value = val; + if (prev) { + value = Array.isArray(prev) ? prev.concat(val) : Array.isArray(val) ? [prev].concat(val) : [prev, val]; + } + return this.set(field, value); + }, "append"); + res.set = res.header = /* @__PURE__ */ __name(function header(field, val) { + if (arguments.length === 2) { + var value = Array.isArray(val) ? val.map(String) : String(val); + if (field.toLowerCase() === "content-type") { + if (Array.isArray(value)) { + throw new TypeError("Content-Type cannot be set to an Array"); + } + value = mime.contentType(value); + } + this.setHeader(field, value); + } else { + for (var key in field) { + this.set(key, field[key]); + } + } + return this; + }, "header"); + res.get = function(field) { + return this.getHeader(field); + }; + res.clearCookie = /* @__PURE__ */ __name(function clearCookie(name, options) { + const opts = { path: "/", ...options, expires: /* @__PURE__ */ new Date(1) }; + delete opts.maxAge; + return this.cookie(name, "", opts); + }, "clearCookie"); + res.cookie = function(name, value, options) { + var opts = { ...options }; + var secret = this.req.secret; + var signed = opts.signed; + if (signed && !secret) { + throw new Error('cookieParser("secret") required for signed cookies'); + } + var val = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value); + if (signed) { + val = "s:" + sign(val, secret); + } + if (opts.maxAge != null) { + var maxAge = opts.maxAge - 0; + if (!isNaN(maxAge)) { + opts.expires = new Date(Date.now() + maxAge); + opts.maxAge = Math.floor(maxAge / 1e3); + } + } + if (opts.path == null) { + opts.path = "/"; + } + this.append("Set-Cookie", cookie.serialize(name, String(val), opts)); + return this; + }; + res.location = /* @__PURE__ */ __name(function location(url) { + return this.set("Location", encodeUrl(url)); + }, "location"); + res.redirect = /* @__PURE__ */ __name(function redirect(url) { + var address = url; + var body; + var status = 302; + if (arguments.length === 2) { + status = arguments[0]; + address = arguments[1]; + } + if (!address) { + deprecate("Provide a url argument"); + } + if (typeof address !== "string") { + deprecate("Url must be a string"); + } + if (typeof status !== "number") { + deprecate("Status must be a number"); + } + address = this.location(address).get("Location"); + this.format({ + text: /* @__PURE__ */ __name(function() { + body = statuses.message[status] + ". Redirecting to " + address; + }, "text"), + html: /* @__PURE__ */ __name(function() { + var u = escapeHtml(address); + body = "" + statuses.message[status] + "

" + statuses.message[status] + ". Redirecting to " + u + "

"; + }, "html"), + default: /* @__PURE__ */ __name(function() { + body = ""; + }, "default") + }); + this.status(status); + this.set("Content-Length", Buffer2.byteLength(body)); + if (this.req.method === "HEAD") { + this.end(); + } else { + this.end(body); + } + }, "redirect"); + res.vary = function(field) { + vary(this, field); + return this; + }; + res.render = /* @__PURE__ */ __name(function render(view, options, callback) { + var app = this.req.app; + var done = callback; + var opts = options || {}; + var req = this.req; + var self = this; + if (typeof options === "function") { + done = options; + opts = {}; + } + opts._locals = self.locals; + done = done || function(err, str) { + if (err) return req.next(err); + self.send(str); + }; + app.render(view, opts, done); + }, "render"); + function sendfile(res2, file, options, callback) { + var done = false; + var streaming; + function onaborted() { + if (done) return; + done = true; + var err = new Error("Request aborted"); + err.code = "ECONNABORTED"; + callback(err); + } + __name(onaborted, "onaborted"); + function ondirectory() { + if (done) return; + done = true; + var err = new Error("EISDIR, read"); + err.code = "EISDIR"; + callback(err); + } + __name(ondirectory, "ondirectory"); + function onerror(err) { + if (done) return; + done = true; + callback(err); + } + __name(onerror, "onerror"); + function onend() { + if (done) return; + done = true; + callback(); + } + __name(onend, "onend"); + function onfile() { + streaming = false; + } + __name(onfile, "onfile"); + function onfinish(err) { + if (err && err.code === "ECONNRESET") return onaborted(); + if (err) return onerror(err); + if (done) return; + setImmediate(function() { + if (streaming !== false && !done) { + onaborted(); + return; + } + if (done) return; + done = true; + callback(); + }); + } + __name(onfinish, "onfinish"); + function onstream() { + streaming = true; + } + __name(onstream, "onstream"); + file.on("directory", ondirectory); + file.on("end", onend); + file.on("error", onerror); + file.on("file", onfile); + file.on("stream", onstream); + onFinished(res2, onfinish); + if (options.headers) { + file.on("headers", /* @__PURE__ */ __name(function headers(res3) { + var obj = options.headers; + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + res3.setHeader(k, obj[k]); + } + }, "headers")); + } + file.pipe(res2); + } + __name(sendfile, "sendfile"); + function stringify2(value, replacer, spaces, escape2) { + var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value); + if (escape2 && typeof json === "string") { + json = json.replace(/[<>&]/g, function(c) { + switch (c.charCodeAt(0)) { + case 60: + return "\\u003c"; + case 62: + return "\\u003e"; + case 38: + return "\\u0026"; + /* istanbul ignore next: unreachable default */ + default: + return c; + } + }); + } + return json; + } + __name(stringify2, "stringify"); + } +}); + +// ../../node_modules/.pnpm/serve-static@2.2.1/node_modules/serve-static/index.js +var require_serve_static = __commonJS({ + "../../node_modules/.pnpm/serve-static@2.2.1/node_modules/serve-static/index.js"(exports, module) { + "use strict"; + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var parseUrl = require_parseurl(); + var resolve = __require("path").resolve; + var send = require_send(); + var url = __require("url"); + module.exports = serveStatic; + function serveStatic(root, options) { + if (!root) { + throw new TypeError("root path required"); + } + if (typeof root !== "string") { + throw new TypeError("root path must be a string"); + } + var opts = Object.create(options || null); + var fallthrough = opts.fallthrough !== false; + var redirect = opts.redirect !== false; + var setHeaders = opts.setHeaders; + if (setHeaders && typeof setHeaders !== "function") { + throw new TypeError("option setHeaders must be function"); + } + opts.maxage = opts.maxage || opts.maxAge || 0; + opts.root = resolve(root); + var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener(); + return /* @__PURE__ */ __name(function serveStatic2(req, res, next) { + if (req.method !== "GET" && req.method !== "HEAD") { + if (fallthrough) { + return next(); + } + res.statusCode = 405; + res.setHeader("Allow", "GET, HEAD"); + res.setHeader("Content-Length", "0"); + res.end(); + return; + } + var forwardError = !fallthrough; + var originalUrl = parseUrl.original(req); + var path = parseUrl(req).pathname; + if (path === "/" && originalUrl.pathname.substr(-1) !== "/") { + path = ""; + } + var stream = send(req, path, opts); + stream.on("directory", onDirectory); + if (setHeaders) { + stream.on("headers", setHeaders); + } + if (fallthrough) { + stream.on("file", /* @__PURE__ */ __name(function onFile() { + forwardError = true; + }, "onFile")); + } + stream.on("error", /* @__PURE__ */ __name(function error(err) { + if (forwardError || !(err.statusCode < 500)) { + next(err); + return; + } + next(); + }, "error")); + stream.pipe(res); + }, "serveStatic"); + } + __name(serveStatic, "serveStatic"); + function collapseLeadingSlashes(str) { + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) !== 47) { + break; + } + } + return i > 1 ? "/" + str.substr(i) : str; + } + __name(collapseLeadingSlashes, "collapseLeadingSlashes"); + function createHtmlDocument(title, body) { + return '\n\n\n\n' + title + "\n\n\n
" + body + "
\n\n\n"; + } + __name(createHtmlDocument, "createHtmlDocument"); + function createNotFoundDirectoryListener() { + return /* @__PURE__ */ __name(function notFound() { + this.error(404); + }, "notFound"); + } + __name(createNotFoundDirectoryListener, "createNotFoundDirectoryListener"); + function createRedirectDirectoryListener() { + return /* @__PURE__ */ __name(function redirect(res) { + if (this.hasTrailingSlash()) { + this.error(404); + return; + } + var originalUrl = parseUrl.original(this.req); + originalUrl.path = null; + originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + "/"); + var loc = encodeUrl(url.format(originalUrl)); + var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc)); + res.statusCode = 301; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Location", loc); + res.end(doc); + }, "redirect"); + } + __name(createRedirectDirectoryListener, "createRedirectDirectoryListener"); + } +}); + +// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/express.js +var require_express = __commonJS({ + "../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/express.js"(exports, module) { + "use strict"; + var bodyParser = require_body_parser(); + var EventEmitter = __require("node:events").EventEmitter; + var mixin2 = require_merge_descriptors(); + var proto = require_application(); + var Router = require_router(); + var req = require_request(); + var res = require_response(); + exports = module.exports = createApplication; + function createApplication() { + var app = /* @__PURE__ */ __name(function(req2, res2, next) { + app.handle(req2, res2, next); + }, "app"); + mixin2(app, EventEmitter.prototype, false); + mixin2(app, proto, false); + app.request = Object.create(req, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }); + app.response = Object.create(res, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }); + app.init(); + return app; + } + __name(createApplication, "createApplication"); + exports.application = proto; + exports.request = req; + exports.response = res; + exports.Route = Router.Route; + exports.Router = Router; + exports.json = bodyParser.json; + exports.raw = bodyParser.raw; + exports.static = require_serve_static(); + exports.text = bodyParser.text; + exports.urlencoded = bodyParser.urlencoded; + } +}); + +// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/index.js +var require_express2 = __commonJS({ + "../../node_modules/.pnpm/express@5.3.0/node_modules/express/index.js"(exports, module) { + "use strict"; + module.exports = require_express(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-body-parser-options.util.js +function getBodyParserOptions(parser, rawBody, options) { + if (rawBody === true) { + return { + ...options, + verify: rawBodyParser + }; + } + return options || {}; +} +var rawBodyParser; +var init_get_body_parser_options_util = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-body-parser-options.util.js"() { + rawBodyParser = /* @__PURE__ */ __name((req, _res, buffer) => { + if (Buffer.isBuffer(buffer)) { + req.rawBody = buffer; + } + return true; + }, "rawBodyParser"); + __name(getBodyParserOptions, "getBodyParserOptions"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-media-type-version.util.js +function getMediaTypeVersion(acceptHeader, key) { + const mediaRanges = [].concat(acceptHeader ?? []).flatMap((value) => splitOutsideQuotes(value, ",")); + for (const mediaRange of mediaRanges) { + const [, ...parameters] = splitOutsideQuotes(mediaRange, ";"); + for (const parameter of parameters) { + const trimmedParameter = parameter.trim(); + if (trimmedParameter.startsWith(key)) { + const version = trimmedParameter.slice(key.length); + if (version.startsWith('"') && version.endsWith('"')) { + return version.slice(1, -1).replace(/\\([\s\S])/g, "$1"); + } + return version; + } + } + } + return void 0; +} +var splitOutsideQuotes; +var init_get_media_type_version_util = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-media-type-version.util.js"() { + splitOutsideQuotes = /* @__PURE__ */ __name((value, separator) => { + const parts = []; + let start = 0; + let isQuoted = false; + const len = value.length; + for (let index = 0; index < len; index++) { + const character = value[index]; + if (isQuoted && character === "\\") { + index++; + } else if (character === '"') { + isQuoted = !isQuoted; + } else if (character === separator && !isQuoted) { + parts.push(value.slice(start, index)); + start = index + 1; + } + } + parts.push(value.slice(start)); + return parts; + }, "splitOutsideQuotes"); + __name(getMediaTypeVersion, "getMediaTypeVersion"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/select-exception-filter-metadata.util.js +var selectExceptionFilterMetadata; +var init_select_exception_filter_metadata_util = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/select-exception-filter-metadata.util.js"() { + selectExceptionFilterMetadata = /* @__PURE__ */ __name((filters, exception) => filters.find(({ exceptionMetatypes }) => !exceptionMetatypes.length || exceptionMetatypes.some((ExceptionMetaType) => exception instanceof ExceptionMetaType)), "selectExceptionFilterMetadata"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/internal.js +var init_internal = __esm({ + "../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/internal.js"() { + init_constants(); + init_route_paramtypes_enum(); + init_shared_utils(); + init_parameter_decorator_options_util(); + init_load_package_util(); + init_cli_colors_util(); + init_random_string_generator_util(); + init_select_exception_filter_metadata_util(); + init_route_params_decorator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/serialize-cookie.js +function serializeCookie(name, value, options = {}) { + if (typeof name !== "string" || !COOKIE_NAME_REGEXP.test(name)) { + throw new TypeError(`Invalid cookie name: ${JSON.stringify(name)}`); + } + if (typeof value !== "string") { + throw new TypeError(`Invalid value for cookie "${name}": expected a string, received ${typeof value}`); + } + let encodedValue; + try { + encodedValue = encodeURIComponent(value); + } catch { + throw new TypeError(`Invalid value for cookie "${name}": not a well-formed string`); + } + let header = `${name}=${encodedValue}`; + const path = options.path ?? "/"; + if (typeof path !== "string" || !COOKIE_PATH_REGEXP.test(path)) { + throw new TypeError(`Invalid path for cookie "${name}"`); + } + header += `; Path=${path}`; + if (options.domain !== void 0) { + if (typeof options.domain !== "string" || !COOKIE_DOMAIN_REGEXP.test(options.domain)) { + throw new TypeError(`Invalid domain for cookie "${name}"`); + } + header += `; Domain=${options.domain}`; + } + if (options.maxAge !== void 0) { + if (!Number.isSafeInteger(options.maxAge)) { + throw new TypeError(`Invalid maxAge for cookie "${name}": expected an integer number of seconds`); + } + header += `; Max-Age=${options.maxAge}`; + } + if (options.expires !== void 0) { + if (!(options.expires instanceof Date) || Number.isNaN(options.expires.getTime())) { + throw new TypeError(`Invalid expires date for cookie "${name}"`); + } + header += `; Expires=${options.expires.toUTCString()}`; + } + if (options.httpOnly) { + header += "; HttpOnly"; + } + if (options.secure) { + header += "; Secure"; + } + if (options.partitioned) { + if (!options.secure) { + throw new TypeError(`Invalid options for cookie "${name}": "partitioned" requires "secure: true"`); + } + header += "; Partitioned"; + } + if (options.priority !== void 0) { + const priority = PRIORITY_VALUES.get(String(options.priority).toLowerCase()); + if (!priority) { + throw new TypeError(`Invalid priority for cookie "${name}"`); + } + header += `; Priority=${priority}`; + } + if (options.sameSite !== void 0) { + const sameSite = SAME_SITE_VALUES.get(String(options.sameSite).toLowerCase()); + if (!sameSite) { + throw new TypeError(`Invalid sameSite for cookie "${name}"`); + } + if (sameSite === "None" && !options.secure) { + throw new TypeError(`Invalid options for cookie "${name}": "sameSite: 'none'" requires "secure: true"`); + } + header += `; SameSite=${sameSite}`; + } + return header; +} +var COOKIE_NAME_REGEXP, COOKIE_DOMAIN_REGEXP, COOKIE_PATH_REGEXP, SAME_SITE_VALUES, PRIORITY_VALUES; +var init_serialize_cookie = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/serialize-cookie.js"() { + COOKIE_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + COOKIE_DOMAIN_REGEXP = /^\.?[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i; + COOKIE_PATH_REGEXP = /^[ -:<-~]*$/; + SAME_SITE_VALUES = /* @__PURE__ */ new Map([ + ["strict", "Strict"], + ["lax", "Lax"], + ["none", "None"] + ]); + PRIORITY_VALUES = /* @__PURE__ */ new Map([ + ["low", "Low"], + ["medium", "Medium"], + ["high", "High"] + ]); + __name(serializeCookie, "serializeCookie"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/http-adapter.js +var AbstractHttpAdapter; +var init_http_adapter = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/http-adapter.js"() { + init_serialize_cookie(); + AbstractHttpAdapter = class { + static { + __name(this, "AbstractHttpAdapter"); + } + instance; + /** + * Native HTTP server created by {@link AbstractHttpAdapter.initHttpServer} + * and returned by {@link AbstractHttpAdapter.getHttpServer}. + */ + httpServer; + /** + * Callback registered through + * {@link AbstractHttpAdapter.setOnRouteTriggered}, if any. + */ + onRouteTriggered; + /** + * Signer built from the `cookies.secret` application option, used by + * {@link AbstractHttpAdapter.setCookie} for `signed` cookies. + */ + cookieSigner; + /** + * @param instance The framework application instance to delegate to (e.g. + * an Express `Application`). Subclasses typically create a default one + * when none is given. + */ + constructor(instance) { + this.instance = instance; + } + /** + * Asynchronous setup hook, awaited by `NestFactory.create()` and again by + * `app.init()`, so overrides must be idempotent. No-op by default. + * + * @see {@link HttpServer.init} + */ + async init() { + } + /** + * Registers a global middleware by delegating to `instance.use(...args)`. + * + * @see {@link HttpServer.use} + */ + use(...args) { + return this.instance.use(...args); + } + get(...args) { + return this.instance.get(...args); + } + post(...args) { + return this.instance.post(...args); + } + head(...args) { + return this.instance.head(...args); + } + delete(...args) { + return this.instance.delete(...args); + } + put(...args) { + return this.instance.put(...args); + } + patch(...args) { + return this.instance.patch(...args); + } + propfind(...args) { + return this.instance.propfind(...args); + } + proppatch(...args) { + return this.instance.proppatch(...args); + } + mkcol(...args) { + return this.instance.mkcol(...args); + } + copy(...args) { + return this.instance.copy(...args); + } + move(...args) { + return this.instance.move(...args); + } + lock(...args) { + return this.instance.lock(...args); + } + unlock(...args) { + return this.instance.unlock(...args); + } + all(...args) { + return this.instance.all(...args); + } + search(...args) { + return this.instance.search(...args); + } + query(...args) { + return this.instance.query(...args); + } + options(...args) { + return this.instance.options(...args); + } + listen(port, hostname, callback) { + return this.instance.listen(port, hostname, callback); + } + /** + * Returns the native HTTP server stored by + * {@link AbstractHttpAdapter.initHttpServer} (or + * {@link AbstractHttpAdapter.setHttpServer}). + * + * @see {@link HttpServer.getHttpServer} + */ + getHttpServer() { + return this.httpServer; + } + /** + * Replaces the native HTTP server returned by + * {@link AbstractHttpAdapter.getHttpServer}. Mostly useful for tests and + * for adapters that obtain the server from elsewhere. + */ + setHttpServer(httpServer) { + this.httpServer = httpServer; + } + /** + * Replaces the framework application instance that the default method + * implementations delegate to. + */ + setInstance(instance) { + this.instance = instance; + } + /** + * Returns the framework application instance passed to the constructor + * (or set through {@link AbstractHttpAdapter.setInstance}). + * + * @see {@link HttpServer.getInstance} + */ + getInstance() { + return this.instance; + } + /** + * Converts and validates a route path before registration. Returns the + * path unchanged by default; override to translate Nest's path syntax to + * the router's and to throw on invalid paths. + * + * @see {@link HttpServer.normalizePath} + */ + normalizePath(path) { + return path; + } + /** + * Registers a callback that the router invokes right before each route + * handler runs, with the resolved `RequestMethod` and the route path as + * declared (before {@link AbstractHttpAdapter.normalizePath}). The router + * wraps every handler at registration time, so the callback must be set + * before `app.init()` to take effect. Intended for instrumentation and + * devtools; there is no need to override it. + */ + setOnRouteTriggered(onRouteTriggered) { + this.onRouteTriggered = onRouteTriggered; + } + /** + * Returns the callback registered through + * {@link AbstractHttpAdapter.setOnRouteTriggered}, if any. Read by the + * router when registering routes. + */ + getOnRouteTriggered() { + return this.onRouteTriggered; + } + /** + * Registers a hook to run at the start of every request. No-op by default; + * the built-in adapters accept a `(req, res, done) => void | Promise` + * function and call `done()` to continue processing. Intended for + * instrumentation and devtools. + */ + setOnRequestHook(onRequestHook) { + } + /** + * Registers a hook to run once a response has been sent. No-op by default; + * the built-in adapters accept a `(req, res) => void | Promise` + * function. Intended for instrumentation and devtools. + */ + setOnResponseHook(onResponseHook) { + } + /** + * Called by `app.close()` before the shutdown hooks run. No-op by default; + * override to enter a "shutting down" state. + * + * @see {@link HttpServer.beforeClose} + */ + beforeClose() { + } + /** + * Translates a framework-native error into something the exception filters + * understand. Invoked by the global exception layer with every error it + * receives, before it reaches the filters; the returned value is what the + * filters see. Returns the error unchanged by default. The built-in + * adapters map, for instance, body-parser `SyntaxError`s to + * `BadRequestException`. + */ + mapException(error) { + return error; + } + /** + * Installs the request hook of the built-in HTTP security features as a + * global middleware (`use()`), which fits Express-like frameworks: the hook + * gets the request and the response, and a rejection is handed to + * `next(error)`, i.e. to the exception layer. Override when the framework + * offers an earlier request hook (the Fastify adapter uses `onRequest`). + * + * @see {@link HttpServer.registerSecurityHook} + */ + registerSecurityHook(hook) { + return this.use((request, response, next) => { + const error = hook(request, response); + return error ? next(error) : next(); + }); + } + /** + * Appends a `Set-Cookie` header through {@link AbstractHttpAdapter.appendHeader}, + * so every cookie set during a request is sent, on every platform. The + * value is percent-encoded, `path` defaults to `/` and `maxAge` is in + * seconds (not milliseconds, unlike Express' `res.cookie()`); with + * `signed: true`, the value is signed with the first `cookies.secret`. + * + * Throws a `TypeError` when the name, the value or an attribute is not + * valid per RFC 6265 (which rules out header injection through `;`, CR or + * LF) or when `sameSite: 'none'` or `partitioned` is set without `secure`, + * and an `Error` when `signed` is set but no secret is configured. + * + * @see {@link HttpServer.setCookie} + */ + setCookie(response, name, value, options = {}) { + let cookieValue = value; + if (options.signed) { + if (!this.cookieSigner) { + throw new Error(`Cannot sign cookie "${name}": no cookie secret is configured. Pass "cookies: { secret }" to NestFactory.create().`); + } + if (typeof value !== "string") { + throw new TypeError(`Invalid value for cookie "${name}": expected a string, received ${typeof value}`); + } + cookieValue = this.cookieSigner.sign(value); + } + return this.appendHeader(response, "Set-Cookie", serializeCookie(name, cookieValue, options)); + } + /** + * Appends a `Set-Cookie` header that expires the cookie immediately. + * `path` and `domain` must match the ones the cookie was set with; `maxAge`, + * `expires` and `signed` are ignored. + * + * @see {@link HttpServer.clearCookie} + */ + clearCookie(response, name, options = {}) { + return this.appendHeader(response, "Set-Cookie", serializeCookie(name, "", { + ...options, + maxAge: 0, + expires: /* @__PURE__ */ new Date(0) + })); + } + /** + * Sets the signer used for `signed` cookies. Called by `NestApplication` + * with the signer it builds from the `cookies.secret` application option; + * configure that option instead of calling this method. + * + * @internal + */ + setCookieSigner(signer) { + this.cookieSigner = signer; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/index.js +var init_adapters = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/index.js"() { + init_http_adapter(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/application-config.js +var ApplicationConfig; +var init_application_config = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/application-config.js"() { + ApplicationConfig = class { + static { + __name(this, "ApplicationConfig"); + } + ioAdapter; + globalPrefix = ""; + globalPrefixOptions = {}; + globalPipes = []; + globalFilters = []; + globalInterceptors = []; + globalGuards = []; + globalPreRequestHooks = []; + versioningOptions; + routeConflictPolicy; + routeResolutionStrategy; + cookieSigner; + globalRequestPipes = []; + globalRequestFilters = []; + globalRequestInterceptors = []; + globalRequestGuards = []; + constructor(ioAdapter = null) { + this.ioAdapter = ioAdapter; + } + setGlobalPrefix(prefix) { + this.globalPrefix = prefix; + } + getGlobalPrefix() { + return this.globalPrefix; + } + setGlobalPrefixOptions(options) { + this.globalPrefixOptions = options; + } + getGlobalPrefixOptions() { + return this.globalPrefixOptions; + } + setIoAdapter(ioAdapter) { + this.ioAdapter = ioAdapter; + } + getIoAdapter() { + return this.ioAdapter; + } + addGlobalPipe(pipe) { + this.globalPipes.push(pipe); + } + useGlobalPipes(...pipes) { + this.globalPipes = this.globalPipes.concat(pipes); + } + getGlobalFilters() { + return this.globalFilters; + } + addGlobalFilter(filter) { + this.globalFilters.push(filter); + } + useGlobalFilters(...filters) { + this.globalFilters = this.globalFilters.concat(filters); + } + getGlobalPipes() { + return this.globalPipes; + } + getGlobalInterceptors() { + return this.globalInterceptors; + } + addGlobalInterceptor(interceptor) { + this.globalInterceptors.push(interceptor); + } + useGlobalInterceptors(...interceptors) { + this.globalInterceptors = this.globalInterceptors.concat(interceptors); + } + getGlobalGuards() { + return this.globalGuards; + } + addGlobalGuard(guard) { + this.globalGuards.push(guard); + } + useGlobalGuards(...guards) { + this.globalGuards = this.globalGuards.concat(guards); + } + addGlobalRequestInterceptor(wrapper) { + this.globalRequestInterceptors.push(wrapper); + } + getGlobalRequestInterceptors() { + return this.globalRequestInterceptors; + } + addGlobalRequestPipe(wrapper) { + this.globalRequestPipes.push(wrapper); + } + getGlobalRequestPipes() { + return this.globalRequestPipes; + } + addGlobalRequestFilter(wrapper) { + this.globalRequestFilters.push(wrapper); + } + getGlobalRequestFilters() { + return this.globalRequestFilters; + } + addGlobalRequestGuard(wrapper) { + this.globalRequestGuards.push(wrapper); + } + getGlobalRequestGuards() { + return this.globalRequestGuards; + } + registerPreRequestHook(...hooks) { + this.globalPreRequestHooks = this.globalPreRequestHooks.concat(hooks); + } + getGlobalPreRequestHooks() { + return this.globalPreRequestHooks; + } + enableVersioning(options) { + if (Array.isArray(options.defaultVersion)) { + options.defaultVersion = Array.from(new Set(options.defaultVersion)); + } + this.versioningOptions = options; + } + getVersioning() { + return this.versioningOptions; + } + setRouteConflictPolicy(policy) { + this.routeConflictPolicy = policy; + } + getRouteConflictPolicy() { + return this.routeConflictPolicy; + } + setRouteResolutionStrategy(strategy) { + this.routeResolutionStrategy = strategy; + } + getRouteResolutionStrategy() { + return this.routeResolutionStrategy; + } + setCookieSigner(signer) { + this.cookieSigner = signer; + } + getCookieSigner() { + return this.cookieSigner; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/constants.js +var MESSAGES, APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER, ENHANCER_TOKEN_TO_SUBTYPE_MAP; +var init_constants2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/constants.js"() { + MESSAGES = { + APPLICATION_START: `Starting Nest application...`, + APPLICATION_READY: `Nest application successfully started`, + MICROSERVICE_READY: `Nest microservice successfully started`, + UNKNOWN_EXCEPTION_MESSAGE: "Internal server error", + ERROR_DURING_SHUTDOWN: "Error happened during shutdown", + CALL_LISTEN_FIRST: "app.listen() needs to be called before calling app.getUrl()" + }; + APP_INTERCEPTOR = "APP_INTERCEPTOR"; + APP_PIPE = "APP_PIPE"; + APP_GUARD = "APP_GUARD"; + APP_FILTER = "APP_FILTER"; + ENHANCER_TOKEN_TO_SUBTYPE_MAP = { + [APP_GUARD]: "guard", + [APP_INTERCEPTOR]: "interceptor", + [APP_PIPE]: "pipe", + [APP_FILTER]: "filter" + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/metadata-scanner.js +var MetadataScanner; +var init_metadata_scanner = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/metadata-scanner.js"() { + init_internal(); + MetadataScanner = class { + static { + __name(this, "MetadataScanner"); + } + cachedScannedPrototypes = /* @__PURE__ */ new Map(); + /** + * @deprecated + * @see {@link getAllMethodNames} + * @see getAllMethodNames + */ + scanFromPrototype(instance, prototype, callback) { + if (!prototype) { + return []; + } + const visitedNames = /* @__PURE__ */ new Map(); + const result = []; + do { + for (const property of Object.getOwnPropertyNames(prototype)) { + if (visitedNames.has(property)) { + continue; + } + visitedNames.set(property, true); + const descriptor = Object.getOwnPropertyDescriptor(prototype, property); + if (descriptor.set || descriptor.get || isConstructor(property) || !isFunction(prototype[property])) { + continue; + } + const value = callback(property); + if (isNil(value)) { + continue; + } + result.push(value); + } + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype); + return result; + } + /** + * @deprecated + * @see {@link getAllMethodNames} + * @see getAllMethodNames + */ + *getAllFilteredMethodNames(prototype) { + yield* this.getAllMethodNames(prototype); + } + getAllMethodNames(prototype) { + if (!prototype) { + return []; + } + if (this.cachedScannedPrototypes.has(prototype)) { + return this.cachedScannedPrototypes.get(prototype); + } + const visitedNames = /* @__PURE__ */ new Map(); + const result = []; + this.cachedScannedPrototypes.set(prototype, result); + do { + for (const property of Object.getOwnPropertyNames(prototype)) { + if (visitedNames.has(property)) { + continue; + } + visitedNames.set(property, true); + const descriptor = Object.getOwnPropertyDescriptor(prototype, property); + if (descriptor.set || descriptor.get || isConstructor(property) || !isFunction(prototype[property])) { + continue; + } + result.push(property); + } + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype); + return result; + } + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js +var require_performanceTimestampProvider = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.performanceTimestampProvider = void 0; + exports.performanceTimestampProvider = { + now: /* @__PURE__ */ __name(function() { + return (exports.performanceTimestampProvider.delegate || performance).now(); + }, "now"), + delegate: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js +var require_animationFrameProvider = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.animationFrameProvider = void 0; + var Subscription_1 = require_Subscription(); + exports.animationFrameProvider = { + schedule: /* @__PURE__ */ __name(function(callback) { + var request = requestAnimationFrame; + var cancel = cancelAnimationFrame; + var delegate = exports.animationFrameProvider.delegate; + if (delegate) { + request = delegate.requestAnimationFrame; + cancel = delegate.cancelAnimationFrame; + } + var handle = request(function(timestamp) { + cancel = void 0; + callback(timestamp); + }); + return new Subscription_1.Subscription(function() { + return cancel === null || cancel === void 0 ? void 0 : cancel(handle); + }); + }, "schedule"), + requestAnimationFrame: /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports.animationFrameProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args))); + }, "requestAnimationFrame"), + cancelAnimationFrame: /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports.animationFrameProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args))); + }, "cancelAnimationFrame"), + delegate: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js +var require_animationFrames = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.animationFrames = void 0; + var Observable_1 = require_Observable(); + var performanceTimestampProvider_1 = require_performanceTimestampProvider(); + var animationFrameProvider_1 = require_animationFrameProvider(); + function animationFrames(timestampProvider) { + return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES; + } + __name(animationFrames, "animationFrames"); + exports.animationFrames = animationFrames; + function animationFramesFactory(timestampProvider) { + return new Observable_1.Observable(function(subscriber) { + var provider = timestampProvider || performanceTimestampProvider_1.performanceTimestampProvider; + var start = provider.now(); + var id = 0; + var run = /* @__PURE__ */ __name(function() { + if (!subscriber.closed) { + id = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function(timestamp) { + id = 0; + var now = provider.now(); + subscriber.next({ + timestamp: timestampProvider ? now : timestamp, + elapsed: now - start + }); + run(); + }); + } + }, "run"); + run(); + return function() { + if (id) { + animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); + } + }; + }); + } + __name(animationFramesFactory, "animationFramesFactory"); + var DEFAULT_ANIMATION_FRAMES = animationFramesFactory(); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/Immediate.js +var require_Immediate = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/Immediate.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.TestTools = exports.Immediate = void 0; + var nextHandle = 1; + var resolved; + var activeHandles = {}; + function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; + } + __name(findAndClearHandle, "findAndClearHandle"); + exports.Immediate = { + setImmediate: /* @__PURE__ */ __name(function(cb) { + var handle = nextHandle++; + activeHandles[handle] = true; + if (!resolved) { + resolved = Promise.resolve(); + } + resolved.then(function() { + return findAndClearHandle(handle) && cb(); + }); + return handle; + }, "setImmediate"), + clearImmediate: /* @__PURE__ */ __name(function(handle) { + findAndClearHandle(handle); + }, "clearImmediate") + }; + exports.TestTools = { + pending: /* @__PURE__ */ __name(function() { + return Object.keys(activeHandles).length; + }, "pending") + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js +var require_immediateProvider = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.immediateProvider = void 0; + var Immediate_1 = require_Immediate(); + var setImmediate2 = Immediate_1.Immediate.setImmediate; + var clearImmediate = Immediate_1.Immediate.clearImmediate; + exports.immediateProvider = { + setImmediate: /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports.immediateProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate2).apply(void 0, __spreadArray([], __read(args))); + }, "setImmediate"), + clearImmediate: /* @__PURE__ */ __name(function(handle) { + var delegate = exports.immediateProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle); + }, "clearImmediate"), + delegate: void 0 + }; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js +var require_AsapAction = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AsapAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var immediateProvider_1 = require_immediateProvider(); + var AsapAction = (function(_super) { + __extends(AsapAction2, _super); + function AsapAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + __name(AsapAction2, "AsapAction"); + AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler._scheduled || (scheduler._scheduled = immediateProvider_1.immediateProvider.setImmediate(scheduler.flush.bind(scheduler, void 0))); + }; + AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + var _a; + if (delay === void 0) { + delay = 0; + } + if (delay != null ? delay > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + var actions = scheduler.actions; + if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) { + immediateProvider_1.immediateProvider.clearImmediate(id); + if (scheduler._scheduled === id) { + scheduler._scheduled = void 0; + } + } + return void 0; + }; + return AsapAction2; + })(AsyncAction_1.AsyncAction); + exports.AsapAction = AsapAction; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js +var require_AsapScheduler = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AsapScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var AsapScheduler = (function(_super) { + __extends(AsapScheduler2, _super); + function AsapScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + __name(AsapScheduler2, "AsapScheduler"); + AsapScheduler2.prototype.flush = function(action) { + this._active = true; + var flushId = this._scheduled; + this._scheduled = void 0; + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports.AsapScheduler = AsapScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/asap.js +var require_asap = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/asap.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.asap = exports.asapScheduler = void 0; + var AsapAction_1 = require_AsapAction(); + var AsapScheduler_1 = require_AsapScheduler(); + exports.asapScheduler = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction); + exports.asap = exports.asapScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js +var require_QueueAction = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QueueAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var QueueAction = (function(_super) { + __extends(QueueAction2, _super); + function QueueAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + __name(QueueAction2, "QueueAction"); + QueueAction2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction2.prototype.execute = function(state, delay) { + return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay); + }; + QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && delay > 0 || delay == null && this.delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.flush(this); + return 0; + }; + return QueueAction2; + })(AsyncAction_1.AsyncAction); + exports.QueueAction = QueueAction; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js +var require_QueueScheduler = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QueueScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var QueueScheduler = (function(_super) { + __extends(QueueScheduler2, _super); + function QueueScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + __name(QueueScheduler2, "QueueScheduler"); + return QueueScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports.QueueScheduler = QueueScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/queue.js +var require_queue = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/queue.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.queue = exports.queueScheduler = void 0; + var QueueAction_1 = require_QueueAction(); + var QueueScheduler_1 = require_QueueScheduler(); + exports.queueScheduler = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction); + exports.queue = exports.queueScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js +var require_AnimationFrameAction = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AnimationFrameAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var animationFrameProvider_1 = require_animationFrameProvider(); + var AnimationFrameAction = (function(_super) { + __extends(AnimationFrameAction2, _super); + function AnimationFrameAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + __name(AnimationFrameAction2, "AnimationFrameAction"); + AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function() { + return scheduler.flush(void 0); + })); + }; + AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + var _a; + if (delay === void 0) { + delay = 0; + } + if (delay != null ? delay > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + var actions = scheduler.actions; + if (id != null && id === scheduler._scheduled && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) { + animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); + scheduler._scheduled = void 0; + } + return void 0; + }; + return AnimationFrameAction2; + })(AsyncAction_1.AsyncAction); + exports.AnimationFrameAction = AnimationFrameAction; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js +var require_AnimationFrameScheduler = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AnimationFrameScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var AnimationFrameScheduler = (function(_super) { + __extends(AnimationFrameScheduler2, _super); + function AnimationFrameScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + __name(AnimationFrameScheduler2, "AnimationFrameScheduler"); + AnimationFrameScheduler2.prototype.flush = function(action) { + this._active = true; + var flushId; + if (action) { + flushId = action.id; + } else { + flushId = this._scheduled; + this._scheduled = void 0; + } + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports.AnimationFrameScheduler = AnimationFrameScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js +var require_animationFrame = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.animationFrame = exports.animationFrameScheduler = void 0; + var AnimationFrameAction_1 = require_AnimationFrameAction(); + var AnimationFrameScheduler_1 = require_AnimationFrameScheduler(); + exports.animationFrameScheduler = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction); + exports.animationFrame = exports.animationFrameScheduler; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js +var require_VirtualTimeScheduler = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js"(exports) { + "use strict"; + var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { + var extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.VirtualAction = exports.VirtualTimeScheduler = void 0; + var AsyncAction_1 = require_AsyncAction(); + var Subscription_1 = require_Subscription(); + var AsyncScheduler_1 = require_AsyncScheduler(); + var VirtualTimeScheduler = (function(_super) { + __extends(VirtualTimeScheduler2, _super); + function VirtualTimeScheduler2(schedulerActionCtor, maxFrames) { + if (schedulerActionCtor === void 0) { + schedulerActionCtor = VirtualAction; + } + if (maxFrames === void 0) { + maxFrames = Infinity; + } + var _this = _super.call(this, schedulerActionCtor, function() { + return _this.frame; + }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + __name(VirtualTimeScheduler2, "VirtualTimeScheduler"); + VirtualTimeScheduler2.prototype.flush = function() { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error; + var action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + VirtualTimeScheduler2.frameTimeFactor = 10; + return VirtualTimeScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports.VirtualTimeScheduler = VirtualTimeScheduler; + var VirtualAction = (function(_super) { + __extends(VirtualAction2, _super); + function VirtualAction2(scheduler, work, index) { + if (index === void 0) { + index = scheduler.index += 1; + } + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; + return _this; + } + __name(VirtualAction2, "VirtualAction"); + VirtualAction2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + if (Number.isFinite(delay)) { + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction2(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + } else { + return Subscription_1.Subscription.EMPTY; + } + }; + VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction2.sortActions); + return 1; + }; + VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + return void 0; + }; + VirtualAction2.prototype._execute = function(state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } + }; + VirtualAction2.sortActions = function(a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } else if (a.index > b.index) { + return 1; + } else { + return -1; + } + } else if (a.delay > b.delay) { + return 1; + } else { + return -1; + } + }; + return VirtualAction2; + })(AsyncAction_1.AsyncAction); + exports.VirtualAction = VirtualAction; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isObservable.js +var require_isObservable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isObservable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isObservable = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + function isObservable6(obj) { + return !!obj && (obj instanceof Observable_1.Observable || isFunction_1.isFunction(obj.lift) && isFunction_1.isFunction(obj.subscribe)); + } + __name(isObservable6, "isObservable"); + exports.isObservable = isObservable6; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/lastValueFrom.js +var require_lastValueFrom = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/lastValueFrom.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.lastValueFrom = void 0; + var EmptyError_1 = require_EmptyError(); + function lastValueFrom4(source, config) { + var hasConfig = typeof config === "object"; + return new Promise(function(resolve, reject) { + var _hasValue = false; + var _value; + source.subscribe({ + next: /* @__PURE__ */ __name(function(value) { + _value = value; + _hasValue = true; + }, "next"), + error: reject, + complete: /* @__PURE__ */ __name(function() { + if (_hasValue) { + resolve(_value); + } else if (hasConfig) { + resolve(config.defaultValue); + } else { + reject(new EmptyError_1.EmptyError()); + } + }, "complete") + }); + }); + } + __name(lastValueFrom4, "lastValueFrom"); + exports.lastValueFrom = lastValueFrom4; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/firstValueFrom.js +var require_firstValueFrom = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/firstValueFrom.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.firstValueFrom = void 0; + var EmptyError_1 = require_EmptyError(); + var Subscriber_1 = require_Subscriber(); + function firstValueFrom(source, config) { + var hasConfig = typeof config === "object"; + return new Promise(function(resolve, reject) { + var subscriber = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function(value) { + resolve(value); + subscriber.unsubscribe(); + }, "next"), + error: reject, + complete: /* @__PURE__ */ __name(function() { + if (hasConfig) { + resolve(config.defaultValue); + } else { + reject(new EmptyError_1.EmptyError()); + } + }, "complete") + }); + source.subscribe(subscriber); + }); + } + __name(firstValueFrom, "firstValueFrom"); + exports.firstValueFrom = firstValueFrom; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js +var require_bindCallbackInternals = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray = exports && exports.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bindCallbackInternals = void 0; + var isScheduler_1 = require_isScheduler(); + var Observable_1 = require_Observable(); + var subscribeOn_1 = require_subscribeOn(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var observeOn_1 = require_observeOn(); + var AsyncSubject_1 = require_AsyncSubject(); + function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler_1.isScheduler(resultSelector)) { + scheduler = resultSelector; + } else { + return function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler).apply(this, args).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + }; + } + } + if (scheduler) { + return function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallbackInternals(isNodeStyle, callbackFunc).apply(this, args).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler)); + }; + } + return function() { + var _this = this; + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var subject = new AsyncSubject_1.AsyncSubject(); + var uninitialized = true; + return new Observable_1.Observable(function(subscriber) { + var subs = subject.subscribe(subscriber); + if (uninitialized) { + uninitialized = false; + var isAsync_1 = false; + var isComplete_1 = false; + callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [ + function() { + var results = []; + for (var _i2 = 0; _i2 < arguments.length; _i2++) { + results[_i2] = arguments[_i2]; + } + if (isNodeStyle) { + var err = results.shift(); + if (err != null) { + subject.error(err); + return; + } + } + subject.next(1 < results.length ? results : results[0]); + isComplete_1 = true; + if (isAsync_1) { + subject.complete(); + } + } + ])); + if (isComplete_1) { + subject.complete(); + } + isAsync_1 = true; + } + return subs; + }); + }; + } + __name(bindCallbackInternals, "bindCallbackInternals"); + exports.bindCallbackInternals = bindCallbackInternals; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js +var require_bindCallback = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bindCallback = void 0; + var bindCallbackInternals_1 = require_bindCallbackInternals(); + function bindCallback(callbackFunc, resultSelector, scheduler) { + return bindCallbackInternals_1.bindCallbackInternals(false, callbackFunc, resultSelector, scheduler); + } + __name(bindCallback, "bindCallback"); + exports.bindCallback = bindCallback; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js +var require_bindNodeCallback = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bindNodeCallback = void 0; + var bindCallbackInternals_1 = require_bindCallbackInternals(); + function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + return bindCallbackInternals_1.bindCallbackInternals(true, callbackFunc, resultSelector, scheduler); + } + __name(bindNodeCallback, "bindNodeCallback"); + exports.bindNodeCallback = bindNodeCallback; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/defer.js +var require_defer = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/defer.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.defer = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + function defer2(observableFactory) { + return new Observable_1.Observable(function(subscriber) { + innerFrom_1.innerFrom(observableFactory()).subscribe(subscriber); + }); + } + __name(defer2, "defer"); + exports.defer = defer2; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/connectable.js +var require_connectable = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/connectable.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.connectable = void 0; + var Subject_1 = require_Subject(); + var Observable_1 = require_Observable(); + var defer_1 = require_defer(); + var DEFAULT_CONFIG = { + connector: /* @__PURE__ */ __name(function() { + return new Subject_1.Subject(); + }, "connector"), + resetOnDisconnect: true + }; + function connectable(source, config) { + if (config === void 0) { + config = DEFAULT_CONFIG; + } + var connection = null; + var connector = config.connector, _a = config.resetOnDisconnect, resetOnDisconnect = _a === void 0 ? true : _a; + var subject = connector(); + var result = new Observable_1.Observable(function(subscriber) { + return subject.subscribe(subscriber); + }); + result.connect = function() { + if (!connection || connection.closed) { + connection = defer_1.defer(function() { + return source; + }).subscribe(subject); + if (resetOnDisconnect) { + connection.add(function() { + return subject = connector(); + }); + } + } + return connection; + }; + return result; + } + __name(connectable, "connectable"); + exports.connectable = connectable; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js +var require_forkJoin = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.forkJoin = void 0; + var Observable_1 = require_Observable(); + var argsArgArrayOrObject_1 = require_argsArgArrayOrObject(); + var innerFrom_1 = require_innerFrom(); + var args_1 = require_args(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var createObject_1 = require_createObject(); + function forkJoin() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys; + var result = new Observable_1.Observable(function(subscriber) { + var length = sources.length; + if (!length) { + subscriber.complete(); + return; + } + var values = new Array(length); + var remainingCompletions = length; + var remainingEmissions = length; + var _loop_1 = /* @__PURE__ */ __name(function(sourceIndex2) { + var hasValue = false; + innerFrom_1.innerFrom(sources[sourceIndex2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (!hasValue) { + hasValue = true; + remainingEmissions--; + } + values[sourceIndex2] = value; + }, function() { + return remainingCompletions--; + }, void 0, function() { + if (!remainingCompletions || !hasValue) { + if (!remainingEmissions) { + subscriber.next(keys ? createObject_1.createObject(keys, values) : values); + } + subscriber.complete(); + } + })); + }, "_loop_1"); + for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) { + _loop_1(sourceIndex); + } + }); + return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result; + } + __name(forkJoin, "forkJoin"); + exports.forkJoin = forkJoin; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js +var require_fromEvent = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js"(exports) { + "use strict"; + var __read = exports && exports.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fromEvent = void 0; + var innerFrom_1 = require_innerFrom(); + var Observable_1 = require_Observable(); + var mergeMap_1 = require_mergeMap(); + var isArrayLike_1 = require_isArrayLike(); + var isFunction_1 = require_isFunction(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var nodeEventEmitterMethods = ["addListener", "removeListener"]; + var eventTargetMethods = ["addEventListener", "removeEventListener"]; + var jqueryMethods = ["on", "off"]; + function fromEvent(target, eventName, options, resultSelector) { + if (isFunction_1.isFunction(options)) { + resultSelector = options; + options = void 0; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + } + var _a = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { + return function(handler) { + return target[methodName](eventName, handler, options); + }; + }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a[0], remove = _a[1]; + if (!add) { + if (isArrayLike_1.isArrayLike(target)) { + return mergeMap_1.mergeMap(function(subTarget) { + return fromEvent(subTarget, eventName, options); + })(innerFrom_1.innerFrom(target)); + } + } + if (!add) { + throw new TypeError("Invalid event target"); + } + return new Observable_1.Observable(function(subscriber) { + var handler = /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return subscriber.next(1 < args.length ? args : args[0]); + }, "handler"); + add(handler); + return function() { + return remove(handler); + }; + }); + } + __name(fromEvent, "fromEvent"); + exports.fromEvent = fromEvent; + function toCommonHandlerRegistry(target, eventName) { + return function(methodName) { + return function(handler) { + return target[methodName](eventName, handler); + }; + }; + } + __name(toCommonHandlerRegistry, "toCommonHandlerRegistry"); + function isNodeStyleEventEmitter(target) { + return isFunction_1.isFunction(target.addListener) && isFunction_1.isFunction(target.removeListener); + } + __name(isNodeStyleEventEmitter, "isNodeStyleEventEmitter"); + function isJQueryStyleEventEmitter(target) { + return isFunction_1.isFunction(target.on) && isFunction_1.isFunction(target.off); + } + __name(isJQueryStyleEventEmitter, "isJQueryStyleEventEmitter"); + function isEventTarget(target) { + return isFunction_1.isFunction(target.addEventListener) && isFunction_1.isFunction(target.removeEventListener); + } + __name(isEventTarget, "isEventTarget"); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js +var require_fromEventPattern = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fromEventPattern = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + } + return new Observable_1.Observable(function(subscriber) { + var handler = /* @__PURE__ */ __name(function() { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }, "handler"); + var retValue = addHandler(handler); + return isFunction_1.isFunction(removeHandler) ? function() { + return removeHandler(handler, retValue); + } : void 0; + }); + } + __name(fromEventPattern, "fromEventPattern"); + exports.fromEventPattern = fromEventPattern; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/generate.js +var require_generate = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/generate.js"(exports) { + "use strict"; + var __generator = exports && exports.__generator || function(thisArg, body) { + var _ = { label: 0, sent: /* @__PURE__ */ __name(function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, "sent"), trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + __name(verb, "verb"); + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + __name(step, "step"); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.generate = void 0; + var identity_1 = require_identity(); + var isScheduler_1 = require_isScheduler(); + var defer_1 = require_defer(); + var scheduleIterable_1 = require_scheduleIterable(); + function generate(initialStateOrOptions, condition, iterate20, resultSelectorOrScheduler, scheduler) { + var _a, _b; + var resultSelector; + var initialState; + if (arguments.length === 1) { + _a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate20 = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity_1.identity : _b, scheduler = _a.scheduler; + } else { + initialState = initialStateOrOptions; + if (!resultSelectorOrScheduler || isScheduler_1.isScheduler(resultSelectorOrScheduler)) { + resultSelector = identity_1.identity; + scheduler = resultSelectorOrScheduler; + } else { + resultSelector = resultSelectorOrScheduler; + } + } + function gen() { + var state; + return __generator(this, function(_a2) { + switch (_a2.label) { + case 0: + state = initialState; + _a2.label = 1; + case 1: + if (!(!condition || condition(state))) return [3, 4]; + return [4, resultSelector(state)]; + case 2: + _a2.sent(); + _a2.label = 3; + case 3: + state = iterate20(state); + return [3, 1]; + case 4: + return [2]; + } + }); + } + __name(gen, "gen"); + return defer_1.defer(scheduler ? function() { + return scheduleIterable_1.scheduleIterable(gen(), scheduler); + } : gen); + } + __name(generate, "generate"); + exports.generate = generate; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/iif.js +var require_iif = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/iif.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.iif = void 0; + var defer_1 = require_defer(); + function iif(condition, trueResult, falseResult) { + return defer_1.defer(function() { + return condition() ? trueResult : falseResult; + }); + } + __name(iif, "iif"); + exports.iif = iif; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/merge.js +var require_merge = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/merge.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.merge = void 0; + var mergeAll_1 = require_mergeAll(); + var innerFrom_1 = require_innerFrom(); + var empty_1 = require_empty(); + var args_1 = require_args(); + var from_1 = require_from(); + function merge() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + var concurrent = args_1.popNumber(args, Infinity); + var sources = args; + return !sources.length ? empty_1.EMPTY : sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : mergeAll_1.mergeAll(concurrent)(from_1.from(sources, scheduler)); + } + __name(merge, "merge"); + exports.merge = merge; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/never.js +var require_never = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/never.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.never = exports.NEVER = void 0; + var Observable_1 = require_Observable(); + var noop_1 = require_noop(); + exports.NEVER = new Observable_1.Observable(noop_1.noop); + function never() { + return exports.NEVER; + } + __name(never, "never"); + exports.never = never; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/pairs.js +var require_pairs = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/pairs.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.pairs = void 0; + var from_1 = require_from(); + function pairs(obj, scheduler) { + return from_1.from(Object.entries(obj), scheduler); + } + __name(pairs, "pairs"); + exports.pairs = pairs; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/partition.js +var require_partition = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/partition.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.partition = void 0; + var not_1 = require_not(); + var filter_1 = require_filter(); + var innerFrom_1 = require_innerFrom(); + function partition(source, predicate, thisArg) { + return [filter_1.filter(predicate, thisArg)(innerFrom_1.innerFrom(source)), filter_1.filter(not_1.not(predicate, thisArg))(innerFrom_1.innerFrom(source))]; + } + __name(partition, "partition"); + exports.partition = partition; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/range.js +var require_range2 = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/range.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.range = void 0; + var Observable_1 = require_Observable(); + var empty_1 = require_empty(); + function range(start, count, scheduler) { + if (count == null) { + count = start; + start = 0; + } + if (count <= 0) { + return empty_1.EMPTY; + } + var end = count + start; + return new Observable_1.Observable(scheduler ? function(subscriber) { + var n = start; + return scheduler.schedule(function() { + if (n < end) { + subscriber.next(n++); + this.schedule(); + } else { + subscriber.complete(); + } + }); + } : function(subscriber) { + var n = start; + while (n < end && !subscriber.closed) { + subscriber.next(n++); + } + subscriber.complete(); + }); + } + __name(range, "range"); + exports.range = range; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/using.js +var require_using = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/using.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.using = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var empty_1 = require_empty(); + function using(resourceFactory, observableFactory) { + return new Observable_1.Observable(function(subscriber) { + var resource = resourceFactory(); + var result = observableFactory(resource); + var source = result ? innerFrom_1.innerFrom(result) : empty_1.EMPTY; + source.subscribe(subscriber); + return function() { + if (resource) { + resource.unsubscribe(); + } + }; + }); + } + __name(using, "using"); + exports.using = using; + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/types.js +var require_types = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/types.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + } +}); + +// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/index.js +var require_cjs = __commonJS({ + "../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/index.js"(exports) { + "use strict"; + var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = exports && exports.__exportStar || function(m, exports2) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.interval = exports.iif = exports.generate = exports.fromEventPattern = exports.fromEvent = exports.from = exports.forkJoin = exports.empty = exports.defer = exports.connectable = exports.concat = exports.combineLatest = exports.bindNodeCallback = exports.bindCallback = exports.UnsubscriptionError = exports.TimeoutError = exports.SequenceError = exports.ObjectUnsubscribedError = exports.NotFoundError = exports.EmptyError = exports.ArgumentOutOfRangeError = exports.firstValueFrom = exports.lastValueFrom = exports.isObservable = exports.identity = exports.noop = exports.pipe = exports.NotificationKind = exports.Notification = exports.Subscriber = exports.Subscription = exports.Scheduler = exports.VirtualAction = exports.VirtualTimeScheduler = exports.animationFrameScheduler = exports.animationFrame = exports.queueScheduler = exports.queue = exports.asyncScheduler = exports.async = exports.asapScheduler = exports.asap = exports.AsyncSubject = exports.ReplaySubject = exports.BehaviorSubject = exports.Subject = exports.animationFrames = exports.observable = exports.ConnectableObservable = exports.Observable = void 0; + exports.filter = exports.expand = exports.exhaustMap = exports.exhaustAll = exports.exhaust = exports.every = exports.endWith = exports.elementAt = exports.distinctUntilKeyChanged = exports.distinctUntilChanged = exports.distinct = exports.dematerialize = exports.delayWhen = exports.delay = exports.defaultIfEmpty = exports.debounceTime = exports.debounce = exports.count = exports.connect = exports.concatWith = exports.concatMapTo = exports.concatMap = exports.concatAll = exports.combineLatestWith = exports.combineLatestAll = exports.combineAll = exports.catchError = exports.bufferWhen = exports.bufferToggle = exports.bufferTime = exports.bufferCount = exports.buffer = exports.auditTime = exports.audit = exports.config = exports.NEVER = exports.EMPTY = exports.scheduled = exports.zip = exports.using = exports.timer = exports.throwError = exports.range = exports.race = exports.partition = exports.pairs = exports.onErrorResumeNext = exports.of = exports.never = exports.merge = void 0; + exports.switchMap = exports.switchAll = exports.subscribeOn = exports.startWith = exports.skipWhile = exports.skipUntil = exports.skipLast = exports.skip = exports.single = exports.shareReplay = exports.share = exports.sequenceEqual = exports.scan = exports.sampleTime = exports.sample = exports.refCount = exports.retryWhen = exports.retry = exports.repeatWhen = exports.repeat = exports.reduce = exports.raceWith = exports.publishReplay = exports.publishLast = exports.publishBehavior = exports.publish = exports.pluck = exports.pairwise = exports.onErrorResumeNextWith = exports.observeOn = exports.multicast = exports.min = exports.mergeWith = exports.mergeScan = exports.mergeMapTo = exports.mergeMap = exports.flatMap = exports.mergeAll = exports.max = exports.materialize = exports.mapTo = exports.map = exports.last = exports.isEmpty = exports.ignoreElements = exports.groupBy = exports.first = exports.findIndex = exports.find = exports.finalize = void 0; + exports.zipWith = exports.zipAll = exports.withLatestFrom = exports.windowWhen = exports.windowToggle = exports.windowTime = exports.windowCount = exports.window = exports.toArray = exports.timestamp = exports.timeoutWith = exports.timeout = exports.timeInterval = exports.throwIfEmpty = exports.throttleTime = exports.throttle = exports.tap = exports.takeWhile = exports.takeUntil = exports.takeLast = exports.take = exports.switchScan = exports.switchMapTo = void 0; + var Observable_1 = require_Observable(); + Object.defineProperty(exports, "Observable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Observable_1.Observable; + }, "get") }); + var ConnectableObservable_1 = require_ConnectableObservable(); + Object.defineProperty(exports, "ConnectableObservable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ConnectableObservable_1.ConnectableObservable; + }, "get") }); + var observable_1 = require_observable(); + Object.defineProperty(exports, "observable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return observable_1.observable; + }, "get") }); + var animationFrames_1 = require_animationFrames(); + Object.defineProperty(exports, "animationFrames", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return animationFrames_1.animationFrames; + }, "get") }); + var Subject_1 = require_Subject(); + Object.defineProperty(exports, "Subject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Subject_1.Subject; + }, "get") }); + var BehaviorSubject_1 = require_BehaviorSubject(); + Object.defineProperty(exports, "BehaviorSubject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return BehaviorSubject_1.BehaviorSubject; + }, "get") }); + var ReplaySubject_1 = require_ReplaySubject(); + Object.defineProperty(exports, "ReplaySubject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ReplaySubject_1.ReplaySubject; + }, "get") }); + var AsyncSubject_1 = require_AsyncSubject(); + Object.defineProperty(exports, "AsyncSubject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return AsyncSubject_1.AsyncSubject; + }, "get") }); + var asap_1 = require_asap(); + Object.defineProperty(exports, "asap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return asap_1.asap; + }, "get") }); + Object.defineProperty(exports, "asapScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return asap_1.asapScheduler; + }, "get") }); + var async_1 = require_async(); + Object.defineProperty(exports, "async", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return async_1.async; + }, "get") }); + Object.defineProperty(exports, "asyncScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return async_1.asyncScheduler; + }, "get") }); + var queue_1 = require_queue(); + Object.defineProperty(exports, "queue", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return queue_1.queue; + }, "get") }); + Object.defineProperty(exports, "queueScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return queue_1.queueScheduler; + }, "get") }); + var animationFrame_1 = require_animationFrame(); + Object.defineProperty(exports, "animationFrame", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return animationFrame_1.animationFrame; + }, "get") }); + Object.defineProperty(exports, "animationFrameScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return animationFrame_1.animationFrameScheduler; + }, "get") }); + var VirtualTimeScheduler_1 = require_VirtualTimeScheduler(); + Object.defineProperty(exports, "VirtualTimeScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return VirtualTimeScheduler_1.VirtualTimeScheduler; + }, "get") }); + Object.defineProperty(exports, "VirtualAction", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return VirtualTimeScheduler_1.VirtualAction; + }, "get") }); + var Scheduler_1 = require_Scheduler(); + Object.defineProperty(exports, "Scheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Scheduler_1.Scheduler; + }, "get") }); + var Subscription_1 = require_Subscription(); + Object.defineProperty(exports, "Subscription", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Subscription_1.Subscription; + }, "get") }); + var Subscriber_1 = require_Subscriber(); + Object.defineProperty(exports, "Subscriber", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Subscriber_1.Subscriber; + }, "get") }); + var Notification_1 = require_Notification(); + Object.defineProperty(exports, "Notification", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Notification_1.Notification; + }, "get") }); + Object.defineProperty(exports, "NotificationKind", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Notification_1.NotificationKind; + }, "get") }); + var pipe_1 = require_pipe(); + Object.defineProperty(exports, "pipe", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pipe_1.pipe; + }, "get") }); + var noop_1 = require_noop(); + Object.defineProperty(exports, "noop", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return noop_1.noop; + }, "get") }); + var identity_1 = require_identity(); + Object.defineProperty(exports, "identity", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return identity_1.identity; + }, "get") }); + var isObservable_1 = require_isObservable(); + Object.defineProperty(exports, "isObservable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return isObservable_1.isObservable; + }, "get") }); + var lastValueFrom_1 = require_lastValueFrom(); + Object.defineProperty(exports, "lastValueFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return lastValueFrom_1.lastValueFrom; + }, "get") }); + var firstValueFrom_1 = require_firstValueFrom(); + Object.defineProperty(exports, "firstValueFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return firstValueFrom_1.firstValueFrom; + }, "get") }); + var ArgumentOutOfRangeError_1 = require_ArgumentOutOfRangeError(); + Object.defineProperty(exports, "ArgumentOutOfRangeError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; + }, "get") }); + var EmptyError_1 = require_EmptyError(); + Object.defineProperty(exports, "EmptyError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return EmptyError_1.EmptyError; + }, "get") }); + var NotFoundError_1 = require_NotFoundError(); + Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return NotFoundError_1.NotFoundError; + }, "get") }); + var ObjectUnsubscribedError_1 = require_ObjectUnsubscribedError(); + Object.defineProperty(exports, "ObjectUnsubscribedError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ObjectUnsubscribedError_1.ObjectUnsubscribedError; + }, "get") }); + var SequenceError_1 = require_SequenceError(); + Object.defineProperty(exports, "SequenceError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return SequenceError_1.SequenceError; + }, "get") }); + var timeout_1 = require_timeout(); + Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeout_1.TimeoutError; + }, "get") }); + var UnsubscriptionError_1 = require_UnsubscriptionError(); + Object.defineProperty(exports, "UnsubscriptionError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return UnsubscriptionError_1.UnsubscriptionError; + }, "get") }); + var bindCallback_1 = require_bindCallback(); + Object.defineProperty(exports, "bindCallback", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bindCallback_1.bindCallback; + }, "get") }); + var bindNodeCallback_1 = require_bindNodeCallback(); + Object.defineProperty(exports, "bindNodeCallback", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bindNodeCallback_1.bindNodeCallback; + }, "get") }); + var combineLatest_1 = require_combineLatest(); + Object.defineProperty(exports, "combineLatest", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatest_1.combineLatest; + }, "get") }); + var concat_1 = require_concat(); + Object.defineProperty(exports, "concat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concat_1.concat; + }, "get") }); + var connectable_1 = require_connectable(); + Object.defineProperty(exports, "connectable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return connectable_1.connectable; + }, "get") }); + var defer_1 = require_defer(); + Object.defineProperty(exports, "defer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return defer_1.defer; + }, "get") }); + var empty_1 = require_empty(); + Object.defineProperty(exports, "empty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return empty_1.empty; + }, "get") }); + var forkJoin_1 = require_forkJoin(); + Object.defineProperty(exports, "forkJoin", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return forkJoin_1.forkJoin; + }, "get") }); + var from_1 = require_from(); + Object.defineProperty(exports, "from", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return from_1.from; + }, "get") }); + var fromEvent_1 = require_fromEvent(); + Object.defineProperty(exports, "fromEvent", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return fromEvent_1.fromEvent; + }, "get") }); + var fromEventPattern_1 = require_fromEventPattern(); + Object.defineProperty(exports, "fromEventPattern", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return fromEventPattern_1.fromEventPattern; + }, "get") }); + var generate_1 = require_generate(); + Object.defineProperty(exports, "generate", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return generate_1.generate; + }, "get") }); + var iif_1 = require_iif(); + Object.defineProperty(exports, "iif", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return iif_1.iif; + }, "get") }); + var interval_1 = require_interval(); + Object.defineProperty(exports, "interval", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return interval_1.interval; + }, "get") }); + var merge_1 = require_merge(); + Object.defineProperty(exports, "merge", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return merge_1.merge; + }, "get") }); + var never_1 = require_never(); + Object.defineProperty(exports, "never", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return never_1.never; + }, "get") }); + var of_1 = require_of(); + Object.defineProperty(exports, "of", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return of_1.of; + }, "get") }); + var onErrorResumeNext_1 = require_onErrorResumeNext(); + Object.defineProperty(exports, "onErrorResumeNext", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return onErrorResumeNext_1.onErrorResumeNext; + }, "get") }); + var pairs_1 = require_pairs(); + Object.defineProperty(exports, "pairs", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pairs_1.pairs; + }, "get") }); + var partition_1 = require_partition(); + Object.defineProperty(exports, "partition", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return partition_1.partition; + }, "get") }); + var race_1 = require_race(); + Object.defineProperty(exports, "race", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return race_1.race; + }, "get") }); + var range_1 = require_range2(); + Object.defineProperty(exports, "range", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return range_1.range; + }, "get") }); + var throwError_1 = require_throwError(); + Object.defineProperty(exports, "throwError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throwError_1.throwError; + }, "get") }); + var timer_1 = require_timer(); + Object.defineProperty(exports, "timer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timer_1.timer; + }, "get") }); + var using_1 = require_using(); + Object.defineProperty(exports, "using", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return using_1.using; + }, "get") }); + var zip_1 = require_zip(); + Object.defineProperty(exports, "zip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zip_1.zip; + }, "get") }); + var scheduled_1 = require_scheduled(); + Object.defineProperty(exports, "scheduled", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return scheduled_1.scheduled; + }, "get") }); + var empty_2 = require_empty(); + Object.defineProperty(exports, "EMPTY", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return empty_2.EMPTY; + }, "get") }); + var never_2 = require_never(); + Object.defineProperty(exports, "NEVER", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return never_2.NEVER; + }, "get") }); + __exportStar(require_types(), exports); + var config_1 = require_config(); + Object.defineProperty(exports, "config", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return config_1.config; + }, "get") }); + var audit_1 = require_audit(); + Object.defineProperty(exports, "audit", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return audit_1.audit; + }, "get") }); + var auditTime_1 = require_auditTime(); + Object.defineProperty(exports, "auditTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return auditTime_1.auditTime; + }, "get") }); + var buffer_1 = require_buffer(); + Object.defineProperty(exports, "buffer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return buffer_1.buffer; + }, "get") }); + var bufferCount_1 = require_bufferCount(); + Object.defineProperty(exports, "bufferCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferCount_1.bufferCount; + }, "get") }); + var bufferTime_1 = require_bufferTime(); + Object.defineProperty(exports, "bufferTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferTime_1.bufferTime; + }, "get") }); + var bufferToggle_1 = require_bufferToggle(); + Object.defineProperty(exports, "bufferToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferToggle_1.bufferToggle; + }, "get") }); + var bufferWhen_1 = require_bufferWhen(); + Object.defineProperty(exports, "bufferWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferWhen_1.bufferWhen; + }, "get") }); + var catchError_1 = require_catchError(); + Object.defineProperty(exports, "catchError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return catchError_1.catchError; + }, "get") }); + var combineAll_1 = require_combineAll(); + Object.defineProperty(exports, "combineAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineAll_1.combineAll; + }, "get") }); + var combineLatestAll_1 = require_combineLatestAll(); + Object.defineProperty(exports, "combineLatestAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestAll_1.combineLatestAll; + }, "get") }); + var combineLatestWith_1 = require_combineLatestWith(); + Object.defineProperty(exports, "combineLatestWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestWith_1.combineLatestWith; + }, "get") }); + var concatAll_1 = require_concatAll(); + Object.defineProperty(exports, "concatAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatAll_1.concatAll; + }, "get") }); + var concatMap_1 = require_concatMap(); + Object.defineProperty(exports, "concatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMap_1.concatMap; + }, "get") }); + var concatMapTo_1 = require_concatMapTo(); + Object.defineProperty(exports, "concatMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMapTo_1.concatMapTo; + }, "get") }); + var concatWith_1 = require_concatWith(); + Object.defineProperty(exports, "concatWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatWith_1.concatWith; + }, "get") }); + var connect_1 = require_connect(); + Object.defineProperty(exports, "connect", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return connect_1.connect; + }, "get") }); + var count_1 = require_count(); + Object.defineProperty(exports, "count", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return count_1.count; + }, "get") }); + var debounce_1 = require_debounce(); + Object.defineProperty(exports, "debounce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounce_1.debounce; + }, "get") }); + var debounceTime_1 = require_debounceTime(); + Object.defineProperty(exports, "debounceTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounceTime_1.debounceTime; + }, "get") }); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + Object.defineProperty(exports, "defaultIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return defaultIfEmpty_1.defaultIfEmpty; + }, "get") }); + var delay_1 = require_delay(); + Object.defineProperty(exports, "delay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delay_1.delay; + }, "get") }); + var delayWhen_1 = require_delayWhen(); + Object.defineProperty(exports, "delayWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delayWhen_1.delayWhen; + }, "get") }); + var dematerialize_1 = require_dematerialize(); + Object.defineProperty(exports, "dematerialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return dematerialize_1.dematerialize; + }, "get") }); + var distinct_1 = require_distinct(); + Object.defineProperty(exports, "distinct", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinct_1.distinct; + }, "get") }); + var distinctUntilChanged_1 = require_distinctUntilChanged(); + Object.defineProperty(exports, "distinctUntilChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilChanged_1.distinctUntilChanged; + }, "get") }); + var distinctUntilKeyChanged_1 = require_distinctUntilKeyChanged(); + Object.defineProperty(exports, "distinctUntilKeyChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilKeyChanged_1.distinctUntilKeyChanged; + }, "get") }); + var elementAt_1 = require_elementAt(); + Object.defineProperty(exports, "elementAt", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return elementAt_1.elementAt; + }, "get") }); + var endWith_1 = require_endWith(); + Object.defineProperty(exports, "endWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return endWith_1.endWith; + }, "get") }); + var every_1 = require_every(); + Object.defineProperty(exports, "every", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return every_1.every; + }, "get") }); + var exhaust_1 = require_exhaust(); + Object.defineProperty(exports, "exhaust", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaust_1.exhaust; + }, "get") }); + var exhaustAll_1 = require_exhaustAll(); + Object.defineProperty(exports, "exhaustAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustAll_1.exhaustAll; + }, "get") }); + var exhaustMap_1 = require_exhaustMap(); + Object.defineProperty(exports, "exhaustMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustMap_1.exhaustMap; + }, "get") }); + var expand_1 = require_expand(); + Object.defineProperty(exports, "expand", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return expand_1.expand; + }, "get") }); + var filter_1 = require_filter(); + Object.defineProperty(exports, "filter", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return filter_1.filter; + }, "get") }); + var finalize_1 = require_finalize(); + Object.defineProperty(exports, "finalize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return finalize_1.finalize; + }, "get") }); + var find_1 = require_find(); + Object.defineProperty(exports, "find", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return find_1.find; + }, "get") }); + var findIndex_1 = require_findIndex(); + Object.defineProperty(exports, "findIndex", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return findIndex_1.findIndex; + }, "get") }); + var first_1 = require_first(); + Object.defineProperty(exports, "first", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return first_1.first; + }, "get") }); + var groupBy_1 = require_groupBy(); + Object.defineProperty(exports, "groupBy", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return groupBy_1.groupBy; + }, "get") }); + var ignoreElements_1 = require_ignoreElements(); + Object.defineProperty(exports, "ignoreElements", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ignoreElements_1.ignoreElements; + }, "get") }); + var isEmpty_1 = require_isEmpty(); + Object.defineProperty(exports, "isEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return isEmpty_1.isEmpty; + }, "get") }); + var last_1 = require_last(); + Object.defineProperty(exports, "last", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return last_1.last; + }, "get") }); + var map_1 = require_map(); + Object.defineProperty(exports, "map", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return map_1.map; + }, "get") }); + var mapTo_1 = require_mapTo(); + Object.defineProperty(exports, "mapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mapTo_1.mapTo; + }, "get") }); + var materialize_1 = require_materialize(); + Object.defineProperty(exports, "materialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return materialize_1.materialize; + }, "get") }); + var max_1 = require_max(); + Object.defineProperty(exports, "max", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return max_1.max; + }, "get") }); + var mergeAll_1 = require_mergeAll(); + Object.defineProperty(exports, "mergeAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeAll_1.mergeAll; + }, "get") }); + var flatMap_1 = require_flatMap(); + Object.defineProperty(exports, "flatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return flatMap_1.flatMap; + }, "get") }); + var mergeMap_1 = require_mergeMap(); + Object.defineProperty(exports, "mergeMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMap_1.mergeMap; + }, "get") }); + var mergeMapTo_1 = require_mergeMapTo(); + Object.defineProperty(exports, "mergeMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMapTo_1.mergeMapTo; + }, "get") }); + var mergeScan_1 = require_mergeScan(); + Object.defineProperty(exports, "mergeScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeScan_1.mergeScan; + }, "get") }); + var mergeWith_1 = require_mergeWith(); + Object.defineProperty(exports, "mergeWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeWith_1.mergeWith; + }, "get") }); + var min_1 = require_min(); + Object.defineProperty(exports, "min", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return min_1.min; + }, "get") }); + var multicast_1 = require_multicast(); + Object.defineProperty(exports, "multicast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return multicast_1.multicast; + }, "get") }); + var observeOn_1 = require_observeOn(); + Object.defineProperty(exports, "observeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return observeOn_1.observeOn; + }, "get") }); + var onErrorResumeNextWith_1 = require_onErrorResumeNextWith(); + Object.defineProperty(exports, "onErrorResumeNextWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return onErrorResumeNextWith_1.onErrorResumeNextWith; + }, "get") }); + var pairwise_1 = require_pairwise(); + Object.defineProperty(exports, "pairwise", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pairwise_1.pairwise; + }, "get") }); + var pluck_1 = require_pluck(); + Object.defineProperty(exports, "pluck", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pluck_1.pluck; + }, "get") }); + var publish_1 = require_publish(); + Object.defineProperty(exports, "publish", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publish_1.publish; + }, "get") }); + var publishBehavior_1 = require_publishBehavior(); + Object.defineProperty(exports, "publishBehavior", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishBehavior_1.publishBehavior; + }, "get") }); + var publishLast_1 = require_publishLast(); + Object.defineProperty(exports, "publishLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishLast_1.publishLast; + }, "get") }); + var publishReplay_1 = require_publishReplay(); + Object.defineProperty(exports, "publishReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishReplay_1.publishReplay; + }, "get") }); + var raceWith_1 = require_raceWith(); + Object.defineProperty(exports, "raceWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return raceWith_1.raceWith; + }, "get") }); + var reduce_1 = require_reduce(); + Object.defineProperty(exports, "reduce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return reduce_1.reduce; + }, "get") }); + var repeat_1 = require_repeat(); + Object.defineProperty(exports, "repeat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeat_1.repeat; + }, "get") }); + var repeatWhen_1 = require_repeatWhen(); + Object.defineProperty(exports, "repeatWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeatWhen_1.repeatWhen; + }, "get") }); + var retry_1 = require_retry(); + Object.defineProperty(exports, "retry", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retry_1.retry; + }, "get") }); + var retryWhen_1 = require_retryWhen(); + Object.defineProperty(exports, "retryWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retryWhen_1.retryWhen; + }, "get") }); + var refCount_1 = require_refCount(); + Object.defineProperty(exports, "refCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return refCount_1.refCount; + }, "get") }); + var sample_1 = require_sample(); + Object.defineProperty(exports, "sample", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sample_1.sample; + }, "get") }); + var sampleTime_1 = require_sampleTime(); + Object.defineProperty(exports, "sampleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sampleTime_1.sampleTime; + }, "get") }); + var scan_1 = require_scan(); + Object.defineProperty(exports, "scan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return scan_1.scan; + }, "get") }); + var sequenceEqual_1 = require_sequenceEqual(); + Object.defineProperty(exports, "sequenceEqual", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sequenceEqual_1.sequenceEqual; + }, "get") }); + var share_1 = require_share(); + Object.defineProperty(exports, "share", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return share_1.share; + }, "get") }); + var shareReplay_1 = require_shareReplay(); + Object.defineProperty(exports, "shareReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return shareReplay_1.shareReplay; + }, "get") }); + var single_1 = require_single(); + Object.defineProperty(exports, "single", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return single_1.single; + }, "get") }); + var skip_1 = require_skip(); + Object.defineProperty(exports, "skip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skip_1.skip; + }, "get") }); + var skipLast_1 = require_skipLast(); + Object.defineProperty(exports, "skipLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipLast_1.skipLast; + }, "get") }); + var skipUntil_1 = require_skipUntil(); + Object.defineProperty(exports, "skipUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipUntil_1.skipUntil; + }, "get") }); + var skipWhile_1 = require_skipWhile(); + Object.defineProperty(exports, "skipWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipWhile_1.skipWhile; + }, "get") }); + var startWith_1 = require_startWith(); + Object.defineProperty(exports, "startWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return startWith_1.startWith; + }, "get") }); + var subscribeOn_1 = require_subscribeOn(); + Object.defineProperty(exports, "subscribeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return subscribeOn_1.subscribeOn; + }, "get") }); + var switchAll_1 = require_switchAll(); + Object.defineProperty(exports, "switchAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchAll_1.switchAll; + }, "get") }); + var switchMap_1 = require_switchMap(); + Object.defineProperty(exports, "switchMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMap_1.switchMap; + }, "get") }); + var switchMapTo_1 = require_switchMapTo(); + Object.defineProperty(exports, "switchMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMapTo_1.switchMapTo; + }, "get") }); + var switchScan_1 = require_switchScan(); + Object.defineProperty(exports, "switchScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchScan_1.switchScan; + }, "get") }); + var take_1 = require_take(); + Object.defineProperty(exports, "take", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return take_1.take; + }, "get") }); + var takeLast_1 = require_takeLast(); + Object.defineProperty(exports, "takeLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeLast_1.takeLast; + }, "get") }); + var takeUntil_1 = require_takeUntil(); + Object.defineProperty(exports, "takeUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeUntil_1.takeUntil; + }, "get") }); + var takeWhile_1 = require_takeWhile(); + Object.defineProperty(exports, "takeWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeWhile_1.takeWhile; + }, "get") }); + var tap_1 = require_tap(); + Object.defineProperty(exports, "tap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return tap_1.tap; + }, "get") }); + var throttle_1 = require_throttle(); + Object.defineProperty(exports, "throttle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttle_1.throttle; + }, "get") }); + var throttleTime_1 = require_throttleTime(); + Object.defineProperty(exports, "throttleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttleTime_1.throttleTime; + }, "get") }); + var throwIfEmpty_1 = require_throwIfEmpty(); + Object.defineProperty(exports, "throwIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throwIfEmpty_1.throwIfEmpty; + }, "get") }); + var timeInterval_1 = require_timeInterval(); + Object.defineProperty(exports, "timeInterval", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeInterval_1.timeInterval; + }, "get") }); + var timeout_2 = require_timeout(); + Object.defineProperty(exports, "timeout", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeout_2.timeout; + }, "get") }); + var timeoutWith_1 = require_timeoutWith(); + Object.defineProperty(exports, "timeoutWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeoutWith_1.timeoutWith; + }, "get") }); + var timestamp_1 = require_timestamp(); + Object.defineProperty(exports, "timestamp", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timestamp_1.timestamp; + }, "get") }); + var toArray_1 = require_toArray(); + Object.defineProperty(exports, "toArray", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return toArray_1.toArray; + }, "get") }); + var window_1 = require_window(); + Object.defineProperty(exports, "window", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return window_1.window; + }, "get") }); + var windowCount_1 = require_windowCount(); + Object.defineProperty(exports, "windowCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowCount_1.windowCount; + }, "get") }); + var windowTime_1 = require_windowTime(); + Object.defineProperty(exports, "windowTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowTime_1.windowTime; + }, "get") }); + var windowToggle_1 = require_windowToggle(); + Object.defineProperty(exports, "windowToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowToggle_1.windowToggle; + }, "get") }); + var windowWhen_1 = require_windowWhen(); + Object.defineProperty(exports, "windowWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowWhen_1.windowWhen; + }, "get") }); + var withLatestFrom_1 = require_withLatestFrom(); + Object.defineProperty(exports, "withLatestFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return withLatestFrom_1.withLatestFrom; + }, "get") }); + var zipAll_1 = require_zipAll(); + Object.defineProperty(exports, "zipAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipAll_1.zipAll; + }, "get") }); + var zipWith_1 = require_zipWith(); + Object.defineProperty(exports, "zipWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipWith_1.zipWith; + }, "get") }); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/modules-container.js +var import_rxjs, ModulesContainer; +var init_modules_container = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/modules-container.js"() { + import_rxjs = __toESM(require_cjs(), 1); + init_dist(); + ModulesContainer = class extends Map { + static { + __name(this, "ModulesContainer"); + } + _applicationId = uid(21); + _rpcTargetRegistry$ = new import_rxjs.ReplaySubject(); + /** + * Unique identifier of the application instance. + */ + get applicationId() { + return this._applicationId; + } + /** + * Retrieves a module by its identifier. + * @param id The identifier of the module to retrieve. + * @returns The module instance if found, otherwise undefined. + */ + getById(id) { + return Array.from(this.values()).find((moduleRef) => moduleRef.id === id); + } + /** + * Returns the RPC target registry as an observable. + * This registry contains all RPC targets registered in the application. + * @returns An observable that emits the RPC target registry. + */ + getRpcTargetRegistry() { + return this._rpcTargetRegistry$.asObservable(); + } + /** + * Adds an RPC target to the registry. + * @param target The RPC target to add. + */ + addRpcTarget(target) { + this._rpcTargetRegistry$.next(target); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discoverable-meta-host-collection.js +var DiscoverableMetaHostCollection; +var init_discoverable_meta_host_collection = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discoverable-meta-host-collection.js"() { + DiscoverableMetaHostCollection = class _DiscoverableMetaHostCollection { + static { + __name(this, "DiscoverableMetaHostCollection"); + } + /** + * A map of class references to metadata keys. + */ + static metaHostLinks = /* @__PURE__ */ new Map(); + /** + * A map of metadata keys to instance wrappers (providers) with the corresponding metadata key. + * The map is weakly referenced by the modules container (unique per application). + */ + static providersByMetaKey = /* @__PURE__ */ new WeakMap(); + /** + * A map of metadata keys to instance wrappers (controllers) with the corresponding metadata key. + * The map is weakly referenced by the modules container (unique per application). + */ + static controllersByMetaKey = /* @__PURE__ */ new WeakMap(); + /** + * Adds a link between a class reference and a metadata key. + * @param target The class reference. + * @param metadataKey The metadata key. + */ + static addClassMetaHostLink(target, metadataKey) { + this.metaHostLinks.set(target, metadataKey); + } + /** + * Inspects a provider instance wrapper and adds it to the collection of providers + * if it has a metadata key. + * @param hostContainerRef A reference to the modules container. + * @param instanceWrapper A provider instance wrapper. + * @returns void + */ + static inspectProvider(hostContainerRef, instanceWrapper) { + return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.providersByMetaKey); + } + /** + * Inspects a controller instance wrapper and adds it to the collection of controllers + * if it has a metadata key. + * @param hostContainerRef A reference to the modules container. + * @param instanceWrapper A controller's instance wrapper. + * @returns void + */ + static inspectController(hostContainerRef, instanceWrapper) { + return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.controllersByMetaKey); + } + static insertByMetaKey(metaKey, instanceWrapper, collection) { + if (collection.has(metaKey)) { + const wrappers = collection.get(metaKey); + for (const existing of wrappers) { + if (existing.id === instanceWrapper.id) { + wrappers.delete(existing); + break; + } + } + wrappers.add(instanceWrapper); + } else { + const wrappers = /* @__PURE__ */ new Set(); + wrappers.add(instanceWrapper); + collection.set(metaKey, wrappers); + } + } + static getProvidersByMetaKey(hostContainerRef, metaKey) { + const wrappersByMetaKey = this.providersByMetaKey.get(hostContainerRef); + return wrappersByMetaKey?.get(metaKey) ?? /* @__PURE__ */ new Set(); + } + static getControllersByMetaKey(hostContainerRef, metaKey) { + const wrappersByMetaKey = this.controllersByMetaKey.get(hostContainerRef); + return wrappersByMetaKey?.get(metaKey) ?? /* @__PURE__ */ new Set(); + } + static inspectInstanceWrapper(hostContainerRef, instanceWrapper, wrapperByMetaKeyMap) { + const metaKey = _DiscoverableMetaHostCollection.getMetaKeyByInstanceWrapper(instanceWrapper); + if (!metaKey) { + return; + } + let collection; + if (wrapperByMetaKeyMap.has(hostContainerRef)) { + collection = wrapperByMetaKeyMap.get(hostContainerRef); + } else { + collection = /* @__PURE__ */ new Map(); + wrapperByMetaKeyMap.set(hostContainerRef, collection); + } + this.insertByMetaKey(metaKey, instanceWrapper, collection); + } + static getMetaKeyByInstanceWrapper(instanceWrapper) { + return this.metaHostLinks.get( + // NOTE: Regarding the ternary statement below, + // - The condition `!wrapper.metatype` is needed because when we use `useValue` + // the value of `wrapper.metatype` will be `null`. + // - The condition `wrapper.inject` is needed here because when we use + // `useFactory`, the value of `wrapper.metatype` will be the supplied + // factory function. + // For both cases, we should use `wrapper.instance.constructor` instead + // of `wrapper.metatype` to resolve processor's class properly. + // But since calling `wrapper.instance` could degrade overall performance + // we must defer it as much we can. + !instanceWrapper.metatype || instanceWrapper.inject ? instanceWrapper.instance?.constructor ?? instanceWrapper.metatype : instanceWrapper.metatype + ); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-service.js +var DiscoveryService; +var init_discovery_service = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-service.js"() { + init_tslib_es6(); + init_common(); + init_dist(); + init_modules_container(); + init_discoverable_meta_host_collection(); + DiscoveryService = class DiscoveryService2 { + static { + __name(this, "DiscoveryService"); + } + modulesContainer; + constructor(modulesContainer) { + this.modulesContainer = modulesContainer; + } + /** + * Creates a decorator that can be used to decorate classes and methods with metadata. + * The decorator will also add the class to the collection of discoverable classes (by metadata key). + * Decorated classes can be discovered using the `getProviders` and `getControllers` methods. + * @returns A decorator function. + */ + static createDecorator() { + const metadataKey = uid(21); + const decoratorFn = /* @__PURE__ */ __name((opts) => (target, key, descriptor) => { + if (!descriptor) { + DiscoverableMetaHostCollection.addClassMetaHostLink(target, metadataKey); + } + SetMetadata(metadataKey, opts ?? {})(target, key, descriptor); + }, "decoratorFn"); + decoratorFn.KEY = metadataKey; + return decoratorFn; + } + /** + * Returns an array of instance wrappers (providers). + * Depending on the options, the array will contain either all providers or only providers with the specified metadata key. + * @param options Discovery options. + * @param modules A list of modules to filter by. + * @returns An array of instance wrappers (providers). + */ + getProviders(options = {}, modules = this.getModules(options)) { + if ("metadataKey" in options) { + const providers2 = DiscoverableMetaHostCollection.getProvidersByMetaKey(this.modulesContainer, options.metadataKey); + return Array.from(providers2); + } + const providers = modules.map((item) => [...item.providers.values()]); + return flatten(providers); + } + /** + * Returns an array of instance wrappers (controllers). + * Depending on the options, the array will contain either all controllers or only controllers with the specified metadata key. + * @param options Discovery options. + * @param modules A list of modules to filter by. + * @returns An array of instance wrappers (controllers). + */ + getControllers(options = {}, modules = this.getModules(options)) { + if ("metadataKey" in options) { + const controllers2 = DiscoverableMetaHostCollection.getControllersByMetaKey(this.modulesContainer, options.metadataKey); + return Array.from(controllers2); + } + const controllers = modules.map((item) => [...item.controllers.values()]); + return flatten(controllers); + } + /** + * Retrieves metadata from the specified instance wrapper. + * @param decorator The decorator to retrieve metadata of. + * @param instanceWrapper Reference to the instance wrapper. + * @param methodKey An optional method key to retrieve metadata from. + * @returns Discovered metadata. + */ + getMetadataByDecorator(decorator, instanceWrapper, methodKey) { + if (methodKey) { + return Reflect.getMetadata(decorator.KEY, instanceWrapper.instance[methodKey]); + } + const clsRef = instanceWrapper.instance?.constructor ?? instanceWrapper.metatype; + return Reflect.getMetadata(decorator.KEY, clsRef); + } + /** + * Returns a list of modules to be used for discovery. + */ + getModules(options = {}) { + const includeInOpts = "include" in options; + if (!includeInOpts) { + const moduleRefs = [...this.modulesContainer.values()]; + return moduleRefs; + } + const whitelisted = this.includeWhitelisted(options.include); + return whitelisted; + } + includeWhitelisted(include) { + const moduleRefs = [...this.modulesContainer.values()]; + return moduleRefs.filter(({ metatype }) => include.some((item) => item === metatype)); + } + }; + DiscoveryService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [ModulesContainer]) + ], DiscoveryService); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-module.js +var DiscoveryModule; +var init_discovery_module = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-module.js"() { + init_tslib_es6(); + init_common(); + init_metadata_scanner(); + init_discovery_service(); + DiscoveryModule = class DiscoveryModule2 { + static { + __name(this, "DiscoveryModule"); + } + }; + DiscoveryModule = __decorate([ + Module({ + providers: [MetadataScanner, DiscoveryService], + exports: [MetadataScanner, DiscoveryService] + }) + ], DiscoveryModule); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/index.js +var init_discovery = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/index.js"() { + init_discovery_module(); + init_discovery_service(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/http-adapter-host.js +var import_rxjs2, HttpAdapterHost; +var init_http_adapter_host = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/http-adapter-host.js"() { + import_rxjs2 = __toESM(require_cjs(), 1); + HttpAdapterHost = class { + static { + __name(this, "HttpAdapterHost"); + } + _httpAdapter; + _listen$ = new import_rxjs2.Subject(); + _init$ = new import_rxjs2.ReplaySubject(); + isListening = false; + /** + * Accessor for the underlying `HttpAdapter` + * + * @param httpAdapter reference to the `HttpAdapter` to be set + */ + set httpAdapter(httpAdapter) { + this._httpAdapter = httpAdapter; + this._init$.next(); + this._init$.complete(); + } + /** + * Accessor for the underlying `HttpAdapter` + * + * @example + * `const httpAdapter = adapterHost.httpAdapter;` + */ + get httpAdapter() { + return this._httpAdapter; + } + /** + * Observable that allows to subscribe to the `listen` event. + * This event is emitted when the HTTP application is listening for incoming requests. + */ + get listen$() { + return this._listen$.asObservable(); + } + /** + * Observable that allows to subscribe to the `init` event. + * This event is emitted when the HTTP application is initialized. + */ + get init$() { + return this._init$.asObservable(); + } + /** + * Sets the listening state of the application. + */ + set listening(listening) { + this.isListening = listening; + if (listening) { + this._listen$.next(); + this._listen$.complete(); + } + } + /** + * Returns a boolean indicating whether the application is listening for incoming requests. + */ + get listening() { + return this.isListening; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter.js +import { STATUS_CODES } from "http"; +var BaseExceptionFilter; +var init_base_exception_filter = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter.js"() { + init_tslib_es6(); + init_common(); + init_constants2(); + init_http_adapter_host(); + init_internal(); + BaseExceptionFilter = class _BaseExceptionFilter { + static { + __name(this, "BaseExceptionFilter"); + } + applicationRef; + static logger = new Logger("ExceptionsHandler"); + httpAdapterHost; + constructor(applicationRef) { + this.applicationRef = applicationRef; + } + catch(exception, host) { + const applicationRef = this.applicationRef || this.httpAdapterHost && this.httpAdapterHost.httpAdapter; + if (!(exception instanceof HttpException)) { + return this.handleUnknownError(exception, host, applicationRef); + } + const res = exception.getResponse(); + const message = isObject(res) ? res : { + statusCode: exception.getStatus(), + message: res, + ...exception.errorCode !== void 0 && { + errorCode: exception.errorCode + } + }; + const response = host.getArgByIndex(1); + if (!applicationRef.isHeadersSent(response)) { + applicationRef.reply(response, message, exception.getStatus()); + } else { + applicationRef.end(response); + } + } + handleUnknownError(exception, host, applicationRef) { + const body = this.isHttpError(exception) ? { + statusCode: exception.statusCode, + // "http-errors" sets "expose" to false when the message must not + // reach the client (5xx errors, file system errors from "send") + message: exception.expose === false ? STATUS_CODES[exception.statusCode] ?? MESSAGES.UNKNOWN_EXCEPTION_MESSAGE : exception.message + } : { + statusCode: HttpStatus.INTERNAL_SERVER_ERROR, + message: MESSAGES.UNKNOWN_EXCEPTION_MESSAGE + }; + const response = host.getArgByIndex(1); + if (!applicationRef.isHeadersSent(response)) { + applicationRef.reply(response, body, body.statusCode); + } else { + applicationRef.end(response); + } + if (!(exception instanceof IntrinsicException)) { + _BaseExceptionFilter.logger.error(exception); + } + } + isExceptionObject(err) { + return isObject(err) && !!err.message; + } + /** + * Checks if the thrown error is a FastifyError or comes from the "http-errors" library. + * @param err error object + */ + isHttpError(err) { + if (!err || typeof err !== "object") { + return false; + } + if ( + // Fastify's schema validation errors are plain errors with this code + (err.constructor?.name === "FastifyError" || err.code === "FST_ERR_VALIDATION") && typeof err.code === "string" && typeof err.statusCode === "number" + ) { + return true; + } + if (typeof err.expose === "boolean" && typeof err.statusCode === "number" && err.status === err.statusCode && err instanceof Error) { + return true; + } + return !(err instanceof Error) && Number.isInteger(err.statusCode) && err.statusCode >= 400 && err.statusCode < 600 && typeof err.message === "string" && err.message !== ""; + } + }; + __decorate([ + Optional(), + Inject(), + __metadata("design:type", HttpAdapterHost) + ], BaseExceptionFilter.prototype, "httpAdapterHost", void 0); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/index.js +var init_exceptions = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/index.js"() { + init_base_exception_filter(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-constants.js +var REQUEST, REQUEST_CONTEXT_ID; +var init_request_constants = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-constants.js"() { + REQUEST = "REQUEST"; + REQUEST_CONTEXT_ID = /* @__PURE__ */ Symbol("REQUEST_CONTEXT_ID"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-id-factory.js +function createContextId() { + return { id: Math.random() }; +} +var ContextIdFactory; +var init_context_id_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-id-factory.js"() { + init_request_constants(); + init_internal(); + __name(createContextId, "createContextId"); + ContextIdFactory = class _ContextIdFactory { + static { + __name(this, "ContextIdFactory"); + } + static strategy; + /** + * Generates a context identifier based on the request object. + */ + static create() { + return createContextId(); + } + /** + * Generates a random identifier to track asynchronous execution context. + * @param request request object + */ + static getByRequest(request, propsToInspect = ["raw"]) { + if (!request) { + return _ContextIdFactory.create(); + } + if (request[REQUEST_CONTEXT_ID]) { + return request[REQUEST_CONTEXT_ID]; + } + for (const key of propsToInspect) { + if (request[key]?.[REQUEST_CONTEXT_ID]) { + return request[key][REQUEST_CONTEXT_ID]; + } + } + if (!this.strategy) { + return _ContextIdFactory.create(); + } + const contextId = createContextId(); + const resolverObjectOrFunction = this.strategy.attach(contextId, request); + if (this.isContextIdResolverWithPayload(resolverObjectOrFunction)) { + contextId.getParent = resolverObjectOrFunction.resolve; + contextId.payload = resolverObjectOrFunction.payload; + } else { + contextId.getParent = resolverObjectOrFunction; + } + return contextId; + } + /** + * Registers a custom context id strategy that lets you attach + * a parent context id to the existing context id object. + * @param strategy strategy instance + */ + static apply(strategy) { + this.strategy = strategy; + } + static isContextIdResolverWithPayload(resolverOrResolverFn) { + return isObject(resolverOrResolverFn); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/constants.js +var CONTROLLER_ID_KEY, STATIC_CONTEXT_ID, STATIC_CONTEXT; +var init_constants3 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/constants.js"() { + CONTROLLER_ID_KEY = "CONTROLLER_ID"; + STATIC_CONTEXT_ID = 1; + STATIC_CONTEXT = Object.freeze({ + id: STATIC_CONTEXT_ID + }); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/class-ref-registry.js +function registerClassRef(classRef) { + if (classRef.prototype) { + classRefsByPrototype.set(classRef.prototype, classRef); + } +} +function getClassRef(instance) { + return classRefsByPrototype.get(Object.getPrototypeOf(instance)) ?? instance.constructor; +} +var classRefsByPrototype; +var init_class_ref_registry = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/class-ref-registry.js"() { + classRefsByPrototype = /* @__PURE__ */ new WeakMap(); + __name(registerClassRef, "registerClassRef"); + __name(getClassRef, "getClassRef"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-creator.js +var ContextCreator; +var init_context_creator = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-creator.js"() { + init_constants3(); + init_class_ref_registry(); + ContextCreator = class { + static { + __name(this, "ContextCreator"); + } + createContext(instance, callback, metadataKey, contextId = STATIC_CONTEXT, inquirerId) { + const globalMetadata = this.getGlobalMetadata && this.getGlobalMetadata(contextId, inquirerId); + const classMetadata = this.reflectClassMetadata(instance, metadataKey); + const methodMetadata = this.reflectMethodMetadata(callback, metadataKey); + return [ + ...this.createConcreteContext(globalMetadata || [], contextId, inquirerId), + ...this.createConcreteContext(classMetadata, contextId, inquirerId), + ...this.createConcreteContext(methodMetadata, contextId, inquirerId) + ]; + } + reflectClassMetadata(instance, metadataKey) { + return Reflect.getMetadata(metadataKey, getClassRef(instance)); + } + reflectMethodMetadata(callback, metadataKey) { + return Reflect.getMetadata(metadataKey, callback); + } + getContextId(contextId, instanceWrapper) { + return contextId.getParent ? contextId.getParent({ + token: instanceWrapper.token, + isTreeDurable: instanceWrapper.isDependencyTreeDurable() + }) : contextId; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter-context.js +var import_iterare, BaseExceptionFilterContext; +var init_base_exception_filter_context = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter-context.js"() { + import_iterare = __toESM(require_lib(), 1); + init_context_creator(); + init_constants3(); + init_internal(); + BaseExceptionFilterContext = class extends ContextCreator { + static { + __name(this, "BaseExceptionFilterContext"); + } + container; + moduleContext; + constructor(container) { + super(); + this.container = container; + } + createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) { + if (isEmpty(metadata)) { + return []; + } + return (0, import_iterare.iterate)(metadata).filter((instance) => instance && (isFunction(instance.catch) || isFunction(instance))).map((filter) => this.getFilterInstance(filter, contextId, inquirerId)).filter((item) => !!item).map((instance) => ({ + func: instance.catch.bind(instance), + exceptionMetatypes: this.reflectCatchExceptions(instance) + })).toArray(); + } + getFilterInstance(filter, contextId = STATIC_CONTEXT, inquirerId) { + const isObject2 = !!filter.catch; + if (isObject2) { + return filter; + } + const instanceWrapper = this.getInstanceByMetatype(filter); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + return moduleRef.injectables.get(metatype); + } + reflectCatchExceptions(instance) { + const prototype = Object.getPrototypeOf(instance); + return Reflect.getMetadata(FILTER_CATCH_EXCEPTIONS, prototype.constructor) || []; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/runtime.exception.js +var RuntimeException; +var init_runtime_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/runtime.exception.js"() { + RuntimeException = class extends Error { + static { + __name(this, "RuntimeException"); + } + constructor(message = ``) { + super(message); + } + what() { + return this.message; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/messages.js +var getInstanceName, getDependencyName, getModuleName, stringifyScope, UNKNOWN_DEPENDENCIES_MESSAGE, INVALID_MIDDLEWARE_MESSAGE, UNDEFINED_FORWARDREF_MESSAGE, INVALID_MODULE_MESSAGE, USING_INVALID_CLASS_AS_A_MODULE_MESSAGE, UNDEFINED_MODULE_MESSAGE, INVALID_PROVIDER_MESSAGE, UNKNOWN_EXPORT_MESSAGE, INVALID_CLASS_MESSAGE, INVALID_CLASS_SCOPE_MESSAGE, REQUEST_SCOPED_CREATE_MESSAGE, REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE, UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE, UNKNOWN_REQUEST_MAPPING, ROUTE_CONFLICT_MESSAGE, DUPLICATE_ROUTE_MESSAGE, SHADOWED_ROUTE_MESSAGE, INVALID_EXCEPTION_FILTER; +var init_messages = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/messages.js"() { + init_internal(); + getInstanceName = /* @__PURE__ */ __name((instance) => { + if (instance?.forwardRef) { + return instance.forwardRef()?.name; + } + if (instance?.module) { + return instance.module?.name; + } + return instance?.name; + }, "getInstanceName"); + getDependencyName = /* @__PURE__ */ __name((dependency, fallbackValue, disambiguated = true) => ( + // use class name + getInstanceName(dependency) || // use injection token (symbol) + isSymbol(dependency) && dependency.toString() || // use string directly + (dependency ? disambiguated ? `"${dependency}"` : dependency : void 0) || // otherwise + fallbackValue + ), "getDependencyName"); + getModuleName = /* @__PURE__ */ __name((module) => module && getInstanceName(module.metatype) || "current", "getModuleName"); + stringifyScope = /* @__PURE__ */ __name((scope) => (scope || []).map(getInstanceName).join(" -> "), "stringifyScope"); + UNKNOWN_DEPENDENCIES_MESSAGE = /* @__PURE__ */ __name((type, unknownDependencyContext, moduleRef) => { + const { index, name, dependencies, key } = unknownDependencyContext; + const moduleName = getModuleName(moduleRef); + const dependencyName = getDependencyName(name, "dependency"); + const isImportTypeIssue = !isNil(index) && dependencies && (dependencies[index] === void 0 || dependencies[index] === Object || typeof dependencies[index] === "function" && dependencies[index].name === "Object"); + let potentialSolutions; + if (isImportTypeIssue) { + potentialSolutions = ` + +Potential solutions: +- The dependency at index [${index}] appears to be undefined at runtime +- This commonly occurs when using 'import type' instead of 'import' for injectable classes +- Check your imports and change: + \u274C import type { SomeService } from './some.service'; + \u2705 import { SomeService } from './some.service'; +- Ensure the imported class is decorated with @Injectable() or is a valid provider +- If using dynamic imports, ensure the class is available at runtime, not just for type checking + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors`; + } else { + potentialSolutions = // If module's name is well defined + moduleName !== "current" ? ` + +Potential solutions: +- Is ${moduleName} a valid NestJS module? +- If ${dependencyName} is a provider, is it part of the current ${moduleName}? +- If ${dependencyName} is exported from a separate @Module, is that module imported within ${moduleName}? + @Module({ + imports: [ /* the Module containing ${dependencyName} */ ] + }) + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors` : ` + +Potential solutions: +- If ${dependencyName} is a provider, is it part of the current Module? +- If ${dependencyName} is exported from a separate @Module, is that module imported within Module? + @Module({ + imports: [ /* the Module containing ${dependencyName} */ ] + }) + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors`; + } + let message = `Nest can't resolve dependencies of the ${type.toString()}`; + if (isNil(index)) { + message += `. Please make sure that the "${key.toString()}" property is available in the current context.${potentialSolutions}`; + return message; + } + const dependenciesName = (dependencies || []).map((dependencyName2) => getDependencyName(dependencyName2, "+", false)); + dependenciesName[index] = "?"; + const tokenFragment = !isImportTypeIssue && name !== void 0 ? ` ${dependencyName}` : ""; + const contextLabel = isImportTypeIssue ? "current" : moduleName; + message += ` (`; + message += dependenciesName.join(", "); + message += `). Please make sure that the argument${tokenFragment} at index [${index}]`; + message += ` is available in the ${contextLabel} module.`; + message += potentialSolutions; + return message; + }, "UNKNOWN_DEPENDENCIES_MESSAGE"); + INVALID_MIDDLEWARE_MESSAGE = /* @__PURE__ */ __name((text, name) => `The middleware doesn't provide the 'use' method (${name})`, "INVALID_MIDDLEWARE_MESSAGE"); + UNDEFINED_FORWARDREF_MESSAGE = /* @__PURE__ */ __name((scope) => `Nest cannot create the module instance. Often, this is because of a circular dependency between modules. Use forwardRef() to avoid it. + +(Read more: https://docs.nestjs.com/fundamentals/circular-dependency) +Scope [${stringifyScope(scope)}] +`, "UNDEFINED_FORWARDREF_MESSAGE"); + INVALID_MODULE_MESSAGE = /* @__PURE__ */ __name((parentModule, index, scope, receivedValue) => { + const parentModuleName = getInstanceName(parentModule) || "module"; + let formattedValue; + let receivedType; + if (receivedValue === null) { + formattedValue = "null"; + receivedType = "null"; + } else if (typeof receivedValue === "string") { + formattedValue = `"${receivedValue}"`; + receivedType = "string"; + } else { + formattedValue = String(receivedValue); + receivedType = typeof receivedValue; + } + return `Nest cannot create the ${parentModuleName} instance. +Received an unexpected value at index [${index}] of the ${parentModuleName} "imports" array. +The received value \`${formattedValue}\` is of type "${receivedType}". + +Scope [${stringifyScope(scope)}]`; + }, "INVALID_MODULE_MESSAGE"); + USING_INVALID_CLASS_AS_A_MODULE_MESSAGE = /* @__PURE__ */ __name((metatypeUsedAsAModule, scope, classKind) => { + const metatypeNameQuote = `"${getInstanceName(metatypeUsedAsAModule)}"`; + let hint; + switch (classKind) { + case "controller": + hint = `${metatypeNameQuote} is decorated with @Controller() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "controllers" array of the importing module instead.`; + break; + case "provider": + hint = `${metatypeNameQuote} is decorated with @Injectable() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "providers" array of the importing module instead.`; + break; + case "filter": + hint = `${metatypeNameQuote} is decorated with @Catch() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "providers" array (using the APP_FILTER token to apply it globally) or apply it via @UseFilters() instead.`; + break; + } + return `${hint} + +Scope [${stringifyScope(scope)}] +`; + }, "USING_INVALID_CLASS_AS_A_MODULE_MESSAGE"); + UNDEFINED_MODULE_MESSAGE = /* @__PURE__ */ __name((parentModule, index, scope) => { + const parentModuleName = getInstanceName(parentModule) || "module"; + return `Nest cannot create the ${parentModuleName} instance. +The module at index [${index}] of the ${parentModuleName} "imports" array is undefined. + +Potential causes: +- A circular dependency between modules. Use forwardRef() to avoid it. Read more: https://docs.nestjs.com/fundamentals/circular-dependency +- The module at index [${index}] is of type "undefined". Check your import statements and the type of the module. + +Scope [${stringifyScope(scope)}]`; + }, "UNDEFINED_MODULE_MESSAGE"); + INVALID_PROVIDER_MESSAGE = /* @__PURE__ */ __name((token, moduleName) => `Nest cannot create the ${moduleName} instance. +The provider ${getDependencyName(token, "provider")} in the ${moduleName} "providers" array does not define a valid "useClass", "useValue", "useFactory" or "useExisting" property. + +Potential causes: +- The value of "useClass", "useFactory" or "useExisting" is undefined at runtime, often because of a circular import between files. Check your import statements. +- None of these properties is set, or the one that is set is null.`, "INVALID_PROVIDER_MESSAGE"); + UNKNOWN_EXPORT_MESSAGE = /* @__PURE__ */ __name((token = "item", module) => { + token = isSymbol(token) ? token.toString() : token; + return `Nest cannot export a provider/module that is not a part of the currently processed module (${module}). Please verify whether the exported ${token} is available in this particular context. + +Possible Solutions: +- Is ${token} part of the relevant providers/imports within ${module}? + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors +`; + }, "UNKNOWN_EXPORT_MESSAGE"); + INVALID_CLASS_MESSAGE = /* @__PURE__ */ __name((text, value) => `ModuleRef cannot instantiate class (${value} is not constructable).`, "INVALID_CLASS_MESSAGE"); + INVALID_CLASS_SCOPE_MESSAGE = /* @__PURE__ */ __name((text, name) => `${name || "This class"} is marked as a scoped provider. Request and transient-scoped providers can't be used in combination with "get()" method. Please, use "resolve()" instead.`, "INVALID_CLASS_SCOPE_MESSAGE"); + REQUEST_SCOPED_CREATE_MESSAGE = /* @__PURE__ */ __name((name) => `${name} depends on a request-scoped provider, so it can't be created without a context id. Please, use "create(type, contextId)" instead.`, "REQUEST_SCOPED_CREATE_MESSAGE"); + REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE = /* @__PURE__ */ __name((enhancerToken, provider, kind) => `The ${enhancerToken} provider (${provider}) depends on a request-scoped provider, ${{ + useClass: `so it would run with its dependencies undefined. Mark the class with @Injectable({ scope: Scope.REQUEST }), or set "scope: Scope.REQUEST" on the provider.`, + useExisting: `so it would never run. Point "useExisting" at a class marked with @Injectable({ scope: Scope.REQUEST }), or use a factory provider with "scope: Scope.REQUEST".`, + useFactory: `so it would never run. Set "scope: Scope.REQUEST" on the factory provider.` + }[kind]}`, "REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE"); + UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE = /* @__PURE__ */ __name((enhancerToken, provider) => `The ${enhancerToken} provider (${provider}) was not instantiated, as one of its dependencies was not, so it can't be applied.`, "UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE"); + UNKNOWN_REQUEST_MAPPING = /* @__PURE__ */ __name((metatype) => { + const className = metatype.name; + return className ? `An invalid controller has been detected. "${className}" does not have the @Controller() decorator but it is being listed in the "controllers" array of some module.` : `An invalid controller has been detected. Perhaps, one of your controllers is missing the @Controller() decorator.`; + }, "UNKNOWN_REQUEST_MAPPING"); + ROUTE_CONFLICT_MESSAGE = /* @__PURE__ */ __name((messages) => [ + "Conflicting HTTP routes detected:", + ...messages.map((message) => ` - ${message}`), + `Adjust route declarations or relax the 'routeConflictPolicy' option passed to NestFactory.create() to allow the application to start.` + ].join("\n"), "ROUTE_CONFLICT_MESSAGE"); + DUPLICATE_ROUTE_MESSAGE = /* @__PURE__ */ __name((method, path, firstHandlerLabel, secondHandlerLabel) => `Duplicate route: ${method} ${path} is registered by both ${firstHandlerLabel} and ${secondHandlerLabel}.`, "DUPLICATE_ROUTE_MESSAGE"); + SHADOWED_ROUTE_MESSAGE = /* @__PURE__ */ __name((method, shadowedPath, shadowedHandlerLabel, winnerPath, winnerHandlerLabel) => `Route ${method} ${shadowedPath} (${shadowedHandlerLabel}) is shadowed by ${method} ${winnerPath} (${winnerHandlerLabel}). The first-registered route will match all matching requests on order-sensitive adapters.`, "SHADOWED_ROUTE_MESSAGE"); + INVALID_EXCEPTION_FILTER = `Invalid exception filters (@UseFilters()).`; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-exception-filter.exception.js +var InvalidExceptionFilterException; +var init_invalid_exception_filter_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-exception-filter.exception.js"() { + init_runtime_exception(); + init_messages(); + InvalidExceptionFilterException = class extends RuntimeException { + static { + __name(this, "InvalidExceptionFilterException"); + } + constructor() { + super(INVALID_EXCEPTION_FILTER); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter.js +var ExternalExceptionFilter; +var init_external_exception_filter = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter.js"() { + init_common(); + ExternalExceptionFilter = class _ExternalExceptionFilter { + static { + __name(this, "ExternalExceptionFilter"); + } + static logger = new Logger("ExceptionsHandler"); + catch(exception, host) { + if (exception instanceof Error && !(exception instanceof IntrinsicException)) { + _ExternalExceptionFilter.logger.error(exception); + } + throw exception; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exceptions-handler.js +var ExternalExceptionsHandler; +var init_external_exceptions_handler = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exceptions-handler.js"() { + init_invalid_exception_filter_exception(); + init_external_exception_filter(); + init_internal(); + ExternalExceptionsHandler = class extends ExternalExceptionFilter { + static { + __name(this, "ExternalExceptionsHandler"); + } + filters = []; + next(exception, host) { + const result = this.invokeCustomFilters(exception, host); + if (!isUndefined(result)) { + return result; + } + return super.catch(exception, host); + } + setCustomFilters(filters) { + if (!Array.isArray(filters)) { + throw new InvalidExceptionFilterException(); + } + this.filters = filters; + } + invokeCustomFilters(exception, host) { + if (isEmptyArray(this.filters)) { + return; + } + const filter = selectExceptionFilterMetadata(this.filters, exception); + return filter ? filter.func(exception, host) : void 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter-context.js +var import_iterare2, ExternalExceptionFilterContext; +var init_external_exception_filter_context = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter-context.js"() { + import_iterare2 = __toESM(require_lib(), 1); + init_constants3(); + init_base_exception_filter_context(); + init_external_exceptions_handler(); + init_internal(); + ExternalExceptionFilterContext = class extends BaseExceptionFilterContext { + static { + __name(this, "ExternalExceptionFilterContext"); + } + config; + constructor(container, config) { + super(container); + this.config = config; + } + create(instance, callback, module, contextId = STATIC_CONTEXT, inquirerId) { + this.moduleContext = module; + const exceptionHandler = new ExternalExceptionsHandler(); + const filters = this.createContext(instance, callback, EXCEPTION_FILTERS_METADATA, contextId, inquirerId); + if (isEmptyArray(filters)) { + return exceptionHandler; + } + exceptionHandler.setCustomFilters(filters.reverse()); + return exceptionHandler; + } + getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalFilters = this.config.getGlobalFilters(); + if (contextId === STATIC_CONTEXT && !inquirerId) { + return globalFilters; + } + const scopedFilterWrappers = this.config.getGlobalRequestFilters(); + const scopedFilters = (0, import_iterare2.iterate)(scopedFilterWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalFilters.concat(scopedFilters); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/constants.js +var FORBIDDEN_MESSAGE; +var init_constants4 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/constants.js"() { + FORBIDDEN_MESSAGE = "Forbidden resource"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/execution-context-host.js +var ExecutionContextHost; +var init_execution_context_host = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/execution-context-host.js"() { + ExecutionContextHost = class { + static { + __name(this, "ExecutionContextHost"); + } + args; + constructorRef; + handler; + contextType = "http"; + constructor(args, constructorRef = null, handler = null) { + this.args = args; + this.constructorRef = constructorRef; + this.handler = handler; + } + setType(type) { + type && (this.contextType = type); + } + getType() { + return this.contextType; + } + getClass() { + return this.constructorRef; + } + getHandler() { + return this.handler; + } + getArgs() { + return this.args; + } + getArgByIndex(index) { + return this.args[index]; + } + switchToRpc() { + return Object.assign(this, { + getData: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getData"), + getContext: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getContext") + }); + } + switchToHttp() { + return Object.assign(this, { + getRequest: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getRequest"), + getResponse: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getResponse"), + getNext: /* @__PURE__ */ __name(() => this.getArgByIndex(2), "getNext") + }); + } + switchToWs() { + return Object.assign(this, { + getClient: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getClient"), + getData: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getData"), + getPattern: /* @__PURE__ */ __name(() => this.getArgByIndex(this.getArgs().length - 1), "getPattern") + }); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-consumer.js +var import_rxjs3, GuardsConsumer; +var init_guards_consumer = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-consumer.js"() { + import_rxjs3 = __toESM(require_cjs(), 1); + init_execution_context_host(); + init_internal(); + GuardsConsumer = class { + static { + __name(this, "GuardsConsumer"); + } + async tryActivate(guards, args, instance, callback, type) { + if (!guards || isEmptyArray(guards)) { + return true; + } + const context = this.createContext(args, instance, callback); + context.setType(type); + for (const guard of guards) { + const result = guard.canActivate(context); + if (typeof result === "boolean") { + if (!result) { + return false; + } + continue; + } + if (await this.pickResult(result)) { + continue; + } + return false; + } + return true; + } + createContext(args, instance, callback) { + return new ExecutionContextHost(args, instance.constructor, callback); + } + async pickResult(result) { + const value = await result; + if ((0, import_rxjs3.isObservable)(value)) { + return (0, import_rxjs3.lastValueFrom)(value); + } + return value; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-context-creator.js +var import_iterare3, GuardsContextCreator; +var init_guards_context_creator = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-context-creator.js"() { + import_iterare3 = __toESM(require_lib(), 1); + init_context_creator(); + init_constants3(); + init_internal(); + GuardsContextCreator = class extends ContextCreator { + static { + __name(this, "GuardsContextCreator"); + } + container; + config; + moduleContext; + constructor(container, config) { + super(); + this.container = container; + this.config = config; + } + create(instance, callback, module, contextId = STATIC_CONTEXT, inquirerId) { + this.moduleContext = module; + return this.createContext(instance, callback, GUARDS_METADATA, contextId, inquirerId); + } + createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) { + if (isEmpty(metadata)) { + return []; + } + return (0, import_iterare3.iterate)(metadata).filter((guard) => guard && (isFunction(guard) || isFunction(guard.canActivate))).map((guard) => this.getGuardInstance(guard, contextId, inquirerId)).filter((guard) => !!guard && isFunction(guard.canActivate)).toArray(); + } + getGuardInstance(metatype, contextId = STATIC_CONTEXT, inquirerId) { + const isObject2 = !!metatype.canActivate; + if (isObject2) { + return metatype; + } + const instanceWrapper = this.getInstanceByMetatype(metatype); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + const injectables = moduleRef.injectables; + return injectables.get(metatype); + } + getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalGuards = this.config.getGlobalGuards(); + if (contextId === STATIC_CONTEXT && !inquirerId) { + return globalGuards; + } + const scopedGuardWrappers = this.config.getGlobalRequestGuards(); + const scopedGuards = (0, import_iterare3.iterate)(scopedGuardWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalGuards.concat(scopedGuards); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/index.js +var init_guards = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/index.js"() { + init_constants4(); + init_guards_consumer(); + init_guards_context_creator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/destroy-streamable-file.js +function destroyStreamableFile(value) { + if (!(value instanceof StreamableFile)) { + return; + } + const stream = value.getStream(); + if (isFunction(stream?.destroy)) { + stream.destroy(); + } +} +var init_destroy_streamable_file = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/destroy-streamable-file.js"() { + init_common(); + init_internal(); + __name(destroyStreamableFile, "destroyStreamableFile"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-consumer.js +import { AsyncResource } from "async_hooks"; +function bindAsyncScope(fn) { + const resource = new AsyncResource(fn.name || "bound-anonymous-fn"); + return () => resource.runInAsyncScope(fn); +} +var import_rxjs4, import_operators, InterceptorsConsumer; +var init_interceptors_consumer = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-consumer.js"() { + import_rxjs4 = __toESM(require_cjs(), 1); + import_operators = __toESM(require_operators(), 1); + init_destroy_streamable_file(); + init_execution_context_host(); + init_internal(); + InterceptorsConsumer = class { + static { + __name(this, "InterceptorsConsumer"); + } + async intercept(interceptors, args, instance, callback, next, type) { + if (!interceptors || isEmptyArray(interceptors)) { + return next(); + } + const context = this.createContext(args, instance, callback); + context.setType(type); + const nextFn = /* @__PURE__ */ __name(async (i = 0) => { + if (i >= interceptors.length) { + return (0, import_rxjs4.defer)(bindAsyncScope(() => this.transformDeferred(next))); + } + const handler = { + handle: /* @__PURE__ */ __name(() => (0, import_rxjs4.defer)(bindAsyncScope(() => nextFn(i + 1))).pipe((0, import_operators.mergeAll)()), "handle") + }; + return interceptors[i].intercept(context, handler); + }, "nextFn"); + return (0, import_rxjs4.defer)(() => nextFn()).pipe((0, import_operators.mergeAll)()); + } + createContext(args, instance, callback) { + return new ExecutionContextHost(args, instance.constructor, callback); + } + transformDeferred(next) { + const nextPromise = next(); + return new import_rxjs4.Observable((subscriber) => { + let innerSub; + nextPromise.then((res) => { + if (subscriber.closed) { + destroyStreamableFile(res); + return; + } + const isDeferred = res instanceof Promise || res instanceof import_rxjs4.Observable; + innerSub = (0, import_rxjs4.from)(isDeferred ? res : Promise.resolve(res)).subscribe(subscriber); + }).catch((err) => { + if (!subscriber.closed) { + subscriber.error(err); + } + }); + return () => { + innerSub?.unsubscribe(); + }; + }); + } + }; + __name(bindAsyncScope, "bindAsyncScope"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-context-creator.js +var import_iterare4, InterceptorsContextCreator; +var init_interceptors_context_creator = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-context-creator.js"() { + import_iterare4 = __toESM(require_lib(), 1); + init_context_creator(); + init_constants3(); + init_internal(); + InterceptorsContextCreator = class extends ContextCreator { + static { + __name(this, "InterceptorsContextCreator"); + } + container; + config; + moduleContext; + constructor(container, config) { + super(); + this.container = container; + this.config = config; + } + create(instance, callback, module, contextId = STATIC_CONTEXT, inquirerId) { + this.moduleContext = module; + return this.createContext(instance, callback, INTERCEPTORS_METADATA, contextId, inquirerId); + } + createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) { + if (isEmpty(metadata)) { + return []; + } + return (0, import_iterare4.iterate)(metadata).filter((interceptor) => interceptor && (isFunction(interceptor) || isFunction(interceptor.intercept))).map((interceptor) => this.getInterceptorInstance(interceptor, contextId, inquirerId)).filter((interceptor) => interceptor ? isFunction(interceptor.intercept) : false).toArray(); + } + getInterceptorInstance(metatype, contextId = STATIC_CONTEXT, inquirerId) { + const isObject2 = !!metatype.intercept; + if (isObject2) { + return metatype; + } + const instanceWrapper = this.getInstanceByMetatype(metatype); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + return moduleRef.injectables.get(metatype); + } + getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalInterceptors = this.config.getGlobalInterceptors(); + if (contextId === STATIC_CONTEXT && !inquirerId) { + return globalInterceptors; + } + const scopedInterceptorWrappers = this.config.getGlobalRequestInterceptors(); + const scopedInterceptors = (0, import_iterare4.iterate)(scopedInterceptorWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalInterceptors.concat(scopedInterceptors); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/index.js +var init_interceptors = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/index.js"() { + init_interceptors_consumer(); + init_interceptors_context_creator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/params-token-factory.js +var ParamsTokenFactory; +var init_params_token_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/params-token-factory.js"() { + init_internal(); + ParamsTokenFactory = class { + static { + __name(this, "ParamsTokenFactory"); + } + exchangeEnumForString(type) { + switch (type) { + case RouteParamtypes.BODY: + return "body"; + case RouteParamtypes.PARAM: + return "param"; + case RouteParamtypes.QUERY: + return "query"; + default: + return "custom"; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-consumer.js +var isThenable, PipesConsumer; +var init_pipes_consumer = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-consumer.js"() { + init_params_token_factory(); + isThenable = /* @__PURE__ */ __name((value) => value !== null && (typeof value === "object" || typeof value === "function") && typeof value.then === "function", "isThenable"); + PipesConsumer = class { + static { + __name(this, "PipesConsumer"); + } + paramsTokenFactory = new ParamsTokenFactory(); + async apply(value, metadata, pipes) { + const token = this.paramsTokenFactory.exchangeEnumForString(metadata.type); + return this.applyPipes(value, { + metatype: metadata.metatype, + type: token, + data: metadata.data, + schema: metadata.schema + }, pipes); + } + async applyPipes(value, { metatype, type, data, schema }, transforms) { + let result = isThenable(value) ? await value : value; + for (const pipe of transforms) { + result = await pipe.transform(result, { metatype, type, data, schema }); + } + return result; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-context-creator.js +var import_iterare5, PipesContextCreator; +var init_pipes_context_creator = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-context-creator.js"() { + import_iterare5 = __toESM(require_lib(), 1); + init_context_creator(); + init_constants3(); + init_internal(); + PipesContextCreator = class extends ContextCreator { + static { + __name(this, "PipesContextCreator"); + } + container; + config; + moduleContext; + constructor(container, config) { + super(); + this.container = container; + this.config = config; + } + create(instance, callback, moduleKey, contextId = STATIC_CONTEXT, inquirerId) { + this.moduleContext = moduleKey; + return this.createContext(instance, callback, PIPES_METADATA, contextId, inquirerId); + } + createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) { + if (isEmpty(metadata)) { + return []; + } + return (0, import_iterare5.iterate)(metadata).filter((pipe) => pipe && (isFunction(pipe) || isFunction(pipe.transform))).map((pipe) => this.getPipeInstance(pipe, contextId, inquirerId)).filter((pipe) => !!pipe && pipe.transform && isFunction(pipe.transform)).toArray(); + } + getPipeInstance(pipe, contextId = STATIC_CONTEXT, inquirerId) { + const isObject2 = !!pipe.transform; + if (isObject2) { + return pipe; + } + const instanceWrapper = this.getInstanceByMetatype(pipe); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + return moduleRef.injectables.get(metatype); + } + getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalPipes = this.config.getGlobalPipes(); + if (contextId === STATIC_CONTEXT && !inquirerId) { + return globalPipes; + } + const scopedPipeWrappers = this.config.getGlobalRequestPipes(); + const scopedPipes = (0, import_iterare5.iterate)(scopedPipeWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalPipes.concat(scopedPipes); + } + setModuleContext(context) { + this.moduleContext = context; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/index.js +var init_pipes = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/index.js"() { + init_params_token_factory(); + init_pipes_consumer(); + init_pipes_context_creator(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-utils.js +var ContextUtils; +var init_context_utils = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-utils.js"() { + init_execution_context_host(); + init_internal(); + ContextUtils = class { + static { + __name(this, "ContextUtils"); + } + mapParamType(key) { + const keyPair = key.split(":"); + return keyPair[0]; + } + reflectCallbackParamtypes(instance, methodName) { + return Reflect.getMetadata(PARAMTYPES_METADATA, instance, methodName); + } + reflectCallbackMetadata(instance, methodName, metadataKey) { + return Reflect.getMetadata(metadataKey, instance.constructor, methodName); + } + reflectPassthrough(instance, methodName) { + return Reflect.getMetadata(RESPONSE_PASSTHROUGH_METADATA, instance.constructor, methodName); + } + getArgumentsLength(keys, metadata) { + return keys.length ? Math.max(...keys.map((key) => metadata[key].index)) + 1 : 0; + } + createNullArray(length) { + const a = new Array(length); + for (let i = 0; i < length; ++i) + a[i] = void 0; + return a; + } + mergeParamsMetatypes(paramsProperties, paramtypes) { + if (!paramtypes) { + return paramsProperties; + } + return paramsProperties.map((param) => ({ + ...param, + metatype: paramtypes[param.index] + })); + } + getCustomFactory(factory, data, contextFactory) { + return isFunction(factory) ? (...args) => factory(data, contextFactory(args)) : () => null; + } + getContextFactory(contextType, instance, callback) { + const type = instance && instance.constructor; + return (args) => { + const ctx = new ExecutionContextHost(args, type, callback); + ctx.setType(contextType); + return ctx; + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-proxy.js +var ExternalErrorProxy; +var init_external_proxy = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-proxy.js"() { + init_execution_context_host(); + ExternalErrorProxy = class { + static { + __name(this, "ExternalErrorProxy"); + } + createProxy(targetCallback, exceptionsHandler, type) { + return async (...args) => { + try { + return await targetCallback(...args); + } catch (e) { + const host = new ExecutionContextHost(args); + host.setType(type); + return exceptionsHandler.next(e, host); + } + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/handler-metadata-storage.js +var HANDLER_METADATA_SYMBOL, HandlerMetadataStorage; +var init_handler_metadata_storage = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/handler-metadata-storage.js"() { + HANDLER_METADATA_SYMBOL = /* @__PURE__ */ Symbol.for("handler_metadata:cache"); + HandlerMetadataStorage = class { + static { + __name(this, "HandlerMetadataStorage"); + } + // Keyed by class: same-named classes must not share an entry. + [HANDLER_METADATA_SYMBOL] = /* @__PURE__ */ new WeakMap(); + set(controller, methodName, metadata) { + const ctor = controller.constructor; + if (!ctor) { + return; + } + let handlers = this[HANDLER_METADATA_SYMBOL].get(ctor); + if (!handlers) { + handlers = /* @__PURE__ */ new Map(); + this[HANDLER_METADATA_SYMBOL].set(ctor, handlers); + } + handlers.set(methodName, metadata); + } + get(controller, methodName) { + const handlers = this[HANDLER_METADATA_SYMBOL].get(controller.constructor); + return handlers?.get(methodName); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-context-creator.js +var import_rxjs5, ExternalContextCreator; +var init_external_context_creator = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-context-creator.js"() { + init_common(); + init_internal(); + import_rxjs5 = __toESM(require_cjs(), 1); + init_external_exception_filter_context(); + init_constants4(); + init_guards(); + init_constants3(); + init_interceptors(); + init_pipes(); + init_class_ref_registry(); + init_context_utils(); + init_external_proxy(); + init_handler_metadata_storage(); + ExternalContextCreator = class _ExternalContextCreator { + static { + __name(this, "ExternalContextCreator"); + } + guardsContextCreator; + guardsConsumer; + interceptorsContextCreator; + interceptorsConsumer; + modulesContainer; + pipesContextCreator; + pipesConsumer; + filtersContextCreator; + contextUtils = new ContextUtils(); + externalErrorProxy = new ExternalErrorProxy(); + handlerMetadataStorage = new HandlerMetadataStorage(); + container; + constructor(guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, modulesContainer, pipesContextCreator, pipesConsumer, filtersContextCreator) { + this.guardsContextCreator = guardsContextCreator; + this.guardsConsumer = guardsConsumer; + this.interceptorsContextCreator = interceptorsContextCreator; + this.interceptorsConsumer = interceptorsConsumer; + this.modulesContainer = modulesContainer; + this.pipesContextCreator = pipesContextCreator; + this.pipesConsumer = pipesConsumer; + this.filtersContextCreator = filtersContextCreator; + } + static fromContainer(container) { + const guardsContextCreator = new GuardsContextCreator(container, container.applicationConfig); + const guardsConsumer = new GuardsConsumer(); + const interceptorsContextCreator = new InterceptorsContextCreator(container, container.applicationConfig); + const interceptorsConsumer = new InterceptorsConsumer(); + const pipesContextCreator = new PipesContextCreator(container, container.applicationConfig); + const pipesConsumer = new PipesConsumer(); + const filtersContextCreator = new ExternalExceptionFilterContext(container, container.applicationConfig); + const externalContextCreator = new _ExternalContextCreator(guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, container.getModules(), pipesContextCreator, pipesConsumer, filtersContextCreator); + externalContextCreator.container = container; + return externalContextCreator; + } + create(instance, callback, methodName, metadataKey, paramsFactory, contextId = STATIC_CONTEXT, inquirerId, options = { + interceptors: true, + guards: true, + filters: true + }, contextType = "http") { + const classRef = getClassRef(instance); + const moduleKey = this.getContextModuleKey(classRef) || this.getHostModuleKey(instance, inquirerId); + inquirerId ??= this.modulesContainer.get(moduleKey)?.entryProviders.find((item) => item.token === classRef || item.instance === instance)?.id; + const { argsLength, paramtypes, getParamsMetadata } = this.getMetadata(instance, methodName, metadataKey, paramsFactory, contextType); + const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const exceptionFilter = this.filtersContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const interceptors = options.interceptors ? this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId) : []; + const paramsMetadata = getParamsMetadata(moduleKey, contextId, inquirerId); + const paramsOptions = paramsMetadata ? this.contextUtils.mergeParamsMetatypes(paramsMetadata, paramtypes) : []; + const fnCanActivate = options.guards ? this.createGuardsFn(guards, instance, callback, contextType) : null; + const fnApplyPipes = this.createPipesFn(pipes, paramsOptions); + const handler = /* @__PURE__ */ __name((initialArgs, ...args) => async () => { + if (fnApplyPipes) { + await fnApplyPipes(initialArgs, ...args); + return callback.apply(instance, initialArgs); + } + return callback.apply(instance, args); + }, "handler"); + const target = /* @__PURE__ */ __name(async (...args) => { + const initialArgs = this.contextUtils.createNullArray(argsLength); + fnCanActivate && await fnCanActivate(args); + const result = await this.interceptorsConsumer.intercept(interceptors, args, instance, callback, handler(initialArgs, ...args), contextType); + return this.transformToResult(result); + }, "target"); + return options.filters ? this.externalErrorProxy.createProxy(target, exceptionFilter, contextType) : target; + } + getMetadata(instance, methodName, metadataKey, paramsFactory, contextType) { + const cacheMetadata = this.handlerMetadataStorage.get(instance, methodName); + if (cacheMetadata) { + return cacheMetadata; + } + const metadata = this.contextUtils.reflectCallbackMetadata(instance, methodName, metadataKey || "") || {}; + const keys = Object.keys(metadata); + const argsLength = this.contextUtils.getArgumentsLength(keys, metadata); + const paramtypes = this.contextUtils.reflectCallbackParamtypes(instance, methodName); + const contextFactory = this.contextUtils.getContextFactory(contextType, instance, instance[methodName]); + const getParamsMetadata = /* @__PURE__ */ __name((moduleKey, contextId = STATIC_CONTEXT, inquirerId) => paramsFactory ? this.exchangeKeysForValues(keys, metadata, moduleKey, paramsFactory, contextId, inquirerId, contextFactory) : null, "getParamsMetadata"); + const handlerMetadata = { + argsLength, + paramtypes, + getParamsMetadata + }; + this.handlerMetadataStorage.set(instance, methodName, handlerMetadata); + return handlerMetadata; + } + getContextModuleKey(moduleCtor) { + const emptyModuleKey = ""; + if (!moduleCtor) { + return emptyModuleKey; + } + const moduleContainerEntries = this.modulesContainer.entries(); + for (const [key, moduleRef] of moduleContainerEntries) { + if (moduleRef.hasProvider(moduleCtor)) { + return key; + } + } + return emptyModuleKey; + } + /** + * Returns the key of the module of a host registered under a token other + * than its class (e.g., `{ provide: 'TOKEN', useClass: Resolver }`): the + * module whose providers include the given inquirer or, without one, the + * given instance. + */ + getHostModuleKey(instance, inquirerId) { + for (const [key, moduleRef] of this.modulesContainer.entries()) { + const host = inquirerId ? moduleRef.getProviderById(inquirerId) : [...moduleRef.providers.values()].find((wrapper) => !wrapper.isAlias && wrapper.instance === instance); + if (host) { + return key; + } + } + return ""; + } + exchangeKeysForValues(keys, metadata, moduleContext, paramsFactory, contextId = STATIC_CONTEXT, inquirerId, contextFactory = this.contextUtils.getContextFactory("http")) { + this.pipesContextCreator.setModuleContext(moduleContext); + return keys.map((key) => { + const { index, data, pipes: pipesCollection, schema } = metadata[key]; + const pipes = this.pipesContextCreator.createConcreteContext(pipesCollection, contextId, inquirerId); + const type = this.contextUtils.mapParamType(key); + if (key.includes(CUSTOM_ROUTE_ARGS_METADATA)) { + const { factory } = metadata[key]; + const customExtractValue = this.contextUtils.getCustomFactory(factory, data, contextFactory); + return { + index, + extractValue: customExtractValue, + type, + data, + pipes, + schema + }; + } + const numericType = Number(type); + const extractValue = /* @__PURE__ */ __name((...args) => paramsFactory.exchangeKeyForValue(numericType, data, args), "extractValue"); + return { index, extractValue, type: numericType, data, pipes, schema }; + }); + } + createPipesFn(pipes, paramsOptions) { + const pipesFn = /* @__PURE__ */ __name(async (args, ...params) => { + const resolveParamValue = /* @__PURE__ */ __name(async (param) => { + const { index, extractValue, type, data, metatype, pipes: paramPipes, schema } = param; + const value = extractValue(...params); + args[index] = await this.getParamValue(value, { metatype, type, data, schema }, pipes.concat(paramPipes)); + }, "resolveParamValue"); + await Promise.all(paramsOptions.map(resolveParamValue)); + }, "pipesFn"); + return paramsOptions.length ? pipesFn : null; + } + async getParamValue(value, metadata, pipes) { + return isEmptyArray(pipes) ? value : this.pipesConsumer.apply(value, metadata, pipes); + } + async transformToResult(resultOrDeferred) { + if ((0, import_rxjs5.isObservable)(resultOrDeferred)) { + return (0, import_rxjs5.lastValueFrom)(resultOrDeferred); + } + return resultOrDeferred; + } + createGuardsFn(guards, instance, callback, contextType) { + const canActivateFn = /* @__PURE__ */ __name(async (args) => { + const canActivate = await this.guardsConsumer.tryActivate(guards, args, instance, callback, contextType); + if (!canActivate) { + throw new ForbiddenException(FORBIDDEN_MESSAGE); + } + }, "canActivateFn"); + return guards.length ? canActivateFn : null; + } + registerRequestProvider(request, contextId) { + this.container.registerRequestProvider(request, contextId); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/index.js +var init_helpers = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/index.js"() { + init_context_id_factory(); + init_external_context_creator(); + init_http_adapter_host(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/circular-dependency.exception.js +var CircularDependencyException; +var init_circular_dependency_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/circular-dependency.exception.js"() { + init_runtime_exception(); + CircularDependencyException = class extends RuntimeException { + static { + __name(this, "CircularDependencyException"); + } + constructor(context) { + const ctx = context ? ` inside ${context}` : ``; + super(`A circular dependency has been detected${ctx}. Please, make sure that each side of a bidirectional relationships are decorated with "forwardRef()". Note that circular relationships between custom providers (e.g., factories) are not supported since functions cannot be called more than once.`); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-element.exception.js +var UnknownElementException; +var init_unknown_element_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-element.exception.js"() { + init_runtime_exception(); + UnknownElementException = class extends RuntimeException { + static { + __name(this, "UnknownElementException"); + } + constructor(name) { + name = name && name.toString(); + super(`Nest could not find ${name || "given"} element (this provider does not exist in the current context)`); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-scope.exception.js +var InvalidClassScopeException; +var init_invalid_class_scope_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-scope.exception.js"() { + init_messages(); + init_runtime_exception(); + init_internal(); + InvalidClassScopeException = class extends RuntimeException { + static { + __name(this, "InvalidClassScopeException"); + } + constructor(metatypeOrToken) { + let name = isFunction(metatypeOrToken) ? metatypeOrToken.name : metatypeOrToken; + name = name && name.toString(); + super(INVALID_CLASS_SCOPE_MESSAGE`${name}`); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class.exception.js +var InvalidClassException; +var init_invalid_class_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class.exception.js"() { + init_messages(); + init_runtime_exception(); + InvalidClassException = class extends RuntimeException { + static { + __name(this, "InvalidClassException"); + } + constructor(value) { + super(INVALID_CLASS_MESSAGE`${value}`); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/route-conflict.exception.js +var RouteConflictException; +var init_route_conflict_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/route-conflict.exception.js"() { + init_messages(); + init_runtime_exception(); + RouteConflictException = class extends RuntimeException { + static { + __name(this, "RouteConflictException"); + } + constructor(messages) { + super(ROUTE_CONFLICT_MESSAGE(messages)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-export.exception.js +var UnknownExportException; +var init_unknown_export_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-export.exception.js"() { + init_messages(); + init_runtime_exception(); + UnknownExportException = class extends RuntimeException { + static { + __name(this, "UnknownExportException"); + } + constructor(token, moduleName) { + super(UNKNOWN_EXPORT_MESSAGE(token, moduleName)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-module.exception.js +var UnknownModuleException; +var init_unknown_module_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-module.exception.js"() { + init_runtime_exception(); + UnknownModuleException = class extends RuntimeException { + static { + __name(this, "UnknownModuleException"); + } + constructor(moduleName) { + super(`Nest could not select the given module (${moduleName ? `"${moduleName}"` : "it"} does not exist in current context).`); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-forwardref.exception.js +var UndefinedForwardRefException; +var init_undefined_forwardref_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-forwardref.exception.js"() { + init_messages(); + init_runtime_exception(); + UndefinedForwardRefException = class extends RuntimeException { + static { + __name(this, "UndefinedForwardRefException"); + } + constructor(scope) { + super(UNDEFINED_FORWARDREF_MESSAGE(scope)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/index.js +var init_exceptions2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/index.js"() { + init_circular_dependency_exception(); + init_runtime_exception(); + init_unknown_element_exception(); + init_invalid_class_scope_exception(); + init_invalid_class_exception(); + init_route_conflict_exception(); + init_unknown_export_exception(); + init_unknown_module_exception(); + init_undefined_forwardref_exception(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/initialize-on-preview.allowlist.js +var InitializeOnPreviewAllowlist; +var init_initialize_on_preview_allowlist = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/initialize-on-preview.allowlist.js"() { + InitializeOnPreviewAllowlist = class { + static { + __name(this, "InitializeOnPreviewAllowlist"); + } + static allowlist = /* @__PURE__ */ new WeakMap(); + static add(type) { + this.allowlist.set(type, true); + } + static has(type) { + return this.allowlist.has(type); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-constants.js +var INQUIRER; +var init_inquirer_constants = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-constants.js"() { + INQUIRER = "INQUIRER"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/silent-logger.js +var noop, SilentLogger; +var init_silent_logger = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/silent-logger.js"() { + init_common(); + noop = /* @__PURE__ */ __name(() => { + }, "noop"); + SilentLogger = class extends Logger { + static { + __name(this, "SilentLogger"); + } + log = noop; + error = noop; + warn = noop; + debug = noop; + verbose = noop; + fatal = noop; + setLogLevels = noop; + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-create.exception.js +var RequestScopedCreateException; +var init_request_scoped_create_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-create.exception.js"() { + init_messages(); + init_runtime_exception(); + RequestScopedCreateException = class extends RuntimeException { + static { + __name(this, "RequestScopedCreateException"); + } + constructor(name) { + super(REQUEST_SCOPED_CREATE_MESSAGE(name)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/get-class-scope.js +function getClassScope(provider) { + const metadata = Reflect.getMetadata(SCOPE_OPTIONS_METADATA, provider); + return metadata && metadata.scope; +} +var init_get_class_scope = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/get-class-scope.js"() { + init_internal(); + __name(getClassScope, "getClassScope"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/is-durable.js +function isDurable(provider) { + const metadata = Reflect.getMetadata(SCOPE_OPTIONS_METADATA, provider); + return metadata && metadata.durable; +} +var init_is_durable = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/is-durable.js"() { + init_internal(); + __name(isDurable, "isDurable"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/abstract-instance-resolver.js +var AbstractInstanceResolver; +var init_abstract_instance_resolver = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/abstract-instance-resolver.js"() { + init_common(); + init_exceptions2(); + AbstractInstanceResolver = class { + static { + __name(this, "AbstractInstanceResolver"); + } + find(typeOrToken, options) { + const instanceLinkOrArray = this.instanceLinksHost.get(typeOrToken, options); + const pluckInstance = /* @__PURE__ */ __name(({ wrapperRef }) => { + if (wrapperRef.scope === Scope.REQUEST || wrapperRef.scope === Scope.TRANSIENT || !wrapperRef.isDependencyTreeStatic()) { + throw new InvalidClassScopeException(typeOrToken); + } + return wrapperRef.instance; + }, "pluckInstance"); + if (Array.isArray(instanceLinkOrArray)) { + return instanceLinkOrArray.map(pluckInstance); + } + return pluckInstance(instanceLinkOrArray); + } + async resolvePerContext(typeOrToken, contextModule, contextId, options) { + const instanceLinkOrArray = options?.strict ? this.instanceLinksHost.get(typeOrToken, { + moduleId: contextModule.id, + each: options.each + }) : this.instanceLinksHost.get(typeOrToken, { + each: options?.each + }); + const pluckInstance = /* @__PURE__ */ __name(async (instanceLink) => { + const { wrapperRef, collection } = instanceLink; + if (wrapperRef.isDependencyTreeStatic() && !wrapperRef.isTransient) { + return wrapperRef.instance; + } + const ctorHost = wrapperRef.instance || { constructor: typeOrToken }; + const instance = await this.injector.loadPerContext(ctorHost, wrapperRef.host, collection, contextId, wrapperRef); + if (!instance) { + throw new UnknownElementException(); + } + return instance; + }, "pluckInstance"); + if (Array.isArray(instanceLinkOrArray)) { + return Promise.all(instanceLinkOrArray.map((instanceLink) => pluckInstance(instanceLink))); + } + return pluckInstance(instanceLinkOrArray); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-dependency.exception.js +var UndefinedDependencyException; +var init_undefined_dependency_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-dependency.exception.js"() { + init_messages(); + init_runtime_exception(); + UndefinedDependencyException = class extends RuntimeException { + static { + __name(this, "UndefinedDependencyException"); + } + constructor(type, undefinedDependencyContext, moduleRef) { + super(UNKNOWN_DEPENDENCIES_MESSAGE(type, undefinedDependencyContext, moduleRef)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-dependencies.exception.js +var UnknownDependenciesException; +var init_unknown_dependencies_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-dependencies.exception.js"() { + init_messages(); + init_runtime_exception(); + UnknownDependenciesException = class extends RuntimeException { + static { + __name(this, "UnknownDependenciesException"); + } + type; + context; + metadata; + moduleRef; + constructor(type, context, moduleRef, metadata) { + super(UNKNOWN_DEPENDENCIES_MESSAGE(type, context, moduleRef)); + this.type = type; + this.context = context; + this.metadata = metadata; + this.moduleRef = moduleRef && { id: moduleRef.id }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/barrier.js +var Barrier; +var init_barrier = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/barrier.js"() { + Barrier = class { + static { + __name(this, "Barrier"); + } + currentCount; + targetCount; + promise; + resolve; + constructor(targetCount) { + this.currentCount = 0; + this.targetCount = targetCount; + this.promise = new Promise((resolve) => { + this.resolve = resolve; + }); + if (targetCount === 0) { + this.resolve(); + } + } + /** + * Signal that a participant has reached the barrier. + * + * The barrier will be resolved once `targetCount` participants have reached it. + */ + signal() { + this.currentCount += 1; + if (this.currentCount >= this.targetCount) { + this.resolve(); + } + } + /** + * Wait for the barrier to be resolved. + * + * @returns A promise that resolves when the barrier is resolved. + */ + async wait() { + return this.promise; + } + /** + * Signal that a participant has reached the barrier and wait for the barrier to be resolved. + * + * The barrier will be resolved once `targetCount` participants have reached it. + * + * @returns A promise that resolves when the barrier is resolved. + */ + async signalAndWait() { + this.signal(); + return this.wait(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/safe-instance-decorator.js +function makeSafeInstanceDecorator(decorator) { + return (target) => { + try { + return decorator(target); + } catch (err) { + logger.warn(`The "instanceDecorator" function threw an error while decorating an instance (${err?.message ?? err}). The undecorated instance will be used instead.`); + return target; + } + }; +} +var logger; +var init_safe_instance_decorator = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/safe-instance-decorator.js"() { + init_common(); + logger = new Logger("InstrumentLogger"); + __name(makeSafeInstanceDecorator, "makeSafeInstanceDecorator"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/is-debug-mode.util.js +function isDebugMode() { + return !!process.env.NEST_DEBUG; +} +var init_is_debug_mode_util = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/is-debug-mode.util.js"() { + __name(isDebugMode, "isDebugMode"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/index.js +var init_inquirer = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/index.js"() { + init_inquirer_constants(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/settlement-signal.js +var SettlementSignal; +var init_settlement_signal = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/settlement-signal.js"() { + SettlementSignal = class { + static { + __name(this, "SettlementSignal"); + } + _refs = /* @__PURE__ */ new Map(); + settledPromise; + settleFn; + completed = false; + constructor() { + this.settledPromise = new Promise((resolve) => { + this.settleFn = resolve; + }); + } + /** + * Resolves the promise returned by `asPromise`. + */ + complete() { + this.completed = true; + this.settleFn(); + } + /** + * Rejects the promise returned by `asPromise` with the given error. + * @param err Error to reject the promise returned by `asPromise` with. + */ + error(err) { + this.completed = true; + this.settleFn(err); + } + /** + * Returns a promise that will be resolved when `complete` or `error` is called. + * @returns Promise that will be resolved when `complete` or `error` is called. + */ + asPromise() { + return this.settledPromise; + } + /** + * Inserts a wrapper that the host of this signal depends on. + * @param ref Wrapper to insert. + */ + insertRef(ref) { + this._refs.set(ref.id, ref); + } + /** + * Check if relationship is circular, i.e. whether the host of this signal + * is still waiting, directly or through other pending dependencies, on the + * given wrapper. + * @param wrapperId Wrapper id to check. + * @returns True if relationship is circular, false otherwise. + */ + isCycle(wrapperId) { + return this.waitsOn(wrapperId, /* @__PURE__ */ new Set()); + } + waitsOn(wrapperId, visited) { + if (this.completed || visited.has(this)) { + return false; + } + visited.add(this); + for (const [refId, ref] of this._refs) { + if (refId === wrapperId || ref.settlementSignal?.waitsOn(wrapperId, visited)) { + return true; + } + } + return false; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/injector.js +import { performance as performance2 } from "perf_hooks"; +var import_iterare6, Injector; +var init_injector = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/injector.js"() { + init_common(); + init_internal(); + import_iterare6 = __toESM(require_lib(), 1); + init_exceptions2(); + init_runtime_exception(); + init_undefined_dependency_exception(); + init_unknown_dependencies_exception(); + init_barrier(); + init_safe_instance_decorator(); + init_constants3(); + init_is_debug_mode_util(); + init_inquirer(); + init_settlement_signal(); + Injector = class { + static { + __name(this, "Injector"); + } + options; + logger = new Logger("InjectorLogger"); + instanceDecorator = /* @__PURE__ */ __name((target) => target, "instanceDecorator"); + /** + * Per-context loads that the provider which started them could not wait + * for (see `resolveComponentHost`), awaited by `waitForDeferredLoads`. + */ + deferredLoads = /* @__PURE__ */ new WeakMap(); + /** + * Deferred loads that are still running, per durable dependent of the + * provider being loaded and per context of that dependent (see + * `trackDurableDeferredLoad`). + */ + durableDeferredLoads = /* @__PURE__ */ new WeakMap(); + /** + * Durable instances that may reference the placeholder of a provider whose + * deferred load failed, with the error (see `trackDurableDeferredLoad`). + */ + failedInstances = /* @__PURE__ */ new WeakMap(); + constructor(options) { + this.options = options; + if (options?.instanceDecorator) { + this.instanceDecorator = makeSafeInstanceDecorator(options.instanceDecorator); + } + } + loadPrototype({ token }, collection, contextId = STATIC_CONTEXT) { + if (!collection) { + return; + } + const target = collection.get(token); + const instance = target.createPrototype(contextId); + if (instance) { + target.setInstanceByContextId(contextId, { instance }); + } + } + async loadInstance(wrapper, collection, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }) { + const inquirerId = this.getContextInquirerId(resolutionContext); + const hostContextId = this.getContextId(resolutionContext.contextId, wrapper); + const instanceHost = this.getInstanceHost(wrapper, hostContextId, inquirerId); + if (instanceHost.isPending) { + const settlementSignal2 = wrapper.settlementSignal; + if (resolutionContext.inquirer && settlementSignal2?.isCycle(resolutionContext.inquirer.id)) { + throw new CircularDependencyException(`"${wrapper.name}"`); + } + return instanceHost.donePromise.then((err) => { + if (err) { + throw err; + } + if (this.failedInstances.has(instanceHost)) { + throw this.failedInstances.get(instanceHost); + } + this.linkDurableDeferredLoads(wrapper, resolutionContext.contextId, hostContextId); + }); + } + const settlementSignal = this.applySettlementSignal(instanceHost, wrapper); + const token = wrapper.token || wrapper.name; + const { inject } = wrapper; + const targetWrapper = collection.get(token); + if (isUndefined(targetWrapper)) { + throw new RuntimeException(); + } + if (instanceHost.isResolved) { + return settlementSignal.complete(); + } + try { + const t0 = this.getNowTimestamp(); + const localResolutionContext = this.createResolutionContext(resolutionContext.contextId, wrapper, inquirerId); + const callback = /* @__PURE__ */ __name(async (instances, depth = 0) => { + const properties = await this.resolveProperties(wrapper, moduleRef, inject, localResolutionContext, resolutionContext.inquirer); + const instance = await this.instantiateClass(instances, wrapper, targetWrapper, wrapper.isTransient ? localResolutionContext : resolutionContext); + this.applyProperties(instance, properties); + wrapper.hierarchyLevel = depth + 1; + wrapper.initTime = this.getNowTimestamp() - t0; + settlementSignal.complete(); + }, "callback"); + await this.resolveConstructorParams(wrapper, moduleRef, inject, callback, localResolutionContext, resolutionContext.inquirer); + if (!instanceHost.isResolved) { + settlementSignal.complete(); + } + } catch (err) { + wrapper.removeInstanceByContextId(this.getContextId(resolutionContext.contextId, wrapper), inquirerId); + settlementSignal.error(err); + throw err; + } + } + async loadMiddleware(wrapper, collection, moduleRef, contextId = STATIC_CONTEXT, inquirer) { + const { metatype, token } = wrapper; + const targetWrapper = collection.get(token); + if (!isUndefined(targetWrapper.instance)) { + return; + } + targetWrapper.instance = Object.create(metatype.prototype); + await this.loadInstance(wrapper, collection, moduleRef, this.createResolutionContext(contextId, inquirer || wrapper)); + } + async loadController(wrapper, moduleRef, contextId = STATIC_CONTEXT) { + const controllers = moduleRef.controllers; + await this.loadInstance(wrapper, controllers, moduleRef, this.createResolutionContext(contextId, wrapper)); + if (wrapper.isDependencyTreeStatic()) { + return this.loadEnhancers(contextId, wrapper, wrapper.getEnhancersMetadata() || []); + } + await this.loadEnhancersPerContext(wrapper, contextId, wrapper); + } + async loadInjectable(wrapper, moduleRef, contextId = STATIC_CONTEXT, inquirer) { + const injectables = moduleRef.injectables; + await this.loadInstance(wrapper, injectables, moduleRef, this.createResolutionContext(contextId, inquirer)); + } + async loadProvider(wrapper, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }) { + if (this.shouldSkipProviderLoading(wrapper, resolutionContext)) { + if (!resolutionContext.inquirer) { + await this.lookupSkippedProviderDependencies(wrapper, moduleRef); + } + return; + } + const providers = moduleRef.providers; + await this.loadInstance(wrapper, providers, moduleRef, resolutionContext); + if (resolutionContext.contextId === STATIC_CONTEXT && !resolutionContext.inquirer && wrapper.isDependencyTreeStatic()) { + const enhancers = wrapper.getEnhancersMetadata() || []; + return this.loadEnhancers(STATIC_CONTEXT, wrapper, enhancers.filter((item) => item.isTransient)); + } + await this.loadEnhancersPerContext(wrapper, resolutionContext.contextId, wrapper); + } + applySettlementSignal(instancePerContext, host) { + const settlementSignal = new SettlementSignal(); + instancePerContext.donePromise = settlementSignal.asPromise(); + instancePerContext.isPending = true; + host.settlementSignal = settlementSignal; + return settlementSignal; + } + async resolveConstructorParams(wrapper, moduleRef, inject, callback, resolutionContext = { contextId: STATIC_CONTEXT }, parentInquirer) { + const metadata = wrapper.getCtorMetadata(); + if (resolutionContext.contextId !== STATIC_CONTEXT && this.hasDenseCtorMetadata(wrapper, inject, metadata)) { + const deps = await this.loadCtorMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer, parentInquirer); + return callback(deps); + } + const isFactoryProvider2 = !isNil(inject); + const [dependencies, optionalDependenciesIds] = isFactoryProvider2 ? this.getFactoryProviderDependencies(wrapper) : this.getClassDependencies(wrapper); + const paramBarrier = new Barrier(dependencies.length); + let isResolved = true; + let depth = 0; + const resolveParam = /* @__PURE__ */ __name(async (param, index) => { + try { + if (this.isInquirer(param, parentInquirer)) { + paramBarrier.signal(); + return parentInquirer && parentInquirer.instance; + } + if (resolutionContext.inquirer?.isTransient && parentInquirer) { + resolutionContext.rootInquirer = parentInquirer; + } + const nestedResolutionContext = this.getStaticTransientResolutionContext(resolutionContext, parentInquirer); + const paramWrapper = await this.resolveSingleParam(wrapper, param, { index, dependencies }, moduleRef, nestedResolutionContext, index); + await paramBarrier.signalAndWait(); + const effectiveResolutionContext = this.getEffectiveResolutionContext(paramWrapper, resolutionContext, parentInquirer); + const paramWrapperWithInstance = await this.resolveComponentHost(moduleRef, paramWrapper, effectiveResolutionContext); + if (paramWrapperWithInstance.hierarchyLevel > depth) { + depth = paramWrapperWithInstance.hierarchyLevel; + } + const instanceHost = paramWrapperWithInstance.getInstanceByContextId(this.getContextId(effectiveResolutionContext.contextId, paramWrapperWithInstance), effectiveResolutionContext.effectiveInquirerId); + if (!instanceHost.isResolved && !paramWrapperWithInstance.forwardRef) { + isResolved = false; + } + return instanceHost?.instance; + } catch (err) { + paramBarrier.signal(); + const isOptional = optionalDependenciesIds.includes(index); + if (!isOptional) { + throw err; + } + return void 0; + } + }, "resolveParam"); + const instances = await Promise.all(dependencies.map(resolveParam)); + isResolved && await callback(instances, depth); + } + getClassDependencies(wrapper) { + const ctorRef = wrapper.metatype; + return [ + this.reflectConstructorParams(ctorRef), + this.reflectOptionalParams(ctorRef) + ]; + } + getFactoryProviderDependencies(wrapper) { + const optionalDependenciesIds = []; + function isOptionalFactoryDependency(value) { + const token = value?.token; + if (isNil(token)) { + return false; + } + return !isUndefined(value.optional) && !value.prototype; + } + __name(isOptionalFactoryDependency, "isOptionalFactoryDependency"); + const mapFactoryProviderInjectArray = /* @__PURE__ */ __name((item, index) => { + const isWrappedDependency = !isNil(item) && typeof item === "object" && "token" in item; + const token = isWrappedDependency ? item.token : item; + if (isNil(token)) { + throw new UndefinedDependencyException(wrapper.name, { + index, + dependencies: wrapper.inject ?? void 0 + }); + } + if (typeof item !== "object") { + return item; + } + if (isOptionalFactoryDependency(item)) { + if (item.optional) { + optionalDependenciesIds.push(index); + } + return item?.token; + } + return item; + }, "mapFactoryProviderInjectArray"); + const inject = wrapper.inject ?? []; + const dependencies = Array.from(inject, mapFactoryProviderInjectArray); + return [dependencies, optionalDependenciesIds]; + } + reflectConstructorParams(type) { + const paramtypes = [ + ...Reflect.getMetadata(PARAMTYPES_METADATA, type) || [] + ]; + const selfParams = this.reflectSelfParams(type); + selfParams.forEach(({ index, param }) => paramtypes[index] = param); + return Array.from(paramtypes); + } + reflectOptionalParams(type) { + const ctorOwner = this.getConstructorOwner(type); + return Reflect.getOwnMetadata(OPTIONAL_DEPS_METADATA, ctorOwner) || []; + } + /** + * Returns the class in the prototype chain that declares the constructor + * `type` is instantiated with. A subclass without its own constructor + * inherits both the parent's parameter types and its `@Optional()` flags, + * while a subclass that redeclares the constructor must not inherit the + * parent's flags, as its parameters are unrelated to the parent's. + */ + getConstructorOwner(type) { + let current = type; + while (isFunction(current) && current !== Function.prototype) { + if (Reflect.hasOwnMetadata(PARAMTYPES_METADATA, current) || Reflect.hasOwnMetadata(OPTIONAL_DEPS_METADATA, current) || Reflect.hasOwnMetadata(SELF_DECLARED_DEPS_METADATA, current)) { + return current; + } + current = Object.getPrototypeOf(current); + } + return type; + } + reflectSelfParams(type) { + return Reflect.getMetadata(SELF_DECLARED_DEPS_METADATA, type) || []; + } + async resolveSingleParam(wrapper, param, dependencyContext, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) { + if (isUndefined(param)) { + this.logger.log("Nest encountered an undefined dependency. This may be due to a circular import or a missing dependency declaration."); + throw new UndefinedDependencyException(wrapper.name, dependencyContext, moduleRef); + } + const token = this.resolveParamToken(wrapper, param); + return this.resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext, keyOrIndex); + } + resolveParamToken(wrapper, param) { + if (typeof param === "object" && "forwardRef" in param) { + wrapper.forwardRef = true; + return param.forwardRef(); + } + return param; + } + async resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) { + this.printResolvingDependenciesLog(token, resolutionContext.inquirer); + this.printLookingForProviderLog(token, moduleRef); + const providers = moduleRef.providers; + return this.lookupComponent(providers, moduleRef, { ...dependencyContext, name: token }, wrapper, resolutionContext, keyOrIndex); + } + async resolveComponentHost(moduleRef, instanceWrapper, resolutionContext = { contextId: STATIC_CONTEXT }) { + const inquirerId = this.getContextInquirerId(resolutionContext); + const instanceHost = this.getInstanceHost(instanceWrapper, this.getContextId(resolutionContext.contextId, instanceWrapper), inquirerId); + if (!instanceHost.isResolved && !instanceWrapper.forwardRef) { + resolutionContext.inquirer?.settlementSignal?.insertRef(instanceWrapper); + await this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext); + } else if (!instanceHost.isResolved && instanceWrapper.forwardRef && (resolutionContext.contextId !== STATIC_CONTEXT || !!inquirerId)) { + if (instanceHost.donePromise) { + const deferredLoad = instanceHost.donePromise.then((err) => { + if (err) { + throw err; + } + return this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext); + }); + void deferredLoad.catch((err) => { + instanceWrapper.settlementSignal?.error(err); + }); + this.addDeferredLoad(resolutionContext.contextId, deferredLoad); + this.trackDurableDeferredLoad(instanceWrapper, resolutionContext.contextId, deferredLoad); + } else { + resolutionContext.inquirer?.settlementSignal?.insertRef(instanceWrapper); + await this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext); + } + } + if (instanceWrapper.async) { + const host = instanceWrapper.getInstanceByContextId(this.getContextId(resolutionContext.contextId, instanceWrapper), inquirerId); + host.instance = await host.instance; + instanceWrapper.setInstanceByContextId(resolutionContext.contextId, host, inquirerId); + } + this.linkDurableDeferredLoads(instanceWrapper, resolutionContext.contextId, this.getContextId(resolutionContext.contextId, instanceWrapper)); + return instanceWrapper; + } + async lookupComponent(providers, moduleRef, dependencyContext, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) { + const token = wrapper.token || wrapper.name; + const { name } = dependencyContext; + if (wrapper && token === name) { + throw new UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id }); + } + if (name && providers.has(name)) { + const instanceWrapper = providers.get(name); + this.printFoundInModuleLog(name, moduleRef); + this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapper); + return instanceWrapper; + } + return this.lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext, keyOrIndex); + } + async lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) { + const instanceWrapper = await this.lookupComponentInImports(moduleRef, dependencyContext.name, wrapper, /* @__PURE__ */ new Set(), resolutionContext, keyOrIndex); + if (isNil(instanceWrapper)) { + throw new UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id }); + } + return instanceWrapper; + } + async lookupComponentInImports(moduleRef, name, wrapper, moduleRegistry = /* @__PURE__ */ new Set(), resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex, isTraversing) { + let instanceWrapperRef = null; + const imports = moduleRef.imports || /* @__PURE__ */ new Set(); + const identity = /* @__PURE__ */ __name((item) => item, "identity"); + let children = [...imports.values()].filter(identity); + if (isTraversing) { + const contextModuleExports = moduleRef.exports; + children = children.filter((child) => contextModuleExports.has(child.metatype)); + } + for (const relatedModule of children) { + if (moduleRegistry.has(relatedModule.id)) { + continue; + } + this.printLookingForProviderLog(name, relatedModule); + moduleRegistry.add(relatedModule.id); + const { providers, exports } = relatedModule; + if (!exports.has(name) || !providers.has(name)) { + const instanceRef = await this.lookupComponentInImports(relatedModule, name, wrapper, moduleRegistry, resolutionContext, keyOrIndex, true); + if (instanceRef) { + this.addDependencyMetadata(keyOrIndex, wrapper, instanceRef); + return instanceRef; + } + continue; + } + this.printFoundInModuleLog(name, relatedModule); + instanceWrapperRef = providers.get(name); + this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapperRef); + break; + } + return instanceWrapperRef; + } + async resolveProperties(wrapper, moduleRef, inject, resolutionContext = { contextId: STATIC_CONTEXT }, parentInquirer) { + if (!isNil(inject)) { + return []; + } + const metadata = wrapper.getPropertiesMetadata(); + if (resolutionContext.contextId !== STATIC_CONTEXT && this.hasCompletePropertiesMetadata(wrapper, metadata)) { + return this.loadPropertiesMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer, parentInquirer); + } + const properties = this.reflectProperties(wrapper.metatype); + const propertyBarrier = new Barrier(properties.length); + const instances = await Promise.all(properties.map(async (item) => { + try { + const dependencyContext = { + key: item.key, + name: item.name + }; + if (this.isInquirer(item.name, parentInquirer)) { + propertyBarrier.signal(); + return parentInquirer && parentInquirer.instance; + } + const nestedResolutionContext = this.getStaticTransientResolutionContext(resolutionContext, parentInquirer); + const paramWrapper = await this.resolveSingleParam(wrapper, item.name, dependencyContext, moduleRef, nestedResolutionContext, item.key); + await propertyBarrier.signalAndWait(); + const effectivePropertyResolutionContext = this.getEffectiveResolutionContext(paramWrapper, resolutionContext, parentInquirer); + const paramWrapperWithInstance = await this.resolveComponentHost(moduleRef, paramWrapper, effectivePropertyResolutionContext); + if (!paramWrapperWithInstance) { + return void 0; + } + const instanceHost = paramWrapperWithInstance.getInstanceByContextId(this.getContextId(effectivePropertyResolutionContext.contextId, paramWrapperWithInstance), effectivePropertyResolutionContext.effectiveInquirerId); + return instanceHost.instance; + } catch (err) { + propertyBarrier.signal(); + if (!item.isOptional) { + throw err; + } + return void 0; + } + })); + return properties.map((item, index) => ({ + ...item, + instance: instances[index] + })); + } + reflectProperties(type) { + const properties = Reflect.getMetadata(PROPERTY_DEPS_METADATA, type) || []; + const optionalKeys = Reflect.getMetadata(OPTIONAL_PROPERTY_DEPS_METADATA, type) || []; + return properties.map((item) => ({ + ...item, + name: item.type, + isOptional: optionalKeys.includes(item.key) + })); + } + applyProperties(instance, properties) { + if (!isObject(instance)) { + return; + } + (0, import_iterare6.iterate)(properties).filter((item) => !isNil(item.instance)).forEach((item) => instance[item.key] = item.instance); + } + async instantiateClass(instances, wrapper, targetMetatype, resolutionContext = { contextId: STATIC_CONTEXT }) { + const { metatype, inject } = wrapper; + const inquirerId = this.getContextInquirerId(resolutionContext); + const instanceHost = targetMetatype.getInstanceByContextId(this.getContextId(resolutionContext.contextId, targetMetatype), inquirerId); + const isInContext = this.isInContext(wrapper, resolutionContext); + if (this.options?.preview && !wrapper.host?.initOnPreview) { + instanceHost.isResolved = true; + return instanceHost.instance; + } + if (isNil(inject) && isInContext) { + instanceHost.instance = wrapper.forwardRef ? Object.assign(instanceHost.instance, new metatype(...instances)) : new metatype(...instances); + instanceHost.instance = this.instanceDecorator(instanceHost.instance); + instanceHost.isConstructorCalled = true; + } else if (isInContext) { + const factoryReturnValue = targetMetatype.metatype(...instances); + instanceHost.instance = await factoryReturnValue; + instanceHost.instance = this.instanceDecorator(instanceHost.instance); + instanceHost.isConstructorCalled = true; + } + instanceHost.isResolved = true; + return instanceHost.instance; + } + async loadPerContext(instance, moduleRef, collection, ctx, wrapper) { + if (!wrapper) { + const injectionToken = instance.constructor; + wrapper = collection.get(injectionToken) ?? // A class provider registered under a token other than its class + (0, import_iterare6.iterate)(collection.values()).find((item) => !item.isAlias && item.instance === instance); + } else { + wrapper = collection.get(wrapper.token) ?? wrapper; + } + await this.loadInstance(wrapper, collection, moduleRef, this.createResolutionContext(ctx, wrapper)); + await this.loadEnhancersPerContext(wrapper, ctx, wrapper); + await this.waitForDeferredLoads(ctx); + const host = wrapper.getInstanceByContextId(this.getContextId(ctx, wrapper), wrapper.id); + return host && host.instance; + } + /** + * Waits for the loads deferred while resolving the given context (see + * `resolveComponentHost`), including those that the durable instances it + * uses were built with (see `trackDurableDeferredLoad`), and throws if one + * of them failed. A failed load is kept, as instances of the context already + * reference the provider that it failed to instantiate. + */ + async waitForDeferredLoads(contextId) { + const deferredLoads = this.deferredLoads.get(contextId); + if (!deferredLoads) { + return; + } + for (const deferredLoad of deferredLoads) { + await deferredLoad; + deferredLoads.delete(deferredLoad); + } + } + async loadEnhancersPerContext(wrapper, ctx, inquirer, enhancers = wrapper.getEnhancersMetadata() || []) { + if (ctx === STATIC_CONTEXT) { + return; + } + await this.loadEnhancers(ctx, inquirer, enhancers); + } + async loadEnhancers(ctx, inquirer, enhancers) { + const loadEnhancer = /* @__PURE__ */ __name((item) => { + const hostModule = item.host; + return this.loadInstance(item, hostModule.injectables, hostModule, this.createResolutionContext(ctx, inquirer)); + }, "loadEnhancer"); + await Promise.all(enhancers.map(loadEnhancer)); + } + async loadCtorMetadata(metadata, contextId, inquirer, parentInquirer) { + const hosts = await Promise.all(metadata.map(async (item) => this.resolveScopedComponentHost(item, contextId, inquirer, parentInquirer))); + return hosts.map((item, index) => { + const dependency = metadata[index]; + const effectiveInquirerId = this.getEffectiveInquirerId(dependency, this.createResolutionContext(contextId, inquirer), parentInquirer); + return item?.getInstanceByContextId(this.getContextId(contextId, item), effectiveInquirerId).instance; + }); + } + async loadPropertiesMetadata(metadata, contextId, inquirer, parentInquirer) { + const dependenciesHosts = await Promise.all(metadata.map(async ({ wrapper: item, key }) => ({ + key, + host: await this.resolveScopedComponentHost(item, contextId, inquirer, parentInquirer) + }))); + return dependenciesHosts.map(({ key, host }, index) => { + const effectiveInquirerId = this.getEffectiveInquirerId(metadata[index].wrapper, this.createResolutionContext(contextId, inquirer), parentInquirer); + return { + key, + name: key, + instance: host?.getInstanceByContextId(this.getContextId(contextId, host), effectiveInquirerId).instance + }; + }); + } + addDeferredLoad(contextId, deferredLoad) { + if (contextId === STATIC_CONTEXT) { + return; + } + let deferredLoads = this.deferredLoads.get(contextId); + if (!deferredLoads) { + deferredLoads = /* @__PURE__ */ new Set(); + this.deferredLoads.set(contextId, deferredLoads); + } + deferredLoads.add(deferredLoad); + } + /** + * In a durable context (see `ContextIdStrategy`), the dependents built with + * the placeholder of a provider whose load is deferred are shared with the + * next contexts mapped to it, which do not wait for that load. Until it + * settles, the contexts that use them wait for it as well (see + * `linkDurableDeferredLoads`); if it fails, the contexts still waiting for + * one of them fail, and the next one that uses them builds them again (see + * `getInstanceHost`). + */ + trackDurableDeferredLoad(wrapper, contextId, deferredLoad) { + if (this.getContextId(contextId, wrapper) === contextId) { + return; + } + const untrackers = []; + this.forEachDurableDependent(wrapper, contextId, (dependent, hostId) => { + const loadsPerContext = this.durableDeferredLoads.get(dependent) ?? /* @__PURE__ */ new WeakMap(); + const loads = loadsPerContext.get(hostId) ?? /* @__PURE__ */ new Set(); + loads.add(deferredLoad); + loadsPerContext.set(hostId, loads); + this.durableDeferredLoads.set(dependent, loadsPerContext); + untrackers.push(() => { + loads.delete(deferredLoad); + if (loads.size === 0) { + loadsPerContext.delete(hostId); + } + }); + }); + const untrack = /* @__PURE__ */ __name(() => untrackers.forEach((untrackLoad) => untrackLoad()), "untrack"); + deferredLoad.then(untrack, (err) => { + this.forEachDurableDependent(wrapper, contextId, (dependent, hostId) => dependent.getExistingInstancesByContextId(hostId).filter((host) => host.isResolved || host.isPending).forEach((host) => this.failedInstances.set(host, err))); + untrack(); + }); + } + /** + * Adds the running loads that the instance of the wrapper in a durable + * context was built with (see `trackDurableDeferredLoad`) to the loads of + * the given context. + */ + linkDurableDeferredLoads(wrapper, contextId, hostContextId) { + if (hostContextId === contextId) { + return; + } + this.durableDeferredLoads.get(wrapper)?.get(hostContextId)?.forEach((deferredLoad) => this.addDeferredLoad(contextId, deferredLoad)); + } + forEachDurableDependent(wrapper, contextId, callback) { + for (const dependent of wrapper.getDependents()) { + const hostContextId = this.getContextId(contextId, dependent); + if (hostContextId !== contextId) { + callback(dependent, hostContextId); + } + } + } + /** + * Returns the instance of the wrapper for the given context, or a new one + * when it was built with a provider whose deferred load failed (see + * `trackDurableDeferredLoad`), so that it is built again. + */ + getInstanceHost(wrapper, contextId, inquirerId) { + const instanceHost = wrapper.getInstanceByContextId(contextId, inquirerId); + if (!instanceHost.isResolved || !this.failedInstances.has(instanceHost)) { + return instanceHost; + } + wrapper.removeInstanceByContextId(contextId, inquirerId); + return wrapper.getInstanceByContextId(contextId, inquirerId); + } + getInquirerId(inquirer) { + return inquirer ? inquirer.id : void 0; + } + createResolutionContext(contextId, inquirer, effectiveInquirerId, rootInquirer) { + return { + contextId, + inquirer, + effectiveInquirerId, + rootInquirer + }; + } + getContextInquirerId({ inquirer, effectiveInquirerId }) { + return effectiveInquirerId ?? this.getInquirerId(inquirer); + } + isInContext(wrapper, resolutionContext) { + return wrapper.isStatic(resolutionContext.contextId, resolutionContext.inquirer, resolutionContext.rootInquirer) || wrapper.isInRequestScope(resolutionContext.contextId, resolutionContext.inquirer) || wrapper.isLazyTransient(resolutionContext.contextId, resolutionContext.inquirer) || wrapper.isExplicitlyRequested(resolutionContext.contextId, resolutionContext.inquirer); + } + /** + * Request-scoped and transient providers are not created at bootstrap, so + * their dependencies are only looked up here, without creating anything. + * A missing dependency then fails at bootstrap rather than on first use. + * Every lookup is awaited before the first failure is thrown. + */ + async lookupSkippedProviderDependencies(wrapper, moduleRef) { + const isFactoryProvider2 = !isNil(wrapper.inject); + if (!isFactoryProvider2 && !isFunction(wrapper.metatype)) { + return; + } + const [dependencies, optionalDependenciesIds] = isFactoryProvider2 ? this.getFactoryProviderDependencies(wrapper) : this.getClassDependencies(wrapper); + const properties = isFactoryProvider2 ? [] : this.reflectProperties(wrapper.metatype); + const lookup = /* @__PURE__ */ __name(async (param, dependencyContext, keyOrIndex, isOptional) => { + try { + await this.resolveSingleParam(wrapper, param, dependencyContext, moduleRef, { contextId: STATIC_CONTEXT }, keyOrIndex); + } catch (err) { + if (!isOptional) { + throw err; + } + } + }, "lookup"); + const results = await Promise.allSettled([ + ...dependencies.map((param, index) => lookup(param, { index, dependencies }, index, optionalDependenciesIds.includes(index))), + ...properties.map(({ key, name, isOptional }) => lookup(name, { key, name }, key, !!isOptional)) + ]); + const failure = results.find((result) => result.status === "rejected"); + if (failure) { + throw failure.reason; + } + } + shouldSkipProviderLoading(wrapper, resolutionContext) { + const isStaticContext = resolutionContext.contextId === STATIC_CONTEXT; + const hasNoInquirer = !resolutionContext.inquirer; + const isTopLevelStaticTransientOrRequestProvider = hasNoInquirer && (wrapper.isTransient || wrapper.scope === Scope.REQUEST); + const isStaticInquirerOutsideResolutionContext = !!resolutionContext.inquirer && !this.isInContext(resolutionContext.inquirer, this.createResolutionContext(resolutionContext.contextId, resolutionContext.inquirer, void 0, resolutionContext.rootInquirer)); + const shouldSkipForStaticBootstrap = isStaticContext && (isTopLevelStaticTransientOrRequestProvider || isStaticInquirerOutsideResolutionContext); + return shouldSkipForStaticBootstrap; + } + /** + * For nested TRANSIENT dependencies (TRANSIENT -> TRANSIENT) in non-static contexts, + * returns parentInquirer to ensure each parent TRANSIENT gets its own instance. + * This is necessary because in REQUEST/DURABLE scopes, the same TRANSIENT wrapper + * can be used by multiple parents, causing nested TRANSIENTs to be shared incorrectly. + * For non-TRANSIENT -> TRANSIENT, returns inquirer (current wrapper being created). + */ + getEffectiveInquirer(dependency, resolutionContext, parentInquirer) { + const { inquirer, contextId, rootInquirer } = resolutionContext; + if (dependency?.isTransient && inquirer?.isTransient && parentInquirer) { + if (contextId === STATIC_CONTEXT) { + return rootInquirer ?? parentInquirer; + } + return parentInquirer; + } + return inquirer; + } + getEffectiveInquirerId(dependency, resolutionContext, parentInquirer) { + const { contextId, inquirer, effectiveInquirerId } = resolutionContext; + if (contextId === STATIC_CONTEXT && dependency?.isTransient && inquirer?.isTransient && parentInquirer) { + const baseInquirerId = effectiveInquirerId ?? this.getInquirerId(parentInquirer); + return `${baseInquirerId}:${inquirer.id}`; + } + const effectiveInquirer = this.getEffectiveInquirer(dependency, resolutionContext, parentInquirer); + return this.getInquirerId(effectiveInquirer); + } + getStaticTransientResolutionContext(resolutionContext, parentInquirer) { + const { contextId, inquirer, effectiveInquirerId } = resolutionContext; + if (contextId === STATIC_CONTEXT && inquirer?.isTransient && parentInquirer) { + const baseInquirerId = effectiveInquirerId ?? this.getInquirerId(parentInquirer); + return this.createResolutionContext(contextId, inquirer, `${baseInquirerId}:${inquirer.id}`); + } + return resolutionContext; + } + getEffectiveResolutionContext(dependency, resolutionContext, parentInquirer) { + const effectiveInquirer = this.getEffectiveInquirer(dependency, resolutionContext, parentInquirer); + return this.createResolutionContext( + resolutionContext.contextId, + effectiveInquirer, + this.getEffectiveInquirerId(dependency, resolutionContext, parentInquirer), + // The root inquirer is the one of `inquirer` + effectiveInquirer === resolutionContext.inquirer ? resolutionContext.rootInquirer : void 0 + ); + } + hasDenseCtorMetadata(wrapper, inject, metadata) { + if (!metadata) { + return false; + } + const expectedDepsLength = !isNil(inject) ? inject.length : wrapper.metatype ? this.reflectConstructorParams(wrapper.metatype).length : 0; + if (metadata.length !== expectedDepsLength) { + return false; + } + for (let index = 0; index < expectedDepsLength; index++) { + if (metadata[index] === void 0) { + return false; + } + } + return true; + } + hasCompletePropertiesMetadata(wrapper, metadata) { + if (!metadata) { + return false; + } + const properties = wrapper.metatype ? this.reflectProperties(wrapper.metatype) : []; + return properties.every(({ key }) => metadata.some((item) => item.key === key)); + } + resolveScopedComponentHost(item, contextId, inquirer, parentInquirer) { + return this.isInquirerRequest(item, parentInquirer) ? parentInquirer : this.resolveComponentHost(item.host, item, this.getEffectiveResolutionContext(item, this.createResolutionContext(contextId, inquirer), parentInquirer)); + } + isInquirerRequest(item, parentInquirer) { + return item.isTransient && item.name === INQUIRER && parentInquirer; + } + isInquirer(param, parentInquirer) { + return param === INQUIRER && parentInquirer; + } + addDependencyMetadata(keyOrIndex, hostWrapper, instanceWrapper) { + if (isSymbol(keyOrIndex) || isString(keyOrIndex)) { + hostWrapper.addPropertiesMetadata(keyOrIndex, instanceWrapper); + } else { + hostWrapper.addCtorMetadata(keyOrIndex, instanceWrapper); + } + } + getTokenName(token) { + return isFunction(token) ? token.name : token.toString(); + } + printResolvingDependenciesLog(token, inquirer) { + if (!isDebugMode()) { + return; + } + const tokenName = this.getTokenName(token); + const dependentName = (inquirer?.name && inquirer.name.toString?.()) ?? "unknown"; + const isAlias = dependentName === tokenName; + const messageToPrint = `Resolving dependency ${clc.cyanBright(tokenName)}${clc.green(" in the ")}${clc.yellow(dependentName)}${clc.green(` provider ${isAlias ? "(alias)" : ""}`)}`; + this.logger.log(messageToPrint); + } + printLookingForProviderLog(token, moduleRef) { + if (!isDebugMode()) { + return; + } + const tokenName = this.getTokenName(token); + const moduleRefName = moduleRef?.metatype?.name ?? "unknown"; + this.logger.log(`Looking for ${clc.cyanBright(tokenName)}${clc.green(" in ")}${clc.magentaBright(moduleRefName)}`); + } + printFoundInModuleLog(token, moduleRef) { + if (!isDebugMode()) { + return; + } + const tokenName = this.getTokenName(token); + const moduleRefName = moduleRef?.metatype?.name ?? "unknown"; + this.logger.log(`Found ${clc.cyanBright(tokenName)}${clc.green(" in ")}${clc.magentaBright(moduleRefName)}`); + } + getContextId(contextId, instanceWrapper) { + return contextId.getParent ? contextId.getParent({ + token: instanceWrapper.token, + isTreeDurable: instanceWrapper.isDependencyTreeDurable() + }) : contextId; + } + getNowTimestamp() { + return performance2.now(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-links-host.js +var InstanceLinksHost; +var init_instance_links_host = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-links-host.js"() { + init_unknown_element_exception(); + init_internal(); + InstanceLinksHost = class { + static { + __name(this, "InstanceLinksHost"); + } + container; + instanceLinks = /* @__PURE__ */ new Map(); + constructor(container) { + this.container = container; + this.initialize(); + } + get(token, options = {}) { + const instanceLinksForGivenToken = this.instanceLinks.get(token); + if (!instanceLinksForGivenToken) { + throw new UnknownElementException(this.getInstanceNameByToken(token)); + } + if (options.each) { + return instanceLinksForGivenToken; + } + const instanceLink = options.moduleId ? instanceLinksForGivenToken.find((item) => item.moduleId === options.moduleId) : instanceLinksForGivenToken[instanceLinksForGivenToken.length - 1]; + if (!instanceLink) { + throw new UnknownElementException(this.getInstanceNameByToken(token)); + } + return instanceLink; + } + initialize() { + const modules = this.container.getModules(); + modules.forEach((moduleRef) => { + const { providers, injectables, controllers } = moduleRef; + providers.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "providers")); + injectables.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "injectables")); + controllers.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "controllers")); + }); + } + addLink(wrapper, token, moduleRef, collectionName) { + const instanceLink = { + moduleId: moduleRef.id, + wrapperRef: wrapper, + collection: moduleRef[collectionName], + token + }; + const existingLinks = this.instanceLinks.get(token); + if (!existingLinks) { + this.instanceLinks.set(token, [instanceLink]); + } else { + existingLinks.push(instanceLink); + } + } + getInstanceNameByToken(token) { + return isFunction(token) ? token?.name : token; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/deterministic-uuid-registry.js +var DeterministicUuidRegistry; +var init_deterministic_uuid_registry = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/deterministic-uuid-registry.js"() { + DeterministicUuidRegistry = class { + static { + __name(this, "DeterministicUuidRegistry"); + } + static registry = /* @__PURE__ */ new Map(); + static get(str, inc = 0) { + const id = inc ? this.hashCode(`${str}_${inc}`) : this.hashCode(str); + if (this.registry.has(id)) { + return this.get(str, inc + 1); + } + this.registry.set(id, true); + return id; + } + static clear() { + this.registry.clear(); + } + static hashCode(s) { + let h = 0; + for (let i = 0; i < s.length; i++) + h = Math.imul(31, h) + s.charCodeAt(i) | 0; + return h.toString(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/uuid-factory.js +var UuidFactoryMode, UuidFactory; +var init_uuid_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/uuid-factory.js"() { + init_deterministic_uuid_registry(); + init_internal(); + (function(UuidFactoryMode2) { + UuidFactoryMode2["Random"] = "random"; + UuidFactoryMode2["Deterministic"] = "deterministic"; + })(UuidFactoryMode || (UuidFactoryMode = {})); + UuidFactory = class { + static { + __name(this, "UuidFactory"); + } + static _mode = UuidFactoryMode.Random; + static set mode(value) { + this._mode = value; + } + static get(key = "") { + return this._mode === UuidFactoryMode.Deterministic ? DeterministicUuidRegistry.get(key) : randomStringGenerator(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/provider-classifier.js +function isClassProvider(provider) { + return Boolean(provider?.useClass); +} +function isValueProvider(provider) { + const providerValue = provider?.useValue; + return !isUndefined(providerValue); +} +function isFactoryProvider(provider) { + return Boolean(provider.useFactory); +} +var init_provider_classifier = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/provider-classifier.js"() { + init_internal(); + __name(isClassProvider, "isClassProvider"); + __name(isValueProvider, "isValueProvider"); + __name(isFactoryProvider, "isFactoryProvider"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-wrapper.js +var import_iterare7, INSTANCE_METADATA_SYMBOL, INSTANCE_ID_SYMBOL, dependencyTreeParents, InstanceWrapper; +var init_instance_wrapper = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-wrapper.js"() { + init_common(); + init_internal(); + import_iterare7 = __toESM(require_lib(), 1); + init_class_ref_registry(); + init_get_class_scope(); + init_is_durable(); + init_uuid_factory(); + init_constants3(); + init_is_debug_mode_util(); + init_provider_classifier(); + INSTANCE_METADATA_SYMBOL = /* @__PURE__ */ Symbol.for("instance_metadata:cache"); + INSTANCE_ID_SYMBOL = /* @__PURE__ */ Symbol.for("instance_metadata:id"); + dependencyTreeParents = /* @__PURE__ */ new WeakMap(); + InstanceWrapper = class _InstanceWrapper { + static { + __name(this, "InstanceWrapper"); + } + name; + token; + async; + host; + isAlias = false; + subtype; + scope = Scope.DEFAULT; + metatype; + inject; + forwardRef; + durable; + initTime; + settlementSignal; + static logger = new Logger(_InstanceWrapper.name); + values = /* @__PURE__ */ new WeakMap(); + [INSTANCE_METADATA_SYMBOL] = {}; + [INSTANCE_ID_SYMBOL]; + transientMap; + isTreeStatic; + isTreeDurable; + _hierarchyLevel = 0; + get hierarchyLevel() { + return this._hierarchyLevel; + } + set hierarchyLevel(level) { + this._hierarchyLevel = level; + } + /** + * The root inquirer reference. Present only if child instance wrapper + * is transient and has a parent inquirer. + */ + rootInquirer; + constructor(metadata = {}) { + this.initialize(metadata); + if (this.isNewable()) { + registerClassRef(this.metatype); + } + this[INSTANCE_ID_SYMBOL] = metadata[INSTANCE_ID_SYMBOL] ?? this.generateUuid(); + } + get id() { + return this[INSTANCE_ID_SYMBOL]; + } + set instance(value) { + this.values.set(STATIC_CONTEXT, { instance: value }); + } + get instance() { + const instancePerContext = this.getInstanceByContextId(STATIC_CONTEXT); + return instancePerContext.instance; + } + get isNotMetatype() { + return !this.metatype || this.isFactory; + } + get isFactory() { + return !!this.metatype && !isNil(this.inject); + } + get isTransient() { + return this.scope === Scope.TRANSIENT; + } + getInstanceByContextId(contextId, inquirerId) { + if (this.scope === Scope.TRANSIENT && inquirerId) { + return this.getInstanceByInquirerId(contextId, inquirerId); + } + const instancePerContext = this.values.get(contextId); + return instancePerContext ? instancePerContext : contextId !== STATIC_CONTEXT ? this.cloneStaticInstance(contextId) : { + instance: null, + isResolved: true, + isPending: false + }; + } + getInstanceByInquirerId(contextId, inquirerId) { + let collectionPerContext = this.transientMap.get(inquirerId); + if (!collectionPerContext) { + collectionPerContext = /* @__PURE__ */ new WeakMap(); + this.transientMap.set(inquirerId, collectionPerContext); + } + const instancePerContext = collectionPerContext.get(contextId); + return instancePerContext ? instancePerContext : this.cloneTransientInstance(contextId, inquirerId); + } + setInstanceByContextId(contextId, value, inquirerId) { + if (this.scope === Scope.TRANSIENT && inquirerId) { + return this.setInstanceByInquirerId(contextId, inquirerId, value); + } + this.values.set(contextId, value); + } + setInstanceByInquirerId(contextId, inquirerId, value) { + let collection = this.transientMap.get(inquirerId); + if (!collection) { + collection = /* @__PURE__ */ new WeakMap(); + this.transientMap.set(inquirerId, collection); + } + collection.set(contextId, value); + } + removeInstanceByContextId(contextId, inquirerId) { + if (this.scope === Scope.TRANSIENT && inquirerId) { + return this.removeInstanceByInquirerId(contextId, inquirerId); + } + this.values.delete(contextId); + } + removeInstanceByInquirerId(contextId, inquirerId) { + const collection = this.transientMap.get(inquirerId); + if (!collection) { + return; + } + collection.delete(contextId); + } + /** + * Returns the instances that exist for the given context, including those + * of every inquirer of a transient provider. Unlike `getInstanceByContextId`, + * it does not create one. + */ + getExistingInstancesByContextId(contextId) { + const collections = [this.values, ...this.transientMap?.values() ?? []]; + return collections.map((collection) => collection.get(contextId)).filter((instancePerContext) => !isUndefined(instancePerContext)); + } + addCtorMetadata(index, wrapper) { + if (!this[INSTANCE_METADATA_SYMBOL].dependencies) { + this[INSTANCE_METADATA_SYMBOL].dependencies = []; + } + this[INSTANCE_METADATA_SYMBOL].dependencies[index] = wrapper; + this.registerDependencyTreeParent(wrapper); + this.resetDependencyTreeState(); + } + getCtorMetadata() { + return this[INSTANCE_METADATA_SYMBOL].dependencies; + } + addPropertiesMetadata(key, wrapper) { + if (!this[INSTANCE_METADATA_SYMBOL].properties) { + this[INSTANCE_METADATA_SYMBOL].properties = []; + } + const properties = this[INSTANCE_METADATA_SYMBOL].properties; + const index = properties.findIndex((item) => item.key === key); + if (index === -1) { + properties.push({ key, wrapper }); + } else { + properties[index] = { key, wrapper }; + } + this.registerDependencyTreeParent(wrapper); + this.resetDependencyTreeState(); + } + getPropertiesMetadata() { + return this[INSTANCE_METADATA_SYMBOL].properties; + } + addEnhancerMetadata(wrapper) { + if (!this[INSTANCE_METADATA_SYMBOL].enhancers) { + this[INSTANCE_METADATA_SYMBOL].enhancers = []; + } + this[INSTANCE_METADATA_SYMBOL].enhancers.push(wrapper); + this.registerDependencyTreeParent(wrapper); + this.resetDependencyTreeState(); + } + getEnhancersMetadata() { + return this[INSTANCE_METADATA_SYMBOL].enhancers; + } + isDependencyTreeDurable(lookupRegistry = []) { + if (!isUndefined(this.isTreeDurable)) { + return this.isTreeDurable; + } + if (this.scope === Scope.REQUEST) { + this.isTreeDurable = this.durable === void 0 ? false : this.durable; + if (this.isTreeDurable) { + this.printIntrospectedAsDurable(); + } + return this.isTreeDurable; + } + const isStatic = this.isDependencyTreeStatic(); + if (isStatic) { + return false; + } + const isTreeNonDurable = this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic() && !item.isDependencyTreeDurable(registry)), lookupRegistry); + this.isTreeDurable = !isTreeNonDurable; + if (this.isTreeDurable) { + this.printIntrospectedAsDurable(); + } else { + this.invalidateDependencyTreeParents("isTreeDurable"); + } + return this.isTreeDurable; + } + introspectDepsAttribute(callback, lookupRegistry = []) { + if (lookupRegistry.includes(this[INSTANCE_ID_SYMBOL])) { + return false; + } + lookupRegistry = lookupRegistry.concat(this[INSTANCE_ID_SYMBOL]); + const { dependencies, properties, enhancers } = this[INSTANCE_METADATA_SYMBOL]; + let introspectionResult = dependencies ? callback(dependencies, lookupRegistry) : false; + if (introspectionResult || !(properties || enhancers)) { + return introspectionResult; + } + introspectionResult = properties ? callback(properties.map((item) => item.wrapper), lookupRegistry) : false; + if (introspectionResult || !enhancers) { + return introspectionResult; + } + return enhancers ? callback(enhancers, lookupRegistry) : false; + } + isDependencyTreeStatic(lookupRegistry = []) { + if (!isUndefined(this.isTreeStatic)) { + return this.isTreeStatic; + } + if (this.scope === Scope.REQUEST) { + this.isTreeStatic = false; + this.printIntrospectedAsRequestScoped(); + return this.isTreeStatic; + } + this.isTreeStatic = !this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic(registry)), lookupRegistry); + if (!this.isTreeStatic) { + this.printIntrospectedAsRequestScoped(); + this.invalidateDependencyTreeParents("isTreeStatic"); + } + return this.isTreeStatic; + } + cloneStaticInstance(contextId) { + const staticInstance = this.getInstanceByContextId(STATIC_CONTEXT); + if (this.isDependencyTreeStatic()) { + return staticInstance; + } + const instancePerContext = { + ...staticInstance, + instance: void 0, + isResolved: false, + isPending: false + }; + if (this.isNewable()) { + instancePerContext.instance = Object.create(this.metatype.prototype); + } + this.setInstanceByContextId(contextId, instancePerContext); + return instancePerContext; + } + cloneTransientInstance(contextId, inquirerId) { + const staticInstance = this.getInstanceByContextId(STATIC_CONTEXT); + const instancePerContext = { + ...staticInstance, + instance: void 0, + isResolved: false, + isPending: false + }; + if (this.isNewable()) { + instancePerContext.instance = Object.create(this.metatype.prototype); + } + this.setInstanceByInquirerId(contextId, inquirerId, instancePerContext); + return instancePerContext; + } + createPrototype(contextId) { + const host = this.getInstanceByContextId(contextId); + if (!this.isNewable() || host.isResolved) { + return; + } + return Object.create(this.metatype.prototype); + } + isInRequestScope(contextId, inquirer) { + const isDependencyTreeStatic = this.isDependencyTreeStatic(); + return !isDependencyTreeStatic && contextId !== STATIC_CONTEXT && (!this.isTransient || this.isTransient && !!inquirer); + } + isLazyTransient(contextId, inquirer) { + const isInquirerRequestScoped = !!(inquirer && !inquirer.isDependencyTreeStatic()); + return this.isDependencyTreeStatic() && contextId !== STATIC_CONTEXT && this.isTransient && isInquirerRequestScoped; + } + isExplicitlyRequested(contextId, inquirer) { + const isSelfRequested = inquirer === this; + return this.isDependencyTreeStatic() && contextId !== STATIC_CONTEXT && (isSelfRequested || !!(inquirer && inquirer.scope === Scope.TRANSIENT)); + } + isStatic(contextId, inquirer, rootInquirer) { + if (!this.isDependencyTreeStatic() || contextId !== STATIC_CONTEXT) { + return false; + } + if (!this.isTransient) { + return true; + } + const isInquirerRequestScoped = inquirer && !inquirer.isDependencyTreeStatic(); + const isStaticTransient = this.isTransient && !isInquirerRequestScoped; + if (isStaticTransient && inquirer && !inquirer.isTransient) { + return true; + } + if (isStaticTransient && rootInquirer && !rootInquirer.isTransient) { + return true; + } + if (isStaticTransient && inquirer?.isTransient && !rootInquirer) { + return true; + } + return false; + } + detachFromDependencies() { + this.getDependencyWrappers().forEach((dependency) => { + dependencyTreeParents.get(dependency)?.delete(this); + dependency.removeTransientInstancesOf(this); + }); + } + /** + * Returns the wrappers that depend on this one, directly or through other + * wrappers (as a constructor, property or enhancer dependency). + */ + getDependents() { + const dependents = /* @__PURE__ */ new Set(); + const wrappers = [this]; + while (wrappers.length > 0) { + dependencyTreeParents.get(wrappers.pop())?.forEach((parent) => { + if (!dependents.has(parent)) { + dependents.add(parent); + wrappers.push(parent); + } + }); + } + return dependents; + } + /** + * @deprecated The injector no longer reads the root inquirer from the + * wrapper (see `isStatic`), as it may be overwritten by a concurrent + * resolution for another consumer. + */ + attachRootInquirer(inquirer) { + if (!this.isTransient) { + return; + } + this.rootInquirer = inquirer.getRootInquirer() ?? inquirer; + } + /** + * @deprecated The injector no longer reads the root inquirer from the + * wrapper (see `isStatic`), as it may be overwritten by a concurrent + * resolution for another consumer. + */ + getRootInquirer() { + return this.rootInquirer; + } + getStaticTransientInstances() { + if (!this.transientMap) { + return []; + } + const instances = [...this.transientMap.values()]; + return (0, import_iterare7.iterate)(instances).map((item) => item.get(STATIC_CONTEXT)).filter((item) => { + return !!(item && item.isConstructorCalled); + }).toArray(); + } + mergeWith(provider) { + if (isValueProvider(provider)) { + this.metatype = null; + this.inject = null; + this.scope = Scope.DEFAULT; + this.setInstanceByContextId(STATIC_CONTEXT, { + instance: provider.useValue, + isResolved: true, + isPending: false + }); + } else if (isClassProvider(provider)) { + this.inject = null; + this.metatype = provider.useClass; + registerClassRef(provider.useClass); + this.scope = getClassScope(provider.useClass) ?? Scope.DEFAULT; + this.durable = isDurable(provider.useClass); + if (this.scope === Scope.TRANSIENT && !this.transientMap) { + this.transientMap = /* @__PURE__ */ new Map(); + } + this.resetStaticInstance(); + } else if (isFactoryProvider(provider)) { + this.metatype = provider.useFactory; + this.inject = provider.inject || []; + this.resetStaticInstance(); + } + this.resetDependencyTreeState(); + } + resetStaticInstance() { + this.setInstanceByContextId(STATIC_CONTEXT, { + instance: null, + isResolved: false, + isPending: false + }); + } + isNewable() { + return isNil(this.inject) && this.metatype && this.metatype.prototype; + } + registerDependencyTreeParent(wrapper) { + if (wrapper instanceof _InstanceWrapper) { + const parents = dependencyTreeParents.get(wrapper) ?? /* @__PURE__ */ new Set(); + parents.add(this); + dependencyTreeParents.set(wrapper, parents); + } + } + getDependencyWrappers() { + const { dependencies = [], properties = [] } = this[INSTANCE_METADATA_SYMBOL]; + return [ + ...dependencies, + ...properties.map(({ wrapper }) => wrapper) + ].filter((dependency) => dependency instanceof _InstanceWrapper); + } + removeTransientInstancesOf(inquirer) { + if (!this.transientMap) { + return; + } + for (const inquirerId of this.transientMap.keys()) { + if (inquirerId === inquirer.id || inquirerId.startsWith(`${inquirer.id}:`)) { + this.transientMap.delete(inquirerId); + } + } + this.getDependencyWrappers().forEach((dependency) => dependency.removeTransientInstancesOf(inquirer)); + } + resetDependencyTreeState(lookupRegistry = /* @__PURE__ */ new Set()) { + if (lookupRegistry.has(this[INSTANCE_ID_SYMBOL])) { + return; + } + lookupRegistry.add(this[INSTANCE_ID_SYMBOL]); + this.isTreeStatic = void 0; + this.isTreeDurable = void 0; + dependencyTreeParents.get(this)?.forEach((parent) => parent.resetDependencyTreeState(lookupRegistry)); + } + /** + * In a circular dependency, the introspection skips a wrapper that is + * already being introspected, so the parents in between may cache `true` + * before that wrapper turns out not to be static (or durable). Clears what + * they cached, so it is computed again with the final answer. + */ + invalidateDependencyTreeParents(attribute) { + dependencyTreeParents.get(this)?.forEach((parent) => { + if (parent[attribute]) { + parent[attribute] = void 0; + parent.invalidateDependencyTreeParents(attribute); + } + }); + } + initialize(metadata) { + const { instance, isResolved, ...wrapperPartial } = metadata; + Object.assign(this, wrapperPartial); + this.setInstanceByContextId(STATIC_CONTEXT, { + instance, + isResolved + }); + this.scope === Scope.TRANSIENT && (this.transientMap = /* @__PURE__ */ new Map()); + } + printIntrospectedAsRequestScoped() { + if (!isDebugMode() || this.name === "REQUEST") { + return; + } + if (isString(this.name)) { + _InstanceWrapper.logger.log(`${clc.cyanBright(this.name)}${clc.green(" introspected as ")}${clc.magentaBright("request-scoped")}`); + } + } + printIntrospectedAsDurable() { + if (!isDebugMode()) { + return; + } + if (isString(this.name)) { + _InstanceWrapper.logger.log(`${clc.cyanBright(this.name)}${clc.green(" introspected as ")}${clc.magentaBright("durable")}`); + } + } + generateUuid() { + let key = this.name?.toString() ?? this.token?.toString(); + key += this.host?.name ?? ""; + return key ? UuidFactory.get(key) : randomStringGenerator(); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module-ref.js +var ModuleRef; +var init_module_ref = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module-ref.js"() { + init_common(); + init_request_scoped_create_exception(); + init_get_class_scope(); + init_is_durable(); + init_abstract_instance_resolver(); + init_constants3(); + init_injector(); + init_instance_links_host(); + init_instance_wrapper(); + ModuleRef = class extends AbstractInstanceResolver { + static { + __name(this, "ModuleRef"); + } + container; + injector; + _instanceLinksHost; + get instanceLinksHost() { + if (!this._instanceLinksHost) { + this._instanceLinksHost = new InstanceLinksHost(this.container); + } + return this._instanceLinksHost; + } + constructor(container) { + super(); + this.container = container; + const contextOptions = container.contextOptions; + this.injector = new Injector({ + preview: contextOptions?.preview ?? false, + snapshot: contextOptions?.snapshot, + instanceDecorator: contextOptions?.instrument?.instanceDecorator + }); + } + introspect(token) { + const { wrapperRef } = this.instanceLinksHost.get(token); + let scope = Scope.DEFAULT; + if (!wrapperRef.isDependencyTreeStatic()) { + scope = Scope.REQUEST; + } else if (wrapperRef.isTransient) { + scope = Scope.TRANSIENT; + } + return { scope }; + } + registerRequestByContextId(request, contextId) { + this.container.registerRequestProvider(request, contextId); + } + async instantiateClass(type, moduleRef, contextId) { + const wrapper = new InstanceWrapper({ + name: type && type.name, + metatype: type, + isResolved: false, + scope: getClassScope(type), + durable: isDurable(type), + host: moduleRef + }); + if (type?.prototype) { + wrapper.setInstanceByContextId(contextId ?? STATIC_CONTEXT, { + instance: Object.create(type.prototype), + isResolved: false, + isPending: false + }); + } + return new Promise((resolve, reject) => { + let isCreated = false; + const loadInstance = /* @__PURE__ */ __name(async () => { + const callback = /* @__PURE__ */ __name(async (instances) => { + const properties = await this.injector.resolveProperties(wrapper, moduleRef, void 0, { + contextId: contextId ?? STATIC_CONTEXT, + inquirer: wrapper + }); + await this.injector.waitForDeferredLoads(contextId ?? STATIC_CONTEXT); + const instance = new type(...instances); + this.injector.applyProperties(instance, properties); + isCreated = true; + resolve(instance); + }, "callback"); + await this.injector.resolveConstructorParams(wrapper, moduleRef, void 0, callback, { + contextId: contextId ?? STATIC_CONTEXT, + inquirer: wrapper + }); + if (!isCreated) { + reject(new RequestScopedCreateException(type.name)); + } + }, "loadInstance"); + void loadInstance().catch(reject); + }).finally(() => wrapper.detachFromDependencies()); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.js +var LazyModuleLoader; +var init_lazy_module_loader = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.js"() { + init_silent_logger(); + init_module_ref(); + LazyModuleLoader = class { + static { + __name(this, "LazyModuleLoader"); + } + dependenciesScanner; + instanceLoader; + moduleCompiler; + modulesContainer; + moduleOverrides; + constructor(dependenciesScanner, instanceLoader, moduleCompiler, modulesContainer, moduleOverrides) { + this.dependenciesScanner = dependenciesScanner; + this.instanceLoader = instanceLoader; + this.moduleCompiler = moduleCompiler; + this.modulesContainer = modulesContainer; + this.moduleOverrides = moduleOverrides; + } + async load(loaderFn, loadOpts) { + const originalLogger = this.instanceLoader.logger; + try { + this.registerLoggerConfiguration(loadOpts); + const moduleClassOrDynamicDefinition = await loaderFn(); + const moduleInstances = await this.dependenciesScanner.scanForModules({ + moduleDefinition: moduleClassOrDynamicDefinition, + overrides: this.moduleOverrides, + lazy: true + }); + if (moduleInstances.length === 0) { + const { token } = await this.moduleCompiler.compile(moduleClassOrDynamicDefinition); + const moduleInstance = this.modulesContainer.get(token); + return moduleInstance && this.getTargetModuleRef(moduleInstance); + } + const lazyModulesContainer = this.createLazyModulesContainer(moduleInstances); + await this.dependenciesScanner.scanModulesForDependencies(lazyModulesContainer); + await this.instanceLoader.createInstancesOfDependencies(lazyModulesContainer); + const [targetModule] = moduleInstances; + return this.getTargetModuleRef(targetModule); + } finally { + if (loadOpts?.logger === false) { + this.instanceLoader.setLogger(originalLogger); + } + } + } + registerLoggerConfiguration(loadOpts) { + if (loadOpts?.logger === false) { + this.instanceLoader.setLogger(new SilentLogger()); + } + } + createLazyModulesContainer(moduleInstances) { + moduleInstances = Array.from(new Set(moduleInstances)); + return new Map(moduleInstances.map((ref) => [ref.token, ref])); + } + getTargetModuleRef(moduleInstance) { + const moduleRefInstanceWrapper = moduleInstance.getProviderByKey(ModuleRef); + return moduleRefInstanceWrapper.instance; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/reflector.service.js +var Reflector; +var init_reflector_service = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/reflector.service.js"() { + init_common(); + init_dist(); + init_internal(); + Reflector = class { + static { + __name(this, "Reflector"); + } + static createDecorator(options = {}) { + const metadataKey = options.key ?? uid(21); + const decoratorFn = /* @__PURE__ */ __name((metadataValue) => (target, key, descriptor) => { + const value = options.transform ? options.transform(metadataValue) : metadataValue; + SetMetadata(metadataKey, value === void 0 ? {} : value)(target, key, descriptor); + }, "decoratorFn"); + decoratorFn.KEY = metadataKey; + return decoratorFn; + } + /** + * Retrieve metadata for a specified key or decorator for a specified target. + * + * @example + * `const roles = this.reflector.get('roles', context.getHandler());` + * + * @param metadataKey lookup key or decorator for metadata to retrieve + * @param target context (decorated object) to retrieve metadata from + * + */ + get(metadataKeyOrDecorator, target) { + const metadataKey = metadataKeyOrDecorator.KEY ?? metadataKeyOrDecorator; + return Reflect.getMetadata(metadataKey, target); + } + /** + * Retrieve metadata for a specified key or decorator for a specified set of targets. + * + * @param metadataKeyOrDecorator lookup key or decorator for metadata to retrieve + * @param targets context (decorated objects) to retrieve metadata from + * + */ + getAll(metadataKeyOrDecorator, targets) { + return (targets || []).map((target) => this.get(metadataKeyOrDecorator, target)); + } + /** + * Retrieve metadata for a specified key or decorator for a specified set of targets and merge results. + * + * @param metadataKeyOrDecorator lookup key for metadata to retrieve + * @param targets context (decorated objects) to retrieve metadata from + * + */ + getAllAndMerge(metadataKeyOrDecorator, targets) { + const metadataCollection = this.getAll(metadataKeyOrDecorator, targets).filter((item) => item !== void 0); + if (isEmptyArray(metadataCollection)) { + return metadataCollection; + } + if (metadataCollection.length === 1) { + const value = metadataCollection[0]; + if (isObject(value)) { + return value; + } + return metadataCollection; + } + return metadataCollection.reduce((a, b) => { + if (Array.isArray(a)) { + return a.concat(b); + } + if (isObject(a) && isObject(b)) { + return { + ...a, + ...b + }; + } + return [a, b]; + }); + } + /** + * Retrieve metadata for a specified key or decorator for a specified set of targets and return a first not undefined value. + * + * @param metadataKeyOrDecorator lookup key or metadata for metadata to retrieve + * @param targets context (decorated objects) to retrieve metadata from + * + */ + getAllAndOverride(metadataKeyOrDecorator, targets) { + for (const target of targets) { + const result = this.get(metadataKeyOrDecorator, target); + if (result !== void 0) { + return result; + } + } + return void 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/serialized-graph.js +var SerializedGraph; +var init_serialized_graph = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/serialized-graph.js"() { + init_application_config(); + init_external_context_creator(); + init_http_adapter_host(); + init_inquirer_constants(); + init_lazy_module_loader(); + init_module_ref(); + init_modules_container(); + init_request_constants(); + init_reflector_service(); + init_deterministic_uuid_registry(); + SerializedGraph = class _SerializedGraph { + static { + __name(this, "SerializedGraph"); + } + nodes = /* @__PURE__ */ new Map(); + edges = /* @__PURE__ */ new Map(); + entrypoints = /* @__PURE__ */ new Map(); + extras = { + orphanedEnhancers: [], + attachedEnhancers: [] + }; + _status = "complete"; + _metadata; + static INTERNAL_PROVIDERS = [ + ApplicationConfig, + ModuleRef, + HttpAdapterHost, + LazyModuleLoader, + ExternalContextCreator, + ModulesContainer, + Reflector, + _SerializedGraph, + HttpAdapterHost.name, + Reflector.name, + REQUEST, + INQUIRER + ]; + set status(status) { + this._status = status; + } + set metadata(metadata) { + this._metadata = metadata; + } + insertNode(nodeDefinition) { + if (nodeDefinition.metadata.type === "provider" && _SerializedGraph.INTERNAL_PROVIDERS.includes(nodeDefinition.metadata.token)) { + nodeDefinition.metadata = { + ...nodeDefinition.metadata, + internal: true + }; + } + if (this.nodes.has(nodeDefinition.id)) { + return this.nodes.get(nodeDefinition.id); + } + this.nodes.set(nodeDefinition.id, nodeDefinition); + return nodeDefinition; + } + insertEdge(edgeDefinition) { + if (edgeDefinition.metadata.type === "class-to-class" && (_SerializedGraph.INTERNAL_PROVIDERS.includes(edgeDefinition.metadata.sourceClassToken) || _SerializedGraph.INTERNAL_PROVIDERS.includes(edgeDefinition.metadata.targetClassToken))) { + edgeDefinition.metadata = { + ...edgeDefinition.metadata, + internal: true + }; + } + const id = edgeDefinition.id ?? this.generateUuidByEdgeDefinition(edgeDefinition); + const edge = { + ...edgeDefinition, + id + }; + this.edges.set(id, edge); + return edge; + } + insertEntrypoint(definition, parentId) { + if (this.entrypoints.has(parentId)) { + const existingCollection = this.entrypoints.get(parentId); + existingCollection.push(definition); + } else { + this.entrypoints.set(parentId, [definition]); + } + } + insertOrphanedEnhancer(entry) { + this.extras.orphanedEnhancers.push(entry); + } + insertAttachedEnhancer(nodeId) { + this.extras.attachedEnhancers.push({ + nodeId + }); + } + getNodeById(id) { + return this.nodes.get(id); + } + toJSON() { + const json = { + nodes: Object.fromEntries(this.nodes), + edges: Object.fromEntries(this.edges), + entrypoints: Object.fromEntries(this.entrypoints), + extras: this.extras + }; + if (this._status) { + json["status"] = this._status; + } + if (this._metadata) { + json["metadata"] = this._metadata; + } + return json; + } + toString() { + const replacer = /* @__PURE__ */ __name((key, value) => { + if (typeof value === "symbol") { + return value.toString(); + } + return typeof value === "function" ? value.name ?? "Function" : value; + }, "replacer"); + return JSON.stringify(this.toJSON(), replacer, 2); + } + generateUuidByEdgeDefinition(edgeDefinition) { + return DeterministicUuidRegistry.get(JSON.stringify(edgeDefinition)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/compiler.js +var ModuleCompiler; +var init_compiler = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/compiler.js"() { + ModuleCompiler = class { + static { + __name(this, "ModuleCompiler"); + } + _moduleOpaqueKeyFactory; + constructor(_moduleOpaqueKeyFactory) { + this._moduleOpaqueKeyFactory = _moduleOpaqueKeyFactory; + } + get moduleOpaqueKeyFactory() { + return this._moduleOpaqueKeyFactory; + } + async compile(moduleClsOrDynamic) { + moduleClsOrDynamic = await moduleClsOrDynamic; + const { type, dynamicMetadata } = this.extractMetadata(moduleClsOrDynamic); + const token = dynamicMetadata ? this._moduleOpaqueKeyFactory.createForDynamic(type, dynamicMetadata, moduleClsOrDynamic) : this._moduleOpaqueKeyFactory.createForStatic(type, moduleClsOrDynamic); + return { type, dynamicMetadata, token }; + } + extractMetadata(moduleClsOrDynamic) { + if (!this.isDynamicModule(moduleClsOrDynamic)) { + return { + type: moduleClsOrDynamic?.forwardRef ? moduleClsOrDynamic.forwardRef() : moduleClsOrDynamic, + dynamicMetadata: void 0 + }; + } + const { module: type, ...dynamicMetadata } = moduleClsOrDynamic; + return { type, dynamicMetadata }; + } + isDynamicModule(moduleClsOrDynamic) { + return !!moduleClsOrDynamic.module; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-providers.js +var noop2, requestProvider; +var init_request_providers = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-providers.js"() { + init_common(); + init_request_constants(); + noop2 = /* @__PURE__ */ __name(() => { + }, "noop"); + requestProvider = { + provide: REQUEST, + scope: Scope.REQUEST, + useFactory: noop2 + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/index.js +var init_services = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/index.js"() { + init_reflector_service(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-providers.js +var noop3, inquirerProvider; +var init_inquirer_providers = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-providers.js"() { + init_common(); + init_inquirer_constants(); + noop3 = /* @__PURE__ */ __name(() => { + }, "noop"); + inquirerProvider = { + provide: INQUIRER, + scope: Scope.TRANSIENT, + useFactory: noop3 + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module.js +var InternalCoreModule_1, ReflectorAliasProvider, InternalCoreModule; +var init_internal_core_module = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module.js"() { + init_tslib_es6(); + init_common(); + init_request_providers(); + init_services(); + init_inquirer_providers(); + ReflectorAliasProvider = { + provide: Reflector.name, + useExisting: Reflector + }; + InternalCoreModule = InternalCoreModule_1 = class InternalCoreModule2 { + static { + __name(this, "InternalCoreModule"); + } + static register(providers) { + return { + module: InternalCoreModule_1, + providers: [...providers], + exports: [...providers.map((item) => item.provide)] + }; + } + }; + InternalCoreModule = InternalCoreModule_1 = __decorate([ + Global(), + Module({ + providers: [ + Reflector, + ReflectorAliasProvider, + requestProvider, + inquirerProvider + ], + exports: [ + Reflector, + ReflectorAliasProvider, + requestProvider, + inquirerProvider + ] + }) + ], InternalCoreModule); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-providers-storage.js +var InternalProvidersStorage; +var init_internal_providers_storage = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-providers-storage.js"() { + init_http_adapter_host(); + InternalProvidersStorage = class { + static { + __name(this, "InternalProvidersStorage"); + } + _httpAdapterHost = new HttpAdapterHost(); + _httpAdapter; + get httpAdapterHost() { + return this._httpAdapterHost; + } + get httpAdapter() { + return this._httpAdapter; + } + set httpAdapter(httpAdapter) { + this._httpAdapter = httpAdapter; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-provider.exception.js +var InvalidProviderException; +var init_invalid_provider_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-provider.exception.js"() { + init_messages(); + init_runtime_exception(); + InvalidProviderException = class extends RuntimeException { + static { + __name(this, "InvalidProviderException"); + } + constructor(token, moduleName) { + super(INVALID_PROVIDER_MESSAGE(token, moduleName)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module.js +var import_iterare8, Module2; +var init_module = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module.js"() { + import_iterare8 = __toESM(require_lib(), 1); + init_application_config(); + init_exceptions2(); + init_invalid_provider_exception(); + init_context_id_factory(); + init_get_class_scope(); + init_is_durable(); + init_safe_instance_decorator(); + init_uuid_factory(); + init_constants3(); + init_instance_wrapper(); + init_module_ref(); + init_internal(); + init_common(); + Module2 = class { + static { + __name(this, "Module"); + } + _metatype; + container; + _id; + _imports = /* @__PURE__ */ new Set(); + _providers = /* @__PURE__ */ new Map(); + _injectables = /* @__PURE__ */ new Map(); + _middlewares = /* @__PURE__ */ new Map(); + _controllers = /* @__PURE__ */ new Map(); + _entryProviderKeys = /* @__PURE__ */ new Set(); + _exports = /* @__PURE__ */ new Set(); + _distance = 0; + _initOnPreview = false; + _isGlobal = false; + _token; + constructor(_metatype, container) { + this._metatype = _metatype; + this.container = container; + this.addCoreProviders(); + this._id = this.generateUuid(); + } + get id() { + return this._id; + } + get token() { + return this._token; + } + set token(token) { + this._token = token; + } + get name() { + return this.metatype.name; + } + get isGlobal() { + return this._isGlobal; + } + set isGlobal(global2) { + this._isGlobal = global2; + } + get initOnPreview() { + return this._initOnPreview; + } + set initOnPreview(initOnPreview) { + this._initOnPreview = initOnPreview; + } + get providers() { + return this._providers; + } + get middlewares() { + return this._middlewares; + } + get imports() { + return this._imports; + } + get injectables() { + return this._injectables; + } + get controllers() { + return this._controllers; + } + get entryProviders() { + return Array.from(this._entryProviderKeys).map((token) => this.providers.get(token)); + } + get exports() { + return this._exports; + } + get instance() { + if (!this._providers.has(this._metatype)) { + throw new RuntimeException(); + } + const moduleRef = this._providers.get(this._metatype); + return moduleRef.instance; + } + /** + * Modules are registered in the container before they are scanned (dynamic + * `imports` are pre-registered by `NestContainer#addDynamicMetadata`), so + * registration alone does not imply the module was ever instantiated. + */ + get isInstantiated() { + return !isNil(this._providers.get(this._metatype)?.instance); + } + get metatype() { + return this._metatype; + } + get distance() { + return this._distance; + } + set distance(value) { + this._distance = value; + } + addCoreProviders() { + this.addModuleAsProvider(); + this.addModuleRef(); + this.addApplicationConfig(); + } + addModuleRef() { + const moduleRef = this.createModuleReferenceType(); + this._providers.set(ModuleRef, new InstanceWrapper({ + token: ModuleRef, + name: ModuleRef.name, + metatype: ModuleRef, + isResolved: true, + instance: new moduleRef(), + host: this + })); + } + addModuleAsProvider() { + this._providers.set(this._metatype, new InstanceWrapper({ + token: this._metatype, + name: this._metatype.name, + metatype: this._metatype, + isResolved: false, + instance: null, + host: this + })); + } + addApplicationConfig() { + this._providers.set(ApplicationConfig, new InstanceWrapper({ + token: ApplicationConfig, + name: ApplicationConfig.name, + isResolved: true, + instance: this.container.applicationConfig, + host: this + })); + } + addInjectable(injectable, enhancerSubtype, host) { + if (this.isCustomProvider(injectable)) { + return this.addCustomProvider(injectable, this._injectables, enhancerSubtype); + } + let instanceWrapper = this.injectables.get(injectable); + if (!instanceWrapper) { + instanceWrapper = new InstanceWrapper({ + token: injectable, + name: injectable.name, + metatype: injectable, + instance: null, + isResolved: false, + scope: getClassScope(injectable), + durable: isDurable(injectable), + subtype: enhancerSubtype, + host: this + }); + this._injectables.set(injectable, instanceWrapper); + } + if (host) { + const hostWrapper = this._controllers.get(host) || this._providers.get(host); + hostWrapper && hostWrapper.addEnhancerMetadata(instanceWrapper); + } + return instanceWrapper; + } + addProvider(provider, enhancerSubtype) { + if (this.isCustomProvider(provider)) { + if (this.isEntryProvider(provider.provide) || this.isEntryProvider(provider.useClass)) { + this._entryProviderKeys.add(provider.provide); + } + return this.addCustomProvider(provider, this._providers, enhancerSubtype); + } + const isAlreadyDeclared = this._providers.has(provider); + if ((this.isTransientProvider(provider) || this.isRequestScopeProvider(provider)) && isAlreadyDeclared) { + return provider; + } + this._providers.set(provider, new InstanceWrapper({ + token: provider, + name: provider.name, + metatype: provider, + instance: null, + isResolved: false, + scope: getClassScope(provider), + durable: isDurable(provider), + host: this + })); + if (this.isEntryProvider(provider)) { + this._entryProviderKeys.add(provider); + } + return provider; + } + isCustomProvider(provider) { + return !isNil(provider.provide); + } + addCustomProvider(provider, collection, enhancerSubtype) { + if (this.isCustomClass(provider)) { + this.addCustomClass(provider, collection, enhancerSubtype); + } else if (this.isCustomValue(provider)) { + this.addCustomValue(provider, collection, enhancerSubtype); + } else if (this.isCustomFactory(provider)) { + this.addCustomFactory(provider, collection, enhancerSubtype); + } else if (this.isCustomUseExisting(provider)) { + this.addCustomUseExisting(provider, collection, enhancerSubtype); + } else { + throw new InvalidProviderException(provider.provide, this.name); + } + return provider.provide; + } + isCustomClass(provider) { + return !isNil(provider.useClass); + } + isCustomValue(provider) { + return isObject(provider) && Object.hasOwn(provider, "useValue"); + } + isCustomFactory(provider) { + return !isNil(provider.useFactory); + } + isCustomUseExisting(provider) { + return !isNil(provider.useExisting); + } + isDynamicModule(exported) { + return exported && exported.module; + } + addCustomClass(provider, collection, enhancerSubtype) { + let { scope, durable } = provider; + const { useClass } = provider; + if (isUndefined(scope)) { + scope = getClassScope(useClass); + } + if (isUndefined(durable)) { + durable = isDurable(useClass); + } + const token = provider.provide; + collection.set(token, new InstanceWrapper({ + token, + name: useClass?.name || useClass, + metatype: useClass, + instance: null, + isResolved: false, + scope, + durable, + host: this, + subtype: enhancerSubtype + })); + } + addCustomValue(provider, collection, enhancerSubtype) { + const { useValue: value, provide: providerToken } = provider; + const instanceDecorator = this.container.contextOptions?.instrument?.instanceDecorator; + collection.set(providerToken, new InstanceWrapper({ + token: providerToken, + name: providerToken?.name || providerToken, + metatype: null, + instance: instanceDecorator ? makeSafeInstanceDecorator(instanceDecorator)(value) : value, + isResolved: true, + async: value instanceof Promise, + host: this, + subtype: enhancerSubtype + })); + } + addCustomFactory(provider, collection, enhancerSubtype) { + const { useFactory: factory, inject, scope, durable, provide: providerToken } = provider; + collection.set(providerToken, new InstanceWrapper({ + token: providerToken, + name: providerToken?.name || providerToken, + metatype: factory, + instance: null, + isResolved: false, + inject: inject || [], + scope, + durable, + host: this, + subtype: enhancerSubtype + })); + } + addCustomUseExisting(provider, collection, enhancerSubtype) { + const { useExisting, provide: providerToken } = provider; + collection.set(providerToken, new InstanceWrapper({ + token: providerToken, + name: providerToken?.name || providerToken, + metatype: /* @__PURE__ */ __name(((instance) => instance), "metatype"), + instance: null, + isResolved: false, + inject: [useExisting], + host: this, + isAlias: true, + subtype: enhancerSubtype + })); + } + addExportedProviderOrModule(toExport) { + const addExportedUnit = /* @__PURE__ */ __name((token) => this._exports.add(this.validateExportedProvider(token)), "addExportedUnit"); + if (this.isCustomProvider(toExport)) { + return this.addCustomExportedProvider(toExport); + } else if (isString(toExport) || isSymbol(toExport)) { + return addExportedUnit(toExport); + } else if (this.isDynamicModule(toExport)) { + const { module: moduleClassRef } = toExport; + return addExportedUnit(moduleClassRef); + } + addExportedUnit(toExport); + } + addCustomExportedProvider(provider) { + const provide = provider.provide; + if (isString(provide) || isSymbol(provide)) { + return this._exports.add(this.validateExportedProvider(provide)); + } + this._exports.add(this.validateExportedProvider(provide)); + } + validateExportedProvider(token) { + if (this._providers.has(token)) { + return token; + } + const imports = (0, import_iterare8.iterate)(this._imports.values()).filter((item) => !!item).map(({ metatype }) => metatype).filter((metatype) => !!metatype).toArray(); + if (!imports.includes(token)) { + const { name } = this.metatype; + const providerName = isFunction(token) ? token.name : token; + throw new UnknownExportException(providerName, name); + } + return token; + } + addController(controller) { + this._controllers.set(controller, new InstanceWrapper({ + token: controller, + name: controller.name, + metatype: controller, + instance: null, + isResolved: false, + scope: getClassScope(controller), + durable: isDurable(controller), + host: this + })); + this.assignControllerUniqueId(controller); + } + assignControllerUniqueId(controller) { + Object.defineProperty(controller, CONTROLLER_ID_KEY, { + enumerable: false, + writable: false, + configurable: true, + value: randomStringGenerator() + }); + } + addImport(moduleRef) { + this._imports.add(moduleRef); + } + replace(toReplace, options) { + if (options.isProvider && this.hasProvider(toReplace)) { + const originalProvider = this._providers.get(toReplace); + return originalProvider.mergeWith({ provide: toReplace, ...options }); + } else if (!options.isProvider && this.hasInjectable(toReplace)) { + const originalInjectable = this._injectables.get(toReplace); + return originalInjectable.mergeWith({ + provide: toReplace, + ...options + }); + } + } + hasProvider(token) { + return this._providers.has(token); + } + hasInjectable(token) { + return this._injectables.has(token); + } + getProviderByKey(name) { + return this._providers.get(name); + } + getProviderById(id) { + for (const item of this._providers.values()) { + if (item.id === id) + return item; + } + return void 0; + } + getControllerById(id) { + for (const item of this._controllers.values()) { + if (item.id === id) + return item; + } + return void 0; + } + getInjectableById(id) { + for (const item of this._injectables.values()) { + if (item.id === id) + return item; + } + return void 0; + } + getMiddlewareById(id) { + for (const item of this._middlewares.values()) { + if (item.id === id) + return item; + } + return void 0; + } + getNonAliasProviders() { + return [...this._providers].filter(([_, wrapper]) => !wrapper.isAlias); + } + createModuleReferenceType() { + const self = this; + return class extends ModuleRef { + constructor() { + super(self.container); + } + get(typeOrToken, options = {}) { + options.strict ??= true; + options.each ??= false; + return this.find(typeOrToken, options.strict ? { + moduleId: self.id, + each: options.each + } : options); + } + resolve(typeOrToken, contextId = createContextId(), options = {}) { + options.strict ??= true; + options.each ??= false; + return this.resolvePerContext(typeOrToken, self, contextId, options); + } + async create(type, contextId) { + if (!(type && isFunction(type) && type.prototype)) { + throw new InvalidClassException(type); + } + return this.instantiateClass(type, self, contextId); + } + }; + } + isEntryProvider(metatype) { + return typeof metatype === "function" ? !!Reflect.getMetadata(ENTRY_PROVIDER_WATERMARK, metatype) : false; + } + generateUuid() { + const prefix = "M_"; + const key = this.token ? this.token.includes(":") ? this.token.split(":")[1] : this.token : this.name; + return key ? UuidFactory.get(`${prefix}_${key}`) : randomStringGenerator(); + } + isTransientProvider(provider) { + return getClassScope(provider) === Scope.TRANSIENT; + } + isRequestScopeProvider(provider) { + return getClassScope(provider) === Scope.REQUEST; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js +import { createHash } from "crypto"; +var K_MODULE_ID, ByReferenceModuleOpaqueKeyFactory; +var init_by_reference_module_opaque_key_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js"() { + init_internal(); + K_MODULE_ID = /* @__PURE__ */ Symbol("K_MODULE_ID"); + ByReferenceModuleOpaqueKeyFactory = class { + static { + __name(this, "ByReferenceModuleOpaqueKeyFactory"); + } + keyGenerationStrategy; + constructor(options) { + this.keyGenerationStrategy = options?.keyGenerationStrategy ?? "random"; + } + createForStatic(moduleCls, originalRef = moduleCls) { + return this.getOrCreateModuleId(moduleCls, void 0, originalRef); + } + createForDynamic(moduleCls, dynamicMetadata, originalRef) { + return this.getOrCreateModuleId(moduleCls, dynamicMetadata, originalRef); + } + getOrCreateModuleId(moduleCls, dynamicMetadata, originalRef) { + if (Object.prototype.hasOwnProperty.call(originalRef, K_MODULE_ID)) { + return originalRef[K_MODULE_ID]; + } + let moduleId; + if (this.keyGenerationStrategy === "random") { + moduleId = this.generateRandomString(); + } else { + const delimiter = ":"; + moduleId = dynamicMetadata ? `${this.generateRandomString()}${delimiter}${this.hashString(moduleCls.name + JSON.stringify(dynamicMetadata))}` : `${this.generateRandomString()}${delimiter}${this.hashString(moduleCls.toString())}`; + } + originalRef[K_MODULE_ID] = moduleId; + return moduleId; + } + hashString(value) { + return createHash("sha256").update(value).digest("hex"); + } + generateRandomString() { + return randomStringGenerator(); + } + }; + } +}); + +// ../../node_modules/.pnpm/fast-safe-stringify@2.1.1/node_modules/fast-safe-stringify/index.js +var require_fast_safe_stringify = __commonJS({ + "../../node_modules/.pnpm/fast-safe-stringify@2.1.1/node_modules/fast-safe-stringify/index.js"(exports, module) { + module.exports = stringify2; + stringify2.default = stringify2; + stringify2.stable = deterministicStringify; + stringify2.stableStringify = deterministicStringify; + var LIMIT_REPLACE_NODE = "[...]"; + var CIRCULAR_REPLACE_NODE = "[Circular]"; + var arr = []; + var replacerStack = []; + function defaultOptions() { + return { + depthLimit: Number.MAX_SAFE_INTEGER, + edgesLimit: Number.MAX_SAFE_INTEGER + }; + } + __name(defaultOptions, "defaultOptions"); + function stringify2(obj, replacer, spacer, options) { + if (typeof options === "undefined") { + options = defaultOptions(); + } + decirc(obj, "", 0, [], void 0, 0, options); + var res; + try { + if (replacerStack.length === 0) { + res = JSON.stringify(obj, replacer, spacer); + } else { + res = JSON.stringify(obj, replaceGetterValues(replacer), spacer); + } + } catch (_) { + return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]"); + } finally { + while (arr.length !== 0) { + var part = arr.pop(); + if (part.length === 4) { + Object.defineProperty(part[0], part[1], part[3]); + } else { + part[0][part[1]] = part[2]; + } + } + } + return res; + } + __name(stringify2, "stringify"); + function setReplace(replace, val, k, parent) { + var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k); + if (propertyDescriptor.get !== void 0) { + if (propertyDescriptor.configurable) { + Object.defineProperty(parent, k, { value: replace }); + arr.push([parent, k, val, propertyDescriptor]); + } else { + replacerStack.push([val, k, replace]); + } + } else { + parent[k] = replace; + arr.push([parent, k, val]); + } + } + __name(setReplace, "setReplace"); + function decirc(val, k, edgeIndex, stack, parent, depth, options) { + depth += 1; + var i; + if (typeof val === "object" && val !== null) { + for (i = 0; i < stack.length; i++) { + if (stack[i] === val) { + setReplace(CIRCULAR_REPLACE_NODE, val, k, parent); + return; + } + } + if (typeof options.depthLimit !== "undefined" && depth > options.depthLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + if (typeof options.edgesLimit !== "undefined" && edgeIndex + 1 > options.edgesLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + stack.push(val); + if (Array.isArray(val)) { + for (i = 0; i < val.length; i++) { + decirc(val[i], i, i, stack, val, depth, options); + } + } else { + var keys = Object.keys(val); + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + decirc(val[key], key, i, stack, val, depth, options); + } + } + stack.pop(); + } + } + __name(decirc, "decirc"); + function compareFunction(a, b) { + if (a < b) { + return -1; + } + if (a > b) { + return 1; + } + return 0; + } + __name(compareFunction, "compareFunction"); + function deterministicStringify(obj, replacer, spacer, options) { + if (typeof options === "undefined") { + options = defaultOptions(); + } + var tmp = deterministicDecirc(obj, "", 0, [], void 0, 0, options) || obj; + var res; + try { + if (replacerStack.length === 0) { + res = JSON.stringify(tmp, replacer, spacer); + } else { + res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer); + } + } catch (_) { + return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]"); + } finally { + while (arr.length !== 0) { + var part = arr.pop(); + if (part.length === 4) { + Object.defineProperty(part[0], part[1], part[3]); + } else { + part[0][part[1]] = part[2]; + } + } + } + return res; + } + __name(deterministicStringify, "deterministicStringify"); + function deterministicDecirc(val, k, edgeIndex, stack, parent, depth, options) { + depth += 1; + var i; + if (typeof val === "object" && val !== null) { + for (i = 0; i < stack.length; i++) { + if (stack[i] === val) { + setReplace(CIRCULAR_REPLACE_NODE, val, k, parent); + return; + } + } + try { + if (typeof val.toJSON === "function") { + return; + } + } catch (_) { + return; + } + if (typeof options.depthLimit !== "undefined" && depth > options.depthLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + if (typeof options.edgesLimit !== "undefined" && edgeIndex + 1 > options.edgesLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + stack.push(val); + if (Array.isArray(val)) { + for (i = 0; i < val.length; i++) { + deterministicDecirc(val[i], i, i, stack, val, depth, options); + } + } else { + var tmp = {}; + var keys = Object.keys(val).sort(compareFunction); + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + deterministicDecirc(val[key], key, i, stack, val, depth, options); + tmp[key] = val[key]; + } + if (typeof parent !== "undefined") { + arr.push([parent, k, val]); + parent[k] = tmp; + } else { + return tmp; + } + } + stack.pop(); + } + } + __name(deterministicDecirc, "deterministicDecirc"); + function replaceGetterValues(replacer) { + replacer = typeof replacer !== "undefined" ? replacer : function(k, v) { + return v; + }; + return function(key, val) { + if (replacerStack.length > 0) { + for (var i = 0; i < replacerStack.length; i++) { + var part = replacerStack[i]; + if (part[1] === key && part[0] === val) { + val = part[2]; + replacerStack.splice(i, 1); + break; + } + } + } + return replacer.call(this, key, val); + }; + } + __name(replaceGetterValues, "replaceGetterValues"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js +import { createHash as createHash2 } from "crypto"; +var import_fast_safe_stringify, stringify, UNSERIALIZABLE, CLASS_STR, CLASS_STR_LEN, DeepHashedModuleOpaqueKeyFactory; +var init_deep_hashed_module_opaque_key_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js"() { + import_fast_safe_stringify = __toESM(require_fast_safe_stringify(), 1); + init_common(); + init_internal(); + stringify = import_fast_safe_stringify.default.default ?? import_fast_safe_stringify.default; + UNSERIALIZABLE = JSON.stringify("[unable to serialize, circular reference is too complex to analyze]"); + CLASS_STR = "class "; + CLASS_STR_LEN = CLASS_STR.length; + DeepHashedModuleOpaqueKeyFactory = class _DeepHashedModuleOpaqueKeyFactory { + static { + __name(this, "DeepHashedModuleOpaqueKeyFactory"); + } + moduleIdsCache = /* @__PURE__ */ new WeakMap(); + moduleTokenCache = /* @__PURE__ */ new Map(); + logger = new Logger(_DeepHashedModuleOpaqueKeyFactory.name, { + timestamp: true + }); + createForStatic(moduleCls) { + const moduleId = this.getModuleId(moduleCls); + const moduleName = this.getModuleName(moduleCls); + const key = `${moduleId}_${moduleName}`; + if (this.moduleTokenCache.has(key)) { + return this.moduleTokenCache.get(key); + } + const hash = this.hashString(key); + this.moduleTokenCache.set(key, hash); + return hash; + } + createForDynamic(moduleCls, dynamicMetadata) { + const moduleId = this.getModuleId(moduleCls); + const moduleName = this.getModuleName(moduleCls); + const opaqueToken = { + id: moduleId, + module: moduleName, + dynamic: dynamicMetadata + }; + const start = performance.now(); + const opaqueTokenString = this.getStringifiedOpaqueToken(opaqueToken); + const timeSpentInMs = performance.now() - start; + if (timeSpentInMs > 10) { + const formattedTimeSpent = timeSpentInMs.toFixed(2); + this.logger.warn(`The module "${opaqueToken.module}" is taking ${formattedTimeSpent}ms to serialize, this may be caused by larger objects statically assigned to the module. Consider changing the "moduleIdGeneratorAlgorithm" option to "reference" to improve the performance.`); + } + return this.hashString(opaqueTokenString); + } + getStringifiedOpaqueToken(opaqueToken) { + if (!opaqueToken) { + return ""; + } + const tokenString = stringify(opaqueToken, this.replacer); + if (tokenString !== UNSERIALIZABLE) { + return tokenString; + } + return stringify(opaqueToken, (key, value) => value instanceof Map || value instanceof Set ? {} : this.replacer(key, value)); + } + getModuleId(metatype) { + let moduleId = this.moduleIdsCache.get(metatype); + if (moduleId) { + return moduleId; + } + moduleId = randomStringGenerator(); + this.moduleIdsCache.set(metatype, moduleId); + return moduleId; + } + getModuleName(metatype) { + return metatype.name; + } + hashString(value) { + return createHash2("sha256").update(value).digest("hex"); + } + replacer(key, value) { + if (isFunction(value)) { + const funcAsString = value.toString(); + const isClass = funcAsString.slice(0, CLASS_STR_LEN) === CLASS_STR; + if (isClass) { + return value.name; + } + return funcAsString; + } + if (isSymbol(value)) { + return value.toString(); + } + if (value instanceof Map) { + return { Map: [...value] }; + } + if (value instanceof Set) { + return { Set: [...value] }; + } + if (value instanceof RegExp) { + return { RegExp: value.toString() }; + } + return value; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/container.js +var NestContainer; +var init_container = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/container.js"() { + init_discoverable_meta_host_collection(); + init_exceptions2(); + init_initialize_on_preview_allowlist(); + init_serialized_graph(); + init_request_constants(); + init_compiler(); + init_internal_core_module(); + init_internal_providers_storage(); + init_module(); + init_modules_container(); + init_by_reference_module_opaque_key_factory(); + init_deep_hashed_module_opaque_key_factory(); + init_internal(); + NestContainer = class { + static { + __name(this, "NestContainer"); + } + _applicationConfig; + _contextOptions; + globalModules = /* @__PURE__ */ new Set(); + modules = new ModulesContainer(); + dynamicModulesMetadata = /* @__PURE__ */ new Map(); + internalProvidersStorage = new InternalProvidersStorage(); + _serializedGraph = new SerializedGraph(); + moduleCompiler; + internalCoreModule; + constructor(_applicationConfig = void 0, _contextOptions = void 0) { + this._applicationConfig = _applicationConfig; + this._contextOptions = _contextOptions; + const moduleOpaqueKeyFactory = this._contextOptions?.moduleIdGeneratorAlgorithm === "deep-hash" ? new DeepHashedModuleOpaqueKeyFactory() : new ByReferenceModuleOpaqueKeyFactory({ + keyGenerationStrategy: this._contextOptions?.snapshot ? "shallow" : "random" + }); + this.moduleCompiler = new ModuleCompiler(moduleOpaqueKeyFactory); + } + get serializedGraph() { + return this._serializedGraph; + } + get applicationConfig() { + return this._applicationConfig; + } + get contextOptions() { + return this._contextOptions; + } + setHttpAdapter(httpAdapter) { + this.internalProvidersStorage.httpAdapter = httpAdapter; + if (!this.internalProvidersStorage.httpAdapterHost) { + return; + } + const host = this.internalProvidersStorage.httpAdapterHost; + host.httpAdapter = httpAdapter; + } + getHttpAdapterRef() { + return this.internalProvidersStorage.httpAdapter; + } + getHttpAdapterHostRef() { + return this.internalProvidersStorage.httpAdapterHost; + } + async addModule(metatype, scope) { + if (!metatype) { + throw new UndefinedForwardRefException(scope); + } + const { type, dynamicMetadata, token } = await this.moduleCompiler.compile(metatype); + if (this.modules.has(token)) { + return { + moduleRef: this.modules.get(token), + inserted: false + }; + } + return { + moduleRef: await this.setModule({ + token, + type, + dynamicMetadata + }, scope), + inserted: true + }; + } + async replaceModule(metatypeToReplace, newMetatype, scope) { + if (!metatypeToReplace || !newMetatype) { + throw new UndefinedForwardRefException(scope); + } + const { token } = await this.moduleCompiler.compile(metatypeToReplace); + const { type, dynamicMetadata } = await this.moduleCompiler.compile(newMetatype); + return { + moduleRef: await this.setModule({ + token, + type, + dynamicMetadata + }, scope), + inserted: true + }; + } + async setModule({ token, dynamicMetadata, type }, scope) { + const moduleRef = new Module2(type, this); + moduleRef.token = token; + moduleRef.initOnPreview = this.shouldInitOnPreview(type); + this.modules.set(token, moduleRef); + const updatedScope = [].concat(scope, type); + await this.addDynamicMetadata(token, dynamicMetadata, updatedScope); + if (this.isGlobalModule(type, dynamicMetadata)) { + moduleRef.isGlobal = true; + moduleRef.distance = Number.MAX_VALUE; + this.addGlobalModule(moduleRef); + } + return moduleRef; + } + async addDynamicMetadata(token, dynamicModuleMetadata, scope) { + if (!dynamicModuleMetadata) { + return; + } + this.dynamicModulesMetadata.set(token, dynamicModuleMetadata); + const { imports } = dynamicModuleMetadata; + await this.addDynamicModules(imports, scope); + } + async addDynamicModules(modules, scope) { + if (!modules) { + return; + } + await Promise.all(modules.map((module) => this.addModule(module, scope))); + } + isGlobalModule(metatype, dynamicMetadata) { + if (dynamicMetadata && dynamicMetadata.global) { + return true; + } + return !!Reflect.getMetadata(GLOBAL_MODULE_METADATA, metatype); + } + addGlobalModule(module) { + this.globalModules.add(module); + } + getModules() { + return this.modules; + } + getModuleCompiler() { + return this.moduleCompiler; + } + getModuleByKey(moduleKey) { + return this.modules.get(moduleKey); + } + getInternalCoreModuleRef() { + return this.internalCoreModule; + } + async addImport(relatedModule, token) { + if (!this.modules.has(token)) { + return; + } + const moduleRef = this.modules.get(token); + const { token: relatedModuleToken } = await this.moduleCompiler.compile(relatedModule); + const related = this.modules.get(relatedModuleToken); + moduleRef.addImport(related); + } + addProvider(provider, token, enhancerSubtype) { + const moduleRef = this.modules.get(token); + if (!provider) { + throw new CircularDependencyException(moduleRef?.metatype.name); + } + if (!moduleRef) { + throw new UnknownModuleException(); + } + const providerKey = moduleRef.addProvider(provider, enhancerSubtype); + const providerRef = moduleRef.getProviderByKey(providerKey); + DiscoverableMetaHostCollection.inspectProvider(this.modules, providerRef); + return providerKey; + } + addInjectable(injectable, token, enhancerSubtype, host) { + if (!this.modules.has(token)) { + throw new UnknownModuleException(); + } + const moduleRef = this.modules.get(token); + return moduleRef.addInjectable(injectable, enhancerSubtype, host); + } + addExportedProviderOrModule(toExport, token) { + if (!this.modules.has(token)) { + throw new UnknownModuleException(); + } + const moduleRef = this.modules.get(token); + if (isNil(toExport)) { + throw new CircularDependencyException(moduleRef.metatype.name); + } + moduleRef.addExportedProviderOrModule(toExport); + } + addController(controller, token) { + if (!this.modules.has(token)) { + throw new UnknownModuleException(); + } + const moduleRef = this.modules.get(token); + if (isNil(controller)) { + throw new CircularDependencyException(moduleRef.metatype.name); + } + moduleRef.addController(controller); + const controllerRef = moduleRef.controllers.get(controller); + DiscoverableMetaHostCollection.inspectController(this.modules, controllerRef); + } + clear() { + this.modules.clear(); + } + replace(toReplace, options) { + this.modules.forEach((moduleRef) => moduleRef.replace(toReplace, options)); + } + bindGlobalScope() { + this.modules.forEach((moduleRef) => this.bindGlobalsToImports(moduleRef)); + } + bindGlobalsToImports(moduleRef) { + this.globalModules.forEach((globalModule) => this.bindGlobalModuleToModule(moduleRef, globalModule)); + } + bindGlobalModuleToModule(target, globalModule) { + if (target === globalModule || target === this.internalCoreModule) { + return; + } + target.addImport(globalModule); + } + getDynamicMetadataByToken(token, metadataKey) { + const metadata = this.dynamicModulesMetadata.get(token); + return metadataKey ? metadata?.[metadataKey] ?? [] : metadata; + } + registerCoreModuleRef(moduleRef) { + this.internalCoreModule = moduleRef; + this.modules[InternalCoreModule.name] = moduleRef; + } + getModuleTokenFactory() { + return this.moduleCompiler.moduleOpaqueKeyFactory; + } + registerRequestProvider(request, contextId) { + const wrapper = this.internalCoreModule.getProviderByKey(REQUEST); + wrapper.setInstanceByContextId(contextId, { + instance: request, + isResolved: true + }); + } + shouldInitOnPreview(type) { + return InitializeOnPreviewAllowlist.has(type); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/index.js +var init_injector2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/index.js"() { + init_container(); + init_inquirer(); + init_lazy_module_loader(); + init_module_ref(); + init_modules_container(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/partial-graph.host.js +var PartialGraphHost; +var init_partial_graph_host = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/partial-graph.host.js"() { + PartialGraphHost = class { + static { + __name(this, "PartialGraphHost"); + } + static partialGraph; + static toJSON() { + return this.partialGraph?.toJSON(); + } + static toString() { + return this.partialGraph?.toString(); + } + static register(partialGraph) { + this.partialGraph = partialGraph; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/graph-inspector.js +var GraphInspector; +var init_graph_inspector = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/graph-inspector.js"() { + init_unknown_dependencies_exception(); + init_deterministic_uuid_registry(); + init_partial_graph_host(); + GraphInspector = class { + static { + __name(this, "GraphInspector"); + } + container; + graph; + enhancersMetadataCache = new Array(); + constructor(container) { + this.container = container; + this.graph = container.serializedGraph; + } + inspectModules(modules = this.container.getModules()) { + for (const moduleRef of modules.values()) { + this.insertModuleNode(moduleRef); + this.insertClassNodes(moduleRef); + this.insertModuleToModuleEdges(moduleRef); + } + this.enhancersMetadataCache.forEach((entry) => this.insertEnhancerEdge(entry)); + DeterministicUuidRegistry.clear(); + } + registerPartial(error) { + this.graph.status = "partial"; + if (error instanceof UnknownDependenciesException) { + this.graph.metadata = { + cause: { + type: "unknown-dependencies", + context: error.context, + moduleId: error.moduleRef?.id, + nodeId: error.metadata?.id + } + }; + } else { + this.graph.metadata = { + cause: { + type: "unknown", + error + } + }; + } + PartialGraphHost.register(this.graph); + } + inspectInstanceWrapper(source, moduleRef) { + const ctorMetadata = source.getCtorMetadata(); + ctorMetadata?.forEach((target, index) => this.insertClassToClassEdge(source, target, moduleRef, index, "constructor")); + const propertiesMetadata = source.getPropertiesMetadata(); + propertiesMetadata?.forEach(({ key, wrapper: target }) => this.insertClassToClassEdge(source, target, moduleRef, key, "property")); + } + insertEnhancerMetadataCache(entry) { + this.enhancersMetadataCache.push(entry); + } + insertOrphanedEnhancer(entry) { + this.graph.insertOrphanedEnhancer({ + ...entry, + ref: entry.ref?.constructor?.name ?? "Object" + }); + } + insertAttachedEnhancer(wrapper) { + const existingNode = this.graph.getNodeById(wrapper.id); + existingNode.metadata.global = true; + this.graph.insertAttachedEnhancer(existingNode.id); + } + insertEntrypointDefinition(definition, parentId) { + definition = { + ...definition, + id: `${definition.classNodeId}_${definition.methodName}` + }; + this.graph.insertEntrypoint(definition, parentId); + } + insertClassNode(moduleRef, wrapper, type) { + this.graph.insertNode({ + id: wrapper.id, + label: wrapper.name, + parent: moduleRef.id, + metadata: { + type, + internal: wrapper.metatype === moduleRef.metatype, + sourceModuleName: moduleRef.name, + durable: wrapper.isDependencyTreeDurable(), + static: wrapper.isDependencyTreeStatic(), + scope: wrapper.scope, + transient: wrapper.isTransient, + exported: moduleRef.exports.has(wrapper.token), + token: wrapper.token, + subtype: wrapper.subtype, + initTime: wrapper.initTime + } + }); + } + insertModuleNode(moduleRef) { + const dynamicMetadata = this.container.getDynamicMetadataByToken(moduleRef.token); + const node = { + id: moduleRef.id, + label: moduleRef.name, + metadata: { + type: "module", + global: moduleRef.isGlobal, + dynamic: !!dynamicMetadata, + internal: moduleRef.name === "InternalCoreModule" + } + }; + this.graph.insertNode(node); + } + insertModuleToModuleEdges(moduleRef) { + for (const targetModuleRef of moduleRef.imports) { + this.graph.insertEdge({ + source: moduleRef.id, + target: targetModuleRef.id, + metadata: { + type: "module-to-module", + sourceModuleName: moduleRef.name, + targetModuleName: targetModuleRef.name + } + }); + } + } + insertEnhancerEdge(entry) { + const moduleRef = this.container.getModuleByKey(entry.moduleToken); + const sourceInstanceWrapper = moduleRef.controllers.get(entry.classRef) ?? moduleRef.providers.get(entry.classRef); + const existingSourceNode = this.graph.getNodeById(sourceInstanceWrapper.id); + const enhancers = existingSourceNode.metadata.enhancers ?? []; + if (entry.enhancerInstanceWrapper) { + this.insertClassToClassEdge(sourceInstanceWrapper, entry.enhancerInstanceWrapper, moduleRef, void 0, "decorator"); + enhancers.push({ + id: entry.enhancerInstanceWrapper.id, + methodKey: entry.methodKey, + subtype: entry.subtype + }); + } else { + const name = entry.enhancerRef.constructor?.name ?? entry.enhancerRef.name; + enhancers.push({ + name, + methodKey: entry.methodKey, + subtype: entry.subtype + }); + } + existingSourceNode.metadata.enhancers = enhancers; + } + insertClassToClassEdge(source, target, moduleRef, keyOrIndex, injectionType) { + this.graph.insertEdge({ + source: source.id, + target: target.id, + metadata: { + type: "class-to-class", + sourceModuleName: moduleRef.name, + sourceClassName: source.name, + targetClassName: target.name, + sourceClassToken: source.token, + targetClassToken: target.token, + targetModuleName: target.host?.name, + keyOrIndex, + injectionType + } + }); + } + insertClassNodes(moduleRef) { + moduleRef.providers.forEach((value) => this.insertClassNode(moduleRef, value, "provider")); + moduleRef.injectables.forEach((value) => this.insertClassNode(moduleRef, value, "injectable")); + moduleRef.controllers.forEach((value) => this.insertClassNode(moduleRef, value, "controller")); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/index.js +var init_inspector = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/index.js"() { + init_graph_inspector(); + init_initialize_on_preview_allowlist(); + init_partial_graph_host(); + init_serialized_graph(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/legacy-route-converter.js +var UNSUPPORTED_PATH_MESSAGE, LegacyRouteConverter; +var init_legacy_route_converter = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/legacy-route-converter.js"() { + init_common(); + UNSUPPORTED_PATH_MESSAGE = /* @__PURE__ */ __name((text, route) => `Unsupported route path: "${route}". In previous versions, the symbols ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/{*path}. The braces keep the wildcard optional, so it covers the same paths as /users/* did, while /users/*path is narrower and requires at least one extra segment. For more details, refer to the migration guide.`, "UNSUPPORTED_PATH_MESSAGE"); + LegacyRouteConverter = class _LegacyRouteConverter { + static { + __name(this, "LegacyRouteConverter"); + } + static logger = new Logger(_LegacyRouteConverter.name); + /** + * Convert legacy routes to the new format (syntax). + * path-to-regexp used by Express>=v5 and @fastify/middie>=v9 no longer support unnamed wildcards. + * This method attempts to convert the old syntax to the new one, and logs an error if it fails. + * @param route The route to convert. + * @param options Options object. + * @returns The converted route, or the original route if it cannot be converted. + */ + static tryConvert(route, options) { + const routeWithLeadingSlash = route.startsWith("/") ? route : `/${route}`; + const normalizedRoute = route.endsWith("/") ? routeWithLeadingSlash : `${routeWithLeadingSlash}/`; + const loggingEnabled = options?.logs ?? true; + const printWarning = loggingEnabled ? this.printWarning.bind(this) : () => { + }; + if (normalizedRoute.endsWith("/(.*)/")) { + const convertedRoute = route.replace("(.*)", "{*path}"); + if (normalizedRoute !== "/(.*)/") { + printWarning(route, convertedRoute); + } + return convertedRoute; + } + if (normalizedRoute.endsWith("/*/")) { + const convertedRoute = route.replace("*", "{*path}"); + if (normalizedRoute !== "/*/") { + printWarning(route, convertedRoute); + } + return convertedRoute; + } + if (normalizedRoute.endsWith("/+/")) { + const convertedRoute = route.replace("/+", "/*path"); + printWarning(route, convertedRoute); + return convertedRoute; + } + if (normalizedRoute.includes("/*/")) { + const convertedRoute = route.replaceAll(/\/\*(?=\/)/g, (match, offset) => `/*path${offset}`); + printWarning(route, convertedRoute); + return convertedRoute; + } + return route; + } + static printError(route) { + this.logger.error(UNSUPPORTED_PATH_MESSAGE`${route}`); + } + static printWarning(route, convertedRoute) { + const autoConvertMessage = convertedRoute ? ` Attempting to auto-convert to "${convertedRoute}"...` : " Attempting to auto-convert..."; + this.logger.warn(UNSUPPORTED_PATH_MESSAGE`${route}` + autoConvertMessage); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/exclude-route.util.js +function isRouteExcluded(excludedRoutes, path, requestMethod) { + return excludedRoutes.some((route) => { + if (isRequestMethodAll(route.requestMethod) || route.requestMethod === requestMethod) { + return route.pathRegex.exec(addLeadingSlash(path)); + } + return false; + }); +} +var isRequestMethodAll; +var init_exclude_route_util = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/exclude-route.util.js"() { + init_common(); + init_internal(); + isRequestMethodAll = /* @__PURE__ */ __name((method) => { + return RequestMethod.ALL === method || method === -1; + }, "isRequestMethodAll"); + __name(isRouteExcluded, "isRouteExcluded"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/flatten-route-paths.util.js +function flattenRoutePaths(routes) { + const result = []; + routes.forEach((item) => { + if (item.module && item.path) { + result.push({ module: item.module, path: item.path }); + } + if (item.children) { + const childrenRef = item.children; + childrenRef.forEach((child) => { + if (!isString(child) && isString(child.path)) { + child.path = normalizePath(normalizePath(item.path) + normalizePath(child.path)); + } else { + result.push({ path: item.path, module: child }); + } + }); + result.push(...flattenRoutePaths(childrenRef)); + } + }); + return result; +} +var init_flatten_route_paths_util = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/flatten-route-paths.util.js"() { + init_internal(); + __name(flattenRoutePaths, "flattenRoutePaths"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/index.js +var init_utils = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/index.js"() { + init_exclude_route_util(); + init_flatten_route_paths_util(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/utils.js +function compileExcludedPath(path, matchingOptions) { + if (!matchingOptions) { + return (0, import_path_to_regexp.pathToRegexp)(addLeadingSlash(path)).regexp; + } + const routePath = path.length > 1 ? path.replace(/\/+$/, "") : path; + return (0, import_path_to_regexp.pathToRegexp)(addLeadingSlash(routePath) || "/", { + sensitive: matchingOptions.caseSensitive, + trailing: matchingOptions.ignoreTrailingSlash + }).regexp; +} +function isStaticPath(path) { + return !ROUTE_PATTERN_CHARS.test(path); +} +function isMiddlewareClass(middleware) { + const middlewareStr = middleware.toString(); + if (middlewareStr.substring(0, 5) === "class") { + return true; + } + const middlewareArr = middlewareStr.split(" "); + return middlewareArr[0] === "function" && /[A-Z]/.test(middlewareArr[1]?.[0]) && isFunction(middleware.prototype?.use); +} +function assignToken(metatype, token = uid(21)) { + Object.defineProperty(metatype, "name", { value: token }); + return metatype; +} +function isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter, ignoreTrailingSlash = false, versioningOptions) { + if (excludedRoutes.length <= 0) { + return false; + } + const reqMethod = httpAdapter.getRequestMethod(req); + const originalUrl = httpAdapter.getRequestUrl(req); + if (!originalUrl?.startsWith("/") || originalUrl.includes("#")) { + return false; + } + const queryParamsIndex = originalUrl.indexOf("?"); + const pathname = queryParamsIndex >= 0 ? originalUrl.slice(0, queryParamsIndex) : originalUrl; + const isRequestForRoute = /* @__PURE__ */ __name((route, path) => isRouteExcluded([route], path, RequestMethod[reqMethod]) || reqMethod === RequestMethod[RequestMethod.HEAD] && isRouteExcluded([route], path, RequestMethod.GET), "isRequestForRoute"); + const isVersionRequested = createRequestedVersionMatcher(req, versioningOptions); + const isExcluded = /* @__PURE__ */ __name((path) => excludedRoutes.some((route) => isRequestForRoute(route, path) && isVersionRequested(route)), "isExcluded"); + if (ignoreTrailingSlash && pathname.length > 1 && pathname.endsWith("/")) { + return isExcluded(pathname) && isExcluded(pathname.replace(/\/+$/, "")); + } + return isExcluded(pathname); +} +function createRequestedVersionMatcher(request, versioningOptions) { + let requestedVersions; + return ({ version }) => { + if (!version || version === VERSION_NEUTRAL || !versioningOptions || versioningOptions.type === VersioningType.URI) { + return true; + } + if (requestedVersions === void 0) { + requestedVersions = getRequestedVersions(request, versioningOptions); + } + if (!requestedVersions) { + return false; + } + const versions = Array.isArray(version) ? version : [version]; + return requestedVersions.length > 0 ? requestedVersions.every((requested) => versions.includes(requested)) : versions.includes(VERSION_NEUTRAL); + }; +} +function getRequestedVersions(request, versioningOptions) { + const headers = request.headers ?? {}; + let version; + switch (versioningOptions.type) { + case VersioningType.HEADER: + version = headers[versioningOptions.header] || headers[versioningOptions.header.toLowerCase()]; + break; + case VersioningType.MEDIA_TYPE: + version = getMediaTypeVersion2(headers["Accept"] || headers["accept"], versioningOptions.key); + break; + case VersioningType.CUSTOM: + try { + version = versioningOptions.extractor(request); + } catch { + return null; + } + break; + } + return isUndefined(version) ? [] : [].concat(version); +} +function getMediaTypeVersion2(acceptHeader, key) { + const mediaRanges = [].concat(acceptHeader ?? []).flatMap((value) => value.split(",")); + for (const mediaRange of mediaRanges) { + const [, ...parameters] = mediaRange.split(";"); + for (const parameter of parameters) { + const trimmedParameter = parameter.trim(); + if (trimmedParameter.startsWith(key)) { + return trimmedParameter.slice(key.length); + } + } + } + return void 0; +} +var import_iterare9, import_path_to_regexp, mapToExcludeRoute, EXACT_ROUTE_MATCHING, ROUTE_PATTERN_CHARS, filterMiddleware, mapToClass; +var init_utils2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/utils.js"() { + init_common(); + import_iterare9 = __toESM(require_lib(), 1); + import_path_to_regexp = __toESM(require_dist2(), 1); + init_dist(); + init_legacy_route_converter(); + init_utils(); + init_internal(); + mapToExcludeRoute = /* @__PURE__ */ __name((routes, matchingOptions) => { + return routes.map((route) => { + const originalPath = isString(route) ? route : route.path; + const path = LegacyRouteConverter.tryConvert(originalPath); + try { + const pathRegex = compileExcludedPath(path, matchingOptions); + if (isString(route)) { + return { + path, + requestMethod: RequestMethod.ALL, + pathRegex + }; + } + const excludedRoute = { + path, + requestMethod: route.method, + pathRegex + }; + if (route.version) { + excludedRoute.version = route.version; + } + return excludedRoute; + } catch (e) { + if (e instanceof TypeError) { + LegacyRouteConverter.printError(originalPath); + } + throw e; + } + }); + }, "mapToExcludeRoute"); + __name(compileExcludedPath, "compileExcludedPath"); + EXACT_ROUTE_MATCHING = { + caseSensitive: true, + ignoreTrailingSlash: false + }; + ROUTE_PATTERN_CHARS = /[:*?+()[\]{}!\\$]/; + __name(isStaticPath, "isStaticPath"); + filterMiddleware = /* @__PURE__ */ __name((middleware, routes, httpAdapter, versioningOptions) => { + const matchingOptions = httpAdapter.getRouteMatchingOptions?.() ?? EXACT_ROUTE_MATCHING; + const excludedRoutes = mapToExcludeRoute(routes, matchingOptions); + return (0, import_iterare9.iterate)([]).concat(middleware).filter(isFunction).map((item) => mapToClass(item, excludedRoutes, httpAdapter, matchingOptions.ignoreTrailingSlash, versioningOptions)).toArray(); + }, "filterMiddleware"); + mapToClass = /* @__PURE__ */ __name((middleware, excludedRoutes, httpAdapter, ignoreTrailingSlash = false, versioningOptions) => { + if (isMiddlewareClass(middleware)) { + if (excludedRoutes.length <= 0) { + return middleware; + } + const MiddlewareHost = class extends middleware { + static { + __name(this, "MiddlewareHost"); + } + use(...params) { + const [req, _, next] = params; + const isExcluded = isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter, ignoreTrailingSlash, versioningOptions); + if (isExcluded) { + return next(); + } + return super.use(...params); + } + }; + return assignToken(MiddlewareHost, middleware.name); + } + return assignToken(class { + use = /* @__PURE__ */ __name((...params) => { + const [req, _, next] = params; + const isExcluded = isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter, ignoreTrailingSlash, versioningOptions); + if (isExcluded) { + return next(); + } + return middleware(...params); + }, "use"); + }); + }, "mapToClass"); + __name(isMiddlewareClass, "isMiddlewareClass"); + __name(assignToken, "assignToken"); + __name(isMiddlewareRouteExcluded, "isMiddlewareRouteExcluded"); + __name(createRequestedVersionMatcher, "createRequestedVersionMatcher"); + __name(getRequestedVersions, "getRequestedVersions"); + __name(getMediaTypeVersion2, "getMediaTypeVersion"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/builder.js +var import_iterare10, import_path_to_regexp2, MiddlewareBuilder; +var init_builder = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/builder.js"() { + import_iterare10 = __toESM(require_lib(), 1); + import_path_to_regexp2 = __toESM(require_dist2(), 1); + init_legacy_route_converter(); + init_utils2(); + MiddlewareBuilder = class _MiddlewareBuilder { + static { + __name(this, "MiddlewareBuilder"); + } + routesMapper; + httpAdapter; + routeInfoPathExtractor; + middlewareCollection = /* @__PURE__ */ new Set(); + constructor(routesMapper, httpAdapter, routeInfoPathExtractor) { + this.routesMapper = routesMapper; + this.httpAdapter = httpAdapter; + this.routeInfoPathExtractor = routeInfoPathExtractor; + } + apply(...middleware) { + return new _MiddlewareBuilder.ConfigProxy(this, middleware.flat(), this.routeInfoPathExtractor); + } + build() { + return [...this.middlewareCollection]; + } + getHttpAdapter() { + return this.httpAdapter; + } + static ConfigProxy = class { + static { + __name(this, "ConfigProxy"); + } + builder; + middleware; + routeInfoPathExtractor; + excludedRoutes = []; + constructor(builder, middleware, routeInfoPathExtractor) { + this.builder = builder; + this.middleware = middleware; + this.routeInfoPathExtractor = routeInfoPathExtractor; + } + getExcludedRoutes() { + return this.excludedRoutes; + } + exclude(...routes) { + this.excludedRoutes = [ + ...this.excludedRoutes, + ...this.getRoutesFlatList(routes).reduce((excludedRoutes, route) => { + for (const routePath of this.routeInfoPathExtractor.extractPathFrom(route)) { + excludedRoutes.push({ + ...route, + path: routePath + }); + } + return excludedRoutes; + }, []) + ]; + return this; + } + forRoutes(...routes) { + const { middlewareCollection } = this.builder; + const flattedRoutes = this.getRoutesFlatList(routes); + const forRoutes = this.removeOverlappedRoutes(this.addCoveredExcludedRoutes(flattedRoutes)); + const configuration = { + middleware: filterMiddleware(this.middleware, this.excludedRoutes, this.builder.getHttpAdapter(), this.routeInfoPathExtractor.getVersioningOptions()), + forRoutes + }; + middlewareCollection.add(configuration); + return this.builder; + } + getRoutesFlatList(routes) { + const { routesMapper } = this.builder; + return (0, import_iterare10.iterate)(routes).map((route) => routesMapper.mapRouteToRouteInfo(route)).flatten().toArray(); + } + /** + * Adds the routes excluded from the global prefix that a route covers + * without being excluded itself (e.g. "users/me" for "users/:id"): the + * router serves them outside of the prefix the route is mounted under. + */ + addCoveredExcludedRoutes(routes) { + const allRoutes = [...routes]; + for (const route of routes) { + for (const excludedRoute of this.routeInfoPathExtractor.extractExcludedRoutesCoveredBy(route)) { + const isListed = allRoutes.some((item) => item.path === excludedRoute.path && item.method === excludedRoute.method && item.version === excludedRoute.version); + if (!isListed) { + allRoutes.push(excludedRoute); + } + } + } + return allRoutes; + } + /** + * Removes the routes that a parameterized route of the same method is + * mounted on as well (e.g. "/users/me" next to "/users/:id"), so that + * the middleware runs once for them. Only a route without parameters or + * wildcards is removed, and only when the parameterized route matches + * every path it would be mounted on (global prefix and version included). + */ + removeOverlappedRoutes(routes) { + const routesWithRegex = routes.filter((route) => route.path.includes(":")).map((route) => ({ + method: route.method, + regexes: this.compileMountPaths(route) + })); + return routes.filter((route) => { + const mountPaths = this.routeInfoPathExtractor.extractPathsFrom(route); + if (!mountPaths.every(isStaticPath)) { + return true; + } + const isOverlapped = /* @__PURE__ */ __name((item) => route.method === item.method && mountPaths.every((path) => item.regexes.some((regex) => regex.test(path))), "isOverlapped"); + return !routesWithRegex.some(isOverlapped); + }); + } + compileMountPaths(route) { + try { + return this.routeInfoPathExtractor.extractPathsFrom(route).map((path) => (0, import_path_to_regexp2.pathToRegexp)(LegacyRouteConverter.tryConvert(path.replace(/\$$/, ""), { + logs: false + }), { sensitive: true }).regexp); + } catch { + return []; + } + } + }; + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/index.js +var init_middleware = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/index.js"() { + init_builder(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/cookie-signer.js +import { createHmac, timingSafeEqual } from "crypto"; +var SIGNED_COOKIE_PREFIX, CookieSigner; +var init_cookie_signer = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/cookie-signer.js"() { + SIGNED_COOKIE_PREFIX = "s:"; + CookieSigner = class { + static { + __name(this, "CookieSigner"); + } + secrets; + constructor(secret) { + const secrets = Array.isArray(secret) ? secret : [secret]; + if (secrets.length === 0 || secrets.some((item) => typeof item !== "string" || item.length === 0)) { + throw new TypeError('The "cookies.secret" option must be a non-empty string or a non-empty array of non-empty strings.'); + } + this.secrets = [...secrets]; + } + /** + * Returns `s:.`, signed with the first secret. + */ + sign(value) { + return `${SIGNED_COOKIE_PREFIX}${value}.${this.digest(value, this.secrets[0])}`; + } + /** + * Returns the original value when `input` carries a valid signature for + * any of the secrets, `undefined` otherwise. The `s:` prefix is optional. + */ + unsign(input) { + if (typeof input !== "string") { + return void 0; + } + const signed = input.startsWith(SIGNED_COOKIE_PREFIX) ? input.slice(SIGNED_COOKIE_PREFIX.length) : input; + const dotIndex = signed.lastIndexOf("."); + if (dotIndex === -1) { + return void 0; + } + const value = signed.slice(0, dotIndex); + const signature = Buffer.from(signed.slice(dotIndex + 1)); + let valid = false; + for (const secret of this.secrets) { + const expected = Buffer.from(this.digest(value, secret)); + if (expected.length === signature.length && timingSafeEqual(expected, signature)) { + valid = true; + } + } + return valid ? value : void 0; + } + digest(value, secret) { + return createHmac("sha256", secret).update(value).digest("base64").replace(/=+$/, ""); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/optional-require.js +async function optionalRequire(packageName, loaderFn) { + try { + return loaderFn ? await loaderFn() : await import(packageName); + } catch (e) { + return {}; + } +} +var init_optional_require = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/optional-require.js"() { + __name(optionalRequire, "optionalRequire"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/container.js +var MiddlewareContainer; +var init_container2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/container.js"() { + init_get_class_scope(); + init_is_durable(); + init_instance_wrapper(); + MiddlewareContainer = class { + static { + __name(this, "MiddlewareContainer"); + } + container; + middleware = /* @__PURE__ */ new Map(); + configurationSets = /* @__PURE__ */ new Map(); + constructor(container) { + this.container = container; + } + getMiddlewareCollection(moduleKey) { + if (!this.middleware.has(moduleKey)) { + const moduleRef = this.container.getModuleByKey(moduleKey); + this.middleware.set(moduleKey, moduleRef.middlewares); + } + return this.middleware.get(moduleKey); + } + getConfigurations() { + return this.configurationSets; + } + insertConfig(configList, moduleKey) { + const middleware = this.getMiddlewareCollection(moduleKey); + const targetConfig = this.getTargetConfig(moduleKey); + const configurations = configList || []; + const insertMiddleware = /* @__PURE__ */ __name((metatype) => { + const token = metatype; + middleware.set(token, new InstanceWrapper({ + scope: getClassScope(metatype), + durable: isDurable(metatype), + name: token?.name ?? token, + metatype, + token + })); + }, "insertMiddleware"); + configurations.forEach((config) => { + [].concat(config.middleware).map(insertMiddleware); + targetConfig.add(config); + }); + } + getTargetConfig(moduleName) { + if (!this.configurationSets.has(moduleName)) { + this.configurationSets.set(moduleName, /* @__PURE__ */ new Set()); + } + return this.configurationSets.get(moduleName); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-middleware.exception.js +var InvalidMiddlewareException; +var init_invalid_middleware_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-middleware.exception.js"() { + init_messages(); + init_runtime_exception(); + InvalidMiddlewareException = class extends RuntimeException { + static { + __name(this, "InvalidMiddlewareException"); + } + constructor(name) { + super(INVALID_MIDDLEWARE_MESSAGE`${name}`); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/exceptions-handler.js +var import_rxjs6, ExceptionsHandler; +var init_exceptions_handler = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/exceptions-handler.js"() { + import_rxjs6 = __toESM(require_cjs(), 1); + init_invalid_exception_filter_exception(); + init_base_exception_filter(); + init_internal(); + ExceptionsHandler = class extends BaseExceptionFilter { + static { + __name(this, "ExceptionsHandler"); + } + filters = []; + next(exception, ctx) { + if (this.invokeCustomFilters(exception, ctx)) { + return; + } + super.catch(exception, ctx); + } + setCustomFilters(filters) { + if (!Array.isArray(filters)) { + throw new InvalidExceptionFilterException(); + } + this.filters = filters; + } + invokeCustomFilters(exception, ctx) { + if (isEmptyArray(this.filters)) { + return false; + } + const filter = selectExceptionFilterMetadata(this.filters, exception); + if (!filter) { + return false; + } + const result = filter.func(exception, ctx); + if ((0, import_rxjs6.isObservable)(result)) { + return !!this.applicationRef?.isHeadersSent(ctx.getArgByIndex(1)); + } + return true; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-exception-filters.js +var import_iterare11, RouterExceptionFilters; +var init_router_exception_filters = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-exception-filters.js"() { + init_common(); + import_iterare11 = __toESM(require_lib(), 1); + init_base_exception_filter_context(); + init_exceptions_handler(); + init_constants3(); + init_internal(); + RouterExceptionFilters = class _RouterExceptionFilters extends BaseExceptionFilterContext { + static { + __name(this, "RouterExceptionFilters"); + } + config; + applicationRef; + static logger = new Logger(_RouterExceptionFilters.name); + // Applications already warned about their request-scoped or transient + // global filters (see "getGlobalMetadata()") + static warnedConfigs = /* @__PURE__ */ new WeakSet(); + constructor(container, config, applicationRef) { + super(container); + this.config = config; + this.applicationRef = applicationRef; + } + create(instance, callback, moduleKey, contextId = STATIC_CONTEXT, inquirerId) { + this.moduleContext = moduleKey; + const exceptionHandler = new ExceptionsHandler(this.applicationRef); + const filters = this.createContext(instance, callback, EXCEPTION_FILTERS_METADATA, contextId, inquirerId); + if (isEmptyArray(filters)) { + return exceptionHandler; + } + exceptionHandler.setCustomFilters(filters.reverse()); + return exceptionHandler; + } + getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) { + const globalFilters = this.config.getGlobalFilters(); + if (contextId === STATIC_CONTEXT && !inquirerId) { + this.warnAboutScopedGlobalFilters(); + return globalFilters; + } + const scopedFilterWrappers = this.config.getGlobalRequestFilters(); + const scopedFilters = (0, import_iterare11.iterate)(scopedFilterWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalFilters.concat(scopedFilters); + } + /** + * Handlers that are not built for a controller (middleware, the "not found" + * handler, the exception layer) have no request to resolve request-scoped + * or transient global filters for, so these filters are left out. + */ + warnAboutScopedGlobalFilters() { + if (isEmptyArray(this.config.getGlobalRequestFilters()) || _RouterExceptionFilters.warnedConfigs.has(this.config)) { + return; + } + _RouterExceptionFilters.warnedConfigs.add(this.config); + _RouterExceptionFilters.logger.warn("Global exception filters (APP_FILTER) with request or transient scope are not applied to exceptions thrown outside of controllers, e.g. in middleware, for unknown routes or while parsing the request body. Register a global filter without a scope as well to handle them."); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-proxy.js +var RouterProxy; +var init_router_proxy = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-proxy.js"() { + init_execution_context_host(); + RouterProxy = class { + static { + __name(this, "RouterProxy"); + } + createProxy(targetCallback, exceptionsHandler) { + return async (req, res, next) => { + try { + await targetCallback(req, res, next); + } catch (e) { + const host = new ExecutionContextHost([req, res, next]); + exceptionsHandler.next(e, host); + return res; + } + }; + } + createExceptionLayerProxy(targetCallback, exceptionsHandler) { + return async (err, req, res, next) => { + try { + await targetCallback(err, req, res, next); + } catch (e) { + const host = new ExecutionContextHost([req, res, next]); + exceptionsHandler.next(e, host); + return res; + } + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/resolver.js +var MiddlewareResolver; +var init_resolver = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/resolver.js"() { + MiddlewareResolver = class { + static { + __name(this, "MiddlewareResolver"); + } + middlewareContainer; + injector; + constructor(middlewareContainer, injector) { + this.middlewareContainer = middlewareContainer; + this.injector = injector; + } + async resolveInstances(moduleRef, moduleName) { + const middlewareMap = this.middlewareContainer.getMiddlewareCollection(moduleName); + const resolveInstance = /* @__PURE__ */ __name(async (wrapper) => this.resolveMiddlewareInstance(wrapper, middlewareMap, moduleRef), "resolveInstance"); + await Promise.all([...middlewareMap.values()].map(resolveInstance)); + } + async resolveMiddlewareInstance(wrapper, middlewareMap, moduleRef) { + await this.injector.loadMiddleware(wrapper, middlewareMap, moduleRef); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-path-factory.js +var RoutePathFactory; +var init_route_path_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-path-factory.js"() { + init_common(); + init_utils(); + init_internal(); + RoutePathFactory = class { + static { + __name(this, "RoutePathFactory"); + } + applicationConfig; + /** + * URI version prefixes (`/v1`, or `''` for an unversioned route) under + * which each global prefix exclusion was matched by a created route. + */ + excludedRouteVersionPrefixes = /* @__PURE__ */ new Map(); + constructor(applicationConfig) { + this.applicationConfig = applicationConfig; + } + create(metadata, requestMethod) { + let paths = [""]; + const versionOrVersions = this.getVersion(metadata); + if (versionOrVersions && metadata.versioningOptions?.type === VersioningType.URI) { + const versionPrefix = this.getVersionPrefix(metadata.versioningOptions); + if (Array.isArray(versionOrVersions)) { + paths = flatten(paths.map((path) => versionOrVersions.map((version) => ( + // Version Neutral - Do not include version in URL + version === VERSION_NEUTRAL ? path : `${path}/${versionPrefix}${version}` + )))); + } else { + if (versionOrVersions !== VERSION_NEUTRAL) { + paths = paths.map((path) => `${path}/${versionPrefix}${versionOrVersions}`); + } + } + } + paths = this.appendToAllIfDefined(paths, metadata.modulePath); + paths = this.appendToAllIfDefined(paths, metadata.ctrlPath); + paths = this.appendToAllIfDefined(paths, metadata.methodPath); + if (metadata.globalPrefix) { + paths = paths.map((path) => { + if (this.isExcludedFromGlobalPrefix(path, requestMethod, versionOrVersions, metadata.versioningOptions)) { + this.trackExcludedRoute(path, requestMethod, versionOrVersions, metadata.versioningOptions); + return path; + } + return stripEndSlash(metadata.globalPrefix || "") + path; + }); + } + return paths.map((path) => addLeadingSlash(path || "/")).map((path) => path !== "/" ? stripEndSlash(path) : path); + } + getVersion(metadata) { + return metadata.methodVersion || metadata.controllerVersion; + } + getVersionPrefix(versioningOptions) { + const defaultPrefix = "v"; + if (versioningOptions.type === VersioningType.URI) { + if (versioningOptions.prefix === false) { + return ""; + } else if (versioningOptions.prefix !== void 0) { + return versioningOptions.prefix; + } + } + return defaultPrefix; + } + appendToAllIfDefined(paths, fragmentToAppend) { + if (!fragmentToAppend) { + return paths; + } + const concatPaths = /* @__PURE__ */ __name((a, b) => stripEndSlash(a) + addLeadingSlash(b), "concatPaths"); + if (Array.isArray(fragmentToAppend)) { + const paths2dArray = paths.map((path) => fragmentToAppend.map((fragment) => concatPaths(path, fragment))); + return flatten(paths2dArray); + } + return paths.map((path) => concatPaths(path, fragmentToAppend)); + } + isExcludedFromGlobalPrefix(path, requestMethod, versionOrVersions, versioningOptions) { + if (isUndefined(requestMethod)) { + return false; + } + const options = this.applicationConfig.getGlobalPrefixOptions(); + const excludedRoutes = options.exclude; + const versionPrefix = this.getUriVersionPrefixOfPath(path, versionOrVersions, versioningOptions); + return Array.isArray(excludedRoutes) && isRouteExcluded(excludedRoutes, path.slice(versionPrefix.length), requestMethod); + } + /** + * Returns the global prefix exclusions as the paths routes are actually + * served at. Under URI versioning an exclusion such as `hello` matches the + * unversioned path, while the route lives at `/v1/hello`, so every version + * prefix a matching route was created under is prepended. An exclusion no + * created route matched (e.g. a raw route registered by a library) is kept + * as configured. + */ + getExcludedRoutePaths() { + const excludedRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude ?? []; + return excludedRoutes.flatMap((route) => { + const versionPrefixes = this.excludedRouteVersionPrefixes.get(route) ?? [ + "" + ]; + return [...versionPrefixes].map((versionPrefix) => ({ + path: versionPrefix ? versionPrefix + addLeadingSlash(route.path) : route.path, + method: route.requestMethod + })); + }); + } + trackExcludedRoute(path, requestMethod, versionOrVersions, versioningOptions) { + if (!versioningOptions && this.applicationConfig.getVersioning()) { + return; + } + const versionPrefix = this.getUriVersionPrefixOfPath(path, versionOrVersions, versioningOptions); + const unversionedPath = path.slice(versionPrefix.length); + const excludedRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude ?? []; + excludedRoutes.filter((route) => isRouteExcluded([route], unversionedPath, requestMethod)).forEach((route) => { + const versionPrefixes = this.excludedRouteVersionPrefixes.get(route) ?? /* @__PURE__ */ new Set(); + versionPrefixes.add(versionPrefix); + this.excludedRouteVersionPrefixes.set(route, versionPrefixes); + }); + } + getUriVersionPrefixOfPath(path, versionOrVersions, versioningOptions) { + if (!versionOrVersions || versionOrVersions === VERSION_NEUTRAL || versioningOptions?.type !== VersioningType.URI) { + return ""; + } + const versions = Array.isArray(versionOrVersions) ? versionOrVersions : [versionOrVersions]; + const versionPrefix = this.getVersionPrefix(versioningOptions); + for (const version of versions) { + if (typeof version !== "string") { + continue; + } + const prefix = `/${versionPrefix}${version}`; + if (path === prefix || path.startsWith(`${prefix}/`)) { + return prefix; + } + } + return ""; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/route-info-path-extractor.js +var import_path_to_regexp3, RouteInfoPathExtractor; +var init_route_info_path_extractor = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/route-info-path-extractor.js"() { + init_common(); + import_path_to_regexp3 = __toESM(require_dist2(), 1); + init_legacy_route_converter(); + init_utils(); + init_route_path_factory(); + init_utils2(); + init_internal(); + RouteInfoPathExtractor = class { + static { + __name(this, "RouteInfoPathExtractor"); + } + applicationConfig; + routePathFactory; + prefixPath; + excludedGlobalPrefixRoutes; + versioningConfig; + constructor(applicationConfig) { + this.applicationConfig = applicationConfig; + this.routePathFactory = new RoutePathFactory(applicationConfig); + this.prefixPath = stripEndSlash(addLeadingSlash(this.applicationConfig.getGlobalPrefix())); + this.excludedGlobalPrefixRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude; + this.versioningConfig = this.applicationConfig.getVersioning(); + } + extractPathsFrom({ path, method, version = this.getVersionOfUnversionedRoutes() }) { + const versionPaths = this.extractVersionPathFrom(version); + if (this.isAWildcard(path)) { + const wildcardVersionPaths = versionPaths.includes("") ? [] : versionPaths; + const entries = wildcardVersionPaths.length > 0 ? wildcardVersionPaths.map((versionPath) => [ + this.prefixPath + versionPath + "$", + this.prefixPath + versionPath + addLeadingSlash(path) + ]).flat() : this.prefixPath ? [this.prefixPath + "$", this.prefixPath + addLeadingSlash(path)] : [addLeadingSlash(path)]; + return Array.isArray(this.excludedGlobalPrefixRoutes) ? [ + ...entries, + ...this.excludedGlobalPrefixRoutes.flatMap((route) => this.getPathsOfExcludedRoute(route)).flatMap((excludedPath) => versionPaths.length > 0 ? versionPaths.map((v) => v + excludedPath) : [excludedPath]) + ] : entries; + } + return this.extractNonWildcardPathsFrom({ path, method, version }); + } + /** + * Returns the routes excluded from the global prefix that the route covers + * without being excluded itself: the router serves them without the + * prefix, out of the reach of the paths the route is mounted on. These are + * the excluded routes without parameters or wildcards that the route + * matches, such as "users/me" for "users/:id" (or a `GET` exclusion for a + * route of every method), and the root route of a controller at the + * route's own path, which an exclusion ending in an optional segment such + * as "reports/{*path}" takes out of the prefix (see + * `isExcludedWithTrailingSlash()`). + */ + extractExcludedRoutesCoveredBy({ path, method, version }) { + if (!Array.isArray(this.excludedGlobalPrefixRoutes) || this.isAWildcard(path) || isRouteExcluded(this.excludedGlobalPrefixRoutes, path, method)) { + return []; + } + let routeRegex; + try { + routeRegex = (0, import_path_to_regexp3.pathToRegexp)(LegacyRouteConverter.tryConvert(addLeadingSlash(path), { logs: false })).regexp; + } catch { + return []; + } + return this.excludedGlobalPrefixRoutes.flatMap((excludedRoute) => { + const excludedPath = addLeadingSlash(excludedRoute.path); + const excludedMethod = isRequestMethodAll(excludedRoute.requestMethod) ? method : excludedRoute.requestMethod; + if (!(isRequestMethodAll(method) || method === excludedMethod)) { + return []; + } + const coveredPath = isStaticPath(excludedPath) && routeRegex.test(excludedPath) ? excludedPath : this.isExcludedWithTrailingSlash(excludedRoute, path) ? stripEndSlash(addLeadingSlash(path)) + "/" : void 0; + if (!coveredPath) { + return []; + } + const routeInfo = { + path: coveredPath, + method: excludedMethod + }; + if (version) { + routeInfo.version = version; + } + return [routeInfo]; + }); + } + /** + * Returns the paths the router serves a route excluded from the global + * prefix at: those of its pattern and, for a pattern ending in an optional + * segment such as "reports/{*path}", the parent path ("/reports") (see + * `isExcludedWithTrailingSlash()`). + */ + getPathsOfExcludedRoute(route) { + const excludedPath = addLeadingSlash(route.path); + const parentPath = excludedPath.slice(0, excludedPath.lastIndexOf("/")); + return this.isExcludedWithTrailingSlash(route, parentPath) ? [excludedPath, parentPath] : [excludedPath]; + } + /** + * Tells whether the exclusion takes a route at the path out of the global + * prefix only through a trailing slash: the router tests the root route of + * a controller with one ("/reports/"), which an exclusion ending in an + * optional segment matches ("reports/{*path}"), and serves it at + * "/reports", which the exclusion does not match. + */ + isExcludedWithTrailingSlash({ pathRegex }, path) { + const pathWithoutSlash = stripEndSlash(addLeadingSlash(path)); + return pathWithoutSlash !== "" && pathRegex.test(pathWithoutSlash + "/") && !pathRegex.test(pathWithoutSlash); + } + getVersioningOptions() { + return this.versioningConfig; + } + extractPathFrom(route) { + if (this.isAWildcard(route.path) && !route.version) { + return [addLeadingSlash(route.path)]; + } + return this.extractNonWildcardPathsFrom(route); + } + isAWildcard(path) { + const isSimpleWildcard = ["*", "/*", "/*/", "(.*)", "/(.*)"]; + if (isSimpleWildcard.includes(path)) { + return true; + } + const wildcardRegexp = /^\/\{.*\}.*|^\/\*.*$/; + return wildcardRegexp.test(path); + } + extractNonWildcardPathsFrom({ path, method, version }) { + const versionPaths = this.extractVersionPathFrom(version); + if (Array.isArray(this.excludedGlobalPrefixRoutes) && isRouteExcluded(this.excludedGlobalPrefixRoutes, path, method)) { + if (!versionPaths.length) { + return [addLeadingSlash(path)]; + } + return versionPaths.map((versionPath) => versionPath + addLeadingSlash(path)); + } + if (!versionPaths.length) { + return [this.prefixPath + addLeadingSlash(path)]; + } + return versionPaths.map((versionPath) => this.prefixPath + versionPath + addLeadingSlash(path)); + } + /** + * Returns the versions a route given without a version (e.g. + * `forRoutes('cats')`) may be served under: no version, as for a + * version-neutral controller, and the default version, under which + * controllers without a version are served. + */ + getVersionOfUnversionedRoutes() { + if (this.versioningConfig?.type !== VersioningType.URI) { + return; + } + const { defaultVersion } = this.versioningConfig; + if (!defaultVersion) { + return; + } + const versions = /* @__PURE__ */ new Set([ + VERSION_NEUTRAL + ]); + if (Array.isArray(defaultVersion)) { + defaultVersion.forEach((version) => versions.add(version)); + } else { + versions.add(defaultVersion); + } + return [...versions]; + } + extractVersionPathFrom(versionValue) { + if (!versionValue || this.versioningConfig?.type !== VersioningType.URI) + return []; + const versionPrefix = this.routePathFactory.getVersionPrefix(this.versioningConfig); + const toVersionPath = /* @__PURE__ */ __name((version) => version === VERSION_NEUTRAL ? "" : addLeadingSlash(versionPrefix + version), "toVersionPath"); + if (Array.isArray(versionValue)) { + return versionValue.map(toVersionPath); + } + return [toVersionPath(versionValue)]; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/paths-explorer.js +var PathsExplorer; +var init_paths_explorer = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/paths-explorer.js"() { + init_internal(); + PathsExplorer = class { + static { + __name(this, "PathsExplorer"); + } + metadataScanner; + constructor(metadataScanner) { + this.metadataScanner = metadataScanner; + } + scanForPaths(instance, prototype) { + const instancePrototype = isUndefined(prototype) ? Object.getPrototypeOf(instance) : prototype; + return this.metadataScanner.getAllMethodNames(instancePrototype).reduce((acc, method) => { + const route = this.exploreMethodMetadata(instance, instancePrototype, method); + if (route) { + acc.push(route); + } + return acc; + }, []); + } + exploreMethodMetadata(instance, prototype, methodName) { + const instanceCallback = instance[methodName]; + const prototypeCallback = prototype[methodName]; + const routePath = Reflect.getMetadata(PATH_METADATA, prototypeCallback); + if (isUndefined(routePath)) { + return null; + } + const requestMethod = Reflect.getMetadata(METHOD_METADATA, prototypeCallback); + const version = Reflect.getMetadata(VERSION_METADATA, prototypeCallback); + const path = isString(routePath) ? [addLeadingSlash(routePath)] : routePath.map((p) => addLeadingSlash(p)); + return { + path, + requestMethod, + targetCallback: instanceCallback, + methodName, + version + }; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/routes-mapper.js +var RoutesMapper; +var init_routes_mapper = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/routes-mapper.js"() { + init_metadata_scanner(); + init_paths_explorer(); + init_internal(); + RoutesMapper = class { + static { + __name(this, "RoutesMapper"); + } + container; + applicationConfig; + pathsExplorer; + constructor(container, applicationConfig) { + this.container = container; + this.applicationConfig = applicationConfig; + this.pathsExplorer = new PathsExplorer(new MetadataScanner()); + } + mapRouteToRouteInfo(controllerOrRoute) { + if (isString(controllerOrRoute)) { + return this.getRouteInfoFromPath(controllerOrRoute); + } + const routePathOrPaths = this.getRoutePath(controllerOrRoute); + if (this.isRouteInfo(routePathOrPaths, controllerOrRoute)) { + return this.getRouteInfoFromObject(controllerOrRoute); + } + return this.getRouteInfoFromController(controllerOrRoute, routePathOrPaths); + } + getRouteInfoFromPath(routePath) { + const defaultRequestMethod = -1; + return [ + { + path: addLeadingSlash(routePath), + method: defaultRequestMethod + } + ]; + } + getRouteInfoFromObject(routeInfoObject) { + const routeInfo = { + path: addLeadingSlash(routeInfoObject.path), + method: routeInfoObject.method + }; + if (routeInfoObject.version) { + routeInfo.version = routeInfoObject.version; + } + return [routeInfo]; + } + getRouteInfoFromController(controller, routePath) { + const controllerPaths = this.pathsExplorer.scanForPaths(Object.create(controller), controller.prototype); + const controllerVersion = this.getVersionMetadata(controller); + const versioningConfig = this.applicationConfig.getVersioning(); + const modulePaths = this.getModulePathsOfController(controller); + const concatPaths = /* @__PURE__ */ __name((acc, currentValue) => acc.concat(currentValue), "concatPaths"); + const toRouteInfo2 = /* @__PURE__ */ __name((item, prefix, modulePath) => item.path?.flatMap((p) => { + const endpointPath = modulePath + stripEndSlash(this.normalizeGlobalPath(prefix)) + addLeadingSlash(p); + const routeInfo = { + path: endpointPath, + method: item.requestMethod + }; + const version = item.version ?? controllerVersion; + if (version && versioningConfig) { + if (typeof version !== "string" && Array.isArray(version)) { + return version.map((v) => ({ + ...routeInfo, + version: v + })); + } + routeInfo.version = version; + } + return routeInfo; + }), "toRouteInfo"); + return [].concat(routePath).flatMap((routePath2) => modulePaths.map((modulePath) => controllerPaths.map((item) => toRouteInfo2(item, routePath2, modulePath)).reduce(concatPaths, []))).reduce(concatPaths, []); + } + isRouteInfo(path, objectOrClass) { + return isUndefined(path); + } + normalizeGlobalPath(path) { + const prefix = addLeadingSlash(path); + return prefix === "/" ? "" : prefix; + } + getRoutePath(route) { + return Reflect.getMetadata(PATH_METADATA, route); + } + /** + * Returns the paths the controller is served under: the router registers it + * once for each module that declares it, under the path of that module. + */ + getModulePathsOfController(metatype) { + const modulePaths = this.getHostModulesOfController(metatype).map((moduleRef) => stripEndSlash(this.getModulePath(moduleRef.metatype) ?? "")); + return modulePaths.length > 0 ? [...new Set(modulePaths)] : [""]; + } + getHostModulesOfController(metatype) { + if (!metatype) { + return []; + } + const modulesContainer = this.container.getModules(); + return Array.from(modulesContainer.values()).filter(({ controllers }) => controllers.has(metatype)); + } + getModulePath(metatype) { + if (!metatype) { + return; + } + const modulesContainer = this.container.getModules(); + const modulePath = Reflect.getMetadata(MODULE_PATH + modulesContainer.applicationId, metatype); + return modulePath ?? Reflect.getMetadata(MODULE_PATH, metatype); + } + getVersionMetadata(metatype) { + const versioningConfig = this.applicationConfig.getVersioning(); + if (versioningConfig) { + return Reflect.getMetadata(VERSION_METADATA, metatype) ?? versioningConfig.defaultVersion; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/middleware-module.js +var MiddlewareModule; +var init_middleware_module = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/middleware-module.js"() { + init_common(); + init_invalid_middleware_exception(); + init_runtime_exception(); + init_context_id_factory(); + init_execution_context_host(); + init_constants3(); + init_request_constants(); + init_router_exception_filters(); + init_router_proxy(); + init_utils(); + init_builder(); + init_resolver(); + init_route_info_path_extractor(); + init_routes_mapper(); + init_common(); + init_internal(); + MiddlewareModule = class _MiddlewareModule { + static { + __name(this, "MiddlewareModule"); + } + routerProxy = new RouterProxy(); + logger = new Logger(_MiddlewareModule.name); + injector; + routerExceptionFilter; + routesMapper; + resolver; + container; + httpAdapter; + graphInspector; + appOptions; + routeInfoPathExtractor; + async register(middlewareContainer, container, config, injector, httpAdapter, graphInspector, options) { + this.appOptions = options; + const appRef = container.getHttpAdapterRef(); + this.routerExceptionFilter = new RouterExceptionFilters(container, config, appRef); + this.routesMapper = new RoutesMapper(container, config); + this.resolver = new MiddlewareResolver(middlewareContainer, injector); + this.routeInfoPathExtractor = new RouteInfoPathExtractor(config); + this.injector = injector; + this.container = container; + this.httpAdapter = httpAdapter; + this.graphInspector = graphInspector; + const modules = container.getModules(); + await this.resolveMiddleware(middlewareContainer, modules); + } + async resolveMiddleware(middlewareContainer, modules) { + const moduleEntries = [...modules.entries()]; + const loadMiddlewareConfiguration = /* @__PURE__ */ __name(async ([moduleName, moduleRef]) => { + await this.loadConfiguration(middlewareContainer, moduleRef, moduleName); + await this.resolver.resolveInstances(moduleRef, moduleName); + }, "loadMiddlewareConfiguration"); + await Promise.all(moduleEntries.map(loadMiddlewareConfiguration)); + } + async loadConfiguration(middlewareContainer, moduleRef, moduleKey) { + const { instance } = moduleRef; + if (!instance.configure) { + return; + } + const middlewareBuilder = new MiddlewareBuilder(this.routesMapper, this.httpAdapter, this.routeInfoPathExtractor); + try { + await instance.configure(middlewareBuilder); + } catch (err) { + if (!this.appOptions.preview) { + throw err; + } + const warningMessage = `Warning! "${moduleRef.name}" module exposes a "configure" method that throws an exception in the preview mode (possibly due to missing dependencies). Note: you can ignore this message, just be aware that some of those conditional middlewares will not be reflected in your graph.`; + this.logger.warn(warningMessage); + } + if (!(middlewareBuilder instanceof MiddlewareBuilder)) { + return; + } + const config = middlewareBuilder.build(); + middlewareContainer.insertConfig(config, moduleKey); + } + async registerMiddleware(middlewareContainer, applicationRef) { + const configs = middlewareContainer.getConfigurations(); + const registerAllConfigs = /* @__PURE__ */ __name(async (moduleKey, middlewareConfig) => { + for (const config of middlewareConfig) { + await this.registerMiddlewareConfig(middlewareContainer, config, moduleKey, applicationRef); + } + }, "registerAllConfigs"); + const entriesSortedByDistance = [...configs.entries()].sort(([moduleA], [moduleB]) => { + const moduleARef = this.container.getModuleByKey(moduleA); + const moduleBRef = this.container.getModuleByKey(moduleB); + const isModuleAGlobal = moduleARef.distance === Number.MAX_VALUE; + const isModuleBGlobal = moduleBRef.distance === Number.MAX_VALUE; + if (isModuleAGlobal && isModuleBGlobal) { + return 0; + } + if (isModuleAGlobal) { + return -1; + } + if (isModuleBGlobal) { + return 1; + } + return moduleARef.distance - moduleBRef.distance; + }); + for (const [moduleRef, moduleConfigurations] of entriesSortedByDistance) { + await registerAllConfigs(moduleRef, [...moduleConfigurations]); + } + } + async registerMiddlewareConfig(middlewareContainer, config, moduleKey, applicationRef) { + const { forRoutes } = config; + for (const routeInfo of forRoutes) { + await this.registerRouteMiddleware(middlewareContainer, routeInfo, config, moduleKey, applicationRef); + } + } + async registerRouteMiddleware(middlewareContainer, routeInfo, config, moduleKey, applicationRef) { + const middlewareCollection = [].concat(config.middleware); + const moduleRef = this.container.getModuleByKey(moduleKey); + for (const metatype of middlewareCollection) { + const collection = middlewareContainer.getMiddlewareCollection(moduleKey); + const instanceWrapper = collection.get(metatype); + if (isUndefined(instanceWrapper)) { + throw new RuntimeException(); + } + this.graphInspector.insertClassNode(moduleRef, instanceWrapper, "middleware"); + const middlewareDefinition = { + type: "middleware", + methodName: "use", + className: instanceWrapper.name, + classNodeId: instanceWrapper.id, + metadata: { + key: routeInfo.path, + path: routeInfo.path, + requestMethod: RequestMethod[routeInfo.method] ?? "ALL", + version: routeInfo.version + } + }; + this.graphInspector.insertEntrypointDefinition(middlewareDefinition, instanceWrapper.id); + await this.bindHandler(instanceWrapper, applicationRef, routeInfo, moduleRef, collection); + } + } + async bindHandler(wrapper, applicationRef, routeInfo, moduleRef, collection) { + const { instance, metatype } = wrapper; + if (isUndefined(instance?.use)) { + throw new InvalidMiddlewareException(metatype.name); + } + const isStatic = wrapper.isDependencyTreeStatic() && !wrapper.isTransient; + if (isStatic) { + const proxy = await this.createProxy(instance); + return this.registerHandler(applicationRef, routeInfo, proxy); + } + const isTreeDurable = wrapper.isDependencyTreeDurable(); + let exceptionsHandler; + await this.registerHandler(applicationRef, routeInfo, async (req, res, next) => { + try { + const contextId = this.getContextId(req, isTreeDurable); + const contextInstance = await this.injector.loadPerContext(instance, moduleRef, collection, contextId); + const proxy = await this.createProxy(contextInstance, contextId); + return proxy(req, res, next); + } catch (err) { + exceptionsHandler ??= this.routerExceptionFilter.create(instance, instance.use, void 0); + const host = new ExecutionContextHost([req, res, next]); + exceptionsHandler.next(err, host); + } + }); + } + async createProxy(instance, contextId = STATIC_CONTEXT) { + const exceptionsHandler = this.routerExceptionFilter.create(instance, instance.use, void 0, contextId); + const middleware = instance.use.bind(instance); + return this.routerProxy.createProxy(middleware, exceptionsHandler); + } + async registerHandler(applicationRef, routeInfo, proxy) { + const { method } = routeInfo; + const paths = this.routeInfoPathExtractor.extractPathsFrom(routeInfo); + const isMethodAll = isRequestMethodAll(method); + const requestMethod = RequestMethod[method]; + const router = await applicationRef.createMiddlewareFactory(method); + const middlewareFunction = isMethodAll ? proxy : (req, res, next) => { + const actualRequestMethod = applicationRef.getRequestMethod?.(req); + if (actualRequestMethod === requestMethod || actualRequestMethod === RequestMethod[RequestMethod.HEAD] && requestMethod === RequestMethod[RequestMethod.GET]) { + return proxy(req, res, next); + } + return next(); + }; + const handledRequests = /* @__PURE__ */ new WeakSet(); + const handler = /* @__PURE__ */ __name((req, res, next) => { + if (handledRequests.has(req)) { + return next(); + } + handledRequests.add(req); + return middlewareFunction(req, res, next); + }, "handler"); + const pathsToApplyMiddleware = paths.map((path) => path || "/").sort((a, b) => Number(b === "/") - Number(a === "/")); + pathsToApplyMiddleware.forEach((path) => router(path, handler)); + } + getContextId(request, isTreeDurable) { + const contextId = ContextIdFactory.getByRequest(request); + if (!request[REQUEST_CONTEXT_ID]) { + Object.defineProperty(request, REQUEST_CONTEXT_ID, { + value: contextId, + enumerable: false, + writable: false, + configurable: false + }); + const requestProviderValue = isTreeDurable ? contextId.payload : Object.assign(request, contextId.payload); + this.container.registerRequestProvider(requestProviderValue, contextId); + } + return contextId; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-instances-grouped-by-hierarchy-level.js +function getInstancesGroupedByHierarchyLevel(...collections) { + const groupedByHierarchyLevel = /* @__PURE__ */ new Map(); + for (const collection of collections) { + for (const [_, wrapper] of collection) { + if (!wrapper.isDependencyTreeStatic()) { + continue; + } + const level = wrapper.hierarchyLevel; + if (!groupedByHierarchyLevel.has(level)) { + groupedByHierarchyLevel.set(level, []); + } + const byHierarchyLevelGroup = groupedByHierarchyLevel.get(level); + if (wrapper.isTransient) { + const staticTransientInstances = wrapper.getStaticTransientInstances().filter((i) => !!i).map((i) => i.instance); + byHierarchyLevelGroup.push(...staticTransientInstances); + continue; + } + if (wrapper.instance) { + byHierarchyLevelGroup.push(wrapper.instance); + } + } + } + return groupedByHierarchyLevel; +} +var init_get_instances_grouped_by_hierarchy_level = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-instances-grouped-by-hierarchy-level.js"() { + __name(getInstancesGroupedByHierarchyLevel, "getInstancesGroupedByHierarchyLevel"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-sorted-hierarchy-levels.js +function getSortedHierarchyLevels(groups, order = "ASC") { + const comparator = order === "ASC" ? (a, b) => a - b : (a, b) => b - a; + const levels = Array.from(groups.keys()).sort(comparator); + return levels; +} +var init_get_sorted_hierarchy_levels = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-sorted-hierarchy-levels.js"() { + __name(getSortedHierarchyLevels, "getSortedHierarchyLevels"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js +function hasOnAppBootstrapHook(instance) { + return isFunction(instance.onApplicationBootstrap); +} +function callOperator(instances) { + return (0, import_iterare12.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnAppBootstrapHook).map(async (instance) => instance.onApplicationBootstrap()).toArray(); +} +async function callModuleBootstrapHook(moduleRef) { + const providers = moduleRef.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers); + const levels = getSortedHierarchyLevels(groupedInstances); + for (const level of levels) { + await Promise.all(callOperator(groupedInstances.get(level))); + } + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnAppBootstrapHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + await moduleClassInstance.onApplicationBootstrap(); + } +} +var import_iterare12; +var init_on_app_bootstrap_hook = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js"() { + init_internal(); + import_iterare12 = __toESM(require_lib(), 1); + init_get_instances_grouped_by_hierarchy_level(); + init_get_sorted_hierarchy_levels(); + __name(hasOnAppBootstrapHook, "hasOnAppBootstrapHook"); + __name(callOperator, "callOperator"); + __name(callModuleBootstrapHook, "callModuleBootstrapHook"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-shutdown.hook.js +function hasOnAppShutdownHook(instance) { + return isFunction(instance.onApplicationShutdown); +} +function callOperator2(instances, signal) { + return (0, import_iterare13.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnAppShutdownHook).map(async (instance) => instance.onApplicationShutdown(signal)).toArray(); +} +async function callAppShutdownHook(moduleRef, signal) { + const providers = moduleRef.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers); + const levels = getSortedHierarchyLevels(groupedInstances, "DESC"); + for (const level of levels) { + const results = await Promise.allSettled(callOperator2(groupedInstances.get(level), signal)); + results.filter((result) => result.status === "rejected").forEach((result) => Logger.error(result.reason, result.reason?.stack)); + } + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnAppShutdownHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + try { + await moduleClassInstance.onApplicationShutdown(signal); + } catch (err) { + Logger.error(err, err?.stack); + } + } +} +var import_iterare13; +var init_on_app_shutdown_hook = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-shutdown.hook.js"() { + init_common(); + init_internal(); + import_iterare13 = __toESM(require_lib(), 1); + init_get_instances_grouped_by_hierarchy_level(); + init_get_sorted_hierarchy_levels(); + __name(hasOnAppShutdownHook, "hasOnAppShutdownHook"); + __name(callOperator2, "callOperator"); + __name(callAppShutdownHook, "callAppShutdownHook"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-destroy.hook.js +function hasOnModuleDestroyHook(instance) { + return isFunction(instance.onModuleDestroy); +} +function callOperator3(instances) { + return (0, import_iterare14.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnModuleDestroyHook).map(async (instance) => instance.onModuleDestroy()).toArray(); +} +async function callModuleDestroyHook(moduleRef) { + const providers = moduleRef.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers); + const levels = getSortedHierarchyLevels(groupedInstances, "DESC"); + for (const level of levels) { + const results = await Promise.allSettled(callOperator3(groupedInstances.get(level))); + results.filter((result) => result.status === "rejected").forEach((result) => Logger.error(result.reason, result.reason?.stack)); + } + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnModuleDestroyHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + try { + await moduleClassInstance.onModuleDestroy(); + } catch (err) { + Logger.error(err, err?.stack); + } + } +} +var import_iterare14; +var init_on_module_destroy_hook = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-destroy.hook.js"() { + init_common(); + init_internal(); + import_iterare14 = __toESM(require_lib(), 1); + init_get_instances_grouped_by_hierarchy_level(); + init_get_sorted_hierarchy_levels(); + __name(hasOnModuleDestroyHook, "hasOnModuleDestroyHook"); + __name(callOperator3, "callOperator"); + __name(callModuleDestroyHook, "callModuleDestroyHook"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-init.hook.js +function hasOnModuleInitHook(instance) { + return isFunction(instance.onModuleInit); +} +function callOperator4(instances) { + return (0, import_iterare15.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnModuleInitHook).map(async (instance) => instance.onModuleInit()).toArray(); +} +async function callModuleInitHook(moduleRef) { + const providers = moduleRef.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers); + const levels = getSortedHierarchyLevels(groupedInstances); + for (const level of levels) { + await Promise.all(callOperator4(groupedInstances.get(level))); + } + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnModuleInitHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + await moduleClassInstance.onModuleInit(); + } +} +var import_iterare15; +var init_on_module_init_hook = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-init.hook.js"() { + init_internal(); + import_iterare15 = __toESM(require_lib(), 1); + init_get_instances_grouped_by_hierarchy_level(); + init_get_sorted_hierarchy_levels(); + __name(hasOnModuleInitHook, "hasOnModuleInitHook"); + __name(callOperator4, "callOperator"); + __name(callModuleInitHook, "callModuleInitHook"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/before-app-shutdown.hook.js +function hasBeforeApplicationShutdownHook(instance) { + return isFunction(instance.beforeApplicationShutdown); +} +function callOperator5(instances, signal) { + return (0, import_iterare16.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasBeforeApplicationShutdownHook).map(async (instance) => instance.beforeApplicationShutdown(signal)).toArray(); +} +async function callBeforeAppShutdownHook(moduleRef, signal) { + const providers = moduleRef.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers); + const levels = getSortedHierarchyLevels(groupedInstances, "DESC"); + for (const level of levels) { + const results = await Promise.allSettled(callOperator5(groupedInstances.get(level), signal)); + results.filter((result) => result.status === "rejected").forEach((result) => Logger.error(result.reason, result.reason?.stack)); + } + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasBeforeApplicationShutdownHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + try { + await moduleClassInstance.beforeApplicationShutdown(signal); + } catch (err) { + Logger.error(err, err?.stack); + } + } +} +var import_iterare16; +var init_before_app_shutdown_hook = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/before-app-shutdown.hook.js"() { + init_common(); + init_internal(); + import_iterare16 = __toESM(require_lib(), 1); + init_get_instances_grouped_by_hierarchy_level(); + init_get_sorted_hierarchy_levels(); + __name(hasBeforeApplicationShutdownHook, "hasBeforeApplicationShutdownHook"); + __name(callOperator5, "callOperator"); + __name(callBeforeAppShutdownHook, "callBeforeAppShutdownHook"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/index.js +var init_hooks = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/index.js"() { + init_on_app_bootstrap_hook(); + init_on_app_shutdown_hook(); + init_on_module_destroy_hook(); + init_on_module_init_hook(); + init_before_app_shutdown_hook(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application-context.js +var NestApplicationContext; +var init_nest_application_context = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application-context.js"() { + init_common(); + init_constants2(); + init_exceptions2(); + init_context_id_factory(); + init_hooks(); + init_abstract_instance_resolver(); + init_injector(); + init_instance_links_host(); + init_internal(); + NestApplicationContext = class _NestApplicationContext extends AbstractInstanceResolver { + static { + __name(this, "NestApplicationContext"); + } + container; + appOptions; + contextModule; + scope; + isInitialized = false; + injector; + logger = new Logger(_NestApplicationContext.name, { + timestamp: true + }); + shouldFlushLogsOnOverride = false; + shutdownCleanupRefs = /* @__PURE__ */ new Map(); + moduleCompiler; + shutdownPromise; + receivedSignal = false; + _instanceLinksHost; + _moduleRefsForHooksByDistance; + initializationPromise; + get instanceLinksHost() { + if (!this._instanceLinksHost) { + this._instanceLinksHost = new InstanceLinksHost(this.container); + } + return this._instanceLinksHost; + } + constructor(container, appOptions = {}, contextModule = null, scope = new Array()) { + super(); + this.container = container; + this.appOptions = appOptions; + this.contextModule = contextModule; + this.scope = scope; + this.injector = new Injector(); + this.moduleCompiler = container.getModuleCompiler(); + if (this.appOptions.preview) { + this.printInPreviewModeWarning(); + } + } + selectContextModule() { + const modules = this.container.getModules().values(); + this.contextModule = modules.next().value; + } + /** + * Allows navigating through the modules tree, for example, to pull out a specific instance from the selected module. + * @returns {INestApplicationContext} + */ + select(moduleType, selectOptions) { + const modulesContainer = this.container.getModules(); + const contextModuleCtor = this.contextModule.metatype; + const scope = this.scope.concat(contextModuleCtor); + const moduleTokenFactory = this.container.getModuleTokenFactory(); + const { type, dynamicMetadata } = this.moduleCompiler.extractMetadata(moduleType); + const token = dynamicMetadata ? moduleTokenFactory.createForDynamic(type, dynamicMetadata, moduleType) : moduleTokenFactory.createForStatic(type, moduleType); + const selectedModule = modulesContainer.get(token); + if (!selectedModule) { + throw new UnknownModuleException(type.name); + } + const options = typeof selectOptions?.abortOnError !== "undefined" ? { + ...this.appOptions, + ...selectOptions + } : this.appOptions; + return new _NestApplicationContext(this.container, options, selectedModule, scope); + } + /** + * Retrieves an instance (or a list of instances) of either injectable or controller, otherwise, throws exception. + * @returns {TResult | Array} + */ + get(typeOrToken, options = { strict: false }) { + return !(options && options.strict) ? this.find(typeOrToken, options) : this.find(typeOrToken, { + moduleId: this.contextModule?.id, + each: options.each + }); + } + /** + * Resolves transient or request-scoped instance (or a list of instances) of either injectable or controller, otherwise, throws exception. + * @returns {Promise>} + */ + resolve(typeOrToken, contextId = createContextId(), options = { strict: false }) { + return this.resolvePerContext(typeOrToken, this.contextModule, contextId, options); + } + /** + * Registers the request/context object for a given context ID (DI container sub-tree). + * @returns {void} + */ + registerRequestByContextId(request, contextId) { + this.container.registerRequestProvider(request, contextId); + } + /** + * Initializes the Nest application. + * Calls the Nest lifecycle events. + * + * @returns {Promise} The NestApplicationContext instance as Promise + */ + async init() { + if (this.isInitialized) { + return this; + } + this.initializationPromise = this.callInitHook().then(() => this.callBootstrapHook()); + try { + await this.initializationPromise; + } catch (err) { + this.flushLogsIfAutoFlushEnabled(); + throw err; + } + this.isInitialized = true; + return this; + } + /** + * Terminates the application + * @returns {Promise} + */ + async close(signal) { + await this.shutdown(signal); + } + /** + * Runs the shutdown sequence, at most once per cycle. Callers that arrive + * while a shutdown is already in flight - a process signal delivered during + * an explicit `close()`, or the other way round - await the very same + * promise instead of starting a second, concurrent teardown. + * + * @param {string} [signal] The system signal that triggered the shutdown + * @returns {Promise} + */ + shutdown(signal) { + this.shutdownPromise ??= this.runShutdownSequence(signal).finally(() => { + this.shutdownPromise = void 0; + }); + return this.shutdownPromise; + } + async runShutdownSequence(signal) { + await this.initializationPromise?.catch(() => void 0); + await this.prepareClose(); + await this.callDestroyHook(); + await this.callBeforeShutdownHook(signal); + await this.dispose(); + await this.callShutdownHook(signal); + this.unsubscribeFromProcessSignals(); + } + /** + * Sets custom logger service. + * Flushes buffered logs if auto flush is on. + * @returns {void} + */ + useLogger(logger3) { + Logger.overrideLogger(logger3); + if (this.shouldFlushLogsOnOverride) { + this.flushLogs(); + } + } + /** + * Prints buffered logs and detaches buffer. + * @returns {void} + */ + flushLogs() { + Logger.flush(); + } + flushLogsIfAutoFlushEnabled() { + if (this.appOptions?.autoFlushLogs ?? true) { + this.flushLogs(); + } + } + /** + * Define that it must flush logs right after defining a custom logger. + */ + flushLogsOnOverride() { + this.shouldFlushLogsOnOverride = true; + } + /** + * Enables the usage of shutdown hooks. Will call the + * `onApplicationShutdown` function of a provider if the + * process receives a shutdown signal. + * + * Repeated calls are idempotent per signal. Shutdown hooks can be + * re-enabled after the application context has been closed. + * + * @param {ShutdownSignal[]} [signals=[]] The system signals it should listen to + * @param {ShutdownHooksOptions} [options={}] Options for configuring shutdown hooks behavior + * + * @returns {this} The Nest application context instance + */ + enableShutdownHooks(signals = [], options = {}) { + if (!signals || isEmptyArray(signals)) { + signals = Object.values(ShutdownSignal); + } + signals = Array.from(new Set(signals.map((signal) => signal.toString().toUpperCase().trim()))).filter((signal) => !this.shutdownCleanupRefs.has(signal)); + this.listenToShutdownSignals(signals, options); + return this; + } + async prepareClose() { + return Promise.resolve(); + } + async dispose() { + return Promise.resolve(); + } + /** + * Listens to shutdown signals by listening to + * process events + * + * @param {string[]} signals The system signals it should listen to + * @param {ShutdownHooksOptions} options Options for configuring shutdown hooks behavior + */ + listenToShutdownSignals(signals, options = {}) { + const cleanup = /* @__PURE__ */ __name(async (signal) => { + try { + if (this.receivedSignal) { + return; + } + this.receivedSignal = true; + await this.shutdown(signal).finally(() => { + this.receivedSignal = false; + }); + if (options.useProcessExit) { + process.exit(0); + } else { + process.kill(process.pid, signal); + } + } catch (err) { + Logger.error(MESSAGES.ERROR_DURING_SHUTDOWN, err?.stack, _NestApplicationContext.name); + process.exit(1); + } + }, "cleanup"); + signals.forEach((signal) => { + this.shutdownCleanupRefs.set(signal, cleanup); + process.on(signal, cleanup); + }); + } + /** + * Unsubscribes from shutdown signals (process events) + */ + unsubscribeFromProcessSignals() { + this.shutdownCleanupRefs.forEach((cleanup, signal) => { + process.removeListener(signal, cleanup); + }); + this.shutdownCleanupRefs.clear(); + } + /** + * Calls the `onModuleInit` function on the registered + * modules and its children. + */ + async callInitHook() { + const modulesSortedByDistance = this.getModulesToTriggerHooksOn(); + for (const module of modulesSortedByDistance) { + await callModuleInitHook(module); + } + } + /** + * Calls the `onModuleDestroy` function on the registered + * modules and its children. + */ + async callDestroyHook() { + const modulesSortedByDistance = [ + ...this.getModulesToTriggerHooksOn() + ].reverse(); + for (const module of modulesSortedByDistance) { + await callModuleDestroyHook(module); + } + } + /** + * Calls the `onApplicationBootstrap` function on the registered + * modules and its children. + */ + async callBootstrapHook() { + const modulesSortedByDistance = this.getModulesToTriggerHooksOn(); + for (const module of modulesSortedByDistance) { + await callModuleBootstrapHook(module); + } + } + /** + * Calls the `onApplicationShutdown` function on the registered + * modules and children. + */ + async callShutdownHook(signal) { + const modulesSortedByDistance = [ + ...this.getModulesToTriggerHooksOn() + ].reverse(); + for (const module of modulesSortedByDistance) { + await callAppShutdownHook(module, signal); + } + } + /** + * Calls the `beforeApplicationShutdown` function on the registered + * modules and children. + */ + async callBeforeShutdownHook(signal) { + const modulesSortedByDistance = [ + ...this.getModulesToTriggerHooksOn() + ].reverse(); + for (const module of modulesSortedByDistance) { + await callBeforeAppShutdownHook(module, signal); + } + } + assertNotInPreviewMode(methodName) { + if (this.appOptions.preview) { + const error = `Calling the "${methodName}" in the preview mode is not supported.`; + this.logger.error(error); + throw new Error(error); + } + } + getModulesToTriggerHooksOn() { + if (this._moduleRefsForHooksByDistance) { + return this._moduleRefsForHooksByDistance; + } + const modulesContainer = this.container.getModules(); + const compareFn = /* @__PURE__ */ __name((a, b) => b.distance - a.distance, "compareFn"); + const modulesSortedByDistance = Array.from(modulesContainer.values()).sort(compareFn); + this._moduleRefsForHooksByDistance = this.appOptions?.preview ? modulesSortedByDistance.filter((moduleRef) => moduleRef.initOnPreview) : modulesSortedByDistance; + return this._moduleRefsForHooksByDistance; + } + printInPreviewModeWarning() { + this.logger.warn("------------------------------------------------"); + this.logger.warn("Application is running in the PREVIEW mode!"); + this.logger.warn("Providers/controllers will not be instantiated."); + this.logger.warn("------------------------------------------------"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/messages.js +var MODULE_INIT_MESSAGE, ROUTE_MAPPED_MESSAGE, VERSIONED_ROUTE_MAPPED_MESSAGE, CONTROLLER_MAPPING_MESSAGE, VERSIONED_CONTROLLER_MAPPING_MESSAGE; +var init_messages2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/messages.js"() { + init_common(); + MODULE_INIT_MESSAGE = /* @__PURE__ */ __name((text, module) => `${module} dependencies initialized`, "MODULE_INIT_MESSAGE"); + ROUTE_MAPPED_MESSAGE = /* @__PURE__ */ __name((path, method) => `Mapped {${path}, ${RequestMethod[method]}} route`, "ROUTE_MAPPED_MESSAGE"); + VERSIONED_ROUTE_MAPPED_MESSAGE = /* @__PURE__ */ __name((path, method, version) => { + const controllerVersions = Array.isArray(version) ? version : [version]; + const versions = controllerVersions.map((version2) => version2 === VERSION_NEUTRAL ? "Neutral" : version2).join(","); + return `Mapped {${path}, ${RequestMethod[method]}} (version: ${versions}) route`; + }, "VERSIONED_ROUTE_MAPPED_MESSAGE"); + CONTROLLER_MAPPING_MESSAGE = /* @__PURE__ */ __name((name, path) => `${name} {${path}}:`, "CONTROLLER_MAPPING_MESSAGE"); + VERSIONED_CONTROLLER_MAPPING_MESSAGE = /* @__PURE__ */ __name((name, path, version) => { + const controllerVersions = Array.isArray(version) ? version : [version]; + const versions = controllerVersions.map((version2) => version2 === VERSION_NEUTRAL ? "Neutral" : version2).join(","); + return `${name} {${path}} (version: ${versions}):`; + }, "VERSIONED_CONTROLLER_MAPPING_MESSAGE"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-request-mapping.exception.js +var UnknownRequestMappingException; +var init_unknown_request_mapping_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-request-mapping.exception.js"() { + init_runtime_exception(); + init_messages(); + UnknownRequestMappingException = class extends RuntimeException { + static { + __name(this, "UnknownRequestMappingException"); + } + constructor(metatype) { + super(UNKNOWN_REQUEST_MAPPING(metatype)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/router-method-factory.js +var REQUEST_METHOD_MAP, RouterMethodFactory; +var init_router_method_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/router-method-factory.js"() { + init_common(); + REQUEST_METHOD_MAP = { + [RequestMethod.GET]: "get", + [RequestMethod.POST]: "post", + [RequestMethod.PUT]: "put", + [RequestMethod.DELETE]: "delete", + [RequestMethod.PATCH]: "patch", + [RequestMethod.ALL]: "all", + [RequestMethod.OPTIONS]: "options", + [RequestMethod.HEAD]: "head", + [RequestMethod.SEARCH]: "search", + [RequestMethod.PROPFIND]: "propfind", + [RequestMethod.PROPPATCH]: "proppatch", + [RequestMethod.MKCOL]: "mkcol", + [RequestMethod.COPY]: "copy", + [RequestMethod.MOVE]: "move", + [RequestMethod.LOCK]: "lock", + [RequestMethod.UNLOCK]: "unlock", + [RequestMethod.QUERY]: "query" + }; + RouterMethodFactory = class { + static { + __name(this, "RouterMethodFactory"); + } + get(target, requestMethod) { + const methodName = REQUEST_METHOD_MAP[requestMethod]; + const method = target[methodName]; + if (!method) { + return target.use; + } + return method; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/parse-cookie-header.js +function parseCookieHeader(header) { + const cookies = /* @__PURE__ */ Object.create(null); + if (!header) { + return cookies; + } + const source = Array.isArray(header) ? header.join("; ") : String(header); + for (const pair of source.split(";")) { + const eqIndex = pair.indexOf("="); + if (eqIndex === -1) { + continue; + } + const name = trimWhitespace(pair.slice(0, eqIndex)); + if (!name || name in cookies) { + continue; + } + let value = trimWhitespace(pair.slice(eqIndex + 1)); + if (value.length >= 2 && value[0] === '"' && value.endsWith('"')) { + value = value.slice(1, -1); + } + cookies[name] = safeDecode(value); + } + return cookies; +} +function trimWhitespace(input) { + let start = 0; + let end = input.length; + while (start < end && isWhitespace(input.charCodeAt(start))) { + start++; + } + while (end > start && isWhitespace(input.charCodeAt(end - 1))) { + end--; + } + return input.slice(start, end); +} +function isWhitespace(charCode) { + return charCode === 32 || charCode === 9; +} +function safeDecode(value) { + if (!value.includes("%")) { + return value; + } + try { + return decodeURIComponent(value); + } catch { + return value; + } +} +var init_parse_cookie_header = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/parse-cookie-header.js"() { + __name(parseCookieHeader, "parseCookieHeader"); + __name(trimWhitespace, "trimWhitespace"); + __name(isWhitespace, "isWhitespace"); + __name(safeDecode, "safeDecode"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/request-cookies.js +function getParsedCookieHeader(req) { + let cookies = parsedCookiesCache.get(req); + if (!cookies) { + cookies = parseCookieHeader(req.headers?.cookie); + parsedCookiesCache.set(req, cookies); + } + return cookies; +} +function getRequestCookies(req) { + if (isObject(req.cookies)) { + return req.cookies; + } + return getParsedCookieHeader(req); +} +function getRequestCookie(req, name) { + const cookies = getRequestCookies(req); + return Object.prototype.hasOwnProperty.call(cookies, name) ? cookies[name] : void 0; +} +function getRequestSignedCookies(req, signer) { + const signedCookies = /* @__PURE__ */ Object.create(null); + if (signer) { + const cookies = getParsedCookieHeader(req); + for (const name of Object.keys(cookies)) { + const value = signer.unsign(cookies[name]); + if (value !== void 0) { + signedCookies[name] = value; + } + } + return signedCookies; + } + if (isObject(req.signedCookies)) { + for (const [name, value] of Object.entries(req.signedCookies)) { + if (value !== false) { + signedCookies[name] = value; + } + } + return signedCookies; + } + throw new Error('Cannot read signed cookies: no cookie secret is configured. Pass "cookies: { secret }" to NestFactory.create().'); +} +function getRequestSignedCookie(req, name, signer) { + if (signer) { + const value = getParsedCookieHeader(req)[name]; + return value === void 0 ? void 0 : signer.unsign(value); + } + return getRequestSignedCookies(req, signer)[name]; +} +var parsedCookiesCache; +var init_request_cookies = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/request-cookies.js"() { + init_internal(); + init_parse_cookie_header(); + parsedCookiesCache = /* @__PURE__ */ new WeakMap(); + __name(getParsedCookieHeader, "getParsedCookieHeader"); + __name(getRequestCookies, "getRequestCookies"); + __name(getRequestCookie, "getRequestCookie"); + __name(getRequestSignedCookies, "getRequestSignedCookies"); + __name(getRequestSignedCookie, "getRequestSignedCookie"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-params-factory.js +var getBodyProperty, RouteParamsFactory; +var init_route_params_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-params-factory.js"() { + init_internal(); + init_request_cookies(); + getBodyProperty = /* @__PURE__ */ __name((body, key) => isObject(body) && !Array.isArray(body) && !ArrayBuffer.isView(body) || !isNil(body) && Object.hasOwn(Object(body), key) ? body[key] : void 0, "getBodyProperty"); + RouteParamsFactory = class { + static { + __name(this, "RouteParamsFactory"); + } + config; + constructor(config) { + this.config = config; + } + exchangeKeyForValue(key, data, { req, res, next }) { + switch (key) { + case RouteParamtypes.NEXT: + return next; + case RouteParamtypes.REQUEST: + return req; + case RouteParamtypes.RESPONSE: + return res; + case RouteParamtypes.BODY: + return data && req.body ? getBodyProperty(req.body, data) : req.body; + case RouteParamtypes.RAW_BODY: + return req.rawBody; + case RouteParamtypes.PARAM: + return data ? req.params[data] : req.params; + case RouteParamtypes.HOST: + const hosts = req.hosts || {}; + return data ? hosts[data] : hosts; + case RouteParamtypes.QUERY: + return data ? req.query[data] : req.query; + case RouteParamtypes.HEADERS: + return data ? req.headers[data.toLowerCase()] : req.headers; + case RouteParamtypes.SESSION: + return req.session; + case RouteParamtypes.FILE: + return req[data || "file"]; + case RouteParamtypes.FILES: + return req.files; + case RouteParamtypes.IP: + return req.ip; + case RouteParamtypes.COOKIES: + return data ? getRequestCookie(req, data) : getRequestCookies(req); + case RouteParamtypes.SIGNED_COOKIES: { + const signer = this.config?.getCookieSigner(); + return data ? getRequestSignedCookie(req, data, signer) : getRequestSignedCookies(req, signer); + } + default: + return null; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/rejected-by-pipes.js +function markRejectedByPipes(request) { + if (typeof request === "object" && request !== null) { + rejectedRequests.add(request); + } +} +function isRejectedByPipes(request) { + return rejectedRequests.has(request); +} +var rejectedRequests; +var init_rejected_by_pipes = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/rejected-by-pipes.js"() { + rejectedRequests = /* @__PURE__ */ new WeakSet(); + __name(markRejectedByPipes, "markRejectedByPipes"); + __name(isRejectedByPipes, "isRejectedByPipes"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/sse-stream.js +import { Transform } from "stream"; +function serializeSseLines(value, prefix) { + return value.split(/\r\n|\r|\n/).map((line) => `${prefix}${line} +`).join(""); +} +function toDataString(data) { + if (isObject(data)) { + return toDataString(JSON.stringify(data)); + } + return serializeSseLines(data, "data: "); +} +function toCommentString(comment) { + return serializeSseLines(comment, ": "); +} +function omitHeaders(headers, names) { + const omitted = new Set(names.map((name) => name.toLowerCase())); + return Object.fromEntries(Object.entries(headers ?? {}).filter(([name]) => !omitted.has(name.toLowerCase()))); +} +function formatMessage(message) { + const sanitize = /* @__PURE__ */ __name((val) => String(val).replace(/[\r\n]/g, ""), "sanitize"); + let data = message.type ? `event: ${sanitize(message.type)} +` : ""; + data += !isNil(message.id) ? `id: ${sanitize(message.id)} +` : ""; + data += !isNil(message.retry) ? `retry: ${sanitize(message.retry)} +` : ""; + data += !isNil(message.comment) ? toCommentString(message.comment) : ""; + data += !isNil(message.data) ? toDataString(message.data) : ""; + return data + "\n"; +} +function isCommentOnly(message) { + return !isNil(message.comment) && isUndefined(message.data) && isUndefined(message.type) && isUndefined(message.retry); +} +var SseStream; +var init_sse_stream = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/sse-stream.js"() { + init_internal(); + __name(serializeSseLines, "serializeSseLines"); + __name(toDataString, "toDataString"); + __name(toCommentString, "toCommentString"); + __name(omitHeaders, "omitHeaders"); + __name(formatMessage, "formatMessage"); + __name(isCommentOnly, "isCommentOnly"); + SseStream = class extends Transform { + static { + __name(this, "SseStream"); + } + lastEventId = null; + _headersCommitted = false; + _destination = null; + _statusCode; + _additionalHeaders; + _isHttp2; + constructor(req) { + super({ objectMode: true }); + this._isHttp2 = (req?.httpVersionMajor ?? 1) > 1; + if (req && req.socket && !this._isHttp2) { + req.socket.setKeepAlive(true); + req.socket.setNoDelay(true); + req.socket.setTimeout(0); + } + } + get headersCommitted() { + return this._headersCommitted; + } + pipe(destination, options) { + this._destination = destination; + this._statusCode = options?.statusCode; + this._additionalHeaders = options?.additionalHeaders; + return super.pipe(destination, options); + } + /** + * Writes SSE headers to the destination if they have not been sent yet. + * The sources are read here, not in `pipe()`, to pick up the values that + * interceptors and handlers set after piping. + */ + commitHeaders() { + if (this._headersCommitted || !this._destination || this._destination.writableEnded) { + return; + } + const statusCode = this.readStatusCode(); + const additionalHeaders = this.readAdditionalHeaders(); + if (this._destination.writeHead) { + const sseHeaders = { + // See https://github.com/dunglas/mercure/blob/main/subscribe.go#L347-L362 + "Content-Type": "text/event-stream", + // Hop-by-hop header, forbidden in HTTP/2 + // https://www.rfc-editor.org/rfc/rfc9113#section-8.2.2 + ...!this._isHttp2 && { Connection: "keep-alive" }, + // Disable cache, even for old browsers and proxies + "Cache-Control": "private, no-cache, no-store, must-revalidate, max-age=0, no-transform", + Pragma: "no-cache", + Expires: "0", + // NGINX support https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/#x-accel-buffering + "X-Accel-Buffering": "no" + }; + this._destination.writeHead(statusCode, { + ...omitHeaders(additionalHeaders, Object.keys(sseHeaders)), + ...sseHeaders + }); + this._destination.flushHeaders?.(); + } + this._headersCommitted = true; + this._destination.write("\n"); + } + readStatusCode() { + const source = this._statusCode; + return (isFunction(source) ? source() : source) ?? 200; + } + readAdditionalHeaders() { + const source = this._additionalHeaders; + return isFunction(source) ? source() : source; + } + _transform(message, encoding, callback) { + this.commitHeaders(); + this.push(isString(message) ? message : formatMessage(message)); + callback(); + } + /** + * Calls `.write` but handles the drain if needed + */ + writeMessage(message, cb) { + let event = message; + if (isNil(message.id) && !isCommentOnly(message)) { + this.lastEventId++; + event = { + type: message.type, + id: this.lastEventId.toString(), + retry: message.retry, + comment: message.comment, + data: message.data + }; + } + let chunk; + try { + chunk = formatMessage(event); + } catch (err) { + process.nextTick(cb, err); + return; + } + if (!this.write(chunk, "utf-8")) { + this.once("drain", cb); + } else { + process.nextTick(cb); + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-response-controller.js +function getDataLength(message) { + return (isString(message.data) ? message.data.length : 0) + (isString(message.comment) ? message.comment.length : 0); +} +var import_rxjs7, import_operators2, DEFAULT_MAX_PENDING_DATA_LENGTH, RouterResponseController; +var init_router_response_controller = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-response-controller.js"() { + init_common(); + import_rxjs7 = __toESM(require_cjs(), 1); + import_operators2 = __toESM(require_operators(), 1); + init_constants2(); + init_base_exception_filter(); + init_sse_stream(); + init_internal(); + DEFAULT_MAX_PENDING_DATA_LENGTH = 4 * 1024 * 1024; + __name(getDataLength, "getDataLength"); + RouterResponseController = class _RouterResponseController { + static { + __name(this, "RouterResponseController"); + } + applicationRef; + logger = new Logger(_RouterResponseController.name); + exceptionFilter = new BaseExceptionFilter(); + constructor(applicationRef) { + this.applicationRef = applicationRef; + } + async apply(result, response, httpStatusCode) { + return this.applicationRef.reply(response, result, httpStatusCode); + } + async redirect(resultOrDeferred, response, redirectResponse) { + const result = await this.transformToResult(resultOrDeferred); + const statusCode = result && result.statusCode ? result.statusCode : redirectResponse.statusCode ? redirectResponse.statusCode : HttpStatus.FOUND; + const url = result && result.url ? result.url : redirectResponse.url; + return this.applicationRef.redirect(response, statusCode, url); + } + async render(resultOrDeferred, response, template) { + const result = await this.transformToResult(resultOrDeferred); + return this.applicationRef.render(response, template, result); + } + async transformToResult(resultOrDeferred) { + if ((0, import_rxjs7.isObservable)(resultOrDeferred)) { + return (0, import_rxjs7.lastValueFrom)(resultOrDeferred); + } + return resultOrDeferred; + } + getStatusByMethod(requestMethod) { + switch (requestMethod) { + case RequestMethod.POST: + return HttpStatus.CREATED; + default: + return HttpStatus.OK; + } + } + setHeaders(response, headers) { + headers.forEach(({ name, value }) => this.applicationRef.setHeader(response, name, typeof value === "function" ? value() : value)); + } + setStatus(response, statusCode) { + this.applicationRef.status(response, statusCode); + } + async sse(result, response, request, options) { + if (response.writableEnded) { + this.getOrCreateAbortController(request).abort(); + Promise.resolve(result).catch((err) => this.logger.error(err)); + return; + } + const stream = new SseStream(request); + const abortController = this.getOrCreateAbortController(request); + return new Promise((resolve, reject) => { + let settled = false; + let subscription; + const disconnectSource = request.socket ?? response; + const finalize = /* @__PURE__ */ __name(() => { + disconnectSource.removeListener("close", onClose); + abortController.abort(); + }, "finalize"); + const endStream = /* @__PURE__ */ __name(() => { + if (!stream.writableEnded) { + stream.end(); + } + }, "endStream"); + const fail2 = /* @__PURE__ */ __name((err) => { + settled = true; + finalize(); + subscription?.unsubscribe(); + stream.unpipe(response); + endStream(); + reject(err); + }, "fail"); + const commitHeaders = /* @__PURE__ */ __name(() => { + try { + stream.commitHeaders(); + return true; + } catch (err) { + fail2(err); + return false; + } + }, "commitHeaders"); + const onClose = /* @__PURE__ */ __name(() => { + if (settled) { + return; + } + settled = true; + finalize(); + subscription?.unsubscribe(); + endStream(); + response.end(); + resolve(); + }, "onClose"); + disconnectSource.once("close", onClose); + if (disconnectSource.destroyed) { + onClose(); + } + Promise.resolve(result).then((observableResult) => { + if (settled) { + return; + } + this.assertObservable(observableResult); + stream.pipe(response, { + additionalHeaders: options?.additionalHeaders, + statusCode: options?.statusCode ?? (() => response.statusCode) + }); + let pendingDataLength = 0; + const maxPendingDataLength = options?.maxPendingDataLength ?? DEFAULT_MAX_PENDING_DATA_LENGTH; + subscription = observableResult.pipe( + (0, import_operators2.map)((message) => { + const event = isObject(message) ? message : { data: message }; + return isNil(event.data) || isString(event.data) ? event : { + type: event.type, + id: event.id, + retry: event.retry, + comment: event.comment, + data: JSON.stringify(event.data) + }; + }), + // Events wait in concatMap() while the client is not reading. + // Past a limit, the connection is dropped as if the client had + // disconnected, rather than holding events for a client that may + // never read them. An EventSource then reconnects, and sends the + // id of the last event it received. A limit of 0, like Infinity, + // keeps every event. + (0, import_operators2.tap)((message) => { + pendingDataLength += getDataLength(message); + if (maxPendingDataLength && pendingDataLength > maxPendingDataLength && stream.writableNeedDrain) { + this.logger.warn(`The client is not reading its events: ${pendingDataLength} character(s) of event data are queued for it, which exceeds the maximum allowed ${maxPendingDataLength}`); + response.destroy?.(); + onClose(); + } + }), + (0, import_operators2.concatMap)((message) => new Promise((resolve2, reject2) => stream.writeMessage(message, (err) => { + pendingDataLength -= getDataLength(message); + return err ? reject2(err) : resolve2(); + }))), + (0, import_operators2.catchError)((err) => { + if (!stream.headersCommitted) { + throw err; + } + const data = err instanceof HttpException || this.exceptionFilter.isHttpError(err) ? err.message : MESSAGES.UNKNOWN_EXCEPTION_MESSAGE; + if (!(err instanceof IntrinsicException)) { + this.logger.error(err); + } + stream.writeMessage({ type: "error", data }, (writeError) => { + if (writeError) { + this.logger.error(writeError); + } + }); + return import_rxjs7.EMPTY; + }) + ).subscribe({ + error: /* @__PURE__ */ __name((err) => { + if (settled) { + return; + } + fail2(err); + }, "error"), + complete: /* @__PURE__ */ __name(() => { + if (settled) { + return; + } + if (!commitHeaders()) { + return; + } + settled = true; + finalize(); + endStream(); + resolve(); + }, "complete") + }); + if (settled) { + subscription.unsubscribe(); + } + setTimeout(() => { + if (settled || !commitHeaders()) { + return; + } + if (request.method === "HEAD") { + settled = true; + finalize(); + subscription?.unsubscribe(); + endStream(); + resolve(); + } + }, 0); + }).catch((err) => { + if (settled) { + return; + } + fail2(err); + }); + }); + } + assertObservable(value) { + if (!(0, import_rxjs7.isObservable)(value)) { + throw new ReferenceError("You must return an Observable stream to use Server-Sent Events (SSE)."); + } + } + getOrCreateAbortController(request) { + const carrier = request; + if (!carrier[SSE_ABORT_CONTROLLER]) { + carrier[SSE_ABORT_CONTROLLER] = new AbortController(); + } + return carrier[SSE_ABORT_CONTROLLER]; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-execution-context.js +var import_rxjs8, import_operators3, isThenable2, RouterExecutionContext; +var init_router_execution_context = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-execution-context.js"() { + init_common(); + init_internal(); + import_rxjs8 = __toESM(require_cjs(), 1); + import_operators3 = __toESM(require_operators(), 1); + init_guards(); + init_context_utils(); + init_destroy_streamable_file(); + init_handler_metadata_storage(); + init_constants3(); + init_rejected_by_pipes(); + init_router_response_controller(); + isThenable2 = /* @__PURE__ */ __name((value) => value !== null && (typeof value === "object" || typeof value === "function") && typeof value.then === "function", "isThenable"); + RouterExecutionContext = class { + static { + __name(this, "RouterExecutionContext"); + } + paramsFactory; + pipesContextCreator; + pipesConsumer; + guardsContextCreator; + guardsConsumer; + interceptorsContextCreator; + interceptorsConsumer; + applicationRef; + handlerMetadataStorage = new HandlerMetadataStorage(); + contextUtils = new ContextUtils(); + responseController; + constructor(paramsFactory, pipesContextCreator, pipesConsumer, guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, applicationRef) { + this.paramsFactory = paramsFactory; + this.pipesContextCreator = pipesContextCreator; + this.pipesConsumer = pipesConsumer; + this.guardsContextCreator = guardsContextCreator; + this.guardsConsumer = guardsConsumer; + this.interceptorsContextCreator = interceptorsContextCreator; + this.interceptorsConsumer = interceptorsConsumer; + this.applicationRef = applicationRef; + this.responseController = new RouterResponseController(applicationRef); + } + create(instance, callback, methodName, moduleKey, requestMethod, contextId = STATIC_CONTEXT, inquirerId) { + const contextType = "http"; + const { argsLength, fnHandleResponse, isSseHandler, paramtypes, getParamsMetadata, httpStatusCode, responseHeaders, hasCustomHeaders } = this.getMetadata(instance, callback, methodName, moduleKey, requestMethod, contextType); + const paramsOptions = this.contextUtils.mergeParamsMetatypes(getParamsMetadata(moduleKey, contextId, inquirerId), paramtypes); + const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const interceptors = this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const fnCanActivate = this.createGuardsFn(guards, instance, callback, contextType); + const fnApplyPipes = this.createPipesFn(pipes, paramsOptions); + const handler = /* @__PURE__ */ __name((args, req, res, next, handlerObservable$, handlerFiles = []) => async () => { + try { + const pendingPipes = fnApplyPipes && fnApplyPipes(args, req, res, next); + pendingPipes && await pendingPipes; + } catch (err) { + markRejectedByPipes(req); + throw err; + } + const result = callback.apply(instance, args); + if (!handlerObservable$) { + return result; + } + this.notifyIfObservable(result, handlerObservable$); + return (0, import_rxjs8.isObservable)(result) ? result.pipe((0, import_operators3.tap)((value) => value instanceof StreamableFile && handlerFiles.push(value))) : result; + }, "handler"); + return async (req, res, next) => { + const args = this.contextUtils.createNullArray(argsLength); + fnCanActivate && await fnCanActivate([req, res, next]); + this.responseController.setStatus(res, httpStatusCode); + hasCustomHeaders && this.responseController.setHeaders(res, responseHeaders); + if (isSseHandler) { + this.attachSseAbortSignal(req); + } + const handlerObservable$ = isSseHandler || isEmptyArray(interceptors) ? void 0 : new import_rxjs8.ReplaySubject(1); + const handlerFiles = []; + const resultOrDeferred = this.interceptorsConsumer.intercept(interceptors, [req, res, next], instance, callback, handler(args, req, res, next, handlerObservable$, handlerFiles), contextType); + const result = isSseHandler ? resultOrDeferred : await resultOrDeferred; + await fnHandleResponse(result, res, req, handlerObservable$, handlerFiles); + }; + } + getMetadata(instance, callback, methodName, moduleKey, requestMethod, contextType) { + const cacheMetadata = this.handlerMetadataStorage.get(instance, methodName); + if (cacheMetadata) { + return cacheMetadata; + } + const metadata = this.contextUtils.reflectCallbackMetadata(instance, methodName, ROUTE_ARGS_METADATA) || {}; + const keys = Object.keys(metadata); + const argsLength = this.contextUtils.getArgumentsLength(keys, metadata); + const paramtypes = this.contextUtils.reflectCallbackParamtypes(instance, methodName); + const contextFactory = this.contextUtils.getContextFactory(contextType, instance, callback); + const getParamsMetadata = /* @__PURE__ */ __name((moduleKey2, contextId = STATIC_CONTEXT, inquirerId) => this.exchangeKeysForValues(keys, metadata, moduleKey2, contextId, inquirerId, contextFactory), "getParamsMetadata"); + const paramsMetadata = getParamsMetadata(moduleKey); + const isResponseHandled = this.isResponseHandled(instance, methodName, paramsMetadata); + const httpRedirectResponse = this.reflectRedirect(callback); + const fnHandleResponse = this.createHandleResponseFn(callback, isResponseHandled, httpRedirectResponse); + const isSseHandler = !!this.reflectSse(callback); + const httpCode = this.reflectHttpStatusCode(callback); + const httpStatusCode = httpCode ?? this.responseController.getStatusByMethod(requestMethod); + const responseHeaders = this.reflectResponseHeaders(callback); + const hasCustomHeaders = !isEmptyArray(responseHeaders); + const handlerMetadata = { + argsLength, + fnHandleResponse, + isSseHandler, + paramtypes, + getParamsMetadata, + httpStatusCode, + hasCustomHeaders, + responseHeaders + }; + this.handlerMetadataStorage.set(instance, methodName, handlerMetadata); + return handlerMetadata; + } + reflectRedirect(callback) { + return Reflect.getMetadata(REDIRECT_METADATA, callback); + } + reflectHttpStatusCode(callback) { + return Reflect.getMetadata(HTTP_CODE_METADATA, callback); + } + reflectRenderTemplate(callback) { + return Reflect.getMetadata(RENDER_METADATA, callback); + } + reflectResponseHeaders(callback) { + return Reflect.getMetadata(HEADERS_METADATA, callback) || []; + } + reflectSse(callback) { + return Reflect.getMetadata(SSE_METADATA, callback); + } + reflectSseOptions(callback) { + return Reflect.getMetadata(SSE_OPTIONS_METADATA, callback); + } + exchangeKeysForValues(keys, metadata, moduleContext, contextId = STATIC_CONTEXT, inquirerId, contextFactory) { + this.pipesContextCreator.setModuleContext(moduleContext); + return keys.map((key) => { + const { index, data, pipes: pipesCollection, schema } = metadata[key]; + const pipes = this.pipesContextCreator.createConcreteContext(pipesCollection, contextId, inquirerId); + const type = this.contextUtils.mapParamType(key); + if (key.includes(CUSTOM_ROUTE_ARGS_METADATA)) { + const { factory } = metadata[key]; + const customExtractValue = this.contextUtils.getCustomFactory(factory, data, contextFactory); + return { + index, + extractValue: customExtractValue, + type, + data, + pipes, + schema + }; + } + const numericType = Number(type); + const extractValue = /* @__PURE__ */ __name((req, res, next) => this.paramsFactory.exchangeKeyForValue(numericType, data, { + req, + res, + next + }), "extractValue"); + return { index, extractValue, type: numericType, data, pipes, schema }; + }); + } + async getParamValue(value, metadata, pipes) { + if (!isEmptyArray(pipes)) { + return this.pipesConsumer.apply(value, metadata, pipes); + } + return value; + } + isPipeable(type) { + return type === RouteParamtypes.BODY || type === RouteParamtypes.RAW_BODY || type === RouteParamtypes.QUERY || type === RouteParamtypes.PARAM || type === RouteParamtypes.FILE || type === RouteParamtypes.FILES || type === RouteParamtypes.COOKIES || type === RouteParamtypes.SIGNED_COOKIES || isString(type); + } + createGuardsFn(guards, instance, callback, contextType) { + const canActivateFn = /* @__PURE__ */ __name(async (args) => { + const canActivate = await this.guardsConsumer.tryActivate(guards, args, instance, callback, contextType); + if (!canActivate) { + throw new ForbiddenException(FORBIDDEN_MESSAGE); + } + }, "canActivateFn"); + return guards.length ? canActivateFn : null; + } + createPipesFn(pipes, paramsOptions) { + if (!paramsOptions.length) { + return null; + } + const params = paramsOptions.map(({ index, extractValue, type, data, metatype, pipes: paramPipes, schema }) => { + const isPipeable = this.isPipeable(type); + return { + index, + extractValue, + isPipeable, + metadata: { metatype, type, data, schema }, + pipes: isPipeable ? pipes.concat(paramPipes) : [] + }; + }); + const applyPipes = /* @__PURE__ */ __name(async (args, param, value) => { + args[param.index] = await this.getParamValue(value, param.metadata, param.pipes); + }, "applyPipes"); + return (args, req, res, next) => { + let pending; + for (let i = 0; i < params.length; i++) { + const param = params[i]; + try { + const value = param.extractValue(req, res, next); + if (param.isPipeable && (param.pipes.length > 0 || isThenable2(value))) { + (pending ??= []).push(applyPipes(args, param, value)); + } else { + args[param.index] = value; + } + } catch (err) { + (pending ??= []).push(Promise.reject(err)); + } + } + return pending && Promise.all(pending); + }; + } + createHandleResponseFn(callback, isResponseHandled, redirectResponse, httpStatusCode) { + const renderTemplate = this.reflectRenderTemplate(callback); + if (renderTemplate) { + return async (result, res) => { + return await this.responseController.render(result, res, renderTemplate); + }; + } + if (redirectResponse && isString(redirectResponse.url)) { + return async (result, res) => { + await this.responseController.redirect(result, res, redirectResponse); + }; + } + const isSseHandler = !!this.reflectSse(callback); + if (isSseHandler) { + const maxPendingDataLength = this.reflectSseOptions(callback)?.maxPendingDataLength; + return async (result, res, req) => { + const rawResponse = res.raw ?? res; + await this.responseController.sse(result, rawResponse, req.raw || req, { + additionalHeaders: /* @__PURE__ */ __name(() => res.getHeaders?.(), "additionalHeaders"), + statusCode: /* @__PURE__ */ __name(() => res.statusCode ?? rawResponse.statusCode, "statusCode"), + maxPendingDataLength + }); + }; + } + return async (result, res, req, handlerObservable$, handlerFiles = []) => { + let disconnected = false; + if ((0, import_rxjs8.isObservable)(result)) { + const disconnect$ = (handlerObservable$ ?? (0, import_rxjs8.of)(null)).pipe((0, import_operators3.switchMap)(() => this.fromClientDisconnect(req, res)), (0, import_operators3.tap)(() => disconnected = true)); + result = result.pipe((0, import_operators3.takeUntil)(disconnect$)); + } + try { + result = await this.responseController.transformToResult(result); + } catch (err) { + if (!disconnected || !(err instanceof import_rxjs8.EmptyError)) { + throw err; + } + } + if (disconnected) { + [result, ...handlerFiles].forEach(destroyStreamableFile); + return res; + } + if (!isResponseHandled) { + try { + await this.responseController.apply(result, res, httpStatusCode); + } catch (err) { + destroyStreamableFile(result); + throw err; + } + } + return res; + }; + } + notifyIfObservable(result, handlerObservable$) { + if ((0, import_rxjs8.isObservable)(result)) { + handlerObservable$.next(); + } else if (result instanceof Promise) { + result.then((value) => (0, import_rxjs8.isObservable)(value) && handlerObservable$.next(), () => void 0); + } + } + /** + * Emits once the client connection closes, or right away if it already has. + * Watches the request socket, like `RouterResponseController#sse()` does. + */ + fromClientDisconnect(req, res) { + return new import_rxjs8.Observable((subscriber) => { + const source = (req?.raw ?? req)?.socket ?? res?.raw ?? res; + if (typeof source?.once !== "function") { + return; + } + if (source.destroyed) { + subscriber.next(); + return; + } + const onClose = /* @__PURE__ */ __name(() => subscriber.next(), "onClose"); + source.once("close", onClose); + return () => source.removeListener("close", onClose); + }); + } + isResponseHandled(instance, methodName, paramsMetadata) { + const hasResponseOrNextDecorator = paramsMetadata.some(({ type }) => type === RouteParamtypes.RESPONSE || type === RouteParamtypes.NEXT); + const isPassthroughEnabled = this.contextUtils.reflectPassthrough(instance, methodName); + return hasResponseOrNextDecorator && !isPassthroughEnabled; + } + attachSseAbortSignal(req) { + const carrier = req; + if (!carrier[SSE_ABORT_CONTROLLER]) { + carrier[SSE_ABORT_CONTROLLER] = new AbortController(); + } + if (carrier.raw && !carrier.raw[SSE_ABORT_CONTROLLER]) { + carrier.raw[SSE_ABORT_CONTROLLER] = carrier[SSE_ABORT_CONTROLLER]; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-explorer.js +var import_path_to_regexp4, RouterExplorer; +var init_router_explorer = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-explorer.js"() { + import_path_to_regexp4 = __toESM(require_dist2(), 1); + init_unknown_request_mapping_exception(); + init_guards(); + init_context_id_factory(); + init_execution_context_host(); + init_messages2(); + init_router_method_factory(); + init_constants3(); + init_interceptors(); + init_pipes(); + init_paths_explorer(); + init_request_constants(); + init_route_params_factory(); + init_router_execution_context(); + init_internal(); + init_common(); + RouterExplorer = class _RouterExplorer { + static { + __name(this, "RouterExplorer"); + } + container; + injector; + routerProxy; + exceptionsFilter; + routePathFactory; + graphInspector; + executionContextCreator; + pathsExplorer; + routerMethodFactory = new RouterMethodFactory(); + logger = new Logger(_RouterExplorer.name, { + timestamp: true + }); + constructor(metadataScanner, container, injector, routerProxy, exceptionsFilter, config, routePathFactory, graphInspector) { + this.container = container; + this.injector = injector; + this.routerProxy = routerProxy; + this.exceptionsFilter = exceptionsFilter; + this.routePathFactory = routePathFactory; + this.graphInspector = graphInspector; + this.pathsExplorer = new PathsExplorer(metadataScanner); + const routeParamsFactory = new RouteParamsFactory(config); + const pipesContextCreator = new PipesContextCreator(container, config); + const pipesConsumer = new PipesConsumer(); + const guardsContextCreator = new GuardsContextCreator(container, config); + const guardsConsumer = new GuardsConsumer(); + const interceptorsContextCreator = new InterceptorsContextCreator(container, config); + const interceptorsConsumer = new InterceptorsConsumer(); + this.executionContextCreator = new RouterExecutionContext(routeParamsFactory, pipesContextCreator, pipesConsumer, guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, container.getHttpAdapterRef()); + } + explore(instanceWrapper, moduleKey, httpAdapterRef, host, routePathMetadata, options = {}) { + const { instance } = instanceWrapper; + const routerPaths = this.pathsExplorer.scanForPaths(instance); + this.applyPathsToRouterProxy(httpAdapterRef, routerPaths, instanceWrapper, moduleKey, routePathMetadata, host, options); + } + extractRouterPath(metatype) { + const path = Reflect.getMetadata(PATH_METADATA, metatype); + if (isUndefined(path)) { + throw new UnknownRequestMappingException(metatype); + } + if (Array.isArray(path)) { + return path.map((p) => addLeadingSlash(p)); + } + return [addLeadingSlash(path)]; + } + applyPathsToRouterProxy(router, routeDefinitions, instanceWrapper, moduleKey, routePathMetadata, host, options = {}) { + (routeDefinitions || []).forEach((routeDefinition) => { + const { version: methodVersion } = routeDefinition; + routePathMetadata.methodVersion = methodVersion; + this.applyCallbackToRouter(router, routeDefinition, instanceWrapper, moduleKey, routePathMetadata, host, options); + }); + } + applyCallbackToRouter(router, routeDefinition, instanceWrapper, moduleKey, routePathMetadata, host, options = {}) { + const { onRouteResolved, deferRegistration = false } = options; + const { path: paths, requestMethod, targetCallback, methodName } = routeDefinition; + const { instance } = instanceWrapper; + const routerMethodRef = this.routerMethodFactory.get(router, requestMethod).bind(router); + const isRequestScoped = !instanceWrapper.isDependencyTreeStatic(); + const proxy = isRequestScoped ? this.createRequestScopedHandler(instanceWrapper, requestMethod, this.container.getModuleByKey(moduleKey), moduleKey, methodName) : this.createCallbackProxy(instance, targetCallback, methodName, moduleKey, requestMethod, STATIC_CONTEXT, instanceWrapper.id); + const isVersioned = (routePathMetadata.methodVersion || routePathMetadata.controllerVersion) && routePathMetadata.versioningOptions; + let routeHandler = this.applyHostFilter(host, proxy); + paths.forEach((path) => { + if (isVersioned && routePathMetadata.versioningOptions.type !== VersioningType.URI) { + routeHandler = this.applyVersionFilter(router, routePathMetadata, routeHandler); + } + routePathMetadata.methodPath = path; + const pathsToRegister = this.routePathFactory.create(routePathMetadata, requestMethod); + pathsToRegister.forEach((path2) => { + const normalizedPath = router.normalizePath ? router.normalizePath(path2) : path2; + const entrypointDefinition = { + type: "http-endpoint", + methodName, + className: instanceWrapper.name, + classNodeId: instanceWrapper.id, + metadata: { + key: path2, + path: path2, + requestMethod: RequestMethod[requestMethod], + methodVersion: routePathMetadata.methodVersion, + controllerVersion: routePathMetadata.controllerVersion + } + }; + if (!deferRegistration) { + this.copyMetadataToCallback(targetCallback, routeHandler); + const httpAdapter = this.container.getHttpAdapterRef(); + const onRouteTriggered = httpAdapter.getOnRouteTriggered?.(); + let handler = routeHandler; + if (onRouteTriggered) { + handler = Object.assign((...args) => { + onRouteTriggered(requestMethod, path2); + return routeHandler(...args); + }, routeHandler); + this.copyMetadataToCallback(targetCallback, handler); + } + Object.defineProperty(handler, "name", { + configurable: true, + value: `${instanceWrapper.name}.${methodName}` + }); + routerMethodRef(normalizedPath, handler); + } + onRouteResolved?.({ + method: requestMethod, + path: normalizedPath, + rawPath: path2, + host, + version: routePathMetadata.methodVersion ?? routePathMetadata.controllerVersion, + methodVersion: routePathMetadata.methodVersion, + controllerVersion: routePathMetadata.controllerVersion, + handler: routeHandler, + targetCallback, + methodName, + instanceWrapper + }); + this.graphInspector.insertEntrypointDefinition(entrypointDefinition, instanceWrapper.id); + }); + const pathsToLog = this.routePathFactory.create({ + ...routePathMetadata, + versioningOptions: void 0 + }, requestMethod); + pathsToLog.forEach((path2) => { + if (isVersioned) { + const version = this.routePathFactory.getVersion(routePathMetadata); + this.logger.log(VERSIONED_ROUTE_MAPPED_MESSAGE(path2, requestMethod, version)); + } else { + this.logger.log(ROUTE_MAPPED_MESSAGE(path2, requestMethod)); + } + }); + }); + } + /** + * Registers a previously resolved route on the underlying HTTP adapter. + * Used when route registration has been deferred (e.g. when sorting + * routes by specificity) so the caller can choose the order in which + * routes are installed on the adapter. + */ + registerResolvedRoute(router, route) { + const routerMethodRef = this.routerMethodFactory.get(router, route.method).bind(router); + this.copyMetadataToCallback(route.targetCallback, route.handler); + const normalizedPath = route.path; + const rawPath = route.rawPath ?? route.path; + const httpAdapter = this.container.getHttpAdapterRef(); + const onRouteTriggered = httpAdapter.getOnRouteTriggered?.(); + if (onRouteTriggered) { + const handler = Object.assign((...args) => { + onRouteTriggered(route.method, rawPath); + return route.handler(...args); + }, route.handler); + this.copyMetadataToCallback(route.targetCallback, handler); + routerMethodRef(normalizedPath, handler); + } else { + routerMethodRef(normalizedPath, route.handler); + } + } + applyHostFilter(host, handler) { + if (!host) { + return handler; + } + const httpAdapterRef = this.container.getHttpAdapterRef(); + const hosts = Array.isArray(host) ? host : [host]; + const hostRegExps = hosts.map((host2) => { + if (typeof host2 === "string") { + try { + return (0, import_path_to_regexp4.pathToRegexp)(host2); + } catch (e) { + if (e instanceof TypeError) { + this.logger.error(`Unsupported host "${host2}" syntax. In past releases, ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/*path. Please see the migration guide for more information.`); + } + throw e; + } + } + return { regexp: host2, keys: [] }; + }); + const unsupportedFilteringMessage = Array.isArray(host) ? `HTTP adapter does not support filtering on hosts: ["${host.join('", "')}"]` : `HTTP adapter does not support filtering on host: "${host}"`; + let hasWarnedOfUnsupportedFiltering = false; + return (req, res, next) => { + req.hosts = {}; + const hostname = httpAdapterRef.getRequestHostname(req) || ""; + for (const exp of hostRegExps) { + const match = hostname.match(exp.regexp); + if (match) { + if (exp.keys.length > 0) { + exp.keys.forEach((key, i) => req.hosts[key.name] = match[i + 1]); + } else if (exp.regexp && match.groups) { + for (const groupName in match.groups) { + req.hosts[groupName] = match.groups[groupName]; + } + } + return handler(req, res, next); + } + } + if (!next) { + if (!hasWarnedOfUnsupportedFiltering) { + hasWarnedOfUnsupportedFiltering = true; + this.logger.warn(`${unsupportedFilteringMessage}. Requests for other hosts are answered with 404 instead of being passed on to other routes.`); + } + const method = httpAdapterRef.getRequestMethod(req); + const url = httpAdapterRef.getRequestUrl(req); + throw new NotFoundException(`Cannot ${method} ${url}`); + } + return next(); + }; + } + applyVersionFilter(router, routePathMetadata, handler) { + const version = this.routePathFactory.getVersion(routePathMetadata); + return router.applyVersionFilter(handler, version, routePathMetadata.versioningOptions); + } + createCallbackProxy(instance, callback, methodName, moduleRef, requestMethod, contextId = STATIC_CONTEXT, inquirerId) { + const executionContext = this.executionContextCreator.create(instance, callback, methodName, moduleRef, requestMethod, contextId, inquirerId); + const exceptionFilter = this.exceptionsFilter.create(instance, callback, moduleRef, contextId, inquirerId); + return this.routerProxy.createProxy(executionContext, exceptionFilter); + } + createRequestScopedHandler(instanceWrapper, requestMethod, moduleRef, moduleKey, methodName) { + const { instance } = instanceWrapper; + const collection = moduleRef.controllers; + const isTreeDurable = instanceWrapper.isDependencyTreeDurable(); + let exceptionFilter; + return async (req, res, next) => { + try { + const contextId = this.getContextId(req, isTreeDurable); + const contextInstance = await this.injector.loadPerContext(instance, moduleRef, collection, contextId); + await this.createCallbackProxy(contextInstance, contextInstance[methodName], methodName, moduleKey, requestMethod, contextId, instanceWrapper.id)(req, res, next); + } catch (err) { + exceptionFilter ??= this.exceptionsFilter.create(instance, instance[methodName], moduleKey); + const host = new ExecutionContextHost([req, res, next]); + exceptionFilter.next(err, host); + } + }; + } + getContextId(request, isTreeDurable) { + const contextId = ContextIdFactory.getByRequest(request); + if (!request[REQUEST_CONTEXT_ID]) { + Object.defineProperty(request, REQUEST_CONTEXT_ID, { + value: contextId, + enumerable: false, + writable: false, + configurable: false + }); + const requestProviderValue = isTreeDurable ? contextId.payload : Object.assign(request, contextId.payload); + this.container.registerRequestProvider(requestProviderValue, contextId); + } + return contextId; + } + copyMetadataToCallback(originalCallback, targetCallback) { + for (const key of Reflect.getMetadataKeys(originalCallback)) { + Reflect.defineMetadata(key, Reflect.getMetadata(key, originalCallback), targetCallback); + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/routes-resolver.js +var RoutesResolver; +var init_routes_resolver = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/routes-resolver.js"() { + init_common(); + init_internal(); + init_messages2(); + init_metadata_scanner(); + init_route_path_factory(); + init_router_exception_filters(); + init_router_explorer(); + init_router_proxy(); + RoutesResolver = class _RoutesResolver { + static { + __name(this, "RoutesResolver"); + } + container; + applicationConfig; + injector; + logger = new Logger(_RoutesResolver.name, { + timestamp: true + }); + routerProxy = new RouterProxy(); + routePathFactory; + routerExceptionsFilter; + routerExplorer; + constructor(container, applicationConfig, injector, graphInspector) { + this.container = container; + this.applicationConfig = applicationConfig; + this.injector = injector; + const httpAdapterRef = container.getHttpAdapterRef(); + this.routerExceptionsFilter = new RouterExceptionFilters(container, applicationConfig, httpAdapterRef); + this.routePathFactory = new RoutePathFactory(this.applicationConfig); + const metadataScanner = new MetadataScanner(); + this.routerExplorer = new RouterExplorer(metadataScanner, this.container, this.injector, this.routerProxy, this.routerExceptionsFilter, this.applicationConfig, this.routePathFactory, graphInspector); + } + resolve(applicationRef, globalPrefix, options = {}) { + const modules = this.container.getModules(); + modules.forEach(({ controllers, metatype }, moduleName) => { + const modulePath = this.getModulePathMetadata(metatype); + this.registerRouters(controllers, moduleName, globalPrefix, modulePath, applicationRef, options); + }); + } + registerResolvedRoute(applicationRef, route) { + this.routerExplorer.registerResolvedRoute(applicationRef, route); + } + registerRouters(routes, moduleName, globalPrefix, modulePath, applicationRef, options = {}) { + routes.forEach((instanceWrapper) => { + const { metatype } = instanceWrapper; + const host = this.getHostMetadata(metatype); + const routerPaths = this.routerExplorer.extractRouterPath(metatype); + const controllerVersion = this.getVersionMetadata(metatype); + const controllerName = metatype.name; + routerPaths.forEach((path) => { + const pathsToLog = this.routePathFactory.create({ + ctrlPath: path, + modulePath, + globalPrefix + }); + if (!controllerVersion) { + pathsToLog.forEach((path2) => { + const logMessage = CONTROLLER_MAPPING_MESSAGE(controllerName, path2); + this.logger.log(logMessage); + }); + } else { + pathsToLog.forEach((path2) => { + const logMessage = VERSIONED_CONTROLLER_MAPPING_MESSAGE(controllerName, path2, controllerVersion); + this.logger.log(logMessage); + }); + } + const versioningOptions = this.applicationConfig.getVersioning(); + const routePathMetadata = { + ctrlPath: path, + modulePath, + globalPrefix, + controllerVersion, + versioningOptions + }; + this.routerExplorer.explore(instanceWrapper, moduleName, applicationRef, host, routePathMetadata, options); + }); + }); + } + registerNotFoundHandler() { + const applicationRef = this.container.getHttpAdapterRef(); + const callback = /* @__PURE__ */ __name((req, res) => { + const method = applicationRef.getRequestMethod(req); + const url = applicationRef.getRequestUrl(req); + throw new NotFoundException(`Cannot ${method} ${url}`); + }, "callback"); + const handler = this.routerExceptionsFilter.create({}, callback, void 0); + const proxy = this.routerProxy.createProxy(callback, handler); + const prefix = this.applicationConfig.getGlobalPrefix(); + const excludedRoutes = this.routePathFactory.getExcludedRoutePaths(); + applicationRef.setNotFoundHandler && applicationRef.setNotFoundHandler(proxy, prefix, excludedRoutes); + } + registerExceptionHandler() { + const callback = /* @__PURE__ */ __name((err, req, res, next) => { + throw this.container.getHttpAdapterRef().mapException(err); + }, "callback"); + const handler = this.routerExceptionsFilter.create({}, callback, void 0); + const proxy = this.routerProxy.createExceptionLayerProxy(callback, handler); + const applicationRef = this.container.getHttpAdapterRef(); + const prefix = this.applicationConfig.getGlobalPrefix(); + applicationRef.setErrorHandler && applicationRef.setErrorHandler(proxy, prefix); + } + getModulePathMetadata(metatype) { + const modulesContainer = this.container.getModules(); + const modulePath = Reflect.getMetadata(MODULE_PATH + modulesContainer.applicationId, metatype); + return modulePath ?? Reflect.getMetadata(MODULE_PATH, metatype); + } + getHostMetadata(metatype) { + return Reflect.getMetadata(HOST_METADATA, metatype); + } + getVersionMetadata(metatype) { + const versioningConfig = this.applicationConfig.getVersioning(); + if (versioningConfig) { + return Reflect.getMetadata(VERSION_METADATA, metatype) ?? versioningConfig.defaultVersion; + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-conflict-detector.js +var RouteConflictDetector; +var init_route_conflict_detector = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-conflict-detector.js"() { + init_common(); + init_route_conflict_exception(); + init_messages(); + RouteConflictDetector = class _RouteConflictDetector { + static { + __name(this, "RouteConflictDetector"); + } + /** + * Strips the leading `:` / `*` marker (if present) and tags each + * segment as a literal, named param, or named wildcard. Supports both + * bare named wildcards (`*path`) and adapter-normalized path-to-regexp + * wildcard groups (`{*path}`). + */ + static tokenizePath(rawPath) { + const segments = []; + rawPath.split("/").filter((rawSegment) => rawSegment.length > 0).forEach((rawSegment) => { + if (rawSegment.startsWith("*")) { + segments.push({ kind: "wildcard", value: rawSegment.slice(1) }); + return; + } + if (rawSegment.startsWith("{*") && rawSegment.endsWith("}")) { + segments.push({ + kind: "wildcard", + value: rawSegment.slice(2, -1) + }); + return; + } + if (rawSegment.startsWith(":")) { + segments.push({ kind: "param", value: rawSegment.slice(1) }); + return; + } + segments.push({ kind: "literal", value: rawSegment }); + }); + return segments; + } + /** + * Decides whether two paths can match the same incoming request, given + * only their declared patterns (no host/method/version considered). + */ + static pathsCanOverlap(leftPath, rightPath) { + const leftSegments = _RouteConflictDetector.tokenizePath(leftPath); + const rightSegments = _RouteConflictDetector.tokenizePath(rightPath); + const leftEndsInWildcard = leftSegments[leftSegments.length - 1]?.kind === "wildcard"; + const rightEndsInWildcard = rightSegments[rightSegments.length - 1]?.kind === "wildcard"; + if (leftSegments.length !== rightSegments.length) { + const shorterEndsInWildcard = leftSegments.length < rightSegments.length ? leftEndsInWildcard : rightEndsInWildcard; + if (!shorterEndsInWildcard) { + return false; + } + } + const sharedLength = Math.min(leftSegments.length, rightSegments.length); + let canOverlap = true; + leftSegments.slice(0, sharedLength).forEach((leftSegment, segmentIndex) => { + if (!canOverlap) + return; + if (!_RouteConflictDetector.segmentsCanOverlap(leftSegment, rightSegments[segmentIndex])) { + canOverlap = false; + } + }); + return canOverlap; + } + /** + * Walks every unique pair of resolved routes and produces a conflict + * record for each pair whose (method, host, version, path) tuples can + * collide at runtime. + */ + static detect(routes, versioningOptions) { + const conflicts = []; + _RouteConflictDetector.forEachUniquePair(routes, (earlierRoute, laterRoute) => { + if (!_RouteConflictDetector.methodsCanOverlap(earlierRoute.method, laterRoute.method)) { + return; + } + if (!_RouteConflictDetector.versionsCanOverlap(earlierRoute.version, laterRoute.version, versioningOptions)) { + return; + } + if (!_RouteConflictDetector.hostsCanOverlap(earlierRoute.host, laterRoute.host)) { + return; + } + if (!_RouteConflictDetector.pathsCanOverlap(earlierRoute.path, laterRoute.path)) { + return; + } + const isIdentical = _RouteConflictDetector.routesAreIdentical(earlierRoute, laterRoute, versioningOptions); + conflicts.push({ + winner: earlierRoute, + shadowed: laterRoute, + kind: isIdentical ? "duplicate" : "shadow" + }); + }); + return conflicts; + } + /** + * Applies the per-kind policy to a set of conflicts: silences `'off'`, + * logs `'warn'` once per conflict, and aggregates every `'error'`-level + * conflict into a single `RouteConflictException`. + */ + static handle(conflicts, policy, logger3) { + if (conflicts.length === 0 || policy === void 0) + return; + const errorMessages = []; + conflicts.forEach((conflict) => { + const policyForKind = policy[conflict.kind] ?? "off"; + if (policyForKind === "off") + return; + const message = _RouteConflictDetector.describeConflict(conflict); + if (policyForKind === "warn") { + logger3.warn(message); + return; + } + errorMessages.push(message); + }); + if (errorMessages.length > 0) { + throw new RouteConflictException(errorMessages); + } + } + /** + * Removes shadow conflicts that specificity sorting has already resolved. + * + * When `routeResolutionStrategy: 'specificity'` is active, the sort + * promotes more-specific routes ahead of less-specific ones. A shadow + * where the sort promoted the winner (it was declared *later* but sorted + * *first*) is handled correctly at runtime — the more-specific route is + * registered first and handles its requests while the less-specific route + * handles the rest. Retaining such a conflict would cause `shadow: 'error'` + * to abort an application whose routes actually work as intended. + * + * Shadows where the winner was already first in declaration order (the + * sort did not swap them) are genuine and are kept unchanged. Duplicate + * conflicts are always kept. + * + * @param conflicts Conflicts detected on the sorted route list. + * @param declarationOrder Routes in their original declaration order + * (i.e. before specificity sorting was applied). + */ + static filterSortResolvedShadows(conflicts, declarationOrder) { + const declarationIndex = new Map(declarationOrder.map((route, idx) => [route, idx])); + return conflicts.filter((conflict) => { + if (conflict.kind !== "shadow") + return true; + const winnerDeclIdx = declarationIndex.get(conflict.winner) ?? -1; + const shadowedDeclIdx = declarationIndex.get(conflict.shadowed) ?? -1; + return winnerDeclIdx < shadowedDeclIdx; + }); + } + static segmentsCanOverlap(leftSegment, rightSegment) { + if (leftSegment.kind === "wildcard" || rightSegment.kind === "wildcard") { + return true; + } + if (leftSegment.kind === "param" || rightSegment.kind === "param") { + return true; + } + return leftSegment.value === rightSegment.value; + } + static methodsCanOverlap(leftMethod, rightMethod) { + if (leftMethod === RequestMethod.ALL || rightMethod === RequestMethod.ALL) { + return true; + } + return leftMethod === rightMethod; + } + static versionsCanOverlap(leftVersion, rightVersion, versioningOptions) { + if (!versioningOptions) + return true; + if (versioningOptions.type === VersioningType.URI) + return true; + const leftMatchesAnyVersion = leftVersion === void 0 || leftVersion === VERSION_NEUTRAL; + const rightMatchesAnyVersion = rightVersion === void 0 || rightVersion === VERSION_NEUTRAL; + if (leftMatchesAnyVersion || rightMatchesAnyVersion) + return true; + const leftValues = Array.isArray(leftVersion) ? leftVersion : [leftVersion]; + const rightValues = Array.isArray(rightVersion) ? rightVersion : [rightVersion]; + return leftValues.some((versionValue) => rightValues.includes(versionValue)); + } + static hostsCanOverlap(leftHost, rightHost) { + if (leftHost === void 0 || rightHost === void 0) + return true; + const leftHosts = Array.isArray(leftHost) ? leftHost : [leftHost]; + const rightHosts = Array.isArray(rightHost) ? rightHost : [rightHost]; + return leftHosts.some((leftValue) => rightHosts.some((rightValue) => _RouteConflictDetector.hostValuesCanMatchSameRequest(leftValue, rightValue))); + } + static hostValuesCanMatchSameRequest(leftValue, rightValue) { + const leftIsRegExp = leftValue instanceof RegExp; + const rightIsRegExp = rightValue instanceof RegExp; + if (leftIsRegExp && rightIsRegExp) + return true; + if (leftIsRegExp) { + leftValue.lastIndex = 0; + return leftValue.test(rightValue); + } + if (rightIsRegExp) { + rightValue.lastIndex = 0; + return rightValue.test(leftValue); + } + return leftValue === rightValue; + } + static routesAreIdentical(leftRoute, rightRoute, versioningOptions) { + return leftRoute.method === rightRoute.method && leftRoute.path === rightRoute.path && _RouteConflictDetector.hostsAreIdentical(leftRoute.host, rightRoute.host) && _RouteConflictDetector.versionsAreIdentical(leftRoute.version, rightRoute.version, versioningOptions); + } + static hostsAreIdentical(leftHost, rightHost) { + if (leftHost === void 0 && rightHost === void 0) + return true; + if (leftHost === void 0 || rightHost === void 0) + return false; + const leftHosts = Array.isArray(leftHost) ? leftHost : [leftHost]; + const rightHosts = Array.isArray(rightHost) ? rightHost : [rightHost]; + if (leftHosts.length !== rightHosts.length) + return false; + return leftHosts.every((leftValue) => rightHosts.some((rightValue) => _RouteConflictDetector.hostValuesAreIdentical(leftValue, rightValue))); + } + static hostValuesAreIdentical(leftValue, rightValue) { + if (leftValue instanceof RegExp && rightValue instanceof RegExp) { + return leftValue.source === rightValue.source && leftValue.flags === rightValue.flags; + } + return leftValue === rightValue; + } + static versionsAreIdentical(leftVersion, rightVersion, versioningOptions) { + if (!versioningOptions || versioningOptions.type === VersioningType.URI) { + return true; + } + if (leftVersion === rightVersion) + return true; + const leftValues = Array.isArray(leftVersion) ? leftVersion : [leftVersion]; + const rightValues = Array.isArray(rightVersion) ? rightVersion : [rightVersion]; + if (leftValues.length !== rightValues.length) + return false; + return leftValues.every((value) => rightValues.includes(value)); + } + static forEachUniquePair(items, visit) { + items.forEach((leftItem, leftIndex) => { + items.slice(leftIndex + 1).forEach((rightItem) => { + visit(leftItem, rightItem); + }); + }); + } + static describeConflict(conflict) { + const method = RequestMethod[conflict.winner.method]; + const winnerLabel = `${conflict.winner.instanceWrapper.name}#${conflict.winner.methodName}`; + const shadowedLabel = `${conflict.shadowed.instanceWrapper.name}#${conflict.shadowed.methodName}`; + if (conflict.kind === "duplicate") { + return DUPLICATE_ROUTE_MESSAGE(method, conflict.winner.path, winnerLabel, shadowedLabel); + } + return SHADOWED_ROUTE_MESSAGE(method, conflict.shadowed.path, shadowedLabel, conflict.winner.path, winnerLabel); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-specificity-sorter.js +var RouteSpecificitySorter; +var init_route_specificity_sorter = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-specificity-sorter.js"() { + init_route_conflict_detector(); + RouteSpecificitySorter = class _RouteSpecificitySorter { + static { + __name(this, "RouteSpecificitySorter"); + } + /** + * Lower rank means more specific. A literal segment beats a named + * param, which beats a named wildcard. A position that is absent on + * one side means the path is shorter at that point. A shorter path + * with a wildcard is the least specific of all (`missing`), as the + * wildcard can absorb the extra segments. Without one, it ranks after + * a literal but before a param or wildcard (`end`): those can sit in + * an optional group (`/users{/:id}`, `/{*path}`) and then also match + * the shorter path. + */ + static SEGMENT_KIND_RANK = { + literal: 0, + end: 1, + param: 2, + wildcard: 3, + missing: 4 + }; + /** + * Returns a new array of routes sorted from most-specific to + * least-specific. Routes that tie on specificity keep their original + * declaration order. + */ + static sort(routes) { + const decoratedRoutes = routes.map((route, declarationIndex) => ({ + route, + declarationIndex + })); + decoratedRoutes.sort((leftEntry, rightEntry) => { + const specificityDelta = _RouteSpecificitySorter.comparePathSpecificity(leftEntry.route.path, rightEntry.route.path); + if (specificityDelta !== 0) + return specificityDelta; + return leftEntry.declarationIndex - rightEntry.declarationIndex; + }); + return decoratedRoutes.map((decoratedEntry) => decoratedEntry.route); + } + static comparePathSpecificity(leftPath, rightPath) { + const leftSegments = RouteConflictDetector.tokenizePath(leftPath); + const rightSegments = RouteConflictDetector.tokenizePath(rightPath); + const longestPathLength = Math.max(leftSegments.length, rightSegments.length); + const leftEndKind = _RouteSpecificitySorter.getEndKind(leftSegments); + const rightEndKind = _RouteSpecificitySorter.getEndKind(rightSegments); + let specificityDelta = 0; + Array.from({ length: longestPathLength }).forEach((_, segmentIndex) => { + if (specificityDelta !== 0) + return; + const leftKind = leftSegments[segmentIndex]?.kind ?? leftEndKind; + const rightKind = rightSegments[segmentIndex]?.kind ?? rightEndKind; + const leftRank = _RouteSpecificitySorter.rankSegmentByKind(leftKind); + const rightRank = _RouteSpecificitySorter.rankSegmentByKind(rightKind); + if (leftRank !== rightRank) { + specificityDelta = leftRank - rightRank; + } + }); + return specificityDelta; + } + static getEndKind(segments) { + return segments.some((segment) => segment.kind === "wildcard") ? "missing" : "end"; + } + static rankSegmentByKind(kind) { + return _RouteSpecificitySorter.SEGMENT_KIND_RANK[kind]; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/cross-origin-protection.js +function evaluateCrossOriginRequest(request, exemptions = {}) { + if (SAFE_METHODS.has(request.method)) { + return { allowed: true, reason: "safe-method" }; + } + const secFetchSite = request.secFetchSite; + if (secFetchSite) { + if (secFetchSite === "same-origin" || secFetchSite === "none") { + return { allowed: true, reason: "same-origin" }; + } + return exemptOr(request, exemptions, "cross-origin-sec-fetch-site"); + } + const origin = request.origin; + if (!origin) { + return { allowed: true, reason: "no-browser-headers" }; + } + if (request.host !== void 0 && originMatchesHost(origin, request.host)) { + return { allowed: true, reason: "origin-matches-host" }; + } + return exemptOr(request, exemptions, "cross-origin-origin-header"); +} +function exemptOr(request, exemptions, reason) { + if (exemptions.isExcluded?.()) { + return { allowed: true, reason: "excluded" }; + } + if (request.origin !== void 0 && exemptions.trustedOrigins?.has(request.origin)) { + return { allowed: true, reason: "trusted-origin" }; + } + return { allowed: false, reason }; +} +function originMatchesHost(origin, host) { + let url; + try { + url = new URL(origin); + } catch { + return false; + } + if (!url.host) { + return false; + } + const authority = host.toLowerCase(); + if (url.host === authority) { + return true; + } + const defaultPort = DEFAULT_PORTS[url.protocol]; + return !url.port && defaultPort !== void 0 && `${url.hostname}:${defaultPort}` === authority; +} +function normalizeTrustedOrigin(origin) { + const fail2 = /* @__PURE__ */ __name((reason) => { + throw new Error(`Invalid trusted origin "${origin}": ${reason}.`); + }, "fail"); + if (!isString(origin) || origin.length === 0) { + return fail2("expected a non-empty string"); + } + if (!/^[a-z][a-z0-9+.-]*:\/\/[^/?#\\]+$/i.test(origin)) { + return fail2('expected "scheme://host[:port]", without a path, query string or fragment'); + } + let url; + try { + url = new URL(origin); + } catch { + return fail2('expected "scheme://host[:port]"'); + } + if (!url.host) { + fail2("a host is required"); + } + if (url.username || url.password) { + fail2("credentials are not allowed"); + } + if (url.host.includes("*")) { + fail2("wildcards are not supported, list each origin"); + } + return `${url.protocol}//${url.host}`; +} +function toRouteInfo(route) { + if (isString(route)) { + return { path: addLeadingSlash(route), method: RequestMethod.ALL }; + } + if (!route || !isString(route.path) || typeof route.method !== "number" || RequestMethod[route.method] === void 0) { + throw new Error(`Invalid CSRF protection exclusion ${JSON.stringify(route)}: expected a path, or a { path, method } object where method is a RequestMethod.`); + } + return { ...route, path: addLeadingSlash(route.path) }; +} +function compileExclusion(path, requestMethod, logs) { + const converted = LegacyRouteConverter.tryConvert(path, { logs }); + const normalized = converted.length > 1 ? converted.replace(/\/+$/, "") : converted; + return { + path: normalized, + requestMethod, + pathRegex: (0, import_path_to_regexp5.pathToRegexp)(addLeadingSlash(normalized) || "/", { + sensitive: true, + trailing: false + }).regexp + }; +} +function readHeader(headers, name) { + const value = headers[name]; + if (value === void 0) { + return void 0; + } + return Array.isArray(value) ? value.join(", ") : value; +} +var import_path_to_regexp5, SAFE_METHODS, DEFAULT_PORTS, DENIED_MESSAGES, NON_CANONICAL_PATH, CrossOriginProtection; +var init_cross_origin_protection = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/cross-origin-protection.js"() { + init_common(); + init_internal(); + import_path_to_regexp5 = __toESM(require_dist2(), 1); + init_utils2(); + init_legacy_route_converter(); + init_utils(); + SAFE_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD", "OPTIONS"]); + DEFAULT_PORTS = { + "http:": "80", + "https:": "443" + }; + __name(evaluateCrossOriginRequest, "evaluateCrossOriginRequest"); + __name(exemptOr, "exemptOr"); + __name(originMatchesHost, "originMatchesHost"); + __name(normalizeTrustedOrigin, "normalizeTrustedOrigin"); + DENIED_MESSAGES = { + "cross-origin-sec-fetch-site": "Cross-origin request detected from Sec-Fetch-Site header", + "cross-origin-origin-header": "Cross-origin request detected, and/or browser is out of date: Sec-Fetch-Site is missing, and Origin does not match Host" + }; + NON_CANONICAL_PATH = /[#;\\]|\/\/|%2e|%2f|%5c|\/\.\.?(?:\/|$)/i; + CrossOriginProtection = class { + static { + __name(this, "CrossOriginProtection"); + } + httpAdapter; + trustedOrigins; + excludedRoutes = []; + excludePredicate; + resolvedExclusions = []; + ignoreTrailingSlash = false; + versioningOptions; + /** + * Validates the options, so that a bad configuration fails as soon as + * `app.enableCsrfProtection()` is called. + */ + constructor(httpAdapter, options = {}) { + this.httpAdapter = httpAdapter; + if (!isPlainObject(options)) { + throw new Error("Invalid CSRF protection options: expected an options object."); + } + for (const key of Object.keys(options)) { + if (key !== "trustedOrigins" && key !== "exclude") { + throw new Error(`Invalid CSRF protection options: unknown option "${key}" (expected "trustedOrigins", "exclude").`); + } + } + const { trustedOrigins = [] } = options; + if (!Array.isArray(trustedOrigins)) { + throw new Error('Invalid CSRF protection "trustedOrigins" option: expected a list of origins.'); + } + this.trustedOrigins = new Set(trustedOrigins.map(normalizeTrustedOrigin)); + const { exclude } = options; + if (isFunction(exclude)) { + this.excludePredicate = exclude; + } else if (Array.isArray(exclude)) { + this.excludedRoutes = exclude.map(toRouteInfo); + for (const route of this.excludedRoutes) { + compileExclusion(route.path, route.method, false); + } + } else if (exclude !== void 0) { + throw new Error('Invalid CSRF protection "exclude" option: expected a list of routes or a function.'); + } + } + /** + * Resolves the excluded routes to the paths they are served at, like + * `MiddlewareConsumer.exclude()` does: with the global prefix (unless the + * route is excluded from it) and, with URI versioning, the version segment + * of `RouteInfo.version` (with another versioning type, only the requests + * for that version are excluded). Called by `app.init()`, once the global + * prefix and versioning are final; until then nothing is excluded. + */ + resolveExclusions(pathExtractor) { + this.resolvedExclusions = this.excludedRoutes.flatMap((route) => pathExtractor.extractPathFrom(route).map((path) => { + const exclusion = compileExclusion(path, route.method, true); + if (route.version) { + exclusion.version = route.version; + } + return exclusion; + })); + this.ignoreTrailingSlash = !!this.httpAdapter.getRouteMatchingOptions?.()?.ignoreTrailingSlash; + this.versioningOptions = pathExtractor.getVersioningOptions(); + } + /** + * Returns a `ForbiddenException` when the request must be rejected, and + * `undefined` otherwise. + */ + check(request) { + const headers = request.headers ?? {}; + const decision = evaluateCrossOriginRequest({ + method: this.httpAdapter.getRequestMethod(request), + secFetchSite: readHeader(headers, "sec-fetch-site"), + origin: readHeader(headers, "origin"), + // On HTTP/2, ":authority" identifies the target and takes precedence + // over a "Host" header (RFC 9113, section 8.3.1). + host: readHeader(headers, ":authority") ?? readHeader(headers, "host") + }, { + trustedOrigins: this.trustedOrigins, + isExcluded: /* @__PURE__ */ __name(() => this.isExcluded(request), "isExcluded") + }); + if (decision.allowed) { + return void 0; + } + return new ForbiddenException(DENIED_MESSAGES[decision.reason]); + } + isExcluded(request) { + if (this.excludePredicate) { + return !!this.excludePredicate(request); + } + if (this.resolvedExclusions.length === 0) { + return false; + } + const url = this.httpAdapter.getRequestUrl(request) ?? ""; + const queryIndex = url.indexOf("?"); + const pathname = queryIndex >= 0 ? url.slice(0, queryIndex) : url; + if (!pathname.startsWith("/") || NON_CANONICAL_PATH.test(pathname)) { + return false; + } + const method = this.httpAdapter.getRequestMethod(request); + const isVersionRequested = createRequestedVersionMatcher(request, this.versioningOptions); + const isPathExcluded = /* @__PURE__ */ __name((path) => this.resolvedExclusions.some((exclusion) => isRouteExcluded([exclusion], path, RequestMethod[method]) && isVersionRequested(exclusion)), "isPathExcluded"); + if (this.ignoreTrailingSlash && pathname.length > 1 && pathname.endsWith("/")) { + return isPathExcluded(pathname) && isPathExcluded(pathname.replace(/\/+$/, "")); + } + return isPathExcluded(pathname); + } + }; + __name(toRouteInfo, "toRouteInfo"); + __name(compileExclusion, "compileExclusion"); + __name(readHeader, "readHeader"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/http-security-hook.js +var HttpSecurityHook; +var init_http_security_hook = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/http-security-hook.js"() { + init_route_info_path_extractor(); + HttpSecurityHook = class { + static { + __name(this, "HttpSecurityHook"); + } + headers; + crossOriginProtection; + setHeaders(headers) { + this.headers = headers; + } + setCrossOriginProtection(protection) { + this.crossOriginProtection = protection; + } + /** + * Called by `app.init()`, once the global prefix and versioning are final. + */ + init(config) { + this.crossOriginProtection?.resolveExclusions(new RouteInfoPathExtractor(config)); + } + /** + * Runs the enabled features for one request. Returns the error to hand to + * the exception layer when the request must be rejected. + */ + handle(request, response) { + if (this.headers) { + for (const [name, value] of this.headers.headers) { + response.setHeader(name, value); + } + for (const name of this.headers.removeHeaders) { + response.removeHeader(name); + } + } + return this.crossOriginProtection?.check(request); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/security-headers.js +function serializeContentSecurityPolicy(options = {}) { + const { useDefaults = true, directives = {} } = options; + if (typeof useDefaults !== "boolean") { + fail("contentSecurityPolicy.useDefaults must be a boolean."); + } + if (!isObject(directives) || Array.isArray(directives)) { + fail("contentSecurityPolicy.directives must be an object."); + } + const result = /* @__PURE__ */ new Map(); + if (useDefaults) { + for (const [name, value] of Object.entries(DEFAULT_CONTENT_SECURITY_POLICY_DIRECTIVES)) { + result.set(name, value); + } + } + const seen = /* @__PURE__ */ new Set(); + const removed = /* @__PURE__ */ new Set(); + for (const [rawName, rawValue] of Object.entries(directives)) { + const name = normalizeDirectiveName(rawName); + if (seen.has(name)) { + fail(`Content-Security-Policy directive "${name}" is set twice.`); + } + seen.add(name); + const values = normalizeDirectiveValue(name, rawValue); + if (values === null) { + removed.add(name); + result.delete(name); + } else { + result.set(name, values); + } + } + if (!result.has("default-src") && !removed.has("default-src")) { + fail('Content-Security-Policy needs a "default-src" directive. Set "defaultSrc: null" to omit it deliberately.'); + } + if (result.size === 0) { + fail("Content-Security-Policy has no directives."); + } + return Array.from(result, ([name, values]) => values.length > 0 ? `${name} ${values.join(" ")}` : name).join(";"); +} +function normalizeDirectiveName(rawName) { + const name = DIRECTIVE_NAME.test(rawName) ? rawName.replace(/[A-Z]/g, (letter) => `-${letter}`).toLowerCase() : ""; + if (!NORMALIZED_DIRECTIVE_NAME.test(name)) { + fail(`"${rawName}" is not a valid Content-Security-Policy directive name (expected camelCase, e.g. "scriptSrc", or lower-case kebab-case, e.g. "script-src").`); + } + return name; +} +function normalizeDirectiveValue(name, value) { + if (value === null || value === false || value === void 0) { + return null; + } + if (value === true) { + return []; + } + const values = isString(value) ? [value] : value; + if (!Array.isArray(values)) { + return fail(`Content-Security-Policy directive "${name}" must be a string, a list of strings, a boolean or null.`); + } + return values.map((item) => { + if (!isString(item) || item.trim().length === 0) { + return fail(`Content-Security-Policy directive "${name}" contains an empty or non-string value.`); + } + if (FORBIDDEN_VALUE_CHARACTERS.test(item)) { + return fail(`Content-Security-Policy directive "${name}" contains an invalid value ${JSON.stringify(item)}: ";", "," and control or non-ASCII characters are not allowed.`); + } + if (item.split(/\s+/).some((token) => MUST_BE_QUOTED.test(token))) { + return fail(`Content-Security-Policy directive "${name}" contains ${JSON.stringify(item)}: keywords, nonces and hashes must be single-quoted (e.g. "'self'").`); + } + return item.trim(); + }); +} +function resolveSecurityHeaders(options = {}) { + if (!isPlainObject(options)) { + fail("expected an options object."); + } + for (const name of Object.keys(options)) { + if (!Object.hasOwn(OPTION_KEYS, name)) { + const current = HELMET_LEGACY_OPTION_NAMES[name]; + fail(`unknown option "${name}"` + (current ? ` (helmet's legacy name, use "${current}").` : ".")); + } + } + const headers = []; + const add = /* @__PURE__ */ __name((name, value) => headers.push([name, value]), "add"); + const csp = readOption(options, "contentSecurityPolicy", true); + if (csp) { + add(readBoolean(csp, "contentSecurityPolicy", "reportOnly", false) ? "Content-Security-Policy-Report-Only" : "Content-Security-Policy", serializeContentSecurityPolicy(csp)); + } + const coep = readOption(options, "crossOriginEmbedderPolicy", false); + if (coep) { + add("Cross-Origin-Embedder-Policy", pick("crossOriginEmbedderPolicy.policy", coep.policy, COEP_POLICIES, "require-corp")); + } + const coop = readOption(options, "crossOriginOpenerPolicy", true); + if (coop) { + add("Cross-Origin-Opener-Policy", pick("crossOriginOpenerPolicy.policy", coop.policy, COOP_POLICIES, "same-origin")); + } + const corp = readOption(options, "crossOriginResourcePolicy", true); + if (corp) { + add("Cross-Origin-Resource-Policy", pick("crossOriginResourcePolicy.policy", corp.policy, CORP_POLICIES, "same-origin")); + } + if (readOption(options, "originAgentCluster", true)) { + add("Origin-Agent-Cluster", "?1"); + } + const referrer = readOption(options, "referrerPolicy", true); + if (referrer) { + add("Referrer-Policy", resolveReferrerPolicy(referrer.policy)); + } + const hsts = readOption(options, "strictTransportSecurity", true); + if (hsts) { + add("Strict-Transport-Security", resolveHsts(hsts)); + } + if (readOption(options, "xContentTypeOptions", true)) { + add("X-Content-Type-Options", "nosniff"); + } + const dnsPrefetch = readOption(options, "xDnsPrefetchControl", true); + if (dnsPrefetch) { + const allow = readBoolean(dnsPrefetch, "xDnsPrefetchControl", "allow"); + add("X-DNS-Prefetch-Control", allow ? "on" : "off"); + } + if (readOption(options, "xDownloadOptions", true)) { + add("X-Download-Options", "noopen"); + } + const frameOptions = readOption(options, "xFrameOptions", true); + if (frameOptions) { + const { action } = frameOptions; + add("X-Frame-Options", pick("xFrameOptions.action", isString(action) ? action.toLowerCase() : action, X_FRAME_OPTIONS_ACTIONS, "sameorigin").toUpperCase()); + } + const crossDomain = readOption(options, "xPermittedCrossDomainPolicies", true); + if (crossDomain) { + add("X-Permitted-Cross-Domain-Policies", pick("xPermittedCrossDomainPolicies.permittedPolicies", crossDomain.permittedPolicies, X_PERMITTED_CROSS_DOMAIN_POLICIES, "none")); + } + if (readOption(options, "xXssProtection", true)) { + add("X-XSS-Protection", "0"); + } + const removeHeaders = readOption(options, "xPoweredBy", true) ? ["X-Powered-By"] : []; + return { headers, removeHeaders }; +} +function readOption(options, name, enabledByDefault) { + const value = options[name]; + if (value === void 0) { + return enabledByDefault ? {} : void 0; + } + if (typeof value === "boolean") { + return value ? {} : void 0; + } + const keys = OPTION_KEYS[name]; + if (keys.length === 0 || !isPlainObject(value)) { + return fail(`${name} must be a boolean${keys.length > 0 ? " or an object" : ""}, received ${JSON.stringify(value)}.`); + } + for (const key of Object.keys(value)) { + if (!keys.includes(key)) { + fail(`unknown option "${name}.${key}" (expected ${keys.map((k) => `"${k}"`).join(", ")}).`); + } + } + return value; +} +function readBoolean(object, option, key, fallback = false) { + const value = object[key]; + if (value === void 0) { + return fallback; + } + if (typeof value !== "boolean") { + fail(`${option}.${key} must be a boolean, received ${JSON.stringify(value)}.`); + } + return value; +} +function pick(option, value, allowed, fallback) { + if (value === void 0) { + return fallback; + } + if (!isString(value) || !allowed.includes(value)) { + fail(`${option} must be one of ${allowed.map((v) => `"${v}"`).join(", ")}, received ${JSON.stringify(value)}.`); + } + return value; +} +function resolveReferrerPolicy(policy) { + if (policy === void 0) { + return "no-referrer"; + } + const tokens = isString(policy) ? [policy] : policy; + if (!Array.isArray(tokens) || tokens.length === 0) { + fail("referrerPolicy.policy must be a token or a non-empty list."); + } + const unique = /* @__PURE__ */ new Set(); + for (const token of tokens) { + pick("referrerPolicy.policy", token, REFERRER_POLICIES, "no-referrer"); + if (unique.has(token)) { + fail(`referrerPolicy.policy contains "${token}" more than once.`); + } + unique.add(token); + } + return tokens.join(","); +} +function resolveHsts(option) { + const maxAge = option.maxAge ?? DEFAULT_HSTS_MAX_AGE; + if (typeof maxAge !== "number" || !Number.isFinite(maxAge) || maxAge < 0) { + fail(`strictTransportSecurity.maxAge must be a non-negative number of seconds, received ${JSON.stringify(maxAge)}.`); + } + let value = `max-age=${Math.floor(maxAge)}`; + if (readBoolean(option, "strictTransportSecurity", "includeSubDomains", true)) { + value += "; includeSubDomains"; + } + if (readBoolean(option, "strictTransportSecurity", "preload")) { + value += "; preload"; + } + return value; +} +var DEFAULT_CONTENT_SECURITY_POLICY_DIRECTIVES, DEFAULT_HSTS_MAX_AGE, COEP_POLICIES, COOP_POLICIES, CORP_POLICIES, REFERRER_POLICIES, X_FRAME_OPTIONS_ACTIONS, X_PERMITTED_CROSS_DOMAIN_POLICIES, OPTION_KEYS, HELMET_LEGACY_OPTION_NAMES, MUST_BE_QUOTED, FORBIDDEN_VALUE_CHARACTERS, DIRECTIVE_NAME, NORMALIZED_DIRECTIVE_NAME, SecurityHeadersConfigurationError, fail; +var init_security_headers = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/security-headers.js"() { + init_internal(); + DEFAULT_CONTENT_SECURITY_POLICY_DIRECTIVES = Object.freeze({ + "default-src": ["'self'"], + "base-uri": ["'self'"], + "font-src": ["'self'", "https:", "data:"], + "form-action": ["'self'"], + "frame-ancestors": ["'self'"], + "img-src": ["'self'", "data:"], + "object-src": ["'none'"], + "script-src": ["'self'"], + "script-src-attr": ["'none'"], + "style-src": ["'self'", "https:", "'unsafe-inline'"], + "upgrade-insecure-requests": [] + }); + DEFAULT_HSTS_MAX_AGE = 365 * 24 * 60 * 60; + COEP_POLICIES = ["require-corp", "credentialless", "unsafe-none"]; + COOP_POLICIES = [ + "same-origin", + "same-origin-allow-popups", + "noopener-allow-popups", + "unsafe-none" + ]; + CORP_POLICIES = ["same-origin", "same-site", "cross-origin"]; + REFERRER_POLICIES = [ + "", + "no-referrer", + "no-referrer-when-downgrade", + "same-origin", + "origin", + "strict-origin", + "origin-when-cross-origin", + "strict-origin-when-cross-origin", + "unsafe-url" + ]; + X_FRAME_OPTIONS_ACTIONS = ["deny", "sameorigin"]; + X_PERMITTED_CROSS_DOMAIN_POLICIES = [ + "none", + "master-only", + "by-content-type", + "all" + ]; + OPTION_KEYS = { + contentSecurityPolicy: ["directives", "reportOnly", "useDefaults"], + crossOriginEmbedderPolicy: ["policy"], + crossOriginOpenerPolicy: ["policy"], + crossOriginResourcePolicy: ["policy"], + originAgentCluster: [], + referrerPolicy: ["policy"], + strictTransportSecurity: ["includeSubDomains", "maxAge", "preload"], + xContentTypeOptions: [], + xDnsPrefetchControl: ["allow"], + xDownloadOptions: [], + xFrameOptions: ["action"], + xPermittedCrossDomainPolicies: ["permittedPolicies"], + xPoweredBy: [], + xXssProtection: [] + }; + HELMET_LEGACY_OPTION_NAMES = { + dnsPrefetchControl: "xDnsPrefetchControl", + frameguard: "xFrameOptions", + hidePoweredBy: "xPoweredBy", + hsts: "strictTransportSecurity", + ieNoOpen: "xDownloadOptions", + noSniff: "xContentTypeOptions", + permittedCrossDomainPolicies: "xPermittedCrossDomainPolicies", + xssFilter: "xXssProtection" + }; + MUST_BE_QUOTED = /^(?:self|none|strict-dynamic|report-sample|inline-speculation-rules|unsafe-inline|unsafe-eval|unsafe-hashes|wasm-unsafe-eval|unsafe-allow-redirects)$|^(?:nonce|sha256|sha384|sha512)-[A-Za-z0-9+/_=-]+$/i; + FORBIDDEN_VALUE_CHARACTERS = /[;,]|[^\x20-\x7e]/; + DIRECTIVE_NAME = /^[a-zA-Z0-9-]+$/; + NORMALIZED_DIRECTIVE_NAME = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/; + SecurityHeadersConfigurationError = class extends Error { + static { + __name(this, "SecurityHeadersConfigurationError"); + } + constructor(message) { + super(`Invalid security headers configuration: ${message}`); + this.name = "SecurityHeadersConfigurationError"; + } + }; + fail = /* @__PURE__ */ __name((message) => { + throw new SecurityHeadersConfigurationError(message); + }, "fail"); + __name(serializeContentSecurityPolicy, "serializeContentSecurityPolicy"); + __name(normalizeDirectiveName, "normalizeDirectiveName"); + __name(normalizeDirectiveValue, "normalizeDirectiveValue"); + __name(resolveSecurityHeaders, "resolveSecurityHeaders"); + __name(readOption, "readOption"); + __name(readBoolean, "readBoolean"); + __name(pick, "pick"); + __name(resolveReferrerPolicy, "resolveReferrerPolicy"); + __name(resolveHsts, "resolveHsts"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application.js +import { platform } from "os"; +var import_iterare17, NestApplication; +var init_nest_application = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application.js"() { + init_common(); + import_iterare17 = __toESM(require_lib(), 1); + init_application_config(); + init_constants2(); + init_cookie_signer(); + init_optional_require(); + init_safe_instance_decorator(); + init_injector(); + init_container2(); + init_middleware_module(); + init_utils2(); + init_nest_application_context(); + init_routes_resolver(); + init_common(); + init_internal(); + init_route_conflict_detector(); + init_route_specificity_sorter(); + init_cross_origin_protection(); + init_http_security_hook(); + init_security_headers(); + NestApplication = class _NestApplication extends NestApplicationContext { + static { + __name(this, "NestApplication"); + } + httpAdapter; + config; + graphInspector; + logger = new Logger(_NestApplication.name, { + timestamp: true + }); + middlewareModule; + middlewareContainer = new MiddlewareContainer(this.container); + microservicesModule = null; + socketModule = null; + routesResolver; + microservices = []; + httpServer; + isListening = false; + isWsModuleRegistered = false; + enabledSecurityFeatures = /* @__PURE__ */ new Set(); + securityHook; + constructor(container, httpAdapter, config, graphInspector, appOptions = {}) { + super(container, appOptions); + this.httpAdapter = httpAdapter; + this.config = config; + this.graphInspector = graphInspector; + this.config.setRouteConflictPolicy(appOptions.routeConflictPolicy); + this.config.setRouteResolutionStrategy(appOptions.routeResolutionStrategy); + this.applyCookiesOptions(appOptions); + this.selectContextModule(); + this.registerHttpServer(); + this.injector = new Injector({ + preview: this.appOptions.preview, + instanceDecorator: appOptions.instrument?.instanceDecorator + }); + this.middlewareModule = new MiddlewareModule(); + this.routesResolver = new RoutesResolver(this.container, this.config, this.injector, this.graphInspector); + } + async prepareClose() { + this.httpAdapter && await this.httpAdapter.beforeClose?.(); + } + async dispose() { + await this.socketModule?.close(); + await this.microservicesModule?.close(); + await this.httpAdapter?.close(); + this.isListening = false; + this.container.getHttpAdapterHostRef().listening = false; + await Promise.all((0, import_iterare17.iterate)(this.microservices).map(async (microservice) => { + microservice.setIsTerminated(true); + await microservice.close(); + })); + } + getHttpAdapter() { + return this.httpAdapter; + } + registerHttpServer() { + this.httpServer = this.createServer(); + } + getUnderlyingHttpServer() { + return this.httpAdapter.getHttpServer(); + } + applyOptions() { + if (!this.appOptions || !this.appOptions.cors) { + return void 0; + } + const passCustomOptions = isObject(this.appOptions.cors) || isFunction(this.appOptions.cors); + if (!passCustomOptions) { + return this.enableCors(); + } + return this.enableCors(this.appOptions.cors); + } + createServer() { + this.httpAdapter.initHttpServer(this.appOptions); + return this.httpAdapter.getHttpServer(); + } + async registerModules() { + await this.registerWsModule(); + if (this.microservicesModule) { + this.microservicesModule.register(this.container, this.graphInspector, this.config, this.appOptions); + this.microservicesModule.setupClients(this.container); + } + await this.middlewareModule.register(this.middlewareContainer, this.container, this.config, this.injector, this.httpAdapter, this.graphInspector, this.appOptions); + } + async registerWsModule() { + if (!this.socketModule) { + return; + } + await this.socketModule.register(this.container, this.config, this.graphInspector, this.appOptions, this.httpServer); + this.isWsModuleRegistered = true; + } + async init() { + if (this.isInitialized) { + return this; + } + try { + await Promise.all([ + this.loadSocketModule(), + this.loadMicroservicesModule() + ]); + this.applyOptions(); + this.securityHook?.init(this.config); + await this.httpAdapter?.init?.(); + const useBodyParser = this.appOptions && this.appOptions.bodyParser !== false; + useBodyParser && this.registerParserMiddleware(); + await this.registerModules(); + await this.registerRouter(); + await this.callInitHook(); + await this.registerRouterHooks(); + await this.callBootstrapHook(); + this.isInitialized = true; + this.logger.log(MESSAGES.APPLICATION_READY); + } finally { + this.flushLogsIfAutoFlushEnabled(); + } + return this; + } + registerParserMiddleware() { + const prefix = this.config.getGlobalPrefix(); + const rawBody = !!this.appOptions?.rawBody; + this.httpAdapter.registerParserMiddleware(prefix, rawBody); + } + async registerRouter() { + await this.registerMiddleware(this.httpAdapter); + const prefix = this.config.getGlobalPrefix(); + const basePath = addLeadingSlash(prefix); + const conflictPolicy = this.config.getRouteConflictPolicy(); + const resolutionStrategy = this.config.getRouteResolutionStrategy(); + const adapterIsOrderSensitive = this.httpAdapter.isRouteOrderSensitive?.() ?? true; + const shouldSortBySpecificity = resolutionStrategy === "specificity" && adapterIsOrderSensitive; + const adapterRejectsDuplicates = !adapterIsOrderSensitive; + if (!conflictPolicy && !shouldSortBySpecificity) { + this.routesResolver.resolve(this.httpAdapter, basePath); + return; + } + const resolvedRoutes = []; + this.routesResolver.resolve(this.httpAdapter, basePath, { + onRouteResolved: /* @__PURE__ */ __name((route) => resolvedRoutes.push(route), "onRouteResolved"), + deferRegistration: true + }); + const orderedRoutes = shouldSortBySpecificity ? RouteSpecificitySorter.sort(resolvedRoutes) : resolvedRoutes; + const routesToSkip = /* @__PURE__ */ new Set(); + if (conflictPolicy) { + const filteredPolicy = adapterIsOrderSensitive ? conflictPolicy : { duplicate: conflictPolicy.duplicate }; + const conflicts = RouteConflictDetector.detect(orderedRoutes, this.config.getVersioning()); + if (adapterRejectsDuplicates) { + conflicts.forEach((conflict) => { + if (conflict.kind === "duplicate") { + routesToSkip.add(conflict.shadowed); + } + }); + } + const effectiveConflicts = shouldSortBySpecificity ? RouteConflictDetector.filterSortResolvedShadows(conflicts, resolvedRoutes) : conflicts; + RouteConflictDetector.handle(effectiveConflicts, filteredPolicy, this.logger); + } + orderedRoutes.forEach((route) => { + if (routesToSkip.has(route)) + return; + this.routesResolver.registerResolvedRoute(this.httpAdapter, route); + }); + } + async registerRouterHooks() { + this.routesResolver.registerNotFoundHandler(); + this.routesResolver.registerExceptionHandler(); + } + connectMicroservice(microserviceOptions, hybridAppOptions = {}) { + const { NestMicroservice } = loadPackageCached("@nestjs/microservices", "NestFactory"); + const { inheritAppConfig } = hybridAppOptions; + const applicationConfig = inheritAppConfig ? this.config : new ApplicationConfig(); + const instance = new NestMicroservice(this.container, microserviceOptions, this.graphInspector, applicationConfig); + instance.setIsConnectedToApplication?.(true); + if (!hybridAppOptions.deferInitialization) { + instance.registerListeners(); + instance.setIsInitialized(true); + instance.setIsInitHookCalled(true); + } + this.microservices.push(instance); + return instance; + } + getMicroservices() { + return this.microservices; + } + getHttpServer() { + return this.httpServer; + } + async startAllMicroservices() { + this.assertNotInPreviewMode("startAllMicroservices"); + await Promise.all(this.microservices.map((msvc) => msvc.listen())); + return this; + } + use(...args) { + this.httpAdapter.use(...this.applyFunctionDecoratorIfRegistered(args)); + return this; + } + useBodyParser(...args) { + if (!("useBodyParser" in this.httpAdapter)) { + this.logger.warn("Your HTTP Adapter does not support `.useBodyParser`."); + return this; + } + const [parserType, ...otherArgs] = args; + const rawBody = !!this.appOptions.rawBody; + this.httpAdapter.useBodyParser?.(...[parserType, rawBody, ...otherArgs]); + return this; + } + enableCors(options) { + this.httpAdapter.enableCors(options); + } + enableCsrfProtection(options) { + this.assertSecurityFeatureCanBeEnabled("enableCsrfProtection"); + const protection = new CrossOriginProtection(this.httpAdapter, options); + this.getSecurityHook().setCrossOriginProtection(protection); + this.enabledSecurityFeatures.add("enableCsrfProtection"); + return this; + } + useSecurityHeaders(options) { + this.assertSecurityFeatureCanBeEnabled("useSecurityHeaders"); + const headers = resolveSecurityHeaders(options); + this.getSecurityHook().setHeaders(headers); + if (headers.removeHeaders.includes("X-Powered-By")) { + this.httpAdapter.disable?.("x-powered-by"); + } + this.enabledSecurityFeatures.add("useSecurityHeaders"); + return this; + } + enableVersioning(options = { type: VersioningType.URI }) { + this.config.enableVersioning(options); + return this; + } + async listen(port, ...args) { + this.assertNotInPreviewMode("listen"); + if (!this.isInitialized) { + await this.init(); + } + const httpAdapterHost = this.container.getHttpAdapterHostRef(); + return new Promise((resolve, reject) => { + const errorHandler = /* @__PURE__ */ __name((e) => { + this.logger.error(e?.toString?.()); + reject(e); + }, "errorHandler"); + this.httpServer.once("error", errorHandler); + const isCallbackInOriginalArgs = isFunction(args[args.length - 1]); + const listenFnArgs = isCallbackInOriginalArgs ? args.slice(0, args.length - 1) : args; + this.httpAdapter.listen(port, ...listenFnArgs, (...originalCallbackArgs) => { + this.flushLogsIfAutoFlushEnabled(); + if (originalCallbackArgs[0] instanceof Error) { + return reject(originalCallbackArgs[0]); + } + const address = this.httpServer.address(); + if (address) { + this.httpServer.removeListener("error", errorHandler); + this.isListening = true; + httpAdapterHost.listening = true; + resolve(this.httpServer); + } + if (isCallbackInOriginalArgs) { + args[args.length - 1](...originalCallbackArgs); + } + }); + }); + } + async getUrl() { + return new Promise((resolve, reject) => { + if (!this.isListening) { + this.logger.error(MESSAGES.CALL_LISTEN_FIRST); + reject(MESSAGES.CALL_LISTEN_FIRST); + return; + } + const address = this.httpServer.address(); + resolve(this.formatAddress(address)); + }); + } + formatAddress(address) { + if (isString(address)) { + if (platform() === "win32") { + return address; + } + const basePath = encodeURIComponent(address); + return `${this.getProtocol()}+unix://${basePath}`; + } + let host = this.host(); + if (address && address.family === "IPv6") { + if (host === "::") { + host = "[::1]"; + } else { + host = `[${host}]`; + } + } else if (host === "0.0.0.0") { + host = "127.0.0.1"; + } + return `${this.getProtocol()}://${host}:${address.port}`; + } + setGlobalPrefix(prefix, options) { + this.config.setGlobalPrefix(prefix); + if (options) { + const exclude = options?.exclude ? mapToExcludeRoute(options.exclude) : []; + this.config.setGlobalPrefixOptions({ + ...options, + exclude + }); + } + return this; + } + useWebSocketAdapter(adapter) { + if (this.isWsModuleRegistered) { + this.logger.warn("useWebSocketAdapter() was called after WebSocket gateways were already initialized. The provided adapter will be stored but will NOT be applied to existing gateways \u2014 they remain bound to the previously installed adapter. To install a custom adapter, call app.useWebSocketAdapter(...) BEFORE app.init() (or app.listen())."); + } + this.config.setIoAdapter(adapter); + return this; + } + useGlobalFilters(...filters) { + filters = this.applyInstanceDecoratorIfRegistered(...filters); + this.config.useGlobalFilters(...filters); + filters.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "filter", + ref: item + })); + return this; + } + useGlobalPipes(...pipes) { + pipes = this.applyInstanceDecoratorIfRegistered(...pipes); + this.config.useGlobalPipes(...pipes); + pipes.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "pipe", + ref: item + })); + return this; + } + useGlobalInterceptors(...interceptors) { + interceptors = this.applyInstanceDecoratorIfRegistered(...interceptors); + this.config.useGlobalInterceptors(...interceptors); + interceptors.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "interceptor", + ref: item + })); + return this; + } + useGlobalGuards(...guards) { + guards = this.applyInstanceDecoratorIfRegistered(...guards); + this.config.useGlobalGuards(...guards); + guards.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "guard", + ref: item + })); + return this; + } + useStaticAssets(pathOrOptions, options) { + this.httpAdapter.useStaticAssets?.(pathOrOptions, options); + return this; + } + setBaseViewsDir(path) { + this.httpAdapter.setBaseViewsDir?.(path); + return this; + } + setViewEngine(engineOrOptions) { + this.httpAdapter.setViewEngine?.(engineOrOptions); + return this; + } + /** + * Pre-load optional packages so that createNestApplication, + * createNestMicroservice and createHttpAdapter can stay synchronous. + */ + async preloadLazyPackages() { + await tryLoadPackage("@nestjs/platform-express", () => import("./platform-express-MGQH3ALM.js")); + await tryLoadPackage("@nestjs/microservices", () => import("@nestjs/microservices")); + } + /** + * Builds the cookie signer from the `cookies.secret` option and shares it + * between the route params factory (through the config), which verifies + * signed cookies, and the HTTP adapter, which signs them in `setCookie()`. + */ + applyCookiesOptions(appOptions) { + const secret = appOptions.cookies?.secret; + if (secret === void 0) { + return; + } + const signer = new CookieSigner(secret); + this.config.setCookieSigner(signer); + this.httpAdapter.setCookieSigner?.(signer); + } + host() { + const address = this.httpServer.address(); + if (isString(address)) { + return void 0; + } + return address && address.address; + } + getProtocol() { + return this.appOptions && this.appOptions.httpsOptions ? "https" : "http"; + } + /** + * Request-level security features are installed as a framework middleware + * or hook. After `init()` it would land behind the routes (Express) or be + * rejected by the framework (Fastify), leaving routes silently unprotected, + * so they fail loudly instead. A second call is rejected as well, as it + * would silently replace the first configuration. + */ + assertSecurityFeatureCanBeEnabled(methodName) { + if (!this.httpAdapter.registerSecurityHook) { + throw new Error(`Your HTTP Adapter does not support \`.${methodName}()\`.`); + } + if (this.isInitialized) { + throw new Error(`app.${methodName}() must be called before app.init() / app.listen().`); + } + if (this.enabledSecurityFeatures.has(methodName)) { + throw new Error(`app.${methodName}() can only be called once.`); + } + } + /** + * Both security features share one request hook, so that they run in a + * fixed order (headers, then the CSRF check) whichever is enabled first. + * It is registered with the adapter the first time either is enabled, + * i.e. at that position in the middleware chain. + */ + getSecurityHook() { + if (!this.securityHook) { + const hook = new HttpSecurityHook(); + this.httpAdapter.registerSecurityHook((request, response) => hook.handle(request, response)); + this.securityHook = hook; + } + return this.securityHook; + } + async registerMiddleware(instance) { + await this.middlewareModule.registerMiddleware(this.middlewareContainer, instance); + } + applyInstanceDecoratorIfRegistered(...instances) { + if (this.appOptions.instrument?.instanceDecorator) { + const decorate = makeSafeInstanceDecorator(this.appOptions.instrument.instanceDecorator); + return instances.map((instance) => decorate(instance)); + } + return instances; + } + applyFunctionDecoratorIfRegistered(args) { + if (!this.appOptions.instrument?.instanceDecorator) { + return args; + } + const decorate = makeSafeInstanceDecorator(this.appOptions.instrument.instanceDecorator); + const decorateFunction = /* @__PURE__ */ __name((arg) => { + if (!isFunction(arg)) { + return arg; + } + const decorated = decorate(arg); + return isFunction(decorated) ? decorated : arg; + }, "decorateFunction"); + return args.map(decorateFunction); + } + async loadSocketModule() { + if (!this.socketModule) { + const socketModule = await optionalRequire("@nestjs/websockets/socket-module", () => import("@nestjs/websockets/socket-module.js")); + if (socketModule?.SocketModule) { + this.socketModule = new socketModule.SocketModule(); + } + } + } + async loadMicroservicesModule() { + if (!this.microservicesModule) { + const msModule = await optionalRequire("@nestjs/microservices/microservices-module", () => import("@nestjs/microservices/microservices-module.js")); + if (msModule?.MicroservicesModule) { + this.microservicesModule = new msModule.MicroservicesModule(); + await loadPackage("@nestjs/microservices", "NestFactory", () => import("@nestjs/microservices")); + } + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exception-handler.js +var ExceptionHandler; +var init_exception_handler = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exception-handler.js"() { + init_common(); + ExceptionHandler = class _ExceptionHandler { + static { + __name(this, "ExceptionHandler"); + } + static logger = new Logger(_ExceptionHandler.name); + handle(exception) { + _ExceptionHandler.logger.error(exception); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions-zone.js +var DEFAULT_TEARDOWN, ExceptionsZone; +var init_exceptions_zone = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions-zone.js"() { + init_common(); + init_exception_handler(); + DEFAULT_TEARDOWN = /* @__PURE__ */ __name(() => process.exit(1), "DEFAULT_TEARDOWN"); + ExceptionsZone = class { + static { + __name(this, "ExceptionsZone"); + } + static exceptionHandler = new ExceptionHandler(); + static run(callback, teardown = DEFAULT_TEARDOWN, autoFlushLogs) { + try { + callback(); + } catch (e) { + this.exceptionHandler.handle(e); + if (autoFlushLogs) { + Logger.flush(); + } + teardown(e); + } + } + static async asyncRun(callback, teardown = DEFAULT_TEARDOWN, autoFlushLogs) { + try { + await callback(); + } catch (e) { + this.exceptionHandler.handle(e); + if (autoFlushLogs) { + Logger.flush(); + } + teardown(e); + } + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/load-adapter.js +async function loadAdapter(defaultPlatform, transport, loaderFn) { + try { + return loaderFn ? await loaderFn() : await import(defaultPlatform); + } catch (e) { + logger2.error(MISSING_REQUIRED_DEPENDENCY(defaultPlatform, transport)); + process.exit(1); + } +} +var MISSING_REQUIRED_DEPENDENCY, logger2; +var init_load_adapter = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/load-adapter.js"() { + init_common(); + MISSING_REQUIRED_DEPENDENCY = /* @__PURE__ */ __name((defaultPlatform, transport) => `No driver (${transport}) has been selected. In order to use the default driver, please, install the "${defaultPlatform}" package ($ npm install ${defaultPlatform}).`, "MISSING_REQUIRED_DEPENDENCY"); + logger2 = new Logger("PackageLoader"); + __name(loadAdapter, "loadAdapter"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/rethrow.js +var rethrow; +var init_rethrow = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/rethrow.js"() { + rethrow = /* @__PURE__ */ __name((err) => { + throw err; + }, "rethrow"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-loader.js +var InstanceLoader; +var init_instance_loader = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-loader.js"() { + init_common(); + init_discoverable_meta_host_collection(); + init_messages2(); + init_internal_core_module(); + InstanceLoader = class _InstanceLoader { + static { + __name(this, "InstanceLoader"); + } + container; + injector; + graphInspector; + logger; + constructor(container, injector, graphInspector, logger3 = new Logger(_InstanceLoader.name, { + timestamp: true + })) { + this.container = container; + this.injector = injector; + this.graphInspector = graphInspector; + this.logger = logger3; + } + setLogger(logger3) { + this.logger = logger3; + } + async createInstancesOfDependencies(modules = this.container.getModules()) { + this.createPrototypes(modules); + try { + await this.createInstances(modules); + } catch (err) { + this.graphInspector.inspectModules(modules); + this.graphInspector.registerPartial(err); + throw err; + } + this.graphInspector.inspectModules(modules); + } + createPrototypes(modules) { + modules.forEach((moduleRef) => { + this.createPrototypesOfProviders(moduleRef); + this.createPrototypesOfInjectables(moduleRef); + this.createPrototypesOfControllers(moduleRef); + }); + } + async createInstances(modules) { + await Promise.all([...modules.values()].map(async (moduleRef) => { + await this.createInstancesOfProviders(moduleRef); + await this.createInstancesOfInjectables(moduleRef); + await this.createInstancesOfControllers(moduleRef); + const { name } = moduleRef; + this.isModuleWhitelisted(name) && this.logger.log(MODULE_INIT_MESSAGE`${name}`); + })); + } + createPrototypesOfProviders(moduleRef) { + const { providers } = moduleRef; + providers.forEach((wrapper) => this.injector.loadPrototype(wrapper, providers)); + } + async createInstancesOfProviders(moduleRef) { + const { providers } = moduleRef; + const wrappers = [...providers.values()]; + await Promise.all(wrappers.map(async (item) => { + await this.injector.loadProvider(item, moduleRef); + this.graphInspector.inspectInstanceWrapper(item, moduleRef); + if (!item.isAlias) { + DiscoverableMetaHostCollection.inspectProvider(this.container.getModules(), item); + } + })); + } + createPrototypesOfControllers(moduleRef) { + const { controllers } = moduleRef; + controllers.forEach((wrapper) => this.injector.loadPrototype(wrapper, controllers)); + } + async createInstancesOfControllers(moduleRef) { + const { controllers } = moduleRef; + const wrappers = [...controllers.values()]; + await Promise.all(wrappers.map(async (item) => { + await this.injector.loadController(item, moduleRef); + this.graphInspector.inspectInstanceWrapper(item, moduleRef); + })); + } + createPrototypesOfInjectables(moduleRef) { + const { injectables } = moduleRef; + injectables.forEach((wrapper) => this.injector.loadPrototype(wrapper, injectables)); + } + async createInstancesOfInjectables(moduleRef) { + const { injectables } = moduleRef; + const wrappers = [...injectables.values()]; + await Promise.all(wrappers.map(async (item) => { + await this.injector.loadInjectable(item, moduleRef); + this.graphInspector.inspectInstanceWrapper(item, moduleRef); + })); + } + isModuleWhitelisted(name) { + return name !== InternalCoreModule.name; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/noop-graph-inspector.js +var noop4, NoopGraphInspector; +var init_noop_graph_inspector = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/noop-graph-inspector.js"() { + init_graph_inspector(); + noop4 = /* @__PURE__ */ __name(() => { + }, "noop"); + NoopGraphInspector = new Proxy(GraphInspector.prototype, { + get: /* @__PURE__ */ __name(() => noop4, "get") + }); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-module.exception.js +var InvalidClassModuleException; +var init_invalid_class_module_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-module.exception.js"() { + init_messages(); + init_runtime_exception(); + InvalidClassModuleException = class extends RuntimeException { + static { + __name(this, "InvalidClassModuleException"); + } + constructor(metatypeUsedAsAModule, scope, classKind) { + super(USING_INVALID_CLASS_AS_A_MODULE_MESSAGE(metatypeUsedAsAModule, scope, classKind)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-module.exception.js +var InvalidModuleException; +var init_invalid_module_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-module.exception.js"() { + init_messages(); + init_runtime_exception(); + InvalidModuleException = class extends RuntimeException { + static { + __name(this, "InvalidModuleException"); + } + constructor(parentModule, index, scope, receivedValue) { + super(INVALID_MODULE_MESSAGE(parentModule, index, scope, receivedValue)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-global-enhancer.exception.js +var RequestScopedGlobalEnhancerException; +var init_request_scoped_global_enhancer_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-global-enhancer.exception.js"() { + init_messages(); + init_runtime_exception(); + RequestScopedGlobalEnhancerException = class extends RuntimeException { + static { + __name(this, "RequestScopedGlobalEnhancerException"); + } + constructor(enhancerToken, provider, kind) { + super(REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE(enhancerToken, provider, kind)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-module.exception.js +var UndefinedModuleException; +var init_undefined_module_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-module.exception.js"() { + init_runtime_exception(); + init_messages(); + UndefinedModuleException = class extends RuntimeException { + static { + __name(this, "UndefinedModuleException"); + } + constructor(parentModule, index, scope) { + super(UNDEFINED_MODULE_MESSAGE(parentModule, index, scope)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/uninstantiated-global-enhancer.exception.js +var UninstantiatedGlobalEnhancerException; +var init_uninstantiated_global_enhancer_exception = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/uninstantiated-global-enhancer.exception.js"() { + init_messages(); + init_runtime_exception(); + UninstantiatedGlobalEnhancerException = class extends RuntimeException { + static { + __name(this, "UninstantiatedGlobalEnhancerException"); + } + constructor(enhancerToken, provider) { + super(UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE(enhancerToken, provider)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module-factory.js +var InternalCoreModuleFactory; +var init_internal_core_module_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module-factory.js"() { + init_common(); + init_external_context_creator(); + init_http_adapter_host(); + init_initialize_on_preview_allowlist(); + init_serialized_graph(); + init_injector(); + init_instance_loader(); + init_lazy_module_loader(); + init_modules_container(); + init_internal_core_module(); + InternalCoreModuleFactory = class { + static { + __name(this, "InternalCoreModuleFactory"); + } + static create(container, scanner, moduleCompiler, httpAdapterHost, graphInspector, moduleOverrides) { + const lazyModuleLoaderFactory = /* @__PURE__ */ __name(() => { + const logger3 = new Logger(LazyModuleLoader.name, { + timestamp: false + }); + const injector = new Injector({ + preview: container.contextOptions?.preview ?? false, + instanceDecorator: container.contextOptions?.instrument?.instanceDecorator + }); + const instanceLoader = new InstanceLoader(container, injector, graphInspector, logger3); + return new LazyModuleLoader(scanner, instanceLoader, moduleCompiler, container.getModules(), moduleOverrides); + }, "lazyModuleLoaderFactory"); + InitializeOnPreviewAllowlist.add(InternalCoreModule); + return InternalCoreModule.register([ + { + provide: ExternalContextCreator, + useFactory: /* @__PURE__ */ __name(() => ExternalContextCreator.fromContainer(container), "useFactory") + }, + { + provide: ModulesContainer, + useFactory: /* @__PURE__ */ __name(() => container.getModules(), "useFactory") + }, + { + provide: HttpAdapterHost, + useFactory: /* @__PURE__ */ __name(() => httpAdapterHost, "useFactory") + }, + { + provide: LazyModuleLoader, + useFactory: lazyModuleLoaderFactory + }, + { + provide: SerializedGraph, + useFactory: /* @__PURE__ */ __name(() => container.serializedGraph, "useFactory") + } + ]); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/tree-node.js +var TreeNode; +var init_tree_node = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/tree-node.js"() { + TreeNode = class { + static { + __name(this, "TreeNode"); + } + value; + children = /* @__PURE__ */ new Set(); + parent; + constructor({ value, parent }) { + this.value = value; + this.parent = parent; + } + addChild(child) { + this.children.add(child); + } + removeChild(child) { + this.children.delete(child); + } + relink(parent) { + this.parent?.removeChild(this); + this.parent = parent; + this.parent.addChild(this); + } + getDepth() { + const visited = /* @__PURE__ */ new Set(); + let depth = 0; + let current = this; + while (current) { + depth++; + current = current.parent; + if (visited.has(current)) { + return -1; + } + visited.add(current); + } + return depth; + } + hasCycleWith(target) { + const visited = /* @__PURE__ */ new Set(); + let current = this; + while (current) { + if (current.value === target) { + return true; + } + current = current.parent; + if (visited.has(current)) { + return false; + } + visited.add(current); + } + return false; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/topology-tree.js +var TopologyTree; +var init_topology_tree = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/topology-tree.js"() { + init_tree_node(); + TopologyTree = class { + static { + __name(this, "TopologyTree"); + } + root; + links = /* @__PURE__ */ new Map(); + constructor(moduleRef) { + this.root = new TreeNode({ + value: moduleRef, + parent: null + }); + this.links.set(moduleRef, this.root); + this.traverseAndMapToTree(this.root); + } + walk(callback) { + function walkNode(node, depth = 1) { + callback(node.value, depth); + node.children.forEach((child) => walkNode(child, depth + 1)); + } + __name(walkNode, "walkNode"); + walkNode(this.root); + } + traverseAndMapToTree(node, depth = 1) { + if (!node.value.imports) { + return; + } + node.value.imports.forEach((child) => { + if (!child) { + return; + } + if (this.links.has(child)) { + const existingSubtree = this.links.get(child); + if (node.hasCycleWith(child)) { + return; + } + const existingDepth = existingSubtree.getDepth(); + if (existingDepth < depth) { + existingSubtree.relink(node); + } + return; + } + const childNode = new TreeNode({ + value: child, + parent: node + }); + node.addChild(childNode); + this.links.set(child, childNode); + this.traverseAndMapToTree(childNode, depth + 1); + }); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/scanner.js +var import_iterare18, DependenciesScanner; +var init_scanner = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/scanner.js"() { + import_iterare18 = __toESM(require_lib(), 1); + init_application_config(); + init_constants2(); + init_circular_dependency_exception(); + init_invalid_class_module_exception(); + init_invalid_module_exception(); + init_request_scoped_global_enhancer_exception(); + init_undefined_module_exception(); + init_uninstantiated_global_enhancer_exception(); + init_get_class_scope(); + init_constants3(); + init_internal_core_module_factory(); + init_topology_tree(); + init_uuid_factory(); + init_internal(); + init_common(); + DependenciesScanner = class { + static { + __name(this, "DependenciesScanner"); + } + container; + metadataScanner; + graphInspector; + applicationConfig; + applicationProvidersApplyMap = []; + constructor(container, metadataScanner, graphInspector, applicationConfig = new ApplicationConfig()) { + this.container = container; + this.metadataScanner = metadataScanner; + this.graphInspector = graphInspector; + this.applicationConfig = applicationConfig; + } + async scan(module, options) { + await this.registerCoreModule(options?.overrides); + await this.scanForModules({ + moduleDefinition: module, + overrides: options?.overrides + }); + await this.scanModulesForDependencies(); + this.addScopedEnhancersMetadata(); + this.calculateModulesDistance(); + this.container.bindGlobalScope(); + } + async scanForModules({ moduleDefinition, lazy, scope = [], ctxRegistry = [], overrides = [] }) { + const { moduleRef: moduleInstance, inserted: moduleInserted } = await this.insertOrOverrideModule(moduleDefinition, overrides, scope) ?? {}; + if (lazy && !moduleInserted && moduleInstance?.isInstantiated) { + return []; + } + moduleDefinition = this.getOverrideModuleByModule(moduleDefinition, overrides)?.newModule ?? moduleDefinition; + moduleDefinition = moduleDefinition instanceof Promise ? await moduleDefinition : moduleDefinition; + ctxRegistry.push(moduleDefinition); + if (this.isForwardReference(moduleDefinition)) { + moduleDefinition = moduleDefinition.forwardRef(); + } + const modules = !this.isDynamicModule(moduleDefinition) ? this.reflectMetadata(MODULE_METADATA.IMPORTS, moduleDefinition) : [ + ...this.reflectMetadata(MODULE_METADATA.IMPORTS, moduleDefinition.module), + ...moduleDefinition.imports || [] + ]; + let registeredModuleRefs = []; + for (const [index, innerModule] of modules.entries()) { + if (innerModule === void 0) { + throw new UndefinedModuleException(moduleDefinition, index, scope); + } + if (!innerModule) { + throw new InvalidModuleException(moduleDefinition, index, scope, innerModule); + } + if (ctxRegistry.includes(innerModule)) { + continue; + } + const moduleRefs = await this.scanForModules({ + moduleDefinition: innerModule, + scope: [].concat(scope, moduleDefinition), + ctxRegistry, + overrides, + lazy + }); + registeredModuleRefs = registeredModuleRefs.concat(moduleRefs); + } + if (!moduleInstance) { + return registeredModuleRefs; + } + if (lazy) { + this.container.bindGlobalsToImports(moduleInstance); + } + return [moduleInstance].concat(registeredModuleRefs); + } + async insertModule(moduleDefinition, scope) { + const moduleToAdd = this.isForwardReference(moduleDefinition) ? moduleDefinition.forwardRef() : moduleDefinition; + if (this.isInjectable(moduleToAdd)) { + throw new InvalidClassModuleException(moduleDefinition, scope, "provider"); + } + if (this.isController(moduleToAdd)) { + throw new InvalidClassModuleException(moduleDefinition, scope, "controller"); + } + if (this.isExceptionFilter(moduleToAdd)) { + throw new InvalidClassModuleException(moduleDefinition, scope, "filter"); + } + return this.container.addModule(moduleToAdd, scope); + } + async scanModulesForDependencies(modules = this.container.getModules()) { + for (const [token, { metatype }] of modules) { + await this.reflectImports(metatype, token, metatype.name); + this.reflectProviders(metatype, token); + this.reflectControllers(metatype, token); + this.reflectExports(metatype, token); + } + } + async reflectImports(module, token, context) { + const modules = [ + ...this.reflectMetadata(MODULE_METADATA.IMPORTS, module), + ...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.IMPORTS) + ]; + for (const related of modules) { + await this.insertImport(related, token, context); + } + } + reflectProviders(module, token) { + const providers = [ + ...this.reflectMetadata(MODULE_METADATA.PROVIDERS, module), + ...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.PROVIDERS) + ]; + const applyProvidersKeys = Object.keys(this.getApplyProvidersMap()); + providers.forEach((provider) => { + this.insertProvider(provider, token); + if (!this.isCustomProvider(provider)) { + return this.reflectDynamicMetadata(provider, token); + } + const { provide, useClass } = provider; + if (!applyProvidersKeys.includes(provide)) { + this.reflectDynamicMetadata(useClass, token, provide); + } + }); + } + reflectControllers(module, token) { + const controllers = [ + ...this.reflectMetadata(MODULE_METADATA.CONTROLLERS, module), + ...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.CONTROLLERS) + ]; + controllers.forEach((item) => { + this.insertController(item, token); + this.reflectDynamicMetadata(item, token); + }); + } + reflectDynamicMetadata(cls, token, hostToken = cls) { + if (!cls || !cls.prototype) { + return; + } + this.reflectInjectables(cls, token, GUARDS_METADATA, hostToken); + this.reflectInjectables(cls, token, INTERCEPTORS_METADATA, hostToken); + this.reflectInjectables(cls, token, EXCEPTION_FILTERS_METADATA, hostToken); + this.reflectInjectables(cls, token, PIPES_METADATA, hostToken); + this.reflectParamInjectables(cls, token, ROUTE_ARGS_METADATA, hostToken); + } + reflectExports(module, token) { + const exports = [ + ...this.reflectMetadata(MODULE_METADATA.EXPORTS, module), + ...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.EXPORTS) + ]; + exports.forEach((exportedProvider) => this.insertExportedProviderOrModule(exportedProvider, token)); + } + reflectInjectables(component, token, metadataKey, hostToken = component) { + const controllerInjectables = this.reflectMetadata(metadataKey, component); + const methodInjectables = this.metadataScanner.getAllMethodNames(component.prototype).reduce((acc, method) => { + const methodInjectable = this.reflectKeyMetadata(component, metadataKey, method); + if (methodInjectable) { + acc.push(methodInjectable); + } + return acc; + }, []); + controllerInjectables.forEach((injectable) => this.insertInjectable(injectable, token, hostToken, ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey])); + methodInjectables.forEach((methodInjectable) => { + methodInjectable.metadata.forEach((injectable) => this.insertInjectable(injectable, token, hostToken, ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey], methodInjectable.methodKey)); + }); + } + reflectParamInjectables(component, token, metadataKey, hostToken = component) { + const paramsMethods = this.metadataScanner.getAllMethodNames(component.prototype); + paramsMethods.forEach((methodKey) => { + const metadata = Reflect.getMetadata(metadataKey, component, methodKey); + if (!metadata) { + return; + } + const params = Object.values(metadata); + params.map((item) => item.pipes).flat(1).forEach((injectable) => this.insertInjectable(injectable, token, hostToken, "pipe", methodKey)); + }); + } + reflectKeyMetadata(component, key, methodKey) { + let prototype = component.prototype; + do { + const descriptor = Reflect.getOwnPropertyDescriptor(prototype, methodKey); + if (!descriptor) { + continue; + } + const metadata = Reflect.getMetadata(key, descriptor.value); + if (!metadata) { + return; + } + return { methodKey, metadata }; + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype && prototype); + return void 0; + } + calculateModulesDistance() { + const modulesGenerator = this.container.getModules().values(); + modulesGenerator.next(); + const rootModule = modulesGenerator.next().value; + if (!rootModule) { + return; + } + const tree = new TopologyTree(rootModule); + tree.walk((moduleRef, depth) => { + if (moduleRef.isGlobal) { + return; + } + moduleRef.distance = depth; + }); + } + async insertImport(related, token, context) { + if (isUndefined(related)) { + throw new CircularDependencyException(context); + } + if (this.isForwardReference(related)) { + return this.container.addImport(related.forwardRef(), token); + } + await this.container.addImport(related, token); + } + isCustomProvider(provider) { + return provider && !isNil(provider.provide); + } + insertProvider(provider, token) { + const isCustomProvider = this.isCustomProvider(provider); + if (!isCustomProvider) { + return this.container.addProvider(provider, token); + } + const applyProvidersMap = this.getApplyProvidersMap(); + const providersKeys = Object.keys(applyProvidersMap); + const type = provider.provide; + if (!providersKeys.includes(type)) { + return this.container.addProvider(provider, token); + } + const uuid = UuidFactory.get(type.toString()); + const providerToken = `${type} (UUID: ${uuid})`; + let scope = provider.scope; + if (isNil(scope) && provider.useClass) { + scope = getClassScope(provider.useClass); + } + const existing = provider.useExisting; + if (isNil(scope) && isFunction(existing)) { + scope = getClassScope(existing); + } + this.applicationProvidersApplyMap.push({ + type, + moduleKey: token, + providerKey: providerToken, + scope + }); + const newProvider = { + ...provider, + provide: providerToken, + scope + }; + const enhancerSubtype = ENHANCER_TOKEN_TO_SUBTYPE_MAP[type]; + const factoryOrClassProvider = newProvider; + if (this.isRequestOrTransient(factoryOrClassProvider.scope)) { + return this.container.addInjectable(newProvider, token, enhancerSubtype); + } + this.container.addProvider(newProvider, token, enhancerSubtype); + } + insertInjectable(injectable, token, host, subtype, methodKey) { + if (isFunction(injectable)) { + const instanceWrapper = this.container.addInjectable(injectable, token, subtype, host); + this.graphInspector.insertEnhancerMetadataCache({ + moduleToken: token, + classRef: host, + enhancerInstanceWrapper: instanceWrapper, + targetNodeId: instanceWrapper.id, + subtype, + methodKey + }); + return instanceWrapper; + } else { + this.graphInspector.insertEnhancerMetadataCache({ + moduleToken: token, + classRef: host, + enhancerRef: injectable, + methodKey, + subtype + }); + } + } + insertExportedProviderOrModule(toExport, token) { + const fulfilledProvider = this.isForwardReference(toExport) ? toExport.forwardRef() : toExport; + this.container.addExportedProviderOrModule(fulfilledProvider, token); + } + insertController(controller, token) { + this.container.addController(controller, token); + } + insertOrOverrideModule(moduleDefinition, overrides, scope) { + const overrideModule = this.getOverrideModuleByModule(moduleDefinition, overrides); + if (overrideModule !== void 0) { + return this.overrideModule(moduleDefinition, overrideModule.newModule, scope); + } + return this.insertModule(moduleDefinition, scope); + } + getOverrideModuleByModule(module, overrides) { + if (this.isForwardReference(module)) { + return overrides.find((moduleToOverride) => { + return moduleToOverride.moduleToReplace === module.forwardRef() || moduleToOverride.moduleToReplace.forwardRef?.() === module.forwardRef(); + }); + } + return overrides.find((moduleToOverride) => moduleToOverride.moduleToReplace === module); + } + async overrideModule(moduleToOverride, newModule, scope) { + return this.container.replaceModule(this.isForwardReference(moduleToOverride) ? moduleToOverride.forwardRef() : moduleToOverride, this.isForwardReference(newModule) ? newModule.forwardRef() : newModule, scope); + } + reflectMetadata(metadataKey, metatype) { + return Reflect.getMetadata(metadataKey, metatype) || []; + } + async registerCoreModule(overrides) { + const moduleDefinition = InternalCoreModuleFactory.create(this.container, this, this.container.getModuleCompiler(), this.container.getHttpAdapterHostRef(), this.graphInspector, overrides); + const [instance] = await this.scanForModules({ + moduleDefinition, + overrides + }); + this.container.registerCoreModuleRef(instance); + } + /** + * Add either request or transient globally scoped enhancers + * to all controllers metadata storage + */ + addScopedEnhancersMetadata() { + (0, import_iterare18.iterate)(this.applicationProvidersApplyMap).filter((wrapper) => this.isRequestOrTransient(wrapper.scope)).forEach(({ moduleKey, providerKey }) => { + const modulesContainer = this.container.getModules(); + const { injectables } = modulesContainer.get(moduleKey); + const instanceWrapper = injectables.get(providerKey); + const iterableIterator = modulesContainer.values(); + (0, import_iterare18.iterate)(iterableIterator).map((moduleRef) => Array.from(moduleRef.controllers.values()).concat(moduleRef.entryProviders)).flatten().forEach((controllerOrEntryProvider) => controllerOrEntryProvider.addEnhancerMetadata(instanceWrapper)); + }); + } + applyApplicationProviders() { + const applyProvidersMap = this.getApplyProvidersMap(); + const applyRequestProvidersMap = this.getApplyRequestProvidersMap(); + const getInstanceWrapper = /* @__PURE__ */ __name((moduleKey, providerKey, collectionKey) => { + const modules = this.container.getModules(); + const collection = modules.get(moduleKey)[collectionKey]; + return collection.get(providerKey); + }, "getInstanceWrapper"); + this.applicationProvidersApplyMap.forEach(({ moduleKey, providerKey, type, scope }) => { + let instanceWrapper; + if (this.isRequestOrTransient(scope)) { + instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "injectables"); + this.graphInspector.insertAttachedEnhancer(instanceWrapper); + return applyRequestProvidersMap[type](instanceWrapper); + } + instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "providers"); + this.graphInspector.insertAttachedEnhancer(instanceWrapper); + if (!instanceWrapper.isDependencyTreeStatic()) { + const [kind, provider] = this.describeEnhancerProvider(instanceWrapper); + throw new RequestScopedGlobalEnhancerException(type, provider, kind); + } + if (!instanceWrapper.getInstanceByContextId(STATIC_CONTEXT).isResolved) { + const [, provider] = this.describeEnhancerProvider(instanceWrapper); + throw new UninstantiatedGlobalEnhancerException(type, provider); + } + applyProvidersMap[type](instanceWrapper.instance); + }); + } + describeEnhancerProvider(wrapper) { + if (wrapper.isAlias) { + const [target] = wrapper.inject ?? []; + const name = isFunction(target) ? target.name : String(target); + return ["useExisting", `useExisting: ${name}`]; + } + if (isNil(wrapper.inject)) { + return ["useClass", `useClass: ${wrapper.metatype.name}`]; + } + return ["useFactory", "useFactory"]; + } + getApplyProvidersMap() { + return { + [APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalInterceptor(interceptor), + [APP_PIPE]: (pipe) => this.applicationConfig.addGlobalPipe(pipe), + [APP_GUARD]: (guard) => this.applicationConfig.addGlobalGuard(guard), + [APP_FILTER]: (filter) => this.applicationConfig.addGlobalFilter(filter) + }; + } + getApplyRequestProvidersMap() { + return { + [APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalRequestInterceptor(interceptor), + [APP_PIPE]: (pipe) => this.applicationConfig.addGlobalRequestPipe(pipe), + [APP_GUARD]: (guard) => this.applicationConfig.addGlobalRequestGuard(guard), + [APP_FILTER]: (filter) => this.applicationConfig.addGlobalRequestFilter(filter) + }; + } + isDynamicModule(module) { + return module && !!module.module; + } + /** + * @param metatype + * @returns `true` if `metatype` is annotated with the `@Injectable()` decorator. + */ + isInjectable(metatype) { + return !!Reflect.getMetadata(INJECTABLE_WATERMARK, metatype); + } + /** + * @param metatype + * @returns `true` if `metatype` is annotated with the `@Controller()` decorator. + */ + isController(metatype) { + return !!Reflect.getMetadata(CONTROLLER_WATERMARK, metatype); + } + /** + * @param metatype + * @returns `true` if `metatype` is annotated with the `@Catch()` decorator. + */ + isExceptionFilter(metatype) { + return !!Reflect.getMetadata(CATCH_WATERMARK, metatype); + } + isForwardReference(module) { + return module && !!module.forwardRef; + } + isRequestOrTransient(scope) { + return scope === Scope.REQUEST || scope === Scope.TRANSIENT; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-factory.js +var NestFactoryStatic, NestFactory; +var init_nest_factory = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-factory.js"() { + init_application_config(); + init_constants2(); + init_exceptions_zone(); + init_load_adapter(); + init_rethrow(); + init_container(); + init_injector(); + init_instance_loader(); + init_graph_inspector(); + init_noop_graph_inspector(); + init_uuid_factory(); + init_metadata_scanner(); + init_nest_application_context(); + init_nest_application(); + init_scanner(); + init_internal(); + init_common(); + NestFactoryStatic = class { + static { + __name(this, "NestFactoryStatic"); + } + logger = new Logger("NestFactory", { + timestamp: true + }); + abortOnError = true; + autoFlushLogs = false; + async create(moduleCls, serverOrOptions, options) { + const [httpServer, appOptions] = this.isHttpServer(serverOrOptions) ? [serverOrOptions, options] : [await this.createHttpAdapter(), serverOrOptions]; + const applicationConfig = new ApplicationConfig(); + const container = new NestContainer(applicationConfig, appOptions); + const graphInspector = this.createGraphInspector(appOptions, container); + this.setAbortOnError(serverOrOptions, options); + this.registerLoggerConfiguration(appOptions); + await this.initialize(moduleCls, container, graphInspector, applicationConfig, appOptions, httpServer); + const instance = new NestApplication(container, httpServer, applicationConfig, graphInspector, appOptions); + await instance.preloadLazyPackages(); + const target = this.createNestInstance(instance); + return this.createAdapterProxy(target, httpServer); + } + /** + * Creates an instance of NestMicroservice. + * + * @param moduleCls Entry (root) application module class + * @param options Optional microservice configuration + * + * @returns A promise that, when resolved, + * contains a reference to the NestMicroservice instance. + */ + async createMicroservice(moduleCls, options) { + const { NestMicroservice } = await loadPackage("@nestjs/microservices", "NestFactory", () => import("@nestjs/microservices")); + const applicationConfig = new ApplicationConfig(); + const container = new NestContainer(applicationConfig, options); + const graphInspector = this.createGraphInspector(options, container); + this.setAbortOnError(options); + this.registerLoggerConfiguration(options); + await this.initialize(moduleCls, container, graphInspector, applicationConfig, options); + return this.createNestInstance(new NestMicroservice(container, options, graphInspector, applicationConfig)); + } + /** + * Creates an instance of NestApplicationContext. + * + * @param moduleCls Entry (root) application module class + * @param options Optional Nest application configuration + * + * @returns A promise that, when resolved, + * contains a reference to the NestApplicationContext instance. + */ + async createApplicationContext(moduleCls, options) { + const applicationConfig = new ApplicationConfig(); + const container = new NestContainer(applicationConfig, options); + const graphInspector = this.createGraphInspector(options, container); + this.setAbortOnError(options); + this.registerLoggerConfiguration(options); + await this.initialize(moduleCls, container, graphInspector, applicationConfig, options); + const modules = container.getModules().values(); + const root = modules.next().value; + const context = this.createNestInstance(new NestApplicationContext(container, options, root)); + if (this.autoFlushLogs) { + context.flushLogsOnOverride(); + } + return context.init(); + } + createNestInstance(instance) { + return this.createProxy(instance); + } + async initialize(module, container, graphInspector, config = new ApplicationConfig(), options = {}, httpServer = null) { + UuidFactory.mode = options.snapshot ? UuidFactoryMode.Deterministic : UuidFactoryMode.Random; + const injector = new Injector({ + preview: options.preview, + snapshot: options.snapshot, + instanceDecorator: options.instrument?.instanceDecorator + }); + const instanceLoader = new InstanceLoader(container, injector, graphInspector); + const metadataScanner = new MetadataScanner(); + const dependenciesScanner = new DependenciesScanner(container, metadataScanner, graphInspector, config); + container.setHttpAdapter(httpServer); + const teardown = this.abortOnError === false ? rethrow : void 0; + await httpServer?.init?.(); + try { + this.logger.log(MESSAGES.APPLICATION_START); + await ExceptionsZone.asyncRun(async () => { + await dependenciesScanner.scan(module); + await instanceLoader.createInstancesOfDependencies(); + dependenciesScanner.applyApplicationProviders(); + }, teardown, this.autoFlushLogs); + } catch (e) { + this.handleInitializationError(e); + } + } + handleInitializationError(err) { + if (this.abortOnError) { + process.abort(); + } + rethrow(err); + } + createProxy(target) { + const proxy = this.createExceptionProxy(); + return new Proxy(target, { + get: proxy, + set: proxy + }); + } + createExceptionProxy() { + return (receiver, prop) => { + if (!(prop in receiver)) { + return; + } + if (isFunction(receiver[prop])) { + return this.createExceptionZone(receiver, prop); + } + return receiver[prop]; + }; + } + createExceptionZone(receiver, prop) { + const teardown = this.abortOnError === false ? rethrow : void 0; + return (...args) => { + let result; + ExceptionsZone.run(() => { + result = receiver[prop](...args); + }, teardown, this.autoFlushLogs); + return result; + }; + } + registerLoggerConfiguration(options) { + if (!options) { + return; + } + const { logger: logger3, bufferLogs, autoFlushLogs, forceConsole } = options; + if (logger3 !== true && !isNil(logger3)) { + Logger.overrideLogger(logger3); + } else if (forceConsole) { + const consoleLogger = new ConsoleLogger({ forceConsole: true }); + Logger.overrideLogger(consoleLogger); + } + if (bufferLogs) { + Logger.attachBuffer(); + } + this.autoFlushLogs = autoFlushLogs ?? true; + } + async createHttpAdapter(httpServer) { + const { ExpressAdapter: ExpressAdapter2 } = await loadAdapter("@nestjs/platform-express", "HTTP", () => import("./platform-express-MGQH3ALM.js")); + return new ExpressAdapter2(httpServer); + } + isHttpServer(serverOrOptions) { + return !!(serverOrOptions && serverOrOptions.patch); + } + setAbortOnError(serverOrOptions, options) { + this.abortOnError = this.isHttpServer(serverOrOptions) ? !(options && options.abortOnError === false) : !(serverOrOptions && serverOrOptions.abortOnError === false); + } + createAdapterProxy(app, adapter) { + const proxy = new Proxy(app, { + get: /* @__PURE__ */ __name((receiver, prop) => { + const mapToProxy = /* @__PURE__ */ __name((result) => { + return result instanceof Promise ? result.then(mapToProxy) : result instanceof NestApplication ? proxy : result; + }, "mapToProxy"); + if (!(prop in receiver) && prop in adapter) { + return (...args) => { + const result = this.createExceptionZone(adapter, prop)(...args); + return mapToProxy(result); + }; + } + if (isFunction(receiver[prop])) { + return (...args) => { + const result = receiver[prop](...args); + return mapToProxy(result); + }; + } + return receiver[prop]; + }, "get") + }); + return proxy; + } + createGraphInspector(appOptions, container) { + return appOptions?.snapshot ? new GraphInspector(container) : NoopGraphInspector; + } + }; + NestFactory = new NestFactoryStatic(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/assign-to-object.util.js +function assignToObject(target, source) { + Object.defineProperties(target, Object.keys(source).reduce((descriptors, key) => { + descriptors[key] = Object.getOwnPropertyDescriptor(source, key); + return descriptors; + }, /* @__PURE__ */ Object.create(null))); + return target; +} +var init_assign_to_object_util = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/assign-to-object.util.js"() { + __name(assignToObject, "assignToObject"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/constants.js +var REPL_INITIALIZED_MESSAGE; +var init_constants5 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/constants.js"() { + REPL_INITIALIZED_MESSAGE = "REPL initialized"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-function.js +var ReplFunction; +var init_repl_function = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-function.js"() { + init_internal(); + ReplFunction = class { + static { + __name(this, "ReplFunction"); + } + ctx; + logger; + constructor(ctx) { + this.ctx = ctx; + this.logger = ctx.logger; + } + /** + * @returns A message displayed by calling `.help` + */ + makeHelpMessage() { + const { description, name, signature } = this.fnDefinition; + const fnSignatureWithName = `${name}${signature}`; + return `${clc.yellow(description)} +${clc.magentaBright("Interface:")} ${clc.bold(fnSignatureWithName)} +`; + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/help-repl-fn.js +var import_iterare19, HelpReplFn; +var init_help_repl_fn = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/help-repl-fn.js"() { + import_iterare19 = __toESM(require_lib(), 1); + init_repl_function(); + init_internal(); + HelpReplFn = class _HelpReplFn extends ReplFunction { + static { + __name(this, "HelpReplFn"); + } + fnDefinition = { + name: "help", + signature: "() => void", + description: "Display all available REPL native functions." + }; + static buildHelpMessage = /* @__PURE__ */ __name(({ name, description }) => clc.cyanBright(name) + (description ? ` ${clc.bold("-")} ${description}` : ""), "buildHelpMessage"); + action() { + const sortedNativeFunctions = (0, import_iterare19.iterate)(this.ctx.nativeFunctions).map(([, nativeFunction]) => nativeFunction.fnDefinition).toArray().sort((a, b) => a.name < b.name ? -1 : 1); + this.ctx.writeToStdout(`You can call ${clc.bold(".help")} on any function listed below (e.g.: ${clc.bold("help.help")}): + +` + sortedNativeFunctions.map(_HelpReplFn.buildHelpMessage).join("\n") + // Without the following LF the last item won't be displayed + "\n"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/get-repl-fn.js +var GetReplFn; +var init_get_repl_fn = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/get-repl-fn.js"() { + init_repl_function(); + GetReplFn = class extends ReplFunction { + static { + __name(this, "GetReplFn"); + } + fnDefinition = { + name: "get", + signature: "(token: InjectionToken) => any", + description: "Retrieves an instance of either injectable or controller, otherwise, throws exception.", + aliases: ["$"] + }; + action(token) { + return this.ctx.app.get(token); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/resolve-repl-fn.js +var ResolveReplFn; +var init_resolve_repl_fn = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/resolve-repl-fn.js"() { + init_repl_function(); + ResolveReplFn = class extends ReplFunction { + static { + __name(this, "ResolveReplFn"); + } + fnDefinition = { + name: "resolve", + description: "Resolves transient or request-scoped instance of either injectable or controller, otherwise, throws exception.", + signature: "(token: InjectionToken, contextId: any) => Promise" + }; + action(token, contextId) { + return this.ctx.app.resolve(token, contextId); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/select-relp-fn.js +var SelectReplFn; +var init_select_relp_fn = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/select-relp-fn.js"() { + init_repl_function(); + SelectReplFn = class extends ReplFunction { + static { + __name(this, "SelectReplFn"); + } + fnDefinition = { + name: "select", + description: "Allows navigating through the modules tree, for example, to pull out a specific instance from the selected module.", + signature: "(token: DynamicModule | ClassRef) => INestApplicationContext" + }; + action(token) { + return this.ctx.app.select(token); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/debug-repl-fn.js +var DebugReplFn; +var init_debug_repl_fn = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/debug-repl-fn.js"() { + init_repl_function(); + init_internal(); + DebugReplFn = class extends ReplFunction { + static { + __name(this, "DebugReplFn"); + } + fnDefinition = { + name: "debug", + description: 'Print all registered modules as a list together with their controllers and providers.\nIf the argument is passed in, for example, "debug(MyModule)" then it will only print components of this specific module.', + signature: "(moduleCls?: ClassRef | string) => void" + }; + action(moduleCls) { + this.ctx.writeToStdout("\n"); + if (moduleCls) { + const token = typeof moduleCls === "function" ? moduleCls.name : moduleCls; + const moduleEntry = this.ctx.debugRegistry[token]; + if (!moduleEntry) { + return this.logger.error(`"${token}" has not been found in the modules registry`); + } + this.printCtrlsAndProviders(token, moduleEntry); + } else { + for (const [moduleKey, entry] of Object.entries(this.ctx.debugRegistry)) { + this.printCtrlsAndProviders(moduleKey, entry); + } + } + this.ctx.writeToStdout("\n"); + } + printCtrlsAndProviders(moduleName, moduleDebugEntry) { + this.ctx.writeToStdout(`${clc.green(moduleName)}: +`); + this.printCollection("controllers", moduleDebugEntry["controllers"]); + this.printCollection("providers", moduleDebugEntry["providers"]); + } + printCollection(title, collectionValue) { + const collectionEntries = Object.keys(collectionValue); + if (collectionEntries.length <= 0) { + return; + } + this.ctx.writeToStdout(` ${clc.yellow(`- ${title}`)}: +`); + collectionEntries.forEach((provider) => this.ctx.writeToStdout(` ${clc.green("\u25FB")} ${provider} +`)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/methods-repl-fn.js +var MethodsReplFn; +var init_methods_repl_fn = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/methods-repl-fn.js"() { + init_metadata_scanner(); + init_repl_function(); + init_internal(); + MethodsReplFn = class extends ReplFunction { + static { + __name(this, "MethodsReplFn"); + } + fnDefinition = { + name: "methods", + description: "Display all public methods available on a given provider or controller.", + signature: "(token: ClassRef | string) => void" + }; + metadataScanner = new MetadataScanner(); + action(token) { + const proto = typeof token !== "function" ? Object.getPrototypeOf(this.ctx.app.get(token)) : token?.prototype; + const methods = this.metadataScanner.getAllMethodNames(proto); + this.ctx.writeToStdout("\n"); + this.ctx.writeToStdout(`${clc.green("Methods")}: +`); + methods.forEach((methodName) => this.ctx.writeToStdout(` ${clc.yellow("\u25FB")} ${methodName} +`)); + this.ctx.writeToStdout("\n"); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/index.js +var init_native_functions = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/index.js"() { + init_help_repl_fn(); + init_get_repl_fn(); + init_resolve_repl_fn(); + init_select_relp_fn(); + init_debug_repl_fn(); + init_methods_repl_fn(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-context.js +var ReplContext; +var init_repl_context = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-context.js"() { + init_common(); + init_application_config(); + init_injector2(); + init_internal_core_module(); + init_native_functions(); + ReplContext = class _ReplContext { + static { + __name(this, "ReplContext"); + } + app; + logger = new Logger(_ReplContext.name); + debugRegistry = {}; + globalScope = /* @__PURE__ */ Object.create(null); + nativeFunctions = /* @__PURE__ */ new Map(); + container; + constructor(app, nativeFunctionsClassRefs) { + this.app = app; + this.container = app.container; + this.initializeContext(); + this.initializeNativeFunctions(nativeFunctionsClassRefs || []); + } + writeToStdout(text) { + process.stdout.write(text); + } + initializeContext() { + const modules = this.container.getModules(); + modules.forEach((moduleRef) => { + let moduleName = moduleRef.metatype.name; + if (moduleName === InternalCoreModule.name) { + return; + } + if (this.globalScope[moduleName]) { + moduleName += ` (${moduleRef.token})`; + } + this.introspectCollection(moduleRef, moduleName, "providers"); + this.introspectCollection(moduleRef, moduleName, "controllers"); + Object.defineProperty(this.globalScope, moduleName, { + value: moduleRef.metatype, + configurable: false, + enumerable: true + }); + }); + } + introspectCollection(moduleRef, moduleKey, collection) { + const moduleDebugEntry = {}; + moduleRef[collection].forEach(({ token }) => { + const stringifiedToken = this.stringifyToken(token); + if (stringifiedToken === ApplicationConfig.name || stringifiedToken === moduleRef.metatype.name) { + return; + } + if (!this.globalScope[stringifiedToken]) { + Object.defineProperty(this.globalScope, stringifiedToken, { + value: token, + configurable: false, + enumerable: true + }); + } + if (stringifiedToken === ModuleRef.name) { + return; + } + moduleDebugEntry[stringifiedToken] = token; + }); + this.debugRegistry[moduleKey] = { + ...this.debugRegistry?.[moduleKey], + [collection]: moduleDebugEntry + }; + } + stringifyToken(token) { + return typeof token !== "string" ? typeof token === "function" ? token.name : token?.toString() : `"${token}"`; + } + addNativeFunction(NativeFunctionRef) { + const nativeFunction = new NativeFunctionRef(this); + const nativeFunctions = [nativeFunction]; + this.nativeFunctions.set(nativeFunction.fnDefinition.name, nativeFunction); + nativeFunction.fnDefinition.aliases?.forEach((aliasName) => { + const aliasNativeFunction = Object.create(nativeFunction); + aliasNativeFunction.fnDefinition = { + name: aliasName, + description: aliasNativeFunction.fnDefinition.description, + signature: aliasNativeFunction.fnDefinition.signature + }; + this.nativeFunctions.set(aliasName, aliasNativeFunction); + nativeFunctions.push(aliasNativeFunction); + }); + return nativeFunctions; + } + registerFunctionIntoGlobalScope(nativeFunction) { + this.globalScope[nativeFunction.fnDefinition.name] = nativeFunction.action.bind(nativeFunction); + const functionBoundRef = this.globalScope[nativeFunction.fnDefinition.name]; + Object.defineProperty(functionBoundRef, "help", { + enumerable: false, + configurable: false, + get: /* @__PURE__ */ __name(() => ( + // Dynamically builds the help message as will unlikely to be called + // several times. + this.writeToStdout(nativeFunction.makeHelpMessage()) + ), "get") + }); + } + initializeNativeFunctions(nativeFunctionsClassRefs) { + const builtInFunctionsClassRefs = [ + HelpReplFn, + GetReplFn, + ResolveReplFn, + SelectReplFn, + DebugReplFn, + MethodsReplFn + ]; + builtInFunctionsClassRefs.concat(nativeFunctionsClassRefs).forEach((NativeFunction) => { + const nativeFunctions = this.addNativeFunction(NativeFunction); + nativeFunctions.forEach((nativeFunction) => { + this.registerFunctionIntoGlobalScope(nativeFunction); + }); + }); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-logger.js +var ReplLogger; +var init_repl_logger = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-logger.js"() { + init_common(); + init_nest_application(); + init_router_explorer(); + init_routes_resolver(); + ReplLogger = class _ReplLogger extends ConsoleLogger { + static { + __name(this, "ReplLogger"); + } + static ignoredContexts = [ + RoutesResolver.name, + RouterExplorer.name, + NestApplication.name + ]; + log(_message, context) { + if (_ReplLogger.ignoredContexts.includes(context)) { + return; + } + return super.log.apply(this, Array.from(arguments)); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-native-commands.js +function listAllCommands(replServer) { + Object.keys(replServer.commands).sort().forEach((name) => { + const cmd = replServer.commands[name]; + if (cmd) { + replServer.output.write(`${name} ${cmd.help || ""} +`); + } + }); +} +function defineDefaultCommandsOnRepl(replServer) { + replServer.defineCommand("help", { + help: "Show REPL options", + action(name) { + this.clearBufferedCommand(); + if (name) { + const nativeCommandOrFunction = this.commands[name] || this.context[name]; + const helpMessage = nativeCommandOrFunction?.help; + if (helpMessage) { + this.output.write(`${helpMessage} +`); + } + } else { + listAllCommands(this); + this.output.write("\n\n"); + this.context.help(); + this.output.write("\nPress Ctrl+C to abort current expression, Ctrl+D to exit the REPL\n"); + } + this.displayPrompt(); + } + }); +} +var init_repl_native_commands = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-native-commands.js"() { + __name(listAllCommands, "listAllCommands"); + __name(defineDefaultCommandsOnRepl, "defineDefaultCommandsOnRepl"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl.js +async function repl(module, replOptions = {}) { + const app = await NestFactory.createApplicationContext(module, { + abortOnError: false, + logger: new ReplLogger() + }); + await app.init(); + const replContext = new ReplContext(app); + Logger.log(REPL_INITIALIZED_MESSAGE); + const _repl = await import("repl"); + const replServer = _repl.start({ + prompt: clc.green("> "), + ignoreUndefined: true, + ...replOptions + }); + assignToObject(replServer.context, replContext.globalScope); + defineDefaultCommandsOnRepl(replServer); + replServer.on("exit", async () => { + await app.close(); + }); + return replServer; +} +var init_repl = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl.js"() { + init_common(); + init_nest_factory(); + init_assign_to_object_util(); + init_constants5(); + init_repl_context(); + init_repl_logger(); + init_repl_native_commands(); + init_internal(); + __name(repl, "repl"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/index.js +var init_repl2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/index.js"() { + init_repl(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/resolved-route.interface.js +var init_resolved_route_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/resolved-route.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-conflict.interface.js +var init_route_conflict_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-conflict.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-resolution-options.interface.js +var init_route_resolution_options_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-resolution-options.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/routes.interface.js +var init_routes_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/routes.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/index.js +var init_interfaces = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/index.js"() { + init_resolved_route_interface(); + init_route_conflict_interface(); + init_route_resolution_options_interface(); + init_routes_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/index.js +var init_request = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/index.js"() { + init_request_constants(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-module.js +var RouterModule_1, ROUTES, targetModulesByContainer, RouterModule; +var init_router_module = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-module.js"() { + init_tslib_es6(); + init_common(); + init_modules_container(); + init_utils(); + init_internal(); + ROUTES = /* @__PURE__ */ Symbol("ROUTES"); + targetModulesByContainer = /* @__PURE__ */ new WeakMap(); + RouterModule = RouterModule_1 = class RouterModule2 { + static { + __name(this, "RouterModule"); + } + modulesContainer; + routes; + constructor(modulesContainer, routes) { + this.modulesContainer = modulesContainer; + this.routes = routes; + this.routes = this.deepCloneRoutes(routes); + this.initialize(); + } + static register(routes) { + return { + module: RouterModule_1, + providers: [ + { + provide: ROUTES, + useValue: routes + } + ] + }; + } + deepCloneRoutes(routes) { + return routes.map((routeOrType) => { + if (typeof routeOrType === "function") { + return routeOrType; + } + if (routeOrType.children) { + return { + ...routeOrType, + children: this.deepCloneRoutes(routeOrType.children) + }; + } + return { ...routeOrType }; + }); + } + initialize() { + const flattenedRoutes = flattenRoutePaths(this.routes); + flattenedRoutes.forEach((route) => { + const modulePath = normalizePath(route.path); + this.registerModulePathMetadata(route.module, modulePath); + this.updateTargetModulesCache(route.module); + }); + } + registerModulePathMetadata(moduleCtor, modulePath) { + Reflect.defineMetadata(MODULE_PATH + this.modulesContainer.applicationId, modulePath, moduleCtor); + } + updateTargetModulesCache(moduleCtor) { + let moduleClassSet; + if (targetModulesByContainer.has(this.modulesContainer)) { + moduleClassSet = targetModulesByContainer.get(this.modulesContainer); + } else { + moduleClassSet = /* @__PURE__ */ new WeakSet(); + targetModulesByContainer.set(this.modulesContainer, moduleClassSet); + } + const moduleRef = Array.from(this.modulesContainer.values()).find((item) => item?.metatype === moduleCtor); + if (!moduleRef) { + return; + } + moduleClassSet.add(moduleRef); + } + }; + RouterModule = RouterModule_1 = __decorate([ + Module({}), + __param(1, Inject(ROUTES)), + __metadata("design:paramtypes", [ModulesContainer, Array]) + ], RouterModule); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/index.js +var init_router = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/index.js"() { + init_interfaces(); + init_request(); + init_router_module(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/index.js +var core_exports = {}; +__export(core_exports, { + APP_FILTER: () => APP_FILTER, + APP_GUARD: () => APP_GUARD, + APP_INTERCEPTOR: () => APP_INTERCEPTOR, + APP_PIPE: () => APP_PIPE, + AbstractHttpAdapter: () => AbstractHttpAdapter, + ApplicationConfig: () => ApplicationConfig, + BaseExceptionFilter: () => BaseExceptionFilter, + ContextIdFactory: () => ContextIdFactory, + DiscoveryModule: () => DiscoveryModule, + DiscoveryService: () => DiscoveryService, + ExternalContextCreator: () => ExternalContextCreator, + GraphInspector: () => GraphInspector, + HttpAdapterHost: () => HttpAdapterHost, + INQUIRER: () => INQUIRER, + InitializeOnPreviewAllowlist: () => InitializeOnPreviewAllowlist, + LazyModuleLoader: () => LazyModuleLoader, + MetadataScanner: () => MetadataScanner, + MiddlewareBuilder: () => MiddlewareBuilder, + ModuleRef: () => ModuleRef, + ModulesContainer: () => ModulesContainer, + NestApplication: () => NestApplication, + NestApplicationContext: () => NestApplicationContext, + NestContainer: () => NestContainer, + NestFactory: () => NestFactory, + PartialGraphHost: () => PartialGraphHost, + REQUEST: () => REQUEST, + Reflector: () => Reflector, + RouterModule: () => RouterModule, + SerializedGraph: () => SerializedGraph, + createContextId: () => createContextId, + repl: () => repl +}); +var import_reflect_metadata; +var init_core = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/index.js"() { + import_reflect_metadata = __toESM(require_Reflect(), 1); + init_adapters(); + init_application_config(); + init_constants2(); + init_discovery(); + init_exceptions(); + init_helpers(); + init_injector2(); + init_inspector(); + init_metadata_scanner(); + init_middleware(); + init_nest_application(); + init_nest_application_context(); + init_nest_factory(); + init_repl2(); + init_router(); + init_services(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/index.js +var init_internal_core_module2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/index.js"() { + init_internal_core_module(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/internal.js +var init_internal2 = __esm({ + "../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/internal.js"() { + init_exceptions2(); + init_invalid_exception_filter_exception(); + init_runtime_exception(); + init_constants2(); + init_scanner(); + init_constants3(); + init_injector(); + init_instance_loader(); + init_instance_wrapper(); + init_internal_core_module2(); + init_module(); + init_inspector(); + init_context_utils(); + init_execution_context_host(); + init_handler_metadata_storage(); + init_load_adapter(); + init_optional_require(); + init_router_method_factory(); + init_safe_instance_decorator(); + init_constants4(); + init_guards_consumer(); + init_guards_context_creator(); + init_params_token_factory(); + init_pipes_consumer(); + init_pipes_context_creator(); + init_interceptors_consumer(); + init_interceptors_context_creator(); + init_base_exception_filter_context(); + init_legacy_route_converter(); + init_rejected_by_pipes(); + init_request_constants(); + init_noop_graph_inspector(); + init_uuid_factory(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/express-adapter.js +import * as http from "http"; +import * as https from "https"; +import { finished } from "stream"; +function isJsonContentType(contentType) { + const mediaType = contentType.split(";")[0].trim().toLowerCase(); + return mediaType.startsWith("application/json") || mediaType.endsWith("+json"); +} +var import_cors, import_express, import_path_to_regexp6, ExpressAdapter; +var init_express_adapter = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/express-adapter.js"() { + init_common(); + import_cors = __toESM(require_lib2(), 1); + import_express = __toESM(require_express2(), 1); + import_path_to_regexp6 = __toESM(require_dist2(), 1); + init_get_body_parser_options_util(); + init_get_media_type_version_util(); + init_internal(); + init_core(); + init_internal2(); + __name(isJsonContentType, "isJsonContentType"); + ExpressAdapter = class _ExpressAdapter extends AbstractHttpAdapter { + static { + __name(this, "ExpressAdapter"); + } + routerMethodFactory = new RouterMethodFactory(); + logger = new Logger(_ExpressAdapter.name); + openConnections = /* @__PURE__ */ new Set(); + registeredPrefixes = /* @__PURE__ */ new Set(); + isShuttingDown = false; + onRequestHook; + onResponseHook; + constructor(instance) { + super(instance || (0, import_express.default)()); + this.instance.use((req, res, next) => { + if (this.onResponseHook) { + res.on("finish", async () => { + try { + await this.onResponseHook.apply(this, [req, res]); + } catch (err) { + this.logger.error(err); + } + }); + } + if (this.onRequestHook) { + this.runRequestHook(req, res, next); + } else { + next(); + } + }); + } + runRequestHook(req, res, next) { + let completed = false; + const doneOnce = /* @__PURE__ */ __name((err) => { + if (completed) { + if (err) { + this.logger.error(err); + } + return; + } + completed = true; + next(err); + }, "doneOnce"); + try { + const result = this.onRequestHook.call(this, req, res, doneOnce); + if (result && typeof result.then === "function") { + result.then(void 0, (err) => doneOnce(err || new Error("Request hook failed"))); + } + } catch (err) { + doneOnce(err || new Error("Request hook failed")); + } + } + /** + * Registers a request hook. Call `done()` to continue processing the request; + * resolving the returned promise does not continue it. Only the first + * completion is forwarded to Express. Errors after `done()` are logged + * without advancing the request again. + */ + setOnRequestHook(onRequestHook) { + this.onRequestHook = onRequestHook; + } + /** + * Registers a hook to run after the response has been sent. + * Thrown errors and rejected promises are logged. + */ + setOnResponseHook(onResponseHook) { + this.onResponseHook = onResponseHook; + } + reply(response, body, statusCode) { + if (!isNil(statusCode)) { + response.status(statusCode); + } + if (isNil(body)) { + return response.send(); + } + if (body instanceof StreamableFile) { + const { errored } = body.getStream(); + if (errored) { + return body.errorHandler(errored, response); + } + this.applyStreamHeaders(response, body); + const stream = body.getStream(); + stream.once("error", (err) => { + body.errorHandler(err, response); + }); + finished(response, () => { + if (!stream.readableEnded) { + stream.destroy(); + } + }); + if (response.req?.method === "HEAD") { + stream.once("readable", () => response.end()); + return response.on("error", (err) => body.errorLogger(err)); + } + return stream.pipe(response).on("error", (err) => body.errorLogger(err)); + } + const responseContentType = response.getHeader("Content-Type"); + if (typeof responseContentType === "string" && !isJsonContentType(responseContentType) && (body?.statusCode >= HttpStatus.BAD_REQUEST || // A custom error body (e.g. "new HttpException({ ... }, 404)") need + // not have a "statusCode" of its own + isObject(body) && !isNil(statusCode) && statusCode >= HttpStatus.BAD_REQUEST)) { + this.logger.warn("Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses"); + response.setHeader("Content-Type", "application/json"); + } + return isObject(body) ? response.json(body) : response.send(String(body)); + } + status(response, statusCode) { + return response.status(statusCode); + } + end(response, message) { + return response.end(message); + } + render(response, view, options) { + return response.render(view, options); + } + redirect(response, statusCode, url) { + return response.redirect(statusCode, url); + } + setErrorHandler(handler, prefix) { + const normalizedPrefix = this.normalizePrefix(prefix); + if (normalizedPrefix) { + const router = import_express.default.Router(); + router.use(handler); + this.use(normalizedPrefix, router); + } + return this.use(handler); + } + setNotFoundHandler(handler, prefix, excludedRoutes) { + const normalizedPrefix = this.normalizePrefix(prefix); + if (normalizedPrefix) { + this.registeredPrefixes.add(normalizedPrefix); + const router = import_express.default.Router(); + router.all("*path", handler); + this.use(normalizedPrefix, router); + for (const route of excludedRoutes ?? []) { + this.instance.all(addLeadingSlash(route.path), handler); + } + return; + } + return this.use((req, res, next) => { + const path = req.originalUrl.split(/[?#]/)[0]; + for (const registeredPrefix of this.registeredPrefixes) { + if (path === registeredPrefix || path.startsWith(`${registeredPrefix}/`)) { + return next(); + } + } + return handler(req, res, next); + }); + } + isHeadersSent(response) { + return response.headersSent; + } + getHeader(response, name) { + return response.get(name); + } + setHeader(response, name, value) { + return response.set(name, value); + } + appendHeader(response, name, value) { + return response.append(name, value); + } + normalizePath(path) { + try { + const convertedPath = LegacyRouteConverter.tryConvert(path); + (0, import_path_to_regexp6.pathToRegexp)(convertedPath); + return convertedPath; + } catch (e) { + if (e instanceof TypeError) { + LegacyRouteConverter.printError(path); + } + throw e; + } + } + listen(port, ...args) { + return this.httpServer.listen(port, ...args); + } + beforeClose() { + this.isShuttingDown = true; + } + close() { + this.isShuttingDown = true; + this.closeOpenConnections(); + if (!this.httpServer) { + return void 0; + } + return new Promise((resolve) => this.httpServer.close(resolve)); + } + set(...args) { + return this.instance.set(...args); + } + enable(...args) { + return this.instance.enable(...args); + } + disable(...args) { + return this.instance.disable(...args); + } + engine(...args) { + return this.instance.engine(...args); + } + useStaticAssets(path, options) { + if (options && options.prefix) { + return this.use(options.prefix, import_express.default.static(path, options)); + } + return this.use(import_express.default.static(path, options)); + } + setBaseViewsDir(path) { + return this.set("views", path); + } + setViewEngine(engine) { + return this.set("view engine", engine); + } + getRequestHostname(request) { + return request.hostname; + } + getRequestMethod(request) { + return request.method; + } + getRequestUrl(request) { + return request.originalUrl; + } + enableCors(options) { + return this.use((0, import_cors.default)(options)); + } + createMiddlewareFactory(requestMethod) { + return (path, callback) => { + try { + const isExactPath = path.endsWith("$"); + const convertedPath = LegacyRouteConverter.tryConvert(isExactPath ? path.slice(0, -1) : path); + let router = this.routerMethodFactory.get(this.instance, requestMethod); + if (isExactPath && router === this.instance.use) { + router = this.instance.all; + } + return router.call(this.instance, convertedPath, callback); + } catch (e) { + if (e instanceof TypeError) { + LegacyRouteConverter.printError(path); + } + throw e; + } + }; + } + initHttpServer(options) { + const isHttpsEnabled = options && options.httpsOptions; + if (isHttpsEnabled) { + this.httpServer = https.createServer(options.httpsOptions, this.getInstance()); + } else { + this.httpServer = http.createServer(this.getInstance()); + } + if (options?.return503OnClosing) { + this.instance.use((req, res, next) => { + if (this.isShuttingDown) { + res.set("Connection", "close"); + res.status(503).send("Service Unavailable"); + } else { + next(); + } + }); + } + if (options?.forceCloseConnections) { + this.trackOpenConnections(); + } + } + registerParserMiddleware(prefix, rawBody) { + const bodyParserJsonOptions = getBodyParserOptions("json", rawBody); + const bodyParserUrlencodedOptions = getBodyParserOptions("urlencoded", rawBody, { extended: true }); + const parserMiddleware = { + jsonParser: import_express.default.json(bodyParserJsonOptions), + urlencodedParser: import_express.default.urlencoded(bodyParserUrlencodedOptions) + }; + Object.keys(parserMiddleware).filter((parser) => !this.isMiddlewareApplied(parser)).forEach((parserKey) => this.use(parserMiddleware[parserKey])); + } + useBodyParser(type, rawBody, options) { + const parserOptions = getBodyParserOptions(type, rawBody, options); + const parser = import_express.default[type](parserOptions); + this.use(parser); + return this; + } + setLocal(key, value) { + this.instance.locals[key] = value; + return this; + } + getType() { + return "express"; + } + isRouteOrderSensitive() { + return true; + } + // The return type is spelled out (rather than "RouteMatchingOptions") so + // that the declarations still compile against an older "@nestjs/common" + getRouteMatchingOptions() { + const router = this.getInstance().router; + return { + caseSensitive: !!router?.caseSensitive, + ignoreTrailingSlash: !router?.strict + }; + } + applyVersionFilter(handler, version, versioningOptions) { + const callNextHandler = /* @__PURE__ */ __name((req, res, next) => { + if (!next) { + throw new InternalServerErrorException("HTTP adapter does not support filtering on version"); + } + return next(); + }, "callNextHandler"); + if (version === VERSION_NEUTRAL || // URL Versioning is done via the path, so the filter continues forward + versioningOptions.type === VersioningType.URI) { + const handlerForNoVersioning = /* @__PURE__ */ __name((req, res, next) => handler(req, res, next), "handlerForNoVersioning"); + return handlerForNoVersioning; + } + if (versioningOptions.type === VersioningType.CUSTOM) { + const handlerForCustomVersioning = /* @__PURE__ */ __name((req, res, next) => { + const extractedVersion = versioningOptions.extractor(req); + if (Array.isArray(version)) { + if (Array.isArray(extractedVersion) && version.filter((v) => extractedVersion.includes(v)).length) { + return handler(req, res, next); + } + if (isString(extractedVersion) && version.includes(extractedVersion)) { + return handler(req, res, next); + } + } else if (isString(version)) { + if (Array.isArray(extractedVersion) && extractedVersion.includes(version)) { + return handler(req, res, next); + } + if (isString(extractedVersion) && version === extractedVersion) { + return handler(req, res, next); + } + } + return callNextHandler(req, res, next); + }, "handlerForCustomVersioning"); + return handlerForCustomVersioning; + } + if (versioningOptions.type === VersioningType.MEDIA_TYPE) { + const handlerForMediaTypeVersioning = /* @__PURE__ */ __name((req, res, next) => { + const MEDIA_TYPE_HEADER = "Accept"; + const acceptHeaderValue = req.headers?.[MEDIA_TYPE_HEADER] || req.headers?.[MEDIA_TYPE_HEADER.toLowerCase()]; + const headerVersion = getMediaTypeVersion(acceptHeaderValue, versioningOptions.key); + if (isUndefined(headerVersion)) { + if (Array.isArray(version)) { + if (version.includes(VERSION_NEUTRAL)) { + return handler(req, res, next); + } + } + } else { + if (Array.isArray(version)) { + if (version.includes(headerVersion)) { + return handler(req, res, next); + } + } else if (isString(version)) { + if (version === headerVersion) { + return handler(req, res, next); + } + } + } + return callNextHandler(req, res, next); + }, "handlerForMediaTypeVersioning"); + return handlerForMediaTypeVersioning; + } + if (versioningOptions.type === VersioningType.HEADER) { + const handlerForHeaderVersioning = /* @__PURE__ */ __name((req, res, next) => { + const customHeaderVersionParameter = req.headers?.[versioningOptions.header] || req.headers?.[versioningOptions.header.toLowerCase()]; + if (isUndefined(customHeaderVersionParameter)) { + if (Array.isArray(version)) { + if (version.includes(VERSION_NEUTRAL)) { + return handler(req, res, next); + } + } + } else { + if (Array.isArray(version)) { + if (version.includes(customHeaderVersionParameter)) { + return handler(req, res, next); + } + } else if (isString(version)) { + if (version === customHeaderVersionParameter) { + return handler(req, res, next); + } + } + } + return callNextHandler(req, res, next); + }, "handlerForHeaderVersioning"); + return handlerForHeaderVersioning; + } + throw new Error("Unsupported versioning options"); + } + mapException(error) { + switch (true) { + // SyntaxError is thrown by Express body-parser when given invalid JSON (#422, #430) + // URIError is thrown by Express when given a path parameter with an invalid percentage + // encoding, e.g. '%FF' (#8915) + case (error instanceof SyntaxError || error instanceof URIError): + return new BadRequestException(error.message); + default: + return error; + } + } + normalizePrefix(prefix) { + return stripEndSlash(addLeadingSlash(prefix)); + } + trackOpenConnections() { + this.httpServer.on("connection", (socket) => { + this.openConnections.add(socket); + socket.on("close", () => this.openConnections.delete(socket)); + }); + } + closeOpenConnections() { + for (const socket of this.openConnections) { + socket.destroy(); + this.openConnections.delete(socket); + } + } + isMiddlewareApplied(name) { + const app = this.getInstance(); + return !!app.router && !!app.router.stack && isFunction(app.router.stack.filter) && app.router.stack.some((layer) => layer && layer.handle && layer.handle.name === name); + } + setHeaderIfNotExists(response, name, value) { + if (value !== void 0 && response.getHeader(name) === void 0) { + const headerValue = Array.isArray(value) ? value.join(",") : value; + response.setHeader(name, headerValue); + } + } + applyStreamHeaders(response, streamable) { + const headers = streamable.getHeaders(); + this.setHeaderIfNotExists(response, "Content-Type", headers.type); + this.setHeaderIfNotExists(response, "Content-Disposition", headers.disposition); + this.setHeaderIfNotExists(response, "Content-Length", headers.length); + } + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/index.js +var init_adapters2 = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/index.js"() { + init_express_adapter(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-application.interface.js +var init_nest_express_application_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-application.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-body-parser.interface.js +var init_nest_express_body_parser_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-body-parser.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/index.js +var init_interfaces2 = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/index.js"() { + init_nest_express_application_interface(); + init_nest_express_body_parser_interface(); + } +}); + +// ../../node_modules/.pnpm/media-typer@0.3.0/node_modules/media-typer/index.js +var require_media_typer2 = __commonJS({ + "../../node_modules/.pnpm/media-typer@0.3.0/node_modules/media-typer/index.js"(exports) { + var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g; + var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/; + var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/; + var qescRegExp = /\\([\u0000-\u007f])/g; + var quoteRegExp = /([\\"])/g; + var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/; + var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/; + var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; + exports.format = format; + exports.parse = parse; + function format(obj) { + if (!obj || typeof obj !== "object") { + throw new TypeError("argument obj is required"); + } + var parameters = obj.parameters; + var subtype = obj.subtype; + var suffix = obj.suffix; + var type = obj.type; + if (!type || !typeNameRegExp.test(type)) { + throw new TypeError("invalid type"); + } + if (!subtype || !subtypeNameRegExp.test(subtype)) { + throw new TypeError("invalid subtype"); + } + var string = type + "/" + subtype; + if (suffix) { + if (!typeNameRegExp.test(suffix)) { + throw new TypeError("invalid suffix"); + } + string += "+" + suffix; + } + if (parameters && typeof parameters === "object") { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + if (!tokenRegExp.test(param)) { + throw new TypeError("invalid parameter name"); + } + string += "; " + param + "=" + qstring(parameters[param]); + } + } + return string; + } + __name(format, "format"); + function parse(string) { + if (!string) { + throw new TypeError("argument string is required"); + } + if (typeof string === "object") { + string = getcontenttype(string); + } + if (typeof string !== "string") { + throw new TypeError("argument string is required to be a string"); + } + var index = string.indexOf(";"); + var type = index !== -1 ? string.substr(0, index) : string; + var key; + var match; + var obj = splitType(type); + var params = {}; + var value; + paramRegExp.lastIndex = index; + while (match = paramRegExp.exec(string)) { + if (match.index !== index) { + throw new TypeError("invalid parameter format"); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (value[0] === '"') { + value = value.substr(1, value.length - 2).replace(qescRegExp, "$1"); + } + params[key] = value; + } + if (index !== -1 && index !== string.length) { + throw new TypeError("invalid parameter format"); + } + obj.parameters = params; + return obj; + } + __name(parse, "parse"); + function getcontenttype(obj) { + if (typeof obj.getHeader === "function") { + return obj.getHeader("content-type"); + } + if (typeof obj.headers === "object") { + return obj.headers && obj.headers["content-type"]; + } + } + __name(getcontenttype, "getcontenttype"); + function qstring(val) { + var str = String(val); + if (tokenRegExp.test(str)) { + return str; + } + if (str.length > 0 && !textRegExp.test(str)) { + throw new TypeError("invalid parameter value"); + } + return '"' + str.replace(quoteRegExp, "\\$1") + '"'; + } + __name(qstring, "qstring"); + function splitType(string) { + var match = typeRegExp.exec(string.toLowerCase()); + if (!match) { + throw new TypeError("invalid media type"); + } + var type = match[1]; + var subtype = match[2]; + var suffix; + var index = subtype.lastIndexOf("+"); + if (index !== -1) { + suffix = subtype.substr(index + 1); + subtype = subtype.substr(0, index); + } + var obj = { + type, + subtype, + suffix + }; + return obj; + } + __name(splitType, "splitType"); + } +}); + +// ../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json +var require_db2 = __commonJS({ + "../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json"(exports, module) { + module.exports = { + "application/1d-interleaved-parityfec": { + source: "iana" + }, + "application/3gpdash-qoe-report+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/3gpp-ims+xml": { + source: "iana", + compressible: true + }, + "application/3gpphal+json": { + source: "iana", + compressible: true + }, + "application/3gpphalforms+json": { + source: "iana", + compressible: true + }, + "application/a2l": { + source: "iana" + }, + "application/ace+cbor": { + source: "iana" + }, + "application/activemessage": { + source: "iana" + }, + "application/activity+json": { + source: "iana", + compressible: true + }, + "application/alto-costmap+json": { + source: "iana", + compressible: true + }, + "application/alto-costmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-directory+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcost+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcostparams+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointprop+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointpropparams+json": { + source: "iana", + compressible: true + }, + "application/alto-error+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmap+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamcontrol+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamparams+json": { + source: "iana", + compressible: true + }, + "application/aml": { + source: "iana" + }, + "application/andrew-inset": { + source: "iana", + extensions: ["ez"] + }, + "application/applefile": { + source: "iana" + }, + "application/applixware": { + source: "apache", + extensions: ["aw"] + }, + "application/at+jwt": { + source: "iana" + }, + "application/atf": { + source: "iana" + }, + "application/atfx": { + source: "iana" + }, + "application/atom+xml": { + source: "iana", + compressible: true, + extensions: ["atom"] + }, + "application/atomcat+xml": { + source: "iana", + compressible: true, + extensions: ["atomcat"] + }, + "application/atomdeleted+xml": { + source: "iana", + compressible: true, + extensions: ["atomdeleted"] + }, + "application/atomicmail": { + source: "iana" + }, + "application/atomsvc+xml": { + source: "iana", + compressible: true, + extensions: ["atomsvc"] + }, + "application/atsc-dwd+xml": { + source: "iana", + compressible: true, + extensions: ["dwd"] + }, + "application/atsc-dynamic-event-message": { + source: "iana" + }, + "application/atsc-held+xml": { + source: "iana", + compressible: true, + extensions: ["held"] + }, + "application/atsc-rdt+json": { + source: "iana", + compressible: true + }, + "application/atsc-rsat+xml": { + source: "iana", + compressible: true, + extensions: ["rsat"] + }, + "application/atxml": { + source: "iana" + }, + "application/auth-policy+xml": { + source: "iana", + compressible: true + }, + "application/bacnet-xdd+zip": { + source: "iana", + compressible: false + }, + "application/batch-smtp": { + source: "iana" + }, + "application/bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/beep+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/calendar+json": { + source: "iana", + compressible: true + }, + "application/calendar+xml": { + source: "iana", + compressible: true, + extensions: ["xcs"] + }, + "application/call-completion": { + source: "iana" + }, + "application/cals-1840": { + source: "iana" + }, + "application/captive+json": { + source: "iana", + compressible: true + }, + "application/cbor": { + source: "iana" + }, + "application/cbor-seq": { + source: "iana" + }, + "application/cccex": { + source: "iana" + }, + "application/ccmp+xml": { + source: "iana", + compressible: true + }, + "application/ccxml+xml": { + source: "iana", + compressible: true, + extensions: ["ccxml"] + }, + "application/cdfx+xml": { + source: "iana", + compressible: true, + extensions: ["cdfx"] + }, + "application/cdmi-capability": { + source: "iana", + extensions: ["cdmia"] + }, + "application/cdmi-container": { + source: "iana", + extensions: ["cdmic"] + }, + "application/cdmi-domain": { + source: "iana", + extensions: ["cdmid"] + }, + "application/cdmi-object": { + source: "iana", + extensions: ["cdmio"] + }, + "application/cdmi-queue": { + source: "iana", + extensions: ["cdmiq"] + }, + "application/cdni": { + source: "iana" + }, + "application/cea": { + source: "iana" + }, + "application/cea-2018+xml": { + source: "iana", + compressible: true + }, + "application/cellml+xml": { + source: "iana", + compressible: true + }, + "application/cfw": { + source: "iana" + }, + "application/city+json": { + source: "iana", + compressible: true + }, + "application/clr": { + source: "iana" + }, + "application/clue+xml": { + source: "iana", + compressible: true + }, + "application/clue_info+xml": { + source: "iana", + compressible: true + }, + "application/cms": { + source: "iana" + }, + "application/cnrp+xml": { + source: "iana", + compressible: true + }, + "application/coap-group+json": { + source: "iana", + compressible: true + }, + "application/coap-payload": { + source: "iana" + }, + "application/commonground": { + source: "iana" + }, + "application/conference-info+xml": { + source: "iana", + compressible: true + }, + "application/cose": { + source: "iana" + }, + "application/cose-key": { + source: "iana" + }, + "application/cose-key-set": { + source: "iana" + }, + "application/cpl+xml": { + source: "iana", + compressible: true, + extensions: ["cpl"] + }, + "application/csrattrs": { + source: "iana" + }, + "application/csta+xml": { + source: "iana", + compressible: true + }, + "application/cstadata+xml": { + source: "iana", + compressible: true + }, + "application/csvm+json": { + source: "iana", + compressible: true + }, + "application/cu-seeme": { + source: "apache", + extensions: ["cu"] + }, + "application/cwt": { + source: "iana" + }, + "application/cybercash": { + source: "iana" + }, + "application/dart": { + compressible: true + }, + "application/dash+xml": { + source: "iana", + compressible: true, + extensions: ["mpd"] + }, + "application/dash-patch+xml": { + source: "iana", + compressible: true, + extensions: ["mpp"] + }, + "application/dashdelta": { + source: "iana" + }, + "application/davmount+xml": { + source: "iana", + compressible: true, + extensions: ["davmount"] + }, + "application/dca-rft": { + source: "iana" + }, + "application/dcd": { + source: "iana" + }, + "application/dec-dx": { + source: "iana" + }, + "application/dialog-info+xml": { + source: "iana", + compressible: true + }, + "application/dicom": { + source: "iana" + }, + "application/dicom+json": { + source: "iana", + compressible: true + }, + "application/dicom+xml": { + source: "iana", + compressible: true + }, + "application/dii": { + source: "iana" + }, + "application/dit": { + source: "iana" + }, + "application/dns": { + source: "iana" + }, + "application/dns+json": { + source: "iana", + compressible: true + }, + "application/dns-message": { + source: "iana" + }, + "application/docbook+xml": { + source: "apache", + compressible: true, + extensions: ["dbk"] + }, + "application/dots+cbor": { + source: "iana" + }, + "application/dskpp+xml": { + source: "iana", + compressible: true + }, + "application/dssc+der": { + source: "iana", + extensions: ["dssc"] + }, + "application/dssc+xml": { + source: "iana", + compressible: true, + extensions: ["xdssc"] + }, + "application/dvcs": { + source: "iana" + }, + "application/ecmascript": { + source: "iana", + compressible: true, + extensions: ["es", "ecma"] + }, + "application/edi-consent": { + source: "iana" + }, + "application/edi-x12": { + source: "iana", + compressible: false + }, + "application/edifact": { + source: "iana", + compressible: false + }, + "application/efi": { + source: "iana" + }, + "application/elm+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/elm+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.cap+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/emergencycalldata.comment+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.control+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.deviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.ecall.msd": { + source: "iana" + }, + "application/emergencycalldata.providerinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.serviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.subscriberinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.veds+xml": { + source: "iana", + compressible: true + }, + "application/emma+xml": { + source: "iana", + compressible: true, + extensions: ["emma"] + }, + "application/emotionml+xml": { + source: "iana", + compressible: true, + extensions: ["emotionml"] + }, + "application/encaprtp": { + source: "iana" + }, + "application/epp+xml": { + source: "iana", + compressible: true + }, + "application/epub+zip": { + source: "iana", + compressible: false, + extensions: ["epub"] + }, + "application/eshop": { + source: "iana" + }, + "application/exi": { + source: "iana", + extensions: ["exi"] + }, + "application/expect-ct-report+json": { + source: "iana", + compressible: true + }, + "application/express": { + source: "iana", + extensions: ["exp"] + }, + "application/fastinfoset": { + source: "iana" + }, + "application/fastsoap": { + source: "iana" + }, + "application/fdt+xml": { + source: "iana", + compressible: true, + extensions: ["fdt"] + }, + "application/fhir+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fhir+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fido.trusted-apps+json": { + compressible: true + }, + "application/fits": { + source: "iana" + }, + "application/flexfec": { + source: "iana" + }, + "application/font-sfnt": { + source: "iana" + }, + "application/font-tdpfr": { + source: "iana", + extensions: ["pfr"] + }, + "application/font-woff": { + source: "iana", + compressible: false + }, + "application/framework-attributes+xml": { + source: "iana", + compressible: true + }, + "application/geo+json": { + source: "iana", + compressible: true, + extensions: ["geojson"] + }, + "application/geo+json-seq": { + source: "iana" + }, + "application/geopackage+sqlite3": { + source: "iana" + }, + "application/geoxacml+xml": { + source: "iana", + compressible: true + }, + "application/gltf-buffer": { + source: "iana" + }, + "application/gml+xml": { + source: "iana", + compressible: true, + extensions: ["gml"] + }, + "application/gpx+xml": { + source: "apache", + compressible: true, + extensions: ["gpx"] + }, + "application/gxf": { + source: "apache", + extensions: ["gxf"] + }, + "application/gzip": { + source: "iana", + compressible: false, + extensions: ["gz"] + }, + "application/h224": { + source: "iana" + }, + "application/held+xml": { + source: "iana", + compressible: true + }, + "application/hjson": { + extensions: ["hjson"] + }, + "application/http": { + source: "iana" + }, + "application/hyperstudio": { + source: "iana", + extensions: ["stk"] + }, + "application/ibe-key-request+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pkg-reply+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pp-data": { + source: "iana" + }, + "application/iges": { + source: "iana" + }, + "application/im-iscomposing+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/index": { + source: "iana" + }, + "application/index.cmd": { + source: "iana" + }, + "application/index.obj": { + source: "iana" + }, + "application/index.response": { + source: "iana" + }, + "application/index.vnd": { + source: "iana" + }, + "application/inkml+xml": { + source: "iana", + compressible: true, + extensions: ["ink", "inkml"] + }, + "application/iotp": { + source: "iana" + }, + "application/ipfix": { + source: "iana", + extensions: ["ipfix"] + }, + "application/ipp": { + source: "iana" + }, + "application/isup": { + source: "iana" + }, + "application/its+xml": { + source: "iana", + compressible: true, + extensions: ["its"] + }, + "application/java-archive": { + source: "apache", + compressible: false, + extensions: ["jar", "war", "ear"] + }, + "application/java-serialized-object": { + source: "apache", + compressible: false, + extensions: ["ser"] + }, + "application/java-vm": { + source: "apache", + compressible: false, + extensions: ["class"] + }, + "application/javascript": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["js", "mjs"] + }, + "application/jf2feed+json": { + source: "iana", + compressible: true + }, + "application/jose": { + source: "iana" + }, + "application/jose+json": { + source: "iana", + compressible: true + }, + "application/jrd+json": { + source: "iana", + compressible: true + }, + "application/jscalendar+json": { + source: "iana", + compressible: true + }, + "application/json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["json", "map"] + }, + "application/json-patch+json": { + source: "iana", + compressible: true + }, + "application/json-seq": { + source: "iana" + }, + "application/json5": { + extensions: ["json5"] + }, + "application/jsonml+json": { + source: "apache", + compressible: true, + extensions: ["jsonml"] + }, + "application/jwk+json": { + source: "iana", + compressible: true + }, + "application/jwk-set+json": { + source: "iana", + compressible: true + }, + "application/jwt": { + source: "iana" + }, + "application/kpml-request+xml": { + source: "iana", + compressible: true + }, + "application/kpml-response+xml": { + source: "iana", + compressible: true + }, + "application/ld+json": { + source: "iana", + compressible: true, + extensions: ["jsonld"] + }, + "application/lgr+xml": { + source: "iana", + compressible: true, + extensions: ["lgr"] + }, + "application/link-format": { + source: "iana" + }, + "application/load-control+xml": { + source: "iana", + compressible: true + }, + "application/lost+xml": { + source: "iana", + compressible: true, + extensions: ["lostxml"] + }, + "application/lostsync+xml": { + source: "iana", + compressible: true + }, + "application/lpf+zip": { + source: "iana", + compressible: false + }, + "application/lxf": { + source: "iana" + }, + "application/mac-binhex40": { + source: "iana", + extensions: ["hqx"] + }, + "application/mac-compactpro": { + source: "apache", + extensions: ["cpt"] + }, + "application/macwriteii": { + source: "iana" + }, + "application/mads+xml": { + source: "iana", + compressible: true, + extensions: ["mads"] + }, + "application/manifest+json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["webmanifest"] + }, + "application/marc": { + source: "iana", + extensions: ["mrc"] + }, + "application/marcxml+xml": { + source: "iana", + compressible: true, + extensions: ["mrcx"] + }, + "application/mathematica": { + source: "iana", + extensions: ["ma", "nb", "mb"] + }, + "application/mathml+xml": { + source: "iana", + compressible: true, + extensions: ["mathml"] + }, + "application/mathml-content+xml": { + source: "iana", + compressible: true + }, + "application/mathml-presentation+xml": { + source: "iana", + compressible: true + }, + "application/mbms-associated-procedure-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-deregister+xml": { + source: "iana", + compressible: true + }, + "application/mbms-envelope+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-protection-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-reception-report+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-schedule+xml": { + source: "iana", + compressible: true + }, + "application/mbms-user-service-description+xml": { + source: "iana", + compressible: true + }, + "application/mbox": { + source: "iana", + extensions: ["mbox"] + }, + "application/media-policy-dataset+xml": { + source: "iana", + compressible: true, + extensions: ["mpf"] + }, + "application/media_control+xml": { + source: "iana", + compressible: true + }, + "application/mediaservercontrol+xml": { + source: "iana", + compressible: true, + extensions: ["mscml"] + }, + "application/merge-patch+json": { + source: "iana", + compressible: true + }, + "application/metalink+xml": { + source: "apache", + compressible: true, + extensions: ["metalink"] + }, + "application/metalink4+xml": { + source: "iana", + compressible: true, + extensions: ["meta4"] + }, + "application/mets+xml": { + source: "iana", + compressible: true, + extensions: ["mets"] + }, + "application/mf4": { + source: "iana" + }, + "application/mikey": { + source: "iana" + }, + "application/mipc": { + source: "iana" + }, + "application/missing-blocks+cbor-seq": { + source: "iana" + }, + "application/mmt-aei+xml": { + source: "iana", + compressible: true, + extensions: ["maei"] + }, + "application/mmt-usd+xml": { + source: "iana", + compressible: true, + extensions: ["musd"] + }, + "application/mods+xml": { + source: "iana", + compressible: true, + extensions: ["mods"] + }, + "application/moss-keys": { + source: "iana" + }, + "application/moss-signature": { + source: "iana" + }, + "application/mosskey-data": { + source: "iana" + }, + "application/mosskey-request": { + source: "iana" + }, + "application/mp21": { + source: "iana", + extensions: ["m21", "mp21"] + }, + "application/mp4": { + source: "iana", + extensions: ["mp4s", "m4p"] + }, + "application/mpeg4-generic": { + source: "iana" + }, + "application/mpeg4-iod": { + source: "iana" + }, + "application/mpeg4-iod-xmt": { + source: "iana" + }, + "application/mrb-consumer+xml": { + source: "iana", + compressible: true + }, + "application/mrb-publish+xml": { + source: "iana", + compressible: true + }, + "application/msc-ivr+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msc-mixer+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msword": { + source: "iana", + compressible: false, + extensions: ["doc", "dot"] + }, + "application/mud+json": { + source: "iana", + compressible: true + }, + "application/multipart-core": { + source: "iana" + }, + "application/mxf": { + source: "iana", + extensions: ["mxf"] + }, + "application/n-quads": { + source: "iana", + extensions: ["nq"] + }, + "application/n-triples": { + source: "iana", + extensions: ["nt"] + }, + "application/nasdata": { + source: "iana" + }, + "application/news-checkgroups": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-groupinfo": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-transmission": { + source: "iana" + }, + "application/nlsml+xml": { + source: "iana", + compressible: true + }, + "application/node": { + source: "iana", + extensions: ["cjs"] + }, + "application/nss": { + source: "iana" + }, + "application/oauth-authz-req+jwt": { + source: "iana" + }, + "application/oblivious-dns-message": { + source: "iana" + }, + "application/ocsp-request": { + source: "iana" + }, + "application/ocsp-response": { + source: "iana" + }, + "application/octet-stream": { + source: "iana", + compressible: false, + extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"] + }, + "application/oda": { + source: "iana", + extensions: ["oda"] + }, + "application/odm+xml": { + source: "iana", + compressible: true + }, + "application/odx": { + source: "iana" + }, + "application/oebps-package+xml": { + source: "iana", + compressible: true, + extensions: ["opf"] + }, + "application/ogg": { + source: "iana", + compressible: false, + extensions: ["ogx"] + }, + "application/omdoc+xml": { + source: "apache", + compressible: true, + extensions: ["omdoc"] + }, + "application/onenote": { + source: "apache", + extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"] + }, + "application/opc-nodeset+xml": { + source: "iana", + compressible: true + }, + "application/oscore": { + source: "iana" + }, + "application/oxps": { + source: "iana", + extensions: ["oxps"] + }, + "application/p21": { + source: "iana" + }, + "application/p21+zip": { + source: "iana", + compressible: false + }, + "application/p2p-overlay+xml": { + source: "iana", + compressible: true, + extensions: ["relo"] + }, + "application/parityfec": { + source: "iana" + }, + "application/passport": { + source: "iana" + }, + "application/patch-ops-error+xml": { + source: "iana", + compressible: true, + extensions: ["xer"] + }, + "application/pdf": { + source: "iana", + compressible: false, + extensions: ["pdf"] + }, + "application/pdx": { + source: "iana" + }, + "application/pem-certificate-chain": { + source: "iana" + }, + "application/pgp-encrypted": { + source: "iana", + compressible: false, + extensions: ["pgp"] + }, + "application/pgp-keys": { + source: "iana", + extensions: ["asc"] + }, + "application/pgp-signature": { + source: "iana", + extensions: ["asc", "sig"] + }, + "application/pics-rules": { + source: "apache", + extensions: ["prf"] + }, + "application/pidf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pidf-diff+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pkcs10": { + source: "iana", + extensions: ["p10"] + }, + "application/pkcs12": { + source: "iana" + }, + "application/pkcs7-mime": { + source: "iana", + extensions: ["p7m", "p7c"] + }, + "application/pkcs7-signature": { + source: "iana", + extensions: ["p7s"] + }, + "application/pkcs8": { + source: "iana", + extensions: ["p8"] + }, + "application/pkcs8-encrypted": { + source: "iana" + }, + "application/pkix-attr-cert": { + source: "iana", + extensions: ["ac"] + }, + "application/pkix-cert": { + source: "iana", + extensions: ["cer"] + }, + "application/pkix-crl": { + source: "iana", + extensions: ["crl"] + }, + "application/pkix-pkipath": { + source: "iana", + extensions: ["pkipath"] + }, + "application/pkixcmp": { + source: "iana", + extensions: ["pki"] + }, + "application/pls+xml": { + source: "iana", + compressible: true, + extensions: ["pls"] + }, + "application/poc-settings+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/postscript": { + source: "iana", + compressible: true, + extensions: ["ai", "eps", "ps"] + }, + "application/ppsp-tracker+json": { + source: "iana", + compressible: true + }, + "application/problem+json": { + source: "iana", + compressible: true + }, + "application/problem+xml": { + source: "iana", + compressible: true + }, + "application/provenance+xml": { + source: "iana", + compressible: true, + extensions: ["provx"] + }, + "application/prs.alvestrand.titrax-sheet": { + source: "iana" + }, + "application/prs.cww": { + source: "iana", + extensions: ["cww"] + }, + "application/prs.cyn": { + source: "iana", + charset: "7-BIT" + }, + "application/prs.hpub+zip": { + source: "iana", + compressible: false + }, + "application/prs.nprend": { + source: "iana" + }, + "application/prs.plucker": { + source: "iana" + }, + "application/prs.rdf-xml-crypt": { + source: "iana" + }, + "application/prs.xsf+xml": { + source: "iana", + compressible: true + }, + "application/pskc+xml": { + source: "iana", + compressible: true, + extensions: ["pskcxml"] + }, + "application/pvd+json": { + source: "iana", + compressible: true + }, + "application/qsig": { + source: "iana" + }, + "application/raml+yaml": { + compressible: true, + extensions: ["raml"] + }, + "application/raptorfec": { + source: "iana" + }, + "application/rdap+json": { + source: "iana", + compressible: true + }, + "application/rdf+xml": { + source: "iana", + compressible: true, + extensions: ["rdf", "owl"] + }, + "application/reginfo+xml": { + source: "iana", + compressible: true, + extensions: ["rif"] + }, + "application/relax-ng-compact-syntax": { + source: "iana", + extensions: ["rnc"] + }, + "application/remote-printing": { + source: "iana" + }, + "application/reputon+json": { + source: "iana", + compressible: true + }, + "application/resource-lists+xml": { + source: "iana", + compressible: true, + extensions: ["rl"] + }, + "application/resource-lists-diff+xml": { + source: "iana", + compressible: true, + extensions: ["rld"] + }, + "application/rfc+xml": { + source: "iana", + compressible: true + }, + "application/riscos": { + source: "iana" + }, + "application/rlmi+xml": { + source: "iana", + compressible: true + }, + "application/rls-services+xml": { + source: "iana", + compressible: true, + extensions: ["rs"] + }, + "application/route-apd+xml": { + source: "iana", + compressible: true, + extensions: ["rapd"] + }, + "application/route-s-tsid+xml": { + source: "iana", + compressible: true, + extensions: ["sls"] + }, + "application/route-usd+xml": { + source: "iana", + compressible: true, + extensions: ["rusd"] + }, + "application/rpki-ghostbusters": { + source: "iana", + extensions: ["gbr"] + }, + "application/rpki-manifest": { + source: "iana", + extensions: ["mft"] + }, + "application/rpki-publication": { + source: "iana" + }, + "application/rpki-roa": { + source: "iana", + extensions: ["roa"] + }, + "application/rpki-updown": { + source: "iana" + }, + "application/rsd+xml": { + source: "apache", + compressible: true, + extensions: ["rsd"] + }, + "application/rss+xml": { + source: "apache", + compressible: true, + extensions: ["rss"] + }, + "application/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "application/rtploopback": { + source: "iana" + }, + "application/rtx": { + source: "iana" + }, + "application/samlassertion+xml": { + source: "iana", + compressible: true + }, + "application/samlmetadata+xml": { + source: "iana", + compressible: true + }, + "application/sarif+json": { + source: "iana", + compressible: true + }, + "application/sarif-external-properties+json": { + source: "iana", + compressible: true + }, + "application/sbe": { + source: "iana" + }, + "application/sbml+xml": { + source: "iana", + compressible: true, + extensions: ["sbml"] + }, + "application/scaip+xml": { + source: "iana", + compressible: true + }, + "application/scim+json": { + source: "iana", + compressible: true + }, + "application/scvp-cv-request": { + source: "iana", + extensions: ["scq"] + }, + "application/scvp-cv-response": { + source: "iana", + extensions: ["scs"] + }, + "application/scvp-vp-request": { + source: "iana", + extensions: ["spq"] + }, + "application/scvp-vp-response": { + source: "iana", + extensions: ["spp"] + }, + "application/sdp": { + source: "iana", + extensions: ["sdp"] + }, + "application/secevent+jwt": { + source: "iana" + }, + "application/senml+cbor": { + source: "iana" + }, + "application/senml+json": { + source: "iana", + compressible: true + }, + "application/senml+xml": { + source: "iana", + compressible: true, + extensions: ["senmlx"] + }, + "application/senml-etch+cbor": { + source: "iana" + }, + "application/senml-etch+json": { + source: "iana", + compressible: true + }, + "application/senml-exi": { + source: "iana" + }, + "application/sensml+cbor": { + source: "iana" + }, + "application/sensml+json": { + source: "iana", + compressible: true + }, + "application/sensml+xml": { + source: "iana", + compressible: true, + extensions: ["sensmlx"] + }, + "application/sensml-exi": { + source: "iana" + }, + "application/sep+xml": { + source: "iana", + compressible: true + }, + "application/sep-exi": { + source: "iana" + }, + "application/session-info": { + source: "iana" + }, + "application/set-payment": { + source: "iana" + }, + "application/set-payment-initiation": { + source: "iana", + extensions: ["setpay"] + }, + "application/set-registration": { + source: "iana" + }, + "application/set-registration-initiation": { + source: "iana", + extensions: ["setreg"] + }, + "application/sgml": { + source: "iana" + }, + "application/sgml-open-catalog": { + source: "iana" + }, + "application/shf+xml": { + source: "iana", + compressible: true, + extensions: ["shf"] + }, + "application/sieve": { + source: "iana", + extensions: ["siv", "sieve"] + }, + "application/simple-filter+xml": { + source: "iana", + compressible: true + }, + "application/simple-message-summary": { + source: "iana" + }, + "application/simplesymbolcontainer": { + source: "iana" + }, + "application/sipc": { + source: "iana" + }, + "application/slate": { + source: "iana" + }, + "application/smil": { + source: "iana" + }, + "application/smil+xml": { + source: "iana", + compressible: true, + extensions: ["smi", "smil"] + }, + "application/smpte336m": { + source: "iana" + }, + "application/soap+fastinfoset": { + source: "iana" + }, + "application/soap+xml": { + source: "iana", + compressible: true + }, + "application/sparql-query": { + source: "iana", + extensions: ["rq"] + }, + "application/sparql-results+xml": { + source: "iana", + compressible: true, + extensions: ["srx"] + }, + "application/spdx+json": { + source: "iana", + compressible: true + }, + "application/spirits-event+xml": { + source: "iana", + compressible: true + }, + "application/sql": { + source: "iana" + }, + "application/srgs": { + source: "iana", + extensions: ["gram"] + }, + "application/srgs+xml": { + source: "iana", + compressible: true, + extensions: ["grxml"] + }, + "application/sru+xml": { + source: "iana", + compressible: true, + extensions: ["sru"] + }, + "application/ssdl+xml": { + source: "apache", + compressible: true, + extensions: ["ssdl"] + }, + "application/ssml+xml": { + source: "iana", + compressible: true, + extensions: ["ssml"] + }, + "application/stix+json": { + source: "iana", + compressible: true + }, + "application/swid+xml": { + source: "iana", + compressible: true, + extensions: ["swidtag"] + }, + "application/tamp-apex-update": { + source: "iana" + }, + "application/tamp-apex-update-confirm": { + source: "iana" + }, + "application/tamp-community-update": { + source: "iana" + }, + "application/tamp-community-update-confirm": { + source: "iana" + }, + "application/tamp-error": { + source: "iana" + }, + "application/tamp-sequence-adjust": { + source: "iana" + }, + "application/tamp-sequence-adjust-confirm": { + source: "iana" + }, + "application/tamp-status-query": { + source: "iana" + }, + "application/tamp-status-response": { + source: "iana" + }, + "application/tamp-update": { + source: "iana" + }, + "application/tamp-update-confirm": { + source: "iana" + }, + "application/tar": { + compressible: true + }, + "application/taxii+json": { + source: "iana", + compressible: true + }, + "application/td+json": { + source: "iana", + compressible: true + }, + "application/tei+xml": { + source: "iana", + compressible: true, + extensions: ["tei", "teicorpus"] + }, + "application/tetra_isi": { + source: "iana" + }, + "application/thraud+xml": { + source: "iana", + compressible: true, + extensions: ["tfi"] + }, + "application/timestamp-query": { + source: "iana" + }, + "application/timestamp-reply": { + source: "iana" + }, + "application/timestamped-data": { + source: "iana", + extensions: ["tsd"] + }, + "application/tlsrpt+gzip": { + source: "iana" + }, + "application/tlsrpt+json": { + source: "iana", + compressible: true + }, + "application/tnauthlist": { + source: "iana" + }, + "application/token-introspection+jwt": { + source: "iana" + }, + "application/toml": { + compressible: true, + extensions: ["toml"] + }, + "application/trickle-ice-sdpfrag": { + source: "iana" + }, + "application/trig": { + source: "iana", + extensions: ["trig"] + }, + "application/ttml+xml": { + source: "iana", + compressible: true, + extensions: ["ttml"] + }, + "application/tve-trigger": { + source: "iana" + }, + "application/tzif": { + source: "iana" + }, + "application/tzif-leap": { + source: "iana" + }, + "application/ubjson": { + compressible: false, + extensions: ["ubj"] + }, + "application/ulpfec": { + source: "iana" + }, + "application/urc-grpsheet+xml": { + source: "iana", + compressible: true + }, + "application/urc-ressheet+xml": { + source: "iana", + compressible: true, + extensions: ["rsheet"] + }, + "application/urc-targetdesc+xml": { + source: "iana", + compressible: true, + extensions: ["td"] + }, + "application/urc-uisocketdesc+xml": { + source: "iana", + compressible: true + }, + "application/vcard+json": { + source: "iana", + compressible: true + }, + "application/vcard+xml": { + source: "iana", + compressible: true + }, + "application/vemmi": { + source: "iana" + }, + "application/vividence.scriptfile": { + source: "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + source: "iana", + compressible: true, + extensions: ["1km"] + }, + "application/vnd.3gpp-prose+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-v2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.5gnas": { + source: "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.bsf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gmop+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gtpc": { + source: "iana" + }, + "application/vnd.3gpp.interworking-data": { + source: "iana" + }, + "application/vnd.3gpp.lpp": { + source: "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-payload": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-signalling": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mid-call+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ngap": { + source: "iana" + }, + "application/vnd.3gpp.pfcp": { + source: "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + source: "iana", + extensions: ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + source: "iana", + extensions: ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + source: "iana", + extensions: ["pvb"] + }, + "application/vnd.3gpp.s1ap": { + source: "iana" + }, + "application/vnd.3gpp.sms": { + source: "iana" + }, + "application/vnd.3gpp.sms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ussd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.sms": { + source: "iana" + }, + "application/vnd.3gpp2.tcap": { + source: "iana", + extensions: ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + source: "iana" + }, + "application/vnd.3m.post-it-notes": { + source: "iana", + extensions: ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + source: "iana", + extensions: ["aso"] + }, + "application/vnd.accpac.simply.imp": { + source: "iana", + extensions: ["imp"] + }, + "application/vnd.acucobol": { + source: "iana", + extensions: ["acu"] + }, + "application/vnd.acucorp": { + source: "iana", + extensions: ["atc", "acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + source: "apache", + compressible: false, + extensions: ["air"] + }, + "application/vnd.adobe.flash.movie": { + source: "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + source: "iana", + extensions: ["fcdt"] + }, + "application/vnd.adobe.fxp": { + source: "iana", + extensions: ["fxp", "fxpl"] + }, + "application/vnd.adobe.partial-upload": { + source: "iana" + }, + "application/vnd.adobe.xdp+xml": { + source: "iana", + compressible: true, + extensions: ["xdp"] + }, + "application/vnd.adobe.xfdf": { + source: "iana", + extensions: ["xfdf"] + }, + "application/vnd.aether.imp": { + source: "iana" + }, + "application/vnd.afpc.afplinedata": { + source: "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + source: "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + source: "iana" + }, + "application/vnd.afpc.foca-charset": { + source: "iana" + }, + "application/vnd.afpc.foca-codedfont": { + source: "iana" + }, + "application/vnd.afpc.foca-codepage": { + source: "iana" + }, + "application/vnd.afpc.modca": { + source: "iana" + }, + "application/vnd.afpc.modca-cmtable": { + source: "iana" + }, + "application/vnd.afpc.modca-formdef": { + source: "iana" + }, + "application/vnd.afpc.modca-mediummap": { + source: "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + source: "iana" + }, + "application/vnd.afpc.modca-overlay": { + source: "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + source: "iana" + }, + "application/vnd.age": { + source: "iana", + extensions: ["age"] + }, + "application/vnd.ah-barcode": { + source: "iana" + }, + "application/vnd.ahead.space": { + source: "iana", + extensions: ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + source: "iana", + extensions: ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + source: "iana", + extensions: ["azs"] + }, + "application/vnd.amadeus+json": { + source: "iana", + compressible: true + }, + "application/vnd.amazon.ebook": { + source: "apache", + extensions: ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + source: "iana" + }, + "application/vnd.americandynamics.acc": { + source: "iana", + extensions: ["acc"] + }, + "application/vnd.amiga.ami": { + source: "iana", + extensions: ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + source: "iana", + compressible: true + }, + "application/vnd.android.ota": { + source: "iana" + }, + "application/vnd.android.package-archive": { + source: "apache", + compressible: false, + extensions: ["apk"] + }, + "application/vnd.anki": { + source: "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + source: "iana", + extensions: ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + source: "apache", + extensions: ["fti"] + }, + "application/vnd.antix.game-component": { + source: "iana", + extensions: ["atx"] + }, + "application/vnd.apache.arrow.file": { + source: "iana" + }, + "application/vnd.apache.arrow.stream": { + source: "iana" + }, + "application/vnd.apache.thrift.binary": { + source: "iana" + }, + "application/vnd.apache.thrift.compact": { + source: "iana" + }, + "application/vnd.apache.thrift.json": { + source: "iana" + }, + "application/vnd.api+json": { + source: "iana", + compressible: true + }, + "application/vnd.aplextor.warrp+json": { + source: "iana", + compressible: true + }, + "application/vnd.apothekende.reservation+json": { + source: "iana", + compressible: true + }, + "application/vnd.apple.installer+xml": { + source: "iana", + compressible: true, + extensions: ["mpkg"] + }, + "application/vnd.apple.keynote": { + source: "iana", + extensions: ["key"] + }, + "application/vnd.apple.mpegurl": { + source: "iana", + extensions: ["m3u8"] + }, + "application/vnd.apple.numbers": { + source: "iana", + extensions: ["numbers"] + }, + "application/vnd.apple.pages": { + source: "iana", + extensions: ["pages"] + }, + "application/vnd.apple.pkpass": { + compressible: false, + extensions: ["pkpass"] + }, + "application/vnd.arastra.swi": { + source: "iana" + }, + "application/vnd.aristanetworks.swi": { + source: "iana", + extensions: ["swi"] + }, + "application/vnd.artisan+json": { + source: "iana", + compressible: true + }, + "application/vnd.artsquare": { + source: "iana" + }, + "application/vnd.astraea-software.iota": { + source: "iana", + extensions: ["iota"] + }, + "application/vnd.audiograph": { + source: "iana", + extensions: ["aep"] + }, + "application/vnd.autopackage": { + source: "iana" + }, + "application/vnd.avalon+json": { + source: "iana", + compressible: true + }, + "application/vnd.avistar+xml": { + source: "iana", + compressible: true + }, + "application/vnd.balsamiq.bmml+xml": { + source: "iana", + compressible: true, + extensions: ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + source: "iana" + }, + "application/vnd.banana-accounting": { + source: "iana" + }, + "application/vnd.bbf.usp.error": { + source: "iana" + }, + "application/vnd.bbf.usp.msg": { + source: "iana" + }, + "application/vnd.bbf.usp.msg+json": { + source: "iana", + compressible: true + }, + "application/vnd.bekitzur-stech+json": { + source: "iana", + compressible: true + }, + "application/vnd.bint.med-content": { + source: "iana" + }, + "application/vnd.biopax.rdf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.blink-idb-value-wrapper": { + source: "iana" + }, + "application/vnd.blueice.multipass": { + source: "iana", + extensions: ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + source: "iana" + }, + "application/vnd.bluetooth.le.oob": { + source: "iana" + }, + "application/vnd.bmi": { + source: "iana", + extensions: ["bmi"] + }, + "application/vnd.bpf": { + source: "iana" + }, + "application/vnd.bpf3": { + source: "iana" + }, + "application/vnd.businessobjects": { + source: "iana", + extensions: ["rep"] + }, + "application/vnd.byu.uapi+json": { + source: "iana", + compressible: true + }, + "application/vnd.cab-jscript": { + source: "iana" + }, + "application/vnd.canon-cpdl": { + source: "iana" + }, + "application/vnd.canon-lips": { + source: "iana" + }, + "application/vnd.capasystems-pg+json": { + source: "iana", + compressible: true + }, + "application/vnd.cendio.thinlinc.clientconf": { + source: "iana" + }, + "application/vnd.century-systems.tcp_stream": { + source: "iana" + }, + "application/vnd.chemdraw+xml": { + source: "iana", + compressible: true, + extensions: ["cdxml"] + }, + "application/vnd.chess-pgn": { + source: "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + source: "iana", + extensions: ["mmd"] + }, + "application/vnd.ciedi": { + source: "iana" + }, + "application/vnd.cinderella": { + source: "iana", + extensions: ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + source: "iana" + }, + "application/vnd.citationstyles.style+xml": { + source: "iana", + compressible: true, + extensions: ["csl"] + }, + "application/vnd.claymore": { + source: "iana", + extensions: ["cla"] + }, + "application/vnd.cloanto.rp9": { + source: "iana", + extensions: ["rp9"] + }, + "application/vnd.clonk.c4group": { + source: "iana", + extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + source: "iana", + extensions: ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + source: "iana", + extensions: ["c11amz"] + }, + "application/vnd.coffeescript": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + source: "iana" + }, + "application/vnd.collection+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.doc+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.next+json": { + source: "iana", + compressible: true + }, + "application/vnd.comicbook+zip": { + source: "iana", + compressible: false + }, + "application/vnd.comicbook-rar": { + source: "iana" + }, + "application/vnd.commerce-battelle": { + source: "iana" + }, + "application/vnd.commonspace": { + source: "iana", + extensions: ["csp"] + }, + "application/vnd.contact.cmsg": { + source: "iana", + extensions: ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + source: "iana", + compressible: true + }, + "application/vnd.cosmocaller": { + source: "iana", + extensions: ["cmc"] + }, + "application/vnd.crick.clicker": { + source: "iana", + extensions: ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + source: "iana", + extensions: ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + source: "iana", + extensions: ["clkp"] + }, + "application/vnd.crick.clicker.template": { + source: "iana", + extensions: ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + source: "iana", + extensions: ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + source: "iana", + compressible: true, + extensions: ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + source: "iana", + compressible: true + }, + "application/vnd.crypto-shade-file": { + source: "iana" + }, + "application/vnd.cryptomator.encrypted": { + source: "iana" + }, + "application/vnd.cryptomator.vault": { + source: "iana" + }, + "application/vnd.ctc-posml": { + source: "iana", + extensions: ["pml"] + }, + "application/vnd.ctct.ws+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cups-pdf": { + source: "iana" + }, + "application/vnd.cups-postscript": { + source: "iana" + }, + "application/vnd.cups-ppd": { + source: "iana", + extensions: ["ppd"] + }, + "application/vnd.cups-raster": { + source: "iana" + }, + "application/vnd.cups-raw": { + source: "iana" + }, + "application/vnd.curl": { + source: "iana" + }, + "application/vnd.curl.car": { + source: "apache", + extensions: ["car"] + }, + "application/vnd.curl.pcurl": { + source: "apache", + extensions: ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cybank": { + source: "iana" + }, + "application/vnd.cyclonedx+json": { + source: "iana", + compressible: true + }, + "application/vnd.cyclonedx+xml": { + source: "iana", + compressible: true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + source: "iana", + compressible: false + }, + "application/vnd.d3m-dataset": { + source: "iana" + }, + "application/vnd.d3m-problem": { + source: "iana" + }, + "application/vnd.dart": { + source: "iana", + compressible: true, + extensions: ["dart"] + }, + "application/vnd.data-vision.rdz": { + source: "iana", + extensions: ["rdz"] + }, + "application/vnd.datapackage+json": { + source: "iana", + compressible: true + }, + "application/vnd.dataresource+json": { + source: "iana", + compressible: true + }, + "application/vnd.dbf": { + source: "iana", + extensions: ["dbf"] + }, + "application/vnd.debian.binary-package": { + source: "iana" + }, + "application/vnd.dece.data": { + source: "iana", + extensions: ["uvf", "uvvf", "uvd", "uvvd"] + }, + "application/vnd.dece.ttml+xml": { + source: "iana", + compressible: true, + extensions: ["uvt", "uvvt"] + }, + "application/vnd.dece.unspecified": { + source: "iana", + extensions: ["uvx", "uvvx"] + }, + "application/vnd.dece.zip": { + source: "iana", + extensions: ["uvz", "uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + source: "iana", + extensions: ["fe_launch"] + }, + "application/vnd.desmume.movie": { + source: "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + source: "iana" + }, + "application/vnd.dm.delegation+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dna": { + source: "iana", + extensions: ["dna"] + }, + "application/vnd.document+json": { + source: "iana", + compressible: true + }, + "application/vnd.dolby.mlp": { + source: "apache", + extensions: ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + source: "iana" + }, + "application/vnd.dolby.mobile.2": { + source: "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + source: "iana" + }, + "application/vnd.dpgraph": { + source: "iana", + extensions: ["dpg"] + }, + "application/vnd.dreamfactory": { + source: "iana", + extensions: ["dfac"] + }, + "application/vnd.drive+json": { + source: "iana", + compressible: true + }, + "application/vnd.ds-keypoint": { + source: "apache", + extensions: ["kpxx"] + }, + "application/vnd.dtg.local": { + source: "iana" + }, + "application/vnd.dtg.local.flash": { + source: "iana" + }, + "application/vnd.dtg.local.html": { + source: "iana" + }, + "application/vnd.dvb.ait": { + source: "iana", + extensions: ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.dvbj": { + source: "iana" + }, + "application/vnd.dvb.esgcontainer": { + source: "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + source: "iana" + }, + "application/vnd.dvb.ipdcroaming": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + source: "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-container+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-generic+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-init+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.pfr": { + source: "iana" + }, + "application/vnd.dvb.service": { + source: "iana", + extensions: ["svc"] + }, + "application/vnd.dxr": { + source: "iana" + }, + "application/vnd.dynageo": { + source: "iana", + extensions: ["geo"] + }, + "application/vnd.dzr": { + source: "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + source: "iana" + }, + "application/vnd.ecdis-update": { + source: "iana" + }, + "application/vnd.ecip.rlp": { + source: "iana" + }, + "application/vnd.eclipse.ditto+json": { + source: "iana", + compressible: true + }, + "application/vnd.ecowin.chart": { + source: "iana", + extensions: ["mag"] + }, + "application/vnd.ecowin.filerequest": { + source: "iana" + }, + "application/vnd.ecowin.fileupdate": { + source: "iana" + }, + "application/vnd.ecowin.series": { + source: "iana" + }, + "application/vnd.ecowin.seriesrequest": { + source: "iana" + }, + "application/vnd.ecowin.seriesupdate": { + source: "iana" + }, + "application/vnd.efi.img": { + source: "iana" + }, + "application/vnd.efi.iso": { + source: "iana" + }, + "application/vnd.emclient.accessrequest+xml": { + source: "iana", + compressible: true + }, + "application/vnd.enliven": { + source: "iana", + extensions: ["nml"] + }, + "application/vnd.enphase.envoy": { + source: "iana" + }, + "application/vnd.eprints.data+xml": { + source: "iana", + compressible: true + }, + "application/vnd.epson.esf": { + source: "iana", + extensions: ["esf"] + }, + "application/vnd.epson.msf": { + source: "iana", + extensions: ["msf"] + }, + "application/vnd.epson.quickanime": { + source: "iana", + extensions: ["qam"] + }, + "application/vnd.epson.salt": { + source: "iana", + extensions: ["slt"] + }, + "application/vnd.epson.ssf": { + source: "iana", + extensions: ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + source: "iana" + }, + "application/vnd.espass-espass+zip": { + source: "iana", + compressible: false + }, + "application/vnd.eszigno3+xml": { + source: "iana", + compressible: true, + extensions: ["es3", "et3"] + }, + "application/vnd.etsi.aoc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.asic-e+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.asic-s+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.cug+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvcommand+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvservice+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsync+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mcid+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mheg5": { + source: "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.pstn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.sci+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.simservs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.timestamp-token": { + source: "iana" + }, + "application/vnd.etsi.tsl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.tsl.der": { + source: "iana" + }, + "application/vnd.eu.kasparian.car+json": { + source: "iana", + compressible: true + }, + "application/vnd.eudora.data": { + source: "iana" + }, + "application/vnd.evolv.ecig.profile": { + source: "iana" + }, + "application/vnd.evolv.ecig.settings": { + source: "iana" + }, + "application/vnd.evolv.ecig.theme": { + source: "iana" + }, + "application/vnd.exstream-empower+zip": { + source: "iana", + compressible: false + }, + "application/vnd.exstream-package": { + source: "iana" + }, + "application/vnd.ezpix-album": { + source: "iana", + extensions: ["ez2"] + }, + "application/vnd.ezpix-package": { + source: "iana", + extensions: ["ez3"] + }, + "application/vnd.f-secure.mobile": { + source: "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + source: "iana", + compressible: false + }, + "application/vnd.fastcopy-disk-image": { + source: "iana" + }, + "application/vnd.fdf": { + source: "iana", + extensions: ["fdf"] + }, + "application/vnd.fdsn.mseed": { + source: "iana", + extensions: ["mseed"] + }, + "application/vnd.fdsn.seed": { + source: "iana", + extensions: ["seed", "dataless"] + }, + "application/vnd.ffsns": { + source: "iana" + }, + "application/vnd.ficlab.flb+zip": { + source: "iana", + compressible: false + }, + "application/vnd.filmit.zfc": { + source: "iana" + }, + "application/vnd.fints": { + source: "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + source: "iana" + }, + "application/vnd.flographit": { + source: "iana", + extensions: ["gph"] + }, + "application/vnd.fluxtime.clip": { + source: "iana", + extensions: ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + source: "iana" + }, + "application/vnd.framemaker": { + source: "iana", + extensions: ["fm", "frame", "maker", "book"] + }, + "application/vnd.frogans.fnc": { + source: "iana", + extensions: ["fnc"] + }, + "application/vnd.frogans.ltf": { + source: "iana", + extensions: ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + source: "iana", + extensions: ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + source: "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.fujitsu.oasys": { + source: "iana", + extensions: ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + source: "iana", + extensions: ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + source: "iana", + extensions: ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + source: "iana", + extensions: ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + source: "iana", + extensions: ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + source: "iana" + }, + "application/vnd.fujixerox.art4": { + source: "iana" + }, + "application/vnd.fujixerox.ddd": { + source: "iana", + extensions: ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + source: "iana", + extensions: ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + source: "iana", + extensions: ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + source: "iana" + }, + "application/vnd.fujixerox.hbpl": { + source: "iana" + }, + "application/vnd.fut-misnet": { + source: "iana" + }, + "application/vnd.futoin+cbor": { + source: "iana" + }, + "application/vnd.futoin+json": { + source: "iana", + compressible: true + }, + "application/vnd.fuzzysheet": { + source: "iana", + extensions: ["fzs"] + }, + "application/vnd.genomatix.tuxedo": { + source: "iana", + extensions: ["txd"] + }, + "application/vnd.gentics.grd+json": { + source: "iana", + compressible: true + }, + "application/vnd.geo+json": { + source: "iana", + compressible: true + }, + "application/vnd.geocube+xml": { + source: "iana", + compressible: true + }, + "application/vnd.geogebra.file": { + source: "iana", + extensions: ["ggb"] + }, + "application/vnd.geogebra.slides": { + source: "iana" + }, + "application/vnd.geogebra.tool": { + source: "iana", + extensions: ["ggt"] + }, + "application/vnd.geometry-explorer": { + source: "iana", + extensions: ["gex", "gre"] + }, + "application/vnd.geonext": { + source: "iana", + extensions: ["gxt"] + }, + "application/vnd.geoplan": { + source: "iana", + extensions: ["g2w"] + }, + "application/vnd.geospace": { + source: "iana", + extensions: ["g3w"] + }, + "application/vnd.gerber": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + source: "iana" + }, + "application/vnd.gmx": { + source: "iana", + extensions: ["gmx"] + }, + "application/vnd.google-apps.document": { + compressible: false, + extensions: ["gdoc"] + }, + "application/vnd.google-apps.presentation": { + compressible: false, + extensions: ["gslides"] + }, + "application/vnd.google-apps.spreadsheet": { + compressible: false, + extensions: ["gsheet"] + }, + "application/vnd.google-earth.kml+xml": { + source: "iana", + compressible: true, + extensions: ["kml"] + }, + "application/vnd.google-earth.kmz": { + source: "iana", + compressible: false, + extensions: ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + source: "iana", + compressible: true + }, + "application/vnd.gov.sk.e-form+zip": { + source: "iana", + compressible: false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.grafeq": { + source: "iana", + extensions: ["gqf", "gqs"] + }, + "application/vnd.gridmp": { + source: "iana" + }, + "application/vnd.groove-account": { + source: "iana", + extensions: ["gac"] + }, + "application/vnd.groove-help": { + source: "iana", + extensions: ["ghf"] + }, + "application/vnd.groove-identity-message": { + source: "iana", + extensions: ["gim"] + }, + "application/vnd.groove-injector": { + source: "iana", + extensions: ["grv"] + }, + "application/vnd.groove-tool-message": { + source: "iana", + extensions: ["gtm"] + }, + "application/vnd.groove-tool-template": { + source: "iana", + extensions: ["tpl"] + }, + "application/vnd.groove-vcard": { + source: "iana", + extensions: ["vcg"] + }, + "application/vnd.hal+json": { + source: "iana", + compressible: true + }, + "application/vnd.hal+xml": { + source: "iana", + compressible: true, + extensions: ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + source: "iana", + compressible: true, + extensions: ["zmm"] + }, + "application/vnd.hbci": { + source: "iana", + extensions: ["hbci"] + }, + "application/vnd.hc+json": { + source: "iana", + compressible: true + }, + "application/vnd.hcl-bireports": { + source: "iana" + }, + "application/vnd.hdt": { + source: "iana" + }, + "application/vnd.heroku+json": { + source: "iana", + compressible: true + }, + "application/vnd.hhe.lesson-player": { + source: "iana", + extensions: ["les"] + }, + "application/vnd.hl7cda+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.hl7v2+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.hp-hpgl": { + source: "iana", + extensions: ["hpgl"] + }, + "application/vnd.hp-hpid": { + source: "iana", + extensions: ["hpid"] + }, + "application/vnd.hp-hps": { + source: "iana", + extensions: ["hps"] + }, + "application/vnd.hp-jlyt": { + source: "iana", + extensions: ["jlt"] + }, + "application/vnd.hp-pcl": { + source: "iana", + extensions: ["pcl"] + }, + "application/vnd.hp-pclxl": { + source: "iana", + extensions: ["pclxl"] + }, + "application/vnd.httphone": { + source: "iana" + }, + "application/vnd.hydrostatix.sof-data": { + source: "iana", + extensions: ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyper-item+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyperdrive+json": { + source: "iana", + compressible: true + }, + "application/vnd.hzn-3d-crossword": { + source: "iana" + }, + "application/vnd.ibm.afplinedata": { + source: "iana" + }, + "application/vnd.ibm.electronic-media": { + source: "iana" + }, + "application/vnd.ibm.minipay": { + source: "iana", + extensions: ["mpy"] + }, + "application/vnd.ibm.modcap": { + source: "iana", + extensions: ["afp", "listafp", "list3820"] + }, + "application/vnd.ibm.rights-management": { + source: "iana", + extensions: ["irm"] + }, + "application/vnd.ibm.secure-container": { + source: "iana", + extensions: ["sc"] + }, + "application/vnd.iccprofile": { + source: "iana", + extensions: ["icc", "icm"] + }, + "application/vnd.ieee.1905": { + source: "iana" + }, + "application/vnd.igloader": { + source: "iana", + extensions: ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + source: "iana", + compressible: false + }, + "application/vnd.imagemeter.image+zip": { + source: "iana", + compressible: false + }, + "application/vnd.immervision-ivp": { + source: "iana", + extensions: ["ivp"] + }, + "application/vnd.immervision-ivu": { + source: "iana", + extensions: ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + source: "iana" + }, + "application/vnd.ims.imsccv1p2": { + source: "iana" + }, + "application/vnd.ims.imsccv1p3": { + source: "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + source: "iana", + compressible: true + }, + "application/vnd.informedcontrol.rms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.informix-visionary": { + source: "iana" + }, + "application/vnd.infotech.project": { + source: "iana" + }, + "application/vnd.infotech.project+xml": { + source: "iana", + compressible: true + }, + "application/vnd.innopath.wamp.notification": { + source: "iana" + }, + "application/vnd.insors.igm": { + source: "iana", + extensions: ["igm"] + }, + "application/vnd.intercon.formnet": { + source: "iana", + extensions: ["xpw", "xpx"] + }, + "application/vnd.intergeo": { + source: "iana", + extensions: ["i2g"] + }, + "application/vnd.intertrust.digibox": { + source: "iana" + }, + "application/vnd.intertrust.nncp": { + source: "iana" + }, + "application/vnd.intu.qbo": { + source: "iana", + extensions: ["qbo"] + }, + "application/vnd.intu.qfx": { + source: "iana", + extensions: ["qfx"] + }, + "application/vnd.iptc.g2.catalogitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.packageitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.planningitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ipunplugged.rcprofile": { + source: "iana", + extensions: ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + source: "iana", + compressible: true, + extensions: ["irp"] + }, + "application/vnd.is-xpr": { + source: "iana", + extensions: ["xpr"] + }, + "application/vnd.isac.fcs": { + source: "iana", + extensions: ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + source: "iana", + compressible: false + }, + "application/vnd.jam": { + source: "iana", + extensions: ["jam"] + }, + "application/vnd.japannet-directory-service": { + source: "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-payment-wakeup": { + source: "iana" + }, + "application/vnd.japannet-registration": { + source: "iana" + }, + "application/vnd.japannet-registration-wakeup": { + source: "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-verification": { + source: "iana" + }, + "application/vnd.japannet-verification-wakeup": { + source: "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + source: "iana", + extensions: ["rms"] + }, + "application/vnd.jisp": { + source: "iana", + extensions: ["jisp"] + }, + "application/vnd.joost.joda-archive": { + source: "iana", + extensions: ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + source: "iana" + }, + "application/vnd.kahootz": { + source: "iana", + extensions: ["ktz", "ktr"] + }, + "application/vnd.kde.karbon": { + source: "iana", + extensions: ["karbon"] + }, + "application/vnd.kde.kchart": { + source: "iana", + extensions: ["chrt"] + }, + "application/vnd.kde.kformula": { + source: "iana", + extensions: ["kfo"] + }, + "application/vnd.kde.kivio": { + source: "iana", + extensions: ["flw"] + }, + "application/vnd.kde.kontour": { + source: "iana", + extensions: ["kon"] + }, + "application/vnd.kde.kpresenter": { + source: "iana", + extensions: ["kpr", "kpt"] + }, + "application/vnd.kde.kspread": { + source: "iana", + extensions: ["ksp"] + }, + "application/vnd.kde.kword": { + source: "iana", + extensions: ["kwd", "kwt"] + }, + "application/vnd.kenameaapp": { + source: "iana", + extensions: ["htke"] + }, + "application/vnd.kidspiration": { + source: "iana", + extensions: ["kia"] + }, + "application/vnd.kinar": { + source: "iana", + extensions: ["kne", "knp"] + }, + "application/vnd.koan": { + source: "iana", + extensions: ["skp", "skd", "skt", "skm"] + }, + "application/vnd.kodak-descriptor": { + source: "iana", + extensions: ["sse"] + }, + "application/vnd.las": { + source: "iana" + }, + "application/vnd.las.las+json": { + source: "iana", + compressible: true + }, + "application/vnd.las.las+xml": { + source: "iana", + compressible: true, + extensions: ["lasxml"] + }, + "application/vnd.laszip": { + source: "iana" + }, + "application/vnd.leap+json": { + source: "iana", + compressible: true + }, + "application/vnd.liberty-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + source: "iana", + extensions: ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + source: "iana", + compressible: true, + extensions: ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + source: "iana", + compressible: false + }, + "application/vnd.loom": { + source: "iana" + }, + "application/vnd.lotus-1-2-3": { + source: "iana", + extensions: ["123"] + }, + "application/vnd.lotus-approach": { + source: "iana", + extensions: ["apr"] + }, + "application/vnd.lotus-freelance": { + source: "iana", + extensions: ["pre"] + }, + "application/vnd.lotus-notes": { + source: "iana", + extensions: ["nsf"] + }, + "application/vnd.lotus-organizer": { + source: "iana", + extensions: ["org"] + }, + "application/vnd.lotus-screencam": { + source: "iana", + extensions: ["scm"] + }, + "application/vnd.lotus-wordpro": { + source: "iana", + extensions: ["lwp"] + }, + "application/vnd.macports.portpkg": { + source: "iana", + extensions: ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + source: "iana", + extensions: ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.conftoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.license+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.mdcf": { + source: "iana" + }, + "application/vnd.mason+json": { + source: "iana", + compressible: true + }, + "application/vnd.maxar.archive.3tz+zip": { + source: "iana", + compressible: false + }, + "application/vnd.maxmind.maxmind-db": { + source: "iana" + }, + "application/vnd.mcd": { + source: "iana", + extensions: ["mcd"] + }, + "application/vnd.medcalcdata": { + source: "iana", + extensions: ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + source: "iana", + extensions: ["cdkey"] + }, + "application/vnd.meridian-slingshot": { + source: "iana" + }, + "application/vnd.mfer": { + source: "iana", + extensions: ["mwf"] + }, + "application/vnd.mfmp": { + source: "iana", + extensions: ["mfm"] + }, + "application/vnd.micro+json": { + source: "iana", + compressible: true + }, + "application/vnd.micrografx.flo": { + source: "iana", + extensions: ["flo"] + }, + "application/vnd.micrografx.igx": { + source: "iana", + extensions: ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + source: "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + source: "iana" + }, + "application/vnd.miele+json": { + source: "iana", + compressible: true + }, + "application/vnd.mif": { + source: "iana", + extensions: ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + source: "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + source: "iana" + }, + "application/vnd.mobius.daf": { + source: "iana", + extensions: ["daf"] + }, + "application/vnd.mobius.dis": { + source: "iana", + extensions: ["dis"] + }, + "application/vnd.mobius.mbk": { + source: "iana", + extensions: ["mbk"] + }, + "application/vnd.mobius.mqy": { + source: "iana", + extensions: ["mqy"] + }, + "application/vnd.mobius.msl": { + source: "iana", + extensions: ["msl"] + }, + "application/vnd.mobius.plc": { + source: "iana", + extensions: ["plc"] + }, + "application/vnd.mobius.txf": { + source: "iana", + extensions: ["txf"] + }, + "application/vnd.mophun.application": { + source: "iana", + extensions: ["mpn"] + }, + "application/vnd.mophun.certificate": { + source: "iana", + extensions: ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + source: "iana" + }, + "application/vnd.motorola.iprm": { + source: "iana" + }, + "application/vnd.mozilla.xul+xml": { + source: "iana", + compressible: true, + extensions: ["xul"] + }, + "application/vnd.ms-3mfdocument": { + source: "iana" + }, + "application/vnd.ms-artgalry": { + source: "iana", + extensions: ["cil"] + }, + "application/vnd.ms-asf": { + source: "iana" + }, + "application/vnd.ms-cab-compressed": { + source: "iana", + extensions: ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + source: "apache" + }, + "application/vnd.ms-excel": { + source: "iana", + compressible: false, + extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + source: "iana", + extensions: ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + source: "iana", + extensions: ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + source: "iana", + extensions: ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + source: "iana", + extensions: ["xltm"] + }, + "application/vnd.ms-fontobject": { + source: "iana", + compressible: true, + extensions: ["eot"] + }, + "application/vnd.ms-htmlhelp": { + source: "iana", + extensions: ["chm"] + }, + "application/vnd.ms-ims": { + source: "iana", + extensions: ["ims"] + }, + "application/vnd.ms-lrm": { + source: "iana", + extensions: ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-officetheme": { + source: "iana", + extensions: ["thmx"] + }, + "application/vnd.ms-opentype": { + source: "apache", + compressible: true + }, + "application/vnd.ms-outlook": { + compressible: false, + extensions: ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + source: "apache" + }, + "application/vnd.ms-pki.seccat": { + source: "apache", + extensions: ["cat"] + }, + "application/vnd.ms-pki.stl": { + source: "apache", + extensions: ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-powerpoint": { + source: "iana", + compressible: false, + extensions: ["ppt", "pps", "pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + source: "iana", + extensions: ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + source: "iana", + extensions: ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + source: "iana", + extensions: ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + source: "iana", + extensions: ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + source: "iana", + extensions: ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-printing.printticket+xml": { + source: "apache", + compressible: true + }, + "application/vnd.ms-printschematicket+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-project": { + source: "iana", + extensions: ["mpp", "mpt"] + }, + "application/vnd.ms-tnef": { + source: "iana" + }, + "application/vnd.ms-windows.devicepairing": { + source: "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + source: "iana" + }, + "application/vnd.ms-windows.printerpairing": { + source: "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + source: "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + source: "iana", + extensions: ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + source: "iana", + extensions: ["dotm"] + }, + "application/vnd.ms-works": { + source: "iana", + extensions: ["wps", "wks", "wcm", "wdb"] + }, + "application/vnd.ms-wpl": { + source: "iana", + extensions: ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + source: "iana", + compressible: false, + extensions: ["xps"] + }, + "application/vnd.msa-disk-image": { + source: "iana" + }, + "application/vnd.mseq": { + source: "iana", + extensions: ["mseq"] + }, + "application/vnd.msign": { + source: "iana" + }, + "application/vnd.multiad.creator": { + source: "iana" + }, + "application/vnd.multiad.creator.cif": { + source: "iana" + }, + "application/vnd.music-niff": { + source: "iana" + }, + "application/vnd.musician": { + source: "iana", + extensions: ["mus"] + }, + "application/vnd.muvee.style": { + source: "iana", + extensions: ["msty"] + }, + "application/vnd.mynfc": { + source: "iana", + extensions: ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + source: "iana", + compressible: true + }, + "application/vnd.ncd.control": { + source: "iana" + }, + "application/vnd.ncd.reference": { + source: "iana" + }, + "application/vnd.nearst.inv+json": { + source: "iana", + compressible: true + }, + "application/vnd.nebumind.line": { + source: "iana" + }, + "application/vnd.nervana": { + source: "iana" + }, + "application/vnd.netfpx": { + source: "iana" + }, + "application/vnd.neurolanguage.nlu": { + source: "iana", + extensions: ["nlu"] + }, + "application/vnd.nimn": { + source: "iana" + }, + "application/vnd.nintendo.nitro.rom": { + source: "iana" + }, + "application/vnd.nintendo.snes.rom": { + source: "iana" + }, + "application/vnd.nitf": { + source: "iana", + extensions: ["ntf", "nitf"] + }, + "application/vnd.noblenet-directory": { + source: "iana", + extensions: ["nnd"] + }, + "application/vnd.noblenet-sealer": { + source: "iana", + extensions: ["nns"] + }, + "application/vnd.noblenet-web": { + source: "iana", + extensions: ["nnw"] + }, + "application/vnd.nokia.catalogs": { + source: "iana" + }, + "application/vnd.nokia.conml+wbxml": { + source: "iana" + }, + "application/vnd.nokia.conml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.iptv.config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.isds-radio-presets": { + source: "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + source: "iana" + }, + "application/vnd.nokia.landmark+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.landmarkcollection+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.n-gage.ac+xml": { + source: "iana", + compressible: true, + extensions: ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + source: "iana", + extensions: ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + source: "iana", + extensions: ["n-gage"] + }, + "application/vnd.nokia.ncd": { + source: "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + source: "iana" + }, + "application/vnd.nokia.pcd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.radio-preset": { + source: "iana", + extensions: ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + source: "iana", + extensions: ["rpss"] + }, + "application/vnd.novadigm.edm": { + source: "iana", + extensions: ["edm"] + }, + "application/vnd.novadigm.edx": { + source: "iana", + extensions: ["edx"] + }, + "application/vnd.novadigm.ext": { + source: "iana", + extensions: ["ext"] + }, + "application/vnd.ntt-local.content-share": { + source: "iana" + }, + "application/vnd.ntt-local.file-transfer": { + source: "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + source: "iana" + }, + "application/vnd.oasis.opendocument.chart": { + source: "iana", + extensions: ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + source: "iana", + extensions: ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + source: "iana", + extensions: ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + source: "iana", + extensions: ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + source: "iana", + extensions: ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + source: "iana", + compressible: false, + extensions: ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + source: "iana", + extensions: ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + source: "iana", + extensions: ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + source: "iana", + extensions: ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + source: "iana", + compressible: false, + extensions: ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + source: "iana", + extensions: ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + source: "iana", + compressible: false, + extensions: ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + source: "iana", + extensions: ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + source: "iana", + compressible: false, + extensions: ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + source: "iana", + extensions: ["odm"] + }, + "application/vnd.oasis.opendocument.text-template": { + source: "iana", + extensions: ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + source: "iana", + extensions: ["oth"] + }, + "application/vnd.obn": { + source: "iana" + }, + "application/vnd.ocf+cbor": { + source: "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + source: "iana", + compressible: true + }, + "application/vnd.oftn.l10n+json": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.cspg-hexbinary": { + source: "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.dae.xhtml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.pae.gem": { + source: "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.spdlist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.ueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.userprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.olpc-sugar": { + source: "iana", + extensions: ["xo"] + }, + "application/vnd.oma-scws-config": { + source: "iana" + }, + "application/vnd.oma-scws-http-request": { + source: "iana" + }, + "application/vnd.oma-scws-http-response": { + source: "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.imd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.ltkm": { + source: "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + source: "iana" + }, + "application/vnd.oma.bcast.sgboot": { + source: "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sgdu": { + source: "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + source: "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sprov+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.stkm": { + source: "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-feature-handler+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-pcc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-subs-invite+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-user-prefs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.dcd": { + source: "iana" + }, + "application/vnd.oma.dcdc": { + source: "iana" + }, + "application/vnd.oma.dd2+xml": { + source: "iana", + compressible: true, + extensions: ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.group-usage-list+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+cbor": { + source: "iana" + }, + "application/vnd.oma.lwm2m+json": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+tlv": { + source: "iana" + }, + "application/vnd.oma.pal+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.final-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.groups+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.push": { + source: "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.xcap-directory+xml": { + source: "iana", + compressible: true + }, + "application/vnd.omads-email+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-file+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-folder+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omaloc-supl-init": { + source: "iana" + }, + "application/vnd.onepager": { + source: "iana" + }, + "application/vnd.onepagertamp": { + source: "iana" + }, + "application/vnd.onepagertamx": { + source: "iana" + }, + "application/vnd.onepagertat": { + source: "iana" + }, + "application/vnd.onepagertatp": { + source: "iana" + }, + "application/vnd.onepagertatx": { + source: "iana" + }, + "application/vnd.openblox.game+xml": { + source: "iana", + compressible: true, + extensions: ["obgx"] + }, + "application/vnd.openblox.game-binary": { + source: "iana" + }, + "application/vnd.openeye.oeb": { + source: "iana" + }, + "application/vnd.openofficeorg.extension": { + source: "apache", + extensions: ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + source: "iana", + compressible: true, + extensions: ["osm"] + }, + "application/vnd.opentimestamps.ots": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + source: "iana", + compressible: false, + extensions: ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + source: "iana", + extensions: ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + source: "iana", + extensions: ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + source: "iana", + extensions: ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + source: "iana", + compressible: false, + extensions: ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + source: "iana", + extensions: ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + source: "iana", + compressible: false, + extensions: ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + source: "iana", + extensions: ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oracle.resource+json": { + source: "iana", + compressible: true + }, + "application/vnd.orange.indata": { + source: "iana" + }, + "application/vnd.osa.netdeploy": { + source: "iana" + }, + "application/vnd.osgeo.mapguide.package": { + source: "iana", + extensions: ["mgp"] + }, + "application/vnd.osgi.bundle": { + source: "iana" + }, + "application/vnd.osgi.dp": { + source: "iana", + extensions: ["dp"] + }, + "application/vnd.osgi.subsystem": { + source: "iana", + extensions: ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oxli.countgraph": { + source: "iana" + }, + "application/vnd.pagerduty+json": { + source: "iana", + compressible: true + }, + "application/vnd.palm": { + source: "iana", + extensions: ["pdb", "pqa", "oprc"] + }, + "application/vnd.panoply": { + source: "iana" + }, + "application/vnd.paos.xml": { + source: "iana" + }, + "application/vnd.patentdive": { + source: "iana" + }, + "application/vnd.patientecommsdoc": { + source: "iana" + }, + "application/vnd.pawaafile": { + source: "iana", + extensions: ["paw"] + }, + "application/vnd.pcos": { + source: "iana" + }, + "application/vnd.pg.format": { + source: "iana", + extensions: ["str"] + }, + "application/vnd.pg.osasli": { + source: "iana", + extensions: ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + source: "iana" + }, + "application/vnd.picsel": { + source: "iana", + extensions: ["efif"] + }, + "application/vnd.pmi.widget": { + source: "iana", + extensions: ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + source: "iana", + compressible: true + }, + "application/vnd.pocketlearn": { + source: "iana", + extensions: ["plf"] + }, + "application/vnd.powerbuilder6": { + source: "iana", + extensions: ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + source: "iana" + }, + "application/vnd.powerbuilder7": { + source: "iana" + }, + "application/vnd.powerbuilder7-s": { + source: "iana" + }, + "application/vnd.powerbuilder75": { + source: "iana" + }, + "application/vnd.powerbuilder75-s": { + source: "iana" + }, + "application/vnd.preminet": { + source: "iana" + }, + "application/vnd.previewsystems.box": { + source: "iana", + extensions: ["box"] + }, + "application/vnd.proteus.magazine": { + source: "iana", + extensions: ["mgz"] + }, + "application/vnd.psfs": { + source: "iana" + }, + "application/vnd.publishare-delta-tree": { + source: "iana", + extensions: ["qps"] + }, + "application/vnd.pvi.ptid1": { + source: "iana", + extensions: ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + source: "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + source: "iana", + compressible: true + }, + "application/vnd.qualcomm.brew-app-res": { + source: "iana" + }, + "application/vnd.quarantainenet": { + source: "iana" + }, + "application/vnd.quark.quarkxpress": { + source: "iana", + extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"] + }, + "application/vnd.quobject-quoxdocument": { + source: "iana" + }, + "application/vnd.radisys.moml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + source: "iana", + compressible: true + }, + "application/vnd.rainstor.data": { + source: "iana" + }, + "application/vnd.rapid": { + source: "iana" + }, + "application/vnd.rar": { + source: "iana", + extensions: ["rar"] + }, + "application/vnd.realvnc.bed": { + source: "iana", + extensions: ["bed"] + }, + "application/vnd.recordare.musicxml": { + source: "iana", + extensions: ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + source: "iana", + compressible: true, + extensions: ["musicxml"] + }, + "application/vnd.renlearn.rlprint": { + source: "iana" + }, + "application/vnd.resilient.logic": { + source: "iana" + }, + "application/vnd.restful+json": { + source: "iana", + compressible: true + }, + "application/vnd.rig.cryptonote": { + source: "iana", + extensions: ["cryptonote"] + }, + "application/vnd.rim.cod": { + source: "apache", + extensions: ["cod"] + }, + "application/vnd.rn-realmedia": { + source: "apache", + extensions: ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + source: "apache", + extensions: ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + source: "iana", + compressible: true, + extensions: ["link66"] + }, + "application/vnd.rs-274x": { + source: "iana" + }, + "application/vnd.ruckus.download": { + source: "iana" + }, + "application/vnd.s3sms": { + source: "iana" + }, + "application/vnd.sailingtracker.track": { + source: "iana", + extensions: ["st"] + }, + "application/vnd.sar": { + source: "iana" + }, + "application/vnd.sbm.cid": { + source: "iana" + }, + "application/vnd.sbm.mid2": { + source: "iana" + }, + "application/vnd.scribus": { + source: "iana" + }, + "application/vnd.sealed.3df": { + source: "iana" + }, + "application/vnd.sealed.csf": { + source: "iana" + }, + "application/vnd.sealed.doc": { + source: "iana" + }, + "application/vnd.sealed.eml": { + source: "iana" + }, + "application/vnd.sealed.mht": { + source: "iana" + }, + "application/vnd.sealed.net": { + source: "iana" + }, + "application/vnd.sealed.ppt": { + source: "iana" + }, + "application/vnd.sealed.tiff": { + source: "iana" + }, + "application/vnd.sealed.xls": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + source: "iana" + }, + "application/vnd.seemail": { + source: "iana", + extensions: ["see"] + }, + "application/vnd.seis+json": { + source: "iana", + compressible: true + }, + "application/vnd.sema": { + source: "iana", + extensions: ["sema"] + }, + "application/vnd.semd": { + source: "iana", + extensions: ["semd"] + }, + "application/vnd.semf": { + source: "iana", + extensions: ["semf"] + }, + "application/vnd.shade-save-file": { + source: "iana" + }, + "application/vnd.shana.informed.formdata": { + source: "iana", + extensions: ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + source: "iana", + extensions: ["itp"] + }, + "application/vnd.shana.informed.interchange": { + source: "iana", + extensions: ["iif"] + }, + "application/vnd.shana.informed.package": { + source: "iana", + extensions: ["ipk"] + }, + "application/vnd.shootproof+json": { + source: "iana", + compressible: true + }, + "application/vnd.shopkick+json": { + source: "iana", + compressible: true + }, + "application/vnd.shp": { + source: "iana" + }, + "application/vnd.shx": { + source: "iana" + }, + "application/vnd.sigrok.session": { + source: "iana" + }, + "application/vnd.simtech-mindmapper": { + source: "iana", + extensions: ["twd", "twds"] + }, + "application/vnd.siren+json": { + source: "iana", + compressible: true + }, + "application/vnd.smaf": { + source: "iana", + extensions: ["mmf"] + }, + "application/vnd.smart.notebook": { + source: "iana" + }, + "application/vnd.smart.teacher": { + source: "iana", + extensions: ["teacher"] + }, + "application/vnd.snesdev-page-table": { + source: "iana" + }, + "application/vnd.software602.filler.form+xml": { + source: "iana", + compressible: true, + extensions: ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + source: "iana" + }, + "application/vnd.solent.sdkm+xml": { + source: "iana", + compressible: true, + extensions: ["sdkm", "sdkd"] + }, + "application/vnd.spotfire.dxp": { + source: "iana", + extensions: ["dxp"] + }, + "application/vnd.spotfire.sfs": { + source: "iana", + extensions: ["sfs"] + }, + "application/vnd.sqlite3": { + source: "iana" + }, + "application/vnd.sss-cod": { + source: "iana" + }, + "application/vnd.sss-dtf": { + source: "iana" + }, + "application/vnd.sss-ntf": { + source: "iana" + }, + "application/vnd.stardivision.calc": { + source: "apache", + extensions: ["sdc"] + }, + "application/vnd.stardivision.draw": { + source: "apache", + extensions: ["sda"] + }, + "application/vnd.stardivision.impress": { + source: "apache", + extensions: ["sdd"] + }, + "application/vnd.stardivision.math": { + source: "apache", + extensions: ["smf"] + }, + "application/vnd.stardivision.writer": { + source: "apache", + extensions: ["sdw", "vor"] + }, + "application/vnd.stardivision.writer-global": { + source: "apache", + extensions: ["sgl"] + }, + "application/vnd.stepmania.package": { + source: "iana", + extensions: ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + source: "iana", + extensions: ["sm"] + }, + "application/vnd.street-stream": { + source: "iana" + }, + "application/vnd.sun.wadl+xml": { + source: "iana", + compressible: true, + extensions: ["wadl"] + }, + "application/vnd.sun.xml.calc": { + source: "apache", + extensions: ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + source: "apache", + extensions: ["stc"] + }, + "application/vnd.sun.xml.draw": { + source: "apache", + extensions: ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + source: "apache", + extensions: ["std"] + }, + "application/vnd.sun.xml.impress": { + source: "apache", + extensions: ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + source: "apache", + extensions: ["sti"] + }, + "application/vnd.sun.xml.math": { + source: "apache", + extensions: ["sxm"] + }, + "application/vnd.sun.xml.writer": { + source: "apache", + extensions: ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + source: "apache", + extensions: ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + source: "apache", + extensions: ["stw"] + }, + "application/vnd.sus-calendar": { + source: "iana", + extensions: ["sus", "susp"] + }, + "application/vnd.svd": { + source: "iana", + extensions: ["svd"] + }, + "application/vnd.swiftview-ics": { + source: "iana" + }, + "application/vnd.sycle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.syft+json": { + source: "iana", + compressible: true + }, + "application/vnd.symbian.install": { + source: "apache", + extensions: ["sis", "sisx"] + }, + "application/vnd.syncml+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + source: "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmddf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.syncml.ds.notification": { + source: "iana" + }, + "application/vnd.tableschema+json": { + source: "iana", + compressible: true + }, + "application/vnd.tao.intent-module-archive": { + source: "iana", + extensions: ["tao"] + }, + "application/vnd.tcpdump.pcap": { + source: "iana", + extensions: ["pcap", "cap", "dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + source: "iana", + compressible: true + }, + "application/vnd.tmd.mediaflex.api+xml": { + source: "iana", + compressible: true + }, + "application/vnd.tml": { + source: "iana" + }, + "application/vnd.tmobile-livetv": { + source: "iana", + extensions: ["tmo"] + }, + "application/vnd.tri.onesource": { + source: "iana" + }, + "application/vnd.trid.tpt": { + source: "iana", + extensions: ["tpt"] + }, + "application/vnd.triscape.mxs": { + source: "iana", + extensions: ["mxs"] + }, + "application/vnd.trueapp": { + source: "iana", + extensions: ["tra"] + }, + "application/vnd.truedoc": { + source: "iana" + }, + "application/vnd.ubisoft.webplayer": { + source: "iana" + }, + "application/vnd.ufdl": { + source: "iana", + extensions: ["ufd", "ufdl"] + }, + "application/vnd.uiq.theme": { + source: "iana", + extensions: ["utz"] + }, + "application/vnd.umajin": { + source: "iana", + extensions: ["umj"] + }, + "application/vnd.unity": { + source: "iana", + extensions: ["unityweb"] + }, + "application/vnd.uoml+xml": { + source: "iana", + compressible: true, + extensions: ["uoml"] + }, + "application/vnd.uplanet.alert": { + source: "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.cacheop": { + source: "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.channel": { + source: "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.list": { + source: "iana" + }, + "application/vnd.uplanet.list-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.listcmd": { + source: "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.signal": { + source: "iana" + }, + "application/vnd.uri-map": { + source: "iana" + }, + "application/vnd.valve.source.material": { + source: "iana" + }, + "application/vnd.vcx": { + source: "iana", + extensions: ["vcx"] + }, + "application/vnd.vd-study": { + source: "iana" + }, + "application/vnd.vectorworks": { + source: "iana" + }, + "application/vnd.vel+json": { + source: "iana", + compressible: true + }, + "application/vnd.verimatrix.vcas": { + source: "iana" + }, + "application/vnd.veritone.aion+json": { + source: "iana", + compressible: true + }, + "application/vnd.veryant.thin": { + source: "iana" + }, + "application/vnd.ves.encrypted": { + source: "iana" + }, + "application/vnd.vidsoft.vidconference": { + source: "iana" + }, + "application/vnd.visio": { + source: "iana", + extensions: ["vsd", "vst", "vss", "vsw"] + }, + "application/vnd.visionary": { + source: "iana", + extensions: ["vis"] + }, + "application/vnd.vividence.scriptfile": { + source: "iana" + }, + "application/vnd.vsf": { + source: "iana", + extensions: ["vsf"] + }, + "application/vnd.wap.sic": { + source: "iana" + }, + "application/vnd.wap.slc": { + source: "iana" + }, + "application/vnd.wap.wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["wbxml"] + }, + "application/vnd.wap.wmlc": { + source: "iana", + extensions: ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + source: "iana", + extensions: ["wmlsc"] + }, + "application/vnd.webturbo": { + source: "iana", + extensions: ["wtb"] + }, + "application/vnd.wfa.dpp": { + source: "iana" + }, + "application/vnd.wfa.p2p": { + source: "iana" + }, + "application/vnd.wfa.wsc": { + source: "iana" + }, + "application/vnd.windows.devicepairing": { + source: "iana" + }, + "application/vnd.wmc": { + source: "iana" + }, + "application/vnd.wmf.bootstrap": { + source: "iana" + }, + "application/vnd.wolfram.mathematica": { + source: "iana" + }, + "application/vnd.wolfram.mathematica.package": { + source: "iana" + }, + "application/vnd.wolfram.player": { + source: "iana", + extensions: ["nbp"] + }, + "application/vnd.wordperfect": { + source: "iana", + extensions: ["wpd"] + }, + "application/vnd.wqd": { + source: "iana", + extensions: ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + source: "iana" + }, + "application/vnd.wt.stf": { + source: "iana", + extensions: ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + source: "iana" + }, + "application/vnd.wv.csp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.wv.ssp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xacml+json": { + source: "iana", + compressible: true + }, + "application/vnd.xara": { + source: "iana", + extensions: ["xar"] + }, + "application/vnd.xfdl": { + source: "iana", + extensions: ["xfdl"] + }, + "application/vnd.xfdl.webform": { + source: "iana" + }, + "application/vnd.xmi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xmpie.cpkg": { + source: "iana" + }, + "application/vnd.xmpie.dpkg": { + source: "iana" + }, + "application/vnd.xmpie.plan": { + source: "iana" + }, + "application/vnd.xmpie.ppkg": { + source: "iana" + }, + "application/vnd.xmpie.xlim": { + source: "iana" + }, + "application/vnd.yamaha.hv-dic": { + source: "iana", + extensions: ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + source: "iana", + extensions: ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + source: "iana", + extensions: ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + source: "iana", + extensions: ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + source: "iana", + compressible: true, + extensions: ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + source: "iana" + }, + "application/vnd.yamaha.smaf-audio": { + source: "iana", + extensions: ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + source: "iana", + extensions: ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + source: "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + source: "iana" + }, + "application/vnd.yaoweme": { + source: "iana" + }, + "application/vnd.yellowriver-custom-menu": { + source: "iana", + extensions: ["cmp"] + }, + "application/vnd.youtube.yt": { + source: "iana" + }, + "application/vnd.zul": { + source: "iana", + extensions: ["zir", "zirz"] + }, + "application/vnd.zzazz.deck+xml": { + source: "iana", + compressible: true, + extensions: ["zaz"] + }, + "application/voicexml+xml": { + source: "iana", + compressible: true, + extensions: ["vxml"] + }, + "application/voucher-cms+json": { + source: "iana", + compressible: true + }, + "application/vq-rtcpxr": { + source: "iana" + }, + "application/wasm": { + source: "iana", + compressible: true, + extensions: ["wasm"] + }, + "application/watcherinfo+xml": { + source: "iana", + compressible: true, + extensions: ["wif"] + }, + "application/webpush-options+json": { + source: "iana", + compressible: true + }, + "application/whoispp-query": { + source: "iana" + }, + "application/whoispp-response": { + source: "iana" + }, + "application/widget": { + source: "iana", + extensions: ["wgt"] + }, + "application/winhlp": { + source: "apache", + extensions: ["hlp"] + }, + "application/wita": { + source: "iana" + }, + "application/wordperfect5.1": { + source: "iana" + }, + "application/wsdl+xml": { + source: "iana", + compressible: true, + extensions: ["wsdl"] + }, + "application/wspolicy+xml": { + source: "iana", + compressible: true, + extensions: ["wspolicy"] + }, + "application/x-7z-compressed": { + source: "apache", + compressible: false, + extensions: ["7z"] + }, + "application/x-abiword": { + source: "apache", + extensions: ["abw"] + }, + "application/x-ace-compressed": { + source: "apache", + extensions: ["ace"] + }, + "application/x-amf": { + source: "apache" + }, + "application/x-apple-diskimage": { + source: "apache", + extensions: ["dmg"] + }, + "application/x-arj": { + compressible: false, + extensions: ["arj"] + }, + "application/x-authorware-bin": { + source: "apache", + extensions: ["aab", "x32", "u32", "vox"] + }, + "application/x-authorware-map": { + source: "apache", + extensions: ["aam"] + }, + "application/x-authorware-seg": { + source: "apache", + extensions: ["aas"] + }, + "application/x-bcpio": { + source: "apache", + extensions: ["bcpio"] + }, + "application/x-bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/x-bittorrent": { + source: "apache", + extensions: ["torrent"] + }, + "application/x-blorb": { + source: "apache", + extensions: ["blb", "blorb"] + }, + "application/x-bzip": { + source: "apache", + compressible: false, + extensions: ["bz"] + }, + "application/x-bzip2": { + source: "apache", + compressible: false, + extensions: ["bz2", "boz"] + }, + "application/x-cbr": { + source: "apache", + extensions: ["cbr", "cba", "cbt", "cbz", "cb7"] + }, + "application/x-cdlink": { + source: "apache", + extensions: ["vcd"] + }, + "application/x-cfs-compressed": { + source: "apache", + extensions: ["cfs"] + }, + "application/x-chat": { + source: "apache", + extensions: ["chat"] + }, + "application/x-chess-pgn": { + source: "apache", + extensions: ["pgn"] + }, + "application/x-chrome-extension": { + extensions: ["crx"] + }, + "application/x-cocoa": { + source: "nginx", + extensions: ["cco"] + }, + "application/x-compress": { + source: "apache" + }, + "application/x-conference": { + source: "apache", + extensions: ["nsc"] + }, + "application/x-cpio": { + source: "apache", + extensions: ["cpio"] + }, + "application/x-csh": { + source: "apache", + extensions: ["csh"] + }, + "application/x-deb": { + compressible: false + }, + "application/x-debian-package": { + source: "apache", + extensions: ["deb", "udeb"] + }, + "application/x-dgc-compressed": { + source: "apache", + extensions: ["dgc"] + }, + "application/x-director": { + source: "apache", + extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"] + }, + "application/x-doom": { + source: "apache", + extensions: ["wad"] + }, + "application/x-dtbncx+xml": { + source: "apache", + compressible: true, + extensions: ["ncx"] + }, + "application/x-dtbook+xml": { + source: "apache", + compressible: true, + extensions: ["dtb"] + }, + "application/x-dtbresource+xml": { + source: "apache", + compressible: true, + extensions: ["res"] + }, + "application/x-dvi": { + source: "apache", + compressible: false, + extensions: ["dvi"] + }, + "application/x-envoy": { + source: "apache", + extensions: ["evy"] + }, + "application/x-eva": { + source: "apache", + extensions: ["eva"] + }, + "application/x-font-bdf": { + source: "apache", + extensions: ["bdf"] + }, + "application/x-font-dos": { + source: "apache" + }, + "application/x-font-framemaker": { + source: "apache" + }, + "application/x-font-ghostscript": { + source: "apache", + extensions: ["gsf"] + }, + "application/x-font-libgrx": { + source: "apache" + }, + "application/x-font-linux-psf": { + source: "apache", + extensions: ["psf"] + }, + "application/x-font-pcf": { + source: "apache", + extensions: ["pcf"] + }, + "application/x-font-snf": { + source: "apache", + extensions: ["snf"] + }, + "application/x-font-speedo": { + source: "apache" + }, + "application/x-font-sunos-news": { + source: "apache" + }, + "application/x-font-type1": { + source: "apache", + extensions: ["pfa", "pfb", "pfm", "afm"] + }, + "application/x-font-vfont": { + source: "apache" + }, + "application/x-freearc": { + source: "apache", + extensions: ["arc"] + }, + "application/x-futuresplash": { + source: "apache", + extensions: ["spl"] + }, + "application/x-gca-compressed": { + source: "apache", + extensions: ["gca"] + }, + "application/x-glulx": { + source: "apache", + extensions: ["ulx"] + }, + "application/x-gnumeric": { + source: "apache", + extensions: ["gnumeric"] + }, + "application/x-gramps-xml": { + source: "apache", + extensions: ["gramps"] + }, + "application/x-gtar": { + source: "apache", + extensions: ["gtar"] + }, + "application/x-gzip": { + source: "apache" + }, + "application/x-hdf": { + source: "apache", + extensions: ["hdf"] + }, + "application/x-httpd-php": { + compressible: true, + extensions: ["php"] + }, + "application/x-install-instructions": { + source: "apache", + extensions: ["install"] + }, + "application/x-iso9660-image": { + source: "apache", + extensions: ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + extensions: ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + extensions: ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + extensions: ["pages"] + }, + "application/x-java-archive-diff": { + source: "nginx", + extensions: ["jardiff"] + }, + "application/x-java-jnlp-file": { + source: "apache", + compressible: false, + extensions: ["jnlp"] + }, + "application/x-javascript": { + compressible: true + }, + "application/x-keepass2": { + extensions: ["kdbx"] + }, + "application/x-latex": { + source: "apache", + compressible: false, + extensions: ["latex"] + }, + "application/x-lua-bytecode": { + extensions: ["luac"] + }, + "application/x-lzh-compressed": { + source: "apache", + extensions: ["lzh", "lha"] + }, + "application/x-makeself": { + source: "nginx", + extensions: ["run"] + }, + "application/x-mie": { + source: "apache", + extensions: ["mie"] + }, + "application/x-mobipocket-ebook": { + source: "apache", + extensions: ["prc", "mobi"] + }, + "application/x-mpegurl": { + compressible: false + }, + "application/x-ms-application": { + source: "apache", + extensions: ["application"] + }, + "application/x-ms-shortcut": { + source: "apache", + extensions: ["lnk"] + }, + "application/x-ms-wmd": { + source: "apache", + extensions: ["wmd"] + }, + "application/x-ms-wmz": { + source: "apache", + extensions: ["wmz"] + }, + "application/x-ms-xbap": { + source: "apache", + extensions: ["xbap"] + }, + "application/x-msaccess": { + source: "apache", + extensions: ["mdb"] + }, + "application/x-msbinder": { + source: "apache", + extensions: ["obd"] + }, + "application/x-mscardfile": { + source: "apache", + extensions: ["crd"] + }, + "application/x-msclip": { + source: "apache", + extensions: ["clp"] + }, + "application/x-msdos-program": { + extensions: ["exe"] + }, + "application/x-msdownload": { + source: "apache", + extensions: ["exe", "dll", "com", "bat", "msi"] + }, + "application/x-msmediaview": { + source: "apache", + extensions: ["mvb", "m13", "m14"] + }, + "application/x-msmetafile": { + source: "apache", + extensions: ["wmf", "wmz", "emf", "emz"] + }, + "application/x-msmoney": { + source: "apache", + extensions: ["mny"] + }, + "application/x-mspublisher": { + source: "apache", + extensions: ["pub"] + }, + "application/x-msschedule": { + source: "apache", + extensions: ["scd"] + }, + "application/x-msterminal": { + source: "apache", + extensions: ["trm"] + }, + "application/x-mswrite": { + source: "apache", + extensions: ["wri"] + }, + "application/x-netcdf": { + source: "apache", + extensions: ["nc", "cdf"] + }, + "application/x-ns-proxy-autoconfig": { + compressible: true, + extensions: ["pac"] + }, + "application/x-nzb": { + source: "apache", + extensions: ["nzb"] + }, + "application/x-perl": { + source: "nginx", + extensions: ["pl", "pm"] + }, + "application/x-pilot": { + source: "nginx", + extensions: ["prc", "pdb"] + }, + "application/x-pkcs12": { + source: "apache", + compressible: false, + extensions: ["p12", "pfx"] + }, + "application/x-pkcs7-certificates": { + source: "apache", + extensions: ["p7b", "spc"] + }, + "application/x-pkcs7-certreqresp": { + source: "apache", + extensions: ["p7r"] + }, + "application/x-pki-message": { + source: "iana" + }, + "application/x-rar-compressed": { + source: "apache", + compressible: false, + extensions: ["rar"] + }, + "application/x-redhat-package-manager": { + source: "nginx", + extensions: ["rpm"] + }, + "application/x-research-info-systems": { + source: "apache", + extensions: ["ris"] + }, + "application/x-sea": { + source: "nginx", + extensions: ["sea"] + }, + "application/x-sh": { + source: "apache", + compressible: true, + extensions: ["sh"] + }, + "application/x-shar": { + source: "apache", + extensions: ["shar"] + }, + "application/x-shockwave-flash": { + source: "apache", + compressible: false, + extensions: ["swf"] + }, + "application/x-silverlight-app": { + source: "apache", + extensions: ["xap"] + }, + "application/x-sql": { + source: "apache", + extensions: ["sql"] + }, + "application/x-stuffit": { + source: "apache", + compressible: false, + extensions: ["sit"] + }, + "application/x-stuffitx": { + source: "apache", + extensions: ["sitx"] + }, + "application/x-subrip": { + source: "apache", + extensions: ["srt"] + }, + "application/x-sv4cpio": { + source: "apache", + extensions: ["sv4cpio"] + }, + "application/x-sv4crc": { + source: "apache", + extensions: ["sv4crc"] + }, + "application/x-t3vm-image": { + source: "apache", + extensions: ["t3"] + }, + "application/x-tads": { + source: "apache", + extensions: ["gam"] + }, + "application/x-tar": { + source: "apache", + compressible: true, + extensions: ["tar"] + }, + "application/x-tcl": { + source: "apache", + extensions: ["tcl", "tk"] + }, + "application/x-tex": { + source: "apache", + extensions: ["tex"] + }, + "application/x-tex-tfm": { + source: "apache", + extensions: ["tfm"] + }, + "application/x-texinfo": { + source: "apache", + extensions: ["texinfo", "texi"] + }, + "application/x-tgif": { + source: "apache", + extensions: ["obj"] + }, + "application/x-ustar": { + source: "apache", + extensions: ["ustar"] + }, + "application/x-virtualbox-hdd": { + compressible: true, + extensions: ["hdd"] + }, + "application/x-virtualbox-ova": { + compressible: true, + extensions: ["ova"] + }, + "application/x-virtualbox-ovf": { + compressible: true, + extensions: ["ovf"] + }, + "application/x-virtualbox-vbox": { + compressible: true, + extensions: ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + compressible: false, + extensions: ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + compressible: true, + extensions: ["vdi"] + }, + "application/x-virtualbox-vhd": { + compressible: true, + extensions: ["vhd"] + }, + "application/x-virtualbox-vmdk": { + compressible: true, + extensions: ["vmdk"] + }, + "application/x-wais-source": { + source: "apache", + extensions: ["src"] + }, + "application/x-web-app-manifest+json": { + compressible: true, + extensions: ["webapp"] + }, + "application/x-www-form-urlencoded": { + source: "iana", + compressible: true + }, + "application/x-x509-ca-cert": { + source: "iana", + extensions: ["der", "crt", "pem"] + }, + "application/x-x509-ca-ra-cert": { + source: "iana" + }, + "application/x-x509-next-ca-cert": { + source: "iana" + }, + "application/x-xfig": { + source: "apache", + extensions: ["fig"] + }, + "application/x-xliff+xml": { + source: "apache", + compressible: true, + extensions: ["xlf"] + }, + "application/x-xpinstall": { + source: "apache", + compressible: false, + extensions: ["xpi"] + }, + "application/x-xz": { + source: "apache", + extensions: ["xz"] + }, + "application/x-zmachine": { + source: "apache", + extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"] + }, + "application/x400-bp": { + source: "iana" + }, + "application/xacml+xml": { + source: "iana", + compressible: true + }, + "application/xaml+xml": { + source: "apache", + compressible: true, + extensions: ["xaml"] + }, + "application/xcap-att+xml": { + source: "iana", + compressible: true, + extensions: ["xav"] + }, + "application/xcap-caps+xml": { + source: "iana", + compressible: true, + extensions: ["xca"] + }, + "application/xcap-diff+xml": { + source: "iana", + compressible: true, + extensions: ["xdf"] + }, + "application/xcap-el+xml": { + source: "iana", + compressible: true, + extensions: ["xel"] + }, + "application/xcap-error+xml": { + source: "iana", + compressible: true + }, + "application/xcap-ns+xml": { + source: "iana", + compressible: true, + extensions: ["xns"] + }, + "application/xcon-conference-info+xml": { + source: "iana", + compressible: true + }, + "application/xcon-conference-info-diff+xml": { + source: "iana", + compressible: true + }, + "application/xenc+xml": { + source: "iana", + compressible: true, + extensions: ["xenc"] + }, + "application/xhtml+xml": { + source: "iana", + compressible: true, + extensions: ["xhtml", "xht"] + }, + "application/xhtml-voice+xml": { + source: "apache", + compressible: true + }, + "application/xliff+xml": { + source: "iana", + compressible: true, + extensions: ["xlf"] + }, + "application/xml": { + source: "iana", + compressible: true, + extensions: ["xml", "xsl", "xsd", "rng"] + }, + "application/xml-dtd": { + source: "iana", + compressible: true, + extensions: ["dtd"] + }, + "application/xml-external-parsed-entity": { + source: "iana" + }, + "application/xml-patch+xml": { + source: "iana", + compressible: true + }, + "application/xmpp+xml": { + source: "iana", + compressible: true + }, + "application/xop+xml": { + source: "iana", + compressible: true, + extensions: ["xop"] + }, + "application/xproc+xml": { + source: "apache", + compressible: true, + extensions: ["xpl"] + }, + "application/xslt+xml": { + source: "iana", + compressible: true, + extensions: ["xsl", "xslt"] + }, + "application/xspf+xml": { + source: "apache", + compressible: true, + extensions: ["xspf"] + }, + "application/xv+xml": { + source: "iana", + compressible: true, + extensions: ["mxml", "xhvml", "xvml", "xvm"] + }, + "application/yang": { + source: "iana", + extensions: ["yang"] + }, + "application/yang-data+json": { + source: "iana", + compressible: true + }, + "application/yang-data+xml": { + source: "iana", + compressible: true + }, + "application/yang-patch+json": { + source: "iana", + compressible: true + }, + "application/yang-patch+xml": { + source: "iana", + compressible: true + }, + "application/yin+xml": { + source: "iana", + compressible: true, + extensions: ["yin"] + }, + "application/zip": { + source: "iana", + compressible: false, + extensions: ["zip"] + }, + "application/zlib": { + source: "iana" + }, + "application/zstd": { + source: "iana" + }, + "audio/1d-interleaved-parityfec": { + source: "iana" + }, + "audio/32kadpcm": { + source: "iana" + }, + "audio/3gpp": { + source: "iana", + compressible: false, + extensions: ["3gpp"] + }, + "audio/3gpp2": { + source: "iana" + }, + "audio/aac": { + source: "iana" + }, + "audio/ac3": { + source: "iana" + }, + "audio/adpcm": { + source: "apache", + extensions: ["adp"] + }, + "audio/amr": { + source: "iana", + extensions: ["amr"] + }, + "audio/amr-wb": { + source: "iana" + }, + "audio/amr-wb+": { + source: "iana" + }, + "audio/aptx": { + source: "iana" + }, + "audio/asc": { + source: "iana" + }, + "audio/atrac-advanced-lossless": { + source: "iana" + }, + "audio/atrac-x": { + source: "iana" + }, + "audio/atrac3": { + source: "iana" + }, + "audio/basic": { + source: "iana", + compressible: false, + extensions: ["au", "snd"] + }, + "audio/bv16": { + source: "iana" + }, + "audio/bv32": { + source: "iana" + }, + "audio/clearmode": { + source: "iana" + }, + "audio/cn": { + source: "iana" + }, + "audio/dat12": { + source: "iana" + }, + "audio/dls": { + source: "iana" + }, + "audio/dsr-es201108": { + source: "iana" + }, + "audio/dsr-es202050": { + source: "iana" + }, + "audio/dsr-es202211": { + source: "iana" + }, + "audio/dsr-es202212": { + source: "iana" + }, + "audio/dv": { + source: "iana" + }, + "audio/dvi4": { + source: "iana" + }, + "audio/eac3": { + source: "iana" + }, + "audio/encaprtp": { + source: "iana" + }, + "audio/evrc": { + source: "iana" + }, + "audio/evrc-qcp": { + source: "iana" + }, + "audio/evrc0": { + source: "iana" + }, + "audio/evrc1": { + source: "iana" + }, + "audio/evrcb": { + source: "iana" + }, + "audio/evrcb0": { + source: "iana" + }, + "audio/evrcb1": { + source: "iana" + }, + "audio/evrcnw": { + source: "iana" + }, + "audio/evrcnw0": { + source: "iana" + }, + "audio/evrcnw1": { + source: "iana" + }, + "audio/evrcwb": { + source: "iana" + }, + "audio/evrcwb0": { + source: "iana" + }, + "audio/evrcwb1": { + source: "iana" + }, + "audio/evs": { + source: "iana" + }, + "audio/flexfec": { + source: "iana" + }, + "audio/fwdred": { + source: "iana" + }, + "audio/g711-0": { + source: "iana" + }, + "audio/g719": { + source: "iana" + }, + "audio/g722": { + source: "iana" + }, + "audio/g7221": { + source: "iana" + }, + "audio/g723": { + source: "iana" + }, + "audio/g726-16": { + source: "iana" + }, + "audio/g726-24": { + source: "iana" + }, + "audio/g726-32": { + source: "iana" + }, + "audio/g726-40": { + source: "iana" + }, + "audio/g728": { + source: "iana" + }, + "audio/g729": { + source: "iana" + }, + "audio/g7291": { + source: "iana" + }, + "audio/g729d": { + source: "iana" + }, + "audio/g729e": { + source: "iana" + }, + "audio/gsm": { + source: "iana" + }, + "audio/gsm-efr": { + source: "iana" + }, + "audio/gsm-hr-08": { + source: "iana" + }, + "audio/ilbc": { + source: "iana" + }, + "audio/ip-mr_v2.5": { + source: "iana" + }, + "audio/isac": { + source: "apache" + }, + "audio/l16": { + source: "iana" + }, + "audio/l20": { + source: "iana" + }, + "audio/l24": { + source: "iana", + compressible: false + }, + "audio/l8": { + source: "iana" + }, + "audio/lpc": { + source: "iana" + }, + "audio/melp": { + source: "iana" + }, + "audio/melp1200": { + source: "iana" + }, + "audio/melp2400": { + source: "iana" + }, + "audio/melp600": { + source: "iana" + }, + "audio/mhas": { + source: "iana" + }, + "audio/midi": { + source: "apache", + extensions: ["mid", "midi", "kar", "rmi"] + }, + "audio/mobile-xmf": { + source: "iana", + extensions: ["mxmf"] + }, + "audio/mp3": { + compressible: false, + extensions: ["mp3"] + }, + "audio/mp4": { + source: "iana", + compressible: false, + extensions: ["m4a", "mp4a"] + }, + "audio/mp4a-latm": { + source: "iana" + }, + "audio/mpa": { + source: "iana" + }, + "audio/mpa-robust": { + source: "iana" + }, + "audio/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] + }, + "audio/mpeg4-generic": { + source: "iana" + }, + "audio/musepack": { + source: "apache" + }, + "audio/ogg": { + source: "iana", + compressible: false, + extensions: ["oga", "ogg", "spx", "opus"] + }, + "audio/opus": { + source: "iana" + }, + "audio/parityfec": { + source: "iana" + }, + "audio/pcma": { + source: "iana" + }, + "audio/pcma-wb": { + source: "iana" + }, + "audio/pcmu": { + source: "iana" + }, + "audio/pcmu-wb": { + source: "iana" + }, + "audio/prs.sid": { + source: "iana" + }, + "audio/qcelp": { + source: "iana" + }, + "audio/raptorfec": { + source: "iana" + }, + "audio/red": { + source: "iana" + }, + "audio/rtp-enc-aescm128": { + source: "iana" + }, + "audio/rtp-midi": { + source: "iana" + }, + "audio/rtploopback": { + source: "iana" + }, + "audio/rtx": { + source: "iana" + }, + "audio/s3m": { + source: "apache", + extensions: ["s3m"] + }, + "audio/scip": { + source: "iana" + }, + "audio/silk": { + source: "apache", + extensions: ["sil"] + }, + "audio/smv": { + source: "iana" + }, + "audio/smv-qcp": { + source: "iana" + }, + "audio/smv0": { + source: "iana" + }, + "audio/sofa": { + source: "iana" + }, + "audio/sp-midi": { + source: "iana" + }, + "audio/speex": { + source: "iana" + }, + "audio/t140c": { + source: "iana" + }, + "audio/t38": { + source: "iana" + }, + "audio/telephone-event": { + source: "iana" + }, + "audio/tetra_acelp": { + source: "iana" + }, + "audio/tetra_acelp_bb": { + source: "iana" + }, + "audio/tone": { + source: "iana" + }, + "audio/tsvcis": { + source: "iana" + }, + "audio/uemclip": { + source: "iana" + }, + "audio/ulpfec": { + source: "iana" + }, + "audio/usac": { + source: "iana" + }, + "audio/vdvi": { + source: "iana" + }, + "audio/vmr-wb": { + source: "iana" + }, + "audio/vnd.3gpp.iufp": { + source: "iana" + }, + "audio/vnd.4sb": { + source: "iana" + }, + "audio/vnd.audiokoz": { + source: "iana" + }, + "audio/vnd.celp": { + source: "iana" + }, + "audio/vnd.cisco.nse": { + source: "iana" + }, + "audio/vnd.cmles.radio-events": { + source: "iana" + }, + "audio/vnd.cns.anp1": { + source: "iana" + }, + "audio/vnd.cns.inf1": { + source: "iana" + }, + "audio/vnd.dece.audio": { + source: "iana", + extensions: ["uva", "uvva"] + }, + "audio/vnd.digital-winds": { + source: "iana", + extensions: ["eol"] + }, + "audio/vnd.dlna.adts": { + source: "iana" + }, + "audio/vnd.dolby.heaac.1": { + source: "iana" + }, + "audio/vnd.dolby.heaac.2": { + source: "iana" + }, + "audio/vnd.dolby.mlp": { + source: "iana" + }, + "audio/vnd.dolby.mps": { + source: "iana" + }, + "audio/vnd.dolby.pl2": { + source: "iana" + }, + "audio/vnd.dolby.pl2x": { + source: "iana" + }, + "audio/vnd.dolby.pl2z": { + source: "iana" + }, + "audio/vnd.dolby.pulse.1": { + source: "iana" + }, + "audio/vnd.dra": { + source: "iana", + extensions: ["dra"] + }, + "audio/vnd.dts": { + source: "iana", + extensions: ["dts"] + }, + "audio/vnd.dts.hd": { + source: "iana", + extensions: ["dtshd"] + }, + "audio/vnd.dts.uhd": { + source: "iana" + }, + "audio/vnd.dvb.file": { + source: "iana" + }, + "audio/vnd.everad.plj": { + source: "iana" + }, + "audio/vnd.hns.audio": { + source: "iana" + }, + "audio/vnd.lucent.voice": { + source: "iana", + extensions: ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + source: "iana", + extensions: ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + source: "iana" + }, + "audio/vnd.nortel.vbk": { + source: "iana" + }, + "audio/vnd.nuera.ecelp4800": { + source: "iana", + extensions: ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + source: "iana", + extensions: ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + source: "iana", + extensions: ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + source: "iana" + }, + "audio/vnd.presonus.multitrack": { + source: "iana" + }, + "audio/vnd.qcelp": { + source: "iana" + }, + "audio/vnd.rhetorex.32kadpcm": { + source: "iana" + }, + "audio/vnd.rip": { + source: "iana", + extensions: ["rip"] + }, + "audio/vnd.rn-realaudio": { + compressible: false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + source: "iana" + }, + "audio/vnd.vmx.cvsd": { + source: "iana" + }, + "audio/vnd.wave": { + compressible: false + }, + "audio/vorbis": { + source: "iana", + compressible: false + }, + "audio/vorbis-config": { + source: "iana" + }, + "audio/wav": { + compressible: false, + extensions: ["wav"] + }, + "audio/wave": { + compressible: false, + extensions: ["wav"] + }, + "audio/webm": { + source: "apache", + compressible: false, + extensions: ["weba"] + }, + "audio/x-aac": { + source: "apache", + compressible: false, + extensions: ["aac"] + }, + "audio/x-aiff": { + source: "apache", + extensions: ["aif", "aiff", "aifc"] + }, + "audio/x-caf": { + source: "apache", + compressible: false, + extensions: ["caf"] + }, + "audio/x-flac": { + source: "apache", + extensions: ["flac"] + }, + "audio/x-m4a": { + source: "nginx", + extensions: ["m4a"] + }, + "audio/x-matroska": { + source: "apache", + extensions: ["mka"] + }, + "audio/x-mpegurl": { + source: "apache", + extensions: ["m3u"] + }, + "audio/x-ms-wax": { + source: "apache", + extensions: ["wax"] + }, + "audio/x-ms-wma": { + source: "apache", + extensions: ["wma"] + }, + "audio/x-pn-realaudio": { + source: "apache", + extensions: ["ram", "ra"] + }, + "audio/x-pn-realaudio-plugin": { + source: "apache", + extensions: ["rmp"] + }, + "audio/x-realaudio": { + source: "nginx", + extensions: ["ra"] + }, + "audio/x-tta": { + source: "apache" + }, + "audio/x-wav": { + source: "apache", + extensions: ["wav"] + }, + "audio/xm": { + source: "apache", + extensions: ["xm"] + }, + "chemical/x-cdx": { + source: "apache", + extensions: ["cdx"] + }, + "chemical/x-cif": { + source: "apache", + extensions: ["cif"] + }, + "chemical/x-cmdf": { + source: "apache", + extensions: ["cmdf"] + }, + "chemical/x-cml": { + source: "apache", + extensions: ["cml"] + }, + "chemical/x-csml": { + source: "apache", + extensions: ["csml"] + }, + "chemical/x-pdb": { + source: "apache" + }, + "chemical/x-xyz": { + source: "apache", + extensions: ["xyz"] + }, + "font/collection": { + source: "iana", + extensions: ["ttc"] + }, + "font/otf": { + source: "iana", + compressible: true, + extensions: ["otf"] + }, + "font/sfnt": { + source: "iana" + }, + "font/ttf": { + source: "iana", + compressible: true, + extensions: ["ttf"] + }, + "font/woff": { + source: "iana", + extensions: ["woff"] + }, + "font/woff2": { + source: "iana", + extensions: ["woff2"] + }, + "image/aces": { + source: "iana", + extensions: ["exr"] + }, + "image/apng": { + compressible: false, + extensions: ["apng"] + }, + "image/avci": { + source: "iana", + extensions: ["avci"] + }, + "image/avcs": { + source: "iana", + extensions: ["avcs"] + }, + "image/avif": { + source: "iana", + compressible: false, + extensions: ["avif"] + }, + "image/bmp": { + source: "iana", + compressible: true, + extensions: ["bmp"] + }, + "image/cgm": { + source: "iana", + extensions: ["cgm"] + }, + "image/dicom-rle": { + source: "iana", + extensions: ["drle"] + }, + "image/emf": { + source: "iana", + extensions: ["emf"] + }, + "image/fits": { + source: "iana", + extensions: ["fits"] + }, + "image/g3fax": { + source: "iana", + extensions: ["g3"] + }, + "image/gif": { + source: "iana", + compressible: false, + extensions: ["gif"] + }, + "image/heic": { + source: "iana", + extensions: ["heic"] + }, + "image/heic-sequence": { + source: "iana", + extensions: ["heics"] + }, + "image/heif": { + source: "iana", + extensions: ["heif"] + }, + "image/heif-sequence": { + source: "iana", + extensions: ["heifs"] + }, + "image/hej2k": { + source: "iana", + extensions: ["hej2"] + }, + "image/hsj2": { + source: "iana", + extensions: ["hsj2"] + }, + "image/ief": { + source: "iana", + extensions: ["ief"] + }, + "image/jls": { + source: "iana", + extensions: ["jls"] + }, + "image/jp2": { + source: "iana", + compressible: false, + extensions: ["jp2", "jpg2"] + }, + "image/jpeg": { + source: "iana", + compressible: false, + extensions: ["jpeg", "jpg", "jpe"] + }, + "image/jph": { + source: "iana", + extensions: ["jph"] + }, + "image/jphc": { + source: "iana", + extensions: ["jhc"] + }, + "image/jpm": { + source: "iana", + compressible: false, + extensions: ["jpm"] + }, + "image/jpx": { + source: "iana", + compressible: false, + extensions: ["jpx", "jpf"] + }, + "image/jxr": { + source: "iana", + extensions: ["jxr"] + }, + "image/jxra": { + source: "iana", + extensions: ["jxra"] + }, + "image/jxrs": { + source: "iana", + extensions: ["jxrs"] + }, + "image/jxs": { + source: "iana", + extensions: ["jxs"] + }, + "image/jxsc": { + source: "iana", + extensions: ["jxsc"] + }, + "image/jxsi": { + source: "iana", + extensions: ["jxsi"] + }, + "image/jxss": { + source: "iana", + extensions: ["jxss"] + }, + "image/ktx": { + source: "iana", + extensions: ["ktx"] + }, + "image/ktx2": { + source: "iana", + extensions: ["ktx2"] + }, + "image/naplps": { + source: "iana" + }, + "image/pjpeg": { + compressible: false + }, + "image/png": { + source: "iana", + compressible: false, + extensions: ["png"] + }, + "image/prs.btif": { + source: "iana", + extensions: ["btif"] + }, + "image/prs.pti": { + source: "iana", + extensions: ["pti"] + }, + "image/pwg-raster": { + source: "iana" + }, + "image/sgi": { + source: "apache", + extensions: ["sgi"] + }, + "image/svg+xml": { + source: "iana", + compressible: true, + extensions: ["svg", "svgz"] + }, + "image/t38": { + source: "iana", + extensions: ["t38"] + }, + "image/tiff": { + source: "iana", + compressible: false, + extensions: ["tif", "tiff"] + }, + "image/tiff-fx": { + source: "iana", + extensions: ["tfx"] + }, + "image/vnd.adobe.photoshop": { + source: "iana", + compressible: true, + extensions: ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + source: "iana", + extensions: ["azv"] + }, + "image/vnd.cns.inf2": { + source: "iana" + }, + "image/vnd.dece.graphic": { + source: "iana", + extensions: ["uvi", "uvvi", "uvg", "uvvg"] + }, + "image/vnd.djvu": { + source: "iana", + extensions: ["djvu", "djv"] + }, + "image/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "image/vnd.dwg": { + source: "iana", + extensions: ["dwg"] + }, + "image/vnd.dxf": { + source: "iana", + extensions: ["dxf"] + }, + "image/vnd.fastbidsheet": { + source: "iana", + extensions: ["fbs"] + }, + "image/vnd.fpx": { + source: "iana", + extensions: ["fpx"] + }, + "image/vnd.fst": { + source: "iana", + extensions: ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + source: "iana", + extensions: ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + source: "iana", + extensions: ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + source: "iana" + }, + "image/vnd.microsoft.icon": { + source: "iana", + compressible: true, + extensions: ["ico"] + }, + "image/vnd.mix": { + source: "iana" + }, + "image/vnd.mozilla.apng": { + source: "iana" + }, + "image/vnd.ms-dds": { + compressible: true, + extensions: ["dds"] + }, + "image/vnd.ms-modi": { + source: "iana", + extensions: ["mdi"] + }, + "image/vnd.ms-photo": { + source: "apache", + extensions: ["wdp"] + }, + "image/vnd.net-fpx": { + source: "iana", + extensions: ["npx"] + }, + "image/vnd.pco.b16": { + source: "iana", + extensions: ["b16"] + }, + "image/vnd.radiance": { + source: "iana" + }, + "image/vnd.sealed.png": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + source: "iana" + }, + "image/vnd.svf": { + source: "iana" + }, + "image/vnd.tencent.tap": { + source: "iana", + extensions: ["tap"] + }, + "image/vnd.valve.source.texture": { + source: "iana", + extensions: ["vtf"] + }, + "image/vnd.wap.wbmp": { + source: "iana", + extensions: ["wbmp"] + }, + "image/vnd.xiff": { + source: "iana", + extensions: ["xif"] + }, + "image/vnd.zbrush.pcx": { + source: "iana", + extensions: ["pcx"] + }, + "image/webp": { + source: "apache", + extensions: ["webp"] + }, + "image/wmf": { + source: "iana", + extensions: ["wmf"] + }, + "image/x-3ds": { + source: "apache", + extensions: ["3ds"] + }, + "image/x-cmu-raster": { + source: "apache", + extensions: ["ras"] + }, + "image/x-cmx": { + source: "apache", + extensions: ["cmx"] + }, + "image/x-freehand": { + source: "apache", + extensions: ["fh", "fhc", "fh4", "fh5", "fh7"] + }, + "image/x-icon": { + source: "apache", + compressible: true, + extensions: ["ico"] + }, + "image/x-jng": { + source: "nginx", + extensions: ["jng"] + }, + "image/x-mrsid-image": { + source: "apache", + extensions: ["sid"] + }, + "image/x-ms-bmp": { + source: "nginx", + compressible: true, + extensions: ["bmp"] + }, + "image/x-pcx": { + source: "apache", + extensions: ["pcx"] + }, + "image/x-pict": { + source: "apache", + extensions: ["pic", "pct"] + }, + "image/x-portable-anymap": { + source: "apache", + extensions: ["pnm"] + }, + "image/x-portable-bitmap": { + source: "apache", + extensions: ["pbm"] + }, + "image/x-portable-graymap": { + source: "apache", + extensions: ["pgm"] + }, + "image/x-portable-pixmap": { + source: "apache", + extensions: ["ppm"] + }, + "image/x-rgb": { + source: "apache", + extensions: ["rgb"] + }, + "image/x-tga": { + source: "apache", + extensions: ["tga"] + }, + "image/x-xbitmap": { + source: "apache", + extensions: ["xbm"] + }, + "image/x-xcf": { + compressible: false + }, + "image/x-xpixmap": { + source: "apache", + extensions: ["xpm"] + }, + "image/x-xwindowdump": { + source: "apache", + extensions: ["xwd"] + }, + "message/cpim": { + source: "iana" + }, + "message/delivery-status": { + source: "iana" + }, + "message/disposition-notification": { + source: "iana", + extensions: [ + "disposition-notification" + ] + }, + "message/external-body": { + source: "iana" + }, + "message/feedback-report": { + source: "iana" + }, + "message/global": { + source: "iana", + extensions: ["u8msg"] + }, + "message/global-delivery-status": { + source: "iana", + extensions: ["u8dsn"] + }, + "message/global-disposition-notification": { + source: "iana", + extensions: ["u8mdn"] + }, + "message/global-headers": { + source: "iana", + extensions: ["u8hdr"] + }, + "message/http": { + source: "iana", + compressible: false + }, + "message/imdn+xml": { + source: "iana", + compressible: true + }, + "message/news": { + source: "iana" + }, + "message/partial": { + source: "iana", + compressible: false + }, + "message/rfc822": { + source: "iana", + compressible: true, + extensions: ["eml", "mime"] + }, + "message/s-http": { + source: "iana" + }, + "message/sip": { + source: "iana" + }, + "message/sipfrag": { + source: "iana" + }, + "message/tracking-status": { + source: "iana" + }, + "message/vnd.si.simp": { + source: "iana" + }, + "message/vnd.wfa.wsc": { + source: "iana", + extensions: ["wsc"] + }, + "model/3mf": { + source: "iana", + extensions: ["3mf"] + }, + "model/e57": { + source: "iana" + }, + "model/gltf+json": { + source: "iana", + compressible: true, + extensions: ["gltf"] + }, + "model/gltf-binary": { + source: "iana", + compressible: true, + extensions: ["glb"] + }, + "model/iges": { + source: "iana", + compressible: false, + extensions: ["igs", "iges"] + }, + "model/mesh": { + source: "iana", + compressible: false, + extensions: ["msh", "mesh", "silo"] + }, + "model/mtl": { + source: "iana", + extensions: ["mtl"] + }, + "model/obj": { + source: "iana", + extensions: ["obj"] + }, + "model/step": { + source: "iana" + }, + "model/step+xml": { + source: "iana", + compressible: true, + extensions: ["stpx"] + }, + "model/step+zip": { + source: "iana", + compressible: false, + extensions: ["stpz"] + }, + "model/step-xml+zip": { + source: "iana", + compressible: false, + extensions: ["stpxz"] + }, + "model/stl": { + source: "iana", + extensions: ["stl"] + }, + "model/vnd.collada+xml": { + source: "iana", + compressible: true, + extensions: ["dae"] + }, + "model/vnd.dwf": { + source: "iana", + extensions: ["dwf"] + }, + "model/vnd.flatland.3dml": { + source: "iana" + }, + "model/vnd.gdl": { + source: "iana", + extensions: ["gdl"] + }, + "model/vnd.gs-gdl": { + source: "apache" + }, + "model/vnd.gs.gdl": { + source: "iana" + }, + "model/vnd.gtw": { + source: "iana", + extensions: ["gtw"] + }, + "model/vnd.moml+xml": { + source: "iana", + compressible: true + }, + "model/vnd.mts": { + source: "iana", + extensions: ["mts"] + }, + "model/vnd.opengex": { + source: "iana", + extensions: ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + source: "iana", + extensions: ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + source: "iana", + extensions: ["x_t"] + }, + "model/vnd.pytha.pyox": { + source: "iana" + }, + "model/vnd.rosette.annotated-data-model": { + source: "iana" + }, + "model/vnd.sap.vds": { + source: "iana", + extensions: ["vds"] + }, + "model/vnd.usdz+zip": { + source: "iana", + compressible: false, + extensions: ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + source: "iana", + extensions: ["bsp"] + }, + "model/vnd.vtu": { + source: "iana", + extensions: ["vtu"] + }, + "model/vrml": { + source: "iana", + compressible: false, + extensions: ["wrl", "vrml"] + }, + "model/x3d+binary": { + source: "apache", + compressible: false, + extensions: ["x3db", "x3dbz"] + }, + "model/x3d+fastinfoset": { + source: "iana", + extensions: ["x3db"] + }, + "model/x3d+vrml": { + source: "apache", + compressible: false, + extensions: ["x3dv", "x3dvz"] + }, + "model/x3d+xml": { + source: "iana", + compressible: true, + extensions: ["x3d", "x3dz"] + }, + "model/x3d-vrml": { + source: "iana", + extensions: ["x3dv"] + }, + "multipart/alternative": { + source: "iana", + compressible: false + }, + "multipart/appledouble": { + source: "iana" + }, + "multipart/byteranges": { + source: "iana" + }, + "multipart/digest": { + source: "iana" + }, + "multipart/encrypted": { + source: "iana", + compressible: false + }, + "multipart/form-data": { + source: "iana", + compressible: false + }, + "multipart/header-set": { + source: "iana" + }, + "multipart/mixed": { + source: "iana" + }, + "multipart/multilingual": { + source: "iana" + }, + "multipart/parallel": { + source: "iana" + }, + "multipart/related": { + source: "iana", + compressible: false + }, + "multipart/report": { + source: "iana" + }, + "multipart/signed": { + source: "iana", + compressible: false + }, + "multipart/vnd.bint.med-plus": { + source: "iana" + }, + "multipart/voice-message": { + source: "iana" + }, + "multipart/x-mixed-replace": { + source: "iana" + }, + "text/1d-interleaved-parityfec": { + source: "iana" + }, + "text/cache-manifest": { + source: "iana", + compressible: true, + extensions: ["appcache", "manifest"] + }, + "text/calendar": { + source: "iana", + extensions: ["ics", "ifb"] + }, + "text/calender": { + compressible: true + }, + "text/cmd": { + compressible: true + }, + "text/coffeescript": { + extensions: ["coffee", "litcoffee"] + }, + "text/cql": { + source: "iana" + }, + "text/cql-expression": { + source: "iana" + }, + "text/cql-identifier": { + source: "iana" + }, + "text/css": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["css"] + }, + "text/csv": { + source: "iana", + compressible: true, + extensions: ["csv"] + }, + "text/csv-schema": { + source: "iana" + }, + "text/directory": { + source: "iana" + }, + "text/dns": { + source: "iana" + }, + "text/ecmascript": { + source: "iana" + }, + "text/encaprtp": { + source: "iana" + }, + "text/enriched": { + source: "iana" + }, + "text/fhirpath": { + source: "iana" + }, + "text/flexfec": { + source: "iana" + }, + "text/fwdred": { + source: "iana" + }, + "text/gff3": { + source: "iana" + }, + "text/grammar-ref-list": { + source: "iana" + }, + "text/html": { + source: "iana", + compressible: true, + extensions: ["html", "htm", "shtml"] + }, + "text/jade": { + extensions: ["jade"] + }, + "text/javascript": { + source: "iana", + compressible: true + }, + "text/jcr-cnd": { + source: "iana" + }, + "text/jsx": { + compressible: true, + extensions: ["jsx"] + }, + "text/less": { + compressible: true, + extensions: ["less"] + }, + "text/markdown": { + source: "iana", + compressible: true, + extensions: ["markdown", "md"] + }, + "text/mathml": { + source: "nginx", + extensions: ["mml"] + }, + "text/mdx": { + compressible: true, + extensions: ["mdx"] + }, + "text/mizar": { + source: "iana" + }, + "text/n3": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["n3"] + }, + "text/parameters": { + source: "iana", + charset: "UTF-8" + }, + "text/parityfec": { + source: "iana" + }, + "text/plain": { + source: "iana", + compressible: true, + extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"] + }, + "text/provenance-notation": { + source: "iana", + charset: "UTF-8" + }, + "text/prs.fallenstein.rst": { + source: "iana" + }, + "text/prs.lines.tag": { + source: "iana", + extensions: ["dsc"] + }, + "text/prs.prop.logic": { + source: "iana" + }, + "text/raptorfec": { + source: "iana" + }, + "text/red": { + source: "iana" + }, + "text/rfc822-headers": { + source: "iana" + }, + "text/richtext": { + source: "iana", + compressible: true, + extensions: ["rtx"] + }, + "text/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "text/rtp-enc-aescm128": { + source: "iana" + }, + "text/rtploopback": { + source: "iana" + }, + "text/rtx": { + source: "iana" + }, + "text/sgml": { + source: "iana", + extensions: ["sgml", "sgm"] + }, + "text/shaclc": { + source: "iana" + }, + "text/shex": { + source: "iana", + extensions: ["shex"] + }, + "text/slim": { + extensions: ["slim", "slm"] + }, + "text/spdx": { + source: "iana", + extensions: ["spdx"] + }, + "text/strings": { + source: "iana" + }, + "text/stylus": { + extensions: ["stylus", "styl"] + }, + "text/t140": { + source: "iana" + }, + "text/tab-separated-values": { + source: "iana", + compressible: true, + extensions: ["tsv"] + }, + "text/troff": { + source: "iana", + extensions: ["t", "tr", "roff", "man", "me", "ms"] + }, + "text/turtle": { + source: "iana", + charset: "UTF-8", + extensions: ["ttl"] + }, + "text/ulpfec": { + source: "iana" + }, + "text/uri-list": { + source: "iana", + compressible: true, + extensions: ["uri", "uris", "urls"] + }, + "text/vcard": { + source: "iana", + compressible: true, + extensions: ["vcard"] + }, + "text/vnd.a": { + source: "iana" + }, + "text/vnd.abc": { + source: "iana" + }, + "text/vnd.ascii-art": { + source: "iana" + }, + "text/vnd.curl": { + source: "iana", + extensions: ["curl"] + }, + "text/vnd.curl.dcurl": { + source: "apache", + extensions: ["dcurl"] + }, + "text/vnd.curl.mcurl": { + source: "apache", + extensions: ["mcurl"] + }, + "text/vnd.curl.scurl": { + source: "apache", + extensions: ["scurl"] + }, + "text/vnd.debian.copyright": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.dmclientscript": { + source: "iana" + }, + "text/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.familysearch.gedcom": { + source: "iana", + extensions: ["ged"] + }, + "text/vnd.ficlab.flt": { + source: "iana" + }, + "text/vnd.fly": { + source: "iana", + extensions: ["fly"] + }, + "text/vnd.fmi.flexstor": { + source: "iana", + extensions: ["flx"] + }, + "text/vnd.gml": { + source: "iana" + }, + "text/vnd.graphviz": { + source: "iana", + extensions: ["gv"] + }, + "text/vnd.hans": { + source: "iana" + }, + "text/vnd.hgl": { + source: "iana" + }, + "text/vnd.in3d.3dml": { + source: "iana", + extensions: ["3dml"] + }, + "text/vnd.in3d.spot": { + source: "iana", + extensions: ["spot"] + }, + "text/vnd.iptc.newsml": { + source: "iana" + }, + "text/vnd.iptc.nitf": { + source: "iana" + }, + "text/vnd.latex-z": { + source: "iana" + }, + "text/vnd.motorola.reflex": { + source: "iana" + }, + "text/vnd.ms-mediapackage": { + source: "iana" + }, + "text/vnd.net2phone.commcenter.command": { + source: "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + source: "iana" + }, + "text/vnd.senx.warpscript": { + source: "iana" + }, + "text/vnd.si.uricatalogue": { + source: "iana" + }, + "text/vnd.sosi": { + source: "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + source: "iana", + charset: "UTF-8", + extensions: ["jad"] + }, + "text/vnd.trolltech.linguist": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.wap.si": { + source: "iana" + }, + "text/vnd.wap.sl": { + source: "iana" + }, + "text/vnd.wap.wml": { + source: "iana", + extensions: ["wml"] + }, + "text/vnd.wap.wmlscript": { + source: "iana", + extensions: ["wmls"] + }, + "text/vtt": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["vtt"] + }, + "text/x-asm": { + source: "apache", + extensions: ["s", "asm"] + }, + "text/x-c": { + source: "apache", + extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"] + }, + "text/x-component": { + source: "nginx", + extensions: ["htc"] + }, + "text/x-fortran": { + source: "apache", + extensions: ["f", "for", "f77", "f90"] + }, + "text/x-gwt-rpc": { + compressible: true + }, + "text/x-handlebars-template": { + extensions: ["hbs"] + }, + "text/x-java-source": { + source: "apache", + extensions: ["java"] + }, + "text/x-jquery-tmpl": { + compressible: true + }, + "text/x-lua": { + extensions: ["lua"] + }, + "text/x-markdown": { + compressible: true, + extensions: ["mkd"] + }, + "text/x-nfo": { + source: "apache", + extensions: ["nfo"] + }, + "text/x-opml": { + source: "apache", + extensions: ["opml"] + }, + "text/x-org": { + compressible: true, + extensions: ["org"] + }, + "text/x-pascal": { + source: "apache", + extensions: ["p", "pas"] + }, + "text/x-processing": { + compressible: true, + extensions: ["pde"] + }, + "text/x-sass": { + extensions: ["sass"] + }, + "text/x-scss": { + extensions: ["scss"] + }, + "text/x-setext": { + source: "apache", + extensions: ["etx"] + }, + "text/x-sfv": { + source: "apache", + extensions: ["sfv"] + }, + "text/x-suse-ymp": { + compressible: true, + extensions: ["ymp"] + }, + "text/x-uuencode": { + source: "apache", + extensions: ["uu"] + }, + "text/x-vcalendar": { + source: "apache", + extensions: ["vcs"] + }, + "text/x-vcard": { + source: "apache", + extensions: ["vcf"] + }, + "text/xml": { + source: "iana", + compressible: true, + extensions: ["xml"] + }, + "text/xml-external-parsed-entity": { + source: "iana" + }, + "text/yaml": { + compressible: true, + extensions: ["yaml", "yml"] + }, + "video/1d-interleaved-parityfec": { + source: "iana" + }, + "video/3gpp": { + source: "iana", + extensions: ["3gp", "3gpp"] + }, + "video/3gpp-tt": { + source: "iana" + }, + "video/3gpp2": { + source: "iana", + extensions: ["3g2"] + }, + "video/av1": { + source: "iana" + }, + "video/bmpeg": { + source: "iana" + }, + "video/bt656": { + source: "iana" + }, + "video/celb": { + source: "iana" + }, + "video/dv": { + source: "iana" + }, + "video/encaprtp": { + source: "iana" + }, + "video/ffv1": { + source: "iana" + }, + "video/flexfec": { + source: "iana" + }, + "video/h261": { + source: "iana", + extensions: ["h261"] + }, + "video/h263": { + source: "iana", + extensions: ["h263"] + }, + "video/h263-1998": { + source: "iana" + }, + "video/h263-2000": { + source: "iana" + }, + "video/h264": { + source: "iana", + extensions: ["h264"] + }, + "video/h264-rcdo": { + source: "iana" + }, + "video/h264-svc": { + source: "iana" + }, + "video/h265": { + source: "iana" + }, + "video/iso.segment": { + source: "iana", + extensions: ["m4s"] + }, + "video/jpeg": { + source: "iana", + extensions: ["jpgv"] + }, + "video/jpeg2000": { + source: "iana" + }, + "video/jpm": { + source: "apache", + extensions: ["jpm", "jpgm"] + }, + "video/jxsv": { + source: "iana" + }, + "video/mj2": { + source: "iana", + extensions: ["mj2", "mjp2"] + }, + "video/mp1s": { + source: "iana" + }, + "video/mp2p": { + source: "iana" + }, + "video/mp2t": { + source: "iana", + extensions: ["ts"] + }, + "video/mp4": { + source: "iana", + compressible: false, + extensions: ["mp4", "mp4v", "mpg4"] + }, + "video/mp4v-es": { + source: "iana" + }, + "video/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] + }, + "video/mpeg4-generic": { + source: "iana" + }, + "video/mpv": { + source: "iana" + }, + "video/nv": { + source: "iana" + }, + "video/ogg": { + source: "iana", + compressible: false, + extensions: ["ogv"] + }, + "video/parityfec": { + source: "iana" + }, + "video/pointer": { + source: "iana" + }, + "video/quicktime": { + source: "iana", + compressible: false, + extensions: ["qt", "mov"] + }, + "video/raptorfec": { + source: "iana" + }, + "video/raw": { + source: "iana" + }, + "video/rtp-enc-aescm128": { + source: "iana" + }, + "video/rtploopback": { + source: "iana" + }, + "video/rtx": { + source: "iana" + }, + "video/scip": { + source: "iana" + }, + "video/smpte291": { + source: "iana" + }, + "video/smpte292m": { + source: "iana" + }, + "video/ulpfec": { + source: "iana" + }, + "video/vc1": { + source: "iana" + }, + "video/vc2": { + source: "iana" + }, + "video/vnd.cctv": { + source: "iana" + }, + "video/vnd.dece.hd": { + source: "iana", + extensions: ["uvh", "uvvh"] + }, + "video/vnd.dece.mobile": { + source: "iana", + extensions: ["uvm", "uvvm"] + }, + "video/vnd.dece.mp4": { + source: "iana" + }, + "video/vnd.dece.pd": { + source: "iana", + extensions: ["uvp", "uvvp"] + }, + "video/vnd.dece.sd": { + source: "iana", + extensions: ["uvs", "uvvs"] + }, + "video/vnd.dece.video": { + source: "iana", + extensions: ["uvv", "uvvv"] + }, + "video/vnd.directv.mpeg": { + source: "iana" + }, + "video/vnd.directv.mpeg-tts": { + source: "iana" + }, + "video/vnd.dlna.mpeg-tts": { + source: "iana" + }, + "video/vnd.dvb.file": { + source: "iana", + extensions: ["dvb"] + }, + "video/vnd.fvt": { + source: "iana", + extensions: ["fvt"] + }, + "video/vnd.hns.video": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.ttsavc": { + source: "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + source: "iana" + }, + "video/vnd.motorola.video": { + source: "iana" + }, + "video/vnd.motorola.videop": { + source: "iana" + }, + "video/vnd.mpegurl": { + source: "iana", + extensions: ["mxu", "m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + source: "iana", + extensions: ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + source: "iana" + }, + "video/vnd.nokia.mp4vr": { + source: "iana" + }, + "video/vnd.nokia.videovoip": { + source: "iana" + }, + "video/vnd.objectvideo": { + source: "iana" + }, + "video/vnd.radgamettools.bink": { + source: "iana" + }, + "video/vnd.radgamettools.smacker": { + source: "iana" + }, + "video/vnd.sealed.mpeg1": { + source: "iana" + }, + "video/vnd.sealed.mpeg4": { + source: "iana" + }, + "video/vnd.sealed.swf": { + source: "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + source: "iana" + }, + "video/vnd.uvvu.mp4": { + source: "iana", + extensions: ["uvu", "uvvu"] + }, + "video/vnd.vivo": { + source: "iana", + extensions: ["viv"] + }, + "video/vnd.youtube.yt": { + source: "iana" + }, + "video/vp8": { + source: "iana" + }, + "video/vp9": { + source: "iana" + }, + "video/webm": { + source: "apache", + compressible: false, + extensions: ["webm"] + }, + "video/x-f4v": { + source: "apache", + extensions: ["f4v"] + }, + "video/x-fli": { + source: "apache", + extensions: ["fli"] + }, + "video/x-flv": { + source: "apache", + compressible: false, + extensions: ["flv"] + }, + "video/x-m4v": { + source: "apache", + extensions: ["m4v"] + }, + "video/x-matroska": { + source: "apache", + compressible: false, + extensions: ["mkv", "mk3d", "mks"] + }, + "video/x-mng": { + source: "apache", + extensions: ["mng"] + }, + "video/x-ms-asf": { + source: "apache", + extensions: ["asf", "asx"] + }, + "video/x-ms-vob": { + source: "apache", + extensions: ["vob"] + }, + "video/x-ms-wm": { + source: "apache", + extensions: ["wm"] + }, + "video/x-ms-wmv": { + source: "apache", + compressible: false, + extensions: ["wmv"] + }, + "video/x-ms-wmx": { + source: "apache", + extensions: ["wmx"] + }, + "video/x-ms-wvx": { + source: "apache", + extensions: ["wvx"] + }, + "video/x-msvideo": { + source: "apache", + extensions: ["avi"] + }, + "video/x-sgi-movie": { + source: "apache", + extensions: ["movie"] + }, + "video/x-smv": { + source: "apache", + extensions: ["smv"] + }, + "x-conference/x-cooltalk": { + source: "apache", + extensions: ["ice"] + }, + "x-shader/x-fragment": { + compressible: true + }, + "x-shader/x-vertex": { + compressible: true + } + }; + } +}); + +// ../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js +var require_mime_db2 = __commonJS({ + "../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js"(exports, module) { + module.exports = require_db2(); + } +}); + +// ../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js +var require_mime_types2 = __commonJS({ + "../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js"(exports) { + "use strict"; + var db = require_mime_db2(); + var extname = __require("path").extname; + var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/; + var TEXT_TYPE_REGEXP = /^text\//i; + exports.charset = charset; + exports.charsets = { lookup: charset }; + exports.contentType = contentType; + exports.extension = extension; + exports.extensions = /* @__PURE__ */ Object.create(null); + exports.lookup = lookup; + exports.types = /* @__PURE__ */ Object.create(null); + populateMaps(exports.extensions, exports.types); + function charset(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var mime = match && db[match[1].toLowerCase()]; + if (mime && mime.charset) { + return mime.charset; + } + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return "UTF-8"; + } + return false; + } + __name(charset, "charset"); + function contentType(str) { + if (!str || typeof str !== "string") { + return false; + } + var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str; + if (!mime) { + return false; + } + if (mime.indexOf("charset") === -1) { + var charset2 = exports.charset(mime); + if (charset2) mime += "; charset=" + charset2.toLowerCase(); + } + return mime; + } + __name(contentType, "contentType"); + function extension(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var exts = match && exports.extensions[match[1].toLowerCase()]; + if (!exts || !exts.length) { + return false; + } + return exts[0]; + } + __name(extension, "extension"); + function lookup(path) { + if (!path || typeof path !== "string") { + return false; + } + var extension2 = extname("x." + path).toLowerCase().substr(1); + if (!extension2) { + return false; + } + return exports.types[extension2] || false; + } + __name(lookup, "lookup"); + function populateMaps(extensions, types) { + var preference = ["nginx", "apache", void 0, "iana"]; + Object.keys(db).forEach(/* @__PURE__ */ __name(function forEachMimeType(type) { + var mime = db[type]; + var exts = mime.extensions; + if (!exts || !exts.length) { + return; + } + extensions[type] = exts; + for (var i = 0; i < exts.length; i++) { + var extension2 = exts[i]; + if (types[extension2]) { + var from2 = preference.indexOf(db[types[extension2]].source); + var to = preference.indexOf(mime.source); + if (types[extension2] !== "application/octet-stream" && (from2 > to || from2 === to && types[extension2].substr(0, 12) === "application/")) { + continue; + } + } + types[extension2] = type; + } + }, "forEachMimeType")); + } + __name(populateMaps, "populateMaps"); + } +}); + +// ../../node_modules/.pnpm/type-is@1.6.18/node_modules/type-is/index.js +var require_type_is2 = __commonJS({ + "../../node_modules/.pnpm/type-is@1.6.18/node_modules/type-is/index.js"(exports, module) { + "use strict"; + var typer = require_media_typer2(); + var mime = require_mime_types2(); + module.exports = typeofrequest; + module.exports.is = typeis; + module.exports.hasBody = hasbody; + module.exports.normalize = normalize; + module.exports.match = mimeMatch; + function typeis(value, types_) { + var i; + var types = types_; + var val = tryNormalizeType(value); + if (!val) { + return false; + } + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1); + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + if (!types || !types.length) { + return val; + } + var type; + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === "+" || type.indexOf("*") !== -1 ? val : type; + } + } + return false; + } + __name(typeis, "typeis"); + function hasbody(req) { + return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]); + } + __name(hasbody, "hasbody"); + function typeofrequest(req, types_) { + var types = types_; + if (!hasbody(req)) { + return null; + } + if (arguments.length > 2) { + types = new Array(arguments.length - 1); + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + var value = req.headers["content-type"]; + return typeis(value, types); + } + __name(typeofrequest, "typeofrequest"); + function normalize(type) { + if (typeof type !== "string") { + return false; + } + switch (type) { + case "urlencoded": + return "application/x-www-form-urlencoded"; + case "multipart": + return "multipart/*"; + } + if (type[0] === "+") { + return "*/*" + type; + } + return type.indexOf("/") === -1 ? mime.lookup(type) : type; + } + __name(normalize, "normalize"); + function mimeMatch(expected, actual) { + if (expected === false) { + return false; + } + var actualParts = actual.split("/"); + var expectedParts = expected.split("/"); + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false; + } + if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) { + return false; + } + if (expectedParts[1].substr(0, 2) === "*+") { + return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length); + } + if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) { + return false; + } + return true; + } + __name(mimeMatch, "mimeMatch"); + function normalizeType(value) { + var type = typer.parse(value); + type.parameters = void 0; + return typer.format(type); + } + __name(normalizeType, "normalizeType"); + function tryNormalizeType(value) { + if (!value) { + return null; + } + try { + return normalizeType(value); + } catch (err) { + return null; + } + } + __name(tryNormalizeType, "tryNormalizeType"); + } +}); + +// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/utils.js +var require_utils4 = __commonJS({ + "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/utils.js"(exports, module) { + "use strict"; + function parseContentType(str) { + if (str.length === 0) + return; + const params = /* @__PURE__ */ Object.create(null); + let i = 0; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code !== 47 || i === 0) + return; + break; + } + } + if (i === str.length) + return; + const type = str.slice(0, i).toLowerCase(); + const subtypeStart = ++i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (i === subtypeStart) + return; + if (parseContentTypeParams(str, i, params) === void 0) + return; + break; + } + } + if (i === subtypeStart) + return; + const subtype = str.slice(subtypeStart, i).toLowerCase(); + return { type, subtype, params }; + } + __name(parseContentType, "parseContentType"); + function parseContentTypeParams(str, i, params) { + while (i < str.length) { + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + break; + if (str.charCodeAt(i++) !== 59) + return; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + return; + let name; + const nameStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code !== 61) + return; + break; + } + } + if (i === str.length) + return; + name = str.slice(nameStart, i); + ++i; + if (i === str.length) + return; + let value = ""; + let valueStart; + if (str.charCodeAt(i) === 34) { + valueStart = ++i; + let escaping = false; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 92) { + if (escaping) { + valueStart = i; + escaping = false; + } else { + value += str.slice(valueStart, i); + escaping = true; + } + continue; + } + if (code === 34) { + if (escaping) { + valueStart = i; + escaping = false; + continue; + } + value += str.slice(valueStart, i); + break; + } + if (escaping) { + valueStart = i - 1; + escaping = false; + } + if (QDTEXT[code] !== 1) + return; + } + if (i === str.length) + return; + ++i; + } else { + valueStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (i === valueStart) + return; + break; + } + } + value = str.slice(valueStart, i); + } + name = name.toLowerCase(); + if (params[name] === void 0) + params[name] = value; + } + return params; + } + __name(parseContentTypeParams, "parseContentTypeParams"); + function parseDisposition(str, defDecoder) { + if (str.length === 0) + return; + const params = /* @__PURE__ */ Object.create(null); + let i = 0; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (parseDispositionParams(str, i, params, defDecoder) === void 0) + return; + break; + } + } + const type = str.slice(0, i).toLowerCase(); + return { type, params }; + } + __name(parseDisposition, "parseDisposition"); + function parseDispositionParams(str, i, params, defDecoder) { + while (i < str.length) { + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + break; + if (str.charCodeAt(i++) !== 59) + return; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + return; + let name; + const nameStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code === 61) + break; + return; + } + } + if (i === str.length) + return; + let value = ""; + let valueStart; + let charset; + name = str.slice(nameStart, i); + if (name.charCodeAt(name.length - 1) === 42) { + const charsetStart = ++i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (CHARSET[code] !== 1) { + if (code !== 39) + return; + break; + } + } + if (i === str.length) + return; + charset = str.slice(charsetStart, i); + ++i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 39) + break; + } + if (i === str.length) + return; + ++i; + if (i === str.length) + return; + valueStart = i; + let encode = 0; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (EXTENDED_VALUE[code] !== 1) { + if (code === 37) { + let hexUpper; + let hexLower; + if (i + 2 < str.length && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1 && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) { + const byteVal = (hexUpper << 4) + hexLower; + value += str.slice(valueStart, i); + value += String.fromCharCode(byteVal); + i += 2; + valueStart = i + 1; + if (byteVal >= 128) + encode = 2; + else if (encode === 0) + encode = 1; + continue; + } + return; + } + break; + } + } + value += str.slice(valueStart, i); + value = convertToUTF8(value, charset, encode); + if (value === void 0) + return; + } else { + ++i; + if (i === str.length) + return; + if (str.charCodeAt(i) === 34) { + valueStart = ++i; + let escaping = false; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 92) { + if (escaping) { + valueStart = i; + escaping = false; + } else { + value += str.slice(valueStart, i); + escaping = true; + } + continue; + } + if (code === 34) { + if (escaping) { + valueStart = i; + escaping = false; + continue; + } + value += str.slice(valueStart, i); + break; + } + if (escaping) { + valueStart = i - 1; + escaping = false; + } + if (QDTEXT[code] !== 1) + return; + } + if (i === str.length) + return; + ++i; + } else { + valueStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (i === valueStart) + return; + break; + } + } + value = str.slice(valueStart, i); + } + value = defDecoder(value, 2); + if (value === void 0) + return; + } + name = name.toLowerCase(); + if (params[name] === void 0) + params[name] = value; + } + return params; + } + __name(parseDispositionParams, "parseDispositionParams"); + function getDecoder(charset) { + let lc; + while (true) { + switch (charset) { + case "utf-8": + case "utf8": + return decoders.utf8; + case "latin1": + case "ascii": + // TODO: Make these a separate, strict decoder? + case "us-ascii": + case "iso-8859-1": + case "iso8859-1": + case "iso88591": + case "iso_8859-1": + case "windows-1252": + case "iso_8859-1:1987": + case "cp1252": + case "x-cp1252": + return decoders.latin1; + case "utf16le": + case "utf-16le": + case "ucs2": + case "ucs-2": + return decoders.utf16le; + case "base64": + return decoders.base64; + default: + if (lc === void 0) { + lc = true; + charset = charset.toLowerCase(); + continue; + } + return decoders.other.bind(charset); + } + } + } + __name(getDecoder, "getDecoder"); + var decoders = { + utf8: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") { + if (hint < 2) + return data; + data = Buffer.from(data, "latin1"); + } + return data.utf8Slice(0, data.length); + }, "utf8"), + latin1: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + return data; + return data.latin1Slice(0, data.length); + }, "latin1"), + utf16le: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + data = Buffer.from(data, "latin1"); + return data.ucs2Slice(0, data.length); + }, "utf16le"), + base64: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + data = Buffer.from(data, "latin1"); + return data.base64Slice(0, data.length); + }, "base64"), + other: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + data = Buffer.from(data, "latin1"); + try { + const decoder = new TextDecoder(exports); + return decoder.decode(data); + } catch { + } + }, "other") + }; + function convertToUTF8(data, charset, hint) { + const decode = getDecoder(charset); + if (decode) + return decode(data, hint); + } + __name(convertToUTF8, "convertToUTF8"); + function basename(path) { + if (typeof path !== "string") + return ""; + for (let i = path.length - 1; i >= 0; --i) { + switch (path.charCodeAt(i)) { + case 47: + // '/' + case 92: + path = path.slice(i + 1); + return path === ".." || path === "." ? "" : path; + } + } + return path === ".." || path === "." ? "" : path; + } + __name(basename, "basename"); + var TOKEN = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var QDTEXT = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ]; + var CHARSET = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var EXTENDED_VALUE = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var HEX_VALUES = [ + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1 + ]; + module.exports = { + basename, + convertToUTF8, + getDecoder, + parseContentType, + parseDisposition + }; + } +}); + +// ../../node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js +var require_sbmh = __commonJS({ + "../../node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js"(exports, module) { + "use strict"; + function memcmp(buf1, pos1, buf2, pos2, num) { + for (let i = 0; i < num; ++i) { + if (buf1[pos1 + i] !== buf2[pos2 + i]) + return false; + } + return true; + } + __name(memcmp, "memcmp"); + var SBMH = class { + static { + __name(this, "SBMH"); + } + constructor(needle, cb) { + if (typeof cb !== "function") + throw new Error("Missing match callback"); + if (typeof needle === "string") + needle = Buffer.from(needle); + else if (!Buffer.isBuffer(needle)) + throw new Error(`Expected Buffer for needle, got ${typeof needle}`); + const needleLen = needle.length; + this.maxMatches = Infinity; + this.matches = 0; + this._cb = cb; + this._lookbehindSize = 0; + this._needle = needle; + this._bufPos = 0; + this._lookbehind = Buffer.allocUnsafe(needleLen); + this._occ = [ + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen + ]; + if (needleLen > 1) { + for (let i = 0; i < needleLen - 1; ++i) + this._occ[needle[i]] = needleLen - 1 - i; + } + } + reset() { + this.matches = 0; + this._lookbehindSize = 0; + this._bufPos = 0; + } + push(chunk, pos) { + let result; + if (!Buffer.isBuffer(chunk)) + chunk = Buffer.from(chunk, "latin1"); + const chunkLen = chunk.length; + this._bufPos = pos || 0; + while (result !== chunkLen && this.matches < this.maxMatches) + result = feed(this, chunk); + return result; + } + destroy() { + const lbSize = this._lookbehindSize; + if (lbSize) + this._cb(false, this._lookbehind, 0, lbSize, false); + this.reset(); + } + }; + function feed(self, data) { + const len = data.length; + const needle = self._needle; + const needleLen = needle.length; + let pos = -self._lookbehindSize; + const lastNeedleCharPos = needleLen - 1; + const lastNeedleChar = needle[lastNeedleCharPos]; + const end = len - needleLen; + const occ = self._occ; + const lookbehind = self._lookbehind; + if (pos < 0) { + while (pos < 0 && pos <= end) { + const nextPos = pos + lastNeedleCharPos; + const ch = nextPos < 0 ? lookbehind[self._lookbehindSize + nextPos] : data[nextPos]; + if (ch === lastNeedleChar && matchNeedle(self, data, pos, lastNeedleCharPos)) { + self._lookbehindSize = 0; + ++self.matches; + if (pos > -self._lookbehindSize) + self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false); + else + self._cb(true, void 0, 0, 0, true); + return self._bufPos = pos + needleLen; + } + pos += occ[ch]; + } + while (pos < 0 && !matchNeedle(self, data, pos, len - pos)) + ++pos; + if (pos < 0) { + const bytesToCutOff = self._lookbehindSize + pos; + if (bytesToCutOff > 0) { + self._cb(false, lookbehind, 0, bytesToCutOff, false); + } + self._lookbehindSize -= bytesToCutOff; + lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize); + lookbehind.set(data, self._lookbehindSize); + self._lookbehindSize += len; + self._bufPos = len; + return len; + } + self._cb(false, lookbehind, 0, self._lookbehindSize, false); + self._lookbehindSize = 0; + } + pos += self._bufPos; + const firstNeedleChar = needle[0]; + while (pos <= end) { + const ch = data[pos + lastNeedleCharPos]; + if (ch === lastNeedleChar && data[pos] === firstNeedleChar && memcmp(needle, 0, data, pos, lastNeedleCharPos)) { + ++self.matches; + if (pos > 0) + self._cb(true, data, self._bufPos, pos, true); + else + self._cb(true, void 0, 0, 0, true); + return self._bufPos = pos + needleLen; + } + pos += occ[ch]; + } + while (pos < len) { + if (data[pos] !== firstNeedleChar || !memcmp(data, pos, needle, 0, len - pos)) { + ++pos; + continue; + } + data.copy(lookbehind, 0, pos, len); + self._lookbehindSize = len - pos; + break; + } + if (pos > 0) + self._cb(false, data, self._bufPos, pos < len ? pos : len, true); + self._bufPos = len; + return len; + } + __name(feed, "feed"); + function matchNeedle(self, data, pos, len) { + const lb = self._lookbehind; + const lbSize = self._lookbehindSize; + const needle = self._needle; + for (let i = 0; i < len; ++i, ++pos) { + const ch = pos < 0 ? lb[lbSize + pos] : data[pos]; + if (ch !== needle[i]) + return false; + } + return true; + } + __name(matchNeedle, "matchNeedle"); + module.exports = SBMH; + } +}); + +// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js +var require_multipart = __commonJS({ + "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js"(exports, module) { + "use strict"; + var { Readable, Writable } = __require("stream"); + var StreamSearch = require_sbmh(); + var { + basename, + convertToUTF8, + getDecoder, + parseContentType, + parseDisposition + } = require_utils4(); + var BUF_CRLF = Buffer.from("\r\n"); + var BUF_CR = Buffer.from("\r"); + var BUF_DASH = Buffer.from("-"); + function noop5() { + } + __name(noop5, "noop"); + var MAX_HEADER_PAIRS = 2e3; + var MAX_HEADER_SIZE = 16 * 1024; + var HPARSER_NAME = 0; + var HPARSER_PRE_OWS = 1; + var HPARSER_VALUE = 2; + var HeaderParser = class { + static { + __name(this, "HeaderParser"); + } + constructor(cb) { + this.header = /* @__PURE__ */ Object.create(null); + this.pairCount = 0; + this.byteCount = 0; + this.state = HPARSER_NAME; + this.name = ""; + this.value = ""; + this.crlf = 0; + this.cb = cb; + } + reset() { + this.header = /* @__PURE__ */ Object.create(null); + this.pairCount = 0; + this.byteCount = 0; + this.state = HPARSER_NAME; + this.name = ""; + this.value = ""; + this.crlf = 0; + } + push(chunk, pos, end) { + let start = pos; + while (pos < end) { + switch (this.state) { + case HPARSER_NAME: { + let done = false; + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (TOKEN[code] !== 1) { + if (code !== 58) + return -1; + this.name += chunk.latin1Slice(start, pos); + if (this.name.length === 0) + return -1; + ++pos; + done = true; + this.state = HPARSER_PRE_OWS; + break; + } + } + if (!done) { + this.name += chunk.latin1Slice(start, pos); + break; + } + } + case HPARSER_PRE_OWS: { + let done = false; + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (code !== 32 && code !== 9) { + start = pos; + done = true; + this.state = HPARSER_VALUE; + break; + } + } + if (!done) + break; + } + case HPARSER_VALUE: + switch (this.crlf) { + case 0: + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (FIELD_VCHAR[code] !== 1) { + if (code !== 13) + return -1; + ++this.crlf; + break; + } + } + this.value += chunk.latin1Slice(start, pos++); + break; + case 1: + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + if (chunk[pos++] !== 10) + return -1; + ++this.crlf; + break; + case 2: { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (code === 32 || code === 9) { + start = pos; + this.crlf = 0; + } else { + if (++this.pairCount < MAX_HEADER_PAIRS) { + this.name = this.name.toLowerCase(); + if (this.header[this.name] === void 0) + this.header[this.name] = [this.value]; + else + this.header[this.name].push(this.value); + } + if (code === 13) { + ++this.crlf; + ++pos; + } else { + start = pos; + this.crlf = 0; + this.state = HPARSER_NAME; + this.name = ""; + this.value = ""; + } + } + break; + } + case 3: { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + if (chunk[pos++] !== 10) + return -1; + const header = this.header; + this.reset(); + this.cb(header); + return pos; + } + } + break; + } + } + return pos; + } + }; + var FileStream = class extends Readable { + static { + __name(this, "FileStream"); + } + constructor(opts, owner) { + super(opts); + this.truncated = false; + this._readcb = null; + this.once("end", () => { + this._read(); + if (--owner._fileEndsLeft === 0 && owner._finalcb) { + const cb = owner._finalcb; + owner._finalcb = null; + process.nextTick(cb); + } + }); + } + _read(n) { + const cb = this._readcb; + if (cb) { + this._readcb = null; + cb(); + } + } + }; + var ignoreData = { + push: /* @__PURE__ */ __name((chunk, pos) => { + }, "push"), + destroy: /* @__PURE__ */ __name(() => { + }, "destroy") + }; + function callAndUnsetCb(self, err) { + const cb = self._writecb; + self._writecb = null; + if (err) + self.destroy(err); + else if (cb) + cb(); + } + __name(callAndUnsetCb, "callAndUnsetCb"); + function nullDecoder(val, hint) { + return val; + } + __name(nullDecoder, "nullDecoder"); + var Multipart = class extends Writable { + static { + __name(this, "Multipart"); + } + constructor(cfg) { + const streamOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0 + }; + super(streamOpts); + if (!cfg.conType.params || typeof cfg.conType.params.boundary !== "string") + throw new Error("Multipart: Boundary not found"); + const boundary = cfg.conType.params.boundary; + const paramDecoder = typeof cfg.defParamCharset === "string" && cfg.defParamCharset ? getDecoder(cfg.defParamCharset) : nullDecoder; + const defCharset = cfg.defCharset || "utf8"; + const preservePath = cfg.preservePath; + const fileOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: typeof cfg.fileHwm === "number" ? cfg.fileHwm : void 0 + }; + const limits = cfg.limits; + const fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024; + const fileSizeLimit = limits && typeof limits.fileSize === "number" ? limits.fileSize : Infinity; + const filesLimit = limits && typeof limits.files === "number" ? limits.files : Infinity; + const fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity; + const partsLimit = limits && typeof limits.parts === "number" ? limits.parts : Infinity; + let parts = -1; + let fields = 0; + let files = 0; + let skipPart = false; + this._fileEndsLeft = 0; + this._fileStream = void 0; + this._complete = false; + let fileSize = 0; + let field; + let fieldSize = 0; + let partCharset; + let partEncoding; + let partType; + let partName; + let partTruncated = false; + let hitFilesLimit = false; + let hitFieldsLimit = false; + this._hparser = null; + const hparser = new HeaderParser((header) => { + this._hparser = null; + skipPart = false; + partType = "text/plain"; + partCharset = defCharset; + partEncoding = "7bit"; + partName = void 0; + partTruncated = false; + let filename; + if (!header["content-disposition"]) { + skipPart = true; + return; + } + const disp = parseDisposition( + header["content-disposition"][0], + paramDecoder + ); + if (!disp || disp.type !== "form-data") { + skipPart = true; + return; + } + if (disp.params) { + if (disp.params.name) + partName = disp.params.name; + if (disp.params["filename*"]) + filename = disp.params["filename*"]; + else if (disp.params.filename) + filename = disp.params.filename; + if (filename !== void 0 && !preservePath) + filename = basename(filename); + } + if (header["content-type"]) { + const conType = parseContentType(header["content-type"][0]); + if (conType) { + partType = `${conType.type}/${conType.subtype}`; + if (conType.params && typeof conType.params.charset === "string") + partCharset = conType.params.charset.toLowerCase(); + } + } + if (header["content-transfer-encoding"]) + partEncoding = header["content-transfer-encoding"][0].toLowerCase(); + if (partType === "application/octet-stream" || filename !== void 0) { + if (files === filesLimit) { + if (!hitFilesLimit) { + hitFilesLimit = true; + this.emit("filesLimit"); + } + skipPart = true; + return; + } + ++files; + if (this.listenerCount("file") === 0) { + skipPart = true; + return; + } + fileSize = 0; + this._fileStream = new FileStream(fileOpts, this); + ++this._fileEndsLeft; + this.emit( + "file", + partName, + this._fileStream, + { + filename, + encoding: partEncoding, + mimeType: partType + } + ); + } else { + if (fields === fieldsLimit) { + if (!hitFieldsLimit) { + hitFieldsLimit = true; + this.emit("fieldsLimit"); + } + skipPart = true; + return; + } + ++fields; + if (this.listenerCount("field") === 0) { + skipPart = true; + return; + } + field = []; + fieldSize = 0; + } + }); + let matchPostBoundary = 0; + const ssCb = /* @__PURE__ */ __name((isMatch, data, start, end, isDataSafe) => { + retrydata: + while (data) { + if (this._hparser !== null) { + const ret = this._hparser.push(data, start, end); + if (ret === -1) { + this._hparser = null; + hparser.reset(); + this.emit("error", new Error("Malformed part header")); + break; + } + start = ret; + } + if (start === end) + break; + if (matchPostBoundary !== 0) { + if (matchPostBoundary === 1) { + switch (data[start]) { + case 45: + matchPostBoundary = 2; + ++start; + break; + case 13: + matchPostBoundary = 3; + ++start; + break; + default: + matchPostBoundary = 0; + } + if (start === end) + return; + } + if (matchPostBoundary === 2) { + matchPostBoundary = 0; + if (data[start] === 45) { + this._complete = true; + this._bparser = ignoreData; + return; + } + const writecb = this._writecb; + this._writecb = noop5; + ssCb(false, BUF_DASH, 0, 1, false); + this._writecb = writecb; + } else if (matchPostBoundary === 3) { + matchPostBoundary = 0; + if (data[start] === 10) { + ++start; + if (parts >= partsLimit) + break; + this._hparser = hparser; + if (start === end) + break; + continue retrydata; + } else { + const writecb = this._writecb; + this._writecb = noop5; + ssCb(false, BUF_CR, 0, 1, false); + this._writecb = writecb; + } + } + } + if (!skipPart) { + if (this._fileStream) { + let chunk; + const actualLen = Math.min(end - start, fileSizeLimit - fileSize); + if (!isDataSafe) { + chunk = Buffer.allocUnsafe(actualLen); + data.copy(chunk, 0, start, start + actualLen); + } else { + chunk = data.slice(start, start + actualLen); + } + fileSize += chunk.length; + if (fileSize === fileSizeLimit) { + if (chunk.length > 0) + this._fileStream.push(chunk); + this._fileStream.emit("limit"); + this._fileStream.truncated = true; + skipPart = true; + } else if (!this._fileStream.push(chunk)) { + if (this._writecb) + this._fileStream._readcb = this._writecb; + this._writecb = null; + } + } else if (field !== void 0) { + let chunk; + const actualLen = Math.min( + end - start, + fieldSizeLimit - fieldSize + ); + if (!isDataSafe) { + chunk = Buffer.allocUnsafe(actualLen); + data.copy(chunk, 0, start, start + actualLen); + } else { + chunk = data.slice(start, start + actualLen); + } + fieldSize += actualLen; + field.push(chunk); + if (fieldSize === fieldSizeLimit) { + skipPart = true; + partTruncated = true; + } + } + } + break; + } + if (isMatch) { + matchPostBoundary = 1; + if (this._fileStream) { + this._fileStream.push(null); + this._fileStream = null; + } else if (field !== void 0) { + let data2; + switch (field.length) { + case 0: + data2 = ""; + break; + case 1: + data2 = convertToUTF8(field[0], partCharset, 0); + break; + default: + data2 = convertToUTF8( + Buffer.concat(field, fieldSize), + partCharset, + 0 + ); + } + field = void 0; + fieldSize = 0; + this.emit( + "field", + partName, + data2, + { + nameTruncated: false, + valueTruncated: partTruncated, + encoding: partEncoding, + mimeType: partType + } + ); + } + if (++parts === partsLimit) + this.emit("partsLimit"); + } + }, "ssCb"); + this._bparser = new StreamSearch(`\r +--${boundary}`, ssCb); + this._writecb = null; + this._finalcb = null; + this.write(BUF_CRLF); + } + static detect(conType) { + return conType.type === "multipart" && conType.subtype === "form-data"; + } + _write(chunk, enc, cb) { + this._writecb = cb; + this._bparser.push(chunk, 0); + if (this._writecb) + callAndUnsetCb(this); + } + _destroy(err, cb) { + this._hparser = null; + this._bparser = ignoreData; + if (!err) + err = checkEndState(this); + const fileStream = this._fileStream; + if (fileStream) { + this._fileStream = null; + fileStream.destroy(err); + } + cb(err); + } + _final(cb) { + this._bparser.destroy(); + if (!this._complete) + return cb(new Error("Unexpected end of form")); + if (this._fileEndsLeft) + this._finalcb = finalcb.bind(null, this, cb); + else + finalcb(this, cb); + } + }; + function finalcb(self, cb, err) { + if (err) + return cb(err); + err = checkEndState(self); + cb(err); + } + __name(finalcb, "finalcb"); + function checkEndState(self) { + if (self._hparser) + return new Error("Malformed part header"); + const fileStream = self._fileStream; + if (fileStream) { + self._fileStream = null; + fileStream.destroy(new Error("Unexpected end of file")); + } + if (!self._complete) + return new Error("Unexpected end of form"); + } + __name(checkEndState, "checkEndState"); + var TOKEN = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var FIELD_VCHAR = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ]; + module.exports = Multipart; + } +}); + +// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/urlencoded.js +var require_urlencoded2 = __commonJS({ + "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/urlencoded.js"(exports, module) { + "use strict"; + var { Writable } = __require("stream"); + var { getDecoder } = require_utils4(); + var URLEncoded = class extends Writable { + static { + __name(this, "URLEncoded"); + } + constructor(cfg) { + const streamOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0 + }; + super(streamOpts); + let charset = cfg.defCharset || "utf8"; + if (cfg.conType.params && typeof cfg.conType.params.charset === "string") + charset = cfg.conType.params.charset; + this.charset = charset; + const limits = cfg.limits; + this.fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024; + this.fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity; + this.fieldNameSizeLimit = limits && typeof limits.fieldNameSize === "number" ? limits.fieldNameSize : 100; + this._inKey = true; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + this._fields = 0; + this._key = ""; + this._val = ""; + this._byte = -2; + this._lastPos = 0; + this._encode = 0; + this._decoder = getDecoder(charset); + } + static detect(conType) { + return conType.type === "application" && conType.subtype === "x-www-form-urlencoded"; + } + _write(chunk, enc, cb) { + if (this._fields >= this.fieldsLimit) + return cb(); + let i = 0; + const len = chunk.length; + this._lastPos = 0; + if (this._byte !== -2) { + i = readPctEnc(this, chunk, i, len); + if (i === -1) + return cb(new Error("Malformed urlencoded form")); + if (i >= len) + return cb(); + if (this._inKey) + ++this._bytesKey; + else + ++this._bytesVal; + } + main: + while (i < len) { + if (this._inKey) { + i = skipKeyBytes(this, chunk, i, len); + while (i < len) { + switch (chunk[i]) { + case 61: + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._key = this._decoder(this._key, this._encode); + this._encode = 0; + this._inKey = false; + continue main; + case 38: + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._key = this._decoder(this._key, this._encode); + this._encode = 0; + if (this._bytesKey > 0) { + this.emit( + "field", + this._key, + "", + { + nameTruncated: this._keyTrunc, + valueTruncated: false, + encoding: this.charset, + mimeType: "text/plain" + } + ); + } + this._key = ""; + this._val = ""; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + if (++this._fields >= this.fieldsLimit) { + this.emit("fieldsLimit"); + return cb(); + } + continue; + case 43: + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._key += " "; + this._lastPos = i + 1; + break; + case 37: + if (this._encode === 0) + this._encode = 1; + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = i + 1; + this._byte = -1; + i = readPctEnc(this, chunk, i + 1, len); + if (i === -1) + return cb(new Error("Malformed urlencoded form")); + if (i >= len) + return cb(); + ++this._bytesKey; + i = skipKeyBytes(this, chunk, i, len); + continue; + } + ++i; + ++this._bytesKey; + i = skipKeyBytes(this, chunk, i, len); + } + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + } else { + i = skipValBytes(this, chunk, i, len); + while (i < len) { + switch (chunk[i]) { + case 38: + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._inKey = true; + this._val = this._decoder(this._val, this._encode); + this._encode = 0; + if (this._bytesKey > 0 || this._bytesVal > 0) { + this.emit( + "field", + this._key, + this._val, + { + nameTruncated: this._keyTrunc, + valueTruncated: this._valTrunc, + encoding: this.charset, + mimeType: "text/plain" + } + ); + } + this._key = ""; + this._val = ""; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + if (++this._fields >= this.fieldsLimit) { + this.emit("fieldsLimit"); + return cb(); + } + continue main; + case 43: + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._val += " "; + this._lastPos = i + 1; + break; + case 37: + if (this._encode === 0) + this._encode = 1; + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._lastPos = i + 1; + this._byte = -1; + i = readPctEnc(this, chunk, i + 1, len); + if (i === -1) + return cb(new Error("Malformed urlencoded form")); + if (i >= len) + return cb(); + ++this._bytesVal; + i = skipValBytes(this, chunk, i, len); + continue; + } + ++i; + ++this._bytesVal; + i = skipValBytes(this, chunk, i, len); + } + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + } + } + cb(); + } + _final(cb) { + if (this._byte !== -2) + return cb(new Error("Malformed urlencoded form")); + if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) { + if (this._inKey) + this._key = this._decoder(this._key, this._encode); + else + this._val = this._decoder(this._val, this._encode); + this.emit( + "field", + this._key, + this._val, + { + nameTruncated: this._keyTrunc, + valueTruncated: this._valTrunc, + encoding: this.charset, + mimeType: "text/plain" + } + ); + } + cb(); + } + }; + function readPctEnc(self, chunk, pos, len) { + if (pos >= len) + return len; + if (self._byte === -1) { + const hexUpper = HEX_VALUES[chunk[pos++]]; + if (hexUpper === -1) + return -1; + if (hexUpper >= 8) + self._encode = 2; + if (pos < len) { + const hexLower = HEX_VALUES[chunk[pos++]]; + if (hexLower === -1) + return -1; + if (self._inKey) + self._key += String.fromCharCode((hexUpper << 4) + hexLower); + else + self._val += String.fromCharCode((hexUpper << 4) + hexLower); + self._byte = -2; + self._lastPos = pos; + } else { + self._byte = hexUpper; + } + } else { + const hexLower = HEX_VALUES[chunk[pos++]]; + if (hexLower === -1) + return -1; + if (self._inKey) + self._key += String.fromCharCode((self._byte << 4) + hexLower); + else + self._val += String.fromCharCode((self._byte << 4) + hexLower); + self._byte = -2; + self._lastPos = pos; + } + return pos; + } + __name(readPctEnc, "readPctEnc"); + function skipKeyBytes(self, chunk, pos, len) { + if (self._bytesKey > self.fieldNameSizeLimit) { + if (!self._keyTrunc) { + if (self._lastPos < pos) + self._key += chunk.latin1Slice(self._lastPos, pos - 1); + } + self._keyTrunc = true; + for (; pos < len; ++pos) { + const code = chunk[pos]; + if (code === 61 || code === 38) + break; + ++self._bytesKey; + } + self._lastPos = pos; + } + return pos; + } + __name(skipKeyBytes, "skipKeyBytes"); + function skipValBytes(self, chunk, pos, len) { + if (self._bytesVal > self.fieldSizeLimit) { + if (!self._valTrunc) { + if (self._lastPos < pos) + self._val += chunk.latin1Slice(self._lastPos, pos - 1); + } + self._valTrunc = true; + for (; pos < len; ++pos) { + if (chunk[pos] === 38) + break; + ++self._bytesVal; + } + self._lastPos = pos; + } + return pos; + } + __name(skipValBytes, "skipValBytes"); + var HEX_VALUES = [ + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1 + ]; + module.exports = URLEncoded; + } +}); + +// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/index.js +var require_lib5 = __commonJS({ + "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/index.js"(exports, module) { + "use strict"; + var { parseContentType } = require_utils4(); + function getInstance(cfg) { + const headers = cfg.headers; + const conType = parseContentType(headers["content-type"]); + if (!conType) + throw new Error("Malformed content type"); + for (const type of TYPES) { + const matched = type.detect(conType); + if (!matched) + continue; + const instanceCfg = { + limits: cfg.limits, + headers, + conType, + highWaterMark: void 0, + fileHwm: void 0, + defCharset: void 0, + defParamCharset: void 0, + preservePath: false + }; + if (cfg.highWaterMark) + instanceCfg.highWaterMark = cfg.highWaterMark; + if (cfg.fileHwm) + instanceCfg.fileHwm = cfg.fileHwm; + instanceCfg.defCharset = cfg.defCharset; + instanceCfg.defParamCharset = cfg.defParamCharset; + instanceCfg.preservePath = cfg.preservePath; + return new type(instanceCfg); + } + throw new Error(`Unsupported content type: ${headers["content-type"]}`); + } + __name(getInstance, "getInstance"); + var TYPES = [ + require_multipart(), + require_urlencoded2() + ].filter(function(typemod) { + return typeof typemod.detect === "function"; + }); + module.exports = (cfg) => { + if (typeof cfg !== "object" || cfg === null) + cfg = {}; + if (typeof cfg.headers !== "object" || cfg.headers === null || typeof cfg.headers["content-type"] !== "string") { + throw new Error("Missing Content-Type"); + } + return getInstance(cfg); + }; + } +}); + +// ../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/parse-path.js +var require_parse_path = __commonJS({ + "../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/parse-path.js"(exports, module) { + var reFirstKey = /^[^\[]*/; + var reDigitPath = /^\[(\d+)\]/; + var reNormalPath = /^\[([^\]]+)\]/; + function parsePath(key) { + function failure() { + return [{ type: "object", key, last: true }]; + } + __name(failure, "failure"); + var firstKey = reFirstKey.exec(key)[0]; + if (!firstKey) return failure(); + var len = key.length; + var pos = firstKey.length; + var tail = { type: "object", key: firstKey }; + var steps = [tail]; + while (pos < len) { + var m; + if (key[pos] === "[" && key[pos + 1] === "]") { + pos += 2; + tail.append = true; + if (pos !== len) return failure(); + continue; + } + m = reDigitPath.exec(key.substring(pos)); + if (m !== null) { + pos += m[0].length; + tail.nextType = "array"; + tail = { type: "array", key: parseInt(m[1], 10) }; + steps.push(tail); + continue; + } + m = reNormalPath.exec(key.substring(pos)); + if (m !== null) { + pos += m[0].length; + tail.nextType = "object"; + tail = { type: "object", key: m[1] }; + steps.push(tail); + continue; + } + return failure(); + } + tail.last = true; + return steps; + } + __name(parsePath, "parsePath"); + module.exports = parsePath; + } +}); + +// ../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/set-value.js +var require_set_value = __commonJS({ + "../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/set-value.js"(exports, module) { + function valueType(value) { + if (value === void 0) return "undefined"; + if (Array.isArray(value)) return "array"; + if (typeof value === "object") return "object"; + return "scalar"; + } + __name(valueType, "valueType"); + function setLastValue(context, step, currentValue, entryValue) { + switch (valueType(currentValue)) { + case "undefined": + if (step.append) { + context[step.key] = [entryValue]; + } else { + context[step.key] = entryValue; + } + break; + case "array": + context[step.key].push(entryValue); + break; + case "object": + return setLastValue(currentValue, { type: "object", key: "", last: true }, currentValue[""], entryValue); + case "scalar": + context[step.key] = [context[step.key], entryValue]; + break; + } + return context; + } + __name(setLastValue, "setLastValue"); + function setValue(context, step, currentValue, entryValue) { + if (step.last) return setLastValue(context, step, currentValue, entryValue); + var obj; + switch (valueType(currentValue)) { + case "undefined": + if (step.nextType === "array") { + context[step.key] = []; + } else { + context[step.key] = /* @__PURE__ */ Object.create(null); + } + return context[step.key]; + case "object": + return context[step.key]; + case "array": + if (step.nextType === "array") { + return currentValue; + } + obj = /* @__PURE__ */ Object.create(null); + context[step.key] = obj; + currentValue.forEach(function(item, i) { + if (item !== void 0) obj["" + i] = item; + }); + return obj; + case "scalar": + obj = /* @__PURE__ */ Object.create(null); + obj[""] = currentValue; + context[step.key] = obj; + return obj; + } + } + __name(setValue, "setValue"); + module.exports = setValue; + } +}); + +// ../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/index.js +var require_append_field = __commonJS({ + "../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/index.js"(exports, module) { + var parsePath = require_parse_path(); + var setValue = require_set_value(); + function appendField(store, key, value) { + var steps = parsePath(key); + steps.reduce(function(context, step) { + return setValue(context, step, context[step.key], value); + }, store); + } + __name(appendField, "appendField"); + module.exports = appendField; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/counter.js +var require_counter = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/counter.js"(exports, module) { + var EventEmitter = __require("events").EventEmitter; + function Counter() { + EventEmitter.call(this); + this.value = 0; + } + __name(Counter, "Counter"); + Counter.prototype = Object.create(EventEmitter.prototype); + Counter.prototype.increment = /* @__PURE__ */ __name(function increment() { + this.value++; + }, "increment"); + Counter.prototype.decrement = /* @__PURE__ */ __name(function decrement() { + if (--this.value === 0) this.emit("zero"); + }, "decrement"); + Counter.prototype.isZero = /* @__PURE__ */ __name(function isZero() { + return this.value === 0; + }, "isZero"); + Counter.prototype.onceZero = /* @__PURE__ */ __name(function onceZero(fn) { + if (this.isZero()) return fn(); + this.once("zero", fn); + }, "onceZero"); + module.exports = Counter; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/multer-error.js +var require_multer_error = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/multer-error.js"(exports, module) { + var util = __require("util"); + var errorMessages = { + LIMIT_PART_COUNT: "Too many parts", + LIMIT_FILE_SIZE: "File too large", + LIMIT_FILE_COUNT: "Too many files", + LIMIT_FIELD_KEY: "Field name too long", + LIMIT_FIELD_VALUE: "Field value too long", + LIMIT_FIELD_COUNT: "Too many fields", + LIMIT_UNEXPECTED_FILE: "Unexpected file field", + MISSING_FIELD_NAME: "Field name missing", + LIMIT_FIELD_NESTING: "Field name nesting too deep", + LIMIT_FIELD_ARRAY_INDEX: "Field name array index too large", + STREAM_DESTROYED: "File stream was destroyed", + INVALID_FIELD_NAME: "Invalid field name" + }; + function MulterError(code, field, filename) { + Error.captureStackTrace(this, this.constructor); + this.name = this.constructor.name; + this.message = errorMessages[code] || `Unknown error: ${code}`; + this.code = code; + if (field) this.field = field; + if (filename) this.filename = filename; + } + __name(MulterError, "MulterError"); + util.inherits(MulterError, Error); + module.exports = MulterError; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/file-appender.js +var require_file_appender = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/file-appender.js"(exports, module) { + function arrayRemove(arr, item) { + var idx = arr.indexOf(item); + if (~idx) arr.splice(idx, 1); + } + __name(arrayRemove, "arrayRemove"); + function FileAppender(strategy, req) { + this.strategy = strategy; + this.req = req; + switch (strategy) { + case "NONE": + break; + case "VALUE": + break; + case "ARRAY": + req.files = []; + break; + case "OBJECT": + req.files = /* @__PURE__ */ Object.create(null); + break; + default: + throw new Error("Unknown file strategy: " + strategy); + } + } + __name(FileAppender, "FileAppender"); + FileAppender.prototype.insertPlaceholder = function(file) { + var placeholder = { + fieldname: file.fieldname + }; + switch (this.strategy) { + case "NONE": + break; + case "VALUE": + break; + case "ARRAY": + this.req.files.push(placeholder); + break; + case "OBJECT": + if (this.req.files[file.fieldname]) { + this.req.files[file.fieldname].push(placeholder); + } else { + this.req.files[file.fieldname] = [placeholder]; + } + break; + } + return placeholder; + }; + FileAppender.prototype.removePlaceholder = function(placeholder) { + switch (this.strategy) { + case "NONE": + break; + case "VALUE": + break; + case "ARRAY": + arrayRemove(this.req.files, placeholder); + break; + case "OBJECT": { + var files = this.req.files[placeholder.fieldname]; + if (!files) break; + arrayRemove(files, placeholder); + if (files.length === 0) delete this.req.files[placeholder.fieldname]; + break; + } + } + }; + FileAppender.prototype.replacePlaceholder = function(placeholder, file) { + if (this.strategy === "VALUE") { + this.req.file = file; + return; + } + delete placeholder.fieldname; + Object.assign(placeholder, file); + }; + module.exports = FileAppender; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/remove-uploaded-files.js +var require_remove_uploaded_files = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/remove-uploaded-files.js"(exports, module) { + function removeUploadedFiles(uploadedFiles, remove, cb) { + var length = uploadedFiles.length; + var errors = []; + if (length === 0) return cb(null, errors); + function handleFile(idx) { + var file = uploadedFiles[idx]; + remove(file, function(err) { + if (err) { + err.file = file; + err.field = file.fieldname; + errors.push(err); + } + if (idx < length - 1) { + setImmediate(function() { + handleFile(idx + 1); + }); + } else { + cb(null, errors); + } + }); + } + __name(handleFile, "handleFile"); + handleFile(0); + } + __name(removeUploadedFiles, "removeUploadedFiles"); + module.exports = removeUploadedFiles; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/validate-limits.js +var require_validate_limits = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/validate-limits.js"(exports, module) { + function validateLimits(limits) { + Object.keys(limits).forEach(function(key) { + var value = limits[key]; + if (value == null) return; + if (Number.isInteger(value) && value >= 0 || value === Infinity) return; + throw new TypeError("Expected limits." + key + " to be a non-negative integer or Infinity"); + }); + } + __name(validateLimits, "validateLimits"); + module.exports = validateLimits; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/make-middleware.js +var require_make_middleware = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/make-middleware.js"(exports, module) { + var is = require_type_is2(); + var AsyncResource2 = __require("async_hooks").AsyncResource; + var Busboy = require_lib5(); + var appendField = require_append_field(); + var Counter = require_counter(); + var MulterError = require_multer_error(); + var FileAppender = require_file_appender(); + var removeUploadedFiles = require_remove_uploaded_files(); + var validateLimits = require_validate_limits(); + function exceedsArrayIndexLimit(fieldname, limit) { + if (!/^[^[]+(?:\[[^\]]+\])*(?:\[\])?$/.test(fieldname)) return false; + var pattern = /\[(\d+)\]/g; + var match; + while ((match = pattern.exec(fieldname)) !== null) { + if (Number(match[1]) > limit) return true; + } + return false; + } + __name(exceedsArrayIndexLimit, "exceedsArrayIndexLimit"); + function drainStream(stream) { + stream.on("readable", () => { + while (stream.read() !== null) { + } + }); + } + __name(drainStream, "drainStream"); + function decodeFormDataName(str) { + return str.replace(/%0A|%0D|%22/gi, function(match) { + switch (match.toUpperCase()) { + case "%0A": + return "\n"; + case "%0D": + return "\r"; + default: + return '"'; + } + }); + } + __name(decodeFormDataName, "decodeFormDataName"); + function defaultStreamHandler(req, busboy) { + req.pipe(busboy); + } + __name(defaultStreamHandler, "defaultStreamHandler"); + function makeMiddleware(setup) { + return /* @__PURE__ */ __name(function multerMiddleware(req, res, next) { + var resource = new AsyncResource2("multer"); + var originalNext = next; + next = /* @__PURE__ */ __name(function(err) { + resource.runInAsyncScope(originalNext, null, err); + }, "next"); + if (!is(req, ["multipart"])) return next(); + var options = setup(); + var limits = options.limits; + if (typeof limits === "function") { + try { + limits = limits(req); + if (limits) validateLimits(limits); + } catch (err) { + return next(err); + } + } + var busboyLimits = limits; + if (limits && (Object.prototype.hasOwnProperty.call(limits, "fileSize") || Object.prototype.hasOwnProperty.call(limits, "parts"))) { + busboyLimits = {}; + var key; + for (key in limits) { + busboyLimits[key] = limits[key]; + } + if (typeof limits.fileSize === "number" && isFinite(limits.fileSize)) { + busboyLimits.fileSize = limits.fileSize + 1; + } + if (typeof limits.parts === "number" && isFinite(limits.parts)) { + busboyLimits.parts = limits.parts + 1; + } + } + var storage = options.storage; + var fileFilter = options.fileFilter; + var fileStrategy = options.fileStrategy; + var preservePath = options.preservePath; + var defParamCharset = options.defParamCharset; + var defCharset = options.defCharset; + var highWaterMark = options.highWaterMark; + var fileHwm = options.fileHwm; + var streamHandler = options.streamHandler || defaultStreamHandler; + req.body = /* @__PURE__ */ Object.create(null); + var busboy; + var appender = null; + var isDone = false; + var readFinished = false; + var errorOccured = false; + var abortCleanupDone = false; + var abortRemovedFiles = /* @__PURE__ */ new Set(); + var pendingWrites = new Counter(); + var uploadedFiles = []; + var pendingFiles = []; + function done(err) { + var called = false; + function onFinished() { + if (called) return; + called = true; + next(err); + } + __name(onFinished, "onFinished"); + if (isDone) return; + isDone = true; + if (busboy) { + req.unpipe(busboy); + setImmediate(() => { + busboy.removeAllListeners(); + }); + } + drainStream(req); + req.resume(); + if (err && req.readable && !req.destroyed) { + req.once("end", onFinished); + req.once("error", onFinished); + req.once("close", onFinished); + return; + } + next(err); + } + __name(done, "done"); + function indicateDone() { + if (readFinished && pendingWrites.isZero() && !errorOccured) done(); + } + __name(indicateDone, "indicateDone"); + function abortWithError(uploadError, skipPendingWait) { + if (errorOccured) return; + errorOccured = true; + function finishAbort() { + abortCleanupDone = true; + function remove(file, cb) { + storage._removeFile(req, file, cb); + } + __name(remove, "remove"); + var pendingToRemove = pendingFiles.filter(function(f) { + return f.path; + }); + pendingToRemove.forEach(function(f) { + abortRemovedFiles.add(f); + }); + var filesToRemove = uploadedFiles.concat(pendingToRemove); + pendingFiles = []; + removeUploadedFiles(filesToRemove, remove, function(err, storageErrors) { + if (err) return done(err); + uploadError.storageErrors = storageErrors; + done(uploadError); + }); + } + __name(finishAbort, "finishAbort"); + if (skipPendingWait) { + finishAbort(); + } else { + pendingWrites.onceZero(finishAbort); + } + } + __name(abortWithError, "abortWithError"); + function abortWithCode(code, optionalField, optionalFilename) { + abortWithError(new MulterError(code, optionalField, optionalFilename)); + } + __name(abortWithCode, "abortWithCode"); + function handleRequestFailure(err) { + if (isDone) return; + if (busboy) { + req.unpipe(busboy); + busboy.destroy(err); + } + abortWithError(err, true); + } + __name(handleRequestFailure, "handleRequestFailure"); + req.on("error", function(err) { + handleRequestFailure(err || new Error("Request error")); + }); + req.on("aborted", function() { + handleRequestFailure(new Error("Request aborted")); + }); + req.on("close", function() { + if (req.readableEnded) return; + handleRequestFailure(new Error("Request closed")); + }); + try { + busboy = Busboy({ + headers: req.headers, + limits: busboyLimits, + preservePath, + defParamCharset, + defCharset, + highWaterMark, + fileHwm + }); + } catch (err) { + return next(err); + } + appender = new FileAppender(fileStrategy, req); + busboy.on("field", function(fieldname, value, { nameTruncated, valueTruncated }) { + if (fieldname == null) return abortWithCode("MISSING_FIELD_NAME"); + var rawFieldname = fieldname; + fieldname = decodeFormDataName(fieldname); + if (nameTruncated) return abortWithCode("LIMIT_FIELD_KEY"); + if (valueTruncated) return abortWithCode("LIMIT_FIELD_VALUE", fieldname); + if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNameSize")) { + if (rawFieldname.length > limits.fieldNameSize) return abortWithCode("LIMIT_FIELD_KEY"); + } + if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNestingDepth")) { + if (fieldname.split("[").length - 1 > limits.fieldNestingDepth) return abortWithCode("LIMIT_FIELD_NESTING", fieldname); + } + if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldArrayIndexLimit")) { + if (exceedsArrayIndexLimit(fieldname, limits.fieldArrayIndexLimit)) { + return abortWithCode("LIMIT_FIELD_ARRAY_INDEX", fieldname); + } + } + try { + appendField(req.body, fieldname, value); + } catch { + return abortWithCode("INVALID_FIELD_NAME", fieldname); + } + }); + busboy.on("file", function(fieldname, fileStream, { filename, encoding, mimeType }) { + var pendingWritesIncremented = false; + var aborting = false; + var accepted = false; + var fileSizeLimitReached = false; + var originalname = filename && decodeFormDataName(filename); + function decrementPendingWrites() { + if (!pendingWritesIncremented) return; + pendingWritesIncremented = false; + pendingWrites.decrement(); + } + __name(decrementPendingWrites, "decrementPendingWrites"); + fileStream.on("error", function(err) { + decrementPendingWrites(); + abortWithError(err); + }); + fileStream.on("limit", function() { + fileSizeLimitReached = true; + if (accepted) { + aborting = true; + abortWithCode("LIMIT_FILE_SIZE", fieldname, originalname); + } + }); + if (fieldname == null) return abortWithCode("MISSING_FIELD_NAME"); + var rawFieldname = fieldname; + fieldname = decodeFormDataName(fieldname); + if (!filename) return fileStream.resume(); + if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNameSize")) { + if (rawFieldname.length > limits.fieldNameSize) return abortWithCode("LIMIT_FIELD_KEY"); + } + var file = { + fieldname, + originalname, + encoding, + mimetype: mimeType + }; + var placeholder = appender.insertPlaceholder(file); + fileFilter(req, file, function(err, includeFile) { + if (errorOccured) { + appender.removePlaceholder(placeholder); + return fileStream.resume(); + } + if (err) { + appender.removePlaceholder(placeholder); + return abortWithError(err); + } + if (!includeFile) { + appender.removePlaceholder(placeholder); + return fileStream.resume(); + } + if (fileSizeLimitReached) { + appender.removePlaceholder(placeholder); + return abortWithCode("LIMIT_FILE_SIZE", fieldname, originalname); + } + accepted = true; + pendingWritesIncremented = true; + pendingWrites.increment(); + Object.defineProperty(file, "stream", { + configurable: true, + enumerable: false, + value: fileStream + }); + pendingFiles.push(file); + storage._handleFile(req, file, function(err2, info) { + var idx = pendingFiles.indexOf(file); + if (idx !== -1) pendingFiles.splice(idx, 1); + if (aborting) { + appender.removePlaceholder(placeholder); + uploadedFiles.push({ ...file, ...info }); + return decrementPendingWrites(); + } + if (err2) { + appender.removePlaceholder(placeholder); + decrementPendingWrites(); + return abortWithError(err2); + } + var fileInfo = { ...file, ...info }; + if (abortCleanupDone) { + if (abortRemovedFiles.has(file)) { + appender.removePlaceholder(placeholder); + decrementPendingWrites(); + return; + } + return storage._removeFile(req, fileInfo, function() { + appender.removePlaceholder(placeholder); + decrementPendingWrites(); + }); + } + appender.replacePlaceholder(placeholder, fileInfo); + uploadedFiles.push(fileInfo); + decrementPendingWrites(); + indicateDone(); + }); + }); + }); + busboy.on("error", function(err) { + abortWithError(err); + }); + busboy.on("partsLimit", function() { + abortWithCode("LIMIT_PART_COUNT"); + }); + busboy.on("filesLimit", function() { + abortWithCode("LIMIT_FILE_COUNT"); + }); + busboy.on("fieldsLimit", function() { + abortWithCode("LIMIT_FIELD_COUNT"); + }); + busboy.on("close", function() { + readFinished = true; + indicateDone(); + }); + streamHandler(req, busboy); + }, "multerMiddleware"); + } + __name(makeMiddleware, "makeMiddleware"); + module.exports = makeMiddleware; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/disk.js +var require_disk = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/disk.js"(exports, module) { + var fs = __require("fs"); + var os = __require("os"); + var path = __require("path"); + var crypto = __require("crypto"); + var pipeline = __require("stream").pipeline; + var MulterError = require_multer_error(); + var openStreams = /* @__PURE__ */ new WeakMap(); + var flushingFiles = /* @__PURE__ */ new WeakMap(); + function endFlush(file) { + var flush = flushingFiles.get(file); + if (!flush) return; + flushingFiles.delete(file); + if (flush.onClosed) flush.onClosed(); + } + __name(endFlush, "endFlush"); + function getFilename(req, file, cb) { + crypto.randomBytes(16, function(err, raw) { + cb(err, err ? void 0 : raw.toString("hex")); + }); + } + __name(getFilename, "getFilename"); + function getDestination(req, file, cb) { + cb(null, os.tmpdir()); + } + __name(getDestination, "getDestination"); + function DiskStorage(opts) { + opts = opts || {}; + this.getFilename = opts.filename || getFilename; + this.flush = opts.flush; + if (typeof opts.destination === "string") { + fs.mkdirSync(opts.destination, { recursive: true }); + this.getDestination = function($0, $1, cb) { + cb(null, opts.destination); + }; + } else { + this.getDestination = opts.destination || getDestination; + } + } + __name(DiskStorage, "DiskStorage"); + DiskStorage.prototype._handleFile = /* @__PURE__ */ __name(function _handleFile(req, file, cb) { + var that = this; + that.getDestination(req, file, function(err, destination) { + if (err) return cb(err); + that.getFilename(req, file, function(err2, filename) { + if (err2) return cb(err2); + var finalPath = path.join(destination, filename); + if (file.stream.destroyed) return cb(new MulterError("STREAM_DESTROYED")); + var outStream = fs.createWriteStream(finalPath); + file.path = finalPath; + openStreams.set(file, outStream); + outStream.once("close", function() { + openStreams.delete(file); + }); + if (that.flush) flushingFiles.set(file, {}); + pipeline(file.stream, outStream, function(err3) { + if (err3) { + endFlush(file); + return cb(err3); + } + var done = /* @__PURE__ */ __name(function(err4) { + if (err4) return cb(err4); + cb(null, { + destination, + filename, + path: finalPath, + size: outStream.bytesWritten + }); + }, "done"); + if (!that.flush) return done(); + fs.open(finalPath, "r+", function(err4, fd) { + if (err4) { + endFlush(file); + return done(err4); + } + fs.fsync(fd, function(syncErr) { + fs.close(fd, function(closeErr) { + endFlush(file); + done(syncErr || closeErr); + }); + }); + }); + }); + }); + }); + }, "_handleFile"); + DiskStorage.prototype._removeFile = /* @__PURE__ */ __name(function _removeFile(req, file, cb) { + var path2 = file.path; + delete file.destination; + delete file.filename; + delete file.path; + function unlink() { + var flush = flushingFiles.get(file); + if (!flush) return fs.unlink(path2, cb); + flush.onClosed = function() { + fs.unlink(path2, cb); + }; + } + __name(unlink, "unlink"); + var outStream = openStreams.get(file); + if (!outStream) return unlink(); + if (outStream.closed) return unlink(); + function onReleased() { + outStream.removeListener("close", onReleased); + outStream.removeListener("error", onReleased); + unlink(); + } + __name(onReleased, "onReleased"); + outStream.once("close", onReleased); + outStream.once("error", onReleased); + outStream.destroy(); + }, "_removeFile"); + module.exports = function(opts) { + return new DiskStorage(opts); + }; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/memory.js +var require_memory = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/memory.js"(exports, module) { + function MemoryStorage(opts) { + } + __name(MemoryStorage, "MemoryStorage"); + MemoryStorage.prototype._handleFile = /* @__PURE__ */ __name(function _handleFile(req, file, cb) { + var chunks = []; + file.stream.on("data", function(chunk) { + chunks.push(chunk); + }); + file.stream.on("end", function() { + var buffer = Buffer.concat(chunks); + cb(null, { + buffer, + size: buffer.length + }); + }); + }, "_handleFile"); + MemoryStorage.prototype._removeFile = /* @__PURE__ */ __name(function _removeFile(req, file, cb) { + delete file.buffer; + cb(null); + }, "_removeFile"); + module.exports = function(opts) { + return new MemoryStorage(opts); + }; + } +}); + +// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/index.js +var require_multer = __commonJS({ + "../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/index.js"(exports, module) { + var makeMiddleware = require_make_middleware(); + var diskStorage = require_disk(); + var memoryStorage = require_memory(); + var MulterError = require_multer_error(); + var validateLimits = require_validate_limits(); + function allowAll(req, file, cb) { + cb(null, true); + } + __name(allowAll, "allowAll"); + function Multer(options) { + if (options.storage) { + this.storage = options.storage; + } else if (options.dest) { + this.storage = diskStorage({ destination: options.dest }); + } else { + this.storage = memoryStorage(); + } + if (options.limits && typeof options.limits !== "function") validateLimits(options.limits); + this.limits = options.limits; + this.preservePath = options.preservePath; + this.defParamCharset = options.defParamCharset || "latin1"; + this.defCharset = options.defCharset; + this.highWaterMark = options.highWaterMark; + this.fileHwm = options.fileHwm; + this.fileFilter = options.fileFilter || allowAll; + if (options.streamHandler !== void 0 && typeof options.streamHandler !== "function") { + throw new TypeError("Expected streamHandler to be a function"); + } + this.streamHandler = options.streamHandler; + } + __name(Multer, "Multer"); + Multer.prototype._makeMiddleware = function(fields, fileStrategy) { + function setup() { + var fileFilter = this.fileFilter; + var filesLeft = /* @__PURE__ */ Object.create(null); + fields.forEach(function(field) { + if (typeof field.maxCount === "number") { + filesLeft[field.name] = field.maxCount; + } else { + filesLeft[field.name] = Infinity; + } + }); + function wrappedFileFilter(req, file, cb) { + if ((filesLeft[file.fieldname] || 0) <= 0) { + return cb(new MulterError("LIMIT_UNEXPECTED_FILE", file.fieldname, file.originalname)); + } + filesLeft[file.fieldname] -= 1; + var settled = false; + fileFilter(req, file, function(err, includeFile) { + if (!settled) { + settled = true; + if (err || !includeFile) filesLeft[file.fieldname] += 1; + } + cb(err, includeFile); + }); + } + __name(wrappedFileFilter, "wrappedFileFilter"); + return { + limits: this.limits, + preservePath: this.preservePath, + defParamCharset: this.defParamCharset, + defCharset: this.defCharset, + highWaterMark: this.highWaterMark, + fileHwm: this.fileHwm, + streamHandler: this.streamHandler, + storage: this.storage, + fileFilter: wrappedFileFilter, + fileStrategy + }; + } + __name(setup, "setup"); + return makeMiddleware(setup.bind(this)); + }; + Multer.prototype.single = function(name) { + return this._makeMiddleware([{ name, maxCount: 1 }], "VALUE"); + }; + Multer.prototype.array = function(name, maxCount) { + return this._makeMiddleware([{ name, maxCount }], "ARRAY"); + }; + Multer.prototype.fields = function(fields) { + return this._makeMiddleware(fields, "OBJECT"); + }; + Multer.prototype.none = function() { + return this._makeMiddleware([], "NONE"); + }; + Multer.prototype.any = function() { + function setup() { + return { + limits: this.limits, + preservePath: this.preservePath, + defParamCharset: this.defParamCharset, + defCharset: this.defCharset, + highWaterMark: this.highWaterMark, + fileHwm: this.fileHwm, + streamHandler: this.streamHandler, + storage: this.storage, + fileFilter: this.fileFilter, + fileStrategy: "ARRAY" + }; + } + __name(setup, "setup"); + return makeMiddleware(setup.bind(this)); + }; + function multer6(options) { + if (options === void 0) { + return new Multer({}); + } + if (typeof options === "object" && options !== null) { + return new Multer(options); + } + throw new TypeError("Expected object for argument options"); + } + __name(multer6, "multer"); + module.exports = multer6; + module.exports.diskStorage = diskStorage; + module.exports.memoryStorage = memoryStorage; + module.exports.MulterError = MulterError; + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/files.constants.js +var MULTER_MODULE_OPTIONS; +var init_files_constants = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/files.constants.js"() { + MULTER_MODULE_OPTIONS = "MULTER_MODULE_OPTIONS"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.constants.js +var multerExceptions, DEFAULT_FIELD_NAME_LIMITS, busboyExceptions; +var init_multer_constants = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.constants.js"() { + multerExceptions = { + // from https://github.com/expressjs/multer/blob/master/lib/multer-error.js + LIMIT_PART_COUNT: "Too many parts", + LIMIT_FILE_SIZE: "File too large", + LIMIT_FILE_COUNT: "Too many files", + LIMIT_FIELD_KEY: "Field name too long", + LIMIT_FIELD_VALUE: "Field value too long", + LIMIT_FIELD_COUNT: "Too many fields", + LIMIT_UNEXPECTED_FILE: "Unexpected file field", + MISSING_FIELD_NAME: "Field name missing", + LIMIT_FIELD_NESTING: "Field name nesting too deep", + LIMIT_FIELD_ARRAY_INDEX: "Field name array index too large", + INVALID_FIELD_NAME: "Invalid field name" + // STREAM_DESTROYED is left out on purpose: it is raised by the storage + // engine after the file stream was destroyed, not by the request, so it + // stays a 500. + }; + DEFAULT_FIELD_NAME_LIMITS = { + fieldNestingDepth: 32, + fieldArrayIndexLimit: 1e3 + }; + busboyExceptions = { + // from https://github.com/mscdex/busboy/blob/master/lib/types/multipart.js + MULTIPART_BOUNDARY_NOT_FOUND: "Multipart: Boundary not found", + MULTIPART_MALFORMED_PART_HEADER: "Malformed part header", + MULTIPART_UNEXPECTED_END_OF_FORM: "Unexpected end of form", + MULTIPART_UNEXPECTED_END_OF_FILE: "Unexpected end of file" + }; + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.utils.js +import { finished as finished2 } from "stream"; +function mergeMulterOptions(options = {}, localOptions = {}) { + const merged = { ...options, ...localOptions }; + if (isPlainObject(options.limits) && isPlainObject(localOptions.limits)) { + merged.limits = { ...options.limits, ...localOptions.limits }; + } + if (localOptions.dest && !localOptions.storage) { + delete merged.storage; + } + return merged; +} +function applyDefaultLimits(options) { + const { limits } = options; + return { + ...options, + limits: typeof limits === "function" ? (req) => withDefaultLimits(limits(req)) : withDefaultLimits(limits) + }; +} +function withDefaultLimits(limits) { + return { + ...limits, + fieldNestingDepth: limits?.fieldNestingDepth ?? DEFAULT_FIELD_NAME_LIMITS.fieldNestingDepth, + fieldArrayIndexLimit: limits?.fieldArrayIndexLimit ?? DEFAULT_FIELD_NAME_LIMITS.fieldArrayIndexLimit + }; +} +function removeFilesOnPipeRejection(storage, req, res) { + return (0, import_rxjs9.catchError)((err) => { + if (isRejectedByPipes(req)) { + finished2(res, () => { + for (const file of storedFiles(req)) { + try { + storage._removeFile(req, file, () => void 0); + } catch { + } + } + }); + } + return (0, import_rxjs9.throwError)(() => err); + }); +} +function storedFiles(req) { + const { file, files } = req; + if (file) { + return [file]; + } + return Array.isArray(files) ? files : Object.values(files ?? {}).flat(); +} +function transformException(error) { + if (!error || error instanceof HttpException) { + return error; + } + const exception = isMulterExceptionCode(error.code) ? multerExceptions[error.code] : error.message; + switch (exception) { + case multerExceptions.LIMIT_FILE_SIZE: + return new PayloadTooLargeException(error.message); + case multerExceptions.LIMIT_FILE_COUNT: + case multerExceptions.LIMIT_FIELD_KEY: + case multerExceptions.LIMIT_FIELD_VALUE: + case multerExceptions.LIMIT_FIELD_COUNT: + case multerExceptions.LIMIT_FIELD_NESTING: + case multerExceptions.LIMIT_FIELD_ARRAY_INDEX: + case multerExceptions.INVALID_FIELD_NAME: + case multerExceptions.LIMIT_UNEXPECTED_FILE: + case multerExceptions.LIMIT_PART_COUNT: + case multerExceptions.MISSING_FIELD_NAME: + if (error.field) { + return new BadRequestException(`${error.message} - ${error.field}`); + } + return new BadRequestException(error.message); + case busboyExceptions.MULTIPART_BOUNDARY_NOT_FOUND: + return new BadRequestException(error.message); + case busboyExceptions.MULTIPART_MALFORMED_PART_HEADER: + case busboyExceptions.MULTIPART_UNEXPECTED_END_OF_FORM: + case busboyExceptions.MULTIPART_UNEXPECTED_END_OF_FILE: + return new BadRequestException(`Multipart: ${error.message}`); + } + return error; +} +function isMulterExceptionCode(code) { + return typeof code === "string" && Object.hasOwn(multerExceptions, code); +} +var import_rxjs9; +var init_multer_utils = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.utils.js"() { + init_common(); + init_internal(); + init_internal2(); + import_rxjs9 = __toESM(require_cjs(), 1); + init_multer_constants(); + __name(mergeMulterOptions, "mergeMulterOptions"); + __name(applyDefaultLimits, "applyDefaultLimits"); + __name(withDefaultLimits, "withDefaultLimits"); + __name(removeFilesOnPipeRejection, "removeFilesOnPipeRejection"); + __name(storedFiles, "storedFiles"); + __name(transformException, "transformException"); + __name(isMulterExceptionCode, "isMulterExceptionCode"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/any-files.interceptor.js +function AnyFilesInterceptor(localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + multer; + constructor(options = {}) { + this.multer = (0, import_multer.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions))); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.any()(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = transformException(err); + return reject(error); + } + resolve(); + })); + return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse())); + } + }; + MixinInterceptor = __decorate([ + __param(0, Optional()), + __param(0, Inject(MULTER_MODULE_OPTIONS)), + __metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = mixin(MixinInterceptor); + return Interceptor; +} +var import_multer; +var init_any_files_interceptor = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/any-files.interceptor.js"() { + init_tslib_es6(); + init_common(); + import_multer = __toESM(require_multer(), 1); + init_files_constants(); + init_multer_utils(); + __name(AnyFilesInterceptor, "AnyFilesInterceptor"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file-fields.interceptor.js +function FileFieldsInterceptor(uploadFields, localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + multer; + constructor(options = {}) { + this.multer = (0, import_multer2.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions))); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.fields(uploadFields)(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = transformException(err); + return reject(error); + } + resolve(); + })); + return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse())); + } + }; + MixinInterceptor = __decorate([ + __param(0, Optional()), + __param(0, Inject(MULTER_MODULE_OPTIONS)), + __metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = mixin(MixinInterceptor); + return Interceptor; +} +var import_multer2; +var init_file_fields_interceptor = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file-fields.interceptor.js"() { + init_tslib_es6(); + init_common(); + import_multer2 = __toESM(require_multer(), 1); + init_files_constants(); + init_multer_utils(); + __name(FileFieldsInterceptor, "FileFieldsInterceptor"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file.interceptor.js +function FileInterceptor(fieldName, localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + multer; + constructor(options = {}) { + this.multer = (0, import_multer3.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions))); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.single(fieldName)(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = transformException(err); + return reject(error); + } + resolve(); + })); + return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse())); + } + }; + MixinInterceptor = __decorate([ + __param(0, Optional()), + __param(0, Inject(MULTER_MODULE_OPTIONS)), + __metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = mixin(MixinInterceptor); + return Interceptor; +} +var import_multer3; +var init_file_interceptor = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file.interceptor.js"() { + init_tslib_es6(); + init_common(); + import_multer3 = __toESM(require_multer(), 1); + init_files_constants(); + init_multer_utils(); + __name(FileInterceptor, "FileInterceptor"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/files.interceptor.js +function FilesInterceptor(fieldName, maxCount, localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + multer; + constructor(options = {}) { + this.multer = (0, import_multer4.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions))); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.array(fieldName, maxCount)(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = transformException(err); + return reject(error); + } + resolve(); + })); + return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse())); + } + }; + MixinInterceptor = __decorate([ + __param(0, Optional()), + __param(0, Inject(MULTER_MODULE_OPTIONS)), + __metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = mixin(MixinInterceptor); + return Interceptor; +} +var import_multer4; +var init_files_interceptor = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/files.interceptor.js"() { + init_tslib_es6(); + init_common(); + import_multer4 = __toESM(require_multer(), 1); + init_files_constants(); + init_multer_utils(); + __name(FilesInterceptor, "FilesInterceptor"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/no-files.interceptor.js +function NoFilesInterceptor(localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + multer; + constructor(options = {}) { + this.multer = (0, import_multer5.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions))); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.none()(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = transformException(err); + return reject(error); + } + resolve(); + })); + return next.handle(); + } + }; + MixinInterceptor = __decorate([ + __param(0, Optional()), + __param(0, Inject(MULTER_MODULE_OPTIONS)), + __metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = mixin(MixinInterceptor); + return Interceptor; +} +var import_multer5; +var init_no_files_interceptor = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/no-files.interceptor.js"() { + init_tslib_es6(); + init_common(); + import_multer5 = __toESM(require_multer(), 1); + init_files_constants(); + init_multer_utils(); + __name(NoFilesInterceptor, "NoFilesInterceptor"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/index.js +var init_interceptors2 = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/index.js"() { + init_any_files_interceptor(); + init_file_fields_interceptor(); + init_file_interceptor(); + init_files_interceptor(); + init_no_files_interceptor(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/files-upload-module.interface.js +var init_files_upload_module_interface = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/files-upload-module.interface.js"() { + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/index.js +var init_interfaces3 = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/index.js"() { + init_files_upload_module_interface(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.constants.js +var MULTER_MODULE_ID; +var init_multer_constants2 = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.constants.js"() { + MULTER_MODULE_ID = "MULTER_MODULE_ID"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.module.js +var MulterModule_1, MulterModule; +var init_multer_module = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.module.js"() { + init_tslib_es6(); + init_common(); + init_files_constants(); + init_multer_constants2(); + init_internal(); + MulterModule = MulterModule_1 = class MulterModule2 { + static { + __name(this, "MulterModule"); + } + static register(options = {}) { + return { + module: MulterModule_1, + providers: [ + { provide: MULTER_MODULE_OPTIONS, useFactory: /* @__PURE__ */ __name(() => options, "useFactory") }, + { + provide: MULTER_MODULE_ID, + useValue: randomStringGenerator() + } + ], + exports: [MULTER_MODULE_OPTIONS] + }; + } + static registerAsync(options) { + return { + module: MulterModule_1, + imports: options.imports, + providers: [ + ...this.createAsyncProviders(options), + { + provide: MULTER_MODULE_ID, + useValue: randomStringGenerator() + } + ], + exports: [MULTER_MODULE_OPTIONS] + }; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + return [this.createAsyncOptionsProvider(options)]; + } + return [ + this.createAsyncOptionsProvider(options), + { + provide: options.useClass, + useClass: options.useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: MULTER_MODULE_OPTIONS, + useFactory: options.useFactory, + inject: options.inject || [] + }; + } + return { + provide: MULTER_MODULE_OPTIONS, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => optionsFactory.createMulterOptions(), "useFactory"), + inject: [options.useExisting || options.useClass] + }; + } + }; + MulterModule = MulterModule_1 = __decorate([ + Module({}) + ], MulterModule); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/index.js +var init_multer = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/index.js"() { + init_interceptors2(); + init_interfaces3(); + init_multer_module(); + } +}); + +// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/index.js +var init_platform_express = __esm({ + "../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/index.js"() { + init_adapters2(); + init_interfaces2(); + init_multer(); + } +}); + +export { + APP_GUARD, + APP_FILTER, + Reflector, + require_cookie, + ExpressAdapter, + AnyFilesInterceptor, + FileFieldsInterceptor, + FileInterceptor, + FilesInterceptor, + NoFilesInterceptor, + MulterModule, + init_platform_express, + NestFactory, + core_exports, + init_core +}; diff --git a/apps/api/.output/dist/chunks/es5-NIUGVEY6.js b/apps/api/.output/dist/chunks/es5-NIUGVEY6.js new file mode 100644 index 0000000..86339a3 --- /dev/null +++ b/apps/api/.output/dist/chunks/es5-NIUGVEY6.js @@ -0,0 +1,828 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + __commonJS, + __name +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/bowser@2.14.1/node_modules/bowser/es5.js +var require_es5 = __commonJS({ + "../../node_modules/.pnpm/bowser@2.14.1/node_modules/bowser/es5.js"(exports, module) { + !(function(e, t) { + "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.bowser = t() : e.bowser = t(); + })(exports, (function() { + return (function(e) { + var t = {}; + function r(i) { + if (t[i]) return t[i].exports; + var n = t[i] = { i, l: false, exports: {} }; + return e[i].call(n.exports, n, n.exports, r), n.l = true, n.exports; + } + __name(r, "r"); + return r.m = e, r.c = t, r.d = function(e2, t2, i) { + r.o(e2, t2) || Object.defineProperty(e2, t2, { enumerable: true, get: i }); + }, r.r = function(e2) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true }); + }, r.t = function(e2, t2) { + if (1 & t2 && (e2 = r(e2)), 8 & t2) return e2; + if (4 & t2 && "object" == typeof e2 && e2 && e2.__esModule) return e2; + var i = /* @__PURE__ */ Object.create(null); + if (r.r(i), Object.defineProperty(i, "default", { enumerable: true, value: e2 }), 2 & t2 && "string" != typeof e2) for (var n in e2) r.d(i, n, function(t3) { + return e2[t3]; + }.bind(null, n)); + return i; + }, r.n = function(e2) { + var t2 = e2 && e2.__esModule ? function() { + return e2.default; + } : function() { + return e2; + }; + return r.d(t2, "a", t2), t2; + }, r.o = function(e2, t2) { + return Object.prototype.hasOwnProperty.call(e2, t2); + }, r.p = "", r(r.s = 90); + })({ 17: function(e, t, r) { + "use strict"; + t.__esModule = true, t.default = void 0; + var i = r(18), n = (function() { + function e2() { + } + __name(e2, "e"); + return e2.getFirstMatch = function(e3, t2) { + var r2 = t2.match(e3); + return r2 && r2.length > 0 && r2[1] || ""; + }, e2.getSecondMatch = function(e3, t2) { + var r2 = t2.match(e3); + return r2 && r2.length > 1 && r2[2] || ""; + }, e2.matchAndReturnConst = function(e3, t2, r2) { + if (e3.test(t2)) return r2; + }, e2.getWindowsVersionName = function(e3) { + switch (e3) { + case "NT": + return "NT"; + case "XP": + return "XP"; + case "NT 5.0": + return "2000"; + case "NT 5.1": + return "XP"; + case "NT 5.2": + return "2003"; + case "NT 6.0": + return "Vista"; + case "NT 6.1": + return "7"; + case "NT 6.2": + return "8"; + case "NT 6.3": + return "8.1"; + case "NT 10.0": + return "10"; + default: + return; + } + }, e2.getMacOSVersionName = function(e3) { + var t2 = e3.split(".").splice(0, 2).map((function(e4) { + return parseInt(e4, 10) || 0; + })); + t2.push(0); + var r2 = t2[0], i2 = t2[1]; + if (10 === r2) switch (i2) { + case 5: + return "Leopard"; + case 6: + return "Snow Leopard"; + case 7: + return "Lion"; + case 8: + return "Mountain Lion"; + case 9: + return "Mavericks"; + case 10: + return "Yosemite"; + case 11: + return "El Capitan"; + case 12: + return "Sierra"; + case 13: + return "High Sierra"; + case 14: + return "Mojave"; + case 15: + return "Catalina"; + default: + return; + } + switch (r2) { + case 11: + return "Big Sur"; + case 12: + return "Monterey"; + case 13: + return "Ventura"; + case 14: + return "Sonoma"; + case 15: + return "Sequoia"; + default: + return; + } + }, e2.getAndroidVersionName = function(e3) { + var t2 = e3.split(".").splice(0, 2).map((function(e4) { + return parseInt(e4, 10) || 0; + })); + if (t2.push(0), !(1 === t2[0] && t2[1] < 5)) return 1 === t2[0] && t2[1] < 6 ? "Cupcake" : 1 === t2[0] && t2[1] >= 6 ? "Donut" : 2 === t2[0] && t2[1] < 2 ? "Eclair" : 2 === t2[0] && 2 === t2[1] ? "Froyo" : 2 === t2[0] && t2[1] > 2 ? "Gingerbread" : 3 === t2[0] ? "Honeycomb" : 4 === t2[0] && t2[1] < 1 ? "Ice Cream Sandwich" : 4 === t2[0] && t2[1] < 4 ? "Jelly Bean" : 4 === t2[0] && t2[1] >= 4 ? "KitKat" : 5 === t2[0] ? "Lollipop" : 6 === t2[0] ? "Marshmallow" : 7 === t2[0] ? "Nougat" : 8 === t2[0] ? "Oreo" : 9 === t2[0] ? "Pie" : void 0; + }, e2.getVersionPrecision = function(e3) { + return e3.split(".").length; + }, e2.compareVersions = function(t2, r2, i2) { + void 0 === i2 && (i2 = false); + var n2 = e2.getVersionPrecision(t2), a = e2.getVersionPrecision(r2), o = Math.max(n2, a), s = 0, u = e2.map([t2, r2], (function(t3) { + var r3 = o - e2.getVersionPrecision(t3), i3 = t3 + new Array(r3 + 1).join(".0"); + return e2.map(i3.split("."), (function(e3) { + return new Array(20 - e3.length).join("0") + e3; + })).reverse(); + })); + for (i2 && (s = o - Math.min(n2, a)), o -= 1; o >= s; ) { + if (u[0][o] > u[1][o]) return 1; + if (u[0][o] === u[1][o]) { + if (o === s) return 0; + o -= 1; + } else if (u[0][o] < u[1][o]) return -1; + } + }, e2.map = function(e3, t2) { + var r2, i2 = []; + if (Array.prototype.map) return Array.prototype.map.call(e3, t2); + for (r2 = 0; r2 < e3.length; r2 += 1) i2.push(t2(e3[r2])); + return i2; + }, e2.find = function(e3, t2) { + var r2, i2; + if (Array.prototype.find) return Array.prototype.find.call(e3, t2); + for (r2 = 0, i2 = e3.length; r2 < i2; r2 += 1) { + var n2 = e3[r2]; + if (t2(n2, r2)) return n2; + } + }, e2.assign = function(e3) { + for (var t2, r2, i2 = e3, n2 = arguments.length, a = new Array(n2 > 1 ? n2 - 1 : 0), o = 1; o < n2; o++) a[o - 1] = arguments[o]; + if (Object.assign) return Object.assign.apply(Object, [e3].concat(a)); + var s = /* @__PURE__ */ __name(function() { + var e4 = a[t2]; + "object" == typeof e4 && null !== e4 && Object.keys(e4).forEach((function(t3) { + i2[t3] = e4[t3]; + })); + }, "s"); + for (t2 = 0, r2 = a.length; t2 < r2; t2 += 1) s(); + return e3; + }, e2.getBrowserAlias = function(e3) { + return i.BROWSER_ALIASES_MAP[e3]; + }, e2.getBrowserTypeByAlias = function(e3) { + return i.BROWSER_MAP[e3] || ""; + }, e2; + })(); + t.default = n, e.exports = t.default; + }, 18: function(e, t, r) { + "use strict"; + t.__esModule = true, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0; + t.BROWSER_ALIASES_MAP = { AmazonBot: "amazonbot", "Amazon Silk": "amazon_silk", "Android Browser": "android", BaiduSpider: "baiduspider", Bada: "bada", BingCrawler: "bingcrawler", Brave: "brave", BlackBerry: "blackberry", "ChatGPT-User": "chatgpt_user", Chrome: "chrome", ClaudeBot: "claudebot", Chromium: "chromium", Diffbot: "diffbot", DuckDuckBot: "duckduckbot", DuckDuckGo: "duckduckgo", Electron: "electron", Epiphany: "epiphany", FacebookExternalHit: "facebookexternalhit", Firefox: "firefox", Focus: "focus", Generic: "generic", "Google Search": "google_search", Googlebot: "googlebot", GPTBot: "gptbot", "Internet Explorer": "ie", InternetArchiveCrawler: "internetarchivecrawler", "K-Meleon": "k_meleon", LibreWolf: "librewolf", Linespider: "linespider", Maxthon: "maxthon", "Meta-ExternalAds": "meta_externalads", "Meta-ExternalAgent": "meta_externalagent", "Meta-ExternalFetcher": "meta_externalfetcher", "Meta-WebIndexer": "meta_webindexer", "Microsoft Edge": "edge", "MZ Browser": "mz", "NAVER Whale Browser": "naver", "OAI-SearchBot": "oai_searchbot", Omgilibot: "omgilibot", Opera: "opera", "Opera Coast": "opera_coast", "Pale Moon": "pale_moon", PerplexityBot: "perplexitybot", "Perplexity-User": "perplexity_user", PhantomJS: "phantomjs", PingdomBot: "pingdombot", Puffin: "puffin", QQ: "qq", QQLite: "qqlite", QupZilla: "qupzilla", Roku: "roku", Safari: "safari", Sailfish: "sailfish", "Samsung Internet for Android": "samsung_internet", SlackBot: "slackbot", SeaMonkey: "seamonkey", Sleipnir: "sleipnir", "Sogou Browser": "sogou", Swing: "swing", Tizen: "tizen", "UC Browser": "uc", Vivaldi: "vivaldi", "WebOS Browser": "webos", WeChat: "wechat", YahooSlurp: "yahooslurp", "Yandex Browser": "yandex", YandexBot: "yandexbot", YouBot: "youbot" }; + t.BROWSER_MAP = { amazonbot: "AmazonBot", amazon_silk: "Amazon Silk", android: "Android Browser", baiduspider: "BaiduSpider", bada: "Bada", bingcrawler: "BingCrawler", blackberry: "BlackBerry", brave: "Brave", chatgpt_user: "ChatGPT-User", chrome: "Chrome", claudebot: "ClaudeBot", chromium: "Chromium", diffbot: "Diffbot", duckduckbot: "DuckDuckBot", duckduckgo: "DuckDuckGo", edge: "Microsoft Edge", electron: "Electron", epiphany: "Epiphany", facebookexternalhit: "FacebookExternalHit", firefox: "Firefox", focus: "Focus", generic: "Generic", google_search: "Google Search", googlebot: "Googlebot", gptbot: "GPTBot", ie: "Internet Explorer", internetarchivecrawler: "InternetArchiveCrawler", k_meleon: "K-Meleon", librewolf: "LibreWolf", linespider: "Linespider", maxthon: "Maxthon", meta_externalads: "Meta-ExternalAds", meta_externalagent: "Meta-ExternalAgent", meta_externalfetcher: "Meta-ExternalFetcher", meta_webindexer: "Meta-WebIndexer", mz: "MZ Browser", naver: "NAVER Whale Browser", oai_searchbot: "OAI-SearchBot", omgilibot: "Omgilibot", opera: "Opera", opera_coast: "Opera Coast", pale_moon: "Pale Moon", perplexitybot: "PerplexityBot", perplexity_user: "Perplexity-User", phantomjs: "PhantomJS", pingdombot: "PingdomBot", puffin: "Puffin", qq: "QQ Browser", qqlite: "QQ Browser Lite", qupzilla: "QupZilla", roku: "Roku", safari: "Safari", sailfish: "Sailfish", samsung_internet: "Samsung Internet for Android", seamonkey: "SeaMonkey", slackbot: "SlackBot", sleipnir: "Sleipnir", sogou: "Sogou Browser", swing: "Swing", tizen: "Tizen", uc: "UC Browser", vivaldi: "Vivaldi", webos: "WebOS Browser", wechat: "WeChat", yahooslurp: "YahooSlurp", yandex: "Yandex Browser", yandexbot: "YandexBot", youbot: "YouBot" }; + t.PLATFORMS_MAP = { bot: "bot", desktop: "desktop", mobile: "mobile", tablet: "tablet", tv: "tv" }; + t.OS_MAP = { Android: "Android", Bada: "Bada", BlackBerry: "BlackBerry", ChromeOS: "Chrome OS", HarmonyOS: "HarmonyOS", iOS: "iOS", Linux: "Linux", MacOS: "macOS", PlayStation4: "PlayStation 4", Roku: "Roku", Tizen: "Tizen", WebOS: "WebOS", Windows: "Windows", WindowsPhone: "Windows Phone" }; + t.ENGINE_MAP = { Blink: "Blink", EdgeHTML: "EdgeHTML", Gecko: "Gecko", Presto: "Presto", Trident: "Trident", WebKit: "WebKit" }; + }, 90: function(e, t, r) { + "use strict"; + t.__esModule = true, t.default = void 0; + var i, n = (i = r(91)) && i.__esModule ? i : { default: i }, a = r(18); + function o(e2, t2) { + for (var r2 = 0; r2 < t2.length; r2++) { + var i2 = t2[r2]; + i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e2, i2.key, i2); + } + } + __name(o, "o"); + var s = (function() { + function e2() { + } + __name(e2, "e"); + var t2, r2, i2; + return e2.getParser = function(e3, t3, r3) { + if (void 0 === t3 && (t3 = false), void 0 === r3 && (r3 = null), "string" != typeof e3) throw new Error("UserAgent should be a string"); + return new n.default(e3, t3, r3); + }, e2.parse = function(e3, t3) { + return void 0 === t3 && (t3 = null), new n.default(e3, t3).getResult(); + }, t2 = e2, i2 = [{ key: "BROWSER_MAP", get: /* @__PURE__ */ __name(function() { + return a.BROWSER_MAP; + }, "get") }, { key: "ENGINE_MAP", get: /* @__PURE__ */ __name(function() { + return a.ENGINE_MAP; + }, "get") }, { key: "OS_MAP", get: /* @__PURE__ */ __name(function() { + return a.OS_MAP; + }, "get") }, { key: "PLATFORMS_MAP", get: /* @__PURE__ */ __name(function() { + return a.PLATFORMS_MAP; + }, "get") }], (r2 = null) && o(t2.prototype, r2), i2 && o(t2, i2), e2; + })(); + t.default = s, e.exports = t.default; + }, 91: function(e, t, r) { + "use strict"; + t.__esModule = true, t.default = void 0; + var i = u(r(92)), n = u(r(93)), a = u(r(94)), o = u(r(95)), s = u(r(17)); + function u(e2) { + return e2 && e2.__esModule ? e2 : { default: e2 }; + } + __name(u, "u"); + var d = (function() { + function e2(e3, t3, r2) { + if (void 0 === t3 && (t3 = false), void 0 === r2 && (r2 = null), null == e3 || "" === e3) throw new Error("UserAgent parameter can't be empty"); + this._ua = e3; + var i2 = false; + "boolean" == typeof t3 ? (i2 = t3, this._hints = r2) : this._hints = null != t3 && "object" == typeof t3 ? t3 : null, this.parsedResult = {}, true !== i2 && this.parse(); + } + __name(e2, "e"); + var t2 = e2.prototype; + return t2.getHints = function() { + return this._hints; + }, t2.hasBrand = function(e3) { + if (!this._hints || !Array.isArray(this._hints.brands)) return false; + var t3 = e3.toLowerCase(); + return this._hints.brands.some((function(e4) { + return e4.brand && e4.brand.toLowerCase() === t3; + })); + }, t2.getBrandVersion = function(e3) { + if (this._hints && Array.isArray(this._hints.brands)) { + var t3 = e3.toLowerCase(), r2 = this._hints.brands.find((function(e4) { + return e4.brand && e4.brand.toLowerCase() === t3; + })); + return r2 ? r2.version : void 0; + } + }, t2.getUA = function() { + return this._ua; + }, t2.test = function(e3) { + return e3.test(this._ua); + }, t2.parseBrowser = function() { + var e3 = this; + this.parsedResult.browser = {}; + var t3 = s.default.find(i.default, (function(t4) { + if ("function" == typeof t4.test) return t4.test(e3); + if (Array.isArray(t4.test)) return t4.test.some((function(t5) { + return e3.test(t5); + })); + throw new Error("Browser's test function is not valid"); + })); + return t3 && (this.parsedResult.browser = t3.describe(this.getUA(), this)), this.parsedResult.browser; + }, t2.getBrowser = function() { + return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser(); + }, t2.getBrowserName = function(e3) { + return e3 ? String(this.getBrowser().name).toLowerCase() || "" : this.getBrowser().name || ""; + }, t2.getBrowserVersion = function() { + return this.getBrowser().version; + }, t2.getOS = function() { + return this.parsedResult.os ? this.parsedResult.os : this.parseOS(); + }, t2.parseOS = function() { + var e3 = this; + this.parsedResult.os = {}; + var t3 = s.default.find(n.default, (function(t4) { + if ("function" == typeof t4.test) return t4.test(e3); + if (Array.isArray(t4.test)) return t4.test.some((function(t5) { + return e3.test(t5); + })); + throw new Error("Browser's test function is not valid"); + })); + return t3 && (this.parsedResult.os = t3.describe(this.getUA())), this.parsedResult.os; + }, t2.getOSName = function(e3) { + var t3 = this.getOS().name; + return e3 ? String(t3).toLowerCase() || "" : t3 || ""; + }, t2.getOSVersion = function() { + return this.getOS().version; + }, t2.getPlatform = function() { + return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform(); + }, t2.getPlatformType = function(e3) { + void 0 === e3 && (e3 = false); + var t3 = this.getPlatform().type; + return e3 ? String(t3).toLowerCase() || "" : t3 || ""; + }, t2.parsePlatform = function() { + var e3 = this; + this.parsedResult.platform = {}; + var t3 = s.default.find(a.default, (function(t4) { + if ("function" == typeof t4.test) return t4.test(e3); + if (Array.isArray(t4.test)) return t4.test.some((function(t5) { + return e3.test(t5); + })); + throw new Error("Browser's test function is not valid"); + })); + return t3 && (this.parsedResult.platform = t3.describe(this.getUA())), this.parsedResult.platform; + }, t2.getEngine = function() { + return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine(); + }, t2.getEngineName = function(e3) { + return e3 ? String(this.getEngine().name).toLowerCase() || "" : this.getEngine().name || ""; + }, t2.parseEngine = function() { + var e3 = this; + this.parsedResult.engine = {}; + var t3 = s.default.find(o.default, (function(t4) { + if ("function" == typeof t4.test) return t4.test(e3); + if (Array.isArray(t4.test)) return t4.test.some((function(t5) { + return e3.test(t5); + })); + throw new Error("Browser's test function is not valid"); + })); + return t3 && (this.parsedResult.engine = t3.describe(this.getUA())), this.parsedResult.engine; + }, t2.parse = function() { + return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this; + }, t2.getResult = function() { + return s.default.assign({}, this.parsedResult); + }, t2.satisfies = function(e3) { + var t3 = this, r2 = {}, i2 = 0, n2 = {}, a2 = 0; + if (Object.keys(e3).forEach((function(t4) { + var o3 = e3[t4]; + "string" == typeof o3 ? (n2[t4] = o3, a2 += 1) : "object" == typeof o3 && (r2[t4] = o3, i2 += 1); + })), i2 > 0) { + var o2 = Object.keys(r2), u2 = s.default.find(o2, (function(e4) { + return t3.isOS(e4); + })); + if (u2) { + var d2 = this.satisfies(r2[u2]); + if (void 0 !== d2) return d2; + } + var c = s.default.find(o2, (function(e4) { + return t3.isPlatform(e4); + })); + if (c) { + var f = this.satisfies(r2[c]); + if (void 0 !== f) return f; + } + } + if (a2 > 0) { + var l = Object.keys(n2), b = s.default.find(l, (function(e4) { + return t3.isBrowser(e4, true); + })); + if (void 0 !== b) return this.compareVersion(n2[b]); + } + }, t2.isBrowser = function(e3, t3) { + void 0 === t3 && (t3 = false); + var r2 = this.getBrowserName().toLowerCase(), i2 = e3.toLowerCase(), n2 = s.default.getBrowserTypeByAlias(i2); + return t3 && n2 && (i2 = n2.toLowerCase()), i2 === r2; + }, t2.compareVersion = function(e3) { + var t3 = [0], r2 = e3, i2 = false, n2 = this.getBrowserVersion(); + if ("string" == typeof n2) return ">" === e3[0] || "<" === e3[0] ? (r2 = e3.substr(1), "=" === e3[1] ? (i2 = true, r2 = e3.substr(2)) : t3 = [], ">" === e3[0] ? t3.push(1) : t3.push(-1)) : "=" === e3[0] ? r2 = e3.substr(1) : "~" === e3[0] && (i2 = true, r2 = e3.substr(1)), t3.indexOf(s.default.compareVersions(n2, r2, i2)) > -1; + }, t2.isOS = function(e3) { + return this.getOSName(true) === String(e3).toLowerCase(); + }, t2.isPlatform = function(e3) { + return this.getPlatformType(true) === String(e3).toLowerCase(); + }, t2.isEngine = function(e3) { + return this.getEngineName(true) === String(e3).toLowerCase(); + }, t2.is = function(e3, t3) { + return void 0 === t3 && (t3 = false), this.isBrowser(e3, t3) || this.isOS(e3) || this.isPlatform(e3); + }, t2.some = function(e3) { + var t3 = this; + return void 0 === e3 && (e3 = []), e3.some((function(e4) { + return t3.is(e4); + })); + }, e2; + })(); + t.default = d, e.exports = t.default; + }, 92: function(e, t, r) { + "use strict"; + t.__esModule = true, t.default = void 0; + var i, n = (i = r(17)) && i.__esModule ? i : { default: i }; + var a = /version\/(\d+(\.?_?\d+)+)/i, o = [{ test: [/gptbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "GPTBot" }, r2 = n.default.getFirstMatch(/gptbot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/chatgpt-user/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "ChatGPT-User" }, r2 = n.default.getFirstMatch(/chatgpt-user\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/oai-searchbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "OAI-SearchBot" }, r2 = n.default.getFirstMatch(/oai-searchbot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/claudebot/i, /claude-web/i, /claude-user/i, /claude-searchbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "ClaudeBot" }, r2 = n.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/omgilibot/i, /webzio-extended/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Omgilibot" }, r2 = n.default.getFirstMatch(/(?:omgilibot|webzio-extended)\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/diffbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Diffbot" }, r2 = n.default.getFirstMatch(/diffbot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/perplexitybot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "PerplexityBot" }, r2 = n.default.getFirstMatch(/perplexitybot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/perplexity-user/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Perplexity-User" }, r2 = n.default.getFirstMatch(/perplexity-user\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/youbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "YouBot" }, r2 = n.default.getFirstMatch(/youbot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/meta-webindexer/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Meta-WebIndexer" }, r2 = n.default.getFirstMatch(/meta-webindexer\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/meta-externalads/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Meta-ExternalAds" }, r2 = n.default.getFirstMatch(/meta-externalads\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/meta-externalagent/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Meta-ExternalAgent" }, r2 = n.default.getFirstMatch(/meta-externalagent\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/meta-externalfetcher/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Meta-ExternalFetcher" }, r2 = n.default.getFirstMatch(/meta-externalfetcher\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/googlebot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Googlebot" }, r2 = n.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/linespider/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Linespider" }, r2 = n.default.getFirstMatch(/(?:linespider)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/amazonbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "AmazonBot" }, r2 = n.default.getFirstMatch(/amazonbot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/bingbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "BingCrawler" }, r2 = n.default.getFirstMatch(/bingbot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/baiduspider/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "BaiduSpider" }, r2 = n.default.getFirstMatch(/baiduspider\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/duckduckbot/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "DuckDuckBot" }, r2 = n.default.getFirstMatch(/duckduckbot\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/ia_archiver/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "InternetArchiveCrawler" }, r2 = n.default.getFirstMatch(/ia_archiver\/(\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/facebookexternalhit/i, /facebookcatalog/i], describe: /* @__PURE__ */ __name(function() { + return { name: "FacebookExternalHit" }; + }, "describe") }, { test: [/slackbot/i, /slack-imgProxy/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "SlackBot" }, r2 = n.default.getFirstMatch(/(?:slackbot|slack-imgproxy)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/yahoo!?[\s/]*slurp/i], describe: /* @__PURE__ */ __name(function() { + return { name: "YahooSlurp" }; + }, "describe") }, { test: [/yandexbot/i, /yandexmobilebot/i], describe: /* @__PURE__ */ __name(function() { + return { name: "YandexBot" }; + }, "describe") }, { test: [/pingdom/i], describe: /* @__PURE__ */ __name(function() { + return { name: "PingdomBot" }; + }, "describe") }, { test: [/opera/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Opera" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/opr\/|opios/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Opera" }, r2 = n.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/SamsungBrowser/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Samsung Internet for Android" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/Whale/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "NAVER Whale Browser" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/PaleMoon/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Pale Moon" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/MZBrowser/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "MZ Browser" }, r2 = n.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/focus/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Focus" }, r2 = n.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/swing/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Swing" }, r2 = n.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/coast/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Opera Coast" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/opt\/\d+(?:.?_?\d+)+/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Opera Touch" }, r2 = n.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/yabrowser/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Yandex Browser" }, r2 = n.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/ucbrowser/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "UC Browser" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/Maxthon|mxios/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Maxthon" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/epiphany/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Epiphany" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/puffin/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Puffin" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/sleipnir/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Sleipnir" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/k-meleon/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "K-Meleon" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/micromessenger/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "WeChat" }, r2 = n.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/qqbrowser/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: /qqbrowserlite/i.test(e2) ? "QQ Browser Lite" : "QQ Browser" }, r2 = n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/msie|trident/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Internet Explorer" }, r2 = n.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/\sedg\//i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Microsoft Edge" }, r2 = n.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/edg([ea]|ios)/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Microsoft Edge" }, r2 = n.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/vivaldi/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Vivaldi" }, r2 = n.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/seamonkey/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "SeaMonkey" }, r2 = n.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/sailfish/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Sailfish" }, r2 = n.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/silk/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Amazon Silk" }, r2 = n.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/phantom/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "PhantomJS" }, r2 = n.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/slimerjs/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "SlimerJS" }, r2 = n.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/blackberry|\bbb\d+/i, /rim\stablet/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "BlackBerry" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/(web|hpw)[o0]s/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "WebOS Browser" }, r2 = n.default.getFirstMatch(a, e2) || n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/bada/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Bada" }, r2 = n.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/tizen/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Tizen" }, r2 = n.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/qupzilla/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "QupZilla" }, r2 = n.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/librewolf/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "LibreWolf" }, r2 = n.default.getFirstMatch(/(?:librewolf)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/firefox|iceweasel|fxios/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Firefox" }, r2 = n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/electron/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Electron" }, r2 = n.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/sogoumobilebrowser/i, /metasr/i, /se 2\.[x]/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Sogou Browser" }, r2 = n.default.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i, e2), i2 = n.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e2), a2 = n.default.getFirstMatch(/se ([\d.]+)x/i, e2), o2 = r2 || i2 || a2; + return o2 && (t2.version = o2), t2; + }, "describe") }, { test: [/MiuiBrowser/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Miui" }, r2 = n.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return !!e2.hasBrand("DuckDuckGo") || e2.test(/\sDdg\/[\d.]+$/i); + }, "test"), describe: /* @__PURE__ */ __name(function(e2, t2) { + var r2 = { name: "DuckDuckGo" }; + if (t2) { + var i2 = t2.getBrandVersion("DuckDuckGo"); + if (i2) return r2.version = i2, r2; + } + var a2 = n.default.getFirstMatch(/\sDdg\/([\d.]+)$/i, e2); + return a2 && (r2.version = a2), r2; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return e2.hasBrand("Brave"); + }, "test"), describe: /* @__PURE__ */ __name(function(e2, t2) { + var r2 = { name: "Brave" }; + if (t2) { + var i2 = t2.getBrandVersion("Brave"); + if (i2) return r2.version = i2, r2; + } + return r2; + }, "describe") }, { test: [/chromium/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Chromium" }, r2 = n.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, e2) || n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/chrome|crios|crmo/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Chrome" }, r2 = n.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/GSA/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Google Search" }, r2 = n.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + var t2 = !e2.test(/like android/i), r2 = e2.test(/android/i); + return t2 && r2; + }, "test"), describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Android Browser" }, r2 = n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/playstation 4/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "PlayStation 4" }, r2 = n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/safari|applewebkit/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: "Safari" }, r2 = n.default.getFirstMatch(a, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/.*/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = -1 !== e2.search("\\(") ? /^(.*)\/(.*)[ \t]\((.*)/ : /^(.*)\/(.*) /; + return { name: n.default.getFirstMatch(t2, e2), version: n.default.getSecondMatch(t2, e2) }; + }, "describe") }]; + t.default = o, e.exports = t.default; + }, 93: function(e, t, r) { + "use strict"; + t.__esModule = true, t.default = void 0; + var i, n = (i = r(17)) && i.__esModule ? i : { default: i }, a = r(18); + var o = [{ test: [/Roku\/DVP/], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, e2); + return { name: a.OS_MAP.Roku, version: t2 }; + }, "describe") }, { test: [/windows phone/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, e2); + return { name: a.OS_MAP.WindowsPhone, version: t2 }; + }, "describe") }, { test: [/windows /i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, e2), r2 = n.default.getWindowsVersionName(t2); + return { name: a.OS_MAP.Windows, version: t2, versionName: r2 }; + }, "describe") }, { test: [/Macintosh(.*?) FxiOS(.*?)\//], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: a.OS_MAP.iOS }, r2 = n.default.getSecondMatch(/(Version\/)(\d[\d.]+)/, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/macintosh/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, e2).replace(/[_\s]/g, "."), r2 = n.default.getMacOSVersionName(t2), i2 = { name: a.OS_MAP.MacOS, version: t2 }; + return r2 && (i2.versionName = r2), i2; + }, "describe") }, { test: [/(ipod|iphone|ipad)/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, e2).replace(/[_\s]/g, "."); + return { name: a.OS_MAP.iOS, version: t2 }; + }, "describe") }, { test: [/OpenHarmony/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/OpenHarmony\s+(\d+(\.\d+)*)/i, e2); + return { name: a.OS_MAP.HarmonyOS, version: t2 }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + var t2 = !e2.test(/like android/i), r2 = e2.test(/android/i); + return t2 && r2; + }, "test"), describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, e2), r2 = n.default.getAndroidVersionName(t2), i2 = { name: a.OS_MAP.Android, version: t2 }; + return r2 && (i2.versionName = r2), i2; + }, "describe") }, { test: [/(web|hpw)[o0]s/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, e2), r2 = { name: a.OS_MAP.WebOS }; + return t2 && t2.length && (r2.version = t2), r2; + }, "describe") }, { test: [/blackberry|\bbb\d+/i, /rim\stablet/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, e2) || n.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, e2) || n.default.getFirstMatch(/\bbb(\d+)/i, e2); + return { name: a.OS_MAP.BlackBerry, version: t2 }; + }, "describe") }, { test: [/bada/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, e2); + return { name: a.OS_MAP.Bada, version: t2 }; + }, "describe") }, { test: [/tizen/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, e2); + return { name: a.OS_MAP.Tizen, version: t2 }; + }, "describe") }, { test: [/linux/i], describe: /* @__PURE__ */ __name(function() { + return { name: a.OS_MAP.Linux }; + }, "describe") }, { test: [/CrOS/], describe: /* @__PURE__ */ __name(function() { + return { name: a.OS_MAP.ChromeOS }; + }, "describe") }, { test: [/PlayStation 4/], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i, e2); + return { name: a.OS_MAP.PlayStation4, version: t2 }; + }, "describe") }]; + t.default = o, e.exports = t.default; + }, 94: function(e, t, r) { + "use strict"; + t.__esModule = true, t.default = void 0; + var i, n = (i = r(17)) && i.__esModule ? i : { default: i }, a = r(18); + var o = [{ test: [/googlebot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Google" }; + }, "describe") }, { test: [/linespider/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Line" }; + }, "describe") }, { test: [/amazonbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Amazon" }; + }, "describe") }, { test: [/gptbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "OpenAI" }; + }, "describe") }, { test: [/chatgpt-user/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "OpenAI" }; + }, "describe") }, { test: [/oai-searchbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "OpenAI" }; + }, "describe") }, { test: [/baiduspider/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Baidu" }; + }, "describe") }, { test: [/bingbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Bing" }; + }, "describe") }, { test: [/duckduckbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "DuckDuckGo" }; + }, "describe") }, { test: [/claudebot/i, /claude-web/i, /claude-user/i, /claude-searchbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Anthropic" }; + }, "describe") }, { test: [/omgilibot/i, /webzio-extended/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Webz.io" }; + }, "describe") }, { test: [/diffbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Diffbot" }; + }, "describe") }, { test: [/perplexitybot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Perplexity AI" }; + }, "describe") }, { test: [/perplexity-user/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Perplexity AI" }; + }, "describe") }, { test: [/youbot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "You.com" }; + }, "describe") }, { test: [/ia_archiver/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Internet Archive" }; + }, "describe") }, { test: [/meta-webindexer/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Meta" }; + }, "describe") }, { test: [/meta-externalads/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Meta" }; + }, "describe") }, { test: [/meta-externalagent/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Meta" }; + }, "describe") }, { test: [/meta-externalfetcher/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Meta" }; + }, "describe") }, { test: [/facebookexternalhit/i, /facebookcatalog/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Meta" }; + }, "describe") }, { test: [/slackbot/i, /slack-imgProxy/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Slack" }; + }, "describe") }, { test: [/yahoo/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Yahoo" }; + }, "describe") }, { test: [/yandexbot/i, /yandexmobilebot/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Yandex" }; + }, "describe") }, { test: [/pingdom/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.bot, vendor: "Pingdom" }; + }, "describe") }, { test: [/huawei/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/(can-l01)/i, e2) && "Nova", r2 = { type: a.PLATFORMS_MAP.mobile, vendor: "Huawei" }; + return t2 && (r2.model = t2), r2; + }, "describe") }, { test: [/nexus\s*(?:7|8|9|10).*/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tablet, vendor: "Nexus" }; + }, "describe") }, { test: [/ipad/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tablet, vendor: "Apple", model: "iPad" }; + }, "describe") }, { test: [/Macintosh(.*?) FxiOS(.*?)\//], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tablet, vendor: "Apple", model: "iPad" }; + }, "describe") }, { test: [/kftt build/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tablet, vendor: "Amazon", model: "Kindle Fire HD 7" }; + }, "describe") }, { test: [/silk/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tablet, vendor: "Amazon" }; + }, "describe") }, { test: [/tablet(?! pc)/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tablet }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + var t2 = e2.test(/ipod|iphone/i), r2 = e2.test(/like (ipod|iphone)/i); + return t2 && !r2; + }, "test"), describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/(ipod|iphone)/i, e2); + return { type: a.PLATFORMS_MAP.mobile, vendor: "Apple", model: t2 }; + }, "describe") }, { test: [/nexus\s*[0-6].*/i, /galaxy nexus/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.mobile, vendor: "Nexus" }; + }, "describe") }, { test: [/Nokia/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = n.default.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i, e2), r2 = { type: a.PLATFORMS_MAP.mobile, vendor: "Nokia" }; + return t2 && (r2.model = t2), r2; + }, "describe") }, { test: [/[^-]mobi/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.mobile }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "blackberry" === e2.getBrowserName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.mobile, vendor: "BlackBerry" }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "bada" === e2.getBrowserName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.mobile }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "windows phone" === e2.getBrowserName(); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.mobile, vendor: "Microsoft" }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + var t2 = Number(String(e2.getOSVersion()).split(".")[0]); + return "android" === e2.getOSName(true) && t2 >= 3; + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tablet }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "android" === e2.getOSName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.mobile }; + }, "describe") }, { test: [/smart-?tv|smarttv/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tv }; + }, "describe") }, { test: [/netcast/i], describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tv }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "macos" === e2.getOSName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.desktop, vendor: "Apple" }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "windows" === e2.getOSName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.desktop }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "linux" === e2.getOSName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.desktop }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "playstation 4" === e2.getOSName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tv }; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return "roku" === e2.getOSName(true); + }, "test"), describe: /* @__PURE__ */ __name(function() { + return { type: a.PLATFORMS_MAP.tv }; + }, "describe") }]; + t.default = o, e.exports = t.default; + }, 95: function(e, t, r) { + "use strict"; + t.__esModule = true, t.default = void 0; + var i, n = (i = r(17)) && i.__esModule ? i : { default: i }, a = r(18); + var o = [{ test: /* @__PURE__ */ __name(function(e2) { + return "microsoft edge" === e2.getBrowserName(true); + }, "test"), describe: /* @__PURE__ */ __name(function(e2) { + if (/\sedg\//i.test(e2)) return { name: a.ENGINE_MAP.Blink }; + var t2 = n.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, e2); + return { name: a.ENGINE_MAP.EdgeHTML, version: t2 }; + }, "describe") }, { test: [/trident/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: a.ENGINE_MAP.Trident }, r2 = n.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + return e2.test(/presto/i); + }, "test"), describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: a.ENGINE_MAP.Presto }, r2 = n.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: /* @__PURE__ */ __name(function(e2) { + var t2 = e2.test(/gecko/i), r2 = e2.test(/like gecko/i); + return t2 && !r2; + }, "test"), describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: a.ENGINE_MAP.Gecko }, r2 = n.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }, { test: [/(apple)?webkit\/537\.36/i], describe: /* @__PURE__ */ __name(function() { + return { name: a.ENGINE_MAP.Blink }; + }, "describe") }, { test: [/(apple)?webkit/i], describe: /* @__PURE__ */ __name(function(e2) { + var t2 = { name: a.ENGINE_MAP.WebKit }, r2 = n.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, e2); + return r2 && (t2.version = r2), t2; + }, "describe") }]; + t.default = o, e.exports = t.default; + } }); + })); + } +}); +export default require_es5(); diff --git a/apps/api/.output/dist/chunks/event-streams-IPK6VS6T.js b/apps/api/.output/dist/chunks/event-streams-IPK6VS6T.js new file mode 100644 index 0000000..9f9d6ba --- /dev/null +++ b/apps/api/.output/dist/chunks/event-streams-IPK6VS6T.js @@ -0,0 +1,44 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + EventStreamCodec, + EventStreamMarshaller, + EventStreamMarshaller2, + EventStreamSerde, + HeaderMarshaller, + Int64, + MessageDecoderStream, + MessageEncoderStream, + SmithyMessageDecoderStream, + SmithyMessageEncoderStream, + eventStreamSerdeProvider, + eventStreamSerdeProvider2, + getChunkedStream, + getMessageUnmarshaller, + getUnmarshalledStream, + init_event_streams, + iterableToReadableStream, + readableStreamToIterable, + resolveEventStreamSerdeConfig +} from "./chunk-6UPY3HEI.js"; +import "./chunk-T6GW54FI.js"; +init_event_streams(); +export { + EventStreamCodec, + EventStreamMarshaller2 as EventStreamMarshaller, + EventStreamSerde, + HeaderMarshaller, + Int64, + MessageDecoderStream, + MessageEncoderStream, + SmithyMessageDecoderStream, + SmithyMessageEncoderStream, + EventStreamMarshaller as UniversalEventStreamMarshaller, + eventStreamSerdeProvider2 as eventStreamSerdeProvider, + getChunkedStream, + getMessageUnmarshaller, + getUnmarshalledStream, + iterableToReadableStream, + readableStreamToIterable, + resolveEventStreamSerdeConfig, + eventStreamSerdeProvider as universalEventStreamSerdeProvider +}; diff --git a/apps/api/.output/dist/chunks/platform-express-MGQH3ALM.js b/apps/api/.output/dist/chunks/platform-express-MGQH3ALM.js new file mode 100644 index 0000000..18f9d42 --- /dev/null +++ b/apps/api/.output/dist/chunks/platform-express-MGQH3ALM.js @@ -0,0 +1,25 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + AnyFilesInterceptor, + ExpressAdapter, + FileFieldsInterceptor, + FileInterceptor, + FilesInterceptor, + MulterModule, + NoFilesInterceptor, + init_platform_express +} from "./chunk-XSOBN2CI.js"; +import "./chunk-BX2ML7LW.js"; +import "./chunk-C4DYPKAN.js"; +import "./chunk-A34KYKJP.js"; +import "./chunk-T6GW54FI.js"; +init_platform_express(); +export { + AnyFilesInterceptor, + ExpressAdapter, + FileFieldsInterceptor, + FileInterceptor, + FilesInterceptor, + MulterModule, + NoFilesInterceptor +}; diff --git a/apps/api/.output/dist/chunks/query_compiler_fast_bg.postgresql-RWS5SSGB.js b/apps/api/.output/dist/chunks/query_compiler_fast_bg.postgresql-RWS5SSGB.js new file mode 100644 index 0000000..c03be5b --- /dev/null +++ b/apps/api/.output/dist/chunks/query_compiler_fast_bg.postgresql-RWS5SSGB.js @@ -0,0 +1,349 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + __name +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/@prisma+client@7.10.1_prism_1fac53bcaa5c7503395b340f2e6f2cd9/node_modules/@prisma/client/runtime/query_compiler_fast_bg.postgresql.mjs +var h = /* @__PURE__ */ __name(() => { +}, "h"); +h.prototype = h; +var o; +function D(e) { + o = e; +} +__name(D, "D"); +var p = null; +function a() { + return (p === null || p.byteLength === 0) && (p = new Uint8Array(o.memory.buffer)), p; +} +__name(a, "a"); +var y = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); +y.decode(); +var E = 2146435072; +var A = 0; +function T(e, t) { + return A += t, A >= E && (y = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }), y.decode(), A = t), y.decode(a().subarray(e, e + t)); +} +__name(T, "T"); +function m(e, t) { + return e = e >>> 0, T(e, t); +} +__name(m, "m"); +var f = 0; +var g = new TextEncoder(); +"encodeInto" in g || (g.encodeInto = function(e, t) { + const n = g.encode(e); + return t.set(n), { read: e.length, written: n.length }; +}); +function l(e, t, n) { + if (n === void 0) { + const i = g.encode(e), d = t(i.length, 1) >>> 0; + return a().subarray(d, d + i.length).set(i), f = i.length, d; + } + let _ = e.length, r = t(_, 1) >>> 0; + const s = a(); + let c = 0; + for (; c < _; c++) { + const i = e.charCodeAt(c); + if (i > 127) break; + s[r + c] = i; + } + if (c !== _) { + c !== 0 && (e = e.slice(c)), r = n(r, _, _ = c + e.length * 3, 1) >>> 0; + const i = a().subarray(r + c, r + _), d = g.encodeInto(e, i); + c += d.written, r = n(r, _, c, 1) >>> 0; + } + return f = c, r; +} +__name(l, "l"); +var b = null; +function u() { + return (b === null || b.buffer.detached === true || b.buffer.detached === void 0 && b.buffer !== o.memory.buffer) && (b = new DataView(o.memory.buffer)), b; +} +__name(u, "u"); +function x(e) { + return e == null; +} +__name(x, "x"); +function S(e) { + const t = typeof e; + if (t == "number" || t == "boolean" || e == null) return `${e}`; + if (t == "string") return `"${e}"`; + if (t == "symbol") { + const r = e.description; + return r == null ? "Symbol" : `Symbol(${r})`; + } + if (t == "function") { + const r = e.name; + return typeof r == "string" && r.length > 0 ? `Function(${r})` : "Function"; + } + if (Array.isArray(e)) { + const r = e.length; + let s = "["; + r > 0 && (s += S(e[0])); + for (let c = 1; c < r; c++) s += ", " + S(e[c]); + return s += "]", s; + } + const n = /\[object ([^\]]+)\]/.exec(toString.call(e)); + let _; + if (n && n.length > 1) _ = n[1]; + else return toString.call(e); + if (_ == "Object") try { + return "Object(" + JSON.stringify(e) + ")"; + } catch { + return "Object"; + } + return e instanceof Error ? `${e.name}: ${e.message} +${e.stack}` : _; +} +__name(S, "S"); +function M(e, t) { + return e = e >>> 0, a().subarray(e / 1, e / 1 + t); +} +__name(M, "M"); +function w(e) { + const t = o.__wbindgen_externrefs.get(e); + return o.__externref_table_dealloc(e), t; +} +__name(w, "w"); +var I = typeof FinalizationRegistry > "u" ? { register: /* @__PURE__ */ __name(() => { +}, "register"), unregister: /* @__PURE__ */ __name(() => { +}, "unregister") } : new FinalizationRegistry((e) => o.__wbg_querycompiler_free(e >>> 0, 1)); +var F = class { + static { + __name(this, "F"); + } + __destroy_into_raw() { + const t = this.__wbg_ptr; + return this.__wbg_ptr = 0, I.unregister(this), t; + } + free() { + const t = this.__destroy_into_raw(); + o.__wbg_querycompiler_free(t, 0); + } + compileBatch(t) { + const n = l(t, o.__wbindgen_malloc, o.__wbindgen_realloc), _ = f, r = o.querycompiler_compileBatch(this.__wbg_ptr, n, _); + if (r[2]) throw w(r[1]); + return w(r[0]); + } + constructor(t) { + const n = o.querycompiler_new(t); + if (n[2]) throw w(n[1]); + return this.__wbg_ptr = n[0] >>> 0, I.register(this, this.__wbg_ptr, this), this; + } + compile(t) { + const n = l(t, o.__wbindgen_malloc, o.__wbindgen_realloc), _ = f, r = o.querycompiler_compile(this.__wbg_ptr, n, _); + if (r[2]) throw w(r[1]); + return w(r[0]); + } +}; +Symbol.dispose && (F.prototype[Symbol.dispose] = F.prototype.free); +function O(e, t) { + return Error(m(e, t)); +} +__name(O, "O"); +function B(e) { + return Number(e); +} +__name(B, "B"); +function N(e, t) { + const n = String(t), _ = l(n, o.__wbindgen_malloc, o.__wbindgen_realloc), r = f; + u().setInt32(e + 4 * 1, r, true), u().setInt32(e + 4 * 0, _, true); +} +__name(N, "N"); +function U(e) { + const t = e, n = typeof t == "boolean" ? t : void 0; + return x(n) ? 16777215 : n ? 1 : 0; +} +__name(U, "U"); +function R(e, t) { + const n = S(t), _ = l(n, o.__wbindgen_malloc, o.__wbindgen_realloc), r = f; + u().setInt32(e + 4 * 1, r, true), u().setInt32(e + 4 * 0, _, true); +} +__name(R, "R"); +function $(e, t) { + return e in t; +} +__name($, "$"); +function q(e) { + const t = e; + return typeof t == "object" && t !== null; +} +__name(q, "q"); +function C(e) { + return typeof e == "string"; +} +__name(C, "C"); +function k(e) { + return e === void 0; +} +__name(k, "k"); +function W(e, t) { + return e == t; +} +__name(W, "W"); +function V(e, t) { + const n = t, _ = typeof n == "number" ? n : void 0; + u().setFloat64(e + 8 * 1, x(_) ? 0 : _, true), u().setInt32(e + 4 * 0, !x(_), true); +} +__name(V, "V"); +function z(e, t) { + const n = t, _ = typeof n == "string" ? n : void 0; + var r = x(_) ? 0 : l(_, o.__wbindgen_malloc, o.__wbindgen_realloc), s = f; + u().setInt32(e + 4 * 1, s, true), u().setInt32(e + 4 * 0, r, true); +} +__name(z, "z"); +function L(e, t) { + throw new Error(m(e, t)); +} +__name(L, "L"); +function P(e) { + return Object.entries(e); +} +__name(P, "P"); +function Q(e) { + return e.getTime(); +} +__name(Q, "Q"); +function Y(e, t) { + return e[t >>> 0]; +} +__name(Y, "Y"); +function G(e, t) { + return e[t]; +} +__name(G, "G"); +function J(e) { + let t; + try { + t = e instanceof ArrayBuffer; + } catch { + t = false; + } + return t; +} +__name(J, "J"); +function X(e) { + let t; + try { + t = e instanceof Uint8Array; + } catch { + t = false; + } + return t; +} +__name(X, "X"); +function H(e) { + return Number.isSafeInteger(e); +} +__name(H, "H"); +function K(e) { + return e.length; +} +__name(K, "K"); +function Z(e) { + return e.length; +} +__name(Z, "Z"); +function v() { + return /* @__PURE__ */ new Date(); +} +__name(v, "v"); +function ee() { + return new Object(); +} +__name(ee, "ee"); +function te(e) { + return new Uint8Array(e); +} +__name(te, "te"); +function ne() { + return /* @__PURE__ */ new Map(); +} +__name(ne, "ne"); +function re() { + return new Array(); +} +__name(re, "re"); +function _e(e, t, n) { + Uint8Array.prototype.set.call(M(e, t), n); +} +__name(_e, "_e"); +function oe(e, t, n) { + e[t] = n; +} +__name(oe, "oe"); +function ce(e, t, n) { + return e.set(t, n); +} +__name(ce, "ce"); +function ie(e, t, n) { + e[t >>> 0] = n; +} +__name(ie, "ie"); +function se(e, t) { + global.PRISMA_WASM_PANIC_REGISTRY.set_message(m(e, t)); +} +__name(se, "se"); +function ue(e, t) { + return m(e, t); +} +__name(ue, "ue"); +function fe(e) { + return BigInt.asUintN(64, e); +} +__name(fe, "fe"); +function be(e) { + return e; +} +__name(be, "be"); +function de(e) { + return e; +} +__name(de, "de"); +function ae() { + const e = o.__wbindgen_externrefs, t = e.grow(4); + e.set(0, void 0), e.set(t + 0, void 0), e.set(t + 1, null), e.set(t + 2, true), e.set(t + 3, false); +} +__name(ae, "ae"); +export { + F as QueryCompiler, + O as __wbg_Error_e83987f665cf5504, + B as __wbg_Number_bb48ca12f395cd08, + N as __wbg_String_8f0eb39a4a4c2f66, + U as __wbg___wbindgen_boolean_get_6d5a1ee65bab5f68, + R as __wbg___wbindgen_debug_string_df47ffb5e35e6763, + $ as __wbg___wbindgen_in_bb933bd9e1b3bc0f, + q as __wbg___wbindgen_is_object_c818261d21f283a4, + C as __wbg___wbindgen_is_string_fbb76cb2940daafd, + k as __wbg___wbindgen_is_undefined_2d472862bd29a478, + W as __wbg___wbindgen_jsval_loose_eq_b664b38a2f582147, + V as __wbg___wbindgen_number_get_a20bf9b85341449d, + z as __wbg___wbindgen_string_get_e4f06c90489ad01b, + L as __wbg___wbindgen_throw_b855445ff6a94295, + P as __wbg_entries_e171b586f8f6bdbf, + Q as __wbg_getTime_14776bfb48a1bff9, + Y as __wbg_get_7bed016f185add81, + G as __wbg_get_with_ref_key_1dc361bd10053bfe, + J as __wbg_instanceof_ArrayBuffer_70beb1189ca63b38, + X as __wbg_instanceof_Uint8Array_20c8e73002f7af98, + H as __wbg_isSafeInteger_d216eda7911dde36, + K as __wbg_length_69bca3cb64fc8748, + Z as __wbg_length_cdd215e10d9dd507, + v as __wbg_new_0_f9740686d739025c, + ee as __wbg_new_1acc0b6eea89d040, + te as __wbg_new_5a79be3ab53b8aa5, + ne as __wbg_new_68651c719dcda04e, + re as __wbg_new_e17d9f43105b08be, + _e as __wbg_prototypesetcall_2a6620b6922694b2, + oe as __wbg_set_3f1d0b984ed272ed, + ce as __wbg_set_907fb406c34a251d, + ie as __wbg_set_c213c871859d6500, + se as __wbg_set_message_82ae475bb413aa5c, + D as __wbg_set_wasm, + ue as __wbindgen_cast_2241b6af4c4b2941, + fe as __wbindgen_cast_4625c577ab2ec9ee, + be as __wbindgen_cast_9ae0607507abb057, + de as __wbindgen_cast_d6cd19b81560fd6e, + ae as __wbindgen_init_externref_table +}; diff --git a/apps/api/.output/dist/chunks/query_compiler_fast_bg.postgresql.wasm-base64-5YP3ZLAU.js b/apps/api/.output/dist/chunks/query_compiler_fast_bg.postgresql.wasm-base64-5YP3ZLAU.js new file mode 100644 index 0000000..5e7e9b5 --- /dev/null +++ b/apps/api/.output/dist/chunks/query_compiler_fast_bg.postgresql.wasm-base64-5YP3ZLAU.js @@ -0,0 +1,8 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/@prisma+client@7.10.1_prism_1fac53bcaa5c7503395b340f2e6f2cd9/node_modules/@prisma/client/runtime/query_compiler_fast_bg.postgresql.wasm-base64.mjs +var wasm = "AGFzbQEAAAABtgRLYAN/f38Bf2ACf38Bf2ACf38AYAF/AGADf39/AGAEf39/fwBgBX9/f39/AGABfwF/YAZ/f39/f38AYAR/f39/AX9gAn9+AX9gB39/f39/f38AYAh/f39/f39/fwBgA35+fwF+YAF/AX5gAW8Bf2AFf39/f38Bf2AAAGACf34AYAABf2AJf39/f39/f39/AGAAA39/f2AAAW9gAn9vAGAFf39/fn8AYAR/f39+AGAHf39/f39/fwF/YAR+fn9/AX5gAX4Bf2ACf38Bb2ACb28Bf2ABbwFvYAFvAXxgAX4Bb2AEf3x/fwF/YAR/fX9/AX9gCX9/f39/f39/fwF/YAZ/f39/f38Bf2ADfn5/AX9gA39/fwN/f39gA29/bwBgA29vbwBgA29vbwFvYAJvbwFvYAJvfwFvYAN/f28AYAF8AW9gC39/f39/f39/f39/AGAKf39/f39/f39/fwBgDH9/f39/f39/f39/fgBgAn5/AXxgAn5/AX1gDH9/f39/f39/f39/fwBgAnx/AX9gBH9/f34Bf2AHf39/f39/fgBgBH9+f38AYAZ/fn9/f38AYAN/fH8Bf2ADf31/AX9gA39/fgBgBH5+f38Bf2ADf35+AGACfn8AYAl/f39/f39+fn4AYAJ/fwF+YBN/f39/f39/f39/f39/f39/f39/AX9gBX9+fn5+AGACf3wAYAR/fn5/AGABbwN/f39gBX9/fn9/AGAFf399f38AYAV/f3x/fwBgAXwBfwLyEiUbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzGl9fd2JnX25ld19lMTdkOWY0MzEwNWIwOGJlABYbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzGl9fd2JnX3NldF9jMjEzYzg3MTg1OWQ2NTAwACgbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzGl9fd2JnX25ld182ODY1MWM3MTlkY2RhMDRlABYbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzGl9fd2JnX25ld18xYWNjMGI2ZWVhODlkMDQwABYbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzGl9fd2JnX3NldF8zZjFkMGI5ODRlZDI3MmVkACkbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzK19fd2JnX19fd2JpbmRnZW5faXNfc3RyaW5nX2ZiYjc2Y2IyOTQwZGFhZmQADxsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMaX193Ymdfc2V0XzkwN2ZiNDA2YzM0YTI1MWQAKhsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMcX193YmdfRXJyb3JfZTgzOTg3ZjY2NWNmNTUwNAAdGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcyxfX3diZ19fX3diaW5kZ2VuX3N0cmluZ19nZXRfZTRmMDZjOTA0ODlhZDAxYgAXGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qczBfX3diZ19fX3diaW5kZ2VuX2pzdmFsX2xvb3NlX2VxX2I2NjRiMzhhMmY1ODIxNDcAHhsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMiX193Ymdfc2V0X21lc3NhZ2VfODJhZTQ3NWJiNDEzYWE1YwACGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF9jODE4MjYxZDIxZjI4M2E0AA8bLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzJ19fd2JnX2dldF93aXRoX3JlZl9rZXlfMWRjMzYxYmQxMDA1M2JmZQArGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcy5fX3diZ19fX3diaW5kZ2VuX2lzX3VuZGVmaW5lZF8yZDQ3Mjg2MmJkMjlhNDc4AA8bLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fYmI5MzNiZDllMWIzYmMwZgAeGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcx5fX3diZ19lbnRyaWVzX2UxNzFiNTg2ZjhmNmJkYmYAHxsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMdX193YmdfbGVuZ3RoX2NkZDIxNWUxMGQ5ZGQ1MDcADxsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMaX193YmdfZ2V0XzdiZWQwMTZmMTg1YWRkODEALBsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMkX193YmdfaXNTYWZlSW50ZWdlcl9kMjE2ZWRhNzkxMWRkZTM2AA8bLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzHV9fd2JnX051bWJlcl9iYjQ4Y2ExMmYzOTVjZDA4ACAbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzLV9fd2JnX19fd2JpbmRnZW5fYm9vbGVhbl9nZXRfNmQ1YTFlZTY1YmFiNWY2OAAPGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcxxfX3diZ19uZXdfMF9mOTc0MDY4NmQ3MzkwMjVjABYbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzHl9fd2JnX2dldFRpbWVfMTQ3NzZiZmI0OGExYmZmOQAgGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcx1fX3diZ19sZW5ndGhfNjliY2EzY2I2NGZjODc0OAAPGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzJhNjYyMGI2OTIyNjk0YjIALRsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMsX193YmdfX193YmluZGdlbl9udW1iZXJfZ2V0X2EyMGJmOWI4NTM0MTQ0OWQAFxsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzIwYzhlNzMwMDJmN2FmOTgADxsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMtX193YmdfaW5zdGFuY2VvZl9BcnJheUJ1ZmZlcl83MGJlYjExODljYTYzYjM4AA8bLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzGl9fd2JnX25ld181YTc5YmUzYWI1M2I4YWE1AB8bLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzHV9fd2JnX1N0cmluZ184ZjBlYjM5YTRhNGMyZjY2ABcbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfYjg1NTQ0NWZmNmE5NDI5NQACGy4vcXVlcnlfY29tcGlsZXJfZmFzdF9iZy5qcy5fX3diZ19fX3diaW5kZ2VuX2RlYnVnX3N0cmluZ19kZjQ3ZmZiNWUzNWU2NzYzABcbLi9xdWVyeV9jb21waWxlcl9mYXN0X2JnLmpzH19fd2JpbmRnZW5faW5pdF9leHRlcm5yZWZfdGFibGUAERsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMgX193YmluZGdlbl9jYXN0XzIyNDFiNmFmNGM0YjI5NDEAHRsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMgX193YmluZGdlbl9jYXN0XzlhZTA2MDc1MDdhYmIwNTcAIRsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMgX193YmluZGdlbl9jYXN0XzQ2MjVjNTc3YWIyZWM5ZWUAIRsuL3F1ZXJ5X2NvbXBpbGVyX2Zhc3RfYmcuanMgX193YmluZGdlbl9jYXN0X2Q2Y2QxOWI4MTU2MGZkNmUALgPeFdwVCxQCBQUIBAIFBC8DBggEBBgCBggCBAQwBAEUAgQCBQgDCAQLBgAGBAEMMQYBBjIzAgIIARQEBgUCBQIIAwICAgIFBQICBQEIAQYFCAICBQILBAQDAwUMCwgCAggECAQCDAIECwEEBgYIAgYHBAYGBAUMCAQDAwIEDAgEBAUIAgUDDAgEBAECBQMFCAELBwgFBAgIAgYFAgYDAQEBAQQBCQIGBQQEAwQEAwYINAEIAgMBAQEBAwIIBAUCAwgGAgICBQQIAgIIBQIIBQICCAQFBgQ1AQECAQQFAgIGAQICCwISAhISBQICEgICBAMCBAgEAgYIBgQLAQICBAIEBAMEAwYUAgICAQQCAgYCCAgCAgQBBQEEAgICAQsEAQICAwMCAQgFAQMCAQEBAQEBAQQEAgECAgYCAgICAgYCBAMDAQQEAgICAgYDAwYGAgMEBgQEBAcCAgQEAQEEAgMEAgICAQIEAgkBAgIDAwQEAgUBBQQEAgIEAgYEAQUCAwQEAgIBCAIEAwQGAQgBAgUEAQIEBQUGBAQEBAIBAQQBAQIGAQMCAwUFBQUEAwQEBAICBQECAgUEAggDAAEGAQgCBggHBwIEAgICAQUIAgUGAQQEAgQCBAQEBAIEBAEABQYCAgUCAQMDAwYCAgICBQMDNgEBAQICAwMDAwIEAAEBAQUCNwEDAgICBQUCAwMDAwMEBAIEAggDBgEBAwIBAggCBAMDAwEEAgICAwMCAgIBAggCAgILAgEDAwMCBQMDAgMDAwMCAgIGAwMDAgICOAICBAIEAwEBBAICAgIFAggBBQMDAwEBBQEIAQIDAQEBBQIBAQQDAgIGAgMEAQQCAQUCAgICAQQCAQEBAgYEBAEBBAQCAgEEAQEEAgIEAwQCAgQDAwIDAQMGAgICAgMBAgYBAQEBBgMHAwIEAgECBAULBAQCAgICAgMEAgQCAwQCAwMEAgMDAwIDAwQEAgQEAgQCAgQEAggCAwICBQMCAgIBAQIBAgICAgECAgQBBAMDAwQEAgMCAgMIAQICAgMJAwEBAgEBBAQFBQICAgEiBAIJAAsIBCMFAggCAwECBQQCAAQDBQEEAgUCAQIBAQMFAgQCAgEFCAICBgUIAgYCAgQFBAQCAQIEJDkDAgEDGAICAToAAAcBAQU7AAMEAgUCAgQCAgMFAQEEBAUCAwEMAQQCAgQBBDwCAwMEAwMDBAIDAgQDBQMCBgQEAwEBAQMEAgUDAwIBBAIFBAIDBgECAQEEBAIYAg0CAwQDAQQCAgQFAwIGBgACIgQCAgEEAgEGIwEaBQUEAgMBAQIZAgIFAgEGAgEBBgYDFAQDCQEBAxkCAgIECAIEAgQEAwMDBAIDAgMGAgECAgQEAQICCAYCBAMBAgEEDAMEAwUIBAIBAgICAQYCAgQEAQMGAQIEAQMBAQQCAwMDAwMDAQIDBAEDAwMBAwIDAwMHAwQEAgQDBAEBBQEEAgQEBAQEAgUECAIAAgICAhkFAQMFAgICAwMGAQYDBwMDAQMDAgMZAwMBAQICAQIBAgIABAIEBQIFAQMCDQsCCQICBAQEBAIEAwICAwQEBAQEBAMBAQABJQICAQMmAgIEBgICBAkEBAECAgQDAgIbBAEDAwQHAQMEAg0DAwsFBgECAxgBBQECAwMDAwMDAwMDAgEDAgMkDQEBAQECBAECBAECAgISAAILBwIDBAACAQ0EBAQEBAEBAgIBBwUGBwQBAwEbAQECBwEBBwICCAABAwEBBQIBAgECAgsEAwQAAQIHBAICBQICAgICAgQEPQQmAxsGAwYEBAICAQIFBAMFAgEBAQEBAQEBCQECDQEDAQMBAwQCAQEBAQIBAQEBAgEBBAIBPgMBAQEBAQEBAQEBAQEBBQEBAwUCBAUBAQICAwMBAQMFAQ0NBw0HDQ0EAQQHAQMAAAAAAwIEBAMEAQQHAwEEEgQBAgMAAwEBAQIEAwYGAgMEBQUFAQEBAgIBAwMBAwEEARABAQEBBgYBAgMBAQEIBQMDAwQDAwEBAwMQBQIQAAMHAQEBBgMBAAIEAgMDAgIEAQIDBAMBAAIBPwECAQEBBQICAAQDAgcDBwIEAgECBwIAAwUDAAcCAQEBBQUBBAIBAgQSQAMDBAIBAQIBAwUQAQEBCEECAgIEAgMIBQQaAgQBAgAEBAACCQECAQcHAgQBBAQEAgICAgIDAgcEBAEICAMCBAQFBAUCBAkCBwQGBQUCBAMJAwEDBAIEBAEEBQgBBQQFAQgCBAQCBAQECwMBAQEEAwQBAgcCAgEGAgIFAQEEAQMDAgMEAAEEBAECBAQDAwMCAgIBAgIEBAEEBAMGAQEBAwICAwECAgMBAgECAgIBEwUBEAQDAgEBAQEEBAACAgEBAgQDAgACAwQBAQQDAwILBAQCBQIEAgICAgQBAgEGAwIEAQEBAgMBAQQDAQMCCAEBBgIBAgIOBAEDAQMBCQkJCQkDCQQBAQIBAgIBAQADAQEBAwQIAwMEAQIEAQEBAQICAQEBAgkBAQEBAQEBAQEAAQQBAQIDAQECAgsBAQEBAgEBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAgEIAQECBQUFBQIGAQEBBAIHAgECAQEFAQQCAQEBAQEBAQEBAQEFAQEBAQEBAQEGAQMEBAIBAAcEAQEFAQEBAQEDAQEEAgMCAwMBAQEEAgECAgEDCBABAQMDAgICAwEBAgEBAQECAQIBAgUGBQYBCQEHBAIDAQEBAQEBBAEBBgcHAgEDAwMCBwIGBwABQgQHBwEDBwEDAgEBAQEBAQMEBAcEBAQBAQEBAQEBAQMBAQEBAwEBAQEBAQEBAQIECQEDBAMCAQACAAEBAQEBBAMBAQYBAQIBAgEDAQEBAQEDAwMDAQIEGgEBBAMDAgMDBwIEAwcFAQMBAggBDAMDAAUDAwMDAwMEBgEBAQYCAQEDAQEEAwEBAgEEAQMIAgQECQkJBAEKBAMDAAEHAQQBBwMBBQIDAwcBAgYBAwEDAwMEBANDAgEBAwMDAwQEBAQEAgIHAwMFAwkBAQEFAgIDAQEBAwQBAQECAAMDAwYDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwACAwMDAwMEAwgDAwMDAwMAAEQBAgEEBAQCAgQBAQIAAQMEAQEFAgIGBAEBAQYCAgEBAgMDAQEBAQACAAICAAQDAwIBAwMBAQEBAQEBRQAK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AARAQcjwyQApAwAhcUHA8MkAKQMADAELIApBuAFqELsRQdDwyQBBAToAAEHI8MkAIAopA8ABInE3AwAgCikDuAELIm03AxhBwPDJACBtQgF8NwMAIApBADYCMCAKQoCAgICAATcDKCAKIHE3AyAgCkGQqckAKQMANwI0IApBmKnJACkDADcCPEEJEJABIhBFDTwgEEHcsskALQAAOgAIIBBB1LLJACkAADcAACAKQQk2AoQBIAogEDYCgAEgCkEJNgJ8IApBuAFqIhAgEhD1AwJAAkAgCigCyAFBf0YNACAKIAopA+ABNwOwASAKIAopA9gBNwOoASAKIAopA9ABNwOgASAKIAopA8gBNwOYASAKIAopA8ABNwOQASAKIAopA7gBNwOIASAQIApBGGogCkH8AGogCkGIAWoQ0gMgCiAKKQPoATcDcCAKIAopA+ABNwNoIAogCikD2AE3A2AgCiAKKQPQASJtNwNYIAogCikDyAE3A1AgCiAKKQPAATcDSCBtp0F/RwRAIApByABqEP4JC0EMEJABIhBFDT4gEEH6sckAKAAANgAIIBBB8rHJACkAADcAACAKQQw2AoQBIAogEDYCgAEgCkEMNgJ8IApBuAFqIhAgEyBHEN8NIAooAsgBQX9GDQAgCiAKKQPgATcDsAEgCiAKKQPYATcDqAEgCiAKKQPQATcDoAEgCiAKKQPIATcDmAEgCiAKKQPAATcDkAEgCiAKKQO4ATcDiAEgECAKQRhqIApB/ABqIApBiAFqENIDIAogCikD6AE3A3AgCiAKKQPgATcDaCAKIAopA9gBNwNgIAogCikD0AEibTcDWCAKIAopA8gBNwNQIAogCikDwAE3A0ggbadBf0cEQCAKQcgAahD+CQtBDRCQASIQBEAgEEGOsckAKQAANwAFIBBBibHJACkAADcAACAKQQ02AoQBIAogEDYCgAEgCkENNgJ8IApBuAFqIhAgDiBGEN8NIAooAsgBQX9GDQEgCiAKKQPgATcDsAEgCiAKKQPYATcDqAEgCiAKKQPQATcDoAEgCiAKKQPIATcDmAEgCiAKKQPAATcDkAEgCiAKKQO4ATcDiAEgECAKQRhqIApB/ABqIApBiAFqENIDIAogCikD6AE3A3AgCiAKKQPgATcDaCAKIAopA9gBNwNgIAogCikD0AEibTcDWCAKIAopA8gBNwNQIAogCikDwAE3A0ggbadBf0cEQCAKQcgAahD+CQsgCyAKKQNANwMoIAsgCikDODcDICALIAopAzA3AxggCyAKKQMoNwMQIAsgCikDIDcDCCALIAopAxg3AwAgC0EKOgA8IAsgCikCDDcCMCALIAooAhQ2AjggEhCfBiAxKAIAIhAEQCATQQRrKAIAIhJBeHEhCyALIBBBA3QiEEEEQQggEkEDcSISG2pJDUEgEkEARyALIBBBJ2pLcQ1CIBMQvAULIBcoAgAiEwRAIA5BBGsoAgAiEEF4cSELIAsgE0EDdCITQQRBCCAQQQNxIhAbakkNQSAQQQBHIAsgE0EnaktxDUIgDhC8BQsgCkHwAWokAAwCCww+CyAKIAooArgBNgKIAUGIsMkAQSsgCkGIAWpBmLHJAEH4sskAENoSAAsgDyAPKAIAQQFrIgo2AgAgCkUEQCAJQfgJahDtDgsgCSAmKQIANwPQCCAJICYpAgg3A9gIIAkgJikCEDcD4AggCSAmKQIYNwPoCCAJICYoAiA2AvAIIAkoAsAEITEgCSgCxAQhLiAJKALIBCFGIAkoAvAEIQ8gCSkC9AQhcSAJLQD8BCFHIAkgTi0AAjoAzgggCSBOLwAAOwHMCCAJQfgIahDwBQwDCwJAIAtBAE4EfyALRQRAQQEhEwwDCyALEJABIhMNAUEBBUEACxCnFAALIAsEQCATIBEgC/wKAAALCyAJKAKsBSIQKAIAQQFqIREgECARNgIAIBFFDQRBGBCQASIRRQ05IBEgEDYCFCARIAs2AhAgESATNgIMIBEgCzYCCCARQoGAgIAQNwIAIAkoAqgFIgsoAgBBAWohEyALIBM2AgAgE0UNBCAJIAkpA6gJNwOIBCAJIAkpA6AJNwOABCAJIAkpA5gJNwP4AyAJIAkpA5AJNwPwAyAJIAkpA4gJNwPoAyAJIAkpA4AJNwPgAyAJIAkpA/gINwPYAyAJQcAEaiABIAsgESAJQdgDaiAOKAIkIA4oAiggByAOLQBFECYgCSgCwAQiC0F/RgRAIAkgJykCADcDwAkgCSAnKQIINwPICSAJICcpAhA3A9AJIAkgJykCGDcD2AkgCSAnKAIgNgLgCSAJIEAvAAA7AegJIAkgQC0AAjoA6gkgCSgC0AQhRiAJKALMBCEuIAkoAsgEITEgCSgC+AQhDyAJKQL8BCFxIAktAIQFIUcgCSAJKALgCTYC8AggCSAJKQPYCTcD6AggCSAJKQPQCTcD4AggCSAJKQPICTcD2AggCSAJKQPACTcD0AggCSAJLQDqCToAzgggCSAJLwHoCTsBzAgMAgsgCSAnKQIANwPACSAJICcpAgg3A8gJIAkgJykCEDcD0AkgCSAnKQIYNwPYCSAJICcoAiA2AuAJIAkgQC8AADsB6AkgCSBALQACOgDqCSAJKAL4BCEGIAkpAvwEIW0gCS0AhAUhESAJKQLEBCFuIAkpAswEIXIgCSAJKQPACTcD0AggCSAJKQPICTcD2AggCSAJKQPQCTcD4AggCSAJKQPYCTcD6AggCSAJKALgCTYC8AggCSAJLwHoCTsBzAggCSAJLQDqCToAzgggCSAXNgLIBCAJIBo2AsQEIAkgGzYCwAQgCSByNwLcBCAJIG43AtQEIDggCSkD0Ag3AgAgOCAJKQPYCDcCCCA4IAkpA+AINwIQIDggCSkD6Ag3AhggOCAJKALwCDYCICAJIBE6AJQFIAkgbTcCjAUgCSAGNgKIBSBPIAkvAcwIOwAAIE8gCS0Azgg6AAIgCSALNgLQBCAJQdgDaiAJQZgIaiAJQcAEaiAvEN0GIAlB+AhqIgYgHEHIAPwKAAAgCSgC+AhBf0cEQCAGEK4HCyAjIApByABqIgpHDQALDAILIBsEQCAaQQRrKAIAIgtBeHEhCiAKQQRBCCALQQNxIgsbIBtqSQ06IAtBAEcgCiAbQSdqS3ENOyAaELwFCyAJIAkoAvAINgLIByAJIAkpA+gINwPAByAJIAkpA+AINwO4ByAJIAkpA9gINwOwByAJIAkpA9AINwOoByAJIAkvAcwIOwGkByAJIAktAM4IOgCmBwsgIyAGa0HIAG4hCiAGICNGDQADQCAGQThqKAIAIgsEQCAGQTxqKAIAIhNBBGsoAgAiEUF4cSEOIA5BBEEIIBFBA3EiERsgC2pJDTogEUEARyAOIAtBJ2pLcQ07IBMQvAULIAYQ8AUgBkHIAGohBiAKQQFrIgoNAAsLIDQEQCAUQQRrKAIAIgpBeHEhBiAGIDRByABsIgtBBEEIIApBA3EiChtqSQ04IApBAEcgBiALQSdqS3ENOSAUELwFCyA2IAkpA8AINwMoIDYgCSkDuAg3AyAgNiAJKQOwCDcDGCA2IAkpA6gINwMQIDYgCSkDoAg3AwggNiAJKQOYCDcDACAJQX82AtAHIA9Bf0cEQCAJIAkoAsgHNgKgByAJIAkpA8AHNwOYByAJIAkpA7gHNwOQByAJIAkpA7AHNwOIByAJIAkpA6gHNwOAByAJIAkvAaQHOwH8BiAJIAktAKYHOgD+BiAJQdAHahDjCSAJIAkpA4AHIm03A9gGIAkgCSkDiAcibjcD4AYgCSAJKQOQByJvNwPoBiAJIAkpA5gHInA3A/AGIAkgCSgCoAciBjYC+AYgCSAJLwH8BjsB1AYgCSAJLQD+BjoA1gYgCSAGNgLwAiAJIHA3A+gCIAkgbzcD4AIgCSBuNwPYAiAJIG03A9ACIAkgCS0A1gY6AM4CIAkgCS8B1AY7AcwCIAwEQCANIQYDQAJAIAYoAgAiCkF/Rg0AIApFDQAgBkEEaigCACIRQQRrKAIAIg5BeHEhCyALQQRBCCAOQQNxIg4bIApqSQ07IA5BAEcgCyAKQSdqS3ENPCARELwFCyAGQRBqEK4HIAZB2ABqIQYgDEEBayIMDQALCyAYRQ0CIA1BBGsoAgAiCkF4cSEGIAYgGEHYAGwiC0EEQQggCkEDcSIKG2pJDTggCkEARyAGIAtBJ2pLcQ05IA0QvAUMAgsgCSAiKAIgNgKgByAJICIpAhg3A5gHIAkgIikCEDcDkAcgCSAiKQIINwOIByAJICIpAgA3A4AHIAkgTS8AADsB/AYgCSBNLQACOgD+BiAJKAKACCEGIAkpAoQIIW0gCS0AjAghCiAJIAkpA4AHIm43A9gGIAkgCSkDiAcicjcD4AYgCSAJKQOQByJ0NwPoBiAJIAkpA5gHInU3A/AGIAkgCSgCoAciCzYC+AYgCSAJLwH8BjsB1AYgCSAJLQD+BjoA1gYgKCALNgIgICggdTcCGCAoIHQ3AhAgKCByNwIIICggbjcCACAJIAo6AMwGIAkgbTcCxAYgPyAJLwHUBjsAACA/IAktANYGOgACIAkgBjYCwAYgCUF/NgKQBiAMIAxBAWpBAXYgbUKAgICAEFQbIgYgbadLBEAgWiAGIAkoArQGIAkoArgGEMcDCyAJKAKwBiILIAkoArgGIgprIAZJBEACQAJAIAZBl7rRCyAJKALEBiAJKALIBmoiDyAPQZe60QtPGyIRIAprTwRAIAkoArQGIQ4MAQsgCSgCtAYhDiAKIA9LDQAgCUHABGogCyAOIBFBCEHYABClESAJKALABEEBRg0ADAELIAlBwARqIAsgDiAGIApqIhFBCEHYABClESAJKALABEEBRw0ADDQLIAkoAsQEIQYgCSARNgKwBiAJIAY2ArQGCyAMBEAgDEHYAGwhDCANIQYDQCAJQcAEaiIKIAZB2AD8CgAAIAlB2ANqIEkgCiAvEN0GIAlB+AhqIgogHEHIAPwKAAAgCSgC+AhBf0cEQCAKEK4HCyAGQdgAaiEGIAxB2ABrIgwNAAsLAkACQAJAAn8gGARAIA1BBGsoAgAiBkF4cSEKIAogGEHYAGwiDkEEQQggBkEDcSIGG2pJDTwgBkEARyAKIA5BJ2pLcQ09IA0QvAULAkACQAJAIAUoAhAiGEF/RiIaRQRAIAVBGGooAgAiCkUNAiAFQRRqKAIAIQYgCkEMbCIUEJABIg9FDUNBACEMIAohDQNAIAwgFEcEQEF/IRIgBigCCCELIAYoAgQhEQJAIAYoAgBBf0YEQCARIQ4MAQsgC0UEQEEAIRJBASEODAELIAsQkAEiDkUNQSALBEAgDiARIAv8CgAACyALIRILIAZBDGohBiAMIA9qIhEgEjYCACARQQhqIAs2AgAgEUEEaiAONgIAIAxBDGohDCANQQFrIg0NAQsLIA9BCGohBkEAIRIgCiEMA0AgCSBJIAZBBGsoAgAgBigCABCbDSAGQQxqIQYgEiAJKAIAQQFGaiESIAxBAWsiDA0ACyAPIQYDQAJAIAYoAgAiDUF/Rg0AIA1FDQAgBkEEaigCACIRQQRrKAIAIgtBeHEhDiAOQQRBCCALQQNxIgsbIA1qSQ1BIAtBAEcgDiANQSdqS3ENQiARELwFCyAGQQxqIQYgCkEBayIKDQALIA9BBGsoAgAiBkF4cSEKIApBBEEIIAZBA3EiBhsgFGpJDT8gBkEARyAKIBRBJ2pLcQ1AIA8QvAUMAQsgCSgCyAYhEgsgBSgCDCEXIAUoAggiI0EBRw0BIBIgF00NAUEAIQwgCUEANgLIBCAJQoCAgIDAADcCwARBBCEbQQAhCkEEIRACQCAJKAKoBSIGKAIIQX9GDQBBBCETQQghDkEBIQ1BBCELA0AgDiERIA0hDyAGKAIQIQ0gBigCDCEOIAkoAsAEIApGBEAgCUHABGoQlhIgCSgCxAQhEwsgCyATaiIUIA02AgAgFEEEayAONgIAIAkgCkEBaiIKNgLIBCAPQQFqIQ0gEUEIaiEOIAtBCGohCyAGKAIUIgYoAghBf0cNAAsgCSgCxAQhECAKQQF2IgtFDQAgECAKQQN0aiENQQAhBiALQQFHBEAgC0EBcSAPQQF2Qf7///8HcSEPQQAhCwNAIBAgEWpBCGsiDikCACFtIA4gCyAQaiIOKQIANwIAIA4gbTcCACAOQQhqIg4pAgAhbSAOIA0gBkH+////AXNBA3RqIg4pAgA3AgAgDiBtNwIAIBFBEGshESALQRBqIQsgDyAGQQJqIgZHDQALRQ0BCyAQIAZBA3RqIgspAgAhbSALIA0gBkF/c0EDdGoiBikCADcCACAGIG03AgALIAkoAsAEIRogCUEANgLIBCAJQoCAgIDAADcCwAQCQCAJKAKsBSIGKAIIQX9GDQBBBCETQQghDkEBIQ1BBCELA0AgDiERIA0hDyAGKAIQIQ0gBigCDCEOIAkoAsAEIAxGBEAgCUHABGoQlhIgCSgCxAQhEwsgCyATaiIUIA02AgAgFEEEayAONgIAIAkgDEEBaiIMNgLIBCAPQQFqIQ0gEUEIaiEOIAtBCGohCyAGKAIUIgYoAghBf0cNAAsgCSgCxAQhGyAMQQF2IgtFDQAgGyAMQQN0aiENQQAhBiALQQFHBEAgC0EBcSAPQQF2Qf7///8HcSEPQQAhCwNAIBEgG2pBCGsiDikCACFtIA4gCyAbaiIOKQIANwIAIA4gbTcCACAOQQhqIg4pAgAhbSAOIA0gBkH+////AXNBA3RqIg4pAgA3AgAgDiBtNwIAIBFBEGshESALQRBqIQsgDyAGQQJqIgZHDQALRQ0BCyAbIAZBA3RqIgspAgAhbSALIA0gBkF/c0EDdGoiBikCADcCACAGIG03AgALQX8hFCAJKALABCEjIAUoAgQhEwJAIBhBf0YNACAFQRhqKAIAIhRFBEBBBCFLQQAhFEEAIUgMAQsgBUEUaigCACEGIBRBDGwiSBCQASJLRQ1CQQAhCyAUIRgDQCALIEhHBEBBfyENIAYoAgghESAGKAIEIQ4CQCAGKAIAQX9GBEAgDiEPDAELIBFFBEBBACENQQEhDwwBCyAREJABIg9FDUAgEQRAIA8gDiAR/AoAAAsgESENCyAGQQxqIQYgCyBLaiIOIA02AgAgDkEIaiARNgIAIA5BBGogDzYCACALQQxqIQsgGEEBayIYDQELCyAUIUgLIAlBwAlqIAUQkQcgCSASNgK0CCAJIEg2ArAIIAkgSzYCrAggCSAUNgKoCCAJIBc2AqQIIAlBATYCoAggCSATNgKcCCAJIDA2ApgIIAkgczcDwAQgCUGoB2pB1JnAACAJQcAEahC4DAJ+QdDwyQAtAAAEQEHI8MkAKQMAIW5BwPDJACkDAAwBCyAJQcAEahC7EUHQ8MkAQQE6AABByPDJACAJKQPIBCJuNwMAIAkpA8AECyFtID4gbzcCACA+IHA3AgggCSBtNwPQB0HA8MkAIG1CAXw3AwAgCUEANgLoByAJQoCAgICAATcD4AcgCSBuNwPYB0EJEJABIgZFDTwgBkHcsskALQAAOgAIIAZB1LLJACkAADcAACAJQQk2AtgIIAkgBjYC1AggCUEJNgLQCCAJQcAEaiIGIAlBwAlqEPUDIAkoAtAEQX9GDTkgCSAJKQPoBDcDgAQgCSAJKQPgBDcD+AMgCSAJKQPYBDcD8AMgCSAJKQPQBDcD6AMgCSAJKQPIBDcD4AMgCSAJKQPABDcD2AMgBiAJQdAHaiAJQdAIaiAJQdgDahDSAyAJIBYpAyg3A6AJIAkgFikDIDcDmAkgCSAWKQMYNwOQCSAJIBYpAxAibTcDiAkgCSAWKQMINwOACSAJIBYpAwA3A/gIIG2nQX9HBEAgCUH4CGoQ/gkLQQwQkAEiBkUNPCAGQfqxyQAoAAA2AAggBkHysckAKQAANwAAIAlBDDYC2AggCSAGNgLUCCAJQQw2AtAIIAlBwARqIgYgGyAMEN8NIAkoAtAEQX9GDTkgCSAJKQPoBDcDgAQgCSAJKQPgBDcD+AMgCSAJKQPYBDcD8AMgCSAJKQPQBDcD6AMgCSAJKQPIBDcD4AMgCSAJKQPABDcD2AMgBiAJQdAHaiAJQdAIaiAJQdgDahDSAyAJIBYpAyg3A6AJIAkgFikDIDcDmAkgCSAWKQMYNwOQCSAJIBYpAxAibTcDiAkgCSAWKQMINwOACSAJIBYpAwA3A/gIIG2nQX9HBEAgCUH4CGoQ/gkLQQ0QkAEiBkUNPCAGQY6xyQApAAA3AAUgBkGJsckAKQAANwAAIAlBDTYC2AggCSAGNgLUCCAJQQ02AtAIIAlBwARqIgYgECAKEN8NIAkoAtAEQX9GDTkgCSAJKQPoBDcDgAQgCSAJKQPgBDcD+AMgCSAJKQPYBDcD8AMgCSAJKQPQBDcD6AMgCSAJKQPIBDcD4AMgCSAJKQPABDcD2AMgBiAJQdAHaiAJQdAIaiAJQdgDahDSAyAJIBYpAyg3A6AJIAkgFikDIDcDmAkgCSAWKQMYNwOQCSAJIBYpAxAibTcDiAkgCSAWKQMINwOACSAJIBYpAwA3A/gIIG2nQX9HBEAgCUH4CGoQ/gkLQQsQkAEiBkUNPCAGQeSyyQAoAAA2AAcgBkHdsskAKQAANwAAIAlBCzYC2AggCSAGNgLUCCAJQQs2AtAIIAlBwARqIgYgCUGYCGoQ+QQgCSgC0ARBf0YNOSAJIAkpA+gENwOABCAJIAkpA+AENwP4AyAJIAkpA9gENwPwAyAJIAkpA9AENwPoAyAJIAkpA8gENwPgAyAJIAkpA8AENwPYAyAGIAlB0AdqIAlB0AhqIAlB2ANqENIDIAkgFikDKDcDoAkgCSAWKQMgNwOYCSAJIBYpAxg3A5AJIAkgFikDECJtNwOICSAJIBYpAwg3A4AJIAkgFikDADcD+AggbadBf0cEQCAJQfgIahD+CQsgCSAiKQIANwPABCAJICIpAgg3A8gEIAkgIikCEDcD0AQgCSAiKQIYNwPYBCAJICIoAiA2AuAEIAkoAtAHIRQgCSgC1AchFyAJKALYByETIAkpAqwHIW0gCSgCqAchDwJAIAkoAqgIIgtBf0YNACAJKAKsCCEKIAkoArAIIgwEQCAKIQYDQCAGKAIAIg1BAEoEQCAGQQRqKAIAIhFBBGsoAgAiEkF4cSEOIA5BBEEIIBJBA3EiEhsgDWpJDUEgEkEARyAOIA1BJ2pLcQ1CIBEQvAULIAZBDGohBiAMQQFrIgwNAAsLIAtFDQAgCkEEaygCACINQXhxIQYgBiALQQxsIgtBBEEIIA1BA3EiDRtqSQ0+IA1BAEcgBiALQSdqS3ENPyAKELwFCyAjBEAgG0EEaygCACIKQXhxIQYgBiAjQQN0IgtBBEEIIApBA3EiChtqSQ0+IApBAEcgBiALQSdqS3ENPyAbELwFCyAaBEAgEEEEaygCACIKQXhxIQYgBiAaQQN0IgtBBEEIIApBA3EiChtqSQ0+IApBAEcgBiALQSdqS3ENPyAQELwFCyAJIAkpA8AENwPQAiAJIAkpA8gENwPYAiAJIAkpA9AENwPgAiAJIAkpA9gENwPoAiAJIAkoAuAENgLwAiAJQcAJahCfBkEFDAILIAUoAgwhFyAFKAIIISNBACESCwJAAkACQAJAAkAgMEEBRgRAIAUoAgQiFCASSw0BCyAFKAIsIgFBf0cNAUF/IRIMAgtBACEMIAlBADYCyAQgCUKAgICAwAA3AsAEQQQhG0EAIQpBBCEQAkAgCSgCqAUiBigCCEF/Rg0AQQQhE0EIIQ5BASENQQQhCwNAIA4hESANIQ8gBigCECENIAYoAgwhDiAJKALABCAKRgRAIAlBwARqEJYSIAkoAsQEIRMLIAsgE2oiECANNgIAIBBBBGsgDjYCACAJIApBAWoiCjYCyAQgD0EBaiENIBFBCGohDiALQQhqIQsgBigCFCIGKAIIQX9HDQALIAkoAsQEIRAgCkEBdiILRQ0AIBAgCkEDdGohDUEAIQYgC0EBRwRAIAtBAXEgD0EBdkH+////B3EhD0EAIQsDQCAQIBFqQQhrIg4pAgAhbSAOIAsgEGoiDikCADcCACAOIG03AgAgDkEIaiIOKQIAIW0gDiANIAZB/v///wFzQQN0aiIOKQIANwIAIA4gbTcCACARQRBrIREgC0EQaiELIA8gBkECaiIGRw0AC0UNAQsgECAGQQN0aiILKQIAIW0gCyANIAZBf3NBA3RqIgYpAgA3AgAgBiBtNwIACyAJKALABCEYIAlBADYCyAQgCUKAgICAwAA3AsAEAkAgCSgCrAUiBigCCEF/Rg0AQQQhE0EIIQ5BASENQQQhCwNAIA4hESANIQ8gBigCECENIAYoAgwhDiAJKALABCAMRgRAIAlBwARqEJYSIAkoAsQEIRMLIAsgE2oiGyANNgIAIBtBBGsgDjYCACAJIAxBAWoiDDYCyAQgD0EBaiENIBFBCGohDiALQQhqIQsgBigCFCIGKAIIQX9HDQALIAkoAsQEIRsgDEEBdiILRQ0AIBsgDEEDdGohDUEAIQYgC0EBRwRAIAtBAXEgD0EBdkH+////B3EhD0EAIQsDQCARIBtqQQhrIg4pAgAhbSAOIAsgG2oiDikCADcCACAOIG03AgAgDkEIaiIOKQIAIW0gDiANIAZB/v///wFzQQN0aiIOKQIANwIAIA4gbTcCACARQRBrIREgC0EQaiELIA8gBkECaiIGRw0AC0UNAQsgGyAGQQN0aiILKQIAIW0gCyANIAZBf3NBA3RqIgYpAgA3AgAgBiBtNwIACyAJKALABCELIBoNAiAJQYAHaiAFQRRqKAIAIAVBGGooAgAQvQ8MAwtBAiESAkACQAJAAkBBAyABQQJrIAFBAU0bQQFrDgQAAQIDBAtBAyESDAMLQeQAEJABIgtFDT4gCyAFKAIwEOEGQQQhEgwCCyAFKAI4IQYgBSgCNCERIAUoAjAiCygCACEFIAsgBUEBajYCACABQQFGBEAgBUEASA0JQQEhEgwCCyAFQQBIDQhBACESDAELQQYhEgsCQCAJKAKQBiIBQX9GDQACQAJAQQMgAUECayABQQFNG0ECaw4CAAECCyBKEMYRDAELAkAgAUUEQCAJKAKUBiIFKAIAIQEgBSABQQFrNgIAIAFBAUYNAQwCCyAJKAKUBiIFKAIAIQEgBSABQQFrNgIAIAFBAUcNAQsgCSgClAYQMAsgCSAGNgKcBiAJID8vAAA7AcwCIAkgPy0AAjoAzgIgCSAoKQIANwPQAiAJICgpAgg3A9gCIAkgKCkCEDcD4AIgCSAoKQIYNwPoAiAJICgoAiA2AvACIAkoAsAGIQUgCSkCxAYhbSAJLQDMBiEHIAlB4AVqEPALAkAgCSgC0AUiAUUNACABIAFBAnRBC2pBeHEiAWpBCWoiBkUNACAJKALMBSABayAGENkSCyAJKALEBSEBIAkoAsgFIgwEQCABIQYDQCAGKAIAIghBAEoEQCAGQQRqKAIAIAgQ2RILIAZBEGohBiAMQQFrIgwNAAsLIAkoAsAFIgYEQCABIAZBBHQQ2RILAkAgIEUNACAgQQJ0QQtqQXhxIgEgIGpBCWoiBkUNACA3IAFrIAYQ2RILICEEQCAVIQYDQCAGKAIAIgFBAEoEQCAGQQRqKAIAIAEQ2RILIAZBEGohBiAhQQFrIiENAAsLICUEQCAVICVBBHQQ2RILIAkoAqwFIgYoAgBBAWshASAGIAE2AgAgAUUEQCAJQawFahDtDgsgCSgCqAUiBigCAEEBayEBIAYgATYCACABRQRAIAlBqAVqEO0OCyAsIAkoAvACNgIgICwgCSkD6AI3AhggLCAJKQPgAjcCECAsIAkpA9gCNwIIICwgCSkD0AI3AgAgPSAJLwHMAjsAACA9IAktAM4COgACIAkgBzoAxAIgCSBtNwK8AiAJIAU2ArgCIAkgETYCkAIgCSALNgKMAiAJIBI2AogCIAlBBDYCgAIgACAJQYACakHIAPwKAAAgCUHQAWoQhgwgCSgCIEEBaw4EAwQPBTQLIAlBfzYCgAcLIAlBwAlqIAUQkQcgTCAJKQKABzcCACBMIAkoAogHNgIIIAkgFzYCpAggCSAjNgKgCCAJIBQ2ApwIIAlBATYCmAggCSASNgK0CCAJIHM3A8AEIAlBqAdqQYGdwAAgCUHABGoQuAwCfkHQ8MkALQAABEBByPDJACkDACFuQcDwyQApAwAMAQsgCUHABGoQuxFB0PDJAEEBOgAAQcjwyQAgCSkDyAQibjcDACAJKQPABAshbSA+IG83AgAgPiBwNwIIIAkgbTcD0AdBwPDJACBtQgF8NwMAIAlBADYC6AcgCUKAgICAgAE3A+AHIAkgbjcD2AdBCRCQASIGRQ06IAZB3LLJAC0AADoACCAGQdSyyQApAAA3AAAgCUEJNgLYCCAJIAY2AtQIIAlBCTYC0AggCUHABGoiBiAJQcAJahD1AyAJKALQBEF/Rg04IAkgCSkD6AQ3A4AEIAkgCSkD4AQ3A/gDIAkgCSkD2AQ3A/ADIAkgCSkD0AQ3A+gDIAkgCSkDyAQ3A+ADIAkgCSkDwAQ3A9gDIAYgCUHQB2ogCUHQCGogCUHYA2oQ0gMgCSAWKQMoNwOgCSAJIBYpAyA3A5gJIAkgFikDGDcDkAkgCSAWKQMQIm03A4gJIAkgFikDCDcDgAkgCSAWKQMANwP4CCBtp0F/RwRAIAlB+AhqEP4JC0EMEJABIgZFDTogBkH6sckAKAAANgAIIAZB8rHJACkAADcAACAJQQw2AtgIIAkgBjYC1AggCUEMNgLQCCAJQcAEaiIGIBsgDBDfDSAJKALQBEF/Rg04IAkgCSkD6AQ3A4AEIAkgCSkD4AQ3A/gDIAkgCSkD2AQ3A/ADIAkgCSkD0AQ3A+gDIAkgCSkDyAQ3A+ADIAkgCSkDwAQ3A9gDIAYgCUHQB2ogCUHQCGogCUHYA2oQ0gMgCSAWKQMoNwOgCSAJIBYpAyA3A5gJIAkgFikDGDcDkAkgCSAWKQMQIm03A4gJIAkgFikDCDcDgAkgCSAWKQMANwP4CCBtp0F/RwRAIAlB+AhqEP4JC0ENEJABIgZFDTogBkGOsckAKQAANwAFIAZBibHJACkAADcAACAJQQ02AtgIIAkgBjYC1AggCUENNgLQCCAJQcAEaiIGIBAgChDfDSAJKALQBEF/Rg04IAkgCSkD6AQ3A4AEIAkgCSkD4AQ3A/gDIAkgCSkD2AQ3A/ADIAkgCSkD0AQ3A+gDIAkgCSkDyAQ3A+ADIAkgCSkDwAQ3A9gDIAYgCUHQB2ogCUHQCGogCUHYA2oQ0gMgCSAWKQMoNwOgCSAJIBYpAyA3A5gJIAkgFikDGDcDkAkgCSAWKQMQIm03A4gJIAkgFikDCDcDgAkgCSAWKQMANwP4CCBtp0F/RwRAIAlB+AhqEP4JC0ELEJABIgZFDTogBkHksskAKAAANgAHIAZB3bLJACkAADcAACAJQQs2AtgIIAkgBjYC1AggCUELNgLQCCAJQcAEaiIGIAlBmAhqEPkEIAkoAtAEQX9GDTggCSAJKQPoBDcDgAQgCSAJKQPgBDcD+AMgCSAJKQPYBDcD8AMgCSAJKQPQBDcD6AMgCSAJKQPIBDcD4AMgCSAJKQPABDcD2AMgBiAJQdAHaiAJQdAIaiAJQdgDahDSAyAJIBYpAyg3A6AJIAkgFikDIDcDmAkgCSAWKQMYNwOQCSAJIBYpAxAibTcDiAkgCSAWKQMINwOACSAJIBYpAwA3A/gIIG2nQX9HBEAgCUH4CGoQ/gkLIAkgIikCADcDwAQgCSAiKQIINwPIBCAJICIpAhA3A9AEIAkgIikCGDcD2AQgCSAiKAIgNgLgBCAJKALQByEUIAkoAtQHIRcgCSgC2AchEyAJKQKsByFtIAkoAqgHIQ8CQCAJKAKoCCINQX9GDQAgCSgCrAghCiAJKAKwCCIMBEAgCiEGA0AgBigCACIOQQBKBEAgBkEEaigCACIRQQRrKAIAIhpBeHEhEiASQQRBCCAaQQNxIhobIA5qSQ0/IBpBAEcgEiAOQSdqS3ENQCARELwFCyAGQQxqIQYgDEEBayIMDQALCyANRQ0AIApBBGsoAgAiDkF4cSEGIAYgDUEMbCINQQRBCCAOQQNxIg4bakkNPCAOQQBHIAYgDUEnaktxDT0gChC8BQsgCwRAIBtBBGsoAgAiCkF4cSEGIAYgC0EDdCILQQRBCCAKQQNxIgobakkNPCAKQQBHIAYgC0EnaktxDT0gGxC8BQsgGARAIBBBBGsoAgAiCkF4cSEGIAYgGEEDdCILQQRBCCAKQQNxIgobakkNPCAKQQBHIAYgC0EnaktxDT0gEBC8BQsgCSAJKQPABDcD0AIgCSAJKQPIBDcD2AIgCSAJKQPQBDcD4AIgCSAJKQPYBDcD6AIgCSAJKALgBDYC8AIgCUHACWoQnwZBBAshGyAJQZAGahDjCQwFCyA8RQ0wDA0LIEUQwgUgCSgCJCIARQ0vIAkoAiggAEE4bBDZEgwvCyA7RQ0uDAsLAAsgRyEbIHEhbSAxIRQgLiEXIEYhEwsgCUHgBWoQ8AsCQCAJKALQBSIGRQ0AIAZBAnRBC2pBeHEiCiAGakEJaiIGRQ0AIAkoAswFIAprIgtBBGsoAgAiDUF4cSEKIApBBEEIIA1BA3EiDRsgBmpJDTUgDUEARyAKIAZBJ2pLcQ02IAsQvAULIAkoAsQFIQogCSgCyAUiDARAIAohBgNAIAYoAgAiC0EASgRAIAZBBGooAgAiEUEEaygCACIOQXhxIQ0gDUEEQQggDkEDcSIOGyALakkNNyAOQQBHIA0gC0EnaktxDTggERC8BQsgBkEQaiEGIAxBAWsiDA0ACwsgCSgCwAUiCwRAIApBBGsoAgAiDUF4cSEGIAYgC0EEdCILQQRBCCANQQNxIg0bckkNNSANQQBHIAYgC0EnaktxDTYgChC8BQsCQCAgRQ0AICBBAnRBC2pBeHEiCiAgakEJaiIGRQ0AIDcgCmsiC0EEaygCACINQXhxIQogCkEEQQggDUEDcSINGyAGakkNNSANQQBHIAogBkEnaktxDTYgCxC8BQsgIQRAIBUhBgNAIAYoAgAiCkEASgRAIAZBBGooAgAiC0EEaygCACINQXhxIREgEUEEQQggDUEDcSINGyAKakkNNyANQQBHIBEgCkEnaktxDTggCxC8BQsgBkEQaiEGICFBAWsiIQ0ACwsgJUUNACAVQQRrKAIAIgpBeHEhBiAGICVBBHQiC0EEQQggCkEDcSIKG3JJDTQgCkEARyAGIAtBJ2pLcUUEQCAVELwFDAELDDULIAkoAqwFIgooAgBBAWshBiAKIAY2AgAgBkUEQCAJQawFahDtDgsgCSgCqAUiCigCAEEBayEGIAogBjYCACAGRQRAIAlBqAVqEO0OCyAsIAkoAvACNgIgICwgCSkD6AI3AhggLCAJKQPgAjcCECAsIAkpA9gCNwIIICwgCSkD0AI3AgAgPSAJLwHMAjsAACA9IAktAM4COgACIAkgGzoAxAIgCSBtNwK8AiAJIA82ArgCIAkgEzYCkAIgCSAXNgKMAiAJIBQ2AogCIAlBfzYCgAIgCSgCHCIKIAkoAhRGBEAgCUEUahCVEgsgCSgCGCIPIApBBnRqIgYgMykDADcDACAGIDMpAwg3AwggBiAzKQMQNwMQIAYgMykDGDcDGCAGIDMpAyA3AyAgBiAzKQMoNwMoIAYgMykDMDcDMCAGIDMpAzg3AzggCSAKQQFqIg02AhwgCUHQAWoQhgwCQAJAIAkoAiBBAWsOBAADCAEiCyA8RQ0hDAkLIDtFDSAMCAsgCSgCGCIPIAtBBnRqIgogGSkCADcCACAKIBkpAgg3AgggCiAZKQIQNwIQIAogGSkCGDcCGCAKIBkpAiA3AiAgCiAZKQIoNwIoIAogGSkCMDcCMCAKIBkpAjg3AjggCSALQQFqIg02AhwgBkEBaw4EBwAFBx8LIEUQwgUgCSgCJCIKRQ0eIAkoAigiC0EEaygCACIOQXhxIQYgBiAKQThsIgpBBEEIIA5BA3EiDhtqSQ0xIA5BAEcgBiAKQSdqS3FFBEAgCxC8BQwfCwwyCyAOIAZrQThuIQwgBiAORg0AA0AgBhDwBSAGQThqIQYgDEEBayIMDQALC0EIIQtBACESIAoEQCARQQRrKAIAIgpBeHEhBiAGQQRBCCAKQQNxIgobIA1qSQ0wIApBAEcgBiANQSdqS3ENMSARELwFC0EAIQwLIAkoArACIgpBf0cEQCAJIC0pAgA3A5gIIAkgLSkCCDcDoAggCSAtKQIQNwOoCCAJIC0pAhg3A7AIIAkgLSgCIDYCuAggCSBEKQIANwOwBSAJIEQoAgg2ArgFIAkoAogCIREgCSgChAIhDSAJKAKAAiEOIAwEQCALIQYDQCAGEK4HIAZByABqIQYgDEEBayIMDQALCyASBEAgC0EEaygCACIPQXhxIQYgBiASQcgAbCIMQQRBCCAPQQNxIg8bakkNMCAPQQBHIAYgDEEnaktxDTEgCxC8BQsgOiAJKAK4CDYCICA6IAkpA7AINwIYIDogCSkDqAg3AhAgOiAJKQOgCDcCCCA6IAkpA5gINwIAIFUgCSkDsAU3AgAgVSAJKAK4BTYCCCAJIAo2ApAEIAkgETYC6AMgCSANNgLkAyAJIA42AuADIAlBfzYC2AMgCSgCHCIKIAkoAhRGBEAgCUEUahCVEgsgCSgCGCIPIApBBnRqIgYgHCkDADcDACAGIBwpAwg3AwggBiAcKQMQNwMQIAYgHCkDGDcDGCAGIBwpAyA3AyAgBiAcKQMoNwMoIAYgHCkDMDcDMCAGIBwpAzg3AzggCSAKQQFqIg02AhwgCUH4AmoQwgUgCSgC+AIiCgRAIAkoAvwCIgtBBGsoAgAiDkF4cSEGIAYgCkE4bCIKQQRBCCAOQQNxIg4bakkNMCAOQQBHIAYgCkEnaktxDTEgCxC8BQsgCSgCIEEBaw4EBBwCBBwLIAkgDDYC5AMgCSALNgLgAyAJIBI2AtwDIAlBAzYC2AMgACAJQdgDakHIAPwKAAAgCUH4AmoQwgUgCSgC+AIiAQRAIAkoAvwCIgVBBGsoAgAiBkF4cSEAIAAgAUE4bCIBQQRBCCAGQQNxIgYbakkNLyAGQQBHIAAgAUEnaktxDTAgBRC8BQsgCSgCIEEBaw4EAiUAAiULIAlBIGoQ8AUMJAsgCUEgahDwBQwZCyAdEIYMDCILIB0QhgwMFwsCQAJAAkACQAJAAkACQEEDIAooAgAiBkECayAGQQFNG0EBaw4DAQUFAAsgCi0ABCEGAkACQAJAAkACQAJAAkACQAJAIAkoAoQCIgsoAgBBAWsODAsBAgMEBQUKBgcIDAALIAZBAWsOCgsNDQ0NDQ0NDQsNCyAGQQFHDQwMCgsgBkECa0EDTw0LDAkLIAZBAWsOCggKCgoKCgoKCggKCyAGQQlHDQkgC0EEaigCACgCAEEOcUEGRw0JDAcLIAZBCEcNCAwGCyAGQQ5xQQRHDQcMBQsgBkEDRw0GDAQLIAZBC0cNBQwDCyAJKAKEAigCAEECRw0EDAILIAZBB0YNAQwDCyAGQQZHDQILIAkgHigCEDYClAkgCSAeKQIINwKMCSAJIB4pAgA3AoQJDAQLQcQAEJABIgYEQCAGQeCYxgBBxAD8CgAAIAlBADoAvAkgCUHEADYCuAkgCSAGNgK0CSAJQcQANgKwCSAJQX82ApAJDAcLDCkLIAlBwARqIgsgChDhBkHkABCQASIGBEAgBiALQeQA/AoAACAJIAY2AtwDIAlBBDYC2AMgKSACIAMgCUHYA2ogBBC5ASBUEMYRDAYLDCcLIAooAgBBAkcNACAKLQAEQQhHDQBBCBCQASIBRQ0mIAFBBjYCACAJIAkpAjQ3AowJIAkgCSgCPDYClAkgCSABNgKICSAJQQU2AoQJIB4QwBIMAQsgCUHABGoiCyAKEOEGQeQAEJABIgZFDSUgBiALQeQA/AoAACAJIAY2AtwDIAlBBDYC2AMgKSACIAMgCUHYA2ogBBC5ASBUEMYRDAMLIAlBGjYCgAkgCUEANgL4CCAAIAlB+AhqQcgA/AoAAAsgFUEaRg0cCyAJQZAGahCIBAwbCyAJQX82AvgIIB4hBgJAIAkoAogCIgpBAEwNACAJKAKMAiILQQRrKAIAIg1BeHEhBiAGQQRBCCANQQNxIg0bIApqSQ0kIA1BAEcgBiAKQSdqS3FFBEAgCxC8BSAJQYACaiEGDAELDCULIAYQwBIgCSgCHCINIAkoAhRGBEAgCUEUahCVEgsgCSgCGCIPIA1BBnRqIgYgKSkDADcDACAGICkpAwg3AwggBiApKQMQNwMQIAYgKSkDGDcDGCAGICkpAyA3AyAgBiApKQMoNwMoIAYgKSkDMDcDMCAGICkpAzg3AzgLIAkgDUEBaiINNgIcIBVBGkcNDQwPCyAJQX82ArACIAkgCSkDgAk3A4gCIAlBEDYCgAILIAkoAsAEIgZFDQcgCSgCxAQgBkECdBDZEgwHCyAJQfgIaiEKIAkpA9gHIW1BACEOIwBBEGsiBiQAAkAgbUIAUwRAIAZBADYCDCAGQoCAgIDAADcCBEIAIG19IW1BASENQQQhCwNAIAYoAgQgDUEBa0YEQCAGQQRqELwSIAYoAgghCwsgCyAOaiBtPgIAIA5BBGohDiAGIA02AgwgDUEBaiENIG1CIIgibUIAUg0ACyAKIAYoAgw2AgggCiAGKQIENwIAIApBADoADAwBCyBtUARAIApBADYCCCAKQoCAgIDAADcCACAKQQE6AAwMAQsgBkEANgIMIAZCgICAgMAANwIEQQEhDUEEIQsDQCAGKAIEIA1BAWtGBEAgBkEEahC8EiAGKAIIIQsLIAsgDmogbT4CACAOQQRqIQ4gBiANNgIMIA1BAWohDSBtQiCIIm1CAFINAAsgCiAGKAIMNgIIIAogBikCBDcCACAKQQI6AAwLIAZBEGokACAZIAkpA4AJNwIIIBkgCSkD+Ag3AgAgHyAJKQLABDcCACAfIAkpAsgENwIIIB8gCSgC0AQ2AhAgCUEXNgKAAiAJQX82ArACIAlCADcDmAIMAwsgCUECNgLABCAJIAY6AMQEIAlB+AhqIAIgAyAJQcAEaiAEELkBIAkgCSkDsAk3A7gCIAkgCSkDqAk3A7ACIAkgCSkDoAk3A6gCIAkgCSkDmAk3A6ACIAkgCSkDkAk3A5gCIAkgCSkDiAk3A5ACIAkgCSkDgAk3A4gCIAkgCSkD+Ag3A4ACDAILIAlBAjYCwAQgCSAGOgDEBCAJQfgIaiACIAMgCUHABGogBBC5ASAJIAkpA7AJNwO4AiAJIAkpA6gJNwOwAiAJIAkpA6AJNwOoAiAJIAkpA5gJNwOgAiAJIAkpA5AJNwOYAiAJIAkpA4gJNwOQAiAJIAkpA4AJNwOIAiAJIAkpA/gINwOAAiAJKALcByIGQX9HDQIMAwsgCUF/NgKwAiAJIAktANQHOgCEAiAJQQ42AoACCyAJQdAHahCIBAwCCyAGRQ0AIAkoAuAHIAYQ2RILIFkQwBILIAkoArACQX9HDQELIAkgCSkDgAI3AsQEIAkgCSkDiAI3AswEIAkgCSkDkAI3AtQEIAkgCSkDmAI3AtwEIAlBADYC2AMgCSAJKQLABDcC3AMgCSAJKQLIBDcC5AMgCSAJKQLQBDcC7AMgCSAJKQLYBDcC9AMgCSAJKALgBDYC/AMgACAJQdgDakHIAPwKAAAMDgsgHCAJKQO4AjcDOCAcIAkpA7ACNwMwIBwgCSkDqAI3AyggHCAJKQOgAjcDICAcIAkpA5gCNwMYIBwgCSkDkAI3AxAgHCAJKQOIAjcDCCAcIAkpA4ACNwMAIAlBfzYC2AMgCSgCHCIKIAkoAhRGBEAgCUEUahCVEgsgCSgCGCIPIApBBnRqIgYgHCkDADcDACAGIBwpAwg3AwggBiAcKQMQNwMQIAYgHCkDGDcDGCAGIBwpAyA3AyAgBiAcKQMoNwMoIAYgHCkDMDcDMCAGIBwpAzg3AzggCSAKQQFqIg02AhwMAwsgFUEaRg0BCyAJQZAGahCIBAwBCwJAAkAgCSgCnAYiBkF/Rg0AIAZFDQAgCSgCoAYiC0EEaygCACIOQXhxIQogCkEEQQggDkEDcSIOGyAGakkNFSAOQQBHIAogBkEnaktxDQEgCxC8BQsgShDAEgwBCwwUCyBXIAVB5ABqIgVHDQALAkAgDQ4CAQIACyAJKAIUIRUgDUEMbCIIEJABIgFFDRUgCUH4CGqtIm1CgICAgMAohCFxIA8hDCABIQYgDSEKA0AgCSAMNgL4CCAJIHE3A9gDIAlBwARqQc+twAAgCUHYA2oQuAwgBiAJKALIBDYCCCAGIAkpAsAENwIAIAZBDGohBiAMQUBrIQwgCkEBayIKDQALAkAgAUEIaigCACIFIAhBDGsiBkEMbkEBdGoiCiAFTwRAIAFBDGohDCABQQRqKAIAIQsDQCAGRQ0CIAxBCGogBkEMayEGIAxBDGohDCgCACIHIApqIgogB08NAAsLQdiryQBBNUGQrMkAEMATAAsgCkEASA0TIABBCGohBwJAIApFBEBBASEGDAELIAoQkAEiBkUNEQtBACEMIAlBADYCyAQgCSAGNgLEBCAJIAo2AsAEAkACQCAFIApLBEAgCUHABGpBACAFEMQRIAkoAsQEIQYgCSgCyAQhDAwBCyAFRQ0BCyAFRQ0AIAYgDGogCyAF/AoAAAsgCiAFIAxqIgVrIQsgDUEBRwRAIAhBDGshEiABQRRqIQwgBSAGaiERA0AgC0EBTQ0FIAxBBGsoAgAhDiAMKAIAIQUgEUGswAA7AAAgC0ECayILIAVJDQYgEUECaiEGIAUEQCAGIA4gBfwKAAALIAxBDGohDCALIAVrIQsgBSAGaiERIBJBDGsiEg0ACwsgCSAJKQLABDcC2AMgCSAKIAtrNgLgAyAJIAlB2ANqrUKAgICAwAKENwPABCAJQfgCakGVy8EAIAlBwARqELgMIAkoAtgDIgUEQCAJKALcAyIKQQRrKAIAIgtBeHEhBiAGQQRBCCALQQNxIgsbIAVqSQ0SIAtBAEcgBiAFQSdqS3ENEyAKELwFCyABIQYgDSEMA0AgBigCACIFBEAgBkEEaigCACILQQRrKAIAIg5BeHEhCiAKQQRBCCAOQQNxIg4bIAVqSQ0TIA5BAEcgCiAFQSdqS3ENFCALELwFCyAGQQxqIQYgDEEBayIMDQALIAFBBGsoAgAiBkF4cSEFIAVBBEEIIAZBA3EiBhsgCGpJDREgBkEARyAFIAhBJ2pLcQ0SIAEQvAUgCQJ+QdDwyQAtAAAEQEHI8MkAKQMAIW5BwPDJACkDAAwBCyAJQcAEahC7EUHQ8MkAQQE6AABByPDJACAJKQPIBCJuNwMAIAkpA8AECyJxNwPQB0HA8MkAIHFCAXw3AwAgCUEANgLoByAJQoCAgICAATcD4AcgCSBuNwPYByAJQZCpyQApAwA3AuwHIAlBmKnJACkDADcC9AdBBhCQASIBRQ0QIAFBzLXJAC8AADsABCABQci1yQAoAAA2AAAgCUEGNgK4BSAJIAE2ArQFIAlBBjYCsAUgDUEwbBCQASIQRQ0UIA8gDUEGdGohEiAJQQA2AugFIAkgEDYC5AUgCSANNgLgBSAJQeQEaiEOIAlB1ARqIREgCUHgA2ohCCAJQdAEaiEeIAlB7ARqIRRBkKnJACkDACFzQZipyQApAwAhb0EAIQUgDyEXAkACQAJAA0ACfkHQ8MkALQAABEBByPDJACkDACFuQcDwyQApAwAMAQsgCUHYA2oQuxFB0PDJAEEBOgAAQcjwyQAgCSkD4AMibjcDACAJKQPYAwshcSAUIHM3AgAgFCBvNwIIIAkgcTcD0ARBwPDJACBxQgF8NwMAIAlBADYC6AQgCUKAgICAgAE3A+AEIAkgbjcD2AQgCUEANgLABCAXLQA8IQZBBBCQASIBRQ0UIAFB69K5owY2AAAgCUEENgLMBCAJIAE2AsgEIAlBfzYCxAQgCSAJKQPIBDcCJCAJQQQ2AiACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAZBAWsODAECAwQFBgcICQoLDAALQRYQkAEiBkUNISAGQaKtyQApAAA3AA4gBkGcrckAKQAANwAIIAZBlK3JACkAADcAAEEWDAwLQQ4QkAEiBkUNICAGQbCtyQApAAA3AAYgBkGqrckAKQAANwAAQQ4MCwtBExCQASIGRQ0fIAZBx63JACgAADYADyAGQcCtyQApAAA3AAggBkG4rckAKQAANwAAQRMMCgtBFBCQASIGRQ0eIAZB263JACgAADYAECAGQdOtyQApAAA3AAggBkHLrckAKQAANwAAQRQMCQtBERCQASIGRQ0dIAZB763JAC0AADoAECAGQeetyQApAAA3AAggBkHfrckAKQAANwAAQREMCAtBEhCQASIGRQ0cIAZBgK7JAC8AADsAECAGQfityQApAAA3AAggBkHwrckAKQAANwAAQRIMBwtBFBCQASIGRQ0bIAZBkq7JACgAADYAECAGQYquyQApAAA3AAggBkGCrskAKQAANwAAQRQMBgtBFxCQASIGRQ0aIAZBpa7JACkAADcADyAGQZ6uyQApAAA3AAggBkGWrskAKQAANwAAQRcMBQtBBRCQASIGRQ0ZIAZBsa7JAC0AADoABCAGQa2uyQAoAAA2AABBBQwEC0EPEJABIgZFDRggBkG5rskAKQAANwAHIAZBsq7JACkAADcAAEEPDAMLQREQkAEiBkUNFyAGQdGuyQAtAAA6ABAgBkHJrskAKQAANwAIIAZBwa7JACkAADcAAEERDAILQRUQkAEiBkUNFiAGQd+uyQApAAA3AA0gBkHarskAKQAANwAIIAZB0q7JACkAADcAAEEVDAELQQ0QkAEiBkUNFSAGQeyuyQApAAA3AAUgBkHnrskAKQAANwAAQQ0LIQEgCUGDgICAeDYCiAkgCSABNgKACSAJIAY2AvwIIAkgATYC+AggCUHYA2ogHiAJQSBqIAlB+AhqENIDIAkgCCkDKDcDqAIgCSAIKQMgNwOgAiAJIAgpAxg3A5gCIAkgCCkDECJxNwOQAiAJIAgpAwg3A4gCIAkgCCkDADcDgAIgcadBf0cEQCAJQYACahD+CQsCQCAXKAIQIgFBf0YNAAJAAkACQAJAQQUgAUGAgICAeHMgAUEAThtBAWsOBQYAAQIDBAsCQAJAAkAgFygCAEEBaw4CAQIACyAJQQE6APgIIAkgbUKAgICA0AKENwPYAyAJQdgDahDaESEKDAgLIAlBAToA+AggCSBtQoCAgIDQAoQ3A9gDIAlB2ANqENoRIQoMBwsgCUECOgD4CCAJIG1CgICAgNAChDcD2AMgCUHYA2oQ2hEhCgwGCyAJQQQ6APgIIAkgbUKAgICA0AKENwPYAyAJQdgDahDaESEKDAULIAlBBzoA+AggCSBtQoCAgIDQAoQ3A9gDIAlB2ANqENoRIQoMBAsgFygCGEEGdCELIBcoAhQhDANAIAtFDQEgCSgCwARBAUYNCwJAIAxBPGooAgAiAUUEQEEBIQoMAQsgDEE4aigCACEGIAEQkAEiCkUNFyABBEAgCiAGIAH8CgAACyABQX9GDQULIAkoAsQEIgZBAEoEQCAJKALIBCIYQQRrKAIAIhtBeHEhEyATQQRBCCAbQQNxIhsbIAZqSQ0YIBtBAEcgEyAGQSdqS3ENGSAYELwFCyAJIAE2AswEIAkgCjYCyAQgCSABNgLEBCALQUBqIQsgCUHABGogDBDTDSEKIAxBQGshDCAKRQ0ACwwDCyAJKALABEEBRg0KIAkoAuAEIQYgCSgC0AQhCiAJKALIBCELIAkoAsQEIQEgCSARKAIINgKgCCAJIBEpAgA3A5gIIAkgDikCADcDkAYgCSAOKQIINwOYBiAJIA4pAhA3A6AGIAkgDigCGDYCqAYgAUEASgRAIAtBBGsoAgAiE0F4cSEMIAxBBEEIIBNBA3EiExsgAWpJDRYgE0EARyAMIAFBJ2pLcQ0XIAsQvAULIAZBf0YNAyAJKALgBSAFRgRAIAlB4AVqEJQSIAkoAuQFIRALIBAgBUEwbGoiASAKNgIAIAEgCSkDmAg3AgQgASAJKAKgCDYCDCABIAY2AhAgASAJKQOQBjcCFCABIAkpA5gGNwIcIAEgCSkDoAY3AiQgASAJKAKoBjYCLCAJIAVBAWoiBTYC6AUgEiAXQUBrIhdHDQALIAlBhICAgHg2AugDIAkgCSkC5AU3AtwDIAkgCSgC4AU2AtgDIAlBwARqIAlB0AdqIAlBsAVqIAlB2ANqENIDIAkgCSkD8AQ3A6AJIAkgCSkD6AQ3A5gJIAkgCSkD4AQ3A5AJIAkgCSkD2AQibTcDiAkgCSAJKQPQBDcDgAkgCSAJKQPIBDcD+AggbadBf0cEQCAJQfgIahD+CQsgByAJKQP4BzcDKCAHIAkpA/AHNwMgIAcgCSkD6Ac3AxggByAJKQPgBzcDECAHIAkpA9gHNwMIIAcgCSkD0Ac3AwAgAEEIOgBEIAAgCSkC+AI3AjggACAJKAKAAzYCQCAPIQYDQCAGQTBqKAIAIgEEQCAGQTRqKAIAIgdBBGsoAgAiCEF4cSEFIAVBBEEIIAhBA3EiCBsgAWpJDRYgCEEARyAFIAFBJ2pLcQ0XIAcQvAULIAZBEGooAgBBf0cEQCAGEP4JCyAGQUBrIQYgDUEBayINDQALIBUEQCAPQQRrKAIAIgVBeHEhASABIBVBBnQiBkEEQQggBUEDcSIFG3JJDRUgBUEARyABIAZBJ3JLcQ0WIA8QvAULIABBfzYCAAwFCyAJQQA6APgIIAkgbUKAgICA0AKENwPYAyAJQdgDahDaESEKCyAJQcAEahDICwsgCUHgBWoQlwkgCSgC4AUiAARAIAkoAuQFIABBMGwQ2RILIAkgCjYCwARBiLDJAEErIAlBwARqQZixyQBB0LXJABDaEgALQeCXxgBBuwFBwJjGABC/EwALIA8oAjAiBUF/Rg0FIAkoAhQhASAPKAI8IQYgDykCNCFyIA8pAyghbSAPKQMgIXEgDykDGCFuIA8pAxAhcyAPKQMIIW8gDykDACFwIAAgBTYCOCAAIHA3AwggACBvNwMQIAAgczcDGCAAIG43AyAgACBxNwMoIAAgbTcDMCAJIG03A+gEIAkgcTcD4AQgCSBuNwPYBCAJIHM3A9AEIAkgbzcDyAQgCSBwNwPABCAJIHI3A9gDIAkgBjYC4AMgACAJKQPYAzcCPCAAIAkoAuADNgJEIABBfzYCACABRQ0AIA9BBGsoAgAiBUF4cSEAIAAgAUEGdCIBQQRBCCAFQQNxIgUbckkNDyAFQQBHIAAgAUEncktxDRAgDxC8BQsgBBDwBSADIAMoAgBBAWsiADYCACAARQRAIAlBEGoQ7Q4LIAIgAigCAEEBayIANgIAIABFDQYMBwtBxLDJAEETQciryQAQvxMAC0HEsMkAQRNByKvJABC/EwALQaCryQBBKEH0rskAEK8UAAtBoKvJAEEoQazgyAAQrxQAC0HQmMYAEJ0VAAsgCSgCGCEAIAkoAhwiDARAIAAhBgNAIAZBMGooAgAiAQRAIAZBNGooAgAiB0EEaygCACIIQXhxIQUgBUEEQQggCEEDcSIIGyABakkNCyAIQQBHIAUgAUEnaktxDQwgBxC8BQsgBkEQaigCAEF/RwRAIAYQ/QkLIAZBQGshBiAMQQFrIgwNAAsLIAkoAhQiBQRAIABBBGsoAgAiBkF4cSEBIAEgBUEGdCIFQQRBCCAGQQNxIgYbckkNCSAGQQBHIAEgBUEncktxDQogABC8BQsgBBDwBSADIAMoAgBBAWsiADYCACAARQRAIAlBEGoQ7Q4LIAIgAigCAEEBayIANgIAIAANAQsgCUEMahDtDgsgCUGACmokAA8LIAkoAuADGiAJKALcAxCnFAALIAkoAsgEGiAJKALEBBCnFAALIAkgCSgCwAQ2AtgDQYiwyQBBKyAJQdgDakGYsckAQaizyQAQ2hIACyAJIAkoAsAENgLYA0GIsMkAQSsgCUHYA2pBmLHJAEHosskAENoSAAtBuPDJAEEBOgAAAAtBARCnFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACxCeFQALQQgQpxQAC0EEEKcUAAuA9gICTH8LfiMAQcAJayICJAACQAJAAkACQAJAAkACQAJAIAEoAgQiAyABKAIMIkxGDQAgASgCGCElIAJBiAdqIgetQoCAgIDQAYQhVSACQeAIaiIErUKAgICA8CCEIVQgAkGoAWqtQoCAgIDQAYQhViACQfgBaiEhIAJBoAJqISIgAkGQCGohKyAEQRdqIUggAkHYB2oiBUEXaiFJIAJBoAhqIghBF2ohLyACQdgAaiFKIAJBQGsiBkEMaiEwIAVBCGohFSAFQTRqIRkgBUEHaiEmIARBIGohKCAEQTRqIQ8gCEEEaiEpIARBAXIhHSAEQQhqIUsgAkG3B2ohMSAEQQRyIUUgCEEIaiEaIAJBuwNqITIgAkGUA2ohMyACQe0CaiE0IAJBxgJqITUgAkHXBGohNiACQbAEaiE3IAJBiQRqITggAkHiA2ohOSACQSBqITogB0EHaiE7IAJB6AZqITwgBEEMaiEcIAJBwQZqIT0gAkGaBmohPiACQaUFaiE/IAJB/gRqIUAgAkHzBWohQSACQcwFaiFCIAJBAXIhHiAGQQhqIRMgASgCFCEtIAEoAhAhECACQTRqIQ0gAkEMaiEbIAJBnAFqIUMgBkEEciFEAkADQCABIANB2ABqIk02AgQgAygCACIGQX9GDQIgAygCUCEOIAMoAkwhFCADKAJIIUYgRCADQQRqQcQA/AoAACACIAY2AkAgAkGMAWogECgCABCfCgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAKMAUEJRgRAIC0oAgAOAwMCAQILIAIgFDYCqAEgAiAONgKsASAQKAIAIQkCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOQQJrDgkBAA8CAw0EEAUQCyAULwAAQe7eAXMgFEECaiIELQAAQfQAc3INByAGDUdB0AAQkAEiA0UNfiAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA1OIDEgEykAGDcAGCAxIBMpABA3ABAgMSATKQAINwAIIDEgEykAADcAACAJKQIIIU8gCSkCACFOIANBAToACCADQQM6AAAgSyBONwIAIEsgTzcCCCADIAIpAM8HNwAoIAMgAikAyAc3ACEgAyACKQDABzcAGSADIAIpALgHNwARIAMgAikAsAc3AAkgAyACKQPwCDcDQCADIAIpA+gINwM4IAMgAikD4Ag3AzAgA0EAOgBMIAMgBDYCSAxwCyAULwAAQencAUcNBQJAIBAtAAVFBEAgAkHYB2ogCRCfCgwBCyACQQE2AtgHCyACQeAIaiAJIAJBQGtBASACQdgHahBQIAIpA/gIIU8gAikD8AghTiACKALsCCEEIAIoAugIIQMgAigC5AghCCACKALgCCEFIAIoApAJIgZBf0YNRSA6ICgpAwg3AwggOiAoKQMANwMAIA0gDykCADcCACANIA8oAgg2AgggAiBONwMQIAIgBDYCDCACIAM2AgggAiAINgIEIAIgBjYCMCACIE83AxggAiAFNgIADHMLIBQoAABB7t7RywRzIBRBBGoiBC0AAEHuAHNyDQcCQCAQLQAFRQRAIAJB2AdqIAkQnwoMAQsgAkEBNgLYBwsgAkHgCGogCSACQUBrQQEgAkHYB2oQUCACKQP4CCFPIAIpA/AIIU4gAigC7AghAyACKALoCCEFIAIoAuQIIQQgAigC4AghByACKAKQCSIIQX9GDUMgOiAoKQMINwMIIDogKCkDADcDACANIA8pAgA3AgAgDSAPKAIINgIIIAIgTjcDECACIAM2AgwgAiAFNgIIIAIgBDYCBCACIAg2AjAgAiBPNwMYIAIgBzYCAAxyCyAUKAAAQeXi1YsGcyAUQQRqIgQvAABB7OYBc3INBSAQLQAEQdAAEJABIQMNPyADRQ17IBAtAAUNPSACQbAJaiAJEJ8KDD4LIBQpAABC4965o5esmrfzAFINASAQLQAEQdAAEJABIQMNOSADRQ16IBAtAAUNNyACQbAJaiAJEJ8KDDgLIBQpAABC8+iFk8fu3KvpAIUgFEEIajMAAEL00AGFhEIAUg0KIBAtAARB0AAQkAEhAw0zIANFDXkgEC0ABQ0xIAJBsAlqIAkQnwoMMgsgFCkAAELl3JGb96qauugAUg0FIBAtAARB0AAQkAEiA0UNeEEBcQ0tIBAtAAUNKyACQbAJaiAJEJ8KDCwLIBQvAABB7OgBRgRAIBAtAARB0AAQkAEiA0UNeEEBcQ0oIBAtAAUNJiACQbAJaiAJEJ8KDCcLIBQvAABB5+gBRw0IIBAtAARB0AAQkAEiA0UNd0EBcQ0iIBAtAAUNICACQbAJaiAJEJ8KDCELIBQvAABB7OgBcyAELQAAQeUAc3JFBEAgEC0ABEHQABCQASEDDR0gA0UNdyAQLQAFDRsgAkGwCWogCRCfCgwcCyAULwAAQefoAXMgBC0AAEHlAHNyDQIgEC0ABEHQABCQASIDRQ12QQFxDRcgEC0ABQ0VIAJBsAlqIAkQnwoMFgsgFCgAAEHzyoWTB3MgBC8AAEHj0AFzcg0EIBAtAARB0AAQkAEiA0UNdUEBcQ0RIBAtAAUNDyACQbAJaiAJEJ8KDBALIBQoAABB6ebNqgZzIAQtAABB9ABzcg0FIBAtAARFDQwgAkHgCGogAkFAaxDRDSACLQDgCCEDIAIoApAJIgRBf0YNDSAeIB0pACc3ACcgHiAdKQAgNwAgIB4gHSkAGDcAGCAeIB0pABA3ABAgHiAdKQAINwAIIB4gHSkAADcAACANIA8pAgA3AgAgDSAPKAIINgIIIAIgAzoAACACIAQ2AjAMagsgFC8AAEHowgFzIAQtAABB8wBzcg0EQdAAEJABIgNFDXMCQCAQLQAFRQRAIAJBsAlqIAkQnwoMAQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQogDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A8gIIAIgAikDgAkiTjcDwAggAiACKQP4CCJQNwO4CCACIAIpA/AIIlE3A7AIIAIgAikD6AgiUjcDqAggAiACKQPgCCJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAgA0HQABDZEgxpCyAUKQAAQujCzavkrpm5+QBSDQNB0AAQkAEiA0UNciACQeAIaiAJIAJBQGsQ9AIgAigCkAkiBEF/Rg0IIA0gDykCADcCACANIA8oAgg2AgggAiACKQOICSJPNwOACCACIAIpA4AJIk43A/gHIAIgAikD+AgiUDcD8AcgAiACKQPwCCJRNwPoByACIAIpA+gIIlI3A+AHIAIgAikD4AgiUzcD2AcgAiBTNwMAIAIgUjcDCCACIFE3AxAgAiBQNwMYIAIgTjcDICACIE83AyggAiAENgIwIANBBGsoAgAiBEEDcSEFIARBeHFB1ABB2AAgBRtJDXAgBUEARyAEQfgAT3ENcSADELwFDGgLIBQoAABB6MLNmwVzIBRBA2oiBCgAAEHT3rWrBnNyRQRAQdAAEJABIgNFDXIgAkHgCGogCSACQUBrEPQCIAIoApAJIgRBf0YNByANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgBDYCMCADQQRrKAIAIgRBA3EhBSAEQXhxQdQAQdgAIAUbSQ1wIAVBAEcgBEH4AE9xDXEgAxC8BQxoCyAUKAAAQenmleoGcyAEKAAAQe3g0csHc3INAkHQABCQASIERQ1xIAJB4AhqIAJBQGsQ0Q0gAi0A4AghAyACKAKQCSIFQX9HDQUgCSkCACFPIAkpAgghTiAJKAIQIgUoAgAhCCAFIAhBAWo2AgAgAiBONwPoCCACIE83A+AIIAhBAEgNQSAEIAIpA+gINwIwIAQgAikD4Ag3AiggBCADOgAMIARBHTYCCCAEQQQ6AAAgBCAFNgI4IAJBfzYCMCACQQE2AgggAiAENgIEIAJBATYCAAxnCyAUKAAAQd/GvasHcyAELwAAQe7oAXNyDQEgBkEERwRAIAJB4AhqIgQgAkFAa0HIAPwKAAAgAiBUNwOwCSArQaHvwQAgAkGwCWoQuAwgAkEAOgCcCCACQX82AvAHIAQQrgcgAiAVKQMANwMAIAIgFSkDCDcDCCACIBUpAxA3AxAgAiAVKQMYNwMYIAIgFSkDIDcDICACIBUpAyg3AyggAiAVKQMwNwMwIAIgFSkDODcDOAxnCyACIBMpAwA3A6AIIAIgEykDCDcDqAggAiATKQMQNwOwCCACIBMpAxg3A7gIIAIgEykDIDcDwAggAiATKQMoNwPICCACIBMpAzA3A9AIIAIgEykDODcD2AggAkEBOgDdByACIAk2AtgHIAIgEC0ABDoA3AcgAkHgCGogAkHYB2ogAkGgCGoQwgEgAigC6AghAyACKALkCCEFIAIoAuAIIQggAigCkAkiBEF/RwRAIBsgHCgCIDYCICAbIBwpAhg3AhggGyAcKQIQNwIQIBsgHCkCCDcCCCAbIBwpAgA3AgAgDSAPKQIANwIAIA0gDygCCDYCCCACIAQ2AjAgAiADNgIIIAIgBTYCBCACIAg2AgAMZwsgBSEEIAMEQCAEIANB0ABsaiEEIAUhAwNAIAJB4AhqIgcgA0HQAPwKAABB0AAQkAEiBkUNciAGIAdB0AD8CgAAIANBCGogBjYCACADQQRqQQA2AgAgA0EJOgAAIAQgA0HQAGoiA0cNAAsLIAJBfzYCMCACIAg2AgAgAiAFNgIEIAIgBCAFa0HQAG42AggMZgsgFCgAAEHfwtm7BkYEQCAGQQRHBEAgAiAGNgLgCCBFIERBxAD8CgAAIAIgVDcDsAkgK0Gh78EAIAJBsAlqELgMIAJBADoAnAggAkF/NgLwByACQeAIahCuByACIBUpAwA3AwAgAiAVKQMINwMIIAIgFSkDEDcDECACIBUpAxg3AxggAiAVKQMgNwMgIAIgFSkDKDcDKCACIBUpAzA3AzAgAiAVKQM4NwM4DGcLIAIgEykDADcDoAggAiATKQMINwOoCCACIBMpAxA3A7AIIAIgEykDGDcDuAggAiATKQMgNwPACCACIBMpAyg3A8gIIAIgEykDMDcD0AggAiATKQM4NwPYCCACQQA6AN0HIAIgCTYC2AcgAiAQLQAEOgDcByACQeAIaiACQdgHaiACQaAIahDCASACKALoCCEDIAIoAuQIIQQgAigC4AghBSACKAKQCSIIQX9GDT4gGyAcKAIgNgIgIBsgHCkCGDcCGCAbIBwpAhA3AhAgGyAcKQIINwIIIBsgHCkCADcCACANIA8pAgA3AgAgDSAPKAIINgIIIAIgCDYCMCACIAM2AgggAiAENgIEIAIgBTYCAAxmCyAUKAAAQd/m1esGRgRAIAZBBEcEQCACIAY2AuAIIEUgREHEAPwKAAAgAiBUNwOwCSArQaHvwQAgAkGwCWoQuAwgAkEAOgCcCCACQX82AvAHIAJB4AhqEK4HIAIgFSkDADcDACACIBUpAwg3AwggAiAVKQMQNwMQIAIgFSkDGDcDGCACIBUpAyA3AyAgAiAVKQMoNwMoIAIgFSkDMDcDMCACIBUpAzg3AzgMZwsgAiATKQMANwOgCCACIBMpAwg3A6gIIAIgEykDEDcDsAggAiATKQMYNwO4CCACIBMpAyA3A8AIIAIgEykDKDcDyAggAiATKQMwNwPQCCACIBMpAzg3A9gIIAJBADoA3QcgAiAJNgLYByACIBAtAAQ6ANwHIAJB4AhqIAJB2AdqIAJBoAhqEMIBIAIoAugIIQMgAigC5AghBCACKALgCCEFIAIoApAJIghBf0cEQCAbIBwoAiA2AiAgGyAcKQIYNwIYIBsgHCkCEDcCECAbIBwpAgg3AgggGyAcKQIANwIAIA0gDykCADcCACANIA8oAgg2AgggAiAINgIwIAIgAzYCCCACIAQ2AgQgAiAFNgIADGcLIAIgBCADQdAAbGo2AuwIIAIgBTYC6AggAiAENgLkCCACIAQ2AuAIIAJB2AdqIQgjAEHQAGsiBiQAIAJB4AhqIgMoAgAhBSADKAIIIQkCQCADKAIEIgQgAygCDCIHRgRAIAUhAwwBCyAFIQMDQCAGIARB0AD8CgAAQdAAEJABIgtFDXIgCyAGQdAA/AoAACADQQhqIAs2AgAgA0EEakECNgIAIANBCToAACADQdAAaiEDIAcgBEHQAGoiBEcNAAsLIAcgBGtB0ABuIQsgBCAHRwRAA0AgBBCvBCAEQdAAaiEEIAtBAWsiCw0ACwsgCCAFNgIEIAggCTYCACAIIAMgBWtB0ABuNgIIIAZB0ABqJAAgAkF/NgIwIAIgAikC2Ac3AwAgAiACKALgBzYCCAxmCyAUKAAAQd/apfMGRgRAIAZBBEcEQCACQeAIaiIEIAJBQGtByAD8CgAAIAIgVDcDsAkgK0Gh78EAIAJBsAlqELgMIAJBADoAnAggAkF/NgLwByAEEK4HIAIgFSkDADcDACACIBUpAwg3AwggAiAVKQMQNwMQIAIgFSkDGDcDGCACIBUpAyA3AyAgAiAVKQMoNwMoIAIgFSkDMDcDMCACIBUpAzg3AzgMZwsgAiATKQMANwOgCCACIBMpAwg3A6gIIAIgEykDEDcDsAggAiATKQMYNwO4CCACIBMpAyA3A8AIIAIgEykDKDcDyAggAiATKQMwNwPQCCACIBMpAzg3A9gIIAJBADoA3QcgAiAJNgLYByACIBAtAAQ6ANwHIAJB4AhqIAJB2AdqIAJBoAhqEMIBIAIoAugIIQMgAigC5AghBSACKALgCCEIIAIoApAJIgRBf0cEQCAbIBwoAiA2AiAgGyAcKQIYNwIYIBsgHCkCEDcCECAbIBwpAgg3AgggGyAcKQIANwIAIA0gDykCADcCACANIA8oAgg2AgggAiAENgIwIAIgAzYCCCACIAU2AgQgAiAINgIADGcLIAUhBCADBEAgBCADQdAAbGohBCAFIQMDQCACQeAIaiIHIANB0AD8CgAAQdAAEJABIgZFDXIgBiAHQdAA/AoAACADQQhqIAY2AgAgA0EEakEDNgIAIANBCToAACAEIANB0ABqIgNHDQALCyACQX82AjAgAiAINgIAIAIgBTYCBCACIAQgBWtB0ABuNgIIDGYLIBQoAABB39qFwwdGDQELIAIgVjcD2AcgAkHgCGpB5b3BACACQdgHahC4DCACQYGAgIB4NgIwIAIgAikD4Ag3AwAgAiACKQPoCDcDCCACIAIpA/AINwMQIAIgAikD+Ag3AxggAiACKQOACTcDICACIAIpA4gJNwMoIAYNASATEIgEDGQLIAZBBEcEQCACQeAIaiIEIAJBQGtByAD8CgAAIAIgVDcDsAkgK0Gh78EAIAJBsAlqELgMIAJBADoAnAggAkF/NgLwByAEEK4HIAIgFSkDADcDACACIBUpAwg3AwggAiAVKQMQNwMQIAIgFSkDGDcDGCACIBUpAyA3AyAgAiAVKQMoNwMoIAIgFSkDMDcDMCACIBUpAzg3AzgMZAsgAiATKQMANwOgCCACIBMpAwg3A6gIIAIgEykDEDcDsAggAiATKQMYNwO4CCACIBMpAyA3A8AIIAIgEykDKDcDyAggAiATKQMwNwPQCCACIBMpAzg3A9gIIAJBADoA3QcgAiAJNgLYByACIBAtAAQ6ANwHIAJB4AhqIAJB2AdqIAJBoAhqEMIBIAIoAugIIQMgAigC5AghBSACKALgCCEIIAIoApAJIgRBf0cEQCAbIBwoAiA2AiAgGyAcKQIYNwIYIBsgHCkCEDcCECAbIBwpAgg3AgggGyAcKQIANwIAIA0gDykCADcCACANIA8oAgg2AgggAiAENgIwIAIgAzYCCCACIAU2AgQgAiAINgIADGQLIAUhBCADBEAgBCADQdAAbGohBCAFIQMDQCACQeAIaiIHIANB0AD8CgAAQdAAEJABIgZFDW8gBiAHQdAA/AoAACADQQhqIAY2AgAgA0EEakEENgIAIANBCToAACAEIANB0ABqIgNHDQALCyACQX82AjAgAiAINgIAIAIgBTYCBCACIAQgBWtB0ABuNgIIDGMLIAJBQGsQrgcMYgsgHiAdKQAnNwAnIB4gHSkAIDcAICAeIB0pABg3ABggHiAdKQAQNwAQIB4gHSkACDcACCAeIB0pAAA3AAAgDSAPKQIANwIAIA0gDygCCDYCCCACIAU2AjAgAiADOgAAIARBBGsoAgAiA0EDcSEFIANBeHFB1ABB2AAgBRtJDWkgBUEARyADQfgAT3ENaiAEELwFDGELIAIgAikD8Ag3A+gHIAIgAikD6Ag3A+AHIAIgAikD4Ag3A9gHIAkoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDTogKSAJKQIINwIIICkgCSkCADcCACADIAIpA+gHNwIcIAMgAikD4Ac3AhQgAyACKQPYBzcCDCADQQQ6AAAgA0EcNgIIDF4LIAIgAikD8Ag3A+gHIAIgAikD6Ag3A+AHIAIgAikD4Ag3A9gHIAkoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDTkgKSAJKQIINwIIICkgCSkCADcCACADQQQ6AAAgA0EbNgIIIAMgAikD2Ac3AgwgAyACKQPgBzcCFCADIAIpA+gHNwIcDF0LIAIgAikD+Ag3A7gIIAIgAikD8Ag3A7AIIAIgAikD6Ag3A6gIIAIgAikD4Ag3A6AIIAkoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDTggKCAJKQIANwIAICggCSkCCDcCCCAmIAIpA6AINwAAICYgAikDqAg3AAggJiACKQOwCDcAECAmIAIpA7gINwAYICYgAikDgAk3ACAgJiACKQOICTcAKCADIAIpAIcINwAwIAMgAikAgAg3ACkgAyACKQD4BzcAISADIAIpAPAHNwAZIAMgAikA6Ac3ABEgAyACKQDgBzcACSADIAIpANgHNwABIANBBDoAACADIAQ2AjgMWgtB0AAQkAEiBEUNZyACQeAIaiACQUBrENENIAItAOAIIQMgAigCkAkiBUF/RwRAIB4gHSkAJzcAJyAeIB0pACA3ACAgHiAdKQAYNwAYIB4gHSkAEDcAECAeIB0pAAg3AAggHiAdKQAANwAAIA0gDykCADcCACANIA8oAgg2AgggAiAFNgIwIAIgAzoAACAEQQRrKAIAIgNBA3EhBSADQXhxQdQAQdgAIAUbSQ1mIAVBAEcgA0H4AE9xDWcgBBC8BQxeCyAJKQIAIU8gCSkCCCFOIAkoAhAiBSgCACEIIAUgCEEBajYCACACIE43A+gIIAIgTzcD4AggCEEASA03IAQgAikD6Ag3AkAgBCACKQPgCDcCOCAEIAM6AAkgBEEROgAIIARBAzoAACAEQQA6AEwgBCAFNgJIIAJBfzYCMCACQQE2AgggAiAENgIEIAJBATYCAAxdC0HQABCsFCEEIAkpAgAhTyAJKQIIIU4gCSgCECIFKAIAIQggBSAIQQFqNgIAIAIgTjcD6AggAiBPNwPgCCAIQQBIDTYgAiACKQPoCCJPNwPgByACIAIpA+AIIk43A9gHIAQgA0F/c0EBcToACSAEQRE6AAggBEEDOgAAIAQgTjcAOCAEIE83AEAgBEEAOgBMIAQgBTYCSCACQX82AjAgAkEBNgIIIAIgBDYCBCACQQE2AgAMXAsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNYiAFQQBHIARB+ABPcQ1jIAMQvAUMWgsCQCAQLQAFRQRAIAJBsAlqIAkQnwoMAQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNYSAFQQBHIARB+ABPcQ1iIAMQvAUMWQsgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgCSgCECIEKAIAIQUgBCAFQQFqNgIAIAVBAEgNMiAJKQIIIU8gCSkCACFOIANBDzoACAxVCyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0xIAkpAgghTyAJKQIAIU4gA0EQOgAIDFQLIAJBATYCsAkLIAJB4AhqIAkgAkFAa0EAIAJBsAlqEFAgAigCkAkiBEF/Rg0BIA0gDykCADcCACANIA8oAgg2AgggAiACKQOICSJPNwOACCACIAIpA4AJIk43A/gHIAIgAikD+AgiUDcD8AcgAiACKQPwCCJRNwPoByACIAIpA+gIIlI3A+AHIAIgAikD4AgiUzcD2AcgAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiAENgIwIANB0AAQ2RIMVQsCQCAQLQAFRQRAIAJBsAlqIAkQnwoMAQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAgA0HQABDZEgxUCyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0tIDUgAikD8Ac3ABggNSACKQPoBzcAECA1IAIpA+AHNwAIIDUgAikD2Ac3AAAgCSkCCCFPIAkpAgAhTiADQQs6AAggA0EDOgAAIBogTjcCACAaIE83AgggAyACKQDeAjcAKCADIAIpANcCNwAhIAMgAikAzwI3ABkgAyACKQDHAjcAESADIAIpAL8CNwAJDE4LIAIgAikD+Ag3A/AHIAIgAikD8Ag3A+gHIAIgAikD6Ag3A+AHIAIgAikD4Ag3A9gHIAkoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDSwgNCACKQPwBzcAGCA0IAIpA+gHNwAQIDQgAikD4Ac3AAggNCACKQPYBzcAACAJKQIIIU8gCSkCACFOIANBCDoACCADQQM6AAAgGiBONwIAIBogTzcCCCADIAIpAIUDNwAoIAMgAikA/gI3ACEgAyACKQD2AjcAGSADIAIpAO4CNwARIAMgAikA5gI3AAkMTQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNWCAFQQBHIARB+ABPcQ1ZIAMQvAUMUAsgA0UNWQJAIBAtAAVFBEAgAkGwCWogCRCfCgwBCyACQQE2ArAJCyACQeAIaiAJIAJBQGtBACACQbAJahBQIAIoApAJIgRBf0YNASANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgBDYCMCADQQRrKAIAIgRBA3EhBSAEQXhxQdQAQdgAIAUbSQ1XIAVBAEcgBEH4AE9xDVggAxC8BQxPCyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0oIDMgAikD8Ac3ABggMyACKQPoBzcAECAzIAIpA+AHNwAIIDMgAikD2Ac3AAAgCSkCCCFPIAkpAgAhTiADQQk6AAggA0EDOgAAIBogTjcCACAaIE83AgggAyACKQCsAzcAKCADIAIpAKUDNwAhIAMgAikAnQM3ABkgAyACKQCVAzcAESADIAIpAI0DNwAJDEgLIAIgAikD+Ag3A/AHIAIgAikD8Ag3A+gHIAIgAikD6Ag3A+AHIAIgAikD4Ag3A9gHIAkoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDScgMiACKQPwBzcAGCAyIAIpA+gHNwAQIDIgAikD4Ac3AAggMiACKQPYBzcAACAJKQIIIU8gCSkCACFOIANBCjoACCADQQM6AAAgGiBONwIAIBogTzcCCCADIAIpANMDNwAoIAMgAikAzAM3ACEgAyACKQDEAzcAGSADIAIpALwDNwARIAMgAikAtAM3AAkMRwsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAgA0HQABDZEgxLCwJAIBAtAAVFBEAgAkGwCWogCRCfCgwBCyACQQE2ArAJCyACQeAIaiAJIAJBQGtBACACQbAJahBQIAIoApAJIgRBf0YNASANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgTzcDKCACIE43AyAgAiBQNwMYIAIgUTcDECACIFI3AwggAiBTNwMAIAIgBDYCMCADQdAAENkSDEoLIAIgAikD+Ag3A/AHIAIgAikD8Ag3A+gHIAIgAikD6Ag3A+AHIAIgAikD4Ag3A9gHIAkoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDSMgOSACKQPwBzcAGCA5IAIpA+gHNwAQIDkgAikD4Ac3AAggOSACKQPYBzcAACAJKQIIIU8gCSkCACFOIANBCjoACCADQQM6AAAgGiBONwIAIBogTzcCCCADIAIpAPoDNwAoIAMgAikA8wM3ACEgAyACKQDrAzcAGSADIAIpAOMDNwARIAMgAikA2wM3AAkMQgsgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgCSgCECIEKAIAIQUgBCAFQQFqNgIAIAVBAEgNIiA4IAIpA/AHNwAYIDggAikD6Ac3ABAgOCACKQPgBzcACCA4IAIpA9gHNwAAIAkpAgghTyAJKQIAIU4gA0EJOgAIIANBAzoAACAaIE43AgAgGiBPNwIIIAMgAikAoQQ3ACggAyACKQCaBDcAISADIAIpAJIENwAZIAMgAikAigQ3ABEgAyACKQCCBDcACQxBCyACQQE2ArAJCyACQeAIaiAJIAJBQGtBACACQbAJahBQIAIoApAJIgRBf0YNASANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgBDYCMCADQQRrKAIAIgRBA3EhBSAEQXhxQdQAQdgAIAUbSQ1OIAVBAEcgBEH4AE9xDU8gAxC8BQxGCwJAIBAtAAVFBEAgAkGwCWogCRCfCgwBCyACQQE2ArAJCyACQeAIaiAJIAJBQGtBACACQbAJahBQIAIoApAJIgRBf0YNASANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgBDYCMCADQQRrKAIAIgRBA3EhBSAEQXhxQdQAQdgAIAUbSQ1NIAVBAEcgBEH4AE9xDU4gAxC8BQxFCyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0eIDcgAikD8Ac3ABggNyACKQPoBzcAECA3IAIpA+AHNwAIIDcgAikD2Ac3AAAgCSkCCCFPIAkpAgAhTiADQQg6AAggA0EDOgAAIBogTjcCACAaIE83AgggAyACKQDIBDcAKCADIAIpAMEENwAhIAMgAikAuQQ3ABkgAyACKQCxBDcAESADIAIpAKkENwAJDDwLIAIgAikD+Ag3A/AHIAIgAikD8Ag3A+gHIAIgAikD6Ag3A+AHIAIgAikD4Ag3A9gHIAkoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDR0gNiACKQPwBzcAGCA2IAIpA+gHNwAQIDYgAikD4Ac3AAggNiACKQPYBzcAACAJKQIIIU8gCSkCACFOIANBCzoACCADQQM6AAAgGiBONwIAIBogTzcCCCADIAIpAO8ENwAoIAMgAikA6AQ3ACEgAyACKQDgBDcAGSADIAIpANgENwARIAMgAikA0AQ3AAkMOwsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNSSAFQQBHIARB+ABPcQ1KIAMQvAUMQQsCQCAQLQAFRQRAIAJBsAlqIAkQnwoMAQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNSCAFQQBHIARB+ABPcQ1JIAMQvAUMQAsgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgCSgCECIEKAIAIQUgBCAFQQFqNgIAIAVBAEgNGSBAIAIpA/AHNwAYIEAgAikD6Ac3ABAgQCACKQPgBzcACCBAIAIpA9gHNwAAIAkpAgghTyAJKQIAIU4gA0EGOgAIIANBAzoAACAaIE43AgAgGiBPNwIIIAMgAikAlgU3ACggAyACKQCPBTcAISADIAIpAIcFNwAZIAMgAikA/wQ3ABEgAyACKQD3BDcACQw2CyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0YID8gAikD8Ac3ABggPyACKQPoBzcAECA/IAIpA+AHNwAIID8gAikD2Ac3AAAgCSkCCCFPIAkpAgAhTiADQQc6AAggA0EDOgAAIBogTjcCACAaIE83AgggAyACKQC9BTcAKCADIAIpALYFNwAhIAMgAikArgU3ABkgAyACKQCmBTcAESADIAIpAJ4FNwAJDDULIAJBATYCsAkLIAJB4AhqIAkgAkFAa0EAIAJBsAlqEFAgAigCkAkiBEF/Rg0BIA0gDykCADcCACANIA8oAgg2AgggAiACKQOICSJPNwOACCACIAIpA4AJIk43A/gHIAIgAikD+AgiUDcD8AcgAiACKQPwCCJRNwPoByACIAIpA+gIIlI3A+AHIAIgAikD4AgiUzcD2AcgAiBTNwMAIAIgUjcDCCACIFE3AxAgAiBQNwMYIAIgTjcDICACIE83AyggAiAENgIwIANBBGsoAgAiBEEDcSEFIARBeHFB1ABB2AAgBRtJDUQgBUEARyAEQfgAT3ENRSADELwFDDwLIANFDUUCQCAQLQAFRQRAIAJBsAlqIAkQnwoMAQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNQyAFQQBHIARB+ABPcQ1EIAMQvAUMOwsgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgCSgCECIEKAIAIQUgBCAFQQFqNgIAIAVBAEgNFCBCIAIpA/AHNwAYIEIgAikD6Ac3ABAgQiACKQPgBzcACCBCIAIpA9gHNwAAIAkpAgghTyAJKQIAIU4gA0EEOgAIIANBAzoAACAaIE43AgAgGiBPNwIIIAMgAikA5AU3ACggAyACKQDdBTcAISADIAIpANUFNwAZIAMgAikAzQU3ABEgAyACKQDFBTcACQwwCyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0TIEEgAikD8Ac3ABggQSACKQPoBzcAECBBIAIpA+AHNwAIIEEgAikD2Ac3AAAgCSkCCCFPIAkpAgAhTiADQQU6AAggA0EDOgAAIBogTjcCACAaIE83AgggAyACKQCLBjcAKCADIAIpAIQGNwAhIAMgAikA/AU3ABkgAyACKQD0BTcAESADIAIpAOwFNwAJDC8LIAJBATYCsAkLIAJB4AhqIAkgAkFAa0EAIAJBsAlqEFAgAigCkAkiBEF/Rg0BIA0gDykCADcCACANIA8oAgg2AgggAiACKQOICSJPNwOACCACIAIpA4AJIk43A/gHIAIgAikD+AgiUDcD8AcgAiACKQPwCCJRNwPoByACIAIpA+gIIlI3A+AHIAIgAikD4AgiUzcD2AcgAiBTNwMAIAIgUjcDCCACIFE3AxAgAiBQNwMYIAIgTjcDICACIE83AyggAiAENgIwIANBBGsoAgAiBEEDcSEFIARBeHFB1ABB2AAgBRtJDT8gBUEARyAEQfgAT3ENQCADELwFDDcLIANFDUACQCAQLQAFRQRAIAJBsAlqIAkQnwoMAQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNPiAFQQBHIARB+ABPcQ0/IAMQvAUMNgsgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgCSgCECIEKAIAIQUgBCAFQQFqNgIAIAVBAEgNDyA+IAIpA/AHNwAYID4gAikD6Ac3ABAgPiACKQPgBzcACCA+IAIpA9gHNwAAIAkpAgghTyAJKQIAIU4gA0ECOgAIIANBAzoAACAaIE43AgAgGiBPNwIIIAMgAikAsgY3ACggAyACKQCrBjcAISADIAIpAKMGNwAZIAMgAikAmwY3ABEgAyACKQCTBjcACQwqCyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0OID0gAikD8Ac3ABggPSACKQPoBzcAECA9IAIpA+AHNwAIID0gAikD2Ac3AAAgCSkCCCFPIAkpAgAhTiADQQM6AAggA0EDOgAAIBogTjcCACAaIE83AgggAyACKQDZBjcAKCADIAIpANIGNwAhIAMgAikAygY3ABkgAyACKQDCBjcAESADIAIpALoGNwAJDCkLIAJBATYCsAkLIAJB4AhqIAkgAkFAa0EAIAJBsAlqEFAgAigCkAkiBEF/Rg0BIA0gDykCADcCACANIA8oAgg2AgggAiACKQOICSJPNwOACCACIAIpA4AJIk43A/gHIAIgAikD+AgiUDcD8AcgAiACKQPwCCJRNwPoByACIAIpA+gIIlI3A+AHIAIgAikD4AgiUzcD2AcgAiBTNwMAIAIgUjcDCCACIFE3AxAgAiBQNwMYIAIgTjcDICACIE83AyggAiAENgIwIANBBGsoAgAiBEEDcSEFIARBeHFB1ABB2AAgBRtJDTogBUEARyAEQfgAT3ENOyADELwFDDILIANFDTsCQCAQLQAFRQRAIAJBsAlqIAkQnwoMAQsgAkEBNgKwCQsgAkHgCGogCSACQUBrQQAgAkGwCWoQUCACKAKQCSIEQX9GDQEgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNOSAFQQBHIARB+ABPcQ06IAMQvAUMMQsgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgCSgCECIEKAIAIQUgBCAFQQFqNgIAIAVBAEgNCiA8IAIpA/AHNwAYIDwgAikD6Ac3ABAgPCACKQPgBzcACCA8IAIpA9gHNwAAIAkpAgghTyAJKQIAIU4gA0EAOgAIIANBAzoAACAaIE43AgAgGiBPNwIIIAMgAikAgAc3ACggAyACKQD5BjcAISADIAIpAPEGNwAZIAMgAikA6QY3ABEgAyACKQDhBjcACQwkCyACIAIpA/gINwPwByACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAJKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEASA0JIDsgAikD8Ac3ABggOyACKQPoBzcAECA7IAIpA+AHNwAIIDsgAikD2Ac3AAAgCSkCCCFPIAkpAgAhTiADQQE6AAggA0EDOgAAIBogTjcCACAaIE83AgggAyACKQCnBzcAKCADIAIpAKAHNwAhIAMgAikAmAc3ABkgAyACKQCQBzcAESADIAIpAIgHNwAJDCMLAkAgB0F/RgRAIBAtAAQNASAJKAIQIgsoAgAhCCALIAhBAWo2AgAgCEEASA0KICIgCSkCCDcCCCAiIAkpAgA3AgAgAiBONwOwAkEBISxBDQwhCwJAAkACQAJAQQ4gB0ENayAHQQxNG0EFaw4JAQAAAgAAAAADAAtBoKvJAEEoQdCZxgAQrxQACyAQLQAERQRAIAkoAhAiCygCACEIIAsgCEEBajYCACAIQQBIDQwgIiAJKQIINwIIICIgCSkCADcCAEEAISxBDQwjCyAJKAIQIgsoAgAhCCALIAhBAWo2AgAgCEEASA0LICIgCSkCCDcCCCAiIAkpAgA3AgBBACEsDCELIBAtAARFBEAgCSgCECILKAIAIQggCyAIQQFqNgIAIAhBAEgNCyAiIAkpAgA3AgAgIiAJKQIINwIIIAIgTjcCtAIgAiADNgKwAkEBIQYMIwsgCSgCECILKAIAIQggCyAIQQFqNgIAIAhBAEgNCiAiIAkpAgA3AgAgIiAJKQIINwIIIAIgTjcCtAIgAiADNgKwAkEAIQYMIgsgEC0ABEUEQCAJKAIQIgsoAgAhCCALIAhBAWo2AgAgCEEASA0KICIgCSkCCDcCCCAiIAkpAgA3AgAgAiBONwOwAkECISxBDQwhCyAJKAIQIgsoAgAhCCALIAhBAWo2AgAgCEEASA0JICIgCSkCCDcCCCAiIAkpAgA3AgAgAiBONwOwAkECISwMHwsgCSgCECILKAIAIQggCyAIQQFqNgIAIAhBAEgNCCAiIAkpAgg3AgggIiAJKQIANwIAIAIgTjcDsAJBASEsDB4LAkAgBUF/RgRAIBAtAAQNASAJKAIQIgsoAgAhBSALIAVBAWo2AgAgBUEASA0JICEgCSkCCDcCCCAhIAkpAgA3AgAgAiBONwOIAkEMIQZBASEuDB4LAkACQAJAAkBBDiAFQQ1rIAVBDE0bQQVrDgkBAAACAAAAAAMAC0Ggq8kAQShB4JnGABCvFAALIBAtAARFBEAgCSgCECILKAIAIQUgCyAFQQFqNgIAIAVBAEgNCyAhIAkpAgg3AgggISAJKQIANwIAQQwhBkEAIS4MIAsgCSgCECILKAIAIQUgCyAFQQFqNgIAIAVBAEgNCiAhIAkpAgg3AgggISAJKQIANwIAQQ0hBkEAIS4MHwsgEC0ABEUEQCAJKAIQIgsoAgAhBiALIAZBAWo2AgAgBkEASA0KICEgCSkCADcCACAhIAkpAgg3AgggAiBONwKMAiACIAQ2AogCQQAhBgweCyAJKAIQIgsoAgAhBiALIAZBAWo2AgAgBkEASA0JICEgCSkCADcCACAhIAkpAgg3AgggAiBONwKMAiACIAQ2AogCQQEhBgwdCwJ/IBAtAARFBEAgCSgCECILKAIAIQUgCyAFQQFqNgIAIAVBAEgNCiAhIAkpAgg3AgggISAJKQIANwIAIAIgTjcDiAJBDAwBCyAJKAIQIgsoAgAhBSALIAVBAWo2AgAgBUEASA0JICEgCSkCCDcCCCAhIAkpAgA3AgAgAiBONwOIAkENCyEGQQIhLgwdCyAJKAIQIgsoAgAhBSALIAVBAWo2AgAgBUEASA0HICEgCSkCCDcCCCAhIAkpAgA3AgAgAiBONwOIAkENIQZBASEuDBwLIAZBBEcEQCACIAY2AuAIIEUgREHEAPwKAAAgAiBUNwOgCCArQaHvwQAgAkGgCGoQuAwgAkEAOgCcCCACQX82AvAHIAJB4AhqEK4HIAIgFSkDADcDACACIBUpAwg3AwggAiAVKQMQNwMQIAIgFSkDGDcDGCACIBUpAyA3AyAgAiAVKQMoNwMoIAIgFSkDMDcDMCACIBUpAzg3AzgMLQsgAiATKQMANwOwASACIBMpAwg3A7gBIAIgEykDEDcDwAEgAiATKQMYNwPIASACIBMpAyA3A9ABIAIgEykDKDcD2AEgAiATKQMwNwPgASACIBMpAzg3A+gBIAJBADoA5QggAiAJNgLgCCACIBAtAARBAXM6AOQIIAIgAkHgCGogAkGwAWoQwgEMLAtBAiESDAQLQQEhEiAtQQxqKAIAIgNFBEBBACEDQQQhJwwCCyAtQQhqKAIAIQQgA0EMbCIKEJABIidFDS9BACEHIAMhCANAIAcgCkYNAkEBIQsCQCAEQQhqKAIAIgVFIgkNACAEQQRqKAIAIQwgBRCQASILRQ0yIAkNACALIAwgBfwKAAALIARBDGohBCAHICdqIgkgBTYCACAJQQhqIAU2AgAgCUEEaiALNgIAIAdBDGohByAIQQFrIggNAAsMAQtBACESIC1BDGooAgAiA0UEQEEBISdBACEDDAELIC1BCGooAgAhBCADEJABIidFDS8gA0UNACAnIAQgA/wKAAALIAIgAzYCpAEgAiAnNgKgASACIAM2ApwBDAELIAIgBCADQdAAbGo2AuwIIAIgBTYC6AggAiAENgLkCCACIAQ2AuAIIAJB2AdqIQgjAEHQAGsiBiQAIAJB4AhqIgMoAgAhBSADKAIIIQkCQCADKAIEIgQgAygCDCIHRgRAIAUhAwwBCyAFIQMDQCAGIARB0AD8CgAAQdAAEJABIgtFDTMgCyAGQdAA/AoAACADQQhqIAs2AgAgA0EEakEBNgIAIANBCToAACADQdAAaiEDIAcgBEHQAGoiBEcNAAsLIAcgBGtB0ABuIQsgBCAHRwRAA0AgBBCvBCAEQdAAaiEEIAtBAWsiCw0ACwsgCCAFNgIEIAggCTYCACAIIAMgBWtB0ABuNgIIIAZB0ABqJAAgAkF/NgIwIAIgAikC2Ac3AwAgAiACKALgBzYCCAwnCyACIBI2ApgBIAIgFDYCiAcgAiAONgKMByAQKAIAIQUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDkECaw4RAgALCwEFBAsLCwsLBggKBwkLCyAULwAAQe7eAXMgFEECaiIELQAAQfQAc3INAiAGDgUyNDQ0MzQLIBQoAABB5eLViwZzIBRBBGovAABB7OYBc3INCSAQLQAEDTAgEC0ABQ0uIAJBsAFqIAUQnwoMLwsgFC8AAEHs6AFGBEAgEC0ABEHQABCQASIDRQ1qQQFxDSsgEC0ABQ0pIAJBsAFqIAUQnwoMKgsgFC8AAEHn6AFHDQggEC0ABEHQABCQASIDRQ1pQQFxDSUgEC0ABQ0jIAJBsAFqIAUQnwoMJAsgFC8AAEHs6AFzIAQtAABB5QBzckUEQCAQLQAEQdAAEJABIgNFDWlBAXENICAQLQAFDR4gAkGwAWogBRCfCgwfCyAULwAAQefoAXMgBC0AAEHlAHNyRQRAIBAtAARB0AAQkAEiA0UNaUEBcQ0dIAJB2AdqIAUgEC0ABSACQUBrEKwTIAIoAogIIgRBf0YNHCANIBkpAgA3AgAgDSAZKAIINgIIIAIgAikDgAgiTzcDyAggAiACKQP4ByJONwPACCACIAIpA/AHIlA3A7gIIAIgAikD6AciUTcDsAggAiACKQPgByJSNwOoCCACIAIpA9gHIlM3A6AIIAIgTzcDKCACIE43AyAgAiBQNwMYIAIgUTcDECACIFI3AwggAiBTNwMAIAIgBDYCMCADQdAAENkSDEoLIBQvAABB6MIBcyAELQAAQfMAc3INB0HQABCQASIERQ1oAkAgEC0ABUUEQCACQbABaiAFEJ8KDAELIAJBATYCsAELIAJB4AhqIAUgAkFAa0EAIAJBsAFqEFAgAigCkAkiA0F/Rg0aIA0gDykCADcCACANIA8oAgg2AgggAiACKQOICSJPNwPICCACIAIpA4AJIk43A8AIIAIgAikD+AgiUDcDuAggAiACKQPwCCJRNwOwCCACIAIpA+gIIlI3A6gIIAIgAikD4AgiUzcDoAggAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiADNgIwIARB0AAQ2RIMSQsgFCkAAELows2r5K6ZufkAUg0GQdAAEJABIgNFDWcgAkHgCGogBSACQUBrEPQCIAIoApAJIgRBf0YNGCANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgBDYCMCADQQRrKAIAIgRBA3EhBSAEQXhxQdQAQdgAIAUbSQ1lIAVBAEcgBEH4AE9xDTYgAxC8BQxICyAUKAAAQejCzZsFcyAUQQNqIgQoAABB0961qwZzckUEQEHQABCQASIDRQ1nIAJB4AhqIAUgAkFAaxD0AiACKAKQCSIEQX9GDRcgDSAPKQIANwIAIA0gDygCCDYCCCACIAIpA4gJIk83A4AIIAIgAikDgAkiTjcD+AcgAiACKQP4CCJQNwPwByACIAIpA/AIIlE3A+gHIAIgAikD6AgiUjcD4AcgAiACKQPgCCJTNwPYByACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNZSAFQQBHIARB+ABPcQ1mIAMQvAUMSAsgFCgAAEHp5pXqBnMgBCgAAEHt4NHLB3NyDQVB0AAQkAEiBEUNZiACQeAIaiACQUBrENENIAItAOAIIQMgAigCkAkiCEF/Rg0VIB4gHSkAJzcAJyAeIB0pACA3ACAgHiAdKQAYNwAYIB4gHSkAEDcAECAeIB0pAAg3AAggHiAdKQAANwAAIA0gDykCADcCACANIA8oAgg2AgggAiAINgIwIAIgAzoAACAEQQRrKAIAIgNBA3EhBSADQXhxQdQAQdgAIAUbSQ1kIAVBAEcgA0H4AE9xDWUgBBC8BQxHCyAUKQAAQuHkyYuW79ex7wCFIBRBBmopAABC4965o5esmrfzAIWEQgBSDQQgEC0ABA0TIBAtAAUNESACQbAHaiAFEJ8KDBILIBQpAABC4eTJi5bv17n0AIUgFEEIaikAAELh5NGb9+vdtPQAhYQgFEEQajEAAELoAIWEQgBSDQMgEC0ABA0PIBAtAAUNDSACQbAHaiAFEJ8KDA4LIBQpAABC4eTJi5bv17LuAIUgFEEHaiIEKQAAQu7Izfv1rpq66ACFhFAEQCAQLQAEDQwgEC0ABQ0KIAJBsAFqIAUQnwoMCwsgFCkAAELz6MnL5u3Zr+MAhSAEKQAAQuPeuaOXrJq38wCFhEIAUg0CIBAtAARB0AAQkAEiBkUNY0EBcQ0IIAJB2AdqIAUgAkFAa0EAQcSZxgAQUCACKAKICCIEQX9GDQcgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAgBkHQABDZEgxECyAUKQAAQvPoycvm7dmv8wCFIBRBCGopAABC9MLJo7fu17vpAIWEIBRBEGozAABC9NABhYRCAFINASAQLQAEQdAAEJABIQQNAyAERQ1iIAJB4AhqIAUgAkFAa0EAQcSZxgAQUCACKAKQCSIDQX9HDQQgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgAkGYAWohBiMAQTBrIgMkACADIAJB2AdqIggpABg3ACggAyAIKQAQNwAgIAMgCCkACDcAGCADIAgpAAA3ABACQEEwEJABIggEQCAIQQQ6AAAgCCADKQAJNwABIAggAykAETcACSAIIAMpABk3ABEgCCADKQAhNwAZIAggAykAKDcAICAFKAIQIgcoAgAhCyAHIAtBAWo2AgAgAyAGKQAANwAMIAMgBikACDcAFCALQQBODQEACwxjCwxFCyAUKQAAQvPoycvm7dmv5QCFIBRBCGopAABC7sjN+/WumrroAIWEUA0BCyACIFU3A9gHIAJB4AhqQeW9wQAgAkHYB2oQuAwgAkGBgICAeDYCMCACIAIpA+AINwMAIAIgAikD6Ag3AwggAiACKQPwCDcDECACIAIpA/gINwMYIAIgAikDgAk3AyAgAiACKQOICTcDKAJAAkACQAJAIBIOAwABAwELIAIoApwBIgRFDQIgAigCoAEiCEEEaygCACIFQXhxIQMgA0EEQQggBUEDcSIFGyAEakkNYSAFRQ0BIAMgBEEnak0NAQxiCyACKAKgASEIIAIoAqQBIgcEQCAIIQMDQCADKAIAIgQEQCADQQRqKAIAIgtBBGsoAgAiCUF4cSEFIAVBBEEIIAlBA3EiCRsgBGpJDWMgCUEARyAFIARBJ2pLcQ1kIAsQvAULIANBDGohAyAHQQFrIgcNAAsLIAIoApwBIgNFDQEgCEEEaygCACIFQXhxIQQgBCADQQxsIgNBBEEIIAVBA3EiBRtqSQ1gIAVFDQAgBCADQSdqSw1hCyAIELwFCyAGDSsgExCIBAxWCyAQLQAEIQNB0AAQkAEhBAJAAkAgA0UEQCAERQ1iIAJB4AhqIAUgAkFAa0EAQcSZxgAQUCACKAKQCSIDQX9HDQEgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgAkGYAWohBiMAQTBrIgMkACADIAJB2AdqIggpABg3ACggAyAIKQAQNwAgIAMgCCkACDcAGCADIAgpAAA3ABACQEEwEJABIggEQCAIQQY6AAAgCCADKQAJNwABIAggAykAETcACSAIIAMpABk3ABEgCCADKQAhNwAZIAggAykAKDcAICAFKAIQIgcoAgAhCyAHIAtBAWo2AgAgAyAGKQAANwAMIAMgBikACDcAFCALQQBODQEACwxjCwxECyAERQ1hIAJB4AhqIAUgAkFAa0EAQcSZxgAQUCACKAKQCSIDQX9HDQEgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgAkGYAWohBiMAQTBrIgMkACADIAJB2AdqIggpABg3ACggAyAIKQAQNwAgIAMgCCkACDcAGCADIAgpAAA3ABACQEEwEJABIggEQCAIQQc6AAAgCCADKQAJNwABIAggAykAETcACSAIIAMpABk3ABEgCCADKQAhNwAZIAggAykAKDcAICAFKAIQIgcoAgAhCyAHIAtBAWo2AgAgAyAGKQAANwAMIAMgBikACDcAFCALQQBODQEACwxiCwxDCyANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgAzYCMCAEQQRrKAIAIgNBA3EhBSADQXhxQdQAQdgAIAUbSQ1eIAVFDUAgA0H4AE8NXwxACyANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgAzYCMCAEQQRrKAIAIgNBA3EhBSADQXhxQdQAQdgAIAUbSQ1dIAVFDT8gA0H4AEkNPwxeCyAERQ1eIAJB4AhqIAUgAkFAa0EAQcSZxgAQUCACKAKQCSIDQX9HDQEgAiACKQP4CDcD8AcgAiACKQPwCDcD6AcgAiACKQPoCDcD4AcgAiACKQPgCDcD2AcgAkGYAWohBiMAQTBrIgMkACADIAJB2AdqIggpABg3ACggAyAIKQAQNwAgIAMgCCkACDcAGCADIAgpAAA3ABACQEEwEJABIggEQCAIQQU6AAAgCCADKQAJNwABIAggAykAETcACSAIIAMpABk3ABEgCCADKQAhNwAZIAggAykAKDcAICAFKAIQIgcoAgAhCyAHIAtBAWo2AgAgAyAGKQAANwAMIAMgBikACDcAFCALQQBODQEACwxfCwxBCyANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgAzYCMCAEQQRrKAIAIgNBA3EhBSADQXhxQdQAQdgAIAUbSQ1bIAVBAEcgA0H4AE9xDVwgBBC8BQw+CyANIA8pAgA3AgAgDSAPKAIINgIIIAIgAikDiAkiTzcDgAggAiACKQOACSJONwP4ByACIAIpA/gIIlA3A/AHIAIgAikD8AgiUTcD6AcgAiACKQPoCCJSNwPgByACIAIpA+AIIlM3A9gHIAIgUzcDACACIFI3AwggAiBRNwMQIAIgUDcDGCACIE43AyAgAiBPNwMoIAIgAzYCMCAEQQRrKAIAIgNBA3EhBSADQXhxQdQAQdgAIAUbSQ1aIAVBAEcgA0H4AE9xDVsgBBC8BQw9CyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQeAIaiEEIAJBmAFqIQcjAEEwayIDJAAgAyACQaAIaiIIKQAYNwAoIAMgCCkAEDcAICADIAgpAAg3ABggAyAIKQAANwAQAkBBMBCQASIIBEAgCEECOgAAIAggAykACTcAASAIIAMpABE3AAkgCCADKQAZNwARIAggAykAITcAGSAIIAMpACg3ACAgBSgCECILKAIAIQkgCyAJQQFqNgIAIAMgBykAADcADCADIAcpAAg3ABQgCUEATg0BAAsMXAsMOgsgAkHYB2ogBSACQUBrQQBBxJnGABBQIAIoAogIIgRBf0cEQCANIBkpAgA3AgAgDSAZKAIINgIIIAIgAikDgAgiTzcDyAggAiACKQP4ByJONwPACCACIAIpA/AHIlA3A7gIIAIgAikD6AciUTcDsAggAiACKQPgByJSNwOoCCACIAIpA9gHIlM3A6AIIAIgTzcDKCACIE43AyAgAiBQNwMYIAIgUTcDECACIFI3AwggAiBTNwMAIAIgBDYCMCAGQdAAENkSDDwLIAIgAikD8Ac3A7gIIAIgAikD6Ac3A7AIIAIgAikD4Ac3A6gIIAIgAikD2Ac3A6AIIAJB4AhqIQQgAkGYAWohByMAQTBrIgMkACADIAJBoAhqIggpABg3ACggAyAIKQAQNwAgIAMgCCkACDcAGCADIAgpAAA3ABACQEEwEJABIggEQCAIQQM6AAAgCCADKQAJNwABIAggAykAETcACSAIIAMpABk3ABEgCCADKQAhNwAZIAggAykAKDcAICAFKAIQIgsoAgAhCSALIAlBAWo2AgAgAyAHKQAANwAMIAMgBykACDcAFCAJQQBODQEACwxbCww5CyACQQE2ArABCyACQdgHaiAFIAJBQGtBACACQbABahBQIAIoAogIIgRBf0YNJCANIBkpAgA3AgAgDSAZKAIINgIIIAIgAikDgAgiTzcDyAggAiACKQP4ByJONwPACCACIAIpA/AHIlA3A7gIIAIgAikD6AciUTcDsAggAiACKQPgByJSNwOoCCACIAIpA9gHIlM3A6AIIAIgTzcDKCACIE43AyAgAiBQNwMYIAIgUTcDECACIFI3AwggAiBTNwMAIAIgBDYCMAw5CwJAIBAtAAVFBEAgAkGwB2ogBRCfCgwBCyACQQE2ArAHCyACQdgHaiAFIAJBQGtBACACQbAHahBQIAIoAogIIgRBf0cEQCANIBkpAgA3AgAgDSAZKAIINgIIIAIgAikDgAgiTzcDyAggAiACKQP4ByJONwPACCACIAIpA/AHIlA3A7gIIAIgAikD6AciUTcDsAggAiACKQPgByJSNwOoCCACIAIpA9gHIlM3A6AIIAIgTzcDKCACIE43AyAgAiBQNwMYIAIgUTcDECACIFI3AwggAiBTNwMAIAIgBDYCMAw5CyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQbABaiILIAJBoAhqEMYSIAJBmAFqIQxBACEDQQAhCEEAIQkjAEGAAWsiBiQAAkAgAkHgCGoiBwJ/AkACQAJAIAsoAgAiEkF/RgRAQTAQkAEiBEUNXSAEQX82AgggBEEHOgAAIAQgC0EEaiIDKQIANwIMIAQgAykCCDcCFCAEIAMpAhA3AhwgBCADKAIYNgIkIAUoAhAiAygCACEIIAMgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNAiAHIAYpADE3AAkgByAGKQA5NwARIAcgBigAQDYAGCAHIAUpAgg3AkAgByAFKQIANwI4IAdBADoATCAHIAM2AkggB0EBOgAgIAcgBDYCHCAHQQ46AAggB0EDOgAADAULIAsoAgwhDiALKAIIIREgCygCBCEXAkACQAJAAkAgEkEPRgRAIA5BBmsOAwEDAl4LQTAQkAEiBEUNYCAEIA42AhQgBCARNgIQIAQgFzYCDCAEIBI2AgggBEEHOgAAIAQgC0EQaiIDKQMANwMYIAQgAykDCDcDICAFKAIQIgMoAgAhCCADIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQUgByAGKQAxNwAJIAcgBikAOTcAESAHIAYoAEA2ABggByAFKQIINwJAIAcgBSkCADcCOCAHQQA6AEwgByADNgJIIAdBAToAICAHIAQ2AhwgB0EOOgAIIAdBAzoAAAwICyARKAAAQcTEuaoHcyARQQRqLwAAQezYAXNyDVxBMBCQASIDRQ1fIANBFTYCCCADQQc6AAAgBSgCECIEKAIAIQggBCAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0EDAULIBEpAABCyua98+apnbbsAFINW0EEEJABIgQNAQxaCyARKAAAQcHc5fMEcyARQQNqKAAAQc7qseMGc3INWkGgARCQASIKRQ1dQQQQkAEiH0UNWSAfQe7qseMGNgAAAkACQCAMKAIAIhIOAwEAAwALQQEhEiAMKAIMIgNFBEBBACEDQQQhCAwDCyAMKAIIIQsgA0EMbCIjEJABIghFDVkgAyEEA0AgCSAjRg0DQQEhDgJAIAtBCGooAgAiFkUiGA0AIAtBBGooAgAhJCAWEJABIg5FDVwgGA0AIA4gJCAW/AoAAAsgC0EMaiELIAggCWoiGCAWNgIAIBhBCGogFjYCACAYQQRqIA42AgAgCUEMaiEJIARBAWsiBA0ACwwCC0EAIRIgDCgCDCIDRQRAQQEhCEEAIQMMAgsgDCgCCCEEIAMQkAEiCEUNWSADRQ0BIAggBCAD/AoAAAwBCyAEQe7qseMGNgAAQTAQkAEiA0UNXCADQQQ2AhQgAyAENgIQIANCk4CAgMAANwMIIANBBzoAACAFKAIQIgQoAgAhCCAEIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQEMAgtBMBCQASIERQ1bIARBBDYCFCAEIB82AhAgBEKTgICAwAA3AwggBEEHOgAAIAUoAhAiCygCACEJIAsgCUEBajYCACAJQQBIDQAgBiAFKQAINwApIAYgBSkAADcAIUEwEJABIglFDVsgCUEVNgIIIAlBBzoAACALIAsoAgAiDkEBajYCACAGIAwpAAA3AHAgBiAMKQAINwB4IA5BAEgNACAGIAYpAG03A1ggBiAGKQB1NwNgIAYgBigAfDYAZyAGIAUpAAg3AFAgBiAFKQAANwBIIApBAToAICAKIAQ2AhwgCiADNgIYIAogCDYCFCAKIAM2AhAgCiASNgIMIApBDjoACCAKQQM6AAAgCkEOOgBYIApBAzoAUCAKQQA6AEwgCiALNgJIIAogBikACjcAISAKIAYpABI3ACkgCiAGKQAaNwAxIAogBikAIjcAOSAKIAYpACk3AEAgCiAGKABnNgBoIAogBikDYDcAYSAKIAYpA1g3AFkgCkEBOgBwIAogCTYCbCAKIAYpAFA3AJABIAogBikASTcAiQEgCiAGKQBBNwCBASAKIAYpADk3AHkgCiAGKQAxNwBxIApBADoAnAEgCiALNgKYASAHQQI2AgwgByAKNgIIIAdBAjYCBEEADAILAAsgByAGKQAxNwAJIAcgBikAOTcAESAHIAYoAEA2ABggByAFKQIINwJAIAcgBSkCADcCOCAHQQA6AEwgByAENgJIIAdBAToAICAHIAM2AhwgB0EOOgAIQQMLOgAAIBdFDQAgEUEEaygCACIDQXhxIQQCQCAEQQRBCCADQQNxIgMbIBdqTwRAIANBAEcgBCAXQSdqS3ENASARELwFDAILDFcLDFcLIAZBgAFqJABB0AAQrBQiBCAHQdAA/AoAACACQX82AjAgAkEBNgIIIAIgBDYCBCACQQE2AgAMTQsgAkEBNgKwBwsgAkHYB2ogBSACQUBrQQAgAkGwB2oQUCACKAKICCIEQX9GDSIgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAMNgsCQCAQLQAFRQRAIAJBsAdqIAUQnwoMAQsgAkEBNgKwBwsgAkHYB2ogBSACQUBrQQAgAkGwB2oQUCACKAKICCIEQX9HBEAgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAMNgsgAiACKQPwBzcDuAggAiACKQPoBzcDsAggAiACKQPgBzcDqAggAiACKQPYBzcDoAggAkGwAWoiCyACQaAIahDGEiACQZgBaiEMQQAhA0EAIQhBACEJIwBBgAFrIgYkAAJAIAJB4AhqIgcCfwJAAkACQCALKAIAIhJBf0YEQEEwEJABIgRFDVogBEF/NgIIIARBBToAACAEIAtBBGoiAykCADcCDCAEIAMpAgg3AhQgBCADKQIQNwIcIAQgAygCGDYCJCAFKAIQIgMoAgAhCCADIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQIgByAGKQAxNwAJIAcgBikAOTcAESAHIAYoAEA2ABggByAFKQIINwJAIAcgBSkCADcCOCAHQQA6AEwgByADNgJIIAdBAToAICAHIAQ2AhwgB0EOOgAIIAdBAzoAAAwFCyALKAIMIQ4gCygCCCERIAsoAgQhFwJAAkACQAJAIBJBD0YEQCAOQQZrDgMBAwJbC0EwEJABIgRFDV0gBCAONgIUIAQgETYCECAEIBc2AgwgBCASNgIIIARBBToAACAEIAtBEGoiAykDADcDGCAEIAMpAwg3AyAgBSgCECIDKAIAIQggAyAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0FIAcgBikAMTcACSAHIAYpADk3ABEgByAGKABANgAYIAcgBSkCCDcCQCAHIAUpAgA3AjggB0EAOgBMIAcgAzYCSCAHQQE6ACAgByAENgIcIAdBDjoACCAHQQM6AAAMCAsgESgAAEHExLmqB3MgEUEEai8AAEHs2AFzcg1ZQTAQkAEiA0UNXCADQRU2AgggA0EFOgAAIAUoAhAiBCgCACEIIAQgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNBAwFCyARKQAAQsrmvfPmqZ227ABSDVhBBBCQASIEDQEMVwsgESgAAEHB3OXzBHMgEUEDaigAAEHO6rHjBnNyDVdBoAEQkAEiCkUNWkEEEJABIh9FDVYgH0Hu6rHjBjYAAAJAAkAgDCgCACISDgMBAAMAC0EBIRIgDCgCDCIDRQRAQQAhA0EEIQgMAwsgDCgCCCELIANBDGwiIxCQASIIRQ1WIAMhBANAIAkgI0YNA0EBIQ4CQCALQQhqKAIAIhZFIhgNACALQQRqKAIAISQgFhCQASIORQ1ZIBgNACAOICQgFvwKAAALIAtBDGohCyAIIAlqIhggFjYCACAYQQhqIBY2AgAgGEEEaiAONgIAIAlBDGohCSAEQQFrIgQNAAsMAgtBACESIAwoAgwiA0UEQEEBIQhBACEDDAILIAwoAgghBCADEJABIghFDVYgA0UNASAIIAQgA/wKAAAMAQsgBEHu6rHjBjYAAEEwEJABIgNFDVkgA0EENgIUIAMgBDYCECADQpOAgIDAADcDCCADQQU6AAAgBSgCECIEKAIAIQggBCAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0BDAILQTAQkAEiBEUNWCAEQQQ2AhQgBCAfNgIQIARCk4CAgMAANwMIIARBBToAACAFKAIQIgsoAgAhCSALIAlBAWo2AgAgCUEASA0AIAYgBSkACDcAKSAGIAUpAAA3ACFBMBCQASIJRQ1YIAlBFTYCCCAJQQU6AAAgCyALKAIAIg5BAWo2AgAgBiAMKQAANwBwIAYgDCkACDcAeCAOQQBIDQAgBiAGKQBtNwNYIAYgBikAdTcDYCAGIAYoAHw2AGcgBiAFKQAINwBQIAYgBSkAADcASCAKQQE6ACAgCiAENgIcIAogAzYCGCAKIAg2AhQgCiADNgIQIAogEjYCDCAKQQ46AAggCkEDOgAAIApBDjoAWCAKQQM6AFAgCkEAOgBMIAogCzYCSCAKIAYpAAo3ACEgCiAGKQASNwApIAogBikAGjcAMSAKIAYpACI3ADkgCiAGKQApNwBAIAogBigAZzYAaCAKIAYpA2A3AGEgCiAGKQNYNwBZIApBAToAcCAKIAk2AmwgCiAGKQBQNwCQASAKIAYpAEk3AIkBIAogBikAQTcAgQEgCiAGKQA5NwB5IAogBikAMTcAcSAKQQA6AJwBIAogCzYCmAEgB0ECNgIMIAcgCjYCCCAHQQI2AgRBAAwCCwALIAcgBikAMTcACSAHIAYpADk3ABEgByAGKABANgAYIAcgBSkCCDcCQCAHIAUpAgA3AjggB0EAOgBMIAcgBDYCSCAHQQE6ACAgByADNgIcIAdBDjoACEEDCzoAACAXRQ0AIBFBBGsoAgAiA0F4cSEEAkAgBEEEQQggA0EDcSIDGyAXak8EQCADQQBHIAQgF0EnaktxDQEgERC8BQwCCwxUCwxUCyAGQYABaiQAQdAAEKwUIgQgB0HQAPwKAAAgAkF/NgIwIAJBATYCCCACIAQ2AgQgAkEBNgIADEoLIAJBATYCsAcLIAJB2AdqIAUgAkFAa0EAIAJBsAdqEFAgAigCiAgiBEF/Rg0gIA0gGSkCADcCACANIBkoAgg2AgggAiACKQOACCJPNwPICCACIAIpA/gHIk43A8AIIAIgAikD8AciUDcDuAggAiACKQPoByJRNwOwCCACIAIpA+AHIlI3A6gIIAIgAikD2AciUzcDoAggAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiAENgIwDDMLAkAgEC0ABUUEQCACQbAHaiAFEJ8KDAELIAJBATYCsAcLIAJB2AdqIAUgAkFAa0EAIAJBsAdqEFAgAigCiAgiBEF/RwRAIA0gGSkCADcCACANIBkoAgg2AgggAiACKQOACCJPNwPICCACIAIpA/gHIk43A8AIIAIgAikD8AciUDcDuAggAiACKQPoByJRNwOwCCACIAIpA+AHIlI3A6gIIAIgAikD2AciUzcDoAggAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiAENgIwDDMLIAIgAikD8Ac3A7gIIAIgAikD6Ac3A7AIIAIgAikD4Ac3A6gIIAIgAikD2Ac3A6AIIAJBsAFqIgsgAkGgCGoQxhIgAkHgCGohBiACQZgBaiEMQQAhA0EAIQhBACEJIwBBgAFrIgckAAJAAkACQAJAIAsoAgAiEkF/RgRAQTAQkAEiBEUNViAEQX82AgggBEEDOgAAIAQgC0EEaiIDKQIANwIMIAQgAykCCDcCFCAEIAMpAhA3AhwgBCADKAIYNgIkIAUoAhAiAygCACEIIAMgCEEBajYCACAHIAwpAAA3ADQgByAMKQAINwA8IAhBAEgNAiAGIAcpADE3AAkgBiAHKQA5NwARIAYgBygAQDYAGCAGIAUpAgg3AkAgBiAFKQIANwI4IAZBADoATCAGIAM2AkggBkEBOgAgIAYgBDYCHCAGQQ46AAggBkEDOgAADAQLIAsoAgwhDiALKAIIIREgCygCBCEXAkACQAJAAkAgEkEPRgRAIA5BBmsOAwEDAlcLQTAQkAEiBEUNWSAEIA42AhQgBCARNgIQIAQgFzYCDCAEIBI2AgggBEEDOgAAIAQgC0EQaiIDKQMANwMYIAQgAykDCDcDICAFKAIQIgMoAgAhCCADIAhBAWo2AgAgByAMKQAANwA0IAcgDCkACDcAPCAIQQBIDQUgBiAHKQAxNwAJIAYgBykAOTcAESAGIAcoAEA2ABggBiAFKQIINwJAIAYgBSkCADcCOCAGQQA6AEwgBiADNgJIIAZBAToAICAGIAQ2AhwgBkEOOgAIIAZBAzoAAAwHCyARKAAAQcTEuaoHcyARQQRqLwAAQezYAXNyDVVBMBCQASIERQ1YIARBFTYCCEEDIQMgBEEDOgAAIAUoAhAiCCgCACELIAggC0EBajYCACAHIAwpAAA3ADQgByAMKQAINwA8IAtBAEgNBCAGIAcpADE3AAkgBiAHKQA5NwARIAYgBygAQDYAGCAGIAUpAgg3AkAgBiAFKQIANwI4IAZBADoATCAGIAg2AkggBkEBOgAgIAYgBDYCHCAGQQ46AAgMBQsgESkAAELK5r3z5qmdtuwAUg1UQQQQkAEiAw0BDFMLIBEoAABBwdzl8wRzIBFBA2ooAABBzuqx4wZzcg1TQaABEJABIgpFDVZBBBCQASIfRQ1SIB9B7uqx4wY2AAACQAJAIAwoAgAiEg4DAQADAAtBASESIAwoAgwiA0UEQEEAIQNBBCEIDAMLIAwoAgghCyADQQxsIiMQkAEiCEUNUiADIQQDQCAJICNGDQNBASEOAkAgC0EIaigCACIWRSIYDQAgC0EEaigCACEkIBYQkAEiDkUNVSAYDQAgDiAkIBb8CgAACyALQQxqIQsgCCAJaiIYIBY2AgAgGEEIaiAWNgIAIBhBBGogDjYCACAJQQxqIQkgBEEBayIEDQALDAILQQAhEiAMKAIMIgNFBEBBASEIQQAhAwwCCyAMKAIIIQQgAxCQASIIRQ1SIANFDQEgCCAEIAP8CgAADAELIANB7uqx4wY2AABBMBCQASIERQ1VIARBBDYCFCAEIAM2AhAgBEKTgICAwAA3AwhBAyEDIARBAzoAACAFKAIQIggoAgAhCyAIIAtBAWo2AgAgByAMKQAANwA0IAcgDCkACDcAPCALQQBIDQEgBiAHKQAxNwAJIAYgBykAOTcAESAGIAcoAEA2ABggBiAFKQIINwJAIAYgBSkCADcCOCAGQQA6AEwgBiAINgJIIAZBAToAICAGIAQ2AhwgBkEOOgAIDAILQTAQkAEiBEUNVCAEQQQ2AhQgBCAfNgIQIARCk4CAgMAANwMIIARBAzoAACAFKAIQIgsoAgAhCSALIAlBAWo2AgAgCUEASA0AIAcgBSkACDcAKSAHIAUpAAA3ACFBMBCQASIJRQ1UIAlBFTYCCCAJQQM6AAAgCyALKAIAIg5BAWo2AgAgByAMKQAANwBwIAcgDCkACDcAeCAOQQBIDQAgByAHKQBtNwNYIAcgBykAdTcDYCAHIAcoAHw2AGcgByAFKQAINwBQIAcgBSkAADcASCAKQQE6ACAgCiAENgIcIAogAzYCGCAKIAg2AhQgCiADNgIQIAogEjYCDCAKQQ46AAggCkEDOgAAIApBDjoAWCAKQQM6AFBBACEDIApBADoATCAKIAs2AkggCiAHKQAKNwAhIAogBykAEjcAKSAKIAcpABo3ADEgCiAHKQAiNwA5IAogBykAKTcAQCAKIAcoAGc2AGggCiAHKQNgNwBhIAogBykDWDcAWSAKQQE6AHAgCiAJNgJsIAogBykAUDcAkAEgCiAHKQBJNwCJASAKIAcpAEE3AIEBIAogBykAOTcAeSAKIAcpADE3AHEgCkEAOgCcASAKIAs2ApgBIAZBAjYCDCAGIAo2AgggBkECNgIEDAELAAsgBiADOgAAIBdFDQAgEUEEaygCACIDQXhxIQQCQCAEQQRBCCADQQNxIgMbIBdqTwRAIANBAEcgBCAXQSdqS3ENASARELwFDAILDFELDFELIAdBgAFqJABB0AAQrBQiBCAGQdAA/AoAACACQX82AjAgAkEBNgIIIAIgBDYCBCACQQE2AgAMRwsgBSkCACFPIAUpAgghTiAFKAIQIgUoAgAhCCAFIAhBAWo2AgAgAiBONwPoCCACIE83A+AIIAhBAEgNICAEIAIpA+gINwIwIAQgAikD4Ag3AiggBCADOgAMIARBHTYCCCAEQQQ6AAAgBCAFNgI4IAJBfzYCMCACQQE2AgggAiAENgIEIAJBATYCAAwuCyACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAFKAIQIgQoAgAhCCAEIAhBAWo2AgAgCEEASA0fICkgBSkCCDcCCCApIAUpAgA3AgAgAyACKQPoBzcCHCADIAIpA+AHNwIUIAMgAikD2Ac3AgwgA0EEOgAAIANBHDYCCAwsCyACIAIpA/AINwPoByACIAIpA+gINwPgByACIAIpA+AINwPYByAFKAIQIgQoAgAhCCAEIAhBAWo2AgAgCEEASA0eICkgBSkCCDcCCCApIAUpAgA3AgAgAyACKQPoBzcCHCADIAIpA+AHNwIUIAMgAikD2Ac3AgwgA0EEOgAAIANBGzYCCAwrCyACIAIpA/gINwO4CCACIAIpA/AINwOwCCACIAIpA+gINwOoCCACIAIpA+AINwOgCCAFKAIQIgMoAgAhCCADIAhBAWo2AgAgCEEASA0dICggBSkCADcCACAoIAUpAgg3AgggJiACKQOgCDcAACAmIAIpA6gINwAIICYgAikDsAg3ABAgJiACKQO4CDcAGCAmIAIpA4AJNwAgICYgAikDiAk3ACggBCACKQCHCDcAMCAEIAIpAIAINwApIAQgAikA+Ac3ACEgBCACKQDwBzcAGSAEIAIpAOgHNwARIAQgAikA4Ac3AAkgBCACKQDYBzcAASAEQQQ6AAAgBCADNgI4IAJBATYCACACIAQ2AgQgAkEBNgIIIAJBfzYCMAwrCyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQeAIaiIEIAUgAkGgCGogAkGYAWoQtA8MKAsgAkHYB2ogBSAQLQAFIAJBQGsQrBMgAigCiAgiBEF/RwRAIA0gGSkCADcCACANIBkoAgg2AgggAiACKQOACCJPNwPICCACIAIpA/gHIk43A8AIIAIgAikD8AciUDcDuAggAiACKQPoByJRNwOwCCACIAIpA+AHIlI3A6gIIAIgAikD2AciUzcDoAggAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiAENgIwIANB0AAQ2RIMLQsgAiACKQPwBzcDuAggAiACKQPoBzcDsAggAiACKQPgBzcDqAggAiACKQPYBzcDoAggAkHgCGoiBCAFIAJBoAhqIAJBmAFqELUPDCcLIAJBATYCsAELIAJB2AdqIAUgAkFAa0EAIAJBsAFqEFAgAigCiAgiBEF/Rg0BIA0gGSkCADcCACANIBkoAgg2AgggAiACKQOACCJPNwPICCACIAIpA/gHIk43A8AIIAIgAikD8AciUDcDuAggAiACKQPoByJRNwOwCCACIAIpA+AHIlI3A6gIIAIgAikD2AciUzcDoAggAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiAENgIwIANB0AAQ2RIMKgsCQCAQLQAFRQRAIAJBsAFqIAUQnwoMAQsgAkEBNgKwAQsgAkHYB2ogBSACQUBrQQAgAkGwAWoQUCACKAKICCIEQX9GDQEgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAgA0HQABDZEgwpCyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQeAIaiIEIAUgAkGgCGogAkGYAWoQtg8MIgsgAiACKQPwBzcDuAggAiACKQPoBzcDsAggAiACKQPgBzcDqAggAiACKQPYBzcDoAggAkHgCGoiBCAFIAJBoAhqIAJBmAFqELcPDCELIAJBATYCsAELIAJB2AdqIAUgAkFAa0EAIAJBsAFqEFAgAigCiAgiBEF/Rg0BIA0gGSkCADcCACANIBkoAgg2AgggAiACKQOACCJPNwPICCACIAIpA/gHIk43A8AIIAIgAikD8AciUDcDuAggAiACKQPoByJRNwOwCCACIAIpA+AHIlI3A6gIIAIgAikD2AciUzcDoAggAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiAENgIwIANB0AAQ2RIMJQsCQCAQLQAFRQRAIAJBsAFqIAUQnwoMAQsgAkEBNgKwAQsgAkHYB2ogBSACQUBrQQAgAkGwAWoQUCACKAKICCIEQX9GDQEgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAgA0HQABDZEgwkCyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQeAIaiIEIAUgAkGgCGogAkGYAWoQtw8MHAsgAiACKQPwBzcDuAggAiACKQPoBzcDsAggAiACKQPgBzcDqAggAiACKQPYBzcDoAggAkHgCGoiBCAFIAJBoAhqIAJBmAFqELYPDBsLIAJBATYCsAELIAJB2AdqIAUgAkFAa0EAIAJBsAFqEFAgAigCiAgiBEF/Rw0BIAIgAikD8Ac3A7gIIAIgAikD6Ac3A7AIIAIgAikD4Ac3A6gIIAIgAikD2Ac3A6AIIAJB4AhqIgQgBSACQaAIaiACQZgBahC1DwwYCwJAIBAtAAVFBEAgAkGwAWogBRCfCgwBCyACQQE2ArABCyACQdgHaiAFIAJBQGtBACACQbABahBQIAIoAogIIgRBf0cNASACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQeAIaiIEIAUgAkGgCGogAkGYAWoQtA8MFwsgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNOyAFQQBHIARB+ABPcQ08IAMQvAUMHgsgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIFM3AwAgAiBSNwMIIAIgUTcDECACIFA3AxggAiBONwMgIAIgTzcDKCACIAQ2AjAgA0EEaygCACIEQQNxIQUgBEF4cUHUAEHYACAFG0kNOiAFQQBHIARB+ABPcQ07IAMQvAUMHQsgAkEBNgKwAQsgAkHYB2ogBSACQUBrQQAgAkGwAWoQUCACKAKICCIEQX9GDQsgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAMGwsCQCAQLQAFRQRAIAJBsAFqIAUQnwoMAQsgAkEBNgKwAQsgAkHYB2ogBSACQUBrQQAgAkGwAWoQUCACKAKICCIEQX9HBEAgDSAZKQIANwIAIA0gGSgCCDYCCCACIAIpA4AIIk83A8gIIAIgAikD+AciTjcDwAggAiACKQPwByJQNwO4CCACIAIpA+gHIlE3A7AIIAIgAikD4AciUjcDqAggAiACKQPYByJTNwOgCCACIE83AyggAiBONwMgIAIgUDcDGCACIFE3AxAgAiBSNwMIIAIgUzcDACACIAQ2AjAMGwsgAiACKQPwBzcDuAggAiACKQPoBzcDsAggAiACKQPgBzcDqAggAiACKQPYBzcDoAggAkGYAWohDEEAIQNBACEIQQAhCSMAQYABayIGJAACQCACQeAIaiIHAn8CQAJAAkAgAkGgCGoiCygCACISQX9GBEBBMBCQASIERQ0/IARBfzYCCCAEQQE6AAAgBCALQQRqIgMpAgA3AgwgBCADKQIINwIUIAQgAykCEDcCHCAEIAMoAhg2AiQgBSgCECIDKAIAIQggAyAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0CIAcgBikAMTcACSAHIAYpADk3ABEgByAGKABANgAYIAcgBSkCCDcCQCAHIAUpAgA3AjggB0EAOgBMIAcgAzYCSCAHQQI6ACAgByAENgIcIAdBDjoACCAHQQM6AAAMBQsgCygCDCEOIAsoAgghESALKAIEIRcCQAJAAkACQCASQQ9GBEAgDkEGaw4DAQMCQAtBMBCQASIERQ1CIAQgDjYCFCAEIBE2AhAgBCAXNgIMIAQgEjYCCCAEQQE6AAAgBCALQRBqIgMpAwA3AxggBCADKQMINwMgIAUoAhAiAygCACEIIAMgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNBSAHIAYpADE3AAkgByAGKQA5NwARIAcgBigAQDYAGCAHIAUpAgg3AkAgByAFKQIANwI4IAdBADoATCAHIAM2AkggB0ECOgAgIAcgBDYCHCAHQQ46AAggB0EDOgAADAgLIBEoAABBxMS5qgdzIBFBBGovAABB7NgBc3INPkEwEJABIgNFDUEgA0EVNgIIIANBAToAACAFKAIQIgQoAgAhCCAEIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQQMBQsgESkAAELK5r3z5qmdtuwAUg09QQQQkAEiBA0BDDwLIBEoAABBwdzl8wRzIBFBA2ooAABBzuqx4wZzcg08QaABEJABIgpFDT9BBBCQASIfRQ07IB9B7uqx4wY2AAACQAJAIAwoAgAiEg4DAQADAAtBASESIAwoAgwiA0UEQEEAIQNBBCEIDAMLIAwoAgghCyADQQxsIiMQkAEiCEUNOyADIQQDQCAJICNGDQNBASEOAkAgC0EIaigCACIWRSIYDQAgC0EEaigCACEkIBYQkAEiDkUNPiAYDQAgDiAkIBb8CgAACyALQQxqIQsgCCAJaiIYIBY2AgAgGEEIaiAWNgIAIBhBBGogDjYCACAJQQxqIQkgBEEBayIEDQALDAILQQAhEiAMKAIMIgNFBEBBASEIQQAhAwwCCyAMKAIIIQQgAxCQASIIRQ07IANFDQEgCCAEIAP8CgAADAELIARB7uqx4wY2AABBMBCQASIDRQ0+IANBBDYCFCADIAQ2AhAgA0KTgICAwAA3AwggA0EBOgAAIAUoAhAiBCgCACEIIAQgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNAQwCC0EwEJABIgRFDT0gBEEENgIUIAQgHzYCECAEQpOAgIDAADcDCCAEQQE6AAAgBSgCECILKAIAIQkgCyAJQQFqNgIAIAlBAEgNACAGIAUpAAg3ACkgBiAFKQAANwAhQTAQkAEiCUUNPSAJQRU2AgggCUEBOgAAIAsgCygCACIOQQFqNgIAIAYgDCkAADcAcCAGIAwpAAg3AHggDkEASA0AIAYgBikAbTcDWCAGIAYpAHU3A2AgBiAGKAB8NgBnIAYgBSkACDcAUCAGIAUpAAA3AEggCkECOgAgIAogBDYCHCAKIAM2AhggCiAINgIUIAogAzYCECAKIBI2AgwgCkEOOgAIIApBAzoAACAKQQ46AFggCkEDOgBQIApBADoATCAKIAs2AkggCiAGKQAKNwAhIAogBikAEjcAKSAKIAYpABo3ADEgCiAGKQAiNwA5IAogBikAKTcAQCAKIAYoAGc2AGggCiAGKQNgNwBhIAogBikDWDcAWSAKQQI6AHAgCiAJNgJsIAogBikAUDcAkAEgCiAGKQBJNwCJASAKIAYpAEE3AIEBIAogBikAOTcAeSAKIAYpADE3AHEgCkEAOgCcASAKIAs2ApgBIAdBAjYCDCAHIAo2AgggB0ECNgIEQQAMAgsACyAHIAYpADE3AAkgByAGKQA5NwARIAcgBigAQDYAGCAHIAUpAgg3AkAgByAFKQIANwI4IAdBADoATCAHIAQ2AkggB0ECOgAgIAcgAzYCHCAHQQ46AAhBAws6AAAgF0UNACARQQRrKAIAIgNBeHEhBAJAIARBBEEIIANBA3EiAxsgF2pPBEAgA0EARyAEIBdBJ2pLcQ0BIBEQvAUMAgsMOQsMOQsgBkGAAWokAEHQABCsFCIEIAdB0AD8CgAAIAJBfzYCMCACQQE2AgggAiAENgIEIAJBATYCAAwvCyACKAJIIgRBf0YEQEEwEJABIiBFDTkgIEF/NgIIICBBAToAACAgIDApAgA3AgwgICAwKQIINwIUICAgMCkCEDcCHCAgIDAoAhg2AiQgBSgCECIqKAIAIQQgKiAEQQFqNgIAIARBAEgNDQwQCyACKAJUIQMgAigCUCEKIAIoAkwhDAJAAkACQAJAIARBD0YEQCADQQZrDgMBAwI6C0EwEJABIiBFDTwgICBKKQMANwMYICAgSikDCDcDICAgIAM2AhQgICAKNgIQICAgDDYCDCAgIAQ2AgggIEEBOgAAIAUoAhAiKigCACEEICogBEEBajYCACAEQQBIDRAMEwsgCigAAEHExLmqB3MgCkEEai8AAEHs2AFzcg04QTAQkAEiIEUNOyAgQRU2AgggIEEBOgAAIAUoAhAiKigCACEEICogBEEBajYCACAEQQBIDQ8MEAsgCikAAELK5r3z5qmdtuwAUg03QQQQkAEiBA0BDDYLIAooAABBwdzl8wRzIApBA2ooAABBzuqx4wZzcg02IAIoAqQBIQMgAigCoAEhDiACKAKcASEXQaABEJABIgdFDTlBBBCQASIRRQ01IBFB7uqx4wY2AAACQAJAIBIiCQ4DAAEOAQsgAkHgCGogDiADEJQTIAIoAugIIUcgAigC5AghBiACKALgCCEnQQAhCQwNC0EBIQkgA0UEQEEEIQZBACEnQQAhRwwNCyADQQxsIicQkAEiBkUNNEEAIQQgDiELIAMhCANAIAQgJ0YNDCACQeAIaiALQQRqKAIAIAtBCGooAgAQlBMgBCAGaiIWIAIoAugINgIIIBYgAikC4Ag3AgAgBEEMaiEEIAtBDGohCyAIQQFrIggNAAsMCwsgBEHu6rHjBjYAAEEwEJABIiBFDTggIEEENgIUICAgBDYCECAgQpOAgIDAADcDCCAgQQE6AAAgBSgCECIqKAIAIQQgKiAEQQFqNgIAIARBAEgNDAwNCyACKAJIIgRBf0YNASAEQQRHDQEgAkHYB2ogBSAQLQAFIAJBQGsQrBMgAigCiAgiBEF/RwRAIA0gGSkCADcCACANIBkoAgg2AgggAiACKQOACCJPNwPICCACIAIpA/gHIk43A8AIIAIgAikD8AciUDcDuAggAiACKQPoByJRNwOwCCACIAIpA+AHIlI3A6gIIAIgAikD2AciUzcDoAggAiBPNwMoIAIgTjcDICACIFA3AxggAiBRNwMQIAIgUjcDCCACIFM3AwAgAiAENgIwDBkLIAIgAikD8Ac3A7gIIAIgAikD6Ac3A7AIIAIgAikD4Ac3A6gIIAIgAikD2Ac3A6AIIAJB4AhqIQMgAkGYAWohBiMAQTBrIgQkACAEIAJBoAhqIggpABg3ACggBCAIKQAQNwAgIAQgCCkACDcAGCAEIAgpAAA3ABACQEEwEJABIggEQCAIQQE6AAAgCCAEKQAJNwABIAggBCkAETcACSAIIAQpABk3ABEgCCAEKQAhNwAZIAggBCkAKDcAICAFKAIQIgcoAgAhCyAHIAtBAWo2AgAgBCAGKQAANwAMIAQgBikACDcAFCALQQBODQEACww4CyADIAQpAAk3AAkgAyAEKQARNwARIAMgBCgAGDYAGCADIAUpAgg3AkAgAyAFKQIANwI4IANBADoATCADIAc2AkggA0ECOgAgIAMgCDYCHCADQQ46AAggA0EDOgAAIARBMGokAEHQABCsFCIEIANB0AD8CgAAIAJBfzYCMCACQQE2AgggAiAENgIEIAJBATYCAAwtCyACQeAIaiIEIAJBQGtByAD8CgAAIAIgVDcDoAggK0Gh78EAIAJBoAhqELgMIAJBADoAnAggAkF/NgLwByAEEK4HIAIgFSkDADcDACACIBUpAwg3AwggAiAVKQMQNwMQIAIgFSkDGDcDGCACIBUpAyA3AyAgAiAVKQMoNwMoIAIgFSkDMDcDMCACIBUpAzg3AzgMFwsgAiATKQM4NwOYCSACIBMpAzA3A5AJIAIgEykDKDcDiAkgAiATKQMgNwOACSACIBMpAxg3A/gIIAIgEykDEDcD8AggAiATKQMINwPoCCACIBMpAwA3A+AIIAJBADoA3QcgAiAFNgLYByACIBAtAARBAXM6ANwHIAIgAkHYB2ogAkHgCGoQwgEMEwsgAkFAaxCuBwwqCyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQZgBaiEMQQAhA0EAIQhBACEJIwBBgAFrIgYkAAJAIAJB4AhqIgcCfwJAAkACQCACQaAIaiILKAIAIhJBf0YEQEEwEJABIgRFDTkgBEF/NgIIIARBBjoAACAEIAtBBGoiAykCADcCDCAEIAMpAgg3AhQgBCADKQIQNwIcIAQgAygCGDYCJCAFKAIQIgMoAgAhCCADIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQIgByAGKQAxNwAJIAcgBikAOTcAESAHIAYoAEA2ABggByAFKQIINwJAIAcgBSkCADcCOCAHQQA6AEwgByADNgJIIAdBAToAICAHIAQ2AhwgB0EOOgAIIAdBAzoAAAwFCyALKAIMIQ4gCygCCCERIAsoAgQhFwJAAkACQAJAIBJBD0YEQCAOQQZrDgMBAwI6C0EwEJABIgRFDTwgBCAONgIUIAQgETYCECAEIBc2AgwgBCASNgIIIARBBjoAACAEIAtBEGoiAykDADcDGCAEIAMpAwg3AyAgBSgCECIDKAIAIQggAyAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0FIAcgBikAMTcACSAHIAYpADk3ABEgByAGKABANgAYIAcgBSkCCDcCQCAHIAUpAgA3AjggB0EAOgBMIAcgAzYCSCAHQQE6ACAgByAENgIcIAdBDjoACCAHQQM6AAAMCAsgESgAAEHExLmqB3MgEUEEai8AAEHs2AFzcg04QTAQkAEiA0UNOyADQRU2AgggA0EGOgAAIAUoAhAiBCgCACEIIAQgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNBAwFCyARKQAAQsrmvfPmqZ227ABSDTdBBBCQASIEDQEMNgsgESgAAEHB3OXzBHMgEUEDaigAAEHO6rHjBnNyDTZBoAEQkAEiCkUNOUEEEJABIh9FDTUgH0Hu6rHjBjYAAAJAAkAgDCgCACISDgMBAAMAC0EBIRIgDCgCDCIDRQRAQQAhA0EEIQgMAwsgDCgCCCELIANBDGwiIxCQASIIRQ01IAMhBANAIAkgI0YNA0EBIQ4CQCALQQhqKAIAIhZFIhgNACALQQRqKAIAISQgFhCQASIORQ04IBgNACAOICQgFvwKAAALIAtBDGohCyAIIAlqIhggFjYCACAYQQhqIBY2AgAgGEEEaiAONgIAIAlBDGohCSAEQQFrIgQNAAsMAgtBACESIAwoAgwiA0UEQEEBIQhBACEDDAILIAwoAgghBCADEJABIghFDTUgA0UNASAIIAQgA/wKAAAMAQsgBEHu6rHjBjYAAEEwEJABIgNFDTggA0EENgIUIAMgBDYCECADQpOAgIDAADcDCCADQQY6AAAgBSgCECIEKAIAIQggBCAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0BDAILQTAQkAEiBEUNNyAEQQQ2AhQgBCAfNgIQIARCk4CAgMAANwMIIARBBjoAACAFKAIQIgsoAgAhCSALIAlBAWo2AgAgCUEASA0AIAYgBSkACDcAKSAGIAUpAAA3ACFBMBCQASIJRQ03IAlBFTYCCCAJQQY6AAAgCyALKAIAIg5BAWo2AgAgBiAMKQAANwBwIAYgDCkACDcAeCAOQQBIDQAgBiAGKQBtNwNYIAYgBikAdTcDYCAGIAYoAHw2AGcgBiAFKQAINwBQIAYgBSkAADcASCAKQQE6ACAgCiAENgIcIAogAzYCGCAKIAg2AhQgCiADNgIQIAogEjYCDCAKQQ46AAggCkEDOgAAIApBDjoAWCAKQQM6AFAgCkEAOgBMIAogCzYCSCAKIAYpAAo3ACEgCiAGKQASNwApIAogBikAGjcAMSAKIAYpACI3ADkgCiAGKQApNwBAIAogBigAZzYAaCAKIAYpA2A3AGEgCiAGKQNYNwBZIApBAToAcCAKIAk2AmwgCiAGKQBQNwCQASAKIAYpAEk3AIkBIAogBikAQTcAgQEgCiAGKQA5NwB5IAogBikAMTcAcSAKQQA6AJwBIAogCzYCmAEgB0ECNgIMIAcgCjYCCCAHQQI2AgRBAAwCCwALIAcgBikAMTcACSAHIAYpADk3ABEgByAGKABANgAYIAcgBSkCCDcCQCAHIAUpAgA3AjggB0EAOgBMIAcgBDYCSCAHQQE6ACAgByADNgIcIAdBDjoACEEDCzoAACAXRQ0AIBFBBGsoAgAiA0F4cSEEAkAgBEEEQQggA0EDcSIDGyAXak8EQCADQQBHIAQgF0EnaktxDQEgERC8BQwCCwwzCwwzCyAGQYABaiQAQdAAEKwUIgQgB0HQAPwKAAAgAkF/NgIwIAJBATYCCCACIAQ2AgQgAkEBNgIADCkLIAIgAikD8Ac3A7gIIAIgAikD6Ac3A7AIIAIgAikD4Ac3A6gIIAIgAikD2Ac3A6AIIAJBsAFqIgsgAkGgCGoQxhIgAkGYAWohDEEAIQNBACEIQQAhCSMAQYABayIGJAACQCACQeAIaiIHAn8CQAJAAkAgCygCACISQX9GBEBBMBCQASIERQ04IARBfzYCCCAEQQQ6AAAgBCALQQRqIgMpAgA3AgwgBCADKQIINwIUIAQgAykCEDcCHCAEIAMoAhg2AiQgBSgCECIDKAIAIQggAyAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0CIAcgBikAMTcACSAHIAYpADk3ABEgByAGKABANgAYIAcgBSkCCDcCQCAHIAUpAgA3AjggB0EAOgBMIAcgAzYCSCAHQQE6ACAgByAENgIcIAdBDjoACCAHQQM6AAAMBQsgCygCDCEOIAsoAgghESALKAIEIRcCQAJAAkACQCASQQ9GBEAgDkEGaw4DAQMCOQtBMBCQASIERQ07IAQgDjYCFCAEIBE2AhAgBCAXNgIMIAQgEjYCCCAEQQQ6AAAgBCALQRBqIgMpAwA3AxggBCADKQMINwMgIAUoAhAiAygCACEIIAMgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNBSAHIAYpADE3AAkgByAGKQA5NwARIAcgBigAQDYAGCAHIAUpAgg3AkAgByAFKQIANwI4IAdBADoATCAHIAM2AkggB0EBOgAgIAcgBDYCHCAHQQ46AAggB0EDOgAADAgLIBEoAABBxMS5qgdzIBFBBGovAABB7NgBc3INN0EwEJABIgNFDTogA0EVNgIIIANBBDoAACAFKAIQIgQoAgAhCCAEIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQQMBQsgESkAAELK5r3z5qmdtuwAUg02QQQQkAEiBA0BDDULIBEoAABBwdzl8wRzIBFBA2ooAABBzuqx4wZzcg01QaABEJABIgpFDThBBBCQASIfRQ00IB9B7uqx4wY2AAACQAJAIAwoAgAiEg4DAQADAAtBASESIAwoAgwiA0UEQEEAIQNBBCEIDAMLIAwoAgghCyADQQxsIiMQkAEiCEUNNCADIQQDQCAJICNGDQNBASEOAkAgC0EIaigCACIWRSIYDQAgC0EEaigCACEkIBYQkAEiDkUNNyAYDQAgDiAkIBb8CgAACyALQQxqIQsgCCAJaiIYIBY2AgAgGEEIaiAWNgIAIBhBBGogDjYCACAJQQxqIQkgBEEBayIEDQALDAILQQAhEiAMKAIMIgNFBEBBASEIQQAhAwwCCyAMKAIIIQQgAxCQASIIRQ00IANFDQEgCCAEIAP8CgAADAELIARB7uqx4wY2AABBMBCQASIDRQ03IANBBDYCFCADIAQ2AhAgA0KTgICAwAA3AwggA0EEOgAAIAUoAhAiBCgCACEIIAQgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNAQwCC0EwEJABIgRFDTYgBEEENgIUIAQgHzYCECAEQpOAgIDAADcDCCAEQQQ6AAAgBSgCECILKAIAIQkgCyAJQQFqNgIAIAlBAEgNACAGIAUpAAg3ACkgBiAFKQAANwAhQTAQkAEiCUUNNiAJQRU2AgggCUEEOgAAIAsgCygCACIOQQFqNgIAIAYgDCkAADcAcCAGIAwpAAg3AHggDkEASA0AIAYgBikAbTcDWCAGIAYpAHU3A2AgBiAGKAB8NgBnIAYgBSkACDcAUCAGIAUpAAA3AEggCkEBOgAgIAogBDYCHCAKIAM2AhggCiAINgIUIAogAzYCECAKIBI2AgwgCkEOOgAIIApBAzoAACAKQQ46AFggCkEDOgBQIApBADoATCAKIAs2AkggCiAGKQAKNwAhIAogBikAEjcAKSAKIAYpABo3ADEgCiAGKQAiNwA5IAogBikAKTcAQCAKIAYoAGc2AGggCiAGKQNgNwBhIAogBikDWDcAWSAKQQE6AHAgCiAJNgJsIAogBikAUDcAkAEgCiAGKQBJNwCJASAKIAYpAEE3AIEBIAogBikAOTcAeSAKIAYpADE3AHEgCkEAOgCcASAKIAs2ApgBIAdBAjYCDCAHIAo2AgggB0ECNgIEQQAMAgsACyAHIAYpADE3AAkgByAGKQA5NwARIAcgBigAQDYAGCAHIAUpAgg3AkAgByAFKQIANwI4IAdBADoATCAHIAQ2AkggB0EBOgAgIAcgAzYCHCAHQQ46AAhBAws6AAAgF0UNACARQQRrKAIAIgNBeHEhBAJAIARBBEEIIANBA3EiAxsgF2pPBEAgA0EARyAEIBdBJ2pLcQ0BIBEQvAUMAgsMMgsMMgsgBkGAAWokAEHQABCsFCIEIAdB0AD8CgAAIAJBfzYCMCACQQE2AgggAiAENgIEIAJBATYCAAwoCyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQbABaiILIAJBoAhqEMYSIAJBmAFqIQxBACEDQQAhCEEAIQkjAEGAAWsiBiQAAkAgAkHgCGoiBwJ/AkACQAJAIAsoAgAiEkF/RgRAQTAQkAEiBEUNNyAEQX82AgggBEECOgAAIAQgC0EEaiIDKQIANwIMIAQgAykCCDcCFCAEIAMpAhA3AhwgBCADKAIYNgIkIAUoAhAiAygCACEIIAMgCEEBajYCACAGIAwpAAA3ADQgBiAMKQAINwA8IAhBAEgNAiAHIAYpADE3AAkgByAGKQA5NwARIAcgBigAQDYAGCAHIAUpAgg3AkAgByAFKQIANwI4IAdBADoATCAHIAM2AkggB0EBOgAgIAcgBDYCHCAHQQ46AAggB0EDOgAADAULIAsoAgwhDiALKAIIIREgCygCBCEXAkACQAJAAkAgEkEPRgRAIA5BBmsOAwEDAjgLQTAQkAEiBEUNOiAEIA42AhQgBCARNgIQIAQgFzYCDCAEIBI2AgggBEECOgAAIAQgC0EQaiIDKQMANwMYIAQgAykDCDcDICAFKAIQIgMoAgAhCCADIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQUgByAGKQAxNwAJIAcgBikAOTcAESAHIAYoAEA2ABggByAFKQIINwJAIAcgBSkCADcCOCAHQQA6AEwgByADNgJIIAdBAToAICAHIAQ2AhwgB0EOOgAIIAdBAzoAAAwICyARKAAAQcTEuaoHcyARQQRqLwAAQezYAXNyDTZBMBCQASIDRQ05IANBFTYCCCADQQI6AAAgBSgCECIEKAIAIQggBCAIQQFqNgIAIAYgDCkAADcANCAGIAwpAAg3ADwgCEEASA0EDAULIBEpAABCyua98+apnbbsAFINNUEEEJABIgQNAQw0CyARKAAAQcHc5fMEcyARQQNqKAAAQc7qseMGc3INNEGgARCQASIKRQ03QQQQkAEiH0UNMyAfQe7qseMGNgAAAkACQCAMKAIAIhIOAwEAAwALQQEhEiAMKAIMIgNFBEBBACEDQQQhCAwDCyAMKAIIIQsgA0EMbCIjEJABIghFDTMgAyEEA0AgCSAjRg0DQQEhDgJAIAtBCGooAgAiFkUiGA0AIAtBBGooAgAhJCAWEJABIg5FDTYgGA0AIA4gJCAW/AoAAAsgC0EMaiELIAggCWoiGCAWNgIAIBhBCGogFjYCACAYQQRqIA42AgAgCUEMaiEJIARBAWsiBA0ACwwCC0EAIRIgDCgCDCIDRQRAQQEhCEEAIQMMAgsgDCgCCCEEIAMQkAEiCEUNMyADRQ0BIAggBCAD/AoAAAwBCyAEQe7qseMGNgAAQTAQkAEiA0UNNiADQQQ2AhQgAyAENgIQIANCk4CAgMAANwMIIANBAjoAACAFKAIQIgQoAgAhCCAEIAhBAWo2AgAgBiAMKQAANwA0IAYgDCkACDcAPCAIQQBIDQEMAgtBMBCQASIERQ01IARBBDYCFCAEIB82AhAgBEKTgICAwAA3AwggBEECOgAAIAUoAhAiCygCACEJIAsgCUEBajYCACAJQQBIDQAgBiAFKQAINwApIAYgBSkAADcAIUEwEJABIglFDTUgCUEVNgIIIAlBAjoAACALIAsoAgAiDkEBajYCACAGIAwpAAA3AHAgBiAMKQAINwB4IA5BAEgNACAGIAYpAG03A1ggBiAGKQB1NwNgIAYgBigAfDYAZyAGIAUpAAg3AFAgBiAFKQAANwBIIApBAToAICAKIAQ2AhwgCiADNgIYIAogCDYCFCAKIAM2AhAgCiASNgIMIApBDjoACCAKQQM6AAAgCkEOOgBYIApBAzoAUCAKQQA6AEwgCiALNgJIIAogBikACjcAISAKIAYpABI3ACkgCiAGKQAaNwAxIAogBikAIjcAOSAKIAYpACk3AEAgCiAGKABnNgBoIAogBikDYDcAYSAKIAYpA1g3AFkgCkEBOgBwIAogCTYCbCAKIAYpAFA3AJABIAogBikASTcAiQEgCiAGKQBBNwCBASAKIAYpADk3AHkgCiAGKQAxNwBxIApBADoAnAEgCiALNgKYASAHQQI2AgwgByAKNgIIIAdBAjYCBEEADAILAAsgByAGKQAxNwAJIAcgBikAOTcAESAHIAYoAEA2ABggByAFKQIINwJAIAcgBSkCADcCOCAHQQA6AEwgByAENgJIIAdBAToAICAHIAM2AhwgB0EOOgAIQQMLOgAAIBdFDQAgEUEEaygCACIDQXhxIQQCQCAEQQRBCCADQQNxIgMbIBdqTwRAIANBAEcgBCAXQSdqS3ENASARELwFDAILDDELDDELIAZBgAFqJABB0AAQrBQiBCAHQdAA/AoAACACQX82AjAgAkEBNgIIIAIgBDYCBCACQQE2AgAMJwsMLwsACyACIAIpA/AHNwO4CCACIAIpA+gHNwOwCCACIAIpA+AHNwOoCCACIAIpA9gHNwOgCCACQeAIaiEGIAJBmAFqIQxBACEDQQAhCEEAIQkjAEGAAWsiByQAAkACQAJAAkAgAkGgCGoiCygCACISQX9GBEBBMBCQASIERQ0zIARBfzYCCCAEQQA6AAAgBCALQQRqIgMpAgA3AgwgBCADKQIINwIUIAQgAykCEDcCHCAEIAMoAhg2AiQgBSgCECIDKAIAIQggAyAIQQFqNgIAIAcgDCkAADcANCAHIAwpAAg3ADwgCEEASA0DIAYgBykAMTcACSAGIAcpADk3ABEgBiAHKABANgAYIAYgBSkCCDcCQCAGIAUpAgA3AjggBkEAOgBMIAYgAzYCSCAGQQI6ACAgBiAENgIcIAZBDjoACCAGQQM6AAAMBAsgCygCDCEOIAsoAgghESALKAIEIRcCQAJAAkACQCASQQ9GBEAgDkEGaw4DAQMCNAtBMBCQASIERQ02IAQgDjYCFCAEIBE2AhAgBCAXNgIMIAQgEjYCCCAEQQA6AAAgBCALQRBqIgMpAwA3AxggBCADKQMINwMgIAUoAhAiAygCACEIIAMgCEEBajYCACAHIAwpAAA3ADQgByAMKQAINwA8IAhBAEgNBiAGIAcpADE3AAkgBiAHKQA5NwARIAYgBygAQDYAGCAGIAUpAgg3AkAgBiAFKQIANwI4IAZBADoATCAGIAM2AkggBkECOgAgIAYgBDYCHCAGQQ46AAggBkEDOgAADAcLIBEoAABBxMS5qgdzIBFBBGovAABB7NgBc3INMkEwEJABIgRFDTUgBEEVNgIIIARBADoAACAFKAIQIgMoAgAhCCADIAhBAWo2AgAgByAMKQAANwA0IAcgDCkACDcAPCAIQQBIDQUgBiAHKQAxNwAJIAYgBykAOTcAESAGIAcoAEA2ABggBiAFKQIINwJAIAYgBSkCADcCOCAGQQA6AEwgBiADNgJIIAZBAjoAICAGIAQ2AhwgBkEOOgAIQQMhCwwECyARKQAAQsrmvfPmqZ227ABSDTFBBBCQASIDDQEMMAsgESgAAEHB3OXzBHMgEUEDaigAAEHO6rHjBnNyDTBBoAEQkAEiCkUNM0EEEJABIh9FDS8gH0Hu6rHjBjYAAAJAAkAgDCgCACISDgMBAAMAC0EBIRIgDCgCDCIDRQRAQQAhA0EEIQgMAwsgDCgCCCELIANBDGwiIxCQASIIRQ0vIAMhBANAIAkgI0YNA0EBIQ4CQCALQQhqKAIAIhZFIhgNACALQQRqKAIAISQgFhCQASIORQ0yIBgNACAOICQgFvwKAAALIAtBDGohCyAIIAlqIhggFjYCACAYQQhqIBY2AgAgGEEEaiAONgIAIAlBDGohCSAEQQFrIgQNAAsMAgtBACESIAwoAgwiA0UEQEEBIQhBACEDDAILIAwoAgghBCADEJABIghFDS8gA0UNASAIIAQgA/wKAAAMAQsgA0Hu6rHjBjYAAEEwEJABIgRFDTIgBEEENgIUIAQgAzYCECAEQpOAgIDAADcDCCAEQQA6AAAgBSgCECIDKAIAIQggAyAIQQFqNgIAIAcgDCkAADcANCAHIAwpAAg3ADwgCEEASA0CIAYgBykAMTcACSAGIAcpADk3ABEgBiAHKABANgAYIAYgBSkCCDcCQCAGIAUpAgA3AjggBkEAOgBMIAYgAzYCSCAGQQI6ACAgBiAENgIcIAZBDjoACEEDIQsMAQtBMBCQASIERQ0xIARBBDYCFCAEIB82AhAgBEKTgICAwAA3AwggBEEAOgAAIAUoAhAiCSgCACELIAkgC0EBajYCACALQQBIDQEgByAFKQAINwApIAcgBSkAADcAIUEwEJABIg5FDTEgDkEVNgIIIA5BADoAAEEBIQsgCSAJKAIAIhZBAWo2AgAgByAMKQAANwBwIAcgDCkACDcAeCAWQQBIDQEgByAHKQBtNwNYIAcgBykAdTcDYCAHIAcoAHw2AGcgByAFKQAINwBQIAcgBSkAADcASCAKQQI6ACAgCiAENgIcIAogAzYCGCAKIAg2AhQgCiADNgIQIAogEjYCDCAKQQ46AAggCkEDOgAAIApBDjoAWCAKQQM6AFAgCkEAOgBMIAogCTYCSCAKIAcpAAo3ACEgCiAHKQASNwApIAogBykAGjcAMSAKIAcpACI3ADkgCiAHKQApNwBAIAogBygAZzYAaCAKIAcpA2A3AGEgCiAHKQNYNwBZIApBAjoAcCAKIA42AmwgCiAHKQBQNwCQASAKIAcpAEk3AIkBIAogBykAQTcAgQEgCiAHKQA5NwB5IAogBykAMTcAcSAKQQA6AJwBIAogCTYCmAEgBkECNgIMIAYgCjYCCCAGQQI2AgQLIAYgCzoAACAXRQ0BIBFBBGsoAgAiA0F4cSEEIARBBEEIIANBA3EiAxsgF2pJDS4gA0EARyAEIBdBJ2pLcQ0vIBEQvAUMAQsACyAHQYABaiQAQdAAEKwUIgQgBkHQAPwKAAAgAkF/NgIwIAJBATYCCCACIAQ2AgQgAkEBNgIADCQLIAMiJyFHC0EwEJABIgRFDSwgBEEENgIUIAQgETYCECAEQpOAgIDAADcDCCAEQQE6AAAgBSgCECIIKAIAIQsgCCALQQFqNgIAIAtBAEgNACBJIAUpAAg3AAggSSAFKQAANwAAQTAQkAEiC0UNLCALQRU2AgggC0EBOgAAIAggCCgCACIRQQFqNgIAIBFBAEgNACBIIAUpAAg3AAggSCAFKQAANwAAIAdBAjoAICAHIAQ2AhwgByBHNgIYIAcgBjYCFCAHICc2AhAgByAJNgIMIAdBDjoACCAHQQM6AAAgByACKQDYBzcAISAHIAIpAOAHNwApIAcgAikA6Ac3ADEgByACKQDwBzcAOSAHIAIpAPcHNwBAIAdBAjoAcCAHIAs2AmwgByADNgJoIAcgDjYCZCAHIBc2AmAgByASNgJcIAdBDjoAWCAHQQM6AFAgB0EAOgBMIAcgCDYCSCAHIAIpAOAINwBxIAcgAikA6Ag3AHkgByACKQDwCDcAgQEgByACKQD4CDcAiQEgByACKQD/CDcAkAEgB0EAOgCcASAHIAg2ApgBQQIhEkEADAILAAsgLyAFKQAINwAIIC8gBSkAADcAACACIEMpAgA3A+AIIAIgQygCCDYC6AhBDiEHQQMLIQQgDEUNASAKIAwQ2RIMAQsgLyAFKQAINwAIIC8gBSkAADcAACACIEMpAgA3A+AIIAIgQygCCDYC6AhBAyEEQQ4hBwtB0AAQkAEiAwRAIAMgEjYCDCADIAc2AgggA0ECNgIEIAMgBDoAACADIAIpA+AINwMQIAMgAigC6Ag2AhggA0ECOgAgIAMgIDYCHCADIAIpAL8INwBAIAMgAikAuAg3ADkgAyACKQCwCDcAMSADIAIpAKgINwApIAMgAikAoAg3ACEgA0EAOgBMIAMgKjYCSAwaCwwnCyADIARB0AD8CgAAIAJBfzYCMCACQQE2AgggAiADNgIEIAJBATYCAAwcCyADIARB0AD8CgAAIAJBfzYCMCACQQE2AgggAiADNgIEIAJBATYCAAwbCyADIARB0AD8CgAAIAJBfzYCMCACQQE2AgggAiADNgIEIAJBATYCAAwaCyADIARB0AD8CgAAIAJBfzYCMCACQQE2AgggAiADNgIEIAJBATYCAAwZCyADIAIoArAINgI0IAMgAikCqAg3AiwgAyACKQKgCDcCJCADIAQ2AjggAiADNgIEIAJBATYCCCACQQE2AgAgAkF/NgIwCwJAAkAgEg4DAAEZAQsgAigCnAEiBEUNGCACKAKgASAEENkSDBgLIAIoAqABIQQgAigCpAEiBwRAIAQhAwNAIAMoAgAiBQRAIANBBGooAgAiBkEEaygCACILQXhxIQggCEEEQQggC0EDcSILGyAFakkNIiALQQBHIAggBUEnaktxDSMgBhC8BQsgA0EMaiEDIAdBAWsiBw0ACwsgAigCnAEiBUUNFyAEQQRrKAIAIghBeHEhAyADIAVBDGwiBUEEQQggCEEDcSIIG2pJDR8gCEEARyADIAVBJ2pLcUUEQCAEELwFDBgLDCALIAQgAykACTcACSAEIAMpABE3ABEgBCADKAAYNgAYIAQgBSkCCDcCQCAEIAUpAgA3AjggBEEAOgBMIAQgCzYCSCAEQQA6ACAgBCAINgIcIARBDjoACCAEQQM6AAAgA0EwaiQAIAYgBEHQAPwKAAAgAkF/NgIwIAJBATYCCCACIAY2AgQgAkEBNgIADBYLIAQQvAULAkACQCASDgMAARYBCyACKAKcASIERQ0VIAIoAqABIgVBBGsoAgAiCEF4cSEDIANBBEEIIAhBA3EiCBsgBGpJDR0gCEEARyADIARBJ2pLcQ0eIAUQvAUMFQsgAigCoAEhBCACKAKkASIHBEAgBCEDA0AgAygCACIFBEAgA0EEaigCACIGQQRrKAIAIgtBeHEhCCAIQQRBCCALQQNxIgsbIAVqSQ0fIAtBAEcgCCAFQSdqS3ENICAGELwFCyADQQxqIQMgB0EBayIHDQALCyACKAKcASIFRQ0UIARBBGsoAgAiCEF4cSEDIAMgBUEMbCIFQQRBCCAIQQNxIggbakkNHCAIQQBHIAMgBUEnaktxRQRAIAQQvAUMFQsMHQsgBCADKQAJNwAJIAQgAykAETcAESAEIAMoABg2ABggBCAFKQIINwJAIAQgBSkCADcCOCAEQQA6AEwgBCAHNgJIIARBADoAICAEIAg2AhwgBEEOOgAIIARBAzoAACADQTBqJAAgAkF/NgIwIAJBATYCCCACIAQ2AgQgAkEBNgIADBMLIAQgAykACTcACSAEIAMpABE3ABEgBCADKAAYNgAYIAQgBSkCCDcCQCAEIAUpAgA3AjggBEEAOgBMIAQgBzYCSCAEQQA6ACAgBCAINgIcIARBDjoACCAEQQM6AAAgA0EwaiQAIAJBfzYCMCACQQE2AgggAiAENgIEIAJBATYCAAwSCyADIQQgCCEDIE8hVyAFIQgLQdAAEJABIgUEQCAFIAY6AAggBUEDOgAAIAUgBDYCGCAFIAM2AhQgBSAINgIQIAUgLjYCDCAFIAIpA4gCNwIcIAUgAigCkAI2AiQgBSBXNwMoIAUgAikDgAI3A0AgBSACKQP4ATcDOCAFIAIpA/ABNwMwIAVBADoATCAFIAs2AkggAkF/NgIwIAJBATYCCCACIAU2AgQgAkEBNgIADBELDBoLQQwLIQYgBCEHIAUhBAwBCyBPIVggBSEDC0HQABCQASIFBEAgBSAGOgAIIAVBAzoAACAFIAM2AhggBSAENgIUIAUgBzYCECAFICw2AgwgBSACKQOwAjcCHCAFIAIoArgCNgIkIAUgWDcDKCAFIAIpA6gCNwNAIAUgAikDoAI3AzggBSACKQOYAjcDMCAFQQA6AEwgBSALNgJIIAJBfzYCMCACQQE2AgggAiAFNgIEIAJBATYCAAwNCwwWCyADIAIpA7AINwNAIAMgAikDqAg3AzggAyACKQOgCDcDMCADQQA6AEwgAyAENgJIDAcLIAMgAikDsAg3A0AgAyACKQOoCDcDOCADIAIpA6AINwMwIANBADoATCADIAQ2AkgMBgsgAyACKQOwCDcDQCADIAIpA6gINwM4IAMgAikDoAg3AzAgA0EAOgBMIAMgBDYCSAwFCyADIAIpA7AINwNAIAMgAikDqAg3AzggAyACKQOgCDcDMCADQQA6AEwgAyAENgJIDAQLIAMgAikDsAg3A0AgAyACKQOoCDcDOCADIAIpA6AINwMwIANBADoATCADIAQ2AkgMAwsgAyACKQOwCDcDQCADIAIpA6gINwM4IAMgAikDoAg3AzAgA0EAOgBMIAMgBDYCSAwCCyADIAIpA7AINwNAIAMgAikDqAg3AzggAyACKQOgCDcDMCADQQA6AEwgAyAENgJIDAELIAMgAikDsAg3A0AgAyACKQOoCDcDOCADIAIpA6AINwMwIANBADoATCADIAQ2AkgLIAJBATYCACACIAM2AgQgAkEBNgIIIAJBfzYCMAwDCyADQQM6AAAgAyACKQPwBzcDMCADIAIpA+gHNwMoIAMgAikD4Ac3AyAgAyACKQPYBzcDGCADQQA2AhQgA0KAgICAwAA3AgwgAyBONwM4IAMgTzcDQCADIAQ2AkggA0EAOgBMIAJBATYCCCACIAM2AgQMAQsgAyACKAKwCDYCNCADIAIpAqgINwIsIAMgAikCoAg3AiQgAyAENgI4IAIgAzYCBCACQQE2AggLIAJBATYCACACQX82AjALIEZBAWtBfU0EQCAUQQRrKAIAIgNBeHEhBCAEQQRBCCADQQNxIgMbIEZqSQ0IIANBAEcgBCBGQSdqS3ENAiAUELwFCyACKQIEIU8gAigCACEEIAIoAjAiA0F/RwRAICUoAjBBf0cEQCAlEI0DCyAlIE83AgQgJSAENgIAICUgAzYCMCAlIBspAgA3AgwgJSAbKQIINwIUICUgGykCEDcCHCAlIBspAhg3AiQgJSAbKAIgNgIsICUgDSkCADcCNCAlIA0oAgg2AjwMAwsgBEF+TwRAIEwgTSIDRw0BDAMLCyAAIE8+AgQgACAENgIAIAAgT0IgiD4CCAwCCwwGCyAAQX82AgALIAJBwAlqJAAPC0EEEKcUAAtBARCnFAALQaCryQBBKEG8isYAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQbjwyQBBAToAAAAL0usBAiB/DX4jAEGQFGsiBCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEKIAEoAgAiBUEbayAFQRpNGyIjQQFrDgoAERAPAQIGBQQDFAsgBEGQDmogAUEEakHMAPwKAAAgBCgCpA4hCCAELQDZDgRAIAgNEkEAIQgLQX8hDiAEKAKcDiEKIAQoAqAODBILIAQgASgCeDYCuAQgBCABKQJwNwOwBCAEQfgPaiABQRBqQeAA/AoAACABKAIMIQsgASgCCCIGDQtBCCEMQQAMDAsgBCABKAIYNgKgDSAEIAEpAhA3A5gNIARBADYCtA0gBEEANgKkDSABKAIIIQ0gASgCBCELIAEoAgwhByABKAIcIQggASgCICEGIARBkA5qIgUgBEGYDWoiARDLBiAEKQOQDiIkQn9RDQggBEH4D2oiCSABEMsGIAQpA/gPQn9RDQQgBEGYBmoiAEHgAWogCUHoAfwKAAAgACAFQQhqQeAB/AoAACAEIAQoAsANNgKQDSAEIAQpA7gNNwOIDSAEIAQpA7ANNwOADSAEIAQpA6gNNwP4DCAEIAQpA6ANNwPwDCAEIAQpA5gNNwPoDCAEQbAEaiAAQegB/AoAACAEQYgLaiAJQQhqQeAB/AoAAAwJCyAEQZgGaiIGIAFBsAL8CgAAIARBsARqIARBuAdqIhkQhwMgBEGQDmoiBSAGEJADIAVBIGogBkEgahCmDCAEQfgPaiIFIARB6AZqEJADIAVBIGogBEGIB2oQpgwgBEHYDWogBEG8CGoiFhD4DSAEQQA2AvgTIARCgICAgMAANwLwEyAZQZcBIARB8BNqEPEOIAQoAvQTIQ8gBCgC8BMhFyAEKAL4EyELIAQoArwIIQ0CQAJAIAQoAtgNIhEgBCgC3A0iFEcEQCAEKALgDSEOIAtBFGwhCQNAAkAgES0AREEBRw0AIBEoAjwiCkEUaiEGIAogESgCQEEkbCIFaiEQIAohBwNAIAUEQAJ/IAcoAhAiCEUEQCAGNQIAISRBACEMIA4MAQsgBkEIaygCACAIQQxsaiIIQQhrKQIAISQgDiEMIAhBDGsoAgALIQggB0EkaiEHIAQgJDcC+BMgBCAINgL0EyAEIAw2AvATIAVBJGshBSAGQSRqIQYgBEHwE2oQrApFDQEMAgsLA0ACQAJAIAogEEcEQCAKKAIQIgUNASAKKAIUIQggDSANKAIAIgVBAWo2AgAgBUEASA0oQQEhDCAJIQYgDyEFIAtFDQIDQAJAIAUoAgANACAFQQRqKAIAIAhHDQBBACEMDAQLIAVBFGohBSAGQRRrIgYNAAsMAgsgESgCAEF/Rg0DIBEoAkAiDEUEQEEEIQhBACEMDAcLIBEoAjwhBSAMQRRsEJABIggEQCAFQQxqIQUgBCgCvAghDkEAIQogDCENA0ACQCAFQQRqKAIAIglFBEAgBUEIaiEGDAELIAUoAgAgCUEMbGoiB0EMayEGIAdBCGspAgAhJAsgBigCACEHIA4gDigCACIGQQFqNgIAIAZBAEgNKSAIIApqIgYgCUEARzYCACAGQRBqIA42AgAgBkEIaiAkNwIAIAZBBGogBzYCACAFQSRqIQUgCkEUaiEKIA1BAWsiDQ0ACwwHC0EEEKcUAAsgCigCDCAFQQxsaiIFQQhrKQIAISQgBUEMaygCACETIA0gDSgCACIFQQFqNgIAIAVBAEgNJkEBIQwgC0UNACAkQiCIpyEHICSnIQggCSEGIA8hBQNAAkAgBSgCAEUNACAFQQRqKAIAIBNHDQAgBUEIaigCACAIRw0AIAVBDGooAgAgB0cNAEEAIQwMAgsgBUEUaiEFIAZBFGsiBg0ACwsgDSANKAIAIgVBAWs2AgAgBUEBRgRAIA0QMAsgCkEkaiEKIAxFDQALCyAUIBFByABqIhFHDQALIAQoArwIIQ0LIAQgBCkDwAg3AogUIAQgDUEIajYChBQgBEHwE2ogBEGEFGoQhA4gBCgC8BMiBUUNGCAFKAI0IgxBAU0NGCALRQ0XIAtBFGwhCCAFKAIwIgcgDEEkbGohCiAHIQkDQCAJIApHBEAgCUEUaigCACENIAQoArwIIg4oAgAhBSAOIAVBAWo2AgAgBUEASA0jIAlBJGohCSAIIQYgDyEFAn8DQAJAIAUoAgANACAFQQRqKAIAIA1HDQBBAAwCCyAFQRRqIQUgBkEUayIGDQALQQELIA4gDigCACIGQQFrNgIAIAZBAUYEQCAOEDALRQ0BDBoLCyAMQRRsEJABIghFDQEgB0EUaiEGIAghBSAMIQoDQCAGKAIAIQcgBCgCvAgiDSgCACEJIA0gCUEBajYCACAJQQBIDSIgBUEANgIAIAVBEGogDTYCACAFQQRqIAc2AgAgBkEkaiEGIAVBFGohBSAKQQFrIgoNAAsLIAsEQCAPQRBqIQUDQCAFKAIAIgYoAgAhByAGIAdBAWs2AgAgB0EBRgRAIAUoAgAQMAsgBUEUaiEFIAtBAWsiCw0ACwsgDCEGDBgLQQQQpxQACyAEIAEoAjA2ArgEIAQgASkCKDcDsAQgBCABKQMgNwOQECAEIAEpAxg3A4gQIAQgASkDEDcDgBAgBCABKQMINwP4DyAEIAEoAjw2ApgOIAQgASkCNDcDkA4gBEGYBmogAiAEQbAEakEAIAQoArAEIgUbIARB+A9qIARBkA5qIAMoAjwRBgAgBCgCoAYhAyAEKAKcBiECIAQoApgGIgFBfkcEQCAEIAQpAsQGNwL0AyAEIAQpArwGNwLsAyAEIAQpArQGNwLkAyAEIAQpAqwGNwLcAyAEIAQpAqQGNwLUAyAEIAM2AtADIAQgAjYCzAMgBCABNgLIAyAEQgg3A8ADIAVFDQQgBSAFKAIAIgFBAWs2AgAgAUEBRw0EIAQoArAEEDAMBAsgAEGLgICAeDYCOCAAIAM2AgwgACACNgIIIABCfzcDACAFRQ0iIAUgBSgCACIAQQFrNgIAIABBAUcNIiAEKAKwBBAwDCILIAQgASgCMDYCuAQgBCABKQIoNwOwBCAEIAEpAyA3A5AQIAQgASkDGDcDiBAgBCABKQMQNwOAECAEIAEpAwg3A/gPIAQgASgCPDYCmA4gBCABKQI0NwOQDiAEQZgGaiACIARBsARqQQAgBCgCsAQiBRsgBEH4D2ogBEGQDmogAygCPBEGACAEKAKgBiEDIAQoApwGIQIgBCgCmAYiAUF+RwRAIAQgBCkCxAY3AvQDIAQgBCkCvAY3AuwDIAQgBCkCtAY3AuQDIAQgBCkCrAY3AtwDIAQgBCkCpAY3AtQDIAQgAzYC0AMgBCACNgLMAyAEIAE2AsgDIARCCTcDwAMgBUUNAyAFIAUoAgAiAUEBazYCACABQQFHDQMgBCgCsAQQMAwDCyAAQYuAgIB4NgI4IAAgAzYCDCAAIAI2AgggAEJ/NwMAIAVFDSEgBSAFKAIAIgBBAWs2AgAgAEEBRw0hIAQoArAEEDAMIQsgBCABKAIYNgKAECAEIAEpAhAiJDcD+A8CQCAkp0F/RwRAIAEoAgQhCyAEQZgGaiACIAEoAhwgASgCICAEQfgPaiABKAIIIgkgASgCDCIHIAMoAjARCwAgBCgCoAYhBSAEKAKcBiEDIAQoApgGIgJBfkYEQCAAQYuAgIB4NgI4IAAgBTYCDCAAIAM2AgggAEJ/NwMAIAcEQANAIAkgCkEMbGoiACgCCCIGBEAgACgCBCEFA0AgBRCBBSAFQcgBahCHBCAFQegBaiEFIAZBAWsiBg0ACwsgACgCACIFBEAgACgCBCIDQQRrKAIAIgBBeHEhBiAGQQRBCCAAQQNxIgIbIAVB6AFsIgBqSQ0qIAJBAEcgBiAAQSdqS3ENKyADELwFCyAHIApBAWoiCkcNAAsLIAsEQCAJQQRrKAIAIgBBeHEhAyADQQRBCCAAQQNxIgIbIAtBDGwiAGpJDSggAkEARyADIABBJ2pLcQ0pIAkQvAULIAQoAvgPIgJBf0YNGCAEKAL8DyEAIAQoAoAQIgYEQCAAIQUDQCAFEIEFIAVByAFqEIcEIAVB6AFqIQUgBkEBayIGDQALCyACRQ0YIAAgAkHoAWwQ2RIMGAsgBCAEKQLEBjcC9AMgBCAEKQK8BjcC7AMgBCAEKQK0BjcC5AMgBCAEKQKsBjcC3AMgBCAEKQKkBjcC1AMgBCAFNgLQAyAEIAM2AswDIAQgAjYCyAMgBEIJNwPAAyAHBEADQCAJIApBDGxqIgIoAggiBgRAIAIoAgQhBQNAIAUQgQUgBUHIAWoQhwQgBUHoAWohBSAGQQFrIgYNAAsLIAIoAgAiBgRAIAIoAgQiBUEEaygCACICQXhxIQggCEEEQQggAkEDcSIDGyAGQegBbCICakkNKSADQQBHIAggAkEnaktxDSogBRC8BQsgByAKQQFqIgpHDQALCyALBEAgCUEEaygCACICQXhxIQUgBUEEQQggAkEDcSIDGyALQQxsIgJqSQ0nIANBAEcgBSACQSdqS3ENAiAJELwFCyAEKAL4DyIDQX9GDRsgBCgC/A8hAiAEKAKAECIGBEAgAiEFA0AgBRCBBSAFQcgBahCHBCAFQegBaiEFIAZBAWsiBg0ACwsgA0UNGyACIANB6AFsENkSDBsLQbTjxQBBJEHY48UAEMATAAsMJQsgBEGwBGoiDCAEQZAOaiIJQegB/AoAACAEQZgNaiIFEN0JIARBmAZqIgogDEHoAfwKAAAgBCAEKQP4BzcD8A0gBCAEKQPwBzcD6A0gBCAEKQPoBzcD4A0gBCAEKQPgBzcD2A0gChCBBSAEQQA2ArgNIARBADYCqA0gBCANIAdBDGxqNgKkDSAEIAs2AqANIAQgDTYCnA0gBCANNgKYDSAJIAUQ1QYgBCkDkA4iJEJ/UQ0BIARB+A9qIgEgBRDVBiAEKQP4D0J/UgRAIApB4AFqIAFB6AH8CgAAIAogCUEIakHgAfwKAAAgBCAEKQLADTcD6BMgBCAEKQK4DTcD4BMgBCAEKQKwDTcD2BMgBCAEKQKoDTcD0BMgBCAEKQKgDTcDyBMgBCAEKQKYDTcDwBMgDCAKQegB/AoAACAEQeARaiABQQhqQeAB/AoAAAwDCyAEQbAEaiIBIARBkA5qQegB/AoAACAEQZgNahDaDCAEQZgGaiIFIAFB6AH8CgAAIAQgBCkD+Ac3A5AQIAQgBCkD8Ac3A4gQIAQgBCkD6Ac3A4AQIAQgBCkD4Ac3A/gPIAUQgQUgBSACIAggBiAEQdgNaiAEQfgPaiADKAIsEQgAIAQoAqAGIQMgBCgCnAYhAiAEKAKYBiIBQX5GBEAgAEGLgICAeDYCOCAAIAM2AgwgACACNgIIIABCfzcDAAwgCyAEIAQpAsQGNwL0AyAEIAQpArwGNwLsAyAEIAQpArQGNwLkAyAEIAQpAqwGNwLcAyAEIAQpAqQGNwLUAyAEIAM2AtADIAQgAjYCzAMgBCABNgLIAyAEQgk3A8ADCyAAIARBwANqQfAA/AoAAAweCyAEIAQpAsANNwPoEyAEIAQpArgNNwPgEyAEIAQpArANNwPYEyAEIAQpAqgNNwPQEyAEIAQpAqANNwPIEyAEIAQpApgNNwPAE0J+ISQLIAQgJDcDmAYgBEGgBmogBEGwBGpB6AH8CgAAIARBiAhqIARB4BFqQZAC/AoAAEHw4cUAQcgAIARBmAZqQeDhxQBBuOLFABDaEgALIAQgBCgCwA02ApANIAQgBCkDuA03A4gNIAQgBCkDsA03A4ANIAQgBCkDqA03A/gMIAQgBCkDoA03A/AMIAQgBCkDmA03A+gMQn4hJAsgBCAkNwOYBiAEQaAGaiAEQbAEakHoAfwKAAAgBEGICGogBEGIC2pBjAL8CgAAQdjixQBByQAgBEGYBmpByOLFAEGk48UAENoSAAsgBEGYBmogBEH4D2ogCxCoByAEKAKcBiEMIAQoApgGIQggBCgCoAYLIQcgBEGYBmoiBSAEQfgPakHgAPwKAAAgBEGQDmogAiAEQbAEaiAFIAYgCyADKAI4EQgAIAQoApQOIQIgBCgCkA4iDUF/RgRAIAQoApgOIQMgAEGLgICAeDYCOCAAIAM2AgwgACACNgIIIABCfzcDACAHBEAgDCEFA0ACQCAFQfAAaigCACIGQX9GDQAgBkUNACAFQfQAaigCACICQQRrKAIAIgBBeHEhAyADQQRBCCAAQQNxIgAbIAZqSQ0gIABBAEcgAyAGQSdqS3ENISACELwFCyAFEKUBIAVBgAFqIQUgB0EBayIHDQALCyAIBEAgDEEEaygCACIAQXhxIQMgA0EEQQggAEEDcSICGyAIQQd0IgBySQ0eIAJBAEcgAyAAQSdyS3ENHyAMELwFCyAEKAKwBCIAKAIAIQIgACACQQFrNgIAIAJBAUcNDiAEKAKwBBAwDA4LIAQoApgOIgNByqSSCU8NBgJAIANB8ABsIgFFBEBBCCEBDAELIAMhDyABEJABIgFFDRwLAkAgA0UNACADQTRsQTRrIgVBNG4hAyACIQYgBUE0TwRAIANBAWoiA0EBcSADQf7///8AcSELIAEhBQNAIAYoAjAhAyAGKQIoISkgBikCICEoIAYpAhghJyAGKQIQISUgBikCCCEmIAYpAgAhJCAFQgk3AwAgBUEIaiAkNwIAIAVBEGogJjcCACAFQRhqICU3AgAgBUEgaiAnNwIAIAVBKGogKDcCACAFQTBqICk3AgAgBUE4aiADNgIAIAZB5ABqKAIAIQMgBkHcAGopAgAhKSAGQdQAaikCACEoIAZBzABqKQIAIScgBkHEAGopAgAhJSAGQTxqKQIAISYgBkE0aikCACEkIAVB8ABqQgk3AwAgBUH4AGogJDcCACAFQYABaiAmNwIAIAVBiAFqICU3AgAgBUGQAWogJzcCACAFQZgBaiAoNwIAIAVBoAFqICk3AgAgBUGoAWogAzYCACAGQegAaiEGIAVB4AFqIQUgCyAKQQJqIgpHDQALRQ0BCyAGKAIwIQMgBikCKCEpIAYpAiAhKCAGKQIYIScgBikCECElIAYpAgghJiAGKQIAISQgASAKQfAAbGoiBUIJNwMAIAUgJDcCCCAFICY3AhAgBSAlNwIYIAUgJzcCICAFICg3AiggBSApNwIwIAUgAzYCOCAKQQFqIQoLIA0EQCACIA1BNGwQ2RILIAQgCjYC0AMgBCABNgLMAyAEIA82AsgDIARCCjcDwAMCQAJAIAdFBEAgCEUNASAMIAhBB3QQ2RIMAQtB8AAQkAEiAUUNASABIARBwANqQfAA/AoAACAEIAE2AtQDIAQgBzYC0AMgBCAMNgLMAyAEIAg2AsgDIARCBjcDwAMLIAQoArAEIgEoAgAhAiABIAJBAWs2AgAgAkEBRgRAIAQoArAEEDALIAAgBEHAA2pB8AD8CgAADBkLDB8LIAQgASgC+AE2AvgTIAQgASkC8AE3A/ATIARB+A9qIAFB4ABqQeAA/AoAACABKAJYIQUgBCABKALsATYCuA0gBCABKQLkATcDsA0gBCABKQLcATcDqA0gBCABKQLUATcDoA0gBCABKQLMASIkNwOYDSABQRBqIQkgASgCDCELIAEoAgghBwJAAkACQAJAAkACQAJ/ICSnIgxBf0cEQCAFRQ0DIARBmA1qDAELIAVFDQFBAAshBQJAIAcEQCAEQewBaiAEQfgPaiALEKgHDAELIARBADYC9AEgBEKAgICAgAE3AuwBCyAEQZgGaiIIIARB+A9qQeAA/AoAACAEQZAOaiIGIAlB0AD8CgAAIARBsARqIAIgBEHwE2ogCCAGIAUgByALIAMoAiQRDAAgBCgCtAQhCCAEKAKwBCIPQX9GBEAgBCgCuAQhAiAAQYuAgIB4NgI4IAAgAjYCDCAAIAg2AgggAEJ/NwMAIAQoAvABIQAgBCgC9AEiBwRAIAAhBQNAAkAgBUHwAGooAgAiCEF/Rg0AIAhFDQAgBUH0AGooAgAiA0EEaygCACICQXhxIQYgBkEEQQggAkEDcSICGyAIakkNJSACQQBHIAYgCEEnaktxDSYgAxC8BQsgBRClASAFQYABaiEFIAdBAWsiBw0ACwsgBCgC7AEiAgRAIAAgAkEHdBDZEgsgBCgCmA1Bf0YNBiAEQZgNahDtCQwGCyAEKAK4BCIGQcqkkglPDQtBACEHAkAgBkHwAGwiCUUEQEEIIQ5BACELDAELIAYhCyAJEJABIg5FDSELAkAgBkUNAEGYAUGZASAFGyEQIAghBSAGQQFHBEAgBkEBa0H/////A3FBAWoiBkEBcSAGQf7///8HcSENIA4hBgNAIAQgBSgCMDYCwA4gBCAFKQIoNwO4DiAEIAUpAiA3A7AOIAQgBSkCGDcDqA4gBCAFKQIQNwOgDiAEIAUpAgg3A5gOIAQgBSkCADcDkA4gBEGYBmoiEyAEQZAOaiIJIBARAgAgBiATQfAA/AoAACAEIAVB5ABqKAIANgLADiAEIAVB3ABqKQIANwO4DiAEIAVB1ABqKQIANwOwDiAEIAVBzABqKQIANwOoDiAEIAVBxABqKQIANwOgDiAEIAVBPGopAgA3A5gOIAQgBUE0aikCADcDkA4gEyAJIBARAgAgBkHwAGogE0HwAPwKAAAgBUHoAGohBSAGQeABaiEGIA0gB0ECaiIHRw0AC0UNAQsgBCAFKAIwNgLADiAEIAUpAig3A7gOIAQgBSkCIDcDsA4gBCAFKQIYNwOoDiAEIAUpAhA3A6AOIAQgBSkCCDcDmA4gBCAFKQIANwOQDiAEQZgGaiIFIARBkA5qIBARAgAgDiAHQfAAbGogBUHwAPwKAAAgB0EBaiEHCyAPBH8gCCAPQTRsENkSIAQoApgNBSAMC0F/Rg0CIAQgBCgCuA0iBTYC0AQgBCAEKQOwDTcDyAQgBCAEKQOoDTcDwAQgBCAEKQOgDTcDuAQgBCAEKQOYDTcDsAQgBCAHNgLQAyAEIA42AswDIAQgCzYCyAMgBEILNwPAAyAFRQRAIARBmA1qEPMRIARBvARqEOUOIARByARqEK0RDAULIARBmAZqIARBwANqIARBsA1qIAIgAxBbIAQgBCkDoAY3A5AOIAQgBCkDqAY3A5gOIAQgBCkDsAY3A6AOIAQgBCkDuAY3A6gOIAQgBCkDwAY3A7AOIAQgBCkDyAY3A7gOIAQgBCkD0AY3A8AOIAQgBCkD2AY3A8gOIAQpA5gGIiRCf1EEQCAAIAQpA8gONwNAIAAgBCkDwA43AzggACAEKQO4DjcDMCAAIAQpA7AONwMoIAAgBCkDqA43AyAgACAEKQOgDjcDGCAAIAQpA5gONwMQIAAgBCkDkA43AwggAEJ/NwMAIARBmA1qEPMRIARBvARqEOUOIARB7AFqELYODAYLIAQgBCkDgAc3A6gEIAQgBCkD+AY3A6AEIAQgBCkD8AY3A5gEIAQgBCkD6AY3A5AEIAQgBCkD4AY3A4gEIARByANqIgIgBCkDkA43AwAgAiAEKQOYDjcDCCACIAQpA6AONwMQIAIgBCkDqA43AxggAiAEKQOwDjcDICACIAQpA7gONwMoIAIgBCkDwA43AzAgAiAEKQPIDjcDOCAEICQ3A8ADIARBmA1qEPMRIARBvARqEOUODAQLIARB2A1qIAFB8AFqENIEDAILIARB2A1qIAQoApwNIAQoAqANEJUDDAELIAQgBzYC0AMgBCAONgLMAyAEIAs2AsgDIARCCjcDwAMMAQsgBEGYBmoiBSAEQfgPakHgAPwKAAAgBEGQDmogAiADKAIMIARB8BNqIAUgBEHYDWpCfxCjBAJAIAQoApAOQQFGBEAgBCAEKQPQDiIuNwLsBCAEIAQpA8gOIio3AuQEIAQgBCkDwA4iKTcC3AQgBCAEKQO4DiIoNwLUBCAEIAQpA7AOIic3AswEIAQgBCkDqA4iJTcCxAQgBCAEKQOgDiImNwK8BCAEIAQpA5gOIiQ3ArQEIAAgLjcCQCAAICo3AjggACApNwIwIAAgKDcCKCAAICc3AiAgACAlNwIYIAAgJjcCECAAICQ3AgggAEJ/NwMADAELIAQgBCgCxA4iAjYC4AQgBCAEKQK8DiImNwPYBCAEIAQpArQOIiQ3A9AEIAQgBCkClA43A7gBIAQgBCkCnA43A8ABIAQgBCkCpA43A8gBIAQgBCkCrA43A9ABIAQgJDcD2AEgBCAmNwPgASAEIAI2AugBIAAgBCgC6AE2AjggACAEKQPgATcCMCAAIAQpA9gBNwIoIAAgBCkD0AE3AiAgACAEKQPIATcCGCAAIAQpA8ABNwIQIAAgBCkDuAE3AgggDEF/RwRAIABCCDcDAAwBCyAAQgk3AwALIARB2A1qEOgEAkAgBCgC2A0iBQR/IAQoAtwNIgNBBGsoAgAiAEF4cSEGIAZBBEEIIABBA3EiAhsgBUHIAWwiAGpJDR8gAkEARyAGIABBJ2pLcQ0BIAMQvAUgBCgCmA0FIAwLQX9HBEAgBEGYDWoQ7QkLIAkQsAsMAgsMHgsCQCAEKAL0AUUEQCAEQewBahC2DgwBC0HwABCsFCICIARBwANqQfAA/AoAACAEIAI2AtQDIARCBjcDwAMgBCAEKAL0ATYC0AMgBCAEKQLsATcDyAMLIAQoAvATIgIoAgAhAyACIANBAWs2AgAgA0EBRgRAIAQoAvATEDALIAAgBEHAA2pB8AD8CgAADBULIAQoAvATIgAoAgAhAiAAIAJBAWs2AgAgAkEBRw0MIAQoAvATEDAMDAsgBCABKAKIATYCuAQgBCABKQKAATcDsAQgBEGYBmoiBSABQQhqQeAA/AoAACAEIAEpAng3A6AOIAQgASkCcDcDmA4gBCABKQJoIiQ3A5AOIARB+A9qIAIgBEGwBGogBUEAIARBkA5qICSnQX9GIgIbIAMoAjQRBgAgAUHoAGohBSAEKAKAECEIIAQoAvwPIQYgBCgC+A8iA0F+RwRAIAQgBCkCpBA3A7gDIAQgBCkCnBA3A7ADIAQgBCkClBA3A6gDIAQgBCkCjBA3A6ADIAQgBCkChBA3A5gDAkAgBAJ+IAJFBEBB8AAQkAEiAkUNAiACIAM2AgggAkIINwMAIAIgCDYCECACIAY2AgwgAiAEKQOYAzcCFCACIAQpA6ADNwIcIAIgBCkDqAM3AiQgAiAEKQOwAzcCLCACIAQpA7gDNwI0IAQgAjYCyANCDAwBCyAEIAg2AtADIAQgBjYCzAMgBCADNgLIAyAEIAQpA5gDNwLUAyAEIAQpA6ADNwLcAyAEIAQpA6gDNwLkAyAEIAQpA7ADNwLsAyAEIAQpA7gDNwL0A0IJCzcDwAMgBRDIDCAEKAKwBCICKAIAIQMgAiADQQFrNgIAIANBAUYEQCAEKAKwBBAwCyAAIARBwANqQfAA/AoAAAwWCwweCyAAQYuAgIB4NgI4IAAgCDYCDCAAIAY2AgggAEJ/NwMAIAUQyAwgBCgCsAQiACgCACECIAAgAkEBazYCACACQQFHDQ0gBCgCsAQQMAwNCwJAAkACQCABKAIIQX9HBEAgAUEIaiEIIAQgASgC5AE2AqANIAQgASkC3AE3A5gNIARBmAZqIAFB2ABqIgZB4AD8CgAAIAEoAlAgBCABKALMATYCuAQgBCABKQLEATcDsAQgAUHEAWohB0UEQCAEQfgPaiACIAMoAgwgBEGYDWogBiAEQbAEakIDEKMEIAQoAvgPBEAgACAEKQOwEDcDOCAAIAQpA7gQNwNAIAQgBCkDiBAiKTcDkA4gBCAEKQOQECIoNwOYDiAEIAQpA5gQIic3A6AOIAQgBCkDoBAiJTcDqA4gBCAEKQOoECImNwOwDiAEKQOAECEkIAAgJjcDMCAAICU3AyggACAnNwMgIAAgKDcDGCAAICk3AxAgACAkNwMIIABCfzcDACAHEPMRIAgQsAsMBQsgBCAEKQOYECImNwOgDiAEIAQpA6AQIiQ3A6gOIAQgBCkDiBA3A/gBIAQgBCkDkBA3A4ACIAQgJjcDiAIgBCAkNwOQAiAEIAQpA6gQNwOYAiAEKQL8DyEkIAQoAoQQIQJB8AAQrBQiAyACNgIQIAMgJDcDCCADQgg3AwAgAyAEKQP4ATcCFCADIAQpA4ACNwIcIAMgBCkDiAI3AiQgAyAEKQOQAjcCLCADIAQpA5gCNwI0IAQgAzYCyAMgBEIMNwPAAyAHEPMRIAgQsAsMAwsgBEH4D2oiBSAIQdAA/AoAACAEQZAOaiACIARBmA1qIARBmAZqIAUgBEGwBGogAygCIBEIACAEKAKYDiEFIAQoApQOIQMgBCgCkA4iAkF+Rg0BIAQgBCkCvA43A5gCIAQgBCkCtA43A5ACIAQgBCkCrA43A4gCIAQgBCkCpA43A4ACIAQgBCkCnA43A/gBQfAAEKwUIgYgBTYCECAGIAM2AgwgBiACNgIIIAZCCDcDACAGIAQpA/gBNwIUIAYgBCkDgAI3AhwgBiAEKQOIAjcCJCAGIAQpA5ACNwIsIAYgBCkDmAI3AjQgBCAGNgLIAyAEQgw3A8ADIAcQ8xEMAgsgBCABKALIATYCqAIgBCABKQLAATcDoAIgBEH4D2ogAUHgAGpB4AD8CgAAIARBsARqIAFBEGpB0AD8CgAAIARBsAJqIAFBwAFqENcCAkACQCAEKALIEEF/RwRAIAQoAswQIQYgBCgC0BAiBUEBRwRAIAYhCiAFIgcEQCAGQQxqIQkgBkEYaiEKQQEhBwsgBCAKNgKkBiAEIAk2AqAGIAQgBjYCnAYgBCAHNgKYBiAEIAYgBUEMbGo2AqgGQbDhxQBBICAEQZgGakGg4cUAQdDhxQAQ2hIACyAGKAIIIgtFDQEgBigCBCEGIAtBMGwQkAEiCEUNHiAEQagGaiEJIAghBSALIQcDQCAEQZAOaiAGEOEIAkAgBCgCkA5Bf0cEQCAEIAQoApgONgKgBiAEIAQpApAONwOYBgwBCwJAIAQoApgOIg9FBEBBASENDAELIAQoApQOIQwgDxCQASINRQ0kIA9FDQAgDSAMIA/8CgAACyAEIA82AqAGIAQgDTYCnAYgBCAPNgKYBgsgCSAGQcgBahCQAyAFIAQpA8AGNwMoIAUgBCkDuAY3AyAgBSAEKQOwBjcDGCAFIAQpA6gGNwMQIAUgBCkDoAY3AwggBSAEKQOYBjcDACAGQegBaiEGIAVBMGohBSAHQQFrIgcNAAsCQCALQQFGDQAgC0EVTwRAIwBBgCBrIg0kAAJAAkACQEGKlgogCyALQYqWCk8bIgUgCyALQQF2ayIGIAUgBksbIgVB1gBPBEAgBkGr1aoVTw0CIAVBMGwiDBCQASIPRQ0kIAggCyAPIAUgC0HBAEkQ7gIgD0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyAMckkNJSAFQQBHIAYgDEEnaktxDQMgDxC8BQwBCyAIIAsgDUHVACALQcEASRDuAgsgDUGAIGokAAwDCxCeFQALDCILIAggCxCFCwsgBCALNgKgBiAEIAg2ApwGIAQgCzYCmAYgBEG8AmogBEGYBmoQnQIMAgtB8ODFAEEgQZDhxQAQwBMACyAEQQA2AsQCIARBADYCvAILIAQoArgCIQUgBCAEKAK0AiIGNgLwEyAEIAYgBUHIAWxqNgL0EyAEIARBsARqNgL4EyAEQZAOaiAEQfATahDvAgJAAkAgBCkDoA5Cf1IEQEHgARCQASIFRQ0eIAUgBCkDwA43AzAgBSAEKQO4DjcDKCAFIAQpA7AONwMgIAUgBCkDqA43AxggBSAEKQOgDjcDECAFIAQpA5gONwMIIAUgBCkDkA43AwAgBEEBNgLgDSAEIAU2AtwNIARBBDYC2A0gBCAEKAL4EzYCoA0gBCAEKQLwEzcDmA1BOCEKQQEhBwNAIARBmAZqIARBmA1qEO8CIAQpA6gGQn9RDQIgBCgC2A0gB0YEQCAEQdgNaiAHQQFBCEE4ELMRIAQoAtwNIQULIAUgCmoiBiAEKQPIBjcDMCAGIAQpA8AGNwMoIAYgBCkDuAY3AyAgBiAEKQOwBjcDGCAGIAQpA6gGNwMQIAYgBCkDoAY3AwggBiAEKQOYBjcDACAEIAdBAWoiBzYC4A0gCkE4aiEKDAALAAsgBEEANgKEFAwBCyAEKALYDSEPAkAgB0EBRg0AIAdBFU8EQCMAQYAgayIMJAACQAJAAkBBidwIIAcgB0GJ3AhPGyIGIAcgB0EBdmsiCCAGIAhLGyIGQcoATwRAIAhBk8mkEk8NAiAGQThsIgsQkAEiDUUNIiAFIAcgDSAGIAdBwQBJEN4CIA1BBGsoAgAiBkF4cSEIIAhBBEEIIAZBA3EiBhsgC2pJDSMgBkEARyAIIAtBJ2pLcQ0DIA0QvAUMAQsgBSAHIAxByQAgB0HBAEkQ3gILIAxBgCBqJAAMAwsQnhUACwwgC0EAIQgjAEEwayIUJAAgBUE4aiELIAUgB0E4bGohCiAFIQYDQCALIQwgBkE8aigCACITIAZBBGooAgAgBkFAaygCACIRIAZBCGooAgAiDSANIBFLGxCPEyILIBEgDWsgCxtBAEgEQCAUIAYpAkQ3AwAgFCAGKQJMNwMIIBQgBikCVDcDECAUIAYpAlw3AxggFCAGKQJkNwMgIBQgBigCbDYCKCAGKAI4IQ0gCCELAn8CQANAIAUgC2oiBkHoAGogBikDMDcDACAGQeAAaiAGKQMoNwMAIAZB2ABqIAYpAyA3AwAgBkHQAGogBikDGDcDACAGQcgAaiAGKQMQNwMAIAZBQGsgBikDCDcDACAGQThqIhAgBikDADcDACALRQ0BIAtBOGshCyATIAZBNGsoAgAgESAGQTBrKAIAIg4gDiARSxsQjxMiBiARIA5rIAYbQQBIDQALIAUgC2pBOGoMAQsgBQsgDTYCACAQQTBrIBE2AgAgEEE0ayATNgIAIBBBLGsiBiAUKQMANwIAIAYgFCkDCDcCCCAGIBQpAxA3AhAgBiAUKQMYNwIYIAYgFCkDIDcCICAGIBQoAig2AigLIAhBOGohCCAKIAwiBkE4aiILRw0ACyAUQTBqJAALQcgEEJABIggEQCAIQQA7AcIEIAhBADYCuAMgBCAFIAdBOGxqIg42AtwGIAQgDzYC2AYgBCAFNgLUBiAEIAU2AtAGIARCfjcDqAYgBEGoDmohECAEQbAGaiEPQn4hJEEAIQpBACENIAghBwNAAkACQAJ/ICRCflIEQCAEIAQpA6AGNwPgDSAEIAQpA5gGNwPYDSAFIQYgJCElIA8MAQsgBSAORg0BIAQgBUE4aiIGNgLUBiAEIAUpAwA3A9gNIAQgBSkDCDcD4A0gBSkDECElIAVBGGoLIQkgJUJ/Ug0BIAYhBQsgBEJ+NwOoBiAOIAVrQThuIQYCQCAFIA5HBEADQCAFKAIAIgcEQCAFQQRqKAIAIglBBGsoAgAiC0F4cSEMIAxBBEEIIAtBA3EiCxsgB2pJDQMgC0EARyAMIAdBJ2pLcQ0lIAkQvAULIAVBGGoQhwQgBUE4aiEFIAZBAWsiBg0ACwsgBCgC2AYiBQRAIAQoAtAGIAVBOGwQ2RILAkAgDUUNACAIIQYgDSEJA0ACQAJAIAYvAcIEIgUEQCAGIAVBAWsiE0ECdGoiBygCzAQiBS8BwgQiF0EFTw0CQQUgF2tB//8DcSIWIAcoAsgEIhQvAcIEIgtLDQEgFCALIBZrIg87AcIEIAVBBTsBwgQgBUG8A2ohESAXQQxsIgcEQCARIBZBDGxqIBEgB/wKAAALIBdBKGwiBwRAIAUgFkEobGogBSAH/AoAAAsgFCAPQQxsaiEQIAsgD0EBaiIMayIHQQxsIg4EQCARIBBByANqIA78CgAACyAUIA9BKGxqIQsgB0EobCIPBEAgBSALQShqIA/8CgAACyAEIAspAyA3A7AOIAQgCykDGDcDqA4gBCALKQMQNwOgDiAEIAspAwg3A5gOIAQgCykDADcDkA4gBCAGIBNBDGxqIgcoAsQDNgKgDSAEIAcpArwDNwOYDSAQQcQDaigCACELIAcgEEG8A2opAgA3ArwDIAcgCzYCxAMgBCAGIBNBKGxqIgYpAyA3A7gGIAQgBikDGDcDsAYgBCAGKQMQNwOoBiAEIAYpAwg3A6AGIAQgBikDADcDmAYgBiAEKQOwDjcDICAGIAQpA6gONwMYIAYgBCkDoA43AxAgBiAEKQOYDjcDCCAGIAQpA5AONwMAIA4gEWoiBiAEKAKgDTYCCCAGIAQpA5gNNwIAIAUgD2oiBiAEKQO4BjcDICAGIAQpA7AGNwMYIAYgBCkDqAY3AxAgBiAEKQOgBjcDCCAGIAQpA5gGNwMAIAlBAUYNBCAWQQJ0IQsgBUHIBGohByAXQQJ0QQRqIgYEQCAHIAtqIAcgBvwKAAALIAsEQCAHIBQgDEECdGpByARqIAv8CgAACyAFKALIBCIGQQA7AcAEIAYgBTYCuAMgBSgCzAQiBkEBOwHABCAGIAU2ArgDIAUoAtAEIgZBAjsBwAQgBiAFNgK4AyAFKALUBCIGQQM7AcAEIAYgBTYCuAMgBSgC2AQiBkEEOwHABCAGIAU2ArgDIAUoAtwEIgZBBTsBwAQgBiAFNgK4AwwCC0H888YAQRlBmPTGABCvFAALQaj0xgBBJ0HQ9MYAEK8UAAsgBSEGIAlBAWsiCQ0ACwsgBCANNgKIFCAEIAg2AoQUDAQLDCALIBAgCSkDADcDACAQIAkpAwg3AwggECAJKQMQNwMQIBAgCSkDGDcDGCAEIAQpA+ANNwOYDiAEIAQpA9gNNwOQDiAEICU3A6AOAkAgBiAORgRAQn8hJgwBCyAEIAZBOGoiBTYC1AYgBikDECEkIAYpAwAhKiAGKQMIISkgBikDICEoIAYpAyghJyAGKQMwISYgDyAGKQMYNwMAIA8gJjcDGCAPICc3AxAgDyAoNwMIIAQgKTcDoAYgBCAqNwOYBkJ/ISYgJEJ/UQRAIAUhBgwBCwJAIAQoApgOIgkgBCgCoAZHDQAgBCgClA4iDCAEKAKcBiAJEI8TDQACQCAEKAKQDiIJBEAgDEEEaygCACIGQXhxIQsgC0EEQQggBkEDcSIGGyAJakkNIyAGQQBHIAsgCUEnaktxDQEgDBC8BQsgEBCHBAwDCwwiCyAFIQYgJCEmCyAEICY3A6gGIAQgBCkDkA43A/ATIAQgBCkDmA43A/gTIAQgECkDACIpNwOYDSAEIBApAwgiKDcDoA0gBCAQKQMQIic3A6gNIAQgECkDGCIkNwOwDSAEICQ3A6gOIAQgJzcDoA4gBCAoNwOYDiAEICk3A5AOAkACQCAHLwHCBCILQQtPBEBBACEMAkADQCAHKAK4AyIHRQRAQfgEEJABIgtFDSggCyAINgLIBCALQQA7AcIEIAtBADYCuAMgDUEBaiINRQ0EIAhBADsBwAQgCCALNgK4AyALIQcgDSEMDAILIAxBAWohDCAHLwHCBEEKSw0ACyAIIQsLQcgEEJABIglFDSUgCUEAOwHCBCAJQQA2ArgDIAxBAWsiCEUNAgNAQfgEEJABIgVFDSYgBSAJNgLIBCAFQQA7AcIEIAVBADYCuAMgCUEAOwHABCAJIAU2ArgDIAUhCSAIQQFrIggNAAsMAgsgByALQQFqOwHCBCAEKQPwEyEkIAcgC0EMbGoiBSAEKAL4EzYCxAMgBSAkNwK8AyAHIAtBKGxqIgUgJTcDACAFIAQpA6gONwMgIAUgBCkDoA43AxggBSAEKQOYDjcDECAFIAQpA5AONwMIIAQoAtQGIQUgBCgC3AYhDiAEKQOoBiEkIApBAWohCgwCC0GQ5MgAEJ0VAAsCQCAHLwHCBCITQQtJBEAgByATQQFqIgg7AcIEIAcgE0EMbGoiBSAEKAL4EzYCxAMgBSAEKQPwEzcCvAMgByATQShsaiIFICU3AwAgBSAEKQOYDTcDCCAFIAQpA6ANNwMQIAUgBCkDqA03AxggBSAEKQOwDTcDICAHIAhBAnRqIAk2AsgEIAkgCDsBwAQgCSAHNgK4AyAMRQ0BAkAgDEEDcSIJRQRAIAwhBQwBCyAMIQUDQCAFQQFrIQUgByAHLwHCBEECdGooAsgEIQcgCUEBayIJDQALCyAMQQRJDQEDQCAHIAcvAcIEQQJ0aigCyAQiCC8BwgRBAnQgCGooAsgEIggvAcIEQQJ0IAhqKALIBCIILwHCBEECdCAIaigCyAQhByAFQQRrIgUNAAsMAQtBwPbGAEEgQeD2xgAQrxQACyAGIQUgJiEkIAshCCAKQQFqIQoMAAsACwwgCyAEIAo2AowUAkAgBCgC+AQiCEUEQEIUISQMAQsgBEGYBmoiBiAEQfgPakHgAPwKAAAgBEGQDmoiBSAEQbAEakHQAPwKAAAgBEGYDWogAiAEQaACaiAGIAVBACADKAIgEQgAIAQoAqANIQcgBCgCnA0hBiAEKAKYDSIJQX5HBEAgBCAEKQLEDTcD6AIgBCAEKQK8DTcD4AIgBCAEKQK0DTcD2AIgBCAEKQKsDTcD0AIgBCAEKQKkDTcDyAJCCSEkDAELIABBi4CAgHg2AjggACAHNgIMIAAgBjYCCCAAQn83AwAgBEGEFGoQzAUgBEG8AmoQxgUgBEGwAmoQ8xEgBCgCoAIiACgCACECIAAgAkEBazYCACACQQFHDQ4gBCgCoAIQMAwOC0HwABCQASICBEAgAiAHNgIQIAIgBjYCDCACIAk2AgggAiAkNwMAIAIgBCkDyAI3AhQgAiAEKQPQAjcCHCACIAQpA9gCNwIkIAIgBCkD4AI3AiwgAiAEKQPoAjcCNCAEIAQoAsQCNgLUAyAEIAQpArwCNwLMAyAEIAI2AsgDIARCFjcDwAMCQCAKRQRAIARBhBRqEMwFDAELQfAAEKwUIgMgBEHAA2pB8AD8CgAAIARBzANqIgIgBCgCjBQ2AgggAiAEKQKEFDcCACAEIAM2AsgDIARCFzcDwAMLIARBsAJqEOgEIAQoArACIgIEQCAEKAK0AiACQcgBbBDZEgsgCEUEQCAEQbAEahCwCyAEQfgPaiICEKwEIAIoAlBBf0cEQCACQdAAahDlDQsLIAQoAqACIgIoAgAhAyACIANBAWs2AgAgA0EBRw0SIAQoAqACEDAMEgsMHwsgAEGLgICAeDYCOCAAIAU2AgwgACADNgIIIABCfzcDACAHEPMRDAELIAQoApgNIgIoAgAhAyACIANBAWs2AgAgA0EBRgRAIAQoApgNEDALIAAgBEHAA2pB8AD8CgAADBULIAQoApgNIgAoAgAhAiAAIAJBAWs2AgAgAkEBRw0LIAQoApgNEDAMCwsgBAJ+QdDwyQAtAAAEQEHI8MkAKQMAISVBwPDJACkDAAwBCyAEQZgGahC7EUHQ8MkAQQE6AABByPDJACAEKQOgBiIlNwMAIAQpA5gGCyIkNwOIEEHA8MkAICRCAXw3AwAgBCAlNwOQECAEQZCpyQApAwA3A/gPIARBmKnJACkDADcDgBAgASgCFCITIAEoAhgiBUHQAGxqISIgASgCECEdIBMhCwJAAkAgBUUNACAEQcgGaiEeIAshBQJAA0AgBUHQAGohCyAFKAIAIhlBf0YNAiAFKAJAIR8gBSgCPCEbIAUoAjghICAFKAI0ISEgBSgCMCEXIAUpAyghLCAFKQMgIS0gBCAFKQIENwOwBCAEIAUpAgw3A7gEIAQgBSkCFDcDwAQgBCAFKAIcNgLIBCAEIAUpAkQ3A/ATIAQgBSgCTDYC+BNBACEFIARBADYC4A0gBEKAgICAwAA3AtgNIAQoAswOIgZBDGoiDigCACEQIAQoAtQOIRYgBCgC0A4hHAJAAkACQCAGQRBqIg8oAgAiCCIKDgICAQALIAghBgNAAn8gECAGQQF2Ig0gBWoiDEHkAGxqIglB1ABqKAIAIgcgHEcEQCAHIBxJDAELIAlB2ABqKAIAIBZJCyEHIAwgBSAHGyEFIAYgDWsiBkEBSw0ACwsCfyAQIAVB5ABsaiIHQdQAaigCACIGIBxHBEAgBiAcSQwBCyAHQdgAaigCACAWSQsgBWohCgsCQCAIIApGDQAgLELzytHLp4zZsvQAhSEwIC1C4eSV89bs2bzsAIUhLiAsQu3ekfOWzNy35ACFISogLUL1ys2D16zbt/MAhSEpIBAgCEHkAGxqIRQgECAKQeQAbGohCEEAIREDQCAIKAJUIBxHDQEgCCgCWCAWRw0BAkACQAJAIA8oAgAiBSAKIBFqIhVLBEAgCEHkAGohCAJAIBVB5ABsIhAgDigCAGoiBS0AYEUEQCAFLQBIQfsBcQ0BCyARQQFqIREgCCAURw0FDAYLIAQoAswOIhIoAgAhBSASIAVBAWo2AgAgBUEASA0aIARBADYCmA0gBCASNgKoDSAEIBU2ApwNIBUgEigCECIFTw0fIBJBCGohDQJ/IBIoAgwgEGoiBSgCAARAIAUoAgQiBSASKAJwTw0iIBIoAmwgBUEEdGoiBSgCCCEGIAUoAgQMAQsgBEE4aiANIBUQ0BAgBCgCPCEGIAQoAjgLIQUCQAJAICAOAgQBAAsgHkIANwMAIB5CADcDCCAEICw3A8AGIAQgLTcDuAYgBCAwNwOwBiAEICo3A6gGIAQgLjcDoAYgBCApNwOYBiAEQZgGaiIHIAUgBhCWCCAEQf8BOgCEFCAHIARBhBRqQQEQlgggBCkDyAYgBDUC0AZCOIaEIiggBCkDsAaFIiQgBCkDoAZ8IScgJyAkQhCJhSIkIAQpA6gGIiUgBCkDmAZ8IiZCIIl8IS8gLyAkQhWJhSIkICVCDYkgJoUiJSAnfCImQiCJQv8BhXwhKyArICRCEImFIicgJiAlQhGJhSImICggL4V8IiRCIIl8ISggJCAmQg2JhSIlICt8IiZCIIkgKCAnQhWJhSIkfCErICsgJEIQiYUiJCAmICVCEYmFIiUgKHwiJkIgiXwhKCAoICRCFYmFIicgJUINiSAmhSIlICt8IiRCIIl8IiYgJUIRiSAkhSIkICh8ICRCDYmFIiR8ISUgHyAlICdCEIkgJoVCFYkgJEIRiYUgJUIgiIWFIiSncSEHICRCGYhC/wCDQoGChIiQoMCAAX4hJkEAIQwDQCAHIBtqKQAAIiUgJoUiJEKBgoSIkKDAgAF9ICRCf4WDQoCBgoSIkKDAgH+DIiRCAFIEQANAIBsgJHqnQQN2IAdqIB9xQQJ0a0EEaygCACIJICBPDQUgISAJQegAbGoiCUHkAGooAgAgBkYEQCAFIAlB4ABqKAIAIAYQjxNFDQgLICRCAX0gJIMiJEIAUg0ACwsgJSAlQgGGg0KAgYKEiJCgwIB/g0IAUg0EIAxBCGoiDCAHaiAfcSEHDAALAAsgBiAhQeQAaigCAEcNAiAFICFB4ABqKAIAIAYQjxMNAgwDCwweCyAJICBB0K/JABCFEwALIARBmAZqIgYgBEGYDWoQjQQgBCgCmAYiBUF+Rg0AAkAgBUF/RwRAIAYQhgQMAQsgBCgCnAYiCQRAIAQoAqAGIgZBBGsoAgAiBUF4cSEHIAdBBEEIIAVBA3EiBRsgCWpJDSEgBUEARyAHIAlBJ2pLcQ0iIAYQvAULIAQoAqwGIQcgBCgCsAYiBgRAIAchBQNAIAUQhgQgBUEgaiEFIAZBAWsiBg0ACwsgBCgCqAYiCUUNACAHQQRrKAIAIgVBeHEhDCAMQQRBCCAFQQNxIgYbIAlBBXQiBXJJDSAgBkEARyAMIAVBJ2pLcQ0hIAcQvAULIBUgEigCECIFTw0cAn8gEigCDCAQaiIFKAIABEAgBSgCBCIFIBIoAnBPDR8gEigCbCAFQQR0aiIGKAIIIQUgBigCBAwBCyAEQTBqIA0gFRDQECAEKAI0IQUgBCgCMAshBiAFQQBIDQkCQAJAIAVFBEBBASEaDAELIAUQkAEiGkUNASAFRQ0AIBogBiAF/AoAAAsgBCgC4A0iByAEKALYDUYEQCAEQdgNahCfEgsgBCgC3A0gB0EMbGoiBiAFNgIIIAYgGjYCBCAGIAU2AgAgBCAHQQFqNgLgDQwBCwwhCyASIBIoAgAiBUEBazYCACAFQQFGBEAgEhAwCyARQQFqIREgCCAURw0ACwsgBCgC3A0hDAJAIAQoAuANIgdBAkkNACAHQRVPBEACQAJAAkAgDCIJQRBqKAIAIgYgCUEEaigCACAJQRRqKAIAIgUgCUEIaigCACINIAUgDUkbEI8TIgggBSANayAIGyIOQQBOBEAgCUEgaiEKQQIhDQNAIApBBGsoAgAiCCAGIAooAgAiBiAFIAUgBksbEI8TIg8gBiAFayAPG0EASA0CIApBDGohCiAGIQUgCCEGIA1BAWoiDSAHRw0ACwwCCyAJQSBqIQpBAiENA0AgCkEEaygCACIIIAYgCigCACIGIAUgBSAGSxsQjxMiDyAGIAVrIA8bQQBODQEgCkEMaiEKIAYhBSAIIQYgDUEBaiINIAdHDQALDAELIAcgDUcNAQsgDkEATg0CIAdBAXYhCiAHQQxsIAlqQQxrIQUDQCAJKAIAIQYgCSAFKAIANgIAIAUgBjYCACAJQQRqIgYpAgAhJCAGIAVBBGoiBikCADcCACAGICQ3AgAgBUEMayEFIAlBDGohCSAKQQFrIgoNAAsMAgsgCSAHQQAgB0EBcmdBAXRBPnMQ8wEMAQtBACEIIAxBDGohBSAMIAdBDGxqIQogDCEGA0AgBSEJIAZBEGooAgAiECAGQQRqKAIAIAZBFGooAgAiESAGQQhqKAIAIg0gDSARSxsQjxMiBSARIA1rIAUbQQBIBEAgBigCDCENIAghBQJ/AkADQCAFIAxqIgZBFGogBigCCDYCACAGQQxqIg4gBikCADcCACAFRQ0BIAVBDGshBSAQIAZBCGsoAgAgESAGQQRrKAIAIg8gDyARSxsQjxMiBiARIA9rIAYbQQBIDQALIAUgDGpBDGoMAQsgDAsgDTYCACAOQQRrIBE2AgAgDkEIayAQNgIACyAIQQxqIQggCiAJIgZBDGoiBUcNAAsLIAQoAtgNIRwgBCkDiBAgBCkDkBAgDCAHEOAJIiSnIg0gBCgC/A8iFHEhDyAkQhmIIihC/wCDQoGChIiQoMCAAX4hJyAEKAL4DyEOAkACQAJAAkACQAJAIAcEQCAMQQRqIQlBACEQA0ACQCAOIA9qKQAAIiYgJ4UiJEKBgoSIkKDAgAF9ICRCf4WDQoCBgoSIkKDAgH+DIiVCAFIEQANAAkAgDiAleqdBA3YgD2ogFHFBaGxqIhFBEGsoAgAgB0cNACARQRRrKAIAQQRqIQUgCSEGIAchCANAIAVBBGooAgAiCiAGQQRqKAIARw0BIAUoAgAgBigCACAKEI8TDQEgBUEMaiEFIAZBDGohBiAIQQFrIggNAAsMAwsgJUIBfSAlgyIlQgBSDQALCyAmICZCAYaDQoCBgoSIkKDAgH+DQgBSDQMgEEEIaiIQIA9qIBRxIQ8MAQsLIAwhBQJAA0ACQCAFKAIAIgoEQCAFQQRqKAIAIghBBGsoAgAiBkF4cSEJIAlBBEEIIAZBA3EiBhsgCmpJDQEgBkEARyAJIApBJ2pLcQ0DIAgQvAULIAVBDGohBSAHQQFrIgcNAQwFCwsMJAsMJAtBACEFA0AgDiAPaikAACImICeFIiRCgYKEiJCgwIABfSAkQn+Fg0KAgYKEiJCgwIB/gyIlQgBSBEADQCAOICV6p0EDdiAPaiAUcUFobGoiEUEQaygCAEUNBCAlQgF9ICWDIiVCAFINAAsLICYgJkIBhoNCgIGChIiQoMCAf4NCAFINASAPIAVBCGoiBWogFHEhDwwACwALIAQoAoAQRQRAAkAgBEH4D2oiCEEQaiEQQQAhDiAIKAIMIglBAWoiBgRAAkAgCCgCBCIYQQFqIg9BA3YiCkEHbCEWAkAgGCAWIBhBCEkbIgVBAXYgBkkEQAJ/IAVBAWoiBSAGIAUgBksbIgVBD08EQCAFQf////8BSw0EQX8gBUEDdEEHbkEBa2d2QQFqDAELQQQgBUEIcUEIaiAFQQRJGwsiBa1CGH4iJEIgiKcNAiAkpyIPIAVBCGoiCmohBiAGIA9JDQIgBkH4////B0sNAiAGEJABIgZFDSogBiAPaiESIAoEQCASQf8BIAr8CwALIAVBAWsiFSAFQQN2QQdsIAVBCUkbIRYgCCgCACEGAkAgCUUEQEEAIQkMAQsgBikDAEJ/hUKAgYKEiJCgwIB/gyEkIBApAwghJyAQKQMAISYgCSEFIAYhCgNAICRQBEADQCAOQQhqIQ4gCkEIaiIKKQMAQoCBgoSIkKDAgH+DIiRCgIGChIiQoMCAf1ENAAsgJEKAgYKEiJCgwIB/hSEkCyASICYgJyAGICR6p0EDdiAOaiIUQWhsaiIPQRRrKAIAIA9BEGsoAgAQ4AmnIhAgFXEiEWopAABCgIGChIiQoMCAf4MiKVAEQEEIIRoDQCARIBpqIQ8gGkEIaiEaIBIgDyAVcSIRaikAAEKAgYKEiJCgwIB/gyIpUA0ACwsgJEIBfSAkgyEkIBIgKXqnQQN2IBFqIBVxIhFqLAAAQQBOBEAgEikDAEKAgYKEiJCgwIB/g3qnQQN2IRELIBEgEmogEEEZdiIPOgAAIBIgEUEIayAVcWpBCGogDzoAACASIBFBf3NBGGxqIhAgBiAUQX9zQRhsaiIPKQAQNwAQIBAgDykACDcACCAQIA8pAAA3AAAgBUEBayIFDQALCyAIIBU2AgQgCCASNgIAIAggFiAJazYCCCAYRQ0BIBhBGGxBH2pBeHEiBSAYakEJaiIJRQ0BIAYgBWsiBkEEaygCACIFQXhxIQggCEEEQQggBUEDcSIFGyAJakkNJyAFQQBHIAggCUEnaktxDSggBhC8BQwECyAIIgYgDwR/IAYoAgAhEgJAIAogD0EHcUEAR2oiBUEBRwRAIAVBAXEgBUH+////A3EhEQNAIA4gEmoiBSkDACEkIAUgJEJ/hUIHiEKBgoSIkKDAgAGDICRC//79+/fv37//AIR8NwMAIAVBCGoiBSkDACEkIAUgJEJ/hUIHiEKBgoSIkKDAgAGDICRC//79+/fv37//AIR8NwMAIA5BEGohDiARQQJrIhENAAtFDQELIA4gEmoiBSkDACEkIAUgJEJ/hUIHiEKBgoSIkKDAgAGDICRC//79+/fv37//AIR8NwMACwJAIA9BCE8EQCAPIBJqIBIpAAA3AAAMAQsgD0UNACASQQhqIBIgD/wKAAALIBApAwghJyAQKQMAISZBACEFA0ACQCASIAUiCGoiFC0AAEGAAUcNACASIAVBf3NBGGxqIRUgEiAFQWhsaiIFQRBrIRAgBUEUayEPA0AgEiAmICcgDygCACAQKAIAEOAJpyIRIBhxIgoiDmopAABCgIGChIiQoMCAf4MiJFAEQEEIIRoDQCAOIBpqIQUgGkEIaiEaIBIgBSAYcSIOaikAAEKAgYKEiJCgwIB/gyIkUA0ACwsgEiAkeqdBA3YgDmogGHEiDmosAABBAE4EQCASKQMAQoCBgoSIkKDAgH+DeqdBA3YhDgsgDiAKayAIIAprcyAYcUEITwRAIA4gEmoiBS0AACAFIBFBGXYiBToAACASIA5BCGsgGHFqQQhqIAU6AAAgEiAOQX9zQRhsaiEOQf8BRgRAIBRB/wE6AAAgEiAYIAhBCGtxakEIakH/AToAACAOIBUpABA3ABAgDiAVKQAINwAIIA4gFSkAADcAAAwDCyAVKQAAISQgFSAOKQAANwAAIA4gJDcAACAOKQAIISQgDiAVKQAINwAIIBUgJDcACCAVKAAQIQogFSAOKAAQNgAQIA4oABQhBSAOIBUoABQ2ABQgFSAFNgAUIA4gCjYAEAwBCwsgFCARQRl2IgU6AAAgEiAYIAhBCGtxakEIaiAFOgAACyAIQQFqIQUgCCAYRw0ACyAYIBYgGEEISRsFQQALIAlrNgIICwwCCwtB+OjIAEE5QfifxAAQvxMACwsgHEF/RgRAIA0hEQwCCyAEKAL8DyIGIA1xIgggBCgC+A8iCWopAABCgIGChIiQoMCAf4MiJFAEQEEIIQ4DQCAIIA5qIQUgDkEIaiEOIAkgBSAGcSIIaikAAEKAgYKEiJCgwIB/gyIkUA0ACwsgCSAkeqdBA3YgCGogBnEiCGosAAAiDkEATgRAIAkgCSkDAEKAgYKEiJCgwIB/g3qnQQN2IghqLQAAIQ4LIAggCWogKKdB/wBxIgU6AAAgCSAIQQhrIAZxakEIaiAFOgAAQQAhBiAJIAhBaGxqIhFBBGsiCEEANgIAIBFBDGtCgICAgIABNwIAIBFBEGsgBzYCACARQRRrIAw2AgAgEUEYayAcNgIAIAQgBCgChBBBAWo2AoQQIAQgBCgCgBAgDkEBcWs2AoAQDAILIBxFDQAgDEEEaygCACIFQXhxIQggCEEEQQggBUEDcSIGGyAcQQxsIgVqSQ0DIAZBAEcgCCAFQSdqS3ENBSAMELwFCyARQQRrIggoAgAiBiARQQxrKAIARw0BCyARQQxrEKoSCyARQQhrKAIAIAZB0ABsaiIFIBk2AgAgBSAEKQOwBDcCBCAFIAQpA7gENwIMIAUgBCkDwAQ3AhQgBSAEKALIBDYCHCAFIB82AkAgBSAbNgI8IAUgIDYCOCAFICE2AjQgBSAXNgIwIAUgLDcDKCAFIC03AyAgBSAEKQPwEzcCRCAFIAQoAvgTNgJMIAggBkEBajYCACAiIAsiBUcNAQwECwsMGwsMGwsgIiALa0HQAG4hBSALICJGDQADQCALELELIAtB0ABqIQsgBUEBayIFDQALCyAdBEAgE0EEaygCACIFQXhxIQggCEEEQQggBUEDcSIGGyAdQdAAbCIFckkNGSAGQQBHIAggBUEnaktxDRogExC8BQsgBCgC+A8iDykDACAEKAL8DyIGBH8gDyAGQRhsIgVrQRhrIREgBSAGakEhaiENQQgFQQALIQ4gBCgChBAhGiAPQQhqIQggBiAPakEBaiEQQn+FQoCBgoSIkKDAgH+DIiSnIQogJEIgiKcLIQcCQCAEKAKoDiIZQX9GBEBBfyEMDAELIAQpAsQOISUgBCgCwA4hDCAEKAK4DiELIAQoArQOIRcgBCkCrA4hJCAEKAK8DiIGBEAgCyEFA0AgBSgCACIWBEAgBUEEaigCACITQQRrKAIAIglBeHEhFCAUQQRBCCAJQQNxIgkbIBZqSQ0bIAlBAEcgFCAWQSdqS3ENHCATELwFCyAFQQxqIQUgBkEBayIGDQALCyAXRQ0AIAtBBGsoAgAiBUF4cSEJIAlBBEEIIAVBA3EiBhsgF0EMbCIFakkNGCAGQQBHIAkgBUEnaktxDRkgCxC8BQsgBCAkNwLAAiAEIBk2ArwCIAQgJTcCiBQgBCAMNgKEFCAOQX9GBEAgCCEPIAchECAKIQhBACEKQQEhBwsgBEHYDmohBiAEQcwOaiEFAkACfwJAAkACQAJAAkACQAJAAkAgGUF/RwRAIAQgETYCoBAgBCANNgKcECAEIBo2ApAQQQAhCSAEQQA2AtAQIARBADYCwBAgBCAGNgK0ECAEIAU2ArAQIAQgAzYCrBAgBCACNgKoECAEIA42ApgQIAQgDzYCiBAgBCAQNgKEECAEIAg2AoAQIAQgBzYC/A8gBCAKNgL4DyAEQX82AsgNIAQgBEGYDWo2AuAQIAQgBEG8Amo2ArgQIARBmAZqIARB+A9qELwEAn8CQAJAAkAgBCgCmAYOAwABAgELIAQgBCgCzAY2AuAEIAQgBCkCxAY3A9gEIAQgBCkCvAY3A9AEIAQgBCkCtAY3A8gEIAQgBCkCrAY3A8AEIAQgBCkCpAY3A7gEIAQgBCkCnAY3A7AEQcADEJABIglFDSQgCUIINwMAIAkgBCkDsAQ3AwggCSAEKQO4BDcDECAJIAQpA8AENwMYIAkgBCkDyAQ3AyAgCSAEKQPQBDcDKCAJIAQpA9gENwMwIAkgBCgC4AQ2AjggBEEBNgL4EyAEIAk2AvQTIARBBDYC8BMgBEGYBmogBEH4D2pB8AD8CgAAIARBsARqQQRyIQZB+AAhCkEBIQcDQCAEKAKAByEIIARBsARqIARBmAZqELwEIAQoArAEIgUEQCAFQQJHBEAgCBD0BSAIIAQpA/AENwM4IAggBCkD6AQ3AzAgCCAEKQPgBDcDKCAIIAQpA9gENwMgIAggBCkD0AQ3AxggCCAEKQPIBDcDECAIIAQpA8AENwMIIAggBCkDuAQ3AwALIARBmAZqEJACIAQoAvATIQkgBCgC9BMiBiAEKALIDSIKQX9GDQQaIAQgBCkCpA03A1AgBCAEKQKsDTcDWCAEIAQpArQNNwNgIAQgBCkCvA03A2ggBCAEKALEDTYCcCAEIAQpAswNNwNAIAQgBCgC1A02AkggBCgCoA0hDSAEKAKcDSEIIAQoApgNIQ4gBiEFA0AgBRClASAFQfAAaiEFIAdBAWsiBw0ACyAJRQ0HIAYgCUHwAGwQ2RIMBwUgBCAGKAIwNgKIDiAEIAYpAig3A4AOIAQgBikCIDcD+A0gBCAGKQIYNwPwDSAEIAYpAhA3A+gNIAQgBikCCDcD4A0gBCAGKQIANwPYDSAEKALwEyAHRgRAIARB8BNqIAdBAUEIQfAAELMRIAQoAvQTIQkLIAkgCmoiBUEIa0IINwMAIAUgBCkD2A03AwAgBSAEKQPgDTcDCCAFIAQpA+gNNwMQIAUgBCkD8A03AxggBSAEKQP4DTcDICAFIAQpA4AONwMoIAUgBCgCiA42AjAgBCAHQQFqIgc2AvgTIApB8ABqIQoMAQsACwALIARBmA1qEPQFIAQgBCkD2AY3A9ANIAQgBCkD0AY3A8gNIAQgBCkDyAY3A8ANIAQgBCkDwAY3A7gNIAQgBCkDuAY3A7ANIAQgBCkDsAY3A6gNIAQgBCkDqAY3A6ANIAQgBCkDoAY3A5gNCyAEQfgPahCQAiAEKALIDSIKQX9HDQJBACEHQQgLIQUgBCAHNgLQAyAEIAU2AswDIAQgCTYCyAMgBEILNwPAAyAMQX9HDQMgBEEANgJ8IARCgICAgIABNwJ0DAQLIAQgETYCoBAgBCANNgKcECAEIBo2ApAQQQAhCSAEQQA2AtAQIARBADYCwBAgBCAGNgK0ECAEIAU2ArAQIAQgAzYCrBAgBCACNgKoECAEIA42ApgQIAQgDzYCiBAgBCAQNgKEECAEIAg2AoAQIAQgBzYC/A8gBCAKNgL4DyAEQX82AsgNIAQgBEGYDWo2AuAQIAQgBEG8Amo2ArgQIARBmAZqIARB+A9qELwEAn8CQAJAAkAgBCgCmAYOAwABAgELIAQgBCgCzAY2AuAEIAQgBCkCxAY3A9gEIAQgBCkCvAY3A9AEIAQgBCkCtAY3A8gEIAQgBCkCrAY3A8AEIAQgBCkCpAY3A7gEIAQgBCkCnAY3A7AEQcADEJABIglFDSMgCUIJNwMAIAkgBCkDsAQ3AwggCSAEKQO4BDcDECAJIAQpA8AENwMYIAkgBCkDyAQ3AyAgCSAEKQPQBDcDKCAJIAQpA9gENwMwIAkgBCgC4AQ2AjggBEEBNgL4EyAEIAk2AvQTIARBBDYC8BMgBEGYBmogBEH4D2pB8AD8CgAAIARBsARqQQRyIQNB+AAhCkEBIQcDQCAEKAKAByEFIARBsARqIARBmAZqELwEIAQoArAEIgIEQCACQQJHBEAgBRD0BSAFIAQpA/AENwM4IAUgBCkD6AQ3AzAgBSAEKQPgBDcDKCAFIAQpA9gENwMgIAUgBCkD0AQ3AxggBSAEKQPIBDcDECAFIAQpA8AENwMIIAUgBCkDuAQ3AwALIARBmAZqEJACIAQoAvATIQkgBCgC9BMiAiAEKALIDSIKQX9GDQQaIAQgBCkCpA03A5ABIAQgBCkCrA03A5gBIAQgBCkCtA03A6ABIAQgBCkCvA03A6gBIAQgBCgCxA02ArABIAQgBCkCzA03A4ABIAQgBCgC1A02AogBIAQoAqANIQ0gBCgCnA0hCCAEKAKYDSEOIAIhBQNAIAUQpQEgBUHwAGohBSAHQQFrIgcNAAsgCUUNDCACIAlB8ABsENkSDAwFIAQgAygCMDYCiA4gBCADKQIoNwOADiAEIAMpAiA3A/gNIAQgAykCGDcD8A0gBCADKQIQNwPoDSAEIAMpAgg3A+ANIAQgAykCADcD2A0gBCgC8BMgB0YEQCAEQfATaiAHQQFBCEHwABCzESAEKAL0EyEJCyAJIApqIgJBCGtCCTcDACACIAQpA9gNNwMAIAIgBCkD4A03AwggAiAEKQPoDTcDECACIAQpA/ANNwMYIAIgBCkD+A03AyAgAiAEKQOADjcDKCACIAQoAogONgIwIAQgB0EBaiIHNgL4EyAKQfAAaiEKDAELAAsACyAEQZgNahD0BSAEIAQpA9gGNwPQDSAEIAQpA9AGNwPIDSAEIAQpA8gGNwPADSAEIAQpA8AGNwO4DSAEIAQpA7gGNwOwDSAEIAQpA7AGNwOoDSAEIAQpA6gGNwOgDSAEIAQpA6AGNwOYDQsgBEH4D2oQkAIgBCgCyA0iCkF/Rw0HQQAhB0EICyECIAQgBzYC0AMgBCACNgLMAyAEIAk2AsgDIARCCjcDwAMCQCAEQYQUaiIDKAIAIghBf0YNACADKAIEIQIgAygCCCIGBEAgAiEDA0AgAxCaASADQcACaiEDIAZBAWsiBg0ACwsgCEUNACACQQRrKAIAIgNBeHEhBiAGQQRBCCADQQNxIgUbIAhBwAJsIgNySQ0iIAVBAEcgBiADQSdyS3FFBEAgAhC8BQwBCwwjCwwFCyAEIAQpAqQNNwNQIAQgBCkCrA03A1ggBCAEKQK0DTcDYCAEIAQpArwNNwNoIAQgBCgCxA02AnAgBCAEKQLMDTcDQCAEIAQoAtQNNgJIIAQoAqANIQ0gBCgCnA0hCCAEKAKYDSEOCyAEQUBrIQYgBEHQAGoMBgsgBCAEKQKIFCIkNwJ4IAQgDDYCdCAkQv////8PVg0BCyAEQfQAahCtEQwBCyAEQZgGaiAEQcADaiAEQfQAaiACIAMQWyAEIAQpA6AGNwP4DyAEIAQpA6gGNwOAECAEIAQpA7AGNwOIECAEIAQpA7gGNwOQECAEIAQpA8AGNwOYECAEIAQpA8gGNwOgECAEIAQpA9AGNwOoECAEIAQpA9gGNwOwECAEKQOYBiIkQn9RBEAgACAEKQOwEDcDQCAAIAQpA6gQNwM4IAAgBCkDoBA3AzAgACAEKQOYEDcDKCAAIAQpA5AQNwMgIAAgBCkDiBA3AxggACAEKQOAEDcDECAAIAQpA/gPNwMIIABCfzcDAAwFCyAEIAQpA4AHNwOoBCAEIAQpA/gGNwOgBCAEIAQpA/AGNwOYBCAEIAQpA+gGNwOQBCAEIAQpA+AGNwOIBCAEQcgDaiICIAQpA/gPNwMAIAIgBCkDgBA3AwggAiAEKQOIEDcDECACIAQpA5AQNwMYIAIgBCkDmBA3AyAgAiAEKQOgEDcDKCACIAQpA6gQNwMwIAIgBCkDsBA3AzggBCAkNwPAAwsCQCAEKAK8AiICQX9GDQAgBEG8AmoQ6AQgAkUNACAEKALAAiACQcgBbBDZEgsgBCgCkA4iAgRAIAQoApQOIAIQ2RILIAQoAswOIgIoAgAhAyACIANBAWs2AgAgA0EBRw0QIAQoAswOEDAMEAsgBCAEKQKkDTcDkAEgBCAEKQKsDTcDmAEgBCAEKQK0DTcDoAEgBCAEKQK8DTcDqAEgBCAEKALEDTYCsAEgBCAEKQLMDTcDgAEgBCAEKALUDTYCiAEgBCgCoA0hDSAEKAKcDSEIIAQoApgNIQ4LIARBgAFqIQYgBEGQAWoLIQUgACANNgIQIAAgCDYCDCAAIA42AgggACAKNgI4IAAgBSkCADcCFCAAIAUpAgg3AhwgACAFKQIQNwIkIAAgBSkCGDcCLCAAIAUoAiA2AjQgACAGKQIANwI8IAAgBigCCDYCRCAAQn83AwAgDEF/Rg0AIAQoAogUIQAgBCgCjBQiBgRAIAAhBQNAIAUQmgEgBUHAAmohBSAGQQFrIgYNAAsLIAxFDQAgAEEEaygCACICQXhxIQUgBUEEQQggAkEDcSIDGyAMQcACbCICckkNGCADQQBHIAUgAkEncktxDRkgABC8BQsCQCAEKAK8AiIGQX9GDQAgBEG8AmoQ6AQgBkUNACAEKALAAiIDQQRrKAIAIgBBeHEhBSAFQQRBCCAAQQNxIgIbIAZByAFsIgBqSQ0YIAJBAEcgBSAAQSdqS3ENGSADELwFCwJAIAQoApAOIgUEQCAEKAKUDiICQQRrKAIAIgBBeHEhAyADQQRBCCAAQQNxIgAbIAVqSQ0ZIABBAEcgAyAFQSdqS3ENASACELwFCyAEKALMDiIAKAIAIQIgACACQQFrNgIAIAJBAUcNCSAEKALMDhAwDAkLDBgLIARBkA5qIAFBCGoiBkGAAfwKAAAgBEH4D2oiBSAGQdAA/AoAACAEQZgGaiIGIAIgBEGED2ogBSAEQewOaiIUIAMoAhgRBgAgBCgCoAYhECAEKAKcBiEdIAQoApgGIhNBf0YNAyAEIAQpArgGNwO4CiAEIAQpAsAGNwPACiAEIAQoAsgGNgLICiAEIAQpAtAGNwOoCiAEIAQoAtgGNgKwCiAEIAQpAtwGNwOYCiAEIAQpAuQGNwOgCiAEKAKwBiECIAQoAqgGIRsgBCgCpAYhByAEKALMBiEPIAQoAqwGIQ4gBCgCtAYhAyAEIAQpAvgGNwPQCiAEIAQpAoAHNwPYCiAEIAQpAogHNwPgCiAEIAQpApAHNwPoCiAEIAQpApgHNwPwCiAEIAQpAqAHNwP4CiAEIAQoAqgHNgKACyAOQegBbCIeQTBuIQogBCgC9AYhGSAEKALwBiELIAQoAuwGIRcgAiEFIAMEQCADQegBbCEMIARBtARqIRYgBkHIAWohESAFIQYDQCAEQZgGaiAGQegB/AoAACAEQfgPaiIDIAZByAH8CgAAIARBmA1qIAMQ4QggBCgCoA0hCSAEKAKcDSEDAkAgBCgCmA0iDUF/RwRAIAMhCAwBCyAJRQRAQQEhCEEAIQ1BACEJDAELIAkQkAEiCEUNGyAJBEAgCCADIAn8CgAACyAJIQ0LIAZB6AFqIQYgFiARKQIYNwIYIBYgESkCEDcCECAWIBEpAgg3AgggFiARKQIANwIAIARB+A9qEIEFIAVBCGogCTYCACAFQQRqIAg2AgAgBSANNgIAIAVBDGogBCkCsAQ3AgAgBUEUaiAEKQK4BDcCACAFQRxqIAQpAsAENwIAIAVBJGogBCkCyAQ3AgAgBUEsaiAEKALQBDYCACAFQTBqIQUgDEHoAWsiDA0ACwsgCkEwbCEIIAIhBgJAIA5FDQAgCCAeRg0AIB5BL00EQEEIIQYgHkUNASACIB4Q2RIMAQsgAiAeQQggCBCtBiIGDQAMGgsgBSACayIDQTBuIQwCQCACIAVGBEAgBEEANgKgDSAEQQA2ApgNIB5BMEkNASAGIAgQ2RIMAQsCQCADQTBGDQAgA0HwB08EQCMAQYAgayIIJAACQAJAAkBBipYKIAwgDEGKlgpPGyICIAwgDEEBdmsiAyACIANLGyICQdYATwRAIANBq9WqFU8NAiACQTBsIgUQkAEiCUUNHCAGIAwgCSACIAxBwQBJEO0CIAlBBGsoAgAiAkF4cSEDIANBBEEIIAJBA3EiAhsgBXJJDR0gAkEARyADIAVBJ2pLcQ0DIAkQvAUMAQsgBiAMIAhB1QAgDEHBAEkQ7QILIAhBgCBqJAAMAwsQnhUACwwaCyAGIAwQhQsLIAQgDDYCoAYgBCAGNgKcBiAEIAo2ApgGIARBmA1qIARBmAZqEJ0CCwJAIBNBAkYNAAJAAkACfyATQQFGBEAgBCAHNgKkBiAEIBA2AqAGIAQgHTYCnAYgBCAbQQhqNgKYBiAEQSBqIARBmAZqEOoJIAQoAiQhBSAEKAIgDAELIBsoAhAiAiAdTQ0BIBsoAgwgHUHkAGxqIgIoAgAEQCACKAIEIgIgGygCcE8NGSAbKAJsIAJBBHRqIgIoAgghBSACKAIEDAELIARBKGogG0EIaiAdENAQIAQoAiwhBSAEKAIoCyECIAVBAEgNAyAFRQRAQQEhBwwCCyAFEJABIgdFDRsgBUUNASAHIAIgBfwKAAAMAQsgHSACQeT2yAAQhRMACyAEIAU2ArgEIAQgBzYCtAQgBCAFNgKwBCAEQX82ApgGIARB+A9qIgIgBEGYDWogBEGwBGogBEGYBmoQrAEgBCgC+A9BfU0EQCACEIcECyAbIBsoAgAiAkEBazYCACACQQFHDQAgGxAwCwJAIBdBf0YNACAZRQ0AIBlBKGwhCCAEQZwGaiEMQQAhCgNAIAogC2oiDUEkaigCACEDIA1BIGooAgAhBwJ/IA1BHGooAgBBf0YEQCAHIQlBfwwBCyADRQRAQQEhCUEADAELIAMQkAEiCUUNGyADBEAgCSAHIAP8CgAACyADCyECIA1BFGooAgAiBkEFRgRAIA1BGGooAgAhBUEIEJABIgdFDRwgBEEYaiAFEOASIAcgBCkDGDcCAAsgBCADNgKMECAEIAk2AogQIAQgAjYChBAgBCAHNgKAECAEIAY2AvwPIARBGjYC+A8gDUEEaiECAkACQAJ/IA0oAgBBAUYEQCAMIAIoAgg2AgggDCACKQIANwIAIAQgDUEQaigCAEEIajYCmAYgBEEIaiAEQZgGahDqCSAEKAIMIQUgBCgCCAwBCyACKAIAIgMgDUEQaigCACIFKAIQIgJPDQEgBSgCDCADQeQAbGoiAigCAARAIAIoAgQiAiAFKAJwTw0aIAUoAmwgAkEEdGoiAigCCCEFIAIoAgQMAQsgBEEQaiAFQQhqIAMQ0BAgBCgCFCEFIAQoAhALIQIgBUEASA0EIAVFBEBBASEHDAILIAUQkAEiB0UNHCAFRQ0BIAcgAiAF/AoAAAwBCyADIAJB5PbIABCFEwALIAQgBTYCuAQgBCAHNgK0BCAEIAU2ArAEIARBmAZqIgIgBEGYDWogBEGwBGogBEH4D2oQrAEgBCgCmAZBfU0EQCACEIcECyAIIApBKGoiCkcNAAsLQfAAEJABIgIEQCACIAQpA8AKNwMQIAIgBCgCyAo2AhggAiAEKQO4CjcDCCACQgg3AwAgAiAPNgIcIAIgBCkDqAo3AyAgAiAEKAKwCjYCKCACIAQpA5gKNwIsIAIgBCkDoAo3AjQgBCACNgLIAyAEQgw3A8ADAkAgBCgCoA0iDUUEQCAXQX9HDQEMBAtB8AAQkAEiAkUNGyACIARBwANqQfAA/AoAACAEIAI2AsgDIARCFjcDwAMgBCAEKAKgDTYC1AMgBCAEKQKYDTcCzAMgF0F/Rg0EC0HwABCQASIDBEAgA0IINwMAIAMgBCkD0Ao3AwggAyAEKQPYCjcDECADIAQpA+AKNwMYIAMgBCkD6Ao3AyAgAyAEKQPwCjcDKCADIAQpA/gKNwMwIAMgBCgCgAs2AjggGUH+//8PSw0CIBlBAWoiDEEHdCICQfn///8HTw0CAkACQCACRQRAQQghBkEAIQwMAQsgAhCQASIGRQ0BCyAGQQk2AnggBkHk1sUANgJ0IAZBfzYCcCAGIAM2AgggBkIMNwMAAkAgGUUEQEEBIQgMAQsgGUEobCEOIARB8AZqIQ8gBEGUEGohCiAEQYwQaiEJIAYhB0EBIQggCyEFA0AgBCAFKQIgNwOYECAEIAUpAhg3A5AQIAQgBSkCEDcDiBAgBCAFKQIINwOAECAEIAUpAgA3A/gPIAQgBSgCEDYCwAQgBCAFKQIINwO4BCAEIAUpAgA3A7AEIwBBIGsiECQAAkACQAJAIAQCfyAEQbAEaiITKAIAQQFGBEAgECATQQRqIgIoAgg2AhwgECACKQIANwIUIBAgEygCEEEIajYCECAQIBBBEGoQ6gkgECgCBCEDIBAoAgAMAQsgEygCBCIDIBMoAhAiEygCECICTw0BIBMoAgwgA0HkAGxqIgIoAgAEQCACKAIEIgIgEygCcE8NAyATKAJsIAJBBHRqIgIoAgghAyACKAIEDAELIBBBCGogE0EIaiADENAQIBAoAgwhAyAQKAIICzYCACAEIAM2AgQgEEEgaiQADAILIAMgAkHk9sgAEIUTAAtBpLjEABCdFQALIAQoAgQiEEEASA0FAkAgEEUEQEEBIREMAQsgBCgCACECIBAQkAEiEQRAIBBFDQEgESACIBD8CgAADAELDB4LQfAAEJABIhNFDR4gE0EJNgIQIBNB5NbFADYCDCATQX82AgggE0IFNwMAIA8gCikCADcCACAPIAooAgg2AgggCRDAEiAEKALABCICKAIAIQMgAiADQQFrNgIAIANBAUYEQCAEKALABBAwCyAFQShqIQUgB0GUAWogEzYCACAHQZABaiAQNgIAIAdBjAFqIBE2AgAgB0GIAWogEDYCACAHQYABaiICQg83AwAgB0GYAWogBEGYBmpB5AD8CgAAIAhBAWohCCACIQcgDkEoayIODQALCyAXBEAgCyAXQShsENkSC0HwABCQASICBEAgAiAEQcADakHwAPwKAAAgBCACNgLUAyAEIAg2AtADIAQgBjYCzAMgBCAMNgLIAyAEQgY3A8ADIA1FDQUMBgsMHAsMFwsMGgsMGQsQnhUACyAEQZgNahDGBQsgBCgC4A4iAgRAIAQoAuQOIAIQ2RILIAQoAoQPIgIoAgAhAyACIANBAWs2AgAgA0EBRgRAIAQoAoQPEDALIBQQ6AQgBCgC7A4iAgRAIAQoAvAOIAJByAFsENkSCyAEKAL8DiECAkAgBCgCgA8iBgRAIAIhBQNAIAUoAgAiCwRAIAVBBGooAgAiCEEEaygCACIDQXhxIQcgB0EEQQggA0EDcSIDGyALakkNFyADQQBHIAcgC0EnaktxDQMgCBC8BQsgBUEMaiEFIAZBAWsiBg0ACwsgBCgC+A4iA0UNCSACIANBDGwQ2RIMCQsMFAsgAEGLgICAeDYCOCAAIBA2AgwgACAdNgIIIABCfzcDACAEKALgDiIFBEAgBCgC5A4iAkEEaygCACIAQXhxIQMgA0EEQQggAEEDcSIAGyAFakkNEyAAQQBHIAMgBUEnaktxDRQgAhC8BQsgBCgChA8iACgCACECIAAgAkEBazYCACACQQFGBEAgBCgChA8QMAsgFBDoBCAEKALsDiIFBEAgBCgC8A4iA0EEaygCACIAQXhxIQYgBkEEQQggAEEDcSICGyAFQcgBbCIAakkNEyACQQBHIAYgAEEnaktxDRQgAxC8BQsgBCgC/A4hACAEKAKADyIGBEAgACEFA0AgBSgCACIHBEAgBUEEaigCACIDQQRrKAIAIgJBeHEhCCAIQQRBCCACQQNxIgIbIAdqSQ0VIAJBAEcgCCAHQSdqS3ENFiADELwFCyAFQQxqIQUgBkEBayIGDQALCyAEKAL4DiIFRQ0DIABBBGsoAgAiAkF4cSEGIAZBBEEIIAJBA3EiAxsgBUEMbCICakkNEiADQQBHIAYgAkEnaktxRQRAIAAQvAUMBAsMEwsgBCgCvAgiBigCACEFIAYgBUEBajYCACAFQQBIDQkgBiAGKAIAIgVBAWs2AgAgBUEBRw0AIAYQMAsgBEEANgL4EyAEQoCAgIDAADcC8BMgGUGaASAEQfATahDxDiAEKAL4EyEGIAQoAvQTIQggBCgC8BMhDCALBEAgD0EQaiEFA0AgBSgCACIHKAIAIQkgByAJQQFrNgIAIAlBAUYEQCAFKAIAEDALIAVBFGohBSALQQFrIgsNAAsLCyAXBEAgD0EEaygCACIFQXhxIQsgC0EEQQggBUEDcSIHGyAXQRRsIgVqSQ0QIAdBAEcgCyAFQSdqS3ENESAPELwFCyAEQZgNaiACIBYgBEGwBGogBEGQDmogBEH4D2ogBEGkCGogCCAGIAMoAigRFAAgBCgCoA0hCSAEKAKcDSELIAQoApgNIgdBfkcNAyAAQYuAgIB4NgI4IAAgCTYCDCAAIAs2AgggAEJ/NwMAIAYEQCAIQRBqIQUDQCAFKAIAIgAoAgAhAiAAIAJBAWs2AgAgAkEBRgRAIAUoAgAQMAsgBUEUaiEFIAZBAWsiBg0ACwsgDARAIAhBBGsoAgAiAEF4cSEDIANBBEEIIABBA3EiAhsgDEEUbCIAakkNECACQQBHIAMgAEEnaktxDREgCBC8BQsgBEGYBmoQugkLICNBAmsOAwABBAoLIAEoAghBf0YNCSABKAK4ASIFBEAgASgCvAEiAkEEaygCACIAQXhxIQMgA0EEQQggAEEDcSIAGyAFakkNDiAAQQBHIAMgBUEnaktxDQ8gAhC8BQsgASgC1AEhACABKALYASIGBEAgACEFA0AgBSgCACIHBEAgBUEEaigCACIDQQRrKAIAIgJBeHEhCCAIQQRBCCACQQNxIgIbIAdqSQ0QIAJBAEcgCCAHQSdqS3ENESADELwFCyAFQQxqIQUgBkEBayIGDQALCyABKALQASIDRQ0JIABBBGsoAgAiAUF4cSEFIAVBBEEIIAFBA3EiAhsgA0EMbCIBakkNDSACQQBHIAUgAUEnaktxDQQgABC8BQwJCyABKAKMASIDRQ0IIAEoApABIgFBBGsoAgAiAEF4cSECIAJBBEEIIABBA3EiABsgA2pJDQwgAEEARyACIANBJ2pLcQ0NIAEQvAUMCAsgBCAEKQLEDTcDkAMgBCAEKQK8DTcDiAMgBCAEKQK0DTcDgAMgBCAEKQKsDTcD+AIgBCAEKQKkDTcD8AIgBgRAIAhBEGohBQNAIAUoAgAiAigCACEDIAIgA0EBazYCACADQQFGBEAgBSgCABAwCyAFQRRqIQUgBkEBayIGDQALCyAMBEAgCEEEaygCACICQXhxIQUgBUEEQQggAkEDcSIDGyAMQRRsIgJqSQ0MIANBAEcgBSACQSdqS3ENDSAIELwFC0HwABCQASICRQ0OIAIgBzYCCCACQgg3AwAgAiAJNgIQIAIgCzYCDCACIAQpA/ACNwIUIAIgBCkD+AI3AhwgAiAEKQOAAzcCJCACIAQpA4gDNwIsIAIgBCkDkAM3AjQgBCACNgLIAyAEQgw3A8ADIARBmAZqELoJCyAAIARBwANqQfAA/AoAACAjQQJrDgMFBAMGCyABKALAASIDRQ0FIAEoAsQBIgFBBGsoAgAiAEF4cSECIAJBBEEIIABBA3EiABsgA2pJDQkgAEEARyACIANBJ2pLcQ0KIAEQvAUMBQtBkJ3JAEEuQcCdyQAQrxQLAAsgASgCwAEiA0UNAiABKALEASIBQQRrKAIAIgBBeHEhAiACQQRBCCAAQQNxIgAbIANqSQ0GIABBAEcgAiADQSdqS3FFBEAgARC8BQwDCwwHCyABKAKMASIDRQ0BIAEoApABIgFBBGsoAgAiAEF4cSECIAJBBEEIIABBA3EiABsgA2pJDQUgAEEARyACIANBJ2pLcUUEQCABELwFDAILDAYLIAEoAghBf0YNACABKAK4ASIFBEAgASgCvAEiAkEEaygCACIAQXhxIQMgA0EEQQggAEEDcSIAGyAFakkNBSAAQQBHIAMgBUEnaktxDQYgAhC8BQsgASgC1AEhACABKALYASIGBEAgACEFA0AgBSgCACIHBEAgBUEEaigCACIDQQRrKAIAIgJBeHEhCCAIQQRBCCACQQNxIgIbIAdqSQ0HIAJBAEcgCCAHQSdqS3ENCCADELwFCyAFQQxqIQUgBkEBayIGDQALCyABKALQASIDRQ0AIABBBGsoAgAiAUF4cSEFIAVBBEEIIAFBA3EiAhsgA0EMbCIBakkNBCACQQBHIAUgAUEnaktxDQUgABC8BQsgBEGQFGokAA8LIBUgBUHk9sgAEIUTAAtBpLjEABCdFQALQQgQpxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBARCnFAALQbjwyQBBAToAAAALzMcBAjV/Cn4jAEGABmsiBCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEoEJABIgcEQEHgAxCQASIIRQ0BQeADEJABIgZFDQJBlAEQkAEiBUUNHSAFQgA3AgggBUIANwIAIAUgBjYCcCAFQoCAgIDgAzcCaCAFIAg2AmQgBUKAgICA4AM3AlwgBSAHNgJYIAVCgICAgMACNwJQIAVCgICAgMAANwJIIAVCBDcCQCAFQgA3AjggBUKAgICAwAA3AjAgBUIBNwIoIAVCADcCICAFQoCAgIAQNwIYIAVCBDcCECAFQgA3AnRBACEGIAVBADoAfCAFQYIEOwGQASAFQgA3AogBIAUgAjYChAEgBSABNgKAASAFQQxqEJoSIAUoAhAiCEIANwIEIAhBADoAACAFQQE2AhQgBSgCjAFFBEAgBSgCLCAFKAIgaiEGCyAFKAJ4IRAgBSgCXCEUIAUoAgAiB0EBRgRAIAUoAgQiCCAFKAIITwRAIAVBkAFqIggtAABBAUYNCQwICyAFIAhBAWo2AgQLIAQgBUGAAWoiCCgCCDYCqAEgBCAIKQIANwOgASAFKAKIAQ0EAkAgBS0AkQFBAkcNACAHQQFGBEAgBSgCBCINIAUoAggiB08NBiAFIA1BAWoiCDYCBCAHIAhNDQEgBSANQQJqNgIECyAFQQA6AJEBIARBmAFqIAUQlAogBCgCmAEgBCgCnAEiBUECOgCRAUEBcQ0AA0AgBSgCAEEBRgRAIAUoAgQiCCAFKAIITw0CIAUgCEEBajYCBAsCQCAFLQCRASIHRQRAIARBiAFqIAUQlAogBCgCjAEhBSAEKAKIASEIDAELIAVBADoAkQEgBEGQAWogBRCUCiAEKAKQASEIIAQoApQBIgUgBzoAkQELIAhBAUcNAAsLIAUoAgBBAUYEQCAFKAIEIg0gBSgCCCIHTw0FIAUgDUEBaiIINgIEIAcgCE0NBSAFIA1BAmo2AgQLIARBgAFqIAUQYiAEKAKEASEFAkACQCAEKAKAAUEBRw0AIARB+ABqIAUQdCAEKAJ8IQUgBCgCeEEBRw0AIARB8ABqIAUQYyAEKAJ0IQUgBCgCcEEBRw0AIARB6ABqIAUQqQIgBCgCbCEFIAQoAmhBAUcNACAEQeAAaiAFEO8BIAQoAmQhBSAEKAJgQQFHDQACQCAFKAIAQQFGBEAgBSgCBCIIIAUoAghPDQEgBSAIQQFqNgIECwJAIAUtAJEBIgdBAUYEQCAEQdAAaiAFEIEDIAQoAlQhBSAEKAJQIQgMAQsgBUEBOgCRASAEQdgAaiAFEIEDIAQoAlghCCAEKAJcIgUgBzoAkQELIAhBAXFFDQELIARByABqIAUQugUgBCgCTCEFIAQoAkhBAUcNACAEQUBrIAUQuwEgBCgCRCEFIAQoAkBBAXENAQsgBSgCAEEBRgRAIAUoAgQiCCAFKAIITw0BIAUgCEEBajYCBAsgBEE4aiAFENwHIAQoAjwhBSAEKAI4QQFxDQADQCAEQTBqIAUQ3AcgBCgCNCEFIAQoAjBBAUcNAAsLAkAgBS0AkQFBAkcNACAFKAIAQQFGBEAgBSgCBCINIAUoAggiB08NBiAFIA1BAWoiCDYCBCAHIAhNDQEgBSANQQJqNgIECyAFQQA6AJEBIARBKGogBRCUCiAEKAIoIAQoAiwiBUECOgCRAUEBcQ0AA0AgBSgCAEEBRgRAIAUoAgQiCCAFKAIITw0CIAUgCEEBajYCBAsCQCAFLQCRASIHRQRAIARBGGogBRCUCiAEKAIcIQUgBCgCGCEIDAELIAVBADoAkQEgBEEgaiAFEJQKIAQoAiAhCCAEKAIkIgUgBzoAkQELIAhBAUcNAAsLIAUoAgBBAUYEQCAFKAIEIgggBSgCCE8NBSAFIAhBAWo2AgQLQQAhDSAFKAKMASIHIAUoAogBIgpGBEAgBSgCLCEOIAUoAiAhDQsgBUEMaiEJIAUoAhQhEyAFLQCQAUECRw0DIAUtAJEBRQ0DIAkoAgAgE0YEQCAJEJoSCyAFKAIQIBNBFGxqIgggCjYCCCAIQQA2AgQgCEEAOgAAIAUgE0EBajYCFCAFKAKMASEHDAMLDBsLQQQQpxQAC0EEEKcUAAsgByAKRgRAIAUoAiwgBSgCIGohCwsgBS0AkAEhCCAFKAJ4IQ8gBSgCXCEMAkACQAJAAkACQAJAIAUoAogBIAUoAoQBRwRAIAhBAUYNByAFLQCRAUUNAyAHIApHDQEgBSgCICIIIAUoAiwiCmoiByALa0EBRiAHIAtLcQ0DIAggDU8EQCAFIA02AiAgDSEICyAKIA5JDQIgBSAONgIsDAILIAhBAUYEfyAFLQCRAUUNCAJAIAcgCkYEQCAFKAIsIgggBSgCICIKaiIHIAtrQQFGIAcgC0txDQogCiANTwRAIAUgDTYCIAsgCCAOSQ0BIAUgDjYCLCAOIQgMAQsgByAKTw0JIAUgCjYCjAFBACEIIAVBADYCLCAFQQA2AiALIAUoAiQgCEYEQCAFQSRqEKMSCyAFKAIoIAhqQQA6AAAgBSAIQQFqNgIsIAUtAJABBSAIC0H/AXFBAkcNByAFLQCRAUUNByAFKAIUIgcgE00NAyAFKAIQIBNBFGxqIggtAAANBCAIIAc2AgQgBSgCiAEhCCAFKAIUIgcgBSgCDEYEQCAJEJoSCyAFKAIQIAdBFGxqIg0gCDYCECANQQA2AgggDSATNgIEIA1BATsBACAFIAdBAWo2AhQMBwsgByAKTw0BIAUgCjYCjAFBACEIIAVBADYCLCAFQQA2AiALIAUoAhggCEYEQCAFQRhqEKMSCyAFIAhBAWo2AiAgBSgCHCAIakEAOgAACyAFLQB8QQFHDQIgBS0AkQFFDQIgBUHUAGpBACAMQQAgBSgCeCAPTRsQkwUMAgsgEyAHQZyKyAAQhRMAC0Ggq8kAQShBrIrIABCvFAALIAUtAJABQQJHDQAgBS0AkQFFDQAgEyAFKAIUSw0AIAUgEzYCFAsgBSAEKAKoATYCiAEgBSAEKQOgATcCgAEgBSgCFARAIAVBATYCFAsgBS0AkAFBAUYNAiAFQZABaiEIDAELIAVB1ABqIQ4CQCAFLQB8RQ0AIAUtAJEBRQ0AIA5BACAMQQAgBSgCeCAPTRsQkwULAkAgBS0AkAEiCEEBRgR/IAUtAJEBRQ0BIAUoAowBDQEgBSgCLCAFKAIgaiIIIAZrQQFGIAYgCElxDQEgBUEANgIsIAVBADYCICAFKAIkRQRAIAVBJGoQoxILIAUoAihBAToAACAFQQE2AiwgBS0AkAEFIAgLQf8BcUECRw0AIAUtAJEBRQ0AAkAgBSgCFCIIBEAgBSgCECIGLQAADQEgBiAINgIEIAUoAogBIQYgBSgCFCIHIAUoAgxGBEAgCRCaEgsgBSgCECAHQRRsaiIIIAY2AhAgCEIANwIEIAhBgQI7AQAgBSAHQQFqNgIUDAILQQBBAEGcisgAEIUTAAtBoKvJAEEoQayKyAAQrxQACwJAIAUtAHxFDQAgBS0AkQFFDQAgDkEBIBRBACAFKAJ4IBBNGxCTBQsgBSgCFCEUIAQgCSgCCDYCqAEgBCAJKQIANwOgAQJAAkBBFBCQASIQBEAgEEKBgICAEDcCACAQIAQpA6ABNwIIIBAgBCgCqAE2AhBBACEIAkAgECgCECIGRQ0AQXxBdCAQKAIMIAZBFGxqIgZBFGstAAAbIAZqKAIAIgZFDQAgAiAGTQRAIAYgAiIIRg0BDAQLIAEgBmosAABBQEgNAyAGIQgLQQQQkAEiCgRAQQAhByAKQQA2AgAgBEEBNgKoASAEIAo2AqQBIARBATYCoAEgCARAIAEgCGohC0EBIQ0gASEIA0ACQAJAIAgsAAAiD0EATgRAIAhBAWohCCAPQf8BcSEGDAELIAgtAAFBP3EhBiAPQR9xIQwCfyAPQV9NBEAgDEEGdCAGciEGIAhBAmoMAQsgCC0AAkE/cSAGQQZ0ciEGIA9BcEkEQCAGIAxBDHRyIQYgCEEDagwBCyAMQRJ0QYCA8ABxIAgtAANBP3EgBkEGdHJyIQYgCEEEagshCCAGQYABSQ0AQQJBA0EEIAZBgIAESRsgBkGAEEkbIAdqIQcMAQsgB0EBaiEHIAZBCkcNACAEKAKgASANRgRAIARBoAFqEJsSIAQoAqQBIQoLIAogDUECdGogBzYCACAEIA1BAWoiDTYCqAELIAggC0cNAAsLIAQgBCgCqAE2AvgDIAQgBCkCoAE3A/ADAkBBFBCQASILBEAgC0KBgICAEDcCACALIAQpA/ADNwIIIAsgBCgC+AM2AhBBACEGAkAgFEUNACAQKAIQIg1FBEBBACEIDAYLIBAoAgwiBy0AAA0VQQEhBiAUIAcoAgRBAWoiCE0NAANAIAggDU8NBiAHIAhBFGxqIggtAAANFiAGQQFqIQYgFCAIKAIEQQFqIghLDQALCyAEIAY2ArwBIAQgFDYCuAEgBEEANgK0ASAEIAI2AqwBIAQgATYCqAEgBCAQNgKkASAEIAs2ArABIARBAjYCoAEgBSgCGCIIBEAgBSgCHCICQQRrKAIAIgFBeHEhBiAGQQRBCCABQQNxIgEbIAhqSQ0QIAFBAEcgBiAIQSdqS3ENESACELwFCyAFKAIkIggEQCAFKAIoIgJBBGsoAgAiAUF4cSEGIAZBBEEIIAFBA3EiARsgCGpJDRAgAUEARyAGIAhBJ2pLcQ0RIAIQvAULIAVBMGoQ8wkgDhD1ByAFQQRrKAIAIgFBeHEhAiACQZgBQZwBIAFBA3EiARtJDQ8gAUEARyACQbwBT3ENASAFELwFDAgLDBwLDA4LDBoLDBkLIAggDUHgisgAEIUTAAsgASACQQAgBkHQisgAEP0UAAsCQCAFLQCRAUUNACAFKAKMAQ0AIAUoAiwgBSgCIGoiByAGa0EBRiAGIAdJcQ0AIAVBADYCLCAFQQA2AiAgBSgCGEUEQCAFQRhqEKMSCyAFQQE2AiAgBSgCHEEBOgAACwJAIAUtAHxBAUcNACAFLQCRAUUNACAFQdQAakEBIBRBACAFKAJ4IBBNGxCTBQsgCC0AAEECRw0AIAUtAJEBRQ0AIAVBADYCFAsCQAJAAkACQCAFKAIAQQFxBEAgBSgCBCAFKAIITw0BCwJAIAUoAiAiDEECSQ0AIAVBHGooAgAhCgJAIAxBFU8EQCAKIAwQ9Q8MAQsgCkEBaiEGAkAgDEEBcQRAIAYhByAKIQYMAQsgCi0AACIHIAotAAEiC0sEQEEAIQ0DQAJAIAogDWoiCEEBaiAHOgAAIA1FDQBBfyENIAsgCEEBay0AACIHSQ0BCwsgCiALOgAACyAKQQJqIQcLIAxBAkYNACAKIAxqIQwgB0EBaiELA0AgBi0AACIIIActAAAiD0sEQCAHIQ0CfwNAIA0gCDoAACAKIgggBiAIRg0BGiAPIAYiDUEBayIGLQAAIghJDQALIAZBAWoLIA86AAALIActAAAiBiAHLQABIg9LBEAgCyEIA0ACQCAIIAY6AAAgCiAIQQFrIg1GBEAgCiENDAELIAhBAmshBiANIQggDyAGLQAAIgZJDQELCyANIA86AAALIAdBAWohBiALQQJqIQsgDCAHQQJqIgdHDQALCyAFKAIgIg9BAkkNACAFQRxqKAIAIQpBASEIA0AgCEEBaiEGIAggCmoiCy0AACALQQFrLQAARgRAIAYgD08EQCAFIAg2AiAMAwsgD0EDayENAkAgDyAIQQFrIgdrQQFxRQRAIAghDAwBCyAIIQwgBiAKai0AACIGIAtBAWstAABHBEAgCyAGOgAAIAhBAWohDAsgCEECaiEGCyAHIA1HBEAgDyAGayEHIAYgCmohCANAIAgtAAAiBiAKIAxqIg1BAWstAABHBEAgDSAGOgAAIAxBAWohDAsgCEEBai0AACIGIAogDGoiDUEBay0AAEcEQCANIAY6AAAgDEEBaiEMCyAIQQJqIQggB0ECayIHDQALCyAFIAw2AiAMAgsgDyAGIghHDQALCyAFKAIsIghBAkkNAiAFQShqKAIAIQoCQCAIQRVPBEAgCiAIEPUPDAELIApBAWohBgJAIAhBAXEEQCAGIQcgCiEGDAELIAotAAAiByAKLQABIgxLBEBBACENA0ACQCAKIA1qIgtBAWogBzoAACANRQ0AQX8hDSAMIAtBAWstAAAiB0kNAQsLIAogDDoAAAsgCkECaiEHCyAIQQJGDQAgCCAKaiEMIAdBAWohCwNAIAYtAAAiCCAHLQAAIg9LBEAgByENAn8DQCANIAg6AAAgCiIIIAYgCEYNARogDyAGIg1BAWsiBi0AACIISQ0ACyAGQQFqCyAPOgAACyAHLQAAIgYgBy0AASIPSwRAIAshCANAAkAgCCAGOgAAIAogCEEBayINRgRAIAohDQwBCyAIQQJrIQYgDSEIIA8gBi0AACIGSQ0BCwsgDSAPOgAACyAHQQFqIQYgC0ECaiELIAwgB0ECaiIHRw0ACwsgBSgCLCINQQJPBEAgBUEoaigCACEPQQEhBgNAIAZBAWohByAGIA9qIgwtAAAgDEEBay0AAEYEQCAHIA1PBEAgBiEIDAULIA1BA2sCQCANIAZBAWsiC2tBAXFFBEAgBiEIDAELIAYhCCAHIA9qLQAAIgcgDEEBay0AAEcEQCAMIAc6AAAgBkEBaiEICyAGQQJqIQcLIAtGDQQgDSAHayENIAcgD2ohBgNAIAYtAAAiByAIIA9qIgtBAWstAABHBEAgCyAHOgAAIAhBAWohCAsgBkEBai0AACIHIAggD2oiC0EBay0AAEcEQCALIAc6AAAgCEEBaiEICyAGQQJqIQYgDUECayINDQALDAQLIA0gByIGRw0ACwsgDSEIDAILQRIQkAEiBgRAIAZBzIrIAC8AADsAECAGQcSKyAApAAA3AAggBkG8isgAKQAANwAAIARBEjYCrAQgBCAGNgKoBCAEQv////+vAjcCoAQMAwsMFwsgBSAINgIsC0EBIQ1BASEHIAUoAiAiCkEARyILBEAgBUEcaigCACEGIAoQkAEiB0UNFiALBEAgByAGIAr8CgAACyAFKAIsIQgLAkAgCEUiCw0AIAVBKGooAgAhBiAIEJABIg1FDRYgCw0AIA0gBiAI/AoAAAsgBCAINgK0BCAEIA02ArAEIAQgCDYCrAQgBCAKNgKoBCAEIAc2AqQEIAQgCjYCoAQLAkAgBS0AfEUEQCAEIAI2AvQDIAQgATYC8AMgBCAFKAKMATYC+AMgBEGgAWogBEGgBGogBEHwA2oQmQIMAQsgBCACNgL0AyAEIAE2AvADIAQgBSgCjAE2AvgDQQEhDQJAIAUoAlwiC0UNACAFKAJYIQYgC0EBdCIKEJABIg1FDRZBACEIIAshBwNAIAggCkYNASAIIA1qIAYvAAA7AAAgCEECaiEIIAZBAmohBiAHQQFrIgcNAAsLIARBrAFqIAUoAmQgBSgCaBCFDSAEQbgBaiAFKAJwIAUoAnQQhQ0gBEEBOgDIASAEIAs2AqgBIAQgDTYCpAEgBCALNgKgASAEIAUoAng2AsQBIARB8ARqIARBoARqIARB8ANqEJkCIARBzAVqIQYgBCgCzAVBf0cEQCAGEPUHCyAGIAQoAsgBNgIoIAYgBCkCwAE3AiAgBiAEKQK4ATcCGCAGIAQpArABNwIQIAYgBCkCqAE3AgggBiAEKQKgATcCACAEQaABaiAEQfAEakGIAfwKAAALIAUoAgwiCARAIAUoAhAiB0EEaygCACIGQXhxIQ0gDSAIQRRsIghBBEEIIAZBA3EiBhtqSQ0IIAZBAEcgDSAIQSdqS3ENCSAHELwFCyAFKAIYIg0EQCAFKAIcIghBBGsoAgAiBkF4cSEHIAdBBEEIIAZBA3EiBhsgDWpJDQggBkEARyAHIA1BJ2pLcQ0JIAgQvAULIAUoAiQiDQRAIAUoAigiCEEEaygCACIGQXhxIQcgB0EEQQggBkEDcSIGGyANakkNCCAGQQBHIAcgDUEnaktxDQkgCBC8BQsgBUEwahDzCSAFQdQAahD1ByAFQQRrKAIAIgZBeHEhCCAIQZgBQZwBIAZBA3EiBhtJDQcgBkEARyAIQbwBT3ENCCAFELwFIAQoAqABQQJGDQAgBEHwBGogBEGgAWpBiAH8CgAAIAQoAvQEIQYCQAJAAkACQAJAIAQoAvAEBEAgBiAEKAL4BCIHSw0EIAZFDQIgAiAGSw0BIAIgBkcNBAwCCyAGRQRAQQAhBwwDCwJAIAIgBk0EQCAGIgcgAkcNAQwECyABIAZqLAAAIgFBQEgNACAGIQcgAUG/f0oNAwtBkJnIABCdFQALIAEgBmosAABBv39KDQAMAgsgB0UEQEEAIQcMAQsgAiAHTQRAIAIgB0YNAQwCCyABIAdqLAAAQb9/TA0BCyAEKAKcBSINQX9HDQFBsJnIAEH7AEHwmcgAEL8TAAtBoJnIABCdFQALIAQoAqQFIghBBmwiBUEASA0BIAQoAqAFIQECQCAFRQRAQQEhAgwBCyAFEJABIgJFDRULIARBADYCqAQgBCACNgKkBCAEIAU2AqAEAkACQCAIBEAgBEGIBGqtQoCAgICQCYQhOiABIQUDQCAEIAU2AogEIAQgOjcD8AMgBEGgBGpBgJrIAEHPrcAAIARB8ANqELEJDQIgBUEBaiEFIAhBAWsiCA0ACwsgBCAEKAKoBDYC+AMgBCAEKQKgBDcD8AMgDQRAIAFBBGsoAgAiAkF4cSEIIAhBBEEIIAJBA3EiAhsgDWpJDQogAkEARyAIIA1BJ2pLcQ0LIAEQvAULIAQgBEHwA2qtQoCAgIDAAoQ3A4gEIARBoARqQaaiwAAgBEGIBGoQuAwgBEEANgK0BCAEIAc2ArAEIAQgBjYCrAQgBCgC8AMiCARAIAQoAvQDIgJBBGsoAgAiAUF4cSEGIAZBBEEIIAFBA3EiARsgCGpJDQogAUEARyAGIAhBJ2pLcQ0LIAIQvAULIAMoAggiASADKAIARgRAIAMQvRILIAMgAUEBajYCCCADKAIEIAFBGGxqIgEgBCkCoAQ3AgAgASAEKQKoBDcCCCABIAQpArAENwIQIABBADYCCCAAQoCAgIDAADcCACAEKAKoBSIDBEAgBCgCrAUiAUEEaygCACIAQXhxIQIgAkEEQQggAEEDcSIAGyADakkNCiAAQQBHIAIgA0EnaktxDQsgARC8BQsgBCgCtAUiA0EASgRAIAQoArgFIgFBBGsoAgAiAEF4cSECIAJBBEEIIABBA3EiABsgA2pJDQogAEEARyACIANBJ2pLcQ0LIAEQvAULIAQoApAFIgMEQCAEKAKUBSIBQQRrKAIAIgBBeHEhAiACQQRBCCAAQQNxIgAbIANqSQ0KIABBAEcgAiADQSdqS3ENCyABELwFCyAEKALABSIDQQBKBEAgBCgCxAUiAUEEaygCACIAQXhxIQIgAkEEQQggAEEDcSIAGyADakkNCiAAQQBHIAIgA0EnaktxDQIgARC8BQsgBCgCzAVBf0YNByAEQcwFahD1BwwHC0GIsMkAQSsgBEH/BWpBmJrIAEGomsgAENoSAAsMCAsgBCgCtAEiBiAEKAK4AU8NASAEKAKwASEJIAQoAqwBIRUgBCgCqAEhGCAEKAKkASIUKAIAQQFqIQEgFCABNgIAIAFFDQMgCSAJKAIAQQFqIgE2AgAgAUUNAyAGIBQoAhAiB08NAiAUKAIMIgIgBkEUbGoiAS0AAA0IIAEoAgQhJSAEQQA2ArQCIARCgICAgMAANwKsAgJAICUgBkEBaiIGTQ0AIAYgB08NBiACIAZBFGxqIgEtAAANDCAlIAEoAgRBAWoiBU0NAANAIAUgB08EQCAFIQYMCAsgAiAFQRRsaiIBLQAADQ0gJSABKAIEQQFqIgVLDQALCyAEQcADaq1CgICAgNABhCE7IARB0ANqrSI9QoCAgIDQAYQhPCAEQfADaq1CgICAgNABhCE5IARBiARqrUKAgICA0AGEIT4gBEGwA2qtQoCAgIDQAYQhPyAEQfAEaiIBQQRqISAgBEGsBGohKSAEQbAFaiEqIAFBDGohKyABQQhqISxBACEFQQAhDANAIAUhDyAHIQ0CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8gDEEBcUUEQCAGICVPDQIgFCAUKAIAQQFqIgE2AgAgAUUNICAJIAkoAgBBAWoiATYCACABRQ0gIBQoAhAiByAGTQ0MIBQoAgwgBkEUbGoiAS0AAA0lIAYhCiABKAIEQQFqIQYgFAwBCyAmRQ0BICYoAhAhByAuIQogJgshBSAGIQggByAKTQ0JIAUoAgwiAiAKQRRsIhJqIgstAAANJSALKAIEIiQgB08NCCACICRBFGxqIgEtAABFDSRBACEMIAEtAAEOMhkBAgEBAQEBAQEBAQEDBAEBFg4BAQEBAQEBAQENAQEBAQEBAQEBARkBAQEBAQEBAQEMAQsgACAEKAK0AjYCCCAAIAQpAqwCNwIAIBQgFCgCAEEBayIANgIAIABFBEAgFBCBEAsgCSAJKAIAQQFrIgA2AgAgAEUEQCAJEPYPCwJAIA9FDQAgDyAPKAIAQQFrIgA2AgAgAEUEQCAPEIEQCyANIA0oAgBBAWsiADYCACAADQAgDRD2DwsgFCAUKAIAQQFrIgA2AgAgAEUEQCAUEIEQCyAJIAkoAgBBAWsiADYCACAADR4gCRD2DwweC0Ggq8kAQShBgJnIABCvFAALIAUgBSgCAEEBaiIBNgIAIAFFDRsgCSAJKAIAQQFqIgE2AgAgAUUNGyAFKAIQIgcgCk0NBCAFKAIMIgIgEmoiAS0AAA0iIApBAWoiDCABKAIEIhBJBEAgByAMTQ0WIAxBFGwiEyACaiIBLQAADSQgECABKAIEQQFqIgZLBEADQCAGIAdPBEAgBiEMDBkLIAIgBkEUbGoiAS0AAA0mIBAgASgCBEEBaiIGSw0ACwsgDCEGA0AgBSAFKAIAQQFqIgE2AgAgAUUNHSAJIAkoAgBBAWoiATYCACABRQ0dIAUoAhAiDiAGTQ0FIAUoAgwiByAGQRRsIgJqIgEtAAANIiABKAIEIgsgDk8NBCAHIAtBFGxqIgEtAABFDSMgAS0AASAFIAUoAgBBAWsiBzYCAEEra0H/AXFBA0kNCiAHRQRAIAUQgRALIAtBAWohBiAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LIAYgEEkNAAsLQfSVyABBJEGYlsgAEMATAAsgCygCCCECIAEoAhAhASAEQdwANgL0AyAEQbiWyAA2AvADIAQgOTcDoAQgBEHwBGpBmpzAACAEQaAEahC4DCAEQQA2AoQFIAQgATYCgAUgBCACNgL8BCADKAIIIgEgAygCAEYEQCADEL0SCyADIAFBAWo2AgggAygCBCABQRhsaiIBIAQpAvAENwIAIAEgBCkC+AQ3AgggASAEKQKABTcCEAwVC0EAIREgBEEANgLAAiAEQoCAgIDAADcCuAIgASgCECEhIAsoAgghHiAkIApBAWoiDE0EQEF/IQtBfyEfQQAhEAwTCyACIAxBFGxqIgEtAAANIQJAICQgASgCBEEBaiIGSwRAA0AgBiAHTw0CIAIgBkEUbGoiAS0AAA0kICQgASgCBEEBaiIGSw0ACwtBfyELQQAhEEF/IR8DQCAFIAUoAgBBAWoiATYCACABRQ0bIAkgCSgCAEEBaiIBNgIAIAFFDRsCQAJAAkACQAJAAkACQCAMIAUoAhAiAUkEQCAFKAIMIgogDEEUbGoiBi0AAEUEQCAEIAw2AuwDIAQgCTYC6AMgBCAVNgLkAyAEIBg2AuADIAQgBTYC3AMgBigCBCIjIAFJBEAgCiAjQRRsaiICLQAABEACQCACLQABQRBrDiAABQUFBQUFBQUFBQUFBQUFBQUFCgUFBQUICAUFBQUHBwULIAIoAhAhHCAGKAIIIScgIyAMQQFqIgxNDQUgCiAMQRRsaiICLQAADS4CQCAjIAIoAgRBAWoiB0sEQANAIAEgB00NAiAKIAdBFGxqIgItAAANMSAjIAIoAgRBAWoiB0sNAAsLIBdBEyAQGyEWIBBB3KTIACAQGyESA0AgBSAFKAIAQQFqIgE2AgAgAUUNKCAJIAkoAgBBAWoiATYCACABRQ0oAkACQAJAAkACQAJAIAwgBSgCECIBSQRAIAUoAgwiBiAMQRRsIhFqIgItAABFBEAgBCAMNgKYBCAEIAk2ApQEIAQgFTYCkAQgBCAYNgKMBCAEIAU2AogEIAIoAgQiLyABSQRAIAYgL0EUbGoiAS0AAARAAkACQAJAIAEtAAEiAUEPaw4OAgEBAQEBAQEBAQEBAQkACyABQTJGDQYLIARBiARqQe+kyABBBkH4pMgAELUNDAYLIARBfzYCoAQCQCAMIAUoAhAiAUkEQCAFKAIMIgYgEWoiCi0AACICDQEgCigCBCIHIAFJBEAgCkEQQQggAhtqKAIAIRNBEEEIIAYgB0EUbGoiAS0AABsgAWooAgAhDiAEIARBiARqEK8OIAQgBCkDADcC0AMgBSgCECIaIAxLBEAgBSgCDCIKIBFqIgItAABFBEBBfyEGIAxBAWoiASACKAIEIjBPDQ0gASAaTw0MAkAgCiABQRRsaiICLQAADQAgMCACKAIEQQFqIgdLBEADQCAHIBpPBEAgByEBDBALIAogB0EUbGoiAi0AAA0CIDAgAigCBEEBaiIHSw0ACwsDQCAFIAUoAgBBAWoiAjYCACACRQ05IAkgCSgCAEEBaiICNgIAIAJFDTkCQAJAAkACQAJAAkACQCAFKAIQIgcgAUsEQCAFKAIMIgogAUEUbCICaiIRLQAADUYgBCABNgKABCAEIAk2AvwDIAQgFTYC+AMgBCAYNgL0AyAEIAU2AvADIBEoAgQiGiAHTw0BIAogGkEUbGoiCi0AAEUNRwJAAkACQAJAIAotAAFBHWsOGwEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwALIAUgARC3EyEAIAQgATYC/AQgBCAVNgL4BCAEIBg2AvQEIAQgBTYC8AQgBCAAQQFqNgKABSAJEKIUIAQgBEHwBGqtQoCAgICgCYQ3A4gDQfqdwAAgBEGIA2pBjKTIABC/EwALIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0JIAkQ9g8MCQsgCigCECIKIBEoAggiDEkNBSAMRQ0EIAwgFUkNAyAMIBVHDQUMBAsgBEHwBGogBEHwA2ogAxBHIAQoAqAEQX9HBEAgBEGgBGoQmQQLIAQgBCkCqAU3A9gEIAQgBCkCoAU3A9AEIAQgBCkCmAU3A8gEIAQgBCkCkAU3A8AEIAQgBCkCiAU3A7gEIAQgBCkCgAU3A7AEIAQgBCkC+AQ3A6gEIAQgBCkC8AQ3A6AEDAcLIAEgB0GkjcgAEIUTAAsgGiAHQYSNyAAQhRMACyAMIBhqLAAAQb9/TA0BCwJAIApFDQAgCiAVTwRAIAogFUYNAQwCCyAKIBhqLAAAQb9/TA0BCyAKIAxrIh1BAEgNASAdRQRAQQEhEQwDCyAdEJABIhFFDU0gHQRAIBEgDCAYaiAd/AoAAAsgBSgCECEHDAILIBggFSAMIApB9IzIABD9FAALEJ4VAAsCQAJAIAEgB0kEQCACIAUoAgwiAmoiDC0AACIBRQRAIAwoAgQiCiAHTw0CIAxBEEEIIAEbaigCACExQRBBCCACIApBFGxqIgEtAAAbIAFqKAIAITIgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LIAZBAEwNAyAiQQRrKAIAIgFBeHEhAiACQQRBCCABQQNxIgEbIAZqSQ1BIAFBAEcgAiAGQSdqS3ENQiAiELwFDAMLDEQLIAEgB0HkjMgAEIUTAAsgCiAHQeSMyAAQhRMACyARISIgHSEGCyAwIBpBAWoiAUsNAAsMDgsMPwsMPQsgDCAaQcSMyAAQhRMACww9CyAMIAFB5IzIABCFEwALDDkLDDcLIC8gAUGEjcgAEIUTAAsMNAsMOAsgBCAWNgL0AyAEIBI2AvADIAQgOTcDoAQgBEHwBGpBi4jCACAEQaAEahC4DCAMIAUoAhAiAU8EQCAMIAFB5IzIABCFEwALIAUoAgwiBiARaiIKLQAAIgINNCAKKAIEIgcgAU8NNiAEKALwBCEMIAQoAvQEIREgCkEQQQggAhtqKAIAIQJBEEEIIAYgB0EUbGoiAS0AABsgAWooAgAhASAEIAQoAvgENgL0AyAEIBE2AvADIAQgOTcDoAQgBEHwBGpBmpzAACAEQaAEahC4DCAEQQA2AoQFIAQgATYCgAUgBCACNgL8BCADKAIIIgEgAygCAEYEQCADEL0SCyADIAFBAWo2AgggAygCBCABQRhsaiIBIAQpAvAENwIAIAEgBCkC+AQ3AgggASAEKQKABTcCECAMRQ0AIBFBBGsoAgAiAUF4cSECIAJBBEEIIAFBA3EiARsgDGpJDTAgAUEARyACIAxBJ2pLcQ0xIBEQvAULIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0DIAkQ9g8MAwsgBEHwBGogBEGIBGoQ2gUCQCAfQQFrQX1NBEAgG0EEaygCACIBQXhxIQIgAkEEQQggAUEDcSIBGyAfakkNMCABQQBHIAIgH0EnaktxDQEgGxC8BQsgBCgC+AQhKCAEKAL0BCEbIAQoAvAEIR8MAwsMLwsgASAaQeCKyAAQhRMACyAFIAUoAgBBAWsiATYCACABRQRAIAUQgRALIAkgCSgCAEEBayIBNgIAIAFFBEAgCRD2DwsgBkF/RgRAIAQgPUKAgICA4AOENwPwBEH6ncAAIARB8ARqQfyjyAAQvxMACyAEIAQpA9gENwOoBSAEIAQpA9AENwOgBSAEIAQpA8gENwOYBSAEIAQpA8AENwOQBSAEIAQpA7gENwOIBSAEIAQpA7AENwOABSAEIAQpA6gENwP4BCAEIAQpA6AENwPwBCAEKALAAiIBIAQoArgCRgRAIARBuAJqEJgSCyAEKAK8AiABQeQAbGoiAiAEKQPwBDcCACACIAQpA/gENwIIIAIgBCkDgAU3AhAgAiAEKQOIBTcCGCACIAQpA5AFNwIgIAIgBCkDmAU3AiggAiAEKQOgBTcCMCACIAQpA6gFNwI4IAJBADYCYCACIA42AlwgAiATNgJYIAJBADYCVCACIDI2AlAgAiAxNgJMIAIgHTYCSCACICI2AkQgAiAGNgJAIAQgAUEBajYCwAILICMgL0EBaiIMSw0ACwwGCwwxCwwrCyAjIAFBhI3IABCFEwALDCgLDCwLIARB3ANqQe+kyABBBkGIpcgAELUNDAILIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgBBASERDAILIARBCGogBEHcA2oQrw4gBCgCDCEXIAQoAgghEAsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCAAsgAQ0BIAkQ9g8MAQsgBEHwBGogBEHcA2oQzQ0gBCAsKQIANwPwAiAEICwpAgg3A/gCIAQoAvQEIAQoAvAEIQECQCALQQFrQX1LDQAgGUEEaygCACIGQXhxIQcgB0EEQQggBkEDcSIGGyALakkNICAGQQBHIAcgC0EnaktxRQRAIBkQvAUMAQsMIQshGSABIQsLICQgI0EBaiIMSw0ACwwTCyAGIAdB4IrIABCFEwALIAsgDkGEjcgAEIUTAAsgBiAOQaSNyAAQhRMACyAKIAdBxIzIABCFEwALICQgB0GEjcgAEIUTAAsgCiAHQcSMyAAQhRMACyAGIAdBpI3IABCFEwALIAdFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAUUEQCAJEPYPCwJAAkACQAJAAkAgBSgCECIHIAZLBEAgAiAFKAIMIgJqIgEtAABFBEAgASgCBCIBIAdJBEAgAiABQRRsaiIBLQAABEACQAJAIAEtAAFBK2sOAwEHBgALQaCryQBBKEGolsgAEK8UAAsgBCAtNgLsAyAEIA02AugDIAQgGK0gFa1CIIaENwLgAyAEIA82AtwDAkAgCiAFKAIQIgJJBEAgBSgCDCIHIBJqIgYtAAAiAQ0BIAYoAgQiEiACSQRAIAZBEEEIIAEbaigCACEQIARBADYCkAMgBEKAgICAwAA3AogDIARBADYCwAIgBEKAgICAwAA3ArgCQRBBCCAHIBJBFGxqIgEtAAAbIAFqKAIAIR1BfyELIAwgEk8NCSAHIBNqIgEtAAANJgJAIBIgASgCBEEBaiIGSwRAA0AgAiAGTQ0CIAcgBkEUbGoiAS0AAA0pIBIgASgCBEEBaiIGSw0ACwtBACEXQQQhG0EEIR9BACEOA0AgBSAFKAIAQQFqIgE2AgAgAUUNESAJIAkoAgBBAWoiATYCACABRQ0RAkACQAJAAkACQAJAIAwgBSgCECIBSQRAIAUoAgwiEyAMQRRsaiICLQAADSwgBCAMNgKYBCAEIAk2ApQEIAQgFTYCkAQgBCAYNgKMBCAEIAU2AogEIAIoAgQiFiABTw0BIBMgFkEUbGoiAi0AAEUNLQJAAkACQCACLQABQQRrDigAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBCAEBAQECAgECAQtBACEKIBYgDEEBaiIGTQ0FIBMgBkEUbGoiAi0AAA0xIBYgAigCBEEBaiIHSwRAA0AgASAHTQ02IBMgB0EUbGoiAi0AAA0zIBYgAigCBEEBaiIHSw0ACwsDQCAFIAUoAgBBAWoiATYCACABRQ0bIAkgCSgCAEEBaiIBNgIAIAFFDRsgBiAFKAIQIgFPDTYgBSgCDCIHIAZBFGxqIgwtAAANLyAEIAY2AoAEIAQgCTYC/AMgBCAVNgL4AyAEIBg2AvQDIAQgBTYC8AMgDCgCBCICIAFPDTcgByACQRRsaiIHLQAARQ0wAkACQAJAAkACQAJAAkACQCAHLQABIgFBFWsOHgYBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwALIAFBA0YNBAsgBEHwA2pBkovIAEEFQcSSyAAQtQ0MAgsCQCAKRQ0AIAogCigCAEEBayIBNgIAIAFFBEAgChCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0AIAkQ9g8LIAQpAvQDIUAgBSEKIAYhMwwECyAMKAIIIQYgBygCECEBIARBNzYCxAMgBEHMkMgANgLAAyAEIDs3A9ADIARBoARqQZqcwAAgBEHQA2oQuAwgBEEANgK0BCAEIAE2ArAEIAQgBjYCrAQgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAEKQKgBDcCACABIAQpAqgENwIIIAEgBCkCsAQ3AhALIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0CIAkQ9g8MAgsgC0F/Rg0HIAQgMzYCsAQgBCAJNgKsBCAEIEA3AqQEIAQgCjYCoAQgBEHwBGogESAZQZKLyABBBSAEQfADaiAEQaAEaiADEHsgBCgC8ARBAkYEQCADKAIIIgEgAygCAEYEQCADEL0SCyADIAFBAWo2AgggAygCBCABQRhsaiIBICApAgA3AgAgASAgKQIINwIIIAEgICkCEDcCEEEAIQoMAgsgBCgCuAIgF0YEQCAEQbgCahC4EiAEKAK8AiEbCyAbIBdB3ABsaiAEQfAEakHcAPwKAAAgBCAXQQFqIhc2AsACQQAhCgwBCyAEQaAEaiAEQfADaiADEIIGIAQoAogDIA5GBEAgBEGIA2oQqxIgBCgCjAMhHwsgHyAOQcwAbGogBEGgBGpBzAD8CgAAIAQgDkEBaiIONgKQAwsgFiACQQFqIgZLDQALDAULIARBiARqQZKLyABBBUHUksgAELUNCyAFIAUoAgBBAWsiATYCACABRQRAIAUQgRALIAkgCSgCAEEBayIBNgIAIAFFDQQMBgsMMAsgFiABQYSNyAAQhRMAC0G0ksgAEJ0VAAsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LIApFDQIgCiAKKAIAQQFrIgE2AgAgAUUEQCAKEIEQCyAJIAkoAgBBAWsiATYCACABDQILIAkQ9g8MAQsgBEGgBGogBEGIBGoQzQ0gBCApKQIANwPwAiAEICkoAgg2AvgCIAQoAqgEIRkgBCgCpAQgBCgCoAQhAQJAIAtBAWtBfUsNACARQQRrKAIAIgZBeHEhByAHQQRBCCAGQQNxIgYbIAtqSQ0lIAZBAEcgByALQSdqS3FFBEAgERC8BQwBCwwmCyERIAEhCwsgEiAWQQFqIgxLDQALDAoLDCwLIBIgAkHkjMgAEIUTAAsMKwsMIgsMIAsgASAHQYSNyAAQhRMACwwfCyAGIAdBxIzIABCFEwALIAQgLTYC7AMgBCANNgLoAyAEIBitIBWtQiCGhDcC4AMgBCAPNgLcAwJAIAogBSgCECICSQRAIAUoAgwiByASaiIGLQAAIgENHyAGKAIEIhIgAkkEQCAGQRBBCCABG2ooAgAhECAEQQA2ApADIARCgICAgMAANwKIAyAEQQA2AsACIARCgICAgMAANwK4AkEQQQggByASQRRsaiIBLQAAGyABaigCACEdQX8hCyAMIBJPDQIgByATaiIBLQAADSECQCASIAEoAgRBAWoiBksEQANAIAIgBk0NAiAHIAZBFGxqIgEtAAANJCASIAEoAgRBAWoiBksNAAsLQQAhF0EEIRtBBCEfQQAhDgNAIAUgBSgCAEEBaiIBNgIAIAFFDQwgCSAJKAIAQQFqIgE2AgAgAUUNDAJAAkACQAJAAkACQCAMIAUoAhAiAUkEQCAFKAIMIhMgDEEUbGoiAi0AAA0nIAQgDDYCmAQgBCAJNgKUBCAEIBU2ApAEIAQgGDYCjAQgBCAFNgKIBCACKAIEIhYgAU8NASATIBZBFGxqIgItAABFDSgCQAJAAkAgAi0AAUEEaw4qAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBAgIBAQECAQtBACEKIBYgDEEBaiIGTQ0FIBMgBkEUbGoiAi0AAA0sIBYgAigCBEEBaiIHSwRAA0AgASAHTQ0xIBMgB0EUbGoiAi0AAA0uIBYgAigCBEEBaiIHSw0ACwsDQCAFIAUoAgBBAWoiATYCACABRQ0WIAkgCSgCAEEBaiIBNgIAIAFFDRYgBiAFKAIQIgFPDTEgBSgCDCIHIAZBFGxqIgwtAAANKiAEIAY2AoAEIAQgCTYC/AMgBCAVNgL4AyAEIBg2AvQDIAQgBTYC8AMgDCgCBCICIAFPDTIgByACQRRsaiIHLQAARQ0rAkACQAJAAkACQAJAAkACQCAHLQABIgFBFWsOHgYBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwALIAFBA0YNBAsgBEHwA2pBjovIAEEEQYSRyAAQtQ0MAgsCQCAKRQ0AIAogCigCAEEBayIBNgIAIAFFBEAgChCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0AIAkQ9g8LIAQpAvQDIUEgBSEKIAYhNAwECyAMKAIIIQYgBygCECEBIARBNzYCxAMgBEHMkMgANgLAAyAEIDs3A9ADIARBoARqQZqcwAAgBEHQA2oQuAwgBEEANgK0BCAEIAE2ArAEIAQgBjYCrAQgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAEKQKgBDcCACABIAQpAqgENwIIIAEgBCkCsAQ3AhALIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0CIAkQ9g8MAgsgC0F/Rg0HIAQgNDYCsAQgBCAJNgKsBCAEIEE3AqQEIAQgCjYCoAQgBEHwBGogESAZQY6LyABBBCAEQfADaiAEQaAEaiADEHsgBCgC8ARBAkYEQCADKAIIIgEgAygCAEYEQCADEL0SCyADIAFBAWo2AgggAygCBCABQRhsaiIBICApAgA3AgAgASAgKQIINwIIIAEgICkCEDcCEEEAIQoMAgsgBCgCiAMgF0YEQCAEQYgDahC4EiAEKAKMAyEbCyAbIBdB3ABsaiAEQfAEakHcAPwKAAAgBCAXQQFqIhc2ApADQQAhCgwBCyAEQaAEaiAEQfADaiADEIIGIAQoArgCIA5GBEAgBEG4AmoQqxIgBCgCvAIhHwsgHyAOQcwAbGogBEGgBGpBzAD8CgAAIAQgDkEBaiIONgLAAgsgFiACQQFqIgZLDQALDAULIARBiARqQY6LyABBBEGUkcgAELUNCyAFIAUoAgBBAWsiATYCACABRQRAIAUQgRALIAkgCSgCAEEBayIBNgIAIAFFDQQMBgsMKwsgFiABQYSNyAAQhRMAC0G8kMgAEJ0VAAsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LIApFDQIgCiAKKAIAQQFrIgE2AgAgAUUEQCAKEIEQCyAJIAkoAgBBAWsiATYCACABDQILIAkQ9g8MAQsgBEGgBGogBEGIBGoQzQ0gBCApKQIANwPwAiAEICkoAgg2AvgCIAQoAqgEIRkgBCgCpAQgBCgCoAQhAQJAIAtBAWtBfUsNACARQQRrKAIAIgZBeHEhByAHQQRBCCAGQQNxIgYbIAtqSQ0gIAZBAEcgByALQSdqS3FFBEAgERC8BQwBCwwhCyERIAEhCwsgEiAWQQFqIgxLDQALDAMLDCcLIBIgAkHkjMgAEIUTAAsMJgsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LIAtBf0cEQAJAIA8EQCAEQaAEaiAEQdwDahDaBQwBCyAEQX82AqAECyAEIAQoAvgCNgLYAyAEIAQpA/ACNwPQAyAEIAQpAogDNwPAAyAEIAQoApADNgLIAyAEIAQpArgCNwOwAyAEIAQoAsACNgK4AyAEIAQpAqAENwOYAyAEIAQoAqgENgKgAyAEKAK0AiICIAQoAqwCRgRAIARBrAJqELcSCyAEKAKwAiACQdQAbGoiASAZNgIMIAEgETYCCCABIAs2AgQgAUGCgICAeDYCACABIAQpA9ADNwIQIAEgBCgC2AM2AhggASAEKQPAAzcCHCABIAQoAsgDNgIkIAEgBCkDsAM3AiggASAEKAK4AzYCMCABIAQoAqADNgI8IAEgBCkDmAM3AjQgAUEBOgBMIAFBADYCSCABIB02AkQgASAQNgJADAMLQfSPyABB7wBBrJDIABC/EwALIAQgLTYCgAMgBCANNgL8AiAEIBitIBWtQiCGhDcC9AIgBCAPNgLwAgJAIAogBSgCECICSQRAIAUoAgwiByASaiIGLQAAIgENHiAGKAIEIhYgAkkEQCAGQRBBCCABG2ooAgAhEEEAIQogBEEANgKQAyAEQoCAgIDAADcCiANBEEEIIAcgFkEUbGoiAS0AABsgAWooAgAhJ0F/IREgDCAWTw0CIAcgE2oiAS0AAA0gAkAgFiABKAIEQQFqIgZLBEADQCACIAZNDQIgByAGQRRsaiIBLQAADSMgFiABKAIEQQFqIgZLDQALCwNAIAUgBSgCAEEBaiIBNgIAIAFFDQsgCSAJKAIAQQFqIgE2AgAgAUUNCwJAAkACQAJAAkACQCAMIAUoAhAiAUkEQCAFKAIMIgsgDEEUbGoiBi0AAEUEQCAEIAw2AuwDIAQgCTYC6AMgBCAVNgLkAyAEIBg2AuADIAQgBTYC3AMgBigCBCIeIAFJBEAgCyAeQRRsaiICLQAABEACQCACLQABQQRrDikABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUGBgUFBgULIAIoAhAhKCAGKAIIIR1BACEOIB4gDEEBaiIGTQ0GIAsgBkEUbGoiAi0AAA0sAkAgHiACKAIEQQFqIgdLBEADQCABIAdNDQIgCyAHQRRsaiICLQAADS8gHiACKAIEQQFqIgdLDQALCwNAIAUgBSgCAEEBaiIBNgIAIAFFDRcgCSAJKAIAQQFqIgE2AgAgAUUNFwJAAkACQAJAAkACQAJAAkAgBiAFKAIQIgFJBEAgBSgCDCICIAZBFGxqIgstAABFBEAgBCAGNgKYBCAEIAk2ApQEIAQgFTYCkAQgBCAYNgKMBCAEIAU2AogEIAsoAgQiByABSQRAIAIgB0EUbGoiAi0AACIBBEAgCygCCCESIAJBEEEIIAEbaigCACEMAkACQAJAAkACQAJAAkAgAi0AASIBQRVrDh4CAQEBAQEBAwEBAQEBAQEBAQEBAQEBAQEBAQEBAQQACyABQQNGDQULIARBiARqQcyjyABBDkHco8gAELUNDAMLIARB8ARqIARBiARqIAMQggYgBCgCnAUhASAEKAKgBUECaw4HCAwNCgsNCQ0LAkAgDkUNACAOIA4oAgBBAWsiATYCACABRQRAIA4QgRALIAkgCSgCAEEBayIBNgIAIAENACAJEPYPCyAEKQKMBCFCIAUhDiAGITUMDgsgAigCECEBIARBNzYC1AMgBEHMkMgANgLQAyAEIDw3A6AEIARB8ARqQZqcwAAgBEGgBGoQuAwgBEEANgKEBSAEIAE2AoAFIAQgEjYC/AQgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAEKQLwBDcCACABIAQpAvgENwIIIAEgBCkCgAU3AhALIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0MIAkQ9g8MDAsgEUF/RwRAIAQgNTYCsAQgBCAJNgKsBCAEIEI3AqQEIAQgDjYCoAQgBEHwBGogFyAZQf2ayQBBBCAEQYgEaiAEQaAEaiADEHsCQAJAIAQoAvAEQQJGBEAgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAgKQIANwIAIAEgICkCCDcCCCABICApAhA3AhAMAQsgBCgCqAUhGyAEKAKsBSIKBEAgCkHMAGwhAiAbQTBqIQYDQCAGQQRrKAIAIQsCQAJAAkACQAJAIAYoAgAiAUECaw4HAgQEBAEEAAQLIAspAABC8sqxi8au2rfuAFINAwwCCyALKAAAQfXcpYsHcyALQQRqLwAAQfXKAXNyRQ0BDAILIAsvAABB6cgBRw0BCyAEIAE2ArQDIAQgCzYCsAMgBCA/NwPQAyAEQaAEaiILQcbrwQAgBEHQA2oiARC4DCAEKAKgBCETIAQoAqQEIQ4gBCAEKAKoBDYCxAMgBCAONgLAAyAEIDs3A9ADIAtBmpzAACABELgMIARBADYCtAQgBCAMNgKwBCAEIBI2AqwEIBMEQCAOQQRrKAIAIgFBeHEhCyALQQRBCCABQQNxIgEbIBNqSQ08IAFBAEcgCyATQSdqS3ENBSAOELwFCyADKAIIIgEgAygCAEYEQCADEL0SCyADIAFBAWo2AgggAygCBCABQRhsaiIBIAQpAqAENwIAIAEgBCkCqAQ3AgggASAEKQKwBDcCEAsgBkHMAGohBiACQcwAayICDQALCyAEKAKQAyIBIAQoAogDRgRAIARBiANqELgSCyAEKAKMAyABQdwAbGoiAiAEKQLwBDcCACACIAQpAvgENwIIIAIgBCkCgAU3AhAgAiAEKQKIBTcCGCACIAQpApAFNwIgIAIgBCkCmAU3AiggAiAEKQKgBTcCMCACIAo2AjwgAiAbNgI4IAIgKikCADcCQCACICopAgg3AkggAiAqKQIQNwJQIAIgKigCGDYCWCAEIAFBAWo2ApADC0EAIQ4MDQsMNwtBqKDIABCdFQALDDcLDDkLDDQLDDoLIAEvAABB6cgBRw0EIARBJTYC1AMgBEHsoMgANgLQAwwFCyABKQAAQubqsePGrpm89ABSDQMgBEHFADYC1AMgBEGRocgANgLQAwwECyABKAAAQenckasGcyABQQRqLQAAQfgAc3INAiAEQT02AtQDIARB1qHIADYC0AMMAwsgASgAAEH13KWLB3MgAUEEai8AAEH1ygFzcg0BIARByAA2AtQDIARBk6LIADYC0AMMAgsgAS8AAEHtwgFzIAFBAmotAABB8ABzcg0AIARB8QA2AtQDIARB26LIADYC0AMMAQsgBEE0NgLUAyAEQbigyAA2AtADCyAEIDw3A6AEIARB8ANqQZqcwAAgBEGgBGoQuAwgBEEANgKEBCAEIAw2AoAEIAQgEjYC/AMgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAEKQLwAzcCACABIAQpAvgDNwIIIAEgBCkCgAQ3AhAgBEHwBGoQxggLIB4gB0EBaiIGSw0ACwwHCwwvCwwpCyAeIAFBhI3IABCFEwALDCYLDCoLIARB3ANqQcyjyABBDkHso8gAELUNCyAFIAUoAgBBAWsiATYCACABRQRAIAUQgRALIAkgCSgCAEEBayIBNgIAIAFFDQEMAwsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LQQEhCiAORQ0CIA4gDigCAEEBayIBNgIAIAFFBEAgDhCBEAsgCSAJKAIAQQFrIgE2AgAgAQ0CCyAJEPYPDAELIARB8ARqIARB3ANqEM0NIAQgKykCADcDuAIgBCArKAIINgLAAiAEKAL4BCEZIAQoAvQEIAQoAvAEIQECQCARQQFrQX1LDQAgF0EEaygCACIGQXhxIQcgB0EEQQggBkEDcSIGGyARakkNHyAGQQBHIAcgEUEnaktxRQRAIBcQvAUMAQsMIAshFyABIRELIBYgHkEBaiIMSw0ACwwDCwwmCyAWIAJB5IzIABCFEwALDCULIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAUUEQCAJEPYPCyARQX9HBEACQCAPBEAgBEHwBGogBEHwAmoQ2gUMAQsgBEF/NgLwBAsgCkEBcUUEQEGIoMgAEJ0VAAsgBCAEKALAAjYCqAQgBCAEKQO4AjcDoAQgBCAEKQKIAzcD0AMgBCAEKAKQAzYC2AMgBCAEKQLwBDcDwAMgBCAEKAL4BDYCyAMgBCgCtAIiAiAEKAKsAkYEQCAEQawCahC3EgsgBCgCsAIgAkHUAGxqIgEgGTYCDCABIBc2AgggASARNgIEIAFBgICAgHg2AgAgASAEKQOgBDcCECABIAQoAqgENgIYIAEgBCkD0AM3AhwgASAEKALYAzYCJCABIAQpA8ADNwIoIAEgBCgCyAM2AjAgAUEANgJIIAEgKDYCRCABIB02AkAgAUEANgI8IAEgJzYCOCABIBA2AjQMAgtB9I/IAEHvAEGYoMgAEL8TAAsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LIAtBf0YNAQJAIA8EQCAEQaAEaiAEQdwDahDaBQwBCyAEQX82AqAECyAEIAQoAvgCNgLYAyAEIAQpA/ACNwPQAyAEIAQpArgCNwPAAyAEIAQoAsACNgLIAyAEIAQpAogDNwOwAyAEIAQoApADNgK4AyAEIAQpAqAENwOYAyAEIAQoAqgENgKgAyAEKAK0AiICIAQoAqwCRgRAIARBrAJqELcSCyAEKAKwAiACQdQAbGoiASAZNgIMIAEgETYCCCABIAs2AgQgAUGCgICAeDYCACABIAQpA9ADNwIQIAEgBCgC2AM2AhggASAEKQPAAzcCHCABIAQoAsgDNgIkIAEgBCkDsAM3AiggASAEKAK4AzYCMCABIAQoAqADNgI8IAEgBCkDmAM3AjQgAUEAOgBMIAFBADYCSCABIB02AkQgASAQNgJACyAEIAJBAWo2ArQCIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgBBACEFIA0hByAIIQZBACEMIAENDyAJEPYPDAoLQfSPyABB7wBBpJLIABC/EwALIAsoAgghAiABKAIQIQEgBEHNADYC9AMgBEGwmMgANgLwAyAEIDk3A6AEIARB8ARqQZqcwAAgBEGgBGoQuAwgBEEANgKEBSAEIAE2AoAFIAQgAjYC/AQgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAEKQLwBDcCACABIAQpAvgENwIIIAEgBCkCgAU3AhAMDAtBASEMQQAhJiAIICVPBEAgCCEuDAwLIBQgFCgCAEEBaiIBNgIAIAFFDQEgCSAJKAIAQQFqIgE2AgAgAUUNAQJAAkAgCCAUKAIQIgFJBEAgFCgCDCIHIAhBFGwiAmoiBi0AAA0YIAEgCE0NASACIAdqIgItAAANGiACKAIEIgIgAU8NICAHIAJBFGxqIgEtAABFDRkgBigCBEEBaiEGIAEtAAEiAUESSw0CQQEgAXRBhIARcUUNAiAKIS0gCSEHIAghLiAUISYgD0UNDyAPIA8oAgBBAWsiATYCACABRQRAIA8QgRALIA0gDSgCAEEBayIBNgIAIAENDyANEPYPDA8LIAggAUGkjcgAEIUTAAsgCCABQcSMyAAQhRMACyAIIS4gFCEmDAsLIAQgLTYCyAIgBCANNgLEAiAEIBitIBWtQiCGhDcCvAIgBCAPNgK4AgJAIA8EQCAEQcwCaiAEQbgCahDaBQwBCyAEQX82AswCCyAKIAUoAhAiAk8NHiAFKAIMIgsgEmoiBi0AACIBDRYgBigCBCIaIAJPDQEgBkEQQQggARtqKAIAIRNBACEBIARBADYC4AIgBEKAgICAwAA3AtgCIARBADYC7AIgBEKAgICAwAA3AuQCQRBBCCALIBpBFGxqIgYtAAAbIAZqKAIAIQ8CQCAaIApBAWoiCk0iBw0AIAsgCkEUbGoiBi0AAA0YQQEhASAaIAYoAgRBAWoiBk0NAANAIAIgBk0NHyALIAZBFGxqIgYtAAANGSABQQFqIQEgGiAGKAIEQQFqIgZLDQALCyAEIAE2AtAEIAQgCTYCxAQgBCAVNgLABCAEIBg2ArwEIAQgBTYCuAQgBEEANgKgBCAEIAo2AsgEIAQgGjYCzAQgBw0CQX8hEUEAIQsDQCAFIAUoAgBBAWoiAjYCACACRQ0QIAkgCSgCAEEBaiICNgIAIAJFDRACQAJAAkACQAJAAkAgCiICIAUoAhAiDkkEQCAFKAIMIgwgAkEUbGoiBy0AAEUEQCAEIAI2AoADIAQgCTYC/AIgBCAVNgL4AiAEIBg2AvQCIAQgBTYC8AIgBCABQQFrIgE2AtAEIAQgBygCBCIhQQFqIgo2AsgEIA4gIUsEQCAMICFBFGxqIgYtAAAEQAJAIAYtAAFBFGsOFwAFBQUFBQUFBQUFBQUFBQkFBQUFBgYGBQsgBigCECEdIAcoAgghKEEAIRAgISACQQFqIgJNDQYgDCACQRRsaiIGLQAADSICQCAhIAYoAgRBAWoiB0sEQANAIAcgDk8NAiAMIAdBFGxqIgYtAAANJSAhIAYoAgRBAWoiB0sNAAsLA0AgBSAFKAIAQQFqIgY2AgAgBkUNHCAJIAkoAgBBAWoiBjYCACAGRQ0cAkACQAJAAkACQAJAAkACQCAFKAIQIgcgAksEQCAFKAIMIgYgAkEUbCISaiILLQAARQRAIAQgAjYC7AMgBCAJNgLoAyAEIBU2AuQDIAQgGDYC4AMgBCAFNgLcAyALKAIEIh4gB0kEQCAGIB5BFGxqIgctAAAEQAJAIActAAFBE2sOIAAFBgUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUHBQsgBCA2NgKYBCAEIAk2ApQEIAQgOjcCjAQgBCAQNgKIBCAEQRBqIARB3ANqEK8OAkAgBSgCECIOIAJLBEAgBSgCDCILIBJqIgwtAAAiBw0BIAwoAgQiFyAOSQRAIAQoAhAhBiAMQRBBCCAHG2ooAgAhDEEQQQggCyAXQRRsaiIHLQAAGyAHaigCACEnIAQgBCgCFDYCrAMgBCAGNgKoAyAEQQA2ArgDIARCgICAgMAANwKwAwJAIBAEQCAEQcADaiAEQYgEahDaBSAFKAIQIQ4MAQsgBEF/NgLAAwsgAiAOSQRAIAUoAgwiCyASaiIHLQAARQRAQX8hFyACQQFqIgIgBygCBCIWTw0PIAIgDk8NDgJAIAsgAkEUbGoiBy0AAA0AIBYgBygCBEEBaiIHSwRAA0AgByAOTwRAIAchAgwSCyALIAdBFGxqIgctAAANAiAWIAcoAgRBAWoiB0sNAAsLA0AgBSAFKAIAQQFqIgc2AgAgB0UNLyAJIAkoAgBBAWoiBzYCACAHRQ0vAkACQAJAAkACQAJAAkACQCAFKAIQIg4gAksEQCAFKAIMIgsgAkEUbCIHaiIQLQAADT0gBCACNgKABCAEIAk2AvwDIAQgFTYC+AMgBCAYNgL0AyAEIAU2AvADIBAoAgQiEiAOTw0BIAsgEkEUbGoiCy0AAEUNPgJAAkACQAJAAkAgCy0AAUEWaw4OAwAAAAAAAQQAAAAAAAIACyAEQfADakHYj8gAQQpB5I/IABC1DSAFIAUoAgBBAWsiAjYCACACRQRAIAUQgRALIAkgCSgCAEEBayICNgIAIAINDCAJEPYPDAwLIARB8ARqIARB8ANqENoFIAQoAvAEIg5BAEwNCyAEKAL0BCIHQQRrKAIAIgJBeHEhCyALQQRBCCACQQNxIgIbIA5qSQ0+IAJBAEcgCyAOQSdqS3ENPyAHELwFDAsLIAsoAhAiCyAQKAIIIhxJDQggHEUNByAVIBxLDQQgFSAcRw0IDAcLIARB8ARqIARB8ANqIAMQggYgBCgCuAMiAiAEKAKwA0YEQCAEQbADahCrEgsgBCgCtAMgAkHMAGxqIARB8ARqQcwA/AoAACAEIAJBAWo2ArgDDAkLIARB0ANqIARB8ANqEKUGIAQoAsADQX9GDQMgBCgC0ANBf0YNCCArIAQpAtADNwIAICsgBCgC2AM2AgggBCAEKALIAzYC+AQgBCAEKQLAAzcD8AQgBEHAA2ogBEHwBGpBAkGgssgAQQEQgwggBCgC8AQiDgRAIAQoAvQEIgdBBGsoAgAiAkF4cSELIAtBBEEIIAJBA3EiAhsgDmpJDTwgAkEARyALIA5BJ2pLcQ09IAcQvAULIAQoAvwEIg5FDQggBCgCgAUiB0EEaygCACICQXhxIQsgC0EEQQggAkEDcSICGyAOakkNOyACQQBHIAsgDkEnaktxDQQgBxC8BQwICyACIA5BpI3IABCFEwALIBIgDkGEjcgAEIUTAAsgGCAcaiwAAEG/f0oNAgwDCyAEIAQoAtgDNgLIAyAEIAQpAtADNwPAAwwEC0GQnckAQS5BwJ3JABCvFAwkCwJAIAtFDQAgCyAVTwRAIAsgFUYNAQwCCyALIBhqLAAAQb9/TA0BCyALIBxrIhlBAEgNLyAZRQRAQQEhCwwCCyAZEJABIgtFDUIgGQRAIAsgGCAcaiAZ/AoAAAsgBSgCECEODAELIBggFSAcIAtB9IzIABD9FAALAkACQCACIA5JBEAgByAFKAIMIgdqIiItAAAiAkUEQCAiKAIEIhwgDk8NAiAiQRBBCCACG2ooAgAhIkEQQQggByAcQRRsaiICLQAAGyACaigCACEcIAUgBSgCAEEBayICNgIAIAJFBEAgBRCBEAsgCSAJKAIAQQFrIgI2AgAgAkUEQCAJEPYPCyAXQQBMDQMgBkEEaygCACICQXhxIQcgB0EEQQggAkEDcSICGyAXakkNNyACQQBHIAcgF0EnaktxDTggBhC8BQwDCww6CyACIA5B5IzIABCFEwALIBwgDkHkjMgAEIUTAAsgCyEGIBkhFwsgFiASQQFqIgJLDQALDBALDDULDDMLIAIgDkHEjMgAEIUTAAsgFyAOQeSMyAAQhRMACyACIA5B5IzIABCFEwALDC8LDC0LIB4gB0GEjcgAEIUTAAsMKgsgAiAHQaSNyAAQhRMACyAEQdwDakHXrMkAQQRBqI/IABC1DQwCCyAEQfAEaiAEQdwDaiADEIIGIAQoAuACIgIgBCgC2AJGBEAgBEHYAmoQqxILIAQoAtwCIAJBzABsaiAEQfAEakHMAPwKAAAgBCACQQFqNgLgAgwFCyALKAIIIQYgBygCECECIARBKjYCjAQgBEH8jsgANgKIBCAEID43A/ADIARB8ARqQZqcwAAgBEHwA2oQuAwgBEEANgKEBSAEIAI2AoAFIAQgBjYC/AQgAygCCCICIAMoAgBGBEAgAxC9EgsgAyACQQFqNgIIIAMoAgQgAkEYbGoiAiAEKQLwBDcCACACIAQpAvgENwIIIAIgBCkCgAU3AhALIAUgBSgCAEEBayICNgIAIAJFBEAgBRCBEAsgCSAJKAIAQQFrIgI2AgAgAg0DIAkQ9g8MAwsCQCAQRQ0AIBAgECgCAEEBayIGNgIAIAZFBEAgEBCBEAsgCSAJKAIAQQFrIgY2AgAgBg0AIAkQ9g8LIAQpAuADITogBSEQIAIhNgwCCyACIA5B4IrIABCFEwALIAUgBSgCAEEBayICNgIAIAJFBEAgBRCBEAsgCSAJKAIAQQFrIgI2AgAgAkUEQCAJEPYPCyAXQX9GBEAgBCAEQagDaq1CgICAgOADhDcD8ARBr5zAACAEQfAEakHIj8gAEL8TAAsgBCAEKAK4AzYC+AQgBCAEKQKwAzcD8AQgBCAEKALIAzYCoAMgBCAEKQPAAzcDmAMgBCgC7AIiAiAEKALkAkYEQCAEQeQCahCiEgtBACEQIAQoAugCIAJBPGxqIgdBADYCFCAHIBw2AhAgByAiNgIMIAcgGTYCCCAHIAY2AgQgByAXNgIAIAcgBCkD8AQ3AhggByAEKAL4BDYCICAHIAQpA5gDNwIkIAcgBCgCoAM2AiwgB0EANgI4IAcgJzYCNCAHIAw2AjAgBCACQQFqNgLsAgsgISAeQQFqIgJLDQALDAcLIAcgDkHgisgAEIUTAAsMHwsgISAOQYSNyAAQhRMACwwcCyACIA5BpI3IABCFEwALIARB8AJqQdesyQBBBEG4j8gAELUNCyAFIAUoAgBBAWsiAjYCACACRQRAIAUQgRALIAkgCSgCAEEBayICNgIAIAJFDQEMAwsgBSAFKAIAQQFrIgI2AgAgAkUEQCAFEIEQCyAJIAkoAgBBAWsiAjYCACACRQRAIAkQ9g8LQQEhCyAQRQ0CIBAgECgCAEEBayICNgIAIAJFBEAgEBCBEAsgCSAJKAIAQQFrIgI2AgAgAg0CCyAJEPYPDAELIARB8ARqIARB8AJqEM0NIAQgLCkCADcDiAMgBCAsKQIINwOQAyAEKAL0BCAEKALwBCECAkAgEUEBa0F9Sw0AIBtBBGsoAgAiB0F4cSEMIAxBBEEIIAdBA3EiBxsgEWpJDRUgB0EARyAMIBFBJ2pLcUUEQCAbELwFDAELDBYLIRsgAiERCyAEQQA2AqAEIAogGkkNAAsMAwsACyAaIAJB5IzIABCFEwALIARBoARqIgIoAhgiASgCAEEBayEAIAEgADYCACAARQRAIAEQgRALIAIoAiQiASgCAEEBayEAIAEgADYCACAARQRAIAEQ9g8LAkAgAigCAEUNACACKAIEIgFFDQAgASABKAIAQQFrIgA2AgAgAEUEQCABEIEQCyACKAIQIgEoAgBBAWshACABIAA2AgAgAA0AIAEQ9g8LDAELIAUgBSgCAEEBayIBNgIAIAFFBEAgBRCBEAsgCSAJKAIAQQFrIgE2AgAgAUUEQCAJEPYPCyARQX9GDQAgC0EBcQ0BQZSOyAAQnRUAC0GkjsgAQZEBQeyOyAAQvxMACyAEIAQpA5ADNwP4BCAEIAQpA4gDNwPwBCAEIAQpAuQCNwOgBCAEIAQoAuwCNgKoBCAEIAQpAtgCNwPwAyAEIAQoAuACNgL4AyAEIAQpAswCNwOIBCAEIAQoAtQCNgKQBCAEKAK0AiIBIAQoAqwCRgRAIARBrAJqELcSCyAEKAKwAiABQdQAbGoiAiAbNgIEIAIgETYCACACIAQpA/AENwIIIAIgBCkD+AQ3AhAgAiAEKQOgBDcCGCACIAQoAqgENgIgIAIgBCkD8AM3AiQgAiAEKAL4AzYCLCACIAQpA4gENwIwIAIgBCgCkAQ2AjggAkEANgJQIAIgHTYCTCACICg2AkggAkEANgJEIAIgDzYCQCACIBM2AjwgBCABQQFqNgK0AgtBACEFIA0hByAIIQZBACEMDAQLIAsoAgghAiABKAIQIQEgBEGcATYC9AMgBEGUl8gANgLwAyAEIDk3A6AEIARB8ARqQZqcwAAgBEGgBGoQuAwgBEEANgKEBSAEIAE2AoAFIAQgAjYC/AQgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAEKQLwBDcCACABIAQpAvgENwIIIAEgBCkCgAU3AhAMAgsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACABRQRAIAkQ9g8LAkAgEEUNAAJAAkACQAJAAkAgF0EJaw4CAQAFCyAQKQAAQuTC0Yu27tu68gCFIBBBCGozAABC48oBhYRCAFINBCALQX9GDQEgEUEBcUUNAkGDgICAeCEHICchNyAcITgMAwsgECkAAELnyrmrpq6Yuu8AhSAQQQhqMQAAQvIAhYRCAFINAyALQX9HBEBBhICAgHghBwwDC0GcpMgAEJ0VAAtBrKTIABCdFQALQbykyAAQnRUACyAEIAQpA/gCNwP4BCAEIAQpA/ACNwPwBCAEIAQpArgCNwOgBCAEIAQoAsACNgKoBCAEKAK0AiIBIAQoAqwCRgRAIARBrAJqELcSCyAEKAKwAiABQdQAbGoiAiAZNgIIIAIgCzYCBCACIAc2AgAgAiAEKQPwBDcCDCACIAQpA/gENwIUIAIgBCkDoAQ3AhwgAiAEKAKoBDYCJEEAIQwgAkEANgJIIAIgODYCRCACIDc2AkAgAkEANgI8IAIgITYCOCACIB42AjQgAiAoNgIwIAIgGzYCLCACIB82AiggBCABQQFqNgK0AiANIQcgDyEFIAghBgwDC0Ggq8kAQShBzKTIABCvFAALIAwgB0HgisgAEIUTAAsgBSAFKAIAQQFrIgE2AgAgAUUEQCAFEIEQCyAJIAkoAgBBAWsiATYCACANIQcgDyEFIAENACAJEPYPDAALAAsQnhUAC0HklcgAEJ0VAAsgBiAHQaSNyAAQhRMACwALIARBgAZqJAAPCyAGIAdB4IrIABCFEwALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0Ggq8kAQShBtI3IABCvFAALQaCryQBBKEGUjcgAEK8UAAtBoKvJAEEoQdSMyAAQrxQAC0Ggq8kAQShB8IrIABCvFAALIAcgAUHkjMgAEIUTAAsgDCABQaSNyAAQhRMACyAHIAFB4IrIABCFEwALIAYgAUGkjcgAEIUTAAsgAiABQYSNyAAQhRMACyAGIAJB4IrIABCFEwALIAogAkHkjMgAEIUTAAtBARCnFAALQbjwyQBBAToAAAALuZIBAiJ/B34jAEGwCmsiBiQAAkACQAJAAkACQAJAAn8CQAJAAkAgASkDEEIDUQRAIAEpAxhQDQELIAEoAqwBISIgASgCqAEiBygCACEIIAcgCEEBajYCACAIQQBODQEMBQsgAEEAOgB8IABBADYCeCAAQoCAgIDAADcDcCAAQQA2AhAgAEKAgICAgAE3AwggAEILNwMAIAIoAgQhDCACKAIIIgUEQANAIAwgDkEFdGoiBCgCECIAKAIAIQMgACADQQFrNgIAIANBAUYEQCAEKAIQEDALIAQoAhghACAEKAIcIggEQCAAIQcDQCAHEN4EIAdBMGohByAIQQFrIggNAAsLIAQoAhQiBARAIABBBGsoAgAiA0F4cSEHIAcgBEEwbCIEQQRBCCADQQNxIgMbckkNCSADQQBHIAcgBEEnaktxDQggABC8BQsgBSAOQQFqIg5HDQALC0EBIQkgAigCACICRQ0BIAxBBGsoAgAiAEF4cSEDIAMgAkEFdCICQQRBCCAAQQNxIgAbckkNBiAAQQBHIAMgAkEnaktxDQUgDBC8BQwBCyACKAIEIQkgAigCACEcIAFBqAFqIiQoAgAhGQJAIAIoAggiCwRAIAZB1AhqIQwgCSEHIAtBBXQiCEEgayICQSBxRQRAIAwgBykCFDcCACAMIAcoAhw2AgggBiAHKAIQNgLQCCAHIAYpA9AINwIQIAcgBikD2Ag3AhggB0EgaiEHCyAIIAlqIQ8gAgRAA0AgDCAHQRRqKQIANwIAIAwgB0EcaigCADYCCCAGIAcoAhA2AtAIIAcgBikD0Ag3AhAgByAGKQPYCDcCGCAMIAdBNGopAgA3AgAgDCAHQTxqKAIANgIIIAYgB0EwaiICKAIANgLQCCACIAYpA9AINwIAIAdBOGogBikD2Ag3AgAgDyAHQUBrIgdHDQALCyAGIAk2AoQCIAYgHDYCgAIgBiALNgKIAgJAIAtBAUYNACALQRVPBEAjAEGAIGsiDCQAAkACQAJAQZChDyALIAtBkKEPTxsiAiALIAtBAXZrIgcgAiAHSxsiCEGBAU8EQCAHQf///z9LDQIgCEEFdCICQf3///8HTw0CIAIQkAEiAkUNAyAMQQA2AgggDCACNgIEIAwgCDYCACAJIAsgAiAIIAtBwQBJEKUCIAwQpw0MAQsgCSALIAxBgAEgC0HBAEkQpQILIAxBgCBqJAAMAwsQnhUACwwKCyMAQRBrIRIgCSIHQSBqIQwgByALQQV0aiEOIAchCANAIAwhCgJAIAgoAiAiEyAIKAIAIgJHBEAgEyACayEMDAELAn8gE0UEQCAIQSRqIQxBZAwBCyAIKAIoIgwgCCgCCCICSyACIAxLayAIKAIkIgwgCCgCBCICSyACIAxLayACIAxGGyIMQf8BcQ0BIAhBLGohDEFsCyECIAwoAgAiDCACIApqKAIAIgJLIAIgDEtrIQwLIAxBf0YEQCASIAgpAjA3AwAgEiAIKQI4NwMIIAgoAiwhGiAIKAIoIREgCCgCJCEbIBAhDAJAAkAgEwRAA0AgCCECIAcgDGoiCEE4aiAIKQIYNwIAIAhBMGogCCkCEDcCACAIQShqIAgpAgg3AgAgCEEgaiAIKQIANwIAIAxFBEAgByECDAQLIAhBIGsoAgBFDQIgCEEYaygCACILIBFJIAsgEUtrIAhBHGsoAgAiCyAbSSALIBtLayALIBtGGyIXQf8BcUUEQCAIQRRrKAIAIgggGkkgCCAaS2shFwsgAkEgayEIIAxBIGshDCAXQX9GDQAMAwsACwNAIAcgDGoiCEE4aiAIKQIYNwIAIAhBMGogCCkCEDcCACAIQShqIAgpAgg3AgAgCEEgaiAIKQIANwIAIAxFBEAgByECDAMLIAxBIGshDAJ/IAhBIGsoAgAiAgRAQQAgAmsMAQsgCEEcaygCACICIBtJIAIgG0trC0F/Rg0ACyAHIAxqQSBqIQIMAQsgCCECCyACIBs2AgQgAiATNgIAIAIgGjYCDCACIBE2AgggAiASKQMANwIQIAIgEikDCDcCGAsgEEEgaiEQIA4gCiIIQSBqIgxHDQALC0HoAhCQASIMBEAgDEEAOwHmAiAMQQA2AgAgBiAPNgLsCCAGIBw2AugIIAYgCTYC5AggBiAJNgLgCCAGQX82AsAIIAZBxAhqIQsgDCEKAkADQCAGKALACCEOIAZBfzYCwAggBigC7AghByAGKALkCCECAkACQAJ/IA5Bf0cEQCACIQkgCwwBCyACIAdGDQEgBiACQSBqIgk2AuQIIAIoAgAhDiACQQRqCyECIA5BAkcEQCACKAIYIQggAigCFCEPIAIoAhAhDSACKAIMIRcgAigCCCEWIAIoAgQhESACKAIAIRwCQCAHIAlGBEAgBkECNgLACAwBCyALIAkpAgQ3AgAgCyAJKQIMNwIIIAsgCSkCFDcCECALIAkoAhw2AhggBiAJQSBqNgLkCCAGIAkoAgAiAjYCwAggAiAORw0AIAYoAsQIIQIgDkEBRgRAQQEhDiACIBxHDQEgESAGKALICEcNASAWIAYoAswIRw0BDAQLIAIgHEYNA0EAIQ4LAkACQCAKLwHmAiICQQtPBEBBACEaAkADQCAKKAIAIgpFBEBBmAMQkAEiAkUNFSACIAw2AugCIAJBADsB5gIgAkEANgIAIB1BAWoiHUUNBCAMQQA7AeQCIAwgAjYCACACIQogHSEaDAILIBpBAWohGiAKLwHmAkEKSw0ACyAMIQILQegCEJABIglFDRIgCUEAOwHmAiAJQQA2AgAgGkEBayIQRQ0CA0BBmAMQkAEiB0UNEyAHIAk2AugCIAdBADsB5gIgB0EANgIAIAlBADsB5AIgCSAHNgIAIAchCSAQQQFrIhANAAsMAgsgCiACQQFqOwHmAiAKIAJBFGxqIgcgFjYCECAHIBw2AgggByAXNgIUIAcgETYCDCAHIA42AgQgCiACQQxsaiICIA02AuABIAIgDzYC5AEgAiAINgLoASAfQQFqIR8MBQtBkOTIABCdFQALIAovAeYCIgdBC0kEQCAKIAdBAWoiDDsB5gIgCiAHQRRsaiIQIBE2AgwgECAONgIEIBAgFzYCFCAQIBY2AhAgECAcNgIIIAogB0EMbGoiByAPNgLkASAHIAg2AugBIAcgDTYC4AEgCiAMQQJ0aiAJNgLoAiAJIAw7AeQCIAkgCjYCACAaRQRAIAIhDCAfQQFqIR8MBQsCQCAaQQNxIghFBEAgGiEHDAELIBohBwNAIAdBAWshByAKIAovAeYCQQJ0aigC6AIhCiAIQQFrIggNAAsLIBpBBEkEQCACIQwgH0EBaiEfDAULA0AgCiAKLwHmAkECdGooAugCIgggCC8B5gJBAnRqKALoAiIIIAgvAeYCQQJ0aigC6AIiCCAILwHmAkECdGooAugCIQogB0EEayIHDQALIAIhDCAfQQFqIR8MBAtBwPbGAEEgQeD2xgAQrxQACyAHIAlGDQAgByAJa0EFdiEQQQAhCgNAIAkgCkEFdGoiDigCECICKAIAIQcgAiAHQQFrNgIAIAdBAUYEQCAOKAIQEDALIA4oAhghCyAOKAIcIggEQCALIQcDQCAHEN0EIAdBMGohByAIQQFrIggNAAsLIA4oAhQiBwRAIAtBBGsoAgAiAkF4cSEIIAggB0EwbCIHQQRBCCACQQNxIgIbckkNDiACQQBHIAggB0EnaktxDQ0gCxC8BQsgECAKQQFqIgpHDQALCwJAIAYoAugIIgcEQCAGKALgCCIIQQRrKAIAIgJBeHEhCiAKIAdBBXQiB0EEQQggAkEDcSICG3JJDQEgAkEARyAKIAdBJ2pLcQ0MIAgQvAULAkACQCAGKALACCICQX9GDQAgAkECRg0AIAYoAtAIIgIoAgAhByACIAdBAWs2AgAgB0EBRgRAIAYoAtAIEDALIAYoAtgIIQIgBigC3AgiCARAIAIhBwNAIAcQ3QQgB0EwaiEHIAhBAWsiCA0ACwsgBigC1AgiCEUNACACQQRrKAIAIgdBeHEhCiAKIAhBMGwiCEEEQQggB0EDcSIHG3JJDQEgB0EARyAKIAhBJ2pLcQ0NIAIQvAULIB1FBEBBACEdDAgLIAwhCCAdIQoDQAJAAkAgCC8B5gIiAgRAIAggAkEBayIPQQJ0aiIHKALsAiICLwHmAiITQQVPDQJBBSATa0H//wNxIg0gBygC6AIiFy8B5gIiEEsNASAXIBAgDWsiCTsB5gIgAkEFOwHmAiACQQRqIRwgE0EUbCIHBEAgHCANQRRsaiAcIAf8CgAACyACQeABaiEaIBNBDGwiBwRAIBogDUEMbGogGiAH/AoAAAsgFyAJQRRsaiELIBAgCUEBaiIQayIHQRRsIg4EQCAcIAtBGGogDvwKAAALIBcgCUEMbGohESAHQQxsIgkEQCAaIBFB7AFqIAn8CgAACyAGIBFB6AFqKAIANgKYBCAGIBFB4AFqKQIANwOQBCAGIAggD0EUbGoiBygCFDYC0AggBiAHKQIMNwPICCAGIAcpAgQ3A8AIIAtBFGooAgAhFiALQQxqKQIAISkgByALQQRqKQIANwIEIAcgKTcCDCAHIBY2AhQgBiAIIA9BDGxqIgcoAugBNgIwIAYgBykC4AE3AyggByAGKAKYBDYC6AEgByAGKQOQBDcC4AEgDiAcaiIHIAYpA8AINwIAIAcgBikDyAg3AgggByAGKALQCDYCECAJIBpqIgcgBigCMDYCCCAHIAYpAyg3AgAgCkEBRg0LIA1BAnQhCSACQegCaiEIIBNBAnRBBGoiBwRAIAggCWogCCAH/AoAAAsgCQRAIAggFyAQQQJ0akHoAmogCfwKAAALIAIoAugCIgdBADsB5AIgByACNgIAIAIoAuwCIgdBATsB5AIgByACNgIAIAIoAvACIgdBAjsB5AIgByACNgIAIAIoAvQCIgdBAzsB5AIgByACNgIAIAIoAvgCIgdBBDsB5AIgByACNgIAIAIoAvwCIgdBBTsB5AIgByACNgIADAILQfzzxgBBGUGY9MYAEK8UAAtBqPTGAEEnQdD0xgAQrxQACyACIQggCkEBayIKDQALDAcLDAwLDAsLIBcgFygCACICQQFrNgIAIAJBAUYEQCAXEDALIAgEQCAPIQcDQCAHEN0EIAdBMGohByAIQQFrIggNAAsLIA1FDQAgD0EEaygCACICQXhxIQggCCANQTBsIgdBBEEIIAJBA3EiAhtyTwRAIAJBAEcgCCAHQSdqS3ENAiAPELwFDAELCwwJCwwHCwwJCyAGQQA2AogCIAYgCTYChAIgBiAcNgKAAiAGQYACahCnDQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKALsASIQQX9GIhoNACABKALwASENIAEoAvQBIQcgBkGMB2ogASgCqAEgASgCrAEQ1wkgDSAHQQxsaiEIQX4hCQJAAkAgB0UEQCANIQoMAQsgDUEMaiEKIA0oAgAiAkF/Rg0AIA0oAgghCyANKAIEIRYCQCAHQQFHBEAgDUEYaiEKIA0oAgwiB0F/Rw0BCyAIIAprQQxuIQ8gCCAKRwRAQQAhDgNAIAogDkEMbGoiCSgCCCIIBEAgCSgCBCEHA0AgBxCBBSAHQcgBahCHBCAHQegBaiEHIAhBAWsiCA0ACwsgCSgCACIIBEAgCSgCBCIJQQRrKAIAIgdBeHEhESARIAhB6AFsIghBBEEIIAdBA3EiBxtqSQ0YIAdBAEcgESAIQSdqS3ENFyAJELwFCyAPIA5BAWoiDkcNAAsLIBBFDQIgDUEEaygCACIHQXhxIQogCiAQQQxsIghBBEEIIAdBA3EiBxtqSQ0VIAdBAEcgCiAIQSdqS3ENFCANELwFDAILIAJBfUYEQCAWIQIgCyEWIAchCwwCCyANKQIQISkgAiEJCyAGIAg2AuQIIAYgEDYC4AggBiAKNgLcCCAGIA02AtgIIAYgKTcC0AggBiAHNgLMCCAGIAs2AsgIIAYgFjYCxAggBiAJNgLACEGk4MUAQTogBkHACGpBlODFAEHg4MUAENoSAAsCQAJAAkACQEEMEJABIhIEQCAGKAKUByIOQcz7tARPDQYgBigCkAchDQJAAkAgDkHoAWwiF0UEQEEIIQ9BACERDAELIA4hESAXEJABIg9FDQELIA8hCQJAAkAgDkUNACAGQYgKaiEbIAtB6AFsIRAgFkHoAWshCUEAIQoDQCANIApByAFsaiEcIBAhByAJIQgDQCAHRQ0DIAdB6AFrIQcgHCAIQegBaiIIEJcGRQ0ACyAGQcAIaiITIBwQ8wMgGyAIQcgBahCQAyAPIApB6AFsaiATQegB/AoAACAOIApBAWoiCkcNAAsgDyEHIA5BAXEEQCAbIAcpA+ABNwMYIBsgBykD2AE3AxAgGyAHKQPQATcDCCAbIAcpA8gBNwMAIBMgB0HIAfwKAAAgByATQegB/AoAACAHQegBaiEHCyAPIBdqIQkgDkEBRg0AA0AgGyAHQeABaikDADcDGCAbIAdB2AFqKQMANwMQIBsgB0HQAWopAwA3AwggGyAHQcgBaikDADcDACAGQcAIaiIKIAdByAH8CgAAIAcgCkHoAfwKAAAgGyAHQcgDaikDADcDGCAbIAdBwANqKQMANwMQIBsgB0G4A2opAwA3AwggGyAHQbADaikDADcDACAKIAdB6AFqIghByAH8CgAAIAggCkHoAfwKAAAgCSAHQdADaiIHRw0ACwsgEiAPNgIEIBIgETYCACASIAkgD2tB6AFuNgIIIAsEQCAWIQcDQCAHEPQEIAdByAFqEIgEIAdB6AFqIQcgC0EBayILDQALCwJAIAIEQCAWQQRrKAIAIgdBeHEhCCAIIAJB6AFsIgJBBEEIIAdBA3EiBxtqSQ0BIAdBAEcgCCACQSdqS3ENGiAWELwFCyAGIBIoAgg2ApgFIAYgEikCADcDkAUgEkEEaygCACICQXhxIQcgB0EQQRQgAkEDcSICG08EQCACQQBHIAdBNE9xRQRAIBIQvAUgBkGQBGogJBCYESAGKAKYBCIHQYuujwVPDQsgBigClAQhAiAGKAKQBCEPQQAhCQJAAkAgB0HIAWwiCEUEQEEIIRZBACEXDAELIAchFyAIEJABIhZFDQELAkAgB0UNACAHQRRsQRRrIgpBFG4hByACIQggCkEUTwRAIAdBAWoiB0EBcSAHQf7///8BcSELIBYhBwNAIAgoAhAhCiAIKQIIISkgCCkCACEoIAdCAjcDACAHQQhqICg3AgAgB0EQaiApNwIAIAdBGGogCjYCACAIQSRqKAIAIQogCEEcaikCACEpIAhBFGopAgAhKCAHQcgBakICNwMAIAdB0AFqICg3AgAgB0HYAWogKTcCACAHQeABaiAKNgIAIAhBKGohCCAHQZADaiEHIAsgCUECaiIJRw0AC0UNAQsgCCgCECEHIAgpAgghKSAIKQIAISggFiAJQcgBbGoiCEICNwMAIAggKDcCCCAIICk3AhAgCCAHNgIYIAlBAWohCQsCQCAPBEAgAkEEaygCACIHQXhxIQogCiAPQRRsIghBBEEIIAdBA3EiBxtqSQ0BIAdBAEcgCiAIQSdqS3ENHiACELwFCyAGIAk2ArADIAYgFjYCrAMgBiAXNgKoAyAGQcAIaiAWIAkgBkGQBWoQ7gMCQCAGKALACCICQX9HBEAgACAGQcwIaiIDKQIANwIUIAAgAykCCDcCHCAAIAMpAhA3AiQgBikCxAghKCAAQYSAgIB4NgI4IAAgKDcCDCAAIAI2AgggAEJ/NwMAIAZBqANqEOgEIBcEQCAWQQRrKAIAIgBBeHEhAyADIBdByAFsIgJBBEEIIABBA3EiABtqSQ0CIABBAEcgAyACQSdqS3ENICAWELwFCyAGQYwHahDoBCAGKAKMByICBEAgDUEEaygCACIAQXhxIQMgAyACQcgBbCICQQRBCCAAQQNxIgAbakkNISAAQQBHIAMgAkEnaktxDSAgDRC8BQsgGSAZKAIAIgBBAWs2AgAgAEEBRgRAIBkQMAsCfyAMRQRAQQAhH0EADAELIAYgHTYC3AggBiAMNgLYCCAGQQA2AtQIIAYgHTYCzAggBiAMNgLICCAGQQA2AsQIQQELIQAgBiAfNgLgCCAGIAA2AtAIIAYgADYCwAgDQCAGQShqIAZBwAhqEOYFIAYoAigiBUUNCyAFIAYoAjAiA0EUbGoiAigCFCIAKAIAIQQgACAEQQFrNgIAIAUgA0EMbGpB4AFqIQMgBEEBRgRAIAIoAhQQMAsgAygCBCEAIAMoAggiCARAIAAhBwNAIAcQ3gQgB0EwaiEHIAhBAWsiCA0ACwsgAygCACIDRQ0AIABBBGsoAgAiAkF4cSEEIAQgA0EwbCIDQQRBCCACQQNxIgIbckkNISACQQBHIAQgA0EnaktxDSAgABC8BQwACwALIAYoAsgIIhwgBigCzAgiAkHoAWxqISUgBigCxAghJiACRQRAIBwhAgwMCyAGQaAEaiEjIAZBqAdqISAgBkEwaiEnIBwhBwNAIAcpAwAhKCAGQcAIaiIIIAdBCGpB4AH8CgAAIAdB6AFqIQIgKEJ/UQ0MIAYgKDcDKCAnIAhBwAH8CgAAIAYgBykD4AE3A5gCIAYgBykD2AE3A5ACIAYgBykD0AE3A4gCIAYgBykDyAE3A4ACAkAgKEICUgRAIAZBgAJqEIcEDAELIAYgB0HIAWoiCCkDGDcDqAQgBiAIKQMQNwOgBCAGIAgpAwg3A5gEIAYgCCkDACIoNwOQBCAop0EaRwRAIAZBkARqEIYEDA0LIAYoApQEIhtBf0YNDCAHKQLQASEpIAcpAtgBISggBigCNCETIAYoAjghECAGKAI8IQkgBigCMCEUIAYoAkAiGCgCACEHIBggB0EBajYCACAGICg3A/ACIAYgKTcD6AIgB0EASA0fIAYgBikD8AI3A9gDIAYgBikD6AI3A9ADAkACQAJAAkACQAJAAkACQAJAAkAgDARAIB0hESAMIQ4CQAJAAkAgFEEBcQRAA0AgDi8B5gIiCkEUbCENQX8hB0EAIQgCQANAIAggDUYEQCAKIQcMAgsCQCAIIA5qIhJBBGooAgAiCyAURwRAIBQgC2shDwwBCyASQQxqKAIAIgsgEEkgCyAQS2sgEkEIaigCACILIBNJIAsgE0trIAsgE0YbIg9B/wFxDQAgEkEQaigCACILIAlJIAkgC0lrIQ8LIAhBFGohCCAHQQFqIQcgD0H/AXEiC0EBRg0ACyALRQ0ECyARRQ0CIBFBAWshESAOIAdBAnRqKALoAiEODAALAAsDQCAOLwHmAiIKQRRsIQ1BfyEHQQAhCAJAA0AgCCANRgRAIAohBwwCCwJ/IAggDmoiD0EEaigCACILIBRHBEAgFCALawwBCyAPQQhqKAIAIgsgE0kgCyATS2sLIAhBFGohCCAHQQFqIQdB/wFxIgtBAUYNAAsgC0UNAwsgEUUNASARQQFrIREgDiAHQQJ0aigC6AIhDgwACwALIA4hCCAUQQJHDQEMCwsgGCAYKAIAIghBAWs2AgAgCEEBRw0LIBgQMAwLCwJAAkACQCAKQQtPBEAgBkGgBmohD0EEIQ4gB0EFSQ0DIAchDiAHQQVrDgIDAgELIAhBBGoiDiAHQRRsaiERAkAgB0EBaiIPIApLBEAgESAYNgIQIBEgCTYCDCARIBA2AgggESATNgIEIBEgFDYCAAwBCyAKIAdrIg1BFGwiCwRAIA4gD0EUbGogESAL/AoAAAsgESAYNgIQIBEgCTYCDCARIBA2AgggESATNgIEIBEgFDYCACANQQxsIgtFDQAgCEHgAWoiCSAPQQxsaiAJIAdBDGxqIAv8CgAACyAIIAdBDGxqIglCgICAgIABNwLgASAJQQA2AugBIAggCkEBajsB5gIgCCEODAkLIAdBB2shByAGQfQBaiEPQQYhDgwBC0EAIQcgBkH0AWohD0EFIQ4LQegCEJABIgtFDS4gC0EANgIAIAsgCC8B5gIgDkF/c2oiHjsB5gIgHkEMTw0BIAhBBGogDkEUbGoiEigCACEKIB5BFGwiDQRAIAtBBGogEkEUaiAN/AoAAAsgCCAOQQxsaiERIB5BDGwiDQRAIAtB4AFqIBFB7AFqIA38CgAACyAIIA47AeYCIAYgEikCBCIpNwOQBCAGIBIpAgwiKDcDmAQgIyARQeABaikCADcCACAjIBFB6AFqKAIANgIIIAYgCDYCoAYgBiApNwPoByAGICg3A/AHIAYgBikDoAQ3A/gHIAYgBigCqAQ2AoAIIAYgCzYC9AEgDygCACIOQQRqIAdBFGxqIRICQCAOLwHmAiINIAdNBEAgEiAYNgIQIBIgCTYCDCASIBA2AgggEiATNgIEIBIgFDYCAAwBCyANIAdrIhFBFGwiDwRAIBJBFGogEiAP/AoAAAsgEiAYNgIQIBIgCTYCDCASIBA2AgggEiATNgIEIBIgFDYCACARQQxsIg9FDQAgDiAHQQxsaiIJQewBaiAJQeABaiAP/AoAAAsgDiAHQQxsaiIJQoCAgICAATcC4AEgCUEANgLoASAOIA1BAWo7AeYCIAYgBikD6Ac3A8gGIAYgBikD8Ac3A9AGIAYgBikD+Ac3A9gGIAYgBigCgAg2AuAGIApBAkYNBiAGIAYoAuAGNgKwByAGIAYpA9gGNwOoByAGIAYpA9AGNwOgByAGIAYpA8gGNwOYByAIKAIAIglFBEBBACEhDAYLQQAhISALIQ8gCiERA0AgCC8B5AIhCAJAAkAgCSIQLwHmAiIUQQtPBEAgBkH0AWohFSAIQQVPDQEgCCENQQQhCAwCCyAQQQRqIgsgCEEUbGohEyAIQQFqIQkCQCAIIBRPBEAgEyAGKQOYBzcCBCATIBE2AgAgEyAGKQOgBzcCDCAQIAhBDGxqIgogICkCADcC4AEgCiAgKAIINgLoAQwBCyAUIAhrIg1BFGwiCgRAIAsgCUEUbGogEyAK/AoAAAsgEyARNgIAIBMgBikDmAc3AgQgEyAGKQOgBzcCDCAQQeABaiILIAhBDGxqIREgDUEMbCIKBEAgCyAJQQxsaiARIAr8CgAACyARICAoAgg2AgggESAgKQIANwIAIA1BAnQiC0UNACAQQegCaiIKIAhBAnRqQQhqIAogCUECdGogC/wKAAALIBAgFEEBajsB5gIgECAJQQJ0aiAPNgLoAiAUQQJqIg0gCU0NCSAUIAhrIg9BAWpBA3EiCgRAIBAgCEECdGpB7AJqIQgDQCAIKAIAIgsgCTsB5AIgCyAQNgIAIAhBBGohCCAJQQFqIQkgCkEBayIKDQALCyAPQQNJDQkgECAJQQJ0akH0AmohCANAIAhBDGsoAgAiCiAJOwHkAiAKIBA2AgAgCEEIaygCACIKIAlBAWo7AeQCIAogEDYCACAIQQRrKAIAIgogCUECajsB5AIgCiAQNgIAIAgoAgAiCiAJQQNqOwHkAiAKIBA2AgAgCEEQaiEIIA0gCUEEaiIJRw0ACwwJCyAIIQ0CQAJAIAhBBWsOAgIBAAsgCEEHayENIAZBrApqIRVBBiEIDAELQQAhDSAGQawKaiEVQQUhCAtBmAMQkAEiC0UNLyALQQA2AgAgCyAQLwHmAiAIQX9zaiIYOwHmAiAGIBBBBGoiEiAIQRRsaiIKKQIENwPoByAGIAopAgw3A/AHIAooAgAhCiAGIBBB4AFqIhMgCEEMbGoiCSgCCDYCqAYgBiAJKQIANwOgBiAYQQxPDQMgCEEBaiEeIBhBFGwiCQRAIAtBBGogEiAeQRRsaiAJ/AoAAAsgGEEMbCIJBEAgC0HgAWogEyAeQQxsaiAJ/AoAAAsgECAIOwHmAiAjIAYpA6AGNwIAICMgBigCqAY2AgggBiAGKQPoBzcDkAQgBiAGKQPwBzcDmAQgCy8B5gIiEkEBaiEJIBJBC0sNBSAUIAhrIAlHDQQgC0HoAmohEyAJQQJ0IgkEQCATIBAgCEECdGpB7AJqIAn8CgAACyAhQQFqISFBACEIA0ACQCATIAhBAnRqKAIAIgkgCDsB5AIgCSALNgIAIAggEk8NACASIAggCCASSWoiCE8NAQsLIAYgEDYC9AEgBiAGKQOQBDcD6AcgBiAGKQOYBDcD8AcgBiAGKQOgBDcD+AcgBiAGKAKoBDYCgAggBiALNgKsCiAVKAIAIhVBBGoiEiANQRRsaiEUIA1BAWohCCAVLwHmAiIYQQFqIRMCQCANIBhPBEAgFCAGKQOYBzcCBCAUIBE2AgAgFCAGKQOgBzcCDCAVIA1BDGxqIgkgICkCADcC4AEgCSAgKAIINgLoAQwBCyAYIA1rIh5BFGwiCQRAIBIgCEEUbGogFCAJ/AoAAAsgFCARNgIAIBQgBikDmAc3AgQgFCAGKQOgBzcCDCAVQeABaiIRIA1BDGxqIRIgHkEMbCIJBEAgESAIQQxsaiASIAn8CgAACyASICAoAgg2AgggEiAgKQIANwIAIB5BAnQiEUUNACAVQegCaiIJIA1BAnRqQQhqIAkgCEECdGogEfwKAAALIBUgEzsB5gIgFSAIQQJ0aiAPNgLoAgJAIBhBAmoiEyAITQ0AIBggDWsiEUEBakEDcSIPBEAgFSANQQJ0akHsAmohCQNAIAkoAgAiDSAIOwHkAiANIBU2AgAgCUEEaiEJIAhBAWohCCAPQQFrIg8NAAsLIBFBA0kNACAVIAhBAnRqQfQCaiEJA0AgCUEMaygCACIPIAg7AeQCIA8gFTYCACAJQQhrKAIAIg8gCEEBajsB5AIgDyAVNgIAIAlBBGsoAgAiDyAIQQJqOwHkAiAPIBU2AgAgCSgCACIPIAhBA2o7AeQCIA8gFTYCACAJQRBqIQkgEyAIQQRqIghHDQALCyAGIAYoAoAINgLgBiAGIAYpA/gHNwPYBiAGIAYpA/AHNwPQBiAGIAYpA+gHNwPIBiAKQQJGDQcgBiAGKALgBjYCsAcgBiAGKQPYBjcDqAcgBiAGKQPQBjcDoAcgBiAGKQPIBjcDmAcgCyEPIAohESAQIggoAgAiCQ0ACwwFCyAUQQJGDQhB6AIQkAEiDEUNLSAMQQE7AeYCQQAhHSAMQQA2AgAgDEEANgLoASAMQoCAgICAATcC4AEgDCAYNgIUIAwgCTYCECAMIBA2AgwgDCATNgIIIAwgFDYCBEEAIQcgDCEODAULQQAgHkELQcD/yAAQhw4AC0EAIBhBC0HA/8gAEIcOAAtBmPXIAEEoQcD1yAAQrxQAC0EAIAlBDEHo5MgAEIcOAAtBmAMQkAEiCUUNKCAJIAw2AugCIAlBADsB5gIgCUEANgIAIB1BAWoiCEUNASAMQQA7AeQCIAwgCTYCACAdICFHDQIgCSAKNgIEIAlBATsB5gIgCSAGKQOYBzcCCCAJIAYpA6AHNwIQIAkgCzYC7AIgCSAgKQIANwLgASAJICAoAgg2AugBIAtBATsB5AIgCyAJNgIAIAghHSAJIQwLIB9BAWohHwwDC0GQ5MgAEJ0VAAtB/IDJAEEwQayByQAQrxQACyATIQ4gCSEHCyAOIAdBDGxqIgdB4AFqIQggBygC6AEiEyAHKALgAUYEQCMAQRBrIhgkACAYQQhqIQ8gCCIKKAIAIR5BACEUIwBBEGsiFSQAIAgoAgQhDkEBIREgFUEEaiILAn9BBEEEIB5BAWoiCSAeQQF0IgcgByAJSRsiByAHQQRNGyIJQarVqhVLDQAaIAlBMGwhFAJAAn8gHgRAIA4gHkEwbEEIIBQQrQYMAQsgFEUEQEEIIQcMAgsgFBCQAQsiBw0AIAtBCDYCBEEIDAELIAsgBzYCBEEAIRFBCAtqIBQ2AgAgCyARNgIAAn8gFSgCBARAIBUoAgwhCiAVKAIIDAELIBUoAgghByAKIAk2AgAgCiAHNgIEQX8LIQcgDyAKNgIEIA8gBzYCACAVQRBqJAAgGCgCCCIHQX9HBEAgGCgCDBogBxCnFAALIBhBEGokAAsgCCgCBCATQTBsaiIHIBs2AgggB0ECNgIEIAdBDDoAACAHIAYpA9ADNwIMIAcgBikD2AM3AhQgCCATQQFqNgIICyAGQShqEIEFICUgAiIHRw0ACwwMCwweCwwdC0EIEKcUAAsMGgsMGgsMGQtBiOvGAEE/QcjrxgAQwBMAC0EIEKcUAAsMFwtBACEaQQEhCUEBDBELQdzfxQBBJkGE4MUAEMATAAsgJSACa0HoAW4hByACICVGDQADQCACEIEFIAJByAFqEIcEIAJB6AFqIQIgB0EBayIHDQALCyAmBEAgHEEEaygCACICQXhxIQggCCAmQegBbCIHQQRBCCACQQNxIgIbakkNEyACQQBHIAggB0EnaktxDRIgHBC8BQsgBkGoA2oQ6AQgFwRAIBZBBGsoAgAiAkF4cSEIIAggF0HIAWwiB0EEQQggAkEDcSICG2pJDRMgAkEARyAIIAdBJ2pLcQ0SIBYQvAULIAZBjAdqEOgEIAYoAowHIgdFDQAgBigCkAciCEEEaygCACICQXhxIQogCiAHQcgBbCIHQQRBCCACQQNxIgIbakkNEiACQQBHIAogB0EnaktxRQRAIAgQvAUMAQsMEQsgBkHACGoiAiABKALAASABKALEARDuDSAGQfQBaiACEIsEAkACQAJAAkACQCABKQMQIihCA1ENACABKQMApw0AIAEoAnxBf0YNAQsgAw0BIAEoAogBQX9HIQlBASEKDAMLIAEoAogBIgJBf0chCUEAIQogA0UNAiACQX9GDQIMAQsgARCyASEKIAEoAogBQX9HDQBBACEJDAELIAEoApQBIgJBgANqKAIAIgMEfyACQfwCaigCACECIANBA3EhCEEAIQlCACEpAkAgA0EETwRAIANBfHEhAyACIQcDQCAHQQhqKQMAQgAgBygCABsgKYQgB0GYAWopAwBCACAHQZABaigCABuEIAdBqAJqKQMAQgAgB0GgAmooAgAbhCAHQbgDaikDAEIAIAdBsANqKAIAG4QhKSAHQcAEaiEHIAMgCUEEaiIJRw0ACyAIRQ0BCyACIAlBkAFsaiEHA0AgB0EIaikDAEIAIAcoAgAbICmEISkgB0GQAWohByAIQQFrIggNAAsLIClCgICAgAGDUAVBAQsgASgCeEEAR3IhCQtBACEHAkACQAJAICinQQJrDgIAAQILQQEhBwwBCyABKQMYQj+IpyEHC0ICISkgCgRAIAZBwAhqIAEQrgMgBiAGKQPICDcDKCAGIAYpA9AINwMwIAYgBikD2Ag3AzggBiAGKQPgCDcDQCAGIAYpA+gINwNIIAYgBikD8Ag3A1AgBiAGKQP4CDcDWCAGKQPACCEpC0F/IQgCQAJAAn8CQAJAAkACQCAJBEAgASgCiAEhAyABQX82AogBIANBf0YNASABKQKMASEoIAYgAzYCwAggBiAoNwLECCAGQZAEaiAopyIKIAogKEIgiKdByAFsahCiDiAGQcAIahDoBCADBEAgCkEEaygCACICQXhxIQggCCADQcgBbCIDQQRBCCACQQNxIgIbakkNGiACQQBHIAggA0EnaktxDRkgChC8BQsgBikClAQhKCAGKAKQBCEICyAGIAYpA1g3A7gCIAYgBikDUDcDsAIgBiAGKQNINwOoAiAGIAYpA0A3A6ACIAYgBikDODcDmAIgBiAGKQMwNwOQAiAGIAYpAyg3A4gCIAYgBzoA5AIgBiAoNwLEAiAGIAg2AsACIAYgKTcDgAIgBkEANgLgAiAGQQA2AtgCIAZBfzYCzAIgBkEgaiABKAKoASABKAKsARDODiAGKAIgIgcgBigCJBCIDiAHIAcoAgAiA0EBazYCAEUEQCADQQFGBEAgBxAwCyAGIAEpAwA3A5AFIAYgASkDCDcDmAUgBiABKQMQNwOgBSAGIAEpAxg3A6gFIAYgAS8AITsBjAUgBiABLQAjOgCOBSABKQIkISggASgCLCEDIAEtACAhAiAGQZAEaiABQTBqQfgA/AoAACAFKAIMIQogBiACOgAoIAYgAzYCNCAGICg3AiwgBiABLwAhOwApIAYgAS0AIzoAKyAGIAEpAzA3AzggBiABKQM4NwNAIAYgASkDQDcDSCAGIAEpA0g3A1AgBiABKQNQNwNYIAYgASkDWDcDYCAGIAEpA2A3A2ggBiABKQNoNwNwIAZBAjYCwAEgBkECNgKcAUEAIQcgBiAfQQAgDBs2ApgBIAYgHTYClAEgBiAMNgKQASAGQQA2AowBIAYgDEEARyICNgKIASAGIB02AoQBIAYgDDYCgAEgBkEANgJ8IAYgAjYCeCAGQZgHaiAGQShqEOUDIAYtAJgHQf8BRwRAIAYoAnghBwJ/IAYtACgiA0H+AUcEQCAHQX9GDQUgBigCwAFBAkcEfyAGKALgASAGKALYAWtBMG4FQQALIAYoApwBQQJHBH8gBigCvAEgBigCtAFrQTBuBUEACyADQf8BR2pqIgghCSAGQegHagwBCyAHQX9GDQQgBigCnAFBAkcEfyAGKAK8ASAGKAK0AWtBMG4FQQALIAYoAsABQQJHBH8gBigC4AEgBigC2AFrQTBuBUEAC2ohCCAGKAKYAUUgB0ECRnIhCSAGQcAIagsgCTYCACAIQZmz5gxPDQlBAyAIIAhBA00bQQFqIghB0ABsIQcMBQsgBkEoahDJB0EIIQlBAAwFCyADQQFGBEAgBxAwCyAGIB82AvgHIAYgHTYC9AcgBiAMNgLwByAGICI2AuwHIAYgGTYC6AcgBkHACGoiAiABQagB/AoAACAGQShqIAQgBkHoB2ogAiAGQfQBaiAFKAIQEQYAIAYoAjAhCiAGKAIsIQwgBigCKCIIQX9HBEAgBiAGKQI8NwOQBCAGIAYpAkQ3A5gEIAYgBikCTDcDoAQgBiAGKQJUNwOoBCAGKAI0IQcgBigCOCEDIAYoAlwhAiAGKQJgIShBDCEOQQwQkAEiEA0DDBsLIABCgICAgLCBgICAfzcCNCAAIAo2AgwgACAMNgIIIABCfzcDAAwGC0HA5MUAEJ0VAAtBwAIhB0EEIQgMAQsgECAKNgIIIBAgDDYCBCAQIAg2AgAgBiAGKQOQBDcDwAUgBiAGKQOYBDcDyAUgBiAGKQOgBDcD0AUgBiAGKQOoBDcD2AUgBiAoNwLkBSAGIAI2AuAFIAYgAzYCvAUgBiAHNgK4BSAGQgg3A7AFQQEhDUEAISEMAgsgBxCQASIJRQ0EIAkgBkGYB2pB0AD8CgAAIAZBATYClAcgBiAJNgKQByAGIAg2AowHIAZBwAhqIAZBKGpBwAH8CgAAQdAAIQhBASEHA0AgBkHoB2ogBkHACGoQ5QMgBi0A6AdB/wFHBEAgBigCjAcgB0YEQCAGKAKQCSEMAn8gBi0AwAgiAkH+AUcEQCACQf8BRyEJIAZBvAhqIQsgDEF/RwRAIAYoAtgJQQJHBH8gBigC+AkgBigC8AlrQTBuBUEACyAGKAK0CUECRwR/IAYoAtQJIAYoAswJa0EwbgVBAAsgCWpqIQkLIAkMAQsgDEF/RgRAIAZBvAhqIQtBACEJQQAMAQsgBigCtAlBAkcEfyAGKALUCSAGKALMCWtBMG4FQQALIAYoAtgJQQJHBH8gBigC+AkgBigC8AlrQTBuBUEAC2ohCSAGQawKaiELIAYoArAJRSAMQQJGcgshAiALIAI2AgAgBkGMB2ogByAJQQFqQQhB0AAQsxEgBigCkAchCQsgCCAJaiAGQegHakHQAPwKAAAgBiAHQQFqIgc2ApQHIAhB0ABqIQgMAQsLIAZBwAhqEMkHIAYoAowHCyEIIBkoAhwiAiAiTQ0EIBkoAhggIkHwAGxqIgIoAmghDCACKAJkIQMgGSAZKAIAIgJBAWo2AgAgAkEASA0RIAYgDDYCoAcgBiADNgKcByAGIBk2ApgHIAYgBikDqAU3A9gIIAYgBikDoAU3A9AIIAYgBikDmAU3A8gIIAYgBikDkAU3A8AIIAZBADoA4AggBiAGLwGMBTsA4QggBiAGLQCOBToA4wggBiAHNgLsCCAGIAk2AugIIAYgCDYC5AggBkHwCGogBkGQBGpB+AD8CgAAIAZBKGogBCAKIAZBmAdqIAZBwAhqIAZB9AFqQQEQwQYgBiAGKQMwNwPoByAGIAYpAzg3A/AHIAYgBikDQDcD+AcgBiAGKQNINwOACCAGIAYpA1A3A4gIIAYgBikDWDcDkAggBiAGKQNgNwOYCCAGIAYpA2g3A6AIAkACQAJAAkAgBikDKCIoQn9RBEAgGSAZKAIAIgJBAWs2AgAgBiAGKQPoBzcD0AMgBiAGKQPwBzcD2AMgBiAGKQP4BzcD4AMgBiAGKQOACDcD6AMgBiAGKQOICDcD8AMgBiAGKQOQCDcD+AMgBiAGKQOYCDcDgAQgBiAGKQOgCDcDiAQgAkEBRgRAIBkQMAsgGSAZKAIAIgdBAWs2AgAgB0EBRw0DDAELIAYgBikDkAE3A8AGIAYgBikDiAE3A7gGIAYgBikDgAE3A7AGIAYgBikDeDcDqAYgBiAGKQNwNwOgBiAZIBkoAgAiAkEBazYCACAGIAYpA+gHNwPIBiAGIAYpA/AHNwPQBiAGIAYpA/gHNwPYBiAGIAYpA4AINwPgBiAGIAYpA4gINwPoBiAGIAYpA5AINwPwBiAGIAYpA5gINwP4BiAGIAYpA6AINwOAByACQQFGBEAgGRAwCyAGQRhqIBkgIhDhCSAGQShqIAYoAhgiCyAGKAIcEPEEIAYoAiwhAwJAIAYoAjAiDUUEQEEEIRAMAQsgDUEMbBCQASIQRQ0ZIAZBxAhqIQwgAyEHIBAhCSANIQ8DQCAHQQRqIQICfyAHKAIAQQFGBEAgDCACKAIINgIIIAwgAikCADcCACAGIAdBEGooAgBBCGo2AsAIIAZBCGogBkHACGoQ6gkgBigCDCEIIAYoAggMAQsgAigCACIIIAdBEGooAgAiCigCECICTw0MIAooAgwgCEHkAGxqIgIoAgAEQCACKAIEIgIgCigCcE8NDiAKKAJsIAJBBHRqIgIoAgghCCACKAIEDAELIAZBEGogCkEIaiAIENAQIAYoAhQhCCAGKAIQCyECIAhBAEgNCAJAIAhFBEBBASEVDAELIAgQkAEiFUUNDiAIRQ0AIBUgAiAI/AoAAAsgCSAINgIAIAlBCGogCDYCACAJQQRqIBU2AgAgB0EUaiEHIAlBDGohCSAPQQFrIg8NAAsLIBlBCGogIhD3ECAGIAYpA8gGNwPQAyAGIAYpA9AGNwPYAyAGIAYpA9gGNwPgAyAGIAYpA+AGNwPoAyAGIAYpA+gGNwPwAyAGIAYpA/AGNwP4AyAGIAYpA/gGNwOABCAGIAYpA4AHNwOIBCAGIAYpA6AGNwOoAyAGIAYpA6gGNwOwAyAGIAYpA7AGNwO4AyAGIAYpA7gGNwPAAyAGIAYpA8AGNwPIAy0AWCANBEAgA0EQaiEHIA0hCANAIAcoAgAiAigCACEKIAIgCkEBazYCACAKQQFGBEAgBygCABAwCyAHQRRqIQcgCEEBayIIDQALCyAGKAIoIgIEQCADIAJBFGwQ2RILIAsgCygCACICQQFrNgIAIAJBAUYEQCALEDALQQJHIQcgGSAZKAIAIghBAWs2AgAgCEEBRw0BCyAZEDALIChCf1INAQsgBiAGKQOIBDcDoAMgBiAGKQOABCIqNwOYAyAGIAYpA/gDIis3A5ADIAYgBikD8AMiLDcDiAMgBiAGKQPoAyItNwOAAyAGIAYpA+ADIi43A/gCIAYgBikD2AMiKTcD8AIgBiAGKQPQAyIoNwPoAiAAICo3AzggACArNwMwIAAgLDcDKCAAIC03AyAgACAuNwMYIAAgKTcDECAAICg3AwggAEJ/NwMAIAAgBikDoAM3A0AMAgsgBiAGKQOIBDcDoAMgBiAGKQOABDcDmAMgBiAGKQP4AzcDkAMgBiAGKQPwAzcDiAMgBiAGKQPoAzcDgAMgBiAGKQPgAzcD+AIgBiAGKQPYAzcD8AIgBiAGKQPQAzcD6AIgBiAGKQOoAzcD+AUgBiAGKQOwAzcDgAYgBiAGKQO4AzcDiAYgBiAGKQPAAzcDkAYgBiAGKQPIAzcDmAYgBiAoNwOwBSAGIAYpA+gCNwO4BSAGIAYpA/ACNwPABSAGIAYpA/gCNwPIBSAGIAYpA4ADNwPQBSAGIAYpA4gDNwPYBSAGIAYpA5ADNwPgBSAGIAYpA5gDNwPoBSAGIAYpA6ADNwPwBSAHQf8BcSEhIA1FDQggDUEMbCEOCyAOEJABIg9FDRMgDUEMbCEDQQAhFkEAIQggECEJIA0hCwNAIAMgCEYNCgJAIAlBCGooAgAiB0UEQEEBIQoMAQsgCUEEaigCACECIAcQkAEiCkUNCiAHRQ0AIAogAiAH/AoAAAsgCUEMaiEJIAggD2oiAiAHNgIAIAJBCGogBzYCACACQQRqIAo2AgAgCEEMaiEIIAtBAWsiCw0ACwwJCwJAIAYpA4ACQgJRDQAgBigCoAJFDQAgBkGgAmoQoAwLAkAgBigCwAIiDEF/Rg0AIAYoAsQCIQAgBigCyAIiCARAIAAhBwNAIAcoAgAiBQRAIAdBBGooAgAiA0EEaygCACICQXhxIQQgBEEEQQggAkEDcSICGyAFakkNFSACQQBHIAQgBUEnaktxDRQgAxC8BQsgB0EMaiEHIAhBAWsiCA0ACwsgDEUNACAAQQRrKAIAIgJBeHEhBCAEIAxBDGwiA0EEQQggAkEDcSICG2pJDRIgAkEARyAEIANBJ2pLcQ0RIAAQvAULAn8gBigC2AIiAkUEQEEAIQhBAAwBCyAGIAYoAtwCIgA2AtwIIAYgAjYC2AggBkEANgLUCCAGIAA2AswIIAYgAjYCyAggBkEANgLECCAGKALgAiEIQQELIQAgBiAINgLgCCAGIAA2AtAIIAYgADYCwAggBkHACGoQmQUgBigCzAIiDUF/RgRAQQEhCQwLCyAGKALQAiEQIAYoAtQCIggEQCAQIQcDQCAHKAIAIgQEQCAHQQRqKAIAIgJBBGsoAgAiAEF4cSEDIANBBEEIIABBA3EiABsgBGpJDRQgAEEARyADIARBJ2pLcQ0TIAIQvAULIAdBDGohByAIQQFrIggNAAsLQQEhCSANDQkMCgsQnhUAC0EIEKcUAAsgIiACQeT+yAAQhRMACyAIIAJB5PbIABCFEwALQaS4xAAQnRUAC0EBEKcUAAtBBCEPQQAhDUEBIRYMAQtBARCnFAALAkAgBigCzAIiC0F/Rg0AIAYoAtACIQIgBigC1AIiCARAIAIhBwNAIAcoAgAiCQRAIAdBBGooAgAiDEEEaygCACIDQXhxIQogCkEEQQggA0EDcSIDGyAJakkNDCADQQBHIAogCUEnaktxDQsgDBC8BQsgB0EMaiEHIAhBAWsiCA0ACwsgC0UNACACQQRrKAIAIgNBeHEhCCAIIAtBDGwiB0EEQQggA0EDcSIDG2pJDQkgA0EARyAIIAdBJ2pLcQ0IIAIQvAULIAYgDTYC1AIgBiAPNgLQAiAGIA02AswCAkACQAJAIAYpA4ACQgJSDQAgBigCwAJBf0cNACAGLQDkAkEBcQ0AIAYoAuACRQ0BC0HwABCQASIHRQ0MIAcgBkGwBWpB8AD8CgAAIAZBwAhqIAZBgAJqQegA/AoAAAwBCyAGQcAIaiAGQbAFakHoAPwKAAAgBigCnAYhCCAGKAKYBiEHIAZBgAJqEIUICyAGQbAFaiIDIAZBwAhqIgJB6AD8CgAAIAYgCDYCnAYgBiAHNgKYBiABQcgBaiEMAkACQAJAIAEoAtABIgcEQCAGIAwoAgg2ApgEIAYgDCkCADcDkAQgAiADIAZBkARqIAQgBRBbIAYgBikDyAg3AyggBiAGKQPQCDcDMCAGIAYpA9gINwM4IAYgBikD4Ag3A0AgBiAGKQPoCDcDSCAGIAYpA/AINwNQIAYgBikD+Ag3A1ggBiAGKQOACTcDYCAGKQPACCIoQn9RDQEgBiAGKQOoCTcDmAYgBiAGKQOgCTcDkAYgBiAGKQOYCTcDiAYgBiAGKQOQCTcDgAYgBiAGKQOICTcD+AUgBiAoNwOwBSAGIAYpAyg3A7gFIAYgBikDMDcDwAUgBiAGKQM4NwPIBSAGIAYpA0A3A9AFIAYgBikDSDcD2AUgBiAGKQNQNwPgBSAGIAYpA1g3A+gFIAYgBikDYDcD8AULIAAgBkGwBWpB8AD8CgAAIAAgITYCfCAAIA02AnggACAQNgJ0IAAgDTYCcCAGQfQBahDoBCAGKAL0ASICBEAgBigC+AEiA0EEaygCACIAQXhxIQQgBCACQcgBbCICQQRBCCAAQQNxIgAbakkNDCAAQQBHIAQgAkEnaktxDQsgAxC8BQsgASgCsAEiBARAIAEoArQBIgJBBGsoAgAiAEF4cSEDIANBBEEIIABBA3EiABsgBGpJDQwgAEEARyADIARBJ2pLcQ0LIAIQvAULAkAgASgC4AEiBEF/Rg0AIARFDQAgASgC5AEiAkEEaygCACIAQXhxIQMgA0EEQQggAEEDcSIAGyAEakkNDCAAQQBHIAMgBEEnaktxDQsgAhC8BQsgAUG8AWohAyAkKAIAIgAoAgAhAiAAIAJBAWs2AgAgAkEBRgRAICQoAgAQMAsgAxDoBCADKAIAIgIEQCABKALAASIDQQRrKAIAIgBBeHEhBCAEIAJByAFsIgJBBEEIIABBA3EiABtqSQ0MIABBAEcgBCACQSdqS3ENCyADELwFCyAHRQ0BDAULIAAgBikDYDcDQCAAIAYpA1g3AzggACAGKQNQNwMwIAAgBikDSDcDKCAAIAYpA0A3AyAgACAGKQM4NwMYIAAgBikDMDcDECAAIAYpAyg3AwggAEJ/NwMAIBYNASAQIQcgDSEIA0AgBygCACIEBEAgB0EEaigCACICQQRrKAIAIgBBeHEhAyADQQRBCCAAQQNxIgAbIARqSQ0MIABBAEcgAyAEQSdqS3ENCyACELwFCyAHQQxqIQcgCEEBayIIDQALQQAhCQwCCyABKALMASEAIAEoAtABIggEQCAAIQcDQCAHEJoBIAdBwAJqIQcgCEEBayIIDQALCyAMKAIAIgJFDQMgACACQcACbBDZEgwDC0EAIQkgDUUNAQsgEEEEaygCACIAQXhxIQMgAyANQQxsIgJBBEEIIABBA3EiABtqSQ0HIABBAEcgAyACQSdqS3ENBiAQELwFCyAGQfQBahDoBCAGKAL0ASICBEAgBigC+AEiA0EEaygCACIAQXhxIQQgBCACQcgBbCICQQRBCCAAQQNxIgAbakkNByAAQQBHIAQgAkEnaktxDQYgAxC8BQtBAAwCCyABKALYASEAIAEoAtwBIggEQCAAIQcDQCAHKAIAIgUEQCAHQQRqKAIAIgNBBGsoAgAiAkF4cSEEIARBBEEIIAJBA3EiAhsgBWpJDQggAkEARyAEIAVBJ2pLcQ0HIAMQvAULIAdBDGohByAIQQFrIggNAAsLIAEoAtQBIgJFDQIgAEEEaygCACIBQXhxIQMgAyACQQxsIgJBBEEIIAFBA3EiARtqSQ0FIAFBAEcgAyACQSdqS3FFBEAgABC8BQwDCwwEC0EBIRpBAQshACABKAKwASIFBEAgASgCtAEiA0EEaygCACICQXhxIQQgBEEEQQggAkEDcSICGyAFakkNBCACQQBHIAQgBUEnaktxDQMgAxC8BQsCQCABKALgASIFQX9GDQAgBUUNACABKALkASIDQQRrKAIAIgJBeHEhBCAEQQRBCCACQQNxIgIbIAVqSQ0EIAJBAEcgBCAFQSdqS3ENAyADELwFCyABKAKoASICKAIAIQMgAiADQQFrNgIAIANBAUYEQCABKAKoARAwCwJAIABFDQAgASgClAEiACgCACECIAAgAkEBazYCACACQQFGBEAgASgClAEQMAsCQCABKAJ8QX9GDQAgASgCgAEgASgChAEQ5xMgASgCfCICRQ0AIAEoAoABIgNBBGsoAgAiAEF4cSEEIAQgAkHoAWwiAkEEQQggAEEDcSIAG2pJDQUgAEEARyAEIAJBJ2pLcQ0EIAMQvAULIAEtACBB/wFHBEAgAUEgahCsBAsgAUHwAGoQwgQgASgCiAFBf0YNACABQYgBaiIAEOgEIAAoAgAiAkUNACABKAKMASIDQQRrKAIAIgBBeHEhBCAEIAJByAFsIgJBBEEIIABBA3EiABtqSQ0EIABBAEcgBCACQSdqS3ENAyADELwFCyABQbwBahDoBCABKAK8ASICBEAgASgCwAEiA0EEaygCACIAQXhxIQQgBCACQcgBbCICQQRBCCAAQQNxIgAbakkNBCAAQQBHIAQgAkEnaktxDQMgAxC8BQsCQCAJRQ0AIAEoAswBIQAgASgC0AEiCARAIAAhBwNAIAcQmgEgB0HAAmohByAIQQFrIggNAAsLIAEoAsgBIgNFDQAgAEEEaygCACICQXhxIQQgBCADQcACbCIDQQRBCCACQQNxIgIbckkNBCACQQBHIAQgA0EncktxDQMgABC8BQsgASgC2AEhACABKALcASIIBEAgACEHA0AgBygCACIFBEAgB0EEaigCACIDQQRrKAIAIgJBeHEhBCAEQQRBCCACQQNxIgIbIAVqSQ0GIAJBAEcgBCAFQSdqS3ENBSADELwFCyAHQQxqIQcgCEEBayIIDQALCyABKALUASIDBEAgAEEEaygCACICQXhxIQQgBCADQQxsIgNBBEEIIAJBA3EiAhtqSQ0EIAJBAEcgBCADQSdqS3ENAyAAELwFCyAaIAEoAuwBQX9HcUUNACABQewBahDlDQsgBkGwCmokAA8LAAtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQQQQpxQAC0G48MkAQQE6AAAAC/aFAQJjfwx+IwBB8AxrIgMkACABKAIAIT8gASgCBCE7IAEoAgghASACKAIAIiAoAgAhBSAgIAVBAWo2AgACQAJAAkACQAJAAkAgBUEASA0AIDsgAUHYAGxqITwgAigCCCFAIAIoAgQhQSABRQRAQf8BIRZBCCEPQX8hIUECISNBfyESIDshAQwCCyADQbAKaiIBrUKAgICA0AGEIW8gA0G4BmqtQoCAgIDwC4QhcCADQfgHaiIFrUKAgICA8CCEIW0gA0HIBWoiBK1CgICAgCCEIXEgBUE0aiE9IAVBDGohGiADQa8MaiEbIAFBCGohECAFQQFyIVwgAUEBciFdIANB8AFqIgdBBHIhXiAHQQhqIS4gBUGsAWohQiADQagMaiIHQTRqIUMgB0EMaiEnIANByAZqIgdBCGohMSADQZQHaiFPIARBEGohXyADQdgJaiFQIAFBPGohUSABQRRqIT4gAUE4aiFEIAVBBHIhSiAHQQRyIVIgAUE0aiFTIAFBEGohRSAFQRBqIUYgBEHBAGohMiAEQSFqITMgBEEIaiEVIAVBwQBqIVQgBUEhaiFVIANB+AJqIgVBrAFqIUsgA0GbBGohRyAEQQFyIVYgA0HBBWohVyADQaEFaiFYIAFBwQBqIUggAUEhaiFJIANBqARqITQgA0GABGohYCADQdkDaiEcIAVBwQBqIR0gBUEhaiEeIAVBIGohYSADQaAEaiFZIAIoAgAiL0GgAmohYiACKAIEIkxBJGwhYyAvQZwCaiFkIAIoAggiTUHUAGwhZUECISMgQCEXIEEhJCAgIRhBfyEhQX8hEkEIIQ9B/wEhFiA7IRkCQAJAAkACQANAIANB8AFqIgEgGUHYAPwKAAAgHiADKABANgAAIB4gAygAQzYAAyADIBY6AJgDIAMgZzcDkAMgAyBmNwOIAyADICg2AoQDIAMgBjYCgAMgAyBqNwP4AiADICk6ALgDIAMgKjYCtAMgAyAONgKwAyADIGs3A6gDIAMgKzYCpAMgAyAsNgKgAyAdIAMoADg2AAAgHSADKAA7NgADIAMgNToA2AMgAyA2NgLUAyADIDc2AtADIAMgbDcDyAMgAyA4NgLEAyADIDk2AsADIBwgAygAMzYAAyAcIAMoADA2AAAgAyAjOgCaBCADICU6AJkEIAMgOjoAmAQgAyAXNgKUBCADICQ2ApAEIAMgGDYCjAQgAyAJNgKIBCADIAs2AoQEIAMgITYCgAQgAyAmNgL8AyADIAw2AvgDIAMgEjYC9AMgAyANNgLwAyADIA82AuwDIAMgCDYC6AMgAyBpNwPgAyBHIAMtACw6AAQgRyADKAAoNgAAIFkgAUHYAPwKAAAgGUHYAGohGSADKALsBCEBAn8CQAJAAkACQAJAAn8CfwJ/AkACQAJAAkACQAJAAkACQAJAAkACQCADKALwBEEEaw4RBQIABAMGBgYGBgYGBgYGBgEGCyABKAAAQePqyZsHcyABQQRqLwAAQe/kAXNyDQUgAygCoAQiAUEERwRAIAMgATYC+AcgSiBeQcQA/AoAACADIG03A8gFIERBoe/BACADQcgFahC4DCADQQA6APQKIANBfzYCyAogA0H4B2oQrgcgAyAQKQMANwOoDCADIBApAwg3A7AMIAMgECkDEDcDuAwgAyAQKQMYNwPADCADIBApAyA3A8gMIAMgECkDKDcD0AwgAyAQKQMwNwPYDCADIBApAzg3A+AMDBALIANBADYCpAYgA0KAgICAgAE3ApwGIANBqAZqIC4Q+Q0gAygCsAYhEyADKAKoBiESIAMoAqwGIgQgAygCtAYiCkYNDgJAA0AgBCIBQdgAaiEEIAEoAgAiCEF/Rg0QIFIgAUEEakHEAPwKAAAgAyAINgLIBiADIAEoAlAiBTYCwAYgAyABKQJINwO4BiADQZAHaiACIAMoArwGIgEgBRDvBgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAKQB0F/RwRAIANBtAdqIAEgBSACEPwEIAMoArQHIgdBf0YNAiADKAK8ByEGIAMoArgHIQUgCEEERg0BIAMgCDYC+AcgSiBSQcQA/AoAACADIG03A4gFIERBoe/BACADQYgFahC4DCADQQA6APQKIANBfzYCyAogA0H4B2oQrgcgAyA+KQIANwPQByADID4pAgg3A9gHIAMgPikCEDcD4AcgAyA+KQIYNwPoByADID4oAiA2AvAHIAMgUSkCADcDwAcgAyBRKAIINgLIByADKAK4CiEMIAMoArwKIQsgAygCwAohESADKALoCiEIIAYEQCAFQRBqIQEDQCABKAIAIhcoAgAhCSAXIAlBAWs2AgAgCUEBRgRAIAEoAgAQMAsgAUEUaiEBIAZBAWsiBg0ACwsgB0UNCCAFQQRrKAIAIgZBeHEhASABIAdBFGwiB0EEQQggBkEDcSIGG2pJDS0gBkEARyABIAdBJ2pLcQ0uIAUQvAUMCAsgAygCpAchASADQfgHaiADQcgGahDaASADKAKACCEFIAMoAvwHIQYgAygC+AchByADKAKoCCIIQX9HBEAgAyAaKAIgIgw2AtAKIAMgGikCGCJmNwPICiADIBopAhAiZzcDwAogAyA9KQIANwOIBSADID0oAgg2ApAFIAMgGikCADcDyAUgAyAaKQIINwPQBSADIGc3A9gFIAMgZjcD4AUgAyAMNgLoBSABIAEoAgAiDEEBazYCACAMQQFGBEAgARAwCyAnIAMoAugFNgIgICcgAykD4AU3AhggJyADKQPYBTcCECAnIAMpA9AFNwIIICcgAykDyAU3AgAgQyADKQOIBTcCACBDIAMoApAFNgIIIAMgCDYC2AwgAyAFNgKwDCADIAY2AqwMIAMgBzYCqAwMCwsgAyAaKQIANwP4CyADIBopAgg3A4AMIAMgGigCEDYCiAxBOBCQASILRQ0uIAsgBTYCICALIAY2AhwgCyAHNgIYIAsgATYCECALIAMpA/gLNwIkIAsgAykDgAw3AiwgCyADKAKIDDYCNCALIE8pAgg3AgggCyBPKQIANwIAQQEhDEEBIREMCQsgAyAxKQMANwPIBSADIDEpAwg3A9AFIAMgMSkDEDcD2AUgAyAxKQMYNwPgBSADIDEpAyA3A+gFIAMgMSkDKDcD8AUgAyAxKQMwNwP4BSADIDEpAzg3A4AGIANBADYC0AkgA0KAgICAgAE3AsgJIAZBFGwiCCAFaiEXIAUhASAGRQ0EIAFBJGohDiAIQRRrIQ1BACEfQQghJSABIQkDQAJAIAkoAgAiAUECRwRAIFAgCUEEaikCADcCACBQIAlBDGopAgA3AgggAyABNgLUCSADIANB1AlqEPAOIANB+AdqIF8gAygCACADKAIEEKkEIAMoAvgHQX9HDQFBjKfGABCdFQALIAlBFGohAQwGCyAJQRRqIQkgA0GwCmoiASADQfgHaiIIQcgA/AoAACADKALkCSEGIAggARDaASADKAKACCERIAMoAvwHIQsgAygC+AchDCADKAKoCCIIQX9HBEAgAyAaKAIgIgE2AqgFIAMgGikCGCJmNwOgBSADIBopAhAiZzcDmAUgAyA9KQIANwPoCSADID0oAgg2AvAJIAMgGikCADcD+AkgAyAaKQIINwOACiADIGc3A4gKIAMgZjcDkAogAyABNgKYCiAGIAYoAgAiAUEBazYCACABQQFGBEAgBhAwCyADIAMoApgKNgLwByADIAMpA5AKNwPoByADIAMpA4gKNwPgByADIAMpA4AKNwPYByADIAMpA/gJNwPQByADIAMpA+gJNwPAByADIAMoAvAJNgLIByAJIBdHBEAgDUEUbiEBA0AgDigCACIJKAIAIQYgCSAGQQFrNgIAIAZBAUYEQCAOKAIAEDALIA5BFGohDiABQQFrIgENAAsLIAcEQCAFQQRrKAIAIgZBeHEhASABIAdBFGwiB0EEQQggBkEDcSIGG2pJDS4gBkEARyABIAdBJ2pLcQ0vIAUQvAULIAMoAswJIQUgAygC0AkiBgRAIAVBGGohAQNAIAFBCGsiCSgCACIXKAIAIQcgFyAHQQFrNgIAIAdBAUYEQCAJKAIAEDALIAEQiAQgAUE4aiEBIAZBAWsiBg0ACwsgAygCyAkiBgRAIAVBBGsoAgAiB0F4cSEBIAEgBkE4bCIGQQRBCCAHQQNxIgcbakkNLiAHQQBHIAEgBkEnaktxDS8gBRC8BQsgA0HIBWoQ4wkMCAsgAyAaKQIANwOQDCADIBopAgg3A5gMIAMgGigCEDYCoAxBOBCQASIBRQ0uIAEgAykC3Ak3AgggASADKQLUCTcCACABIBE2AiAgASALNgIcIAEgDDYCGCABIAY2AhAgASADKQOQDDcCJCABIAMpA5gMNwIsIAEgAygCoAw2AjQgHyADKALICUYEQCADQcgJaiAfQQFBCEE4ELMRIAMoAswJISUgAygC0AkhHwsgJSAfQThsaiIGIAEpAzA3AzAgBiABKQMoNwMoIAYgASkDIDcDICAGIAEpAxg3AxggBiABKQMQNwMQIAYgASkDCDcDCCAGIAEpAwA3AwAgAyAfQQFqIh82AtAJIAFBBGsoAgAiBkEDcSEIIAZBeHFBPEHAACAIG0kNLCAIQQBHIAZB4ABPcQ0tIAEQvAUgDkEUaiEOIA1BFGshDSAJIBdHDQALDAULIGIoAgAiASBMTQ0AIGQoAgAgY2oiAUEgaigCACIFIE1NDQEgAUEcaigCACBlaiIBKAIAQYKAgIB4Rw0CIAMgASkCCDcCsAogAyBvNwOACCADIHA3A/gHIANBqAxqQfeJwAAgA0H4B2oQuAwgA0GFgICAeDYC2AwgA0GQB2oQwQcgA0HIBmoQrgcMCAsgTCABQcy7xAAQhRMACyBNIAVBzLvEABCFEwALQcy7xAAQnRUACyAXIAFrQRRuIQYgASAXRg0AIAFBEGohAQNAIAEoAgAiDCgCACEIIAwgCEEBazYCACAIQQFGBEAgASgCABAwCyABQRRqIQEgBkEBayIGDQALCwJAIAcEQCAFQQRrKAIAIgZBeHEhASABIAdBFGwiB0EEQQggBkEDcSIGG2pJDScgBkEARyABIAdBJ2pLcQ0BIAUQvAULIAMoAtAJIREgAygCzAkhCyADKALICSEMIANByAVqEOMJIAMoApAHIQEMAgsMJgsgAygCkAchASAIQX9GDQAgJyADKALwBzYCICAnIAMpA+gHNwIYICcgAykD4Ac3AhAgJyADKQPYBzcCCCAnIAMpA9AHNwIAIEMgAykDwAc3AgAgQyADKALIBzYCCCADIAg2AtgMIAMgETYCsAwgAyALNgKsDCADIAw2AqgMIAFBf0YNAiADQZAHahDBBwwCCyABQX9GDQAgA0GQB2oQwQcLIBEgAygCnAYgAygCpAYiAWtNDQEgA0GcBmogASARQQhBOBCzESADKAKkBiEBDAILAkAgAygCuAYiAUF/Rg0AIAFFDQAgAygCvAYiBkEEaygCACIHQXhxIQUgBUEEQQggB0EDcSIHGyABakkNBCAHQQBHIAUgAUEnaktxDSMgBhC8BQsgCiAEa0HYAG4hBiAEIApHBEADQAJAIARByABqKAIAIgFBf0YNACABRQ0AIARBzABqKAIAIgdBBGsoAgAiCkF4cSEFIAVBBEEIIApBA3EiChsgAWpJDSQgCkEARyAFIAFBJ2pLcQ0lIAcQvAULIAQQrgcgBEHYAGohBCAGQQFrIgYNAAsLIBMEQCASQQRrKAIAIgVBeHEhASABIBNB2ABsIgRBBEEIIAVBA3EiBRtqSQ0iIAVBAEcgASAEQSdqS3ENIyASELwFCyADKAKgBiEFIAMoAqQGIgQEQCAFQRhqIQEDQCABQQhrIgcoAgAiCigCACEGIAogBkEBazYCACAGQQFGBEAgBygCABAwCyABEIgEIAFBOGohASAEQQFrIgQNAAsLIAMoApwGIgRFDRUgBUEEaygCACIGQXhxIQEgASAEQThsIgRBBEEIIAZBA3EiBhtqSQ0hIAZBAEcgASAEQSdqS3ENIiAFELwFDBULIBFFDQELIBFBOGwiBUUNACADKAKgBiABQThsaiALIAX8CgAACyADIAEgEWo2AqQGIAwEQCALQQRrKAIAIgVBeHEhASABIAxBOGwiBkEEQQggBUEDcSIFG2pJDR8gBUEARyABIAZBJ2pLcQ0gIAsQvAULAkAgAygCuAYiAUF/Rg0AIAFFDQAgAygCvAYiBkEEaygCACIHQXhxIQUgBUEEQQggB0EDcSIHGyABakkNHyAHQQBHIAUgAUEnaktxDQMgBhC8BQsgBCAKRw0BDBELCwwcCwwcCyABKQAAQvLKsYvGrtq37gCFIAFBCGopAABCzN6Fo7aKnbnhAIWEIAFBEGo1AABC9MqdyweFhEIAUg0EIANB+AdqIANB8AFqEKIMIAMtAPgHISMgAygCqAgiDkF/RwRAIAMgAygAkQg2AvACIAMgAygAlAg2APMCIAMgAygAsQg2AugCIAMgAygAtAg2AOsCIAMvAPkHIAMtAPsHQRB0ciEBIAMpA4AIImhCIIinIREgAy0AkAghFiADKQOICCFnIAMoAvwHIQwgAygCmAghBSADKAKcCCEHIAMpA6AIIWYgAygCrAghCiADLQCwCCETIGinIQ0gIyEIDBULIAMgHigAADYC8AIgAyAeKAADNgDzAiADKAKMBCEYIAMoApAEISQgAygClAQhFyADKAL0AyESIAMoAvgDIQwgAygC/AMhJiADKQOQAyFnIAMpA/gCIWogAygCgAMhBiADKAKEAyEoIAMtAJgDIRYgAygCiAMhHyADLQC4AyEpIAMoArQDISogAygCsAMhDiADKQOoAyFrIAMoAqQDISsgAygCoAMhLCADIB0oAAM2AOsCIAMgHSgAADYC6AIgAyAcKAADNgDjAiADIBwoAAA2AuACQQAhEQwHCyABKAAAQffQlZMHcyABQQRqLQAAQeUAc3INAwJ/AkACQAJAAkAgAygC8AEOBQABAQECAQsgAygC+AFBFUYNAgsgA0H4B2oiASADQfABakHIAPwKAAAgAyBtNwPIBSBEQenvwQAgA0HIBWoQuAwgA0EAOgD0CiADQX82AsgKIAEQrgcgAyBJKAAANgKoDCADIEkoAAM2AKsMIAMgSCgAADYCiAUgAyBIKAADNgCLBSADKAK8CiEMIAMpA8gKIWcgAy0A0AohFiADKALYCiEFIAMoAtwKIQcgAykD4AohZiADKALoCiEOIAMoAuwKIQogAy0A8AohEyADKQPACiFoIAMoArgKIQggAyADKAKoDDYC8AIgAyADKACrDDYA8wIgAyADKAKIBTYC6AIgAyADKACLBTYA6wIgCEEIdiEBIGhCIIinIREgaKchDQwWCyAQIC4pAzg3AzggECAuKQMwNwMwIBAgLikDKDcDKCAQIC4pAyA3AyAgECAuKQMYNwMYIBAgLikDEDcDECAQIC4pAwg3AwggECAuKQMANwMAIAMoArgKDAELIANB8AFqEK4HQX4LIQEgAyBJKAAANgKoDCADIEkoAAM2AKsMIAMgSCgAADYCiAUgAyBIKAADNgCLBSADLQDQCiEFIAMpA8gKIWYgAykDwAohZyADKAK8CiEEIAMoAtgKIQYgAygC3AohByADKQPgCiFrIAMoAugKIQogAygC7AohEyADLQDwCiEIIAMgAygCqAw2AoAFIAMgAygAqww2AIMFIAMgAygCiAU2AvgEIAMgAygAiwU2APsEIAFBfkcEQCBYIAMoAoAFNgAAIFggAygAgwU2AAMgVyADKAL4BDYAACBXIAMoAPsENgADIAMgBToAoAUgAyBmNwOYBSADIGc3A5AFIAMgBDYCjAUgAyABNgKIBSADIAg6AMAFIAMgEzYCvAUgAyAKNgK4BSADIGs3A7AFIAMgBzYCrAUgAyAGNgKoBSAvIC8oAgAiAUEBajYCACABQQBIDRcgAyBNNgKECiADIEw2AoAKIAMgLzYC/AkgA0EANgL4CSADQbAKaiADQYgFaiADQfgJakEAELYCAkACQCADLQCwCiIBQf8BRgRAIBsgECkAODcAOCAbIBApADA3ADAgGyAQKQAoNwAoIBsgECkAIDcAICAbIBApABg3ABggGyAQKQAQNwAQIBsgECkACDcACCAbIBApAAA3AAAgFSAbKQA4NwA4IBUgGykAMDcAMCAVIBspACg3ACggFSAbKQAgNwAgIBUgGykAGDcAGCAVIBspABA3ABAgFSAbKQAINwAIIBUgGykAADcAACADQf8BOgDIBSAvIC8oAgAiAUEBazYCACABQQFGDQEMAgsgA0GoDGoiBSBdQccA/AoAACADIAE6APgHIAMpA/gKIWYgXCAFQccA/AoAACADIGY3A8AIIANByAVqIANB+AdqEIYGIC8gLygCACIBQQFrNgIAIAFBAUcNAQsgLxAwCyADLQDIBSIWQf8BRgRAIAMgMygAADYC0AcgAyAzKAADNgDTByADIDIoAAA2ApAHIAMgMigAAzYAkwcgAy0A6AUhFiADKQPgBSFnIAMoAtQFIQwgAygC8AUhBSADKAL0BSEHIAMpA/gFIWYgAygCgAYhDiADKAKEBiEKIAMtAIgGIRMgAykD2AUhaCADKALQBSEIIAMgAygA0wc2APMCIAMgAygC0Ac2AvACIAMgAygAkwc2AOsCIAMgAygCkAc2AugCIAhBCHYhASBoQiCIpyERIGinIQ0MFQsgAyBWKAADNgDzAiADIFYoAAA2AvACIAMgMygAADYC0AcgAyAzKAADNgDTByADKALQBSEsIAMoAtQFISsgAykD2AUhayADLQDoBSEpIAMoAvAFITkgAygC9AUhOCADKQP4BSFsIAMoAoAGITcgAygChAYhNiADLQCIBiE1IAMpA+AFIWYgAyAyKAADNgCTByADIDIoAAA2ApAHIAMgAygA0wc2AOsCIAMgAygC0Ac2AugCIAMgAygAkwc2AOMCIAMgAygCkAc2AuACIGZCIIinISogAykDkAYhaSADLQCYBCE6IAMtAJkEISUgAy0AmgQhIyADKAKIAyEfIAMoAogEIQkgAygChAQhCyADKAKABCEhIAMoAvADIQ0gAygC7AMhDyADKALoAyEIIAMoAoQDISggAygCgAMhBiADKQP4AiFqIAMpA5ADIWcgAygC/AMhJiADKAL4AyEMIAMoAvQDIRIgAygClAQhFyADKAKQBCEkIAMoAowEIRggZqchDkEAIRFBACEFQQAhAUEBDAsLIAMgHigAADYC8AIgAyAeKAADNgDzAiADIB0oAAM2AOsCIAMgHSgAADYC6AIgAy0AmAMhFiADKQOQAyFnIAMoAoQDISggAygCgAMhBiADKQP4AiFqIAMoAqADISwgAygCpAMhKyADKQOoAyFrIAMoArADIQ4gAygCtAMhKiADLQC4AyEpIAMpA4gDIWYgAyAcKAADNgDjAiADIBwoAAA2AuACIAMtANgDITUgAygC1AMhNiADKALQAyE3IAMpA8gDIWwgAygCxAMhOCADKALAAyE5IAMtAJgEITogAy0AmQQhJSADLQCaBCEjIAMoApQEIRcgAygCkAQhJCADKAKMBCEYIAMoAogEIQkgAygChAQhCyADKAKABCEhIAMoAvwDISYgAygC+AMh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AyAcKAAANgLgAiADLQCaBCEjIAMtAJkEISUgAy0AmAQhOiADKAKIBCEJIAMoAoQEIQsgAygCgAQhISADKQPgAyFpICAgICgCACIBQQFrNgIAIAFBAUYEQCAgEDALQQAhESAKIS0gEyEUIAUhMCAHISIgZiFoQQAhBUEBDAoLIAMgAygAuwY2APMCIAMgAygCuAY2AvACIAMgAygCnAY2AugCIAMgAygAnwY2AOsCICAgICgCACICQQFrNgIAIAhBCHYhASACQQFHDRMgIBAwDBMLQQgQpxQACwwZCyABKAAAQfTCrasGRgRAIANB+AdqIANB8AFqEPsMIAMoAqgIIg5Bf0YNAyADIAMoAJEINgLwAiADIAMoAJQINgDzAiADIAMoALEINgLoAiADIAMoALQINgDrAiADKAL4ByIIQQh2IQEgAykDgAgiaEIgiKchESADLQCQCCEWIAMpA4gIIWcgAygC/AchDCADKAKYCCEFIAMoApwIIQcgAykDoAghZiADKAKsCCEKIAMtALAIIRMgaKchDQwRCyABKAAAQfPWpYMHRw0AIANB+AdqIANB8AFqEPsMIAMpA4AIIWkgAykD+AchaiADKAKoCCIOQX9HBEAgRSBGKQMYNwMYIEUgRikDEDcDECBFIEYpAwg3AwggRSBGKQMANwMAIFMgPSkCADcCACBTID0oAgg2AgggAyBqNwOwCiBqQiCIpyEMIGqnIQgMCQsgakIBUg0BIGlCAFkNASADIGk3A8gFIAMgcTcD+AcgA0GwCmpBi6XAACADQfgHahC4DEGFgICAeCEOIAMpA7gKIWkgAygCtAohDCADKAKwCiEIDAgLIAMgAygAQzYA8wIgAyADKABANgLwAiADIAMoADg2AugCIAMgAygAOzYA6wIgAyADKAAwNgLgAiADIAMoADM2AOMCIAMgAygAKDYC2AIgAyADLQAsOgDcAiADKALoBCIFBEAgAUEEaygCACIHQXhxIQQgBEEEQQggB0EDcSIHGyAFakkNFiAHQQBHIAQgBUEnaktxDRcgARC8BQsgZkIgiKchESBZEK4HDAsLIAMgHigAADYC8AIgAyAeKAADNgDzAiADKAKMBCEYIAMoApAEISQgAygClAQhFyADKAL0AyESIAMoAvgDIQwgAygC/AMhJiADKQOQAyFnIAMtAJgDIRYgAygCiAMhHyADKAKgAyEsIAMoAqQDISsgAykDqAMhayADKAKwAyEOIAMoArQDISogAy0AuAMhKSADIB0oAAM2AOsCIAMgHSgAADYC6AIgAyAcKAADNgDjAiADIBwoAAA2AuACIGlCIIinISggaachBkEAIREgAy0AmgQhIwwBCyADKQOACCFnIAMoAvgHIQEgAyAeKAAANgLwAiADIB4oAAM2APMCIAMoAowEIRggAygCkAQhJCADKAKUBCEXIAMoAvQDIRIgAygC+AMhDCADKAL8AyEmIAMpA/gCIWogAygCgAMhBiADKAKEAyEoIAMtAJgDIRYgAy0AuAMhKSADKAK0AyEqIAMoArADIQ4gAykDqAMhayADKAKkAyErIAMoAqADISwgAyAdKAADNgDrAiADIB0oAAA2AugCIAMtANgDITUgAygC1AMhNiADKALQAyE3IAMpA8gDIWwgAygCxAMhOCADKALAAyE5IAMgHCgAAzYA4wIgAyAcKAAANgLgAkEAIRFBA0EAIAEbIR8gAy0AmgQhIyADLQCZBCElIAMtAJgEITogAygCiAQhCSADKAKEBCELIAMoAoAEISEgAygC8AMhDSADKALsAyEPIAMoAugDIQggAykD4AMhaQwBCyADLQCZBCElIAMtAJgEITogAygCiAQhCSADKAKEBCELIAMoAoAEISEgAygC8AMhDSADKALsAyEPIAMoAugDIQggAykD4AMhaSADLQDYAyE1IAMoAtQDITYgAygC0AMhNyADKQPIAyFsIAMoAsQDITggAygCwAMhOQtBAAshBUEACyEBQQALIQQCQAJAAkAgAygC6AQiBwRAIAMoAuwEIhNBBGsoAgAiTkF4cSEKIApBBEEIIE5BA3EiThsgB2pJDQEgTkEARyAKIAdBJ2pLcQ0TIBMQvAULAkAgBEUEQCABRQ0BDAMLIAMtAJgDQf8BRwRAIGEQrwQLIAENAgsMAgtB0JzJAEEuQYCdyQAQrxQACyADKALsAyEHIAMoAvADIgQEQCAHIQEDQCABEIsFIAFBQGshASAEQQFrIgQNAAsLIAMoAugDIgQEQCAHQQRrKAIAIgpBeHEhASABIARBBnQiBEEEQQggCkEDcSIKG3JJDRAgCkEARyABIARBJ3JLcQ0RIAcQvAULCwJAAkAgBUUNACADKAKABCIBQX9GDQAgYBClBCABRQ0A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ARDAEiACQbgLahDAEiACIAQ2AhAgAiAFNgIMIAIgCTYCCCACQeARaiIDIAggAkGICWogARDWCiAAIANB8AD8CgAAIAJBgBFqEPMRAkAgAikDyAYiF0IFUw0AIBdC/////w+DQgZSDQAgAigC0AYNGiAHENIRDBoLIAJByAZqEOsCDBkLQeDbxQBB4wBBlNzFABC/EwALIAJBgBFqEPMRAkAgAikDyAYiF0IFUw0AIBdC/////w+DQgZSDQAgAigC0AYNASAHENIRDAELIAJByAZqEOsCCyAEBEAgBSEDA0AgAxClASADQfAAaiEDIARBAWsiBA0ACwsgCUUNFiAFIAlB8ABsENkSDBYLIAMoAghBf0cEQCACQeARaiAGIAgQgAMgAigC5BEhBSACKALgESENAkAgAigC6BEiA0UNACAFIANBA3RqIRAgAkHkEWohDCAGQRRqIREgBkEQaiESIAUhBAJAAkACQANAIAQoAgAiAyARKAIATw0BAkACQCASKAIAIANByABsaiIKKAIAIg5Bf0YNACAEQQRqKAIAIQMCQAJAQQIgDkEDayAOQQJNG0EDaw4CAAECCyAPRQRAIApBfzYCACAMIAopAgQ3AgAgDCAKKQIMNwIIIAwgCikCFDcCECAMIAopAhw3AhggDCAKKQIkNwIgIAwgCikCLDcCKCAMIAooAjQ2AjAgAiAONgLgESACQeARahCnB0EBIQ8gAyEJDAILQSIQkAEiA0UNBiADQbzZxQAvAAA7ACAgA0G02cUAKQAANwAYIANBrNnFACkAADcAECADQaTZxQApAAA3AAggA0Gc2cUAKQAANwAADAULIAsNASAKQX82AgAgDCAKKQIENwIAIAwgCikCDDcCCCAMIAopAhQ3AhAgDCAKKQIcNwIYIAwgCikCJDcCICAMIAopAiw3AiggDCAKKAI0NgIwIAIgDjYC4BEgAkHgEWoQpwdBASELIAMhBwsgECAEQQhqIgRGDQUMAQsLQSIQkAEiA0UNHyADQd7ZxQAvAAA7ACAgA0HW2cUAKQAANwAYIANBztnFACkAADcAECADQcbZxQApAAA3AAggA0G+2cUAKQAANwAADAELQbygxgAQnRUACyAAQYmAgIB4NgI4IABBIjYCFCAAIAM2AhAgAEL/////rwQ3AwggAEJ/NwMAIA1FDRggBSANQQN0ENkS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QAJAAkACQCADKALwDkECaw4CAQADCyAELwAAQeHcAXMgBEECaiIILQAAQeQAc3INASADQQA6AFAMBAsgBC8AAEHv5AFHDQEgA0EBOgBQDAMLIAQvAABB7t4BcyAILQAAQfQAc3JFDQELIAMgA0GIC2qtQoCAgIDQAYQ3A8APIANB0ABqQY++wQAgA0HAD2oQuAxBgYCAgHgMAgsgA0ECOgBQC0EBIQdBfws2AoABAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACfyADKALoDiIIBEAgBEEEaygCACIJQXhxIQogCkEEQQggCUEDcSIJGyAIakkNGCAJQQBHIAogCEEnaktxDRkgBBC8BQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAHRQRAIANB6A5qIAEoAgAgDyAGEJEDIAMoAugOIgZBf0YNASADIAMpAvQONwPYAiADIAMoAvwONgLgAiADKALwDiEEIAMoAuwOIQEgBkEBaw4CAwQCCyADLQBQIRACQAJAAkAgAygCCEEDaw4CAQIAC0Ggq8kAQShB3JXGABCvFAALIAEoAgQhCSABKAIAIRMgAygCDCENIAMoAhAhByADKAIUIQEgA0F/NgLABSAHIAFByABsaiEGIAchBCABRQ0bIANB6A5qQQFyIQUgA0GQC2ohASAEIQIDQCACKAIAIQggA0HQB2oiCiACQQRqQcQA/AoAACACQcgAaiEEAkACQCAIQQRHBEAgAyAINgLADyADQcAPaiICQQRyIApBxAD8CgAAIAMgAq1CgICAgPAghDcDoAggA0HAC2pBoe/BACADQaAIahC4DCADQQA6AMwLIANBfzYCoAsgAhCuByADIAEpAwA3A/AOIAMgASkDCDcD+A4gAyABKQMQNwOADyADIAEpAxg3A4gPIAMgASkDIDcDkA8gAyABKQMoNwOYDyADIAEpAzA3A6APIAMgASkDODcDqA8gA0G4CmogBUHHAPwKAAAMAQsgAyACQQhqKQIANwPABiADIAJBEGopAgA3A8gGIAMgAkEYaikCADcD0AYgAyACQSBqKQIANwPYBiADIAJBKGopAgA3A+AGIAMgAkEwaikCADcD6AYgAyACQThqKQIANwPwBiADIAJBQGsp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ACADQcAPahC4DCADQYGAgIB4NgLIAiABEK4HDAILQdAAEJABIgFFDS4gAygCuAkiBCgCACEFIAQgBUEBajYCACAFQQBIDQMgAykCsAkhFyADKQKoCSEYIAFBAzoAACABQQA6AAggASACQRhqIgIpABgiGTcAKCADIAIpAAA3AO8OIAEgAykA6A43AAkgAyACKQAINwD3DiABIAMpAPAONwARIAMgAikAEDcA/w4gASADKQD4DjcAGSADIBk3AIcPIAEgAykAgA83ACEgAyAYNwPIDyADIBc3A9APIAEgBDYCSCABQQA6AEwgASADKQPQDzcDQCABIAMpA8gPNwM4IAEgAykDwA83AzAgA0EBNgKYAiADIAE2ApwCIANBATYCoAIgA0F/NgLIAgwBCyADIAIpA1A3A8ALIAMgAikDSDcDuAsgAyACKQNANwOwCyADIAIpAzg3A6gLIAMgAikDMDcDoAsgAyACKQMoNwOYCyADIAIpAyA3A5ALIAMgAikDGDcDiAsgA0HIA2oiASADQZgLakG2k8kAQQQQqQRBACEFAkACQCADKALIA0F/Rg0AIANB6A5qIgIgARDaASACQQFyIQEgAy0A6A4hAiADKAKYDyIEQX9HDQEgAyABKQAXNwDXDyADIAEpABA3A9APIAMgAjoAuAogAyABKQAANwC5CiADIAEpAAg3AMEKIAMgAykD0A83AMkKIAMgAykA1w83ANAKAkACQEEOIAMoArgKIgFBDWsgAUEMTRsiBA4DAQABAAtBoKvJAEEoQaynxgAQrxQACyADKALACiEBIAMoArwKIQICfwJAAkAgAygCxApBB2sOBQAPDw8BDwsgASgAAEHkypmLBnMgAUEDaigAAEHh6rGjB3NyDQ5BAAwBCyABKQAAQunczavm7dy09ACFIAFBA2opAABC5dzNy8aumrvlAIWEQgBSDQ1BAQshBSACBEAgASACENkSCwJAIAQOAwEAAQALIANBuApqEIgECyADQQA7AbwKIAMgA0GoCWo2ArgKIAMgAykDwAs3A6APIAMgAykDuAs3A5gPIAMgAykDsAs3A5APIAMgAykDqAs3A4gPIAMgAykDoAs3A4APIAMgAykDmAs3A/gOIAMgAykDkAs3A/AOIAMgAykDiAs3A+gOIANBwA9qIANBuApqIANB6A5qEMIBIAMoAsgPIQcgAygCxA8hASADKALADyEGAkAgAygC8A8iAkF/RwRAIAMgAygC7A82AsQCIAMgAykC5A83ArwCIAMgAykC3A83ArQCIAMgAykC1A83AqwCIAMgAykCzA83AqQCIAMgAykC9A83AswCIAMgAygC/A82AtQCIAMgAjYCyAIMAQsgBwRAIAdB0ABsIQQgASECA0AgAiAFEIERIAJB0ABqIQIgBEHQAGsiBA0ACwsgA0F/NgLIAgsgAyAHNgKgAiADIAE2ApwCIAMgBjYCmAIMAQsgAyABKQAnNwDnDyADIAEpACA3A+APIAMgAykCnA83AswCIAMgAygCpA82AtQCIAMgASkAGCIXNwPYDyADIAEpABAiGDcD0A8gAyABKQAIIhk3A8gPIAMgFzcAsQIgAyAYNwCpAiADIBk3AKECIAMgASkAADcAmQIgAyADKQDnDzcAwAIgAyADKQPgDzcAuQIgAyAENgLIAiADIAI6AJgCIANBiAtqEOMJCyADKAK4CSICKAIAIQEgAiABQQFrNgIAIAFBAUcNFSADKAK4CRAwDBULIAMgBDYC6AIgAyABNgLkAiADIAMpA9gCNwLsAiADIAMoAuACNgL0AgJAAkAgAygCCA4FAQAABAUACyADQegOaiIBIAVByAD8CgAAIAMgAa1CgICAgPAghDcDiAsgA0HAD2pB5ZDAACADQYgLahC4DCADQYGAgIB4NgLIAiADIAMpA8APNwOYAiADIAMpA8gPNwOgAiADIAMpA9APNwOoAiADIAMpA9gPNwOwAiADIAMpA+APNwO4AiADIAMpA+gPNwPAAiABEK4HDBELQdAAEJABIgFFDSsgAygC9AIiBCgCACEFIAQgBUEBajYCACAFQQBIDQAgAyACQRhqIgIpABg3AIcPIAMgAikAEDcA/w4gAyACKQAINwD3DiADIAIpAAA3AO8OQdgAEJABIgINAUG48MkAQQE6AAAACwALIAJBBDoAACACIAMpAOgONwABIAIgAykA8A43AAkgAiADKQD4DjcAESACIAMpAIAPNwAZIAIgAykAhw83ACAgAUEHOgAAIAMgAykC5AI3AOsOIAEgAykA6A43AAEgAyADKQLsAjcA8w4gASADKQDwDjcACSABIAI2AhggASAENgIUIAEgAygA9w42ABAgA0F/NgLIAiADQQE2AqACIAMgATYCnAIgA0EBNgKYAgwOC0HQABCQASIBRQ0oIANBwA9qIAUQ/QYgAygC8A8iAkF/Rw0BIAMgAygCyA8iAjYCkAsgAyADKQPADyIXNwOICyADIBc3ArwKIAMgAjYCxAogA0ESNgK4CiADQegOaiICIANB5AJqIANBuApqEPoQIAEgAkHQAPwKAAAgA0F/NgLIAiADQQE2AqACIAMgATYCnAIgA0EBNgKYAgwNCyACKAIYIQRB0AAQkAEiAUUNJwJAIARBAkYgBEF/R3FFBEAgA0EENgKICyADIAIpA1A3A8gLIAMgAikDSDcDwAsgAyACKQNANwO4CyADIAIpAzg3A7ALIAMgAikDMDcDqAsgAyACKQMoNwOgCyADIAIpAyA3A5gLIAMgAikDGDcDkAsgA0GQBWogA0GIC2oQ2gEgA0GcBWohAiADKAKYBSEFIAMoApQFIQYgAygCkAUhBCADKALABSIHQX9GDQEgAyADKQLEBTcDyAQgAyADKALMBTYC0AQgAyACKAIgIgk2AvgNIAMgAikCGCIXNwPwDSADIAIpAhAiGDcD6A0gAyACKQIIIhk3A+ANIAMgAikCADcD2AQgAyAZNwPgBCADIBg3A+gEIAMgFzcD8AQgAyAJNgL4BAwNCyADQegOaiACQRhqEPkNAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygC7A4iAiADKAL0DiIGRg0AIAIoAgAiBEF/Rg0AIANBlA1qIAJBBGpBxAD8CgAAIAMgAigCUDYCiAUgAyACKQJINwOABSAGIAJB2ABqIgJrQdgAbiEFIAIgBkcEQANAAkAgAkHIAGooAgAiBkF/Rg0AIAZFDQAgAkHMAGooAgAiB0EEaygCACIIQXhxIQkgCUEEQQggCEEDcSIIGyAGakkNPCAIQQBHIAkgBkEnaktxDT0gBxC8BQsgAhCuByACQdgAaiECIAVBAWsiBQ0ACwsgAygC8A4iAgRAIAMoAugOIAJB2ABsENkSCyADIAQ2ApgFIAMgAygCiAUiBjYClAUgAyADKAKEBSICNgKQBSADQZwFaiADQZQNakHEAPwKAAAgA0GYBWohCCAGQQJrDgYHCQMCAQUJC0GwtsYAEJ0VAAsgAigAAEHl4tWLBnMgAkEEai8AAEHs5gFzcg0HIANBiAtqIAgQ2gEgA0GUC2ohAiADKAKQCyEFIAMoAowLIQYgAygCiAshBCADKAK4CyIHQX9GDRAgAyADKQK8CzcDyAQgAyADKALECzYC0AQgAyACKAIgIgk2AvgNIAMgAikCGCIXNwPwDSADIAIpAhAiGDcD6A0gAyACKQIIIhk3A+ANIAMgAikCADcD2AQgAyAZNwPgBCADIBg3A+gEIAMgFzcD8AQgAyAJNgL4BAwcCyACKAAAQenmzaoGcyACQQRqIgYtAABB9ABzckUEQCADQYgLaiAIENENIAMoArgLIgdBf0YNDwwECyACKAAAQeXslZMHcyAGLQAAQfkAc3INBSAEQQRGDQ0MAQsgAigAAEHz3rWrBkYEQCAEQQRGDQwMAQsgAigAAEHu3rmrBkcNBSAEQQRGDQoLIAMgBDYC2A0gA0HYDWoiAkEEciADQZQNakHEAPwKAAAgAyACrUKAgICA8CCENwPYCyADQdgIakGh78EAIANB2AtqELgMIANBADoA5AggA0F/NgK4CCACEK4HIAMgAykCtAg3A9gEIAMgAykCvAg3A+AEIAMgAykCxAg3A+gEIAMgAykCzAg3A/AEIAMgAygC1Ag2AvgEIAMgAykC3Ag3A8gEIAMgAygC5Ag2AtAEIAMoAqgIIQQgAygCrAghBiADKAKwCCEFIAMoAtgIIQcMGQsgAigAAEHp5pXqBnMgAkEDaigAAEHt4NHLB3NyDQMgA0GIC2ogCBDRDSADKAK4CyIHQX9GDQcLIAMgAykClAs3A9gEIAMgAykCnAs3A+AEIAMgAykCpAs3A+gEIAMgAykCrAs3A/AEIAMgAygCtAs2AvgEIAMgAykCvAs3A8gEIAMgAygCxAs2AtAEIAMoApALIQUgAygCjAshBiADKAKICyEEDBcLIAIvAABB6eYBRw0BIARFBEAgAygCoAVBFUYNBAsgA0HYDWogCBCQESADIAMpAuwNNwOgCCADIAMpAvQNNwOoCCADIAMpAvwNNwOwCCADIAMpAoQONwO4CCADIAMoAowONgLACCADIAMpApQONwOQDCADIAMoApwONgKYDCADKALoDSEFIAMoAuQNIQYgAygC4A0hBCADKAKQDiEHIAMoAtgNRQ0EIAMgAygCwAg2AvgEIAMgAykDuAg3A/AEIAMgAykDsAg3A+gEIAMgAykDqAg3A+AEIAMgAykDoAg3A9gEIAMgAykDkAw3A8gEIAMgAygCmAw2AtAEDBYLIAIoAABB6ea5+gZzIAJBBGotAABB9ABzckUNAQsgAyADQYAFaq1CgICAgPALhDcD6A4gA0HkDGpB0rvBACADQegOahC4DEGBgICAeCEHQf8BIQIgAygC7AwhBSADKALoDCEGIAMoAuQMIQQgCBCuBwwSCyAERQRAIAMoAqAFQRVGDQ8LIANB2A1qIAgQkBEgAyADKQLsDTcDoAggAyADKQL0DTcDqAggAyADKQL8DTcDsAggAyADKQKEDjcDuAggAyADKAKMDjYCwAggAyADKQKUDjcDkAwgAyADKAKcDjYCmAwgAygC6A0hBSADKALkDSEGIAMoAuANIQQgAygCkA4hByADKALYDQRAIAMgAygCwAg2AvgEIAMgAykDuAg3A/AEIAMgAykDsAg3A+gEIAMgAykDqAg3A+AEIAMgAykDoAg3A9gEIAMgAykDkAw3A8gEIAMgAygCmAw2AtAEDBQLIAMgBTYCqAwgAyAGNgKkDCADIAQ2AqAMIAMgAykDoAg3AqwMIAMgAykDqAg3ArQMIAMgAykDsAg3ArwMIAMgAykDuAg3AsQMIAMgAygCwAg2AswMIAMgBzYC0AwgAyADKQOQDDcC1AwgAyADKAKYDDYC3AwgA0HYDWoiAiADQeQCahDxCiADQegOaiADQaAMaiACEKwNIAMtAOgOIgJB/wFGBEAgAyADKQL8DjcD6AsgAyADKQKEDzcD8AsgAyADKQKMDzcD+AsgAyADKQKUDzcDgAwgAyADKAKcDzYCiAwgAyADKQKkDzcD2AsgAyADKAKsDzYC4AsgAygC+A4hBSADKAL0DiEGIAMoAvAOIQQgAygCoA8hByADIAMoAogMNgL4BCADIAMpA4AMNwPwBCADIAMpA/gLNwPoBCADIAMpA/ALNwPgBCADIAMpA+gLNwPYBCADIAMoAuALNgLQBCADIAMpA9gLNwPIBAwUCyADIAMoAOwONgDEDyADIAMoAOkONgDBDyADIAMpAvwONwPoCyADIAMpAoQPNwPwCyADIAMpAowPNwP4CyADIAMpApQPNwOADCADIAMoApwPNgKIDCADKAKgDyEEIAMoAvgOIQUgAykD8A4hFyADIAMoAqwPNgLgCyADIAMpAqQPNwPYCyADIBc3A8gPIAMgAjoAwA8gAyAFNgLQDyADIAMpA+gLNwLUDyADIAMpA/ALNwLcDyADIAMpA/gLNwLkDyADIAMpA4AMNwLsDyADIAMoAogMNgL0DyADKQOwDyEXIAMgBDYC+A8gAyADKALgCzYChBAgAyADKQPYCzcC/A8gAyAXNwOIECADQYgLaiECIANBwA9qIQkjAEHgAGsiBSQAIANB5AJqIgcoAhAiBigCACEEIAYgBEEBajYCAAJAIARBAE4EQCAFQQlqIghBB2ogCUHQAPwKAABB2AAQkAEiBEUNMiAEQQY6AAAgBEEBaiAIQdcA/AoAACACIAQ2AhggAiAGNgIUIAJBBzoAACACIAcpAgg3AgwgAiAHKQIANwIEIAVB4ABqJAAMAQsACwwQCyADQRU2AogLIANB6A5qIANB5AJqIANBiAtqEPoQIAMgAy8A6Q47AfwEIAMgAy0A6w46AP4EIAMgAykC/A43A9gEIAMgAykChA83A+AEIAMgAykCjA83A+gEIAMgAykClA83A/AEIAMgAygCnA82AvgEIAMtAOgOIQIgAygC7A4hCSADKALwDiEEIAMoAvQOIQYgAygC+A4hBSADIAMoAqwPNgLQBCADIAMpAqQPNwPIBCADKAKgDyEHIAMpA7APIRcgCBCuBwwQCyADIAU2AoAKIAMgBjYC/AkgAyAENgL4CSADIAMpA6AINwKECiADIAMpA6gINwKMCiADIAMpA7AINwKUCiADIAMpA7gINwKcCiADIAMoAsAINgKkCiADIAc2AqgKIAMgAykDkAw3AqwKIAMgAygCmAw2ArQKIANB2A1qIgIgA0HkAmoQ8QogA0HoDmogA0H4CWogAhCsDSADLQDoDiICQf8BRgRAIAMgAykC/A43A+gLIAMgAykChA83A/ALIAMgAykCjA83A/gLIAMgAykClA83A4AMIAMgAygCnA82AogMIAMgAykCpA83A9gLIAMgAygCrA82AuALIAMoAvgOIQUgAygC9A4hBiADKALwDiEEIAMoAqAPIQcgAyADKAKIDDYC+AQgAyADKQOADDcD8AQgAyADKQP4CzcD6AQgAyADKQPwCzcD4AQgAyADKQPoCzcD2AQgAyADKALgCzYC0AQgAyADKQPYCzcDyAQMEgsgAyADKADsDjYAvAogAyADKADpDjYAuQogAyADKQL8DjcD6AsgAyADKQKEDzcD8AsgAyADKQKMDzcD+AsgAyADKQKUDzcDgAwgAyADKAKcDzYCiAwgAygCoA8hBCADKAL4DiEFIAMpA/AOIRcgAyADKAKsDzYC4AsgAyADKQKkDzcD2AsgAyAXNwPACiADIAI6ALgKIAMgBTYCyAogAyADKQPoCzcCzAogAyADKQPwCzcC1AogAyADKQP4CzcC3AogAyADKQOADDcC5AogAyADKAKIDDYC7AogAykDsA8hFyADIAQ2AvAKIAMgAygC4As2AvwKIAMgAykD2As3AvQKIAMgFzcDgAsgA0GIC2ohAiADQbgKaiEJIwBB4ABrIgUkACADQeQCaiIHKAIQIgYoAgAhBCAGIARBAWo2AgACQCAEQQBOBEAgBUEJaiIIQQdqIAlB0AD8CgAAQdgAEJABIgRFDTAgBEEFOgAAIARBAWogCEHXAPwKAAAgAiAENgIYIAIgBjYCFCACQQc6AAAgAiAHKQIINwIMIAIgBykCADcCBCAFQeAAaiQADAELAAsMDgsgA0HoDmohAiADLQCICyEGIANB5AJqIgUoAhAiBygCACEEIAcgBEEBajYCAAJAIARBAE4EQEHYABCQASIERQ0vIAQgBjoAASAEQQM6AAAgAiAENgIYIAIgBzYCFCACQQc6AAAgAiAFKQIANwIEIAIgBSkCCDcCDAwBCwALDAwLIAMgAykCmA03A+gIIAMgAykCoA0+AvAIIAMgAykCpA03AvQIIAMgAykCrA03AvwIIAMgAykCtA03AoQJIAMgAykCvA03AowJIAMgAygCxA02ApQJIAMgAykCyA0+ApgJIAMgAygC1A02AqQJIAMgAykCzA03ApwJIANB2A1qIgIgA0HkAmoQ8QogA0HoDmogA0HoCGogAhCsDSADLQDoDiICQf8BRgRAIAMgAykC/A43A+gLIAMgAykChA83A/ALIAMgAykCjA83A/gLIAMgAykClA83A4AMIAMgAygCnA82AogMIAMgAykCpA83A5AMIAMgAygCrA82ApgMIAMoAvgOIQUgAygC9A4hBiADKALwDiEEIAMoAqAPIQcgAyADKAKIDDYC+AQgAyADKQOADDcD8AQgAyADKQP4CzcD6AQgAyADKQPwCzcD4AQgAyADKQPoCzcD2AQgAyADKAKYDDYC0AQgAyADKQOQDDcDyAQMEAsgAyADKADsDjYArAkgAyADKADpDjYAqQkgAyADKQL8DjcD6AsgAyADKQKEDzcD8AsgAyADKQKMDzcD+AsgAyADKQKUDzcDgAwgAyADKAKcDzYCiAwgAygCoA8hBCADKAL4DiEFIAMpA/AOIRcgAyADKAKsDzYCmAwgAyADKQKkDzcDkAwgAyAXNwOwCSADIAI6AKgJIAMgBTYCuAkgAyADKQPoCzcCvAkgAyADKQPwCzcCxAkgAyADKQP4CzcCzAkgAyADKQOADDcC1AkgAyADKAKIDDYC3AkgAykDsA8hFyADIAQ2AuAJIAMgAygCmAw2AuwJIAMgAykDkAw3AuQJIAMgFzcD8AkgA0GIC2ohAiADQagJaiEJIwBB4ABrIgUkACADQeQCaiIHKAIQIgYoAgAhBCAGIARBAWo2AgACQCAEQQBOBEAgBUEJaiIIQQdqIAlB0AD8CgAAQdgAEJABIgRFDS4gBEECOgAAIARBAWogCEHXAPwKAAAgAiAENgIYIAIgBjYCFCACQQc6AAAgAiAHKQIINwIMIAIgBykCADcCBCAFQeAAaiQADAELAAsMDAsgAyADKQKYDTcDkAcgAyADKQKgDT4CmAcgAyADKQKkDTcCnAcgAyADKQKsDTcCpAcgAyADKQK0DTcCrAcgAyADKQK8DTcCtAcgAyADKALEDTYCvAcgAyADKQLIDT4CwAcgAyADKALUDTYCzAcgAyADKQLMDTcCxAcgA0HYDWoiAiADQeQCahDxCiADQegOaiADQZAHaiACEKwNIAMtAOgOIgJB/wFGBEAgAyADKQL8DjcD6AsgAyADKQKEDzcD8AsgAyADKQKMDzcD+AsgAyADKQKUDzcDgAwgAyADKAKcDzYCiAwgAyADKQKkDzcDkAwgAyADKAKsDzYCmAwgAygC+A4hBSADKAL0DiEGIAMoAvAOIQQgAygCoA8hByADIAMoAogMNgL4BCADIAMpA4AMNwPwBCADIAMpA/gLNwPoBCADIAMpA/ALNwPgBCADIAMpA+gLNwPYBCADIAMoApgMNgLQBCADIAMpA5AMNwPIBAwPCyADIAMoAOwONgDUByADIAMoAOkONgDRByADIAMpAvwONwPoCyADIAMpAoQPNwPwCyADIAMpAowPNwP4CyADIAMpApQPNwOADCADIAMoApwPNgKIDCADKAKgDyEEIAMoAvgOIQUgAykD8A4hFyADIAMoAqwPNgKYDCADIAMpAqQPNwOQDCADIBc3A9gHIAMgAjoA0AcgAyAFNgLgByADIAMpA+gLNwLkByADIAMpA/ALNwLsByADIAMpA/gLNwL0ByADIAMpA4AMNwL8ByADIAMoAogMNgKECCADKQOwDyEXIAMgBDYCiAggAyADKAKYDDYClAggAyADKQOQDDcCjAggAyAXNwOYCCADQYgLaiECIANB0AdqIQkjAEHgAGsiBSQAIANB5AJqIgcoAhAiBigCACEEIAYgBEEBajYCAAJAIARBAE4EQCAFQQlqIghBB2ogCUHQAPwKAABB2AAQkAEiBEUNLSAEQQE6AAAgBEEBaiAIQdcA/AoAACACIAQ2AhggAiAGNgIUIAJBBzoAACACIAcpAgg3AgwgAiAHKQIANwIEIAVB4ABqJAAMAQsACwwLCyADIAMpApgNNwOABiADIAMpAqANPgKIBiADIAMpAqQNNwKMBiADIAMpAqwNNwKUBiADIAMpArQNNwKcBiADIAMpArwNNwKkBiADIAMoAsQNNgKsBiADIAMpAsgNPgKwBiADIAMoAtQNNgK8BiADIAMpAswNNwK0BiADQdgNaiICIANB5AJqEPEKIANB6A5qIANBgAZqIAIQrA0gAy0A6A4iAkH/AUYEQCADIAMpAvwONwPoCyADIAMpAoQPNwPwCyADIAMpAowPNwP4CyADIAMpApQPNwOADCADIAMoApwPNgKIDCADIAMpAqQPNwOQDCADIAMoAqwPNgKYDCADKAL4DiEFIAMoAvQOIQYgAygC8A4hBCADKAKgDyEHIAMgAygCiAw2AvgEIAMgAykDgAw3A/AEIAMgAykD+As3A+gEIAMgAykD8As3A+AEIAMgAykD6As3A9gEIAMgAygCmAw2AtAEIAMgAykDkAw3A8gEDA4LIAMgAygA7A42AMQGIAMgAygA6Q42AMEGIAMgAykC/A43A+gLIAMgAykChA83A/ALIAMgAykCjA83A/gLIAMgAykClA83A4AMIAMgAygCnA82AogMIAMoAqAPIQQgAygC+A4hBSADKQPwDiEXIAMgAygCrA82ApgMIAMgAykCpA83A5AMIAMgFzcDyAYgAyACOgDABiADIAU2AtAGIAMgAykD6As3AtQGIAMgAykD8As3AtwGIAMgAykD+As3AuQGIAMgAykDgAw3AuwGIAMg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S3FFBEAgAhC8BQwBCwwDCyAGQeACaiQADwtBxLDJAEETQdykxAAQvxMAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBiKHEAEHJAEGsocQAEL8TAAtBBBCnFAAL/F4BGH8jAEGABWsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEOIAIoAgAiBkGAgICAeHMiBCAEQRZPG0EBaw4VAQIDBAUGBwgJIyQlJicKCwwNDg8QAAsgAigCCCEEIANBkAJqIgUgAigCBCICQeAA/AoAACADQfACaiIGIARB4AD8CgAAIAAgASAFIAYQxwwgBEEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNYiABQQBHIABBiAFPcQ1hIAQQvAUgAkEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNYiABQQBHIABBiAFPcQ1hIAIQvAUMXwsgAigCCCEEIANBkAJqIgUgAigCBCICQeAA/AoAACADQfACaiIGIARB4AD8CgAAIAAgASAFIAYQ4gwgBEEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNYSABQQBHIABBiAFPcQ1gIAQQvAUgAkEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNYSABQQBHIABBiAFPcQ1gIAIQvAUMXgsgAigCCCEEIANBkAJqIgYgAigCBCIFQeAA/AoAACADQfACaiIHIARB4AD8CgAAIANBgAFqIgggASAGEMgBAkAgAygCgAFBfkYEQEEDEJABIgJFDWAgAkHFhcYALQAAOgACIAJBw4XGAC8AADsAACADQQM2AogBIAMgAjYChAEgA0EDNgKAASABIAgQ/A0gACABIAcQyAEMAQsgACADKQKoATcCKCAAIAMpAqABNwIgIAAgAykCmAE3AhggACADKQKQATcCECAAIAMpAogB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IANB8AJqIgYgBEHgAPwKAAAgACABIAUgBkEAEIwJIARBBGsoAgAiAEEDcSEBIABBeHFB5ABB6AAgARtJDVcgAUEARyAAQYgBT3ENViAEELwFIAJBBGsoAgAiAEEDcSEBIABBeHFB5ABB6AAgARtJDVcgAUEARyAAQYgBT3ENViACELwFDFQLIAIoAgghBCADQZACaiIFIAIoAgQiAkHgAPwKAAAgA0HwAmoiBiAEQeAA/AoAACAAIAEgBSAGQQEQjAkgBEEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNViABQQBHIABBiAFPcQ1VIAQQvAUgAkEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNViABQQBHIABBiAFPcQ1VIAIQvAUMUwsgAigCBCECQQMQkAEiBA0eDFMLIAIoAgQhAkEDEJABIgQNHgxSCyACKAIEIQRBBhCQASICDR5BARCnFAALIAIoAgQhBEEKEJABIgINHkEBEKcUAAsgAygC8AJBBEYNBAxKCyADQZACaiICIANB8AJqQeAA/AoAACADQYABaiADQdgDakHIAPwKAAAgA0HgAWogASACEMgBAkAgAygC4AFBfkcEQAwBCyADQeABaiABQbCCxgBBAxDXEiADKALgAUF+Rg0HCyAAIAMpAogCNwIoIAAgAykCgAI3AiAgACADKQL4ATcCGCAAIAMpAvABNwIQIAAgAykC6AE3AgggACADKQLgATcCACADQYABahD0EQxECwJAAkACQCADKALwAkEERgRAIAMoAvwCQQFGDQELIANBkAJqIgIgA0HwAmpB4AD8CgAAIANBgAFqIANB2ANqQcgA/AoAACADQeABaiABIAIQyAEgAygC4AFBfkYNAQwCCyADIAMoAvwCIgI2AugBIAMgAykC9AI3A+ABIAJFDSAgAyACQQFrIgI2AugBIAMoAuQBIAJB4ABsaiICKAIAIgRBf0YNICADQZACaiIHIAJBBGpB3AD8CgAAQeAAEKwUIgIgBDYCACACQQRqIAdB3AD8CgAAQeAAEKwUIgQgBkHgAPwKAAAgAyAENgKIASADIAI2AoQBIANBhoCAgHg2AoABIAAgASADQYABahAzIANB4AFqEKMOQQAhAgxGCyADQeABaiABQcyCxgBBBBDXEiADKALgAUF+Rg0gCyAAIAMpAogCNwIoIAAgAykCgAI3AiAgACADKQL4ATcCGCAAIAMpAvABNwIQIAAgAykC6AE3AgggACADKQLgATcCACADQYABahD0EQxDCyADKALcAw1HIAAgAUHQgsYAQQMQ1xJBASECQQEhASADKALwAkEERg0CDEQLIANBGGogAygC1AMiAhDkEiADKAIcQQFHDUYgAygCGCgCAEEBRw1GIANBkAJqIgQgA0HwAmpB4AD8CgAAIANBgAFqIAEgBBDIASADKAKAAUF+RwRAIAAgAykCqAE3AiggACADKQKgATcCICAAIAMpApgBNwIYIAAgAykCkAE3AhAgACADKQKIATcCCCAAIAMpAoABNwIAIAIQshAMQgsgA0GAAWogAUHMgsYAQQQQ1xIgAygCgAFBfkcEQCAAIAMpAqgBNwIoIAAgAykCoAE3AiAgACADKQKYATcCGCAAIAMpApABNwIQIAAgAykCiAE3AgggACADKQKAATcCACACELIQDEILIANBEGogAhDkEiADKAIURQ0eIAMoAhAiBCgCAEEBRw0eIANBCGogAigCABCIEiADIAMoAgw2AlQgAyADKAIIIgc2AlAgBwRAIAMgA0HQAGo2AnAgA0GAAWoiByAEQQhqEIsCIAMgA0HwAGqtQoCAgICgAoQ3A+ABIANBxABqIgQgA0HgAWoQzBIgACABIAcgBBCrESACELIQDEALQdOCxgBB9wBBkIPGABC/EwALIAMoAtQDIgRBCGooAgAEQCAEQQRqKAIAKAIIIgkNAgsgACABQdCCxgBBAxDXEgsgA0HwAmpBBHIQow5BASECQQEhAQxCC0EBIQIgA0HwAmpBBHIhBwJAIAlBAUcNACADKAL8AkEBRw0AIAMgBygCCCICNgJYIAMgBykCADcDUCACRQ0dIAMgAkEBayICNgJYIAMoAlQgAkHgAGxqIgIoAgAiB0F/Rg0dIAMgBzYCkAIgA0GQAmoiB0EEciACQQRqQdwA/AoAACADIAQoAgg2AogBIAMgBCkCADcDgAEgA0HgAWogA0GAAWoiAhDlBSADKALgAUF/Rg0eIAMgAygC6AE2AkAgAyADKQLgATcDOCACIAEgBxDIAQJAIAMoAoABQX5HBEAMAQsgA0GAAWogAUHMgsYAQQQQ1xIgAygCgAFBfkYNIAsgACADKQKoATcCKCAAIAMpAqABNwIgIAAgAykCmAE3AhggACADKQKQATcCECAAIAMpAogBNwIIIAAgAykCgAE3AgAgA0E4ahCjDiAEQQwQ2RIgA0HQAGoQow4gAygC8AJBBEYNPiADQfACahDNAQw+CyADIAcoAgg2AogBIAMgBykCADcDgAEgAyAEKAIINgKYAiADIAQpAgA3A5ACIAAgASADQYABaiADQZACakEAEJsQIARBDBDZEgw/CyAAIAEgA0GAAWoQzgoMOwsgAygC8AJBBEYNBAw2CyADQZACaiICIANB8AJqQeAA/AoAACADQYABaiADQdgDakHIAPwKAAAgA0HgAWogASACEMgBAkAgAygC4AFBfkcEQAwBCyADQeABaiABQdCDxgBBBBDXEiADKALgAUF+Rg0HCyAAIAMpAogCNwIoIAAgAykCgAI3AiAgACADKQL4ATcCGCAAIAMpAvABNwIQIAAgAykC6AE3AgggACADKQLgATcCACADQYABahD0EQwwCwJAAkACQCADKALwAkEERgRAIAMoAvwCQQFGDQELIANBkAJqIgIgA0HwAmpB4AD8CgAAIANBgAFqIANB2ANqQcgA/AoAACADQeABaiABIAIQyAEgAygC4AFBfkYNAQwCCyADIAMoAvwCIgI2AugBIAMgAykC9AI3A+ABIAJFDR0gAyACQQFrIgI2AugBIAMoAuQBIAJB4ABsaiICKAIAIgRBf0YNHSADQZACaiIHIAJBBGpB3AD8CgAAQeAAEKwUIgIgBDYCACACQQRqIAdB3AD8CgAAQeAAEKwUIgQgBkHgAPwKAAAgAyAENgKIASADIAI2AoQBIANBh4CAgHg2AoABIAAgASADQYABahAzIANB4AFqEKMOQQAhAgwyCyADQeABaiABQeSDxgBBCBDXEiADKALgAUF+Rg0dCyAAIAMpAogCNwIoIAAgAykCgAI3AiAgACADKQL4ATcCGCAAIAMpAvABNwIQIAAgAykC6AE3AgggACADKQLgATcCACADQYABahD0EQwvCyADKALcAw0zIAAgAUHsg8YAQQMQ1xJBASECQQEhASADKALwAkEERg0CDDALIANBMGogAygC1AMiAhDkEiADKAI0QQFHDTIgAygCMCgCAEEBRw0yIANBkAJqIgQgA0HwAmpB4AD8CgAAIANBgAFqIAEgBBDIASADKAKAAUF+RwRAIAAgAykCqAE3Aigg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AiggACADKQKQAzcCICAAIAMpAogDNwIYIAAgAykCgAM3AhAgACADKQL4AjcCCCAAIAMpAvACNwIACyADQYABahCiEAsgBEEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNGyABQQBHIABBiAFPcQ0aIAQQvAUgBUEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNGyABQQBHIABBiAFPcQ0aIAUQvAUMGAtBARCnFAALIANB8AJqIgYgAkHgAPwKAAAgACABIAYQyAEgAkHgABDZEiAEQeAAENkSIAVB4AAQ2RIMFgtBASEBDAULIAMoAsADIgBBfkYNACAAQX9GDQAgAEUNACADKALEAyAAENkSCyADKALQAyIAQQlNQQBBASAAdEHDBHEbRQRAIAYQzQELIAMoAqAEIgBBfkYNByAAQX9GDQcgAEUNByADKAKkBCAAENkSDAcLQQAhASADKALwAkEERg0BCyADQfACahDNAQsCQCADKALAAyIAQX5GDQAgAEF/Rg0AIABFDQAgAygCxAMgABDZEgsgAkUNAgsCQAJAAkAgAygC0AMOCgICAQEBAQIBAQABCyABRQ0BIAMoAtQDEOYSDAELIAYQzQELIAMoAqAEIgBBfkYNASAAQX9GDQEgAEUNASADKAKkBCAAENkSDAELIANBgAFqIgIgA0HwAmpB4AD8CgAAIANBkAJqIAZB4AD8CgAAIANB4AFqIAEgAhDIASADKALgAUF+RwRADAILIANB4AFqIAFB5IPGAEEIENcSIAMoAuABQX5HBEAMAgsgACABIANBkAJqEMgBCyAIQeAAENkSIAVB4AAQ2RIMDQsgACADKQKIAjcCKCAAIAMpAoACNwIgIAAgAykC+AE3AhggACADKQLwATcCECAAIAMpAugBNwIIIAAgAykC4AE3AgAgA0GQAmoQ5hELIAhBBGsoAgAiAEEDcSEBAkAgAEF4cUHkAEHoACABG0kNDyABQQBHIABBiAFPcQ0OIAgQvAUgBUEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNDyABQQBHIABBiAFPcQ0AIAUQvAUMDAsMDQtBASEBDAULIAMoAsADIgBBfkYNACAAQX9GDQAgAEUNACADKALEAyAAENkSCyADKALQAyIAQQlNQQBBASAAdEHDBHEbRQRAIAYQzQELIAMo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fkYNBwsgACADKQLIAzcCKCAAIAMpAsADNwIgIAAgAykCuAM3AhggACADKQKwAzcCECAAIAMpAqgDNwIIIAAgAykCoAM3AgAgA0FAaxDyEQxECwJAAkACQCADKAKQBUEERgRAIAMoApwFQQFGDQELIANBsARqIgIgA0GQBWpB4AD8CgAAIANBiAFqIANB+AVqQcgA/AoAACADQaADaiABIAIQyQEgAygCoANBfkYNAQwCCyADIAMoApwFIgI2AogEIAMgAykClAU3A4AEIAJFDSAgAyACQQFrIgI2AogEIAMoAoQEIAJB4ABsaiICKAIAIgRBf0YNICADQbAEaiIHIAJBBGpB3AD8CgAAEKsUIgIgBDYCACACQQRqIAdB3AD8CgAAEKsUIgQgBkHgAPwKAAAgAyAENgKoAyADIAI2AqQDIANBhoCAgHg2AqADIAAgASADQaADahA0IANBgARqEMEOQQAhAgxGCyADQaADaiABQcyCxgBBBBDXEiADKAKgA0F+Rg0gCyAAIAMpAsgDNwIoIAAgAykCwAM3AiAgACADKQK4AzcCGCAAIAMpArADNwIQIAAgAykCqAM3AgggACADKQKgAzcCACADQYgBahDyEQxDCyADKAL8BQ1HIAAgAUHQgsYAQQMQ1xJBASECQQEhACADKAKQBUEERg0CDEQLIANBEGogAygC9AUiAhDkEiADKAIUQQFHDUYgAygCECgCAEEBRw1GIANBsARqIgQgA0GQBWpB4AD8CgAAIANBoANqIAEgBBDJASADKAKgA0F+RwRAIAAgAykCyAM3AiggACADKQLAAzcCICAAIAMpArgDNwIYIAAgAykCsAM3AhAgACADKQKoAzcCCCAAIAMpAqADNwIAIAIQ8hIMQgsgA0GgA2ogAUHMgsYAQQQQ1xIgAygCoANBfkcEQCAAIAMpAsgDNwIoIAAgAykCwAM3AiAgACADKQK4AzcCGCAAIAMpArADNwIQIAAgAykCqAM3AgggACADKQKgAzcCACACEPISDEILIANBCGogAhDkEiADKAIMRQ0eIAMoAggiBCgCAEEBRw0eIAMgAigCABCIEiADIAMoAgQ2AuQBIAMgAygCACIHNgLgASAHBEAgAyADQeABajYCkAMgA0GgA2oiByAEQQhqEIoCIAMgA0GQA2qtQoCAgICgAoQ3A4AEIANB1AFqIgQgA0GABGoQzBIgACABIAcgBBCrESACEPISDEALQdOCxgBB9wBBkIPGABC/EwALIAMoAvQFIgRBCGooAgAEQCAEQQRqKAIAKAIIIgkNAgsgACABQdCCxgBBAxDXEgsgA0GQBWpBBHIQwQ5BASECQQEhAAxCC0EBIQIgA0GQBWpBBHIhBwJAIAlBAUcNACADKAKcBUEBRw0AIAMgBygCCCICNgLoASADIAcpAgA3A+ABIAJFDR0gAyACQQFrIgI2AugBIAMoAuQBIAJB4ABsaiICKAIAIgdBf0YNHSADIAc2ArAEIANBsARqIgdBBHIgAkEEakHcAPwKAAAgAyAEKAIINgKoAyADIAQpAgA3A6ADIANBgARqIANBoANqIgIQ5QUgAygCgARBf0YNHiADIAMoAogENgI4IAMgAykCgAQ3AzAgAiABIAcQyQECQCADKAKgA0F+RwRADAELIANBoANqIAFBzILGAEEEENcSIAMoAqADQX5GDSALIAAgAykCyAM3AiggACADKQLAAzcCICAAIAMpArgDNwIYIAAgAykCsAM3AhAgACADKQKoAzcCCCAAIAMpAqADNwIAIANBMGoQwQ4gBEEMENkSIANB4AFqEMEOIAMoApAFQQRGDT4gA0GQBWoQrQEMPgsgAyAHKAIINgKoAyADIAcpAgA3A6ADIAMgBCgCCDYCuAQgAyAEKQIANwOwBCAAIAEgA0GgA2ogA0GwBGpBABCZECAEQQwQ2RIMPwsgACABIANBQGsQzgoMOwsgAygCkAVBBEYNBAw2CyADQbAEaiICIANBkAVqQeAA/AoAACADQYACaiADQfgFakHIAPwKAAAgA0GgA2ogASACEMkBAkAgAygCoANBfkcEQAwBCyADQaADaiABQdCDxgBBBBDXEiADKAKgA0F+Rg0HCyAAIAMpAsgDNwIoIAAgAykCwAM3AiAgACADKQK4AzcCGCAAIAMpArADNwIQIAAgAykCqAM3AgggACADKQKgAzcCACADQYACahDyEQwwCwJAAkACQCADKAKQBUEERgRAIAMoApwFQQFGDQELIANBsARqIgIgA0GQBWpB4AD8CgAAIANByAJqIANB+AVqQcgA/AoAACADQaADaiABIAIQyQEgAygCoANBfkYNAQwCCyADIAMoApwFIgI2AogEIAMgAykClAU3A4AEIAJFDR0g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G0kNHyABQQBHIABBiAFPcQ0eIAQQvAUgBUEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNHyABQQBHIABBiAFPcQ0eIAUQvAUMHAtBARCnFAALIANBkAVqIgYgAkHgAPwKAAAgACABIAYQyQEgAkHgABDZEiAEQeAAENkSIAVB4AAQ2RIMGgtBCRCQASIGRQ0BIAZBxITGAC0AADoACCAGQbyExgApAAA3AAAgA0EJNgKYBSADIAY2ApQFIANBCTYCkAUgASADQZAFaiIGEPwNIAYgBEHgAPwKAAAgA0GwBGogASAGEMkBAkAgAygCsARBfkcEQCAAIAMpAtgENwIoIAAgAykC0AQ3AiAgACADKQLIBDcCGCAAIAMpAsAENwIQIAAgAykCuAQ3AgggACADKQKwBDcCAAwBCyADQZAFaiABQYfYxQBBBRDXEiADKAKQBUF+Rg0DIAAgAykCuAU3AiggACADKQKwBTcCICAAIAMpAqgFNwIYIAAgAykCoAU3AhAgACADKQKYBTcCCCAAIAMpApAFNwIACyADQaADahDDEAsgBEEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNGyABQQBHIABBiAFPcQ0aIAQQvAUgBUEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNGyABQQBHIABBiAFPcQ0aIAUQvAUMGAtBARCnFAALIANBkAVqIgYgAkHgAPwKAAAgACABIAYQyQEgAkHgABDZEiAEQeAAENkSIAVB4AAQ2RIMFgtBASEADAULIAMoAuAFIgBBAEwNACADKALkBSAAENkSCyADKALwBSIAQQlNQQBBASAAdEHDBHEbRQRAIAYQrQELIAMoAsAGIgBBAEwNByADKALEBiAAENkSDAcLQQAhACADKAKQBUEERg0BCyADQZAFahCtAQsgAygC4AUiAUEASgRAIAMoAuQFIAEQ2RILIAJFDQILAkACQAJAIAMoAvAFDgoCAgEBAQECAQEAAQsgAEUNASADKAL0BRDlEgwBCyAGEK0BCyADKALABiIAQQBMDQEgAygCxAYgABDZEgwBCyADQaADaiICIANBkAVqQeAA/AoAACADQbAEaiAGQeAA/AoAACADQYAEaiABIAIQyQEgAygCgARBfkcEQAwCCyADQYAEaiABQeSDxgBBCBDXEiADKAKABEF+RwRADAILIAAgASADQbAEahDJAQsgCEHgABDZEiAFQeAAENkSDA0LIAAgAykCqAQ3AiggACADKQKgBDcCICAAIAMpApgENwIYIAAgAykCkAQ3AhAgACADKQKIBDcCCCAAIAMpAoAENwIAIANBsARqEIESCyAIQQRrKAIAIgBBA3EhAQJAIABBeHFB5ABB6AAgARtJDQ8gAUEARyAAQYgBT3ENDiAIELwFIAVBBGsoAgAiAEEDcSEBIABBeHFB5ABB6AAgARtJDQ8gAUEARyAAQYgBT3ENACAFELwFDAwLDA0LQQEhAAwFCyADKALgBSIAQQBMDQAgAygC5AUgABDZEgsgAygC8AUiAEEJTUEAQQEgAHRBwwRxG0UEQCAGEK0BCyADKALABiIAQQBMDQcgAygCxAYgABDZEgwHC0EAIQAgAygCkAVBBEYNAQsgA0GQBWoQrQELIAMoAuAFIgFBAEoEQCADKALkBSABENkSCyACRQ0CCwJAAkACQCADKALwBQ4KAgIBAQEBAgEBAAELIABFDQEgAygC9AUQ5RIMAQsgBhCtAQsgAygCwAYiAEEATA0BIAMoAsQGIAAQ2RIMAQsgA0GgA2oiAiADQZAFakHgAPwKAAAgA0GwBGogBkHgAPwKAAAgA0GABGogASACEMkBIAMoAoAEQX5HBEAMAgsgA0GABGogAUHMgsYAQQQQ1xIgAygCgARBfkcEQAwCCyAAIAEgA0GwBGoQyQELIAhB4AAQ2RIgBUHgABDZEgwCCyAAIAMpAqgENwIoIAAgAykCoAQ3AiAgACADKQKYBDcCGCAAIAMpApAENwIQIAAgAykCiAQ3AgggACADKQKABDcCACADQbAEahCBEgsgCEEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNAyABQQBHIABBiAFPcQ0CIAgQvAUgBUEEaygCACIAQQNxIQEgAEF4cUHkAEHoACABG0kNAyABQQBHIABBiAFPcQ0CIAUQvAULIANBoAdqJAAPC0EBEKcUAAtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQQEQpxQAC/9cBA5/B34BfAF9IwBBwAFrIgYkAAJAAkACQAJAAkACQAJAAkACQAJAIAEtACRFBEAgA1ANCgJAIANC/////////w9WDQAgBEUEQCADuiEaDAwLIARBFmpBLU8EQCAEQSZPDQEgBkFAayADQgAgBEEDdEHI8sgAaikDAEIAEO4RIAYpA0hCAFINASAGKQNAIhNC/////////w9WDQEgE7pEktVNBs/wgESiIRoMDAsgA7ohGiAEQQBMBEAgGkGIjskAIARBA3RrKwMAoyEaDAwLIARBA3QrA4iOSSAaoiEaDAsLQf////8HIARB3gJqIgUgBCAFShsiCEEKbSEHQQAhBQJAIAhBAEgEQEIAIRMMAQsgB0HBAEsEQEH/DyEJQoCAgICAgICAgH8hEwwBCyAIIAdBCmxrIgVBAEgNAiAGQTBqIANCACAFQQN0IggpA5jzSEIAEO4RAn8gBikDOFAEQEEAQQAgBikDMCITeacgE1AbIgVrIQggEyAFrYYhE0EEDAELIAgpA4jsSCIUQv////8PgyIVIAMgA3kiFoYiF0IgiCIYfiETIBRCIIgiGSAXQv////8PgyIXfiEUIBggGX4gE0IgiHwgFEIgiHwgFEL/////D4MgE0L/////D4N8IBUgF35CIIh8QoCAgIAIfEIgiHwhEyAFQQJ0KALY7EggFqdrQUBrIQhBCQshCiAHQQN0KQOA7UgiFUL/////D4MiFiATQiCIIhd+IRQgFUIgiCIVIBNC/////w+DIhh+IRNBACAVIBd+IBRCIIh8IBNCIIh8IBNC/////w+DIBRC/////w+DfCAWIBh+QiCIfEKAgICACHxCIIh8IhN5pyATUBshBSATIAWthiETIAggB0ECdCgCkPFIaiAFayIHQUBrIQkCQEELQY53IAdrIAlBw3dOGyIHQcEASw0AIAetIRYgCiAFdK0hFSATIRQCQAJAAkAgB0FAag4CAQIACyATQn8gFoZCf4WDIRQLQgEgFkIBfYYiFiAVfSAUWg0BIBQgFSAWfFoNAQwMCyAVIBNCf4VWDQsLQQAgE3mnIBNQGyEFCyATIAWthiETIAkgBWsiBEELaiIFQc53TgRAIBNCC4ghAyATQv8Pg0KACFYNCCATQv8fg0KAGFINCQwICyAEQY13TQ0KIARBjndGBEAgE0KAgICAgICAgIB/WA0LQgAhA0HOdyEFDAgLIBNBzncgBGutIhSIIQMgE0J/IBSGQn+FgyITQgEgFEIBfYYiFFYEQEHOdyEFDAgLQc53IQUgA0IBg1ANCCATIBRRDQcMCAsgA1ANBQJAIANC////B1YNACAERQRAIAO1IRsMBwsgBEEKakEVTwRAIARBEk8NASAGQSBqIANCACAEQQN0QajzyABqKQMAQgAQ7hEgBikDKEIAUg0BIAYpAyAiE0L///8HVg0BIBO1Q/kCFVCUIRsMBwsgA7UhGyAEQQBMBEAgG0GMlskAIARBAnRrKgIAlSEbDAcLIARBAnQqAoyWSSAblCEbDAYLQf////8HIARB3gJqIgUgBCAFShsiCEEKbSEHQQAhBQJAIAhBAEgEQEIAIRMMAQsgB0HBAEsEQEKAgICAgICAgIB/IRNB/w8hCQwBCyAIIAdBCmxrIgVBAEgNAiAGQRBqIANCACAFQQN0IggpA5jzSEIAEO4RAn8gBikDGFAEQEEAQQAgBikDECITeacgE1AbIgVrIQggEyAFrYYhE0EEDAELIAgpA4jsSCIUQv////8PgyIVIAMgA3kiFoYiF0IgiCIYfiETIBRCIIgiGSAXQv////8PgyIXfiEUIBggGX4gE0IgiHwgFEIgiHwgFEL/////D4MgE0L/////D4N8IBUgF35CIIh8QoCAgIAIfEIgiHwhEyAFQQJ0KALY7EggFqdrQUBrIQhBCQshCiAHQQN0KQOA7UgiFUL/////D4MiFiATQiCIIhd+IRQgFUIgiCIVIBNC/////w+DIhh+IRNBACAVIBd+IBRCIIh8IBNCIIh8IBNC/////w+DIBRC/////w+DfCAWIBh+QiCIfEKAgICACHxCIIh8IhN5pyATUBshBSATIAWthiETIAggB0ECdCgCkPFIaiAFayIHQUBrIQkCQEEoQat+IAdrIAlBw35OGyIHQcEASw0AIAetIRYgCiAFdK0hFSATIRQCQAJAAkAgB0FAag4CAQIACyATQn8gFoZCf4WDIRQLQgEgFkIBfYYiFiAVfSAUWg0BIBQgFSAWfFoNAQwHCyAVIBNCf4VWDQYLQQAgE3mnIBNQGyEFCyATIAWthiETIAkgBWsiBEEoaiIFQet+TgRAIBNCKIghAyATQv//////H4NCgICAgIAQVg0DIBNC//////8/g0KAgICAgDBSDQQMAwsgBEGqfk0NBSAEQat+RgRAIBNCgICAgICAgICAf1gNBkIAIQNB634hBQwDCyATQet+IARrrSIUiCEDIBNCfyAUhkJ/hYMiE0IBIBRCAX2GIhRWBEBB634hBQwDC0HrfiEFIANCAYNQDQMgEyAUUQ0CDAMLIAVBCkHo88gAEIUTAAsgBUEKQejzyAAQhRMACyADQgF8IQMLIANCgICABCADQoCAgAiDIhNQGyEDAkACQCAFIBNCGIinaiIEQekAa0EYSQRAQn9CGCAEQegAa60iE32GQoCAgHiFIAODUA0BCyADUA0DIARB635IDQNDAACAfyEbIARB6ABMDQEMAwsgA1ANAiADIBOGIQNB6AAhBAsgA0L///8DgyAEQRd0QYCAgNgEaq0iEyADQiiGQj+HgyATIARB635GG4SnviEbDAELIBNBACATeacgE1AbIgWthiETAkAgCSAFayIFQShqIglB635OBH4gE0IoiAUgBUGqfk0EQAwCC0HrfiEJIBNBKyAFa62IQgAgBUGrfkcbCyITIBNCGIhCAYMiFIghEwJAAkAgCSAUp2oiBUHpAGtBGEkEQEJ/QhggBUHoAGutIhR9hkKAgIB4hSATg1ANAQsgE1ANAiAFQet+SA0CIAVB6ABMDQFDAACAfyEbDAILQegAIQUgEyAUhiITQgBSDQAMAQsgE0L///8DgyAFQRd0QYCAgNgEaq0iFCATQiiGQj+HgyAUIAVB635GG4SnviEbCyAbvCIOQf////8HcUH////7B0sNAEEUIQUgA0KQzgBaBEADQCAGQdgAaiAFaiIHQQRrIAMiEyADQpDOAIAiA0KQzgB+faciCEH//wNxQeQAbiIKQQF0LwCcmEk7AAAgB0ECayAIIApB5ABsa0H//wNxQQF0LwCcmEk7AAAgBUEEayEFIBNC/8HXL1YNAAsLAkAgA0LjAFgEQCADpyEJDAELIAOnIgdB//8DcUHkAG4hCSAFQQJrIgUgBkHYAGpqIAcgCUHkAGxrQf//A3FBAXQvAJyYSTsAAAsCQCAJQQpPBEAgBUECayIKIAZB2ABqaiAJQQF0LwCcmEk7AAAMAQsgBUEBayIKIAZB2ABqaiAJQTByOgAAC0ETIAprIgcgBGoiBUEfdUGAgICAeHMgBSAHQQBIIAQgBUpzG0HyAEEUIAprIg8gD0HyAE8bayIQQQFqIQ0gBkGwAWoQ8xNBACEEAkACQANAAkAgCkEURgRAIA8hCQwBCyAGQdgAaiAKai0AACAEQQhGBEAgBigCtAEhCAJAIAYCfwJAIAYoArgBIgdFDQAgB0EBa0H/////A3EiCUEBaiISQQNxIQVCACEDIAghBAJAIAlBA08EQCASQfz///8HcSEJA0AgBCAENQIAQoDC1y9+IAN8IgM+AgAgBEEEaiISNQIAQoDC1y9+IANCIIh8IQMgEiADPgIAIARBCGoiEjUCAEKAwtcvfiADQiCIfCEDIBIgAz4CACAEQQxqIhI1AgBCgMLXL34gA0IgiHwhAyASIAM+AgAgA0IgiCEDIARBEGohBCAJQQRrIgkNAAsgBUUNAQsDQCAEIAQ1AgBCgMLXL34gA3wiAz4CACAEQQRqIQQgA0IgiCEDIAVBAWsiBQ0ACwsCQCADUA0AIAOnIQQgBigCsAEgB0YEQCAGQbABahC8EiAGKAK0ASIIIAdBAnRqIAQ2AgAgBiAHQQFqIgc2ArgBDAELIAggB0ECdGogBDYCACAGIAdBAWoiBzYCuAEgB0UNAQsgCCAIKAIAIgQgC2oiBTYCAEEAIQsgBCAFTQ0CIAhBBGohBCAHIQUDQCAFQQFrIgVFBEAgBigCsAEgB0YEQCAGQbABahC8EgsgBigCtAEgB0ECdGpBATYCACAHQQFqDAMLIAQgBCgCAEEBaiIINgIAIARBBGohBCAIRQ0ACwwCCyAGKAKwAQR/IAgFIAZBsAFqELwSIAYoArQBCyALNgIAQQELNgK4AUEAIQsLQQAhBAtBMGsiBUEJSw0CIApBAWohCiAEQQFqIQQgC0EKbCAFaiELQfEAIQkgDEEBaiIMQfEARw0BCwsgBEUNASAEQQpJBEAgBigCtAEhBwJAIAYoArgBIgxFDQAgBEECdDUCvOtIIQMgDEEBa0H/////A3EiCEEBaiIKQQNxIQVCACETIAchBAJAIAhBA08EQCAKQfz///8HcSEIA0AgBCAENQIAIAN+IBN8IhM+AgAgBEEEaiIKNQIAIAN+IBNCIIh8IRMgCiATPgIAIARBCGoiCjUCACADfiATQiCIfCETIAogEz4CACAEQQxqIgo1AgAgA34gE0IgiHwhEyAKIBM+AgAgE0IgiCETIARBEGohBCAIQQRrIggNAAsgBUUNAQsDQCAEIAQ1AgAgA34gE3wiEz4CACAEQQRqIQQgE0IgiCETIAVBAWsiBQ0ACwsCQCATUA0AIBOnIQQgBigCsAEgDEYEQCAGQbABahC8EiAGKAK0ASIHIAxBAnRqIAQ2AgAgBiAMQQFqIgw2ArgBDAELIAcgDEECdGogBDYCACAGIAxBAWoiDDYCuAEgDEUNAQsgByAHKAIAIgQgC2oiBTYCACAEIAVNDQMgB0EEaiEEIAwhBQNAIAVBAWsiBUUEQCAGKAKwASAMRgRAIAZBsAFqELwSCyAGKAK0ASAMQQJ0akEBNgIAIAYgDEEBajYCuAEMBQsgBCAEKAIAQQFqIgc2AgAgBEEEaiEEIAdFDQALDAMLIAYoArABBH8gBwUgBkGwAWoQvBIgBigCtAELIAs2AgAgBkEBNgK4AQwCCyAEQQpB9OvIABCFEwALQeTryAAQnRUACwJAIAkgD08NACAGKAK0ASELAkAgBigCuAEiCkUNACAKQQFrQf////8DcSIHQQFqIghBA3EhBUIAIQMgCyEEAkAgB0EDTwRAIAhB/P///wdxIQkDQCAEIAQ1AgBCCn4gA3wiAz4CACAEQQRqIgc1AgBCCn4gA0IgiHwhAyAHIAM+AgAgBEEIaiIHNQIAQgp+IANCIIh8IQMgByADPgIAIARBDGoiBzUCAEIKfiADQiCIfCEDIAcgAz4CACADQiCIIQMgBEEQaiEEIAlBBGsiCQ0ACyAFRQ0BCwNAIAQgBDUCAEIKfiADfCIDPgIAIARBBGohBCADQiCIIQMgBUEBayIFDQALCwJAIANQDQAgA6chBCAGKAKwASAKRgRAIAZBsAFqELwSIAYoArQBIgsgCkECdGogBDYCACAGIApBAWoiCjYCuAEMAQsgCyAKQQJ0aiAENgIAIAYgCkEBaiIKNgK4ASAKRQ0BCyALIAsoAgBBAWoiBDYCACAEDQEgC0EEaiEEIAohBQNAIAVBAWsiBUUEQCAGKAKwASAKRgRAIAZBsAFqELwSCyAGKAK0ASAKQQJ0akEBNgIAIAYgCkEBajYCuAEMAwsgBCAEKAIAQQFqIgc2AgAgBEEEaiEEIAdFDQALDAELIAYoArABBH8gCwUgBkGwAWoQvBIgBigCtAELQQE2AgAgBkEBNgK4AQsgBiAGKAK4ATYCiAEgBiAGKQKwATcDgAEgDUEASARAIAYgBigCiAE2ApgBIAYgBikDgAE3A5ABIA5BF3ZB/wFxQZYBayAOQQF0Qf7//wdxQYGAgAhBASAOQYCAgPwHcSIFG3KtIQMgBkGwAWoiBxDzEyAGKAKwASAGKAK4ASIJa0EBTQRAIAcgCUECQQRBBBCzESAGKAK4ASEJC0HrfiAFGyEHIAYoArQBIgggCUECdGoiBSADNwIAAn8gCUECaiAIIAlBAWoiBEECdGooAgANABoCQANAIAQEQCAEQQFrIQQgBSgCACAFQQRrIQVFDQEMAgsLQQAMAQsgBEEBagshBCAGIAYpArABNwOgASAGIAQ2AqgBIAZBoAFqIBBBf3MQgQQCQAJAAkACQCAHIBBrIgVBAmsiBEEATARAIARBAE4NBEECIAVrIgRBBXYhDyAEQR9xIgdFDQNBICAHayEJIAYoApQBIQUgBigCmAEiDA0BQQAhCAwCCyAEQQV2IQ8CQCAEQR9xIgdFDQBBICAHayEJIAYoAqQBIQUCQCAGKAKoASIMRQRAQQAhCAwBCyAMQQFrQf////8DcSILQQFqIg1BA3EhCkEAIQggBSEEIAtBA08EQCANQfz///8HcSELA0AgBCAEKAIAIg0gB3QgCCAJdnI2AgAgBEEEaiIQKAIAIQggECAIIAd0IA0gCXZyNgIAIARBCGoiECgCACENIBAgDSAHdCAIIAl2cjYCACAEQQxqIhAoAgAhCCAQIAggB3QgDSAJdnI2AgAgBEEQaiEEIAtBBGsiCw0ACyAKRQ0BCwNAIAggCXYhCyAEIAsgBCgCACIIIAd0cjYCACAEQQRqIQQgCkEBayIKDQALCyAIIAl2IgRFDQAgBigCoAEgDEYEfyAGQaABahC8EiAGKAKkAQUgBQsgDEECdGogBDYCACAGIAxBAWo2AqgBCyAPRQ0DIAZBoAFqIA8Q7AYMAwsgDEEBa0H/////A3EiC0EBaiINQQNxIQpBACEIIAUhBCALQQNPBEAgDUH8////B3EhCwNAIAQgBCgCACINIAd0IAggCXZyNgIAIARBBGoiECgCACEIIBAgCCAHdCANIAl2cjYCACAEQQhqIhAoAgAhDSAQIA0gB3QgCCAJdnI2AgAgBEEMaiIQKAIAIQggECAIIAd0IA0gCXZyNgIAIARBEGohBCALQQRrIgsNAAsgCkUNAQsDQCAIIAl2IQsgBCALIAQoAgAiCCAHdHI2AgAgBEEEaiEEIApBAWsiCg0ACwsgCCAJdiIERQ0AIAYoApABIAxGBH8gBkGQAWoQvBIgBigClAEFIAULIAxBAnRqIAQ2AgAgBiAMQQFqNgKYAQsgD0UNACAGQZABaiAPEOwGCyAGKAKkASEHIAYoApQBIQgCQAJAIAYoApgBIgQgBigCqAEiBUsNACAEIAVJDQEgBUECdCEFIAdBBGshCiAEQQJ0IQQgCEEEayEJA0ACQCAERQ0AIAVFDQAgBCAJaigCACILIAUgCmooAgAiDEsNAiAFQQRrIQUgBEEEayEEIAsgDE8NAQwDCwsgDkEBar4gGyAOQQFxGyEbDAELIA5BAWq+IRsLIAYoAqABIgQEQCAHIARBAnQQ2RILIAYoApABIgRFDQEgCCAEQQJ0ENkSDAELIAYgBigCiAE2ArgBIAYgBikDgAE3A7ABIAZBsAFqIA0QgQQgDUEFdiEPAkAgDUEfcSIHRQ0AQSAgB2shCSAGKAK0ASEFAkAgBigCuAEiDEUEQEEAIQgMAQsgDEEBa0H/////A3EiC0EBaiIOQQNxIQpBACEIIAUhBCALQQNPBEAgDkH8////B3EhCwNAIAQgBCgCACIOIAd0IAggCXZyNgIAIARBBGoiDSgCACEIIA0gCCAHdCAOIAl2cjYCACAEQQhqIg0oAgAhDiANIA4gB3QgCCAJdnI2AgAgBEEMaiINKAIAIQggDSAIIAd0IA4gCXZyNgIAIARBEGohBCALQQRrIgsNAAsgCkUNAQsDQCAIIAl2IQsgBCALIAQoAgAiCCAHdHI2AgAgBEEEaiEEIApBAWsiCg0ACwsgCCAJdiIERQ0AIAYoArABIAxGBH8gBkGwAWoQvBIgBigCtAEFIAULIAxBAnRqIAQ2AgAgBiAMQQFqNgK4AQsgDwRAIAZBsAFqIA8Q7AYLQgAhAyAGKAK0ASEHQQAhCAJAAn4CQAJAAkACQCAGKAK4ASIKIgUOAwUBAgALIAcgCkECdCIIaiIEQQxrKQIAIgMgBEEEaygCACIFZyIJQSBzrSIThkIAUg0CIAdBEGshCwNAIAgiBEEMRwRAIARBBGshCCAEIAtqKAIARQ0BCwsgBEEMRyEIIAWtIBOGIANBICAJa62IhCIDIAoNAxpBACEFDAQLIAcoAgAiBK0gBGdBIHOthgwCCyAHKQIAIgMgA3mGDAELQQEhCCAFrSAThiADQSAgCWutiIQLIQMgByAKQQJ0akEEaygCAGchBQsgA0EAIAN5pyADUBsiBK2GIRMCQAJAAkACQAJAAkACQAJAQb9/IApBBXQgBWtBQGogCkH///8/SxsgBGsiBUEoaiIEQet+TgRAIBNCKIghAyATQv//////H4MiFEKAgICAgBBRDQEgFEKAgICAgBBWDQUMBgsgBUGqfk0NBiAFQat+Rw0BIBNCgICAgICAgICAf1YhBUIAIQMgE0KAgICAgICAgIB/Ug0CDAMLIAggE0KAgICAgCCDQiiIp3JFDQQMAwsgE0J/Qet+IAVrrSIDhkJ/hYMiFEIBIANCAX2GIhVWIQUgEyADiCEDIBQgFVENAQtB634hBCAFDQEMAgtB634hBCAIDQAgBSADp3JBAXFFDQELIANCAXwhAwsgA0KAgIAEIANCgICACIMiE1AbIQMCQAJAIAQgE0IYiKdqIgRB6QBrQRhJBEBCf0IYIARB6ABrrSITfYZCgICAeIUgA4NQDQELQwAAAAAhGyADUA0DIARB635IDQMgBEHoAEwNAUMAAIB/IRsMAwsgA1ANASADIBOGIQNB6AAhBAsgA0L///8DgyAEQRd0QYCAgNgEaq0iEyADQiiGQj+HgyATIARB635GG4SnviEbDAELQwAAAAAhGwsgBigCsAEiBEUNACAHIARBAnQQ2RILIBu7IRoMAwsgA0IBfCEDCyADQoCAgICAgIAIIANCgICAgICAgBCDIhNQGyEDAkACQCAFIBNCNYinaiIEQcwHa0E1SQRAQn9CNSAEQcsHa60iE32GQoCAgICAgIBwhSADg1ANAQsgA1ANAyAEQc53SA0DRAAAAAAAAPB/IRogBEHLB0oNAwwBC0HLByEEIAMgE4YiA1ANAgsgA0L/////////B4MgBEGzCGqtQjSGIhMgA0ILhkI/h4MgEyAEQc53RhuEvyEaDAELIBNBACATeacgE1AbIgWthiETAkAgCSAFayIFQQtqIglBzndOBH4gE0ILiAUgBUGNd00EQAwCC0HOdyEJIBNBDiAFa62IQgAgBUGOd0cbCyITIBNCNYhCAYMiFIghEwJAAkAgCSAUp2oiBUHMB2tBNUkEQEJ/QjUgBUHLB2utIhR9hkKAgICAgICAcIUgE4NQDQELIBNQDQIgBUHOd0gNAiAFQcsHTA0BRAAAAAAAAPB/IRoMAgtBywchBSATIBSGIhNCAFINAAwBCyATQv////////8HgyAFQbMIaq1CNIYiFCATQguGQj+HgyAUIAVBzndGG4S/IRoLIBq9IhRC////////////AINC//////////f/AFYNAEEUIQUgA0KQzgBaBEADQCAGQdgAaiAFaiIHQQRrIAMiEyADQpDOAIAiA0KQzgB+faciCEH//wNxQeQAbiIKQQF0LwCcmEk7AAAgB0ECayAIIApB5ABsa0H//wNxQQF0LwCcmEk7AAAgBUEEayEFIBNC/8HXL1YNAAsLAkAgA0LjAFgEQCADpyEJDAELIAOnIgdB//8DcUHkAG4hCSAFQQJrIgUgBkHYAGpqIAcgCUHkAGxrQf//A3FBAXQvAJyYSTsAAAsCQCAJQQpPBEAgBUECayIKIAZB2ABqaiAJQQF0LwCcmEk7AAAMAQsgBUEBayIKIAZB2ABqaiAJQTByOgAAC0ETIAprIgcgBGoiBUEfdUGAgICAeHMgBSAHQQBIIAQgBUpzG0GBBkEUIAprIg8gD0GBBk8bayINQQFqIQ4gBkGwAWoQ8xNBACEEAkACQANAAkAgCkEURgRAIA8hCQwBCyAGQdgAaiAKai0AACAEQQhGBEAgBigCtAEhCAJAIAYCfwJAIAYoArgBIgdFDQAgB0EBa0H/////A3EiCUEBaiIRQQNxIQVCACEDIAghBAJAIAlBA08EQCARQfz///8HcSEJA0AgBCAENQIAQoDC1y9+IAN8IgM+AgAgBEEEaiIRNQIAQoDC1y9+IANCIIh8IQMgESADPgIAIARBCGoiETUCAEKAwtcvfiADQiCIfCEDIBEgAz4CACAEQQxqIhE1AgBCgMLXL34gA0IgiHwhAyARIAM+AgAgA0IgiCEDIARBEGohBCAJQQRrIgkNAAsgBUUNAQsDQCAEIAQ1AgBCgMLXL34gA3wiAz4CACAEQQRqIQQgA0IgiCEDIAVBAWsiBQ0ACwsCQCADUA0AIAOnIQQgBigCsAEgB0YEQCAGQbABahC8EiAGKAK0ASIIIAdBAnRqIAQ2AgAgBiAHQQFqIgc2ArgBDAELIAggB0ECdGogBDYCACAGIAdBAWoiBzYCuAEgB0UNAQsgCCAIKAIAIgQgC2oiBTYCAEEAIQsgBCAFTQ0CIAhBBGohBCAHIQUDQCAFQQFrIgVFBEAgBigCsAEgB0YEQCAGQbABahC8EgsgBigCtAEgB0ECdGpBATYCACAHQQFqDAMLIAQgBCgCAEEBaiIINgIAIARBBGohBCAIRQ0ACwwCCyAGKAKwAQR/IAgFIAZBsAFqELwSIAYoArQBCyALNgIAQQELNgK4AUEAIQsLQQAhBAtBMGsiBUEJSw0CIApBAWohCiAEQQFqIQQgC0EKbCAFaiELQYAGIQkgDEEBaiIMQYAGRw0BCwsgBEUNASAEQQpJBEAgBigCtAEhBwJAIAYoArgBIgxFDQAgBEECdDUCvOtIIQMgDEEBa0H/////A3EiCEEBaiIKQQNxIQVCACETIAchBAJAIAhBA08EQCAKQfz///8HcSEIA0AgBCAENQIAIAN+IBN8IhM+AgAgBEEEaiIKNQIAIAN+IBNCIIh8IRMgCiATPgIAIARBCGoiCjUCACADfiATQiCIfCETIAogEz4CACAEQQxqIgo1AgAgA34gE0IgiHwhEyAKIBM+AgAgE0IgiCETIARBEGohBCAIQQRrIggNAAsgBUUNAQsDQCAEIAQ1AgAgA34gE3wiEz4CACAEQQRqIQQgE0IgiCETIAVBAWsiBQ0ACwsCQCATUA0AIBOnIQQgBigCsAEgDEYEQCAGQbABahC8EiAGKAK0ASIHIAxBAnRqIAQ2AgAgBiAMQQFqIgw2ArgBDAELIAcgDEECdGogBDYCACAGIAxBAWoiDDYCuAEgDEUNAQsgByAHKAIAIgQgC2oiBTYCACAEIAVNDQMgB0EEaiEEIAwhBQNAIAVBAWsiBUUEQCAGKAKwASAMRgRAIAZBsAFqELwSCyAGKAK0ASAMQQJ0akEBNgIAIAYgDEEBajYCuAEMBQsgBCAEKAIAQQFqIgc2AgAgBEEEaiEEIAdFDQALDAMLIAYoArABBH8gBwUgBkGwAWoQvBIgBigCtAELIAs2AgAgBkEBNgK4AQwCCyAEQQpB9OvIABCFEwALQeTryAAQnRUACwJAIAkgD08NACAGKAK0ASELAkAgBigCuAEiCkUNACAKQQFrQf////8DcSIHQQFqIghBA3EhBUIAIQMgCyEEAkAgB0EDTwRAIAhB/P///wdxIQkDQCAEIAQ1AgBCCn4gA3wiAz4CACAEQQRqIgc1AgBCCn4gA0IgiHwhAyAHIAM+AgAgBEEIaiIHNQIAQgp+IANCIIh8IQMgByADPgIAIARBDGoiBzUCAEIKfiADQiCIfCEDIAcgAz4CACADQiCIIQMgBEEQaiEEIAlBBGsiCQ0ACyAFRQ0BCwNAIAQgBDUCAEIKfiADfCIDPgIAIARBBGohBCADQiCIIQMgBUEBayIFDQALCwJAIANQDQAgA6chBCAGKAKwASAKRgRAIAZBsAFqELwSIAYoArQBIgsgCkECdGogBDYCACAGIApBAWoiCjYCuAEMAQsgCyAKQQJ0aiAENgIAIAYgCkEBaiIKNgK4ASAKRQ0BCyALIAsoAgBBAWoiBDYCACAEDQEgC0EEaiEEIAohBQNAIAVBAWsiBUUEQCAGKAKwASAKRgRAIAZBsAFqELwSCyAGKAK0ASAKQQJ0akEBNgIAIAYgCkEBajYCuAEMAwsgBCAEKAIAQQFqIgc2AgAgBEEEaiEEIAdFDQALDAELIAYoArABBH8gCwUgBkGwAWoQvBIgBigCtAELQQE2AgAgBkEBNgK4AQsgBiAGKAK4ATYCiAEgBiAGKQKwATcDgAEgDkEASARAIAYgBigCiAE2ApgBIAYgBikDgAE3A5ABIBRCNIinQf8PcUGzCGshBCAUQgGGQv7///////8Pg0IBQoGAgICAgIAQIBRCgICAgICAgPj/AINQIgUbhCEDIAZBsAFqIgcQ8xMgBigCsAEgBigCuAEiCWtBAU0EQCAHIAlBAkEEQQQQsxEgBigCuAEhCQtBzncgBCAFGyEHIAYoArQBIgggCUECdGoiBSADNwIAAn8gCUECaiAIIAlBAWoiBEECdGooAgANABoCQANAIAQEQCAEQQFrIQQgBSgCACAFQQRrIQVFDQEMAgsLQQAMAQsgBEEBagshBCAGIAYpArABNwOgASAGIAQ2AqgBIAZBoAFqIA1Bf3MQgQQCQAJAAkACQCAHIA1rIgVBAmsiBEEATARAIARBAE4NBEECIAVrIgRBBXYhDyAEQR9xIgdFDQNBICAHayEJIAYoApQBIQUgBigCmAEiDA0BQQAhCAwCCyAEQQV2IQ8CQCAEQR9xIgdFDQBBICAHayEJIAYoAqQBIQUCQCAGKAKoASIMRQRAQQAhCAwBCyAMQQFrQf////8DcSILQQFqIg5BA3EhCkEAIQggBSEEIAtBA08EQCAOQfz///8HcSELA0AgBCAEKAIAIg4gB3QgCCAJdnI2AgAgBEEEaiINKAIAIQggDSAIIAd0IA4gCXZyNgIAIARBCGoiDSgCACEOIA0gDiAHdCAIIAl2cjYCACAEQQxqIg0oAgAhCCANIAggB3QgDiAJdnI2AgAgBEEQaiEEIAtBBGsiCw0ACyAKRQ0BCwNAIAggCXYhCyAEIAsgBCgCACIIIAd0cjYCACAEQQRqIQQgCkEBayIKDQALCyAIIAl2IgRFDQAgBigCoAEgDEYEfyAGQaABahC8EiAGKAKkAQUgBQsgDEECdGogBDYCACAGIAxBAWo2AqgBCyAPRQ0DIAZBoAFqIA8Q7AYMAwsgDEEBa0H/////A3EiC0EBaiIOQQNxIQpBACEIIAUhBCALQQNPBEAgDkH8////B3EhCwNAIAQgBCgCACIOIAd0IAggCXZyNgIAIARBBGoiDSgCACEIIA0gCCAHdCAOIAl2cjYCACAEQQhqIg0oAgAhDiANIA4gB3QgCCAJdnI2AgAgBEEMaiINKAIAIQggDSAIIAd0IA4gCXZyNgIAIARBEGohBCALQQRrIgsNAAsgCkUNAQsDQCAIIAl2IQsgBCALIAQoAgAiCCAHdHI2AgAgBEEEaiEEIApBAWsiCg0ACwsgCCAJdiIERQ0AIAYoApABIAxGBH8gBkGQAWoQvBIgBigClAEFIAULIAxBAnRqIAQ2AgAgBiAMQQFqNgKYAQsgD0UNACAGQZABaiAPEOwGCyAGKAKkASEHIAYoApQBIQgCQAJAIAYoApgBIgQgBigCqAEiBUsNACAEIAVJDQEgBUECdCEFIAdBBGshCiAEQQJ0IQQgCEEEayEJA0ACQCAERQ0AIAVFDQAgBCAJaigCACILIAUgCmooAgAiDEsNAiAFQQRrIQUgBEEEayEEIAsgDE8NAQwDCwsgGiAUQgF8vyAUQgGDUBshGgwBCyAUQgF8vyEaCyAGKAKgASIEBEAgByAEQQJ0ENkSCyAGKAKQASIERQ0BIAggBEECdBDZEgwBCyAGIAYoAogBNgK4ASAGIAYpA4ABNwOwASAGQbABaiAOEIEEIA5BBXYhDwJAIA5BH3EiB0UNAEEgIAdrIQkgBigCtAEhBQJAIAYoArgBIgxFBEBBACEIDAELIAxBAWtB/////wNxIgtBAWoiDkEDcSEKQQAhCCAFIQQgC0EDTwRAIA5B/P///wdxIQsDQCAEIAQoAgAiDiAHdCAIIAl2cjYCACAEQQRqIg0oAgAhCCANIAggB3QgDiAJdnI2AgAgBEEIaiINKAIAIQ4gDSAOIAd0IAggCXZyNgIAIARBDGoiDSgCACEIIA0gCCAHdCAOIAl2cjYCACAEQRBqIQQgC0EEayILDQALIApFDQELA0AgCCAJdiELIAQgCyAEKAIAIgggB3RyNgIAIARBBGohBCAKQQFrIgoNAAsLIAggCXYiBEUNACAGKAKwASAMRgR/IAZBsAFqELwSIAYoArQBBSAFCyAMQQJ0aiAENgIAIAYgDEEBajYCuAELIA8EQCAGQbABaiAPEOwGC0IAIQMgBigCtAEhB0EAIQgCQAJ+AkACQAJAAkAgBigCuAEiCiIFDgMFAQIACyAHIApBAnQiCGoiBEEMaykCACIDIARBBGsoAgAiBWciCUEgc60iE4ZCAFINAiAHQRBrIQsDQCAIIgRBDEcEQCAEQQRrIQggBCALaigCAEUNAQsLIARBDEchCCAFrSAThiADQSAgCWutiIQiAyAKDQMaQQAhBQwECyAHKAIAIgStIARnQSBzrYYMAgsgBykCACIDIAN5hgwBC0EBIQggBa0gE4YgA0EgIAlrrYiECyEDIAcgCkECdGpBBGsoAgBnIQULIANBACADeacgA1AbIgSthiETAkACQAJAAkACQEG/fyAKQQV0IAVrQUBqIApB////P0sbIARrIgVBC2oiBEHOd04EQCATQguIIQMgE0L/D4MiFEKACFENASAUQoAIVg0DDAQLIAVBjXdLDQFEAAAAAAAAAAAhGgwECyAIIBNCgBCDQguIp3JFDQIMAQsCQAJAIAVBjndGBEAgE0KAgICAgICAgIB/ViEFQgAhAyATQoCAgICAgICAgH9SDQEMAgsgE0J/Qc53IAVrrSIDhkJ/hYMiFEIBIANCAX2GIhVWIQUgEyADiCEDIBQgFVENAQtBznchBCAFDQEMAgtBznchBCAIDQAgBSADp3JBAXFFDQELIANCAXwhAwsgA0KAgICAgICACCADQoCAgICAgIAQgyITUBshAwJAAkAgBCATQjWIp2oiBEHMB2tBNUkEQEJ/QjUgBEHLB2utIhN9hkKAgICAgICAcIUgA4NQDQELRAAAAAAAAAAAIRogA1ANAiAEQc53SA0CIARBywdMDQFEAAAAAAAA8H8hGgwCC0HLByEEIAMgE4YiA0IAUg0ARAAAAAAAAAAAIRoMAQsgA0L/////////B4MgBEGzCGqtQjSGIhMgA0ILhkI/h4MgEyAEQc53RhuEvyEaCyAGKAKwASIERQ0AIAcgBEECdBDZEgsgAAJ/IBqZRAAAAAAAAPB/YgRAIAAgGiAamiACGzkDCEEADAELIAZBDjYCWCAGQQhqIAFBDGoQmw4gACAGQdgAaiAGKAIIIAYoAgwQxxM2AgRBAQs2AgAgBkHAAWokAAv5YAEbfyMAQbADayIEJABBASEDAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiAiABKAIITw0BIAEgAkEBajYCBAsgASgCjAEiAyABKAKIASITRgRAIAEoAiAhFyABKAIsIRYLIAEoAhQhEAJAIAEtAJABQQJHBEAgECEUDAELIBAhFCABLQCRAUUNACABKAIMIBBGBEAgAUEMahCaEgsgASgCECAQQRRsaiICIBM2AgggAkEANgIEIAJBADoAACABIBBBAWoiFDYCFCABKAKMASEDCyADIBNGBEAgASgCLCABKAIgaiEYCyABKAJ4IRkgASgCXCEaAkAgASgCAEEBRgRAIAEoAgQiAiABKAIITwRAQQEhCQwCCyABIAJBAWo2AgQLIAQgASgCiAE2AogDIAQgASkCgAE3A4ADIARB+AJqIAEQ5wMgBCgC/AIhAQJ/AkAgBCgC+AJBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgVPDQIgASACQQFqIgM2AgQgAyAFTw0BIAEgAkECajYCBAsgAUEAOgCRASAEQfACaiABEJQKIAQoAvACIAQoAvQCIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiAkUEQCAEQeACaiABEJQKIAQoAuQCIQEgBCgC4AIhAwwBCyABQQA6AJEBIARB6AJqIAEQlAogBCgC6AIhAyAEKALsAiIBIAI6AJEBCyADQQFHDQALCwJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWoiAjYCBCACIAEoAghPDQEgASACQQFqNgIEC0EAIQUgASgCjAEiAiABKAKIASIDRgRAIAEoAiwhDiABKAIgIQULIAEoAhQhBwJAIAEtAJABQQJHDQAgAS0AkQFFDQAgASgCDCAHRgRAIAFBDGoQmhILIAEoAhAgB0EUbGoiAiADNgIIIAJBADYCBCACQQA6AAAgASAHQQFqNgIUIAEoAowBIQILIAIgA0YEQCABKAIsIAEoAiBqIQYLAkAgASgCiAEiAiABKAKEAU8NACABKAKAASACai0AAEE6Rw0AIAEgAkEBajYCiAFBASEJCyABKAJ4IQ8gASgCXCERAkACQCABLQB8QQFGBEBBARCQASISRQ0IIBJBOjoAACAEQQE2AqwDIAQgEjYCqAMgBEKAgICAEDcCoAMgASACIARBoANqIAkQ+QgLIAEtAJABIQICQAJAAkAgCUUEQCACQf8BcUEBRg0GIAEtAJEBRQ0DIAEoAowBIgIgA0cNASAGIAEoAiAiAyABKAIsIgJqIglJIAkgBmtBAUZxDQMgAyAFTwRAIAEgBTYCICAFIQMLIAIgDkkNAiABIA42AiwMAgsgAkH/AXFBAUYEfyABLQCRAUUNBQJAIAMgASgCjAEiAkYEQCAGIAEoAiwiAyABKAIgIgJqIglJIAkgBmtBAUZxDQcgAiAFTwRAIAEgBTYCIAsgAyAOSQ0BIAEgDjYCLCAOIQMMAQsgAiADTw0GIAEgAzYCjAFBACEDIAFBADYCLCABQQA2AiALIAEoAiQgA0YEQCABQSRqEKMSCyABKAIoIANqQTA6AAAgASADQQFqNgIsIAEtAJABBSACC0H/AXFBAkcNBCABLQCRAUUNBCABKAIUIgIgB00NAyABKAIQIAdBFGxqIgUtAAANCyAFIAI2AgQgASgCiAEhAyABKAIUIgUgASgCDEYEQCABQQxqEJoSCyABKAIQIAVBFGxqIgIgAzYCECACQQA2AgggAiAHNgIEIAJBgeAAOwEAIAEgBUEBajYCFAwECyACIANPDQEgASADNgKMAUEAIQMgAUEANgIsIAFBADYCIAsgASgCGCADRgRAIAFBGGoQoxILIAEgA0EBajYCICABKAIcIANqQTA6AAALAkAgAS0AfEEBRw0AIAEtAJEBRQ0AIAFB1ABqQTAgEUEAIAEoAnggD00bEJMFCyABLQCQAUECRw0CIAEtAJEBRQ0CIAcgASgCFEsNAiABIAc2AhQMAgsgByACQZyKyAAQhRMACyABLQB8RQ0AIAEtAJEBRQ0AIAFB1ABqQTAgEUEAIAEoAnggD00bEJMFCwJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgVPDQIgASACQQFqIgM2AgQgAyAFTw0BIAEgAkECajYCBAsgAUEAOgCRASAEQdgCaiABEJQKIAQoAtgCIAQoAtwCIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiAkUEQCAEQcgCaiABEJQKIAQoAswCIQEgBCgCyAIhAwwBCyABQQA6AJEBIARB0AJqIAEQlAogBCgC0AIhAyAEKALUAiIBIAI6AJEBCyADQQFHDQALCwJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWoiAjYCBCACIAEoAghPDQEgASACQQFqNgIEC0EAIRFBACESIAEoAowBIgMgASgCiAEiFUYEQCABKAIgIRIgASgCLCERCyABKAIUIQ8CQCABLQCQAUECRwRAIA8hAgwBCyAPIQIgAS0AkQFFDQAgASgCDCACRgRAIAFBDGoQmhILIAEoAhAgD0EUbGoiAiAVNgIIIAJBADYCBCACQQA6AAAgASAPQQFqIgI2AhQgASgCjAEhAwtBACEOIAMgFUYEQCABKAIsIAEoAiBqIQ4LIAEoAnghGyABKAJcIRwCfwJAAkACQCABKAIAQQFGBEAgASgCBCIFIAEoAghPDQEgASAFQQFqNgIEC0EAIQdBACEJIAMgASgCiAEiCEYEQCABKAIgIQkgASgCLCEHCwJAIAEtAJABQQJHBEAgAiEFDAELIAIhBSABLQCRAUUNACABKAIMIAJGBEAgAUEMahCaEgsgASgCECACQRRsaiIFIAg2AgggBUEANgIEIAVBADoAACABIAJBAWoiBTYCFCABKAKMASEDCyADIAhGBEAgASgCLCABKAIgaiELCyABKAJ4IQwgASgCXCENAkACQAJAAkACQAJAAkACQCABKAIAQQFGBEAgASgCBCIDIAEoAghPDQEgASADQQFqNgIECyAEIAEoAogBNgKYAyAEIAEpAoABNwOQAyAEQcACaiABEPABIAQoAsQCIQECQCAEKALAAkEBcQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCIDIAEoAggiBk8NAiABIANBAWoiCjYCBCAGIApNDQEgASADQQJqNgIECyABQQA6AJEBIARBuAJqIAEQlAogBCgCuAIgBCgCvAIiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAyABKAIITw0CIAEgA0EBajYCBAsCQCABLQCRASIGRQRAIARBqAJqIAEQlAogBCgCrAIhASAEKAKoAiEDDAELIAFBADoAkQEgBEGwAmogARCUCiAEKAKwAiEDIAQoArQCIgEgBjoAkQELIANBAUcNAAsLQQAhBgJAIAEoAogBIgNBfUsNACADQQJqIgogASgChAFLDQAgASgCgAEgA2ovAABB27oBRw0AIAEgCjYCiAFBASEGCyABLQB8QQFGBEBBAhCQASIKRQ0HIApB27oBOwAAIARBAjYCrAMgBCAKNgKoAyAEQoCAgIAgNwKgAyABIAMgBEGgA2ogBhD5CAsgBkUNAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAyABKAIIIgZPDQIgASADQQFqIgo2AgQgBiAKTQ0BIAEgA0ECajYCBAsgAUEAOgCRASAEQaACaiABEJQKIAQoAqACIAQoAqQCIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgMgASgCCE8NAiABIANBAWo2AgQLAkAgAS0AkQEiBkUEQCAEQZACaiABEJQKIAQoApQCIQEgBCgCkAIhAwwBCyABQQA6AJEBIARBmAJqIAEQlAogBCgCmAIhAyAEKAKcAiIBIAY6AJEBCyADQQFHDQALC0EAIQMCQCABKAKIASIGIAEoAoQBTw0AIAEoAoABIAZqLQAAQT9HDQAgASAGQQFqNgKIAUEBIQMLIAEtAHxBAUYEQEEBEJABIgpFDRMgCkE/OgAAIARBATYCrAMgBCAKNgKoAyAEQoCAgIAQNwKgAyABIAYgBEGgA2ogAxD5CAsgAw0CCyABIAQoApgDNgKIASABIAQpA5ADNwKAASAFIAEoAhRLDQAgASAFNgIUCyABLQCQAUEBRg0HIAEtAJEBRQ0DIAEoAowBIgUgCEcNASALIAEoAiAiAyABKAIsIgVqIgZJIAYgC2tBAUZxDQMgAyAJTwRAIAEgCTYCICAJIQMLIAUgB0kNAiABIAc2AiwMAgsgAS0AkAEiA0EBRgR/IAEtAJEBRQ0IAkAgCCABKAKMASIFRgRAIAsgASgCLCIDIAEoAiAiBWoiBkkgBiALa0EBRnENCiAFIAlPBEAgASAJNgIgCyADIAdJDQEgASAHNgIsIAchAwwBCyAFIAhPDQkgASAINgKMAUEAIQMgAUEANgIsIAFBADYCIAsgASgCJCADRgRAIAFBJGoQoxILIAEoAiggA2pBCDoAACABIANBAWo2AiwgAS0AkAEFIAMLQf8BcUECRw0HIAEtAJEBRQ0HIAEoAhQiBSACTQ0EIAEoAhAgAkEUbGoiAy0AAA0QIAMgBTYCBCABKAKIASEHIAEoAhQiAyABKAIMRgRAIAFBDGoQmhILIAEoAhAgA0EUbGoiBSAHNgIQIAVBADYCCCAFIAI2AgQgBUGBEDsBACABIANBAWo2AhQMBwsgBSAITw0BIAEgCDYCjAFBACEDIAFBADYCLCABQQA2AiALIAEoAhggA0YEQCABQRhqEKMSCyABIANBAWo2AiAgASgCHCADakEIOgAACyABLQB8QQFHDQIgAS0AkQFFDQIgAUHUAGpBCCANQQAgASgCeCAMTRsQkwUMAgtBARCnFAALIAIgBUGcisgAEIUTAAsgAS0AkAFBAkcNACABLQCRAUUNACACIAEoAhRLDQAgASACNgIUCwJAAkAgASgCAEEBRgRAIAEoAgQiAiABKAIITw0BIAEgAkEBajYCBAtBACEHQQAhCSABKAKMASIGIAEoAogBIgJGBEAgASgCICEJIAEoAiwhBwsgASgCFCEDAkAgAS0AkAFBAkcEQCADIQUMAQsgAyEFIAEtAJEBRQ0AIAEoAgwgA0YEQCABQQxqEJoSCyABKAIQIANBFGxqIgUgAjYCCCAFQQA2AgQgBUEAOgAAIAEgA0EBaiIFNgIUIAEoAowBIQYLQQAhCyACIAZGBEAgASgCLCABKAIgaiELCyABKAJ4IQwgASgCXCENAkACQAJAAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiBiABKAIITw0BIAEgBkEBajYCBAsgBCABKAKIATYCmAMgBCABKQKAATcDkAMgBEGIAmogARDwASAEKAKMAiEBAkAgBCgCiAJBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiBiABKAIIIghPDQIgASAGQQFqIgo2AgQgCCAKTQ0BIAEgBkECajYCBAsgAUEAOgCRASAEQYACaiABEJQKIAQoAoACIAQoAoQCIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgYgASgCCE8NAiABIAZBAWo2AgQLAkAgAS0AkQEiCEUEQCAEQfABaiABEJQKIAQoAvQBIQEgBCgC8AEhBgwBCyABQQA6AJEBIARB+AFqIAEQlAogBCgC+AEhBiAEKAL8ASIBIAg6AJEBCyAGQQFHDQALC0EAIQYCQCABKAKIASIIQX1LDQAgCEECaiIKIAEoAoQBSw0AIAEoAoABIAhqLwAAQdu6AUcNACABIAo2AogBQQEhBgsgAS0AfEEBRgRAQQIQkAEiCkUNByAKQdu6ATsAACAEQQI2AqwDIAQgCjYCqAMgBEKAgICAIDcCoAMgASAIIARBoANqIAYQ+QgLIAYNAgsgASAEKAKYAzYCiAEgASAEKQOQAzcCgAEgBSABKAIUSw0AIAEgBTYCFAsgAS0AkAFBAUYNBiABLQCRAUUNAyABKAKMASIFIAJHDQEgCyABKAIgIgIgASgCLCIFaiIGSSAGIAtrQQFGcQ0DIAIgCU8EQCABIAk2AiAgCSECCyAFIAdJDQIgASAHNgIsDAILIAEtAJABIgZBAUYEfyABLQCRAUUNBwJAIAIgASgCjAEiBUYEQCALIAEoAiwiAiABKAIgIgVqIgZJIAYgC2tBAUZxDQkgBSAJTwRAIAEgCTYCIAsgAiAHSQ0BIAEgBzYCLCAHIQIMAQsgAiAFTQ0IIAEgAjYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAiQgAkYEQCABQSRqEKMSCyABKAIoIAJqQQk6AAAgASACQQFqNgIsIAEtAJABBSAGC0H/AXFBAkcNBiABLQCRAUUNBiABKAIUIgIgA00NESABKAIQIANBFGxqIgUtAAANECAFIAI2AgQgASgCiAEhByABKAIUIgUgASgCDEYEQCABQQxqEJoSCyABKAIQIAVBFGxqIgIgBzYCECACQQA2AgggAiADNgIEIAJBgRI7AQAgASAFQQFqNgIUDAYLIAIgBU0NASABIAI2AowBQQAhAiABQQA2AiwgAUEANgIgCyABKAIYIAJGBEAgAUEYahCjEgsgASACQQFqNgIgIAEoAhwgAmpBCToAAAsgAS0AfEEBRw0BIAEtAJEBRQ0BIAFB1ABqQQkgDUEAIAEoAnggDE0bEJMFDAELQQEQpxQACyABLQCQAUECRw0AIAEtAJEBRQ0AIAMgASgCFEsNACABIAM2AhQLAkACQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQEgASACQQFqNgIEC0EAIQdBACEJIAEoAowBIgYgASgCiAEiAkYEQCABKAIgIQkgASgCLCEHCyABKAIUIQMCQCABLQCQAUECRwRAIAMhBQwBCyADIQUgAS0AkQFFDQAgASgCDCADRgRAIAFBDGoQmhILIAEoAhAgA0EUbGoiBSACNgIIIAVBADYCBCAFQQA6AAAgASADQQFqIgU2AhQgASgCjAEhBgtBACELIAIgBkYEQCABKAIsIAEoAiBqIQsLIAEoAnghDCABKAJcIQ0CQAJAAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiBiABKAIITw0BIAEgBkEBajYCBAsgBCABKAKIATYCmAMgBCABKQKAATcDkAMgBEHoAWogARDwASAEKALsASEBAkAgBCgC6AFBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiBiABKAIIIghPDQIgASAGQQFqIgo2AgQgCCAKTQ0BIAEgBkECajYCBAsgAUEAOgCRASAEQeABaiABEJQKIAQoAuABIAQoAuQBIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgYgASgCCE8NAiABIAZBAWo2AgQLAkAgAS0AkQEiCEUEQCAEQdABaiABEJQKIAQoAtQBIQEgBCgC0AEhBgwBCyABQQA6AJEBIARB2AFqIAEQlAogBCgC2AEhBiAEKALcASIBIAg6AJEBCyAGQQFHDQALC0EAIQYCQCABKAKIASIIIAEoAoQBTw0AIAEoAoABIAhqLQAAQT9HDQAgASAIQQFqNgKIAUEBIQYLIAEtAHxBAUYEQEEBEJABIgpFDRMgCkE/OgAAIARBATYCrAMgBCAKNgKoAyAEQoCAgIAQNwKgAyABIAggBEGgA2ogBhD5CAsgBg0CCyABIAQoApgDNgKIASABIAQpA5ADNwKAASAFIAEoAhRLDQAgASAFNgIUCyABLQCQAUEBRg0FIAEtAJEBRQ0DIAEoAowBIgUgAkcNASALIAEoAiAiAiABKAIsIgVqIgZJIAYgC2tBAUZxDQMgAiAJTwRAIAEgCTYCICAJIQILIAUgB0kNAiABIAc2AiwMAgsgAS0AkAEiBkEBRgR/IAEtAJEBRQ0GAkAgAiABKAKMASIFRgRAIAsgASgCLCICIAEoAiAiBWoiBkkgBiALa0EBRnENCCAFIAlPBEAgASAJNgIgCyACIAdJDQEgASAHNgIsIAchAgwBCyACIAVNDQcgASACNgKMAUEAIQIgAUEANgIsIAFBADYCIAsgASgCJCACRgRAIAFBJGoQoxILIAEoAiggAmpBCjoAACABIAJBAWo2AiwgAS0AkAEFIAYLQf8BcUECRw0FIAEtAJEBRQ0FIAEoAhQiAiADTQ0RIAEoAhAgA0EUbGoiBS0AAA0QIAUgAjYCBCABKAKIASEHIAEoAhQiBSABKAIMRgRAIAFBDGoQmhILIAEoAhAgBUEUbGoiAiAHNgIQIAJBADYCCCACIAM2AgQgAkGBFDsBACABIAVBAWo2AhQMBQsgAiAFTQ0BIAEgAjYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAhggAkYEQCABQRhqEKMSCyABIAJBAWo2AiAgASgCHCACakEKOgAACyABLQB8QQFHDQAgAS0AkQFFDQAgAUHUAGpBCiANQQAgASgCeCAMTRsQkwUMAAsgAS0AkAFBAkcNACABLQCRAUUNACADIAEoAhRLDQAgASADNgIUCwJAAkAgASgCAEEBRgRAIAEoAgQiAiABKAIITw0BIAEgAkEBajYCBAtBACEHQQAhCSABKAKMASIGIAEoAogBIgJGBEAgASgCICEJIAEoAiwhBwsgASgCFCEDAkAgAS0AkAFBAkcEQCADIQUMAQsgAyEFIAEtAJEBRQ0AIAEoAgwgA0YEQCABQQxqEJoSCyABKAIQIANBFGxqIgUgAjYCCCAFQQA2AgQgBUEAOgAAIAEgA0EBaiIFNgIUIAEoAowBIQYLQQAhCyACIAZGBEAgASgCLCABKAIgaiELCyABKAJ4IQwgASgCXCENAkACQAJAAkACQAJAIAEoAgBBAUYEQCABKAIEIgYgASgCCE8NASABIAZBAWo2AgQLIAQgASgCiAE2ApgDIAQgASkCgAE3A5ADIARByAFqIAEQ8AEgBCgCzAEhAQJAIAQoAsgBQQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgYgASgCCCIITw0CIAEgBkEBaiIKNgIEIAggCk0NASABIAZBAmo2AgQLIAFBADoAkQEgBEHAAWogARCUCiAEKALAASAEKALEASIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCIGIAEoAghPDQIgASAGQQFqNgIECwJAIAEtAJEBIghFBEAgBEGwAWogARCUCiAEKAK0ASEBIAQoArABIQYMAQsgAUEAOgCRASAEQbgBaiABEJQKIAQoArgBIQYgBCgCvAEiASAIOgCRAQsgBkEBRw0ACwtBACEGAkAgASgCiAEiCCABKAKEAU8NACABKAKAASAIai0AAEEhRw0AIAEgCEEBajYCiAFBASEGCyABLQB8QQFGBEBBARCQASIKRQ0UIApBIToAACAEQQE2AqwDIAQgCjYCqAMgBEKAgICAEDcCoAMgASAIIARBoANqIAYQ+QgLIAYNAgsgASAEKAKYAzYCiAEgASAEKQOQAzcCgAEgBSABKAIUSw0AIAEgBTYCFAsgAS0AkAFBAUYNBSABLQCRAUUNAyABKAKMASIFIAJHDQEgCyABKAIgIgIgASgCLCIFaiIGSSAGIAtrQQFGcQ0DIAIgCU8EQCABIAk2AiAgCSECCyAFIAdJDQIgASAHNgIsDAILIAEtAJABIgZBAUYEfyABLQCRAUUNBgJAIAIgASgCjAEiBUYEQCALIAEoAiwiAiABKAIgIgVqIgZJIAYgC2tBAUZxDQggBSAJTwRAIAEgCTYCIAsgAiAHSQ0BIAEgBzYCLCAHIQIMAQsgAiAFTQ0HIAEgAjYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAiQgAkYEQCABQSRqEKMSCyABKAIoIAJqQQs6AAAgASACQQFqNgIsIAEtAJABBSAGC0H/AXFBAkcNBSABLQCRAUUNBSABKAIUIgIgA00NEiABKAIQIANBFGxqIgUtAAANESAFIAI2AgQgASgCiAEhByABKAIUIgUgASgCDEYEQCABQQxqEJoSCyABKAIQIAVBFGxqIgIgBzYCECACQQA2AgggAiADNgIEIAJBgRY7AQAgASAFQQFqNgIUDAULIAIgBU0NASABIAI2AowBQQAhAiABQQA2AiwgAUEANgIgCyABKAIYIAJGBEAgAUEYahCjEgsgASACQQFqNgIgIAEoAhwgAmpBCzoAAAsgAS0AfEEBRw0AIAEtAJEBRQ0AIAFB1ABqQQsgDUEAIAEoAnggDE0bEJMFDAALIAEtAJABQQJHDQAgAS0AkQFFDQAgAyABKAIUSw0AIAEgAzYCFAsCQAJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NASABIAJBAWo2AgQLQQAhB0EAIQkgASgCjAEiBiABKAKIASICRgRAIAEoAiAhCSABKAIsIQcLIAEoAhQhAwJAIAEtAJABQQJHBEAgAyEFDAELIAMhBSABLQCRAUUNACABKAIMIANGBEAgAUEMahCaEgsgASgCECADQRRsaiIFIAI2AgggBUEANgIEIAVBADoAACABIANBAWoiBTYCFCABKAKMASEGC0EAIQsgAiAGRgRAIAEoAiwgASgCIGohCwsgASgCeCEMIAEoAlwhDQJAAkACQAJAAkACQCABKAIAQQFGBEAgASgCBCIGIAEoAghPDQEgASAGQQFqNgIECyAEIAEoAogBIgg2ApgDIAQgASkCgAE3A5ADQQAhBgJAIAggASgChAFPDQAgAUGAAWooAgAgCGotAABB2wBHDQAgASAIQQFqNgKIAUEBIQYLIAEtAHxBAUYEQEEBEJABIgpFDRQgCkHbADoAACAEQQE2AqwDIAQgCjYCqAMgBEKAgICAEDcCoAMgASAIIARBoANqIAYQ+QgLAkAgBkUNAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiBiABKAIIIghPDQIgASAGQQFqIgo2AgQgCCAKTQ0BIAEgBkECajYCBAsgAUEAOgCRASAEQagBaiABEJQKIAQoAqgBIAQoAqwBIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgYgASgCCE8NAiABIAZBAWo2AgQLAkAgAS0AkQEiCEUEQCAEQZgBaiABEJQKIAQoApwBIQEgBCgCmAEhBgwBCyABQQA6AJEBIARBoAFqIAEQlAogBCgCoAEhBiAEKAKkASIBIAg6AJEBCyAGQQFHDQALCyAEQZABaiABEPABIAQoApQBIQEgBCgCkAFBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiBiABKAIIIghPDQIgASAGQQFqIgo2AgQgCCAKTQ0BIAEgBkECajYCBAsgAUEAOgCRASAEQYgBaiABEJQKIAQoAogBIAQoAowBIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgYgASgCCE8NAiABIAZBAWo2AgQLAkAgAS0AkQEiCEUEQCAEQfgAaiABEJQKIAQoAnwhASAEKAJ4IQYMAQsgAUEAOgCRASAEQYABaiABEJQKIAQoAoABIQYgBCgChAEiASAIOgCRAQsgBkEBRw0ACwtBACEGAkAgASgCiAEiCCABKAKEAU8NACABKAKAASAIai0AAEHdAEcNACABIAhBAWo2AogBQQEhBgsgAS0AfEEBRgRAQQEQkAEiCkUNFSAKQd0AOgAAIARBATYCrAMgBCAKNgKoAyAEQoCAgIAQNwKgAyABIAggBEGgA2ogBhD5CAsgBg0CCyABIAQoApgDNgKIASABIAQpA5ADNwKAASAFIAEoAhRLDQAgASAFNgIUCyABLQCQAUEBRg0FIAEtAJEBRQ0DIAEoAowBIgUgAkcNASALIAEoAiAiAiABKAIsIgVqIgZJIAYgC2tBAUZxDQMgAiAJTwRAIAEgCTYCICAJIQILIAUgB0kNAiABIAc2AiwMAgsgAS0AkAEiBkEBRgR/IAEtAJEBRQ0GAkAgAiABKAKMASIFRgRAIAsgASgCLCICIAEoAiAiBWoiBkkgBiALa0EBRnENCCAFIAlPBEAgASAJNgIgCyACIAdJDQEgASAHNgIsIAchAgwBCyACIAVNDQcgASACNgKMAUEAIQIgAUEANgIsIAFBADYCIAsgASgCJCACRgRAIAFBJGoQoxILIAEoAiggAmpBDDoAACABIAJBAWo2AiwgAS0AkAEFIAYLQf8BcUECRw0FIAEtAJEBRQ0FIAEoAhQiAiADTQ0TIAEoAhAgA0EUbGoiBS0AAA0SIAUgAjYCBCABKAKIASEHIAEoAhQiBSABKAIMRgRAIAFBDGoQmhILIAEoAhAgBUEUbGoiAiAHNgIQIAJBADYCCCACIAM2AgQgAkGBGDsBACABIAVBAWo2AhQMBQsgAiAFTQ0BIAEgAjYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAhggAkYEQCABQRhqEKMSCyABIAJBAWo2AiAgASgCHCACakEMOgAACyABLQB8QQFHDQAgAS0AkQFFDQAgAUHUAGpBDCANQQAgASgCeCAMTRsQkwUMAAsgAS0AkAFBAkcNACABLQCRAUUNACADIAEoAhRLDQAgASADNgIUCyAEQfAAaiABEPABIAQoAnQhASAEKAJwDAYLIAEtAHxFDQQgAS0AkQFFDQQgAUHUAGpBDCANQQAgASgCeCAMTRsQkwUMBAsgAS0AfEUNAyABLQCRAUUNAyABQdQAakELIA1BACABKAJ4IAxNGxCTBQwDCyABLQB8RQ0CIAEtAJEBRQ0CIAFB1ABqQQogDUEAIAEoAnggDE0bEJMFDAILIAEtAHxFDQEgAS0AkQFFDQEgAUHUAGpBCSANQQAgASgCeCAMTRsQkwUMAQsgAS0AfEUNACABLQCRAUUNACABQdQAakEIIA1BACABKAJ4IAxNGxCTBQtBAAshAiABLQCQASEDAkACQAJAAkACQAJAIAJBAUYEQCADQf8BcUEBRg0HIAEtAJEBRQ0DIAEoAowBIgIgFUcNASAOIAEoAiAiAyABKAIsIgJqIgVJIAUgDmtBAUZxDQMgAyASTwRAIAEgEjYCICASIQMLIAIgEUkNAiABIBE2AiwMAgsgA0H/AXFBAUYEfyABLQCRAUUNBgJAIBUgASgCjAEiAkYEQCAOIAEoAiwiAyABKAIgIgJqIgVJIAUgDmtBAUZxDQggAiASTwRAIAEgEjYCIAsgAyARSQ0BIAEgETYCLCARIQMMAQsgAiAVTw0HIAEgFTYCjAFBACEDIAFBADYCLCABQQA2AiALIAEoAiQgA0YEQCABQSRqEKMSCyABKAIoIANqQQU6AAAgASADQQFqNgIsIAEtAJABBSADC0H/AXFBAkcNBSABLQCRAUUNBSABKAIUIgIgD00NAyABKAIQIA9BFGxqIgUtAAANDCAFIAI2AgQgASgCiAEhAyABKAIUIgUgASgCDEYEQCABQQxqEJoSCyABKAIQIAVBFGxqIgIgAzYCECACQQA2AgggAiAPNgIEIAJBgQo7AQAgASAFQQFqNgIUDAULIAIgFU8NASABIBU2AowBQQAhAyABQQA2AiwgAUEANgIgCyABKAIYIANGBEAgAUEYahCjEgsgASADQQFqNgIgIAEoAhwgA2pBBToAAAsgAS0AfEEBRw0BIAEtAJEBRQ0BIAFB1ABqQQUgHEEAIAEoAnggG00bEJMFDAELIA8gAkGcisgAEIUTAAsgAS0AkAFBAkcNASABLQCRAUUNASAPIAEoAhRLDQEgASAPNgIUDAELIAEtAHxFDQAgAS0AkQFFDQAgAUHUAGpBBSAcQQAgASgCeCAbTRsQkwULAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBU8NAiABIAJBAWoiAzYCBCADIAVPDQEgASACQQJqNgIECyABQQA6AJEBIARB6ABqIAEQlAogBCgCaCAEKAJsIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiAkUEQCAEQdgAaiABEJQKIAQoAlwhASAEKAJYIQMMAQsgAUEAOgCRASAEQeAAaiABEJQKIAQoAmAhAyAEKAJkIgEgAjoAkQELIANBAUcNAAsLIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0BIAEgAkEBaiIDNgIEIAMgBU8NASABIAJBAmo2AgQLIARB0ABqIAEQngMgBCgCVCEBAkAgBCgCUEEBcQ0AIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NASABIAJBAWo2AgQLIARByABqIAEQ7QsgBCgCTCEBIAQoAkhBAXENAANAIARBQGsgARDtCyAEKAJEIQEgBCgCQEEBRw0ACwsCQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0CIAEgAkEBaiIDNgIEIAMgBU8NASABIAJBAmo2AgQLIAFBADoAkQEgBEE4aiABEJQKIAQoAjggBCgCPCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgJFBEAgBEEoaiABEJQKIAQoAiwhASAEKAIoIQMMAQsgAUEAOgCRASAEQTBqIAEQlAogBCgCMCEDIAQoAjQiASACOgCRAQsgA0EBRw0ACwsCQCABKAIAQQFGBEAgASgCBCICIAEoAggiBU8NAiABIAJBAWoiAzYCBCADIAVPDQEgASACQQJqNgIECyABLQCRASICQQFGBEAgARDWBSEBDAELIAFBAToAkQEgARDWBSIBIAI6AJEBCwJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgVPDQIgASACQQFqIgM2AgQgAyAFTw0BIAEgAkECajYCBAsgAUEAOgCRASAEQSBqIAEQlAogBCgCICAEKAIkIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiAkUEQCAEQRBqIAEQlAogBCgCFCEBIAQoAhAhAwwBCyABQQA6AJEBIARBGGogARCUCiAEKAIYIQMgBCgCHCIBIAI6AJEBCyADQQFxRQ0ACwsgBEEIaiABEK4LIAQoAgwhASAEKAIIDAELQQELIglBAUcNACABIAQoAogDNgKIASABIAQpA4ADNwKAASAUIAEoAhRLDQAgASAUNgIUC0EBIQMgAS0AkAEhFAJAAkACQAJAAkACQCAJQQFGBEAgFEH/AXFBAUYNByABLQCRAUUNAyABKAKMASICIBNHDQEgGCABKAIgIgMgASgCLCICaiIFSSAFIBhrQQFGcQ0DIAMgF08EQCABIBc2AiAgFyEDCyACIBZJDQIgASAWNgIsDAILIBRB/wFxQQFGBH8gAS0AkQFFDQYCQCATIAEoAowBIgJGBEAgGCABKAIsIgMgASgCICICaiIFSSAFIBhrQQFGcQ0IIAIgF08EQCABIBc2AiALIAMgFkkNASABIBY2AiwgFiEDDAELIAIgE08NByABIBM2AowBQQAhAyABQQA2AiwgAUEANgIgCyABKAIkIANGBEAgAUEkahCjEgsgASgCKCADakEDOgAAIAEgA0EBajYCLCABLQCQAQUgFAtB/wFxQQJHDQUgAS0AkQFFDQUgASgCFCICIBBNDQMgASgCECAQQRRsaiIFLQAADQggBSACNgIEIAEoAogBIQMgASgCFCIFIAEoAgxGBEAgAUEMahCaEgsgASgCECAFQRRsaiICIAM2AhAgAkEANgIIIAIgEDYCBCACQYEGOwEAIAEgBUEBajYCFAwFCyACIBNPDQEgASATNgKMAUEAIQMgAUEANgIsIAFBADYCIAsgASgCGCADRgRAIAFBGGoQoxILIAEgA0EBajYCICABKAIcIANqQQM6AAALQQEhAyABLQB8QQFHDQEgAS0AkQFFDQEgAUHUAGpBAyAaQQAgASgCeCAZTRsQkwUMAQsgECACQZyKyAAQhRMACyABLQCQAUECRw0BIAEtAJEBRQ0BIBAgASgCFEsNASABIBA2AhQMAQtBACEDIAEtAHxFDQAgAS0AkQFFDQAgAUHUAGpBAyAaQQAgASgCeCAZTRsQkwULIAAgATYCBCAAIAM2AgAgBEGwA2okAA8LQQEQpxQAC0Ggq8kAQShBrIrIABCvFAALIAMgAkGcisgAEIUTAAvxXgISfwJ+IwBBwAFrIgUkAEEAQQYgBC0AECISQQFxIhQbIRYgBUGYAWohFSAEKAIMIQogBCgCCCEOIAQoAgQhBiAEKAIAIQgCQAJAAkACQAJAAkACQAJAAkADQAJAIAMhCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIApFBEAgBgRAIAYgCGohDAJAAkACQAJAAn8gCCwAACIEQQBOBEAgBEH/AXEMAQsgCC0AAUE/cSIJIARBH3EiB0EGdHIgBEFfTQ0AGiAILQACQT9xIAlBBnRyIgkgB0EMdHIgBEFwSQ0AGiAHQRJ0QYCA8ABxIAgtAANBP3EgCUEGdHJyCyIDQSBrDgYHAQEBAQABCyAIQQFqIQkgBkEBRg0CAkACfwJ/AkAgCSwAACIDQUBOBEACQCADQQBIBEAgCC0AAkE/cSEHIANBH3EhBCADQV9LDQEgBEEGdCAHcgwECyADQf8BcSEKQQEMBAsgCC0AA0E/cSAHQQZ0ciEHIANBcE8NASAHIARBDHRyDAILIAggBkEBIAZBpMLCABD9FAALIARBEnRBgIDwAHEgCC0ABEE/cSAHQQZ0cnILIQpBASAKQYABSQ0AGkECIApBgBBJDQAaQQNBBCAKQYCABEkbCyIEIAZBAWsiA08EQCADIARGDQEMgAELIAQgCWosAABBQEgNfwsgBCAJaiEJIAMgBGshB0EBIQxB/wEhAwJAAkAgCkEjaw4OCQoKCgoKCgoKCgEKCgMACyAKQd8ARw0JQQAhDEECIQMMCAtBACEMQQAhAwwHCyADQQlrQQVJDQUCQCADQYUBSQ0AAkACQAJAAkAgA0EIdiIEQRZrDhsABAQEBAQEBAQEAgQEBAQEBAQEBAQEBAQEBAEDCyADQYAtRg0JDAMLIANBgOAARw0CDAgLIANB/wFxLQDypUlBAnENBwwBCyAEDQAgA0H/AXEtAPKlSUEBcQ0GC0EAIQQgCCEKAkADQAJ/IAoiAywAACIHQQBOBEAgB0H/AXEhCSADQQFqDAELIAMtAAFBP3EhCiAHQR9xIQkgB0FfTQRAIAlBBnQgCnIhCSADQQJqDAELIAMtAAJBP3EgCkEGdHIhCiAHQXBJBEAgCiAJQQx0ciEJIANBA2oMAQsgCUESdEGAgPAAcSADLQADQT9xIApBBnRyciEJIANBBGoLIQogCUEJayIHQRdNQQBBASAHdEGfgIAEcRsNAQJAAkAgCUGFAU8EQAJAAkACQCAJQQh2IgdBFmsOGwAFBQUFBQUFBQUCBQUFBQUFBQUFBQUFBQUFAQQLIAlBgC1HDQQMBgsgCUGA4ABHDQMMBQsgCUH/AXEtAPKlSUECcUUNAgwECyAJQSVHDQEMAwsgBw0AIAlB/wFxLQDypUlBAXENAgsgBCADayAKaiEEIAogDEcNAAsgBiEECyAEBEACQCAEIAZPBEAgBCAGRg0BDAcLIAQgCGosAABBv39MDQYLIAQgCGohCSAGIARrIQdBACEKIAghDAwtC0HQxcIAQR5B8MXCABCvFAALQQAhDEEBIQMMBQsgBUEBNgKgASAFIAg2ApwBIAUgFjoAmAFBACEHQQAhCiAWIRAMKQsgBUH/AToAmAEMJwsgCkEBayEKIA5BDGohAwJAAkACQAJAAkACQAJAAkAgDi0AAEEBaw4GAAMBBAU0AgsgDkEIaigCACIERQRAQQAhBEEBIQwMBwsgDigCBCEHIAQQkAEiDARAIARFDQcgDCAHIAT8CgAADAcLQbjwyQBBAToAAAALIA5BCGooAgAiBEUEQEEAIQRBASEMDAULIA4oAgQhByAEEJABIgwEQCAERQ0FIAwgByAE/AoAAAwFC0G48MkAQQE6AAAACyAOKAIIIQQgDigCBCEMIAghCSAGIQcgAyEODC0LIAghCSAGIQcgAyEODC0LIA4oAgghBCAOKAIEIQwgDi0AASENQQQhECAIIQkgBiEHIAMhDgwtCyAOKAIIIQQgDigCBCEMIA4tAAEhDUEFIRAgCCEJIAYhByADIQ4MLQsgCCEJIAYhByADIQ4MbgsgCCEJIAYhByADIQ4MbwsgCCAGQQAgBEGAxsIAEP0UAAtBACEHIAghBAJAA0ACfyAEIgMsAAAiBEEATgRAIARB/wFxIQogA0EBagwBCyADLQABQT9xIQogBEEfcSEJIARBX00EQCAJQQZ0IApyIQogA0ECagwBCyADLQACQT9xIApBBnRyIQogBEFwSQRAIAogCUEMdHIhCiADQQNqDAELIAlBEnRBgIDwAHEgAy0AA0E/cSAKQQZ0cnIhCiADQQRqCyEEAkAgCkEJa0EFSQ0AIApBIEYNACAKQYUBSQ0CAkACQAJAAkAgCkEIdiIJQRZrDhsBBgYGBgYGBgYGAwYGBgYGBgYGBgYGBgYGBgIACyAJDQUgCkH/AXEtAPKlSUEBcQ0DDAULIApBgC1GDQIMBAsgCkGA4ABGDQEMAwsgCkH/AXEtAPKlSUECcUUNAgsgByADayAEaiEHIAQgDEcNAAsgBiEHCwJAIAcEQAJAIAYgB00EQCAGIAdGDQEMAwsgByAIaiwAAEG/f0wNAgsgByAIaiEJIAYgB2shB0EAIQoMKQtB0MXCAEEeQZDGwgAQrxQACyAIIAZBACAHQaDGwgAQ/RQACwJ/AkAgBiAEQQFqRwRAAn8CQCAJLAAAIgRBAEgEQCAJLQABQT9xIQogBEEfcSENIARBX0sNASANQQZ0IApyDAILIARB/wFxIQpBAQwECyAJLQACQT9xIApBBnRyIhAgDUEMdHIgBEFwSQ0AGiANQRJ0QYCA8ABxIAktAANBP3EgEEEGdHJyCyIKQYABTw0BQQEMAgtBBiEQAkAgFEUNAEEAIRAgBiAGIAdrIgRNBEBBACEHDAELIAQgCGosAABBv39MDRULIAUgBDYCoAEgBSAINgKcAQwEC0ECIApBgBBJDQAaQQNBBCAKQYCABEkbCyEEAkAgBCAHTwRAIAQgB0YNAQx3CyAEIAlqLAAAQUBIDXYLIAQgCWohCSAHIARrIQcgDA0BCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAKQSVrDlYpAAAAAAAnAAA3AAAAADgAADkAADooAAAAAAAAAQIDBAAFBgcIAAAACQAACgALDA0ODxAtERIAAAAAAAATFC4VFhcYFAAZGhscHQAeHy8gISIjJDAlJgALIAVBpAFqIBIgCCAGIAcQlxIMSAsgBUGFDjsBpAEMRwsgBUGFCjsBpAEMRgsgBUEBOgCmASAFQYQCOwGkAUEAIQpBAQxGCyAFQQE6AKYBIAVBhA47AaQBQdTCwgAhDkEEIQpBAAxFCyAFQQE6AKYBQQQhCiAFQQQ7AaQBQYTDwgAhDkEADEQLIAVBAToApgEgBUGEBjsBpAFBACEKQQEMQwsgBUEBOgCmASAFQYQeOwGkAUEAIQpBAQxCCyAFQQE6AKYBIAVBhCA7AaQBQQAhCkEBDEELIAVBAToApgEgBUGEIjsBpAFBACEKQQEMQAsgBUGFEDsBpAEMPgsgBUEBOgCmASAFQYQeOwGkAUG0w8IAIQ5BAiEKQQAMPgsgBUEBOgCmASAFQYQkOwGkAUEAIQpBAQw9CyAFQQE6AKYBIAVBhB47AaQBQczDwgAhDkEEIQpBAAw8CyAFQQE6AKYBIAVBhBI7AaQBQQAhCkEBDDsLIAVBAToApgEgBUGEFjsBpAFBACEKQQEMOgsgBUEBOgCmASAFQYQUOwGkAUEAIQpBAQw5CyAFQQE6AKYBIAVBBDsBpAFBACEKQQEMOAsgBUGFHDsBpAEMNgsgBUGFDDsBpAEMNQsgBUGFCDsBpAEMNAsgBUEBOgCmASAFQYQQOwGkAUEAIQpBAQw0CyAFQQI6AKYBIAVBhBA7AaQBDDILIAVBAToApgEgBUGEJjsBpAFBACEKQQEMMgsgBUEBOgCmASAFQYQKOwGkAUEAIQpBAQwxCyAFQQE6AKYBIAVBhBw7AaQBQQAhCkEBDDALIAVBAjoApgEgBUGEHjsBpAEMLgsgBUECOgCmASAFQYQgOwGkAQwtCyAFQQE6AKYBIAVBhA47AaQBQQAhCkEBDC0LIAVBATYCrAEgBUGgssgANgKoASAFQQI6AKQBQQAhCkEBDCwLIAVBhRI7AaQBDCoLQQAhCiAFQQA6AKYBIAVBhAw7AaQBQQEMKgtBACEKIAVBADoApgEgBUGEKDsBpAFBAQwpCyAFQQE2AqwBIAVB/MPCADYCqAEgBUECOgCkAUEAIQpBAQwoC0EAIQogBUEAOgCmASAFQYQaOwGkAUEBDCcLIAVBAjoApgEgBUGEEDsBpAFBgMTCACEOQQQhCkEADCYLQQAhCiAFQQA6AKYBIAVBhBg7AaQBQQEMJQsgBUEBOgCmASAFQYQEOwGkAUEAIQpBAQwkCyAFQYUmOwGkAQwiCyAFQYUsOwGkAQwhCyAHQQNJDQggCS8AACIEQbr0AHMgCUECai0AAEH6AHNyRQ0JIARBuvQBRg0MDBwLIAVBATYCrAEgBUGkiMkANgKoAUEAIQogBUEAOgCkAUEBDCALIApB+gBGDQFBBiEQIBRFDQACQCAGIAYgB2siA00EQCAHRQ0BDHcLIAMgCGosAABBQEgNdgsgBSADNgKgASAFIAg2ApwBQQAhEAsgBSAQOgCYAUEAIQoMIQsgBUEFOwGkAQwcCyAFQaQBakGks8IAEOAOQbCzwgAhDkEEIQpBAAwcCyAFQaQBakHgs8IAEOAOQeyzwgAhDkEMIQpBAAwbCyAFQaQBakGQssIAEOAOQZyywgAhDkEGIQpBAAwaCyAFQaQBakHossIAEOAOQfSywgAhDkEEIQpBAAwZCyAHDgMVAQIBCyAHQQNHBEAgCSwAA0G/f0wNBAsgBUGFIjsBpAEgCUEDaiEJIAdBA2shBwwWCyAJLQAAQfoARg0SDBMLIAkvAABBuvQBRw0QDA8LIAksAAJBv39KDQ4gCSAHQQIgB0HAxMIAEP0UAAsgCSAHQQMgB0HQxMIAEP0UAAsgBSAJNgKwASAFIAcgCWoiDDYCtAEgBUHwAGogBUGwAWoQlxBBASEEIAUoAnBBAXFFDQsCQCAFKAJ0IgpBgAFJDQBBAiEEIApBgBBJDQBBA0EEIApBgIAESRshBAsCQCAEIAdPBEAgBCAHRg0BDAwLIAQgCWosAABBQEgNCwsgBCAJaiEJIAcgBGshBwJAAkACQAJAAkACQCAKQTNrDgcDAQEEAQEFAAsgCkHmAEYNAQsgBUGkAWogEiAIIAYgBxCXEgwVCyAFQYUUOwGkAQwUCyAFIAw2ArwBIAUgCTYCuAEgBUHYAGogBUG4AWoQlxBBASEEIAUoAlhBAXFFDQ0CQCAFKAJcIgpBgAFJDQBBAiEEIApBgBBJDQBBA0EEIApBgIAESRshBAsCQCAEIAdPBEAgBCAHRg0BDA0LIAQgCWosAABBQEgNDAsgByAEayEHAkAgCkHmAEYEQCAFQYUWOwGkAQwBCyAFQaQBaiASIAggBiAHEJcSCyAEIAlqIQkMEwsgBSAMNgK8ASAFIAk2ArgBIAVB4ABqIAVBuAFqEJcQQQEhBCAFKAJgQQFxRQ0MAkAgBSgCZCIKQYABSQ0AQQIhBCAKQYAQSQ0AQQNBBCAKQYCABEkbIQQLAkAgBCAHTwRAIAQgB0YNAQwLCyAEIAlqLAAAQUBIDQoLIAQgCWohCSAHIARrIQcgCkHmAEYEQCAFQYUYOwGkAQwTCyAFQaQBaiASIAggBiAHEJcSDBILIAUgDDYCvAEgBSAJNgK4ASAFQegAaiAFQbgBahCXEEEBIQQgBSgCaEEBcUUNCwJAIAUoAmwiCkGAAUkNAEECIQQgCkGAEEkNAEEDQQQgCkGAgARJGyEECwJAIAQgB08EQCAEIAdGDQEMCQsgBCAJaiwAAEFASA0ICyAEIAlqIQkgByAEayEHIApB5gBGBEAgBUGFGjsBpAEMEgsgBUGkAWogEiAIIAYgBxCXEgwRCyAFIAk2ArgBIAUgByAJajYCvAEgBUH4AGogBUG4AWoQlxBBASEEIAUoAnhBAXFFDQoCQCAFKAJ8IgpBgAFJDQBBAiEEIApBgBBJDQBBA0EEIApBgIAESRshBAsCQCAEIAdPBEAgBCAHRg0BDAcLIAQgCWosAABBQEgNBgsgByAEayEHIApB5gBGBEAgBUGFAjsBpAEgBCAJaiEJDBELIAVBpAFqIBIgCCAGIAcQlxIgBCAJaiEJDBALIAUgCTYCuAEgBSAHIAlqNgK8ASAFQYABaiAFQbgBahCXEEEBIQQgBSgCgAFBAXFFDQkCQCAFKAKEASIKQYABSQ0AQQIhBCAKQYAQSQ0AQQNBBCAKQYCABEkbIQQLAkAgBCAHTwRAIAQgB0YNAQwFCyAEIAlqLAAAQUBIDQQLIAcgBGshByAKQeYARgRAIAVBhQQ7AaQBIAQgCWohCQwQCyAFQaQBaiASIAggBiAHEJcSIAQgCWohCQwPCyAFIAk2ArgBIAUgByAJajYCvAEgBUGIAWogBUG4AWoQlxBBASEEIAUoAogBQQFxRQ0IAkAgBSgCjAEiCkGAAUkNAEECIQQgCkGAEEkNAEEDQQQgCkGAgARJGyEECwJAIAQgB08EQCAEIAdGDQEMAwsgBCAJaiwAAEFASA0CCyAHIARrIQcgCkHmAEYEQCAFQYUGOwGkASAEIAlqIQkMDwsgBUGkAWogEiAIIAYgBxCXEiAEIAlqIQkMDgsgCCAGQQAgBEGwxsIAEP0UAAsgCSAHIAQgB0HAxcIAEP0UAAsgCSAHIAQgB0GwxcIAEP0UAAsgCSAHIAQgB0GgxcIAEP0UAAsgCSAHIAQgB0GQxcIAEP0UAAsgCSAHIAQgB0GAxcIAEP0UAAsgCSAHIAQgB0HwxMIAEP0UAAsgCSAHIAQgB0HgxMIAEP0UAAsgFSASIAggBiAHEJcSQQAhCgwHCyAFQYUgOwGkASAJQQJqIQkgB0ECayEHDAQLIAktAABB+gBHDQEgCSwAAUFASA0CCyAFQYUeOwGkASAJQQFqIQkgB0EBayEHQQAhCkEBDAMLIAVBpAFqIBIgCCAGIAcQlxIMAQsgCSAHQQEgB0GwxMIAEP0UAAtBACEKQQELIQQCQCADQf8BRwRAIAQgBS0ApAEiBEEERnFFDQEgBSADOgCaASAFIAUtAKUBOgCZASAFQQQ6AJgBDAILIBUgBSgCrAE2AgggFSAFKQKkATcCAAwBCwJAIAUgFAR/IAYgB2shAwJAIAYgB0YNACADIAZPBEAgB0UNAQwDCyADIAhqLAAAQUBIDQILIAUgAzYCoAEgBSAINgKcAUEABUEGCzoAmAECQCAEQQFrDgMAAgACCyAFKAKsASIDRQ0BIAUoAqgBIghBBGsoAgAiBkF4cSEEIARBBEEIIAZBA3EiBhsgA2pJDVcgBkEARyAEIANBJ2pLcUUEQCAIELwFDAILDFgLDFULIAUtAJgBIhBB/wFHDQELIAAgCzYCBCAAIAI2AgAMUAsgBSgCoAEhBCAFKAKcASEMIAUtAJkBIQ0gEEEBaw4GRwFFAgMEAAsgBCALSw0EIAwgAiAEEI8TRQ0FIABBADYCACAAQQM6AAQMTgsgBSACIAsQ8QwgBSgCBCEDIAUoAgAhAgxIC0EkIQZBAiEDQSUhCCANQf8BcUEBaw4UGBcVBAUGBwgJCgsMDQ4PEBESExQWC0ETIA1BBGsgDUH/AXEiA0EDTRtB/wFxQQFrDhMxMBwuLh0eHyAhKCgoJygnJCMzMgsgAEEANgIAIABBBjoABAxKCyAAQQA2AgAgAEEEOgAEDEkLAkACQCAERQ0AIAQgC08NACACIARqIgwsAABBQEgNASALIARrIQMgByEGIAkhCCAMIQIMRwsgAiAEaiECIAsgBGshAwxECyACIAsgBCALQYCxwgAQ/RQAC0EmIQYMEwtBJyEGDBILQSghBkEBIQMMEQtBKSEGDBALQSohBgwPC0ErIQYMDgtBLCEGDA0LQS0hBgwMC0EuIQZBASEDDAsLQS8hBkEBIQMMCgtBMCEGQQMhAwwJC0ExIQYMCAtBMiEGDAcLQTMhBgwGC0E0IQYMBQtBNSEGQQkhAwwEC0E2IQZBfyEDDAMLQTchCAsgBUEwaiACIAsQ8QwgBSgCNCIDRQRAQQQhBAwrCyAFKAIwIgYtAAAiAkEraw4DBAMCAwtBOCEGCyAFQThqIAIgCxDxDCAFQZABaiAFKAI4IAUoAjxBASADEJkMIAUoApABIgINCiAAIAUtAJQBOgAEIABBADYCAAwzCyADQQFHDQJBBCECDCYLIAJBMGsiAkH/AXFBCUsEQEEDIQQMJwsgAq1C/wGDIRdBASECIANBAUYNIiAGLQABIgtBMGsiAkH/AXFBCUsEQEEBIQIMIQsgF0IKfiACrUL/AYN8IRdBAiECIANBAkYNIiAGLQACIgtBMGsiAkH/AXFBCUsEQEECIQIMIQsgF0IKfiACrUL/AYN8IRdBAyECIANBA0YNIiAGLQADIgtBMGsiAkH/AXFBCkkNIUEDIQIMIAsgA0EBRgRAQQQhAgwfCyAGLAABQb9/Sg0dIAYgA0EBIANBoLHCABD9FAALIAYsAAFBv39KDRsgBiADQQEgA0GwscIAEP0UAAsgBUGQAWogAiALEPkMIAUtAJgBIgtB/wFGBEAgBS0AkAEhASAAQQA2AgAgACABOgAEDC8LIAUoApABIQICQAJAIAUoApQBIgMgC0EDdCIIKAK0zEIiBkkNACAIQbDMwgBqKAIAIQ1BACEIA0AgBiAIRwRAIAIgCGohDyAIIA1qIREgCEEBaiEIQSBBACAPLQAAIg9BwQBrQf8BcUEaSRsgD3JB/wFxQSBBACARLQAAIg9BwQBrQf8BcUEaSRsgD3JB/wFxRg0BDAILCyADIAZLBEAgAiAGaiwAAEFASA0CCyACIAZqIQIgAyAGayEDCyABLQCoASIIQf8BRyAIIAtHcQ0TIAEgCzoAqAEMIgsgAiADIAYgA0HEx8IAEP0UAAtBACEDIAchBiAJIQggC0UNKiALIQMgAi0AAEEuRw0qIANBAUcEQCACLAABQUBIDRALIAVBkAFqIAJBAWogA0EBaxDZBSAFKAKQASICDQ4gACAFLQCUAToABCAAQQA2AgAMLQtBACEDIAchBiAJIQggC0UNKSALIQMgAi0AAEEuRw0pIANBAUcNDEEEIQQMFwtBACEDIAchBiAJIQggC0UNKCALIQMgAi0AAEEuRw0oQQQhBCADQQFHDQoMFQtBACEDIAchBiAJIQggC0UNJyALIQMgAi0AAEEuRw0nQQQhBCADQQFHDQgMEwsCQCALRQRAQQAhDQwBCyACIAtqIRFBACENIAIhAwNAAn8gAyIGLAAAIgNBAE4EQCADQf8BcSEIIAZBAWoMAQsgBi0AAUE/cSEPIANBH3EhCCADQV9NBEAgCEEGdCAPciEIIAZBAmoMAQsgBi0AAkE/cSAPQQZ0ciEPIANBcEkEQCAPIAhBDHRyIQggBkEDagwBCyAIQRJ0QYCA8ABxIAYtAANBP3EgD0EGdHJyIQggBkEEagshAyAIQQlrIg9BF01BAEEBIA90QZ+AgARxGw0BAkAgCEGFAUkNAAJAAkACQAJAIAhBCHYiD0EWaw4bAAQEBAQEBAQEBAIEBAQEBAQEBAQEBAQEBAQBAwsgCEGALUcNAwwFCyAIQYDgAEcNAgwECyAIQf8BcS0A8qVJQQJxRQ0BDAMLIA8NACAIQf8BcS0A8qVJQQFxDQILIA0gBmsgA2ohDSADIBFHDQALIAshDQsgAiANaiECIAsgDWshAwwcCyAFKQOYASEXIAUoApQBIQMgBiEIDBoLIAVBkAFqIAEgAiALEKgJIAUoApABIgINASAAIAUtAJQBOgAEIABBADYCAAwnCyAFQZABaiABIAIgCxC0AyAFKAKQASICRQ0BCyAFKAKUASEDDCALIAAgBS0AlAE6AAQgAEEANgIADCQLIAVByABqIAIgCxDxDCAFQZABaiAFKAJIIAUoAkxBAUEAELgEIAUoApABIgIEQCAFKAKYASEEIAUoApQBIQMCQCABKAKgAUEBRgRAIAEoAqQBIARHDQELIAEgBDYCpAEgAUEBNgKgAQwgCyAAQQA2AgAgAEEBOgAEDCQLIAAgBS0AlAE6AAQgAEEANgIADCMLIAVBQGsgAiALEPEMIAVBkAFqIAUoAkAgBSgCREEAQQAQuAQgBSgCkAEiAgRAIAUoApgBIQQgBSgClAEhAwJAIAEoAqABQQFGBEAgASgCpAEgBEcNAQsgASAENgKkASABQQE2AqABDB8LIABBADYCACAAQQE6AAQMIwsgACAFLQCUAToABCAAQQA2AgAMIgsCQCACLAABIghBQE4EQCADQQpJDQxBAyEEIAhBMGsiCEH/AXFBCk8NDCACLQACQTBrIgZB/wFxQQlLDQwgAi0AA0Ewa0H/AXEiC0EJSw0MIAItAARBMGtB/wFxIgxBCUsNDCACLQAFQTBrQf8BcSINQQlLDQwgAi0ABkEwa0H/AXEiEEEJSw0MIAItAAdBMGtB/wFxIg9BCUsNDCACLQAIQTBrQf8BcSIRQQlLDQwgAi0ACUEwa0H/AXEiE0EKTw0MIANBAWsiBEEKSQ0BIAIsAApBv39KDQEgAkEBaiAEQQkgBEGQyMIAEP0UAAsgAiADQQEgA0GAssIAEP0UAAsgCEEKbCAGakH/AXFBCmwgC2pBCmwgDGpBCmwgDWpBCmwgEGpBCmwgD2pBCmwgEWpBCmwgE2ohBAJAIAEoApgBQQFHDQAgASgCnAEgBEYNACAAQQA2AgAgAEEBOgAEDCILIAEgBDYCnAEgAUEBNgKYASADQQprIQMgAkEKaiECDBwLAkAgAiwAASIIQUBOBEAgA0EHSQ0MQQMhBCAIQTBrIghB/wFxQQpPDQwgAi0AAkEwayIGQf8BcUEJSw0MIAItAANBMGtB/wFxIgtBCUsNDCACLQAEQTBrQf8BcSIMQQlLDQwgAi0ABUEwa0H/AXEiDUEJSw0MIAItAAZBMGtB/wFxIhBBCk8NDCADQQFrIgRBB0kNASACLAAHQb9/Sg0BIAJBAWogBEEGIARBkMjCABD9FAALIAIgA0EBIANB8LHCABD9FAALIAhBCmwgBmpB/wFxQQpsIAtqQQpsIAxqQQpsIA1qQQpsIBBqQegHbCEEAkAgASgCmAFBAUcNACABKAKcASAERg0AIABBADYCACAAQQE6AAQMIQsgASAENgKcASABQQE2ApgBIANBB2shAyACQQdqIQIMGwsCQCACLAABIghBQE4EQEEEIQQgA0EESQ0MQQMhBCAIQTBrIghB/wFxQQpPDQwgAi0AAkEwayIGQf8BcUEJSw0MIAItAANBMGtB/wFxIgtBCk8NDCADQQFrIgRBBEkNASACLAAEQb9/Sg0BIAJBAWogBEEDIARBkMjCABD9FAALIAIgA0EBIANB4LHCABD9FAALIAhBCmwgBmpB/wFxQQpsIAtqQcCEPWwhBAJAIAEoApgBQQFHDQAgASgCnAEgBEYNACAAQQA2AgAgAEEBOgAEDCALIAEgBDYCnAEgAUEBNgKYASACQQRqIQIgA0EEayEDDBoLAkACQCAFKQOYASIXQv+T69wDVgRAQQAhCAwBCyAFKAKUASEDQQEhCCAXpyEEIAEoApgBQQFHDQEgASgCnAEgBEYNAQsgAEEANgIAIAAgCDoABAwfCyABIAQ2ApwBIAFBATYCmAEMGQsgAiADQQEgA0HQscIAEP0UAAsgC0ECTwRAIAItAAFBIHIhAwJAAn8CQAJAIAItAABBIHJB4QBrDhAAAwMDAwMDAwMDAwMDAwMBAwsgA0HtAEcNAkEADAELIANB7QBHDQFBAQshAwJAIAEoAnhBAUYEQCABKAJ8IANHDQELIAEgAzYCfCABQQE2AngCQCALQQJHBEAgAiwAAkG/f0wNAQsgAkECaiECIAtBAmshAwwbCyACIAtBAiALQcCxwgAQ/RQACyAAQQA2AgAgAEEBOgAEDB4LIABBADYCACAAQQM6AAQMHQsgAEEANgIAIABBBDoABAwcCyAAQQA2AgAgAEEBOgAEDBsLIAVBkAFqIAIgCxD5DCAFLQCYASIEQf8BRwRAIAUoApQBIQMgBSgCkAEhAiABLQCoASIIQf8BRyAEIAhHcUUEQCABIAQ6AKgBDBcLIABBADYCACAAQQE6AAQMGwsgACAFLQCQAToABCAAQQA2AgAMGgsgBUGQAWogAiALEN4NIAUoApABIgIEQAJAAkAgBS0AmAEiBEELSwRAQQAhCAwBCyAFKAKUASEDQQEhCCAEQQFqQf8BcSEEIAEoAkhBAUcNASABKAJMIARGDQELIABBADYCACAAIAg6AAQMGwsgASAENgJMIAFBATYCSAwVCyAAIAUtAJQBOgAEIABBADYCAAwZCyAFQZABaiACIAsQ0wogBSgCkAEiAgRAAkACQCAFLQCYASIEQQtLBEBBACEIDAELIAUoApQBIQNBASEIIARBAWpB/wFxIQQgASgCSEEBRw0BIAEoAkwgBEYNAQsgAEEANgIAIAAgCDoABAwaCyABIAQ2AkwgAUEBNgJIDBQLIAAgBS0AlAE6AAQgAEEANgIADBgLAkACQAJAAkACQCADQQFrDgMBAgMACyAFQdAAaiACIAsQ8QwgBUGQAWogBSgCUCAFKAJUQQFBARC4BCAFKAKQASICRQ0DIAUoApgBIQQgBSgClAEhAwJAIAEoAqABQQFGBEAgASgCpAEgBEcNAQsgASAENgKkASABQQE2AqABDBcLIABBADYCACAAQQE6AAQMGwsCQAJAIAtBA08EQCACLQAAQTBrIgNB/wFxQQpPDQEgAi0AAUEwayIEQf8BcUEJSw0BIAItAAJBMGtB/wFxIghBCk8NASALQQNGDQIgAiwAA0G/f0oNAiACIAtBAyALQZDIwgAQ/RQACyAAQQA2AgAgAEEEOgAEDBwLIABBADYCACAAQQM6AAQMGwsgA0EKbCAEakH/AXFBCmwgCGpBwIQ9bCEDAkAgASgCmAFBAUcNACABKAKcASADRg0AIABBADYCACAAQQE6AAQMGwsgASADNgKcASABQQE2ApgBIAtBA2shAyACQQNqIQIMFQsCQAJAIAtBBk8EQCACLQAAQTBrIgNB/wFxQQpPDQEgAi0AAUEwayIEQf8BcUEJSw0BIAItAAJBMGtB/wFxIghBCUsNASACLQADQTBrQf8BcSIGQQlLDQEgAi0ABEEwa0H/AXEiDEEJSw0BIAItAAVBMGtB/wFxIg1BCk8NASALQQZGDQIgAiwABkG/f0oNAiACIAtBBiALQZDIwgAQ/RQACyAAQQA2AgAgAEEEOgAEDBsLIABBADYCACAAQQM6AAQMGgsgA0EKbCAEakH/AXFBCmwgCGpBCmwgBmpBCmwgDGpBCmwgDWpB6AdsIQMCQCABKAKYAUEBRw0AIAEoApwBIANGDQAgAEEANgIAIABBAToABAwaCyABIAM2ApwBIAFBATYCmAEgC0EGayEDIAJBBmohAgwUCwJAAkAgC0EJTwRAIAItAABBMGsiA0H/AXFBCk8NASACLQABQTBrIgRB/wFxQQlLDQEgAi0AAkEwa0H/AXEiCEEJSw0BIAItAANBMGtB/wFxIgZBCUsNASACLQAEQTBrQf8BcSIMQQlLDQEgAi0ABUEwa0H/AXEiDUEJSw0BIAItAAZBMGtB/wFxIhBBCUsNASACLQAHQTBrQf8BcSIPQQlLDQEgAi0ACEEwa0H/AXEiEUEKTw0BIAtBCUYNAiACLAAJQb9/Sg0CIAIgC0EJIAtBkMjCABD9FAALIABBADYCACAAQQQ6AAQMGgsgAEEANgIAIABBAzoABAwZCyADQQpsIARqQf8BcUEKbCAIakEKbCAGakEKbCAMakEKbCANakEKbCAQakEKbCAPakEKbCARaiEDAkAgASgCmAFBAUcNACABKAKcASADRg0AIABBADYCACAAQQE6AAQMGQsgASADNgKcASABQQE2ApgBIAtBCWshAyACQQlqIQIMEwsgACAFLQCUAToABCAAQQA2AgAMFwsgAEEANgIAIAAgBDoABAwWCyAAQQA2AgAgACAEOgAEDBULIABBADYCACAAIAQ6AAQMFAsgBkEBaiEPIAMgBmohCyADQQFrIQ1BACEDQgAhF0EAIQYCQAJAAkADQCAGIA1GIhEEQCALIQIMAwsgBiAPaiICLQAAQTBrIhNB/wFxQQpPBEAgBg0CQQMhAgwMCyAFQRBqIBcgF0I/h0IKQgAQ7hFBACECIAUpAxggBSkDECIYQj+HUg0LIBggE61C/wGDIBh8IhdVDQsgBkEBaiIGQX9HDQALIAshAgwBCwJAIAYgDU8EQCARDQEMAwsgBiAPaiwAAEFASA0CCyANIAZrIQMLIBdCAFVCACAXfSIXQgBTc0UNBiAAQQA2AgAgAEEAOgAEDBQLDBkLIAZBAWohDyADIAZqIQsgA0EBayENQQAhA0IAIRdBACEGAkADQCAGIA1GIhEEQCALIQIMBwsgBiAPaiICLQAAQTBrIhNB/wFxQQpPBEAgBg0CQQMhAgwDCyAFQSBqIBcgF0I/h0IKQgAQ7hFBACECIAUpAyggBSkDICIYQj+HUg0CIBggE61C/wGDIBh8IhdVDQIgBkEBaiIGQX9HDQALIAshAgwFCwJAAkAgBiANTwRAIBENAQwCCyAGIA9qLAAAQUBIDQELIA0gBmshAwwFCwwYCyAAQQA2AgAgACACOgAEDBELIAIgA0kgC8BBv39KcQ0BIAYgAyACIANBoMjCABD9FAALIBdCCn4gAq1C/wGDfCEXQQQhAiADQQVJDQAgBiwABEG/f0oNACAGIANBBCADQZDIwgAQ/RQACyADIAJrIQMgAiAGaiECCyABIBcgCBEKACIIQf8BcUH/AUYNACAAQQA2AgAgACAIOgAEDA0LIAchBiAJIQggEEEBaw4DBQkDCQsgAEEANgIAIAAgAjoABAwLCyAAQQA2AgAgACAEOgAEDAoLIAVBCGogAiALEPEMIAUoAgwhAyAFKAIIIQILIAchBiAJIQggBEUNBSAMQQRrKAIAIghBeHEiBkEEQQggCEEDcSIIGyAEak8EQCAIRQ0DIAYgBEEnak0NAwwOCwwMCyAEIAtLDQUgDCACIAQQjxMNAwJAIARFDQAgBCALTw0AIAIgBGosAABBQEgNByACRQ0HCyALIARrIQMgAiAEaiECCyAHIQYgCSEIIARFDQMgDEEEaygCACIGQXhxIQggCEEEQQggBkEDcSIGGyAEakkNCiAGRQ0AIAggBEEnaksNCwsgDBC8BQsgByEGIAkhCAwBCwsgAEEANgIAIABBAzoABCAERQ0CIAxBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgBGpJDQYgAUEARyAAIARBJ2pLcQ0HIAwQvAUMAgsgAEEANgIAIABBBDoABCAMQQRrKAIAIgFBeHEhACAAQQRBCCABQQNxIgEbIARqSQ0FIAFBAEcgACAEQSdqS3ENBiAMELwFDAELIAIgCyAEIAtBkLHCABD9FAALIAVBwAFqJAAPCyAJIAcgBCAHQcTCwgAQ/RQACyAJIAMgBCADQbTCwgAQ/RQACyAIIAZBACADQbDGwgAQ/RQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgDyANIAYgDUGgyMIAEP0UAAumWwIafwl+IwBBkBBrIgYkACADELgQIR8CQAJAAkACQAJAAn8CQAJAAkACQAJ/An8CQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQCAFBEAgAUE4aigCAEUNASAfDQEgAy0AIEH/AUYNASADQSBqIgkgAUE8aigCAEECayIFEPEQRQ0BIAMoAnxBf0cNASAGQeAHaiAJQdAA/AoAACADLQCiASEWIAMtAKEBIRkgAy0AoAEhFSADKAKMASETIAMoAnghGiADKAJ0IRsgAykDCCEgIAMpAwAhISADKQMYIScgAykDECEoIAMoApwBIR0gAygCmAEhHiADKAKUASESIAMoApABIREgAygCiAEhGCAGLQDgBw4EAwQCBQILQZACEJABIg1FDRogBCgCCCEJIAQoAgQhAiAGAn5B0PDJAC0AAARAQcjwyQApAwAhIUHA8MkAKQMADAELIAZBQGsQuxFB0PDJAEEBOgAAQcjwyQAgBikDSCIhNwMAIAYpA0ALIiA3A5gEQcDwyQAgIEIBfDcDACAGICE3A6AEIAZBkKnJACkDADcDiAQgBkGYqckAKQMANwOQBCAGQagEaiADQagB/AoAACABIAEoAkQiEUEBajYCRCAGQQA2AtAMIAYgETYC1AwgBkFAayAGQbwFaiABEJwEIAZBADYCgAogBkKAgICAEDcC+AkgBiAGQdQMaiIENgLQBSAGIAZB0AVqrUKAgICA8BCEIiA3A+AHIAZB+AlqQeCSyQBBgoHAACAGQeAHahCxCQ0YIAYgBigCgAo2AugHIAYgBikC+Ak3A+AHIAYoAlwiA0EASgRAIAYoAmAiCEEEaygCACIHQXhxIQUgBUEEQQggB0EDcSIHGyADakkNByAHQQBHIAUgA0EnaktxDRogCBC8BQsgBkHcAGoiAyAGKQPgBzcCACADIAYoAugHNgIIIAYgBikCQDcD0A4gBiAGKQJINwPYDiAGIAYpAlA3A+AOIAYgBikCWDcD6A4gBiAGKQJgNwPwDiAGIAYpAmg3A/gOIAYgBigCcDYCgA9BNBCQASIDRQ0aIAMgBigCgA82AjAgAyAGKQP4DjcCKCADIAYpA/AONwIgIAMgBikD6A43AhggAyAGKQPgDjcCECADIAYpA9gONwIIIAMgBikD0A43AgAgBkF+NgK4AiAGQgg3A4ACIAZCATcD+AEgBiADNgL0ASAGQQE2AvABIAZCCDcDmAIgBkIANwOQAiAGQoCAgICAATcDiAIgBkF/NgJAIAZBfzYCUCAGQX02AmAgBkF9NgKoASAGQX42AsQCIAZCgICAgMAANwOgAiAGQgA3A6gCIAZCBDcDsAIgBkH4CWogBkFAayIDIAZBqARqIBEQ8QcgBkEANgJIIAZCgICAgBA3AkACQCAGKALQDEEBRgRAIAYgBDYC0AUgBiAgNwPgByADQeCSyQBBk4HAACAGQeAHahCxCUUNAQwaCyAGIAQ2AtAFIAYgIDcD4AcgBkFAa0HgkskAQYKBwAAgBkHgB2oQsQkNGQsgBiAGKAJINgLoByAGIAYpAkA3A+AHIAZBQGsgBkH4CWogBkGoBGogBkHgB2oiAyABEOcEIAZByARqIRACQCAGLQDIBEH/AUcEQCADIBAQhwMMAQsgBkH/AToA4AcLIAZB+AlqIgMgBkFAayIEIAZB4AdqIgUgESABEMAIIAQgAyAGQagEakIAEPkHIAEoAgBBAXFFDQ8gBiABKQMoIiA3A/gHIAYgASkDIDcD8AcgBiABKQMYNwPoByAGIAEpAxA3A+AHICCnQQFxBEAgBiAFrUKAgICAkBqENwP4CSAGQdAFakHAlMIAIAMQuAwgBigCxAIiA0EASgRAIAYoAsgCIgVBBGsoAgAiCEF4cSEEIARBBEEIIAhBA3EiCBsgA2pJDRkgCEEARyAEIANBJ2pLcQ0bIAUQvAULIAZBxAJqIgMgBigC2AU2AgggAyAGKQLQBTcCAAsMDwtBqAEQkAEiC0UNGSALIANBqAH8CgAAIAtBqAFqIQ9BASEOQQEhEEGQAgwIC0HQABCQASIIRQ0YIAggCUHQAPwKAAAgCEHQAGohDUGoASEFQQEhDEEBIQcMBQsgBkFAayIJIAZB4AdqQQRyIAUQ4QUgBiAGKQNANwPQDiAGIAYpA0g3A9gOIAYgBikDUDcD4A4gBiAGKQNYNwPoDiAGIAYpA2A3A/AOIAYgBikDaDcD+A4gBiAGKQJ0NwPQDCAGIAYpAnw3A9gMIAYgBigChAE2AuAMIAYoAnAhCCAGKAKQASENIAYoAowBIRAgBigCiAEhFCAGQQA2ApAOIAZCgICAgIABNwKIDgJ/AkAgCEF/RwRAIAYgBikD+A43A/gFIAYgBikD8A43A/AFIAYgBikD6A43A+gFIAYgBikD4A43A+AFIAYgBikD2A43A9gFIAYgBikD0A43A9AFIAYgCDYCgAYgBiAGKQPQDDcChAYgBiAGKQPYDDcCjAYgBiAGKALgDDYClAYgCSAGQdAFaiAFEOQCIAYoAkAhCCAGIAYoAkQiBSAGKAJIIgdByABsIhdqIgk2ArQEIAYgCDYCsAQgBiAFNgKoBCAHDQFBCAwCC0HQABCQASIIRQ0ZIAggDTYCDCAIIBA2AgggCCAUNgIEIAhBADoAAEEBIQxBASEHDAQLIAZBxwBqIQ9BCCELQQAhCEE8IQ4CfwJAA0AgBigCiA4hDCAFIAhqIgdBMGooAgAiHEF/Rg0BIAYgB0HEAGooAgA2AogKIAYgB0E8aikCADcDgAogBiAHQTRqKQIANwP4CSAPIAcpACg3ACggDyAHKQAgNwAgIA8gBykAGDcAGCAPIAcpABA3ABAgDyAHKQAINwAIIA8gBykAADcAACAKIAxGBEAgBkGIDmoQqhIgBigCjA4hCwsgCyAOaiIMQTxrQQM6AAAgDEE7ayIHIAYpAEA3AAAgByAGKQBINwAIIAYpAG8hIiAGKQBoISMgBikAYCEkIAYpAFghJSAGKQBQISYgDEEEayAcNgIAIAcgJjcAECAHICU3ABggDCAGKQP4CTcAACAHICQ3ACAgByAjNwAoIAcgIjcALyAMIAYpA4AKNwAIIAwgBigCiAo2ABAgBiAKQQFqIgo2ApAOIA5B0ABqIQ4gFyAIQcgAaiIIRw0ACyAGKAKIDiEMIAkMAQsgB0HIAGoLIQUgBigCjA4LIQggBiAFNgKsBCAIIApB0ABsaiELIAZBqARqEPILIAgiBSEHIAoEQCANQdAAbCEOIA1BAWohFyAGQasEaiEPA0AgBkH4CWogBSIKQdAA/AoAAEEIIQcCQCANRQ0AIA4QkAEiB0UNG0EAIQUgDSEJA0AgBSAORg0BIAZBQGsiHCAFIBBqEIcDIAUgB2ogHEHQAPwKAAAgBUHQAGohBSAJQQFrIgkNAAsLIAYgDTYCSCAGIAc2AkQgBiANNgJAIAZBQGsQqhIgBigCRCAOaiAGQfgJakHQAPwKAAAgDyAXNgAIIA8gBikCQDcAACAKQQA6AAAgCiAGKQCoBDcAASAKIAYpAK8ENwAIIAsgCkHQAGoiBUcNAAsgCyEHCyALIAVrQdAAbiEJIAUgC0cEQANAIAUQrQQgBUHQAGohBSAJQQFrIgkNAAsLIAcgCGtB0ABuIQcgDQRAIBAhBQNAIAUQrQQgBUHQAGohBSANQQFrIg0NAAsLIBRFDQIgEEEEaygCACIJQXhxIQUgBSAUQdAAbCINQQRBCCAJQQNxIgkbckkNFCAJQQBHIAUgDUEnaktxDRYgEBC8BQwCCyAGQUBrIgkgBkHgB2pBBHIgBRDhBSAGIAYpA0A3A9AOIAYgBikDSDcD2A4gBiAGKQNQNwPgDiAGIAYpA1g3A+gOIAYgBikDYDcD8A4gBiAGKQNoNwP4DiAGIAYpAnQ3A9AMIAYgBikCfDcD2AwgBiAGKAKEATYC4AwgBigCcCEIIAYoApABIQ0gBigCjAEhECAGKAKIASEUIAZBADYCkA4gBkKAgICAgAE3AogOAn8CQCAIQX9HBEAgBiAGKQP4DjcD+AUgBiAGKQPwDjcD8AUgBiAGKQPoDjcD6AUgBiAGKQPgDjcD4AUgBiAGKQPYDjcD2AUgBiAGKQPQDjcD0AUgBiAINgKABiAGIAYpA9AMNwKEBiAGIAYpA9gMNwKMBiAGIAYoAuAMNgKUBiAJIAZB0AVqIAUQ5AIgBigCQCEIIAYgBigCRCIFIAYoAkgiB0HIAGwiF2oiCTYCtAQgBiAINgKwBCAGIAU2AqgEIAcNAUEIDAILQdAAEJABIghFDRggCCANNgIMIAggEDYCCCAIIBQ2AgRBASEMIAhBAToAAEEBIQcMAwsgBkHHAGohD0EIIQtBACEIQTwhDgJ/AkADQCAGKAKIDiEMIAUgCGoiB0EwaigCACIcQX9GDQEgBiAHQcQAaigCADYCiAogBiAHQTxqKQIANwOACiAGIAdBNGopAgA3A/gJIA8gBykAKDcAKCAPIAcpACA3ACAgDyAHKQAYNwAYIA8gBykAEDcAECAPIAcpAAg3AAggDyAHKQAANwAAIAogDEYEQCAGQYgOahCqEiAGKAKMDiELCyALIA5qIgxBPGtBAzoAACAMQTtrIgcgBikAQDcAACAHIAYpAEg3AAggBikAbyEiIAYpAGghIyAGKQBgISQgBikAWCElIAYpAFAhJiAMQQRrIBw2AgAgByAmNwAQIAcgJTcAGCAMIAYpA/gJNwAAIAcgJDcAICAHICM3ACggByAiNwAvIAwgBikDgAo3AAggDCAGKAKICjYAECAGIApBAWoiCjYCkA4gDkHQAGohDiAXIAhByABqIghHDQALIAYoAogOIQwgCQwBCyAHQcgAagshBSAGKAKMDgshCCAGIAU2AqwEIAggCkHQAGxqIQsgBkGoBGoQ8gsgCCIFIQcgCgRAIA1B0ABsIQ4gDUEBaiEXIAZBqwRqIQ8DQCAGQfgJaiAFIgpB0AD8CgAAQQghBwJAIA1FDQAgDhCQASIHRQ0aQQAhBSANIQkDQCAFIA5GDQEgBkFAayIcIAUgEGoQhwMgBSAHaiAcQdAA/AoAACAFQdAAaiEFIAlBAWsiCQ0ACwsgBiANNgJIIAYgBzYCRCAGIA02AkAgBkFAaxCqEiAGKAJEIA5qIAZB+AlqQdAA/AoAACAPIBc2AAggDyAGKQJANwAAIApBAToAACAKIAYpAKgENwABIAogBikArwQ3AAggCyAKQdAAaiIFRw0ACyALIQcLIAsgBWtB0ABuIQkgBSALRwRAA0AgBRCtBCAFQdAAaiEFIAlBAWsiCQ0ACwsgByAIa0HQAG4hByANBEAgECEFA0AgBRCtBCAFQdAAaiEFIA1BAWsiDQ0ACwsgFEUNASAQQQRrKAIAIglBeHEhBSAFIBRB0ABsIg1BBEEIIAlBA3EiCRtySQ0TIAlBAEcgBSANQSdqS3ENFSAQELwFDAELIAZB+AlqIgggA0EoakHIAPwKAAAgBkFAayAIIAUQ5AIgBigCSCIMQZqz5gxPDQ4gBigCQCELIAYoAkQhDQJAIAxFBEBBACEMQQghCAwBCyAMQdAAbBCQASIIRQ0XIAxByABsQcgAayIFQcgAbiEQIAZBxwBqIQogDSEJIAVByABPBEAgEEEBaiIFQQFxIAVB/v//P3EhDiAIIQUDQCAKIAlByAD8CgAAIAVBAzoAACAFQQFqIAZBQGsiD0HPAPwKAAAgCiAJQcgAakHIAPwKAAAgBUHQAGpBAzoAACAFQdEAaiAPQc8A/AoAACAJQZABaiEJIAVBoAFqIQUgDiAHQQJqIgdHDQALRQ0BCyAKIAlByAD8CgAAIAggB0HQAGxqIgVBAzoAACAFQQFqIAZBQGtBzwD8CgAAIAdBAWohBwsgC0UNACANQQRrKAIAIglBeHEhBSAFIAtByABsIgpBBEEIIAlBA3EiCRtqSQ0SIAlBAEcgBSAKQSdqS3ENFCANELwFCyAGLQDgByIFQQJHIAVBA01xRQRAIAZB4AdqEK0ECyAHQbGYjAZPDQ0gCCAHQdAAbGohDSAHQagBbCIFDQFBCCELQQAhEAwCC0HQnMkAQS5BgJ3JABCvFAALIAchECAFEJABIgsNAAwTCwJAIAdFBEBBACEODAELIBhBf0YEQCALIQVBACEOIAghCQNAIAZB+AlqIgogCUHQAPwKAAAgEiASKAIAIgdBAWo2AgAgB0EASA0HIAZB0AVqIBsgGhC+AyAGIAYoAtgFNgLYDiAGIAYpAtAFNwPQDiAFQRhqICc3AwAgBUEQaiAoNwMAIAVBCGogIDcDACAFICE3AwAgBUEgaiAKQdAA/AoAACAFQaIBaiAWOgAAIAVBoQFqIBk6AAAgBUGgAWogFToAACAFQZwBaiAdNgIAIAVBmAFqIB42AgAgBUGUAWogEjYCACAFQYgBakF/NgIAIAVB/ABqQX82AgAgBUH4AGogBigC2A42AgAgBUHwAGogBikD0A43AwAgBUGoAWohBSAOQQFqIQ4gDSAJQdAAaiIJRw0ACwwBCyARQYqujwVLDQQgEUHIAWwhDyARrUIghiEiQQAhDiAIIQoDQCAGQfgJaiAKQdAA/AoAACASIBIoAgAiBUEBajYCACAFQQBIDQYgBkHQBWogGyAaEL4DAkAgD0UEQEEIIQcMAQsgDxCQASIHRQ0VIBFFDQBBACEFIBEhCQNAIAUgD0YNASAGQUBrIhQgBSATahDzAyAFIAdqIBRByAH8CgAAIAVByAFqIQUgCUEBayIJDQALCyAGIAYoAtgFNgLYDiAGIAYpAtAFNwPQDiALIA5BqAFsaiIFICc3AxggBSAoNwMQIAUgIDcDCCAFICE3AwAgBUEgaiAGQfgJakHQAPwKAAAgBSAWOgCiASAFIBk6AKEBIAUgFToAoAEgBSAdNgKcASAFIB42ApgBIAUgEjYClAEgBSAiIAethDcCjAEgBSARNgKIASAFQX82AnwgBSAGKALYDjYCeCAFIAYpA9AONwNwIA5BAWohDiANIApB0ABqIgpHDQALCyAMBEAgCEEEaygCACIJQXhxIQUgBSAMQdAAbCIHQQRBCCAJQQNxIgkbckkNDyAJQQBHIAUgB0EnaktxDREgCBC8BQsCQCAYQX9GDQAgEQRAIBMhBQNAIAUQ9AQgBUHIAWohBSARQQFrIhENAAsLIBhFDQAgE0EEaygCACIIQXhxIQUgBSAYQcgBbCIHQQRBCCAIQQNxIggbakkNDyAIQQBHIAUgB0EnaktxDREgExC8BQsgA0HwAGoQwwQgEiASKAIAIgNBAWs2AgAgA0EBRgRAIBIQMAsgDkH58OEDTw0KIA5FDQEgCyAOQagBbGohDyAOQZACbAsQkAEiDQRAIAQoAgQiGCAEKAIIIh1ByAFsaiEeIAZB/QNqIRogBkHEA2ohCSAGQe0BaiEbIAZBtAFqIQogBkHQAmohE0EAIQwgBkH8AWohFCALIQMCQANAIAZB0AVqIgUgA0GoAfwKAAAgBkHQDGogGCAdEL4JIAZBCGogBigC1AwiEiAGKALYDCIRIAEQ8gcgBigCCCEIQQgQkAEiBEUNASAEQeyNyQA2AgQgBCAINgIAIAZBQGsiCCAFIAIgGCAeIAEQVyAGQeAHaiAIQZAC/AoAACAGKALYAiEWIAYoAtQCIQUgBigC0AIhGQNAIAZBQGsgBCgCACAEKAIEKAIMEQIAIAYoArABIghBfkYEQCAEKAIAIQggBCgCBCIHKAIAIhUEQCAIIBURAwALIAcoAgQiBwRAIAhBBGsoAgAiF0F4cSEVIBVBBEEIIBdBA3EiFxsgB2pJDRMgF0EARyAVIAdBJ2pLcQ0VIAgQvAULIARBBGsoAgAiCEEDcSEHIAhBeHFBDEEQIAcbSQ0SIAdBAEcgCEEwT3ENFCAEELwFIAYgASkDKDcDaCAGIAEpAyA3A2AgBiABKQMYNwNYIAYgASkDEDcDUCAGIAEpAwg3A0ggBiABKQMANwNAIAZB+AlqIAZB4AdqIAZBQGsQsQ4gFgRAIBZB4ABsIQggBSEEA0AgEyAEQeAA/AoAACAGQUBrIAZB+AlqQZAC/AoAACAGKAKEAiIHIAYoAvwBRgRAIBQQpRILIARB4ABqIQQgBigCgAIgB0HgAGxqIBNB4AD8CgAAIAYgB0EBajYChAIgBkH4CWogBkFAa0GQAvwKAAAgCEHgAGsiCA0ACwsgGQRAIAVBBGsoAgAiBEF4cSEHIAcgGUHgAGwiCEEEQQggBEEDcSIEG3JJDRMgBEEARyAHIAhBJ2pLcQ0VIAUQvAULIBEEQCASQRRqIQRBACEHA0AgEiAHQRhsaiEFAkACQAJAAkACQCAEQRRrKAIADgIBAgALIAQoAgAiFigCACEIIBYgCEEBazYCACAIQQFHDQMgBUEUaiEIDAILIARBEGsoAgAiFigCACEIIBYgCEEBazYCACAIQQFHDQIgBUEEaiEIDAELIAQoAgAiCCgCACEFIAggBUEBazYCACAEIQggBUEBRw0BCyAIKAIAEDALIAdBAWohByAEQRhqIQQgEUEBayIRDQALCwJAIAYoAtAMIgUEQCASQQRrKAIAIghBeHEhBCAEIAVBGGwiBUEEQQggCEEDcSIHG2pJDRQgB0EARyAEIAVBJ2pLcQ0BIBIQvAULIA0gDEGQAmxqIAZB+AlqQZAC/AoAACAMQQFqIQwgDyADQagBaiIDRw0DDAcLDBQLIAZB+AlqIgcgBkFAayIVQfAA/AoAACAGIAopAjA3A4APIAYgCikCKDcD+A4gBiAKKQIgNwPwDiAGIAopAhg3A+gOIAYgCikCEDcD4A4gBiAKKQIINwPYDiAGIAopAgA3A9AOIAYgGy8AADsBqAQgBiAbLQACOgCqBCATIAdB8AD8CgAAIAkgBikD0A43AgAgCSAGKQPYDjcCCCAJIAYpA+AONwIQIAkgBikD6A43AhggCSAGKQPwDjcCICAJIAYpA/gONwIoIAkgBikDgA83AjAgGiAGLwGoBDsAACAaIAYtAKoEOgACIAYgCDYCwAMgBkEBOgD8AyAVIAZB4AdqQZAC/AoAAEGwARCQASIIBEAgCCATQbAB/AoAACAGKAKEAiIHIAYoAvwBRgRAIBQQpRILIAYoAoACIAdB4ABsaiIVQX42AlAgFSAINgIEIBVBAzYCACAGIAdBAWo2AoQCIAZB4AdqIAZBQGtBkAL8CgAADAELCwsMEgsMEQsMEQtBACEOQQghDUEAIQwMAAsgEEUNAiALQQRrKAIAIgJBeHEhASABIBBBqAFsIgNBBEEIIAJBA3EiAhtqSQ0LIAJBAEcgASADQSdqS3FFBEAgCxC8BQwDCwwNCyASIBIoAgAiAEEBajYCACAAQQBIDQAgBkHQBWogGyAaEL4DEJ4VAAsACyANIAxBkAJsaiIEIAwNARogDSEFQQAMAgsgBkH4CWoiAyAGQUBrQZAC/AoAACAGQdAFaiADQZAC/AoAACAJQcgBbCIDIAJqIRNBACEFAn8DQEEEIAMgBUYNARogAiAFaiAFQcgBaiEFKQMAQgVSDQALQRAQkAEiB0UNBSAHIAIgBWoiA0HAAWs2AgAgBkEBNgJIIAYgBzYCRCAGQQQ2AkBBASEKA0AgAyATRwRAIAMiBEHIAWohAyAEKQMAQgVSDQEgBigCQCAKRgRAIAZBQGsgCkEBQQRBBBCzESAGKAJEIQcLIAcgCkECdGogBEEIajYCACAGIApBAWoiCjYCSAwBCwsgBigCQCELIAYoAkQLIQQgCQRAIAQgCkECdGohCCACIQUgCSEDA0AgBSkDAEIBWARAIAZBQGsiByAGQdAFaiIKQZAC/AoAACAGIAU2AtACIAogBkGIBGogByAFIAQgCEEAIBEgARBZCyAFQcgBaiEFIANBAWsiAw0ACwsgBkHgB2ogBkHQBWpBkAL8CgAAIAsEQCAEQQRrKAIAIgVBeHEhAyADIAtBAnQiCEEEQQggBUEDcSIFG2pJDQggBUEARyADIAhBJ2pLcQ0KIAQQvAULAkAgCUUEQCAGQfgJaiAGQdAFakGQAvwKAAAMAQsgAiEFIAkhAwNAAkAgBSkDAEIFUg0AIAZBQGsiBCAGQeAHaiIIQZAC/AoAACAGIAVBCGoiBzYC0AIgBkGIBGoiCiAFQdgAaigCACAFQdwAaigCABCcDg0AIAggCiAEIAdBACARIAEQdQsgBUHIAWohBSADQQFrIgMNAAsgBkH4CWogBkHgB2pBkAL8CgAAIAZBiAxqrUKAgICA8BCEISAgBkHQDmoiA0EEaiEOIAZB/Q9qIRIgA0HkAGohGyAGQcQPaiEHIAZBwA9qIQ8gBkGIEGohFCAGQfwBaiEYIAIhBQNAIAZBQGsgBkH4CWpBkAL8CgAAIAYgBTYC0AICQAJAAkACQAJAAkACQAJAAkACQEECIAUpAwAiIadBAmsgIUIBWBsOAwAJAQkLIAZB0A5qIgwgBUEIaiILIAFBABCJAiAGQQA2AoQQIAYgETYCiBAgBkEANgLYDCAGQoCAgIAQNwLQDCAGIBQ2AogMIAYgIDcDiA4gBkHQDGoiA0HgkskAQYKBwAAgBkGIDmoiChCxCQ0TIAYgBigC2Aw2ApAMIAYgBikC0Aw3A4gMIA8Q1wUgByAGKQOIDDcCACAHIAYoApAMNgIIIAZBADYCwA8gBkF+NgLoDyAGQoCAgIBgNwPYDyAGQoCAgIDAADcD0A8gAyAMQdgA/AoAACAGKAKwDyEDIAYoAqwPIQggBigCqA8hBCAKIBtByAD8CgAAIAYgEi0AAjoAhg4gBiASLwAAOwGEDiAGQShqIAsQ8A4gBUEMaiEKIAYoAiwhGiAGKAIoIRYCfyALKAIAQQFGBEAgDiAKKAIINgIIIA4gCikCADcCACAGIAVBGGooAgBBCGo2AtAOIAZBGGogDBDqCSAGKAIcIQogBigCGAwBCyAKKAIAIgwgBUEYaigCACIKKAIQIhlPDQIgCigCDCAMQeQAbGoiGSgCAARAIBkoAgQiDCAKKAJwTw0EIAooAmwgDEEEdGoiDCgCCCEKIAwoAgQMAQsgBkEgaiAKQQhqIAwQ0BAgBigCJCEKIAYoAiALIQwCQCAKIBpHDQAgFiAMIBoQjxMNACAEIQogCCEMDAgLIAZBEGogCxDwDiAGKAIUIgpBAEgNDiAKRQRAQQEhDAwHCyAGKAIQIQMgChCQASIMRQ0EIApFDQYgDCADIAr8CgAADAYLIAZBOGogBUGoAWoiCigCACIEIAVBrAFqIgsoAgAiCBDODgJAIAYoAjgiAyAGKAI8EIgORQRAIAZBiA5qIAQgCBDwDQwBCyAGQYgOaiAEIAgQ8Q0LIAMgAygCACIEQQFrNgIAIARBAUYEQCADEDALIAZCj4CAgHA3ArwPIAZB1OPIADYCuA8gBkF+NgKoDyAGQf8BOgD0DyAGQXw2AuAOIAZBADoA/A8gBkEAOwH6DyAGQX42AtAOIAZBfzYCtA8gDxDXBSAHIAYpAogONwIAIAcgBigCkA42AgggBkEANgLADyAGQX42AugPIAZCgICAgGA3A9gPIAZCgICAgMAANwPQDyAGQTBqIAooAgBBCGogCygCABDRECAGKAI0IgNBAEgNDSADRQRAQQEhCgwFCyAGKAIwIQQgAxCQASIKRQ0CIANFDQQgCiAEIAP8CgAADAQLIAwgGUHk9sgAEIUTAAtBpLjEABCdFQALQQEQpxQAC0EBEKcUAAsgBiADNgKwDyAGIAo2AqwPIAYgAzYCqA8gBkHQDGoiBCAGQdAOakGwAfwKAABBsAEQkAEiAwRAIAMgBEGwAfwKAAAgBigChAIiBCAGKAL8AUYEQCAYEKUSCyAGKAKAAiAEQeAAbGoiCEF+NgJQIAggAzYCBCAIQQM2AgAgBiAEQQFqNgKEAiAGQfgJaiAGQUBrQZAC/AoAAAwDCwwPCwJAIARBAEoEQCAIQQRrKAIAIgtBeHEhAyADQQRBCCALQQNxIgsbIARqSQ0NIAtBAEcgAyAEQSdqS3ENASAIELwFCyAKIQMMAQsMDQsgBkHQDmoiCCAGQdAMakHYAPwKAAAgBkGIDGoiCyAGQYgOakHIAPwKAAAgBiAGLQCGDjoAhhAgBiAGLwGEDjsBhBBBsAEQkAEiBEUNDSAEIAhB2AD8CgAAIAQgAzYCYCAEIAw2AlwgBCAKNgJYIARB5ABqIAtByAD8CgAAIARBAToArAEgBCAGLwGEEDsArQEgBCAGLQCGEDoArwEgBigChAIiAyAGKAL8AUYEQCAYEKUSCyAGKAKAAiADQeAAbGoiCEF+NgJQIAggBDYCBCAIQQM2AgAgBiADQQFqNgKEAiAGQfgJaiAGQUBrQZAC/AoAAAsgBUHIAWohBSAJQQFrIgkNAAsLIAZBQGsiAyAGQYgEaiACIBMQcyAGKAJAIQUgBigCRCEBIAYoAkgiAgRAIAJB8ABsIQQgBkHgAmohCSADQZACaiEHIAZB/AFqIQogASEDA0AgByADQfAA/AoAACAGQUBrIAZB+AlqQZAC/AoAACAGKQO4AyEgIAY1AtgCISEgBigC1AIhCyAGKALQAiEMIAYoArADIgJBAEoEQCAGKAK0AyIRQQRrKAIAIhNBeHEhCCAIQQRBCCATQQNxIhMbIAJqSQ0KIBNBAEcgCCACQSdqS3ENDCARELwFCyAGKAKEAiIIIAYoAvwBRgRAIAoQpRILIANB8ABqIQMgBigCgAIgCEHgAGxqIgIgCUHQAPwKAAAgAiAgQoCAgIBwgyAhhDcDWCACIAs2AlQgAiAMNgJQIAYgCEEBajYChAIgBkH4CWogBkFAa0GQAvwKAAAgBEHwAGsiBA0ACwsgBQRAIAFBBGsoAgAiA0F4cSECIAIgBUHwAGwiBEEEQQggA0EDcSIDG3JJDQggA0EARyACIARBJ2pLcQ0KIAEQvAULIAZBQGsgBkH4CWpBkAL8CgAAIAYoArwFIgIoAgAhASACIAFBAWs2AgAgAUEBRgRAIAYoArwFEDALAkAgBigCpAUiBUF/Rg0AIAYoAqwFIgMEQCAGKAKoBSEFA0AgBRCCBSAFQcgBahCGBCAFQegBaiEFIANBAWsiAw0ACyAGKAKkBSEFCyAFRQ0AIAYoAqgFIgJBBGsoAgAiA0F4cSEBIAEgBUHoAWwiBEEEQQggA0EDcSIDG2pJDQggA0EARyABIARBJ2pLcQ0KIAIQvAULIAYtAMgEQf8BRwRAIBAQrgQLIAZBmAVqEMQEAkAgBigCsAVBf0YNACAGQbAFahDpBCAGKAKwBSICRQ0AIAYoArQFIgNBBGsoAgAiBEF4cSEBIAEgAkHIAWwiAkEEQQggBEEDcSIEG2pJDQggBEEARyABIAJBJ2pLcQ0KIAMQvAULAkAgBigCjAQiAkUNACAGKAKUBCIEBEAgBigCiAQiBUEIaiEDIAUpAwBCf4VCgIGChIiQoMCAf4MhIANAICBQBEADQCADIgFBCGohAyAFQaABayEFIAEpAwBCgIGChIiQoMCAf4MiIEKAgYKEiJCgwIB/UQ0ACyAgQoCBgoSIkKDAgH+FISALIAUgIHqnQQN2QWxsaiIBQRRrIgkoAgAiBygCACEIIAcgCEEBazYCACAIQQFGBEAgCSgCABAwCyABQQxrKAIAIggEQCABQQhrKAIAIglBBGsoAgAiB0F4cSEBIAFBBEEIIAdBA3EiBxsgCGpJDQsgB0EARyABIAhBJ2pLcQ0NIAkQvAULICBCAX0gIIMhICAEQQFrIgQNAAsLIAIgAkEUbEEbakF4cSICakEJaiIBRQ0AIAYoAogEIAJrIgNBBGsoAgAiBEF4cSECIAJBBEEIIARBA3EiBBsgAWpJDQggBEEARyACIAFBJ2pLcQ0KIAMQvAULIA0gBkFAa0GQAvwKAABBASEOIA1BkAJqCyEEIAZBhApqIQEgDSEFA0AgBkFAayICIAVBkAL8CgAAIAZB+AlqIAIgHxCxBCAFQZACaiEFIAYoAoAKIQcgBigC/AkiAyAGKAL4CSICQX5GDQEaIAYgASkCIDcDgAggBiABKQIYNwP4ByAGIAEpAhA3A/AHIAYgASkCCDcD6AcgBiABKQIANwPgByACQX1HDQIgBCAFRw0AC0EACyEIIAQgBWtBkAJuIQMgBCAFRwRAA0AgBRC9ASAFQZACaiEFIANBAWsiAw0ACwtBACEDIA4EQCANQQRrKAIAIgJBeHEhASABIA5BkAJsIgRBBEEIIAJBA3EiAhtySQ0GIAJBAEcgASAEQSdqS3ENCCANELwFC0EEIQlBAAwECyAGIAYpA4AINwNgIAYgBikD+Ac3A1ggBiAGKQPwBzcDUCAGIAYpA+gHNwNIIAYgBikD4Ac3A0BB0AEQkAEiCwRAIAsgBzYCCCALIAM2AgQgCyACNgIAIAsgBikDQDcCDCALIAYpA0g3AhQgCyAGKQNQNwIcIAsgBikDWDcCJCALIAYpA2A3AixBASEDIAZBATYC2AUgBiALNgLUBSAGQQQ2AtAFQQAhCCAEIAVGDQMgBkGECmohCQNAIAZBQGsiASAFQZAC/AoAACAGQfgJaiABIB8QsQQgBUGQAmohBSAGKAKACiEHIAYoAvwJIQECQCAGKAL4CSIKQX5HBEAgBiAJKQIgNwOACCAGIAkpAhg3A/gHIAYgCSkCEDcD8AcgBiAJKQIINwPoByAGIAkpAgA3A+AHIApBfUcNASAEIAVHDQIMBgsgASEIDAULIAYgBikDgAg3A2AgBiAGKQP4BzcDWCAGIAYpA/AHNwNQIAYgBikD6Ac3A0ggBiAGKQPgBzcDQCAGKALQBSADRgRAIAZB0AVqIANBAUEEQTQQsxEgBigC1AUhCwsgCyADQTRsaiICIAc2AgggAiABNgIEIAIgCjYCACACIAYpA0A3AgwgAiAGKQNINwIUIAIgBikDUDcCHCACIAYpA1g3AiQgAiAGKQNgNwIsIAYgA0EBaiIDNgLYBSAEIAVHDQALDAMLQQQQpxQACxCeFQALQQQQpxQACyAEIAVrQZACbiEJIAQgBUcEQANAIAUQvQEgBUGQAmohBSAJQQFrIgkNAAsLIA4EQCANQQRrKAIAIgJBeHEhASABIA5BkAJsIgRBBEEIIAJBA3EiAhtySQ0CIAJBAEcgASAEQSdqS3ENBCANELwFCyAGKALUBSEJIAYoAtAFCyEBAkAgCARAIAAgBzYCCCAAIAg2AgQgAEF/NgIAIAMEQCAJIQUDQCAFENoEIAVBNGohBSADQQFrIgMNAAsLIAFFDQEgCUEEaygCACICQXhxIQAgACABQTRsIgFBBEEIIAJBA3EiAhtqSQ0CIAJBAEcgACABQSdqS3ENBCAJELwFDAELIAAgAzYCCCAAIAk2AgQgACABNgIACyAGQZAQaiQADwtB0JzJAEEuQYCdyQAQrxQAC0HwtckAQTcgBkGPEGpB+JLJAEGotskAENoSAAtBkJ3JAEEuQcCdyQAQrxQAC0G48MkAQQE6AAAAC0EIEKcUAAv0XgIUfwF+IwBBoARrIgIkACACQQRqIAEoAhgiB0HQAGooAgAgASABLQAsELQMAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFrDgwBAQEBAgMEAAUBAwYACwJAAkACQAJAAkBBAyACKAIEIgNBAmsiBSADQQFNG0EBaw4DAQIDAAsgAkHoAGogAkEEakHkAPwKAAAMAwsgAkHsAGogAkEIahCgByACQQM2AmgMAgtB5AAQkAEiBkUNECACKAIIIAYQuA8gAkEENgJoIAIgBjYCbAwBCyACQegAaiACQQRqEOQFCyABLQAtIQYgAkGIA2oiBCACQegAahC1DCACQQA7AawDIAJBBjYCqAMgAkGB8ccANgKkAyACQoCAgIBwNwKcAyACQoCAgIDAADcClAMgAkF+NgLoAiAGQQFGBEAgAigCkAMiAyACKAKIA0YEQCAEEJgSIAIvAa4DIQwLIAIoAowDIANB5ABsaiIFQQA6AAQgBUECNgIAIAIgA0EBajYCkAMgAigCBCIDQQJrIQULIAJB2ANqIAJB6AJqQcUA/AoAAAJAAkACQAJAAkACQEEDIAUgA0EBTRtBAWsOAwIABAELQeQAEJABIgNFDRMgAigCCCIFIAMQuA8gAkEENgJoIAIgAzYCbCACQegCaiACQegAaiAGEJILIAJBoAJqIAJB2ANqQcUA/AoAACACIAIpAvACNwOYAiACIAIpAugCNwOQAkHkABCQASIDDQIMEwsgAkHoAmoiCSACQQRqIgUgBhCSCyACQaACaiIDIAJB2ANqIgZBxQD8CgAAIAIgAikC8AI3A5gCIAIgAikC6AI3A5ACIAJB8AFqIAUQnA0gBiADQcUA/AoAACACIAIpA5gCNwOIAiACIAIpA5ACNwOAAiABKAIUIQMgASgCECEEIAkgBUHkAPwKAAAMAwsgAkHoAGoiA0EEaiIEIAJBCGoiBRCgByACQQM2AmggAkHoAmoiCSADIAYQkgsgAkGgAmoiBiACQdgDaiIIQcUA/AoAACACIAIpAvACNwOYAiACIAIpAugCNwOQAiAEIAUQoAcgAkEDNgJoIAJB8AFqIAMQnA0gCCAGQcUA/AoAACACIAIpA5gCNwOIAiACIAIpA5ACNwOAAiABKAIUIQMgASgCECEEIAlBBGogBRCgByACQQM2AugCDAILIAUgAxC4DyACQQQ2AmggAiADNgJsIAJB8AFqIAJB6ABqEJwNIAJB2ANqIAJBoAJqQcUA/AoAACACIAIpA5gCNwOIAiACIAIpA5ACNwOAAiABKAIUIQMgASgCECEEQeQAEJABIgZFDRAgBSAGELgPIAJBBDYC6AIgAiAGNgLsAgwBCyACQegAaiIDIAJBBGoiBRDkBSACQegCaiIJIAMgBhCSCyACQaACaiIGIAJB2ANqIgRBxQD8CgAAIAIgAikC8AI3A5gCIAIgAikC6AI3A5ACIAMgBRDkBSACQfABaiADEJwNIAQgBkHFAPwKAAAgAiACKQOYAjcDiAIgAiACKQOQAjcDgAIgASgCFCEDIAEoAhAhBCAJIAUQ5AULAkACQAJAAkACQEEDIAIoAugCIgVBAmsgBUEBTRtBAWsOAwECAwALIAJB6ABqIAJB6AJqQeQA/AoAAAwDCyACQewAaiACQewCahCgByACQQM2AmgMAgtB5AAQkAEiBUUNECACKALsAiAFELgPIAJBBDYCaCACIAU2AmwMAQsgAkHoAGogAkHoAmoQ5AULIAJBzANqIAJB6ABqELUMAkACQCAHKAJIIgkgBCADIAcoAkwiDSgCSBEAACIGQf8BcUUNACAGQQAgBmtxIgNB/wFxRQ0AIANBAWtB/wFxQQJ0IgMoArTVSSEEIAMoAqTVSSIFEJABIgNFDREgBQRAIAMgBCAF/AoAAAsgAiAFNgKoASACIAM2AqQBIAIgBTYCoAEgAywAAUG/f0wNCSADIAMtAAAiA0EgQQAgA0HBAGtB/wFxQRpJG3I6AAAgAkHoAGoiA0EgaiIKIAIoAtADIg4gAigC1AMiDxCoDiACQYACOwGsASACQQA2ApwBIAJCgICAgMAANwKUASACQaACaiIFIANBBHIiEEHEAPwKAABBASEIQQMgBkEBayAGcSIDQf8BcSIGaSIEIARBA00bQQFqIgRByABsEJABIgtFDQ8gC0F+NgIAIAtBBGogBUHEAPwKAAAgAkEBNgKYAiACIAs2ApQCIAIgBDYCkAIgBkUNAUHMACEGA0AgA0EAIANrcUH/AXEiBUUNAkEIQQogBUEERiIRGyIEEJABIgVFDRIgBARAIAVB85bJAEHclskAIBEbIAT8CgAACyACIAQ2AqgBIAIgBTYCpAEgAiAENgKgASAFLAABQb9/TA0LIANBAWsgA3EhAyAFIAUtAAAiBUEgQQAgBUHBAGtB/wFxQRpJG3I6AAAgCiAOIA8QqA4gAkGAAjsBrAEgAkEANgKcASACQoCAgIDAADcClAEgAkF+NgJoIAJBoAJqIBBBxAD8CgAAIAIoApACIAhGBEAgAkGQAmogCCADQf8BcWlBAWpBCEHIABCzESACKAKUAiELCyAGIAtqIgVBBGtBfjYCACAFIAJBoAJqQcQA/AoAACACIAhBAWoiCDYCmAIgBkHIAGohBiADQf8BcQ0ACwwBC0EAIQggAkEANgKYAiACQoCAgICAATcCkAILAn8CQCAJIA0oAiARDgAiFlANACAHKQNAIBaDIBZRDQAgAigClAIhByACKALQAyEFIAIoApACIQsgAigC1AMiBARAIAUhAwNAIAMQwAcgA0HkAGohAyAEQQFrIgQNAAsLIAIoAswDIgYEQCAFQQRrKAIAIgRBeHEhAyADIAZB5ABsIgZBBEEIIARBA3EiBBtqSQ0OIARBAEcgAyAGQSdqS3ENDyAFELwFCyACQegCahDAByAHIAhByABsagwBCyACQegAaiIFIAJB6AJqQeQA/AoAAEHkABCQASIDRQ0PIAMgBUHkAPwKAAAgAigCkAIiCyAIRgRAIAJBkAJqEKkSIAIoApACIQsLIAIoApQCIgcgCEHIAGxqIgZBgAI7AUQgBkEGNgJAIAZB0PHHADYCPCAGQX82AjggBkIENwMwIAZCATcDKCAGIAM2AiQgBkEBNgIgIAZBfjYCACACKALQAyEFIAIoAtQDIgQEQCAFIQMDQCADEMAHIANB5ABqIQMgBEEBayIEDQALCyACKALMAyIEBEAgBUEEaygCACIJQXhxIQMgAyAEQeQAbCIEQQRBCCAJQQNxIgkbakkNDSAJQQBHIAMgBEEnaktxDQ4gBRC8BQsgBkHIAGoLIQggAkHoAmogAkHYA2pBxQD8CgAAIAIgAikDiAI3A6gCIAIgAikDgAI3A6ACIAIgAikD8AE3A5ACIAIgAikD+AE3A5gCAn8gAS0ALiITBEBBCCEGQQAMAQsgAkHoAGoQhhBBBxCQASIFRQ0QIAVB/PLHACgAADYAAyAFQfnyxwAoAAA2AABB5AAQkAEiA0UNDyADQQM2AgAgAyACKQJoNwIEIAMgAikCcDcCDCADIAIpAng3AhQgAyACKQKAATcCHCADIAIpAogBNwIkIAMgAikCkAE3AiwgAyACKAKYATYCNEHIABCQASIGRQ0PIAZBADsBRCAGQQQ2AkAgBkG2k8kANgI8IAZBfzYCOCAGQgQ3AzAgBkIBNwMoIAYgAzYCJCAGQQE2AiAgBkEHNgIMIAYgBTYCCCAGQo+AgIDwADcDAEEBCyEEIAJB6ABqIgogAkHoAmoiDkHFAPwKAAAgAiAGNgLkASACIAY2AuABIAIgCDYC3AEgAiALNgLYASACIAc2AtQBIAIgBzYC0AEgAiAMOwGuASACQQE6AK0BIAIgAikDqAI3A7gBIAIgAikDoAI3A7ABIAIgAikDkAI3A8ABIAIgAikDmAI3A8gBIAIgBDYC6AEgAiAEQcgAbCIJIAZqIhQ2AuwBIAQhBSAJIQMCQCACKAJoIg1BeUcEQCAOIAoQowkgAigC7AJBAUcNASACKALwAiIDIARqIgUgA0kNASAFQfK4nA5PDQsgBUHIAGwhAwsCQCADRQRAQQghDkEAIQUMAQsgAxCQASIORQ0PCyACQQA2AuADIAIgDjYC3AMgAiAFNgLYAwJAIA1BeUcEQCACQegCaiACQegAahCjCSACKALsAkEBRw0BIAIoAvACIgMgBGoiBCADSQ0BC0EAIQMgBCAFSwRAIAJB2ANqQQAgBEEIQcgAELMRIAIoAtwDIQ4gAigC4AMhAwsCQCANQXlGDQAgAigCzAEhCiACKALIASEMIAIoAsQBIQQgAigCwAEhDwJAAkACQCANQQZqDgICAQALIAIoArwBIRAgAigCuAEhESACKAK0ASEFIAIoArABIRIgDUF+cUF8RwRAIA4gA0HIAGxqIhUgDTYCACAVQQRqIAJB6ABqQQRyQcQA/AoAACADQQFqIQMLIBJFDQAgBSAQRwRAIA4gA0HIAGxqIQ0DQCANIAVByAD8CgAAIA1ByABqIQ0gA0EBaiEDIBAgBUHIAGoiBUcNAAsLIBFFDQAgEiARQcgAbBDZEgsgD0UNACAEIApHBEAgDiADQcgAbGohBQNAIAUgBEHIAPwKAAAgBUHIAGohBSADQQFqIQMgCiAEQcgAaiIERw0ACwsgDEUNACAPIAxByABsENkSCyAHIAhHBEAgDiADQcgAbGohBCAHIQUDQCAEIAVByAD8CgAAIARByABqIQQgA0EBaiEDIAggBUHIAGoiBUcNAAsLIAtFDQAgB0EEaygCACIEQXhxIQUgBSALQcgAbCIIQQRBCCAEQQNxIgQbakkNDiAEQQBHIAUgCEEnaktxDQ8gBxC8BQsCQCATBEAgAyEHDAELAkAgCUHIAGsiCEHIAG4iBUEHcUEHRgRAIAMhByAGIQUMAQsgBUEBakEHcSIFIANqIQdBACAFayEEIA4gA0HIAGxqIQMgBiEFA0AgAyAFQcgA/AoAACADQcgAaiEDIAVByABqIQUgBEEBaiIEDQALCyAIQfgDTwRAIA4gB0HIAGxqIQpBACEIA0AgCCAKaiIEIAUgCGoiA0HIAPwKAAAgBEHIAGogA0HIAGpByAD8CgAAIARBkAFqIANBkAFqQcgA/AoAACAEQdgBaiADQdgBakHIAPwKAAAgBEGgAmogA0GgAmpByAD8CgAAIARB6AJqIANB6AJqQcgA/AoAACAEQbADaiADQbADakHIAPwKAAAgBEH4A2ogA0H4A2pByAD8CgAAIAhBwARqIQggB0EIaiEHIANBwARqIBRHDQALCyAGQQRrKAIAIgRBeHEhAyADQQRBCCAEQQNxIgQbIAlqSQ0OIARBAEcgAyAJQSdqS3ENDyAGELwFCyACIAIpAtgDNwOQAiACIAc2ApgCDAwLQezrxwBBI0GA7McAEL8TAAtB7OvHAEEjQcSIyAAQvxMACwJAAkACQAJAAkBBAyACKAIEIgNBAmsiBSADQQFNG0EBaw4DAQIDAAsgAkHoAGogAkEEakHkAPwKAAAMAwsgAkHsAGogAkEIahCgByACQQM2AmgMAgtB5AAQkAEiBkUNDyACKAIIIAYQuA8gAkEENgJoIAIgBjYCbAwBCyACQegAaiACQQRqEOQFCyABLQAtIQQgAkGIA2oiByACQegAahC1DCACQQA7AawDIAJBBjYCqAMgAkGB8ccANgKkAyACQoCAgIBwNwKcAyACQoCAgIDAADcClANBfiEGIAJBfjYC6AIgBEEBRgRAIAIoApADIgMgAigCiANGBEAgBxCYEiACLwGuAyENIAIoAugCIQYLIAIoAowDIANB5ABsaiIFQQA6AAQgBUECNgIAIAIgA0EBajYCkAMgAigCBCIDQQJrIQULIAJB2ANqIAJB6AJqQQRyQcEA/AoAAAJAAkACQAJAAkACQEEDIAUgA0EBTRtBAWsOAwIABAELQeQAEJABIgMNAgwSCyACQaACaiACQQRqIgMgBBCSCyACKAKgAiEJIAIoAqQCIQUgAigCqAIhDiACKAKsAiEHIAJB6AJqIAJB2ANqQcEA/AoAACACQegAaiADQeQA/AoAAAwDCyACQegAaiIDQQRqIgggAkEIaiIKEKAHIAJBAzYCaCACQaACaiADIAQQkgsgAigCoAIhCSACKAKkAiEFIAIoAqgCIQ4gAigCrAIhByACQegCaiACQdgDakHBAPwKAAAgCCAKEKAHIAJBAzYCaAwCCyACKAIIIgggAxC4DyACQQQ2AmggAiADNgJsIAJBoAJqIAJB6ABqIAQQkgsgAigCoAIhCSACKAKkAiEFIAIoAqgCIQ4gAigCrAIhByACQegCaiACQdgDakHBAPwKAABB5AAQkAEiA0UNDyAIIAMQuA8gAkEENgJoIAIgAzYCbAwBCyACQegAaiIDIAJBBGoiCBDkBSACQaACaiADIAQQkgsgAigCoAIhCSACKAKkAiEFIAIoAqgCIQ4gAigCrAIhByACQegCaiACQdgDakHBAPwKAAAgAyAIEOQFCyACQaACaiACQegAahCcDSACQdgDaiACQegCakHBAPwKAAAgAigCqAIhECACKAKgAiEIAkACfwJAIAIoAqwCIg8gAigCpAIiA2tByABuAn8CQAJAAkACQAJAAn8CQAJ/AkAgBkF7RwRAIAhFDQMgBkF8Rg0BIAZBfUciBCAJRQ0CGiAHIAVrQcgAbiAEagwCCyAIRQ0GIA8gA2tByABuDAMLQQAgCUUNABogByAFa0HIAG4LIA8gA2tByABuagwBCyAGQXxHBEAgBkF9RyEKIAlFDQIgByAFa0HIAG4gCmoMAQsgCUUNAiAHIAVrQcgAbgsiCkHyuJwOTw0RCwJAIApFBEBBCCEMQQAhCgwBCyAKQcgAbBCQASIMRQ0VCyACQQA2AvACIAIgDDYC7AIgAiAKNgLoAiACQegAaiACQdgDakHBAPwKAAAgBkF7Rg0CIAhFDQUgBkF8Rg0DIAZBfUciBCAJRQ0EGiAHIAVrQcgAbiAEagwECyACQoCAgICAATcC6AJBACEEDAYLIAJCgICAgIABNwLoAkEAIQQMBQsgCEUEQEEAIQQMBQsgDyADa0HIAG4MAwtBACAJRQ0AGiAHIAVrQcgAbgtqDAELIAZBfEcEQCAGQX1HIgQgCUUNARogByAFa0HIAG4gBGoMAQsgCUUEQEEAIQQMAgsgByAFa0HIAG4LIQtBACEEIAogC0kEQCACQegCakEAIAtBCEHIABCzESACKALsAiEMIAIoAvACIQQLAkAgBkF7Rg0AIAZBfnFBfEcEQCAMIARByABsaiIKIAY2AgAgCkEEaiACQegAakHBAPwKAAAgCiANOwFGIApBAToARSAEQQFqIQQLIAlFDQAgBSAHRwRAIAwgBEHIAGxqIQYDQCAGIAVByAD8CgAAIAZByABqIQYgBEEBaiEEIAcgBUHIAGoiBUcNAAsLIA5FDQAgCUEEaygCACIFQXhxIQYgBiAOQcgAbCIHQQRBCCAFQQNxIgUbakkNDCAFQQBHIAYgB0EnaktxDQ0gCRC8BQsgCEUNACADIA9HBEAgDCAEQcgAbGohBQNAIAUgA0HIAPwKAAAgBUHIAGohBSAEQQFqIQQgDyADQcgAaiIDRw0ACwsgEEUNACAIQQRrKAIAIgNBeHEhBSAFIBBByABsIgZBBEEIIANBA3EiAxtqSQ0LIANBAEcgBSAGQSdqS3ENDCAIELwFCyACIAIpAugCNwOQAiACIAQ2ApgCDAkLAkACQAJAAkACQEEDIAIoAgQiA0ECayADQQFNG0EBaw4DAQIDAAsgAkHoAGogAkEEakHkAPwKAAAMAwsgAkHsAGogAkEIahCgByACQQM2AmgMAgtB5AAQkAEiA0UNDiACKAIIIAMQuA8gAkEENgJoIAIgAzYCbAwBCyACQegAaiACQQRqEOQFCyABLQAtIQMgAkGIA2ogAkHoAGoQtQwgAkEAOwGsAyACQQY2AqgDIAJBgfHHADYCpAMgAkKAgICAcDcCnAMgAkKAgICAwAA3ApQDQX4hBSACQX42AugCIAICfwJAIANFBEAgAkHYA2ogAkHoAmpBBHJBwQD8CgAADAELIAIoApADIgMgAigCiANHBH9BfgUgAkGIA2oQmBIgAi8BrgMhCCACKALoAgshBSACKAKMAyADQeQAbGoiBkEAOgAEIAZBAjYCACACIANBAWo2ApADIAJB2ANqIAJB6AJqQQRyQcEA/AoAAEEIIQNBACAFQX1GDQEaC0HIABCQASIDRQ0MIAMgBTYCACADQQRqIAJB2ANqQcEA/AoAACADIAg7AUYgA0EBOgBFQQELIgY2ApgCIAIgAzYClAIgAiAGNgKQAgwICwJAAkACQAJAAkBBAyACKAIEIgNBAmsiCCADQQFNG0EBaw4DAQIDAAsgAkHoAGogAkEEakHkAPwKAAAMAwsgAkHsAGogAkEIahCgByACQQM2AmgMAgtB5AAQkAEiBUUNDSACKAIIIAUQuA8gAkEENgJoIAIgBTYCbAwBCyACQegAaiACQQRqEOQFCyABLQAtIQUgAkGIA2oiBiACQegAahC1DCACQQA7AawDIAJBBjYCqAMgAkGB8ccANgKkAyACQoCAgIBwNwKcAyACQoCAgIDAADcClANBfiEEIAJBfjYC6AIgBUEBRgRAIAIoApADIgMgAigCiANGBEAgBhCYEiACLwGuAyEKIAIoAugCIQQLIAIoAowDIANB5ABsaiIGQQA6AAQgBkECNgIAIAIgA0EBajYCkAMgAigCBCIDQQJrIQgLIAJB2ANqIAJB6AJqQQRyQcEA/AoAAAJAAkACQAJAAkBBAyAIIANBAU0bQQFrDgMBAgMACyACQegAaiACQQRqQeQA/AoAAAwDCyACQewAaiACQQhqEKAHIAJBAzYCaAwCC0HkABCQASIDRQ0NIAIoAgggAxC4DyACQQQ2AmggAiADNgJsDAELIAJB6ABqIAJBBGoQ5AULIAJBoAJqIAJB6ABqIAUQkgsgAkHoAmogAkHYA2pBwQD8CgAAIAIoAqwCIQggAigCqAIhCyACKAKkAiEDIAIoAqACIQcCQAJAAn8gBEF8RwRAIARBfUchBiAHRQ0CIAggA2tByABuIAZqDAELIAdFBEAgAkKAgICAgAE3AtgDQQAhBQwDCyAIIANrQcgAbgsiBkHyuJwOTw0ICwJAIAZFBEBBCCEJQQAhBgwBCyAGQcgAbBCQASIJRQ0MCyACQQA2AuADIAIgCTYC3AMgAiAGNgLYAyACQegAaiACQegCakHBAPwKAAACfyAEQXxHBEAgBEF9RyIFIAdFDQEaIAggA2tByABuIAVqDAELIAdFBEBBACEFDAILIAggA2tByABuCyENQQAhBSAGIA1JBEAgAkHYA2pBACANQQhByAAQsxEgAigC3AMhCSACKALgAyEFCyAEQX5xQXxHBEAgCSAFQcgAbGoiBiAENgIAIAZBBGogAkHoAGpBwQD8CgAAIAYgCjsBRiAGQQE6AEUgBUEBaiEFCyAHRQ0AIAMgCEcEQCAJIAVByABsaiEEA0AgBCADQcgA/AoAACAEQcgAaiEEIAVBAWohBSAIIANByABqIgNHDQALCyALRQ0AIAdBBGsoAgAiBkF4cSEDIAMgC0HIAGwiBEEEQQggBkEDcSIGG2pJDQkgBkEARyADIARBJ2pLcQ0KIAcQvAULIAIgAikC2AM3A5ACIAIgBTYCmAIMBwtBzIvJAEGnAUG08McAEL8TAAsCQAJAAkACQAJAQQMgAigCBCIDQQJrIANBAU0bQQFrDgMBAgMACyACQegAaiACQQRqQeQA/AoAAAwDCyACQewAaiACQQhqEKAHIAJBAzYCaAwCC0HkABCQASIDRQ0LIAIoAgggAxC4DyACQQQ2AmggAiADNgJsDAELIAJB6ABqIAJBBGoQ5AULIAJB6AJqENIOIAJBoAJqIgMgAkHoAGoQtQwgAigCqAIiBiACKAKgAkYEQCADEJgSCyACKAKkAiAGQeQAbGoiA0EDNgIAIAMgAikC6AI3AgQgAyACKQLwAjcCDCADIAIpAvgCNwIUIAMgAikCgAM3AhwgAyACKQKIAzcCJCADIAIpApADNwIsIAMgAigCmAM2AjRBASEFIAIgBkEBaiIDNgKoAiACIAM2AvwDIAIgAikDoAI3AvQDQcgAEJABIgMNAQwIC0GwjMkAQasBQcTwxwAQvxMACyADQX42AgAgAyACKQLYAzcCBCADIAIpAuADNwIMIAMgAikC6AM3AhQgAyACKQLwAzcCHCADIAIpAvgDNwIkIANBgAI7AUQgA0EGNgJAIANBgfHHADYCPCADQoCAgIBwNwI0IANCgICAgMAANwIsIAJBATYCoAIgAiADNgKkAiACQQE2AqgCIAJB6ABqIQgjAEHwAmsiByQAAkBB5AAQkAEiBgRAIAZBAToABCAGQQI2AgAgB0ECNgIwIAdBAToANCAHQQxqIAdBMGoiBBC1DCAHQQI2AjAgB0EIOgA0IAdBGGogBBC1DCAHQTRqEIYQIAdBAzYCMCAHQSRqIAQQtQxB+AMQkAEiBEUNCUHkABCQASIKRQ0JIAogBjYCBCAKQQQ2AgBBBxCQASILRQ0KIAtB/PLHACgAADYAAyALQfnyxwAoAAA2AAAgByAHKQIkNwOgASAHIAcoAiw2AqgBIAdBsAFqIAcoAhAiBiAHKAIUIg8QqA4gB0HAAWogBiAPEKgOIAcgBygCFDYC2AEgByAHKQIMNwPQASAHQdAAaiIGIAcoAhwiECAHKAIgIhEQqA4gB0EAOwF0IAdBETYCcCAHQd37xwA2AmwgB0KAgICAcDcCZCAHQoCAgIDAADcCXCAHQX42AjAgBygCWCIPIAcoAlBGBEAgBhCYEiAHLwF2IQwLIAcoAlQgD0HkAGxqIhJBADoABCASQQI2AgAgByAPQQFqNgJYIAdB4AFqIAdBMGpBxQD8CgAAIAYgECAREKgOIAdBADsBdCAHQQ82AnAgB0Hu+8cANgJsIAdCgICAgHA3AmQgB0KAgICAwAA3AlwgB0F+NgIwIAcoAlgiDyAHKAJQRgRAIAdB0ABqEJgSIAcvAXYhBgsgBygCVCAPQeQAbGoiEEEAOgAEIBBBAjYCACAHIA9BAWo2AlggB0GoAmoiDyAHQTBqQcUA/AoAACAEQQc2AlQgBCALNgJQIARCj4CAgPAANwNIIARBADsBRCAEQQQ2AkAgBEH/kMkANgI8IARBfzYCOCAEQgQ3AzAgBEIBNwMoIAQgCjYCJCAEQQE2AiAgBEF+NgIAIAQgBykDoAE3A2ggBCAHKAKoATYCcCAEQQA7AYwBIARCgICAgHA3AnwgBEKAgICAwAA3AnQgBEF+NgKQASAEQQQ2AogBIARBtpPJADYChAEgBEGs+8cANgLMASAEQQ82AtABIARBfjYC2AEgBEKAgICAwAA3ArwBIARCgICAgHA3AsQBIARBgAI7AdQBIARBu/vHADYClAIgBEESNgKYAiAEQX42AqACIARCgICAgMAANwKEAiAEQoCAgIBwNwKMAiAEQYACOwGcAiAEIAcoArgBNgK4ASAEIAcpA7ABNwOwASAEIAcpA8ABNwP4ASAEIAcoAsgBNgKAAiAEQoCAgIBwNwLUAiAEQoCAgIDAADcCzAIgBEGAAjsB5AIgBEEQNgLgAiAEQc37xwA2AtwCIAQgBygC2AE2AsgCIAQgBykD0AE3A8ACIARB6AJqIAdB4AFqQcUA/AoAACAEIAw7Aa4DIARBAToArQMgBEGwA2ogD0HFAPwKAAAgBCAGOwH2AyAEQQE6APUDIAdBBzYCnAEgByAENgKYASAHQQc2ApQBIAdB0ABqIgsgBygCHCIEIAcoAiAiChCoDiAHQQA7AXQgB0EONgJwIAdB/fvHADYCbCAHQoCAgIBwNwJkIAdCgICAgMAANwJcIAdBfjYCMCAHKAJYIgYgBygCUEcNASALEJgSDAELDAgLIAcoAlQgBkHkAGxqIgtBADoABCALQQI2AgAgByAGQQFqNgJYIAdBqAJqIgsgB0EwakHFAPwKAAAgBy8BdiEMIAdBlAFqEKkSIAcoApgBIgZB+ANqIAtBxQD8CgAAIAYgDDsBvgQgBkEBOgC9BCAIIAcoApQBNgIIIAggBjYCACAIIAZBwARqNgIMIAggBjYCBCAKBEAgBCEGA0AgBhDAByAGQeQAaiEGIApBAWsiCg0ACwsCQAJAAkAgBygCGCIIBEAgBEEEaygCACIKQXhxIQYgBiAIQeQAbCIIQQRBCCAKQQNxIgobakkNASAKQQBHIAYgCEEnaktxDQIgBBC8BQsgB0HwAmokAAwCC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgAigCdCIIIAIoAmwiBmsiBEHIAG4hBwJAIAYgCEYNACACQaACakEBIAdBCEHIABCzESACKAKoAiEFIAIoAqQCIQMgBEUNACADIAVByABsaiAGIAT8CgAACyACIAUgB2oiBDYCqAIgAigCcCIGBEAgAigCaCIHQQRrKAIAIghBeHEhBSAFIAZByABsIgZBBEEIIAhBA3EiCBtqSQ0FIAhBAEcgBSAGQSdqS3ENBiAHELwFCwJAAkACQAJAAkBBAyACKAIEIgVBAmsgBUEBTRtBAWsOAwECAwALIAJB6ABqIAJBBGpB5AD8CgAADAMLIAJB7ABqIAJBCGoQoAcgAkEDNgJoDAILQeQAEJABIgVFDQkgAigCCCAFELgPIAJBBDYCaCACIAU2AmwMAQsgAkHoAGogAkEEahDkBQsgAkHoAmogAkHoAGoQnA0CQAJAIAIoAvQCIgggAigC7AIiBWsiBkHIAG4iByACKAKgAiAEa0sEQCACQaACaiAEIAdBCEHIABCzESACKAKkAiEDIAIoAqgCIQQMAQsgBSAIRg0BCyAGRQ0AIAMgBEHIAGxqIAUgBvwKAAALIAIgBCAHajYCqAIgAigC8AIiBgRAIAIoAugCIgVBBGsoAgAiBEF4cSEDIAMgBkHIAGwiBkEEQQggBEEDcSIEG2pJDQUgBEEARyADIAZBJ2pLcQ0GIAUQvAULIAIgAikCoAI3A5ACIAIgAigCqAI2ApgCDAMLIAMgBUEAQQFBxKXFABD9FAALIAUgBEEAQQFBxKXFABD9FAALEJ4VAAsgASgCACEGIAEoAhghBAJAIAEoAhwiA0UEQEEAIQgMAQsgASgCICEFIAMgAygCACIHQQFqNgIAIAdBAE4EQCABKAIoIQkgASgCJCENIAMhCAwBCwALIAEtACwhByABLQAvIQogAS0ALSELIAJB6AJqIAJBBGoiDEHkAPwKAAACQCAGQQlHBEAgAiAJNgLkAyACIA02AuADIAIgBTYC3AMgAiAINgLYAyACQegAaiIFIAQgASACQdgDaiAHQQFxIAtBAXEiBEEBIApBAXEQnAdByAEQkAEiA0UNBSADIAxB5AD8CgAAIANB5ABqIAVB5AD8CgAAQQAhCCACQQA7AZwEQQMhBiACQQM2ApgEQYv8xwAhByACQYv8xwA2ApQEQX8hCiACQX82ApAEIAJCBDcDiAQgAkICNwOABCACIAM2AvwDIAJBAjYC+ANBfiELIAJBfjYC2AMCfyAERQRAQQQhCUEAIQ1BAAwBCyACQfgDahCYEiACKAL8AyIDQQA6AMwBIANBAjYCyAEgAkEDNgKABCACLQCcBCEIIAIoApgEIQYgAigClAQhByACKAKQBCEKIAIoAowEIQ0gAigCiAQhCSACKALYAyELIAIvAZ4EIQ4gAigChAQLIQQgAiACKQL8AzcDwAIgAiACKQL0AzcDuAIgAiACKQLsAzcDsAIgAiACKQLkAzcDqAIgAiACKQLcAzcDoAIMAQsgAkHoAGoQ0g4gAkHYA2oiBiACQegCahC1DCACKALgAyIHIAIoAtgDRgRAIAYQmBILQQMhBiACKALcAyAHQeQAbGoiBEEDNgIAIAQgAikCaDcCBCAEIAIpAnA3AgwgBCACKQJ4NwIUIAQgAikCgAE3AhwgBCACKQKIATcCJCAEIAIpApABNwIsIAQgAigCmAE2AjQgAiAHQQFqIgQ2AuADIAIgBDYCxAIgAiACKQPYAzcCvAJBi/zHACEHQQQhCUF+IQsCQCADRQRAQX8hCgwBC0F/IQogAyADKAIAIgNBAWs2AgAgA0EBRw0AIAggBRC2EAtBACEEQQAhDUEAIQgLIAIoApgCIgwgAigCkAJGBEAgAkGQAmoQqRILIAIoApQCIgUgDEHIAGxqIgMgCzYCACADIAIpA6ACNwIEIAMgAikDqAI3AgwgAyACKQOwAjcCFCADIAIpA7gCNwIcIAMgAikDwAI3AiQgAyAOOwFGIANBAToARSADIAg6AEQgAyAGNgJAIAMgBzYCPCADIAo2AjggAyANNgI0IAMgCTYCMCADIAQ2AiwgAiAMQQFqIgM2ApgCAkAgAS0AL0EBRw0AIAEoAhghBiACQQE2AtgDIAEtAC0hBCABLQAsIQcgAkEANgLoAiACQegAaiIIIAYgAkHYA2ogAkHoAmogByAEQQFBABCcB0HkABCQASIJRQ0EIAkgCEHkAPwKAAAgAigCkAIgA0YEQCACQZACahCpEiACKAKUAiEFCyAFIANByABsaiIDQQA7AUQgA0EGNgJAIANBzPbIADYCPCADQX82AjggA0IENwMwIANCATcDKCADIAk2AiQgA0EBNgIgIANBfjYCACACIAxBAmoiAzYCmAIgASgCAEEBayIJQQNNBEAgAiAJQQNGBH8gAiABKQIENwLcA0EEBUEDCzYC2AMgAkEANgLoAiACQegAaiIIIAYgAkHYA2ogAkHoAmogByAEQQFBABCcB0HkABCQASIJRQ0FIAkgCEHkAPwKAAAgAigCkAIgA0YEfyACQZACahCpEiACKAKUAgUgBQsgA0HIAGxqIgNBADsBRCADQQQ2AkAgA0HS9sgANgI8IANBfzYCOCADQgQ3AzAgA0IBNwMoIAMgCTYCJCADQQE2AiAgA0F+NgIAIAIgDEEDaiIDNgKYAiACQQA2AugCIAJB6ABqIgUgBiABIAJB6AJqIAcgBEEBQQAQnAdB5AAQkAEiCUUNBSAJIAVB5AD8CgAAIAIoApACIANGBEAgAkGQAmoQqRILIAIoApQCIgUgA0HIAGxqIgNBADsBRCADQQQ2AkAgA0HW9sgANgI8IANBfzYCOCADQgQ3AzAgA0IBNwMoIAMgCTYCJCADQQE2AiAgA0F+NgIAIAIgDEEEaiIDNgKYAgsgBw0AIAJBADYC6AIgAkHoAGoiByAGIAEgAkHoAmpBACAEQQFBABCcB0HkABCQASIGRQ0EIAYgB0HkAPwKAAAgAigCkAIgA0YEfyACQZACahCpEiACKAKUAgUgBQsgA0HIAGxqIgVBADsBRCAFQQQ2AkAgBUHa9sgANgI8IAVBfzYCOCAFQgQ3AzAgBUIBNwMoIAUgBjYCJCAFQQE2AiAgBUF+NgIAIAIgA0EBaiIFNgKYAiABKAIYIQYgAS0ALCEEIAEtAC0hByACQQA2AugCIAJB6ABqIgkgBiABIAJB6AJqIAQgB0EBQQAQnAdB5AAQkAEiBkUNBCAGIAlB5AD8CgAAIAIoApACIAVGBEAgAkGQAmoQqRILIAIoApQCIAVByABsaiIFQQA7AUQgBUEENgJAIAVB3vbIADYCPCAFQX82AjggBUIENwMwIAVCATcDKCAFIAY2AiQgBUEBNgIgIAVBfjYCACACIANBAmo2ApgCCyAAIAIoApgCNgIIIAAgAikDkAI3AgACQAJAIAEoAgwiAEF/Rg0AIABFDQAgASgCECIFQQRrKAIAIgZBeHEhAyADQQRBCCAGQQNxIgYbIABqSQ0CIAZBAEcgAyAAQSdqS3ENASAFELwFCwJAIAEoAhwiAEUNACAAIAAoAgAiAEEBazYCACAAQQFHDQAgASgCHCABQSBqKAIAELYQCyACQaAEaiQADwsMAQtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQQgQpxQAC0G48MkAQQE6AAAAC0EBEKcUAAvzUAIefwN+IwBB4AZrIgMkACADQcwAaiILIAEoAggiDCgCACACKAIEIgogAigCCCIEIAwoAgQoAhQRBQACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAMoAkxBf0cEQCADQawBaiALQeAA/AoAACAMKAIMKAIAIhgoAgBBAWohBCAYIAQ2AgAgBEUNAiAMKAIIIR0gDCgCECgCACIWKAIAQQFqIQQgFiAENgIAIARFDQIgDCgCFCEeIAMgGDYCmAIgAygCxAEhBCADKALAASELAkACQCADKAK8AUF/RwRAIARFBEBBASEFDAILIAQQkAEiBUUNAiAEBEAgBSALIAT8CgAACyAEQX9HDQFBABCnFAALAkAgBEEATgR/IARFBEBBASEFDAMLIAQQkAEiBQ0BQQEFQQALEKcUAAsgBEUNACAFIAsgBPwKAAALIBggGCgCAEEBaiILNgIAIAtFDQNBGBCQASIUBEAgFCAYNgIUIBQgBDYCECAUIAU2AgwgFCAENgIIIBRBATYCBCAUQQI2AgAgFiAWKAIAQQFqIgQ2AgAgBEUNBCACKAIQIQogAigCFCEJIAMgFjYCkAUgAyAUNgL0BQJAAkACQCAJBEAgCiAJQcgAbGohBiAKIQcDQAJAAkAgAygChAIiBEUNACAELQAUQQNHBEAgAyAEQQhqNgLAAyAEQRRqIANBwANqEI8PCyAEKAIQIgtFDQAgC0HIAGwhBSAEKAIMQTxqIQQgBygCBCEIIAcoAgghCwNAIAsgBEEEaigCAEYEQCAEKAIAIAggCxCPE0UNAwsgBEHIAGohBCAFQcgAayIFDQALC0EBIQUCQCAHQQhqKAIAIgRFIgsNACAHQQRqKAIAIQYgBBCQASIFRQ0aIAsNACAFIAYgBPwKAAALIBYgFigCAEEBaiILNgIAIAtFDQpBGBCQASIVRQ0VIBUgFjYCFCAVIAQ2AhAgFSAFNgIMIBUgBDYCCCAVQoGAgIAQNwIAIAMgFTYCwAUgA0EANgLIAyADQoCAgIDAADcCwANBBCESQQAhC0EEIRcCQCAUKAIIQX9GDQBBACEFQQQhCSAUIQQDQCAEKAIQIQYgBCgCDCEIIAMoAsADIAtGBEAgA0HAA2oQlhIgAygCxAMhCQsgBSAJaiIHIAg2AgAgB0EEaiAGNgIAIAMgC0EBaiILNgLIAyAFQQhqIQUgBCgCFCIEKAIIQX9HDQALIAMoAsQDIRcgC0EBdiIGRQ0AIBcgC0EDdGohDEEAIQQgBkEBRwRAIAZBAXEgBkH+////B3EhCkEAIQYDQCAFIBdqQQhrIgcpAgAhISAHIAYgF2oiBykCADcCACAHICE3AgAgB0EIaiIIKQIAISEgCCAMIARB/v///wFzQQN0aiIHKQIANwIAIAcgITcCACAFQRBrIQUgBkEQaiEGIAogBEECaiIERw0AC0UNAQsgFyAEQQN0aiIGKQIAISEgBiAMIARBf3NBA3RqIgQpAgA3AgAgBCAhNwIACyADKALAAyEfIANBADYCyAMgA0KAgICAwAA3AsADAkAgFSgCCEF/Rg0AQQAhBUEEIQkgFSEEA0AgBCgCECEGIAQoAgwhCCADKALAAyAQRgRAIANBwANqEJYSIAMoAsQDIQkLIAUgCWoiByAINgIAIAdBBGogBjYCACADIBBBAWoiEDYCyAMgBUEIaiEFIAQoAhQiBCgCCEF/Rw0ACyADKALEAyESIBBBAXYiBkUNACASIBBBA3RqIQxBACEEIAZBAUcEQCAGQQFxIAZB/v///wdxIQpBACEGA0AgBSASakEIayIHKQIAISEgByAGIBJqIgcpAgA3AgAgByAhNwIAIAdBCGoiCCkCACEhIAggDCAEQf7///8Bc0EDdGoiBykCADcCACAHICE3AgAgBUEQayEFIAZBEGohBiAKIARBAmoiBEcNAAtFDQELIBIgBEEDdGoiBikCACEhIAYgDCAEQX9zQQN0aiIEKQIANwIAIAQgITcCAAsgAygCwAMhIEEEIRtBACENAkACQAJAAkACQCADKAKEAiIERQ0AIAQtABRBA0cEQCADIARBCGo2AsADIARBFGogA0HAA2oQjw8LIAQoAhAiGUUNACAEKAIMIREgGUEYbBCQASIbRQ0BIANB+ANqIQ0DQCADQcADaiARIBNByABsahD0ByADKALkAyEKQQQhDCADKALoAyIOBEAgCiEFIA4iBkEMbCIIEJABIgwiBEUNBANAIANByAJqIAUQ6QogBCADKALQAjYCCCAEIAMpAsgCNwIAIARBDGohBCAFQeQAaiEFIAZBAWsiBg0ACwsCQCADKALAAyIEQX5GDQAgBEF/RwRAIANBwANqEIgEDAELIAMoAsQDIgQEQCADKALIAyIGQQRrKAIAIgVBeHEhCCAIQQRBCCAFQQNxIgUbIARqSQ0eIAVBAEcgCCAEQSdqS3ENHyAGELwFCyADKALUAyEGIAMoAtgDIgUEQCAGIQQDQCAEEIgEIARBIGohBCAFQQFrIgUNAAsLIAMoAtADIgRFDQAgBkEEaygCACIFQXhxIQggCCAEQQV0IgRBBEEIIAVBA3EiBRtySQ0dIAVBAEcgCCAEQSdqS3ENHiAGELwFCyAOBEBBACEIA0ACQAJAAkACQEEDIAogCEHkAGxqIgcoAgAiBEECayAEQQFNGw4DAwECAAsgBxDoCQwCCyAHKAIEIQQgB0EUahDDAgJAAkACQCAEDgIBAgALIAcoAgwhBiAHKAIQIgUEQCAGIQQDQCAEKAIAIgkEQCAEQQRqKAIAIhxBBGsoAgAiGkF4cSEPIA9BBEEIIBpBA3EiGhsgCWpJDSUgGkEARyAPIAlBJ2pLcQ0mIBwQvAULIARBHGoiDygCACIcKAIAIQkgHCAJQQFrNgIAIAlBAUYEQCAPKAIAEDALIARBIGohBCAFQQFrIgUNAAsLIAcoAggiBUUNAyAGQQRrKAIAIglBeHEhBCAEIAVBBXQiBUEEQQggCUEDcSIJG3JJDSIgCUEARyAEIAVBJ2pLcQ0jIAYQvAUMAwsgBygCDCEGIAcoAhAiBQRAIAYhBANAIAQoAgAiCQRAIARBBGooAgAiHEEEaygCACIaQXhxIQ8gD0EEQQggGkEDcSIaGyAJakkNJCAaQQBHIA8gCUEnaktxDSUgHBC8BQsgBEEMaiEEIAVBAWsiBQ0ACwsgBygCCCIFRQ0CIAZBBGsoAgAiCUF4cSEEIAQgBUEMbCIFQQRBCCAJQQNxIgkbakkNISAJQQBHIAQgBUEnaktxDSIgBhC8BQwCCyAHKAIIIgYoAgAhBCAGIARBAWs2AgAgBEEBRw0BIAcoAggQMAwBCyAHQQRqEMYRCyAOIAhBAWoiCEcNAAsLIAMoAuADIgYEQCAKQQRrKAIAIgVBeHEhBCAEIAZB5ABsIgZBBEEIIAVBA3EiBRtqSQ0dIAVBAEcgBCAGQSdqS3ENHiAKELwFCyADKALwAyEKIAMoAvQDIgYEQCAKIQQDQAJAIAQoAgAiBUF/Rg0AIAVFDQAgBEEEaigCACIHQQRrKAIAIghBeHEhCSAJQQRBCCAIQQNxIggbIAVqSQ0fIAhBAEcgCSAFQSdqS3ENICAHELwFCyAEQQxqIQQgBkEBayIGDQALCyADKALsAyIGBEAgCkEEaygCACIFQXhxIQQgBCAGQQxsIgZBBEEIIAVBA3EiBRtqSQ0dIAVBAEcgBCAGQSdqS3ENHiAKELwFCyAbIBNBGGxqIgQgDjYCCCAEIAw2AgQgBCAONgIAIAQgDSkCADcCDCAEIA0oAgg2AhQgGSATQQFqIhNHDQALIBkhDQtBKRCQASIRRQ0dIBFBuLLJAC0AADoAKCARQbCyyQApAAA3ACAgEUGosskAKQAANwAYIBFBoLLJACkAADcAECARQZiyyQApAAA3AAggEUGQsskAKQAANwAAIAMCfkHQ8MkALQAABEBByPDJACkDACEhQcDwyQApAwAMAQsgA0HAA2oQuxFB0PDJAEEBOgAAQcjwyQAgAykDyAMiITcDACADKQPAAwsiIjcDsAZBwPDJACAiQgF8NwMAIANBADYCyAYgA0KAgICAgAE3A8AGIAMgITcDuAYgA0GQqckAKQMANwLMBiADQZipyQApAwA3AtQGQQwQkAEiBEUNHSAEQfqxyQAoAAA2AAggBEHysckAKQAANwAAIANBDDYCiAYgAyAENgKEBiADQQw2AoAGIANBwANqIgQgEiAQEN8NIAMoAtADQX9GDRwgAyADKQPoAzcD8AIgAyADKQPgAzcD6AIgAyADKQPYAzcD4AIgAyADKQPQAzcD2AIgAyADKQPIAzcD0AIgAyADKQPAAzcDyAIgBCADQbAGaiADQYAGaiADQcgCahDSAyADIAMpA/ADNwPoBCADIAMpA+gDNwPgBCADIAMpA+ADNwPYBCADIAMpA9gDIiI3A9AEIAMgAykD0AM3A8gEIAMgAykDyAM3A8AEICKnQX9HBEAgA0HABGoQ/gkLQQkQkAEiBEUNHUEAIQYgBEHBsskALQAAOgAIIARBubLJACkAADcAACADQQk2AogGIAMgBDYChAYgA0EJNgKABiANQavVqhVPDRECQCANQTBsIgRFBEBBCCEJDAELIAQQkAEiCUUNAyANIQYLIA1BGGwhGUEAIQUgA0EANgLIBCADIAk2AsQEIAMgBjYCwAQCQCANBEAgGSEHQQAhCCAbIQYDQCADQcADaiAGELMEIAMoAtADQX9GDQIgBkEYaiEGIAMoAsAEIAhGBEAgA0HABGoQlBIgAygCxAQhCQsgBSAJaiIEIAMpA8ADNwMAIAQgAykD6AM3AyggBCADKQPgAzcDICAEIAMpA9gDNwMYIAQgAykD0AM3AxAgBCADKQPIAzcDCCADIAhBAWoiCDYCyAQgBUEwaiEFIAdBGGsiBw0ACyADKALABCEGCyADQYSAgIB4NgLYAiADIAMpAsQENwLMAiADIAY2AsgCIANBwANqIANBsAZqIANBgAZqIANByAJqENIDIAMgAykD8AM3A+gEIAMgAykD6AM3A+AEIAMgAykD4AM3A9gEIAMgAykD2AMiIjcD0AQgAyADKQPQAzcDyAQgAyADKQPIAzcDwAQgIqdBf0cEQCADQcAEahD+CQtBDRCQASIERQ0eIARBjrHJACkAADcABSAEQYmxyQApAAA3AAAgA0ENNgKIBiADIAQ2AoQGIANBDTYCgAYgA0HAA2oiBCAXIAsQ3w0gAygC0ANBf0YNHSADIAMpA+gDNwPwAiADIAMpA+ADNwPoAiADIAMpA9gDNwPgAiADIAMpA9ADNwPYAiADIAMpA8gDNwPQAiADIAMpA8ADNwPIAiAEIANBsAZqIANBgAZqIANByAJqENIDIAMgAykD8AM3A+gEIAMgAykD6AM3A+AEIAMgAykD4AM3A9gEIAMgAykD2AMiIjcD0AQgAyADKQPQAzcDyAQgAyADKQPIAzcDwAQgIqdBf0cEQCADQcAEahD+CQsgAyADKQK8BjcDoAIgAyADKQLEBjcDqAIgAyADKQLMBjcDsAIgAyADKQLUBjcDuAIgAyADKALcBjYCwAIgAygCsAYhCyADKAK0BiEMIAMoArgGIRAgDQRAQQAhDwNAIBsgD0EYbGoiCigCDCIEQQBKBEAgCigCECIGQQRrKAIAIg5BeHEhCCAIQQRBCCAOQQNxIg4bIARqSQ0eIA5BAEcgCCAEQSdqS3ENHyAGELwFCyAKKAIEIQ4gCigCCCIFBEAgDiEEA0AgBCgCACIGQQBKBEAgBEEEaigCACIHQQRrKAIAIghBeHEhCSAJQQRBCCAIQQNxIggbIAZqSQ0gIAhBAEcgCSAGQSdqS3ENISAHELwFCyAEQQxqIQQgBUEBayIFDQALCyAKKAIAIgYEQCAOQQRrKAIAIgVBeHEhBCAEIAZBDGwiBkEEQQggBUEDcSIFG2pJDR4gBUEARyAEIAZBJ2pLcQ0fIA4QvAULIA9BAWoiDyANRw0ACyAbQQRrKAIAIgZBeHEhBCAEQQRBCCAGQQNxIgYbIBlqSQ0cIAZBAEcgBCAZQSdqS3ENHSAbELwFCyAgBEAgEkEEaygCACIGQXhxIQQgBCAgQQN0IgVBBEEIIAZBA3EiBhtqSQ0cIAZBAEcgBCAFQSdqS3ENHSASELwFCyAfBEAgF0EEaygCACIGQXhxIQQgBCAfQQN0IgVBBEEIIAZBA3EiBhtqSQ0cIAZBAEcgBCAFQSdqS3ENBSAXELwFCyAVIBUoAgBBAWsiBDYCACAERQRAIANBwAVqEO0OCyADKAKQBSIGKAIAQQFrIQQgBiAENgIAIARFBEAgA0GQBWoQ7Q4LIAMoAvQFIgYoAgBBAWshBCAGIAQ2AgBBKSENQQkhE0EpIQ8MCAsgAygCwAMhACADQcAEahCXCSADKALABCIBBEAgCSABQTBsENkSCyADIAA2AsADQYiwyQBBKyADQcADakGYsckAQcSyyQAQ2hIAC0EEEKcUAAtBBBCnFAALQQgQpxQACwwXCyAGIAdByABqIgdHDQALCwJ/IAMoAoQCIgRFBEBBACEFQQgMAQsgBC0AFEEDRwRAIAMgBEEIajYCwAMgBEEUaiADQcADahCPDwsgBCgCECEFIAQoAgwLIQQgA0F/NgLwBCADIB42AqAGIAMgHTYCnAYgAyAJNgKMBiADIAo2AogGIAMgBDYCgAYgAyAEIAVByABsajYChAYgAyADQcAEajYCpAYgAyADQfQFajYCmAYgAyADQawBajYClAYgAyADQZAFajYCkAYgA0HIAmoiBCADQYAGahBlAkACQCADKALIAkF/RwRAQeACEJABIghFDQQgCCAEQdgA/AoAACADQQE2AsgFIAMgCDYCxAUgA0EENgLABSADIAMpAqAGNwPQBiADIAMpApgGNwPIBiADIAMpApAGNwPABiADIAMpAogGNwO4BiADIAMpAoAGNwOwBkHYACEFQQEhBANAIANBwANqIANBsAZqEGUgAygCwANBf0cEQCADKALABSAERgRAIANBwAVqIARBAUEIQdgAELMRIAMoAsQFIQgLIAUgCGogA0HAA2pB2AD8CgAAIAMgBEEBaiIENgLIBSAFQdgAaiEFDAELCyADKALABSEOIAMoAvAEIg9Bf0cNASAOIQsgCCEMIAQhEEF/IQ8MAgsgAygC8AQiD0F/RgRAQQghDEEAIQtBfyEPDAILIAMgAykCzAQ3A6ACIAMgAykC1AQ3A6gCIAMgAykC3AQ3A7ACIAMgAykC5AQ3A7gCIAMgAygC7AQ2AsACIAMgAy8A/QQ7AZwCIAMgAy0A/wQ6AJ4CIAMtAPwEIRMgAygC+AQhDSADKAL0BCERIAMoAsgEIRAgAygCxAQhDCADKALABCELDAELIAMgAykCzAQ3A6ACIAMgAykC1AQ3A6gCIAMgAykC3AQ3A7ACIAMgAykC5AQ3A7gCIAMgAygC7AQ2AsACIAMgAy8A/QQ7AZwCIAMgAy0A/wQ6AJ4CIAMtAPwEIRMgAygC+AQhDSADKAL0BCERIAMoAsgEIRAgAygCxAQhDCADKALABCELIAghBQNAIAVByABqKAIAIgYEQCAFQcwAaigCACIJQQRrKAIAIgdBeHEhCiAKQQRBCCAHQQNxIgcbIAZqSQ0WIAdBAEcgCiAGQSdqS3ENFyAJELwFCyAFEK4HIAVB2ABqIQUgBEEBayIEDQALIA5FDQAgCEEEaygCACIGQXhxIQQgBCAOQdgAbCIFQQRBCCAGQQNxIgYbakkNFCAGQQBHIAQgBUEnaktxDQMgCBC8BQsgAygCkAUiBigCAEEBayEEIAYgBDYCACAERQRAIANBkAVqEO0OCyADKAL0BSIGKAIAQQFrIQQgBiAENgIACyAEDQUgA0H0BWoQ7Q4MBQtBCBCnFAALDBELDA4LDBELIARBAEgNBCAMKAIMQQEhBgJAIARFIgkNACAEEJABIgZFDREgCQ0AIAYgCiAE/AoAAAsoAgAiCygCAEEBaiECIAsgAjYCACACRQ0BQRgQkAEiAgRAIAIgCzYCFCACIAQ2AhAgAiAGNgIMIAIgBDYCCCACQoGAgIAQNwIAIAMgAjYCrAFBACEGIANBADYClAIgA0KAgICAwAA3AowCQQQhCiACIQQDQCAEKAIQIQsgBCgCDCEHIAMoAowCIAVGBEAgA0GMAmoQlhIgAygCkAIhCgsgBiAKaiIOIAc2AgAgDkEEaiALNgIAIAMgBUEBaiIFNgKUAiAGQQhqIQYgBCgCFCIEKAIIQX9HDQALAkAgBUEBdiIERQ0AIAMoApACIgsgBUEDdGohByAEQQFHBEAgBEEBcSAEQf7///8HcSEOIAYgC2pBCGshBSALIQQDQCAFKQIAISEgBSAEKQIANwIAIAQgITcCACAEQQhqIgYpAgAhISAGIAcgCEH+////AXNBA3RqIgYpAgA3AgAgBiAhNwIAIAVBEGshBSAEQRBqIQQgDiAIQQJqIghHDQALRQ0BCyALIAhBA3RqIgQpAgAhISAEIAcgCEF/c0EDdGoiBCkCADcCACAEICE3AgALIANByAJqIgQgDCgCGBCtCSADQcADaiADQYwCaiAEEJoGIAMgAykCzAM3AyggAyADKQLUAzcDMCADIAMpAtwDNwM4IAMgAykC5AM3A0AgAyADKALsAzYCSCADIAMtAP8DOgAmIAMgAy8A/QM7ASQgAygCwAMhCyADKQLEAyEiIAMoAvADIQ8gAygC9AMhESADKAL4AyENIAMtAPwDIRMgAiACKAIAQQFrIgI2AgAgAg0KIANBrAFqEO0ODAoLDAwLIAMgAjYCqAMgA0HIAmoiAiADQawBakHgAPwKAAAgAyAeNgK4AyADIBY2ArQDIAMgHTYCsAMgAyAUNgKsAyAPQX9HBEAgAyADKALAAjYCSCADIAMpA7gCNwNAIAMgAykDsAI3AzggAyADKQOoAjcDMCADIAMpA6ACNwMoIAMgAy8BnAI7ASQgAyADLQCeAjoAJiACEPcPIAMoAqwDIgQoAgBBAWshAiAEIAI2AgAgEK1CIIYhIiAMrSEhIAJFBEAgA0GsA2oQ7Q4LICEgIoQhIkF/IQQgAygCtAMiAigCAEEBayEFIAIgBTYCACAFDQggA0G0A2oQ7Q4MCAsgA0HAA2ogA0HIAmpB9AD8CgAAAkACQCADLQDcAyICQQJGIAMoAqAEIgRBIGooAgBBAEdxRQRAIAJBAUYNAUF/IQcMAgsgBEEIaigCACICQQBIDQUgAkUEQEEBIQQMBQsgBEEEaigCACEKIAIQkAEiBEUEQAwSCyACRQ0EIAQgCiAC/AoAAAwECyADKAKwBCEIIAMoAqgEIQYgAygCpAQiAigCAEEBaiEHIAIgBzYCACAHRQ0BIAMoAqwEIgcoAgBBAWohCSAHIAk2AgAgCUUNASADQcAEaiAGIAIgByAEQRxqKAIAIARBIGooAgAgBCgCNEEAIAQoAjBBf0cbIAQoAjggA0HgA2pBACADIAgQ0AEgAykCxAQhIiADKALABCEHIAMgAygC7AQ2AtAGIAMgAykC5AQ3A8gGIAMgAykC3AQ3A8AGIAMgAykC1AQ3A7gGIAMgAykCzAQ3A7AGIAMoAvAEIQ8gAygC9AQhESADKAL4BCENIAMtAPwEIRMgAyADLwD9BDsBgAYgAyADLQD/BDoAggYgD0F/RwRAIAMgAygC0AY2AkggAyADKQPIBjcDQCADIAMpA8AGNwM4IAMgAykDuAY3AzAgAyADKQOwBjcDKCADIAMvAYAGOwEkIAMgAy0AggY6ACYgEARAIAwhBANAIARByABqKAIAIgIEQCAEQcwAaigCACIIQQRrKAIAIgZBeHEhCSAJQQRBCCAGQQNxIgYbIAJqSQ0RIAZBAEcgCSACQSdqS3ENEiAIELwFCyAEEK4HIARB2ABqIQQgEEEBayIQDQALCyALBEAgDCALQdgAbBDZEgsgA0HAA2oQ9w9BfyEEIAMoAqQEIgsoAgBBAWshAiALIAI2AgAgAkUEQCADQaQEahDtDgsgAygCrAQiAigCAEEBayEFIAIgBTYCACAFBEAgByELDAoLIANBrARqIQYgBwwICyADKAKgBCEEICIhIQsgBEEIaigCACIFQQBIDQMgBUUEQEEBIQkMAgsgBEEEaigCACECIAUQkAEiCUUNDyAFBEAgCSACIAX8CgAACyADKAKgBCEEDAELAAtBfyEIAkAgBCgCJEF/RwRAIARBLGooAgAiCAR+IARBKGooAgAhBCAIEJABIgJFDQIgCARAIAIgBCAI/AoAAAsgAq0FQgELIAitQiCGhCEjCyADIAMpAtQDNwMoIAMgAykC3AM3AzAgAyADKQLkAzcDOCADIAMpAuwDNwNAIAMgAygC9AM2AkggAykCzAMhIiADKALIAyESIAMoAsQDIQ4gAygCwAMhBCADKAL4AyEPIAMoAvwDIREgAygCgAQhDSADLQCEBCETIAMgAy0AhwQ6ACYgAyADLwCFBDsBJCADIAMpApgENwMYIAMgAykCkAQ3AxAgAyADKQKIBDcDCAwECwwNCyADIAI2ArwEIAMgBDYCuAQgAyACNgK0BCADQQA2AsgEIANCgICAgMAANwLABAJAIAMoAqQEIgQoAghBf0YEQEEEIQlBACEGDAELQQAhBUEEIQpBACEGA0AgBCgCECECIAQoAgwhByADKALABCAGRgRAIANBwARqEJYSIAMoAsQEIQoLIAUgCmoiCCAHNgIAIAhBBGogAjYCACADIAZBAWoiBjYCyAQgBUEIaiEFIAQoAhQiBCgCCEF/Rw0ACyADKALEBCEJIAZBAXYiAkUNACAJIAZBA3RqIQpBACEEIAJBAUcEQCACQQFxIAJB/v///wdxIQ5BACEIA0AgBSAJakEIayICKQIAISEgAiAIIAlqIgIpAgA3AgAgAiAhNwIAIAJBCGoiBykCACEhIAcgCiAEQf7///8Bc0EDdGoiAikCADcCACACICE3AgAgBUEQayEFIAhBEGohCCAOIARBAmoiBEcNAAtFDQELIAkgBEEDdGoiAikCACEhIAIgCiAEQX9zQQN0aiICKQIANwIAIAIgITcCAAsgAygCwAQhBSADIANBtARqrUKAgICAwAKENwPABCADQYQFakH/lMIAIANBwARqELgMIAMCfkHQ8MkALQAABEBByPDJACkDACEhQcDwyQApAwAMAQsgA0HABGoQuxFB0PDJAEEBOgAAQcjwyQAgAykDyAQiITcDACADKQPABAsiIjcDkAVBwPDJACAiQgF8NwMAIANBADYCqAUgA0KAgICAgAE3A6AFIAMgITcDmAUgA0GQqckAKQMANwKsBSADQZipyQApAwA3ArQFQQkQkAEiAkUNDCACQbC0yQAtAAA6AAggAkGotMkAKQAANwAAIANBCTYCyAUgAyACNgLEBSADQQk2AsAFIAMoArwEIgJBAEgNACACRQRAQQEhCAwCCyADKAK4BCEHIAIQkAEiCEUNDCACRQ0BIAggByAC/AoAAAwBCxCeFQALIANBg4CAgHg2AsAGIAMgAjYCuAYgAyAINgK0BiADIAI2ArAGIANBwARqIANBkAVqIANBwAVqIANBsAZqENIDIAMgAykD8AQ3A6gGIAMgAykD6AQ3A6AGIAMgAykD4AQ3A5gGIAMgAykD2AQiIjcDkAYgAyADKQPQBDcDiAYgAyADKQPIBDcDgAYgIqdBf0cEQCADQYAGahD+CQtBDRCQASICRQRADAsLIAJBjrHJACkAADcABSACQYmxyQApAAA3AAAgA0ENNgL8BSADIAI2AvgFIANBDTYC9AUgA0HABGoiAiAJIAYQ3w0gAygC0ARBf0YNBCADIAMpA+gENwOoBiADIAMpA+AENwOgBiADIAMpA9gENwOYBiADIAMpA9AENwOQBiADIAMpA8gENwOIBiADIAMpA8AENwOABiACIANBkAVqIANB9AVqIANBgAZqENIDIAMgAykD8AQ3A+gFIAMgAykD6AQ3A+AFIAMgAykD4AQ3A9gFIAMgAykD2AQi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IAopApQTITEgCigCkBMhHSAKKAKMEyEuIAooAogTISUgCigChBMhLyAKKAL4EiESIAooAvQSITAgCigC8BIhJCAKKALsEiEeIAooAugSIR8gCigC5BIhCCAKKALgEiEQIAooAtwSISMgCigC2BIhDyAKKALUEiEiIAooAtASIRkgCigCzBIhEyAKKAKAEiEcIAooArgRIRsgCigCqBEhFyAKKAKYESEVIAooAvwSIREgCigCyBIhBQsgAiARaiAtQcwA/AoAACAKIAZBAWoiBjYCgBMgCiAoKQIANwOgBiAKICgoAgg2AqgGIAogJykCADcDkAYgCiAnKAIINgKYBiAKQcwFaiAsQcQA/AoAACAKQYgFaiArQcQA/AoAACAKKAL0EyIgBEAgCigC+BMiFEEEaygCACIaQXhxISEgIUEEQQggGkEDcSIaGyAgakkNECAaQQBHICEgIEEnaktxDREgFBC8BQsgC0HYAGohCyACQcwAaiECIA1B2ABrIg0NAAsLIAcEQCAWQQRrKAIAIgJBeHEhDSANQQRBCCACQQNxIgsbIAdB2ABsIgJqSQ0OIAtBAEcgDSACQSdqS3ENDyAWELwFCyAKIBU2ArAGIAogCikDoAY3ArQGIAogCigCqAY2ArwGIAogFzYCwAYgCiAKKQOQBjcCxAYgCiAKKAKYBjYCzAYgCiAbNgLQBiAKQdQGaiAKQcwFakHEAPwKAAAgCiAcNgKYByAKQZwHaiAKQYgFakHEAPwKAAAgCiAyNwO4CCAKICY2ArQIIAogMTcCrAggCiAdNgKoCCAKIC42AqQIIAogJTYCoAggCiAvNgKcCCAKIAY2ApgIIAogETYClAggCiASNgKQCCAKIDA2AowIIAogJDYCiAggCiAeNgKECCAKIB82AoAIIAogCDYC/AcgCiAQNgL4ByAKICM2AvQHIAogDzYC8AcgCiAiNgLsByAKIBk2AugHIAogEzYC5AcgCiAFNgLgBwwBCyAKIBU2ArAGIAogCikDiBE3ArQGIAogCigCkBE2ArwGIApBfjYCtAggCkKAgICAYDcCpAggCkKAgICAwAA3ApwIIApCBDcClAggCkIANwKMCCAKQoCAgICAATcChAggCkIINwL8ByAKQgE3AvQHIAogDzYC8AcgCkKBgICAEDcD6AcgCiATNgLkByAKQQE2AuAHIApB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AWoiBTYCFCABKAKMASEHC0EAIQogByANRgRAIAEoAiwgASgCIGohCgsgASgCeCEOIAEoAlwhEQJAAkACQAJAAkACQAJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NASABIAJBAWo2AgQLIAMgASgCiAEiCDYCuAIgAyABKQKAATcDsAJBACEGAkAgCCABKAKEAU8NACABQYABaigCACAIai0AAEHbAEcNACABIAhBAWo2AogBQQEhBgsCQAJAAkACQAJAIAEtAHxBAUYEQEEBEJABIgJFDRQgAkHbADoAACADQQE2AuwCIAMgAjYC6AIgA0KAgICAEDcC4AIgASAIIANB4AJqIAYQ+QgLIAZFDQQCQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgggASgCCCIGTw0GIAEgCEEBaiICNgIEIAIgBk8NASABIAhBAmo2AgQLIAFBADoAkQEgA0GAAmogARCUCiADKAKAAiADKAKEAiIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgJFBEAgA0HwAWogARCUCiADKAL0ASEBIAMoAvABIQcMAQsgAUEAOgCRASADQfgBaiABEJQKIAMoAvgBIQcgAygC/AEiASACOgCRAQsgB0EBRw0ACwsgASgCAEEBRgRAIAEoAgQiCCABKAIIIgZPDQUgASAIQQFqIgI2AgQgAiAGTw0EIAEgCEECajYCBAsgASgCFCELIAMgASgCiAE2AsgCIAMgASkCgAE3A8ACIANB6AFqIAEQQCADKALsASEBAkAgAygC6AFBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiCCABKAIIIgZPDQIgASAIQQFqIgI2AgQgAiAGTw0BIAEgCEECajYCBAsgAUEAOgCRASADQeABaiABEJQKIAMoAuABIAMoAuQBIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiAkUEQCADQdABaiABEJQKIAMoAtQBIQEgAygC0AEhBwwBCyABQQA6AJEBIANB2AFqIAEQlAogAygC2AEhByADKALcASIBIAI6AJEBCyAHQQFHDQALCyABKAIAQQFHDQEgASgCBCICIAEoAghPDQAgASACQQFqIgg2AgQgASgCCCIGIAhNDQAgASgCFCELIAEgCEEBaiICNgIEIAIgBk8EQEEBIQcMBAsgASAIQQJqNgIEDAILIAEgAygCyAI2AogBIAEgAykDwAI3AoABIAsgASgCFEsNAyABIAs2AhQMAwsgASgCFCELCyADIAFBgAFqIgcoAgg2AtgCIAMgBykCADcD0AJBACEHAkAgASgCiAEiBiABKAKEAU8NACABKAKAASAGai0AAEEsRw0AIAEgBkEBajYCiAFBASEHCyABLQB8QQFGBEBBARCQASICRQ0SIAJBLDoAACADQQE2AuwCIAMgAjYC6AIgA0KAgICAEDcC4AIgASAGIANB4AJqIAcQ+QgLAn8CQCAHBEAgA0HIAWogARC8DiADKALMASEBIAMoAsgBQQFHDQELQQEMAQsgA0HAAWogARBAIAMoAsQBIQEgAygCwAELIgdBAUcNACABIAMoAtgCNgKIASABIAMpA9ACNwKAASALIAEoAhRLDQAgASALNgIUCyAHQQFxDQAgASgCAEEBRgRAIAEoAgQiAiABKAIITw0BIAEgAkEBajYCBAsgA0G4AWogARCTBiADKAK8ASEBIAMoArgBQQFxDQADQCADQbABaiABEJMGIAMoArQBIQEgAygCsAFBAUcNAAsLAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCIIIAEoAggiBk8NAiABIAhBAWoiAjYCBCACIAZPDQEgASAIQQJqNgIECyABQQA6AJEBIANBqAFqIAEQlAogAygCqAEgAygCrAEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASICRQRAIANBmAFqIAEQlAogAygCnAEhASADKAKYASEHDAELIAFBADoAkQEgA0GgAWogARCUCiADKAKgASEHIAMoAqQBIgEgAjoAkQELIAdBAUcNAAsLQQAhBwJAIAEoAogBIgYgASgChAFPDQAgASgCgAEgBmotAABB3QBHDQAgASAGQQFqNgKIAUEBIQcLIAEtAHxBAUYEQEEBEJABIgJFDRAgAkHdADoAACADQQE2AuwCIAMgAjYC6AIgA0KAgICAEDcC4AIgASAGIANB4AJqIAcQ+QgLIAcNAgsgASADKAK4AjYCiAEgASADKQOwAjcCgAEgBSABKAIUSw0AIAEgBTYCFAsgAS0AkAFBAUYNBiABLQCRAUUNAyABKAKMASICIA1HDQEgCiABKAIgIgIgASgCLCIGaiIFSSAFIAprQQFGcQ0DIAIgDE8EQCABIAw2AiAgDCECCyAGIAlJDQIgASAJNgIsDAILIAEtAJABIgdBAUYEfyABLQCRAUUNBwJAIA0gASgCjAEiAkYEQCAKIAEoAiwiAiABKAIgIgZqIgVJIAUgCmtBAUZxDQkgBiAMTwRAIAEgDDYCIAsgAiAJSQ0BIAEgCTYCLCAJIQIMAQsgAiANTw0IIAEgDTYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAiQgAkYEQCABQSRqEKMSCyABKAIoIAJqQTQ6AAAgASACQQFqNgIsIAEtAJABBSAHC0H/AXFBAkcNBiABLQCRAUUNBiABKAIUIgUgBE0NAyABKAIQIARBFGxqIgItAAANCyACIAU2AgQgASgCiAEhAiABKAIUIgUgASgCDEYEQCABQQxqEJoSCyABKAIQIAVBFGxqIgkgAjYCECAJQQA2AgggCSAENgIEIAlBgegAOwEAIAEgBUEBajYCFAwGCyACIA1PDQEgASANNgKMAUEAIQIgAUEANgIsIAFBADYCIAsgASgCGCACRgRAIAFBGGoQoxILIAEgAkEBajYCICABKAIcIAJqQTQ6AAALIAEtAHxBAUcNASABLQCRAUUNASABQdQAakE0IBFBACABKAJ4IA5NGxCTBQwBCyAEIAVBnIrIABCFEwALIAEtAJABQQJHDQAgAS0AkQFFDQAgBCABKAIUSw0AIAEgBDYCFAsCQAJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NASABIAJBAWo2AgQLQQAhCUEAIQwgASgCjAEiByABKAKIASINRgRAIAEoAiAhDCABKAIsIQkLIAEoAhQhBAJAIAEtAJABQQJHBEAgBCEFDAELIAQhBSABLQCRAUUNACABKAIMIARGBEAgAUEMahCaEgsgASgCECAEQRRsaiICIA02AgggAkEANgIEIAJBADoAACABIARBAWoiBTYCFCABKAKMASEHC0EAIQogByANRgRAIAEoAiwgASgCIGohCgsgASgCeCEOIAEoAlwhEQJAAkACQAJAAkACQAJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NASABIAJBAWo2AgQLIAMgASgCiAEiCDYCuAIgAyABKQKAATcDsAJBACEGAkAgCCABKAKEAU8NACABQYABaigCACAIai0AAEH7AEcNACABIAhBAWo2AogBQQEhBgsCQAJAAkACQAJAIAEtAHxBAUYEQEEBEJABIgJFDRUgAkH7ADoAACADQQE2AuwCIAMgAjYC6AIgA0KAgICAEDcC4AIgASAIIANB4AJqIAYQ+QgLIAZFDQQCQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgggASgCCCIGTw0GIAEgCEEBaiICNgIEIAIgBk8NASABIAhBAmo2AgQLIAFBADoAkQEgA0GQAWogARCUCiADKAKQASADKAKUASIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgJFBEAgA0GAAWogARCUCiADKAKEASEBIAMoAoABIQcMAQsgAUEAOgCRASADQYgBaiABEJQKIAMoAogBIQcgAygCjAEiASACOgCRAQsgB0EBRw0ACwsgASgCAEEBRgRAIAEoAgQiCCABKAIIIgZPDQUgASAIQQFqIgI2AgQgAiAGTw0EIAEgCEECajYCBAsgASgCFCELIAMgASgCiAE2AsgCIAMgASkCgAE3A8ACIANB+ABqIAEQlwMgAygCfCEBAkAgAygCeEEBcQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCIIIAEoAggiBk8NAiABIAhBAWoiAjYCBCACIAZPDQEgASAIQQJqNgIECyABQQA6AJEBIANB8ABqIAEQlAogAygCcCADKAJ0IgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiAkUEQCADQeAAaiABEJQKIAMoAmQhASADKAJgIQcMAQsgAUEAOgCRASADQegAaiABEJQKIAMoAmghByADKAJsIgEgAjoAkQELIAdBAUcNAAsLIAEoAgBBAUcNASABKAIEIgIgASgCCE8NACABIAJBAWoiCDYCBCABKAIIIgYgCE0NACABKAIUIQsgASAIQQFqIgI2AgQgAiAGTwRAQQEhBwwECyABIAhBAmo2AgQMAgsgASADKALIAjYCiAEg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QCADLQDRASIMQQJHBEAgDEEBaw0GDAELIAMoApgBIQwgA0F/NgKYASAMQX9GDQIgCyAHKAIINgIIIAsgBykCADcCACADIAw2AmggA0HoAGoQiAggBCAFRg0LDAELC0Hj48gAQQUQshMMBAtB1IrHAEEQEOISCyEBIANByAFqEMASDAYLIAMgBTYCqAEMBgtB/ZrJAEEEELITCyEBIANByAFqEMASQX8hCQwECyADIAQ2AqgBIAMoApgBIQEgA0F/NgKYASABQX9HDQELQdSKxwBBEBDiEiEBDAULIAMgAykDoAE3A8ABIAMgAygCnAE2ArwBIAMgATYCuAECfwJAAn8CQAJAAkAgBCAFRg0AIANB6ABqQQRyIQEgA0H4AGohCwNAIANB6ABqIAQQyA8gBEEgaiEEIAMoAmhBf0cEQCADIAQ2AqgBIAMoApgBQX9HBEAgA0GYAWoQiAgLIAMgCykDCDcDoAEgAyALKQMANwOYASADQQU2AuQBIANB4+PIADYC4AEgA0EENgLcASADQf2ayQA2AtgBIANB0AFqIANB2AFqIANB6ABqEMcHIAMtANABBEAgAygC1AEMCAsCQAJAIAMtANEBQQFrDgIGAAELIAMoApgBIQogA0F/NgKYASAKQX9GDQcgASAHKAIINgIIIAEgBykCADcCACADIAo2AmggA0HoAGoQiAggBCAFRw0CDAMLIAMoApgBIQEgA0F/NgKYASABQX9GBEBB1IrHAEEQEOISDAgLIAMgATYCaCADIAcoAgg2AnQgAyAHKQIANwJsIANB2AFqIANB6ABqEPoHIAMtANgBQQFHDQMgAygC3AEMBwsgBCAFRw0ACyADIAU2AqgBC0H9mskAQQQQsxMMAgsgA0HoAGoiCiADLQDZASADQbgBahCHASADKAJsIQEgAygCaCIJQX9GDQQgAyABNgLMASADIAk2AsgBIAQgBUYNBSADQfgAaiELIApBBHIhCgJ/AkADQCADQegAaiAEEMgPIARBIGohBCADKAJoQX9HBEAgAyAENgKoASADKAKYAUF/RwRAIANBmAFqEIgICyADIAspAwg3A6ABIAMgCykDADcDmAEgA0EFNgLkASADQePjyAA2AuABIANBBDYC3AEgA0H9mskANgLYASADQdABaiADQdgBaiADQegAahDHBwJAAkACfyADLQDQAQRA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AgA3AgAgASABKAJgNgLoASABIAEpAlg3A+ABIAEgASkCUDcD2AEgASABKQJINwPQASABIAEpAkA3A8gBIAEgASkCODcDwAEgASABKQIwNwO4ASABIAwpAig3A6gBIAEgDCkCIDcDoAEgASAMKQIYNwOYASABIAwpAhA3A5ABIAEgDCkCCDcDiAEgASAMKQIANwOAASABQfgBaiABQYABahBCICKnIQUCQCABKQP4AUIBUQRAIAEpA7gCIiJCIIinIRQgASkDsAIiJEIgiKchEyABKAKsAiEJIAEoAqgCIRogASgCpAIhDiABKAKgAiELIAEoApwCIRsgASgCmAIhHCABKAKUAiEdIAEoApACIRggASgCjAIhHiABKAKIAiEZIAEoAoQCIQMgASgCgAIhBCAipyEVICSnIRBCASEiIAZFDQEgBUEEaygCACIhQXhxIR8gH0EEQQggIUEDcSIhGyAGakkNGyAhQQBHIB8gBkEnaktxDRwgBRC8BQwBCyAiQiCIpyEZIAEpA7ACISMgASgCrAIhFCABKAKoAiEVIAEoAqQCIRMgASgCoAIhECABKAKcAiEJIAEoApgCIRogASgClAIhDiABKAKQAiELIAEoAowCIRsgASgCiAIhHCABKAKEAiEdIAEoAoACIRhCACEiIAYhBCAFIQMLIAdBQGshBiABICM3A3ggASAUNgJ0IAEgFTYCcCABIBM2AmwgASAQNgJoIAEgCTYCZCABIBo2AmAgASAONgJcIAEgCzYCWCABIBs2AlQgASAcNgJQIAEgHTYCTCABIBg2AkggASAeNgJEIAEgGTYCQCABIAM2AjwgASAENgI4IAEgIjcDMCAipw0DIAFB+AFqIA1ByAD8CgAAIAFBuAFqIAEgDSAgEJMDIAEgCikDMDcDsAEgASAKKQMoNwOoASABIAopAyA3A6ABIAEgCikDGDcDmAEgASAKKQMQNwOQASABIAopAwg3A4gBIAEgCikDACIiNwOAASAip0F/RwRAIAFBgAFqEPMFCyAGIBFHDQELCyAHQUBrIQYLQX8hEAwBCyABIA0pAyg3A6ACIAEgDSkDIDcDmAIgASANKQMYNwOQAiABIA0pAxA3A4gCIAEgDSkDCDcDgAIgASANKQMANwP4ASABIBcpAgA3A7gBIAEgFygCCDYCwAELIAYgEUcEQCARIAZrQQZ2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gAFGDQEgB0HAAUcNAiADQdCrwgA2AmwgA0KggICABjcCcCADQdgAaiAIQQN0aigCBCECIAMgA0HIAGo2AmggCiADQegAaiACEQEADRcgCEEBaiEIIAUhBAwDCyACQf8BcSICIAMoAkggAygCUCIGa0sEQCADQcgAaiAGIAIQzhEgAygCUCEGCyACBEAgAygCTCAGaiAFIAL8CgAACyACIAVqIQQgAyACIAZqNgJQDAILIARBA2ohBwJAAkAgBC8AASICIAMoAkggAygCUCIFa0sEQCADQcgAaiAFIAIQzhEgAygCUCEFDAELIAJFDQELIAJFDQAgAygCTCAFaiAHIAL8CgAACyACIAdqIQQgAyACIAVqNgJQDAELQaCAgIAGIQYgAkEBcQRAIAQoAAEhBiAEQQVqIQULQQAhBwJ/IAJBAnFFBEBBACENIAUMAQsgBS8AACENIAVBAmoLIQQgAkEEcQR/IAQvAAAhByAEQQJqBSAECyEFIAJBCHEEfyAFLwAAIQggBUECagUgBQshBCADIAc7AXYgAyANOwF0IAMgBjYCcCADQdCrwgA2AmwgA0HYAGogCEEDdGooAgQhAiADIANByABqNgJoIAogA0HoAGogAhEBAA0UIAhBAWohCAsgBC0AACICDQALIAMoAlAhIiADKAJMIRsgAygCSCEcIAMgGDYCFCADIBk2AhAgAyAjNwNYQQAhBUECIQJBkoLAACEEQQAhBgNAIARBAWohBAJAIALAQQBIBEAgAkH/AXFBgAFGBEAgBC8AACICIAVqIQUgAiAEakECaiEEDAILIAQgAkEDcUEIeCIHQQV0QYCAgIAEcSAHQQd0ckEddmogAkEBdkECcWogAkECdkECcWohBCAFRSAGciEGDAELIAJB/wFxIgIgBGohBCACIAVqIQULIAQtAAAiAg0ACyAGIAVBEElxDQAgBUEBdCICQQBIDQ0gAkUNACACEJABIgQNAQwRC0EBIQRBACECC0EAIQggA0EANgJQIAMgBDYCTCADIAI2AkhBkoLAACEEQQIhAgJAAkADQCAEQQFqIQUCQAJAAkAgAsBBAEgEQCACQf8BcSIHQYABRg0BIAdBwAFHDQIgA0HQq8IANgJsIANCoICAgAY3AnAgA0HYAGogCEEDdGooAgQhAiADIANByABqNgJoIANBEGogA0HoAGogAhEB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9QUgBSgCvAIiASgCACEAIAEgAEEBazYCACAAQQFGBEAgBSgCvAIQMAsgBSgCMCIBKAIAIQAgASAAQQFrNgIAIABBAUcNACAFKAIwEDALIAVBoBFqJAAPC0EBEKcUAAsgBiAHQeT+yAAQhRMACxCeFQALQQgQpxQACwALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0HwtckAQTcgBUGfEWpBuPHFAEGotskAENoSAAtBuPDJAEEBOgAAAAvCLwMNfwd+AXwjAEGQAWsiAiQAAkACQAJAIABQDQACQAJAAkACQAJAAkACQAJAAkAgAEL/////////D1YNACABRQRAIAC6IRYMCgsgAUEWakEtTwRAIAFBJk8NASACQRBqIABCACABQQN0QcjyyABqKQMAQgAQ7hEgAikDGEIAUg0BIAIpAxAiD0L/////////D1YNASAPukSS1U0Gz/CARKIhFgwKCyAAuiEWIAFBAEoNASAWQYiOyQAgAUEDdGsrAwCjIRYMCQtB/////wcgAUHeAmoiBCABIARKGyIGQQptIQQgBkEASARAQgAhDwwECyAEQcEASwRAQf8PIQdCgICAgICAgICAfyEPDAQLIAYgBEEKbGsiBkEASA0EIAIgAEIAIAZBA3QiAykDmPNIQgAQ7hECfiACKQMIUARAQQBBACACKQMAIg95pyAPUBsiBmshA0EEIQogDyAGrYYMAQsgAykDiOxIIhBC/////w+DIhIgACAAeSIRhiITQiCIIhR+IQ8gEEIgiCIVIBNC/////w+DIhN+IRAgBkECdCgC2OxIIBGna0FAayEDQQkhCiAUIBV+IA9CIIh8IBBCIIh8IBBC/////w+DIA9C/////w+DfCASIBN+QiCIfEKAgICACHxCIIh8CyIPQiCIIhIgBEEDdCkDgO1IIhFC/////w+DIhN+IRAgEUIgiCIRIA9C/////w+DIhR+IQ9BACARIBJ+IBBCIIh8IA9CIIh8IA9C/////w+DIBBC/////w+DfCATIBR+QiCIfEKAgICACHxCIIh8Ig95pyAPUBshBiAPIAathiEPIARBAnQoApDxSCADaiAGayIEQUBrIQdBC0GOdyAEayAHQcN3ThsiBEHBAEsNAiAErSERIAogBnStIRIgDyEQAkACQCAEQUBqDgIBAwALIA9CfyAR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AkACQAJAIABQDQACQAJAAkACQAJAAkACQAJAAkAgAEL///8HVg0AIAFFBEAgALUhFwwKCyABQQpqQRVPBEAgAUESTw0BIAJBEGogAEIAIAFBA3RBqPPIAGopAwBCABDuESACKQMYQgBSDQEgAikDECIQQv///wdWDQEgELVD+QIVUJQhFwwKCyAAtSEXIAFBAEoNASAXQYyWyQAgAUECdGsqAgCVIRcMCQtB/////wcgAUHeAmoiBCABIARKGyIGQQptIQQgBkEASARAQgAhEAwECyAEQcEASwRAQf8PIQdCgICAgICAgICAfyEQDAQLIAYgBEEKbGsiBkEASA0EIAIgAEIAIAZBA3QiAykDmPNIQgAQ7hECfiACKQMIUARAQQBBACACKQMAIhB5pyAQUBsiBmshA0EEIQogECAGrYYMAQsgAykDiOxIIhFC/////w+DIhMgACAAeSIShiIUQiCIIhV+IRAgEUIgiCIWIBRC/////w+DIhR+IREgBkECdCgC2OxIIBKna0FAayEDQQkhCiAVIBZ+IBBCIIh8IBFCIIh8IBFC/////w+DIBBC/////w+DfCATIBR+QiCIfEKAgICACHxCIIh8CyIQQiCIIhMgBEEDdCkDgO1IIhJC/////w+DIhR+IREgEkIgiCISIBBC/////w+DIhV+IRBBACASIBN+IBFCIIh8IBBCIIh8IBBC/////w+DIBFC/////w+DfCAUIBV+QiCIfEKAgICACHxCIIh8IhB5pyAQUBshBiAQIAathiEQIARBAnQoApDxSCADaiAGayIEQUBrIQdBKEGrfiAEayAHQcN+ThsiBEHBAEsNAiAErSESIAogBnStIRMgECERAkACQCAEQUBqDgIBAwALIBBCfyAShkJ/hYMhEQtCASASQgF9hiISIBN9IBFaDQIgESASIBN8Wg0CDAcLIAFBAnQqAoyWSSAXlCEXDAcLIBMgEEJ/hVYNBQtBACAQeacgEFAbIQULIBAgBa2GIRAgByAFayIBQShqIgVB635OBEAgEEIoiCEAIBBC//////8fg0KAgICAgBBWDQIgEEL//////z+DQoCAgICAMFINAwwCCyABQap+TQ0EIAFBq35GBEAgEEKAgICAgICAgIB/WA0FQgAhAEHrfiEFDAILIBBB634gAWutIhGIIQAgEEJ/IBGGQn+FgyIQQgEgEUIBfYYiEVYEQEHrfiEFDAILQet+IQUgAEIBg1ANAiAQIBFRDQEMAgsgBkEKQejzyAAQhRMACyAAQgF8IQALIABCgICABCAAQoCAgAiDIhBQGyEAAkACQCAFIBBCGIinaiIBQekAa0EYSQRAQn9CGCABQegAa60iEH2GQoCAgHiFIACDUA0BCyAAUA0DIAFB635IDQNDAACAfyEXIAFB6ABKDQMMAQsgAFANAiAAIBCGIQBB6AAhAQsgAEL///8DgyABQRd0QYCAgNgEaq0iECAAQiiGQj+HgyAQIAFB635GG4SnviEXDAELIBBBACAQeacgEFAbIgSthiEQAkAgByAEayIEQShqIgdB635OBH4gEEIoiAUgBEGqfk0EQAwCC0HrfiEHIBBBKyAEa62IQgAgBEGrfkcbCyIQIBBCGIhCAYMiEYghEAJAAkAgByARp2oiBUHpAGtBGEkEQEJ/QhggBUHoAGutIhF9hkKAgIB4hSAQg1ANAQsgEFANAiAFQet+SA0CIAVB6ABMDQFDAACAfyEXDAILQegAIQUgECARhiIQQgBSDQAMAQsgEEL///8DgyAFQRd0QYCAgNgEaq0iESAQQiiGQj+HgyARIAVB635GG4SnviEXCyAXvCINQf////8HcUH////7B0sNAEEUIQUgAEKQzgBaBEADQCACQShqIAVqIgRBBGsgACIQIABCkM4AgCIAQpDOAH59pyIGQf//A3FB5ABuIgNBAXQvAJyYSTsAACAEQQJrIAYgA0HkAGxrQf//A3FBAXQvAJyYSTsAACAFQQRrIQUgEEL/wdcvVg0ACwsCQCAAQuMAWARAIACnIQcMAQsgAKciBEH//wNxQeQAbiEHIAVBAmsiBSACQShqaiAEIAdB5ABsa0H//wNxQQF0LwCcmEk7AAALAkAgB0EKTwRAIAVBAmsiCiACQShqaiAHQQF0LwCcmEk7AAAMAQsgBUEBayIKIAJBKGpqIAdBMHI6AAALAn8gCkEURgRAQYCAgIB4IAFBAWsiBCABIARMGwwBC0ETIAprIgYgAWoiBEEfdUGAgICAeHMgBCAGQQBIIAEgBEpzGwshAQJAQdAAEJABIgQEQCABQfIAQRQgCmsiBiIMIAxB8gBPG2tBAWohCSACQQA2AogBIAIgBDYChAEgAkEUNgKAAUEAIQEDQCAKQRRGBEAgBiEHDAMLIAJBKGogCmotAAAgAUEIRgRAAkACQCAIRQ0AIAhBAWtB/////wNxIgNBAWoiB0EDcSEFQgAhACAEIQECQCADQQNPBEAgB0H8////B3EhBwNAIAEgATUCAEKAwtcvfiAAfCIAPgIAIAFBBGoiAzUCAEKAwtcvfiAAQiCIfCEAIAMgAD4CACABQQhqIgM1AgBCgMLXL34gAEIgiHwhACADIAA+AgAgAUEMaiIDNQIAQoDC1y9+IABCIIh8IQAgAyAAPgIAIABCIIghACABQRBqIQEgB0EEayIHDQALIAVFDQELA0AgASABNQIAQoDC1y9+IAB8IgA+AgAgAUEEaiEBIABCIIghACAFQQFrIgUNAAsLAkAgAEIAUgRAIACnIQEgAigCgAEgCEYEfyACQYABahC8EiACKAKEAQUgBAsgCEECdGogATYCACACIAhBAWoiCDYCiAEMAQsgAigCiAEhCAsgCEUNACACKAKEASIEKAIAIgMgC2ohASAEIAE2AgAgASADTw0BIAhBAnQhB0EAIQEDQCAHIAFBBGoiA0YEQCACKAKAASAIRgRAIAJBgAFqELwSIAIoAoQBIQQLIAQgB2pBATYCACACIAhBAWoiCDYCiAEMAwsgASAEakEEaiIBKAIAQQFqIQUgASAFNgIAIAMhASAFRQ0ACwwBCyACKAKAAUUEQCACQYABahC8EgsgAigChAEiBCALNgIAQQEhCCACQQE2AogBC0EAIQtBACEBC0EwayIDQQlNBEAgCkEBaiEKIAFBAWohASALQQpsIANqIQtB8QAhByAOQQFqIg5B8QBHDQEMAwsLQeTryAAQnRUAC0EEEKcUAAsCQAJAAkACQAJAIAFFDQAgAUEKTw0BIAICfwJAIAhFDQAgAUECdDUCvOtIIQAgCEEBa0H/////A3EiBkEBaiIDQQNxIQVCACEQIAQhAQJAIAZBA08EQCADQfz///8HcSEDA0AgASABNQIAIAB+IBB8IhA+AgAgAUEEaiIGNQIAIAB+IBBCIIh8IRAgBiAQPgIAIAFBCGoiBjUCACAAfiAQQiCIfCEQIAYgED4CACABQQxqIgY1AgAgAH4gEEIgiHwhECAGIBA+AgAgEEIgiCEQIAFBEGohASADQQRrIgMNAAsgBUUNAQsDQCABIAE1AgAgAH4gEHwiED4CACABQQRqIQEgEEIgiCEQIAVBAWsiBQ0ACwsCQCAQQgBSBEAgEKchASACKAKAASAIRgR/IAJBgAFqELwSIAIoAoQBBSAECyAIQQJ0aiABNgIAIAIgCEEBaiIINgKIAQwBCyACKAKIASEICyAIRQ0AIAIoAoQBIgQoAgAiBiALaiEBIAQgATYCACABIAZPDQIgCEECdCEFQQAhAQNAIAUgAUEEaiIGRgRAIAIoAoABIAhGBEAgAkGAAWoQvBIgAigChAEhBAsgBCAIQQJ0akEBNgIAIAhBAWoMAwsgASAEakEEaiIBKAIAQQFqIQMgASADNgIAIAYhASADRQ0ACwwCCyACKAKAAUUEQCACQYABahC8EgsgAigChAEiBCALNgIAQQELIgg2AogBCwJAIAcgDE8NAAJAIAhFDQAgCEEBa0H/////A3EiBkEBaiIDQQNxIQVCACEAIAQhAQJAIAZBA08EQCADQfz///8HcSEHA0AgASABNQIAQgp+IAB8IgA+AgAgAUEEaiIGNQIAQgp+IABCIIh8IQAgBiAAPgIAIAFBCGoiBjUCAEIKfiAAQiCIfCEAIAYgAD4CACABQQxqIgY1AgBCCn4gAEIgiHwhACAGIAA+AgAgAEIgiCEAIAFBEGohASAHQQRrIgcNAAsgBUUNAQsDQCABIAE1AgBCCn4gAHwiAD4CACABQQRqIQEgAEIgiCEAIAVBAWsiBQ0ACwsCQCAAQgBSBEAgAKchASACKAKAASAIRgR/IAJBgAFqELwSIAIoAoQBBSAECyAIQQJ0aiABNgIAIAIgCEEBaiIENgKIAQwBCyACKAKIASEECyAERQ0AIAIoAoQBIgMoAgBBAWohASADIAE2AgAgAQ0BIARBAnQhBUEAIQEDQCAFIAFBBGoiBkYEQCACKAKAASAERgR/IAJBgAFqELwSIAIoAoQBBSADCyAEQQJ0akEBNgIAIAIgBEEBajYCiAEMAwsgASADakEEaiIBKAIAQQFqIQcgASAHNgIAIAYhASAHRQ0ACwwBCyACKAKAAUUEQCACQYABahC8EgsgAigChAFBATYCACACQQE2AogBCyACIAIoAogBNgJYIAIgAikCgAE3A1AgCUEASARAIAIgAigCWDYCaCACIAIpA1A3A2BB0AAQkAEiAUUNAiABIA1BAXRB/v//B3FBgYCACEEBIA1BgICA/AdxIgQbciIGrTcCACACIAE2AoQBIAJBFDYCgAEgAiACKQKAATcDcCACIAZBAEc2AnggAkHwAGpBACAJaxCBBAJAIAlBf3MgDUEXdkH/AXFBlgFrQet+IAQbaiIBQQBMBEAgAUEATg0BQQAhA0EAIAFrIgFBBXYhCwJAIAFBH3EiB0UNAEEgIAdrIQUgAigCZCEGAkAgAigCaCIIRQ0AIAhBAWtB/////wNxIgRBAWoiCUEDcSEKIAYhASAEQQNPBEAgCUH8////B3EhBANAIAEgASgCACIJIAd0IAMgBXZyNgIAIAFBBGoiDCgCACEDIAwgAyAHdCAJIAV2cjYCACABQQhqIgwoAgAhCSAMIAkgB3QgAyAFdnI2AgAgAUEMaiIMKAIAIQMgDCADIAd0IAkgBXZyNgIAIAFBEGohASAEQQRrIgQNAAsgCkUNAQsDQCADIAV2IQQgASAEIAEoAgAiAyAHdHI2AgAgAUEEaiEBIApBAWsiCg0ACwsgAyAFdiIBRQ0AIAIoAmAgCEYEfyACQeAAahC8EiACKAJkBSAGCyAIQQJ0aiABNgIAIAIgCEEBajYCaAsgC0UNASACQeAAaiALEOwGDAELIAFBBXYhCwJAIAFBH3EiB0UNAEEgIAdrIQUgAigCdCEGAkAgAigCeCIIRQRAQQAhAwwBCyAIQQFrQf////8DcSIEQQFqIglBA3EhCkEAIQMgBiEBIARBA08EQCAJQfz///8HcSEEA0AgASABKAIAIgkgB3QgAyAFdnI2AgAgAUEEaiIMKAIAIQMgDCADIAd0IAkgBXZyNgIAIAFBCGoiDCgCACEJIAwgCSAHdCADIAV2cjYCACABQQxqIgwoAgAhAyAMIAMgB3QgCSAFdnI2AgAgAUEQaiEBIARBBGsiBA0ACyAKRQ0BCwNAIAMgBXYhBCABIAQgASgCACIDIAd0cjYCACABQQRqIQEgCkEBayIKDQALCyADIAV2IgFFDQAgAigCcCAIRgR/IAJB8ABqELwSIAIoAnQFIAYLIAhBAnRqIAE2AgAgAiAIQQFqNgJ4CyALRQ0AIAJB8ABqIAsQ7AYLIAIoAnQhBCACKAJkIQYCQAJAIAIoAmgiASACKAJ4IgNLDQAgASADSQ0BIANBAnQhBSAEQQRrIQMgAUECdCEBIAZBBGshBwNAAkAgAUUNACAFRQ0AIAEgB2ooAgAiCCADIAVqKAIAIgpLDQIgBUEEayEFIAFBBGshASAIIApPDQEMAwsLIA1BAWq+IBcgDUEBcRshFwwBCyANQQFqviEXCyACKAJwIgMEQCAEQQRrKAIAIgdBeHEhASABIANBAnQiA0EEQQggB0EDcSIHG2pJDQcgB0EARyABIANBJ2pLcQ0IIAQQvAULIAIoAmAiBEUNBSAGQQRrKAIAIgNBeHEhASABIARBAnQiBEEEQQggA0EDcSIDG2pJDQYgA0EARyABIARBJ2pLcQ0HIAYQvAUMBQsgAiACKAJYNgKIASACIAIpA1A3A4ABIAJBgAFqIAkQgQQgCUEFdiELAkAgCUEfcSIHRQ0AQSAgB2shBSACKAKEASEGAkAgAigCiAEiCEUEQEEAIQMMAQsgCEEBa0H/////A3EiBEEBaiINQQNxIQpBACEDIAYhASAEQQNPBEAgDUH8////B3EhBANAIAEgASgCACINIAd0IAMgBXZyNgIAIAFBBGoiCSgCACEDIAkgAyAHdCANIAV2cjYCACABQQhqIgkoAgAhDSAJIA0gB3QgAyAFdnI2AgAgAUEMaiIJKAIAIQMgCSADIAd0IA0gBXZyNgIAIAFBEGohASAEQQRrIgQNAAsgCkUNAQsDQCADIAV2IQQgASAEIAEoAgAiAyAHdHI2AgAgAUEEaiEBIApBAWsiCg0ACwsgAyAFdiIBRQ0AIAIoAoABIAhGBH8gAkGAAWoQvBIgAigChAEFIAYLIAhBAnRqIAE2AgAgAiAIQQFqNgKIAQsgCw0CDAMLIAFBCkH068gAEIUTAAtBBBCnFAALIAJBgAFqIAsQ7AYLQgAhACACKAKEASEEQQAhAwJAAn4CQAJAAkACQCACKAKIASIGIgcOAwUBAgALIAQgBkECdCIDaiIBQQxrKQIAIgAgAUEEaygCACIHZyIFQSBzrSIQhkIAUg0CIARBEGshCANAIAMiAUEMRwRAIAFBBGshAyABIAhqKAIARQ0BCwsgAUEMRyEDIAetIBCGIABBICAFa62IhCIAIAYNAxpBACEHDAQLIAQoAgAiAa0gAWdBIHOthgwCCyAEKQIAIgAgAHmGDAELQQEhAyAHrSAQhiAAQSAgBWutiIQLIQAgBCAGQQJ0akEEaygCAGchBwsgAEEAIAB5pyAAUBsiAa2GIRACQAJAAkACQAJAAkACQAJAQb9/IAZBBXQgB2tBQGogBkH///8/SxsgAWsiBkEoaiIBQet+TgRAIBBCKIghACAQQv//////H4MiEUKAgICAgBBRDQEgEUKAgICAgBBWDQUMBgsgBkGqfk0NBiAGQat+Rw0BIBBCgICAgICAgICAf1YhB0IAIQAgEEKAgICAgICAgIB/Ug0CDAMLIAMgEEKAgICAgCCDQiiIp3JFDQQMAwsgEEJ/Qet+IAZrrSIAhkJ/hYMiEUIBIABCAX2GIhNWIQcgECAAiCEAIBEgE1ENAQtB634hASAHDQEMAgtB634hASADDQAgByAAp3JBAXFFDQELIABCAXwhAAsgAEKAgIAEIABCgICACIMiEFAbIQACQAJAIAEgEEIYiKdqIgFB6QBrQRhJBEBCf0IYIAFB6ABrrSIQfYZCgICAeIUgAINQDQELQwAAAAAhFyAAUA0DIAFB635IDQMgAUHoAEwNAUMAAIB/IRcMAwsgAFANASAAIBCGIQBB6AAhAQsgAEL///8DgyABQRd0QYCAgNgEaq0iECAAQiiGQj+HgyAQIAFB635GG4SnviEXDAELQwAAAAAhFwsgAigCgAEiBkUNACAEQQRrKAIAIgNBeHEhAQJAIAEgBkECdCIGQQRBCCADQQNxIgMbakkNAiADQQBHIAEgBkEnaktxDQAgBBC8BQwBCwwCCyACQZABaiQAIBcPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAviTgIPfwZ+IwBB4ARrIgIkACABKAIMIQMCQAJAAkACfwJAAkACQAJAAn8CfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACfwJAAn8CQAJAAkACQAJAAkACQAJAIAEoAhQiBiABKAIQIgVJBEAgAUEMaiEKA0AgAyAGai0AACIEQQlrIgdBF0sNAkEBIAd0QZOAgARxRQ0CIAEgBkEBaiIGNgIUIAUgBkcNAAsgBSEGCyACQQU2AvgDQQEhBEEAIQEgBkEBaiIGIAUgBSAGSxsiBUUNAyAFQQNxIQYgBUEETw0BDAILAkAgBEHbAGsOIQ8RERERERERERERBhEREREREREEEREREREFERERERERFAALIARBImsODA0QEBAQEBAQEBAQDBALIAVBfHEhBQNAQQBBAUECQQMgAUEEaiADLQAAQQpGIgcbIANBAWotAABBCkYiChsgA0ECai0AAEEKRiIIGyADQQNqLQAAQQpGIgkbIQEgBCAHaiAKaiAIaiAJaiEEIANBBGohAyAFQQRrIgUNAAsgBkUNAQsDQEEAIAFBAWogAy0AAEEKRiIFGyEBIANBAWohAyAEIAVqIQQgBkEBayIGDQALCyACQfgDaiAEIAEQxxMhASAAQX82AhAgACABNgIADCYLIAEgBkEBaiIENgIUIAQgBU8NAiABIAZBAmoiBzYCFAJAIAMgBGotAABB9QBHDQAgByAEIAUgBCAFSxsiBUYNAyABIAZBA2oiBDYCFCADIAdqLQAAQewARw0AIAQgBUYNAyABIAZBBGo2AhQgAyAEai0AAEHsAEcNAEEAIQNBgICAgHghBAwOCyACQQk2AvgDIAJBGGogChCbDiACQfgDaiACKAIYIAIoAhwQxxMMAwsgASAGQQFqIgQ2AhQgBCAFTw0DIAEgBkECaiIHNgIUAkAgAyAEai0AAEHyAEcNACAHIAQgBSAEIAVLGyIFRg0EIAEgBkEDaiIENgIUIAMgB2otAABB9QBHDQAgBCAFRg0EIAEgBkEEajYCFCADIARqLQAAQeUARw0AQQEhA0GBgICAeCEEQQAMIwsgAkEJNgL4AyACQShqIAoQmw4gAkH4A2ogAigCKCACKAIsEMcTDAQLIAEgBkEBaiIENgIUAkAgBCAFTw0AIAEgBkECaiIHNgIUIAMgBGotAABB4QBHDQUgByAEIAUgBCAFSxsiBEYNACABIAZBA2oiCDYCFCADIAdqLQAAQewARw0FIAQgCEYNACABIAZBBGoiBzYCFCADIAhqLQAAQfMARw0FIAQgB0YNACABIAZBBWo2AhQgAyAHai0AAEHlAEcNBUEAIQNBgYCAgHghBAwMCyACQQU2AvgDAkACQAJAIAQgBU0EQCAERQRAQQEhBkEAIQQMBAsgBEEDcSEBIARBBE8NAUEBIQZBACEEDAILQQAgBCAFQZizyAAQhw4ACyAEQXxxIQVBASEGQQAhBANAQQBBAUECQQMgBEEEaiADLQAAQQpGIgcbIANBAWotAABBCkYiChsgA0ECai0AAEEKRiIIGyADQQNqLQAAQQpGIgkbIQQgBiAHaiAKaiAIaiAJaiEGIANBBGohAyAFQQRrIgUNAAsgAUUNAQsDQEEAIARBAWogAy0AAEEKRiIFGyEEIANBAWohAyAFIAZqIQYgAUEBayIBDQALCyACQfgDaiAGIAQQxxMMBQsgAkEFNgL4AyACQRBqIAoQmw4gAkH4A2ogAigCECACKAIUEMcTCyEBIABBfzYCECAAIAE2AgAMIQsgAkEFNgL4AyACQSBqIAoQmw4gAkH4A2ogAigCICACKAIkEMcTCyEBIABBfzYCECAAIAE2AgAMHwsgAkEJNgL4AyACQTBqIAoQmw4gAkH4A2ogAigCMCACKAI0EMcTCyEBIABBfzYCECAAIAE2AgAMHQsgASAGQQFqNgIUQQAhAyACQYgDaiABQQAQ6AUgAikDiAMiEkJ/UQ0CQYKAgIB4IQQgAikDkAMhEQJAAkACQCASp0EBaw4CAgEAC0GAgICAeCEEIBFC////////////AINC//////////f/AFgEQCACQYCAgIB4NgKIBCACQfgDahD9CUGCgICAeCEEC0ECIQMMAQsgEUI/iKchAwsgEachBkEAIQUMBAsgAUEANgIIIAEgBkEBajYCFCACQfgDaiAKIAEQoAEgAigC/AMhASACKAL4AyIDQQJGDRYgAigCgAQhBgJAAkAgA0EBRgRAIAZBAEgNCSAGRQRAQQEhBQwDCyAGEJABIgUNAQwfCyAGQQBIDQggBkUEQEEBIQUMAgsgBhCQASIFRQ0eCyAGRQ0AIAUgASAG/AoAAAtBg4CAgHghBCAGIgNBgH5xDBkLIAEgAS0AJUEBayIEOgAlIARB/wFxRQ0UQQEhBCABIAZBAWoiBjYCFEEAIQcgAkEANgKQAyACQoCAgICAATcCiAMgBSAGTQ0RIAJBjARqIQkgAkH4A2pBBHIhDkEIIQ1BASEMA0AgCigCACEDAkACQAJAAkACQAJAAkADQAJAIAMgBmotAAAiC0EJaw4kAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMEAgsgASAGQQFqIgY2AhQgBSAGRw0ACyAFIQYMGQsgC0HdAEYNAwsgDEUNAQwECyAMDQMgASAGQQFqIgY2AhQgBSAGSwRAA0AgAyAGai0AACIMQQlrIgtBF0sNBEEBIAt0QZOAgARxRQ0EIAEgBkEBaiIGNgIUIAUgBkcNAAsLIAJBBTYC+AMgAkHoAGogChClDiACQfgDaiACKAJoIAIoAmwQxxMMFwsgAkEHNgL4AyACQeAAaiAKEKUOIAJB+ANqIAIoAmAgAigCZBDHEwwWCyACKQKMAyESIAIoAogDIQNBhICAgHgMFgsgDEHdAEcNACACQRU2AvgDIAJB8ABqIAoQpQ4gAkH4A2ogAigCcCACKAJ0EMcTDBQLIAJB+ANqIAEQVSACKAL4AyIDIAIoAogEIgVBf0YNExogAiAOKAIINgLIAiACIA4pAgA3A8ACIAIgCSkCADcDoAIgAiAJKQIINwOoAiACIAkpAhA3A7ACIAIgCSgCGDYCuAIgAigCiAMgCEYEQCACQYgDahCUEiACKAKMAyENCyANIAhBMGxqIgYgAzYCACAGIAIpA8ACNwIEIAYgAigCyAI2AgwgBiAFNgIQIAYgAikDoAI3AhQgBiACKAK4AjYCLCAGIAIpA7ACNwIkIAYgAikDqAI3AhwgAiAIQQFqIgg2ApADQQAhDCABKAIUIgYgASgCECIFSQ0ACwwQCyAAQX82AhAgACACKAKQAzYCAAwZCyAEQTBrQf8BcUEKTwRAIAJBCjYC+AMgAkEIaiAKEKUOIAJB+ANqIAIoAgggAigCDBDHEyABELMMIQEgAEF/NgIQIAAgATYCAAwZCyACQYgDaiABQQEQ6AUgAikDiAMiEkJ/UQ0BQYKAgIB4IQRBACEFIAIpA5ADIRFBACEDAkACQAJAIBKnQQFrDgICAQALQYCAgIB4IQQgEUL///////////8Ag0L/////////9/8AWARAIAJBgICAgHg2AogEIAJB+ANqEP0JQYKAgIB4IQQLQQIhAwwBCyARQj+IpyEDCyARpyEGC0EADBULIABBfzYCECAAIAIoApADNgIADBYLIAEgAS0AJUEBayIEOgAlIARB/wFxRQ0KIAEgBkEBaiIGNgIUIAIgATYC0AICQCAFIAZLBEADQCADIAZqLQAAIgRBCWsiB0EXSw0CQQEgB3RBk4CABHFFDQIgASAGQQFqIgY2AhQgBSAGRw0ACwsgAkEDNgL4AyACQcgBaiAKEKUOIAJB+ANqIAIoAsgBIAIoAswBEMcTIQMMCQsCQAJAAkAgBEH9AEcEQCACQQA6ANQCIARBIkcEQCACQRE2AvgDIAJBwAFqIAoQpQ4gAkH4A2ogAigCwAEgAigCxAEQxxMhAwwNCyABQQA2AgggASAGQQFqNgIUIAJB+ANqIAogARCgASACKAL8AyEDIAIoAvgDQQJGDQwCQAJ/IAIoAoAEIgZBHkcEQEEAIAZBAEgNARogBkUEQEEBIQQMBgsgBhCQASIEDQIMHQsgAykAAEKk5pWTx6zZr+oAhSADQQhqKQAAQvPeudOjh5y56QCFhCADQRBqKQAAQvbC0aumx46p4QCFIANBFmopAABC0sLds5WM27rlAIWEhFAEQCACQfgDaiEMIwBBEGsiDiQAAkACQAJAIAEQuQsiAwRAIAxBADYCACAMIAM2AgQMAQsgASgCDCEHAkACQCABKAIUIgMgASgCECIFSQRAIAFBDGohCANAIAMgB2otAABBCWsiBEEZSw0CQQEgBHRBk4CABHFFBEAgBEEZRw0DIAFBADYCCCABIANBAWo2AhQgDiAIIAEQoAEgDigCBCEFIA4oAgAiBEECRw0EIAxBADYCACAMIAU2AgQMBQsgASADQQFqIgM2AhQgAyAFRw0ACyAFIQMLIA5BBTYCAEEBIQhBACEEAkAgA0EBaiIDIAUgAyAFSRsiBUUNACAFQQNxIQMgBUEETwRAIAVBfHEhBQNAQQBBAUECQQMgBEEEaiAHLQAAQQpGIgkbIAdBAWotAABBCkYiDRsgB0ECai0AAEEKRiILGyAHQQNqLQAAQQpGIg8bIQQgCCAJaiANaiALaiAPaiEIIAdBBGohByAFQQRrIgUNAAsgA0UNAQsDQEEAIARBAWogBy0AAEEKRiIFGyEEIAdBAWohByAFIAhqIQggA0EBayIDDQALCyAOIAggBBDHEyEDIAxBADYCACAMIAM2AgQMAgsgDkEPaiEIIwBB4ABrIgQkACABKAIMIQcCQAJAAn8CQAJAIAEoAhAiBSABKAIUIglLBEAgAUEMaiENAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAcgCWotAAAiA0HbAGsOIQQLCwsLCwsLCwsLAwsLCwsLCwsBCwsLCwsCCwsLCwsLBQALIANBImsODAkKCgoKCgoKCgoKCAoLIAEgCUEBaiIDNgIUAkAgAyAFSQRAIAEgCUECaiILNgIUAkACQCADIAdqLQAAQfUARw0AIAUgC0YNASABIAlBA2oiAzYCFCAHIAtqLQAAQewARw0AIAMgBUYNASABIAlBBGo2AhQgAyAHai0AAEHsAEYNCAsgBEEJNgJQIARBCGogDRCbDiAEQdAAaiAEKAIIIAQoAgwQxxMMEAsgBEEFNgJQDAELIARBBTYCUCADIAVLDQ8gAyEFCyAFQQNxIQkCQAJAIAVBBEkEQEEBIQhBACEDDAELIAVBfHEhBUEBIQhBACEDA0BBAEEBQQJBAyADQQRqIActAABBCkYiDRsgB0EBai0AAEEKRiILGyAHQQJqLQAAQQpGIg8bIAdBA2otAABBCkYiEBshAyAIIA1qIAtqIA9qIBBqIQggB0EEaiEHIAVBBGsiBQ0ACyAJRQ0BCwNAQQAgA0EBaiAHLQAAQQpGIgUbIQMgB0EBaiEHIAUgCGohCCAJQQFrIgkNAAsLIARB0ABqIAggAxDHEwwNCyABIAlBAWoiAzYCFAJAIAMgBUkEQCABIAlBAmoiCzYCFAJAAkAgAyAHai0AAEHyAEcNACAFIAtGDQEgASAJQQNqIgM2AhQgByALai0AAEH1AEcNACADIAVGDQEgASAJQQRqNgIUIAMgB2otAABB5QBGDQgLIARBCTYCUCAEQRBqIA0Qmw4gBEHQAGogBCgCECAEKAIUEMcTDA8LIARBBTYCUAwBCyAEQQU2AlAgAyAFSw0OIAMhBQsgBUEDcSEJAkACQCAFQQRJBEBBASEIQQAhAwwBCyAFQXxxIQVBASEIQQAhAwNAQQBBAUECQQMgA0EEaiAHLQAAQQpGIg0bIAdBAWotAABBCkYiCxsgB0ECai0AAEEKRiIPGyAHQQNqLQAAQQpGIhAbIQMgCCANaiALaiAPaiAQaiEIIAdBBGohByAFQQRrIgUNAAsgCUUNAQsDQEEAIANBAWogBy0AAEEKRiIFGyEDIAdBAWohByAFIAhqIQggCUEBayIJDQALCyAEQdAAaiAIIAMQxxMMDAsgASAJQQFqIgM2AhQCQCADIAVJBEAgASAJQQJqIgs2AhQCQAJAIAMgB2otAABB4QBHDQAgBSALRg0BIAEgCUEDaiIDNgIUIAcgC2otAABB7ABHDQAgAyAFRg0BIAEgCUEEaiILNgIUIAMgB2otAABB8wBHDQAgBSALRg0BIAEgCUEFajYCFCAHIAtqLQAAQeUARg0ICyAEQQk2AlAgBEEYaiANEJsOIARB0ABqIAQoAhggBCgCHBDHEwwOCyAEQQU2AlAMAQsgBEEFNgJQIAMgBUsNDSADIQULIAVBA3EhCQJAAkAgBUEESQRAQQEhCEEAIQMMAQsgBUF8cSEFQQEhCEEAIQMDQEEAQQFBAkEDIANBBGogBy0AAEEKRiINGyAHQQFqLQAAQQpGIgsbIAdBAmotAABBCkYiDxsgB0EDai0AAEEKRiIQGyEDIAggDWogC2ogD2ogEGohCCAHQQRqIQcgBUEEayIFDQALIAlFDQELA0BBACADQQFqIActAABBCkYiBRshAyAHQQFqIQcgBSAIaiEIIAlBAWsiCQ0ACwsgBEHQAGogCCADEMcTDAsLIARBCjoAUCAEQdAAaiAIQYSMxgAQ1BEgARCzDAwKCyAEQQs6AFAgBEHQAGogCEGEjMYAENQRIAEQswwMCQsgBEEHOgBQIARB0ABqIAhBhIzGABDUESABELMMDAgLIARBgAI7AVAgBEHQAGogCEGEjMYAENQRIAEQswwMBwsgBEEAOwFQIARB0ABqIAhBhIzGABDUESABELMMDAYLIAEgCUEBajYCFCAEQSBqIgMgAUEAEOgFIAQpAyBCf1ENBCADIAhBhIzGABCyEiABELMMDAULIAFBADYCCCABIAlBAWo2AhQgBEHEAGogDSABEKABIAQoAkgiAyAEKAJEQQJGDQQaIAQgBCgCTDYCWCAEIAM2AlQgBEEFOgBQIARB0ABqIAhBhIzGABDUESABELMMDAQLIANBMGtB/wFxQQpJDQELIARBCjYCUEEBIQhBACEDAkAgCUEBaiIJIAUgBSAJSxsiBUUNACAFQQNxIQkgBUEETwRAIAVBfHEhBQNAQQBBAUECQQMgA0EEaiAHLQAAQQpGIg0bIAdBAWotAABBCkYiCxsgB0ECai0AAEEKRiIPGyAHQQNqLQAAQQpGIhAbIQMgCCANaiALaiAPaiAQaiEIIAdBBGohByAFQQRrIgUNAAsgCUUNAQsDQEEAIANBAWogBy0AAEEKRiIFGyEDIAdBAWohByAFIAhqIQggCUEBayIJDQALCyAEQdAAaiAIIAMQxxMgARCzDAwCCyAEQTBqIAFBARDoBSAEKQMwQn9RBEAgBCgCOAwCCyAEQTBqIAhBhIzGABCyEiABELMMDAELIAQoAigLIQMgBEHgAGokAAwBC0EAIAMgBUGYs8gAEIcOAAsgAyABELMMIQMgDEEANgIAIAwgAzYCBAwBCyAOKAIIIQMCQAJAIARBAUYEQCADQQBIDQQgA0UEQEEBIQQMAwsgAxCQASIEDQEMIwsgA0EASA0DIANFBEBBASEEDAILIAMQkAEiBEUNIgsgA0UNACAEIAUgA/wKAAALIAwgAzYCBCAMIAQ2AgALIA5BEGokAAwBCxCeFQALIAIoAvgDIgQNBiACQX82AoACIAIgAigC/AM2AvABDBALQR4QkAEiBA0DQQELEKcUAAsgBkUNAiAEIAMgBvwKAAAMAgsgAgJ+QdDwyQAtAAAEQEHI8MkAKQMAIRJBwPDJACkDAAwBCyACQfgDahC7EUHQ8MkAQQE6AABByPDJACACKQOABCISNwMAIAIpA/gDCyIRNwPwAUHA8MkAIBFCAXw3AwAgAkEANgKIAiACQoCAgICAATcDgAIgAiASNwP4ASACQZCpyQApAwA3AowCIAJBmKnJACkDADcClAIMDAsgBCADKQAWNwAWIAQgAykAEDcAECAEIAMpAAg3AAggBCADKQAANwAACyACAn5B0PDJAC0AAARAQcjwyQApAwAhEkHA8MkAKQMADAELIAJB+ANqELsRQdDwyQBBAToAAEHI8MkAIAIpA4AEIhI3AwAgAikD+AMLIhE3A9gCQcDwyQAgEUIBfDcDACACQQA2AvACIAJCgICAgIABNwPoAiACIBI3A+ACIAJBkKnJACkDADcC9AIgAkGYqckAKQMANwL8AiACIAY2ArgEIAIgBDYCtAQgAiAGNgKwBCACQfABaiEDAkAgAkHQAmooAgAiBRC5CyIHBEAgA0F/NgIQIAMgBzYCAAwBCyADIAUQVQsgAigCgAJBf0YEQCAGRQ0JIAQgBhDZEgwJCyACQfgDaiACQdgCaiACQbAEaiACQfABahCfBSACIAIpA6gENwOwAyACIAIpA6AENwOoAyACIAIpA5gENwOgAyACIAIpA5AEIhE3A5gDIAIgAikDiAQ3A5ADIAIgAikDgAQ3A4gDIBGnQX9HBEAgAkGIA2oQ/QkLIAEoAhQiAyABKAIQIgRPDQYgAkGMA2ohBSACQYAEaiEHIAJB/ANqIQgDQCAKKAIAIQYDQAJAAkAgAyAGai0AACIJQQlrDiQAAAcHAAcHBwcHBwcHBwcHBwcHBwcHBwAHBwcHBwcHBwcHBwEGCyABIANBAWoiAzYCFCADIARHDQEMCQsLIAEgA0EBaiIDNgIUAkACQAJAAkAgAyAESQRAA0AgAyAGai0AACIMQQlrIglBGUsNDEEBIAl0QZOAgARxRQRAIAlBGUcNDSABQQA2AgggASADQQFqNgIUIAJB+ANqIAogARCgASACKAL8AyEGIAIoAvgDIgRBAkYNDyACKAKABCEDIARBAUcNBCADQQBIDQkgAw0DQQEhBAwGCyABIANBAWoiAzYCFCADIARHDQALCyACQQU2AvgDIAJBsAFqIAoQpQ4gAkH4A2ogAigCsAEgAigCtAEQxxMhBgwMCyADEJABIgQNAQwbCyADQQBIDQQgA0UEQEEBIQQMAgsgAxCQASIEDQAMGgsgA0UNACAEIAYgA/wKAAALAkAgARC5CyIGRQRAIAJB+ANqIAEQVSACKAKIBEF/Rw0BIAIoAvgDIQYLIANFDQkgBCADENkSDAkLIAIgAikDoAQiETcD2AQgAiACKQOYBCISNwPQBCACIAIpA5AEIhM3A8gEIAIgAikDiAQiFDcDwAQgAiACKQOABCIVNwO4BCACIAIpA/gDIhY3A7AEIAggETcCKCAIIBI3AiAgCCATNwIYIAggFDcCECAIIBU3AgggCCAWNwIAIAIgAigCqAQ2ArgDIAIgAikCoAQ3A7ADIAIgAikCmAQ3A6gDIAIgAikCkAQ3A6ADIAIgAikCiAQ3A5gDIAIgAikCgAQ3A5ADIAIgAikC+AM3A4gDIAIgAzYCxAMgAiAENgLAAyACIAM2ArwDIAIgBSkCKDcD8AMgAiAFKQIgNwPoAyACIAUpAhg3A+ADIAIgBSkCEDcD2AMgAiAFKQIINwPQAyACIAUpAgA3A8gDIAJB+ANqIAJB2AJqIAJBvANqIAJByANqEJ8FIAIgBykDKDcD2AQgAiAHKQMgNwPQBCACIAcpAxg3A8gEIAIgBykDECIRNwPABCACIAcpAwg3A7gEIAIgBykDADcDsAQgEadBf0cEQCACQbAEahD9CQsgASgCFCIDIAEoAhAiBEkNAAsMBgsgAiACKAL8AyIGNgKcAyACIAQ2ApgDIAJCADcCkAMgAiAGNgKMAyACIAQ2AogDIAJB+ANqIAJBiANqEKEIAkAgAigCiARBf0YEQCACKAL4AyEFIwBBQGoiAyQAIAMgBTYCACADQQA2AgwgA0KAgICAEDcCBCADQdyWxgA2AhQgA0KggICABjcCGCADIANBBGo2AhACQAJAIAUoAgxFBEAgBSADQRBqEKgGDQEMAgsgAyAFQRBqrUKAgICAgAGENwMwIAMgBUEMaq1CgICAgIABhDcDKCADIAWtQoCAgICABIQ3AyAgA0EEakHclsYAQZaJwAAgA0EgahCxCUUNAQtB8LXJAEE3IANBP2pB9JbGAEGotskAENoSAAsgAyADKAIMNgIoIAMgAykCBDcDICADQSBqEPYCIQUgAxDgCyADQUBrJAAgAkF/NgKAAiACIAU2AvABDAELIAIgAikDoAQ3A5gCIAIgAikDmAQ3A5ACIAIgAikDkAQ3A4gCIAIgAikDiAQ3A4ACIAIgAikDgAQ3A/gBIAIgAikD+AM3A/ABCyAGRQ0JIAQgBhDZEgwJCxCeFQALIAlB/QBGDQELIAJBCDYC+AMgAkGYAWogChClDiACQfgDaiACKAKYASACKAKcARDHEyEGDAMLIAIgAikD2AI3A/ABIAIgAikD4AI3A/gBIAIgAikD6AI3A4ACIAIgAikD8AI3A4gCIAIgAikD+AI3A5ACIAIgAikDgAM3A5gCDAULIAxB/QBHBEAgAkERNgL4AyACQagBaiAKEKUOIAJB+ANqIAIoAqgBIAIoAqwBEMcTIQYMAgsgAkEVNgL4AyACQbgBaiAKEKUOIAJB+ANqIAIoArgBIAIoArwBEMcTIQYMAQsgAkEDNgL4AyACQaABaiAKEKUOIAJB+ANqIAIoAqABIAIoAqQBEMcTIQYLIAJBfzYCgAIgAiAGNgLwAQsCQAJAAkACQAJAAkAgAkHYAmoiBCgCICIDRQ0AIANBAnRBC2pBeHEiBSADakEJaiIDRQ0AIAQoAhwgBWsiB0EEaygCACIIQXhxIQUgBUEEQQggCEEDcSIIGyADakkNASAIQQBHIAUgA0EnaktxDQIgBxC8BQsgBCgCFCEDIAQoAhgiBwRAIAMhBQNAIAUQ2QggBUFAayEFIAdBAWsiBw0ACwsgBCgCECIEBEAgA0EEaygCACIHQXhxIQUgBSAEQQZ0IgRBBEEIIAdBA3EiBxtySQ0DIAdBAEcgBSAEQSdyS3ENBCADELwFCwwEC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALDAELIAJBfzYCgAIgAiADNgLwAQsgASABLQAlQQFqOgAlAkACQAJ/AkACQAJAIAEoAhQiAyABKAIQIgVJBEAgCigCACEGA0ACQCADIAZqLQAAIgRBCWsOJAAABAQABAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBQMLIAEgA0EBaiIDNgIUIAMgBUcNAAsLIAJBAzYCiAMgAkGIAWogChClDiACQYgDaiACKAKIASACKAKMARDHEwwDCyAEQf0ARg0DCyACQRY2AogDIAJBgAFqIAoQpQ4gAkGIA2ogAigCgAEgAigChAEQxxMMAQsgAkEVNgKIAyACQZABaiAKEKUOIAJBiANqIAIoApABIAIoApQBEMcTCyEDIAIgAikDmAI3A6AEIAIgAikDkAI3A5gEIAIgAikDiAI3A5AEIAIgAikDgAIiETcDiAQgAiACKQP4ATcDgAQgAiACKQPwATcD+AMgAiADNgKoBEF/IQQgEadBf0YNASACQfgDahD9CUIAIREMCgsgASADQQFqNgIUIAIgAikD8AE3A/gDIAIgAikD+AE3A4AEIAIgAikDgAIiETcDiAQgAiACKQOIAjcDkAQgAiACKQOQAjcDmAQgAiACKQOYAjcDoARBfyEEIBGnQX9HDQhCACERIAIoAvgDIQMMCQsgAigC+AMhAyACQagEahDgC0IAIREMCAsgAkEYNgL4AyACQfgAaiAKEKUOIAJB+ANqIAIoAnggAigCfBDHEyEBIABBfzYCECAAIAE2AgAMCgsgCigCACEDCyACQQI2AvgDAkAgBkEBaiIGIAUgBSAGSxsiBUUNACAFQQNxIQYgBUEETwRAIAVBfHEhBQNAQQBBAUECQQMgB0EEaiADLQAAQQpGIggbIANBAWotAABBCkYiCRsgA0ECai0AAEEKRiIMGyADQQNqLQAAQQpGIg4bIQcgBCAIaiAJaiAMaiAOaiEEIANBBGohAyAFQQRrIgUNAAsgBkUNAQsDQEEAIAdBAWogAy0AAEEKRiIFGyEHIANBAWohAyAEIAVqIQQgBkEBayIGDQALCyACQfgDaiAEIAcQxxMLIQMgAkGIA2oQlQkgAigCiAMiBgRAIAIoAowDIAZBMGwQ2RILIAEoAhQhBiABKAIQIQVBASEHQX8LIQQgASABLQAlQQFqOgAlAkAgAgJ/AkACQAJAAkACQAJAIAUgBksEQCAKKAIAIQgDQAJAIAYgCGotAAAiCUEJaw4kAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQFAwsgASAGQQFqIgY2AhQgBSAGRw0ACwsgAkECNgL4AyACQcgAaiAKEKUOIAJB+ANqIAIoAkggAigCTBDHEwwGCyAJQd0ARg0CCyACQRY2AvgDIAJBQGsgChClDiACQfgDaiACKAJAIAIoAkQQxxMMBAsgASAGQQFqIgY2AhQgBSAGTQ0CA0AgBiAIai0AACIJQQlrIgxBF0sNAkEBIAx0QZOAgARxRQ0CIAEgBkEBaiIGNgIUIAUgBkcNAAsMAgsgASAGQQFqNgIUIAIgEjcC/AMgBw0DIAIpA4AEIhGnIQYgEqchBQwHCyAJQd0ARw0AIAJBFTYC+AMgAkHYAGogChClDiACQfgDaiACKAJYIAIoAlwQxxMMAQsgAkEWNgL4AyACQdAAaiAKEKUOIAJB+ANqIAIoAlAgAigCVBDHEwsiBjYCqAQgAiAENgKIBCACIBI3AvwDIAIgAzYC+AMgB0UEQCACQfgDahD9CUF/IQQgBiEDDAULIAJBqARqEOALC0F/IQQMAwsgAkEYNgL4AyACQThqIAoQpQ4gAkH4A2ogAigCOCACKAI8EMcTIQEgAEF/NgIQIAAgATYCAAwFCyAAQX82AhAgACABNgIADAQLIAIgAikChAI3A9ABIAIgAikCjAI3A9gBIAIgAikClAI3A+ABIAIgAigCnAI2AugBIAIpA/gBIhGnIQYgAigCgAIhBCACKAL0ASEFIAIoAvABIQMLIARBf0YNASADQYB+cQshASAAIAQ2AhAgACAFNgIEIAAgAikD0AE3AhQgACACKQPYATcCHCAAIAIpA+ABNwIkIAAgAigC6AE2AiwgACAGrSARQoCAgIBwg4Q3AwggACABIANB/wFxcjYCAAwBCyADIAEQswwhASAAQX82AhAgACABNgIACyACQeAEaiQADwtBARCnFAAL4k4CD38GfiMAQeAEayICJAAgASgCDCEDAkACQAJAAn8CQAJAAkACQAJ/An8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAn8CQAJ/AkACQAJAAkACQAJAAkACQCABKAIUIgYgASgCECIFSQRAIAFBDGohCgNAIAMgBmotAAAiBEEJayIHQRdLDQJBASAHdEGTgIAEcUUNAiABIAZBAWoiBjYCFCAFIAZHDQALIAUhBgsgAkEFNgL4A0EBIQRBACEBIAZBAWoiBiAFIAUgBksbIgVFDQMgBUEDcSEGIAVBBE8NAQwCCwJAIARB2wBrDiEPEREREREREREREQYRERERERERBBERERERBRERERERERQACyAEQSJrDgwNEBAQEBAQEBAQEAwQCyAFQXxxIQUDQEEAQQFBAkEDIAFBBGogAy0AAEEKRiIHGyADQQFqLQAAQQpGIgobIANBAmotAABBCkYiCBsgA0EDai0AAEEKRiIJGyEBIAQgB2ogCmogCGogCWohBCADQQRqIQMgBUEEayIFDQALIAZFDQELA0BBACABQQFqIAMtAABBCkYiBRshASADQQFqIQMgBCAFaiEEIAZBAWsiBg0ACwsgAkH4A2ogBCABEMcTIQEgAEF/NgIQIAAgATYCAAwmCyABIAZBAWoiBDYCFCAEIAVPDQIgASAGQQJqIgc2AhQCQCADIARqLQAAQfUARw0AIAcgBCAFIAQgBUsbIgVGDQMgASAGQQNqIgQ2AhQgAyAHai0AAEHsAEcNACAEIAVGDQMgASAGQQRqNgIUIAMgBGotAABB7ABHDQBBACEDQYCAgIB4IQQMDgsgAkEJNgL4AyACQRhqIAoQmw4gAkH4A2ogAigCGCACKAIcEMcTDAMLIAEgBkEBaiIENgIUIAQgBU8NAyABIAZBAmoiBzYCFAJAIAMgBGotAABB8gBHDQAgByAEIAUgBCAFSxsiBUYNBCABIAZBA2oiBDYCFCADIAdqLQAAQfUARw0AIAQgBUYNBCABIAZBBGo2AhQgAyAEai0AAEHlAEcNAEEBIQNBgYCAgHghBEEADCMLIAJBCTYC+AMgAkEoaiAKEJsOIAJB+ANqIAIoAiggAigCLBDHEwwECyABIAZBAWoiBDYCFAJAIAQgBU8NACABIAZBAmoiBzYCFCADIARqLQAAQeEARw0FIAcgBCAFIAQgBUsbIgRGDQAgASAGQQNqIgg2AhQgAyAHai0AAEHsAEcNBSAEIAhGDQAgASAGQQRqIgc2AhQgAyAIai0AAEHzAEcNBSAEIAdGDQAgASAGQQVqNgIUIAMgB2otAABB5QBHDQVBACEDQYGAgIB4IQQMDAsgAkEFNgL4AwJAAkACQCAEIAVNBEAgBEUEQEEBIQZBACEEDAQLIARBA3EhASAEQQRPDQFBASEGQQAhBAwCC0EAIAQgBUGYs8gAEIcOAAsgBEF8cSEFQQEhBkEAIQQDQEEAQQFBAkEDIARBBGogAy0AAEEKRiIHGyADQQFqLQAAQQpGIgobIANBAmotAABBCkYiCBsgA0EDai0AAEEKRiIJGyEEIAYgB2ogCmogCGogCWohBiADQQRqIQMgBUEEayIFDQALIAFFDQELA0BBACAEQQFqIAMtAABBCkYiBRshBCADQQFqIQMgBSAGaiEGIAFBAWsiAQ0ACwsgAkH4A2ogBiAEEMcTDAULIAJBBTYC+AMgAkEQaiAKEJsOIAJB+ANqIAIoAhAgAigCFBDHEwshASAAQX82AhAgACABNgIADCELIAJBBTYC+AMgAkEgaiAKEJsOIAJB+ANqIAIoAiAgAigCJBDHEwshASAAQX82AhAgACABNgIADB8LIAJBCTYC+AMgAkEwaiAKEJsOIAJB+ANqIAIoAjAgAigCNBDHEwshASAAQX82AhAgACABNgIADB0LIAEgBkEBajYCFEEAIQMgAkGIA2ogAUEAEOgFIAIpA4gDIhJCf1ENAkGCgICAeCEEIAIpA5ADIRECQAJAAkAgEqdBAWsOAgIBAAtBgICAgHghBCARQv///////////wCDQv/////////3/wBYBEAgAkGAgICAeDYCiAQgAkH4A2oQgQpBgoCAgHghBAtBAiEDDAELIBFCP4inIQMLIBGnIQZBACEFDAQLIAFBADYCCCABIAZBAWo2AhQgAkH4A2ogCiABEKABIAIoAvwDIQEgAigC+AMiA0ECRg0WIAIoAoAEIQYCQAJAIANBAUYEQCAGQQBIDQkgBkUEQEEBIQUMAwsgBhCQASIFDQEMHwsgBkEASA0IIAZFBEBBASEFDAILIAYQkAEiBUUNHgsgBkUNACAFIAEgBvwKAAALQYOAgIB4IQQgBiIDQYB+cQwZCyABIAEtACVBAWsiBDoAJSAEQf8BcUUNFEEBIQQgASAGQQFqIgY2AhRBACEHIAJBADYCkAMgAkKAgICAgAE3AogDIAUgBk0NESACQYwEaiEJIAJB+ANqQQRyIQ5BCCENQQEhDANAIAooAgAhAwJAAkACQAJAAkACQAJAA0ACQCADIAZqLQAAIgtBCWsOJAAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDBAILIAEgBkEBaiIGNgIUIAUgBkcNAAsgBSEGDBkLIAtB3QBGDQMLIAxFDQEMBAsgDA0DIAEgBkEBaiIGNgIUIAUgBksEQANAIAMgBmotAAAiDEEJayILQRdLDQRBASALdEGTgIAEcUUNBCABIAZBAWoiBjYCFCAFIAZHDQALCyACQQU2AvgDIAJB6ABqIAoQpQ4gAkH4A2ogAigCaCACKAJsEMcTDBcLIAJBBzYC+AMgAkHgAGogChClDiACQfgDaiACKAJgIAIoAmQQxxMMFgsgAikCjAMhEiACKAKIAyEDQYSAgIB4DBYLIAxB3QBHDQAgAkEVNgL4AyACQfAAaiAKEKUOIAJB+ANqIAIoAnAgAigCdBDHEwwUCyACQfgDaiABEFYgAigC+AMiAyACKAKIBCIFQX9GDRMaIAIgDigCCDYCyAIgAiAOKQIANwPAAiACIAkpAgA3A6ACIAIgCSkCCDcDqAIgAiAJKQIQNwOwAiACIAkoAhg2ArgCIAIoAogDIAhGBEAgAkGIA2oQlBIgAigCjAMhDQsgDSAIQTBsaiIGIAM2AgAgBiACKQPAAjcCBCAGIAIoAsgCNgIMIAYgBTYCECAGIAIpA6ACNwIUIAYgAigCuAI2AiwgBiACKQOwAjcCJCAGIAIpA6gCNwIcIAIgCEEBaiIINgKQA0EAIQwgASgCFCIGIAEoAhAiBUkNAAsMEAsgAEF/NgIQIAAgAigCkAM2AgAMGQsgBEEwa0H/AXFBCk8EQCACQQo2AvgDIAJBCGogChClDiACQfgDaiACKAIIIAIoAgwQxxMgARCzDCEBIABBfzYCECAAIAE2AgAMGQsgAkGIA2ogAUEBEOgFIAIpA4gDIhJCf1ENAUGCgICAeCEEQQAhBSACKQOQAyERQQAhAwJAAkACQCASp0EBaw4CAgEAC0GAgICAeCEEIBFC////////////AINC//////////f/AFgEQCACQYCAgIB4NgKIBCACQfgDahCBCkGCgICAeCEEC0ECIQMMAQsgEUI/iKchAwsgEachBgtBAAwVCyAAQX82AhAgACACKAKQAzYCAAwWCyABIAEtACVBAWsiBDoAJSAEQf8BcUUNCiABIAZBAWoiBjYCFCACIAE2AtACAkAgBSAGSwRAA0AgAyAGai0AACIEQQlrIgdBF0sNAkEBIAd0QZOAgARxRQ0CIAEgBkEBaiIGNgIUIAUgBkcNAAsLIAJBAzYC+AMgAkHIAWogChClDiACQfgDaiACKALIASACKALMARDHEyEDDAkLAkACQAJAIARB/QBHBEAgAkEAOgDUAiAEQSJHBEAgAkERNgL4AyACQcABaiAKEKUOIAJB+ANqIAIoAsABIAIoAsQBEMcTIQMMDQsgAUEANgIIIAEgBkEBajYCFCACQfgDaiAKIAEQoAEgAigC/AMhAyACKAL4A0ECRg0MAkACfyACKAKABCIGQR5HBEBBACAGQQBIDQEaIAZFBEBBASEEDAYLIAYQkAEiBA0CDB0LIAMpAABCpOaVk8es2a/qAIUgA0EIaikAAELz3rnTo4ecuekAhYQgA0EQaikAAEL2wtGrpseOqeEAhSADQRZqKQAAQtLC3bOVjNu65QCFhIRQBEAgAkH4A2ohDCMAQRBrIg4kAAJAAkACQCABELkLIgMEQCAMQQA2AgAgDCADNgIEDAELIAEoAgwhBwJAAkAgASgCFCIDIAEoAhAiBUkEQCABQQxqIQgDQCADIAdqLQAAQQlrIgRBGUsNAkEBIAR0QZOAgARxRQRAIARBGUcNAyABQQA2AgggASADQQFqNgIUIA4gCCABEKABIA4oAgQhBSAOKAIAIgRBAkcNBCAMQQA2AgAgDCAFNgIEDAULIAEgA0EBaiIDNgIUIAMgBUcNAAsgBSEDCyAOQQU2AgBBASEIQQAhBAJAIANBAWoiAyAFIAMgBUkbIgVFDQAgBUEDcSEDIAVBBE8EQCAFQXxxIQUDQEEAQQFBAkEDIARBBGogBy0AAEEKRiIJGyAHQQFqLQAAQQpGIg0bIAdBAmotAABBCkYiCxsgB0EDai0AAEEKRiIPGyEEIAggCWogDWogC2ogD2ohCCAHQQRqIQcgBUEEayIFDQALIANFDQELA0BBACAEQQFqIActAABBCkYiBRshBCAHQQFqIQcgBSAIaiEIIANBAWsiAw0ACwsgDiAIIAQQxxMhAyAMQQA2AgAgDCADNgIEDAILIA5BD2ohCCMAQeAAayIEJAAgASgCDCEHAkACQAJ/AkACQCABKAIQIgUgASgCFCIJSwRAIAFBDGohDQJAAkACQAJAAkACQAJAAkACQAJAAkACQCAHIAlqLQAAIgNB2wBrDiEECwsLCwsLCwsLCwMLCwsLCwsLAQsLCwsLAgsLCwsLCwUACyADQSJrDgwJCgoKCgoKCgoKCggKCyABIAlBAWoiAzYCFAJAIAMgBUkEQCABIAlBAmoiCzYCFAJAAkAgAyAHai0AAEH1AEcNACAFIAtGDQEgASAJQQNqIgM2AhQgByALai0AAEHsAEcNACADIAVGDQEgASAJQQRqNgIUIAMgB2otAABB7ABGDQgLIARBCTYCUCAEQQhqIA0Qmw4gBEHQAGogBCgCCCAEKAIMEMcTDBALIARBBTYCUAwBCyAEQQU2AlAgAyAFSw0PIAMhBQsgBUEDcSEJAkACQCAFQQRJBEBBASEIQQAhAwwBCyAFQXxxIQVBASEIQQAhAwNAQQBBAUECQQMgA0EEaiAHLQAAQQpGIg0bIAdBAWotAABBCkYiCxsgB0ECai0AAEEKRiIPGyAHQQNqLQAAQQpGIhAbIQMgCCANaiALaiAPaiAQaiEIIAdBBGohByAFQQRrIgUNAAsgCUUNAQsDQEEAIANBAWogBy0AAEEKRiIFGyEDIAdBAWohByAFIAhqIQggCUEBayIJDQALCyAEQdAAaiAIIAMQxxMMDQsgASAJQQFqIgM2AhQCQCADIAVJBEAgASAJQQJqIgs2AhQCQAJAIAMgB2otAABB8gBHDQAgBSALRg0BIAEgCUEDaiIDNgIUIAcgC2otAABB9QBHDQAgAyAFRg0BIAEgCUEEajYCFCADIAdqLQAAQeUARg0ICyAEQQk2AlAgBEEQaiANEJsOIARB0ABqIAQoAhAgBCgCFBDHEwwPCyAEQQU2AlAMAQsgBEEFNgJQIAMgBUsNDiADIQULIAVBA3EhCQJAAkAgBUEESQRAQQEhCEEAIQMMAQsgBUF8cSEFQQEhCEEAIQMDQEEAQQFBAkEDIANBBGogBy0AAEEKRiINGyAHQQFqLQAAQQpGIgsbIAdBAmotAABBCkYiDxsgB0EDai0AAEEKRiIQGyEDIAggDWogC2ogD2ogEGohCCAHQQRqIQcgBUEEayIFDQALIAlFDQELA0BBACADQQFqIActAABBCkYiBRshAyAHQQFqIQcgBSAIaiEIIAlBAWsiCQ0ACwsgBEHQAGogCCADEMcTDAwLIAEgCUEBaiIDNgIUAkAgAyAFSQRAIAEgCUECaiILNgIUAkACQCADIAdqLQAAQeEARw0AIAUgC0YNASABIAlBA2oiAzYCFCAHIAtqLQAAQewARw0AIAMgBUYNASABIAlBBGoiCzYCFCADIAdqLQAAQfMARw0AIAUgC0YNASABIAlBBWo2AhQgByALai0AAEHlAEYNCAsgBEEJNgJQIARBGGogDRCbDiAEQdAAaiAEKAIYIAQoAhwQxxMMDgsgBEEFNgJQDAELIARBBTYCUCADIAVLDQ0gAyEFCyAFQQNxIQkCQAJAIAVBBEkEQEEBIQhBACEDDAELIAVBfHEhBUEBIQhBACEDA0BBAEEBQQJBAyADQQRqIActAABBCkYiDRsgB0EBai0AAEEKRiILGyAHQQJqLQAAQQpGIg8bIAdBA2otAABBCkYiEBshAyAIIA1qIAtqIA9qIBBqIQggB0EEaiEHIAVBBGsiBQ0ACyAJRQ0BCwNAQQAgA0EBaiAHLQAAQQpGIgUbIQMgB0EBaiEHIAUgCGohCCAJQQFrIgkNAAsLIARB0ABqIAggAxDHEwwLCyAEQQo6AFAgBEHQAGogCEHw9cgAENQRIAEQswwMCgsgBEELOgBQIARB0ABqIAhB8PXIABDUESABELMMDAkLIARBBzoAUCAEQdAAaiAIQfD1yAAQ1BEgARCzDAwICyAEQYACOwFQIARB0ABqIAhB8PXIABDUESABELMMDAcLIARBADsBUCAEQdAAaiAIQfD1yAAQ1BEgARCzDAwGCyABIAlBAWo2AhQgBEEgaiIDIAFBABDoBSAEKQMgQn9RDQQgAyAIQfD1yAAQshIgARCzDAwFCyABQQA2AgggASAJQQFqNgIUIARBxABqIA0gARCgASAEKAJIIgMgBCgCREECRg0EGiAEIAQoAkw2AlggBCADNgJUIARBBToAUCAEQdAAaiAIQfD1yAAQ1BEgARCzDAwECyADQTBrQf8BcUEKSQ0BCyAEQQo2AlBBASEIQQAhAwJAIAlBAWoiCSAFIAUgCUsbIgVFDQAgBUEDcSEJIAVBBE8EQCAFQXxxIQUDQEEAQQFBAkEDIANBBGogBy0AAEEKRiINGyAHQQFqLQAAQQpGIgsbIAdBAmotAABBCkYiDxsgB0EDai0AAEEKRiIQGyEDIAggDWogC2ogD2ogEGohCCAHQQRqIQcgBUEEayIFDQALIAlFDQELA0BBACADQQFqIActAABBCkYiBRshAyAHQQFqIQcgBSAIaiEIIAlBAWsiCQ0ACwsgBEHQAGogCCADEMcTIAEQswwMAgsgBEEwaiABQQEQ6AUgBCkDMEJ/UQRAIAQoAjgMAgsgBEEwaiAIQfD1yAAQshIgARCzDAwBCyAEKAIoCyEDIARB4ABqJAAMAQtBACADIAVBmLPIABCHDgALIAMgARCzDCEDIAxBADYCACAMIAM2AgQMAQsgDigCCCEDAkACQCAEQQFGBEAgA0EASA0EIANFBEBBASEEDAMLIAMQkAEiBA0BDCMLIANBAEgNAyADRQRAQQEhBAwCCyADEJABIgRFDSILIANFDQAgBCAFIAP8CgAACyAMIAM2AgQgDCAENgIACyAOQRBqJAAMAQsQnhUACyACKAL4AyIEDQYgAkF/NgKAAiACIAIoAvwDNgLwAQwQC0EeEJABIgQNA0EBCxCnFAALIAZFDQIgBCADIAb8CgAADAILIAICfkHQ8MkALQAABEBByPDJACkDACESQcDwyQApAwAMAQsgAkH4A2oQuxFB0PDJAEEBOgAAQcjwyQAgAikDgAQiEjcDACACKQP4AwsiETcD8AFBwPDJACARQgF8NwMAIAJBADYCiAIgAkKAgICAgAE3A4ACIAIgEjcD+AEgAkGQqckAKQMANwKMAiACQZipyQApAwA3ApQCDAwLIAQgAykAFjcAFiAEIAMpABA3ABAgBCADKQAINwAIIAQgAykAADcAAAsgAgJ+QdDwyQAtAAAEQEHI8MkAKQMAIRJBwPDJACkDAAwBCyACQfgDahC7EUHQ8MkAQQE6AABByPDJACACKQOABCISNwMAIAIpA/gDCyIRNwPYAkHA8MkAIBFCAXw3AwAgAkEANgLwAiACQoCAgICAATcD6AIgAiASNwPgAiACQZCpyQApAwA3AvQCIAJBmKnJACkDADcC/AIgAiAGNgK4BCACIAQ2ArQEIAIgBjYCsAQgAkHwAWohAwJAIAJB0AJqKAIAIgUQuQsiBwRAIANBfzYCECADIAc2AgAMAQsgAyAFEFYLIAIoAoACQX9GBEAgBkUNCSAEIAYQ2RIMCQsgAkH4A2ogAkHYAmogAkGwBGogAkHwAWoQ0gMgAiACKQOoBDcDsAMgAiACKQOgBDcDqAMgAiACKQOYBDcDoAMgAiACKQOQBCIRNwOYAyACIAIpA4gENwOQAyACIAIpA4AENwOIAyARp0F/RwRAIAJBiANqEIEKCyABKAIUIgMgASgCECIETw0GIAJBjANqIQUgAkGABGohByACQfwDaiEIA0AgCigCACEGA0ACQAJAIAMgBmotAAAiCUEJaw4kAAAHBwAHBwcHBwcHBwcHBwcHBwcHBwcABwcHBwcHBwcHBwcBBgsgASADQQFqIgM2AhQgAyAERw0BDAkLCyABIANBAWoiAzYCFAJAAkACQAJAIAMgBEkEQANAIAMgBmotAAAiDEEJayIJQRlLDQxBASAJdEGTgIAEcUUEQCAJQRlHDQ0gAUEANgIIIAEgA0EBajYCFCACQfgDaiAKIAEQoAEgAigC/AMhBiACKAL4AyIEQQJGDQ8gAigCgAQhAyAEQQFHDQQgA0EASA0JIAMNA0EBIQQMBgsgASADQQFqIgM2AhQgAyAERw0ACwsgAkEFNgL4AyACQbABaiAKEKUOIAJB+ANqIAIoArABIAIoArQBEMcTIQYMDAsgAxCQASIEDQEMGwsgA0EASA0EIANFBEBBASEEDAILIAMQkAEiBA0ADBoLIANFDQAgBCAGIAP8CgAACwJAIAEQuQsiBkUEQCACQfgDaiABEFYgAigCiARBf0cNASACKAL4AyEGCyADRQ0JIAQgAxDZEgwJCyACIAIpA6AEIhE3A9gEIAIgAikDmAQiEjcD0AQgAiACKQOQBCITNwPIBCACIAIpA4gEIhQ3A8AEIAIgAikDgAQiFTcDuAQgAiACKQP4AyIWNwOwBCAIIBE3AiggCCASNwIgIAggEzcCGCAIIBQ3AhAgCCAVNwIIIAggFjcCACACIAIoAqgENgK4AyACIAIpAqAENwOwAyACIAIpApgENwOoAyACIAIpApAENwOgAyACIAIpAogENwOYAyACIAIpAoAENwOQAyACIAIpAvgDNwOIAyACIAM2AsQDIAIgBDYCwAMgAiADNgK8AyACIAUpAig3A/ADIAIgBSkCIDcD6AMgAiAFKQIYNwPgAyACIAUpAhA3A9gDIAIgBSkCCDcD0AMgAiAFKQIANwPIAyACQfgDaiACQdgCaiACQbwDaiACQcgDahDSAyACIAcpAyg3A9gEIAIgBykDIDcD0AQgAiAHKQMYNwPIBCACIAcpAxAiETcDwAQgAiAHKQMINwO4BCACIAcpAwA3A7AEIBGnQX9HBEAgAkGwBGoQgQoLIAEoAhQiAyABKAIQIgRJDQALDAYLIAIgAigC/AMiBjYCnAMgAiAENgKYAyACQgA3ApADIAIgBjYCjAMgAiAENgKIAyACQfgDaiACQYgDahCkCAJAIAIoAogEQX9GBEAgAigC+AMhBSMAQUBqIgMkACADIAU2AgAgA0EANgIMIANCgICAgBA3AgQgA0HgkskANgIUIANCoICAgAY3AhggAyADQQRqNgIQAkACQCAFKAIMRQRAIAUgA0EQahCoBg0BDAILIAMgBUEQaq1CgICAgIABhDcDMCADIAVBDGqtQoCAgICAAYQ3AyggAyAFrUKAgICAgASENwMgIANBBGpB4JLJAEGWicAAIANBIGoQsQlFDQELQfC1yQBBNyADQT9qQfiSyQBBqLbJABDaEgALIAMgAygCDDYCKCADIAMpAgQ3AyAgA0EgahD2AiEFIAMQ4AsgA0FAayQAIAJBfzYCgAIgAiAFNgLwAQwBCyACIAIpA6AENwOYAiACIAIpA5gENwOQAiACIAIpA5AENwOIAiACIAIpA4gENwOAAiACIAIpA4AENwP4ASACIAIpA/gDNwPwAQsgBkUNCSAEIAYQ2RIMCQsQnhUACyAJQf0ARg0BCyACQQg2AvgDIAJBmAFqIAoQpQ4gAkH4A2ogAigCmAEgAigCnAEQxxMhBgwDCyACIAIpA9gCNwPwASACIAIpA+ACNwP4ASACIAIpA+gCNwOAAiACIAIpA/ACNwOIAiACIAIpA/gCNwOQAiACIAIpA4ADNwOYAgwFCyAMQf0ARwRAIAJBETYC+AMgAkGoAWogChClDiACQfgDaiACKAKoASACKAKsARDHEyEGDAILIAJBFTYC+AMgAkG4AWogChClDiACQfgDaiACKAK4ASACKAK8ARDHEyEGDAELIAJBAzYC+AMgAkGgAWogChClDiACQfgDaiACKAKgASACKAKkARDHEyEGCyACQX82AoACIAIgBjYC8AELAkACQAJAAkACQAJAIAJB2AJqIgQoAiAiA0UNACADQQJ0QQtqQXhxIgUgA2pBCWoiA0UNACAEKAIcIAVrIgdBBGsoAgAiCEF4cSEFIAVBBEEIIAhBA3EiCBsgA2pJDQEgCEEARyAFIANBJ2pLcQ0CIAcQvAULIAQoAhQhAyAEKAIYIgcEQCADIQUDQCAFEN0IIAVBQGshBSAHQQFrIgcNAAsLIAQoAhAiBARAIANBBGsoAgAiB0F4cSEFIAUgBEEGdCIEQQRBCCAHQQNxIgcbckkNAyAHQQBHIAUgBEEncktxDQQgAxC8BQsMBAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACwwBCyACQX82AoACIAIgAzYC8AELIAEgAS0AJUEBajoAJQJAAkACfwJAAkACQCABKAIUIgMgASgCECIFSQRAIAooAgAhBgNAAkAgAyAGai0AACIEQQlrDiQAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAUDCyABIANBAWoiAzYCFCADIAVHDQALCyACQQM2AogDIAJBiAFqIAoQpQ4gAkGIA2ogAigCiAEgAigCjAEQxxMMAwsgBEH9AEYNAwsgAkEWNgKIAyACQYABaiAKEKUOIAJBiANqIAIoAoABIAIoAoQBEMcTDAELIAJBFTYCiAMgAkGQAWogChClDiACQYgDaiACKAKQASACKAKUARDHEwshAyACIAIpA5gCNwOgBCACIAIpA5ACNwOYBCACIAIpA4gCNwOQBCACIAIpA4ACIhE3A4gEIAIgAikD+AE3A4AEIAIgAikD8AE3A/gDIAIgAzYCqARBfyEEIBGnQX9GDQEgAkH4A2oQgQpCACERDAoLIAEgA0EBajYCFCACIAIpA/ABNwP4AyACIAIpA/gBNwOABCACIAIpA4ACIhE3A4gEIAIgAikDiAI3A5AEIAIgAikDkAI3A5gEIAIgAikDmAI3A6AEQX8hBCARp0F/Rw0IQgAhESACKAL4AyEDDAkLIAIoAvgDIQMgAkGoBGoQ4AtCACERDAgLIAJBGDYC+AMgAkH4AGogChClDiACQfgDaiACKAJ4IAIoAnwQxxMhASAAQX82AhAgACABNgIADAoLIAooAgAhAwsgAkECNgL4AwJAIAZBAWoiBiAFIAUgBksbIgVFDQAgBUEDcSEGIAVBBE8EQCAFQXxxIQUDQEEAQQFBAkEDIAdBBGogAy0AAEEKRiIIGyADQQFqLQAAQQpGIgkbIANBAmotAABBCkYiDBsgA0EDai0AAEEKRiIOGyEHIAQgCGogCWogDGogDmohBCADQQRqIQMgBUEEayIFDQALIAZFDQELA0BBACAHQQFqIAMtAABBCkYiBRshByADQQFqIQMgBCAFaiEEIAZBAWsiBg0ACwsgAkH4A2ogBCAHEMcTCyEDIAJBiANqEJoJIAIoAogDIgYEQCACKAKMAyAGQTBsENkSCyABKAIUIQYgASgCECEFQQEhB0F/CyEEIAEgAS0AJUEBajoAJQJAIAICfwJAAkACQAJAAkACQCAFIAZLBEAgCigCACEIA0ACQCAGIAhqLQAAIglBCWsOJAAABAQABAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBQMLIAEgBkEBaiIGNgIUIAUgBkcNAAsLIAJBAjYC+AMgAkHIAGogChClDiACQfgDaiACKAJIIAIoAkwQxxMMBgsgCUHdAEYNAgsgAkEWNgL4AyACQUBrIAoQpQ4gAkH4A2ogAigCQCACKAJEEMcTDAQLIAEgBkEBaiIGNgIUIAUgBk0NAgNAIAYgCGotAAAiCUEJayIMQRdLDQJBASAMdEGTgIAEcUUNAiABIAZBAWoiBjYCFCAFIAZHDQALDAILIAEgBkEBajYCFCACIBI3AvwDIAcNAyACKQOABCIRpyEGIBKnIQUMBwsgCUHdAEcNACACQRU2AvgDIAJB2ABqIAoQpQ4gAkH4A2ogAigCWCACKAJcEMcTDAELIAJBFjYC+AMgAkHQAGogChClDiACQfgDaiACKAJQIAIoAlQQxxMLIgY2AqgEIAIgBDYCiAQgAiASNwL8AyACIAM2AvgDIAdFBEAgAkH4A2oQgQpBfyEEIAYhAwwFCyACQagEahDgCwtBfyEEDAMLIAJBGDYC+AMgAkE4aiAKEKUOIAJB+ANqIAIoAjggAigCPBDHEyEBIABBfzYCECAAIAE2AgAMBQsgAEF/NgIQIAAgATYCAAwECyACIAIpAoQCNwPQASACIAIpAowCNwPYASACIAIpApQCNwPgASACIAIoApwCNgLoASACKQP4ASIRpyEGIAIoAoACIQQgAigC9AEhBSACKALwASEDCyAEQX9GDQEgA0GAfnELIQEgACAENgIQIAAgBTYCBCAAIAIpA9ABNwIUIAAgAikD2AE3AhwgACACKQPgATcCJCAAIAIoAugBNgIsIAAgBq0gEUKAgICAcIOENwMIIAAgASADQf8BcXI2AgAMAQsgAyABELMMIQEgAEF/NgIQIAAgATYCAAsgAkHgBGokAA8LQQEQpxQAC/MwAhJ/A34jAEHAC2siBiQAIAZBADYC3AggBkF/NgLQCCAGQRRqIAZB0AhqIAEgBRBnAkACQAJAAkAgBigC0AgiB0EASgRAIAYoAtQIIgpBBGsoAgAiCUF4cSEIIAhBBEEIIAlBA3EiCRsgB2pJDQEgCUEARyAIIAdBJ2pLcQ0CIAoQvAULIAZBIGogASACIAYoAhgiFiAGKAIcIhEgBRBGIAZBADYCkAEgBkKAgICAwAA3AogBIAZBADYC6AogBkKAgICAgAE3AuAKIAZBiARqrUKAgICA0AGEIRkgBkHQAGqtQoCAgICAAYQhGkEEIQhBCCENQQAhCgJAAkADQCADIARHBEAgAyIHQcgBaiEDIAcpAwBCBVINASAGIAo2AlAgBiAaNwOIBCAGQdAIaiIIQfuBwAAgBkGIBGoQuAwgBigC0AghDyAGKALUCCEQIAYoAtgIIQkgBkEIaiAHQdgAaiILKAIAQQhqIAdB3ABqKAIAENEQIAYgBikDCDcCiAQgBiAZNwPQCCAGQfgBakHsgcAAIAgQuAwCQCAHLQAIQf8BRwRAIAggB0EIahCHAwwBCyAGQf8BOgDQCAsgBkGIBGogCyAGQdAIaiAGKAL8ASISIAYoAoACIgsgECAJQQAgBiAFEDxBwAEQkAEiB0UNBkEBIQhBASEJAkAgBigC3AQiDEUiEw0AIAYoAtgEIRQgDBCQASIJRQ0IIBMNACAJIBQgDPwKAAALAkAgC0UiEw0AIAsQkAEiCEUNCCATDQAgCCASIAv8CgAACyAGQQA2AsAJIAYgCzYCvAkgBiAINgK4CSAGIAs2ArQJIAZBfjYCqAkgBkH/AToA9AkgBkF8NgLgCCAGQQA6APwJIAZBADsB+gkgBkF+NgLQCCAGQX42AugJIAZCgICAgGA3A9gJIAZCgICAgMAANwPQCSAGIAw2AswJIAYgCTYCyAkgBiAMNgLECUGwARCQASIIRQ0GIAggBkHQCGpBsAH8CgAAIAdBfjYCsAEgB0IANwOIASAHQgE3A4ABIAdBAToAeCAHQX42AmggB0ECNgJgIAdBfjYCUCAHIAg2AgQgB0EDNgIAQcgBEJABIghFDQYgCEF+NgK4ASAIQQI2AgwgCCAHNgIIIAhCioCAgCA3AwAgC60gGEKAgICAcIOEIRggBigC+AEhCSAGKALgCiAKRgRAIAZB4ApqEKUSIAYoAuQKIQ0LIA0gCkHgAGxqIgcgGDcDWCAHIBI2AlQgByAJNgJQIAcgCDYCBCAHQQY2AgAgBiAKQQFqIgo2AugKIAYoApABIgcgBigCiAFGBEAgBkGIAWoQrBILIAYoAowBIgggB0HYAGxqIAZBiARqQdgA/AoAACAGIAdBAWoiEjYCkAEgDwRAIBBBBGsoAgAiCUF4cSEHIAdBBEEIIAlBA3EiCRsgD2pJDQUgCUEARyAHIA9BJ2pLcQ0GIBAQvAULDAELCyAGIAYpAuAKNwMwIAYgBigC6Ao2AjhBACEPQgAhGQJAIAEtAKEBDQACQAJAIAEoAhBBAWsOAwAAAQILQQEhD0IBIRkMAQsgASkDGCIZQj+HIRggGCAZhSAYfUL/////D4MhGUEBIQ8LIAYoAogBIRAgATUCCCEaIAEoAgAhEyABLQCgASEUAkAgAS0AICIEQf8BRwRAIAZB0AhqIgNBAXIgAUEhakHPAPwKAAAgBiAEOgDQCCAGQQA6AIICIAZBATsBgAIgBkECNgL4ASAGQYgEaiAGQfgBaiADIAUQ5QEgBiAGKQKIBDcDwAggBiAGKQKQBDcDyAggBigCmAQhCiAGKAKcBCEOIAYoAqAEIRcgBkF/NgLgCCAGQQQ2AtAIIAMQ9QUMAQsgBkEENgLQCCAGIAYpAtgINwPICCAGIAYpAtAINwPACEF/IQoLIAYgBikDyAg3A9gIIAYgBikDwAgiGDcD0AggBiAGKQIgNwPgCCAGIAYpAig3A+gIIBinQQRGBEAgBiAGKQIoNwNIIAYgBikCIDcDQCAGQdAIahD1BQwCCyAGKALgCEEERg0AIAYgBikDyAg3A5AEIAYgBikDwAg3A4gEIAZBQGsgBkGIBGogBkEgahD0DAwBCyAGIAYpA8gINwNIIAYgBikDwAg3A0AgBkHgCGoQ9QULIAZBiAFqIAIgBRCcBAJAAkAgEQRAIAZBvARqIQQgBkHUCGohC0EAIQkDQCAGIAYoArgBNgKoAiAGIAYpArABNwOgAiAGIAYpAqgBNwOYAiAGIAYpAqABNwOQAiAGIAYpApgBNwOIAiAGIAYpApABNwOAAiAGIAYpAogBNwP4ASAWIAlB2AFsaiIDKALQASICBEAgAygCzAEhBwNAIAYgBigCqAI2ApALIAYgBikDoAI3A4gLIAYgBikDmAI3A4ALIAYgBikDkAI3A/gKIAYgBikDiAI3A/AKIAYgBikDgAI3A+gKIAYgBikD+AE3A+AKIAYgBzYClAsgB0E4aiEDIAdBBGohDAJAAkACQAJAAkAgBygCAEEBaw4DAQIDAAsgBkGIBGoiDSAMEN8EIAQgAxDXCiAHQcgAai0AACEDIAsgDUHEAPwKAAAgBkEANgLQCAwDCyAGQYgEaiINIAwQ3wQgBCADENcKIAdByABqLQAAIQMgCyANQcQA/AoAACAGQQE2AtAIDAILIAZBiARqIg0gDBDfBCAEIAMQ1wogB0HIAGotAAAhAyALIA1BxAD8CgAAIAZBAjYC0AgMAQsgBkGIBGoiDSAMEN8EIAQgAxDXCiAHQcgAai0AACEDIAsgDUHEAPwKAAAgBkEDNgLQCAsgBiADOgCYCQJAIAdB1ABqKAIAIgNFBEAgBkH4AWogBkHgCmogBkHQCGoQ+QUMAQsgB0HQAGooAgAhDSADEJABIgxFDQogAwRAIAwgDSAD/AoAAAsgBkH4AWogBkHgCmogBkHQCGoQ+QUgDEEEaygCACIVQXhxIQ0gDUEEQQggFUEDcSIVGyADakkNByAVQQBHIA0gA0EnaktxDQggDBC8BQsgB0HYAGohByACQQFrIgINAAsLIAYgBigCqAI2ArgBIAYgBikDoAI3A7ABIAYgBikDmAI3A6gBIAYgBikDkAI3A6ABIAYgBikDiAI3A5gBIAYgBikDgAI3A5ABIAYgBikD+AE3A4gBIBEgCUEBaiIJRw0ACwsgBiAGKAK4ATYCgAEgBiAGKQOwATcDeCAGIAYpA6gBNwNwIAYgBikDoAE3A2ggBiAGKQOYATcDYCAGIAYpA5ABNwNYIAYgBikDiAE3A1AgEgRAIBJB2ABsIQQgBkGECWohAiAIIQcDQCACIAdB2AD8CgAAIAYgBigCgAE2AoAJIAYgBikDeDcD+AggBiAGKQNwNwPwCCAGIAYpA2g3A+gIIAYgBikDYDcD4AggBiAGKQNYNwPYCCAGIAYpA1A3A9AIIAZB0ABqIAZB0AhqIAIQ+QUgBigC0AkiAwRAIAYoAtQJIgtBBGsoAgAiDEF4cSEJIAlBBEEIIAxBA3EiDBsgA2pJDQUgDEEARyAJIANBJ2pLcQ0GIAsQvAULIAdB2ABqIQcgBEHYAGsiBA0ACwsgEARAIAhBBGsoAgAiA0F4cSECIAIgEEHYAGwiBEEEQQggA0EDcSIDG2pJDQMgA0EARyACIARBJ2pLcQ0EIAgQvAULIAYgBigCgAE2ArgBIAYgBikDeDcDsAEgBiAGKQNwNwOoASAGIAYpA2g3A6ABIAYgBikDYDcDmAEgBiAGKQNYNwOQASAGIAYpA1A3A4gBAkAgCkF/RgRAIAZB0ABqIQcMAQsgFwRAIBdB2ABsIQQgBkGECWohAiAOIQcDQCACIAdB2AD8CgAAIAYgBigCuAE2AoAJIAYgBikDsAE3A/gIIAYgBikDqAE3A/AIIAYgBikDoAE3A+gIIAYgBikDmAE3A+AIIAYgBikDkAE3A9gIIAYgBikDiAE3A9AIIAZBiAFqIAZB0AhqIAIQ+QUgBigC0AkiAwRAIAYoAtQJIglBBGsoAgAiC0F4cSEIIAhBBEEIIAtBA3EiCxsgA2pJDQYgC0EARyAIIANBJ2pLcQ0HIAkQvAULIAdB2ABqIQcgBEHYAGsiBA0ACwsgBkGIAWohByAKRQ0AIA5BBGsoAgAiA0F4cSECIAIgCkHYAGwiBEEEQQggA0EDcSIDG2pJDQMgA0EARyACIARBJ2pLcQ0EIA4QvAULIAYgBygCMDYC8AEgBiAHKQIoNwPoASAGIAcpAiA3A+ABIAYgBykCGDcD2AEgBiAHKQIQNwPQASAGIAcpAgg3A8gBIAYgBykCADcDwAFBNBCQASICRQ0EIAIgBigC8AE2AjAgAiAGKQPoATcCKCACIAYpA+ABNwIgIAIgBikD2AE3AhggAiAGKQPQATcCECACIAYpA8gBNwIIIAIgBikDwAE3AgAgBiAGKQJENwLUCCAGIAYoAkw2AtwIIAYoAkAhAyAGQX42AtQKIAZBfjYCyAogBkIENwPACiAGQgA3A7gKIAZCgICAgMAANwOwCiAGQgg3A6gKIAZCADcDoAogBkKAgICAgAE3A5gKIAZCCDcDkAogBkIBNwOICiAGIAI2AoQKIAZBATYCgAogBkF9NgLwCCAGQX82AuAIIAYgAzYC0AggBkF+NgK4CSAGQgE3A9AJIAZBAToAyAkgBkIAIBpCACATGyAUQQFxGzcD2AkgBkGIBGoiAyAGQdAIaiICQZAC/AoAACAGIAUpAyg3A/gIIAYgBSkDIDcD8AggBiAFKQMYNwPoCCAGIAUpAxA3A+AIIAYgBSkDCDcD2AggBiAFKQMANwPQCCAGQfgBaiIEIAMgAhCxDiARBEAgFkHAAWohByAEQcgBaiEOIAJByAFqIQoDQCAGQdAIaiAGQfgBakGQAvwKAAAgBkGIBGogB0HgAGsQ3gFBfiECIAdBEGsoAgAiBEF+RwRAQX8hAiAHQQhrKAIAIQMgB0EMaygCACEIAkAgBEF/RgRAIAghBAwBCyADRQRAQQAhAkEBIQQMAQsgAxCQASIERQ0JIAMEQCAEIAggA/wKAAALIAMhAgsgBK0gA61CIIaEIRgLIAZB4ApqIAZBiARqIgRB0AD8CgAAIActAAAhCCAGIA4oAggiAzYCkAQgBiAOKQIAIho3A4gEIBqnIANGBEAgBBCmEgsgBigCjAQgA0HoAGxqIgQgBkHgCmpB0AD8CgAAIAQgCDoAYCAEIBg3AlQgBCACNgJQIAogA0EBajYCCCAKIAYpA4gENwIAIAZB+AFqIAZB0AhqQZAC/AoAACAHQdgBaiEHIBFBAWsiEQ0ACwsgBkHQCGogBkH4AWpBkAL8CgAAAkAgASgCiAFBf0cEQCAGQbQIaiABQYgBahCkESAGIAYoArgIIgogBigCvAgiBCAFEPIHIAYoAgAiAygCBCECAkACQCACIAMoAgxGDQAgAyACQbABajYCBCAGQYgEaiIFIAJB8AD8CgAAIAYgAikCdDcD4AogBiACKQJ8NwPoCiAGIAIpAoQBNwPwCiAGIAIpAowBNwP4CiAGIAIpApQBNwOACyAGIAIpApwBNwOICyAGIAIpAqQBNwOQCyAGIAIoAqwBNgKYCyACKAJwIgdBfkYNAEGwARCQASICRQ0IIAIgBUHwAPwKAAAgAiAHNgJwIAIgBikD4Ao3AnQgAiAGKQPoCjcCfCACIAYpA/AKNwKEASACIAYpA/gKNwKMASACIAYpA4ALNwKUASACIAYpA4gLNwKcASACIAYpA5ALNwKkASACIAYoApgLNgKsAUGAAxCQASIHRQ0EIAdBfjYCUCAHIAI2AgQgB0EDNgIAIAZBATYCvAsgBiAHNgK4CyAGQQQ2ArQLQbABIQJBASEEA0ACQCADKAIEIgUgAygCDEYNACADIAVBsAFqNgIEIAZBiARqIgggBUHwAPwKAAAgBiAFKQJ0NwPgCiAGIAUpAnw3A+gKIAYgBSkChAE3A/AKIAYgBSkCjAE3A/gKIAYgBSkClAE3A4ALIAYgBSkCnAE3A4gLIAYgBSkCpAE3A5ALIAYgBSgCrAE2ApgLIAUoAnAiDkF+Rg0AQbABEJABIgVFDQogBSAIQfAA/AoAACAFIA42AnAgBSAGKQPgCjcCdCAFIAYpA+gKNwJ8IAUgBikD8Ao3AoQBIAUgBikD+Ao3AowBIAUgBikDgAs3ApQBIAUgBikDiAs3ApwBIAUgBikDkAs3AqQBIAUgBigCmAs2AqwBIAYoArQLIARGBEAgBkG0C2ogBEEBQQhB4AAQsxEgBigCuAshBwsgAiAHaiIIQX42AgAgCEHMAGsgBTYCACAIQdAAa0EDNgIAIAYgBEEBaiIENgK8CyACQeAAaiECDAELCyADEJoRIANBBGsoAgAiAkEDcSEEIAJBeHFBFEEYIAQbSQ0GIARBAEcgAkE4T3ENBSADELwFIAYgBigCvAs2ArAIIAYgBikCtAs3A6gIIAYoArwIIQQgBigCuAghCgwBCyAGQQA2ArAIIAZCgICAgIABNwOoCCADEJoRIANBBGsoAgAiAkEDcSEFIAJBeHFBFEEYIAUbSQ0FIAVBAEcgAkE4T3ENBiADELwFCyAEBEAgCkEUaiEHQQAhAwNAIAogA0EYbGohAgJAAkACQAJAAkAgB0EUaygCAA4CAQIACyAHKAIAIggoAgAhBSAIIAVBAWs2AgAgBUEBRw0DIAJBFGohAgwCCyAHQRBrKAIAIggoAgAhBSAIIAVBAWs2AgAgBUEBRw0CIAJBBGohAgwBCyAHKAIAIgIoAgAhBSACIAVBAWs2AgAgByECIAVBAUcNAQsgAigCABAwCyADQQFqIQMgB0EYaiEHIARBAWsiBA0ACwsgBigCtAgiAwRAIApBBGsoAgAiBEF4cSECIAIgA0EYbCIDQQRBCCAEQQNxIgQbakkNBSAEQQBHIAIgA0EnaktxDQYgChC8BQsgBkGYBmogBkHQCGogBkGoCGoQ7Q0MAQsgBkGYBmogBkH4AWpBkAL8CgAACwJAIA8EQAJAIAYoArgGIgJBfUYNACAGQcgGahD/AiACQQBMDQAgBigCvAYiBEEEaygCACIFQXhxIQMgA0EEQQggBUEDcSIFGyACakkNBSAFQQBHIAMgAkEnaktxDQYgBBC8BQsgBiAZNwPYBiAGQgE3A9AGIAZBAToAyAYgBkF+NgK4BiAAIAZBmAZqQZAC/AoAACAAIAYoAjg2ApgCIAAgBikDMDcCkAIMAQsgACAGKAI4NgKYAiAAIAYpAzA3ApACIAAgBkGYBmpBkAL8CgAACyAGKAIYIQQgBigCHCIKBEBBACECA0AgBCACQdgBbGoiABDNAQJAIAAoAlAiA0F+Rg0AIANBf0YNACADRQ0AIAAoAlQiB0EEaygCACIIQXhxIQUgBUEEQQggCEEDcSIIGyADakkNBSAIQQBHIAUgA0EnaktxDQYgBxC8BQsgAEHgAGoQzQECQCAAKAKwASIDQX5GDQAgA0F/Rg0AIANFDQAgACgCtAEiB0EEaygCACIIQXhxIQUgBUEEQQggCEEDcSIIGyADakkNBSAIQQBHIAUgA0EnaktxDQYgBxC8BQsgACgCzAEhBSAAKALQASIDBEAgBUHQAGohBwNAIAdBzABrEMkCIAdBGGsQ9QUgB0EEaygCACIIBEAgBygCACIJQQRrKAIAIgtBeHEhDiAOQQRBCCALQQNxIgsbIAhqSQ0HIAtBAEcgDiAIQSdqS3ENCCAJELwFCyAHQdgAaiEHIANBAWsiAw0ACwsgACgCyAEiAwRAIAVBBGsoAgAiB0F4cSEAIAAgA0HYAGwiA0EEQQggB0EDcSIHG2pJDQUgB0EARyAAIANBJ2pLcQ0GIAUQvAULIAogAkEBaiICRw0ACwsgBigCFCICBEAgBEEEaygCACIDQXhxIQAgACACQdgBbCICQQRBCCADQQNxIgMbakkNAyADQQBHIAAgAkEnaktxDQQgBBC8BQsgASgClAEiAigCACEAIAIgAEEBazYCACAAQQFGBEAgASgClAEQMAsCQCABKAJ8IgJBf0YNACABKAKAASEAIAEoAoQBIgMEQCAAIQcDQCAHEIEFIAdByAFqEIcEIAdB6AFqIQcgA0EBayIDDQALCyACRQ0AIABBBGsoAgAiBEF4cSEDIAMgAkHoAWwiAkEEQQggBEEDcSIEG2pJDQMgBEEARyADIAJBJ2pLcQ0EIAAQvAULIAFB8ABqEMIEIAZBwAtqJAAPC0EIEKcUAAsMAQtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQbjwyQBBAToAAAALQQEQpxQAC+40AQV/IwBBMGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEOIAAoAgBBgICAgHhzIgMgA0EWTxtBAWsOFQECAwQFBgcICQoLDA0ODxAREhMUFQALIAIgAEEIajYCDCABKAIAIgRB75HJAEEGIAEoAgQoAgwiBREAAARAQQEhAwwWCyAAQQRqIQACQCABLQAKQYABcUUEQEEBIQMgBEG0z8UAQQEgBREAAA0XIAAgARDGEEUNAQwXCyAEQZ3jwgBBAiAFEQAABEBBASEDDBcLQQEhAyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICAAIAJBIGoQxhANFiACKAIgQaSyyABBAiACKAIkKAIMEQAADRYLAkAgAS0ACkGAAXFFBEAgASgCAEGIs8kAQQIgASgCBCgCDBEAAARADBgLIAJBDGogARC/EEUNAQwXCyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQvxANFiACKAIgQaSyyABBAiACKAIkKAIMEQAADRYLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwVCyACIABBCGo2AgwgASgCACIEQciWyQBBCSABKAIEKAIMIgURAAAEQEEBIQMMFQsgAEEEaiEAAkAgAS0ACkGAAXFFBEBBASEDIARBtM/FAEEBIAURAAANFiAAIAEQxhBFDQEMFgsgBEGd48IAQQIgBREAAARAQQEhAwwWC0EBIQMgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgACACQSBqEMYQDRUgAigCIEGkssgAQQIgAigCJCgCDBEAAA0VCwJAIAEtAApBgAFxRQRAIAEoAgBBiLPJAEECIAEoAgQoAgwRAAAEQAwXCyACQQxqIAEQvxBFDQEMFgsgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEL8QDRUgAigCIEGkssgAQQIgAigCJCgCDBEAAA0VCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMFAsgAiAAQQhqNgIMIAEoAgAiBEGGl8kAQQggASgCBCgCDCIFEQAABEBBASEDDBQLIABBBGohAAJAIAEtAApBgAFxRQRAQQEhAyAEQbTPxQBBASAFEQAADRUgACABEMYQRQ0BDBULIARBnePCAEECIAURAAAEQEEBIQMMFQtBASEDIAJBAToAEyACQaDrwgA2AiQgAiABKQIANwIUIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAAgAkEgahDGEA0UIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANFAsCQCABLQAKQYABcUUEQCABKAIAQYizyQBBAiABKAIEKAIMEQAABEAMFgsgAkEMaiABEL8QRQ0BDBULIAJBAToAEyACQaDrwgA2AiQgAiABKQIANwIUIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAJBDGogAkEgahC/EA0UIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANFAsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDDBMLIAIgAEEIajYCDCABKAIAIgRBjpfJAEEQIAEoAgQoAgwiBREAAARAQQEhAwwTCyAAQQRqIQACQCABLQAKQYABcUUEQEEBIQMgBEG0z8UAQQEgBREAAA0UIAAgARDGEEUNAQwUCyAEQZ3jwgBBAiAFEQAABEBBASEDDBQLQQEhAyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICAAIAJBIGoQxhANEyACKAIgQaSyyABBAiACKAIkKAIMEQAADRMLAkAgAS0ACkGAAXFFBEAgASgCAEGIs8kAQQIgASgCBCgCDBEAAARADBULIAJBDGogARC/EEUNAQwUCyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQvxANEyACKAIgQaSyyABBAiACKAIkKAIMEQAADRMLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwSCyACIABBCGo2AgwgASgCACIEQZ6XyQBBCyABKAIEKAIMIgURAAAEQEEBIQMMEgsgAEEEaiEAAkAgAS0ACkGAAXFFBEBBASEDIARBtM/FAEEBIAURAAANEyAAIAEQxhBFDQEMEwsgBEGd48IAQQIgBREAAARAQQEhAwwTC0EBIQMgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgACACQSBqEMYQDRIgAigCIEGkssgAQQIgAigCJCgCDBEAAA0SCwJAIAEtAApBgAFxRQRAIAEoAgBBiLPJAEECIAEoAgQoAgwRAAAEQAwUCyACQQxqIAEQvxBFDQEMEwsgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEL8QDRIgAigCIEGkssgAQQIgAigCJCgCDBEAAA0SCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMEQsgAiAAQQhqNgIMIAEoAgAiBEGpl8kAQRMgASgCBCgCDCIFEQAABEBBASEDDBELIABBBGohAAJAIAEtAApBgAFxRQRAQQEhAyAEQbTPxQBBASAFEQAADRIgACABEMYQRQ0BDBILIARBnePCAEECIAURAAAEQEEBIQMMEgtBASEDIAJBAToAEyACQaDrwgA2AiQgAiABKQIANwIUIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAAgAkEgahDGEA0RIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANEQsCQCABLQAKQYABcUUEQCABKAIAQYizyQBBAiABKAIEKAIMEQAABEAMEwsgAkEMaiABEL8QRQ0BDBILIAJBAToAEyACQaDrwgA2AiQgAiABKQIANwIUIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAJBDGogAkEgahC/EA0RIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANEQsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDDBALIAIgAEEIajYCDCABKAIAIgRBvJfJAEECIAEoAgQoAgwiBREAAARAQQEhAwwQCyAAQQRqIQACQCABLQAKQYABcUUEQEEBIQMgBEG0z8UAQQEgBREAAA0RIAAgARDGEEUNAQwRCyAEQZ3jwgBBAiAFEQAABEBBASEDDBELQQEhAyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICAAIAJBIGoQxhANECACKAIgQaSyyABBAiACKAIkKAIMEQAADRALAkAgAS0ACkGAAXFFBEAgASgCAEGIs8kAQQIgASgCBCgCDBEAAARADBILIAJBDGogARC/EEUNAQwRCyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQvxANECACKAIgQaSyyABBAiACKAIkKAIMEQAADRALIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwPCyACIABBCGo2AgwgASgCACIEQb6XyQBBBSABKAIEKAIMIgURAAAEQEEBIQMMDwsgAEEEaiEAAkAgAS0ACkGAAXFFBEBBASEDIARBtM/FAEEBIAURAAANECAAIAEQxhBFDQEMEAsgBEGd48IAQQIgBREAAARAQQEhAwwQC0EBIQMgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgACACQSBqEMYQDQ8gAigCIEGkssgAQQIgAigCJCgCDBEAAA0PCwJAIAEtAApBgAFxRQRAIAEoAgBBiLPJAEECIAEoAgQoAgwRAAAEQAwRCyACQQxqIAEQvxBFDQEMEAsgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEL8QDQ8gAigCIEGkssgAQQIgAigCJCgCDBEAAA0PCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDgsgAiAAQQhqNgIMIAEoAgAiBEHC7cUAQQQgASgCBCgCDCIFEQAABEBBASEDDA4LIABBBGohAAJAIAEtAApBgAFxRQRAQQEhAyAEQbTPxQBBASAFEQAADQ8gACABEMYQRQ0BDA8LIARBnePCAEECIAURAAAEQEEBIQMMDwtBASEDIAJBAToAEyACQaDrwgA2AiQgAiABKQIANwIUIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAAgAkEgahDGEA0OIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANDgsCQCABLQAKQYABcUUEQCABKAIAQYizyQBBAiABKAIEKAIMEQAABEAMEAsgAkEMaiABEL8QRQ0BDA8LIAJBAToAEyACQaDrwgA2AiQgAiABKQIANwIUIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAJBDGogAkEgahC/EA0OIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANDgsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDDA0LIAIgAEEIajYCDCABKAIAIgRBxu3FAEEHIAEoAgQoAgwiBREAAARAQQEhAwwNCyAAQQRqIQACQCABLQAKQYABcUUEQEEBIQMgBEG0z8UAQQEgBREAAA0OIAAgARDGEEUNAQwOCyAEQZ3jwgBBAiAFEQAABEBBASEDDA4LQQEhAyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICAAIAJBIGoQxhANDSACKAIgQaSyyABBAiACKAIkKAIMEQAADQ0LAkAgAS0ACkGAAXFFBEAgASgCAEGIs8kAQQIgASgCBCgCDBEAAARADA8LIAJBDGogARC/EEUNAQwOCyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQvxANDSACKAIgQaSyyABBAiACKAIkKAIMEQAADQ0LIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwMCyACIABBBGo2AgxBASEDIAEoAgAiAEGAmskAQQQgASgCBCIFKAIMIgQRAAANCwJAIAEtAApBgAFxRQRAIABBtM/FAEEBIAQRAAANDSACQQxqIAEQvxBFDQEMDQsgAEGd48IAQQIgBBEAAA0MIAJBAToAEyACIAU2AhggAiAANgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQvxANDCACKAIgQaSyyABBAiACKAIkKAIMEQAADQwLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwLCyACIABBBGo2AgxBASEDIAEoAgAiAEHN7cUAQQcgASgCBCIFKAIMIgQRAAANCgJAIAEtAApBgAFxRQRAIABBtM/FAEEBIAQRAAANDCACQQxqIAEQvxBFDQEMDAsgAEGd48IAQQIgBBEAAA0LIAJBAToAEyACIAU2AhggAiAANgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQvxANCyACKAIgQaSyyABBAiACKAIkKAIMEQAADQsLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwKCyACIABBDGo2AiAgAUHU7cUAQQcgAEEEakH3ASAAQQhqQfcBIAJBIGpB+AEQhwohAwwJCyACIABBDGo2AiAgAUHb7cUAQQogAEEEakH3ASAAQQhqQfcBIAJBIGpB+AEQhwohAwwICyACIABBEGo2AiAgAUHJh8gAQQMgAEEMakH3ASAAQaUBIAJBIGpB+AEQhwohAwwHC0EBIQMgASgCACIEQcOXyQBBCyABKAIEIgYoAgwiBREAAA0GIABBBGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANCCAAIAEQjxFFDQEMCAsgBEGd48IAQQIgBREAAA0HIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQjxENByACKAIgQaSyyABBAiACKAIkKAIMEQAADQcLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwGCyACIABBCGo2AgwgASgCACIEQeXtxQBBByABKAIEKAIMIgURAAAEQEEBIQMMBgsgAEEEaiEAAkAgAS0ACkGAAXFFBEBBASEDIARBtM/FAEEBIAURAAANByAAIAEQxhBFDQEMBwsgBEGd48IAQQIgBREAAARAQQEhAwwHC0EBIQMgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgACACQSBqEMYQDQYgAigCIEGkssgAQQIgAigCJCgCDBEAAA0GCwJAIAEtAApBgAFxRQRAIAEoAgBBiLPJAEECIAEoAgQoAgwRAAAEQAwICyACQQxqIAEQvxBFDQEMBwsgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEL8QDQYgAigCIEGkssgAQQIgAigCJCgCDBEAAA0GCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBQsgAiAAQQhqNgIMIAEoAgAiBEHs7cUAQQogASgCBCgCDCIFEQAABEBBASEDDAULIABBBGohAAJAIAEtAApBgAFxRQRAQQEhAyAEQbTPxQBBASAFEQAADQYgACABEMYQDQYMAQsgBEGd48IAQQIgBREAAARAQQEhAwwGC0EBIQMgAkEBOgATIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgACACQSBqEMYQDQUgAigCIEGkssgAQQIgAigCJCgCDBEAAA0FCwJAIAEtAApBgAFxRQRAIAEoAgBBiLPJAEECIAEoAgQoAgwRAAAEQAwHCyACQQxqIAEQvxANBgwBCyACQQE6ABMgAkGg68IANgIkIAIgASkCADcCFCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQvxANBSACKAIgQaSyyABBAiACKAIkKAIMEQAADQULIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwECyACIABBBGo2AgxBASEDIAEoAgAiAEGhmskAQQMgASgCBCIFKAIMIgQRAAANAwJAIAEtAApBgAFxRQRAIABBtM/FAEEBIAQRAAANBSACQQxqIAEQvxANBQwBCyAAQZ3jwgBBAiAEEQAADQQgAkEBOgATIAIgBTYCGCACIAA2AhQgAkGg68IANgIkIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAJBDGogAkEgahC/EA0EIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANBAsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDDAMLIAIgAEEEajYCDEEBIQMgASgCACIAQbP/xgBBAyABKAIEIgUoAgwiBBEAAA0CAkAgAS0ACkGAAXFFBEAgAEG0z8UAQQEgBBEAAA0EIAJBDGogARC/EA0EDAELIABBnePCAEECIAQRAAANAyACQQE6ABMgAiAFNgIYIAIgADYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEL8QDQMgAigCIEGkssgAQQIgAigCJCgCDBEAAA0DCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMAgtBASEDIAEoAgAiBEH27cUAQQYgASgCBCIGKAIMIgURAAANASAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQMgACABEMUERQ0BDAMLIARBnePCAEECIAURAAANAiACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEMUEDQIgAigCIEGkssgAQQIgAigCJCgCDBEAAA0CCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMAQtBASEDIAEoAgAiBEH87cUAQQkgASgCBCIGKAIMIgURAAANACAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQIgACABEMUERQ0BDAILIARBnePCAEECIAURAAANASACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEMUEDQEgAigCIEGkssgAQQIgAigCJCgCDBEAAA0BCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMLIAJBMGokACADC8wxARB/IwBBoAtrIgkkACADKAKoASIMQQhqIAMoAqwBIgsQ9xAtAFghCiAJQRBqIAwgCxDODiAJKAIQIhIgCSgCFBCIDiENAkACQAJAAkACQAJAAkACQAJAAkAgCkECRwRAIAggCCgCRCIKQQFqNgJEIAlBADYCPCAJIAo2AkAgCUEIaiADKAKoASADKAKsARDhCSAJIAkoAgw2AkwgCSAJKAIIIgQ2AkggCUGACWogCUHIAGogCBChDSAJQQA2AvgGIAlCgICAgBA3AvAGIAkgCUFAazYCiAEgCSAJQYgBaq1CgICAgPAQhDcD0AIgCUHwBmpB4JLJAEGCgcAAIAlB0AJqELEJDQcgCSAJKAL4BjYC2AIgCSAJKQLwBjcD0AIgCSgCnAkiBUEASgRAIAkoAqAJIgxBBGsoAgAiDUF4cSELIAtBBEEIIA1BA3EiDRsgBWpJDQkgDUEARyALIAVBJ2pLcQ0KIAwQvAULIAlBnAlqIgUgCSkD0AI3AgAgBSAJKALYAjYCCCAJIAkpAoAJNwOIASAJIAkpAogJNwOQASAJIAkpApAJNwOYASAJIAkpApgJNwOgASAJIAkpAqAJNwOoASAJIAkpAqgJNwOwASAJIAkoArAJNgK4ASAEIAQoAgAiBUEBazYCACAFQQFGBEAgBBAwC0E0EJABIgRFDQogBCAJKAK4ATYCMCAEIAkpA7ABNwIoIAQgCSkDqAE3AiAgBCAJKQOgATcCGCAEIAkpA5gBNwIQIAQgCSkDkAE3AgggBCAJKQOIATcCACAJQfAGaiADKAKoASINIAMoAqwBIg4gBiAHIAogCBCZCiAJQX42AoQLIAlBfjYC+AogCUIENwPwCiAJQgA3A+gKIAlCgICAgMAANwPgCiAJQgg3A9gKIAlCADcD0AogCUKAgICAgAE3A8gKIAlCCDcDwAogCUIBNwO4CiAJIAQ2ArQKIAlBATYCsAogCUF9NgLoCSAJQX02AqAJIAlBfzYCkAkgCSAJKQL0BjcChAkgCSAJKAL8BjYCjAkgCSAJKALwBjYCgAkCQCADLQAgQf8BRwRAIAlB0AJqIANBIGoQhwMMAQsgCUH/AToA0AILIAlB8AZqIAlBgAlqIAlB0AJqIAogCBDACAJAIAkoApAHIgRBfUYNACAJQaAHahD/AiAEQQBMDQAgCSgClAciBkEEaygCACIHQXhxIQUgBUEEQQggB0EDcSIHGyAEakkNCSAHQQBHIAUgBEEnaktxDQogBhC8BQsgCUIBNwOwByAJQgE3A6gHIAlBAToAoAcgCUF+NgKQByAJQYAJaiIEIAlB8AZqQZAC/AoAACAJQdACaiAEQZAC/AoAACADKALAASIEIAMoAsQBIgdByAFsIgZqIRAgBCELAn8DQCALIQUgBkUEQEEAIQxBACEGQQQMAgsgBkHIAWshBiAFQcgBaiELIAUpAwBCBVINAAtBEBCQASIMRQ0CIAwgBUEIajYCACAJQQE2AogJIAkgDDYChAkgCUEENgKACUEBIQYDQCALIBBHBEAgCyIFQcgBaiELIAUpAwBCBVINASAJKAKACSAGRgRAIAlBgAlqIAZBAUEEQQQQsxEgCSgChAkhDAsgDCAGQQJ0aiAFQQhqNgIAIAkgBkEBaiIGNgKICQwBCwsgCSgCgAkhDCAJKAKECQshBSAHBEAgBSAGQQJ0aiEQIAQhCyAHIQYDQCALKQMAQgFYBEAgCUGACWoiEyAJQdACaiIRQZAC/AoAACAJIAs2ApALIBEgASATIAsgBSAQQQAgCiAIEFkLIAtByAFqIQsgBkEBayIGDQALCyAJQfAGaiAJQdACakGQAvwKAAAgDARAIAVBBGsoAgAiC0F4cSEGIAYgDEECdCIMQQRBCCALQQNxIgsbakkNCSALQQBHIAYgDEEnaktxDQogBRC8BQsgBwRAA0ACQCAEKQMAQgVSDQAgCUGACWoiBSAJQfAGaiIGQZAC/AoAACAJIARBCGoiCzYCkAsgASAEQdgAaigCACAEQdwAaigCABCcDg0AIAYgASAFIAtBACAKIAgQdQsgBEHIAWohBCAHQQFrIgcNAAsLIAlB4ARqIAlB8AZqQZAC/AoAACAJQYAJaiABIANBACAKIAgQ/gQgCSgC0AkiAUEASgRAIAkoAtQJIgRBBGsoAgAiBUF4cSEDIANBBEEIIAVBA3EiBRsgAWpJDQkgBUEARyADIAFBJ2pLcQ0KIAQQvAULIAlBDzYC2AkgCUHU48gANgLUCSAJQX82AtAJIAkoAqQGIgEgCSgCnAZGBEAgCUGcBmoQpRILIAkoAqAGIAFB4ABsaiAJQYAJakHgAPwKAAAgCSABQQFqNgKkBkGQAhCQASIERQ0KIAQgCUHgBGpBkAL8CgAAIAlBiAFqIA0gDhDwDSAJKAKQASEFIAkoAowBIQYgCSgCiAEhB0HgABCQASIDRQ0KIANBfjYCUCADQYgCOwEYIANBfjYCCCADQQI2AgAgAigC6AEiASACKALgAUYEQCACQeABahCrEgsgAiABQQFqNgLoASACKALkASABQcwAbGoiAUEBOgBIIAEgAzYCPCABQQM2AjggAUF+NgIsIAEgBTYCKCABIAY2AiQgASAHNgIgIAFBADYCHCABQoCAgIDAADcCFCABIAQ2AgggAUKBgICAIDcCACAAIAJBkAL8CgAAIBIgEigCACIAQQFrNgIAIABBAUcNBgwFCwJAIA1FBEAgCUGIAWogDCALEPANIAlBgAlqIAEgAyAGIAcgCBBEAkAgAykDEEIDUQ0AIAMpAwCnDQAgAygCfEF/Rw0AIAMoAogBQX9HDQAgBCAFRg0AAkACQCADLQAgQf8BRwRAIANBIGohAwNAAkAgBCgCACIGKAJUIAtHDQAgBi0AAEH/AUYNACAGIAMQoAQNAwsgBSAEQQRqIgRHDQALDAMLA0AgCyAEKAIAIgYoAlRGBEAgBi0AAEH/AUYNAwsgBSAEQQRqIgRHDQALDAILIAYoAlQhCwtBASEHIAZB0ABqKAIAIgQoAgAhAyAEIANBAWo2AgAgA0EASA0EAkAgCSgCkAEiA0UiBQ0AIAkoAowBIQggAxCQASIHRQ0GIAUNACAHIAggA/wKAAALIAkgAzYC+AYgCSAHNgL0BiAJIAM2AvAGIAlB0AJqIAEgBCALIAlB8AZqENIJIAkoAtACIgFBAEoEQCAJKALUAiABENkSCyAJQfAGaiAGQdAAaigCACAGQdQAaigCABCZDiAJKALECiIBIAkoArwKRgRAIAlBvApqEKUSCyAJKALACiABQeAAbGogCUHwBmpB4AD8CgAAIAkgAUEBajYCxAoLQZACEJABIgRFDQsgBCAJQYAJakGQAvwKAAAgCSgCkAEhBSAJKAKMASEGIAkoAogBIQdB4AAQkAEiA0UNCyADQX42AlAgA0GIAjsBGCADQX42AgggA0ECNgIADAELIAwgDCgCACIKQQFqNgIAIApBAEgNAiAJIAw2AhwgCSALNgIgIAggCCgCRCIQQQFqNgJEIAlBADYCJCAJIBA2AiggCCAIKAJEIhNBAWo2AkQgCUEANgIsIAkgEzYCMCAIIAgoAkQiCkEBajYCRCAJQQA2AjQgCSAKNgI4IAlBPGogDCALEPENIAlBgAlqIgogASADQQAgECAIEERBkAIQkAEiEUUNCiAJQTBqIQ0gESAKQZAC/AoAACAJQQA2AogJIAlCgICAgBA3AoAJAkAgCSgCLEEBRgRAIAkgDTYC0AIgCSAJQdACaq1CgICAgPAQhDcD8AYgCkHgkskAQZOBwAAgCUHwBmoQsQlFDQEMCQsgCSANNgLQAiAJIAlB0AJqrUKAgICA8BCENwPwBiAJQYAJakHgkskAQYKBwAAgCUHwBmoQsQkNCAsgCSgCiAkhFCAJKAKECSEWIAkoAoAJIRdB4AAQkAEiDkUNCiAJQShqIQogDkF+NgJQIA5BiAI7ARggDkF+NgIIIA5BAjYCACAJQYAJaiAJQRxqIAgQoQ0gCUEANgL4BiAJQoCAgIAQNwLwBgJAIAkoAiRBAUYEQCAJIAo2AogBIAkgCUGIAWqtQoCAgIDwEIQ3A9ACIAlB8AZqQeCSyQBBk4HAACAJQdACahCxCUUNAQwJCyAJIAo2AogBIAkgCUGIAWqtQoCAgIDwEIQ3A9ACIAlB8AZqQeCSyQBBgoHAACAJQdACahCxCQ0ICyAJIAkoAvgGNgLYAiAJIAkpAvAGNwPQAiAJKAKcCSIKQQBKBEAgCSgCoAkiGEEEaygCACIVQXhxIQ8gD0EEQQggFUEDcSIVGyAKakkNCSAVQQBHIA8gCkEnaktxDQogGBC8BQsgCUGcCWoiCiAJKQPQAjcCACAKIAkoAtgCNgIIIAkgCSkCgAk3A0ggCSAJKQKICTcDUCAJIAkpApAJNwNYIAkgCSkCmAk3A2AgCSAJKQKgCTcDaCAJIAkpAqgJNwNwIAkgCSgCsAk2AnhBNBCQASIKRQ0KIAogCSgCeDYCMCAKIAkpA3A3AiggCiAJKQNoNwIgIAogCSkDYDcCGCAKIAkpA1g3AhAgCiAJKQNQNwIIIAogCSkDSDcCACAJQX42AvgKIAlCCDcDwAogCUIBNwO4CiAJIAo2ArQKIAlBATYCsAogCUIINwPYCiAJQgA3A9AKIAlCgICAgIABNwPICiAJQX82AoAJIAlBfzYCkAkgCUF9NgKgCSAJQX02AugJIAlBfjYChAsgCUKAgICAwAA3A+AKIAlCADcD6AogCUIENwPwCiAJQQA2AvgGIAlCgICAgBA3AvAGAkAgCSgCLEEBRgRAIAkgDTYCiAEgCSAJQYgBaq1CgICAgPAQhDcD0AIgCUHwBmpB4JLJAEGTgcAAIAlB0AJqELEJRQ0BDAkLIAkgDTYCiAEgCSAJQYgBaq1CgICAgPAQhDcD0AIgCUHwBmpB4JLJAEGCgcAAIAlB0AJqELEJDQgLIAkgCSgC+AY2ApABIAkgCSkC8AY3A4gBIAlCj4CAgHA3ArwDIAlB1OPIADYCuAMgCUF/NgK0AyAJQX42AqgDIAlB/wE6APQDIAlBfDYC4AIgCUEAOgD8AyAJQQA7AfoDIAlBfjYC0AIgCUHAA2oQ1wUgCUEANgLAAyAJQX42AugDIAlCgICAgGA3A9gDIAlCgICAgMAANwPQAyAJIAkpA4gBNwLEAyAJIAkoApABNgLMA0GwARCQASIKRQ0KIAogCUHQAmpBsAH8CgAAIAlBvApqEKUSIAkoAsAKIg9BfjYCUCAPIAo2AgQgD0EDNgIAIAlBATYCxAogCUHwBmogCUGACWpBkAL8CgAAIAkoAtgIIg8gCSgC0AhGBEAgCUHQCGoQqxILIAkoAtQIIA9BzABsaiIKQQE6AEggCiAONgI8IApBAzYCOCAKQX42AiwgCiAUNgIoIAogFjYCJCAKIBc2AiAgCkEANgIcIApCgICAgMAANwIUIAogETYCCCAKQoGAgIAgNwIAIAkgD0EBajYC2AggCSgC8AYhDiAJQdACaiIRIAlB8AZqIg9BBHJBjAL8CgAAIAkgDCALEOEJIAkgCSgCBDYChAEgCSAJKAIAIgo2AoABIAlBiAFqIhQgCUGAAWogECAGIAcgCBCqCAJAIA5Bf0cEQCAJIA42AvAGIAkgCSkD0AI3AvQGIAkgCSgC2AI2AvwGIAlBgAlqIgcgDyAUEPQMIAkgCSkChAk3A9ACIAkgCSgCjAk2AtgCIAkoAoAJIQYgB0EEciARQYwC/AoAAAwBCyAJIAkpAowBNwPQAiAJIAkoApQBNgLYAiAJKAKIASEGIAlBgAlqQQRyIAlB0AJqQYwC/AoAAAsgCSAGNgKACSADQSBqIQ4CQCADLQAgIhBB/wFHBEAgCUHQAmogDhCHAwwBCyAJQf8BOgDQAgsgCUHwBmoiBiAJQYAJaiIHIAlB0AJqIhEgEyAIEMAIIAcgBiADIBMQ8QcgCUEANgL4BiAJQoCAgIAQNwLwBgJAIAkoAixBAUYEQCAJIA02AogBIAkgCUGIAWqtQoCAgIDwEIQ3A9ACIAZB4JLJAEGTgcAAIBEQsQlFDQEMCQsgCSANNgKIASAJIAlBiAFqrUKAgICA8BCENwPQAiAJQfAGakHgkskAQYKBwAAgCUHQAmoQsQkNCAsgCSAJKAL4BjYC2AIgCSAJKQLwBjcD0AIgCUHwBmoiBiAJQYAJaiIHIAMgCUHQAmogCBDnBCAHIAYgA0IAEPkHIAkoAoQLIgZBAEoEQCAJKAKICyIIQQRrKAIAIg1BeHEhByAHQQRBCCANQQNxIg0bIAZqSQ0JIA1BAEcgByAGQSdqS3ENCiAIELwFCyAJQQU2AowLIAlB4+PIADYCiAsgCUF/NgKECyAJQfAGaiAJQYAJakGQAvwKAAAgCiAKKAIAIgZBAWs2AgAgBkEBRgRAIAoQMAtBkAIQkAEiB0UNCiAJQThqIQYgByAJQfAGakGQAvwKAAAgCUEANgKICSAJQoCAgIAQNwKACQJAIAkoAjRBAUYEQCAJIAY2AogBIAkgCUGIAWqtQoCAgIDwEIQ3A9ACIAlBgAlqQeCSyQBBk4HAACAJQdACahCxCUUNAQwJCyAJIAY2AogBIAkgCUGIAWqtQoCAgIDwEIQ3A9ACIAlBgAlqQeCSyQBBgoHAACAJQdACahCxCQ0ICyAJKAKICSEIIAkoAoQJIQogCSgCgAkhDUE0EJABIgZFDQogBkF+NgIoIAYgCDYCJCAGIAo2AiAgBiANNgIcIAZBADYCGCAGQoCAgIDAADcCECAGIAc2AgQgBkECNgIAIAlBfjYC+AogCUIINwPACiAJQgE3A7gKIAkgBjYCtAogCUEBNgKwCiAJQgg3A9gKIAlCADcD0AogCUKAgICAgAE3A8gKIAlBfzYCgAkgCUF+NgKECyAJQgQ3A/AKIAlCADcD6AogCUKAgICAwAA3A+AKIAlBfTYC6AkgCUF9NgKgCSAJQX82ApAJIAlBiAFqIgcQvQ5ByAEQkAEiBkUNCiAGIAdByAH8CgAAIAlBvApqEKUSIAkoAsAKIgdBfjYCUCAHIAY2AgQgB0EGNgIAIAlBATYCxAogCSgChAshBiAJQdACaiAJQYAJakGEAvwKAAAgBkEASgRAIAkoAogLIghBBGsoAgAiCkF4cSEHIAdBBEEIIApBA3EiChsgBmpJDQkgCkEARyAHIAZBJ2pLcQ0KIAgQvAULIAlBgAlqIAlB0AJqQYQC/AoAACAJQQU2AowLIAlB6OPIADYCiAsgCUF/NgKECwJAIAQgBUYNACADKQMQQgNRDQAgAykDAKcNACADKAJ8QX9HDQAgAygCiAFBf0cNAAJAAkAgEEH/AUcEQANAAkAgBCgCACIHKAJUIAtHDQAgBy0AAEH/AUYNACAHIA4QoAQNAwsgBSAEQQRqIgRHDQAMBAsACwNAIAsgBCgCACIHKAJURgRAIActAABB/wFGDQMLIAUgBEEEaiIERw0ACwwCCyAHKAJUIQsLQQEhCCAHQdAAaigCACIEKAIAIQMgBCADQQFqNgIAIANBAEgNAwJAIAkoAkQiA0UiBQ0AIAkoAkAhBiADEJABIghFDQYgBQ0AIAggBiAD/AoAAAsgCSADNgLYAiAJIAg2AtQCIAkgAzYC0AIgCUGIAWogASAEIAsgCUHQAmoQ0gkgCSgCiAEiAUEASgRAIAkoAowBIgRBBGsoAgAiBUF4cSEDIANBBEEIIAVBA3EiBRsgAWpJDQogBUEARyADIAFBJ2pLcQ0LIAQQvAULIAlB0AJqIAdB0ABqKAIAIAdB1ABqKAIAEJkOIAkoAsQKIgEgCSgCvApGBEAgCUG8CmoQpRILIAkoAsAKIAFB4ABsaiAJQdACakHgAPwKAAAgCSABQQFqNgLECgtBkAIQkAEiBEUNCiAEIAlBgAlqQZAC/AoAACAJKAJEIQUgCSgCQCEGIAkoAjwhB0HgABCQASIDRQ0KIANBfjYCUCADQYgCOwEYIANBfjYCCCADQQI2AgAgDCAMKAIAIgFBAWs2AgAgAUEBRgRAIAwQMAsLIAIoAugBIgEgAigC4AFGBEAgAkHgAWoQqxILIAIgAUEBajYC6AEgAigC5AEgAUHMAGxqIgFBAToASCABIAM2AjwgAUEDNgI4IAFBfjYCLCABIAU2AiggASAGNgIkIAEgBzYCICABQQA2AhwgAUKAgICAwAA3AhQgASAENgIIIAFCgYCAgCA3AgAgACACQZAC/AoAACASIBIoAgAiAEEBazYCACAAQQFGDQQMBQtBBBCnFAALAAtBARCnFAALQQEQpxQACyASEDALIAlBoAtqJAAPC0HwtckAQTcgCUGfC2pB+JLJAEGotskAENoSAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQbjwyQBBAToAAAAL1yoCBH4efyMAQbAKayIIJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEpAwAiBEIAUgRAIAEpAwgiBlANASABKQMQIgVQDQIgBCAFfCIDIAVUDQMgBCAGVA0EIAEsABohFyABLgEYIQ8gCCAENwMIIAhBAUECIARCgICAgBBUGzYCqAEgCEEIaiIJQQhqQQBBmAH8CwAgCCAGNwOwASAIQQFBAiAGQoCAgIAQVBs2AtACIAhBsAFqIgdBCGpBAEGYAfwLACAIIAU3A9gCIAhBAUECIAVCgICAgBBUGzYC+AMgCEHYAmoiCkEIakEAQZgB/AsAIAhBgARqQQBBnAH8CwAgCEEBNgL8AyAIQQE2ApwFIA+sIANCAX15fULCmsHoBH5CgKHNoLQCfEIgiKciAcEhFAJAIA9BAE4EQCAJIA8QmwkaIAcgDxCbCRogCiAPEJsJGgwBCyAIQfwDakEAIA9rwRCbCRoLAkAgFEEASARAIAhBCGpBACAUa0H//wNxIgEQwAQgCEGwAWogARDABCAIQdgCaiABEMAEDAELIAhB/ANqIAFB//8BcRDABAsgCEGMCWogCEEIakGkAfwKAAAgCCgC+AMiCiAIKAKsCiIBIAEgCkkbIg1BKEsNBQJAIA1FBEBBACENDAELQQAhBwJAAkAgDUEBRwRAIA1BAXEgDUE+cSEPIAhBjAlqIQEgCEHYAmohDANAIAEgDCgCACIJIAEoAgBqIhAgB0EBcWoiBzYCACAHIBBJIAkgEEtyIAxBBGooAgAiByABQQRqIgkoAgBqIhFqIRAgCSAQNgIAIBAgEUkgByARS3IhByAMQQhqIQwgAUEIaiEBIA8gDkECaiIORw0AC0UNAQsgDkECdCIJIAhBjAlqaiIBIAcgCEHYAmogCWooAgAiByABKAIAaiIJaiIBNgIAIAcgCUsNASABIAlJDQEMAgsgB0UNAQsgDUEoRg0MIAhBjAlqIA1BAnRqQQE2AgAgDUEBaiENCyAIIA02AqwKIA0gCCgCnAUiFSANIBVLGyIBQSlPDQwgAUECdCEBIAhBiAlqIQkCQAJ/A0BBACABRQ0BGiABIAlqIQcgAUEEayIBIAhB/ANqaigCACIPIAcoAgAiB0YNAAsgByAPSSAHIA9LawsgF04EQAJAAkACQAJAIAgoAqgBIgdBKE0EQCAHRQRAQQAhBwwFCyAHQQJ0Ig9BBGsiCUECdkEBaiIBQQNxIQsgCUEMTw0BQgAhAyAIQQhqIQEMAgtBACAHQShB8OrCABCHDgALIAFB/P///wdxIQxCACEDIAhBCGohAQNAIAEgATUCAEIKfiADfCIDPgIAIAFBBGoiCTUCAEIKfiADQiCIfCEDIAkgAz4CACABQQhqIgk1AgBCCn4gA0IgiHwhAyAJIAM+AgAgAUEMaiIJNQIAQgp+IANCIIh8IQMgCSADPgIAIANCIIghAyABQRBqIQEgDEEEayIMDQALIAtFDQELIAtBAnQhDANAIAEgATUCAEIKfiADfCIDPgIAIAFBBGohASADQiCIIQMgDEEEayIMDQALCyADUA0AIAdBKEYNDiAIQQhqIA9qIAM+AgAgB0EBaiEHCyAIIAc2AqgBIAgCfwJAAkACQCAIKALQAiIJQShNBEBBACEPQQAgCUUNBBogCUECdCIQQQRrIgtBAnZBAWoiAUEDcSERIAtBDE8NAUIAIQMgCEGwAWohAQwCC0EAIAlBKEHw6sIAEIcOAAsgAUH8////B3EhDEIAIQMgCEGwAWohAQNAIAEgATUCAEIKfiADfCIDPgIAIAFBBGoiCzUCAEIKfiADQiCIfCEDIAsgAz4CACABQQhqIgs1AgBCCn4gA0IgiHwhAyALIAM+AgAgAUEMaiILNQIAQgp+IANCIIh8IQMgCyADPgIAIANCIIghAyABQRBqIQEgDEEEayIMDQALIBFFDQELIBFBAnQhDANAIAEgATUCAEIKfiADfCIDPgIAIAFBBGohASADQiCIIQMgDEEEayIMDQALCyAJIANQDQAaIAlBKEYNDiAIQbABaiAQaiADPgIAIAlBAWoLNgLQAiAKBEAgCkECdCIPQQRrIglBAnZBAWoiAUEDcSELAkACQCAJQQxJBEBCACEDIAhB2AJqIQEMAQsgAUH8////B3EhDEIAIQMgCEHYAmohAQNAIAEgATUCAEIKfiADfCIDPgIAIAFBBGoiCTUCAEIKfiADQiCIfCEDIAkgAz4CACABQQhqIgk1AgBCCn4gA0IgiHwhAyAJIAM+AgAgAUEMaiIJNQIAQgp+IANCIIh8IQMgCSADPgIAIANCIIghAyABQRBqIQEgDEEEayIMDQALIAtFDQELIAtBAnQhDANAIAEgATUCAEIKfiADfCIDPgIAIAFBBGohASADQiCIIQMgDEEEayIMDQALCyADUARAIAggCiIPNgL4AwwDCyAKQShGDQ4gCEHYAmogD2ogAz4CACAKQQFqIQ8LIAggDzYC+AMMAQsgFEEBaiEUIAgoAqgBIQcgCiEPCyAIQaAFaiILIAhB/ANqIhBBpAH8CgAAIAtBARCbCSEZIAhBxAZqIgkgEEGkAfwKAAAgCUECEJsJIRogCEHoB2oiASAQQaQB/AoAAAJAAkAgAUEDEJsJIh4oAqABIhggByAHIBhJGyIKQShNBEAgEEEEayEfIAhBiAlqISAgC0EEayEhIAlBBGshIiABQQRrISMgGSgCoAEhGyAaKAKgASEcQQAhCQNAIAkhESAKQQJ0IQECfwJAA0AgAUUNASABICNqIQkgAUEEayIBIAhBCGpqKAIAIgsgCSgCACIJRg0AC0EAIAkgC0sNARoLAkAgCkUNAEEBIQdBACEOAkAgCkEBRwRAIApBAXEgCkE+cSELIAhBCGohASAIQegHaiEMA0AgASABKAIAIgkgDCgCAEF/c2oiDSAHQQFxaiIHNgIAIAcgDUkgCSANS3IgAUEEaiIJKAIAIgcgDEEEaigCAEF/c2oiEmohDSAJIA02AgAgDSASSSAHIBJLciEHIAxBCGohDCABQQhqIQEgCyAOQQJqIg5HDQALRQ0BCyAOQQJ0IgkgCEEIamoiASgCACELIAEgByALIAkgHmooAgBBf3NqIgdqIgE2AgAgByALSQ0BIAEgB0kNAQwVCyAHRQ0UCyAIIAo2AqgBIAohB0EICyETIBwgByAHIBxJGyIKQSlPDQ4gCkECdCEBAkACQANAIAFFDQEgASAiaiEJIAFBBGsiASAIQQhqaigCACILIAkoAgAiCUYNAAsgCSALTQ0AIAchCgwBCwJAIApFDQBBASEHQQAhDgJAIApBAUcEQCAKQQFxIApBPnEhCyAIQQhqIQEgCEHEBmohDANAIAEgASgCACIJIAwoAgBBf3NqIg0gB0EBcWoiBzYCACAHIA1JIAkgDUtyIAFBBGoiCSgCACIHIAxBBGooAgBBf3NqIhJqIQ0gCSANNgIAIA0gEkkgByASS3IhByAMQQhqIQwgAUEIaiEBIAsgDkECaiIORw0AC0UNAQsgDkECdCIJIAhBCGpqIgEoAgAhCyABIAcgCyAJIBpqKAIAQX9zaiIHaiIBNgIAIAcgC0kNASABIAdJDQEMFQsgB0UNFAsgCCAKNgKoASATQQRyIRMLIBsgCiAKIBtJGyILQSlPDREgC0ECdCEBAkACQANAIAFFDQEgASAhaiEHIAFBBGsiASAIQQhqaigCACIJIAcoAgAiB0YNAAsgByAJTQ0AIAohCwwBCwJAIAtFDQBBASEHQQAhDgJAIAtBAUcEQCALQQFxIAtBPnEhCSAIQQhqIQEgCEGgBWohDANAIAEgB0EBcSABKAIAIgcgDCgCAEF/c2oiDWoiCjYCACAKIA1JIAcgDUtyIAFBBGoiBygCACIKIAxBBGooAgBBf3NqIhJqIQ0gByANNgIAIA0gEkkgCiASS3IhByAMQQhqIQwgAUEIaiEBIAkgDkECaiIORw0AC0UNAQsgDkECdCIKIAhBCGpqIgEoAgAhCSABIAkgCiAZaigCAEF/c2oiCiAHaiIBNgIAIAkgCksNASABIApJDQEMFQsgB0UNFAsgCCALNgKoASATQQJqIRMLIBUgCyALIBVJGyIKQSlPDQ4gCkECdCEBAkACQANAIAFFDQEgAUEEayIBIAhBCGpqKAIAIgkgASAIQfwDamooAgAiB0YNAAsgByAJTQ0AIAshCgwBCwJAIApFDQBBASEHQQAhDgJAIApBAUcEQCAKQQFxIApBPnEhCyAIQQhqIQEgCEH8A2ohDANAIAEgASgCACIJIAwoAgBBf3NqIg0gB0EBcWoiBzYCACAHIA1JIAkgDUtyIAFBBGoiCSgCACIHIAxBBGooAgBBf3NqIhJqIQ0gCSANNgIAIA0gEkkgByASS3IhByAMQQhqIQwgAUEIaiEBIAsgDkECaiIORw0AC0UNAQsgDkECdCIJIAhBCGpqIgEoAgAhCyABIAcgCyAIQfwDaiAJaigCAEF/c2oiB2oiATYCACAHIAtJDQEgASAHSQ0BDBULIAdFDRQLIAggCjYCqAEgE0EBaiETCyARQRFGDQogAiARaiATQTBqOgAAIAgoAtACIhAgCiAKIBBJGyIBQSlPDRAgEUEBaiEJIAFBAnQhAQJ/A0BBACABRQ0BGiABQQRrIgEgCEEIamooAgAiCyABIAhBsAFqaigCACIHRg0ACyAHIAtJIAcgC0trCyEkIAhBjAlqIAhBCGpBpAH8CgAAIA8gCCgCrAoiASABIA9JGyILQShLDRECQCALRQRAQQAhCwwBC0EAIQdBACEOAkACQCALQQFHBEAgC0EBcSALQT5xIRIgCEGMCWohASAIQdgCaiEMA0AgASAMKAIAIg0gASgCAGoiFiAHQQFxaiIHNgIAIAcgFkkgDSAWS3IgDEEEaigCACIHIAFBBGoiDSgCAGoiHWohFiANIBY2AgAgFiAdSSAHIB1LciEHIAxBCGohDCABQQhqIQEgEiAOQQJqIg5HDQALRQ0BCyAOQQJ0Ig4gCEGMCWpqIgEgByAIQdgCaiAOaigCACIHIAEoAgBqIg5qIgE2AgAgByAOSw0BIAEgDkkNAQwCCyAHRQ0BCyALQShGDRAgCEGMCWogC0ECdGpBATYCACALQQFqIQsLIAggCzYCrAogCyAVIAsgFUsbIgFBKU8NECABQQJ0IQECfwNAQQAgAUUNARogASAgaiELIAEgH2ogAUEEayEBKAIAIg4gCygCACIHRg0ACyAHIA5JIAcgDktrCyEBIBcgJEoNAiABIBdIDQNBACEOIAgCf0EAIApFDQAaIApBAnQiC0EEayIHQQJ2QQFqIgFBA3EhEQJAAkAgB0EMSQRAQgAhAyAIQQhqIQEMAQsgAUH8////B3EhDEIAIQMgCEEIaiEBA0AgASABNQIAQgp+IAN8IgM+AgAgAUEEaiIHNQIAQgp+IANCIIh8IQMgByADPgIAIAFBCGoiBzUCAEIKfiADQiCIfCEDIAcgAz4CACABQQxqIgc1AgBCCn4gA0IgiHwhAyAHIAM+AgAgA0IgiCEDIAFBEGohASAMQQRrIgwNAAsgEUUNAQsgEUECdCEMA0AgASABNQIAQgp+IAN8IgM+AgAgAUEEaiEBIANCIIghAyAMQQRrIgwNAAsLIAogA1ANABogCkEoRg0QIAhBCGogC2ogAz4CACAKQQFqCyIHNgKoAQJAIBBFDQAgEEECdCILQQRrIgpBAnZBAWoiAUEDcSERAkACQCAKQQxJBEBCACEDIAhBsAFqIQEMAQsgAUH8////B3EhDEIAIQMgCEGwAWohAQNAIAEgATUCAEIKfiADfCIDPgIAIAFBBGoiCjUCAEIKfiADQiCIfCEDIAogAz4CACABQQhqIgo1AgBCCn4gA0IgiHwhAyAKIAM+AgAgAUEMaiIKNQIAQgp+IANCIIh8IQMgCiADPgIAIANCIIghAyABQRBqIQEgDEEEayIMDQALIBFFDQELIBFBAnQhDANAIAEgATUCAEIKfiADfCIDPgIAIAFBBGohASADQiCIIQMgDEEEayIMDQALCyADUARAIBAhDgwBCyAQQShGDRAgCEGwAWogC2ogAz4CACAQQQFqIQ4LIAggDjYC0AICQCAPRQRAQQAhDwwBCyAPQQJ0IgtBBGsiCkECdkEBaiIBQQNxIRACQAJAIApBDEkEQEIAIQMgCEHYAmohAQwBCyABQfz///8HcSEMQgAhAyAIQdgCaiEBA0AgASABNQIAQgp+IAN8IgM+AgAgAUEEaiIKNQIAQgp+IANCIIh8IQMgCiADPgIAIAFBCGoiCjUCAEIKfiADQiCIfCEDIAogAz4CACABQQxqIgo1AgBCCn4gA0IgiHwhAyAKIAM+AgAgA0IgiCEDIAFBEGohASAMQQRrIgwNAAsgEEUNAQsgEEECdCEMA0AgASABNQIAQgp+IAN8IgM+AgAgAUEEaiEBIANCIIghAyAMQQRrIgwNAAsLIANQDQAgD0EoRg0QIAhB2AJqIAtqIAM+AgAgD0EBaiEPCyAIIA82AvgDIBggByAHIBhJGyIKQSlJDQALCwwMCyABIBdODQkgCEEIaiIKQQEQmwkaIBUgCCgCqAEiASABIBVJGyIBQSlPDQ0gAUECdCEBIApBBGshECAIQfgDaiELA0AgAUUNASABIAtqIQ8gASAQaiABQQRrIQEoAgAiByAPKAIAIgpGDQALIAcgCkkNCQsgAiAJaiAJIQECQANAIAEiCkUNASACIAFBAWsiAWoiDy0AACIHQTlGDQALIA8gB0EBajoAACAJIAprIgFFDQkgAiAKakEwIAH8CwAMCQsgAkExOgAAIBEEQCACQQFqQTAgEfwLAAsgEUEPSw0HQTA6AAAgFEEBaiEUIBFBAmohCQwJC0HwjMQAQRxB2JHEABCvFAALQeyNxABBHUHokcQAEK8UAAtBnI7EAEEcQfiRxAAQrxQAC0Hwj8QAQTZByJLEABCvFAALQaiPxABBN0G4ksQAEK8UAAtBACANQShB8OrCABCHDgALQRFBEUGIksQAEIUTAAsgCUERQZiSxAAQhRMACyARQRBNDQBBACAJQRFBqJLEABCHDgALIAAgFDsBCCAAIAk2AgQgACACNgIAIAhBsApqJAAPC0EAIApBKEHw6sIAEIcOAAtBKEEoQfDqwgAQhRMAC0EAIAFBKEHw6sIAEIcOAAtBACALQShB8OrCABCHDgALQdPqwgBBGkHw6sIAEK8UAAv7OQIkfwR+IwBB8AlrIgUkACACKAIEIhUgAigCCCIdQcACbCIbaiEfIAUCfkHQ8MkALQAABEBByPDJACkDACEqQcDwyQApAwAMAQsgBUG4AWoQuxFB0PDJAEEBOgAAQcjwyQAgBSkDwAEiKjcDACAFKQO4AQsiKTcDsAVBwPDJACApQgF8NwMAIAUgHzYC5AUgBSAVNgLgBSAFQQA2AtAFIAVBADYCwAUgBSAqNwO4BSAFQZCpyQApAwA3A6AFIAVBmKnJACkDADcDqAUgBUGoCWogBUGgBWoiBxDJBAJAAkACQAJAIAUoAqgJQQJHBEBB0AAQkAEiDEUNAyAMIAUoArgJNgIQIAwgBSkCsAk3AgggDCAFKQKoCTcCACAFQQE2AsgHIAUgDDYCxAcgBUEENgLAByAFQbgBaiAHQcgA/AoAAEEUIQZBASEHA0AgBUGACGogBUG4AWoQyQQgBSgCgAhBAkYNAiAFKALAByAHRgRAQQAhDiAFKALYAQRAIAUoAuQBIAUoAtwBa0EUbiEOCyAFQcAHaiAHQQFBAiAFKALEARtBASAFKALoAQR/IAUoAvQBIAUoAuwBa0EUbiAOcgUgDgsbQQRBFBCzESAFKALEByEMCyAGIAxqIg4gBSgCkAg2AhAgDiAFKQKICDcCCCAOIAUpAoAINwIAIAUgB0EBaiIHNgLIByAGQRRqIQYMAAsACyAFQaAFahC4B0EEIQxBACEHDAELIAVBuAFqELgHIAUoAsAHIRYgB0ECSQRAQQEhBwwBCyAHQRVPBEAjAEGAIGsiCCQAAkACQAJAAkBBgLUYIAcgB0GAtRhPGyIPIAcgB0EBdmsiBiAGIA9JGyIPQc0BTwRAIAZB58yZM08NAiAPQRRsIgoQkAEiBkUNByAMIAcgBiAPIAdBwQBJEM4BIAZBBGsoAgAiE0F4cSEPIA9BBEEIIBNBA3EiExsgCmpJDQMgE0EARyAPIApBJ2pLcQ0EIAYQvAUMAQsgDCAHIAhBzAEgB0HBAEkQzgELIAhBgCBqJAAMBAsQnhUAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsjAEEQayIRJAAgDEEUaiEGIAwgB0EUbGohICAMIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgEUEIaiAGIgoQ8A4gESgCCCARKAIMIQYgESAIEPAOIBEoAgAgBiARKAIEIg8gBiAPSRsQjxMiEiAGIA9rIBIbQQBIBEAgCikCCCIpQiCIpyESIAooAgQhECAIKAIUIiFBAUchHCAKKAIQIhhBoAJqIRogGEGcAmohDSAppyIXQdQAbCEiIBMhDwJ/A0AgDCAPaiIJQSRqIAkoAhA2AgAgCUEcaiAJKQIINwIAIAlBFGogCSkCADcCACAMIA9FDQEaAkAgHEUEQCAaKAIAIgYgEE0NBiANKAIAIBBBJGxqIgZBIGooAgAiCCAXTQ0HIAZBHGooAgAgImoiCCgCAEGAgICAeEcNCCASIgYgCCgCJCILSQ0BIAYgC0GkvsQAEIUTAAsgGCgCECIGIBBNDQsgGCgCDCAQQeQAbGoiBigCVCIIIBooAgAiC08NCCAGKAJYIgsgDSgCACAIQSRsaiIIQSBqKAIAIhlPDQkgCEEcaigCACALQdQAbGoiCCgCAEGCgICAeEcNCiAGKAJcIgYgCCgCJCILTw0MCyAJQRBrKAIAIQsgCCgCICAGQdwAbGoiBigCICAGKAIkIRkCQCAJQRRrKAIAQQFGBEAgCUEEaygCACIIQaACaigCACIGIAtNDQ4gCUEMaygCACIGIAhBnAJqKAIAIAtBJGxqIghBIGooAgAiC08NDyAIQRxqKAIAIAZB1ABsaiIIKAIAQYCAgIB4Rw0QIAlBCGsoAgAiBiAIKAIkIglJDQEgBiAJQaS+xAAQhRMACyAJQQRrKAIAIgYoAhAiCCALTQ0TIAYoAgwgC0HkAGxqIgkoAlQiCCAGKAKgAiILTw0QIAkoAlgiCyAGKAKcAiAIQSRsaiIGQSBqKAIAIghPDREgBkEcaigCACALQdQAbGoiCCgCAEGCgICAeEcNEiAJKAJcIgYgCCgCJCIJTw0UCyAPQRRrIQ8gCCgCICAGQdwAbGoiCCgCJCEGIAgoAiAgGSAGIAYgGUsbEI8TIgggGSAGayAIG0EASA0ACyAMIA9qQRRqCyIGIBg2AhAgBiApNwIIIAYgEDYCBCAGICE2AgALIBNBFGohEyAgIAoiCEEUaiIGRw0ACyARQRBqJAAMEAsgECAGQZS+xAAQhRMACyAXIAhBlL7EABCFEwALQZS+xAAQnRUACyAIIAtB1LjEABCFEwALIAsgGUHUuMQAEIUTAAtB1LjEABCdFQALIBAgBkHk9sgAEIUTAAsgBiALQeS4xAAQhRMACyALIAZBlL7EABCFEwALIAYgC0GUvsQAEIUTAAtBlL7EABCdFQALIAggC0HUuMQAEIUTAAsgCyAIQdS4xAAQhRMAC0HUuMQAEJ0VAAsgCyAIQeT2yAAQhRMACyAGIAlB5LjEABCFEwALCwJAAkACQAJAAkACQAJAAkACQCAHQf///w9LDQAgB0EHdCIGQfn///8HTw0AAkAgBkUEQEEIIQ8MAQsgByEkIAYQkAEiD0UNBAsgBwRAIAdBFGwhCyAFQcAHaq1CgICAgNABhCEpIAVBpAVqIQogBUGECGohEyAFQZACaiEUIA8hBiAMIQcDQCAFIAcoAhA2ApAIIAUgBykCCDcDiAggBSAHKQIANwOACCAFQThqIAVBgAhqEPAOIAUgBSkDODcCwAcgBSApNwOwBSAFQrzsxoDQATcDqAUgBUKc3sWA0AE3A6AFIAVBqAlqQa+AwAAgBUGgBWoiCBC4DAJAAkACQAJAAn8gBSgCgAhBAUYEQCAKIBMoAgg2AgggCiATKQIANwIAIAUgBSgCkAgiCUEIajYCoAUgBUEoaiAIEOoJIAUoAiwhDiAFKAIoDAELIAUoAoQIIgggBSgCkAgiCSgCECISTw0BIAkoAgwgCEHkAGxqIhIoAgAEQCASKAIEIgggCSgCcE8NAyAJKAJsIAhBBHRqIggoAgghDiAIKAIEDAELIAVBMGogCUEIaiAIENAQIAUoAjQhDiAFKAIwCyEIIA5BAEgNBiAORQRAQQEhEQwECyAOEJABIhFFDQIgDkUNAyARIAggDvwKAAAMAwsgCCASQeT2yAAQhRMAC0GkuMQAEJ0VAAtBARCnFAALQfAAEJABIghFDQogCEEHNgIQIAhBiNbFADYCDCAIQX82AgggCEIFNwMAIBQgBSkCqAk3AgAgFCAFKAKwCTYCCCAJIAkoAgAiEkEBazYCACASQQFGBEAgBSgCkAgQMAsgB0EUaiEHIAZCDzcDACAGQRRqIAg2AgAgBkEQaiAONgIAIAZBDGogETYCACAGQQhqIA42AgAgBkEYaiAFQbgBakHkAPwKAAAgBkGAAWohBiAeQQFqIR4gC0EUayILDQALCyAWBEAgDEEEaygCACIGQXhxIQcgByAWQRRsIg5BBEEIIAZBA3EiBhtqSQ0HIAZBAEcgByAOQSdqS3ENCCAMELwFC0EAIQcDQCAHIBtGIiNFBEAgBUG4AWogByAVahDzDCAFKAK4ASIGKALwAiAGKAL0AigCzAERBwAhDiAGIAYoAgAiBkEBazYCACAGQQFGBEAgBSgCuAEQMAsgB0HAAmohByAODQELCyACKAIAISAgBUF/NgKoASAgQcACbCIbQZABbiEhIBUiDCENIB1FDQQgBUHoCWqtQoCAgIDQAYQhKiAFQYAIaiICrUKAgICA0AGEISwgBUHICGohHSACQQhqIRcgBUHIBmohJSAFQagFaiEmA0AgBUG4AWoiByAMIgJBwAL8CgAAIAJBwAJqIQwCQCAFKQO4AUIEUgRAIAcQmgEMAQsgBSkDwAEiKUICUQ0AICYgAkEQakHwAfwKAAAgBSApNwOgBSAFQSBqIAEQhAYgBSAFKAIkNgK8ASAFIAUoAiAiCjYCuAEgBUG4AWoiBxDBEiAFQRhqIAUoAsgGIgJBCGogBSgCzAYiBhDRECAFIAUpAxg3AoAIIAUgLDcDyAEgBUK87MaA0AE3A8ABIAVCrN7FgNABNwO4ASAFQZwHakGvgMAAIAcQuAwgBUGoB2ogAiAGEPEEIAUoAqwHIQIgBSgCsAchCCAHICUQmBEgBSgCwAEiBiAIIAYgCEkbIhNBgICAIE8NAiAKQX5xIRkgBSgCvAEiEiAGQRRsaiERIAUoArgBIRoCfyATRQRAQQQhECASIQhBAAwBCyATQQV0IgcQkAEiEEUNDEEAIQkgEyEKIBIhCANAAn8gCCARRgRAQQIhGCARDAELIAgoAgAhGCAFIAgoAgw2AsABIAUgCCkCBDcDuAEgCCgCECEOIAhBFGoLIQggBSAFKALAATYCyAcgBSAFKQO4ATcDwAcgBUEQaiACEPAOIAUgBSkDEDcC6AkgBSAqNwPIASAFQrzsxoDQATcDwAEgBUKc3sWA0AE3A7gBIAVBgAhqQa+AwAAgBUG4AWoiBhC4DCAGIAIQmA4gBSgCuAFBAnQoAozESSEGIAUtANgBQQJGBEBBCBCQASIHRQ0PIAcgBjYCAEEFIQYLIAUpAoQIISkgBSgCgAghFiAFKALEASIcKAIAIQsgHCALQQFrNgIAIAtBAUYEQCAFKALEARAwCwJAIAUoAsgBIgtFDQAgCyALKAIAIgtBAWs2AgAgC0EBRw0AIAUoAsgBIAUoAswBELYQCwJ/IBlBAkYEQCAGIQsgByEGQQwMAQsgFq0gKUIgiKchFEEaIQsgByEWIClCIIaEISlBAAshHCAOIA4oAgAiB0EBajYCACAHQQBIDQZBMBCQASIHRQ0OIAcgFDYCHCAHICk3AhQgByAWNgIQIAcgBjYCDCAHIAs2AgggB0ECNgIEIAcgHDoAACAFIAUpA8AHNwO4ASAFIAUoAsgHNgLAASAOIA4oAgAiBkEBazYCACAGQQFGBEAgDhAwCyACQRRqIQIgCSAQaiIGIBg2AgAgBkEEaiAFKQO4ATcCACAGQQxqIAUoAsABNgIAIAZBHGpBATYCACAGQRhqIAc2AgAgBkEUakEBNgIAIAZBEGogDjYCACAJQSBqIQkgCkEBayIKDQALIBEgCGtBFG4hBiATCyECIAggEUcEQCAIQRBqIQcDQCAHKAIAIgooAgAhCCAKIAhBAWs2AgAgCEEBRgRAIAcoAgAQMAsgB0EUaiEHIAZBAWsiBg0ACwsgGgRAIBJBBGsoAgAiBkF4cSEHIAcgGkEUbCIIQQRBCCAGQQNxIgYbakkNCSAGQQBHIAcgCEEnaktxDQogEhC8BQsgBSATNgK8ByAFIBA2ArgHIAUgAjYCtAcgBUG4AWoiAiAFQaAFakH4AfwKAAAgBUGACGogAiAFQbQHaiAZQQJHIAMgBBAqIAUgFykDADcDwAcgBSAXKQMINwPIByAFIBcpAxA3A9AHIAUgFykDGDcD2AcgBSAXKQMgNwPgByAFIBcpAyg3A+gHIAUgFykDMDcD8AcgBSAXKQM4NwP4ByAFKQOACCIrQn9RBEAgBSAFKQPABzcD4AQgBSAFKQPIBzcD6AQgBSAFKQPQBzcD8AQgBSAFKQPYBzcD+AQgBSAFKQPgBzcDgAUgBSAFKQPoBzcDiAUgBSAFKQPwBzcDkAUgBSAFKQP4BzcDmAUgBSgCrAchAiAFKAKwByIGBEAgAkEQaiEHA0AgBygCACIEKAIAIQMgBCADQQFrNgIAIANBAUYEQCAHKAIAEDALIAdBFGohByAGQQFrIgYNAAsLIAUoAqgHIgMEQCACIANBFGwQ2RILAkAgBSgCnAciAkF/Rg0AIAJFDQAgBSgCoAcgAhDZEgsgBUH4AGoQ9AUgBSAFKQOYBTcDsAEgBSAFKQOQBTcDqAEgBSAFKQOIBTcDoAEgBSAFKQOABTcDmAEgBSAFKQP4BDcDkAEgBSAFKQPwBDcDiAEgBSAFKQPoBDcDgAEgBSAFKQPgBDcDeAwHCyAFIB0pAyA3A6AJIAUgHSkDGDcDmAkgBSAdKQMQNwOQCSAFIB0pAwg3A4gJIAUgHSkDADcDgAkgBSAFKQPABzcDqAkgBSAFKQPIBzcDsAkgBSAFKQPQBzcDuAkgBSAFKQPYBzcDwAkgBSAFKQPgBzcDyAkgBSAFKQPoBzcD0AkgBSAFKQPwBzcD2AkgBSAFKQP4BzcD4AkgBSgC+AgiAiAFKAKwByIIIAIgCEkbIhRB1qrVKk8NAiAFKAL0CCITIAJBDGxqIRogBSgC8AghHCAFLQD8CCEnIAUoAqwHIhIgCEEUbGohCyAFKAKoByEiAn8gFEUEQEEEIRAgEyEHIBIhAkEADAELIBRBGGwQkAEiEEUNDCAUIRggECEGIBIhAiATIgchCgNAQX8hFgJ/AkAgAiALRgR/IAsFIAJBFGohCCACKAIAIihBAkcNASAICyECQX8hCSAKDAELIAIoAhAhCiACKAIEIQkCQAJAAkACfyAoQQFGBEAgBSACKQIINwLAASAFIAk2ArwBIAUgCkEIajYCuAEgBSAFQbgBahDqCSAFKAIEIQkgBSgCAAwBCyAKKAIQIgIgCU0NASAKKAIMIAlB5ABsaiICKAIABEAgAigCBCICIAooAnBPDQMgCigCbCACQQR0aiICKAIIIQkgAigCBAwBCyAFQQhqIApBCGogCRDQECAFKAIMIQkgBSgCCAshAiAJQQBIDQggCUUEQEEBIREMAwsgCRCQASIRRQRAQQEQpxQACyAJRQ0CIBEgAiAJ/AoAAAwCCyAJIAJB5PbIABCFEwALQaS4xAAQnRUACyAKIAooAgAiAkEBazYCACACQQFGBEAgChAwCyAIIQIgCSEZIAcLIQggCCAaIgpHBEAgCCkCBCEpIAgoAgAhFiAIQQxqIgchCgsgBiAJNgIAIAZBEGogKTcCACAGQQxqIBY2AgAgBkEIaiAZNgIAIAZBBGogETYCACAGQRhqIQYgGEEBayIYDQALIAsgAmtBFG4hCCAUCyEKIAIgC0cEQCACQRBqIQYDQCAGKAIAIgkoAgAhAiAJIAJBAWs2AgAgAkEBRgRAIAYoAgAQMAsgBkEUaiEGIAhBAWsiCA0ACwsgIgRAIBIgIkEUbBDZEgsgGiAHa0EMbiEGIAcgGkcEQANAIAcoAgAiAgRAIAdBBGooAgAiEkEEaygCACIJQXhxIQggCEEEQQggCUEDcSIJGyACakkNCyAJQQBHIAggAkEnaktxDQwgEhC8BQsgB0EMaiEHIAZBAWsiBg0ACwsgHARAIBMgHEEMbBDZEgsgBSgCpAchByAFKAKgByEIAkAgBSgCnAciBkF/RwRAIAghAgwBCyAHQQBIDQMgB0UEQEEBIQJBACEGQQAhBwwBCyAHEJABIgJFDQQgBwRAIAIgCCAH/AoAAAsgByEGCyAFIAUpA+AJNwOYBSAFIAUpA9gJNwOQBSAFIAUpA9AJNwOIBSAFIAUpA8gJNwOABSAFIAUpA8AJNwP4BCAFIAUpA7gJNwPwBCAFIAUpA7AJNwPoBCAFIAUpA6gJNwPgBCAFIAUpA4AJNwP4AyAFIAUpA4gJNwOABCAFIAUpA5AJNwOIBCAFIAUpA5gJNwOQBCAFIAUpA6AJNwOYBCAFIAUpA+AENwOgBCAFIAUpA5gFNwPYBCAFIAUpA5AFNwPQBCAFIAUpA4gFNwPIBCAFIAUpA4AFNwPABCAFIAUpA/gENwO4BCAFIAUpA/AENwOwBCAFIAUpA+gENwOoBCANICs3AwAgDSAFKQOgBDcDCCANIAUpA7gENwMgIA0gBSkDsAQ3AxggDSAFKQOoBDcDECANIAUpA9AENwM4IA0gBSkDyAQ3AzAgDSAFKQPABDcDKCANIAUpA9gENwNAIA0gBSkD+AM3A0ggDSAFKQOYBDcDaCANIAUpA5AENwNgIA0gBSkDiAQ3A1ggDSAFKQOABDcDUCANICdBAXE6AIgBIA0gBzYChAEgDSACNgKAASANIAY2AnwgDSAUNgJ4IA0gEDYCdCANIAo2AnAgDUGQAWohDQsgDCAfRw0ACyANIBVrIQYMBQsQnhUAC0EBEKcUAAsAC0EIEKcUAAsgDSAVayEGIB8gDGtBwAJuIQcgDCAfRg0AA0AgDBCaASAMQcACaiEMIAdBAWsiBw0ACwsgIUGQAWwhCCAGQZABbiEMIBUhAgJAICBFDQAgCCAbRg0AIBtBjwFNBEBBCCECIBtFDQEgFSAbENkSDAELIBUgG0EIIAgQrQYiAg0ADAULAkACQCAFKAKoASITQX9HBEAgBSAFKQKEATcDUCAFIAUpAowBNwNYIAUgBSkClAE3A2AgBSAFKQKcATcDaCAFIAUoAqQBNgJwIAUgBSkCrAE3A0AgBSAFKAK0ATYCSCAFKAKAASESIAUoAnwhESAFKAJ4IRYgDSAVRwRAQQAhCQNAIAIgCUGQAWxqIgQQpQEgBCgCdCEDIAQoAngiBgRAIAMhBwNAIAcoAgAiCgRAIAdBBGooAgAiFUEEaygCACIQQXhxIRQgFEEEQQggEEEDcSIQGyAKakkNCCAQQQBHIBQgCkEnaktxDQkgFRC8BQsgB0EMaigCACIKBEAgB0EQaigCACIVQQRrKAIAIhBBeHEhFCAUQQRBCCAQQQNxIhAbIApqSQ0IIBBBAEcgFCAKQSdqS3ENCSAVELwFCyAHQRhqIQcgBkEBayIGDQALCyAEKAJwIgYEQCADQQRrKAIAIgpBeHEhByAHIAZBGGwiBkEEQQggCkEDcSIKG2pJDQYgCkEARyAHIAZBJ2pLcQ0HIAMQvAULIAQoAnwiAwRAIAQoAoABIgdBBGsoAgAiBkF4cSEEIARBBEEIIAZBA3EiBhsgA2pJDQYgBkEARyAEIANBJ2pLcQ0HIAcQvAULIAwgCUEBaiIJRw0ACwsgG0GQAU8EQCACQQRrKAIAIgRBeHEhAyADQQRBCCAEQQNxIgQbIAhySQ0EIARBAEcgAyAIQSdqS3ENBSACELwFCyAAIBI2AhAgACARNgIMIAAgFjYCCCAAIAUpA1A3AhQgACAFKQNYNwIcIAAgBSkDYDcCJCAAIAUpA2g3AiwgACAFKAJwNgI0IAAgEzYCOCAAIAUpA0A3AjwgACAFKAJINgJEIABCfzcDACAeBEAgDyEHA0ACQCAHQfAAaigCACIAQX9GDQAgAEUNACAHQfQAaigCACIDQQRrKAIAIgRBeHEhAiACQQRBCCAEQQNxIgQbIABqSQ0GIARBAEcgAiAAQSdqS3ENByADELwFCyAHEKUBIAdBgAFqIQcgHkEBayIeDQALCyAkBEAgD0EEaygCACICQXhxIQAgACAkQQd0IgNBBEEIIAJBA3EiAhtySQ0EIAJBAEcgACADQSdyS3ENBSAPELwFCyABEKUBDAELQYABEJABIgNFDQEgAyABQfAA/AoAACADQQc2AnggA0GI1sUANgJ0IANBfzYCcEHwABCQASIERQ0EIARBBzYCECAEQYjWxQA2AgwgBEF/NgIIIARCBTcDAEHwABCQASIBRQ0EIAEgBDYCFCABIAw2AhAgASACNgIMIAEgITYCCCABQg43AwAgASAjOgAYQfAAEJABIgJFDQQgAiABNgIUIAIgHjYCECACIA82AgwgAiAkNgIIIAJCBjcDACAAIAI2AhQgAEEBNgIQIAAgAzYCDCAAQQE2AgggAEIGNwMACyAFQfAJaiQADwsMBAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALDAELQQQQpxQAC0G48MkAQQE6AAAAC49AAiJ/DH4jAEGQAmsiBCQAIARBIGogAkH1rsUAQQoQ5gsCQAJAAn8CQCAEKAIsIgFFDQAgBCAEKAIoNgI4IAQgBCkCIDcDMCAEQQA2AkQgBEKAgICAwAA3AjwgBEEANgKIAiAEQoCAgIDAADcCgAICQAJAAkACQAJAAkAgASgCAEEGRgRAIAEoAgwiAkUNBiACQQZ0IAEoAggiAmohEEEAIQFBBCEMQQEhCwNAIARB2ABqIAIgAxCDBiACQUBrIQIgBCgCWEUEQAJAIAIgEEcEQANAIARB2ABqIAIgAxCDBiAEKAJYDQIgECACQUBrIgJHDQALCyAEKAKAAiEWDAULQQAhCyACQUBrIQILIAQoAoACIAFGBEAgBEGAAmoQoRIgBCgChAIhDAsgBCkCYCEmIAQpAmghJyAEKAJwIQcgDCABQRxsaiIFIAQpAlg3AgAgBSAHNgIYIAUgJzcCECAFICY3AgggBCABQQFqIgE2AogCIAIgEEcNAAsMAQsgBEHAAWogASADEIMGIAQoAsABRQ0CIAQgBCgC2AE2AvgBIAQgBCkC0AE3A/ABIAQgBCkCyAE3A+gBIAQgBCkCwAE3A+ABIARBgAJqEKESIAQoAoQCIgwgBCkD4AE3AgAgDCAEKQPoATcCCCAMIAQpA/ABNwIQIAwgBCgC+AE2AhggBCgCgAIiFkF/Rg0CIAxBHGohHQwDCyAEKAKAAiEWIAtFDQAgFkF/Rg0BIAFFDQMgDCABQRxsaiEdDAILIBZFDQAgDEEEaygCACICQXhxIQEgASAWQRxsIgNBBEEIIAJBA3EiAhtqSQ0GIAJBAEcgASADQSdqS3ENByAMELwFCyAEQTxqENQIDAMLIARBgAJqrUKAgICA0AGEITEgBEGwAWqtQoCAgIDQAYQhMCAEQewBaiEeIARB5ABqIRkgBEHQAWohIUEEIR8gDCEQAkADQCAQKAIAIiJFDQIgECgCDCEgIBAoAgghIyAQKAIEIRcgBCAQKAIYNgJQIAQgECkCEDcDSCAEAn5B0PDJAC0AAARAQcjwyQApAwAhJ0HA8MkAKQMADAELIARB4AFqELsRQdDwyQBBAToAAEHI8MkAIAQpA+gBIic3AwAgBCkD4AELIiY3A9ABQcDwyQAgJkICfDcDACAEICc3A9gBIARBmKnJACkDACIoNwPIASAEQZCpyQApAwAiKTcDwAEgBCApNwPgASAEICg3A+gBIAQgJzcD+AEgBCAmQgF8NwPwAQJAICAEQEEAIRRBiKnJACESQQAhGgNAAkACfwJAAkACQAJ+AkAgIyAaQeQAbGoiCygCQEF/RwRAIAQpA9gBIiZC88rRy6eM2bL0AIUhKSAEKQPQASInQuHklfPW7Nm87ACFISogJkLt3pHzlszct+QAhSEmICdC9crNg9es27fzAIUhKCALKAJIIhFBeHEhByARQQdxIQUgCygCRCEOIAQoAswBRQ0DQQAhBiAoISsgKiEsICYhJyApIS5BACEBIAcEQANAICwgASAOaikAACIvIC6FIix8Ii4gJyArfCItICdCDYmFIid8ISsgKyAnQhGJhSEnIC4gLEIQiYUiLCAtQiCJfCEtIC0gLEIViYUhLiArQiCJISwgLSAvhSErIAcgAUEIaiIBSw0ACyAHQQFrQXhxQQhqIQELQgAhLSAFQQRPBEAgASAOajUAACEtQQQhBgsgBSAGQQFySwRAIAEgDmogBmozAAAgBkEDdK2GIC2EIS0gBkECciEGCyAFIAZLBEAgDiABIAZqajEAACAGQQN0rYYgLYQhLSARQQFqIQEMAgsgEUEBaiEBIAUNAUL/AQwCCyAEQR02ArQBIARBtKTFADYCsAEgBCAwNwOAAiAEQdgAakGanMAAIARBgAJqELgMIBkgCygCYDYCCCAZIAspAlg3AgAgAygCCCIBIAMoAgBGBEAgAxC9EgsgAyABQQFqNgIIIAMoAgQgAUEYbGoiASAEKQJYNwIAIAEgBCkCYDcCCCABIAQpAmg3AhAMBgsgLUL/ASAFQQN0rYaEIi0gBUEHRw0AGiAsIC0gLoUiLHwiLiAnICt8Ii8gJ0INiYUiJ3whKyArICdCEYmFIScgLiAsQhCJhSIsIC9CIIl8IS8gLyAsQhWJhSEuICtCIIkhLCAtIC+FIStCAAshLSALQUBrIQYgLiAtIAGtQjiGhCIuhSItICx8ISwgLCAtQhCJhSItICcgK3wiL0IgiXwhKyArIC1CFYmFIi0gLCAnQg2JIC+FIix8Ii9CIIlC/wGFfCEnICcgLUIQiYUiLSAvICxCEYmFIiwgKyAuhXwiLkIgiXwhKyArIC1CFYmFIi0gLiAsQg2JhSIsICd8Ii5CIIl8IScgJyAtQhCJhSItIC4gLEIRiYUiLCArfCIuQiCJfCErICsgLUIViYUiLSAnICxCDYkgLoUiJ3wiLEIgiXwiLiAnQhGJICyFIicgK3wgJ0INiYUiK3whJyAUICcgLUIQiSAuhUIViSArQhGJhSAnQiCIhYUiJ6dxIQEgJ0IZiEL/AINCgYKEiJCgwIABfiEsQQAhCANAIAEgEmopAAAiKyAshSInQoGChIiQoMCAAX0gJ0J/hYNCgIGChIiQoMCAf4MiJ0IAUgRAA0AgEiAneqdBA3YgAWogFHFBA3RrIgJBBGsoAgAgEUYEQCAOIAJBCGsoAgAgERCPE0UNBQsgJ0IBfSAngyInQgBSDQALCyArICtCAYaDQoCBgoSIkKDAgH+DQgBSDQEgCEEIaiIIIAFqIBRxIQEMAAsAC0EAIQZBACAHRQ0CGkEAIQEDQCABIA5qKQAAIisgKYUiKSAqfCIqICYgKHwiKCAmQg2JhSImfCEnICcgJkIRiYUhJiAqIClCEImFIikgKEIgiXwhKCAoIClCFYmFISkgJ0IgiSEqICggK4UhKCAHIAFBCGoiAUsNAAsMAQsgBCAGrUKAgICAwAKENwOwASAEQYACaiIFQenAwQAgBEGwAWoQuAwgBCgCgAIhASAEKAKEAiECIAQgBCgCiAI2ArQBIAQgAjYCsAEgBCAwNwOAAiAEQdgAakGanMAAIAUQuAwgGSALKAJgNgIIIBkgCykCWDcCACADKAIIIgUgAygCAEYEQCADEL0SCyADIAVBAWo2AgggAygCBCAFQRhsaiIFIAQpAlg3AgAgBSAEKQJgNwIIIAUgBCkCaDcCECABRQ0CIAJBBGsoAgAiB0F4cSEFAkAgBUEEQQggB0EDcSIHGyABak8EQCAHQQBHIAUgAUEnaktxDQEgAhC8BQwECwwNCwwNCyAHQQFrQXhxQQhqCyEBQgAhJyAFQQRJIg1FBEBBBCEGIAEgDmo1AAAhJwsCfiAFIAZBAXJLBEAgASAOaiAGajMAACAGQQN0rYYgJ4QhJyAGQQJyIQYLAkAgBSAGSwRAIA4gASAGamoxAAAgBkEDdK2GICeEIScgEUEBaiEBDAELIBFBAWohASAFDQBC/wEMAQsgJ0L/ASAFQQN0rYaEIicgBUEHRw0AGiAnICmFIikgKnwiKiAmICh8IisgJkINiYUiJnwhKCAoICZCEYmFISYgKiApQhCJhSIpICtCIIl8ISsgKyApQhWJhSEpIChCIIkhKiAnICuFIShCAAshJyAqICkgJyABrUI4hiIrhCIphSIqfCEnICcgKkIQiYUiKiAmICh8IixCIIl8ISggKCAqQhWJhSIqICcgJkINiSAshSInfCIsQiCJQv8BhXwhJiAsICdCEYmFIiwgKCAphXwiKEIgiSAmICpCEImFIil8IScgJyApQhWJhSIpICggLEINiYUiKCAmfCIqQiCJfCEmICYgKUIQiYUiKSAqIChCEYmFIiggJ3wiKkIgiXwhJyAnIClCFYmFIikgJiAoQg2JICqFIiZ8IihCIIl8IiogJkIRiSAohSImICd8ICZCDYmFIid8ISYgJiApQhCJICqFQhWJICdCEYmFICZCIIiFhSEmIAQoAsgBRQRAIARBwAFqICEQwQMgBCgCwAEhEgsgBCgCxAEiFCAmp3EhASAmQhmIIihC/wCDQoGChIiQoMCAAX4hKUEAIQhBACECA0ACQAJ/AkACQAJAIAEgEmopAAAiJyAphSImQoGChIiQoMCAAX0gJkJ/hYNCgIGChIiQoMCAf4MiJkIAUgRAA0AgEiAmeqdBA3YgAWogFHFBA3RrIgpBBGsoAgAgEUYEQCAOIApBCGsoAgAgERCPE0UNAwsgJkIBfSAmgyImQgBSDQALCyAnQoCBgoSIkKDAgH+DISYgCEEBRwRAICZQDQIgJnqnQQN2IAFqIBRxIQYLICYgJ0IBhoNQBEBBASEIDAULIAYgEmosAAAiAUEATgRAIBIgEikDAEKAgYKEiJCgwIB/g3qnQQN2IgZqLQAAIQELIAYgEmogKKdB/wBxIgI6AAAgEiAGQQhrIBRxakEIaiACOgAAIBIgBkEDdGsiAkEIayAONgIAIAJBBGsgETYCACAEIAQoAswBQQFqNgLMASAEIAQoAsgBIAFBAXFrNgLIAQsgBEEIaiALIAMQ/AUgBCkD+AEiJkLzytHLp4zZsvQAhSEnIAQpA/ABIihC4eSV89bs2bzsAIUhKSAmQu3ekfOWzNy35ACFISYgKEL1ys2D16zbt/MAhSEqQQAhBiAEKAIMISQgBCgCCCElQQAgB0UNAhpBACEBA0AgASAOaikAACIsICeFIicgKXwiKSAmICp8IiogJkINiYUiJnwhKCAoICZCEYmFISYgKSAnQhCJhSInICpCIIl8ISogKiAnQhWJhSEnIChCIIkhKSAqICyFISogByABQQhqIgFLDQALDAELQQAhCAwCCyAHQQFrQXhxQQhqCyEBQgAhKCANRQRAQQQhBiABIA5qNQAAISgLAn4gBSAGQQFySwRAIAEgDmogBmozAAAgBkEDdK2GICiEISggBkECciEGCwJAIAUgBksEQCAOIAEgBmpqMQAAIAZBA3SthiAohCEoDAELIAUNAEL/AQwBCyAoQv8BIAVBA3SthoQiKCAFQQdHDQAaICcgKIUiJyApfCIsICYgKnwiKiAmQg2JhSImfCEpICkgJkIRiYUhJiAsICdCEImFIicgKkIgiXwhKiAqICdCFYmFIScgKUIgiSEpICggKoUhKkIACyEoICkgKCArhCIpICeFIih8IScgJyAoQhCJhSIrICYgKnwiKkIgiXwhKCAoICtCFYmFIisgJyAmQg2JICqFIid8IipCIIlC/wGFfCEmICYgK0IQiYUiKyAqICdCEYmFIiogKCAphXwiKEIgiXwhJyAoICpCDYmFIiggJnwiKUIgiSAnICtCFYmFIip8ISYgJiAqQhCJhSIqICkgKEIRiYUiKCAnfCIpQiCJfCEnICcgKkIViYUiKiAmIChCDYkgKYUiJnwiKEIgiXwiKSAmQhGJICiFIiYgJ3wgJkINiYUiJ3whJiAmICpCEIkgKYVCFYkgJ0IRiYUgJkIgiIWFIScgBCgC6AFFBEACQCAEQeABaiICQRBqIQlBACEIIAIoAgwiBkEBaiIFBEACQCACKAIEIg1BAWoiAUEDdiIKQQdsIRMCQCANIBMgDUEISRsiB0EBdiAFSQRAAn8gB0EBaiIBIAUgASAFSxsiAUEPTwRAIAFB/////wFLDQRBfyABQQN0QQduQQFrZ3ZBAWoMAQtBBCABQQhxQQhqIAFBBEkbCyIBrUIcfiImQiCIpw0CICanIgdBeEsNAiABQQhqIgUgB0EHakF4cSIKaiEHIAUgB0sNAiAHQfj///8HSw0CIAcQkAEiB0UEQEG48MkAQQE6AAAACyAHIApqIRMgBQRAIBNB/wEgBfwLAAsgAUEBayIVIAFBA3ZBB2wgAUEJSRshGCACKAIAIQUgBgRAIAUpAwBCf4VCgIGChIiQoMCAf4MhJiAJKQMIISkgCSkDACEqIAUhByAGIQEDQCAmUARAA0AgCEEIaiEIIAdBCGoiBykDAEKAgYKEiJCgwIB/gyImQoCBgoSIkKDAgH9RDQALICZCgIGChIiQoMCAf4UhJgsgEyAqICkgBSAmeqdBA3YgCGoiG0FkbGoiCkEcaygCACAKQRhrKAIAEOMKpyIcIBVxIgpqKQAAQoCBgoSIkKDAgH+DIihQBEBBCCEJA0AgCSAKaiEKIAlBCGohCSATIAogFXEiCmopAABCgIGChIiQoMCAf4MiKFANAAsLICZCAX0gJoMhJiATICh6p0EDdiAKaiAVcSIKaiwAAEEATgRAIBMpAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIBNqIBxBGXYiCToAACATIApBCGsgFXFqQQhqIAk6AAAgEyAKQX9zQRxsaiIKIAUgG0F/c0EcbGoiCSgAGDYAGCAKIAkpABA3ABAgCiAJKQAINwAIIAogCSkAADcAACABQQFrIgENAAsLIAIgFTYCBCACIBM2AgAgAiAYIAZrNgIIIA1FDQEgDUEcbEEjakF4cSICIA1qQQlqIgFFDQEgBSACayIFQQRrKAIAIgZBeHEhAiACQQRBCCAGQQNxIgYbIAFqSQ0SIAZBAEcgAiABQSdqS3ENEyAFELwFDAQLIAIgAQR/IAIoAgAhBwJAIAogAUEHcUEAR2oiAkEBRwRAIAJBAXEgAkH+////A3EhCgNAIAcgCGoiAikDACEmIAIgJkJ/hUIHiEKBgoSIkKDAgAGDICZC//79+/fv37//AIR8NwMAIAJBCGoiAikDACEmIAIgJkJ/hUIHiEKBgoSIkKDAgAGDICZC//79+/fv37//AIR8NwMAIAhBEGohCCAKQQJrIgoNAAtFDQELIAcgCGoiAikDACEmIAIgJkJ/hUIHiEKBgoSIkKDAgAGDICZC//79+/fv37//AIR8NwMACwJAIAFBCE8EQCABIAdqIAcpAAA3AAAMAQsgAUUNACAHQQhqIAcgAfwKAAALIAkpAwghKCAJKQMAISlBACEBA0ACQCAHIAEiAmoiCi0AAEGAAUcNACAHIAFBf3NBHGxqIQEgByACQWRsaiIIQRhrIRsgCEEcayEcA0AgByApICggHCgCACAbKAIAEOMKpyIVIA1xIhgiCGopAABCgIGChIiQoMCAf4MiJlAEQEEIIQkDQCAIIAlqIQggCUEIaiEJIAcgCCANcSIIaikAAEKAgYKEiJCgwIB/gyImUA0ACwsgByAmeqdBA3YgCGogDXEiCGosAABBAE4EQCAHKQMAQoCBgoSIkKDAgH+DeqdBA3YhCAsgCCAYayACIBhrcyANcUEITwRAIAcgCGoiCS0AACAJIBVBGXYiCToAACAHIAhBCGsgDXFqQQhqIAk6AAAgByAIQX9zQRxsaiEIQf8BRgRAIApB/wE6AAAgByANIAJBCGtxakEIakH/AToAACAIIAEoABg2ABggCCABKQAQNwAQIAggASkACDcACCAIIAEpAAA3AAAMAwsgCCgAACEJIAggASgAADYAACABIAk2AAAgASgABCEJIAEgCCgABDYABCAIIAk2AAQgCCgACCEJIAggASgACDYACCABIAk2AAggASgADCEJIAEgCCgADDYADCAIIAk2AAwgCCgAECEJIAggASgAEDYAECABIAk2ABAgASgAFCEJIAEgCCgAFDYAFCAIIAk2ABQgCCgAGCEJIAggASgAGDYAGCABIAk2ABgMAQsLIAogFUEZdiIBOgAAIAcgDSACQQhrcWpBCGogAToAAAsgAkEBaiEBIAIgDUcNAAsgDSATIA1BCEkbBUEACyAGazYCCAsMAgsLQfjoyABBOUH4n8QAEL8TAAsLIAtB2ABqIQcgBCgC5AEiBiAnp3EhASAnQhmIIihC/wCDQoGChIiQoMCAAX4hKUEAIQIgBCgC4AEhBUEAIQgDQAJ/AkACQCABIAVqKQAAIicgKYUiJkKBgoSIkKDAgAF9ICZCf4WDQoCBgoSIkKDAgH+DIiZCAFIEQANAIAVBACAmeqdBA3YgAWogBnFrIg1BHGxqIgpBGGsoAgAgEUYEQCAOIApBHGsoAgAgERCPE0UNAwsgJkIBfSAmgyImQgBSDQALCyAnQoCBgoSIkKDAgH+DISYgAkEBRwRAICZQDQIgJnqnQQN2IAFqIAZxIQsLQQEgJiAnQgGGg1ANAhogBSALaiwAACIBQQBOBEAgBSAFKQMAQoCBgoSIkKDAgH+DeqdBA3YiC2otAAAhAQsgBSALaiAop0H/AHEiAjoAACAFIAtBCGsgBnFqQQhqIAI6AAAgBUEAIAtrIg1BHGxqIgJBHGsgDjYCACACQRhrIBE2AgAgBCAEKALsAUEBajYC7AEgBCAEKALoASABQQFxazYC6AELIAUgDUEcbGoiAUEUayICIAcoAgg2AgggAiAHKQIANwIAIAFBBGsgJDYCACABQQhrICU2AgAMBQtBAAshAiAIQQhqIgggAWogBnEhAQwACwALIAJBCGoiAiABaiAUcSEBDAALAAsgICAaQQFqIhpHDQALIAQgBCkD4AE3A1ggBCAEKQPoATcDYCAEIAQpA/ABNwNoIAQgBCkD+AE3A3AgBCgCxAEiAUUNASABIAFBA3QiAWpBEWoiAkUNASAEKALAASABa0EIayACENkSDAELIAQgBCkD+AE3A3AgBCAEKQPwATcDaCAEIAQpA+gBNwNgIAQgBCkD4AE3A1gLIARB/ABqIARB2ABqIgFBnK3IAEEDIAMQ5wYgBEGIAWogAUHKpcgAQQYgAxDnBiAEQZQBaiABQdGkxQBBByADEOcGIAQoAlgiAikDACEmIAQoAmQhCyAEKAJcIgcEQCACIAdBHGxBI2pBeHEiAWshFCABIAdqQQlqIQYLAkAgC0UNACACQQhqIQEgJkJ/hUKAgYKEiJCgwIB/gyEmA0AgJlAEQANAIAEiBUEIaiEBIAJB4AFrIQIgBSkDAEKAgYKEiJCgwIB/gyImQoCBgoSIkKDAgH9RDQALICZCgIGChIiQoMCAf4UhJgsgAiAmeqdBA3ZBZGxqIgVBGGsoAgAhDiAFQRxrKAIAIQggBCAFQRRrIgUoAgg2AqgBIAQgBSkCADcDoAEgCEUNASAEIA42AoQCIAQgCDYCgAIgBCAxNwPAASAEQeABakHN/cEAIARBwAFqELgMIB4gBCgCqAE2AgggHiAEKQOgATcCACAmQgF9IScgAygCCCIFIAMoAgBGBEAgAxC9EgsgJiAngyEmIAMgBUEBajYCCCADKAIEIAVBGGxqIgUgBCkC4AE3AgAgBSAEKQLoATcCCCAFIAQpAvABNwIQIAtBAWsiCw0ACwsCQCAHRQ0AIAZFDQAgFCAGENkSCyAXQQBOBEACQCAXRQRAQQEhAQwBCyAXEJABIgFFDQMgF0UNACABICIgF/wKAAALIAQgBCgCUDYCuAEgBCAEKQNINwOwASAEIAQpAogBNwPgASAEIAQoApABNgLoASAEIAQpApQBNwPAASAEIAQoApwBNgLIASAEIAQpAnw3A4ACIAQgBCgChAE2AogCIAQoAjwgD0YEQCAEQTxqEKISIAQoAkAhHwsgHyAPQTxsaiICIBc2AgggAiABNgIEIAIgFzYCACACIAQoAugBNgIUIAIgBCkD4AE3AgwgAiAEKALIATYCICACIAQpA8ABNwIYIAIgBCgCiAI2AiwgAiAEKQOAAjcCJCACIAQoArgBNgI4IAIgBCkDsAE3AjAgBCAPQQFqIg82AkQgHSAQQRxqIhBHDQEMAwsLEJ4VAAtBARCnFAALIBYEQCAMIBZBHGwQ2RIgBCgCRCEPCyAPQQJJDQAgBCgCQCEBIA9BFU8EQCMAQYAgayICJAACQAJAAkBB1ZEIIA8gD0HVkQhPGyIDIA8gD0EBdmsiDCADIAxLGyIDQcUATwRAIAxBo8SIEU8NAiADQTxsEJABIgxFDQMgAkEANgIIIAIgDDYCBCACIAM2AgAgASAPIAwgAyAPQcEASRDYAiACENQIDAELIAEgDyACQcQAIA9BwQBJENgCCyACQYAgaiQADAMLEJ4VAAtBBBCnFAALQQAhDCMAQTBrIgUkACABQTxqIQMgASAPQTxsaiELIAEhAgNAIAMhECACQUBrKAIAIgggAkEEaigCACACQcQAaigCACIGIAJBCGooAgAiAyADIAZLGxCPEyIHIAYgA2sgBxtBAEgEQCAFIAIpAkg3AwAgBSACKQJQNwMIIAUgAikCWDcDECAFIAIpAmA3AxggBSACKQJoNwMgIAUgAikCcDcDKCACKAI8IQ4gDCEDAn8CQANAIAEgA2oiAkH0AGogAigCODYCACACQewAaiACKQIwNwIAIAJB5ABqIAIpAig3AgAgAkHcAGogAikCIDcCACACQdQAaiACKQIYNwIAIAJBzABqIAIpAhA3AgAgAkHEAGogAikCCDcCACACQTxqIgcgAikCADcCACADRQ0BIANBPGshAyAIIAJBOGsoAgAgBiACQTRrKAIAIgIgAiAGSxsQjxMiDSAGIAJrIA0bQQBIDQALIAEgA2pBPGoMAQsgAQsgDjYCACAHQTRrIAY2AgAgB0E4ayAINgIAIAdBMGsiAiAFKQMANwIAIAIgBSkDCDcCCCACIAUpAxA3AhAgAiAFKQMYNwIYIAIgBSkDIDcCICACIAUpAyg3AigLIAxBPGohDCALIBAiAkE8aiIDRw0ACyAFQTBqJAALIAQgBCkDMDcDECAEIAQoAjg2AhggBCkCQCEmIAQoAjwMAQtBfwshAkEgEJABIgEEQCABICY3AgwgASACNgIIIAFCgYCAgBA3AgAgASAEKQMQNwIUIAEgBCgCGDYCHCAAQajBxQA2AgQgACABNgIAIARBkAJqJAAPC0G48MkAQQE6AAAAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAvvQgINfwZ+IwBBsARrIgIkACABKAIMIQMCQAJAAkACfwJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJ/AkACfwJAAkACQAJAAkACQAJAAkAgASgCFCIEIAEoAhAiB0kEQCABQQxqIQYDQCADIARqLQAAIgVBCWsiCEEXSw0CQQEgCHRBk4CABHFFDQIgASAEQQFqIgQ2AhQgBCAHRw0ACyAHIQQLIAJBBTYCkANBASEFQQAhASAEQQFqIgQgByAEIAdJGyIHRQ0DIAdBA3EhBCAHQQRPDQEMAgsCQCAFQdsAaw4hDxAQEBAQEBAQEBAGEBAQEBAQEAQQEBAQEAUQEBAQEBASAAsgBUEiaw4MDQ8PDw8PDw8PDw8MDwsgB0F8cSEHA0BBAEEBQQJBAyABQQRqIAMtAABBCkYiBhsgA0EBai0AAEEKRiIIGyADQQJqLQAAQQpGIgkbIANBA2otAABBCkYiChshASAFIAZqIAhqIAlqIApqIQUgA0EEaiEDIAdBBGsiBw0ACyAERQ0BCwNAQQAgAUEBaiADLQAAQQpGIgcbIQEgA0EBaiEDIAUgB2ohBSAEQQFrIgQNAAsLIAJBkANqIAUgARDHEyEBIABBfzYCECAAIAE2AgAMJAsgASAEQQFqIgU2AhQgBSAHTw0CIAEgBEECaiIINgIUAkAgAyAFai0AAEH1AEcNACAIIAUgByAFIAdLGyIHRg0DIAEgBEEDaiIFNgIUIAMgCGotAABB7ABHDQAgBSAHRg0DIAEgBEEEajYCFCADIAVqLQAAQewARw0AQQAhA0GAgICAeCEEDA0LIAJBCTYCkAMgAkEQaiAGEJsOIAJBkANqIAIoAhAgAigCFBDHEwwDCyABIARBAWoiBTYCFCAFIAdPDQMgASAEQQJqIgg2AhQCQCADIAVqLQAAQfIARw0AIAggBSAHIAUgB0sbIgdGDQQgASAEQQNqIgU2AhQgAyAIai0AAEH1AEcNACAFIAdGDQQgASAEQQRqNgIUIAMgBWotAABB5QBHDQBBASEDQYGAgIB4IQRBAAwhCyACQQk2ApADIAJBIGogBhCbDiACQZADaiACKAIgIAIoAiQQxxMMBAsgASAEQQFqIgU2AhQCQCAFIAdPDQAgASAEQQJqIgg2AhQgAyAFai0AAEHhAEcNBSAIIAUgByAFIAdLGyIFRg0AIAEgBEEDaiIJNgIUIAMgCGotAABB7ABHDQUgBSAJRg0AIAEgBEEEaiIINgIUIAMgCWotAABB8wBHDQUgBSAIRg0AIAEgBEEFajYCFCADIAhqLQAAQeUARw0FQQAhA0GBgICAeCEEDAsLIAJBBTYCkAMCQAJAAkAgBSAHTQRAIAVFBEBBASEEQQAhBQwECyAFQQNxIQEgBUEETw0BQQEhBEEAIQUMAgtBACAFIAdBmLPIABCHDgALIAVBfHEhB0EBIQRBACEFA0BBAEEBQQJBAyAFQQRqIAMtAABBCkYiBhsgA0EBai0AAEEKRiIIGyADQQJqLQAAQQpGIgkbIANBA2otAABBCkYiChshBSAEIAZqIAhqIAlqIApqIQQgA0EEaiEDIAdBBGsiBw0ACyABRQ0BCwNAQQAgBUEBaiADLQAAQQpGIgcbIQUgA0EBaiEDIAQgB2ohBCABQQFrIgENAAsLIAJBkANqIAQgBRDHEwwFCyACQQU2ApADIAJBCGogBhCbDiACQZADaiACKAIIIAIoAgwQxxMLIQEgAEF/NgIQIAAgATYCAAwfCyACQQU2ApADIAJBGGogBhCbDiACQZADaiACKAIYIAIoAhwQxxMLIQEgAEF/NgIQIAAgATYCAAwdCyACQQk2ApADIAJBKGogBhCbDiACQZADaiACKAIoIAIoAiwQxxMLIQEgAEF/NgIQIAAgATYCAAwbCyABIARBAWo2AhRBACEDIAJBoAJqIAFBABDqBSACKQOgAiIQQn9RDRZBgoCAgHghBCACKQOoAiEPAkACQAJAIBCnQQFrDgICAQALQYCAgIB4IQQgD0L///////////8Ag0L/////////9/8AWARAIAJBgICAgHg2AqADIAJBkANqEP8JQYKAgIB4IQQLQQIhAwwBCyAPQj+IpyEDCyAPpyEFQQAhBwwDCyABQQA2AgggASAEQQFqNgIUIAJBkANqIAYgARCgASACKAKUAyEBIAIoApADIgNBAkYNFCACKAKYAyEFAkACQCADQQFGBEAgBUEASA0HIAVFBEBBASEHDAMLIAUQkAEiBw0BDB0LIAVBAEgNBiAFRQRAQQEhBwwCCyAFEJABIgdFDRwLIAVFDQAgByABIAX8CgAAC0GDgICAeCEEIAUiA0GAfnEMFwsgASABLQAlQQFrIgU6ACUgBUH/AXFFDRJBASEFIAEgBEEBaiIENgIUIAJBADYCqAIgAkKAgICAgAE3AqACIAQgB08NDyACQaQDaiEIIAJBkANqQQRyIQxBCCENQQEhCgNAIAYoAgAhAwJAAkACQAJAAkACQAJAA0ACQCADIARqLQAAIg5BCWsOJAAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDBAILIAEgBEEBaiIENgIUIAQgB0cNAAsgByEEDBcLIA5B3QBGDQMLIApFDQEMBAsgCg0DIAEgBEEBaiIENgIUIAQgB0kEQANAIAMgBGotAAAiCkEJayIOQRdLDQRBASAOdEGTgIAEcUUNBCABIARBAWoiBDYCFCAEIAdHDQALCyACQQU2ApADIAJBQGsgBhClDiACQZADaiACKAJAIAIoAkQQxxMMFQsgAkEHNgKQAyACQThqIAYQpQ4gAkGQA2ogAigCOCACKAI8EMcTDBQLQYSAgIB4IQRBACEHIAIpAqQCIQ8gAigCoAIhAwwUCyAKQd0ARw0AIAJBFTYCkAMgAkHIAGogBhClDiACQZADaiACKAJIIAIoAkwQxxMMEgsgAkGQA2ogARBdIAIoApADIgQgAigCoAMiB0F/Rg0RGiACIAwoAgg2AvADIAIgDCkCADcD6AMgAiAIKQIANwPIAyACIAgpAgg3A9ADIAIgCCkCEDcD2AMgAiAIKAIYNgLgAyACKAKgAiALRgRAIAJBoAJqEJQSIAIoAqQCIQ0LIA0gC0EwbGoiAyAENgIAIAMgAikD6AM3AgQgAyACKALwAzYCDCADIAc2AhAgAyACKQPIAzcCFCADIAIoAuADNgIsIAMgAikD2AM3AiQgAyACKQPQAzcCHCACIAtBAWoiCzYCqAJBACEKIAEoAhQiBCABKAIQIgdJDQALDA4LIAVBMGtB/wFxQQpPBEAgAkEKNgKQAyACIAYQpQ4gAkGQA2ogAigCACACKAIEEMcTIAEQswwhASAAQX82AhAgACABNgIADBgLIAJBoAJqIAFBARDqBSACKQOgAiIQQn9RBEAgAEF/NgIQIAAgAigCqAI2AgAMGAtBgoCAgHghBEEAIQcgAikDqAIhD0EAIQMCQAJAAkAgEKdBAWsOAgIBAAtBgICAgHghBCAPQv///////////wCDQv/////////3/wBYBEAgAkGAgICAeDYCoAMgAkGQA2oQ/wlBgoCAgHghBAtBAiEDDAELIA9CP4inIQMLIA+nIQULQQAMFAsgASABLQAlQQFrIgU6ACUgBUH/AXFFDQogASAEQQFqIgQ2AhQgAiABNgLoAQJAIAQgB0kEQANAIAMgBGotAAAiBUEJayIIQRdLDQJBASAIdEGTgIAEcUUNAiABIARBAWoiBDYCFCAEIAdHDQALCyACQQM2ApADIAJBkAFqIAYQpQ4gAkGQA2ogAigCkAEgAigClAEQxxMhAwwJCwJAAkACfwJAAkAgBUH9AEcEQCACQQA6AOwBIAVBIkcEQCACQRE2ApADIAJBiAFqIAYQpQ4gAkGQA2ogAigCiAEgAigCjAEQxxMhAwwPCyABQQA2AgggASAEQQFqNgIUIAJBkANqIAYgARCgASACKAKUAyEDIAIoApADQQJGDQ4gAigCmAMiBEEeRwRAQQAgBEEASA0EGiAERQRAQQEhBQwHCyAEEJABIgUNAgwdCyADKQAAQqTmlZPHrNmv6gCFIANBCGopAABC896506OHnLnpAIWEIANBEGopAABC9sLRq6bHjqnhAIUgA0EWaikAAELSwt2zlYzbuuUAhYSEQgBSDQICQAJAAkACQCABELkLIgMNAAJAAkACQAJAAkAgASgCFCIDIAEoAhAiB0kEQCAGKAIAIQQDQCADIARqLQAAQQlrIgVBGUsNBkEBIAV0QZOAgARxRQRAIAVBGUcNByABQQA2AgggASADQQFqNgIUIAJBkANqIAYgARCgASACKAKUAyEDIAIoApADIgVBAkYNCCACKAKYAyEEIAVBAUcNBCAEQQBIDRIgBA0DQQEhBQwGCyABIANBAWoiAzYCFCADIAdHDQALCyACQQU2ApADIAJB2ABqIAYQpQ4gAkGQA2ogAigCWCACKAJcEMcTIQMMBQsgBBCQASIFDQEMJAsgBEEASA0NIARFBEBBASEFDAILIAQQkAEiBUUNBgsgBEUNACAFIAMgBPwKAAALIAJBkANqIAUgBBCbCCACKAKgA0F/Rw0CIAIoApADEJ8QIQMgAkF/NgLIASACIAM2ArgBDAMLIAJBrwRqIQgjAEHgAGsiBCQAIAEoAgwhBgJAAkACfwJAAkAgASgCECIFIAEoAhQiCUsEQCABQQxqIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBiAJai0AACIDQdsAaw4hBAsLCwsLCwsLCwsDCwsLCwsLCwELCwsLCwILCwsLCwsFAAsgA0Eiaw4MCQoKCgoKCgoKCgoICgsgASAJQQFqIgM2AhQCQCADIAVJBEAgASAJQQJqIgs2AhQCQAJAIAMgBmotAABB9QBHDQAgBSALRg0BIAEgCUEDaiIDNgIUIAYgC2otAABB7ABHDQAgAyAFRg0BIAEgCUEEajYCFCADIAZqLQAAQewARg0ICyAEQQk2AlAgBEEIaiAKEJsOIARB0ABqIAQoAgggBCgCDBDHEwwQCyAEQQU2AlAMAQsgBEEFNgJQIAMgBUsNDyADIQULIAVBA3EhCQJAAkAgBUEESQRAQQEhCEEAIQMMAQsgBUF8cSEFQQEhCEEAIQMDQEEAQQFBAkEDIANBBGogBi0AAEEKRiIKGyAGQQFqLQAAQQpGIgsbIAZBAmotAABBCkYiDBsgBkEDai0AAEEKRiINGyEDIAggCmogC2ogDGogDWohCCAGQQRqIQYgBUEEayIFDQALIAlFDQELA0BBACADQQFqIAYtAABBCkYiBRshAyAGQQFqIQYgBSAIaiEIIAlBAWsiCQ0ACwsgBEHQAGogCCADEMcTDA0LIAEgCUEBaiIDNgIUAkAgAyAFSQRAIAEgCUECaiILNgIUAkACQCADIAZqLQAAQfIARw0AIAUgC0YNASABIAlBA2oiAzYCFCAGIAtqLQAAQfUARw0AIAMgBUYNASABIAlBBGo2AhQgAyAGai0AAEHlAEYNCAsgBEEJNgJQIARBEGogChCbDiAEQdAAaiAEKAIQIAQoAhQQxxMMDwsgBEEFNgJQDAELIARBBTYCUCADIAVLDQ4gAyEFCyAFQQNxIQkCQAJAIAVBBEkEQEEBIQhBACEDDAELIAVBfHEhBUEBIQhBACEDA0BBAEEBQQJBAyADQQRqIAYtAABBCkYiChsgBkEBai0AAEEKRiILGyAGQQJqLQAAQQpGIgwbIAZBA2otAABBCkYiDRshAyAIIApqIAtqIAxqIA1qIQggBkEEaiEGIAVBBGsiBQ0ACyAJRQ0BCwNAQQAgA0EBaiAGLQAAQQpGIgUbIQMgBkEBaiEGIAUgCGohCCAJQQFrIgkNAAsLIARB0ABqIAggAxDHEwwMCyABIAlBAWoiAzYCFAJAIAMgBUkEQCABIAlBAmoiCzYCFAJAAkAgAyAGai0AAEHhAEcNACAFIAtGDQEgASAJQQNqIgM2AhQgBiALai0AAEHsAEcNACADIAVGDQEgASAJQQRqIgs2AhQgAyAGai0AAEHzAEcNACAFIAtGDQEgASAJQQVqNgIUIAYgC2otAABB5QBGDQgLIARBCTYCUCAEQRhqIAoQmw4gBEHQAGogBCgCGCAEKAIcEMcTDA4LIARBBTYCUAwBCyAEQQU2AlAgAyAFSw0NIAMhBQsgBUEDcSEJAkACQCAFQQRJBEBBASEIQQAhAwwBCyAFQXxxIQVBASEIQQAhAwNAQQBBAUECQQMgA0EEaiAGLQAAQQpGIgobIAZBAWotAABBCkYiCxsgBkECai0AAEEKRiIMGyAGQQNqLQAAQQpGIg0bIQMgCCAKaiALaiAMaiANaiEIIAZBBGohBiAFQQRrIgUNAAsgCUUNAQsDQEEAIANBAWogBi0AAEEKRiIFGyEDIAZBAWohBiAFIAhqIQggCUEBayIJDQALCyAEQdAAaiAIIAMQxxMMCwsgBEEKOgBQIARB0ABqIAhBxIrHABDUESABELMMDAoLIARBCzoAUCAEQdAAaiAIQcSKxwAQ1BEgARCzDAwJCyAEQQc6AFAgBEHQAGogCEHEiscAENQRIAEQswwMCAsgBEGAAjsBUCAEQdAAaiAIQcSKxwAQ1BEgARCzDAwHCyAEQQA7AVAgBEHQAGogCEHEiscAENQRIAEQswwMBgsgASAJQQFqNgIUIARBIGoiAyABQQAQ6gUgBCkDIEJ/UQ0EIAMgCEHEiscAELISIAEQswwMBQsgAUEANgIIIAEgCUEBajYCFCAEQcQAaiAKIAEQoAEgBCgCSCIDIAQoAkRBAkYNBBogBCAEKAJMNgJYIAQgAzYCVCAEQQU6AFAgBEHQAGogCEHEiscAENQRIAEQswwMBAsgA0Ewa0H/AXFBCkkNAQsgBEEKNgJQQQEhCEEAIQMCQCAJQQFqIgkgBSAFIAlLGyIFRQ0AIAVBA3EhCSAFQQRPBEAgBUF8cSEFA0BBAEEBQQJBAyADQQRqIAYtAABBCkYiChsgBkEBai0AAEEKRiILGyAGQQJqLQAAQQpGIgwbIAZBA2otAABBCkYiDRshAyAIIApqIAtqIAxqIA1qIQggBkEEaiEGIAVBBGsiBQ0ACyAJRQ0BCwNAQQAgA0EBaiAGLQAAQQpGIgUbIQMgBkEBaiEGIAUgCGohCCAJQQFrIgkNAAsLIARB0ABqIAggAxDHEyABELMMDAILIARBMGogAUEBEOoFIAQpAzBCf1EEQCAEKAI4DAILIARBMGogCEHEiscAELISIAEQswwMAQsgBCgCKAshAyAEQeAAaiQADAELQQAgAyAFQZizyAAQhw4ACyADIAEQswwhAwsgAkF/NgLIASACIAM2ArgBDBILIAIgAikDuAM3A+ABIAIgAikDsAM3A9gBIAIgAikDqAM3A9ABIAIgAikDoAM3A8gBIAIgAikDmAM3A8ABIAIgAikDkAM3A7gBCyAERQ0QIAUgBBDZEgwQCwwcCyACAn5B0PDJAC0AAARAQcjwyQApAwAhD0HA8MkAKQMADAELIAJBkANqELsRQdDwyQBBAToAAEHI8MkAIAIpA5gDIg83AwAgAikDkAMLIhA3A7gBQcDwyQAgEEIBfDcDACACQQA2AtABIAJCgICAgIABNwPIASACIA83A8ABIAJBkKnJACkDADcC1AEgAkGYqckAKQMANwLcAQwOCyAERQ0DIAUgAyAE/AoAAAwDC0EeEJABIgUNAUEBCxCnFAALIAUgAykAFjcAFiAFIAMpABA3ABAgBSADKQAINwAIIAUgAykAADcAAAsgAgJ+QdDwyQAtAAAEQEHI8MkAKQMAIQ9BwPDJACkDAAwBCyACQZADahC7EUHQ8MkAQQE6AABByPDJACACKQOYAyIPNwMAIAIpA5ADCyIQNwPwAUHA8MkAIBBCAXw3AwAgAkEANgKIAiACQoCAgICAATcDgAIgAiAPNwP4ASACQZCpyQApAwA3AowCIAJBmKnJACkDADcClAIgAiAENgKABCACIAU2AvwDIAIgBDYC+AMgAkG4AWohAwJAIAJB6AFqKAIAIggQuQsiCQRAIANBfzYCECADIAk2AgAMAQsgAyAIEF0LIAIoAsgBQX9GBEAgBEUNCCAFIAQQ2RIMCAsgAkGQA2ogAkHwAWogAkH4A2ogAkG4AWoQ1gMgAiACKQPAAzcDyAIgAiACKQO4AzcDwAIgAiACKQOwAzcDuAIgAiACKQOoAyIPNwOwAiACIAIpA6ADNwOoAiACIAIpA5gDNwOgAiAPp0F/RwRAIAJBoAJqEP8JCyABKAIQIgUgASgCFCIDTQ0FIAJBpAJqIQggAkGYA2ohCSACQZQDaiEKA0AgBigCACEEA0ACQAJAIAMgBGotAAAiB0EJaw4kAAAGBgAGBgYGBgYGBgYGBgYGBgYGBgYABgYGBgYGBgYGBgYBBQsgASADQQFqIgM2AhQgAyAFRw0BDAgLCyABIANBAWoiAzYCFAJAAkACQAJAIAMgBUkEQANAIAMgBGotAAAiC0EJayIHQRlLDQtBASAHdEGTgIAEcUUEQCAHQRlHDQwgAUEANgIIIAEgA0EBajYCFCACQZADaiAGIAEQoAEgAigClAMhBCACKAKQAyIFQQJGDQ4gAigCmAMhAyAFQQFHDQQgA0EASA0IIAMNA0EBIQUMBgsgASADQQFqIgM2AhQgAyAFRw0ACwsgAkEFNgKQAyACQfgAaiAGEKUOIAJBkANqIAIoAnggAigCfBDHEyEEDAsLIAMQkAEiBQ0BDBoLIANBAEgNAyADRQRAQQEhBQwCCyADEJABIgVFDRkLIANFDQAgBSAEIAP8CgAACwJAIAEQuQsiBEUEQCACQZADaiABEF0gAigCoANBf0cNASACKAKQAyEECyADRQ0IIAUgAxDZEgwICyACIAIpA7gDIg83A6AEIAIgAikDsAMiEDcDmAQgAiACKQOoAyIRNwOQBCACIAIpA6ADIhI3A4gEIAIgAikDmAMiEzcDgAQgAiACKQOQAyIUNwP4AyAKIA83AiggCiAQNwIgIAogETcCGCAKIBI3AhAgCiATNwIIIAogFDcCACACIAIoAsADNgLQAiACIAIpArgDNwPIAiACIAIpArADNwPAAiACIAIpAqgDNwO4AiACIAIpAqADNwOwAiACIAIpApgDNwOoAiACIAIpApADNwOgAiACIAM2AtwCIAIgBTYC2AIgAiADNgLUAiACIAgpAig3A4gDIAIgCCkCIDcDgAMgAiAIKQIYNwP4AiACIAgpAhA3A/ACIAIgCCkCCDcD6AIgAiAIKQIANwPgAiACQZADaiACQfABaiACQdQCaiACQeACahDWAyACIAkpAyg3A6AEIAIgCSkDIDcDmAQgAiAJKQMYNwOQBCACIAkpAxAiDzcDiAQgAiAJKQMINwOABCACIAkpAwA3A/gDIA+nQX9HBEAgAkH4A2oQ/wkLIAEoAhAiBSABKAIUIgNLDQALDAULEJ4VAAsgB0H9AEYNAQsgAkEINgKQAyACQeAAaiAGEKUOIAJBkANqIAIoAmAgAigCZBDHEyEEDAMLIAIgAikD8AE3A7gBIAIgAikD+AE3A8ABIAIgAikDgAI3A8gBIAIgAikDiAI3A9ABIAIgAikDkAI3A9gBIAIgAikDmAI3A+ABDAULIAtB/QBHBEAgAkERNgKQAyACQfAAaiAGEKUOIAJBkANqIAIoAnAgAigCdBDHEyEEDAILIAJBFTYCkAMgAkGAAWogBhClDiACQZADaiACKAKAASACKAKEARDHEyEEDAELIAJBAzYCkAMgAkHoAGogBhClDiACQZADaiACKAJoIAIoAmwQxxMhBAsgAkF/NgLIASACIAQ2ArgBIAIoApACIgNFDQAgAyADQQJ0QQtqQXhxIgNqQQlqIgVFDQAgAigCjAIgA2sgBRDZEgsgAigChAIhBSACKAKIAiIEBEAgBSEDA0AgAxDcCCADQUBrIQMgBEEBayIEDQALCyACKAKAAiIDRQ0BIAUgA0EGdBDZEgwBCyACQX82AsgBIAIgAzYCuAELIAEgAS0AJUEBajoAJSACIAEQuwoiBTYCwAMgAiACKQPgATcDuAMgAiACKQPYATcDsAMgAiACKQPQATcDqAMgAiACKQPIASIPNwOgAyACIAIpA8ABNwOYAyACIAIpA7gBNwOQA0F/IQQCQCAPp0F/RwRAIAUNASACIAIpAswBNwOYASACIAIpAtQBNwOgASACIAIpAtwBNwOoASACIAIoAuQBNgKwASACKQPAASIPpyEFIAIoAsgBIQQgAigCvAEhByACKAK4ASEDDAoLQgAhDyACKAKQAyEDIAVFDQkgBRDvCwwJCyACQZADahD/CUIAIQ8gBSEDDAgLIAJBGDYCkAMgAkHQAGogBhClDiACQZADaiACKAJQIAIoAlQQxxMhASAAQX82AhAgACABNgIADAoLIAYoAgAhAwsgAkECNgKQAwJAIARBAWoiBCAHIAQgB0kbIgdFDQAgB0EDcSEEIAdBBE8EQCAHQXxxIQcDQEEAQQFBAkEDIAlBBGogAy0AAEEKRiIGGyADQQFqLQAAQQpGIggbIANBAmotAABBCkYiChsgA0EDai0AAEEKRiILGyEJIAUgBmogCGogCmogC2ohBSADQQRqIQMgB0EEayIHDQALIARFDQELA0BBACAJQQFqIAMtAABBCkYiBxshCSADQQFqIQMgBSAHaiEFIARBAWsiBA0ACwsgAkGQA2ogBSAJEMcTCyEDIAJBoAJqEJkJQX8hBEEBIQcgAigCoAIiBQRAIAIoAqQCIAVBMGwQ2RILCyABIAEtACVBAWo6ACUgAiABEOUIIgU2AsADIAIgBDYCoAMgAiADNgKQAyACIA83ApQDAkAgB0UEQCAFDQEgD6chByACKQOYAyIPpyEFDAULQX8hBEIAIQ8gBUUNBCAFEO8LDAQLIAJBkANqEP8JQX8hBEIAIQ8gBSEDDAMLIAJBGDYCkAMgAkEwaiAGEKUOIAJBkANqIAIoAjAgAigCNBDHEyEBIABBfzYCECAAIAE2AgAMBQsgAEF/NgIQIAAgATYCAAwECyAAQX82AhAgACACKAKoAjYCAAwDCyAEQX9GDQEgA0GAfnELIQEgACAENgIQIAAgBzYCBCAAIAIpA5gBNwIUIAAgAikDoAE3AhwgACACKQOoATcCJCAAIAIoArABNgIsIAAgBa0gD0KAgICAcIOENwMIIAAgASADQf8BcXI2AgAMAQsgAyABELMMIQEgAEF/NgIQIAAgATYCAAsgAkGwBGokAA8LQQEQpxQAC60zAhx/An4jAEGAAWsiCiQAIAMtACAhCCAKQRRqIAMQ3gkgCiAIOgAkAkACQAJAAkACQAJAAkACQAJAAkAgAygCAEEGRgRAIAMoAgwiGEGgAmooAgAiESADKAIEIgVNDQEgAygCCCIPIBhBnAJqKAIAIAVBJGxqIghBIGooAgAiBk8NAiAIQRxqKAIAIA9B1ABsaiIIKAIAQQBIDQMgCCgCCCEUIAgoAgQhBgJAIAEoAgAiF0UNACABKAIEIQ4DQCAXQQRqIQQgFy8BjgIiCEEMbCEHQX8hCwJAA0AgB0UEQCAIIQsMAgsgBEEIaiEJIARBBGohDCAHQQxrIQcgC0EBaiELIARBDGohBCAGIAwoAgAgFCAJKAIAIgkgCSAUSxsQjxMiDCAUIAlrIAwbIglBAEogCUEASGtB/wFxIglBAUYNAAsgCUUNCgsgDkUNASAOQQFrIQ4gFyALQQJ0aigCkAIhFwwACwALIBRBAEgNBSAURQRAQQEhFwwFCyAUEJABIhdFBEBBARCnFAALIBQEQCAXIAYgFPwKAAALIBhBoAJqKAIAIREMBAsgACAKKQIUNwIgIAAgCikCHDcCKCAAIAooAiQ2AjAgAEGCgICAeDYCECAAIAIoAgg2AhwgACACKQIANwIUIAMoAgwiASgCACEAIAEgAEEBazYCACAAQQFHDQcgAygCDBAwDAcLIAUgEUGcusQAEIUTAAsgDyAGQZy6xAAQhRMAC0GcusQAEJ0VAAsgBSARSQRAIBhBnAJqKAIAIAVBJGxqIghBIGooAgAiBiAPSwRAIAhBHGooAgAgD0HUAGxqIggoAgBBAE4EQCAIKAIgIglFBEBBACEIDAULIAlBGGwiHBCQASINBEAgGEEIaiELQQAhDiAYQaACaiETIAVBJGwhESAYQZwCaiESIA9B1ABsIRpBCCEGQQAhBwJAAkACQAJAA0AgCiAHNgJEIAogDzYCQCAKIAU2AjwgCiALNgI4IApBCGogCkE4ahDnByAKKAIMIghBAEgNCQJAIAhFBEBBASEQDAELIAooAgghBCAIEJABIhBFBEBBARCnFAALIAhFDQAgECAEIAj8CgAACyATKAIAIgQgBU0NBCASKAIAIBFqIgRBIGooAgAiDCAPTQ0DIARBHGooAgAgGmoiBCgCAEEASA0CIAQoAiAiDCAHTQ0BIAQoAhwgBmoiBCgCACIMQQBIDQkCQCAMRQRAQQEhFQwBCyAEQQRrKAIAIQQgDBCQASIVRQRAQQEQpxQACyAMRQ0AIBUgBCAM/AoAAAsgDSAOaiIEIAg2AgAgBEEUaiAMNgIAIARBEGogFTYCACAEQQxqIAw2AgAgBEEIaiAINgIAIARBBGogEDYCACAOQRhqIQ4gBkE8aiEGIAkgB0EBaiIHRw0ACwJAIAlBAUYNACAJQRVPBEAjAEGAIGsiBSQAAkACQAJAAkACQEGVrBQgCSAJQZWsFE8bIgYgCSAJQQF2ayIIIAYgCEsbIgZBqwFPBEAgCEHWqtUqTw0CIAZBGGwiBBCQASIIRQ0DIA0gCSAIIAYgCUHBAEkQmgMgCEEEaygCACIHQXhxIQYgBkEEQQggB0EDcSIHGyAEakkNBCAHQQBHIAYgBEEnaktxDQUgCBC8BQwBCyANIAkgBUGqASAJQcEASRCaAwsgBUGAIGokAAwFCxCeFQALQQQQpxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBACEGIwBBEGsiCyQAIA1BGGohCCANIAlBGGxqIRMgDSEFA0AgCCEEIAVBHGooAgAiECAFQQRqKAIAIAVBIGooAgAiByAFQQhqKAIAIgggByAISRsQjxMiDiAHIAhrIA4bQQBIBEAgCyAFKQIkNwMAIAsgBSgCLDYCCCAFKAIYIREgBiEIAn8CQANAIAggDWoiBUEoaiAFKQIQNwIAIAVBIGogBSkCCDcCACAFQRhqIg4gBSkCADcCACAIRQ0BIAhBGGshCCAQIAVBFGsoAgAgByAFQRBrKAIAIgUgBSAHSxsQjxMiDyAHIAVrIA8bQQBIDQALIAggDWpBGGoMAQsgDQsgETYCACAOQRBrIAc2AgAgDkEUayAQNgIAIA5BDGsiCCALKQMANwIAIAggCygCCDYCCAsgBkEYaiEGIBMgBCIFQRhqIghHDQALIAtBEGokAAtBkAIQkAEiCARAIAhBADsBjgIgCEEANgIAIA0gCUEYbGohEkEAIRNBACERIA0hCUF+IQ8gCCEHA0ACQAJAAn8gD0F+RwRAIA8hDiAaIRYgHSEZIB4hFSAfIRsgCSEEIAwMAQsgCSASRg0BIAkoAhQhGyAJKAIQIRUgCSgCDCEZIAkoAgQhFiAJKAIAIQ4gCUEYaiEEIAkoAggLIQYgDkF/RwRAIAQgEkYEQEF/IQ8gEiEJDAMLIARBGGohCSAEKAIUIR8gBCgCECEeIAQoAgwhHSAEKAIIIQwgBCgCBCEaIAQoAgAiD0F/RgRAQX8hDwwDCyAGIAxHDQIgFiAaIAYQjxMEQCAGIQwMAwsgDgRAIBYgDhDZEgsgBiEMIBlFDQMgFSAZENkSDAMLIBIgBGtBGG4hByAEIBJGDQADQCAEKAIAIgUEQCAEQQRqKAIAIAUQ2RILIARBDGooAgAiBQRAIARBEGooAgAgBRDZEgsgBEEYaiEEIAdBAWsiBw0ACwsgDSAcENkSIBFFBEBBACERDA0LIAghByARIQkDQAJAAkAgBy8BjgIiBQRAIAcgBUEBayIWQQJ0aiIGKAKUAiIFLwGOAiIQQQVPDQJBBSAQa0H//wNxIg0gBigCkAIiBC8BjgIiBksNASAEIAYgDWsiDjsBjgIgBUEFOwGOAiANQQxsIQ8gBUEEaiEMIBBBDGwiFUUiEkUEQCAMIA9qIAwgFfwKAAALIAVBiAFqIQsgEkUEQCALIA9qIAsgFfwKAAALIARBBGohDyAOQQxsIhVBDGohEiAGIA5BAWoiGWtBDGwiDkUiGkUEQCAMIA8gEmogDvwKAAALIARBiAFqIQYgGkUEQCALIAYgEmogDvwKAAALIAogBiAVaiIGKAIINgJgIAogBikCADcDWCAKIAcgFkEMbGoiBigCDDYCeCAKIAYpAgQ3A3AgDyAVaiIHKAIIIQ8gBiAHKQIANwIEIAYgDzYCDCAKIAYoApABNgJAIAogBikCiAE3AzggBiAKKQNYNwKIASAGIAooAmA2ApABIAwgDmoiBiAKKQNwNwIAIAYgCigCeDYCCCALIA5qIgYgCigCQDYCCCAGIAopAzg3AgAgCUEBRg0QIA1BAnQhBiAFQZACaiEMIBBBAnRBBGoiBwRAIAYgDGogDCAH/AoAAAsgBgRAIAwgBCAZQQJ0akGQAmogBvwKAAALIAUoApACIgZBADsBjAIgBiAFNgIAIAUoApQCIgZBATsBjAIgBiAFNgIAIAUoApgCIgZBAjsBjAIgBiAFNgIAIAUoApwCIgZBAzsBjAIgBiAFNgIAIAUoAqACIgZBBDsBjAIgBiAFNgIAIAUoAqQCIgZBBTsBjAIgBiAFNgIADAILQfzzxgBBGUGY9MYAEK8UAAtBqPTGAEEnQdD0xgAQrxQACyAFIQcgCUEBayIJDQALDAwLAkACQCAHLwGOAiIFQQtPBEBBACEQAkADQCAHKAIAIgdFBEBBwAIQkAEiBUUNFCAFIAg2ApACIAVBADsBjgIgBUEANgIAIBFBAWoiEUUNBCAIQQA7AYwCIAggBTYCACAFIQcgESEQDAILIBBBAWohECAHLwGOAkEKSw0ACyAIIQULQZACEJABIgtFDRIgC0EAOwGOAiALQQA2AgAgEEEBayIIRQ0CA0BBwAIQkAEiBEUNEiAEIAs2ApACIARBADsBjgIgBEEANgIAIAtBADsBjAIgCyAENgIAIAQhCyAIQQFrIggNAAsMAgsgByAFQQFqOwGOAiAHIAVBDGxqIgUgBjYCDCAFIBY2AgggBSAONgIEIAUgGzYCkAEgBSAVNgKMASAFIBk2AogBIBNBAWohEwwCC0GQ5MgAEJ0VAAsgBy8BjgIiCEELSQRAIAcgCEEBaiIEOwGOAiAHIAhBDGxqIgggBjYCDCAIIA42AgQgCCAVNgKMASAIIBY2AgggCCAZNgKIASAIIBs2ApABIAcgBEECdGogCzYCkAIgCyAEOwGMAiALIAc2AgAgEEUEQCAFIQggE0EBaiETDAILAkAgEEEDcSILRQRAIBAhBAwBCyAQIQQDQCAEQQFrIQQgByAHLwGOAkECdGooApACIQcgC0EBayILDQALCyAQQQRJBEAgBSEIIBNBAWohEwwCCwNAIAcgBy8BjgJBAnRqKAKQAiIILwGOAkECdCAIaigCkAIiCC8BjgJBAnQgCGooApACIggvAY4CQQJ0IAhqKAKQAiEHIARBBGsiBA0ACyAFIQggE0EBaiETDAELC0HA9sYAQSBB4PbGABCvFAALDA0LIAcgDEHkvsQAEIUTAAtB1L7EABCdFQALIA8gDEHUvsQAEIUTAAsgBSAEQdS+xAAQhRMAC0EEEKcUAAtBnLrEABCdFQALIA8gBkGcusQAEIUTAAsgBSARQZy6xAAQhRMACxCeFQALAkACQAJAAkACQAJAAkACQAJAAkAgASgCACIQBEAgASgCBCIVIQ4gECEMAkADQCAMLwGOAiIFQQxsIQdBfyELIAxBBGoiBiEEAkACQANAIAdFBEAgBSELDAILIARBCGohCSAEQQRqIQ0gB0EMayEHIAtBAWohCyAEQQxqIQQgFyANKAIAIBQgCSgCACIJIAkgFEsbEI8TIg0gFCAJayANGyIJQQBKIAlBAEhrQf8BcSIJQQFGDQALIAlFDQELIA5FDQIgDkEBayEOIAwgC0ECdGooApACIQwMAQsLIBQEQCAXQQRrKAIAIgVBeHEhASABQQRBCCAFQQNxIgUbIBRqSQ0DIAVBAEcgASAUQSdqS3ENBCAXELwFCyAMIAtBDGxqIgEoApABIQUgASATNgKQASABKQKIASEgIAEgETYCjAEgASAINgKIASAKQQE2AiggCiAFNgI0IAogIDcCLCAKQSxqEJQFDAwLAkACQAJAIAVBC08EQCAKQcgAaiEPQQQhBCALQQVJDQMgCyIEQQVrDgIDAgELIAtBDGwiCSAGaiEEAkAgBSALTQ0AIAlBDGohByAFIAtrQQxsIgtFIg5FBEAgBiAHaiAEIAv8CgAACyAODQAgDEGIAWoiBiAHaiAGIAlqIAv8CgAACyAEIBQ2AgAgCSAMaiIGIAg2AogBIAQgFDYCCCAEIBc2AgQgBiATNgKQASAGIBE2AowBIAwgBUEBajsBjgIMCwsgC0EHayELIApB7ABqIQ9BBiEEDAELQQAhCyAKQewAaiEPQQUhBAtBkAIQkAEiCUUNDiAJQQA2AgAgCSAMLwGOAiAEQX9zaiIFOwGOAiAFQQxPDQMgBEEMbCIHIAZqIg4pAgQhISAOKAIAIQ4gB0EMaiENIAVBDGwiBUUiEkUEQCAJQQRqIAYgDWogBfwKAAALIAxBiAFqIQYgEkUEQCAJQYgBaiAGIA1qIAX8CgAACyAMIAQ7AY4CIAogDDYCSCAKIAk2AmwgCiAGIAdqIgUpAgA3AzggCiAFKAIINgJAIAtBDGwiBCAPKAIAIgVBBGoiEmohBgJAIAUvAY4CIgcgC00NACAEQQxqIQ0gByALa0EMbCIPRSIWRQRAIA0gEmogBiAP/AoAAAsgFg0AIA0gBUGIAWoiDWogBCANaiAP/AoAAAsgBiAUNgIAIAUgC0EMbGoiBCAINgKIASAGIBQ2AgggBiAXNgIEIAQgEzYCkAEgBCARNgKMASAFIAdBAWo7AY4CIAogCikDODcDcCAKIAooAkA2AnggDkF/Rg0IIAogCigCeDYCYCAKIAopA3A3A1ggDCgCACIGRQRAQQAhDwwICyAJIQhBACEPICEhICAOIRMDQCAMLwGMAiEEAkACQCAGIgUvAY4CIgdBC08EQCAKQewAaiEMIARBBU8NASAEIQZBBCEEDAILIAVBiAFqIhAgBEEMbCIGaiEJIAVBBGoiDSAGaiEMIARBAWohBiAHQQFqIRECQCAEIAdPBEAgDCAgNwIEIAwgEzYCACAJIAopA1g3AgAgCSAKKAJgNgIIDAELIAZBDGwhCyAHIARrIg9BDGwiDkUiFUUEQCALIA1qIAwgDvwKAAALIBVFBEAgCyAQaiAJIA78CgAACyAMICA3AgQgDCATNgIAIAkgCikDWDcCACAJIAooAmA2AgggD0ECdCIJRQ0AIAVBkAJqIgwgBEECdGpBCGogDCAGQQJ0aiAJ/AoAAAsgBSAROwGOAiAFIAZBAnRqIAg2ApACIAdBAmoiCCAGTQ0LIAcgBGsiCUEBakEDcSIHBEAgBSAEQQJ0akGUAmohBANAIAQoAgAiDCAGOwGMAiAMIAU2AgAgBEEEaiEEIAZBAWohBiAHQQFrIgcNAAsLIAlBA0kNCyAGQQJ0IAVqQZwCaiEEA0AgBEEMaygCACIJIAY7AYwCIAkgBTYCACAEQQhrKAIAIgkgBkEBajsBjAIgCSAFNgIAIARBBGsoAgAiCSAGQQJqOwGMAiAJIAU2AgAgBCgCACIJIAZBA2o7AYwCIAkgBTYCACAEQRBqIQQgCCAGQQRqIgZHDQALDAsLIAQhBgJAAkAgBEEFaw4CAgEACyAEQQdrIQYgCkHoAGohDEEGIQQMAQtBACEGIApB6ABqIQxBBSEEC0HAAhCQASIJRQ0OIAlBADYCACAJIAUvAY4CIARBf3NqIgs7AY4CIAVBBGoiESAEQQxsIg1qIhIoAgAhDiASKQIEISEgCiAFQYgBaiISIA1qIhYoAgg2AkAgCiAWKQIANwM4IAtBDE8NBSANQQxqIQ0gC0EMbCILRSIWRQRAIAlBBGogDSARaiAL/AoAAAsgFkUEQCAJQYgBaiANIBJqIAv8CgAACyAFIAQ7AY4CIAogCikDODcDcCAKIAooAkA2AnggCS8BjgIiC0EBaiENIAtBC0sNByAHIARrIA1HDQYgCUGQAmohByANQQJ0Ig0EQCAHIAUgBEECdGpBlAJqIA38CgAACyAPQQFqIQ9BACEEA0ACQCAHIARBAnRqKAIAIg0gBDsBjAIgDSAJNgIAIAQgC08NACALIAQgBCALSWoiBE8NAQsLIAogBTYCbCAKIAopA3A3AzggCiAKKAJ4NgJAIAogCTYCaCAMKAIAIgxBBGoiFiAGQQxsIg1qIQcgBkEBaiEEIAwvAY4CIgtBAWohGQJAIAYgC08EQCAHICA3AgQgByATNgIAIAwgDWoiByAKKQNYNwKIASAHIAooAmA2ApABDAELIARBDGwhESALIAZrIhpBDGwiEkUiG0UEQCARIBZqIAcgEvwKAAALIAcgIDcCBCAHIBM2AgAgDSAMQYgBaiINaiEHIBtFBEAgDSARaiAHIBL8CgAACyAHIAooAmA2AgggByAKKQNYNwIAIBpBAnQiB0UNACAMQZACaiINIAZBAnRqQQhqIA0gBEECdGogB/wKAAALIAwgGTsBjgIgDCAEQQJ0aiAINgKQAgJAIAtBAmoiCCAETQ0AIAsgBmsiB0EBakEDcSILBEAgDCAGQQJ0akGUAmohBgNAIAYoAgAiDSAEOwGMAiANIAw2AgAgBkEEaiEGIARBAWohBCALQQFrIgsNAAsLIAdBA0kNACAMIARBAnRqQZwCaiEGA0AgBkEMaygCACIHIAQ7AYwCIAcgDDYCACAGQQhrKAIAIgcgBEEBajsBjAIgByAMNgIAIAZBBGsoAgAiByAEQQJqOwGMAiAHIAw2AgAgBigCACIHIARBA2o7AYwCIAcgDDYCACAGQRBqIQYgCCAEQQRqIgRHDQALCyAKIAooAkA2AlAgCiAKKQM4NwNIIA5Bf0YNCSAKIAooAlA2AmAgCiAKKQNINwNYIAkhCCAhISAgDiETIAUiDCgCACIGDQALDAcLQZACEJABIgVFDQ0gAUEANgIEIAEgBTYCACAFQQA2AgAgBUEBOwGOAiAFIBM2ApABIAUgETYCjAEgBSAINgKIASAFIBQ2AgwgBSAXNgIIIAUgFDYCBAwHC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBACAFQQtBwP/IABCHDgALQQAgC0ELQcD/yAAQhw4AC0GY9cgAQShBwPXIABCvFAALQQAgDUEMQejkyAAQhw4AC0HAAhCQASIIRQ0FIAggEDYCkAIgCEEAOwGOAiAIQQA2AgAgFUEBaiIFRQ0BIBBBADsBjAIgECAINgIAIAEgBTYCBCABIAg2AgAgDyAVRw0CIAggITcCCCAIIA42AgQgCEEBOwGOAiAIIAopA1g3AogBIAggCigCYDYCkAEgCCAJNgKUAiAJQQE7AYwCIAkgCDYCAAsgASABKAIIQQFqNgIIDAILQZDkyAAQnRUAC0H8gMkAQTBBrIHJABCvFAALIBggGCgCACIBQQFrNgIAIAFBAUYEQCAYEDALIAAgCikCFDcCICAAIAopAhw3AiggACAKKAIkNgIwIABBgoCAgHg2AhAgACACKAIINgIcIAAgAikCADcCFAsCQCADKAIQIgBFDQAgACAAKAIAIgBBAWs2AgAgAEEBRw0AIAMoAhAgAygCFBC2EAsgCkGAAWokAA8LQbjwyQBBAToAAAALQbjwyQBBAToAAAAL9zECFH8GfiMAQfAHayICJAAgAkEYaiABKAIAIhEgASgCFCIVEIADIAIoAiBBA3QiByACKAIcIgVqIQtBfyEEAkACQAJAAn8CQANAIAQhBiAHRQRAQQQhBkEEIQkMAgsgB0EIayEHIAZBAWohBCAFKAIEIQkgBUEIaiIDIQUgESAJEO8NRQ0AC0EQEJABIglFDQQgBkECaiEHIAkgBDYCACACQQE2AoAHIAIgCTYC/AYgAkEENgL4BkEBIQgDQCADIAtHBEAgByIGQQFqIQcgA0EEaiEEIANBCGohAyARIAQoAgAQ7w1FDQEgAigC+AYgCEYEQCACQfgGaiAIQQFBBEEEELMRIAIoAvwGIQkLIAkgCEECdGogBjYCACACIAhBAWoiCDYCgAcgDUEEaiENDAELCyACKAL8BiEGIAIoAvgGIQ8CQCAIQQJJDQAgCEEVTwRAAkACQAJAIAYoAgQiAyAGKAIASSIJRQRAIAZBCGohBEECIQUDQCADIAQoAgAiA0sNAiAEQQRqIQQgCCAFQQFqIgVHDQALDAILIAZBCGohBEECIQUDQCADIAQoAgAiA00NASAEQQRqIQQgCCAFQQFqIgVHDQALDAELIAUgCEcNAQsCQCAJRQ0AIAhBAXZB/v///wBxIQsgBiAIQQJ0aiIJQQRrIQVBACEEIAYhAwNAIAUoAgAhByAFIAMoAgA2AgAgAyAHNgIAIAkgBCIHQf7///8Dc0ECdGoiBCgCACEKIAQgA0EEaiIEKAIANgIAIAQgCjYCACAFQQhrIQUgA0EIaiEDIAsgB0ECaiIERw0ACyAIQQJxRQ0AIAYgBEECdGoiAygCACEEIAMgCUF9IAdrQQJ0aiIDKAIANgIAIAMgBDYCAAsMAgsgBiAIQQAgCEEBcmdBAXRBPnMQtAEMAQsgBkEEaiEMIAYgCEECdGohC0EAIQQDQCAMQQRrKAIAIgcgDCgCACIJSwRAIAQhAwJ/A0AgAyAGakEEaiAHNgIAIAYgA0UNARogCSAGIANBBGsiA2oiBSgCACIHSQ0ACyAFQQRqCyAJNgIACyAEQQRqIQQgCyAMQQRqIgxHDQALCyAGIAhBAnRqIQkgCEEBdiIDRQ0AQQAhBSADQQFHBEAgA0EBcSAGIA1qIQcgA0H+////B3EhCyAGIQMDQCAHKAIAIQogByADKAIANgIAIAMgCjYCACAJIAVB/v///wNzQQJ0aiIKKAIAIQ4gCiADQQRqIgooAgA2AgAgCiAONgIAIAdBCGshByADQQhqIQMgCyAFQQJqIgVHDQALRQ0BCyAGIAVBAnRqIgMoAgAhBCADIAkgBUF/c0ECdGoiAygCADYCACADIAQ2AgALAkACQAJAAkAgCSAGayIDQfz///8HSw0AIANBAXQiBEH9////B08NAEEAIQwCfyAERQRAQQQhC0EADAELIAQQkAEiC0UNCCADQQJ2CyEOIAYgCUcEQCACKAIgIgNBA3RBCGshBSACKAIcIQggCyEEIAYhBwNAIAcoAgAiCiADTw0DIApBA3QiDSAIaiIKKQIAIRYgBSANayINBEAgCiAKQQhqIA38CgAACyAEIBY3AgAgBEEIaiEEIAVBCGshBSAMQQFqIQwgA0EBayEDIAkgB0EEaiIHRw0ACyACIAM2AiALIA8EQCAGQQRrKAIAIgRBeHEhAyADIA9BAnQiBUEEQQggBEEDcSIEG2pJDQYgBEEARyADIAVBJ2pLcQ0HIAYQvAULIAIoAhghCCACKAIcIQYgAigCICEDIAJBfzYCmAUCQAJAIANFDQAgA0EDdCIJIAZqIQ8gAkHoBWohBSACQcAHaiEHIAJBgAdqIQNBACEEA0AgAkH4BmogASAEIAZqIgpBBGooAgAQmAEgAikD+AYiFkJ/UQRAIAJB6ARqEPQFIAIgAykDODcDoAUgAiADKQMwNwOYBSACIAMpAyg3A5AFIAIgAykDIDcDiAUgAiADKQMYNwOABSACIAMpAxA3A/gEIAIgAykDCDcD8AQgAiADKQMANwPoBAwCCyAFIAcpAyA3AyAgBSAHKQMYNwMYIAUgBykDEDcDECAFIAcpAwg3AwggBSAHKQMANwMAIAIgAykDADcDqAUgAiADKQMINwOwBSACIAMpAxA3A7gFIAIgAykDGDcDwAUgAiADKQMgNwPIBSACIAMpAyg3A9AFIAIgAykDMDcD2AUgAiADKQM4NwPgBSACQYAEaiACQagFakHoAPwKAAAgFkJ+Ug0CIAkgBEEIaiIERw0ACwtBACEPIAgEQCAGQQRrKAIAIgRBeHEhAyADIAhBA3QiBUEEQQggBEEDcSIEG2pJDQcgBEEARyADIAVBJ2pLcQ0IIAYQvAULQQAhB0EIDAULIAJB+AZqIgMgAkGABGpB6AD8CgAAQcADEJABIglFDQIgCSAWNwMAIAlBCGogA0HoAPwKAABBASEHIAJBATYCyAEgAiAJNgLEASACQQQ2AsABIA8gCkEIaiIERg0DIAJB6AVqIQUgAkHAB2ohCiADQQhqIQMDQCACQfgGaiABIARBBGooAgAQmAEgAikD+AYiFkJ/UQRAIAJB6ARqEPQFIAIgAykDODcDoAUgAiADKQMwNwOYBSACIAMpAyg3A5AFIAIgAykDIDcDiAUgAiADKQMYNwOABSACIAMpAxA3A/gEIAIgAykDCDcD8AQgAiADKQMANwPoBAwFCyAEQQhqIQQgBSAKKQMgNwMgIAUgCikDGDcDGCAFIAopAxA3AxAgBSAKKQMINwMIIAUgCikDADcDACACIAMpAwA3A6gFIAIgAykDCDcDsAUgAiADKQMQNwO4BSACIAMpAxg3A8AFIAIgAykDIDcDyAUgAiADKQMoNwPQBSACIAMpAzA3A9gFIAIgAykDODcD4AUgAkGABGogAkGoBWpB6AD8CgAAIBZCflEEQCAEIA9HDQEMBQsgAkH4BmogAkGABGpB6AD8CgAAIAIoAsABIAdGBEAgAkHAAWogB0EBQQhB8AAQsxEgAigCxAEhCQsgCSAHQfAAbGoiDSAWNwMAIA1BCGogAkH4BmpB6AD8CgAAIAIgB0EBaiIHNgLIASAEIA9HDQALDAMLEJ4VAAsgCiADQdjVxQAQhxMAC0EIEKcUAAsgCARAIAZBBGsoAgAiBEF4cSEDIAMgCEEDdCIFQQRBCCAEQQNxIgQbakkNAiAEQQBHIAMgBUEnaktxDQMgBhC8BQsgAigCwAEhDyACKALEAQshBgJAAkAgAigCmAUiCEF/RwRAIAIgAikD+AQ3A0AgAiACKQOABTcDSCACIAIpA4gFNwNQIAIgAikDkAU3A1ggAiACKQKcBTcDMCACIAIoAqQFNgI4IAIoAvQEIQkgAigC8AQhDSACKALsBCEBIAIoAugEIQwgBwRAIAYhAwNAIAMQpQEgA0HwAGohAyAHQQFrIgcNAAsLIA8EQCAGQQRrKAIAIgRBeHEhAyADIA9B8ABsIgVBBEEIIARBA3EiBBtySQ0EIARBAEcgAyAFQSdqS3ENBSAGELwFCyAORQ0BIAtBBGsoAgAiBkF4cSEDIAMgDkEDdCIEQQRBCCAGQQNxIgYbakkNAyAGQQBHIAMgBEEnaktxDQQgCxC8BQwBCyACIAc2AiwgAiAGNgIoIAIgDzYCJAJAIAxFBEAgDkUNASALQQRrKAIAIgNBeHEhASABIA5BA3QiBEEEQQggA0EDcSIDG2pJDQQgA0EARyABIARBJ2pLcQ0FIAsQvAUMAQsgAkF/NgLwASACQagFaiABIAsoAgQiAxCYASACIAIpA7AFNwOABCACIAIpA7gFNwOIBCACIAIpA8AFNwOQBCACIAIpA8gFNwOYBCACIAIpA9AFNwOgBCACIAIpA9gFNwOoBCACIAIpA+AFNwOwBCACIAIpA+gFNwO4BAJAAkACQAJAAkACQAJAAkAgAikDqAUiFkJ/UQRAIAIgAikDgAQ3A+gEIAIgAikDiAQ3A/AEIAIgAikDkAQ3A/gEIAIgAikDmAQ3A4AFIAIgAikDoAQ3A4gFIAIgAikDqAQ3A5AFIAIgAikDsAQ3A5gFIAIgAikDuAQ3A6AFIAJBwAFqEPQFIAIgAikDoAU3A/gBIAIgAikDmAU3A/ABIAIgAikDkAU3A+gBIAIgAikDiAU3A+ABIAIgAikDgAU3A9gBIAIgAikD+AQ3A9ABIAIgAikD8AQ3A8gBIAIgAikD6AQ3A8ABIA4EQCALQQRrKAIAIgNBeHEhASABIA5BA3QiBEEEQQggA0EDcSIDG2pJDQ0gA0EARyABIARBJ2pLcQ0OIAsQvAULQQghCkEAIQUMAQsgAiACKQOQBjcDuAYgAiACKQOIBjcDsAYgAiACKQOABjcDqAYgAiACKQP4BTcDoAYgAiACKQPwBTcDmAYgAiACKQOABDcD6AQgAiACKQOIBDcD8AQgAiACKQOQBDcD+AQgAiACKQOYBDcDgAUgAiACKQOgBDcDiAUgAiACKQOoBDcDkAUgAiACKQOwBDcDmAUgAiACKQO4BDcDoAUgAkHoBmoiEiADEIINIAIgAikDuAYiFzcD4AYgAiACKQOwBiIYNwPYBiACIAIpA6gGIhk3A9AGIAIgAikDoAYiGjcDyAYgAiACKQOYBiIbNwPABiACIBs3A7gHIAIgGjcDwAcgAiAZNwPIByACIBg3A9AHIAIgFzcD2AcgAiACKQPoBjcD4AcgAiACKQPwBjcD6AcgAiACKQOgBTcDsAcgAiACKQOYBTcDqAcgAiACKQOQBTcDoAcgAiACKQOIBTcDmAcgAiACKQOABTcDkAcgAiACKQP4BDcDiAcgAiACKQPwBDcDgAcgAiACKQPoBDcD+AYgAkGQAmoiAyACQfgGakH4APwKAABBgAQQkAEiCkUNASAKIBY3AwAgCkEIaiADQfgA/AoAAEEBIQUgAkEBNgKMAiACIAo2AogCIAJBBDYChAICQCAMQQFGDQAgC0EMaiEIIAxBA3RBCGshCSACQbgHaiEMIAJB8AVqIQ0gAkGwBWohA0GIASEEA0AgAkGoBWogASAIKAIAIhAQmAEgAiADKQMANwOABCACIAMpAwg3A4gEIAIgAykDEDcDkAQgAiADKQMYNwOYBCACIAMpAyA3A6AEIAIgAykDKDcDqAQgAiADKQMwNwOwBCACIAMpAzg3A7gEIAIpA6gFIhZCf1EEQCACIAIpA4AENwPoBCACIAIpA4gENwPwBCACIAIpA5AENwP4BCACIAIpA5gENwOABSACIAIpA6AENwOIBSACIAIpA6gENwOQBSACIAIpA7AENwOYBSACIAIpA7gENwOgBSACQcABahD0BSACIAIpA6AFNwP4ASACIAIpA5gFNwPwASACIAIpA5AFNwPoASACIAIpA4gFNwPgASACIAIpA4AFNwPYASACIAIpA/gENwPQASACIAIpA/AENwPIASACIAIpA+gENwPAAQwCCyACIA0pAyA3A7gGIAIgDSkDGDcDsAYgAiANKQMQNwOoBiACIA0pAwg3A6AGIAIgDSkDADcDmAYgAiACKQOABDcD6AQgAiACKQOIBDcD8AQgAiACKQOQBDcD+AQgAiACKQOYBDcDgAUgAiACKQOgBDcDiAUgAiACKQOoBDcDkAUgAiACKQOwBDcDmAUgAiACKQO4BDcDoAUgEiAQEIINIAIgAikDuAYiFzcD4AYgAiACKQOwBiIYNwPYBiACIAIpA6gGIhk3A9AGIAIgAikDoAYiGjcDyAYgAiACKQOYBiIbNwPABiAMIAIpA/AGNwMwIAwgAikD6AY3AyggDCAXNwMgIAwgGDcDGCAMIBk3AxAgDCAaNwMIIAwgGzcDACACIAIpA6AFNwOwByACIAIpA5gFNwOoByACIAIpA5AFNwOgByACIAIpA4gFNwOYByACIAIpA4AFNwOQByACIAIpA/gENwOIByACIAIpA/AENwOAByACIAIpA+gENwP4BiACQYgDaiACQfgGakH4APwKAAAgAigChAIgBUYEQCACQYQCaiAFQQFBCEGAARCzESACKAKIAiEKCyAEIApqIhBBCGsgFjcDACAQIAJBiANqQfgA/AoAACACIAVBAWoiBTYCjAIgBEGAAWohBCAIQQhqIQggCUEIayIJDQALCyAOBEAgC0EEaygCACIDQXhxIQEgASAOQQN0IgRBBEEIIANBA3EiAxtqSQ0M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AUUNASABQdQAakECIBVBACABKAJ4IBRNGxCTBQwBCyANIAJBnIrIABCFEwALIAEtAJABQQJHDQEgAS0AkQFFDQEgDSABKAIUSw0BIAEgDTYCFAwBC0EAIQIgAS0AfEUNACABLQCRAUUNACABQdQAakECIBVBACABKAJ4IBRNGxCTBQsgACABNgIEIAAgAjYCACADQYACaiQADwtBoKvJAEEoQayKyAAQrxQAC9QuARV/IwBB8AFrIgMkAEEBIQICQAJAIAEoAgBBAUYEQCABKAIEIgUgASgCCE8NASABIAVBAWo2AgQLIAEoAowBIgIgASgCiAEiDkYEQCABKAIgIREgASgCLCEQCyABKAIUIQ0CQCABLQCQAUECRwRAIA0hCwwBCyANIQsgAS0AkQFFDQAgASgCDCALRgRAIAFBDGoQmhILIAEoAhAgDUEUbGoiAiAONgIIIAJBADYCBCACQQA6AAAgASANQQFqIgs2AhQgASgCjAEhAgsgAiAORgRAIAEoAiwgASgCIGohEgsgASgCeCEUIAEoAlwhFQJAAn8CQAJAAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiBSABKAIISQ0BQQEhBAwICyADIAEoAogBNgLYASADIAEpAoABNwPQASABQYABaiEHDAELIAEgBUEBajYCBCADIAEoAogBNgLYASADIAEpAoABNwPQASABQYABaiEHIAEoAgQiBSABKAIITw0BIAEgBUEBajYCBAtBACEFIAIgASgCiAEiBEYEQCABKAIgIQggASgCLCEFCwJAIAEtAJABQQJHDQAgAS0AkQFFDQAgASgCDCALRgRAIAFBDGoQmhILIAEoAhAgC0EUbGoiAiAENgIIIAJBADYCBCACQQA6AAAgASALQQFqNgIUIAEoAowBIQILIAIgBEYEQCABKAIsIAEoAiBqIQoLAkAgASgCiAEiAkF1Sw0AIAJBCmoiCSABKAKEAUsNACAHKAIAIAJqIgwpAABC5MLRi7bu27ryAIUgDEEIajMAAELjygGFhEIAUg0AIAEgCTYCiAFBASEGCyABKAJ4IQwgASgCXCEPAkACQAJAIAEtAHxBAUYEQEEKEJABIglFDQEgCUGoi8gALwAAOwAIIAlBoIvIACkAADcAACADQQo2AuwBIAMgCTYC6AEgA0KAgICAoAE3AuABIAEgAiADQeAB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AiABIAJBAWoiBDYCBCAEIAVPDQEgASACQQJqNgIECyABQQA6AJEBIANByAFqIAEQlAogAygCyAEgAygCzAEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIFRQRAIANBuAFqIAEQlAogAygCvAEhASADKAK4ASECDAELIAFBADoAkQEgA0HAAWogARCUCiADKALAASECIAMoAsQBIgEgBToAkQELIAJBAUcNAAsLIANBsAFqIAEQ5wMgAygCtAEhASADKAKwAUEBcQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBU8NAiABIAJBAWoiBDYCBCAEIAVPDQEgASACQQJqNgIECyABQQA6AJEBIANBqAFqIAEQlAogAygCqAEgAygCrAEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIFRQRAIANBmAFqIAEQlAogAygCnAEhASADKAKYASECDAELIAFBADoAkQEgA0GgAWogARCUCiADKAKgASECIAMoAqQBIgEgBToAkQELIAJBAUcNAAsLIANBkAFqIAEQgQIgAygClAEhASADKAKQAUEBcQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBU8NAiABIAJBAWoiBDYCBCAEIAVPDQEgASACQQJqNgIECyABQQA6AJEBIANBiAFqIAEQlAogAygCiAEgAygCjAEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIFRQRAIANB+ABqIAEQlAogAygCfCEBIAMoAnghAgwBCyABQQA6AJEBIANBgAFqIAEQlAogAygCgAEhAiADKAKEASIBIAU6AJEBCyACQQFHDQALCyABKAIAQQFGBEAgASgCBCICIAEoAghPDQEgASACQQFqNgIEC0EAIQpBACEFIAEoAowBIgYgASgCiAEiBEYEQCABKAIsIQogASgCICEFCyABKAIUIQICQCABLQCQAUECRwRAIAIhBwwBCyACIQcgAS0AkQFFDQAgASgCDCACRgRAIAFBDGoQmhILIAEoAhAg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BEAgASgCBCICIAEoAghPDQEgASACQQFqNgIECyADIAEoAogBIgI2AvgBIAMgASkCgAE3A/ABQQAhBAJAIAIgASgChAFPDQAgAUGAAWooAgAgAmotAABBKEcNACABIAJBAWo2AogBQQEhBAsCQAJAAkACQAJAAkAgAS0AfEEBRgRAQQEQkAEiBUUNASAFQSg6AAAgA0EBNgKsAiADIAU2AqgCIANCgICAgBA3AqACIAEgAiADQaACaiAEEPkICyAERQ0FAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NByABIAJBAWoiBTYCBCAEIAVNDQEgASACQQJqNgIECyABQQA6AJEBIANB6AFqIAEQlAogAygC6AEgAygC7AEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIERQRAIANB2AFqIAEQlAogAygC3AEhASADKALYASECDAELIAFBADoAkQEgA0HgAWogARCUCiADKALgASECIAMoAuQBIgEgBDoAkQELIAJBAUcNAAsLIAEoAgBBAUYEQCABKAIEIgIgASgCCCIETw0GIAEgAkEBaiIFNgIEIAQgBU0NBSABIAJBAmo2AgQLIAEoAhQhBSADIAEoAogBNgKIAiADIAEpAoABNwOAAiADQdABaiABEJYDIAMoAtQBIQECQAJ/AkAgAygC0AFBAUcNACADQcgBaiABEPoDIAMoAswBIQEgAygCyAFBAUcNACADQcABaiABEEAgAygCxAEhASADKALAAQwBC0EAC0EBcQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NAiABIAJBAWoiBjYCBCAEIAZNDQEgASACQQJqNgIECyABQQA6AJEBIANBuAFqIAEQlAogAygCuAEgAygCvAEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIERQRAIANBqAFqIAEQlAogAygCrAEhASADKAKoASECDAELIAFBADoAkQEgA0GwAWogARCUCiADKAKwASECIAMoArQBIgEgBDoAkQELIAJBAUcNAAsLIAEoAgBBAUcNAiABKAIEIgIgASgCCE8NACABIAJBAWoiBDYCBCABKAIIIgIgBE0NACABKAIUIQYgASAEQQFqIgU2AgQgAiAFTQRAQQEhAgwFCyABIARBAmo2AgQMAwsgASADKAKIAjYCiAEgASADKQOAAjcCgAEgBSABKAIUSw0EIAEgBTYCFAwEC0EBEKcUAAsgASgCFCEGCyADIAFBgAFqIgIoAgg2ApgCIAMgAikCADcDkAJBACECAkAgASgCiAEiBCABKAKEAU8NACABKAKAASAEai0AAEEsRw0AIAEgBEEBajYCiAFBASECCwJ/AkAgAS0AfEEBRgRAQQEQkAEiBUUNECAFQSw6AAAgA0EBNgKsAiADIAU2AqgCIANCgICAgBA3AqACIAEgBCADQaACaiACEPkICyACRQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NAiABIAJBAWoiBTYCBCAEIAVNDQEgASACQQJqNgIECyABQQA6AJEBIANBoAFqIAEQlAogAygCoAEgAygCpAEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIERQRAIANBkAFqIAEQlAogAygClAEhASADKAKQASECDAELIAFBADoAkQEgA0GYAWogARCUCiADKAKYASECIAMoApwBIgEgBDoAkQELIAJBAXFFDQALCyADQYgBaiABEJYDIAMoAowBIQECQCADKAKIAUEBRw0AIANBgAFqIAEQ+gMgAygChAEhASADKAKAAUEBRw0AIANB+ABqIAEQQCADKAJ8IQEgAygCeAwCC0EADAELQQELIgJBAUcNACABIAMoApgCNgKIASABIAMpA5ACNwKAASAGIAEoAhRLDQAgASAGNgIUCyACQQFxDQACQAJAAkACQCABKAIAQQFGBEAgASgCBCIEIAEoAggiBU8NBUEBIQIgASAEQQFqIgY2AgQgBSAGTQ0EIAEgBEECaiICNgIEIAEoAhQhBiADIAEoAogBNgKoAiADIAEpAoABNwOgAiABLQCRAUECRw0CIAIgBUkEQCABIARBA2oiAjYCBCACIAVPDQMgASAEQQRqNgIEDAILIAEgAygCqAI2AogBIAEgAykDoAI3AoABQQEhAgwDCyABKAIUIQYgAyABKAKIATYCqAIgAyABKQKA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C0EUIQRBFBCQASIDRQ0PIANBkq7JACgAADYAECADQYquyQApAAA3AAggA0GCrskAKQAANwAADAYLQRchBEEXEJABIgNFDQ8gA0GlrskAKQAANwAPIANBnq7JACkAADcACCADQZauyQApAAA3AAAMBQtBBSEEQQUQkAEiA0UNICADQbGuyQAtAAA6AAQgA0GtrskAKAAANgAADAQLQQ8hBEEPEJABIgNFDQ4gA0G5rskAKQAANwAHIANBsq7JACkAADcAAAwDC0ERIQRBERCQASIDRQ0OIANB0a7JAC0AADoAECADQcmuyQApAAA3AAggA0HBrskAKQAANwAADAILQRUhBEEVEJABIgNFDQ4gA0HfrskAKQAANwANIANB2q7JACkAADcACCADQdKuyQApAAA3AAAMAQtBDSEEQQ0QkAEiA0UNDiADQeyuyQApAAA3AAUgA0HnrskAKQAANwAACyACQYOAgIB4NgLQAyACIAQ2AsgDIAIgAzYCxAMgAiAENgLAAyACQfADaiACQdACaiACQbADaiACQcADahDSAyACIAIpA6AENwOoAyACIAIpA5gENwOgAyACIAIpA5AENwOYAyACIAIpA4gEIgs3A5ADIAIgAikDgAQ3A4gDIAIgAikD+AM3A4ADIAunQX9HBEAgAkGAA2oQ+wkLAkAgAigCUCIDQX9GDQACQAJAAkACQAJAAkBBBSADQYCAgIB4cyADQQBOG0EBaw4FAAECAwQGCyACQQA6AMADIAIgAkHAA2qtQoCAgIDQAoQ3A/ADIAJB8ANqENoRIQUMBAsCQAJAAkAgAigCQEEBaw4CAQIACyACQQE6AMADIAIgAkHAA2qtQoCAgIDQAoQ3A/ADIAJB8ANqENoRIQUMBQsgAkEBOgDAAyACIAJBwANqrUKAgICA0AKENwPwAyACQfADahDaESEFDAQLIAJBAjoAwAMgAiACQcADaq1CgICAgNAChDcD8AMgAkHwA2oQ2hEhBQwDCyACQQQ6AMADIAIgAkHAA2qtQoCAgIDQAoQ3A/ADIAJB8ANqENoRIQUMAgsgAkEHOgDAAyACIAJBwANqrUKAgICA0AKENwPwAyACQfADahDaESEFDAELIAIoAlhBBnQhBCACKAJUIQMDQCAERQ0CIARBQGohBCACQcACaiADQTRqIAMQ5A8hBSADQUBrIQMgBUUN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IAZBFGxqIgIgBDYCCCACQQA2AgQgAkEAOgAAIAEgBkEBajYCFCABKAKMASECCyACIARGBEAgASgCLCABKAIgaiEKCwJAIAEoAogBIgJBe0sNACACQQRqIg8gASgChAFLDQAgDigCACACaigAAEHl3NXrBkcNACABIA82AogBQQEhCAsgASgCeCEOIAEoAlwhDwJAAkACQAJAIAEtAHxBAUYEQEEEEJABIglFDQEgCUHl3NXrBjYAACADQQQ2AvwBIAMgCTYC+AEgA0KAgICAwAA3AvABIAEgAiADQfABaiAIEPkICyABLQCQASECAkACQAJAIAhFBEAgAkH/AXFBAUYNCCABLQCRAUUNAyABKAKMASICIARHDQEgCiABKAIgIgIgASgCLCIEaiIISSAIIAprQQFGcQ0DIAIgB08EQCABIAc2AiAgByECCyAEIAVJDQIgASAFNgIsDAILIAJB/wFxQQFGBH8gAS0AkQFFDQcCQCAEIAEoAowBIgJGBEAgCiABKAIsIgIgASgCICIEaiIISSAIIAprQQFGcQ0JIAQgB08EQCABIAc2AiALIAIgBUkNASABIAU2AiwgBSECDAELIAIgBE8NCCABIAQ2AowBQQAhAiABQQA2AiwgAUEANgIgCyABKAIkIAJGBEAgAUEkahCjEgsgASgCKCACakEqOgAAIAEgAkEBajYCLCABLQCQAQUgAgtB/wFxQQJHDQYgAS0AkQFFDQYgASgCFCICIAZNDQQgASgCECAGQRRsaiIFLQAADQsgBSACNgIEIAEoAogBIQcgASgCFCIFIAEoAgxGBEAgAUEMahCaEgsgASgCECAFQRRsaiICIAc2AhAgAkEANgIIIAIgBjYCBCACQYHUADsBACABIAVBAWo2AhQMBgsgAiAETw0BIAEgBDYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAhggAkYEQCABQRhqEKMSCyABIAJBAWo2AiAgASgCHCACakEqOgAACyABLQB8QQFHDQIgAS0AkQFFDQIgAUHUAGpBKiAPQQAgASgCeCAOTRsQkwUMAgtBARCnFAALIAYgAkGcisgAEIUTAAsgAS0AkAFBAkcNASABLQCRAUUNASAGIAEoAhRLDQEgASAGNgIUDAELAkAgAS0AfEUNACABLQCRAUUNACABQdQAakEqIA9BACABKAJ4IA5NGxCTBQsCQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0CIAEgAkEBaiIHNgIEIAUgB00NASABIAJBAmo2AgQLIAFBADoAkQEgA0HYAWogARCUCiADKALYASADKALcASIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgVFBEAgA0HIAWogARCUCiADKALMASEBIAMoAsgBIQIMAQsgAUEAOgCRASADQdABaiABEJQKIAMoAtABIQIgAygC1AEiASAFOgCRAQsgAkEBRw0ACwsgA0HAAWogARDnAyADKALEASEBIAMoAsABQQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0CIAEgAkEBaiIHNgIEIAUgB00NASABIAJBAmo2AgQLIAFBADoAkQEgA0G4AWogARCUCiADKAK4ASADKAK8ASIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgVFBEAgA0GoAWogARCUCiADKAKsASEBIAMoAqgBIQIMAQsgAUEAOgCRASADQbABaiABEJQKIAMoArABIQIgAygCtAEiASAFOgCRAQsgAkEBRw0ACwsgA0GgAWogARCBAiADKAKkASEBIAMoAqABQQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0CIAEgAkEBaiIHNgIEIAUgB00NASABIAJBAmo2AgQLIAFBADoAkQEgA0GYAWogARCUCiADKAKYASADKAKcASIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgVFBEAgA0GIAWogARCUCiADKAKMASEBIAMoAogBIQIMAQsgAUEAOgCRASADQZABaiABEJQKIAMoApABIQIgAygClAEiASAFOgCRAQsgAkEBRw0ACwsgASgCAEEBRgRAIAEoAgQiAiABKAIITw0BIAEgAkEBajYCBAtBACEFQQAhByABKAKMASIEIAEoAogBIgJGBEAgASgCICEHIAEoAiwhBQsgASgCFCEIAkAgAS0AkAFBAkcNACABLQCRAUUNACABKAIMIAhGBEAgAUEMahCaEgsgASgCECAIQRRsaiIEIAI2AgggBEEANgIEIARBADoAACABIAhBAWo2AhQgASgCjAEhBAtBACEKIAIgBEYEQCABKAIsIAEoAiBqIQoLIAEoAnghDiABKAJcIQ8CQAJAAkACQAJAAkACQCABKAIAQQFGBEAgASgCBCIJIAEoAggiEk8NASABIAlBAWoiEzYCBCASIBNNDQEgASAJQQJqNgIECyADQYABaiABENYCIAMoAoQBIQEgAygCgAFBAUcNBSABKAIAQQFGBEAgASgCBCIEIAEoAghPBEBBASEEDAYLIAEgBEEBajYCBAsgASgCFCEJIAMgASgCiAE2AvgBIAMgASkCgAE3A/ABIANB+ABqIAEQ2wIgAygCfCEBIAMoAnhBAXENAQJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiBCABKAIIIhJPDQMgASAEQQFqIhM2AgQgEiATTQ0BIAEgBEECajYCBAsgAUEAOgCRASADQfAAaiABEJQKIAMoAnAgAygCdCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCIEIAEoAghPDQIgASAEQQFqNgIECwJAIAEtAJEBIhJFBEAgA0HgAGogARCUCiADKAJkIQEgAygCYCEEDAELIAFBADoAkQEgA0HoAGogARCUCiADKAJoIQQgAygCbCIBIBI6AJEBCyAEQQFxRQ0ACwsgA0HYAGogARCuCyADKAJcIQEgAygCWCEEDAMLIAEtAJABQQFGDQYCQCABLQCRAUUNAAJAIAIgBEYEQCAKIAEoAiAiAiABKAIsIgRqIglJIAkgCmtBAUZxDQIgAiAHTwRAIAEgBzYCICAHIQILIAQgBUkNASABIAU2AiwMAQsgAiAETQ0BIAEgAjYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAhggAkYEQCABQRhqEKMSCyABIAJBAWo2AiAgASgCHCACakEUOgAACyABLQB8QQFHDQEgAS0AkQFFDQEgAUHUAGpBFCAPQQAgASgCeCAOTRsQkwUMAQtBASEEDAELIAEtAJABQQJHDQQgAS0AkQFFDQQgCCABKAIUSw0EIAEgCDYCFEEBDAULIARBAUcNACABIAMoAvgBNgKIASABIAMpA/ABNwKAASAJIAEoAhRLDQAgASAJNgIUCyAEQQFHDQACQCABKAIAQQFGBEAgASgCBCIEIAEoAghPDQEgASAEQQFqNgIECwJAIAEtAJEBIglBAUYEQCADQcgAaiABEIEDIAMoAkwhASADKAJIIQQMAQsgAUEBOgCRASADQdAAaiABEIEDIAMoAlAhBCADKAJUIgEgCToAkQELIARBAXFFDQELIANBQGsgARC6BSADKAJEIQEgAygCQEEBRw0AIANBOGogARDRAyADKAI8IQEgAygCOEEBcQ0BCyABKAIAQQFGBEAgASgCBCIEIAEoAghPDQEgASAEQQFqNgIECyADQTBqIAEQyQUgAygCNCEBIAMoAjBBAXENAANAIANBKGogARDJBSADKAIsIQEgAygCKEEBcUUNAAsLAkAgAS0AkAEiBEEBRgR/IAEtAJEBRQ0BAkAgAiABKAKMASIERgRAIAogASgCLCICIAEoAiAiBGoiCUkgCSAKa0EBRnENAyAEIAdPBEAgASAHNgIgCyACIAVJDQEgASAFNgIsIAUhAgwBCyACIARNDQIgASACNgKMAUEAIQIgAUEANgIsIAFBADYCIAsgASgCJCACRgRAIAFBJGoQoxILIAEoAiggAmpBFDoAACABIAJBAWo2AiwgAS0AkAEFIAQLQf8BcUECRw0AIAEtAJEBRQ0AAkAgCCABKAIUIgJJBEAgASgCECAIQRRsaiIFLQAADQEgBSACNgIEIAEoAogBIQcgASgCFCIFIAEoAgxGBEAgAUEMahCaEgsgASgCECAFQRRsaiICIAc2AhAgAkEANgIIIAIgCDYCBCACQYEoOwEAIAEgBUEBajYCFAwCCyAIIAJBnIrIABCFEwALDAULAkAgAS0AfEUNACABLQCRAUUNACABQdQAakEUIA9BACABKAJ4IA5NGxCTBQsCQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0CIAEgAkEBaiIHNgIEIAUgB00NASABIAJBAmo2AgQLIAFBADoAkQEgA0EgaiABEJQKIAMoAiAgAygCJCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgVFBEAgA0EQaiABEJQKIAMoAhQhASADKAIQIQIMAQsgAUEAOgCRASADQRhqIAEQlAog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A8AGIAMgAykCrAE3A8gGIAMgAykCtAE3A9AGIAMgAygCvAE2AtgGIAMoAqABIgdBfUsNASADIAMoAtgGNgK8ASADIAMpA9AGNwK0ASADIAMpA8gGNwKsASADIAMpA8AGNwKkAQwCCxDTEwALIANBoAFqQQRyEJYRIANBADYCsAFBFiEHCyADIAc2AqABQcDwyQACfkHQ8MkALQAABEBByPDJACkDACEmQcDwyQApAwAMAQsgA0HABmoQuxFB0PDJAEEBOgAAQcjwyQAgAykDyAYiJjcDACADKQPABgsiJ0IBfDcDACADIAMpAqQBNwMgIAMgAykCrAE3AyggAyADKQK0ATcDMCADIAMoArwBNgI4IANBkKnJACkDADcDECADQZipyQAoAgA2AhgCQAJAAkACQCADKAIEIgIgAygCDCIMRgRAQQghCUEIIQ4MAQsgA0G4A2oiBUE8aiEcIANBwAZqIgRBPGohDyADQZAEaiIGQTxqIR0gA0GQBWoiCUE8aiEeIANBoAFqIgpBPGohFCAKQQRyIQggA0GYAmohCyAEQQhqIRogBUEBciEVIAVByABqIR8gBEHIAGohECAEQQFyIQQgBkEBciEWIAZByABqISAgA0HAAWohFyAJQQFyIRggCUHIAGohISADQaQDaiENIANB7AVqIRsgA0GUAmohIiADQZACaiEZIANBgAJqISMgA0HwAWohJUEAIQZBCCEJQQAhCkEAIQVBCCEOA0ACQCADIAJB2ABqNgIEAkACQAJAAkACQAJAIAIoAgAiEUF/RwRAICMgAigCUDYCCCAjIAIpAkg3AgAgIiACQQRqQcQA/AoAACAIIAMpAyA3AgAgCCADKQMoNwIIIAggAykDMDcCECAIIAMoAjg2AhggFCADKQMQNwIAIBQgAygCGDYCCCADIAc2AqABIAMgBjYC2AEgAyAJNgLUASADIAo2AtABIAMgJjcDyAEgAyAnNwPAASADIBE2ApACIAMgJDYC/AEgAyAFNgL4ASADIA42AvQBIAMgEzYC8AEgAyAoNwPoASADKAKAAiEMIAMoAoQCIREgAygCiAIhAiADQdgCaiAZQcgA/AoAACADQegFaiABIBEgAhDcBCADKALoBUF/Rw0BIAMgGykCEDcDsAMgAyAbKQIINwOoAyADIBspAgAiKTcDoAMCQAJAAkAgKadBAWsOAgECAAsCQAJAAkAgAygC2AIiAkUEQCADKALgAkEVRg0BCyADKAKkAyIHKAIAIQYgByAGQQFqNgIAIAZBAEgNASACQQRGDQIgAyACNgLABiADQcAGaiIBQQRyICJBxAD8CgAAIAMgAa1CgICAgPAghDcDgAUgA0GgBmpBoe/BACADQYAFahC4DCADQQA6AKwGIANBfzYCgAYgARCuByADIAMpA4AGIig3A/gEIAMgAykD+AUiKTcD8AQgAyADKQPwBSIqNwPoBCADIAMpAqQGNwNwIAMgAygCrAY2AnggAykDiAYhJyADKQOQBiEmIAMoApgGIQogAygCnAYhCSADKAKgBiEGIAcgBygCACIBQQFrNgIAIAMgKjcChAEgAyApNwKMASADICg3ApQBIAFBAUcNCSAHEDAMCQsgAygCpAMiEigCACECIBIgAkEBazYCACADIAMoAjg2ApgBIAMgAykDMDcDkAEgAyADKQMoNwOIASADIAMpAyA3A4ABIAMgAykDEDcDcCADIAMoAhg2AnggAkEBRgRAIAMoAqQDEDALIANB2AJqEK4HDAoLAAsgAygCqAMhBiAFIBNGBH8gJRCpEiADKAL0AQUgDgsgBUHIAGxqIgIgBjYCBCACIAc2AgAgAiALKQMANwMIIAIgCykDCDcDECACIAspAxA3AxggAiALKQMYNwMgIAIgCykDIDcDKCACIAspAyg3AzAgAiALKQMwNwM4IAIgCykDODcDQCADIAVBAWo2AvgBDAcLIA0QrRAgAygCtAMhAkUEQCADQcAGaiANIBkQqQMgAy0AwAYiBUH+AUYEQCADIAMpA9gGIic3AP8FIAMgAykD0AYiJjcA9wUgAyADKQPIBiIoNwDvBSADIAMpAvwGNwPoBCADIAMoAoQHNgLwBCADICg3AoQBIAMgJjcCjAEgAyAnNwKUASADKQPgBiEnIAMpA+gGISYgAygC8AYhCiADKAL0BiEJIAMoAvgGIQYgAyADKALwBDYCeCADIAMpA+gENwNwIAIgAigCACIBQQFrNgIAIAFBAUcNByACEDAMBwsgICAQKQMINwMIICAgECkDADcDACADIAQpABc3AP8FIAMgBCkAEDcD+AUgAyAEKQAINwPwBSADIAQpAAA3A+gFIAMgDykAADcD6AQgAyAPKAAINgLwBCADKQPgBiEnIAMpA+gG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QeACaiAGEH8gAigC8AJBf0YNAiAGQSBqIQYgAigCgAEgAUYEQCACQYABahCUEiACKAKEASEECyADIARqIgUgAikD4AI3AwAgBSACKQOIAzcDKCAFIAIpA4ADNwMgIAUgAikD+AI3AxggBSACKQPwAjcDECAFIAIpA+gCNwMIIAIgAUEBaiIBNgKIASADQTBqIQMgB0EgayIHDQALCyAAIAIoAogBNgIIIAAgAikCgAE3AgAgAEGEgICAeDYCEAwSCyAAQX82AhAgACACKALgAjYCACACQYABahCPCSACKAKAASIARQ0RIAQgAEEwbBDZEgwRCwJAIAEoAgwiA0UEQEEBIQEMAQsgASgCCCEEIAMQkAEiAUUNEiADRQ0AIAEgBCAD/AoAAAsgAEGDgICAeDYCECAAIAM2AgggACABNgIEIAAgAzYCAAwQCyABKAIMIQMgASgCCCACAn5B0PDJAC0AAARAQcjwyQApAwAhDUHA8MkAKQMADAELIAJB8ANqELsRQdDwyQBBAToAAEHI8MkAIAIpA/gDIg03AwAgAikD8AMLIgw3A5ABQcDwyQAgDEIBfDcDACACQQA2AqgBIAJCgICAgIABNwOgASACIA03A5gBIAJCgICAgHA3A4ABIAJBkKnJACkDADcCrAEgAkGYqckAKQMANwK0ASADRQRAIAAgAikDuAE3AyggACACKQOwATcDICAAIAIpA6gBNwMYIAAgAikDoAE3AxAgACACKQOYATcDCCAAIAIpA5ABNwMADBALIANBMGwhByACQZABaiEKQQhqIQMgAkH4A2ohBQNAIAIoAoABQQFGDQsCQAJAAkAgAygCACIERQRAQQEhAQwBCyADQQRrKAIAIQYgBBCQASIBRQ0VIAQEQCABIAYgBPwKAAALIARBf0YNAQsgAigChAEiBkEASgRAIAIoAogBIgtBBGsoAgAiCEF4cSEJIAlBBEEIIAhBA3EiCBsgBmpJDRYgCEEARyAJIAZBJ2pLcQ0XIAsQvAULIAIgBDYCjAEgAiABNgKIASACQX82AoQBIAIgAikDiAEiDDcCtAIgAiAENgKwAiACQcADaiADQQhqEH8gAigC0ANBf0cNASACKALAAyEBIARFDQAgDKcgBBDZEgsgAEF/NgIQIAAgATYCACACQYABahDDCwwRCyACQfADaiAKIAJBsAJqIAJB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AAsLIAYgETYCBCAGIBI2AgAgBiAVNgIMIAYgFDYCCCAGIA8pAwA3AhAgBiAPKQMINwIYCyADQSBrIQMgBEEgaiEEIBYgBUEBaiIFRw0ACwsgCUEgayEGIApBBXRBIGsiASACaiELIAAgAWohBwNAAkAgCSgCACIBIAIoAgAiA0cEQCABIANrIQwMAQtBBCEMIAEEQCAJKAIIIgEgAigCCCIDSyABIANJayAJKAIEIgEgAigCBCIDSyABIANJayABIANGGyIMQf8BcQ0BQQwhDAsgCSAMaigCACIBIAIgDGooAgAiA0sgASADSWshDAsgACAJIAIgDEF/RiIDGyIBKQIYNwIYIAAgASkCEDcCECAAIAEpAgg3AgggACABKQIANwIAIAxBf0dBBXQhBCADQQV0AkAgCygCACIBIAYoAgAiA0cEQCABIANrIQwMAQtBBCENIAEEQCALKAIIIgEgBigCCCIDSyABIANJayALKAIEIgEgBigCBCIDSyABIANJayABIANGGyIMQf8BcQ0BQQwhDQsgCyANaigCACIBIAYgDWooAgAiA0sgASADSWshDAsgAEEgaiEAIAIgBGohAiAJaiEJIAcgBiALIAxBf0YiAxsiASkCGDcCGCAHIAEpAhA3AhAgByABKQIINwIIIAcgASkCADcCACAHQSBrIQcgBkFgQQAgAxtqIQYgC0FgQQAgDEF/RxtqIQsgE0EBayITDQALIAZBIGohASAKQQFxBH8gACACIAkgASACSyIEGyIDKQIYNwIYIAAgAykCEDcCECAAIAMpAgg3AgggACADKQIANwIAIAkgASACTUEFdGohCSACIARBBXRqBSACCyABRiAJIAtBIGpGcQ0AEKQVAAsgD0EgaiQAC40kAh1/Bn4jAEHgA2siAyQAAkACQAJAAkAgASgCCCIIBEAgASgCBCIWIAhBAnRqIRsgAkEIaiEXIANBwANqIQUgA0HMAWohGCABKAIAIgFBFGohGSABQRBqIRoDQAJAAkACQAJAIBYoAgAiASAZKAIASQRAIBooAgAgAUHIAGxqIgEpAgAhICABQX82AgAgAyAgNwMIIAMgASkCCDcDECADIAEpAhA3AxggAyABKQIYNwMgIAMgASkCIDcDKCADIAEpAig3AzAgAyABKQIwNwM4ICCnIglBf0YNBAJAAkBBAiAJQQNrIAlB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BCAFSWsgASADSSABIANLayABIANGGyIBQf8BcQ0DIAgoAgwiASACKAIMIgNLIAEgA0lrIQEMAwsgBEEBRw0BCyAFIARrIQEMAQsgASADSSABIANLayEBCyAAIAIgCCABwEEATiIEGyIDKAIQNgIQIAAgAykCCDcCCCAAIAMpAgA3AgAgBEEUbCEFIAFBgAFxQQd2QRRsIQ4gBigCBCEBIAYoAgAhBCAJKAIEIQMCQAJAAkAgCSgCACILQQFGBEAgBEEBcUUNASAJKAIIIgQgBigCCCILSyAEIAtJayABIANJIAEgA0trIAEgA0YbIgFB/wFxDQMgCSgCDCIBIAYoAgwiA0sgASADSWshAQwDCyAEQQFHDQELIAsgBGshAQwBCyABIANJIAEgA0trIQELIABBFGohACACIAVqIQIgCCAOaiEIIAcgCSAGIAHAIgNBAE4bIgEoAhA2AhAgByABKQIINwIIIAcgASkCADcCACAHQRRrIQcgBiADQQd1IgFBFGxqIQYgCSABQX9zQRRsaiEJIA1BAWsiDQ0ACyAGQRRqIQEgCkEBcQR/IAAgAiAIIAEgAksiBBsiAygCEDYCECAAIAMpAgg3AgggACADKQIANwIAIAggASACTUEUbGohCCACIARBFGxqBSACCyABRiAIIAlBFGpGcQ0AEKQVAAsgFUEgaiQAC54jAhd/An4jAEEgayIJJAACQAJAIAJBAE4EQAJAAkACQAJAIAJFBEBBASEGDAELIAIQkAEiBkUNAyAGIQQgASEDAkAgAiIFQRBJDQAgBUHw////B3EhDwNAIAYgB2ohBCABIAdqIgNBAWosAAAiDEF/c0GAAXFBB3YgAywAACINQX9zQYABcUEHdmogA0ECaiwAACIKQX9zQYABcUEHdmogA0EDaiwAACIIQX9zQYABcUEHdmogA0EEaiwAACILQX9zQYABcUEHdmogA0EFaiwAACIOQX9zQYABcUEHdmogA0EGaiwAACIQQX9zQYABcUEHdmogA0EHaiwAACIRQX9zQYABcUEHdmogA0EIaiwAACISQX9zQYABcUEHdmogA0EJaiwAACITQX9zQYABcUEHdmogA0EKaiwAACIUQX9zQYABcUEHdmogA0ELaiwAACIVQX9zQYABcUEHdmogA0EMaiwAACIWQX9zQYABcUEHdmogA0ENaiwAACIX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IAcgETYCCCAHIAs2AgQgByAPNgIAQRgQkAEiA0UNBSADQQA6ABQgA0H05scANgIMIAMgBzYCCCADQoGAgIAQNwIAQeQAEJABIgRFDQUgBCADNgJgIARBADoAXCAEIBA2AkwgBCARNgJIIAQgCzYCRCAEIAg2AkAgBEEaOgA8IARBfzYCLCAEIBA2AiggBCARNgIkIAQgCzYCICAEIAg2AhwgBEF/NgIQIARBADYCCCAEQQA2AgAgAigCCCIGIAIoAgBGBEAgAiAGQQFBCEHIABCzESACKAIIIQYLIAIoAgQgBkHIAGxqIgNBADsBRCADQQo2AkAgA0H4/McANgI8IANBfzYCOCADQgQ3AzAgA0IBNwMoIAMgBDYCJCADQQE2AiAgA0F+NgIAIAIgBkEBajYCCAwCCyALIAsoAgAiA0EBazYCACADQQFGBEAgCxAwCyACIAIoAgg2AggMAQsACyAAIAIoAgg2AgggACACKQMANwIAAkACQCABKAIARQRAIAEoAgQiACgCACEDIAAgA0EBazYCACADQQFGDQEMAgsgASgCBCIAKAIAIQMgACADQQFrNgIAIANBAUcNAQsgASgCBBAwCyACQeALaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQbjwyQBBAToAAAALkCQCDn8BfiMAQZABayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAiBQJ/AkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4MAQIODwMEBRMGBwgJAAsgA0EGNgIUIANB1ZDJADYCECADQQ82AgwgA0H4hccANgIIIAIgA0EIahDFCCIADQlBAAwKCyADQQc2AhQgA0HkmckANgIQIANBDzYCDCADQfiFxwA2AgggAiADQQhqEMUIIgANCiAFQQE2AgAMHwsgA0EENgIUIANB65nJADYCECADQQ82AgwgA0H4hccANgIIIAIgA0EIahDFCCIADQogBUECNgIADB4LAkACQEEVIAIoAgAiEEGAgICAeHMgEEEAThtBFGsOAgABDgsgAigCDCIJQQR0IQYgAigCBCEHIAIoAggiCCECAn8CQAJAIAlFDQAgAkEQaiECIAgoAgAiAEF/Rg0AIAMgCCgCDDYCFCAD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EgwhCyADLQBhIgdBAkcEQCAHQQFrDQUMAgsgAygCCCEHIANBfzYCCCAHQX9GDSggDSALKAIINgIIIA0gCykCADcCACADIAc2AnggBkEBaiEGIANB+ABqEIgIIAlBIGsiCQ0ACyAADAILQePjyABBBRCyEwwDCyABQSBqCyEGIAFBIGohAgwbC0H9mskAQQQQshMLIQQgA0HIAGoQwBJBfyEKDBgLIAMgAykDEDcDQCADIAMoAgw2AjwgAyABNgI4An8CQAJAAn8gACAAIAJGDQAaIARBAmohDCAOIA1rQUBrIQcgA0H4AGpBBHIhCUEAIQQCQAJ/AkADQCADIAQgCGoiCkFAayICNgIcIApBIGooAgAiBkF/Rg0DIAMgDDYCKCADIApBLGooAgAiATYCWCADIApBJGopAgAiETcDUCADIApBMGopAgA3AwggAyAKQThqKQIANwMQIANBBTYCdCADQePjyAA2AnAgA0EENgJsIANB/ZrJADYCaCAJIBE3AgAgCSABNgIIIAMgBjYCeCADQeAAaiADQegAaiADQfgAahDHByADLQBgQQFGBEAgAygCZAwDCwJAIAMtAGFBAWsOAgcAAgsgAygCCCEBIANBfzYCCCABQX9GDSkgCSALKAIINgIIIAkgCykCADcCACADIAE2AnggDEEBaiEMIAQgB2ogA0H4AGoQiAggBEEgaiEEDQALIAAMAwsgAygCCCEBIANBfzYCCCABQX9GDScgAyABNgJ4IAMgCygCCDYChAEgAyALKQIANwJ8IANB6ABqIANB+ABqEPoHIAMtAGhFDQMgAygCbAshBCADQThqEIgIDB4LIApBQGsLIQJB/ZrJAEEEELMTDAILIANB+ABqIAMtAGkgA0E4ahCHASADKAJ8IQQgAygCeCIKQX9GDRsgAyAENgJMIAMgCjYCSCAAIAJGBEAgACECDBoLIANB+ABqQQRyIQYCfwJAAkADQCADIAJBIGo2AhwgAigCACIBQX9GDQEgAyADKAIoQQFqNgIoIAMgAigCDDYCWCADIAIpAgQ3A1AgAyACKQIYNwOAASADIAIpAhA3A3ggAygCCEF/RwRAIANBCGoQiAgLIAMgAykDgAE3AxAgAyADKQN4NwMIIANBBTYCdCADQePjyAA2AnAgA0EENgJsIANB/ZrJADYCaCAGIAMpA1A3AgAgBiADKAJYNgIIIAMgATYCeCADQeAAaiADQegAaiADQfgAahDHByADLQBgQQFGBEAgAkEgaiECIAMoAmQhBCADQcgAahDAEgwgCwJAIAMtAGEiAUECRwRAIAFBAWsNBAwBCyMAQRBrIgIkACADQQhqIgEoAgAhACABQX82AgAgAEF/RgRAQbSMxwBBLEHYjccAEMATAAsgAiAANgIAIAIgASgCDDYCDCACIAEpAgQ3AgQgAhCICCACQRBqJAAgAygCJCIAIAMoAhwiAkcNAQweCwtB4+PIAEEFELITDAILIAJBIGohAgwbC0H9mskAQQQQshMLIQQgAkEgaiECIANByABqEMASQX8hCgwZC0Hj48gAQQUQshMLIQQgA0E4ahCICAwZC0H9mskAQQQQshMhBAwYC0EBCyEKQQEhBgwXCyADQQQ2AhQgA0H2mckANgIQIANBDzYCDCADQfiFxwA2AgggAiADQQhqEMUIIgANDCAFQQY2AgAMHAsgA0EGNgIUIANB+pnJADYCECADQQ82AgwgA0H4hccANgIIIAIgA0EIahDFCCIADQwgBUEHNgIADBsLIANBBTYCFCADQYyayQA2AhAgA0EPNgIMIANB+IXHADYCCCACIANBCGoQxQgiAA0NIAVBCTYCAAwaCyADQQY2AhQgA0HssckANgIQIANBDzYCDCADQfiFxwA2AgggAiADQQhqEMUIIgANDSAFQQo2AgAMGQsgA0EFNgIUIANBkZrJADYCECADQQ82AgwgA0H4hccANgIIIAIgA0EIahDFCCIADQ0gBUELNgIADBgLIANBAzYCFCADQaGayQA2AhAgA0EPNgIMIANB+IXHADYCCCACIANBCGoQxQgiAA0NIAVBDDYCAAwXCyAFIAA2AgRBfws2AgAMFQsgBSAANgIEIAVBfzYCAAwUCyAFIAA2AgQgBUF/NgIADBMLIANBAzYCFCADQe+ZyQA2AhAgA0EPNgIMIANB+IXHADYCCCAFIAIgA0EIahDFCCIABH8gBSAANgIEQX8FQQMLNgIADBILIANBBDYCFCADQfKZyQA2AhAgA0EPNgIMIANB+IXHADYCCCAFIAIgA0EIahDFCCIABH8gBSAANgIEQX8FQQQLNgIADBELIAIgA0GPAWpBtIrHABDoEyEEDAwLIAUgADYCBCAFQX82AgAMDwsgBSAANgIEIAVBfzYCAAwOCyADQQg2AhQgA0GEmskANgIQIANBDzYCDCADQfiFxwA2AgggBSACIANBCGoQxQgiAAR/IAUgADYCBEF/BUEICzYCAAwNCyAFIAA2AgQgBUF/NgIADAwLIAUgADYCBCAFQX82AgAMCwsgBSAANgIEIAVBfzYCAAwKCyAFIAA2AgQgBUF/NgIADAkLIAIhBgsgCkF/RgRAIAYhAgwBCyADKAIIQX9GIQYgAygCKCEMIAMoAiAhECADKAIYIQkgAiEBDAELIAAgAkcEQCAAIAJrQQV2IQEDQCACEIgIIAJBEGoQiAggAkEgaiECIAFBAWsiAQ0ACwsgAygCICIGBEAgAygCGCICQQRrKAIAIgBBeHEhByAHQQRBCCAAQQNxIgEbIAZBBXQiAHJJDQUgAUEARyAHIABBJ2pLcQ0GIAIQvAULIAMoAghBf0YNAiADQQhqEIgIDAILIAMgBDYCNCADIAo2AjAgACABa0EFdiEHIAAgAUYiAEUEQCAHIQIDQCABEIgIIAFBEGoQiAggAUEgaiEBIAJBAWsiAg0ACwsgEARAIAkgEEEFdBDZEgtBACECIABFBEAgAyAMNgJ4IAcgDGogA0H4AGpBlI/HABDREiECCyAGRQRAIANBCGoQiAgLIAJFDQAgA0EwahDAEiACIQQMAQtBCBCQASIADQFBuPDJAEEBOgAAAAsgBUF/NgIAIAUgBDYCBAwDCyAAIAQ2AgQgACAKNgIAIAUgADYCBCAFQQU2AgAMAgtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIANBkAFqJAAPC0G0jMcAQSxB2I3HABDAEwALiiMCEH8HfiMAQYACayIIJAACQAJAIAFBIUkEQCABIQ4MAQsgAkFAaiETAkADQCAERQRAIAAgASACIANBASAGELECDAQLIAAgAUEDdiIHQcADbGohCSAAIAdBCHRqIQ4gBEEBayEEIAgCfyABQcAATwRAIAAgDiAJIAcgBhDjDAwBCyAIQbgBaiAGKAIAIgcoAgAgABDaByAIKAK8ASENIAgoArgBIAhBsAFqIAcoAgAgDhDaByAIKAKwASELQQFGBEAgCyANIAgoArQBSXEhCwsgCEGoAWogBygCACAAENoHIAgoAqwBIQ0gCCgCqAEgCEGgAWogBygCACAJENoHIAgoAqABIQxBAUYEQCAMIA0gCCgCpAFJcSEMCyAAIAsgDHNBAXENABogCEGYAWogBygCACAOENoHIAgoApwBIQ0gCCgCmAEhDyAIQZABaiAHKAIAIAkQ2gcgCCgCkAEhByAJIA4gD0EBRgR/IAcgDSAIKAKUAUlxBSAHCyALc0EBcRsLIg0pAjg3A/gBIAggDSkCMDcD8AEgCCANKQIoNwPoASAIIA0pAiA3A+ABIAggDSkCGDcD2AEgCCANKQIQNwPQASAIIA0pAgg3A8gBIAggDSkCADcDwAEgDSAAa0EGdiEPAkACQCAFRQ0AIAhBiAFqIAYoAgAiBygCACAFENoHIAgoAowBIQkgCCgCiAEgCEGAAWogBygCACANENoHIAgoAoABIQdBAUYEQCAHQQFHDQIgCSAIKAKEAUkNAQwCCyAHQQFHDQELIAEgA0sNAiAGKAIAIQxBACEOIAAhByABQQZ0IhUgAmoiEiELIA8hCQNAIAcgACAJQQZ0aiIRSQRAA0AgCEH4AGogDCgCACAHENoHIAgoAnwhECAIKAJ4IRQgCEHwAGogDCgCACANENoHIAgoAnAhCiAOQQZ0IAIgC0FAaiILIBRBAUYEfyAKIBAgCCgCdElxBSAKC0EBcSIQG2oiCiAHKQI4NwI4IAogBykCMDcCMCAKIAcpAig3AiggCiAHKQIgNwIgIAogBykCGDcCGCAKIAcpAhA3AhAgCiAHKQIINwIIIAogBykCADcCACAOIBBqIQ4gESAHQUBrIgdLDQALCyABIAlHBEAgC0FAaiILIA5BBnRqIgkgBykCODcCOCAJIAcpAjA3AjAgCSAHKQIoNwIoIAkgBykCIDcCICAJIAcpAhg3AhggCSAHKQIQNwIQIAkgBykCCDcCCCAJIAcpAgA3AgAgB0FAayEHIAEhCQwBCwsgDkEGdCIRBEAgACACIBH8CgAACyABIA5rIRACQCABIA5GDQAgACARaiEJQQAhDCAOQQFqIAFHBEAgEEEBcSAQQX5xIRYgEyAVaiEKIAkhBwNAIAcgCikCODcCOCAHIAopAjA3AjAgByAKKQIoNwIoIAcgCikCIDcCICAHIAopAhg3AhggByAKKQIQNwIQIAcgCikCCDcCCCAHIAopAgA3AgAgB0FAayASIAxB/v//H3NBBnRqIgspAgA3AgAgB0HIAGogCykCCDcCACAHQdAAaiALKQIQNwIAIAdB2ABqIAspAhg3AgAgB0HgAGogCykCIDcCACAHQegAaiALKQIoNwIAIAdB8ABqIAspAjA3AgAgB0H4AGogC0E4aikCADcCACAKQYABayEKIAdBgAFqIQcgFiAMQQJqIgxHDQALRQ0BCyAJIAxBBnRqIgcgEiAMQX9zQQZ0aiIJKQI4NwI4IAcgCSkCMDcCMCAHIAkpAig3AiggByAJKQIgNwIgIAcgCSkCGDcCGCAHIAkpAhA3AhAgByAJKQIINwIIIAcgCSkCADcCAAsgDkUNACABIA5PBEAgACARaiAQIAIgAyAEIAhBwAFqIAYQiAEgDiIBQSFJDQQMAgtBxLDJAEETQdD1yAAQvxMMAgsgASADSw0BQQAhCyAAIQcgAUEGdCIKIAJqIhEhDANAIAcgACAPQQZ0aiIJSQRAA0AgCEHoAGogBigCACIFKAIAIA0Q2gcgCCgCbCEQIAgoAmggCEHgAGogBSgCACAHENoHIAgoAmAhDkEBRgRAIA4gECAIKAJkSXEhDgsgC0EGdCAMQUBqIgwgAiAOQQFxG2oiBSAHKQI4NwI4IAUgBykCMDcCMCAFIAcpAig3AiggBSAHKQIgNwIgIAUgBykCGDcCGCAFIAcpAhA3AhAgBSAHKQIINwIIIAUgBykCADcCACALIA5Bf3NBAXFqIQsgCSAHQUBrIgdLDQALCyABIA9HBEAgAiALQQZ0aiIFIAcpAjg3AjggBSAHKQIwNwIwIAUgBykCKDcCKCAFIAcpAiA3AiAgBSAHKQIYNwIYIAUgBykCEDcCECAFIAcpAgg3AgggBSAHKQIANwIAIAdBQGshByALQQFqIQsgDEFAaiEMIAEhDwwBCwsgC0EGdCIFBEAgACACIAX8CgAACyABIAtGDQMgASALayEOIAAgBWohAEEAIQkCQCALQQFqIAFHBEAgDkEBcSAOQX5xIQ8gCiATaiEKIAAhBwNAIAcgCikCODcCOCAHIAopAjA3AjAgByAKKQIoNwIoIAcgCikCIDcCICAHIAopAhg3AhggByAKKQIQNwIQIAcgCikCCDcCCCAHIAopAgA3AgAgB0FAayARIAlB/v//H3NBBnRqIgUpAgA3AgAgB0HIAGogBSkCCDcCACAHQdAAaiAFKQIQNwIAIAdB2ABqIAUpAhg3AgAgB0HgAGogBSkCIDcCACAHQegAaiAFKQIoNwIAIAdB8ABqIAUpAjA3AgAgB0H4AGogBUE4aikCADcCACAKQYABayEKIAdBgAFqIQcgDyAJQQJqIglHDQALRQ0BCyAAIAlBBnRqIgUgESAJQX9zQQZ0aiIHKQI4NwI4IAUgBykCMDcCMCAFIAcpAig3AiggBSAHKQIgNwIgIAUgBykCGDcCGCAFIAcpAhA3AhAgBSAHKQIINwIIIAUgBykCADcCAAsgASALTwRAQQAhBSAOIgFBIUkNAwwBCwsgCyABIAFB4PXIABCHDgALAAsgDkECSQ0AIAYoAgAhC0EBIQQgDkEBdiEPAkAgDkEITwRAIAAgAiALEI8HIA9BBnQiASAAaiABIAJqIAsQjwdBBCEEDAELIAIgACkCODcCOCACIAApAjA3AjAgAiAAKQIoNwIoIAIgACkCIDcCICACIAApAhg3AhggAiAAKQIQNwIQIAIgACkCCDcCCCACIAApAgA3AgAgD0EGdCIDIAJqIgEgACADaiIDKQI4NwI4IAEgAykCMDcCMCABIAMpAig3AiggASADKQIgNwIgIAEgAykCGDcCGCABIAMpAhA3AhAgASADKQIINwIIIAEgAykCADcCAAsgDiAPayERIAQgD0kEQCAEQQZ0IQYgBCEBA0AgAUEGdCIFIAJqIgMgACAFaiIFKQI4NwI4IAMgBSkCMDcCMCADIAUpAig3AiggAyAFKQIgNwIgIAMgBSkCGDcCGCADIAUpAhA3AhAgAyAFKQIINwIIIAMgBSkCADcCACAIQdgAaiALKAIAIAMQ2gcgCCgCXCENIAgoAlghCiAIQdAAaiALKAIAIANBQGoiCRDaByAIKAJQIQcCQAJAIApBAUYEQCAHQQFHDQIgDSAIKAJUSQ0BDAILIAdBAUcNAQsgAyAJKQI4NwI4IAMgCSkCMDcCMCADIAkpAig3AiggAyAJKQIgNwIgIAMgCSkCGDcCGCADIAkpAhA3AhAgAyAJKQIINwIIIAMgCSkCADcCAAJAIAFBAUYEQCAJIQcMAQsgBiEKA0AgCEHIAGogCygCACAFENoHIAgoAkwhDCAIKAJIIRAgCEFAayALKAIAIAIgCmoiB0GAAWsiAxDaByAHQUBqIQcgCCgCQCENAkAgEEEBRgRAIA1BAUcEQCAJIQcMBAsgDCAIKAJESQ0BIAkhBwwDCyANQQFHDQILIAlBQGohCSAHIAMpAjg3AjggByADKQIwNwIwIAcgAykCKDcCKCAHIAMpAiA3AiAgByADKQIYNwIYIAcgAykCEDcCECAHIAMpAgg3AgggByADKQIANwIAIApBQGoiCkHAAEcNAAsgAiEHCyAFKQIAIRcgBSkCCCEYIAUpAhAhGSAFKQIYIRogBSkCICEbIAUpAighHCAFKQIwIR0gByAFKQI4NwI4IAcgHTcCMCAHIBw3AiggByAbNwIgIAcgGjcCGCAHIBk3AhAgByAYNwIIIAcgFzcCAAsgBkFAayEGIA8gAUEBaiIBRw0ACwsgD0EGdCIBIAJqIQ0gBCARSQRAIAAgAWohEiAEQQZ0IRBBwAAhAyANIQUDQCAEQQZ0IgYgDWoiASAGIBJqIgYpAjg3AjggASAGKQIwNwIwIAEgBikCKDcCKCABIAYpAiA3AiAgASAGKQIYNwIYIAEgBikCEDcCECABIAYpAgg3AgggASAGKQIANwIAIAhBOGogCygCACABENoHIAgoAjwhCiAIKAI4IQwgCEEwaiALKAIAIAFBQGoiCRDaByAIKAIwIQcCQAJAIAxBAXFFBEAgB0EBcQ0BDAILIAdBAUcNASAKIAgoAjRPDQELIAEgCSkCODcCOCABIAkpAjA3AjAgASAJKQIoNwIoIAEgCSkCIDcCICABIAkpAhg3AhggASAJKQIQNwIQIAEgCSkCCDcCCCABIAkpAgA3AgACQAJAIARBAUYNACADIQEgBSEKA0AgCEEoaiALKAIAIAYQ2gcgCCgCLCEVIAgoAighFCAIQSBqIAsoAgAgCiAQaiIHQYABayIMENoHIAdBQGohByAIKAIgIRMCQCAUQQFxRQRAIBNBAXFFDQQMAQsgE0EBRw0CIBUgCCgCJE8NAgsgCUFAaiEJIAcgDCkCODcCOCAHIAwpAjA3AjAgByAMKQIoNwIoIAcgDCkCIDcCICAHIAwpAhg3AhggByAMKQIQNwIQIAcgDCkCCDcCCCAHIAwpAgA3AgAgCkFAaiEKIBAgAUFAayIBRw0ACyANIQcMAQsgCSEHCyAGKQIAIRcgBikCCCEYIAYpAhAhGSAGKQIYIRogBikCICEbIAYpAighHCAGKQIwIR0gByAGKQI4NwI4IAcgHTcCMCAHIBw3AiggByAbNwIgIAcgGjcCGCAHIBk3AhAgByAYNwIIIAcgFzcCAAsgA0FAaiEDIAVBQGshBSARIARBAWoiBEcNAAsLIA1BQGohDCAOQQZ0QUBqIgEgAGohByABIAJqIQkDQCAIQRhqIAsoAgAgDRDaByAIKAIcIQEgCCgCGCAIQRBqIAsoAgAgAhDaByAIKAIQIQpBAUYEQCAKIAEgCCgCFElxIQoLIAAgDSACIApBAXEiAxsiASkCODcCOCAAIAEpAjA3AjAgACABKQIoNwIoIAAgASkCIDcCICAAIAEpAhg3AhggACABKQIQNwIQIAAgASkCCDcCCCAAIAEpAgA3AgAgCEEIaiALKAIAIAkQ2gcgCCgCDCEBIAgoAgghBCAIIAsoAgAgDBDaByAKQX9zQQFxQQZ0IQUgCCgCACEKIABBQGshACADQQZ0IA1qIQ0gAiAFaiECIAcgDCAJIARBAUYEfyAKIAEgCCgCBElxBSAKC0EBcSIDGyIBKQI4NwI4IAcgASkCMDcCMCAHIAEpAig3AiggByABKQIgNwIgIAcgASkCGDcCGCAHIAEpAhA3AhAgByABKQIINwIIIAcgASkCADcCACAHQUBqIQcgDCADQQZ0IgFrIQwgASAJakFAaiEJIA9BAWsiDw0ACyAMQUBrIQMgDkEBcQR/IAAgAiANIAIgA0kiBBsiASkCODcCOCAAIAEpAjA3AjAgACABKQIoNwIoIAAgASkCIDcCICAAIAEpAhg3AhggACABKQIQNwIQIAAgASkCCDcCCCAAIAEpAgA3AgAgDSACIANPQQZ0aiENIAIgBEEGdGoFIAILIANGIA0gCUFAa0ZxDQAQpBUACyAIQYACaiQAC5QlAgZ/An4jAEHQAGsiAiQAIABBBGohBAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4DAQIDAAtBASEDIAEoAgAiBUHA7sUAQQUgASgCBCIHKAIMIgYRAAANBgJAAkAgAS0ACkGAAXFFBEAgBUG0z8UAQQEgBhEAAA0JIAIgAEHIAGo2AgQgASgCAEHJ6sUAQQggASgCBCgCDBEAACEDIAIgATYCMCAAQThqIQVBASEAAkAgAw0AIAEtAApBgAFxRQRAIAEoAgBBl+PCAEEDIAEoAgQoAgwRAAANASABKAIAQaboxQBBBSABKAIEKAIMEQAADQEgASgCAEGmssgAQQIgASgCBCgCDBEAAA0BIAQgARDnEiEADAELIAEoAgBBmuPCAEEDIAEoAgQoAgwRAAANACACQQE6ACggAkGg68IANgJEIAIgASkCADcCFCACIAEpAgg3AkggAiACQShqNgIcIAIgAkEUaiIDNgJAIANBpujFAEEFEP0IDQAgA0GmssgAQQIQ/QgNACAEIAJBQGsQ5xIEQAwBCyACKAJAQaSyyABBAiACKAJEKAIMEQAAIQALIAIgADoANCACQQE6ADUgAkEwakGr6MUAQQogBUGBAhCJDkHR6sUAQQcgAkEEakHMARCJDiEDIAItADQhAAJAIAItADUiBEEBRw0AIABBAXENACADKAIAIgAtAApBgAFxDQIgACgCAEHt6sIAQQIgACgCBCgCDBEAAEUNA0EBIQMMCgtBASEDIAQNCSAAQQFxRQ0CDAkLIAVBnePCAEECIAYRAAANCCACQQE6ABMgAiAHNgIIIAIgBTYCBCACQaDrwgA2AhggAiABKQIIIgg3AhwgAiACQRNqNgIMIAIgAkEEaiIDNgIUIAIgAEHIAGo2AiQgAEE4aiEFIANByerFAEEIEP0IIQYgAiACQRRqIgc2AihBASEAAkAgBg0AIAhCgICABINQBEAgA0GX48IAQQMQ/QgNASACKAIUQaboxQBBBSACKAIYKAIMEQAADQEgAigCFEGmssgAQQIgAigCGCgCDBEAAA0BIAQgBxDnEiEADAELIAJBBGpBmuPCAEEDEP0IDQAgAikCHCEIIAIpAhQhCSACQQE6AD8gAiAJNwIwIAIgCDcCSCACQaDrwgA2AkQgAiACQT9qNgI4IAIgAkEwaiIDNgJAIANBpujFAEEFEP0IDQAgA0GmssgAQQIQ/QgNACAEIAJBQGsQ5xIEQAwBCyACKAJAQaSyyABBAiACKAJEKAIMEQAAIQALIAIgADoALCACQQE6AC0gAkEoakGr6MUAQQogBUGBAhCJDkHR6sUAQQcgAkEkakHMARCJDiEDIAItACwhAAJAAkACQCACLQAtIgRBAUcNACAAQQFxDQAgAygCACIALQAKQYABcQ0BIAAoAgBB7erCAEECIAAoAgQoAgwRAAANCgwCCyAEDQkgAEEBcUUNAQwJCyAAKAIAQaGyyABBASAAKAIEKAIMEQAADQgLIAIoAhRBpLLIAEECIAIoAhgoAgwRAABFDQFBASEDDAgLQQEhAyAAKAIAQaGyyABBASAAKAIEKAIMEQAADQcLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwGC0EBIQMgASgCACIFQcXuxQBBBCABKAIEIgcoAgwiBhEAAA0FAkACQCABLQAKQYABcUUEQCAFQbTPxQBBASAGEQAADQggAiAAQcgAajYCBCABKAIAQcnqxQBBCCABKAIEKAIMEQAAIQMgAiABNgIwIABBOGohBUEBIQACQCADDQAgAS0ACkGAAXFFBEAgASgCAEGX48IAQQMgASgCBCgCDBEAAA0BIAEoAgBBpujFAEEFIAEoAgQoAgwRAAANASABKAIAQaayyABBAiABKAIEKAIMEQAADQEgBCABEOcSIQAMAQsgASgCAEGa48IAQQMgASgCBCgCDBEAAA0AIAJBAToAKCACQaDrwgA2AkQgAiABKQIANwIUIAIgASkCCDcCSCACIAJBKGo2AhwgAiACQRRqIgM2AkAgA0Gm6MUAQQUQ/QgNACADQaayyABBAhD9CA0AIAQgAkFAaxDnEgRADAELIAIoAkBBpLLIAEECIAIoAkQoAgwRAAAhAAsgAiAAOgA0IAJBAToANSACQTBqQavoxQBBCiAFQYECEIkOQdHqxQBBByACQQRqQcwBEIkOIQMgAi0ANCEAAkAgAi0ANSIEQQFHDQAgAEEBcQ0AIAMoAgAiAC0ACkGAAXENAiAAKAIAQe3qwgBBAiAAKAIEKAIMEQAARQ0DQQEhAwwJC0EBIQMgBA0IIABBAXFFDQIMCAsgBUGd48IAQQIgBhEAAA0HIAJBAToAEyACIAc2AgggAiAFNgIEIAJBoOvCADYCGCACIAEpAggiCDcCHCACIAJBE2o2AgwgAiACQQRqIgM2AhQgAiAAQcgAajYCJCAAQThqIQUgA0HJ6sUAQQgQ/QghBiACIAJBFGoiBzYCKEEBIQACQCAGDQAgCEKAgIAEg1AEQCADQZfjwgBBAxD9CA0BIAIoAhRBpujFAEEFIAIoAhgoAgwRAAANASACKAIUQaayyABBAiACKAIYKAIMEQAADQEgBCAHEOcSIQAMAQsgAkEEakGa48IAQQMQ/QgNACACKQIcIQggAikCFCEJIAJBAToAPyACIAk3AjAgAiAINwJIIAJBoOvCADYCRCACIAJBP2o2AjggAiACQTBqIgM2AkAgA0Gm6MUAQQUQ/QgNACADQaayyABBAhD9CA0AIAQgAkFAaxDnEgRADAELIAIoAkBBpLLIAEECIAIoAkQoAgwRAAAhAAsgAiAAOgAsIAJBAToALSACQShqQavoxQBBCiAFQYECEIkOQdHqxQBBByACQSRqQcwBEIkOIQMgAi0ALCEAAkACQAJAIAItAC0iBEEBRw0AIABBAXENACADKAIAIgAtAApBgAFxDQEgACgCAEHt6sIAQQIgACgCBCgCDBEAAA0IDAILIAQNByAAQQFxRQ0BDAcLIAAoAgBBobLIAEEBIAAoAgQoAgwRAAANBgsgAigCFEGkssgAQQIgAigCGCgCDBEAAEUNAUEBIQMMBwtBASEDIAAoAgBBobLIAEEBIAAoAgQoAgwRAAANBgsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDDAULQQEhAyABKAIAIgVBye7FAEEFIAEoAgQiBygCDCIGEQAADQQCQAJAIAEtAApBgAFxRQRAIAVBtM/FAEEBIAYRAAANByACIABByABqNgIEIAEoAgBByerFAEEIIAEoAgQoAgwRAAAhAyACIAE2AjAgAEE4aiEFQQEhAAJAIAMNACABLQAKQYABcUUEQCABKAIAQZfjwgBBAyABKAIEKAIMEQAADQEgASgCAEGm6MUAQQUgASgCBCgCDBEAAA0BIAEoAgBBprLIAEECIAEoAgQoAgwRAAANASAEIAEQ5xIhAAwBCyABKAIAQZrjwgBBAyABKAIEKAIMEQAADQAgAkEBOgAoIAJBoOvCADYCRCACIAEpAgA3AhQgAiABKQIINwJIIAIgAkEoajYCHCACIAJBFGoiAzYCQCADQaboxQBBBRD9CA0AIANBprLIAEECEP0IDQAgBCACQUBrEOcSBEAMAQsgAigCQEGkssgAQQIgAigCRCgCDBEAACEACyACIAA6ADQgAkEBOgA1IAJBMGpBq+jFAEEKIAVBgQIQiQ5B0erFAEEHIAJBBGpBzAEQiQ4hAyACLQA0IQACQCACLQA1IgRBAUcNACAAQQFxDQAgAygCACIALQAKQYABcQ0CIAAoAgBB7erCAEECIAAoAgQoAgwRAABFDQNBASEDDAgLQQEhAyAEDQcgAEEBcUUNAgwHCyAFQZ3jwgBBAiAGEQAADQYgAkEBOgATIAIgBzYCCCACIAU2AgQgAkGg68IANgIYIAIgASkCCCIINwIcIAIgAkETajYCDCACIAJBBGoiAzYCFCACIABByABqNgIkIABBOGohBSADQcnqxQBBCBD9CCEGIAIgAkEUaiIHNgIoQQEhAAJAIAYNACAIQoCAgASDUARAIANBl+PCAEEDEP0IDQEgAigCFEGm6MUAQQUgAigCGCgCDBEAAA0BIAIoAhRBprLIAEECIAIoAhgoAgwRAAANASAEIAcQ5xIhAAwBCyACQQRqQZrjwgBBAxD9CA0AIAIpAhwhCCACKQIUIQkgAkEBOgA/IAIgCTcCMCACIAg3AkggAkGg68IANgJEIAIgAkE/ajYCOCACIAJBMGoiAzYCQCADQaboxQBBBRD9CA0AIANBprLIAEECEP0IDQAgBCACQUBrEOcSBEAMAQsgAigCQEGkssgAQQIgAigCRCgCDBEAACEACyACIAA6ACwgAkEBOgAtIAJBKGpBq+jFAEEKIAVBgQIQiQ5B0erFAEEHIAJBJGpBzAEQiQ4hAyACLQAsIQACQAJAAkAgAi0ALSIEQQFHDQAgAEEBcQ0AIAMoAgAiAC0ACkGAAXENASAAKAIAQe3qwgBBAiAAKAIEKAIMEQAADQYMAgsgBA0FIABBAXFFDQEMBQsgACgCAEGhssgAQQEgACgCBCgCDBEAAA0ECyACKAIUQaSyyABBAiACKAIYKAIMEQAARQ0BQQEhAwwGC0EBIQMgACgCAEGhssgAQQEgACgCBCgCDBEAAA0FCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBAtBASEDIAEoAgAiBUHO7sUAQQQgASgCBCIHKAIMIgYRAAANAwJAAkACQCABLQAKQYABcUUEQCAFQbTPxQBBASAGEQAADQcgAiAAQcgAajYCBCABKAIAQcnqxQBBCCABKAIEKAIMEQAAIQMgAiABNgIwIABBOGohBUEBIQACQCADDQAgAS0ACkGAAXFFBEAgASgCAEGX48IAQQMgASgCBCgCDBEAAA0BIAEoAgBBpujFAEEFIAEoAgQoAgwRAAANASABKAIAQaayyABBAiABKAIEKAIMEQAADQEgBCABEOcSIQAMAQsgASgCAEGa48IAQQMgASgCBCgCDBEAAA0AIAJBAToAKCACQaDrwgA2AkQgAiABKQIANwIUIAIgASkCCDcCSCACIAJBKGo2AhwgAiACQRRqIgM2AkAgA0Gm6MUAQQUQ/QgNACADQaayyABBAhD9CA0AIAQgAkFAaxDnEgRADAELIAIoAkBBpLLIAEECIAIoAkQoAgwRAAAhAAsgAiAAOgA0IAJBAToANSACQTBqQavoxQBBCiAFQYECEIkOQdHqxQBBByACQQRqQcwBEIkOIQMgAi0ANCEAAkAgAi0ANSIEQQFHDQAgAEEBcQ0AIAMoAgAiAC0ACkGAAXENAiAAKAIAQe3qwgBBAiAAKAIEKAIMEQAARQ0DQQEhAwwIC0EBIQMgBA0HIABBAXFFDQIMBwsgBUGd48IAQQIgBhEAAA0GIAJBAToAEyACIAc2AgggAiAFNgIEIAJBoOvCADYCGCACIAEpAggiCDcCHCACIAJBE2o2AgwgAiACQQRqIgM2AhQgAiAAQcgAajYCJCAAQThqIQUgA0HJ6sUAQQgQ/QghBiACIAJBFGoiBzYCKEEBIQACQCAGDQAgCEKAgIAEg1AEQCADQZfjwgBBAxD9CA0BIAIoAhRBpujFAEEFIAIoAhgoAgwRAAANASACKAIUQaayyABBAiACKAIYKAIMEQAADQEgBCAHEOcSIQAMAQsgAkEEakGa48IAQQMQ/QgNACACKQIcIQggAikCFCEJIAJBAToAPyACIAk3AjAgAiAINwJIIAJBoOvCADYCRCACIAJBP2o2AjggAiACQTBqIgM2AkAgA0Gm6MUAQQUQ/QgNACADQaayyABBAhD9CA0AIAQgAkFAaxDnEgRADAELIAIoAkBBpLLIAEECIAIoAkQoAgwRAAAhAAsgAiAAOgAsIAJBAToALSACQShqQavoxQBBCiAFQYECEIkOQdHqxQBBByACQSRqQcwBEIkOIQMgAi0ALCEAAkACQAJAIAItAC0iBEEBRw0AIABBAXENACADKAIAIgAtAApBgAFxDQEgACgCAEHt6sIAQQIgACgCBCgCDBEAAA0FDAILIAQNBCAAQQFxRQ0BDAQLIAAoAgBBobLIAEEBIAAoAgQoAgwRAAANAwsgAigCFEGkssgAQQIgAigCGCgCDBEAAEUNAUEBIQMMBgtBASEDIAAoAgBBobLIAEEBIAAoAgQoAgwRAAANBQsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDDAQLQQEhAwwDC0EBIQMMAgtBASEDDAELQQEhAwsgAkHQAGokACADC6COAQIwfwN+IwBB4AZrIgQkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAgAiBUGAgICAeHMOBgABAgYFBAMLIAQgAigCBCICQZAC/AoAACAAIAEgBBA7IAJBBGsoAgAiAEEDcSEBIABBeHFBlAJBmAIgARtJDRAgAUEARyAAQbgCT3ENESACELwFDA4LIAQgAigCBCInQbgC/AoAACAAIQkgASEMIwBBsAZrIgMkAAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEHEJABIgAEQCAAQcTPxQAoAAA2AAMgAEHBz8UAKAAANgAAIANBBzYCiAUgAyAANgKEBSADQQc2AoAFIAEgA0GABWoiARD8DSAEQYQCaiEYAkACQAJAAkACQCAEKAKEAkF/RwRAIANBBGoiAiAYEOgCQQUQkAEiAEUNJiAAQczPxQAtAAA6AAQgAEHIz8UAKAAANgAAIANBBTYCiAUgAyAANgKEBSADQQU2AoAFIAwgARD8DSABIAwgAkEBEMcBIAMoAoAFQX5HDQELIARBgAFqISMCQAJAAkACQCAEKAKAAQ4KAQAAAAUAAAAAAgALIANBgAVqIgEgI0HgAPwKAABBARCQASIARQ0oIABBKDoAACADQQE2AqgDIAMgADYCpAMgA0EBNgKgAyAMIANBoANqIgAQ/A0gACAMIAEQyQEgAygCoAMiAEF+Rw0GQQEhB0EBEJABIgANBwwoCyADQThqIARBiAFqQcgA/AoAACAEKAKAAiEFQQIQkAEiAA0BDCcLIAQoAoACIQUgBCgChAEhDkECEJABIgANAwwmCyAAQaDQADsAACADQQI2AogFIAMgADYChAUgA0ECNgKABSAMIANBgAVqIgcQ/A0gBCgCgAIhASAEKAL8ASECIAMgBCgC+AEiDjYCiAIgAyACNgKAAiADIAIgAUGwAWwiDWoiDzYCjAIgAiEAIAFFDREgBUEBayEWIANBwANqIRIgA0GwA2ogA0GgA2oiAUH0AGohCyABQfAAaiEQIANBsAJqIRMgB0EEaiEXA0ACQAJAIABB8ABqKAIAIgFBfkcEQCALIABBrAFqKAIANgI4IAsgAEGkAWopAgA3AjAgCyAAQZwBaikCADcCKCALIABBlAFqKQIANwIgIAsgAEGMAWopAgA3AhggCyAAQYQBaikCADcCECALIABB/ABqKQIANwIIIAsgAEH0AGopAgA3AgAgFyAAQfAA/AoAACADQawCaiADQYAFakH0APwKAAAgA0GgA2ogE0HwAPwKAAAgAyABNgKQBCADKAKMBCEBIAMoAogEIQUgAygChAQiCEF/Rg0BIAUhBwwCCyAAQbABaiEADBQLIAFBAEgNFyABRQRAQQEhB0EAIQFBACEIDAELIAEQkAEiB0UNJyABBEAgByAFIAH8CgAACyABIQgLIABBsAFqIQAgCkEBaiEFIANBfzYC8AUgAyABNgLsBSADIAc2AugFIAMgCDYC5AUgA0F+NgLYBSADQf8BOgCkBiADQXw2ApAFIANBADoArAYgA0EAOwGqBiADQX42AoAFIANB0ARqIAwgA0GABWoiBxD6AiADKALQBEF+RgRAIAogFkkEQEEBEJABIgFFDSggAUEsOgAAIANBATYCiAUgAyABNgKEBSADQQE2AoAFIAwgBxD8DQsgEBDGDCADKAL4AyIBQQBKBEAgAygC/AMiCEEEaygCACIKQXhxIQcgB0EEQQggCkEDcSIKGyABakkNOSAKQQBHIAcgAUEnaktxDTogCBC8BQsCQCADKAKwAyIBQXxGDQAgAUF9Rg0AIBIQ/wIgAUEATA0AIAMoArQDIghBBGsoAgAiCkF4cSEHIAdBBEEIIApBA3EiChsgAWpJDTkgCkEARyAHIAFBJ2pLcQ06IAgQvAULIAMoAqADIgFBAEoEQCADKAKkAyIIQQRrKAIAIgpBeHEhByAHQQRBCCAKQQNxIgobIAFqSQ05IApBAEcgByABQSdqS3ENOiAIELwFCyAFIQogDUGwAWsiDQ0BDBQLCyAJIAMpAtAENwIAIAkgAykC2AQ3AgggCSADKQLgBDcCECAJIAMpAugENwIYIAkgAykC8AQ3AiAgCSADKQL4BDcCKCADIAU2ApACIAMgADYChAIgEBDGDCADKAL4AyIAQQBKBEAgAygC/AMgABDZEgsQ2xEgAygCoAMiAEEATA0PIAMoAqQDIAAQ2RIMDwsgCSADKQKoBTcCKCAJIAMpAqAFNwIgIAkgAykCmAU3AhggCSADKQKQBTcCECAJIAMpAogFNwIIIAkgAykCgAU3AgAgGBDGDCAEKAL8ASEBIAQoAoACIgAEQCABIQIDQCACEMEKIAJBsAFqIQIgAEEBayIADQALC0EBIQUgBCgC+AEiAkUNDSABQQRrKAIAIgdBeHEhACAAIAJBsAFsIgJBBEEIIAdBA3EiBxtySQ01IAdBAEcgACACQSdqS3ENNiABELwFDA0LIAMgBCgCjAEiADYCiAEgAyAEKQKEATcDgAEgAEUNCyAEKAKAAkECEJABIgBFDSMgAEGg0AA7AAAgA0ECNgKIBSADIAA2AoQFIANBAjYCgAUgDCADQYAFaiIHEPwNIAQoAoACIQEgBCgC/AEhAiADIAQoAvgBIg42AogCIAMgAjYCgAIgAyACIAFBsAFsIg1qIg82AowCIAIhACABRQ0HQQFrIRYgA0HAA2ohEiADQbADaiADQaADaiIBQfQAaiELIAFB8ABqIRAgA0GwAmohEyAHQQRqIRcDQAJAAkAgAEHwAGooAgAiAUF+RwRAIAsgAEGsAWooAgA2AjggCyAAQaQBaikCADcCMCALIABBnAFqKQIANwIoIAsgAEGUAWopAgA3AiAgCyAAQYwBaikCADcCGCALIABBhAFqKQIANwIQIAsgAEH8AGopAgA3AgggCyAAQfQAaikCADcCACAXIABB8AD8CgAAIANBrAJqIANBgAVqQfQA/AoAACADQaADaiATQfAA/AoAACADIAE2ApAEIAMoAowEIQEgAygCiAQhBSADKAKEBCIIQX9GDQEgBSEHDAILIABBsAFqIQAMCgsgAUEASA0VIAFFBEBBASEHQQAhAUEAIQgMAQsgARCQASIHRQ0lIAEEQCAHIAUgAfwKAAALIAEhCAsgAEGwAWohACAKQQFqIQUgA0F/NgLwBSADIAE2AuwFIAMgBzYC6AUgAyAINgLkBSADQX42AtgFIANB/wE6AKQGIANBfDYCkAUgA0EAOgCsBiADQQA7AaoGIANBfjYCgAUgA0HQBGogDCADQYAFaiIHEPoCIAMoAtAEQX5GBEAgCiAWSQRAQQEQkAEiAUUNJiABQSw6AAAgA0EBNgKIBSADIAE2AoQFIANBATYCgAUgDCAHEPwNCyAQEMYMIAMoAvgDIgFBAEoEQCADKAL8AyIIQQRrKAIAIgpBeHEhByAHQQRBCCAKQQNxIgobIAFqSQ03IApBAEcgByABQSdqS3ENOCAIELwFCwJAIAMoArADIgFBfEYNACABQX1GDQAgEhD/AiABQQBMDQAgAygCtAMiCEEEaygCACIKQXhxIQcgB0EEQQggCkEDcSIKGyABakkNNyAKQQBHIAcgAUEnaktxDTggCBC8BQsgAygCoAMiAUEASgRAIAMoAqQDIghBBGsoAgAiCkF4cSEHIAdBBEEIIApBA3EiChsgAWpJDTcgCkEARyAHIAFBJ2pLcQ04IAgQvAULIAUhCiANQbABayINDQEMCgsLIAkgAykC0AQ3AgAgCSADKQLYBDcCCCAJIAMpAuAENwIQIAkgAykC6AQ3AhggCSADKQLwBDcCICAJIAMpAvgENwIoIAMgBTYCkAIgAyAANgKEAiAQEMYMIAMoAvgDIgBBAEoEQCADKAL8AyAAENkSCxDbESADKAKgAyIAQQBKBEAgAygCpAMgABDZEgsgA0GAAmoQlxEgA0GAAWoQwQ4MCQsgAEGg0AA7AAAgA0ECNgKIBSADIAA2AoQFIANBAjYCgAUgDCADQYAFaiIHEPwNIAQoAoACIQEgBCgC/AEhAiADIAQoAvgBIg82AogCIAMgAjYCgAIgAyACIAFBsAFsIg1qIhA2AowCIAIhACABRQ0DIAVBAWshEiADQcADaiEUIANBsANqIANBoANqIgFB9ABqIQsgAUHwAGohFiADQbACaiEXIAdBBGohGQNAAkACQCAAQfAAaigCACIBQX5HBEAgCyAAQawBaigCADYCOCALIABBpAFqKQIANwIwIAsgAEGcAWopAgA3AiggCyAAQZQBaikCADcCICALIABBjAFqKQIANwIYIAsgAEGEAWopAgA3AhAgCyAAQfwAaikCADcCCCALIABB9ABqKQIANwIAIBkgAEHwAPwKAAAgA0GsAmogA0GABWpB9AD8CgAAIANBoANqIBdB8AD8CgAAIAMgATYCkAQgAygCjAQhASADKAKIBCEFIAMoAoQEIghBf0YNASAFIQcMAgsgAEGwAWohAAwGCyABQQBIDRQgAUUEQEEBIQdBACEBQQAhCAwBCyABEJABIgdFDSQgAQRAIAcgBSAB/AoAAAsgASEICyAAQbABaiEAIApBAWohBSADQX82AvAFIAMgATYC7AUgAyAHNgLoBSADIAg2AuQFIANBfjYC2AUgA0H/AToApAYgA0F8NgKQBSADQQA6AKwGIANBADsBqgYgA0F+NgKABSADQdAEaiAMIANBgAVqIgcQ+gIgAygC0ARBfkYEQCAKIBJJBEBBARCQASIBRQ0lIAFBLDoAACADQQE2AogFIAMgATYChAUgA0EBNgKABSAMIAcQ/A0LIBYQxgwgAygC+AMiAUEASgRAIAMoAvwDIghBBGsoAgAiCkF4cSEHIAdBBEEIIApBA3EiChsgAWpJDTYgCkEARyAHIAFBJ2pLcQ03IAgQvAULAkAgAygCsAMiAUF8Rg0AIAFBfUYNACAUEP8CIAFBAEwNACADKAK0AyIIQQRrKAIAIgpBeHEhByAHQQRBCCAKQQNxIgobIAFqSQ02IApBAEcgByABQSdqS3ENNyAIELwFCyADKAKgAyIBQQBKBEAgAygCpAMiCEEEaygCACIKQXhxIQcgB0EEQQggCkEDcSIKGyABakkNNiAKQQBHIAcgAUEnaktxDTcgCBC8BQsgBSEKIA1BsAFrIg0NAQwGCwsgCSADKQLQBDcCACAJIAMpAtgENwIIIAkgAykC4AQ3AhAgCSADKQLoBDcCGCAJIAMpAvAENwIgIAkgAykC+AQ3AiggAyAFNgKQAiADIAA2AoQCIBYQxgwgAygC+AMiAEEASgRAIAMoAvwDIAAQ2RILENsRIAMoAqADIgBBAEoEQCADKAKkAyAAENkSCyADQYACahCXESAOENELDAULIAkgAygCzAM2AiwgCSADKQLEAzcCJCAJIAMpArwDNwIcIAkgAykCtAM3AhQgCSADKQKsAzcCDCAJIAMpAqQDNwIEIAkgADYCACAYEMYMIAQoAvwBIQcgBCgCgAIiAARAIAchAgNAIAIQwQogAkGwAWohAiAAQQFrIgANAAsLIAQoAvgBIgFFBEBBASEBQQEhDUEBIQUMHwsgB0EEaygCACICQXhxIQAgACABQbABbCIIQQRBCCACQQNxIgIbckkNMkEBIQEgAkUEQEEBIQ1BASEFDB4LQQEhDUEBIQUgACAIQSdqTQ0dDDMLIABBKToAACADQQE2AqgDIAMgADYCpAMgA0EBNgKgAyAMIANBoANqEPwNQQAMDwsMHwsgECAAa0GwAW4hASAAIBBGDQADQCAAEMEKIABBsAFqIQAgAUEBayIBDQALCwJAIA8EQCACQQRrKAIAIgFBeHEhACAAIA9BsAFsIgVBBEEIIAFBA3EiARtySQ0BIAFBAEcgACAFQSdqS3ENMSACELwFC0EBEJABIgAEQCAAQSk6AAAgA0EBNgKIBSADIAA2AoQFIANBATYCgAUgDCADQYAFaiIBEPwNQQgQkAEiAARAIABCoKyF4tSq0akgNwAAIANBCDYCiAUgAyAANgKEBSADQQg2AoAFIAwgARD8DSAOQQhqKAIAIQEgDigCBCEAIAMgDigCADYCqAMgAyAANgKgAyADIAAgAUEMbGoiBTYCrANBACEHAkAgAUUEQEEAIQEgACEFDAELIAFBAWsiCkH/////A3FBAWpBACEBA0ACQAJAAkAgACgCACINQX9HBEAgAEEMaiECIAMgAEEEaikCADcCsAIgAyANNgKsAiADQYAFaiAMIANBrAJqEL0FIAFBAWohACADKAKABUF+Rw0CIAEgCkkNAQwDCyAAQQxqIQUMBAtBAhCQASIBRQ0kIAFBrMAAOwAAIANBAjYCiAUgAyABNgKEBSADQQI2AoAFIAwgA0GABWoQ/A0MAQsgCSADKQKABTcCACAJIAMpAogFNwIIIAkgAykCkAU3AhAgCSADKQKYBTcCGCAJIAMpAqAFNwIgIAkgAykCqAU3AiggAyAANgKwAyADIAI2AqQDIANBoANqEJYLDAYLIAAhASAFIAIiAEcNAAshAQsgAyABNgKwAyADIAU2AqQDIANBoANqEJYLIA5BDBDZEkEBIR1BASEKQQEhCEEADA8LDB8LDB4LDC4LIA5BBGsoAgAiAUF4cSEAIABBEEEUIAFBA3EiARtJDS0gAUEARyAAQTRPcUUEQCAOELwFIBgQxgxBACEWQQEhBUEBIQ1BASEBQQEhCkEBIQgMGAsMLgsgDyAAa0GwAW4hASAAIA9GDQADQCAAEMEKIABBsAFqIQAgAUEBayIBDQALCyAOBEAgAkEEaygCACIBQXhxIQAgACAOQbABbCIFQQRBCCABQQNxIgEbckkNLCABQQBHIAAgBUEnaktxDS0gAhC8BQtBARCQASIARQ0aIABBKToAACADQQE2AogFIAMgADYChAUgA0EBNgKABSAMIANBgAVqIgAQ/A1BCBCQASIBRQ0aIAFCoKyF4tSq0akgNwAAIANBCDYCiAUgAyABNgKEBSADQQg2AoAFIAwgABD8DSAAIAwgA0GAAWoQvQUgAygCgAVBfkYNASAJIAMpAqgFNwIoIAkgAykCoAU3AiAgCSADKQKYBTcCGCAJIAMpApAFNwIQIAkgAykCiAU3AgggCSADKQKABTcCAAtBACEIQQEhCgwEC0EBIR1BASEKQQAhCEEADAYLQQ8QkAEiAEUNFyAAQdTPxQApAAA3AAcgAEHNz8UAKQAANwAAIANBDzYCiAUgAyAANgKEBSADQQ82AoAFIAwgA0GABWoQ/A0gA0GAAWoQwQ5BASEdQQEhCkEBDAULQQEhDUEBIQFBASEKQQEhCEEBIRYMEQsgA0GAAmoQlxEgA0HIAGoQ/wJBASEIQQAhCiADKAI4IgBBAEwNACADKAI8IgJBBGsoAgAiBUF4cSEBIAFBBEEIIAVBA3EiBRsgAGpJDSYgBUEARyABIABBJ2pLcQ0nIAIQvAULIBgQxgxBASEFQQEhDUEBIQFBASEWDA8LIA8gAGtBsAFuIQEgACAPRg0AA0AgABDBCiAAQbABaiEAIAFBAWsiAQ0ACwsgDgRAIAJBBGsoAgAiAUF4cSEAIAAgDkGwAWwiBUEEQQggAUEDcSIBG3JJDSQgAUEARyAAIAVBJ2pLcQ0lIAIQvAULQQEQkAEiAEUNEiAAQSk6AAAgA0EBNgKIBSADIAA2AoQFIANBATYCgAUgDCADQYAFaiIBEPwNQQgQkAEiAEUNEiAAQqCsheLUqtGpIDcAACADQQg2AogFIAMgADYChAUgA0EINgKABSAMIAEQ/A0gDCgCCCIAIAwoAgBGBEAgDBCoEgtBASEdIAwgAEEBajYCCCAMKAIEIABBMGxqIgBBATYCLCAAQcWyyAA2AiggAEKBgICAcDcCICAAQYiQyQA2AhwgAEKBgICAcDcCFCAAQcWyyAA2AhAgAEKBgICAcDcCCCAAQbTPxQA2AgQgAEF/NgIAIAwoAhQiACAMKAIMRgRAIAxBDGoQqRILIAwoAhAgAEHIAGxqIANBOGpByAD8CgAAIAwgAEEBajYCFEEAIQpBASEIQQALIQdBAQshFkEBIQECQAJAAkAgBCgCAEECag4CCgEACyADQYwBaiAEQfQA/AoAACAEKAJ8IQEgBCgCeCELIAQoAnQhEkEMEJABIgANAQwSC0EXEJABIgBFDREgAEHrz8UAKQAANwAPIABB5M/FACkAADcACCAAQdzPxQApAAA3AAAgA0EXNgKIBSADIAA2AoQFIANBFzYCgAUgDCADQYAFahD8DQwICyAAQfvPxQAoAAA2AAggAEHzz8UAKQAANwAAIANBDDYCiAUgAyAANgKEBSADQQw2AoAFIAwgA0GABWoiAhD8DUECEJABIgBFDRAgAEGg0AA7AAAgA0ECNgKIBSADIAA2AoQFIANBAjYCgAUgDCACEPwNIAFBsAFsIhMgC2ohFCALIQAgAUUNASABQQFrIQYgA0HAA2ohFyADQaADaiIAQfQAaiEQIABB8ABqIRkgA0GwAmohESACQQRqIRVBACEBQQAhDwNAAkACQCABIAtqIg5B8ABqKAIAIgBBfkcEQCAQIA5BrAFqKAIANgI4IBAgDkGkAWopAgA3AjAgECAOQZwBaikCADcCKCAQIA5BlAFqKQIANwIgIBAgDkGMAWopAgA3AhggECAOQYQBaikCADcCECAQIA5B/ABqKQIANwIIIBAgDkH0AGopAgA3AgAgFSAOQfAA/AoAACADQawCaiADQYAFakH0APwKAAAgA0GgA2ogEUHwAPwKAAAgAyAANgKQBCADKAKMBCEFIAMoAogEIQIgAygChAQiDUF/Rg0BIAIhAAwCCyAOQbABaiEADAQLIAVBAEgNAiAFRQRAQQAhDUEBIQBBACEFDAELIAUQkAEiAEUNEiAFBEAgACACIAX8CgAACyAFIQ0LIANBfzYC8AUgAyAFNgLsBSADIAA2AugFIAMgDTYC5AUgA0F+NgLYBSADQf8BOgCkBiADQXw2ApAFIANBADoArAYgA0EAOwGqBiADQX42AoAFIANB0ARqIAwgA0GABWoiAhD6AiADKALQBCIFQX5GBEAgBiAPSwRAQQEQkAEiAEUNEyAAQSw6AAAgA0EBNgKIBSADIAA2AoQFIANBATYCgAUgDCACEPwNCyAZEMYMIAMoAvgDIgBBAEoEQCADKAL8AyIFQQRrKAIAIg1BeHEhAiACQQRBCCANQQNxIg0bIABqSQ0kIA1BAEcgAiAAQSdqS3ENJSAFELwFCwJAIAMoArADIgBBfEYNACAAQX1GDQAgFxD/AiAAQQBMDQAgAygCtAMiBUEEaygCACINQXhxIQIgAkEEQQggDUEDcSINGyAAakkNJCANQQBHIAIgAEEnaktxDSUgBRC8BQsgAygCoAMiAEEASgRAIAMoAqQDIgVBBGsoAgAiDUF4cSECIAJBBEEIIA1BA3EiDRsgAGpJDSQgDUEARyACIABBJ2pLcQ0lIAUQvAULIA9BAWohDyATIAFBsAFqIgFHDQEMBAsLIAMgAygC/AQ2AqgCIAMgAykC9AQ3A6ACIAMgAykC7AQ3A5gCIAMgAykC5AQ3A5ACIAMgAykC3AQ3A4gCIAMgAykC1AQ3A4ACIBkQxgwgAygC+AMiAEEASgRAIAMoAvwDIg1BBGsoAgAiDEF4cSECIAJBBEEIIAxBA3EiDBsgAGpJDSIgDEEARyACIABBJ2pLcQ0jIA0QvAULAkAgAygCsAMiAEF8Rg0AIABBfUYNACAXEP8CIABBAEwNACADKAK0AyAAENkSCyADKAKgAyIAQQBKBEAgAygCpAMiDUEEaygCACIMQXhxIQIgAkEEQQggDEEDcSIMGyAAakkNIiAMQQBHIAIgAEEnaktxDSMgDRC8BQsgFCAOQbABaiICRwRAIBMgAWtBsAFrQbABbiEAA0AgAhDBCiACQbABaiECIABBAWsiAA0ACwsgEgRAIAtBBGsoAgAiAUF4cSEAIAAgEkGwAWwiAkEEQQggAUEDcSIBG3JJDSIgAUEARyAAIAJBJ2pLcQ0jIAsQvAULIAkgBTYCACAJIAMpA4ACNwIEIAkgAykDiAI3AgwgCSADKQOQAjcCFCAJIAMpA5gCNwIcIAkgAykDoAI3AiQgCSADKAKoAjYCLAwDCxCeFQALIBQgAGtBsAFuIQEgACAURg0AA0AgABDBCiAAQbABaiEAIAFBAWsiAQ0ACwsgEgRAIAtBBGsoAgAiAUF4cSEAIAAgEkGwAWwiAkEEQQggAUEDcSIBG3JJDR8gAUEARyAAIAJBJ2pLcQ0gIAsQvAULQQEQkAEiAEUNDSAAQSk6AAAgA0EBNgKIBSADIAA2AoQFIANBATYCgAUgDCADQYAFaiIAEPwNIAAgDEH/z8UAQQQQ1xIgAygCgAVBfkYNASAJIAMpAqgFNwIoIAkgAykCoAU3AiAgCSADKQKYBTcCGCAJIAMpApAFNwIQIAkgAykCiAU3AgggCSADKQKABTcCAAsgA0GMAWoQ1gcMAQsgA0GABWohFSADQYwBaiERIwBBkAZrIgYkAAJAAkACQAJAAkACQEEHEJABIgAEQCAAQZyCxgAoAAA2AAMgAEGZgsYAKAAANgAAIAZBBzYC6AQgBiAANgLkBCAGQQc2AuAEIAwgBkHgBGoiARD8DUEEEJABIgAEQCAAQdOK0YICNgAAIAZBBDYC6AQgBiAANgLkBCAGQQQ2AuAEIAwgARD8DSAGQdACaiAREOgCAkAgESgCTCIAQYzd6AVPDQAgESgCSCENAkACQCAAQbABbCIgRQRAQQghEAwBCyAgEJABIhBFDQEgAEUNAEEAIQEgACECA0AgASAgRg0BIAZB4ARqIgUgASANahCDAyABIBBqIAVBsAH8CgAAIAFBsAFqIQEgAkEBayICDQALCyAGQYAEaiARQdAAaiIkEOkMIBFBNGohJUF/IR8gESgCNCIoQX9HBEAgBkHgBGogJRDVCiAGIAYpAuQENwPYASAGIAYoAuwENgLgASAGKALgBCEfC0F+IQ8CQCARKAJoIhxBfkcEQEF/IQ8gESgCcCEBIBEoAmwhBQJAIBxBf0YEQCAFIQIMAQsgAUUEQEEBIQJBACEPDAELIAEQkAEiAkUNAiABBEAgAiAFIAH8CgAACyABIQ8LIAKtIAGtQiCGhCE0C0F/IQ4CQCARKAJcIh5Bf0cEQCARKAJkIg5BjN3oBU8NBAJAIA5BsAFsIgtFBEBBCCEFDAELIBEoAmAhEiALEJABIgVFDQIgDkUNAEEAIQEgDiECA0AgASALRg0BIAZB4ARqIhQgASASahCDAyABIAVqIBRBsAH8CgAAIAFBsAFqIQEgAkEBayICDQALCyAFrSAOrUIghoQhMwsgBiAGKAKAAzYCaCAGIAYpAvgCNwNgIAYgBikC8AI3A1ggBiAGKQLoAjcDUCAGIAYpAuACNwNIIAYgBikC2AI3A0AgBiAGKQLQAjcDOCAGIAA2AoQBIAYgEDYCgAEgBiAANgJ8IAYgBikCgAQ3A4gBIAYgBigCiAQ2ApABIAYgHzYCbCAGIA82AqABIAYgDjYClAEgBiAGKQPYATcDcCAGIAYoAuABNgJ4IAYgNDcCpAEgBiAzNwOYASAGKAKIASECIAYoAowBIQEgBigCkAEhEiAGQgA3AswBIAYgEkHgAGwiJiABaiIpNgLIASAGIAI2AsQBIAYgATYCvAEgBiAQICBqIhc2ArgBIAYgADYCtAEgBiAQNgKsASAzQiCIIjWnISEgBkHsAGohKiAzpyELIDSnISIgAEUEQEEAIQUMBwsgAEEBa0H/////AHFBAWohGSASIAAgACASSxtBAWshLiAGQYAEakEEciEvIAZBxANqIRogBkHcAWohMCAGQeAEaiICQQRqITEgAkH0AGohG0EAIQUCQANAAkACQAJAAkACQCAQICtqIgJB8ABqKAIAIixBfkcEQCAGQeAEaiACQfAA/AoAACAbIAJBrAFqKAIANgI4IBsgAkGkAWopAgA3AjAgGyACQZwBaikCADcCKCAbIAJBlAFqKQIANwIgIBsgAkGMAWopAgA3AhggGyACQYQBaikCADcCECAbIAJB/ABqKQIANwIIIBsgAkH0AGoiEykCADcCACAGICw2AtAFICZFDQIgASgCACIyQX9HDQEgAUHgAGohKSACQbABaiEBIAUhEgwPCyACQbABaiEQDA0LIAJBsAFqIS0gAUHgAGohFCAvIAFBBGpB3AD8CgAAIBogEygCODYCOCAaIBMpAjA3AjAgGiATKQIoNwIoIBogEykCIDcCICAaIBMpAhg3AhggGiATKQIQNwIQIBogEykCCDcCCCAaIBMpAgA3AgAgMSACQfAA/AoAACAGQdgBaiAGQeAEaiIBQfQA/AoAACAGQdACaiICIDBB8AD8CgAAIAYgMjYCgAQgBiAsNgLAAyABIAwgAhD6AiAFQQFqIRMgBigC4AQiAkF+Rg0BIAYgEzYC1AEgBiAUNgLAASAGIC02ArABIAYgBikC5AQ3AwggBiAGKQLsBDcDECAGIAYpAvQENwMYIAYgBikC/AQ3AyAgBiAGKQKEBTcDKCAGIAYoAowFNgIwIAZBgARqEK0BIAYoAtAEIgFBAEwNAiAGKALUBCIQQQRrKAIAIhJBeHEhBSAFQQRBCCASQQNxIhIbIAFqSQ0uIBJBAEcgBSABQSdqS3ENLyAQELwFDAILIAJBsAFqIQEMDAtBAxCQASIBRQ0bIAFBsoLGAC0AADoAAiABQbCCxgAvAAA7AAAgBkEDNgLoBCAGIAE2AuQEIAZBAzYC4AQgDCAGQeAEaiIBEPwNIAEgDCAGQYAEahDJASAGKALgBCICQX5GDQEgBiATNgLUASAGIBQ2AsABIAYgLTYCsAEgBiAGKQLkBDcDCCAGIAYpAuwENwMQIAYgBikC9AQ3AxggBiAGKQL8BDcDICAGIAYpAoQFNwMoIAYgBigCjAU2AjALIAZBrAFqEIELIAZBOGoQ4QIgH0F/RwRAICoQnQYLIA9BAEoEQCAiQQRrKAIAIgVBeHEhASABQQRBCCAFQQNxIgUbIA9qSQ0sIAVBAEcgASAPQSdqS3ENLSAiELwFCwJAIA5Bf0YNACA1QgBSBEAgCyEBA0AgARDBCiABQbABaiEBICFBAWsiIQ0ACwsgDkUNACALQQRrKAIAIgVBeHEhASABIA5BsAFsIg5BBEEIIAVBA3EiBRtySQ0sIAVBAEcgASAOQSdqS3ENLSALELwFCyAVIAI2AgAgFSAGKQMINwIEIBUgBikDEDcCDCAVIAYpAxg3AhQgFSAGKQMgNwIcIBUgBikDKDcCJCAVIAYoAjA2AiwgERDhAiANIQEDQCABEMEKIAFBsAFqIQEgAEEBayIADQALIBEoAkQiAQRAIA1BBGsoAgAiAkF4cSEAIAAgAUGwAWwiAUEEQQggAkEDcSICG3JJDSwgAkEARyAAIAFBJ2pLcQ0tIA0QvAULIBEoAlQhAiARKAJYIgEEQCACIQADQCAAEK0BIABB0ABqKAIAIgVBAEoEQCAAQdQAaigCACILQQRrKAIAIg5BeHEhDSANQQRBCCAOQQNxIg4bIAVqSQ0uIA5BAEcgDSAFQSdqS3ENLyALELwFCyAAQeAAaiEAIAFBAWsiAQ0ACwsgJCgCACIBBEAgAkEEaygCACIFQXhxIQAgACABQeAAbCIBQQRBCCAFQQNxIgUbckkNLCAFQQBHIAAgAUEnaktxDS0gAhC8BQsgKEF/Rg0MICUQnQYMDAsgBSAuSQRAQQIQkAEiAUUNAiABQazAADsAACAGQQI2AugEIAYgATYC5AQgBkECNgLgBCAMIAZB4ARqEPwNCyAmQeAAayEmIBQhASATIQUgK0GwAWoiKyAgRw0ACyAZIQUgFyEQDAcLDBcLQQgQpxQACwwVC0EIEKcUAAsQnhUACwwSCwwRCyAGIAU2AtQBIAYgATYCwAEgBiAQNgKwAQwBCyAGIBI2AtQBIAYgKTYCwAEgBiABNgKwASAGQeAEahDBCgsgBkGsAWoQgQsgBkE4ahDhAiAfQX9HBEAgKhCdBgsgD0EASgRAICJBBGsoAgAiAkF4cSEBIAFBBEEIIAJBA3EiAhsgD2pJDSAgAkEARyABIA9BJ2pLcQ0hICIQvAULAkAgDkF/Rg0AIDVCAFIEQCALIQEDQCABEMEKIAFBsAFqIQEgIUEBayIhDQALCyAORQ0AIAtBBGsoAgAiAkF4cSEBIAEgDkGwAWwiBUEEQQggAkEDcSICG3JJDSAgAkEARyABIAVBJ2pLcQ0hIAsQvAULIChBf0YNAUEHEJABIgFFDQ4gAUGBgsYAKAAANgADIAFB/oHGACgAADYAACAGQQc2AugEIAYgATYC5AQgBkEHNgLgBCAMIAZB4ARqIgEQ/A0gASAMICUQ+wEgBigC4ARBfkYNASAVIAYpAogFNwIoIBUgBikCgAU3AiAgFSAGKQL4BDcCGCAVIAYpAvAENwIQIBUgBikC6AQ3AgggFSAGKQLgBDcCACAREOECIAAEQCANIQEDQCABEMEKIAFBsAFqIQEgAEEBayIADQALCyARKAJEIgEEQCANQQRrKAIAIgJBeHEhACAAIAFBsAFsIgFBBEEIIAJBA3EiAhtySQ0gIAJBAEcgACABQSdqS3ENISANELwFCyARKAJUIQIgESgCWCIBBEAgAiEAA0AgABCtASAAQdAAaigCACIFQQBKBEAgAEHUAGooAgAiC0EEaygCACIOQXhxIQ0gDUEEQQggDkEDcSIOGyAFakkNIiAOQQBHIA0gBUEnaktxDSMgCxC8BQsgAEHgAGohACABQQFrIgENAAsLICQoAgAiAUUNACACQQRrKAIAIgVBeHEhACAAIAFB4ABsIgFBBEEIIAVBA3EiBRtySQ0fIAVBAEcgACABQSdqS3ENICACELwFCyAcQQBKBEAgESgCbCIBQQRrKAIAIgJBeHEhACAAQQRBCCACQQNxIgIbIBxqSQ0fIAJBAEcgACAcQSdqS3ENICABELwFCyAeQX9GDQEgESgCYCECIBEoAmQiAQRAIAIhAANAIAAQwQogAEGwAWohACABQQFrIgENAAsLIB5FDQEgAkEEaygCACIBQXhxIQAgACAeQbABbCIFQQRBCCABQQNxIgEbckkNHiABQQBHIAAgBUEnaktxDR8gAhC8BQwBCyAVQX42AgAgERDhAiAABEAgDSEBA0AgARDBCiABQbABaiEBIABBAWsiAA0ACwsgESgCRCIBBEAgDUEEaygCACICQXhxIQAgACABQbABbCIBQQRBCCACQQNxIgIbckkNHiACQQBHIAAgAUEnaktxDR8gDRC8BQsgESgCVCECIBEoAlgiAQRAIAIhAANAIAAQrQEgAEHQAGooAgAiBUEASgRAIABB1ABqKAIAIgtBBGsoAgAiDkF4cSENIA1BBEEIIA5BA3EiDhsgBWpJDSAgDkEARyANIAVBJ2pLcQ0hIAsQvAULIABB4ABqIQAgAUEBayIBDQALCyAkKAIAIgEEQCACQQRrKAIAIgVBeHEhACAAIAFB4ABsIgFBBEEIIAVBA3EiBRtySQ0eIAVBAEcgACABQSdqS3ENHyACELwFCyAcQQBKBEAgESgCbCIBQQRrKAIAIgJBeHEhACAAQQRBCCACQQNxIgIbIBxqSQ0eIAJBAEcgACAcQSdqS3ENHyABELwFCyAeQX9GDQAgESgCYCECIBEoAmQiAQRAIAIhAANAIAAQwQogAEGwAWohACABQQFrIgENAAsLIB5FDQAgAkEEaygCACIBQXhxIQAgACAeQbABbCIFQQRBCCABQQNxIgEbckkNHSABQQBHIAAgBUEnaktxDR4gAhC8BQsgBkGQBmokACADKAKABUF+Rg0BIAkgAykCqAU3AiggCSADKQKgBTcCICAJIAMpApgFNwIYIAkgAykCkAU3AhAgCSADKQKIBTcCCCAJIAMpAoAFNwIACyAYEMYMQQAhAUEBIQVBASENIAcNAgwDC0EAIQELIAMgBCgC9AE2AqgDIAMgBCkC7AE3A6ADIANBgAVqIAwgA0GgA2oQwwggAygCgAVBfkcEQCAJIAMpAqgFNwIoIAkgAykCoAU3AiAgCSADKQKYBTcCGCAJIAMpApAFNwIQIAkgAykCiAU3AgggCSADKQKABTcCACAYEMYMQQAhDUEBIQUgB0UNAgwBCwJAAkACQCAEKALgASICQX5HBEAgBCgC6AEhBSAEKALkASENQQEQkAEiAEUNDCAAQSA6AAAgA0EBNgKIBSADIAA2AoQFIANBATYCgAUgDCADQYAFaiIAEPwNIAMgBTYCqAMgAyANNgKkAyADIAI2AqADIAAgDCADQaADahCYDSADKAKABUF+Rw0BCyAJQX42AgAgGBDGDCAHDQEMAgsgCSADKQKoBTcCKCAJIAMpAqAFNwIgIAkgAykCmAU3AhggCSADKQKQBTcCECAJIAMpAogFNwIIIAkgAykCgAU3AgAgGBDGDEEAIQVBACENIAcNAgwDCyAEQfgBaiICKAIEIQEgAigCCCIABEAgASEHA0AgBxDBCiAHQbABaiEHIABBAWsiAA0ACwsgAigCACICBEAgAUEEaygCACIFQXhxIQAgACACQbABbCICQQRBCCAFQQNxIgUbckkNGyAFQQBHIAAgAkEnaktxDRwgARC8BQsLIB1FDQcgIygCACIAQQlNQQBBASAAdEGRBHEbRQRAICMQrQELIAQoAtABIgJBAEwNB0HUAQwGCyAEKAL8ASEHIAQoAoACIgAEQCAHIQIDQCACEMEKIAJBsAFqIQIgAEEBayIADQALCyAEKAL4ASICDQELIB1FDQMMAQsgB0EEaygCACILQXhxIQAgACACQbABbCICQQRBCCALQQNxIgsbckkNFiALQQBHIAAgAkEnaktxDRcgBxC8BSAdRQ0CCwJAAkACQAJAAkAgBCgCgAEOCgADAwMBAwMDAwIDCyAKRQ0DIARBmAFqEP8CIAQoAogBIgBBAEwNAyAEKAKMASIHQQRrKAIAIghBeHEhAiACQQRBCCAIQQNxIggbIABqSQ0ZIAhBAEcgAiAAQSdqS3ENGiAHELwFDAMLIAhFDQIgBCgCiAEhByAEKAKMASIABEAgByECA0AgAhCtASACQdAAaigCACIIQQBKBEAgAkHUAGooAgAiC0EEaygCACIJQXhxIQogCkEEQQggCUEDcSIJGyAIakkNGyAJQQBHIAogCEEnaktxDRwgCxC8BQsgAkHgAGohAiAAQQFrIgANAAsLIAQoAoQBIgJFDQIgB0EEaygCACIIQXhxIQAgACACQeAAbCICQQRBCCAIQQNxIggbckkNGCAIQQBHIAAgAkEnaktxDRkgBxC8BQwCCyAWRQ0BIAQoAoQBIgAQ0QsgAEEEaygCACIHQXhxIQIgAkEQQRQgB0EDcSIHG0kNFyAHQQBHIAJBNE9xDRggABC8BQwBCyAEQYABahCtAQsgBCgC0AEiAEEATA0BIAQoAtQBIgdBBGsoAgAiCEF4cSECIAJBBEEIIAhBA3EiCBsgAGpJDRUgCEUNACACIABBJ2pNDQAMFgsgBxC8BQsCQCABRQ0AIAQoAgBBfk8NACAEENYHIAQoAnghASAEKAJ8IgAEQCABIQIDQCACEMEKIAJBsAFqIQIgAEEBayIADQALCyAEKAJ0IgJFDQAgAUEEaygCACIHQXhxIQAgACACQbABbCICQQRBCCAHQQNxIgcbckkNFCAHQQBHIAAgAkEnaktxRQRAIAEQvAUMAQsMFQsCQCANRQ0AIAQoAuwBIgdBf0YNACAEKALwASEBIAQoAvQBIgAEQCABIQIDQCACEMEKIAJBsAFqIQIgAEEBayIADQALCyAHRQ0AIAFBBGsoAgAiAkF4cSEAIAAgB0GwAWwiB0EEQQggAkEDcSICG3JJDRQgAkEARyAAIAdBJ2pLcUUEQCABELwFDAELDBULIAUgBCgC4AEiAkEBa0F9SXFFDQFB5AELIARqKAIAIgFBBGsoAgAiBUF4cSEAIABBBEEIIAVBA3EiBRsgAmpJDRIgBUEARyAAIAJBJ2pLcQ0TIAEQvAULIANBsAZqJAAMAQtBARCnFAALICdBBGsoAgAiAEEDcSEBIABBeHFBvAJBwAIgARtJDQ8gAUEARyAAQeACT3ENECAnELwFDA0LIARBvAJqIgUgAigCBCISQfQA/AoAAEEHEJABIgIEQCACQZyCxgAoAAA2AAMgAkGZgsYAKAAANgAAIARBBzYCCCAEIAI2AgQgBEEHNgIAIAEgBBD8DSAEIAEgBUEBEJUBIAQoAgBBfkcNBUEFEJABIgIEQEEAIQUgAkGkgsYALQAAOgAEIAJBoILGACgAADYAACAEQQU2AgggBCACNgIEIARBBTYCACABIAQQ/A0gBCgCiAMhDSAEKAKUAyEHIAQoAoQDIQogBCgCgAMhCCAEKAKQAyECIAQoAowDIQsgBEIANwLQAyAEIAs2AsgDIAQgAjYCwAMgBCAINgK4AyAEIAo2ArADIAQgB0HgAGwiECACaiIWNgLMAyAEIA1BsAFsIhkgCmoiCDYCvAMgDUUEQCAKIQgMCQsgDUEBa0H/////AHFBAWohCSAHIA0gByANSRtBAWshAyAEQYAGakEEciEGIARBxAVqIQwgBEHgA2ohESAEQQRqIRUgBEH0AGohDgJAAkADQAJAAkACQCAKIBRqIgtB8ABqKAIAIhNBfkcEQCAEIAtB8AD8CgAAIA4gC0GsAWooAgA2AjggDiALQaQBaikCADcCMCAOIAtBnAFqKQIANwIoIA4gC0GUAWopAgA3AiAgDiALQYwBaikCADcCGCAOIAtBhAFqKQIANwIQIA4gC0H8AGopAgA3AgggDiALQfQAaiIPKQIANwIAIAQgEzYCcCAQRQ0CIAIoAgAiGEF/Rw0BIAJB4ABqIRYgC0GwAWohAiAFIQcMEAsgC0GwAWohCAwOCyALQbABaiEXIAJB4ABqIQ0gBiACQQRqQdwA/AoAACAMIA8oAjg2AjggDCAPKQIwNwIwIAwgDykCKDcCKCAMIA8pAiA3AiAgDCAPKQIYNwIYIAwgDykCEDcCECAMIA8pAgg3AgggDCAPKQIANwIAIBUgC0HwAPwKAAAgBEHcA2ogBEH0APwKAAAgBEHQBGoiAiARQfAA/AoAACAEIBg2AoAGIAQgEzYCwAUgBCABIAIQ+gIgBUEBaiELIAQoAgBBfkYNASAAIAQpAgA3AgAgACAEKQIINwIIIAAgBCkCEDcCECAAIAQpAhg3AhggACAEKQIgNwIgIAAgBCkCKDcCKCAEIAs2AtgDIAQgDTYCxAMgBCAXNgK0AyAEQYAGahDNASAEKALQBiIAQX5GDQMgAEF/Rg0DIABFDQMgBCgC1AYgABDZEgwDCyALQbABaiECDA0LQQMQkAEiAkUNEiACQbKCxgAtAAA6AAIgAkGwgsYALwAAOwAAIARBAzYCCCAEIAI2AgQgBEEDNgIAIAEgBBD8DSAEIAEgBEGABmoQyAEgBCgCAEF+RwRAIAAgBCkCADcCACAAIAQpAgg3AgggACAEKQIQNwIQIAAgBCkCGDcCGCAAIAQpAiA3AiAgACAEKQIoNwIoIAQgCzYC2AMgBCANNgLEAyAEIBc2ArQDDAILIAMgBUsEQEECEJABIgJFDQMgAkGswAA7AAAgBEECNgIIIAQgAjYCBCAEQQI2AgAgASAEEPwNCyAQQeAAayEQIA0hAiALIQUgGSAUQbABaiIURw0ACyAJIQUMCgsgBEGwA2oQ5QpBASEFDAgLDA8LDA4LDA0LIAIoAgQhB0EBIQoCQCACKAIIIgJFIggNACACEJABIgpFDQ0gCA0AIAogByAC/AoAAAsgBCACNgIIIAQgCjYCBCAEIAI2AgAgASAEEPwNIABBfjYCACAFQQBMDQsgB0EEaygCACIBQXhxIQAgAEEEQQggAUEDcSIBGyAFakkNDSABQQBHIAAgBUEnaktxRQRAIAcQvAUMDAsMDgtB8oDGAEGFAUG0gcYAEL8TAAsgBCACKAIEIgIoAiA2AiAgBCACKQIYNwMYIAQgAikCEDcDECAEIAIpAgg3AwggBCACKQIANwMAIAAgASAEENMCIAJBBGsoAgAiAUF4cSEAIABBKEEsIAFBA3EiARtJDQsgAUEARyAAQcwAT3FFBEAgAhC8BQwKCwwMCyAEIAIoAgQiB0HcAPwKAAACQEEMEJABIgIEQCACQb3PxQAoAAA2AAggAkG1z8UAKQAANwAAIARBDDYC2AQgBCACNgLUBCAEQQw2AtAEIAEgBEHQBGoiAhD8DSACIAEgBEEBEMcBAkACQAJAAkAgBCgC0ARBfkYEQCAEKAI0QX9HBEBBBxCQASIFRQ0RIAVBgYLGACgAADYAAyAFQf6BxgAoAAA2AAAgBEEHNgLYBCAEIAU2AtQEIARBBzYC0AQgASACEPwNIAIgASAEQTRqEPsBIAQoAtAEQX5HDQILIARB0ARqIAEgBEHEAGoQwwggBCgC0ARBfkcEQCAAIAQpAvgENwIoIAAgBCkC8AQ3AiAgACAEKQLoBDcCGCAAIAQpAuAENwIQIAAgBCkC2AQ3AgggACAEKQLQBDcCAAwECwJAIAQoAlAiBUF+RwRAIAQoAlghCCAEKAJUIQpBARCQASICRQ0IIAJBIDoAACAEQQE2AtgEIAQgAjYC1AQgBEEBNgLQBCABIARB0ARqIgIQ/A0gBCAINgLkAyAEIAo2AuADIAQgBTYC3AMgAiABIARB3ANqEJgNIAQoAtAEQX5HDQELIABBfjYCAAwFCyAAIAQpAvgENwIoIAAgBCkC8AQ3AiAgACAEKQLoBDcCGCAAIAQpAuAENwIQIAAgBCkC2AQ3AgggACAEKQLQBDcCAAwECyAAIAQpAvgENwIoIAAgBCkC8AQ3AiAgACAEKQLoBDcCGCAAIAQpAuAENwIQIAAgBCkC2AQ3AgggACAEKQLQBDcCACAEKAI0QX9GDQEgBEE0ahCdBgwBCyAAIAQpAvgENwIoIAAgBCkC8AQ3AiAgACAEKQLoBDcCGCAAIAQpAuAENwIQIAAgBCkC2AQ3AgggACAEKQLQBDcCAAsgBCgCRCIFQX9GDQAgBCgCSCEAIAQoAkwiAgRAIAAhAQNAIAEQwQogAUGwAWohASACQQFrIgINAAsLIAVFDQAgAEEEaygCACICQXhxIQEgASAFQbABbCIFQQRBCCACQQNxIgIbckkNDiACQQBHIAEgBUEnaktxDQ8gABC8BQsgBCgCUCIAQX5GDQAgAEF/Rg0AIABFDQAgBCgCVCICQQRrKAIAIgVBeHEhASABQQRBCCAFQQNxIgUbIABqSQ0NIAVBAEcgASAAQSdqS3ENDiACELwFCyAHQQRrKAIAIgFBeHEhACAAQeAAQeQAIAFBA3EiARtJDQwgAUEARyAAQYQBT3ENDSAHELwFDAoLDAoLDAkLIAAgBCkCKDcCKCAAIAQpAiA3AiAgACAEKQIYNwIYIAAgBCkCEDcCECAAIAQpAgg3AgggACAEKQIANwIAIAQoAoQDIQAgBCgCiAMiAgRAIAAhAQNAIAEQsgogAUGwAWohASACQQFrIgINAAsLIAQoAoADIgIEQCAAQQRrKAIAIgVBeHEhASABIAJBsAFsIgJBBEEIIAVBA3EiBRtySQ0KIAVBAEcgASACQSdqS3ENCyAAELwFCyAEKAKQAyECIAQoApQDIgAEQCACIQEDQCABEM0BAkAgAUHQAGooAgAiBUF+Rg0AIAVBf0YNACAFRQ0AIAFB1ABqKAIAIghBBGsoAgAiCkF4cSEHIAdBBEEIIApBA3EiChsgBWpJDQwgCkEARyAHIAVBJ2pLcQ0NIAgQvAULIAFB4ABqIQEgAEEBayIADQALC0EBIQUgBCgCjAMiAUUNACACQQRrKAIAIgdBeHEhACAAIAFB4ABsIgFBBEEIIAdBA3EiBxtySQ0JIAdBAEcgACABQSdqS3FFBEAgAhC8BQwBCwwKC0EBIQJBASEBDAMLIAQgBTYC2AMgBCACNgLEAyAEIAg2ArQDDAELIAQgBzYC2AMgBCAWNgLEAyAEIAI2ArQDIAQQsgoLIARBsANqEOUKAkACQCAEKALwAkF/RiIFRQRAQQcQkAEiAkUNByACQYGCxgAoAAA2AAMgAkH+gcYAKAAANgAAIARBBzYCCCAEIAI2AgQgBEEHNgIAIAEgBBD8DSAEIAEgBEHwAmoQ9QEgBCgCAEF+Rw0BCyAEKAKYAyIIQX9GIgINASAEKAKgAyIKRQRAIARBmANqEK4RDAILIAQoApwDIQcgBCAINgIIIAQgBzYCBCAEIAc2AgAgBCAHIApBsAFsajYCDCAEQdwDaiELIwBBsAFrIgkkACAEKAIIIhBBsAFsIg1B4ABuIQ8gBCgCACEHAkACQAJAAkAgBCgCBCIIIAQoAgwiDEYEQCAHIQoMAQsgByEKA0AgCSAIQbAB/AoAAEGwARCQASIORQ0CIA4gCUGwAfwKAAAgCkHQAGpBfjYCACAKQQRqIA42AgAgCkEDNgIAIApB4ABqIQogDCAIQbABaiIIRw0ACwsgDCAIa0GwAW4hDiAIIAxHBEADQCAIELIKIAhBsAFqIQggDkEBayIODQALCyAHIQgCQCAQRQ0AIA9B4ABsIgwgDUYNACANQd8ATQRAIA1FBEBBCCEIDAILIAdBBGsoAgAiDEF4cSEIIAhBBEEIIAxBA3EiDBsgDXJJDQwgDEEARyAIIA1BJ2pLcQ0NIAcQvAVBCCEIDAELIAcgDUEIIAwQrQYiCEUNAgsgCyAINgIEIAsgDzYCACALIAogB2tB4ABuNgIIIAlBsAFqJAAMAgtBuPDJAEEBOgAAAAtBuPDJAEEBOgAAAAsgBCABQaWCxgBBCxDXEgJAIAQoAgBBfkcEQCAAIAQpAig3AiggACAEKQIgNwIgIAAgBCkCGDcCGCAAIAQpAhA3AhAgACAEKQIINwIIIAAgBCkCADcCACALEKMODAELIAQgASAEQdwDahC9BiAEKAIAQX5GDQIgACAEKQIoNwIoIAAgBCkCIDcCICAAIAQpAhg3AhggACAEKQIQNwIQIAAgBCkCCDcCCCAAIAQpAgA3AgALQQEhAUEAIQIMAgsgACAEKQIoNwIoIAAgBCkCIDcCICAAIAQpAhg3AhggACAEKQIQNwIQIAAgBCkCCDcCCCAAIAQpAgA3AgBBASEBQQEhAgwCCwJAIAQoAqQDIgdBfkYNACAEKAKsAyEKIAQoAqgDIQggBCABQfzUxQBBARDXEiAEKAIAQX5HBEAgACAEKQIoNwIoIAAgBCkCIDcCICAAIAQpAhg3AhggACAEKQIQNwIQIAAgBCkCCDcCCCAAIAQpAgA3AgBBACEBIAdBAEwNAiAIIAcQ2RIMAgsgBCAKNgLYBCAEIAg2AtQEIAQgBzYC0AQgBCABIARB0ARqEJgNIAQoAgBBfkYNACAAIAQpAig3AiggACAEKQIgNwIgIAAgBCkCGDcCGCAAIAQpAhA3AhAgACAEKQIINwIIIAAgBCkCADcCAEEAIQEMAQsgAEF+NgIADAILIAVFDQAgBCgC8AJBf0YNACAEQfACahD1BQsCQCABRQ0AIAQoAqQDIgBBfkYNACAAQX9GDQAgAEUNACAEKAKoAyIFQQRrKAIAIgdBeHEhASABQQRBCCAHQQNxIgcbIABqSQ0EIAdBAEcgASAAQSdqS3FFBEAgBRC8BQwBCwwFCyACIAQoApgDIgVBf0dxRQ0AIAQoApwDIQAgBCgCoAMiAgRAIAAhAQNAIAEQsgogAUGwAWohASACQQFrIgINAAsLIAVFDQAgAEEEaygCACICQXhxIQEgASAFQbABbCIFQQRBCCACQQNxIgIbckkNAyACQQBHIAEgBUEnaktxDQQgABC8BQsgEkEEaygCACIBQXhxIQAgAEH4AEH8ACABQQNxIgEbSQ0CIAFBAEcgAEGcAU9xDQMgEhC8BQsgBEHgBmokAA8LQQEQpxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAuqJQIRfwV+IwBB4ANrIgUkACAFIAI6AAcCQAJAAkAgASgCEEECaw4CAAECC0EBIRUMAQsgASkDGEI/iKchFQsgASACEOsKBH4gBUFAayABEK4DIAUgBSkDSDcDuAIgBSAFKQNQNwPAAiAFIAUpA1g3A8gCIAUgBSkDYDcD0AIgBSAFKQNoNwPYAiAFIAUpA3A3A+ACIAUgBSkDeDcD6AIgBS0AByECIAUpA0AFQgILIRkgBSAFKQPoAjcDcCAFIAUpA+ACNwNoIAUgBSkD2AI3A2AgBSAFKQPQAjcDWCAFIAUpA8gCNwNQIAUgBSkDwAI3A0ggBSAFKQO4AjcDQAJAAkACQAJAAkACQAJAAkACQCABIAJBAXEiBhD2BwR/IAEoAogBIQ4gAUF/NgKIASAOQX9GDQQgASkCjAEhFyAFIA42AsgBIAUgFzcCzAEgF0IgiCIWpyEIIBenIQoCQCAGBEAgBUG4AmogCiAKIAhByAFsahCiDgwBCwJAIBZQBEBBACEIQQQhDAwBCyAIQQxsEJABIgxFDQUgCiEHIAwhASAIIRIDQCAFQbgCaiAHELwIIAUoAsACIQIgBSgCvAIhBgJAIAUoArgCIglBf0cEQCAGIQ0MAQsgAkEASA0GIAJFBEBBASENQQAhAkEAIQkMAQsgAhCQASINRQ0FIAIEQCANIAYgAvwKAAALIAIhCQsgASAJNgIAIAFBCGogAjYCACABQQRqIA02AgAgB0HIAWohByABQQxqIQEgEkEBayISDQALCyAFIAg2AsACIAUgDDYCvAIgBSAINgK4AgsgBUHIAWoQ6AQgDgRAIApBBGsoAgAiAUF4cSEGIAYgDkHIAWwiAkEEQQggAUEDcSIBG2pJDQkgAUEARyAGIAJBJ2pLcQ0IIAoQvAULIAUpArwCIRogBS0AByECIAUoArgCBUF/CyESIAUgBSkDcDcDOCAFIAUpA2g3AzAgBSAFKQNgNwMoIAUgBSkDWDcDICAFIAUpA1A3AxggBSAFKQNINwMQIAUgBSkDQDcDCCACQf8BcQ0EIAUgAyAEQcACbCIBajYC2AMgBSAFQQdqNgLcAyAERQ0EIAVB3ANqIQQDQAJAIAUgA0HAAmoiAjYC1AMgAykDAEIEUQRAIAVBQGsgBCADQQhqEIoOIAUpA1AiFkJ/Ug0BCyACIQMgAUHAAmsiAQ0BDAYLCyAFIAUpA0g3A9ABIAUgBSkDQDcDyAEgBUG4AmoiASAFQdgAakHgAPwKAABB4AMQkAEiBgRAIAYgBSkD0AE3AwggBiAFKQPIATcDACAGIBY3AxAgBkEYaiABQeAA/AoAACAFQQE2ArACIAUgBjYCrAJBBCEBIAVBBDYCqAIgBSAFKQLUAyIWNwOwAyAFIAUoAtwDNgK4AwJAIAUoArQDIgIgFqciA0YEQEEBIQMMAQsgBUG4A2ohCCAFQdgAaiEEQQEhBwJ/A0AgA0HAAmohAQJAIAMpAwBCBFEEQCAFQUBrIAggA0EIahCKDiAFKQNQIhZCf1INAQsgASIDIAJHDQFBASEDIAUoAqwCIQYgBSgCqAIiASAHQQFHDQIaDAMLIAUgATYCsAMgBSAFKQNINwPQASAFIAUpA0A3A8gBIAVBuAJqIARB4AD8CgAAIAUoAqgCIAdGBEAgBUGoAmogB0EBQQhB+AAQsxEgBSgCrAIhBgsgBiAHQfgAbGoiASAFKQPQATcDCCABIAUpA8gBNwMAIAEgFjcDECABQRhqIAVBuAJqQeAA/AoAACAFIAdBAWoiBzYCsAIgBSgCtAMiAiAFKAKwAyIDRw0ACyAFKAKsAiEGIAUoAqgCCyEBAkAgB0EVTwRAAkACQAJAIAcgB0EBdmsiA0GSosQISQRAQTBB6ogEIAcgB0HqiARPGyICIAMgAiADSxsiAiACQTBNGyICQfgAbCIEEJABIghFDQEgBiAHIAggAiAHQcEASRCWAiAIQQRrKAIAIgJBeHEhAyADQQRBCCACQQNxIgIbIARqSQ0CIAJBAEcgAyAEQSdqS3ENAyAIELwFDAULEJ4VAAtBCBCnFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0EAIQQjAEHwAGsiDyQAIAZB+ABqIQMgBiAHQfgAbGohCSAGIQIDQCACQfwAaigCACINIAJBBGooAgAgAkGAAWooAgAiCyACQQhqKAIAIgwgCyAMSRsQjxMiCCALIAxrIAgbQQBIBEAgAigCeCEMIA9BBGogAkGEAWpB7AD8CgAAIAQhAgJ/AkADQCACIAZqIghB+ABqIg4gCEH4APwKAAAgAkUNASACQfgAayECIA0gCEH0AGsoAgAgCyAIQfAAaygCACIKIAogC0sbEI8TIgggCyAKayAIG0EASA0ACyACIAZqQfgAagwBCyAGCyAMNgIAIA5B8ABrIAs2AgAgDkH0AGsgDTYCACAOQewAayAPQQRqQewA/AoAAAsgBEH4AGohBCAJIAMiAkH4AGoiA0cNAAsgD0HwAGokAAsgByEDC0GIChCQASIIBEAgCEEAOwGCCiAIQQA2AvgIIAUgBiADQfgAbGoiDTYCxAEgBSABNgLAASAFIAY2ArwBIAUgBjYCuAEgBUJ+NwNQIAVB6AJqIQ4gBUHQAmohESAFQdgAaiEKQn4hFkEAIQwgCCEJA0ACQAJAAkACQAJAAn8gFkJ+UgRAIAUgBSkDSDcDuAMgBSAFKQNANwOwAyAGIQMgFiEYIAoMAQsgBiANRg0BIAUgBkH4AGoiAzYCvAEgBSAGKQMANwOwAyAFIAYpAwg3A7gDIAYpAxAhGCAGQRhqCyEBIBhCf1INASADIQYLIAVCfjcDUCANIAZrQfgAbiEDIAYgDUcEQANAIAYoAgAiBwRAIAZBBGooAgAiAkEEaygCACIBQXhxIQQgBEEEQQggAUEDcSIBGyAHakkNESABQQBHIAQgB0EnaktxDRAgAhC8BQsgBkEQahCFCCAGQfgAaiEGIANBAWsiAw0ACwsgBSgCwAEiAgRAIAUoArgBIgNBBGsoAgAiAUF4cSEEIAQgAkH4AGwiAkEEQQggAUEDcSIBG2pJDQ8gAUEARyAEIAJBJ2pLcQ0OIAMQvAULIAwNAUEAIQwMDAsgBSAFKQO4AzcDwAIgBSAFKQOwAzcDuAIgESABQeAA/AoAACAFIBg3A8gCIAMgDUYEQEJ/IRcMAwsgBSADQfgAaiIGNgK8ASADKQMIIRYgBSADKQMANwNAIAUgFjcDSCADKQMQIRYgCiADQRhqQeAA/AoAAEJ/IRcgFkJ/UQRAIAYhAwwDCyAFKALAAiIBIAUoAkhHDQEgBSgCvAIiBCAFKAJEIAEQjxMNASAFKAK4AiIDBEAgBEEEaygCACIBQXhxIQIgAkEEQQggAUEDcSIBGyADakkNDiABQQBHIAIgA0EnaktxDQ0gBBC8BQsCQCAYQgJRDQAgBSgC6AJFDQAgDhCgDAsCQCAFKAKIAyIQQX9GDQAgBSgCjAMhAiAFKAKQAyIBBEAgAiEDA0AgAygCACILBEAgA0EEaigCACIHQQRrKAIAIgRBeHEhDyAPQQRBCCAEQQNxIgQbIAtqSQ0RIARBAEcgDyALQSdqS3ENECAHELwFCyADQQxqIQMgAUEBayIBDQALCyAQRQ0AIAJBBGsoAgAiAUF4cSEEIAQgEEEMbCIDQQRBCCABQQNxIgEbakkNDiABQQBHIAQgA0EnaktxDQ0gAhC8BQsgBQJ/IAUoAqADIgJFBEBBACEDQQAMAQsgBSAFKAKkAyIBNgLMAyAFIAI2AsgDIAVBADYCxAMgBSABNgK8AyAFIAI2ArgDIAVBADYCtANBASEDIAUoAqgDCzYC0AMgBSADNgLAAyAFIAM2ArADIAVBsANqEJkFIAUoApQDIhBBf0YNAyAFKAKYAyECIAUoApwDIgEEQCACIQMDQCADKAIAIgsEQCADQQRqKAIAIgdBBGsoAgAiBEF4cSEPIA9BBEEIIARBA3EiBBsgC2pJDRAgBEEARyAPIAtBJ2pLcQ0PIAcQvAULIANBDGohAyABQQFrIgENAAsLIBBFDQMgAkEEaygCACIBQXhxIQQgBCAQQQxsIgNBBEEIIAFBA3EiARtqSQ0NIAFBAEcgBCADQSdqS3ENDCACELwFDAMLIAghASAMIQYDQAJAAkAgAS8BggoiAgRAIAEgAkEBayIOQQJ0aiIDKAKMCiICLwGCCiITQQVPDQJBBSATa0H//wNxIhEgAygCiAoiEC8BggoiBEsNASAQIAQgEWsiCTsBggogAkEFOwGCCiACQfwIaiELIBNBDGwiAwRAIAsgEUEMbGogCyAD/AoAAAsgE0HoAGwiAwRAIAIgEUHoAGxqIAIgA/wKAAALIBAgCUEMbGohDyAEIAlBAWoiB2siA0EMbCINBEAgCyAPQYgJaiAN/AoAAAsgECAJQegAbGohCiADQegAbCIJBEAgAiAKQegAaiAJ/AoAAAsgBUG4AmoiBCAKQegA/AoAACAFIAEgDkEMbGoiCigChAk2AtABIAUgCikC/Ag3A8gBIA9BhAlqKAIAIQMgCiAPQfwIaikCADcC/AggCiADNgKECSAFQUBrIgMgASAOQegAbGoiAUHoAPwKAAAgASAEQegA/AoAACALIA1qIgEgBSgC0AE2AgggASAFKQPIATcCACACIAlqIANB6AD8CgAAIAZBAUYNDiARQQJ0IQQgAkGICmohAyATQQJ0QQRqIgEEQCADIARqIAMgAfwKAAALIAQEQCADIBAgB0ECdGpBiApqIAT8CgAACyACKAKICiIBQQA7AYAKIAEgAjYC+AggAigCjAoiAUEBOwGACiABIAI2AvgIIAIoApAKIgFBAjsBgAogASACNgL4CCACKAKUCiIBQQM7AYAKIAEgAjYC+AggAigCmAoiAUEEOwGACiABIAI2AvgIIAIoApwKIgFBBTsBgAogASACNgL4CAwCC0H888YAQRlBmPTGABCvFAALQaj0xgBBJ0HQ9MYAEK8UAAsgAiEBIAZBAWsiBg0ACwwKCyAGIQMgFiEXCyAFIBc3A1AgBSAFKQO4AjcDqAIgBSAFKQPAAjcDsAIgBUHIAWoiASARQeAA/AoAACAFQbgCaiABQeAA/AoAAAJAAkAgCS8BggoiAkELTwRAQQAhBwJAA0AgCSgC+AgiCUUEQEG4ChCQASIERQ0RIAQgCDYCiAogBEEAOwGCCiAEQQA2AvgIIAxBAWoiDEUNBCAIQQA7AYAKIAggBDYC+AggBCEJIAwhBwwCCyAHQQFqIQcgCS8BggpBCksNAAsgCCEEC0GIChCQASICRQ0OIAJBADsBggogAkEANgL4CCAHQQFrIgZFDQIDQEG4ChCQASIBRQ0PIAEgAjYCiAogAUEAOwGCCiABQQA2AvgIIAJBADsBgAogAiABNgL4CCABIQIgBkEBayIGDQALDAILIAkgAkEBajsBggogBSkDqAIhFiAJIAJBDGxqIgEgBSgCsAI2AoQJIAEgFjcC/AggCSACQegAbGoiASAYNwMAIAFBCGogBUG4AmpB4AD8CgAAIAUoArwBIQYgBSgCxAEhDSAFKQNQIRYgFEEBaiEUDAILQZDkyAAQnRUACwJAIAkvAYIKIghBC0kEQCAJIAhBAWoiBjsBggogCSAIQQxsaiIBIAUoArACNgKECSABIAUpA6gCNwL8CCAJIAhB6ABsaiIBIBg3AwAgAUEIaiAFQcgBakHgAPwKAAAgCSAGQQJ0aiACNgKICiACIAY7AYAKIAIgCTYC+AggB0UNAQJAIAdBA3EiAkUEQCAHIQEMAQsgByEBA0AgAUEBayEBIAkgCS8BggpBAnRqKAKICiEJIAJBAWsiAg0ACwsgB0EESQ0BA0AgCSAJLwGCCkECdGooAogKIgIvAYIKQQJ0IAJqKAKICiICLwGCCkECdCACaigCiAoiAi8BggpBAnQgAmooAogKIQkgAUEEayIBDQALDAELQcD2xgBBIEHg9sYAEK8UAAsgAyEGIBchFiAEIQggFEEBaiEUDAALAAsMCQtBCBCnFAALQQEQpxQACxCeFQALQQQQpxQAC0HA5MUAEJ0VAAtBACEICyAAIAUpAzg3AzggACAFKQMwNwMwIAAgBSkDKDcDKCAAIAUpAyA3AyAgACAFKQMYNwMYIAAgBSkDEDcDECAAIAUpAwg3AwggACAVOgBkIAAgGjcCRCAAIBI2AkAgACAZNwMAIAAgFDYCYCAAIAw2AlwgACAINgJYIABBfzYCTCAFQeADaiQADwtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQbjwyQBBAToAAAALgyIBF38jAEGQAmsiBSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAIAQQFGBEAgAigCCCINIAIoAgQiDkGgAmooAgAiBk8NAiACKAIMIhAgDkGcAmooAgAgDUEkbGoiAkEgaigCACIGTw0DIAJBHGooAgAgEEHUAGxqIgIoAgBBgICAgHhHDQQgAigCDCIJQQBIDQggCUUEQEEBIQoMCAsgAigCCCECIAkQkAEiCg0BDBELIAIoAgQiCEEMaigCACEGIAIoAgwhDSACKAIIIQ8CQCAIQRBqKAIAIgkiBw4CBgUACyAJIQIDQAJ/IAYgAkEBdiIKIAtqIgxB5ABsaiIHQdQAaigCACIOIA9HBEAgDiAPSQwBCyAHQdgAaigCACANSQshByAMIAsgBxshCyACIAprIgJBAUsNAAsMBAsgCUUNBSAKIAIgCfwKAAAMBQsgDSAGQfS4xAAQhRMACyAQIAZB9LjEABCFEwALQfS4xAAQnRUACwJ/IAYgC0HkAGxqIgJB1ABqKAIAIgcgD0cEQCAHIA9JDAELIAJB2ABqKAIAIA1JCyALaiEHCyAHIAlGDQYgCUHkAGwiCiAGaiEOIAdB5ABsIQwgCSAHayEQQQAhAgJAA0AgBiAMaiILQdQAaigCACAPRw0IIAtB2ABqKAIAIA1HDQggAiAQRg0BAkAgC0HIAGotAABFBEAgC0HgAGotAABBAUcNAQsgBkHkAGohBiACQQFqIQIgDCAKQeQAayIKRw0BDAkLCyAIIAgoAgAiBkEBajYCACAGQQBIDQRB0AAQkAEiDARAIAwgCDYCECAMIAIgB2o2AgQgDEEANgIAIAVBATYCyAEgBSAMNgLEASAFQQQ2AsABQQEhEQJAAkAgDiALQeQAaiILRg0AIAhBEGohECAIQQxqIRIDQCACIAdqQeQAbCEUQQAhBiACQQFqIQIDQCAGIAtqIglB1ABqKAIAIA9HDQIgCUHYAGooAgAgDUcNAiACIAdqIgogECgCACITTw0DAkAgEigCACAUaiAGaiITQawBai0AAEUEQCATQcQBai0AAEEBRw0BCyACQQFqIQIgCyAGQeQAaiIGaiAORw0BDAMLCyAIIAgoAgAiBkEBajYCACAGQQBIDQggBSgCwAEgEUYEQCAFQcABaiARQQFBBEEUELMRIAUoAsQBIQwLIAwgEUEUbGoiBiAINgIQIAYgCjYCBCAGQQA2AgAgBSARQQFqIhE2AsgBIA4gCUHkAGoiC0cNAAsLIAUoAsQBIgdBJGohCCARQRRsIgJBFGshDyACIAdqIQ0gBSgCwAEhCiADKAIwIgxBCGohECAFQYQCaiERIAVB8ABqIQ4gByEGA0ACQCAGQRRqIQMCQAJAIAYoAgAiAkECRwRAIA4gBikCBDcCACAOIAYpAgw3AgggBSACNgJsIAVBKGogBUHsAGoQ8A4gBSgCLCECIAUoAighCSAMLQAUQQNHBEAgBSAQNgLAASAMQRRqIAVBwAFqEI8PCyAMKAIQIgZFDQIgBkHgAGwhCyAMKAIMIQYDQCACIAZBGGooAgBGBEAgBkEUaigCACAJIAIQjxNFDQMLIAZB4ABqIQYgC0HgAGsiCw0ACwwCCyADIA1GDQIgD0EUbiEGA0AgCCgCACICKAIAIQEgAiABQQFrNgIAIAFBAUYEQCAIKAIAEDALIAhBFGohCCAGQQFrIgYNAAsMAgsgBUEgaiAFQewAahDwDgJAAkACQCAFKAIkIglFBEBBASECDAELIAUoAiAhCyAJEJABIgJFDRMgCUUNACACIAsgCfwKAAALIAVBfzYCVCAFIAk2AjggBSACNgI0IAUgCTYCMCAFQX82AmAgBUIENwJMIAVCADcCRCAFQoCAgICAATcCPCARIAVB7ABqEPEKIAVBATYCgAIgBi0AHEEBRw0AIAVBwAFqIAVBMGogBUGAAmogBkEgaiAEEIwBIAUoAvABQX9HBEAgACAFKQP4ATcDOCAAIAUpA/ABNwMwIAAgBSkD6AE3AyggACAFKQPgATcDICAAIAUpA9gBNwMYIAAgBSkD0AE3AxAgACAFKQPIATcDCCAAIAUpA8ABNwMAIAUoAoQCIgEoAgAhACABIABBAWs2AgAgAEEBRgRAIAUoAoQCEDALIAVBMGoQrgYgBSgCfCIBKAIAIQAgASAAQQFrNgIAIABBAUYEQCAFKAJ8EDALIAMgDUcEQCAPQRRuIQYDQCAIKAIAIgEoAgAhACABIABBAWs2AgAgAEEBRgRAIAgoAgAQMAsgCEEUaiEIIAZBAWsiBg0ACwsgCkUNECAHQQRrKAIAIgFBeHEhACAAIApBFGwiAkEEQQggAUEDcSIBG2pJDREgAUEARyAAIAJBJ2pLcQ0CIAcQvAUMEAsgBSgChAIiBigCACECIAYgAkEBazYCACACQQFGBEAgBSgChAIQMAsgASAFQTBqELcKDAILQaSOxwAQnRUACwwPCyAFKAJ8IgYoAgAhAiAGIAJBAWs2AgAgAkEBRgRAIAUoAnwQMAsgCEEUaiEIIA9BFGshDyANIAMiBkcNAQsLIApFDQkgB0EEaygCACICQXhxIQEgASAKQRRsIgNBBEEIIAJBA3EiAhtqSQ0LIAJFDQggA0EnaiABTwRADAkLDAwLIAogE0Hk9sgAEIUTAAtBBBCnFAALIAkgCUHk9sgAEIUTAAsgBCgCBCEHIAQoAggiCwRAIAtBDGwhAiAHQQRqIQYDQCAJIAZBBGooAgBGBEAgBigCACAKIAkQjxNFDQQLIAZBDGohBiACQQxrIgINAAsLIAQoAgAgC0YEQCAEEJ8SIAQoAgQhBwsgByALQQxsaiICIAk2AgggAiAKNgIEIAIgCTYCACAEIAtBAWo2AgggDkGgAmoiFSgCACICIA1LBEAgDUEkbCIXIA5BnAJqIhYoAgBqIgJBIGooAgAiBiAQSwRAIBBB1ABsIhggAkEcaigCAGoiAigCAEGAgICAeEYEQCACKAIkIgZFDQYgAigCICISIAZB3ABsaiETIAMoAjAiCUEIaiEZIAVBhAJqIRogBUHwAGohFCAOQdAAaiEbQQAhAwNAIANB3ABsIQggFSgCACEGIAMhAgJAAkACQAJAAkACQAJAAkACQANAIAYgDU0NASAWKAIAIBdqIgNBIGooAgAiByAQTQ0CIANBHGooAgAgGGoiBygCAEGAgICAeEcNAyAHKAIkIgMgAk0NBCASQdwAaiESIAJBAWohAyAHKAIgIAhqKAIABEAgCEHcAGohCCADIQIgEiATRw0BDBILCyAOIA4oAgAiBkEBajYCACAGQQBIDQ8CQAJAIA4oAkwiDEUNACAbKAIAIREDQCAMQQxqIQ8gDEEEaiEGIAwvAaYIIgtBDGwhCEF/IQcCQANAIAhFBEAgCyEHDAILIAYoAgQiCiAQSSAKIBBLayAGKAIAIgogDUkgCiANS2sgCiANRhsiCkH/AXFFBEAgDygCACIKIAJJIAIgCklrIQoLIAZBDGohBiAIQQxrIQggD0EMaiEPIAdBAWohByAKQQFGDQALIApB/wFxRQ0DCyARRQ0BIBFBAWshESAMIAdBAnRqKAKoCCEMDAALAAtB1LnEAEEWQYS+xAAQwBMACyAMIAdB1ABsai0A0AEhDCAFIA42AoABIAUgAjYCfCAFIBA2AnggBSANNgJ0IAVBATYCcCAFQQFBAiAMGzYCbCAFQRhqIAVB7ABqEPIJIAUoAhwiC0EASA0NAkAgCwRAIAUoAhghAiALEJABIgpFBEBBARCnFAwSCyALBEAgCiACIAv8CgAACyAJLQAUQQNHBEAgBSAZNgLAASAJQRRqIAVBwAFqEI8PCyAJKAIQIgIEQCACQeAAbCEIIAkoAgwhBgNAIAsgBkEYaigCAEYEQCAGQRRqKAIAIAogCxCPE0UNBAsgBkHgAGohBiAIQeAAayIIDQALCyAKIAsQ2RIMCQtBASEKQQAhBiMAQRBrIgckACAJLQAUQQNHBEAgByAJQQhqNgIMIAlBFGogB0EMahCPDwsCQCAJKAIQIgJFDQAgAkHgAGwhCCAJKAIMIQIDQAJAIAJBGGooAgANACACQRRqKAIAQQFBABCPEw0AIAIhBgwCCyACQeAAaiECIAhB4ABrIggNAAsLIAdBEGokACAGRQ0ICyAFKAKAASECAkACQAJAIAwEQCAFQRBqIBQQ8A4gBSgCFCIGQQBIDREgBkUEQEEBIQ8MCgsgBSgCECEHIAYQkAEiDw0BDBoLIAVBCGogFBDwDiAFKAIMIghBAEgNECAIRQRAQQEhBwwDCyAFKAIIIQwgCBCQASIHDQEMGQsgBkUNByAPIAcgBvwKAAAMBwsgCEUNACAHIAwgCPwKAAALIAVBfzYCqAEgBSAINgKMASAFIAc2AogBIAUgCDYChAEgBUF/NgK0ASAFQgQ3AqABIAVCADcCmAEgBUKAgICAgAE3ApABIBogFBDxCiAFQQE2AoACIAYtABxBAUcNBCAFQcABaiAFQYQBaiAFQYACaiAGQSBqIAQQjAEgBSgC8AFBf0cEQCAAIAUpA/gBNwM4IAAgBSkD8AE3AzAgACAFKQPoATcDKCAAIAUpA+ABNwMgIAAgBSkD2AE3AxggACAFKQPQATcDECAAIAUpA8gBNwMIIAAgBSkDwAE3AwAgBSgChAIiASgCACEAIAEgAEEBazYCACAAQQFGBEAgBSgChAIQMAsgBUGEAWoQrgYgAiACKAIAIgBBAWs2AgAgAEEBRgRAIAIQMAsgC0UNFCAKIAsQ2RIMFAsgBSgChAIiBygCACEGIAcgBkEBazYCACAGQQFGBEAgBSgChAIQMAsgASAFQYQBahC3CiACIAIoAgAiBkEBazYCACAGQQFGBEAgAhAwCyALDQYMCAsgDSAGQZS+xAAQhRMACyAQIAdBlL7EABCFEwALQZS+xAAQnRUACyACIANBpL7EABCFEwALQbSOxwAQnRUACyAFQX82AuQBIAUgBjYCyAEgBSAPNgLEASAFIAY2AsABIAVBfzYC8AEgBUIENwLcASAFQgA3AtQBIAVCgICAgIABNwLMASABIAVBwAFqELcKIAIgAigCACIGQQFrNgIAIAZBAUYEQCACEDALIAtFDQILIAogCxDZEgwBCyAOIA4oAgAiAkEBazYCACACQQFHDQAgBSgCgAEQMAsgEiATRw0ACwwGC0H0uMQAEJ0VAAsgECAGQfS4xAAQhRMACyANIAJB9LjEABCFEwALEJ4VAAtBPRCQASIBBEAgAEGMgICAeDYCMCAAQT02AgggACABNgIEIABBPTYCACABQfmOxwApAAA3ADUgAUH0jscAKQAANwAwIAFB7I7HACkAADcAKCABQeSOxwApAAA3ACAgAUHcjscAKQAANwAYIAFB1I7HACkAADcAECABQcyOxwApAAA3AAggAUHEjscAKQAANwAAIAlFDQUgCkEEaygCACIBQXhxIQAgAEEEQQggAUEDcSIBGyAJakkNBiABQQBHIAAgCUEnaktxRQRAIAoQvAUMBgsMBwsMBwsACyAEKAIIIgFFDQEgBCABQQFrIgE2AgggBCgCBCABQQxsaiICKAIAIgFBAWtBfUsNASACKAIEIgdBBGsoAgAiA0F4cSECIAJBBEEIIANBA3EiAxsgAWpJDQMgA0UNACACIAFBJ2pNDQAMBAsgBxC8BQsgAEF/NgIwCyAFQZACaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQQEQpxQAC9ogARF/IwBB0AFrIggkAAJAAkACQCABQSFJBEAgASEKDAELIAJBFGshFAJAAkADQCAERQRAIAAgASACIANBARDOAQwFCyAAIAFBA3YiCkGMAWxqIQYgACAKQdAAbGohDCAEQQFrIQQgCAJ/IAFBwABPBEAgACAMIAYgChCoDQwBCyAIQbABaiAAEPAOIAgoArABIAgoArQBIQogCEGoAWogDBDwDiAIKAKoASAKIAgoAqwBIgcgByAKSxsQjxMhCSAIQaABaiAAEPAOIAgoAqABIQ4gCCgCpAEhDyAIQZgBaiAGEPAOIAAgCSAKIAdrIAkbIgcgDiAIKAKYASAPIAgoApwBIgogCiAPSxsQjxMiCSAPIAprIAkbc0EASA0AGiAIQZABaiAMEPAOIAgoApABIQ8gCCgClAEhCiAIQYgBaiAGEPAOIAYgDCAPIAgoAogBIAogCCgCjAEiBiAGIApLGxCPEyIMIAogBmsgDBsgB3NBAEgbCyILKAIQNgLIASAIIAspAgg3A8ABIAggCykCADcDuAEgCyAAa0EUbiEPAkAgBQRAIAhBgAFqIAUQ8A4gCCgCgAEgCCgChAEhBiAIQfgAaiALEPAOIAgoAnggBiAIKAJ8IgwgBiAMSRsQjxMiCiAGIAxrIAobQQBODQELIAEgA0sNA0EAIQogACEGIAFBFGwiFSACaiISIQ4gDyEMA0ACQCAAIAxBFGxqIhMgBk0NAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0ACQCAGQQRqKAIAIQcCQCAGKAIAQQFGBEAgBkEQaigCACINQaACaigCACIJIAdNDQIgBkEIaigCACIJIA1BnAJqKAIAIAdBJGxqIgdBIGooAgAiDU8NBCAHQRxqKAIAIAlB1ABsaiIHKAIAQYCAgIB4Rw0ZIAZBDGooAgAiCSAHKAIkIg1JDQEgCSANQaS+xAAQhRMACyAGQRBqKAIAIgkoAhAiDSAHTQ0HIAkoAgwgB0HkAGxqIg0oAlQiByAJKAKgAiIQTw0EIA0oAlgiECAJKAKcAiAHQSRsaiIHQSBqKAIAIglPDQUgB0EcaigCACAQQdQAbGoiBygCAEGCgICAeEcNBiANKAJcIgkgBygCJCINTw0ICyAHKAIgIAlB3ABsaiIHKAIgIRYgBygCJCEQIAsoAgQhBwJAIAsoAgBBAUYEQCALKAIQIg1BoAJqKAIAIgkgB00NCiALKAIIIgkgDUGcAmooAgAgB0EkbGoiB0EgaigCACINTw0LIAdBHGooAgAgCUHUAGxqIgkoAgBBgICAgHhHDRkgCygCDCINIAkoAiQiB0kNASANIAdBpL7EABCFEwALIAsoAhAiCSgCECINIAdNDQ4gCSgCDCAHQeQAbGoiBygCVCINIAkoAqACIhFPDQsgBygCWCIRIAkoApwCIA1BJGxqIglBIGooAgAiDU8NDCAJQRxqKAIAIBFB1ABsaiIJKAIAQYKAgIB4Rw0NIAcoAlwiDSAJKAIkIgdPDQ8LIAkoAiAgDUHcAGxqIgkoAiQhByAKQRRsIAIgDkEUayIOIBYgCSgCICAQIAcgByAQSxsQjxMiCSAQIAdrIAkbIglBAEgbaiIHIAYoAhA2AhAgByAGKQIINwIIIAcgBikCADcCACAJQR92IApqIQogBkEUaiIGIBNJDQEMDwsLIAcgCUGUvsQAEIUTAAsgCSANQZS+xAAQhRMACyAHIBBB1LjEABCFEwALIBAgCUHUuMQAEIUTAAtB1LjEABCdFQALIAcgDUHk9sgAEIUTAAsgCSANQeS4xAAQhRMACyAHIAlBlL7EABCFEwALIAkgDUGUvsQAEIUTAAsgDSARQdS4xAAQhRMACyARIA1B1LjEABCFEwALQdS4xAAQnRUACyAHIA1B5PbIABCFEwALIA0gB0HkuMQAEIUTAAsgASAMRwRAIA5BFGsiDiAKQRRsaiIMIAYoAhA2AhAgDCAGKQIINwIIIAwgBikCADcCACAGQRRqIQYgASEMDAELCyAKQRRsIg4EQCAAIAIgDvwKAAALIAEgCmshDQJAIAEgCkYNACAAIA5qIQxBACEJIApBAWogAUcEQCANQQFxIA1BfnEhEyAUIBVqIQcgDCEGA0AgBiAHKAIQNgIQIAYgBykCCDcCCCAGIAcpAgA3AgAgBkEUaiASIAlB/v///wNzQRRsaiIQKQIANwIAIAZBHGogECkCCDcCACAGQSRqIBBBEGooAgA2AgAgB0EoayEHIAZBKGohBiATIAlBAmoiCUcNAAtFDQELIAwgCUEUbGoiBiASIAlBf3NBFGxqIgwoAhA2AhAgBiAMKQIINwIIIAYgDCkCADcCAAsgCkUNACABIApJDQIgACAOaiANIAIgAyAEIAhBuAFqEI0BIAohASAKQSFJDQQMAQsgASADSw0CQQAhCSAAIQYgAUEUbCIQIAJqIgwhDgNAAkAgACAPQRRsaiISIAZNDQACQAJAAkACQAJAA0ACQCALKAIEIQUCfyALKAIAQQFGBEAgCygCECIHQaACaigCACIKIAVNDQIgCygCCCIKIAdBnAJqKAIAIAVBJGxqIgVBIGooAgAiB08NBCAFQRxqKAIAIApB1ABsaiIFKAIAQYCAgIB4Rw0QIAsoAgwiCiAFKAIkIgdPDQUgBSgCICAKQdwAbGoiBSgCJCEHIAUoAiAMAQsgCEHwAGogCygCEEEIaiAFENAQIAgoAnQhByAIKAJwCyENIAZBBGooAgAhBQJ/IAYoAgBBAUYEQCAGQRBqKAIAIhFBoAJqKAIAIgogBU0NBiAGQQhqKAIAIgogEUGcAmooAgAgBUEkbGoiBUEgaigCACIRTw0HIAVBHGooAgAgCkHUAGxqIgUoAgBBgICAgHhHDRAgBkEMaigCACIKIAUoAiQiEU8NCCAFKAIgIApB3ABsaiIFKAIkIQogBSgCIAwBCyAIQegAaiAGQRBqKAIAQQhqIAUQ0BAgCCgCbCEKIAgoAmgLIQUgCUEUbCACIA5BFGsiDiANIAUgByAKIAcgCkkbEI8TIgUgByAKayAFG0EATiIKG2oiBSAGKAIQNgIQIAUgBikCCDcCCCAFIAYpAgA3AgAgCSAKaiEJIAZBFGoiBiASSQ0BDAcLCyAFIApBlL7EABCFEwALIAogB0GUvsQAEIUTAAsgCiAHQaS+xAAQhRMACyAFIApBlL7EABCFEwALIAogEUGUvsQAEIUTAAsgCiARQaS+xAAQhRMACyABIA9HBEAgAiAJQRRsaiIFIAYoAhA2AhAgBSAGKQIINwIIIAUgBikCADcCACAGQRRqIQYgCUEBaiEJIA5BFGshDiABIQ8MAQsLIAlBFGwiBQRAIAAgAiAF/AoAAAsgASAJRg0EIAEgCWshCiAAIAVqIQBBACEHAkAgCUEBaiABRwRAIApBAXEgCkF+cSEOIBAgFGohCyAAIQYDQCAGIAsoAhA2AhAgBiALKQIINwIIIAYgCykCADcCACAGQRRqIAwgB0H+////A3NBFGxqIgUpAgA3AgAgBkEcaiAFKQIINwIAIAZBJGogBUEQaigCADYCACALQShrIQsgBkEoaiEGIA4gB0ECaiIHRw0AC0UNAQsgACAHQRRsaiIFIAwgB0F/c0EUbGoiBigCEDYCECAFIAYpAgg3AgggBSAGKQIANwIACyABIAlPBEBBACEFIAohASAKQSFJDQQMAQsLIAkgASABQeD1yAAQhw4AC0HEsMkAQRNB0PXIABC/EwsACyAKQQJJDQBBASEBIApBAXYiBEEUbCIDIAJqIQUgACADaiEPAkAgCkEITwRAIAAgAhDpCCAPIAUQ6QhBBCEBDAELIAIgACgCEDYCECACIAApAgg3AgggAiAAKQIANwIAIAUgDygCEDYCECAFIA8pAgg3AgggBSAPKQIANwIACyAKIARrIRAgASAESQRAIAFBFGwhDSABIQ4DQCAOQRRsIgMgAmoiBiAAIANqIgMoAhA2AhAgBiADKQIINwIIIAYgAykCADcCACAIQeAAaiAGEPAOIAgoAmAgCCgCZCEMIAhB2ABqIAZBFGsQ8A4gCCgCWCAMIAgoAlwiBiAGIAxLGxCPEyILIAwgBmsgCxtBAEgEQCAIIAMoAhA2AsgBIAggAykCCDcDwAEgCCADKQIANwO4ASANIQsCfwNAIAIgC2oiA0EUayEGIAMgBigCEDYCECADIAYpAgg3AgggAyAGKQIANwIAIAIgC0EURg0BGiAIQdAAaiAIQbgBahDwDiAIKAJQIAgoAlQhBiAIQcgAaiADQShrEPAOIAtBFGshCyAIKAJIIAYgCCgCTCIDIAMgBksbEI8TIgwgBiADayAMG0EASA0ACyACIAtqCyIGIAgoAsgBNgIQIAYgCCkDwAE3AgggBiAIKQO4ATcCAAsgDUEUaiENIAQgDkEBaiIORw0ACwsgASAQSQRAIAFBFGwhDkEUIQMgBSEMA0AgAUEUbCIGIAVqIgsgBiAPaiIGKAIQNgIQIAsgBikCCDcCCCALIAYpAgA3AgAgCEFAayALEPAOIAgoAkAgCCgCRCEHIAhBOGogC0EUaxDwDiAIKAI4IAcgCCgCPCILIAcgC0kbEI8TIgkgByALayAJG0EASARAIAggBigCEDYCyAEgCCAGKQIINwPAASAIIAYpAgA3A7gBIAMhCSAMIQcCfwNAIAcgDmoiBkEUayELIAYgCygCEDYCECAGIAspAgg3AgggBiALKQIANwIAIAUgCSAORg0BGiAIQTBqIAhBuAFqEPAOIAgoAjAgCCgCNCELIAhBKGogBkEoaxDwDiAJQRRqIQkgB0EUayEHIAgoAiggCyAIKAIsIgYgBiALSxsQjxMiDSALIAZrIA0bQQBIDQALIAcgDmoLIgYgCCgCyAE2AhAgBiAIKQPAATcCCCAGIAgpA7gBNwIACyADQRRrIQMgDEEUaiEMIBAgAUEBaiIBRw0ACwsgBUEUayELIApBFGxBFGsiASACaiEHIAAgAWohBgNAIAhBIGogBRDwDiAIKAIgIQMgCCgCJCEBIAhBGGogAhDwDiAAIAIgBSADIAgoAhggASAIKAIcIgMgASADSRsQjxMiDCABIANrIAwbIgxBAE4iDxsiASgCEDYCECAAIAEpAgg3AgggACABKQIANwIAIAhBEGogBxDwDiAIKAIQIQMgCCgCFCEBIAhBCGogCxDwDiAGIAcgCyADIAgoAgggASAIKAIMIgMgASADSRsQjxMiCSABIANrIAkbIgNBAE4bIgEoAhA2AhAgBiABKQIINwIIIAYgASkCADcCACACIA9BFGxqIQIgBSAMQR92QRRsaiEFIAsgA0EfdSIBQRRsaiELIAcgAUF/c0EUbGohByAGQRRrIQYgAEEUaiEAIARBAWsiBA0ACyALQRRqIQEgCkEBcQR/IAAgAiAFIAEgAksiBBsiAygCEDYCECAAIAMpAgg3AgggACADKQIANwIAIAUgASACTUEUbGohBSACIARBFGxqBSACCyABRiAFIAdBFGpGcQ0AEKQVAAsgCEHQAWokAA8LQZS+xAAQnRUAC9IjAwd/An4BfCMAQfABayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBDiAAKAIAIgNBDWsgA0EMTRtBAWsODgECAwQFBgcICQoLDA0OAAsgASgCACAAKAIIIAAoAgwQngcMFgsgASgCACEBIAAtAARFBEAgASgCACABKAIIIgBrQQRNBEAgASAAQQVBAUEBELMRIAEoAgghAAsgASgCBCAAaiIDQaqyyAAoAAA2AAAgA0GussgALQAAOgAEIAEgAEEFajYCCAwWCyABKAIAIAEoAggiAGtBA00EQCABIABBBEEBQQEQsxEgASgCCCEACyABKAIEIABqQfTk1asGNgAAIAEgAEEEajYCCAwVCyABKAIAIAAoAgggACgCDBCeBwwUCyABKAIAIAApAwgQ1AsMEwsgAkEAOgDcASACQgA3ANQBIABBBGogAkGwAWoQsQohACABKAIAIABBJBCeBwwSCyAAKAIMIQMgACgCCCEGIAEoAgAiACgCCCIFIAAoAgBGBEAgACAFQQFBAUEBELMRIAAoAgghBQsgACAFQQFqIgQ2AgggACgCBCAFakHbADoAACADBEAgBiABEI4BIANBAUcEQCAGQSBqIQUgA0EFdEEgayEEA0AgASgCACIAKAIIIgMgACgCAEYEQCAAIANBAUEBQQEQsxEgACgCCCEDCyAAIANBAWo2AgggACgCBCADakEsOgAAIAUgARCOASAFQSBqIQUgBEEgayIEDQALCyABKAIAIgEoAggiACABKAIARgRAIAEgAEEBQQFBARCzESABKAIIIQALIAEgAEEBajYCCCABKAIEIABqQd0AOgAADBILIAQgACgCAEYEQCAAIARBAUEBQQEQsxEgACgCCCEECyAAIARBAWo2AgggACgCBCAEakHdADoAAAwRCyABKAIAIAAoAgggACgCDBCeBwwQCyAAKAIMIQYgACgCCCEFIAEoAgAiACgCCCIDIAAoAgBGBEAgACADQQFBAUEBELMRIAAoAgghAwsgACADQQFqIgQ2AgggACgCBCADakH7ADoAACAGRQRAIAQgACgCAEYEQCAAIARBAUEBQQEQsxEgACgCCCEECyAAIARBAWo2AgggACgCBCAEakH9ADoAAAwQCyAGQTBsIAEoAgAgBUEEaigCACAFQQhqKAIAEJ4HIAEoAgAiAygCCCIEIAMoAgBGBEAgAyAEQQFBAUEBELMRIAMoAgghBAsgBWohBiAFQRBqIQAgAyAEQQFqNgIIIAMoAgQgBGpBOjoAAANAIAAgARCOASAAQSBqIgQgBkZFBEAgASgCACIAKAIIIgMgACgCAEYEQCAAIANBAUEBQQEQsxEgACgCCCEDCyAAIANBAWo2AgggACgCBCADakEsOgAAIAEoAgAgBEEEaigCACAEQQhqKAIAEJ4HIAEoAgAiACgCCCIDIAAoAgBGBEAgACADQQFBAUEBELMRIAAoAgghAwsgACADQQFqNgIIIAAoAgQgA2pBOjoAACAEQRBqIQAMAQsLIAEoAgAiASgCCCIAIAEoAgBGBEAgASAAQQFBAUEBELMRIAEoAgghAAsgASAAQQFqNgIIIAEoAgQgAGpB/QA6AAAMDwsgASgCACIBKAIIIQAgASgCACAAa0EDTQRAIAEgAEEEQQFBARCzESABKAIIIQALIAEgAEEEajYCCCABKAIEIABqQe7qseMGNgAADA4LIAEoAgAgAkGwAWogAEEEahCtAiACKAK0ASIAIAIoArgBEJ4HIAIoArABIgFFDQ0gAEEEaygCACIEQXhxIQMgA0EEQQggBEEDcSIEGyABakkNDyAEQQBHIAMgAUEnaktxDRAgABC8BQwNCyABKAIAIQECQCAAQQhqIgAQ5ANFDQAgAkGwAWogABCODSACKQOwAUIBUg0AIAIpA7gBIglC/////////w9WDQAgASAJENcMDA0LIAJBADYCiAEgAkKAgICAEDcCgAEgAkHclsYANgK0ASACQqCAgIAGNwK4ASACIAJBgAFqNgKwASAAIAJBsAFqIgAQ9wENECACKAKAASEFIAAgAigChAEiBiACKAKIARCcASACLQCwAUEBRg0EAkAgAisDuAEiC71C////////////AINCgICAgICAgPj/AFoEQCABKAIAIAEoAggiA2tBA00EQCABIANBBEEBQQEQsxEgASgCCCEDCyABIANBBGo2AgggASgCBCADakHu6rHjBjYAAAwBCyALIAJBsAFqEPYBIQACQAJAIAEoAgAgASgCCCIEayAASQRAIAEgBCAAQQFBARCzESABKAIIIQQMAQsg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IAJB/wFxIgBB/wFGDRIgAEEDRw0WIAEoAgghACABKAIMQQRrDgITFBcLIAEoAiwhBSABKAIwQQNrDgsdGDUcNRo1NRc1GTULAn8gASgCDCIGRQRAQQghAEEADAELIAEoAgghBSAGQQV0EJABIgBFDSQgACEBIAYhBwNAIANB6ABqIAUgAhCRASADKAJoQX9GDSYgAyADKQOAASIRNwNgIAMgAykDeCISNwNYIAMgAykDcCIQNwNQIAMgAykDaCIPNwNIIAEgETcDGCABIBI3AxAgASAQNwMIIAEgDzcDACAFQUBrIQUgAUEgaiEBIAdBAWsiBw0ACyAGCyEBIAQgBjYCDCAEIAA2AgggBCABNgIEIARBEjYCAAwyCyADIAI6AEggAyADQcgAaq1CgICAgNAphDcDaEHxo8AAIANB6ABqQdD3xgAQvxMACyADQegAaiABKAIIIAEoAgwQ8wggAy0AaA0xIAQgAykDcDcDCCAEQRA2AgAMMAsgA0HoAGogASgCCCABKAIMEPMIIAMtAGgNLiAEIAMpA3A3AwggBEEYNgIADC8LIANByABqIAEoAgggASgCDBDxAiADKAJIQX9GDSwgAyADKQNYIhA3A0AgAyADKQNQIg83AzggAyADKQNINwJsIAMgEDcCfCADIA83AnQgBEEXNgIAIAQgAykCaDcCBCAEIAMpAnA3AgwgBCADKQJ4NwIUIAQgAygCgAE2AhwMLgsgA0HIAGogASgCCCABKAIMEPECIAMoAkhBf0YNKiADIAMpA1giEDcDQCADIAMpA1AiDzcDOCADIAMpA0g3AmwgAyAQNwJ8IAMgDzcCdCAEQRc2AgAgBCADKQJoNwIEIAQgAykCcDcCDCAEIAMpAng3AhQgBCADKAKAATYCHAwtCyADIAI6AEggAyADQcgAaq1CgICAgNAphDcDaEHxo8AAIANB6ABqQbD4xgAQvxMACyABKAIMIgJBAEgNHiACRQRAQQEhAQwFCyABKAIIIQAgAhCQASIBDQMMLgsgASgCDCECIAEoAgghACADQf8BOgCQAiADQQA2AsgBIANBADYCwAEgA0EANgK4ASADQQA2ArABIANBADYCqAEgA0EANgKgASADQQA2ApgBIANBADYCkAEgA0EANgKIASADQQA2AoABIANBADYCeCADQQA2AoACIANBADYC+AEgA0EANgLwASADQQA2AugBIANBADYC4AEgA0EANgLYASADQQA2AtABIANBADYCiAIgA0IANwNoIANByABqIANB6ABqIAAgAhCoCSADKAJIIgBFBEAgAy0ATAwnCyADQQhqIAAgAygCTBDxDEEFIAMoAgwNJhogAygCiAJBAUYEQCADKAKMAiEBDCYLQQAhASADKQNoQgFRDSVBAgwmCyABKAIMIgJBAEgNHCACRQRAQQEhAQwFCyABKAIIIQAgAhCQASIBDQMMLAsgASgCDCIGQQNqQQJ2IgJBA2whBSABKAIIIQACQCACRQRAQQEhAQwBCyAFEJABIgFFDSwgAUEEay0AAEEDcUUNACAFRQ0AIAFBACAF/AsACyADQegAaiAAIAYgASAFIAZBA3EQlwEgAygCaEECRw0EIAMtAGxB/wFGDRwgAgRAIAEgBRDZEgsgA0ESNgJ8IANB0oTHADYCeCADQpSAgIBwNwJwIANBvoTHADYCbCADQX82AmhBiLDJAEErIANB6ABqQYD4xgBBkPjGABDaEgALIAJFDQAgASAAIAL8CgAACyAEIAI2AgwgBCABNgIIIAQgAjYCBCAEQQ02AgAMJgsgAkUNACABIAAgAvwKAAALIAQgAjYCDCAEIAE2AgggBCACNgIEIARBEzYCAAwkCyADKAJwIQAgBCABNgIIIAQgBTYCBCAEQRk2AgAgBCAFIAAgACAFSxs2AgwMIwsgA0HIAGogASgCCCABKAIMEPECIAMoAkhBf0YNHCADIAMpA1giEDcDQCADIAMpA1AiDzcDOCADIAMpA0g3AmwgAyAQNwJ8IAMgDzcCdCAEQRc2AgAgBCADKQJoNwIEIAQgAykCcDcCDCAEIAMpAng3AhQgBCADKAKAATYCHAwiCwJAIAEoAgwiAkUEQEEBIQEMAQsgASgCCCEAIAIQkAEiAUUNJSACRQ0AIAEgACAC/AoAAAsgBCACNgIMIAQgATYCCCAEIAI2AgQgBEEPNgIADCELIAAoAABB9OTVqwZHDQNBAQwBCyAAKAAAQebCsZsHcyAAQQRqLQAAQeUAc3INAkEACyEAIAYgADoABCAEQQ42AgAMHgsgAyACOgBIIAMgA0HIAGqtQoCAgIDQKYQ3A2hB8aPAACADQegAakHg+MYAEL8TAAtBiLDJAEErIANBnwJqQcD4xgBB0PjGABDaEgALIAUpAABC5MSdq+atmbnhAIUgBUEDaikAAELl3JWTl4zdsuQAhYRCAFINHSABKAIYBEAgASgCFCIBKAIAQQNGDQsLIANBADYCLCADQoCAgIAQNwIkDAsLIAUoAABB4erR+wZHDQIgBEEEaiEBIwBBQGoiAiQAAkACQEEEEJABIgAEQCAAQeHq0fsGNgAAIAJBBDYCLCACIAA2AiggAkEENgIkIAJBADYCOCACQoCAgICAATcCMCACQQhqIAJBJGogAkEwahDwBiACKAIIQX9GDQEgASACKAIgNgIYIAEgAikCGDcCECABIAIpAhA3AgggASACKQIINwIAIAJBQGskAAwCCwwfCyACIAIoAhQ2AjggAiACKQIMNwMwQYiwyQBBKyACQTBqQfzxxgBBgPPGABDaEgALIARBfzYCAAwaCyAFKQAAQuHq0fuWzdux8gCFIAVBBWopAABC7sbJq9atmbf0AIWEQgBSDRtBDRCQASIARQ0cIABB2fDGACkAADcABSAAQdTwxgApAAA3AAAgA0ENNgI4IAMgADYCNCADQQ02AjAgA0EANgJQIANCgICAgIABNwJIIANB6ABqIANBMGogA0HIAGoQ8AYgAygCaEF/Rg0OIARBBGoiACADKAKAATYCGCAAIAMpAng3AhAgACADKQJwNwIIIAAgAykCaDcCACAEQX82AgAMGQsgBSkAAELzysWr18zbseUAUg0aIANBADYCOCADQoCAgICAATcCMEEIEJABIgBFDRsgAELzysWr18zbseUANwAAIANBCDYCUCADIAA2AkwgA0EINgJIIANB6ABqIANByABqIANBMGoQ8AYgAygCaEF/Rg0OIAQgAygCgAE2AhwgBCADKQJ4NwIUIAQgAykCcDcCDCAEIAMpAmg3AgQgBEF/NgIADBgLIAUoAABB9eqlowZGBEBBBCEFIAEoAhhFDQYgASgCFCIAKAIAQQJHDQYgA0EQaiAAKAIIIAAoAgwQyA0gAy0AESEFIAMtABBFDQYgAyAFOgBoQYiwyQBBKyADQegAakHw9sYAQZD5xgAQ2hIACyAFKAAAQePqpaMGRgRAQQEhBSABKAIYRQ0FIAEoAhQiACgCAEECRw0FIANBGGogACgCCCAAKAIMEMgNIAMtABkhBSADLQAYRQ0FIAMgBToAaEGIsMkAQSsgA0HoAGpB8PbGAEGA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IAEoAgAiA0GAgICAeHMgA0EAThtBAWsOFQECAwQFBgcICQoLDA0ODxAREhQVFgALIAEtAAQhASAAQYGAgIB4NgIQIAAgAToAAAweCyABMQAEIQ4gAEGCgICAeDYCECAAIA43AwggAEIANwMADB0LIAEzAQQhDiAAQYKAgIB4NgIQIAAgDjcDCCAAQgA3AwAMHAsgATUCBCEOIABBgoCAgHg2AhAgACAONwMIIABCADcDAAwbCyABKQMIIQ4gAEGCgICAeDYCECAAIA43AwggAEIANwMADBoLIAEwAAQhDiAAQYKAgIB4NgIQIAAgDjcDCCAAIA5CP4g3AwAMGQsgATIBBCEOIABBgoCAgHg2AhAgACAONwMIIAAgDkI/iDcDAAwYCyABNAIEIQ4gAEGCgICAeDYCECAAIA43AwggACAOQj+INwMADBcLIAEpAwghDiAAQYKAgIB4NgIQIAAgDjcDCCAAIA5CP4g3AwAMFgsgACABKgIEuyIUvUL///////////8Ag0L/////////9/8AWAR/IAJBgICAgHg2AuABIAJB0AFqEP8JQYKAgIB4BUGAgICAeAs2AhAgACAUOQMIIABCAjcDAAwVCyAAIAErAwgiFL1C////////////AINC//////////f/AFgEfyACQYCAgIB4NgLgASACQdABahD/CUGCgICAeAVBgICAgHgLNgIQIAAgFDkDCCAAQgI3AwAMFAsgASgCBCEBIAJBADYC0AEgAUGAAUkNCyABQT9xQYB/ciEDIAFBBnYhBCABQYAQSQRAIAIgAzoA0QEgAiAEQcABcjoA0AFBAiEBDBMLIAFBDHYhBSAEQT9xQYB/ciEEIAFB//8DTQRAIAIgAzoA0gEgAiAEOgDRASACIAVB4AFyOgDQAUEDIQEMEwsgAiADOgDTASACIAQ6ANIBIAIgBUE/cUGAf3I6ANEBIAIgAUESdkFwcjoA0AFBBCEBDBILIAEoAgwiA0EASA0LAkAgA0UEQEEBIQEMAQsgASgCCCEEIAMQkAEiAUUNFCADRQ0AIAEgBCAD/AoAAAsgAEGDgICAeDYCECAAIAM2AgggACABNgIEIAAgAzYCAAwSCyABKAIIIgNBAEgNCgJAIANFBEBBASEBDAELIAEoAgQhBCADEJABIgFFDRMgA0UNACABIAQgA/wKAAALIABBg4CAgHg2AhAgACADNgIIIAAgATYCBCAAIAM2AgAMEQsgASkCCCEOIAJBBjoA0AEgAiAONwLUASACQdABaiACQa8DakH4jccAENQRIQEgAEF/NgIQIAAgATYCAAwQCyABKQIEIQ4gAkEGOgDQASACIA43AtQBIAJB0AFqIAJBrwNqQfiNxwAQ1BEhASAAQX82AhAgACABNgIADA8LIABBgICAgHg2AhAMDgsgASgCBCEBDAELCyAAQYCAgIB4NgIQDAsLIAJBCToA0AEgAkHQAWogAkGvA2pB+I3HABDUESEBIABBfzYCECAAIAE2AgAMCgsgASgCCCEEIAEoAgwhAUEAIQMgAkEANgKAAyACQoCAgICAATcC+AIgAUEEdCIGIARqIQUCQCABBEAgBkEQa0EEdkEBakEUIQkgAkHQAWoiAUEUaiEHIAFBBHIhC0EAIQFBCCEMA0AgAUEBaiEDIAJB0AFqIAQQmwEgBEEQaiEEIAIoAtABIQogAigC4AEiDUF/RgRAIABBfzYCECAAIAo2AgAgAkH4AmoQmQkgAigC+AIiAQRAIAIoAvwCIAFBMGwQ2RILIAAoAhBBf0cNAwwNCyACIAsoAgg2AmggAiALKQIANwNgIAIgBykCADcDQCACIAcpAgg3A0ggAiAHKQIQNwNQIAIgBygCGDYCWCACKAL4AiABRgRAIAJB+AJqEJQSIAIoAvwCIQwLIAkgDGoiAUEUayAKNgIAIAFBEGsiCiACKQNgNwIAIAogAigCaDYCCCABQQRrIA02AgAgASACKQNANwIAIAEgAikDSDcCCCABIAIpA1A3AhAgASACKAJYNgIYIAIgAzYCgAMgCUEwaiEJIAMhASAGQRBrIgYNAAsgBSEEIQMLIAAgAigCgAM2AgggACACKQL4AjcCACAAQYSAgIB4NgIQCyACIAApAyg3A7gCIAIgACkDIDcDsAIgAiAAKQMYNwOoAiACIAApAxA3A6ACIAIgACkDCDcDmAIgAiAAKQMANwOQAiAEIAVGDQkgAiADNgLQASAFIARrQQR2IANqIAJB0AFqQYSPxwAQ0RIhASAAQX82AhAgACABNgIAIAJBkAJqEP8JDAkLIAEoAgghAyABKAIEIQEgAkEANgIMIAIgATYCACACIAEgA0EFdGo2AgQCQCADBEAgAkEBNgIMIAIgAUEgajYCACACIAFBEGoiBTYCCAJ/AkACQAJAAkACQEEVIAEoAgAiA0GAgICAeHMgA0EAThtBDGsOBAECAwQACyABIAJBrwNqQZSLxwAQ9BMMBAsgASgCCCEDAkACfyABKAIMIgRBHkcEQEEAIARBAEgNARogBEUNDSAEEJABIgENAgwSCyADKQAAQqTmlZPHrNmv6gCFIANBCGopAABC896506OHnLnpAIWEIANBEGopAABC9sLRq6bHjqnhAIUgA0EWaikAAELSwt2zlYzbuuUAhYSEUA0HQR4QkAEiAQ0BQQELEKcUAAsgBEUNCyABIAMgBPwKAAAMCwsgASgCBCEDAkACfyABKAIIIgRBHkcEQEEAIARBAEgNARogBEUNDCAEEJABIgENAgwRCyADKQAAQqTmlZPHrNmv6gCFIANBCGopAABC896506OHnLnpAIWEIANBEGopAABC9sLRq6bHjqnhAIUgA0EWaikAAELSwt2zlYzbuuUAhYSEUA0GQR4QkAEiAQ0BQQELEKcUAAsgBEUNCiABIAMgBPwKAAAMCgsgASkCCCEOIAJBBjoA0AEgAiAONwLUASACQdABaiACQa8DakGUi8cAENQRDAELIAEpAgQhDiACQQY6ANABIAIgDjcC1AEgAkHQAWogAkGvA2pBlIvHABDUEQshASAAQX82AhAgACABNgIADAgLAn5B0PDJAC0AAARAQcjwyQApAwAhDkHA8MkAKQMADAELIAJB0AFqELsRQdDwyQBBAToAAEHI8MkAIAIpA9gBIg43AwAgAikD0AELIQ8gAEEANgIYIABCgICAgIABNwMQIAAgDjcDCCAAIA83AwBBwPDJACAPQgF8NwMAIABBkKnJACkDADcCHCAAQZipyQApAwA3AiQMBwsCfwJAAkACQAJAAkBBFSAFKAIAIgNBgICAgHhzIANBAE4bQQxrDgQAAQIDBAsgASgCHCIEQQBIDQYgBEUiAw0HIAEoAhghBSAEEJABIgFFDQ4gAw0IIAEgBSAE/AoAAAwICyABKAIYIgRBAEgNBSAERSIDDQYgASgCFCEFIAQQkAEiAUUNDSADDQcgASAFIAT8CgAADAcLIAEpAhghDiACQQY6ANABIAIgDjcC1AEgAkHQAWogAkGvA2pBxIrHABDUEQwCCyABKQIUIQ4gAkEGOgDQASACIA43AtQBIAJB0AFqIAJBrwNqQcSKxwAQ1BEMAQsgBSACQa8DakHEiscAEPQTCyEBIABBfzYCECAAIAE2AgAMBgsgAiABOgDQAUEBIQEMBgsQnhUAC0EAIQRBASEBCyACQdABaiABIAQQmwgCQCACKALgAUF/RgRAIAIoAtABEJ8QIQMgAEF/NgIQIAAgAzYCAAwBCyAAIAIpA/gBNwMoIAAgAikD8AE3AyAgACACKQPoATcDGCAAIAIpA+ABNwMQIAAgAikD2AE3AwggACACKQPQATcDAAsgBEUNAiABIAQQ2RIMAgtBACEEQQEhAQsgAgJ+QdDwyQAtAAAEQEHI8MkAKQMAIQ5BwPDJACkDAAwBCyACQdABahC7EUHQ8MkAQQE6AABByPDJACACKQPYASIONwMAIAIpA9ABCyIPNwNwQcDwyQAgD0IBfDcDACACQQA2AogBIAJCgICAgIABNwOAASACIA43A3ggAkGQqckAKQMANwKMASACQZipyQApAwA3ApQBIAIgBDYCgAMgAiABNgL8AiACIAQ2AvgCIAIoAgghAyACQQA2AgggA0UEQEG0jMcAQSxB4IzHABDAEwALIAAgAxCbAQJAIAAoAhBBf0YEQCAERQ0BIAEgBBDZEgwBCyACIAApAyg3A8gBIAIgACkDIDcDwAEgAiAAKQMYNwO4ASACIAApAxA3A7ABIAIgACkDCDcDqAEgAiAAKQMANwOgASACQdABaiACQfAAaiACQfgCaiACQaABahDWAyACIAIpA4ACNwO4AiACIAIpA/gBNwOwAiACIAIpA/ABNwOoAiACIAIpA+gBIg43A6ACIAIgAikD4AE3A5gCIAIgAikD2AE3A5ACIA6nQX9HBEAgAkGQAmoQ/wkLIAIoAgwhBgJAIAIoAgAiAyACKAIEIgtGBEAgAyEBDAELIAJB4AFqIQwgAkGYAmohBSACQdwBaiEEIAJBlAJqIQgDQCAGQQFqIQYgAkHIAmogAxCVDiADQSBqIQECQAJAIAIoAsgCIgdBf0YEQCACIAY2AgwgAiABNgIAIAIoAswCIQEMAQsgAigC0AIhCiACKALMAiEJIAJByAJqIANBEGoiAxCbASACKALYAkF/Rw0BIAIgBjYCDCACIAE2AgAgAigCyAIhASAHRQ0AIAkgBxDZEgsgAEF/NgIQIAAgATYCACACKAKQASIBRQ0DIAEgAUECdEELakF4cSIBakEJaiIDRQ0DIAIoAowBIAFrIAMQ2RIMAwsgAiACKQPwAiIONwOgAyACIAIpA+gCIg83A5gDIAIgAikD4AIiEDcDkAMgAiACKQPYAiIRNwOIAyACIAIpA9ACIhI3A4ADIAIgAikDyAIiEzcD+AIgCCAONwIoIAggDzcCICAIIBA3AhggCCARNwIQIAggEjcCCCAIIBM3AgAgBCACKQKQAjcCACAEIAIpApgCNwIIIAQgAikCoAI3AhAgBCACKQKoAjcCGCAEIAIpArACNwIgIAQgAikCuAI3AiggBCACKALAAjYCMCACIAo2AtgBIAIgCTYC1AEgAiAHNgLQASACIAIpAtQBNwLMAiACIAc2AsgCIAJBkAJqIAJB8ABqIAJByAJqIAwQ1gMgAiAFKQMoNwOgAyACIAUpAyA3A5gDIAIgBSkDGDcDkAMgAiAFKQMQIg43A4gDIAIgBSkDCDcDgAMgAiAFKQMANwP4AiAOp0F/RwRAIAJB+AJqEP8JCyALIANBEGoiA0cNAAsLIAIgBjYCDCACIAE2AgAgACACKQOYATcDKCAAIAIpA5ABNwMgIAAgAikDiAE3AxggACACKQOAATcDECAAIAIpA3g3AwggACACKQNwNwMADAELIAIoAoQBIQMgAigCiAEiBARAIAMhAQNAIAEQ3AggAUFAayEBIARBAWsiBA0ACwsgAigCgAEiAUUNACADIAFBBnQQ2RILIAAoAhBBf0YNASACIAApAyg3AzggAiAAKQMgNwMwIAIgACkDGDcDKCACIAApAxA3AyAgAiAAKQMINwMYIAIgACkDADcDECACKAIEIgEgAigCACIDRg0BIAIgAigCDCIENgLQASAEIAEgA2tBBXZqIAJB0AFqQZSPxwAQ0RIhASAAQX82AhAgACABNgIAIAJBEGoQ/wkMAQsgARCQASIDRQ0BIAEEQCADIAJB0AFqIAH8CgAACyAAQYOAgIB4NgIQIAAgATYCCCAAIAM2AgQgACABNgIACyACQbADaiQADwtBARCnFAALlh8DDX8FfgF8IwBBwAxrIgckACAAAn8gAkUEQCAAQQA6AAFBAQwBCwJAAkACQAJAAkACQAJAAkACQCAHAn8CQAJAAkACQCABLQAAIg5BK2sOAwABAAELIAJBAWsiAkUNASABQQFqIQELIAEhAwJAAkAgAAJ8AkACQAJAAkACQAJAIAIiBkEISQ0AA0AgAykAACIQQrDgwIGDhoyYMH0hEiASIBBCxoyZsuTIkaPGAHyEQoCBgoSIkKDAgH+DQgBSDQEgEUKAwtcvfiASQgp+IBJCCIh8IhBCEIhC/4GAgPAfg0KBgICAgOIJfiAQQv+BgIDwH4NC5ICAgIDI0Ad+fEIgiHwhESADQQhqIQMgBkEIayIGQQdLDQALIAYNAEEBIQwMAQsDQCADLQAAIgRBMGsiBUH/AXFBCUsNAiARQgp+IAWtQv8Bg3whEUEBIQwgA0EBaiEDIAZBAWsiBg0ACwtCACESQQAhBiACIQVCACEQDAELIAIgBmshCgJ+IARBLkcEQEEAIQUgBiEEQgAMAQsgA0EBaiEDIAZBAWshCQJAAkACQAJAIAZBCUgEQCAJIQQMAQsgCSEEA0AgAykAACIQQrDgwIGDhoyYMH0hEiASIBBCxoyZsuTIkaPGAHyEQoCBgoSIkKDAgH+DQgBSDQIgEUKAwtcvfiASQgp+IBJCCIh8IhBCEIhC/4GAgPAfg0KBgICAgOIJfiAQQv+BgIDwH4NC5ICAgIDI0Ad+fEIgiHwhESADQQhqIQMgBEEIayIEQQdLDQALCyAERQ0BCyAEIAMiBWohAwNAIAUtAABBMGsiCEH/AXFBCUsEQCAFIQMMAwsgEUIKfiAIrUL/AYN8IREgBUEBaiEFIARBAWsiBA0ACwtBACEEC0EAIAkgBGsiBWusCyEQIAUgCmoiBUUNAUIAIRIgBEUEQEEBIQwMAQsgAy0AAEEgckHlAEcEQEEAIQwMAQsgBEEBayIIRQ0BIANBAWohCQJAAkAgAy0AASIKIgtBK2sOAwABAAELIARBAmsiCEUNAiADQQJqIQkgAy0AAiELCyALQTBrQf8BcUEJSw0BAkADQCAJLQAAQTBrIgRB/wFxQQlLDQEgEkIKfiAErUL/AYN8IhQgEiASQoCABFMiBBshEiAUIBMgBBshEyAJQQFqIQkgCEEBayIIDQALQQAhCAtCACATfSATIApBLUYbIhIgEHwhECAIRSEMCwJ/QQAgBUEUSA0AGiAFQRNrIQUgAiEJIAEhAwNAAkACQCADLQAAIgRBLmsOAwABAAELIAUgBEEvayIFQQAgBCAFTxtrIQUgA0EBaiEDIAlBAWsiCQ0BCwtBACAFQQBMDQAaQQAgAmshBEIAIREgASEDIBICfwJAAkACfwJAA0AgBCEFIAMtAABBMGsiBEH/AXFBCUsNASADQQFqIQMgEUIKfiAErUL/AYN8IhFC//+Pu7rWrfANWEEAIAVBAWoiBBsNAAsgEUL//4+7utat8A1WDQMgBUF/Rg0CQQAgBGsMAQtBACAFawtBAWsiBEUEQEEAIARrDAMLIANBAWohAyAEIQYDQCAGIARrIAMtAABBMGsiCUH/AXFBCUsNAxogBkEBayEFIBFCCn4gCa1C/wGDfCIRQv//j7u61q3wDVgEQCADQQFqIQMgBkEBRyAFIQYNAQsLIAUgBGsMAgtBAUEAQQBBwLDDABCHDgALQQAgBCAGamsLrHwhEEEBCyEEIAxFDQAgEEImfUJEVCARQoCAgICAgIAQVnIgBHINAyAQQhZXBEAgEKchASARuiEVIBBCAFMNAiABQQN0KwOQk0QgFaIMAwsgByARQgAgEKdBA3RBoN/CAGopAwBCABDuESAHKQMIQgBSDQMgBykDACISQoCAgICAgIAQVg0DIBK6RJLVTQbP8IBEogwCCyAAAnwCQAJAIAJBA2sOBgEGBgYGAAYLIAEpAABC37///v379+9fg0LJnJnK5KmSqtkAUg0FRAAAAAAAAPB/DAELRAAAAAAAAPB/IAEzAAAgATEAAkIQhoRC37//BoMiEELJnJkCUQ0AGiAQQs6CuQJSDQREAAAAAAAA+H8LIhWaIBUgDkEtRhs5AwhBAAwQCyAVQZCTxAAgAUEDdGsrAwCjCyIVmiAVIA5BLUYbOQMIQQAMDgsgB0EQaiAQIBEQlQsCQCAEIAcoAhgiBUEATnFFBEAgBUEASA0BIAcpAxAhEQwOCyAHQbAGaiAQIBFCAXwQlQsgBykDsAYiESAHKQMQUg0AIAUgBygCuAZGDQ0LIAdBsAZqIgUhC0EAIQYgBUEAQYkG/AsAIAdBuAZqIQpBACEDAn8CQAJAAkACQANAIAEgA2oiDSIELQAAIgVBMEcEQCACIAZqIQkgBUEwayIIQf8BcUEJSw0DIANBf3MgAmohBEEAIQMDQCADQf8FTQRAIAMgCmogCDoAAAsgAyANakEBaiEFIANBAWohBiADIARHBEAgCUEBayEJIAYhAyAFLQAAIgVBMGsiCEH/AXFBCUsNBAwBCwsgCyAGNgIAQQAhC0EAIQgMDwsgBkEBayEGIANBAWoiAyACRw0AC0EAIQwMDwsgBiANaiEEIAcgBjYCsAZBACELIAVBLkYNASAJIQggBCEFDAwLIAVBLkcEQEEAIQxBACELDA0LIARBAWohBSAJQQFrIQwMAQsgCUEBayIMIQggBiANakEBaiIFIAYNARoLIAxFBEBBACEMQQAhBkEAIQgMCQsgBCAJaiEJQQAhAwJAA0AgAyAFaiIELQAAQTBHDQEgDCADQQFqIgNHDQALQQAhBkEAIQggCSEFDAkLQQAhBiAMIANrIQggBAshBSAIQQhJDQUgBkEIaiEDA0AgA0EIayADIgZBgAZPDQQaIAUpAAAiEEKw4MCBg4aMmDB9IRIgEiAQQsaMmbLkyJGjxgB8hEKAgYKEiJCgwIB/g0IAUg0DIAZBCGsiBEGABk0EQCAHQbAGaiAGaiASNwAAIAZBCGohAyAFQQhqIQUgCEEIayIIQQdNDQYMAQsLIARBgAZBgAZB8KTDABCHDgALCyAAQQE6AAFBAQwLCyAGQQhrCyIGNgKwBgwCCyAHIAY2ArAGCyAIDQBBACEIDAELIAUtAABBMGsiCUH/AXFBCU0EQCAFQQFqIQ8gCEEBayENIAYgB2pBuAZqIQtBACEEAn8DQCAGIAQiA2oiCkH/BU0EQCADIAtqIAk6AAALIAMgDUcEQCADQQFqIQQgCEEBayIIIAMgD2otAABBMGsiCUH/AXFBCUsNAhoMAQsLQQALIQggCkEBaiEGIAMgBWpBAWohBQsgByAGNgKwBgsgByAIIAxrIgs2ArQGCwJAIAZFBEBBACEMDAELIAIgCGshAyACIAhPBEBBACEEAkAgAiAIRg0AIAFBAWshAQNAAkACQCABIANqLQAAQS5rDgMBAwADCyAEQQFqIQQLIANBAWsiAw0ACwsgByAGIAtqIgs2ArQGIAcgBiAEayIMNgKwBiAMQYEGSQ0BQYAGIQwgB0GABjYCsAYgB0EBOgC4DAwBC0EAIAMgAkGApcMAEIcOAAsgBSEEIAghCQsCQCAJRQ0AIAQtAABBIHJB5QBHDQAgByAJQQFrIgUEfwJAAkACQAJAIARBAWoiBi0AACIIQStrDgMAAQABCyAJQQJrIgVFDQEgBEECaiEGC0EAIQRBACEDA0AgBi0AAEEwa0H/AXEiAUEJSw0CIANBCmwgAWoiAiADIANBgIAESCIBGyEDIAIgBCABGyEEIAZBAWohBiAFQQFrIgUNAAsMAQtBACEEC0EAIARrIAQgCEEtRhsFQQALIAtqNgK0BgsgDEESSw0BC0ETIAxrIgFFDQAgByAMakG4BmpBACAB/AsACyAHQSRqIAdBsAZqQYwG/AoAAEIAIRFBACEFIAcoAiRFDQAgBygCKCIDQbx9SA0AQf8PIQUgA0G1AkoNAAJAIANBAEwEQEEAIQYMAQtBACEGA0BBPCEEIANBE0kEQCADLQCE40IhBAsgB0EkaiAEEPIIIAcoAigiA0GAcEoEQCAEIAZqIQYgA0EATA0CDAELC0EAIQUMAQsgB0EsaiEIA0ACQCAHQSRqAn8gA0UEQCAHLQAsIgFBBEsNAkECQQEgAUECSRsMAQtBPEEAIANrIgJBE08NABogAi0AhONCCyIBELIJIAcoAigiA0H/D0oNAiAGIAFrIQYgA0EATA0BCwsgBkEBayIDQYF4TARAA0AgB0EkakE8QYJ4IANrIgEgAUE8TxsiARDyCCABIANqIgNBgnhJDQALCyADQf8HakH+D0oNACAHQSRqQTUQsgkCQAJAAkACfwJAAkAgBygCJCIKRQ0AIAcoAigiC0EASA0AIAtBEksNBCALRQRAQgAhEAwECyALQQFGBEBCACEQQQAMAwsgC0EBcSEGIAtBHnEhBEEAIQlCACEQA0ACfiAQQgp+IhAgCiAJIgFNDQAaIBAgASAHakEsajEAAHwLQgp+IRAgAUEBaiICIApJBEAgECABIAdqQS1qMQAAfCEQCyAEIAJBAWoiCUcNAAsMAQsgA0H+B2ohBQwFCyAGRQ0BIAFBAmoLIQEgEEIKfiEQIAEgCk8NACAQIAEgCGoxAAB8IRALAkAgCiALTQ0AAkAgCiALQQFqRiAIIAtqIgItAAAiAUEFRnFFBEAgAUEESw0BDAILIActAKwGDQAgC0UNASACQQFrLQAAQQFxRQ0BCyAQQgF8IRALIBBCgICAgICAgBBUDQELIAdBJGoiAUEBEPIIQgAhEEEAIQICQCABIgQoAgAiCEUNACAEKAIEIgpBAEgNAEJ/IRAgCkESSw0AAkAgCkUEQEIAIRAMAQsCfyAKQQFGBEBCACEQQQAMAQsgCkEBcSAKQR5xIQZCACEQA0AgEEIKfiEQIAIiASAISQRAIBAgASAEakEIajEAAHwhEAsgEEIKfiEQIAFBAWoiAiAISQRAIBAgASAEakEJajEAAHwhEAsgBiACQQFqIgJHDQALRQ0BIAFBAmoLIQEgEEIKfiEQIAEgCE8NACAQIARBCGogAWoxAAB8IRALIAggCk0NAAJAIAggCkEBakYgBCAKaiICLQAIIgFBBUZxRQRAIAFBBEsNAQwCCyAELQCIBg0AIApFDQEgAkEHai0AAEEBcUUNAQsgEEIBfCEQCyADQYAIakH+D0oNASADQQFqIQMLIBBC/////////weDIRFB/gdB/wcgEEKAgICAgICACFQbIANqIQULIAAgBa1CNIYgEYS/IhWaIBUgDkEtRhs5AwhBAAs6AAAgB0HADGokAAu5HwIGfwJ+IwBB0AJrIggkACAIIAU2AgwgCCAENgIIAkACQAJAAkACQAJAAkACQAJAIAIoAggiBQRAIAIoAgQiDSAFQQN0aiIEQQhrIQoCQAJAIAYEQCAIQQA2ArgBIAhCgICAgBA3ArABIAhB4K/JADYClAIgCEKggICABjcCmAIgCCAIQbABajYCkAIgBiAIQZACaiIJIAcoAhARAQANBCAIIAgoArgBNgIYIAggCCkCsAE3AxAgCCAIQRBqrUKAgICAwAKENwOgAiAIIAhBCGqtQoCAgIDQAYQ3A5gCIAggA61CgICAgMAChDcDkAIgCEEcakHclsAAIAkQuAwgBEEEaygCACEJIAooAgAhCkEMEJABIgRFDQUgCCgCDCELIAgoAgghDCAEQX82AgAgBEEEaiAMNgIAIAQgCzYCCCAIIAk2AjwgCCAKNgI4IAhCgYCAgHA3AjAgCCAENgIsIAhBATYCKCAIAn5B0PDJAC0AAARAQcjwyQApAwAhDkHA8MkAKQMADAELIAhBkAJqELsRQdDwyQBBAToAAEHI8MkAIAgpA5gCIg43AwAgCCkDkAILIg83A0BBwPDJACAPQgF8NwMAIAhBADYCWCAIQoCAgICAATcDUCAIIA43A0ggCEGQqckAKQMANwJcIAhBmKnJACkDADcCZEEMEJABIgoNAQwMCyAIIAhBCGqtQoCAgIDQAYQ3A5gCIAggA61CgICAgMAChDcDkAIgCEEcakHRxsEAIAhBkAJqELgMIARBBGsoAgAhBiAKKAIAIQdBDBCQASIERQ0FIAgoAgwhCiAIKAIIIQkgBEF/NgIAIARBBGogCTYCACAEIAo2AgggCCAGNgI8IAggBzYCOCAIQoGAgIBwNwIwIAggBDYCLCAIQQE2AiggCAJ+QdDwyQAtAAAEQEHI8MkAKQMAIQ5BwPDJACkDAAwBCyAIQZACahC7EUHQ8MkAQQE6AABByPDJACAIKQOYAiIONwMAIAgpA5ACCyIPNwNAQcDwyQAgD0IBfDcDACAIQQA2AlggCEKAgICAgAE3A1AgCCAONwNIIAhBkKnJACkDADcCXCAIQZipyQApAwA3AmRBDBCQASIGDQEMCwsgCkH6sckAKAAANgAIIApB8rHJACkAADcAACAIQQw2AqwBIAggCjYCqAEgCEEMNgKkASAIQZACaiIKIA0gBRDfDSAIKAKgAkF/Rg0GIAggCCkDuAI3A9gBIAggCCkDsAI3A9ABIAggCCkDqAI3A8gBIAggCCkDoAI3A8ABIAggCCkDmAI3A7gBIAggCCkDkAI3A7ABIAogCEFAayAIQaQBaiAIQbABahDSAyAIIAgpA8ACNwOYASAIIAgpA7gCNwOQASAIIAgpA7ACNwOIASAIIAgpA6gCIg43A4ABIAggCCkDoAI3A3ggCCAIKQOYAjcDcCAOp0F/RwRAIAhB8ABqEP4JC0EIEJABIgVFDQogBULh5J2r162Zt/QANwAAIAhBCDYCrAEgCCAFNgKoASAIQQg2AqQBIAhBkAJqIgUgCEEoahCzBCAIKAKgAkF/Rg0GIAggCCkDuAI3A9gBIAggCCkDsAI3A9ABIAggCCkDqAI3A8gBIAggCCkDoAI3A8ABIAggCCkDmAI3A7gBIAggCCkDkAI3A7ABIAUgCEFAayAIQaQBaiAIQbABahDSAyAIIAgpA8ACNwOYASAIIAgpA7gCNwOQASAIIAgpA7ACNwOIASAIIAgpA6gCIg43A4ABIAggCCkDoAI3A3ggCCAIKQOYAjcDcCAOp0F/RwRAIAhB8ABqEP4JC0ENEJABIgVFDQogBUGOsckAKQAANwAFIAVBibHJACkAADcAACAIQQ02AqwBIAggBTYCqAEgCEENNgKkASAIQZACaiIFIAEoAgQiCiABKAIIEN8NIAgoAqACQX9GDQYgCCAIKQO4AjcD2AEgCCAIKQOwAjcD0AEgCCAIKQOoAjcDyAEgCCAIKQOgAjcDwAEgCCAIKQOYAjcDuAEgCCAIKQOQAjcDsAEgBSAIQUBrIAhBpAFqIAhBsAFqENIDIAggCCkDwAI3A5gBIAggCCkDuAI3A5ABIAggCCkDsAI3A4gBIAggCCkDqAIiDjcDgAEgCCAIKQOgAjcDeCAIIAgpA5gCNwNwIA6nQX9HBEAgCEHwAGoQ/gkLQQ8QkAEiBUUNCiAFQc+zyQApAAA3AAcgBUHIs8kAKQAANwAAIAhBDzYCrAEgCCAFNgKoASAIQQ82AqQBAkAgCCgCGCIFRQRAQQEhCQwBCyAIKAIUIQsgBRCQASIJRQ0LIAVFDQAgCSALIAX8CgAACyAIQYOAgIB4NgLAASAIIAU2ArgBIAggCTYCtAEgCCAFNgKwASAIQZACaiAIQUBrIAhBpAFqIAhBsAFqENIDIAggCCkDwAI3A5gBIAggCCkDuAI3A5ABIAggCCkDsAI3A4gBIAggCCkDqAIiDjcDgAEgCCAIKQOgAjcDeCAIIAgpA5gCNwNwIA6nQX9HBEAgCEHwAGoQ/gkLIAggCCkDQDcD4AEgCCAIKQNINwPoASAIIAgpA1A3A/ABIAggCCkDWDcD+AEgCCAIKQNgNwOAAiAIIAgpA2g3A4gCIAQoAgAiBUEASgRAIARBBGooAgAiC0EEaygCACIMQXhxIQkgCUEEQQggDEEDcSIMGyAFakkNCCAMQQBHIAkgBUEnaktxDQkgCxC8BQsgBEEEaygCACIJQXhxIQUgBUEQQRQgCUEDcSIJG0kNByAJQQBHIAVBNE9xDQggBBC8BSAIKAIQIgQEQCAIKAIUIglBBGsoAgAiC0F4cSEFIAVBBEEIIAtBA3EiCxsgBGpJDQggC0EARyAFIARBJ2pLcQ0JIAkQvAULIAcoAgAiBARAIAYgBBEDAAsgBygCBCIERQ0FIAZBBGsoAgAiB0F4cSEFIAVBBEEIIAdBA3EiBxsgBGpJDQcgB0EARyAFIARBJ2pLcQ0IIAYQvAUMBQsgBkH6sckAKAAANgAIIAZB8rHJACkAADcAACAIQQw2AqwBIAggBjYCqAEgCEEMNgKkASAIQZACaiIGIA0gBRDfDSAIKAKgAkF/Rg0IIAggCCkDuAI3A9gBIAggCCkDsAI3A9ABIAggCCkDqAI3A8gBIAggCCkDoAI3A8ABIAggCCkDmAI3A7gBIAggCCkDkAI3A7ABIAYgCEFAayAIQaQBaiAIQbABahDSAyAIIAgpA8ACNwOYASAIIAgpA7gCNwOQASAIIAgpA7ACNwOIASAIIAgpA6gCIg43A4ABIAggCCkDoAI3A3ggCCAIKQOYAjcDcCAOp0F/RwRAIAhB8ABqEP4JC0EIEJABIgVFDQkgBULh5J2r162Zt/QANwAAIAhBCDYCrAEgCCAFNgKoASAIQQg2AqQBIAhBkAJqIgUgCEEoahCzBCAIKAKgAkF/Rg0IIAggCCkDuAI3A9gBIAggCCkDsAI3A9ABIAggCCkDqAI3A8gBIAggCCkDoAI3A8ABIAggCCkDmAI3A7gBIAggCCkDkAI3A7ABIAUgCEFAayAIQaQBaiAIQbABahDSAyAIIAgpA8ACNwOYASAIIAgpA7gCNwOQASAIIAgpA7ACNwOIASAIIAgpA6gCIg43A4ABIAggCCkDoAI3A3ggCCAIKQOYAjcDcCAOp0F/RwRAIAhB8ABqEP4JC0ENEJABIgVFDQkgBUGOsckAKQAANwAFIAVBibHJACkAADcAACAIQQ02AqwBIAggBTYCqAEgCEENNgKkASAIQZACaiIFIAEoAgQiCiABKAIIEN8NIAgoAqACQX9GDQggCCAIKQO4AjcD2AEgCCAIKQOwAjcD0AEgCCAIKQOoAjcDyAEgCCAIKQOgAjcDwAEgCCAIKQOYAjcDuAEgCCAIKQOQAjcDsAEgBSAIQUBrIAhBpAFqIAhBsAFqENIDIAggCCkDwAI3A5gBIAggCCkDuAI3A5ABIAggCCkDsAI3A4gBIAggCCkDqAIiDjcDgAEgCCAIKQOgAjcDeCAIIAgpA5gCNwNwIA6nQX9HBEAgCEHwAGoQ/gkLQQ8QkAEiBUUNCSAFQc+zyQApAAA3AAcgBUHIs8kAKQAANwAAIAhBDzYCrAEgCCAFNgKoASAIQQ82AqQBIAhBkAJqIgVB6LPJABDOBCAIKAKgAkF/Rg0IIAggCCkDuAI3A9gBIAggCCkDsAI3A9ABIAggCCkDqAI3A8gBIAggCCkDoAI3A8ABIAggCCkDmAI3A7gBIAggCCkDkAI3A7ABIAUgCEFAayAIQaQBaiAIQbABahDSAyAIIAgpA8ACNwOYASAIIAgpA7gCNwOQASAIIAgpA7ACNwOIASAIIAgpA6gCIg43A4ABIAggCCkDoAI3A3ggCCAIKQOYAjcDcCAOp0F/RwRAIAhB8ABqEP4JCyAIIAgpA0A3A+ABIAggCCkDSDcD6AEgCCAIKQNQNwPwASAIIAgpA1g3A/gBIAggCCkDYDcDgAIgCCAIKQNoNwOIAiAEKAIAIgVBAEoEQCAEQQRqKAIAIgdBBGsoAgAiCUF4cSEGIAZBBEEIIAlBA3EiCRsgBWpJDQcgCUEARyAGIAVBJ2pLcQ0IIAcQvAULIARBBGsoAgAiBkF4cSEFIAVBEEEUIAZBA3EiBhtJDQYgBkEARyAFQTRPcQ0HIAQQvAUMBAtBuLHJAEEhQbizyQAQwBMAC0HwtckAQTcgCEHPAmpB+K/JAEGotskAENoSAAtBuPDJAEEBOgAAAAtBuPDJAEEBOgAAAAsgAEEDOgA8IAAgCCkCHDcCMCAAIAgoAiQ2AjggACAIKQPgATcDACAAIAgpA+gBNwMIIAAgCCkD8AE3AxAgACAIKQP4ATcDGCAAIAgpA4ACNwMgIAAgCCkDiAI3AyggAygCACIABEAgAygCBCIEQQRrKAIAIgVBeHEhAyADQQRBCCAFQQNxIgUbIABqSQ0CIAVBAEcgAyAAQSdqS3ENAyAEELwFCyACKAIAIgIEQCANQQRrKAIAIgNBeHEhACAAIAJBA3QiAkEEQQggA0EDcSIDG2pJDQIgA0EARyAAIAJBJ2pLcQ0DIA0QvAULAkAgASgCACIBBEAgCkEEaygCACICQXhxIQAgACABQQN0IgFBBEEIIAJBA3EiAhtqSQ0DIAJBAEcgACABQSdqS3ENASAKELwFCyAIQdACaiQADwsMAgsgCCAIKAKQAjYCsAFBiLDJAEErIAhBsAFqQZixyQBB2LPJABDaEgALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACyAIIAgoApACNgKwAUGIsMkAQSsgCEGwAWpBmLHJAEGYtMkAENoSAAtBARCnFAALih4CD38BfiMAQUBqIhQkAAJAAkAgAUEhSQRAIAEhDQwBCyACQTxrIRECQAJAA0AgBEUEQCAAIAEgAiADQQEQ2AIMBQsgACABQQN2IgZBpANsaiELIAAgBkHwAWxqIQggBEEBayEEIBQCfyABQcAATwRAIAAgCCALIAYQ1A4MAQsgACAAQQRqKAIAIgkgCEEEaigCACIHIABBCGooAgAiDiAIQQhqKAIAIg8gDiAPSRsQjxMiBiAOIA9rIAYbIg0gCSALQQRqKAIAIgkgDiALQQhqKAIAIhAgDiAQSRsQjxMiBiAOIBBrIAYbc0EASA0AGiALIAggByAJIA8gECAPIBBJGxCPEyIGIA8gEGsgBhsgDXNBAEgbCyIKKAI4NgI4IBQgCikCMDcDMCAUIAopAig3AyggFCAKKQIgNwMgIBQgCikCGDcDGCAUIAopAhA3AxAgFCAKKQIINwMIIBQgCikCADcDACAKIABrQTxuIQkCQCAFBEAgBUEEaigCACAKQQRqKAIAIAVBCGooAgAiByAKQQhqKAIAIg0gByANSRsQjxMiBiAHIA1rIAYbQQBODQELIAEgA0sNA0EAIQ0gACEGIAFBPGwiDiACaiISIQsgCSEHA0AgBiAAIAdBPGxqIg9JBEADQCANQTxsIAIgC0E8ayILIAZBBGooAgAgCkEEaigCACAGQQhqIhAoAgAiEyAKQQhqKAIAIgwgDCATSxsQjxMiCCATIAxrIAgbIghBAEgbaiIMIAYoAjg2AjggDCAGKQIwNwIwIAwgBikCKDcCKCAMIAYpAiA3AiAgDCAGKQIYNwIYIAwgBikCEDcCECAMIBApAgA3AgggDCAGKQIANwIAIAhBH3YgDWohDSAPIAZBPGoiBksNAAsLIAEgB0cEQCALQTxrIgsgDUE8bGoiByAGKAI4NgI4IAcgBikCMDcCMCAHIAYpAig3AiggByAGKQIgNwIgIAcgBikCGDcCGCAHIAYpAhA3AhAgByAGKQIINwIIIAcgBikCADcCACAGQTxqIQYgASEHDAELCyANQTxsIhMEQCAAIAIgE/wKAAALIAEgDWshDAJAIAEgDUYNACAAIBNqIQhBACELIA1BAWogAUcEQCAMQQFxIAxBfnEhECAOIBFqIQcgCCEGA0AgBiAHKAI4NgI4IAYgBykCMDcCMCAGIAcpAig3AiggBiAHKQIgNwIgIAYgBykCGDcCGCAGIAcpAhA3AhAgBiAHKQIINwIIIAYgBykCADcCACAGQTxqIBIgC0H+////A3NBPGxqIg4pAgA3AgAgBkHEAGogDikCCDcCACAGQcwAaiAOKQIQNwIAIAZB1ABqIA4pAhg3AgAgBkHcAGogDikCIDcCACAGQeQAaiAOKQIoNwIAIAZB7ABqIA4pAjA3AgAgBkH0AGogDkE4aigCADYCACAHQfgAayEHIAZB+ABqIQYgECALQQJqIgtHDQALRQ0BCyAIIAtBPGxqIgcgEiALQX9zQTxsaiIGKAI4NgI4IAcgBikCMDcCMCAHIAYpAig3AiggByAGKQIgNwIgIAcgBikCGDcCGCAHIAYpAhA3AhAgByAGKQIINwIIIAcgBikCADcCAAsgDUUNACABIA1JDQIgACATaiAMIAIgAyAEIBQQngEgDSIBQSFJDQQMAQsgASADSw0CQQAhBSAAIQYgAUE8bCIQIAJqIgwhCwNAIAYgACAJQTxsaiIISQRAA0AgBUE8bCACIAtBPGsiCyAKQQRqKAIAIAZBBGooAgAgCkEIaigCACIOIAZBCGoiBygCACIPIA4gD0kbEI8TIg0gDiAPayANG0EATiING2oiDyAGKAI4NgI4IA8gBikCMDcCMCAPIAYpAig3AiggDyAGKQIgNwIgIA8gBikCGDcCGCAPIAYpAhA3AhAgDyAHKQIANwIIIA8gBikCADcCACAFIA1qIQUgCCAGQTxqIgZLDQALCyABIAlHBEAgAiAFQTxsaiIJIAYoAjg2AjggCSAGKQIwNwIwIAkgBikCKDcCKCAJIAYpAiA3AiAgCSAGKQIYNwIYIAkgBikCEDcCECAJIAYpAgg3AgggCSAGKQIANwIAIAZBPGohBiAFQQFqIQUgC0E8ayELIAEhCQwBCwsgBUE8bCIGBEAgACACIAb8CgAACyABIAVGDQQgASAFayENIAAgBmohAEEAIQsCQCAFQQFqIAFHBEAgDUEBcSANQX5xIQkgECARaiEHIAAhBgNAIAYgBygCODYCOCAGIAcpAjA3AjAgBiAHKQIoNwIoIAYgBykCIDcCICAGIAcpAhg3AhggBiAHKQIQNwIQIAYgBykCCDcCCCAGIAcpAgA3AgAgBkE8aiAMIAtB/v///wNzQTxsaiIIKQIANwIAIAZBxABqIAgpAgg3AgAgBkHMAGogCCkCEDcCACAGQdQAaiAIKQIYNwIAIAZB3ABqIAgpAiA3AgAgBkHkAGogCCkCKDcCACAGQewAaiAIKQIwNwIAIAZB9ABqIAhBOGooAgA2AgAgB0H4AGshByAGQfgAaiEGIAkgC0ECaiILRw0AC0UNAQsgACALQTxsaiIJIAwgC0F/c0E8bGoiBigCODYCOCAJIAYpAjA3AjAgCSAGKQIoNwIoIAkgBikCIDcCICAJIAYpAhg3AhggCSAGKQIQNwIQIAkgBikCCDcCCCAJIAYpAgA3AgALIAEgBU8EQEEAIQUgDSIBQSFJDQQMAQsLIAUgASABQeD1yAAQhw4AC0HEsMkAQRNB0PXIABC/EwsACyANQQJJDQBBASEGIA1BAXYiAUE8bCIEIAJqIQMgACAEaiESAkAgDUEITwRAIAAgAhDrByASIAMQ6wdBBCEGDAELIAIgACgCODYCOCACIAApAjA3AjAgAiAAKQIoNwIoIAIgACkCIDcCICACIAApAhg3AhggAiAAKQIQNwIQIAIgACkCCDcCCCACIAApAgA3AgAgAyASKAI4NgI4IAMgEikCMDcCMCADIBIpAig3AiggAyASKQIgNwIgIAMgEikCGDcCGCADIBIpAhA3AhAgAyASKQIINwIIIAMgEikCADcCAAsgDSABayEPIAEgBksEQCAGQTxsIQkgBiEEA0AgBEE8bCIFIAJqIgggACAFaiIKKQIANwIAIAggCigCODYCOCAIIAopAjA3AjAgCCAKKQIoNwIoIAggCikCIDcCICAIIAopAhg3AhggCCAKKQIQNwIQIAhBCGogCikCCCIVNwIAIAhBBGooAgAiCyAIQThrKAIAIBWnIg4gCEE0aygCACIHIAcgDksbEI8TIgUgDiAHayAFG0EASARAIApBDGohECAIKAIAIQogCSEFAn8CQANAIAIgBWoiDEE8ayEHIAwgBygCODYCOCAMIAcpAjA3AjAgDCAHKQIoNwIoIAwgBykCIDcCICAMIAcpAhg3AhggDCAHKQIQNwIQIAwgBykCCDcCCCAMIAcpAgA3AgAgBUE8Rg0BIAVBPGshBSALIAxB9ABrKAIAIA4gDEHwAGsoAgAiCCAIIA5LGxCPEyIHIA4gCGsgBxtBAEgNAAsgAiAFagwBCyACCyAKNgIAIAxBNGsgDjYCACAMQThrIAs2AgAgDEEwayIFIBApAgA3AgAgBSAQKQIINwIIIAUgECkCEDcCECAFIBApAhg3AhggBSAQKQIgNwIgIAUgECkCKDcCKAsgCUE8aiEJIARBAWoiBCABRw0ACwsgBiAPSQRAIAZBPGwhDkE8IQQgAyEFA0AgBkE8bCIJIANqIgggCSASaiIKKQIANwIAIAggCigCODYCOCAIIAopAjA3AjAgCCAKKQIoNwIoIAggCikCIDcCICAIIAopAhg3AhggCCAKKQIQNwIQIAhBCGogCikCCCIVNwIAIAhBBGooAgAiECAIQThrKAIAIBWnIhMgCEE0aygCACIHIAcgE0sbEI8TIgkgEyAHayAJG0EASARAIApBDGohDCAIKAIAIQggBCELIAUhCgJ/AkADQCAKIA5qIhFBPGshCSARIAkoAjg2AjggESAJKQIwNwIwIBEgCSkCKDcCKCARIAkpAiA3AiAgESAJKQIYNwIYIBEgCSkCEDcCECARIAkpAgg3AgggESAJKQIANwIAIAsgDkYNASALQTxqIQsgCkE8ayEKIBAgEUH0AGsoAgAgEyARQfAAaygCACIHIAcgE0sbEI8TIgkgEyAHayAJG0EASA0ACyAKIA5qDAELIAMLIAg2AgAgEUE0ayATNgIAIBFBOGsgEDYCACARQTBrIgkgDCkCADcCACAJIAwpAgg3AgggCSAMKQIQNwIQIAkgDCkCGDcCGCAJIAwpAiA3AiAgCSAMKQIoNwIoCyAEQTxrIQQgBUE8aiEFIA8gBkEBaiIGRw0ACwsgA0E8ayEFIA1BPGxBPGsiBCACaiEKIAAgBGohBgNAIAAgAiADIANBBGooAgAgAkEEaigCACADQQhqKAIAIgcgAkEIaigCACIJIAcgCUkbEI8TIgQgByAJayAEGyIHQQBOIgkbIgQoAjg2AjggACAEKQIwNwIwIAAgBCkCKDcCKCAAIAQpAiA3AiAgACAEKQIYNwIYIAAgBCkCEDcCECAAIAQpAgg3AgggACAEKQIANwIAIAYgCiAFIApBBGooAgAgBUEEaigCACAKQQhqKAIAIgsgBUEIaigCACIIIAggC0sbEI8TIgQgCyAIayAEGyIEQQBOGyIIKAI4NgI4IAYgCCkCMDcCMCAGIAgpAig3AiggBiAIKQIgNwIgIAYgCCkCGDcCGCAGIAgpAhA3AhAgBiAIKQIINwIIIAYgCCkCADcCACACIAlBPGxqIQIgAyAHQR92QTxsaiEDIAUgBEEfdSIEQTxsaiEFIAogBEF/c0E8bGohCiAGQTxrIQYgAEE8aiEAIAFBAWsiAQ0ACyAFQTxqIQQgDUEBcQR/IAAgAiADIAIgBEkiARsiBSgCODYCOCAAIAUpAjA3AjAgACAFKQIoNwIoIAAgBSkCIDcCICAAIAUpAhg3AhggACAFKQIQNwIQIAAgBSkCCDcCCCAAIAUpAgA3AgAgAyACIARPQTxsaiEDIAIgAUE8bGoFIAILIARGIAMgCkE8akZxDQAQpBUACyAUQUBrJAALxjgCF38GfiMAQfACayIFJAAgBQJ+QdDwyQAtAAAEQEHI8MkAKQMAIRtBwPDJACkDAAwBCyAFQaACahC7EUHQ8MkAQQE6AABByPDJACAFKQOoAiIbNwMAIAUpA6ACCyIaNwMQQcDwyQAgGkICfDcDACAFIBs3AxggBUGYqckAKQMAIh03AwggBUGQqckAKQMAIhw3AwAgBSAcNwMgIAUgHTcDKCAFIBs3AzggBSAaQgF8NwMwIAVBADYCTCAFQoCAgICAATcCRAJAAkACQCACRQRAQQEhDwwBCyABIAJB0ABsaiEYIAVBowJqIRNBiKnJACEMIAVBMGohFkEIIRRBACECA0ACQAJAAkACQAJAAkACQAJAIAEtAAAOBAABAgMECyAFQdABaiABKAIIIAEoAgwQnwEgEyAFKALYATYACCATIAUpAtABNwAAIAUoAkQgAkYEQCAFQcQAahCqEgsgBSgCSCIUIAJB0ABsaiIDQQA6AAAgAyAFKQCgAjcAASADIAUpAKcCNwAIDAULIAVB0AFqIAEoAgggASgCDBCfASATIAUoAtgBNgAIIBMgBSkC0AE3AAAgBSgCRCACRgRAIAVBxABqEKoSCyAFKAJIIhQgAkHQAGxqIgNBAToAACADIAUpAKACNwABIAMgBSkApwI3AAgMBAsgBUHQAWogASgCCCABKAIMEJ8BIBMgBSgC2AE2AAggEyAFKQLQATcAACAFKAJEIAJGBEAgBUHEAGoQqhILIAUoAkgiFCACQdAAbGoiA0ECOgAAIAMgBSkAoAI3AAEgAyAFKQCnAjcACAwDCyABLQAIQQ9HBEAgBUGgAmogARCHAyAFKAJEIAJGBEAgBUHEAGoQqhIgBSgCSCEUCyAUIAJB0ABsaiAFQaACakHQAPwKAAAMAwsgASgCGEF/Rg0BIAFBGGohESAFKQM4IRsgBSkDMCEdAkACQAJAIAUoAixFDQAgDyAdIBsgERC3CyIap3EhBiAaQhmIQv8Ag0KBgoSIkKDAgAF+IR5BACENA0ACQCAGIAxqKQAAIhwgHoUiGkKBgoSIkKDAgAF9IBpCf4WDQoCBgoSIkKDAgH+DIhpCAFIEQANAIBEgDCAaeqdBA3YgBmogD3FBUGxqIghBMGsQwAMNAiAaQgF9IBqDIhpCAFINAAsLIBwgHEIBhoNCgIGChIiQoMCAf4NCAFINAiANQQhqIg0gBmogD3EhBgwBCwsCfyABKAI4IglBAkYEQEECIQkgASgCRCIDRQRAQQQhDkEAIQNBAAwCCyABKAJAIQsgA0EUbCIKEJABIg5FDQNBACEGIAMhBANAIAMgBiAKRg0CGiALKAIQIg0oAgAhByANIAdBAWo2AgAgB0EASA0FIAYgDmoiByALKQIINwIIIAcgCykCADcCACAHQRBqIA02AgAgBkEUaiEGIAtBFGohCyAEQQFrIgQNAAsgAwwBCyABKAJIIhcoAgAhAyAXIANBAWo2AgAgA0EASA0DIAEoAkQhAyABKAJAIQ4gASgCPAshDSAIQQhrIgcoAgAiCyAIQRBrIgQoAgBGBEAgBBCaEgsgCEEMaygCACALQRRsaiIEIBc2AhAgBCADNgIMIAQgDjYCCCAEIA02AgQgBCAJNgIAIAcgC0EBajYCAAwGCyAFQdAAaiIDIBEQkAMgHSAbIAMQtwshHSAFKAIoRQRAAkBBACEMIAVBIGoiBigCDCILQQFqIgMEQAJAIAYoAgQiCUEBaiIEQQN2Ig5BB2whDwJAIAkgDyAJQQhJGyIHQQF2IANJBEACfyAHQQFqIgQgAyADIARJGyIDQQ9PBEAgA0H/////AUsNBEF/IANBA3RBB25BAWtndkEBagwBC0EEIANBCHFBCGogA0EESRsLIgOtQjB+IhpCIIinDQIgGqciByADQQhqIghqIQQgBCAHSQ0CIARB+P///wdLDQIgBBCQASIERQRAQbjwyQBBAToAAAALIAQgB2ohDiAIBEAgDkH/ASAI/AsACyADQQFrIgogA0EDdkEHbCADQQlJGyEQIAYoAgAhBwJAIAtFBEBBACELDAELIAcpAwBCf4VCgIGChIiQoMCAf4MhGiAWKQMIIRwgFikDACEeIAshCCAHIQMDQCAaUARAA0AgDEEIaiEMIANBCGoiAykDAEKAgYKEiJCgwIB/gyIaQoCBgoSIkKDAgH9RDQALIBpCgIGChIiQoMCAf4UhGgsgDiAeIBwgByAaeqdBA3YgDGoiEkFQbGpBMGsQtwunIhUgCnEiBGopAABCgIGChIiQoMCAf4MiG1AEQEEIIQ8DQCAEIA9qIQQgD0EIaiEPIA4gBCAKcSIEaikAAEKAgYKEiJCgwIB/gyIbUA0ACwsgGkIBfSAagyEaIA4gG3qnQQN2IARqIApxIgRqLAAAQQBOBEAgDikDAEKAgYKEiJCgwIB/g3qnQQN2IQQLIAQgDmogFUEZdiIPOgAAIA4gBEEIayAKcWpBCGogDzoAACAOIARBf3NBMGxqIgQgByASQX9zQTBsaiIPKQAoNwAoIAQgDykAIDcAICAEIA8pABg3ABggBCAPKQAQNwAQIAQgDykACDcACCAEIA8pAAA3AAAgCEEBayIIDQALCyAGIAo2AgQgBiAONgIAIAYgECALazYCCCAJRQ0BIAlBMGxBN2pBcHEiBCAJakEJaiIDRQ0BIAcgBGsiC0EEaygCACIGQXhxIQQgBEEEQQggBkEDcSIGGyADakkNDiAGQQBHIAQgA0EnaktxDQ8gCxC8BQwECyAGIAQEfyAGKAIAIQgCQCAOIARBB3FBAEdqIgNBAUcEQCADQQFxIANB/v///wNxIQMDQCAIIAxqIgYpAwAhGiAGIBpCf4VCB4hCgYKEiJCgwIABgyAaQv/+/fv379+//wCEfDcDACAGQQhqIgYpAwAhGiAGIBpCf4VCB4hCgYKEiJCgwIABgyAaQv/+/fv379+//wCEfDcDACAMQRBqIQwgA0ECayIDDQALRQ0BCyAIIAxqIgMpAwAhGiADIBpCf4VCB4hCgYKEiJCgwIABgyAaQv/+/fv379+//wCEfDcDAAsCQCAEQQhPBEAgBCAIaiAIKQAANwAADAELIARFDQAgCEEIaiAIIAT8CgAACyAWKQMIIRsgFikDACEcQQAhBANAAkAgCCAEIgZqIg4tAABBgAFHDQAgCCAEQX9zQTBsaiEEIAggBkFQbGpBMGshEgNAIAggHCAbIBIQtwunIgogCXEiECIDaikAAEKAgYKEiJCgwIB/gyIaUARAQQghDANAIAMgDGohAyAMQQhqIQwgCCADIAlxIgNqKQAAQoCBgoSIkKDAgH+DIhpQDQALCyAIIBp6p0EDdiADaiAJcSIDaiwAAEEATgRAIAgpAwBCgIGChIiQoMCAf4N6p0EDdiEDCyADIBBrIAYgEGtzIAlxQQhPBEAgAyAIaiIMLQAAIAwgCkEZdiIMOgAAIAggA0EIayAJcWpBCGogDDoAACAIIANBf3NBMGxqIQNB/wFGBEAgDkH/AToAACAIIAkgBkEIa3FqQQhqQf8BOgAAIAMgBCkAKDcAKCADIAQpACA3ACAgAyAEKQAYNwAYIAMgBCkAEDcAECADIAQpAAg3AAggAyAEKQAANwAADAMLIAQpAAghGiAEIAMpAAg3AAggAyAaNwAIIAQpAAAhGiAEIAMpAAA3AAAgAyAaNwAAIAMpABghGiADIAQpABg3ABggBCAaNwAYIAMpABAhGiADIAQpABA3ABAgBCAaNwAQIAQpACghGiAEIAMpACg3ACggAyAaNwAoIAQpACAhGiAEIAMpACA3ACAgAyAaNwAgDAELCyAOIApBGXYiAzoAACAIIAkgBkEIa3FqQQhqIAM6AAALIAZBAWohBCAGIAlHDQALIAkgDyAJQQhJGwVBAAsgC2s2AggLDAILC0H46MgAQTlB+J/EABC/EwALCyAFKAIkIg8gHadxIQYgHUIZiCIdQv8Ag0KBgoSIkKDAgAF+IRxBACEEIAUoAiAhDEEAIQ4DQAJ/AkACQAJAIAYgDGopAAAiGyAchSIaQoGChIiQoMCAAX0gGkJ/hYNCgIGChIiQoMCAf4MiGkIAUgRAA0AgBUHQAGogDCAaeqdBA3YgBmogD3FBUGxqIgNBMGsQwAMNAiAaQgF9IBqDIhpCAFINAAsLIBtCgIGChIiQoMCAf4MhGiAEQQFHBEAgGlANAyAaeqdBA3YgBmogD3EhDQtBASAaIBtCAYaDUA0DGiAMIA1qLAAAIgdBAE4EQCAMIAwpAwBCgIGChIiQoMCAf4N6p0EDdiINai0AACEHCyAMIA1qIB2nQf8AcSIDOgAAIAwgDyANQQhrcWpBCGogAzoAACAMIA1BUGxqIgNBCGtBADYCACADQRBrQoCAgIDAADcDACADQTBrIgMgBSkDaDcDGCADIAUpA2A3AxAgAyAFKQNYNwMIIAMgBSkDUDcDACAFIAUoAixBAWo2AiwgBSAFKAIoIAdBAXFrNgIoDAELIANBEGsiBCgCCCENIANBCGtBADYCACAEKQIAIRogBEKAgICAwAA3AwAgBSANNgKoAiAFIBo3A6ACIAVB0ABqEIgEIAUoAqACQX9GDQAgBUGgAmoQqQwLIAVB8ABqIgMgERCQAyAFKQMQIAUpAxggAxC3CyEdIAUoAghFBEACQCAFQRBqIQRBACEJIAUoAgwiC0EBaiIGBEACQCAFKAIEIghBAWoiA0EDdiIKQQdsIRECQCAIIBEgCEEISRsiB0EBdiAGSQRAAn8gB0EBaiIDIAYgAyAGSxsiA0EPTwRAIANB/////wFLDQRBfyADQQN0QQduQQFrZ3ZBAWoMAQtBBCADQQhxQQhqIANBBEkbCyIDrUIofiIaQiCIpw0CIBqnIgcgA0EIaiIKaiEGIAYgB0kNAiAGQfj///8HSw0CIAYQkAEiBkUEQEG48MkAQQE6AAAACyAGIAdqIQcgCgRAIAdB/wEgCvwLAAsgA0EBayIRIANBA3ZBB2wgA0EJSRshEiAFKAIAIQYCQCALRQRAQQAhCwwBCyAGKQMAQn+FQoCBgoSIkKDAgH+DIRogBCkDCCEcIAQpAwAhHiALIQMgBiEEA0AgGlAEQANAIAlBCGohCSAEQQhqIgQpAwBCgIGChIiQoMCAf4MiGkKAgYKEiJCgwIB/UQ0ACyAaQoCBgoSIkKDAgH+FIRoLIAcgESAeIBwgBiAaeqdBA3YgCWoiFUFYbGpBKGsQtwunIhlxIgpqKQAAQoCBgoSIkKDAgH+DIhtQBEBBCCEQA0AgCiAQaiEKIBBBCGohECAHIAogEXEiCmopAABCgIGChIiQoMCAf4MiG1ANAAsLIBpCAX0gGoMhGiAHIBt6p0EDdiAKaiARcSIKaiwAAEEATgRAIAcpAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAHIApqIBlBGXYiEDoAACAHIApBCGsgEXFqQQhqIBA6AAAgByAKQX9zQShsaiIKIAYgFUF/c0EobGoiECkAIDcAICAKIBApABg3ABggCiAQKQAQNwAQIAogECkACDcACCAKIBApAAA3AAAgA0EBayIDDQALCyAFIBE2AgQgBSAHNgIAIAUgEiALazYCCCAIRQ0BIAhBKGxBL2pBeHEiBCAIakEJaiIDRQ0BIAYgBGsiC0EEaygCACIGQXhxIQQgBEEEQQggBkEDcSIGGyADakkNESAGQQBHIAQgA0EnaktxDRIgCxC8BQwECyAFIAMEfyAFKAIAIQcCQCAKIANBB3FBAEdqIgZBAUcEQCAGQQFxIAZB/v///wNxIQoDQCAHIAlqIgYpAwAhGiAGIBpCf4VCB4hCgYKEiJCgwIABgyAaQv/+/fv379+//wCEfDcDACAGQQhqIgYpAwAhGiAGIBpCf4VCB4hCgYKEiJCgwIABgyAaQv/+/fv379+//wCEfDcDACAJQRBqIQkgCkECayIKDQALRQ0BCyAHIAlqIgYpAwAhGiAGIBpCf4VCB4hCgYKEiJCgwIABgyAaQv/+/fv379+//wCEfDcDAAsCQCADQQhPBEAgAyAHaiAHKQAANwAADAELIANFDQAgB0EIaiAHIAP8CgAACyAEKQMIIRsgBCkDACEcQQAhAwNAAkAgByADIgZqIgotAABBgAFHDQAgByADQX9zQShsaiEDIAcgBkFYbGpBKGshFQNAIAcgHCAbIBUQtwunIhAgCHEiEiIEaikAAEKAgYKEiJCgwIB/gyIaUARAQQghCQNAIAQgCWohBCAJQQhqIQkgByAEIAhxIgRqKQAAQoCBgoSIkKDAgH+DIhpQDQALCyAHIBp6p0EDdiAEaiAIcSIEaiwAAEEATgRAIAcpAwBCgIGChIiQoMCAf4N6p0EDdiEECyAEIBJrIAYgEmtzIAhxQQhPBEAgBCAHaiIJLQAAIAkgEEEZdiIJOgAAIAcgBEEIayAIcWpBCGogCToAACAHIARBf3NBKGxqIQRB/wFGBEAgCkH/AToAACAHIAggBkEIa3FqQQhqQf8BOgAAIAQgAykAIDcAICAEIAMpABg3ABggBCADKQAQNwAQIAQgAykACDcACCAEIAMpAAA3AAAMAwsgAykAACEaIAMgBCkAADcAACAEIBo3AAAgBCkACCEaIAQgAykACDcACCADIBo3AAggAykAECEaIAMgBCgAFDYAFCAEKAAQIQkgBCAaNwAQIAMgCTYAECAEKAAcIQkgBCADKAAcNgAcIAMgCTYAHCADKAAYIQkgAyAEKAAYNgAYIAQgCTYAGCADKAAkIQkgAyAEKAAkNgAkIAQoACAhECAEIAMoACA2ACAgAyAQNgAgIAQgCTYAJAwBCwsgCiAQQRl2IgM6AAAgByAIIAZBCGtxakEIaiADOgAACyAGQQFqIQMgBiAIRw0ACyAIIBEgCEEISRsFQQALIAtrNgIICwwCCwtB+OjIAEE5QfifxAAQvxMACwsgBSgCBCIHIB2ncSEGIB1CGYgiHUL/AINCgYKEiJCgwIABfiEcQQAhBCAFKAIAIQNBACELA0ACfwJAAkAgAyAGaikAACIbIByFIhpCgYKEiJCgwIABfSAaQn+Fg0KAgYKEiJCgwIB/gyIaQgBSBEADQCAFQfAAaiADIBp6p0EDdiAGaiAHcUFYbGoiDkEoaxDAAw0CIBpCAX0gGoMiGkIAUg0ACwsgG0KAgYKEiJCgwIB/gyEaIARBAUcEQCAaUA0CIBp6p0EDdiAGaiAHcSENC0EBIBogG0IBhoNQDQIaIAMgDWosAAAiBkEATgRAIAMgAykDAEKAgYKEiJCgwIB/g3qnQQN2Ig1qLQAAIQYLIAMgDWogHadB/wBxIgQ6AAAgAyAHIA1BCGtxakEIaiAEOgAAIAMgDUFYbGoiA0EIayABNgIAIANBKGsiAyAFKQOIATcDGCADIAUpA4ABNwMQIAMgBSkDeDcDCCADIAUpA3A3AwAgBSAFKAIMQQFqNgIMIAUgBSgCCCAGQQFxazYCCAwMCyAOQQhrIAE2AgAgBUHwAGoQiAQMCwtBAAshBCALQQhqIgsgBmogB3EhBgwACwALQQALIQQgDkEIaiIOIAZqIA9xIQYMAAsAC0EEEKcUCwALIAVBoAJqIAEQhwMgBSgCRCACRgRAIAVBxABqEKoSCyAFKAJIIhQgAkHQAGxqIAVBoAJqQdAA/AoAAAwBC0G8p8YAEJ0VAAsgBSACQQFqIgI2AkwLIBggAUHQAGoiAUcNAAsgBSgCACEBIAUoAgwhCyAFKAIEIgMEQCABIANBKGwiBGtBKGshDiADIARqQTFqIQcLIANFIQ8gC0UNACABQQhqIQMgASkDAEJ/hUKAgYKEiJCgwIB/gyEaIAVBsAFqQQRyIQggBSgCICEJIAUoAiQhDCAFKQM4IRwgBSkDMCEeIAUoAiwhEyAFQdwBaiEUA0AgGlAEQANAIAMiBEEIaiEDIAFBwAJrIQEgBCkDAEKAgYKEiJCgwIB/gyIaQoCBgoSIkKDAgH9RDQALIBpCgIGChIiQoMCAf4UhGgsgASAaeqdBA3ZBWGxqIg1BKGsoAgAhBiAFIA1BJGsiBCgCGDYCqAEgBSAEKQIQNwOgASAFIAQpAgg3A5gBIAUgBCkCADcDkAEgC0EBayELIBpCAX0gGoMhGgJAAkAgBkF/RwRAIA1BCGsoAgAhESAIIAUpA5ABNwIAIAggBSkDmAE3AgggCCAFKQOgATcCECAIIAUoAqgBNgIYIAUgBjYCsAEgE0UNASAMIB4gHCAFQbABahC3CyIbp3EhBCAbQhmIQv8Ag0KBgoSIkKDAgAF+IR9BACENA0AgBCAJaikAACIdIB+FIhtCgYKEiJCgwIABfSAbQn+Fg0KAgYKEiJCgwIB/gyIbQgBSBEADQCAFQbABaiAJIBt6p0EDdiAEaiAMcUFQbGoiCkEwaxDAAw0FIBtCAX0gG4MiG0IAUg0ACwsgHSAdQgGGg0KAgYKEiJCgwIB/g0IAUg0CIA1BCGoiDSAEaiAMcSEEDAALAAsgC0UNAwNAIBpQBEADQCADIgJBCGohAyABQcACayEBIAIpAwBCgIGChIiQoMCAf4MiGkKAgYKEiJCgwIB/UQ0ACyAaQoCBgoSIkKDAgH+FIRoLIAEgGnqnQQN2QVhsakEoaxCIBCAaQgF9IBqDIRogC0EBayILDQALDAMLQcynxgAQnRUACyAFQdABaiAREIcDIAUtANABQQNHBEBBoKvJAEEoQeynxgAQrxQACwJAAkAgBS0A2AFBD2sOAgEBAAtBoKvJAEEoQdynxgAQrxQACyAKQQxrKAIAIQ0CQAJAIApBCGsiCigCACIEIAUoAtwBIAUoAuQBIgZrSwRAIBQgBiAEQQRBFBCzESAFKALkASEGDAELIARFDQELIARBFGwiEUUNACAFKALgASAGQRRsaiANIBH8CgAACyAFIAQgBmo2AuQBIApBADYCACAFQaACaiAFQdABahCHAyAFKAJEIAJGBEAgBUHEAGoQqhILIAUoAkggAkHQAGxqIAVBoAJqQdAA/AoAACAFIAJBAWoiAjYCTCAFQdABahCvBCAFQbABahCIBCALDQALCwJAIA8NACAHRQ0AIA5BBGsoAgAiAkF4cSEBIAFBBEEIIAJBA3EiAhsgB2pJDQEgAkEARyABIAdBJ2pLcQ0CIA4QvAULIAAgBSgCTDYCCCAAIAUpAkQ3AgACQAJAIAUoAiQiA0UNACAFKAIsIgQEQCAFKAIgIgFBCGohAiABKQMAQn+FQoCBgoSIkKDAgH+DIRoDQCAaUARAA0AgAiIAQQhqIQIgAUGAA2shASAAKQMAQoCBgoSIkKDAgH+DIhpCgIGChIiQoMCAf1ENAAsgGkKAgYKEiJCgwIB/hSEaCyABIBp6p0EDdkFQbGoiAEEwaxCIBCAAQRBrEKkMIBpCAX0gGoMhGiAEQQFrIgQNAAsLIANBMGwiASADakE5aiIARQ0AIAUoAiAgAWsiAkE0aygCACIDQXhxIQEgAUEEQQggA0EDcSIDGyAAakkNAiADQQBHIAEgAEEnaktxDQEgAkEwaxC8BQsgBUHwAmokAA8LDAELQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC/AcAQp/IwBBIGsiByQAAkACQAJAAkAgASgCCCIEIAEoAgQiCk8NAANAIARBAmohCSAEQQFqIQggASgCACIGIARqIQtBACEDAkADQCADIARqIQUgAyALai0AACIMLQCurkgNASABIAVBAWo2AgggCUEBaiEJIAhBAWohCCADQQFqIgMgBGoiBSAKSQ0ACyAFIQQMAgsCQCAMQdwARwRAIAxBIkcEQCABIAVBAWoiATYCCCAHQRA2AhQCQAJAIAVBA0kEQEEBIQNBACEEDAELIAFBA3EgAUF8cSEFQQEhA0EAIQQDQEEAQQFBAkEDIARBBGogBi0AAEEKRiIBGyAGQQFqLQAAQQpGIgkbIAZBAmotAABBCkYiChsgBkEDai0AAEEKRiILGyEEIAEgA2ogCWogCmogC2ohAyAGQQRqIQYgBUEEayIFDQALRQ0BCyAIQQNxIQUDQEEAIARBAWogBi0AAEEKRiIBGyEEIAZBAWohBiABIANqIQMgBUEBayIFDQALCyAHQRRqIAMgBBDHEyEBIABBAjYCACAAIAE2AgQMBQsCQCACKAIIIgMEQCAEIAVNDQEgBCAFIApB0LDIABCHDgALIAQgBUsNAiAAQQA2AgAgACAFIARrNgIIIAAgCzYCBCABIAVBAWo2AggMBQsCQAJAIAUgBGsiBiACKAIAIANrSwRAIAIgAyAGQQFBARCzESACKAIEIQkgAigCCCEDDAELIAIoAgQhCSAEIAVGDQELIAZFDQAgAyAJaiALIAb8CgAACyAAIAk2AgQgAEEBNgIAIAEgBUEBajYCCCACIAMgBmoiATYCCCAAIAE2AggMBAsCQAJAAn8CQAJ/AkACQAJAIAQgBU0EQAJAAkAgBSAEayIMIAIoAgAgAigCCCIDa0sEQCACIAMgDEEBQQEQsxEgAigCCCEDDAELIAQgBUYNAQsgDEUNACACKAIEIANqIAsgDPwKAAALIAEgBUEBaiILNgIIIAIgAyAMaiIDNgIIIAogC00EQCAHQQQ2AhQCQAJAAkAgBSAKSQRAQQEhAyAFQQNPDQFBACEEDAILQQAgCyAKQZizyAAQhw4ACyALQQNxIAVBAWpBfHEhBUEAIQQDQEEAQQFBAkEDIARBBGogBi0AAEEKRiICGyAGQQFqLQAAQQpGIgkbIAZBAmotAABBCkYiChsgBkEDai0AAEEKRiILGyEEIAIgA2ogCWogCmogC2ohAyAGQQRqIQYgBUEEayIFDQALRQ0BCyAIQQNxIQUDQEEAIARBAWogBi0AAEEKRiIBGyEEIAZBAWohBiABIANqIQMgBUEBayIFDQALCyAHQRRqIAMgBBDHEwwFCyABIAVBAmoiBDYCCAJAAkACQAJAAkACQAJAAkACQAJAIAYgC2otAABBImsOVAEAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAAAABQAAAAAAAAAGAAAABwAICQALIAdBDDYCFAJAAkAgBUEBakEDSQRAQQEhA0EAIQQMAQsgBEEDcSAFQQJqQXxxIQVBASEDQQAhBANAQQBBAUECQQMgBEEEaiAGLQAAQQpGIgIbIAZBAWotAABBCkYiCBsgBkECai0AAEEKRiIKGyAGQQNqLQAAQQpGIgsbIQQgAiADaiAIaiAKaiALaiEDIAZBBGohBiAFQQRrIgUNAAtFDQELIAlBA3EhBQNAQQAgBEEBaiAGLQAAQQpGIgEbIQQgBkEBaiEGIAEgA2ohAyAFQQFrIgUNAAsLIAdBFGogAyAEEMcTDA0LIAIoAgAgA0YEQCACEL4SCyACIANBAWo2AgggAigCBCADakEiOgAADBALIAIoAgAgA0YEQCACEL4SCyACIANBAWo2AgggAigCBCADakHcADoAAAwPCyACKAIAIANGBEAgAhC+EgsgAiADQQFqNgIIIAIoAgQgA2pBLzoAAAwOCyACKAIAIANGBEAgAhC+EgsgAiADQQFqNgIIIAIoAgQgA2pBCDoAAAwNCyACKAIAIANGBEAgAhC+EgsgAiADQQFqNgIIIAIoAgQgA2pBDDoAAAwMCyACKAIAIANGBEAgAhC+EgsgAiADQQFqNgIIIAIoAgQgA2pBCjoAAAwLCyACKAIAIANGBEAgAhC+EgsgAiADQQFqNgIIIAIoAgQgA2pBDToAAAwKCyACKAIAIANGBEAgAhC+EgsgAiADQQFqNgIIIAIoAgQgA2pBCToAAAwJCyAHQQxqIAEQ2QYgBy8BDA0BAkACQCAHLwEOIgVBgPgDcSIEQYCwA0cEQCAEQYC4A0cNASAHQRQ2AhQCQAJAAkAgASgCCCICIAEoAgQiBE0EQCACRQRAQQEhBEEAIQUMBAsgASgCACEDIAJBA3EhCCACQQRPDQFBASEEQQAhBQwCC0EAIAIgBEGYs8gAEIcOAAsgAkF8cSEJQQEhBEEAIQUDQEEAQQFBAkEDIAVBBGogAy0AAEEKRiIBGyADQQFqLQAAQQpGIgIbIANBAmotAABBCkYiBhsgA0EDai0AAEEKRiIKGyEFIAEgBGogAmogBmogCmohBCADQQRqIQMgCUEEayIJDQALIAhFDQELA0BBACAFQQFqIAMtAABBCkYiARshBSADQQFqIQMgASAEaiEEIAhBAWsiCA0ACwsgB0EUaiAEIAUQxxMMBwsgASgCCCIGIAEoAgQiCUkNASAHQQQ2AhQCQAJAAkAgBiAJTQRAIAZFBEBBASEEQQAhBQwECyABKAIAIQMgBkEDcSEJIAZBBE8NAUEBIQRBACEFDAILQQAgBiAJQZizyAAQhw4ACyAGQXxxIQhBASEEQQAhBQNAQQBBAUECQQMgBUEEaiADLQAAQQpGIgEbIANBAWotAABBCkYiAhsgA0ECai0AAEEKRiIGGyADQQNqLQAAQQpGIgobIQUgASAEaiACaiAGaiAKaiEEIANBBGohAyAIQQRrIggNAAsgCUUNAQsDQEEAIAVBAWogAy0AAEEKRiIBGyEFIANBAWohAyABIARqIQQgCUEBayIJDQALCyAHQRRqIAQgBRDHEwwGCyAFQYCwv39zQYCQvH9JDQggB0EANgIUIAVBgAFJDQMMBgsgASAGQQFqIgg2AggCQCAGIAEoAgAiBGotAABB3ABGBEAgCCAJSQ0BIAdBBDYCFAJAAkACQCAIIAlNBEAgCEEDcSEBIAZBA08NAUEBIQNBACEFDAILDBMLIAhBfHEhCEEBIQNBACEFA0BBAEEBQQJBAyAFQQRqIAQtAABBCkYiAhsgBEEBai0AAEEKRiIGGyAEQQJqLQAAQQpGIgkbIARBA2otAABBCkYiChshBSACIANqIAZqIAlqIApqIQMgBEEEaiEEIAhBBGsiCA0ACyABRQ0BCwNAQQAgBUEBaiAELQAAQQpGIgIbIQUgBEEBaiEEIAIgA2ohAyABQQFrIgENAAsLIAdBFGogAyAFEMcTDAYLIAdBFzYCFAJAAkACQCAIIAlNBEAgCEEDcSEBIAZBA08NAUEBIQNBACEFDAILDBILIAhBfHEhCEEBIQNBACEFA0BBAEEBQQJBAyAFQQRqIAQtAABBCkYiAhsgBEEBai0AAEEKRiIGGyAEQQJqLQAAQQpGIgkbIARBA2otAABBCkYiChshBSACIANqIAZqIAlqIApqIQMgBEEEaiEEIAhBBGsiCA0ACyABRQ0BCwNAQQAgBUEBaiAELQAAQQpGIgIbIQUgBEEBaiEEIAIgA2ohAyABQQFrIgENAAsLIAdBFGogAyAFEMcTDAULIAEgBkECajYCCCAEIAhqLQAAQfUARw0DIAdBFGogARDZBiAHLwEUBEAgBygCGAwFCyAHLwEWIgRBgEBrQf//A3FB//cDTQRAIAdBFDYCFCABIAdBFGoQoQ4MBQsgBEGAyABqQf//A3EgBUGA0ABqQf//A3FBCnRqQYCABGoiBUGAsANzQYCAxABrQYCQvH9PBEAgB0EANgIUDAYLIAdBDzYCFCABIAdBFGoQoQ4MBAsgBCAFIApB4LDIABCHDgALIAcoAhAMAgsgByAFOgAUQQEMAwsgB0EXNgIUIAEgB0EUahChDgshAyAAQQI2AgAgACADNgIEDAcLIAVBP3FBgH9yIQQgBUEGdiEGIAVBgBBJBEAgByAEOgAVIAcgBkHAAXI6ABRBAgwBCyAFQQx2IQggBkE/cUGAf3IhBiAFQf//A00EQCAHIAQ6ABYgByAGOgAVIAcgCEHgAXI6ABRBAwwBCyAHIAQ6ABcgByAGOgAWIAcgCEE/cUGAf3I6ABUgByAFQRJ2QXByOgAUQQQLIQQgAigCACADayAESQRAIAIgAyAEQQFBARCzESACKAIIIQMLIAQEQCACKAIEIANqIAdBFGogBPwKAAALIAIgAyAEajYCCCABKAIEIQogASgCCCEEDAELQeCxyAAQnRUACyAEIApJDQEMAgsLIAQgBSAKQcCwyAAQhw4ACyAEIApHDQEgB0EENgIUAkAgBEUEQEEBIQRBACEFDAELIAEoAgAhAyAEQQNxIQgCQCAEQQRJBEBBASEEQQAhBQwBCyAEQXxxIQlBASEEQQAhBQNAQQBBAUECQQMgBUEEaiADLQAAQQpGIgEbIANBAWotAABBCkYiAhsgA0ECai0AAEEKRiIGGyADQQNqLQAAQQpGIgobIQUgASAEaiACaiAGaiAKaiEEIANBBGohAyAJQQRrIgkNAAsgCEUNAQsDQEEAIAVBAWogAy0AAEEKRiIBGyEFIANBAWohAyABIARqIQQgCEEBayIIDQALCyAHQRRqIAQgBRDHEyEBIABBAjYCACAAIAE2AgQLIAdBIGokAA8LIAQgCkGwsMgAEIUTAAtBACAIIAlBmLPIABCHDgALiCMCCn8GfiMAQZACayIEJAAgBEHoAGogARCfCiAEIAIpAxg3A2AgBCACKQMQNwNYIAQgAikDCDcDUCAEIAIpAwAiDjcDSAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAIgUCfgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEOIA6nIgBBDWsgAEEMTRtBAWsODgALAQIMDQMEBQYHCBsJCgsgBSAELQBMOgARIAVBCDoAECAFQX42AgAMKwsgBSAEKQNQNwMgIAVCATcDGCAFQQE6ABAgBUF+NgIADCoLIARBADYCyAEgBEKAgICAEDcCwAEgBEGIAWoiACACQQRqEPgJIARBwAFqIABBJBDwEhpBAA0ZIAQgBCgCyAEiADYCgAEgBCAEKQLAASIONwN4IAQgADYAkwEgBCAONwCLASAFQQQ6ABAgBSAEKQCIATcAESAFIAQpAI8BNwAYIAVBfjYCAAwpC0GI+8gAQQ9BqI3JABCvFAALIAQoAmhBAWsODAoLDA0OFQ8QERITFAkLIAVBDzoAECAFQX42AgAgBCACKQAENwCLASAFIAQpAIgBNwARIAQgAigADDYAkwEgBSAEKQCPATcAGAwmCyAFQQs6ABAgBUF+NgIAIAUgAikAGCIONwAoIAQgAikACDcAjwEgBSAEKQCIATcAESAEIAIpABA3AJcBIAUgBCkAkAE3ABkgBCAONwCfASAFIAQpAJgBNwAhDCULIAUgBCkDUDcDICAFQgE3AxggBUEBOgAQIAVBfjYCAAwkCyAFQQc6ABAgBUF+NgIAIAQgAikABDcAiwEgBSAEKQCIATcAESAEIAIoAAw2AJMBIAUgBCkAjwE3ABgMIwsgAigCHCEHIAIoAhghACAEKAJoIQMgAigCFCIGQX9HBEAgACEIDCILIAdFBEBBASEIQQAhB0EAIQYMIgsgBxCQASIIRQ0mIAcEQCAIIAAgB/wKAAALIAchBgwhCyAFQQQ6ABAgBUF+NgIAIAQgAikABDcAiwEgBSAEKQCIATcAESAEIAIoAAw2AJMBIAUgBCkAjwE3ABgMIQsgAkEEaiEJIAQoAmhBBkcEQCAFQQQ6ABAgBUF+NgIAIAQgCSkAADcAiwEgBSAEKQCIATcAESAEIAkoAAg2AJMBIAUgBCkAjwE3ABgMIQsgBCgCcCECIAQoAmwhBiABKAIQIgcoAgAhACAHIABBAWo2AgAgAEEASA0eIAQgAjYCyAEgBCAGNgLEASAEIAc2AsABIARBIGogBEHAAWoQ6gogBCgCJCICQQBIDRsCQCACRQRAQQEhAAwBCyAEKAIgIQYgAhCQASIARQRAQQEQpxQMIAsgAkUNACAAIAYgAvwKAAALIARBGGogBEHAAWoQrQ0gBCgCHCEGIAQoAhghCCADKAJAIgMoAghBf0cEQCAIDRsgAygCDCEIIAMoAhAhBgwbCyAIDRpBfiEGDB0LIAQoAlQhCSAEKAJMIQsgBCgCUCEIIAQoAmhBBkcEQCAJQfK4nA5PDRtBACEAQQghAiAJQcgAbCIGBEAgCSEAIAYQkAEiAkUNEgsgBEEANgKIAiAEIAI2AoQCIAQgADYCgAIgBCAIIAlBBXRqNgKUASAEIAs2ApABIAQgCDYCjAEgBCAINgKIASAEIAGtIAOtQiCGhDcCmAEgBEEANgJ8IAQgBEGIAmo2AnggBCACNgKAASMAQfAAayIAJAAgBEH4AGoiBygCBCEGIAcoAgAhDCAEQYgBaiIDKAIIIQggAygCACEJIAMoAgQiAiADKAIMIgpHBEAgAygCFCELIAMoAhAhDSAHKAIIIAZByABsaiEDA0AgACACKQMYNwNoIAAgAikDEDcDYCAAIAIpAwg3A1ggACACKQMANwNQIABBCGoiByANIABB0ABqIAsQoQEgAyAHQcgA/AoAACADQcgAaiEDIAZBAWohBiAKIAJBIGoiAkcNAAsLAkACQAJAIAgEQCAJQQRrKAIAIgNBeHEhAiACIAhBBXQiB0EEQQggA0EDcSIDG3JJDQEgA0EARyACIAdBJ2pLcQ0CIAkQvAULIAwgBjYCACAAQfAAaiQADAILQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACyAEIAQoAogCIgA2AvgBIAQgADYAywEgBCAEKQKAAjcAwwEgBUEKOgAQIAUgBCkAwAE3ABEgBSAEKQDHATcAGCAFQX42AgAMIAsgBCgCcCECIAQoAmwhBiABKAIQIgooAgAhACAKIABBAWo2AgAgAEEASA0dIAQgAjYCyAEgBCAGNgLEASAEIAo2AsABAkAgCUUEQEEEIQwMAQsgCUEMbBCQASIMRQ0SIAlBBXQhBiAMIQAgCCECA0AgBCACKQMYNwOgASAEIAIpAxA3A5gBIAQgAikDCDcDkAEgBCACKQMAIg43A4gBAkACQEEOIA6nIg1BDWsgDUEMTRsOAwEAAQALIARBiAFqEIYEDBsLIAQoAowBIg1Bf0YNGiAAQQRqIAQpA5ABNwIAIAAgDTYCACAAQQxqIQAgB0EBaiEHIAJBIGohAiAGQSBrIgYNAAsLIAsEQCAIQQRrKAIAIgJBeHEhACAAIAtBBXQiBkEEQQggAkEDcSICG3JJDSIgAkEARyAAIAZBJ2pLcQ0jIAgQvAULIARBMGogBEHAAWoQ6gogBCgCNCICQQBIDRoCQCACRQRAQQEhCAwBCyAEKAIwIQAgAhCQASIIRQ0kIAJFDQAgCCAAIAL8CgAACyAEQShqIARBwAFqEK0NIAQoAiwhACAEKAIoIQYgAygCQCIDKAIIQX9HBEAgBg0XIAMoAgwhBiADKAIQIQAMFwsgBg0WQX4hAAwXCyAEKAJMIQIgBCgCUCEAIAQgBCgCVCIDNgLUASAEIAA2AtABIARCADcCyAEgBCADNgLEASAEIAA2AsABIARBiAFqIARBwAFqEKQIIAQoApgBQX9GDRQgBCAEKQOwASIONwPoASAEIAQpA6gBIg83A+ABIAQgBCkDoAEiEDcD2AEgBCAEKQOYASIRNwPQASAEIAQpA5ABIhI3A8gBIAQgBCkDiAEiEzcDwAEgBCAONwC3ASAEIA83AK8BIAQgEDcApwEgBCARNwCfASAEIBI3AJcBIAQgEzcAjwEgBUEMOgAQIAUgBCkAiAE3ABEgBSAEKQCQATcAGSAFIAQpAJgBNwAhIAUgBCkAoAE3ACkgBSAEKQCoATcAMSAFIAQpALABNwA5IAUgDjcAQCAFQX42AgAgAkUNHiAAQQRrKAIAIgZBeHEhAyADQQRBCCAGQQNxIgYbIAJqSQ0gIAZBAEcgAyACQSdqS3ENISAAELwFDB4LIAVBfjYCFCAFQQQ6ABAgBUF+NgIADB0LIAVBADYCFCAFQQA6ABAgBUF+NgIADBwLIAVCADcDGCAFQQE6ABAgBUF+NgIADBsLIAVBfzYCGCAFQQs6ABAgBUF+NgIADBoLIAVBfzYCGCAFQQs6ABAgBUF+NgIADBkLIAVBfjYCACAFQYgEOwEQDBgLQcyLyQBBpwFBuI3JABC/EwALIAVBfjYCACAFQQ47ARAMFgsgBUF/NgIoIAVBDDoAECAFQX42AgAMFQsgBUEANgIUIAVBDzoAECAFQX42AgAMFAsgBUF+NgIUIAVBBzoAECAFQX42AgAMEwtBsIzJAEGrAUHIjckAEL8TAAsgBCgCcCECIAQoAmwhBiABKAIQIgkoAgAhACAJIABBAWo2AgAgAEEASA0PIAQgAjYCkAEgBCAGNgKMASAEIAk2AogBIARBQGsgBEGIAWoQ6goCfwJAIAQoAkQiAkEATgR/IAJFBEBBASEIQQAMAwsgBCgCQCEAIAIQkAEiCA0BQQEFQQALEKcUAAsgAgRAIAggACAC/AoAAAsgAgshACAEQThqIARBiAFqEK0NIAQoAjwhByAEKAI4IQYgAygCQCIDKAIIQX9HBEAgBg0GIAMoAgwhBiADKAIQIQcMBgsgBg0FQX4hB0IADAYLIAQoAmhBAnRBhOLJAGooAgAhA0EUEJABIgBFDQMgAEKBgICAEDcCACAAIAIpAgw3AgggACACKAIUNgIQIAVBxOnIADYCJCAFIAA2AiAgBSADNgIUIAVBEjoAECAFQX42AgAMEAtB8LXJAEE3IARBjwJqQfiSyQBBqLbJABDaEgALQQgQpxQAC0EEEKcUAAtBuPDJAEEBOgAAAAsCQCAHQQBOBH8gB0UEQEEAIQdCAQwDCyAHEJABIgMNAUEBBUEACxCnFAALIAcEQCADIAYgB/wKAAALIAOtIAetQiCGhAs3AzAgBSAHNgIsIAUgAjYCKCAFIAg2AiQgBSAANgIgIAVBfjYCFCAFQQU6ABAgBUF+NgIAIAkgCSgCACIAQQFrNgIAIABBAUcNCiAJEDAMCgsgBCAEKAKIATYCwAFBiLDJAEErIARBwAFqQdyJyQBBmI3JABDaEgALIABBAEgNAwJAIABFBEBCASEODAELIAAQkAEiAwRAIAAEQCADIAYgAPwKAAALIAOtIQ4MAQsMDQsgDiAArUIghoQhDgsgBSAHNgI0IAUgDDYCMCAFIAk2AiwgBSAONwIkIAUgADYCICAFIAI2AhwgBSAINgIYIAUgAjYCFCAFQQY6ABAgBUF+NgIAIAogCigCACIAQQFrNgIAIABBAUcNByAKEDAMBwtB6P3IABCdFQALIAZBAEgNACAGRQRAQgEhDgwCCyAGEJABIgNFDQkgBgRAIAMgCCAG/AoAAAsgA60hDgwBCxCeFQALIA4gBq1CIIaEIQ4LIAVBBToAECAFIA43AzAgBSAGNgIsIAUgAjYCKCAFIAA2AiQgBSACNgIgIAVBfjYCACAEIAkpAAA3AIsBIAUgBCkAiAE3ABEgBCAJKAAINgCTASAFIAQpAI8BNwAYIAcgBygCACIAQQFrNgIAIABBAUcNAiAHEDAMAgsACyADQQJ0QbjiyQBqKAIAIQNBIBCQASIARQ0BIAAgBzYCECAAIAg2AgwgACAGNgIIIABCgYCAgBA3AgAgACACQQhqIgIpAgA3AhQgACACKAIINgIcIAVBiOrIADYCJCAFIAA2AiAgBSADNgIUIAVBEjoAECAFQX42AgALAkACQAJAQQ4gBCgCSCIAQQ1rIABBDE0bIgBBDk0EQEEBIAB0QeUocQ0DIABBDUYNASAAQQ5GDQILIARByABqEIYEDAILIARByABqQQRyEMASDAELIARByABqEMASCyAEQfgAaiABEO0GAkAgBCgCeEUNACAEIAQpAoABNwNQIAQgBCkCeDcDSCAEIAUpAxA3A4gBIAQgBSkDGDcDkAEgBCAFKQMgNwOYASAEIAUpAyg3A6ABIAQgBSkDMDcDqAEgBCAFKQM4NwOwASAEIAUpA0A3A7gBIAUoAgQhAiAFKAIAIQAgBEEQaiAEQcgAahDKDSAEKAIUIQMgBCgCECEGIARBCGogARDWBCAEKAIIIQEgBEHAAWogBiADEMwBIAQgATYCzAEgBCgCwAEhAyAEKALEASEGIAQpAsgBIQ4gAEEASgRAIAJBBGsoAgAiB0F4cSEBIAFBBEEIIAdBA3EiBxsgAGpJDQMgB0EARyABIABBJ2pLcQ0EIAIQvAULIAUgDjcDCCAFIAY2AgQgBSADNgIAIAVBEGoiACAEKQOIATcDACAAIAQpA5ABNwMIIAAgBCkDmAE3AxAgACAEKQOgATcDGCAAIAQpA6gBNwMgIAAgBCkDsAE3AyggACAEKQO4ATcDMCAEKAJIIgEoAgAhACABIABBAWs2AgAgAEEBRw0AIAQoAkggBCgCTBC2EAsgBEGQAmokAA8LQbjwyQBBAToAAAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0EBEKcUAAuRHgITfwJ+IwBB4ANrIgYkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAigCBCIKIAIoAgAiCygCHCIHSQRAIAsoAhggCkHwAGxqIgcoAlwhFyAHKAJYIRAgCyALKAIAIgdBAWo2AgAgB0EASA0SIAZBOGogCyAKEOEJIAYoAjwiFCAGKAI4IgwoAhwiB08NAyAMKAIYIBRB8ABsaiIHKAJoIQggBygCZCEKIAwgDCgCACIHQQFqNgIAIAdBAEgNEiAGIAg2AsgBIAYgCjYCxAEgBiAMNgLAASAGQUBrIAZBwAFqENcCIAwgDCgCACIHQQFrNgIAIAdBAUYEQCAMEDALIAIoAgAiCiACKAIEIgcQ4A0NASAGQTBqIAogBxDhCSAGQcABaiAGKAIwIg0gBigCNBDnCiAGQShqIAogBxDhCSAGQcwAaiAGKAIoIgkgBigCLBDoCiAJIAkoAgAiB0EBazYCACAGKALIASEIIAYoAsABIRUgBigCxAEhCiAHQQFGBEAgCRAwCyANIA0oAgAiB0EBazYCACAHQQFHDQIgDRAwDAILIAogB0Hk/sgAEIUTDBELIAZBwAFqIAogBxDoCiAGQcwAaiAKIAcQ5wogBigCyAEhCCAGKALAASEVIAYoAsQBIQoLIAUgASgCCE8NASABKAIEIAVByAJsaiIJKQMAIhlCflENBiAZQn9SDQIgBigCVCEOIAYoAlAhDSAGKAJMIRICfwJAAkACQEEKIAkoAggiB0EbayAHQRpNG0ECaw4DAQACAAtBiLHGAEHvAEHAscYAEL8TAAsgCUEYaiAJQRBqIAkoAhBBf0YbDAELIAlBGGoLIRggCiAIQRRsaiEWAkAgCEUEQCAKIQkMAQsgGEEgaiEPIAohBwNAIAdBEGooAgAhESAHQQRqKAIAIQkgBkEQaiAPAn8gBygCAEEBRgRAIAYgB0EIaikCADcCyAEgBiAJNgLEASAGIBFBCGo2AsABIAZBGGogBkHAAWoQ6gkgBigCHCETIAYoAhgMAQsgESgCECIIIAlNDQYgESgCDCAJQeQAbGoiCCgCAARAIAgoAgQiCCARKAJwTw0IIBEoAmwgCEEEdGoiCCgCCCETIAgoAgQMAQsgBkEgaiARQQhqIAkQ0BAgBigCJCETIAYoAiALIBMQmQ0gBigCECITQQFGBEAgBigCFCIJIBgoAjgiCE8NCAsgESARKAIAIghBAWs2AgAgCEEBRgRAIBEQMAsgB0EUaiIHIQkgE0EBcQ0BIAcgFkcNAAsLIBYgCWtBFG4hCCAJIBZHBEAgCUEQaiEHA0AgBygCACIJKAIAIQ8gCSAPQQFrNgIAIA9BAUYEQCAHKAIAEDALIAdBFGohByAIQQFrIggNAAsLIBUEQCAKQQRrKAIAIgdBeHEhCSAJIBVBFGwiCEEEQQggB0EDcSIHG2pJDREgB0EARyAJIAhBJ2pLcQ0SIAoQvAULIBNBAXFFBEAgAEF/NgIwDAsLIAYCfkHQ8MkALQAABEBByPDJACkDACEZQcDwyQApAwAMAQsgBkHAAWoQuxFB0PDJAEEBOgAAQcjwyQAgBikDyAEiGTcDACAGKQPAAQsiGjcDkAFBwPDJACAaQgF8NwMAIAZBADYCqAEgBkKAgICAgAE3A6ABIAYgGTcDmAEgBkGQqckAKQMANwKsASAGQZipyQApAwA3ArQBIA4EQCAGQYgDaiEPIAZB0AFqIQkgDSEHIA4hCANAAkAgBxC1EA0AIAZBwAFqIgogBxCADiAGQRU2AuABIAZBAToA2AEgBkH/AToA0AEgBkGAA2ogBkGQAWogCiAJEI4EIAZBqAJqIgogD0HYAPwKAAAgBi0AqAJB/gFGDQAgChDfEAsgB0EUaiEHIAhBAWsiCA0ACwsgBiAGKQO4ATcDgAEgBiAGKQOwATcDeCAGIAYpA6gBNwNwIAYgBikDoAE3A2ggBiAGKQOYATcDYCAGIAYpA5ABNwNYIAZBCjoAwAEgBkGAA2ogASAEIAwgFCAGQcABahDpBiAGKAKAAyEJIAYoArADIgRBf0cEQCAAIAYoAqwDNgIsIAAgBikCpAM3AiQgACAGKQKcAzcCHCAAIAYpApQDNwIUIAAgBikCjAM3AgwgACAGKQKEAzcCBCAAIAYpArQDNwI0IAAgBigCvAM2AjwgACAENgIwIAAgCTYCACAGQdgAahCKDAwLCyALIAsoAgAiBEEBajYCACAEQQBIDQ9BgOzJACgCACIEQf////8HTw0HQYDsyQAgBEEBajYCAEGI7MkAKAIAQX9GBEBBgOzJACAENgIADAkLIAZBwAFqQYjsyQAQkANBgOzJAEGA7MkAKAIAQQFrNgIAIAYgBikCxAE3A5ABIAYgBikCzAE3A5gBIAYgBikC1AE3A6ABIAYgBigC3AE2AqgBIAYoAsABIgdBfUsNCCAGIAYoAqgBNgLEAiAGIAYpA6ABNwK8AiAGIAYpA5gBNwK0AiAGIAYpA5ABNwKsAgwJCyAUIAdB5P7IABCFEwALQcygxgAQnRUAC0HQscYAQesAQYiyxgAQvxMACyAJIAhB5PbIABCFEwALQaS4xAAQnRUACyAJIAhB5ITHABCFEwALQZCzxgAQnRUACxDTEwALIAZBqAJqQQRyEJYRIAZBADYCuAJBFiEHCyAGIAc2AqgCIAYgBikDsAI3A8gBIAYgBikDuAI3A9ABIAYgBikDwAI3A9gBIAYgBikDWDcD4AEgBiAGKQNgNwPoASAGIAYpA2g3A/ABIAYgBikDcDcD+AEgBiAGKQN4NwOAAiAGIAYpA4ABNwOIAiAGIAYpA6gCNwPAASAGQYADaiIEIAZBwAFqQdAA/AoAACAGQcQBaiAEQdAA/AoAACABKAIIIg8gASgCAEYEQCABEK8SCyABKAIEIA9ByAJsaiIHQQA2AhAgB0EfNgIIIAdCfzcDACAHQRRqIAZBwAFqIgRB1AD8CgAAIAdCfzcDwAIgByAXNgKAAiAHIBA2AvwBIAcgCzYC+AEgB0KAgICAcDcD0AEgB0KAgICAEDcDyAEgB0F/NgK4ASAHQQo6AGggASAPQQFqNgIIIAYgBigCSDYC4AEgBiAGKQJANwLYASAGQbyyxgA2AuwBIAZCgYCAgBg3AuQBIAZBAjYCwAEgBkGoAmogASAJIA8gBBCiDQJAIAYoAqgCIgdBfkcEQAwBCyAGQQM2AsABIAZBqAJqIAEgDyAFIAZBwAFqEKINIAYoAqgCIgdBfkcEQAwBCyAGIBc2AsgBIAYgEDYCxAEgBiALNgLAASAGQagCaiAGQcABaiACELUGIAYoAqwCIQIgBigCqAIhCgJAIAYoArACIgRFDQAgAiAEQQN0aiEHIAIhCANAIAgoAgAhECAGIAhBBGooAgAiBTYClAEgBiAQNgKQASAGQQhqIBAgBRDODgJAAkACQAJAAkACQCAGKAIIIgsgBigCDBD9DCIEaEEBaw4EAgIDAAELIAYgBDoAjwEgBiAGQY8Baq1CgICAgLAhhDcDwAFBp5nAACAGQcABakGgs8YAEL8TAAsgBkHAAWogASAGQZABaiADIAkgDxDPASAGKALwAUF/Rg0CDAMLIAZBwAFqIAEgECAFIAkgDxDZAyAGKALwAUF/Rg0BDAILIAZBwAFqIAEgBkGQAWogAyAJIA8QogEgBigC8AFBf0YNAAwBCyALIAsoAgAiBEEBazYCACAEQQFGBEAgCxAwCyAQIBAoAgAiBEEBazYCACAEQQFGBEAgEBAwCyAHIAhBCGoiCEcNAQwCCwsgACAGKQP4ATcDOCAAIAYpA/ABNwMwIAAgBikD6AE3AyggACAGKQPgATcDICAAIAYpA9gBNwMYIAAgBikD0AE3AxAgACAGKQPIATcDCCAAIAYpA8ABNwMAIAsgCygCACIAQQFrNgIAIABBAUYEQCALEDALIAhBCGohCCAQIBAoAgAiAEEBazYCACAAQQFGBEAgEBAwCyAHIAhHBEAgByAIa0EDdiEHA0AgCCgCACIAKAIAIQEgACABQQFrNgIAIAFBAUYEQCAIKAIAEDALIAhBCGohCCAHQQFrIgcNAAsLIAoEQCACIApBA3QQ2RILIA4EQCANQRBqIQcDQCAHKAIAIgAoAgAhASAAIAFBAWs2AgAgAUEBRgRAIAcoAgAQMAsgB0EUaiEHIA5BAWsiDg0ACwsgEgRAIA0gEkEUbBDZEgsgDCAMKAIAIgBBAWs2AgAgAEEBRg0FDAYLIAoEQCACIApBA3QQ2RILIABBfzYCMCAOBEAgDUEQaiEHA0AgBygCACIAKAIAIQEgACABQQFrNgIAIAFBAUYEQCAHKAIAEDALIAdBFGohByAOQQFrIg4NAAsLIBIEQCANIBJBFGwQ2RILIAwgDCgCACIAQQFrNgIAIABBAUcNBQwECyAAIAYpArACNwIIIAAgBikCuAI3AhAgBigCrAIhASAAQYmAgIB4NgIwIAAgATYCBCAAIAc2AgAgDgRAIA1BEGohBwNAIAcoAgAiACgCACEBIAAgAUEBazYCACABQQFGBEAgBygCABAwCyAHQRRqIQcgDkEBayIODQALCyASRQ0CIA1BBGsoAgAiAEF4cSECAkAgAiASQRRsIgFBBEEIIABBA3EiABtqSQ0HIABFDQIgAiABQSdqSw0ADAILDAcLIA4EQCANQRBqIQcDQCAHKAIAIgAoAgAhASAAIAFBAWs2AgAgAUEBRgRAIAcoAgAQMAsgB0EUaiEHIA5BAWsiDg0ACwsgEgRAIA1BBGsoAgAiAEF4cSECIAIgEkEUbCIBQQRBCCAAQQNxIgAbakkNBiAAQQBHIAIgAUEnaktxDQcgDRC8BQsgBkFAaxClBCAGKAJAIgFFDQEgBigCRCINQQRrKAIAIgBBeHEhAiACIAFByAFsIgFBBEEIIABBA3EiABtqSQ0FIABFDQAgAiABQSdqTQ0ADAYLIA0QvAULIAwgDCgCACIAQQFrNgIAIABBAUYEQCAMEDALIAsgCygCACIAQQFrNgIAIAshDCAAQQFHDQELIAwQMAsgBkHgA2okAA8LAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAAL/h8CB38CfiMAQRBrIgckAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AACICQQRrDi0ICQoLDA0ODxAREhMUFRYAFxgZAQIDBAUaLRscHR4fICEiIy0kJSYnKCkGKgctCyABLQABIQMCQCABKAIMIgJFBEBBASEBDAELIAEoAgghBCACEJABIgFFDS4gAkUNACABIAQgAvwKAAALIAAgAjYCDCAAIAE2AgggACACNgIEIAAgAzoAAUETIQIMLAtBASEDIAEoAhwhBSABKAIYIQYgASgCECABKAIUIgQoAgAhAiAEIAJBAWo2AgBBAUYEQCACQQBIDSoMKwtBACEDIAJBAE4NKgwpC0EBIQMgASgCHCEFIAEoAhghBiABKAIQIQggASgCFCIEKAIAIQIgBCACQQFqNgIAAkAgCEEBRgRADAELQQAhAwsgAkEASA0oAkAgASgCDCICRQRAQQEhAQwBCyABKAIIIQggAhCQASIBRQ0sIAJFDQAgASAIIAL8CgAACyAAIAU2AhwgACAGNgIYIAAgBDYCFCAAIAM2AhAgACACNgIMIAAgATYCCCAAIAI2AgRBGCECDCoLQQEhAiABKAIQIQQgASgCDCEFIAEoAgQhBiABKAIIIgMoAgAhASADIAFBAWo2AgACQCAGQQFGBEAMAQtBACECCyABQQBIDScgACAENgIQIAAgBTYCDCAAIAM2AgggACACNgIEQRkhAgwpC0EBIQIgASgCECEEIAEoAgwhBSABKAIEIQYgASgCCCIDKAIAIQEgAyABQQFqNgIAAkAgBkEBRgRADAELQQAhAgsgAUEASA0mIAAgBDYCECAAIAU2AgwgACADNgIIIAAgAjYCBEEaIQIMKAtBASECIAEoAhAhBCABKAIMIQUgASgCBCEGIAEoAggiAygCACEBIAMgAUEBajYCAAJAIAZBAUYEQAwBC0EAIQILIAFBAEgNJSAAIAQ2AhAgACAFNgIMIAAgAzYCCCAAIAI2AgRBGyECDCcLQQEhAiABKAIQIQQgASgCDCEFIAEoAgQhBiABKAIIIgMoAgAhASADIAFBAWo2AgACQCAGQQFGBEAMAQtBACECCyABQQBIDSQgACAENgIQIAAgBTYCDCAAIAM2AgggACACNgIEQS4hAgwmCwJAIAEoAgwiAkUEQEEBIQEMAQsgASgCCCEDIAIQkAEiAUUNJyACRQ0AIAEgAyAC/AoAAAsgACACNgIMIAAgATYCCCAAIAI2AgRBMCECDCULIAEoAhQhBCABKAIQIQUgASgCDCIDKAIAIQIgAyACQQFqNgIAIAJBAEgNIiABKAIEIgIEQCABKAIIIQEgAiACKAIAIgZBAWo2AgAgBkEASA0jCyAAIAQ2AhQgACAFNgIQIAAgAzYCDCAAIAE2AgggACACNgIEQQQhAgwkCyABKAIMIQMgASgCCCEEIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDSEgACADNgIMIAAgBDYCCCAAIAE2AgRBBSECDCMLIAEoAhQhBCABKAIQIQUgASgCDCIDKAIAIQIgAyACQQFqNgIAIAJBAEgNICABKAIEIgIEQCABKAIIIQEgAiACKAIAIgZBAWo2AgAgBkEASA0hCyAAIAQ2AhQgACAFNgIQIAAgAzYCDCAAIAE2AgggACACNgIEQQYhAgwiCyABKAIUIQQgASgCECEFIAEoAgwiAygCACECIAMgAkEBajYCACACQQBIDR8gASgCBCICBEAgASgCCCEBIAIgAigCACIGQQFqNgIAIAZBAEgNIAsgACAENgIUIAAgBTYCECAAIAM2AgwgACABNgIIIAAgAjYCBEEHIQIMIQsgASgCDCEEIAEoAgghBSABKAIEIgIoAgAhAyACIANBAWo2AgAgA0EASA0eIAAgBDYCDCAAIAU2AgggACACNgIEIAAgAS0AAToAAUEIIQIMIAsgASgCDCEDIAEoAgghBCABKAIEIgEoAgAhAiABIAJBAWo2AgAgAkEASA0dIAAgAzYCDCAAIAQ2AgggACABNgIEQQkhAgwfCyABKAIMIQMgASgCCCEEIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDRwgACADNgIMIAAgBDYCCCAAIAE2AgRBCiECDB4LIAEoAgwhBCABKAIIIQUgASgCBCICKAIAIQMgAiADQQFqNgIAIANBAEgNGyAAIAQ2AgwgACAFNgIIIAAgAjYCBCAAIAEtAAE6AAFBCyECDB0LIAEoAgwhAyABKAIIIQQgASgCBCIBKAIAIQIgASACQQFqNgIAIAJBAEgNGiAAIAM2AgwgACAENgIIIAAgATYCBEEMIQIMHAsgASgCDCEDIAEoAgghBCABKAIEIgEoAgAhAiABIAJBAWo2AgAgAkEASA0ZIAAgAzYCDCAAIAQ2AgggACABNgIEQQ0hAgwbCyABKAIMIQMgASgCCCEEIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDRggACADNgIMIAAgBDYCCCAAIAE2AgRBDiECDBoLIAEoAhQhBCABKAIQIQUgASgCDCIDKAIAIQIgAyACQQFqNgIAIAJBAEgNFyABKAIEIgIEQCABKAIIIQEgAiACKAIAIgZBAWo2AgAgBkEASA0YCyAAIAQ2AhQgACAFNgIQIAAgAzYCDCAAIAE2AgggACACNgIEQQ8hAgwZCyABKAIMIQMgASgCCCEEIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDRYgACADNgIMIAAgBDYCCCAAIAE2AgRBECECDBgLIAEpAgQhCSABKQIMIQogASgCFCIBKAIAIQIgASACQQFqNgIAIAcgCjcDCCAHIAk3AwAgAkEASA0VIAAgBykDCDcCDCAAIAcpAwA3AgQgACABNgIUQREhAgwXCyABKAIMIQMgASgCCCEEIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDRQgACADNgIMIAAgBDYCCCAAIAE2AgRBEiECDBYLIAEoAgwhAyABKAIIIQQgASgCBCIBKAIAIQIgASACQQFqNgIAIAJBAEgNEyAAIAM2AgwgACAENgIIIAAgATYCBEEUIQIMFQsgASgCCCEDIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDRIgACADNgIIIAAgATYCBEEVIQIMFAsgASgCCCEDIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDREgACADNgIIIAAgATYCBEEWIQIMEwsgASgCCCEFIAEoAgQiAigCACEDIAIgA0EBajYCACADQQBIDRAgASgCECEGIAEoAgwiAygCACEEIAMgBEEBajYCACAEQQBIDRAgACAGNgIQIAAgAzYCDCAAIAU2AgggACACNgIEIAAgAS0AAToAAUEcIQIMEgsgASgCCCEFIAEoAgQiAigCACEDIAIgA0EBajYCACADQQBIDQ8gASgCECEGIAEoAgwiAygCACEEIAMgBEEBajYCACAEQQBIDQ8gACAGNgIQIAAgAzYCDCAAIAU2AgggACACNgIEIAAgAS0AAToAAUEeIQIMEQsgASgCDCEDIAEoAgghBCABKAIEIgEoAgAhAiABIAJBAWo2AgAgAkEASA0OIAAgAzYCDCAAIAQ2AgggACABNgIEQR8hAgwQCyABKAIMIQQgASgCCCEFIAEoAgQiAigCACEDIAIgA0EBajYCACADQQBIDQ0gACAENgIMIAAgBTYCCCAAIAI2AgQgACABLQABOgABQSAhAgwPCyABKQIEIQkgASgCDCEEIAEoAhAiAigCACEDIAIgA0EBajYCACAHIAQ2AgggByAJNwMAIANBAEgNDCAAIAcoAgg2AgwgACAHKQMANwIEIAAgAjYCECAAIAEtAAE6AAFBISECDA4LIAEpAgQhCSABKQIMIQogASgCFCIBKAIAIQIgASACQQFqNgIAIAcgCjcDCCAHIAk3AwAgAkEASA0LIAAgBykDCDcCDCAAIAcpAwA3AgQgACABNgIUQSIhAgwNCyABKAIMIQMgASgCCCEEIAEoAgQiASgCACECIAEgAkEBajYCACACQQBIDQogACADNgIMIAAgBDYCCCAAIAE2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QCADQbTPxQBBASAFEQAADQsgACABENQMRQ0BDAsLIANBnePCAEECIAURAAANCiACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiAzYCICAAIAJBIGoQ1AwNCiADQaSyyABBAhD9CA0KCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMCQtBASEEIAEoAgAiA0HbkMkAQQUgASgCBCIGKAIMIgURAAANCCAAQQRqIQACQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQogACABEJIFRQ0BDAoLIANBnePCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEJIFDQkgAigCIEGkssgAQQIgAigCJCgCDBEAAA0JCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMCAtBASEEIAEoAgAiA0Hl8cUAQQcgASgCBCIGKAIMIgURAAANByAAQQhqIQACQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQkgACABEL8ORQ0BDAkLIANBnePCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiAzYCICAAIAJBIGoQvw4NCCADQaSyyABBAhD9CA0ICyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMBwtBASEEIAEoAgAiA0H2mckAQQQgASgCBCIGKAIMIgURAAANBiAAQQhqIQACQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQggACABEKIPRQ0BDAgLIANBnePCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKIPDQcgAigCIEGkssgAQQIgAigCJCgCDBEAAA0HCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMBgsgAiAAQQRqNgIMQQEhBCABKAIAIgBB7PHFAEEDIAEoAgQiBSgCDCIDEQAADQUCQCABLQAKQYABcUUEQCAAQbTPxQBBASADEQAADQcgAkEMaiABEPoPRQ0BDAcLIABBnePCAEECIAMRAAANBiACQQE6ABMgAiAFNgIYIAIgADYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGoiADYCICACQQxqIAJBIGoQ+g8NBiAAQaSyyABBAhD9CA0GCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMBQtBASEEIAEoAgAiA0HymckAQQQgASgCBCIGKAIMIgURAAANBCAAQQFqIQACQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQYgACABEPoORQ0BDAYLIANBnePCAEECIAURAAANBSACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiAzYCICAAIAJBIGoQ+g4NBSADQaSyyABBAhD9CA0FCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMBAtBASEEIAEoAgAiA0GEmskAQQggASgCBCIGKAIMIgURAAANAyAAQQRqIQACQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQUgACABEKoNRQ0BDAULIANBnePCAEECIAURAAANBCACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiAzYCICAAIAJBIGoQqg0NBCADQaSyyABBAhD9CA0ECyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMAwtBASEEIAEoAgAiA0Hv8cUAQQQgASgCBCIGKAIMIgURAAANAiAAQQRqIQACQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQQgACABEKQQRQ0BDAQLIANBnePCAEECIAURAAANAyACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiAzYCICAAIAJBIGoQpBANAyADQaSyyABBAhD9CA0DCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQQMAgtBASEEIAEoAgAiA0Hz8cUAQQQgASgCBCIGKAIMIgURAAANASAAQQRqIQACQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQMgACAB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AWo2AgQLIAEoAowBIgIgASgCiAEiDEYEQCABKAIgIQsgASgCLCEJCyABKAIUIQgCQCABLQCQAUECRwRAIAghBQwBCyAIIQUgAS0AkQFFDQAgASgCDCAFRgRAIAFBDGoQmhILIAEoAhAgCEEUbGoiBSAMNgIIIAVBADYCBCAFQQA6AAAgASAIQQFqIgU2AhQgASgCjAEhAgsgAiAMRgRAIAEoAiwgASgCIGohDQsgASgCeCEPIAEoAlwhEAJAAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiBCABKAIIIgZPDQUgASAEQQFqIgI2AgQgAyABKAKIATYCmAEgAyABKQKAATcDkAEgAiAGTw0EIAEgBEECaiIHNgIEIAMgAUGAAWoiAigCCDYCqAEgAyACKQIANwOgASAGIAdNDQMgASAEQQNqIgc2AgQgAyACKAIINgK4ASADIAIpAgA3A7ABIAYgB00NAiABIARBBGo2AgQMAQsgAyABKAKIATYCmAEgAyABKQKAATcDkAEgAyABKAKIATYCqAEgAyABKQKAATcDoAEgAyABKAKIATYCuAEgAyABKQKAATcDsAEgAUGAAWohAgsgASABLQCQASIGQQFHOgCQASADIAIoAgg2AsgBIAMgAikCADcDwAEgASgCOCECIAEoAlAiBCABKAJIRgRAIAFByABqEJYSCyABIARBAWo2AlAgASgCTCAEQQN0aiIEIAI2AgQgBCACNgIAIANBiAFqIAEQrgsgAygCiAEgAygCjAEiASADKALIATYCiAEgASADKQPAATcCgAEgASAGOgCQASABQTBqEIYKQQFHDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIETw0CIAEgAkEBaiIGNgIEIAQgBk0NASABIAJBAmo2AgQLIAFBADoAkQEgA0GAAWogARCUCiADKAKAASADKAKEASIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgRFBEAgA0HwAGogARCUCiADKAJ0IQEgAygCcCECDAELIAFBADoAkQEgA0H4AGogARCUCiADKAJ4IQIgAygCfCIBIAQ6AJEBCyACQQFHDQALCyABKAKEASECIAEoAoABIQQCQCABKAKIASIGRQ0AIAIgBk0E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SQ0EIAZBAEcgASACQSdqS3ENAyAEELwFCyADEOcFIAsgB0EBaiIHRw0ACwsgACgC7AEiBARAIAVBBGsoAgAiAkF4cSEBIAEgBEEFdCIEQQRBCCACQQNxIgIbckkNAiACQQBHIAEgBEEnaktxDQEgBRC8BQsCQCAAKAKEAiIBQX5GDQAgAUF/Rg0AIAFFDQAgACgCiAIiBEEEaygCACICQXhxIQAgAEEEQQggAkEDcSICGyABakkNAiACQQBHIAAgAUEnaktxDQEgBBC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAv2HQEFfyMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOEQECAwQFBgcICQoLDA0ODxARAAtBASEDIAEoAgAiBEHvkckAQQYgASgCBCIGKAIMIgURAAANESAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADRMgACABELILRQ0BDBMLIARBnePCAEECIAURAAANEiACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDRIgAigCIEGkssgAQQIgAigCJCgCDBEAAA0SCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMEQtBASEDIAEoAgAiBEHIlskAQQkgASgCBCIGKAIMIgURAAANECAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADRIgACABELILRQ0BDBILIARBnePCAEECIAURAAANESACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDREgAigCIEGkssgAQQIgAigCJCgCDBEAAA0RCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMEAtBASEDIAEoAgAiBEGhkskAQQggASgCBCIGKAIMIgURAAANDyAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADREgACABELILRQ0BDBELIARBnePCAEECIAURAAANECACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDRAgAigCIEGkssgAQQIgAigCJCgCDBEAAA0QCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDwtBASEDIAEoAgAiBEHRlskAQQsgASgCBCIGKAIMIgURAAANDiAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADRAgACABELILRQ0BDBALIARBnePCAEECIAURAAANDyACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQ8gAigCIEGkssgAQQIgAigCJCgCDBEAAA0PCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDgtBASEDIAEoAgAiBEHclskAQQogASgCBCIGKAIMIgURAAANDSAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ8gACABELILRQ0BDA8LIARBnePCAEECIAURAAANDiACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQ4gAigCIEGkssgAQQIgAigCJCgCDBEAAA0OCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDQtBASEDIAEoAgAiBEHmlskAQQ0gASgCBCIGKAIMIgURAAANDCAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ4gACABELILRQ0BDA4LIARBnePCAEECIAURAAANDSACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQ0gAigCIEGkssgAQQIgAigCJCgCDBEAAA0NCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDAtBASEDIAEoAgAiBEHzlskAQQggASgCBCIGKAIMIgURAAANCyAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ0gACABELILRQ0BDA0LIARBnePCAEECIAURAAANDCACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQwgAigCIEGkssgAQQIgAigCJCgCDBEAAA0MCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCwtBASEDIAEoAgAiBEH7lskAQQsgASgCBCIGKAIMIgURAAANCiAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQwgACABELILRQ0BDAwLIARBnePCAEECIAURAAANCyACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQsgAigCIEGkssgAQQIgAigCJCgCDBEAAA0LCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCgtBASEDIAEoAgAiBEGGl8kAQQggASgCBCIGKAIMIgURAAANCSAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQsgACABELILRQ0BDAsLIARBnePCAEECIAURAAANCiACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQogAigCIEGkssgAQQIgAigCJCgCDBEAAA0KCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEGOl8kAQRAgASgCBCIGKAIMIgURAAANCCAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQogACABELILRQ0BDAoLIARBnePCAEECIAURAAANCSACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQkgAigCIEGkssgAQQIgAigCJCgCDBEAAA0JCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEGel8kAQQsgASgCBCIGKAIMIgURAAANByAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQkgACABELILRQ0BDAkLIARBnePCAEECIAURAAANCCACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQggAigCIEGkssgAQQIgAigCJCgCDBEAAA0ICyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEGpl8kAQRMgASgCBCIGKAIMIgURAAANBiAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQggACABELILRQ0BDAgLIARBnePCAEECIAURAAANByACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqELILDQcgAigCIEGkssgAQQIgAigCJCgCDBEAAA0HCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEG8l8kAQQIgASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQcgACABEMgIRQ0BDAcLIARBnePCAEECIAURAAANBiACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqEMgIDQYgAigCIEGkssgAQQIgAigCJCgCDBEAAA0GCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEG+l8kAQQUgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQYgACABEMgIRQ0BDAYLIARBnePCAEECIAURAAANBSACQQE6AAwgAiAGNgIUIAIgBDYCECACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCGCACIAJBEGo2AiAgACACQSBqEMgIDQUgAigCIEGkssgAQQIgAigCJCgCDBEAAA0FCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBAsgAiAAQQRqNgIMQQEhAyABKAIAIgBBw5fJAEELIAEoAgQiBSgCDCIEEQAADQMCQCABLQAKQYABcUUEQCAAQbTPxQBBASAEEQAADQUgAkEMaiABEI4L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IAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNEiACKAIgQaSyyABBAiACKAIkKAIMEQAADRILIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwRC0EBIQMgASgCACIEQciWyQBBCSABKAIEIgYoAgwiBREAAA0QIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANEiAAIAEQggxFDQEMEgsgBEGd48IAQQIgBREAAA0RIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNESACKAIgQaSyyABBAiACKAIkKAIMEQAADRELIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwQC0EBIQMgASgCACIEQaGSyQBBCCABKAIEIgYoAgwiBREAAA0PIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANESAAIAEQggxFDQEMEQsgBEGd48IAQQIgBREAAA0QIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNECACKAIgQaSyyABBAiACKAIkKAIMEQAADRALIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwPC0EBIQMgASgCACIEQdGWyQBBCyABKAIEIgYoAgwiBREAAA0OIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANECAAIAEQggxFDQEMEAsgBEGd48IAQQIgBREAAA0PIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNDyACKAIgQaSyyABBAiACKAIkKAIMEQAADQ8LIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwOC0EBIQMgASgCACIEQdyWyQBBCiABKAIEIgYoAgwiBREAAA0NIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANDyAAIAEQggxFDQEMDwsgBEGd48IAQQIgBREAAA0OIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNDiACKAIgQaSyyABBAiACKAIkKAIMEQAADQ4LIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwNC0EBIQMgASgCACIEQeaWyQBBDSABKAIEIgYoAgwiBREAAA0MIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANDiAAIAEQggxFDQEMDgsgBEGd48IAQQIgBREAAA0NIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNDSACKAIgQaSyyABBAiACKAIkKAIMEQAADQ0LIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwMC0EBIQMgASgCACIEQfOWyQBBCCABKAIEIgYoAgwiBREAAA0LIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANDSAAIAEQggxFDQEMDQsgBEGd48IAQQIgBREAAA0MIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNDCACKAIgQaSyyABBAiACKAIkKAIMEQAADQwLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwLC0EBIQMgASgCACIEQfuWyQBBCyABKAIEIgYoAgwiBREAAA0KIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANDCAAIAEQggxFDQEMDAsgBEGd48IAQQIgBREAAA0LIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNCyACKAIgQaSyyABBAiACKAIkKAIMEQAADQsLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwKC0EBIQMgASgCACIEQYaXyQBBCCABKAIEIgYoAgwiBREAAA0JIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANCyAAIAEQggxFDQEMCwsgBEGd48IAQQIgBREAAA0KIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNCiACKAIgQaSyyABBAiACKAIkKAIMEQAADQoLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwJC0EBIQMgASgCACIEQY6XyQBBECABKAIEIgYoAgwiBREAAA0IIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANCiAAIAEQggxFDQEMCgsgBEGd48IAQQIgBREAAA0JIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNCSACKAIgQaSyyABBAiACKAIkKAIMEQAADQkLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwIC0EBIQMgASgCACIEQZ6XyQBBCyABKAIEIgYoAgwiBREAAA0HIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANCSAAIAEQggxFDQEMCQsgBEGd48IAQQIgBREAAA0IIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNCCACKAIgQaSyyABBAiACKAIkKAIMEQAADQgLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwHC0EBIQMgASgCACIEQamXyQBBEyABKAIEIgYoAgwiBREAAA0GIABBCGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANCCAAIAEQggxFDQEMCAsgBEGd48IAQQIgBREAAA0HIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQggwNByACKAIgQaSyyABBAiACKAIkKAIMEQAADQcLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwGC0EBIQMgASgCACIEQbyXyQBBAiABKAIEIgYoAgwiBREAAA0FIABBBGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANByAAIAEQzQhFDQEMBwsgBEGd48IAQQIgBREAAA0GIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQzQgNBiACKAIgQaSyyABBAiACKAIkKAIMEQAADQYLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwFC0EBIQMgASgCACIEQb6XyQBBBSABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANBiAAIAEQzQhFDQEMBgsgBEGd48IAQQIgBREAAA0FIAJBAToADCACIAY2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAAIAJBIGoQzQgNBSACKAIgQaSyyABBAiACKAIkKAIMEQAADQULIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwECyACIABBBGo2AgxBASEDIAEoAgAiAEHDl8kAQQsgASgCBCIFKAIMIgQRAAANAwJAIAEtAApBgAFxRQRAIABBtM/FAEEBIAQRAAANBSACQQxqIAEQkQtFDQEMBQsgAEGd48IAQQIgBBEAAA0EIAJBAToAEyACIAU2AhggAiAANgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQkQsNBCACKAIgQaSyyABBAiACKAIkKAIMEQAADQQLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwDCyACIABBBGo2AiAgAUHOl8kAQQYgAEEQakHeAiACQSBqQbcBEPIMIQMMAgsgAiAAQQRqNgIgIAFB1JfJAEEJIABBEGpB3gIgAkEgakG3ARDyDCEDDAELQQEhAyABKAIAIgRB/JHJAEEFIAEoAgQiBigCDCIFEQAADQAgAEEBaiEAAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0CIAAgARCYFEUNAQwCCyAEQZ3jwgBBAiAFEQAADQEgAkEBOgAMIAIgBjYCGCACIAQ2AhQgAkGg68IANgIkIAIgASkCCDcCKCACIAJBDGo2AhwgAiACQRRqIgQ2AiAgACACQSBqEJgUDQEgBEGkssgAQQIQ/QgNAQsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDCyACQTBqJAAgAwvtHQEFfyMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOEQECAwQFBgcICQoLDA0ODxARAAtBASEDIAEoAgAiBEHvkckAQQYgASgCBCIGKAIMIgURAAANESAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADRMgACABELYLRQ0BDBMLIARBnePCAEECIAURAAANEiACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDRIgAigCIEGkssgAQQIgAigCJCgCDBEAAA0SCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMEQtBASEDIAEoAgAiBEHIlskAQQkgASgCBCIGKAIMIgURAAANECAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADRIgACABELYLRQ0BDBILIARBnePCAEECIAURAAANESACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDREgAigCIEGkssgAQQIgAigCJCgCDBEAAA0RCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMEAtBASEDIAEoAgAiBEGhkskAQQggASgCBCIGKAIMIgURAAANDyAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADREgACABELYLRQ0BDBELIARBnePCAEECIAURAAANECACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDRAgAigCIEGkssgAQQIgAigCJCgCDBEAAA0QCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDwtBASEDIAEoAgAiBEHRlskAQQsgASgCBCIGKAIMIgURAAANDiAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADRAgACABELYLRQ0BDBALIARBnePCAEECIAURAAANDyACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQ8gAigCIEGkssgAQQIgAigCJCgCDBEAAA0PCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDgtBASEDIAEoAgAiBEHclskAQQogASgCBCIGKAIMIgURAAANDSAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ8gACABELYLRQ0BDA8LIARBnePCAEECIAURAAANDiACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQ4gAigCIEGkssgAQQIgAigCJCgCDBEAAA0OCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDQtBASEDIAEoAgAiBEHmlskAQQ0gASgCBCIGKAIMIgURAAANDCAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ4gACABELYLRQ0BDA4LIARBnePCAEECIAURAAANDSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQ0gAigCIEGkssgAQQIgAigCJCgCDBEAAA0NCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDAtBASEDIAEoAgAiBEHzlskAQQggASgCBCIGKAIMIgURAAANCyAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ0gACABELYLRQ0BDA0LIARBnePCAEECIAURAAANDCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQwgAigCIEGkssgAQQIgAigCJCgCDBEAAA0MCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCwtBASEDIAEoAgAiBEH7lskAQQsgASgCBCIGKAIMIgURAAANCiAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQwgACABELYLRQ0BDAwLIARBnePCAEECIAURAAANCyACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQsgAigCIEGkssgAQQIgAigCJCgCDBEAAA0LCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCgtBASEDIAEoAgAiBEGGl8kAQQggASgCBCIGKAIMIgURAAANCSAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQsgACABELYLRQ0BDAsLIARBnePCAEECIAURAAANCiACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQogAigCIEGkssgAQQIgAigCJCgCDBEAAA0KCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEGOl8kAQRAgASgCBCIGKAIMIgURAAANCCAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQogACABELYLRQ0BDAoLIARBnePCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQkgAigCIEGkssgAQQIgAigCJCgCDBEAAA0JCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEGel8kAQQsgASgCBCIGKAIMIgURAAANByAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQkgACABELYLRQ0BDAkLIARBnePCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQggAigCIEGkssgAQQIgAigCJCgCDBEAAA0ICyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEGpl8kAQRMgASgCBCIGKAIMIgURAAANBiAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQggACABELYLRQ0BDAgLIARBnePCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqELYLDQcgAigCIEGkssgAQQIgAigCJCgCDBEAAA0HCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEG8l8kAQQIgASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQcgACABEM4IRQ0BDAcLIARBnePCAEECIAURAAANBiACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEM4IDQYgAigCIEGkssgAQQIgAigCJCgCDBEAAA0GCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEG+l8kAQQUgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQYgACABEM4IRQ0BDAYLIARBnePCAEECIAURAAANBSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEM4IDQUgAigCIEGkssgAQQIgAigCJCgCDBEAAA0FCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBAsgAiAAQQRqNgIMQQEhAyABKAIAIgBBw5fJAEELIAEoAgQiBSgCDCIEEQAADQMCQCABLQAKQYABcUUEQCAAQbTPxQBBASAEEQAADQUgAkEMaiABEJQLRQ0BDAULIABBnePCAEECIAQRAAANBCACQQE6ABMgAiAFNgIYIAIgADYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEJQLDQQgAigCIEGkssgAQQIgAigCJCgCDBEAAA0ECyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMAwsgAiAAQQRqNgIgIAFBzpfJAEEGIABBEGpBgAMgAkEgakG3ARDyDCEDDAILIAIgAEEEajYCICABQdSXyQBBCSAAQRBqQYAD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aiABEJUKIAMoAnwhASADKAJ4QQFxDQADQCADQfAAaiABEJUKIAMoAnQhASADKAJwQQFHDQALCwJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgRPDQIgASACQQFqIgU2AgQgBCAFTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQegAaiABEJQKIAMoAmggAygCbCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgRFBEAgA0HYAGogARCUCiADKAJcIQEgAygCWCECDAELIAFBADoAkQEgA0HgAGogARCUCiADKAJgIQIgAygCZCIBIAQ6AJEBCyACQQFHDQALC0EAIQICQCABKAKIASIEQX1LDQAgBEECaiIFIAEoAoQBSw0AIAEoAoABIARqLwAAQa/UAEcNACABIAU2AogBQQEhAgsCQAJAAkACQCABLQB8QQFGBEBBAhCQASIFRQ0RIAVBr9QAOwAAIANBAjYCzAEgAyAFNgLIASADQoCAgIAgNwLAASABIAQgA0HAAWogAhD5CAsgAkUNBAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgRPDQYgASACQQFqIgU2AgQgBCAFTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQdAAaiABEJQKIAMoAlAgAygCVCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgRFBEAgA0FAayABEJQKIAMoAkQhASADKAJAIQIMAQsgAUEAOgCRASADQcgAaiABEJQKIAMoAkghAiADKAJMIgEgBDoAkQELIAJBAUcNAAsLIAEoAgBBAUcNACABKAIEIgQgASgCCCIFTw0EIAEgBEEBaiICNgIEIAIgBU8NBCABKAIUIQsgASAEQQJqIgI2AgQgAiAFTw0DIAEgBEEDaiIINgIEIAMgAUGAAWoiAigCCDYCqAEgAyACKQIANwOgASAFIAhNDQIgASAEQQRqNgIEDAELIAEoAhQhCyADIAEoAogBNgKoASADIAEpAoABNwOgASABQYABaiECCyABIAEtAJABIhBBAUc6AJABIAMgAigCCDYCuAEgAyACKQIANwOwASABKAI4IQQgASgCUCIFIAEoAkhGBEAgAUHIAGoQlhILIAEgBUEBajYCUCABKAJMIAVBA3RqIgUgBDYCBCAFIAQ2AgBBACEEAkAgASgCiAEiBUF9Sw0AIAVBAmoiCCABKAKEAUsNACACKAIAIAVqLwAAQareAEcNACABIAg2AogBQQEhBAsgAS0AfEEBRgRAQQIQkAEiCEUNDyAIQareADsAACADQQI2AswBIAMgCDYCyAEgA0KAgICAIDcCwAEgASAFIANBwAFqIAQQ+QgLIAIgAygCuAE2AgggAiADKQOwATcCACABIBA6AJABIAFBMGoQhgogBA0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NAiABIAJBAWoiBTYCBCAEIAVNDQEgASACQQJqNgIECyABQQA6AJEBIANBOGogARCUCiADKAI4IAMoAjwiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIERQRAIANBKGogARCUCiADKAIsIQEgAygCKCECDAELIAFBADoAkQEgA0EwaiABEJQKIAMoAjAhAiADKAI0IgEgBDoAkQELIAJBAUcNAAsLIAEoAoQBIQIgASgCgAEhBAJAIAEoAogBIgVFDQAgAiAFTQRAIAIgBUYNAQwPCyAEIAVqLAAAQUBIDQ4LIAIgBUYNACABAn9BASAEIAVqIgQsAAAiC0EATg0AGiAELQABQT9xIQggC0EfcSECAn8gAkEGdCAIciALQWBJDQAaIAQtAAJBP3EgCEEGdHIhCCAIIAJBDHRyIAtBcEkNABogAkESdEGAgPAAcSAELQADQT9xIAhBBnRycgshBEEBIARBgAFJDQAaQQIgBEGAEEkNABpBA0EEIARBgIAESRsLIAVqNgKIASABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECyADQSBqIAEQogQgAygCJCEBIAMoAiBBAXENAQNAIANBGGogARCiBCADKAIcIQEgAygCGEEBRw0ACwwBCyABIAMoAqgBNgKIASABIAMpA6ABNwKAASALIAEoAhRLDQAgASALNgIUCwJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgRPDQIgASACQQFqIgU2AgQgBCAFTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQRBqIAEQlAogAygCECADKAIUIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiBEUEQCADIAEQlAogAygCBCEBIAMoAgAhAgwBCyABQQA6AJEBIANBCGogARCUCiADKAIIIQIgAygCDCIBIAQ6AJEBCyACQQFHDQALC0EAIQICQCABKAKIASIEQX1LDQAgBEECaiIFIAEoAoQBSw0AIAEoAoABIARqLwAAQareAEcNACABIAU2AogBQQEhAgsgAS0AfEEBRgRAQQIQkAEiBUUNDSAFQareADsAACADQQI2AswBIAMgBTYCyAEgA0KAgICAIDcCwAEgASAEIANBwAFqIAIQ+QgLIAINAgsgASADKAKYATYCiAEgASADKQOQATcCgAEgByABKAIUSw0AIAEgBzYCFAtBASECIAEtAJABQQFGDQggAS0AkQFFDQMgASgCjAEiAiAKRw0BIA0gASgCICICIAEoAiwiB2oiBEkgBCANa0EBRnENAyACIAxPBEAgASAMNgIgIAwhAgsgByAJSQ0CIAEgCTYCLAwCCyABLQCQASICQQFGBH8gAS0AkQFFDQcCQCAKIAEoAowBIgJGBEAgDSABKAIsIgIgASgCICIHaiIESSAEIA1rQQFGcQ0JIAcgDE8EQCABIAw2AiALIAIgCUkNASABIAk2AiwgCSECDAELIAIgCk8NCCABIAo2AowBQQAhAiABQQA2AiwgAUEANgIgCyABKAIkIAJGBEAgAUEkahCjEgsgASgCKCACakEhOgAAIAEgAkEBajYCLCABLQCQAQUgAgtB/wFxQQJHDQYgAS0AkQFFDQYgASgCFCICIAZNDQMgASgCECAGQRRsaiIHLQAADQQgByACNgIEIAEoAogBIQkgASgCFCIHIAEoAgxGBEAgAUEMahCaEgsgASgCECAHQRRsaiICIAk2AhAgAkEANgIIIAIgBjYCBCACQYHCADsBACABIAdBAWo2AhQMBgsgAiAKTw0BIAEgCjYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAhggAkYEQCABQRhqEKMSCyABIAJBAWo2AiAgASgCHCACakEhOgAAC0EBIQIgAS0AfEEBRw0CIAEt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DCABIANBBBCWCAwMCyACIAU2AgwgASACQQxqQQQQlggMCwsgAiAAKAIMIgQ2AgwgASACQQxqIgNBBBCWCCAAKAIQIQUgBEEBRgRAIAAoAhQhBCACIAU2AgwgASADQQQQlgggAiAENgIMIAEgA0EEEJYIIAIgACgCGDYCDCABIANBBBCWCAwLCyACIAU2AgwgASACQQxqQQQQlggMCgsgAiAAKAIMIgQ2AgwgASACQQxqIgNBBBCWCCAAKAIQIQUgBEEBRgRAIAAoAhQhBCACIAU2AgwgASADQQQQlgggAiAENgIMIAEgA0EEEJYIIAIgACgCGDYCDCABIANBBBCWCAwKCyACIAU2AgwgASACQQxqQQQQlggMCQsgAiAAKAIMIgQ2AgwgASACQQxqIgNBBBCWCCAAKAIQIQUgBEEBRgRAIAAoAhQhBCACIAU2AgwgASADQQQQlgggAiAENgIMIAEgA0EEEJYIIAIgACgCGDYCDCABIANBBBCWCAwJCyACIAU2AgwgASACQQxqQQQQlggMCAsgAiAAKAIMIgQ2AgwgASACQQxqIgNBBBCWCCAAKAIQIQUgBEEBRgRAIAAoAhQhBCACIAU2AgwgASADQQQQlgggAiAENgIMIAEgA0EEEJYIIAIgACgCGDYCDCABIANBBBCWCAwICyACIAU2AgwgASACQQxqQQQQlggMBwsgAiAAKAIMIgQ2AgwgASACQQxqIgNBBBCWCCAAKAIQIQUgBEEBRgRAIAAoAhQhBCACIAU2AgwgASADQQQQlgggAiAENgIMIAEgA0EEEJYIIAIgACgCGDYCDCABIANBBBCWCAwHCyACIAU2AgwgASACQQxqQQQQlggMBgsgAiAAKAIMIgQ2AgwgASACQQxqIgNBBBCWCCAAKAIQIQUgBEEBRgRAIAAoAhQhBCACIAU2AgwgASADQQQQlgggAiAENgIMIAEgA0EEEJYIIAIgACgCGDYCDCABIANBBBCWCAwGCyACIAU2AgwgASACQQxqQQQQlggMBQsgAiAAKAIMIgQ2AgwgASACQQxqIgNBBBCWCCAAKAIQIQUgBEEBRgRAIAAoAhQhBCACIAU2AgwgASADQQQQlgggAiAENgIMIAEgA0EEEJYIIAIgACgCGDYCDCABIANBBBCWCAwFCyACIAU2AgwgASACQQxqQQQQlggMBAsgAiAA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AiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAiA2AgwgASADQQQQlggMAQsgAiAFNgIMIAEgAkEMakEEEJYICyAAKAIIIQMgAiAAKAIMIgA2AgwgASACQQxqQQQQlgggAEUNDCAAQRRsIQADQCADIAEQkxAgA0EUaiEDIABBFGsiAA0ACwwMCyACIAAoAgwiBDYCDCABIAJBDGoiA0EEEJYIIAAoAhAhBSAEQQFGBEAgACgCFCEEIAIgBTYCDCABIANBBBCWCCACIAQ2AgwgASADQQQQlgggAiAAKAIYNgIMIAEgA0EEEJYIDAwLIAIgBTYCDCABIAJBDGpBBBCWCAwLCyACIAAoAgwiBDYCDCABIAJBDGoiA0EEEJYIIAAoAhAhBSAEQQFGBEAgACgCFCEEIAIgBTYCDCABIANBBBCWCCACIAQ2AgwgASADQQQQlgggAiAAKAIYNgIMIAEgA0EEEJYIDAsLIAIgBTYCDCABIAJBDGpBBBCWCAwKCyACIAAoAgwiBDYCDCABIAJBDGoiA0EEEJYIIAAoAhAhBSAEQQFGBEAgACgCFCEEIAIgBTYCDCABIANBBBCWCCACIAQ2AgwgASADQQQQlgggAiAAKAIYNgIMIAEgA0EEEJYIDAoLIAIgBTYCDCABIAJBDGpBBBCWCAwJCyACIAAoAgwiBDYCDCABIAJBDGoiA0EEEJYIIAAoAhAhBSAEQQFGBEAgACgCFCEEIAIgBTYCDCABIANBBBCWCCACIAQ2AgwgASADQQQQlgggAiAAKAIYNgIMIAEgA0EEEJYIDAkLIAIgBTYCDCABIAJBDGpBBBCWCAwICyACIAAoAgwiBDYCDCABIAJBDGoiA0EEEJYIIAAoAhAhBSAEQQFGBEAgACgCFCEEIAIgBTYCDCABIANBBBCWCCACIAQ2AgwgASADQQQQlgggAiAAKAIYNgIMIAEgA0EEEJYIDAgLIAIgBTYCDCABIAJBDGpBBBCWCAwHCyACIAAoAgwiBDYCDCABIAJBDGoiA0EEEJYIIAAoAhAhBSAEQQFGBEAgACgCFCEEIAIgBTYCDCABIANBBBCWCCACIAQ2AgwgASADQQQQlgggAiAAKAIYNgIMIAEgA0EEEJYIDAcLIAIgBTYCDCABIAJBDGpBBBCWCAwGCyACIAAoAgwiBDYCDCABIAJB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ECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMCAsgAiAFNgIMIAEgAkEMakEEEJYIDAcLIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMBwsgAiAFNgIMIAEgAkEMakEEEJYIDAYLIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMBgsgAiAFNgIMIAEgAkEMakEEEJYIDAULIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMBQsgAiAFNgIMIAEgAkEMakEEEJYIDAQLIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMBAsgAiAFNgIMIAEgAkEMakEEEJYIDAMLIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMAwsgAiAFNgIMIAEgAkEMakEEEJYIDAILIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMAgsgAiAFNgIMIAEgAkEMakEEEJYIDAELIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYC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QQA2AgQgAkEAOgAAIAEgCEEBaiIGNgIUIAEoAowBIQILIAIgCkYEQCABKAIsIAEoAiBqIQwLIAEoAnghDyABKAJcIRACQCABKAIAQQFGBEAgASgCBCICIAEoAghPBEBBASEEDAILIAEgAkEBajYCBAsgAyABKAKIATYCqAEgAyABKQKAATcDoAEgA0GYAWogARDnAyADKAKcASEBAn8CQCADKAKYAUEBcQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBU8NAiABIAJBAWoiBDYCBCAEIAVPDQEgASACQQJqNgIECyABQQA6AJEBIANBkAFqIAEQlAogAygCkAEgAygClAEiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIFRQRAIANBgAFqIAEQlAogAygChAEhASADKAKAASECDAELIAFBADoAkQEgA0GIAWogARCUCiADKAKIASECIAMoAowBIgEgBToAkQELIAJBAUcNAAsLIANB+ABqIAEQgQIgAygCfCEBIAMoAnhBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgVPDQIgASACQQFqIgQ2AgQgBCAFTw0BIAEgAkECajYCBAsgAUEAOgCRASADQfAAaiABEJQKIAMoAnAgAygCdCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgVFBEAgA0HgAGogARCUCiADKAJkIQEgAygCYCECDAELIAFBADoAkQEgA0HoAGogARCUCiADKAJoIQIgAygCbCIBIAU6AJEBCyACQQFHDQALCwJAAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiBCABKAIIIgdPDQYgASAEQQFqIgI2AgQgAiAHTw0GIAEoAhQhBSABIARBAmoiAjYCBCACIAdPDQMgASAEQQNqIg02AgQgAyABQYABaiICKAIINgK4ASADIAIpAgA3A7ABIAcgDU0NAiABIARBBGo2AgQMAQsgASgCFCEFIAMgASgCiAE2ArgBIAMgASkCgAE3A7ABIAFBgAFqIQILIAEgAS0AkAEiB0EBRzoAkAEgAyACKAIINgLIASADIAIp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DCAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ4gACABENYQRQ0BDA4LIARBnePCAEECIAURAAANDSACQQE6ACwgAiAGNgIQIAIgBDYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEsajYCFCACIAJBDGo2AhwgACACQRxqENYQDQ0gAigCHEGkssgAQQIgAigCICgCDBEAAA0NCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMDAtBASEDIAEoAgAiBEHO9sUAQQggASgCBCIGKAIMIgURAAANCyAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQ0gACABEI0QRQ0BDA0LIARBnePCAEECIAURAAANDCACQQE6ACwgAiAGNgIQIAIgBDYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEsajYCFCACIAJBDGo2AhwgACACQRxqEI0QDQwgAigCHEGkssgAQQIgAigCICgCDBEAAA0MCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCwtBASEDIAEoAgAiBEHW9sUAQQYgASgCBCIGKAIMIgURAAANCiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQwgACABELoQRQ0BDAwLIARBnePCAEECIAURAAANCyACQQE6ACwgAiAGNgIQIAIgBDYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEsajYCFCACIAJBDGo2AhwgACACQRxqELoQDQsgAigCHEGkssgAQQIgAigCICgCDBEAAA0LCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCgtBASEDIAEoAgAiBEGc8MUAQQMgASgCBCIGKAIMIgURAAANCSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQsgACABEIQRRQ0BDAsLIARBnePCAEECIAURAAANCiACQQE6ACwgAiAGNgIQIAIgBDYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEsajYCFCACIAJBDGo2AhwgACACQRxqEIQRDQogAigCHEGkssgAQQIgAigCICgCDBEAAA0KCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCQsgAiAAQQRqNgIsQQEhAyABKAIAIgBB3PbFAEEJIAEoAgQiBSgCDCIEEQAADQgCQCABLQAKQYABcUUEQCAAQbTPxQBBASAEEQAADQogAkEsaiABEMUERQ0BDAoLIABBnePCAEECIAQRAAANCSACQQE6ABsgAiAFNgIQIAIgADYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEbajYCFCACIAJBDGo2AhwgAkEsaiACQRxqEMUEDQkgAigCHEGkssgAQQIgAigCICgCDBEAAA0JCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEGD/cYAQQggASgCBCIGKAIMIgURAAANByAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQkgACABEMcQRQ0BDAkLIARBnePCAEECIAURAAANCCACQQE6ACwgAiAGNgIQIAIgBDYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEsajYCFCACIAJBDGo2AhwgACACQRxqEMcQDQggAigCHEGkssgAQQIgAigCICgCDBEAAA0ICyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHl9sUAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQggACABEN0MRQ0BDAgLIARBnePCAEECIAURAAANByACQQE6ACwgAiAGNgIQIAIgBDYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEsajYCFCACIAJBDGo2AhwgACACQRxqEN0MDQcgAigCHEGkssgAQQIgAigCICgCDBEAAA0HCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHt9sUAQQIgASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQcgACABEKoBRQ0BDAcLIARBnePCAEECIAURAAANBiACQQE6ACwgAiAGNgIQIAIgBDYCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEsajYCFCACIAJBDGo2AhwgACACQRxqEKoBDQYgAigCHEGkssgAQQIgAigCICgCDBEAAA0GCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBQtB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IAQoAnQhAyAEKAJwIRACQCAEKAKAASICRQ0AIAIgAkECdEELakF4cSICakEJaiIGRQ0AIAQoAnwgAmsiBUEEaygCACICQXhxIQcgB0EEQQggAkEDcSICGyAGakkNDyACQQBHIAcgBkEnaktxDRAgBRC8BQsgAyEFAkAgC0UNACALQcgAbCEFIAMhAiALQQFxBEAgCCADKQMANwMAIAggAykDCDcDCCAIIAMpAxA3AxAgCCADKQMYNwMYIAggAykDIDcDICAIIAMpAyg3AyggCCADKQMwNwMwIAQgAygCQDYC0AEgBCADKQM4NwPIASADIARByAFqQcgA/AoAACADQcgAaiECCyADIAVqIQUgC0EBRg0AA0AgCCACKQMANwMAIAggAikDCDcDCCAIIAIpAxA3AxAgCCACKQMYNwMYIAggAikDIDcDICAIIAIpAyg3AyggCCACKQMwNwMwIAQgAkFAaygCADYC0AEgBCACQThqKQMANwPIASACIARByAFqIgZByAD8CgAAIAggAkHIAGoiBykDADcDACAIIAJB0ABqKQMANwMIIAggAkHYAGopAwA3AxAgCCACQeAAaikDADcDGCAIIAJB6ABqKQMANwMgIAggAkHwAGopAwA3AyggCCACQfgAaikDADcDMCAEIAJBiAFqKAIANgLQASAEIAJBgAFqKQMANwPIASAHIAZByAD8CgAAIAUgAkGQAWoiAkcNAAsLIAQoAlhBAUcNAgwJC0HIABCQASIDRQ0FIAkgCikCMDcCMCAJIAopAig3AiggCSAKKQIgNwIgIAkgCikCGDcCGCAJIAopAhA3AhAgCSAKKQIINwIIIAkgCikCADcCACADIAY2AgggAyAONgIEIAMgDTYCACADIAQpAsgBNwIMIAMgBCkC0AE3AhQgAyAEKQLYATcCHCADIAQpAuABNwIkIAMgBCkC6AE3AiwgAyAEKQLwATcCNCADIAQpAvgBNwI8IAMgBCgCgAI2AkQMAwsgBCgCPCECIAQoAkAhAyAEQQhqIBEQogYgBCgCCEEBRw0GIAQoAgwiBSADSQ0BIAUgA0HkhMcAEIUTAAsgBEHYAGoQ8AUMBgtByAAQkAEiA0UNAyAEQZABaiACIAVByABsahCOByAJIAQpA8ABNwIwIAkgBCkDuAE3AiggCSAEKQOwATcCICAJIAQpA6gBNwIY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DAQLIAAoAgwiACABKAIMIgFLIAAgAUlrIQIMAwtBf0EBIAsgDFYbIQILIAJBAEogAkEASGshAgwBCyACIAZIIAIgBkprIQILIARBMGokACACC5EVAQ5/IwBBoAFrIgMkAEEBIQICQAJAIAEoAgBBAUYEQCABKAIEIgggASgCCE8NASABIAhBAWo2AgQLIAEoAowBIgIgASgCiAEiCkYEQCABKAIgIQwgASgCLCEJCyABKAIUIQgCQCABLQCQAUECRwRAIAghBgwBCyAIIQYgAS0AkQFFDQAgASgCDCAIRgRAIAFBDGoQmhILIAEoAhAgCEEUbGoiAiAKNgIIIAJBADYCBCACQQA6AAAgASAIQQFqIgY2AhQgASgCjAEhAgsgAiAKRgRAIAEoAiwgASgCIGohDQsgASgCeCEOIAEoAlwhDwJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8EQEEBIQQMAgsgASACQQFqNgIECyADIAEoAogBIgI2AnggAyABKQKAATcDcAJAIAIgASgChAFPDQAgAUGAAWooAgAgAmotAABB+wBHDQAgASACQQFqNgKIAUEBIQQLAn8CQAJAAkACQAJAAkAgAS0AfEEBRgRAQQEQkAEiBUUNASAFQfsAOgAAIANBATYCjAEgAyAFNgKIASADQoCAgIAQNwKAASABIAIgA0GAAWogBBD5CAsgBEUNBQJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgRPDQcgASACQQFqIgU2AgQgBCAFTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQegAaiABEJQKIAMoAmggAygCbCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgRFBEAgA0HYAGogARCUCiADKAJcIQEgAygCWCECDAELIAFBADoAkQEgA0HgAGogARCUCiADKAJgIQIgAygCZCIBIAQ6AJEBCyACQQFHDQALCyABKAIAQQFHDQEgASgCBCIEIAEoAggiB08NBSABIARBAWoiAjYCBCACIAdPDQUgASgCFCEFIAEgBEECaiICNgIEIAIgB08NBCABIARBA2oiCzYCBCADIAFBgAFqIgIoAgg2ApgBIAMgAikCADcDkAEgByALTQ0DIAEgBEEEajYC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EJABIgdFDQkgB0EAOgAUIAdBxObHADYCDCAHIAE2AgggB0KBgICAEDcCACACIAIoAgAiAUEBazYCACABQQFGBEAgAhAwCyADQRBqIAYQ8A4gAygCFCICQQBIDQMgAg0BQQEhBAwGCyADQawBaiAGEPEKIANBATYCqAEgAygCrAEiAigCACEBIAIgAUEBajYCACABQQBIDQQgAygCtAEhByADKAKwASEIIAIgAigCACIBQQFqNgIAIAFBAEgNBEEYEJABIgVFDQggBUEAOgAUIAVBhOfHADYCDCAFQQE2AgggBUKBgICAEDcCACACIAIoAgAiAUEBazYCACABQQFGBEAgAygCrAEQMAsgA0EIaiAGEPAOIAMoAgwiBEEASA0CIARFBEBBASEGDAQLIAMoAgghASAEEJABIgYNAQwJCyADKAIQIQEgAhCQASIERQRADAkLIAJFDQQgBCABIAL8CgAADAQLIARFDQEgBiABIAT8CgAADAELEJ4VAAtB5AAQkAEiAQRAIAEgBTYCYCABQQA6AFwgASAHNgJMIAEgCDYCSCABIAI2AkQgAUEBNgJAIAFBGzoAPCABQX82AiwgASAHNgIoIAEgCDYCJCABIAI2AiAgAUEBNgIcIAFBfzYCECABQoGAgIAQNwIIIAFCgYCAgBA3AgAgAEEAOwFEIAAgBDYCQCAAIAY2AjwgACAENgI4IABCBDcDMCAAQgE3AyggACABNgIkIABBATYCICAAQX42AgAMAwsMAwsAC0HkABCQASIBRQ0BIAEgBzYCYCABQQA6AFwgASAINgJYIAEgCTYCVCABIAU2AlAgAUKAgICAEDcCSCABQoCAgIAQNwJAIAFBGDoAPCABQX82AiwgASAINgIoIAEgCTYCJCABIAU2AiAgAUEBNgIcIAFBfzYCECABQoGAgIAQNwIIIAFCATcCACAAQgQ3AzAgAEIBNwMoIABBADsBRCAAIAI2AkAgACAENgI8IAAgAjYCOCAAIAE2AiQgAEEBNgIgIABBfjYCAAsgA0HQAWokAA8LQbjwyQBBAToAAAALQbjwyQBBAToAAAALQQEQpxQAC/cWARZ/IwBBsAdrIgMkACACKAIIIQYgA0IANwOoASADQoCAgICgBjcDoAEgA0KAgICAwAA3A5gBQX8hCSADQX82AiggA0EANgIQIANCADcDsAEgA0EAOgDAASADQoCAgIBwNwO4ASADIAIoAgA2ApABIAMgAigCBCICNgKMASADIAI2AogBIAMgAiAGQfAAbGo2ApQBIANBATYCyAEgBkEybiICIAYgAkEybEZrIRUgA0GoBGohCiADQcAGaiICQRRqIQ8gAkEIaiELIANB0QZqIRAgA0HjBWohESADQaQEaiESIANBoARqIRYgA0H0AmohFyADQeACaiEMIANB/AFqIQ0gA0HUAWohEyACQQRqIRQgA0EQaiEOQQAhAkEAIQYCQAJAAkADQCADQX82AggCQAJAIAIgAygCtAFJDQACQAJAIAMoArABIgcgAksNACACIAdGBEAgAygCoAEgAiADKAK4AWtLDQEgAy0AwAENAyADQcAGaiAOEKkJDAILIAMtAMABDQIgA0HABmogDhDpAQwBCyADQcAGaiAOIAIQkQoLIAMoAgghByADKALQBiIEQX9HDQEgByEJCyADIAlBAWo2AgggA0EIahCaDCAAQX42AgAMBAsgAyADKQPIBjcD2AMgAyADKQPABjcD0AMgDSAPQdwA/AoAACADIAdBAWo2AgggFCADKQPYAzcCCCAUIAMpA9ADNwIAIAMgAykCwAY3A9ABIAMgAykCyAY3A9gBIAMgAygC0AY2AuABIAMgEykCADcD6AEgAyATKQIINwPwASADQX42AvACIAMgAjYC3AIgAyAENgL4ASADIANBCGo2AtgCQRIQkAEiAkUNASACQd3RxQAvAAA7ABAgAkHV0cUAKQAANwAIIAJBzdHFACkAADcAACADQRI2AsgGIAMgAjYCxAYgA0ESNgLABiABIANBwAZqIgQQ/A1BARCQASICRQ0CIAZBAWohByACQSg6AAAgA0EBNgLIBiADIAI2AsQGIANBATYCwAYgASAEEPwNIAMoAvACIQIgAygC+AEhBANAIANBfjYC8AICQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkF+RwRAIAMgAjYCoAQgAyAMKQMINwOYBCADIAwpAwA3A5AEIBIgF0HcAPwKAAAMAQsgAygC+AEhAiADQX82AvgBIAJBf0cEQCADIAMpA/ABNwOYBCADIAMpA+gBNwOQBCADIAI2AqAEIBIgDUHcAPwKAABBfyEEDAILAkACQCADKALYAiICKAIARQRAIAMoAtwCIQQgAkF/NgIA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ACADQdQAbGoiASgCAEGCgICAeEcNBiACIAEpAgg3AgggAiAAQeAAajYCECACIABBEGo2AhQgAkF/NgIYCyACIAJBGGqtQoCAgIDwGoQ3A2AgAiACQRRqrUKAgICA4CaENwNYIAIgAkEQaq1CgICAgPAmhDcDUCACIAJBCGqtQoCAgIDQAYQ3A0ggBSAGQcyQwgAgAkHIAGoQsQkhASACKAIYIgBBf0YNACAARQ0AIAIoAhwiBkEEaygCACIFQXhxIQMgA0EEQQggBUEDcSIFGyAAakkNASAFQQBHIAMgAEEnaktxDQIgBhC8BQsgAkGgAmokACABDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAEgA0HMu8QAEIUTAAsgAyAEQcy7xAAQhRMAC0HMu8QAEJ0VAAtB8LXJAEE3IAJBnwJqQfSWxgBBqLbJABDaEgALsBMBFX8jAEFAaiIDJABBASECAkAgASgCAEEBRgRAIAEoAgQiBiABKAIITw0BIAEgBkEBajYCBAsgASgCjAEiAiABKAKIASIMRgRAIAEoAiAhDiABKAIsIQoLIAEoAhQhBgJAIAEtAJABQQJHBEAgBiEHDAELIAYhByABLQCRAUUNACABKAIMIAZGBEAgAUEMahCaEgsgASgCECAGQRRsaiICIAw2AgggAkEANgIEIAJBADoAACABIAZBAWoiBzYCFCABKAKMASECCyACIAxGBEAgASgCLCABKAIgaiEPCyABKAJ4IREgASgCXCESAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NASABIAJBAWo2AgQLIAMgASgCiAEiAjYCKCADIAEpAoABNwMgAkAgAiABKAKEAU8NACABQYABaigCACACai0AAEEiRw0AIAEgAkEBajYCiAFBASEECwJAAkACQCABLQB8QQFGBEBBARCQASIFRQ0BIAVBIjoAACADQQE2AjwgAyAFNgI4IANCgICAgBA3AjAgASACIANBMGogBBD5CAsgBEUNAiABKAIAQQFGBEAgASgCBCICIAEoAghPDQMgASACQQFqNgIEC0EAIQRBACEFIAEoAowBIgggASgCiAEiAkYEQCABKAIgIQUgASgCLCEECyABKAIUIQkgAS0AkAFBAkcNASABLQCRAUUN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DSEEDBgLIAMpAxAiC0IgiKchBiALpyEJQQ0hBCADKAIMIQcMFwsgAyADKQMQNwOoASADIANBqAFqrUKAgICAIIQ3A4ABIANBOGogA0GAAWoQ0BIgAykCPCILQiCIpyEGIAMoAjghByALpyEJQQ0hBAwWCyADKQMQIgtCIIinIQYgC6chCUEYIQQMFQsgA0EANgKwASADQoCAgIAQNwKoASADQYABaiICIAFBBGoQ+AkgA0GoAWogAkEkEPASGkEADQkgAykCrAEiC0IgiKchBiADKAKoASEHIAunIQlBDSEEDBQLIAhBCUcNCgwRCyAIQQpHDQkMEAsgASgCDCABKAIIIQUgA0GAAWohBCMAQSBrIgIkACACQQA2AgggAkKAgICAEDcCACACQeTtxgA2AhAgAkKggICABjcCFCACIAI2AgwgAUEIaiACQQxqEPcBBEBB8LXJAEE3IAJBH2pB/O3GAEGotskAENoSAAsgBCACKAIINgIIIAQgAikCADcCACACQSBqJAAgAykChAEiC0IgiKchBiADKAKAASEHIAunIQlBDSEEIAVFDREgBUECdBDZEgwRCyADIAEpAxg3A5ABIAMgASkDEDcDiAEgAyABKQMINwOAASADQagBaiADQYABahDKCSADKAKoAQ0KQdD5xgAQnRUACyADKQMQIgtCIIinIQYgC6cMCgsgCEELRw0FDAwLIAMgCEECdEGk0MkAaigCACIBNgKAASADKAIMIQIgA0GAAWoQwBIgASACRw0DDAULQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0HwtckAQTcgA0HPAWpB/O3GAEGotskAENoSAAsgAygCDCIBQQVGBEAgAygCECADIAhBAnRB2NDJAGooAgAiAjYCgAEoAgAgA0GAAWoQwBIgAkYNAiADKAIMIQELIAFBDEYNAgsgAyADKQMgNwOYASADIAMpAxg3A5ABIAMgAykDEDcDiAEgAyADKQMINwOAASADIANBKGoiASgCCDYCsAEgAyABKQIANwOoASADIANBgAFqIgGtQoCAgICQKYQ3A2ggAEEIakHPrcAAIANB6ABqIgIQuAwgAyADQagBaq1CgICAgKAphDcDaCAAQRRqQc+twAAgAhC4DCAAQoGAgIDgADcDACABEIgEDAwLQRohBSADKAIQIQkgAygCDCEHIAMpAxghCyADKAIUIQZBDiADKAIIIgFBDWsgAUEMTRsiAUENSw0IQQEgAXRBpcgAcQ0KDAgLQRohBCADKQMYIQsgAygCFCEGAkACQAJAAkACQAJAAkACQAJAIAhBAWsODAABAgIDBAUPBgcIBQ8LQQMhBwwOC0EKIQcMDQtBCSEHDAwLQQEhBwwLC0ECIQcMCgtBDCEHDAkLQQYhBwwIC0EIIQcMBwtBCyEHDAYLIAMpA7ABIgtCIIghDCADKAKAASIBBEAgAygChAEgAUECdBDZEgsgDKchBiALpwshCUEQIQQMBAsgAyADQagBaq1CgICAgNAmhDcDaCAAQQhqIANB6ABqIgEQ0BIgAyADQQRqrUKAgICAsCmENwNoIABBFGogARDQEiAAQoGAgIDgADcDACADKAKoASIARQ0AIAMoAqwBIAAQ2RILQQ4gAygCCCIAQQ1rIABBDE0bIgBBDU1BAEEBIAB0QaXIAHEbDQYgA0EIahCIBAwGCyADKQMQIgtCIIinIQYgC6chCSADKQMgIQwgAykDGCELIAMoAgwhBwwEC0ESIQQLQQ4gAygCCCIBQQ1rIAFBDE0bIgFBDUsEQCAEIQUMAQtBASABdEGlCHEEQCAEIQUMAwsgAUENRg0BIAQhBQsgA0EIahCIBAwBCyADQQhqQQRyEMASIAQhBQsgACAMNwMgIAAgCzcDGCAAIAc2AgwgACAFNgIIIABBADYCACAAIAmtIAatQiCGhDcDEAsgA0HQAWokAAuwEwIKfwJ+IwBBoAVrIgIkACACIAE2ApABIAFBIGohCAJAAkACQAJAAkACQAJAAkAgASgCIEUNACACQfADaiACQZABaiAIEOINIAIoAvADIgNBAkcNASAIKAIAIgZFDQAgASgCLCIEIAEoAiQiA2tBFG4hBSADIARHBEAgA0EQaiEDA0AgAygCACIHKAIAIQQgByAEQQFrNgIAIARBAUYEQCADKAIAEDALIANBFGohAyAFQQFrIgUNAAsLIAEoAigiBEUNACAGQQRrKAIAIgVBeHEhAyADIARBFGwiBEEEQQggBUEDcSIFG2pJDQUgBUEARyADIARBJ2pLcQ0GIAYQvAULIAFBADYCIAJAIAEoAkAiA0UNACADIAEoAkRGDQADQCABIANBGGo2AkACfwJAAkACQAJAAkACQCADKAIAQQFrDgIAAQMLIAJBwAJqIANBBGoiBhCfCiACKALAAkEHaw4GBAEBAQEEAQtB9PbIAEETQYj3yAAQrxQAC0EUEJABIgRFDQEgBikCACEMIAYpAgghDSADKAIUIgYoAgAhAyAGIANBAWo2AgAgAiANNwPIAiACIAw3A8ACIANBAE4EQCAEIAIpA8gCNwIIIAQgAikDwAI3AgAgBCAGNgIQIAJBATYCyAIgAiAENgLEAiACQQE2AsACQQEhB0EBDAQLAAsgAkHAAmogAygCBCADQQhqKAIAEOcKIAIoAsQCIQQgAigCwAIhByACKALIAgwCC0G48MkAQQE6AAAACyACQQA2AsgCIAJCgICAgMAANwLAAkEEIQRBACEHQQALIQYCQCAIKAIAIgpFDQAgASgCLCIJIAEoAiQiA2tBFG4hBSADIAlHBEAgA0EQaiEDA0AgAygCACILKAIAIQkgCyAJQQFrNgIAIAlBAUYEQCADKAIAEDALIANBFGohAyAFQQFrIgUNAAsLIAEoAigiBUUNACAKQQRrKAIAIglBeHEhAyADIAVBFGwiBUEEQQggCUEDcSIJG2pJDQcgCUEARyADIAVBJ2pLcQ0IIAoQvAULIAEgBzYCKCABIAQ2AiQgASAENgIgIAEgBCAGQRRsajYCLCACQfADaiACQZABaiAIEOINIAIoAvADIgNBAkcNAiABKAJAIgMgASgCREcNAAsgCCgCACIGRQ0AIAEoAiwiBCABKAIkIgNrQRRuIQUgAyAERwRAIANBEGohAwNAIAMoAgAiBygCACEEIAcgBEEBazYCACAEQQFGBEAgAygCABAwCyADQRRqIQMgBUEBayIFDQALCyABKAIoIgRFDQAgBkEEaygCACIFQXhxIQMgAyAEQRRsIgRBBEEIIAVBA3EiBRtqSQ0FIAVBAEcgAyAEQSdqS3ENBiAGELwFCyABQQA2AiAgAUEwaiEGAkACQCABKAIwRQ0AIAJB8ANqIAJBkAFqIAYQ4g0gAigC8AMiA0ECRw0CIAYoAgAiBEUNACABKAI8IgcgASgCNCIDa0EUbiEFIAMgB0cEQCADQRBqIQMDQCADKAIAIggoAgAhByAIIAdBAWs2AgAgB0EBRgRAIAMoAgAQMAsgA0EUaiEDIAVBAWsiBQ0ACwsgASgCOCIDRQ0AIARBBGsoAgAiBUF4cSEBIAEgA0EUbCIDQQRBCCAFQQNxIgUbakkNBiAFQQBHIAEgA0EnaktxDQEgBBC8BQsgBkEANgIADAILDAULIAIgAigC/AM2AiAgAiACKQL0AzcDGCACKAKABCEFIAEoAkwgASgCSEcEQCABQQE2AkggASgCwAEiBkF+Rw0CCyAFIAUoAgAiAUEBazYCACABQQFHDQAgBRAwCyAAQX82AgAMAQsgAiABKAL8ATYCvAIgAiABKQL0ATcCtAIgAiABKQLsATcCrAIgAiABKQLkATcCpAIgAiABKQLcATcCnAIgAiABKQLUATcClAIgAiABKQLMATcCjAIgAiABKQLEATcChAIgAiACKAIgNgKIASACIAIpAxg3AoABIAIgBTYCjAEgAiADNgJ8IAJBkAFqIAFB0ABqQfAA/AoAACACIAY2AoACAkACQAJAAkACQCABKAKIAiIGKAIAIggEQCAGKAIEIgRBAEgNBEEBIQcgBEUNAiAEEJABIgcNAQwJCyACQcACaiACQfwAaiABKAKMAkEAEIkCDAILIARFDQAgByAIIAT8CgAACwJAAkACfyADQQFGBEAgAiACQYABaiIGKAIINgL8AyACIAYpAgA3AvQDIAIgBUEIajYC8AMgAkEIaiACQfADahDqCSACKAIMIQMgAigCCAwBCyACKAKAASIGIAUoAhAiA08NASAFKAIMIAZB5ABsaiIDKAIABEAgAygCBCIGIAUoAnBPDQMgBSgCbCAGQQR0aiIGKAIIIQMgBigCBAwBCyACQRBqIAVBCGogBhDQECACKAIUIQMgAigCEAshBiADQQBIDQMCQCADRQRAQQEhCAwBCyADEJABIghFBEAMCgsgA0UNACAIIAYgA/wKAAALIAJBfzYCsAMgAiADNgKsAyACIAg2AqgDIAIgAzYCpAMgAkF+NgKYAyACQf8BOgDkAyACQXw2AtACIAJBADoA7AMgAkEAOwHqAyACQX42AsACIAJBsANqENcFIAJBfjYC2AMgAkKAgICAYDcDyAMgAkKAgICAwAA3A8ADIAIgBDYCvAMgAiAHNgK4AyACIAQ2ArQDIAJBADYCsAMMAgsgBiADQeT2yAAQhRMAC0GkuMQAEJ0VAAsgASgClAIiBkEASA0AAkAgBkUEQEEBIQEMAQsgASgCkAIhAyAGEJABIgFFBEAMBwsgBkUNACABIAMgBvwKAAALIAIoAvwBIgNBAEgNAEEBIQQgA0UNASACKAL4ASEHIAMQkAEiBEUEQAwGCyADRQ0BIAQgByAD/AoAAAwBCxCeFQALIAIgAzYC3AQgAiAENgLYBCACIAM2AtQEIAJBfjYCyAQgAkH/AToAlAUgAkF8NgKABCACQQA6AJwFIAJBADsBmgUgAkF+NgLwAyACQX82AuAEIAJB4ARqENcFIAJBfjYCiAUgAkKAgICAYDcD+AQgAkKAgICAwAA3A/AEIAIgBjYC7AQgAiABNgLoBCACIAY2AuQEIAJBADYC4AQgAkEYakEEciACQcACaiACQfADahCyESACQX42AmggAkELNgIYIAJBkAFqEJcEIAUgBSgCACIBQQFrNgIAIAFBAUYEQCAFEDALIAAgAkEYakHgAPwKAAALIAJBoAVqJAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBARCnFAALwRMCDX8IfiMAQdACayIDJAACQAJAAkACfwJAAn8CQAJAAkACQCABKAIQQX9GBEAgASgCKCEMIAEoAiQhDyABKAIgIQ0gASgCFCEOIAEoAhghCiABKAIcIQQgA0F/NgI4IARB8ABsIgUgCmohCyAKIQEgBEUNAyACQQhqIQkgA0GQAmohBANAIANBmAFqIgIgBiAKaiIBQfAA/AoAACADQYgCaiAJIAIQtAIgAUHwAGohASADKAKIAkEBRgRAIAMgBCkDODcDQCADIAQpAzA3AzggAyAEKQMoNwMwIAMgBCkDIDcDKCADIAQpAxg3AyAgAyAEKQMQNwMYIAMgBCkDCDcDECADIAQpAwA3AwgMBQsCQCADKAKMAiICQQJHBEAgAyAEKAI4NgKQASADIAQpAjA3A4gBIAMgBCkCKDcDgAEgAyAEKQIgNwN4IAMgBCkCGDcDcCADIAQpAhA3A2ggAyAEKQIINwNgIAMgBCkCADcDWCACQX9HDQELIAUgBkHwAGoiBkcNAQwGCwsgAyADKAKQATYC0AEgAyADKQOIATcDyAEgAyADKQOAATcDwAEgAyADKQN4NwO4ASADIAMpA3A3A7ABIAMgAykDaDcDqAEgAyADKQNgNwOgASADIAMpA1g3A5gBQYACEJABIgZFDQEgBiACNgIAIAYgAykDmAE3AgQgBiADKQOgATcCDCAGIAMpA6gBNwIUIAYgAykDsAE3AhwgBiADKQO4ATcCJCAGIAMpA8ABNwIsIAYgAykDyAE3AjQgBiADKALQATYCPEEBIQIgA0EBNgJUIAMgBjYCUCADQQQ2AkwgASALRg0CIAtB8ABrIQQgA0GQAmohCANAIAQgAWshByABIQUDQCADQZgBaiIBIAVB8AD8CgAAIANBiAJqIAkgARC0AiAFQfAAaiEBIAMoAogCQQFGBEAgAygCOEF/RwRAIANBCGoQogILIAMgCCkDODcDQCADIAgpAzA3AzggAyAIKQMoNwMwIAMgCCkDIDcDKCADIAgpAxg3AyAgAyAIKQMQNwMYIAMgCCkDCDcDECADIAgpAwA3AwggASALRg0FIAVB1AFqIQEgB0HwAG4hBgNAIAFBBGsoAgAiB0EASgRAIAEoAgAiBEEEaygCACIFQXhxIQkgCUEEQQggBUEDcSIFGyAHakkNDiAFQQBHIAkgB0EnaktxDQ8gBBC8BQsgAUHkAGsQ/g0gAUHwAGohASAGQQFrIgYNAAsMBQsCQCADKAKMAiIFQQJHBEAgAyAIKAI4NgKQASADIAgpAjA3A4gBIAMgCCkCKDcDgAEgAyAIKQIgNwN4IAMgCCkCGDcDcCADIAgpAhA3A2ggAyAIKQIINwNgIAMgCCkCADcDWCAFQX9HDQELIAdB8ABrIQcgCyABIgVHDQEMBQsLIAMgAygCkAE2AtABIAMgAykDiAE3A8gBIAMgAykDgAE3A8ABIAMgAykDeDcDuAEgAyADKQNwNwOwASADIAMpA2g3A6gBIAMgAykDYDcDoAEgAyADKQNYNwOYASADKAJMIAJGBEAgA0HMAGogAkEBQQRBwAAQsxEgAygCUCEGCyAGIAJBBnRqIgcgBTYCACAHIAMpA5gBNwIEIAcgAykDoAE3AgwgByADKQOoATcCFCAHIAMpA7ABNwIcIAcgAykDuAE3AiQgByADKQPAATcCLCAHIAMpA8gBNwI0IAcgAygC0AE2AjwgAyACQQFqIgI2AlQgASALRw0ACwwCCyADQZgBaiACQQhqIAEQtAIgAygCmAFBAUYEQCADIAMpA9gBIhA3AsQCIAMgAykD0AEiETcCvAIgAyADKQPIASISNwK0AiADIAMpA8ABIhM3AqwCIAMgAykDuAEiFDcCpAIgAyADKQOwASIVNwKcAiADIAMpA6gBIhY3ApQCIAMgAykDoAEiFzcCjAIgACAQNwJAIAAgETcCOCAAIBI3AjAgACATNwIoIAAgFDcCICAAIBU3AhggACAWNwIQIAAgFzcCCCAAQQE2AgAMCAsgAyADKQLUASIQNwPAAiADIAMpAswBIhE3A7gCIAMgAykCxAEiEjcDsAIgAyADKQK8ASITNwOoAiADIAMpArQBIhQ3A6ACIAMgAykCrAEiFTcDmAIgAyADKQKkASIWNwOQAiADIAMpApwBIhc3A4gCIAAgEDcCQCAAIBE3AjggACASNwIwIAAgEzcCKCAAIBQ3AiAgACAVNwIYIAAgFjcCECAAIBc3AghBfyEMQQQMBgtBBBCnFAALAkAgDgRAIApBBGsoAgAiAUF4cSEEIAQgDkHwAGwiBUEEQQggAUEDcSIBG3JJDQggAUEARyAEIAVBJ2pLcQ0BIAoQvAULIAMoAlAhBiADKAJMDAMLDAcLIAsgAWtB8ABuIQIgASALRg0AA0AgAUHgAGooAgAiB0EASgRAIAFB5ABqKAIAIgRBBGsoAgAiBUF4cSEJIAlBBEEIIAVBA3EiBRsgB2pJDQcgBUEARyAJIAdBJ2pLcQ0IIAQQvAULIAEQ/g0gAUHwAGohASACQQFrIgINAAsLQQAhAiAOBEAgCkEEaygCACIBQXhxIQQgBCAOQfAAbCIFQQRBCCABQQNxIgEbckkNBSABQQBHIAQgBUEnaktxDQYgChC8BQtBBCEGQQALIQUgAygCOCIHQX9GDQAgAyADKQIUNwOYASADIAMpAhw3A6ABIAMgAykCJDcDqAEgAyADKQIsNwOwASADIAMoAjQ2ArgBIAMgAykCPDcDiAIgAyADKAJENgKQAiADKAIQIQkgAygCDCEEIAMoAgghCiACBEAgBkEEaiEBA0AgARCuBiABQUBrIQEgAkEBayICDQALCyAFBEAgBkEEaygCACIBQXhxIQwgDCAFQQZ0IgJBBEEIIAFBA3EiARtySQ0EIAFBAEcgDCACQSdyS3ENBSAGELwFCyAAIAk2AhAgACAENgIMIAAgCjYCCCAAIAMpA5gBNwIUIAAgAykDoAE3AhwgACADKQOoATcCJCAAIAMpA7ABNwIsIAAgAygCuAE2AjQgACAHNgI4IAAgAykDiAI3AjwgACADKAKQAjYCRCAAQQE2AgAgDUEBa0F8Sw0CIA9BBGsoAgAiAEF4cSEBIAFBBEEIIABBA3EiABsgDWpJDQMgAEEARyABIA1BJ2pLcQ0EIA8QvAUMAgsgACAPNgIYIAAgDTYCFCAAIAI2AhAgACAGNgIMIAAgBTYCCCAAQQI2AgRBHAshASAAQQA2AgAgACABaiAMNgIACyADQdACaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALthUBCn8jAEGwAWsiAyQAAkACQAJAAkACQAJAAkACQEEBIAEoAhAiBEGAgICAeHMgBEEAThtBAWsOAgACAQsQhRUhCEG8rMkAQQYQuRQhBCAIQf2ayQBBBBDFCSAEEKUUAn8gASgCMEF+RwRAIAEoAjQgASgCOBC5FAwBC0GBAUGAASACLQAAGwshBSAIQdyZwgBBDhDFCSAFEKUUIAEoAhghBiABKAIUIQQCfyACLQABIgxFBEAQhBUMAQsQhRULIQkCQCAGRQ0AIAZB0ABsIQogBCgCSCAEKAJMELkUIQcgA0EYaiAEIAIQoQIgBEHQAGohBSADKAIcIQQgAygCGCELIAxFBEAgC0EBcQ0FIAkgByAEEJ4UIgtBhAFPBEAgCxDTEgsgBEGEAU8EQCAEENMSCyAHQYQBTwRAIAcQ0xILIAZBAUYNASAKQdAAayEHA0AgBUHIAGooAgAgBUHMAGooAgAQuRQhBiADQRBqIAUgAhChAiADKAIUIQQgAygCEEEBRg0HIAkgBiAEEJ4UIgpBhAFPBEAgChDTEgsgBEGEAU8EQCAEENMSCyAGQYQBTwRAIAYQ0xILIAVB0ABqIQUgB0HQAGsiBw0ACwwBCyALQQFxDQQgBxDgFUUNAyAJIAcgBBClFCAGQQFGDQAgCkHQAGshBgNAIAVByABqKAIAIAVBzABqKAIAELkUIQcgA0EIaiAFIAIQoQIgAygCDCEEIAMoAghBAXENBSAHEOAVRQ0EIAVB0ABqIQUgCSAHIAQQpRQgBkHQAGsiBg0ACwsgCEGkrMkAQQYQxQkgCRClFCABLQA8IQEgCEHqmcIAQQkQxQlBggFBgwEgARsQpRRBACEFDAULEIUVIQhBwZnCAEEMELkUIQEgCEH9mskAQQQQxQkgARClFAwECxCFFSEIQZmQyQBBBRC5FCEEIAhB/ZrJAEEEEMUJIAQQpRQgASgCGCABKAIcELkUIQQgCEHNmcIAQQYQxQkgBBClFAJ/IAItAAFFBEAQhBUhBkEADAELEIUVIQZBAQshBCADIAY2AqABIAMgBDYCnAEgAyACNgKsASABLQAwIQJB6PXFAEEFELkUIQcgA0EANgKkASADIAc2AqgBAn8CQAJAAkAgAkEBaw4CAQIAC0HkrMkAQQgQxQkMAgtBuZnCAEEIEMUJDAELQcisyQBBBBDFCQshAgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQEQCAHEOAVRQ0CIAYgByACEKUUDAELIAYgByACEJ4UIgRBhAFPBEAgBBDTEgsgAkGEAU8EQCACENMSCyAHQYQBSQ0AIAcQ0xILIAEtACBBAWsODBACAwQFBgcICQoLDAELQTMQkAEiAUUNGCABQZuewgAoAAA2AC8gAUGUnsIAKQAANwAoIAFBjJ7CACkAADcAICABQYSewgApAAA3ABggAUH8ncIAKQAANwAQIAFB9J3CACkAADcACCABQeydwgApAAA3AAAgAUEzELgUIQQgAUEEaygCACIFQXhxIQYgBkE3QTsgBUEDcSIFG0kNESAFQQBHIAZB2wBPcQ0SIAEQvAUgB0GEAU8EQCAHENMSCyACQYQBSQ0QIAIQ0xIMEAsgA0EgaiADQZwBakH9mskAQQRBs9HFAEEGEO8MIAMoAiBBAXFFDRIgAygCJCEEDA8LIANBMGogA0GcAWpB/ZrJAEEEQaigxQBBBhDvDCADKAIwQQFxRQ0RIAMoAjQhBAwOCyADQThqIANBnAFqQf2ayQBBBEH3vsQAQQUQ7wwgAygCOEEBcUUNECADKAI8IQQMDQsgA0FAayADQZwBakH9mskAQQRBrqDFAEEHEO8MIAMoAkBBAXFFDQ8gAygCRCEEDAwLIANByABqIANBnAFqQf2ayQBBBEG/0cUAQQcQ7wwgAygCSEEBcUUNDiADKAJMIQQMCwsgA0HYAGogA0GcAWpB/ZrJAEEEQdesyQBBBBDvDCADKAJYQQFxRQ0GIAMoAlwhBAwKCyADQegAaiADQZwBakH9mskAQQRBopnCAEEJEO8MIAMoAmhBAXFFDQYgAygCbCEEDAkLIANB8ABqIANBnAFqQf2ayQBBBEGEv8QAQQQQ7wwgAygCcEEBcUUNCyADKAJ0IQQMCAsgA0H4AGogA0GcAWpB/ZrJAEEEQbysyQBBBhDvDCADKAJ4QQFxRQ0KIAMoAnwhBAwHCyADQYABaiADQZwBakH9mskAQQRB/L7EAEEIEO8MIAMoAoABQQFxRQ0JIAMoAoQBIQQMBgsgA0GIAWogA0GcAWpB/ZrJAEEEQY+7xQBBBRDvDCADKAKIAUEBcUUNAyADKAKMASEEDAULIANBkAFqIANBnAFqQf2ayQBBBEHO6cIAQQsQ7wwgAygCkAFBAXFFDQcgAygClAEhBAwECyADQdAAaiADQZwBaiABKAIoIAEoAiwQ8AwgAygCUEEBcUUNBiADKAJUIQQMAwsgA0HgAGogA0GcAWogASgCKCABKAIsEPAMIAMoAmBBAXFFDQUgAygCZCEEDAILIAEtACEhAUGrmcIAQQgQuRQhAgJAIAMoAqQBRQ0AIAMoAqgBIgRBhAFJDQAgBBDTEgsgA0EANgKkASADIAI2AqgBAn8CQAJAAkAgAUEBaw4CAQIAC0G8nMgAQQUQxQkMAgtBs5nCAEEGEMUJDAELQYy7xQBBAxDFCQshBQJAIAMoApwBQQFGBEAgAhDgFUUNASADKAKgASACIAUQpRQMBgsgAygCoAEgAiAFEJ4UIgFBhAFPBEAgARDTEgsgBUGEAU8EQCAFENMSCyACQYQBSQ0FIAIQ0xIMBQtBMxCQASIBRQ0JIAFBm57CACgAADYALyABQZSewgApAAA3ACggAUGMnsIAKQAANwAgIAFBhJ7CACkAADcAGCABQfydwgApAAA3ABAgAUH0ncIAKQAANwAIIAFB7J3CACkAADcAACABQTMQuBQhBCABQTMQ2RIgAkGEAU8EQCACENMSCyAFQYQBSQ0BIAUQ0xIMAQsgA0EoaiADQZwBakH9mskAQQRB9L7EAEEDEO8MIAMoAihBAXFFDQMgAygCLCEECyADKAKgASIBQYQBTwRAIAEQ0xILAkAgAygCpAFFDQAgAygCqAEiAUGEAUkNACABENMSC0EBIQUgCEGEAUkEQCAEIQgMBwsgCBDTEiAEIQgMBgtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAMoAqABIQECQCADKAKkAUUNACADKAKoASICQYQBSQ0AIAIQ0xILIAhB05nCAEEJEMUJIAEQpRRBACEFDAMLIAQhBkEzEJABIgEEQCABQZuewgAoAAA2AC8gAUGUnsIAKQAANwAoIAFBjJ7CACkAADcAICABQYSewgApAAA3ABggAUH8ncIAKQAANwAQIAFB9J3CACkAADcACCABQeydwgApAAA3AAAgAUEzELgUIQQgAUEzENkSIAdBhAFPBEAgBxDTEgsMAgsMAwsgByEGCyAGQYMBSwRAIAYQ0xILIAlBhAFPBEAgCRDTEgtBASEFIAhBhAFPBEAgCBDTEgsgBCEICyAAIAg2AgQgACAFNgIAIANBsAFqJAAPC0EBEKcUAAu2DQEFfwJAAkACQAJAAkACQAJAAkACQCAAKAIwIgFB9f///wdqIgNBACABIANPGw4EAQIDBAALIAAoAgAiAUUNBCAAKAIEIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQUgAkEARyAAIAFBJ2pLcQ0GDAcLAkACQAJAIAFB9////wdqIgNBACABIANPGw4CAQIACyAAKAIAIgEEQCAAKAIEIgJBBGsoAgAiBEF4cSEDIANBBEEIIARBA3EiBBsgAWpJDQcgBEEARyADIAFBJ2pLcQ0IIAIQvAULIAAoAgwiAUUNBSAAKAIQIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQYgAkEARyAAIAFBJ2pLcQ0HDAgLAkACQAJAAkACQAJAAkACQAJAAkBBAyABQYCAgIB4cyABQQBOGw4JAQIDBAUGBwgJAAsCfyAAKAIAIgFBf0YEQCAAKAIEIgFFDQ9BCAwBCyABBEAgACgCBCABENkSCyAAKAIMIgFFDQ5BEAsgAGooAgAiA0EEaygCACICQXhxIQAgAEEEQQggAkEDcSICGyABakkNDiACQQBHIAAgAUEnaktxDQ8MEAsgACgCACIBRQ0MIAAoAgQiA0EEaygCACICQXhxIQAgAEEEQQggAkEDcSICGyABakkNDSACQQBHIAAgAUEnaktxDQ4MDwsgACgCACIBRQ0LIAAoAgQiA0EEaygCACICQXhxIQAgAEEEQQggAkEDcSICGyABakkNDCACQQBHIAAgAUEnaktxDQ0MDgsgACgCACIBBEAgACgCBCICQQRrKAIAIgRBeHEhAyADQQRBCCAEQQNxIgQbIAFqSQ0MIARBAEcgAyABQSdqS3ENDSACELwFCyAAKAIMIgEEQCAAKAIQIgJBBGsoAgAiBEF4cSEDIANBBEEIIARBA3EiBBsgAWpJDQwgBEEARyADIAFBJ2pLcQ0NIAIQvAULIAAoAhgiAUUNCiAAKAIcIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQsgAkEARyAAIAFBJ2pLcQ0MDA0LIAEEQCAAKAI0IgJBBGsoAgAiBEF4cSEDIANBBEEIIARBA3EiBBsgAWpJDQsgBEEARyADIAFBJ2pLcQ0MIAIQvAULIAAoAhBBf0YNCSAAEP8JDwsgABDBBw8LIAAoAgAiAUUNByAAKAIEIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQggAkEARyAAIAFBJ2pLcQ0JDAoLIAAoAgAiAQRAIAAoAgQiAkEEaygCACIEQXhxIQMgA0EEQQggBEEDcSIEGyABakkNCCAEQQBHIAMgAUEnaktxDQkgAhC8BQsgACgCDCIBBEAgACgCECICQQRrKAIAIgRBeHEhAyADQQRBCCAEQQNxIgQbIAFqSQ0IIARBAEcgAyABQSdqS3ENCSACELwFCyAAKAIYIgFFDQYgACgCHCIDQQRrKAIAIgJBeHEhACAAQQRBCCACQQNxIgIbIAFqSQ0HIAJBAEcgACABQSdqS3ENCAwJCyAAKAIAIgEEQCAAKAIEIgJBBGsoAgAiBEF4cSEDIANBBEEIIARBA3EiBBsgAWpJDQcgBEEARyADIAFBJ2pLcQ0IIAIQvAULIAAoAgwiAQRAIAAoAhAiAkEEaygCACIEQXhxIQMgA0EEQQggBEEDcSIEGyABakkNByAEQQBHIAMgAUEnaktxDQggAhC8BQsgACgCGCIBRQ0FIAAoAhwiA0EEaygCACICQXhxIQAgAEEEQQggAkEDcSICGyABakkNBiACQQBHIAAgAUEnaktxDQcMCAsgACgCACIBRQ0EIAAoAgQiA0EEaygCACICQXhxIQAgAEEEQQggAkEDcSICGyABakkNBSACQQBHIAAgAUEnaktxDQYMBwsgABDBBw8LIAAoAgAiAUUNAiAAKAIEIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQMgAkEARyAAIAFBJ2pLcQ0EDAULIAAoAgAiAUUNASAAKAIEIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQIgAkEARyAAIAFBJ2pLcQ0DDAQLIAAoAgAiAUUNACAAKAIEIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQEgAkEARyAAIAFBJ2pLcQ0CIAMQvAULDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAMQvAULqhECCH8DfiMAQTBrIggkAAJAAkACQAJ/AkACQCACRQ0AIAEgAmohCSABIQMCQANAAn8gAywAACIFQQBOBEAgBUH/AXEhBSADQQFqDAELIAMtAAFBP3EhByAFQR9xIQQgBUFfTQRAIARBBnQgB3IhBSADQQJqDAELIAMtAAJBP3EgB0EGdHIhByAFQXBJBEAgByAEQQx0ciEFIANBA2oMAQsgBEESdEGAgPAAcSADLQADQT9xIAdBBnRyciEFIANBBGoLIQQgBUEgckHlAEYEQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkAgBgRAIAIgBk0EQCACIAZHDQcgAkEBaiIEDQIgAS0AACEFQQAhBAwDCyABIAZqLAAAQUBIDQYLIAZBAWohBAsgAiAETQRAIAIgBEcNAkEAIQUMDQsgASAEaiwAACIFQb9/TA0BCyABIARqIQMgBcBBAE4NASADLQABQT9xIQkgBUEfcSEHIAdBBnQgCXIgBUH/AXEiCkHfAU0NAhogAy0AAkE/cSAJQQZ0ciEFIAUgB0EMdHIgCkHwAUkNAhogB0ESdEGAgPAAcSADLQADQT9xIAVBBnRycgwCCyABIAIgBCACQdCPyQAQ/RQACyAFQf8BcQsgAiAEayEEQStGBEAgBEECTwRAIAMsAAFBQEgNAwsgBEEBayEEIANBAWohAwtBACEFAkACQAJAIAQOAgsAAQtBASEFIAMtAAAiB0Eraw4DCgEKAQsgAy0AACEHCwJAAkACQCAHQf8BcUEraw4DAQIAAgsgBEEBayEHIANBAWohAyAEQRFJDQUDQCAIQRBqIAsgC0I/h0IKQgAQ7hEgCCkDGCAIKQMQIgxCP4dSBEBBAyEEDAsLIAMtAABBMGsiAkEJSwRAQQEhBQwMCyAMIAwgAq0iDX0iC1UgDUIAUnMEQEEDIQUMDAsgA0EBaiEDIAdBAWsiBw0ACwwICyAEQQFrIQQgA0EBaiEDCyAEQRBJDQIDQCAIIAsgC0I/h0IKQgAQ7hEgCCkDCCAIKQMAIgxCP4dSBEBBAiEEDAkLIAMtAABBMGsiAkEJSwRAQQEhBQwKCyACrSINIAx8IgsgDFMEQEECIQUMCgsgA0EBaiEDIARBAWsiBA0ACwwGCyABIAJBACAGQcCPyQAQ/RQACyADIARBASAEQeCPyQAQ/RQACyAERQ0BQQEhBQNAIAMtAABBMGsiAkEJSw0GIANBAWohAyACrSALQgp+fCELIARBAWsiBA0ACwwDCyAHDQELDAELQQEhBQNAIAMtAABBMGsiAkEJSw0DIANBAWohAyALQgp+IAKtfSELIAdBAWsiBw0ACwsgBiECDAQLQQEgBCADLQAAQTBrQf8BcUEKTxshBQsgACAFOgAIIABC/////5+AgICAfzcDAAwGCyAGIANrIARqIQYgCSAEIgNHDQALCyACRQ0AQQAhCQJAAkACQANAAkAgASAJaiEFAkACQAJAAkAgAiAJayIGQQhPBEAgBUEDakF8cSIDIAVGDQEgAyAFayEDQQAhBANAIAQgBWotAABBLkYNBSAEQQFqIgQgA0cNAAsgAyAGQQhrIgdLDQMMAgsgAiAJRg0EIAUtAABBLkYEQEEAIQQMBAsgBkEBRg0EIAUtAAFBLkYEQEEBIQQMBAsgBkECRg0EIAUtAAJBLkYEQEECIQQMBAsgBkEDRg0EIAUtAANBLkYEQEEDIQQMBAsgBkEERg0EIAUtAARBLkYEQEEEIQQMBAsgBkEFRg0EIAUtAAVBLkYEQEEFIQQMBAsgBkEGRg0EIAUtAAZBLkcNBEEGIQQMAwsgBkEIayEHQQAhAwsDQCADIAVqIgQoAgAiCkGAgoQIIApBrty48QJza3IgBEEEaigCACIEQYCChAggBEGu3LjxAnNrcnFBgIGChHhxQYCBgoR4Rw0BIANBCGoiAyAHTQ0ACwsgAyAGRg0BIAMgBWohBSACIANrIAlrIQZBACEEA0AgBCAFai0AAEEuRwRAIAYgBEEBaiIERw0BDAMLCyADIARqIQQLIAIgBCAJaiIDSwRAIAEgA2otAABBLkYNAwsgA0EBaiIJIAJNDQELCyACQQBIDQEgAhCQASIERQ0CIAIEQCAEIAEgAvwKAAALQgAhDCACDAULAkACQCACIANBAWoiBUsEQCABIAVqLAAAQUBIDQELIANBAEgNAiADRQRAQQEhBAwGCyADEJABIgQNAUEBEKcUAAsgASACIAUgAkHwj8kAEP0UAAsgA0UNAyAEIAEgA/wKAAAMAwsQnhUAC0EBEKcUAAsgAEL/////v4CAgIB/NwMADAILIAIgBWshBiAIIAM2AiwgCCAENgIoIAggAzYCJCACIAVGBH8gAwUgCEEkaiADIAZBAUEBELMRIAgoAiwhAyAIKAIoIQQgBgRAIAMgBGogASAFaiAG/AoAAAsgCCgCJAshAiAGrSEMIAMgBmoLIQNBAiEGAkAgA0UEQEEAIQMgBCEFDAELIAQtAABBLUcEQCAEIQUMAQsgBEEBaiEFQQAhBiADQQFGBEBBACEDDAELIAUsAAAiAUG/f0wEQCAEIANBASADQbiWyQAQ/RQACyAFIAQgAUErRyIBGyEFIAMgAWshAwsgCEEkaiAFIAMQ3AkgCC0AKCEBIAgoAiQiBUF/RgRAIAAgAToACCAAQv////+vgICAgH83AwAgAkUNASAEIAIQ2RIMAQsgACAILQArOgAHIAAgCC8AKTsABSAIKAIsIQMgACAMIAt9NwMQIAAgBkEBIAMbOgAMIAAgAzYCCCAAIAE6AAQgACAFNgIAIAJFDQAgBEEEaygCACIBQXhxIQAgAEEEQQggAUEDcSIBGyACakkNASABQQBHIAAgAkEnaktxDQIgBBC8BQsgCEEwaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALhxECEn8BfgJAAkACQAJAAkACQAJAAkAgACkDACITp0EEa0EAIBNCBFUbDgMAAQIDCyATQn9SBEAgABDfAQ8LAkACQAJAAkACQAJAAkACQAJAAkACQEEKIAAoAggiAUEbayABQRpNGw4KAQIDBAUGBwgJCgALIAAoAogCIgEEQCAAKAKMAiABENkSCyAAKAKsAiICKAIAIQEgAiABQQFrNgIAIAFBAUYEQCAAKAKsAhAwCyAAQQhqIABBqAFqEK8EIAAoAvgBQX9HBEAgAEH4AWoQ5g0LEIgEIABBKGoQigwgAEHYAGoQiAQgAEH4AGoQigwgAEGUAmoQpQQgACgClAIiAQRAIAAoApgCIAFByAFsENkSCyAAKAKkAiECIAAoAqgCIgMEQCACIQEDQCABKAIAIgQEQCABQQRqKAIAIgdBBGsoAgAiBUF4cSEGIAZBBEEIIAVBA3EiBRsgBGpJDRAgBUEARyAGIARBJ2pLcQ0RIAcQvAULIAFBDGohASADQQFrIgMNAAsLIAAoAqACIgBFDQwMDwsgACgCYCIBBEAgACgCZCABENkSCyAAQRBqIAAoAoQBIgMoAgAhASADIAFBAWs2AgAgAUEBRgRAIAAoAoQBEDALEIgEIABBMGoQigwgAEHsAGoQpQQgACgCbCIBBEAgACgCcCABQcgBbBDZEgsgACgCfCECIAAoAoABIgMEQCACIQEDQCABKAIAIgQEQCABQQRqKAIAIgdBBGsoAgAiBUF4cSEGIAZBBEEIIAVBA3EiBRsgBGpJDQ8gBUEARyAGIARBJ2pLcQ0QIAcQvAULIAFBDGohASADQQFrIgMNAAsLIAAoAngiAEUNCwwOCyAAKAIMIgEEQCAAKAIQIAEQ2RILIAAoAkgiAigCACEBIAIgAUEBazYCACABQQFGBEAgACgCSBAwCyAAKAIcIQIgACgCICIDBEAgAiEBA0AgARCIBCABQSBqEIoMIAFB0ABqIQEgA0EBayIDDQALCyAAKAIYIgEEQCACIAFB0ABsENkSCyAAQSRqEOQJDwsgACgCEEF/RwRAIAAoAsABIgEEQCAAKALEASABENkSCyAAKALkASICKAIAIQEgAiABQQFrNgIAIAFBAUYEQCAAKALkARAwCyAAQRBqIABB4ABqEK8EIAAoArABQX9HBEAgAEGwAWoQ5g0LEIgEIABBMGoQigwgAEHMAWoQpQQgACgCzAEiAQRAIAAoAtABIAFByAFsENkSCyAAKALcASECIAAoAuABIgMEQCACIQEDQCABKAIAIgQEQCABQQRqKAIAIgdBBGsoAgAiBUF4cSEGIAZBBEEIIAVBA3EiBRsgBGpJDQ4gBUEARyAGIARBJ2pLcQ0PIAcQvAULIAFBDGohASADQQFrIgMNAAsLIAAoAtgBIgBFDQoMDQsgACgCyAEiAigCACEBIAIgAUEBazYCACABQQFGBEAgACgCyAEQMAsgAEEYaiAAQegAahCvBCAAKAK4AUF/RwRAIABBuAFqEOYNCxCIBCAAQThqEIoMDwsgACgClAEiAQRAIAAoApgBIAEQ2RILIABBEGogACgCiAEiAygCACEBIAMgAUEBazYCACABQQFGBEAgACgCiAEQMAsQrwQgACgCYEF/RwRAIABB4ABqEOYNCyAAKAJwIgFBf0YNCCAAQfAAahClBCABBEAgACgCdCABQcgBbBDZEgsgACgCgAEhAiAAKAKEASIDBEAgAiEBA0AgASgCACIEBEAgAUEEaigCACIHQQRrKAIAIgVBeHEhBiAGQQRBCCAFQQNxIgUbIARqSQ0MIAVBAEcgBiAEQSdqS3ENDSAHELwFCyABQQxqIQEgA0EBayIDDQALCyAAKAJ8IgBFDQgMCwsgACgCyAEiAQRAIAAoAswBIAEQ2RILIAAoAvgBIgIoAgAhASACIAFBAWs2AgAgAUEBRgRAIAAoAvgBEDALIABB6ABqEK8EIAAoArgBQX9HBEAgAEG4AWoQ5g0LIABBGGoQiAQgAEE4ahCKDCAAQdQBahDkCQ8LIAAoAngiAigCACEBIAIgAUEBazYCACABQQFGBEAgACgCeBAwCyAAQRhqEK8EIAAoAmhBf0YNBiAAQegAahDmDQ8LIABBDGoCQCAAKAIYIgRBf0YNACAAKAIcIQIgACgCICIDBEAgAiEBA0AgARCmByABQcgBahCIBCABQegBaiEBIANBAWsiAw0ACwsgBEUNACACIARB6AFsENkSCxDmDSAAKAIkIgIoAgAhASACIAFBAWs2AgAgAUEBRw0FIAAoAiQQMA8LIABBDGoCQCAAKAIYIgRBf0YNACAAKAIcIQIgACgCICIDBEAgAiEBA0AgARCmByABQcgBahCIBCABQegBaiEBIANBAWsiAw0ACwsgBEUNACACIARB6AFsENkSCxDmDSAAKAIkIgIoAgAhASACIAFBAWs2AgAgAUEBRw0EIAAoAiQQMA8LIABBEGoCQCAAKAIwIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoAjAQMAsQoQwgACgCPCIBQX9GDQMgAUUNAwwHCyAAQRBqAkAgACgCMCIBRQ0AIAEgASgCACIBQQFrNgIAIAFBAUcNACAAKAIwEDALEKEMIAAoAjwiAUF/Rg0CIAFFDQIMBgsgAEEIakEEQQggACgCCEF/RhtqEOYNDwsgAEEMahDmDSAAQRhqEOYNIABBJGoQpQQgACgCJCIBRQ0AIAAoAigiAkEEaygCACIDQXhxIQAgACABQcgBbCIBQQRBCCADQQNxIgMbakkNASADQQBHIAAgAUEnaktxDQIgAhC8BQsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgAiAAQQxsENkSDwsgACgCQCABENkSC8AQAhV/An4jAEHQAmsiEiQAAkAgAUECSQ0AQoCAgICAgICAwAAgAa0iGoAhGyAaIBt+QoCAgICAgICAwABSrQJ/IAFBgSBPBEBBASABQQFyZ0EfcyIFQQFxIAVBAXZqIgV0IAEgBXZqQQF2DAELQcAAIAEgAUEBdmsiBSAFQcAATxsLIRMgG3whGyAAQSBrIRdBASEJA0BBACEUQQEhCyABIA9LIhkEQCAPQQV0IhAgAGohDSAbIA9BAXQCfwJAIAEgD2siCyATSQ0AAkAgC0ECSQRAIAshCgwBCwJAIA0oAiAiBSANKAIAIgpHBEAgBSAKayEGDAELAn8gBUUEQEEEIQggDUEkagwBCyANKAIoIgYgDSgCCCIKSyAGIApJayANKAIkIgYgDSgCBCIKSyAGIApJayAGIApGGyIGQf8BcQ0BQQwhCCANQSxqCygCACIGIAggDWooAgAiCksgBiAKSWshBgsCQAJAAkAgBkF/RiIVRQRAQQIhCiALQQJGDQQgDSEGA0ACQCAFIAZBQGsoAgAiCEcEQCAIIAVrIQUMAQsCfyAFQQFHBEAgDSAKQQV0akEEaiEOQQQMAQsgBkHIAGooAgAiByAGQShqKAIAIgVLIAUgB0trIAZBxABqKAIAIgcgBkEkaigCACIFSyAFIAdLayAFIAdGGyIFQf8BcQ0BIAZBzABqIQ5BDAshBSAOKAIAIgcgBSAGakEgaigCACIFSyAFIAdLayEFCyAFQf8BcUH/AUYNAyAGQSBqIQYgCCEFIAsgCkEBaiIKRw0ACwwBC0ECIQpBASEOIAtBAkYNAiANIQYDQAJAIAUgBkFAaygCACIIRwRAIAggBWshBQwBCwJ/IAVBAUcEQCANIApBBXRqQQRqIQ5BBAwBCyAGQcgAaigCACIHIAZBKGooAgAiBUsgBSAHS2sgBkHEAGooAgAiByAGQSRqKAIAIgVLIAUgB0trIAUgB0YbIgVB/wFxDQEgBkHMAGohDkEMCyEFIA4oAgAiByAFIAZqQSBqKAIAIgVLIAUgB0trIQULIAVB/wFxQf8BRw0CIAZBIGohBiAIIQUgCyAKQQFqIgpHDQALCyALIQoLIAogE0kNAiAVRQ0BIApBAXYiDkUNAQsgFyAKQQV0aiERIAAhCANAIAggEGoiB0EIaiIFKQIAIRogBSAQIBFqIgZBCGoiBSkCADcCACAFIBo3AgAgBkEUaigCACENIAZBEGoiBSgCACELIAUgB0EQaiIFKQIANwIAIAcpAgAhGiAHIAYpAgA3AgAgBiAaNwIAIAUgCzYCACAHQRRqIA02AgAgBkEYaiIFKAIAIQsgBSAHQRhqIgUoAgA2AgAgBSALNgIAIAZBHGoiBSgCACELIAUgB0EcaiIFKAIANgIAIAUgCzYCACARQSBrIREgCEEgaiEIIA5BAWsiDg0ACwsgCkEBdEEBcgwBCyALIBMgCyATSRtBAXQgBEUNABogDUEgIAsgC0EgTxsiBSACIANBAEEAEIABIAVBAXRBAXILIgtBAXZqrX4gDyAJQQF2a60gD618IBt+hXmnIRQLAkACQCAMQQJJDQAgD0EFdCIFIBdqIQ0gACAFaiEVA0AgDEEBayIKIBJBjgJqai0AACAUSQ0BAn8CQAJAIAMgEkEEaiAKQQJ0aigCACIFQQF2IgcgCUEBdiIGaiIWTyAFIAlyQQFxRXFFBEAgACAPIBZrQQV0aiEMIAVBAXFFDQEMAgsgFkEBdAwCCyAMIAcgAiADIAdBAXJnQQF0QT5zQQAQgAELIAlBAXFFBEAgDCAHQQV0aiAGIAIgAyAGQQFyZ0EBdEE+c0EAEIABCwJAIAZFDQAgB0UNACAGIAcgBiAHSSIIGyIFIANLDQAgDCAHQQV0aiEJIAVBBXQiBQRAIAIgCSAMIAgbIAX8CgAACyACIAVqIQYCQCAIRQRAIAIhBQNAAkAgCSgCACIHIAUoAgAiCEcEQCAHIAhrIQgMAQtBBCEIIAcEQCAJKAIIIgcgBSgCCCIISyAHIAhJayAJKAIEIgcgBSgCBCIISyAHIAhJayAHIAhGGyIIQf8BcQ0BQQwhCAsgCCAJaigCACIHIAUgCGooAgAiCEsgByAISWshCAsgDCAJIAUgCEF/RiIHGyIQKQIYNwIYIAwgECkCEDcCECAMIBApAgg3AgggDCAQKQIANwIAIAxBIGohDCAGIAUgCEF/R0EFdGoiBUYNAiAVIAkgB0EFdGoiCUcNAAsMAQsgDSEFA0ACQCAGQSBrIhgoAgAiByAJQSBrIhAoAgAiCEcEQCAHIAhrIREMAQtBZCEIIAZBHGshDiAHBEAgBkEYaygCACIHIAlBGGsoAgAiCEsgByAISWsgDigCACIHIAlBHGsoAgAiCEsgByAISWsgByAIRhsiEUH/AXENASAGQRRrIQ5BbCEICyAOKAIAIgYgCCAJaigCACIJSyAGIAlJayERCyAFIBAgGCARQX9GIgkbIgYpAhg3AhggBSAGKQIQNwIQIAUgBikCCDcCCCAFIAYpAgA3AgAgGCAJQQV0aiEGIBAgEUF/R0EFdGoiCSAMRwRAIAVBIGshBSACIAZHDQELCyAJIQwgAiEFCyAGIAVrIglFDQAgDCAFIAn8CgAACyAWQQF0QQFyCyEJQQEhBSAKIgxBAUsNAAsMAQsgDCEFCyASQY4CaiAFaiAUOgAAIBJBBGogBUECdGogCTYCACAZBEAgBUEBaiEMIAtBAXYgD2ohDyALIQkMAQsLIAlBAXENACAAIAEgAiADIAFBAXJnQQF0QT5zQQAQgAELIBJB0AJqJAALwBQCBn8CfiMAQfABayIJJAAgCUHIAGoiCiADIAQQsAogCUGIAWoiCyAFIAYQsAogCSALrUKAgICAwAKENwPAASAJIAqtQoCAgIDAAoQ3A7gBIAlBDGpB0vPBACAJQbgBahC4DAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAkoAogBIgoEQCAJKAKMASIMQQRrKAIAIg1BeHEhCyALQQRBCCANQQNxIg0bIApqSQ0BIA1BAEcgCyAKQSdqS3ENAiAMELwFCyAJKAJIIgoEQCAJKAJMIgxBBGsoAgAiDUF4cSELIAtBBEEIIA1BA3EiDRsgCmpJDQMgDUEARyALIApBJ2pLcQ0EIAwQvAULIAkCfkHQ8MkALQAABEBByPDJACkDACEQQcDwyQApAwAMAQsgCUG4AWoQuxFB0PDJAEEBOgAAQcjwyQAgCSkDwAEiEDcDACAJKQO4AQsiDzcDGEHA8MkAIA9CAXw3AwAgCUEANgIwIAlCgICAgIABNwMoIAkgEDcDICAJQZCpyQApAwA3AjQgCUGYqckAKQMANwI8QQoQkAEiCkUNBCAKQYy1yQAvAAA7AAggCkGEtckAKQAANwAAIAlBCjYChAEgCSAKNgKAASAJQQo2AnwgCEGr1aoVTw0FAkACQAJAAn8gCEUEQCAJQQA2AlAgCUKAgICAgAE3AkhBAAwBCyAIQTBsIgoQkAEiDEUNCiAIQRhsIQtBACEKIAlBADYCUCAJIAw2AkwgCSAINgJIQQAhCANAIAlBuAFqIAcQ9QMgCSgCyAFBf0YNAiAHQRhqIQcgCSgCSCAIRgRAIAlByABqEJQSIAkoAkwhDAsgCiAMaiINIAkpA7gBNwMAIA0gCSkD4AE3AyggDSAJKQPYATcDICANIAkpA9ABNwMYIA0gCSkDyAE3AxAgDSAJKQPAATcDCCAJIAhBAWoiCDYCUCAKQTBqIQogC0EYayILDQALIAkoAkgLIQcgCUGEgICAeDYCmAEgCSAJKQJMNwKMASAJIAc2AogBIAlBuAFqIAlBGGogCUH8AGogCUGIAWoQ0gMgCSAJKQPoATcDcCAJIAkpA+ABNwNoIAkgCSkD2AE3A2AgCSAJKQPQASIPNwNYIAkgCSkDyAE3A1AgCSAJKQPAATcDSCAPp0F/RwRAIAlByABqEP4JC0EMEJABIghFDQpBACEHIAhB+rHJACgAADYACCAIQfKxyQApAAA3AAAgCUEMNgKEASAJIAg2AoABIAlBDDYCfCAEQavVqhVPDQggBEEwbCIIDQFBCCEMDAILIAkoArgBIQAgCUHIAGoQlwkgCSgCSCIBBEAgDCABQTBsENkSCyAJIAA2ArgBQYiwyQBBKyAJQbgBakGYsckAQbi1yQAQ2hIACyAIEJABIgxFDQkgBCEHC0EAIQogCUEANgLAASAJIAw2ArwBIAkgBzYCuAEgBARAIAMgBEEDdGohDUEQIQgDQEEBIQsCQCADQQRqKAIAIgRFIgcNACADKAIAIQ4gBBCQASILRQ0MIAcNACALIA4gBPwKAAALIAkoArgBIApGBEAgCUG4AWoQlBIgCSgCvAEhDAsgCCAMaiIHQYOAgIB4NgIAIAdBCGsgBDYCACAHQQxrIAs2AgAgB0EQayAENgIAIAkgCkEBaiIKNgLAASAIQTBqIQggDSADQQhqIgNHDQALIAkoArgBIQcLIAlBhICAgHg2ApgBIAkgCSkCvAE3AowBIAkgBzYCiAEgCUG4AWogCUEYaiAJQfwAaiAJQYgBahDSAyAJIAkpA+gBNwNwIAkgCSkD4AE3A2ggCSAJKQPYATcDYCAJIAkpA9ABIg83A1ggCSAJKQPIATcDUCAJIAkpA8ABNwNIIA+nQX9HBEAgCUHIAGoQ/gkLQRUQkAEiA0UNCkEAIQcgA0GttckAKQAANwANIANBqLXJACkAADcACCADQaC1yQApAAA3AAAgCUEVNgKEASAJIAM2AoABIAlBFTYCfCAGQavVqhVPDQUCQCAGQTBsIgRFBEBBCCEDDAELIAQQkAEiA0UNDCAGIQcLQQAhCiAJQQA2AsABIAkgAzYCvAEgCSAHNgK4ASAGBEAgBSAGQQN0aiEHQRAhCANAQQEhCwJAIAVBBGooAgAiBEUiBg0AIAUoAgAhDCAEEJABIgtFDQ8gBg0AIAsgDCAE/AoAAAsgCSgCuAEgCkYEQCAJQbgBahCUEiAJKAK8ASEDCyADIAhqIgZBg4CAgHg2AgAgBkEIayAENgIAIAZBDGsgCzYCACAGQRBrIAQ2AgAgCSAKQQFqIgo2AsABIAhBMGohCCAHIAVBCGoiBUcNAAsgCSgCuAEhBwsgCUGEgICAeDYCmAEgCSAJKQK8ATcCjAEgCSAHNgKIASAJQbgBaiAJQRhqIAlB/ABqIAlBiAFqENIDIAkgCSkD6AE3A3AgCSAJKQPgATcDaCAJIAkpA9gBNwNgIAkgCSkD0AEiDzcDWCAJIAkpA8gBNwNQIAkgCSkDwAE3A0ggD6dBf0cEQCAJQcgAahD+CQtBDRCQASIDRQ0NQQAhByADQY6xyQApAAA3AAUgA0GJsckAKQAANwAAIAlBDTYChAEgCSADNgKAASAJQQ02AnwgAkGr1aoVTw0FAkAgAkEwbCIERQRAQQghAwwBCyAEEJABIgNFDQ8gAiEHC0EAIQogCUEANgLAASAJIAM2ArwBIAkgBzYCuAEgAgRAIAEgAkEDdGohBUEQIQgDQEEBIQsCQCABQQRqKAIAIgJFIgQNACABKAIAIQYgAhCQASILRQ0SIAQNACALIAYgAvwKAAALIAkoArgBIApGBEAgCUG4AWoQlBIgCSgCvAEhAwsgAyAIaiIEQYOAgIB4NgIAIARBCGsgAjYCACAEQQxrIAs2AgAgBEEQayACNgIAIAkgCkEBaiIKNgLAASAIQTBqIQggBSABQQhqIgFHDQALIAkoArgBIQcLIAlBhICAgHg2ApgBIAkgCSkCvAE3AowBIAkgBzYCiAEgCUG4AWogCUEYaiAJQfwAaiAJQYgBahDSAyAJIAkpA+gBNwNwIAkgCSkD4AE3A2ggCSAJKQPYATcDYCAJIAkpA9ABIg83A1ggCSAJKQPIATcDUCAJIAkpA8ABNwNIIA+nQX9HBEAgCUHIAGoQ/gkLIAAgCSkDQDcDKCAAIAkpAzg3AyAgACAJKQMwNwMYIAAgCSkDKDcDECAAIAkpAyA3AwggACAJKQMYNwMAIABBBzoAPCAAIAkpAgw3AjAgACAJKAIUNgI4IAlB8AFqJAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQQEQpxQACxCeFQALQQgQpxQAC0EBEKcUAAtBCBCnFAALQQEQpxQAC0EBEKcUAAtBCBCnFAALQQEQpxQAC0EBEKcUAAtBCBCnFAALQQEQpxQAC7AbAgh/An4jAEHQBmsiAiQAQdDwyQAtAAAhAwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAWsODAECAwQFBgcICQoLDAALIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcDEEHA8MkAIAtCAXw3AwAgAkEANgIoIAJCgICAgIABNwMgIAIgCjcDGCACQoCAgIBwNwMAIAJBkKnJACkDADcCLCACQZipyQApAwA3AjQgAkHVkMkAQQYQtwwiAUUNDCAAQX82AhAgACABNgIAIAIQwwsMGgsgAgJ+IANBAXEEQEHI8MkAKQMAIQpBwPDJACkDAAwBCyACQcAGahC7EUHQ8MkAQQE6AABByPDJACACKQPIBiIKNwMAIAIpA8AGCyILNwNQQcDwyQAgC0IBfDcDACACQQA2AmggAkKAgICAgAE3A2AgAiAKNwNYIAJCgICAgHA3A0AgAkGQqckAKQMANwJsIAJBmKnJACkDADcCdCACQUBrIgNB5JnJAEEHELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBkLIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcDkAFBwPDJACALQgF8NwMAIAJBADYCqAEgAkKAgICAgAE3A6ABIAIgCjcDmAEgAkKAgICAcDcDgAEgAkGQqckAKQMANwKsASACQZipyQApAwA3ArQBIAJBgAFqIgNB65nJAEEEELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBgLIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcD0AFBwPDJACALQgF8NwMAIAJBADYC6AEgAkKAgICAgAE3A+ABIAIgCjcD2AEgAkKAgICAcDcDwAEgAkGQqckAKQMANwLsASACQZipyQApAwA3AvQBIAJBwAFqIgNB75nJAEEDELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBcLIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcDkAJBwPDJACALQgF8NwMAIAJBADYCqAIgAkKAgICAgAE3A6ACIAIgCjcDmAIgAkKAgICAcDcDgAIgAkGQqckAKQMANwKsAiACQZipyQApAwA3ArQCIAJBgAJqIgNB8pnJAEEEELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBYLIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcD0AJBwPDJACALQgF8NwMAIAJBADYC6AIgAkKAgICAgAE3A+ACIAIgCjcD2AIgAkKAgICAcDcDwAIgAkGQqckAKQMANwLsAiACQZipyQApAwA3AvQCIAJBwAJqQfCXyQBBBBC3DCIDRQ0MDBQLIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcDkANBwPDJACALQgF8NwMAIAJBADYCqAMgAkKAgICAgAE3A6ADIAIgCjcDmAMgAkKAgICAcDcDgAMgAkGQqckAKQMANwKsAyACQZipyQApAwA3ArQDIAJBgANqIgNB9pnJAEEEELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBQLIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcD0ANBwPDJACALQgF8NwMAIAJBADYC6AMgAkKAgICAgAE3A+ADIAIgCjcD2AMgAkKAgICAcDcDwAMgAkGQqckAKQMANwLsAyACQZipyQApAwA3AvQDIAJBwANqIgNB+pnJAEEGELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBMLIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcDkARBwPDJACALQgF8NwMAIAJBADYCqAQgAkKAgICAgAE3A6AEIAIgCjcDmAQgAkKAgICAcDcDgAQgAkGQqckAKQMANwKsBCACQZipyQApAwA3ArQEIAJBgARqIgNBhJrJAEEIELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBILIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcD0ARBwPDJACALQgF8NwMAIAJBADYC6AQgAkKAgICAgAE3A+AEIAIgCjcD2AQgAkKAgICAcDcDwAQgAkGQqckAKQMANwLsBCACQZipyQApAwA3AvQEIAJBwARqIgNBjJrJAEEFELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBELIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcDkAVBwPDJACALQgF8NwMAIAJBADYCqAUgAkKAgICAgAE3A6AFIAIgCjcDmAUgAkKAgICAcDcDgAUgAkGQqckAKQMANwKsBSACQZipyQApAwA3ArQFIAJBgAVqIgNB7LHJAEEGELcMIgFFDQwgAEF/NgIQIAAgATYCACADEMMLDBALIAICfiADQQFxBEBByPDJACkDACEKQcDwyQApAwAMAQsgAkHABmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDyAYiCjcDACACKQPABgsiCzcD0AVBwPDJACALQgF8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AQsgAUEAOgCRASADQdgAaiABEJQKIAMoAlghAiADKAJcIgEgBDoAkQELIAJBAUcNAAsLQQAhAgJAIAEoAogBIgQgASgChAFPDQAgASgCgAEgBGotAABBPUcNACABIARBAWo2AogBQQEhAgsgAS0AfEEBRgRAQQEQkAEiCEUNCSAIQT06AAAgA0EBNgKsASADIAg2AqgBIANCgICAgBA3AqABIAEgBCADQaABaiACEPkICyACRQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NAiABIAJBAWoiCDYCBCAEIAhNDQEgASACQQJqNgIECyABQQA6AJEBIANByABqIAEQlAogAygCSCADKAJMIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiBEUEQCADQThqIAEQlAogAygCPCEBIAMoAjghAgwBCyABQQA6AJEBIANBQGsgARCUCiADKAJAIQIgAygCRCIBIAQ6AJEBCyACQQFHDQALCyADQTBqIAEQ8AEgAygCNCEBIAMoAjBBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgRPDQIgASACQQFqIgg2AgQgBCAITQ0BIAEgAkECajYCBAsgAUEAOgCRASADQShqIAEQlAogAygCKCADKAIsIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiBEUEQCADQRhqIAEQlAogAygCHCEBIAMoAhghAgwBCyABQQA6AJEBIANBIGogARCUCiADKAIgIQIgAygCJCIBIAQ6AJEBCyACQQFHDQALCyABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NASABIAJBAWoiCDYCBCAEIAhNDQEgASACQQJqNgIECyADQRBqIAEQngMgAygCFCEBAkAgAygCEEEBcQ0AIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NASABIAJBAWo2AgQLIANBCGogARDtCyADKAIMIQEgAygCCEEBcQ0AA0AgAyABEO0LIAMoAgQhASADKAIAQQFxRQ0ACwsgAS0AkAEiAkEBRw0EIAEtAJEBRQ0MIAEoAowBIgIgB0cNAiAL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BDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEIajYCHCACIAJBFGo2AiAgACACQSBqENcBDQggAigCIEGkssgAQQIgAigCJCgCDBEAAA0ICyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHKmskAQQQgASgCBCIGKAIMIgURAAANBiAAQQhqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQggACABENcBRQ0BDAgLIARBnePCAEECIAURAAANByACQQE6AAggAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEIajYCHCACIAJBFGo2AiAgACACQSBqENcBDQcgAigCIEGkssgAQQIgAigCJCgCDBEAAA0HCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEGsmskAQQUgASgCBCIGKAIMIgURAAANBSAAQQFqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQcgACABEJgURQ0BDAcLIARBnePCAEECIAURAAANBiACQQE6AAggAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEIajYCHCACIAJBFGoiBDYCICAAIAJBIGoQmBQNBiAEQaSyyABBAhD9CA0GCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHOmskAQQYgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQYgAiAANgIgIAFBgZvJAEELQYybyQBBBiACQSBqQa0CEJIRRQ0BDAYLIARBnePCAEECIAURAAANBSACQQE6ABMgAiAGNgIYIAIgBDYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAiAANgIIIAJBIGpBgZvJAEELQYybyQBBBiACQQhqQa0CEJIRDQUgAigCIEGkssgAQQIgAigCJCgCDBEAAA0FCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBAsgASgCAEHUmskAQQYgASgCBCgCDBEAAARAQQEhAwwECwJAIAEtAApBgAFxRQRAIAEoAgBBl+PCAEEDIAEo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IAFBAUcNFAsMFgsCQCAAKAIERQRAIAAoAggiAigCACEBIAIgAUEBazYCACABQQFGDQEMFAsgACgCCCICKAIAIQEgAiABQQFrNgIAIAFBAUcNEwsMFQsgACgCBCICKAIAIQEgAiABQQFrNgIAIAFBAUYEQCAAKAIEEDALIAAoAgwiAigCACEBIAIgAUEBazYCACABQQFHDREgACgCDBAwDwsgACgCBCICKAIAIQEgAiABQQFrNgIAIAFBAUYEQCAAKAIEEDALIAAoAgwiAigCACEBIAIgAUEBazYCACABQQFHDRAgACgCDBAwDwsgACgCBCICKAIAIQEgAiABQQFrNgIAIAFBAUcNDwwRCyAAKAIEIgIoAgAhASACIAFBAWs2AgAgAUEBRw0ODBALIAAoAhAiAigCACEBIAIgAUEBazYCACABQQFHDQ0gACgCEBAwDwsgACgCFCICKAIAIQEgAiABQQFrNgIAIAFBAUcNDCAAKAIUEDAPCyAAKAIEIgIoAgAhASACIAFBAWs2AgAgAUEBRw0LDA0LIAAoAgQiAigCACEBIAIgAUEBazYCACABQQFHDQoMDAsgACgCBCICKAIAIQEgAiABQQFrNgIAIAFBAUcNCQwLCyAAKAIEIgIoAgAhASACIAFBAWs2AgAgAUEBRw0IDAoLIAAoAgwiAigCACEBIAIgAUEBazYCACABQQFGBEAgACgCDBAwCyAAKAIEIgFFDQcgASABKAIAIgFBAWs2AgAgAUEBRw0HDAkLIAAoAgwiAigCACEBIAIgAUEBazYCACABQQFGBEAgACgCDBAwCyAAKAIEIgFFDQYgASABKAIAIgFBAWs2AgAgAUEBRw0GDAgLIAAoAgQiAigCACEBIAIgAUEBazYCACABQQFHDQUMBwsgACgCBCICKAIAIQEgAiABQQFrNgIAIAFBAUcNBAwGCyAAKAIEIgIoAgAhASACIAFBAWs2AgAgAUEBRw0DDAULIAAoAgQiAigCACEBIAIgAUEBazYCACABQQFHDQIMBAsCQCAAKAIERQRAIAAoAggiAigCACEBIAIgAUEBazYCACABQQFGDQEMAwsgACgCCCICKAIAIQEgAiABQQFrNgIAIAFBAUcNAgsMBAsgACgCBCICKAIAIQEgAiABQQFrNgIAIAFBAUcNACAAKAIEEDALDwsgACgCCCABENkS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AkBBFCABayIAIAIoAgAgAigCCCIDa0sEQCACIAMgABDEESACKAIIIQMMAQsgAUEURg0BCyAARQ0AIAIoAgQgA2ogBUEIaiABaiAA/AoAAAsgAiAAIANqNgIIDAgLQRQhASAAKQMIIgtCP4chCSAJIAuFIAl9IglCkM4AWgRAA0AgBUEIaiABaiIAQQRrIAkiCiAJQpDOAIAiCUKQzgB+faciA0H//wNxQeQAbiIEQQF0LwCcmEk7AAAgAEECayADIARB5ABsa0H//wNxQQF0LwCcmEk7AAAgAUEEayEBIApC/8HXL1YNAAsLAkAgCULjAFgEQCAJpyEADAELIAmnIgNB//8DcUHkAG4hACABQQJrIgEgBUEIamogAyAAQeQAbGtB//8DcUEBdC8AnJhJOwAACwJAIABBCk8EQCABQQJrIgEgBUEIamogAEEBdC8AnJhJOwAADAELIAFBAWsiASAFQQhqaiAAQTByOgAACyALQgBTBEAgAUEBayIBIAVBCGpqQS06AAALAkACQEEUIAFrIgAgAigCACACKAIIIgNrSwRAIAIgAyAAEMQRIAIoAgghAwwBCyABQRRGDQELIABFDQAgAigCBCADaiAFQQhqIAFqIAD8CgAACyACIAAgA2o2AggMBwsgACsDCCIMvUL///////////8Ag0KAgICAgICA+P8AWgRAIAIoAgAgAigCCCIBa0EDTQRAIAIgAUEEEMQRIAIoAgghAQsgAiABQQRqNgIIIAIoAgQgAWpB7uqx4wY2AAAMBwsgDCAFQQhqEPYBIQECQAJAIAIoAgAgAigCCCIAayABSQRAIAIgACABEMQRIAIoAgghAAwBCyABRQ0BCyABRQ0AIAIoAgQgAGogBUEIaiAB/AoAAAsgAiAAIAFqNgIIDAYLIAAoAgghAiAAKAIEIQYgASgCACIAKAIIIgMgACgCAEYEQCAAIANBARDEESAAKAIIIQMLIAAgA0EBaiIENgIIIAAoAgQgA2pB2wA6AAAgAgRAIAYgARDKAiACQQFHBEAgBkEwaiEDIAJBMGxBMGshBANAIAEoAgAiACgCCCICIAAoAgBGBEAgACACQQEQxBEgACgCCCECCyAAIAJBAWo2AgggACgCBCACakEsOgAAIAMgARDKAiADQTBqIQMgBEEwayIEDQALCyABKAIAIgEoAggiACABKAIA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BUEBRgRAIAAoAhAhBSACIAQ2AgggASADQQQQlgggAiAFNgIIIAEgA0EEEJYIIAIgACgCFDYCCCABIANBBBCWCAwECyACIAQ2AgggASACQQhqQQQQlggMAwsgAiAAKAIIIgU2AgggASACQQhqIgNBBBCWCCAAKAIMIQQCQCAFQQFGBEAgACgCECEFIAIgBDYCCCABIANBBBCWCCACIAU2AgggASADQQQQlgggAiAAKAIUNgIIIAEgA0EEEJYIDAELIAIgBDYCCCABIAJBCGpBBBCWCAsgACgCICEDIAIgACgCJCIANgIIIAEgAkEIakEEEJYIIABFDQIgAEHIAWwhBANAIAMgARDaAiADQcgBaiEDIARByAFrIgQNAAsMAgsgAiAAKAKsATYCCCABIAJBCGoiBEEEEJYIIAIgACgCmAE2AgggASAEQQQQlgggAiAAKAKcATYCCCABIARBBBCWCCACIAAoAnwiA0F/RzYCCCABIARBBBCWCAJAIANBf0YNACAAKAKAASEDIAIgACgChAEiBTYCCCABIARBBBCWCCAFRQ0AIAMgBUHoAWxqIQQDQCADIAEQ2gIgA0HIAWogARC7AiAEIANB6AFqIgNHDQALCyACIAApAxAiCz4CCCABIAJBCGoiA0EEEJYIIAtCA1EEQCACIAApAxg3AwggASADQQgQlggLIAIgBjYCCCABIAJBCGoiA0EEEJYIIApCAVEEQCACIAApAwg3AwggASADQQgQlggLIAIgAC0AICIDQf8BRzYCCCABIAJBCGpBBBCWCCADQf8BRwRAIABBIGogARCiBQsgACgCdCEEIAIgACgCeCIDNgIIIAEgAkEIakEEEJYIIAMEQCAEIANBBnRqIQgDQCACQQMgBCgCACIDQRtrIANBGk0bIgM2AgggASACQQhqQQQQlggCQAJAAkACQAJAIANBAWsOAwECAwALIAIgBCgCBCIGNgIIIAEgAkEIaiIDQQQQlgggBCgCCCEFAkAgBkEBRgRAIAQoAgwhBiACIAU2AgggASADQQQQlgggAiAGNgIIIAEgA0EEEJYIIAIgBCgCEDYCCCABIANBBBCWCAwBCyACIAU2AgggASACQQhqQQQQlggLIAQoAhwgAiAEKAIgIgY2AgggASACQQhqIgNBBBCWCCAGIAEQiA8gAiAELQAkNgIIIAEgA0EEEJYIIAIgBC0AJSIFQQJHNgIIIAEgA0EEEJYIIAVBAkYNAyACIAU2AgggASADQQQQlggMAwsgAiAEKAIEIgY2AgggASACQQhqIgNBBBCWCCAEKAIIIQUCQCAGQQFGBEAgBCgCDCEGIAIgBTYCCCABIANBBBCWCCACIAY2AgggASADQQQQlgggAiAEKAIQNgIIIAEgA0EEEJYIDAELIAIgBTYCCCABIAJBCGpBBBCWCAsgAiAELQAYNgIIIAEgAkEIaiIDQQQQlgggAiAELQAZNgIIIAEgA0EEEJYIDAILIAQoAgggAiAEKAIMIgY2AgggASACQQhqIgNBBBCWCCAGIAEQiA8gAiAELQAQNgIIIAEgA0EEEJYIIAIgBC0AETYCCCABIANBBBCWCAwBCyAEKAIkIQMgAiAEKAIoIgU2AgggASACQQhqQQQQlgggBQRAIAMgBUEUbGohCQNAIAIgAygCACIHNgIIIAEgAkEIaiIFQQQQlgggA0EEaigCACEGAkAgB0EBRgRAIANBCGooAgAhByACIAY2AgggASAFQQQQlgggAiAHNgIIIAEgBUEEEJYIIAIgA0EMaigCADYCCCABIAVBBBCWCAwBCyACIAY2AgggASACQQhqQQQQlggLIAkgA0EUaiIDRw0ACwsgAiAELQA4NgIIIAEgAkEIaiIDQQQQlgggBCABELsCIAQoAjAgAiAEKAI0IgY2AgggASADQQQQlgggBiABEIgPCyAIIARBQGsiBEcNAAsLIAIgACgCiAEiA0F/RzYCCCABIAJBCGoiBUEEEJYIAkAgA0F/Rg0AIAAoAowBIQMgAiAAKAKQASIENgIIIAEgBUEEEJYIIARFDQAgBEHIAWwhBANAIAMgARDaAiADQcgBaiEDIARByAFrIgQNAAsLIAIgAC0AoAE6AAggASACQQhqIgNBARCWCCACIAAtAKEBOgAIIAEgA0EBEJYIIAIgAC0AogEiBEECRzYCCCABIANBBBCWCCAEQQJHBEAgAiAENgIIIAEgA0EEEJYICyAAKAK0ASEFIAIgACgCuAEiAzYCCCABIAJBCGpBBBCWCCADBEAgA0EMbCEEIAVBCGohAwNAIAEgA0EEaygCACADKAIAEJYIIAJB/wE6AAggASACQQhqQQEQlgggA0EMaiEDIARBDGsiBA0ACwsgACgCwAEhAyACIAAoAsQBIgA2AgggASACQQhqQQQQlgggAEUNASAAQcgBbCEEA0AgAyABENoCIANByAFqIQMgBEHIAWsiBA0ACwwBCyACIAAoAlw2AgggASACQQhqIgNBBBCWCCACIAAtAAhB/wFHIgQ2AgggASADQQQQlgggBEUNACAAQQhqIAEQogULIAJBEGokAAuwEAEMfyMAQYABayIDJABBASECAkAgASgCAEEBRgRAIAEoAgQiBiABKAIITw0BIAEgBkEBajYCBAsgASgCjAEiAiABKAKIASIHRgRAIAEoAiAhCiABKAIsIQkLIAEoAhQhBgJAIAEtAJABQQJHBEAgBiEFDAELIAYhBSABLQCRAUUNACABKAIMIAZGBEAgAUEMahCaEgsgASgCECAGQRRsaiICIAc2AgggAkEANgIEIAJBADoAACABIAZBAWoiBTYCFCABKAKMASECCyACIAdGBEAgASgCLCABKAIgaiELCyABKAJ4IQwgASgCXCENAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQEgASACQQFqNgIECyADIAEoAogBIgI2AmggAyABKQKAATcDYAJAIAJBfUsNACACQQJqIgggASgChAFLDQAgAUGAAWooAgAgAmovAABBwIABRw0AIAEgCDYCiAFBASEECyABLQB8QQFGBEBBAhCQASIIRQ0HIAhBwIABOwAAIANBAjYCfCADIAg2AnggA0KAgICAIDcCcCABIAIgA0HwAGogBBD5CAsCQCAERQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NAiABIAJBAWoiCDYCBCAEIAhNDQEgASACQQJqNgIECyABQQA6AJEBIANB2ABqIAEQlAogAygCWCADKAJcIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiBEUEQCADQcgAaiABEJQKIAMoAkwhASADKAJIIQIMAQsgAUEAOgCRASADQdAAaiABEJQKIAMoAlAhAiADKAJUIgEgBDoAkQELIAJBAUcNAAsLIANBQGsgARDpAyADKAJEIQEgAygCQEEBcQ0AAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NAiAB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IAZBAWoiBTYCFCABKAKMASECCyACIAdGBEAgASgCLCABKAIgaiELCyABKAJ4IQwgASgCXCENAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQEgASACQQFqNgIECyADIAEoAogBNgJoIAMgASkCgAE3A2AgA0HYAGogARDnAyADKAJcIQECQCADKAJYQQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIETw0CIAEgAkEBaiIJNgIEIAQgCU0NASABIAJBAmo2AgQLIAFBADoAkQEgA0HQAGogARCUCiADKAJQIAMoAlQiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0CIAEgAkEBajYCBAsCQCABLQCRASIERQRAIANBQGsgARCUCiADKAJEIQEgAygCQCECDAELIAFBADoAkQEgA0HIAGogARCUCiADKAJIIQIgAygCTCIBIAQ6AJEBCyACQQFHDQALC0EAIQICQCABKAKIASIEIAEoAoQBTw0AIAEoAoABIARqLQAAQT1HDQAgASAEQQFqNgKIAUEBIQILIAEtAHxBAUYEQEEBEJABIglFDQggCUE9OgAAIANBATYCfCADIAk2AnggA0KAgICAEDcCcCABIAQgA0HwAGogAhD5CAsgAkUNAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgRPDQIgASACQQFqIgk2AgQgBCAJTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQThqIAEQlAogAygCOCADKAI8IgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiBEUEQCADQShqIAEQlAogAygCLCEBIAMoAighAgwBCyABQQA6AJEBIANBMGogARCUCiADKAIwIQIgAygCNCIBIAQ6AJEBCyACQQFHDQALCyABKAIAQQFGBEAgASgCBCICIAEoAghPDQEgASACQQFqNgIECyADQSBqIAEQQAJAIAMoAiQiAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCICIAEoAggiBE8NAiABIAJBAWoiCTYCBCAEIAlNDQEgASACQQJqNgIECyABQQA6AJEBIANB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lgggAiAAKAKcATYCCCABIAVBBBCWCCACIAAoAnwiA0F/RzYCCCABIAVBBBCWCAJAIANBf0YNACAAKAKAASEDIAIgACgChAEiBDYCCCABIAVBBBCWCCAERQ0AIAMgBEHoAWxqIQUDQCADIAEQ5wIgA0HIAWogARC6AiAFIANB6AFqIgNHDQALCyACIAApAxAiCz4CCCABIAJBCGoiA0EEEJYIIAtCA1EEQCACIAApAxg3AwggASADQQgQlggLIAIgBjYCCCABIAJBCGoiA0EEEJYIIApCAVEEQCACIAApAwg3AwggASADQQgQlggLIAIgAC0AICIDQf8BRzYCCCABIAJBCGpBBBCWCCADQf8BRwRAIABBIGogARChBQsgACgCdCEIIAIgACgCeCIDNgIIIAEgAkEIakEEEJYIIAMEQCADQQZ0IQlBACEFA0AgAkEDIAUgCGoiAygCACIEQRtrIARBGk0bIgQ2AgggASACQQhqQQQQlggCQAJAAkACQAJAIARBAWsOAwECAwALIAIgA0EEaigCACIHNgIIIAEgAkEIaiIEQQQQlgggA0EIaigCACEGAkAgB0EBRgRAIANBDGooAgAhByACIAY2AgggASAEQQQQlgggAiAHNgIIIAEgBEEEEJYIIAIgA0EQaigCADYCCCABIARBBBCWCAwBCyACIAY2AgggASACQQhqQQQQlggLIANBHGooAgAgAiADQSBqKAIAIgc2AgggASACQQhqIgRBBBCWCCAHIAEQiA8gAiADQSRqLQAANgIIIAEgBEEEEJYIIAIgA0Elai0AACIDQQJHNgIIIAEgBEEEEJYIIANBAkYNAyACIAM2AgggASAEQQQQlggMAwsgAiADQQRqKAIAIgc2AgggASACQQhqIgRBBBCWCCADQQhqKAIAIQYCQCAHQQFGBEAgA0EMaigCACEHIAIgBjYCCCABIARBBBCWCCACIAc2AgggASAEQQQQlgggAiADQRBqKAIANgIIIAEgBEEEEJYIDAELIAIgBjYCCCABIAJBCGpBBBCWCAsgAiADQRhqLQAANgIIIAEgAkEIaiIEQQQQlgggAiADQRlqLQAANgIIIAEgBEEEEJYIDAILIANBCGooAgAgAiADQQxqKAIAIgc2AgggASACQQhqIgRBBBCWCCAHIAEQiA8gAiADQRBqLQAANgIIIAEgBEEE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AWohBSAGQRRrIgYNAAsMCAsgBkEUayICQRRuQQFqIgNBA3EhBkEAIQUgCSEBIAJBPE8EQCADQfz///8BcSEDQQAhBANAIAEpAgAhDiABKQIIIQ8gBCAIaiICIAEoAhA2AhAgAiAPNwIIIAIgDjcCACACQRRqQX82AgAgAUEUaikCACEOIAFBHGopAgAhDyACQTBqIAFBJGooAgA2AgAgAkEoaiAPNwIAIAJBIGogDjcCACACQTRqQX82AgAgAUEoaikCACEOIAFBMGopAgAhDyACQdAAaiABQThqKAIANgIAIAJByABqIA83AgAgAkFAayAONwIAIAJB1ABqQX82AgAgAUE8aikCACEOIAFBxABqKQIAIQ8gAkHwAGogAUHMAGooAgA2AgAgAkHoAGogDzcCACACQeAAaiAONwIAIAJB9ABqQX82AgAgAUHQAGohASAEQYABaiEEIAMgBUEEaiIFRw0ACyAGRQ0ICyAFIAZqIAZBBXQhBCAIIAVBBXRqIQIDQCABKQIAIQ4gASkCCCEPIAIgASgCEDYCECACIA83AgggAiAONwIAIAJBFGpBfzYCACACQSBqIQIgAUEUaiEBIARBIGsiBA0ACyEFDAcLIAUNACAGQRRrIgJBFG5BAWoiA0EDcSEGQQAhBSAJIQEgAkE8TwRAIANB/P///wFxIQNBACEEA0AgASkCACEOIAEpAgghDyAEIAhqIgIgASgCEDYCECACIA83AgggAiAONwIAIAJBFGpBfzYCACABQRRqKQIAIQ4gAUEcaikCACEPIAJBMGogAUEkaigCADYCACACQShqIA83AgAgAkEgaiAONwIAIAJBNGpBfzYCACABQShqKQIAIQ4gAUEwaikCACEPIAJB0ABqIAFBOGooAgA2AgAgAkHIAGogDzcCACACQUBrIA43AgAgAkHUAGpBfzYCACABQTxqKQIAIQ4gAUHEAGopAgAhDyACQfAAaiABQcwAaigCADYCACACQegAaiAPNwIAIAJB4ABqIA43AgAgAkH0AGpBfzYCACABQdAAaiEBIARBgAFqIQQgAyAFQQRqIgVHDQALIAZFDQcLIAUgBmogBkEFdCEEIAggBUEFdGohAgNAIAEpAgAhDiABKQIIIQ8gAiABKAIQNgIQIAIgDzcCCCACIA43AgAgAkEUakF/NgIAIAJBIGohAiABQRRq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RQ0AIAQiAkEHcSIFBEADQCACQQFrIQIgASgCiAohASAFQQFrIgUNAAsLIARBCEkNAANAIAEoAogKKAKICigCiAooAogKKAKICigCiAooAogKKAKICiEBIAJBCGsiAg0ACwtBACECCwJAIAEvAYIKIAdLBEAgASEFDAELAkADQCABKAL4CCIFBEAgAUEEaygCACIEQXhxIQMgA0G4CkGICiACGyIGQQRBCCAEQQNxIgQbakkNCiABLwGACiEHIARBAEcgAyAGQSdqS3ENAiABELwFIAJBAWohAiAFIgEvAYIKIAdNDQEMAwsLIAFBuApBiAogAhsQ2RJBrOrIABCdFQALDAgLAkAgAkUEQCAHQQFqIQQgBSEDDAELIAUgB0ECdGpBjApqIQECQCACQQdxIgRFBEAgAiEGDAELIAIhBgNAIAZBAWshBiABKAIAIgNBiApqIQEgBEEBayIEDQALC0EAIQQgAkEISQ0AA0AgASgCACgCiAooAogKKAKICigCiAooAogKKAKICigCiAoiA0GICmohASAGQQhrIgYNAAsLAkAgBSAHQQxsaiICKAL8CCIBBEAgAkH8CGooAgQiBkEEaygCACIJQXhxIQIgAkEEQQggCUEDcSIJGyABakkNASAJQQBHIAIgAUEnaktxDQMgBhC8BQsgBSAHQegAbGoQ7AJBACEBIAhBAWsiCA0BDAULCwwFCwwFCwwDCyABRQ0BIARFBEAgASEDDAELIARBAWsgASEDIARBB3EiAQRAA0AgBEEBayEEIAMoAogKIQMgAUEBayIBDQALC0EHSQ0AA0AgAygCiAooAogKKAKICigCiAooAogKKAKICigCiAooAogKIQMgBEEIayIEDQALCyADKAL4CCIFBH9BACEBA0AgA0EEaygCACIEQXhxIQIgAkG4CkGICiABGyIGQQRBCCAEQQNxIgQbakkNAyAEQQBHIAIgBkEnaktxDQQgAxC8BSABQQFqIQEgBSIDKAL4CCIFDQALQbgKQYgKIAEbBUGICgshASADQQRrKAIAIgVBeHEhAiACQQRBCCAFQQNxIgUbIAFqSQ0BIAVBAEcgAiABQSdqS3ENAiADELwFCwJAIAAoAkwiBUF/Rg0AIAAoAlAhAyAAKAJUIgIEQCADIQEDQCABKAIAIgAEQCABQQRqKAIAIgZBBGsoAgAiB0F4cSEE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QQJqNgIECyABKAIUIQIgAyABKAKIATYCeCADIAEpAoABNwNwIANBOGogARDmAiADKAI8IQECQAJAAkAgAygCOEEBRw0AIANBMGogARCRAiADKAI0IQEgAygCMEEBRw0AIANBKGogARDFASADKAIsIQEgAygCKEEBcQ0BCyABKAIAQQFGBEAgASgCBCIHIAEoAghPDQEgASAHQQFqNgIECyADQSBqIAEQrgsgAygCJCEBA0AgASgCAEEBRgRAIAEoAgQiAiABKAIITw0EIAEgAkEBajYCBAsgASgCFCECIAMgASgCiAE2AnggAyABKQKAATcDcCADQRhqIAEQ5gIgAygCHCEBAkAgAygCGEEBRw0AIANBEGogARCRAiADKAIUIQEgAygCEEEBRw0AIANBCGogARDFASADKAIMIQEgAygCCEEBcQ0DCyABKAIAQQFGBEAgASgCBCIHIAEoAghPDQMgASAHQQFqNgIECyADIAEQrgsgAygCBCEBDAALAAsgASADKAJ4NgKIASABIAMpA3A3AoABIAIgASgCFEsNASABIAI2AhQMAQsgASADKAJ4NgKIASABIAMpA3A3AoABIAIgASgCFEsNACABIAI2AhQLQQAhAgsgAkEBRw0BIAEgAygCaDYCiAEgASADKQNgNwKAASAEIAEoAhRLDQAgASAENgIUC0EBIQIgAS0AkAFBAUYNCCABLQCRAUUNAyABKAKMASICIAZHDQEgCiABKAIgIgIgASgCLCIEaiIGSSAGIAprQQFGcQ0DIAIgCU8EQCABIAk2AiAgCSECCyAEIAhJDQIgASAINgIsDAILIAEtAJABIgJBAUYEfyABLQCRAUUNBwJAIAYgASgCjAEiAkYEQCAKIAEoAiwiAiABKAIgIgRqIgZJIAYgCmtBAUZxDQkgBCAJTwRAIAEgCTYCIAsgAiAISQ0BIAEgCDYCLCAIIQIMAQsgAiAGTw0IIAEgBjYCjAFBACECIAFBADYCLCABQQA2AiALIAEoAiQgAkYEQCABQSRqEKMSCyABKAIoIAJqQRw6AAAgASACQQFqNgIsIAEtAJABBSACC0H/AXFBAkcNBiABLQCRAUUNBiABKAIUIgIgBU0NAyABKAIQIAVBFGxqIgQtAAANBCAEIAI2AgQgASgCiAEhCCABKAIUIgQgASgCDEYEQCABQQxqEJoSCyABKAIQIARBFGxqIgIgCDYCECACQQA2AgggAiAFNgIEIAJBgTg7AQAgASAEQQFqNgIUDAYLIAIgBk8NASABIAY2AowBQQAhAiABQQA2AiwgAUEANgIgCyABKAIYIAJGBEAgAUEYahCjEgsgASACQQFqNgIgIAEoAhwgAmpBHDoAAAtBASECIAEtAHxBAUcNAiABLQCRAUUNAiABQdQAakEcIA1BACABKAJ4IAxNGxCTBQwCCyAFIAJBnIrIABCFEwALQaCryQBBKEGsisgAEK8UAAsgAS0AkAFBAkcNASABLQCRAUUNASAFIAEoAhRLDQEgASAFNgIUDAELQQAhAiABLQB8RQ0AIAEtAJEBRQ0AIAFB1ABqQRwgDUEAIAEoAnggDE0bEJMFCyAAIAE2AgQgACACNgIAIANBgAFqJAALvg8CEH8CfiMAQfABayICJAAgAgJ+QdDwyQAtAAAEQEHI8MkAKQMAIRNBwPDJACkDAAwBCyACQbABahC7EUHQ8MkAQQE6AABByPDJACACKQO4ASITNwMAIAIpA7ABCyISNwMQQcDwyQAgEkIBfDcDACACQQA2AiggAkKAgICAgAE3AyAgAiATNwMYIAJCgICAgHA3AwAgAkGQqckAKQMANwIsIAJBmKnJACkDADcCNAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkGSi8gAQQUgASgCFCABKAIYEPYLIgMNACACQYmOyABBCCABKAIgIAEoAiQQ9gsiAw0AIAIgAS0AKBDsByIDDQAgAiABLQApEN8IIgMNACACKAIARQRAQQkQkAEiA0UNBCADQdaLxgAtAAA6AAggA0HOi8YAKQAANwAAAkAgAigCBCIEQX9GDQAgBEUNACACKAIIIghBBGsoAgAiBUF4cSEGIAZBBEEIIAVBA3EiBRsgBGpJDQsgBUEARyAGIARBJ2pLcQ0MIAgQvAULIAJBCTYCDCACIAM2AgggAkF/NgIEIAIgAikDCDcCeCACQQk2AnQCQCABKAIAIgNBf0YEQEGAgICAeCEEDAELIANBAk8EQAJAIAEoAgwiBEUEQEEBIQEMAQsgASgCCCEGIAQQkAEiAUUNCCAERQ0AIAEgBiAE/AoAAAsgAiAENgK8ASACIAE2ArgBIAIgBDYCtAELIAIgAzYCsAEgAkEANgKIASACQoCAgIAQNwKAAQJAAkACQAJAAkACQAJAAkACQCADQQFrDgYEBgABAgUDCyACIAJBtAFqNgLoASACIAJB6AFqrUKAgICAkAKENwNAIAJBgAFqQdyWxgBB+IvCACACQUBrELEJDRIMBgsgAiACQbQBajYC6AEgAiACQegBaq1CgICAgJAChDcDQCACQYABakHclsYAQcyLwgAgAkFAaxCxCQ0RDAULIAIgAkG0AWo2AugBIAIgAkHoAWqtQoCAgICQAoQ3A0AgAkGAAWpB3JbGAEGgi8IAIAJBQGsQsQkNEAwECyACQYABakEAQRdBAUEBELMRIAIoAogBIgMgAigChAFqIgFBkt7GACkAADcAACABQZrexgApAAA3AAggAUGh3sYAKQAANwAPIAIgA0EXaiIBNgKIAQwECyACQYABakEAQSFBAUEBELMRIAIoAogBIgMgAigChAFqIgFBqd7GACkAADcAACABQbHexgApAAA3AAggAUG53sYAKQAANwAQIAFBwd7GACkAADcAGCABQcnexgAtAAA6ACAgAiADQSFqIgE2AogBDAMLIAIgAkG0AWo2AugBIAIgAkHoAWqtQoCAgICQAoQ3A0AgAkGAAWpB3JbGAEHpisIAIAJBQGsQsQlFDQEMDQsgAiACQbQBajYC6AEgAiACQegBaq1CgICAgJAChDcDQCACQYABakHclsYAQZ+MwgAgAkFAaxCxCQ0MCyACKAKIASEBCyACKAKEASEGIAIoAoABIQgCQAJAIAIoArABDgIBAQALIAIoArQBIgNFDQAgAigCuAEiBUEEaygCACIHQXhxIQQgBEEEQQggB0EDcSIHGyADakkNDCAHQQBHIAQgA0EnaktxDQ0gBRC8BQsCQCABRQRAQQEhAwwBCyABEJABIgNFDQggAUUNACADIAYgAfwKAAALQYOAgIB4IQQgCEUNACAGQQRrKAIAIgdBeHEhBSAFQQRBCCAHQQNxIgcbIAhqSQ0LIAdBAEcgBSAIQSdqS3ENDCAGELwFCyACIAQ2ApABIAIgATYCiAEgAiADNgKEASACIAE2AoABIAJBsAFqIAJBEGogAkH0AGogAkGAAWoQnwUgAiACKQPgATcDaCACIAIpA9gBNwNgIAIgAikD0AE3A1ggAiACKQPIASISNwNQIAIgAikDwAE3A0ggAiACKQO4ATcDQCASp0F/RwRAIAJBQGsQ/QkL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AkKAgICAcDcDACACQZCpyQApAwA3AiwgAkGYqckAKQMANwI0AkACQAJAAkACQAJAAkACQAJAIAJBoKzJAEEEIAEoAgQgASgCCBCSDCIEDQAgAigCAEUEQCABKAIUIQQgASgCECEIQQYQkAEiAUUNAiABQaisyQAvAAA7AAQgAUGkrMkAKAAANgAAIAIoAgQiA0EASgRAIAIoAggiB0EEaygCACIJQXhxIQYgBkEEQQggCUEDcSIJGyADakkNCSAJQQBHIAYgA0EnaktxDQogBxC8BQsgAkEGNgIMIAIgATYCCCACQX82AgQgAiACKQMIIhk3AnggAkEGNgJ0IARBq9WqFU8NA0EAIQFBCCEOIARBMGwiAwRAIAMQkAEiDkUNBSAEIQELIAJBDGohEiACQQA2ArwBIAIgDjYCuAEgAiABNgK0ASAEQRxsIRAgAkHsAWohEyAZpyEUAkADQCAQRQ0BIAICfkHQ8MkALQAABEBByPDJACkDACEaQcDwyQApAwAMAQsgAkGAAmoQuxFB0PDJAEEBOgAAQcjwyQAgAikDiAIiGjcDACACKQOAAgsiGTcD0AFBwPDJACAZQgF8NwMAIBNBkKnJACkDADcCACATQZipyQApAwA3AgggAkEANgLoASACQoCAgICAATcD4AEgAiAaNwPYASACQoCAgIBwNwPAAQJAAkACQCACQcABaiIBQaCsyQBBBCAIKAIEIAgoAggQkgwiBA0AIAFBqqzJAEEIIAgoAhAgCCgCFBCSDCIEDQAgAUGyrMkAQQogCC0AGBCeDSIERQ0BCyACQcABahDICwwBCyACKAL0ASEFIAIoAvABIRUgAigC7AEhBiACKALoASEHIAIoAuQBIQkgAigC4AEhASACKALcASERIAIoAtgBIQMgAigC1AEhFiACKALQASEEIAIoAsgBIQoCQAJAIAIoAsABQQFGBEAgA0F/Rg0LIAIoAswBIQsgBCAKIQQgAyEKIBEhDSAVIRcgBSEYIQMgFiERDAELIAIoAvwBIRggAigC+AEhFyACKALEASINQQBKBEAgCkEEaygCACILQXhxIQwgDEEEQQggC0EDcSILGyANakkNDiALQQBHIAwgDUEnaktxDQ8gChC8BQsgAUF/RiABIQogCSENIAchASAGIQkgFSEHIAUhBiAWIQsNAQsgAigCtAEgD0YEQCAC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DBMLQcyLyQBBpwFB6IjIABC/EwALQbCMyQBBqwFB+IjIABC/EwALIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBODQ8MDgsgASgCUCEEIANBoAFqIgUgAhCfCiADQRxqIAQgBSACEK0QELQMDA8LIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQwgAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQe+ZyQBBAyADQaABakEBEIMMDA4LIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQsgAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQeyxyQBBBiADQaABakEBEIMMDA0LIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQogAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQYyayQBBBSADQaABakEBEIMMDAwLIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQkgAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQbiAyABBByADQaABakEBEIMMDAsLIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQggAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQeSIyABBBCADQaABakEAEIMMDAoLIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQcgAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQfKZyQBBBCADQaABakEAEIMMDAkLIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQYgAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQYSayQBBCCADQaABakEAEIMMDAgLIAIoAhAiBCgCACEFIAQgBUEBajYCACAFQQBIDQUgAyAENgKwASADIAIpAgg3A6gBIAMgAikCADcDoAEgA0EcaiABQZGayQBBBSADQaABakEAEIMMDAcLIAQgBUGcusQAEIUTAAsgBSAGQZy6xAAQhRMAC0GcusQAEJ0VAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALAAsgAyAENgKwASADIAIpAgg3A6gB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BAsgASgCjAEiAiABKAKIASIHRgRAIAEoAiAhCSABKAIsIQgLIAEoAhQhBgJAIAEtAJABQQJHBEAgBiEEDAELIAYhBCABLQCRAUUNACABKAIMIAZGBEAgAUEMahCaEgsgASgCECAGQRRsaiICIAc2AgggAkEANgIEIAJBADoAACABIAZBAWoiBDYCFCABKAKMASECCyACIAdGBEAgASgCLCABKAIgaiEKCyABKAJ4IQwgASgCXCENAkAgASgCAEEBRgRAIAEoAgQiAiABKAIITwRAQQEhBQwCCyABIAJBAWo2AgQLIAMgASgCiAE2AkggAyABKQKAATcDQCADQThqIAEQ5wMgAygCPCEBAn8CQCADKAI4QQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0CIAEgAkEBaiILNgIEIAUgC00NASABIAJBAmo2AgQLIAFBADoAkQEgA0EwaiABEJQKIAMoAjAgAygCNCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgVFBEAgA0EgaiABEJQKIAMoAiQhASADKAIgIQIMAQsgAUEAOgCRASADQShqIAEQlAogAygCKCECIAMoAiwiASAFOgCRAQsgAkEBRw0ACwtBACECAkAgASgCiAEiBSABKAKEAU8NACABKAKAASAFai0AAEE6Rw0AIAEgBUEBajYCiAFBASECCwJAIAEtAHxBAUYEQEEBEJABIgtFDQEgC0E6OgAAIANBATYCXCADIAs2AlggA0KAgICAEDcCUCABIAUgA0HQAGogAhD5CAsgAkUNAQJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgVPDQMgASACQQFqIgs2AgQgBSALTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQRhqIAEQlAogAygCGCADKAIcIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiBUUEQCADQQhqIAEQlAogAygCDCEBIAMoAgghAgwBCyABQQA6AJEBIANBEGogARCUCiADKAIQIQIgAygCFCIBIAU6AJEBCyACQQFxRQ0ACwsgAyABEEAgAygCBCEB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AgBBAUYEQCABKAIEIgQgASgCCE8NASABIARBAWo2AgQLIAEoAowBIgIgASgCiAEiBkYEQCABKAIgIQkgASgCLCEICyABKAIUIQQCQCABLQCQAUECRwRAIAQhBQwBCyAEIQUgAS0AkQFFDQAgASgCDCAERgRAIAFBDGoQmhILIAEoAhAgBEEUbGoiAiAGNgIIIAJBADYCBCACQQA6AAAgASAEQQFqIgU2AhQgASgCjAEhAgsgAiAGRgRAIAEoAiwgASgCIGohCgsgASgCeCEMIAEoAlwhDQJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQEgASACQQFqNgIECyADIAEoAogBIgI2AkggAyABKQKAATcDQAJAIAIgASgChAFPDQAgAUGAAWooAgAgAmotAABBwABHDQAgASACQQFqNgKIAUEBIQcLIAEtAHxBAUYEQEEBEJABIgtFDQggC0HAADoAACADQQE2AlwgAyALNgJYIANCgICAgBA3AlAgASACIANB0ABqIAcQ+QgLAkAgB0UNAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgdPDQIgASACQQFqIgs2AgQgByALTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQThqIAEQlAogAygCOCADKAI8IgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiB0UEQCADQShqIAEQlAogAygCLCEBIAMoAighAgwBCyABQQA6AJEBIANBMGogARCUCiADKAIwIQIgAygCNCIBIAc6AJEBCyACQQFHDQALCyADQSBqIAEQ6QMgAygCJCEBIAMoAiBBAXENAAJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAiABKAIIIgdPDQIgASACQQFqIgs2AgQgByALTQ0BIAEgAkECajYCBAsgAUEAOgCRASADQRhqIAEQlAogAygCGCADKAIcIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgIgASgCCE8NAiABIAJBAWo2AgQLAkAgAS0AkQEiB0UEQCADQQhqIAEQlAogAygCDCEBIAMoAgghAgwBCyABQQA6AJEBIANBEGogARCUCiADKAIQ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SQRAIANBAWoiASAEIAEgBEsbIgFBD0kNAiABQf////8BTQRAQX8gAUEDdEEHbkEBa2d2IgFB/v///wBLDQggAUEBagwECwwHCyAAIAEEfyAAKAIAIQMCQCACIAFBB3FBAEdqIgBBAUcEQCAAQQFxIABB/v///wNxIQIDQCADIAhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDACAAQQhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDACAIQRBqIQggAkECayICDQALRQ0BCyADIAhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDAAsCQCABQQhPBEAgASADaiADKQAANwAADAELIAFFDQAgA0EIaiADIAH8CgAAC0EAIQEDQAJAIAMgASIAaiIILQAAQYABRw0AIAMgAUEEdGsiAUEMayELIAFBCGshDCABQRBrIQ0gAyAAQX9zQQR0aiEFA0AgAyAMKAIAIAsoAgAgDSgCAEHdy92eeWxqQd3L3Z55bGpB3cvdnnlsQQ93IgQgBnEiByIBaikAAEKAgYKEiJCgwIB/gyIOUARAQQghAgNAIAEgAmohASACQQhqIQIgAyABIAZxIgFqKQAAQoCBgoSIkKDAgH+DIg5QDQALCyADIA56p0EDdiABaiAGcSIBaiwAAEEATgRAIAMpAwBCgIGChIiQoMCAf4N6p0EDdiEBCyAErSEOIAEgB2sgACAHa3MgBnFBCE8EQCABIANqIgItAAAgAiAOQhmIpyICOgAAIAMgAUEIayAGcWpBCGogAjoAACADIAFBf3NBBHRqIQFB/wFGBEAgCEH/AToAACADIAYgAEEIa3FqQQhqQf8BOgAAIAEgBSkACDcACCABIAUpAAA3AAAMAwsgBSkAACEOIAUgASkAADcAACABIA43AAAgBSkACCEOIAUgASkACDcACCABIA43AAgMAQsLIAggDkIZiKciAToAACADIAYgAEEIa3FqQQhqIAE6AAALIABBAWohASAAIAZHDQALIAYgCSAGQQhJGwVBAAsgCms2AggMAwsMBQtBBCABQQhxQQhqIAFBBEkbCyIBQQhqIgQgAUEEdCICIARqIgNLDQMgA0H4////B0sNAyADEJABIgNFBEBBuPDJAEEBOgAAAAsgAiADaiEFIAQEQCAFQf8BIAT8CwALIAFBAWsiCSABQQN2QQdsIAFBCUkbIQsgACgCACEEAkAgCkUEQEEAIQoMAQsgBCkDAEJ/hUKAgYKEiJCgwIB/gyEOIAohASAEIQMDQCAOUARAA0AgCEEIaiEIIANBCGoiAykDAEKAgYKEiJCgwIB/gyIOQoCBgoSIkKDAgH9RDQALIA5CgIGChIiQoMCAf4UhDgsgBSAEIA56p0EDdiAIaiIMQQR0ayICQQhrKAIAIAJBDGsoAgAgAkEQaygCAEHdy92eeWxqQd3L3Z55bGpB3cvdnnlsQQ93Ig0gCXEiAmopAABCgIGChIiQoMCAf4MiD1AEQEEIIQcDQCACIAdqIQIgB0EIaiEHIAUgAiAJcSICaikAAEKAgYKEiJCgwIB/gyIPUA0ACwsgDkIBfSAOgyEOIAUgD3qnQQN2IAJqIAlxIgJqLAAAQQBOBEAgBSkDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgBWogDUEZdiIHOgAAIAUgAkEIayAJcWpBCGogBzoAACAFIAJBf3NBBHRqIgIgBCAMQX9zQQR0aiIHKQAINwAIIAIgBykAADcAACABQQFrIgENAAsLIAAgCTYCBCAAIAU2AgAgACALIAprNgIIIAZFDQAgBkEEdEEXakFwcSIBIAZqQQlqIgBFDQAgBCABayIKQQRrKAIAIgRBeHEhASABQQRBCCAEQQNxIgQbIABqSQ0BIARBAEcgASAAQSdqS3ENAiAKELwFDwsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB+OjIAEE5QfifxAAQvxMAC94NAgp/Bn4jAEGwAmsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAigCACIKDgUCAAAAAQALQaCryQBBKEGcrsYAEK8UAAsgA0HYAGogAkEIahD5DSADKAJcIgEgAygCZCIHRg0CIAEoAgAiBUF/Rg0CIAEoAlAhCyABKAJMIQQgASgCSCEGIANB6AFqQQRyIAFBBGpBxAD8CgAAIAMgBTYC6AEgByABQdgAaiIBa0HYAG4hBSABIAdHBEADQAJAIAFByABqKAIAIgdBf0YNACAHRQ0AIAFBzABqKAIAIgxBBGsoAgAiCUF4cSEIIAhBBEEIIAlBA3EiCRsgB2pJDRAgCUEARyAIIAdBJ2pLcQ0PIAwQvAULIAEQrgcgAUHYAGohASAFQQFrIgUNAAsLIAMoAmAiBQRAIAMoAlgiB0EEaygCACIIQXhxIQEgASAFQdgAbCIFQQRBCCAIQQNxIggbakkNDiAIQQBHIAEgBUEnaktxDQ0gBxC8BQsgA0HYAGogA0HoAWoQ2gEgAygCiAEiAUF/Rg0BIAAgAykCjAE3AjwgACADKAKUATYCRCADIAMpA4ABIg03A1AgAyADKQN4Ig43A0ggAyADKQNwIg83A0AgAyADKQNoIhA3AzggAyADKQNgIhE3AzAgAyADKQNYIhI3AyggACANNwMwIAAgDjcDKCAAIA83AyAgACAQNwMYIAAgETcDECAAIBI3AwggACABNgI4IABB/gE6AAAgBkEBa0F9Sw0LIARBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgBmpJDQ0gAUEARyAAIAZBJ2pLcQ0MIAQQvAUMCwsgAkEIaiEEIAIoAghBD0YNBCAAQQE6AAggAEH/AToAACAAIAQpABgiDTcAKCADIAQpAAA3AKIBIAAgAykAmwE3AAkgAyAEKQAINwCqASAAIAMpAKMBNwARIAMgBCkAEDcAsgEgACADKQCrATcAGSADIA03ALoBIAAgAykAswE3ACEMCgsgAyADKQNwIg03A0AgAyADKQNYNwMIIAMgAykDYDcDECADIAMpA2g3AxggAyANNwMgAkAgAAJ/AkACQAJAAkACQCALQQNrDgcACAEECAMCCAsgBC8AAEHzygFzIARBAmotAABB9ABzcg0HQQEMBAsgBCgAAEH13M2rBnMgBEEEai0AAEH0AHNyDQYgAygCCEEORw0HIAAgAy0ADDoACSAAQQI6AAggAEH/AToAACADQQhqEIgEDAQLQQMgBCkAAELp3I2T16zbsu4AhSAEQQhqIgExAABC9ACFhFANAhogBCkAAELkyo2T16zbsu4AhSABMQAAQvQAhYRCAFINBUEEDAILIAQpAABC7eqxo5eNnLb5AFINBEEFDAELIAQoAABB5NLZywZzIARBBGovAABB5MoBc3INA0EGCzoACCAAQf8BOgAAIAAgAykDICINNwAoIAMgAykDCDcAyAEgACADKQDCATcACiADIAMpAxA3ANABIAAgAykAygE3ABIgAyADKQMYNwDYASAAIAMpANIBNwAaIAMgDTcA4AEgACADKQDaATcAIgsgBkEBa0F9Sw0FIARBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgBmpJDQsgAUUNBCAAIAZBJ2pNDQQMCgtBqK3GABCdFQALQbitxgBBhQFB/K3GABC/EwALQYyuxgAQnRUACyADQdgAaiABEJ8KIAMoAlhBCUcEQCAAQQE6AAggAEH/AToAACAAIAQpABgiDTcAKCADIAQpAAA3AKIBIAAgAykAmwE3AAkgAyAEKQAINwCqASAAIAMpAKMBNwARIAMgBCkAEDcAsgEgACADKQCrATcAGSADIA03ALoBIAAgAykAswE3ACEMBgsgAigCECEEIAIoAgwhBgJ/AkACQCACKAIUQQZrDgMABgEGCyAEKAAAQcTEuaoHcyAEQQRqLwAAQezYAXNyDQVBFQwBCyAEKQAAQsrmvfPmqZ227ABSDQRBBBCQASIBRQ0FIAFB7uqx4wY2AABBEwshBSAAQQQ2AhwgACABNgIYIABBBDYCFCAAIAU2AhAgAEEBOgAIIABB/wE6AAAgBkUNAiAEQQRrKAIAIgFBeHEhACAAQQRBCCABQQNxIgEbIAZqSQ0HIAFFDQAgACAGQSdqSw0GCyAEELwFCwJAIAoOBQEAAAAEAAsgAhCuBwwDCyACKAIIQQ9GDQIgAkEIahCIBAwCC0Ggq8kAQShBmK3GABCvFAALQQEQpxQACyADQbACaiQADwtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALzQsCFH8CfiMAQdACayISJABCgICAgICAgIDAACABrSIZgCEaIBkgGn5CgICAgICAgIDAAFKtAn8gAUGBIE8EQEEBIAFBAXJnQR9zIgVBAXEgBUEBdmoiBXQgASAFdmpBAXYMAQtBwAAgASABQQF2ayIFIAVBwABPGwshEyAafCEaIABBFGshFiAAQSxqIRdBASEIA0BBACEUQQEhCSABIA9LIhgEQCAPQRRsIg4gAGohECAaIA9BAXQCfwJAIAEgD2siCiATSQ0AAkAgCkECSQRAIAohDAwBCwJAAkACQCAQKAIUIgkgECgCACAQQRhqKAIAIgUgEEEEaigCACIGIAUgBkkbEI8TIgwgBSAGayAMG0EASCIVRQRAQQIhDCAKQQJGDQQgDiAXaiENA0AgDUEEaygCACIGIAkgDSgCACIJIAUgBSAJSxsQjxMiByAJIAVrIAcbQQBIDQMgDUEUaiENIAkhBSAGIQkgCiAMQQFqIgxHDQALDAELQQIhDEEBIQcgCkECRg0CIA4gF2ohDQNAIA1BBGsoAgAiBiAJIA0oAgAiCSAFIAUgCUsbEI8TIgcgCSAFayAHG0EATg0CIA1BFGohDSAJIQUgBiEJIAogDEEBaiIMRw0ACwsgCiEMCyAMIBNJDQIgFUUNASAMQQF2IgdFDQELIBYgDEEUbGohDSAAIQUDQCAFIA5qIgZBCGoiCSkCACEZIAkgDSAOaiIKQQhqIgkpAgA3AgAgCSAZNwIAIAYpAgAhGSAGIAopAgA3AgAgCiAZNwIAIApBEGoiCSgCACEKIAkgBkEQaiIJKAIANgIAIAkgCjYCACANQRRrIQ0gBUEUaiEFIAdBAWsiBw0ACwsgDEEBdEEBcgwBCyAKIBMgCiATSRtBAXQgBEUNABogEEEgIAogCkEgTxsiBSACIANBAEEAEPEBIAVBAXRBAXILIglBAXZqrX4gDyAIQQF2a60gD618IBp+hXmnIRQLAkACQCALQQJJDQAgD0EUbCIFIBZqIQogACAFaiEVA0AgC0EBayIMIBJBjgJqai0AACAUSQ0BAn8CQAJAIAMgEkEEaiAMQQJ0aigCACIFQQF2IgcgCEEBdiIGaiINTyAFIAhyQQFxRXFFBEAgACAPIA1rQRRsaiELIAVBAXFFDQEMAgsgDUEBdAwCCyALIAcgAiADIAdBAXJnQQF0QT5zQQAQ8QELIAhBAXFFBEAgCyAHQRRsaiAGIAIgAyAGQQFyZ0EBdEE+c0EAEPEBCwJAIAZFDQAgB0UNACAGIAcgBiAHSSIGGyIFIANLDQAgCyAHQRRsaiEIIAVBFGwiBQRAIAIgCCALIAYbIAX8CgAACyACIAVqIRECQCAGRQRAIAIhBQNAIAsgBSAIIAgoAgAgBSgCACAIQQRqKAIAIg4gBUEEaigCACIHIAcgDksbEI8TIgYgDiAHayAGGyIHQQBOIgYbIg4oAhA2AhAgCyAOKQIINwIIIAsgDikCADcCACALQRRqIQsgBSAGQRRsaiIFIBFGDQIgFSAIIAdBH3ZBFGxqIghHDQALDAELIAohBQNAAkAgEUEUayIQKAIAIAhBFGsiDigCACARQRBrKAIAIgcgCEEQaygCACIGIAYgB0sbEI8TIgggByAGayAIGyIIQQBOIQcgBSAQIA4gBxsiBigCEDYCECAFIAYpAgg3AgggBSAGKQIANwIAIBAgCEEfdkEUbGohESALIA4gB0EUbGoiCEYNACAFQRRrIQUgAiARRw0BCwsgCCELIAIhBQsgESAFayIIRQ0AIAsgBSAI/AoAAAsgDUEBdEEBcgshCEEBIQUgDCILQQFLDQALDAELIAshBQsgEkGOAmogBWogFDoAACASQQRqIAVBAnRqIAg2AgAgGARAIAVBAWohCyAJQQF2IA9qIQ8gCSEIDAELCyAIQQFxRQRAIAAgASACIAMgAUEBcmdBAXRBPnNBABDxAQsgEkHQAmokAAvYDgEFfyMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQCAAKAIAKAIAIgQtAABBAWsOBwECAwQFBgcAC0EBIQAgASgCACIDQeKRyQBBBSABKAIEIgYoAgwiBREAAA0HIARBCGohBAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANCSAEIAEQ0QJFDQEMCQsgA0Gd48IAQQIgBREAAA0IIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAEIAJBIGoQ0QINCCACKAIgQaSyyABBAiACKAIkKAIMEQAADQgLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwHC0EBIQAgASgCACIDQeeRyQBBBCABKAIEIgYoAgwiBREAAA0GIARBCGohBAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANCCAEIAEQ0QJFDQEMCAsgA0Gd48IAQQIgBREAAA0HIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAEIAJBIGoQ0QINByACKAIgQaSyyABBAiACKAIkKAIMEQAADQcLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwGC0EBIQAgASgCACIDQeuRyQBBBCABKAIEIgYoAgwiBREAAA0FIARBCGohBAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANByAEIAEQ0QJFDQEMBwsgA0Gd48IAQQIgBREAAA0GIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAEIAJBIGoQ0QINBiACKAIgQaSyyABBAiACKAIkKAIMEQAADQYLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwFC0EBIQAgASgCACIDQd2RyQBBBSABKAIEIgYoAgwiBREAAA0EIARBAWohBAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANBiAEIAEQmBRFDQEMBgsgA0Gd48IAQQIgBREAAA0FIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUaiIDNgIgIAQgAkEgahCYFA0FIANBpLLIAEECEP0IDQULIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwECyACIARBCGo2AgxBASEAIAEoAgAiBEHvkckAQQYgASgCBCIFKAIMIgMRAAANAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAMRAAANBSACQQxqIAEQ1gFFDQEMBQsgBEGd48IAQQIgAxEAAA0EIAJBAToAEyACIAU2AhggAiAENgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQRNqNgIcIAIgAkEUajYCICACQQxqIAJBIGoQ1gENBCACKAIgQaSyyABBAiACKAIkKAIMEQAADQQLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwDC0EBIQAgASgCACIDQfWRyQBBAiABKAIEIgYoAgwiBREAAA0CIARBCGohBAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANBCAEIAEQ0QJFDQEMBAsgA0Gd48IAQQIgBREAAA0DIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAEIAJBIGoQ0QINAyACKAIgQaSyyABBAiACKAIkKAIMEQAADQMLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwCC0EBIQAgASgCACIDQfeRyQBBBSABKAIEIgYoAgwiBREAAA0BIARBCGohBAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANAyAEIAEQ0QJFDQEMAwsgA0Gd48IAQQIgBREAAA0CIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAEIAJBIGoQ0QINAiACKAIgQaSyyABBAiACKAIkKAIMEQAADQILIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwBC0EBIQAgASgCACIDQfyRyQBBBSABKAIEIgYoAgwiBREAAA0AIARBAWohBAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANAiAEIAEQmBRFDQEMAgsgA0Gd48IAQQIgBREAAA0BIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUaiIDNgIgIAQgAkEgahCYFA0BIANBpLLIAEECEP0IDQELIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAsgAkEwaiQAIAALmJMBAj9/CH4jAEHAA2siDCQAIAxBEGohMSACISUgAyEPIAQhNQJ/IAUEQCAMQQRqIgIgBUEEaigCACAFQQhqKAIAEL4JIAJBACAMKAIEQX9HGwwBCyAMQX82AgRBAAshJiABIRkjAEHgCGsiBiQAIA8oAgghESAPKAIEIQIgBgJ+QdDwyQAtAAAEQEHI8MkAKQMAIUpBwPDJACkDAAwBCyAGQdADahC7EUHQ8MkAQQE6AABByPDJACAGKQPYAyJKNwMAIAYpA9ADCyJFNwOYBkHA8MkAIEVCAXw3AwAgBiBKNwOgBiAGQZCpyQApAwA3A4gGIAZBmKnJACkDADcDkAYgEUHQAGwhGgJ/IBFFBEBBiKnJACEgQn8hSEEBDAELIAIgGmohCiAGQZgGaiEVIAIhBQNAIAVBNGooAgAhAyAFQThqKAIAIgQgBEEBdkEAIAYoApQGG2siASAGKAKQBksEQCAGQYgGaiABIBUQuAMLAkAgBEUNACADIARB6ABsaiEXA0AgBikDoAYiR0LzytHLp4zZsvQAhSFKIAYpA5gGIkVC4eSV89bs2bzsAIUhSCBHQu3ekfOWzNy35ACFIUYgRUL1ys2D16zbt/MAhSFHIANB5ABqIggoAgAiCUEHcSESIANB4ABqIgQoAgAhB0EAIQsgCUF4cSITBH9BACEBA0AgASAHaikAACJLIEqFIkkgSHwiSCBGIEd8IkcgRkINiYUiRXwhTCBMIEVCEYmFIUYgSCBJQhCJhSJFIEdCIIl8IUcgRyBFQhWJhSFKIExCIIkhSCBHIEuFIUcgEyABQQhqIgFLDQALIBNBAWtBeHFBCGoFQQALIQFCACFFAn4gEkEETwRAIAEgB2o1AAAhRUEEIQsLIBIgC0EBcksEQCABIAdqIAtqMwAAIAtBA3SthiBFhCFFIAtBAnIhCwsCQCALIBJJBEAgByABIAtqajEAACALQQN0rYYgRYQhRSAJQQFqIQEMAQsgCUEBaiEBIBINAEL/AQwBCyBFQv8BIBJBA3SthoQiTCASQQdHDQAaIEogTIUiSSBIfCJIIEYgR3wiRyBGQg2JhSJFfCFLIEsgRUIRiYUhRiBIIElCEImFIkUgR0IgiXwhRyBHIEVCFYmFIUogS0IgiSFIIEcgTIUhR0IACyABrUI4hoQiSSBKhSJFIEh8IUggSCBFQhCJhSJFIEYgR3wiR0IgiXwhSyBLIEVCFYmFIkUgSCBHIEZCDYmFIkh8IkdCIIlC/wGFfCFMIEwgRUIQiYUiRSBHIEhCEYmFIkggSSBLhXwiR0IgiXwhSyBLIEVCFYmFIkkgRyBIQg2JhSJHIEx8IkVCIIl8IUwgRSBHQhGJhSJIIEt8IkVCIIkgTCBJQhCJhSJHfCFLIEhCDYkgRYUiSSBMfCJFQiCJIEsgR0IViYUiSHwiRyBJQhGJIEWFIkUgS3wgRUINiYUiRXwhSSBJIEhCEIkgR4VCFYkgRUIRiYUgSUIgiIWFIUUgBigCkAZFBEAgBkGIBmpBASAVELgDIAgoAgAhCSAEKAIAIQcLIANB3ABqIRQgA0HoAGohAyAGKAKMBiITIEWncSEEIEVCGYgiSEL/AINCgYKEiJCgwIABfiFHQQAhCCAGKAKIBiESQQAhDgNAAn8CQAJAIAQgEmopAAAiSSBHhSJFQoGChIiQoMCAAX0gRUJ/hYNCgIGChIiQoMCAf4MiRkIAUgRAA0AgEiBGeqdBA3YgBGogE3FBAnRrQQRrKAIAIgFBCGooAgAgCUYEQCAHIAFBBGooAgAgCRCPE0UNAwsgRkIBfSBGgyJGQgBSDQALCyBJQoCBgoSIkKDAgH+DIUUgCEEBRwRAIEVQDQIgRXqnQQN2IARqIBNxIQsLQQEgRSBJQgGGg1ANAhogCyASaiwAACIHQQBOBEAgEiASKQMAQoCBgoSIkKDAgH+DeqdBA3YiC2otAAAhBwsgCyASaiBIp0H/AHEiAToAACASIAtBCGsgE3FqQQhqIAE6AAAgEiALQQJ0a0EEayAUNgIAIAYgBigClAZBAWo2ApQGIAYgBigCkAYgB0EBcWs2ApAGCyADIBdHDQMMBAtBAAshCCAOQQhqIg4gBGogE3EhBAwACwALAAsgCiAFQdAAaiIFRw0ACyAGKAKIBiIgKQMAIUggBigClAYhEEEBIAYoAowGIgNFDQAaICAgA0ECdEELakF4cSIBayEUIAEgA2pBCWohCEEACyEXIAYCfkHQ8MkALQAABEBByPDJACkDACFKQcDwyQApAwAMAQsgBkHQA2oQuxFB0PDJAEEBOgAAQcjwyQAgBikD2AMiSjcDACAGKQPQAwsiRTcDOEHA8MkAIEVCAXw3AwAgBiBKNwNAIAZBkKnJACkDADcDKCAGQZipyQApAwA3AzACQAJAAkACQAJAAkACQAJAIBBFDQAgIEEIaiEDIEhCf4VCgIGChIiQoMCAf4MhRiAGQShqIBAgBkE4aiIVEJsDAkADQCBGUARAA0AgAyIBQQhqIQMgIEEgayEgIAEpAwBCgIGChIiQoMCAf4MiRUKAgYKEiJCgwIB/UQ0ACyBFQoCBgoSIkKDAgH+FIUYLICAgRnqnQQF2QTxxa0EEaygCACIBQQhqKAIAIR4gAUEEaigCACETIAZB0ANqIRhBACEHICUoAgAiEkEMaigCACENICUoAgghFiAlKAIEIQ4CQAJAAkAgEkEQaigCACIKIgQOAgIBAAsDQAJ/IA0gBEEBdiIJIAdqIgtB5ABsaiIFQdQAaigCACIBIA5HBEAgASAOSQwBCyAFQdgAaigCACAWSQshASALIAcgARshByAEIAlrIgRBAUsNAAsLAn8gDSAHQeQAbGoiBEHUAGooAgAiASAORwRAIAEgDkkMAQsgBEHYAGooAgAgFkkLIAdqIQQLIBhBADoAKCAYIBY2AiQgGCAONgIgIBhBADYCFCAYIAQ2AhAgGCAWNgIMIBggDjYCCCAYICU2AgAgGCASQQhqNgIEIBggDSAKQeQAbGo2AhwgGCANIARB5ABsajYCGAJAAkACQCAGLQD4Aw0AIAYoAugDIgEgBigC7AMiCUYNACAQQQFrIRAgRkIBfSBGgyFGA0AgBiABQeQAaiIFNgLoAyABKAJUIAYoAvADRw0BIAEoAlggBigC9ANHDQECfwJAIAYoAuQDIgQgBigC4ANqIhIgBigC1AMiCygCCCIBSQRAIBJB5ABsIgcgCygCBGoiCi0AYEUNASAFDAILIBIgAUHk9sgAEIUTAAsgBSAKLQBIQfsBcUUNABogBigC0AMoAgAiFigCACEBIBYgAUEBajYCACABQQBIDQggFigCECIBIBJNDQYCfyAWKAIMIAdqIgEoAgAEQCABKAIEIgEgFigCcE8NBiAWKAJsIAFBBHRqIgEoAgghBCABKAIEDAELIAZBIGogFkEIaiASENAQIAYoAiQhBCAGKAIgCyEBIAQgHkYEQCABIBMgHhCPE0UNBAsgFiAWKAIAIgFBAWs2AgAgAUEBRgRAIBYQMAsgBigC7AMhCSAGKALkAyEEIAYoAugDCyEBIAYgBEEBajYC5AMgASAJRw0ACwtBrPrIABCdFQALIAYgFjYCqAcgBiASNgKcByAGQQA2ApgHIAYpAzggBikDQCAGQZgHahC8CyFFIAYoAjBFBEAgBkEoakEBIBUQmwMLIAYoAiwiBCBFp3EhCyBFQhmIIkhC/wCDQoGChIiQoMCAAX4hR0EAIQkgBigCKCEFQQAhDQNAAn8CQAJAAkAgBSALaikAACJJIEeFIkVCgYKEiJCgwIABfSBFQn+Fg0KAgYKEiJCgwIB/gyJKQgBSBEADQCAFIEp6p0EDdiALaiAEcUFsbGoiAUEUaygCAEUEQCASIAFBEGsoAgBGDQMLIEpCAX0gSoMiSkIAUg0ACwsgSUKAgYKEiJCgwIB/gyFFIAlBAUcEQCBFUA0DIEV6p0EDdiALaiAEcSEKC0EBIEUgSUIBhoNQDQMaIAUgCmosAAAiB0EATgRAIAUgBSkDAEKAgYKEiJCgwIB/g3qnQQN2IgpqLQAAIQcLIAUgCmogSKdB/wBxIgE6AAAgBSAKQQhrIARxakEIaiABOgAAIAUgCkFsbGpBFGsiASAGKAKoBzYCECABIAYpAqAHNwIIIAEgBikCmAc3AgAgBiAGKAI0QQFqNgI0IAYgBigCMCAHQQFxazYCMAwBCyAWIBYoAgAiAUEBazYCACABQQFHDQAgFhAwCyAQDQQMBgtBAAshCSANQQhqIg0gC2ogBHEhCwwACwALC0GkuMQAEJ0VAAsgEiABQeT2yAAQhRMACyAXIAhFckUEQCAUQQRrKAIAIgFBeHEhAyADQQRBCCABQQNxIgEbIAhqSQ0FIAFBAEcgAyAIQSdqS3ENBiAUELwFCyAGKAIsITIgBigCKCEWAkACQAJAIAYoAjQiI0UEQCARQZGNpANPDQMgDygCACEJAkACQCARQbgCbCIBRQRAQQghJ0EAIRcMAQsgESEXIAEQkAEiJ0UNAQsgEQRAIBlBEGohDyAGQdADaq1CgICAgJAahCFHIBFBBHRBEGtBBHZBAWohLSAGQawCaiERIAZBmAJqIQogBkGgA2ohByAGQYQEaiEFICchBCACIQsDQCAGQZgHaiALQdAA/AoAACAGQdADaiAlIBkQnAQgBkEANgKMBCAGQoCAgICAATcChAQgBkEANgKYBCAGQoCAgICAATcCkAQgBiAGKQLQAzcDgAggBiAGKQLYAzcDiAggBiAGKQLgAzcDkAggBiAGKQLoAzcDmAggBiAGKQLwAzcDoAggBiAGKQL4AzcDqAggBiAGKAKABDYCsAggByAFKAIINgIIIAcgBSkCADcCAAJAIBkoAgBBAXEEQCAGIA8pAxgiRTcD6AMgBiAPKQMQNwPgAyAGIA8pAwg3A9gDIAYgDykDADcD0ANBfiEOIEWnQQFxBEAgBiBHNwPQCCAGQYgGakHAlMIAIAZB0AhqELgMIAYoApAGIRAgBigCiAYhDiAGKAKMBiEICyAKIAYpA5gDNwMAIAogBikDoAM3AwggCiAGKAKoAzYCECARIAYpA4AINwIAIBEgBikDiAg3AgggESAGKQOQCDcCECARIAYpA5gINwIYIBEgBikDoAg3AiAgESAGKQOoCDcCKCARIAYoArAINgIwIAZBfzYClAIgBiAQNgKQAiAGIAg2AowCIAYgDjYCiAIMAQsgCiAGKQOYAzcDACAKIAYpA6ADNwMIIAogBigCqAM2AhAgESAGKQOACDcCACARIAYpA4gINwIIIBEgBikDkAg3AhAgESAGKQOYCDcCGCARIAYpA6AINwIgIBEgBikDqAg3AiggESAGKAKwCDYCMCAGQX82ApQCIAYgEDYCkAIgBiAINgKMAiAGQX42AogCCyAGQX42AvgBIAZCCDcDsAEgBkIENwOoASAGQX42AiggJgRAIAZBCGogJkEEaigCACAmQQhqKAIAIBkQ8gcgBkHQA2oiAyAGQShqIgEgBigCCBDPAyABIANBuAL8CgAACyA1BEAgBkF/NgKIBiAGQdADaiIDIAZBKGoiASAGQYgGahDNECABIANBuAL8CgAACyALQdAAaiELIAZBmAdqELELIAQgBkEoakG4AvwKAAAgBEG4AmohBCAaQdAAayIaDQALCyAJRQ0DIAJBBGsoAgAiAUF4cSEEIAQgCUHQAGwiA0EEQQggAUEDcSIBG3JPBEAgAUUNAyAEIANBJ2pNDQMMCwsMCQsMBQsCQAJAAkACQAJAAkACfwJAIBkoAjhBAUYEQCAPKAIAIQ8CQCARRQRAQQQhDUEAIQNBACEHDAELIBkoAjwhCCAGQeADaiERQQAhA0EEIQ1BACEHIAIhBANAIBEgBEHQAPwKAAAgBiAHNgLYAyAGIA02AtQDIAYgAzYC0AMCQCAHRQRAIAZBKGogERDvEiADRQRAIAZB0ANqEJkSIAYoAtQDIQ0LIA0gBikCMDcCCCANIAYpAig3AgBBASEHDAELIAggBigCqAQiBSAHQQR0IgEgDWoiCkEEayIXKAIAaiIJTwRAIApBCGsiASgCACILIApBEGsiAygCAEYEQCADEKoSIBcoAgAgBWohCQsgCkEMaygCACALQdAAbGogEUHQAPwKAAAgFyAJNgIAIAEgC0EBajYCAAwBCyAGQShqIBEQ7xIgAyAHRgRAIAZB0ANqEJkSIAYoAtQDIQ0LIAEgDWoiASAGKQIwNwIIIAEgBikCKDcCACAHQQFqIQcLIARB0ABqIQQgBigC0AMhAyAaQdAAayIaDQALCyAPBEAgAkEEaygCACIBQXhxIQUgBSAPQdAAbCIEQQRBCCABQQNxIgEbckkNESABQQBHIAUgBEEnaktxDRIgAhC8BQsgA0EEdCIVQQxuIRcgB0EEdCIBIA1qIQQgDSIIIRACQCAHRQ0AIAFBEGsiAkHwAHFB8ABHBEBBACACQQR2QQFqQQdxayEBA0AgCCkCACFFIBAgCCgCCDYCCCAQIEU3AgAgEEEMaiEQIAhBEGohCCABQQFqIgENAAsLIAJB8ABJDQADQCAIKQIAIUUgECAIKAIINgIIIBAgRTcCACAIQRBqKQIAIUUgEEEUaiAIQRhqKAIANgIAIBBBDGogRTcCACAIQSBqKQIAIUUgEEEgaiAIQShqKAIANgIAIBBBGGogRTcCACAIQTBqKQIAIUUgEEEsaiAIQThqKAIANgIAIBBBJGogRTcCACAIQUBrKQIAIUUgEEE4aiAIQcgAaigCADYCACAQQTBqIEU3AgAgCEHQAGopAgAhRSAQQcQAaiAIQdgAaigCADYCACAQQTxqIEU3AgAgCEHgAGopAgAhRSAQQdAAaiAIQegAaigCADYCACAQQcgAaiBFNwIAIAhB8ABqKQIAIUUgEEHcAGogCEH4AGooAgA2AgAgEEHUAGogRTcCACAQQeAAaiEQIAQgCEGAAWoiCEcNAAsLIAQgCEcEQCAEIAhrQQR2IQlBACEaA0AgCCAaQQR0aiIRKAIEIRMgESgCCCILBEBBACEOA0AgEyAOQdAAbGoiEhCGBAJAIBIoAkAiAUUNACABIAFBAnRBC2pBeHEiAWpBCWoiBUUNACASKAI8IAFrIgJBBGsoAgAiAUF4cSEEIARBBEEIIAFBA3EiARsgBWpJDRUgAUEARyAEIAVBJ2pLcQ0WIAIQvAULIBIoAjQhAiASKAI4IgcEQCACIQEDQCABQdwAaigCACIKBEAgAUHgAGooAgAiBUEEaygCACIEQXhxIQ8gD0EEQQggBEEDcSIEGyAKakkNFyAEQQBHIA8gCkEnaktxDRggBRC8BQsCQCABLQAAQf8BRgRAAkACQAJAAkACQAJAIAFBCGotAAAOBgECBwMEBQALIAFBEGoQhgQMBgsgAUEMaigCACIKRQ0FIAFBEGooAgAiBUEEaygCACIEQXhxIQ8gD0EEQQggBEEDcSIEGyAKakkNHCAEQQBHIA8gCkEnaktxDR0gBRC8BQwFCyABQRBqEIYEDAQLIAFBEGoQhgQMAwsgAUEQahCGBAwCCyABQRBqEIYEDAELIAEQ5ggLIAFB6ABqIQEgB0EBayIHDQALCyASKAIwIgQEQCACQQRrKAIAIgFBeHEhBSAFIARB6ABsIgRBBEEIIAFBA3EiARtqSQ0VIAFBAEcgBSAEQSdqS3ENFiACELwFCyALIA5BAWoiDkcNAAsLIBEoAgAiAgRAIBNBBGsoAgAiAUF4cSEEIAQgAkHQAGwiAkEEQQggAUEDcSIBG3JJDRMgAUEARyAEIAJBJ2pLcQ0UIBMQvAULIAkgGkEBaiIaRw0ACwsgDSEFIANFDQEgF0EMbCIBIBVGDQEgFUUEQEEEIQUMAgsgDSAVQQQgARCtBiIFDQEMEgtBDCEHQQwQkAEiBUUEQAwSCyAFIA8oAgg2AgggBSAPKQIANwIAQbgCIQRBASEXQQEhAUEBIREgBUEMaiI2IBkoAjANARoMBgsgECANayIHQQxuIQEgGSgCMEUEQCABIQ4gBSECIBchEQwFCyAHRQ0BIAUgB2oLIQ8gGSgCNCEYIAcQkAEiAgRAIAZBjAhqIRsgGEUNAiAGQShqQQRyIR8gBkHkA2ohHCAGQdAEaiEaIAZB0ANqIgNBEGohISADQQhqISRBACEOIAUhFAJAA0ACQCAGIBQoAggiAzYCoAMgBiAUKQIAIkU3A5gDIBsgAzYCCCAbIEU3AgAgBiAONgKICCAGIAI2AoQIIAYgATYCgAgCQCAGKAKUCCIDIBhNBEAgASAORgRAIAZBgAhqEJ8SIAYoAoQIIQILIAIgDkEMbGoiASAbKAIINgIIIAEgGykCADcCACAOQQFqIQ4MAQsgGkIANwMAIBpCADcDCEEAIQEgGkEANgIQIAYgGDYCzAQgBkEANgLIBCAGQoCAgIDAADcDwAQgBiAGKAKMCDYCuAQgBiAGKAKQCCIENgK0BCAGIAQ2ArAEIAZBfzYC4AMgBkEANgLYAyAGQQA6AOgEIAZBfzYC5AQgBiAEIANB0ABsajYCvARBASELIAZBATYC8AQCQAJAAkADQEF/IQQgBkF/NgLQAyABIAYoAtwESQ0CAn8CQAJAAkAgBigC2AQiAyABSw0AAkAgASADRgRAIAYoAsgEIAEgBigC4ARrSw0CIAYtAOgERQ0BDAgLIAYtAOgEDQcgBkEoaiAkEOADDAMLIAZBfzYCKCAGKALgAyEHIAZBiAZqIgMgHEHMAPwKAAAgISAGQShqQdAA/AoAACAHQX9HBEAgHyADQcwA/AoAAEEADAQLIAYoArQEIgMgBigCvARGDQEgBiADQdAAajYCtAQgAygCACIHQX9GDQEgBigC1AQhCiADQQRqIQggBgJ/IAYoAtAEIgMgBigCzARHBEAgA0EBagwBCyAGIApBAWoiCjYC1ARBAQs2AtAEIAYoAtwDIQQgBiAKNgLcAyAGKALYAyAGQQE2AtgDQQFGIAQgCkdxRQRAIB8gCEHMAPwKAABBAAwECyAGQYgGaiAIQcwA/AoAACAGKALgA0F/RwRAICEQsQsgBigC2ARBAWohCwsgBiAHNgLgAyAcIAZBiAZqQcwA/AoAACAGIAs2AtgEDAILIAZBKGogJCABELkJDAELIAZBAToA6AQLIAYoAtADIQQgBigCKCIHQX9GDQMgBEEBagshBCAGQZgHaiIDIB9BzAD8CgAAIAYgBDYC0AMgB0F+Rg0DQcACEJABIgpFDRMgCiAHNgIAIApBBGogA0HMAPwKAAAgBEUEQEEBIQdBBCEEQdAAIQsDQCAGQX82AtADAkACQAJ/AkACQCABIAYoAtwESQ0AAkACQAJAAkACQCAGKALYBCIDIAFLDQACQCABIANGBEAgBigCyAQgASAGKALgBGtLDQIgBi0A6AQNByAGQX82AiggBigC4AMhCCAGQYgGaiIDIBxBzAD8CgAAICEgBkEoakHQAPwKAAAgCEF/Rg0BIAYgCDYCKCAfIANBzAD8CgAAIAZBADYC0AMMBQsgBi0A6AQNBiAGQShqICQQ4AMMAwsgBigCtAQiAyAGKAK8BEYNASAGIANB0ABqNgK0BCADKAIAIhNBf0YNASAGKALUBCEJIANBBGohESAGAn8gBigC0AQiAyAGKALMBEcEQCADQQFqDAELIAYgCUEBaiIJNgLUBEEBCzYC0AQgBigC3AMhCCAGIAk2AtwDIAYoAtgDIAZBATYC2ANBAUYgCCAJR3FFBEAgHyARQcwA/AoAACAGIBM2AiggBkEANgLQAwwECyAGQYgGaiARQcwA/AoAACABIQMgBigC4ANBf0cEQCAhELELIAYoAtgEIQMLIAYgEzYC4AMgHCAGQYgGakHMAPwKAAAgBiADQQFqNgLYBAwCCyAGQShqICQgARC5CQwBCyAGQQE6AOgECyAGIAYoAtADQQFqIgM2AtADIAYoAihBf0YNAQsgBCAHRw0FIARBzJmzBk0NAkEAIQMgBkGIBmoMAwsgAw0ICyAGKALkBCIDQX9HIAEgA01xRQRAIAYgATYC5AQLIAZBADYC0AMgBigCgAggDkYEQCAGQYAIaiAOQQFBBEEMELMRIAYoAoQIIQILIAIgDkEMbGoiASAHNgIIIAEgCjYCBCABIAQ2AgAgBiAOQQFqIg42AogIIAYgBigC8AQiAUEBaiILNgLwBCAGKALQA0UNBkHgl8kAENITAAtBBCAEQQF0IgMgA0EETRsiCEHQAGwhAwJ/IAQEQCAKIARB0ABsQQggAxCtBgwBCyADEJABCyIKDQEgBkEINgKIBiAGQdAIagsgAzYCACAGKALQCBogBigCiAYQpxQACyAIIQQLIAogC2ogBkEoakHQAPwKAAAgC0HQAGohCyAHQQFqIQcgBigC0ANFDQALCwtBsP/IABDSEwALQaD/yAAQ0hMACyAGIARBAWo2AtADCyAGKAK8BCIBIAYoArQEIhNrQdAAbiEJIAEgE0cEQEEAIQgDQCATIAhB0ABsaiIVEIYEAkAgFSgCQCIBRQ0AIAEgAUECdEELakF4cSIBakEJaiIHRQ0AIBUoAjwgAWsiA0EEaygCACIBQXhxIQQgBEEEQQggAUEDcSIBGyAHakkNBCABQQBHIAQgB0EnaktxDRYgAxC8BQsgFSgCNCEDIBUoAjgiBwRAIAMhAQNAIAFB3ABqKAIAIhEEQCABQeAAaigCACILQQRrKAIAIgRBeHEhCiAKQQRBCCAEQQNxIgQbIBFqSQ0XIARBAEcgCiARQSdqS3ENGCALELwFCwJAIAEtAABB/wFGBEACQAJAAkACQAJAAkAgAUEIai0AAA4GAQIHAwQFAAsgAUEQahCGBAwGCyABQQxqKAIAIhFFDQUgAUEQaigCACILQQRrKAIAIgRBeHEhCiAKQQRBCCAEQQNxIgQbIBFqSQ0cIARBAEcgCiARQSdqS3ENHSALELwFDAULIAFBEGoQhgQMBAsgAUEQahCGBAwDCyABQRBqEIYEDAILIAFBEGoQhgQMAQsgARDmCAsgAUHoAGohASAHQQFrIgcNAAsLIBUoAjAiBARAIANBBGsoAgAiAUF4cSEHIAcgBEHoAGwiBEEEQQggAUEDcSIBG2pJDRUgAUEARyAHIARBJ2pLcQ0WIAMQvAULIAkgCEEBaiIIRw0ACwsgBigCuAQiAwRAIAYoArAEIgRBBGsoAgAiAUF4cSEHIAcgA0HQAGwiA0EEQQggAUEDcSIBG3JJDRMgAUEARyAHIANBJ2pLcQ0UIAQQvAULIAYoAuADQX9HBEAgIRCxCwsgBigCxAQhDSAGKALIBCIRBEBBACEJA0AgDSAJQQR0aiIeKAIMIgEgHigCBCISa0HQAG4hCiABIBJHBEBBACEIA0AgEiAIQdAAbGoiIhCGBAJAICIoAkAiAUUNACABIAFBAnRBC2pBeHEiAWpBCWoiB0UNACAiKAI8IAFrIgNBBGsoAgAiAUF4cSEEIARBBEEIIAFBA3EiARsgB2pJDRcgAUEARyAEIAdBJ2pLcQ0YIAMQvAULICIoAjQhAyAiKAI4IgcEQCADIQEDQCABQdwAaigCACIVBEAgAUHgAGooAgAiC0EEaygCACIEQXhxIRMgE0EEQQggBEEDcSIEGyAVakkNGSAEQQBHIBMgFUEnaktxDRogCxC8BQsCQCABLQAAQf8BRgRAAkACQAJAAkACQAJAIAFBCGotAAAOBgECBwMEBQALIAFBEGoQhgQMBgsgAUEMaigCACIVRQ0FIAFBEGooAgAiC0EEaygCACIEQXhxIRMgE0EEQQggBEEDcSIEGyAVakkNHiAEQQBHIBMgFUEnaktxDR8gCxC8BQwFCyABQRBqEIYEDAQLIAFBEGoQhgQMAwsgAUEQahCGBAwCCyABQRBqEIYEDAELIAEQ5ggLIAFB6ABqIQEgB0EBayIHDQALCyAiKAIwIgQEQCADQQRrKAIAIgFBeHEhByAHIARB6ABsIgRBBEEIIAFBA3EiARtqSQ0XIAFBAEcgByAEQSdqS3ENGCADELwFCyAKIAhBAWoiCEcNAAsLIB4oAggiAwRAIB4oAgAiBEEEaygCACIBQXhxIQcgByADQdAAbCIDQQRBCCABQQNxIgEbckkNFSABQQBHIAcgA0EnaktxDRYgBBC8BQsgESAJQQFqIglHDQALCyAGKALABCIDRQ0AIA1BBGsoAgAiAUF4cSEEIAQgA0EEdCIDQQRBCCABQQNxIgEbckkNEiABQQBHIAQgA0EnaktxDQMgDRC8BQsgBigCgAghASAPIBRBDGoiFEcNAQwGCwsMDwsMDwsMCwtBBCECQQAhDkEAIQEMAQtBACEOQQAhBwNAAkAgBiAONgKICCAGIAI2AoQIIAYgATYCgAggGyAFIAdqIgMoAgg2AgggGyADKQIANwIAIAYoApQIDQAgASAORgRAIAZBgAhqEJ8SIAYoAoQIIQIgBigCgAghAQsgAiAHaiIDIBsoAgg2AgggAyAbKQIANwIAIA5BAWohDiAHQQxqIgcgBWogD0cNAQwCCwtBgPrIAEEbQZz6yAAQrxQACyABIREgF0UNACAFQQRrKAIAIgFBeHEhBCAEIBdBDGwiA0EEQQggAUEDcSIBG2pJDQogAUEARyAEIANBJ2pLcQ0LIAUQvAULIA5BkY2kA08NBCAOBEAgDkG4AmwhBCACIA5BDGxqITYgDiEXIAIhBQwBC0EAIRdBCCEnDAELIAQQkAEiJ0UNBSAZQRBqIS4gI0EBayEkIBZBCGohGCAGQdADaiIBrUKAgICAkBqEIUdBBCAjICNBBE0bIhpBFGwhNyAGQawCaiEdIAZBqARqITMgBkGYA2oiAkEZaiE4IAJBEWohOSACQQlqITogAkEBciE7IAZBsQZqISIgBkGpBmohHiAGQYgGaiICQRlqIRIgAkERaiEVIAJBCWohGyABQQRqIUAgBkGQBGohQSAjQefMmTNJIUIgBSEfA0AgGCEHIBYiASkDAEKAgYKEiJCgwIB/gyJGQoCBgoSIkKDAgH9RBEADQCAHIgJBCGohByABQaABayEBIAIpAwBCgIGChIiQoMCAf4MiRkKAgYKEiJCgwIB/UQ0ACwsgHygCCCEvIB8oAgQhISAfKAIAITwgASBGQoCBgoSIkKDAgH+FIkZ6p0EDdkFsbGoiCEEEaygCACIEKAIAIQIgBCACQQFqNgIAIAJBAEgNBSAIQRRrKAIAIQMgBiAIQRBrIgIoAgg2ApAGIAYgAikCADcDiAYCQCADQQJHBEAgQkUNBgJAIDdFBEBBBCEPQQAhEwwBCyAaIRMgNxCQASIPRQ0KCyAPIAM2AgAgDyAGKQOIBjcCBCAPIAYoApAGNgIMIA8gBDYCECAGQQE2AqAHIAYgDzYCnAcgBiATNgKYByAkBEAgRkIBfSBGgyFGQQEhAiAkIQMCfwNAIEZQBEADQCAHIgRBCGohByABQaABayEBIAQpAwBCgIGChIiQoMCAf4MiRUKAgYKEiJCgwIB/UQ0ACyBFQoCBgoSIkKDAgH+FIUYLIAEgRnqnQQN2QWxsaiIJQQRrKAIAIgsoAgAhBCALIARBAWo2AgAgBEEASA0KIAlBFGsoAgAhCCAGIAlBEGsiBCgCCDYC2AMgBiAEKQIANwPQAyAGKAKYByIEIAhBAkYNARogRkIBfSBGgyFGIAIgBEYEQCAGQZgHaiACIANBBEEUELMRIAYoApwHIQ8LIA8gAkEUbGoiBCAINgIAIAQgBikD0AM3AgQgBCAGKALYAzYCDCAEIAs2AhAgBiACQQFqIgI2AqAHIANBAWsiAw0ACyAjIQIgBigCmAcLIRMgBigCnAchDyACQQJJDQIgAkEVTwRAIwBBgCBrIgckAAJAAkACQEGAtRggAiACQYC1GE8bIgEgAiACQQF2ayIDIAEgA0sbIgFBzQFPBEAgA0HnzJkzTw0CIAFBFGwiBBCQASIIRQ0PIA8gAiAIIAEgAkHBAEkQrgIgCEEEaygCACIBQXhxIQMgA0EEQQggAUEDcSIBGyAEakkNESABQQBHIAMgBEEnaktxDQMgCBC8BQwBCyAPIAIgB0HMASACQcEASRCuAgsgB0GAIGokAAwFCxCeFQALDA4LQQAhByAPQRRqIQQgDyACQRRsaiENIA8hAQNAIAEhCSAEIQEgCSgCBCEEIAkoAgAhAyAJKAIgIRwgCSgCHCEOIAkoAhghFAJAAkACQAJ/AkACQAJAIAkoAhQiCEEBRyIKRQRAIANBAXFFDQEgCSgCCCIDIA5JIAMgDktrIAQgFEkgBCAUS2sgBCAURhsiBEH/AXENAiAJKAIMIgMgHEkgAyAcS2shBAwCCyADQQFHDQILIAggA2shBAsgBMBBAE4NBCAHIQQgCSgCJCILIAoNARoDQCAEIA9qIglBJGogCSgCEDYCACAJQRxqIAkpAgg3AgAgCUEUaiAJKQIANwIAIARFDQMgCCEDAkAgCUEUaygCAEEBRw0AIAlBDGsoAgAiAyAOSSADIA5LayAJQRBrKAIAIgMgFEkgAyAUS2sgAyAURhsiA0H/AXENACAJQQhrKAIAIgMgHEkgAyAcS2shAwsgBEEUayEEIAPAQQBIDQALIAQgD2pBFGohBAwDCyAEIBRNDQMgCSgCJAshCyABIAkoAhA2AhAgASAJKQIINwIIIAEgCSkCADcCACAHIQMgCSAPRg0AA0AgAyAPaiIEQRRrIgkoAgBBAXFFBEAgFCAEQRBrKAIATw0DCyAEIAkoAhA2AhAgBCAJKQIINwIIIAQgCSkCADcCACADQRRrIgMNAAsLIA8hBAsgBCALNgIQIAQgHDYCDCAEIA42AgggBCAUNgIEIAQgCDYCAAsgB0EUaiEHIA0gAUEUaiIERw0ACwwCC0EBIQIMAQtBBCEPQQAhE0EAIQILIC9BDGwhNAJAIC9FBEBBACEoQQQhKQwBCyA0EJABIilFDQggAkHVqtUKSw0FICEgL0HQAGxqIUMgAkHgAGwhPSAPIAJBFGxqIURBACEoICEhHANAIAZBmAdqIBxB0AD8CgAAAn8gPUUEQEEIIQ1BAAwBCyA9EJABIg1FDQkgAgshASAGQQA2AtgIIAYgDTYC1AggBiABNgLQCCACBEBBACEUIA8hEANAIBAoAgQhCQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQYgGaiAGQZgHagJ/IBAoAgBBAUYEQAJAAkAgECgCECIqKAJMIg5FDQAgECgCDCErIBAoAgghLCAqQdAAaigCACEgA0AgDkEMaiEKIA5BBGohASAOLwGmCCIHQQxsIQRBfyEDAkADQCAERQRAIAchAwwCCyABKAIEIgggLEkgCCAsS2sgASgCACIIIAlJIAggCUtrIAggCUYbIgtB/wFxRQRAIAooAgAiCCArSSAIICtLayELCyABQQxqIQEgBEEMayEEIApBDGohCiADQQFqIQMgC0EBRg0ACyALQf8BcUUNAwsgIEUNASAgQQFrISAgDiADQQJ0aigCqAghDgwACwALQdS5xABBFkGEvsQAEMATAAsgDiADQdQAbGoiASgCiAFBAUYEQCABQYgBaigCBCIBICooAnBPDQMgKigCbCABQQR0aiIDQQhqIQEgA0EEagwCCyAqQaACaigCACIBIAlNDQMgKkGcAmooAgAgCUEkbGoiA0EgaigCACIBICxNDQQgA0EcaigCACAsQdQAbGoiAygCAEGAgICAeEcNBSADKAIkIgEgK00NBiADKAIgICtB3ABsaiIDQSRqIQEgA0EgagwBCyAQKAIQIggoAhAiASAJTQ0GIAgoAgwgCUHkAGxqIgcoAgAEQCAHKAIEIgEgCCgCcE8NCCAIKAJsIAFBBHRqIgNBCGohASADQQRqDAELIAcoAlQiAyAIKAKgAiIBTw0IIAcoAlgiBCAIKAKcAiADQSRsaiIDQSBqKAIAIgFPDQkgA0EcaigCACAEQdQAbGoiBCgCAEGCgICAeEcNCiAHKAJcIgMgBCgCJCIBTw0LIAQoAiAgA0HcAGxqIgNBJGohASADQSBqCygCACABKAIAEKoEIAYtAIgGIgFB/gFHBEAgBi0AqAYhBCAGLQCgBiELIAYtAJgGIQogBi0AkAYhByABRQRAIBshASAVIQMgEiEJIB4hCAwVCyAGLQCwBiEOAkAgAUH/AUcNACAHQf8BcUEBRw0AIBUhASASIQMgHiEJICIhCCAKIQcgCyEKIAQhCyAOIQQMFQsgBiAbKAADNgCDCCAGIBsoAAA2AoAIIAYgFSgAADYC+AcgBiAVKAADNgD7ByAGIBIoAAA2AvAHIAYgEigAAzYA8wcgBiAeKAAANgLoByAGIB4oAAM2AOsHIAYgAToA0AMgBiAHOgDYAyAGIAo6AOADIAYgCzoA6AMgBiAbKAAANgDZAyAGIBsoAAM2ANwDIAYgFSgAADYA4QMgBiAVKAADNgDkAyAGIBIoAAA2AOkDIAYgEigAAzYA7AMgBiAGKACJBjYA0QMgBiAGKACMBjYA1AMgBiAEOgDwAyAGIA46APgDIAYgHigAADYA8QMgBiAeKAADNgD0AyAGICIoAAA2APkDIAYgIigAAzYA/AMgBiAGKQPYBjcDoAQgBiAGKQPQBjcDmAQgBiAGKQPIBjcDkAQgBiAGKQPABjcDiAQgBiAGKQO4BjcDgARBrPnIAEHEACAGQdADakGc+cgAQbz6yAAQ2hIACyAQKAIEIQcCQCAQKAIAQQFGBEAgECgCECIDQaACaigCACIBIAdNDQ0gECgCCCIEIANBnAJqKAIAIAdBJGxqIgNBIGooAgAiAU8NDiADQRxqKAIAIARB1ABsaiIBKAIAQYCAgIB4Rw0PIBAoAgwiByABKAIkIgNJDQEgByADQaS+xAAQhRMACyAQKAIQIggoAhAiASAHTQ0SIAgoAgwgB0HkAGxqIgcoAlQiAyAIKAKgAiIBTw0PIAcoAlgiBCAIKAKcAiADQSRsaiIDQSBqKAIAIgFPDRAgA0EcaigCACAEQdQAbGoiASgCAEGCgICAeEcNESAHKAJcIgcgASgCJCIDTw0TCwJAAkAgASgCICAHQdwAbGotAFhFDQAgBkHQA2oiAyAQEI0EIAYoAtADIgFBfkYNASABQX9HBEAgAxCGBAwBCyAGKALUAyIHBEAgBigC2AMiA0EEaygCACIBQXhxIQQgBEEEQQggAUEDcSIBGyAHakkNJSABQQBHIAQgB0EnaktxDSYgAxC8BQsgBigC5AMhAyAGKALoAyIHBEAgAyEBA0AgARCGBCABQSBqIQEgB0EBayIHDQALCyAGKALgAyIERQ0AIANBBGsoAgAiAUF4cSEHIAcgBEEFdCIEQQRBCCABQQNxIgEbckkNJCABQQBHIAcgBEEnaktxDSUgAxC8BQsgBigC0AggFEYEQCAGQdAIahClEgsgBigC1AgiDSAUQeAAbGoiAUF+NgJQIAFBDTYCAAwVCyAGKALQCCAURgRAIAZB0AhqEKUSCyAGKALUCCINIBRB4ABsaiIBQX42AlAgAUEANgIcIAFBADoAGCABQX42AgggAUECNgIADBQLQbS9xAAQnRUACyAJIAFBlL7EABCFEwALICwgAUGUvsQAEIUTAAtBlL7EABCdFQALICsgAUGkvsQAEIUTAAsgCSABQeT2yAAQhRMAC0GkuMQAEJ0VAAsgAyABQdS4xAAQhRMACyAEIAFB1LjEABCFEwALQdS4xAAQnRUACyADIAFB5LjEABCFEwALIAcgAUGUvsQAEIUTAAsgBCABQZS+xAAQhRMAC0GUvsQAEJ0VAAsgAyABQdS4xAAQhRMACyAEIAFB1LjEABCFEwALQdS4xAAQnRUACyAHIAFB5PbIABCFEwALIAcgA0HkuMQAEIUTAAsgBiABKAADNgCDCCAGIAEoAAA2AoAIIAYgBzoAmAMgBiADKAAANgL4ByAGIAMoAAM2APsHIAYgCSgAADYC8AcgBiAJKAADNgDzByAGIAgoAAA2AugHIAYgCCgAAzYA6wcgOyAGKACDCDYAAyA7IAYoAoAINgAAIDogBigC+Ac2AAAgOiAGKAD7BzYAAyA5IAYoAvAHNgAAIDkgBigA8wc2AAMgBiAKOgCgAyAGIAs6AKgDIAYgBDoAsAMgOCAGKADrBzYAAyA4IAYoAugHNgAAIAZBgAhqIgEgECAGQZgDaiAZEKEBIEAgAUHIAPwKAAAgASAGQdADakHMAPwKAAAgBigC0AggFEYEQCAGQdAIahClEiAGKALUCCENCyANIBRB4ABsaiIBQQA2AgAgAUEEaiAGQYAIakHMAPwKAAAgAUF+NgJQCyAGIBRBAWoiFDYC2AggRCAQQRRqIhBHDQALCyAGIAYoAtgINgKQByAGIAYpAtAINwOIByAGQZgHahCxCyApIChBDGxqIgEgBigCkAc2AgggASAGKQOIBzcCACAoQQFqISggQyAcQdAAaiIcRw0ACwsgPARAICFBBGsoAgAiAUF4cSEEIAQgPEHQAGwiA0EEQQggAUEDcSIBG3JJDQogAUEARyAEIANBJ2pLcQ0LICEQvAULIAZBGGogDyACIBkQmhAgBigCGCENIAZBmANqICUgGRCcBAJAAkAgDSgCBCIDIA0oAgwiCEYEQCADIQEMAQsgDSADQbABaiIBNgIEIAMoAnAiBEF+Rg0AIAZB0ANqIgcgA0HwAPwKAAAgBiADKAKsATYCwAYgBiADKQKkATcDuAYgBiADKQKcATcDsAYgBiADKQKUATcDqAYgBiADKQKMATcDoAYgBiADKQKEATcDmAYgBiADKQJ8NwOQBiAGIAMpAnQ3A4gGQcAFEJABIgpFDQggCiAHQfAA/AoAACAKIAQ2AnAgCiAGKQOIBjcCdCAKIAYpA5AGNwJ8IAogBikDmAY3AoQBIAogBikDoAY3AowBIAogBikDqAY3ApQBIAogBikDsAY3ApwBIAogBikDuAY3AqQBIAogBigCwAY2AqwBQQEhAyAGQQE2AtgIIAYgCjYC1AhBBCEIIAZBBDYC0AgCQCANKAIEIgEgDSgCDCIJRg0AIA0gAUGwAWoiBDYCBCAHIAFB8AD8CgAAIAYgASkCdDcDmAcgBiABKQJ8NwOgByAGIAEpAoQBNwOoByAGIAEpAowBNwOwByAGIAEpApQBNwO4ByAGIAEpApwBNwPAByAGIAEpAqQBNwPIByAGIAEoAqwBNgLQByABKAJwIgdBfkYEQCAEIQEMAQtBpAIhCwJAA0AgBkGIBmogBkHQA2pB8AD8CgAAIAYgBigC0Ac2ArgIIAYgBikDyAc3A7AIIAYgBikDwAc3A6gIIAYgBikDuAc3A6AIIAYgBikDsAc3A5gIIAYgBikDqAc3A5AIIAYgBikDoAc3A4gIIAYgBikDmAc3A4AIIAYoAtAIIANGBEAgBkHQCGogA0EBQQhBsAEQsxEgBigC1AghCgsgCiALaiIBQfQAayAGQYgGakHwAPwKAAAgAUEEayAHNgIAIAEgBikDgAg3AgAgASAGKQOICDcCCCABIAYpA5AINwIQIAEgBikDmAg3AhggASAGKQOgCDcCICABIAYpA6gINwIoIAEgBikDsAg3AjAgASAGKAK4CDYCOCAGIANBAWoiAzYC2AggDSgCDCIJIA0oAgQiBEcEQCANIARBsAFqIgE2AgQgBkHQA2ogBEHwAPwKAAAgBiAEKQJ0NwOYByAGIAQpAnw3A6AHIAYgBCkChAE3A6gHIAYgBCkCjAE3A7AHIAYgBCkClAE3A7gHIAYgBCkCnAE3A8AHIAYgBCkCpAE3A8gHIAYgBCgCrAE2AtAHIAtBsAFqIQsgBCgCcCIHQX5HDQEMAgsLIAQhAQsgBigC1AghCiAGKALQCCEICyAJIAFrQbABbiEHIAEgCUcEQANAIAEQlwQgAUGwAWohASAHQQFrIgcNAAsLIA0oAggiBARAIA0oAgAiB0EEaygCACIBQXhxIQsgCyAEQbABbCIEQQRBCCABQQNxIgEbckkNDCABQQBHIAsgBEEnaktxDQ0gBxC8BQsgDUEEaygCACIEQQNxIQEgBEF4cUEUQRggARtJDQsgAUEARyAEQThPcUUEQCANELwFDAILDAwLIAggAWtBsAFuIQcgASAIRwRAA0AgARCXBCABQbABaiEBIAdBAWsiBw0ACwsgDSgCCCIDBEAgDSgCACIEQQRrKAIAIgFBeHEhByAHIANBsAFsIgNBBEEIIAFBA3EiARtySQ0LIAFBAEcgByADQSdqS3ENDCAEELwFCyANQQRrKAIAIgNBA3EhASADQXhxQRRBGCABG0kNCiABQQBHIANBOE9xDQsgDRC8BUEIIQpBACEDQQAhCAsgBiAGKALIAzYCkAMgBiAGKQLAAzcDiAMgBiAGKQK4AzcDgAMgBiAGKQKwAzcD+AIgBiAGKQKoAzcD8AIgBiAGKQKgAzcD6AIgBiAGKQKYAzcD4AICQCAoRQRAQX8hCUEEIQRBACELQQAhAQwBCyAoQQxsIQ5BfyEJQQQhBEEAIQdBACELQQAhAQNAIDMgByApaiINKAIINgIIIDMgDSkCADcCACAGIAYpA+ACNwPQAyAGIAYpA+gCNwPYAyAGIAYpA/ACNwPgAyAGIAYpA/gCNwPoAyAGIAYpA4ADNwPwAyAGIAYpA4gDNwP4AyAGIAYoApADNgKABCAGIEY3A6AEIAYgCTYCnAQgBiAENgKUBCAGIAM2AowEIAYgCjYCiAQgBiAINgKEBCAGIAE2ApgEIAYgCzYCkAQgBkGIBmogMxDLCSABIAtGBEAgQRCfEiAGKAKUBCEECyAEIAdqIgMgBigCkAY2AgggAyAGKQKIBjcCACAGIAYpA9ADNwPgAiAGIAYpA9gDNwPoAiAGIAYpA+ADNwPwAiAGIAYpA+gDNwP4AiAGIAYpA/ADNwOAAyAGIAYpA/gDNwOIAyAGIAYoAoAENgKQAyABQQFqIQEgBikDoAQhRiAGKAKcBCEJIAYoApQEIQQgBigCkAQhCyAGKAKMBCEDIAYoAogEIQogBigChAQhCCAOIAdBDGoiB0cNAAsLIC8EQCApQQRrKAIAIgdBeHEhDSANQQRBCCAHQQNxIgcbIDRqSQ0KIAdBAEcgDSA0QSdqS3ENCyApELwFCwJAAkBBDBCQASINBEAgDSABNgIIIA0gBDYCBCANIAs2AgAgBiAGKQPgAjcDmAcgBiAGKQPoAjcDoAcgBiAGKQPwAjcDqAcgBiAGKQP4AjcDsAcgBiAGKQOAAzcDuAcgBiAGKQOIAzcDwAcgBiAGKAKQAzYCyAcCQCAJQX9GDQAgRqchBCBGQiCIIkVCAFIEQCBFpyEHIAQhAQNAIAEQwQogAUGwAWohASAHQQFrIgcNAAsLIAlFDQAgBEEEaygCACIBQXhxIQsgCyAJQbABbCIHQQRBCCABQQNxIgEbckkNDSABQQBHIAsgB0EnaktxDQ4gBBC8BQsgGSgCAEEBcUUNASAGIC4pAxgiRTcD6AMgBiAuKQMQNwPgAyAGIC4pAwg3A9gDIAYgLikDADcD0ANBfiEBIEWnQQFxBEAgBiBHNwOACCAGQYgGakHAlMIAIAZBgAhqELgMIAYoApAGIT4gBigCjAYhPyAGKAKIBiEBCyAdIAYpA5gHNwIAIB0gBikDoAc3AgggHSAGKQOoBzcCECAdIAYpA7AHNwIYIB0gBikDuAc3AiAgHSAGKQPABzcCKCAdIAYoAsgHNgIwIAYgAzYCqAIgBiAKNgKkAiAGIAg2AqACIAZBfzYClAIgBiA+NgKQAiAGID82AowCIAYgATYCiAIMAgsMDQsgHSAGKQPgAjcCACAdIAYpA+gCNwIIIB0gBikD8AI3AhAgHSAGKQP4AjcCGCAdIAYpA4ADNwIgIB0gBikDiAM3AiggHSAGKAKQAzYCMCAGIAM2AqgCIAYgCjYCpAIgBiAINgKgAiAGQX82ApQCIAYgPjYCkAIgBiA/NgKMAiAGQX42AogCCyAGQX42AvgBIAYgDTYCrAEgBkEJNgKoASAGQX42AiggJgRAIAZBEGogJkEEaigCACAmQQhqKAIAIBkQ8gcgBkHQA2oiAyAGQShqIgEgBigCEBDPAyABIANBuAL8CgAACyA1BEAgBkF/NgKIBiAGQdADaiIDIAZBKGoiASAGQYgGahDNECABIANBuAL8CgAACyACBEAgD0EQaiEBA0AgASgCACIDKAIAIQQgAyAEQQFrNgIAIARBAUYEQCABKAIAEDALIAFBFGohASACQQFrIgINAAsLIBMEQCAPQQRrKAIAIgFBeHEhAyADIBNBFGwiAkEEQQggAUEDcSIBG2pJDQogAUEARyADIAJBJ2pLcQ0LIA8QvAULICcgLUG4AmxqIAZBKGpBuAL8CgAAIC1BAWohLSA2IB9BDGoiH0cNAAsgBSECCyARRQ0BIAJBBGsoAgAiAUF4cSEEIAQgEUEMbCIDQQRBCCABQQNxIgEbakkNByABRQ0AIAQgA0EnaksNCAsgAhC8BQsgMSAtNgIIIDEgJzYCBCAxIBc2AgACQCAyRQ0AICMEQCAWQQhqIQcgFikDAEJ/hUKAgYKEiJCgwIB/gyFGIBYhAQNAIEZQBEADQCAHIgJBCGohByABQaABayEBIAIpAwBCgIGChIiQoMCAf4MiRUKAgYKEiJCgwIB/UQ0ACyBFQoCBgoSIkKDAgH+FIUYLIAEgRnqnQQN2QWxsakEEayIDKAIAIgIoAgAhBCACIARBAWs2AgAgRkIBfSAEQQFGBEAgAygCABAwCyBGgyFGICNBAWsiIw0ACwsgMkEUbEEbakF4cSIBIDJqQQlqIgRFDQAgFiABayICQQRrKAIAIgFBeHEhAyADQQRBCCABQQNxIgEbIARqSQ0GIAFBAEcgAyAEQSdqS3ENByACELwFCyAGQeAIaiQADAQLEJ4VAAsAC0EIEKcUAAtBBBCnFAALIAwoAhQiByAMKAIYIgFBuAJsIgRqIQogDCgCECEXAkACfwJAAkAgAUUEQEEAIQEgByEFDAELIAxBmANqIQhBACEDAkADQCAMQdAAaiICIAMgB2oiAUG4AvwKAAAgDEGMA2ogAkEAELIEIAFBuAJqIQUgDCgClAMhMCAMKAKQAyEBIAwoAowDIgJBfkYNAiAMIAgpAiA3A0ggDCAIKQIYNwNAIAwgCCkCEDcDOCAMIAgpAgg3AzAgDCAIKQIANwMoIAJBfUcNASAEIANBuAJqIgNHDQALQQAhAQwCCyAMIAwpA0g3A3AgDCAMKQNANwNoIAwgDCkDODcDYCAMIAwpAzA3A1ggDCAMKQMoNwNQAkACQEHQARCQASIDBEAgAyAwNgIIIAMgATYCBCADIAI2AgAgAyAMKQNQNwIMIAMgDCkDWDcCFCADIAwpA2A3AhwgAyAMKQNoNwIkIAMgDCkDcDcCLEEBIQQgDEEBNgIkIAwgAzYCICAMQQQ2AhwgBSAKRg0BIApBuAJrIQggDEGYA2ohDwNAIAggBWshCSAFIQICQANAAkAgDEHQAGoiASACQbgC/AoAACAMQYwDaiABQQAQsgQgAkG4AmohBSAMKAKUAyEwIAwoApADIQEgDCgCjAMiC0F+Rg0AIAwgDykCIDcDSCAMIA8pAhg3A0AgDCAPKQIQNwM4IAwgDykCCDcDMCAMIA8pAgA3AyggC0F9Rw0CIAlBuAJrIQkgCiAFIgJHDQEMBQsLIAUgCkYNBCACQbgCaiEFIAlBuAJuIQMDQCAFEKkHIAVBuAJqIQUgA0EBayIDDQALDAQLIAwgDCkDSDcDcCAMIAwpA0A3A2ggDCAMKQM4NwNgIAwgDCkDMDcDWCAMIAwpAyg3A1AgDCgCHCAERgRAIAxBHGogBEEBQQRBNBCzESAMKAIgIQMLIAMgBEE0bGoiAiAwNgIIIAIgATYCBCACIAs2AgAgAiAMKQNQNwIMIAIgDCkDWDcCFCACIAwpA2A3AhwgAiAMKQNoNwIkIAIgDCkDcDcCLCAMIARBAWoiBDYCJEEAIQEgBSAKRw0ACwwCC0EEEKcUAAtBACEBCwJAIBcEQCAHQQRrKAIAIgJBeHEhBSAFIBdBuAJsIgNBBEEIIAJBA3EiAhtqSQ0GIAJBAEcgBSADQSdqS3ENASAHELwFCyAMKAIgIQMgDCgCHAwDCwwDCyAKIAVrQbgCbiEEIAUgCkYNAANAIAUQqQcgBUG4AmohBSAEQQFrIgQNAAsLQQAhBCAXBEAgB0EEaygCACICQXhxIQUgBSAXQbgCbCIDQQRBCCACQQNxIgIbakkNAyACQQBHIAUgA0EnaktxDQIgBxC8BQtBBCEDQQALIQICQCABBEAgACAwNgIIIAAgATYCBCAAQX82AgAgBARAIAMhBQNAIAUQ2gQgBUE0aiEFIARBAWsiBA0ACwsgAkUNASADQQRrKAIAIgBBeHEhBCAEIAJBNGwiAUEEQQggAEEDcSIAG2pJDQMgAEEARyAEIAFBJ2pLcQ0CIAMQvAUMAQsgACAENgIIIAAgAzYCBCAAIAI2AgALAkAgDCgCBCIHQX9GDQAgDCgCCCEIIAwoAgwiAwRAIAhBFGohBUEAIQQDQCAIIARBGGxqIQICQAJAAkACQAJAIAVBFGsoAgAOAgECAAsgBSgCACIAKAIAIQEgACABQQFrNgIAIAFBAUcNAyACQRRqIQIMAgsgBUEQaygCACIAKAIAIQEgACABQQFrNgIAIAFBAUcNAiACQQRqIQIMAQsgBSgCACIAKAIAIQEgACABQQFrNgIAIAUhAiABQQFHDQELIAIoAgAQMAsgBEEBaiEEIAVBGGohBSADQQFrIgMNAAsLIAdFDQAgCEEEaygCACIAQXhxIQIgAiAHQRhsIgFBBEEIIABBA3EiABtqSQ0CIABBAEcgAiABQSdqS3ENASAIELwFCyAMQcADaiQADwsMAQtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQbjwyQBBAToAAAALgA4DBX8DfgF8IwBBMGsiAiQAAkACQAJ/AkACQAJAAkACQAJAAkBBBSAAKAIQIgRBgICAgHhzIARBAE4bQQFrDgUBAgUDBAALIAIgASgCACgCAEGzssgAQQQQqwsgAi0AAEH/AUYNCCACKQMAEPATIQMMCAsgASgCACgCACEBAkAgAC0AAEUEQCACIAFBqrLIAEEFEKsLDAELIAIgAUGvssgAQQQQqwsLIAItAABB/wFGDQcgAikDABDwEyEDDAcLIAEoAgAhAwJAAkACQCAAKAIAQQFrDgIBAgALQRQhASAAKQMIIgdCkM4AWgRAA0AgASACaiIAQQRrIAciCCAHQpDOAIAiB0KQzgB+faciBEH//wNxQeQAbiIFQQF0LwCcmEk7AAAgAEECayAEIAVB5ABsa0H//wNxQQF0LwCcmEk7AAAgAUEEayEBIAhC/8HXL1YNAAsLAkAgB0LjAFgEQCAHpyEADAELIAenIgRB//8DcUHkAG4hACACIAFBAmsiAWogBCAAQeQAbGtB//8DcUEBdC8AnJhJOwAACwJAIABBCk8EQCACIAFBAmsiAWogAEEBdC8AnJhJOwAADAELIAIgAUEBayIBaiAAQTByOgAACyACQShqIAMoAgAgASACakEUIAFrEKsLQQAhAyACLQAoQf8BRg0IIAIpAygQ8BMhAwwIC0EUIQEgACkDCCIJQj+HIQcgByAJhSAHfSIHQpDOAFoEQANAIAEgAmoiAEEEayAHIgggB0KQzgCAIgdCkM4Afn2nIgRB//8DcUHkAG4iBUEBdC8AnJhJOwAAIABBAmsgBCAFQeQAbGtB//8DcUEBdC8AnJhJOwAAIAFBBGshASAIQv/B1y9WDQALCwJAIAdC4wBYBEAgB6chAAwBCyAHpyIEQf//A3FB5ABuIQAgAiABQQJrIgFqIAQgAEHkAGxrQf//A3FBAXQvAJyYSTsAAAsCQCAAQQpPBEAgAiABQQJrIgFqIABBAXQvAJyYSTsAAAwBCyACIAFBAWsiAWogAEEwcjoAAAsgCUIAUwRAIAIgAUEBayIBakEtOgAACyACQShqIAMoAgAgASACakEUIAFrEKsLQQAhAyACLQAoQf8BRg0HIAIpAygQ8BMhAwwHCyAAKwMIIgq9Qv///////////wCDQoCAgICAgID4/wBaBEAgAiADKAIAQbOyyABBBBCrC0EAIQMgAi0AAEH/AUYNByACKQMAEPATIQMMBwsgCiACEPYBIQAgAkEoaiADKAIAIAIgABCrC0EAIQMgAi0AKEH/AUYNBiACKQMoEPATIQMMBgsgACgCBCEFIAAoAgghBCACIAEoAgAiACgCAEGissgAQQEQqwsgAi0AAEH/AUcEQCACKQMAEPATIQMMBgsgBEUNBCAFIAEQrQMiAw0FIARBAUcEQCAFQTBqIQAgBEEwbEEwayEEA0AgAiABKAIAKAIAQcWyyABBARCrCyACLQAAQf8BRwRAIAIpAwAQ8BMhAwwICyAAIAEQrQMiAw0HIABBMGohACAEQTBrIgQNAAsLIAIgASgCACgCAEGossgAQQEQqwtBACEDIAItAABB/wFGDQUgAikDABDwEyEDDAULIAAoAighAyACIAEoAgAiBSgCAEGjssgAQQEQqwsgAi0AAEH/AUcEQCACKQMAEPATIQMMBQtBgAIgAw0CGiACIAUoAgBBobLIAEEBEKsLIAItAABB/wFGDQEgAikDABDwEyEDDAQLIAEoAgAgACgCBCAAKAIIEKQJIQMMAwtBAAshBAJAAkACQAJAIAAoAhgiBQRAIAAoAhQiAEE8aigCACEEIABBOGooAgAhBiADRQRAIAIgASgCACgCAEHFssgAQQEQqwsgAi0AAEH/AUcNBQsgASgCACAGIAQQpAkiAw0GIAIgASgCACgCAEHGssgAQQEQqwsgAi0AAEH/AUcNAyAAIAEQrQMiAw0GIAVBBnRBQGohBCAAQfwAaiEAA0AgBEUNAiAAQQRrKAIAIQMgACgCACEFIAIgASgCACgCAEHFssgAQQEQqwsgAi0AAEH/AUcNBSABKAIAIAMgBRCkCSIDDQcgAiABKAIAKAIAQcayyABBARCrCyACLQAAQf8BRw0EIABBPGsgBEFAaiEEIABBQGshACABEK0DIgNFDQALDAYLIARBAXENASAEQYACcQ0AQQAhAwwFCyACIAEoAgAoAgBBobLIAEEBEKsLQQAhAyACLQAAQf8BRg0EIAIpAwAQ8BMhAwwEC0Ggq8kAQShBzODIABCvFAALIAIpAwAQ8BMhAwwCCyACKQMAEPATIQMMAQsgAiAAKAIAQaiyyABBARCrCyACLQAAQf8BRwRAIAIpAwAQ8BMhAwwBCwsgAkEwaiQAIAMLpg0CEn8HfiMAQcABayICJAAgAUGBAjsBoAECQCABKAJ8QX9GBEAMAQsgASgChAEhDiABKAKAASETIAICfkHQ8MkALQAABEBByPDJACkDACEWQcDwyQApAwAMAQsgAkH4AGoQuxFB0PDJAEEBOgAAQcjwyQAgAikDgAEiFjcDACACKQN4CyIUNwM4QcDwyQAgFEIBfDcDACACIBY3A0AgAkGQqckAKQMANwMoIAJBmKnJACkDADcDMEGIqckAIQUCQCAORQ0AIAJBKGoiA0EQaiEQIAMgDiAQEIYDIAJB/ABqIQwgAkGoAWohESACQdgAaiEGAkADQAJAIAJB+ABqIBMgD0HoAWxqIgcQ4QggAigCgAEhBCACKAJ8IQMCQCACKAJ4IgpBf0cEQCADIQgMAQsgBEEASA0DIARFBEBBASEIQQAhCkEAIQQMAQsgBBCQASIIRQ0BIAQEQCAIIAMgBPwKAAALIAQhCgsgBiAHQcgBahCQAyACKQM4IRUgAikDQCEUIBFCADcDACARQgA3AwggAiAUNwOgASACIBU3A5gBIAIgFELzytHLp4zZsvQAhTcDkAEgAiAUQu3ekfOWzNy35ACFNwOIASACIBVC4eSV89bs2bzsAIU3A4ABIAIgFUL1ys2D16zbt/MAhTcDeCACQfgAaiIDIAggBBCWCCACQf8BOgC/ASADIAJBvwFqQQEQlgggAikDqAEgAjUCsAFCOIaEIhggAikDkAGFIhQgAikDgAF8IhUgFEIQiYUiFCACKQOIASIZIAIpA3h8IhdCIIl8IhYgFEIViYUhGiAaIBUgGUINiSAXhSIVfCIUQiCJQv8BhXwiFyAaQhCJhSEZIBkgFCAVQhGJhSIVIBYgGIV8IhRCIIl8IhYgGUIViYUhGCAYIBQgFUINiYUiFSAXfCIUQiCJfCIXIBhCEImFIRggGCAUIBVCEYmFIhUgFnwiFEIgiXwiFiAYQhWJhSEYIBggFUINiSAUhSIVIBd8IhRCIIl8IhcgFUIRiSAUhSIUIBZ8IBRCDYmFIhV8IhQgGEIQiSAXhUIViSAVQhGJhSAUQiCIhYUhFCACKAIwRQRAIAJBKGpBASAQEIYDCyACKAIsIg0gFKdxIQsgFEIZiCIVQv8Ag0KBgoSIkKDAgAF+IRZBACESIAIoAighBUEAIQcDQAJ/AkACQAJAIAUgC2opAAAiFyAWhSIUQoGChIiQoMCAAX0gFEJ/hYNCgIGChIiQoMCAf4MiFEIAUgRAA0AgBSAUeqdBA3YgC2ogDXFBUGxqIgNBKGsoAgAgBEYEQCAIIANBLGsoAgAgBBCPE0UNAwsgFEIBfSAUgyIUQgBSDQALCyAXQoCBgoSIkKDAgH+DIRQgEkUEQCAUUA0DIBR6p0EDdiALaiANcSEJC0EBIBQgF0IBhoNQDQMaIAUgCWosAAAiB0EATgRAIAUpAwBCgIGChIiQoMCAf4N6p0EDdiIJIAVqLQAAIQcLIAUgCWogFadB/wBxIgM6AAAgBSAJQQhrIA1xakEIaiADOgAAIAwgBikCGDcCGCAMIAYpAhA3AhAgDCAGKQIINwIIIAwgBikCADcCACAFIAlBUGxqIgNBKGsgBDYCACADQSxrIAg2AgAgA0EwayAKNgIAIANBJGsiAyACKQJ4NwIAIAMgAikCgAE3AgggAyACKQKIATcCECADIAIpApABNwIYIAMgAigCmAE2AiAgAiACKAI0QQFqNgI0IAIgAigCMCAHQQFxazYCMAwBCyADQSBrIgMpAwAhFyADIAYpAwA3AwAgAykDCCEWIAMgBikDCDcDCCADKQMQIRUgAyAGKQMQNwMQIAMpAxghFCADIAYpAxg3AxggAiAUNwOQASACIBU3A4gBIAIgFjcDgAEgAiAXNwN4IAoEQCAIIAoQ2RILIAIoAnhBf0YNACACQfgAahCHBAsgD0EBaiIPIA5HDQQMBgtBAAshEiAHQQhqIgcgC2ogDXEhCwwACwALC0EBEKcUAAsQnhUACyACIAIoAkQ2AiAgAiACKQI8NwMYIAIgAikCNDcDECACIAIpAiw3AwgLQgAhFAJAAn4CQAJAIAEoAhBBAWsOAwAAAQMLQgEMAQsgASkDGCIUQj+HIRUgFCAVhSAVfQshFkIBIRQLIAAgBTYCICAAIAIpAwg3AiQgACACKQMQNwIsIAAgAikDGDcCNCAAIAIoAiA2AjwgACAWNwMIIAAgFDcDACAAIAEpAwg3AxggACABKQMANwMQIAJBwAFqJAALpQwBCn8jAEEgayIHJAAgASgCACEKAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQCACRQRAIAEoAgQhCSAKQX9GDQEgASgCCCEEIAkhBiAKDAILIAEoAgQiCSABIApBf0YbIgEoAggiBkH+////AU8NCiAGQQJqIgRBAnQiCBCQASIFDQRBBBCnFAALQQQhBiAJQQhqKAIAIgRFDQEgCUEEaigCACEFIARBAnQiARCQASIGRQ0KIAEEQCAGIAUgAfwKAAALIAQLIQUgByAENgIQIAcgBjYCDCAHIAU2AgggA0H/AXENA0EAIQIgBEUNDSAGIARBAnQiAWpBBGsoAgBFDQEgBCECDA0LIAdCgICAgMAANwMIIANB/wFxDQZBACECDA0LIAZBBGshCiAEQf////8DcSEDA0AgAyEJIAFFDQwgA0EBayEDIAEgCmogAUEEayEBKAIARQ0ACyAJIAQgBCAJSxshAgwLCyAFQQA2AgAgByAFNgIYIAcgBDYCFEEBIQQgB0EBNgIcIAEoAgQhCAJAAkAgASgCCCIBIAZBAWpLBEAgB0EUakEBIAEQ0REgBygCGCEFIAcoAhwhBAwBCyABRQ0BCyABQQJ0IgZFDQAgBSAEQQJ0aiAIIAb8CgAACyAHIAcpAhQ3AwggByABIARqNgIQIANB/wFxRQ0BIAcoAhAhBAsgAiAESw0BIAcoAgwhBSACIARHDQIgAiEEDAcLQQAhBCAHKAIMIQIgBygCCCEFIAcoAhAiBkUNBSACIAZBAnQiAWpBBGsoAgAEQCAGIQQMBgsgAkEEayELIAZB/////wNxIQMDQCADIQggAUUNBiADQQFrIQMgASALaiABQQRrIQEoAgBFDQALIAggBiAGIAhLGyEEDAULIAJBAEEAQaykxAAQhw4ACyAEQQJ0IQggAkECdCEBIANBH3EhC0EAIANrQR9xIQxBACEDA0AgASAFaiINKAIAIQYgDSAGIAt0IANyNgIAIAYgDHYhAyAIIAFBBGoiAUcNAAsgA0UNBCAHKAIIIARGBEAgB0EIahC/EiAHKAIMIQULIAUgBEECdGogAzYCACAHIARBAWoiBDYCEAwECyAAQQA2AgggAEKAgICAwAA3AgAMBwsQnhUAC0EEEKcUAAsCQAJAIAVBAnYgBE0EQCACIQMgBSEBDAELIAQgBUsNCEEAIQEgBUUEQCACIQMMAQsgBUECdCEFIARFBEBBBCEDIAIgBRDZEgwBCyACIAVBBCAEIgFBAnQiAhCtBiIDRQ0BCyAAIAQ2AgggACADNgIEIAAgATYCAAwCC0EEEKcUAAtBACEGIAcoAgghCAJAIARFDQAgBSAEQQJ0IgFqQQRrKAIABEAgBCEGDAELIAVBBGshDCAEQf////8DcSEDA0AgAyELIAFFDQEgA0EBayEDIAEgDGogAUEEayEBKAIARQ0ACyALIAQgBCALSxshBgsCQCAIQQJ2IAZNBEAgCCEBDAELAkACQCAGIAhNBEBBACEBIAhFDQMgCEECdCEDIAZFBEAgBUEEaygCACIIQXhxIQQgBEEEQQggCEEDcSIIGyADakkNAiAIQQBHIAQgA0EnaktxDQMgBRC8BUEEIQUMBAsgBSADQQQgBiIBQQJ0IgMQrQYiBQ0DQQQQpxQACwwIC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgACAGNgIIIAAgBTYCBCAAIAE2AgAgAkUNAwsgCkEBa0F9Sw0CIAlBBGsoAgAiAUF4cSEAAkAgCkECdCICQQRBCCABQQNxIgEbaiAATQRAIAFBAEcgACACQSdqS3ENASAJELwFDAQLQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACyACIAVBAnZPDQAgAiAFSw0DIAVFBEBBACEFDAELIAVBAnQhASACRQRAIAYgARDZEkEAIQJBBCEGQQAhBQwBCyAGIAFBBCACIgVBAnQiARCtBiIGRQ0CCyAAIAI2AgggACAGNgIEIAAgBTYCAAsgB0EgaiQADwtBBBCnFAALQYihxABByQBBrKHEABC/EwALwwwCDH8EfgJAAkACQAJAAn8gACgCDCILIAFqIQUgBSALSQ0EIAAoAgQiB0EBaiIEQQN2IgNBB2whCQJAIAcgCSAHQQhJGyIBQQF2IAVJBEAgAUEBaiIBIAUgASAFSxsiAUEPSQ0BIAFB/////wFNBEBBfyABQQN0QQduQQFrZ3YiAUH+////AEsNByABQQFqDAMLDAYLIAAgBAR/IAAoAgAhAEEAIQECQCADIARBB3FBAEdqIgNBAUcEQCADQQFxIANB/v///wNxIQgDQCAAIAFqIgMpAwAhDyADIA9Cf4VCB4hCgYKEiJCgwIABgyAPQv/+/fv379+//wCEfDcDACADQQhqIgMpAwAhDyADIA9Cf4VCB4hCgYKEiJCgwIABgyAPQv/+/fv379+//wCEfDcDACABQRBqIQEgCEECayIIDQALRQ0BCyAAIAFqIgEpAwAhDyABIA9Cf4VCB4hCgYKEiJCgwIABgyAPQv/+/fv379+//wCEfDcDAAsCQCAEQQhPBEAgACAEaiAAKQAANwAADAELIARFDQAgAEEIaiAAIAT8CgAACyACKQMIIREgAikDACESQQAhAgNAAkAgACACIgFqIg0tAABBgAFHDQAgACABQQR0ayICQQhrIQwgAkEMayEEIAAgAUF/c0EEdGohBgNAIAAgEiARIAQoAgAgDCgCABDjCqciDiAHcSIDIgJqKQAAQoCBgoSIkKDAgH+DIhBQBEBBCCEKA0AgAiAKaiECIApBCGohCiAAIAIgB3EiAmopAABCgIGChIiQoMCAf4MiEFANAAsLIAAgEHqnQQN2IAJqIAdxIgJqLAAAQQBOBEAgACkDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgA2sgASADa3MgB3FBCE8EQCAAIAJqIgMtAAAgAyAOQRl2IgM6AAAgACACQQhrIAdxakEIaiADOgAAIAAgAkF/c0EEdGohAkH/AUYEQCANQf8BOgAAIAAgByABQQhrcWpBCGpB/wE6AAAgAiAGKQAINwAIIAIgBikAADcAAAwDCyAGKQAAIQ8gBiACKQAANwAAIAIgDzcAACAGKQAIIQ8gBiACKQAINwAIIAIgDzcACAwBCwsgDSAOQRl2IgI6AAAgACAHIAFBCGtxakEIaiACOgAACyABQQFqIQIgASAHRw0ACyAHIAkgB0EISRsFQQALIAtrNgIIDAILQQQgAUEIcUEIaiABQQRJGwsiAUEIaiIEIAFBBHQiBSAEaiIDSw0DIANB+P///wdLDQMgAxCQASIDRQRAQbjwyQBBAToAAAALIAMgBWohBiAEBEAgBkH/ASAE/AsACyABQQFrIgkgAUEDdkEHbCABQQlJGyENIAAoAgAhBQJAIAtFBEBBACELDAELIAUpAwBCf4VCgIGChIiQoMCAf4MhECACKQMIIREgAikDACESQQAhASALIQIgBSEDA0AgEFAEQANAIAFBCGohASADQQhqIgMpAwBCgIGChIiQoMCAf4MiD0KAgYKEiJCgwIB/UQ0ACyAPQoCBgoSIkKDAgH+FIRALIAYgEiARIAUgEHqnQQN2IAFqIg5BBHRrIgRBDGsoAgAgBEEIaygCABDjCqciDCAJcSIIaikAAEKAgYKEiJCgwIB/gyIPUARAQQghCgNAIAggCmohBCAKQQhqIQogBiAEIAlxIghqKQAAQoCBgoSIkKDAgH+DIg9QDQALCyAQQgF9IBCDIRAgBiAPeqdBA3YgCGogCXEiCGosAABBAE4EQCAGKQMAQoCBgoSIkKDAgH+DeqdBA3YhCAsgBiAIaiAMQRl2IgQ6AAAgBiAIQQhrIAlxakEIaiAEOgAAIAYgCEF/c0EEdGoiDCAFIA5Bf3NBBHRqIgQpAAg3AAggDCAEKQAANwAAIAJBAWsiAg0ACwsgACAJNgIEIAAgBjYCACAAIA0gC2s2AgggB0UNACAHQQR0QRdqQXBxIgAgB2pBCWoiA0UNACAFIABrIgFBBGsoAgAiAEF4cSECIAJBBEEIIABBA3EiABsgA2pJDQEgAEEARyACIANBJ2pLcQ0CIAEQvAUPCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0H46MgAQTlB+J/EABC/EwAL1w4BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4FAQIDBAUACyACIABBBGo2AihBASEDIAEoAgAiAEGOkckAQQMgASgCBCIFKAIMIgQRAAANBwJAIAEtAApBgAFxRQRAIABBtM/FAEEBIAQRAAANCSACQShqIAEQhQVFDQEMCQsgAEGd48IAQQIgBBEAAA0IIAJBAToAJCACIAU2AgggAiAANgIEIAJBoOvCADYCGCACIAEpAgg3AhwgAiACQSRqNgIMIAIgAkEEajYCFCACQShqIAJBFGoQhQUNCCACKAIUQaSyyABBAiACKAIYKAIMEQAADQgLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwHCyACIABBBGo2AihBASEDIAEoAgAiAEGRkckAQQIgASgCBCIFKAIMIgQRAAANBgJAIAEtAApBgAFxRQRAIABBtM/FAEEBIAQRAAANCCACQShqIAEQhQVFDQEMCAsgAEGd48IAQQIgBBEAAA0HIAJBAToAJCACIAU2AgggAiAANgIEIAJBoOvCADYCGCACIAEpAgg3AhwgAiACQSRqNgIMIAIgAkEEajYCFCACQShqIAJBFGoQhQUNByACKAIUQaSyyABBAiACKAIYKAIMEQAADQcLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAwwGC0EBIQMgASgCACIEQZORyQBBAyABKAIEIgYoAgwiBREAAA0FAkACQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQggAiAAKAIEIgBB0ABqNgIEIAEoAgBB8PDFAEEKIAEoAgQoAgwRAAAhAyACQQA6ABkgAiADOgAYIAIgATYCFEEBIQMgAkEUakHKo8kAQQQgAEH1ARCJDkGQxMYAQQUgAkEEakHgARCJDiEEIAItABghAAJAIAItABkiBUEBRw0AIABBAXENACAEKAIAIgAtAApBgAFxDQIgACgCAEHt6sIAQQIgACgCBCgCDBEAAEUNAwwJCyAFDQggAEEBcUUNAgwICyAEQZ3jwgBBAiAFEQAADQcgAiAGNgIIIAIgBDYCBCACQQE6ABMgAkGg68IANgIYIAIgASkCCDcCHCAAKAIEIQAgAiACQRNqNgIMIAIgAkEEaiIDNgIUIAIgAEHQAGo2AiQgA0Hw8MUAQQoQ/QghAyACQQA6AC0gAiADOgAsIAIgAkEUajYCKCACQShqQcqjyQBBBCAAQfUBEIkOQZDExgBBBSACQSRqQeABEIkOIQMgAi0ALCEAAkACQAJAIAItAC0iBEEBRw0AIABBAXENACADKAIAIgAtAApBgAFxDQEgACgCAEHt6sIAQQIgACgCBCgCDBEAAA0JDAILIAQNCCAAQQFxRQ0BDAgLIAAoAgBBobLIAEEBIAAoAgQoAgwRAAANBwsgAigCFEGkssgAQQIgAigCGCgCDBEAAEUNAUEBIQMMBwsgACgCAEGhssgAQQEgACgCBCgCDBEAAA0GCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEGs4MYAQQYgASgCBCIGKAIMIgURAAANBAJAAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0HIAIgACgCBCIAQdAAajYCBCABKAIAQfDwxQBBCiABKAIEKAIMEQAAIQMgAkEAOgAZIAIgAzoAGCACIAE2AhRBASEDIAJBFGpByqPJAEEEIABB9QEQiQ5BkMTGAEEFIAJBBGpB4AEQiQ4hBCACLQAYIQACQCACLQAZIgVBAUcNACAAQQFxDQAgBCgCACIALQAKQYABcQ0CIAAoAgBB7erCAEECIAAoAgQoAgwRAABFDQMMCAsgBQ0HIABBAXFFDQIMBwsgBEGd48IAQQIgBREAAA0GIAIgBjYCCCACIAQ2AgQgAkEBOgATIAJBoOvCADYCGCACIAEpAgg3AhwgACgCBCEAIAIgAkETajYCDCACIAJBBGoiAzYCFCACIABB0ABqNgIkIANB8PDFAEEKEP0IIQMgAkEAOgAtIAIgAzoALCACIAJBFGo2AiggAkEoakHKo8kAQQQgAEH1ARCJDkGQxMYAQQUgAkEkakHgARCJDiEDIAItACwhAAJAAkACQCACLQAtIgRBAUcNACAAQQFxDQAgAygCACIALQAKQYABcQ0BIAAoAgBB7erCAEECIAAoAgQoAgwRAAANBwwCCyAEDQYgAEEBcUUNAQwGCyAAKAIAQaGyyABBASAAKAIEKAIMEQAADQULIAIoAhRBpLLIAEECIAIoAhgoAgwRAABFDQFBASEDDAYLIAAoAgBBobLIAEEBIAAoAgQoAgwRAAANBQsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEDDAQLIAEoAgBByenFAEELIAEoAgQoAgwRAAAhAwwDCyABKAIAQdTpxQBBESABKAIEKAIMEQAAIQMMAgtBASEDDAELQQEhAwsgAkEwaiQAIAMLrwwCDH8EfgJAAkACQAJAAn8CQCAAKAIMIgtBAWoiBQRAIAAoAgQiB0EBaiICQQN2IgRBB2whCSAHIAkgB0EISRsiA0EBdiAFSQRAIANBAWoiAiAFIAIgBUsbIgJBD0kNAiACQf////8BTQRAQX8gAkEDdEEHbkEBa2d2IgJB/v///wBLDQggAkEBagwECwwHCyAAIAIEfyAAKAIAIQMCQCAEIAJBB3FBAEdqIgBBAUcEQCAAQQFxIABB/v///wNxIQQDQCADIAhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDACAAQQhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDACAIQRBqIQggBEECayIEDQALRQ0BCyADIAhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDAAsCQCACQQhPBEAgAiADaiADKQAANwAADAELIAJFDQAgA0EIaiADIAL8CgAACyABKQMIIQ8gASkDACEQQQAhAgNAAkAgAyACIgBqIgQtAABBgAFHDQAgAyACQQR0ayIBQQxrIQwgAUEQayENIAMgAkF/c0EEdGohAQNAIAMgECAPIA0oAgAgDCgCABDjCqciCCAHcSIKIgJqKQAAQoCBgoSIkKDAgH+DIg5QBEBBCCEGA0AgAiAGaiECIAZBCGohBiADIAIgB3EiAmopAABCgIGChIiQoMCAf4MiDlANAAsLIAMgDnqnQQN2IAJqIAdxIgJqLAAAQQBOBEAgAykDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgCmsgACAKa3MgB3FBCE8EQCACIANqIgYtAAAgBiAIQRl2IgY6AAAgAyACQQhrIAdxakEIaiAGOgAAIAMgAkF/c0EEdGohAkH/AUYEQCAEQf8BOgAAIAMgByAAQQhrcWpBCGpB/wE6AAAgAiABKQAINwAIIAIgASkAADcAAAwDCyABKQAAIQ4gASACKQAANwAAIAIgDjcAACABKQAIIQ4gASACKQAINwAIIAIgDjcACAwBCwsgBCAIQRl2IgE6AAAgAyAHIABBCGtxakEIaiABOgAACyAAQQFqIQIgACAHRw0ACyAHIAkgB0EISRsFQQALIAtrNgIIDAMLDAULQQQgAkEIcUEIaiACQQRJGwsiAkEIaiIFIAJBBHQiBCAFaiIDSw0DIANB+P///wdLDQMgAxCQASIDRQRAQbjwyQBBAToAAAALIAMgBGohAyAFBEAgA0H/ASAF/AsACyACQQFrIgkgAkEDdkEHbCACQQlJGyEKIAAoAgAhBSALBEAgBSkDAEJ/hUKAgYKEiJCgwIB/gyEOIAEpAwghECABKQMAIREgBSECIAshAQNAIA5QBEADQCAIQQhqIQggAkEIaiICKQMAQoCBgoSIkKDAgH+DIg5CgIGChIiQoMCAf1ENAAsgDkKAgYKEiJCgwIB/hSEOCyADIBEgECAFIA56p0EDdiAIaiIMQQR0ayIEQRBrKAIAIARBDGsoAgAQ4wqnIg0gCXEiBGopAABCgIGChIiQoMCAf4MiD1AEQEEIIQYDQCAEIAZqIQQgBkEIaiEGIAMgBCAJcSIEaikAAEKAgYKEiJCgwIB/gyIPUA0ACwsgDkIBfSAOgyEOIAMgD3qnQQN2IARqIAlxIgRqLAAAQQBOBEAgAykDAEKAgYKEiJCgwIB/g3qnQQN2IQQLIAMgBGogDUEZdiIGOgAAIAMgBEEIayAJcWpBCGogBjoAACADIARBf3NBBHRqIgQgBSAMQX9zQQR0aiIGKQAINwAIIAQgBikAADcAACABQQFrIgENAAsLIAAgCTYCBCAAIAM2AgAgACAKIAtrNgIIIAdFDQAgB0EEdEEXakFwcSIBIAdqQQlqIgBFDQAgBSABayICQQRrKAIAIgVBeHEhASABQQRBCCAFQQNxIgUbIABqSQ0BIAVBAEcgASAAQSdqS3ENAiACELwFDwsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB+OjIAEE5QfifxAAQvxMAC7AMAhF+CX8jAEHQAGsiFCQAAkACQAJAAkACQAJAAkACQAJAIAEpAwAiBkIAUgRAIAEpAwgiBFANASABKQMQIgNQDQIgAyAGfCIJIANUDQMgBCAGVg0EIAlCgICAgICAgIAgWg0FIBQgAS8BGCIBOwFAIBQgBiAEfSIENwM4IBQgBCAJeSIIhiIFIAiIIgM3A0ggAyAEUg0JIBQgATsBQCAUIAY3AzggFCAGIAiGIgQgCIgiAzcDSCADIAZSDQlBoH8gASAIp2siAWvBQdAAbEGwpwVqQc4QbSIWQdAASw0HIBRBIGogFkEEdCIWKQPggkQiA0IAIAkgCIZCABDuESAUQRBqIANCACAFQgAQ7hEgFCADQgAgBEIAEO4RQgFBACABIBYvAeiCRGprIgGtIgOGIgdCAX0hCyAUKQMQQj+HIREgFCkDAEI/iCESIBQpAwghEyAWLwHqgkQhGCABQT9xIRYgFCkDGCEIIBQpAygiDSAUKQMgQj+IIgZ8IglCAXwiDiADiKciFUGQzgBPBEAgFUHAhD1JDQcgFUGAwtcvTwRAQQhBCSAVQYCU69wDSSIBGyEZQYDC1y9BgJTr3AMgARshFwwKC0EGQQcgFUGAreIESSIBGyEZQcCEPUGAreIEIAEbIRcMCQsgFUHkAE8EQEECQQMgFUHoB0kiARshGUHkAEHoByABGyEXDAkLQQpBASAVQQlLIhkbIRcMCAtB8IzEAEEcQdyNxAAQrxQAC0HsjcQAQR1BjI7EABCvFAALQZyOxABBHEG4jsQAEK8UAAtB8I/EAEE2QaiQxAAQrxQAC0Goj8QAQTdB4I/EABCvFAALQciOxABBLUH4jsQAEK8UAAtBBEEFIBVBoI0GSSIBGyEZQZDOAEGgjQYgARshFwwBCyAWQdEAQZyNxAAQhRMACyALIA6DIQUgEiATfCEPIBatIQogGSAYa0EBaiEbIAsgESAIfSAOfEIBfCIQgyEEQQAhAQJAAkACQAJAAkACQAJAAkACQANAIAEgAmoiGiAVIBduIhhBMGoiHDoAACABQQFqIRYgECAVIBcgGGxrIhWtIAqGIgwgBXwiA1YNAiABIBlGBEBCASEDA0AgAyEJIAEiFkEQRg0FIAEgAmpBAWogBUIKfiIFIAqIp0EwaiIVOgAAIANCCn4hAyABQQFqIQEgBEIKfiIEIAUgC4MiBVgNAAsgBCAFfSIGIAdUIRogAyAOIA99fiIIIAN8IQwgCCADfSIKIAVYDQcgBiAHWg0CDAcLIBdBCkkgF0EKbiEXIBYhAUUNAAtBiI/EABCjFQALIAEgAmohGCAEIAd9IQYgByAKfSEIQgAgBX0hDQNAAkAgCiAFIAd8IgNWDQAgCiANfCAFIAh8Wg0AQQAhGgwGCyAYIBVBAWsiFToAACAGIA18IAdUIgEhGiADIApaDQYgDSAHfSENIAMhBSABRQ0ACwwFCyAXrSAKhiIHIBAgA31WIQEgDiAPfSIEQgF8IQsgBEIBfSIKIANYDQEgAQ0BIAkgEXwgCH0gBSAHfCIEIAx8fUICfCEIIAkgD30gA30hCSAEIBJ8IBN8IAZ9IA19IAx8IQZCACEFA0ACQCAKIAMgB3wiBFYNACAFIAl8IAZaDQBBACEBDAMLIBogHEEBayIcOgAAIAUgCHwgB1QhASAEIApaDQMgBiAHfCEGIAUgB30hBSAEIQMgAUUNAAsMAgtBEUERQZiPxAAQhRMACyADIQQLAkAgBCALWg0AIAENACALIAR9IAQgB3wiAyALfVQgAyALWnENACAAQQA2AgAMBAsgBCAQQgR9WCAEQgJacUUEQCAAQQA2AgAMBAsgACAbOwEIIAAgFjYCBAwCCyAFIQMLAkAgAyAMWg0AIBoNACAMIAN9IAMgB3wiBSAMfVQgBSAMWnENACAAQQA2AgAMAgsCQCADIAlCFH5aBEAgAyAEIAlCWH58WA0BCyAAQQA2AgAMAgsgACAbOwEIIAAgFkECajYCBAsgACACNgIACyAUQdAAaiQADwsjAEEQayIAJAAgACAUQThqNgIMIAAgFEHIAGo2AgggAEEIakHg4cIAIABBDGpB4OHCAEEAIABBqOrCABCRDwAL1RwCCH8BfiMAQeAAayIEJAAgBEFAayACIAMQ8QwgBEHQAGogBCgCQCIDIAQoAkQiAhD5DAJAIAQtAFgiBkH/AUcEQEEDIQMCQAJAAkAgBCgCVCICRQ0AIAQoAlAiBS0AAEEsRw0AQQEhAyACQQFHBEAgBSwAAUG/f0wNAgsgAS0AqAEiB0H/AUYNAiAGIAdGDQILIABBADYCACAAIAM6AAQMAwsgBSACQQEgAkGwyMIAEP0UAAsgASAGOgCoASAFQQFqIQMgAkEBayECCyAEQThqIAMgAhDxDAJAIAQoAjwiA0UEQEEEIQMMAQsgBCgCOCIGLQAAQTBrIgJB/wFxQQlLBEBBAyEDDAELIAKtQv8BgyEMQQEhBQJAIANBAUYNACAGLAABIgJBMGsiB0H/AXFBCk8EQCACQb9/Sg0BIAYgA0EBIANBoMjCABD9FAALIAxCCn4gB61C/wGDfCEMQQIhBSADQQNJDQAgBiwAAkG/f0oNACAGIANBAiADQZDIwgAQ/RQAC0EAIQICQCAMQgF9Qh5YBEBBASECIAynIQcgASgCcEEBRw0BIAEoAnQgB0YNAQsgAEEANgIAIAAgAjoABAwCCyABIAc2AnQgAUEBNgJwIARBMGogBSAGaiADIAVrIgIQ8QwgAiAEKAI0IgJNBEAgAEEANgIAIABBBEEDIAMgBUYbOgAEDAILIARB0ABqIAQoAjAgAhDTCiAEKAJQIgZFBEAgBC0AVCEBIABBADYCACAAIAE6AAQMAgtBACEDAkAgBC0AWCIFQQtNBEAgBCgCVCECQQEhAyAFQQFqQf8BcSEFIAEoAkhBAUcNASABKAJMIAVGDQELIABBADYCACAAIAM6AAQMAgsgASAFNgJMIAFBATYCSCAEQShqIAYgAhDxDCAEKAIsIgMgAk8EQCAAQQA2AgAgAEEDQQQgAhs6AAQMAgsgBEHQAGogBCgCKCADQQJBfxCZDCAEKAJQIgZFBEAgBC0AVCEBIABBADYCACAAIAE6AAQMAgsgBCkDWCEMAkACQAJAIAMgBCgCVCICa0ECaw4CAQACCyAMQuwOfCEMDAELIAxCMloEQCAMQuwOfCAMIAxC5ABUGyEMDAELIAxC0A98IQwLQQAhAwJAIAxCgICAgAh9QoCAgIBwWgRAQQEhAyAMpyEFIAEoAhBBAUcNASABKAIUIAVGDQELIABBADYCACAAIAM6AAQMAgsgASAFNgIUIAFBATYCECAEQSBqIAYgAhDxDCAEKAIkIgMgAk8EQCAAQQA2AgAgAEEDQQQgAhs6AAQMAgsgBEHQAGogBCgCICADQQJBAhCZDAJAIAQoAlAiAkUEQCAELQBUIQMMAQsgBCgCVCEFIAEgBCkDWBDQESIDQf8BcUH/AUcNACAEQRhqIAIgBRDxDCAEQdAAaiAEKAIYIAQoAhwQjhIgBCgCUCICRQRAIAQtAFQhASAAQQA2AgAgACABOgAEDAMLIARBEGogAiAEKAJUEPEMIARB0ABqIAQoAhAgBCgCFEECQQIQmQwgBCgCUCICRQRAIAQtAFQhASAAQQA2AgAgACABOgAEDAMLQQAhAwJAIAQpA1giDEI7WARAIAQoAlQhBUEBIQMgDKchBiABKAKIAUEBRw0BIAEoAowBIAZGDQELIABBADYCACAAIAM6AAQMAwsgASAGNgKMASABQQE2AogBIARBCGogAiAFEPEMIARByABqIAQoAgggBCgCDBCOEgJAIAQoAkgiA0UNACAEQdAAaiADIAQoAkxBAkECEJkMAkAgBCgCUCICRQRAIAQtAFQhAwwBC0EAIQMgBCkDWCIMQjxWDQAgBCgCVCEFQQEhAyAMpyEGIAEoApABQQFGBEAgASgClAEgBkcNAQsgASAGNgKUASABQQE2ApABDAELIABBADYCACAAIAM6AAQMAwsgBCACIAUQ8QwgBCgCBCICIAVPBEAgAEEANgIAIABBA0EEIAUbOgAEDAMLIARB0ABqIQYgBCgCACEFQQAhAwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIEQAJAA0AgAyAFai0AAEHfAXFB2wBrQf8BcUHmAUkNASACIANBAWoiA0cNAAsgAiEDCyADDQUCfyAFLAAAIgdBAE4EQCAHQf8BcQwBCyAFLQABQT9xIgkgB0EfcSIIQQZ0ciAHQV9NDQAaIAUtAAJBP3EgCUEGdHIiCSAIQQx0ciAHQXBJDQAaIAhBEnRBgIDwAHEgBS0AA0E/cSAJQQZ0cnILQStrDgMBDAIMCwwKCyACQQFGDQUgBSwAASIHQb9/TA0BDAQLQQEhCiACQQFHDQEMBAsgBSACQQEgAkGwsMIAEP0UAAsgBSwAASIHQb9/Sg0BIAUgAkEBIAJBwLDCABD9FAALAkACQCACIANNBEAgAiADRg0BDAILIAMgBWosAABBQEgNAQsgAyAFaiEHIAIgA2shCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgA0EBaw4DCQEAFQsCQEEgQQAgBS0AACICQcEAa0H/AXFBGkkbIAJyQf8BcUHjAGsODgMVAhUAFRUVFRUEFRUFFQtBIEEAIAUtAAEiAkHBAGtB/wFxQRpJGyACckH/AXFB7QBHDRRBIEEAIAUtAAIiAkHBAGtB/wFxQRpJGyACckH/AXFB9ABHDRQMCwtBIEEAIAUtAAAiAkHBAGtB/wFxQRpJGyACckH/AXFB9QBHDRNBIEEAIAUtAAEiAkHBAGtB/wFxQRpJGyACckH/AXFB9ABGDQoMEwsCQAJAQSBBACAFLQABIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeQAaw4QABQUFBQUFBQUFBQUFBQUARQLQSBBACAFLQACIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfQARw0TIAZBwI9/NgIIDAsLQSBBACAFLQACIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfQARw0SDAgLAkBBIEEAIAUtAAEiAkHBAGtB/wFxQRpJGyACckH/AXFB5ABrDhAFEhISEhISEhISEhISEhIAEgtBIEEAIAUtAAIiAkHBAGtB/wFxQRpJGyACckH/AXFB9ABHDREMBgsCQEEgQQAgBS0AASICQcEAa0H/AXFBGkkbIAJyQf8BcUHkAGsOEAAREREREREREREREREREQIRC0EgQQAgBS0AAiICQcEAa0H/AXFBGkkbIAJyQf8BcUH0AEYNBQwQCwJAAkBBIEEAIAUtAAEiAkHBAGtB/wFxQRpJGyACckH/AXFB5ABrDhAAEREREREREREREREREREBEQtBIEEAIAUtAAIiAkHBAGtB/wFxQRpJGyACckH/AXFB9ABGDQIMEAtBIEEAIAUtAAIiAkHBAGtB/wFxQRpJGyACckH/AXFB9ABHDQ8gBkGAn342AggMBwtBIEEAIAUtAAIiAkHBAGtB/wFxQRpJGyACckH/AXFB9ABHDQ4LIAZBkLt+NgIIDAULQSBBACAFLQACIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfQARg0CDAwLQSBBACAFLQAAIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfoARg0CIAJBX3EiAkHBAGtB/wFxQQlPBEAgAkHLAGtB/wFxQQ5LDQwLIAZBADYCCAwDCyAGQaDXfjYCCAwCCyAGQbDzfjYCCAwBCyAGQQA2AggLIAYgCDYCBCAGIAc2AgAMCAsgBSACIAMgAkG0x8IAEP0UAAtBAyEDIAJBA0kNACAHQTBrQf8BcUEJSw0BIAUtAAIiC0Ewa0H/AXFBCUsNASACQQFrIghBA0kNBCAFLAADIgNBv39MDQMgAkEDayIIQQJJDQQgBS0ABCEJIANBMGtB/wFxQQZJDQIgA0E2a0H/AXFBA0sNBSAJQTBrQf8BcUEKTw0FIAZBADYCACAGQQA6AAQMBgtBBCEDCyAGQQA2AgAgBiADOgAEDAQLIAlBMGtB/wFxQQpPBEAMAwsCQCAIQQJHBEAgBSwABUFASA0BCyAGIAJBBWs2AgQgBiAFQQVqNgIAIAZBACADQQpsIAlqQRBrQf8BcUE8bCALIAdBCmxqQRBrQf8BcUGQHGxqIgJrIAIgChs2AggMBAsgBUEDaiAIQQIgCEHwsMIAEP0UAAsgBUEBaiAIQQIgCEHgsMIAEP0UAAsgBkEANgIAIAZBBDoABAwBCyAGQQA2AgAgBkEDOgAECwJAIAQoAlAiA0UEQCAELQBUIQUMAQsgBCgCWCEGIAQoAlQhAkEBIQUgASgCoAFBAUYEQCABKAKkASAGRw0BCyABIAY2AqQBIAFBATYCoAEDQCAEQdAAaiEGQQAhByMAQRBrIgokACAKQQhqIAMgAhDxDAJAIAooAgwiCARAIAooAgghC0EAIQFBACEJA0AgASIFQQFqIQEgBSALai0AACEFAkACQAJAAkACQAJAIAlBAWsOAgEDAAsgBUEoRw0BQQEhCUEBIQcMBAsCQAJAAkAgBUEoaw4CAQIACyAFQdwARw0DQQIhCQwFC0EBIQkgB0EBaiEHDAQLIAdBAUYNAiAHQQFrIQdBASEJDAMLIAZBADYCACAGQQM6AAQMBQtBASEJDAELAkACQCABIAhPBEAgASAIRw0BDAILIAEgC2osAABBQE4NAQsgCyAIIAEgCEHkxsIAEP0UAAsgBiAIIAFrNgIEIAYgASALajYCAAwDCyABIAhHDQALCyAGQQA2AgAgBkEEOgAECyAKQRBqJAAgBCgCUCIBBEAgBCgCVCECIAEhAwwBBSAAIAI2AgQgACADNgIADAULAAsACyAAQQA2AgAgACAFOgAEDAILIABBADYCACAAIAM6AAQMAQsgAEEANgIAIAAgAzoABAsgBEHgAGokAAvoCwILfwZ+IwBB0AFrIgQkACABKAIIIgZBDGwhCyABKAIEIQgCQAJAAkACQAJ/IAZFBEBBBCEJQQAMAQsgCxCQASIJRQ0BIAhB+ABqIQUgCSEHIAYhCgNAAkAgBUEYayAFIAUoAgBBf0YbIg1BCGooAgAiDEUEQEEBIQ4MAQsgDUEEaigCACENIAwQkAEiDkUNBCAMRQ0AIA4gDSAM/AoAAAsgByAMNgIAIAdBCGogDDYCACAHQQRqIA42AgAgBUGQAWohBSAHQQxqIQcgCkEBayIKDQALIAYLIQUgBEF/NgLEASAEQYABaiAIIAUgBEHEAWogAiADEO0BAkAgBCgCsAEiBUF/RwRAIAAgBCkCtAE3AjQgACAEKAK8ATYCPCAEIAQpA6gBIg83A0AgBCAEKQOgASIQNwM4IAQgBCkDmAEiETcDMCAEIAQpA5ABIhI3AyggBCAEKQOIASITNwMgIAQgBCkDgAEiFDcDGCAAIA83AyggACAQNwMgIAAgETcDGCAAIBI3AxAgACATNwMIIAAgFDcDACAAIAU2AjAgBgRAIAkhBSAGIQcDQCAFKAIAIgoEQCAFQQRqKAIAIgJBBGsoAgAiAEF4cSEDIANBBEEIIABBA3EiABsgCmpJDQcgAEEARyADIApBJ2pLcQ0IIAIQvAULIAVBDGohBSAHQQFrIgcNAAsgCUEEaygCACIAQXhxIQIgAkEEQQggAEEDcSIAGyALakkNBSAAQQBHIAIgC0EnaktxDQYgCRC8BSAIIQUDQCAFEK4IIAVBkAFqIQUgBkEBayIGDQALCyABKAIAIgFFDQEgCEEEaygCACIAQXhxIQIgAiABQZABbCIBQQRBCCAAQQNxIgAbckkNBCAAQQBHIAIgAUEnaktxDQUgCBC8BQwBCyAEIAQpA4ABNwMIIAQgBCgCiAE2AhAgASgCACEBIARBfzYCsAEgBCADNgIsIAQgAjYCKCAEIAggBkGQAWxqNgIkIAQgATYCICAEIAg2AhwgBCAINgIYIAQgBEGAAWo2AjAgBEHEAWogBEEYahDcBSAEKAKwASIOQX9HBEAgBCAEKQKMATcDWCAEIAQpApQBNwNgIAQgBCkCnAE3A2ggBCAEKQKkATcDcCAEIAQoAqwBNgJ4IAQgBCkCtAE3A0ggBCAEKAK8ATYCUCAEKAKIASENIAQoAoQBIQggBCgCgAEhCiAEKALIASEBIAQoAswBIgcEQCABIQUDQCAFEN8BIAVBwAJqIQUgB0EBayIHDQALCyAEKALEASIDBEAgAUEEaygCACICQXhxIQUgBSADQcACbCIDQQRBCCACQQNxIgIbckkNBSACQQBHIAUgA0EncktxDQYgARC8BQsgACANNgIIIAAgCDYCBCAAIAo2AgAgACAEKQNYNwIMIAAgBCkDYDcCFCAAIAQpA2g3AhwgACAEKQNwNwIkIAAgBCgCeDYCLCAAIA42AjAgACAEKQNINwI0IAAgBCgCUDYCPCAEQQhqEKUEIAQoAggiAQRAIAQoAgwiAkEEaygCACIAQXhxIQMgAyABQcgBbCIBQQRBCCAAQQNxIgAbakkNBSAAQQBHIAMgAUEnaktxDQYgAhC8BQsgBkUNASAJIQUDQCAFKAIAIgMEQCAFQQRqKAIAIgFBBGsoAgAiAEF4cSECIAJBBEEIIABBA3EiABsgA2pJDQYgAEEARyACIANBJ2pLcQ0HIAEQvAULIAVBDGohBSAGQQFrIgYNAAsgCUEEaygCACIAQXhxIQEgAUEEQQggAEEDcSIAGyALakkNBCAAQQBHIAEgC0EnaktxDQUgCRC8BQwBCyAAIARBCGpBACAEKALEASIDIAQoAsgBIgIgBCgCzAEiARCzDSAAQX82AjAgACABNgIgIAAgAjYCHCAAIAM2AhggACAGNgIUIAAgCTYCECAAIAY2AgwLIARB0AFqJAAPC0EEEKcUAAtBARCnFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC60LAhJ/An4jAEHQAmsiESQAQoCAgICAgICAwAAgAa0iF4AhGCAXIBh+QoCAgICAgICAwABSrQJ/IAFBgSBPBEBBASABQQFyZ0EfcyIFQQFxIAVBAXZqIgV0IAEgBXZqQQF2DAELQcAAIAEgAUEBdmsiBSAFQcAATxsLIRIgGHwhGCAAQSBrIRQgAEEgaiEVQQEhCANAQQAhDEEBIQkgASAOSyIWBEAgDkEFdCIQIABqIQwgGCAOQQF0An8CQCABIA5rIgkgEkkNAAJAIAlBAkkEQCAJIQUMAQsCQAJAAkAgDEEgaiAMEIACIgVB/wFxQf4BRyAFwEEASHEiB0UEQEECIQUgCUECRg0EIBAgFWohBgNAIAZBIGoiCyAGEIACIgZB/wFxQf4BRyAGwEEASHENAyALIQYgCSAFQQFqIgVHDQALDAELQQIhBUEBIQ8gCUECRg0CIBAgFWohBgNAIAZBIGoiCyAGEIACIgZB/wFxQf4BRg0CIAbAQQBODQIgCyEGIAkgBUEBaiIFRw0ACwsgCSEFCyAFIBJJDQIgB0UNASAFQQF2Ig9FDQELIBQgBUEFdGohDCAAIQYDQCAGIBBqIglBCGoiCykDACEXIAsgDCAQaiILQQhqIgcpAwA3AwAgByAXNwMAIAtBFGooAgAhByALQRBqIg0oAgAhEyANIAlBEGoiDSkDADcDACAJKQMAIRcgCSALKQMANwMAIAsgFzcDACANIBM2AgAgCUEUaiAHNgIAIAtBGGoiBygCACENIAcgCUEYaiIHKAIANgIAIAcgDTYCACALQRxqIgsoAgAhByALIAlBHGoiCSgCADYCACAJIAc2AgAgDEEgayEMIAZBIGohBiAPQQFrIg8NAAsLIAVBAXRBAXIMAQsgCSASIAkgEkkbQQF0IARFDQAaIAxBICAJIAlBIE8bIgUgAiADQQBBABCzASAFQQF0QQFyCyIJQQF2aq1+IA4gCEEBdmutIA6tfCAYfoV5pyEMCwJAAkAgCkECSQ0AIA5BBXQiBSAUaiEQIAAgBWohEwNAIApBAWsiCyARQY4CamotAAAgDEkNAQJ/AkACQCADIBFBBGogC0ECdGooAgAiB0EBdiIFIAhBAXYiBmoiD08gByAIckEBcUVxRQRAIAAgDiAPa0EFdGohCiAHQQFxRQ0BDAILIA9BAXQMAgsgCiAFIAIgAyAFQQFyZ0EBdEE+c0EAELMBCyAIQQFxRQRAIAogBUEFdGogBiACIAMgBkEBcmdBAXRBPnNBABCzAQsCQCAGRQ0AIAVFDQAgBiAFIAUgBksiBxsiBiADSw0AIAogBUEFdGohCCAGQQV0IgUEQCACIAggCiAHGyAF/AoAAAsgAiAFaiEGAkAgB0UEQCACIQUDQCAKIAggBSAIIAUQgAIiB0H/AXFB/gFHIAfAQQBIcSINGyIHKQMYNwMYIAogBykDEDcDECAKIAcpAwg3AwggCiAHKQMANwMAIApBIGohCiAGIAUgDUVBBXRqIgVGDQIgEyAIIA1BBXRqIghHDQALDAELIBAhBQNAAkAgBkEgayIHIAhBIGsiDRCAAiIIQf8BcUH+AUcgCMBBAEhxIQggBSANIAcgCBsiBikDGDcDGCAFIAYpAxA3AxAgBSAGKQMINwMIIAUgBikDADcDACAHIAhBBXRqIQYgDSAIRUEFdGoiCCAKRg0AIAVBIGshBSACIAZHDQELCyAIIQogAiEFCyAGIAVrIghFDQAgCiAFIAj8CgAACyAPQQF0QQFyCyEIQQEhBSALIgpBAUsNAAsMAQsgCiEFCyARQY4CaiAFaiAMOgAAIBFBBGogBUECdGogCDYCACAWBEAgBUEBaiEKIAlBAXYgDmohDiAJIQgMAQsLIAhBAXFFBEAgACABIAIgAyABQQFyZ0EBdEE+c0EAELMBCyARQdACaiQAC8kNAgp/AX4jAEGAAWsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJ/AkACQAJAAkACQCACKAIAQQFrDgIBAgALIAIoAgQiBCgCACEFIAQgBUEBajYCACAFQQBODQIMFwsgAigCFCIGKAIAIQUgBiAFQQFqNgIAIAVBAEgNFiACKAIEIQcgAikCDCENIAIoAgghBCACEMELIQwgASgCUCEIIAdBAUcNAiAIQaACaigCACIFIARNDQYgCEGcAmooAgAgBEEkbGoiCUEgaigCACIKIA2nIgVNDQcgCUEcaigCACAFQdQAbGoiBSgCAEGAgICAeEcNCCAFKAIkIgogDUIgiKciCU0NCSAFKAIgIAlB3ABsaiIFKAIkIQkgBSgCIAwDCyACKAIUIggoAgAhBSAIIAVBAWo2AgAgBUEASA0VIAIoAgQhBiACKQIMIQ0gAigCCCEEIAIQwQshDCABKAJQIQUgBkEBRw0DIAVBoAJqKAIAIgkgBE0NCSAFQZwCaigCACAEQSRsaiIJQSBqKAIAIgcgDaciBU0NCiAJQRxqKAIAIAVB1ABsaiIFKAIAQYCAgIB4Rw0LIAUoAiQiByANQiCIpyIJTQ0MIAUoAiAgCUHcAGxqIgUoAiQhCSAFKAIgDAQLIAIoAgghCCACEMELIQwgA0EIaiABKAJQQQhqIAgQ0RAgBCgCHCIFIAhNDQwgAygCDCEJIAMoAgghBSAEKAIYIAhB8ABsaiIGKAJoIQogBigCZCELIAQgBCgCACIGQQFqNgIAIAZBAEgNFCAEIAQoAgAiBkEBajYCACAGQQBIDRRBEBCQASIGRQ0VIAYgCjYCDCAGIAs2AgggBiAENgIEIAYgATYCAEEYEJABIgdFDRUgB0EAOgAUIAdBlOvHADYCDCAHIAY2AgggB0KBgICAEDcCACAEQQhqIAgQ9xAtAFghCCAEIAQoAgAiBkEBazYCACADIAc2AlggA0EBOgBUIAMgCjYCQCADIAs2AjwgAyAENgI4IANBFDoANCADIAo2AjAgAyALNgIsIANBATYCKCADQQE6ACQgAyAIQQJGOgBcIAZBAUcNEyAEEDAMEwsgA0EQaiAIQQhqIAQQ0BAgAygCFCEJIAMoAhALIQUgAyAGNgJwIAMgDTcCaCADIAQ2AmQgAyAHNgJgIANBJGogCCADQeAAahDVDQwRCyADQRhqIAVBCGogBBDQECADKAIcIQkgAygCGAshBSADIAg2AnAgAyANNwJoIAMgBDYCZCADIAY2AmAgA0H0AGogA0HgAGoQ8QogAygCeCIEIAMoAnQiB0GgAmooAgAiBk8NCSADKAJ8IgYgB0GcAmooAgAgBEEkbGoiBEEgaigCACIHTw0KIARBHGooAgAgBkHUAGxqIgYoAgBBgICAgHhHDQsgBigCDCIEQQBIDQwgBEUEQEEBIQoMDwsgBigCCCEGIAQQkAEiCkUNDSAERQ0OIAogBiAE/AoAAAwOCyAEIAVBlL7EABCFEwALIAUgCkGUvsQAEIUTAAtBlL7EABCdFQALIAkgCkGkvsQAEIUTAAsgBCAJQZS+xAAQhRMACyAFIAdBlL7EABCFEwALQZS+xAAQnRUACyAJIAdBpL7EABCFEwALIAggBUHk/sgAEIUTAAsgBCAGQfS4xAAQhRMACyAGIAdB9LjEABCFEwALQfS4xAAQnRUACxCeFQALQQEQpxQAC0EQEJABIgdFDQIgByABNgIAIAcgAykCdDcCBCAHIAMoAnw2AgxBGBCQASIGRQ0CIAZBADoAFCAGQaTrxwA2AgwgBiAHNgIIIAZCgYCAgBA3AgAgA0HgAGoQrRAhByAIIAgoAgAiC0EBazYCACADIAY2AlggA0EBOgBUIAMgBDYCQCADIAo2AjwgAyAENgI4IANBMDoANCADQQA2AiggA0EBOgAkIAMgBzoAXCALQQFHDQAgCBAwC0EcEJABIgRFDQEgBCABNgIYIAQgAikCEDcCECAEIAIpAgg3AgggBCACKQIANwIAQRgQkAEiAUUNASABQQA6ABQgAUHw7scANgIMIAEgBDYCCCABQoGAgIAQNwIAIAAgCTYCGCAAIAU2AhQgAEF/NgIQIAAgAykCJDcCHCAAIAMpAiw3AiQgACADKQI0NwIsIAAgAykCPDcCNCAAIAMpAkQ3AjwgACADKQJMNwJEIAAgAykCVDcCTCAAIAMoAlw2AlQgAEEAOgBcIAAgATYCWCAAQQI2AgAgDEUEQCAAQQE6AFwLIANBgAFqJAAPCwALQbjwyQBBAToAAAALoQwCDH8EfgJAAkACQAJAAn8gACgCDCILIAFqIQUgBSALSQ0EIAAoAgQiB0EBaiIGQQN2IgNBB2whDAJAIAcgDCAHQQhJGyIBQQF2IAVJBEAgAUEBaiIBIAUgASAFSxsiAUEPSQ0BIAFB/////wFNBEBBfyABQQN0QQduQQFrZ3YiAUH+////A0sNByABQQFqDAMLDAYLIAAgBgR/IAAoAgAhBEEAIQECQCADIAZBB3FBAEdqIgNBAUcEQCADQQFxIANB/v///wNxIQgDQCABIARqIgMpAwAhDyADIA9Cf4VCB4hCgYKEiJCgwIABgyAPQv/+/fv379+//wCEfDcDACADQQhqIgMpAwAhDyADIA9Cf4VCB4hCgYKEiJCgwIABgyAPQv/+/fv379+//wCEfDcDACABQRBqIQEgCEECayIIDQALRQ0BCyABIARqIgEpAwAhDyABIA9Cf4VCB4hCgYKEiJCgwIABgyAPQv/+/fv379+//wCEfDcDAAsCQCAGQQhPBEAgBCAGaiAEKQAANwAADAELIAZFDQAgBEEIaiAEIAb8CgAACyACKQMIIREgAikDACEPQQAhAgNAAkAgBCACIgFqIg0tAABBgAFHDQAgBCABQQJ0a0EEayEGIAQgAUF/c0ECdGohCgNAIAQgDyARIAYoAgAiAkEEaigCACACQQhqKAIAEOMKpyIOIAdxIgMiAmopAABCgIGChIiQoMCAf4MiEFAEQEEIIQgDQCACIAhqIQIgCEEIaiEIIAQgAiAHcSICaikAAEKAgYKEiJCgwIB/gyIQUA0ACwsgBCAQeqdBA3YgAmogB3EiAmosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAgsgAiADayABIANrcyAHcUEITwRAIAIgBGoiAy0AACADIA5BGXYiAzoAACAEIAJBCGsgB3FqQQhqIAM6AAAgBCACQX9zQQJ0aiEDQf8BRgRAIA1B/wE6AAAgBCAHIAFBCGtxakEIakH/AToAACADIAooAAA2AAAMAwsgCigAACECIAogAygAADYAACADIAI2AAAMAQsLIA0gDkEZdiICOgAAIAQgByABQQhrcWpBCGogAjoAAAsgAUEBaiECIAEgB0cNAAsgByAMIAdBCEkbBUEACyALazYCCAwCC0EEIAFBCHFBCGogAUEESRsLIgFBAnRBB2pBeHEiBiABQQhqIgUgBmoiA0sNAyADQfj///8HSw0DIAMQkAEiA0UEQEG48MkAQQE6AAAACyADIAZqIQkgBQRAIAlB/wEgBfwLAAsgAUEBayIEIAFBA3ZBB2wgAUEJSRshDCAAKAIAIQUCQCALRQRAQQAhCwwBCyAFKQMAQn+FQoCBgoSIkKDAgH+DIRAgAikDCCESIAIpAwAhEUEAIQEgCyECIAUhAwNAIBBQBEADQCABQQhqIQEgA0EIaiIDKQMAQoCBgoSIkKDAgH+DIg9CgIGChIiQoMCAf1ENAAsgD0KAgYKEiJCgwIB/hSEQCyAJIBEgEiAFIBB6p0EDdiABaiINQQJ0a0EEaygCACIGQQRqKAIAIAZBCGooAgAQ4wqnIg4gBHEiCGopAABCgIGChIiQoMCAf4MiD1AEQEEIIQoDQCAIIApqIQYgCkEIaiEKIAkgBCAGcSIIaikAAEKAgYKEiJCgwIB/gyIPUA0ACwsgEEIBfSAQgyEQIAkgD3qnQQN2IAhqIARxIghqLAAAQQBOBEAgCSkDAEKAgYKEiJCgwIB/g3qnQQN2IQgLIAggCWogDkEZdiIGOgAAIAkgCEEIayAEcWpBCGogBjoAACAJIAhBf3NBAnRqIAUgDUF/c0ECdGooAAA2AgAgAkEBayICDQALCyAAIAQ2AgQgACAJNgIAIAAgDCALazYCCCAHRQ0AIAdBAnRBC2pBeHEiACAHakEJaiIDRQ0AIAUgAGsiAUEEaygCACIAQXhxIQIgAkEEQQggAEEDcSIAGyADakkNASAAQQBHIAIgA0EnaktxDQIgARC8BQ8LDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQfjoyABBOUH4n8QAEL8TAAvdCwEJfyMAQcABayIDJAAgAigCBCIIIAIoAggiBkHMAGxqIQkgAigCACEKIAghAgJAAkACQAJAAkACQCAGRQ0AIANBvQFqIQsCQANAAkAgAkHJAGohBCACQQRqIQcgAkHMAGohBiACQcgAai0AACEFAkACQAJAAkACQAJAAkACQAJAAkAgAigCAA4EAQIDBAALIAJBzABqIQIMDAsgA0EEaiAHQcQA/AoAACADIAQtAAI6AAIgAyAELwAAOwEAQQwQkAEiAg0DDBALIANBBGogB0HEAPwKAAAgAyAELQACOgACIAMgBC8AADsBAEELEJABIgINAwwPCyADQQRqIAdBxAD8CgAAIAMgBC0AAjoAAiADIAQvAAA7AQBBDBCQASICDQMMDgsgA0EEaiAHQcQA/AoAACADIAQtAAI6AAIgAyAELwAAOwEAQQsQkAEiAg0DDA0LIAJBzIDGACgAADYACCACQcSAxgApAAA3AAAgA0EMNgKAASADIAI2AnwgA0EMNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0DQQgQkAEiAkUNDCACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNDAMLIAJB14DGACgAADYAByACQdCAxgApAAA3AAAgA0ELNgKAASADIAI2AnwgA0ELNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0CQQgQkAEiAkUNCyACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNDAILIAJB44DGACgAADYACCACQduAxgApAAA3AAAgA0EMNgKAASADIAI2AnwgA0EMNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0BQQgQkAEiAkUNCiACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNDAELIAJB7oDGACgAADYAByACQeeAxgApAAA3AAAgA0ELNgKAASADIAI2AnwgA0ELNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0AQQgQkAEiAkUNCSACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNCyADQfgAaiICIANBBGpBxAD8CgAAIAsgAy8BADsAACALIAMtAAI6AAIgAyAFOgC8ASADQcgAaiEFIwBBMGsiBCQAIAQgASACQQEQxwECQCAEKAIAQX5GBEBBBBCQASIHRQ0KIAdBoJ65ggI2AAAgBEEENgIIIAQgBzYCBCAEQQQ2AgAgASAEEPwNIAUgASACQTRqEPsBDAELIAUgBCkCKDcCKCAFIAQpAiA3AiAgBSAEKQIYNwIYIAUgBCkCEDcCECAFIAQpAgg3AgggBSAEKQIANwIAIAJBNGoQnQYMAAsgBEEwaiQAIAMoAkhBfkcEQCAAIAMpAnA3AiggACADKQJoNwIgIAAgAykCYDcCGCAAIAMpAlg3AhAgACADKQJQNwIIIAAgAykCSDcCACAJIAZrQcwAbiEAIAYgCUcEQCAGQThqIQIDQCACQTRrEOECIAIQnQYgAkHMAGohAiAAQQFrIgANAAsLIApFDQYgCEEEaygCACIBQXhxIQAgACAKQcwAbCICQQRBCCABQQNxIgEbakkNASABQQBHIAAgAkEnaktxDQMgCBC8BQwGCyAJIAYiAkcNAQwECwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAkgAmtBzABuIQEgAiAJRg0AIAJBOGohAgNAIAJBNGsQ4QIgAhCdBiACQcwAaiECIAFBAWsiAQ0ACwsgCgRAIAhBBGsoAgAiAkF4cSEBIAEgCkHMAGwiBkEEQQggAkEDcSICG2pJDQIgAkEARyABIAZBJ2pLcQ0DIAgQvAULIABBfjYCAAsgA0HAAWokAA8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0EBEKcUAAvdCwEJfyMAQcABayIDJAAgAigCBCIIIAIoAggiBkHMAGxqIQkgAigCACEKIAghAgJAAkACQAJAAkACQCAGRQ0AIANBvQFqIQsCQANAAkAgAkHJAGohBCACQQRqIQcgAkHMAGohBiACQcgAai0AACEFAkACQAJAAkACQAJAAkACQAJAAkAgAigCAA4EAQIDBAALIAJBzABqIQIMDAsgA0EEaiAHQcQA/AoAACADIAQtAAI6AAIgAyAELwAAOwEAQQwQkAEiAg0DDBALIANBBGogB0HEAPwKAAAgAyAELQACOgACIAMgBC8AADsBAEELEJABIgINAwwPCyADQQRqIAdBxAD8CgAAIAMgBC0AAjoAAiADIAQvAAA7AQBBDBCQASICDQMMDgsgA0EEaiAHQcQA/AoAACADIAQtAAI6AAIgAyAELwAAOwEAQQsQkAEiAg0DDA0LIAJBzIDGACgAADYACCACQcSAxgApAAA3AAAgA0EMNgKAASADIAI2AnwgA0EMNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0DQQgQkAEiAkUNDCACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNDAMLIAJB14DGACgAADYAByACQdCAxgApAAA3AAAgA0ELNgKAASADIAI2AnwgA0ELNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0CQQgQkAEiAkUNCyACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNDAILIAJB44DGACgAADYACCACQduAxgApAAA3AAAgA0EMNgKAASADIAI2AnwgA0EMNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0BQQgQkAEiAkUNCiACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNDAELIAJB7oDGACgAADYAByACQeeAxgApAAA3AAAgA0ELNgKAASADIAI2AnwgA0ELNgJ4IAEgA0H4AGoiBBD8DSAFQQFxRQ0AQQgQkAEiAkUNCSACQsyC0aqkqpCmIDcAACADQQg2AoABIAMgAjYCfCADQQg2AnggASAEEPwNCyADQfgAaiICIANBBGpBxAD8CgAAIAsgAy8BADsAACALIAMtAAI6AAIgAyAFOgC8ASADQcgAaiEFIwBBMGsiBCQAIAQgASACQQEQlQECQCAEKAIAQX5GBEBBBBCQASIHRQ0KIAdBoJ65ggI2AAAgBEEENgIIIAQgBzYCBCAEQQQ2AgAgASAEEPwNIAUgASACQTRqEPUBDAELIAUgBCkCKDcCKCAFIAQpAiA3AiAgBSAEKQIYNwIYIAUgBCkCEDcCECAFIAQpAgg3AgggBSAEKQIANwIAIAJBNGoQ9QUMAAsgBEEwaiQAIAMoAkhBfkcEQCAAIAMpAnA3AiggACADKQJoNwIgIAAgAykCYDcCGCAAIAMpAlg3AhAgACADKQJQNwIIIAAgAykCSDcCACAJIAZrQcwAbiEAIAYgCUcEQCAGQThqIQIDQCACQTRrEMkCIAIQ9QUgAkHMAGohAiAAQQFrIgANAAsLIApFDQYgCEEEaygCACIBQXhxIQAgACAKQcwAbCICQQRBCCABQQNxIgEbakkNASABQQBHIAAgAkEnaktxDQMgCBC8BQwGCyAJIAYiAkcNAQwECwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAkgAmtBzABuIQEgAiAJRg0AIAJBOGohAgNAIAJBNGsQyQIgAhD1BSACQcwAaiECIAFBAWsiAQ0ACwsgCgRAIAhBBGsoAgAiAkF4cSEBIAEgCkHMAGwiBkEEQQggAkEDcSICG2pJDQIgAkEARyABIAZBJ2pLcQ0DIAgQvAULIABBfjYCAAsgA0HAAWokAA8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0EBEKcUAAubDAINfwR+AkACQAJAAkACfwJAIAAoAgwiCkEBaiIIBEAgACgCBCIGQQFqIgVBA3YiBEEHbCELIAYgCyAGQQhJGyICQQF2IAhJBEAgAkEBaiICIAggAiAISxsiAkEPSQ0CIAJB/////wFNBEBBfyACQQN0QQduQQFrZ3YiAkH+////AEsNCCACQQFqDAQLDAcLIAAgBQR/IAAoAgAhAwJAIAQgBUEHcUEAR2oiAkEBRwRAIAJBAXEgAkH+////A3EhBwNAIAMgDGoiAikDACEPIAIgD0J/hUIHiEKBgoSIkKDAgAGDIA9C//79+/fv37//AIR8NwMAIAJBCGoiAikDACEPIAIgD0J/hUIHiEKBgoSIkKDAgAGDIA9C//79+/fv37//AIR8NwMAIAxBEGohDCAHQQJrIgcNAAtFDQELIAMgDGoiAikDACEPIAIgD0J/hUIHiEKBgoSIkKDAgAGDIA9C//79+/fv37//AIR8NwMACwJAIAVBCE8EQCADIAVqIAMpAAA3AAAMAQsgBUUNACADQQhqIAMgBfwKAAALIAEpAwghESABKQMAIRJBACECA0ACQCADIAIiAWoiDS0AAEGAAUcNACADIAJBBHRrQRBrIQUgAyACQX9zQQR0aiEJA0AgAyASIBEgBRCICqciDiAGcSIEIgJqKQAAQoCBgoSIkKDAgH+DIhBQBEBBCCEHA0AgAiAHaiECIAdBCGohByADIAIgBnEiAmopAABCgIGChIiQoMCAf4MiEFANAAsLIAMgEHqnQQN2IAJqIAZxIgJqLAAAQQBOBEAgAykDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgBGsgASAEa3MgBnFBCE8EQCACIANqIgQtAAAgBCAOQRl2IgQ6AAAgAyACQQhrIAZxakEIaiAEOgAAIAMgAkF/c0EEdGohAkH/AUYEQCANQf8BOgAAIAMgBiABQQhrcWpBCGpB/wE6AAAgAiAJKQAINwAIIAIgCSkAADcAAAwDCyAJKQAAIQ8gCSACKQAANwAAIAIgDzcAACAJKQAIIQ8gCSACKQAINwAIIAIgDzcACAwBCwsgDSAOQRl2IgI6AAAgAyAGIAFBCGtxakEIaiACOgAACyABQQFqIQIgASAGRw0ACyAGIAsgBkEISRsFQQALIAprNgIIDAMLDAULQQQgAkEIcUEIaiACQQRJGwsiAkEIaiIFIAJBBHQiCCAFaiIESw0DIARB+P///wdLDQMgBBCQASIERQRAQbjwyQBBAToAAAALIAQgCGohAyAFBEAgA0H/ASAF/AsACyACQQFrIgkgAkEDdkEHbCACQQlJGyENIAAoAgAhBAJAIApFBEBBACEKDAELIAQpAwBCf4VCgIGChIiQoMCAf4MhECABKQMIIREgASkDACESIAohASAEIQIDQCAQUARAA0AgDEEIaiEMIAJBCGoiAikDAEKAgYKEiJCgwIB/gyIPQoCBgoSIkKDAgH9RDQALIA9CgIGChIiQoMCAf4UhEAsgAyASIBEgBCAQeqdBA3YgDGoiDkEEdGtBEGsQiAqnIgUgCXEiB2opAABCgIGChIiQoMCAf4MiD1AEQEEIIQsDQCAHIAtqIQggC0EIaiELIAMgCCAJcSIHaikAAEKAgYKEiJCgwIB/gyIPUA0ACwsgEEIBfSAQgyEQIAMgD3qnQQN2IAdqIAlxIgdqLAAAQQBOBEAgAykDAEKAgYKEiJCgwIB/g3qnQQN2IQcLIAMgB2ogBUEZdiIIOgAAIAMgB0EIayAJcWpBCGogCDoAACADIAdBf3NBBHRqIgUgBCAOQX9zQQR0aiIIKQAINwAIIAUgCCkAADcAACABQQFrIgENAAsLIAAgCTYCBCAAIAM2AgAgACANIAprNgIIIAZFDQAgBkEEdEEXakFwcSIAIAZqQQlqIgpFDQAgBCAAayIBQQRrKAIAIgBBeHEhAiACQQRBCCAAQQNxIgAbIApqSQ0BIABBAEcgAiAKQSdqS3ENAiABELwFDwsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB+OjIAEE5QfifxAAQvxMAC7MOAQV/IwBBIGsiAiQAAkACQAJAAkACQAJAAkACQAJAIAAoAgAoAgAiAy0AAEEBaw4HAQIDBAUGBwALQQEhACABKAIAIgRB4pHJAEEFIAEoAgQiBigCDCIFEQAADQcgA0EIaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0JIAMgARDPAkUNAQwJCyAEQZ3jwgBBAiAFEQAADQggAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDPAg0IIAIoAhBBpLLIAEECIAIoAhQoAgwRAAANCAsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAcLQQEhACABKAIAIgRB55HJAEEEIAEoAgQiBigCDCIFEQAADQYgA0EIaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0IIAMgARDPAkUNAQwICyAEQZ3jwgBBAiAFEQAADQcgAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDPAg0HIAIoAhBBpLLIAEECIAIoAhQoAgwRAAANBwsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAYLQQEhACABKAIAIgRB65HJAEEEIAEoAgQiBigCDCIFEQAADQUgA0EIaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0HIAMgARDPAkUNAQwHCyAEQZ3jwgBBAiAFEQAADQYgAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDPAg0GIAIoAhBBpLLIAEECIAIoAhQoAgwRAAANBgsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAULQQEhACABKAIAIgRB3ZHJAEEFIAEoAgQiBigCDCIFEQAADQQgA0EBaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0GIAMgARCYFEUNAQwGCyAEQZ3jwgBBAiAFEQAADQUgAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahCYFA0FIAJBpLLIAEECEP0IDQULIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwEC0EBIQAgASgCACIEQe+RyQBBBiABKAIEIgYoAgwiBREAAA0DIANBCGohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANBSADIAEQ1wFFDQEMBQsgBEGd48IAQQIgBREAAA0EIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQ1wENBCACKAIQQaSyyABBAiACKAIUKAIMEQAADQQLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwDC0EBIQAgASgCACIEQfWRyQBBAiABKAIEIgYoAgwiBREAAA0CIANBCGohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANBCADIAEQzwJFDQEMBAsgBEGd48IAQQIgBREAAA0DIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQzwINAyACKAIQQaSyyABBAiACKAIUKAIMEQAADQMLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwCC0EBIQAgASgCACIEQfeRyQBBBSABKAIEIgYoAgwiBREAAA0BIANBCGohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANAyADIAEQzwJFDQEMAwsgBEGd48IAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQzwINAiACKAIQQaSyyABBAiACKAIUKAIMEQAADQILIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwBC0EBIQAgASgCACIEQfyRyQBBBSABKAIEIgYoAgwiBREAAA0AIANBAWohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANAiADIAEQmBRFDQEMAgsgBEGd48IAQQIgBREAAA0BIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQmBQNASACQaSyyABBAhD9CA0BCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQALIAJBIGokACAAC7MOAQV/IwBBIGsiAiQAAkACQAJAAkACQAJAAkACQAJAIAAoAgAoAgAiAy0AAEEBaw4HAQIDBAUGBwALQQEhACABKAIAIgRB4pHJAEEFIAEoAgQiBigCDCIFEQAADQcgA0EIaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0JIAMgARDQAkUNAQwJCyAEQZ3jwgBBAiAFEQAADQggAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDQAg0IIAIoAhBBpLLIAEECIAIoAhQoAgwRAAANCAsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAcLQQEhACABKAIAIgRB55HJAEEEIAEoAgQiBigCDCIFEQAADQYgA0EIaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0IIAMgARDQAkUNAQwICyAEQZ3jwgBBAiAFEQAADQcgAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDQAg0HIAIoAhBBpLLIAEECIAIoAhQoAgwRAAANBwsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAYLQQEhACABKAIAIgRB65HJAEEEIAEoAgQiBigCDCIFEQAADQUgA0EIaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0HIAMgARDQAkUNAQwHCyAEQZ3jwgBBAiAFEQAADQYgAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDQAg0GIAIoAhBBpLLIAEECIAIoAhQoAgwRAAANBgsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAULQQEhACABKAIAIgRB3ZHJAEEFIAEoAgQiBigCDCIFEQAADQQgA0EBaiEDAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0GIAMgARCYFEUNAQwGCyAEQZ3jwgBBAiAFEQAADQUgAkEBOgAPIAIgBjYCBCACIAQ2AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahCYFA0FIAJBpLLIAEECEP0IDQULIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwEC0EBIQAgASgCACIEQe+RyQBBBiABKAIEIgYoAgwiBREAAA0DIANBCGohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANBSADIAEQ2AFFDQEMBQsgBEGd48IAQQIgBREAAA0EIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQ2AENBCACKAIQQaSyyABBAiACKAIUKAIMEQAADQQLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwDC0EBIQAgASgCACIEQfWRyQBBAiABKAIEIgYoAgwiBREAAA0CIANBCGohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANBCADIAEQ0AJFDQEMBAsgBEGd48IAQQIgBREAAA0DIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQ0AINAyACKAIQQaSyyABBAiACKAIUKAIMEQAADQMLIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwCC0EBIQAgASgCACIEQfeRyQBBBSABKAIEIgYoAgwiBREAAA0BIANBCGohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANAyADIAEQ0AJFDQEMAwsgBEGd48IAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQ0AINAiACKAIQQaSyyABBAiACKAIUKAIMEQAADQILIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAwBC0EBIQAgASgCACIEQfyRyQBBBSABKAIEIgYoAgwiBREAAA0AIANBAWohAwJAIAEtAApBgAFxRQRAIARBtM/FAEEBIAURAAANAiADIAEQmBRFDQEMAgsgBEGd48IAQQIgBREAAA0BIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECADIAJBEGoQmBQNASACQaSyyABBAhD9CA0BCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQALIAJBIGokACAAC7cMAR1/IwBBIGsiDCQAAkACQCACRQRAQQghFQwBCyACQQZ0IgUQkAEiFUUNASABIAVqIRwgAiEZA0AgASAcRg0BIAchCQJ/AkACQAJAAkACQAJAQQMgASgCACIFQRtrIAVBGk0bQQFrDgMBAwIACyABKAIUIhEoAgAhBSARIAVBAWo2AgAgBUEASA0DIAEoAiAiBEUEQEEEIRQMBQsgASgCHCEOIARBFGwiEBCQASIUBEBBACEDIAQhBQNAIAMgEEYNBgJAIAMgDmoiCCgCACISQQJHBEAgCEEQaigCACIKKAIAIQsgCiALQQFqNgIAIAtBAEgNByAIQQxqKAIAIQ0gCEEIaigCACEHIAhBBGooAgAhBgwBCyAIQQhqKAIAIQcgCEEEaigCACIGKAIAIQggBiAIQQFqNgIAIAhBAEgNBgsgAyAUaiIIIBI2AgAgCEEQaiAKNgIAIAhBDGogDTYCACAIQQhqIAc2AgAgCEEEaiAGNgIAIANBFGohAyAFQQFrIgUNAAsMBQtBBBCnFAALIAEoAhQiESgCACEFIBEgBUEBajYCACAFQQBIDQIgAS0AGSESIAEtABghBCABLwESIRYgAS0AESEGIAEtABAhCiABKAIMIQsgASgCCCENQRwhAyABKAIEDAQLQQQhF0EEIRMCQAJAAkAgASgCKCIIRQ0AIAEoAiQhAyAIQRRsIgQQkAEiE0UNAUEAIQcgCCEFA0AgBCAHRg0BIAMoAhAiCygCACEPIAsgD0EBajYCACAPQQBIDQUgByATaiIKIAMpAgg3AgggCiADKQIANwIAIApBEGogCzYCACAHQRRqIQcgA0EUaiEDIAVBAWsiBQ0ACwsgAS0AOCEdIAwgARCQAwJAIAEoAjQiD0UNACABKAIwIRAgD0EUbCILEJABIhdFDQJBACEDIA8hBQNAIAMgC0YNAQJAIAMgEGoiBCgCACIYQQJHBEAgBEEQaigCACIKKAIAIQcgCiAHQQFqNgIAIAdBAEgNByAEQQxqKAIAIQ0gBEEIaigCACEHIARBBGooAgAhBgwBCyAEQQhqKAIAIQcgBEEEaigCACIGKAIAIQQgBiAEQQFqNgIAIARBAEgNBgsgAyAXaiIEIBg2AgAgBEEQaiAKNgIAIARBDGogDTYCACAEQQhqIAc2AgAgBEEEaiAGNgIAIANBFGohAyAFQQFrIgUNAAsLIAwoAhgiBEEQdiEaIARBCHYhEiAMKAIcIRQgDCgCFCERIAwvARIhFiAMLQARIQYgDC0AECEKIAwoAgwhCyAMKAIIIQ0gDCgCACEDIAghGCAMKAIEDAULQQQQpxQAC0EEEKcUAAsCQAJAIAEoAgwiC0UEQEEEIQ0MAQsgASgCCCEeIAtBFGwiGxCQASINRQ0BQQAhAyALIQUDQCADIBtGDQECQCADIB5qIgYoAgAiH0ECRwRAIAZBEGooAgAiCigCACEHIAogB0EBajYCACAHQQBIDQUgBkEMaigCACEQIAZBCGooAgAhByAGQQRqKAIAIQYMAQsgBkEIaigCACEHIAZBBGooAgAiBigCACEOIAYgDkEBajYCACAOQQBIDQQLIAMgDWoiDiAfNgIAIA5BEGogCjYCACAOQQxqIBA2AgAgDkEIaiAHNgIAIA5BBGogBjYCACADQRRqIQMgBUEBayIFDQALCyABLQARIQYgAS0AECEKQR0hAyALDAMLQQQQpxQACwALIAEtACQgE0GAgHxxciABLQAlQQh0ciETIARBEHYhGiAEQQh2IRIgAS8BEiEWIAEtABEhBiABLQAQIQogASgCDCELIAEoAgghDUEbIQMgBCEIIAEoAgQLIQUgCUEBaiEHIAFBQGshASAVIAlBBnRqIgkgHToAOCAJIA82AjQgCSAXNgIwIAkgDzYCLCAJIBg2AiggCSATNgIkIAkgCDYCICAJIBQ2AhwgCSARNgIUIAkgFjsBEiAJIAY6ABEgCSAKOgAQIAkgCzYCDCAJIA02AgggCSAFNgIEIAkgAzYCACAJIARB/wFxIBpBEHQgEkH/AXFBCHRycjYCGCAZQQFrIhkNAAsLIAAgAjYCCCAAIBU2AgQgACACNgIAIAxBIGokAA8LQQgQpxQAC78MAgh/An4jAEEgayIEJAACQAJAQQ4gACgCACIDQQ1rIANBDE0bIgVBDiABKAIAIgdBDWsgB0EMTRtHDQBBASECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFQQFrDg4MCwoJCAcGDwUEAwIBAA0LIAAoAhwiAiABKAIcRw0NIAAoAhggASgCGCACEI8TDQ0gACgCECIGIAEoAhBHDQ0gBgRAIAAoAgwhAiABKAIMIQUDQCACIAUQvwNFDQ8gAkEgaiECIAVBIGohBSAGQQFrIgYNAAsLIAMgB0cNDSADQQVHBEBBASECDA8LIAAoAgQiACgCACICIAEoAgQiASgCAEcNDQNAIAJBBUcEQEEBIQIMEAsgACgCBCIAKAIAIgIgASgCBCIBKAIARg0ACwwNCyAAKAIUIgIgASgCFEcNDCAAKAIQIAEoAhAgAhCPEw0MIAAoAgQiAiABKAIERw0MIAJBBUcEQEEBIQIMDgsgACgCCCIAKAIAIgIgASgCCCIBKAIARw0MA0AgAkEFRwRAQQEhAgwPCyAAKAIEIgAoAgAiAiABKAIEIgEoAgBGDQALDAwLQQAhAiAAKAIMIgMgASgCDEcNDCAAKAIIIAEoAgggAxCPE0UhAgwMCyAAKQMIIAEpAwhRIQIMCwsCQAJAAkACQAJAIAApAxgiCiABKQMYIgtVIAogC1NrQf8BcQ4CAQIACyAEQQRqIAsgCn0QiAJBASEDIAAtABQiAkEBRg0CAn8CQAJAAkAgBC0AEEEBaw4CBgEACyACDQFBAgwCCyACRQ0AQQIMAQtBAAsgBEEUaiAAKAIMIAAoAhAgBEEEahC3DUEBIAQoAhwiBRshAyAEKAIUIQAMAwsgAC0AFCIDIAEtABRHDQwgA0EBRg0NQQAhAiAAKAIQIgMgASgCEEcNDSAAKAIMIAEoAgwgA0ECdBCPE0UhAgwNCyAEQQRqIAogC30QiAJBASEDAkACQCABLQAUIgJBAUYNAAJ/AkACQAJAIAQtABBBAWsOAgQBAAsgAg0BQQIMAgsgAkUNAEECDAELQQALIARBFGogASgCDCABKAIQIARBBGoQtw1BASAEKAIcIgUbIQMgBCgCFCEBDAELIARBFGogASgCDCABKAIQIARBBGoQtw1BACEFIAQoAhQiAUEESQ0AIAQoAhggAUECdBDZEiAEQQQ2AhhBACEBCyAEKAIYIQYCf0EAIAAtABQgA0cNABpBASADQQFGDQAaQQAgACgCECAFRw0AGiAAKAIMIAYgBUECdBCPE0ULIQIgAUUNDCAGIAFBAnQQ2RIMDAsgBEEUaiAAKAIMIAAoAhAgBEEEahC3DUEAIQUgBCgCFCIAQQRJDQAgBCgCGCAAQQJ0ENkSIARBBDYCGEEAIQALIAQoAhghBgJ/QQAgAyABLQAURw0AGkEBIANBAUYNABpBACAFIAEoAhBHDQAaIAYgASgCDCAFQQJ0EI8TRQshAiAARQ0KIAYgAEECdBDZEgwKCyAAKAIEIAEoAgRHDQhBACECIAAoAgggASgCCEcNCSAAKAIMIAEoAgxGIQIMCQsgACgCDCIDIAEoAgxHDQcgA0UEQAwJCyAAKAIIQRBqIQIgASgCCEEQaiEBA0AgAkEIaygCACIAIAFBCGsoAgBHDQggAkEMaygCACABQQxrKAIAIAAQjxMNCCACIAEQvwNFDQggAkEwaiECIAFBMGohASADQQFrIgMNAAtBASECDAgLQQAhAiAAKAIMIgMgASgCDEcNByAAKAIIIAEoAgggAxCPE0UhAgwHC0EAIQIgACgCDCIDIAEoAgxHDQZBASECIANFDQYgACgCCCEAIAEoAgghASADQQFrIQMDQCAAIAEQvwMiAkUNByADQQBHIABBIGohACABQSBqIQEgA0EBayEDDQALDAYLIAApAgQgASkCBIUgACkCDCABKQIMhYRQIQIMBQsgACkDCCABKQMIUSECDAQLQQAhAiAAKAIMIgMgASgCDEcNAyAAKAIIIAEoAgggAxCPE0UhAgwDCyAALQAEIAEtAARGIQIMAgtBACECIAAoAgwiAyABKAIMRw0BIAAoAgggASgCCCADEI8TRSECDAELQQAhAgsgBEEgaiQAIAILvwwCCH8CfiMAQSBrIgQkAAJAAkBBDiAAKAIAIgNBDWsgA0EMTRsiBUEOIAEoAgAiB0ENayAHQQxNG0cNAEEBIQICQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAVBAWsODgwLCgkIBwYPBQQDAgEADQsgACgCHCICIAEoAhxHDQ0gACgCGCABKAIYIAIQjxMNDSAAKAIQIgYgASgCEEcNDSAGBEAgACgCDCECIAEoAgwhBQNAIAIgBRDAA0UNDyACQSBqIQIgBUEgaiEFIAZBAWsiBg0ACwsgAyAHRw0NIANBBUcEQEEBIQIMDwsgACgCBCIAKAIAIgIgASgCBCIBKAIARw0NA0AgAkEFRwRAQQEhAgwQCyAAKAIEIgAoAgAiAiABKAIEIgEoAgBGDQALDA0LIAAoAhQiAiABKAIURw0MIAAoAhAgASgCECACEI8TDQwgACgCBCICIAEoAgRHDQwgAkEFRwRAQQEhAgwOCyAAKAIIIgAoAgAiAiABKAIIIgEoAgBHDQwDQCACQQVHBEBBASECDA8LIAAoAgQiACgCACICIAEoAgQiASgCAEYNAAsMDAtBACECIAAoAgwiAyABKAIMRw0MIAAoAgggASgCCCADEI8TRSECDAwLIAApAwggASkDCFEhAgwLCwJAAkACQAJAAkAgACkDGCIKIAEpAxgiC1UgCiALU2tB/wFxDgIBAgALIARBBGogCyAKfRCFAkEBIQMgAC0AFCICQQFGDQICfwJAAkACQCAELQAQQQFrDgIGAQALIAINAUECDAILIAJFDQBBAgwBC0EACyAEQRRqIAAoAgwgACgCECAEQQRqELcNQQEgBCgCHCIFGyEDIAQoAhQhAAwDCyAALQAUIgMgAS0AFEcNDCADQQFGDQ1BACECIAAoAhAiAyABKAIQRw0NIAAoAgwgASgCDCADQQJ0EI8TRSECDA0LIARBBGogCiALfRCFAkEBIQMCQAJAIAEtABQiAkEBRg0AAn8CQAJAAkAgBC0AEEEBaw4CBAEACyACDQFBAgwCCyACRQ0AQQIMAQtBAAsgBEEUaiABKAIMIAEoAhAgBEEEahC3DUEBIAQoAhwiBRshAyAEKAIUIQEMAQsgBEEUaiABKAIMIAEoAhAgBEEEahC3DUEAIQUgBCgCFCIBQQRJDQAgBCgCGCABQQJ0ENkSIARBBDYCGEEAIQELIAQoAhghBgJ/QQAgAC0AFCADRw0AGkEBIANBAUYNABpBACAAKAIQIAVHDQAaIAAoAgwgBiAFQQJ0EI8TRQshAiABRQ0MIAYgAUECdBDZEgwMCyAEQRRqIAAoAgwgACgCECAEQQRqELcNQQAhBSAEKAIUIgBBBEkNACAEKAIYIABBAnQQ2RIgBEEENgIYQQAhAAsgBCgCGCEGAn9BACADIAEtABRHDQAaQQEgA0EBRg0AGkEAIAUgASgCEEcNABogBiABKAIMIAVBAnQQjxNFCyECIABFDQogBiAAQQJ0ENkSDAoLIAAoAgQgASgCBEcNCEEAIQIgACgCCCABKAIIRw0JIAAoAgwgASgCDEYhAgwJCyAAKAIMIgMgASgCDEcNByADRQRADAkLIAAoAghBEGohAiABKAIIQRBqIQEDQCACQQhrKAIAIgAgAUEIaygCAEcNCCACQQxrKAIAIAFBDGsoAgAgABCPEw0IIAIgARDAA0UNCCACQTBqIQIgAUEwaiEBIANBAWsiAw0AC0EBIQIMCAtBACECIAAoAgwiAyABKAIMRw0HIAAoAgggASgCCCADEI8TRSECDAcLQQAhAiAAKAIMIgMgASgCDEcNBkEBIQIgA0UNBiAAKAIIIQAgASgCCCEBIANBAWshAwNAIAAgARDAAyICRQ0HIANBAEcgAEEgaiEAIAFBIGohASADQQFrIQMNAAsMBgsgACkCBCABKQIEhSAAKQIMIAEpAgyFhFAhAgwFCyAAKQMIIAEpAwhRIQIMBAtBACECIAAoAgwiAyABKAIMRw0DIAAoAgggASgCCCADEI8TRSECDAMLIAAtAAQgAS0ABEYhAgwCC0EAIQIgACgCDCIDIAEoAgxHDQEgACgCCCABKAIIIAMQjxNFIQIMAQtBACECCyAEQSBqJAAgAgv/CwIMfwR+AkACQAJAAkACfwJAIAAoAgwiC0EBaiIFBEAgACgCBCIGQQFqIgJBA3YiBEEHbCEJIAYgCSAGQQhJGyIDQQF2IAVJBEAgA0EBaiICIAUgAiAFSxsiAkEPSQ0CIAJB/////wFNBEBBfyACQQN0QQduQQFrZ3YiAkH+////AUsNCCACQQFqDAQLDAcLIAAgAgR/IAAoAgAhAwJAIAQgAkEHcUEAR2oiAEEBRwRAIABBAXEgAEH+////A3EhBANAIAMgCGoiACkDACEOIAAgDkJ/hUIHiEKBgoSIkKDAgAGDIA5C//79+/fv37//AIR8NwMAIABBCGoiACkDACEOIAAgDkJ/hUIHiEKBgoSIkKDAgAGDIA5C//79+/fv37//AIR8NwMAIAhBEGohCCAEQQJrIgQNAAtFDQELIAMgCGoiACkDACEOIAAgDkJ/hUIHiEKBgoSIkKDAgAGDIA5C//79+/fv37//AIR8NwMACwJAIAJBCE8EQCACIANqIAMpAAA3AAAMAQsgAkUNACADQQhqIAMgAvwKAAALIAEpAwghDyABKQMAIRBBACECA0ACQCADIAIiAGoiBC0AAEGAAUcNACADIAJBA3RrIgFBBGshDCABQQhrIQ0gAyACQX9zQQN0aiEBA0AgAyAQIA8gDSgCACAMKAIAEOMKpyIIIAZxIgoiAmopAABCgIGChIiQoMCAf4MiDlAEQEEIIQcDQCACIAdqIQIgB0EIaiEHIAMgAiAGcSICaikAAEKAgYKEiJCgwIB/gyIOUA0ACwsgAyAOeqdBA3YgAmogBnEiAmosAABBAE4EQCADKQMAQoCBgoSIkKDAgH+DeqdBA3YhAgsgAiAKayAAIAprcyAGcUEITwRAIAIgA2oiBy0AACAHIAhBGXYiBzoAACADIAJBCGsgBnFqQQhqIAc6AAAgAyACQX9zQQN0aiECQf8BRgRAIARB/wE6AAAgAyAGIABBCGtxakEIakH/AToAACACIAEpAAA3AAAMAwsgASkAACEOIAEgAikAADcAACACIA43AAAMAQsLIAQgCEEZdiIBOgAAIAMgBiAAQQhrcWpBCGogAToAAAsgAEEBaiECIAAgBkcNAAsgBiAJIAZBCEkbBUEACyALazYCCAwDCwwFC0EEIAJBCHFBCGogAkEESRsLIgJBCGoiBSACQQN0IgQgBWoiA0sNAyADQfj///8HSw0DIAMQkAEiA0UEQEG48MkAQQE6AAAACyADIARqIQMgBQRAIANB/wEgBfwLAAsgAkEBayIJIAJBA3ZBB2wgAkEJSRshCiAAKAIAIQUgCwRAIAUpAwBCf4VCgIGChIiQoMCAf4MhDiABKQMIIRAgASkDACERIAUhAiALIQEDQCAOUARAA0AgCEEIaiEIIAJBCGoiAikDAEKAgYKEiJCgwIB/gyIOQoCBgoSIkKDAgH9RDQALIA5CgIGChIiQoMCAf4UhDgsgAyARIBAgBSAOeqdBA3YgCGoiDEEDdGsiBEEIaygCACAEQQRrKAIAEOMKpyINIAlxIgRqKQAAQoCBgoSIkKDAgH+DIg9QBEBBCCEHA0AgBCAHaiEEIAdBCGohByADIAQgCXEiBGopAABCgIGChIiQoMCAf4MiD1ANAAsLIA5CAX0gDoMhDiADIA96p0EDdiAEaiAJcSIEaiwAAEEATgRAIAMpAwBCgIGChIiQoMCAf4N6p0EDdiEECyADIARqIA1BGXYiBzoAACADIARBCGsgCXFqQQhqIAc6AAAgAyAEQX9zQQN0aiAFIAxBf3NBA3RqKQAANwAAIAFBAWsiAQ0ACwsgACAJNgIEIAAgAzYCACAAIAogC2s2AgggBkUNACAGQQN0QQ9qQXhxIgEgBmpBCWoiAEUNACAFIAFrIgJBBGsoAgAiBUF4cSEBIAFBBEEIIAVBA3EiBRsgAGpJDQEgBUEARyABIABBJ2pLcQ0CIAIQvAUPCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0H46MgAQTlB+J/EABC/EwALww0CB38CfiMAQfABayIFJAAgBUG4AWoiBiACKAIEIgogAigCCCILELAKIAUgBq1CgICAgMAChDcDiAEgBUEMakGutsAAIAVBiAFqELgMAkACQAJAAkACQAJAAkACQCAFKAK4ASIGBEAgBSgCvAEiCUEEaygCACIIQXhxIQcgB0EEQQggCEEDcSIIGyAGakkNBiAIQQBHIAcgBkEnaktxDQcgCRC8BQsgBQJ+QdDwyQAtAAAEQEHI8MkAKQMAIQ1BwPDJACkDAAwBCyAFQbgBahC7EUHQ8MkAQQE6AABByPDJACAFKQPAASINNwMAIAUpA7gBCyIMNwMYQcDwyQAgDEIBfDcDACAFQQA2AjAgBUKAgICAgAE3AyggBSANNwMgIAVBkKnJACkDADcCNCAFQZipyQApAwA3AjxBChCQASIGRQ0AIAZBjLXJAC8AADsACCAGQYS1yQApAAA3AAAgBUEKNgKEASAFIAY2AoABIAVBCjYCfCAEQavVqhVPDQECQAJ/IARFBEAgBUEANgJQIAVCgICAgIABNwJIQQAMAQsgBEEwbCIGEJABIgdFDQQgBEEYbCEIQQAhCSAFQQA2AlAgBSAHNgJMIAUgBDYCSEEAIQQDQCAFQbgBaiADEPUDIAUoAsgBQX9GDQIgA0EYaiEDIAUoAkggBEYEQCAFQcgAahCUEiAFKAJMIQcLIAcgCWoiBiAFKQO4ATcDACAGIAUpA+ABNwMoIAYgBSkD2AE3AyAgBiAFKQPQATcDGCAGIAUpA8gBNwMQIAYgBSkDwAE3AwggBSAEQQFqIgQ2AlAgCUEwaiEJIAhBGGsiCA0ACyAFKAJICyEDIAVBhICAgHg2ApgBIAUgBSkCTDcCjAEgBSADNgKIASAFQbgBaiAFQRhqIAVB/ABqIAVBiAFqENIDIAUgBSkD6AE3A3AgBSAFKQPgATcDaCAFIAUpA9gBNwNgIAUgBSkD0AEiDDcDWCAFIAUpA8gBNwNQIAUgBSkDwAE3A0ggDKdBf0cEQCAFQcgAahD+CQtBDBCQASIDRQ0EIANB+rHJACgAADYACCADQfKxyQApAAA3AAAgBUEMNgKEASAFIAM2AoABIAVBDDYCfCAFQbgBaiIDIAogCxDfDSAFKALIAUF/Rg0IIAUgBSkD4AE3A7ABIAUgBSkD2AE3A6gBIAUgBSkD0AE3A6ABIAUgBSkDyAE3A5gBIAUgBSkDwAE3A5ABIAUgBSkDuAE3A4gBIAMgBUEYaiAFQfwAaiAFQYgBahDSAyAFIAUpA+gBNwNwIAUgBSkD4AE3A2ggBSAFKQPYATcDYCAFIAUpA9ABIgw3A1ggBSAFKQPIATcDUCAFIAUpA8ABNwNIIAynQX9HBEAgBUHIAGoQ/gkLQQ0QkAEiA0UNBSADQY6xyQApAAA3AAUgA0GJsckAKQAANwAAIAVBDTYChAEgBSADNgKAASAFQQ02AnwgBUG4AWoiBCABKAIEIgMgASgCCBDfDSAFKALIAUF/Rg0IIAUgBSkD4AE3A7ABIAUgBSkD2AE3A6gBIAUgBSkD0AE3A6ABIAUgBSkDyAE3A5gBIAUgBSkDwAE3A5ABIAUgBSkDuAE3A4gBIAQgBUEYaiAFQfwAaiAFQYgBahDSAyAFIAUpA+gBNwNwIAUgBSkD4AE3A2ggBSAFKQPYATcDYCAFIAUpA9ABIgw3A1ggBSAFKQPIATcDUCAFIAUpA8ABNwNIIAynQX9HBEAgBUHIAGoQ/gkLIAAgBSkDQDcDKCAAIAUpAzg3AyAgACAFKQMwNwMYIAAgBSkDKDcDECAAIAUpAyA3AwggACAFKQMYNwMAIABBBzoAPCAAIAUpAgw3AjAgACAFKAIUNgI4IAIoAgAiAgRAIApBBGsoAgAiBEF4cSEAIAAgAkEDdCICQQRBCCAEQQNxIgQbakkNByAEQQBHIAAgAkEnaktxDQggChC8BQsgASgCACIBBEAgA0EEaygCACICQXhxIQAgACABQQN0IgFBBEEIIAJBA3EiAhtqSQ0HIAJBAEcgACABQSdqS3ENCCADELwFCyAFQfABaiQADwsgBSgCuAEhACAFQcgAahCXCSAFKAJIIgEEQCAHIAFBMGwQ2RILIAUgADYCuAFBiLDJAEErIAVBuAFqQZixyQBBkLXJABDaEgALQQEQpxQACxCeFQALQQgQpxQAC0EBEKcUAAtBARCnFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACyAFIAUoArgBNgKIAUGIsMkAQSsgBUGIAWpBmLHJAEGQtckAENoSAAvkCwINfwJ+IwBBQGoiAiQAIAJBHGogABDxCiACQTBqIAEQ8QoCQAJAAkACQAJAIAIoAiAgAigCNEYEQCACKAIkIAIoAjhGDQELIAIoAjAiASgCACEAIAEgAEEBazYCACAAQQFGBEAgAigCMBAwCyACKAIcIgEoAgAhACABIABBAWs2AgAgAEEBRw0BIAIoAhwQMAwBCyACKAIwIgsoAgAhBSALIAVBAWs2AgAgBUEBRgRAIAIoAjAQMAsgAigCHCILKAIAIQUgCyAFQQFrNgIAIAVBAUYEQCACKAIcEDALIAEoAhwiBUUEQEEBIQEMAgsgASgCGCIEIAVByAFsaiEOIAAoAhxByAFsIQUgAkEoaq1CgICAgNABhCEPIAAoAhghCwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQIgBCkDACIQp0ECayAQQgFYG0EBaw4DAQsCAAsgBCgCDCEAAn8gBCgCCEEBRgRAIAQoAhgiA0GgAmooAgAiASAATQ0EIAQoAhAiASADQZwCaigCACAAQSRsaiIAQSBqKAIAIgNPDQUgAEEcaigCACABQdQAbGoiACgCAEGAgICAeEcNBiAEKAIUIgEgACgCJCIDTw0HIAAoAiAgAUHcAGxqIgAoAiQhAyAAKAIgDAELIAIgBCgCGEEIaiAAENAQIAIoAgQhAyACKAIACyEMIAUhASALIQADQCABRQ0NIAJBMGogABC8CCACKAI0IQYgAigCMCEHIAMgAigCOEcEf0EABSAGIAwgAxCPE0ULIAdBAEoEQCAGQQRrKAIAIglBeHEhCiAKQQRBCCAJQQNxIgkbIAdqSQ0QIAlBAEcgCiAHQSdqS3ENESAGELwFCyAAQcgBaiEAIAFByAFrIQFFDQALDAoLIAQoAgwhAAJ/IAQoAghBAUYEQCAEKAIYIgNBoAJqKAIAIgEgAE0NByAEKAIQIgEgA0GcAmooAgAgAEEkbGoiAEEgaigCACIDTw0IIABBHGooAgAgAUHUAGxqIgAoAgBBgICAgHhHDQkgBCgCFCIBIAAoAiQiA08NCiAAKAIgIAFB3ABsaiIAKAIkIQMgACgCIAwBCyACQQhqIAQoAhhBCGogABDQECACKAIMIQMgAigCCAshDCAEQQhqIQkgBSEBIAshAANAIAFFDQwgAkEwaiAAELwIIAIoAjQhBiACKAIwIQcgAyACKAI4RwR/QQAFIAYgDCADEI8TRQsgB0EASgRAIAZBBGsoAgAiDUF4cSEKIApBBEEIIA1BA3EiDRsgB2pJDQ8gDUEARyAKIAdBJ2pLcQ0QIAYQvAULIABByAFqIQAgAUHIAWshAUUNAAtBACEBIABByAFrIgApAwBCA1INDCAAQQhqIAkQwwMNCQwMCyACQRBqIAQoAlhBCGogBCgCXBDRECACIAIpAxA3AiggAiAPNwMwIAJBHGpB7IHAACACQTBqELgMIAIoAiQhByACKAIgIQwgBSEAIAshAQNAIAAiAwRAIAJBMGogARC8CCACKAI0IQAgAigCMCEGIAcgAigCOEcEf0EABSAAIAwgBxCPE0ULIAZBAEoEQCAAQQRrKAIAIglBeHEhCiAKQQRBCCAJQQNxIgkbIAZqSQ0PIAlBAEcgCiAGQSdqS3ENECAAELwFCyABQcgBaiEBIANByAFrIQBFDQELCyACKAIcIgAEQCAMQQRrKAIAIghBeHEhASABQQRBCCAIQQNxIggbIABqSQ0NIAhBAEcgASAAQSdqS3ENDiAMELwFCyADDQgMCgsgACABQZS+xAAQhRMACyABIANBlL7EABCFEwALQZS+xAAQnRUACyABIANBpL7EABCFEwALIAAgAUGUvsQAEIUTAAsgASADQZS+xAAQhRMAC0GUvsQAEJ0VAAsgASADQaS+xAAQhRMAC0EBIQEgDiAEQcgBaiIERw0ACwwBC0EAIQELIAJBQGskACABDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAAL5AsBIn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAhgiAUH/////B2sgAUEfdXEOJAECAwQFBgcICRoKGgsMDQ4PGhAaERITGhoUGhUaGhYXGhgaGQALIAAoAhwiAUUNGSAAKAIgIAEQ2RIMGQsgAQRAIAAoAhwgARDZEgsgACgCJCIBRQ0YIAAoAiggARDZEgwYCyAAKAIcIQEgACgCICIDKAIAIgIEQCABIAIRAwALIAMoAgQiAkUNFyADKAIIIQsgASACENkSDBcLIAAoAhwhASAAKAIgIgMoAgAiAgRAIAEgAhEDAAsgAygCBCICRQ0WIAMoAgghDCABIAIQ2RIMFgsgACgCHCIBRQ0VIAAoAiAgARDZEgwVCyAAKAIcIgFBAEwNFCAAKAIgIAEQ2RIMFAsgACgCHCIBQQBMDRMgACgCICABENkSDBMLIAAoAhwiAUEATA0SIAAoAiAgARDZEgwSCyAAKAIcIgFBAEwNESAAKAIgIAEQ2RIMEQsgACgCHCIBRQ0QIAAoAiAgARDZEgwQCyAAKAIcIgFBAEwNDyAAKAIgIAEQ2RIMDwsgACgCHCIBQQBMDQ4gACgCICABENkSDA4LAkACQCAAKAIcDgIAAQ8LIAAoAiQhAyAAKAIoIgIEQCADIQEDQCABKAIAIgQEQCABQQRqKAIAIgdBBGsoAgAiBUF4cSEGIAZBBEEIIAVBA3EiBRsgBGpJDRIgBUEARyAGIARBJ2pLcQ0TIAcQvAULIAFBDGohASACQQFrIgINAAsLIAAoAiAiAUUNDiADIAFBDGwQ2RIMDgsgACgCICIBRQ0NIAAoAiQgARDZEgwNCwJAAkAgACgCHA4CAAEOCyAAKAIkIQMgACgCKCICBEAgAyEBA0AgASgCACIEBEAgAUEEaigCACIHQQRrKAIAIgVBeHEhBiAGQQRBCCAFQQNxIgUbIARqSQ0RIAVBAEcgBiAEQSdqS3ENEiAHELwFCyABQQxqIQEgAkEBayICDQALCyAAKAIgIgFFDQ0gAyABQQxsENkSDA0LIAAoAiAiAUUNDCAAKAIkIAEQ2RIMDAsCQAJAIAAoAhwOAgABDQsgACgCJCEDIAAoAigiAgRAIAMhAQNAIAEoAgAiBARAIAFBBGooAgAiB0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyAEakkNECAFQQBHIAYgBEEnaktxDREgBxC8BQsgAUEMaiEBIAJBAWsiAg0ACwsgACgCICIBRQ0MIAMgAUEMbBDZEgwMCyAAKAIgIgFFDQsgACgCJCABENkSDAsLIAAoAhwhASAAKAIgIgMoAgAiAgRAIAEgAhEDAAsgAygCBCICRQ0KIAMoAgghGCABIAIQ2RIMCgsgACgCHCIBQQBMDQkgACgCICABENkSDAkLIAAoAhwiAUUNCCAAKAIgIAEQ2RIMCAsgACgCHCIBQX9GDQcgAUUNByAAKAIgIAEQ2RIMBwsgACgCHCIBQQBMDQYgACgCICABENkSDAYLIAAoAhwiAUUNBSAAKAIgIAEQ2RIMBQsgACgCHCIBRQ0EIAAoAiAgARDZEgwECyAAKAIcIgFFDQMgACgCICABENkSDAMLIAAoAhwiAUUNAiAAKAIgIAEQ2RIMAgsgACgCHCIBRQ0BIAAoAiAgARDZEgwBCyAAKAIcIgFFDQAgACgCICABENkSCwJAIAAoAgAiAUF/Rg0AIAFFDQAgACgCBCICQQRrKAIAIgRBeHEhAyADQQRBCCAEQQNxIgQbIAFqSQ0BIARBAEcgAyABQSdqS3ENAiACELwFCwJAIAAoAgwiAUF/Rg0AIAFFDQAgACgCECIDQQRrKAIAIgJBeHEhACAAQQRBCCACQQNxIgIbIAFqSQ0BIAJBAEcgACABQSdqS3ENAiADELwFCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC8gNAgd/AX4jAEHQAGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQQ4gASgCACIDQQ1rIANBDE0bQQFrDg4EBQYHAAgJCgsMDQ4BAgMLAkACQCABKAIMIgNFDQAgAkEIaiABKAIIIgYQxQMgAigCCCIBQX9GDQAgAiACKQIMNwIcIAIgATYCGCADQQV0QSBrIgRBBHYhAQJAIARFBEBBASEFDAELIAEQkAEiBUUNEQsgAkEANgIsIAIgBTYCKCACIAE2AiQgAiACQRhqrUKAgICAwAKENwMIIAJBJGpB3JbGAEHPrcAAIAJBCGoiARCxCUUEQCADQQFHBEAgAa1CgICAgMAChCEJIAZBIGohAQNAIAJBMGogARDFAyACIAIoAjg2AhAgAiACKQIwNwMIIAIoAiQgAigCLCIDa0EBTQRAIAJBJGogA0ECQQFBARCzESACKAIsIQMLIAIoAiggA2pBrMAAOwAAIAIgA0ECajYCLCACIAk3A0AgAkEkakHclsYAQc+twAAgAkFAaxCxCQ0WIAIoAggiAwRAIAIoAgwiBkEEaygCACIHQXhxIQUgBUEEQQggB0EDcSIHGyADakkNFSAHQQBHIAUgA0EnaktxDRYgBhC8BQsgAUEgaiEBIARBIGsiBA0ACwsgAiACKAIsNgIQIAIgAikCJDcDCCACKAIYIgFFDQIgAigCHCABENkSDAILQYiwyQBBKyACQc8AakH0lsYAQcC2yQAQ2hIACyACQQA2AhAgAkKAgICAEDcDCAsgAiACQQhqrUKAgICAwAKENwMwIABBzI7CACACQTBqELgMIAIoAggiAEUNGSACKAIMIgNBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgAGpJDRIgBEEARyABIABBJ2pLcQ0TIAMQvAUMGQsgAkEANgI4IAJCgICAgBA3AjAgAkHclsYANgIMIAJCoICAgAY3AhAgAiACQTBqNgIIIAFBBGogAkEIahDvDg0ZIAAgAigCODYCCCAAIAIpAjA3AgAMGAsgAkEANgI4IAJCgICAgBA3AjAgAkHclsYANgIMIAJCoICAgAY3AhAgAiACQTBqNgIIIAEgAkEIahDvDg0YIAAgAigCODYCCCAAIAIpAjA3AgAMFwtBBhCQASIBRQ0YIABBBjYCCCAAIAE2AgQgAEEGNgIAIAFB2ZDJAC8AADsABCABQdWQyQAoAAA2AAAMFgtBBxCQASIBRQ0UIABBBzYCCCAAIAE2AgQgAEEHNgIAIAFB55nJACgAADYAAyABQeSZyQAoAAA2AAAMFQtBBBCQASIBRQ0XIABBBDYCCCAAIAE2AgQgAEEENgIAIAFBxdzV6wY2AAAMFAtBAxCQASIBRQ0RIABBAzYCCCAAIAE2AgQgAEEDNgIAIAFB8ZnJAC0AADoAAiABQe+ZyQAvAAA7AAAMEwtBBBCQASIBRQ0VIABBBDYCCCAAIAE2AgQgAEEENgIAIAFB1aqlogQ2AAAMEgtBBBCQASIBRQ0UIABBBDYCCCAAIAE2AgQgAEEENgIAIAFByqa98gQ2AAAMEQtBBhCQASIBRQ0SIABBBjYCCCAAIAE2AgQgAEEGNgIAIAFB/pnJAC8AADsABCABQfqZyQAoAAA2AAAMEAtBBBCQASIBRQ0SIABBBDYCCCAAIAE2AgQgAEEENgIAIAFBzuqx4wY2AAAMDwtBCBCQASIBRQ0LIABBCDYCCCAAIAE2AgQgAEEINgIAIAFCxMLRq8aq2rblADcAAAwOC0EFEJABIgFFDQkgAEEFNgIIIAAgATYCBCAAQQU2AgAgAUGQmskALQAAOgAEIAFBjJrJACgAADYAAAwNC0EGEJABIgFFDQ4gAEEGNgIIIAAgATYCBCAAQQY2AgAgAUHwsckALwAAOwAEIAFB7LHJACgAADYAAAwMC0EFEJABIgFFDQYgAEEFNgIIIAAgATYCBCAAQQU2AgAgAUGVmskALQAAOgAEIAFBkZrJACgAADYAAAwLC0EBEKcUAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQYiwyQBBKyACQc8AakH0lsYAQbSwyQAQ2hIAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBARCnFAALQQEQpxQAC0EBEKcUAAtBARCnFAALQQEQpxQACyACQdAAaiQADwtB8LXJAEE3IAJBzwBqQfSWxgBBqLbJABDaEgALQQEQpxQAC0EBEKcUAAvoCwIMfwN+AkACQAJAAkACfwJAIAAoAgwiCkEBaiIEBEAgACgCBCIFQQFqIgFBA3YiA0EHbCEJIAUgCSAFQQhJGyICQQF2IARJBEAgAkEBaiIBIAQgASAESxsiAUEPSQ0CIAFB/////wFNBEBBfyABQQN0QQduQQFrZ3YiAUH+////AUsNCCABQQFqDAQLDAcLIAAgAQR/IAAoAgAhAgJAIAMgAUEHcUEAR2oiAEEBRwRAIABBAXEgAEH+////A3EhAwNAIAIgCGoiACkDACENIAAgDUJ/hUIHiEKBgoSIkKDAgAGDIA1C//79+/fv37//AIR8NwMAIABBCGoiACkDACENIAAgDUJ/hUIHiEKBgoSIkKDAgAGDIA1C//79+/fv37//AIR8NwMAIAhBEGohCCADQQJrIgMNAAtFDQELIAIgCGoiACkDACENIAAgDUJ/hUIHiEKBgoSIkKDAgAGDIA1C//79+/fv37//AIR8NwMACwJAIAFBCE8EQCABIAJqIAIpAAA3AAAMAQsgAUUNACACQQhqIAIgAfwKAAALQQAhAQNAAkAgAiABIgBqIggtAABBgAFHDQAgAiABQQN0ayIBQQRrIQsgAUEIayEMIAIgAEF/c0EDdGohBgNAIAIgBSAMKAIAIAsoAgAQ6AwiDqdxIgciAWopAABCgIGChIiQoMCAf4MiDVAEQEEIIQMDQCABIANqIQEgA0EIaiEDIAIgASAFcSIBaikAAEKAgYKEiJCgwIB/gyINUA0ACwsgAiANeqdBA3YgAWogBXEiAWosAABBAE4EQCACKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAHayAAIAdrcyAFcUEITwRAIAEgAmoiAy0AACADIA5CGYinIgM6AAAgAiABQQhrIAVxakEIaiADOgAAIAIgAUF/c0EDdGohAUH/AUYEQCAIQf8BOgAAIAIgBSAAQQhrcWpBCGpB/wE6AAAgASAGKQAANwAADAMLIAYpAAAhDSAGIAEpAAA3AAAgASANNwAADAELCyAIIA5CGYinIgE6AAAgAiAFIABBCGtxakEIaiABOgAACyAAQQFqIQEgACAFRw0ACyAFIAkgBUEISRsFQQALIAprNgIIDAMLDAULQQQgAUEIcUEIaiABQQRJGwsiAUEIaiIEIAFBA3QiAyAEaiICSw0DIAJB+P///wdLDQMgAhCQASICRQRAQbjwyQBBAToAAAALIAIgA2ohBiAEBEAgBkH/ASAE/AsACyABQQFrIgkgAUEDdkEHbCABQQlJGyELIAAoAgAhBAJAIApFBEBBACEKDAELIAQpAwBCf4VCgIGChIiQoMCAf4MhDSAKIQEgBCECA0AgDVAEQANAIAhBCGohCCACQQhqIgIpAwBCgIGChIiQoMCAf4MiDUKAgYKEiJCgwIB/UQ0ACyANQoCBgoSIkKDAgH+FIQ0LIAYgCSAEIA16p0EDdiAIaiIMQQN0ayIDQQhrKAIAIANBBGsoAgAQ6AwiD6dxIgNqKQAAQoCBgoSIkKDAgH+DIg5QBEBBCCEHA0AgAyAHaiEDIAdBCGohByAGIAMgCXEiA2opAABCgIGChIiQoMCAf4MiDlANAAsLIA1CAX0gDYMhDSAGIA56p0EDdiADaiAJcSIDaiwAAEEATgRAIAYpAwBCgIGChIiQoMCAf4N6p0EDdiEDCyADIAZqIA9CGYinIgc6AAAgBiADQQhrIAlxakEIaiAHOgAAIAYgA0F/c0EDdGogBCAMQX9zQQN0aikAADcDACABQQFrIgENAAsLIAAgCTYCBCAAIAY2AgAgACALIAprNgIIIAVFDQAgBUEDdEEPakF4cSIBIAVqQQlqIgBFDQAgBCABayIKQQRrKAIAIgRBeHEhASABQQRBCCAEQQNxIgQbIABqSQ0BIARBAEcgASAAQSdqS3ENAiAKELwFDwsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB+OjIAEE5QfifxAAQvxMAC/kLAg1/An4gACgCDCINIAFqIQECQAJAAkACQAJAAn8gASANSQ0FIAAoAgQiB0EBaiILQQN2IQUCQCAHIAVBB2wgB0EISRsiCEEBdiABSQRAIAhBAWoiBSABIAEgBUkbIgFBCEkNASABQf////8BTQRAQX8gAUEDdEEHbkEBa2d2IgFB/f///wNLDQggAUEBagwDCwwHCyALBEAgACgCACEEQQAhAQJAIAUgC0EHcUEAR2oiBUEBRwRAIAVBAXEgBUH+////A3EhBQNAIAEgBGoiCSkDACERIAkgEUJ/hUIHiEKBgoSIkKDAgAGDIBFC//79+/fv37//AIR8NwMAIAlBCGoiCSkDACERIAkgEUJ/hUIHiEKBgoSIkKDAgAGDIBFC//79+/fv37//AIR8NwMAIAFBEGohASAFQQJrIgUNAAtFDQELIAEgBGoiASkDACERIAEgEUJ/hUIHiEKBgoSIkKDAgAGDIBFC//79+/fv37//AIR8NwMACwJAIAtBCE8EQCAEIAtqIAQpAAA3AAAMAQsgC0UNACAEQQhqIAQgC/wKAAALQQAhAQNAAkAgBCABIgVqIgstAABBgAFHDQACQAJAIAMgBCABQQJ0a0EEayIOKAIAIgFLBEAgBCAFQX9zQQJ0aiEJA0AgBCACIAFB2ABsaigCVCIMIAdxIgoiBmopAABCgIGChIiQoMCAf4MiElAEQEEIIQEDQCABIAZqIQYgAUEIaiEBIAQgBiAHcSIGaikAAEKAgYKEiJCgwIB/gyISUA0ACwsgBCASeqdBA3YgBmogB3EiAWosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAKayAFIAprcyAHcUEISQ0CIAEgBGoiBi0AACAGIAxBGXYiBjoAACAEIAFBCGsgB3FqQQhqIAY6AAAgBCABQQJ0a0EEayEBQf8BRg0DIAkoAAAhBiAJIAEoAAA2AAAgASAGNgAAIAMgDigCACIBSw0ACwsgASADQciyyAAQhRMACyALIAxBGXYiAToAACAEIAVBCGsgB3FqQQhqIAE6AAAMAQsgC0H/AToAACAEIAVBCGsgB3FqQQhqQf8BOgAAIAEgCSgAADYAAAsgBUEBaiEBIAUgB0cNAAsLIAAgCCANazYCCAwCCyABQQRxQQRqCyIMQQJ0QQdqQXhxIgUgDEEIaiIEaiEBIAEgBUkNBCABQfj///8HSw0EIAEQkAEiAUUEQEG48MkAQQE6AAAACyABIAVqIQggBARAIAhB/wEgBPwLAAsgDEEBayEKIAAoAgAhBCANBEAgBCkDAEJ/hUKAgYKEiJCgwIB/gyERIAQhBSANIQkDQCARUARAA0AgDkEIaiEOIAVBCGoiBSkDAEKAgYKEiJCgwIB/gyIRQoCBgoSIkKDAgH9RDQALIBFCgIGChIiQoMCAf4UhEQsgBCAReqdBA3YgDmpBAnRrQQRrIg8oAgAiASADTw0DIAggCiACIAFB2ABsaigCVCIQcSIGaikAAEKAgYKEiJCgwIB/gyISUARAQQghAQNAIAEgBmohBiABQQhqIQEgCCAGIApxIgZqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgCCASeqdBA3YgBmogCnEiAWosAABBAE4EQCAIKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAIaiAQQRl2IgY6AAAgCCABQQhrIApxakEIaiAGOgAAIAggAUECdGtBBGsgDygAADYAACAJQQFrIgkNAAsLIAAgCjYCBCAAIAg2AgAgACAKIAxBA3ZBB2wgDEEJSRsgDWs2AgggB0UNACALQQJ0QQdqQXhxIgEgB2pBCWoiAEUNACAEIAFrIgJBBGsoAgAiA0F4cSEBIAFBBEEIIANBA3EiAxsgAGpJDQIgA0EARyABIABBJ2pLcQ0DIAIQvAUPCw8LIAEgA0HIssgAEIUTAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQfjoyABBOUGU6cgAEL8TAAv3CwINfwJ+IAAoAgwiDSABaiEBAkACQAJAAkACQAJ/IAEgDUkNBSAAKAIEIgdBAWoiC0EDdiEFAkAgByAFQQdsIAdBCEkbIghBAXYgAUkEQCAIQQFqIgUgASABIAVJGyIBQQhJDQEgAUH/////AU0EQEF/IAFBA3RBB25BAWtndiIBQf3///8DSw0IIAFBAWoMAwsMBwsgCwRAIAAoAgAhBEEAIQECQCAFIAtBB3FBAEdqIgVBAUcEQCAFQQFxIAVB/v///wNxIQUDQCABIARqIgkpAwAhESAJIBFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACAJQQhqIgkpAwAhESAJIBFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACABQRBqIQEgBUECayIFDQALRQ0BCyABIARqIgEpAwAhESABIBFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDAAsCQCALQQhPBEAgBCALaiAEKQAANwAADAELIAtFDQAgBEEIaiAEIAv8CgAAC0EAIQEDQAJAIAQgASIFaiILLQAAQYABRw0AAkACQCADIAQgAUECdGtBBGsiDigCACIBSwRAIAQgBUF/c0ECdGohCQNAIAQgAiABQQR0aigCDCIMIAdxIgoiBmopAABCgIGChIiQoMCAf4MiElAEQEEIIQEDQCABIAZqIQYgAUEIaiEBIAQgBiAHcSIGaikAAEKAgYKEiJCgwIB/gyISUA0ACwsgBCASeqdBA3YgBmogB3EiAWosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAKayAFIAprcyAHcUEISQ0CIAEgBGoiBi0AACAGIAxBGXYiBjoAACAEIAFBCGsgB3FqQQhqIAY6AAAgBCABQQJ0a0EEayEBQf8BRg0DIAkoAAAhBiAJIAEoAAA2AAAgASAGNgAAIAMgDigCACIBSw0ACwsgASADQciyyAAQhRMACyALIAxBGXYiAToAACAEIAVBCGsgB3FqQQhqIAE6AAAMAQsgC0H/AToAACAEIAVBCGsgB3FqQQhqQf8BOgAAIAEgCSgAADYAAAsgBUEBaiEBIAUgB0cNAAsLIAAgCCANazYCCAwCCyABQQRxQQRqCyIMQQJ0QQdqQXhxIgUgDEEIaiIEaiEBIAEgBUkNBCABQfj///8HSw0EIAEQkAEiAUUEQEG48MkAQQE6AAAACyABIAVqIQggBARAIAhB/wEgBPwLAAsgDEEBayEKIAAoAgAhBCANBEAgBCkDAEJ/hUKAgYKEiJCgwIB/gyERIAQhBSANIQkDQCARUARAA0AgDkEIaiEOIAVBCGoiBSkDAEKAgYKEiJCgwIB/gyIRQoCBgoSIkKDAgH9RDQALIBFCgIGChIiQoMCAf4UhEQsgBCAReqdBA3YgDmpBAnRrQQRrIg8oAgAiASADTw0DIAggCiACIAFBBHRqKAIMIhBxIgZqKQAAQoCBgoSIkKDAgH+DIhJQBEBBCCEBA0AgASAGaiEGIAFBCGohASAIIAYgCnEiBmopAABCgIGChIiQoMCAf4MiElANAAsLIBFCAX0gEYMhESAIIBJ6p0EDdiAGaiAKcSIBaiwAAEEATgRAIAgpAwBCgIGChIiQoMCAf4N6p0EDdiEBCyABIAhqIBBBGXYiBjoAACAIIAFBCGsgCnFqQQhqIAY6AAAgCCABQQJ0a0EEayAPKAAANgAAIAlBAWsiCQ0ACwsgACAKNgIEIAAgCDYCACAAIAogDEEDdkEHbCAMQQlJGyANazYCCCAHRQ0AIAtBAnRBB2pBeHEiASAHakEJaiIARQ0AIAQgAWsiAkEEaygCACIDQXhxIQEgAUEEQQggA0EDcSIDGyAAakkNAiADQQBHIAEgAEEnaktxDQMgAhC8BQ8LDwsgASADQciyyAAQhRMAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB+OjIAEE5QZTpyAAQvxMAC/kLAg1/An4gACgCDCINIAFqIQECQAJAAkACQAJAAn8gASANSQ0FIAAoAgQiB0EBaiILQQN2IQUCQCAHIAVBB2wgB0EISRsiCEEBdiABSQRAIAhBAWoiBSABIAEgBUkbIgFBCEkNASABQf////8BTQRAQX8gAUEDdEEHbkEBa2d2IgFB/f///wNLDQggAUEBagwDCwwHCyALBEAgACgCACEEQQAhAQJAIAUgC0EHcUEAR2oiBUEBRwRAIAVBAXEgBUH+////A3EhBQNAIAEgBGoiCSkDACERIAkgEUJ/hUIHiEKBgoSIkKDAgAGDIBFC//79+/fv37//AIR8NwMAIAlBCGoiCSkDACERIAkgEUJ/hUIHiEKBgoSIkKDAgAGDIBFC//79+/fv37//AIR8NwMAIAFBEGohASAFQQJrIgUNAAtFDQELIAEgBGoiASkDACERIAEgEUJ/hUIHiEKBgoSIkKDAgAGDIBFC//79+/fv37//AIR8NwMACwJAIAtBCE8EQCAEIAtqIAQpAAA3AAAMAQsgC0UNACAEQQhqIAQgC/wKAAALQQAhAQNAAkAgBCABIgVqIgstAABBgAFHDQACQAJAIAMgBCABQQJ0a0EEayIOKAIAIgFLBEAgBCAFQX9zQQJ0aiEJA0AgBCACIAFByABsaigCRCIMIAdxIgoiBmopAABCgIGChIiQoMCAf4MiElAEQEEIIQEDQCABIAZqIQYgAUEIaiEBIAQgBiAHcSIGaikAAEKAgYKEiJCgwIB/gyISUA0ACwsgBCASeqdBA3YgBmogB3EiAWosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAKayAFIAprcyAHcUEISQ0CIAEgBGoiBi0AACAGIAxBGXYiBjoAACAEIAFBCGsgB3FqQQhqIAY6AAAgBCABQQJ0a0EEayEBQf8BRg0DIAkoAAAhBiAJIAEoAAA2AAAgASAGNgAAIAMgDigCACIBSw0ACwsgASADQciyyAAQhRMACyALIAxBGXYiAToAACAEIAVBCGsgB3FqQQhqIAE6AAAMAQsgC0H/AToAACAEIAVBCGsgB3FqQQhqQf8BOgAAIAEgCSgAADYAAAsgBUEBaiEBIAUgB0cNAAsLIAAgCCANazYCCAwCCyABQQRxQQRqCyIMQQJ0QQdqQXhxIgUgDEEIaiIEaiEBIAEgBUkNBCABQfj///8HSw0EIAEQkAEiAUUEQEG48MkAQQE6AAAACyABIAVqIQggBARAIAhB/wEgBPwLAAsgDEEBayEKIAAoAgAhBCANBEAgBCkDAEJ/hUKAgYKEiJCgwIB/gyERIAQhBSANIQkDQCARUARAA0AgDkEIaiEOIAVBCGoiBSkDAEKAgYKEiJCgwIB/gyIRQoCBgoSIkKDAgH9RDQALIBFCgIGChIiQoMCAf4UhEQsgBCAReqdBA3YgDmpBAnRrQQRrIg8oAgAiASADTw0DIAggCiACIAFByABsaigCRCIQcSIGaikAAEKAgYKEiJCgwIB/gyISUARAQQghAQNAIAEgBmohBiABQQhqIQEgCCAGIApxIgZqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgCCASeqdBA3YgBmogCnEiAWosAABBAE4EQCAIKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAIaiAQQRl2IgY6AAAgCCABQQhrIApxakEIaiAGOgAAIAggAUECdGtBBGsgDygAADYAACAJQQFrIgkNAAsLIAAgCjYCBCAAIAg2AgAgACAKIAxBA3ZBB2wgDEEJSRsgDWs2AgggB0UNACALQQJ0QQdqQXhxIgEgB2pBCWoiAEUNACAEIAFrIgJBBGsoAgAiA0F4cSEBIAFBBEEIIANBA3EiAxsgAGpJDQIgA0EARyABIABBJ2pLcQ0DIAIQvAUPCw8LIAEgA0HIssgAEIUTAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQfjoyABBOUGU6cgAEL8TAAv5CwINfwJ+IAAoAgwiDSABaiEBAkACQAJAAkACQAJ/IAEgDUkNBSAAKAIEIgdBAWoiC0EDdiEFAkAgByAFQQdsIAdBCEkbIghBAXYgAUkEQCAIQQFqIgUgASABIAVJGyIBQQhJDQEgAUH/////AU0EQEF/IAFBA3RBB25BAWtndiIBQf3///8DSw0IIAFBAWoMAwsMBwsgCwRAIAAoAgAhBEEAIQECQCAFIAtBB3FBAEdqIgVBAUcEQCAFQQFxIAVB/v///wNxIQUDQCABIARqIgkpAwAhESAJIBFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACAJQQhqIgkpAwAhESAJIBFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACABQRBqIQEgBUECayIFDQALRQ0BCyABIARqIgEpAwAhESABIBFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDAAsCQCALQQhPBEAgBCALaiAEKQAANwAADAELIAtFDQAgBEEIaiAEIAv8CgAAC0EAIQEDQAJAIAQgASIFaiILLQAAQYABRw0AAkACQCADIAQgAUECdGtBBGsiDigCACIBSwRAIAQgBUF/c0ECdGohCQNAIAQgAiABQegAbGooAlgiDCAHcSIKIgZqKQAAQoCBgoSIkKDAgH+DIhJQBEBBCCEBA0AgASAGaiEGIAFBCGohASAEIAYgB3EiBmopAABCgIGChIiQoMCAf4MiElANAAsLIAQgEnqnQQN2IAZqIAdxIgFqLAAAQQBOBEAgBCkDAEKAgYKEiJCgwIB/g3qnQQN2IQELIAEgCmsgBSAKa3MgB3FBCEkNAiABIARqIgYtAAAgBiAMQRl2IgY6AAAgBCABQQhrIAdxakEIaiAGOgAAIAQgAUECdGtBBGshAUH/AUYNAyAJKAAAIQYgCSABKAAANgAAIAEgBjYAACADIA4oAgAiAUsNAAsLIAEgA0HIssgAEIUTAAsgCyAMQRl2IgE6AAAgBCAFQQhrIAdxakEIaiABOgAADAELIAtB/wE6AAAgBCAFQQhrIAdxakEIakH/AToAACABIAkoAAA2AAALIAVBAWohASAFIAdHDQALCyAAIAggDWs2AggMAgsgAUEEcUEEagsiDEECdEEHakF4cSIFIAxBCGoiBGohASABIAVJDQQgAUH4////B0sNBCABEJABIgFFBEBBuPDJAEEBOgAAAAsgASAFaiEIIAQEQCAIQf8BIAT8CwALIAxBAWshCiAAKAIAIQQgDQRAIAQpAwBCf4VCgIGChIiQoMCAf4MhESAEIQUgDSEJA0AgEVAEQANAIA5BCGohDiAFQQhqIgUpAwBCgIGChIiQoMCAf4MiEUKAgYKEiJCgwIB/UQ0ACyARQoCBgoSIkKDAgH+FIRELIAQgEXqnQQN2IA5qQQJ0a0EEayIPKAIAIgEgA08NAyAIIAogAiABQegAbGooAlgiEHEiBmopAABCgIGChIiQoMCAf4MiElAEQEEIIQEDQCABIAZqIQYgAUEIaiEBIAggBiAKcSIGaikAAEKAgYKEiJCgwIB/gyISUA0ACwsgEUIBfSARgyERIAggEnqnQQN2IAZqIApxIgFqLAAAQQBOBEAgCCkDAEKAgYKEiJCgwIB/g3qnQQN2IQELIAEgCGogEEEZdiIGOgAAIAggAUEIayAKcWpBCGogBjoAACAIIAFBAnRrQQRrIA8oAAA2AAAgCUEBayIJDQALCyAAIAo2AgQgACAINgIAIAAgCiAMQQN2QQdsIAxBCUkbIA1rNgIIIAdFDQAgC0ECdEEHakF4cSIBIAdqQQlqIgBFDQAgBCABayICQQRrKAIAIgNBeHEhASABQQRBCCADQQNxIgMbIABqSQ0CIANBAEcgASAAQSdqS3ENAyACELwFDwsPCyABIANByLLIABCFEwALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0H46MgAQTlBlOnIABC/EwAL+wsCDn8CfgJAAkACQAJAAkACQCAAKAIMIg1BAWoiAwRAIAAoAgQiB0EBaiILQQN2IQUCQCAHIAVBB2wgB0EISRsiCEEBdiADSQRAIAhBAWoiBSADIAMgBUkbIgNBCEkNASADQf////8BTQRAQX8gA0EDdEEHbkEBa2d2IgNB/f///wNLDQkgA0EBaiEMDAQLDAgLIAsEQCAAKAIAIQRBACEDAkAgBSALQQdxQQBHaiIFQQFHBEAgBUEBcSAFQf7///8DcSEFA0AgAyAEaiIJKQMAIREgCSARQn+FQgeIQoGChIiQoMCAAYMgEUL//v379+/fv/8AhHw3AwAgCUEIaiIJKQMAIREgCSARQn+FQgeIQoGChIiQoMCAAYMgEUL//v379+/fv/8AhHw3AwAgA0EQaiEDIAVBAmsiBQ0AC0UNAQsgAyAEaiIDKQMAIREgAyARQn+FQgeIQoGChIiQoMCAAYMgEUL//v379+/fv/8AhHw3AwALAkAgC0EITwRAIAQgC2ogBCkAADcAAAwBCyALRQ0AIARBCGogBCAL/AoAAAtBACEDA0ACQCAEIAMiBWoiCy0AAEGAAUcNAAJAAkAgBCADQQJ0a0EEayIOKAIAIgMgAkkEQCAEIAVBf3NBAnRqIQkDQCAEIAEgA0EGdGooAjAiDCAHcSIKIgZqKQAAQoCBgoSIkKDAgH+DIhJQBEBBCCEDA0AgAyAGaiEGIANBCGohAyAEIAYgB3EiBmopAABCgIGChIiQoMCAf4MiElANAAsLIAQgEnqnQQN2IAZqIAdxIgNqLAAAQQBOBEAgBCkDAEKAgYKEiJCgwIB/g3qnQQN2IQMLIAMgCmsgBSAKa3MgB3FBCEkNAiADIARqIgYtAAAgBiAMQRl2IgY6AAAgBCADQQhrIAdxakEIaiAGOgAAIAQgA0ECdGtBBGshA0H/AUYNAyAJKAAAIQYgCSADKAAANgAAIAMgBjYAACAOKAIAIgMgAkkNAAsLIAMgAkHIssgAEIUTAAsgCyAMQRl2IgM6AAAgBCAFQQhrIAdxakEIaiADOgAADAELIAtB/wE6AAAgBCAFQQhrIAdxakEIakH/AToAACADIAkoAAA2AAALIAVBAWohAyAFIAdHDQALCyAAIAggDWs2AggMAwsgA0EEcUEEaiEMDAELDAULIAxBAnRBB2pBeHEiBSAMQQhqIgRqIQMgAyAFSQ0EIANB+P///wdLDQQgAxCQASIDRQRAQbjwyQBBAToAAAALIAMgBWohCCAEBEAgCEH/ASAE/AsACyAMQQFrIQogACgCACEEIA0EQCAEKQMAQn+FQoCBgoSIkKDAgH+DIREgBCEFIA0hCQNAIBFQBEADQCAOQQhqIQ4gBUEIaiIFKQMAQoCBgoSIkKDAgH+DIhFCgIGChIiQoMCAf1ENAAsgEUKAgYKEiJCgwIB/hSERCyAEIBF6p0EDdiAOakECdGtBBGsiDygCACIDIAJPDQMgCCAKIAEgA0EGdGooAjAiEHEiBmopAABCgIGChIiQoMCAf4MiElAEQEEIIQMDQCADIAZqIQYgA0EIaiEDIAggBiAKcSIGaikAAEKAgYKEiJCgwIB/gyISUA0ACwsgEUIBfSARgyERIAggEnqnQQN2IAZqIApxIgNqLAAAQQBOBEAgCCkDAEKAgYKEiJCgwIB/g3qnQQN2IQMLIAMgCGogEEEZdiIGOgAAIAggA0EIayAKcWpBCGogBjoAACAIIANBAnRrQQRrIA8oAAA2AAAgCUEBayIJDQALCyAAIAo2AgQgACAINgIAIAAgCiAMQQN2QQdsIAxBCUkbIA1rNgIIIAdFDQAgC0ECdEEHakF4cSIBIAdqQQlqIgBFDQAgBCABayICQQRrKAIAIgNBeHEhASABQQRBCCADQQNxIgMbIABqSQ0CIANBAEcgASAAQSdqS3ENAyACELwFDwsPCyADIAJByLLIABCFEwALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0H46MgAQTlBlOnIABC/EwAL4AsCDX8CfgJAAkACQAJAAn8CQCAAKAIMIgpBAWoiBARAIAAoAgQiBUEBaiIBQQN2IgNBB2whCSAFIAkgBUEISRsiAkEBdiAESQRAIAJBAWoiASAEIAEgBEsbIgFBD0kNAiABQf////8BTQRAQX8gAUEDdEEHbkEBa2d2IgFB/v///wFLDQggAUEBagwECwwHCyAAIAEEfyAAKAIAIQICQCADIAFBB3FBAEdqIgBBAUcEQCAAQQFxIABB/v///wNxIQMDQCACIAhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDACAAQQhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDACAIQRBqIQggA0ECayIDDQALRQ0BCyACIAhqIgApAwAhDiAAIA5Cf4VCB4hCgYKEiJCgwIABgyAOQv/+/fv379+//wCEfDcDAAsCQCABQQhPBEAgASACaiACKQAANwAADAELIAFFDQAgAkEIaiACIAH8CgAAC0EAIQEDQAJAIAIgASIAaiIILQAAQYABRw0AIAIgAUEDdGtBCGshCyACIAFBf3NBA3RqIQYDQCACIAsoAgBB3cvdnnlsQQ93IgwgBXEiByIBaikAAEKAgYKEiJCgwIB/gyIOUARAQQghAwNAIAEgA2ohASADQQhqIQMgAiABIAVxIgFqKQAAQoCBgoSIkKDAgH+DIg5QDQALCyACIA56p0EDdiABaiAFcSIBaiwAAEEATgRAIAIpAwBCgIGChIiQoMCAf4N6p0EDdiEBCyAMrSEOIAEgB2sgACAHa3MgBXFBCE8EQCABIAJqIgMtAAAgAyAOQhmIpyIDOgAAIAIgAUEIayAFcWpBCGogAzoAACACIAFBf3NBA3RqIQFB/wFGBEAgCEH/AToAACACIAUgAEEIa3FqQQhqQf8BOgAAIAEgBikAADcAAAwDCyAGKQAAIQ4gBiABKQAANwAAIAEgDjcAAAwBCwsgCCAOQhmIpyIBOgAAIAIgBSAAQQhrcWpBCGogAToAAAsgAEEBaiEBIAAgBUcNAAsgBSAJIAVBCEkbBUEACyAKazYCCAwDCwwFC0EEIAFBCHFBCGogAUEESRsLIgFBCGoiBCABQQN0IgMgBGoiAksNAyACQfj///8HSw0DIAIQkAEiAkUEQEG48MkAQQE6AAAACyACIANqIQYgBARAIAZB/wEgBPwLAAsgAUEBayIJIAFBA3ZBB2wgAUEJSRshCyAAKAIAIQQCQCAKRQRAQQAhCgwBCyAEKQMAQn+FQoCBgoSIkKDAgH+DIQ4gCiEBIAQhAgNAIA5QBEADQCAIQQhqIQggAkEIaiICKQMAQoCBgoSIkKDAgH+DIg5CgIGChIiQoMCAf1ENAAsgDkKAgYKEiJCgwIB/hSEOCyAGIAkgBCAOeqdBA3YgCGoiDEEDdGtBCGsoAgBB3cvdnnlsQQ93Ig1xIgNqKQAAQoCBgoSIkKDAgH+DIg9QBEBBCCEHA0AgAyAHaiEDIAdBCGohByAGIAMgCXEiA2opAABCgIGChIiQoMCAf4MiD1ANAAsLIA5CAX0gDoMhDiAGIA96p0EDdiADaiAJcSIDaiwAAEEATgRAIAYpAwBCgIGChIiQoMCAf4N6p0EDdiEDCyADIAZqIA1BGXYiBzoAACAGIANBCGsgCXFqQQhqIAc6AAAgBiADQX9zQQN0aiAEIAxBf3NBA3RqKQAANwMAIAFBAWsiAQ0ACwsgACAJNgIEIAAgBjYCACAAIAsgCms2AgggBUUNACAFQQN0QQ9qQXhxIgEgBWpBCWoiAEUNACAEIAFrIgpBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgAGpJDQEgBEEARyABIABBJ2pLcQ0CIAoQvAUPCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0H46MgAQTlB+J/EABC/EwAL/QsCDn8CfgJAAkACQAJAAkACQCAAKAIMIg1BAWoiAwRAIAAoAgQiB0EBaiILQQN2IQUCQCAHIAVBB2wgB0EISRsiCEEBdiADSQRAIAhBAWoiBSADIAMgBUkbIgNBCEkNASADQf////8BTQRAQX8gA0EDdEEHbkEBa2d2IgNB/f///wNLDQkgA0EBaiEMDAQLDAgLIAsEQCAAKAIAIQRBACEDAkAgBSALQQdxQQBHaiIFQQFHBEAgBUEBcSAFQf7///8DcSEFA0AgAyAEaiIJKQMAIREgCSARQn+FQgeIQoGChIiQoMCAAYMgEUL//v379+/fv/8AhHw3AwAgCUEIaiIJKQMAIREgCSARQn+FQgeIQoGChIiQoMCAAYMgEUL//v379+/fv/8AhHw3AwAgA0EQaiEDIAVBAmsiBQ0AC0UNAQsgAyAEaiIDKQMAIREgAyARQn+FQgeIQoGChIiQoMCAAYMgEUL//v379+/fv/8AhHw3AwALAkAgC0EITwRAIAQgC2ogBCkAADcAAAwBCyALRQ0AIARBCGogBCAL/AoAAAtBACEDA0ACQCAEIAMiBWoiCy0AAEGAAUcNAAJAAkAgBCADQQJ0a0EEayIOKAIAIgMgAkkEQCAEIAVBf3NBAnRqIQkDQCAEIAEgA0HQAGxqKAJAIgwgB3EiCiIGaikAAEKAgYKEiJCgwIB/gyISUARAQQghAwNAIAMgBmohBiADQQhqIQMgBCAGIAdxIgZqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyAEIBJ6p0EDdiAGaiAHcSIDaiwAAEEATgRAIAQpAwBCgIGChIiQoMCAf4N6p0EDdiEDCyADIAprIAUgCmtzIAdxQQhJDQIgAyAEaiIGLQAAIAYgDEEZdiIGOgAAIAQgA0EIayAHcWpBCGogBjoAACAEIANBAnRrQQRrIQNB/wFGDQMgCSgAACEGIAkgAygAADYAACADIAY2AAAgDigCACIDIAJJDQALCyADIAJByLLIABCFEwALIAsgDEEZdiIDOgAAIAQgBUEIayAHcWpBCGogAzoAAAwBCyALQf8BOgAAIAQgBUEIayAHcWpBCGpB/wE6AAAgAyAJKAAANgAACyAFQQFqIQMgBSAHRw0ACwsgACAIIA1rNgIIDAMLIANBBHFBBGohDAwBCwwFCyAMQQJ0QQdqQXhxIgUgDEEIaiIEaiEDIAMgBUkNBCADQfj///8HSw0EIAMQkAEiA0UEQEG48MkAQQE6AAAACyADIAVqIQggBARAIAhB/wEgBPwLAAsgDEEBayEKIAAoAgAhBCANBEAgBCkDAEJ/hUKAgYKEiJCgwIB/gyERIAQhBSANIQkDQCARUARAA0AgDkEIaiEOIAVBCGoiBSkDAEKAgYKEiJCgwIB/gyIRQoCBgoSIkKDAgH9RDQALIBFCgIGChIiQoMCAf4UhEQsgBCAReqdBA3YgDmpBAnRrQQRrIg8oAgAiAyACTw0DIAggCiABIANB0ABsaigCQCIQcSIGaikAAEKAgYKEiJCgwIB/gyISUARAQQghAwNAIAMgBmohBiADQQhqIQMgCCAGIApxIgZqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgCCASeqdBA3YgBmogCnEiA2osAABBAE4EQCAIKQMAQoCBgoSIkKDAgH+DeqdBA3YhAwsgAyAIaiAQQRl2IgY6AAAgCCADQQhrIApxakEIaiAGOgAAIAggA0ECdGtBBGsgDygAADYAACAJQQFrIgkNAAsLIAAgCjYCBCAAIAg2AgAgACAKIAxBA3ZBB2wgDEEJSRsgDWs2AgggB0UNACALQQJ0QQdqQXhxIgEgB2pBCWoiAEUNACAEIAFrIgJBBGsoAgAiA0F4cSEBIAFBBEEIIANBA3EiAxsgAGpJDQIgA0EARyABIABBJ2pLcQ0DIAIQvAUPCw8LIAMgAkHIssgAEIUTAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQfjoyABBOUGU6cgAEL8TAAv2CwELfyMAQaACayIDJAAgAigCZCEGIAIoAmAhCSACKAJoIQUgAyACQeAA/AoAAAJAAkACQAJAAkACQAJAAkBBCBCQASIEBEAgBEL05v2Sl8zbtSg3AAAgA0EINgKYASADIAQ2ApQBIANBCDYCkAEgASADQZABaiIKEPwNQRsQkAEiBARAIARBtNDFACgAADYAFyAEQa3QxQApAAA3ABAgBEGl0MUAKQAANwAIIARBndDFACkAADcAACADQRs2ApgBIAMgBDYClAEgA0EbNgKQASABIAoQ/A0gBUHgAGwiCyAGaiEIIAYhBCAFRQ0CIAVBAWshDSAKQQRyIQpBACEEA0ACQAJAAkAgBiAHaiIFKAIAIgxBf0cEQCAKIAVBBGpB3AD8CgAAIAMgDDYCkAEgA0HwAWogASADQZABahDJASADKALwASIMQX5HDQIgBCANSQ0BDAMLIAVB4ABqIQQMBgtBARCQASIFRQ0MIAVBLDoAACADQQE2AvgBIAMgBTYC9AEgA0EBNgLwASABIANB8AFqEPwNDAELIAMgAygCnAI2AogBIAMgAykClAI3A4ABIAMgAykCjAI3A3ggAyADKQKEAjcDcCADIAMpAvwBNwNoIAMgAykC9AE3A2ACQCAFQeAAaiAIRwRAIAVBtAFqIQQgCyAHa0HgAGtB4ABuIQcDQCAEQdQAaxCtASAEQQRrKAIAIgFBAEoEQCAEKAIAIgVBBGsoAgAiCEF4cSECIAJBBEEIIAhBA3EiCBsgAWpJDQ0gCEEARyACIAFBJ2pLcQ0OIAUQvAULIARB4ABqIQQgB0EBayIHDQALCyAJBEAgBkEEaygCACICQXhxIQEgASAJQeAAbCIEQQRBCCACQQNxIgIbckkNCyACQQBHIAEgBEEnaktxDQwgBhC8BQsgACAMNgIAIAAgAykDYDcCBCAAIAMpA2g3AgwgACADKQNwNwIUIAAgAykDeDcCHCAAIAMpA4ABNwIkIAAgAygCiAE2AiwgAxCtASADKAJQIgBBAEwNByADKAJUIgJBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgAGpJDQogBEEARyABIABBJ2pLcQ0AIAIQvAUMBwsMCgsgBEEBaiEEIAsgB0HgAGoiB0cNAAsMAwtBARCnFAALQQEQpxQACyAIIARrQeAAbiEHIAQgCEYNAANAIAQQrQEgBEHQAGooAgAiBUEASgRAIARB1ABqKAIAIgpBBGsoAgAiC0F4cSEIIAhBBEEIIAtBA3EiCxsgBWpJDQYgC0EARyAIIAVBJ2pLcQ0HIAoQvAULIARB4ABqIQQgB0EBayIHDQALCyAJBEAgBkEEaygCACIHQXhxIQQgBCAJQeAAbCIJQQRBCCAHQQNxIgcbckkNBCAHQQBHIAQgCUEnaktxDQUgBhC8BQtBAhCQASIERQRAQQEQpxQACyAEQanSADsAACADQQI2ApgBIAMgBDYClAEgA0ECNgKQASABIANBkAFqIgQQ/A1BAhCQASIGRQ0BIAZBrMAAOwAAIANBAjYCmAEgAyAGNgKUASADQQI2ApABIAEgBBD8DUELEJABIgZFDQIgBkGP0MUAKAAANgAHIAZBiNDFACkAADcAACADQQs2ApgBIAMgBjYClAEgA0ELNgKQASABIAQQ/A0gBCABIAIQyQECQCADKAKQASICQX5GBEBBARCQASICDQEMBwsgACADKAK8ATYCLCAAIAMpArQBNwIkIAAgAykCrAE3AhwgACADKQKkATcCFCAAIAMpApwBNwIMIAAgAykClAE3AgQgACACNgIADAELIAJBKToAACADQQE2ApgBIAMgAjYClAEgA0EBNgKQASABIANBkAFqIgQQ/A1BARCQASICRQ0FIAJBKToAACADQQE2ApgBIAMgAjYClAEgA0EBNgKQASABIAQQ/A0gAEF+NgIACyADQaACaiQADwtBARCnFAALQQEQpxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBARCnFAALmAwCCX8HfiMAQeACayIEJAACQAJAAn8CQCACKAIEIgUgAigCDCIHRgRAIAUhAwwBCyACIAVBsAFqIgM2AgQgBSgCcCIIQX5GDQAgBSgCrAEhAyAEQfABaiIHIAVB8AD8CgAAIAQgBSkCpAE3A3ggBCAFKQKcATcDcCAEIAUpApQBNwNoIAQgBSkCjAE3A2AgBCAFKQKEATcDWCAEIAUpAnw3A1AgBCAFKQJ0NwNIAkBBwAUQkAEiBgRAIAYgB0HwAPwKAAAgBkGvAWogA0EYdjoAACAGIANBCHY7AK0BIAYgCDYCcEEBIQggBkEBOgCsASAGIAQpA0g3AnQgBiAEKQNQNwJ8IAYgBCkDWDcChAEgBiAEKQNgNwKMASAGIAQpA2g3ApQBIAYgBCkDcDcCnAEgBiAEKQN4NwKkASAEQQE2AgwgBCAGNgIIIARBBDYCBAJAIAIoAgQiAyACKAIMIglHBEAgAiADQbABaiIFNgIEIAcgA0HwAPwKAAAgBCADKQJ0NwO4ASAEIAMpAnw3A8ABIAQgAykChAE3A8gBIAQgAykCjAE3A9ABIAQgAykClAE3A9gBIAQgAykCnAE3A+ABIAQgAykCpAE3A+gBIAMoAnAiC0F+Rg0BQd0CIQpBASEHAkADQCADKAKsASAEQcgAaiAEQfABakHwAPwKAAAgBCAEKQPoATcDQCAEIAQpA+ABNwM4IAQgBCkD2AE3AzAgBCAEKQPQATcDKCAEIAQpA8gBNwMgIAQgBCkDwAE3AxggBCAEKQO4ATcDEEEIdiEDIAQoAgQgB0YEQCAEQQRqIAdBAUEIQbABELMRIAQoAgghBgsgBiAKaiIFQa0BayAEQcgAakHwAPwKAAAgBUE9ayALNgIAIAQpA0AhDCAEKQM4IQ0gBCkDMCEOIAQpAyghDyAEKQMgIRAgBCkDGCERIAQpAxAhEiAFQQJqIANBEHY6AAAgBSADOwAAIAVBOWsiAyASNwIAIAMgETcCCCADIBA3AhAgAyAPNwIYIAMgDjcCICADIA03AiggAyAMNwIwIAVBAWtBAToAACAEIAdBAWoiCDYCDCACKAIEIgMgAigCDCIJRg0BIAIgA0GwAWoiBTYCBCAEQfABaiADQfAA/AoAACAEIAMpAnQ3A7gBIAQgAykCfDcDwAEgBCADKQKEATcDyAEgBCADKQKMATcD0AEgBCADKQKUATcD2AEgBCADKQKcATcD4AEgBCADKQKkATcD6AEgCkGwAWohCiAIIQcgAygCcCILQX5HDQALDAILIAdBAWohCAsgAyEFCyAJIAVrQbABbiEDIAUgCUcEQANAIAUQlwQgBUGwAWohBSADQQFrIgMNAAsLIAIoAggiBQRAIAIoAgAiB0EEaygCACIGQXhxIQMgAyAFQbABbCIFQQRBCCAGQQNxIgYbckkNBSAGQQBHIAMgBUEnaktxDQYgBxC8BQsgAkEEaygCACIDQQNxIQUgA0F4cUEUQRggBRtJDQQgBUEARyADQThPcQ0BIAIQvAUgBCgCCCEGIAQoAgQMAwtBCBCnFAALDAMLIAcgA2tBsAFuIQUgAyAHRwRAA0AgAxCXBCADQbABaiEDIAVBAWsiBQ0ACwsgAigCCCIFBEAgAigCACIHQQRrKAIAIghBeHEhAyADIAVBsAFsIgVBBEEIIAhBA3EiCBtySQ0CIAhBAEcgAyAFQSdqS3ENAyAHELwFCyACQQRrKAIAIgNBA3EhBSADQXhxQRRBGCAFG0kNASAFQQBHIANBOE9xDQIgAhC8BUEIIQZBACEIQQALIQcCQCABKALsASIJQX9GDQAgASgC8AEhAiABKAL0ASIFBEAgAiEDA0AgAxCXBCADQbABaiEDIAVBAWsiBQ0ACwsgCUUNACACQQRrKAIAIgVBeHEhAyADIAlBsAFsIglBBEEIIAVBA3EiBRtySQ0BIAVBAEcgAyAJQSdqS3ENAiACELwFCyABIAg2AvQBIAEgBjYC8AEgASAHNgLsASAAIAFBuAL8CgAAIARB4AJqJAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAvzDAILfwJ+IwBBwAJrIgIkAAJAAkAgAAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEOIAEoAgAiCEENayAIQQxNG0EFaw4DAQACAAsgACABKQMYNwMgIAAgASkDEDcDGCAAIAEpAwg3AxAgACABKQMANwMIQQAMDQsgASgCDCIGQZPJpBJPDQEgASgCCCEIIAEoAgQhCgJAIAZFBEBBACEGQQghBAwBCyAGQThsEJABIgRFDQMgBkEFdCIFQSBrQQV2QQFqIQcgBCEBIAghAwNAIAIgAykDGDcDUCACIAMpAxA3A0ggAiADKQMINwNAIAIgAykDADcDOCACQYABaiACQThqENADIAEgAikDsAE3AzAgASACKQOoATcDKCABIAIpA6ABNwMgIAEgAikDmAE3AxggASACKQOQATcDECABIAIpA4gBNwMIIAEgAikDgAE3AwAgAUE4aiEBIANBIGohAyAFQSBrIgUNAAsLIAoEQCAIQQRrKAIAIgFBeHEhBSAFQQRBCCABQQNxIgMbIApBBXQiAXJJDQQgA0EARyAFIAFBJ2pLcQ0FIAgQvAULIAAgBzYCDCAAIAQ2AgggACAGNgIEQQIMDAsgASgCDCEDIAEoAgghCCABKAIEIQtBwPDJAAJ+QdDwyQAtAAAEQEHI8MkAKQMAIQ5BwPDJACkDAAwBCyACQYABahC7EUHQ8MkAQQE6AABByPDJACACKQOIASIONwMAIAIpA4ABCyINQgF8NwMAIANFDQYgA0EITwR/QX8gA0EDdEEHbkEBa2d2QQFqBSADQQRxQQRqCyIBQQJ0QQdqQfj///8HcSIHIAFBCGoiBWoQkAEiBEUNBCAEIAdqIQQgBQRAIARB/wEgBfwLAAsgA0HyuJwOTw0AIANByABsEJABIgdFDQVBACEFIAJBADYCMCACIAQ2AiQgAkEANgIgIAIgBzYCHCACIA43AxAgAiANNwMIIAIgAUEBayIENgIoIAIgBCABQQN2QQdsIAFBCUkbIgQ2AiwgAiADNgIYIAQgAyIBSQRAIAJBJGogASAHQQAQyQMgAigCICEFIAIoAhghAQsgAyABIAVrTQ0JIANB8bicDiACKAIsIAIoAjBqIgcgB0HxuJwOTxsiBiAFa08EQCACKAIcIQQMCAsgAigCHCEEIAUgB0sNByACQYABaiABIAQgBkEIQcgAEKURIAIoAoABQQFGDQcMCAsQnhUAC0EIEKcUAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQbjwyQBBAToAAAALQQgQpxQACyACQoCAgICAATcDGCACIA43AxAgAiANNwMIIAJBADYCICACQZCpyQApAwA3AiQgAkGYqckAKQMANwIsDAMLIAJBgAFqIAEgBCADIAVqIgZBCEHIABClESACKAKAAUEBRw0AIAIoAogBGiACKAKEARCnFAALIAIoAoQBIQEgAiAGNgIYIAIgATYCHAsgCCADQTBsaiEMIAJBiAJqIQkgAkHIAGohBiACQZABaiEKIAghAQNAIAIgASkDCDcDiAIgAiABKQMANwOAAiACIAFBKGoiBSkDADcDqAIgAiABQSBqIgcpAwA3A6ACIAIgAUEYaiIEKQMANwOYAiACIAFBEGoiAykDADcDkAIgAiAFKQMANwPgASACIAcpAwA3A9gBIAIgBCkDADcD0AEgAiADKQMANwPIASAKIAJByAFqIgQQ0AMgAiACKAKIAjYCiAEgAiACKQOAAjcDgAEgAkE4aiACQYABaiIDQcgA/AoAACACQYACaiACQQhqIAMgBhCPBSACIAkpAzA3A/gBIAIgCSkDKDcD8AEgAiAJKQMgNwPoASACIAkpAxg3A+ABIAIgCSkDEDcD2AEgAiAJKQMINwPQASACIAkpAwAiDTcDyAEgDadBf0cEQCAEEPAFCyAMIAFBMGoiAUcNAAsLIAsEQCAIQQRrKAIAIgFBeHEhBCAEQQRBCCABQQNxIgMbIAtBMGwiAXJJDQIgA0EARyAEIAFBJ2pLcQ0DIAgQvAULIAAgAikDMDcDMCAAIAIpAyg3AyggACACKQMgNwMgIAAgAikDGDcDGCAAIAIpAxA3AxAgACACKQMINwMIQQELNgIAIAJBwAJqJAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAumDAEMfyMAQdAAayIDJABBASECAkAgASgCAEEBRgRAIAEoAgQiBiABKAIITw0BIAEgBkEBajYCBAsgASgCjAEiAiABKAKIASIHRgRAIAEoAiAhCSABKAIsIQgLIAEoAhQhBgJAIAEtAJABQQJHBEAgBiEEDAELIAYhBCABLQCRAUUNACABKAIMIAZGBEAgAUEMahCaEgsgASgCECAGQRRsaiICIAc2AgggAkEANgIEIAJBADoAACABIAZBAWoiBDYCFCABKAKMASECCyACIAdGBEAgASgCLCABKAIgaiEKCyABKAJ4IQwgASgCXCENAkACfwJAAkACQCABKAIAQQFGBEAgASgCBCIFIAEoAggiAkkNAUEBIQUMBQsgAyABKAKIATYCOCADIAEpAoABNwMwDAELIAEgBUEBaiILNgIEIAMgASgCiAE2AjggAyABKQKAATcDMCACIAtNDQEgASAFQQJqNgIECyABQYABaiECIAEgAS0AkAEiC0EBRzoAkAEgAyACKAIINgJIIAMgAikCADcDQCABKAI4IQIgASgCUCIFIAEoAkhGBEAgAUHIAGoQlhILIAEgBUEBajYCUCABKAJMIAVBA3RqIgUgAjYCBCAFIAI2AgAgA0EoaiABELIFIAMoAiggAygCLCIBIAMoAkg2AogBIAEgAykDQDcCgAEgASALOgCQASABQTBqEIYKQQFHDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIFTw0CIAEgAkEBaiILNgIEIAUgC00NASABIAJBAmo2AgQLIAFBADoAkQEgA0EgaiABEJQKIAMoAiAgAygCJCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgVFBEAgA0EQaiABEJQKIAMoAhQhASADKAIQIQIMAQsgAUEAOgCRASADQRhqIAEQlAogAygCGCECIAMoAhwiASAFOgCRAQsgAkEBcUUNAAsLIANBCGogARC7ASADKAIMIQEgAygCCAwBC0EBCyIFQQFHDQAgASADKAI4NgKIASABIAMpAzA3AoABIAQgASgCFEsNACABIAQ2AhQLQQEhAiABLQCQASEEAkACQAJAAkACQAJAAkAgBUEBRgRAIARB/wFxQQFGDQggAS0AkQFFDQMgASgCjAEiAiAHRw0BIAogASgCICICIAEoAiwiBGoiB0kgByAKa0EBRnENAyACIAlPBEAgASAJNgIgIAkhAgsgBCAISQ0CIAEgCDYCLAwCCyAEQf8BcUEBRgR/IAEtAJEBRQ0HAkAgByABKAKMASICRgRAIAogASgCLCICIAEoAiAiBGoiB0kgByAKa0EBRnENCSAEIAlPBEAgASAJNgIgCyACIAhJDQEgASAINgIsIAghAgwBCyACIAdPDQggASAHNgKMAUEAIQIgAUEANgIsIAFBADYCIAsgASgCJCACRgRAIAFBJGoQoxILIAEoAiggAmpBMjoAACABIAJB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AkEBaiIMQQhBwAAQpREgCigCCEEBRg0CIAooAgwhCyABIAw2AhAgASALNgIUCyABIAJBAWo2AhggASgCFCACQQZ0aiIBIAMpAwA3AwAgASADKQMINwMIIAEgAykDEDcDECABIAMpAxg3AxggASADKQMgNwMgIAEgAykDKDcDKCABIBA2AjwgASAONgI4IAEgETYCNCABIBM2AjAgAEF/NgIYIAAgAjYCAAsgCkHQAGokAA8LIAooAgwgCigCECEaEKcUAAuHDQEFfyMAQTBrIgIkAAJ/AkACQAJAAkACQAJAAkACQAJAAkBBBSAAKAIQIgRBgICAgHhzIARBAE4bQQFrDgUBAgMEBQALIAEoAgBBgJrJAEEEIAEoAgQoAgwRAAAMCQsgAiAANgIUIAIgAkEUaq1CgICAgMAZhDcDICABKAIAIAEoAgRBqI7CACACQSBqELEJDAgLIAIgADYCFCACIAJBFGqtQoCAgICgHoQ3AyAgASgCACABKAIEQZyOwgAgAkEgahCxCQwHCyACIAA2AhQgAiACQRRqrUKAgICA8BmENwMgIAEoAgAgASgCBEGyjsIAIAJBIGoQsQkMBgsgASgCAEHN28gAQQYgASgCBCgCDBEAAA0EIAAoAgghAyAAKAIEIQVBASEEIAEoAgBBorLIAEEBIAEoAgQoAgwRAAAhACADDQEgACEEDAILIAEoAgBB09vIAEEHIAEoAgQoAgwRAABFDQIMAwsCQCAADQAgAS0ACkGAAXEEQCABKAIAQaCyyABBASABKAIEKAIMEQAADQEgAkEBOgAMIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgBSACQSBqENMDDQEgAigCIEGkssgAQQIgAigCJCgCDBEAACEEDAELIAUgARDTAyEECyADQQFGDQAgBUEwaiEAIANBMGxBMGshAwNAAn9BASAEQQFxDQAaIAEtAApBgAFxBEAgAkEBOgAMIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiBBASAAIAJBIGoQ0wMNARogAigCIEGkssgAQQIgAigCJCgCDBEAAAwBC0EBIAEoAgBBiLPJAEECIAEoAgQoAgwRAAANABogACABENMDCyEEIABBMGohACADQTBrIgMNAAsLIAQNASABKAIAQaiyyABBASABKAIEKAIMEQAADAILIAAoAhQhAyAAKAIYIQZBASEAIAEoAgBBo7LIAEEBIAEoAgQoAgwRAAAhBCACQQE6ABMgAkEAOwARIAIgBDoAECACIAE2AgwCQAJAIAZFBEAgBCEADAELIAJBE2ohBQJAIAQNACACLQASDQICQCACKAIMIgEtAApBgAFxBEAgASgCAEGgssgAQQEgASgCBCgCDBEAAA0CIAJBAToAEyACIAU2AiggAiABKQIANwIgIAMoAjggAygCPCACQSBqIgFBoOvCABC/Bg0CIAFBprLIAEECEP0IRQ0BDAILIAMoAjggAygCPCABKAIAIAEoAgQQvwYNASABKAIAQaayyABBAiABKAIEKAIMEQAADQELIAJBADoAECACQQE6ABICQCACKAIMIgEtAApBgAFxBEAgAiAFNgIcIAJBoOvCADYCJCACIAEpAgA3AhQgAiABKQIINwIoIAIgAkEUajYCICADIAJBIGoQ0wNFBEAgAigCIEGkssgAQQIgAigCJCgCDBEAAEUNAgsMAgsgAyABENMDDQELQQAhACACQQA6ABILIAIgADoAECACQQE6ABEgBkEBRg0AIAZBBnRBQGohBCADQfwAaiEBA0ACfwJAAkAgAEEBcQ0AIAItABINBQJAIAIoAgwiAC0ACkGAAXFFBEAgACgCAEGIs8kAQQIgACgCBCgCDBEAAA0CIAFBBGsoAgAgASgCACAAKAIAIAAoAgQQvwYNAiAAKAIAQaayyABBAiAAKAIEKAIMEQAARQ0BDAILIAJBAToAEyACIAU2AiggAiAAKQIANwIgIAFBBGsoAgAgASgCACACQSBqIgBBoOvCABC/Bg0BIABBprLIAEECEP0IDQELIAFBPGshBiACQQA6ABAgAkEBOgASIAIoAgwiAy0ACkGAAXFFBEBBASAGIAMQ0wMNAxoMAgsgAiAFNgIcIAJBoOvCADYCJCACIAMpAgA3AhQgAiADKQIINwIoIAIgAkEUajYCICAGIAJBIGoQ0wMNACACKAIgQaSyyABBAiACKAIkKAIMEQAARQ0BC0EBDAELIAJBADoAEkEACyEAIAJBAToAESACIAA6ABAgAUFAayEBIARBQGoiBA0ACwtBASAADQIaIAItABJBAUcEQCACKAIMIgAoAgBB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rUKAgICA0AGENwMYIAYgBq1CgICAgNABhDcDECAAQbWtwAAgBkEQahC4DCAGKAJAIgAEQCAGKAJEIgJBBGsoAgAiA0F4cSEBIAFBBEEIIANBA3EiAxsgAGpJDQMgA0EARyABIABBJ2pLcQ0EIAIQvAULIAZB4ABqJAAPCxCeFQALQQQQpxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAueDAIHfwF8IwBBIGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkACQEEFIAAoAhAiA0GAgICAeHMgA0EAThtBAWsOBQECAwQFAAsgASgCACIBKAIIIQAgASgCACAAa0EDTQRAIAEgAEEEQQFBARCzESABKAIIIQALIAEgAEEEajYCCCABKAIEIABqQe7qseMGNgAADAkLIAEoAgAhASAALQAARQRAIAEoAgAgASgCCCIAa0EETQRAIAEgAEEFQQFBARCzESABKAIIIQALIAEoAgQgAGoiA0GqssgAKAAANgAAIANBrrLIAC0AADoABCABIABBBWo2AggMCQsgASgCACABKAIIIgBrQQNNBEAgASAAQQRBAUEBELMRIAEoAgghAAsgASgCBCAAakH05NWrBjYAACABIABBBGo2AggMCAsgASgCACEBAkACQCAAKAIAQQFrDgIAAQULIAEgACkDCBDUCwwICyAAKwMIIgm9Qv///////////wCDQoCAgICAgID4/wBaBEAgASgCACABKAIIIgBrQQNNBEAgASAAQQRBAUEBELMRIAEoAgghAAsgASAAQQRqNgIIIAEoAgQgAGpB7uqx4wY2AAAMCAsgCSAGQQhqEPYBIQACQAJAIAEoAgAgASgCCCICayAASQRAIAEgAiAAQQFBARCzESABKAIIIQIMAQsgAEUNAQsgAEUNACABKAIEIAJqIAZBCGogAPwKAAALIAEgACACajYCCAwHCyABKAIAIAAoAgQgACgCCBCeBwwGCyAAKAIIIQMgACgCBCEFIAEoAgAiACgCCCICIAAoAgBGBEAgACACQQFBAUEBELMRIAAoAgghAgsgACACQQFqIgQ2AgggACgCBCACakHbADoAACADBEAgBSABEO0DIANBAUcEQCAFQTBqIQIgA0EwbEEwayEEA0AgASgCACIAKAIIIgMgACgCAEYEQCAAIANBAUEBQQEQsxEgACgCCCEDCyAAIANBAWo2AgggACgCBCADakEsOgAAIAIgARDtAyACQTBqIQIgBEEwayIEDQALCyABKAIAIgEoAggiACABKAIARgRAIAEgAEEBQQFBARCzESABKAIIIQALIAEgAEEBajYCCCABKAIEIABqQd0AOgAADAYLIAQgACgCAEYEQCAAIARBAUEBQQEQsxEgACgCCCEECyAAIARBAWo2AgggACgCBCAEakHdADoAAAwFCyAAKAIoIQUgASgCACICKAIIIgMgAigCAEYEQCACIANBAUEBQQEQsxEgAigCCCEDCyACIANBAWoiBDYCCCACKAIEIANqQfsAOgAAQYACIQMgBUUEQCAEIAIoAgBGBEAgAiAEQQFBAUEBELMRIAIoAgghBAsgAiAEQQFqNgIIIAIoAgQgBGpB/QA6AABBACEDCyAAKAIYIgdFDQEgACgCFCIAQTxqKAIAIQMgAEE4aigCACEIIAEoAgAhAiAFRQRAIAIoAggiBCACKAIARgRAIAIgBEEBQQFBARCzESACKAIIIQQLIAIgBEEBajYCCCACKAIEIARqQSw6AAAgASgCACECCyAHQQZ0IQQgAiAIIAMQngcgASgCACICKAIIIgMgAigCAEYEQCACIANBAUEBQQEQsxEgAigCCCEDCyAAIARqIQQgAiADQQFqNgIIIAIoAgQgA2pBOjoAAANAIAAgARDtAyAEIABBQGsiAEYNAyAAQTxqKAIAIQUgAEE4aigCACEHIAEoAgAiAigCCCIDIAIoAgBGBEAgAiADQQFBAUEBELMRIAIoAgghAwsgAiADQQFqNgIIIAIoAgQgA2pBLDoAACABKAIAIAcgBRCeByABKAIAIgIoAggiAyACKAIARgRAIAIgA0EBQQFBARCzESACKAIIIQMLIAIgA0EBajYCCCACKAIEIANqQTo6AAAMAAsACyABIAApAwgQ1wwMAwsgA0EBcQ0BIANBgAJxRQ0CCyABKAIAIgEoAggiACABKAIARgRAIAEgAEEBQQFBARCzESABKAIIIQALIAEgAEEBajYCCCABKAIEIABqQf0AOgAADAELQaCryQBBKEHM4MgAEK8UAAsgBkEgaiQAC58MAhR/AX4jAEGQBmsiBCQAAkACQAJAAkACQAJAAkAgAiADKAIIIgZGBEAgAygCBCIHIAJB6AFsIhNqIQog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CiAKQj+HQgpCABDuESADKQMIIAMpAwAiC0I/h1INAyAELQAAQTBrIgZBCUsNAyAGrSIMIAt8IgogC1MNAyAEQQFqIQQgBUEBayIFDQALDAELIAVFDQADQCAELQAAQTBrIgZBCUsNAiAEQQFqIQQgBq0gCkIKfnwhCiAFQQFrIgUNAAsLIAAgCjcDCEIBIQoMAQsgAEIANwMAAn8CfwJ/AkACQAJAAkACQAJAQQMgB0ECayAHQQFNG0EBaw4FAQIDBAUACyADQQA2AiggA0KAgICAEDcCICADQczsxAA2AlQgA0KggICABjcCWCADIANBIGo2AlAgASADQdAAahDIAg0LIAMoAighByADKAIkIQQgAygCICEFQdXOxQAhBkEHDAYLIANBADYCKCADQoCAgIAQNwIgIANBzOzEADYCVCADQqCAgIAGNwJYIAMgA0EgajYCUCABIANB0ABqEMgCDQogAygCKCEHIAMoAiAhBUGz0cUAIQYgAygCJAwECyADQQA2AiggA0KAgICAEDcCICADQczsxAA2AlQgA0KggICABjcCWCADIANBIGo2AlAgASADQdAAahDIAg0JIAMoAighByADKAIkIQQgAygCICEFQbClxQAhBkEHDAQLIANBADYCKCADQoCAgIAQNwIgIANBzOzEADYCVCADQqCAgIAGNwJYIAMgA0EgajYCUCABIANB0ABqEMgCDQggAygCKCEHIAMoAiQhBCADKAIgIQVBt6XFACEGQQohCEE0DAQLIANBADYCKCADQoCAgIAQNwIgIANBzOzEADYCVCADQqCAgIAGNwJYIAMgA0EgajYCUCABIANB0ABqEMgCDQcgAygCKCEHIAMoAiQhBCADKAIgIQVBvJzIACEGQQUMAgsgA0EANgIoIANCgICAgBA3AiAgA0HM7MQANgJUIANCoICAgAY3AlggAyADQSBqNgJQIAEgA0HQAGoQyAINBiADKAIoIQcgAygCICEFQbysyQAhBiADKAIkCyEEQQYLIQhBEAshCSADIAc2AkwgAyAENgJIIAMgCDYCRCADIAY2AkAgA0EHNgI8IANB1c7FADYCOCADIANByABqrUKAgICA0AGENwNgIAMgA0FAa61CgICAgNABhDcDWCADIANBOGqtQoCAgIDQAYQ3A1AgA0EgakH+9sEAIANB0ABqELgMIAMgASAJ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jPvCABCdFQALIAUgA2siBUEASA0BIAdBAXMhByACQaQCRw0ACwsgB0EBcUUNAQsgBiABNgIAQYABIQJBgQEMAgsgBEEAOgAYIARBADsBFiAEIAFBFHYtAOS2SToAGSAEIAFBBHZBD3EtAOS2SToAHSAEIAFBCHZBD3EtAOS2SToAHCAEIAFBDHZBD3EtAOS2SToAGyAEIAFBEHZBD3EtAOS2SToAGiABQQFyZ0ECdiICIARBFmoiBWoiAEH7ADoAACAAQQFrQfUAOgAAIAUgAkECayICakHcADoAACAGIAQpARY3AAAgBEH9ADoAHyAEIAFBD3EtAOS2SToAHiAGIAQvAR47AAgLQQoLOgANIAYgAjoADCAEQSBqJAALqwsBDH8jAEFAaiIDJABBASECAkAgASgCAEEBRgRAIAEoAgQiBCABKAIITw0BIAEgBEEBajYCBAsgASgCjAEiAiABKAKIASIGRgRAIAEoAiAhCSABKAIsIQcLIAEoAhQhBAJAIAEtAJABQQJHBEAgBCEFDAELIAQhBSABLQCRAUUNACABKAIMIARGBEAgAUEMahCaEgsgASgCECAEQRRsaiICIAY2AgggAkEANgIEIAJBADoAACABIARBAWoiBTYCFCABKAKMASECCyACIAZGBEAgASgCLCABKAIgaiEKCyABKAJ4IQwgASgCXCENAkACQAJAAkACQAJAAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiAiABKAIITw0BIAEgAkEBajYCBAsgAyABKAKIATYCKCADIAEpAoABNwMgIANBGGogARDnAyADKAIcIQECQCADKAIYQQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIEIgIgASgCCCIITw0CIAEgAkEBaiILNgIEIAggC00NASABIAJBAmo2AgQLIAFBADoAkQEgA0EQaiABEJQKIAMoAhAgAygCFCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIghFBEAgAyABEJQKIAMoAgQhASADKAIAIQIMAQsgAUEAOgCRASADQQhqIAEQlAogAygCCCECIAMoAgwiASAIOgCRAQsgAkEBRw0ACwtBACECAkAgASgCiAEiCCABKAKEAU8NACABKAKAASAIai0AAEE6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XCEFCyABQcgAbCEMIAMoAkwgAygCUCIKQQR0aiEJIAMoAlggBUEFdGohBCADQbgBaiEIIANB8ABqIQ8gBiEBA0AgA0HgAGogAUHIAPwKAAAgA0HYAWoiByABQcgA/AoAACADQagBaiAHEMoKIAggDxCrASADKALYASIHQQBKBEAgAygC3AEiEEEEaygCACINQXhxIQ4gDkEEQQggDUEDcSINGyAHakkNBiANQQBHIA4gB0EnaktxDQcgEBC8BQsgAUHIAGohASAJIAMpA7ABNwIIIAkgAykDqAE3AgAgBCAIKQMANwMAIAQgCCkDCDcDCCAEIAgpAxA3AxAgBCAIKQMYNwMYIAlBEGohCSAEQSBqIQQgBUEBaiEFIApBAWohCiAMQcgAayIMDQALIAMgBTYCXCADIAo2AlALIAsEQCAGQQRrKAIAIgRBeHEhASABIAtByABsIgVBBEEIIARBA3EiBBtqSQ0EIARBAEcgASAFQSdqS3ENBSAGELwFCyADIAMpAwg3AvwBIAMgAygCUDYC+AEgAyADKQJIIhE3A/ABIAMgAygCIDYC4AEgAyADKQMYIhI3A9gBIAMgA0HUAGoiASgCCDYC7AEgAyABKQIANwLkASADIAMoAhA2AoQCIAAgAykD+AE3AiAgACARNwIYIAAgEjcCACAAIAMpA4ACNwIoIAAgAykD6AE3AhAgACADKQPgATcCCCAAIAI6ADALIANBoAJqJAAPC0G48MkAQQE6AAAAC0G48MkAQQE6AAAAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAvFCgIOfwJ+IwBBoAJrIgMkACADQQE6AIABIANBATYCfCADQbjsxgA2AnggA0IINwJwIANCADcCaCADQoCAgIDAADcCYAJAAkACQEG4AhCQASIEBEAgBCABQbgC/AoAACADQYGAgIB4NgKoASADIAQ2AqwBIANB2AFqIANB4ABqIgEgA0GoAWoQigECQCADKALYASIIQX5HBEAgAyADKALkATYCQCADIAMpAtwBNwM4IAMgAykC9AE3AyggAyADKAL8ATYCMCADKALoASEJIAMoAuwBIQogAygC8AEhCyADKQKAAiERIAEQiwYgAygCcCECIAMoAnQiAQRAIAIhBANAIARBEGoQ2QQgBCgCACIGQQBKBEAgBEEEaigCACIM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0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACyAAQQhqEIgEDwsgACgCHBAwC8oIAQh/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAAAOEQABAgMEBQYHCAkKCwwNDg8QEQsgACgCCEF/RwRADBYLIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDRAMFgsgACgCCEF/RwRADBULIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQ8MFQsgACgCCEF/RwRADBQLIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQ4MFAsgACgCCEF/RwRADBMLIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQ0MEwsgACgCCEF/RwRADBILIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQwMEgsgACgCCEF/RwRADBELIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQsMEQsgACgCCEF/RwRADBALIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQoMEAsgACgCCEF/RwRADA8LIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQkMDwsgACgCCEF/RwRADA4LIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQgMDgsgACgCCEF/RwRADA0LIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQcMDQsgACgCCEF/RwRADAwLIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQYMDAsgACgCCEF/RwRADAsLIAAoAhwiAigCACEBIAIgAUEBazYCACABQQFHDQUMCwsgAEEEahDaDQ8LIABBBGoQ2g0PCyAAKAIUIgMQ4gQgA0EEaygCACIBQQNxIQIgAUF4cUE0QTggAhtJDQMgAkEARyABQdgAT3ENBCADELwFIAAoAgQiAkECRg0CIAJFBEAgACgCCCICRQ0DIAAoAgwgAhDZEg8LIAAoAgwhAiAAKAIQIgQEQCACIQEDQCABKAIAIgUEQCABQQRqKAIAIgdBBGsoAgAiA0F4cSEGIAZBBEEIIANBA3EiAxsgBWpJDQggA0EA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IAJBMGokACADC78JAQd/IwBB4ABrIgMkAEEBIQUCQAJAAn8CQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAQQMgASgCACIEQQJrIARBAU0bIgRBAWsOAwEAAgALIARBAWsOBQIEAgUGAwsCQCABKAIMIgJFIgQNACABKAIIIQEgAhCQASIFRQ0IIAQNACAFIAEgAvwKAAALIAAgAjYCFCAAIAU2AhAgACACNgIMIABBfzYCAAwNCyABKAIwQQNHDQogASgCLCIFLwAAQeXcAXMgBUECai0AAEH2AHNyDQogA0FAayABIAIQpQUgAygCQCICQX9HBEAgAygCSCIBQQBIDQggAygCRCEFIAFFBEBBASEEDAsLIAEQkAEiBEUNCSABRQ0KIAQgBSAB/AoAAAwKCyAAQX42AgAMDAsACyADQQA2AiwgA0KAgICAEDcCJCADQYilxQA2AkQgA0KggICABjcCSCADIANBJGo2AkAgASADQUBrEMgCDQsgAygCLCEGIAMoAighBEHVzsUAIQdBByEIIAMoAiQMAwsgA0EANgIsIANCgICAgBA3AiQgA0GIpcUANgJEIANCoICAgAY3AkggAyADQSRqNgJAIAEgA0FAaxDIAg0KIAMoAiwhBiADKAIoIQRBsKXFACEHQQchCCADKAIkDAILIANBADYCLCADQoCAgIAQNwIkIANBiKXFADYCRCADQqCAgIAGNwJIIAMgA0EkajYCQCABIANBQGsQyAINCSADKAIsIQYgAygCKCEEQbycyAAhB0EFIQggAygCJAwBCyADQQA2AiwgA0KAgICAEDcCJCADQYilxQA2AkQgA0KggICABjcCSCADIANBJGo2AkAgASADQUBrEMgCDQggAygCLCEGIAMoAighBEG8rMkAIQdBBiEIIAMoAiQLIQVBEAwFC0EBEKcUAAsQnhUAC0EBEKcUAAsgAgRAIAUgAhDZEgsgAEF/NgIMIAAgATYCCCAAIAQ2AgQgACABNgIADAILIANBADYCLCADQoCAgIAQNwIkIANBiKXFADYCRCADQqCAgIAGNwJIIAMgA0EkajYCQCABIANBQGsQyAIEQAwDCyADKAIsIQYgAygCKCEEIAMoAiQhBUG3pcUAIQdBCiEIQTQLIQkgAyAGNgIoIAMgBDYCJCADIAg2AjwgAyAHNgI4IANBBjYCNCAD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A0EBIQACQCADDQAgASgCBCEDIAEoAgAhBgJAAkACQAJAAkACQCABLQAKQYABcUUEQCAEQQFxDQEMBgsgBEEBcUUEQCAGQaCyyABBASADKAIMEQAADQcgASgCACEGIAEoAgQhAwsgAkEBOgAbIAIgAzYCECACIAY2AgwgAkGg68IANgIgIAIgASkCCDcCJCACIAJBG2o2AhQgAiACQQxqIgA2AhwgAEEBQQAQ/QggAiAFNgIsDQMgAi0AJkGAAXENASACKAIcQbTPxQBBASACKAIgKAIMEQAADQMgAkEsaiACQRxqEMYQRQ0CDAMLIAZBiLPJAEECIAMoAgwRAAANBSABKAIEIQMgASgCACEGDAQLIAIoAhxBnePCAEECIAIoAiAoAgwRAAANASACQQE6AD8gAiACKQIcNwIwIAIgAikCJDcCSCACQaDrwgA2AkQgAiACQT9qNgI4IAIgAkEwajYCQCACQSxqIAJBQGsQxhANASACKAJAQaSyyABBAiACKAJEKAIMEQAADQELIAVB4ABqIQACQCACLQAmQYABcUUEQCACKAIcQYizyQBBAiACKAIgKAIMEQAADQIgACACQRxqELsPRQ0BDAILIAIpAiQhCiACKQIcIQsgAkEBOgA/IAIgCzcCMCACIAo3AkggAkGg68IANgJEIAIgAkE/ajYCOCACIAJBMGoiBDYCQCAAIAJBQGsQuw8NASAEQaSyyABBAhD9CA0BCyACKAIcQYiQyQBBASACKAIgKAIMEQAARQ0BC0EBIQAMAgsgAigCHEGkssgAQQIgAigCICgCDBEAACEADAELIAZBAUEAIAMoAgwRAAAgAiAFNgIwBEBBASEADAELAkAgAS0ACkGAAXFFBEBBASEAIAEoAgBBtM/FAEEBIAEoAgQoAgwRAAANAiACQTBqIAEQxhANAgwBCyABKAIAQZ3jwgBBAiABKAIEKAIMEQAABEBBASEADAILIAJBAToADCACQaDrwgA2AkQgAiABKQIANwIcIAIgASkCCDcCSCACIAJBDGo2AiQgAiACQRxqNgJAIAJBMGogAkFAaxDGEARAQQEhAAwCCyACKAJAQaSyyABBAiACKAJEKAIMEQAARQ0AQQEhAAwBCyAFQeAAaiEEAkACQCABLQAKQYABcUUEQCABKAIAQYizyQBBAiABKAIEKAIMEQAABEBBASEA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AiAAKAI0NgIMIAEgA0EEEJYIDAELIAIgBDYCDCABIAJBDGpBBBCWCAsgAkEaIAUoAgAiAyADQRpMG0EaayIENgIMIAEgAkEMakEEEJYIAkACQAJAAkAgBEEBaw4DAAECAwsgAEEMaiABEIoNDAoLIABBDGogARCKDQwJCyACIAAtAAw6AAwgASACQQxqQQEQlggMCAsgAiADQX9GIgM2AgwgASACQQxqQQQQlgggAw0FIAUgARC5AgwHCyACIAAoAgg2AgwgASACQQxqQQQQlggMBgsgAiAAKAIINgIMIAEgAkEMaiIDQQQQlgggACgCDCABEKAFIAIgAC0AEDYCDCABIANBBBCWCAwFCyACIAAoAgQiBDYCDCABIAJBDGoiA0EEEJYIIAAoAgghBQJAIARBAUYEQCAAKAIMIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhA2AgwgASADQQQQlggMAQsgAiAFNgIMIAEgAkEMakEEEJYICyACIAAoAhgiAC0AACIDNgIMIAEgAkEMakEEEJYIAkACQAJAAkACQCADQQNrDgUBAgMDBAALIABBCGohAAwHCyACIAAtAAE6AAwgASACQQxqQQEQlggMBwsgAEEIaiABELkCDAYLIABBCGohAAwECyACIAAtAAE6AAwgASACQQxqQQEQlggMBAsgAiAALQABOgAMIAEgAkEMakEBEJYIDAMLIAIgACgCBDYCDCABIAJBDGpBBBCWCCAAKAIIIQAMAQsLIAIgACgCDCIENgIMIAEgAkEMaiIDQQQQlgggACgCECEFIARBAUYEQCAAKAIUIQQgAiAFNgIMIAEgA0EEEJYIIAIgBDYCDCABIANBBBCWCCACIAAoAhg2AgwgASADQQQQlggMAQsgAiAFNgIMIAEgAkEMakEEEJYICyACQRBqJAALggkBBX8jAEEQayICJAACQANAAkAgAiAALQAAIgM2AgwgASACQQxqQQQQlggCQAJAAkACQAJAAkACQAJAAkACQCADQQFrDgoBAgMEBQYHCAkMAAsgACgCCCEDIAIgACgCDCIANgIMIAEgAkEMakEEEJYIIABFDQsgAEHQAGwhAANAIAMgARChBSADQdAAaiEDIABB0ABrIgANAAsMCwsgACgCCCEDIAIgACgCDCIANgIMIAEgAkEMakEE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KAIUKAIMEQAADQMgA0EMaygCACADQQhrKAIAIAIoAhAgAigCFBC/BkUNAgwDCyAFQYizyQBBAiAEKAIMEQAADQUgASgCBCEEIAEoAgAhBQwECyACKAIQQZ3jwgBBAiACKAIUKAIMEQAADQEgAiACKQIQNwIwIAJBAToAICACIAJBIGo2AjggA0EMaygCACADQQhrKAIAIAJBMGoiAEGg68IAEL8GDQEgAEGkssgAQQIQ/QgNAQsCQCACLQAaQYABcUUEQCACKAIQQYizyQBBAiACKAIUKAIMEQAADQIgAyACQRBqENgBRQ0BDAILIAIpAhghCiACKQIQIQsgAkEBOgAvIAIgCzcCICACIAo3AjggAkGg68IANgI0IAIgAkEvajYCKCACIAJBIGo2AjAgAyACQTBqENgBDQEgAigCMEGkssgAQQIgAigCNCgCDBEAAA0BCyACKAIQQYiQyQBBASACKAIUKAIMEQAARQ0BC0EBIQAMAgsgAigCEEGkssgAQQIgAigCFCgCDBEAACEADAELIAVBAUEAIAQoAgwRAAAEQAwBCwJAIAEtAApBgAFxRQRAIAEoAgBBtM/FAEEBIAEoAgQoAgwRAAANAiADQQxrKAIAIANBCGsoAgAgASgCACABKAIEEL8GDQIMAQsgASgCAEGd48IAQQIgASgCBCgCDBEAAARADAILIAIgASkCADcCMCACQQE6ABAgAiACQRBqNgI4IANBDGsoAgAgA0EIaygCACACQTBqQaDrwgAQvwYEQAwCCyACQTBqQaSyyABBAhD9CEUNAAwBCwJAAkAgAS0ACkGAAXFFBEAgASgCAEGIs8kAQQIgASgCBCgCDBEAAARADAQLIAMgARDYAUUNAQwDCyABKQIIIQogASkCACELIAJBAToAICACIAs3AhAgAiAKNwI4IAJBoOvCADYCNCACIAJBIGo2AhggAiACQRBqNgIwIAMgAkEwahDYAQ0BIAIoAjBBpLLIAEECIAIoAjQoAgwRAAANAgsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAELCyADQTBqIQMgCUEwayIJDQALCyAARQRAIAEoAgBBqLLIAEEBIAEoAgQoAgwRAAAhCAsgAkFAayQAIAgL6wgCEH8DfiMAQYABayIDJAAgASgCACEIIAApAwAgACkDCCABKAIEIgkgASgCCCIL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IAIoAmAhAyACKAJkIgEgBDoAkQELIANBAUcNAAsLIAJB0ABqIAEQNiACKAJUIQECfwJAAkAgAigCUEEBRw0AAkAgASgCAEEBRgRAIAEoAgQiAyABKAIITwRAQQEhAwwCCyABIANBAWo2AgQLIAEoAhQhBCACIAEoAogBNgKIASACIAEpAoABNwOAASACQcgAaiABENsCQQEhAyACKAJMIQECQCACKAJIQQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIIIgcgASgCBCIFTQ0CIAEgBUEBaiIDNgIEIAMgB08NASABIAVBAmo2AgQLIAFBADoAkQEgAkFAayABEJQKIAIoAkAgAigCRCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCIDIAEoAghPDQIgASADQQFqNgIECwJAIAEtAJEBIgVFBEAgAkEwaiABEJQKIAIoAjQhASACKAIwIQMMAQsgAUEAOgCRASACQThqIAEQlAogAigCOCEDIAIoAjwiASAFOgCRAQsgA0EBcUUNAAsLIAJBKGogARCuCyACKAIsIQEgAigCKCEDCyADQQFHDQAgASACKAKIATYCiAEgASACKQOAATcCgAEgBCABKAIUSw0AIAEgBDYCFAsgA0EBRw0AAkAgASgCAEEBRgRAIAEoAgQiAyABKAIITw0BIAEgA0EBajYCBAsCQCABLQCRASIEQQFGBEAgAkEYaiABEIEDIAIoAhwhASACKAIYIQMMAQsgAUEBOgCRASACQSBqIAEQgQMgAigCICEDIAIoAiQiASAEOgCRAQsgA0EBcUUNAQsgAkEQaiABELoFIAIoAhQhASACKAIQQQFxDQELQQAMAQsgAkEIaiABENEDIAIoAgwhASACKAIICyIDQQFHDQEgASACKQNwNwKAASABIAIoAng2AogBIAYgASgCFEsNAQsgASAGNgIUCyAAIAM2AgAgACABNgIEIAJBkAFqJAALvAgBBn8jAEGQAWsiAiQAAkACQAJAAkACQCABKAIAQQFGBEAgASgCBCIDIAEoAggiBEkNAUEBIQMMBQsgASgCFCEGIAIgASgCiAE2AnggAiABKQKAATcDcCABLQCRAUECRg0BDAILIAEgA0EBaiIFNgIEIAEoAhQhBiACIAEoAogBNgJ4IAIgASkCgAE3A3AgAS0AkQFBAkcNASAEIAVNBEBBASEDDAMLIAEgA0ECaiIFNgIEIAQgBU0NASABIANBA2o2AgQLIAFBADoAkQEgAkHoAGogARCUCiACKAJoIAIoAmwiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAyABKAIITw0CIAEgA0EBajYCBAsCQCABLQCRASIERQRAIAJB2ABqIAEQlAogAigCXCEBIAIoAlghAwwBCyABQQA6AJEBIAJB4ABqIAEQlAogAigCYCEDIAIoAmQiASAEOgCRAQsgA0EBRw0ACwsgAkHQAGogARDWAiACKAJUIQECfwJAAkAgAigCUEEBRw0AAkAgASgCAEEBRgRAIAEoAgQiAyABKAIITwRAQQEhAwwCCyABIANBAWo2AgQLIAEoAhQhBCACIAEoAogBNgKIASACIAEpAoABNwOAASACQcgAaiABENsCQQEhAyACKAJMIQECQCACKAJIQQFxDQACQCABLQCRAUECRw0AIAEoAgBBAUYEQCABKAIIIgcgASgCBCIFTQ0CIAEgBUEBaiIDNgIEIAMgB08NASABIAVBAmo2AgQLIAFBADoAkQEgAkFAayABEJQKIAIoAkAgAigCRCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCIDIAEoAghPDQIgASADQQFqNgIECwJAIAEtAJEBIgVFBEAgAkEwaiABEJQKIAIoAjQhASACKAIwIQMMAQsgAUEAOgCRASACQThqIAEQlAogAigCOCEDIAIoAjwiASAFOgCRAQsgA0EBcUUNAAsLIAJBKGogARCuCyACKAIsIQEgAigCKCEDCyADQQFHDQAgASACKAKIATYCiAEgASACKQOAATcCgAEgBCABKAIUSw0AIAEgBDYCFAsgA0EBRw0AAkAgASgCAEEBRgRAIAEoAgQiAyABKAIITw0BIAEgA0EBajYCBAsCQCABLQCRASIEQQFGBEAgAkEYaiABEIEDIAIoAhwhASACKAIYIQMMAQsgAUEBOgCRASACQSBqIAEQgQMgAigCICEDIAIoAiQiASAEOgCRAQsgA0EBcUUNAQsgAkEQaiABELoFIAIoAhQhASACKAIQQQFxDQELQQAMAQsgAkEIaiABENEDIAIoAgwhASACKAIICyIDQQFHDQEgASACKQNwNwKAASABIAIoAng2AogBIAYgASgCFEsN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IAQgByACQX9GIgkbIANBf0YiChsiAigCACIIIAAgByAEIAobIAkbIgMoAgAiBUcEQCAIIAVrIQUMAQtBBCEFIAgEQCACKAIIIgUgAygCCCIISyAFIAhJayACKAIEIgUgAygCBCIISyAFIAhJayAFIAhGGyIFQf8BcQ0BQQwhBQsgAiAFaigCACIIIAMgBWooAgAiBUsgBSAIS2shBQsgASAHIAAgCRsiACkCGDcCGCABIAApAhA3AhAgASAAKQIINwIIIAEgACkCADcCACABIAIgAyAFQX9GIgcbIgApAhg3AjggASAAKQIQNwIwIAEgACkCCDcCKCABIAApAgA3AiAgASADIAIgBxsiACkCGDcCWCABIAApAhA3AlAgASAAKQIINwJIIAEgACkCADcCQCABIAQgBiAKGyIAKQIANwJgIAEgACkCCDcCaCABIAApAhA3AnAgASAAKQIYNwJ4C7IHAQh/AkACQCAAKAIAIgEEQCAAKAIEIQICQCAAKAIIIggEQAJAA0ACQCADBEAgASEAIAMhAQwBC0EAIQACQCACRQ0AIAIhBCACQQdxIgUEQANAIARBAWshBCABKALIBCEBIAVBAWsiBQ0ACwsgAkEISQ0AA0AgASgCyAQoAsgEKALIBCgCyAQoAsgEKALIBCgCyAQoAsgEIQEgBEEIayIEDQALC0EAIQILAkAgAS8BwgQgAksEQCACIQYgASEEDAELAkADQCABKAK4AyIEBEAgAUEEaygCACICQXhxIQMgA0H4BEHIBCAAGyIFQQRBCCACQQNxIgIbakkNCSABLwHABCEGIAJBAEcgAyAFQSdqS3ENAiABELwFIABBAWohACAEIgEvAcIEIAZNDQEMAwsLIAFB+ARByAQgABsQ2RJBrOrIABCdFQALDAcLAkAgAEUEQCAGQQFqIQIgBCEDDAELIAQgBkECdGpBzARqIQECQCAAQQdxIgJFBEAgACEFDAELIAAhBQNAIAVBAWshBSABKAIAIgNByARqIQEgAkEBayICDQALC0EAIQIgAEEISQ0AA0AgASgCACgCyAQoAsgEKALIBCgCyAQoAsgEKALIBCgCyAQiA0HIBGohASAFQQhrIgUNAAsLAkAgBCAGQQxsaiIBKAK8AyIABEAgAUG8A2ooAgQiBUEEaygCACIHQXhxIQEgAUEEQQggB0EDcSIHGyAA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IAEpAwg3AwggACABKQMANwMADA0LIAAgASkDCDcDCCAAIAEpAwA3AwAMDAsgACABKQMINwMIIAAgASkDADcDAAwLCyAAIAEpAwg3AwggACABKQMANwMADAoLAkAgASgCDCICRQRAQQEhAQwBCyABKAIIIQQgAhCQASIBRQ0LIAJFDQAgASAEIAL8CgAACyAAIAI2AgwgACABNgIIIAAgAjYCBCAAQYyAgIB4NgIADAkLIAAgASkDCDcDCCAAIAEpAwA3AwAMCAsCQCABKAIMIgJFBEBBASEBDAELIAEoAgghBCACEJABIgFFDQogAkUNACABIAQgAvwKAAALIAAgAjYCDCAAIAE2AgggACACNgIEIABBjoCAgHg2AgAMBwsgACABKQMINwMIIAAgASkDADcDAAwGCyAAQZCAgIB4NgIADAULIAMgASgCBBDOBUEQEJABIgFFDQcgASADKQMINwMIIAEgAykDADcDACAAQZGAgIB4NgIAIAAgATYCBAwECyAAQZKAgIB4NgIADAMLIAMgASgCBBDOBUEQEJABIgFFDQYgASADKQMINwMIIAEgAykDADcDACAAQZOAgIB4NgIAIAAgATYCBAwCCyABKAIMIgJBgICAwABPDQYCfyACRQRAQQghBUEADAELIAEoAgghBiACQQR0EJABIgVFDQhBACEBIAIhBANAIAMgASAGahDOBSABIAVqIgcgAykDCDcDCCAHIAMpAwA3AwAgAUEQaiEBIARBAWsiBA0ACyACCyEBIAAgAjYCDCAAIAU2AgggACABNgIEIABBlICAgHg2AgAMAQsgASgCCCICQYCAgCBPDQUCfyACRQRAQQghBUEADAELIAEoAgQhByACQQV0EJABIgVFDQggA0EgaiEIQQAhASACIQQDQCADQRBqIAEgB2oiBhDOBSAIIAZBEGoQzgUgASAFaiIGIAMpAyg3AxggBiADKQMgNwMQIAYgAykDGDcDCCAGIAMpAxA3AwAgAUEgaiEBIARBAWsiBA0ACyACCyEBIAAgAjYCCCAAIAU2AgQgACABNgIACyADQTBqJAAPC0EBEKcUAAtBARCnFAALQbjwyQBBAToAAAALQbjwyQBBAToAAAALEJ4VAAtBCBCnFAALQQgQpxQAC/IHAgl/AX4jAEHgAGsiBSQAIAUgBDYCRCAFIAM2AkAgBUIANwI4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IQZBBwwGCyACQQA2AgggAkKAgICAEDcCACACQczsxAA2AjQgAkKggICABjcCOCACIAI2AjAgACACQTBqEMgCDQogAigCCCEFIAIoAgAhA0Gz0cUAIQYgAigCBAwECyACQQA2AgggAkKAgICAEDcCACACQczsxAA2AjQgAkKggICABjcCOCACIAI2AjAgACACQTBqEMgCDQkgAigCCCEFIAIoAgQhBCACKAIAIQNBsKXFACEGQQcMBAsgAkEANgIIIAJCgICAgBA3AgAgAkHM7MQANgI0IAJCoICAgAY3AjggAiACNgIwIAAgAkEwahDIAg0IIAIoAgghBSACKAIEIQQgAigCACEDQbelxQAhBkEKIQdBNAwECyACQQA2AgggAkKAgICAEDcCACACQczsxAA2AjQgAkKggICABjcCOCACIAI2AjAgACACQTBqEMgCDQcgAigCCCEFIAIoAgQhBCACKAIAIQNBvJzIACEGQQUMAgsgAkEANgIIIAJCgICAgBA3AgAgAkHM7MQANgI0IAJCoICAgAY3AjggAiACNgIwIAAgAkEwahDIAg0GIAIoAgghBSACKAIAIQNBvKzJACEGIAIoAgQLIQRBBgshB0EQCyEIIAIgBTYCLCACIAQ2AiggAiAHNgIkIAIgBjYCICACQQc2AhwgAkG/0cUANgIYIAIgAkEoaq1CgICAgNABhDcDQCACIAJBIGqtQoCAgIDQAYQ3AzggAiACQRhqrUKAgICA0AGENwMwIAJB/vbBACACQTBqELgMIAIgACAIaiIAKQIANwIMIAIgACgCCDYCFCABKAIIIgAgASgCAEYEQCABEL0SCyABIABBAWo2AgggASgCBCAAQRhsaiIAIAIpAgA3AgAgACACKQIINwIIIAAgAikCEDcCEEECIQAgA0UNACAEQQRrKAIAIgVBeHEhASABQQRBCCAFQQNxIgUbIANqSQ0BIAVBAEcgASADQSdqS3ENAiAEELwFCyACQdAAaiQAIAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB8LXJAEE3IAJBzwBqQeTsxABBqLbJABDaEgALmAgCB38BfiMAQfAGayICJAAgAiABKAIYIgM2AiAgAiABKQIQNwMYIAIgASkCCDcDECACIAEpAgA3AwggAiADNgI4IAIgAkEYajYCMCAC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zOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINCiADKAIIIQUgAygCACEGQbPRxQAhByADKAIEDAQLIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINCSADKAIIIQUgAygCBCEEIAMoAgAhBkGwpcUAIQdBBwwECyADQQA2AgggA0KAgICAEDcCACADQczsxAA2AjQgA0KggICABjcCOCADIAM2AjAgASADQTBqEMgCDQggAygCCCEFIAMoAgQhBCADKAIAIQZBt6XFACEHQQohCEE0DAQLIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINByADKAIIIQUgAygCBCEEIAMoAgAhBkG8nMgAIQdBBQwCCyADQQA2AgggA0KAgICAEDcCACADQczsxAA2AjQgA0KggICABjcCOCADIAM2AjAgASADQTBqEMgCDQYgAygCCCEFIAMoAgAhBkG8rMkAIQcgAygCBAshBEEGCyEIQRALIQkgAyAFNgIsIAMgBDYCKCADIAg2AiQgAyAHNgIgIANBBjYCHCADQbPRxQA2AhggAyADQShqrUKAgICA0AGENwNAIAMgA0Egaq1CgICAgNABhDcDOCADIANBGGqtQoCAgIDQAYQ3AzAgA0H+9sEAIANBMGoQuAwgAyABIAlqIgEpAgA3AgwgAyABKAIINgIUIAIoAggiASACKAIARgRAIAIQvRILIAIgAUEBajYCCCACKAIEIAFBGGxqIgEgAykCADcCACABIAMpAgg3AgggASADKQIQNwIQQQAhASAGRQ0AIARBBGsoAgAiBUF4cSECIAJBBEEIIAVBA3EiBRsgBmpJDQEgBUEARyACIAZBJ2pLcQ0CIAQQvAULIAAgATYCACADQdAAaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQfC1yQBBNyADQc8AakHk7MQAQai2yQAQ2hIAC9gHAgZ/AX4jAEHQAGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCAEEBaw4EAgADBAELAkACQCABKAIMIgNFDQAgAkEwaiABKAIIIgYQ8gUgAigCMCIBQX9GDQAgAiACKQI0NwIMIAIgATYCCEEBIQQgA0E4bEE4ayIFQThuQQF0IQEgBQRAIAEQkAEiBEUNBwsgAkEANgIcIAIgBDYCGCACIAE2AhQgAiACQQhqrUKAgICAwAKENwMwIAJBFGpB3JbGAEHPrcAAIAJBMGoiARCxCUUEQCADQQFHBEAgAa1CgICAgMAChCEIIAZBOGohAQNAIAJBIGogARDyBSACIAIoAig2AjggAiACKQIgNwMwIAIoAhQgAigCHCIDa0EBTQRAIAJBFGogA0ECQQFBARCzESACKAIcIQMLIAIoAhggA2pBrMAAOwAAIAIgA0ECajYCHCACIAg3A0AgAkEUakHclsYAQc+twAAgAkFAaxCxCQ0KIAIoAjAiAwRAIAIoAjQiBkEEaygCACIHQXhxIQQgBEEEQQggB0EDcSIHGyADakkNECAHQQBHIAQgA0EnaktxDREgBhC8BQsgAUE4aiEBIAVBOGsiBQ0ACwsgAiACKAIcNgI4IAIgAikCFDcDMCACKAIIIgFFDQIgAigCDCIFQQRrKAIAIgRBeHEhAyADQQRBCCAEQQNxIgQbIAFqSQ0NIARBAEcgAyABQSdqS3ENDiAFELwFDAILQYiwyQBBKyACQc8AakH0lsYAQcC2yQAQ2hIACyACQQA2AjggAkKAgICAEDcDMAsgAiACQTBqrUKAgICAwAKENwMgIABBzI7CACACQSBqELgMIAIoAjAiAEUNCSACKAI0IgNBBGsoAgAiBUF4cSEBIAFBBEEIIAVBA3EiBRsgAGpJDQogBUEARyABIABBJ2pLcQ0LIAMQvAUMCQsgACABQQhqEMUDDAgLQQYQkAEiAUUNBiAAQQY2AgggACABNgIEIABBBjYCACABQf6ZyQAvAAA7AAQgAUH6mckAKAAANgAADAcLQQQQkAEiAUUNBCAAQQQ2AgggACABNgIEIABBBDYCACABQcqmvfIENgAADAYLQQgQkAEiAUUNAiAAQQg2AgggACABNgIEIABBCDYCACABQsbSlePGzNSy5gA3AAAMBQtBARCnFAALQYiwyQBBKyACQc8AakH0lsYAQbSwyQAQ2hIAC0EBEKcUAAtBARCnFAALQQEQpxQACyACQdAAaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALgQYBB38CQAJAAkACQAJAAkACQAJAIAAoAgAOBAECAwQACwJAIAAoAigiAUUNACABQQJ0QQtqQXhxIgMgAWpBCWoiAUUNACAAKAIkIANrIgJBBGsoAgAiBEF4cSEDIANBBEEIIARBA3EiBBsgAWpJDQYgBEEARyADIAFBJ2pLcQ0HIAIQvAULIAAoAhwhAyAAKAIgIgIEQCADIQEDQCABQThqKAIAIgQEQCABQTxqKAIAIgdBBGsoAgAiBUF4cSEGIAZBBEEIIAVBA3EiBRsgBGpJDQggBUEARyAGIARBJ2pLcQ0JIAcQvAULIAEQ8wUgAUHIAGohASACQQFrIgINAAsLIAAoAhgiAUUNBCADQQRrKAIAIgJBeHEhACAAIAFByABsIgFBBEEIIAJBA3EiAhtqSQ0FIAJBAEcgACABQSdqS3ENBiADELwFDwsgAEEIahCPBA8LAkAgACgCKCIBRQ0AIAFBAnRBC2pBeHEiAyABakEJaiIBRQ0AIAAoAiQgA2siAkEEaygCACIEQXhxIQMgA0EEQQggBEEDcSIEGyABakkNBCAEQQBHIAMgAUEnaktxDQUgAhC8BQsgACgCHCEDIAAoAiAiAgRAIAMhAQNAIAFBOGooAgAiBARAIAFBPGooAgAiB0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyAEakkNBiAFQQBHIAYgBEEnaktxDQcgBxC8BQsgARDzBSABQcgAaiEBIAJBAWsiAg0ACwsgACgCGCIBRQ0CIANBBGsoAgAiAkF4cSEAIAAgAUHIAGwiAUEEQQggAkEDcSICG2pJDQMgAkEARyAAIAFBJ2pLcQ0EIAMQvAUPCyAAQQRqEMQFIAAoAgQiAUUNASAAKAIIIgNBBGsoAgAiAkF4cSEAIAAgAUE4bCIBQQRBCCACQQNxIgIbakkNAiACQQBHIAAgAUEnaktxDQMgAxC8BQ8LIABBCGoQ/wkLDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALlQcBFn8CQAJAAkACQAJAAkACQCAAKAIwIgFBf0YNAAJAAkACQEECIAFB9v///wdqIAFBiYCAgHhNGw4CAQIACwJAAkACQAJAAkACQAJAAkACQAJAQQMgAUGAgICAeHMgAUEAThsOCQECAwQFBgcICQALAn8gACgCACIBQX9GBEAgACgCBCIBRQ0NQQgMAQsgAQRAIAAoAgQgARDZEgsgACgCDCIBRQ0MQRALIABqKAIAIAEQ2RIPCyAAKAIAIgFFDQoMDwsgACgCACIBRQ0JDA4LIAAoAgAiAQRAIAAoAgQgARDZEgsgACgCDCIBBEAgACgCECABENkSCyAAKAIYIgFFDQgMDgsgAQRAIAAoAjQgARDZEgsgACgCEEF/Rg0HIAAQ/AkPCwJ/AkACQAJAAkACQAJAIAAoAgAOBgUBAgMEBQALIAAoAgQiAQRAIAAoAgggARDZEgsgACgCECIBRQ0MQRQMBQsgACgCDCIBBEAgACgCECABENkSCyAAKAIYIgFFDQtBHAwECyAAKAIMIgEEQCAAKAIQIAEQ2RILIAAoAhgiAUUNCkEcDAMLIAAoAgwiAQRAIAAoAhAgARDZEgsgACgCGCIBRQ0JQRwMAgsgACgCBCIBBEAgACgCCCABENkSCyAAKAIQIgFFDQhBFAwBCyAAKAIEIgFFDQdBCAsgAGooAgAgARDZEg8LIAAoAgAiAUUNBQwKCyAAKAIAIgEEQCAAKAIEIAEQ2RILIAAoAgwiAQRAIAAoAhAgARDZEgsgACgCGCIBRQ0EDAoLIAAoAgAiAQRAIAAoAgQgARDZEgsgACgCDCIBBEAgACgCECABENkSCyAAKAIYIgFFDQMMCQsgACgCACIBRQ0CDAcLIAAoAgAiAUUNASAAKAIEIgNBBGsoAgAiAkF4cSEAIABBBEEIIAJBA3EiAhsgAWpJDQIgAkEARyAAIAFBJ2pLcQ0DIAMQvAUPCyAAKAIAIQEgACgCBCIAKAIAIgMEQCABIAMRAwALIAAoAgQiAEUNACABQQRrKAIAIgJBeHEhAyADQQRBCCACQQNxIgIbIABqSQ0DIAJBAEcgAyAAQSdqS3ENBCABELwFCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgACgCBCABENkSDwsgACgCHCABENkSC5QGAQd/AkACQAJAAkACQAJAAkACQCAAKAIADgQAAQIDBQsgACgCCCEDIAAoAgwiBgRAIAMhAQNAIAEQzQECQCABQdAAaigCACIFQX5GDQAgBUF/Rg0AIAVFDQAgAUHUAGooAgAiBEEEaygCACICQXhxIQcgB0EEQQggAkEDcSICGyAFakkNCSACQQBHIAcgBUEnaktxDQggBBC8BQsgAUHgAGohASAGQQFrIgYNAAsLIAAoAgQiAUUNBCADQQRrKAIAIgBBeHEhAiACIAFB4ABsIgFBBEEIIABBA3EiABtySQ0GIABFDQMgAiABQSdqTQ0DDAULIAAoAgghAyAAKAIMIgYEQCADIQEDQCABEM0BAkAgAUHQAGooAgAiBUF+Rg0AIAVBf0YNACAFRQ0AIAFB1ABqKAIAIgRBBGsoAgAiAkF4cSEHIAdBBEEIIAJBA3EiAhsgBWpJDQggAkEARyAHIAVBJ2pLcQ0HIAQQvAULIAFB4ABqIQEgBkEBayIGDQALCyAAKAIEIgFFDQMgA0EEaygCACIAQXhxIQIgAiABQeAAbCIBQQRBCCAAQQNxIgAbckkNBSAARQ0CIAIgAUEnak0NAgwECyAAKAIEIgMQzQECQCADKAJQIgRBfkYNACAEQX9GDQAgBEUNACADKAJUIgFBBGsoAgAiAEF4cSECIAJBBEEIIABBA3EiABsgBGpJDQUgAEEARyACIARBJ2pLcQ0EIAEQvAULIANBBGsoAgAiAUEDcSEAIAFBeHFB5ABB6AAgABtJDQQgAEUNASABQYgBSQ0BDAMLIAAoAgQiAxDNAQJAIAMoAlAiBEF+Rg0AIARBf0YNACAERQ0AIAMoAlQiAUEEaygCACIAQXhxIQIgAkEEQQggAEEDcSIAGyAEakkNBCAAQQBHIAIgBEEnaktxDQMgARC8BQsgA0EEaygCACIBQQNxIQAgAUF4cUHkAEHoACAAG0kNAyAARQ0AIAFBiAFJDQAMAgsgAxC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAupCAIMfwh+IwBBkAZrIgIkAAJAAkACQCABKAIEIgMgASgCDCIMRg0AIAEoAhQhBCABKAIQIQkgAkHAAmohCiACQfABaiIFQQRyIQsgBUHIAGohByACQZgDaiIFQcgAaiEIIAVBBHIhDQNAIAEgA0HIAGoiBTYCBAJAAkACQAJAIAMoAgAiBkEERwRAIAIgBjYCwAUgAkHABWoiAUEEciADQQRqQcQA/AoAACACIAGtQoCAgIDwIIQ3A4gGIAJB8ARqQaHvwQAgAkGIBmoQuAwgAkEAOgD8BCACQX82AtAEIAEQrgcgAiACKQP4BCIONwOwBCACIAIpA/AEIg83A6gEIAIgAikD6AQiEDcDoAQgAiACKQPgBCIRNwOYBCACIAIpA9gEIhI3A5AEIAIgAikD0AQiEzcDiAQgAiACKQPIBCIUNwOABCACIAIpA8AEIhU3A/gDDAELIAIgA0EIaikCADcDgAUgAiADQRBqKQIANwOIBSACIANBGGopAgA3A5AFIAIgA0EgaikCADcDmAUgAiADQShqKQIANwOgBSACIANBMGopAgA3A6gFIAIgA0E4aikCADcDsAUgAiADQUBrKQIANwO4BSACQZgDaiAJIAJBgAVqEHcgAigCmAMiA0F/Rw0BIAIgAikD2AMiDjcCkAMgAiACKQPQAyIPNwKIAyACIAIpA8gDIhA3AoADIAIgAikDwAMiETcC+AIgAiACKQO4AyISNwLwAiACIAIpA7ADIhM3AugCIAIgAikDqAMiFDcC4AIgAiACKQOgAyIVNwLYAgsgAiAVNwKwASACIBQ3ArgBIAIgEzcCwAEgAiASNwLIASACIBE3AtABIAIgEDcC2AEgAiAPNwLgASACIA43AugBIAJB6ABqIAJBrAFqQcQA/AoAAAwBCyACQdQCaiIGIA1BxAD8CgAAIAcgCCkDEDcDECAHIAgpAwg3AwggByAIKQMANwMAIAsgBkHEAPwKAAAgAiADNgLwASACQfABaiAJEIoFIAIoAvABIQMgAkGsAWoiBiALQcQA/AoAACACIAopAwA3A1ggAiAKKAIINgJgIAIpA7gCIQ4gAkHoAGogBkHEAPwKAAAgA0F/Rw0BCyAEKAIwQX9HBEAgBBCNAwsgBCACKQKkATcCOCAEIAIpApwBNwIwIAQgAikClAE3AiggBCACKQKMATcCICAEIAIpAoQBNwIYIAQgAikCfDcCECAEIAIpAnQ3AgggBCACKQJsNwIADAILIAJBFGogAkGsAWpBxAD8CgAAIAIgAigCYDYCECACIAIpA1g3AwggA0F+Rw0CIAwgBSIDRw0ACwsgAEF/NgIADAELIABBBGogAkEUakHEAPwKAAAgACACKAIQNgJYIAAgAikDCDcDUCAAIA43A0ggACADNgIACyACQZAGaiQAC+wFAQd/AkACQAJAIAAoAhQiAUF/Rg0AIAFFDQAgACgCGCIEQQRrKAIAIgJBeHEhAyADQQRBCCACQQNxIgIbIAFqSQ0CIAJBAEcgAyABQSdqS3ENASAEELwFCyAAKAIMIQMgACgCECIEBEAgAyEBA0ACQCABKAIAIgJBf0YNACACRQ0AIAFBBGooAgAiB0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyACakkNBCAFQQBHIAYgAkEnaktxDQMgBxC8BQsgAUEMaiEBIARBAWsiBA0ACwsgACgCCCIEBEAgA0EEaygCACICQXhxIQEgASAEQQxsIgRBBEEIIAJBA3EiAhtqSQ0CIAJBAEcgASAEQSdqS3ENASADELwFCwJAIAAoAgBFBEAgACgCBCIEEMoBIARBBGsoAgAiAEEDcSEBIABBeHFBlAJBmAIgARtJDQMgAUUNASAAQbgCSQ0BDAILIAAoAgQiBCgCBCEAIAQoAggiAwRAIAAhAQNAIAEQygEgAUGQAmohASADQQFrIgMNAAsLIAQoAgAiAwRAIABBBGsoAgAiAkF4cSEBIAEgA0GQAmwiA0EEQQggAkEDcSICG3JJDQMgAkEARyABIANBJ2pLcQ0CIAAQvAULIAQoAgwiAARAIAQoAhAiA0EEaygCACICQXhxIQEgAUEEQQggAkEDcSICGyAAakkNAyACQQBHIAEgAEEnaktxDQIgAxC8BQsgBCgCHCEAIAQoAiAiAwRAIAAhAQNAIAEQ9wUgAUEgaiEBIANBAWsiAw0ACwsgBCgCGCIDBEAgAEEEaygCACICQXhxIQEgASADQQV0IgNBBEEIIAJBA3EiAhtySQ0DIAJBAEcgASADQSdqS3ENAiAAELwFCyAEQQRrKAIAIgFBeHEhACAAQShBLCABQQNxIgEbSQ0CIAFFDQAgAEHMAE8NAQsgBBC8BQ8LQZCdyQBBLkHAnckAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC8gGAgh/AX4CQAJAAkAgACgCICIGRQ0AIAAoAiwiASAAKAIkIgdrQQxuIQggASAHRwRAA0AgByAEQQxsaiIFKAIEIQMgBSgCCCICBEAgAyEBA0AgARD0BCABQcgBaiEBIAJBAWsiAg0ACwsgBSgCACICBEAgA0EEaygCACIFQXhxIQEgASACQcgBbCICQQRBCCAFQQNxIgUbakkNBCAFQQBHIAEgAkEnaktxDQUgAxC8BQsgBEEBaiIEIAhHDQALCyAAKAIoIgJFDQAgBkEEaygCACIDQXhxIQEgASACQQxsIgJBBEEIIANBA3EiAxtqSQ0BIANBAEcgASACQSdqS3ENAiAGELwFCwJAIAAoAjAiA0UNACAAKAI8IgQgACgCNCIBa0HIAW4hAiABIARHBEADQCABEPQEIAFByAFqIQEgAkEBayICDQALCyAAKAI4IgJFDQAgA0EEaygCACIEQXhxIQEgASACQcgBbCICQQRBCCAEQQNxIgQbakkNASAEQQBHIAEgAkEnaktxDQIgAxC8BQsCQCAAKAJAIgNFDQAgACgCTCIEIAAoAkQiAWtByAFuIQIgASAERwRAA0AgARD0BCABQcgBaiEBIAJBAWsiAg0ACwsgACgCSCICRQ0AIANBBGsoAgAiBEF4cSEBIAEgAkHIAWwiAkEEQQggBEEDcSIEG2pJDQEgBEEARyABIAJBJ2pLcQ0CIAMQvAULAkAgACgCBCIERQ0AIAAoAgwiBgRAIAAoAgAiAUEIaiECIAEpAwBCf4VCgIGChIiQoMCAf4MhCQNAIAlQBEADQCACIgNBCGohAiABQcAMayEBIAMpAwBCgIGChIiQoMCAf4MiCUKAgYKEiJCgwIB/UQ0ACyAJQoCBgoSIkKDAgH+FIQkLIAEgCXqnQQN2Qbh+bGpByAFrEPQEIAlCAX0gCYMhCSAGQQFrIgYNAAsLIARByAFsIgIgBGpB0QFqIgFFDQAgACgCACACayICQcwBaygCACIDQXhxIQAgAEEEQQggA0EDcSIDGyABakkNASADQQBHIAAgAUEnaktxDQIgAkHIAWsQvAULDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAAL0QgBA38gAkEEaiEEAkACQAJAAkACQAJAAkAgAigCAEEBaw4DAQIDAAsCQAJAAkACQAJAIAEoAgBBAWsOAwQBAgALQcwAEJABIgNFDQkgA0EANgIAIANBBGogBEHIAPwKAABBGBCQASICDQIMCAtB+OTIAEHdAEGo5cgAEL8TAAtBuOXIAEHfAEHo5cgAEL8TAAsgAkEBNgIUIAIgAzYCECACQQE2AgwgAUEBNgIAIAIgAUEEaiIEKAIINgIIIAIgBCkCADcCACABIAI2AgQMBAsgASgCBCICKAIUIgMgAigCDEYEQCACQQxqEKsSCyACKAIQIANBzABsaiIFQQA2AgAgBUEEaiAEQcgA/AoAACACIANBAWo2AhQMAwsCQAJAAkACQAJAIAEoAgBBAWsOAwQBAgALQcwAEJABIgNFDQggA0EBNgIAIANBBGogBEHIAPwKAABBGBCQASICDQIMBwtB+OfIAEHbAEGo6MgAEL8TAAtBuOjIAEHdAEHo6MgAEL8TAAsgAkEBNgIUIAIgAzYCECACQQE2AgwgAUEBNgIAIAIgAUEEaiIEKAIINgIIIAIgBCkCADcCACABIAI2AgQMAwsgASgCBCICKAIUIgMgAigCDEYEQCACQQxqEKsSCyACKAIQIANBzABsaiIFQQE2AgAgBUEEaiAEQcgA/AoAACACIANBAWo2AhQMAgsCQAJAAkACQAJAIAEoAgBBAWsOAwQBAgALQcwAEJABIgNFDQcgA0ECNgIAIANBBGogBEHIAPwKAABBGBCQASICDQIMBgtB+OXIAEHdAEGo5sgAEL8TAAtBuObIAEHfAEHo5sgAEL8TAAsgAkEBNgIUIAIgAzYCECACQQE2AgwgAUEBNgIAIAIgAUEEaiIEKAIINgIIIAIgBCkCADcCACABIAI2AgQMAgsgASgCBCICKAIUIgMgAigCDEYEQCACQQxqEKsSCyACKAIQIANBzABsaiIFQQI2AgAgBUEEaiAEQcgA/AoAACACIANBAWo2AhQMAQsCQAJAAkACQAJAIAEoAgBBAWsOAwQBAgALQcwAEJABIgNFDQYgA0EDNgIAIANBBGogBEHIAPwKAABBGBCQASICDQIMBQtB+ObIAEHbAEGo58gAEL8TAAtBuOfIAEHdAEHo58gAEL8TAAsgAkEBNgIUIAIgAzYCECACQQE2AgwgAUEBNgIAIAIgAUEEaiIEKAIINgIIIAIgBCkCADcCACABIAI2AgQMAQsgASgCBCICKAIUIgMgAigCDEYEQCACQQxqEKsSCyACKAIQIANBzABsaiIFQQM2AgAgBUEEaiAEQcgA/AoAACACIANBAWo2AhQLIAAgASgCMDYCMCAAIAEpAig3AiggACABKQIgNwIgIAAgASkCGDcCGCAAIAEpAhA3AhAgACABKQIINwIIIAAgASkCADcCAA8LQbjwyQBBAToAAAALQbjwyQBBAToAAAAL0wgCBn8BfiMAQTBrIgMkAAJAAkACQAJAAkACQAJAIAEoAhRFDQAgASgCECIHKAJoIgBFDQIgA0EQaiAAIAdB7ABqKAIAIgQoAghBAWtBeHFqQQhqIgggBCgCDBECACADKQMQQt2GlbWtxJD3U4UgAykDGELCyNi24MuMgiaFhEIAUg0BAkAgASgCCCIFRQ0AIAEoAgQhACAFQQNxIQZBACEEAkAgBUEETwRAIAVBfHEhBSAAIQEDQCABQQhqKQMAQgAgASgCABsgCYQgAUGYAWopAwBCACABQZABaigCABuEIAFBqAJqKQMAQgAgAUGgAmooAgAbhCABQbgDaikDAEIAIAFBsANqKAIAG4QhCSABQcAEaiEBIAUgBEEEaiIERw0ACyAGRQ0BCyAAIARBkAFsaiEBA0AgAUEIaikDAEIAIAEoAgAbIAmEIQkgAUGQAWohASAGQQFrIgYNAAsLIAlCgICAgIABg1ANACAIKAIAQX9HDQBBChCQASIERQ0EIARB/a7FAC8AADsACCAEQfWuxQApAAA3AABBERCQASIBRQ0FIAFBj6/FAC0AADoAECABQYevxQApAAA3AAggAUH/rsUAKQAANwAAIANBADYCECADQZCvxQBBL0G/r8UAQdMAIANBEGoQ7AMgAigCCCIFIAIoAgBGBEAgAhCgEgsgAigCBCAFQagCbGoiAEF+NgIYIABBADYCECAAQoGAgIAgNwMIIABCgYCAgNAANwMAIAAgAykDADcDMCAAIAMoAgg2AjggAEGCBDsBoAIgAEF+NgL0ASAAQX82AugBIABBfzYC3AEgAEF/NgK4ASAAQpGAgIBwNwOoASAAIAE2AqQBIABBETYCoAEgAEF/NgKUASAAQX82AogBIABCioCAgHA3A3ggACAENgJ0IABBCjYCcCAAQX82AlAgAEEBOgA8IAIgBUEBajYCCAsgBygCAA0AQQcQkAEiAUUNBSABQeWixQAoAAA2AAMgAUHiosUAKAAANgAAQQ4QkAEiBEUNBiAEQfatxQApAAA3AAYgBEHwrcUAKQAANwAAIANBADYCECADQf6txQBBH0GdrsUAQdgAIANBEGoQ7AMgAigCCCIFIAIoAgBGBEAgAhCgEgsgAigCBCAFQagCbGoiAEF+NgIYIABBADYCECAAQoGAgIAgNwMIIABCgYCAgNAANwMAIAAgAykDADcDMCAAIAMoAgg2AjggAEGCBDsBoAIgAEF+NgL0ASAAQX82AugBIABBfzYC3AEgAEF/NgK4ASAAQo6AgIBwNwOoASAAIAQ2AqQBIABBDjYCoAEgAEF/NgKUASAAQX82AogBIABCh4CAgHA3A3ggACABNgJ0IABBBzYCcCAAQX82AlAgAEEBOgA8IAIgBUEBajYCCAsgA0EwaiQADwtB/KLFABCdFQALQZjBxQAQnRUAC0EBEKcUAAtBARCnFAALQQEQpxQAC0EBEKcUAAvaCAEHfyMAQYABayICJAACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQCABLQA4RQRAIAEtAABBAWsOAgIDAQsgAS0AACIIQQFrDgIEBQMLIAJBADYCYCACQoCAgIAQNwJYIAJB8IfIADYCHCACQqCAgIAGNwIgIAIgAkHYAGo2AhggAUEUaiACQRhqED4NBiAAIAIoAmA2AgggACACKQJYNwIADAsLIAJBADYCYCACQoCAgIAQNwJYIAJB8IfIADYCHCACQqCAgIAGNwIgIAIgAkHYAGo2AhggAUEQaiACQRhqED4NBiAAIAIoAmA2AgggACACKQJYNwIADAoLIAJBADYCICACQoCAgIAQNwIYIAJBGGpBACABLQABQQJ0IgMoArzNSSIBQQFBARCzESACKAIgIQQgAQRAIAIoAhwgBGogAygC7M1JIAH8CgAACyAAIAEgBGo2AgggACACKQIYNwIADAkLIAJBGGogAUEEahCgByACIAIpAiQ3A1ggAiACKQIsNwNgIAIgAikCNDcDaCACIAIpAjw3A3AgAiACLwBFOwFUIAIgAi0ARzoAViACKAIcIQUgAigCGCEGIAItAEQhByACKAJIIQQgAigCIAwCCyACQRhqIAFBEGoQowEgAS0AMCEHIAEoAjQiBCgCACEDIAQgA0EBajYCACADQQBIDQQgAiACKQIYNwNYIAIgAikCIDcDYCACIAIpAig3A2ggAiACKQIwNwNwIAEoAgQhBiABKAIIIQUgASgCDAwBCyACIAEtAAM6AH4gAiABLwABOwF8IAIgASkCEDcDWCACIAEpAhg3A2AgAiABKQIgNwNoIAIgASkCKDcDcCACIAEvADE7AVQgAiABLQAzOgBWIAEoAgQhBiABKAIIIQUgAS0AMCEHIAEoAjQhBCABKAIMCyEDIAIgCDoAGCACQQA6AFAgAiACLwF8OwAZIAIgAi0AfjoAGyACIAM2AiQgAiAFNgIgIAIgBjYCHCACIAIpA1g3AiggAiACKQNgNwIwIAIgAikDaDcCOCACIAIpA3A3AkAgAiAHOgBIIAIgBDYCTCACIAItAFY6AEsgAiACLwFUOwBJIAJBDGoiASACQRhqEPsFIAIgAa1CgICAgMAChDcDWCAAQe/KwQAgAkHYAGoQuAwgAigCDCIABEAgAigCECIEQQRrKAIAIgNBeHEhASABQQRBCCADQQNxIgMbIABqSQ0EIANBAEcgASAAQSdqS3ENBSAEELwFCwJAAkAgAi0AGA4CAAEHCyACQRxqEOIIDAYLIAJBKGoQwwIgAigCTCIBKAIAIQAgASAAQQFrNgIAIABBAUcNBSACQcwAahC2CAwFC0HwtckAQTcgAkH/AGpBiIjIAEGotskAENoSAAtB8LXJAEE3IAJB/wBqQYiIyABBqLbJABDaEgsAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgAkGAAWokAAvzBwEHfyMAQdAAayIDJAACQAJAAkACQCABKAIAIgRBA0YEQCABKAIMIQIgASgCCCEBDAELAn8CfwJ/AkACQAJAAkACQAJAQQMgBEECayAEQQFNG0EBaw4FAQIDBAUACyADQQA2AgggA0KAgICAEDcCACADQczsxAA2AjQgA0KggICABjcCOCADIAM2AjAgASADQTBqEMgCDQsgAygCCCEFIAMoAgQhBCADKAIAIQZB1c7FACEHQQcMBgsgA0EANgIIIANCgICAgBA3AgAgA0HM7MQANgI0IANCoICAgAY3AjggAyADNgIwIAEgA0EwahDIAg0KIAMoAgghBSADKAIAIQZBs9HFACEHIAMoAgQMBAsgA0EANgIIIANCgICAgBA3AgAgA0HM7MQANgI0IANCoICAgAY3AjggAyADNgIwIAEgA0EwahDIAg0JIAMoAgghBSADKAIEIQQgAygCACEGQbClxQAhB0EHDAQLIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINCCADKAIIIQUgAygCBCEEIAMoAgAhBkG3pcUAIQdBCiEIQTQMBAsgA0EANgIIIANCgICAgBA3AgAgA0HM7MQANgI0IANCoICAgAY3AjggAyADNgIwIAEgA0EwahDIAg0HIAMoAgghBSADKAIEIQQgAygCACEGQbycyAAhB0EFDAILIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINBiADKAIIIQUgAygCACEGQbysyQAhByADKAIECyEEQQYLIQhBEAshCSADIAU2AiwgAyAENgIoIAMgCDYCJCADIAc2AiAgA0EGNgIcIANBs9HFADYCGCADIANBKGqtQoCAgIDQAYQ3A0AgAyADQSBqrUKAgICA0AGENwM4IAMgA0EYaq1CgICAgNABhDcDMCADQf72wQAgA0EwahC4DCADIAEgCWoiASkCADcCDCADIAEoAgg2AhQgAigCCCIBIAIoAgBGBEAgAhC9EgsgAiABQQFqNgIIIAIoAgQgAUEYbGoiASADKQIANwIAIAEgAykCCDcCCCABIAMpAhA3AhBBACEBIAYEQCAEQQRrKAIAIgJBeHEhBSAFQQRBCCACQQNxIgIbIAZqSQ0CIAJBAEcgBSAGQSdqS3ENAyAEELwFCwsgACACNgIEIAAgATYCACADQdAAaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQfC1yQBBNyADQc8AakHk7MQAQai2yQAQ2hIAC/MHAQd/IwBB0ABrIgMkAAJAAkACQAJAIAEoAgAiBEEERgRAIAEoAgwhAiABKAIIIQEMAQsCfwJ/An8CQAJAAkACQAJAAkBBAyAEQQJrIARBAU0bQQFrDgUBAgMEBQALIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINCyADKAIIIQUgAygCBCEEIAMoAgAhBkHVzsUAIQdBBwwGCyADQQA2AgggA0KAgICAEDcCACADQczsxAA2AjQgA0KggICABjcCOCADIAM2AjAgASADQTBqEMgCDQogAygCCCEFIAMoAgAhBkGz0cUAIQcgAygCBAwECyADQQA2AgggA0KAgICAEDcCACADQczsxAA2AjQgA0KggICABjcCOCADIAM2AjAgASADQTBqEMgCDQkgAygCCCEFIAMoAgQhBCADKAIAIQZBsKXFACEHQQcMBAsgA0EANgIIIANCgICAgBA3AgAgA0HM7MQANgI0IANCoICAgAY3AjggAyADNgIwIAEgA0EwahDIAg0IIAMoAgghBSADKAIEIQQgAygCACEGQbelxQAhB0EKIQhBNAwECyADQQA2AgggA0KAgICAEDcCACADQczsxAA2AjQgA0KggICABjcCOCADIAM2AjAgASADQTBqEMgCDQcgAygCCCEFIAMoAgQhBCADKAIAIQZBvJzIACEHQQUMAgsgA0EANgIIIANCgICAgBA3AgAgA0HM7MQANgI0IANCoICAgAY3AjggAyADNgIwIAEgA0EwahDIAg0GIAMoAgghBSADKAIAIQZBvKzJACEHIAMoAgQLIQRBBgshCEEQCyEJIAMgBTYCLCADIAQ2AiggAyAINgIkIAMgBzYCICADQQg2AhwgA0G85MQANgIYIAMgA0Eoaq1CgICAgNABhDcDQCADIANBIGqtQoCAgIDQAYQ3AzggAyADQRhqrUKAgICA0AGENwMwIANB/vbBACADQTBqELgMIAMgASAJaiIBKQIANwIMIAMgASgCCDYCFCACKAIIIgEgAigCAEYEQCACEL0SCyACIAFBAWo2AgggAigCBCABQRhsaiIBIAMpAgA3AgAgASADKQIINwIIIAEgAykCEDcCEEEAIQEgBgRAIARBBGsoAgAiAkF4cSEFIAVBBEEIIAJBA3EiAhsgBmpJDQIgAkEARyAFIAZBJ2pLcQ0DIAQQvAULCyAAIAI2AgQgACABNgIAIANB0ABqJAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB8LXJAEE3IANBzwBqQeTsxABBqLbJABDaEgAL9QgCCX8BfiMAQfACayICJAACQAJAAkACQCABKAIEIgQgASgCDEcEQCABKAIUIQMgASAEQRRqNgIEIAIgBCgCEDYCWCACIAQpAgg3A1AgAiAEKQIANwNIIAEoAhAhASACQQhqIAJByABqEPAOIAJBiAJqIgQgAUEQaiACKAIIIAIoAgwQqQQgAigCiAJBf0YNAyACQcABaiIBIARByAD8CgAAIAJBgAFqIAEQ2gEgAiACKACBATYCeCACIAIoAIQBNgB7IAIgAigAiQE2AnAgAiACKACMATYAcyACIAIoAJEBNgJoIAIgAigAlAE2AGsgAi0AgAEhBCACLQCIASEGIAItAJABIQcgAi0AmAEhCCACKAKwASEBIAIgAigAnAE2AGMgAiACKACZATYCYCABQX9GDQEgAiACKAChATYCICACIAIoAKQBNgAjIAIgAikCtAE3AxAgAiACKAK8ATYCGCACIAIoAng2AkAgAiACKAB7NgBDIAIgAigCcDYCOCACIAIoAHM2ADsgAi0AoAEhCSACKQOoASELIAIgAigAazYAMyACIAIoAmg2AjAgAiACKABjNgArIAIgAigCYDYCKCACKAJYIgooAgAhBSAKIAVBAWs2AgAgBUEBRgRAIAIoAlgQMAsgAygCMEF/RwRAIAMQjQMLIAMgBDoAACADIAIoAkA2AAEgAyACKABDNgAEIAMgBjoACCADIAIoAjg2AAkgAyACKAA7NgAMIAMgBzoAECADIAIoAjA2ABEgAyACKAAzNgAUIAMgCDoAGCADIAIoAig2ABkgAyACKAArNgAcIAMgCToAICADIAE2AjAgAyALNwMoIAMgAigCIDYAISADIAIoACM2ACQgAyACKQMQNwI0IAMgAigCGDYCPAsgAEH/AToAAAwBCyACIAIoAng2AugCIAIgAigAezYA6wIgAiACKAJwNgLgAiACIAIoAHM2AOMCIAIgAigCaDYC2AIgAiACKABrNgDbAiACIAIoAmA2AtACIAIgAigAYzYA0wIgAigCWCIBKAIAIQMgASADQQFqNgIAIANBAEgNAiACIAIoAOsCNgA7IAIgAigC6AI2AjggAiACKALgAjYCMCACIAIoAOMCNgAzIAIgAigC2AI2AiggAiACKADbAjYAKyACIAIoAtACNgIgIAIgAigA0wI2ACMgAigCSCEDIAEgASgCACIFQQFrNgIAIAIgAigCVDYCGCACIAIpAkw3AxAgBUEBRgRAIAIoAlgQMAsgACACKABDNgAMIAAgAigCQDYACSAAIAIoAjg2ABEgACACKAA7NgAUIAAgAigCMDYAGSAAIAIoADM2ABwgACACKAIoNgAhIAAgAigAKzYAJCAAIAIoAiA2ACkgACACKAAjNgAsIAAgAigCGDYCRCAAIAIpAxA3AjwgACABrTcDSCAAIAM2AjggACAIOgAoIAAgBzoAICAAIAY6ABggACAEOgAQIABBADoACCAAQQM6AAALIAJB8AJqJAAPC0Gck8YAEJ0VCwALoggBBn8jAEHgAmsiAyQAIAIoAhAiBSgCACEEIAUgBEEBajYCAAJAAkACQAJAAkAgBEEASA0AIAMgBTYCiAIgAyACKQIINwOAAiADIAIpAgA3A/gBIANBCGogASADQfgBaiIGEOwMIAUgBSgCACIEQQFqNgIAIARBAEgNACADIAU2AuABIAMgAikCCDcD2AEgAyACKQIANwPQASAGIANB0AFqIgQQ8QogBBDOECEHIAMgAygCgAI2AfQBIAMgAykC+AE3AewBIAMgBzoAtQIgA0ELOgC0AiADIAMpAeoBNwG2AiADIAMpAfABNwG8AiADQQA6ANQCIANBfzYCiAIgA0GYAmogBBDxCiADQoGAgIAQNwKAAiADQQE2ApQCIANBAjYCpAIgA0KBgICAEDcC+AECQEEYEJABIgQEQCAEIAMoAuABNgIQIAQgAykD2AE3AgggBCADKQPQATcCACAEIAE2AhRBGBCQASIBRQ0GIAFBADoAFCABQYTpxwA2AgwgASAENgIIIAFCgYCAgBA3AgAgAyABNgLYAiADQewAaiAGQeQA/AoAAEHIARCQASIBRQ0GAkACQAJAAkACQEEDIAMoAggiBEECayAEQQFNG0EBaw4DAQIDAAsgA0H4AWogA0EIakHkAPwKAAAMAwsgA0H8AWogA0EMahCgByADQQM2AvgBDAILQeQAEJABIgRFDQMgAygCDCAEELgPIANBBDYC+AEgAyAENgL8AQwBCyADQfgBaiADQQhqEOQFCyABIANB7ABqQeQA/AoAACABQeQAaiADQfgBaiIEQeQA/AoAACADQQI2AtgBIAMgATYC1AEgA0ECNgLQASACEK0QIgYEQCAEIANBCGpB5AD8CgAAQeQAEJABIgFFDQcgASAEQeQA/AoAACADQdABahCYEiADKALUASIEIAE2AswBIARBBDYCyAEgA0EDNgLYAQsgAyACEPAOIAMoAgQiAUEASA0DQQEhBAJAIAFFIgcNACADKAIAIQggARCQASIERQ0FIAcNACAEIAggAfwKAAALIAMgAygC2AE2AqACIAMgAykC0AE3A5gCIAMgATYCuAIgAyAENgK0AiADIAE2ArACIANBfjYC+AEgA0EBOwG8AiADQQA2AqwCIANCgICAgMAANwKkAgJAIAIQrhBFDQAgAhCtEA0AIAMoAqACIgEgAygCmAJGBEAgA0GYAmoQmBILIAMoApwCIAFB5ABsaiIEQQA6AAQgBEECNgIAIAMgAUEBajYCoAILIAAgA0H4AWpByAD8CgAAIABBADoARCAGDQUgA0EIahDABwwFCwwFCwwECwALEJ4VAAtBARCnFAALIAUgBSgCACIAQQFrNgIAIABBAUYEQCACKAIQEDALIANB4AJqJAAPC0G48MkAQQE6AAAAC4kHAQt/IwBB8ABrIgUkACABKAIIIQggASgCBCECIAEoAgwhBwJAAkACQAJAAkACQCABKAIgBEAgASgCMCEKIAVBEGohCyABKAIsIQwgASgCACEEIAEoAiQhBgJAA0ACQCAEBEACQCACIAdGBEAgAiEDDAELIAEgAkHkAGoiAzYCBCACKAIAIQkgBUEMaiACQQRqQeAA/AoAACAJQX9HDQgLIAcgA2tB5ABuIQIgAyAHRwRAA0AgAxDAByADQeQAaiEDIAJBAWsiAg0ACwsgCARAIARBBGsoAgAiA0F4cSECIAIgCEHkAGwiB0EEQQggA0EDcSIDG2pJDQIgA0EARyACIAdBJ2pLcQ0EIAQQvAULIAFBADYCAAsgBiAMRg0EIAEgBkHkAGoiAjYCJCAGKAIAIgNBf0YNBCALIAZBBGpB4AD8CgAAIAUgAzYCDCAFIAVBDGogCi0AABCfDiAFKAIAIghBf0YNBSABIAg2AgggASAFKAIEIgQ2AgQgASAENgIAIAEgBCAFKAIIQeQAbGoiBzYCDCACIQYgBCECDAELCwwGCwwGCyABKAIAIgRFDQACQCACIAdGBEAgAiEDDAELIAEgAkHkAGoiAzYCBCACKAIAIQkgBUEMaiACQQRqQeAA/AoAACAJQX9HDQMLIAcgA2tB5ABuIQIgAyAHRwRAA0AgAxDAByADQeQAaiEDIAJBAWsiAg0ACwsgCARAIARBBGsoAgAiA0F4cSECIAIgCEHkAGwiBkEEQQggA0EDcSIDG2pJDQUgA0EARyACIAZBJ2pLcQ0GIAQQvAULIAFBADYCAAsgBUF/NgIACwJAAkAgASgCECIEBEAgASgCFCICIAEoAhwiBkcNASAAQX82AgAgAiEDDAILIABBfzYCAAwDCyABIAJB5ABqIgM2AhQgACACQeQA/AoAACAAKAIAQX9HDQILIAYgA2tB5ABuIQIgAyAGRwRAA0AgAxDAByADQeQAaiEDIAJBAWsiAg0ACwsgASgCGCICBEAgBEEEaygCACIDQXhxIQAgACACQeQAbCICQQRBCCADQQNxIgMbakkNAyADQQBHIAAgAkEnaktxDQQgBBC8BQsgAUEANgIQDAELIAAgCTYCACAAQQRqIAVBDGpB4AD8CgAADAALIAVB8ABqJAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAvBBwEMfyMAQYABayIFJAAgBSABQQxqEIgNAkACQAJAAkACQAJAIAAoAhAiAkUNACACQQJ0QQtqQXhxIgQgAmpBCWoiAkUNACAAKAIMIARrIgNBBGsoAgAiBkF4cSEEIARBBEEIIAZBA3EiBhsgAmpJDQEgBkEARyAEIAJBJ2pLcQ0CIAMQvAULIABBDGoiAiAFKQIINwIIIAIgBSkCADcCACABKAIIIgQgACgCAEsEQCAAIAQgACgCCGsgACgCFCAAKAIYahDmDwsgASgCBCELAkAgBCAAKAIIIgJLBEAgACgCBCEJDAELIAAgBDYCCCAAKAIEIQkgAiAERwRAIAkgBEHIAGxqIQEDQCABQThqKAIAIgMEQCABQTxqKAIAIgdBBGsoAgAiCEF4cSEGIAZBBEEIIAhBA3EiCBsgA2pJDQYgCEEARyAGIANBJ2pLcQ0HIAcQvAULIAEQ8AUgAUHIAGohASACQQFrIgIgBEcNAAsLIAQhAgsgAgRAQQAhCCACIQEDQCAIIAlqIgNBxABqIAggC2oiCkHEAGooAgA2AgAgCkE8aigCACENIApBQGsoAgAhByADQUBrIgxBADYCAAJAAkAgA0E4aiIGKAIAIAdJBEAgBkEAIAcQzhEgDCgCACEGDAELQQAhBiAHRQ0BCyAHRQ0AIANBPGooAgAgBmogDSAH/AoAAAsgDCAGIAdqNgIAIAUgChCOByADEPAFIAMgBSkDMDcDMCADIAUpAyg3AyggAyAFKQMgNwMgIAMgBSkDGDcDGCADIAUpAxA3AxAgAyAFKQMINwMIIAMgBSkDADcDACAIQcgAaiEIIAFBAWsiAQ0ACwsgBCACayIGIAAoAgAgAmtLBEAgACACIAZBCEHIABCzESAAKAIEIQkLIAIgBEcEQCALIAJByABsaiEIIAkgACgCCCIBQcgAbGohCUEAIQQDQCAEIAhqIgNBxABqKAIAIQpBASEHAkAgA0FAaygCACICRSILDQAgA0E8aigCACEMIAIQkAEiB0UNByALDQAgByAMIAL8CgAACyAFIAI2AnggBSAHNgJ0IAUgAjYCcCAFQThqIgIgAxCOByAEIAlqIgMgAkHEAPwKAAAgA0HEAGogCjYCACAEQcgAaiEEIAFBAWohASAGQQFrIgYNAAsgACABNgIICyAFQYABaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0EBEKcUAAuQCAEPfyMAQfAAayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAhAiBSABKAIAIgYoAhAiB0kEQCAGKAIMIgkgBUEUbGoiBC0AACIIRQRAIAcgBCgCBCIKTQ0CIARBEEEIIAgbaigCACEOQRBBCCAJIApBFGxqIgQtAAAbIARqKAIAIQ8gA0IENwIsIANCADcCJCADQoCAgIDAADcCHCADQQA2AgwgASgCDCEIQX8hBCAKIAVBAWoiBU0NDCAJIAVBFGxqIgQtAAANBCABKAIIIRAgASgCBCERIAQoAgRBAWoiASAKSQRAA0AgASAHTw0FIAkgAUEUbGoiAS0AAA0GIAogASgCBEEBaiIBSw0ACwsgA0HgAGohCUF/IQQDQCAGIAYoAgBBAWoiATYCACABRQ0GIAggCCgCAEEBaiIBNgIAIAFFDQYgBigCECIBIAVNDQcgBigCDCILIAVBFGxqIgctAAANCCADIAU2AkQgAyAINgJAIAMgEDYCPCADIBE2AjggAyAGNgI0IAcoAgQiByABTw0JIAsgB0EUbGoiAS0AAEUNCgJAAkACQAJAIAEtAAFBF2sODgEAAAAAAAAAAAAAAAACAAsgA0E0akGgnMgAQQlBrJzIABC1DSAGIAYoAgBBAWsiATYCACABRQRAIAYQgRALIAggCCgCAEEBayIBNgIAIAENAiAIEPYPDAILIANBNGogA0EMaiACEJICDAELIANB2ABqIANBNGoQzQ0gAyAJKQIANwNIIAMgCSkCCDcDUCADKAJcIAMoAlghBSAEQQFrQX1NBEAgDEEEaygCACINQXhxIQsgC0EEQQggDUEDcSINGyAEakkNDSANQQBHIAsgBEEnaktxDQ4gDBC8BQshDCAFIQQLIAogB0EBaiIFSw0ACwwMC0Ggq8kAQShB1IzIABCvFAALIAUgB0HkjMgAEIUTAAsgCiAHQeSMyAAQhRMACyABIAdB4IrIABCFEwALQaCryQBBKEHwisgAEK8UCwALIAUgAUGkjcgAEIUTAAtBoKvJAEEoQbSNyAAQrxQACyAHIAFBhI3IABCFEwALQaCryQBBKEGUjcgAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAYgBigCAEEBayIBNgIAIAFFBEAgBhCBEAsgCCAIKAIAQQFrIgE2AgAgAUUEQCAIEPYPCyAEQX9GBEBBkJzIABCdFQALIAAgAykDUDcCOCAAIAMpA0g3AjAgACADKQIMNwIAIAAgAykCFDcCCCAAIAMpAhw3AhAgACADKQIkNwIYIAAgAykCLDcCICAAQQA2AkggACAPNgJEIAAgDjYCQCAAIAw2AiwgACAENgIoIANB8ABqJAAL/QcBB38jAEHQAGsiAyQAAkACQAJAAkACQAJ/IAEoAgAiBEEBTQRAIAAgASkCNDcCECAAIAEoAjw2AhggASgCGCECIAEoAhQhBSABKAIwIQQgASgCLAwBC0EEIQUgBEEERw0BIAAgASkCEDcCECAAIAEoAhg2AhggASgCDCEEQQAhAiABKAIICyEBIAAgAjYCDCAAIAU2AgggACAENgIEDAELIABBADYCAAJ/An8CfwJAAkACQAJAAkACQCAEQQNrDgUCAAMEBQELAAsgA0EANgIIIANCgICAgBA3AgAgA0HM7MQANgI0IANCoICAgAY3AjggAyADNgIwIAEgA0EwahDIAg0KIAMoAgghBiADKAIEIQQgAygCACEFQdXOxQAhB0EHDAULIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINCSADKAIIIQYgAygCBCEEQbPRxQAhByADKAIADAMLIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAGNwI4IAMgAzYCMCABIANBMGoQyAINCCADKAIIIQYgAygCBCEEIAMoAgAhBUG3pcUAIQdBCiEIQTQMBAsgA0EANgIIIANCgICAgBA3AgAgA0HM7MQANgI0IANCoICAgAY3AjggAyADNgIwIAEgA0EwahDIAg0HIAMoAgghBiADKAIEIQQgAygCACEFQbycyAAhB0EFDAILIANBADYCCCADQoCAgIAQNwIAIANBzOzEADYCNCADQqCAgIAG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NgJsIAIgBjYCaCACQoCAgIAQNwJgIAEgBCACQeAAaiADEPkICyADRQ0CAkAgAS0AkQFBAkcNACABKAIAQQFGBEAgASgCBCIDIAEoAggiBE8NBCABIANBAWoiBjYCBCAEIAZNDQEgASADQQJqNgIECyABQQA6AJEBIAJBIGogARCUCiACKAIgIAIoAiQiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAyABKAIITw0CIAEgA0EBajYCBAsCQCABLQCRASIDRQRAIAJBEGogARCUCiACKAIUIQEgAigCECEEDAELIAFBADoAkQEgAkEYaiABEJQKIAIoAhghBCACKAIcIgEgAzoAkQELIARBAXFFDQALCyACQQhqIAEQQCACKAIMIQEgAigCCAwDCyABIAIoAkg2AogBIAEgAikDQDcCgAFBASEEDAQLQQEQpxQAC0EBCyIEQQFHDQIgASACKAJYNgKIASABIAIpA1A3AoABIAUgASgCFCIDSw0AIAEgBTYCFCAFIQMLIAEgAigCSDYCiAEgASACKQNANwKAASADIAdJDQELIAEgBzYCFAsgACAENgIAIAAgATYCBCACQfAAaiQAC94HAQZ/IwBB8ABrIgIkAAJAAkACQAJ/AkACQAJAAkACQAJAIAEoAgBBAUYEQCABKAIEIgMgASgCCCIFSQ0BQQEhBAwKCyABKAIUIQcgAiABKAKIATYCSCACIAEpAoABNwNAIAEtAJEBQQJGDQEMAgsgASADQQFqIgQ2AgQgASgCFCEHIAIgASgCiAE2AkggAiABKQKAATcDQCABLQCRAUECRw0BIAQgBU8NAiABIANBAmoiBDYCBCAEIAVPDQEgASADQQNqNgIECyABQQA6AJEBIAJBOGogARCUCiACKAI4IAIoAjwiAUECOgCRAUEBcQ0AA0AgASgCAEEBRgRAIAEoAgQiAyABKAIITw0CIAEgA0EBajYCBAsCQCABLQCRASIDRQRAIAJBKGogARCUCiACKAIsIQEgAigCKCEEDAELIAFBADoAkQEgAkEwaiABEJQKIAIoAjAhBCACKAI0IgEgAzoAkQELIARBAXFFDQALCyABKAIAQQFGBEAgASgCBCIDIAEoAghPBEAgASgCFCEDQQEhBAwGCyABIANBAWo2AgQLIAEoAhQhBSACIAEoAogBIgQ2AlggAiABKQKAATcDUEEAIQMCQCAEIAEoAoQBTw0AIAFBgAFqKAIAIARqLQAAQSxHDQAgASAEQQFqNgKIAUEBIQMLIAEtAHxBAUYEQEEBEJABIgZFDQIgBkEsOgAAIAJBATYCbCACIAY2AmggAkKAgICAEDcCYCABIAQgAkHgAGogAxD5CAsgA0UNAgJAIAEtAJEBQQJHDQAgASgCAEEBRgRAIAEoAgQiAyABKAIIIgRPDQQgASADQQFqIgY2AgQgBCAGTQ0BIAEgA0ECajYCBAsgAUEAOgCRASACQSBqIAEQlAogAigCICACKAIkIgFBAjoAkQFBAXENAANAIAEoAgBBAUYEQCABKAIEIgMgASgCCE8NAiABIANBAWo2AgQLAkAgAS0AkQEiA0UEQCACQRBqIAEQlAogAigCFCEBIAIoAhAhBAwBCyABQQA6AJEBIAJBGGogARCUCiACKAIYIQQgAigCHCIBIAM6AJEBCyAEQQFxRQ0ACwsgAkEIaiABEJcDIAIoAgwhASACKAIIDAMLIAEgAigCSDYCiAEgASACKQNANwKAAUEBIQQMBAtBARCnFAALQQELIgRBAUcNAiABIAIoAlg2AogBIAEgAikDUDcCgAEgBSABKAIUIgNLDQAgASAFNgIUIAUhAwsgASACKAJINgKIASABIAIpA0A3AoABIAMgB0kNAQsgASAHNgIUCyAAIAQ2AgAgACABNgIEIAJB8ABqJAAL1gcCC38DfiMAQeAAayIEJAACQAJAAkACQAJAAkAgASgCACIDLQBMIgJBAkcEQAJAIAJBAXENACADKAI8IgIgAygCQCIHRg0AA0AgAyACQeQAaiIFNgI8IAIoAlQgAygCREcNASACKAJYIAMoAkhHDQECfwJAIAMoAjgiCCADKAI0aiIGIAMoAigiAigCCCIJSQRAIAIoAgQgBkHkAGxqIgktAGBFDQEgBQwCCyAGIAlB5PbIABCFEwALIAUgAiAGEOwQDQAaIAMoAiQoAgAiAigCACEFIAIgBUEBajYCACAFQQBIDQUgCS0ASCEFIAQgAjYCFCAEIAY2AgggBEEANgIEIARBAUECIAUbIgc2AgAgAyAEEO0IDQQgAiACKAIAIgVBAWs2AgAgBUEBRgRAIAIQMAsgAygCOCEIIAMoAkAhByADKAI8CyECIAMgCEEBajYCOCACIAdHDQALCyADQQI6AEwLIAMtAHgiAUECRg0EIAFBAXENBCADKAJoIgIgAygCbCIGRg0EA0AgAyACQfAAaiIBNgJoAkAgAigCWCADKAJwRgRAIAIoAlwgAygCdEYNAQsgA0EBOgB4DAYLAkACQCADKAJUIgUoArQCRQ0AIAUoAqwCIgggAygCZCIHIAMoAmBqIglB3cvdnnlsQQ93IgpxIQIgCkEZdq1CgYKEiJCgwIABfiEPIAUoAqgCIQpBACELA0AgAiAKaikAACIOIA+FIg1CgYKEiJCgwIABfSANQn+Fg0KAgYKEiJCgwIB/gyINQgBSBEADQCAJIAogDXqnQQN2IAJqIAhxQQN0ayIMQQhrKAIARg0EIA1CAX0gDYMiDUIAUg0ACwsgDiAOQgGGg0KAgYKEiJCgwIB/g0IAUg0BIAtBCGoiCyACaiAIcSECDAALAAtB1LnEAEEWQZS5xAAQwBMACyABIQIgBSAMQQRrKAIAENoGRQRAIAMoAlAoAgAiASgCACECIAEgAkEBajYCACACQQBIDQMgBCAJNgIIIAQgATYCBCAEQQA2AgAgAyAEEO0IGiABIAEoAgAiAkEBazYCACACQQFGBEAgARAwCyADKAJkIQcgAygCbCEGIAMoAmghAgsgAyAHQQFqNgJkIAIgBkcNAAsMBAsgAyAIQQFqNgI4IAQgAjYCXCAEIAY2AlAgBEEANgJMIAQgBzYCSCAEQcwAaiECIAEoAgghASAFRQ0BIAIQrRBFBEAgBCABIAIQlAMMAwsgBCABIAIQigcMAgsACyAEIAEgAhD/BQsgACAEQcgA/AoAAAwBCyAAQX02AgALIARB4ABqJAALxQcBC38jAEGgAmsiAiQAIAEoAgAhDEEEIQUCQAJAIAEoAhAiA0UNACABKAIUIQUgAyADKAIAIgZBAWo2AgAgBkEASA0BIAIgAyAFEOEJQQQhBQJAIAIoAgAiBiACKAIEIgcQ4A1FDQAgAkEMaiIJIAYgBxDXCSACQdgBaiACKAIQIgcgAigCFBCHCAJAAkAgAigC2AEiBEF/RwRAIAIoAuABIQggAigC3AEhBSAJEOoEIAIoAgwiCkUNAyAHQQRrKAIAIgtBeHEhCSAJIApByAFsIgpBBEEIIAtBA3EiCxtqSQ0BIAtBAEcgCSAKQSdqS3ENAiAHELwFDAMLQcT4xwBBJUH8+McAEMATAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAYgBigCACIHQQFrNgIAIAdBAUYEQCAGEDALIAMgAygCACIGQQFrNgIAIAZBAUcNACADEDALIAJBHGogAUEEaiIGEPwIIAIgDDYCGCACIAg2AhQgAiAFNgIQIAIgBDYCDCACQQA6AHcgAiABKAIANgKAASACIAJB9wBqNgJ8IAIgAkEMajYCeCACQZABaiIEIAJB+ABqEM0EAkACQAJAAkAgAigCkAFBfUcEQEGgAhCQASIFRQ0CIAUgBEHIAPwKAAAgAkEBNgKMASACIAU2AogBIAJBBDYChAFByAAhBEEBIQMDQCACQdgBaiACQfgAahDNBCACKALYAUF9RkUEQCACKAKEASADRgRAIAJBhAFqIANBAUEIQcgAELMRIAIoAogBIQULIAQgBWogAkHYAWpByAD8CgAAIAIgA0EBaiIDNgKMASAEQcgAaiEEDAELCyAAIAIoAowBNgIIIAAgAikChAE3AgAMAQsgAEEANgIIIABCgICAgIABNwIACyACKAIQIQAgAigCFCIEBEAgAEEQaiEDA0AgAygCACIIKAIAIQUgCCAFQQFrNgIAIAVBAUYEQCADKAIAEDALIANBFGohAyAEQQFrIgQNAAsLIAIoAgwiAwRAIABBBGsoAgAiBUF4cSEEIAQgA0EUbCIDQQRBCCAFQQNxIgUbakkNAiAFQQBHIAQgA0EnaktxDQMgABC8BQsgBigCACIEKAIAIQAgBCAAQQFrNgIAIABBAUYEQCAGKAIAEDALAkAgASgCECIARQ0AIAAgACgCACIAQQFrNgIAIABBAUcNACABKAIQEDALIAJBoAJqJAAPC0EIEKcUAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAsAC8ISAhF/An4CQAJAQQIgACkDACIUp0ECayAUQgFYGyICQQIgASkDACITpyIEQQJrIBNCAVgbRw0AAkACQAJAAkAgAkEBaw4DAQIDAAsgACgCCCICIAEoAghHDQMgAkUNBCAAKAIMIAEoAgxHDQMgACgCECABKAIQRw0DIAAoAhQgASgCFEYPCyAAKAIIIgIgASgCCEcNAgJAIAIEQCAAKAIMIAEoAgxHDQQgACgCECABKAIQRw0EIAAoAhQgASgCFEYNAQwECyAAKAIMIAEoAgxHDQMLIAAoAiQiAiABKAIkRw0CIAJFBEBBAQ8LIAAoAiAhACABKAIgIQEgAkEBayECA0AgACABEJcGIg5FDQMgAkEARyAAQcgBaiEAIAFByAFqIQEgAkEBayECDQALDAILIAAoAqwBIAEoAqwBRw0BIAAtAKABIAEtAKABRw0BIAAtAKEBIAEtAKEBRw0BIAAoApgBIAEoApgBRw0BIAAoApwBIAEoApwBRw0BIAEoAnwhAgJAIAAoAnxBf0cEQCACQX9GDQMCfwJAIABB/ABqIgIoAggiAyABQfwAaiIGKAIIRw0AQQEgA0UNARogAigCBCECIAYoAgQhBgNAIAIgBhCXBkUNASACQcgBaiAGQcgBahC/A0UNASACQegBaiECIAZB6AFqIQYgA0EBayIDDQALQQEMAQtBAAsNAQwDCyACQX9HDQILIAApAxAiEyABKQMQUg0BIBNCA1EEQCAAKQMYIAEpAxhSDQILAkAgFEIBUQRAIARBAXFFDQMgACkDCCABKQMIUQ0BDAMLIARBAXENAgsgAS0AICECAkAgAC0AIEH/AUcEQCACQf8BRg0DIABBIGogAUEgahCfBA0BDAMLIAJB/wFHDQILIAAoAngiAiABKAJ4Rw0BIAAoAnQhESABKAJ0IRICQCACIgZFBEBBASECDAELA0ACQEEDIA9BBnQiBCARaiIDKAIAIgJBG2sgAkEaTRshAgJAAkAgAkEDIAQgEmoiBCgCACIFQRtrIAVBGk0bRw0AAkACQAJAAkACQAJAAkAgAkEBaw4DAQIDAAsgAygCBCIHIAQoAgRHDQYgBCgCCCECIAMoAgghBQJAIAcEQCACIAVHDQggAygCDCAEKAIMRw0IIAMoAhAgBCgCEEYNAQwICyACIAVHDQcLIAMoAiAiByAEKAIgRw0GIAcEQCADKAIcIQsgBCgCHCEMQQAhAkEAIQUDQCAFIAtqIgkoAgAiCkECRyIQIAUgDGoiCCgCACINQQJGRg0KAkAgEEUEQCAJQQhqKAIAIAhBCGooAgBHDQwMAQsgCiANRw0LAkAgCUEEaigCACAIQQRqKAIARyINDQAgCkEBcUUNACAJQQhqKAIAIAhBCGooAgBHDQwgCUEMaigCACAIQQxqKAIARg0BDAwLIA0NCyAKQQFxDQsLIAVBFGohBSAHQQFrIgcNAAsLIAMtACQgBC0AJEcNBiAELQAlIQIgAy0AJSIDQQJHDQUgAkECRg0HDAYLIAMoAgQiByAEKAIERw0FIAQoAgghAiADKAIIIQUCQCAHBEAgAiAFRw0HIAMoAgwgBCgCDEcNByADKAIQIAQoAhBGDQEMBwsgAiAFRw0GCyADLQAYIAQtABhHDQUgAy0AGSAELQAZRg0GDAULIAMoAgwiByAEKAIMRw0EIAdFDQIgAygCCCELIAQoAgghDEEAIQJBACEFDAELIAMoAigiCSAEKAIoRw0DIAkEQCADKAIkIQogBCgCJCELQQAhAkEAIQUDQCAFIApqIggoAgAiDCAFIAtqIgcoAgBHDQcCQCAMRQRAIAhBBGooAgAgB0EEaigCAEcNCQwBCyAIQQRqKAIAIAdBBGooAgBHDQggCEEIaigCACAHQQhqKAIARw0IIAhBDGooAgAgB0EMaigCAEcNCAsgBUEUaiEFIAlBAWsiCQ0ACwsgAy0AOCAELQA4Rw0DIAMgBBC/A0UNAyADKAI0IgcgBCgCNEcNAyAHRQ0EIAMoAjAhCSAEKAIwIQpBACECQQAhBQNAIAUgCWoiBCgCACIIQQJHIgwgBSAKaiIDKAIAIgtBAkZGDQYCQCAMRQRAIARBCGooAgAgA0EIaigCAEcNCAwBCyAIIAtHDQcCQCAEQQRqKAIAIANBBGooAgBHIgsNACAIQQFxRQ0AIARBCGooAgAgA0EIaigCAEcNCCAEQQxqKAIAIANBDGooAgBGDQEMCAsgCw0HIAhBAXENBwsgBUEUaiEFIAdBAWsiBw0ACwwECwNAIAUgC2oiCSgCACIKQQJHIhAgBSAMaiIIKAIAIg1BAkZGDQUCQCAQRQRAIAlBCGooAgAgCEEIaigCAEcNBwwBCyAKIA1HDQYCQCAJQQRqKAIAIAhBBGooAgBHIg0NACAKQQFxRQ0AIAlBCGooAgAgCEEIaigCAEcNByAJQQxqKAIAIAhBDGooAgBGDQEMBwsgDQ0GIApBAXENBgsgBUEUaiEFIAdBAWsiBw0ACwsgAy0AECAELQAQRw0BIAMtABEgBC0AEUcNAQwCCyACIANGDQELQQAhAgwBC0EBIQIgD0EBaiIPIAZHDQELCwsgAkUNASABKAKIASECAkAgACgCiAFBf0cEQCACQX9GDQMCQCAAQYgBaiIGKAIIIgIgAUGIAWoiAygCCEcEQEEAIQIMAQsgAkUEQEEBIQIMAQsgBigCBCEGIAMoAgQhAyACQQFrIQQDQCAGIAMQlwYiAgRAIARBAEcgBkHIAWohBiADQcgBaiEDIARBAWshBA0BCwsLIAINAQwDCyACQX9HDQILIAEtAKIBIQICQCAALQCiASIGQQJHBEAgAiAGRg0BDAMLIAJBAkcNAgsgACgCuAEiAiABKAK4AUcNASAAKAK0ASABKAK0ASACEMISRQ0BIAAoAsQBIgIgASgCxAFHDQEgAkUEQEEBDwsgACgCwAEhACABKALAASEBIAJBAWshAgNAIAAgARCXBiIORQ0CIAJBAEcgAEHIAWohACABQcgBaiEBIAJBAWshAg0ACwwBCyAAKAJcIAEoAlxHDQAgAEEIaiIALQAAIgIgAUEIaiIBLQAAIgZxQf8BRiEOIAJB/wFGDQAgBkH/AUYNACAAIAEQnwQhDgsgDg8LIAAoAgwgASgCDEYL4gcCDX8FfiMAQZABayICJAAgAkEANgIMIAJCgICAgIABNwIEIAJBmKnJACkDADcCGCACQZCpyQApAwA3AhAgAkEQaiABQRxqEIgNAkACQCABKAIYIggEQAJAIAhB////DyACKAIYIAIoAhxqIgUgBUH///8PTxsiBUkEQCAFQQZ0EJABIgMNAQsgCCIFQQZ0IgQQkAEiAw0AQQgQpxQACyACIAU2AgQgAigCDCEGIAIgAzYCCCADIAZBBnRqIQwgAkH0AGohCSABKAIUIQ0DQCAKIA1qIgRBMGooAgAhDkEBIQsCQCAEQTxqKAIAIgdFIgUNACAEQThqKAIAIQMgBxCQASILRQ0DIAUNACALIAMgB/wKAAALQYCAgIB4IQUCQAJAAkACQAJAAkBBBSAEQRBqKAIAIgNBgICAgHhzIANBAE4bQQFrDgUAAQIDBAULIAIgBCkDCDcDWCACIAQpAwA3A1AgAiAEQRRqKQIANwMwIAIgBEEcaikCADcDOCACIARBJGopAgA3A0AgAiAEQSxqKAIANgJIIAMhBQwECyACIAQpAwg3A1ggAiAEKQMANwNQIAIgBEEUaikCADcDMCACIARBHGopAgA3AzggAiAEQSRqKQIANwNAIAIgBEEsaigCADYCSCADIQUMAwsCQCAEQQhqKAIAIgNFBEBBASEFDAELIARBBGooAgAhBCADEJABIgVFDQcgA0UNACAFIAQgA/wKAAALIAIgAzYCWCACIAU2AlQgAiADNgJQQYOAgIB4IQUMAgsgAkHQAGogBEEEaigCACAEQQhqKAIAEPUIQYSAgIB4IQUMAQsgAkHgAGogBBCYBiACIAIpA2g3A1ggAiACKQNgNwNQIAIgCSkCADcDMCACIAkpAgg3AzggAiAJKQIQNwNAIAIgCSgCGDYCSCACKAJwIQULIAIgAikDWCIPNwMoIAIgAikDUCIQNwMgIAIgAikDMCIRNwNgIAIgAikDOCISNwNoIAIgAikDQCITNwNwIAIgAigCSCIENgJ4IAogDGoiAyAPNwMIIAMgEDcDACADQRBqIAU2AgAgA0EUaiARNwIAIANBHGogEjcCACADQSRqIBM3AgAgA0EsaiAENgIAIANBPGogBzYCACADQThqIAs2AgAgA0E0aiAHNgIAIANBMGogDjYCACAKQUBrIQogBkEBaiEGIAhBAWsiCA0ACwsgACACKQIENwIQIAAgAikCFDcCICAAIAIoAhw2AiggAiAGNgIMIAAgAikCDDcCGCAAIAEpAwg3AwggACABKQMANwMAIAJBkAFqJAAPC0EBEKcUAAtBARCnFAAL4gcCDX8FfiMAQZABayICJAAgAkEANgIMIAJCgICAgIABNwIEIAJBmKnJACkDADcCGCACQZCpyQApAwA3AhAgAkEQaiABQRxqEIgNAkACQCABKAIYIggEQAJAIAhB////DyACKAIYIAIoAhxqIgUgBUH///8PTxsiBUkEQCAFQQZ0EJABIgMNAQsgCCIFQQZ0IgQQkAEiAw0AQQgQpxQACyACIAU2AgQgAigCDCEGIAIgAzYCCCADIAZBBnRqIQwgAkH0AGohCSABKAIUIQ0DQCAKIA1qIgRBMGooAgAhDkEBIQsCQCAEQTxqKAIAIgdFIgUNACAEQThqKAIAIQMgBxCQASILRQ0DIAUNACALIAMgB/wKAAALQYCAgIB4IQUCQAJAAkACQAJAAkBBBSAEQRBqKAIAIgNBgICAgHhzIANBAE4bQQFrDgUAAQIDBAULIAIgBCkDCDcDWCACIAQpAwA3A1AgAiAEQRRqKQIANwMwIAIgBEEcaikCADcDOCACIARBJGopAgA3A0AgAiAEQSxqKAIANgJIIAMhBQwECyACIAQpAwg3A1ggAiAEKQMANwNQIAIgBEEUaikCADcDMCACIARBHGopAgA3AzggAiAEQSRqKQIANwNAIAIgBEEsaigCADYCSCADIQUMAwsCQCAEQQhqKAIAIgNFBEBBASEFDAELIARBBGooAgAhBCADEJABIgVFDQcgA0UNACAFIAQgA/wKAAALIAIgAzYCWCACIAU2AlQgAiADNgJQQYOAgIB4IQUMAgsgAkHQAGogBEEEaigCACAEQQhqKAIAEPYIQYSAgIB4IQUMAQsgAkHgAGogBBCZBiACIAIpA2g3A1ggAiACKQNgNwNQIAIgCSkCADcDMCACIAkpAgg3AzggAiAJKQIQNwNAIAIgCSgCGDYCSCACKAJwIQULIAIgAikDWCIPNwMoIAIgAikDUCIQNwMgIAIgAikDMCIRNwNgIAIgAikDOCISNwNoIAIgAikDQCITNwNwIAIgAigCSCIENgJ4IAogDGoiAyAPNwMIIAMgEDcDACADQRBqIAU2AgAgA0EUaiARNwIAIANBHGogEjcCACADQSRqIBM3AgAgA0EsaiAENgIAIANBPGogBzYCACADQThqIAs2AgAgA0E0aiAHNgIAIANBMGogDjYCACAKQUBrIQogBkEBaiEGIAhBAWsiCA0ACwsgACACKQIENwIQIAAgAikCFDcCICAAIAIoAhw2AiggAiAGNgIMIAAgAikCDDcCGCAAIAEpAwg3AwggACABKQMANwMAIAJBkAFqJAAPC0EBEKcUAAtBARCnFAALqggCBH8CfiMAQfABayIDJAACQAJAAkACQAJAIAEoAggiBgRAIAMgASgCBCIFIAZBA3RqQQhrNgKIASADIAKtQoCAgIDAAoQ3A8ABIAMgA0GIAWqtQoCAgICgAoQ3A7gBIANBDGpB0pTCACADQbgBahC4DCADAn5B0PDJAC0AAARAQcjwyQApAwAhCEHA8MkAKQMADAELIANBuAFqELsRQdDwyQBBAToAAEHI8MkAIAMpA8ABIgg3AwAgAykDuAELIgc3AxhBwPDJACAHQgF8NwMAIANBADYCMCADQoCAgICAATcDKCADIAg3AyAgA0GQqckAKQMANwI0IANBmKnJACkDADcCPEEKEJABIgRFDQEgBEGHsckALwAAOwAIIARB/7DJACkAADcAACADQQo2AoQBIAMgBDYCgAEgA0EKNgJ8IANBuAFqIgQgAhCLAyAD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CyAEKAIIIAQoAgwhEhCnFAALgAgBBX8jAEEgayICJAACQAJAAkACQAJAQRogACgCACIEKAIAIgAgAEEaTBtBG2sOAwECAwALQQEhACABKAIAIgNBoZLJAEEIIAEoAgQiBigCDCIFEQAADQMCQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQUgBCABEIIMRQ0BDAULIANBnePCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBCACQRBqEIIMDQQgAigCEEGkssgAQQIgAigCFCgCDBEAAA0ECyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAwtBASEAIAEoAgAiA0GpkskAQQ0gASgCBCIGKAIMIgURAAANAiAEQQRqIQQCQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQQgBCABEM0IRQ0BDAQLIANBnePCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIgAzYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBCACQRBqEM0IDQMgAigCEEGkssgAQQIgAigCFCgCDBEAAA0DCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAgtBASEAIAEoAgAiA0G2kskAQQwgASgCBCIGKAIMIgURAAANASAEQQRqIQQCQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQMgBCABEM0IRQ0BDAMLIANBnePCAEECIAURAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBCACQRBqEM0IDQIgAigCEEGkssgAQQIgAigCFCgCDBEAAA0CCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAQtBASEAIAEoAgAiA0HCkskAQQcgASgCBCIGKAIMIgURAAANAAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANAiAELQAEQQFGBEAgAUGvssgAQQQQnQRFDQIMAwsgAUGqssgAQQUQnQRFDQEMAgsgA0Gd48IAQQIgBREAAA0BIAIgBjYCBCACIAM2AgAgAkEBOgAPIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAQtAAQhACACIAI2AhACQAJAIABBAUYEQCACQRBqQa+yyABBBBCdBA0BDAILIAJBEGpBqrLIAEEFEJ0ERQ0BC0EBIQAMAgtBASEAIAJBpLLIAEECEP0IDQELIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAsgAkEgaiQAIAALgAgBBX8jAEEgayICJAACQAJAAkACQAJAQRogACgCACIEKAIAIgAgAEEaTBtBG2sOAwECAwALQQEhACABKAIAIgNBoZLJAEEIIAEoAgQiBigCDCIFEQAADQMCQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQUgBCABELYLRQ0BDAULIANBnePCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBCACQRBqELYLDQQgAigCEEGkssgAQQIgAigCFCgCDBEAAA0ECyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAwtBASEAIAEoAgAiA0GpkskAQQ0gASgCBCIGKAIMIgURAAANAiAEQQRqIQQCQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQQgBCABEM4IRQ0BDAQLIANBnePCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIgAzYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBCACQRBqEM4IDQMgAigCEEGkssgAQQIgAigCFCgCDBEAAA0DCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAgtBASEAIAEoAgAiA0G2kskAQQwgASgCBCIGKAIMIgURAAANASAEQQRqIQQCQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQMgBCABEM4IRQ0BDAMLIANBnePCAEECIAURAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBCACQRBqEM4IDQIgAigCEEGkssgAQQIgAigCFCgCDBEAAA0CCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAQtBASEAIAEoAgAiA0HCkskAQQcgASgCBCIGKAIMIgURAAAN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EKMVAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQaCryQBBKEGUu8UAEK8UAAsgAEEFNgIUIABBj7vFADYCECAAQoOAgIBwNwIIIABBjLvFADYCBCAAQX82AgALAkAgBEUNACAEIAQoAgAiAEEBazYCACAAQQFHDQAgBCAFELYQCyAGQeAAaiQADwsgAiADQQIgA0GYuMUAEP0UAAutBwIOfwF+IwBBkARrIgIkACABKAIEIgcgASgCCCIDQegBbGohCCABKAIAIQogByEBAkACQCADRQ0AIABBIGohDCACQYgCaiENIAJBuANqIQ4gAkHhAmohBSACQbcDaiEEIAJB2AJqQQFyIQYgAkEQaiEPAkADQAJAAkACQCABKQMAIhBCf1IEQCACIBA3AwggDyABQQhqQcAB/AoAACACIAFB4AFqKQMANwPoASACIAFB2AFqKQMANwPgASACIAFB0AFqKQMANwPYASACIAFByAFqKQMANwPQASACQbADaiACQQhqEOEIIAIoArgDIQAgAigCtAMhCyACKAKwAyIJQX9GDQEgCyEDDAILIAFB6AFqIQEMBQsgAEEASA0BIABFBEBBASEDQQAhCUEAIQAMAQsgABCQASIDRQ0DIAAEQCADIAsgAPwKAAALIAAhCQsgAiAANgL8ASACIAM2AvgBIAIgCTYC9AECQAJAAkACQAJAQQIgAikDCCIQp0ECayAQQgFYG0EBaw4DAAECAwsgBCACKQPoATcAGCAEIAIpA+ABNwAQIAQgAikD2AE3AAggBCACKQPQATcAACAGIAIpALADNwAAIAYgAikAuAM3AAggBiACKQDAAzcAECAGIAIpAMgDNwAYIAYgAikAzwM3AB8gAkEAOgDYAgwDC0H09sgAQRNB4P3GABCvFAALQfT2yABBE0Hw/cYAEK8UAAsgBCACKQPoATcAGCAEIAIpA+ABNwAQIAQgAikD2AE3AAggBCACKQPQATcAACAFIAIpALADNwAAIAUgAikAuAM3AAggBSACKQDAAzcAECAFIAIpAMgDNwAYIAUgAikAzwM3AB8gAkEBOgDgAiACQf8BOgDYAgsgAkGwA2ogDCACQfQBaiACQdgCahCOBCACQYACaiAOQdgA/AoAAAJAAkACQCACLQCAAkH+AWsOAgIAAQsgDRCMEQwBCyACQYACahDkCAsgAkEIahD0BCAIIAFB6AFqIgFHDQEMBAsLEJ4VAAtBARCnFAALIAggAWtB6AFuIQAgASAIRg0AA0AgARD0BCABQcgBahCIBCABQegBaiEBIABBAWsiAA0ACwsCQAJAIAoEQCAHQQRrKAIAIgFBeHEhACAAIApB6AFsIgNBBEEIIAFBA3EiARtqSQ0BIAFBAEcgACADQSdqS3ENAiAHELwFCyACQZAEaiQADwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAAL9gYBD38jAEGAAWsiAiQAAkACQAJAAkACQAJAAkACQAJAIAEoAgAiAygCACIFIAMoAgQiC0cEQCADKAIIIgZB3ABsIQQgAygCDCIMQZgCaigCACEIIAMoAhAiCUEkbCENIAxBlAJqIQ4gAygCFCIKQdQAbCEQA0AgBUHcAGohBSAIIAlNDQMgDigCACANaiIHQSBqKAIAIg8gCk0NBCAHQRxqKAIAIBBqIgcoAgBBgICAgHhHDQUgBygCJCIPIAZNDQYgBygCICAEaigCAEUNAiADIAZBAWoiBjYCCCAEQdwAaiEEIAUgC0cNAAsgAyAFNgIACyAAQX02AgAMCAsgAyAFNgIAIAMgBkEBajYCCCADKAIYKAIAIgcoAgAhAyAHIANBAWo2AgAgA0EASA0EAkACQCAMKAJEIghFDQAgDEHIAGooAgAhCwNAIAhBDGohDSAIQQRqIQUgCC8BpggiDEEMbCEOQX8hAwJAA0AgDkUEQCAMIQMMAgsgBSgCBCIEIApJIAQgCktrIAUoAgAiBCAJSSAEIAlLayAEIAlGGyIEQf8BcUUEQCANKAIAIgQgBkkgBCAGS2shBAsgBUEMaiEFIA5BDGshDiANQQxqIQ0gA0EBaiEDIARBAUYNAAsgBEH/AXFFDQMLIAtFDQEgC0EBayELIAggA0ECdGooAqgIIQgMAAsAC0HUucQAQRZBhL7EABDAEwALIAggA0HUAGxqLQDQASEDIAIgBzYCaCACIAY2AmQgAiAKNgJgIAIgCTYCXCACQQE2AlggAkEBQQIgAxs2AlQgASgCCCEBIANFDQUgAkHYAGoQrRBFBEAgAiAHNgJ8IAIgBjYCeCACIAo2AnQgAiAJNgJwIAJBATYCbCACQQhqIAEgAkHsAGoQlAMMBwsgAiAHNgJ8IAIgBjYCeCACIAo2AnQgAiAJNgJwIAJBATYCbCACQQhqIAEgAkHsAGoQigcMBgsgAyAFNgIAIAkgCEGUvsQAEIUTAAsgAyAFNgIAIAogD0GUvsQAEIUTAAsgAyAFNgIAQZS+xAAQnRUACyADIAU2AgAgBiAPQaS+xAAQhRMLAAsgAiAHNgJ8IAIgBjYCeCACIAo2AnQgAiAJNgJwIAJBATYCbCACQQhqIAEgAkHsAGoQ/wULIAAgAkEIakHIAPwKAAALIAJBgAFqJAAL4wYCCH8DfiMAQUBqIgUkACAFIAM2AgQgBSACNgIAIAEpAxAgASkDGCACIAMQ4woiDacgASgCBCIJcSEGIA1CGYhC/wCDQoGChIiQoMCAAX4hDyABKAIAIQcCQAJAAkACQAJAAkADQAJAIAYgB2opAAAiDiAPhSINQoGChIiQoMCAAX0gDUJ/hYNCgIGChIiQoMCAf4MiDUIAUgRAA0AgByANeqdBA3YgBmogCXEiC0FkbGoiCEEYaygCACADRgRAIAIgCEEcayIMKAIAIAMQjxNFDQMLIA1CAX0gDYMiDUIAUg0ACwsgDiAOQgGGg0KAgYKEiJCgwIB/g0IAUg0CIApBCGoiCiAGaiAJcSEGDAELC0GAASEDIAtBHGxBHG0iAiAHaiIGKQAAIg1CAYYgDYNCgIGChIiQoMCAf4N6p0EDdiAHIAJBCGsgCXFqIgIpAAAiDUIBhiANg0KAgYKEiJCgwIB/g3mnQQN2akEHTQRAIAEgASgCCEEBajYCCEH/ASEDCyAGIAM6AAAgAkEIaiADOgAAIAEgASgCDEEBazYCDCAMKAIARQ0AIAhBCGsoAgAiAw0BIAUgCEEUayIBKAIINgIQIAUgASkCADcDCCAFIAWtQoCAgIDQAYQ3AzggBUEYaiIDQfO+wQAgBUE4aiIGELgMIAUoAhghASAFKAIcIQIgBSAFKAIgNgI0IAUgAjYCMCAFIAVBMGqtQoCAgIDQAYQ3AzggA0GanMAAIAYQuAwgBSAFKQMINwIkIAUgBSgCEDYCLCAEKAIIIgMgBCgCAEYEQCAEEL0SCyAEIANBAWo2AgggBCgCBCADQRhsaiIDIAUpAhg3AgAgAyAFKQIgNwIIIAMgBSkCKDcCECABBEAgAkEEaygCACIEQXhxIQMgA0EEQQggBEEDcSIEGyABakkNAyAEQQBHIAMgAUEnaktxDQQgAhC8BQsgAEF/NgIADAULIABBfzYCAAwECyAIQQRrKAIAIgFBAE4EQAJAIAFFBEBBASECDAELIAEQkAEiAkUNBCABRQ0AIAIgAyAB/AoAAAsgACABNgIIIAAgAjYCBCAAIAE2AgAMBAsQnhUAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtBARCnFAALIAVBQGskAAuEBwIEfwJ+IwBB0AFrIgQkACABKAJkIQUCQAJAAkACQAJAAkACQAJAAkAgASgCaCIHQQNrDgQBAwACBAsgA0UNAyAFKAAAQePe1fMGcyAFQQRqLQAAQfQAc3INAyAEQRhqIgMgAUGQAfwKAAAgBCACNgKoASAEIAMgAhDTCwwFCyAFLwAAQeHsAXMgBUECaiIGLQAAQecAc3JFBEAgA0UNAyAEQRhqIgMgAUGQAfwKAAAgBEEEaiACIAMQ9wMgBEEDNgIADAULIAUvAABB8+oBcyAGLQAAQe0Ac3JFBEAgA0UNAyAEQRhqIgMgAUGQAfwKAAAgBEEEaiACIAMQ9wMgBEEENgIADAULIAUvAABB7dIBcyAFQQJqIgYtAABB7gBzckUEQCADRQ0DIARBGGoiAyABQZAB/AoAACAEQQRqIAIgAxD3AyAEQQU2AgAMBQsgA0UNAiAFLwAAQe3CAXMgBi0AAEH4AHNyDQIgBEEYaiIDIAFBkAH8CgAAIARBBGogAiADEPcDIARBBjYCAAwECyAFKAAAQd/GvasHcyAFQQRqLwAAQe7oAXNyDQEgBEEYaiIDIAFBkAH8CgAAIAQgAjYCqAEgBCADIAIQ0wsMAwsgBSgAAEHfwtm7BkYEQCAEQRhqIgMgAUGQAfwKAAAgBEEEaiACIAMQ9wMgBEEDNgIADAMLIAUoAABB3+bV6wZGBEAgBEEYaiIDIAFBkAH8CgAAIARBBGogAiADEPcDIARBBDYCAAwDCyAFKAAAQd/apfMGRgRAIARBGGoiAyABQZAB/AoAACAEQQRqIAIgAxD3AyAEQQU2AgAMAwsgBSgAAEHf2oXDB0YNAQsgBEGsAWogAiAFIAcQ7wYgBCgCrAFBf0YNAiAEIAQoAswBNgI4IAQgBCkCxAE3AzAgBCAEKQK8ATcDKCAEIAQpArQBNwMgIAQgBCkCrAE3AxhBiLDJAEErIARBGGpB0JDGAEGAqMYAENoSAAsgBEEYaiIDIAFBkAH8CgAAIARBBGogAiADEPcDIARBBjYCAAsgACAEKAIQNgIQIAAgBCkCCDcCCCAAIAQpAgA3AgAgAEF/NgIwDAELIAQgBCgCwAEiAjYCECAEIAQpArgBIgg3AwggBCAEKQKwASIJNwMAIAAgAjYCECAAIAg3AgggACAJNwIAIABBfzYCMCABEK4ICyAEQdABaiQAC68HAQd/IwBBkAFrIgckAAJAAkACQAJAAkAgBCADKAIcIgZJBEAgAygCGCAEQfAAbGoiBigCXCEIIAYoAlghBiADIAMoAgAiCUEBajYCACAJQQBIDQEgByAINgJgIAcgBjYCXCAHIAM2AlggB0EQaiAHQdgAahDXAiADIAMoAgAiBkEBazYCACAGQQFGBEAgAxAwCyAHQRxqIgYgAyAEENcJIAdBKGogB0EQaiAGEMoIIAMoAhwiBiAETQ0EIAMoAhggBEHwAGxqIgYoAmghCSAGKAJkIQsgAyADKAIAIghBAWo2AgAgCEEASA0BIAYoAmghCCAGKAJkIQYgAyADKAIAIgpBAWo2AgAgCkEASA0BIAcgCDYCSCAHIAY2AkQgByADNgJAIAdBCGogAyAEEOEJIAdB2ABqIgggBygCCCIGIAcoAgwQ1wkgB0E0aiAHQUBrIAgQ6g4gBiAGKAIAIghBAWs2AgAgCEEBRgRAIAYQMAsgAyADKAIAIgZBAWs2AgAgBkEBRgRAIAMQMAtBFxCQASIIRQ0FIAhBjorGACkAADcADyAIQYeKxgApAAA3AAggCEH/icYAKQAANwAAIAMgAygCACIGQQFqNgIAIAZBAEgNASAFQQFqIQogBS0AACEMIAEoAggiBSABKAIARgRAIAEQrxILIAEoAgQgBUHIAmxqIgYgDDoAKCAGQgA3AxggBkIANwMIIAZCBDcDACAGQSlqIApBzwD8CgAAIAZBFzYCwAEgBiAINgK8ASAGQRc2ArgBIAYgBDYCtAEgBiADNgKwASAGQQI6AKoBIAZBADsBqAEgBiAJNgKkASAGIAs2AqABIAYgAzYCnAFBfyEDIAZBfzYCkAEgBkKAgICAcDcDgAEgBkKAgICAgAE3A3ggBiAHKQI0NwLEASAGIAcoAjw2AswBIAZCfzcDwAIgBkF/NgL0ASAGQX82AugBIAZCBDcD4AEgBkIANwPYASAGQoCAgICAATcD0AEgASAFQQFqNgIIIAcgBygCMDYCeCAHIAcpAig3AnAgB0GYisYANgKEASAHQoGAgIAYNwJ8IAdBAjYCWCAHQUBrIAEgAiAFIAdB2ABqEKINIAcoAkAiAUF+Rg0CIAAgBykCSDcCCCAAIAcpAlA3AhAgACAHKAJENgIEQYmAgIB4IQMMAwsgBCAGQeT+yAAQhRMLAAsgBSEBCyAAIAM2AjAgACABNgIAIAdBkAFqJAAPCyAEIAZB5P7IABCFEwALQQEQpxQAC+YGAg9/A34jAEEgayIIJAACQAJAAn8CQAJAAkACQCABLQAsIgNBAkcEQAJAIANBAXENACABKAIcIgogASgCICIMRg0AIAEoAhgiBiABKAIUIg1qQeQAbEHgAGohDiABKAIoIQ8gASgCJCEQIAEoAggiBUEIaiEJIAVBBGohBANAIAEgAiAKaiIDQeQAajYCHCADQdQAaigCACAQRw0BIANB2ABqKAIAIA9HDQEgBiANaiIHIAkoAgAiA08NAyAEKAIAIA5qIAJqLQAARQRAIAUgBxDsEEUNBQsgASAGQQFqIgY2AhggCiACQeQAaiICaiAMRw0ACwsgAUECOgAsCyABLQBYIgNBAkYNBSADQQFxDQUgASgCNCEFIAEoAkAhDiABKAJEIQsgASgCVCEPIAEoAlAhECABKAJIIQIgASgCTCEJA0AgAiAJRg0GIAEgAkHwAGoiAzYCSAJAIBAgAigCWEYEQCACKAJcIA9GDQELIAFBAToAWAwHCwJAAkAgBSgCtAJFDQAgBSgCrAIiCiALIA5qIgdB3cvdnnlsQQ93IgRxIQIgBEEZdq1CgYKEiJCgwIABfiETIAUoAqgCIQxBACENA0AgAiAMaikAACISIBOFIhFCgYKEiJCgwIABfSARQn+Fg0KAgYKEiJCgwIB/gyIRQgBSBEADQCAHIAwgEXqnQQN2IAJqIApxQQN0ayIEQQhrKAIARg0EIBFCAX0gEYMiEUIAUg0ACwsgEiASQgGGg0KAgYKEiJCgwIB/g0IAUg0BIA1BCGoiDSACaiAKcSECDAALAAtB1LnEAEEWQZS5xAAQwBMACyAFIARBBGsoAgAQ2gYgASALQQFqIgs2AkQgAyECDQALIAEoAjAoAgAiBigCACECIAYgAkEBajYCACACQQBIDQJBAAwECyAHIANB5PbIABCFEwALIAEgBkEBajYCGCAFQQRqKAIAIQMgBUEIaigCACEJIAEoAgQoAgAiAigCACEEIAIgBEEBajYCACAEQQBIDQAgByAJSQ0BIAcgCUHk9sgAEIUTAAsAC0EAIQZBAUECIAMgB0HkAGxqLQBIGwshCyAIIAI2AhwgCCAHNgIQIAggBjYCDCAIIAs2AgggACABKAIAIAhBCGoQtwMMAQsgAEF/NgIACyAIQSBqJAAL3wYBB38jAEFAaiIFJAACQAJAAkACQAJAAkACQAJAAkAgBCgCCEUEQCAAQX82AgAgBCgCACIBRQ0BIAQoAgQiAkEEaygCACIDQXhxIQAgACABQRRsIgFBBEEIIANBA3EiAxtqSQ0CIANBAEcgACABQSdqS3ENAyACELwFDAELIAJBBGohCwNAAkAgBiIKQQRGBEBBBCEKDAELAn8gAiAKaiIGLAAAIgdBAE4EQCAHQf8BcSEHIAZBAWoMAQsgBi0AAUE/cSEIIAdBH3EhCSAHQV9NBEAgCUEGdCAIciEHIAZBAmoMAQsgBi0AAkE/cSAIQQZ0ciEIIAdBcEkEQCAIIAlBDHRyIQcgBkEDagwBCyAJQRJ0QYCA8ABxIAYtAANBP3EgCEEGdHJyIQcgBkEEagsgC2tBBGohBiAHQd8ARg0BCwsgAygCBCIGIAMoAgAiB0GgAmooAgAiCU8NAyADKAIIIgMgB0GcAmooAgAgBkEkbGoiBkEgaigCACIHTw0EIAZBHGooAgAgA0HUAGxqIgMoAgBBgoCAgHhHDQUgBSADKQIINwIQIAVBBCAKazYCHCAFIAIgCmo2AhggBSAFQRhqrUKAgICAgCGENwMoIAUgBUEQaq1CgICAgIAhhDcDICAFQQRqQcfAwQAgBUEgahC4DCAFIAUpAgQ3ADQgBSAFKAIMNgA8QRQQkAEiA0UNBiADQQA6ABAgAyABNgIMIAMgBCgCCDYCCCADIAQpAgA3AgBBGBCQASIBRQ0HIAFBADoAFCABQYTqxwA2AgwgASADNgIIIAFCgYCAgBA3AgAgBSAFKQAxNwMgIAUgBSkAODcAJ0EEEJABIgNFDQggACAFKQMgNwAtIAAgBSkAJzcANCAAQQE6AFwgAEEANgJYIABBADoAVCAAIAE2AlAgAEEAOgBMIABBMDoALCAAQQA2AiAgAEEBOgAcIABBBDYCGCAAIAM2AhQgAEEENgIQIABBAjYCACADIAIoAAA2AAALIAVBQGskAA8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACyAGIAlBzLvEABCFEwALIAMgB0HMu8QAEIUTAAtBzLvEABCdFQALQbjwyQBBAToAAAALQbjwyQBBAToAAAALQQEQpxQAC48GAQp/IAAoAggiBwRAIAACfwJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAgB2sgAU8EQCAAQQA2AgggAEEEaiECDAELIAAgByABQQRBBBCzESAAKAIIIQcgAEEANgIIIABBBGohAiAAKAIAIQQgB0UEQCABIARLBEAgAEEAIAFBBEEEELMRIAAoAgghAwsgAUECdCIEBEAgAigCACADQQJ0akEAIAT8CwALIAEgA2oMCwsgASAEIAdrSw0BCyACKAIAIQYgB0ECdCIIBEAgBiABQQJ0aiAGIAj8CgAAC0EAIQIMAQsgACAHIAFBBEEEELMRIAAoAgQhBiAAKAIIIQIgB0ECdCIIBEAgBiABQQJ0aiAGIAj8CgAACyABIQUgASACTQ0BC0EAIQUgAUEBayIDIAJrIgQgAyADIARLG0ECdEEEaiIDBEAgBiACQQJ0akEAIAP8CwALIAJBAWohAwJAA0AgAyICIAFGDQEgAkEBaiEDIAVBAWsiBSABag0ACyAAIAI2AgggASEEDAMLIAAgAjYCCCABIAVqQQFrIgUNACABIQQMAQsgBUECdCIJEJABIgpFDQICQCAKQQRrIgstAABBA3FFDQAgCUUNACAKQQAgCfwLAAsgACgCACABIAdqIgNrIAVJBEAgACADIAVBBEEEELMRIAAoAgQhBiAAKAIIIQILIAEgBWohBCAIBEAgBiAEQQJ0aiAGIAFBAnRqIAj8CgAACwJAIAIgBE8NACAFQQJ0IQEgBiACQQJ0aiEFIAohAwNAIAFFDQEgBSADKAIANgIAIAAgAkEBaiICNgIIIAFBBGshASAFQQRqIQUgA0EEaiEDIAIgBEcNAAsLIAsoAgAiA0F4cSEBIAFBBEEIIANBA3EiAxsgCWpJDQMgA0EARyABIAlBJ2pLcQ0EIAoQvAULIAIgBEYNBAsgCEUNAyAGIAJBAnRqIAYgBEECdGogCPwKAAAMAwtBBBCnFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQACyACIAdqCzYCCAsLhgoBFX8jAEHgAGsiAiQAIAFBBGohBCABKAIQIghBCGohFiAIKAL0AiERIAgoAvACIRIgAgJ/AkACQAJAAkACQAJAIAEoAgAiD0EBRgRAIAIgFjYCOCACIAQoAgg2AkQgAiAEKQIANwI8IAJBFGohDAJAAkAgAkE4aiIEKAIAIhMoAkQiDUUNACATQcgAaigCACEGIAQoAgwhDiAEKAIIIQcgBCgCBCEJA0AgDUEMaiEKIA1BBGohECANLwGmCCIEQQxsIQtBfyEFAkADQCALRQRAIAQhBQwCCyAQKAIEIgMgB0kgAyAHS2sgECgCACIDIAlJIAMgCUtrIAMgCUYbIgNB/wFxRQRAIAooAgAiAyAOSSADIA5LayEDCyAQQQxqIRAgC0EMayELIApBDGohCiAFQQFqIQUgA0EBRg0ACyADQf8BcUUNAwsgBkUNASAGQQFrIQYgDSAFQQJ0aigCqAghDQwACwALQdS5xABBFkGEvsQAEMATAAsCQAJAAkAgDSAFQdQAbGoiBCgCsAFBf0cEQCAEQYgBaiIDKAI0IgUgEygCaCIETw0BIAQgAygCOCIETQ0CIAwgAykCPDcCGCAMIAMoAkQ2AiAgDCADKQIsNwIQIAwgBEEEdCATKAJkIgRqKQIENwIIIAwgBCAFQQR0aikCBDcCAAwDCyAMQQA2AgAMAgtB1L3EABCdFQALQeS9xAAQnRUACyACKAIUDQEgASgCBCEGDAYLIAgoAhAiBSAEKAIAIgZNDQIgCCgCDCAGQeQAbGoiBygCKEF/Rg0BIAcoAjQiAyAIKAJwIgRPDQMgBygCOCIFIARPDQQgAiAHKQI8NwIsIAIgBygCRDYCNCACIAcpAiw3AiQgAiAIKAJsIgQgBUEEdGopAgQ3AhwgAiAEIANBBHRqKQIENwIUCyACIAIpAiw3A1AgAiACKAI0NgJYIAIoAhwhByACKAIgIQMgAigCJCEFIAIoAighBCACQgQ3AkggAkIANwJAIAJCgICAgMAANwI4IAJBCGogEiAHIAMgBSAEIAJB0ABqIAJBOGoiBCARKAKAAREMACACKAIMIRQgAigCCCEVIAQQ+QkgASgCBCEGIA8NBCAIKAIQIQULIAUgBksEQCAIKAIMIAZB5ABsakHIAGoMBQsgBiAFQeT2yAAQhRMACyAGIAVB5PbIABCFEwALQbS4xAAQnRUAC0HEuMQAEJ0VAAsCQAJAIAgoAkwiCUUNACABKAIMIQ8gASgCCCEHIAhB0ABqKAIAIQsDQCAJQQxqIQ4gCUEEaiEKIAkvAaYIIgRBDGwhAUF/IQUCQANAIAFFBEAgBCEFDAILIAooAgQiAyAHSSADIAdLayAKKAIAIgMgBkkgAyAGS2sgAyAGRhsiA0H/AXFFBEAgDigCACIDIA9JIAMgD0trIQMLIApBDGohCiABQQxrIQEgDkEMaiEOIAVBAWohBSADQQFGDQALIANB/wFxRQ0DCyALRQ0BIAtBAWshCyAJIAVBAnRqKAKoCCEJDAALAAtB1LnEAEEWQYS+xAAQwBMACyAJIAVB1ABsakHQAWoLIgEoAgg2AkAgAiABKQIANwM4AkACQCAVRQRAIAIgEiACQThqIBYgESgCdBEFACACKAIAIhVFDQEgAigCBCEUCyAAIBE2AgwgACASNgIIIAAgFDYCBCAAIBU2AgAMAQsgAEEANgIACyACQeAAaiQAC/MSAhB/BX4gACkDECAAKQMYIAEQrgkhFSAAKAIIRQRAAkAgAEEQaiEHAkACQAJAIAAoAgwiCEEBaiIEBEAgACgCBCIKQQFqIgNBA3YiBkEHbCELAkAgCiALIApBCEkbIglBAXYgBEkEQAJ/IAlBAWoiAyAEIAMgBEsbIgNBD08EQCADQf////8BSw0HQX8gA0EDdEEHbkEBa2d2QQFqDAELQQQgA0EIcUEIaiADQQRJGwsiA61CGH4iE0IgiKcNBSATpyIGIANBCGoiCWohBCAEIAZJDQUgBEH4////B0sNBSAEEJABIgRFBEBBuPDJAEEBOgAAAAsgBCAGaiELIAkEQCALQf8BIAn8CwALIANBAWsiCSADQQN2QQdsIANBCUkbIQ0gACgCACEEAkAgCEUEQEEAIQgMAQsgBCkDAEJ/hUKAgYKEiJCgwIB/gyETIAcpAwghFiAHKQMAIRcgCCEDIAQhBwNAIBNQBEADQCAFQQhqIQUgB0EIaiIHKQMAQoCBgoSIkKDAgH+DIhNCgIGChIiQoMCAf1ENAAsgE0KAgYKEiJCgwIB/hSETCyALIAkgFyAWIAQgE3qnQQN2IAVqIg5BaGxqQRhrEK4JpyIRcSIGaikAAEKAgYKEiJCgwIB/gyIUUARAQQghDANAIAYgDGohBiAMQQhqIQwgCyAGIAlxIgZqKQAAQoCBgoSIkKDAgH+DIhRQDQALCyATQgF9IBODIRMgCyAUeqdBA3YgBmogCXEiBmosAABBAE4EQCALKQMAQoCBgoSIkKDAgH+DeqdBA3YhBgsgBiALaiARQRl2Igw6AAAgCyAGQQhrIAlxakEIaiAMOgAAIAsgBkF/c0EYbGoiBiAEIA5Bf3NBGGxqIgwpABA3ABAgBiAMKQAINwAIIAYgDCkAADcAACADQQFrIgMNAAsLIAAgCTYCBCAAIAs2AgAgACANIAhrNgIIIApFDQEgCkEYbEEfakF4cSIHIApqQQlqIgNFDQEgBCAHayIIQQRrKAIAIgRBeHEhByAHQQRBCCAEQQNxIgQbIANqSQ0DIARBAEcgByADQSdqS3ENBCAIELwFDAYLIAAgAwR/IAAoAgAhBAJAIAYgA0EHcUEAR2oiBkEBRwRAIAZBAXEgBkH+////A3EhBgNAIAQgBWoiCSkDACETIAkgE0J/hUIHiEKBgoSIkKDAgAGDIBNC//79+/fv37//AIR8NwMAIAlBCGoiCSkDACETIAkgE0J/hUIHiEKBgoSIkKDAgAGDIBNC//79+/fv37//AIR8NwMAIAVBEGohBSAGQQJrIgYNAAtFDQELIAQgBWoiBSkDACETIAUgE0J/hUIHiEKBgoSIkKDAgAGDIBNC//79+/fv37//AIR8NwMACwJAIANBCE8EQCADIARqIAQpAAA3AAAMAQsgA0UNACAEQQhqIAQgA/wKAAALIAcpAwghFCAHKQMAIRZBACEDA0ACQCADIgcgBGoiCS0AAEGAAUcNACAEIANBf3NBGGxqIQMgBCAHQWhsakEYayEOA0AgBCAWIBQgDhCuCaciDCAKcSINIgVqKQAAQoCBgoSIkKDAgH+DIhNQBEBBCCEGA0AgBSAGaiEFIAZBCGohBiAEIAUgCnEiBWopAABCgIGChIiQoMCAf4MiE1ANAAsLIAQgE3qnQQN2IAVqIApxIgVqLAAAQQBOBEAgBCkDAEKAgYKEiJCgwIB/g3qnQQN2IQULIAUgDWsgByANa3MgCnFBCE8EQCAEIAVqIgYtAAAgBiAMQRl2IgY6AAAgBCAFQQhrIApxakEIaiAGOgAAIAQgBUF/c0EYbGohBUH/AUYEQCAJQf8BOgAAIAQgCiAHQQhrcWpBCGpB/wE6AAAgBSADKQAQNwAQIAUgAykACDcACCAFIAMpAAA3AAAMAwsgAykAACETIAMgBSkAADcAACAFIBM3AAAgBSkACCETIAUgAykACDcACCADIBM3AAggAygAECEGIAMgBSgAEDYAECAFKAAUIQwgBSADKAAUNgAUIAMgDDYAFCAFIAY2ABAMAQsLIAkgDEEZdiIDOgAAIAQgCiAHQQhrcWpBCGogAzoAAAsgB0EBaiEDIAcgCkcNAAsgCiALIApBCEkbBUEACyAIazYCCAsMBAsMAgtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQfjoyABBOUH4n8QAEL8TAAsLIAAoAgQiBSAVp3EhCCAVQhmIIhZC/wCDQoGChIiQoMCAAX4hFSABLQAQIQYgAS0AACEHIAAoAgAhBAJAAkAgASgCBEEBcUUEQCAHQf8BcSELA0AgBCAIaikAACIUIBWFIhNCgYKEiJCgwIABfSATQn+Fg0KAgYKEiJCgwIB/gyITQgBSBEADQAJAIAsgBEEAIBN6p0EDdiAIaiAFcWsiCkEYbGoiA0EYay0AAEcNACADQRRrKAIADQAgBiADQQhrLQAARg0GCyATQgF9IBODIhNCAFINAAsLIBRCgIGChIiQoMCAf4MhEwJ/AkAgD0UEQCATUA0BIBN6p0EDdiAIaiAFcSEHCyATIBRCAYaDQgBSDQRBAQwBC0EACyEPIBBBCGoiECAIaiAFcSEIDAALAAsgASgCDCEPIAEoAgghCyAHQf8BcSEJA0AgBCAIaikAACIUIBWFIhNCgYKEiJCgwIABfSATQn+Fg0KAgYKEiJCgwIB/gyITQgBSBEADQAJAIAkgBEEAIBN6p0EDdiAIaiAFcWsiCkEYbGoiA0EYay0AAEcNACADQRRrKAIAQQFHDQAgCyADQRBrKAIARw0AIA8gA0EMaygCAEcNACAGIANBCGstAABGDQULIBNCAX0gE4MiE0IAUg0ACwsgFEKAgYKEiJCgwIB/gyETAn8CQCAQRQRAIBNQDQEgE3qnQQN2IAhqIAVxIQcLIBMgFEIBhoNCAFINA0EBDAELQQALIRAgEkEIaiISIAhqIAVxIQgMAAsACyAEIAdqLAAAIghBAE4EQCAEIAQpAwBCgIGChIiQoMCAf4N6p0EDdiIHai0AACEICyAEIAdqIBanQf8AcSIDOgAAIAQgB0EIayAFcWpBCGogAzoAACAAIAAoAgggCEEBcWs2AgggACAAKAIMQQFqNgIMIARBACAHayIKQRhsakEYayIAIAEoAhA2AhAgACABKQIINwIIIAAgASkCADcCAAsgBCAKQRhsakEEayACNgIAC8QGAQx/IwBBEGsiCyQAIAEoAgAiDEEMaigCACENIAEoAgghDiABKAIEIQoCQAJAAkAgDEEQaigCACIFIgQOAgIBAAsDQAJ/IAogDSAEQQF2IgggBmoiD0HkAGxqIglB1ABqKAIAIgdHBEAgByAKSQwBCyAJQdgAaigCACAOSQshByAPIAYgBxshBiAEIAhrIgRBAUsNAAsLAn8gCiANIAZB5ABsaiIHQdQAaigCACIERwRAIAQgCkkMAQsgB0HYAGooAgAgDkkLIAZqIQQLAkACQAJAAkACQAJAAkACQAJAAkAgBCAFRg0AIAVB5ABsIQ8gBEHkAGwhBiAMQRBqIQkgDEEMaiEHA0AgBiANaiIFQdQAaigCACAKRw0BIAVB2ABqKAIAIA5HDQEgCSgCACIFIARNDQMCQCAHKAIAIAZqIgVB4ABqLQAADQAgBUHIAGotAABB+wFxRQ0AIAEoAgAiCCgCACEFIAggBUEBajYCACAFQQBIDQUgC0EIaiAIQQhqIAQQ0BAgAyALKAIMRgRAIAsoAgggAiADEI8TRQ0ECyAIIAgoAgAiBUEBazYCACAFQQFHDQAgCBAwCyAEQQFqIQQgDyAGQeQAaiIGRw0ACwsgA0EASA0FIANFBEBBASEJDAQLIAMQkAEiCUUEQEEBEKcUAAsgA0UNAyAJIAIgA/wKAAAMAwsgACAINgIUIAAgBDYCCCAAQv////8PNwIADAMLIAQgBUHk9sgAEIUTCwALIAEoAgQiByABKAIAIgVBoAJqKAIAIgJPDQIgASgCCCIEIAVBnAJqKAIAIAdBJGxqIgJBIGooAgAiAU8NAyACQRxqKAIAIARB1ABsaiIBKAIAQYKAgIB4Rw0EIAEoAgwiAkEASA0BAkAgAkUEQEEBIQQMAQsgASgCCCEBIAIQkAEiBEUEQEEBEKcUAAsgAkUNACAEIAEgAvwKAAALIAAgAjYCICAAIAQ2AhwgACACNgIYIAAgAzYCFCAAIAk2AhAgACADNgIMIABBBTYCCCAAQZKLyAA2AgQgAEECNgIACyALQRBqJAAPCxCeFQALIAcgAkHMu8QAEIUTAAsgBCABQcy7xAAQhRMAC0HMu8QAEJ0VAAu2BwEFfyMAQTBrIgMkACACKAIIIQUgAigCBCEGIAEoAgQhBCADIAEoAggiBzYCJCADIAQ2AiACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAdBA2sOCwIACQEJBAkJBQkDCQsgBCgAAEH12KWjBkYEQCADQQQ6AAwMCwsgBCgAAEHj6qWjBkYEQCAFQQFGBEAgBigCAEEQRg0JC0Ggq8kAQShB8PTGABCvFAALIAQoAABB9eqlowZHDQUgBUEBRgRAIAYoAgBBEEYNBwtBoKvJAEEoQeD0xgAQrxQACyAEKAAAQe7CufsGcyAEQQRqLwAAQenIAXNyDQcgBUEBRgRAIAYoAgBBEEYNCQsgA0EAOgAMDAkLIAQvAABB7t4BcyAEQQJqLQAAQfcAc3INBiADQQY6AAwMCAsgBCkAAELh6tH7ls3bsfIAhSAEQQVqKQAAQu7GyavWrZm39ACFhEIAUg0FIANBBzoADAwHCyAEKQAAQvPKxavXzNux5QBSDQQgA0EHOgAMDAYLIAQpAABC5MSdq+atmbnhAIUgBEEDaikAAELl3JWTl4zdsuQAhYRCAFINAyADQQg6AAwMBQsgBCgAAEHh6tH7BkcNAiADQQk6AAwMBAsgA0ECOgAMIAMgBikDCDwADQwDCyADQQM6AAwgAyAGKQMIPAANDAILIAMgA0Egaq1CgICAgNABhDcDKCADQQhqQfjawQAgA0EoahC4DCADKAIIIgdBf0YNASAAIAMoAQ42AQogACADLwESOwEOIAAgAy8BDDsBCCAAIAc2AgQgAEF/NgIAIAUEQCAGIQADQCAAEIgEIABBIGohACAFQQFrIgUNAAsLIAIoAgAiAgRAIAZBBGsoAgAiBUF4cSEAIAAgAkEFdCICQQRBCCAFQQNxIgUbckkNBCAFQQBHIAAgAkEnaktxDQUgBhC8BQsgASgCACIARQ0CIARBBGsoAgAiAkF4cSEBIAFBBEEIIAJBA3EiAhsgAGpJDQUgAkEARyABIABBJ2pLcQ0GIAQQvAUMAgsgA0EBOgAMIAMgBikDCDwADQsgACADLwEMOwEYIAAgASkCADcCACADIAEoAgg2AhAgAyACKQIANwIUIAAgAykDEDcCCCADIAIoAgg2AhwgACADKQMYNwIQCyADQTBqJAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAAL8QsBCH8jAEEQayIFJAACQAJAAkACQAJAAkACQAJAIAJBA2sOBgMCBQABBAYLAkACQAJAIAEtAABBwgBrDhICCAgICAgICAgICAgIAQgICAAICyABLQABQfQARw0HIAEtAAJB8gBHDQcgAS0AA0HpAEcNByABLQAEQe4ARw0HIAEtAAVB5wBHDQcgAEEAOwEADAgLIAEtAAFB4gBHDQYgAS0AAkHqAEcNBiABLQADQeUARw0GIAEtAARB4wBHDQYgAS0ABUH0AEcNBiAAQYAOOwEADAcLIAEtAAFB6QBHDQUgAS0AAkHnAEcNBSABLQADQckARw0FIAEtAARB7gBHDQUgAS0ABUH0AEcNBSAAQYAUOwEADAYLIAEtAABBwgBHDQQgAS0AAUHvAEcNBCABLQACQe8ARw0EIAEtAANB7ABHDQQgAS0ABEHlAEcNBCABLQAFQeEARw0EIAEtAAZB7gBHDQQgAEGAAjsBAAwFCwJAAkACQAJAIAEtAABBxQBrDhEABwcHBwMHAgcHBwcHBwcHAQcLIAEtAAFB7gBHDQYgAS0AAkH1AEcNBiABLQADQe0ARw0GIABBgAQ7AQAMBwsgAS0AAUH1AEcNBSABLQACQekARw0FIAEtAANB5ABHDQUgAEGACDsBAAwGCyABLQABQekARw0EIAEtAAJB8wBHDQQgAS0AA0H0AEcNBCAAQYAKOwEADAULIAEtAAFB8wBHDQMgAS0AAkHvAEcNAyABLQADQe4ARw0DIABBgAw7AQAMBAsCQAJAIAEtAABBwQBrDgkBBAQEBAQEBAAECyABLQABQe4ARw0DIAEtAAJB9ABHDQMgAEGABjsBAAwECyABLQABQe4ARw0CIAEtAAJB+QBHDQIgAEGAGDsBAAwDCyABLQAAQcQARw0BIAEtAAFB4QBHDQEgAS0AAkH0AEcNASABLQADQeUARw0BIAEtAARB1ABHDQEgAS0ABUHpAEcNASABLQAGQe0ARw0BIAEtAAdB5QBHDQEgAEGAEDsBAAwCCwJAAkAgAS0AAEHCAGsOBQECAgIAAgsgAS0AAUHsAEcNASABLQACQe8ARw0BIAEtAANB4QBHDQEgAS0ABEH0AEcNASAAQYASOwEADAILIAEtAAFB+QBHDQAgAS0AAkH0AEcNACABLQADQeUARw0AIAEtAARB8wBHDQAgAEGAFjsBAAwBCyMAQTBrIgMkACADIAI2AgggAyABNgIEIANBIGogA0EEahCQCgJAIAVBBGoiCAJ/IAMoAiAiBwRAIAMoAiQiBCADKAIsRQ0BGgJAAkAgAkUEQEEBIQEMAQsgAhCQASIBRQ0BCyADQQA2AhQgAyABNgIQIAMgAjYCDAJAAkAgAiAESQRAIANBDGpBACAEEM4RIAMoAgwhAiADKAIQIQEgAygCFCEGDAELIARFDQELIARFDQAgASAGaiAHIAT8CgAACyADIAQgBmoiBDYCFCACIARrQQJNBEAgA0EMaiAEQQMQzhEgAygCFCEEIAMoAhAhAQsgASAEaiICQeyqwgAtAAAiBjoAAiACQeqqwgAvAAAiBzsAACADIARBA2oiAjYCFCADIAMpAgQ3AhgDQAJAIANBIGogA0EYahCQCiADKAIgIglFDQAgAygCLAJAAkAgAygCJCIEIAMoAgwgAmtLBEAgA0EMaiACIAQQzhEgAygCECEBIAMoAhQhAgwBCyAERQ0BCyAERQ0AIAEgAmogCSAE/AoAAAsgAyACIARqIgI2AhRFDQEgAygCDCACa0ECTQRAIANBDGogAkEDEM4RIAMoAhQhAiADKAIQIQELIAEgAmoiBCAGOgACIAQgBzsAACADIAJBA2oiAjYCFAwBCwsgCCADKAIUNgIIIAggAykCDDcCAAwDC0EBEKcUAAtBASEHQQALNgIIIAggBzYCBCAIQX82AgALIANBMGokACAFKAIEIQEgBSgCCCICIAUoAgwQxxIhAyAAQQE6AAAgACADNgIEIAFBAEwNACACIAEQ2RILIAVBEGokAAuKBgIIfwF+IAEoAhghByABKAIUIQIgASgCHCEGIAEoAhAhBAJAAkACQAJAIAEoAgAEQCABKAIMIQkgASgCBCEFAkADQAJAIAQEQAJAIAIgBkYEQCACIQMMAQsgASACQdAAaiIDNgIUIAItAAAiCEH/AUcNBwsgBiADa0HQAG4hAiADIAZHBEADQCADEK8EIANB0ABqIQMgAkEBayICDQALCyAHBEAgBEEEaygCACIDQXhxIQIgAiAHQdAAbCIGQQRBCCADQQNxIgMbckkNAiADQQBHIAIgBkEnaktxDQQgBBC8BQsgAUEANgIQCyAFIAlGDQQgASAFQQxqIgM2AgQgBSgCACIHQX9GDQQgASAHNgIYIAEgBSkCBCIKpyICNgIUIAEgAjYCECABIAIgCkIgiKdB0ABsaiIGNgIcIAMhBSACIQQMAQsLDAQLDAQLIARFDQACQCACIAZGBEAgAiEDDAELIAEgAkHQAGoiAzYCFCACLQAAIghB/wFHDQILIAYgA2tB0ABuIQIgAyAGRwRAA0AgAxCvBCADQdAAaiEDIAJBAWsiAg0ACwsgBwRAIARBBGsoAgAiA0F4cSECIAIgB0HQAGwiBUEEQQggA0EDcSIDG3JJDQMgA0EARyACIAVBJ2pLcQ0EIAQQvAULIAFBADYCEAsCQAJAAkAgASgCICIEBEAgASgCJCICIAEoAiwiBUcNASAAQf8BOgAAIAIhAwwCCyAAQf8BOgAADwsgASACQdAAaiIDNgIkIAAgAkHQAPwKAAAgAC0AAEH/AUcNAQsgBSADa0HQAG4hAiADIAVHBEADQCADEK8EIANB0ABqIQMgAkEBayICDQALCyABKAIoIgIEQCAEQQRrKAIAIgNBeHEhACAAIAJB0ABsIgJBBEEIIANBA3EiAxtySQ0DIANBAEcgACACQSdqS3ENBCAEELwFCyABQQA2AiALDwsgACAIOgAAIABBAWogAkEBakHPAPwKAAAPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAufCAIDfwF+IwBBEGsiBCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQdrDg0LBAIAEg8QEhIDARIHEgsgACkAAELm0rmj1srbtPEAhSAAQQhqIgMzAABC9coBhYRCAFINBQwSCyAAKQAAQubSuaPWytu08QCFIABBCGopAABC9cq9kseKmrnvAIWEIABBEGoxAABC9wCFhEIAUg0QQQEhAgwRCyAAKQAAQubSuaPmqJq58wCFIABBCGoiAzEAAEL0AIWEQgBSDQJBAiECDBALIAApAABC5tK5o+aomrnzAIUgAEEIaikAAEL0nsmjhc3ct/cAhYRCAFINDkEDIQIMDwsgACkAAELm0rmj1qmYt/kAUg0IQQQhAgwOCyAAKQAAQuPklYvGrtmn7gCFIAMxAABC5QCFhEIAUg0LQQUhAgwNCyAAKQAAQuPklYvGrtmm4QCFIAMzAABC7vIBhYRCAFINAUEGIQIMDAsgACkAAELj5JWLxq7ZpuEAhSAAQQhqIgMpAABC7vKF8sbM1LL0AIWEIABBC2oiAikAAELuyMmqxq6due4AhYRCAFINAUEHIQIMCwsgACkAAEL14JGLxq7ZpuEAhSAAQQhqIgMzAABC7vIBhYRCAFINAUEJIQIMCgsgACkAAEL14JGLxq7ZpuEAhSADKQAAQu7yhfLGzNSy9ACFhCACKQAAQu7IyarGrp257gCFhEIAUg0IQQohAgwJCyAAKQAAQuTKsavGrtmm4QCFIAMzAABC7vIBhYRCAFINAUEMIQIMCAsgACgAAEHn5L2rB3MgAEEDaiIDKAAAQfXgicoHc3INAkEPIQIMBwsgACkAAELl8JWb1o7dstIAhSAAQQhqMwAAQuHuAYWEQgBSDQVBECECDAYLIAApAABC8eqVk5fP1LD3AFINBEERIQIMBQsgACgAAEHm0rmjBnMgAygAAEHkpIW7B3NyDQNBEyECDAQLIAApAABC4c6dk9fs2bD0AIUgAEEIajUAAELlpIW7B4WEQgBSDQJBFCECDAMLIAApAABC8uq5m/St27bhAIUgAEEFaikAAELt2oXzxszUsPcAhYRCAFINAUESIQIMAgtBCCECIAApAAAiBUL14JGLxq7Zp+4AhSAAQQhqIgMxAABC5QCFhFANASAFQuTKsavGrtmn7gCFIAMxAABC5QCFhFAEQEELIQIMAgsgACkAAEL14M2rpo7dp+4AhSADMQAAQuUAhYRQBEBBDSECDAILIAApAABC4c6dk9fs2bD0AIUgAEEIajEAAELlAIWEQgBSDQBBDiECDAELIAQgATYCBCAEIAA2AgAgBCAErUKAgICA0AGENwMIQdWhwAAgBEEIakHc/8cAEL8TAAsgBEEQaiQAIAILvwYBEX8jAEGQAWsiBCQAIAEoAgQhCQJAAkACQAJAAkACQAJAAkAgASgCCCIIRQRAIABBADYCCCAAQoCAgICAATcCAAwBCyAIQRRsIgsQkAEiDEUNBiAJIQMgCCEFA0AgAiALRwRAIAMoAhAiBigCACEHIAYgB0EBajYCACAHQQBIDQkgAiAMaiIHIAMpAgg3AgggByADKQIANwIAIAdBEGogBjYCACACQRRqIQIgA0EUaiEDIAVBAWsiBQ0BCwsgCEHyuJwOTw0FIAEoAgwCQCAIQcgAbCICRQRAQQghB0EAIQMMAQsgCCEDIAIQkAEiB0UNBQtB0ABqIRFBACEFA0AgBCAMIA9qIgIoAhA2AhggBCACKQIINwMQIAQgAikCADcDCCAEIARBCGoQ8A4gBCgCBCIGQQBIDQYCQCAGRQRAQQEhDQwBCyAEKAIAIQIgBhCQASINBEAgBkUNASANIAIgBvwKAAAMAQtBARCnFAALIBEoAgAhAiAEQYQBaiIKIARBCGoiDhCfCiAEQSBqIhIgAiAKIA4QrRAQtAxB5AAQkAEiCkUNAiAKIBJB5AD8CgAAIAQoAhgiDigCACECIA4gAkEBazYCACACQQFGBEAgBCgCGBAwCyAHIBBqIgJBfjYCACACQcQAakGBAjsBACACQUBrIAY2AgAgAkE8aiANNgIAIAJBOGogBjYCACACQTBqQgQ3AwAgAkEoakIBNwMAIAJBJGogCjYCACACQSBqQQE2AgAgEEHIAGohECAFQQFqIQUgD0EUaiIPIAtHDQALIAwgCxDZEiAAIAU2AgggACAHNgIEIAAgAzYCACAJQRBqIQMDQCADKAIAIgUoAgAhACAFIABBAWs2AgAgAEEBRgRAIAMoAgAQMAsgA0EUaiEDIAhBAWsiCA0ACwsgASgCACIBBEAgCUEEaygCACIDQXhxIQAgACABQRRsIgFBBEEIIANBA3EiAxtqSQ0CIANBAEcgACABQSdqS3ENAyAJELwFCyAEQZABaiQADwtBuPDJAEEBOgAAAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQQgQpxQACxCeFQALQQQQpxQLAAvaBgIIfwR+IwBBIGsiBSQAIAUgASgCCCIGNgIcIAUgASgCBCIHNgIYIAUgASgCACIEQQhqNgIUIAVBCGogBUEUahClDSAFKAIMIQEgBSgCCCEDAkACQAJAIAIoAkAiAigCCEF/RwRAIAMNASACKAIMIQMgAigCECEBDAELIAMNAEF/IQEMAQsgAUEASA0BIAFFBEBBACEBQgEhDAwBCyABEJABIgJFBEBBARCnFAALIAEEQCACIAMgAfwKAAALIAKtIAGtQiCGhCEMCwJAAkAgBCgCSEUNACAEKAJAIgggB0Hdy92eeWwgBmpB3cvdnnlsQQ93IgJxIQMgAkEZdq1CgYKEiJCgwIABfiEOIAQoAjwhCQNAIAMgCWopAAAiDSAOhSILQoGChIiQoMCAAX0gC0J/hYNCgIGChIiQoMCAf4MiC0IAUgRAA0AgCSALeqdBA3YgA2ogCHFB6H5saiICQZgBaygCACAHRgRAIAYgAkGUAWsoAgBGDQULIAtCAX0gC4MiC0IAUg0ACwsgDSANQgGGg0KAgYKEiJCgwIB/g0IAUg0BIApBCGoiCiADaiAIcSEDDAALAAtB1LnEAEEWQey6xAAQwBMACwJAAkACQAJAAn8gAkGQAWsoAgBBAUYEQCACQYwBaygCACICIAQoAnBPDQIgBCgCbCACQQR0agwBCyAEQaACaigCACICIAdNDQIgBEGcAmooAgAgB0EkbGoiAkEgaigCACIDIAZNDQMgAkEcaigCACAGQdQAbGoiAigCAEGCgICAeEcNBCACQQRqCyIDKAIIIgJBAEgNBAJAIAJFBEBBASEDDAELIAMoAgQhBCACEJABIgNFBEBBARCnFAALIAJFDQAgAyAEIAL8CgAACwJ/IAFBf0cEQCAAIAI2AgwgACADNgIIIAAgAjYCBCAAQQA2AgAgDEIgiKchAiAMpyEDQSwhBkEwDAELIAAgAjYCBCAAQQA2AgBBfiEBQQghBkEMCyEEIAAgBmogAzYCACAAIARqIAI2AgAgACABNgIoIABCgICAgGA3AhggAEKAgICAwAA3AhAgBUEgaiQADwtB/LrEABCdFQALIAcgAkHMu8QAEIUTAAsgBiADQcy7xAAQhRMAC0HMu8QAEJ0VAAsQnhUAC5kGAQF/IwBBQGoiCSQAIAkgATYCBCAJIAA2AgAgCSAHNgIMIAkgBjYCCAJAAkACQAJAAkACQAJAAkACQCACQf8BcSIBQQFrDgMBAAIAC0ERIQRBq7/EACEAIAEOBQIEBAQDBAtBASEBIAQtAABBBEYNBAJAIAVBAUYNACAELQABQQRGDQUgBUECRg0AIAQtAAJBBEYNBSAFQQNGDQAgBC0AA0EERg0FCyAJIAmtQoCAgIDQAYQ3AzAgCUEQakGn3cEAIAlBMGoQuAwgCSgCECEAIAggCSgCFCICIAkoAhgQ1QlBACEBIABFDQQgAkEEaygCACIEQXhxIQMgA0EEQQggBEEDcSIEGyAAakkNBSAEQQBHIAMgAEEnaktxDQYgAhC8BQwEC0EBIQEgA0H/AXEiACAELQAARg0DAkAgBUEBRg0AIAQtAAEgAEYNBCAFQQJGDQAgBC0AAiAARg0EIAVBA0YNACAELQADIABGDQQLIAkgA0ECdEH8B3EiACgCiL9JNgIsIAkgACgC5L5JNgIoIAkgCUEIaq1CgICAgNABhDcDICAJIAlBKGqtQoCAgIDQAYQ3AxggCSAJrUKAgICA0AGENwMQIAlBMGpB1oTCACAJQRBqELgMIAkoAjAhACAIIAkoAjQiAiAJKAI4ENUJQQAhASAARQ0DIAJBBGsoAgAiBEF4cSEDIANBBEEIIARBA3EiBBsgAGpJDQQgBEEARyADIABBJ2pLcQ0FIAIQvAUMAwtBECEEQYi/xAAhAAwBC0ETIQRBmL/EACEACyAJIAQ2AiwgCSAANgIoIAkgCUEoaq1CgICAgNABhDcDGCAJIAmtQoCAgIDQAYQ3AxAgCUEwakGk9MEAIAlBEGoQuAwgCSgCMCEAIAggCSgCNCIBIAkoAjgQ1QkgAARAIAFBBGsoAgAiA0F4cSECIAJBBEEIIANBA3EiAxsgAGpJDQIgA0EARyACIABBJ2pLcQ0DIAEQvAULQQAhAQwACyAJQUBrJAAgAQ8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC5cGAgl/BX4jAEEQayILJAACQAJAAn8CQAJAIAFCAFIEQEGgfyACIAF5Ig+nayIGa8FB0ABsQbCnBWpBzhBtIgJB0ABLDQEgCyACQQR0IgIpA+CCREIAIAEgD4ZCABDuESALKQMIIAspAwBCP4h8IgFBQCAGIAIvAeiCRGprIgmtIg+IpyEGIAIvAeqCRCECIAFCASAPhiIRQgF9IhKDIg9QBEAgBEEKSw0FIARBAnRBuOvIAGooAgAgBksNBQsgCUE/cSEIIAZBkM4ATwRAIAZBwIQ9SQ0DIAZBgMLXL08EQEEIQQkgBkGAlOvcA0kiBxshCkGAwtcvQYCU69wDIAcbDAULQQZBByAGQYCt4gRJIgcbIQpBwIQ9QYCt4gQgBxsMBAsgBkHkAE8EQEECQQMgBkHoB0kiBxshCkHkAEHoByAHGwwEC0EKQQEgBkEJSyIKGwwDC0HwjMQAQRxBjI3EABCvFAALIAJB0QBBnI3EABCFEwALQQRBBSAGQaCNBkkiBxshCkGQzgBBoI0GIAcbCyEHIAitIRACQAJAAkACQCAKIAJrQQFqwSIIIAXBIgJKBEAgCUH//wNxIQ0gCCAFa8EgBCAIIAJrIARJGyIJQQFrIQ5BACECA0AgBiAHbiEMIAIgBEYNAyAGIAcgDGxrIQYgAiADaiAMQTBqOgAAIAIgDkYNBCACIApGDQIgAkEBaiECIAdBCkkgB0EKbiEHRQ0AC0GsjcQAEKMVAAsgACADIARBACAIIAUgAUIKgCAHrSAQhiARENgMDAULIAJBAWohAiANQQFrQT9xrSETQgEhAQNAIAEgE4hCAFIEQCAAQQA2AgAMBgsgAiAETw0DIAIgA2ogD0IKfiIPIBCIp0EwajoAACABQgp+IQEgDyASgyEPIAkgAkEBaiICRw0ACyAAIAMgBCAJIAggBSAPIBEgARDYDAwECyAEIARBvI3EABCFEwALIAAgAyAEIAkgCCAFIAatIBCGIA98IAetIBCGIBEQ2AwMAgsgAiAEQcyNxAAQhRMACyAAQQA2AgALIAtBEGokAAvHBQEHfwJAAkAgACgCECIBQQBKBEAgACgCFCIDQQRrKAIAIgJBeHEhBCAEQQRBCCACQQNxIgIbIAFqSQ0BIAJBAEcgBCABQSdqS3ENAiADELwFCwJAAkACQCAALQAcDgIAAQILIAAoAiAhASAAQTBqEMMCAkACQAJAIAEOAgECAAsgACgCKCEEIAAoAiwiAwRAIAQhAQNAIAEoAgAiAgRAIAFBBGooAgAiB0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyACakkNByAFQQBHIAYgAkEnaktxDQggBxC8BQsgAUEcaiIGKAIAIgcoAgAhAiAHIAJBAWs2AgAgAkEBRgRAIAYoAgAQMAsgAUEgaiEBIANBAWsiAw0ACwsgACgCJCIDRQ0DIARBBGsoAgAiAkF4cSEBIAEgA0EFdCIDQQRBCCACQQNxIgIbckkNBCACQQBHIAEgA0EnaktxDQUgBBC8BQwDCyAAKAIoIQQgACgCLCIDBEAgBCEBA0AgASgCACICBEAgAUEEaigCACIHQQRrKAIAIgVBeHEhBiAGQQRBCCAFQQNxIgUbIAJqSQ0GIAVBAEcgBiACQSdqS3ENByAHELwFCyABQQxqIQEgA0EBayIDDQALCyAAKAIkIgNFDQIgBEEEaygCACICQXhxIQEgASADQQxsIgNBBEEIIAJBA3EiAhtqSQ0DIAJBAEcgASADQSdqS3ENBCAEELwFDAILIAAoAiQiBCgCACEBIAQgAUEBazYCACABQQFHDQEgACgCJBAwDAELIABBLGoQwwIgACgCUCIEKAIAIQEgBCABQQFrNgIAIAFBAUcNACAAQdAAahC2CAsCQCAAKAJYIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIABB2ABqEMsECw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC4sGAgV/AX4gASgCiAMhAwJAAkACQAJAAkACQAJAAkACQAJAAkAgASkDACIHQgJSBEAgB6chBCABKQOgASEHIANBfEYNBiAHQgJRDQEgBEEBcUUNBSABKALAAiEEIAdCAVINAiABKAKsASABKAKoAWshAiAEQXxHDQNBASEFIAIhBAwEC0EBIQIgA0F8Rg0JIANBfUchAQwIC0EBIQUgBEEBcUUNBSABKAIMIAEoAghrIgEhAgwGC0EBIQUgBEF8RgRAQQAhBAwCCyAEQX1HIgIhBAwBCyACIAIgBEF9R2oiBE0hBUF/IAQgAiAESxshAgtBfyABKAIMIAEoAghrIgYgAmoiASABIAJJGyEBIAUgBCAGaiICIARPcSEFDAMLIAEoAsACIQICQCAHQgFRBEAgASgCrAEgASgCqAFrIQEgAkF8Rw0BQQEhBSABIQIMBAtBASEFIAJBfEYNAiACQX1HIgEhAgwDCyABIAJBfUdqIgIgAU8hBUF/IAIgASACSxshAQwCCwJAAkACQAJAIAdCAlIEQCAEQQFxRQ0EIAEoAsACIQIgB0IBUg0BIAEoAqwBIAEoAqgBayEDIAJBfEcNAkEBIQQgAyECDAMLQQEhAiAEQQFxRQ0HIAEoAgwgASgCCGshAQwGC0EBIQQgAkF8RgRAQQAhA0EAIQIMAgsgAkF9RyIDIQIMAQsgAyACQX1HaiICIANPIQRBfyACIAIgA0kbIQMLQX8gASgCDCABKAIIayIFIANqIgEgASADSRshASAEIAIgAiAFaiIDTXEhAgwFCyABKALAAiEDAkAgB0IBUQRAIAEoAqwBIAEoAqgBayEBIANBfEcNAUEBIQIMBAtBASECIANBfEYNBCADQX1HIQEMAwsgASADQX1HaiIDIAFPIQJBfyADIAEgA0sbIQEMBAtBACEBQQAhAgtBfyADQX1HIgMgAWoiBCABIARLGyEBIAUgAiACIANqIgNNcSECDAILIAEhAwwBC0EAIQFBACEDCyAAIAM2AgggACACNgIEIAAgATYCAAvGCAEBfyABKAIAIQIgASgCBCgCDCEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAALQAAQQFrDjcBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3AAsgAkGAqsQAQQcgAREAAA8LIAJBh6rEAEEIIAERAAAPCyACQY+qxABBDCABEQAADwsgAkGbqsQAQQggAREAAA8LIAJBo6rEAEEHIAERAAAPCyACQaqqxABBDCABEQAADwsgAkG2qsQAQQ8gAREAAA8LIAJBxarEAEEOIAERAAAPCyACQdOqxABBDyABEQAADwsgAkHiqsQAQQ0gAREAAA8LIAJB76rEAEEOIAERAAAPCyACQf2qxABBDCABEQAADwsgAkGJq8QAQQ0gAREAAA8LIAJBlqvEAEESIAERAAAPCyACQairxABBDiABEQAADwsgAkG2q8QAQQ8gAREAAA8LIAJBxavEAEEUIAERAAAPCyACQdmrxABBDiABEQAADwsgAkHnq8QAQQ8gAREAAA8LIAJB9qvEAEEUIAERAAAPCyACQYqsxABBECABEQAADwsgAkGarMQAQQwgAREAAA8LIAJBpqzEAEENIAERAAAPCyACQbOsxABBEiABEQAADwsgAkHFrMQAQQwgAREAAA8LIAJB0azEAEENIAERAAAPCyACQd6sxABBEiABEQAADwsgAkHwrMQAQQwgAREAAA8LIAJB/KzEAEENIAERAAAPCyACQYmtxABBEiABEQAADwsgAkGbrcQAQQwgAREAAA8LIAJBp63EAEENIAERAAAPCyACQbStxABBEiABEQAADwsg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CDcCGCAAQQQ2AgAgACABKQMQNwMQIAAgASkDCDcDCAsgAkFAayQADwtBCBCnFAALQQEQpxQAC8YGAQp/IwBB0ABrIgMkACADQcgAaiACKAIAIABBQGsQ2gcgAygCTCEFIAMoAkggA0FAayACKAIAIAAQ2gcgAygCQCEEQQFGBEAgBCAFIAMoAkRJcSEECyADQThqIAIoAgAgAEHAAWoQ2gcgAygCPCEGIAMoAjghCSADQTBqIAIoAgAgAEGAAWoQ2gcgAygCMCEFIANBKGogAigCACAAQcABQYABIAlBAUYEfyAFIAYgAygCNElxBSAFC0EBcSIFG2oiBhDaByADKAIsIQcgAygCKCADQSBqIAIoAgAgACAEQQFxQQZ0aiIKENoHIABBgAFBwAEgBRtqIQkgACAEQX9zQQFxQQZ0aiEFIAMoAiAhBEEBRgRAIAQgByADKAIkSXEhBAsgA0EYaiACKAIAIAkQ2gcgAygCHCEHIAMoAhghCCADQRBqIAIoAgAgBRDaByADKAIQIQAgA0EIaiACKAIAIAkgBSAGIARBAXEiBBsgCEEBRgR/IAAgByADKAIUSXEFIAALQQFxIgcbIggQ2gcgAygCDCEAIAMoAgggAyACKAIAIAogBiAFIAcbIAQbIgsQ2gcgAygCACECQQFGBEAgAiAAIAMoAgRJcSECCyABIAYgCiAEGyIAKQI4NwI4IAEgACkCMDcCMCABIAApAig3AiggASAAKQIgNwIgIAEgACkCGDcCGCABIAApAhA3AhAgASAAKQIINwIIIAEgACkCADcCACABIAggCyACQQFxIgIbIgApAgA3AkAgASAAKQIINwJIIAEgACkCEDcCUCABIAApAhg3AlggASAAKQIgNwJgIAEgACkCKDcCaCABIAApAjA3AnAgASAAKQI4NwJ4IAEgCyAIIAIbIgApAgA3AoABIAEgACkCCDcCiAEgASAAKQIQNwKQASABIAApAhg3ApgBIAEgACkCIDcCoAEgASAAKQIoNwKoASABIAApAjA3ArABIAEgACkCODcCuAEgASAFIAkgBxsiACkCODcC+AEgASAAKQIwNwLwASABIAApAig3AugBIAEgACkCIDcC4AEgASAAKQIYNwLYASABIAApAhA3AtABIAEgACkCCDcCyAEgASAAKQIANwLAASADQdAAaiQAC/oUAhh/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KAIAIQUgCEEEaigCACALQQRqKAIAIAhBCGooAgAiBiAFIAUgBksbEI8TIgIgBiAFayACG0EASCEDIABB+ABBtAEgBBtqIgdBCGooAgAhBCAHIAkgCCADGyAHQQRqKAIAIAlBBGooAgAgBCAJQQhqKAIAIgIgAiAESxsQjxMiACAEIAJrIAAbQQBIIgQbIQogCyAIIAkgBBsgAxsiBUEIaigCACEGIApBBGooAgAgBUEEaigCACAKQQhqKAIAIgIgBiACIAZJGxCPEyEAIAEgCCALIAMbIgMoAjg2AjggASADKQIwNwIwIAEgAykCKDcCKCABIAMpAiA3AiAgASADKQIYNwIYIAEgAykCEDcCECABIAMpAgg3AgggASADKQIANwIAIAEgCiAFIAAgAiAGayAAG0EASCIAGyICKQIANwI8IAEgAikCCDcCRCABIAIpAhA3AkwgASACKQIYNwJUIAEgAikCIDcCXCABIAIpAig3AmQgASACKQIwNwJsIAEgAigCODYCdCABIAUgCiAAGyIAKQIANwJ4IAEgACgCODYCsAEgASAAKQIwNwKoASABIAApAig3AqABIAEgACkCIDcCmAEgASAAKQIYNwKQASABIAApAhA3AogBIAEgACkCCDcCgAEgASAJIAcgBBsiACkCADcCtAEgASAAKQIINwK8ASABIAApAhA3AsQBIAEgACkCGDcCzAEgASAAKQIgNwLUASABIAApAig3AtwBIAEgACgCODYC7AEgASAAKQIwNwLkAQubBgIGfwF+IwBBsAFrIgIkAAJAAkACQAJAAkACQAJAIAAoAgBFBEBBDBCQASIERQ0BIARBwYvGACgAADYACCAEQbmLxgApAAA3AAACQCAAKAIEIgNBf0YNACADRQ0AIAAoAggiB0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyADakkNAyAFQQBHIAYgA0EnaktxDQQgBxC8BQsgAEEMNgIMIAAgBDYCCCAAQX82AgQgAiAAKQMINwJAIAJBDDYCPCACQQA2AoABIAJCgICAgBA3AngCfwJAAkACQCABQf8BcUEBaw4CAQIACyACQfgAakEAQQpBAUEBELMRIAIoAnwiBCACKAKAASIBaiIDQbzgxgApAAA3AAAgA0HE4MYALwAAOwAIIAFBCmoMAgsgAkH4AGpBAEELQQFBARCzESACKAJ8IgQgAigCgAEiAWoiA0HG4MYAKQAANwAAIANBzeDGACgAADYAByABQQtqDAELIAJB+ABqQQBBDEEBQQEQsxEgAigCfCIEIAIoAoABIgFqIgNB0eDGACkAADcAACADQdngxgAoAAA2AAggAUEMagshASACKAJ4IQMgARCQASIGRQ0EIAEEQCAGIAQgAfwKAAALIAMEQCAEQQRrKAIAIgVBeHEhByAHQQRBCCAFQQNxIgUbIANqSQ0GIAVBAEcgByADQSdqS3ENByAEELwFCyACQYOAgIB4NgJYIAIgATYCUCACIAY2AkwgAiABNgJIIAJB+ABqIABBEGogAkE8aiACQcgAahCfBSACIAIpA6gBNwMwIAIgAikDoAE3AyggAiACKQOYATcDICACIAIpA5ABIgg3AxggAiACKQOIATcDECACIAIpA4ABNwMIIAinQX9HBEAgAkEIahD9CQtBACEADAcLIAJBCjYCeCACQfgAakEAQQAQxxMhAAwGC0EBEKcUAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQQEQpxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgAkGwAWokACAAC50FAQl/AkACQAJAAkACQAJAIAJBAWsOAwECAwALIAEvAeIBIgpBFGwgBEEUbCIGayECIAEgBmoiAUEMaiEGIAFBBGohASADKAIQIQsgAygCDCEMIAMoAgghCCADKAIEIQ0gAygCACEJQX8hBwJAA0AgAkUNAQJAIAEoAgQiBSANSSAFIA1LayABKAIAIgUgCUkgBSAJS2sgBSAJRhsiBUH/AXENACAGQQRqKAIAIgUgDEkgBSAMS2sgBigCACIFIAhJIAUgCEtrIAUgCEYbIgVB/wFxDQAgBkEIaigCACIFIAtJIAUgC0trIQULIAFBFGohASACQRRrIQIgBkEUaiEGIAdBAWohByAFQQFGDQALIAVB/wFxRQ0EIAQgB2ohCgsgACADNgIIIABBADYCBCAAIAo2AgAPCyABLwHiASIKQRRsIARBFGwiBmshAiABIAZqIgFBDGohBiABQQRqIQEgAygCECELIAMoAgwhDCADKAIIIQggAygCBCENIAMoAgAhCUF/IQcCQANAIAJFDQECQCABKAIEIgUgDUkgBSANS2sgASgCACIFIAlJIAUgCUtrIAUgCUYbIgVB/wFxDQAgBkEEaigCACIFIAxJIAUgDEtrIAYoAgAiBSAISSAFIAhLayAFIAhGGyIFQf8BcQ0AIAZBCGooAgAiBSALSSAFIAtLayEFCyABQRRqIQEgAkEUayECIAZBFGohBiAHQQFqIQcgBUEBRg0ACyAFQf8BcUUNBCAEIAdqIQoLIAAgAzYCCCAAQQE2AgQgACAKNgIADwsgAEECNgIEIAAgAS8B4gE2AgAPCyAAQQM2AgQgACAENgIADwsgAEEDNgIEIAAgBCAHakEBajYCAA8LIABBAjYCBCAAIAQgB2o2AgAL1gUCB38DfiMAQYABayIEJAAgAbwiCEH///8DcSIHQYCAgARyIAhBAXRB/v//B3EgCEEXdkH/AXEiCRsiCq0iC0IBgyEMQQIhBQJAAkACQAJAAkAgB0VBBEEDQQIgBxsgCEGAgID8B3EiBxsgB0GAgID8B0YbQQFrDgQAAQIDBAtBAyEFDAMLQQQhBQwCCyAJQZYBayEGIAxQIQVCASENDAELQoCAgBAgC0IBhiAKQYCAgARGIgYbIQtCAkIBIAYbIQ0gDFAhBUHofkHpfiAGGyAJaiEGCyAEIAY7AXggBCANNwNwIARCATcDaCAEIAs3A2AgBCAFOgB6An8CQAJAAkACQAJAIAVB/wFxQQFNBEAgA0H//wNxIQNBgOLCAEEBIAhBAEgiBRshBkGA4sIAQYHiwgAgBRshBSAIQR92IQggBEEgaiAEQeAAaiAEQQ9qELMDIAQoAiBFDQEgBCAEKAIoNgJYIAQgBCkCIDcDUAwCCyAFQQJrQf8BcSIGRQ0CQQEhBUGA4sIAQYHiwgAgCEEASCIHG0GA4sIAQQEgBxsgAhshB0EBIAhBH3YgAhshAiAGQQJHDQMgBEECOwEgIANB//8DcQ0EIARBATYCKCAEQYjiwgA2AiQgBEEgagwFCyAEQdAAaiAEQeAAaiAEQQ9qEFoLIAUgBiACGyEHQQEgCCACGyECIAQgBCgCUCAEKAJUIAQvAVggAyAEQSBqELkNIAQoAgQhBSAEKAIADAMLIARBAzYCKCAEQYLiwgA2AiQgBEECOwEgQQEhB0EAIQJBASEFIARBIGoMAgsgBEEDNgIoIARBheLCADYCJCAEQQI7ASAgBEEgagwBCyAEQQE2AjAgBEEAOwEsQQIhBSAEQQI2AiggBEGJ4sIANgIkIARBIGoLIQYgBCAFNgJcIAQgBjYCWCAEIAI2AlQgBCAHNgJQIAAgBEHQAGoQjQkgBEGAAWokAAusBQIKfwF+IwBBEGsiCCQAAn9BASABKAIAIgVBqbLIAEEBIAEoAgQiCigCDCIGEQAADQAaIAAoAgQiBwRAIAAoAgAiCSAHaiELIAhBB2qtQoCAgIDALoQhDCAJIQEDQAJ/IAEiAywAACIAQQBOBEAgAEH/AXEhACADQQFqDAELIAMtAAFBP3EhAiAAQR9xIQEgAEFfTQRAIAFBBnQgAnIhACADQQJqDAELIAMtAAJBP3EgAkEGdHIhAiAAQXBJBEAgAiABQQx0ciEAIANBA2oMAQsgAUESdEGAgPAAcSADLQADQT9xIAJBBnRyciEAIANBBGoLIQECQAJAAn8CQAJAAkACQAJAAkACQAJAAkAgAEEJaw4aAgMBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQQACyAAQdwARg0FCyAAQSBJDQUgAEH/AEYNBSAAQYABTw0GQQEMBwsgBUHDssgAQQIgBhEAAEUNCEEBDAsLIAVBv7LIAEECIAYRAABFDQdBAQwKCyAFQbeyyABBAiAGEQAARQ0GQQEMCQsgBUHBssgAQQIgBhEAAEUNBUEBDAgLIAVBubLIAEECIAYRAABFDQRBAQwHCyAIIAA6AAcgCCAMNwMIIAUgCkG4pcgAIAhBCGoQsQlFDQNBAQwGC0ECIABBgBBJDQAaQQNBBCAAQYCABEkbCyIAIAAgBGoiAksNAAJAIARFDQAgBCAHTwRAIAQgB0cNAgwBCyAEIAlqLAAAQb9/TA0BCwJAIAJFDQAgAiAHTwRAIAIgB0YNAQwCCyACIAlqLAAAQUBIDQELIAUgBCAJaiAAIAYRAABFDQFBAQwECyAJIAcgBCACQailyAAQ/RQACyAEIANrIAFqIQQgASALRw0ACwsgBUGpssgAQQEgBhEAAAsgCEEQaiQAC4AGAgJ/AX4jAEEgayIHJAAgByAENgIAIAcgBjYCECAEIAZGBEBBASEIAkAgACgCACABIAIgACgCBCgCDBEAAA0AIAMoAgQhASADKAIAIQIgAC0ACkGAAXEEQCAAKAIAQZrjwgBBAyAAKAIEKAIMEQAADQEgACkCACEJIAdBAToADyAHIAk3AgAgB0Gg68IANgIUIAcgACkCCDcCGCAHIAdBD2o2AgggByAHNgIQIAcgAiABEP0IDQEgB0GmssgAQQIQ/QgNASAFKAIAIAdBEGogBSgCBCgCDBEBAEUEQCAHKAIQQaSyyABBAiAHKAIUKAIMEQAAIQgMAgsMAQsgACgCAEGX48IAQQMgACgCBCgCDBEAAA0AIAAoAgAgAiABIAAoAgQoAgwRAAANACAAKAIAQaayyABBAiAAKAIEKAIMEQAADQAgBSgCACAAIAUoAgQoAgwRAQAhCAsgBEEBayECIANBDGohBCAFQQxqIQYDQAJ/AkAgCEEBcQ0AIAZBBGshASAEQQRrKAIAIQMgBCgCACEFIAAtAApBgAFxRQRAIAAoAgBBiLPJAEECIAAoAgQoAgwRAAANASAAKAIAIAMgBSAAKAIEKAIMEQAADQFBASAAKAIAQaayyABBAiAAKAIEKAIMEQAADQIaIAEoAgAgACAGKAIAKAIMEQEADAILIAApAgAhCSAHQQE6AA8gByAJNwIAIAdBoOvCADYCFCAHIAApAgg3AhggByAHQQ9qNgIIIAcgBzYCECAHIAMgBRD9CA0AIAdBprLIAEECEP0IDQAgASgCACAHQRBqIAYoAgAoAgwRAQANACAHKAIQQaSyyABBAiAHKAIUKAIMEQAADAELQQELIQggBEEIaiEEIAZBCGohBiACQQFrIgINAAsCf0EBIAgNABogAC0ACkGAAXFFBEAgACgCAEHt6sIAQQIgACgCBCgCDBEAAAwBCyAAKAIAQaGyyABBASAAKAIEKAIMEQAACyAHQSBqJAAPCyAHIAdBEGpBuOzCABDEEwALxQUBD38jAEHwAWsiBCQAIAQgAzYCBCAEQQA2AgACQAJAIAIoAogBQX9GIgwNACACKAJ4IglFDQAgAigCkAEiCEHIAWwhDSACKAJ0IgUgCUEGdCIDaiEOIANBQGpBBnZBAWohDyACKAKMASEQAkADQCAFKAIAQRtHDQEgBSgCIA0BIAhFBEBBACEIQQAhBwwCCyAFKAIIIQogDSEGIBAhAwJAIAUoAgQiC0EBcQRAIAUoAhAhESAFKAIMIRIDQAJAIAMpAwBCAlINACADQQhqKAIAIAtHDQAgA0EMaigCACAKRw0AIANBEGooAgAgEkcNACADQRRqKAIAIBFGDQMLIANByAFqIQMgBkHIAWsiBg0ACwwDCwNAAkAgAykDAEICUg0AIANBCGooAgAgC0cNACADQQxqKAIAIApGDQILIANByAFqIQMgBkHIAWsiBg0ACwwCCyAHQQFqIQcgDiAFQUBrIgVHDQALIA8hBwsgByAJIAggCCAJSxtGDQAgACABQZAC/AoAAAwBCwJAIAxFBEAgBCACKAKMASIDNgIIIAQgAyACKAKQAUHIAWxqNgIMIAQgBDYCECAEQSBqIgMgBEEIahCoCAJAIAQoAiBBf0cEQEGAAxCQASICRQ0DIAIgA0HgAPwKAAAgBEEBNgIcIAQgAjYCGCAEQQQ2AhQgBCAEKAIQNgKIASAEIAQpAgg3A4ABQeAAIQZBASEDA0AgBEGQAWogBEGAAWoQqAggBCgCkAFBf0YNAiAEKAIUIANGBEAgBEEUaiADQQFBCEHgABCzESAEKAIYIQILIAIgBmogBEGQAWpB4AD8CgAAIAQgA0EBaiIDNgIcIAZB4ABqIQYMAAsACyAEQQA2AhwgBEKAgICAgAE3AhQLIAAgASAEQRRqEO0NDAILIAAgAUGQAvwKAAAMAQtBCBCnFAALIARB8AFqJAALigYCBH8CfiMAQYAEayIEJAAgASACQRhsaiEFIAQCfkHQ8MkALQAABEBByPDJACkDACEIQcDwyQApAwAMAQsgBEHIAmoQuxFB0PDJAEEBOgAAQcjwyQAgBCkD0AIiCDcDACAEKQPIAgsiCTcDGEEAIQJBwPDJACAJQgF8NwMAIAQgAzYCQCAEIAU2AjwgBCABNgI4IARBADYCMCAEQQA2AiggBCAINwMgIARBkKnJACkDADcDCCAEQZipyQApAwA3AxAgBEHYAGogBEEIahCVBAJAAkACfyAEKALIAUF+RwRAIAQoAjAhBSAEKAIoIQMCQAJAIAQoAjgiAQRAIARByAJqIQIgAw0CIAUNAiAEKAI8IAFGDQEMAgsgBEHIAmohAiADIAVyDQELIARBiAJqIQILIAJBADYCAEHABRCQASIDRQ0CIAMgBEHYAGpBsAH8CgAAIARBATYCVCAEIAM2AlAgBEEENgJMIAQgBCkDQDcDwAIgBCAEKQM4NwO4AiAEIAQpAzA3A7ACIAQgBCkDKDcDqAIgBCAEKQMgNwOgAiAEIAQpAxg3A5gCIAQgBCkDEDcDkAIgBCAEKQMINwOIAkGwASEBQQEhAgNAIARByAJqIARBiAJqEJUEIAQoArgDQX5HBEAgBCgCTCACRgRAIAQoArACIQYgBCgCqAIhBwJAAkAgBCgCuAIiBQRAIARB/ANqIQMgBw0CIAYNAiAEKAK8AiAFRg0BDAILIARB/ANqIQMgBiAHcg0BCyAEQfgDaiEDCyADQQA2AgAgBEHMAGogAkEBQQhBsAEQsxEgBCgCUCEDCyABIANqIARByAJqQbAB/AoAACAEIAJBAWoiAjYCVCABQbABaiEBDAELCyAEQYgCahCdCCAEKAJMDAELIARBCGoQnQhBCCEDQQALIQFBEBCQASIFRQ0BIAUgATYCCCAFIAM2AgQgBSADNgIAIAUgAyACQbABbGo2AgwgAEHsjckANgIEIAAgBTYCACAEQYAEaiQADwtBCBCnFAALQbjwyQBBAToAAAAL8wMBCH8jAEEQayIHJAACQAJAAkACQAJAIAIEQAJAIAFBCGooAgAiBCACQQxsIghBDGsiA0EMbkEBdGoiBiAETwRAIAFBDGohBSABQQRqKAIAIQoDQCADRQ0CIAVBCGogA0EMayEDIAVBDGohBSgCACIJIAZqIgYgCU8NAAsLQdiryQBBNUGQrMkAEMATAAsgBkEASA0BAkAgBkUEQEEBIQMMAQsgBhCQASIDRQ0DC0EAIQUgB0EANgIMIAcgAzYCCCAHIAY2AgQCQAJAIAQgBksEQCAHQQRqQQAgBEEBQQEQsxEgBygCCCEDIAcoAgwhBQwBCyAERQ0BCyAERQ0AIAMgBWogCiAE/AoAAAsgBiAEIAVqIgRrIQUgAyAEaiEDIAJBAUYNAyAIQQxrIQIgAUEUaiEBAkADQCAFQQJJDQcgAUEEaygCACEIIAEoAgAhBCADQYizyQAvAAA7AAAgBUECayIFIARJDQEgA0ECaiEDIAQEQCADIAggBPwKAAALIAFBDGohASAFIARrIQUgAyAEaiEDIAJBDGsiAg0ACwwECwwFCyAAQQA2AgggAEKAgICAEDcCAAwDCxCeFQALQQEQpxQACyAAIAcpAgQ3AgAgACAGIAVrNgIICyAHQRBqJAAPC0HEsMkAQRNByKvJABC/EwALvwUBDX8jAEGQAWsiAiQAQX8hDiABKAJAIQUgASgCPCEDAkACQAJAAkACQCABKAI4QX9GBEAgAyENDAELIAVFBEBBACEOQQEhDQwBCyAFEJABIg1FDQEgBQRAIA0gAyAF/AoAAAsgBSEOC0F+IQcgASgCACIDQX5HBEACfyADQX9GBEACQCABKAIMIghFBEBBASEHDAELIAEoAgghAyAIEJABIgdFDQUgCEUNACAHIAMgCPwKAAALAkAgASgCGCIGRQRAQQghCwwBCyABKAIUIQkgBkEFdCIDEJABIgtFDQYgBiEKA0AgAyAERg0BIAJBKGogBCAJahCQAyAEIAtqIgwgAikDQDcDGCAMIAIpAzg3AxAgDCACKQMwNwMIIAwgAikDKDcDACAEQSBqIQQgCkEBayIKDQALCyACIAY2AkAgAiALNgI8IAIgBjYCOCACIAg2AjQgAiAHNgIwIAIgCDYCLCACIAEvARw7AURBfwwBCyACQShqIAEQkAMgAigCKAshByACIAIoAkQ2AiAgAiACKQI8NwMYIAIgAikCNDcDECACIAIpAiw3AwgLAkAgASgCKCIJRQRAQQQhCgwBCyABKAIkIQsgCUHkAGwiAxCQASIKRQ0EQQAhBCAJIQYDQCADIARGDQEgAkEoaiIMIAQgC2oQ4QYgBCAKaiAMQeQA/AoAACAEQeQAaiEEIAZBAWsiBg0ACwsgAS0ARCEDIABBLGogASgCMCABKAI0EL0PIAAgBTYCQCAAIA02AjwgACAONgI4IAAgBzYCACAAIAM6AEQgACAJNgIoIAAgCjYCJCAAIAk2AiAgACACKQMINwIEIAAgAikDEDcCDCAAIAIpAxg3AhQgACACKAIgNgIcIAAgAS0ARToARSACQZABaiQADwtBARCnFAALQQEQpxQAC0EIEKcUAAtBBBCnFAALngQBB38CQAJAIAAoAgAiBARAIAAoAgQiAkEEaygCACIDQXhxIQEgASAEQQF0IgRBBEEIIANBA3EiAxtqSQ0BIANBAEcgASAEQSdqS3ENAiACELwFCyAAKAIQIQQCQCAAKAIUIgMEQCAEIQEDQAJAAkAgASgCAA4CAAABCyABQQRqKAIAIgJFDQAgAUEIaigCACIHQQRrKAIAIgVBeHEhBiAGQQRBCCAFQQNxIgUbIAJqSQ0DIAVBAEcgBiACQSdqS3ENBSAHELwFCyABQRBqIQEgA0EBayIDDQALCwJAIAAoAgwiAgRAIARBBGsoAgAiA0F4cSEBIAEgAkEEdCICQQRBCCADQQNxIgMbckkNASADQQBHIAEgAkEnaktxDQQgBBC8BQsgACgCHCEEAkAgACgCICIDBEAgBCEBA0ACQAJAIAEoAgAOAgAAAQsgAUEEaigCACICRQ0AIAFBCGooAgAiB0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyACakkNBiAFQQBHIAYgAkEnaktxDQcgBxC8BQsgAUEQaiEBIANBAWsiAw0ACwsgACgCGCIBBEAgBEEEaygCACICQXhxIQAgACABQQR0IgFBBEEIIAJBA3EiAhtySQ0EIAJBAEcgACABQSdqS3ENASAEELwFCw8LDAMLDAELDAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC+sEAgx/AX4gACgCiAFBf0YEQEEADwsCfyABBEAgACgCeEUgACgClAEiAUGAA2ooAgAiAAR/IAFB/AJqKAIAIQIgAEEDcSEBAkAgAEEETwRAIABBfHEhBiACIQADQCAAQQhqKQMAQgAgACgCABsgDoQgAEGYAWopAwBCACAAQZABaigCABuEIABBqAJqKQMAQgAgAEGgAmooAgAbhCAAQbgDaikDAEIAIABBsANqKAIAG4QhDiAAQcAEaiEAIAYgBEEEaiIERw0ACyABRQ0BCyACIARBkAFsaiEAA0AgAEEIaikDAEIAIAAoAgAbIA6EIQ4gAEGQAWohACABQQFrIgENAAsLIA5CgICAgAGDQhyIpwVBAAtxDAELQQEgACgCeCIHRQ0AGiAAKAKQASIFQcgBbCEEIAAoAnQiAyAHQQZ0IgFqIQogAUFAakEGdkEBaiELIAAoAowBIQYCQANAIAMoAgBBG0cNASADKAIgDQEgBUUEQEEAIQVBACECDAILIAMoAgghCCAEIQEgBiEAAkAgAygCBCIJQQFxBEAgAygCECEMIAMoAgwhDQNAAkAgACkDAEICUg0AIABBCGooAgAgCUcNACAAQQxqKAIAIAhHDQAgAEEQaigCACANRw0AIABBFGooAgAgDEYNAwsgAEHIAWohACABQcgBayIBDQALDAMLA0ACQCAAKQMAQgJSDQAgAEEIaigCACAJRw0AIABBDGooAgAgCEYNAgsgAEHIAWohACABQcgBayIBDQALDAILIAJBAWohAiAKIANBQGsiA0cNAAsgCyECCyACIAcgBSAFIAdLG0YLQQFzC4YGAgh/AX4jAEEwayICJABBASEHIAEoAgBBo7LIAEEBIAEoAgQoAgwRAAAhAyACQQE6ABMgAkEAOwARIAIgAzoAECACIAE2AgwgACgCDCIIBEAgAkETaiEJIAAoAgAiAUEIaiEAIAEpAwBCf4VCgIGChIiQoMCAf4MhCgNAIAYhBCAKUARAA0AgACIGQQhqIQAgAUGAA2shASAGKQMAQoCBgoSIkKDAgH+DIgpCgIGChIiQoMCAf1ENAAsgCkKAgYKEiJCgwIB/hSEKC0EBIQYgA0EBcSEDAn9BASADDQAaAkACQAJAAkACQCACLQASRQRAIAEgCnqnQQN2QVBsaiEFIAIoAgwiAy0ACkGAAXFFBEAgBEEBcQ0CDAMLIARBAXFFBEBBASADKAIAQaCyyABBASADKAIEKAIMEQAADQcaCyACQQE6ABMgAiAJNgIoIAIgAykCADcCICAFQSxrKAIAIAVBKGsoAgAgAkEgaiIEQaDrwgAQvwYNBCAEQaayyABBAhD9CA0EDAMLQZ/jwgBBjQFB6OPCABC/EwALQQEgAygCAEGIs8kAQQIgAygCBCgCDBEAAA0EGgtBASAFQSxrKAIAIAVBKGsoAgAgAygCACADKAIEEL8GDQMaQQEgAygCAEGmssgAQQIgAygCBCgCDBEAAA0DGgsgBUEgayEDIAJBADoAECACQQE6ABIgAigCDCIELQAKQYABcUUEQEEBIAMgBBDXAQ0DGgwCCyACIAk2AhwgAkGg68IANgIkIAIgBCkCADcCFCACIAQpAgg3AiggAiACQRRqNgIgIAMgAkEgahDXAQ0AIAIoAiBBpLLIAEECIAIoAiQoAgwRAABFDQELQQEMAQsgAkEAOgASQQALIQMgCkIBfSAKgyEKIAJBAToAESACIAM6ABAgCEEBayIIDQALCwJAIANFBEAgAi0AEkEBRg0BIAIoAgwiACgCAEGhssgAQQEgAEEEaigCACgCDBEAACEHCyACQTBqJAAgBw8LQfjjwgBB3QBBqOTCABC/EwALhQYCBX8BfiMAQTBrIgIkACABKAIYIQYgAiABKQIQNwMQIAIgASkCCDcDCCACIAEpAgAiBzcDAAJAAn8CQAJAAkACQAJAAkACQAJAAkACQCAHp0EBaw4CAgABCyACQQRyEK0QDQIgAEEANgIIIABCgICAgIABNwIADAgLAkACQAJAIAIoAgQiAUEIaiIEIAIoAggiAxD3EC0AWEECRwRAIAQgAxD3EC0AWA0BIABBADYCCCAAQoCAgICAATcCAAwGCyABKAIcIgQgA0sEQCABKAIYIANB8ABsaiIDKAJoIQQgAygCZCEDIAEgASgCACIFQQFqNgIAIAVBAEgNCiACIAQ2AiQgAiADNgIgIAIgATYCHCACIAY2AiggAkEBOwEsIAAgAkEcahD3AiABIAEoAgAiAEEBazYCACAAQQFGDQIMAwsgAyAEQeT+yAAQhRMMCQsgASgCHCIEIANNDQUgASgCGCADQfAAbGoiAygCaCEEIAMoAmQhAyABIAEoAgAiBUEBajYCACAFQQBIDQggAiAENgIkIAIgAzYCICACIAE2AhxByAAQkAEiA0UNBiADIAYgAkEcahDyDyAAQQE2AgggACADNgIEIABBATYCACABIAEoAgAiAEEBazYCACAAQQFGBEAgARAwCyABIAEoAgAiAEEBazYCACAAQQFHDQELIAEQMAsgAigCAEEBaw4CBQcJCyAAQQA2AgggAEKAgICAgAE3AgAMBAsgAEEANgIIIABCgICAgIABNwIAIAIoAhQiACgCACEBIAAgAUEBazYCACABQQFGBEAgABAwCwJAIAIoAgBBAWsOAgQIAAsgAigCBCEBCyABIAEoAgAiAEEBazYCACAAQQFHDQYgAkEEcgwFCyADIARB5P7IABCFEwALQbjwyQBBAToAAAALIAIoAhQiASgCACEAIAEgAEEBazYCACAAQQFHDQMgAkEUagwCCwALIAIoAhQiASgCACEAIAEgAEEBazYCACAAQQFHDQEgAkEUagsoAgAQMAsgAkEwaiQAC8AFAgV/A34jAEGQAmsiBCQAQgEhCQJAAkACQAJAAkACQAJAAkACQAJAAkAgAigCEEEBaw4DAQEAAgsgAikDGCIKQj+HIQkgCSAKhSAJfSEJCyACQQAQ6woNACACQQAQ6woNASAJQv////8PgyEKIAI1AgghCyACKQMAIQkMBAsgAkEAEOsKRQRAIAI1AgghCyACKQMAIQlC/////w8hCiADp0EBcQ0EDAULQv///////////wAhCSADp0EBcUUNAQsgAi0AoQFFDQELIAAgAUGQAvwKAAAMAwsCQAJAIAEoAiAiAkF9Rg0AIAFBMGoQ/wIgAkEATA0AIAEoAiQi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SxsQjxMiAiAGIAVrIAIbQQBIIQMgAEHwAEGoASAEG2oiB0EIaigCACEEIAcgCSAIIAMbIAdBBGooAgAgCUEEaigCACAEIAlBCGooAgAiAiACIARLGxCPEyIAIAQgAmsgABtBAEgiBBshCiALIAggCSAEGyADGyIFQQhqKAIAIQYgCkEEaigCACAFQQRqKAIAIApBCGooAgAiAiAGIAIgBkkbEI8TIQAgASAIIAsgAxsiAykDMDcDMCABIAMpAyg3AyggASADKQMgNwMgIAEgAykDGDcDGCABIAMpAxA3AxAgASADKQMINwMIIAEgAykDADcDACABIAogBSAAIAIgBmsgABtBAEgiABsiAikDADcDOCABIAIpAwg3A0AgASACKQMQNwNIIAEgAikDGDcDUCABIAIpAyA3A1ggASACKQMoNwNgIAEgAikDMDcDaCABIAUgCiAAGyIAKQMwNwOgASABIAApAyg3A5gBIAEgACkDIDcDkAEgASAAKQMYNwOIASABIAApAxA3A4ABIAEgACkDCDcDeCABIAApAwA3A3AgASAJIAcgBBsiACkDADcDqAEgASAAKQMINwOwASABIAApAxA3A7gBIAEgACkDGDcDwAEgASAAKQMgNwPIASABIAApAyg3A9ABIAEgACkDMDcD2AEL1wUCBn8CfiMAQUBqIgMkACABQQ1qIQQgAS0ADCEHIAEoAgghCCABKAIEIQYgASgCACEFAkACQAJAAkACQAJAIAEpAxAiCiACKQMQIglVIAkgClVrQf8BcQ4CAQIACyADIAg2AiAgAyAGNgIcIAMgBTYCGCADIAo3AyggAyAELwAAOwAlIAMgBC0AAjoAJyADIAc6ACQCQCAHQQFGBEAgAyAJNwMQIANBAToADCADQQA2AgggA0KAgICAwAA3AwAgBUUNASAGQQRrKAIAIgRBeHEhASABIAVBAnQiBUEEQQggBEEDcSIEG2pJDQUgBEEARyABIAVBJ2pLcQ0GIAYQvAUgACADIAIQlAgMBAsCQAJAAkAgCSAKVSAJIApTa0H/AXEOAgECAAsgA0EwaiIBIAogCX0QiAIgA0EYaiABEIcJIAMgCTcDECADIAMpAxg3AwAgAyADKQMgNwMIIAAgAyACEJQIDAULIAMgAykDKDcDECADIAMpAyA3AwggAyADKQMYNwMAIAAgAyACEJQI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eEcNCCABKAIUIgEgAigCJCIETw0JIAIoAiAgAUHcAGxqIgIoAiQhASACKAIgDAELIAMgASgCGEEIaiACENAQIAMoAgQhASADKAIACzYCBCAAQX82AgAgACABNgIIDAMLIAEoAgwhAiAAAn8gASgCCEEBRgRAIAEoAhgiBUGgAmooAgAiBCACTQ0JIAEoAhAiBCAFQZwCaigCACACQSRsaiICQSBqKAIAIgVPDQogAkEcaigCACAEQdQAbGoiAigCAEGAgICAeEcNCyABKAIUIgEgAigCJCIETw0MIAIoAiAgAUHcAGxqIgIoAiQhASACKAIgDAELIANBCGogASgCGEEIaiACENAQIAMoAgwhASADKAIICzYCBCAAQX82AgAgACABNgIIDAILIANBEGogASgCqAFBCGogASgCrAEQ0RAgACADKQMQNwIEIABBfzYCAAwBCyADQRhqIAEoAlhBCGogASgCXBDRECADIAMpAxg3AiAgAyADQSBqrUKAgICA0AGENwMoIABB7IHAACADQShqELgMCyADQTBqJAAPCyACIARBlL7EABCFEwALIAQgBUGUvsQAEIUTAAtBlL7EABCdFQALIAEgBEGkvsQAEIUTAAsgAiAEQZS+xAAQhRMACyAEIAVBlL7EABCFEwALQZS+xAAQnRUACyABIARBpL7EABCFEwALyAUBBn8jAEGgAmsiAiQAIAEoAhQhBCABKAIQIgUoAgAhAyAFIANBAWo2AgACQAJAIANBAE4EQCACIAU2AoABIAIgASkCCDcDeCACIAEpAgA3A3AgAiAEIAJB8ABqEOwMAkBB5AAQkAEiAwRAAkACQAJAAkACQEEDIAIoAgAiBEECayAEQQFNG0EBaw4DAQIDAAsgAkHwAGogAkHkAPwKAAAMAwsgAkH0AGogAkEEahCgByACQQM2AnAMAgtB5AAQkAEiBEUNAyACKAIEIAQQuA8gAkEENgJwIAIgBDYCdAwBCyACQfAAaiACEOQFCyADIAJB8ABqIgRB5AD8CgAAIAJBATYCbCACIAM2AmggAkEBNgJkIAEtABgiBkUNAyAEIAJB5AD8CgAAQeQAEJABIgNFDQQgAyAEQeQA/AoAACACQeQAahCYEiACKAJoIgQgAzYCaCAEQQQ2AmQgAkECNgJsDAMLDAMLDAILAAsgAiACKAJsNgKYASACIAIpAmQ3A5ABIAJBAzYCsAEgAkHamskANgKsASACQX42AnAgAkEBOwG0ASACQoCAgIBwNwKkASACQoCAgIDAADcCnAEgAkG1AWohAyABLQAZIAZyRQRAIAIoApgBIgQgAigCkAFGBEAgAkGQAWoQmBILIAIoApQBIARB5ABsaiIHQQA6AAQgB0ECNgIAIAIgBEEBajYCmAELIAJB2AFqIgQgAkHwAGpBxAD8CgAAIAIgAy0AAjoA1gEgAiADLwAAOwHUAQJAQcgAEJABIgMEQCADIARBxAD8CgAAIANBADoARCAAQQE2AgggACADNgIEIABBATYCACADIAIvAdQBOwBFIAMgAi0A1gE6AEcgBg0BIAIQwAcMAQsMAQsgBSAFKAIAIgBBAWs2AgAgAEEBRgRAIAEoAhAQMAsgAkGgAmokAA8LQbjwyQBBAToAAAALlgUBCn8gAEE0aigCACAAQQRqKAIAIABBOGooAgAiAyAAQQhqKAIAIgcgAyAHSRsQjxMhBSAAQZABQeAAIABBlAFqKAIAIABB5ABqKAIAIABBmAFqKAIAIgYgAEHoAGooAgAiBCAEIAZLGxCPEyICIAYgBGsgAhtBAEgiBBtqIQggACAFIAMgB2sgBRsiAkF/c0EfdkEwbGohCSAAIAJBH3ZBMGxqIgtBCGooAgAhBSAIQQRqKAIAIAtBBGooAgAgCEEIaigCACIGIAUgBSAGSxsQjxMiAiAGIAVrIAIbQQBIIQMgAEHgAEGQASAEG2oiB0EIaigCACEEIAcgCSAIIAMbIAdBBGooAgAgCUEEaigCACAEIAlBCGooAgAiAiACIARLGxCPEyIAIAQgAmsgABtBAEgiBBshCiALIAggCSAEGyADGyIFQQhqKAIAIQYgCkEEaigCACAFQQRqKAIAIApBCGooAgAiAiAGIAIgBkkbEI8TIQAgASAIIAsgAxsiAykDKDcDKCABIAMpAyA3AyAgASADKQMYNwMYIAEgAykDEDcDECABIAMpAwg3AwggASADKQMANwMAIAEgCiAFIAAgAiAGayAAG0EASCIAGyICKQMANwMwIAEgAikDCDcDOCABIAIpAxA3A0AgASACKQMYNwNIIAEgAikDIDcDUCABIAIpAyg3A1ggASAFIAogABsiACkDADcDYCABIAApAyg3A4gBIAEgACkDIDcDgAEgASAAKQMYNwN4IAEgACkDEDcDcCABIAApAwg3A2ggASAJIAcgBBsiACkDADcDkAEgASAAKQMINwOYASABIAApAxA3A6ABIAEgACkDGDcDqAEgASAAKQMgNwOwASABIAApAyg3A7gBC60FAQZ/IwBBQGoiAiQAIAEoAgBBsPrGAEENIAEoAgQoAgwRAAAhBwJAAkACQAJAAkACQAJAAkACQCAAKAIEIgYgACgCACIAKAIcIgRJBEAgACgCGCAGQfAAbGoiAygCXCEEIAMoAlghAyAAIAAoAgAiBUEBajYCACAFQQBIDQEgAEGgAmooAgAiBSADTQ0FIABBnAJqKAIAIANBJGxqIgNBIGooAgAiBSAETQ0GIANBHGooAgAgBEHUAGxqIgQoAgBBgoCAgHhHDQcgAiAEKQIINwIgIAJBCGogAEEIaiAGENEQIAIgAikDCDcCKCACIAJBKGqtQoCAgIDQAYQ3AzggAiACQSBqrUKAgICA0AGENwMwIAJBFGpBnIXAACACQTBqELgMIAAgACgCACIEQQFrNgIAQQEhBiAEQQFGBEAgABAwCyACKAIUIQQgAigCGCEAIAcNBCACKAIcIQMgAS0ACkGAAXENAiABKAIAIgdBtM/FAEEBIAEoAgQiBSgCDBEAAA0EIAAgAyAHIAUQvwZFDQMMBAsgBiAEQeT+yAAQhRMLAAsgASgCACIHQZ3jwgBBAiABKAIEIgUoAgwRAAANASACIAU2AjQgAiAHNgIwIAJBAToAFCACIAJBFGo2AjggACADIAJBMGoiA0Gg68IAEL8GDQEgA0GkssgAQQIQ/QgNAQsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEGCyAEBEAgAEEEaygCACIDQXhxIQEgAUEEQQggA0EDcSIDGyAEakkNBCADQQBHIAEgBEEnaktxDQUgABC8BQsgAkFAayQAIAYPCyADIAVBzLvEABCFEwALIAQgBUHMu8QAEIUTAAtBzLvEABCdFQALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC6sFAgd/AX4jAEGABmsiBSQAAkACQAJAAkACQCACLQAAQf8BRwRAIAVBCGoiByACQdAA/AoAACAFQQA6AGYgBUEBOwFkIAUgAzYCYCAFQQA2AlwgBUGYA2oiAiAFQdwAaiAHIAQQ5QEgBSAFKQKgAzcDcCAFIAUpApgDNwNoIAUoAqgDIQQgBSkCrAMhDAJAIAEoAgBBf0cEQCAFIAEpAgg3A5ADIAUgASkCADcDiAMgAiAFQYgDaiAFQegAahD0DCABIAUpAqADNwIIIAEgBSkCmAM3AgAMAQsgASAFKQNwNwIIIAEgBSkDaDcCAAsgBUH4AGogAUGQAvwKAAACQCAEQX9GDQAgDKchAiAMQiCIIgxCAFIEQCAMp0HYAGwhAyAFQagFaiEHIAVB+ARqIQogAiEBA0AgByABQdgA/AoAACAFQZgDaiAFQfgAakGQAvwKAAAgBSgCgAUiBiAFKAL4BEYEQCAKEKsSCyAFKAL8BCAGQcwAbGogB0HMAPwKAAAgBSAGQQFqNgKABSAFQfgAaiAFQZgDakGQAvwKAAAgBSgC9AUiBgRAIAUoAvgFIgtBBGsoAgAiCEF4cSEJIAlBBEEIIAhBA3EiCBsgBmpJDQUgCEEARyAJIAZBJ2pLcQ0GIAsQvAULIAFB2ABqIQEgA0HYAGsiAw0ACwsgBEUNACACQQRrKAIAIgNBeHEhASABIARB2ABsIgRBBEEIIANBA3EiAxtqSQ0EIANBAEcgASAEQSdqS3ENBSACELwFCyAAIAVB+ABqQZAC/AoAAAwFCyAAIAFBkAL8CgAADAQLQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgBUGABmokAAuoBQEEfyABKAIYIQUgASgCFCECIAAoAgAiASgCCCIEIAEoAgBGBEAgASAEQQFBAUEBELMRIAEoAgghBAsgASAEQQFqIgM2AgggASgCBCAEakH7ADoAACAFRQRAIAMgASgCAEYEQCABIANBAUEBQQEQsxEgASgCCCEDCyABIANBAWo2AgggASgCBCADakH9ADoAAA8LIAAoAgAgAkE8aigCACACQUBrKAIAEJ4HIAAoAgAiASgCCCIEIAEoAgBGBEAgASAEQQFBAUEBELMRIAEoAgghBAsgBUHIAGwgASAEQQFqNgIIIAEoAgQgBGpBOjoAAAJAAkACQAJAAkACQCACKAIAQQFrDgQDAgEABAsgACACQQhqEMEIDAQLIAJBCGogABDtAwwDCyAAIAJBBGoQigsMAgsgACACQQhqEMEIDAELIAJBCGogABCOAQtByABrIQQgAkGIAWohAQNAIAQEQCAAKAIAIgMoAggiAiADKAIARgRAIAMgAkEBQQFBARCzESADKAIIIQILIAMgAkEBajYCCCADKAIEIAJqQSw6AAAgACgCACABQQRrKAIAIAEoAgAQngcgACgCACIDKAIIIgIgAygCAEYEQCADIAJBAUEBQQEQsxEgAygCCCECCyADIAJBAWo2AgggAygCBCACakE6OgAAAkACQAJAAkACQAJAIAFBQGooAgBBAWsOBAECAwQACyABQThrIAAQjgEMBAsgACABQThrEMEIDAMLIAAgAUE8axCKCwwCCyABQThrIAAQ7QMMAQsgACABQThrEMEICyAEQcgAayEEIAFByABqIQEMAQsLIAAoAgAiASgCCCIAIAEoAgBGBEAgASAAQQFBAUEBELMRIAEoAgghAAsgASAAQQFqNgIIIAEoAgQgAGpB/QA6AAAL/wQBB38jAEEwayIEJABBASECAkACQAJAAkAgASgCAEEBRgRAIAEoAgQiAyABKAIIIgVPDQMgASADQQFqIgI2AgQgASgCFCEGIAQgASgCiAE2AhggBCABKQKAATcDECACIAVPDQIgASADQQJqNgIEDAELIAEoAhQhBiAEIAEoAogBNgIYIAQgASkCgAE3AxALIAFBgAFqIQIgASABLQCQASIFQQFHOgCQASAEIAIoAgg2AiggBCACKQIANwMgIAEoAjghAiABKAJQIgMgASgCSEYEQCABQcgAahCWEgsgASADQQFqNgJQIAEoAkwgA0EDdGoiAyACNgIEIAMgAjYCACAEQQhqIAEQrgsgBCgCCCAEKAIMIgEgBCgCKDYCiAEgASAEKQMgNwKAASABIAU6AJABIAFBMGoQhgpBAUcNACABKAKEASEDIAEoAoABIQUCQCABKAKIASICRQ0AIAIgA08EQCACIANGDQEMBAsgAiAFaiwAAEFASA0DCyACIANGDQBBASEDAkAgAiAFaiIGLAAAIgVBAE4NACAGLQABQT9xIQcgBUEfcSEIAn8gCEEGdCAHciAFQWBJDQAaIAYtAAJBP3EgB0EGdHIhByAHIAhBDHRyIAVBcEkNABogCEESdEGAgPAAcSAGLQADQT9xIAdBBnRycgsiBkGAAUkNAEECIQMgBkGAEEkNAEEDQQQgBkGAgARJGyEDCyABIAIgA2o2AogB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ahC2Cg0DIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANAwsgASgCAEGIkMkAQQEgASgCBCgCDBEAACEADAILQQEhACABKAIAIgNBmZLJAEEIIAEoAgQiBigCDCIFEQAADQECQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQMgBCABEI8GRQ0BDAMLIANBnePCAEECIAURAAANAiACQQE6AAwgAiAGNgIYIAIgAzYCFCACQaDrwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiAzYCICAEIAJBIGoQjwYNAiADQaSyyABBAhD9CA0CCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAQtBASEAIAEoAgAiA0GnkMkAQQsgASgCBCIGKAIMIgURAAANAAJAIAEtAApBgAFxRQRAIANBtM/FAEEBIAURAAANAiAEIAEQ/QtFDQEMAgsgA0Gd48IAQQIgBREAAA0BIAJBAToADCACIAY2AhggAiADNgIUIAJBoOvCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUajYCICAEIAJBIGoQ/QsNASACKAIgQaSyyABBAiACKAIkKAIMEQAADQELIAEoAgBBiJDJAEEBIAEoAgQoAgwRAAAhAAsgAkEwaiQAIAALswUCC38BfiMAQfABayICJAACQCABKAIEIgMgASgCDCIKRgRAQQIhAwwBCyABKAIQIQQgAkGgAWoiB61CgICAgPAghCENIAJB4ABqIgVBBHIhCCAFQTBqIQsgB0EYaiEFIAdBBHIhCQJAA0AgASADQcgAaiIHNgIEIANBBGohBgJAIAMoAgAiDEECRgRAIAIgBigCEDYCcCACIAYpAgg3A2ggAiAGKQIANwNgDAELIAIgDDYCoAEgCSAGKQIANwIAIAkgBikCCDcCCCAJIAYoAhA2AhAgBSADQRhqKQMANwMAIAUgA0EgaikDADcDCCAFIANBKGopAwA3AxAgBSADQTBqKQMANwMYIAUgA0E4aikDADcDICAFIANBQGspAwA3AyggAiANNwPoASALQeTxwQAgAkHoAWoQuAwgAkEAOgCcASACQX82AnAgAkGgAWoQrgcgAigCkAEiA0F/Rg0AIAIgAikCdDcDICACIAIpAnw3AyggAiACKQKEATcDMCACIAIoAowBNgI4IAIgAikC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BEGzxcEAIAJBCGoQsQkMDgsgAiAAKAIENgIAIAIgAq1CgICAgNADhDcDCCABKAIAIAEoAgRB1sXBACACQQhqELEJDA0LIAIgACkCBDcCACACIAKtQoCAgIDgA4Q3AwggASgCACABKAIEQaSMwAAgAkEIahCxCQwMCyABKAIAQeasyABBCiABKAIEKAIMEQAADAsLIAEoAgBB8KzIAEEKIAEoAgQoAgwRAAAMCgsgASgCAEH6rMgAQQwgASgCBCgCDBEAAAwJCyABKAIAQYatyABBDiABKAIEKAIMEQAADAgLIAEoAgBBlK3IAEEIIAEoAgQoAgwRAAAMBwsgASgCAEGcrcgAQQMgASgCBCgCDBEAAAwGCyABKAIAQdesyQBBBCABKAIEKAIMEQAADAULIAEoAgBBn63IAEEMIAEoAgQoAgwRAAAMBAsgASgCAEGrrcgAQQ8gASgCBCgCDBEAAAwDCyABKAIAQbqtyABBDSABKAIEKAIMEQAADAILIAEoAgBBx63IAEEOIAEoAgQoAgwRAAAMAQsgASgCACAAKAIEIAAoAgggASgCBCgCDBEAAAsgAkEQaiQAC4AFAQh/IwBB0AFrIgMkACADQf8BOgCoASADQQA2AmAgA0EANgJYIANBADYCUCADQQA2AkggA0EANgJAIANBADYCOCADQQA2AjAgA0EANgIoIANBADYCICADQQA2AhggA0EANgIQIANBADYCmAEgA0EANgKQASADQQA2AogBIANBADYCgAEgA0EANgJ4IANBADYCcCADQQA2AmggA0EANgKgASADQgA3AwAgA0EAOgDEASADQQA2AsABIANCi4CAgMAANwK4ASADQYq4xQA2ArQBIANByAFqIAMgASACIANBtAFqEDcgAygCzAEhASADLQDMASECAkAgAUUgAygCyAEiBEEAR3FFBEAgAEEFQX8gARsgAiAEGzoAAUEBIQIMAQtBASECAkACQAJAAkAgAygCeEEBRgRAIAMoAnwiB0ECTwRAIABBADoAAQwGCyADKAKAAUEBRw0BIAMoAoQBIghBDE8EQCAAQQA6AAEMBgsgAygCiAFBAUcNAiADKAKMASIJQTxPBEAgAEEAOgABDAYLQQAhASADKAKQASIKRQ0EQTshASADKAKUASIEQTtLDQMgBCEBDAQLIABBAjoAAQwECyAAQQI6AAEM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g4CAgHghBgwCCyADQSBqIARBBGooAgAgBEEIaigCABD3CEGEgICAeCEGDAELIANBMGogBBDlBCADIAMpAzg3AyggAyADKQMwNwMgIAMgCCkCADcDACADIAgpAgg3AwggAyAIKQIQNwMQIAMgCCgCGDYCGCADKAJAIQYLIAcgCWoiBSADKQMoNwMIIAUgAykDIDcDACAFQRBqIAY2AgAgBUEUaiADKQMANwIAIAVBHGogAykDCDcCACAFQSRqIAMpAxA3AgAgBUEsaiADKAIYNgIAIAdBMGoiByAKRw0ACwwCC0EIEKcUAAtBARCnFAALIAILIQYgACACNgIIIAAgCTYCBCAAIAY2AgAgA0HgAGokAAuTBQEHfyMAQSBrIgQkAAJAAkACQCABKAIEIgIgASgCACIDKAIcIgVJBEAgAygCGCACQfAAbGoiBigCaCEFIAYoAmQhBiADIAMoAgAiB0EBajYCACAHQQBIDQEgASgCCCEIIAMgAygCACIBQQFqNgIAIAQgBTYCDCAEIAY2AgggBCADNgIEIAFBAEgNASADIAMoAgAiAUEBajYCACABQQBIDQEgAyADKAIAIgFBAWo2AgAgAUEASA0BIAMgAygCACIBQQFqNgIAIAFBAEgNAUEUEJABIgFFDQMgAUEAOgAQIAEgBTYCDCABIAY2AgggASADNgIEIAEgCDYCAEEYEJABIgcNAgwDCyACIAVB5P7IABCFEwsACyAHQQA6ABQgB0GE5scANgIMIAcgATYCCCAHQoGAgIAQNwIAIARBEGogCCAEQQRqIAMgAhCgCEGQARCQASIBRQ0AQeQAEJABIgJFBEAMAQsgAiAHNgJgIAJBADoAXCACIAU2AkggAiAGNgJEIAIgAzYCQCACQSA7ATwgAiAFNgI4IAIgBjYCNCACIAM2AjAgAkEANgIsIAIgBTYCKCACIAY2AiQgAiADNgIgIAJBADYCHCACQX82AhAgAkEANgIIIAJBADYCACABQX42AkggAUEBOwFEIAFBBTYCQCABQbzxxwA2AjwgAUF/NgI4IAFCBDcDMCABQgE3AyggASACNgIkIAFBATYCICABQX42AgAgAUEBOwGMASABQQQ2AogBIAFBlPDHADYChAEgAUKAgICAcDcCfCABQoCAgIDAADcCdCABIAQpAxA3A2ggASAEKAIYNgJwIABBAjYC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AhD9CA0BIAAoAgQgACgCCCACQaDrwgAQvwYNASACQaSyyABBAhD9CARADAILIAIgBjYCBCACIAM2AgAgAkEBOgAPIAIgAkEPajYCCCACQfT6xgBBAhD9CA0BIAJBprLIAEECEP0IDQEgACgCECAAKAIUIAJBoOvCABC/BgRADAILIAJBpLLIAEECEP0IBEAMAgsgA0GhssgAQQEgBBEAACEFDAELQQEhBSABKAIAIgNB08PGAEESIAEoAgQiBigCDCIEEQAADQACQCABLQAKQYABcUUEQCADQbTPxQBBASAEEQAADQIgACgCCCAAKAIMIAMgBhC/BkUNAQwCCyADQZ3jwgBBAiAEEQAADQEgAiAGNgIEIAIgAzYCACACQQE6AA8gAiACQQ9qNgIIIAAoAgggACgCDCACQaDrwgAQvwYNASACQaSyyABBAhD9CA0BCyADQYiQyQBBASAEEQAAIQULIAJBEGokACAFC+cEAQZ/IwBBsAJrIgIkACACQQhqIgQgASgCACIDIAFBBGoiBSABQRBqIgZBACABKAIQGxCkCyACQQE6AIcBIAIgAzYCkAEgAiACQYcBajYCjAEgAiAENgKIASACQaABaiIBIAJBiAFqEJUGAkACQAJAAkAgAigCoAFBfUcEQEGgAhCQASIDRQ0CIAMgAUHIAPwKAAAgAkEBNgKcASACIAM2ApgBIAJBBDYClAFByAAhBEEBIQEDQCACQegBaiACQYgBahCVBiACKALoAUF9RkUEQCACKAKUASABRgRAIAJBlAFqIAFBAUEIQcgAELMRIAIoApgBIQMLIAMgBGogAkHoAWpByAD8CgAAIAIgAUEBaiIBNgKcASAEQcgAaiEEDAELCyAAIAIoApwBNgIIIAAgAikClAE3AgAMAQsgAEEANgIIIABCgICAgIABNwIACyACKAIMIQAgAigCECIEBEAgAEEQaiEBA0AgASgCACIHKAIAIQMgByADQQFrNgIAIANBAUYEQCABKAIAEDALIAFBFGohASAEQQFrIgQNAAsLIAIoAggiBARAIABBBGsoAgAiA0F4cSEBIAEgBEEUbCIEQQRBCCADQQNxIgMbakkNAiADQQBHIAEgBEEnaktxDQMgABC8BQsgBSgCACIBKAIAIQAgASAAQQFrNgIAIABBAUYEQCAFKAIAEDALAkAgBigCACIARQ0A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AhggACACNgJYIABBADoAVCAAIAc2AlAgAEEBOgBMIAAgBDYCOCAAIAE2AjQgACAFNgIwIABBFDoALCAAIAQ2AiggACABNgIkIABBATYCICAAQQE6ABwgAEEBOgBcIABBCzoADCAAIAQ2AgggACABNgIEIABBATYCACAGQSBqJAAPCyABIANBzLvEABCFEwALIAQgB0HMu8QAEIUTAAtBzLvEABCdFQALQbjwyQBBAToAAAAL2QQBBX8jAEEgayIGJAAgASgCACIFKAIAIQQgBSAEQQFqNgIAAkACQAJAAkACQAJAIARBAEgNACABKAIIIQQgASgCBCEBIAUgBSgCACIDQQFqNgIAIANBAEgNACAFQaACaigCACIDIAFNDQIgBUGcAmooAgAgAUEkbGoiA0EgaigCACIHIARNDQMgA0EcaigCACAEQdQAbGoiAygCAEGCgICAeEcNBCAGIAMpAgg3AhAgBiAGQRBqrUKAgICA0AGENwMYIAZBBGpBvIHAACAGQRhqELgMIAUgBSgCACIDQQFqNgIAIANBAEgNAEEQEJABIgNFDQUgAyAENgIMIAMgATYCCCADIAU2AgQgAyACNgIAQRgQkAEiBw0BDAULAAsgB0EAOgAUIAdBlOvHADYCDCAHIAM2AgggB0KBgICAEDcCAEEQEJABIgNFDQMgAyAENgIMIAMgATYCCCADIAU2AgQgAyACNgIAQRgQkAEiAkUNAyACQQA6ABQgAkHg7ccANgIMIAIgAzYCCCACQoGAgIAQNwIAIAAgBikCBDcCECAAIAYoAgw2AhggAEEAOgBcIAAgAjYCWCAAQQA6AFQgACAHNgJQIABBAToATCAAIAQ2AjggACABNgI0IAAgBTYCMCAAQRQ6ACwgACAENgIoIAAgATYCJCAAQQE2AiAgAEEBOgAcIABBDToADCAAIAQ2AgggACABNgIEIABBATYCACAGQSBqJAAPCyABIANBzLvEABCFEwALIAQgB0HMu8QAEIUTAAtBzLvEABCdFQALQbjwyQBBAToAAAAL2QQBBX8jAEEgayIGJAAgASgCACIFKAIAIQQgBSAEQQFqNgIAAkACQAJAAkACQAJAIARBAEgNACABKAIIIQQgASgCBCEBIAUgBSgCACIDQQFqNgIAIANBAEgNACAFQaACaigCACIDIAFNDQIgBUGcAmooAgAg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ASgCBBCnDgJAAkAgBSgCCCICBEAgBSgCDCIBQQBIDQYgAUUEQEEBIQMMAwsgARCQASIDDQFBARCnFAALQYnqxQBBGEGk6sUAEMATAAsgAUUNACADIAIgAfwKAAALIAAgATYCDCAAIAM2AgggACABNgIEIABBBzoAAAwFCyACIARBnLrEABCFEwALIAEgBEGcusQAEIUTAAtBnLrEABCdFQALEJ4VAAsgACABNgIMIAAgAjYCCCAAIAE2AgQgAEEGOgAAIAMgAygCACIAQQFrNgIAIABBAUcNACADEDALIAVBEGokAAuSBAEKfyAAQRxqKAIAIABBBGooAgAgAEEgaigCACIHIABBCGooAgAiAyADIAdLGxCPEyEEIABByABBMCAAQcwAaigCACAAQTRqKAIAIABB0ABqKAIAIgIgAEE4aigCACIGIAIgBkkbEI8TIgUgAiAGayAFG0EASCIFG2ohAiAAIAQgByADayAEGyIDQX9zQR92QRhsaiEHIAAgA0EfdkEYbGoiA0EIaigCACEEIAJBBGooAgAgA0EEaigCACACQQhqKAIAIgYgBCAEIAZLGxCPEyIIIAYgBGsgCBtBAEghBCAAQTBByAAgBRtqIgZBCGooAgAhACAGIAcgAiAEGyAGQQRqKAIAIAdBBGooAgAgACAHQQhqKAIAIgUgACAFSRsQjxMiCCAAIAVrIAgbQQBIIgkbIQAgAyACIAcgCRsgBBsiBUEIaigCACEIIABBBGooAgAgBUEEaigCACAAQQhqKAIAIgogCCAIIApLGxCPEyELIAEgAiADIAQbIgIpAhA3AhAgASACKQIINwIIIAEgAikCADcCACABIAAgBSALIAogCGsgCxtBAEgiAxsiAikCEDcCKCABIAIpAgg3AiAgASACKQIANwIYIAEgBSAAIAMbIgApAhA3AkAgASAAKQIINwI4IAEgACkCADcCMCABIAcgBiAJGyIAKQIANwJIIAEgACkCCDcCUCABIAApAhA3AlgLjgQCAn8FfiMAQdAAayIEJAAgBEIANwM4IARCADcDQCAEIAE3AzAgBCABQvPK0cunjNmy9ACFNwMgIAQgAULt3pHzlszct+QAhTcDGCAEIAA3AyggBCAAQuHklfPW7Nm87ACFNwMQIAQgAEL1ys2D16zbt/MAhTcDCCAEIAM2AkwgBEEIaiAEQcwAakEEEJYIIAMEQCADQQxsIQUgAkEIaiEDA0AgBEEIaiICIANBBGsoAgAgAygCABCWCCAEQf8BOgBMIAIgBEHMAGpBARCWCCADQQxqIQMgBUEMayIFDQALCyAEKQMIIQEgBCkDGCEAIAQ1AkAhBiAEKQM4IQcgBCkDICEIIAQpAxAhCSAEQdAAaiQAIAAgAXwiCkIgiSAHIAZCOIaEIgYgCIUiASAJfCIHIAFCEImFIgF8IgggAUIViYUhASABIAcgAEINiSAKhSIHfCIJQiCJQv8BhXwiCiABQhCJhSEAIAAgCSAHQhGJhSIBIAYgCIV8IgZCIIl8IgcgAEIViYUhACAAIAYgAUINiYUiASAKfCIGQiCJfCIIIABCEImFIQAgACAGIAFCEYmFIgEgB3wiBkIgiXwiByAAQhWJhSEAIAAgAUINiSAGhSIBIAh8IgZCIIl8IgggAUIRiSAGhSIBIAd8IAFCDYmFIgF8IgYgAEIQiSAIhUIViSABQhGJhSAGQiCJhYULuAQCBn8DfiMAQRBrIgYkAAJAAkAgASgCvAJFDQAgASgCtAIiBCACQd3L3Z55bEEPdyIFcSEDIAVBGXatQoGChIiQoMCAAX4hCyABKAKwAiEFA0AgAyAFaikAACIKIAuFIglCgYKEiJCgwIABfSAJQn+Fg0KAgYKEiJCgwIB/gyIJQgBSBEADQCACIAUgCXqnQQN2IANqIARxQQN0ayIIQQhrKAIARg0EIAlCAX0gCYMiCUIAUg0ACwsgCiAKQgGGg0KAgYKEiJCgwIB/g0IAUg0BIAdBCGoiByADaiAEcSEDDAALAAtB1LnEAEEWQZS5xAAQwBMACwJAAkACQAJ/An8CQAJAAkAgCEEEaygCACIDIAEoAqwCIgRJBEAgASgCqAIgA0EobGoiA0EMaiEEQQghBQJAAkACQAJAIAMoAghBAmsOAgEABwsgBCgCAEEBaw4CBAIBCyAEKAIADQQLQQAhBCAGQQhqIQUgBkEMaiEHIAMoAhAMBQsMAgsgAyAEQfT+yAAQhRMAC0EBIQQgAygCEAwDCyADQRBqIQRBDCEFCyAGIAQoAgA2AgwgA0EIaiAFaigCACEEIAZBBGohBSAGQQhqIQdBAQshAyAHIAM2AgAgBSAENgIAIAYoAgwiAyACRw0BIAYoAgghBCAGKAIECyEDIARFDQEgAiADRg0BCyABIAEoAgAiAkEBajYCACACQQBODQEAC0Hk8MYAEJ0VAAsgACADNgIEIAAgATYCACAGQRBqJAAL3QQCBX8BfiMAQTBrIgIkACACIABBNGo2AgAgASgCACIEQfDlxQBBCSABKAIEKAIMIgURAAAhBiACIAE2AgRBASEDAkAgBg0AIAEtAApBgAFxRQRAIARBl+PCAEEDIAURAAANASABKAIAQfnlxQBBBCABKAIEKAIMEQAADQEgASgCAEGmssgAQQIgASgCBCgCDBEAAA0BIAIgAEEQajYCHCABQYP3xQBBBUGI8sUAQQMgAEHnAUGQxMYAQQUgAEEcakHoAUHu98UAQQggAEEoakHoAUH298UAQREgAkEcakHpARC7ECEDDAELIARBmuPCAEEDIAURAAANACABKQIAIQcgAkEBOgAbIAIgBzcCDCACQaDrwgA2AiAgAiABKQIINwIkIAIgAkEbajYCFCACIAJBDGoiATYCHCABQfnlxQBBBBD9CA0AIAFBprLIAEECEP0IDQAgAiAAQRBqNgIsIAJBHGpBg/fFAEEFQYjyxQBBAyAAQecBQZDExgBBBSAAQRxqQegBQe73xQBBCCAAQShqQegBQfb3xQBBESACQSxqQekBELsQBEAMAQsgAigCHEGkssgAQQIgAigCICgCDBEAACEDCyACIAM6AAggAkEBOgAJIAJBBGpB/eXFAEEMIAJBzAEQiQ4hACACLQAJIgMgAi0ACCIEciEBAkAgA0EBRw0AIARBAXENACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB7erCAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQaGyyABBASAAKAIEKAIMEQAAIQELIAJBMGokACABQQFxC98DAQd/AkAgACgCACIBQX9GDQACQAJAQQMgAUECayABQQFNG0ECaw4CAAECCyAAQQRqEMYRDAELAkAgAUUEQCAAKAIEIgEoAgAhAiABIAJBAWs2AgAgAkEBRg0BDAILIAAoAgQiASgCACECIAEgAkEBazYCACACQQFHDQELIAAoAgQQMAsCQAJAAkAgACgCMCIBRQ0AIAEgAUECdEELakF4cSIBakEJaiIERQ0AIAAoAiwgAWsiAkEEaygCACIBQXhxIQMgA0EEQQggAUEDcSIBGyAEakkNASABQQBHIAMgBEEnaktxDQIg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cUUEQCAEQbTPxQBBASAFEQAADQYgAyABENcPRQ0BDAYLIARBnePCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgBDYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgAyACQRBqENcPDQUgAigCEEGkssgAQQIgAigCFCgCDBEAAA0FCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMBAsgAiAAQQhqNgIQIAFB9OzEAEEKIANB2QAgAkEQakHaABDyDCEADAMLQQEhACABKAIAIgRB65nJAEEEIAEoAgQiBigCDCIFEQAADQICQCABLQAKQYABcUUEQCAEQbTPxQBBASAFEQAADQQgAyABENgPRQ0BDAQLIARBnePCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIgBDYCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgAyACQRBqENgPDQMgAigCEEGkssgAQQIgAigCFCgCDBEAAA0DCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQAMAgsgAiAAQQhqNgIQIAFB/uzEAEEJIANB2wAgAkEQakHcABDyDCEADAELIAIgAEEIajYCECABQYftxABBEiADQd0AIAJBEGpB2gAQ8gwhAAsgAkEgaiQAIAALtwQBBH8jAEEgayIEJAACQAJAAkACQAJAAkACQAJAIAACfwJAAkACQCABKAIAQQFrDgIBAgALIARBCGogASgCBEEIaiABKAIIENEQIAQoAgwhASAEKAIIDAILIAEoAgghAiABKAIEQQFGBEAgASgCFCIFQaACaigCACIDIAJNDQMgASgCDCIDIAVBnAJqKAIAIAJBJGxqIgJBIGooAgAiBU8NBCACQRxqKAIAIANB1ABsaiICKAIAQYCAgIB4Rw0FIAEoAhAiASACKAIkIgNPDQYgAigCICABQdwAbGoiAigCJCEBIAIoAiAMAgsgBEEQaiABKAIUQQhqIAIQ0BAgBCgCFCEBIAQoAhAMAQsgASgCCCECIAEoAgRBAUYEQCABKAIUIgVBoAJqKAIAIgMgAk0NBiABKAIMIgMgBUGcAmooAgAgAkEkbGoiAkEgaigCACIFTw0HIAJBHGooAgAgA0HUAGxqIgIoAgBBgICAgHhHDQggASgCECIBIAIoAiQiA08NCSACKAIgIAFB3ABsaiICKAIkIQEgAigCIAwBCyAEQRhqIAEoAhRBCGogAhDQECAEKAIcIQEgBCgCGAs2AgAgACABNgIEIARBIGokAA8LIAIgA0GUvsQAEIUTAAsgAyAFQZS+xAAQhRMAC0GUvsQAEJ0VAAsgASADQaS+xAAQhRMACyACIANBlL7EABCFEwALIAMgBUGUvsQAEIUTAAtBlL7EABCdFQALIAEgA0GkvsQAEIUTAAvRAwEGfyAAKAIEIQQgACgCCCICBEAgBCEBA0ACQCABKAIADQAgAUEEaigCAA0AIAFBCGoiBSgCACIGKAIAIQMgBiADQQFrNgIAIANBAUcNACAFKAIAEIcQCyABQRBqIQEgAkEBayICDQALCwJAAkAgACgCACICBEAgBEEEaygCACIDQXhxIQEgASACQQR0IgJBBEEIIANBA3EiAxtySQ0BIANBAEcgASACQSdqS3ENAiAEELwFCyAAKAIQIQQgACgCFCICBEAgBCEBA0ACQCABKAIADQAgAUEEaigCAA0AIAFBCGoiBSgCACIGKAIAIQMgBiADQQFrNgIAIANBAUcNACAFKAIAEIcQCyABQRBqIQEgAkEBayICDQALCyAAKAIMIgIEQCAEQQRrKAIAIgNBeHEhASABIAJBBHQiAkEEQQggA0EDcSIDG3JJDQEgA0EARyABIAJBJ2pLcQ0CIAQQvAULIAAoAhgiAQRAIAAoAhwiBEEEaygCACICQXhxIQAgACABQQN0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBAEcgACABQSdqS3ENAiAEELwFCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC/8DAgd/AX4jAEEwayIIJABBGCEFA0AgBSIGIAhBCGpqIglBCGsgAyIMIANCkM4AgCIDQpDOAH59pyILQf//A3FB5ABuIgVBAXQvAJyYSTsAACAJQQZrIAsgBUHkAGxrQf//A3FBAXQvAJyYSTsAACAGQQRrIQUgDEL/wdcvVg0ACwJAIAxCv4Q9WARAIAZBCGshByADpyEFDAELIAVBBmshByADpyIGQf//A3FB5ABuIQUgCEEIaiAHaiAGIAVB5ABsa0H//wNxQQF0LwCcmEk7AAALAkAgBUEKTwRAIAdBAmsiByAIQQhqaiAFQQF0LwCcmEk7AAAMAQsgB0EBayIHIAhBCGpqIAVBMHI6AAALQQAhBSABQQA2AghBFCAHayEKIAEoAgAhCUEVIAdrIgtBACAEayIGTQRAIAECfwJAIAkgBiALa0EBaiIGSQRAIAFBACAGQQFBARCzESABKAIAIQkgASgCCCEFDAELQQAgBkUNARoLIAYEQCABKAIEIAVqQTAgBvwLAAsgBSAGagsiBTYCCAsCQAJAIAkgBWsgCkkEQCABIAUgCkEBQQEQsxEgASgCCCEFDAELIAdBFEYNAQsgCkUNACABKAIEIAVqIAhBCGogB2ogCvwKAAALIAEgBSAKaiIGNgIIIAAgASACIAQgBmoQzwwgCEEwaiQAC90DAQZ/IwBBEGsiAiQAAkACf0EAIAAoAgQiBkUNABoCfyAAKAIAIgUsAAAiAEEATgRAIABB/wFxDAELIAUtAAFBP3EhAyAAQR9xIQQgBEEGdCADciAAQV9NDQAaIAUtAAJBP3EgA0EGdHIhAyADIARBDHRyIABBcEkNABogBEESdEGAgPAAcSAFLQADQT9xIANBBnRycgsiAEHfAHEgACAAQeEAa0EaSRshAAJAIAEtAAtBGHFFBEAgASgCACAAIAEoAgQoAhARAQBFDQFBAQwCCyACQQA2AgwgASACQQxqAn8gAEGAAU8EQCAAQT9xQYB/ciEEIABBBnYhAyAAQYAQSQRAIAIgBDoADSACIANBwAFyOgAMQQIMAgsgAEEMdiEHIANBP3FBgH9yIQMgAEH//wNNBEAgAiAEOgAOIAIgAzoADSACIAdB4AFyOgAMQQMMAgsgAiAEOgAPIAIgAzoADiACIAdBP3FBgH9yOgANIAIgAEESdkFwcjoADEEEDAELIAIgADoADEEBCxCdBEUNAEEBDAELIAZBAUcEQCAFLAABQUBIDQILIAEoAgAgBUEBaiAGQQFrIAEoAgQoAgwRAAALIAJBEGokAA8LIAUgBkEBIAZBoP7HABD9FAAL3wQBAX8jAEEwayIEJAACQAJAAkACQAJAAkACQAJAAkAgAUH/AXFBAWsOAwMAAQILQQkQkAEiAUUNAyABQdTOxQAtAAA6AAggAUHMzsUAKQAANwAAIARBCTYCCCAEIAE2AgQgBEEJNgIAIAMgBBD8DSAEIAMgAhDJASAEKAIAQX5HBEAgACAEKQIoNwIoIAAgBCkCIDcCICAAIAQpAhg3AhggACAEKQIQNwIQIAAgBCkCCDcCCCAAIAQpAgA3AgAMCAtBARCQASIBRQ0EIAFBKToAACAEQQE2AgggBCABNgIEIARBATYCACADIAQQ/A0gAEF+NgIADAcLIAAgAyACEMkBDAYLIAQgAyACEMkBIAQoAgBBfkcEQCAAIAQpAig3AiggACAEKQIgNwIgIAAgBCkCGDcCGCAAIAQpAhA3AhAgACAEKQIINwIIIAAgBCkCADcCAAwGC0EHEJABIgFFDQMgAUHIzsUAKAAANgADIAFBxc7FACgAADYAACAEQQc2AgggBCABNgIEIARBBzYCACADIAQQ/A0gAEF+NgIADAULIAQgAyACEMkBIAQoAgBBfkcEQCAAIAQpAig3AiggACAEKQIgNwIgIAAgBCkCGDcCGCAAIAQpAhA3AhAgACAEKQIINwIIIAAgBCkCADcCAAwFC0EGEJABIgFFDQMgAUG8zMUALwAAOwAEIAFBuMzFACgAADYAACAEQQY2AgggBCABNgIEIARBBjYCACADIAQQ/A0gAEF+NgIADAQLQQEQpxQAC0EBEKcUAAtBARCnFAALQQEQpxQACyAEQTBqJAALlAQCA34MfyAAKQMQIAApAxggARDUByICpyAAKAIEIglxIQUgAkIZiEL/AINCgYKEiJCgwIABfiEEIAEoAgwhDCABKAIIIQYgASgCBCEKIAEoAhAhDSABKAIAIQ4gACgCACEBAn8CQANAAkAgASAFaikAACIDIASFIgJCgYKEiJCgwIABfSACQn+Fg0KAgYKEiJCgwIB/gyICQgBSBEADQAJAIA4gASACeqdBA3YgBWogCXEiD0FsbGoiB0EUaygCAEcNACANIAdBBGsoAgBHDQAgCiAHQRBrIhAoAgBHDQAgB0EMaygCACEIAkACQAJAAkACQCAKQQFrDgQCAwABAwsgBiAIRg0DDAQLIAYgCEcNAwwCCyAGIAhGDQEMAgsgBiAIRw0BDAQLIAwgB0EIaygCAEYNAwsgAkIBfSACgyICQgBSDQALCyADIANCAYaDQoCBgoSIkKDAgH+DQgBSDQIgC0EIaiILIAVqIAlxIQUMAQsLQYABIQUgD0EUbEEUbSIGIAFqIgcpAAAiAkIBhiACg0KAgYKEiJCgwIB/g3qnQQN2IAEgBkEIayAJcWoiASkAACICQgGGIAKDQoCBgoSIkKDAgH+DeadBA3ZqQQdNBEAgACAAKAIIQQFqNgIIQf8BIQULIAcgBToAACABQQhqIAU6AAAgACAAKAIMQQFrNgIMQQEgECgCAEF/Rw0BGgtBAAsL+QQBAX8gAEIANwAIIABCADcAACAAQQA2ACAgAEIANwAYIABCADcAECAAQS06AAggACABLQAAIgJBD3EtAOS2SToAASAAIAJBBHYtAOS2SToAACAAIAEtAAEiAkEPcS0A5LZJOgADIAAgAkEEdi0A5LZJOgACIAAgAS0AAiICQQ9xLQDktkk6AAUgACACQQR2LQDktkk6AAQgACABLQADIgJBD3EtAOS2SToAByAAIAJBBHYtAOS2SToABiAAIAEtAAQiAkEPcS0A5LZJOgAKIAAgAkEEdi0A5LZJOgAJIAEtAAUhAiAAQS06AA0gACACQQ9xLQDktkk6AAwgACACQQR2LQDktkk6AAsgACABLQAGIgJBD3EtAOS2SToADyAAIAJBBHYtAOS2SToADiABLQAHIQIgAEEtOgASIAAgAkEPcS0A5LZJOgARIAAgAkEEdi0A5LZJOgAQIAAgAS0ACCICQQ9xLQDktkk6ABQgACACQQR2LQDktkk6ABMgAS0ACSECIABBLToAFyAAIAJBD3EtAOS2SToAFiAAIAJBBHYtAOS2SToAFSAAIAEtAAoiAkEPcS0A5LZJOgAZIAAgAkEEdi0A5LZJOgAYIAAgAS0ACyICQQ9xLQDktkk6ABsgACACQQR2LQDktkk6ABogACABLQAMIgJBD3EtAOS2SToAHSAAIAJBBHYtAOS2SToAHCAAIAEtAA0iAkEPcS0A5LZJOgAfIAAgAkEEdi0A5LZJOgAeIAAgAS0ADiICQQ9xLQDktkk6ACEgACACQQR2LQDktkk6ACAgACABLQAPIgFBD3EtAOS2SToAIyAAIAFBBHYtAOS2SToAIgugAwEHfyAAKAIEIQQCQAJAIAAoAggiAgRAIAQhAQNAIAEoAgAiA0EASgRAIAFBBGooAgAiB0EEaygCACIFQXhxIQYgBkEEQQggBUEDcSIFGyADakkNAyAFQQBHIAYgA0EnaktxDQQgBxC8BQsgAUEYaiEBIAJBAWsiAg0ACwsgACgCACICBEAgBEEEaygCACIDQXhxIQEgASACQRhsIgJBBEEIIANBA3EiAxtqSQ0BIANBAEcgASACQSdqS3ENAiAEELwFCyAAKAIQIQQgACgCFCICBEAgBCEBA0AgASgCACIDBEAgAUEEaigCACIHQQRrKAIAIgVBeHEhBiAGQQRBCCAFQQNxIgUbIANqSQ0DIAVBAEcgBiADQSdqS3ENBCAHELwFCyABQRhqIQEgAkEBayICDQALCyAAKAIMIgEEQCAEQQRrKAIAIgJBeHEhACAAIAFBGGwiAUEEQQggAkEDcSICG2pJDQEgAkEARyAAIAFBJ2pLcQ0CIAQQvAULDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALoQMBBX8CQAJAAkAgACgCACIFKAIARQRAIAUoAgQiAhDZASACQQRrKAIAIgBBA3EhASAAQXhxQZQCQZgCIAEbSQ0DIAFFDQEgAEG4AkkNAQwCCyAFKAIEIgIoAgQhASACKAIIIgMEQCABIQADQCAAENkBIABBkAJqIQAgA0EBayIDDQALCyACKAIAIgMEQCABQQRrKAIAIgRBeHEhACAAIANBkAJsIgNBBEEIIARBA3EiBBtySQ0DIARBAEcgACADQSdqS3ENAiABELwFCyACKAIMIgAEQCACKAIQIgNBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgAGpJDQMgBEEARyABIABBJ2pLcQ0CIAMQvAULIAJBGGoQ2gMgAkEEaygCACIBQXhxIQAgAEEoQSwgAUEDcSIBG0kNAiABRQ0AIABBzABPDQELIAIQvAUgBUEEaygCACIAQQNxIQEgAEF4cUEMQRAgARtJDQEgAUEARyAAQTBPcQ0AIAUQvAUPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAu9AwEFfwJAAkACQAJAAkACQAJAQQUgACgCECICQYCAgIB4cyACQQBOGw4FBAQEAQIACwJAIAAoAiAiA0UNACADQQJ0QQtqQXhxIgEgA2pBCWoiA0UNACAAKAIcIAFrIgVBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgA2pJDQYgBEEARyABIANBJ2pLcQ0FIAUQvAULIAAoAhQhAyAAKAIYIgEEQCADIQADQCAAENIIIABBQGshACABQQFrIgENAAsLIAJFDQMgA0EEaygCACIBQXhxIQAgACACQQZ0IgJBBEEIIAFBA3EiARtySQ0FIAFFDQIgACACQSdySw0EDAILIAAoAgAiAkUNAiAAKAIEIgNBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgAmpJDQQgAUUNASAAIAJBJ2pNDQEMAwsgABCPCSAAKAIAIgJFDQEgACgCBCIDQQRrKAIAIgFBeHEhACAAIAJBMGwiAkEEQQggAUEDcSIBG3JJDQMgAUUNACAAIAJBJ2pNDQAMAgsgAxC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAu9AwEFfwJAAkACQAJAAkACQAJAQQUgACgCECICQYCAgIB4cyACQQBOGw4FBAQEAQIACwJAIAAoAiAiA0UNACADQQJ0QQtqQXhxIgEgA2pBCWoiA0UNACAAKAIcIAFrIgVBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgA2pJDQYgBEEARyABIANBJ2pLcQ0FIAUQvAULIAAoAhQhAyAAKAIYIgEEQCADIQADQCAAENYIIABBQGshACABQQFrIgENAAsLIAJFDQMgA0EEaygCACIBQXhxIQAgACACQQZ0IgJBBEEIIAFBA3EiARtySQ0FIAFFDQIgACACQSdySw0EDAILIAAoAgAiAkUNAiAAKAIEIgNBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgAmpJDQQgAUUNASAAIAJBJ2pNDQEMAwsgABCUCSAAKAIAIgJFDQEgACgCBCIDQQRrKAIAIgFBeHEhACAAIAJBMGwiAkEEQQggAUEDcSIBG3JJDQMgAUUNACAAIAJBJ2pNDQAMAgsgAxC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAu9AwEFfwJAAkACQAJAAkACQAJAQQUgACgCECICQYCAgIB4cyACQQBOGw4FBAQEAQIACwJAIAAoAiAiA0UNACADQQJ0QQtqQXhxIgEgA2pBCWoiA0UNACAAKAIcIAFrIgVBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgA2pJDQYgBEEARyABIANBJ2pLcQ0FIAUQvAULIAAoAhQhAyAAKAIYIgEEQCADIQADQCAAENkIIABBQGshACABQQFrIgENAAsLIAJFDQMgA0EEaygCACIBQXhxIQAgACACQQZ0IgJBBEEIIAFBA3EiARtySQ0FIAFFDQIgACACQSdySw0EDAILIAAoAgAiAkUNAiAAKAIEIgNBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgAmpJDQQgAUUNASAAIAJBJ2pNDQEMAwsgABCVCSAAKAIAIgJFDQEgACgCBCIDQQRrKAIAIgFBeHEhACAAIAJBMGwiAkEEQQggAUEDcSIBG3JJDQMgAUUNACAAIAJBJ2pNDQAMAgsgAxC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAu9AwEFfwJAAkACQAJAAkACQAJAQQUgACgCECICQYCAgIB4cyACQQBOGw4FBAQEAQIACwJAIAAoAiAiA0UNACADQQJ0QQtqQXhxIgEgA2pBCWoiA0UNACAAKAIcIAFrIgVBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgA2pJDQYgBEEARyABIANBJ2pLcQ0FIAUQvAULIAAoAhQhAyAAKAIYIgEEQCADIQADQCAAEN4IIABBQGshACABQQFrIgENAAsLIAJFDQMgA0EEaygCACIBQXhxIQAgACACQQZ0IgJBBEEIIAFBA3EiARtySQ0FIAFFDQIgACACQSdySw0EDAILIAAoAgAiAkUNAiAAKAIEIgNBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgAmpJDQQgAUUNASAAIAJBJ2pNDQEMAwsgABCXCSAAKAIAIgJFDQEgACgCBCIDQQRrKAIAIgFBeHEhACAAIAJBMGwiAkEEQQggAUEDcSIBG3JJDQMgAUUNACAAIAJBJ2pNDQAMAgsgAxC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAu9AwEFfwJAAkACQAJAAkACQAJAQQUgACgCECICQYCAgIB4cyACQQBOGw4FBAQEAQIACwJAIAAoAiAiA0UNACADQQJ0QQtqQXhxIgEgA2pBCWoiA0UNACAAKAIcIAFrIgVBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgA2pJDQYgBEEARyABIANBJ2pLcQ0FIAUQvAULIAAoAhQhAyAAKAIYIgEEQCADIQADQCAAENwIIABBQGshACABQQFrIgENAAsLIAJFDQMgA0EEaygCACIBQXhxIQAgACACQQZ0IgJBBEEIIAFBA3EiARtySQ0FIAFFDQIgACACQSdySw0EDAILIAAoAgAiAkUNAiAAKAIEIgNBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgAmpJDQQgAUUNASAAIAJBJ2pNDQEMAwsgABCZCSAAKAIAIgJFDQEgACgCBCIDQQRrKAIAIgFBeHEhACAAIAJBMGwiAkEEQQggAUEDcSIBG3JJDQMgAUUNACAAIAJBJ2pNDQAMAgsgAxC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAvMAwEEfwJAAkACQCAAKAIgIgRFDQAgACgCLCIDIAAoAiQiAWtB5ABuIQIgASADRwRAA0AgARDAByABQeQAaiEBIAJBAWsiAg0ACwsgACgCKCICRQ0AIARBBGsoAgAiA0F4cSEBIAEgAkHkAGwiAkEEQQggA0EDcSIDG2pJDQEgA0EARyABIAJBJ2pLcQ0CIAQQvAULAkAgACgCACIERQ0AIAAoAgwiAyAAKAIEIgFrQeQAbiECIAEgA0cEQANAIAEQwAcgAUHkAGohASACQQFrIgINAAsLIAAoAggiAkUNACAEQQRrKAIAIgNBeHEhASABIAJB5ABsIgJBBEEIIANBA3EiAxtqSQ0BIANBAEcgASACQSdqS3ENAiAEELwFCwJAIAAoAhAiBEUNACAAKAIcIgMgACgCFCIBa0HkAG4hAiABIANHBEADQCABEMAHIAFB5ABqIQEgAkEBayICDQALCyAAKAIYIgFFDQAgBEEEaygCACICQXhxIQAgACABQeQAbCIBQQRBCCACQQNxIgIbakkNASACQQBHIAAgAUEnaktxDQIgBBC8BQsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAu9AwEFfwJAAkACQAJAAkACQAJAQQUgACgCECICQYCAgIB4cyACQQBOGw4FBAQEAQIACwJAIAAoAiAiA0UNACADQQJ0QQtqQXhxIgEgA2pBCWoiA0UNACAAKAIcIAFrIgVBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgA2pJDQYgBEEARyABIANBJ2pLcQ0FIAUQvAULIAAoAhQhAyAAKAIYIgEEQCADIQADQCAAEN0IIABBQGshACABQQFrIgENAAsLIAJFDQMgA0EEaygCACIBQXhxIQAgACACQQZ0IgJBBEEIIAFBA3EiARtySQ0FIAFFDQIgACACQSdySw0EDAILIAAoAgAiAkUNAiAAKAIEIgNBBGsoAgAiAUF4cSEAIABBBEEIIAFBA3EiARsgAmpJDQQgAUUNASAAIAJBJ2pNDQEMAwsgABCaCSAAKAIAIgJFDQEgACgCBCIDQQRrKAIAIgFBeHEhACAAIAJBMGwiAkEEQQggAUEDcSIBG3JJDQMgAUUNACAAIAJBJ2pNDQAMAgsgAxC8BQsPC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAuKBAIFfwF+IwBB4ABrIgIkACACQQxqIAEQ0wcCQAJAAkAgAigCDEECRwRAIAEoAgAEQCABKAIMIAEoAgRrQRRuIQMLIAEoAhAEfyABKAIcIAEoAhRrQRRuBUEACyADaiIEQebMmTNPDQICQEEDIAQgBEEDTRtBAWoiBEEUbCIFRQRAQQAhBEEEIQMMAQsgBRCQASIDRQ0ECyADIAIoAhw2AhAgAyACKQIUNwIIIAMgAikCDDcCACACQQE2AgggAiADNgIEIAIgBDYCACACIAEpAiA3A0AgAiABKQIYNwM4IAIgASkCEDcDMCACIAEpAgg3AyggAiABKQIANwMgQRQhBEEBIQEDQCACQcwAaiACQSBqENMHIAIoAkxBAkZFBEAgAigCACABRgRAQQAhA0EAIQUgAigCIARAIAIoAiwgAigCJGtBFG4hBQsgAiABIAIoAjAEfyACKAI8IAIoAjRrQRRuBUEACyAFakEBakEEQRQQsxEgAigCBCEDCyACKQJUIQcgAigCXCEGIAMgBGoiBSACKQJMNwIAIAUgBjYCECAFIAc3AgggAiABQQFqIgE2AgggBEEUaiEEDAELCyACQSBqENoLIAAgAigCCDYCCCAAIAIpAgA3AgAMAQsgAEEANgIIIABCgICAgMAANwIAIAEQ2gsLIAJB4ABqJAAPCxCeFQALQQQQpxQAC/wDAgR+B38gACgCDEUEQEEADwsgACkDECAAKQMYIAEQ6wkiAqcgACgCBCIHcSEGIAJCGYhC/wCDQoGChIiQoMCAAX4hBCABKQMAIQUgACgCACEAAn8CQCABKAIIIgoEQCABKAIMIQEDQCAAIAZqKQAAIgMgBIUiAkKBgoSIkKDAgAF9IAJCf4WDQoCBgoSIkKDAgH+DIgJCAFIEQANAAkAgBSAAIAJ6p0EDdiAGaiAHcSILQQV0ayIJQSBrKQMAUg0AIAlBGGsoAgAiDEUNACABIAlBFGsoAgBHDQAgCiAMIAEQjxMNAEEAIAtrIQEMBQsgAkIBfSACgyICQgBSDQALC0EAIAMgA0IBhoNCgIGChIiQoMCAf4NCAFINAxogCEEIaiIIIAZqIAdxIQYMAAsAC0EAIQEDQAJAIAAgBmopAAAiAyAEhSICQoGChIiQoMCAAX0gAkJ/hYNCgIGChIiQoMCAf4MiAlANAANAAkAgACACeqdBA3YgBmogB3EiCEEFdGsiCUEgaykDACAFUQRAIAlBGGsoAgBFDQELIAJCAX0gAoMiAkIAUg0BDAILC0EAIAhrIQEMAgtBACADIANCAYaDQoCBgoSIkKDAgH+DQgBSDQIaIAFBCGoiASAGaiAHcSEGDAALAAsgACABQQV0agsiAEEQa0EAIAAbC8wDAQR/IAAoApQBIgMoAgAhASADIAFBAWs2AgAgAUEBRgRAIAAoApQBEDALAkACQAJAIAAoAnwiBEF/Rg0AIAAoAoABIQMgACgChAEiAgRAIAMhAQNAIAEQpgcgAUHIAWoQiAQgAUHoAWohASACQQFrIgINAAsLIARFDQAgA0EEaygCACICQXhxIQEgASAEQegBbCIEQQRBCCACQQNxIgIbakkNASACQQBHIAEgBEEnaktxDQIgAxC8BQsgAC0AIEH/AUcEQCAAQSBqEK8ECyAAKAJ0IQMgACgCeCICBEAgAyEBA0AgARCLBSABQUBrIQEgAkEBayICDQALCyAAKAJwIgIEQCADQQRrKAIAIgRBeHEhASABIAJBBnQiAkEEQQggBEEDcSIEG3JJDQEgBEEARyABIAJBJ3JLcQ0CIAMQvAULAkAgACgCiAFBf0YNACAAQYgBaiIBEKUEIAEoAgAiAUUNACAAKAKMASIDQQRrKAIAIgJBeHEhACAAIAFByAFsIgFBBEEIIAJBA3EiAhtqSQ0BIAJBAEcgACABQSdqS3ENAiADELwFCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC6IEAQd/IwBB0AFrIgQkAAJAAkACQCABKAIIIgIgASgCBCIFKAIcIgNJBEAgASgCACEDIAUoAhggAkHwAGxqIgIoAmghBiACKAJkIQIgBSAFKAIAIgdBAWo2AgAgB0EASA0BIAQgBjYCeCAEIAI2AnQgBCAFNgJwIARBADYCbCAEQQhqIgYgAyAEQewAaiIDEPgMQdgBEJABIgJFDQIgAyAGEOQFQeQAEJABIgdFDQMgByADQeQA/AoAACADIAYQ5AVB5AAQkAEiCEUNAyAIIANB5AD8CgAAQeQAEJABIgNFDQMgAyAGQeQA/AoAACACQQA7AdQBIAJBBDYC0AEgAkH98McANgLMASACQX82AsgBIAJCBDcDwAEgAkIBNwO4ASACIAM2ArQBIAJBATYCsAEgAkF+NgKQASACQQA7AYwBIAJBBDYCiAEgAkH58McANgKEASACQX82AoABIAJCBDcDeCACQgE3A3AgAiAINgJsIAJBATYCaCACQX42AkggAkEAOwFEIAJBBTYCQCACQfTwxwA2AjwgAkF/NgI4IAJCBDcDMCACQgE3AyggAiAHNgIkIAJBATYCICACQX42AgAgAEEDNgIIIAAgAjYCBCAAQQM2AgAgBSAFKAIAIgBBAWs2AgAgAEEBRgRAIAEoAgQQMAsgBEHQAWokAA8LIAIgA0Hk/sgAEIUTCwALQbjwyQBBAToAAAALQbjwyQBBAToAAAALgQQCB38BfgJAIAAoAiAiAUUEQCAAKAIIIQIgAEEANgIIIAJFDQEgACgCBCEBA0ACQCABKAIADQAgAUEEaigCAA0AIAFBCGoiBCgCACIDKAIAIQAgAyAAQQFrNgIAIABBAUcNACAEKAIAEIcQCyABQRBqIQEgAkEBayICDQALDAELIAAgAUEBayIBNgIgIAAoAhwgAUEDdGoiASgCACEFIAAoAggiAiABKAIEIgRLBEAgACAENgIIIAIgBGshAiAAKAIEIARBBHRqIQEDQAJAIAEoAgANACABQQRqKAIADQAgAUEIaiIGKAIAIgcoAgAhAyAHIANBAWs2AgAgA0EBRw0AIAYoAgAQhxALIAFBEGohASACQQFrIgINAAsLIAQgBU8NACAAKAIUIgEgBCAFayIDaiECIAEgAk8EQCAAIAI2AhQgAUEEdCEBIAJBBHQhAiAAKAIQIQZBACADayIHIAAoAgAgACgCCCIDa0sEQCAAIAMgB0EEQRAQsxEgACgCCCEDCyABIAJHBEAgBEEEdCAFQQR0ayEEIAEgBmpBEGshASAAKAIEIANBBHRqIQIDQCABKQIAIQggAiABKQIINwIIIAIgCDcCACABQRBrIQEgAkEQaiECIANBAWohAyAEQRBqIgQNAAsLIAAgAzYCCA8LIAIgASABQZilyAAQhw4ACwurBAECfyMAQSBrIgkkAAJAIAAoAgAiCiABIAIgACgCBCgCDCIBEQAABEBBASECDAELAkAgAC0ACkGAAXFFBEBBASECIApBtM/FAEEBIAERAAANAiADIAAgBBEBAEUNAQwCCyAKQZ3jwgBBAiABEQAABEBBASECDAILQQEhAiAJQQE6AA8gCUGg68IANgIUIAkgACkCADcCACAJIAApAgg3AhggCSAJQQ9qNgIIIAkgCTYCECADIAlBEGogBBEBAA0BIAkoAhBBpLLIAEECIAkoAhQoAgwRAAANAQsCQCAALQAKQYABcUUEQCAAKAIAQYizyQBBAiAAKAIEKAIMEQAABEAMAwsgBSAAIAYRAQBFDQEMAgsgCUEBOgAPIAlBoOvCADYCFCAJIAApAgA3AgAgCSAAKQIINwIYIAkgCUEPajYCCCAJIAk2AhAgBSAJQRBqIAYRAQANASAJKAIQQaSyyABBAiAJKAIUKAIMEQAADQELAkAgAC0ACkGAAXFFBEAgACgCAEGIs8kAQQIgACgCBCgCDBEAAARADAMLIAcgACAIEQEARQ0BDAILIAlBAToADyAJQaDrwgA2AhQgCSAAKQIANwIAIAkgACkCCDcCGCAJIAlBD2o2AgggCSAJNgIQIAcgCUEQaiAIEQEADQEgCSgCEEGkssgAQQIgCSgCFCgCDBEAAA0BCyAAKAIAQYiQyQBBASAAKAIEKAIMEQAAIQILIAlBIGokACACC+0DAgR/BX4jAEHQAGsiAyQAIANCADcDOCADQgA3A0AgAyABNwMwIAMgAULzytHLp4zZsvQAhTcDICADIAFC7d6R85bM3LfkAIU3AxggAyAANwMoIAMgAELh5JXz1uzZvOwAhTcDECADIABC9crNg9es27fzAIU3AwggAigCBCEGIAMgAigCADYCTCADQQhqIgQgA0HMAGoiBUEEEJYIIAMgBjYCTCAEIAVBBBCWCCADIAIoAgg2AkwgBCAFQQQQlgggAykDCCEBIAMpAxghACADNQJAIQcgAykDOCEIIAMpAyAhCSADKQMQIQogA0HQAGokACAAIAF8IgtCIIkgCCAHQjiGhCIHIAmFIgEgCnwiCCABQhCJhSIBfCIJIAFCFYmFIQEgASAIIABCDYkgC4UiCHwiCkIgiUL/AYV8IgsgAUIQiYUhACAAIAogCEIRiYUiASAHIAmFfCIHQiCJfCIIIABCFYmFIQAgACAHIAFCDYmFIgEgC3wiB0IgiXwiCSAAQhCJhSEAIAAgByABQhGJhSIBIAh8IgdCIIl8IgggAEIViYUhACAAIAFCDYkgB4UiASAJfCIHQiCJfCIJIAFCEYkgB4UiASAIfCABQg2JhSIBfCIHIABCEIkgCYVCFYkgAUIRiYUgB0IgiYWFC7YEAQR/IwBBIGsiAiQAIAIgAEEVajYCBCABKAIAQdf+xgBBGCABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakGZkMkAQQUgAEGxARCJDiEEQQEhAQJAIAItAAwNACACLQANIQUgBCgCACIDLQAKQYABcUUEQCADKAIAQYizyQBBl+PCACAFQQFxIgUbQQJBAyAFGyADKAIEKAIMEQAADQEgAygCAEHC/sYAQQogAygCBCgCDBEAAA0BIAMoAgBBprLIAEECIAMoAgQoAgwRAAANASADKAIAQfn/xgBB8P/GACAALQAUIgAbQQpBCSAAGyADKAIEKAIMEQAAIQEMAQsgBUEBcUUEQCADKAIAQZrjwgBBAyADKAIEKAIMEQAADQELIAJBAToAHyACIAMpAgA3AhAgAiACQR9qNgIYIAJBEGoiA0HC/sYAQQoQ/QgNACADQaayyABBAhD9CA0AIANB+f/GAEHw/8YAIAAtABQiABtBCkEJIAAbEP0IBEAMAQsgAkEQakGkssgAQQIQ/QghAQsgAiABOgAMIAJBAToADSAEQe/+xgBBECACQQRqQcACEIkOIQAgAi0ADSIDIAItAAwiBHIhAQJAIANBAUcNACAEQQFxDQAgACgCACIALQAKQYABcUUEQCAAKAIAQe3qwgBBAiAAKAIEKAIMEQAAIQEMAQsgACgCAEGhssgAQQEgACgCBCgCDBEAACEBCyACQSBqJAAgAUEBcQu2BAEEfyMAQSBrIgIkACACIABBDWo2AgQgASgCAEH//sYAQRggASgCBCgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpB/5DJAEEEIABBrgIQiQ4hBEEBIQECQCACLQAMDQAgAi0ADSEFIAQoAgAiAy0ACkGAAXFFBEAgAygCAEGIs8kAQZfjwgAgBUEBcSIFG0ECQQMgBRsgAygCBCgCDBEAAA0BIAMoAgBBwv7GAEEKIAMoAgQoAgwRAAANASADKAIAQaayyABBAiADKAIEKAIMEQAADQEgAygCAEH5/8YAQfD/xgAgAC0ADCIAG0EKQQkgABsgAygCBCgCDBEAACEBDAELIAVBAXFFBEAgAygCAEGa48IAQQMgAygCBCgCDBEAAA0BCyACQQE6AB8gAiADKQIANwIQIAIgAkEfajYCGCACQRBqIgNBwv7GAEEKEP0IDQAgA0GmssgAQQIQ/QgNACADQfn/xgBB8P/GACAALQAMIgAbQQpBCSAAGxD9CARADAELIAJBEGpBpLLIAEECEP0IIQELIAIgAToADCACQQE6AA0gBEHv/sYAQRAgAkEEakHAAhCJDiEAIAItAA0iAyACLQAMIgRyIQECQCADQQFHDQAgBEEBcQ0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEHt6sIAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBobLIAEEBIAAoAgQoAgwRAAAhAQsgAkEgaiQAIAFBAXELtgQBBH8jAEEgayICJAAgAiAAQRVqNgIEIAEoAgBB1/7GAEEYIAEoAgQoAgwRAAAhAyACQQA6AA0gAiADOgAMIAIgATYCCCACQQhqQZmQyQBBBSAAQbEBEIkOIQRBASEBAkAgAi0ADA0AIAItAA0hBSAEKAIAIgMtAApBgAFxRQRAIAMoAgBBiLPJAEGX48IAIAVBAXEiBRtBAkEDIAUbIAMoAgQoAgwRAAANASADKAIAQcL+xgBBCiADKAIEKAIMEQAADQEgAygCAEGmssgAQQIgAygCBCgCDBEAAA0BIAMoAgBB+f/GAEHw/8YAIAAtABQiABtBCkEJIAAbIAMoAgQoAgwRAAAhAQwBCyAFQQFxRQRAIAMoAgBBmuPCAEEDIAMoAgQoAgwRAAANAQsgAkEBOgAfIAIgAykCADcCECACIAJBH2o2AhggAkEQaiIDQcL+xgBBChD9CA0AIANBprLIAEECEP0IDQAgA0H5/8YAQfD/xgAgAC0AFCIAG0EKQQkgABsQ/QgEQAwBCyACQRBqQaSyyABBAhD9CCEBCyACIAE6AAwgAkEBOgANIARB7/7GAEEQIAJBBGpB4AIQiQ4hACACLQANIgMgAi0ADCIEciEBAkAgA0EBRw0AIARBAXENACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB7erCAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQaGyyABBASAAKAIEKAIMEQAAIQELIAJBIGokACABQQFxC7YEAQR/IwBBIGsiAiQAIAIgAEENajYCBCABKAIAQf/+xgBBGCABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakH/kMkAQQQgAEGuAhCJDiEEQQEhAQJAIAItAAwNACACLQANIQUgBCgCACIDLQAKQYABcUUEQCADKAIAQYizyQBBl+PCACAFQQFxIgUbQQJBAyAFGyADKAIEKAIMEQAADQEgAygCAEHC/sYAQQogAygCBCgCDBEAAA0BIAMoAgBBprLIAEECIAMoAgQoAgwRAAANASADKAIAQfn/xgBB8P/GACAALQAMIgAbQQpBCSAAGyADKAIEKAIMEQAAIQEMAQsgBUEBcUUEQCADKAIAQZrjwgBBAyADKAIEKAIMEQAADQELIAJBAToAHyACIAMpAgA3AhAgAiACQR9qNgIYIAJBEGoiA0HC/sYAQQoQ/QgNACADQaayyABBAhD9CA0AIANB+f/GAEHw/8YAIAAtAAwiABtBCkEJIAAbEP0IBEAMAQsgAkEQakGkssgAQQIQ/QghAQsgAiABOgAMIAJBAToADSAEQe/+xgBBECACQQRqQeACEIkOIQAgAi0ADSIDIAItAAwiBHIhAQJAIANBAUcNACAEQQFxDQAgACgCACIALQAKQYABcUUEQCAAKAIAQe3qwgBBAiAAKAIEKAIMEQAAIQEMAQsgACgCAEGhssgAQQEgACgCBCgCDBEAACEBCyACQSBqJAAgAUEBcQvmAwEKfyAAQRBqKAIAIABBBGooAgAgAEEUaigCACIHIABBCGooAgAiAyADIAdLGxCPEyEEIABBJEEYIABBKGooAgAgAEEcaigCACAAQSxqKAIAIgIgAEEgaigCACIGIAIgBkkbEI8TIgUgAiAGayAFG0EASCIFG2ohAiAAIAQgByADayAEGyIDQX9zQR92QQxsaiEHIAAgA0EfdkEMbGoiA0EIaigCACEEIAJBBGooAgAgA0EEaigCACACQQhqKAIAIgYgBCAEIAZLGxCPEyIIIAYgBGsgCBtBAEghBCAAQRhBJCAFG2oiBkEIaigCACEAIAYgByACIAQbIAZBBGooAgAgB0EEaigCACAAIAdBCGooAgAiBSAAIAVJGxCPEyIIIAAgBWsgCBtBAEgiCRshACADIAIgByAJGyAEGyIFQQhqKAIAIQggAEEEaigCACAFQQRqKAIAIABBCGooAgAiCiAIIAggCksbEI8TIQsgASACIAMgBBsiAigCCDYCCCABIAIpAgA3AgAgASAAIAUgCyAKIAhrIAsbQQBIIgIbIgMoAgg2AhQgASADKQIANwIMIAEgBSAAIAIbIgAoAgg2AiAgASAAKQIANwIYIAEgByAGIAkbIgApAgA3AiQgASAAKAIINgIsC5oEAgp/An4jAEFAaiIAJAACQAJAAkACQAJAAkAgASgCICIEBEAgBEECdCEGIAEoAhwhBCAAQTBqrUKAgICA0AGEIQ0gAEEUaiEHIABBDGohCiABKAKYAiEIIAEoApQCIQsgASgCBCEMIAEoAgghCQNAIAQoAgAiASAJTw0DIAwgAUHkAGxqIgEoAghBAkYNBCAAIAEoAiA2AhggACABKQIYNwMQIAAgASkCECIONwMIIA6nIgMgCE8NBSAAIAsgA0EkbGoiA0EcaigCACADQSBqKAIAIApB0LzEABDhCyAAKAIYIgMgACgCBCIFTw0GIAEoAiQiASAAKAIAIANBzABsaiIDKAIYIgVPDQcgAygCFCABQeQAbGoiASgCAEECTw0CIAAgASkCNDcDICAAIAEoAjw2AiggACABKQIsNwIwIAAgDTcDOCAAQQhqQfS4wQAgAEE4ahC4DCAHIAAoAig2AgggByAAKQMgNwIAIAIoAggiASACKAIARgRAIAIQvRILIARBBGohBCACIAFBAWo2AgggAigCBCABQRhsaiIBIAApAgg3AgAgASAAKQIQNwIIIAEgACkCGDcCECAGQQRrIgYNAAsLIABBQGskAA8LQejDxQAQnRUACyABIAlBrKPFABCFEwALQbyjxQAQnRUACyADIAhB0LzEABCFEwALIAMgBUHQvMQAEIUTAAsgASAFQeC8xAAQhRMAC+cDAQN/IwBBEGsiBCQAAkACQAJAIAEoAggiAkGAgIAQcUUEQCACQYCAgCBxDQEgACABEJcORQ0CQQEhAgwDCyAAKAIAIQJBCSEDA0AgAyAEakEGaiACQQ9xLQDktkk6AAAgA0EBayEDIAJBBHYiAg0AC0EBIQIgAUEBQaKWxABBAiADIARqQQdqQQkgA2sQyQlFDQEMAgsgACgCACECQQkhAwNAIAMgBGpBBmogAkEPcS0ApJZEOgAAIANBAWshAyACQQR2IgINAAtBASECIAFBAUGilsQAQQIgAyAEakEHakEJIANrEMkJDQELIAEoAgBBiJPEAEECIAEoAgQoAgwRAAAEQEEBIQIMAQsgAEEEaiEAAkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENASAAIAEQlw4hAgwCCyAAKAIAIQJBCSEDA0AgAyAEakEGaiACQQ9xLQDktkk6AAAgA0EBayEDIAJBBHYiAg0ACyABQQFBopbEAEECIAMgBGpBB2pBCSADaxDJCSECDAELIAAoAgAhAkEJIQMDQCADIARqQQZqIAJBD3EtAKSWRDoAACADQQFrIQMgAkEEdiICDQALIAFBAUGilsQAQQIgAyAEakEHakEJIANrEMkJIQILIARBEGokACACC/cDAQd/IAEoAgQiBQRAIAEoAgAhBANAAkAgA0EBaiECAn8gAiADIARqLQAAIgfAIghBAE4NABoCQAJAAkACQAJAAkACQAJAAkACQAJAIActAMjtQkECaw4DAAECDAtBjpbCACACIARqIAIgBU8bLAAAQUBODQsgA0ECagwKC0GOlsIAIAIgBGogAiAFTxssAAAhBiAHQeABaw4OAQMDAwMDAwMDAwMDAwIDC0GOlsIAIAIgBGogAiAFTxssAAAhBiAHQfABaw4FBAMDAwUDCyAGQWBxQaB/Rw0IDAYLIAZBn39KDQcMBQsgCEEfakH/AXFBDE8EQCAIQX5xQW5HDQcgBkFATg0HDAULIAZBQE4NBgwECyAIQQ9qQf8BcUECSw0FIAZBQE4NBQwCCyAGQfAAakH/AXFBME8NBAwBCyAGQY9/Sg0DC0GOlsIAIANBAmoiAiAEaiACIAVPGywAAEG/f0oNAkGOlsIAIANBA2oiAiAEaiACIAVPGywAAEG/f0oNAiADQQRqDAELQY6WwgAgA0ECaiICIARqIAIgBU8bLAAAQUBODQEgA0EDagsiAyICIAVJDQELCyAAIAM2AgQgACAENgIAIAEgBSACazYCBCABIAIgBGo2AgAgACACIANrNgIMIAAgAyAEajYCCA8LIABBADYCAAvaAwEIfyACIAEoAqQBIgNPBEACQAJAIAEoApABIgUgAiABKAKoASIEayIHTQRAIABBfzYCECACIANHDQIgASgCjAEhBwwBCwJ/IAdBBHQgASgCjAEiB2oiCCgCBCEGIAgoAgwgBkcEQCAIIAZB8ABqNgIEIAAgBkHwAPwKAAAgACgCEEF/RgwBCyAAQX82AhBBAQsgAiADRw0BRQ0BCyADQQR0IARBBHRrIAdqQRxqIQIgBSADIARrQQFqIgAgACAFSRsiBiAEaiEAQQAgBGshCAJAA0AgBSADIAhqQQFqTQRAIAAhAwwCCyADQQFqIQMgAkEIayEJIAIoAgAgAkEQaiECIAkoAgBGDQALIAMgBGshBgsgASADNgKkASADIARGDQAgBiAFQQF2SQ0AAkAgBUUNAEEAIQJBcCEAA0ACQCACQQFqIQIgBg0AIABBEGshACACIAVHDQEMAgsLIAcQlAxBACEEIAIgBUkEQCAHIABrIQADQAJAIAIgBkkEQCAAEJQMDAELIAcgBEEEdGoiCCAAKQIINwIIIAggACkCADcCACAEQQFqIQQLIABBEGohACAFIAJBAWoiAkcNAAsLIAEgBDYCkAELIAEgAzYCqAELDwsgAEF/NgIQC5QEAQR/IwBBEGsiAyQAIAEtAAohAiADIAA2AgAgAC0AACEAAkACQAJAIAJBgAFxRQRAAn9BASABKAIAIgJBr8PGAEEVIAEoAgQoAgwiBBEAAA0AGkEBIAJBtM/FAEEBIAQRAAANABogAyABEMYPCyEFIAAEQEEBIQEgBQ0EIAJBiLPJAEECIAQRAAANBEEAIABrIABxIgVFDQIgAkGg4MYAQbKjyQAgBUEBRiIFG0EMQQUgBRsgBBEAAA0EIABBAWsgAHEhAANAIABB/wFxRQ0EIABBACAAa3FB/wFxRQ0EIAJBlczGAEEDIAQRAAANBSAAQQFrIABxIQAgAkGyo8kAQQUgBBEAAEUNAAsMBAtBASEBIAUNAwwCCyABKAIAQa/DxgBBFSABKAIEKAIMEQAAIQIgA0EAOgAJIAMgAjoACCADIAE2AgQgA0EEakHEw8YAQQQgA0GpAhCJDiECIAAEQCADIAA6AA8gAkHIw8YAQQUgA0EPakGqAhCJDhoLIAMtAAkiACADLQAIIgRyIQEgAEEBRw0CIARBAXENAiACKAIAIgAtAApBgAFxRQRAIAAoAgBB7erCAEECIAAoAgQoAgwRAAAhAQwDCyAAKAIAQaGyyABBASAAKAIEKAIMEQAAIQEMAgsgAkGYzMYAQQcgBBEAAA0BCyACQYiQyQBBASAEEQAAIQELIANBEGokACABQQFxC5MEAQZ/IwBBQGoiAiQAAkACQAJAAkACQAJAAkACQAJAAkAgASgCAEEBaw4EAQIDBAALIAAgAUEIahB+DAQLIAAgAUEIahCNBgwDCyABKAIMIgNBq9WqFU8NAyABKAIIIQUCfyADQTBsIgFFBEBBCCEEQQAMAQsgARCQASIERQ0FIAMLIQEgAkEANgIMIAIgBDYCCCACIAE2AgQCQCADBEAgA0E4bCEHQQAhAwNAIAJBEGogBRCTCiACKAIgQX9GDQIgBUE4aiEFIAIoAgQgBkYEQCACQQRqEJQSIAIoAgghBAsgAyAEaiIBIAIpAxA3AwAgASACKQM4NwMoIAEgAikDMDcDICABIAIpAyg3AxggASACKQMgNwMQIAEgAikDGDcDCCACIAZBAWoiBjYCDCADQTBqIQMgB0E4ayIHDQALCyAAIAIoAgw2AgggACACKQIENwIAIABBhICAgHg2AhAMAwsgAEF/NgIQIAAgAigCEDYCACACQQRqEJUJIAIoAgQiAUUNAiAEQQRrKAIAIgNBeHEhACAAIAFBMGwiAUEEQQggA0EDcSIDG3JJDQUgA0EARyAAIAFBJ2pLcQ0GIAQQvAUMAgsgACABQQhqEMwEDAELIAAgAUEIahCNBgsgAkFAayQADwsQnhUAC0EIEKcUAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAAL3AMBB38jAEEQayIFJAAgASgChAEhAiABKAKAASEEAkACQCABKAKIASIDRQ0AIAIgA00EQCACIANGDQEMAgsgAyAEaiwAAEFASA0BCwJAIAIgA0YNAEGw98QAAn8gAyAEaiIELAAAIgJBAE4EQCACQf8BcQwBCyAELQABQT9xIQYgAkEfcSEIIAhBBnQgBnIgAkFfTQ0AGiAELQACQT9xIAZBBnRyIQYgBiAIQQx0ciACQXBJDQAaIAhBEnRBgIDwAHEgBC0AA0E/cSAGQQZ0cnILIgIQ9g1FDQBBASEHIAECf0EBIAJBgAFJDQAaQQIgAkGAEEkNABpBA0EEIAJBgIAESRsLIANqNgKIAQsgAS0AfARAIAVBAzYCACABIAMgBSAHEPkIC0EAIQMCQCAHRQRAAkAgASgCiAEiAiABKAKEAU8NACABKAKAASACai0AAEEJRw0AIAEgAkEBajYCiAFBASEDCyABLQB8QQFGBEBBARCQASIERQ0CIARBCToAACAFQQE2AgwgBSAENgIIIAVCgICAgBA3AgAgASACIAUgAxD5CAsgA0EBcyEDCyAAIAE2AgQgACADNgIAIAVBEGokAA8LQQEQpxQACyAEIAIgAyACQYyKyAAQ/RQAC5gEAQZ/IwBBQGoiAiQAQQEhAwJAAkACQAJAIAEoAgBBAUYEQCABKAIIIgYgASgCBCIETQ0EIAEgBEEBaiIHNgIEIAEoAhQhBSACIAEoAogBNgI4IAIgASkCgAE3AzAgAS0AkQFBAkcNAiAGIAdNDQMgASAEQQJqIgM2AgQgAyAGTw0CIAEgBEEDajYCBAwBCyABKAIUIQUgAiABKAKIATYCOCACIAEpAoABNwMwIAEtAJEBQQJHDQELIAFBADoAkQEgAkEoaiABEJQKIAIoAiggAigCLCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCIDIAEoAghPDQIgASADQQFqNgIECwJAIAEtAJEBIgRFBEAgAkEYaiABEJQKIAIoAhwhASACKAIYIQMMAQsgAUEAOgCRASACQSBqIAEQlAogAigCICEDIAIoAiQiASAEOgCRAQsgA0EBRw0ACwtBASEDIAEoAgBBAUYEQCABKAIEIgQgASgCCE8NASABIARBAWo2AgQLIAEtAJEBIgRFBEAgAkEIaiABEJQKIAIoAgwhASACKAIIIQMMAQsgAUEAOgCRASACQRBqIAEQlAogAigCECEDIAIoAhQiASAEOgCRAQsgA0EBRw0AIAEgAigCODYCiAEgASACKQMwNwKAASAFIAEoAhRLDQAgASAFNgIUCyAAIAE2AgQgACADNgIAIAJBQGskAAveAwIIfwJ+IwBBIGsiAiQAAkACQAJ/IAFCAFkEQEETIQRBExCQASIFRQ0CIAJBADYCHCACIAU2AhggAkETNgIUQQAMAQtBFCEEQRQQkAEiBUUNAiAFQS06AAAgAiAFNgIYIAJBFDYCFCACQQE2AhxCACABfSEBQQELIQZBEyEDIAEiCkLoB1oEQANAIAJBAWogA2oiB0EEayAKIgsgCkKQzgCAIgpCkM4Afn2nIghB//8DcUHkAG4iCUEBdC8AnJhJOwAAIAdBAmsgCCAJQeQAbGtB//8DcUEBdC8AnJhJOwAAIANBBGshAyALQv+s4gRWDQALCyAKQglWBEAgCqciCEH//wNxQeQAbiEHIANBAmsiAyACQQFqaiAIIAdB5ABsa0H//wNxQQF0LwCcmEk7AAAgB60hCgsgClAgAUIAUnFFBEAgA0EBayIDIAJBAWpqIAqnQQF0LQCdmEk6AAALAkACQCAEIAZrQRMgA2siBEkEQCACQRRqIAZBE0EBQQEQsxEgAigCGCEFIAIoAhwhBgwBCyADQRNGDQELIARFDQAgBSAGaiACQQFqIANqIAT8CgAACyAAIAIpAhQ3AgAgACAEIAZqNgIIIAJBIGokAA8LQQEQpxQAC0EBEKcUAAvtAwEHfyMAQRBrIgUkAAJ/AkAgAigCBCIDBEAgACACKAIAIAMgASgCDBEAAA0BC0EAIAIoAgwiA0UNARogAigCCCIEIANBDGxqIQgDQAJAAkACQAJAAkACQAJAAkAgBC8BAEEBaw4CAQIACyAEKAIEIgJBwQBJDQIgAUEMaigCACEDA0AgAEH468IAQcAAIAMRAAANCSACQUBqIgJBwABLDQALDAMLIAQvAQIhAiAFQQA6AAwgBUEANgIIIAINAyAFIAJBMHI6AAhBASEDDAQLIAAgBCgCBCAEKAIIIAFBDGooAgARAABFDQQMBgsgAkUNAyABQQxqKAIAIQMLIABB+OvCACACIAMRAAANBAwCCyACQfb/F2ogAkGc/x9qcSACQZj4N2ogAkHwsR9qcXNBEXYiByAFQQhqaiIGIAIgAkEKbiIJQQpsa0EwcjoAACAHQQFqIQMgB0UNACAGQQFrIAlBCnBBMHI6AAAgA0ECRg0AIAZBAmsgAkHkAG5BCnBBMHI6AAAgA0EDRg0AIAZBA2sgAkHoB25BCnBBMHI6AAAgA0EERg0AIAZBBGsgAkGQzgBuQTByOgAACyAAIAVBCGogAyABQQxqKAIAEQAADQILIAggBEEMaiIERw0AC0EADAELQQELIAVBEGokAAvwAwEKfyAAKAIUIAAoAgAgAEEYaigCACIHIABBBGooAgAiAyADIAdLGxCPEyEEIABBPEEoIAAoAjwgACgCKCAAQUBrKAIAIgIgAEEsaigCACIGIAIgBkkbEI8TIgUgAiAGayAFG0EASCIFG2ohAiAAIAQgByADayAEGyIDQX9zQR92QRRsaiEHIAAgA0EfdkEUbGoiA0EEaigCACEEIAIoAgAgAygCACACQQRqKAIAIgYgBCAEIAZLGxCPEyIIIAYgBGsgCBtBAEghBCAAQShBPCAFG2oiBkEEaigCACEAIAYgByACIAQbIAYoAgAgBygCACAAIAdBBGooAgAiBSAAIAVJGxCPEyIIIAAgBWsgCBtBAEgiCRshACADIAIgByAJGyAEGyIFQQRqKAIAIQggACgCACAFKAIAIABBBGooAgAiCiAIIAggCksbEI8TIQsgASACIAMgBBsiAigCEDYCECABIAIpAgg3AgggASACKQIANwIAIAEgACAFIAsgCiAIayALG0EASCIDGyICKAIQNgIkIAEgAikCCDcCHCABIAIpAgA3AhQgASAFIAAgAxsiACgCEDYCOCABIAApAgg3AjAgASAAKQIANwIoIAEgByAGIAkbIgApAgA3AjwgASAAKQIINwJEIAEgACgCEDYCTAuEBAEIfyMAQTBrIgckACABIAIgBhDPBiENIAdBCGogASACEOEJIAdBIGoiASAHKAIIIgsgBygCDBDXCSAHQRBqIAEQpBEgByAHKAIUIgogBygCGCIBIAYQ8gcgBygCACEOIAEEQCAKQRRqIQZBACECA0AgCiACQRhsaiEIAkACQAJAAkACQCAGQRRrKAIADgIBAgALIAYoAgAiDCgCACEJIAwgCUEBazYCACAJQQFHDQMgCEEUaiEIDAILIAZBEGsoAgAiDCgCACEJIAwgCUEBazYCACAJQQFHDQIgCEEEaiEIDAELIAYoAgAiCCgCACEJIAggCUEBazYCACAGIQggCUEBRw0BCyAIKAIAEDALIAJBAWohAiAGQRhqIQYgAUEBayIBDQALCwJAAkAgBygCECICBEAgCkEEaygCACIGQXhxIQEgASACQRhsIgJBBEEIIAZBA3EiBhtqSQ0BIAZBAEcgASACQSdqS3ENAiAKELwFCyALIAsoAgAiAUEBazYCACABQQFGBEAgCxAwCyAHIAQ2AhwgByADNgIYIAdB7I3JADYCFCAHIA02AhAgByAFNgIsIAdBADYCKCAHQeyNyQA2AiQgByAONgIgIAAgB0EQaiAHQSBqELQEIAdBMGokAA8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC60DAQd/IAAoAgQiBUUEQEEADwsCQCAAKAIIIgMgBUEBa0YNACAAKAIAIgIgBWohB0EAIQADQCAAIQQgAiIAIAdGDQECfyAALAAAIgZBAE4EQCAGQf8BcSEBIABBAWoMAQsgAC0AAUE/cSECIAZBH3EhASAGQV9NBEAgAUEGdCACciEBIABBAmoMAQsgAC0AAkE/cSACQQZ0ciECIAZBcEkEQCACIAFBDHRyIQEgAEEDagwBCyABQRJ0QYCA8ABxIAAtAANBP3EgAkEGdHJyIQEgAEEEagsiAiAAayAEaiEAIAMgBEsNAAsgAUEKRwRAA0AgACEEIAIiACAHRg0CAn8gACwAACIBQQBOBEAgAUH/AXEhASAAQQFqDAELIAAtAAFBP3EhAiABQR9xIQMgAUFfTQRAIANBBnQgAnIhASAAQQJqDAELIAAtAAJBP3EgAkEGdHIhAiABQXBJBEAgAiADQQx0ciEBIABBA2oMAQsgA0ESdEGAgPAAcSAALQADQT9xIAJBBnRyciEBIABBBGoLIgIgBCAAa2ohACABQQpHDQALCyAEQQFqIQULIAULjAQCBn8EfiMAQfABayICJAACQAJAAkAgASgCACIDIAEoAgQiBUcEQCABKAIIIQYDQCADIgRB6ABqIQMCQCAELQAAQf8BRw0AIARBCGotAABBAUcNACAEQRBqKAIAQQxLDQAgASADNgIAIAIgBCkCYDcC6AEgAiAGNgLkASACIAJB6AFqrUKAgICA0AGENwMgIAIgAkHkAWqtQoCAgICAAYQ3AxggAkK87MaA0AE3AxAgAkLU3sWA0AE3AwggAkHYAWpB3N7FACACQQhqELgMQX8hASACKALgASEFIAIoAtwBIQMgAigC2AFBf0YEQCADIQYMBQsgBUUEQEEAIQFBASEGDAULIAUQkAEiBkUNAyAFBEAgBiADIAX8CgAACyAFIQEMBAsgAyAFRw0ACyABIAM2AgALIABCfzcDAAwCC0EBEKcUAAsgAiAEQRBqIgMQug0gAykDGCEIIAMpAxAhCSADKQMIIQogAykDACELIAIoAgAhByAEQRo2AhAgAigCBCEDIAQgBzYCFCAEIAM2AhggBCABNgIcIAQgBTYCJCAEIAY2AiAgAiALNwMIIAIgCjcDECACIAk3AxggAiAINwMgIAIgAikC2AE3A8gBIAIgAigC4AE2AtABIAJBKGogAkGAAWpB1AD8CgAAIABCAzcDACAAQQhqIAJBCGpB+AD8CgAACyACQfABaiQAC/UDAQV/AkACQAJAAkACQCAAKAIgIgRFDQAgACgCLCIDIAAoAiQiAWtBFG4hAiABIANHBEAgAUEQaiEBA0AgASgCACIFKAIAIQMgBSADQQFrNgIAIANBAUYEQCABKAIAEDALIAFBFGohASACQQFrIgINAAsLIAAoAigiAkUNACAEQQRrKAIAIgNBeHEhASABIAJBFGwiAkEEQQggA0EDcSIDG2pJDQEgA0EARyABIAJBJ2pLcQ0CIAQQvAULAkAgACgCMCIERQ0AIAAoAjwiAyAAKAI0IgFrQRRuIQIgASADRwRAIAFBEGohAQNAIAEoAgAiBSgCACEDIAUgA0EBazYCACADQQFGBEAgASgCABAwCyABQRRqIQEgAkEBayICDQALCyAAKAI4IgJFDQAgBEEEaygCACIDQXhxIQEgASACQRRsIgJBBEEIIANBA3EiAxtqSQ0DIANBAEcgASACQSdqS3ENBCAEELwFCyAAEKcMIAAoAkwiAiAAKAJIIgFHBEAgAiABayECIAAgAUGwAWxqQdAAaiEBA0AgARCXBCABQbABaiEBIAJBAWsiAg0ACwsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAAL7QMBCH8jAEEQayIGJAACQAJAAkACQAJAIAIEQCABQQRqKAIAIgQgAkEDdCIHQQhrIgNBAnZqIQUCQCAEIAVNBEAgASAHaiEJIAEoAgAhCiABQQhqIgchAQNAIANFDQIgAUEEaiADQQhrIQMgAUEIaiEBKAIAIgggBWoiBSAITw0ACwtB2KvJAEE1QZCsyQAQwBMACyAFQQBIDQECQCAFRQRAQQEhAwwBCyAFEJABIgNFDQMLQQAhASAGQQA2AgwgBiADNgIIIAYgBTYCBAJAAkAgBCAFSwRAIAZBBGpBACAEQQFBARCzESAGKAIIIQMgBigCDCEBDAELIARFDQELIARFDQAgASADaiAKIAT8CgAACyAFIAEgBGoiBGshASACQQFHBEAgAyAEaiEDA0AgAUEBTQ0FIAdBBGooAgAhAiAHKAIAIQQgA0GswAA7AAAgAUECayIBIAJJDQYgA0ECaiEDIAIEQCADIAQgAvwKAAALIAEgAmshASACIANqIQMgB0EIaiIHIAlHDQALCyAAIAYpAgQ3AgAgACAFIAFrNgIIDAULIABBADYCCCAAQoCAgIAQNwIADAQLEJ4VAAtBARCnFAALQcSwyQBBE0HIq8kAEL8TAAtBxLDJAEETQciryQAQvxMACyAGQRBqJAAL1gMBBH8CQAJAAkACQAJAIAJBB00EQCACDQEMBQsgAUEDakF8cSIEIAFGDQEgBCABayEFIAEgBGshBkEBIQMgASEEA0AgBC0AAEEuRg0FIARBAWohBCAGQQFqIgYNAAsgBSACQQhrIgNLDQMMAgtBASEDIAEtAABBLkYNAyACQQFGBEBBACEDDAQLIAEtAAFBLkYNAyACQQJGBEBBACEDDAQLIAEtAAJBLkYNAyACQQNGBEBBACEDDAQLIAEtAANBLkYNAyACQQRGBEBBACEDDAQLIAEtAARBLkYNAyACQQVGBEBBACEDDAQLIAEtAAVBLkYNA0EAIQMgAkEGRg0DIAEtAAZBLkYhAwwDCyACQQhrIQMLA0AgASAFaiIEKAIAIgZBgIKECCAGQa7cuPECc2tyIARBBGooAgAiBEGAgoQIIARBrty48QJza3JxQYCBgoR4cUGAgYKEeEcNASAFQQhqIgUgA00NAAsLIAIgBUYEQEEAIQMMAQsgASAFaiEEIAVBf3MgAmohBgNAIAQtAABBLkYiAw0BIARBAWohBCAGIgVBAWshBiAFDQALCyAAIAMgAC0ABHI6AAQgACgCACIAKAIAIAEgAiAAQQRqKAIAKAIMEQAAC4IEAQp/IAEoAgQhBQJ/AkAgASgCAEEBRgRAAkAgASgCECIDKAJMIgZFDQAgASgCDCEJIAEoAgghCiADQdAAaigCACEIA0AgBkEMaiEHIAZBBGohASAGLwGmCCILQQxsIQRBfyEDAkADQCAERQRAIAshAwwCCyABKAIEIgIgCkkgAiAKS2sgASgCACICIAVJIAIgBUtrIAIgBUYbIgJB/wFxRQRAIAcoAgAiAiAJSSACIAlLayECCyABQQxqIQEgBEEMayEEIAdBDGohByADQQFqIQMgAkEBRg0ACyACQf8BcUUNBAsgCEUNASAIQQFrIQggBiADQQJ0aigCqAghBgwACwALQdS5xABBFkGEvsQAEMATAAsgBSABKAIQIgEoAhAiA0kEQCABKAIMIAVB5ABsaiIBQdAAaiECIAFBzABqIQQgAUHJAGohByABQcgAagwCCyAFIANB5PbIABCFEwALIAYgA0HUAGxqIgFB2AFqIQIgAUHUAWohBCABQdEBaiEHIAFB0AFqCyEBIAQoAgAhA0EMIQQCQAJAAkACQAJAIAEtAABBAWsOBAECAwQAC0HA78YAQYUCQcTwxgAQvxMACyAAIAM2AgQgACACKAIANgIIIABBBjYCAA8LIAAgAzYCBCAAQQc2AgAPCyAHLQAAQQJ0KAKA0EkhBAsgACAENgIAC4YEAgR/AX4jAEEwayICJAAgACgCACIAQQhqKAIAIQQgAEEEaigCACEFQQEhAyABKAIAQaKyyABBASABKAIEKAIMEQAAIQACQCAERQRAIAAhAwwBCyACIAU2AgwCQCAADQAgAS0ACkGAAXEEQCABKAIAQaCyyABBASABKAIEKAIMEQAADQEgASkCACEGIAJBAToAHyACIAY3AhAgAkGg68IANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahCLCA0BIAIoAiBBpLLIAEECIAIoAiQoAgwRAAAhAwwBCyACQQxqIAEQiwghAwsgBEEBRg0AIAVBEGohACAEQQR0QRBrIQQDQCACIAA2AgwCf0EBIANBAXENABoCQCABLQAKQYABcQRAIAEpAgAhBiACQQE6AB8gAiAGNwIQIAJBoOvCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQiwhFDQFBAQwCC0EBIAEoAgBBiLPJAEECIAEoAgQoAgwRAAANARogAkEMaiABEIsIDAELIAIoAiBBpLLIAEECIAIoAiQoAgwRAAALIQMgAEEQaiEAIARBEGsiBA0ACwtBASEAIANFBEAgASgCAEGossgAQQEgASgCBCgCDBEAACEACyACQTBqJAAgAAvjAwIDfwV+IwBB0ABrIgMkACADQgA3AzggA0IANwNAIAMgATcDMCADIAFC88rRy6eM2bL0AIU3AyAgAyABQu3ekfOWzNy35ACFNwMYIAMgADcDKCADIABC4eSV89bs2bzsAIU3AxAgAyAAQvXKzYPXrNu38wCFNwMIIAMgAi0AADYCTCADQQhqIgQgA0HMAGoiBUEEEJYIIAQgAigCCCACKAIMEJYIIANB/wE6AEwgBCAFQQEQlgggAykDCCEBIAMpAxghACADNQJAIQYgAykDOCEHIAMpAyAhCCADKQMQIQkgA0HQAGokACAAIAF8IgpCIIkgByAGQjiGhCIGIAiFIgEgCXwiByABQhCJhSIBfCIIIAFCFYmFIQEgASAHIABCDYkgCoUiB3wiCUIgiUL/AYV8IgogAUIQiYUhACAAIAkgB0IRiYUiASAGIAiFfCIGQiCJfCIHIABCFYmFIQAgACAGIAFCDYmFIgEgCnwiBkIgiXwiCCAAQhCJhSEAIAAgBiABQhGJhSIBIAd8IgZCIIl8IgcgAEIViYUhACAAIAFCDYkgBoUiASAIfCIGQiCJfCIIIAFCEYkgBoUiASAHfCABQg2JhSIBfCIGIABCEIkgCIVCFYkgAUIRiYUgBkIgiYWFC40EAQV/IwBBIGsiBSQAIAEoAgAiBCgCACEDIAQgA0EBajYCAAJAAkACQAJAAkAgA0EASA0AIAEoAgQiBiAEQaACaigCACIDTw0BIAEoAggiByAEQZwCaigCACAGQSRsaiIBQSBqKAIAIgNPDQIgAUEcaigCACAHQdQAbGoiASgCAEGCgICAeEcNAyAFIAEpAgg3AhAgBSAFQRBqrUKAgICA0AGENwMYIAVBBGpBs4DAACAFQRhqELgMIAQgBCgCACIBQQFqNgIAIAFBAEgNAEEYEJABIgFFDQQgAUEAOgAUIAFB1OrHADYCDCABQQE2AgggAUKBgICAEDcCAEEQEJABIgNFDQQgAyAHNgIMIAMgBjYCCCADIAQ2AgQgAyACNgIAQRgQkAEiAkUNBCACQQA6ABQgAkGw7ccANgIMIAIgAzYCCCACQoGAgIAQNwIAIAAgBSkCBDcCECAAIAUoAgw2AhggAEEAOgBcIAAgAjYCWCAAQQA6AFQgACABNgJQIABBADoATCAAQQE6ACwgAEEANgIgIABBAToAHCAAQQw6AAwgACAHNgIIIAAgBjYCBCAAQQE2AgAgBCAEKAIAIgBBAWs2AgAgAEEBRgRAIAQQMAsgBUEgaiQADwsACyAGIANBzLvEABCFEwALIAcgA0HMu8QAEIUTAAtBzLvEABCdFQALQbjwyQBBAToAAAALjQQBBX8jAEEgayIFJAAgASgCACIEKAIAIQMgBCADQQFqNgIAAkACQAJAAkACQCADQQBIDQAgASgCBCIGIARBoAJqKAIAIgNPDQEgASgCCCIHIARBnAJqKAIAIAZBJGxqIgFBIGooAgAiA08NAiABQRxqKAIAIAdB1ABsaiIBKAIAQYKAgIB4Rw0DIAUgASkCCDcCECAFIAVBEGqtQoCAgIDQAYQ3AxggBUEEakHNgMAAIAVBGGoQuAwgBCAEKAIAIgFBAWo2AgAgAUEASA0AQRgQkAEiAUUNBCABQQA6ABQgAUHU6scANgIMIAFBATYCCCABQoGAgIAQNwIAQRAQkAEiA0UNBCADIAc2AgwgAyAGNgIIIAMgBDYCBCADIAI2AgBBGBCQASICRQ0EIAJBADoAFCACQdDtxwA2AgwgAiADNgIIIAJCgYCAgBA3AgAgACAFKQIENwIQIAAgBSgCDDYCGCAAQQA6AFwgACACNgJYIABBADoAVCAAIAE2AlAgAEEAOgBMIABBAToALCAAQQA2AiAgAEEBOgAcIABBCToADCAAIAc2AgggACAGNgIEIABBATYCACAEIAQoAgAiAEEBazYCACAAQQFGBEAgBBAwCyAFQSBqJAAPCwALIAYgA0HMu8QAEIUTAAsgByADQcy7xAAQhRMAC0HMu8QAEJ0VAAtBuPDJAEEBOgAAAAvuAwEIfyMAQdAAayIDJABBARCQASIEBEACQCAEQSg6AAAgA0EBNgIcIAMgBDYCGCADQQE2AhQgASADQRRqEPwNIAIoAgghBSACKAIEIQQgAyACKAIANgIIIAMgBDYCACADIAQgBUEMbGoiBzYCDAJAAkAgBUUEQEEAIQIMAQsgBUEBayIIQf////8DcUEBaiEJQQAhAgJAAkADQCAEKAIAIgZBf0YNAiAEQQxqIQUgAyAEQQRqKQIANwJIIAMgBjYCRCADQRRqIgogASADQcQAahC9BSACQQFqIQYgAygCFCIEQX5HDQEgAiAISQRAQQEQkAEiAkUNBiACQSw6AAAgA0EBNgIcIAMgAjYCGCADQQE2AhQgASAKEPwNCyAGIQIgByAFIgRHDQALIAkhAiAHIQQMAgsgACADKQIYNwIEIAAgAykCIDcCDCAAIAMpAig3AhQgACADKQIwNwIcIAAgAykCODcCJCAAIAMoAkA2AiwgAyAGNgIQIAMgBTYCBCADEJYLDAILIARBDGohBAsgAyACNgIQIAMgBDYCBCADEJYLQQEQkAEiAkUNASACQSk6AAAgA0EBNgIcIAMgAjYCGCADQQE2AhQgASADQRRqEPwNQX4hBAsgACAENgIAIANB0ABqJAAPCwtBARCnFAALhgQBAn8jAEEwayIDJAACQAJAAkBBDxCQASIEBEAgBEHr0cUAKQAANwAHIARB5NHFACkAADcAACADQQ82AgggAyAENgIEIANBDzYCACABIAMQ/A1BARCQASIERQ0DIARBKDoAACADQQE2AgggAyAENgIEIANBATYCACABIAMQ/A1BCRCQASIERQ0BIARB+9HFAC0AADoACCAEQfPRxQApAAA3AAAgA0EJNgIIIAMgBDYCBCADQQk2AgAgASADEPwNQQEQkAEiBEUNAyAEQSg6AAAgA0EBNgIIIAMgBDYCBCADQQE2AgAgASADEPwNIAMgASACEMkBAkAgAygCAEF+RwRAIAAgAykCKDcCKCAAIAMpAiA3AiAgACADKQIYNwIYIAAgAykCEDcCECAAIAMpAgg3AgggACADKQIANwIADAELQQEQkAEiAkUNBCACQSk6AAAgA0EBNgIIIAMgAjYCBCADQQE2AgAgASADEPwNQQMQkAEiAkUNAyACQf7RxQAtAAA6AAIgAkH80cUALwAAOwAAIANBAzYCCCADIAI2AgQgA0EDNgIAIAEgAxD8DUEBEJABIgJFDQQgAkEpOgAAIANBATYCCCADIAI2AgQgA0EBNgIAIAEgAxD8DSAAQX42AgALIANBMGokAA8LQQEQpxQAC0EBEKcUAAtBARCnFAALQQEQpxQAC+4DAQh/IwBB0ABrIgMkAEEBEJABIgQEQAJAIARBKDoAACADQQE2AhwgAyAENgIYIANBATYCFCABIANBFGoQ/A0gAigCCCEFIAIoAgQhBCADIAIoAgA2AgggAyAENgIAIAMgBCAFQQxsaiIHNgIMAkACQCAFRQRAQQAhAgwBCyAFQQFrIghB/////wNxQQFqIQlBACECAkACQANAIAQoAgAiBkF/Rg0CIARBDGohBSADIARBBGopAgA3AkggAyAGNgJEIANBFGoiCiABIANBxABqEK0FIAJBAWohBiAD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f0EBIANBAXENABoCQCABLQAKQYABcQRAIAEpAgAhBiACQQE6AA8gAiAGNwIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAAIAJBEGoQzwJFDQFBAQwCC0EBIAEoAgBBiLPJAEECIAEoAgQoAgwRAAANARogACABEM8CDAELIAIoAhBBpLLIAEECIAIoAhQoAgwRAAALIQMgAEHQAGohACAEQdAAayIEDQALC0EBIQAgA0UEQCABKAIAQaiyyABBASABKAIEKAIMEQAAIQALIAJBIGokACAAC+sDAgR/AX4jAEEgayICJAAgACgCACIAQQhqKAIAIQQgAEEEaigCACEFQQEhAyABKAIAQaKyyABBASABKAIEKAIMEQAAIQACQCAERQRAIAAhAwwBCwJAIAANACABLQAKQYABcQRAIAEoAgBBoLLIAEEBIAEoAgQoAgwRAAANASABKQIAIQYgAkEBOgAPIAIgBjcCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqENACDQEgAigCEEGkssgAQQIgAigCFCgCDBEAACEDDAELIAUgARDQAiEDCyAEQQFGDQAgBUHQAGohACAEQdAAbEHQAGshBANAAn9BASADQQFxDQAaAkAgAS0ACkGAAXEEQCABKQIAIQYgAkEBOgAPIAIgBjcCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqENACRQ0BQQEMAgtBASABKAIAQYizyQBBAiABKAIEKAIMEQAADQEaIAAgARDQAgwBCyACKAIQQaSyyABBAiACKAIUKAIMEQAACyEDIABB0ABqIQAgBEHQAGsiBA0ACwtBASEAIANFBEAgASgCAEGossgAQQEgASgCBCgCDBEAACEACyACQSBqJAAgAAvrAwIEfwF+IwBBIGsiAiQAIAAoAgAiAEEIaigCACEEIABBBGooAgAhBUEBIQMgASgCAEGissgAQQEgASgCBCgCDBEAACEAAkAgBEUEQCAAIQMMAQsCQCAADQAgAS0ACkGAAXEEQCABKAIAQaCyyABBASABKAIEKAIMEQAADQEgASkCACEGIAJBAToADyACIAY3AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2Aggg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AkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAAgAkEQahDYAUUNAUEBDAILQQEgASgCAEGIs8kAQQIgASgCBCgCDBEAAA0BGiAAIAEQ2AEMAQsgAigCEEGkssgAQQIgAigCFCgCDBEAAAshAyAAQSBqIQAgBEEgayIEDQALC0EBIQAgA0UEQCABKAIAQaiyyABBASABKAIEKAIMEQAAIQALIAJBIGokACAAC/MDAgV/AX4jAEEwayICJAACQCABKAIAIgRBAUEAIAEoAgQiBigCDCIFEQAABEBBASEDDAELAn8gAS0ACkGAAXFFBEBBASEDIARBtM/FAEEBIAURAAANAiAAIAEQ1Q8NAiABKAIIDAELIARBnePCAEECIAURAAAEQEEBIQMMAgtBASEDIAJBAToALCACIAY2AhAgAiAENgIMIAJBoOvCADYCICACIAEpAggiBzcCJCACIAJBLGo2AhQgAiACQQxqNgIcIAAgAkEcahDVDw0BIAIoAhxBpLLIAEECIAIoAiAoAgwRAAANASAHpwshAyAAQQRqIQQCQCADQYCAgARxRQRAIAEoAgBBiLPJAEECIAEoAgQoAgwRAAAEQEEBIQMMAwsgAiAAQRBqNgIcQQEhAyABQZntxABBCyAEQekAIAJBHGpB6AAQ8gxFDQEMAgsgASkCACEHQQEhAyACQQE6ABsgAiAHNwIMIAJBoOvCADYCICACIAEpAgg3AiQgAiACQRtqNgIUIAIgAkEMajYCHCACIABBEGo2AiwgAkEcakGZ7cQAQQsgBEHpACACQSxqQegAEPIMDQEgAigCHEGkssgAQQIgAigCICgCDBEAAA0BCyABKAIAQYiQyQBBASABKAIEKAIMEQAAIQMLIAJBMGokACADC/IDAgZ/AX4jAEEgayICJABBASEFAkAgASgCACIDQaeQyQBBCyABKAIEIgcoAgwiBBEAAA0AAkACQCABKAIIIgZBgICABHFFBEAgA0GX48IAQQMgBBEAAA0DIANBoKzJAEEEIAQRAAANAyADQaayyABBAiAEEQAADQMgACgCDCAAKAIQIAMgBxC/Bg0DIANBiLPJAEECIAQRAAANAyADQf2ayQBBBCAEEQAADQMgA0GmssgAQQIgBBEAAA0DIAAgARDICkUNAQwDCyADQZrjwgBBAyAEEQAADQIg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QaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEIkBRQ0BQQEMAgtBASABKAIAQYizyQBBAiABKAIEKAIMEQAADQEaIAAgARCJAQwBCyACKAIQQaSyyABBAiACKAIUKAIMEQAACyEDIABBzABqIQAgBEHMAGsiBA0ACwtBASEAIANFBEAgASgCAEGossgAQQEgASgCBCgCDBEAACEACyACQSBqJAAgAAv7AwEDfyMAQSBrIgMkACABKAIAQaCTyQBBDCABKAIEKAIMEQAAIQIgA0EAOgANIAMgAjoADCADIAE2AgggA0EIakGsk8kAQQogAEEwakGvARCJDkGekMkAQQkgAEGWAhCJDiEBAkAgAy0ADARAQQEhAQwBCyADLQANIQQCQCABKAIAIgItAApBgAFxRQRAQQEhASACKAIAQYizyQBBl+PCACAEQQFxIgQbQQJBAyAEGyACKAIEKAIMEQAADQIgAigCAEG2k8kAQQQgAigCBCgCDBEAAA0CIAIoAgBBprLIAEECIAIoAgQoAgwRAAANAiACKAIAQeeQyQBB4JDJACAALQBEIgAbQQtBByAAGyACKAIEKAIMEQAADQIMAQtBASEBIARBAXFFBEAgAigCAEGa48IAQQMgAigCBCgCDBEAAA0CCyADQQE6AB8gAyACKQIANwIQIAMgA0EfajYCGCADQRBqIgRBtpPJAEEEEP0IDQEgBEGmssgAQQIQ/QgNASAEQeeQyQBB4JDJACAALQBEIgAbQQtBByAAGxD9CA0BIARBpLLIAEECEP0IRQ0ADAELIAItAApBgAFxRQRAIAIoAgBB7erCAEECIAIoAgQoAgwRAAAhAQwBCyACKAIAQaGyyABBASACKAIEKAIMEQAAIQELIANBIGokACABC9sDAgR/AX4jAEEgayICJAAgACgCCCEEIAAoAgQhBUEBIQMgASgCAEGissgAQQEgASgCBCgCDBEAACEAAkAgBEUEQCAAIQMMAQsCQCAADQAgAS0ACkGAAXEEQCABKAIAQaCyyABBASABKAIEKAIMEQAADQEgASkCACEGIAJBAToADyACIAY3AgAgAkGg68IANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAUgAkEQahDXAQ0BIAIoAhBBpLLIAEECIAIoAhQoAgwRAAAh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oLLIAEEBIAEoAgQoAgwRAAANASABKQIAIQYgAkEBOgAPIAIgBjcCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqENgBDQEgAigCEEGkssgAQQIgAigCFCgCDBEAACEDDAELIAUgARDYASEDCyAEQQFGDQAgBUEgaiEAIARBBXRBIGshBANAAn9BASADQQFxDQAaAkAgAS0ACkGAAXEEQCABKQIAIQYgAkEBOgAPIAIgBjcCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqENgBRQ0BQQEMAgtBASABKAIAQYizyQBBAiABKAIEKAIMEQAADQEaIAAgARDYAQwBCyACKAIQQaSyyABBAiACKAIUKAIMEQAACyEDIABBIGohACAEQSBrIgQNAAsLQQEhACADRQRAIAEoAgBBqLLIAEEBIAEoAgQoAgwRAAAhAAsgAkEgaiQAIAAL2wMCBH8BfiMAQSBrIgIkACAAKAIIIQQgACgCBCEFQQEhAyABKAIAQaKyyABBASABKAIEKAIMEQAAIQACQCAERQRAIAAhAwwBCwJAIAANACABLQAKQYABcQRAIAEoAgBBoLLIAEEBIAEoAgQoAgwRAAANASABKQIAIQYgAkEBOgAPIAIgBjcCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqEJwDDQEgAigCEEGkssgAQQIgAigCFCgCDBEAACEDDAELIAUgARCcAyEDCyAEQQFGDQAgBUFAayEAIARBBnRBQGohBANAAn9BASADQQFxDQAaAkAgAS0ACkGAAXEEQCABKQIAIQYgAkEBOgAPIAIgBjcCACACQaDrwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEJwDRQ0BQQEMAgtBASABKAIAQYizyQBBAiABKAIEKAIMEQAADQEaIAAgARCcAwwBCyACKAIQQaSyyABBAiACKAIUKAIMEQAACyEDIABBQGshACAEQUBqIgQNAAsLQQEhACADRQRAIAEoAgBBqLLIAEEBIAEoAgQoAgwRAAAhAAsgAkEgaiQAIAAL+wMBA38jAEEgayIDJAAgASgCAEGgk8kAQQwgASgCBCgCDBEAACECIANB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/gcNASACQaSyyABBAhD9CCEDDAELIAYgARD+ByEDCyAEQQFGDQAgBkEUaiEAIARBFGxBFGshBANAAn9BASADQQFxDQAaIAkEQCACQQE6AA8gAiAINgIEIAIgBTYCACACIAo3AhggAkGg68IANgIUIAIgAkEPajYCCCACIAI2AhBBASAAIAJBEGoQ/gcNARogAkGkssgAQQIQ/QgMAQtBASAFQYizyQBBAiAHEQAADQAaIAAgARD+BwshAyAAQRRqIQAgBEEUayIEDQALC0EBIQAgA0UEQCAFQaiyyABBASAHEQAAIQALIAJBIGokACAAC6sDAgh/AX4jAEEgayICJAAgACgCCCEEIAAoAgQhBkEBIQMgASgCACIFQaKyyABBASABKAIEIggoAgwiBxEAACEAAkAgBEUEQCAAIQMMAQsgASgCCEGAgIAEcSEJIAEpAgghCgJAIAANACAJBEAgBUGgssgAQQEgBxEAAA0BIAJBAToADyACIAg2AgQgAiAFNgIAIAIgCjcCGCACQaDrwgA2AhQgAiACQQ9qNgIIIAIgAjYCECAGIAJBEGoQjwYNASACQaSyyABBAhD9CCEDDAELIAYgARCPBiEDCyAEQQFGDQAgBkEUaiEAIARBFGxBFGshBANAAn9BASADQQFxDQAaIAkEQCACQQE6AA8gAiAINgIEIAIgBTYCACACIAo3AhggAkGg68IANgIUIAIgAkEPajYCCCACIAI2AhBBASAAIAJBEGoQjwYNARogAkGkssgAQQIQ/QgMAQtBASAFQYizyQBBAiAHEQAADQAaIAAgARCPBgshAyAAQRRqIQAgBEEUayIEDQALC0EBIQAgA0UEQCAFQaiyyABBASAHEQAAIQALIAJBIGokACAAC8wDAgV/AX4jAEEwayICJAAgASgCACIEQQFBACABKAIEIgYoAgwiBREAACEDIAIgADYCDAJAIAMEQEEBIQMMAQsCfyABLQAKQYABcUUEQEEBIQMgBEG0z8UAQQEgBREAAA0CIAJBDGogARCAEA0CIAEoAggMAQsgBEGd48IAQQIgBREAAARAQQEhAwwCC0EBIQMgAkEBOgAfIAIgBjYCFCACIAQ2AhAgAkGg68IANgIkIAIgASkCCCIHNwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqEIAQDQEgAigCIEGk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FCAAQTA6ABAgACAENgIMIAAgATYCCCAAIAQ2AgQgAEEANgIADwtBARCnFAAL8gIBBH8jAEEQayICJAAgAiAAKAIAIgM2AgwgASACQQxqQQQQlggCQAJAAkACQCADQQFrDgIBAgALIAAoAgghAyACIAAoAgwiADYCDCABIAJBDGpBBBCWCCAARQ0CIABBBXQhAANAIAMgARC5AiADQSBqIQMgAEEgayIADQALDAILIAIgACgCBCIFNgIMIAEgAkEMaiIDQQQQlgggACgCCCEEIAVBAUYEQCAAKAIMIQUgAiAENgIMIAEgA0EEEJYIIAIgBTYCDCABIANBBBCWCCACIAAoAhA2AgwgASADQQQQlggMAgsgAiAENgIMIAEgAkEMakEEEJYIDAELIAEgACgCECAAKAIUEJYIIAJB/wE6AAwgASACQQxqIgNBARCWCCACIAAoAgQiBDYCDCABIANBBBCWCCAEQQVHDQAgAEEEaiEDA0AgAiADKAIEIgMoAgAiADYCDCABIAJBDGpBBBCWCCAAQQVGDQALCyACQRBqJAAL8gIBBH8jAEEQayICJAAgAiAAKAIAIgM2AgwgASACQQxqQQQQlggCQAJAAkACQCADQQFrDgIBAgALIAAoAgghAyACIAAoAgwiADYCDCABIAJBDGpBBBCWCCAARQ0CIABBBXQhAANAIAMgARC6AiADQSBqIQMgAEEgayIADQALDAILIAIgACgCBCIFNgIMIAEgAkEMaiIDQQQQlgggACgCCCEEIAVBAUYEQCAAKAIMIQUgAiAENgIMIAEgA0EEEJYIIAIgBTYCDCABIANBBBCWCCACIAAoAhA2AgwgASADQQQQlggMAgsgAiAENgIMIAEgAkEMakEEEJYIDAELIAEgACgCECAAKAIUEJYIIAJB/wE6AAwgASACQQxqIgNBARCWCCACIAAoAgQiBDYCDCABIANBBBCWCCAEQQVHDQAgAEEEaiEDA0AgAiADKAIEIgMoAgAiADYCDCABIAJBDGpBBBCWCCAAQQVGDQALCyACQRBqJAAL8gIBBH8jAEEQayICJAAgAiAAKAIAIgM2AgwgASACQQxqQQQQlggCQAJAAkACQCADQQFrDgIBAgALIAAoAgghAyACIAAoAgwiADYCDCABIAJBDGpBBBCWCCAARQ0CIABBBXQhAANAIAMgARC7AiAD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KALMASACKALQARCLAQJAAkACQAJAAkACQAJAIAMpAwhCAlINACADKAJIQX9HDQAgAy0AbEEBcUUNAQsgA0HwAGogA0EIakHoAPwKAAAMAQsgAygCaCADIAJBqAFqNgLYASADQfAAaiADQQhqQegA/AoAAEUNAQsgAyACKAKoAUEIaiACKAKsARDRECADKAIEIgJBAEgNAgJAIAJFBEBBASEBDAELIAMoAgAhBCACEJABIgFFDQQgAkUNACABIAQgAvwKAAALIANB6AFqIANB8ABqQegA/AoAACAAIAI2AgggACABNgIEIAAgAjYCACAAQQxqIANB5AFqQewA/AoAAAwBCyAAQn83AxAgA0HwAGoQhQgLIANB0AJqJAAPCxCeFQALQQEQpxQAC7gCAQd/AkACQAJAAkACQCAAKAIAIgJBfkYNACACQX9GDQAgACgCBCEDIAAoAggiBQRAIAMhAANAIAAQzQECQCAAQdAAaigCACIBQX5GDQAgAUF/Rg0AIAFFDQAgAEHUAGooAgAiB0EEaygCACIEQXhxIQYgBkEEQQggBEEDcSIEGyABakkNBCAEQQBHIAYgAUEnaktxDQUgBxC8BQsgAEHgAGohACAFQQFrIgUNAAsLIAJFDQAgA0EEaygCACIBQXhxIQAgACACQeAAbCICQQRBCCABQQNxIgEbckkNAyABQQBHIAAgAkEnaktxDQQgAxC8BQsPC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALtAIBBH8CQAJAAkACfyABQQhPBEAgAUH/////AU0EQEF/IAFBA3RBB25BAWtndiIDQf3///8DSw0DIANBAWoMAgtB+OjIAEE5QZTpyAAQvxMACyABQQRxQQRqCyIDQQJ0QQdqQXhxIgQgA0EIaiIFIARqIgJLDQAgAkH4////B0sNACACEJABIgJFBEBBuPDJAEEBOgAAAAsgAiAEaiEEIAUEQCAEQf8BIAX8CwALIAFB/////wBLDQEgAUEEdCICQf3///8HTw0BIAIQkAEiAkUNAiAAQQA2AhggACAENgIMIABBADYCCCAAIAI2AgQgACABNgIAIAAgA0EBayIBNgIQIAAgASADQQN2QQdsIANBCUkbNgIUDwtB+OjIAEE5QZTpyAAQvxMACxCeFQALQQQQpxQAC8UCAQR/IwBBQGoiAiQAIAAoAgAhACACQQA2AjggAkKAgICAEDcCMCACQYjhyAA2AhwgAkKggICABjcCICACIAJBMGo2AhgCQAJAIAAgAkEYaiIDEKgGRQRAIAIgAigCODYCECACIAIpAjA3AwggAiAAQRBqrUKAgICAgAGENwMoIAIgAEEMaq1CgICAgIABhDcDICACIAJBCGqtQoCAgIDQJoQ3AxggASgCACABKAIEQeqTwgAgAxCxCSACKAIIIgAEQCACKAIMIgVBBGsoAgAiBEF4cSEBIAFBBEEIIARBA3EiBBsgAGpJDQIgBEEARyABIABBJ2pLcQ0DIAUQvAULIAJBQGskAA8LQfC1yQBBNyACQT9qQaDhyABBqLbJABDaEgALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC5gCAgR/A34jAEEgayIDJABBFCECIAApAwAiByIGQugHWgRAA0AgA0EMaiACaiIAQQRrIAYiCCAGQpDOAIAiBkKQzgB+faciBEH//wNxQeQAbiIFQQF0LwCcmEk7AAAgAEECayAEIAVB5ABsa0H//wNxQQF0LwCcmEk7AAAgAkEEayECIAhC/6ziBFYNAAsLIAZCCVYEQCAGpyIEQf//A3FB5ABuIQAgAkECayICIANBDGpqIAQgAEHkAGxrQf//A3FBAXQvAJyYSTsAACAArSEGCyAGUCAHQgBScUUEQCACQQFrIgIgA0EMamogBqdBAXQtAJ2YSToAAAsgAUEBQQFBACADQQxqIAJqQRQgAmsQyQkgA0EgaiQAC+ADAQ5/IwBBEGsiBiQAAkAgACgCCCIDIAEoAghHDQAgACgCBCABKAIEIAMQjxMNACABKAIkIQMCQCAAKAIkQX9HBEAgA0F/Rg0CIAAoAiwiAyABKAIsRw0CIAAoAiggASgCKCADEI8TRQ0BDAILIANBf0cNAQsgACgCFCICIAEoAhRHDQAgACgCICIJIAEoAiBHDQAgBiAAKAIQIgQ2AgggBiAEIAJByABsIgNqNgIMIAEoAhAhBUEBIQoCQCAGQQhqIgcoAgAiBCAHKAIEIgxGDQACQAJAIAIEQCAFQRBqIQgMAQsgByAEQcgAajYCAAwBCwNAIAcgBCICQcgAaiIENgIAIAJBEGohDSACKAIEIQ4gAigCCCELIAMhBSAIIQIDQAJAAkAgAkEIaygCACALRw0AIAJBDGsoAgAgDiALEI8TDQAgAiANEKUMDQELIAJByABqIQIgBUHIAGsiBQ0BDAMLCyAEIAxHDQALDAELQQAhCgsgCkUNACAJBEAgACgCHCIDIAlBPGwiBGohCCABKAIcQTxrIQIDQCADIgVBPGohAyAEIQEgAiEAA0AgAUUNAyABQTxrIQEgAEE8aiIAIAUQjw5FDQALIAMgCEcNAAsLQQEhDwsgBkEQaiQAIA8L6QIBBX8jAEEgayICJAACQAJAAkACQAJAIAAoAgBBAWsOAwECAwALIAEoAgBBs//GAEEDIAEoAgQoAgwRAAAhAwwDCyABKAIAQfX9xwBBAyABKAIEKAIMEQAAIQMMAgsgASgCAEG2/8YAQQsgASgCBCgCDBEAACEDDAELQQEhAyABKAIAIgRB55HJAEEEIAEoAgQiBigCDCIFEQAADQAgAEEIaiEAAkAgAS0ACkGAAXFFBEAgBEG0z8UAQQEgBREAAA0CIAAgARDcDw0CIAEoAgAhBCABKAIEKAIMIQUMAQsgBEGd48IAQQIgBREAAA0BIAJBAToADyACIAY2AgQgAiAENgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAAIAJBEGoQ3A8NASACKAIQQaSyyABBAiACKAIUKAIMEQAADQELIARBiJDJAEEBIAURAAAhAwsgAkEgaiQAIAML0AIBA38jAEEgayICJAACQAJAAkAgASgCBCIEIAEoAgAiBUGgAmooAgAiA0kEQCABKAIIIgMgBUGcAmooAgAgBEEkbGoiAUEgaigCACIFTw0BIAFBHGooAgAgA0HUAGxqIgEoAgBBgoCAgHhHDQIgAiABKQIINwIQIAIgAkEQaq1CgICAgNABhDcDGCACQQRqQdKuwAAgAkEYahC4DEEYEJABIgFFDQMgAUEAOgAUIAFB8OzHADYCDCABQQE2AgggAUKBgICAEDcCACAAIAIpAgQ3AhAgACACKAIMNgIYIABBADoAXCAAIAE2AlggAEEAOgBUIABBghA7ARwgAEEUOgAMIAAgAzYCCCAAIAQ2AgQgAEEBNgIAIAJBIGokAA8LIAQgA0HMu8QAEIUTAAsgAyAFQcy7xAAQhRMAC0HMu8QAEJ0VAAtBuPDJAEEBOgAAAAvQAgEDfyMAQSBrIgIkAAJAAkACQCABKAIEIgQgASgCACIFQaACaigCACIDSQRAIAEoAggiAyAFQZwCaigCACAEQSRsaiIBQSBqKAIAIgVPDQEgAUEcaigCACADQdQAbGoiASgCAEGCgICAeEcNAiACIAEpAgg3AhAgAiACQRBqrUKAgICA0AGENwMYIAJBBGpB4q7AACACQRhqELgMQRgQkAEiAUUNAyABQQA6ABQgAUHA7McANgIMIAFBATYCCCABQoGAgIAQNwIAIAAgAikCBDcCECAAIAIoAgw2AhggAEEAOgBcIAAgATYCWCAAQQA6AFQgAEGCEDsBHCAAQRM6AAwgACADNgIIIAAgBDYCBCAAQQE2AgAgAkEgaiQADwsgBCADQcy7xAAQhRMACyADIAVBzLvEABCFEwALQcy7xAAQnRUAC0G48MkAQQE6AAAAC7gCAQN/IwBBMGsiAyQAIANBEGogAEEwakEBIAAoAvQBIAEgAhD+AxDeB0EAIQICQAJAIAMoAhBBAUYEQAJAIAAoAlQiBUF/RwRAIAMoAhQhAiAAKALwASEEIAAoAlAhASADIAU2AiAgAyAAKQJYNwIkIAMgACgCYDYCLCAEQQhqKAIAIQAgAyABNgIcIAAgAUsNASABIABBrLPEABCFEwALQayzxAAQnRUACyADQQhqIARBBGooAgAgAUEkbGoiAEEcaigCACAAQSBqKAIAIANBIGpBrLPEABDhCyADKAIsIgAgAygCDCIBTw0CIAMoAgggAEHMAGxqIgAoAhgiASACTQ0BIAAoAhQgAkHkAGxqIQILIANBMGokACACDwsgAiABQbyzxAAQhRMACyAAIAFBrLPEABCFEwAL0gIBA38jAEEQayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFrDgwAAQIDCwQEBQYHCAkKC0EFIQIMCQtBBiECDAgLQQEhAgwHC0EHIQIMBgtBCCECDAULQQkhAgwEC0EDIQIMAwtBAiECDAILQQohAgwBC0ELIQILIAAgAjoADSAAQQA6AAwgAEF/NgIADAELIAMgASgCBBCUDiADLQAMBEAgA0EMakGIhMkAQc8AQbCEyQAQxhMACyAAIAMtAA06AA0gAEEBOgAMIABBfzYCACADKAIAIgBBAEwNACADKAIEIgJBBGsoAgAiBEF4cSEBAkBBBEEIIARBA3EiBBsgAGogAU0EQCAEQQBHIAEgAEEnaktxDQEgAhC8BQwCC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAsgA0EQaiQAC8UCAQN/IwBBEGsiBCQAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACICQYCAgIB4cyACQQBOG0EMaw4EAQIDBAALIAEgBEEPakHkiMcAEPQTIQEgAEF/NgIAIAAgATYCBAwECyABKAIMIgJBAEgNBAJAIAJFBEBBASEBDAELIAEoAgghAyACEJABIgFFDQYgAkUNACABIAMgAvwKAAALIAAgAjYCCCAAIAE2AgQgACACNgIADAMLIAEoAggiAkEASA0DAkAgAkUEQEEBIQEMAQsgASgCBCEDIAIQkAEiAUUNBiACRQ0AIAEgAyAC/AoAAAsgACACNgIIIAAgATYCBCAAIAI2AgAMAgsgACABKAIIIAEoAgwQ7hAMAQsgACABKAIEIAEoAggQ7hALIARBEGokAA8LEJ4VAAtBARCnFAALQQEQpxQAC8UCAQZ/IwBBIGsiAiQAQQEhBAJAIAEoAgAiA0EBQQAgASgCBCIGKAIMIgURAAANACAAQQxqIQcCQCABLQAKQYABcUUEQCADQbTPxQBBASAFEQAADQIgACgCBCAAKAIIIAMgBhC/Bg0CIANBiLPJAEECIAURAAANAiAHIAEQjg9FDQEMAgsgA0Gd48IAQQIgBREAAA0BIAIgBjYCFCACIAM2AhAgAkEBOgAAIAIgAjYCGCAAKAIEIAAoAgggAkEQaiIAQaDrwgAQvwYNASAAQaSyyABBAhD9CA0BIAJBAToADyACIAY2AgQgAiADNgIAIAJBoOvCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAHIAAQjg8NASACQaSyyABBAhD9CA0BCyADQYiQyQBBASAFEQAAIQQLIAJBIGokACAEC4oCAQd/IwBBEGsiAyQAQQohAiAAKAIAIgQiAEHoB08EQANAIANBBmogAmoiBUEEayAAIgYgAEGQzgBuIgBBkM4AbGsiB0H//wNxQeQAbiIIQQF0LwCcmEk7AAAgBUECayAHIAhB5ABsa0H//wNxQQF0LwCcmEk7AAAgAkEEayECIAZB/6ziBEsNAAsLIABBCUsEQCACQQJrIgIgA0EGamogACAAQf//A3FB5ABuIgBB5ABsa0H//wNxQQF0LwCcmEk7AAALIABFIARBAEdxRQRAIAJBAWsiAiADQQZqaiAAQQF0LQCdmEk6AAALIAFBAUEBQQAgA0EGaiACakEKIAJrEMkJIANBEGokAAu2AgEEfyMAQRBrIgUkACABKAIQIgIoAgAhAyACIANBAWo2AgACQAJAAkACQCADQQBOBEAgBSABEJ8KIAUgAjYCDCABKAIEIQMCfyABKAIAQQFGBEAgAkGgAmooAgAiBCADTQ0DIAEoAggiBCACQZwCaigCACADQSRsaiICQSBqKAIAIgNPDQQgAkEcaigCACAEQdQAbGoiAigCAEGAgICAeEcNBSABKAIMIgMgAigCJCIETw0GIAIoAiAgA0HcAGxqDAELIAJBCGogAxD2EAstAFghAiAAQRBqIAEQ7QYgACACOgAgIAAgBSkCCDcCCCAAIAUpAgA3AgAgBUEQaiQADwsACyADIARBlL7EABCFEwALIAQgA0GUvsQAEIUTAAtBlL7EABCdFQALIAMgBEGkvsQAEIUTAAu+AgIDfwF+IwBBMGsiBCQAQeAAEJABIgUEQAJAQbABEJABIgNFDQAgA0EAOgCsASADQQA7AaoBIANB/wE6AKQBIANCj4CAgHA3AmwgA0HU48gANgJoIANBfzYCZCADQX42AlggA0F8NgIQIANBfjYCACAFQX42AlAgBSADNgIEIAVBAzYCACAEQQhqIAFBCGogAhDRECAEIAQpAwg3AiAgBCAEQSBqrUKAgICA0AGENwMoIARBFGpB7IHAACAEQShqELgMIAQoAhQhAiAEKAIYIQMgBDUCHCEGQcgBEJABIgFFDQAgASAGNwPAASABIAM2ArwBIAEgAjYCuAEgAUEBNgIMIAEgBTYCCCABQoKAgIAQNwMAIABBfjYCUCAAIAE2AgQgAEEGNgIAIARBMGokAA8LC0G48MkAQQE6AAAAC7ACAQd/IAAQngYCQAJAAkACQAJAIAAoAhAiAkF/Rg0AIAAoAhQhAyAAKAIYIgEEQCADQdAAaiEAA0AgAEHMAGsQ8AIgAEEYaxCeBiAAQQRrKAIAIgUEQCAAKAIAIgdBBGsoAgAiBEF4cSEGIAZBBEEIIARBA3EiBBsgBWpJDQQgBEEARyAGIAVBJ2pLcQ0FIAcQvAULIABB2ABqIQAgAUEBayIBDQALCyACRQ0AIANBBGsoAgAiAUF4cSEAIAAgAkHYAGwiAkEEQQggAUEDcSIBG2pJDQMgAUEARyAAIAJBJ2pLcQ0EIAMQvAULDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC5QCAQh/AkACQAJAIAEoAggiAiABKAIEIgNNBEAgAkUEQEEBIQJBACEDDAQLIAEoAgAhASACQQNxIQUgAkEETw0BQQEhAkEAIQMMAgtBACACIANBmLPIABCHDgALIAJBfHEhBEEBIQJBACEDA0BBAEEBQQJBAyADQQRqIAEtAABBCkYiBhsgAUEBai0AAEEKRiIHGyABQQJqLQAAQQpGIggbIAFBA2otAABBCkYiCRshAyACIAZqIAdqIAhqIAlqIQIgAUEEaiEBIARBBGsiBA0ACyAFRQ0BCwNAQQAgA0EBaiABLQAAQQpGIgQbIQMgAUEBaiEBIAIgBGohAiAFQQFrIgUNAAsLIAAgAzYCBCAAIAI2AgALoQICA38DfiABIAEoAgAiBEEBajYCAAJAIARBAE4EQCAAKAIMRQ0BIAApAxAgACkDGCACEP0KIganIAAoAgQiBHEhAyAGQhmIQv8Ag0KBgoSIkKDAgAF+IQggACgCACEAA0AgACADaikAACIHIAiFIgZCgYKEiJCgwIABfSAGQn+Fg0KAgYKEiJCgwIB/gyIGQgBSBEADQCAAIAZ6p0EDdiADaiAEcUFsbGpBEGsoAgAgAkYEQEEBIQMMBQsgBkIBfSAGgyIGQgBSDQALCyAHIAdCAYaDQoCBgoSIkKDAgH+DQgBSBEBBACEDDAMFIAVBCGoiBSADaiAEcSEDDAELAAsACwALIAEgASgCACIAQQFrNgIAIABBAUYEQCABEDALIAMLuAIBBH8jAEHQAGsiAiQAIAJBADYCDCACIAE2AgggAiABKAIINgIQIAJBIGogAkEIahDCBwJAAkAgAigCJEF/RwRAQcAAEJABIgNFDQIgAyACKQIoNwIIIAMgAikCIDcCACACQQE2AhwgAiADNgIYIAJBBDYCFCACIAIoAhA2AjggAiACKQIINwMwQRAhBEEBIQEDQCACQUBrIAJBMGoQwgcgAigCREF/RkUEQCACKAIUIAFGBEAgAkEUaiABQQFBBEEQELMRIAIoAhghAwsgAyAEaiIFIAIpAkg3AgggBSACKQJANwIAIAIgAUEBaiIBNgIcIARBEGohBAwBCwsgACACKAIcNgIIIAAgAikCFDcCAAwBCyAAQQA2AgggAEKAgICAwAA3AgALIAJB0ABqJAAPC0EEEKcUAAutAgEGfyAAKAIMIgIgACgCBCIBa0HYAG4hAwJAAkACQAJAIAEgAkcEQANAAkAgAUHIAGooAgAiAkF/Rg0AIAJFDQAgAUHMAGooAgAiBkEEaygCACIEQXhxIQUgBUEEQQggBEEDcSIEGyACakkNAyAEQQBHIAUgAkEnaktxDQQgBhC8BQsgARCuByABQdgAaiEBIANBAWsiAw0ACwsgACgCCCIBBEAgACgCACICQQRrKAIAIgNBeHEhACAAIAFB2ABsIgFBBEEIIANBA3EiAxtqSQ0DIANBAEcgACABQSdqS3ENBCACELwFCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAupAgECfyMAQfAAayIDJAACQAJAIAACfyACRQRAQeQAEJABIgJFDQMgAiABQeQA/AoAAEEBDAELQcgBEJABIgJFDQECQAJAAkACQAJAQQMgASgCACIEQQJrIARBAU0bQQFrDgMBAgMACyADQQxqIAFB5AD8CgAADAMLIANBEGogAUEEahCgByADQQM2AgwMAgtB5AAQkAEiBEUNBCABKAIEIAQQuA8gA0EENgIMIAMgBDYCEAwBCyADQQxqIAEQ5AULQeQAEJABIgRFDQIgBCABQeQA/AoAACACIANBDGpB5AD8CgAAIAIgBDYCaCACQQQ2AmRBAgsiATYCCCAAIAI2AgQgACABNgIAIANB8ABqJAAPC0G48MkAQQE6AAAAC0G48MkAQQE6AAAAC48CAQh/AkACQAJAIAAoAhQiAiAAKAIQIgNNBEAgAkUEQCABQQFBABDHEw8LIAAoAgwhACACQQNxIQUgAkEETw0BQQEhAkEAIQMMAgtBACACIANBmLPIABCHDgALIAJBfHEhBEEBIQJBACEDA0BBAEEBQQJBAyADQQRqIAAtAABBCkYiBhsgAEEBai0AAEEKRiIHGyAAQQJqLQAAQQpGIggbIABBA2otAABBCkYiCRshAyACIAZqIAdqIAhqIAlqIQIgAEEEaiEAIARBBGsiBA0ACyAFRQ0BCwNAQQAgA0EBaiAALQAAQQpGIgQbIQMgAEEBaiEAIAIgBGohAiAFQQFrIgUNAAsLIAEgAiADEMcTC48CAQh/AkACQAJAIAAoAggiAiAAKAIEIgNNBEAgAkUEQCABQQFBABDHEw8LIAAoAgAhACACQQNxIQUgAkEETw0BQQEhAkEAIQMMAgtBACACIANBmLPIABCHDgALIAJBfHEhBEEBIQJBACEDA0BBAEEBQQJBAyADQQRqIAAtAABBCkYiBhsgAEEBai0AAEEKRiIHGyAAQQJqLQAAQQpGIggbIABBA2otAABBCkYiCRshAyACIAZqIAdqIAhqIAlqIQIgAEEEaiEAIARBBGsiBA0ACyAFRQ0BCwNAQQAgA0EBaiAALQAAQQpGIgQbIQMgAEEBaiEAIAIgBGohAiAFQQFrIgUNAAsLIAEgAiADEMcTC5YCAQh/IwBBEGsiBCQAIAIgAWtByAFuIQUCQAJAAkACQCABIAJGBEBBACEFQQQhBwwBCyAFQQxsIgIQkAEiB0UNASAHIQIgBSEJA0AgBEEEaiABEOEIIAQoAgwhAyAEKAIIIQoCQCAEKAIEIghBf0cEQCAKIQYMAQsgA0EASA0EIANFBEBBASEGQQAhA0EAIQgMAQsgAxCQASIGRQ0FIAMEQCAGIAogA/wKAAALIAMhCAsgAiAINgIAIAJBCGogAzYCACACQQRqIAY2AgAgAUHIAWohASACQQxqIQIgCUEBayIJDQALCyAAIAU2AgggACAHNgIEIAAgBTYCACAEQRBqJAAPC0EEEKcUAAsQnhUAC0EBEKcUAAunAgEHfyAAKAIEIQQCQAJAAkACQCAAKAIIIgUEQCAEIQEDQCABEM0BAkAgAUHQAGooAgAiA0F+Rg0AIANBf0YNACADRQ0AIAFB1ABqKAIAIgdBBGsoAgAiAkF4cSEGIAZBBEEIIAJBA3EiAhsgA2pJDQMgAkEARyAGIANBJ2pLcQ0EIAcQvAULIAFB4ABqIQEgBUEBayIFDQALCyAAKAIAIgEEQCAEQQRrKAIAIgBBeHEhAiACIAFB4ABsIgFBBEEIIABBA3EiABtySQ0DIABBAEcgAiABQSdqS3ENBCAEELwFCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAunAgEHfyAAKAIEIQQCQAJAAkACQCAAKAIIIgUEQCAEIQEDQCABEM0BAkAgAUHQAGooAgAiA0F+Rg0AIANBf0YNACADRQ0AIAFB1ABqKAIAIgdBBGsoAgAiAkF4cSEGIAZBBEEIIAJBA3EiAhsgA2pJDQMgAkEARyAGIANBJ2pLcQ0EIAcQvAULIAFB6ABqIQEgBUEBayIFDQALCyAAKAIAIgEEQCAEQQRrKAIAIgBBeHEhAiACIAFB6ABsIgFBBEEIIABBA3EiABtqSQ0DIABBAEcgAiABQSdqS3ENBCAEELwFCw8LQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC0HQnMkAQS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAuAAgEIf0EBIQMCQCABKAIIQQFqIgIgASgCBCIEIAIgBEkbIgJFBEBBACECDAELIAEoAgAhASACQQNxIQQCQCACQQRJBEBBACECDAELIAJBfHEhBUEAIQIDQEEAQQFBAkEDIAJBBGogAS0AAEEKRiIGGyABQQFqLQAAQQpGIgcbIAFBAmotAABBCkYiCBsgAUEDai0AAEEKRiIJGyECIAMgBmogB2ogCGogCWohAyABQQRqIQEgBUEEayIFDQALIARFDQELA0BBACACQQFqIAEtAABBCkYiBRshAiABQQFqIQEgAyAFaiEDIARBAWsiBA0ACwsgACACNgIEIAAgAzYCAAuxAgIDfwF+IwBBgANrIgckACADQQRqIQgCQAJAAkAgAygCACIJQX9GBEAgAygCFCEBIAdB0AFqIgIgCCAGQQAQiQIgB0EgaiIDIAIgBCAFEKoOQbABEJABIgJFDQIgAiADQbAB/AoAACAAQX42AlAgACACNgIEIABBAzYCACABIAEoAgAiAEEBazYCACAAQQFHDQEgARAwDAELIAMpAxghCiAHIAk2AgAgByAKNwMYIAcgCCkCADcCBCAHIAgpAgg3AgwgByAIKAIQNgIUIAJFDQIgB0EgaiICIAEgByAGEKEBIAdB0AFqIgFBBGogAkHIAPwKAAAgAEEANgIAIABBBGogAUHMAPwKAAAgAEF+NgJQCyAHQYADaiQADwtBuPDJAEEBOgAAAAtBzOrIABCdFQALqAICA34GfwJ/AkAgASgC3AEEQCABKQPgASABKQPoASACEP0KIgOnIAEoAtQBIghxIQYgA0IZiEL/AINCgYKEiJCgwIABfiEFIAEoAtABIQkDQAJAIAYgCWopAAAiBCAFhSIDQoGChIiQoMCAAX0gA0J/hYNCgIGChIiQoMCAf4MiA0IAUgRAA0AgAiAJIAN6p0EDdiAGaiAIcUEDdGsiB0EIaygCAEYNAiADQgF9IAODIgNCAFINAAsLQQAgBCAEQgGGg0KAgYKEiJCgwIB/g0IAUg0EGiAKQQhqIgogBmogCHEhBgwBCwsgB0EEaygCACICIAEoAmhJDQELQQAMAQsgASgCZCACQQR0aiIBKAIIIQsgASgCBAshByAAIAs2AgQgACAHNgIAC50CAQh/IwBB8ABrIgMkAAJAAkACQCACRQRAQQQhBwwBCyACQeQAbCIJEJABIgdFDQEgA0EQaiEKIAIhCANAIAQgCUYNAQJAAkACQAJAAkBBAyABIARqIgUoAgAiBkECayAGQQFNG0EBaw4DAQIDAAsgA0EMaiAFQeQA/AoAAAwDCyAKIAVBBGoQoAcgA0EDNgIMDAILQeQAEJABIgZFDQUgBUEEaigCACAGELgPIANBBDYCDCADIAY2AhAMAQsgA0EMaiAFEOQFCyAEIAdqIANBDGpB5AD8CgAAIARB5ABqIQQgCEEBayIIDQALCyAAIAI2AgggACAHNgIEIAAgAjYCACADQfAAaiQADwtBBBCnFAALQbjwyQBBAToAAAALuwIBBH8jAEGAAWsiAyQAIAEoAhQhAiABKAIQIgQoAgAhBSAEIAVBAWo2AgAgBUEATgRAIAMgBDYCECADIAEpAgg3AwggAyABKQIANwMAIANBGGoiBCACIAMQ4Q8CQEHkABCQASIFBEAgBSAEQeQA/AoAACAEIAIgARDpCSADQQE6AFxBkAEQkAEiAkUNASACIARByAD8CgAAIAJBATsBjAEgAkEGNgKIASACQd2ayQA2AoQBIAJBfzYCgAEgAkIENwN4IAJCATcDcCACIAU2AmwgAkEBNgJoIAJBfjYCSCAAQQI2AgggACACNgIEIABBAjYCACABKAIQIgIoAgAhACACIABBAWs2AgAgAEEBRgRAIAEoAhAQMAsgA0GAAWokAA8LQbjwyQBBAToAAAALQbjwyQBBAToAAAALAAu5AgEBfyMAQTBrIgQkAAJAIAJBAkcEQCAEIAM2AgwgBCACNgIIIARBADYCJCAEQoCAgIAQNwIcIARBDGohAwJAIAJBAUYEQCAEIAM2AiggBCAEQShqrUKAgICA8BCENwMQIARBHGpB4JLJAEGTgcAAIARBEGoQsQlFDQEMAwsgBCADNgIoIAQgBEEoaq1CgICAgPAQhDcDECAEQRxqQeCSyQBBgoHAACAEQRBqELEJDQILIAQgBCgCJDYCGCAEIAQpAhw3AxAgAUHwAGoQ1wUgAUEANgJwIAFBfjYCmAEgAUKAgICAYDcDiAEgAUKAgICAwAA3A4ABIAEgBCkDEDcCdCABIAQoAhg2AnwLIAAgAUGwAfwKAAAgBEEwaiQADwtB8LXJAEE3IARBL2pB+JLJAEGotskAENoSAAuaAwEFfyMAQRBrIgMkAEGAgICAeCECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRMgACgCACIFQYCAgIB4cyAFQQBOG0EBaw4TAAECAwQFBgcICQoLDA0ODxAREhMLQYGAgIB4IQIMEgtBgoCAgHghAgwRC0GDgICAeCECDBALQYSAgIB4IQIMDwtBhYCAgHghAgwOC0GGgICAeCECDA0LQYeAgIB4IQIMDAtBiICAgHghAgwLC0GJgICAeCECDAoLQQwQkAEiBEUNCiAAKAIEIAQQqw5BioCAgHghAgwJC0GLgICAeCECDAgLQYyAgIB4IQIMBwtBjYCAgHghAgwGC0GOgICAeCECDAULQY+AgIB4IQIMBAtBkICAgHghAgwDC0GRgICAeCECDAILQZKAgIB4IQIMAQsgA0EEaiAAKAIEIAAoAggQlw0gAygCDCEGIAMoAgghBCADKAIEIQILIAEgBjYCCCABIAQ2AgQgASACNgIAIANBEGokAA8LQbjwyQBBAToAAAALjgICB38BfiMAQRBrIgUkAAJAQfAAEJABIggEQCAIIAJB8AD8CgAAIAEoAgwiAkEBSyEDQQQhBiABKAIEIAIgAxsiBARAIAEoAgggBEEDdCIJEJABIgZFDQIgAUEEaiADGyEHQQAhAiAEIQMDQCACIAlHBEAgAiAGaiAHKQIANwIAIAJBCGohAiAHQQhqIQcgA0EBayIDDQELCwsgBUEIaiABKAIQIgIgASgCFCIBKAIMEQIAIAUpAwghCiAAQQhqIAIgASgCEBECACAAIAQ2AkwgACAGNgJIIAAgBDYCRCAAIAg2AkAgACAKNwM4IABCEjcDACAFQRBqJAAPC0G48MkAQQE6AAAAC0EEEKcUAAuaAwEFfyMAQRBrIgMkAEGAgICAeCECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRMgACgCACIFQYCAgIB4cyAFQQBOG0EBaw4TAAECAwQFBgcICQoLDA0ODxAREhMLQYGAgIB4IQIMEgtBgoCAgHghAgwRC0GDgICAeCECDBALQYSAgIB4IQIMDwtBhYCAgHghAgwOC0GGgICAeCECDA0LQYeAgIB4IQIMDAtBiICAgHghAgwLC0GJgICAeCECDAoLQQwQkAEiBEUNCiAAKAIEIAQQrQ5BioCAgHghAgwJC0GLgICAeCECDAgLQYyAgIB4IQIMBwtBjYCAgHghAgwGC0GOgICAeCECDAULQY+AgIB4IQIMBAtBkICAgHghAgwDC0GRgICAeCECDAILQZKAgIB4IQIMAQsgA0EEaiAAKAIEIAAoAggQmg0gAygCDCEGIAMoAgghBCADKAIEIQILIAEgBjYCCCABIAQ2AgQgASACNgIAIANBEGokAA8LQbjwyQBBAToAAAAL5wIBA38jAEEgayIDJAACQEHYARCQASICBEBB5AAQkAEiBEUNASAEIAEQ5AUgAyABKAJoIAEoAmwQqA4gA0EQaiABKAJ0IAEoAngQqA4gAkF+NgJIIAJBATsBRCACQQU2AkAgAkG88ccANgI8IAJBfzYCOCACQgQ3AzAgAkIBNwMoIAIgBDYCJCACQQE2AiAgAkF+NgIAIAJBfjYCkAEgAkEBOwGMASACQQY2AogBIAJB3ZrJADYChAEgAkKAgICAcDcCfCACQoCAgIDAADcCdCACIAMpAwA3A2ggAiADKAIINgJwIAJCgICAgHA3AsQBIAJCgICAgMAANwK8ASACQQE7AdQBIAJBBjYC0AEgAkHB8ccANgLMASACIAMoAhg2ArgBIAIgAykDEDcDsAEgAEEDNgIIIAAgAjYCBCAAQQM2AgAgARD6DSADQSBqJAAPC0G48MkAQQE6AAAAC0G48MkAQQE6AAAAC58CAQZ/AkACQCABKAIQIgUgASgCACICKAIQIgNJBEAgBUEUbCACKAIMIgVqIgYtAAAiAkUEQAJAIAMgBigCBCIHSwRAIAEoAgghBCABKAIEIQNBEEEIIAUgB0EUbGoiAS0AABsgAWooAgAiASAGQRBBCCACG2ooAgAiAkkNBSACRQ0EIAIgBEkNASACIARHDQUMBAsgByADQeSMyAAQhRMACyACIANqLAAAQb9/Sg0CDAMLQaCryQBBKEHUjMgAEK8UAAsgBSADQeSMyAAQhRMACwJAIAFFDQAgASAETwRAIAEgBEYNAQwCCyABIANqLAAAQb9/TA0BCyAAIAEgAms2AgQgACACIANqNgIADwsgAyAEIAIgAUH0jMgAEP0UAAuaAwEFfyMAQRBrIgMkAEGAgICAeCECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRMgACgCACIFQYCAgIB4cyAFQQBOG0EBaw4TAAECAwQFBgcICQoLDA0ODxAREhMLQYGAgIB4IQIMEgtBgoCAgHghAgwRC0GDgICAeCECDBALQYSAgIB4IQIMDwtBhYCAgHghAgwOC0GGgICAeCECDA0LQYeAgIB4IQIMDAtBiICAgHghAgwLC0GJgICAeCECDAoLQQwQkAEiBEUNCiAAKAIEIAQQsA5BioCAgHghAgwJC0GLgICAeCECDAgLQYyAgIB4IQIMBwtBjYCAgHghAgwGC0GOgICAeCECDAULQY+AgIB4IQIMBAtBkICAgHghAgwDC0GRgICAeCECDAILQZKAgIB4IQIMAQsgA0EEaiAAKAIEIAAoAggQnQ0gAygCDCEGIAMoAgghBCADKAIEIQILIAEgBjYCCCABIAQ2AgQgASACNgIAIANBEGokAA8LQbjwyQBBAToAAAALlgICBH8BfiMAQUBqIgMkAAJAAkACQCACKAIAQQFxBEAgAyACKQMoIgc3AxggAyACKQMgNwMQIAMgAikDGDcDCCADIAIpAxA3AwAgB6dBAXEEQCADIAOtQoCAgICQGoQ3AzggA0EsakHAlMIAIANBOGoQuAwgASgChAIiAkEASgRAIAEoAogCIgZBBGsoAgAiBEF4cSEFIAVBBEEIIARBA3EiBBsgAmpJDQMgBEEARyAFIAJBJ2pLcQ0EIAYQvAULIAFBhAJqIgIgAygCNDYCCCACIAMpAiw3AgAMBAsMAwsMAgtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALIAAgAUGQAvwKAAAgA0FAayQAC6YCAQV/IwBBMGsiAiQAAkACQAJAIAAoAgQiBSAAKAIAIgAoAhwiA0kEQCAAKAIYIAVB8ABsaiIEKAJYIgMgAEGgAmooAgAiBk8NASAEKAJcIgQgAEGcAmooAgAgA0EkbGoiA0EgaigCACIGTw0CIANBHGooAgAgBEHUAGxqIgMoAgBBgoCAgHhHDQMgAiADKQIINwIQIAJBCGogAEEIaiAFENEQIAIgAikDCDcCGCACIAJBGGqtQoCAgIDQAYQ3AyggAiACQRBqrUKAgICA0AGENwMgIAEoAgAgASgCBEGchcAAIAJBIGoQsQkgAkEwaiQADwsgBSADQeT+yAAQhRMACyADIAZBzLvEABCFEwALIAQgBkHMu8QAEIUTAAtBzLvEABCdFQALpQIBA38jAEHwAGsiAyQAQcgAEJABIgIEQAJAAkACQAJAAkACQEEDIAEoAgAiBEECayAEQQFNG0EBaw4DAQIDAAsgA0EMaiABQeQA/AoAAAwDCyADQRBqIAFBBGoQoAcgA0EDNgIMDAILQeQAEJABIgRFDQIgASgCBCAEELgPIANBBDYCDCADIAQ2AhAMAQsgA0EMaiABEOQFC0HkABCQASIERQ0AIAQgA0EMakHkAPwKAAAgAkGBAjsBRCACQQM2AkAgAkHamskANgI8IAJBfzYCOCACQgQ3AzAgAkIBNwMoIAIgBDYCJCACQQE2AiAgAkF+NgIAIABBATYCCCAAIAI2AgQgAEEBNgIAIAEQwAcgA0HwAGokAA8LC0G48MkAQQE6AAAAC+wBAQh/QQEhAwJAIAAoAhRBAWoiAiAAKAIQIgUgAiAFSRsiAkUNACAAKAIMIQAgAkEDcSEFAkAgAkEESQRADAELIAJBfHEhAgNAQQBBAUECQQMgBEEEaiAALQAAQQpGIgYbIABBAWotAABBCkYiBxsgAEECai0AAEEKRiIIGyAAQQNqLQAAQQpGIgkbIQQgAyAGaiAHaiAIaiAJaiEDIABBBGohACACQQRrIgINAAsgBUUNAQsDQEEAIARBAWogAC0AAEEKRiICGyEEIABBAWohACACIANqIQMgBUEBayIFDQALCyABIAMgBBDHEwucAgECfyMAQRBrIgUkAAJAIAJBAEdBACAEG0UEQCAAQQA2AgggAEKAgICAwAA3AgAMAQsgBEEBRwRAAkAgAkEBRgRAIAEoAgAhBiAEQQJ0IgEQkAEiAkUNASABBEAgAiADIAH8CgAACyAFIAQ2AgwgBSACNgIIIAUgBDYCBCAFQQRqIAYQ0QogACAFKAIMNgIIIAAgBSkCBDcCAAwDCyAAIAEgAiADIAQQ/AsMAgtBBBCnFAALIAMoAgAhBiACQQJ0IgMQkAEiBARAIAMEQCAEIAEgA/wKAAALIAUgAjYCDCAFIAQ2AgggBSACNgIEIAVBBGogBhDRCiAAIAUoAgw2AgggACAFKQIENwIADAELQQQQpxQACyAFQRBqJAALnwIBB38gACgCBCEDAkACQAJAAkAgACgCCCIFBEAgAyEBA0ACQCABQfAAaigCACIEQX9GDQAgBEUNACABQfQAaigCACIHQQRrKAIAIgJBeHEhBiAGQQRBCCACQQNxIgIbIARqSQ0DIAJBAEcgBiAEQSdqS3ENBCAHELwFCyABEKUBIAFBgAFqIQEgBUEBayIFDQALCyAAKAIAIgEEQCADQQRrKAIAIgBBeHEhAiACIAFBB3QiAUEEQQggAEEDcSIAG3JJDQMgAEEARyACIAFBJ3JLcQ0EIAMQvAULDwtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALQdCcyQBBLkGAnckAEK8UAAtBkJ3JAEEuQcCdyQAQrxQAC+oCAQJ/IwBBMGsiAiQAIAEoAhAhAyABQX82AhACQCADQX9HBEAgAiABKQMINwMIIAIgASkDADcDACACIAEpAhQ3AhQgAiABKQIcNwIcIAIgASkCJDcCJCACIAEoAiw2AiwgAiADNgIQAkACQAJAAkACQAJAQQUgA0GAgICAeHMgA0EAThtBAWsOBQECAwQFAAsgAEGSgICAeDYCAAwGCyAAIAItAAA6AAQgAEGAgICAeDYCAAwFCwJAAkACQCACKAIAQQFrDgIBAgALIAAgAikDCDcDCCAAQYSAgIB4NgIADAYLIAAgAikDCDcDCCAAQYiAgIB4NgIADAULIAAgAisDCDkDCCAAQYqAgIB4NgIADAQLIABBjICAgHg2AgAgACABKQIANwIEIAAgASgCCDYCDAwDCyAAIAIQuQUMAgsgACACEL4EDAELQdSKxwBBEBDiEiEBIABBfzYCACAAIAE2AgQLIAJBMGokAAubAgEEfyMAQTBrIgMkACACKAIYIAIoAhQhAgJ/IAEtAAFFBEAQhBUhBUEADAELEIUVIQVBAQshBCADIAE2AiQgA0EANgIcIAMgBTYCGCADIAQ2AhRByABsIQECQAJAAkADQCABRQ0BIAMgAkE4ajYCKCADIAI2AiwgAUHIAGshASACQcgAaiECIANBCGogA0EUaiADQShqIANBLGoQ7wggAygCCEEBRw0ACyADKAIMIQIgAygCGCIBQYQBTwRAIAEQ0xILQQEhASADKAIcRQ0CIAMoAiAiBEGDAUsNAQwCC0EAIQEgAygCGCECIAMoAhxFDQEgAygCICIEQYQBSQ0BCyAEENMSCyAAIAI2AgQgACABNgIAIANBMGokAAuHAgEDfyMAQSBrIgIkACABKAIEIQMgASgCACEBIAAoAgAiAC8BDCEEAn8CQCAAKAIAQX9HBEAgBEEBcUUNASACIAA2AgQgAiAAQQ5qNgIcIAIgAkEcaq1CgICAgKARhDcDECACIAJBBGqtQoCAgICQAoQ3AwggASADQcWCwAAgAkEIahCxCQwCCyAEQQFxBEAgAiAAQQ5qNgIcIAIgAkEcaq1CgICAgKARhDcDCCABIANBnILAACACQQhqELEJDAILIAFB7s7FAEEOIAMoAgwRAAAMAQsgAiAANgIcIAIgAkEcaq1CgICAgJAChDcDCCABIANBz63AACACQQhqELEJCyACQSBqJAALwwICBn8BfiMAQSBrIgIkAEEBIQUCQCABKAIAIgNByZLJAEEXIAEoAgQiBygCDCIEEQAADQACQCABKAIIIgZBgICABHFFBEAgA0GX48IAQQMgBBEAAA0CIANBmZDJAEEFIAQRAAANAiADQaayyABBAiAEEQAADQIgACABEL8IRQ0BDAILIANBmuPCAEEDIAQRAAANASACQQE6AA8gAiAHNgIEIAIgAzYCACACQaDrwgA2AhQgAiABKQIIIgg3AhggAiACQQ9qNgIIIAIgAjYCECACQZmQyQBBBRD9CA0BIAJBprLIAEECEP0IDQEgACACQRBqEL8IDQEgAkGkssgAQQIQ/QgNASAIpyEGCyAGQYCAgARxRQRAIANB7erCAEECIAQRAAAhBQwBCyADQaGyyABBASAEEQAAIQULIAJBIGokACAFC7UCAQR/IwBBMGsiAiQAQQEhAwJAIAAoAgAiACgCAEEBRgRAIAIgAEEEajYCDCABKAIAIgBB55HJAEEEIAEoAgQiBSgCDCIEEQAADQECQCABLQAKQYABcUUEQCAAQbTPxQBBASAEEQAADQMgAkEMaiABEJ4QDQMgASgCACEAIAEoAgQoAgwhBAwBCyAAQZ3jwgBBAiAEEQAADQIgAkEBOgAfIAIgBTYCFCACIAA2AhAgAkGg68IANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahCeEA0CIAIoAiBBpLLIAEECIAIoAiQoAgwRAAANAgsgAEGIkMkAQQEgBBEAACEDDAELIAEoAgBB65HJAEEEIAEoAgQoAgwRAAAhAwsgAkEwaiQAIAMLmgIBBH8jAEEgayIDJAACQCABLQCRAUECRw0AQQEhAgJAIAEoAgBBAUYEQCABKAIIIgUgASgCBCIETQ0CIAEgBEEBaiICNgIEIAIgBU8NASABIARBAmo2AgQLIAFBADoAkQEgA0EYaiABEJQKIAMoAhggAygCHCIBQQI6AJEBQQFxDQADQCABKAIAQQFGBEAgASgCBCICIAEoAghPDQIgASACQQFqNgIECwJAIAEtAJEBIgRFBEAgA0EIaiABEJQKIAMoAgwhASADKAIIIQIMAQsgAUEAOgCRASADQRBqIAEQlAogAygCECECIAMoAhQiASAEOgCRAQsgAkEBRw0ACwtBACECCyAAIAE2AgQgACACNgIAIANBIGokAAu7AgEDf0HAARCQASICBEACQEGwARCQASIBRQ0AIAFBADoArAEgAUEAOwGqASABQf8BOgCkASABQo+AgIBwNwJsIAFB1OPIADYCaCABQX82AmQgAUF+NgJYIAFBfDYCECABQX42AgBB4AAQkAEiA0UNACADQX42AlAgAyABNgIEIANBAzYCAEHIARCQASIBRQ0AIAFBfjYCuAEgASADNgIEIAFBEDYCACACQX42AlAgAiABNgIEIAJBBjYCACAAQQ82AsABIABB1OPIADYCvAEgAEF/NgK4ASAAQQI2AgwgACACNgIIIABCioCAgCA3AwAgAkF+NgKwASACQYSAgIB4NgKQASACQQA2AogBIAJC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ASgCKARAIANBGGogASAFELgFIAMoAhgiBA0BCwJAIAEoAiAiAkUNACABKAIkIQYDQCACIAZGDQEgASACQQxqIgQ2AiAgASACQQRqKAIAIgc2AiggASAHIAJBCGooAgBByABsajYCLCADQRBqIAEgBRC4BSAEIQIgAygCECIERQ0ACyADKAIUIQIMAgtBACEEIAFBADYCKCABQTBqIQICQCABKAIwBEAgA0EIaiABIAIQuAUgAygCCCIBDQELIAJBADYCAAwCCyADKAIMIQIgASEEDAELIAMoAhwhAgsgACACNgIEIAAgBDYCACADQSBqJAALtgIBBX8jAEEQayICJABBASEFAkAgASgCACIDQbb9xgBBECABKAIEIgYoAgwiBBEAAA0AIAEtAApBgAFxRQRAIANBl+PCAEEDIAQRAAANASADQcqjyQBBBCAEEQAADQEgA0GmssgAQQIgBBEAAA0BIANBjf7GAEHdkckAIAAtAAAiABtBDEEFIAAbIAQRAAANASADQe3qwgBBAiAEEQAAIQUMAQsgA0Ga48IAQQMgBBEAAA0AIAIgBjYCBCACIAM2AgAgAkEBOgAPIAIgAkEPajYCCCACQcqjyQBBBBD9CA0AIAJBprLIAEECEP0IDQAgAkGN/sYAQd2RyQAgAC0AACIAG0EMQQUgABsQ/QgNACACQaSyyABBAhD9CA0AIANBobLIAEEBIAQRAAAhBQsgAkEQaiQAIAUL6wEBA38CQAJAAkACQAJAAkAgAS0AAEEBaw4GAAUBBQUCBQtBASECAkAgASgCCCIDRSIEDQAgASgCBCEBIAMQkAEiAkUNAyAEDQAgAiABIAP8CgAACyAAIAM2AgggACACNgIEIABBAToAAA8LAkAgASgCCCICRQRAQQEhAQwBCyABKAIEIQMgAhCQASIBRQ0DIAJFDQAgASADIAL8CgAACyAAIAI2AgggACABNgIEIABBAzoAAA8LIABBBjoAAA8LQbjwyQBBAToAAAALQbjwyQBBAToAAAALIAAgASgCCDYCCCAAIAEpAgA3AgALoAIBBX8jAEEwayICJAAgAkEYaiABQZytyABBAxCKBgJAIAIoAhgiBEF+RwRAIAIoAiAhBSACKAIcIQYgAiACKAIsNgIQIAIgAikCJDcDCCABKAKEAiIBKAIIIQMgASgCACADRgRAIAEQvRIL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QQE6AAAACyAAIAQpAAk3AAkgACAEKQARNwARIAAgBCgAGDYAGCAAIAEpAgg3AkAgACABKQIANwI4IABBADoATCAAIAU2AkggAEECOgAgIAAgAjYCHCAAQQ46AAggAEEDOgAAIARBMGokAAubAgEDfyMAQTBrIgQkACAEIAIpABg3ACggBCACKQAQNwAgIAQgAikACDcAGCAEIAIpAAA3ABACQEEwEJABIgIEQCACQQg6AAAgAiAEKQAJNwABIAIgBCkAETcACSACIAQpABk3ABEgAiAEKQAhNwAZIAIgBCkAKDcAICABKAIQIgUoAgAhBiAFIAZBAWo2AgAgBCADKQAANwAMIAQgAykACDcAFCAGQQBODQEAC0G48MkAQQE6AAAACyAAIAQpAAk3AAkgACAEKQARNwARIAAgBCgAGDYAGCAAIAEpAgg3AkAgACABKQIANwI4IABBADoATCAAIAU2AkggAEECOgAgIAAgAjYCHCAAQQ46AAggAEEDOgAAIARBMGokAAubAgEDfyMAQTBrIgQkACAEIAIpABg3ACggBCACKQAQNwAgIAQgAikACDcAGCAEIAIpAAA3ABACQEEwEJABIgIEQCACQQk6AAAgAiAEKQAJNwABIAIgBCkAETcACSACIAQpABk3ABEgAiAEKQAhNwAZIAIgBCkAKDcAICABKAIQIgUoAgAhBiAFIAZBAWo2AgAgBCADKQAANwAMIAQgAykACDcAFCAGQQBODQEAC0G48MkAQQE6AAAACyAAIAQpAAk3AAkgACAEKQARNwARIAAgBCgAGDYAGCAAIAEpAgg3AkAgACABKQIANwI4IABBADoATCAAIAU2AkggAEECOgAgIAAgAjYCHCAAQQ46AAggAEEDOgAAIARBMGokAAubAgEDfyMAQTBrIgQkACAEIAIpABg3ACggBCACKQAQNwAgIAQgAikACDcAGCAEIAIpAAA3ABACQEEwEJABIgIEQCACQQo6AAAgAiAEKQAJNwABIAIgBCkAETcACSACIAQpABk3ABEgAiAEKQAhNwAZIAIgBCkAKDcAICABKAIQIgUoAgAhBiAFIAZBAWo2AgAgBCADKQAANwAMIAQgAykACDcAFCAGQQBODQEAC0G48MkAQQE6AAAACyAAIAQpAAk3AAkgACAEKQARNwARIAAgBCgAGDYAGCAAIAEpAgg3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gIAgcUUEQCACIAA2AgwgAiAENwMYIAIgAkEMaq1CgICAgLAlhDcDECABKAIAIAEoAgRB4s3GACACQRBqELEJDAILIAIgADYCDCACIAQ3AxggAiACQQxqrUKAgICAwCWENwMQIAEoAgAgASgCBEHqzcYAIAJBEGoQsQkMAQsgAiAANgIMIAIgBDcDGCACIAJBDGqtQoCAgIDAJYQ3AxAgASgCACABKAIEQfLNxgAgAkEQahCxCQsgAkEgaiQAC/8BAQN/IwBBEGsiBCQAIAEoAgQhAwJAAkACQAJAIAACfyABKAIAQQFGBEAgAigCmAIiBSADTQ0CIAEoAggiBSACKAKUAiADQSRsaiICQSBqKAIAIgNPDQMgAkEcaigCACAFQdQAbGoiAigCAEGAgICAeEcNBCABKAIMIgEgAigCJCIDTw0FIAIoAiAgAUHcAGxqIgIoAiQhASACKAIgDAELIARBCGogAiADENAQIAQoAgwhASAEKAIICzYCACAAIAE2AgQgBEEQaiQADwsgAyAFQZS+xAAQhRMACyAFIANBlL7EABCFEwALQZS+xAAQnRUACyABIANBpL7EABCFEwALkQIBA38jAEEQayICJAACQCABKAIAIgNBf0YNAAJAAkACQAJ/AkACQAJAAkACQEEVIANBgICAgHhzIANBAE4bQQxrDgQAAQIDCQsgASgCCCEEIAEoAgwMBAsgASgCBCEEIAEoAggMAwsgAkEEaiABKAIIIAEoAgwQlwggAigCBEUNAQwGCyACQQRqIAEoAgQgASgCCBCXCCACKAIEDQULIAIoAgghBCACKAIMCyIDQQRrDgIAAQMLIAQoAABB9PLBqwZGDQEMAgtB4+PIACAEIAMQjxMNAQsgACABKQMYNwMYIAAgASkDEDcDECAAIAEpAwg3AwggACABKQMANwMAIAEhAAsgAEF/NgIAIAJBEGokAAv1AQEEfyMAQSBrIgIkACABKAIEIQMgASgCACEBAn8CQAJAAkAgACgCACIAKAIwIgRB9////wdqIgVBACAEIAVPG0EBaw4CAQIACyACIAA2AgwgAiACQQxqrUKAgICAwCyENwMQIAEgA0G/mMAAIAJBEGoQsQkMAgsgAiAANgIMIAIgAkEMaq1CgICAgNAshDcDECABIANB6afAACACQRBqELEJDAELIAIgADYCCCACIABB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IAFBBGogAyAAKAIEIAJBBEEgEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtvAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQRBDBClESABKAIEQQFGBEAgASgCCCABKAIMIQUQpxQACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALcAEFfyMAQRBrIgEkAEEEIAAoAgAiA0EBdCICIAJBBE0bIQIgAUEEaiADIAAoAgQgAkEIQagCEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtvAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQRBHBClESABKAIEQQFGBEAgASgCCCABKAIMIQUQpxQACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALbwEFfyMAQRBrIgEkAEEEIAAoAgAiA0EBdCICIAJBBE0bIQIgAUEEaiADIAAoAgQgAkEEQTwQpREgASgCBEEBRgRAIAEoAgggASgCDCEFEKcUAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQAC28BBX8jAEEQayIBJABBCCAAKAIAIgNBAXQiAiACQQhNGyECIAFBBGogAyAAKAIEIAJBAUEBEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAttACMAQRBrIgAkACAAIAE2AgAgACACNgIEAkAgAkEGRgRAIAEoAABB0+jJywZzIAFBBGovAABB7s4Bc3JFDQELIAAgAK1CgICAgNABhDcDCEGDx8EAIABBCGpB+MPFABC/EwALIABBEGokAEEHC3ABBX8jAEEQayIBJABBBCAAKAIAIgNBAXQiAiACQQRNGyECIAFBBGogAyAAKAIEIAJBCEHgABClESABKAIEQQFGBEAgASgCCCABKAIMIQUQpxQACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALcAEFfyMAQRBrIgEkAEEEIAAoAgAiA0EBdCICIAJBBE0bIQIgAUEEaiADIAAoAgQgAkEIQegAEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtwAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQhB8AAQpREgASgCBEEBRgRAIAEoAgggASgCDCEFEKcUAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQAC28BBX8jAEEQayIBJABBBCAAKAIAIgNBAXQiAiACQQRNGyECIAFBBGogAyAAKAIEIAJBBEEwEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtwAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQhByAAQpREgASgCBEEBRgRAIAEoAgggASgCDCEFEKcUAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQAC3ABBX8jAEEQayIBJABBBCAAKAIAIgNBAXQiAiACQQRNGyECIAFBBGogAyAAKAIEIAJBCEHQABClESABKAIEQQFGBEAgASgCCCABKAIMIQUQpxQACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALcAEFfyMAQRBrIgEkAEEEIAAoAgAiA0EBdCICIAJBBE0bIQIgAUEEaiADIAAoAgQgAkEEQcwAEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtwAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQRB2AAQpREgASgCBEEBRgRAIAEoAgggASgCDCEFEKcUAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQAC28BBX8jAEEQayIBJABBBCAAKAIAIgNBAXQiAiACQQRNGyECIAFBBGogAyAAKAIEIAJBCEE4EKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtwAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQhB2AAQpREgASgCBEEBRgRAIAEoAgggASgCDCEFEKcUAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQAC3ABBX8jAEEQayIBJABBBCAAKAIAIgNBAXQiAiACQQRNGyECIAFBBGogAyAAKAIEIAJBCEHIAhClESABKAIEQQFGBEAgASgCCCABKAIMIQUQpxQACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALcAEFfyMAQRBrIgEkAEEEIAAoAgAiA0EBdCICIAJBBE0bIQIgAUEEaiADIAAoAgQgAkEIQcgBEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtvAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQhBIBClESABKAIEQQFGBEAgASgCCCABKAIMIQUQpxQACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALfQMBfwF+AXwjAEEQayIDJAACQAJAAkACQCAAKAIAQQFrDgIBAgALIAArAwghBSADQQM6AAAgAyAFOQMIDAILIAApAwghBCADQQE6AAAgAyAENwMIDAELIAApAwghBCADQQI6AAAgAyAENwMICyADIAEgAhDUESADQRBqJAALaQEDfyMAQRBrIgIkAAJAIAEoAgAiBCgCAEEBRw0AIAQtAARBA0cNACACQQhqIARBCGooAgAiASgCACABKAIEKAIYEQIAIAIoAgwhASACKAIIIQMLIAAgATYCBCAAIAM2AgAgAkEQaiQAC28BBX8jAEEQayIBJABBBCAAKAIAIgNBAXQiAiACQQRNGyECIAFBBGogAyAAKAIEIAJBCEEQEKURIAEoAgRBAUYEQCABKAIIIAEoAgwhBRCnFAALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtwAQV/IwBBEGsiASQAQQQgACgCACIDQQF0IgIgAkEETRshAiABQQRqIAMgACgCBCACQQRB4AAQpREgASgCBEEBRgRAIAEoAgggASgCDCEFEKcUAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQAC28BBX8jAEEQayIBJABBBCAAKAIAIgNBAXQiAiAC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f0EBIQICQCABQQFxBEACQCABQQF2IgFFIgMNACABEJABIgJFDQIgAw0AIAJBtZTCACAB/AoAAAsgACABNgIIIAAgAjYCBCAAIAE2AgAPCyAAQbWUwgAgARC4DA8LQQEQpxQAC2ABAn9BASEDAkAgAkEBcQRAAkAgAkEBdiICRSIEDQAgAhCQASIDRQ0CIAQNACADIAEgAvwKAAALIAAgAjYCCCAAIAM2AgQgACACNgIADwsgACABIAIQuAwPC0EBEKcUAAtiAQF+IwBBEGsiACQAAkACQCABKQMAIgJCBVMNACACQv////8Pg0IFUg0AIAEoAghBf0YNAQsgAEKI4MaA0AE3AwhBz63AACAAQQhqQZDgxgAQvxMACyAAQRBqJAAgAUEMagtiAQF+IwBBEGsiACQAAkACQCABKQMAIgJCBVMNACACQv////8Pg0IFUg0AIAEoAghBf0cNAQsgAEKM38aA0AE3AwhBz63AACAAQQhqQZTfxgAQvxMACyAAQRBqJAAgAUEQagtmAQJ/QQEhAgJAIAFBAXEEQAJAIAFBAXYiAUUiAw0AIAEQkAEiAkUNAiADDQAgAkHPrcAAIAH8CgAACyAAIAE2AgggACACNgIEIAAgATYCAA8LIABBz63AACABELgMDwtBARCnFAALXAEBfyMAQSBrIgMkACADIAI2AgwgAyABNgIIIAMgADYCBCADIANBCGqtQoCAgICQA4Q3AxggAyADQQRqrUKAgICAgAGENwMQQe2OwAAgA0EQahDcESADQSBqJAALXAEDfyAAIAEgACgCDCAAKAIEIgJrQbABbiIEIAEgBEkbIgNBsAFsIAJqNgIEIAMEQCADIQADQCACEJcEIAJBsAFqIQIgAEEBayIADQALCyABIANrQQAgASAESxsLfAEBfwJAAkAgAEGEAU8EQCAA0G8mAUHU8MkAKAIADQJB5PDJACgCACIBIABLDQEgACABayIAQdzwyQAoAgBPDQFBxOzJACgCACAAQQJ0akHg8MkAKAIANgIAQeDwyQAgADYCAEHU8MkAQQA2AgALDwsAC0HkvMkAENITAAtnAQJ/AkAgAiABKAIcIgNJBEAgASgCGCACQfAAbGoiAigCXCEDIAIoAlghAiABIAEoAgAiBEEBajYCACAEQQBODQEACyACIANB5P7IABCFEwALIAAgAzYCCCAA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QS5BgJ3JABCvFAALQZCdyQBBLkHAnckAEK8UAAtjAQF/IwBBEGsiAiQAIAIgAEEQajYCDCABQYP3xQBBBUGI8sUAQQMgAEHnAUGQxMYAQQUgAEEcakHoAUHu98UAQQggAEEoakHoAUH298UAQREgAkEMakHpARC7ECACQRBqJAALZQEBfyMAQRBrIgIkACACIABBNGo2AgwgAUHd7sUAQQVB4u7FAEEKIABB0ABqQdsBQYDpxQBBByAAQcQAakHqAUHs7sUAQQggAEHdAUH07sUAQQ0gAkEMakHrARC7ECACQRBqJAALUwEBfiMAQRBrIgAkACABKQMAIgJCBVkgAkL/////D4NCBlFxRQRAIABC6N3GgNABNwMIQc+twAAgAEEIakHw3cYAEL8TAAsgAEEQaiQAIAFBGGoLUwEBfiMAQRBrIgAkACABKQMAIgJCBVkgAkL/////D4NCBlFxRQRAIABC9NrGgNABNwMIQc+twAAgAEEIakH82sYAEL8TAAsgAEEQaiQAIAFBDGoLUgEBfyMAQSBrIgMkACADIAI2AgwgAyABNgIIIAMgA0EIaq1CgICAgJADhDcDGCADIACtQoCAgICgA4Q3AxBBjI/AACADQRBqENwRIANBIGokAAtqAEHgABCQASIBRQRAQbjwyQBBAToAAAALIAFBADoAXCABQQA2AlggAUEAOgBUIAFBggQ7ARwgAUEFNgIYIAFBj/DHADYCFCABQX82AhAgAUECNgIAIABBATYCCCAAIAE2AgQgAEEBNgIAC1IBAX8jAEEgayIDJAAgAyACNgIMIAMgATYCCCADIANBCGqtQoCAgICQA4Q3AxggAyAArUKAgICAoAOENwMQQauPwAAgA0EQahDKDyADQSBqJAALagEBfyMAQbABayICJAAgAiABKAIAIAEoAgQoAgwRAgACQCACKAJwQX5HBEAgACACQawB/AoAACAAQQE6AKwBIAAgAi0ArwE6AK8BIAAgAi8ArQE7AK0BDAELIABBfjYCcAsgAkGwAWokAAtpAQJ/IwBBEGsiAiQAIAJCADcCCCACQoCAgICAATcCACABKAJIIQMgAhCqEiACKAIEIAFB0AD8CgAAIAAgAikCADcCACACQQE2AgggAiADIAIoAgxqNgIMIAAgAikCCDcCCCACQRBqJAALWQEBfwJAAkAgACgCACAA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ASABQX42ApABIAFBADsBjAEgAUEFNgKIASABIAQ2AoQBIAFBBTYCgAEgAUIENwN4IAFCATcDcCABIAc2AmwgAUEBNgJoIAFBfjYCSCABQQE7AUQgAUEENgJAIAEgCDYCPCABQoCAgIDAADcCNCABQoCAgIDAADcCLCAAQQM2AgggACABNgIEIABBAzYCACAFIAUoAgAiAEEBazYCACAAQQFGBEAgAygCABAwCyACQYABaiQADAQLQQEQpxQACwwDCwALQQEQpxQACyADQRBqJAAPC0G48MkAQQE6AAAACy4AAn8gACkDAEIBUQRAQQEgACkDCCABUg0BGgsgACABNwMIIABCATcDAEH/AQsLOQAgACgCACIAKAIAQX9HBEAgASAAKAIEIAAoAggQnQQPCyABKAIAQZ/PxQBBDyABKAIEKAIMEQAACy8AAkAgA2lBAUcNACABQYCAgIB4IANrSw0AIAAgASADIAIQrQYiAEUNACAADwsACzsBAX9ByAEQkAEiAkUEQEG48MkAQQE6AAAACyACIAFByAH8CgAAIABBfjYCUCAAIAI2AgQgAEEGNgIACzsBAX9BsAEQkAEiAkUEQEG48MkAQQE6AAAACyACIAFBsAH8CgAAIABBfjYCUCAAIAI2AgQgAEEDNgIACy4BAn8CQCAAKAIwIgJBAkYNACACQQFxDQAgACgCQEEIaiAAKAI0EIQJIQELIAELPAEBf0HgABCQASICRQRAQbjwyQBBAToAAAALIAIgAUHgAPwKAAAgAEF+NgK4ASAAIAI2AgQgAEEGNgIACy0BAX8jAEEQayIBJAAgASABQQ9qrUKAgICAkASENwMAQc+twAAgASAAEL8TAAswAQF/IwBBEGsiACQAIAAgAEEPaq1CgICAgMAHhDcDAEHPrcAAIABBlIzGABC/EwALKwBBACEAIAJBBUYEfyABKAAAQeXawaMHcyABQQRqLQAAQfkAc3IFQQELRQsvAQJ/IAFBDGwiAhCQASIDRQRAQQQQpxQACyAAQQA2AgggACADNgIEIAAgATYCAAswACAAIAEgAhCiCiABKAIAIgIoAgAhACACIABBAWs2AgAgAEEBRgRAIAEoAgAQMAsLMAAgACABIAIQ6gggASgCACICKAIAIQAgAiAAQQFrNgIAIABBAUYEQCABKAIAEDALCzAAIAAgASACEKMKIAEoAgAiAigCACEAIAIgAEEBazYCACAAQQFGBEAgASgCABAwCwswACAAIAEgAhC/CSABKAIAIgIoAgAhACACIABBAWs2AgAgAEEBRgRAIAEoAgAQMAsLMAAgACABIAIQtAkgASgCACICKAIAIQAgAiAAQQFrNgIAIABBAUYEQCABKAIAEDALCzAAIAAgASACEMAJIAEoAgAiAigCACEAIAIgAEEBazYCACAAQQFGBEAgASgCABAwCwswACAAIAEgAhCqCyABKAIAIgIoAgAhACACIABBAWs2AgAgAEEBRgRAIAEoAgAQMAsLMAAgACABIAIQtQkgASgCACICKAIAIQAgAiAAQQFrNgIAIABBAUYEQCABKAIAEDALCzAAIAAgASACEMEJIAEoAgAiAigCACEAIAIgAEEBazYCACAAQQFGBEAgASgCABAwCwswACAAIAEgAhC2CSABKAIAIgIoAgAhACACIABBAWs2AgAgAEEBRgRAIAEoAgAQMAsLMAAgACABIAIQtwkgASgCACICKAIAIQAgAiAAQQFrNgIAIABBAUYEQCABKAIAEDALCzAAIAAgASACEM8HIAEoAgAiAigCACEAIAIgAEEBazYCACAAQQFGBEAgASgCABAwCwswACAAIAEgAhDQByABKAIAIgIoAgAhACACIABBAWs2AgAgAEEBRgRAIAEoAgAQMAsLMAAgACABIAIQwgkgASgCACICKAIAIQAgAiAAQQFrNgIAIABBAUYEQCABKAIAEDALCzAAIAAgASACEMMJIAEoAgAiAigCACEAIAIgAEEBazYCACAAQQFGBEAgASgCABAwCwswACAAIAEgAhDsCCABKAIAIgIoAgAhACACIABBAWs2AgAgAEEBRgRAIAEoAgAQMAsLMgEBfyABKAIEIgIgASgCDEcEQCABIAJBsAFqNgIEIAAgAkGwAfwKAAAPCyAAQX42AnALKQAgAQRAA0AgABCBBSAAQcgBahCHBCAAQegBaiEAIAFBAWsiAQ0ACwsLKQEBfyMAQRBrIgMkACADIAAQ6wwgAyABIAIQ1BEgABCICCADQRBqJAALn5sBAjp/CX4jAEEQayI7JAAgASEpIAIhHyMAQbAIayIEJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACIgBEAgAEEIayIqKAIAQQFqIQAgKiAANgIAIABFDQEgICgCACIAQX9HBEAgICAAQQFqNgIAQQAhAEGA7MkAKAIADQNBiOzJACgCACExQYjsyQBBCDYCAEGU7MkAKAIAITJBkOzJACgCACEzQZDsyQBCgICAgIABNwMAQZzsyQAoAgAhNEGY7MkAKAIAITVBmOzJAEKAgICAcDcDAEGg7MkAKAIAITZBoOzJAEHs8sYANgIAIAQgMTYCaCAEQYzsyQAoAgAiPDYCbCAEIDM2AnAgBCAyNgJ0IAQgNTYCeCAEIDQ2AnwgBCA2NgKAAUGk7MkAKAIAITdBpOzJAEEDNgIAIAQgNzYChAEgBEGwA2oiAiABIB8Q5gEgBCgCsAMhBiAEKALAAyIBQX5GBEAgBCAGNgLYBCAEIARB2ARqIgCtQoCAgIDwA4Q3A9AFIARB7ANqQdeXwAAgBEHQBWoQuAwgBEF/NgLgAyAEQX82AsADIAAQ4AsgBEGIAWogAkHIAPwKAAAMEAsgBCAEKAK8AzYC3AEgBCAEKQK0AzcC1AEgBEHQAWoiAEEUaiAEQbADaiICQRRqQdwA/AoAACAEIAE2AuABIAQgBjYC0AEgAiAAICAoAhwQoAIgBCgCsANBAUYEQCAEIAQpA/ADNwOoAyAEIAQpA+gDIkE3A6ADIAQgBCkD4AMiQjcDmAMgBCAEKQPYAyJDNwOQAyAEIAQpA9ADIj43A4gDIAQgBCkDyAMiQDcDgAMgBCAEKQPAAyI/NwP4AiAEIAQpA7gDIj03A/ACIAQgQTcD4AMgBCBCNwPYAyAEIEM3A9ADIAQgPjcDyAMgBCBANwPAAyAEID83A7gDIAQgPTcDsAMgBCAEKQOoAzcD6AMgBEGIAWogAhClBwwQCyAgQQRqIS4gBCAEKQO4AzcD8AIgBCAEKQPAAzcD+AIgBCAEKQPIAzcDgAMgBCAEKQPQAzcDiAMgBCAEKQPYAzcDkAMgBCAEKQPgAzcDmAMgBCAEKQPoAzcDoAMgBCAEKQPwAzcDqAMgBCAEKQP4AzcDqAQgBCAEKQOABDcDsAQgBCAEKQOIBDcDuAQgBCAEKQOQBDcDwAQgBCAEKQOYBDcDyAQgBCAEKQOgBDcD0AQgBCgCtAMiAEF/Rg0EIAQgBCkD8AI3AtwEIAQgBCkD+AI3AuQEIAQgBCkDgAM3AuwEIAQgBCkDiAM3AvQEIAQgBCkDkAM3AvwEIAQgBCkDmAM3AoQFIAQgBCkDoAM3AowFIAQgBCkDqAM3ApQFIAQgADYC2AQgBCAEKQOoBDcCnAUgBCAEKQOwBDcCpAUgBCAEKQO4BDcCrAUgBCAEKQPABDcCtAUgBCAEKQPIBDcCvAUgBCAEKQPQBDcCxAUgICgCHCICQQhqISQgAEECRw0HIAQoAuQEIgNFDQcgBEHAB2oiACAkIAQoAuAEIgpBCGooAgAgCkEMaigCABDvCSAEKALAB0F/Rg0HIARBsANqIgYgAEHgAPwKAAAgBCgCsAMgBC0AvAMhACAGEPcPQQJGDQcgAEEBSw0HIARB3ARqIRogCkFAayERIAogA0EGdGohKyAGQQRqIQ4gAigCWCESIARB/AZqIRQgBEHMA2ohFSAGQQhqIQsgCiEAAkADQCAAICtGDQcgBEHAB2oiASAkIAAoAggiBSAAKAIMIgcQ7wkgBCgCwAdBf0YNCSAEQbADaiIGIAFB4AD8CgAAIAQoArADIAQtALwDIQEgBhD3D0ECRg0JIAFBAUsNCSAAKAIADQggACgCGCIBRQ0IIABBQGshAiABQcgAbCEGIAAoAhQhAANAAkAgAEEIaigCAEEFRgRAIABBBGooAgAiASgAAEH30JWTB3MgAUEEai0AAEHlAHNyRQ0BCyAAQcgAaiEAIAZByABrIgYNAQwKCwsgBEGwA2oiASAAQRBqEI4HIAQoArADQQFHBEAgARDwBQwJCyAEIAspAwg3A5ABIAQgCykDADcDiAEgBCAVKQIANwPAByAEIBUpAgg3A8gHIAQgFSkCEDcD0AcgBCAVKAIYNgLYByAEKALIAyIAQX9GDQggFCAEKQPABzcCACAUIAQpA8gHNwIIIBQgBCkD0Ac3AhAgFCAEKALYBzYCGCAEIAQpA5ABNwPwBiAEIAQpA4gBNwPoBiAEIAA2AvgGIARBsANqIgAgJCAFIAcQ7wkgBCgCsANBf0YNASAEQcAHaiAAQeAA/AoAACASIBIoAgAiAEEBajYCACAAQQBIDQQgBCgCwAdBAUYEQCAEIAQpAsQHNwLMBiAEIBI2AsgGQQAhCAJAIAQoAoAHIgBFDQAgBCgC/AYiASAAQcgAbGohBQNAIAFBQGsoAgAhBiABQTxqKAIAIQACQAJAAn8CQAJAIAEoAgBBAUYEQCAEQbADaiAAIAYgBEHIBmoQ/AQgBCgCsAMiDEF/RwRAIAQoArQDIR0gBCgCuAMiBgRAIB1BEGohAANAIAAoAgAiBygCACEQIAcgEEEBazYCACAQQQFGBEAgACgCABAwCyAAQRRqIQAgBkEBayIGDQALCyAMRQ0GIB1BBGsoAgAiAEF4cSEHIAdBBEEIIABBA3EiBhsgDEEUbCIAakkNHyAGQQBHIAcgAEEnaktxDSAgHRC8BQwGCyAEQbADaiAEQcgGaiAAIAYQ7wYgBCgCsANBf0cNASAEKALEAyEAIARBKGogAUEIahCiBiAEKAIoQQFHDAMLIARBsANqIARByAZqIAAgBhDvBiAEKAKwA0F/Rg0BCyAEQbADahDBBwwCCyAEKALEAyIAKALwAiAAKAL0AiEGIARBiAFqIA4Q7QYgBCgCiAEgBCgCjAEgBigChAERAABBAXMLIQYgACAAKAIAIgdBAWs2AgAgB0EBRgRAIAAQMAsgBCgCsANBf0cEQCAEQbADahDBByAGRQ0CDAELIAZFDQELQQEhCAwCCyAFIAFByABqIgFHDQALCyASIBIoAgAiAEEBazYCACAAQQFGBEAgEhAwCyAEQcAHahD3DyAEQegGahCGDCACIQAgCA0KDAELC0HAnMYAEJ0VAAtBsJzGABCdFQALEMAVAAsQvxULAAsgH0UNDiApIB8Q2RIMDgsgBEGwA2oiASAgKAIcQQhqIARB8AJqIC4QaiAEKQOwAyE9IARB2ARqIgAgAUEIakHIAPwKAAAgPUJ/UQRAIAEgAEHIAPwKAAAgBEGIAWogARBxDAsLIAQgBCkDmAQ3A9gHIAQgBCkDkAQ3A9AHIAQgBCkDiAQ3A8gHIAQgBCkDgAQ3A8AHIARB0AVqIgAgBEHYBGpByAD8CgAAQfAAEJABIgEEQCABID03AwAgAUEIaiAAQcgA/AoAACABIAQpA9gHNwNoIAEgBCkD0Ac3A2AgASAEKQPIBzcDWCABIAQpA8AHNwNQIARBATYCzAIgBCABNgLIAiAEQv////8fNwPAAgwFCwwQCwJAIAooAgBBAUYEQEEAIQEgCigCGCIARQ0BIABByABsIQYgCigCFCEAA0ACQCAAQQhqKAIAQRRHDQAgAEEEaigCACICKQAAQvLKsYvGrtq37gCFIAJBCGopAABCzN6Fo7aKnbnhAIWEIAJBEGo1AABC9MqdyweFhEIAUg0AIAAhAQwDCyAAQcgAaiEAIAZByABrIgYNAAsMAQtBACEBIAooAhgiAEUNACAAQcgAbCEGIAooAhQhAANAAkAgAEEIaigCAEEURw0AIABBBGooAgAiAikAAELyyrGLxq7at+4AhSACQQhqKQAAQszehaO2ip254QCFhCACQRBqNQAAQvTKncsHhYRCAFINACAAIQEMAgsgAEHIAGohACAGQcgAayIGDQALCyADQQFHBEAgAUEQaiEDIApBDGohCCAKQQhqIQwDQCAEQcAHaiIAICQgESgCCCIHIBEoAgwiBRDvCSAEKALAB0F/Rg0DIARBsANqIgYgAEHgAPwKAAAgBCgCsAMgBC0AvAMhACAGEPcPQQJGDQMgAEEBSw0DIAgoAgAgBUcNAyARKAIAIQAgDCgCACAHIAUQjxMNAyAKKAIkIgsgESgCJEcNAwJAIAAEQEEAIQIgESgCGCIARQ0BIABByABsIQYgESgCFCEAA0ACQCAAQQhqKAIAQRRHDQAgAEEEaigCACIHKQAAQvLKsYvGrtq37gCFIAdBCGopAABCzN6Fo7aKnbnhAIWEIAdBEGo1AABC9MqdyweFhEIAUg0AIAAhAgwDCyAAQcgAaiEAIAZByABrIgYNAAsMAQtBACECIBEoAhgiAEUNACAAQcgAbCEGIBEoAhQhAANAAkAgAEEIaigCAEEURw0AIABBBGooAgAiBykAAELyyrGLxq7at+4AhSAHQQhqKQAAQszehaO2ip254QCFhCAHQRBqNQAAQvTKncsHhYRCAFINACAAIQIMAgsgAEHIAGohACAGQcgAayIGDQALCwJAIAEEQCACRQ0FIAMgAkEQahClDEUNBSAKKAIkIQsMAQsgAg0ECyALBEAgCigCICICIAtBPGxqIRAgESgCJEE8bCEOIBEoAiBBPGshBQNAIAIiB0E8aiECIA4hACAFIQYDQCAARQ0GIABBPGshACAGQTxqIgYgBxCPDkUNAAsgAiAQRw0ACwsgKyARQUBrIhFHDQALCyAEQdAFaiEWQQAhDEEAIRRBACEVQQAhDiMAQYAGayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAaKAIIIgAEQCADQYgDaiIFICQgGigCBCIBKAIIIAEoAgwQ7wkgAygCiANBf0YNASADQSRqIAVB4AD8CgAAICQoAlAiBigCACECIAYgAkEBajYCACACQQBIDQIgAygCJEEBRw0DIAMgAykCKDcCiAEgAyAGNgKEASAAQQZ0IQcgGigCAEEGdCEsIANBmANqIQogBUEMaiEGIANBkANqIRBBACEFIAEhAANAIAMgATYCiAMgECABIAVqIgIpAjg3AjggECACKQIwNwIwIBAgAikCKDcCKCAQIAIpAiA3AiAgECACKQIYNwIYIBAgAikCEDcCECAQIAIpAgg3AgggECACKQIANwIAIAMgADYCjAMgAygCkANBAUYEQCAGEKYGDA8LIAMoApQDIgJBf0YNDiAAIAI2AgAgAEEEaiAKKQIANwIAIABBDGogCikCCDcCACAAQRRqIAopAhA3AgAgAEEcaiAKKQIYNwIAIABBJGogCikCIDcCACAAQSxqIAopAig3AgAgAEE0aiAKKQIwNwIAIABBPGohACAvQQFqIS8gDEEMaiEMIAcgBUFAayIFRw0ACyAsICxBPHAiAmshOCABIRAgAgRAIAEgLEEEIDgQrQYiEEUNIQsgACABayIbQTxuIhpBDGwiJhCQASIdRQ0hA0AgECANQTxsaiIBQRRqKAIAIgBFDQ0gAEHIAGwhCCABQRBqKAIAIQADQAJAIABBCGooAgBBBUYEQCAAQQRqKAIAIgEoAABB99CVkwdzIAFBBGotAABB5QBzckUNAQsgAEHIAGohACAIQcgAayIIDQEMDwsLIANBiANqIgEgAEEQahCOByADKAKIA0EBRwRAIAEQ8AUMDgsgAygCoAMiBkF/Rg0NIAMoAqgDIQIgAygCpAMhCgJAIAMoArADIgBFDQAgACAAQQJ0QQtqQXhxIgBqQQlqIgVFDQAgAygCrAMgAGsiAUEEaygCACIAQXhxIQcgB0EEQQggAEEDcSIAGyAFakkNECAAQQBHIAcgBUEnaktxDREgARC8BQsgAyAGNgL0AiADIAo2AvACIAMgCjYC7AIgA0EANgLcAiADQQA2AswCIAMgCiACQcgAbGo2AvgCIAMgA0GEAWo2AvwCIANBkAFqIANBzAJqEPkBAn8gAygCoAFBf0cEQCADKALMAgR/IAMoAtgCIAMoAtACa0HIAG4FQQALIAMoAtwCBH8gAygC6AIgAygC4AJrQcgAbgVBAAtqIQECfwJAIAMoAuwCRQ0AIAMoAvgCIAMoAvACRg0AIANBiANqIQlBAAwBCyADQagEaiEJIAELIQAgCSAANgIAIAFB8bicDk8NDQJAQQMgASABQQNNG0EBaiIFQcgAbCIARQRAQQghCUEAIQUMAQsgABCQASIJRQ0mC0HIACEIIAkgA0GQAWpByAD8CgAAQQEhACADQQE2AsAFIAMgCTYCvAUgAyAFNgK4BSADIAMoAvwCNgLYBCADIAMpAvQCNwPQBCADIAMpAuwCNwPIBCADIAMpAuQCNwPABCADIAMpAtwCNwO4BCADIAMpAtQCNwOwBCADIAMpAswCNwOoBANAIANBiANqIANBqARqEPkBIAMoApgDQX9HBEAgAygCuAUgAEYEQCADKAKoBAR/IAMoArQEIAMoAqwEa0HIAG4FQQALIAMoArgEBH8gAygCxAQgAygCvARrQcgAbgVBAAtqIQICfwJAIAMoAsgERQ0AIAMoAtQEIAMoAswERg0AIANBiAVqIQ9BAAwBCyADQegEaiEPIAILIQEgDyABNgIAIANBuAVqIAAgAkEBakEIQcgAELMRIAMoArwFIQkLIAggCWogA0GIA2pByAD8CgAAIAMgAEEBaiIANgLABSAIQcgAaiEIDAELCyADQagEahDcBiADKAK4BQwBCyADQcwCahDcBkEIIQlBACEAQQALIQIgHSANQQxsaiIBIAA2AgggASAJNgIEIAEgAjYCACAaIA1BAWoiDUcNAAsgHSAmaiE5IAMCfkHQ8MkALQAABEBByPDJACkDACE+QcDwyQApAwAMAQsgA0GIA2oQuxFB0PDJAEEBOgAAQcjwyQAgAykDkAMiPjcDACADKQOIAwsiPTcDgAJBACEAQcDwyQAgPUIBfDcDACADIDk2AuwBIAMgHTYC6AEgA0EANgK8ASADQQA2ApABIAMgPjcDiAIgA0GQqckAKQMANwPwASADQZipyQApAwA3A/gBIANBzAJqIANBkAFqENANAn8gAygCzAJBf0cEQEEBIQhBASEJIAMoApABQQFGBEAgAygCtAEiAEUgAygCuAEgAEZyIQkgAygClAEEfyADKAKgASADKAKYAWtBDG4FQQALIAMoAqQBBH8gAygCsAEgAygCqAFrQQxuBUEAC2ohAAtBACENIAMoArwBQQFGBEAgAygCwAEEfyADKALMASADKALEAWtBDG4FQQALIAMoAtABBH8gAygC3AEgAygC1AFrQQxuBUEAC2pBACADKALgASIBRSADKALkASABRnIiCBshDQsCfwJAIAMoAugBIgEEQCADKALsASABRiAIcSAJcQ0BIANBiANqIQhBAAwCCyAIIAlxQQFGDQAgA0GIA2ohCEEADAELIANBqARqIQggACANagshACAIIAA2AgBBMBCQASIJRQ0jIAkgAygC1AI2AgggCSADKQLMAjcCACADQQE2AsAFIAMgCTYCvAUgA0EENgK4BSADQYgDaiADQZABakGAAfwKAABBDCEAQQEhJwNAIANBqARqIANBiANqENANIAMoAqgEQX9HBEAgAygCuAUgJ0YEQEEBIQlBACEFQQAhD0EBIQ1BACEIIAMoAogDQQFGBEAgAygCrAMiAUUgAygCsAMgAUZyIQ0gAygCjAMEfyADKAKYAyADKAKQA2tBDG4FQQALIAMoApwDBH8gAygCqAMgAygCoANrQQxuBUEAC2oiDyEICyADKAK0A0EBRgRAIAMoArgDBH8gAygCxAMgAygCvANrQQxuBUEACyADKALIAwR/IAMoAtQDIAMoAswDa0EMbgVBAAtqIgJBACADKALYAyIBRSADKALcAyABRnIiCRshBSACIAhyIQgLAn8CQCADKALgAyIBBEAgAygC5AMgAUYgCXEgDXENAUEAIQkgA0GIBWoMAgsgCSANcUEBRg0AQQAhCSADQYgFagwBCyAFIA9qIQkgA0HoBGoLIAk2AgAgA0G4BWogJ0EBQQIgAygC9AMbQQEgCBtBBEEMELMRIAMoArwFIQkLIAAgCWoiASADKAKwBDYCCCABIAMpAqgENwIAIAMgJ0EBaiInNgLABSAAQQxqIQAMAQsLIANBiANqEIkMIAMoArwFITogAygCuAUMAQsgA0GQAWoQiQxBBCE6QQALISsgA0GIA2ogECgCBCAQKAIIQeT+xwBBCBDHBSADQRhqIAMoAowDIgYgAygCkAMQtAYCQCADKAIcIgFFBEBBASEIDAELIAMoAhghACABEJABIghFDSQgAUUNACAIIAAgAfwKAAALIANBfzYC8AIgAyABNgLUAiADIAg2AtACIAMgATYCzAIgA0F/NgL8AiADQgQ3AugCIANCADcC4AIgA0KAgICAgAE3AtgCIAMoAogDIgIEQCAGQQRrKAIAIgBB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AnZBAnFqIQYgAUUgEHIhEAwBCyADIAJB/wFxIgNqIQYgASADaiEBCyAGLQAAIgINAAsgECABQRBJcQ0CAkAgAUEBdCICQQBOBEAgAkUNBCACEJABIgZFDQEMBQsQnhUACwwkCyABIANB7LbEABCFEwALIAEgA0HstsQAEIUTAAtBASEGQQAhAgtBACEDIAtBADYCmAEgCyAGNgKUASALIAI2ApABQcn7wQAhBkEXIQIDQCAGQQFqIQECQAJAAkAgAsBBAEgEQCACQf8BcSIQQYABRg0BIBBBwAFHDQIgC0HQq8IANgLUASALQqCAgIAGNwLYASALQYABaiADQQN0aigCBCEGIAsgC0GQAWo2AtABIAtB4ABqIAtB0AFqIAYRAQANCCADQQFqIQMgASEGDAMLIAJB/wFxIgIgCygCkAEgCygCmAEiEGtLBEAgC0GQAWogECACEM4RIAsoApgBIRALIAIEQCALKAKUASAQaiABIAL8CgAACyABIAJqIQYgCyACIBBqNgKYAQwCCyAGQQNqIRACQAJAIAYvAAEiAiALKAKQASALKAKYASIBa0sEQCALQZABaiABIAIQzhEgCygCmAEhAQwBCyACRQ0BCyACRQ0AIAsoApQBIAFqIBAgAvwKAAALIAIgEGohBiALIAEgAmo2ApgBDAELQaCAgIAGIRAgAkEBcQRAIAYoAAEhECAGQQVqIQELQQAhCgJAIAJBAnFFBEBBACEVDAELIAEvAAAhFSABQQJqIQELIAJBBHEEQCABLwAAIQogAUECaiEBCyACQQhxBEAgAS8AACEDIAFBAmohAQsgASEGIAsgCjsB3gEgCyAVOwHcASALIBA2AtgBIAtB0KvCADYC1AEgC0GAAWogA0EDdGooAgQhASALIAtBkAFqNgLQASALQeAAaiALQdABaiABEQEADQUgA0EBaiEDCyAGLQAAIgINAAsgCyALKAKYATYCsAEgCyALKQKQATcDqAEgJSALKAJ4NgIIICUgCykDcDcCACAaKAIIIgEgGigCAEYEQCAaEL0SCyAaIAFBAWo2AgggGigCBCABQRhsaiIBIAspA6gBNwIAIAEgCykDsAE3AgggASALKQO4ATcCECAMDQALIAhBfzYCBCAIIBsEfyAbQQlqIgEEQCASQf8BIAH8CwALIBsgG0EBakEDdkEHbCAbQQhJGwVB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ACADLQARIgJBwQBrQf8BcUEaSRsgAnJB/wFxQe8ARw0AQSBBACADLQASIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfUARw0AQSBBACADLQATIgJBwQBrQf8BcUEaSRsgAnJB/wFxQe4ARw0AQSBBACADLQAUIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfQARw0AQoCAASFNDBQLQSBBACADLQAAIgJBwQBrQf8BcUEaSRsgAnJB/wFxQe8ARw0AQSBBACADLQABIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfIARw0AQSBBACADLQACIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeQARw0AQSBBACADLQADIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeUARw0AQSBBACADLQAEIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfIARw0AQSBBACADLQAFIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeIARw0AQSBBACADLQAGIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfkARw0AQSBBACADLQAHIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeEARw0AQSBBACADLQAIIgJBwQBrQf8BcUEaSRsgAnJB/wFxQecARw0AQSBBACADLQAJIgJBwQBrQf8BcUEaSRsgAnJB/wFxQecARw0AQSBBACADLQAKIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfIARw0AQSBBACADLQALIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeUARw0AQSBBACADLQAMIgJBwQBrQf8BcUEaSRsgAnJB/wFxQecARw0AQSBBACADLQANIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeEARw0AQSBBACADLQAOIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfQARw0AQSBBACADLQAPIgJBwQBrQf8BcUEaSRsgAnJB/wFxQeUARw0AQSBBACADLQAQIgJBwQBrQf8BcUEaSRsgAnJB/wFxQecARw0AQSBBACADLQARIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfIARw0AQSBBACADLQASIgJBwQBrQf8BcUEaSRsgAnJB/wFxQe8ARw0AQSBBACADLQATIgJBwQBrQf8BcUEaSRsgAnJB/wFxQfUARw0AQSBBACADLQAUIgJBwQBrQf8BcUEaSRsgAnJB/wFx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iCFOIGCnIQ0gEUHYBmohDiARQcwGaiEKIBFBmAZqIQ8gEUEANgLUByARIAU2AtAHIBEgAzYCzAcgBygCoAIhBCAHKAKcAiEDIBFBADYCuAggESADNgKwCCARQQA2AqAIIBFBADYCkAggESAINgKMCCARQQA2AogIIBEgAzYCgAggEUEANgLwByARQQA2AuAHIBEgCDYC3AcgESARQcgGaiIINgLYByARIAMgBEEkbGoiAzYCtAggESADNgKECCARQZAIaiEMIBFB3AdqIRAgASgCwAEhEgJAA0ACQCARQcAIaiAQEPgCIBEoAsAIRQRAIBEoAowIIgFFDQEgEUGoB2ogDCABEPkCIBEoAqgHRQ0BIBEgESgCsAc2AsgIIBEgESkCqAc3A8AICyARKALYBygCACIDKAIAIQEgAyABQQFqNgIAIAFBAEgNESARKALICCEGIBEoAsQIIQIgAyADKAIAIgFBAWo2AgAgESAGNgLIByARIAI2AsQHIBEgAzYCwAcgAUEASA0RQQwQkAEiB0UNAiAHIAY2AgggByACNgIEIAcgAzYCACARKALUByIEIBEoAswHRgRAIBFBzAdqEJYSCyARKALQByIBIARBA3RqIgVBjPTHADYCBCAFIAc2AgAgAyADKAIAIgdBAWo2AgAgESAEQQFqIgU2AtQHIAdBAEgNEUEMEJABIgdFDRMgByAGNgIIIAcgAjYCBCAHIAM2AgAgESgCzAcgBUYEQCARQcwHahCWEiARKALQByEBCyABIAVBA3RqIgVBpPTHADYCBCAFIAc2AgAgAyADKAIAIgdBAWo2AgAgESAEQQJqIgU2AtQHIAdBAEgNEUEMEJABIgdFDRMgByAGNgIIIAcgAjYCBCAHIAM2AgAgESgCzAcgBUYEQCARQcwHahCWEiARKALQByEBCyABIAVBA3RqIgFBvPTHADYCBCABIAc2AgAgESgCwAciBigCACEBIAYgAUEBajYCACARIARBA2oiBTYC1AcgAUEASA0RIBEoAsgHIQIgESgCxAchA0EMEJABIgdFDRMgByACNgIIIAcgAzYCBCAHIAY2AgAgESgCzAcgBUYEQCARQcwHahCWEgsgESgC0AciASAFQQN0aiIFQdT0xwA2AgQgBSAHNgIAIAYgBigCACIHQQFqNgIAIBEgBEEEaiIFNgLUByAHQQBIDRFBDBCQASIHRQ0TIAcgAjYCCCAHIAM2AgQgByAGNgIAIBEoAswHIAVGBEAgEUHMB2oQlhIgESgC0AchAQsgASAFQQN0aiIFQez0xwA2AgQgBSAHNgIAIBEgBEEFaiIFNgLUByARQcAHahDSCgRAIAYgBigCACIHQQFqNgIAIAdBAEgNEkEMEJABIgdFDRQgByACNgIIIAcgAzYCBCAHIAY2AgAgESgCzAcgBUYEQCARQcwHahCWEiARKALQByEBCyABIAVBA3RqIgFBhPXHADYCBCABIAc2AgAgESgCwAciBigCACEBIAYgAUEBajYCACARIARBBmoiBTYC1AcgAUEASA0SIBEoAsgHIQIgESgCxAchA0EMEJABIgdFDRQgByACNgIIIAcgAzYCBCAHIAY2AgAgESgCzAcgBUYEQCARQcwHahCWEgsgESgC0AciASAFQQN0aiIFQZz1xwA2AgQgBSAHNgIAIBEgBEEHaiIFNgLUBwsgFCASEQcARQRAIAYgBigCACIBQQFrNgIAIAFBAUcNAiARKALABxAwDAILIAYgBigCACIEQQFqNgIAIARBAEgNEUEMEJABIgRFDRMgBCACNgIIIAQgAzYCBCAEIAY2AgAgESgCzAcgBUYEQCARQcwHahCWEiARKALQByEBCyABIAVBA3RqIgFBtPXHADYCBCABIAQ2AgAgESAFQQFqIgM2AtQHQQwQkAEiAUUNEyABIBEoAsgHNgIIIAEgESkCwAc3AgAgESgCzAcgA0YEQCARQcwHahCWEgsgESgC0AcgA0EDdGoiA0HM9ccANgIEIAMgATYCACARIAVBAmo2AtQHDAELCyARIBEpAswHNwOoByARIBEoAtQHNgKwByARKALQBiEBAkAgESgC1AYiBQRAIAEhBgNAIAYoAgAhAyAGQQRqKAIAIgQoAgAiAgRAIAMgAhEDAAsgBCgCBCIEBEAgA0EEaygCACIHQXhxIQIgAkEEQQggB0EDcSIHGyAEakkNAyAHQQBHIAIgBEEnaktxDRggAxC8BQsgBkEIaiEGIAVBAWsiBQ0ACwsCQCARKALMBiIEBEAgAUEEaygCACIGQXhxIQMgAyAEQQN0IgRBBEEIIAZBA3EiBhtqSQ0BIAZBAEcgAyAEQSdqS3ENFyABELwFCyAKIBEoArAHNgIIIAogESkDqAc3AgAgESgCyAYiBCgCSCIDQQF0IgFB/////wFLDQ8gA0EEdCIGQf3///8HTw0PQQAhA0EEIQICQCAGBEAgBhCQASICRQ0BIAEhAwsgEUEANgLUByARIAI2AtAHIBEgAzYCzAcgBCgCoAIhAyAEKAKcAiEBIBFBADYCuAggESABNgKwCCARQQA2AqAIIBFBADYCkAggESAEQQhqIgQ2AowIIBFBADYCiAggESABNgKACCARQQA2AvAHIBFBADYC4AcgESAENgLcByARIAg2AtgHIBEgASADQSRsaiIBNgK0CCARIAE2AoQIIBFBkAhqIQggEUHcB2ohDANAIBFBwAhqIAwQ+AICQAJAAkACQAJAAkAgESgCwAhFBEAgESgCjAgiAUUNASARQagHaiAIIAEQ+QIgESgCqAdFDQEgESARKAKwBzYCyAggESARKQKoBzcDwAgLIBEoAtgHKAIAIgMoAgAhASADIAFBAWo2AgAgAUEASA0ZIBEoAsQIIQQgESARKALICCIGNgKwByARIAM2AqgHIANBoAJqKAIAIQEgESAENgKsByABIARNDQEgA0GcAmooAgAgBEEkbGoiAUEgaigCACICIAZNDQIgAUEcaigCACAGQdQAbGoiASgCAEGCgICAeEcNAyABLQBMDQQgEUGoB2oQ5gkEQCADIAMoAgAiAUEBajYCACABQQBIDRpBDBCQASIHRQ0cIAcgBjYCCCAHIAQ2AgQgByADNgIAIBEoAtQHIgIgESgCzAdGBEAgEUHMB2oQlhILIBEoAtAHIgEgAkEDdGoiBUGs9scANgIEIAUgBzYCACADIAMoAgAiB0EBajYCACARIAJBAWoiBTYC1AcgB0EASA0aQQwQkAEiB0UNHCAHIAY2AgggByAENgIEIAcgAzYCACARKALMByAFRgRAIBFBzAdqEJYSIBEoAtAHIQELIAEgBUEDdGoiBUHE9scANgIEIAUgBzYCACADIAMoAgAiB0EBajYCACARIAJBAmoiBTYC1AcgB0EASA0aQQwQkAEiB0UNHCAHIAY2AgggByAENgIEIAcgAzYCACARKALMByAFRgRAIBFBzAdqEJYSIBEoAtAHIQELIAEgBUEDdGoiAUHc9scANgIEIAEgBzYCACADIAMoAgAiAUEBajYCACARIAJBA2oiBzYC1AcgAUEASA0aQQwQkAEiAUUNHCABIAY2Aggg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AkcEQCADIAMtAOQHOgC4ByADIAE2AqwHIANBADoAqAcgAyADKALgBzYCtAcgAyADKALcBzYCsAcgA0HoBmogA0GoB2ogBBDuBgsgAygC8AchBSADKALsByEHAkAgAygC6AciAkF/RwRAIAchAQwBCyAFQQBIDQQgBUUEQEEBIQFBACECQQAhBQwBCyAFEJABIgFFDQIgBQRAIAEgByAF/AoAAAsgBSECCyADIAU2ArQHIAMgATYCsAcgAyACNgKsByADQQA6AKgHIANBiAdqIANBqAdqIAQQzwgCQAJAAkAgAy0A9AcOAgABAgsgEBDgCAwBCyAJEMICIAMoAqgIIgIoAgAhASACIAFBAWs2AgAgAUEBRw0AIBIQtggLAkAgAygCsAgiAUUNACABIAEoAgAiAUEBazYCACABQQFHDQAgDBDLBAsgBEEBaiEEIAggBkEIaiIGRw0ACwwBCwwECwJAIAMoAuAGIgFFDQAgAygC3AYiBiABQQN0aiEIIANBsAhqIQwgA0H4B2ohECADQagIaiESIANBhAhqIQlBACEEA0AgA0HYB2ogBigCACADQfgFaiAGQQRqKAIAKAIUEQQAIAMoAtgHIgFBAkcEQCADIAMtAOQHOgC4ByADIAE2AqwHIANBAToAqAcgAyADKALgBzYCtAcgAyADKALcBzYCsAcgA0HoBmogA0GoB2ogBBDuBgsgAygC8AchBSADKALsByEHAkACQCADKALoByICQX9HBEAgByEBDAELIAVBAEgNBCAFRQRAQQEhAUEAIQJBACEFDAELIAUQkAEiAUUNASAFBEAgASAHIAX8CgAACyAFIQILIAMgBTYCtAcgAyABNgKwByADIAI2AqwHIANBAToAqAcgA0GIB2ogA0GoB2ogBBDPCAJAAkACQCADLQD0Bw4CAAECCyAQEOAIDAELIAkQwgIgAygCqAgiAigCACEBIAIgAUEBazYCACABQQFHDQAgEhC2CAsCQCADKAKwCCIBRQ0AIAEgASgCACIBQQFrNgIAIAFBAUcNACAMEMsECyAEQQFqIQQgCCAGQQhqIgZHDQEMAgsLDAQLAkAgAygC/AUiAUUNACABIAFBGGwiAWpBIWoiBEUNACADKAL4BSABa0EYayAEENkSCyADIAMpA4AHNwOQBiADIAMpA/gGNwOIBiADIAMpA/AGNwOABiAD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QZEBQfiewgAQvxMACyMBAX8gAUUEQEEADwsgACgCACECIABBADYCACABIAJBAEdrCysAIAEoAgBB+f/GAEHw/8YAIAAtAAAiABtBCkEJIAAbIAEoAgQoAgwRAAALJwECfyAAKAIAIgIoAgAhASACIAFBAWs2AgAgAUEBRgRAIAAQtggLCyYAIABBATYCBCAAIAEoAgwgASgCBGtBsAFuIgE2AgggACABNgIACwMAAAspACABKAIAIAAtAABoQQJ0IgAoAsC/SSAAKAKsv0kgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC2MlJIAAoAsTJSSABKAIEKAIMEQAACysAIAEoAgAgACgCAC0AAEECdCIAKAKkzUkgACgCjM1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoArTTSSAAKAKc00kgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgCoNRJIAAoAozUSSABKAIEKAIMEQAACysAIAEoAgAgACgCAC0AAEECdCIAKAL01UkgACgCxNVJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoArDWSSAAKAKk1kkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgCwN1JIAAoAszbSSABKAIEKAIMEQAACwMAAAsjACAARQRAQYigxABBMhC+FQALIAAgAiADIAQgASgCEBEFAAsDAAALAwAACwMAAAsnACAAKAIALQAARQRAIAFBqrLIAEEFEJ0EDwsgAUGvssgAQQQQnQQLHwEBfyAAIAAoAgAiAUEBazYCACABQQFGBEAgABAwCwsoACABKAIAIAAtAABBAnQiACgCkNdJIAAoArzWSSABKAIEKAIMEQAACyQAIABBAXFFBEAgAUGqssgAQQUQnQQPCyABQa+yyABBBBCdBAsoACABKAIAIAAtAABBAnQiACgC2NlJIAAoAuTXSSABKAIEKAIMEQAACyQAIAAtAABFBEAgAUGqssgAQQUQnQQPCyABQa+yyABBBBCdBAshACAARQRAQYigxABBMhC+FQALIAAgAiADIAEoAhARBAALHwAgAEEBNgIEIAAgASgCAEEARyIBNgIIIAAgATYCAAsnACABKAIAQb3WxgBBrtbGACAAKAIAKAIAG0EPIAEoAgQoAgwRAAALHAAgAC0AAEH/AUYEQCAAQQhqEI4RDwsgABDmCAsdACABKAIABEAgAEGgn8kANgIEIAAgATYCAA8LAAsfAQFvIAAlASABJQEgAiUBEAYhAxCGDiIAIAMmASAACx8AIABFBEBBiKDEAEEyEL4VAAsgACACIAEoAhARAQALIQAgASgCACAAKAIAIgAoAgQgACgCCCABKAIEKAIMEQAACyEAIAEoAgAgACgCACIAKAI0IAAoAjggASgCBCgCDBEAAAseAQF/IAAgACgCAEEBayIBNgIAIAFFBEAgABD2DwsLHAAgACgCACIAKAIAIAEgAEEEaigCACgCEBEBAAseACAAKAIAIgAoAgQgACgCCCABKAIAIAEoAgQQvwYLHAEDbyAAJQEgASUBIAEQ0xIgAiUBIAIQ0xIQBAsbAQFvIAAlASABJQEQDCECEIYOIgAgAiYBIAALFgAgAARAQbjwyQBBAToAAAALEJ4VAAsTAEEUQQAgAS0AAEEBRxsgAnFFCx0AIAEgAC0AAEECdCIAKAK8vUkgACgCpL1JEJ0ECxQAIAEtAABBAUYgAkH/AXFBEElyCx0BAX9B4AAQkAEiAEUEQEG48MkAQQE6AAAACyAACxoAIAAQkAEiAEUEQEG48MkAQQE6AAAACyAACxwAIAEoAgAgACgCACAAKAIEIAEoAgQoAgwRAAALGQEBbyAAJQEgARARIQIQhg4iACACJgEgAAsSACAAIAFBAXRBAXIgAhC/EwALFwAgACgCACABIAAoAgRBDGooAgARAQALGQAgACgCBCAAKAIIIAEoAgAgASgCBBC/BgsZACAAKAIAIAAoAgQgASgCACABKAIEEPoKCxkAIAEoAgAgASgCBCAAKAIAIAAoAgQQsQkLFwAgACgCAEEQaiABKAIAIAEoAgQQ2wMLFAAgAEEEQQMgASgCAEEERhs2AgALGQEBfiABKQIAIQIgAUEANgIAIAAgAjcDAAsZACAAKAIAIAAoAgQgASgCACABKAIEEL8GCxcBAW8gACABEAchAhCGDiIAIAImASAACxcBAW8gACABECEhAhCGDiIAIAImASAACxkAIAEoAgBBuLbJAEEFIAEoAgQoAgwRAAALGQAgASgCAEGAocIAQRcgASgCBCgCDBEAAAsZACABKAIAQZehwgBBFCABKAIEKAIMEQAACxkAIAEoAgBBq6HCAEEaIAEoAgQoAgwRAAALGQAgASgCAEHZrcgAQQMgASgCBCgCDBEAAAsZACABKAIAQeCswgBBCyABKAIEKAIMEQAACxwAIABB/OLIACkCADcCCCAAQfTiyAApAgA3AgALFgAgASAAKAIAIgAoAgQgACgCCBCdBAsWACABIAAoAgAiACgCACAAKAIEEJ0ECxwAIABBsKLFACkCADcCCCAAQaiixQApAgA3AgALEgAgACgCAEF/RwRAIAAQ1AgLCxwAIABB9KLFACkCADcCCCAAQeyixQApAgA3AgALFgAgACACKAIINgIIIAAgAikCADcCAAsWACAAIAEoAgg2AgggACABKQIANwIACxwAIABBvIDGACkCADcCCCAAQbSAxgApAgA3AgALEgAgACgCAEF/RwRAIAAQyQILCxIAIAAoAgBBf0cEQCAAEPUFCwsTACAALQAAQf8BRwRAIAAQrwQLCxkAIAEoAgBB+svGAEEbIAEoAgQoAgwRAAALGQAgASgCAEGo0cYAQR8gASgCBCgCDBEAAAsZACABKAIAQcvixgBBHCABKAIEKAIMEQAACxkAIAEoAgBB3eDGAEELIAEoAgQoAgwRAAALGQAgASgCAEHA38YAQQcgASgCBCgCDBEAAAsZACABKAIAQaTZxgBBHyABKAIEKAIMEQAACxkAIAEoAgBBsM7GAEEaIAEoAgQoAgwRAAALGQAgASgCAEGEyMYAQRYgASgCBCgCDBEAAAsZACABKAIAQYDexgBBEiABKAIEKAIMEQAACxkAIAEoAgBBx9zGAEERIAEoAgQoAgwRAAALGQAgASgCAEGs6MYAQRcgASgCBCgCDBEAAAsZACABKAIAQebmxgBBFSABKAIEKAIMEQAACxkAIAEoAgBB8NLGAEEaIAEoAgQoAgwRAAALGQAgASgCAEHM1sYAQRcgASgCBCgCDBEAAAsZACABKAIAQYDlxgBBFCABKAIEKAIMEQAACxkAIAEoAgBB8OPGAEESIAEoAgQoAgwRAAALHAAgAEHw6sYAKQIANwIIIABB6OrGACkCADcCAAscACAAQdDqxgApAgA3AgggAEHI6sYAKQIANwIACxwAIABB4OrGACkCADcCCCAAQdjqxgApAgA3AgALHAAgAEGw6sYAKQIANwIIIABBqOrGACkCADcCAAscACAA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EL8TAAsUACAAKAIAIAEoAgAgASgCBBDZCwsUACAAKAIAIAEgACgCBCgCDBEBAAsPAEEfQQ8gAS0AAEEBRhsLmgQBBn8gASgCACEHIwBBgAFrIgIkACABQQRqIgQoAgAiASgCACEDIAEgA0EBajYCAAJAAkACQAJAIANBAEgNACAEKAIIIQUgBCgCBCEGIAEgASgCACIDQQFqNgIAIANBAEgNAEEYEJABIgNFDQMgAyAHNgIAIANBADYCECADIAQpAgA3AgQgAyAEKAIINgIMQRgQkAEiBA0BDAMLAAsgBEEAOgAUIARBxOTHADYCDCAEIAM2AgggBEKBgICAEDcCACACIAQ2AmwgAkEAOgBoIAIgBTYCXCACIAY2AlggAiABNgJUIAJBADYCTCACQQ86AEggAkF/NgI4IAIgBTYCNCACIAY2AjAgAiABNgIsIAJBADYCKCACQX82AhwgAkEANgIUIAJBADYCDCACQfAAaiACQQxqQQEQnw5B5AAQkAEiA0UNASADQQY6AAQgA0ECNgIAQZABEJABIgFFDQEgAUF+NgIAIAEgAikDcDcDICABIAIoAng2AiggAUEAOwGMASABQQ42AogBIAFBmPDHADYChAEgAUF/NgKAASABQgQ3A3ggAUIBNwNwIAEgAzYCbCABQQE2AmggAUF+NgJIIAFBATsBRCABQQQ2AkAgAUGU8McANgI8IAFCgICAgHA3AjQgAUKAgICAwAA3AiwgAEECNgIIIAAgATYCBCAAQQI2AgAgAkGAAWokAAwACw8LQbjwyQBBAToAAAALFAAgACABKAIAIAEoAgQoAhARAgALFQIBbwF/EAAhABCGDiIBIAAmASABCxUCAW8BfxACIQAQhg4iASAAJgEgAQsVAgFvAX8QAyEAEIYOIgEgACYBIAELEwAgAEEKNgIEIABB1KXFADYCAAsTACAAQQI2AgQgAEHFocIANgIACxMAIABBGjYCBCAAQaCjwgA2AgALEwAgAEEINgIEIABB4KnCADYCAAsRACABIAAoAgAgACgCBBCdBAsRACABIAAoAgQgACgCCBCdBAsTACAAQSg2AgQgAEGM4sgANgIACxMAIABBzOvEADYCBCAAQQE2AgALFAAgAEEANgIIIABCgICAgBA3AgALEwAgAEEFNgIEIABBy7jFADYCAAsUACAAQccANgIEIABBvLnFADYCAAsTACAAQQ42AgQgAEGH0cYANgIACxAAIAAgASgCACACIAMQ7wkLEwAgAEESNgIEIABBjM7GADYCAAsTACAAQRk2AgQgAEH72MYANgIACxMAIABBFTYCBCAAQcPZxgA2AgALEwAgAEEWNgIEIABByNLGADYCAAsTACAAQRg2AgQgAEGo18YANgIACxMAIABBKTYCBCAAQZTKxgA2AgALEwAgAEEeNgIEIABBvMXGADYCAAulBAIDfgZ/AkAgASgCACEBIwBBEGsiByQAAkAgA0EATgRAQQEhCCADRQ0BIAMQkAEiCEUEQEEBEKcUAAsgA0UNASAIIAIgA/wKAAAMAQsQnhUACyAHIAM2AgwgByAINgIIIAcgAzYCBCAHQQE6AAACQAJAAkAgASgCLEUNACABKQMwIAEpAzggBxChCiEEIAEoAiQiCyAEp3EhAiAEQhmIQv8Ag0KBgoSIkKDAgAF+IQYgASgCICEMA0AgAiAMaikAACIFIAaFIgRCgYKEiJCgwIABfSAEQn+Fg0KAgYKEiJCgwIB/gyIEQgBSBEADQAJAIAwgBHqnQQN2IAJqIAtxQWxsaiIJQRRrLQAARQ0AIAMgCUEIaygCAEcNACAIIAlBDGsoAgAgAxCPE0UNBQsgBEIBfSAEgyIEQgBSDQALCyAFIAVCAYaDQoCBgoSIkKDAgH+DQgBSDQEgCkEIaiIKIAJqIAtxIQIMAAsACyAAQX82AgAMAQsgCUEEaygCACICIAEoAmgiCU8EQCACIAlBnPLHABCFEwALIAAgASgCZCACQQN0aiIAKAIAIAEgACgCBCgCFBEEAAsCQAJAIAMEQCAIQQRrKAIAIgFBeHEhACAAQQRBCCABQQNxIgEbIANqSQ0BIAFBAEcgACADQSdqS3ENAiAIELwFCyAHQRBqJAAMAgtB0JzJAEEuQYCdyQAQrxQAC0GQnckAQS5BwJ3JABCvFAALCxMAIABBoJ/JADYCBCAAIAE2AgALEQEBfxCGDiIBIAAlASYBIAELDwBBmO3CAEErIAAQrxQACxIAQezrxwBBI0Gwq8IAEL8TAAsLACABQf8BcUEBRgsQACAAQbiqwgAgASACELEJCxAAIABB0KvCACABIAIQsQkLEAAgAEGg68IAIAEgAhCxCQsPAEHqosYAQTMgABC/EwALEwBBgILEAEGZAUHMgsQAEL8TAAsQACAAQczsxAAgASACELEJCxAAIABBkKLFACABIAIQsQkLDwAgACgCACgCACABEO8OCxAAIABBiKXFACABIAIQsQkLEwBBwJ7JAEHdAEHwnskAEL8TAAsSAEGgq8kAQShBhLrFABCvFAALEwBB0LjFAEG1AUGsucUAEL8TAAsLACABQf8BcUECSQsTAEGIxMUAQeUBQYzFxQAQvxMACxMAQYjExQBB5QFB/MTFABC/EwALDwAgACgCAC8BACABEJIPCxAAIABB/M7FACABIAIQsQkLEAAgAEGg8cUAIAEgAhCxCQsQACAAQdyWxgAgASACELEJCxAAIABB5O3GACABIAIQsQkLEAAgAEGwkMcAIAEgAhCxCQsQACAAQfCHyAAgASACELEJCxAAIABBgJrIACABIAIQsQkLEAAgAEGUrsgAIAEgAhCxCQsQACAAQYjhyAAgASACELEJCxAAIABB4JLJACABIAIQsQkLEAAgAEHgm8kAIAEgAhCxCQsQACAAQeCvyQAgASACELEJCw0AIAAlAUGBASUBEAkLDAAgACUBIAElARAOCwkAIAAgARAeAAsNAEHou8kAQRsQvhUACw4AQYO8yQBBzwAQvhUACwwAIAAoAgAgARD3AQsOACABQbCXxABBGBCdBAsOACABQZCXxABBIBCdBAsMACAAKAIAIAEQyAILDAAgACgCAEEBOgAACwwAIAAoAgAgARDjAgsMACAAKAIAIAEQ7w4LCwAgAEEAIAAQvBALDAAgACgCACABEJMJCwwAIAAoAgAgARCXDgsMACAAKAIAIAEQ/w0LDAAgACgCACABELEDCwwAIAAoAgAgARDRAQsMACAAKAIAIAEQgQgLCwAgACgCACABEG0LDAAgACgCACABEJwDCwwAIAAoAgAgARDbCAsMACAAKAIAIAEQ+wILDAAgACgCACABELIOCwwAIAAgASkCADcDAAsKACAAIAElARAICwkAIABBADYCAAsJACAAQQA2AgALCQAgAEEANgIACwkAIABBADYCAAsJACAAQgE3AwALCQAgAEIENwMACwoAIABBgwg7AQALCQAgAEF/NgIACwkAIABBATYCAAsJACAAQX82AgALCAAgACUBEAULCAAgACUBEAsLCAAgACUBEA0LCAAgACUBEBALCAAgACUBEBQLCAAgACUBEBcLBwAgAhDiCgsHACAAEIsRCwcAIAAQwAcLBwAgABDrCAsNAEK//IP4v//V3/8ACwQAQT8LBABBCwsEAEEBCwYAQoCACAsEAEEECwQAQQELBABBAAsEAEEDCwQAIAELCQBCloSAgIAQCwQAQgALBABBfwsEAEEfCwQAQQ8LBABBAAsEAEEACwQAQQILBAAgAAsEAEECCwIACwIACwIACwu31QmDAgBBhIDAAAu1lgIBAAAAAQAAAIYBAACHAQAABAAAAAQAAACIAQAAUDIwMTlQMjAxNFAyMDEzwMDAAApkZWxldGVNYW55wAAKY3JlYXRlTWFuecAACnVwZGF0ZU1hbnnAAAhmaW5kTWFuecAAB2dyb3VwQnnAAAlmaW5kRmlyc3TAAARMaXN0wAABdMAAwAJUb8AABEVudW3AAAFqwAAKZmluZFVuaXF1ZcAACWFnZ3JlZ2F0ZcAACUFnZ3JlZ2F0ZcAACXVwc2VydE9uZcAACWRlbGV0ZU9uZcAACWNyZWF0ZU9uZcAACXVwZGF0ZU9uZcAADF9hZ2dyX2NvdW50X8AAD2FnZ3Jfc2VsZWN0aW9uX8AAwAFfwAACQEDAAMABQMAADzx1bmtub3duIGhvc3Q+OsAADXVuaXQgdmFyaWFudCDAAjo6wADAATrAATrAAARUaGUgwC9pbmRleCBkZWZpbml0aW9uIHJlZmVycyB0byB0aGUgcmVsYXRpb24gZmllbGRzIMA2LiBJbmRleCBkZWZpbml0aW9ucyBtdXN0IHJlZmVyZW5jZSBvbmx5IHNjYWxhciBmaWVsZHMuwAALVGhlIGZpZWxkIGDAYGAgaXMgYSByZWxhdGlvbiBmaWVsZCBhbmQgY2Fubm90IGJlIG1hcmtlZCB3aXRoIGB1bmlxdWVgLiBPbmx5IHNjYWxhciBmaWVsZHMgY2FuIGJlIG1hZGUgdW5pcXVlLsAAwAEuwAEuwAANTmF0aXZlIHR5cGUgYMAWYCBjYW5ub3QgYmUgdW5pcXVlIGluIMABLsAAN1lvdSBjYW5ub3QgZGVmaW5lIGFuIGluZGV4IG9uIGZpZWxkcyB3aXRoIG5hdGl2ZSB0eXBlIGDABWAgb2YgwAEuwAADMDAtwAEtwAEtwAABJcAABkBsaW5rJMAAASTAABJFeHRlcm5hbCBlcnJvciBpZCPAACdleHBlY3RlZCBvbmx5IG9uZSBTZWxlY3Rpb25SZXN1bHQsIGdvdCDAADFTZWxlY3Rpb25SZXN1bHQgdmFsdWUgbXVzdCBiZSBhIHBsYWNlaG9sZGVyLCBnb3QgwAAJYXJndW1lbnQgwBsgcmVxdWlyZXMgdW5rbm93biBhcmd1bWVudCDAABZzbGljZSBpbmRleCBzdGFydHMgYXQgwA0gYnV0IGVuZHMgYXQgwAAVYnl0ZSByYW5nZSBzdGFydHMgYXQgwA0gYnV0IGVuZHMgYXQgwABfaW52YWxpZCBjaGFyYWN0ZXI6IGV4cGVjdGVkIGFuIG9wdGlvbmFsIHByZWZpeCBvZiBgdXJuOnV1aWQ6YCBmb2xsb3dlZCBieSBbMC05YS1mQS1GLV0sIGZvdW5kIGDABWAgYXQgwAAYRGF0YWJhc2UgYWxyZWFkeSBleGlzdHMgwAAgaW5kZXggb3V0IG9mIGJvdW5kczogdGhlIGxlbiBpcyDAEiBidXQgdGhlIGluZGV4IGlzIMAAwAQgYXMgwADABCBvciDAAB9BdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIgwADACSBhdCBsaW5lIMAIIGNvbHVtbiDAABhVbmFibGUgdG8gcmVzb2x2ZSBmaWVsZCDALSB0byBhIGZpZWxkIG9yIHNldCBvZiBzY2FsYXIgZmllbGRzIG9uIG1vZGVsIMAAGFVuYWJsZSB0byByZXNvbHZlIGZpZWxkIMAoIHRvIGEgZmllbGQgb3IgYSBzZXQgb2YgZmllbGRzIG9uIG1vZGVsIMAAEXN0YXJ0IGJ5dGUgaW5kZXggwCcgaXMgb3V0IG9mIGJvdW5kcyBmb3Igc3RyaW5nIG9mIGxlbmd0aCDAAA9lbmQgYnl0ZSBpbmRleCDAJyBpcyBvdXQgb2YgYm91bmRzIGZvciBzdHJpbmcgb2YgbGVuZ3RoIMAAEnJhbmdlIHN0YXJ0IGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAEHJhbmdlIGVuZCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAAAdzdHJpbmcgwAADSWYgwAAaQWNjZXNzIGRlbmllZCB0byBkYXRhYmFzZSDAAMAJIGluIHR5cGUgwAA8aW52YWxpZCBsZW5ndGg6IGV4cGVjdGVkIGxlbmd0aCAzMiBmb3Igc2ltcGxlIGZvcm1hdCwgZm91bmQgwAApaW52YWxpZCBsZW5ndGg6IGV4cGVjdGVkIDE2IGJ5dGVzLCBmb3VuZCDAACdpbnZhbGlkIGdyb3VwIGNvdW50OiBleHBlY3RlZCA1LCBmb3VuZCDAAB5pbnZhbGlkIGdyb3VwIGxlbmd0aCBpbiBncm91cCDACzogZXhwZWN0ZWQgwAgsIGZvdW5kIMAAHWludmFsaWQgdHlwZTogbnVsbCwgZXhwZWN0ZWQgwAARdW5rbm93biB2YXJpYW50IGDADGAsIGV4cGVjdGVkIMAAD2ludmFsaWQgbGVuZ3RoIMALLCBleHBlY3RlZCDAAA9pbnZhbGlkIHZhbHVlOiDACywgZXhwZWN0ZWQgwAAOaW52YWxpZCB0eXBlOiDACywgZXhwZWN0ZWQgwAAhSW52YWxpZCBpbnB1dCBwcm92aWRlZCB0byBxdWVyeTogwAAXQWdncmVnYXRlUmVjb3Jkc1F1ZXJ5OiDAAApRdWVyeVJhdzogwAAMRXhlY3V0ZVJhdzogwAAdSW52YWxpZCBzY2FsYXIgZmlsdGVyIGlucHV0OiDAAB9JbnZhbGlkIHJlbGF0aW9uIGZpbHRlciBpbnB1dDogwAAgSW52YWxpZCBjb21wb3NpdGUgZmlsdGVyIGlucHV0OiDAABlEYXRhYmFzZSBkb2VzIG5vdCBleGlzdDogwAAtV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cy4gRXhwZWN0ZWQ6IDEsIGdvdDogwAAQYXNzZXJ0aW9uIGBsZWZ0IMAXIHJpZ2h0YCBmYWlsZWQKICBsZWZ0OiDACQogcmlnaHQ6IMAAEGFzc2VydGlvbiBgbGVmdCDAECByaWdodGAgZmFpbGVkOiDACQogIGxlZnQ6IMAJCiByaWdodDogwAAYSW52YWxpZCBvcGVyYXRvciBjbGFzczogwAAgSW52YWxpZCByZWxhdGlvbiBtb2RlIHNldHRpbmc6ICLAFSIuIFN1cHBvcnRlZCB2YWx1ZXM6IMAAE0RlbGV0ZU1hbnlSZWNvcmRzOiDAADFFcnJvciBhY2Nlc3NpbmcgcmVzdWx0IHNldCwgaW5kZXggb3V0IG9mIGJvdW5kczogwABrVGhlIGFyZ3VtZW50IGZpZWxkcyBtdXN0IHJlZmVyIG9ubHkgdG8gc2NhbGFyIGZpZWxkcy4gQnV0IGl0IGlzIHJlZmVyZW5jaW5nIHRoZSBmb2xsb3dpbmcgcmVsYXRpb24gZmllbGRzOiDAAFFUaGUgYXJndW1lbnQgYHJlZmVyZW5jZXNgIG11c3QgcmVmZXIgb25seSB0byBzY2FsYXIgZmllbGRzIGluIHRoZSByZWxhdGVkIG1vZGVsIGDAOGAuIEJ1dCBpdCBpcyByZWZlcmVuY2luZyB0aGUgZm9sbG93aW5nIHJlbGF0aW9uIGZpZWxkczogwABgRXZlcnkgZmllbGQgdXNlZCBmb3Igb3JkZXJCeSBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBieS1hcmd1bWVudHMgb2YgdGhlIHF1ZXJ5LiBNaXNzaW5nIGZpZWxkczogwAAVcXVlcnkgYnVpbGRlciBlcnJvcjogwAAZSW52YWxpZCBhcmd1bWVudCB2YWx1ZS4gYMASYCBpcyBub3QgYSB2YWxpZCBgwBVgLiBVbmRlcmx5aW5nIGVycm9yOiDAABlxdWVyeSBncmFwaCBidWlsZCBlcnJvcjogwAAVU2VyaWFsaXphdGlvbiBFcnJvcjogwAAMSlNPTiBFcnJvcjogwAAlSW52YWxpZCBKU09OIHZhbHVlIGZvciBMSUtFIHBhdHRlcm46IMAAIkZhaWxlZCB0byBwYXJzZSBkYXRhYmFzZSB2ZXJzaW9uOiDACi4gUmVhc29uOiDAACNFcnJvciBpbiBxdWVyeSBncmFwaCBjb25zdHJ1Y3Rpb246IMAAIEVycm9yIG9wZW5pbmcgYSBUTFMgY29ubmVjdGlvbjogwAAcVW5oYW5kbGVkIG5lc3RlZCBvcGVyYXRpb246IMAAKlVuc3VwcG9ydGVkIHJlZmVyZW50aWFsIGFjdGlvbiBlbXVsYXRpb246IMAAF1RvbyBtYW55IGZpZWxkcyBnaXZlbjogwAAZSW52YWxpZCBpc29sYXRpb24gbGV2ZWw6IMAADlVwc2VydChtb2RlbDogwABpVGhlIGFyZ3VtZW50IGZpZWxkcyBtdXN0IHJlZmVyIG9ubHkgdG8gZXhpc3RpbmcgZmllbGRzLiBUaGUgZm9sbG93aW5nIGZpZWxkcyBkbyBub3QgZXhpc3QgaW4gdGhpcyBtb2RlbDogwABTVGhlIGFyZ3VtZW50IGByZWZlcmVuY2VzYCBtdXN0IHJlZmVyIG9ubHkgdG8gZXhpc3RpbmcgZmllbGRzIGluIHRoZSByZWxhdGVkIG1vZGVsIGDAO2AuIFRoZSBmb2xsb3dpbmcgZmllbGRzIGRvIG5vdCBleGlzdCBpbiB0aGUgcmVsYXRlZCBtb2RlbDogwAASRXJyb3IgdmFsaWRhdGluZzogwABPRW5jb3VudGVyZWQgaW1wb3NzaWJsZSBlbnVtIHZhbHVlIGRlY2xhcmF0aW9uIGR1cmluZyBwYXJzaW5nLCBuYW1lIGlzIG1pc3Npbmc6IMAAGVNvbWUgZmllbGRzIGFyZSBtaXNzaW5nOiDAAFppbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBFbmNvdW50ZXJlZCBpbXBvc3NpYmxlIGZ1bmN0aW9uIGR1cmluZyBwYXJzaW5nOiDAAG1pbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBFbmNvdW50ZXJlZCBpbXBvc3NpYmxlIHNvdXJjZSBwcm9wZXJ0eSBkZWNsYXJhdGlvbiBkdXJpbmcgcGFyc2luZzogwABZaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogRW5jb3VudGVyZWQgaW1wb3NzaWJsZSBsaXRlcmFsIGR1cmluZyBwYXJzaW5nOiDAADVFbmNvdW50ZXJlZCBpbXBvc3NpYmxlIGF0dHJpYnV0ZSBhcmcgZHVyaW5nIHBhcnNpbmc6IMAAVmludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IEVuY291bnRlcmVkIGltcG9zc2libGUgdHlwZSBkdXJpbmcgcGFyc2luZzogwABXaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogRW5jb3VudGVyZWQgaW1wb3NzaWJsZSBmaWVsZCBkdXJpbmcgcGFyc2luZzogwAAhRXJyb3IgcGFyc2luZyBjb25uZWN0aW9uIHN0cmluZzogwAATVW5rbm93biBxdWVyeSB0YWc6IMAAFVRoZSBwcmV2aWV3IGZlYXR1cmUgIsAhIiBpcyBub3Qga25vd24uIEV4cGVjdGVkIG9uZSBvZjogwAAjVW5leHBlY3RlZCB0b2tlbi4gRXhwZWN0ZWQgb25lIG9mOiDAACBFcnJvciByZWFkaW5nIHRoZSBjb2x1bW4gdmFsdWU6IMAADlVwc2VydChtb2RlbDogwAosIGZpbHRlcjogwAosIGNyZWF0ZTogwAosIHVwZGF0ZTogwAAdRXJyb3IgcXVlcnlpbmcgdGhlIGRhdGFiYXNlOiDAAA9ObyBzdWNoIHRhYmxlOiDAABhEYXRhYmFzZSBub3QgcmVhY2hhYmxlOiDAACppbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiDAAC5FcnJvciBhY2Nlc3NpbmcgcmVzdWx0IHNldCwgY29sdW1uIG5vdCBmb3VuZDogwAA5SlNPTiB0YXJnZXQgdHlwZXMgb25seSBhY2NlcHQgc3RyaW5ncyBvciBudW1iZXJzLCBmb3VuZDogwABESW52YWxpZCB2YWx1ZSBmb3Igc2tpcCBhcmd1bWVudDogVmFsdWUgY2FuIG9ubHkgYmUgcG9zaXRpdmUsIGZvdW5kOiDAAElFeHBlY3RlZCBmaWVsZCBgZmllbGRzYCB0byBiZSBvZiB0eXBlIFN0cmluZywgRW51bSBvciBMaXN0PEVudW0+LCBmb3VuZDogwAA1RXJyb3IgYWNjZXNzaW5nIHJlc3VsdCBzZXQsIHR5cGUgbWlzbWF0Y2gsIGV4cGVjdGVkOiDAACBUcmFuc2FjdGlvbiB3YXMgYWxyZWFkeSBjbG9zZWQ6IMAAH0ZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgZmFpbGVkOiDAABhOdWxsIGNvbnN0cmFpbnQgZmFpbGVkOiDAABpVbmlxdWUgY29uc3RyYWludCBmYWlsZWQ6IMAAE0NvbnZlcnNpb24gZmFpbGVkOiDAABdFcnJvciBpbiBkb21haW4gbG9naWM6IMAAF0Vycm9yIHZhbGlkYXRpbmcgZW51bSBgwANgOiDAABhFcnJvciB2YWxpZGF0aW5nIGZpZWxkIGDAFWAgaW4gY29tcG9zaXRlIHR5cGUgYMADYDogwAAdRXJyb3IgdmFsaWRhdGluZyBkYXRhc291cmNlIGDAA2A6IMAAI0Vycm9yIGluIHRoZSB1bmRlcmx5aW5nIGNvbm5lY3RvciAowAMpOiDAABlFcnJvciBwYXJzaW5nIGF0dHJpYnV0ZSAiwAMiOiDAACFFcnJvciB2YWxpZGF0aW5nIGNvbXBvc2l0ZSB0eXBlICLAAyI6IMAAEUVycm9yIHZhbGlkYXRpbmcgwAIgIsADIjogwAABIsADIjogwAAsQXJndW1lbnQgTSBpcyBvdXQgb2YgcmFuZ2UgZm9yIG5hdGl2ZSB0eXBlIGDABWAgb2YgwAI6IMAADUlucHV0IGVycm9yLiDAABpWYWx1ZSBvdXQgb2YgcmFuZ2UgZXJyb3IuIMAAFVVuc3VwcG9ydGVkIGZlYXR1cmU6IMACLiDAABVFcnJvciBjcmVhdGluZyBVVUlELCDAAF1pbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBFbmNvdW50ZXJlZCBpbXBvc3NpYmxlIGRvYyBjb21tZW50IGR1cmluZyBwYXJzaW5nOiDAAiwgwAAORGVsZXRlUmVjb3JkOiDAAiwgwAAYUHJvamVjdGVkRGF0YURlcGVuZGVuY3kowAIpIMAACV9AcGFyYW1fIMABIMAAQWludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IEVuY291bnRlcmVkIGltcG9zc2libGUgwBEgZHVyaW5nIHBhcnNpbmc6IMABIMAACmBgYHByaXNtYQrACQpgYGAKX19fCsACCgrAABpGaWVsZFNlbGVjdGlvbiB7IGZpZWxkczogW8ADXSB9AMADIHsgwAIgfQACeyDAAiB9AApkaWdyYXBoIHsKwAEKwAIKfQDAAS/AAV/ACS5ncmFwaHZpegAJZmluZEZpcnN0wAdPclRocm93AApmaW5kVW5pcXVlwAdPclRocm93AAlhZ2dyZWdhdGXAA1JhdwAEZmluZMADUmF3AMATT2JqZWN0RXF1YWxpdHlJbnB1dADAD0RlbGV0ZU1hbnlJbnB1dADAD0NyZWF0ZU1hbnlJbnB1dADAGFVuY2hlY2tlZFVwZGF0ZU1hbnlJbnB1dADAD1VwZGF0ZU1hbnlJbnB1dADAC1Vwc2VydElucHV0AMDAGkZpZWxkVXBkYXRlT3BlcmF0aW9uc0lucHV0AMAXVXBkYXRlTWFueU11dGF0aW9uSW5wdXQAwA1GaWVsZFJlZklucHV0AMAQV2hlcmVVbmlxdWVJbnB1dADAwBNDb21wb3VuZFVuaXF1ZUlucHV0AMDAFU9yZGVyQnlBZ2dyZWdhdGVJbnB1dADAB09yZGVyQnnADkFnZ3JlZ2F0ZUlucHV0AMAUVW5jaGVja2VkQ3JlYXRlSW5wdXQAwAtDcmVhdGVJbnB1dADAFFVuY2hlY2tlZFVwZGF0ZUlucHV0AMALVXBkYXRlSW5wdXQAwApXaGVyZUlucHV0AMDAE0NyZWF0ZUVudmVsb3BlSW5wdXQAwMATVXBkYXRlRW52ZWxvcGVJbnB1dADAFU9yZGVyQnlSZWxldmFuY2VJbnB1dADAwAZVcGRhdGXAB1dpdGhvdXTAC05lc3RlZElucHV0AMAKQ3JlYXRlTWFuecAFSW5wdXQAwAdPcmRlckJ5wAVJbnB1dADAGlVuY2hlY2tlZFVwZGF0ZU1hbnlXaXRob3V0wAVJbnB1dADADVVwc2VydFdpdGhvdXTABUlucHV0AMAWQ3JlYXRlT3JDb25uZWN0V2l0aG91dMAFSW5wdXQAwBxVcHNlcnRXaXRoV2hlcmVVbmlxdWVXaXRob3V0wAVJbnB1dADAHFVwZGF0ZVdpdGhXaGVyZVVuaXF1ZVdpdGhvdXTABUlucHV0AMAWVW5jaGVja2VkQ3JlYXRlV2l0aG91dMAFSW5wdXQAwA1DcmVhdGVXaXRob3V0wAVJbnB1dADAFlVuY2hlY2tlZFVwZGF0ZVdpdGhvdXTABUlucHV0AMANVXBkYXRlV2l0aG91dMAFSW5wdXQAwBpVcGRhdGVNYW55V2l0aFdoZXJlV2l0aG91dMAFSW5wdXQAwBtVcGRhdGVUb09uZVdpdGhXaGVyZVdpdGhvdXTABUlucHV0AMDABkNyZWF0ZcAHV2l0aG91dMAFSW5wdXQAwAZDcmVhdGXABUlucHV0AMAGVXBkYXRlwAVJbnB1dADAC1NjYWxhcldoZXJlwAVJbnB1dAAFbm9kZSDADyBoYXMgbm8gY29udGVudAABYMAiYDogQSB2YWx1ZSBpcyByZXF1aXJlZCBidXQgbm90IHNldAAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pdGVydG9vbHMtMC4xNC4wL3NyYy9ncm91cGJ5bGF6eS5ycwAvaG9tZS9ydW5uZXIvLnJ1c3R1cC90b29sY2hhaW5zLzEuOTcuMS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3QvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbWFwL2VudHJ5LnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTAuMC9zcmMvbWFwL2NvcmUvZW50cnkucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvd2Fsa2Vycy9yZWxhdGlvbi9pbXBsaWNpdF9tYW55X3RvX21hbnkucnMAcXVlcnktY29tcGlsZXIvc2NoZW1hL3NyYy9idWlsZC9tdXRhdGlvbnMvY3JlYXRlX21hbnkucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci9yZWFkL21hbnkucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvd2Fsa2Vycy9tb2RlbC9wcmltYXJ5X2tleS5ycwBwc2wvcGFyc2VyLWRhdGFiYXNlL3NyYy9hdHRyaWJ1dGVzL3NoYXJkX2tleS5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1zdHJ1Y3R1cmUvc3JjL29yZGVyX2J5LnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvcmVhZC9hZ2dyZWdhdGlvbnMvZ3JvdXBfYnkucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYmFzZTY0LTAuMjIuMS9zcmMvZW5naW5lL2dlbmVyYWxfcHVycG9zZS9kZWNvZGVfc3VmZml4LnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL3dhbGtlcnMvaW5kZXgucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaW5kZXgucnMAcXVhaW50L3NyYy9hc3Qvcm93LnJzAHBzbC9zY2hlbWEtYXN0L3NyYy9wYXJzZXIvcGFyc2Vfdmlldy5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE3LjEvc3JjL3Jhdy5ycwAvcnVzdGMvOGJhYjI2ZjRmNjhlMGUyNmYwYmI3OTYwYmUzMzRkNWI1MjBlYTQ1Mi9saWJyYXJ5L2NvcmUvc3JjL251bS9pbXAvZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9yZXF1ZXN0X2NvbnRleHQucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvY29udGV4dC5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1zdHJ1Y3R1cmUvc3JjL3ByaXNtYV92YWx1ZV9leHQucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZG9jdW1lbnQvcGFyc2VfYXN0LnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC9zaGFyZWQvc21hbGxzb3J0LnJzAC9ob21lL3J1bm5lci8ucnVzdHVwL3Rvb2xjaGFpbnMvMS45Ny4xLXg4Nl82NC11bmtub3duLWxpbnV4LWdudS9saWIvcnVzdGxpYi9zcmMvcnVzdC9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9udW0tYmlnaW50LTAuNC4zL3NyYy9iaWd1aW50L2NvbnZlcnQucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWJpZ2ludC0wLjQuMy9zcmMvYmlnaW50L2NvbnZlcnQucnMAcXVlcnktY29tcGlsZXIvcXVlcnktYnVpbGRlcnMvc3FsLXF1ZXJ5LWJ1aWxkZXIvc3JjL2NvbnZlcnQucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci93cml0ZS91cHNlcnQucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LXN0cnVjdHVyZS9zcmMvc2VsZWN0aW9uX3Jlc3VsdC5ycwBwc2wvcGFyc2VyLWRhdGFiYXNlL3NyYy9hdHRyaWJ1dGVzL2RlZmF1bHQucnMAcXVlcnktY29tcGlsZXIvcXVlcnktYnVpbGRlcnMvc3FsLXF1ZXJ5LWJ1aWxkZXIvc3JjL2xpbWl0LnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL251bS1iaWdpbnQtMC40LjMvc3JjL2JpZ3VpbnQvc2hpZnQucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWJpZ2ludC0wLjQuMy9zcmMvYmlnaW50L3NoaWZ0LnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvd3JpdGUvZGlzY29ubmVjdC5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL3dyaXRlL2Nvbm5lY3QucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy9udW0vaW1wL2RpeV9mbG9hdC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pdGVydG9vbHMtMC4xNC4wL3NyYy9mb3JtYXQucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci9pbnB1dHMucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWludGVnZXItMC4xLjQ1L3NyYy9yb290cy5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL2V4dHJhY3RvcnMvcXVlcnlfYXJndW1lbnRzLnJzAHBzbC9zY2hlbWEtYXN0L3NyYy9wYXJzZXIvcGFyc2VfYXJndW1lbnRzLnJzAHBzbC9zY2hlbWEtYXN0L3NyYy9wYXJzZXIvcGFyc2VfY29tbWVudHMucnMAcXVlcnktY29tcGlsZXIvc2NoZW1hL3NyYy9idWlsZC9pbnB1dF90eXBlcy9vYmplY3RzL2ZpbHRlcl9vYmplY3RzLnJzAHF1ZXJ5LWNvbXBpbGVyL3NjaGVtYS9zcmMvYnVpbGQvaW5wdXRfdHlwZXMvb2JqZWN0cy91cGRhdGVfb25lX29iamVjdHMucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcGVzdC0yLjguNC9zcmMvaXRlcmF0b3JzL3BhaXJzLnJzAHBzbC9wc2wtY29yZS9zcmMvZGF0YW1vZGVsX2Nvbm5lY3Rvci9maWx0ZXJzLnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL3dhbGtlcnMucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy9mbXQvYnVpbGRlcnMucnMAcHNsL3BzbC1jb3JlL3NyYy9jb25maWd1cmF0aW9uL2Vudl92YXJzLnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL3JlbGF0aW9ucy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wZXN0LTIuOC40L3NyYy9pdGVyYXRvcnMvdG9rZW5zLnJzAHBzbC9wc2wtY29yZS9zcmMvYnVpbHRpbl9jb25uZWN0b3JzL3V0aWxzLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvZXh0cmFjdG9ycy91dGlscy5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL3dyaXRlL3V0aWxzLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvcmVhZC91dGlscy5ycwBxdWVyeS1jb21waWxlci9zY2hlbWEvc3JjL3V0aWxzLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Nocm9uby0wLjQuNDIvc3JjL25haXZlL2ludGVybmFscy5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1zdHJ1Y3R1cmUvc3JjL3dyaXRlX2FyZ3MucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvY29udGV4dC9hdHRyaWJ1dGVzLnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL2F0dHJpYnV0ZXMucnMAcHNsL3BzbC1jb3JlL3NyYy9jb21tb24vcHJldmlld19mZWF0dXJlcy5ycwBxdWFpbnQvc3JjL3Zpc2l0b3IvcG9zdGdyZXMucnMAcXVlcnktY29tcGlsZXIvc2NoZW1hL3NyYy9idWlsZC9pbnB1dF90eXBlcy9maWVsZHMvZmllbGRfZmlsdGVyX3R5cGVzLnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL2F0dHJpYnV0ZXMvbmF0aXZlX3R5cGVzLnJzAHBzbC9zY2hlbWEtYXN0L3NyYy9wYXJzZXIvcGFyc2VfdHlwZXMucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvdHlwZXMucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvbmFtZXMucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvdHlwZXMvaW5kZXhfZmllbGRzLnJzAC9ob21lL3J1bm5lci8ucnVzdHVwL3Rvb2xjaGFpbnMvMS45Ny4xLXg4Nl82NC11bmtub3duLWxpbnV4LWdudS9saWIvcnVzdGxpYi9zcmMvcnVzdC9saWJyYXJ5L3N0ZC9zcmMvc3lzL3RocmVhZF9sb2NhbC9ub190aHJlYWRzLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLnJ1c3R1cC90b29sY2hhaW5zLzEuOTcuMS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3QvbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL29uY2Uvbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLnJ1c3R1cC90b29sY2hhaW5zLzEuOTcuMS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3QvbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvYWxsb2Mvc3JjL3N0ci5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1idWlsZGVycy9zcWwtcXVlcnktYnVpbGRlci9zcmMvZmlsdGVyL3Zpc2l0b3IucnMAcXVhaW50L3NyYy92aXNpdG9yLnJzAHBzbC9wc2wtY29yZS9zcmMvZGF0YW1vZGVsX2Nvbm5lY3Rvci9lbXB0eV9jb25uZWN0b3IucnMAcHNsL3BzbC1jb3JlL3NyYy9idWlsdGluX2Nvbm5lY3RvcnMvcG9zdGdyZXNfZGF0YW1vZGVsX2Nvbm5lY3Rvci5ycwBwc2wvcHNsLWNvcmUvc3JjL2RhdGFtb2RlbF9jb25uZWN0b3IucnMAcHNsL3NjaGVtYS1hc3Qvc3JjL3BhcnNlci9wYXJzZV9zb3VyY2VfYW5kX2dlbmVyYXRvci5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL2Vycm9yLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjEwNC9zcmMvZXJyb3IucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvdXVpZC0xLjEwLjAvc3JjL2Vycm9yLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3Blc3QtMi44LjQvc3JjL2l0ZXJhdG9ycy9wYWlyLnJzAHF1ZXJ5LWNvbXBpbGVyL3JlcXVlc3QtaGFuZGxlcnMvc3JjL3Byb3RvY29scy9qc29uL3Byb3RvY29sX2FkYXB0ZXIucnMAcXVlcnktY29tcGlsZXIvcXVlcnktc3RydWN0dXJlL3NyYy9maWx0ZXIvaW50b19maWx0ZXIucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL3dyaXRlL3dyaXRlX2FyZ3NfcGFyc2VyLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2RvY3VtZW50L3BhcnNlci5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi91dWlkLTEuMTAuMC9zcmMvcGFyc2VyLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjEwNC9zcmMvdmFsdWUvc2VyLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjEwNC9zcmMvc2VyLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWNvbXBpbGVyL3NyYy9kYXRhX21hcHBlci5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1jb21waWxlci13YXNtL3NyYy9jb21waWxlci5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL2J1aWxkZXIucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci9leHRyYWN0b3JzL2ZpbHRlcnMvc2NhbGFyLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LXN0cnVjdHVyZS9zcmMvZmllbGQvc2NhbGFyLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29yZS9zcmMvbnVtL2ltcC9kZWMyZmx0L2RlY2ltYWxfc2VxLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjEwNC9zcmMvbGV4aWNhbC9iaGNvbXAucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvYXR0cmlidXRlcy9tYXAucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW5kZXhtYXAtMi4xMC4wL3NyYy9tYXAucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wZXN0LTIuOC40L3NyYy9wb3NpdGlvbi5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1idWlsZGVycy9zcWwtcXVlcnktYnVpbGRlci9zcmMvY3Vyc29yX2NvbmRpdGlvbi5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9udW0tYmlnaW50LTAuNC4zL3NyYy9iaWd1aW50L2FkZGl0aW9uLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LXN0cnVjdHVyZS9zcmMvZmllbGRfc2VsZWN0aW9uLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2RvY3VtZW50L3NlbGVjdGlvbi5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1zdHJ1Y3R1cmUvc3JjL3Byb2plY3Rpb25zL21vZGVsX3Byb2plY3Rpb24ucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWJpZ2ludC0wLjQuMy9zcmMvYmlndWludC9zdWJ0cmFjdGlvbi5ycwBwc2wvcGFyc2VyLWRhdGFiYXNlL3NyYy93YWxrZXJzL3JlbGF0aW9uLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWJ1aWxkZXJzL3NxbC1xdWVyeS1idWlsZGVyL3NyYy9tb2RlbF9leHRlbnNpb25zL3JlbGF0aW9uLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LXN0cnVjdHVyZS9zcmMvZmllbGQvcmVsYXRpb24ucnMAcXVlcnktY29tcGlsZXIvcXVlcnktc3RydWN0dXJlL3NyYy9yZWxhdGlvbi5ycwBsaWJzL3VzZXItZmFjaW5nLWVycm9ycy9zcmMvcXVlcnlfZW5naW5lL3ZhbGlkYXRpb24ucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWJpZ2ludC0wLjQuMy9zcmMvYmlndWludC9tdWx0aXBsaWNhdGlvbi5ycwBwc2wvc2NoZW1hLWFzdC9zcmMvcGFyc2VyL3BhcnNlX2V4cHJlc3Npb24ucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWJpZ2ludC0wLjQuMy9zcmMvYmlndWludC9kaXZpc2lvbi5ycwAvcnVzdGMvOGJhYjI2ZjRmNjhlMGUyNmYwYmI3OTYwYmUzMzRkNWI1MjBlYTQ1Mi9saWJyYXJ5L2NvcmUvc3JjL251bS9pbXAvZmx0MmRlYy9zdHJhdGVneS9kcmFnb24ucnMAcXVlcnktY29tcGlsZXIvcXVlcnktYnVpbGRlcnMvc3FsLXF1ZXJ5LWJ1aWxkZXIvc3JjL21vZGVsX2V4dGVuc2lvbnMvY29sdW1uLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Nocm9uby0wLjQuNDIvc3JjL2Zvcm1hdC9zY2FuLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29yZS9zcmMvbnVtL2ltcC9iaWdudW0ucnMAcHNsL3NjaGVtYS1hc3Qvc3JjL3BhcnNlci9wYXJzZV9lbnVtLnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL3dhbGtlcnMvZW51bS5ycwBwc2wvc2NoZW1hLWFzdC9zcmMvcGFyc2VyL3BhcnNlX21vZGVsLnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL3dhbGtlcnMvbW9kZWwucnMAcXVlcnktY29tcGlsZXIvcXVlcnktc3RydWN0dXJlL3NyYy9tb2RlbC5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1idWlsZGVycy9zcWwtcXVlcnktYnVpbGRlci9zcmMvc2VsZWN0L2xhdGVyYWwucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvdG9raW8tMS40NS4xL3NyYy90YXNrL3Rhc2tfbG9jYWwucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9zdGQvc3JjL3N5bmMvbGF6eV9sb2NrLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjEwNC9zcmMvbGV4aWNhbC9tYXRoLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWNvbXBpbGVyL3NyYy90cmFuc2xhdGUvcXVlcnkvcmVhZC9pbl9tZW1vcnlfcHJvY2Vzc2luZy5ycwAvaG9tZS9ydW5uZXIvLnJ1c3R1cC90b29sY2hhaW5zLzEuOTcuMS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3QvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWJ1aWxkZXJzL3NxbC1xdWVyeS1idWlsZGVyL3NyYy9vcmRlcmluZy5ycwAvcnVzdGMvOGJhYjI2ZjRmNjhlMGUyNmYwYmI3OTYwYmUzMzRkNWI1MjBlYTQ1Mi9saWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dhc20tYmluZGdlbi0wLjIuMTA1L3NyYy9leHRlcm5yZWYucnMAcXVlcnktY29tcGlsZXIvcXVlcnktc3RydWN0dXJlL3NyYy9kZWZhdWx0X3ZhbHVlLnJzAHBzbC9zY2hlbWEtYXN0L3NyYy9wYXJzZXIvcGFyc2VfYXR0cmlidXRlLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvZXh0cmFjdG9ycy9maWx0ZXJzL2NvbXBvc2l0ZS5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1zdHJ1Y3R1cmUvc3JjL2ZpZWxkL2NvbXBvc2l0ZS5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1jb21waWxlci9zcmMvdHJhbnNsYXRlL3F1ZXJ5L3dyaXRlLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2FzdC93cml0ZS5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1idWlsZGVycy9zcWwtcXVlcnktYnVpbGRlci9zcmMvd3JpdGUucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci93cml0ZS9kZWxldGUucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcGVzdC0yLjguNC9zcmMvcGFyc2VyX3N0YXRlLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWNvbXBpbGVyL3NyYy90cmFuc2xhdGUucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL25hdmlnYXRlLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvcmVhZC9hZ2dyZWdhdGlvbnMvYWdncmVnYXRlLnJzAHF1ZXJ5LWNvbXBpbGVyL3NjaGVtYS9zcmMvYnVpbGQvaW5wdXRfdHlwZXMvZmllbGRzL2RhdGFfaW5wdXRfbWFwcGVyL2NyZWF0ZS5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL3dyaXRlL2NyZWF0ZS5ycwBxdWVyeS1jb21waWxlci9zY2hlbWEvc3JjL2J1aWxkL2lucHV0X3R5cGVzL2ZpZWxkcy9kYXRhX2lucHV0X21hcHBlci91cGRhdGUucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci93cml0ZS91cGRhdGUucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy9udW0vaW1wL2RlYzJmbHQvcGFyc2UucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY2hyb25vLTAuNC40Mi9zcmMvZm9ybWF0L3BhcnNlLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjEwNC9zcmMvbGV4aWNhbC9wYXJzZS5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbmRleG1hcC0yLjEwLjAvc3JjL21hcC9jb3JlLnJzAHF1ZXJ5LWNvbXBpbGVyL3NjaGVtYS9zcmMvYnVpbGQvaW5wdXRfdHlwZXMvZmllbGRzL2ZpZWxkX3JlZl90eXBlLnJzAHBzbC9zY2hlbWEtYXN0L3NyYy9wYXJzZXIvcGFyc2VfY29tcG9zaXRlX3R5cGUucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvd2Fsa2Vycy9jb21wb3NpdGVfdHlwZS5ycwBxdWVyeS1jb21waWxlci9zY2hlbWEvc3JjL2J1aWxkL211dGF0aW9ucy9jcmVhdGVfb25lLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvcmVhZC9vbmUucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY2hyb25vLTAuNC40Mi9zcmMvZm9ybWF0L3N0cmZ0aW1lLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAcXVhaW50L3NyYy9hc3QvdGFibGUucnMAcXVlcnktY29tcGlsZXIvcXVlcnktYnVpbGRlcnMvc3FsLXF1ZXJ5LWJ1aWxkZXIvc3JjL21vZGVsX2V4dGVuc2lvbnMvdGFibGUucnMAcXVlcnktY29tcGlsZXIvcXVlcnktY29tcGlsZXIvc3JjL3Jlc3VsdF9ub2RlLnJzAC9ob21lL3J1bm5lci8ucnVzdHVwL3Rvb2xjaGFpbnMvMS45Ny4xLXg4Nl82NC11bmtub3duLWxpbnV4LWdudS9saWIvcnVzdGxpYi9zcmMvcnVzdC9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9idHJlZS9ub2RlLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuY29kZS5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9iYXNlNjQtMC4yMi4xL3NyYy9lbmdpbmUvZ2VuZXJhbF9wdXJwb3NlL2RlY29kZS5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS0xLjAuMjI4L3NyYy9wcml2YXRlL2RlLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjEwNC9zcmMvZGUucnMAcHNsL3BzbC1jb3JlL3NyYy9jb25maWd1cmF0aW9uL2RhdGFzb3VyY2UucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvc3RkL3NyYy9zeW5jL29uY2UucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGgvZ3VhcmQucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaGFzaGJyb3duLTAuMTUuMi9zcmMvcmF3L21vZC5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9kb2N1bWVudC9tb2QucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy9mbXQvbW9kLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWJ1aWxkZXJzL3NxbC1xdWVyeS1idWlsZGVyL3NyYy9zZWxlY3QvbW9kLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Nocm9uby0wLjQuNDIvc3JjL2Zvcm1hdC9tb2QucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci9leHRyYWN0b3JzL2ZpbHRlcnMvbW9kLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvcmVhZC9hZ2dyZWdhdGlvbnMvbW9kLnJzAHF1ZXJ5LWNvbXBpbGVyL3NjaGVtYS9zcmMvYnVpbGQvaW5wdXRfdHlwZXMvbW9kLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LXN0cnVjdHVyZS9zcmMvZmlsdGVyL3NjYWxhci9tb2QucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvc3RkL3NyYy9pby9tb2QucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGgvbW9kLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Nocm9uby0wLjQuNDIvc3JjL25haXZlL2RhdGUvbW9kLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvbW9kLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9tb2QucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY2hyb25vLTAuNC40Mi9zcmMvbmFpdmUvZGF0ZXRpbWUvbW9kLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Nocm9uby0wLjQuNDIvc3JjL2RhdGV0aW1lL21vZC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9jb3JlLTEuMC4yMjgvc3JjL2RlL21vZC5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1zdHJ1Y3R1cmUvc3JjL2ZpZWxkL21vZC5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL3dyaXRlL25lc3RlZC9tb2QucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ob21lL3J1bm5lci8ucnVzdHVwL3Rvb2xjaGFpbnMvMS45Ny4xLXg4Nl82NC11bmtub3duLWxpbnV4LWdudS9saWIvcnVzdGxpYi9zcmMvcnVzdC9saWJyYXJ5L2FsbG9jL3NyYy92ZWMvbW9kLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9tb2QucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy9udW0vaW1wL2ZsdDJkZWMvbW9kLnJzAHBzbC9wYXJzZXItZGF0YWJhc2Uvc3JjL3dhbGtlcnMvc2NhbGFyX2ZpZWxkLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWJ1aWxkZXJzL3NxbC1xdWVyeS1idWlsZGVyL3NyYy9tb2RlbF9leHRlbnNpb25zL3NjYWxhcl9maWVsZC5ycwBwc2wvcGFyc2VyLWRhdGFiYXNlL3NyYy93YWxrZXJzL3JlbGF0aW9uX2ZpZWxkLnJzAHBzbC9zY2hlbWEtYXN0L3NyYy9wYXJzZXIvcGFyc2VfZmllbGQucnMAcXVlcnktY29tcGlsZXIvc2NoZW1hL3NyYy9idWlsZC9vdXRwdXRfdHlwZXMvZmllbGQucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvYXR0cmlidXRlcy9pZC5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL3dyaXRlL25lc3RlZC91cHNlcnRfbmVzdGVkLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvd3JpdGUvbmVzdGVkL3NldF9uZXN0ZWQucnMAL2hvbWUvcnVubmVyLy5ydXN0dXAvdG9vbGNoYWlucy8xLjk3LjEteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci93cml0ZS9uZXN0ZWQvY29ubmVjdF9vcl9jcmVhdGVfbmVzdGVkLnJzAHF1ZXJ5LWNvbXBpbGVyL2NvcmUvc3JjL3F1ZXJ5X2dyYXBoX2J1aWxkZXIvd3JpdGUvbmVzdGVkL2NyZWF0ZV9uZXN0ZWQucnMAcXVlcnktY29tcGlsZXIvY29yZS9zcmMvcXVlcnlfZ3JhcGhfYnVpbGRlci93cml0ZS9uZXN0ZWQvdXBkYXRlX25lc3RlZC5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9ncmFwaF9idWlsZGVyL3JlYWQvcmVsYXRlZC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xMDQvc3JjL2xleGljYWwvY2FjaGVkLnJzAHF1ZXJ5LWNvbXBpbGVyL3F1ZXJ5LWNvbXBpbGVyL3NyYy90cmFuc2xhdGUvcXVlcnkvcmVhZC5ycwBxdWVyeS1jb21waWxlci9jb3JlL3NyYy9xdWVyeV9hc3QvcmVhZC5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1idWlsZGVycy9zcWwtcXVlcnktYnVpbGRlci9zcmMvcmVhZC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xMDQvc3JjL3JlYWQucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTMvc3JjL2RsbWFsbG9jLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvYWxsb2Mvc3JjL3N5bmMucnMAcHNsL3NjaGVtYS1hc3Qvc3JjL2xpYi5ycwBxdWVyeS1jb21waWxlci9xdWVyeS1idWlsZGVycy9zcWwtcXVlcnktYnVpbGRlci9zcmMvbGliLnJzAGxpYnMvcHJpc21hLXZhbHVlL3NyYy9saWIucnMAcHNsL3BhcnNlci1kYXRhYmFzZS9zcmMvbGliLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3VjZC10cmllLTAuMS42L3NyYy9saWIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaGV4LTAuNC4zL3NyYy9saWIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvanMtc3lzLTAuMy44Mi9zcmMvbGliLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2JpZ2RlY2ltYWwtMC4zLjEvc3JjL2xpYi5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pdGVydG9vbHMtMC4xNC4wL3NyYy9saWIucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3VuaWNvZGVfZGF0YS5ycwBxdWVyeS1jb21waWxlci9zY2hlbWEvc3JjL3F1ZXJ5X3NjaGVtYS5ycwBwc2wvc2NoZW1hLWFzdC9zcmMvcGFyc2VyL3BhcnNlX3NjaGVtYS5ycwAhVW5rbm93biBmdW5jdGlvbiBpbiBAZGVmYXVsdCgpOiBgwGZgIGlzIG5vdCBrbm93bi4gWW91IGNhbiByZWFkIGFib3V0IHRoZSBhdmFpbGFibGUgZnVuY3Rpb25zIGhlcmU6IGh0dHBzOi8vcHJpcy5seS9kL2F0dHJpYnV0ZS1mdW5jdGlvbnMABFRoZSDAByBuYW1lIGDAY2AgaXMgaW52YWxpZC4gSXQgaXMgYSByZXNlcnZlZCBuYW1lLiBQbGVhc2UgY2hhbmdlIGl0LiBSZWFkIG1vcmUgYXQgaHR0cHM6Ly9wcmlzLmx5L2QvbmFtaW5nLW1vZGVscwDAAiwgwBksIG9yIG90aGVyIGlnbm9yZWQgZmllbGRzABRJbnZhbGlkIGZpbHRlciBrZXkgYMAnYCBpbnB1dCBjb21iaW5hdGlvbiBmb3IgcmVsYXRpb24gZmlsdGVyABRJbnZhbGlkIGZpbHRlciBrZXkgYMAoYCBpbnB1dCBjb21iaW5hdGlvbiBmb3IgY29tcG9zaXRlIGZpbHRlcgDAE0NvbXBvc2l0ZUxpc3RGaWx0ZXIAwBJMaXN0UmVsYXRpb25GaWx0ZXIAwMAUU2NhbGFyUmVsYXRpb25GaWx0ZXIAwMAPQ29tcG9zaXRlRmlsdGVyAMDAwMDABkZpbHRlcgDALCBjYW4ndCBiZSByZXByZXNlbnRlZCBhcyBhIEphdmFTY3JpcHQgbnVtYmVyAMAQIGVsZW1lbnRzIGluIG1hcAAKY3JlYXRlTWFuecAJQW5kUmV0dXJuAAp1cGRhdGVNYW55wAlBbmRSZXR1cm4AwCcgaXMgbm90IGEgdmFsaWQgc2NhbGFyIGZpbHRlciBvcGVyYXRpb24AwCkgaXMgbm90IGEgdmFsaWQgZ3JvdXBpbmcgZmlsdGVyIG9wZXJhdGlvbgDAD1NjYWxhckZpZWxkRW51bQDAGU9yZGVyQnlSZWxldmFuY2VGaWVsZEVudW0AwAFfwARfbTJtAAVUaGUgYMAjYCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nIGxpdGVyYWwAAihuwAMpXG7AAlxsAAlQcm9wZXJ0eSDABCBpbiDAASDAHSBuZWVkcyB0byBiZSBhc3NpZ25lZCBhIHZhbHVlAMARR3JvdXBCeU91dHB1dFR5cGUAwA9Db3VudE91dHB1dFR5cGUACkNyZWF0ZU1hbnnAE0FuZFJldHVybk91dHB1dFR5cGUAClVwZGF0ZU1hbnnAE0FuZFJldHVybk91dHB1dFR5cGUAwMATQWdncmVnYXRlT3V0cHV0VHlwZQDACEVudmVsb3BlAA5UaGUgYXJndW1lbnQgYMAaYCBjYW4gb25seSBiZSBkZWZpbmVkIG9uY2UAwBUgZWxlbWVudHMgaW4gc2VxdWVuY2UABkVudW0gYMALYCBub3QgZm91bmQAD1JlbGF0aW9uRmllbGQgYMAMYCBvbiBtb2RlbCBgwAtgIG5vdCBmb3VuZAAHTW9kZWwgYMALYCBub3QgZm91bmQADVNjYWxhckZpZWxkIGDABWAgb24gwAIgYMALYCBub3QgZm91bmQAEENvbXBvc2l0ZUZpZWxkIGDABWAgb24gwAIgYMALYCBub3QgZm91bmQAB0ZpZWxkIGDABWAgb24gwAIgYMALYCBub3QgZm91bmQAMWludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IEZpZWxkICfAQycgZG9lcyBub3QgZXhpc3Qgb24gZW5jbG9zaW5nIHR5cGUgYW5kIGlzIG5vdCBhIGtub3duIHZpcnR1YWwgZmllbGQAUVVuYWJsZSB0byBmaXQgZmxvYXQgdmFsdWUgKG9yIGxhcmdlIEpTIGludGVnZXIgc2VyaWFsaXplZCBpbiBleHBvbmVudCBub3RhdGlvbikgJ8AqJyBpbnRvIGEgNjQgQml0IHNpZ25lZCBpbnRlZ2VyIGZvciBmaWVsZCAnwEQnLiBJZiB5b3UncmUgdHJ5aW5nIHRvIHN0b3JlIGxhcmdlIGludGVnZXJzLCBjb25zaWRlciB1c2luZyBgQmlnSW50YAAQZmxvYXRpbmcgcG9pbnQgYMABYAABYMAGYCBvciBgwAFgAAtjaGFyYWN0ZXIgYMABYAAJaW50ZWdlciBgwAFgABhDb3VsZCBub3QgY29udmVydCBmcm9tIGDABmAgdG8gYMABYAAJYm9vbGVhbiBgwAFgAA9taXNzaW5nIGZpZWxkIGDAAWAAEWR1cGxpY2F0ZSBmaWVsZCBgwAFgABlJbnZhbGlkIGFyZ3VtZW50IHZhbHVlLiBgwBJgIGlzIG5vdCBhIHZhbGlkIGDAAWAAOVVuZXhwZWN0ZWQgc2NhbGFyIGlucHV0IG9iamVjdCBuYW1lIGZvciBzdHJpbmcgZmlsdGVyczogYMABYAAYSW52YWxpZCBhcmd1bWVudCB0eXBlLiBgwCxgIHNob3VsZCBiZSBvZiBhbnkgb2YgdGhlIGZvbGxvd2luZyB0eXBlczogYMABYAAdSW52YWxpZCByZWZlcmVudGlhbCBhY3Rpb246IGDAAWAAAWDAAWAAJGBjdHgudmlzaXRfYXR0cmlidXRlcygpIGNhbGxlZCB3aXRoIMBBIHdoaWxlIHRoZSBDb250ZXh0IGlzIHN0aWxsIHZhbGlkYXRpbmcgcHJldmlvdXMgYXR0cmlidXRlIHNldCBvbiDAAWAABCAgICDACSBbbGFiZWw9IsBCIiwgZmlsbGNvbG9yPWJsdWUsIHN0eWxlPWZpbGxlZCwgc2hhcGU9cmVjdGFuZ2xlLCBmb250Y29sb3I9d2hpdGVdAAQgICAgwAkgW2xhYmVsPSLAQSIsIGZpbGxjb2xvcj1yZWQsIHN0eWxlPWZpbGxlZCwgc2hhcGU9cmVjdGFuZ2xlLCBmb250Y29sb3I9d2hpdGVdAAQgICAgwAkgW2xhYmVsPSLAEyIsIHNoYXBlPXJlY3RhbmdsZV0AwAJbXQAEICAgIMAEIC0+IMALIFtsYWJlbD0iKGXAAikgwAIiXQBUVW5hYmxlIHRvIG1hdGNoIGlucHV0IHZhbHVlIHRvIGFueSBhbGxvd2VkIGlucHV0IHR5cGUgZm9yIHRoZSBmaWVsZC4gUGFyc2UgZXJyb3JzOiBbwAFdAAFbwAFdAGtZb3UgcHJvdmlkZWQgbXVsdGlwbGUgdW5uYW1lZCBhcmd1bWVudHMuIFRoaXMgaXMgbm90IHBvc3NpYmxlLiBEaWQgeW91IGZvcmdldCB0aGUgYnJhY2tldHM/IERpZCB5b3UgbWVhbiBgW8ADXWA/ACQgRGlkIHlvdSBtZWFuIHRvIHByb3ZpZGUgYEBAdW5pcXVlKFvABF0pYD8AESBEaWQgeW91IG1lYW4gYEBAwAIoW8AEXSlgPwAcIERpZCB5b3UgbWVhbiB0byBwdXQgaXQgb24gYMACYD8ABlR5cGUgIsBiIiBpcyBuZWl0aGVyIGEgYnVpbHQtaW4gdHlwZSwgbm9yIHJlZmVycyB0byBhbm90aGVyIG1vZGVsLCBjb21wb3NpdGUgdHlwZSwgb3IgZW51bS4gRGlkIHlvdSBtZWFuICLAAiI/AAE8wAwgYnl0ZXMgYmxvYj4ABUxpc3Q8wAE+AAxQbGFjZWhvbGRlcjzAAT4AD0ludmFsaWQgdmFsdWUgJ8BjJyBpbiB3aGVyZSBjbGF1c2UuIEV4cGVjdGVkIHRydWUsIGZhbHNlLCBudWxsLCBhIHN0cmluZywgYSBudW1iZXIsIG9yIGFuIG9iamVjdCBsaWtlIHsgbm90OiBudWxsIH0uAA5UaGUgbmFtZSBvZiBhIMATIG11c3Qgbm90IGJlIGVtcHR5LgALT3BlcmF0aW9uICfADScgZm9yIG1vZGVsICfAGycgZG9lcyBub3QgbWF0Y2ggYW55IHF1ZXJ5LgAST3BhcXVlIHBhcmFtZXRlciAnwB0nIHVzZWQgYXMgcmF3IHZhbHVlIGluIHF1ZXJ5LgA/VGhlIGdpdmVuIG9wZXJhdG9yIGNsYXNzIGBBcnJheU9wc2AgZXhwZWN0cyB0aGUgdHlwZSBvZiBmaWVsZCBgwBFgIHRvIGJlIGFuIGFycmF5LgAhVGhlIHJlZmVyZW5jZWQgc2NhbGFyIGxpc3QgZmllbGQgwAEuwBAgZG9lcyBub3QgZXhpc3QuABxUaGUgcmVmZXJlbmNlZCBzY2FsYXIgZmllbGQgwAEuwBAgZG9lcyBub3QgZXhpc3QuABhNb2RlbCBvciBjb21wb3NpdGUgdHlwZSDAFCB1c2VkIGZvciBmaWVsZCByZWYgwBAgZG9lcyBub3QgZXhpc3QuAAFgwCAoKWAgdGFrZXMgYSBzaW5nbGUgSW50IGFyZ3VtZW50LgAKQXJndW1lbnQgIsArIiBpcyBhbHJlYWR5IHNwZWNpZmllZCBhcyB1bm5hbWVkIGFyZ3VtZW50LgAEVGhlIMACICLAHiIgY2Fubm90IGJlIGRlZmluZWQgYmVjYXVzZSBhIMAfIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzLgAEVGhlIMATIGluZGV4IGZpZWxkIHR5cGUgYMAgYCBoYXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFzcy4AR1RoZSBjaGFuZ2UgeW91IGFyZSB0cnlpbmcgdG8gbWFrZSB3b3VsZCB2aW9sYXRlIHRoZSByZXF1aXJlZCByZWxhdGlvbiAnwA8nIGJldHdlZW4gdGhlIGDAB2AgYW5kIGDACWAgbW9kZWxzLgAwVGhlIHVuaXF1ZSBpbmRleCBkZWZpbml0aW9uIHJlZmVycyB0byB0aGUgZmllbGQgwBAgbXVsdGlwbGUgdGltZXMuACRUaGUgY2hhcmFjdGVyIGAtYCBpcyBub3QgYWxsb3dlZCBpbiDAByBuYW1lcy4AMFRoZSBzaGFyZCBrZXkgZGVmaW5pdGlvbiByZWZlcnMgdG8gdGhlIHJlbGF0aW9uIMA6LiBTaGFyZCBrZXkgZGVmaW5pdGlvbnMgbXVzdCByZWZlcmVuY2Ugb25seSBzY2FsYXIgZmllbGRzLgApVGhlIGlkIGRlZmluaXRpb24gcmVmZXJzIHRvIHRoZSByZWxhdGlvbiDAMy4gSUQgZGVmaW5pdGlvbnMgbXVzdCByZWZlcmVuY2Ugb25seSBzY2FsYXIgZmllbGRzLgAOVGhlIGZ1bmN0aW9uIGDAKSgpYCBpcyBub3Qgc3VwcG9ydGVkIG9uIGNvbXBvc2l0ZSBmaWVsZHMuADBUaGUgc2hhcmQga2V5IGRlZmluaXRpb24gcmVmZXJzIHRvIHRoZSBvcHRpb25hbCDAPC4gU2hhcmQga2V5IGRlZmluaXRpb25zIG11c3QgcmVmZXJlbmNlIG9ubHkgcmVxdWlyZWQgZmllbGRzLgApVGhlIGlkIGRlZmluaXRpb24gcmVmZXJzIHRvIHRoZSBvcHRpb25hbCDANS4gSUQgZGVmaW5pdGlvbnMgbXVzdCByZWZlcmVuY2Ugb25seSByZXF1aXJlZCBmaWVsZHMuABBQcm92aWRlZCBsaW1pdCAowB0pIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLgAOVGhlIG5hbWUgb2YgYSDAHiBtdXN0IG5vdCBzdGFydCB3aXRoIGEgbnVtYmVyLgANVGhlIGZ1bmN0aW9uIMAZIGlzIG5vdCBhIGtub3duIGZ1bmN0aW9uLgAGVHlwZSAiwFMiIGlzIG5laXRoZXIgYSBidWlsdC1pbiB0eXBlLCBub3IgcmVmZXJzIHRvIGFub3RoZXIgbW9kZWwsIGNvbXBvc2l0ZSB0eXBlLCBvciBlbnVtLgAeVGhlIHZhbHVlIHByb3ZpZGVkIGZvciBjb2x1bW4gwA0gaXMgdG9vIGxvbmcuAApBcmd1bWVudCAiwA0iIGlzIG1pc3NpbmcuAAVUaGUgYMAeYCBhcmd1bWVudCBpcyBtaXNzaW5nIGEgdmFsdWUuACFDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCB2YWx1ZSDAEiB0byBBcmd1bWVudFZhbHVlLgAWVHlwZSBtaXNtYXRjaDogZmllbGQgJ8BAJyBpcyBhbiBFbnVtIGFuZCBvbmx5IGFjY2VwdHMgU3RyaW5nIHZhbHVlcyBpbiB0aGUgd2hlcmUgY2xhdXNlLgAHRmllbGQgJ8BKJyBpcyBhIHJlbGF0aW9uIGZpZWxkLiBPbmx5IHNjYWxhciBmaWVsZHMgY2FuIGJlIHVzZWQgaW4gdGhlIHdoZXJlIGNsYXVzZS4ADUNvbHVtbiB0eXBlICfALicgY291bGQgbm90IGJlIGRlc2VyaWFsaXplZCBmcm9tIHRoZSBkYXRhYmFzZS4AEVByZXZpZXcgZmVhdHVyZSAiwFoiIGlzIGRlcHJlY2F0ZWQuIFRoZSBmdW5jdGlvbmFsaXR5IGNhbiBiZSB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyBpdCBhcyBhIHByZXZpZXcgZmVhdHVyZS4AGlRoZSBnaXZlbiBvcGVyYXRvciBjbGFzcyBgwB1gIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGUgYMANYCBpbmRleCB0eXBlLgAaVGhlIGdpdmVuIG9wZXJhdG9yIGNsYXNzIGDAF2AgcG9pbnRzIHRvIHRoZSBmaWVsZCBgwB1gIHRoYXQgaXMgbm90IG9mIEJpZ0ludCB0eXBlLgAaVGhlIGdpdmVuIG9wZXJhdG9yIGNsYXNzIGDAF2AgcG9pbnRzIHRvIHRoZSBmaWVsZCBgwBpgIHRoYXQgaXMgbm90IG9mIEludCB0eXBlLgAaVGhlIGdpdmVuIG9wZXJhdG9yIGNsYXNzIGDAF2AgcG9pbnRzIHRvIHRoZSBmaWVsZCBgwBxgIHRoYXQgaXMgbm90IG9mIEZsb2F0IHR5cGUuABpUaGUgZ2l2ZW4gb3BlcmF0b3IgY2xhc3MgYMAXYCBwb2ludHMgdG8gdGhlIGZpZWxkIGDAHGAgdGhhdCBpcyBub3Qgb2YgQnl0ZXMgdHlwZS4AGlRoZSBnaXZlbiBvcGVyYXRvciBjbGFzcyBgwBdgIHBvaW50cyB0byB0aGUgZmllbGQgYMAbYCB0aGF0IGlzIG5vdCBvZiBKc29uIHR5cGUuABpUaGUgZ2l2ZW4gb3BlcmF0b3IgY2xhc3MgYMAXYCBwb2ludHMgdG8gdGhlIGZpZWxkIGDAHmAgdGhhdCBpcyBub3Qgb2YgRGVjaW1hbCB0eXBlLgABYMABLsAqYDogRmllbGQgZG9lcyBub3QgZXhpc3QgaW4gZW5jbG9zaW5nIHR5cGUuABpUaGUgZ2l2ZW4gb3BlcmF0b3IgY2xhc3MgYMAXYCBwb2ludHMgdG8gdGhlIGZpZWxkIGDAHWAgdGhhdCBpcyBub3Qgb2YgU3RyaW5nIHR5cGUuABpUaGUgZ2l2ZW4gb3BlcmF0b3IgY2xhc3MgYMAVYCBleHBlY3RzIHRoZSBmaWVsZCBgwCBgIHRvIGRlZmluZSBhIHZhbGlkIG5hdGl2ZSB0eXBlLgAaVGhlIGdpdmVuIG9wZXJhdG9yIGNsYXNzIGDAF2AgcG9pbnRzIHRvIHRoZSBmaWVsZCBgwB9gIHRoYXQgaXMgbm90IG9mIERhdGVUaW1lIHR5cGUuAAxBdHRyaWJ1dGUgIkDAGyIgY2FuIG9ubHkgYmUgZGVmaW5lZCBvbmNlLgAoSW52YWxpZCBvcmRlci1ieSByZWZlcmVuY2UgaW5wdXQ6IEZpZWxkIMAdIGlzIG5vdCBhIHZhbGlkIHNjYWxhciBmaWVsZC4AKEV4cGVjdGVkIGEgcmVmZXJlbmNlZCBzY2FsYXIgbGlzdCBmaWVsZCDAHCBidXQgZm91bmQgYSByZWxhdGlvbiBmaWVsZC4AI0V4cGVjdGVkIGEgcmVmZXJlbmNlZCBzY2FsYXIgZmllbGQgwBwgYnV0IGZvdW5kIGEgcmVsYXRpb24gZmllbGQuAChFeHBlY3RlZCBhIHJlZmVyZW5jZWQgc2NhbGFyIGxpc3QgZmllbGQgwB0gYnV0IGZvdW5kIGEgY29tcG9zaXRlIGZpZWxkLgAjRXhwZWN0ZWQgYSByZWZlcmVuY2VkIHNjYWxhciBmaWVsZCDAHSBidXQgZm91bmQgYSBjb21wb3NpdGUgZmllbGQuABtUaGUgZGVmaW5lZCBkZWZhdWx0IHZhbHVlIGDAO2AgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGVudW0gc3BlY2lmaWVkIGZvciB0aGUgZmllbGQuAAtUaGUgZmllbGQgYMBgYCBpcyBhIHJlbGF0aW9uIGZpZWxkIGFuZCBjYW5ub3QgYmUgbWFya2VkIHdpdGggYEBpZGAuIE9ubHkgc2NhbGFyIGZpZWxkcyBjYW4gYmUgZGVjbGFyZWQgYXMgaWQuAAtEZWZpbmluZyBgQMA7YCBhdHRyaWJ1dGUgZm9yIGEgZmllbGQgaW4gYSBjb21wb3NpdGUgdHlwZSBpcyBub3QgYWxsb3dlZC4AwGsgcmVmZXJzIHRvIGEgbW9kZWwsIG1ha2luZyB0aGlzIGEgcmVsYXRpb24gZmllbGQuIFJlbGF0aW9uIGZpZWxkcyBpbnNpZGUgY29tcG9zaXRlIHR5cGVzIGFyZSBub3Qgc3VwcG9ydGVkLgANVW5rbm93biBrZXkgJ8A5JyBpbiBuZXN0ZWQgd2hlcmUgY2xhdXNlIG9iamVjdC4gT25seSAnbm90JyBpcyBzdXBwb3J0ZWQuAAEiwDQiIGlzIGEgcmVzZXJ2ZWQgc2NhbGFyIHR5cGUgbmFtZSBhbmQgY2Fubm90IGJlIHVzZWQuADNBdHRlbXB0ZWQgY29udmVyc2lvbiBvZiBub24tbGlzdCBQYXJzZWRJbnB1dFZhbHVlICjAICkgaW50byBwcmlzbWEgdmFsdWUgbGlzdCBmYWlsZWQuADNBdHRlbXB0ZWQgY29udmVyc2lvbiBvZiBub24taW50IFByaXNtYSB2YWx1ZSB0eXBlICjAEikgaW50byBpbnQgZmFpbGVkLgAyQXR0ZW1wdGVkIGNvbnZlcnNpb24gb2Ygbm9uLW1hcCBQYXJzZWRJbnB1dFZhbHVlICjAEikgaW50byBtYXAgZmFpbGVkLgAyQXR0ZW1wdGVkIGNvbnZlcnNpb24gb2Ygbm9uLW1hcCBQYXJzZWRJbnB1dFZhbHVlICjAGSkgaW50byBPcHRpb24gbWFwIGZhaWxlZC4AN0F0dGVtcHRlZCBjb252ZXJzaW9uIG9mIG5vbi1ib29sZWFuIFByaXNtYSB2YWx1ZSB0eXBlICjAEykgaW50byBib29sIGZhaWxlZC4AKkF0dGVtcHRlZCBjb252ZXJzaW9uIG9mIFBhcnNlZElucHV0VmFsdWUgKMAwKSBpbnRvIHJlbGF0aW9uIGxvYWQgc3RyYXRlZ3kgZW51bSB2YWx1ZSBmYWlsZWQuACxBdHRlbXB0ZWQgY29udmVyc2lvbiBvZiBub24tZmllbGQtcmVmIGVudW0gKMArKSBpbnRvIHNjYWxhciBmaWVsZCByZWZlcmVuY2UgdmFsdWUgZmFpbGVkLgAqQXR0ZW1wdGVkIGNvbnZlcnNpb24gb2YgUGFyc2VkSW5wdXRWYWx1ZSAowBopIGludG8gUHJpc21hVmFsdWUgZmFpbGVkLgARQ29udmVyc2lvbiBmcm9tIGDABmAgdG8gYMAJYCBmYWlsZWQuAApBcmd1bWVudCAiwBciIGlzIGFscmVhZHkgc3BlY2lmaWVkLgABYMA8YDogQSB2YWx1ZSBpcyByZXF1aXJlZCBidXQgbm90IHNldC4gSXQgaXMgcmVxdWlyZWQgYmVjYXVzZSBgwA9gIHdhcyBwcm92aWRlZC4AB0ZpZWxkICfABScgaXMgwE4gYW5kIGNhbm5vdCBiZSB1c2VkIGluIHRoZSBvYmplY3Qgc3ludGF4IG9mIGEgd2hlcmUgY2xhdXNlLiBVc2UgcmF3KCkgaW5zdGVhZC4AEVByZXZpZXcgZmVhdHVyZSAiwEIiIGlzIGRlcHJlY2F0ZWQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFByaXNtYS4AIFRoZSBgbmFtZWAgcHJvcGVydHkgd2l0aGluIHRoZSBgwENgIGF0dHJpYnV0ZSBvbmx5IGFsbG93cyBmb3IgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiBgX2EtekEtWjAtOWAuAB9NaXNzaW5nIHRoZSByZXF1aXJlZCBhcmd1bWVudCBgwA1gIGZvciBmaWVsZCBgwAZgIG9uIGDAAmAuAAtFeHBlY3RlZCBhIMAVIHZhbHVlLCBidXQgcmVjZWl2ZWQgwAggdmFsdWUgYMACYC4ADlRoZSBmdW5jdGlvbiBgwCYoKWAgY2Fubm90IGJlIHVzZWQgb24gZmllbGRzIG9mIHR5cGUgYMACYC4AI0V4cGVjdGVkIGFuIGVudW0gdmFsdWUsIGJ1dCBmb3VuZCBgwAJgLgALRXhwZWN0ZWQgYSDAEyB2YWx1ZSwgYnV0IGZvdW5kIGDAAmAuABpUaGUgZ2l2ZW4gb3BlcmF0b3IgY2xhc3MgYMAgYCBkb2VzIG5vdCBzdXBwb3J0IG5hdGl2ZSB0eXBlIGDADGAgb2YgZmllbGQgYMACYC4ABFRoZSDANCBpbmRleCB0eXBlIGRvZXMgbm90IHN1cHBvcnQgdGhlIHR5cGUgb2YgdGhlIGZpZWxkIGDAAmAuABBQcm92aWRlZCBsaW1pdCAowCgpIGlzIGJleW9uZCBtYXggaW50IHZhbHVlIGZvciBwbGF0Zm9ybSAowAIpLgBAQXR0ZW1wdGVkIHRvIGV4ZWN1dGUgYSBxdWVyeSB0aGF0IGNvbnRhaW5zIGFuIG9wYXF1ZSBwYXJhbWV0ZXIgJ8ACJy4AB0ZpZWxkICfAGycgZG9lcyBub3QgZXhpc3QgaW4gbW9kZWwgJ8ACJy4APEV4cGVjdGVkIHF1ZXJ5IGluZm9ybWF0aW9uIHRvIGJlIGF0dGFjaGVkIG9uIHNjaGVtYSBvYmplY3QgJ8AKJywgZmllbGQgJ8ACJy4AF0F0dHJpYnV0ZSBub3Qga25vd246ICJAwAIiLgAHVmFsdWUgIsAeIiBpcyBhbHJlYWR5IGRlZmluZWQgb24gZW51bSAiwAIiLgAKQXJndW1lbnQgIsAhIiBpcyBtaXNzaW5nIGluIGdlbmVyYXRvciBibG9jayAiwAIiLgAKQXJndW1lbnQgIsAjIiBpcyBtaXNzaW5nIGluIGRhdGEgc291cmNlIGJsb2NrICLAAiIuAAdGaWVsZCAiwCgiIGlzIGFscmVhZHkgZGVmaW5lZCBvbiBjb21wb3NpdGUgdHlwZSAiwAIiLgAVUHJvcGVydHkgbm90IGtub3duOiAiwAIiLgAVQXJndW1lbnQgbm90IGtub3duOiAiwAIiLgAgRGF0YXNvdXJjZSBwcm92aWRlciBub3Qga25vd246ICLAAiIuAAdGaWVsZCAiwBgiIGlzIGFscmVhZHkgZGVmaW5lZCBvbiDAAiAiwAIiLgArRXhwZWN0ZWQgYSByZWZlcmVuY2VkIHNjYWxhciBmaWVsZCBvZiB0eXBlIMDACyBidXQgZm91bmQgwAkgb2YgdHlwZSDAwAEuABBPbiBgcHJvdmlkZXIgPSAiwBUiYCwgcHJldmlldyBmZWF0dXJlICLAFyIgaGFzIGJlZW4gcmVuYW1lZCB0byAiwCMiLiBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcHJpcy5seS9kL8ABLgARUHJldmlldyBmZWF0dXJlICLAFyIgaGFzIGJlZW4gcmVuYW1lZCB0byAiwCMiLiBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcHJpcy5seS9kL8ABLgAWRXhwZWN0ZWQgYSBtaW5pbXVtIG9mIMANIGFuZCBhdCBtb3N0IMAbIGZpZWxkcyB0byBiZSBwcmVzZW50LCBnb3QgwAEuABFFeHBlY3RlZCBhdCBtb3N0IMAbIGZpZWxkcyB0byBiZSBwcmVzZW50LCBnb3QgwAEuABZFeHBlY3RlZCBhIG1pbmltdW0gb2YgwBsgZmllbGRzIHRvIGJlIHByZXNlbnQsIGdvdCDAAS4ALkV4cGVjdGVkIGV4YWN0bHkgb25lIGZpZWxkIHRvIGJlIHByZXNlbnQsIGdvdCDAAS4AFkV4cGVjdGVkIGEgbWluaW11bSBvZiDADSBhbmQgYXQgbW9zdCDADCBmaWVsZHMgb2YgKMAVKSB0byBiZSBwcmVzZW50LCBnb3QgwAEuABFFeHBlY3RlZCBhdCBtb3N0IMAMIGZpZWxkcyBvZiAowBUpIHRvIGJlIHByZXNlbnQsIGdvdCDAAS4AFkV4cGVjdGVkIGEgbWluaW11bSBvZiDADCBmaWVsZHMgb2YgKMAVKSB0byBiZSBwcmVzZW50LCBnb3QgwAEuAB9FeHBlY3RlZCBleGFjdGx5IG9uZSBmaWVsZCBvZiAowBUpIHRvIGJlIHByZXNlbnQsIGdvdCDAAS4AJkV4cGVjdGVkIGFueSBzZWxlY3Rpb24gb2YgZmllbGRzLCBnb3QgwAEuABZUeXBlIG1pc21hdGNoOiBmaWVsZCAnwA0nIGlzIG9mIHR5cGUgwBMsIGJ1dCB0aGUgdmFsdWUgaXMgwAEuAAFgwEsoKWAgdGFrZXMgZWl0aGVyIG5vIGFyZ3VtZW50LCBvciBhIHNpbmdsZSBpbnRlZ2VyIGFyZ3VtZW50IHdoaWNoIGlzIGVpdGhlciDAAS4APFRoZSBtdWx0aSBmaWVsZCBzaGFyZCBrZXkgZGVjbGFyYXRpb24gcmVmZXJzIHRvIHRoZSB1bmtub3duIMABLgA1VGhlIG11bHRpIGZpZWxkIGlkIGRlY2xhcmF0aW9uIHJlZmVycyB0byB0aGUgdW5rbm93biDAAS4AOFRoZSBzY2FsZSBtdXN0IG5vdCBiZSBsYXJnZXIgdGhhbiB0aGUgcHJlY2lzaW9uIGZvciB0aGUgwBAgbmF0aXZlIHR5cGUgaW4gwAEuAAVLZXkgIsAYIiBpcyBhbHJlYWR5IGRlZmluZWQgaW4gwAEuABRJbnZhbGlkIE5hdGl2ZSB0eXBlIMABLgAJRXhwZWN0ZWQgwAwsIGJ1dCBmb3VuZCDAAS4ALVRoaXMgbGluZSBpcyBub3QgYSB2YWxpZCBkZWZpbml0aW9uIHdpdGhpbiBhIMABLgA+SW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIGdpdmVuIHRvIGEgc3RhdGVtZW50LiBFeHBlY3RlZCDABzogZ290OiDAAS4ABFRoZSDAL2luZGV4IGRlZmluaXRpb24gcmVmZXJzIHRvIHRoZSB1bmtub3duIGZpZWxkczogwAEuABRVbmtub3duIGluZGV4IHR5cGU6IMABLgA+VGhlIGBzb3J0YCBhcmd1bWVudCBjYW4gb25seSBiZSBgQXNjYCBvciBgRGVzY2AgeW91IHByb3ZpZGVkOiDAAS4AJkV4cGVjdGVkIGEgcmVmZXJlbmNlZCBzY2FsYXIgZmllbGQgb2YgwAEgwBcsIGJ1dCBmb3VuZCBhIGZpZWxkIG9mIMABIMABLgAoY3JlYXRlIG9yIGNvbm5lY3QgaW5saW5lZCByZWxhdGlvbiBmb3IgJ8ALJyByZWNvcmQocykAHWNyZWF0ZSBpbmxpbmVkIHJlbGF0aW9uIGZvciAnwAsnIHJlY29yZChzKQAddXBkYXRlIGlubGluZWQgcmVsYXRpb24gZm9yICfACycgcmVjb3JkKHMpABhpbmxpbmUgdGhlIHJlbGF0aW9uIG9uICfACycgcmVjb3JkKHMpAAZmaW5kICfACycgcmVjb3JkKHMpABFzdGFydCBieXRlIGluZGV4IMAmIGlzIG5vdCBhIGNoYXIgYm91bmRhcnk7IGl0IGlzIGluc2lkZSDACCAoYnl0ZXMgwAsgb2Ygc3RyaW5nKQAPZW5kIGJ5dGUgaW5kZXggwCYgaXMgbm90IGEgY2hhciBib3VuZGFyeTsgaXQgaXMgaW5zaWRlIMAIIChieXRlcyDACyBvZiBzdHJpbmcpAAxCaWdEZWNpbWFsKCLAAiIpABkoQ29udmVydGluZyB0eXBlIGZhaWxlZCkgwAIgKMABOsABOsABKQAHT2JqZWN0KMABKQAHTnVtYmVyKMABKQAFQm9vbCjAASkAB1N0cmluZyjAASkACEpzVmFsdWUowAEpAMABKMABKQAnY2FuIG9ubHkgZmxhdHRlbiBzdHJ1Y3RzIGFuZCBtYXBzIChnb3QgwAEpABVgYXRgIHNwbGl0IGluZGV4IChpcyDAFykgc2hvdWxkIGJlIDw9IGxlbiAoaXMgwAEpABJyZW1vdmFsIGluZGV4IChpcyDAFikgc2hvdWxkIGJlIDwgbGVuIChpcyDAASkAFnN3YXBfcmVtb3ZlIGluZGV4IChpcyDAFikgc2hvdWxkIGJlIDwgbGVuIChpcyDAASkAwAsgKG9zIGVycm9yIMABKQAZVXBkYXRlTWFueVJlY29yZHMobW9kZWw6IMAILCBhcmdzOiDAASkAFFVwZGF0ZVJlY29yZChtb2RlbDogwAosIGZpbHRlcjogwAgsIGFyZ3M6IMATLCBzZWxlY3RlZF9maWVsZHM6IMABKQAUQ3JlYXRlUmVjb3JkKG1vZGVsOiDACCwgYXJnczogwBMsIHNlbGVjdGVkX2ZpZWxkczogwAEpABhNYW55UmVjb3Jkc1F1ZXJ5KG5hbWU6ICfACycsIG1vZGVsOiAnwA4nLCBzZWxlY3Rpb246IMABKQATUmVjb3JkUXVlcnkobmFtZTogJ8AOJywgc2VsZWN0aW9uOiDAASkAG1JlbGF0ZWRSZWNvcmRzUXVlcnkobmFtZTogJ8ASJywgcGFyZW50IG1vZGVsOiAnwBsnLCBwYXJlbnQgcmVsYXRpb24gZmllbGQ6ICfADicsIHNlbGVjdGlvbjogwAEpABtSZWxhdGVkUmVjb3Jkc1F1ZXJ5KG5hbWU6ICfAEicsIHBhcmVudCBtb2RlbDogJ8AaJywgcGFyZW50IHJlbGF0aW9uIGZpZWxkOiDADSwgc2VsZWN0aW9uOiDAASkABkVycm9yKMAILCBsaW5lOiDACiwgY29sdW1uOiDAASkAGENyZWF0ZU1hbnlSZWNvcmQobW9kZWw6IMABKQAEdmFyKMACOiDAASkAwAEoAAJFJ8ABJwANdHJhY2VwYXJlbnQ9J8ABJwAHRmllbGQgJ8AfJyBub3QgZm91bmQgaW4gZW5jbG9zaW5nIHR5cGUgJ8ABJwAhQ2Fubm90IHNlbGVjdCBvdmVyIHNjYWxhciBmaWVsZCAnwAEnAAEnwAEnAAElwAElACBJbnZhbGlkIHJlbGF0aW9uIG1vZGUgc2V0dGluZzogIsAsIi4gU3VwcG9ydGVkIHZhbHVlczogInByaXNtYSIsICJmb3JlaWduS2V5cyIAwAIgIsABIgABIsABIgBPbmNlIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAQcSWwgALBgEAAACJAQBB1JbCAAsGAQAAAIoBAEHklsIACwYBAAAAiwEAQfSWwgALBgEAAACMAQBBhJfCAAsGAQAAAI0BAEGUl8IACwYBAAAAjgEAQaSXwgAL4QcBAAAAjwEAAHJhd1NxbGFyZ1R5cGVzdGVtcGxhdGVTcWxwbGFjZWhvbGRlckZvcm1hdHNjYWxhclR5cGVkYlR5cGV1bmtub3dudHVwbGVzZXFnZXRnZXRGaXJzdE5vbkVtcHR5ZXhlY3V0ZWNvbmNhdG1hcEZpZWxkZGF0YU1hcHZhbGlkYXRlZGlmZmluaXRpYWxpemVSZWNvcmRtYXBSZWNvcmRwcm9jZXNzbGFzdEluc2VydElkYWRkc3VidHJhY3RwYWdpbmF0aW9ucmV2ZXJzZWxpbmtpbmdGaWVsZHNvbnBhcmVudEZpZWxkaXNSZWxhdGlvblVuaXF1ZWV4dGVuc2lvbmVuY29kaW5nYmFzZTY0b3B0aW9uYWxhZmZlY3RlZFJvd3NkYk5hbWVmaWVsZFR5cGVzZXJpYWxpemVkTmFtZXNraXBOdWxsc2hhc051bWJlcmluZ3N0cmluZ0NodW5rcGFyYW1ldGVycGFyYW1ldGVyVHVwbGVpdGVtUHJlZml4aXRlbVNlcGFyYXRvcml0ZW1TdWZmaXhwYXJhbWV0ZXJUdXBsZUxpc3Rncm91cFNlcGFyYXRvcnJvd0NvdW50RXFyb3dDb3VudE5lcWFmZmVjdGVkUm93Q291bnRFcW5ldmVyc2NoZW1hTmFtZW1heEJpbmRWYWx1ZXNzdXBwb3J0c1JlbGF0aW9uSm9pbnMAAI6NEAAKAAAAmI0QAA0AAACljRAAFQAAADRdEQAIAAAAZGF0YW1vZGVsY29ubmVjdGlvbkluZm8A3I0QAAkAAAA4UREACAAAAOWNEAAOAAAAbXVsdGlwbGFuc2NvbXBhY3RlZHBsYW5uZXN0ZWRTZWxlY3Rpb25rZXlzZXhwZWN0Tm9uRW1wdHltb2RlbF9hX25hbWVtb2RlbF9iX25hbWVkZXRhaWxzbmFtZXNjaGlsZHJlbmNhbkFzc3VtZVN0cmljdEVxdWFsaXR5Y2FsbGVkIGBPcHRpb246OnVud3JhcF90aHJvdygpYCBvbiBhIGBOb25lYCB2YWx1ZXJlY29yZHNzdHJ1Y3R1cmVlbnVtc3J1bGVzZXJyb3JJZGVudGlmaWVyY29udGV4dHRoZW5NYXAga2V5IGlzIG5vdCBhIHN0cmluZyBhbmQgY2Fubm90IGJlIGFuIG9iamVjdCBrZXkxH48QAAEAAABvcGVyYXRpb25zYmluZGluZ3MAAERLEABxAAAApgAAADIAAAABAQAAVW5leHBlY3RlZCBiYXRjaCByZXF1ZXN0/T0QAGUAAADLAAAALQAAAB0gEAAqAAAAOAAAABUAQZCfwgALDgEAAACQAQAAkQEAAJIBAEGon8IAC60CAQAAAJMBAACUAQAAlQEAAJYBAACXAQAAmAEAAJkBAACaAQAAmwEAAJwBAACdAQAAngEAAJ8BAACgAQAAoQEAAKIBAACjAQAApAEAAKUBAACkAQAApgEAAKcBAACoAQAAqQEAAKoBAACrAQAArAEAAK0BAACuAQAArwEAALABAACxAQAAsgEAALMBAAC0AQAAsQEAALUBAAC2AQAAtwEAALgBAAC5AQAAugEAALsBAAC8AQAAsQEAAL0BAAC9AQAAvQEAALEBAAA2NBAAMgAAAC8AAAAOAAAAc3RydWN0IEpzQ29ubmVjdGlvbkluZm9lbnVtIEFkYXB0ZXJQcm92aWRlcnN0cnVjdCBRdWVyeUNvbXBpbGVyUGFyYW1zAgYA/////wAAAAAAAAAAAwBB4KHCAAsO/////wAAAAAAAAAAAwEAQfihwgALDv////8AAAAAAAAAAAMIAEGQosIACw7/////AAAAAAAAAAADBABBqKLCAAsO/////wAAAAAAAAAAAwIAQcCiwgALDv////8AAAAAAAAAAAMHAEHYosIACw7/////AAAAAAAAAAADBQBB8KLCAAsO/////wAAAAAAAAAAAwMAQYijwgALDv////8AAAAAAAAAAAMGAEGgo8IACxX/////qVURAAgAAAD/////yJAQAAEAQcCjwgALFf////+xVREABwAAAP/////IkBAAAQBB4KPCAAsV/////+xYEgAGAAAA/////+CQEAABAEGApMIACzX/////OAASAAcAAAD/////+JAQAAEAAAAAAAAAAgAAAP////+4VREABQAAAP/////4kBAAAQBBwKTCAAsV/////71VEQAEAAAA/////xCREAABAEHgpMIACxX/////wVURAAMAAAD/////yJAQAAEAQYClwgALFf/////EVREABgAAAP////8QkRAAAQBBoKXCAAsV/////8pVEQAEAAAA/////yiREAABAEHApcIACxX/////zlURAA8AAAD/////KJEQAAEAQeClwgALVf/////dVREABwAAAP////8QkRAAAQAAAAAAAAABAAAA/////zyoEQAEAAAA/////xCREAABAAAAAAAAAAEAAAD/////2HgRAAQAAAD/////EJEQAAEAQcCmwgALFf/////kVREABQAAAP////9AkRAAAQBB4KbCAAtV/////+lVEQAJAAAA/////1iREAABAAAAAAAAAAEAAAD/////8lURAAsAAAD/////WJEQAAEAAAAAAAAAAQAAAP/////veBEABAAAAP////9YkRAAAQBBwKfCAAtV//////N4EQAEAAAA/////1iREAABAAAAAAAAAAEAAAD//////VURAAYAAAD/////WJEQAAEAAAAAAAAAAQAAAP/////kTBIABwAAAP////9wkRAAAQBBoKjCAAtV/////wNWEQADAAAA/////xCREAABAAAAAAAAAAEAAAD/////BlYRAAYAAAD/////EJEQAAEAAAAAAAAAAQAAAP/////yTBIABAAAAP////8QkRAAAQBBgKnCAAsV/////+x4EQADAAAA/////xCREAABAEGgqcIACxX/////9kwSAAQAAAD/////iJEQAAEAQcCpwgALFf////8MVhEABQAAAP////+IkRAAAQBB4KnCAAtuUG9zdGdyZXM2NBAAMgAAAKYAAAAVAAAAYXR0ZW1wdGVkIHRvIHRha2Ugb3duZXJzaGlwIG9mIFJ1c3QgdmFsdWUgd2hpbGUgaXQgd2FzIGJvcnJvd2VkAL4BAAAMAAAABAAAAL8BAADAAQAAwQEAQdiqwgALFQEAAADCAQAAUDIwMTJQMjAwOe+/vQBB+KrCAAtuAQAAAMMBAAChLhAASAAAAN8AAAA3AAAAoS4QAEgAAADgAAAAKwAAALxYEABJAAAAlQEAADIAAABEUhAAUAAAABwAAAAFAAAAB1MQAEwAAADPCAAADQAAAMQBAAAMAAAABAAAAMUBAADGAQAAxwEAQfCrwgALowYBAAAAyAEAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHN0cmVhbSBkaWQgbm90AAAJIxAASAAAAI8CAAAOAAAATGF5b3V0RXJyb3IAyQEAAAwAAAAEAAAAygEAAMkBAAAMAAAABAAAAMsBAADKAQAAbJYQAMwBAADNAQAAzgEAAMwBAADPAQAAOx4QAHsAAABUAAAACQAAAOFJEAB0AAAAZQAAADgAAADhSRAAdAAAAGEAAAANAAAA4UkQAHQAAABe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QkJCQkJCQkJCQkJCQkJCQkJCQgAAAAAAAABISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISgAASkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMAAAAAE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QAABQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFIAAAAAVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFYAAFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYAABYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFoAAAAAXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF4AAF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYAAAAABiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGBOYWl2ZURhdGVUaW1lIC0gVGltZURlbHRhYCBvdmVyZmxvd2VkAC1QEABpAAAAHwcAACYAAACuRxAAZgAAALMBAAAqAAAArkcQAGYAAADYAQAAFAAAAK5HEABmAAAA4QEAAEAAAAAAAAAAZJkQAAEAAAAECAEAQfDCwgALC2SZEAABAAAABAIBAEGJw8IACwqxEAABAAAABAcBAEGhw8IACwqxEAABAAAABAgBAEG4w8IACwtGGRIAAQAAAAQRAQBB0MPCAAsLRhkSAAEAAAAEEQEAQejDwgALC0YZEgABAAAABBIBAEH8w8IA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AAAAAAAAECcAAAAAAACghgEAAAAAAEBCDwAAAAAAgJaYAAAAAAAA4fUFAAAAAADKmjsAAAAAAOQLVAIAAAAA6HZIFwAAAAAQpdToAAAAAKByThgJAAAAQHoQ81oAAACAxqR+jQMAAAAAAAQAAAAEAAAA0AEAAAAAAAAEAAAABAAAANEBAADHWxAAWAAAACsAAAAjAAAALStOYU5pbmYwMC4wZTBlMGFzc2VydGlvbiBmYWlsZWQ6IGJ1Zi5sZW4oKSA+PSBzaWdfZGlnaXRzAAAAVFMQAFcAAABDAgAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IGJ1Zi5sZW4oKSA+PSBtYXhsZW4AAABUUxAAVwAAAIsCAAANAAAAAAMGCQ0QExcaHSEkJysuMTU4OyB7ICB7CigKYXR0ZW1wdGVkIHRvIGJlZ2luIGEgbmV3IG1hcCBlbnRyeSB3aXRob3V0IGNvbXBsZXRpbmcgdGhlIHByZXZpb3VzIG9uZQAAAHkoEABQAAAA2QMAAA0AAABhdHRlbXB0ZWQgdG8gZmluaXNoIGEgbWFwIHdpdGggYSBwYXJ0aWFsIGVudHJ5AAB5KBAAUAAAALEEAAANAAAAZW50aXR5IG5vdCBmb3VuZHBlcm1pc3Npb24gZGVuaWVkY29ubmVjdGlvbiByZWZ1c2VkY29ubmVjdGlvbiByZXNldGhvc3QgdW5yZWFjaGFibGVuZXR3b3JrIHVucmVhY2hhYmxlY29ubmVjdGlvbiBhYm9ydGVkbm90IGNvbm5lY3RlZGFkZHJlc3MgaW4gdXNlYWRkcmVzcyBub3QgYXZhaWxhYmxlbmV0d29yayBkb3duYnJva2VuIHBpcGVlbnRpdHkgYWxyZWFkeSBleGlzdHNvcGVyYXRpb24gd291bGQgYmxvY2tub3QgYSBkaXJlY3RvcnlpcyBhIGRpcmVjdG9yeWRpcmVjdG9yeSBub3QgZW1wdHlyZWFkLW9ubHkgZmlsZXN5c3RlbSBvciBzdG9yYWdlIG1lZGl1bWZpbGVzeXN0ZW0gbG9vcCBvciBpbmRpcmVjdGlvbiBsaW1pdCAoZS5nLiBzeW1saW5rIGxvb3Apc3RhbGUgbmV0d29yayBmaWxlIGhhbmRsZWludmFsaWQgaW5wdXQgcGFyYW1ldGVyaW52YWxpZCBkYXRhdGlt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ANvniBwAAMKJihwAAP//eR0AAASKfR0AAOYOjh0AADiKAR6UAf//mx4AAMX/oR5eAf//AB8HAAgAEB8FAAgAIB8HAAgAMB8HAAgAQB8FAAgAUR8GAQgAYB8HAAgAcB8BAEoAch8DAFYAdh8BAGQAeB8BAIAAeh8BAHAAfB8BAH4AsB8BAAgAvh8AANvj0B8BAAgA4B8BAAgA5R8AAAcATiEAAOT/cCEPAPD/hCEAAP//0CQZAOb/MCwvAND/YSwAAP//ZSwAANXVZiwAANjVaCwEAf//cywAAP//diwAAP//gSxiAf//7CwCAf//8ywAAP//AC0lAKDjJy0AAKDjLS0AAKDjQaYsAf//gaYaAf//I6cMAf//M6c8Af//eqcCAf//f6cIAf//jKcAAP//kacCAf//lKcAADAAl6cSAf//tacOAf//yKcCAf//zacOAf//9qcAAP//U6sAAGD8cKtPADBoQf8ZAOD/3wBTAFMAAABJAbwCTgAAAPABSgAMAwAAkAOZAwgDAQOwA6UDCAMBA4cFNQVSBQAAlh5IADEDAACXHlQACAMAAJgeVwAKAwAAmR5ZAAoDAACaHkEAvgIAAFAfpQMTAwAAUh+lAxMDAANUH6UDEwMBA1YfpQMTA0IDgB8IH5kDAACBHwkfmQMAAIIfCh+ZAwAAgx8LH5kDAACEHwwfmQMAAIUfDR+ZAwAAhh8OH5kDAACHHw8fmQMAAIgfCB+ZAwAAiR8JH5kDAACKHwofmQMAAIsfCx+ZAwAAjB8MH5kDAACNHw0fmQMAAI4fDh+ZAwAAjx8PH5kDAACQHygfmQMAAJEfKR+ZAwAAkh8qH5kDAACTHysfmQMAAJQfLB+ZAwAAlR8tH5kDAACWHy4fmQMAAJcfLx+ZAwAAmB8oH5kDAACZHykfmQMAAJofKh+ZAwAAmx8rH5kDAACcHywfmQMAAJ0fLR+ZAwAAnh8uH5kDAACfHy8fmQMAAKAfaB+ZAwAAoR9pH5kDAACiH2ofmQMAAKMfax+ZAwAApB9sH5kDAAClH20fmQMAAKYfbh+ZAwAApx9vH5kDAACoH2gfmQMAAKkfaR+ZAwAAqh9qH5kDAACrH2sfmQMAAKwfbB+ZAwAArR9tH5kDAACuH24fmQMAAK8fbx+ZAwAAsh+6H5kDAACzH5EDmQMAALQfhgOZAwAAth+RA0IDAAC3H5EDQgOZA7wfkQOZAwAAwh/KH5kDAADDH5cDmQMAAMQfiQOZAwAAxh+XA0IDAADHH5cDQgOZA8wflwOZAwAA0h+ZAwgDAAPTH5kDCAMBA9YfmQNCAwAA1x+ZAwgDQgPiH6UDCAMAA+MfpQMIAwED5B+hAxMDAADmH6UDQgMAAOcfpQMIA0ID8h/6H5kDAADzH6kDmQMAAPQfjwOZAwAA9h+pA0IDAAD3H6kDQgOZA/wfqQOZAwAAAPtGAEYAAAAB+0YASQAAAAL7RgBMAAAAA/tGAEYASQAE+0YARgBMAAX7UwBUAAAABvtTAFQAAAAT+0QFRgUAABT7RAU1BQAAFftEBTsFAAAW+04FRgUAABf7RAU9BQAAKAQnANj/2AQjANj/lwUKANn/owUOANn/swUGANn/uwUBANn/wAwyAMD/cA0VAOD/wBgfAOD/YG4fAOD/u24YAOX/IukhAN7/AADUwhAAuQAAACrHEABmAAAAWsoQAAwAAAACAAAAAAAAALACAABdE2ABEhfgIL0fICF8LCAvBTBgMxWg4DT4pGA2DKagNh774DYA/uBC/QFhQ4AHIUcBCuFHJA2hSKsOIUovGCFLOxnhWvMeYVswNKFjHmEhZfBqoWVAbSFmT2/hZvCvYWedvKFoAM9haWfR4WkA2mFqAOCha67iIW3r5CFv0Oihb/vzYXEBAO5x8AE/cgADAACDBCAAkQVgAF0ToAASFyAfDCBgH+8sYCsqMOArb6agLAKoIC0e+yAuAP5gNp7/oDb9ASE3AQphNyQNITirDqE5LxghOvMeIUtANKFTHmHhVPBqYVVPb+FVnbxhVgDPYVdl0aFXANohWADgoVmu4iFb7OThXNDoYV0gAO5e8AF/X2AGAABmCeAAQBCgAWkT4AXuFmAGRhmgBnAgoAdgJKAJdifgCv0sYAsHMKALkjHgCyCmoAwwqCAO8KugDhD/IBAHAWEQ4QKhEFgIYRH6DOESYA6hFlAUYRdQFuEZ4BhhGvAbYRtQH+EbACQhHTBhoR1gauEdcG0hHoBuIR/0b2Ef8MyhH8DS4R/O1yEgQOHhIPDiISHw5GEhx+ihIXHsISIA8aEi8PvhI/r7MiTFAQAAiB8gAP0fMQEAQAG4AbYBswGsAagBoQGSAZABjAGIAYQCkgKQAlMDXQOTA4UEDAQGBbsGTgBByJnDAAvAA/8AAAD8//8PAqiqqqqqqqr///////8HAP/9AAAA/P//AAAAAAAAAoAAAAD/////D4Wq////////AAAAAP////8AAAAA/P///wAAAAAA////7/8AAAD8//8AAAEAAPD/////DwAAwP//////9/8D///AQwAAAAD//wAAAAAAAP//AAAAgP//f//A////AAAA/AAAAAAAAAD4AAD///////f8///3AwAA8FTVqqqqqqqqqqqqqqqqqqqqqqqqqqqqVf8A/wD/AN9APwD/AP8A/z//////YhXaPwAAAAAAAAA/IAAAAAAAijwAxAgAAIAQMgAAgP/7//sb/3/jqqqqLxm5///////9BwqlqgoAAF4HAAAAAAAEIAT//8//////Af8APwD/AP8A3ADPAP8A3ACqqqqqGlAIAP////+/IAAA//v/f+AHAAAAwN///wAAAAMAAAAfAAAAqqqqOgAAAAB/APgAAAAAAPcLAAAAAAAA/wUAAAAAAACqqqqqqqr6k6qqqqqqqv+VQFJVtaqqKaqqULqqqoKgqv////+qqqqqAAAAAKiqq6pVq6qqqqqq1CkxJE4qLVHm/P//DwAAwOsAQaWdwwALAT8AQbSdwwALAxAOOQBBxJ3DAAsBKQBB1J3DAAsBLQBB4Z3DAAsDCBM+AEHxncMACw1FLAA1MTMiAAAAAAk6AEGLnsMACwQDABA7AEGbnsMACwEUAEGnnsMACwUcAAAAQABBu57DAAsBSQBByp7DAAslIxEYNjcyMAckKwAdDCAAAC8AOTk5ABcXRxclGhkmAAVIAB4PTQBB+J7DAAsVCj0ABgAAHwAAAAAAAAAhABAbFycoAEGYn8MACwcQNAIWRgg8AEGon8MACwIQSgBBuJ/DAAuAPEMqOAtEQRINAUJOFUtMBC4AtgBKAKYAogCfAJYAlACOAIYAgwBAAUIBRgFTAQwBCAKSAowChgKCA6QDkgMUBLIEqwAAAAAAAP///////z8A/z8AAAD///8BAAAA/P//BwFUVVVVVVVV9VpVFQAAIAAAAAAA//////8DAAAA////X/wBAADw////A////wP//wAAAAAAAP//VVVVVVVV/v8AAAAAAABFgLDn3x8AAAB7VVVVVVVVBWxVVVVVVVUAapCkqkpVVdJVVShFVVV9X1VVVVVVVVVVVasqVVVVVVVVAAAAAFVVVVUAAAAAVFVUVapUVVVVVVUr1s7bsdXSrhEADwAPAB8ADwAAAAAAAAAPPwAAAP///wMDAADQZN4/AFVVVVUFKAQAIAAAAP//AAAAPwCqAP8AAEDX/v/7DwAAAAD//z8AAAD//39/AAAAAP/3NwAAAAAAelUAAAAAAAC/IAAAAAAAAFVVVVVVVVWqhDgnPlA9D8AAAAAAneolwACAHFVVVZDmAAL//////+cA////AwAA8AAAAAAAAP/3AP8APwD/AP8sLAUjLCwsLCwsLCwsLAUALCwFLCwsLCwsLCwsLCwsLCwsKCwsLCwsERFCESsdGBcsLCwgJBUWDw0iLCwsCx4nLCwsLAkILSwsLCwsLCwsLCwsLCwlHEMsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsOSwsLCwsLCwsLCwsLDE/LCwsLCwsLCwsLCwsLCxBQCwUDhAELCwsLDIsLCwsLCwsLCwsLCwsNSwsHywsLCwsLCwsLCwsLDYuLCwsLCwsLCwsLCwsMywJLywqISwsLCwsLCwsLDQTAxIKMCwsLCwsLCwsLCw0JhEbLCwsLCwsLCwsLCwsOgEaNwwHGTgpOwYCPj08RBw1EABfAAAA9gAAABUAAAAcNRAAXwAAAAEBAAAYAAAAAAAACAEIAwgGEAkQDRASGBcYHRgkICsgMyA8IEYoUChbKGcwczCAMI44nDirOLs4zEDdQO9AAkkVSSlJPlFTUWlRgFGYWbBZyVnjYf1hGGI0alBqbWqLaqpyyXLpcgp7K3tNe3CDk4O3g9yDAowojE+Md5SflMiU8pwcBRwFHAUcBQUCBQECBQYCBQMBAgUBBQYCBQcIAQIFAwkABgIFAQkFAwECBQkHBgUGAgUECAgCCAECBQIEBAEEAAYCBQECAgAHAAMBAgUGAQADBQEFBgIFAwAFAQcFBwgBAgUBBQIFCAcICQAGAgUHBgIJAwkEBQMBAgUDCAEEBgkHAgYFBgIFAQkABwMECAYDAggBAgUJBQMGBwQDAQYEAAYCBQQHBggDBwEFCAIAAwECBQIDCAQBCAUHCQEAAQUGAgUBAQkCAAkCCAkFBQAHCAECBQUJBgAEBgQEBwcFAwkABgIFAgkIAAIDAgIDCAcGCQUDAQIFAQQJAAEBBgEBCQMIBAcGBQYCBQcEBQAFCAAFCQYJAgMIAggBAgUDBwIFAgkAAgkIBAYBCQEEAAYCBQEIBgIGBAUBBAkCAwAJBQcAAwECBQkDAQMCAgUHBAYBBQQHCAUBBQYCBQQGBQYGAQIIBwMABwcDCQIFBwgBAgUCAwIIAwAGBAMGBQMIBgkGAggJAAYCBQEBBgQBBQMCAQgCBgkDBAgBBAQFAwECBQUIAgAHBgYACQEDBAYHBAAHAgIGBQYCBQIJAQADCAMABAUGBwMDBwADBgEDAggBAgUBBAUFAQkBBQICCAMGBggFAQgABgYEAAYCBQcCBwUJBQcGAQQBCAMEAgUJAAMDAgADAQIFAwYDBwkHCAgABwAJAQcBAgkFAQYGAAEFBgIFAQgBCAkICQQAAwUEBQgFBgQHBQgDAAAHCAECBQkACQQJBAcAAQcHAgkCCAIDBwkBBQADCQAGAgUEBQQHBAcDBQAICAYEBgQBAQgJBQcFAQkFAwECBQICBwMHAwYHBQQEAwIDAgAFCQQHCAcFCQcGBQYCBQEBAwYIBggDBwcCAQYBBgACCQcDCQMHCQgIAggBAgUFBggEAwQBCAgGAAgACAABBAgGCQYICQkEAQQABgIFAggEAgEHAAkEAwAEAAQAAAcEAwQIBAQJBwAHAAMBAgUBBAIBAAgFBAcBBQIAAgAAAwcBBwQCAgQIBQMFAQUGAgUHAQAFBAIHAwUHBgABAAABCAUIBwEBAgQCBgcFBwgBAgUDBQUCBwEDBgcICAAABQAACQIJAwUFBgIBAwMHCAkABgIFAQcHBgMFBggDCQQAAAIFAAQGBAYHBwgBAAYGCAkEBQMBAgUICAgBBwgEAQkHAAABAgUCAwIDAwgJAAUDAwQEBwIGBQYCBQQEBAAICQIACQgFAAAGAgYBBgEGCQQFAgYGBwIDBgMCCAECBQICAgAEBAYABAkCBQADAQMACAAIBAcCBgMDAwYBCAEGBAAGAgUBAQEAAgIDAAIEBgIFAQUGBQQABAIDBgMBBgYIAAkACAIAAwECBQUFBQEBAQUBAgMBAgUHCAIHAAIBAQgBBQgDBAAEBQQBAAEFBgIFAgcHBQUFBwUGAQUGAggJAQMFAQAFCQAHCQEHAAICBwAFAAcIAQIFAQMIBwcHCAcIAAcIAQQEBQYHBQUCCQUDCQUIBQEBAwUCBQMJAAYCBQYJAwgICQMJAAMJAAcCAggDBwcGBAcGCQcJAgUFBgcG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b3IgQWNjZWxlcmF0ZSB0byB0aGUgYFByaXNtYUNsaWVudGAgY29uc3RydWN0b3IuIFNlZSBodHRwczovL3ByaXMubHkvZC9jb25maWctZGF0YXNvdXJjZSBhbmQgaHR0cHM6Ly9wcmlzLmx5L2QvcHJpc21hNy1jbGllbnQtY29uZmlnVGhlIGRhdGFzb3VyY2UgcHJvcGVydHkgYGRpcmVjdFVybGAgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBpbiBzY2hlbWEgZmlsZXMuIE1vdmUgY29ubmVjdGlvbiBVUkxzIHRvIGBwcmlzbWEuY29uZmlnLnRzYC4gU2VlIGh0dHBzOi8vcHJpcy5seS9kL2NvbmZpZy1kYXRhc291cmNlVGhlIGRhdGFzb3VyY2UgcHJvcGVydHkgYHNoYWRvd0RhdGFiYXNlVXJsYCBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIHNjaGVtYSBmaWxlcy4gTW92ZSBjb25uZWN0aW9uIFVSTHMgdG8gYHByaXNtYS5jb25maWcudHNgLiBTZWUgaHR0cHM6Ly9wcmlzLmx5L2QvY29uZmlnLWRhdGFzb3VyY2VUaGUgYHJlZmVyZW50aWFsSW50ZWdyaXR5YCBhbmQgYHJlbGF0aW9uTW9kZWAgYXR0cmlidXRlcyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4gUGxlYXNlIHVzZSBvbmx5IGByZWxhdGlvbk1vZGVgIGluc3RlYWQuVGhlIGVudiBmdW5jdGlvbiBkb2Vzbid0IGV4cGVjdCBuYW1lZCBhcmd1bWVudHNUaGUgYHJlZmVyZW50aWFsSW50ZWdyaXR5YCBhdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBgcmVsYXRpb25Nb2RlYCBpbnN0ZWFkLiBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcHJpcy5seS9kL3JlbGF0aW9uLW1vZGWTHxAAJgAAACQAAAAoAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGFmdGVyIGJlaW5nIGRyb3BwZWQAALBaEABaAAAAFBoAAAEAAAAAAAAABAAAAAQAAABoAAAAbmVnYXRpdmUgdmFsdWVzIGFyZSBub24temVyb1wkEABmAAAAZgAAACgAAABUcmllZCB0byBzaHJpbmsgdG8gYSBsYXJnZXIgY2FwYWNpdHnOURAAdQAAAC4DAAAJAAAAQ2Fubm90IHN1YnRyYWN0IGIgZnJvbSBhIGJlY2F1c2UgYiBpcyBsYXJnZXIgdGhhbiBhLvA4EABtAAAARQAAAAUAAADwOBAAbQAAAGUAAAAFAAAAdjoQAHAAAABKAAAAGwAAAHY6EABwAAAAUgAAABsAAAB2OhAAcAAAAFkBAAAnAAAAdjoQAHAAAABYAQAAJgAAAHY6EABwAAAA+AAAACYAAAB2OhAAcAAAAPcAAAAmAAAAdjoQAHAAAADzAAAAJgAAAHY6EABwAAAArQAAABoAAAB2OhAAcAAAALsAAAAWAAAAdjoQAHAAAAC6AAAAFgAAAHY6EABwAAAAaQAAAB8AAAB2OhAAcAAAAH8BAAAPAAAAdjoQAHAAAACCAQAADwAAAHY6EABwAAAALgAAABwAAAAAAAAAY2Fycnkgb3ZlcmZsb3cgZHVyaW5nIG11bHRpcGxpY2F0aW9uIQAAAHY6EABwAAAAOwAAAAUAAAD0IxAAZwAAACcAAAAZAAAAuyEQAGkAAADBAgAAHAAAALshEABpAAAAeAAAABoAAADYNxAAagAAADkAAAAaAAAAFTsQAGoAAACoAAAACQAAABU7EABqAAAA6wAAABgAAAAVOxAAagAAAOwAAAAOAAAAFTsQAGoAAAD2AAAAIQAAABU7EABqAAAA9wAAABgAAAAVOxAAagAAABgBAAA8AAAAFTsQAGoAAAAtAAAACQAAAPA4EABtAAAAhwAAACUAAABjYW5ub3QgcGFyc2UgaW50ZWdlciBmcm9tIGVtcHR5IHN0cmluZ2ludmFsaWQgZGlnaXQgZm91bmQgaW4gc3RyaW5nALshEABpAAAA2gAAABoAAADYNxAAagAAAGgAAAAiAAAALSYQAGEAAACHAQAAAQAAAEggEAAiAAAAhgAAADcAAABIIBAAIgAAAH8AAAANAAAASisQACUAAACyAQAAGQAAAEorEAAlAAAAsgEAACYAAABGaWVsZHMgb24gYW4gYWxyZWFkeSBpZ25vcmVkIE1vZGVsIGRvIG5vdCBuZWVkIGFuIGBAaWdub3JlYCBhbm5vdGF0aW9uLkBpZ25vcmUAAEorEAAlAAAAXQMAADsAAABKKxAAJQAAAGIDAAAeAAAASCAQACIAAADJAQAAKAAAAMJUEAAoAAAAIgAAADMAAADCVBAAKAAAACcAAAAeAAAAwlQQACgAAABSAAAARwAAAMJUEAAoAAAAUwAAACYAAADCVBAAKAAAAFMAAAAwAAAAwlQQACgAAABcAAAAJgAAAMJUEAAoAAAAXAAAACwAAACJIxAALQAAACQAAAASAAAAiSMQAC0AAABrAAAAVgAAAJIdEAAvAAAAIAAAADMAAACSHRAALwAAACQAAAAeAAAAkh0QAC8AAABOAAAAQwAAAJIdEAAvAAAATwAAACIAAACSHRAALwAAAE8AAAAsAAAASW5ldE9wc0pzb25iT3BzSnNvbmJQYXRoT3BzQXJyYXlPcHNUZXh0T3BzQml0TWluTWF4T3BzVmFyQml0TWluTWF4T3BzQnBjaGFyQmxvb21PcHNCcGNoYXJNaW5NYXhPcHNCeXRlYUJsb29tT3BzQnl0ZWFNaW5NYXhPcHNEYXRlQmxvb21PcHNEYXRlTWluTWF4T3BzRGF0ZU1pbk1heE11bHRpT3BzRmxvYXQ0Qmxvb21PcHNGbG9hdDRNaW5NYXhPcHNGbG9hdDRNaW5NYXhNdWx0aU9wc0Zsb2F0OEJsb29tT3BzRmxvYXQ4TWluTWF4T3BzRmxvYXQ4TWluTWF4TXVsdGlPcHNJbmV0SW5jbHVzaW9uT3BzSW5ldEJsb29tT3BzSW5ldE1pbk1heE9wc0luZXRNaW5NYXhNdWx0aU9wc0ludDJCbG9vbU9wc0ludDJNaW5NYXhPcHNJbnQyTWluTWF4TXVsdGlPcHNJbnQ0Qmxvb21PcHNJbnQ0TWluTWF4T3BzSW50NE1pbk1heE11bHRpT3BzSW50OEJsb29tT3BzSW50OE1pbk1heE9wc0ludDhNaW5NYXhNdWx0aU9wc051bWVyaWNCbG9vbU9wc051bWVyaWNNaW5NYXhPcHNOdW1lcmljTWluTWF4TXVsdGlPcHNPaWRCbG9vbU9wc09pZE1pbk1heE9wc09pZE1pbk1heE11bHRpT3BzVGV4dEJsb29tT3BzVGV4dE1pbk1heE9wc1RpbWVzdGFtcEJsb29tT3BzVGltZXN0YW1wTWluTWF4T3BzVGltZXN0YW1wTWluTWF4TXVsdGlPcHNUaW1lc3RhbXBUekJsb29tT3BzVGltZXN0YW1wVHpNaW5NYXhPcHNUaW1lc3RhbXBUek1pbk1heE11bHRpT3BzVGltZUJsb29tT3BzVGltZU1pbk1heE9wc1RpbWVNaW5NYXhNdWx0aU9wc1RpbWVUekJsb29tT3BzVGltZVR6TWluTWF4T3BzVGltZVR6TWluTWF4TXVsdGlPcHNVdWlkQmxvb21PcHNVdWlkTWluTWF4T3BzAACiLBAALQAAALgAAAAWAAAASW52YWxpZCBwYXJhbWV0ZXIgdHlwZTogZXhwZWN0ZWQgc3RyaW5nb3BlcmF0b3IgY2xhc3NBc2MsIERlc2Njb25zdGFudCBsaXRlcmFsc2NoZW1hLnByaXNtYQABAAAAeFkQAB4AAAChAAAACQAAAEggEAAiAAAApgEAAFAAAABUcmFpbGluZyBjb21tYXMgYXJlIG5vdCB2YWxpZCBpbiBhdHRyaWJ1dGUgYXJndW1lbnRzLCBwbGVhc2UgcmVtb3ZlIHRoZSBjb21tYS6AhgBTdGF0ZSBlcnJvcjogd2UgY2Fubm90IHN0YXJ0IHZhbGlkYXRpbmcgbmV3IGFyZ3VtZW50cyBiZWZvcmUgYHZhbGlkYXRlX3Zpc2l0ZWRfYXJndW1lbnRzKClgIG9yIGBkaXNjYXJkX2FyZ3VtZW50cygpYCBoYXMgYmVlbiBjYWxsZWQuCsEgAIBgAAAAAEggEAAiAAAAWgEAAA0AAABIIBAAIgAAAA0BAAAUAAAASCAQACIAAAANAQAAOwAAAEggEAAiAAAAnAAAABkAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmF0dHJpYnV0ZXMudW51c2VkX2F0dHJpYnV0ZXMucmVtb3ZlKCZhdHRyX2lkeCkAAABIIBAAIgAAAJkAAAANAAAASCAQACIAAAAUAQAAFwAAAEggEAAiAAAAGwEAADAAAABObyBzdWNoIGFyZ3VtZW50LlN0YXRlIGVycm9yOiBtaXNzaW5nIGF0dHJpYnV0ZSBpbiB2YWxpZGF0ZV92aXNpdGVkX2FyZ3VtZW50cy4AAEggEAAiAAAAFgEAAA0AAABIIBAAIgAAAPwAAAAWAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5hdHRyaWJ1dGVzLnVudXNlZF9hdHRyaWJ1dGVzLnJlbW92ZSgmZmlyc3RfaWR4KQAASCAQACIA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ZGJnZW5lcmF0ZWQoKSB0YWtlcyBlaXRoZXIgbm8gYXJndW1lbnQsIG9yIGEgc2luZ2xlIG5vbmVtcHR5IHN0cmluZyBhcmd1bWVudC4AiSMQAC0AAAAXAAAAHgAAAIkjEAAtAAAAGAAAAB8AAACJIxAALQAAABsAAAAkAAAAT25seSBAZGVmYXVsdChkYmdlbmVyYXRlZCgiLi4uIikpIGNhbiBiZSB1c2VkIGZvciBleHRlbnNpb24gdHlwZXMuT25seSBAZGVmYXVsdChkYmdlbmVyYXRlZCgiLi4uIikpIGNhbiBiZSB1c2VkIGZvciBVbnN1cHBvcnRlZCB0eXBlcy5BIGJvb2xlYW4gbGl0ZXJhbCBtdXN0IGJlIGB0cnVlYCBvciBgZmFsc2VgLkBkZWZhdWx0BVRoZSBgwEpgIGZ1bmN0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50LiBDb25zaWRlciBjaGFuZ2luZyB0aGlzIGRlZmF1bHQgdG8gYMgAAAQoKWAuAAAAAIkjEAAtAAAAWwAAAB4AAACJIxAALQAAAFwAAAAfAAAAVGhlIGBtYXBgIGFyZ3VtZW50IGlzIG5vdCBhbGxvd2VkIG9uIGEgY29tcG9zaXRlIHR5cGUgZmllbGQuiSMQAC0AAABiAAAAIQAAAEZpZWxkcyBvZiBjb21wb3NpdGUgdHlwZXMgY2Fubm90IGhhdmUgYGRiZ2VuZXJhdGVkKClgIGFzIGRlZmF1bHQuQ29tcG9zaXRlIGZpZWxkIHdpdGggZXh0ZW5zaW9uIHR5cGUgY2Fubm90IGhhdmUgZGVmYXVsdCB2YWx1ZXMuQ29tcG9zaXRlIGZpZWxkIG9mIHR5cGUgYFVuc3VwcG9ydGVkYCBjYW5ub3QgaGF2ZSBkZWZhdWx0IHZhbHVlcy5UaGUgZGVmYXVsdCB2YWx1ZSBvZiBhIGxpc3QgZmllbGQgbXVzdCBiZSBhIGxpc3QuAACJIxAALQAAAFsBAAAUAAAAiSMQAC0AAABcAQAAGwAAAERlZmF1bHRzIG9uIGZpZWxkcyBvZiB0eXBlIGNvbXBvc2l0ZSBhcmUgbm90IHN1cHBvcnRlZC4gUGxlYXNlIHJlbW92ZSB0aGUgYEBkZWZhdWx0YCBhdHRyaWJ1dGUuVGhlIGRlZmF1bHQgdmFsdWUgb2YgYSBub24tbGlzdCBmaWVsZCBjYW5ub3QgYmUgYSBsaXN0LgAAiSMQAC0AAADCAAAAGQAAAIkjEAAtAAAAwgAAACUAAABOYW1pbmcgYW4gYXV0b2luY3JlbWVudCBkZWZhdWx0IHZhbHVlIGlzIG5vdCBhbGxvd2VkLgQHAQIAAACSHRAALwAAAJkAAAASAAAAkh0QAC8AAACZAAAAHAAAAJIdEAAvAAAAogAAABUAAABGaWVsZHMgdGhhdCBhcmUgbWFya2VkIGFzIHNoYXJkIGtleXMgbXVzdCBiZSByZXF1aXJlZC5Ac2hhcmRLZXlBdCBtb3N0IG9uZSBmaWVsZCBtdXN0IGJlIG1hcmtlZCBhcyB0aGUgc2hhcmQga2V5IHdpdGggdGhlIGBAc2hhcmRLZXlgIGF0dHJpYnV0ZS6SHRAALwAAAIAAAAAkAAAAkh0QAC8AAAAOAAAAFAAAAJIdEAAvAAAASAAAAB4AAABFYWNoIG1vZGVsIG11c3QgaGF2ZSBhdCBtb3N0IG9uZSBzaGFyZCBrZXkuIFlvdSBjYW4ndCBoYXZlIGBAc2hhcmRLZXlgIGFuZCBgQEBzaGFyZEtleWAgYXQgdGhlIHNhbWUgdGltZS4AAACSHRAALwAAAGoAAAAfAAAAkh0QAC8AAAAvAAAAHQAAAJIdEAAvAAAAPwAAAB0AAABjb25zdGFudGNvbnN0YW50IG9yIGZ1bmN0aW9uD1RoZSBlbnVtIG5hbWUgYMCAowBgIGlzIGludmFsaWQuIEl0IGlzIGEgcmVzZXJ2ZWQgbmFtZS4gUGxlYXNlIGNoYW5nZSBpdC4gUmVhZCBtb3JlIGF0IGh0dHBzOi8vd3d3LnByaXNtYS5pby9kb2NzL3JlZmVyZW5jZS90b29scy1hbmQtaW50ZXJmYWNlcy9wcmlzbWEtc2NoZW1hL2RhdGEtbW9kZWwjbmFtaW5nLWVudW1zAFByaXNtYUNsaWVudGFzeW5jYXdhaXRicmVha2Nhc2VjYXRjaGNsYXNzY29uc3Rjb250aW51ZWRlYnVnZ2VyZG9lbHNlZXhwb3J0ZXh0ZW5kc2ZpbmFsbHlmb3JpZmltcGxlbWVudHNpbXBvcnRpbnN0YW5jZW9maW50ZXJmYWNlbGV0bmV3cGFja2FnZXByaXZhdGVwcm90ZWN0ZWRwdWJsaWNyZXR1cm5zdXBlcnN3aXRjaHRoaXN0aHJvd3RyeXR5cGVvZnZhcnZvaWR3aGlsZXdpdGh5aWVsZAAQMxEADAAAABwzEQAFAAAAITMRAAUAAAAmMxEABQAAACszEQAEAAAALzMRAAUAAAA0MxEABQAAADkzEQAFAAAAPjMRAAgAAABGMxEACAAAAHn5EQAHAAAApvwRAAYAAABOMxEAAgAAAFAzEQAEAAAAV1YSAAQAAABUMxEABgAAAFozEQAHAAAAKhkSAAUAAABhMxEABwAAAGgzEQADAAAAdA4SAAgAAABrMxEAAgAAAG0zEQAKAAAAdzMRAAYAAAAO/hEAAgAAAH0zEQAKAAAAhzMRAAkAAACQMxEAAwAAAJMzEQADAAAAMxkSAAQAAACWMxEABwAAAJ0zEQAHAAAApDMRAAkAAACtMxEABgAAALMzEQAGAAAAuTMRAAUAAAC+MxEABgAAAMQzEQAEAAAAyDMRAAUAAAAvGRIABAAAAM0zEQADAAAA0DMRAAYAAACldREABQAAANYzEQADAAAA2TMRAAQAAADdMxEABQAAAOIzEQAEAAAA5jMRAAUAAABgZm9ybWF0X2ZpZWxkc19pbl9lcnJvcl93aXRoX2xlYWRpbmdfd29yZGAgcmVzdWx0IGNhbiBvbmx5IGJlIGZvcm1hdHRlZCBvbmNlSisQACUAAABdBQAAEQAAAHMAQdTrxAALjgEBAAAA1QEAANYBAADXAQAA2AEAAEF0dHJpYnV0ZXNWYWxpZGF0aW9uU3RhdGVhdHRyaWJ1dGVzdW51c2VkX2F0dHJpYnV0ZXNDb21wb3NpdGVUeXBlSWRGaWVsZElkTW9kZWxJZFN0cmluZ0lkRW51bVZhbHVlSWS+AQAADAAAAAQAAADZAQAA2gEAANsBAEHs7MQACz4BAAAAwgEAAE1vZGVsRmllbGRFbnVtVmFsdWVDb21wb3NpdGVUeXBlRmllbGRBdHRyaWJ1dGVJZOKQjeKQigBB5O3EAAsBAQBBiu7EAAsCAgMAQcruxAALAQEAQZT1xAALAQEAQaT1xAALAQEAQZj3xAALQQEAAAAAAAAA/wcAAACAAAAAAACAAAAAAJA6EQAgAAAAqjYRAOADAACQOxEABAAAAAEAAAAAAAAAAQAAAAAAAAAIAEHo98QAC1b+//8H/v//BwAAAAAABCAE//9/////f////////////////////////////////////////////////////////////////////////////8P/AwAfUABBzvjEAAvcCt+8QNf///v///////////+///////////////////////8D/P///////////////////////////v///38C//////8BAAAAAAAAAAD///+HBwAAAAAA//////8HAAAAwP7//////////////y8AYMAAnAAA/f///wAAAOD/////////////PwACAAD8////BzAEAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBcZGhscHR4fICEiIyMjIyMkJSYnKCkqKyMjIyMjIyMjLC0uLzAxMjM0NTY3ODkDOjs8Hj0+P0BBQkNEIyMjHiMjIyNFRkdIHklKHktMTR4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eIyMjTk9QUVJTHh4eHh4eHlQrVVZXI1hZHh4eHh4eHh4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjHiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNaWyMjIyNcXV5AXyNgYWIxY2RlZmdoaWprbG1uI28jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNwcR4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHiMjIyMjciNzdHV2dyMjIyN4eXp7HnwjfX5/gIH//z8EEAEAAP///wH/B/////4AAP//////AwAAAAAAAPD///////8jAAAB/wMA/v/hn/n///3FIwBAALADAAMQ4If5///9bQMAAABeAAAcAOC/+////e0jAAABAAMAAALgn/n///3tIwAAALADAAIA6Mc91hjH/wMAAAEAAAAAAODf/f///f8jAAAANwMAAADh3/3///3vIwAAAHADAAYA8N/9/////ycAQHCAAwAA/OD/f/z///svfwAAAAAAAAD+//////8NANb3//+v/w0gXwAA8AAAAAABAAAAAAAAAP/+////HwAAAB8AQbiDxQAL4wH//////wcAgAAAPzxiwOH/A0AAAP////+/IP//////9////////////z1/Pf//////Pf////89fz3/f/////////89//////////8HAAAAAP//AAD/////////////Pz/+////////////////n////v//B////////////wf+Af//A4D//wMA//8DAP/fAQD///////8PAAAAgBAAAAAAAAAAAP//////////////AZ//////Bf//////////PwD///9/AAAAAAAA////Px8A//////8P/////38A////////HwBBpIXFAAuwAYAAAADg//////8PAOAfAAAAAAAA+P///wHAAPz/////PwAAAP////8PAAAAAOAA/P///z//B///////5wAAAAAA3m8E//8/P/////8/P/+q////P////////99f3B/PD/8f3B8AAAAAAAACgAAA/x8AAAAAhPwvPlC9//PgQwAAAAAAABgAAAAAAAAA/////x94DAD/////vyD/////////gAAA//9/AH9/f39/f39/AEHdhsUAC8QTgAAAYAAAAAAAPhj//3/g/v/////////////34P///////v//fwAA/////wAAAAAAAP///x8AAAAAAAAAAP//////P/8f//8ADAAA//////9/AID///8//////wAAgP/8//////n///////////8fAAD+/7v3//8HAAAA/P//////DwAAAAAAAAD8aAD8//8/AP//fwAAAP///x/w//////8HAACAAADf/wB8//////8BAAD3DwAA//9/xP///////2I+BQAAOP8HHAB+fn4Af3////////f/A////////wcAAAD/////DwD//3/4//////8P//////8///////8DAAAAAH8A+KD//X9f2/////////////////8DAAAA+P///////////////z8AAP///////////P///////wAAAAAA/w8AAAAAAADf//////////8fAAAAAP7//wf+//8HwP////////////9//Pz8HAAAAAAAAQIDBAUGBwgFCQoFCwwFBwcHBwcHBwcHBw0ODwcQEQcSBxMFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAECAwQEBAQEBAUGBwgJCgICCwwNDg8QAgICAhESEwQUFRYXGBkaBBscHR4fICEEAiIjIyQlJgQEBCcoKSorLC0uLzAxMjM0NTY3Fjg5Ojs8PT4/BARAQT5CQwRERQQERgRHSElKS0xNTk9QBAQEUVJTVARVVldYBAQEWVoEWwQCAgICAgICAgICAgICAhkEBAQCAgJcBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBF1eAgICAgICAgICAgICAgICAj5fAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAgICAgICAgJFBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBGAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAgICAgICAlBhYmM+ZFQEBAQEBARlBAQEAmZnAmhpagICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJrFgQCIwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEbAICAgJtbgICAgICbwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAJwcQQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAnJzdHV2AgICAnd4eXp7fAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAR9BAQEfn8EBICBBAQEBGNGBAQEBAQEBIIEBASDBAQEhAQEBIUCAgKGAocEBAQEBAQEBAQEBAQEBAQEBASIiYoEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAosCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgkCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAowCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICjQICAgICAgICAmAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAICAgICAgICYAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgICAgICAgICAgICAo4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICjwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAT/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////H////////wEAAAAAAP////8A4P///QP/////PwD///8//////w//AAAAAAAA////PwAA/////w//////D///////AP///////w8A//f/97f/+//7G////////w8A////////fwD//z8A/wAAAL////////0HP/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////A////wMAAAAA/////////8ABAO/+//8/AAAAAAD///8f////HwAAAAD//v//HwAAAP///////z8A//8/AP//BwD//wMAAAAAAP8BAAAAAAAA////////BwD/////DwAAAAD8//8/gP//PwAAAAAAAAD//////wMDAPwAAAAAAAAA////H4AA//8/AAAAAAD//wMAAAAAAP//HwAAAP//fwD4////////AAAAAAAAACYA+P//////AAAAAP///wEAAPj///9/AAAAkAD/////RwD4//////8HAB4AABQAAAAA///7//8PAIABAAAAAAAAAH+9/7//Af//4J/5///97SMAAAHgAwAAAP9L/////78AAAAKAAAAAAD///////8fAIAHAIADAAAA////////AACwAAAAAAAAAP//////fwAAAAAADwAAAAAQAAAAAAAAAP//////BwAB////BwAAAAB/AAAAAAAAAP//////DwAAAAAAAP//////////AAAAgH/yb////wCAAgBBrJrFAAuFAf/8/////wEACgAAAAH4/////wcEAAAB8P//////AwAgAAD///////////8B/////wEAAAD//f///38AAAEAAAAAAPz///8AAAAAAAB/+/////8BAEAAAAC//f///wMAAQAA//////8PAAAAAAAAAAD//wcA9P/9////DwAAAAAAAAABAA8AQbqbxQALlwT///////////////8BAH4AAAD/////////PwAAAAD///9/AAD///////////9/AAD///8/AAAPAAAA+P//4P//////HwAAAAAAAP////n//w8AAAAAAP8HAQAAAAAAAAD4/wAAAAAAAAAACwAMAP//PwAAAACAAAAAAAAA72//////BwAEAAAAJwDwAP///////////w///////wf/H/8B/wMAAAAA///f///////////fZN7/6+//////////v+ff3////3tf/P3///////////8//////f//9/////f//9/////f//9/////f/////3////9///3DwAAAAAAAP///3/gBwAAAAAAAAAA/////////z8AAP//////H4A/AEAAAAAAAAAAAP///w8AAAAA////PwEA////f7c/H8AAAAAAf2//fx8AAAAAAAAADwgAAAAAAADv////lv73CoTqlqqW9/de//v/D+77/w//////AAAAAP//////P////////wEA////B/////////////////8D4DsRACAAAADgPBEA4AMAAMBAEQCCAAAA0EQRAAABAADQRREAAAUAANBKEQCQAAAAUG9zaXRpb26DSRAAXQAAAIoAAAAJAAAAg0kQAF0AAABQAAAAMwAAANwBAAAUAAAABAAAAN0BAABJbnZhbGlkIFVURjjLTxAAYQAAAH8AAAAkAEHcn8UAC8IFAQAAAMIBAACXUBAAYwAAAKcCAAAOAAAAdmFyaWFudCBpZGVudGlmaWVyc3RydWN0IFBsYWNlaG9sZGVyW1kQABwAAADDAAAAOAAAAGJpZ2ludGRlY2ltYWxwYXJhbSBuYW1lSlNPTiBwYXJhbSB2YWx1ZVByaXNtYVZhbHVlSlNPTiBieXRlcyB2YWx1ZUpTT04gZGVjaW1hbCB2YWx1ZUpTT04gYmlnaW50IHZhbHVlSlNPTiBkYXRlIG9iamVjdAAAAIcBAAAEAAAABAAAAIgBAABbWRAAHAAAAAMBAABHAAAAYWRqYWNlbnRseSB0YWdnZWQgZW51bSBQcmlzbWFWYWx1ZVR5cGVGcm9tVXRmOEVycm9yVXRmOEVycm9ydmFsaWRfdXBfdG9lcnJvcl9sZW6+AQAADAAAAAQAAADeAQAA3wEAAOABAABD1MybXB7iY+GWK0Q/G73ScHJvdmlkZXJvdXRwdXRiaW5hcnlUYXJnZXRzcHJldmlld0ZlYXR1cmVzc2NoZW1hcwAAAF1DpdYiQu7TQiTWBl4yBCYXSxAALAAAACwAAAA7AAAAWVoQAFYAAADHAAAAJQAAAFlaEABWAAAAxwAAAEEAAABWKBAAIgAAAMMAAAAkAAAAVigQACIAAADDAAAAOwAAAER1cGxpY2F0ZWQgc2NoZW1hIG5hbWVzIGFyZSBub3QgYWxsb3dlZFRoZSBgc2NoZW1hc2AgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGUgY3VycmVudCBjb25uZWN0b3IuVGhlIGFyZ3VtZW50IG11c3QgaGF2ZSBhIG5hbWV2ZXJzaW9uQHVuaXF1ZUBAdW5pcXVlQEBmdWxsdGV4dEBAaW5kZXisUxAALwAAAD4BAAAKAAAAvgEAAAwAAAAEAAAA4QEAAOIBAADjAQBBqKXFAAvpDgEAAADCAQAAbGl0ZXJhbGZ1bmN0aW9uYWwAAAAmKBAALwAAAB8AAAABAAAAcG9zdGdyZXNxbGZ0cy1wb3N0Z3Jlc0FnZ3JlZ2F0ZUFwaUF0b21pY051bWJlck9wZXJhdGlvbnNDbGllbnRFeHRlbnNpb25zQ29ja3JvYWNoZGJDb25uZWN0T3JDcmVhdGVDcmVhdGVNYW55RGF0YVByb3h5RGVub0RyaXZlckFkYXB0ZXJzRXh0ZW5kZWRJbmRleGVzRXh0ZW5kZWRXaGVyZVVuaXF1ZUZpZWxkUmVmZXJlbmNlRmlsdGVySnNvbkZpbHRlcmVkUmVsYXRpb25Db3VudEZ1bGxUZXh0SW5kZXhGdWxsVGV4dFNlYXJjaEZ1bGxUZXh0U2VhcmNoUG9zdGdyZXNHcm91cEJ5SW1wcm92ZWRRdWVyeVJhd0ludGVyYWN0aXZlVHJhbnNhY3Rpb25zSnNvblByb3RvY29sTWljcm9zb2Z0U3FsU2VydmVyTWlkZGxld2FyZXNNb25nb0RiTXVsdGlTY2hlbWFOQXBpTmFtZWRDb25zdHJhaW50c05hdGl2ZURpc3RpbmN0TmF0aXZlVHlwZXNPbWl0QXBpT3JkZXJCeUFnZ3JlZ2F0ZUdyb3VwT3JkZXJCeU51bGxzT3JkZXJCeVJlbGF0aW9uUGFydGlhbEluZGV4ZXNQb3N0Z3Jlc3FsRXh0ZW5zaW9uc1ByaXNtYVNjaGVtYUZvbGRlclF1ZXJ5Q29tcGlsZXJSZWFjdE5hdGl2ZVJlZmVyZW50aWFsQWN0aW9uc1JlZmVyZW50aWFsSW50ZWdyaXR5UmVsYXRpb25Kb2luc1NjaGVtYUVuZ2luZURyaXZlckFkYXB0ZXJzU2VsZWN0UmVsYXRpb25Db3VudFNoYXJkS2V5c1N0cmljdFVuZGVmaW5lZENoZWNrc1RyYWNpbmdUcmFuc2FjdGlvbkFwaVR5cGVkU3FsVW5jaGVja2VkU2NhbGFySW5wdXRzVmlld3NTbWFsbEludEludGVnZXJNb25leUluZXRPaWRDaXRleHRSZWFsRG91YmxlUHJlY2lzaW9uVmFyQ2hhckJ5dGVBVGltZXN0YW1wVGltZXN0YW1wdHpUaW1ldHpCaXRWYXJCaXRKc29uQmEgbm9ubmVnYXRpdmUgaW50ZWdlcnR3byBub25uZWdhdGl2ZSBpbnRlZ2Vyc0V4cGVjdGVkIHRoaXMgdG8gYmUgYW4gZW52IGZ1bmN0aW9uLkV4YWN0bHkgb25lIHN0cmluZyBwYXJhbWV0ZXIgbXVzdCBiZSBwYXNzZWQgdG8gdGhlIGVudiBmdW5jdGlvbi4AAMooEAAqAAAAbgAAACoAAABUaGlzIGlzIG5vdCBhIGZ1bmN0aW9uIGV4cHJlc3Npb24gYnV0IGV4cGVjdGVkIGl0IHRvIGJlIG9uZS5zY2hlbWFzID0gWyQwXXNjaGVtYXMgPSBbImZvbyIsICJiYXIiLCAiYmF6Il1UaGUgbGlzdCBvZiBkYXRhYmFzZSBzY2hlbWFzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9wcmlzLmx5L2QvbXVsdGktc2NoZW1hLWNvbmZpZ3VyYXRpb24pZXh0ZW5zaW9uc2V4dGVuc2lvbnMgPSBbJDBdZXh0ZW5zaW9ucyA9IFtwZ190cmdtLCBwb3N0Z2lzKHZlcnNpb246ICIyLjEiKV1FbmFibGUgUG9zdGdyZVNRTCBleHRlbnNpb25zLiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9wcmlzLmx5L2QvcG9zdGdyZXNxbC1leHRlbnNpb25zKWVuZ2luZVR5cGVBIGRhdGFzb3VyY2UgbXVzdCBub3QgdXNlIHRoZSBlbnYoKSBmdW5jdGlvbiBpbiB0aGUgcHJvdmlkZXIgYXJndW1lbnQudXJsc2hhZG93RGF0YWJhc2VVcmxkaXJlY3RVcmxUaGUgcHJvdmlkZXIgYXJndW1lbnQgaW4gYSBkYXRhc291cmNlIG11c3Qgbm90IGJlIGVtcHR5VGhlIHByb3ZpZGVyIGFyZ3VtZW50IGluIGEgZGF0YXNvdXJjZSBtdXN0IGJlIGEgc3RyaW5nIGxpdGVyYWxyZWZlcmVudGlhbEludGVncml0eXJlbGF0aW9uTW9kZXByaXNtYWZvcmVpZ25LZXlzWW91IGRlZmluZWQgbW9yZSB0aGFuIG9uZSBkYXRhc291cmNlLiBUaGlzIGlzIG5vdCBhbGxvd2VkIHlldCBiZWNhdXNlIHN1cHBvcnQgZm9yIG11bHRpcGxlIGRhdGFiYXNlcyBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgeWV0LlByZXZpZXcgZmVhdHVyZXMgYXJlIG9ubHkgc3VwcG9ydGVkIGluIHRoZSBnZW5lcmF0b3IgYmxvY2suIFBsZWFzZSBtb3ZlIHRoaXMgZmllbGQgdG8gdGhlIGdlbmVyYXRvciBibG9jay4AQZy0xQALiQcBAAAA5QEAAOYBAADnAQAA6AEAAOkBAADqAQAA6wEAAJoBAACbAQAA7AEAAJ0BAADtAQAA7gEAAO8BAADwAQAA8QEAAPIBAACkAQAA8wEAAKQBAACmAQAA9AEAAKgBAAD1AQAA9gEAAPcBAAD4AQAA+QEAAPoBAAD7AQAA/AEAAL0BAAD9AQAA/gEAAP8BAACxAQAAAAIAAAECAAACAgAAAwIAAAQCAAAFAgAABgIAAAcCAAC9AQAAvQEAAL0BAAC9AQAAvQEAAFNwR2lzdCBkb2VzIG5vdCBzdXBwb3J0IG11bHRpLWNvbHVtbiBpbmRpY2VzLlRoZSBgZXh0ZW5zaW9uc2AgcHJvcGVydHkgaXMgb25seSBhdmFpbGFibGUgd2l0aCB0aGUgYHBvc3RncmVzcWxFeHRlbnNpb25zYCBwcmV2aWV3IGZlYXR1cmUuVGhlIG5hbWUgb2YgYW4gZXh0ZW5zaW9uIG11c3Qgbm90IGJlIGVtcHR5LlRoZSBjaGFyYWN0ZXIgYC1gIGlzIG5vdCBhbGxvd2VkIGluIGV4dGVuc2lvbiBuYW1lcy5UaGUgbmFtZSBvZiBhbiBleHRlbnNpb24gbXVzdCBub3Qgc3RhcnQgd2l0aCBhIG51bWJlci4lWS0lbS0lZCVIOiVNOiVTJS5mAAAAfykQACwAAAAzAAAAGQAAACVZLSVtLSVkVCVIOiVNOiVTJS5mPFByaXNtYSBzY2hlbWE+ZW1wdHlpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBFbXB0eURhdGFtb2RlbENvbm5lY3Rvcjo6bmF0aXZlX3R5cGVfdG9fc3RyaW5nKCkAAEYvEAA3AAAAOgAAAAkAAABwc2xfY29yZTo6ZGF0YW1vZGVsX2Nvbm5lY3Rvcjo6ZW1wdHlfY29ubmVjdG9yOjpFbXB0eURhdGFtb2RlbENvbm5lY3RvcgBGLxAANwAAAE0AAAAJAAAA9zEQAHMAAADvBQAAIgAAAHArEAArAAAAKAAAAAEAAABwb3N0Z3Jlc211c3Qgc3RhcnQgd2l0aCB0aGUgcHJvdG9jb2wgYHBvc3RncmVzcWw6Ly9gIG9yIGBwb3N0Z3JlczovL2AuAAB+LxAAQwAAAIcCAAA4AAAAaGV4Ynl0ZXN+LxAAQwAAAJECAAAWAAAADwBBsLvFAAutBwgCAAAYAAAABAAAAHYAAAAJAgAAfi8QAEMAAAB0AgAAOAAAAH4vEABDAAAAfQIAABYAAAAQAAAAAQAAAAMAAAB+LxAAQwAAAOMBAAAVAAAAQ2FuIGhhbmRsZSBlcXVhbGl0eSBhbmQgcmFuZ2UgcXVlcmllcyBvbiBkYXRhIHRoYXQgY2FuIGJlIHNvcnRlZCBpbnRvIHNvbWUgb3JkZXJpbmcgKGRlZmF1bHQpLkNhbiBoYW5kbGUgc2ltcGxlIGVxdWFsaXR5IHF1ZXJpZXMsIGJ1dCBubyBvcmRlcmluZy4gRmFzdGVyIHRoYW4gQlRyZWUsIGlmIG9yZGVyaW5nIGlzIG5vdCBuZWVkZWQuR2VuZXJhbGl6ZWQgU2VhcmNoIFRyZWUuIEEgZnJhbWV3b3JrIGZvciBidWlsZGluZyBzcGVjaWFsaXplZCBpbmRpY2VzIGZvciBjdXN0b20gZGF0YSB0eXBlcy5HZW5lcmFsaXplZCBJbnZlcnRlZCBJbmRleC4gVXNlZnVsIGZvciBpbmRleGluZyBjb21wb3NpdGUgaXRlbXMsIHN1Y2ggYXMgYXJyYXlzIG9yIHRleHQuU3BhY2UtcGFydGl0aW9uZWQgR2VuZXJhbGl6ZWQgU2VhcmNoIFRyZWUuIEZvciBpbXBsZW50aW5nIGEgd2lkZSByYW5nZSBvZiBkaWZmZXJlbnQgbm9uLWJhbGFuY2VkIGRhdGEgc3RydWN0dXJlcy5CbG9jayBSYW5nZSBJbmRleC4gSWYgdGhlIGRhdGEgaGFzIHNvbWUgbmF0dXJhbCBjb3JyZWxhdGlvbiB3aXRoIHRoZWlyIHBoeXNpY2FsIGxvY2F0aW9uIHdpdGhpbiB0aGUgdGFibGUsIGNhbiBjb21wcmVzcyB2ZXJ5IGxhcmdlIGFtb3VudCBvZiBkYXRhIGludG8gYSBzbWFsbCBzcGFjZS5yYXdyYXcoIiQwIikAAH4vEABDAAAAUwIAAA4AAAAKAgAAGAAAAAQAAAALAgAAfi8QAEMAAAA1AQAALQAAAH4vEABDAAAAiAEAAEUAAABQcmVjaXNpb24gbXVzdCBiZSBwb3NpdGl2ZSB3aXRoIGEgbWF4aW11bSB2YWx1ZSBvZiAxMDAwLk0gY2FuIHJhbmdlIGZyb20gMCB0byA2Lk0gbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuAAAAfi8QAEMAAACiAQAASgAAAAAAAAADAEHowsUACwUBAAAABABB+MLFAAsFAgAAAAsAQYjDxQALFQgAAAABAAAAQQAAAB4AAAADAAAAFQBBqMPFAAsFBAAAAA4AQbjDxQALFQUAAAAQAAAAAQAAAAMAAAAHAAAADwBB2MPFAAsFBgAAABsAQejDxQAL1gjCLxAAJwAAAKgAAABAAAAAwi8QACcAAACOAAAAEgAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IFRoaXMgbWV0aG9kIGlzIG9ubHkgaW1wbGVtZW50ZWQgb24gY29ubmVjdG9ycyB3aXRoIGxhdGVyYWwgam9pbiBzdXBwb3J0LgAAwi8QACcAAAAmAQAACQAAAMIvEAAnAAAAHgEAAAkAAADDIAAgaQUAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSEpISkhKSExKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSkxKTEpMSlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUE5QTlBOUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQUlBSUFJQVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRWVFZUVlRYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlhWWFZYVlpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWFpYWlhaWF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cXlxeXF5cYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeYF5gXmBeZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGJkYmRiZGIAAACEKhAAZgAAAAgBAAAbAAAAAS7DIAAAaQMAAAEuwyAAAGkGAAABLsMgAABpCQAAIEFTQyBERVNDQVNDIE5VTExTIEZJUlNUQVNDIE5VTExTIExBU1RERVNDIE5VTExTIEZJUlNUREVTQyBOVUxMUyBMQVNUJy1JbmZpbml0eSdJbmZpbml0eScnTmFOJ0FSUkFZWwAAhwEAAAQAAAAEAAAAiAEAAJwrEAAeAAAAGwEAAE8AAAA6OnRleHQAQcjMxQAL7iQBAAAAwgEAAHdyaXRpbmcgcmZjMzMzOSBkYXRldGltZSB0byBzdHJpbmcgc2hvdWxkIG5ldmVyIGZhaWyXUBAAYwAAAH8CAAAOAAAAVGhlIFJvdyBtdXN0IGhhdmUgYSBzaW5nbGUgUGFyYW1ldGVyaXplZCBpdGVtAAAAVR8QABUAAAA9AAAADgAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IFRoZSBSb3cgbXVzdCBoYXZlIGEgc2luZ2xlIFBhcmFtZXRlcml6ZWQgaXRlbQBVHxAAFQAAAEUAAAASAAAAOjpudW1lcmljOjpqc29uYlRPX0pTT05CKG51bWVyaWN0ZXh0VU5JT04gQUxMVU5JT048dW5rbm93biBob3N0Pr4BAAAMAAAABAAAAAwCAAANAgAADgIAAEZPUkVJR04gS0VZKG5vdCBhdmFpbGFibGUpIExJS0UgKERFTEVURSBGUk9NIElOU0VSVCBJTlRPICBERUZBVUxUIFZBTFVFUyBPTiBDT05GTElDVCBETyBOT1RISU5HIE9OIENPTkZMSUNUIERPIChOT1QgdG9fdHNxdWVyeSggTk9UIExJS0UgdG9fdHN2ZWN0b3IoY29uY2F0X3dzKCcgJywgSlNPTiBwYXRoIHN0cmluZyBub3RhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBQb3N0Z3JlcwCcKxAAHgAAALoBAAAkAAAAIz4+XTo6dGV4dFtdIz4+QVJSQVlbXTo6dGV4dFtdSlNPTkJfQUdHSlNPTkJfVFlQRU9Gc3RyaW5nbnVtYmVyYm9vbGVhbiBMSU1JVCBKU09OQl9CVUlMRF9PQkpFQ1RDQVNUKEFSUkFZX1RPX1NUUklOR0FSUkFZX0FHRycsJyggTk9UIC0+ME1BWE1JTkFycmF5PD5UdXBsZTxUb28gbWFueSBEQiBjb25uZWN0aW9ucyBvcGVuZWRTZXJ2ZXIgaGFzIGNsb3NlZCB0aGUgY29ubmVjdGlvbi5RdWVyeSByZXR1cm5lZCBubyBkYXRhLlRoZSBwcm92aWRlZCBhcmd1bWVudHMgYXJlIG5vdCBzdXBwb3J0ZWRUaW1lZCBvdXQgZHVyaW5nIHF1ZXJ5IGV4ZWN1dGlvbi5UcmFuc2FjdGlvbiB3cml0ZSBjb25mbGlj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ABIAAAAzAgAAAAIAAAgAAAA0AgAAcXVlcnkgY29tcGlsZXIgY29ubmVjdHMgc2hvdWxkIG5ldmVyIGhhdmUgbW9yZSB0aGFuIG9uZSBjaGlsZCBleHByZXNzaW9utkEQADoAAABeAQAAEgAAADUCAAAAAgAACAAAADYCAABxdWVyeSBjb21waWxlciBjb25uZWN0cyBzaG91bGQgbmV2ZXIgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudCBleHByZXNzaW9uAAAAtkEQADoAAABZAQAAEgAAAHNob3VsZCBoYXZlIHBhcmVudCBJRCBmb3IgZGlzY29ubmVjdLZBEAA6AAAAagEAADAAAAA3AgAAeAAAAAQAAAA4AgAAc2hvdWxkIGhhdmUgZXhhY3RseSBvbmUgcXVlcnkgZm9yIHVwZGF0ZSB3aXRoIHNlbGVjdGlvbgC2QRAAOgAAAIsBAAAKAAAAHj8QAE4AAABJAAAAKQAAAFN0cmluZ0NodW5rY2h1bmtQYXJhbWV0ZXIAAAA5AgAADAAAAAQAAAClAAAAUGFyYW1ldGVyVHVwbGVpdGVtX3ByZWZpeGl0ZW1fc2VwYXJhdG9yaXRlbV9zdWZmaXhQYXJhbWV0ZXJUdXBsZUxpc3Rncm91cF9zZXBhcmF0b3IAOgIAADQAAAAEAAAA3QAAAAAAAAAEAAAABAAAAMwAAABSb3dUb0pzb25leHBycHJldHR5X3ByaW50SnNvblVucXVvdGVKc29uQXJyYXlBZ2dKc29uQnVpbGRPYmplY3RleHByc0pzb25FeHRyYWN0TGFzdEFycmF5RWxlbUFnZ3JlZ2F0ZVRvU3RyaW5nTG93ZXJVcHBlckNvbmNhdFRleHRTZWFyY2hjb2x1bW5NYXhpbXVtTWluaW11bUNvYWxlc2NlU3RyaW5naWZ5b25seSBhIHNpbmdsZSBxdWVyeSBjYW4gYmUgY29tcGlsZWQgYXQgYSB0aW1lUGxhY2Vob2xkZXJGb3JtYXRwcmVmaXhoYXNfbnVtYmVyaW5nAAAAOwIAABAAAAAEAAAA3gAAADwCAAAMAAAABAAAAN8AAAAAAAAABAAAAAQAAADgAAAARGVsZXRldGFibGVjb25kaXRpb25zcmV0dXJuaW5nAAA9AgAADAAAAAQAAADqAAAAPgIAAAwAAAAEAAAA/wAAAD8CAAAMAAAABAAAAOgAAAAAAAAABAAAAAQAAADmAAAAY29sdW1ucwAmdBEABQAAAIB0EQAHAAAA2gMSAAYAAAArdBEACgAAAHEUEgAHAAAANXQRAAkAAABGbGF0TWFwVmFsdWVzcm93c05vQ29uZGl0aW9uTmVnYXRpdmVDb25kaXRpb25Db21wb3VuZHR5cF9BdmFpbGFibGVVbmF2YWlsYWJsZUl0ZXJleHRlbnNpb24gdHlwZSBub3QgZm91bmQAAAAFNBAAMAAAAMUBAAAWAAAARXhhY3RseU9uZUVycm9yc2Vjb25kSm9pbkRhdGFsYXRlcmFsSnNvbkV4dHJhY3RGaXJzdEFycmF5RWxlbVRleHRTZWFyY2hSZWxldmFuY2VAAgAAYAAAAAgAAABBAgAAU3ViTXVsRGl2UmVtTWVyZ2V1c2luZ3doZW5fbm90X21hdGNoZWREaXN0aW5jdAAAQgIAAAwAAAAEAAAAQwIAAEQCAAAMAAAABAAAAEUCAABGAgAADAAAAAQAAABHAgAASAIAAAwAAAAEAAAASQIAAEoCAABIAAAACAAAAEsCAABMAgAADAAAAAQAAABNAgAATgIAAAwAAAAEAAAATwIAAHRhYmxlc29yZGVyaW5nZ3JvdXBpbmdvZmZzZXRqb2luc2N0ZXMAAABM+REACAAAADR2EQAGAAAAgHQRAAcAAAArdBEACgAAADp2EQAIAAAAQnYRAAgAAAAw/hEABgAAADb+EQAFAAAASnYRAAYAAABQdhEABQAAAFV2EQAEAAAAcRQSAAcAAABTZWxlY3RMaWtlTm90TGlrZU5vdE51bGxCZXR3ZWVuTm90QmV0d2Vlbk1hdGNoZXNOb3RNYXRjaGVzRXhpc3RzTm90RXhpc3RzSW5zZXJ0Um93TnVtYmVySnNvbkV4dHJhY3RVdWlkVG9CaW5VdWlkVG9CaW5Td2FwcGVkT3JkZXJpbmdJbm5lckxlZnRSaWdodEZ1bGxFbnVtVmFyaWFudFVzaW5nYmFzZV9xdWVyeWFzX3RhYmxlb25fY29uZGl0aW9uc0dyb3VwaW5nAAAAUAIAADQAAAAEAAAAUQIAAFICAACAAAAABAAAAFMCAABvbl9jb25mbGljdAAmdBEABQAAAIB0EQAHAAAA2gMSAAYAAACsdxEACwAAADV0EQAJAAAAcRQSAAcAAABBcnJheUNvbnRhaW5zQXJyYXlOb3RDb250YWluc1R5cGVFcXVhbHNUeXBlTm90RXF1YWxzUm93Q29uc3RhbnRPbkNsYXVzZVJhd1NxbHNxbGFyZ190eXBlc1RlbXBsYXRlU3FsZnJhZ21lbnRzcGxhY2Vob2xkZXJfZm9ybWF0Y2h1bmthYmxlRXhwcmVzc2lvbnNlbGVjdHN0eXBlc3R5cGVkbmF0aXZlX2NvbHVtbl90eXBlAAAAvgEAAAwAAAAEAAAAVAIAAFUCAABWAgBBwPHFAAvWGAEAAADCAQAASW50MzJJbnQ2NERvdWJsZVRleHRFbnVtQXJyYXlOdW1lcmljWG1sRGF0ZVRpbWVPcGFxdWVPcGFxdWVWYWx1ZXR5cFVua25vd25UdXBsZUZsYXR0ZW5Db21wYXRpdGVyZnJvbnRpdGVyYmFja2l0ZXJJdGVtb3B0SW50b0l0ZXJXAgAAKAAAAAQAAABYAgAAc2hvdWxkIGdlbmVyYXRlIGV4YWN0bHkgb25lIGRlbGV0ZQAAIFkQADoAAADVAQAAEgAAAHNob3VsZCBoYXZlIHJlY29yZCBzZWxlY3RvcnMgZm9yIHVwZGF0ZQAgWRAAOgAAAFoBAAAWAAAAc2hvdWxkIGdlbmVyYXRlIGV4YWN0bHkgb25lIHVwZGF0ZSBxdWVyeSBZEAA6AAAAZQEAABIAAABwcm9kdWN0AFkCAABkAAAABAAAAFoCAABzaG91bGQgaGF2ZSBvbmUgZmllbGQgaW4gbTJtIHJlbGF0aW9uAAAAIFkQADoAAADFAAAADgAAACBZEAA6AAAA7wEAACwAAAAgWRAAOgAAAO8BAABDAAAAIFkQADoAAADwAQAAMgAAACBZEAA6AAAA8AEAAEcAAABDb21tb25UYWJsZUV4cHJlc3Npb25PdmVycGFydGl0aW9uaW5nb3ZlcmV4dHJhY3RfYXNfc3RyaW5nZWxlbWVudHNFbnVtTmFtZXNjaGVtYV9uYW1lQXJnVHlwZWFyaXR5c2NhbGFyX3R5cGVkYl90eXBlTnVtYmVyQ29sdW1uUmVmRnVzZVVuc3VwcG9ydGVkU2NhbGFyV3JpdGVPcGVyYXRpb25QYXJhbWV0ZXJpemVkUGFyYW1ldGVyaXplZFJvd1Jhd1ZhbHVlQ29sdW1uU2VsZWN0aW9uQXN0ZXJpc2tPcENvbmRpdGlvblRyZWVDb21wYXJlVGFibGVKb2luZWRUYWJsZUFzY0Rlc2NBc2NOdWxsc0ZpcnN0QXNjTnVsbHNMYXN0RGVzY051bGxzRmlyc3REZXNjTnVsbHNMYXN0RmllbGRzSW5kZXhGb3JlaWduS2V5Q2Fubm90UGFyc2VkYXRhYmFzZWluZGV4X2RlZmluaXRpb25zAFsCAABIAAAACAAAAFwCAAAAAAAABgAAAAIAAABdAgAAXgIAABAAAAAEAAAAXwIAAAAAAAABAAAAAQAAAGACAAB0eXBlX2ZhbWlseW5hdGl2ZV90eXBlaXNfZW51bWlzX2xpc3Rpc19zZWxlY3RlZAAgVhIABAAAACZ0EQAFAAAAEKIRAAUAAAB5+REABwAAAEh8EQALAAAAU3wRAAsAAABefBEABwAAAGV8EQAHAAAAbHwRAAsAAABEb05vdGhpbmdZZXNOb0RhdGFiYXNlTm90UmVhY2hhYmxlTG9jYXRpb25ob3N0cG9ydG9yaWdpbmFsX2NvZGVvcmlnaW5hbF9tZXNzYWdlUHJvdmlkZWRHZW5lcmF0ZWRSYXdDb25uZWN0b3JFcnJvcnN0YXR1c3JlYXNvblF1ZXJ5RXJyb3JUb29NYW55Q29ubmVjdGlvbnNRdWVyeUludmFsaWRJbnB1dERhdGFiYXNlTm90UmVhY2hhYmxlZGF0YWJhc2VfbG9jYXRpb25EYXRhYmFzZURvZXNOb3RFeGlzdGRiX25hbWVEYXRhYmFzZUFjY2Vzc0RlbmllZERhdGFiYXNlQWxyZWFkeUV4aXN0c1Rsc0Nvbm5lY3Rpb25FcnJvckNvbm5lY3Rpb25DbG9zZWRBdXRoZW50aWNhdGlvbkZhaWxlZHVzZXJUYWJsZURvZXNOb3RFeGlzdFVuaXF1ZUNvbnN0cmFpbnRWaW9sYXRpb25jb25zdHJhaW50TnVsbENvbnN0cmFpbnRWaW9sYXRpb25Gb3JlaWduS2V5Q29uc3RyYWludFZpb2xhdGlvbkNvbHVtblJlYWRGYWlsdXJlUmVzdWx0SW5kZXhPdXRPZkJvdW5kc0NvbHVtbk5vdEZvdW5kUmVzdWx0VHlwZU1pc21hdGNoRGF0YWJhc2VVcmxJc0ludmFsaWRDb252ZXJzaW9uRXJyb3JMZW5ndGhNaXNtYXRjaEludmFsaWRDb25uZWN0aW9uQXJndW1lbnRzU29ja2V0VGltZW91dFZhbHVlT3V0T2ZSYW5nZUluY29ycmVjdE51bWJlck9mUGFyYW1ldGVyc2V4cGVjdGVkYWN0dWFsVHJhbnNhY3Rpb25BbHJlYWR5Q2xvc2VkVHJhbnNhY3Rpb25Xcml0ZUNvbmZsaWN0Um9sbGJhY2tXaXRob3V0QmVnaW5JbnZhbGlkSXNvbGF0aW9uTGV2ZWxVVUlERXJyb3JNaXNzaW5nRnVsbFRleHRTZWFyY2hJbmRleFVuc3VwcG9ydGVkQ29sdW1uVHlwZWNvbHVtbl90eXBlRXh0ZXJuYWxFcnJvck9wYXF1ZUFzUmF3VmFsdWVSYW5RdWVyeVdpdGhPcGFxdWVQYXJhbU5hdGl2ZUNvbHVtblR5cGVsZW5ndGgAAKZKNnmPnP13bBK9yC/54sYgSU5ORVIgSk9JTiAgTEVGVCBKT0lOICBSSUdIVCBKT0lOICBGVUxMIEpPSU4gbm90IGltcGxlbWVudGVkOiBNZXJnZXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIHVuZGVybHlpbmcgZGF0YWJhc2UuMC8QABUAAAAAAgAACQAAAFdJVEggAAAAMC8QABUAAAA2AgAAKAAAAFNFTEVDVCBESVNUSU5DVCBESVNUSU5DVCBPTiAgRlJPTSAgV0hFUkUgIEdST1VQIEJZICBPUkRFUiBCWSBVUERBVEUgIFNFVCAgUkVUVVJOSU5HICA9IEFWRy8qICAqLzAvEAAVAAAAfQMAACoAAAAgSU4gMT0wZnVuY3Rpb24gY2FsbCBhZ2FpbnN0IGEgcm93IG9mIGV4cHJlc3Npb25zIG11c3QgaGF2ZSBhIG5hbWUAADAvEAAVAAAApQMAABkAAAAwLxAAFQAAAKIDAAAZAAAAMC8QABUAAABdAwAAKgAAADAvEAAVAAAAXgMAADMAAAAgPD4gMC8QABUAAAD+AwAAKgAAACBOT1QgSU4gMT0xADAvEAAVAAAAMQQAABkAAAAwLxAAFQAAAC4EAAAZAAAAMC8QABUAAADeAwAAKgAAADAvEAAVAAAA3wMAADMAAAAgSVMgTk9UIE5VTEwgQkVUV0VFTiAgTk9UIEJFVFdFRU4gQU5ZQUxMRVhJU1RTTk9UIEVYSVNUU1JPV19OVU1CRVIoKSBPVkVSUk9XX05VTUJFUigpIE9WRVIoKUNPVU5UKCopdXVpZF90b19iaW4odXVpZCgpKXV1aWRfdG9fYmluKHV1aWQoKSwgMSl1dWlkKCkgPCBERUZBVUxUID4gUEFSVElUSU9OIEJZIE9SREVSIEJZIAAAAAAAAAEAAAABAAAAhgEAAFtZEAAcAAAANAEAACwAAABwcmlzbWFfX3R5cGVwYXJhbXByaXNtYV9fdmFsdWUAAGECAAAEAAAABAAAAIgBAABnZW5lcmF0b3JDYWxscmV0dXJuVHlwZQBbWRAAHAAAAGYBAAAKAAAAJUMQAIQAAABOAAAANQAAAGICAAAkAAAABAAAAGMCAABkAgAAAAAAAAEAAAABAAAAFgIAABcCAABlAgAALAAAAAQAAABmAgAAZwIAAGICAAAkAAAABAAAAGgCAABpAgAAAAAAAAQAAAAEAAAAagIAAGsCAABsAgAAFAAAAAQAAABtAgAAbgIAAG42EAB0AAAA5wUAABQAAABuNhAAdAAAAOcFAAAhAAAAbjYQAHQAAADbBQAAIQAAAG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0YhBEAKAAAACQAAAAAAAAAAgAAAECEEQAnKhAAOQAAAHIAAAAbAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogVW5leHBlY3RlZCByZWxhdGlvbiBhZ2dyZWdhdGlvbiBzZWxlY3Rpb24gaW5zaWRlIGEgY29tcG9zaXRlIHR5cGUgcXVlcnkAAAAnKhAAOQAAAG4AAAAVAAAAcmVhZF9pZHNfaW5mYWxsaWJsZWZpbmRfY2hpbGRyZW5fYnlfcGFyZW50AEGgisYAC+EBAQAAAG8CAABwAgAAz0QQADsAAADNAAAANQAAAKA0EABIAAAATgIAABYAAABNaXNzaW5nUmVxdWlyZWRBcmd1bWVudGFyZ3VtZW50X25hbWVmaWVsZF9uYW1lb2JqZWN0X25hbWVSZWxhdGlvblZpb2xhdGlvbnJlbGF0aW9uX25hbWVJbnB1dEVycm9ybW9kZWxBbW9kZWxCcmVsYXRpb25UeXBlb3BlcmF0aW9ubmVlZGVkRm9yZXhwZWN0ZWRSb3dzUmVjb3Jkc05vdENvbm5lY3Rl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AAAAEAAAAEAAAACAiABFdmVyeSBmaWVsZCB1c2VkIGluIGBoYXZpbmdgIGZpbHRlcnMgbXVzdCBlaXRoZXIgYmUgYW4gYWdncmVnYXRpb24gZmlsdGVyIG9yIGJlIGluY2x1ZGVkIGluIHRoZSBzZWxlY3Rpb24gb2YgdGhlIHF1ZXJ5LiBNaXNzaW5nIGZpZWxkczogwABBdCBsZWFzdCBvbmUgc2VsZWN0aW9uIGlzIHJlcXVpcmVkIGZvciB0aGUgYGJ5YCBhcmd1bWVudC5FeHBlY3RlZCBwYXJzaW5nIHRvIGd1YXJhbnRlZSBlaXRoZXIgYSBzaW5nbGUgZW51bSBvciBhIGxpc3Qgb2YgZW51bXMgaXMgcHJvdmlkZWQgZm9yIGdyb3VwIGJ5IGBieWAgYXJnLoCCAEV2ZXJ5IHNlbGVjdGVkIHNjYWxhciBmaWVsZCB0aGF0IGlzIG5vdCBwYXJ0IG9mIGFuIGFnZ3JlZ2F0aW9uIG11c3QgYmUgaW5jbHVkZWQgaW4gdGhlIGJ5LWFyZ3VtZW50cyBvZiB0aGUgcXVlcnkuIE1pc3NpbmcgZmllbGRzOiDAAAAAAPEdEABJAAAAiAAAAA4AAADxHRAASQAAAJQAAAAOAAAA8R0QAEkAAAAMAAAAMwAAAPEdEABJAAAAFAAAAC0AAACqQxAASgAAAAkAAAAtAAAAVW5hYmxlIHRvIHByb2Nlc3MgY29tYmluYXRpb24gb2YgcXVlcnkgYXJndW1lbnRzIGZvciBhZ2dyZWdhdGlvbiBxdWVyeS4gUGxlYXNlIG5vdGUgdGhhdCBpdCBpcyBub3QgcG9zc2libGUgYXQgdGhlIG1vbWVudCB0byBoYXZlIGEgbnVsbC1jdXJzb3IsIG9yIGEgY3Vyc29yIGFuZCBvcmRlckJ5IGNvbWJpbmF0aW9uIHRoYXQgbm90IHN0YWJsZSAodW5pcXVlKS5TZXQgaXMgbm90IHN1cHBvcnRlZCBvbiBvbmUtdG8tb25lIHJlbGF0aW9ucy4ANVUQAEYAAAAwAAAACQBB3LzGAAv9AQEAAAC9AgAAvgIAAFtRdWVyeSBHcmFwaF0gRXhwZWN0ZWQgb25seSBvbmUgbmVzdGVkIGNyZWF0ZSBub2RlIG9uIGEgMTptIHJlbGF0aW9uIHdpdGggaW5saW5lIElEcyBvbiB0aGUgcGFyZW50LgBVVhAASQAAALIBAAAKAAAAW1F1ZXJ5IEdyYXBoXSBFeHBlY3RlZCBvbmUgbmVzdGVkIGNyZWF0ZSBub2RlIG9uIGEgMTptIHJlbGF0aW9uIHdpdGggaW5saW5lIElEcyBvbiB0aGUgcGFyZW50LgAAVVYQAEkAAAASAQAADgAAAFVWEABJAAAAHAIAAFgAQeS+xgALli8BAAAAvwIAAMACAACfVhAASQAAAEkAAABCAAAAn1YQAEkAAAA3AAAATgAAAJ9WEABJAAAAOgAAADoAAACfVhAASQAAAH8AAAA2AAAAn1YQAEkAAACAAAAANgAAAGNyZWF0ZSBhcmd1bWVudCBpcyBtaXNzaW5nAADrVBAASQAAAG8AAAA9AAAAdXBkYXRlIGFyZ3VtZW50IGlzIG1pc3NpbmcAAOtUEABJAAAAcAAAAD0AAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiB3aGVyZSBhcmd1bWVudCBpcyBtaXNzaW5nAOtUEABJAAAAfAAAAB0AAAAAVhAAVAAAALcAAAAeAAAAAFYQAFQAAAC6AAAANAAAAABWEABUAAAAvQAAADYAAAAAVhAAVAAAAGgAAAA4AAAAAFYQAFQAAABrAAAAOgAAAABWEABUAAAABAEAADgAAAAAVhAAVAAAAAcBAAA6AAAAAFYQAFQAAAB6AQAAHgAAAABWEABUAAAAfQEAADQAAAAAVhAAVAAAAIABAAA2AAAAY00QAEUAAAC1AAAAMAAAAE1vZGVsTm90Rm91bmQAAAC+AQAADAAAAAQAAAA1AQAARmllbGROb3RGb3VuZGNvbnRhaW5lcl90eXBlY29udGFpbmVyX25hbWVTY2FsYXJGaWVsZE5vdEZvdW5kQ29tcG9zaXRlRmllbGROb3RGb3VuZFJlbGF0aW9uRmllbGROb3RGb3VuZEVudW1Ob3RGb3VuZEJpdEZsYWdzPFF1ZXJ5T3B0aW9uPmJpdHNmbGFnc1JldHVybkludmFyaWFudFZpb2xhdGlvbkludmFsaWROb2RlVHJhbnNmb3JtYXRpb24AADkCAAAMAAAABAAAANcAAABhbGlhc1VwZGF0ZU9yQ3JlYXRlQXJnc0lucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB1cGRhdGUgb3IgY3JlYXRlIG5vZGVzAAAA9yUQADUAAAASAAAAFgAAAFVwZGF0ZU9yQ3JlYXRlQXJnc0lucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXcml0ZVF1ZXJ5IG5vZGVzAAD3JRAANQAAABUAAAANAAAAZmFpbGVkIHRvIHBhcnNlIGJpZ2ludC9iaWd1aW50UmVjb3JkUXVlcnlGaWx0ZXJJbnB1dCBjYW4gb25seSBiZSB1c2VkIHdpdGggTm9kZTo6UXVlcnkoUXVlcnk6OlJlYWQoUmVhZFF1ZXJ5OjpSZWNvcmRRdWVyeShycSkpKQDaohEAYQAAAPclEAA1AAAAMQAAAAEAAAATUmVjb3JkUXVlcnkobmFtZTogJ8AOJywgc2VsZWN0aW9uOiDACiwgZmlsdGVyOiDBIACAYAEpABhNYW55UmVjb3Jkc1F1ZXJ5KG5hbWU6ICfACycsIG1vZGVsOiAnwA4nLCBzZWxlY3Rpb246IMAILCBhcmdzOiDBIACAYAEpAENvbm5lY3RSZWNvcmRzRGlzY29ubmVjdFJlY29yZHMAC1sQAF0AAAD7BgAAMAAAAFJlY29yZFF1ZXJ5RmlsdGVySW5wdXQUQ3JlYXRlUmVjb3JkKG1vZGVsOiDACCwgYXJnczogwSAAgGABKQAYQ3JlYXRlTWFueVJlY29yZChtb2RlbDogwBMsIHNlbGVjdGVkX2ZpZWxkczogwSAAgGABKQAUVXBkYXRlUmVjb3JkKG1vZGVsOiDADSwgc2VsZWN0aW9uOiDBIACAYAEpAA5EZWxldGVSZWNvcmQ6IMACLCDBIACAYAIsIMEgAIBgABlVcGRhdGVNYW55UmVjb3Jkcyhtb2RlbDogwAgsIGFyZ3M6IMEgAIBgASkADEV4ZWN1dGVSYXc6IMEgAIBgAApRdWVyeVJhdzogwSAAgGAAcGFyc2VyIGVycm9yLCBzZWUgdG9fc3RyaW5nKCkgZm9yIGRldGFpbHMAAAAAAAAABAAAAAQAAAAfAQAAUmVjb3JkRmlsdGVyc2VsZWN0b3JzTWFueVJlY29yZHNRdWVyeUZpbHRlcklucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBOb2RlOjpRdWVyeShRdWVyeTo6UmVhZChSZWFkUXVlcnk6Ok1hbnlSZWNvcmRzUXVlcnkobXJxKSkpAAAAZaURAGwAAAD3JRAANQAAADcAAAABAAAAYWxsRG9tYWluRXJyb3JNYW55UmVjb3Jkc1F1ZXJ5RmlsdGVySW5wdXQgfCA8ZW1wdHk+RXhlY3V0aW9uT3JkZXJQYXJlbnRSZXN1bHRUaGVuRWxzZVVwZGF0ZVJlY29yZFNlbGVjdG9yc0lucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBOb2RlOjpRdWVyeShRdWVyeTo6V3JpdGUoV3JpdGVRdWVyeTo6VXBkYXRlUmVjb3JkKHVyKSkpAAAAQaYRAGgAAAD3JRAANQAAAD0AAAABAAAAQ291bnRBbGxBZ2dyZWdhdGlvblNlbGVjdGlvbmRt0yAAgGkBAADTIACAbQEAANMgAIBrAQAAAACiIBAAMwAAAJkAAABFAAAAUkVMQVRJT05fVklPTEFUSU9OAAAiMBAANAAAAG0AAAAkAAAAVXBkYXRlUmVjb3JkU2VsZWN0b3JzSW5wdXRDb21wb3NpdGVFbnZlbG9wZVJlbGF0aW9uRW52ZWxvcGVGaWVsZFJlZlR5cGVXaGVyZUlucHV0VHlwZU5lc3RlZFRvT25lVXBkYXRlRW52ZWxvcGVQYXJzZWRJbnB1dE1hcHRhZ1VwZGF0ZU1hbnlSZWNvcmRzU2VsZWN0b3JzSW5wdXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIE5vZGU6OlF1ZXJ5KFF1ZXJ5OjpXcml0ZShXcml0ZVF1ZXJ5OjpVcGRhdGVNYW55UmVjb3Jkcyh1cikpKQAAAK+nEQByAAAA9yUQADUAAABDAAAAAQAAAENoYXJjaGFyYWN0ZXJTaW1wbGVMZW5ndGhsZW5CeXRlTGVuZ3RoR3JvdXBDb3VudEdyb3VwTGVuZ3RoZ3JvdXBJbnZhbGlkVVRGOE1JU1NJTkdfUkVDT1JEAAAAIjAQADQAAACLAAAAJAAAAFVwZGF0ZU1hbnlSZWNvcmRzU2VsZWN0b3JzSW5wdXREZWxldGVSZWNvcmRTZWxlY3RvcnNJbnB1dCBjYW4gb25seSBiZSB1c2VkIHdpdGggTm9kZTo6UXVlcnkoUXVlcnk6OldyaXRlKFdyaXRlUXVlcnk6OkRlbGV0ZVJlY29yZChkcikpKQDHqBEAaAAAAPclEAA1AAAASQAAAAEAAABNSVNTSU5HX1JFTEFURURfUkVDT1JEAAAiMBAANAAAAMkAAAAkAAAARGVsZXRlUmVjb3JkU2VsZWN0b3JzSW5wdXQAAMICAAAIAAAABAAAAKEAAADDAgAAqAAAAAgAAACiAAAAxAIAAAwAAAAEAAAAxQIAAMYCAAAMAAAABAAAAMcCAADIAgAADAAAAAQAAACjAAAAcGFyZW50X2ZpZWxkc2VsZWN0ZWRfZmllbGRzbmVzdGVkc2VsZWN0aW9uX29yZGVycGFyZW50X3Jlc3VsdHMAACBWEgAEAAAAEKIRAAUAAADcqREADAAAAFFIEgAEAAAA6KkRAA8AAAD3qREABgAAAP2pEQAPAAAADKoRAA4AAABSZWxhdGVkUmVjb3Jkc1F1ZXJ5AMkCAAAMAAAABAAAAG8BAADKAgAADAAAAAQAAADLAgAAzAIAAAwAAAAEAAAAzQIAAM4CAAAMAAAABAAAADEBAAAAAAAABAAAAAQAAAAVAQAAZ3JvdXBfYnkgVhIABAAAABCiEQAFAAAAkgUSAAUAAAD9qREADwAAAFFIEgAEAAAAXKURAAkAAADAqhEACAAAADD+EQAGAAAAQWdncmVnYXRlUmVjb3Jkc1F1ZXJ5SW50ZXJuYWxEYXRhTW9kZWxEaWZmTGVmdFRvUmlnaHREaWZmUmlnaHRUb0xlZnRVcGRhdGVPckNyZWF0ZUFyZ3NJbnB1dADKVxAAKQAAAFwAAAASAAAAylcQACkAAABkAAAAEgAAAG42EAB0AAAAzwEAADcAAABXcml0ZUFyZ3NyZXF1ZXN0X25vd0lOQ09NUExFVEVfQ09OTkVDVF9JTlBVVCIwEAA0AAAA4QAAACQAAABEZWxldGVNYW55UmVjb3Jkc1NlbGVjdG9yc0lucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBOb2RlOjpRdWVyeShRdWVyeTo6V3JpdGUoV3JpdGVRdWVyeTo6RGVsZXRlTWFueVJlY29yZHMoZHIpKSkAANCrEQByAAAA9yUQADUAAABPAAAAAQAAAFJlY29yZFF1ZXJ5TWFueVJlY29yZHNRdWVyeWpvaW5JTkNPTVBMRVRFX0NPTk5FQ1RfT1VUUFVUIjAQADQAAAD/AAAAJAAAAERlbGV0ZU1hbnlSZWNvcmRzU2VsZWN0b3JzSW5wdXRSRUNPUkRTX05PVF9DT05ORUNURUQiMBAANAAAABwBAAAkAAAATGVmdFNpZGVEaWZmSW5wdXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIE5vZGU6OkNvbXB1dGF0aW9uKENvbXB1dGF0aW9uOjpEaWZmTGVmdFRvUmlnaHQoZGlmZl9ub2RlKSB8CkNvbXB1dGF0aW9uOjpEaWZmUmlnaHRUb0xlZnQoZGlmZl9ub2RlKSnorBEAjAAAAPclEAA1AAAAVQAAAAEAAABWYWxpZGF0aW9uRXJyb3JtZXRhYSBxdWVyeWFuIHVwZGF0ZWFuIHVwc2VydGEgZGVsZXRlYSBkaXNjb25uZWN0YSBjb25uZWN0YSBuZXN0ZWQgY3JlYXRlYSBuZXN0ZWQgdXBkYXRlYSBuZXN0ZWQgdXBzZXJ0YSBuZXN0ZWQgZGVsZXRlYSBuZXN0ZWQgc2V0YSBuZXN0ZWQgY29ubmVjdGEgbmVzdGVkIGNvbm5lY3Qgb3IgY3JlYXRlTGVmdFNpZGVEaWZmSW5wdXRSaWdodFNpZGVEaWZmSW5wdXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIE5vZGU6OkNvbXB1dGF0aW9uKENvbXB1dGF0aW9uOjpEaWZmTGVmdFRvUmlnaHQoZGlmZl9ub2RlKSB8CkNvbXB1dGF0aW9uOjpEaWZmUmlnaHRUb0xlZnQoZGlmZl9ub2RlKSkAAABYrhEAjQAAAPclEAA1AAAAWwAAAAEAAABSaWdodFNpZGVEaWZmSW5wdXRwZXJmb3JtIGEgbmVzdGVkIHVwZGF0ZWRpc2Nvbm5lY3QgZXhpc3RpbmcgY2hpbGQgcmVjb3Jkc0lmSW5wdXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIE5vZGU6OkZsb3coRmxvdzo6SWYgeyBkYXRhLCAuLiB9KQAAAEqvEQA/AAAA9yUQADUAAABhAAAAAQAAAENyZWF0ZU1hbnlSZWNvcmRzRmllbGRzb3JkZXJJZklucHV0UmV0dXJuSW5wdXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIE5vZGU6OkZsb3coRmxvdzo6UmV0dXJuKGRhdGEpKQDHrxEAQAAAAPclEAA1AAAAZwAAAAEAAABUaHJvd09uRW1wdHlTaW5nbGVPcmRlckJ5TWFwb25lLXRvLW9uZW9uZS10by1tYW55bWFueS10by1tYW55UmV0dXJuSW5wdXRSZWxhdGVkUmVjb3Jkc1NlbGVjdG9yc0lucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBOb2RlOjpRdWVyeShRdWVyeTo6UmVhZChSZWFkUXVlcnk6OlJlbGF0ZWRSZWNvcmRzUXVlcnkocnEpKSkAaLARAG8AAAD3JRAANQAAAG0AAAABAAAAU2NoZW1hRXJyb3JRdWVyeVBhcnNlckVycm9yQXNzZXJ0aW9uRXJyb3JwYXJlbnRfbmFtZWNoaWxkX25hbWVSZWNvcmROb3RGb3VuZFF1ZXJ5R3JhcGhFcnJvclJlbGF0ZWRSZWNvcmRzU2VsZWN0b3JzSW5wdXRtb2RlbF9hbW9kZWxfYkNvbm5lY3RQYXJlbnRJbnB1dCBjYW4gb25seSBiZSB1c2VkIHdpdGggTm9kZTo6UXVlcnkoUXVlcnk6OldyaXRlKFdyaXRlUXVlcnk6OkNvbm5lY3RSZWNvcmRzKGNyKSkpAHWxEQBiAAAA9yUQADUAAABzAAAAAQAAAENvbm5lY3RQYXJlbnRJbnB1dENvbm5lY3RDaGlsZHJlbklucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBOb2RlOjpRdWVyeShRdWVyeTo6V3JpdGUoV3JpdGVRdWVyeTo6Q29ubmVjdFJlY29yZHMoY3IpKSkAAAKyEQBkAAAA9yUQADUAAAB5AAAAAQAAAENvbm5lY3RDaGlsZHJlbklucHV0UXVlcnlPcHRpb25zRGlzY29ubmVjdFBhcmVudElucHV0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBOb2RlOjpRdWVyeShRdWVyeTo6V3JpdGUoV3JpdGVRdWVyeTo6RGlzY29ubmVjdFJlY29yZHMoZHIpKSmgshEAaAAAAPclEAA1AAAAfwAAAAEAAABBdE1vc3RPbmVFeGFjdGx5T25lQWxsRmlsdGVyRXhhY3RseU9uZUZpbHRlckV4YWN0bHlPbmVXcml0ZUFyZ3NEaXNjYXJkRGlzY29ubmVjdFBhcmVudElucHV0RGlzY29ubmVjdENoaWxkcmVuSW5wdXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIE5vZGU6OlF1ZXJ5KFF1ZXJ5OjpXcml0ZShXcml0ZVF1ZXJ5OjpEaXNjb25u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b3DCHRAALgAAAMIAAAAOAAAACgBBwPbGAAv9AWFzc2VydGlvbiBmYWlsZWQ6IGlkeCA8IENBUEFDSVRZAkkQAIAAAAC6AgAACQAAAAAAAAABAAAAAQAAANUCAADpNBAAMgAAACcBAABXAAAA6TQQADIAAAAoAQAAXQAAAIECAAAMAAAABAAAANYCAADpNBAAMgAAACkBAABbAAAA6TQQADIAAAAqAQAAXQAAAOk0EAAyAAAAKwEAABYAAAAAAAAAAQAAAAEAAADXAgAA6TQQADIAAAAzAQAAXwAAAHgCAAAYAAAABAAAAHkCAADpNBAAMgAAADcBAABtAAAA6TQQADIAAAA2AQAAWwAAAOk0EAAyAAAAOAEAABYAQcj4xgALiRABAAAA2AIAAOk0EAAyAAAALgEAAF0AAADpNBAAMgAAADABAAAWAAAA6TQQADIAAAAgAQAANwAAAOk0EAAyAAAAFAEAADMAAADpNBAAMgAAAAoBAAAzAAAA6TQQADIAAABCAQAAEgAAACFOEAA3AAAASQAAADIAAAAhThAANwAAAFEAAAAkAAAAayAQADYAAAAoAAAAWQAAAFJlbGF0aW9uRmlsdGVybmVzdGVkX2ZpbHRlclNpbmdsZVByb2plY3Rpb25Db21wb3VuZFByb2plY3Rpb25PYmplY3RNZW1iZXJrZXlzcGFuUmVsYXRpb25GaWVsZENvbXBvc2l0ZUZpZWxkVHlwZUlkZW50aWZpZXJGaWxlSWRDb252ZXJzaW9uRmFpbHVyZWZyb210b1NjYWxhckZpZWxkUGFyc2VEZWNpbWFsUGFyc2VJbnRQYXJzZUJpZ0ludFBhcnNlRXJyb3JPdXRPZlJhbmdlSW1wb3NzaWJsZU5vdEVub3VnaEludmFsaWRUb29TaG9ydFRvb0xvbmdCYWRGb3JtYXRfX05vbmV4aGF1c3RpdmVRdWVyeUFyZ3VtZW50c29yZGVyX2J5aWdub3JlX3NraXBpZ25vcmVfdGFrZXJlbGF0aW9uX2xvYWRfc3RyYXRlZ3lQYXJlbnRDb250YWluZXJlbnVtX3ZhcmlhbnRDb21wb3NpdGVUeXBlTnVtZXJpY1ZhbHVlU3RyaW5nVmFsdWVDb25zdGFudFZhbHVlRnVuY3Rpb25Bcmd1bWVudHNMaXN0ZW1wdHlfYXJndW1lbnRzUGFyc2VGbG9hdEVycm9yUGFyc2VCaWdJbnRFcnJvckV4dGVuc2lvblR5cGVJZEFyZ3VtZW50AAAA6yoQADAAAAA5AQAAKwAAAOsqEAAwAAAAOgEAACoAAABFbXB0eUFyZ3VtZW50SW52YWxpZERpZ2l0Q29tcG9zaXRlU2VsZWN0aW9uc2VsZWN0aW9uc09yZGVyQnlTY2FsYXJzb3J0X29yZGVybnVsbHNfb3JkZXJPcmRlckJ5U2NhbGFyQWdncmVnYXRpb25zb3J0X2FnZ3JlZ2F0aW9uT3JkZXJCeVRvTWFueUFnZ3JlZ2F0aW9uT3JkZXJCeVJlbGV2YW5jZUludGVybmFsRW51bUFsbE5lZ2F0aXZlT25lUGFyc2VCb29sRXJyb3JGaWVsZFNlbGVjdGlvblNwYW5zdGFydGVuZGZpbGVfaWRBc2NlbmRpbmdEZXNjZW5kaW5nUGFyc2VJbnRFcnJvckZpcnN0TGFzdEV2ZXJ5UmVsYXRlZFJlY29yZEF0TGVhc3RPbmVSZWxhdGVkUmVjb3JkTm9SZWxhdGVkUmVjb3JkVG9PbmVSZWxhdGVkUmVjb3JkRW51bUlkVmlydHVhbEpvaW5Qb3NPdmVyZmxvd05lZ092ZXJmbG93WmVyb05vdEFQb3dlck9mVHdvRXh0ZW5zaW9uUmVsYXRpb25TZWxlY3Rpb25yZXN1bHRfZmllbGRzUmVsYXRpb25Db3VudFNjYWxhckFnZ3JlZ2F0aW9uVG9NYW55QWdncmVnYXRpb25SZWxldmFuY2UBAAFBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsv/////////////////////////////////////////////////////////z7///8/NDU2Nzg5Ojs8Pf////////8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGf///////xobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIz////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////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AABmAwAAZgMAQZz2xwAL6hEBAAAAZwMAAGgDAABoAwAAHAMAAAwAAAAEAAAAaQMAAGoDAABqAwAAHAMAAAwAAAAEAAAAawMAAGwDAABsAwAAHAMAAAwAAAAEAAAAbQMAAG4DAABuAwAAHAMAAAwAAAAEAAAAbwMAAHADAABwAwAAHAMAAAwAAAAEAAAAcQMAAHIDAAByAwAAHAMAAAwAAAAEAAAAcwMAAHQDAAB0AwAAHAMAAAwAAAAEAAAAdQMAAHYDAAB2AwAAHAMAAAwAAAAEAAAAdwMAAHgDAAB4AwAAHAMAAAwAAAAEAAAAeQMAAHoDAAB6AwAAcXVlcnlSYXdleGVjdXRlUmF3cnVuQ29tbWFuZFJhdwCMVBAANQAAACQAAAApAAAAjFQQADUAAAArAAAAKAAAAEV4cGVjdGVkIGxpbmtpbmcgZmllbGRzIHRvIGJlIHNjYWxhci4AAAA+RxAANwAAAJYAAAASAAAA6xwQADgAAAB3AAAAEgAAAHVwc2VydGRlbGV0ZU1hbnl1cGRhdGVNYW55ZGVsZXRlY29ubmVjdGRpc2Nvbm5lY3Rjb25uZWN0T3JDcmVhdGVjcmVhdGVNYW55aW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogU2NhbGFyVHlwZTo6TnVsbCBzaG91bGQgbmV2ZXIgcmVhY2ggdGhhdCBjb2RlIHBhdGgAAJVGEABEAAAAIAAAACEAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBpbnB1dCByZWYgdHlwZSBvbmx5IHN1cHBvcnQgc2NhbGFyIG9yIGVudW1zAAAAlUYQAEQAAAAlAAAADgAAAHN0cmluZ19jb250YWluc3N0cmluZ19zdGFydHNfd2l0aHN0cmluZ19lbmRzX3dpdGhhcnJheV9zdGFydHNfd2l0aGFycmF5X2VuZHNfd2l0aGFycmF5X2NvbnRhaW5zbm90aW5ub3RJbmx0bHRlZ3RndGVza2lwdGFrZW9yZGVyQnlieWhhdmluZ2xpbWl0cmVsYXRpb25Mb2FkU3RyYXRlZ3lXaXRoQWdncmVnYXRpb25XaXRoUmVsYXRpb25Tb3J0T3JkZXJJbnB1dF9yZWxldmFuY2VBdmcAAAB4JxAASQAAAHIAAAASAAAAdW5zZXRTb3J0T3JkZXJBZmZlY3RlZFJvd3NPdXRwdXRRdWVyeU11dGF0aW9uTmVzdGVkT25lTmVzdGVkTWFueVVuY2hlY2tlZFJlbGF0aW9uTG9hZFN0cmF0ZWd5T25lT25lUmVxdWlyZWRNYW55VHJhbnNhY3Rpb25Jc29sYXRpb25MZXZlbGEqEAAiAAAAFQAAACAAAABmaW5kVW5pcXVlZmluZFVuaXF1ZU9yVGhyb3dmaW5kRmlyc3RmaW5kRmlyc3RPclRocm93ZmluZE1hbnljcmVhdGVPbmVjcmVhdGVNYW55QW5kUmV0dXJudXBkYXRlT25ldXBkYXRlTWFueUFuZFJldHVybmRlbGV0ZU9uZXVwc2VydE9uZWFnZ3JlZ2F0ZWdyb3VwQnlmaW5kUmF3YWdncmVnYXRlUmF3AAAAIFwQACkAAAA+AQAAEgAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IGludmFsaWQgT25jZSBzdGF0ZbItEACAAAAAOgAAABIAAABEZWNpbWFsVVVJRERhdGFiYXNlQ2hlY2tlZENyZWF0ZUlucHV0Q2hlY2tlZFVwZGF0ZU1hbnlJbnB1dFVuY2hlY2tlZFVwZGF0ZU1hbnlJbnB1dENoZWNrZWRVcGRhdGVPbmVJbnB1dENvbXBvc2l0ZUNyZWF0ZUVudmVsb3BlSW5wdXRDb21wb3NpdGVDcmVhdGVJbnB1dENvbXBvc2l0ZURlbGV0ZU1hbnlJbnB1dENvbXBvc2l0ZVVwZGF0ZUVudmVsb3BlSW5wdXRDb21wb3NpdGVVcGRhdGVJbnB1dENvbXBvc2l0ZVVwZGF0ZU1hbnlJbnB1dENvbXBvc2l0ZVVwc2VydE9iamVjdElucHV0Q3JlYXRlTWFueUlucHV0Q3JlYXRlTWFueUFuZFJldHVybk91dHB1dENyZWF0ZU9uZVNjYWxhckxpc3RGaWVsZFVwZGF0ZU9wZXJhdGlvbnNJbnB1dE1vZGVsTmVzdGVkVXBzZXJ0TWFueUlucHV0TmVzdGVkVXBzZXJ0T25lSW5wdXRPcmRlckJ5QWdncmVnYXRlSW5wdXRPcmRlckJ5SW5wdXRPcmRlckJ5UmVsZXZhbmNlRmllbGRFbnVtT3JkZXJCeVJlbGV2YW5jZUlucHV0T3JkZXJCeVRvTWFueUFnZ3JlZ2F0ZUlucHV0UmVsYXRpb25DcmVhdGVJbnB1dFJlbGF0aW9uVXBkYXRlSW5wdXRTY2FsYXJGaWVsZEVudW1TY2FsYXJGaWx0ZXJJbnB1dFNjYWxhckxpc3RGaWx0ZXJJbnB1dFNjYWxhckxpc3RVcGRhdGVJbnB1dFRvTWFueUNvbXBvc2l0ZUZpbHRlcklucHV0VG9NYW55UmVsYXRpb25GaWx0ZXJJbnB1dFRvT25lQ29tcG9zaXRlRmlsdGVySW5wdXRUb09uZVJlbGF0aW9uRmlsdGVySW5wdXRVbmNoZWNrZWRDcmVhdGVJbnB1dFVuY2hlY2tlZFVwZGF0ZU9uZUlucHV0VXBkYXRlTWFueVdoZXJlQ29tYmluYXRpb25JbnB1dFVwZGF0ZU9uZVdoZXJlQ29tYmluYXRpb25JbnB1dFVwZGF0ZVRvT25lUmVsV2hlcmVDb21iaW5hdGlvbklucHV0VXBkYXRlTWFueUFuZFJldHVybk91dHB1dFdoZXJlSW5wdXRXaGVyZVVuaXF1ZUlucHV0UmF3U3RyaW5nRW51bVR5cGV2YWx1ZXNSZXF1aXJlZE9wdGlvbmFsvgEAAAwAAAAEAAAAewMAAHwDAAB9AwBBkIjIAAuGEgEAAADCAQAASW5wdXRPYmplY3RUeXBlI0lucHV0IEZpZWxkcyBDZWxsI2NvbnRhaW5lcgB8VRAAgwAAADkAAAASAAAA9UMQAE4AAABcAAAADgAAAEJvb2yARBAATgAAACkAAAAtAAAAgEQQAE4AAAAxAAAALAAAAElucHV0T2JqZWN0VHlwZUNvbnN0cmFpbnRzbWluX251bV9maWVsZHNtYXhfbnVtX2ZpZWxkc0RhdGFiYXNlRW51bVR5cGVpbnRlcm5hbF9lbnVtRmllbGRSZWZFbnVtVHlwZUlkZW50aWZpZXJuYW1lc3BhY2VQcmlzbWFKc29uTGlzdDM3EABcAAAAfgEAACQAAACVQhAAYAAAAN4CAAAqAAAAlUIQAGAAAADjAgAAHgAAAGNhbGwgbGltaXQgcmVhY2hlZAAAwicQAGMAAAA/AAAAKgAAAMInEABjAAAARgAAAB0AAADCJxAAYwAAAEoAAAASAAAAVW5zdXBwb3J0ZWQoW112aWV3bW9kZWxn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AAAA2kYQADEAAABEAAAALAAAAEEgY29tcG9zaXRlIHR5cGUgY2Fubm90IGhhdmUgYmxvY2stbGV2ZWwgYXR0cmlidXRlcy5BIGNvbXBvc2l0ZSB0eXBlIGNhbm5vdCBkZWZpbmUgYW4gaWQuQSBmdWxsdGV4dCBpbmRleCBzaG91bGQgYmUgZGVmaW5lZCBpbiB0aGUgbW9kZWwgY29udGFpbmluZyB0aGUgZW1iZWQuQW4gaW5kZXggc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlIG1vZGVsIGNvbnRhaW5pbmcgdGhlIGVtYmVkLkEgdW5pcXVlIGNvbnN0cmFpbnQgc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlIG1vZGVsIGNvbnRhaW5pbmcgdGhlIGVtYmVkLlRoZSBuYW1lIG9mIGEgY29tcG9zaXRlIHR5cGUgaXMgbm90IHBlcnNpc3RlZCBpbiB0aGUgZGF0YWJhc2UsIHRoZXJlZm9yZSBpdCBkb2VzIG5vdCBuZWVkIGEgbWFwcGVkIGRhdGFiYXNlIG5hbWUuY29tcG9zaXRlIHR5cGUAANpGEAAxAAAAZgAAAB4AAADaRhAAMQAAAGoAAAASAAAA6i8QADcAAABYAAAADgAAAOovEAA3AAAASwAAABIAAADqLxAANwAAADgAAAAYAAAA6i8QADcAAAAxAAAAGAAAAOovEAA3AAAANQAAACQAAADqLxAANwAAAD0AAAAOAAAAY29uZmlndXJhdGlvbiBibG9ja3NvdXJjZQAAAOovEAA3AAAAIwAAAB4AAADqLxAANwAAACsAAAASAAAA4B4QAHQAAAAHBAAANwAAAAZZEAAZAAAALwAAADoAAAACXHXDIAAAaQQAAHJ1bGVFT0lzY2hlbWFtb2RlbF9kZWNsYXJhdGlvbmZpZWxkX2RlY2xhcmF0aW9ubW9kZWxfY29udGVudHNmaWVsZF90eXBldW5zdXBwb3J0ZWRfdHlwZWJhc2VfdHlwZXVuc3VwcG9ydGVkX29wdGlvbmFsX2xpc3RfdHlwZWxpc3RfdHlwZW9wdGlvbmFsX3R5cGVsZWdhY3lfcmVxdWlyZWRfdHlwZWxlZ2FjeV9saXN0X3R5cGV0eXBlX2FsaWFzY29uZmlnX2Jsb2Nra2V5X3ZhbHVlY29uZmlnX2NvbnRlbnRzYXJiaXRyYXJ5X2Jsb2NrZW51bV9kZWNsYXJhdGlvbmVudW1fdmFsdWVfZGVjbGFyYXRpb25lbnVtX2NvbnRlbnRzYmxvY2tfYXR0cmlidXRlZmllbGRfYXR0cmlidXRlYXJndW1lbnRzX2xpc3Rhcmd1bWVudGVtcHR5X2FyZ3VtZW50bmFtZWRfYXJndW1lbnR0cmFpbGluZ19jb21tYWNvbW1lbnRfYmxvY2t0cmFpbGluZ19jb21tZW50ZG9jX2NvbW1lbnRjb21tZW50ZG9jX2NvbnRlbnRtdWx0aV9saW5lX2NvbW1lbnR1bmljb2RlX2FscGhhbnVtZXJpY2lkZW50aWZpZXJXSElURVNQQUNFTkVXTElORWVtcHR5X2xpbmVzQkxPQ0tfT1BFTkJMT0NLX0NMT1NFRU5VTV9LRVlXT1JETU9ERUxfS0VZV09SRFRZUEVfS0VZV09SRFZJRVdfS0VZV09SREdFTkVSQVRPUl9LRVlXT1JEREFUQVNPVVJDRV9LRVlXT1JETEVHQUNZX0NPTE9OQ0FUQ0hfQUxMQkxPQ0tfTEVWRUxfQ0FUQ0hfQUxMZnVuY3Rpb25fY2FsbGFycmF5X2V4cHJlc3Npb25vYmplY3RfZXhwcmVzc2lvbmV4cHJlc3Npb25udW1lcmljX2xpdGVyYWxBU0NJSV9DT05UUk9MX0NIQVJBQ1RFUnN0cmluZ19lc2NhcGVzdHJpbmdfY29udGVudHN0cmluZ19saXRlcmFsU3RhcnRwb3NFbmRhIGJ5dGUgYXJyYXlhbiBpbnRlZ2VyYSBmbG9hdGEgY2hhcmFuIG9wdGlvbmFsYSBzZXF1ZW5jZWEgdHVwbGVhIHR1cGxlIHN0cnVjdDEgZWxlbWVudCBpbiBtYXAxIGVsZW1lbnQgaW4gc2VxdWVuY2VieXRlIGFycmF5dW5pdCB2YWx1ZU9wdGlvbiB2YWx1ZW5ld3R5cGUgc3RydWN0c2VxdWVuY2VtYXB1bml0IHZhcmlhbnRuZXd0eXBlIHZhcmlhbnR0dXBsZSB2YXJpYW50c3RydWN0IHZhcmlhbnR1bml0dTMyYSBib29sZWFuYSBzdHJpbmdleHBsaWNpdCBwYW5pYwD7UBAAYgAAACQJAAASAAAAb25lIG9mIAAAAAAACAAAAAQAAACBAwAAggMAAIMDAAAu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hNMXjCQKH4NGyOtfdOioJQAAbBoSAAEAAABwGhIAAQAAAHQaEgABAAAAeBoSAAEAAAB8GhIAAgAAAIQaEgADAAAAkBoSAAUAAACkGhIACgAAAMwaEgATAAAAGBsSACYAAACwGxIASwAAANwcEgCVAAAAMB8SACoBAADYIxIAUwIAALU+EABoAAAAmAEAABYAAAC1PhAAaAAAALMBAAAkAAAAtT4QAGgAAABBAQAALAAAAGZtdCBlcnJvckFycmF5IE9iamVjdCBhbnkgdmFsaWQgSlNPTiB2YWx1ZXJhdyB2YWx1ZUVPRiB3aGlsZSBwYXJzaW5nIGEgbGlzdEVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdEVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nRU9GIHdoaWxlIHBhcnNpbmcgYSB2YWx1ZWV4cGVjdGVkIGA6YGV4cGVjdGVkIGAsYCBvciBgXWBleHBlY3RlZCBgLGAgb3IgYH1gZXhwZWN0ZWQgaWRlbnRleHBlY3RlZCB2YWx1ZWV4cGVjdGVkIGAiYGludmFsaWQgZXNjYXBlaW52YWxpZCBudW1iZXJudW1iZXIgb3V0IG9mIHJhbmdlaW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnRjb250cm9sIGNoYXJhY3RlciAoXHUwMDAwLVx1MDAxRikgZm91bmQgd2hpbGUgcGFyc2luZyBhIHN0cmluZ2tleSBtdXN0IGJlIGEgc3RyaW5naW52YWxpZCB2YWx1ZTogZXhwZWN0ZWQga2V5IHRvIGJlIGEgbnVtYmVyIGluIHF1b3Rlc2Zsb2F0IGtleSBtdXN0IGJlIGZpbml0ZSAoZ290IE5hTiBvciArLy1pbmYpbG9uZSBsZWFkaW5nIHN1cnJvZ2F0ZSBpbiBoZXggZXNjYXBldHJhaWxpbmcgY29tbWF0cmFpbGluZyBjaGFyYWN0ZXJzdW5leHBlY3RlZCBlbmQgb2YgaGV4IGVzY2FwZXJlY3Vyc2lvbiBsaW1pdCBleGNlZWRlZAA/MxAAZQAAALkBAAAuAAAAMFgQAGAAAAA+AgAAJQAAAKUzEABfAAAAogIAACoAAAByYXcgdmFsdWUgd2FzIG5vdCBlbWl0dGVkAAAAPzMQAGUAAACoAgAAHgAAAL4BAAAMAAAABAAAAIQD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YWluc1NvbWVJc0VtcHR5T25lUmVsYXRpb25Jc051bGxGaWx0ZXK+AQAADAAAAAQAAACeAwAAnwMAAKADAEGAk8kAC/0SAQAAAMIBAABVbmV4cGVjdGVkV3JpdGVPcGVyYXRpb25TY2FsYXJGaWx0ZXJwcm9qZWN0aW9ubW9kZUNvbXBvc2l0ZUZpbHRlcgAAAKkcEABBAAAADwAAABsAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBUd29XYXlFbWJlZGRlZE1hbnlUb01hbnkgcmVsYXRpb24gaW4gc3FsLXF1ZXJ5LWNvbm5lY3RvcgAAijkQAFAAAABWAAAAEQAAAG5vdCBpbXBsZW1lbnRlZDogU1FMIGNvbm5lY3RvcnMgZG8gbm90IHN1cHBvcnQgY29tcG9zaXRlcyB5ZXQuAADqLhAARQAAAEsBAAAlAAAA6i4QAEUAAABWAQAAGgAAAEA+JiY8Pj1BbGwgdmlydHVhbCBmaWVsZHMgbXVzdCBiZSB2aXNpdGVkIGJlZm9yZSBjYWxsaW5nIGJ1aWxkX3ZpcnR1YWxfZXhwcgC3PRAARQAAAMEAAAAOAAAAAACAPwAAIEEAAMhCAAB6RABAHEYAUMNHACR0SYCWGEsgvL5MKGtuTvkCFVAlIhAAaAAAAB8AAAAaAAAATm90RXF1YWxzTm90Q29udGFpbnNTdGFydHNXaXRoTm90U3RhcnRzV2l0aEVuZHNXaXRoTm90RW5kc1dpdGhMZXNzVGhhbkxlc3NUaGFuT3JFcXVhbHNHcmVhdGVyVGhhbkdyZWF0ZXJUaGFuT3JFcXVhbHNJbk5vdEluSnNvbkNvbXBhcmVTZWFyY2hOb3RTZWFyY2gAAABVGxAAZQAAADgCAAAtAAAATGlzdENvdW50QXZlcmFnZVN1bU1pbk1heERhdGFzb3VyY2VGaWVsZE5hbWUwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OUJvb2xlYW5FbnVtSW50VXVpZEpzb25PYmplY3ROdWxsRGF0ZVRpbWVGbG9hdEJ5dGVzcmV0dXJuX3R5cGVBbnlGaWVsZFNldFVuc2V0QWRkU3VidHJhY3RNdWx0aXBseURpdmlkZVB1c2hVcGRhdGVVcHNlcnRzZXR1cGRhdGVVcGRhdGVNYW55ZmlsdGVyRGVsZXRlTWFueXR5cGVOZXN0ZWRXcml0ZXdyaXRlc3Jvb3Qgc2VsZWN0aW5uZXIgc2VsZWN0bWlkZGxlIHNlbGVjdG91dGVyIHNlbGVjdAAAAAAAAAgAAAAEAAAAoQMAAKIDAACjAwAApAMAAMQBAAAMAAAABAAAAKUDAACmAwAApwMAAAAAAAAIAAAABAAAAKgDAACpAwAAqgMAAKsDAACsAwAAEAAAAAQAAACtAwAArgMAAK8DAACkAwAAXPbpX9wC9rnxwXBs8mHBJNoHjEl4ZUzTwn2PTZafJs9hc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAACRWBAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAkVgQACoAAAC3BAAADQAAAHJ3bG9jayBvdmVyZmxvd2VkIHJlYWQgbG9ja3NULRAAXQAAABUAAAAsAAAAY2Fubm90IG1vZGlmeSB0aGUgcGFuaWMgaG9vayBmcm9tIGEgcGFuaWNraW5nIHRocmVhZB5AEABMAAAAkAAAAAkAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAABjPhAAUQAAAJ8BAAAFAAAAb3BlcmF0aW9uIHN1Y2Nlc3NmdWxXb3VsZEJsb2NrAAAAAAAACAAAAAQAAACwAwAATm90Rm91bmRQZXJtaXNzaW9uRGVuaWVkQ29ubmVjdGlvblJlZnVzZWRDb25uZWN0aW9uUmVzZXRIb3N0VW5yZWFjaGFibGVOZXR3b3JrVW5yZWFjaGFibGVDb25uZWN0aW9uQWJvcnRlZE5vdENvbm5lY3RlZEFkZHJJblVzZUFkZHJOb3RBdmFpbGFibGVOZXR3b3JrRG93bkJyb2tlblBpcGVBbHJlYWR5RXhpc3RzTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtGaWxlSGFuZGxlSW52YWxpZElucHV0SW52YWxpZERhdGFUaW1lZE91dFdyaXRlWmVyb1N0b3JhZ2VGdWxsTm90U2Vla2FibGVRdW90YUV4Y2VlZGVkRmlsZVRvb0xhcmdlUmVzb3VyY2VCdXN5RXhlY3V0YWJsZUZpbGVCdXN5RGVhZGxvY2tDcm9zc2VzRGV2aWNlc1Rvb01hbnlMaW5rc0ludmFsaWRGaWxlbmFtZUFyZ3VtZW50TGlzdFRvb0xvbmdJbnRlcnJ1cHRlZFVuc3VwcG9ydGVkVW5leHBlY3RlZEVvZk91dE9mTWVtb3J5SW5Qcm9ncmVzc090aGVyVW5jYXRlZ29yaXplZE9zY29kZWtpbmRtZXNzYWdlS2luZEN1c3RvbWVycm9ycGFuaWNrZWQgYXQgxAEAAAwAAAAEAAAAsQMAAHJ3bG9jayBoYXMgbm90IGJlZW4gbG9ja2VkIGZvciByZWFkaW5nAABULRAAXQAAAD4AAAAJAAAAwyAAAGkgAADDIAAAaRAAAMMgAABpAgAAY2Fubm90IGVudGVyIGEgdGFzay1sb2NhbCBzY29wZSB3aGlsZSB0aGUgdGFzay1sb2NhbCBzdG9yYWdlIGlzIGJvcnJvd2VkY2Fubm90IGVudGVyIGEgdGFzay1sb2NhbCBzY29wZSBkdXJpbmcgb3IgYWZ0ZXIgZGVzdHJ1Y3Rpb24gb2YgdGhlIHVuZGVybHlpbmcgdGhyZWFkLWxvY2FsAgICAgICAgICAgIAQZqmyQALCAICAAAAAAACAEHRpskACwECAEH3pskACwEBAEGSp8kACwEBAEH0p8kAC58Bl1kQAFsAAABsAAAAGAAAAJdZEABbAAAAbQAAACUAAACXWRAAWwAAAGUAAAAlAAAAl1kQAFsAAABfAAAAJQAAAEF0dGVtcHRlZCB0byBpbml0aWFsaXplIHRocmVhZC1sb2NhbCB3aGlsZSBpdCBpcyBiZWluZyBkcm9wcGVkAADQLBAAgwAAAGsAAAANAAAAAAAAAP//////////iFQSAEGgqckACyN1dXV1dXV1dWJ0bnVmcnV1dXV1dXV1dXV1dXV1dXV1dQAAIgBB/KnJAAsBXABBoKvJAAvWBGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGUzLhAAbQAAAMgAAAAWAAAAYXR0ZW1wdCB0byBqb2luIGludG8gY29sbGVjdGlvbiB3aXRoIGxlbiA+IHVzaXplOjpNQVgAAAAzLhAAbQAAAK8AAAAKAAAAbmFtZWZpZWxkc3R5cGVOYW1laXNSZWxhdGlvbm9iamVjdHNjYWxhcmxpc3RlbGVtZW50VHlwZWVudW10eXBlTmFtZXNyZXF1aXJlZG1pbkZpZWxkQ291bnRtYXhGaWVsZENvdW50cmVxdWlyZWRGaWVsZHNVbmV4cGVjdGVkUnVudGltZUVycm9yRW1wdHlTZWxlY3Rpb25JbnZhbGlkQXJndW1lbnRUeXBlSW52YWxpZEFyZ3VtZW50VmFsdWVTb21lRmllbGRzTWlzc2luZ1Rvb01hbnlGaWVsZHNHaXZlblNlbGVjdGlvblNldE9uU2NhbGFyUmVxdWlyZWRBcmd1bWVudE1pc3NpbmdVbmlvblVua25vd25Bcmd1bWVudFVua25vd25JbnB1dEZpZWxkVW5rbm93blNlbGVjdGlvbkZpZWxkVmFsdWVUb29MYXJnZT8zEABlAAAAmwEAAC4AAABzZXJpYWxpemVfdmFsdWUgY2FsbGVkIGJlZm9yZSBzZXJpYWxpemVfa2V5AD8zEABlAAAAqAEAAB8AAAA/MxAAZQAAAK8BAAAuAAAAM0YQAGEAAAA7AAAAIwAAAL4BAAAMAAAABAAAALIDAACzAwAAtAMAQYCwyQAL5QMBAAAAwgEAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAaVsQAF0AAACFCQAANAAAAG1pZCA+IGxlbkV4cGVjdGVkIGEgbWluaW11bSBvZiAxIGZpZWxkIHRvIGJlIHByZXNlbnQsIGdvdCAwb3V0cHV0VHlwZXNlbGVjdGlvblBhdGgAAIcBAAAEAAAABAAAAIgBAAA/OhAANgAAAH8AAAAYAAAAQXJndW1lbnQgcGF0aCBjYW5ub3Qgbm90IGJlIGVtcHR5AAAAPzoQADYAAAD/AQAAMgAAAEJpZ0ludGFyZ3VtZW50UGF0aAAAPzoQADYAAAAHAgAAGAAAAEFyZ3VtZW50IGRvZXMgbm90IGV4aXN0IGluIGVuY2xvc2luZyB0eXBlYXJndW1lbnRzAAA/OhAANgAAAHEBAAARAAAAaW5wdXRUeXBlY29uc3RyYWludHM/OhAANgAAAPIAAAARAAAAPzoQADYAAACgAQAAEQAAACwgaW5mZXJyZWRUeXBlAAA/OhAANgAAAKcAAAARAAAAPzoQADYAAAAJAQAAEQAAAD86EAA2AAAAygAAADIAAAB1bmRlcmx5aW5nRXJyb3IAPzoQADYAAADRAAAAGABB+7PJAAsBgABBmLTJAAvTGz86EAA2AAAA1gAAABgAAABmaWVsZE5hbWUAAAA/OhAANgAAANgBAAAYAAAAU2VsZWN0aW9uIHBhdGggbXVzdCBub3QgYmUgZW1wdHk/OhAANgAAALcBAAAjAAAAPzoQADYAAAC9AQAAGAAAAGlucHV0VHlwZXMAAD86EAA2AAAAJQEAABEAAABkZXBlbmRlbnRBcmd1bWVudFBhdGgAAAA/OhAANgAAAEwBAAAYAAAAZXJyb3JzAAA/OhAANgAAAOUBAAAYAAAAM0YQAGEAAABYAQAAOAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAbT8QAHAAAABxCwAADgAAAEVycm9yAAAAaVsQAF0AAACCCQAANgAAAAAAAAAJAAAADgAAABMAAAAYAAAAMDEyMzQ1Njc4OWFiY2RlZv///////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4P//////////////////////////////////8KCwwNDg////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AECAwQFBgcICQoLDA0ODw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EQAAAA8AAAAPAAAAEgAAABEAAAAMAAAACQAAABAAAAALAAAACgAAAA0AAAAKAAAADQAAAAwAAAARAAAAEgAAAA4AAAAWAAAADAAAAAsAAAAIAAAACQAAAAsAAAALAAAADQAAAAwAAAAMAAAAEgAAAAgAAAAOAAAADAAAAA8AAAATAAAACwAAAAsAAAANAAAACwAAAAoAAAAFAAAADQAAALBPEgC4TxIAyE8SANlPEgDoTxIA908SAAlQEgAaUBIAJlASAC9QEgA/UBIASlASAFRQEgCUTxIAYVASAG5QEgB6UBIAi1ASAJ1QEgCrUBIAwVASAM1QEgDYUBIA4FASAOlQEgD0UBIA/1ASAAxREgAYURIAJFESADZREgA+URIATFESAFhREgBnURIAelESAIVREgCQURIAnVESAKhREgCyURIAt1ESAAgAAAAQAAAAEQAAAA8AAAAPAAAAEgAAABEAAAAMAAAACQAAABAAAAALAAAACgAAAA0AAAAKAAAADQAAAAwAAAARAAAAEgAAAA4AAAAWAAAADAAAAAsAAAAIAAAACQAAAAsAAAALAAAADQAAAAwAAAAMAAAAEgAAAAgAAAAOAAAADAAAAA8AAAATAAAACwAAAAsAAAANAAAACwAAAAoAAAAFAAAADQAAALBPEgC4TxIAyE8SANlPEgDoTxIA908SAAlQEgAaUBIAJlASAC9QEgA/UBIASlASAFRQEgCUTxIAYVASAG5QEgB6UBIAi1ASAJ1QEgCrUBIAwVASAM1QEgDYUBIA4FASAOlQEgD0UBIA/1ASAAxREgAYURIAJFESADZREgA+URIATFESAFhREgBnURIAelESAIVREgCQURIAnVESAKhREgCyURIAt1ESAAgAAAAQAAAAEQAAAA8AAAAPAAAAEgAAABEAAAAMAAAACQAAABAAAAALAAAACgAAAA0AAAAKAAAADQAAAAwAAAARAAAAEgAAAA4AAAAWAAAADAAAAAsAAAAIAAAACQAAAAsAAAALAAAADQAAAAwAAAAMAAAAEgAAAAgAAAAOAAAADAAAAA8AAAATAAAACwAAAAsAAAANAAAACwAAAAoAAAAFAAAADQAAALBPEgC4TxIAyE8SANlPEgDoTxIA908SAAlQEgAaUBIAJlASAC9QEgA/UBIASlASAFRQEgCUTxIAYVASAG5QEgB6UBIAi1ASAJ1QEgCrUBIAwVASAM1QEgDYUBIA4FASAOlQEgD0UBIA/1ASAAxREgAYURIAJFESADZREgA+URIATFESAFhREgBnURIAelESAIVREgCQURIAnVESAKhREgCyURIAt1ESAEGQ68kACwLkAQBBiOzJAAsE/////wBBqOzJAAsCpAIAQbjsyQALDQEAAADBAgAAAAAAAAQ="; +export { + wasm +}; diff --git a/apps/api/.output/dist/chunks/source-SMPGMLTA.js b/apps/api/.output/dist/chunks/source-SMPGMLTA.js new file mode 100644 index 0000000..9c45426 --- /dev/null +++ b/apps/api/.output/dist/chunks/source-SMPGMLTA.js @@ -0,0 +1,4507 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + require_src +} from "./chunk-C4DYPKAN.js"; +import "./chunk-A34KYKJP.js"; +import { + __commonJS, + __esm, + __name, + __toESM +} from "./chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +var require_ieee754 = __commonJS({ + "../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js"(exports) { + exports.read = function(buffer, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) { + } + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) { + } + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + exports.write = function(buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { + } + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { + } + buffer[offset + i - d] |= s * 128; + }; + } +}); + +// ../../node_modules/.pnpm/@borewit+text-codec@0.2.2/node_modules/@borewit/text-codec/lib/index.js +function utf8Decoder() { + if (typeof globalThis.TextDecoder === "undefined") + return void 0; + return _utf8Decoder !== null && _utf8Decoder !== void 0 ? _utf8Decoder : _utf8Decoder = new globalThis.TextDecoder("utf-8"); +} +function textDecode(bytes, encoding = "utf-8") { + switch (encoding.toLowerCase()) { + case "utf-8": + case "utf8": { + const dec = utf8Decoder(); + return dec ? dec.decode(bytes) : decodeUTF8(bytes); + } + case "utf-16le": + return decodeUTF16LE(bytes); + case "us-ascii": + case "ascii": + return decodeASCII(bytes); + case "latin1": + case "iso-8859-1": + return decodeLatin1(bytes); + case "windows-1252": + return decodeWindows1252(bytes); + default: + throw new RangeError(`Encoding '${encoding}' not supported`); + } +} +function flushChunk(parts, chunk) { + if (chunk.length === 0) + return; + parts.push(String.fromCharCode.apply(null, chunk)); + chunk.length = 0; +} +function pushCodeUnit(parts, chunk, codeUnit) { + chunk.push(codeUnit); + if (chunk.length >= CHUNK) + flushChunk(parts, chunk); +} +function pushCodePoint(parts, chunk, cp) { + if (cp <= 65535) { + pushCodeUnit(parts, chunk, cp); + return; + } + cp -= 65536; + pushCodeUnit(parts, chunk, 55296 + (cp >> 10)); + pushCodeUnit(parts, chunk, 56320 + (cp & 1023)); +} +function decodeUTF8(bytes) { + const parts = []; + const chunk = []; + let i = 0; + if (bytes.length >= 3 && bytes[0] === 239 && bytes[1] === 187 && bytes[2] === 191) { + i = 3; + } + while (i < bytes.length) { + const b1 = bytes[i]; + if (b1 <= 127) { + pushCodeUnit(parts, chunk, b1); + i++; + continue; + } + if (b1 < 194 || b1 > 244) { + pushCodeUnit(parts, chunk, REPLACEMENT); + i++; + continue; + } + if (b1 <= 223) { + if (i + 1 >= bytes.length) { + pushCodeUnit(parts, chunk, REPLACEMENT); + i++; + continue; + } + const b22 = bytes[i + 1]; + if ((b22 & 192) !== 128) { + pushCodeUnit(parts, chunk, REPLACEMENT); + i++; + continue; + } + const cp2 = (b1 & 31) << 6 | b22 & 63; + pushCodeUnit(parts, chunk, cp2); + i += 2; + continue; + } + if (b1 <= 239) { + if (i + 2 >= bytes.length) { + pushCodeUnit(parts, chunk, REPLACEMENT); + i++; + continue; + } + const b22 = bytes[i + 1]; + const b32 = bytes[i + 2]; + const valid2 = (b22 & 192) === 128 && (b32 & 192) === 128 && !(b1 === 224 && b22 < 160) && // overlong + !(b1 === 237 && b22 >= 160); + if (!valid2) { + pushCodeUnit(parts, chunk, REPLACEMENT); + i++; + continue; + } + const cp2 = (b1 & 15) << 12 | (b22 & 63) << 6 | b32 & 63; + pushCodeUnit(parts, chunk, cp2); + i += 3; + continue; + } + if (i + 3 >= bytes.length) { + pushCodeUnit(parts, chunk, REPLACEMENT); + i++; + continue; + } + const b2 = bytes[i + 1]; + const b3 = bytes[i + 2]; + const b4 = bytes[i + 3]; + const valid = (b2 & 192) === 128 && (b3 & 192) === 128 && (b4 & 192) === 128 && !(b1 === 240 && b2 < 144) && // overlong + !(b1 === 244 && b2 > 143); + if (!valid) { + pushCodeUnit(parts, chunk, REPLACEMENT); + i++; + continue; + } + const cp = (b1 & 7) << 18 | (b2 & 63) << 12 | (b3 & 63) << 6 | b4 & 63; + pushCodePoint(parts, chunk, cp); + i += 4; + } + flushChunk(parts, chunk); + return parts.join(""); +} +function decodeUTF16LE(bytes) { + const parts = []; + const chunk = []; + const len = bytes.length; + let i = 0; + while (i + 1 < len) { + const u1 = bytes[i] | bytes[i + 1] << 8; + i += 2; + if (u1 >= 55296 && u1 <= 56319) { + if (i + 1 < len) { + const u2 = bytes[i] | bytes[i + 1] << 8; + if (u2 >= 56320 && u2 <= 57343) { + pushCodeUnit(parts, chunk, u1); + pushCodeUnit(parts, chunk, u2); + i += 2; + } else { + pushCodeUnit(parts, chunk, REPLACEMENT); + } + } else { + pushCodeUnit(parts, chunk, REPLACEMENT); + } + continue; + } + if (u1 >= 56320 && u1 <= 57343) { + pushCodeUnit(parts, chunk, REPLACEMENT); + continue; + } + pushCodeUnit(parts, chunk, u1); + } + if (i < len) { + pushCodeUnit(parts, chunk, REPLACEMENT); + } + flushChunk(parts, chunk); + return parts.join(""); +} +function decodeASCII(bytes) { + const parts = []; + for (let i = 0; i < bytes.length; i += CHUNK) { + const end = Math.min(bytes.length, i + CHUNK); + const codes = new Array(end - i); + for (let j = i, k = 0; j < end; j++, k++) { + codes[k] = bytes[j] & 127; + } + parts.push(String.fromCharCode.apply(null, codes)); + } + return parts.join(""); +} +function decodeLatin1(bytes) { + const parts = []; + for (let i = 0; i < bytes.length; i += CHUNK) { + const end = Math.min(bytes.length, i + CHUNK); + const codes = new Array(end - i); + for (let j = i, k = 0; j < end; j++, k++) { + codes[k] = bytes[j]; + } + parts.push(String.fromCharCode.apply(null, codes)); + } + return parts.join(""); +} +function decodeWindows1252(bytes) { + const parts = []; + let out = ""; + for (let i = 0; i < bytes.length; i++) { + const b = bytes[i]; + const extra = b >= 128 && b <= 159 ? WINDOWS_1252_EXTRA[b] : void 0; + out += extra !== null && extra !== void 0 ? extra : String.fromCharCode(b); + if (out.length >= CHUNK) { + parts.push(out); + out = ""; + } + } + if (out) + parts.push(out); + return parts.join(""); +} +var WINDOWS_1252_EXTRA, WINDOWS_1252_REVERSE, _utf8Decoder, CHUNK, REPLACEMENT; +var init_lib = __esm({ + "../../node_modules/.pnpm/@borewit+text-codec@0.2.2/node_modules/@borewit/text-codec/lib/index.js"() { + WINDOWS_1252_EXTRA = { + 128: "\u20AC", + 130: "\u201A", + 131: "\u0192", + 132: "\u201E", + 133: "\u2026", + 134: "\u2020", + 135: "\u2021", + 136: "\u02C6", + 137: "\u2030", + 138: "\u0160", + 139: "\u2039", + 140: "\u0152", + 142: "\u017D", + 145: "\u2018", + 146: "\u2019", + 147: "\u201C", + 148: "\u201D", + 149: "\u2022", + 150: "\u2013", + 151: "\u2014", + 152: "\u02DC", + 153: "\u2122", + 154: "\u0161", + 155: "\u203A", + 156: "\u0153", + 158: "\u017E", + 159: "\u0178" + }; + WINDOWS_1252_REVERSE = {}; + for (const [code, char] of Object.entries(WINDOWS_1252_EXTRA)) { + WINDOWS_1252_REVERSE[char] = Number.parseInt(code, 10); + } + __name(utf8Decoder, "utf8Decoder"); + CHUNK = 32 * 1024; + REPLACEMENT = 65533; + __name(textDecode, "textDecode"); + __name(flushChunk, "flushChunk"); + __name(pushCodeUnit, "pushCodeUnit"); + __name(pushCodePoint, "pushCodePoint"); + __name(decodeUTF8, "decodeUTF8"); + __name(decodeUTF16LE, "decodeUTF16LE"); + __name(decodeASCII, "decodeASCII"); + __name(decodeLatin1, "decodeLatin1"); + __name(decodeWindows1252, "decodeWindows1252"); + } +}); + +// ../../node_modules/.pnpm/token-types@6.1.2/node_modules/token-types/lib/index.js +function dv(array) { + return new DataView(array.buffer, array.byteOffset); +} +var ieee754, UINT8, UINT16_LE, UINT16_BE, UINT32_LE, UINT32_BE, INT32_BE, UINT64_LE, StringType; +var init_lib2 = __esm({ + "../../node_modules/.pnpm/token-types@6.1.2/node_modules/token-types/lib/index.js"() { + ieee754 = __toESM(require_ieee754(), 1); + init_lib(); + __name(dv, "dv"); + UINT8 = { + len: 1, + get(array, offset) { + return dv(array).getUint8(offset); + }, + put(array, offset, value) { + dv(array).setUint8(offset, value); + return offset + 1; + } + }; + UINT16_LE = { + len: 2, + get(array, offset) { + return dv(array).getUint16(offset, true); + }, + put(array, offset, value) { + dv(array).setUint16(offset, value, true); + return offset + 2; + } + }; + UINT16_BE = { + len: 2, + get(array, offset) { + return dv(array).getUint16(offset); + }, + put(array, offset, value) { + dv(array).setUint16(offset, value); + return offset + 2; + } + }; + UINT32_LE = { + len: 4, + get(array, offset) { + return dv(array).getUint32(offset, true); + }, + put(array, offset, value) { + dv(array).setUint32(offset, value, true); + return offset + 4; + } + }; + UINT32_BE = { + len: 4, + get(array, offset) { + return dv(array).getUint32(offset); + }, + put(array, offset, value) { + dv(array).setUint32(offset, value); + return offset + 4; + } + }; + INT32_BE = { + len: 4, + get(array, offset) { + return dv(array).getInt32(offset); + }, + put(array, offset, value) { + dv(array).setInt32(offset, value); + return offset + 4; + } + }; + UINT64_LE = { + len: 8, + get(array, offset) { + return dv(array).getBigUint64(offset, true); + }, + put(array, offset, value) { + dv(array).setBigUint64(offset, value, true); + return offset + 8; + } + }; + StringType = class { + static { + __name(this, "StringType"); + } + constructor(len, encoding) { + this.len = len; + this.encoding = encoding; + } + get(data, offset = 0) { + const bytes = data.subarray(offset, offset + this.len); + return textDecode(bytes, this.encoding); + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/Errors.js +var defaultMessages, EndOfStreamError, AbortError; +var init_Errors = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/Errors.js"() { + defaultMessages = "End-Of-Stream"; + EndOfStreamError = class extends Error { + static { + __name(this, "EndOfStreamError"); + } + constructor() { + super(defaultMessages); + this.name = "EndOfStreamError"; + } + }; + AbortError = class extends Error { + static { + __name(this, "AbortError"); + } + constructor(message = "The operation was aborted") { + super(message); + this.name = "AbortError"; + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/AbortSignal.js +function throwIfAborted(signal) { + if (signal?.aborted) { + throw new AbortError(); + } +} +var init_AbortSignal = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/AbortSignal.js"() { + init_Errors(); + __name(throwIfAborted, "throwIfAborted"); + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/BufferSizeError.js +function getMaxBufferSize(options) { + const limit = options?.maxBufferSize ?? Number.POSITIVE_INFINITY; + if (limit !== Number.POSITIVE_INFINITY && (!Number.isSafeInteger(limit) || limit <= 0)) { + throw new RangeError("maxBufferSize must be a positive safe integer or Infinity"); + } + return limit; +} +var BufferSizeError; +var init_BufferSizeError = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/BufferSizeError.js"() { + BufferSizeError = class extends RangeError { + static { + __name(this, "BufferSizeError"); + } + /** + * Create an error describing an allocation that exceeds the configured limit. + * @param requestedSize - Requested buffer size in bytes + * @param maxBufferSize - Configured maximum buffer size in bytes + */ + constructor(requestedSize, maxBufferSize) { + super(`Requested buffer size ${requestedSize} exceeds maxBufferSize ${maxBufferSize}`); + this.requestedSize = requestedSize; + this.maxBufferSize = maxBufferSize; + this.name = "BufferSizeError"; + } + }; + __name(getMaxBufferSize, "getMaxBufferSize"); + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/AbstractStreamReader.js +var AbstractStreamReader; +var init_AbstractStreamReader = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/AbstractStreamReader.js"() { + init_Errors(); + AbstractStreamReader = class { + static { + __name(this, "AbstractStreamReader"); + } + constructor() { + this.endOfStream = false; + this.interrupted = false; + this.peekQueue = []; + } + async peek(uint8Array, mayBeLess = false) { + const bytesRead = await this.read(uint8Array, mayBeLess); + this.peekQueue.push(uint8Array.subarray(0, bytesRead)); + return bytesRead; + } + async read(buffer, mayBeLess = false) { + if (buffer.length === 0) { + return 0; + } + let bytesRead = this.readFromPeekBuffer(buffer); + if (!this.endOfStream) { + bytesRead += await this.readRemainderFromStream(buffer.subarray(bytesRead), mayBeLess); + } + if (bytesRead === 0 && !mayBeLess) { + throw new EndOfStreamError(); + } + return bytesRead; + } + /** + * Read chunk from stream + * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in + * @returns Number of bytes read + */ + readFromPeekBuffer(buffer) { + let remaining = buffer.length; + let bytesRead = 0; + while (this.peekQueue.length > 0 && remaining > 0) { + const peekData = this.peekQueue.pop(); + if (!peekData) { + throw new Error("peekData should be defined"); + } + const lenCopy = Math.min(peekData.length, remaining); + buffer.set(peekData.subarray(0, lenCopy), bytesRead); + bytesRead += lenCopy; + remaining -= lenCopy; + if (lenCopy < peekData.length) { + this.peekQueue.push(peekData.subarray(lenCopy)); + } + } + return bytesRead; + } + async readRemainderFromStream(buffer, mayBeLess) { + let bytesRead = 0; + while (bytesRead < buffer.length && !this.endOfStream) { + if (this.interrupted) { + throw new AbortError(); + } + const chunkLen = await this.readFromStream(buffer.subarray(bytesRead), mayBeLess); + if (chunkLen === 0) { + break; + } + bytesRead += chunkLen; + } + if (!mayBeLess && bytesRead < buffer.length) { + throw new EndOfStreamError(); + } + return bytesRead; + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/Deferred.js +var init_Deferred = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/Deferred.js"() { + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/StreamReader.js +var init_StreamReader = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/StreamReader.js"() { + init_AbstractStreamReader(); + init_Deferred(); + init_Errors(); + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamReader.js +var WebStreamReader; +var init_WebStreamReader = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamReader.js"() { + init_AbstractStreamReader(); + WebStreamReader = class extends AbstractStreamReader { + static { + __name(this, "WebStreamReader"); + } + constructor(reader) { + super(); + this.reader = reader; + } + async abort() { + return this.close(); + } + async close() { + this.reader.releaseLock(); + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamByobReader.js +var WebStreamByobReader; +var init_WebStreamByobReader = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamByobReader.js"() { + init_WebStreamReader(); + WebStreamByobReader = class extends WebStreamReader { + static { + __name(this, "WebStreamByobReader"); + } + /** + * Read from stream + * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in + * @param mayBeLess - If true, may fill the buffer partially + * @protected Bytes read + */ + async readFromStream(buffer, mayBeLess) { + if (buffer.length === 0) { + return 0; + } + const result = await this.reader.read(new Uint8Array(buffer.length), { + min: mayBeLess ? void 0 : buffer.length + }); + if (result.done) { + this.endOfStream = result.done; + } + if (result.value) { + buffer.set(result.value); + return result.value.length; + } + return 0; + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +var WebStreamDefaultReader; +var init_WebStreamDefaultReader = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js"() { + init_AbstractStreamReader(); + init_Errors(); + WebStreamDefaultReader = class extends AbstractStreamReader { + static { + __name(this, "WebStreamDefaultReader"); + } + constructor(reader) { + super(); + this.reader = reader; + this.buffer = null; + } + /** + * Copy chunk to target, and store the remainder in this.buffer + */ + writeChunk(target, chunk) { + const written = Math.min(chunk.length, target.length); + target.set(chunk.subarray(0, written)); + if (written < chunk.length) { + this.buffer = chunk.subarray(written); + } else { + this.buffer = null; + } + return written; + } + /** + * Read from stream + * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in + * @param mayBeLess - If true, may fill the buffer partially + * @protected Bytes read + */ + async readFromStream(buffer, mayBeLess) { + if (buffer.length === 0) { + return 0; + } + let totalBytesRead = 0; + if (this.buffer) { + totalBytesRead += this.writeChunk(buffer, this.buffer); + } + while (totalBytesRead < buffer.length && !this.endOfStream) { + const result = await this.reader.read(); + if (result.done) { + this.endOfStream = true; + break; + } + if (result.value) { + totalBytesRead += this.writeChunk(buffer.subarray(totalBytesRead), result.value); + } + } + if (!mayBeLess && totalBytesRead === 0 && this.endOfStream) { + throw new EndOfStreamError(); + } + return totalBytesRead; + } + abort() { + this.interrupted = true; + return this.reader.cancel(); + } + async close() { + try { + await this.abort(); + } finally { + this.reader.releaseLock(); + } + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +function makeWebStreamReader(stream) { + try { + const reader = stream.getReader({ mode: "byob" }); + if (reader instanceof ReadableStreamDefaultReader) { + return new WebStreamDefaultReader(reader); + } + return new WebStreamByobReader(reader); + } catch (error) { + if (error instanceof TypeError) { + return new WebStreamDefaultReader(stream.getReader()); + } + throw error; + } +} +var init_WebStreamReaderFactory = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js"() { + init_WebStreamByobReader(); + init_WebStreamDefaultReader(); + __name(makeWebStreamReader, "makeWebStreamReader"); + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/index.js +var init_stream = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/stream/index.js"() { + init_Errors(); + init_StreamReader(); + init_WebStreamByobReader(); + init_WebStreamDefaultReader(); + init_WebStreamReaderFactory(); + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/AbstractTokenizer.js +var AbstractTokenizer; +var init_AbstractTokenizer = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/AbstractTokenizer.js"() { + init_AbortSignal(); + init_BufferSizeError(); + init_stream(); + AbstractTokenizer = class { + static { + __name(this, "AbstractTokenizer"); + } + /** + * Constructor + * @param options Tokenizer options + * @protected + */ + constructor(options) { + this.numBuffer = new Uint8Array(8); + this.position = 0; + this.maxBufferSize = getMaxBufferSize(options); + throwIfAborted(options?.abortSignal); + this.onClose = options?.onClose; + if (options?.abortSignal) { + this.addAbortListener(options.abortSignal, () => { + void this.abort().catch(() => { + }); + }); + } + } + addAbortListener(signal, listener) { + this.abortSignal = signal; + this.abortListener = listener; + signal.addEventListener("abort", listener, { once: true }); + } + removeAbortListener() { + if (this.abortListener) { + this.abortSignal?.removeEventListener("abort", this.abortListener); + } + this.abortSignal = void 0; + this.abortListener = void 0; + } + /** + * Read a token from the tokenizer-stream + * @param token - The token to read + * @param position - If provided, the desired position in the tokenizer-stream + * @returns Promise with token data + */ + async readToken(token, position = this.position) { + this.validateTokenRead(token.len, position); + const uint8Array = new Uint8Array(token.len); + const len = await this.readBuffer(uint8Array, { position }); + if (len < token.len) { + throw new EndOfStreamError(); + } + return token.get(uint8Array, 0); + } + /** + * Peek a token from the tokenizer-stream. + * @param token - Token to peek from the tokenizer-stream. + * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position. + * @returns Promise with token data + */ + async peekToken(token, position = this.position) { + const peekPosition = position ?? this.position; + this.validateTokenRead(token.len, peekPosition, true); + const uint8Array = new Uint8Array(token.len); + const len = await this.peekBuffer(uint8Array, { position: peekPosition }); + if (len < token.len) { + throw new EndOfStreamError(); + } + return token.get(uint8Array, 0); + } + /** + * Read a numeric token from the stream + * @param token - Numeric token + * @returns Promise with number + */ + async readNumber(token) { + const len = await this.readBuffer(this.numBuffer, { length: token.len }); + if (len < token.len) { + throw new EndOfStreamError(); + } + return token.get(this.numBuffer, 0); + } + /** + * Read a numeric token from the stream + * @param token - Numeric token + * @returns Promise with number + */ + async peekNumber(token) { + const len = await this.peekBuffer(this.numBuffer, { length: token.len }); + if (len < token.len) { + throw new EndOfStreamError(); + } + return token.get(this.numBuffer, 0); + } + /** + * Ignore number of bytes, advances the pointer in under tokenizer-stream. + * @param length - Number of bytes to ignore. Must be ≥ 0. + * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available + */ + async ignore(length) { + if (length < 0) { + throw new RangeError("ignore length must be \u2265 0 bytes"); + } + this.validateLength(length, "ignore length"); + this.validateLength(this.position + length, "end position"); + if (this.fileInfo.size !== void 0) { + const bytesLeft = this.fileInfo.size - this.position; + if (length > bytesLeft) { + this.position += bytesLeft; + return bytesLeft; + } + } + this.position += length; + return length; + } + async close() { + this.removeAbortListener(); + await this.abort(); + await this.onClose?.(); + } + /** + * Validate a byte length or position before using it in buffer calculations. + * @param value - Value that must be a non-negative safe integer + * @param name - Label used in the validation error + * @throws RangeError if the value is negative or not a safe integer + */ + validateLength(value, name) { + if (!Number.isSafeInteger(value) || value < 0) { + throw new RangeError(`${name} must be a non-negative safe integer`); + } + } + /** + * Validate a requested buffer size against the configured allocation limit. + * @param length - Requested buffer size in bytes + * @throws RangeError if the length is negative or not a safe integer + * @throws BufferSizeError if the length exceeds maxBufferSize + */ + validateBufferSize(length) { + this.validateLength(length, "buffer length"); + if (length > this.maxBufferSize) { + throw new BufferSizeError(length, this.maxBufferSize); + } + } + /** + * Validate a token request before allocating a buffer or consuming input. + * @param length - Token length in bytes + * @param position - Byte offset where the token starts + * @param peek - Whether to include skipped stream bytes in the lookahead limit + * @throws RangeError if a length or position is negative or not a safe integer + * @throws BufferSizeError if the token buffer or stream lookahead exceeds maxBufferSize + * @throws Error if a stream request starts before the current position + * @throws EndOfStreamError if the token extends beyond the known input size + */ + validateTokenRead(length, position, peek = false) { + this.validateBufferSize(length); + this.validateLength(position, "position"); + this.validateLength(position + length, "end position"); + if (!this.supportsRandomAccess() && position < this.position) { + throw new Error("`options.position` must be equal or greater than `tokenizer.position`"); + } + if (peek && !this.supportsRandomAccess()) { + this.validateBufferSize(length + position - this.position); + } + if (this.fileInfo.size !== void 0 && length > this.fileInfo.size - position) { + throw new EndOfStreamError(); + } + } + /** + * Apply defaults and validate buffer read or peek options. + * @param uint8Array - Target buffer whose length is the default read length + * @param options - Requested length, position and partial-read behavior + * @returns Validated options with an explicit length, position and mayBeLess flag + * @throws RangeError if a length or position is invalid, or the length exceeds the target buffer + * @throws Error if a stream request starts before the current position + */ + normalizeOptions(uint8Array, options) { + const length = options?.length ?? uint8Array.length; + const position = options?.position ?? this.position; + this.validateLength(length, "length"); + this.validateLength(position, "position"); + this.validateLength(position + length, "end position"); + if (length > uint8Array.length) { + throw new RangeError("length must not exceed the target buffer length"); + } + if (!this.supportsRandomAccess() && position < this.position) { + throw new Error("`options.position` must be equal or greater than `tokenizer.position`"); + } + return { length, position, mayBeLess: options?.mayBeLess ?? false }; + } + abort() { + this.removeAbortListener(); + return Promise.resolve(); + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/BlobTokenizer.js +var BlobTokenizer; +var init_BlobTokenizer = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/BlobTokenizer.js"() { + init_AbstractTokenizer(); + init_stream(); + BlobTokenizer = class extends AbstractTokenizer { + static { + __name(this, "BlobTokenizer"); + } + /** + * Construct BufferTokenizer + * @param blob - Uint8Array to tokenize + * @param options Tokenizer options + */ + constructor(blob, options) { + super(options); + this.blob = blob; + this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: blob.size, mimeType: blob.type } }; + } + /** + * Read buffer from tokenizer + * @param uint8Array - Uint8Array to tokenize + * @param options - Read behaviour options + * @returns {Promise} + */ + async readBuffer(uint8Array, options) { + const normOptions = this.normalizeOptions(uint8Array, options); + const bytesRead = await this.peekBuffer(uint8Array, normOptions); + this.position = normOptions.position + bytesRead; + return bytesRead; + } + /** + * Peek (read ahead) buffer from tokenizer + * @param buffer + * @param options - Read behaviour options + * @returns {Promise} + */ + async peekBuffer(buffer, options) { + const normOptions = this.normalizeOptions(buffer, options); + const bytes2read = Math.max(0, Math.min(this.blob.size - normOptions.position, normOptions.length)); + if (!normOptions.mayBeLess && bytes2read < normOptions.length) { + throw new EndOfStreamError(); + } + for (let offset = 0; offset < bytes2read; ) { + const chunkLength = Math.min(this.maxBufferSize, bytes2read - offset); + const position = normOptions.position + offset; + const arrayBuffer = await this.blob.slice(position, position + chunkLength).arrayBuffer(); + buffer.set(new Uint8Array(arrayBuffer), offset); + offset += chunkLength; + } + return bytes2read; + } + close() { + return super.close(); + } + supportsRandomAccess() { + return true; + } + setPosition(position) { + this.position = position; + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/BufferTokenizer.js +var BufferTokenizer; +var init_BufferTokenizer = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/BufferTokenizer.js"() { + init_AbstractTokenizer(); + init_stream(); + BufferTokenizer = class extends AbstractTokenizer { + static { + __name(this, "BufferTokenizer"); + } + /** + * Construct BufferTokenizer + * @param uint8Array - Uint8Array to tokenize + * @param options Tokenizer options + */ + constructor(uint8Array, options) { + super(options); + this.uint8Array = uint8Array; + this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: uint8Array.length } }; + } + /** + * Read buffer from tokenizer + * @param uint8Array - Uint8Array to tokenize + * @param options - Read behaviour options + * @returns {Promise} + */ + async readBuffer(uint8Array, options) { + const normOptions = this.normalizeOptions(uint8Array, options); + const bytesRead = await this.peekBuffer(uint8Array, normOptions); + this.position = normOptions.position + bytesRead; + return bytesRead; + } + /** + * Peek (read ahead) buffer from tokenizer + * @param uint8Array + * @param options - Read behaviour options + * @returns {Promise} + */ + async peekBuffer(uint8Array, options) { + const normOptions = this.normalizeOptions(uint8Array, options); + const bytes2read = Math.max(0, Math.min(this.uint8Array.length - normOptions.position, normOptions.length)); + if (!normOptions.mayBeLess && bytes2read < normOptions.length) { + throw new EndOfStreamError(); + } + uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read)); + return bytes2read; + } + close() { + return super.close(); + } + supportsRandomAccess() { + return true; + } + setPosition(position) { + this.position = position; + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/ReadStreamTokenizer.js +var ignoreChunkSize, ReadStreamTokenizer; +var init_ReadStreamTokenizer = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/ReadStreamTokenizer.js"() { + init_AbstractTokenizer(); + init_stream(); + ignoreChunkSize = 256e3; + ReadStreamTokenizer = class extends AbstractTokenizer { + static { + __name(this, "ReadStreamTokenizer"); + } + /** + * Constructor + * @param streamReader stream-reader to read from + * @param options Tokenizer options + */ + constructor(streamReader, options) { + super(options); + this.streamReader = streamReader; + this.fileInfo = options?.fileInfo ?? {}; + } + /** + * Read buffer from tokenizer + * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream + * @param options - Read behaviour options + * @returns Promise with number of bytes read + */ + async readBuffer(uint8Array, options) { + const normOptions = this.normalizeOptions(uint8Array, options); + const skipBytes = normOptions.position - this.position; + if (skipBytes > 0) { + await this.ignore(skipBytes); + return this.readBuffer(uint8Array, options); + } + if (skipBytes < 0) { + throw new Error("`options.position` must be equal or greater than `tokenizer.position`"); + } + if (normOptions.length === 0) { + return 0; + } + let bytesRead = 0; + while (bytesRead < normOptions.length) { + const chunkLength = Math.min(this.maxBufferSize, normOptions.length - bytesRead); + const count = await this.streamReader.read(uint8Array.subarray(bytesRead, bytesRead + chunkLength), true); + bytesRead += count; + this.position += count; + if (count < chunkLength) { + break; + } + } + if (!normOptions.mayBeLess && bytesRead < normOptions.length) { + throw new EndOfStreamError(); + } + return bytesRead; + } + /** + * Peek (read ahead) buffer from tokenizer + * @param uint8Array - Uint8Array (or Buffer) to write data to + * @param options - Read behaviour options + * @returns Promise with number of bytes peeked + */ + async peekBuffer(uint8Array, options) { + const normOptions = this.normalizeOptions(uint8Array, options); + if (normOptions.length === 0) { + return 0; + } + const lookaheadSize = normOptions.length + normOptions.position - this.position; + this.validateBufferSize(lookaheadSize); + let bytesRead = 0; + if (normOptions.position) { + const skipBytes = normOptions.position - this.position; + if (skipBytes > 0) { + const skipBuffer = new Uint8Array(normOptions.length + skipBytes); + bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess }); + const bytesPeeked = Math.max(0, bytesRead - skipBytes); + uint8Array.set(skipBuffer.subarray(skipBytes, skipBytes + bytesPeeked)); + return bytesPeeked; + } + if (skipBytes < 0) { + throw new Error("Cannot peek from a negative offset in a stream"); + } + } + if (normOptions.length > 0) { + try { + const peekBuffer = new Uint8Array(normOptions.length); + bytesRead = await this.streamReader.peek(peekBuffer, true); + uint8Array.set(peekBuffer.subarray(0, bytesRead)); + } catch (err) { + if (options?.mayBeLess && err instanceof EndOfStreamError) { + return 0; + } + throw err; + } + if (!normOptions.mayBeLess && bytesRead < normOptions.length) { + throw new EndOfStreamError(); + } + } + return bytesRead; + } + /** + * @param length Number of bytes to ignore. Must be ≥ 0. + */ + async ignore(length) { + if (length < 0) { + throw new RangeError("ignore length must be \u2265 0 bytes"); + } + this.validateLength(length, "ignore length"); + this.validateLength(this.position + length, "end position"); + const bufSize = Math.min(ignoreChunkSize, this.maxBufferSize, length); + const buf = new Uint8Array(bufSize); + let totBytesRead = 0; + while (totBytesRead < length) { + const remaining = length - totBytesRead; + const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) }); + if (bytesRead < 0) { + return bytesRead; + } + totBytesRead += bytesRead; + } + return totBytesRead; + } + abort() { + this.removeAbortListener(); + return this.streamReader.abort(); + } + async close() { + this.removeAbortListener(); + return this.streamReader.close(); + } + supportsRandomAccess() { + return false; + } + }; + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/isRandomAccessTokenizer.js +var init_isRandomAccessTokenizer = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/isRandomAccessTokenizer.js"() { + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/TokenizerBoundaryError.js +var init_TokenizerBoundaryError = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/TokenizerBoundaryError.js"() { + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/TokenizerView.js +var init_TokenizerView = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/TokenizerView.js"() { + init_isRandomAccessTokenizer(); + init_stream(); + init_TokenizerBoundaryError(); + } +}); + +// ../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/core.js +function fromWebStream(webStream, options) { + getMaxBufferSize(options); + throwIfAborted(options?.abortSignal); + const webStreamReader = makeWebStreamReader(webStream); + return new ReadStreamTokenizer(webStreamReader, options); +} +function fromBuffer(uint8Array, options) { + return new BufferTokenizer(uint8Array, options); +} +function fromBlob(blob, options) { + return new BlobTokenizer(blob, options); +} +var init_core = __esm({ + "../../node_modules/.pnpm/strtok3@10.6.2/node_modules/strtok3/lib/core.js"() { + init_AbortSignal(); + init_BlobTokenizer(); + init_BufferSizeError(); + init_BufferTokenizer(); + init_ReadStreamTokenizer(); + init_stream(); + init_AbstractTokenizer(); + init_BufferSizeError(); + init_isRandomAccessTokenizer(); + init_stream(); + init_TokenizerBoundaryError(); + init_TokenizerView(); + __name(fromWebStream, "fromWebStream"); + __name(fromBuffer, "fromBuffer"); + __name(fromBlob, "fromBlob"); + } +}); + +// ../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipToken.js +var Signature, DataDescriptor, LocalFileHeaderToken, EndOfCentralDirectoryRecordToken, FileHeader; +var init_ZipToken = __esm({ + "../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipToken.js"() { + init_lib2(); + Signature = { + LocalFileHeader: 67324752, + DataDescriptor: 134695760, + CentralFileHeader: 33639248, + EndOfCentralDirectory: 101010256 + }; + DataDescriptor = { + get(array) { + return { + signature: UINT32_LE.get(array, 0), + compressedSize: UINT32_LE.get(array, 8), + uncompressedSize: UINT32_LE.get(array, 12) + }; + }, + len: 16 + }; + LocalFileHeaderToken = { + get(array) { + const flags = UINT16_LE.get(array, 6); + return { + signature: UINT32_LE.get(array, 0), + minVersion: UINT16_LE.get(array, 4), + dataDescriptor: !!(flags & 8), + compressedMethod: UINT16_LE.get(array, 8), + compressedSize: UINT32_LE.get(array, 18), + uncompressedSize: UINT32_LE.get(array, 22), + filenameLength: UINT16_LE.get(array, 26), + extraFieldLength: UINT16_LE.get(array, 28), + filename: null + }; + }, + len: 30 + }; + EndOfCentralDirectoryRecordToken = { + get(array) { + return { + signature: UINT32_LE.get(array, 0), + nrOfThisDisk: UINT16_LE.get(array, 4), + nrOfThisDiskWithTheStart: UINT16_LE.get(array, 6), + nrOfEntriesOnThisDisk: UINT16_LE.get(array, 8), + nrOfEntriesOfSize: UINT16_LE.get(array, 10), + sizeOfCd: UINT32_LE.get(array, 12), + offsetOfStartOfCd: UINT32_LE.get(array, 16), + zipFileCommentLength: UINT16_LE.get(array, 20) + }; + }, + len: 22 + }; + FileHeader = { + get(array) { + const flags = UINT16_LE.get(array, 8); + return { + signature: UINT32_LE.get(array, 0), + minVersion: UINT16_LE.get(array, 6), + dataDescriptor: !!(flags & 8), + compressedMethod: UINT16_LE.get(array, 10), + compressedSize: UINT32_LE.get(array, 20), + uncompressedSize: UINT32_LE.get(array, 24), + filenameLength: UINT16_LE.get(array, 28), + extraFieldLength: UINT16_LE.get(array, 30), + fileCommentLength: UINT16_LE.get(array, 32), + relativeOffsetOfLocalHeader: UINT32_LE.get(array, 42), + filename: null + }; + }, + len: 46 + }; + } +}); + +// ../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipHandler.js +function signatureToArray(signature) { + const signatureBytes = new Uint8Array(UINT32_LE.len); + UINT32_LE.put(signatureBytes, 0, signature); + return signatureBytes; +} +function indexOf(buffer, portion) { + const bufferLength = buffer.length; + const portionLength = portion.length; + if (portionLength > bufferLength) + return -1; + for (let i = 0; i <= bufferLength - portionLength; i++) { + let found = true; + for (let j = 0; j < portionLength; j++) { + if (buffer[i + j] !== portion[j]) { + found = false; + break; + } + } + if (found) { + return i; + } + } + return -1; +} +function mergeArrays(chunks) { + const totalLength = chunks.reduce((acc, curr) => acc + curr.length, 0); + const mergedArray = new Uint8Array(totalLength); + let offset = 0; + for (const chunk of chunks) { + mergedArray.set(chunk, offset); + offset += chunk.length; + } + return mergedArray; +} +var import_debug, debug, syncBufferSize, ddSignatureArray, eocdSignatureBytes, ZipHandler; +var init_ZipHandler = __esm({ + "../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipHandler.js"() { + init_lib2(); + import_debug = __toESM(require_src(), 1); + init_ZipToken(); + __name(signatureToArray, "signatureToArray"); + debug = (0, import_debug.default)("tokenizer:inflate"); + syncBufferSize = 256 * 1024; + ddSignatureArray = signatureToArray(Signature.DataDescriptor); + eocdSignatureBytes = signatureToArray(Signature.EndOfCentralDirectory); + ZipHandler = class _ZipHandler { + static { + __name(this, "ZipHandler"); + } + constructor(tokenizer) { + this.tokenizer = tokenizer; + this.syncBuffer = new Uint8Array(syncBufferSize); + } + async isZip() { + return await this.peekSignature() === Signature.LocalFileHeader; + } + peekSignature() { + return this.tokenizer.peekToken(UINT32_LE); + } + async findEndOfCentralDirectoryLocator() { + const randomReadTokenizer = this.tokenizer; + const chunkLength = Math.min(16 * 1024, randomReadTokenizer.fileInfo.size); + const buffer = this.syncBuffer.subarray(0, chunkLength); + await this.tokenizer.readBuffer(buffer, { position: randomReadTokenizer.fileInfo.size - chunkLength }); + for (let i = buffer.length - 4; i >= 0; i--) { + if (buffer[i] === eocdSignatureBytes[0] && buffer[i + 1] === eocdSignatureBytes[1] && buffer[i + 2] === eocdSignatureBytes[2] && buffer[i + 3] === eocdSignatureBytes[3]) { + return randomReadTokenizer.fileInfo.size - chunkLength + i; + } + } + return -1; + } + async readCentralDirectory() { + if (!this.tokenizer.supportsRandomAccess()) { + debug("Cannot reading central-directory without random-read support"); + return; + } + debug("Reading central-directory..."); + const pos = this.tokenizer.position; + const offset = await this.findEndOfCentralDirectoryLocator(); + if (offset > 0) { + debug("Central-directory 32-bit signature found"); + const eocdHeader = await this.tokenizer.readToken(EndOfCentralDirectoryRecordToken, offset); + const files = []; + this.tokenizer.setPosition(eocdHeader.offsetOfStartOfCd); + for (let n = 0; n < eocdHeader.nrOfEntriesOfSize; ++n) { + const entry = await this.tokenizer.readToken(FileHeader); + if (entry.signature !== Signature.CentralFileHeader) { + throw new Error("Expected Central-File-Header signature"); + } + entry.filename = await this.tokenizer.readToken(new StringType(entry.filenameLength, "utf-8")); + await this.tokenizer.ignore(entry.extraFieldLength); + await this.tokenizer.ignore(entry.fileCommentLength); + files.push(entry); + debug(`Add central-directory file-entry: n=${n + 1}/${files.length}: filename=${files[n].filename}`); + } + this.tokenizer.setPosition(pos); + return files; + } + this.tokenizer.setPosition(pos); + } + async unzip(fileCb) { + const entries = await this.readCentralDirectory(); + if (entries) { + return this.iterateOverCentralDirectory(entries, fileCb); + } + let stop = false; + do { + const zipHeader = await this.readLocalFileHeader(); + if (!zipHeader) + break; + const next = fileCb(zipHeader); + stop = !!next.stop; + let fileData; + await this.tokenizer.ignore(zipHeader.extraFieldLength); + if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) { + const chunks = []; + let len = syncBufferSize; + debug("Compressed-file-size unknown, scanning for next data-descriptor-signature...."); + let nextHeaderIndex = -1; + while (nextHeaderIndex < 0 && len === syncBufferSize) { + len = await this.tokenizer.peekBuffer(this.syncBuffer, { mayBeLess: true }); + nextHeaderIndex = indexOf(this.syncBuffer.subarray(0, len), ddSignatureArray); + const size = nextHeaderIndex >= 0 ? nextHeaderIndex : len; + if (next.handler) { + const data = new Uint8Array(size); + await this.tokenizer.readBuffer(data); + chunks.push(data); + } else { + await this.tokenizer.ignore(size); + } + } + debug(`Found data-descriptor-signature at pos=${this.tokenizer.position}`); + if (next.handler) { + await this.inflate(zipHeader, mergeArrays(chunks), next.handler); + } + } else { + if (next.handler) { + debug(`Reading compressed-file-data: ${zipHeader.compressedSize} bytes`); + fileData = new Uint8Array(zipHeader.compressedSize); + await this.tokenizer.readBuffer(fileData); + await this.inflate(zipHeader, fileData, next.handler); + } else { + debug(`Ignoring compressed-file-data: ${zipHeader.compressedSize} bytes`); + await this.tokenizer.ignore(zipHeader.compressedSize); + } + } + debug(`Reading data-descriptor at pos=${this.tokenizer.position}`); + if (zipHeader.dataDescriptor) { + const dataDescriptor = await this.tokenizer.readToken(DataDescriptor); + if (dataDescriptor.signature !== 134695760) { + throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - DataDescriptor.len}`); + } + } + } while (!stop); + } + async iterateOverCentralDirectory(entries, fileCb) { + for (const fileHeader of entries) { + const next = fileCb(fileHeader); + if (next.handler) { + this.tokenizer.setPosition(fileHeader.relativeOffsetOfLocalHeader); + const zipHeader = await this.readLocalFileHeader(); + if (zipHeader) { + await this.tokenizer.ignore(zipHeader.extraFieldLength); + const fileData = new Uint8Array(fileHeader.compressedSize); + await this.tokenizer.readBuffer(fileData); + await this.inflate(zipHeader, fileData, next.handler); + } + } + if (next.stop) + break; + } + } + async inflate(zipHeader, fileData, cb) { + if (zipHeader.compressedMethod === 0) { + return cb(fileData); + } + if (zipHeader.compressedMethod !== 8) { + throw new Error(`Unsupported ZIP compression method: ${zipHeader.compressedMethod}`); + } + debug(`Decompress filename=${zipHeader.filename}, compressed-size=${fileData.length}`); + const uncompressedData = await _ZipHandler.decompressDeflateRaw(fileData); + return cb(uncompressedData); + } + static async decompressDeflateRaw(data) { + const input = new ReadableStream({ + start(controller) { + controller.enqueue(data); + controller.close(); + } + }); + const ds = new DecompressionStream("deflate-raw"); + const output = input.pipeThrough(ds); + try { + const response = new Response(output); + const buffer = await response.arrayBuffer(); + return new Uint8Array(buffer); + } catch (err) { + const message = err instanceof Error ? `Failed to deflate ZIP entry: ${err.message}` : "Unknown decompression error in ZIP entry"; + throw new TypeError(message); + } + } + async readLocalFileHeader() { + const signature = await this.tokenizer.peekToken(UINT32_LE); + if (signature === Signature.LocalFileHeader) { + const header = await this.tokenizer.readToken(LocalFileHeaderToken); + header.filename = await this.tokenizer.readToken(new StringType(header.filenameLength, "utf-8")); + return header; + } + if (signature === Signature.CentralFileHeader) { + return false; + } + if (signature === 3759263696) { + throw new Error("Encrypted ZIP"); + } + throw new Error("Unexpected signature"); + } + }; + __name(indexOf, "indexOf"); + __name(mergeArrays, "mergeArrays"); + } +}); + +// ../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/GzipHandler.js +var GzipHandler; +var init_GzipHandler = __esm({ + "../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/GzipHandler.js"() { + GzipHandler = class { + static { + __name(this, "GzipHandler"); + } + constructor(tokenizer) { + this.tokenizer = tokenizer; + } + inflate() { + const tokenizer = this.tokenizer; + return new ReadableStream({ + async pull(controller) { + const buffer = new Uint8Array(1024); + const size = await tokenizer.readBuffer(buffer, { mayBeLess: true }); + if (size === 0) { + controller.close(); + return; + } + controller.enqueue(buffer.subarray(0, size)); + } + }).pipeThrough(new DecompressionStream("gzip")); + } + }; + } +}); + +// ../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/index.js +var init_lib3 = __esm({ + "../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/index.js"() { + init_ZipHandler(); + init_GzipHandler(); + } +}); + +// ../../node_modules/.pnpm/uint8array-extras@1.6.0/node_modules/uint8array-extras/index.js +function isType(value, typeConstructor, typeStringified) { + if (!value) { + return false; + } + if (value.constructor === typeConstructor) { + return true; + } + return objectToString.call(value) === typeStringified; +} +function isUint8Array(value) { + return isType(value, Uint8Array, uint8ArrayStringified); +} +function isArrayBuffer(value) { + return isType(value, ArrayBuffer, arrayBufferStringified); +} +function isUint8ArrayOrArrayBuffer(value) { + return isUint8Array(value) || isArrayBuffer(value); +} +function toUint8ArrayIfArrayBuffer(value) { + return isArrayBuffer(value) ? new Uint8Array(value) : value; +} +function assertUint8ArrayOrArrayBuffer(value) { + if (!isUint8ArrayOrArrayBuffer(value)) { + throw new TypeError(`Expected \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof value}\``); + } +} +function concatUint8Arrays(arrays, totalLength) { + if (arrays.length === 0) { + return new Uint8Array(0); + } + totalLength ??= arrays.reduce((accumulator, currentValue) => accumulator + currentValue.byteLength, 0); + const returnValue = new Uint8Array(totalLength); + let offset = 0; + for (let array of arrays) { + assertUint8ArrayOrArrayBuffer(array); + array = toUint8ArrayIfArrayBuffer(array); + returnValue.set(array, offset); + offset += array.length; + } + return returnValue; +} +function getUintBE(view) { + const { byteLength } = view; + if (byteLength === 6) { + return view.getUint16(0) * 2 ** 32 + view.getUint32(2); + } + if (byteLength === 5) { + return view.getUint8(0) * 2 ** 32 + view.getUint32(1); + } + if (byteLength === 4) { + return view.getUint32(0); + } + if (byteLength === 3) { + return view.getUint8(0) * 2 ** 16 + view.getUint16(1); + } + if (byteLength === 2) { + return view.getUint16(0); + } + if (byteLength === 1) { + return view.getUint8(0); + } +} +var objectToString, uint8ArrayStringified, arrayBufferStringified, cachedDecoders, cachedEncoder, byteToHexLookupTable; +var init_uint8array_extras = __esm({ + "../../node_modules/.pnpm/uint8array-extras@1.6.0/node_modules/uint8array-extras/index.js"() { + objectToString = Object.prototype.toString; + uint8ArrayStringified = "[object Uint8Array]"; + arrayBufferStringified = "[object ArrayBuffer]"; + __name(isType, "isType"); + __name(isUint8Array, "isUint8Array"); + __name(isArrayBuffer, "isArrayBuffer"); + __name(isUint8ArrayOrArrayBuffer, "isUint8ArrayOrArrayBuffer"); + __name(toUint8ArrayIfArrayBuffer, "toUint8ArrayIfArrayBuffer"); + __name(assertUint8ArrayOrArrayBuffer, "assertUint8ArrayOrArrayBuffer"); + __name(concatUint8Arrays, "concatUint8Arrays"); + cachedDecoders = { + utf8: new globalThis.TextDecoder("utf8") + }; + cachedEncoder = new globalThis.TextEncoder(); + byteToHexLookupTable = Array.from({ length: 256 }, (_, index) => index.toString(16).padStart(2, "0")); + __name(getUintBE, "getUintBE"); + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/tokens.js +function stringToBytes(string, encoding) { + if (encoding === "utf-16le") { + const bytes = []; + for (let index = 0; index < string.length; index++) { + const code = string.charCodeAt(index); + bytes.push(code & 255, code >> 8 & 255); + } + return bytes; + } + if (encoding === "utf-16be") { + const bytes = []; + for (let index = 0; index < string.length; index++) { + const code = string.charCodeAt(index); + bytes.push(code >> 8 & 255, code & 255); + } + return bytes; + } + return [...string].map((character) => character.charCodeAt(0)); +} +function tarHeaderChecksumMatches(arrayBuffer, offset = 0) { + const readSum = Number.parseInt(new StringType(6).get(arrayBuffer, 148).replace(new RegExp("\\0.*$", "v"), "").trim(), 8); + if (Number.isNaN(readSum)) { + return false; + } + let sum = 8 * 32; + for (let index = offset; index < offset + 148; index++) { + sum += arrayBuffer[index]; + } + for (let index = offset + 156; index < offset + 512; index++) { + sum += arrayBuffer[index]; + } + return readSum === sum; +} +var uint32SyncSafeToken; +var init_tokens = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/tokens.js"() { + init_lib2(); + __name(stringToBytes, "stringToBytes"); + __name(tarHeaderChecksumMatches, "tarHeaderChecksumMatches"); + uint32SyncSafeToken = { + get: /* @__PURE__ */ __name((buffer, offset) => buffer[offset + 3] & 127 | (buffer[offset + 2] & 127) << 7 | (buffer[offset + 1] & 127) << 14 | (buffer[offset] & 127) << 21, "get"), + len: 4 + }; + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/supported.js +var extensions, mimeTypes; +var init_supported = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/supported.js"() { + extensions = [ + "jpg", + "png", + "apng", + "gif", + "webp", + "flif", + "xcf", + "cr2", + "cr3", + "orf", + "arw", + "dng", + "nef", + "rw2", + "raf", + "tif", + "bmp", + "icns", + "jxr", + "psd", + "indd", + "zip", + "tar", + "rar", + "gz", + "bz2", + "7z", + "dmg", + "mp4", + "mid", + "mkv", + "webm", + "mov", + "avi", + "mpg", + "mp2", + "mp3", + "m4a", + "oga", + "ogg", + "ogv", + "opus", + "flac", + "wav", + "spx", + "amr", + "pdf", + "epub", + "elf", + "macho", + "exe", + "swf", + "rtf", + "wasm", + "woff", + "woff2", + "eot", + "ttf", + "otf", + "ttc", + "ico", + "flv", + "ps", + "xz", + "sqlite", + "nes", + "crx", + "xpi", + "cab", + "deb", + "ar", + "rpm", + "Z", + "lz", + "cfb", + "mxf", + "mts", + "blend", + "bpg", + "docx", + "pptx", + "xlsx", + "3gp", + "3g2", + "j2c", + "jp2", + "jpm", + "jpx", + "mj2", + "aif", + "qcp", + "odt", + "ods", + "odp", + "xml", + "mobi", + "heic", + "cur", + "ktx", + "ape", + "wv", + "dcm", + "ics", + "glb", + "pcap", + "dsf", + "lnk", + "alias", + "voc", + "ac3", + "m4v", + "m4p", + "m4b", + "f4v", + "f4p", + "f4b", + "f4a", + "mie", + "asf", + "ogm", + "ogx", + "mpc", + "arrow", + "shp", + "aac", + "mp1", + "it", + "s3m", + "xm", + "skp", + "avif", + "eps", + "lzh", + "pgp", + "asar", + "stl", + "chm", + "3mf", + "zst", + "jxl", + "vcf", + "jls", + "pst", + "dwg", + "parquet", + "class", + "arj", + "cpio", + "ace", + "avro", + "icc", + "fbx", + "vsdx", + "vtt", + "apk", + "drc", + "lz4", + "potx", + "xltx", + "dotx", + "xltm", + "ott", + "ots", + "otp", + "odg", + "otg", + "xlsm", + "docm", + "dotm", + "potm", + "pptm", + "jar", + "jmp", + "rm", + "sav", + "ppsm", + "ppsx", + "tar.gz", + "reg", + "dat", + "key", + "numbers", + "pages", + "iso" + ]; + mimeTypes = [ + "image/jpeg", + "image/png", + "image/gif", + "image/webp", + "image/flif", + "image/x-xcf", + "image/x-canon-cr2", + "image/x-canon-cr3", + "image/tiff", + "image/bmp", + "image/vnd.ms-photo", + "image/vnd.adobe.photoshop", + "application/x-indesign", + "application/epub+zip", + "application/x-xpinstall", + "application/vnd.ms-powerpoint.slideshow.macroenabled.12", + "application/vnd.oasis.opendocument.text", + "application/vnd.oasis.opendocument.spreadsheet", + "application/vnd.oasis.opendocument.presentation", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "application/vnd.openxmlformats-officedocument.presentationml.presentation", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/vnd.openxmlformats-officedocument.presentationml.slideshow", + "application/zip", + "application/x-tar", + "application/x-rar-compressed", + "application/gzip", + "application/x-bzip2", + "application/x-7z-compressed", + "application/x-apple-diskimage", + "application/vnd.apache.arrow.file", + "video/mp4", + "audio/midi", + "video/matroska", + "video/webm", + "video/quicktime", + "video/vnd.avi", + "audio/wav", + "audio/qcelp", + "audio/x-ms-asf", + "video/x-ms-asf", + "application/vnd.ms-asf", + "video/mpeg", + "video/3gpp", + "audio/mpeg", + "audio/mp4", + // RFC 4337 + "video/ogg", + "audio/ogg", + "audio/ogg; codecs=opus", + "application/ogg", + "audio/flac", + "audio/ape", + "audio/wavpack", + "audio/amr", + "application/pdf", + "application/x-elf", + "application/x-mach-binary", + "application/x-msdownload", + "application/x-shockwave-flash", + "application/rtf", + "application/wasm", + "font/woff", + "font/woff2", + "application/vnd.ms-fontobject", + "font/ttf", + "font/otf", + "font/collection", + "image/x-icon", + "video/x-flv", + "application/postscript", + "application/eps", + "application/x-xz", + "application/x-sqlite3", + "application/x-nintendo-nes-rom", + "application/x-google-chrome-extension", + "application/vnd.ms-cab-compressed", + "application/x-deb", + "application/x-unix-archive", + "application/x-rpm", + "application/x-compress", + "application/lzip", + "application/x-cfb", + "application/x-mie", + "application/mxf", + "video/mp2t", + "application/x-blender", + "image/bpg", + "image/j2c", + "image/jp2", + "image/jpx", + "image/jpm", + "image/mj2", + "audio/aiff", + "application/xml", + "application/x-mobipocket-ebook", + "image/heif", + "image/heif-sequence", + "image/heic", + "image/heic-sequence", + "image/icns", + "image/ktx", + "application/dicom", + "audio/x-musepack", + "text/calendar", + "text/vcard", + "text/vtt", + "model/gltf-binary", + "application/vnd.tcpdump.pcap", + "audio/x-dsf", + // Non-standard + "application/x-ms-shortcut", + // Informal, used by freedesktop.org shared-mime-info + "application/x-ft-apple.alias", + "audio/x-voc", + "audio/vnd.dolby.dd-raw", + "audio/x-m4a", + "image/apng", + "image/x-olympus-orf", + "image/x-sony-arw", + "image/x-adobe-dng", + "image/x-nikon-nef", + "image/x-panasonic-rw2", + "image/x-fujifilm-raf", + "video/x-m4v", + "video/3gpp2", + "application/x-esri-shape", + "audio/aac", + "audio/x-it", + "audio/x-s3m", + "audio/x-xm", + "video/MP1S", + "video/MP2P", + "application/vnd.sketchup.skp", + "image/avif", + "application/x-lzh-compressed", + "application/pgp-encrypted", + "application/x-asar", + "model/stl", + "application/vnd.ms-htmlhelp", + "model/3mf", + "image/jxl", + "application/zstd", + "image/jls", + "application/vnd.ms-outlook", + "image/vnd.dwg", + "application/vnd.apache.parquet", + "application/java-vm", + "application/x-arj", + "application/x-cpio", + "application/x-ace-compressed", + "application/avro", + "application/vnd.iccprofile", + "application/x-ft-fbx", + "application/vnd.visio", + "application/vnd.android.package-archive", + "application/x-ft-draco", + "application/x-lz4", + // Informal, used by freedesktop.org shared-mime-info + "application/vnd.openxmlformats-officedocument.presentationml.template", + "application/vnd.openxmlformats-officedocument.spreadsheetml.template", + "application/vnd.openxmlformats-officedocument.wordprocessingml.template", + "application/vnd.ms-excel.template.macroenabled.12", + "application/vnd.oasis.opendocument.text-template", + "application/vnd.oasis.opendocument.spreadsheet-template", + "application/vnd.oasis.opendocument.presentation-template", + "application/vnd.oasis.opendocument.graphics", + "application/vnd.oasis.opendocument.graphics-template", + "application/vnd.ms-excel.sheet.macroenabled.12", + "application/vnd.ms-word.document.macroenabled.12", + "application/vnd.ms-word.template.macroenabled.12", + "application/vnd.ms-powerpoint.template.macroenabled.12", + "application/vnd.ms-powerpoint.presentation.macroenabled.12", + "application/java-archive", + "application/vnd.rn-realmedia", + "application/x-spss-sav", + "application/x-ms-regedit", + "application/x-ft-windows-registry-hive", + "application/x-jmp-data", + "application/vnd.apple.keynote", + "application/vnd.apple.numbers", + "application/vnd.apple.pages", + "application/x-iso9660-image" + ]; + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/parser.js +function getSafeBound(value, maximum, reason) { + if (!Number.isFinite(value) || value < 0 || value > maximum) { + throw new ParserHardLimitError(`${reason} has invalid size ${value} (maximum ${maximum} bytes)`); + } + return value; +} +async function safeIgnore(tokenizer, length, { maximumLength = maximumUntrustedSkipSizeInBytes, reason = "skip" } = {}) { + const safeLength = getSafeBound(length, maximumLength, reason); + await tokenizer.ignore(safeLength); +} +async function safeReadBuffer(tokenizer, buffer, options, { maximumLength = buffer.length, reason = "read" } = {}) { + const length = options?.length ?? buffer.length; + const safeLength = getSafeBound(length, maximumLength, reason); + return tokenizer.readBuffer(buffer, { + ...options, + length: safeLength + }); +} +function checkBytes(buffer, headers, options) { + options = { + offset: 0, + ...options + }; + for (const [index, header] of headers.entries()) { + if (options.mask) { + if (header !== (options.mask[index] & buffer[index + options.offset])) { + return false; + } + } else if (header !== buffer[index + options.offset]) { + return false; + } + } + return true; +} +function hasUnknownFileSize(tokenizer) { + const fileSize = tokenizer.fileInfo.size; + return !Number.isFinite(fileSize) || fileSize === Number.MAX_SAFE_INTEGER; +} +function hasExceededUnknownSizeScanBudget(tokenizer, startOffset, maximumBytes) { + return hasUnknownFileSize(tokenizer) && tokenizer.position - startOffset > maximumBytes; +} +var maximumUntrustedSkipSizeInBytes, ParserHardLimitError; +var init_parser = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/parser.js"() { + maximumUntrustedSkipSizeInBytes = 16 * 1024 * 1024; + ParserHardLimitError = class extends Error { + static { + __name(this, "ParserHardLimitError"); + } + }; + __name(getSafeBound, "getSafeBound"); + __name(safeIgnore, "safeIgnore"); + __name(safeReadBuffer, "safeReadBuffer"); + __name(checkBytes, "checkBytes"); + __name(hasUnknownFileSize, "hasUnknownFileSize"); + __name(hasExceededUnknownSizeScanBudget, "hasExceededUnknownSizeScanBudget"); + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/zip.js +async function decompressDeflateRawWithLimit(data, { maximumLength = maximumZipEntrySizeInBytes } = {}) { + const input = new ReadableStream({ + start(controller) { + controller.enqueue(data); + controller.close(); + } + }); + const output = input.pipeThrough(new DecompressionStream("deflate-raw")); + const reader = output.getReader(); + const chunks = []; + let totalLength = 0; + try { + for (; ; ) { + const { done, value } = await reader.read(); + if (done) { + break; + } + totalLength += value.length; + if (totalLength > maximumLength) { + await reader.cancel().catch(() => { + }); + throw new Error(`ZIP entry decompressed data exceeds ${maximumLength} bytes`); + } + chunks.push(value); + } + } catch (error) { + if (error.code !== "ERR_TRAILING_JUNK_AFTER_STREAM_END") { + throw error; + } + } finally { + reader.releaseLock(); + } + const uncompressedData = new Uint8Array(totalLength); + let offset = 0; + for (const chunk of chunks) { + uncompressedData.set(chunk, offset); + offset += chunk.length; + } + return uncompressedData; +} +function mergeByteChunks(chunks, totalLength) { + const merged = new Uint8Array(totalLength); + let offset = 0; + for (const chunk of chunks) { + merged.set(chunk, offset); + offset += chunk.length; + } + return merged; +} +function getMaximumZipBufferedReadLength(tokenizer) { + const fileSize = tokenizer.fileInfo.size; + const remainingBytes = Number.isFinite(fileSize) ? Math.max(0, fileSize - tokenizer.position) : Number.MAX_SAFE_INTEGER; + return Math.min(remainingBytes, maximumZipBufferedReadSizeInBytes); +} +function isRecoverableZipError(error) { + if (error instanceof EndOfStreamError) { + return true; + } + if (error instanceof ParserHardLimitError) { + return true; + } + if (!(error instanceof Error)) { + return false; + } + if (recoverableZipErrorMessages.has(error.message)) { + return true; + } + if (recoverableZipErrorCodes.has(error.code)) { + return true; + } + for (const prefix of recoverableZipErrorMessagePrefixes) { + if (error.message.startsWith(prefix)) { + return true; + } + } + return false; +} +function canReadZipEntryForDetection(zipHeader, maximumSize = maximumZipEntrySizeInBytes) { + const sizes = [zipHeader.compressedSize, zipHeader.uncompressedSize]; + for (const size of sizes) { + if (!Number.isFinite(size) || size < 0 || size > maximumSize) { + return false; + } + } + return true; +} +function createIWorkZipDetectionState() { + return { + hasDocumentEntry: false, + hasMasterSlideEntry: false, + hasTablesEntry: false, + hasCalculationEngineEntry: false + }; +} +function updateIWorkZipDetectionStateFromFilename(iWorkState, filename) { + if (filename === "Index/Document.iwa") { + iWorkState.hasDocumentEntry = true; + } + if (filename.startsWith("Index/MasterSlide")) { + iWorkState.hasMasterSlideEntry = true; + } + if (filename.startsWith("Index/Tables/")) { + iWorkState.hasTablesEntry = true; + } + if (filename === "Index/CalculationEngine.iwa") { + iWorkState.hasCalculationEngineEntry = true; + } +} +function getIWorkFileTypeFromZipEntries(iWorkState) { + if (!iWorkState.hasDocumentEntry) { + return; + } + if (iWorkState.hasMasterSlideEntry) { + return { ext: "key", mime: "application/vnd.apple.keynote" }; + } + if (iWorkState.hasTablesEntry) { + return { ext: "numbers", mime: "application/vnd.apple.numbers" }; + } + return { ext: "pages", mime: "application/vnd.apple.pages" }; +} +function getFileTypeFromMimeType(mimeType) { + mimeType = mimeType.toLowerCase(); + switch (mimeType) { + case "application/epub+zip": + return { ext: "epub", mime: mimeType }; + case "application/vnd.oasis.opendocument.text": + return { ext: "odt", mime: mimeType }; + case "application/vnd.oasis.opendocument.text-template": + return { ext: "ott", mime: mimeType }; + case "application/vnd.oasis.opendocument.spreadsheet": + return { ext: "ods", mime: mimeType }; + case "application/vnd.oasis.opendocument.spreadsheet-template": + return { ext: "ots", mime: mimeType }; + case "application/vnd.oasis.opendocument.presentation": + return { ext: "odp", mime: mimeType }; + case "application/vnd.oasis.opendocument.presentation-template": + return { ext: "otp", mime: mimeType }; + case "application/vnd.oasis.opendocument.graphics": + return { ext: "odg", mime: mimeType }; + case "application/vnd.oasis.opendocument.graphics-template": + return { ext: "otg", mime: mimeType }; + case "application/vnd.openxmlformats-officedocument.presentationml.slideshow": + return { ext: "ppsx", mime: mimeType }; + case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": + return { ext: "xlsx", mime: mimeType }; + case "application/vnd.ms-excel.sheet.macroenabled": + return { ext: "xlsm", mime: "application/vnd.ms-excel.sheet.macroenabled.12" }; + case "application/vnd.openxmlformats-officedocument.spreadsheetml.template": + return { ext: "xltx", mime: mimeType }; + case "application/vnd.ms-excel.template.macroenabled": + return { ext: "xltm", mime: "application/vnd.ms-excel.template.macroenabled.12" }; + case "application/vnd.ms-powerpoint.slideshow.macroenabled": + return { ext: "ppsm", mime: "application/vnd.ms-powerpoint.slideshow.macroenabled.12" }; + case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": + return { ext: "docx", mime: mimeType }; + case "application/vnd.ms-word.document.macroenabled": + return { ext: "docm", mime: "application/vnd.ms-word.document.macroenabled.12" }; + case "application/vnd.openxmlformats-officedocument.wordprocessingml.template": + return { ext: "dotx", mime: mimeType }; + case "application/vnd.ms-word.template.macroenabledtemplate": + return { ext: "dotm", mime: "application/vnd.ms-word.template.macroenabled.12" }; + case "application/vnd.openxmlformats-officedocument.presentationml.template": + return { ext: "potx", mime: mimeType }; + case "application/vnd.ms-powerpoint.template.macroenabled": + return { ext: "potm", mime: "application/vnd.ms-powerpoint.template.macroenabled.12" }; + case "application/vnd.openxmlformats-officedocument.presentationml.presentation": + return { ext: "pptx", mime: mimeType }; + case "application/vnd.ms-powerpoint.presentation.macroenabled": + return { ext: "pptm", mime: "application/vnd.ms-powerpoint.presentation.macroenabled.12" }; + case "application/vnd.ms-visio.drawing": + return { ext: "vsdx", mime: "application/vnd.visio" }; + case "application/vnd.ms-package.3dmanufacturing-3dmodel+xml": + return { ext: "3mf", mime: "model/3mf" }; + default: + } +} +function createOpenXmlZipDetectionState() { + return { + hasContentTypesEntry: false, + hasParsedContentTypesEntry: false, + isParsingContentTypes: false, + hasUnparseableContentTypes: false, + hasWordDirectory: false, + hasPresentationDirectory: false, + hasSpreadsheetDirectory: false, + hasThreeDimensionalModelEntry: false + }; +} +function updateOpenXmlZipDetectionStateFromFilename(openXmlState, filename) { + if (filename.startsWith("word/")) { + openXmlState.hasWordDirectory = true; + } + if (filename.startsWith("ppt/")) { + openXmlState.hasPresentationDirectory = true; + } + if (filename.startsWith("xl/")) { + openXmlState.hasSpreadsheetDirectory = true; + } + if (filename.startsWith("3D/") && filename.endsWith(".model")) { + openXmlState.hasThreeDimensionalModelEntry = true; + } +} +function getOpenXmlFileTypeFromDirectoryNames(openXmlState) { + if (openXmlState.hasWordDirectory) { + return { + ext: "docx", + mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + }; + } + if (openXmlState.hasPresentationDirectory) { + return { + ext: "pptx", + mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation" + }; + } + if (openXmlState.hasSpreadsheetDirectory) { + return { + ext: "xlsx", + mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + }; + } + if (openXmlState.hasThreeDimensionalModelEntry) { + return { + ext: "3mf", + mime: "model/3mf" + }; + } +} +function getOpenXmlFileTypeFromZipEntries(openXmlState) { + if (!openXmlState.hasContentTypesEntry || openXmlState.hasUnparseableContentTypes || openXmlState.isParsingContentTypes || openXmlState.hasParsedContentTypesEntry) { + return; + } + return getOpenXmlFileTypeFromDirectoryNames(openXmlState); +} +function getOpenXmlMimeTypeFromContentTypesXml(xmlContent) { + const endPosition = xmlContent.indexOf('.main+xml"'); + if (endPosition === -1) { + const mimeType = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"; + if (xmlContent.includes(`ContentType="${mimeType}"`)) { + return mimeType; + } + return; + } + const truncatedContent = xmlContent.slice(0, endPosition); + const firstQuotePosition = truncatedContent.lastIndexOf('"'); + return truncatedContent.slice(firstQuotePosition + 1); +} +function findZipDataDescriptorOffset(buffer, bytesConsumed) { + if (buffer.length < zipDataDescriptorLengthInBytes) { + return -1; + } + const lastPossibleDescriptorOffset = buffer.length - zipDataDescriptorLengthInBytes; + for (let index = 0; index <= lastPossibleDescriptorOffset; index++) { + if (UINT32_LE.get(buffer, index) === zipDataDescriptorSignature && UINT32_LE.get(buffer, index + 8) === bytesConsumed + index) { + return index; + } + } + return -1; +} +async function readZipDataDescriptorEntryWithLimit(zipHandler, { shouldBuffer, maximumLength = maximumZipEntrySizeInBytes } = {}) { + const { syncBuffer } = zipHandler; + const { length: syncBufferLength } = syncBuffer; + const chunks = []; + let bytesConsumed = 0; + for (; ; ) { + const length = await zipHandler.tokenizer.peekBuffer(syncBuffer, { mayBeLess: true }); + const dataDescriptorOffset = findZipDataDescriptorOffset(syncBuffer.subarray(0, length), bytesConsumed); + const retainedLength = dataDescriptorOffset >= 0 ? 0 : length === syncBufferLength ? Math.min(zipDataDescriptorOverlapLengthInBytes, length - 1) : 0; + const chunkLength = dataDescriptorOffset >= 0 ? dataDescriptorOffset : length - retainedLength; + if (chunkLength === 0) { + break; + } + bytesConsumed += chunkLength; + if (bytesConsumed > maximumLength) { + throw new ParserHardLimitError(`ZIP entry data descriptor not found within ${maximumLength} bytes`); + } + if (shouldBuffer) { + const data = new Uint8Array(chunkLength); + await zipHandler.tokenizer.readBuffer(data); + chunks.push(data); + } else { + await zipHandler.tokenizer.ignore(chunkLength); + } + if (dataDescriptorOffset >= 0) { + break; + } + } + if (!hasUnknownFileSize(zipHandler.tokenizer)) { + zipHandler.knownSizeDescriptorScannedBytes += bytesConsumed; + } + if (!shouldBuffer) { + return; + } + return mergeByteChunks(chunks, bytesConsumed); +} +function getRemainingZipScanBudget(zipHandler, startOffset) { + if (hasUnknownFileSize(zipHandler.tokenizer)) { + return Math.max(0, maximumUntrustedSkipSizeInBytes - (zipHandler.tokenizer.position - startOffset)); + } + return Math.max(0, maximumZipEntrySizeInBytes - zipHandler.knownSizeDescriptorScannedBytes); +} +async function readZipEntryData(zipHandler, zipHeader, { shouldBuffer, maximumDescriptorLength = maximumZipEntrySizeInBytes } = {}) { + if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) { + return readZipDataDescriptorEntryWithLimit(zipHandler, { + shouldBuffer, + maximumLength: maximumDescriptorLength + }); + } + if (!shouldBuffer) { + await safeIgnore(zipHandler.tokenizer, zipHeader.compressedSize, { + maximumLength: hasUnknownFileSize(zipHandler.tokenizer) ? maximumZipEntrySizeInBytes : zipHandler.tokenizer.fileInfo.size, + reason: "ZIP entry compressed data" + }); + return; + } + const maximumLength = getMaximumZipBufferedReadLength(zipHandler.tokenizer); + if (!Number.isFinite(zipHeader.compressedSize) || zipHeader.compressedSize < 0 || zipHeader.compressedSize > maximumLength) { + throw new Error(`ZIP entry compressed data exceeds ${maximumLength} bytes`); + } + const fileData = new Uint8Array(zipHeader.compressedSize); + await zipHandler.tokenizer.readBuffer(fileData); + return fileData; +} +async function detectZip(tokenizer) { + let fileType; + const openXmlState = createOpenXmlZipDetectionState(); + const iWorkState = createIWorkZipDetectionState(); + try { + await new ZipHandler(tokenizer).unzip((zipHeader) => { + updateOpenXmlZipDetectionStateFromFilename(openXmlState, zipHeader.filename); + updateIWorkZipDetectionStateFromFilename(iWorkState, zipHeader.filename); + if (iWorkState.hasDocumentEntry && (iWorkState.hasMasterSlideEntry || iWorkState.hasTablesEntry)) { + fileType = getIWorkFileTypeFromZipEntries(iWorkState); + return { stop: true }; + } + const isOpenXmlContentTypesEntry = zipHeader.filename === "[Content_Types].xml"; + const openXmlFileTypeFromEntries = getOpenXmlFileTypeFromZipEntries(openXmlState); + if (!isOpenXmlContentTypesEntry && openXmlFileTypeFromEntries) { + fileType = openXmlFileTypeFromEntries; + return { + stop: true + }; + } + switch (zipHeader.filename) { + case "META-INF/mozilla.rsa": + fileType = { + ext: "xpi", + mime: "application/x-xpinstall" + }; + return { + stop: true + }; + case "META-INF/MANIFEST.MF": + fileType = { + ext: "jar", + mime: "application/java-archive" + }; + return { + stop: true + }; + case "mimetype": + if (!canReadZipEntryForDetection(zipHeader, maximumZipTextEntrySizeInBytes)) { + return {}; + } + return { + async handler(fileData) { + const mimeType = new TextDecoder("utf-8").decode(fileData).trim(); + fileType = getFileTypeFromMimeType(mimeType); + }, + stop: true + }; + case "[Content_Types].xml": { + openXmlState.hasContentTypesEntry = true; + if (!canReadZipEntryForDetection(zipHeader, maximumZipTextEntrySizeInBytes)) { + openXmlState.hasUnparseableContentTypes = true; + return {}; + } + openXmlState.isParsingContentTypes = true; + return { + async handler(fileData) { + const xmlContent = new TextDecoder("utf-8").decode(fileData); + const mimeType = getOpenXmlMimeTypeFromContentTypesXml(xmlContent); + if (mimeType) { + fileType = getFileTypeFromMimeType(mimeType); + } + openXmlState.hasParsedContentTypesEntry = true; + openXmlState.isParsingContentTypes = false; + }, + stop: true + }; + } + default: + if (new RegExp("classes\\d*\\.dex", "v").test(zipHeader.filename)) { + fileType = { + ext: "apk", + mime: "application/vnd.android.package-archive" + }; + return { stop: true }; + } + return {}; + } + }); + } catch (error) { + if (!isRecoverableZipError(error)) { + throw error; + } + if (openXmlState.isParsingContentTypes) { + openXmlState.isParsingContentTypes = false; + openXmlState.hasUnparseableContentTypes = true; + } + if (!fileType && (error instanceof EndOfStreamError || error instanceof ParserHardLimitError) && !openXmlState.hasContentTypesEntry) { + fileType = getOpenXmlFileTypeFromDirectoryNames(openXmlState); + } + } + const iWorkFileType = hasUnknownFileSize(tokenizer) && iWorkState.hasDocumentEntry && !iWorkState.hasMasterSlideEntry && !iWorkState.hasTablesEntry && !iWorkState.hasCalculationEngineEntry ? void 0 : getIWorkFileTypeFromZipEntries(iWorkState); + return fileType ?? getOpenXmlFileTypeFromZipEntries(openXmlState) ?? iWorkFileType ?? { + ext: "zip", + mime: "application/zip" + }; +} +var maximumZipEntrySizeInBytes, maximumZipEntryCount, maximumZipBufferedReadSizeInBytes, maximumZipTextEntrySizeInBytes, recoverableZipErrorMessages, recoverableZipErrorMessagePrefixes, recoverableZipErrorCodes, zipDataDescriptorSignature, zipDataDescriptorLengthInBytes, zipDataDescriptorOverlapLengthInBytes; +var init_zip = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/zip.js"() { + init_lib2(); + init_core(); + init_lib3(); + init_parser(); + maximumZipEntrySizeInBytes = 1024 * 1024; + maximumZipEntryCount = 1024; + maximumZipBufferedReadSizeInBytes = 2 ** 31 - 1; + maximumZipTextEntrySizeInBytes = maximumZipEntrySizeInBytes; + recoverableZipErrorMessages = /* @__PURE__ */ new Set([ + "Unexpected signature", + "Encrypted ZIP", + "Expected Central-File-Header signature" + ]); + recoverableZipErrorMessagePrefixes = [ + "ZIP entry count exceeds ", + "Unsupported ZIP compression method:", + "ZIP entry compressed data exceeds ", + "ZIP entry decompressed data exceeds ", + "Expected data-descriptor-signature at position " + ]; + recoverableZipErrorCodes = /* @__PURE__ */ new Set([ + "Z_BUF_ERROR", + "Z_DATA_ERROR", + "ERR_INVALID_STATE" + ]); + __name(decompressDeflateRawWithLimit, "decompressDeflateRawWithLimit"); + __name(mergeByteChunks, "mergeByteChunks"); + __name(getMaximumZipBufferedReadLength, "getMaximumZipBufferedReadLength"); + __name(isRecoverableZipError, "isRecoverableZipError"); + __name(canReadZipEntryForDetection, "canReadZipEntryForDetection"); + __name(createIWorkZipDetectionState, "createIWorkZipDetectionState"); + __name(updateIWorkZipDetectionStateFromFilename, "updateIWorkZipDetectionStateFromFilename"); + __name(getIWorkFileTypeFromZipEntries, "getIWorkFileTypeFromZipEntries"); + __name(getFileTypeFromMimeType, "getFileTypeFromMimeType"); + __name(createOpenXmlZipDetectionState, "createOpenXmlZipDetectionState"); + __name(updateOpenXmlZipDetectionStateFromFilename, "updateOpenXmlZipDetectionStateFromFilename"); + __name(getOpenXmlFileTypeFromDirectoryNames, "getOpenXmlFileTypeFromDirectoryNames"); + __name(getOpenXmlFileTypeFromZipEntries, "getOpenXmlFileTypeFromZipEntries"); + __name(getOpenXmlMimeTypeFromContentTypesXml, "getOpenXmlMimeTypeFromContentTypesXml"); + zipDataDescriptorSignature = 134695760; + zipDataDescriptorLengthInBytes = 16; + zipDataDescriptorOverlapLengthInBytes = zipDataDescriptorLengthInBytes - 1; + __name(findZipDataDescriptorOffset, "findZipDataDescriptorOffset"); + __name(readZipDataDescriptorEntryWithLimit, "readZipDataDescriptorEntryWithLimit"); + __name(getRemainingZipScanBudget, "getRemainingZipScanBudget"); + __name(readZipEntryData, "readZipEntryData"); + ZipHandler.prototype.inflate = async function(zipHeader, fileData, callback) { + if (zipHeader.compressedMethod === 0) { + return callback(fileData); + } + if (zipHeader.compressedMethod !== 8) { + throw new Error(`Unsupported ZIP compression method: ${zipHeader.compressedMethod}`); + } + const uncompressedData = await decompressDeflateRawWithLimit(fileData, { maximumLength: maximumZipEntrySizeInBytes }); + return callback(uncompressedData); + }; + ZipHandler.prototype.unzip = async function(fileCallback) { + let stop = false; + let zipEntryCount = 0; + const zipScanStart = this.tokenizer.position; + this.knownSizeDescriptorScannedBytes = 0; + do { + if (hasExceededUnknownSizeScanBudget(this.tokenizer, zipScanStart, maximumUntrustedSkipSizeInBytes)) { + throw new ParserHardLimitError(`ZIP stream probing exceeds ${maximumUntrustedSkipSizeInBytes} bytes`); + } + const zipHeader = await this.readLocalFileHeader(); + if (!zipHeader) { + break; + } + zipEntryCount++; + if (zipEntryCount > maximumZipEntryCount) { + throw new Error(`ZIP entry count exceeds ${maximumZipEntryCount}`); + } + const next = fileCallback(zipHeader); + stop = Boolean(next.stop); + await this.tokenizer.ignore(zipHeader.extraFieldLength); + const fileData = await readZipEntryData(this, zipHeader, { + shouldBuffer: Boolean(next.handler), + maximumDescriptorLength: Math.min(maximumZipEntrySizeInBytes, getRemainingZipScanBudget(this, zipScanStart)) + }); + if (next.handler) { + await this.inflate(zipHeader, fileData, next.handler); + } + if (zipHeader.dataDescriptor) { + const dataDescriptor = new Uint8Array(zipDataDescriptorLengthInBytes); + await this.tokenizer.readBuffer(dataDescriptor); + if (UINT32_LE.get(dataDescriptor, 0) !== zipDataDescriptorSignature) { + throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - dataDescriptor.length}`); + } + } + if (hasExceededUnknownSizeScanBudget(this.tokenizer, zipScanStart, maximumUntrustedSkipSizeInBytes)) { + throw new ParserHardLimitError(`ZIP stream probing exceeds ${maximumUntrustedSkipSizeInBytes} bytes`); + } + } while (!stop); + }; + __name(detectZip, "detectZip"); + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/ebml.js +async function detectEbml(tokenizer) { + async function readField() { + const msb = await tokenizer.peekNumber(UINT8); + let mask = 128; + let ic = 0; + while ((msb & mask) === 0 && mask !== 0) { + ++ic; + mask >>= 1; + } + const id = new Uint8Array(ic + 1); + await safeReadBuffer(tokenizer, id, void 0, { + maximumLength: id.length, + reason: "EBML field" + }); + return id; + } + __name(readField, "readField"); + async function readElement() { + const idField = await readField(); + const lengthField = await readField(); + lengthField[0] ^= 128 >> lengthField.length - 1; + const nrLength = Math.min(6, lengthField.length); + const idView = new DataView(idField.buffer); + const lengthView = new DataView(lengthField.buffer, lengthField.length - nrLength, nrLength); + return { + id: getUintBE(idView), + len: getUintBE(lengthView) + }; + } + __name(readElement, "readElement"); + async function readChildren(children) { + let ebmlElementCount = 0; + while (children > 0) { + ebmlElementCount++; + if (ebmlElementCount > maximumEbmlElementCount) { + return; + } + if (hasExceededUnknownSizeScanBudget(tokenizer, ebmlScanStart, maximumUntrustedSkipSizeInBytes)) { + return; + } + const previousPosition = tokenizer.position; + const element = await readElement(); + if (element.id === 17026) { + if (element.len > maximumEbmlDocumentTypeSizeInBytes) { + return; + } + const documentTypeLength = getSafeBound(element.len, maximumEbmlDocumentTypeSizeInBytes, "EBML DocType"); + const rawValue = await tokenizer.readToken(new StringType(documentTypeLength)); + return rawValue.replaceAll(new RegExp("\\0.*$", "gv"), ""); + } + if (hasUnknownFileSize(tokenizer) && (!Number.isFinite(element.len) || element.len < 0 || element.len > maximumEbmlElementPayloadSizeInBytes)) { + return; + } + await safeIgnore(tokenizer, element.len, { + maximumLength: hasUnknownFileSize(tokenizer) ? maximumEbmlElementPayloadSizeInBytes : tokenizer.fileInfo.size, + reason: "EBML payload" + }); + --children; + if (tokenizer.position <= previousPosition) { + return; + } + } + } + __name(readChildren, "readChildren"); + const rootElement = await readElement(); + const ebmlScanStart = tokenizer.position; + const documentType = await readChildren(rootElement.len); + switch (documentType) { + case "webm": + return { + ext: "webm", + mime: "video/webm" + }; + case "matroska": + return { + ext: "mkv", + mime: "video/matroska" + }; + default: + } +} +var maximumEbmlDocumentTypeSizeInBytes, maximumEbmlElementPayloadSizeInBytes, maximumEbmlElementCount; +var init_ebml = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/ebml.js"() { + init_lib2(); + init_uint8array_extras(); + init_parser(); + maximumEbmlDocumentTypeSizeInBytes = 64; + maximumEbmlElementPayloadSizeInBytes = 1024 * 1024; + maximumEbmlElementCount = 256; + __name(detectEbml, "detectEbml"); + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/png.js +function isPngAncillaryChunk(type) { + return (type.codePointAt(0) & 32) !== 0; +} +async function detectPng(tokenizer) { + const pngFileType = { + ext: "png", + mime: "image/png" + }; + const apngFileType = { + ext: "apng", + mime: "image/apng" + }; + await tokenizer.ignore(8); + async function readChunkHeader() { + return { + length: await tokenizer.readToken(INT32_BE), + type: await tokenizer.readToken(new StringType(4, "latin1")) + }; + } + __name(readChunkHeader, "readChunkHeader"); + const isUnknownPngStream = hasUnknownFileSize(tokenizer); + const pngScanStart = tokenizer.position; + let pngChunkCount = 0; + let hasSeenImageHeader = false; + do { + pngChunkCount++; + if (pngChunkCount > maximumPngChunkCount) { + break; + } + if (hasExceededUnknownSizeScanBudget(tokenizer, pngScanStart, maximumPngStreamScanBudgetInBytes)) { + break; + } + const previousPosition = tokenizer.position; + const chunk = await readChunkHeader(); + if (chunk.length < 0) { + return; + } + if (chunk.type === "IHDR") { + if (chunk.length !== 13) { + return; + } + hasSeenImageHeader = true; + } + switch (chunk.type) { + case "IDAT": + return pngFileType; + case "acTL": + return apngFileType; + default: + if (!hasSeenImageHeader && chunk.type !== "CgBI") { + return; + } + if (isUnknownPngStream && chunk.length > maximumPngChunkSizeInBytes) { + return hasSeenImageHeader && isPngAncillaryChunk(chunk.type) ? pngFileType : void 0; + } + try { + await safeIgnore(tokenizer, chunk.length + 4, { + maximumLength: isUnknownPngStream ? maximumPngChunkSizeInBytes + 4 : tokenizer.fileInfo.size, + reason: "PNG chunk payload" + }); + } catch (error) { + if (!isUnknownPngStream && (error instanceof ParserHardLimitError || error instanceof EndOfStreamError)) { + return pngFileType; + } + throw error; + } + } + if (tokenizer.position <= previousPosition) { + break; + } + } while (tokenizer.position + 8 < tokenizer.fileInfo.size); + return pngFileType; +} +var maximumPngChunkCount, maximumPngStreamScanBudgetInBytes, maximumPngChunkSizeInBytes; +var init_png = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/png.js"() { + init_lib2(); + init_core(); + init_parser(); + maximumPngChunkCount = 512; + maximumPngStreamScanBudgetInBytes = 16 * 1024 * 1024; + maximumPngChunkSizeInBytes = 1024 * 1024; + __name(isPngAncillaryChunk, "isPngAncillaryChunk"); + __name(detectPng, "detectPng"); + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/asf.js +async function detectAsf(tokenizer) { + let isMalformedAsf = false; + try { + async function readHeader() { + const guid = new Uint8Array(16); + await safeReadBuffer(tokenizer, guid, void 0, { + maximumLength: guid.length, + reason: "ASF header GUID" + }); + return { + id: guid, + size: Number(await tokenizer.readToken(UINT64_LE)) + }; + } + __name(readHeader, "readHeader"); + await safeIgnore(tokenizer, 30, { + maximumLength: 30, + reason: "ASF header prelude" + }); + const isUnknownFileSize = hasUnknownFileSize(tokenizer); + const asfHeaderScanStart = tokenizer.position; + let asfHeaderObjectCount = 0; + while (tokenizer.position + 24 < tokenizer.fileInfo.size) { + asfHeaderObjectCount++; + if (asfHeaderObjectCount > maximumAsfHeaderObjectCount) { + break; + } + if (hasExceededUnknownSizeScanBudget(tokenizer, asfHeaderScanStart, maximumUntrustedSkipSizeInBytes)) { + break; + } + const previousPosition = tokenizer.position; + const header = await readHeader(); + let payload = header.size - 24; + if (!Number.isFinite(payload) || payload < 0) { + isMalformedAsf = true; + break; + } + if (checkBytes(header.id, [145, 7, 220, 183, 183, 169, 207, 17, 142, 230, 0, 192, 12, 32, 83, 101])) { + const typeId = new Uint8Array(16); + payload -= await safeReadBuffer(tokenizer, typeId, void 0, { + maximumLength: typeId.length, + reason: "ASF stream type GUID" + }); + if (checkBytes(typeId, [64, 158, 105, 248, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) { + return { + ext: "asf", + mime: "audio/x-ms-asf" + }; + } + if (checkBytes(typeId, [192, 239, 25, 188, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) { + return { + ext: "asf", + mime: "video/x-ms-asf" + }; + } + break; + } + if (isUnknownFileSize && payload > maximumAsfHeaderPayloadSizeInBytes) { + isMalformedAsf = true; + break; + } + await safeIgnore(tokenizer, payload, { + maximumLength: isUnknownFileSize ? maximumAsfHeaderPayloadSizeInBytes : tokenizer.fileInfo.size, + reason: "ASF header payload" + }); + if (tokenizer.position <= previousPosition) { + isMalformedAsf = true; + break; + } + } + } catch (error) { + if (error instanceof EndOfStreamError || error instanceof ParserHardLimitError) { + if (hasUnknownFileSize(tokenizer)) { + isMalformedAsf = true; + } + } else { + throw error; + } + } + if (isMalformedAsf) { + return; + } + return { + ext: "asf", + mime: "application/vnd.ms-asf" + }; +} +var maximumAsfHeaderObjectCount, maximumAsfHeaderPayloadSizeInBytes; +var init_asf = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/detectors/asf.js"() { + init_lib2(); + init_core(); + init_parser(); + maximumAsfHeaderObjectCount = 512; + maximumAsfHeaderPayloadSizeInBytes = 1024 * 1024; + __name(detectAsf, "detectAsf"); + } +}); + +// ../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/index.js +function normalizeSampleSize(sampleSize) { + if (!Number.isFinite(sampleSize)) { + return reasonableDetectionSizeInBytes; + } + return Math.max(1, Math.trunc(sampleSize)); +} +function normalizeMpegOffsetTolerance(mpegOffsetTolerance) { + if (!Number.isFinite(mpegOffsetTolerance)) { + return 0; + } + return Math.max(0, Math.min(maximumMpegOffsetTolerance, Math.trunc(mpegOffsetTolerance))); +} +function getKnownFileSizeOrMaximum(fileSize) { + if (!Number.isFinite(fileSize)) { + return Number.MAX_SAFE_INTEGER; + } + return Math.max(0, fileSize); +} +function importAtRuntime(specifier) { + return import( + /* @vite-ignore */ + /* webpackIgnore: true */ + specifier + ); +} +function toDefaultStream(stream) { + return stream.pipeThrough(new TransformStream()); +} +function readWithSignal(reader, signal) { + if (signal === void 0) { + return reader.read(); + } + signal.throwIfAborted(); + return Promise.race([ + reader.read(), + new Promise((_resolve, reject) => { + signal.addEventListener("abort", () => { + reject(signal.reason); + reader.cancel(signal.reason).catch(() => { + }); + }, { once: true }); + }) + ]); +} +function createByteLimitedReadableStream(stream, maximumBytes) { + const reader = stream.getReader(); + let emittedBytes = 0; + let sourceDone = false; + let sourceCanceled = false; + const cancelSource = /* @__PURE__ */ __name(async (reason) => { + if (sourceDone || sourceCanceled) { + return; + } + sourceCanceled = true; + await reader.cancel(reason); + }, "cancelSource"); + return new ReadableStream({ + async pull(controller) { + if (emittedBytes >= maximumBytes) { + controller.close(); + await cancelSource(); + return; + } + const { done, value } = await reader.read(); + if (done || !value) { + sourceDone = true; + controller.close(); + return; + } + const remainingBytes = maximumBytes - emittedBytes; + if (value.length > remainingBytes) { + controller.enqueue(value.subarray(0, remainingBytes)); + emittedBytes += remainingBytes; + controller.close(); + await cancelSource(); + return; + } + controller.enqueue(value); + emittedBytes += value.length; + }, + async cancel(reason) { + await cancelSource(reason); + } + }); +} +async function fileTypeFromStream(stream, options) { + return new FileTypeParser(options).fromStream(stream); +} +async function fileTypeFromBuffer(input, options) { + return new FileTypeParser(options).fromBuffer(input); +} +async function fileTypeFromBlob(blob, options) { + return new FileTypeParser(options).fromBlob(blob); +} +async function fileTypeFromTokenizer(tokenizer, options) { + return new FileTypeParser(options).fromTokenizer(tokenizer); +} +async function fileTypeStream(webStream, options) { + return new FileTypeParser(options).toDetectionStream(webStream, options); +} +async function fileTypeFromFile(path, options) { + return new FileTypeParser(options).fromFile(path); +} +var reasonableDetectionSizeInBytes, maximumMpegOffsetTolerance, maximumNestedGzipDetectionSizeInBytes, maximumNestedGzipProbeDepth, unknownSizeGzipProbeTimeoutInMilliseconds, maximumId3HeaderSizeInBytes, maximumTiffTagCount, maximumDetectionReentryCount, maximumTiffStreamIfdOffsetInBytes, maximumTiffIfdOffsetInBytes, FileTypeParser, supportedExtensions, supportedMimeTypes; +var init_source = __esm({ + "../../node_modules/.pnpm/file-type@22.1.1/node_modules/file-type/source/index.js"() { + init_lib2(); + init_core(); + init_lib3(); + init_uint8array_extras(); + init_tokens(); + init_supported(); + init_parser(); + init_zip(); + init_ebml(); + init_png(); + init_asf(); + reasonableDetectionSizeInBytes = 4100; + maximumMpegOffsetTolerance = reasonableDetectionSizeInBytes - 4; + maximumNestedGzipDetectionSizeInBytes = maximumUntrustedSkipSizeInBytes; + maximumNestedGzipProbeDepth = 1; + unknownSizeGzipProbeTimeoutInMilliseconds = 100; + maximumId3HeaderSizeInBytes = maximumUntrustedSkipSizeInBytes; + maximumTiffTagCount = 512; + maximumDetectionReentryCount = 256; + maximumTiffStreamIfdOffsetInBytes = 1024 * 1024; + maximumTiffIfdOffsetInBytes = maximumUntrustedSkipSizeInBytes; + __name(normalizeSampleSize, "normalizeSampleSize"); + __name(normalizeMpegOffsetTolerance, "normalizeMpegOffsetTolerance"); + __name(getKnownFileSizeOrMaximum, "getKnownFileSizeOrMaximum"); + __name(importAtRuntime, "importAtRuntime"); + __name(toDefaultStream, "toDefaultStream"); + __name(readWithSignal, "readWithSignal"); + __name(createByteLimitedReadableStream, "createByteLimitedReadableStream"); + __name(fileTypeFromStream, "fileTypeFromStream"); + __name(fileTypeFromBuffer, "fileTypeFromBuffer"); + __name(fileTypeFromBlob, "fileTypeFromBlob"); + __name(fileTypeFromTokenizer, "fileTypeFromTokenizer"); + __name(fileTypeStream, "fileTypeStream"); + FileTypeParser = class _FileTypeParser { + static { + __name(this, "FileTypeParser"); + } + constructor(options) { + const normalizedMpegOffsetTolerance = normalizeMpegOffsetTolerance(options?.mpegOffsetTolerance); + this.options = { + ...options, + mpegOffsetTolerance: normalizedMpegOffsetTolerance + }; + this.detectors = [ + ...this.options.customDetectors ?? [], + { id: "core", detect: this.detectConfident }, + { id: "core.imprecise", detect: this.detectImprecise } + ]; + this.tokenizerOptions = { + abortSignal: this.options.signal + }; + this.gzipProbeDepth = 0; + } + getTokenizerOptions() { + return { + ...this.tokenizerOptions + }; + } + createTokenizerFromWebStream(stream) { + return fromWebStream(toDefaultStream(stream), this.getTokenizerOptions()); + } + async parseTokenizer(tokenizer, detectionReentryCount = 0) { + this.detectionReentryCount = detectionReentryCount; + const initialPosition = tokenizer.position; + for (const detector of this.detectors) { + let fileType; + try { + fileType = await detector.detect(tokenizer); + } catch (error) { + if (error instanceof EndOfStreamError) { + return; + } + if (error instanceof ParserHardLimitError) { + return; + } + throw error; + } + if (fileType) { + return fileType; + } + if (initialPosition !== tokenizer.position) { + return void 0; + } + } + } + async fromTokenizer(tokenizer) { + try { + return await this.parseTokenizer(tokenizer); + } finally { + await tokenizer.close(); + } + } + async fromBuffer(input) { + if (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) { + throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof input}\``); + } + const buffer = input instanceof Uint8Array ? input : new Uint8Array(input); + if (!(buffer?.length > 1)) { + return; + } + return this.fromTokenizer(fromBuffer(buffer, this.getTokenizerOptions())); + } + async fromBlob(blob) { + this.options.signal?.throwIfAborted(); + const tokenizer = fromBlob(blob, this.getTokenizerOptions()); + return this.fromTokenizer(tokenizer); + } + async fromStream(stream) { + this.options.signal?.throwIfAborted(); + const tokenizer = this.createTokenizerFromWebStream(stream); + return this.fromTokenizer(tokenizer); + } + async fromFile(path) { + this.options.signal?.throwIfAborted(); + const [{ default: fsPromises }, { FileTokenizer }] = await Promise.all([ + importAtRuntime("node:fs/promises"), + importAtRuntime("strtok3") + ]); + const fileHandle = await fsPromises.open(path, fsPromises.constants.O_RDONLY | fsPromises.constants.O_NONBLOCK); + const fileStat = await fileHandle.stat(); + if (!fileStat.isFile()) { + await fileHandle.close(); + return; + } + const tokenizer = new FileTokenizer(fileHandle, { + ...this.getTokenizerOptions(), + fileInfo: { path, size: fileStat.size } + }); + return this.fromTokenizer(tokenizer); + } + async toDetectionStream(stream, options) { + this.options.signal?.throwIfAborted(); + const sampleSize = normalizeSampleSize(options?.sampleSize ?? reasonableDetectionSizeInBytes); + let detectedFileType; + let streamEnded = false; + const reader = stream.getReader(); + const chunks = []; + let totalSize = 0; + try { + while (totalSize < sampleSize) { + const { value, done } = await readWithSignal(reader, this.options.signal); + if (done || !value) { + streamEnded = true; + break; + } + chunks.push(value); + totalSize += value.length; + } + if (!streamEnded && totalSize === sampleSize) { + const { value, done } = await readWithSignal(reader, this.options.signal); + if (done || !value) { + streamEnded = true; + } else { + chunks.push(value); + totalSize += value.length; + } + } + } finally { + reader.releaseLock(); + } + if (totalSize > 0) { + const sample = chunks.length === 1 ? chunks[0] : concatUint8Arrays(chunks); + try { + detectedFileType = await this.fromBuffer(sample.subarray(0, sampleSize)); + } catch (error) { + if (!(error instanceof EndOfStreamError)) { + throw error; + } + detectedFileType = void 0; + } + if (!streamEnded && detectedFileType?.ext === "pages") { + detectedFileType = { + ext: "zip", + mime: "application/zip" + }; + } + } + const transformStream = new TransformStream({ + start(controller) { + for (const chunk of chunks) { + controller.enqueue(chunk); + } + }, + transform(chunk, controller) { + controller.enqueue(chunk); + } + }); + const newStream = stream.pipeThrough(transformStream); + newStream.fileType = detectedFileType; + return newStream; + } + async detectGzip(tokenizer) { + if (this.gzipProbeDepth >= maximumNestedGzipProbeDepth) { + return { + ext: "gz", + mime: "application/gzip" + }; + } + const gzipHandler = new GzipHandler(tokenizer); + const limitedInflatedStream = createByteLimitedReadableStream(gzipHandler.inflate(), maximumNestedGzipDetectionSizeInBytes); + const hasUnknownSize = hasUnknownFileSize(tokenizer); + let timeout; + let probeSignal; + let probeParser; + let compressedFileType; + if (hasUnknownSize) { + const timeoutController = new AbortController(); + timeout = setTimeout(() => { + timeoutController.abort(new DOMException(`Operation timed out after ${unknownSizeGzipProbeTimeoutInMilliseconds} ms`, "TimeoutError")); + }, unknownSizeGzipProbeTimeoutInMilliseconds); + probeSignal = this.options.signal === void 0 ? timeoutController.signal : AbortSignal.any([this.options.signal, timeoutController.signal]); + probeParser = new _FileTypeParser({ + ...this.options, + signal: probeSignal + }); + probeParser.gzipProbeDepth = this.gzipProbeDepth + 1; + } else { + this.gzipProbeDepth++; + } + try { + compressedFileType = await (probeParser ?? this).fromStream(limitedInflatedStream); + } catch (error) { + if (error?.name === "AbortError" && probeSignal?.reason?.name !== "TimeoutError") { + throw error; + } + } finally { + clearTimeout(timeout); + if (!hasUnknownSize) { + this.gzipProbeDepth--; + } + } + if (compressedFileType?.ext === "tar") { + return { + ext: "tar.gz", + mime: "application/gzip" + }; + } + return { + ext: "gz", + mime: "application/gzip" + }; + } + check(header, options) { + return checkBytes(this.buffer, header, options); + } + checkString(header, options) { + return this.check(stringToBytes(header, options?.encoding), options); + } + // Detections with a high degree of certainty in identifying the correct file type + detectConfident = /* @__PURE__ */ __name(async (tokenizer) => { + this.buffer = new Uint8Array(reasonableDetectionSizeInBytes); + if (tokenizer.fileInfo.size === void 0) { + tokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER; + } + this.tokenizer = tokenizer; + if (hasUnknownFileSize(tokenizer)) { + await tokenizer.peekBuffer(this.buffer, { length: 3, mayBeLess: true }); + if (this.check([31, 139, 8])) { + return this.detectGzip(tokenizer); + } + } + await tokenizer.peekBuffer(this.buffer, { length: 32, mayBeLess: true }); + if (this.check([66, 77])) { + return { + ext: "bmp", + mime: "image/bmp" + }; + } + if (this.check([11, 119])) { + return { + ext: "ac3", + mime: "audio/vnd.dolby.dd-raw" + }; + } + if (this.check([120, 1])) { + return { + ext: "dmg", + mime: "application/x-apple-diskimage" + }; + } + if (this.check([77, 90])) { + return { + ext: "exe", + mime: "application/x-msdownload" + }; + } + if (this.check([37, 33])) { + await tokenizer.peekBuffer(this.buffer, { length: 24, mayBeLess: true }); + if (this.checkString("PS-Adobe-", { offset: 2 }) && this.checkString(" EPSF-", { offset: 14 })) { + return { + ext: "eps", + mime: "application/eps" + }; + } + return { + ext: "ps", + mime: "application/postscript" + }; + } + if (this.check([31, 160]) || this.check([31, 157])) { + return { + ext: "Z", + mime: "application/x-compress" + }; + } + if (this.check([199, 113])) { + return { + ext: "cpio", + mime: "application/x-cpio" + }; + } + if (this.check([96, 234])) { + return { + ext: "arj", + mime: "application/x-arj" + }; + } + if (this.check([239, 187, 191])) { + if (this.detectionReentryCount >= maximumDetectionReentryCount) { + return; + } + this.detectionReentryCount++; + await this.tokenizer.ignore(3); + return this.detectConfident(tokenizer); + } + if (this.check([71, 73, 70])) { + return { + ext: "gif", + mime: "image/gif" + }; + } + if (this.check([73, 73, 188])) { + return { + ext: "jxr", + mime: "image/vnd.ms-photo" + }; + } + if (this.check([31, 139, 8])) { + return this.detectGzip(tokenizer); + } + if (this.check([66, 90, 104])) { + return { + ext: "bz2", + mime: "application/x-bzip2" + }; + } + if (this.checkString("ID3")) { + await safeIgnore(tokenizer, 6, { + maximumLength: 6, + reason: "ID3 header prefix" + }); + const id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken); + const isUnknownFileSize = hasUnknownFileSize(tokenizer); + if (!Number.isFinite(id3HeaderLength) || id3HeaderLength < 0 || isUnknownFileSize && (id3HeaderLength > maximumId3HeaderSizeInBytes || tokenizer.position + id3HeaderLength > maximumId3HeaderSizeInBytes)) { + return; + } + if (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) { + if (isUnknownFileSize) { + return; + } + return { + ext: "mp3", + mime: "audio/mpeg" + }; + } + try { + await safeIgnore(tokenizer, id3HeaderLength, { + maximumLength: isUnknownFileSize ? maximumId3HeaderSizeInBytes : tokenizer.fileInfo.size, + reason: "ID3 payload" + }); + } catch (error) { + if (error instanceof EndOfStreamError) { + return; + } + throw error; + } + if (this.detectionReentryCount >= maximumDetectionReentryCount) { + return; + } + this.detectionReentryCount++; + return this.parseTokenizer(tokenizer, this.detectionReentryCount); + } + if (this.checkString("MP+")) { + return { + ext: "mpc", + mime: "audio/x-musepack" + }; + } + if ((this.buffer[0] === 67 || this.buffer[0] === 70) && this.check([87, 83], { offset: 1 })) { + return { + ext: "swf", + mime: "application/x-shockwave-flash" + }; + } + if (this.check([255, 216, 255])) { + if (this.check([247], { offset: 3 })) { + return { + ext: "jls", + mime: "image/jls" + }; + } + return { + ext: "jpg", + mime: "image/jpeg" + }; + } + if (this.check([79, 98, 106, 1])) { + return { + ext: "avro", + mime: "application/avro" + }; + } + if (this.checkString("FLIF")) { + return { + ext: "flif", + mime: "image/flif" + }; + } + if (this.checkString("8BPS")) { + return { + ext: "psd", + mime: "image/vnd.adobe.photoshop" + }; + } + if (this.checkString("MPCK")) { + return { + ext: "mpc", + mime: "audio/x-musepack" + }; + } + if (this.checkString("FORM")) { + return { + ext: "aif", + mime: "audio/aiff" + }; + } + if (this.checkString("icns", { offset: 0 })) { + return { + ext: "icns", + mime: "image/icns" + }; + } + if (this.check([80, 75, 3, 4])) { + return detectZip(tokenizer); + } + if (this.checkString("OggS")) { + await tokenizer.ignore(28); + const type = new Uint8Array(8); + await tokenizer.readBuffer(type); + if (checkBytes(type, [79, 112, 117, 115, 72, 101, 97, 100])) { + return { + ext: "opus", + mime: "audio/ogg; codecs=opus" + }; + } + if (checkBytes(type, [128, 116, 104, 101, 111, 114, 97])) { + return { + ext: "ogv", + mime: "video/ogg" + }; + } + if (checkBytes(type, [1, 118, 105, 100, 101, 111, 0])) { + return { + ext: "ogm", + mime: "video/ogg" + }; + } + if (checkBytes(type, [127, 70, 76, 65, 67])) { + return { + ext: "oga", + mime: "audio/ogg" + }; + } + if (checkBytes(type, [83, 112, 101, 101, 120, 32, 32])) { + return { + ext: "spx", + mime: "audio/ogg" + }; + } + if (checkBytes(type, [1, 118, 111, 114, 98, 105, 115])) { + return { + ext: "ogg", + mime: "audio/ogg" + }; + } + return { + ext: "ogx", + mime: "application/ogg" + }; + } + if (this.check([80, 75]) && (this.buffer[2] === 3 || this.buffer[2] === 5 || this.buffer[2] === 7) && (this.buffer[3] === 4 || this.buffer[3] === 6 || this.buffer[3] === 8)) { + return { + ext: "zip", + mime: "application/zip" + }; + } + if (this.checkString("MThd")) { + return { + ext: "mid", + mime: "audio/midi" + }; + } + if (this.checkString("wOFF") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 }))) { + return { + ext: "woff", + mime: "font/woff" + }; + } + if (this.checkString("wOF2") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 }))) { + return { + ext: "woff2", + mime: "font/woff2" + }; + } + if (this.check([212, 195, 178, 161]) || this.check([161, 178, 195, 212])) { + return { + ext: "pcap", + mime: "application/vnd.tcpdump.pcap" + }; + } + if (this.checkString("DSD ")) { + return { + ext: "dsf", + mime: "audio/x-dsf" + // Non-standard + }; + } + if (this.checkString("LZIP")) { + return { + ext: "lz", + mime: "application/lzip" + }; + } + if (this.checkString("fLaC")) { + return { + ext: "flac", + mime: "audio/flac" + }; + } + if (this.check([66, 80, 71, 251])) { + return { + ext: "bpg", + mime: "image/bpg" + }; + } + if (this.checkString("wvpk")) { + return { + ext: "wv", + mime: "audio/wavpack" + }; + } + if (this.checkString("%PDF")) { + return { + ext: "pdf", + mime: "application/pdf" + }; + } + if (this.check([0, 97, 115, 109])) { + return { + ext: "wasm", + mime: "application/wasm" + }; + } + if (this.check([73, 73])) { + const fileType = await this.readTiffHeader(false); + if (fileType) { + return fileType; + } + } + if (this.check([77, 77])) { + const fileType = await this.readTiffHeader(true); + if (fileType) { + return fileType; + } + } + if (this.checkString("MAC ")) { + return { + ext: "ape", + mime: "audio/ape" + }; + } + if (this.check([26, 69, 223, 163])) { + return detectEbml(tokenizer); + } + if (this.checkString("SQLi")) { + return { + ext: "sqlite", + mime: "application/x-sqlite3" + }; + } + if (this.check([78, 69, 83, 26])) { + return { + ext: "nes", + mime: "application/x-nintendo-nes-rom" + }; + } + if (this.checkString("Cr24")) { + return { + ext: "crx", + mime: "application/x-google-chrome-extension" + }; + } + if (this.checkString("MSCF") || this.checkString("ISc(")) { + return { + ext: "cab", + mime: "application/vnd.ms-cab-compressed" + }; + } + if (this.check([237, 171, 238, 219])) { + return { + ext: "rpm", + mime: "application/x-rpm" + }; + } + if (this.check([197, 208, 211, 198])) { + return { + ext: "eps", + mime: "application/eps" + }; + } + if (this.check([40, 181, 47, 253])) { + return { + ext: "zst", + mime: "application/zstd" + }; + } + if (this.check([127, 69, 76, 70])) { + return { + ext: "elf", + mime: "application/x-elf" + }; + } + if (this.check([33, 66, 68, 78])) { + return { + ext: "pst", + mime: "application/vnd.ms-outlook" + }; + } + if (this.checkString("PAR1") || this.checkString("PARE")) { + return { + ext: "parquet", + mime: "application/vnd.apache.parquet" + }; + } + if (this.checkString("ttcf")) { + return { + ext: "ttc", + mime: "font/collection" + }; + } + if (this.check([254, 237, 250, 206]) || this.check([254, 237, 250, 207]) || this.check([206, 250, 237, 254]) || this.check([207, 250, 237, 254])) { + return { + ext: "macho", + mime: "application/x-mach-binary" + }; + } + if (this.check([4, 34, 77, 24])) { + return { + ext: "lz4", + mime: "application/x-lz4" + // Informal, used by freedesktop.org shared-mime-info + }; + } + if (this.checkString("regf")) { + return { + ext: "dat", + mime: "application/x-ft-windows-registry-hive" + }; + } + if (this.checkString("$FL2") || this.checkString("$FL3")) { + return { + ext: "sav", + mime: "application/x-spss-sav" + }; + } + if (this.check([79, 84, 84, 79, 0])) { + return { + ext: "otf", + mime: "font/otf" + }; + } + if (this.checkString("#!AMR")) { + return { + ext: "amr", + mime: "audio/amr" + }; + } + if (this.checkString(String.raw`{\rtf`)) { + return { + ext: "rtf", + mime: "application/rtf" + }; + } + if (this.check([70, 76, 86, 1])) { + return { + ext: "flv", + mime: "video/x-flv" + }; + } + if (this.checkString("IMPM")) { + return { + ext: "it", + mime: "audio/x-it" + }; + } + if (this.checkString("-lh0-", { offset: 2 }) || this.checkString("-lh1-", { offset: 2 }) || this.checkString("-lh2-", { offset: 2 }) || this.checkString("-lh3-", { offset: 2 }) || this.checkString("-lh4-", { offset: 2 }) || this.checkString("-lh5-", { offset: 2 }) || this.checkString("-lh6-", { offset: 2 }) || this.checkString("-lh7-", { offset: 2 }) || this.checkString("-lzs-", { offset: 2 }) || this.checkString("-lz4-", { offset: 2 }) || this.checkString("-lz5-", { offset: 2 }) || this.checkString("-lhd-", { offset: 2 })) { + return { + ext: "lzh", + mime: "application/x-lzh-compressed" + }; + } + if (this.check([0, 0, 1, 186])) { + if (this.check([33], { offset: 4, mask: [241] })) { + return { + ext: "mpg", + // May also be .ps, .mpeg + mime: "video/MP1S" + }; + } + if (this.check([68], { offset: 4, mask: [196] })) { + return { + ext: "mpg", + // May also be .mpg, .m2p, .vob or .sub + mime: "video/MP2P" + }; + } + } + if (this.checkString("ITSF")) { + return { + ext: "chm", + mime: "application/vnd.ms-htmlhelp" + }; + } + if (this.check([202, 254, 186, 190])) { + const machOArchitectureCount = UINT32_BE.get(this.buffer, 4); + const javaClassFileMajorVersion = UINT16_BE.get(this.buffer, 6); + if (machOArchitectureCount > 0 && machOArchitectureCount <= 30) { + return { + ext: "macho", + mime: "application/x-mach-binary" + }; + } + if (javaClassFileMajorVersion > 30) { + return { + ext: "class", + mime: "application/java-vm" + }; + } + } + if (this.checkString(".RMF")) { + return { + ext: "rm", + mime: "application/vnd.rn-realmedia" + }; + } + if (this.checkString("DRACO")) { + return { + ext: "drc", + mime: "application/x-ft-draco" + }; + } + if (this.check([253, 55, 122, 88, 90, 0])) { + return { + ext: "xz", + mime: "application/x-xz" + }; + } + if (this.checkString("= 1e3 && version <= 1050) { + return { + ext: "dwg", + mime: "image/vnd.dwg" + }; + } + } + if (this.checkString("070707")) { + return { + ext: "cpio", + mime: "application/x-cpio" + }; + } + if (this.checkString("BLENDER")) { + return { + ext: "blend", + mime: "application/x-blender" + }; + } + if (this.checkString("!")) { + await tokenizer.ignore(8); + const string = await tokenizer.readToken(new StringType(13, "ascii")); + if (string === "debian-binary") { + return { + ext: "deb", + mime: "application/x-deb" + }; + } + return { + ext: "ar", + mime: "application/x-unix-archive" + }; + } + if (this.checkString("WEBVTT") && // One of LF, CR, tab, space, or end of file must follow "WEBVTT" per the spec (see `fixture/fixture-vtt-*.vtt` for examples). Note that `\0` is technically the null character (there is no such thing as an EOF character). However, checking for `\0` gives us the same result as checking for the end of the stream. + ["\n", "\r", " ", " ", "\0"].some((char7) => this.checkString(char7, { offset: 6 }))) { + return { + ext: "vtt", + mime: "text/vtt" + }; + } + if (this.check([137, 80, 78, 71, 13, 10, 26, 10])) { + return detectPng(tokenizer); + } + if (this.check([65, 82, 82, 79, 87, 49, 0, 0])) { + return { + ext: "arrow", + mime: "application/vnd.apache.arrow.file" + }; + } + if (this.check([103, 108, 84, 70, 2, 0, 0, 0])) { + return { + ext: "glb", + mime: "model/gltf-binary" + }; + } + if (this.check([102, 114, 101, 101], { offset: 4 }) || this.check([109, 100, 97, 116], { offset: 4 }) || this.check([109, 111, 111, 118], { offset: 4 }) || this.check([119, 105, 100, 101], { offset: 4 })) { + return { + ext: "mov", + mime: "video/quicktime" + }; + } + if (this.check([73, 73, 82, 79, 8, 0, 0, 0, 24])) { + return { + ext: "orf", + mime: "image/x-olympus-orf" + }; + } + if (this.checkString("gimp xcf ")) { + return { + ext: "xcf", + mime: "image/x-xcf" + }; + } + if (this.checkString("ftyp", { offset: 4 }) && (this.buffer[8] & 96) !== 0) { + const brandMajor = new StringType(4, "latin1").get(this.buffer, 8).replace("\0", " ").trim(); + switch (brandMajor) { + case "avif": + case "avis": + return { ext: "avif", mime: "image/avif" }; + case "mif1": + return { ext: "heic", mime: "image/heif" }; + case "msf1": + return { ext: "heic", mime: "image/heif-sequence" }; + case "heic": + case "heix": + return { ext: "heic", mime: "image/heic" }; + case "hevc": + case "hevx": + return { ext: "heic", mime: "image/heic-sequence" }; + case "qt": + return { ext: "mov", mime: "video/quicktime" }; + case "M4V": + case "M4VH": + case "M4VP": + return { ext: "m4v", mime: "video/x-m4v" }; + case "M4P": + return { ext: "m4p", mime: "video/mp4" }; + case "M4B": + return { ext: "m4b", mime: "audio/mp4" }; + case "M4A": + return { ext: "m4a", mime: "audio/x-m4a" }; + case "F4V": + return { ext: "f4v", mime: "video/mp4" }; + case "F4P": + return { ext: "f4p", mime: "video/mp4" }; + case "F4A": + return { ext: "f4a", mime: "audio/mp4" }; + case "F4B": + return { ext: "f4b", mime: "audio/mp4" }; + case "crx": + return { ext: "cr3", mime: "image/x-canon-cr3" }; + default: + if (brandMajor.startsWith("3g")) { + if (brandMajor.startsWith("3g2")) { + return { ext: "3g2", mime: "video/3gpp2" }; + } + return { ext: "3gp", mime: "video/3gpp" }; + } + return { ext: "mp4", mime: "video/mp4" }; + } + } + if (this.checkString("REGEDIT4\r\n")) { + return { + ext: "reg", + mime: "application/x-ms-regedit" + }; + } + if (this.check([82, 73, 70, 70])) { + if (this.checkString("WEBP", { offset: 8 })) { + return { + ext: "webp", + mime: "image/webp" + }; + } + if (this.check([65, 86, 73], { offset: 8 })) { + return { + ext: "avi", + mime: "video/vnd.avi" + }; + } + if (this.check([87, 65, 86, 69], { offset: 8 })) { + return { + ext: "wav", + mime: "audio/wav" + }; + } + if (this.check([81, 76, 67, 77], { offset: 8 })) { + return { + ext: "qcp", + mime: "audio/qcelp" + }; + } + } + if (this.check([73, 73, 85, 0, 24, 0, 0, 0, 136, 231, 116, 216])) { + return { + ext: "rw2", + mime: "image/x-panasonic-rw2" + }; + } + if (this.check([48, 38, 178, 117, 142, 102, 207, 17, 166, 217])) { + return detectAsf(tokenizer); + } + if (this.check([171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10])) { + return { + ext: "ktx", + mime: "image/ktx" + }; + } + if ((this.check([126, 16, 4]) || this.check([126, 24, 4])) && this.check([48, 77, 73, 69], { offset: 4 })) { + return { + ext: "mie", + mime: "application/x-mie" + }; + } + if (this.check([39, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], { offset: 2 })) { + return { + ext: "shp", + mime: "application/x-esri-shape" + }; + } + if (this.check([255, 79, 255, 81])) { + return { + ext: "j2c", + mime: "image/j2c" + }; + } + if (this.check([0, 0, 0, 12, 106, 80, 32, 32, 13, 10, 135, 10])) { + await tokenizer.ignore(20); + const type = await tokenizer.readToken(new StringType(4, "ascii")); + switch (type) { + case "jp2 ": + return { + ext: "jp2", + mime: "image/jp2" + }; + case "jpx ": + return { + ext: "jpx", + mime: "image/jpx" + }; + case "jpm ": + return { + ext: "jpm", + mime: "image/jpm" + }; + case "mjp2": + return { + ext: "mj2", + mime: "image/mj2" + }; + default: + return; + } + } + if (this.check([255, 10]) || this.check([0, 0, 0, 12, 74, 88, 76, 32, 13, 10, 135, 10])) { + return { + ext: "jxl", + mime: "image/jxl" + }; + } + if (this.check([254, 255])) { + if (this.checkString("= 16) { + const jsonSize = new DataView(this.buffer.buffer).getUint32(12, true); + if (jsonSize > 12 && this.buffer.length >= jsonSize + 16) { + try { + const header = new TextDecoder().decode(this.buffer.subarray(16, jsonSize + 16)); + const json = JSON.parse(header); + if (json.files) { + return { + ext: "asar", + mime: "application/x-asar" + }; + } + } catch { + } + } + } + if (this.check([6, 14, 43, 52, 2, 5, 1, 1, 13, 1, 2, 1, 1, 2])) { + return { + ext: "mxf", + mime: "application/mxf" + }; + } + if (this.checkString("SCRM", { offset: 44 })) { + return { + ext: "s3m", + mime: "audio/x-s3m" + }; + } + if (this.check([71]) && this.check([71], { offset: 188 })) { + return { + ext: "mts", + mime: "video/mp2t" + }; + } + if (this.check([71], { offset: 4 }) && this.check([71], { offset: 196 })) { + return { + ext: "mts", + mime: "video/mp2t" + }; + } + if (this.check([66, 79, 79, 75, 77, 79, 66, 73], { offset: 60 })) { + return { + ext: "mobi", + mime: "application/x-mobipocket-ebook" + }; + } + if (this.check([68, 73, 67, 77], { offset: 128 })) { + return { + ext: "dcm", + mime: "application/dicom" + }; + } + if (this.check([76, 0, 0, 0, 1, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70])) { + return { + ext: "lnk", + mime: "application/x-ms-shortcut" + // Informal, used by freedesktop.org shared-mime-info + }; + } + if (this.check([98, 111, 111, 107, 0, 0, 0, 0, 109, 97, 114, 107, 0, 0, 0, 0])) { + return { + ext: "alias", + mime: "application/x-ft-apple.alias" + }; + } + if (this.checkString("Kaydara FBX Binary \0")) { + return { + ext: "fbx", + mime: "application/x-ft-fbx" + }; + } + if (this.check([76, 80], { offset: 34 }) && (this.check([0, 0, 1], { offset: 8 }) || this.check([1, 0, 2], { offset: 8 }) || this.check([2, 0, 2], { offset: 8 }))) { + return { + ext: "eot", + mime: "application/vnd.ms-fontobject" + }; + } + if (this.check([6, 6, 237, 245, 216, 29, 70, 229, 189, 49, 239, 231, 254, 116, 183, 29])) { + return { + ext: "indd", + mime: "application/x-indesign" + }; + } + if (this.check([255, 255, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 1, 0, 1, 0]) || this.check([0, 0, 255, 255, 0, 0, 0, 7, 0, 0, 0, 4, 0, 1, 0, 1])) { + return { + ext: "jmp", + mime: "application/x-jmp-data" + }; + } + await tokenizer.peekBuffer(this.buffer, { length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true }); + if (this.checkString("ustar", { offset: 257 }) && (this.checkString("\0", { offset: 262 }) || this.checkString(" ", { offset: 262 })) || this.check([0, 0, 0, 0, 0, 0], { offset: 257 }) && tarHeaderChecksumMatches(this.buffer)) { + return { + ext: "tar", + mime: "application/x-tar" + }; + } + if (this.check([255, 254])) { + const encoding = "utf-16le"; + if (this.checkString("= isoStandardIdentifierOffset + isoStandardIdentifierLength) { + const isoStandardIdentifier = new Uint8Array(isoStandardIdentifierLength); + await tokenizer.peekBuffer(isoStandardIdentifier, { + position: isoStandardIdentifierOffset, + length: isoStandardIdentifierLength, + mayBeLess: true + }); + if (checkBytes(isoStandardIdentifier, stringToBytes("CD001"))) { + return { + ext: "iso", + mime: "application/x-iso9660-image" + }; + } + } + }, "detectConfident"); + // Detections with limited supporting data, resulting in a higher likelihood of false positives + detectImprecise = /* @__PURE__ */ __name(async (tokenizer) => { + this.buffer = new Uint8Array(reasonableDetectionSizeInBytes); + const fileSize = getKnownFileSizeOrMaximum(tokenizer.fileInfo.size); + await tokenizer.peekBuffer(this.buffer, { length: Math.min(8, fileSize), mayBeLess: true }); + if (this.check([0, 0, 1, 186]) || this.check([0, 0, 1, 179])) { + return { + ext: "mpg", + mime: "video/mpeg" + }; + } + if (this.check([0, 1, 0, 0, 0])) { + return { + ext: "ttf", + mime: "font/ttf" + }; + } + if (this.check([0, 0, 1, 0])) { + return { + ext: "ico", + mime: "image/x-icon" + }; + } + if (this.check([0, 0, 2, 0])) { + return { + ext: "cur", + mime: "image/x-icon" + }; + } + await tokenizer.peekBuffer(this.buffer, { length: Math.min(4 + this.options.mpegOffsetTolerance, fileSize), mayBeLess: true }); + if (this.buffer.length >= 4 + this.options.mpegOffsetTolerance) { + for (let depth = 0; depth <= this.options.mpegOffsetTolerance; ++depth) { + const type = this.scanMpeg(depth); + if (type) { + return type; + } + } + } + }, "detectImprecise"); + async readTiffTag(bigEndian) { + const tagId = await this.tokenizer.readToken(bigEndian ? UINT16_BE : UINT16_LE); + await this.tokenizer.ignore(10); + switch (tagId) { + case 50341: + return { + ext: "arw", + mime: "image/x-sony-arw" + }; + case 50706: + return { + ext: "dng", + mime: "image/x-adobe-dng" + }; + default: + } + } + async readTiffIFD(bigEndian) { + const numberOfTags = await this.tokenizer.readToken(bigEndian ? UINT16_BE : UINT16_LE); + if (numberOfTags > maximumTiffTagCount) { + return; + } + if (hasUnknownFileSize(this.tokenizer) && 2 + numberOfTags * 12 > maximumTiffIfdOffsetInBytes) { + return; + } + for (let n = 0; n < numberOfTags; ++n) { + const fileType = await this.readTiffTag(bigEndian); + if (fileType) { + return fileType; + } + } + } + async readTiffHeader(bigEndian) { + const tiffFileType = { + ext: "tif", + mime: "image/tiff" + }; + const version = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 2); + const ifdOffset = (bigEndian ? UINT32_BE : UINT32_LE).get(this.buffer, 4); + if (version === 42) { + if (ifdOffset >= 6) { + if (this.checkString("CR", { offset: 8 })) { + return { + ext: "cr2", + mime: "image/x-canon-cr2" + }; + } + if (ifdOffset >= 8) { + const someId1 = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 8); + const someId2 = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 10); + if (someId1 === 28 && someId2 === 254 || someId1 === 31 && someId2 === 11) { + return { + ext: "nef", + mime: "image/x-nikon-nef" + }; + } + } + } + if (hasUnknownFileSize(this.tokenizer) && ifdOffset > maximumTiffStreamIfdOffsetInBytes) { + return tiffFileType; + } + const maximumTiffOffset = hasUnknownFileSize(this.tokenizer) ? maximumTiffIfdOffsetInBytes : this.tokenizer.fileInfo.size; + try { + await safeIgnore(this.tokenizer, ifdOffset, { + maximumLength: maximumTiffOffset, + reason: "TIFF IFD offset" + }); + } catch (error) { + if (error instanceof EndOfStreamError) { + return; + } + throw error; + } + let fileType; + try { + fileType = await this.readTiffIFD(bigEndian); + } catch (error) { + if (error instanceof EndOfStreamError) { + return; + } + throw error; + } + return fileType ?? tiffFileType; + } + if (version === 43) { + return tiffFileType; + } + } + /** + Scan check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE). + + @param offset - Offset to scan for sync-preamble. + @returns {{ext: string, mime: string}} + */ + scanMpeg(offset) { + if (this.check([255, 224], { offset, mask: [255, 224] })) { + if (this.check([16], { offset: offset + 1, mask: [22] })) { + return { + ext: "aac", + mime: "audio/aac" + }; + } + if (this.check([255, 254], { offset })) { + return; + } + if (this.check([8], { offset: offset + 1, mask: [24] })) { + return; + } + if (this.check([240], { offset: offset + 2, mask: [240] })) { + return; + } + if (this.check([12], { offset: offset + 2, mask: [12] })) { + return; + } + if (this.check([2], { offset: offset + 1, mask: [6] })) { + return { + ext: "mp3", + mime: "audio/mpeg" + }; + } + if (this.check([4], { offset: offset + 1, mask: [6] })) { + return { + ext: "mp2", + mime: "audio/mpeg" + }; + } + if (this.check([6], { offset: offset + 1, mask: [6] })) { + return { + ext: "mp1", + mime: "audio/mpeg" + }; + } + } + } + }; + supportedExtensions = new Set(extensions); + supportedMimeTypes = new Set(mimeTypes); + __name(fileTypeFromFile, "fileTypeFromFile"); + } +}); +init_source(); +export { + FileTypeParser, + fileTypeFromBlob, + fileTypeFromBuffer, + fileTypeFromFile, + fileTypeFromStream, + fileTypeFromTokenizer, + fileTypeStream, + normalizeSampleSize, + reasonableDetectionSizeInBytes, + supportedExtensions, + supportedMimeTypes +}; diff --git a/apps/api/.output/dist/main.js b/apps/api/.output/dist/main.js new file mode 100644 index 0000000..d61da50 --- /dev/null +++ b/apps/api/.output/dist/main.js @@ -0,0 +1,3595 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + ACCEPTED_IMAGE_TYPES, + AuditService, + AuthService, + CommonModule, + JwtModule, + JwtService, + MESSAGE_STATUSES, + PrismaModule, + PrismaService, + RevalidateService, + S3Storage, + SECTION_KEYS, + categoryInputSchema, + changePasswordSchema, + contactInputSchema, + env, + external_exports, + hashPassword, + isProd, + isSectionKey, + loginSchema, + mediaUpdateSchema, + messageUpdateSchema, + prismaNamespace_exports, + productInputSchema, + productListQuerySchema, + reorderSchema, + sectionSchemas, + toIssues, + toUserDto, + toWebp, + userCreateSchema, + userUpdateSchema +} from "./chunks/chunk-TXBARIZB.js"; +import "./chunks/chunk-KIUJQ22G.js"; +import { + APP_FILTER, + APP_GUARD, + FileInterceptor, + NestFactory, + Reflector, + core_exports, + init_core, + init_platform_express, + require_cookie +} from "./chunks/chunk-XSOBN2CI.js"; +import { + BadRequestException, + Body, + Catch, + ConflictException, + Controller, + Delete, + ForbiddenException, + Get, + HttpCode, + HttpStatus, + Injectable, + Logger, + Module, + NotFoundException, + Param, + Patch, + Post, + Put, + Query, + Req, + Res, + ServiceUnavailableException, + SetMetadata, + UnauthorizedException, + UploadedFile, + UseGuards, + UseInterceptors, + applyDecorators, + common_exports, + createParamDecorator, + init_common +} from "./chunks/chunk-BX2ML7LW.js"; +import "./chunks/chunk-C4DYPKAN.js"; +import "./chunks/chunk-A34KYKJP.js"; +import "./chunks/chunk-6UPY3HEI.js"; +import { + __commonJS, + __name, + __require, + __toCommonJS, + __toESM +} from "./chunks/chunk-T6GW54FI.js"; + +// ../../node_modules/.pnpm/cookie-signature@1.0.6/node_modules/cookie-signature/index.js +var require_cookie_signature = __commonJS({ + "../../node_modules/.pnpm/cookie-signature@1.0.6/node_modules/cookie-signature/index.js"(exports) { + var crypto = __require("crypto"); + exports.sign = function(val, secret) { + if ("string" != typeof val) throw new TypeError("Cookie value must be provided as a string."); + if ("string" != typeof secret) throw new TypeError("Secret string must be provided."); + return val + "." + crypto.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, ""); + }; + exports.unsign = function(val, secret) { + if ("string" != typeof val) throw new TypeError("Signed cookie string must be provided."); + if ("string" != typeof secret) throw new TypeError("Secret string must be provided."); + var str = val.slice(0, val.lastIndexOf(".")), mac = exports.sign(str, secret); + return sha1(mac) == sha1(val) ? str : false; + }; + function sha1(str) { + return crypto.createHash("sha1").update(str).digest("hex"); + } + __name(sha1, "sha1"); + } +}); + +// ../../node_modules/.pnpm/cookie-parser@1.4.7/node_modules/cookie-parser/index.js +var require_cookie_parser = __commonJS({ + "../../node_modules/.pnpm/cookie-parser@1.4.7/node_modules/cookie-parser/index.js"(exports, module) { + "use strict"; + var cookie = require_cookie(); + var signature = require_cookie_signature(); + module.exports = cookieParser2; + module.exports.JSONCookie = JSONCookie; + module.exports.JSONCookies = JSONCookies; + module.exports.signedCookie = signedCookie; + module.exports.signedCookies = signedCookies; + function cookieParser2(secret, options) { + var secrets = !secret || Array.isArray(secret) ? secret || [] : [secret]; + return /* @__PURE__ */ __name(function cookieParser3(req, res, next) { + if (req.cookies) { + return next(); + } + var cookies = req.headers.cookie; + req.secret = secrets[0]; + req.cookies = /* @__PURE__ */ Object.create(null); + req.signedCookies = /* @__PURE__ */ Object.create(null); + if (!cookies) { + return next(); + } + req.cookies = cookie.parse(cookies, options); + if (secrets.length !== 0) { + req.signedCookies = signedCookies(req.cookies, secrets); + req.signedCookies = JSONCookies(req.signedCookies); + } + req.cookies = JSONCookies(req.cookies); + next(); + }, "cookieParser"); + } + __name(cookieParser2, "cookieParser"); + function JSONCookie(str) { + if (typeof str !== "string" || str.substr(0, 2) !== "j:") { + return void 0; + } + try { + return JSON.parse(str.slice(2)); + } catch (err) { + return void 0; + } + } + __name(JSONCookie, "JSONCookie"); + function JSONCookies(obj) { + var cookies = Object.keys(obj); + var key; + var val; + for (var i = 0; i < cookies.length; i++) { + key = cookies[i]; + val = JSONCookie(obj[key]); + if (val) { + obj[key] = val; + } + } + return obj; + } + __name(JSONCookies, "JSONCookies"); + function signedCookie(str, secret) { + if (typeof str !== "string") { + return void 0; + } + if (str.substr(0, 2) !== "s:") { + return str; + } + var secrets = !secret || Array.isArray(secret) ? secret || [] : [secret]; + for (var i = 0; i < secrets.length; i++) { + var val = signature.unsign(str.slice(2), secrets[i]); + if (val !== false) { + return val; + } + } + return false; + } + __name(signedCookie, "signedCookie"); + function signedCookies(obj, secret) { + var cookies = Object.keys(obj); + var dec; + var key; + var ret = /* @__PURE__ */ Object.create(null); + var val; + for (var i = 0; i < cookies.length; i++) { + key = cookies[i]; + val = obj[key]; + dec = signedCookie(val, secret); + if (val !== dec) { + ret[key] = dec; + delete obj[key]; + } + } + return ret; + } + __name(signedCookies, "signedCookies"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/ip.js +var require_ip = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/ip.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DEFAULT_IPV6_SUBNET_PREFIX = void 0; + exports.normalizeIp = normalizeIp; + var net_1 = __require("net"); + exports.DEFAULT_IPV6_SUBNET_PREFIX = 64; + function toHextets(address) { + let head = address; + const lastColon = head.lastIndexOf(":"); + const tail = head.slice(lastColon + 1); + if (tail.includes(".")) { + const octets = tail.split(".").map(Number); + if (octets.length !== 4 || octets.some((o) => !Number.isInteger(o) || o < 0 || o > 255)) { + return null; + } + const high = (octets[0] << 8 | octets[1]).toString(16); + const low = (octets[2] << 8 | octets[3]).toString(16); + head = `${head.slice(0, lastColon + 1)}${high}:${low}`; + } + const sides = head.split("::"); + if (sides.length > 2) { + return null; + } + const left = sides[0] ? sides[0].split(":") : []; + const right = sides.length === 2 && sides[1] ? sides[1].split(":") : []; + const fill = sides.length === 2 ? 8 - left.length - right.length : 0; + if (fill < 0 || left.length + fill + right.length !== 8) { + return null; + } + const groups = [...left, ...new Array(fill).fill("0"), ...right]; + const hextets = groups.map((group) => parseInt(group, 16)); + if (hextets.some((hextet) => !Number.isInteger(hextet) || hextet < 0 || hextet > 65535)) { + return null; + } + return hextets; + } + __name(toHextets, "toHextets"); + function maskHextets(hextets, prefix) { + return hextets.map((hextet, index) => { + const bitsBefore = index * 16; + if (prefix >= bitsBefore + 16) { + return hextet; + } + if (prefix <= bitsBefore) { + return 0; + } + const keep = prefix - bitsBefore; + return hextet & (65535 << 16 - keep & 65535); + }); + } + __name(maskHextets, "maskHextets"); + function formatIpv6(hextets) { + let bestStart = -1; + let bestLength = 0; + let runStart = -1; + let runLength = 0; + for (let index = 0; index < hextets.length; index++) { + if (hextets[index] !== 0) { + runStart = -1; + runLength = 0; + continue; + } + if (runStart === -1) { + runStart = index; + } + runLength++; + if (runLength > bestLength) { + bestStart = runStart; + bestLength = runLength; + } + } + const groups = hextets.map((hextet) => hextet.toString(16)); + if (bestLength < 2) { + return groups.join(":"); + } + return `${groups.slice(0, bestStart).join(":")}::${groups.slice(bestStart + bestLength).join(":")}`; + } + __name(formatIpv6, "formatIpv6"); + function normalizeIp(ip, ipv6SubnetPrefix = exports.DEFAULT_IPV6_SUBNET_PREFIX) { + if (typeof ip !== "string" || ip.length === 0) { + return ip; + } + const zoneIndex = ip.indexOf("%"); + const bare = zoneIndex === -1 ? ip : ip.slice(0, zoneIndex); + const version = (0, net_1.isIP)(bare); + if (version === 4) { + return bare; + } + if (version !== 6) { + return ip; + } + const hextets = toHextets(bare.toLowerCase()); + if (!hextets) { + return ip; + } + const isLoopback = hextets[7] === 1 && hextets.slice(0, 7).every((hextet) => hextet === 0); + if (isLoopback) { + return "::1"; + } + const isIpv4Mapped = hextets[0] === 0 && hextets[1] === 0 && hextets[2] === 0 && hextets[3] === 0 && hextets[4] === 0 && hextets[5] === 65535; + if (isIpv4Mapped) { + return [hextets[6] >> 8, hextets[6] & 255, hextets[7] >> 8, hextets[7] & 255].join("."); + } + const prefix = Number.isFinite(ipv6SubnetPrefix) ? Math.min(Math.max(Math.trunc(ipv6SubnetPrefix), 0), 128) : exports.DEFAULT_IPV6_SUBNET_PREFIX; + return `${formatIpv6(maskHextets(hextets, prefix))}/${prefix}`; + } + __name(normalizeIp, "normalizeIp"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler-module-options.interface.js +var require_throttler_module_options_interface = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler-module-options.interface.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler-storage.interface.js +var require_throttler_storage_interface = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler-storage.interface.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ThrottlerStorage = void 0; + exports.ThrottlerStorage = /* @__PURE__ */ Symbol("ThrottlerStorage"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.constants.js +var require_throttler_constants = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.constants.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.THROTTLER_SKIP = exports.THROTTLER_OPTIONS = exports.THROTTLER_KEY_GENERATOR = exports.THROTTLER_BLOCK_DURATION = exports.THROTTLER_TRACKER = exports.THROTTLER_TTL = exports.THROTTLER_LIMIT = void 0; + exports.THROTTLER_LIMIT = "THROTTLER:LIMIT"; + exports.THROTTLER_TTL = "THROTTLER:TTL"; + exports.THROTTLER_TRACKER = "THROTTLER:TRACKER"; + exports.THROTTLER_BLOCK_DURATION = "THROTTLER:BLOCK_DURATION"; + exports.THROTTLER_KEY_GENERATOR = "THROTTLER:KEY_GENERATOR"; + exports.THROTTLER_OPTIONS = "THROTTLER:MODULE_OPTIONS"; + exports.THROTTLER_SKIP = "THROTTLER:SKIP"; + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.service.js +var require_throttler_service = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.service.js"(exports) { + "use strict"; + var __decorate15 = exports && exports.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ThrottlerStorageService = exports.DEFAULT_SWEEP_INTERVAL = void 0; + var common_1 = (init_common(), __toCommonJS(common_exports)); + var async_hooks_1 = __require("async_hooks"); + exports.DEFAULT_SWEEP_INTERVAL = 6e4; + var ThrottlerStorageService = class ThrottlerStorageService { + static { + __name(this, "ThrottlerStorageService"); + } + constructor() { + this._storage = /* @__PURE__ */ new Map(); + this.hitExpirations = /* @__PURE__ */ new Map(); + this.sweepIntervalMs = exports.DEFAULT_SWEEP_INTERVAL; + this.startSweep = async_hooks_1.AsyncResource.bind(() => { + var _a, _b; + this.sweepInterval = setInterval(() => this.evictIdleRecords(), this.sweepIntervalMs); + (_b = (_a = this.sweepInterval).unref) === null || _b === void 0 ? void 0 : _b.call(_a); + }); + } + ensureSweep() { + if (this.sweepInterval) { + return; + } + this.startSweep(); + } + get storage() { + return this._storage; + } + evictIdleRecords(now = Date.now()) { + for (const [key, record] of this._storage) { + if (record.isBlocked && record.blockExpiresAt > now) { + continue; + } + if (record.expiresAt > now) { + continue; + } + if (this.hasLiveHits(key, now)) { + continue; + } + this.hitExpirations.delete(key); + this._storage.delete(key); + } + } + hasLiveHits(key, now) { + const expirations = this.hitExpirations.get(key); + if (!expirations) { + return false; + } + for (const hits of expirations.values()) { + if (hits.some((expiresAt) => expiresAt > now)) { + return true; + } + } + return false; + } + getHitExpirations(key, throttlerName) { + let expirations = this.hitExpirations.get(key); + if (!expirations) { + expirations = /* @__PURE__ */ new Map(); + this.hitExpirations.set(key, expirations); + } + let hits = expirations.get(throttlerName); + if (!hits) { + hits = []; + expirations.set(throttlerName, hits); + } + return hits; + } + pruneExpiredHits(key, throttlerName, now = Date.now()) { + const hits = this.getHitExpirations(key, throttlerName).filter((expiresAt) => expiresAt > now); + this.hitExpirations.get(key).set(throttlerName, hits); + this.storage.get(key).totalHits.set(throttlerName, hits.length); + } + getExpirationTime(key) { + return Math.ceil((this.storage.get(key).expiresAt - Date.now()) / 1e3); + } + getBlockExpirationTime(key) { + return Math.ceil((this.storage.get(key).blockExpiresAt - Date.now()) / 1e3); + } + resetBlockedRequest(key, throttlerName) { + this.storage.get(key).isBlocked = false; + this.storage.get(key).totalHits.set(throttlerName, 0); + this.hitExpirations.get(key).set(throttlerName, []); + } + fireHitCount(key, throttlerName, ttl) { + const { totalHits } = this.storage.get(key); + totalHits.set(throttlerName, totalHits.get(throttlerName) + 1); + this.getHitExpirations(key, throttlerName).push(Date.now() + ttl); + } + incrementWithoutBlock(key, ttlMilliseconds, limit, throttlerName, timeToExpire) { + const { totalHits } = this.storage.get(key); + const isBlocked = totalHits.get(throttlerName) >= limit; + if (!isBlocked) { + this.fireHitCount(key, throttlerName, ttlMilliseconds); + } + const hits = this.getHitExpirations(key, throttlerName); + const timeToBlockExpire = hits.length ? Math.ceil((Math.min(...hits) - Date.now()) / 1e3) : timeToExpire; + return { + totalHits: totalHits.get(throttlerName) + (isBlocked ? 1 : 0), + timeToExpire, + isBlocked, + timeToBlockExpire: isBlocked ? timeToBlockExpire : 0 + }; + } + async increment(key, ttl, limit, blockDuration, throttlerName) { + const ttlMilliseconds = ttl; + const blockDurationMilliseconds = blockDuration; + this.ensureSweep(); + if (!this.storage.has(key)) { + this.storage.set(key, { + totalHits: /* @__PURE__ */ new Map([[throttlerName, 0]]), + expiresAt: Date.now() + ttlMilliseconds, + blockExpiresAt: 0, + isBlocked: false + }); + } + this.pruneExpiredHits(key, throttlerName); + let timeToExpire = this.getExpirationTime(key); + if (timeToExpire <= 0) { + this.storage.get(key).expiresAt = Date.now() + ttlMilliseconds; + timeToExpire = this.getExpirationTime(key); + } + if (blockDurationMilliseconds <= 0) { + return this.incrementWithoutBlock(key, ttlMilliseconds, limit, throttlerName, timeToExpire); + } + if (!this.storage.get(key).isBlocked) { + this.fireHitCount(key, throttlerName, ttlMilliseconds); + } + if (this.storage.get(key).totalHits.get(throttlerName) > limit && !this.storage.get(key).isBlocked) { + this.storage.get(key).isBlocked = true; + this.storage.get(key).blockExpiresAt = Date.now() + blockDurationMilliseconds; + } + const timeToBlockExpire = this.getBlockExpirationTime(key); + if (timeToBlockExpire <= 0 && this.storage.get(key).isBlocked) { + this.resetBlockedRequest(key, throttlerName); + this.fireHitCount(key, throttlerName, ttlMilliseconds); + } + return { + totalHits: this.storage.get(key).totalHits.get(throttlerName), + timeToExpire, + isBlocked: this.storage.get(key).isBlocked, + timeToBlockExpire + }; + } + onApplicationShutdown() { + if (this.sweepInterval) { + clearInterval(this.sweepInterval); + this.sweepInterval = void 0; + } + this.hitExpirations.clear(); + this._storage.clear(); + } + }; + exports.ThrottlerStorageService = ThrottlerStorageService; + exports.ThrottlerStorageService = ThrottlerStorageService = __decorate15([ + (0, common_1.Injectable)() + ], ThrottlerStorageService); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.providers.js +var require_throttler_providers = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.providers.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getStorageToken = exports.getOptionsToken = exports.ThrottlerStorageProvider = void 0; + exports.createThrottlerProviders = createThrottlerProviders; + var throttler_storage_interface_1 = require_throttler_storage_interface(); + var throttler_constants_1 = require_throttler_constants(); + var throttler_service_1 = require_throttler_service(); + function createThrottlerProviders(options) { + return [ + { + provide: throttler_constants_1.THROTTLER_OPTIONS, + useValue: options + } + ]; + } + __name(createThrottlerProviders, "createThrottlerProviders"); + exports.ThrottlerStorageProvider = { + provide: throttler_storage_interface_1.ThrottlerStorage, + useFactory: /* @__PURE__ */ __name((options) => { + return !Array.isArray(options) && options.storage ? options.storage : new throttler_service_1.ThrottlerStorageService(); + }, "useFactory"), + inject: [throttler_constants_1.THROTTLER_OPTIONS] + }; + var getOptionsToken = /* @__PURE__ */ __name(() => throttler_constants_1.THROTTLER_OPTIONS, "getOptionsToken"); + exports.getOptionsToken = getOptionsToken; + var getStorageToken = /* @__PURE__ */ __name(() => throttler_storage_interface_1.ThrottlerStorage, "getStorageToken"); + exports.getStorageToken = getStorageToken; + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.decorator.js +var require_throttler_decorator = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.decorator.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.InjectThrottlerStorage = exports.InjectThrottlerOptions = exports.SkipThrottle = exports.Throttle = void 0; + var common_1 = (init_common(), __toCommonJS(common_exports)); + var throttler_constants_1 = require_throttler_constants(); + var throttler_providers_1 = require_throttler_providers(); + function setThrottlerMetadata(target, options) { + for (const name in options) { + Reflect.defineMetadata(throttler_constants_1.THROTTLER_TTL + name, options[name].ttl, target); + Reflect.defineMetadata(throttler_constants_1.THROTTLER_LIMIT + name, options[name].limit, target); + Reflect.defineMetadata(throttler_constants_1.THROTTLER_BLOCK_DURATION + name, options[name].blockDuration, target); + Reflect.defineMetadata(throttler_constants_1.THROTTLER_TRACKER + name, options[name].getTracker, target); + Reflect.defineMetadata(throttler_constants_1.THROTTLER_KEY_GENERATOR + name, options[name].generateKey, target); + } + } + __name(setThrottlerMetadata, "setThrottlerMetadata"); + var Throttle3 = /* @__PURE__ */ __name((options) => { + return (target, propertyKey, descriptor) => { + if (descriptor) { + setThrottlerMetadata(descriptor.value, options); + return descriptor; + } + setThrottlerMetadata(target, options); + return target; + }; + }, "Throttle"); + exports.Throttle = Throttle3; + var SkipThrottle = /* @__PURE__ */ __name((skip = { default: true }) => { + return (target, propertyKey, descriptor) => { + var _a; + const reflectionTarget = (_a = descriptor === null || descriptor === void 0 ? void 0 : descriptor.value) !== null && _a !== void 0 ? _a : target; + for (const key in skip) { + Reflect.defineMetadata(throttler_constants_1.THROTTLER_SKIP + key, skip[key], reflectionTarget); + } + return descriptor !== null && descriptor !== void 0 ? descriptor : target; + }; + }, "SkipThrottle"); + exports.SkipThrottle = SkipThrottle; + var InjectThrottlerOptions = /* @__PURE__ */ __name(() => (0, common_1.Inject)((0, throttler_providers_1.getOptionsToken)()), "InjectThrottlerOptions"); + exports.InjectThrottlerOptions = InjectThrottlerOptions; + var InjectThrottlerStorage = /* @__PURE__ */ __name(() => (0, common_1.Inject)((0, throttler_providers_1.getStorageToken)()), "InjectThrottlerStorage"); + exports.InjectThrottlerStorage = InjectThrottlerStorage; + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.exception.js +var require_throttler_exception = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.exception.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ThrottlerException = exports.throttlerMessage = void 0; + var common_1 = (init_common(), __toCommonJS(common_exports)); + exports.throttlerMessage = "ThrottlerException: Too Many Requests"; + var ThrottlerException = class extends common_1.HttpException { + static { + __name(this, "ThrottlerException"); + } + constructor(message) { + super(`${message || exports.throttlerMessage}`, common_1.HttpStatus.TOO_MANY_REQUESTS); + } + }; + exports.ThrottlerException = ThrottlerException; + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/hash.js +var require_hash = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/hash.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sha256 = sha256; + var crypto = __require("node:crypto"); + function sha256(text) { + return crypto.createHash("sha256").update(text).digest("hex"); + } + __name(sha256, "sha256"); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.guard.js +var require_throttler_guard = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.guard.js"(exports) { + "use strict"; + var __decorate15 = exports && exports.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata14 = exports && exports.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param8 = exports && exports.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + var ThrottlerGuard_1; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ThrottlerGuard = void 0; + var common_1 = (init_common(), __toCommonJS(common_exports)); + var core_1 = (init_core(), __toCommonJS(core_exports)); + var hash_1 = require_hash(); + var ip_1 = require_ip(); + var throttler_storage_interface_1 = require_throttler_storage_interface(); + var throttler_constants_1 = require_throttler_constants(); + var throttler_decorator_1 = require_throttler_decorator(); + var throttler_exception_1 = require_throttler_exception(); + var ThrottlerGuard2 = ThrottlerGuard_1 = class ThrottlerGuard { + static { + __name(this, "ThrottlerGuard"); + } + constructor(options, storageService, reflector) { + this.options = options; + this.storageService = storageService; + this.reflector = reflector; + this.headerPrefix = "X-RateLimit"; + this.logger = new common_1.Logger(ThrottlerGuard_1.name); + this.errorMessage = throttler_exception_1.throttlerMessage; + this.ipv6SubnetPrefix = ip_1.DEFAULT_IPV6_SUBNET_PREFIX; + } + async onModuleInit() { + var _a, _b, _c; + var _d, _e; + this.throttlers = (Array.isArray(this.options) ? this.options : this.options.throttlers).sort((first, second) => { + if (typeof first.ttl === "function") { + return 1; + } + if (typeof second.ttl === "function") { + return 0; + } + return first.ttl - second.ttl; + }).map((opt) => { + var _a2; + return Object.assign(Object.assign({}, opt), { name: (_a2 = opt.name) !== null && _a2 !== void 0 ? _a2 : "default" }); + }); + if (!this.throttlers.length) { + this.logger.warn("No throttlers are configured, so no request is limited. Provide at least one entry to ThrottlerModule.forRoot() or return one from ThrottlerModule.forRootAsync()."); + } + if (Array.isArray(this.options)) { + this.commonOptions = {}; + } else { + this.commonOptions = { + skipIf: this.options.skipIf, + ignoreUserAgents: this.options.ignoreUserAgents, + getTracker: this.options.getTracker, + generateKey: this.options.generateKey, + setHeaders: this.options.setHeaders + }; + this.ipv6SubnetPrefix = (_a = this.options.ipv6SubnetPrefix) !== null && _a !== void 0 ? _a : ip_1.DEFAULT_IPV6_SUBNET_PREFIX; + } + (_b = (_d = this.commonOptions).getTracker) !== null && _b !== void 0 ? _b : _d.getTracker = this.getTracker.bind(this); + (_c = (_e = this.commonOptions).generateKey) !== null && _c !== void 0 ? _c : _e.generateKey = this.generateKey.bind(this); + } + async canActivate(context) { + var _a; + const handler = context.getHandler(); + const classRef = context.getClass(); + if (await this.shouldSkip(context)) { + return true; + } + const continues = []; + for (const namedThrottler of this.throttlers) { + const skip = this.reflector.getAllAndOverride(throttler_constants_1.THROTTLER_SKIP + namedThrottler.name, [ + handler, + classRef + ]); + const skipIf = namedThrottler.skipIf || this.commonOptions.skipIf; + if (skip || (skipIf === null || skipIf === void 0 ? void 0 : skipIf(context))) { + continues.push(true); + continue; + } + const routeOrClassLimit = this.reflector.getAllAndOverride(throttler_constants_1.THROTTLER_LIMIT + namedThrottler.name, [handler, classRef]); + const routeOrClassTtl = this.reflector.getAllAndOverride(throttler_constants_1.THROTTLER_TTL + namedThrottler.name, [handler, classRef]); + const routeOrClassBlockDuration = this.reflector.getAllAndOverride(throttler_constants_1.THROTTLER_BLOCK_DURATION + namedThrottler.name, [handler, classRef]); + const routeOrClassGetTracker = this.reflector.getAllAndOverride(throttler_constants_1.THROTTLER_TRACKER + namedThrottler.name, [handler, classRef]); + const routeOrClassGetKeyGenerator = this.reflector.getAllAndOverride(throttler_constants_1.THROTTLER_KEY_GENERATOR + namedThrottler.name, [handler, classRef]); + const limit = this.toNumber(await this.resolveValue(context, routeOrClassLimit !== null && routeOrClassLimit !== void 0 ? routeOrClassLimit : namedThrottler.limit), "limit", namedThrottler.name); + const ttl = this.toNumber(await this.resolveValue(context, routeOrClassTtl !== null && routeOrClassTtl !== void 0 ? routeOrClassTtl : namedThrottler.ttl), "ttl", namedThrottler.name); + const blockDuration = this.toNumber(await this.resolveValue(context, (_a = routeOrClassBlockDuration !== null && routeOrClassBlockDuration !== void 0 ? routeOrClassBlockDuration : namedThrottler.blockDuration) !== null && _a !== void 0 ? _a : ttl), "blockDuration", namedThrottler.name); + const getTracker = routeOrClassGetTracker || namedThrottler.getTracker || this.commonOptions.getTracker; + const generateKey = routeOrClassGetKeyGenerator || namedThrottler.generateKey || this.commonOptions.generateKey; + continues.push(await this.handleRequest({ + context, + limit, + ttl, + throttler: namedThrottler, + blockDuration, + getTracker, + generateKey + })); + } + return continues.every((cont) => cont); + } + async shouldSkip(_context) { + return false; + } + async handleRequest(requestProps) { + var _a, _b, _c; + const { context, limit, ttl, throttler, blockDuration, getTracker, generateKey } = requestProps; + const { req, res } = this.getRequestResponse(context); + const ignoreUserAgents = (_a = throttler.ignoreUserAgents) !== null && _a !== void 0 ? _a : this.commonOptions.ignoreUserAgents; + if (Array.isArray(ignoreUserAgents)) { + for (const pattern of ignoreUserAgents) { + if (pattern.test(req.headers["user-agent"])) { + return true; + } + } + } + const tracker = await getTracker(req, context); + const key = generateKey(context, tracker, throttler.name); + const { totalHits, timeToExpire, isBlocked, timeToBlockExpire } = await this.storageService.increment(key, ttl, limit, blockDuration, throttler.name); + const getThrottlerSuffix = /* @__PURE__ */ __name((name) => name === "default" ? "" : `-${name}`, "getThrottlerSuffix"); + const setHeaders = (_c = (_b = throttler.setHeaders) !== null && _b !== void 0 ? _b : this.commonOptions.setHeaders) !== null && _c !== void 0 ? _c : true; + if (isBlocked) { + if (setHeaders) { + this.setResponseHeader(res, `Retry-After${getThrottlerSuffix(throttler.name)}`, timeToBlockExpire); + } + await this.throwThrottlingException(context, { + limit, + ttl, + key, + tracker, + totalHits, + timeToExpire, + isBlocked, + timeToBlockExpire + }); + } + if (setHeaders) { + this.setResponseHeader(res, `${this.headerPrefix}-Limit${getThrottlerSuffix(throttler.name)}`, limit); + this.setResponseHeader(res, `${this.headerPrefix}-Remaining${getThrottlerSuffix(throttler.name)}`, Math.max(0, limit - totalHits)); + this.setResponseHeader(res, `${this.headerPrefix}-Reset${getThrottlerSuffix(throttler.name)}`, timeToExpire); + } + return true; + } + async getTracker(req) { + return (0, ip_1.normalizeIp)(req.ip, this.ipv6SubnetPrefix); + } + setResponseHeader(res, name, value) { + if (typeof res.header === "function") { + res.header(name, value); + } else if (typeof res.setHeader === "function") { + res.setHeader(name, value); + } + } + getRequestResponse(context) { + const http = context.switchToHttp(); + return { req: http.getRequest(), res: http.getResponse() }; + } + generateKey(context, suffix, name) { + const prefix = `${context.getClass().name}-${context.getHandler().name}-${name}`; + return (0, hash_1.sha256)(`${prefix}-${suffix}`); + } + async throwThrottlingException(context, throttlerLimitDetail) { + throw new throttler_exception_1.ThrottlerException(await this.getErrorMessage(context, throttlerLimitDetail)); + } + async getErrorMessage(context, throttlerLimitDetail) { + if (!Array.isArray(this.options)) { + if (!this.options.errorMessage) + return this.errorMessage; + return typeof this.options.errorMessage === "function" ? this.options.errorMessage(context, throttlerLimitDetail) : this.options.errorMessage; + } + return this.errorMessage; + } + toNumber(value, option, throttlerName) { + const number = typeof value === "string" && value.trim() !== "" ? Number(value) : value; + if (typeof number !== "number" || Number.isNaN(number)) { + throw new Error(`Invalid "${option}" for the "${throttlerName}" throttler: expected a number, got ${JSON.stringify(value)}.`); + } + return number; + } + async resolveValue(context, resolvableValue) { + return typeof resolvableValue === "function" ? resolvableValue(context) : resolvableValue; + } + }; + exports.ThrottlerGuard = ThrottlerGuard2; + exports.ThrottlerGuard = ThrottlerGuard2 = ThrottlerGuard_1 = __decorate15([ + (0, common_1.Injectable)(), + __param8(0, (0, throttler_decorator_1.InjectThrottlerOptions)()), + __param8(1, (0, throttler_decorator_1.InjectThrottlerStorage)()), + __metadata14("design:paramtypes", [Object, Object, core_1.Reflector]) + ], ThrottlerGuard2); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.guard.interface.js +var require_throttler_guard_interface = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.guard.interface.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.module.js +var require_throttler_module = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/throttler.module.js"(exports) { + "use strict"; + var __decorate15 = exports && exports.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var ThrottlerModule_1; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ThrottlerModule = void 0; + var common_1 = (init_common(), __toCommonJS(common_exports)); + var throttler_constants_1 = require_throttler_constants(); + var throttler_providers_1 = require_throttler_providers(); + var ThrottlerModule2 = ThrottlerModule_1 = class ThrottlerModule { + static { + __name(this, "ThrottlerModule"); + } + static forRoot(options = []) { + const providers = [...(0, throttler_providers_1.createThrottlerProviders)(options), throttler_providers_1.ThrottlerStorageProvider]; + return { + module: ThrottlerModule_1, + providers, + exports: providers + }; + } + static forRootAsync(options) { + const providers = [...this.createAsyncProviders(options), throttler_providers_1.ThrottlerStorageProvider]; + return { + module: ThrottlerModule_1, + imports: options.imports || [], + providers, + exports: providers + }; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + return [this.createAsyncOptionsProvider(options)]; + } + return [ + this.createAsyncOptionsProvider(options), + { + provide: options.useClass, + useClass: options.useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: throttler_constants_1.THROTTLER_OPTIONS, + useFactory: options.useFactory, + inject: options.inject || [] + }; + } + return { + provide: throttler_constants_1.THROTTLER_OPTIONS, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => await optionsFactory.createThrottlerOptions(), "useFactory"), + inject: [options.useExisting || options.useClass] + }; + } + }; + exports.ThrottlerModule = ThrottlerModule2; + exports.ThrottlerModule = ThrottlerModule2 = ThrottlerModule_1 = __decorate15([ + (0, common_1.Global)(), + (0, common_1.Module)({}) + ], ThrottlerModule2); + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/utilities.js +var require_utilities = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/utilities.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.weeks = exports.days = exports.hours = exports.minutes = exports.seconds = void 0; + var seconds = /* @__PURE__ */ __name((howMany) => howMany * 1e3, "seconds"); + exports.seconds = seconds; + var minutes = /* @__PURE__ */ __name((howMany) => 60 * howMany * (0, exports.seconds)(1), "minutes"); + exports.minutes = minutes; + var hours = /* @__PURE__ */ __name((howMany) => 60 * howMany * (0, exports.minutes)(1), "hours"); + exports.hours = hours; + var days = /* @__PURE__ */ __name((howMany) => 24 * howMany * (0, exports.hours)(1), "days"); + exports.days = days; + var weeks = /* @__PURE__ */ __name((howMany) => 7 * howMany * (0, exports.days)(1), "weeks"); + exports.weeks = weeks; + } +}); + +// ../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/index.js +var require_dist = __commonJS({ + "../../node_modules/.pnpm/@nestjs+throttler@6.7.1_@ne_8947d8974bd7ad1fe5135dd2888a680f/node_modules/@nestjs/throttler/dist/index.js"(exports) { + "use strict"; + var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar = exports && exports.__exportStar || function(m, exports2) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getStorageToken = exports.getOptionsToken = void 0; + __exportStar(require_ip(), exports); + __exportStar(require_throttler_module_options_interface(), exports); + __exportStar(require_throttler_storage_interface(), exports); + __exportStar(require_throttler_decorator(), exports); + __exportStar(require_throttler_exception(), exports); + __exportStar(require_throttler_guard(), exports); + __exportStar(require_throttler_guard_interface(), exports); + __exportStar(require_throttler_module(), exports); + var throttler_providers_1 = require_throttler_providers(); + Object.defineProperty(exports, "getOptionsToken", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttler_providers_1.getOptionsToken; + }, "get") }); + Object.defineProperty(exports, "getStorageToken", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttler_providers_1.getStorageToken; + }, "get") }); + __exportStar(require_throttler_service(), exports); + __exportStar(require_utilities(), exports); + } +}); + +// dist/main.js +init_core(); +var import_cookie_parser = __toESM(require_cookie_parser(), 1); + +// ../../node_modules/.pnpm/helmet@8.3.0/node_modules/helmet/index.mjs +var dashify = /* @__PURE__ */ __name((str) => str.replace(/[A-Z]/g, (capitalLetter) => "-" + capitalLetter.toLowerCase()), "dashify"); +var errify = /* @__PURE__ */ __name((err) => err instanceof Error ? err : new Error(String(err)), "errify"); +var isString = /* @__PURE__ */ __name((value) => typeof value === "string", "isString"); +var throwErrorIfExists = /* @__PURE__ */ __name((err) => { + if (err) throw err; +}, "throwErrorIfExists"); +var dangerouslyDisableDefaultSrc = /* @__PURE__ */ Symbol("dangerouslyDisableDefaultSrc"); +var SHOULD_BE_QUOTED = /* @__PURE__ */ new Set(["none", "self", "strict-dynamic", "report-sample", "inline-speculation-rules", "unsafe-inline", "unsafe-eval", "unsafe-hashes", "wasm-unsafe-eval"]); +var getDefaultDirectives = /* @__PURE__ */ __name(() => ({ + "default-src": ["'self'"], + "base-uri": ["'self'"], + "font-src": ["'self'", "https:", "data:"], + "form-action": ["'self'"], + "frame-ancestors": ["'self'"], + "img-src": ["'self'", "data:"], + "object-src": ["'none'"], + "script-src": ["'self'"], + "script-src-attr": ["'none'"], + "style-src": ["'self'", "https:", "'unsafe-inline'"], + "upgrade-insecure-requests": [] +}), "getDefaultDirectives"); +var parseDirectiveName = /* @__PURE__ */ __name((rawDirectiveName) => { + if (rawDirectiveName.length === 0 || !/^[a-z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(rawDirectiveName)) { + throw new Error(`Content-Security-Policy received an invalid directive name ${JSON.stringify(rawDirectiveName)}`); + } + return dashify(rawDirectiveName); +}, "parseDirectiveName"); +var getDirectiveValueValidationError = /* @__PURE__ */ __name((directiveName, directiveValue) => /;|,/.test(directiveValue) ? new Error(`Content-Security-Policy received an invalid directive value for ${JSON.stringify(directiveName)}`) : null, "getDirectiveValueValidationError"); +var getDirectiveValueEntryValidationError = /* @__PURE__ */ __name((directiveName, directiveValueEntry) => SHOULD_BE_QUOTED.has(directiveValueEntry) || directiveValueEntry.startsWith("nonce-") || directiveValueEntry.startsWith("sha256-") || directiveValueEntry.startsWith("sha384-") || directiveValueEntry.startsWith("sha512-") ? new Error(`Content-Security-Policy received an invalid directive value for ${JSON.stringify(directiveName)}. ${JSON.stringify(directiveValueEntry)} should be quoted`) : null, "getDirectiveValueEntryValidationError"); +var stringifyDirectiveValue = /* @__PURE__ */ __name((directiveValue) => { + if (Array.isArray(directiveValue)) { + return directiveValue.every(isString) ? directiveValue.join(" ") : null; + } + if (directiveValue instanceof Set) { + return stringifyDirectiveValue(Array.from(directiveValue)); + } + return null; +}, "stringifyDirectiveValue"); +var parseDirectives = /* @__PURE__ */ __name(({ useDefaults = true, directives: rawDirectives = {} }) => { + const result = new Map(useDefaults ? Object.entries(getDefaultDirectives()) : []); + let hasDisabledDefaultSrc = false; + const directiveNamesSeen = /* @__PURE__ */ new Set(); + for (const rawDirectiveName in rawDirectives) { + if (!Object.hasOwn(rawDirectives, rawDirectiveName)) { + continue; + } + const directiveName = parseDirectiveName(rawDirectiveName); + if (directiveNamesSeen.has(directiveName)) { + throw new Error(`Content-Security-Policy received a duplicate directive ${JSON.stringify(directiveName)}`); + } + directiveNamesSeen.add(directiveName); + const rawDirectiveValue = rawDirectives[rawDirectiveName]; + let directiveValue; + if (rawDirectiveValue === null) { + if (directiveName === "default-src") { + throw new Error("Content-Security-Policy needs a default-src but it was set to `null`. If you really want to disable it, set it to `contentSecurityPolicy.dangerouslyDisableDefaultSrc`."); + } + result.delete(directiveName); + continue; + } else if (typeof rawDirectiveValue === "string") { + directiveValue = [rawDirectiveValue]; + } else if (rawDirectiveValue === dangerouslyDisableDefaultSrc) { + if (directiveName === "default-src") { + hasDisabledDefaultSrc = true; + result.delete(directiveName); + continue; + } else { + throw new Error(`Content-Security-Policy: tried to disable ${JSON.stringify(directiveName)} as if it were default-src; simply omit the key`); + } + } else if (rawDirectiveValue) { + directiveValue = rawDirectiveValue; + } else { + throw new Error(`Content-Security-Policy received an invalid directive value for ${JSON.stringify(directiveName)}`); + } + for (const element of directiveValue) { + if (typeof element !== "string") continue; + throwErrorIfExists(getDirectiveValueValidationError(directiveName, element) ?? getDirectiveValueEntryValidationError(directiveName, element)); + } + result.set(directiveName, directiveValue); + } + if (!result.size) { + throw new Error("Content-Security-Policy has no directives. Either set some or disable the header"); + } + if (!result.has("default-src") && !hasDisabledDefaultSrc) { + throw new Error("Content-Security-Policy needs a default-src but none was provided. If you really want to disable it, set it to `contentSecurityPolicy.dangerouslyDisableDefaultSrc`."); + } + let stringResult = ""; + let shouldUseStringResult = true; + for (const [directiveName, directiveValue] of result) { + const directiveValueString = stringifyDirectiveValue(directiveValue); + if (directiveValueString === null) { + shouldUseStringResult = false; + break; + } else { + if (stringResult) stringResult += ";"; + stringResult += directiveValueString ? `${directiveName} ${directiveValueString}` : directiveName; + } + } + return shouldUseStringResult ? stringResult : result; +}, "parseDirectives"); +function getHeaderValue(req, res, normalizedDirectives) { + const result = []; + for (const [directiveName, rawDirectiveValue] of normalizedDirectives) { + let directiveValue = ""; + for (const element of rawDirectiveValue) { + if (typeof element === "function") { + let newElement; + try { + newElement = element(req, res); + } catch (err2) { + return errify(err2); + } + const err = getDirectiveValueEntryValidationError(directiveName, newElement); + if (err) return err; + directiveValue += " " + newElement; + } else { + directiveValue += " " + element; + } + } + if (directiveValue) { + const err = getDirectiveValueValidationError(directiveName, directiveValue); + if (err) return err; + result.push(`${directiveName}${directiveValue}`); + } else { + result.push(directiveName); + } + } + return result.join(";"); +} +__name(getHeaderValue, "getHeaderValue"); +var contentSecurityPolicy = /* @__PURE__ */ __name(function contentSecurityPolicy2(options = {}) { + const headerName = options.reportOnly ? "Content-Security-Policy-Report-Only" : "Content-Security-Policy"; + const parsedDirectives = parseDirectives(options); + if (typeof parsedDirectives === "string") { + return /* @__PURE__ */ __name(function contentSecurityPolicyMiddleware(_req, res, next) { + res.setHeader(headerName, parsedDirectives); + next(); + }, "contentSecurityPolicyMiddleware"); + } + return /* @__PURE__ */ __name(function contentSecurityPolicyMiddleware(req, res, next) { + const result = getHeaderValue(req, res, parsedDirectives); + if (result instanceof Error) { + next(result); + } else { + res.setHeader(headerName, result); + next(); + } + }, "contentSecurityPolicyMiddleware"); +}, "contentSecurityPolicy"); +contentSecurityPolicy.getDefaultDirectives = getDefaultDirectives; +contentSecurityPolicy.dangerouslyDisableDefaultSrc = dangerouslyDisableDefaultSrc; +var ALLOWED_POLICIES$2 = /* @__PURE__ */ new Set(["require-corp", "credentialless", "unsafe-none"]); +function getHeaderValueFromOptions$6({ policy = "require-corp" }) { + if (ALLOWED_POLICIES$2.has(policy)) { + return policy; + } else { + throw new Error(`Cross-Origin-Embedder-Policy does not support the ${JSON.stringify(policy)} policy`); + } +} +__name(getHeaderValueFromOptions$6, "getHeaderValueFromOptions$6"); +function crossOriginEmbedderPolicy(options = {}) { + const headerValue = getHeaderValueFromOptions$6(options); + return /* @__PURE__ */ __name(function crossOriginEmbedderPolicyMiddleware(_req, res, next) { + res.setHeader("Cross-Origin-Embedder-Policy", headerValue); + next(); + }, "crossOriginEmbedderPolicyMiddleware"); +} +__name(crossOriginEmbedderPolicy, "crossOriginEmbedderPolicy"); +var ALLOWED_POLICIES$1 = /* @__PURE__ */ new Set(["same-origin", "same-origin-allow-popups", "noopener-allow-popups", "unsafe-none"]); +function getHeaderValueFromOptions$5({ policy = "same-origin" }) { + if (ALLOWED_POLICIES$1.has(policy)) { + return policy; + } else { + throw new Error(`Cross-Origin-Opener-Policy does not support the ${JSON.stringify(policy)} policy`); + } +} +__name(getHeaderValueFromOptions$5, "getHeaderValueFromOptions$5"); +function crossOriginOpenerPolicy(options = {}) { + const headerValue = getHeaderValueFromOptions$5(options); + return /* @__PURE__ */ __name(function crossOriginOpenerPolicyMiddleware(_req, res, next) { + res.setHeader("Cross-Origin-Opener-Policy", headerValue); + next(); + }, "crossOriginOpenerPolicyMiddleware"); +} +__name(crossOriginOpenerPolicy, "crossOriginOpenerPolicy"); +var ALLOWED_POLICIES = /* @__PURE__ */ new Set(["same-origin", "same-site", "cross-origin"]); +function getHeaderValueFromOptions$4({ policy = "same-origin" }) { + if (ALLOWED_POLICIES.has(policy)) { + return policy; + } else { + throw new Error(`Cross-Origin-Resource-Policy does not support the ${JSON.stringify(policy)} policy`); + } +} +__name(getHeaderValueFromOptions$4, "getHeaderValueFromOptions$4"); +function crossOriginResourcePolicy(options = {}) { + const headerValue = getHeaderValueFromOptions$4(options); + return /* @__PURE__ */ __name(function crossOriginResourcePolicyMiddleware(_req, res, next) { + res.setHeader("Cross-Origin-Resource-Policy", headerValue); + next(); + }, "crossOriginResourcePolicyMiddleware"); +} +__name(crossOriginResourcePolicy, "crossOriginResourcePolicy"); +function originAgentCluster() { + return /* @__PURE__ */ __name(function originAgentClusterMiddleware(_req, res, next) { + res.setHeader("Origin-Agent-Cluster", "?1"); + next(); + }, "originAgentClusterMiddleware"); +} +__name(originAgentCluster, "originAgentCluster"); +var ALLOWED_TOKENS = /* @__PURE__ */ new Set(["no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url", ""]); +function getHeaderValueFromOptions$3({ policy = ["no-referrer"] }) { + const tokens = typeof policy === "string" ? [policy] : policy; + if (tokens.length === 0) { + throw new Error("Referrer-Policy received no policy tokens"); + } + const tokensSeen = /* @__PURE__ */ new Set(); + tokens.forEach((token) => { + if (!ALLOWED_TOKENS.has(token)) { + throw new Error(`Referrer-Policy received an unexpected policy token ${JSON.stringify(token)}`); + } else if (tokensSeen.has(token)) { + throw new Error(`Referrer-Policy received a duplicate policy token ${JSON.stringify(token)}`); + } + tokensSeen.add(token); + }); + return tokens.join(","); +} +__name(getHeaderValueFromOptions$3, "getHeaderValueFromOptions$3"); +function referrerPolicy(options = {}) { + const headerValue = getHeaderValueFromOptions$3(options); + return /* @__PURE__ */ __name(function referrerPolicyMiddleware(_req, res, next) { + res.setHeader("Referrer-Policy", headerValue); + next(); + }, "referrerPolicyMiddleware"); +} +__name(referrerPolicy, "referrerPolicy"); +var DEFAULT_MAX_AGE = 365 * 24 * 60 * 60; +function parseMaxAge(value = DEFAULT_MAX_AGE) { + if (value >= 0 && Number.isFinite(value)) { + return Math.floor(value); + } else { + throw new Error(`Strict-Transport-Security: ${JSON.stringify(value)} is not a valid value for maxAge. Please choose a positive integer.`); + } +} +__name(parseMaxAge, "parseMaxAge"); +function getHeaderValueFromOptions$2(options) { + if ("maxage" in options) { + throw new Error("Strict-Transport-Security received an unsupported property, `maxage`. Did you mean to pass `maxAge`?"); + } + if ("includeSubdomains" in options) { + throw new Error('Strict-Transport-Security middleware should use `includeSubDomains` instead of `includeSubdomains`. (The correct one has an uppercase "D".)'); + } + const directives = [`max-age=${parseMaxAge(options.maxAge)}`]; + if (options.includeSubDomains === void 0 || options.includeSubDomains) { + directives.push("includeSubDomains"); + } + if (options.preload) { + directives.push("preload"); + } + return directives.join("; "); +} +__name(getHeaderValueFromOptions$2, "getHeaderValueFromOptions$2"); +function strictTransportSecurity(options = {}) { + const headerValue = getHeaderValueFromOptions$2(options); + return /* @__PURE__ */ __name(function strictTransportSecurityMiddleware(_req, res, next) { + res.setHeader("Strict-Transport-Security", headerValue); + next(); + }, "strictTransportSecurityMiddleware"); +} +__name(strictTransportSecurity, "strictTransportSecurity"); +function xContentTypeOptions() { + return /* @__PURE__ */ __name(function xContentTypeOptionsMiddleware(_req, res, next) { + res.setHeader("X-Content-Type-Options", "nosniff"); + next(); + }, "xContentTypeOptionsMiddleware"); +} +__name(xContentTypeOptions, "xContentTypeOptions"); +function xDnsPrefetchControl(options = {}) { + const headerValue = options.allow ? "on" : "off"; + return /* @__PURE__ */ __name(function xDnsPrefetchControlMiddleware(_req, res, next) { + res.setHeader("X-DNS-Prefetch-Control", headerValue); + next(); + }, "xDnsPrefetchControlMiddleware"); +} +__name(xDnsPrefetchControl, "xDnsPrefetchControl"); +function xDownloadOptions() { + return /* @__PURE__ */ __name(function xDownloadOptionsMiddleware(_req, res, next) { + res.setHeader("X-Download-Options", "noopen"); + next(); + }, "xDownloadOptionsMiddleware"); +} +__name(xDownloadOptions, "xDownloadOptions"); +function getHeaderValueFromOptions$1({ action = "sameorigin" }) { + const normalizedAction = typeof action === "string" ? action.toUpperCase() : action; + switch (normalizedAction) { + case "SAME-ORIGIN": + return "SAMEORIGIN"; + case "DENY": + case "SAMEORIGIN": + return normalizedAction; + default: + throw new Error(`X-Frame-Options received an invalid action ${JSON.stringify(action)}`); + } +} +__name(getHeaderValueFromOptions$1, "getHeaderValueFromOptions$1"); +function xFrameOptions(options = {}) { + const headerValue = getHeaderValueFromOptions$1(options); + return /* @__PURE__ */ __name(function xFrameOptionsMiddleware(_req, res, next) { + res.setHeader("X-Frame-Options", headerValue); + next(); + }, "xFrameOptionsMiddleware"); +} +__name(xFrameOptions, "xFrameOptions"); +var ALLOWED_PERMITTED_POLICIES = /* @__PURE__ */ new Set(["none", "master-only", "by-content-type", "all"]); +function getHeaderValueFromOptions({ permittedPolicies = "none" }) { + if (ALLOWED_PERMITTED_POLICIES.has(permittedPolicies)) { + return permittedPolicies; + } else { + throw new Error(`X-Permitted-Cross-Domain-Policies does not support ${JSON.stringify(permittedPolicies)}`); + } +} +__name(getHeaderValueFromOptions, "getHeaderValueFromOptions"); +function xPermittedCrossDomainPolicies(options = {}) { + const headerValue = getHeaderValueFromOptions(options); + return /* @__PURE__ */ __name(function xPermittedCrossDomainPoliciesMiddleware(_req, res, next) { + res.setHeader("X-Permitted-Cross-Domain-Policies", headerValue); + next(); + }, "xPermittedCrossDomainPoliciesMiddleware"); +} +__name(xPermittedCrossDomainPolicies, "xPermittedCrossDomainPolicies"); +function xPoweredBy() { + return /* @__PURE__ */ __name(function xPoweredByMiddleware(_req, res, next) { + res.removeHeader("X-Powered-By"); + next(); + }, "xPoweredByMiddleware"); +} +__name(xPoweredBy, "xPoweredBy"); +function xXssProtection() { + return /* @__PURE__ */ __name(function xXssProtectionMiddleware(_req, res, next) { + res.setHeader("X-XSS-Protection", "0"); + next(); + }, "xXssProtectionMiddleware"); +} +__name(xXssProtection, "xXssProtection"); +function getMiddlewareFunctionsFromOptions(options) { + const result = []; + switch (options.contentSecurityPolicy) { + case void 0: + case true: + result.push(contentSecurityPolicy()); + break; + case false: + break; + default: + result.push(contentSecurityPolicy(options.contentSecurityPolicy)); + break; + } + switch (options.crossOriginEmbedderPolicy) { + case void 0: + case false: + break; + case true: + result.push(crossOriginEmbedderPolicy()); + break; + default: + result.push(crossOriginEmbedderPolicy(options.crossOriginEmbedderPolicy)); + break; + } + switch (options.crossOriginOpenerPolicy) { + case void 0: + case true: + result.push(crossOriginOpenerPolicy()); + break; + case false: + break; + default: + result.push(crossOriginOpenerPolicy(options.crossOriginOpenerPolicy)); + break; + } + switch (options.crossOriginResourcePolicy) { + case void 0: + case true: + result.push(crossOriginResourcePolicy()); + break; + case false: + break; + default: + result.push(crossOriginResourcePolicy(options.crossOriginResourcePolicy)); + break; + } + switch (options.originAgentCluster) { + case void 0: + case true: + result.push(originAgentCluster()); + break; + case false: + break; + default: + console.warn("Origin-Agent-Cluster does not take options. Remove the property to silence this warning."); + result.push(originAgentCluster()); + break; + } + switch (options.referrerPolicy) { + case void 0: + case true: + result.push(referrerPolicy()); + break; + case false: + break; + default: + result.push(referrerPolicy(options.referrerPolicy)); + break; + } + if ("strictTransportSecurity" in options && "hsts" in options) { + throw new Error("Strict-Transport-Security option was specified twice. Remove the `hsts` option to fix this error."); + } + const strictTransportSecurityOption = options.strictTransportSecurity ?? options.hsts; + switch (strictTransportSecurityOption) { + case void 0: + case true: + result.push(strictTransportSecurity()); + break; + case false: + break; + default: + result.push(strictTransportSecurity(strictTransportSecurityOption)); + break; + } + if ("xContentTypeOptions" in options && "noSniff" in options) { + throw new Error("X-Content-Type-Options option was specified twice. Remove the `noSniff` option to fix this error."); + } + const xContentTypeOptionsOption = options.xContentTypeOptions ?? options.noSniff; + switch (xContentTypeOptionsOption) { + case void 0: + case true: + result.push(xContentTypeOptions()); + break; + case false: + break; + default: + console.warn("X-Content-Type-Options does not take options. Remove the property to silence this warning."); + result.push(xContentTypeOptions()); + break; + } + if ("xDnsPrefetchControl" in options && "dnsPrefetchControl" in options) { + throw new Error("X-DNS-Prefetch-Control option was specified twice. Remove the `dnsPrefetchControl` option to fix this error."); + } + const xDnsPrefetchControlOption = options.xDnsPrefetchControl ?? options.dnsPrefetchControl; + switch (xDnsPrefetchControlOption) { + case void 0: + case true: + result.push(xDnsPrefetchControl()); + break; + case false: + break; + default: + result.push(xDnsPrefetchControl(xDnsPrefetchControlOption)); + break; + } + if ("xDownloadOptions" in options && "ieNoOpen" in options) { + throw new Error("X-Download-Options option was specified twice. Remove the `ieNoOpen` option to fix this error."); + } + const xDownloadOptionsOption = options.xDownloadOptions ?? options.ieNoOpen; + switch (xDownloadOptionsOption) { + case void 0: + case true: + result.push(xDownloadOptions()); + break; + case false: + break; + default: + console.warn("X-Download-Options does not take options. Remove the property to silence this warning."); + result.push(xDownloadOptions()); + break; + } + if ("xFrameOptions" in options && "frameguard" in options) { + throw new Error("X-Frame-Options option was specified twice. Remove the `frameguard` option to fix this error."); + } + const xFrameOptionsOption = options.xFrameOptions ?? options.frameguard; + switch (xFrameOptionsOption) { + case void 0: + case true: + result.push(xFrameOptions()); + break; + case false: + break; + default: + result.push(xFrameOptions(xFrameOptionsOption)); + break; + } + if ("xPermittedCrossDomainPolicies" in options && "permittedCrossDomainPolicies" in options) { + throw new Error("X-Permitted-Cross-Domain-Policies option was specified twice. Remove the `permittedCrossDomainPolicies` option to fix this error."); + } + const xPermittedCrossDomainPoliciesOption = options.xPermittedCrossDomainPolicies ?? options.permittedCrossDomainPolicies; + switch (xPermittedCrossDomainPoliciesOption) { + case void 0: + case true: + result.push(xPermittedCrossDomainPolicies()); + break; + case false: + break; + default: + result.push(xPermittedCrossDomainPolicies(xPermittedCrossDomainPoliciesOption)); + break; + } + if ("xPoweredBy" in options && "hidePoweredBy" in options) { + throw new Error("X-Powered-By option was specified twice. Remove the `hidePoweredBy` option to fix this error."); + } + const xPoweredByOption = options.xPoweredBy ?? options.hidePoweredBy; + switch (xPoweredByOption) { + case void 0: + case true: + result.push(xPoweredBy()); + break; + case false: + break; + default: + console.warn("X-Powered-By does not take options. Remove the property to silence this warning."); + result.push(xPoweredBy()); + break; + } + if ("xXssProtection" in options && "xssFilter" in options) { + throw new Error("X-XSS-Protection option was specified twice. Remove the `xssFilter` option to fix this error."); + } + const xXssProtectionOption = options.xXssProtection ?? options.xssFilter; + switch (xXssProtectionOption) { + case void 0: + case true: + result.push(xXssProtection()); + break; + case false: + break; + default: + console.warn("X-XSS-Protection does not take options. Remove the property to silence this warning."); + result.push(xXssProtection()); + break; + } + return result; +} +__name(getMiddlewareFunctionsFromOptions, "getMiddlewareFunctionsFromOptions"); +var helmet = Object.assign( + /* @__PURE__ */ __name(function helmet2(options = {}) { + if (options.constructor?.name === "IncomingMessage") { + throw new Error("It appears you have done something like `app.use(helmet)`, but it should be `app.use(helmet())`."); + } + const middlewareFunctions = getMiddlewareFunctionsFromOptions(options); + return /* @__PURE__ */ __name(function helmetMiddleware(req, res, next) { + let middlewareIndex = 0; + (/* @__PURE__ */ __name((function internalNext(err) { + if (err) { + next(err); + return; + } + const middlewareFunction = middlewareFunctions[middlewareIndex]; + if (middlewareFunction) { + middlewareIndex++; + middlewareFunction(req, res, internalNext); + } else { + next(); + } + }), "internalNext"))(); + }, "helmetMiddleware"); + }, "helmet"), + { + contentSecurityPolicy, + crossOriginEmbedderPolicy, + crossOriginOpenerPolicy, + crossOriginResourcePolicy, + originAgentCluster, + referrerPolicy, + strictTransportSecurity, + xContentTypeOptions, + xDnsPrefetchControl, + xDownloadOptions, + xFrameOptions, + xPermittedCrossDomainPolicies, + xPoweredBy, + xXssProtection, + // Legacy aliases + dnsPrefetchControl: xDnsPrefetchControl, + xssFilter: xXssProtection, + permittedCrossDomainPolicies: xPermittedCrossDomainPolicies, + ieNoOpen: xDownloadOptions, + noSniff: xContentTypeOptions, + frameguard: xFrameOptions, + hidePoweredBy: xPoweredBy, + hsts: strictTransportSecurity + } +); + +// dist/app.module.js +init_common(); +init_core(); +var import_throttler3 = __toESM(require_dist(), 1); + +// dist/auth/auth.controller.js +init_common(); +var import_throttler = __toESM(require_dist(), 1); + +// dist/common/auth.js +init_common(); +init_core(); +var __decorate = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ROLES_KEY = "roles"; +var JwtAuthGuard = class JwtAuthGuard2 { + static { + __name(this, "JwtAuthGuard"); + } + jwt; + reflector; + prisma; + constructor(jwt, reflector, prisma) { + this.jwt = jwt; + this.reflector = reflector; + this.prisma = prisma; + } + async canActivate(ctx) { + const req = ctx.switchToHttp().getRequest(); + const [scheme, token] = (req.headers.authorization ?? "").split(" "); + if (scheme !== "Bearer" || !token) + throw new UnauthorizedException("\u0627\u0628\u062A\u062F\u0627 \u0648\u0627\u0631\u062F \u0634\u0648\u06CC\u062F"); + let payload; + try { + payload = await this.jwt.verifyAsync(token); + } catch { + throw new UnauthorizedException("\u0646\u0634\u0633\u062A \u0634\u0645\u0627 \u0645\u0646\u0642\u0636\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + const user = await this.prisma.adminUser.findUnique({ where: { id: payload.sub } }); + if (!user?.isActive) + throw new UnauthorizedException("\u062D\u0633\u0627\u0628 \u06A9\u0627\u0631\u0628\u0631\u06CC \u063A\u06CC\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062A"); + req.user = { id: user.id, phone: user.phone, name: user.name, role: user.role }; + const roles = this.reflector.getAllAndOverride(ROLES_KEY, [ + ctx.getHandler(), + ctx.getClass() + ]); + if (roles?.length && !roles.includes(user.role)) { + throw new ForbiddenException("\u0628\u0631\u0627\u06CC \u0627\u06CC\u0646 \u06A9\u0627\u0631 \u062F\u0633\u062A\u0631\u0633\u06CC \u0646\u062F\u0627\u0631\u06CC\u062F"); + } + return true; + } +}; +JwtAuthGuard = __decorate([ + Injectable(), + __metadata("design:paramtypes", [ + JwtService, + Reflector, + PrismaService + ]) +], JwtAuthGuard); +var AdminAuth = /* @__PURE__ */ __name((...roles) => applyDecorators(SetMetadata(ROLES_KEY, roles), UseGuards(JwtAuthGuard)), "AdminAuth"); +var Roles = /* @__PURE__ */ __name((...roles) => SetMetadata(ROLES_KEY, roles), "Roles"); +var CurrentUser = createParamDecorator((_, ctx) => ctx.switchToHttp().getRequest().user); + +// dist/common/zod.pipe.js +init_common(); +external_exports.config(external_exports.locales.fa()); +var ZodPipe = class { + static { + __name(this, "ZodPipe"); + } + schema; + constructor(schema) { + this.schema = schema; + } + transform(value) { + const result = this.schema.safeParse(value); + if (!result.success) { + throw new BadRequestException({ + statusCode: 400, + message: "\u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0648\u0627\u0631\u062F\u0634\u062F\u0647 \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A", + issues: toIssues(result.error) + }); + } + return result.data; + } +}; +var IdPipe = new ZodPipe(external_exports.coerce.number().int().positive()); + +// dist/auth/auth.controller.js +var __decorate2 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata2 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var COOKIE = "imen_rt"; +var COOKIE_PATH = "/api/admin/auth"; +var ua = /* @__PURE__ */ __name((req) => req.headers["user-agent"] ?? "", "ua"); +var readCookie = /* @__PURE__ */ __name((req) => req.cookies?.[COOKIE], "readCookie"); +var AuthController = class AuthController2 { + static { + __name(this, "AuthController"); + } + auth; + constructor(auth) { + this.auth = auth; + } + async login(body, req, res) { + return this.respond(res, await this.auth.login(body, ua(req))); + } + async refresh(req, res) { + try { + return this.respond(res, await this.auth.refresh(readCookie(req), ua(req))); + } catch (e) { + res.clearCookie(COOKIE, { path: COOKIE_PATH }); + throw e; + } + } + async logout(req, res) { + await this.auth.logout(readCookie(req)); + res.clearCookie(COOKIE, { path: COOKIE_PATH }); + } + me(user) { + return this.auth.me(user.id); + } + async changePassword(body, user) { + await this.auth.changePassword(user.id, body); + } + respond(res, t) { + res.cookie(COOKIE, t.refreshToken, { + httpOnly: true, + secure: isProd && env.COOKIE_SECURE, + sameSite: "strict", + path: COOKIE_PATH, + expires: t.refreshExpiresAt + }); + return { accessToken: t.accessToken, user: t.user }; + } +}; +__decorate2([ + Post("login"), + HttpCode(200), + (0, import_throttler.Throttle)({ default: { limit: 8, ttl: 6e4 } }), + __param(0, Body(new ZodPipe(loginSchema))), + __param(1, Req()), + __param(2, Res({ passthrough: true })), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, Object, Object]), + __metadata2("design:returntype", Promise) +], AuthController.prototype, "login", null); +__decorate2([ + Post("refresh"), + HttpCode(200), + (0, import_throttler.Throttle)({ default: { limit: 30, ttl: 6e4 } }), + __param(0, Req()), + __param(1, Res({ passthrough: true })), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, Object]), + __metadata2("design:returntype", Promise) +], AuthController.prototype, "refresh", null); +__decorate2([ + Post("logout"), + HttpCode(204), + __param(0, Req()), + __param(1, Res({ passthrough: true })), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, Object]), + __metadata2("design:returntype", Promise) +], AuthController.prototype, "logout", null); +__decorate2([ + Get("me"), + AdminAuth(), + __param(0, CurrentUser()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) +], AuthController.prototype, "me", null); +__decorate2([ + Post("change-password"), + HttpCode(204), + AdminAuth(), + __param(0, Body(new ZodPipe(changePasswordSchema))), + __param(1, CurrentUser()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, Object]), + __metadata2("design:returntype", Promise) +], AuthController.prototype, "changePassword", null); +AuthController = __decorate2([ + Controller("admin/auth"), + __metadata2("design:paramtypes", [AuthService]) +], AuthController); +var AuthModule = class AuthModule2 { + static { + __name(this, "AuthModule"); + } +}; +AuthModule = __decorate2([ + Module({ + imports: [ + JwtModule.register({ + global: true, + secret: env.JWT_SECRET, + signOptions: { expiresIn: env.JWT_ACCESS_TTL } + }) + ], + controllers: [AuthController], + providers: [AuthService], + exports: [AuthService] + }) +], AuthModule); + +// dist/catalog/catalog.module.js +init_common(); + +// dist/media/media.controller.js +init_common(); +init_platform_express(); + +// dist/media/media.service.js +init_common(); +import { randomUUID } from "node:crypto"; +var __decorate3 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata3 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var MediaService_1; +var MediaService = MediaService_1 = class MediaService2 { + static { + __name(this, "MediaService"); + } + prisma; + audit; + revalidate; + logger = new Logger(MediaService_1.name); + storage = new S3Storage(); + constructor(prisma, audit, revalidate) { + this.prisma = prisma; + this.audit = audit; + this.revalidate = revalidate; + } + async onModuleInit() { + if (!env.S3_ENSURE_BUCKET) + return; + try { + await this.storage.ensureBucket(); + } catch (e) { + this.logger.error(`could not prepare bucket "${env.S3_BUCKET}": ${String(e)}`); + } + } + url(key) { + return this.storage.publicUrl(key); + } + toDto(m) { + return { + id: m.id, + url: this.url(m.key), + alt: m.alt, + mime: m.mime, + size: m.size, + width: m.width, + height: m.height, + originalName: m.originalName, + createdAt: m.createdAt.toISOString() + }; + } + async list(page, pageSize, q) { + const where = q ? { + OR: [ + { originalName: { contains: q, mode: "insensitive" } }, + { alt: { contains: q, mode: "insensitive" } } + ] + } : {}; + const [items, total] = await this.prisma.$transaction([ + this.prisma.media.findMany({ + where, + orderBy: { id: "desc" }, + skip: (page - 1) * pageSize, + take: pageSize + }), + this.prisma.media.count({ where }) + ]); + return { items: items.map((m) => this.toDto(m)), total, page, pageSize }; + } + async upload(file, alt, userId) { + if (!file) + throw new BadRequestException("\u0641\u0627\u06CC\u0644\u06CC \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u062F\u0647 \u0627\u0633\u062A"); + if (!ACCEPTED_IMAGE_TYPES.includes(file.mimetype)) { + throw new BadRequestException("\u0641\u0642\u0637 \u062A\u0635\u0627\u0648\u06CC\u0631 JPG\u060C PNG\u060C WebP\u060C AVIF \u0648 GIF \u067E\u0630\u06CC\u0631\u0641\u062A\u0647 \u0645\u06CC\u200C\u0634\u0648\u0646\u062F"); + } + let image; + try { + image = await toWebp(file.buffer); + } catch { + throw new BadRequestException("\u0641\u0627\u06CC\u0644 \u062A\u0635\u0648\u06CC\u0631 \u0642\u0627\u0628\u0644 \u067E\u0631\u062F\u0627\u0632\u0634 \u0646\u06CC\u0633\u062A"); + } + const now = /* @__PURE__ */ new Date(); + const month = String(now.getMonth() + 1).padStart(2, "0"); + const key = `uploads/${now.getFullYear()}/${month}/${randomUUID()}.webp`; + await this.storage.put(key, image.data, "image/webp"); + const media = await this.prisma.media.create({ + data: { + key, + mime: "image/webp", + size: image.size, + width: image.width, + height: image.height, + alt: alt.trim().slice(0, 200), + originalName: Buffer.from(file.originalname, "latin1").toString("utf8").slice(0, 200) + } + }); + this.audit.log(userId, "upload", "media", media.id, media.originalName); + return this.toDto(media); + } + async updateAlt(id, alt, userId) { + const media = await this.prisma.media.update({ where: { id }, data: { alt } }); + this.audit.log(userId, "update", "media", id, media.originalName); + this.revalidate.trigger(); + return this.toDto(media); + } + async remove(id, userId) { + const media = await this.prisma.media.findUnique({ + where: { id }, + include: { _count: { select: { categoryCovers: true, productImages: true, productGallery: true } } } + }); + if (!media) + throw new NotFoundException("\u0641\u0627\u06CC\u0644 \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F"); + const { categoryCovers, productImages, productGallery } = media._count; + const sections = await this.prisma.$queryRaw` + SELECT key FROM "SiteSection" WHERE data::text LIKE ${"%" + media.key + "%"}`; + if (categoryCovers + productImages + productGallery + sections.length > 0) { + throw new ConflictException("\u0627\u06CC\u0646 \u062A\u0635\u0648\u06CC\u0631 \u062F\u0631 \u0645\u062D\u0635\u0648\u0644\u0627\u062A\u060C \u062F\u0633\u062A\u0647\u200C\u0647\u0627 \u06CC\u0627 \u0628\u062E\u0634\u200C\u0647\u0627\u06CC \u0633\u0627\u06CC\u062A \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0634\u062F\u0647 \u0648 \u0642\u0627\u0628\u0644 \u062D\u0630\u0641 \u0646\u06CC\u0633\u062A"); + } + await this.prisma.media.delete({ where: { id } }); + await this.storage.remove(media.key).catch((e) => { + this.logger.warn(`could not delete object ${media.key}: ${String(e)}`); + }); + this.audit.log(userId, "delete", "media", id, media.originalName); + } +}; +MediaService = MediaService_1 = __decorate3([ + Injectable(), + __metadata3("design:paramtypes", [ + PrismaService, + AuditService, + RevalidateService + ]) +], MediaService); + +// dist/media/media.controller.js +var __decorate4 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata4 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param2 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var listQuery = external_exports.object({ + page: external_exports.coerce.number().int().min(1).default(1), + pageSize: external_exports.coerce.number().int().min(1).max(100).default(40), + q: external_exports.string().trim().max(100).optional() +}); +var MediaController = class MediaController2 { + static { + __name(this, "MediaController"); + } + media; + constructor(media) { + this.media = media; + } + list(q) { + return this.media.list(q.page, q.pageSize, q.q); + } + upload(file, alt, user) { + return this.media.upload(file, typeof alt === "string" ? alt : "", user.id); + } + update(id, body, user) { + return this.media.updateAlt(id, body.alt, user.id); + } + async remove(id, user) { + await this.media.remove(id, user.id); + } +}; +__decorate4([ + Get(), + __param2(0, Query(new ZodPipe(listQuery))), + __metadata4("design:type", Function), + __metadata4("design:paramtypes", [Object]), + __metadata4("design:returntype", void 0) +], MediaController.prototype, "list", null); +__decorate4([ + Post(), + UseInterceptors(FileInterceptor("file", { limits: { fileSize: 15 * 1024 * 1024 } })), + __param2(0, UploadedFile()), + __param2(1, Body("alt")), + __param2(2, CurrentUser()), + __metadata4("design:type", Function), + __metadata4("design:paramtypes", [Object, Object, Object]), + __metadata4("design:returntype", void 0) +], MediaController.prototype, "upload", null); +__decorate4([ + Patch(":id"), + __param2(0, Param("id", IdPipe)), + __param2(1, Body(new ZodPipe(mediaUpdateSchema))), + __param2(2, CurrentUser()), + __metadata4("design:type", Function), + __metadata4("design:paramtypes", [Number, Object, Object]), + __metadata4("design:returntype", void 0) +], MediaController.prototype, "update", null); +__decorate4([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param2(0, Param("id", IdPipe)), + __param2(1, CurrentUser()), + __metadata4("design:type", Function), + __metadata4("design:paramtypes", [Number, Object]), + __metadata4("design:returntype", Promise) +], MediaController.prototype, "remove", null); +MediaController = __decorate4([ + AdminAuth(), + Controller("admin/media"), + __metadata4("design:paramtypes", [MediaService]) +], MediaController); +var MediaModule = class MediaModule2 { + static { + __name(this, "MediaModule"); + } +}; +MediaModule = __decorate4([ + Module({ + controllers: [MediaController], + providers: [MediaService], + exports: [MediaService] + }) +], MediaModule); + +// dist/catalog/categories.service.js +init_common(); +var __decorate5 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata5 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var withCover = { coverImage: true }; +var CategoriesService = class CategoriesService2 { + static { + __name(this, "CategoriesService"); + } + prisma; + media; + audit; + revalidate; + constructor(prisma, media, audit, revalidate) { + this.prisma = prisma; + this.media = media; + this.audit = audit; + this.revalidate = revalidate; + } + async list() { + const rows = await this.prisma.category.findMany({ + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { ...withCover, _count: { select: { products: true, groups: true } } } + }); + return rows.map(({ coverImage, _count, ...c }) => ({ + ...c, + coverImage: coverImage && this.media.toDto(coverImage), + productCount: _count.products, + groupCount: _count.groups + })); + } + async get(id) { + const { coverImage, ...c } = await this.prisma.category.findUniqueOrThrow({ + where: { id }, + include: { + ...withCover, + groups: { + orderBy: { sortOrder: "asc" }, + include: { _count: { select: { products: true } } } + } + } + }); + return { + ...c, + coverImage: coverImage && this.media.toDto(coverImage), + groups: c.groups.map(({ _count, ...g }) => ({ ...g, productCount: _count.products })) + }; + } + async create(input, userId) { + this.assertUniqueGroupSlugs(input); + const { groups, ...data } = input; + const last = await this.prisma.category.aggregate({ _max: { sortOrder: true } }); + const category = await this.prisma.category.create({ + data: { + ...data, + sortOrder: (last._max.sortOrder ?? -1) + 1, + groups: { + create: groups.map((g, i) => ({ slug: g.slug, name: g.name, desc: g.desc, sortOrder: i })) + } + } + }); + this.audit.log(userId, "create", "category", category.id, category.name); + this.revalidate.trigger(); + return this.get(category.id); + } + async update(id, input, userId) { + this.assertUniqueGroupSlugs(input); + const { groups, ...data } = input; + await this.prisma.$transaction(async (tx) => { + const category = await tx.category.update({ where: { id }, data }); + const keepIds = groups.flatMap((g) => g.id ? [g.id] : []); + await tx.productGroup.deleteMany({ where: { categoryId: id, id: { notIn: keepIds } } }); + for (const g of groups) { + if (g.id) { + await tx.productGroup.update({ + where: { id: g.id, categoryId: id }, + data: { slug: `__tmp-${g.id}` } + }); + } + } + for (const [i, g] of groups.entries()) { + const fields = { slug: g.slug, name: g.name, desc: g.desc, sortOrder: i }; + if (g.id) { + await tx.productGroup.update({ where: { id: g.id, categoryId: id }, data: fields }); + } else { + await tx.productGroup.create({ data: { ...fields, categoryId: id } }); + } + } + this.audit.log(userId, "update", "category", id, category.name); + }); + this.revalidate.trigger(); + return this.get(id); + } + async remove(id, userId) { + const category = await this.prisma.category.findUniqueOrThrow({ + where: { id }, + include: { _count: { select: { products: true } } } + }); + if (category._count.products > 0) { + throw new ConflictException(`\u0627\u06CC\u0646 \u062F\u0633\u062A\u0647 ${category._count.products} \u0645\u062D\u0635\u0648\u0644 \u062F\u0627\u0631\u062F\u061B \u0627\u0628\u062A\u062F\u0627 \u0645\u062D\u0635\u0648\u0644\u0627\u062A \u0631\u0627 \u062D\u0630\u0641 \u06CC\u0627 \u062C\u0627\u0628\u0647\u200C\u062C\u0627 \u06A9\u0646\u06CC\u062F`); + } + await this.prisma.category.delete({ where: { id } }); + this.audit.log(userId, "delete", "category", id, category.name); + this.revalidate.trigger(); + } + async reorder(ids, userId) { + await this.prisma.$transaction(ids.map((id, i) => this.prisma.category.update({ where: { id }, data: { sortOrder: i } }))); + this.audit.log(userId, "reorder", "category", "", `${ids.length} \u062F\u0633\u062A\u0647`); + this.revalidate.trigger(); + } + assertUniqueGroupSlugs(input) { + const slugs = input.groups.map((g) => g.slug); + if (new Set(slugs).size !== slugs.length) { + throw new ConflictException("\u0627\u0633\u0644\u0627\u06AF \u0632\u06CC\u0631\u06AF\u0631\u0648\u0647\u200C\u0647\u0627 \u0628\u0627\u06CC\u062F \u06CC\u06A9\u062A\u0627 \u0628\u0627\u0634\u062F"); + } + } +}; +CategoriesService = __decorate5([ + Injectable(), + __metadata5("design:paramtypes", [ + PrismaService, + MediaService, + AuditService, + RevalidateService + ]) +], CategoriesService); + +// dist/catalog/products.service.js +init_common(); +var __decorate6 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata6 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var ProductsService = class ProductsService2 { + static { + __name(this, "ProductsService"); + } + prisma; + media; + audit; + revalidate; + constructor(prisma, media, audit, revalidate) { + this.prisma = prisma; + this.media = media; + this.audit = audit; + this.revalidate = revalidate; + } + async list(q) { + const where = { + ...q.categoryId && { categoryId: q.categoryId }, + ...q.groupId && { groupId: q.groupId }, + ...q.status && { isPublished: q.status === "published" }, + ...q.q && { + OR: [ + { name: { contains: q.q, mode: "insensitive" } }, + { nameEn: { contains: q.q, mode: "insensitive" } }, + { code: { contains: q.q, mode: "insensitive" } } + ] + } + }; + const [rows, total] = await this.prisma.$transaction([ + this.prisma.product.findMany({ + where, + orderBy: [{ category: { sortOrder: "asc" } }, { sortOrder: "asc" }, { id: "asc" }], + skip: (q.page - 1) * q.pageSize, + take: q.pageSize, + include: { + image: true, + category: { select: { id: true, name: true } }, + group: { select: { id: true, name: true } } + } + }), + this.prisma.product.count({ where }) + ]); + return { + items: rows.map(({ image, ...p }) => ({ ...p, image: image && this.media.toDto(image) })), + total, + page: q.page, + pageSize: q.pageSize + }; + } + async get(id) { + const { image, gallery, ...p } = await this.prisma.product.findUniqueOrThrow({ + where: { id }, + include: { image: true, gallery: { orderBy: { sortOrder: "asc" }, include: { media: true } } } + }); + return { + ...p, + image: image && this.media.toDto(image), + gallery: gallery.map((g) => this.media.toDto(g.media)) + }; + } + async create(input, userId) { + await this.assertGroup(input); + const { galleryIds, ...data } = input; + const last = await this.prisma.product.aggregate({ + where: { categoryId: input.categoryId }, + _max: { sortOrder: true } + }); + const product = await this.prisma.product.create({ + data: { + ...data, + sortOrder: (last._max.sortOrder ?? -1) + 1, + gallery: { create: unique(galleryIds).map((mediaId, i) => ({ mediaId, sortOrder: i })) } + } + }); + this.audit.log(userId, "create", "product", product.id, product.name); + this.revalidate.trigger(); + return this.get(product.id); + } + async update(id, input, userId) { + await this.assertGroup(input); + const { galleryIds, ...data } = input; + const product = await this.prisma.product.update({ + where: { id }, + data: { + ...data, + gallery: { + deleteMany: {}, + create: unique(galleryIds).map((mediaId, i) => ({ mediaId, sortOrder: i })) + } + } + }); + this.audit.log(userId, "update", "product", id, product.name); + this.revalidate.trigger(); + return this.get(id); + } + async setPublished(id, isPublished, userId) { + const product = await this.prisma.product.update({ where: { id }, data: { isPublished } }); + this.audit.log(userId, isPublished ? "publish" : "unpublish", "product", id, product.name); + this.revalidate.trigger(); + return { id, isPublished }; + } + async duplicate(id, userId) { + const src = await this.prisma.product.findUniqueOrThrow({ + where: { id }, + include: { gallery: true } + }); + let n = 1; + const taken = /* @__PURE__ */ __name(async (code, slug) => await this.prisma.product.count({ where: { OR: [{ code }, { slug }] } }) > 0, "taken"); + while (await taken(`${src.code}-${n}`, `${src.slug}-copy-${n}`)) + n++; + const copy = await this.prisma.product.create({ + data: { + categoryId: src.categoryId, + groupId: src.groupId, + code: `${src.code}-${n}`, + slug: `${src.slug}-copy-${n}`, + name: `${src.name} (\u06A9\u067E\u06CC)`, + nameEn: src.nameEn, + desc: src.desc, + specs: src.specs, + variants: src.variants, + details: src.details, + brand: src.brand, + origin: src.origin, + sizes: src.sizes, + standards: src.standards, + features: src.features, + applications: src.applications, + attributes: src.attributes ?? [], + packaging: src.packaging, + minOrder: src.minOrder, + seoTitle: src.seoTitle, + seoDescription: src.seoDescription, + imageId: src.imageId, + sortOrder: src.sortOrder + 1, + isPublished: false, + gallery: { + create: src.gallery.map((g) => ({ mediaId: g.mediaId, sortOrder: g.sortOrder })) + } + } + }); + this.audit.log(userId, "duplicate", "product", copy.id, copy.name); + return this.get(copy.id); + } + async remove(id, userId) { + const product = await this.prisma.product.delete({ where: { id } }); + this.audit.log(userId, "delete", "product", id, product.name); + this.revalidate.trigger(); + } + async reorder(ids, userId) { + await this.prisma.$transaction(ids.map((id, i) => this.prisma.product.update({ where: { id }, data: { sortOrder: i } }))); + this.audit.log(userId, "reorder", "product", "", `${ids.length} \u0645\u062D\u0635\u0648\u0644`); + this.revalidate.trigger(); + } + async assertGroup(input) { + if (!input.groupId) + return; + const group = await this.prisma.productGroup.findUnique({ where: { id: input.groupId } }); + if (group?.categoryId !== input.categoryId) { + throw new BadRequestException("\u0632\u06CC\u0631\u06AF\u0631\u0648\u0647 \u0627\u0646\u062A\u062E\u0627\u0628\u200C\u0634\u062F\u0647 \u0645\u062A\u0639\u0644\u0642 \u0628\u0647 \u0627\u06CC\u0646 \u062F\u0633\u062A\u0647 \u0646\u06CC\u0633\u062A"); + } + } +}; +ProductsService = __decorate6([ + Injectable(), + __metadata6("design:paramtypes", [ + PrismaService, + MediaService, + AuditService, + RevalidateService + ]) +], ProductsService); +var unique = /* @__PURE__ */ __name((ids) => [...new Set(ids)], "unique"); + +// dist/catalog/catalog.module.js +var __decorate7 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata7 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param3 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var publishSchema = external_exports.object({ isPublished: external_exports.boolean() }); +var CategoriesController = class CategoriesController2 { + static { + __name(this, "CategoriesController"); + } + categories; + constructor(categories) { + this.categories = categories; + } + list() { + return this.categories.list(); + } + get(id) { + return this.categories.get(id); + } + create(body, user) { + return this.categories.create(body, user.id); + } + async reorder(body, user) { + await this.categories.reorder(body.ids, user.id); + } + update(id, body, user) { + return this.categories.update(id, body, user.id); + } + async remove(id, user) { + await this.categories.remove(id, user.id); + } +}; +__decorate7([ + Get(), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", []), + __metadata7("design:returntype", void 0) +], CategoriesController.prototype, "list", null); +__decorate7([ + Get(":id"), + __param3(0, Param("id", IdPipe)), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number]), + __metadata7("design:returntype", void 0) +], CategoriesController.prototype, "get", null); +__decorate7([ + Post(), + __param3(0, Body(new ZodPipe(categoryInputSchema))), + __param3(1, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Object, Object]), + __metadata7("design:returntype", void 0) +], CategoriesController.prototype, "create", null); +__decorate7([ + Post("reorder"), + HttpCode(204), + __param3(0, Body(new ZodPipe(reorderSchema))), + __param3(1, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Object, Object]), + __metadata7("design:returntype", Promise) +], CategoriesController.prototype, "reorder", null); +__decorate7([ + Put(":id"), + __param3(0, Param("id", IdPipe)), + __param3(1, Body(new ZodPipe(categoryInputSchema))), + __param3(2, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number, Object, Object]), + __metadata7("design:returntype", void 0) +], CategoriesController.prototype, "update", null); +__decorate7([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param3(0, Param("id", IdPipe)), + __param3(1, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number, Object]), + __metadata7("design:returntype", Promise) +], CategoriesController.prototype, "remove", null); +CategoriesController = __decorate7([ + AdminAuth(), + Controller("admin/categories"), + __metadata7("design:paramtypes", [CategoriesService]) +], CategoriesController); +var ProductsController = class ProductsController2 { + static { + __name(this, "ProductsController"); + } + products; + constructor(products) { + this.products = products; + } + list(q) { + return this.products.list(q); + } + get(id) { + return this.products.get(id); + } + create(body, user) { + return this.products.create(body, user.id); + } + async reorder(body, user) { + await this.products.reorder(body.ids, user.id); + } + duplicate(id, user) { + return this.products.duplicate(id, user.id); + } + publish(id, body, user) { + return this.products.setPublished(id, body.isPublished, user.id); + } + update(id, body, user) { + return this.products.update(id, body, user.id); + } + async remove(id, user) { + await this.products.remove(id, user.id); + } +}; +__decorate7([ + Get(), + __param3(0, Query(new ZodPipe(productListQuerySchema))), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Object]), + __metadata7("design:returntype", void 0) +], ProductsController.prototype, "list", null); +__decorate7([ + Get(":id"), + __param3(0, Param("id", IdPipe)), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number]), + __metadata7("design:returntype", void 0) +], ProductsController.prototype, "get", null); +__decorate7([ + Post(), + __param3(0, Body(new ZodPipe(productInputSchema))), + __param3(1, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Object, Object]), + __metadata7("design:returntype", void 0) +], ProductsController.prototype, "create", null); +__decorate7([ + Post("reorder"), + HttpCode(204), + __param3(0, Body(new ZodPipe(reorderSchema))), + __param3(1, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Object, Object]), + __metadata7("design:returntype", Promise) +], ProductsController.prototype, "reorder", null); +__decorate7([ + Post(":id/duplicate"), + __param3(0, Param("id", IdPipe)), + __param3(1, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number, Object]), + __metadata7("design:returntype", void 0) +], ProductsController.prototype, "duplicate", null); +__decorate7([ + Patch(":id/publish"), + __param3(0, Param("id", IdPipe)), + __param3(1, Body(new ZodPipe(publishSchema))), + __param3(2, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number, Object, Object]), + __metadata7("design:returntype", void 0) +], ProductsController.prototype, "publish", null); +__decorate7([ + Put(":id"), + __param3(0, Param("id", IdPipe)), + __param3(1, Body(new ZodPipe(productInputSchema))), + __param3(2, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number, Object, Object]), + __metadata7("design:returntype", void 0) +], ProductsController.prototype, "update", null); +__decorate7([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param3(0, Param("id", IdPipe)), + __param3(1, CurrentUser()), + __metadata7("design:type", Function), + __metadata7("design:paramtypes", [Number, Object]), + __metadata7("design:returntype", Promise) +], ProductsController.prototype, "remove", null); +ProductsController = __decorate7([ + AdminAuth(), + Controller("admin/products"), + __metadata7("design:paramtypes", [ProductsService]) +], ProductsController); +var CatalogModule = class CatalogModule2 { + static { + __name(this, "CatalogModule"); + } +}; +CatalogModule = __decorate7([ + Module({ + imports: [MediaModule], + controllers: [CategoriesController, ProductsController], + providers: [CategoriesService, ProductsService] + }) +], CatalogModule); + +// dist/common/prisma-exception.filter.js +init_common(); +var __decorate8 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var FIELD_LABELS = { + slug: "\u0627\u0633\u0644\u0627\u06AF", + code: "\u06A9\u062F", + email: "\u0627\u06CC\u0645\u06CC\u0644", + phone: "\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644" +}; +function uniqueFields(meta) { + if (meta?.target) + return Array.isArray(meta.target) ? meta.target : [meta.target]; + const constraint = meta?.driverAdapterError?.cause?.constraint; + if (constraint?.fields) + return constraint.fields; + const match = constraint?.index?.match(/^[^_]+_(.+)_key$/); + return match ? match[1].split("_") : []; +} +__name(uniqueFields, "uniqueFields"); +var PrismaExceptionFilter = class PrismaExceptionFilter2 { + static { + __name(this, "PrismaExceptionFilter"); + } + catch(error, host) { + const res = host.switchToHttp().getResponse(); + switch (error.code) { + case "P2002": { + const fields = uniqueFields(error.meta).filter((f) => !f.endsWith("Id")).map((f) => FIELD_LABELS[f] ?? f).join("\u060C "); + return res.status(HttpStatus.CONFLICT).json({ + statusCode: HttpStatus.CONFLICT, + message: fields ? `\u0645\u0642\u062F\u0627\u0631 \xAB${fields}\xBB \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A` : "\u0645\u0642\u062F\u0627\u0631 \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A" + }); + } + case "P2003": + return res.status(HttpStatus.CONFLICT).json({ + statusCode: HttpStatus.CONFLICT, + message: "\u0627\u06CC\u0646 \u0645\u0648\u0631\u062F \u0628\u0647 \u062F\u0627\u062F\u0647\u200C\u0647\u0627\u06CC \u062F\u06CC\u06AF\u0631\u06CC \u0648\u0627\u0628\u0633\u062A\u0647 \u0627\u0633\u062A" + }); + case "P2025": + return res.status(HttpStatus.NOT_FOUND).json({ statusCode: HttpStatus.NOT_FOUND, message: "\u0645\u0648\u0631\u062F \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F" }); + default: + return res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({ + statusCode: HttpStatus.INTERNAL_SERVER_ERROR, + message: "\u062E\u0637\u0627\u06CC \u067E\u0627\u06CC\u06AF\u0627\u0647 \u062F\u0627\u062F\u0647" + }); + } + } +}; +PrismaExceptionFilter = __decorate8([ + Catch(prismaNamespace_exports.PrismaClientKnownRequestError) +], PrismaExceptionFilter); + +// dist/contact/contact.module.js +init_common(); +var import_throttler2 = __toESM(require_dist(), 1); +var __decorate9 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata8 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param4 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var listQuery2 = external_exports.object({ + status: external_exports.enum(MESSAGE_STATUSES).optional(), + page: external_exports.coerce.number().int().min(1).default(1), + pageSize: external_exports.coerce.number().int().min(1).max(100).default(20) +}); +var toMessageDto = /* @__PURE__ */ __name((m) => ({ + id: m.id, + name: m.name, + org: m.org, + phone: m.phone, + message: m.message, + status: m.status, + createdAt: m.createdAt.toISOString() +}), "toMessageDto"); +var ContactService = class ContactService2 { + static { + __name(this, "ContactService"); + } + prisma; + audit; + constructor(prisma, audit) { + this.prisma = prisma; + this.audit = audit; + } + async submit(input, ip, userAgent) { + if (input.website) + return; + await this.prisma.contactMessage.create({ + data: { + name: input.name, + org: input.org, + phone: input.phone, + message: input.message, + ip: ip.slice(0, 64), + userAgent: userAgent.slice(0, 300) + } + }); + } + async list(q) { + const where = q.status ? { status: q.status } : {}; + const [items, total] = await this.prisma.$transaction([ + this.prisma.contactMessage.findMany({ + where, + orderBy: { id: "desc" }, + skip: (q.page - 1) * q.pageSize, + take: q.pageSize + }), + this.prisma.contactMessage.count({ where }) + ]); + return { items: items.map(toMessageDto), total, page: q.page, pageSize: q.pageSize }; + } + async setStatus(id, status) { + return toMessageDto(await this.prisma.contactMessage.update({ where: { id }, data: { status } })); + } + async remove(id, userId) { + const m = await this.prisma.contactMessage.delete({ where: { id } }); + this.audit.log(userId, "delete", "message", id, m.name); + } +}; +ContactService = __decorate9([ + Injectable(), + __metadata8("design:paramtypes", [ + PrismaService, + AuditService + ]) +], ContactService); +var PublicContactController = class PublicContactController2 { + static { + __name(this, "PublicContactController"); + } + contact; + constructor(contact) { + this.contact = contact; + } + async submit(body, req) { + await this.contact.submit(body, req.ip ?? "", req.headers["user-agent"] ?? ""); + return { ok: true }; + } +}; +__decorate9([ + Post(), + HttpCode(201), + (0, import_throttler2.Throttle)({ default: { limit: 5, ttl: 10 * 6e4 } }), + __param4(0, Body(new ZodPipe(contactInputSchema))), + __param4(1, Req()), + __metadata8("design:type", Function), + __metadata8("design:paramtypes", [Object, Object]), + __metadata8("design:returntype", Promise) +], PublicContactController.prototype, "submit", null); +PublicContactController = __decorate9([ + Controller("public/contact"), + __metadata8("design:paramtypes", [ContactService]) +], PublicContactController); +var MessagesController = class MessagesController2 { + static { + __name(this, "MessagesController"); + } + contact; + constructor(contact) { + this.contact = contact; + } + list(q) { + return this.contact.list(q); + } + update(id, body) { + return this.contact.setStatus(id, body.status); + } + async remove(id, user) { + await this.contact.remove(id, user.id); + } +}; +__decorate9([ + Get(), + __param4(0, Query(new ZodPipe(listQuery2))), + __metadata8("design:type", Function), + __metadata8("design:paramtypes", [Object]), + __metadata8("design:returntype", void 0) +], MessagesController.prototype, "list", null); +__decorate9([ + Patch(":id"), + __param4(0, Param("id", IdPipe)), + __param4(1, Body(new ZodPipe(messageUpdateSchema))), + __metadata8("design:type", Function), + __metadata8("design:paramtypes", [Number, Object]), + __metadata8("design:returntype", void 0) +], MessagesController.prototype, "update", null); +__decorate9([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param4(0, Param("id", IdPipe)), + __param4(1, CurrentUser()), + __metadata8("design:type", Function), + __metadata8("design:paramtypes", [Number, Object]), + __metadata8("design:returntype", Promise) +], MessagesController.prototype, "remove", null); +MessagesController = __decorate9([ + AdminAuth(), + Controller("admin/messages"), + __metadata8("design:paramtypes", [ContactService]) +], MessagesController); +var ContactModule = class ContactModule2 { + static { + __name(this, "ContactModule"); + } +}; +ContactModule = __decorate9([ + Module({ + controllers: [PublicContactController, MessagesController], + providers: [ContactService] + }) +], ContactModule); + +// dist/dashboard/dashboard.module.js +init_common(); +var __decorate10 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata9 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var DAY_NAMES = ["\u06CC\u06A9\u0634\u0646\u0628\u0647", "\u062F\u0648\u0634\u0646\u0628\u0647", "\u0633\u0647\u200C\u0634\u0646\u0628\u0647", "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647", "\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647", "\u062C\u0645\u0639\u0647", "\u0634\u0646\u0628\u0647"]; +var DashboardController = class DashboardController2 { + static { + __name(this, "DashboardController"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async get() { + const [categories, products, draftProducts, newMessages, readMessages, archivedMessages, media, messages, activity, categoryRows, sectionRows] = await Promise.all([ + this.prisma.category.count(), + this.prisma.product.count(), + this.prisma.product.count({ where: { isPublished: false } }), + this.prisma.contactMessage.count({ where: { status: "NEW" } }), + this.prisma.contactMessage.count({ where: { status: "READ" } }), + this.prisma.contactMessage.count({ where: { status: "ARCHIVED" } }), + this.prisma.media.count(), + this.prisma.contactMessage.findMany({ orderBy: { id: "desc" }, take: 6 }), + this.prisma.auditLog.findMany({ + orderBy: { id: "desc" }, + take: 10, + include: { user: { select: { name: true } } } + }), + this.prisma.category.findMany({ + select: { id: true, name: true, _count: { select: { products: true } } }, + orderBy: { products: { _count: "desc" } }, + take: 7 + }), + this.prisma.siteSection.findMany() + ]); + let hiddenCount = 0; + for (const s of sectionRows) { + if (s.data && typeof s.data === "object" && s.data.enabled === false) { + hiddenCount++; + } + } + const now = /* @__PURE__ */ new Date(); + const trend = []; + for (let i = 6; i >= 0; i--) { + const start = new Date(now.getFullYear(), now.getMonth(), now.getDate() - i, 0, 0, 0); + const end = new Date(now.getFullYear(), now.getMonth(), now.getDate() - i, 23, 59, 59, 999); + const count = await this.prisma.contactMessage.count({ + where: { createdAt: { gte: start, lte: end } } + }); + trend.push({ + date: start.toISOString().slice(0, 10), + dayName: DAY_NAMES[start.getDay()], + messages: count + }); + } + return { + categories, + products, + draftProducts, + newMessages, + media, + recentMessages: messages.map(toMessageDto), + recentActivity: activity.map((a) => ({ + id: a.id, + action: a.action, + entity: a.entity, + summary: a.summary, + user: a.user?.name ?? null, + createdAt: a.createdAt.toISOString() + })), + categoryStats: categoryRows.map((c) => ({ + id: c.id, + name: c.name, + count: c._count.products + })), + messageBreakdown: { + new: newMessages, + read: readMessages, + archived: archivedMessages, + total: newMessages + readMessages + archivedMessages + }, + sectionsSummary: { + total: SECTION_KEYS.length, + visible: SECTION_KEYS.length - hiddenCount, + hidden: hiddenCount + }, + trend + }; + } +}; +__decorate10([ + Get(), + __metadata9("design:type", Function), + __metadata9("design:paramtypes", []), + __metadata9("design:returntype", Promise) +], DashboardController.prototype, "get", null); +DashboardController = __decorate10([ + AdminAuth(), + Controller("admin/dashboard"), + __metadata9("design:paramtypes", [PrismaService]) +], DashboardController); +var DashboardModule = class DashboardModule2 { + static { + __name(this, "DashboardModule"); + } +}; +DashboardModule = __decorate10([ + Module({ controllers: [DashboardController] }) +], DashboardModule); + +// dist/public/public.module.js +init_common(); + +// dist/sections/sections.module.js +init_common(); +var __decorate11 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata10 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param5 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var SectionsService = class SectionsService2 { + static { + __name(this, "SectionsService"); + } + prisma; + audit; + revalidate; + constructor(prisma, audit, revalidate) { + this.prisma = prisma; + this.audit = audit; + this.revalidate = revalidate; + } + async getAll() { + const rows = await this.prisma.siteSection.findMany(); + const byKey = new Map(rows.map((r) => [r.key, r.data])); + const missing = SECTION_KEYS.filter((k) => !byKey.has(k)); + if (missing.length) { + throw new ServiceUnavailableException(`\u0645\u062D\u062A\u0648\u0627\u06CC \u0633\u0627\u06CC\u062A \u0645\u0642\u062F\u0627\u0631\u062F\u0647\u06CC \u0646\u0634\u062F\u0647 \u0627\u0633\u062A (${missing.join(", ")}) \u2014 pnpm db:seed \u0631\u0627 \u0627\u062C\u0631\u0627 \u06A9\u0646\u06CC\u062F`); + } + return Object.fromEntries(SECTION_KEYS.map((k) => [k, sectionSchemas[k].parse(byKey.get(k))])); + } + async get(key) { + if (!isSectionKey(key)) + throw new NotFoundException("\u0628\u062E\u0634 \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F"); + const row = await this.prisma.siteSection.findUnique({ where: { key } }); + if (!row) + throw new NotFoundException("\u0628\u062E\u0634 \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F"); + return { key, data: sectionSchemas[key].parse(row.data), updatedAt: row.updatedAt }; + } + async update(key, body, user) { + if (!isSectionKey(key)) + throw new NotFoundException("\u0628\u062E\u0634 \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F"); + if (key === "settings" && user.role !== "ADMIN") { + throw new ForbiddenException("\u0641\u0642\u0637 \u0645\u062F\u06CC\u0631 \u06A9\u0644 \u0645\u06CC\u200C\u062A\u0648\u0627\u0646\u062F \u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u0633\u0627\u06CC\u062A \u0631\u0627 \u062A\u063A\u06CC\u06CC\u0631 \u062F\u0647\u062F"); + } + const parsed = sectionSchemas[key].safeParse(body); + if (!parsed.success) { + throw new BadRequestException({ + statusCode: 400, + message: "\u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0648\u0627\u0631\u062F\u0634\u062F\u0647 \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A", + issues: toIssues(parsed.error) + }); + } + const row = await this.prisma.siteSection.upsert({ + where: { key }, + create: { key, data: parsed.data, updatedById: user.id }, + update: { data: parsed.data, updatedById: user.id } + }); + this.audit.log(user.id, "update", "section", key, key); + this.revalidate.trigger(); + return { key, data: parsed.data, updatedAt: row.updatedAt }; + } + async listAdmin() { + const rows = await this.prisma.siteSection.findMany(); + const byKey = new Map(rows.map((r) => [r.key, r])); + return SECTION_KEYS.map((key) => { + const row = byKey.get(key); + let data = null; + if (row) { + const parsed = sectionSchemas[key].safeParse(row.data); + data = parsed.success ? parsed.data : row.data; + } + return { + key, + updatedAt: row?.updatedAt?.toISOString() ?? null, + enabled: data && typeof data === "object" && "enabled" in data ? data.enabled !== false : true + }; + }); + } + async setVisibility(key, enabled, user) { + if (!isSectionKey(key)) + throw new NotFoundException("\u0628\u062E\u0634 \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F"); + if (key === "settings") { + throw new BadRequestException("\u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u0633\u0627\u06CC\u062A \u0642\u0627\u0628\u0644\u06CC\u062A \u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u0646\u0645\u0627\u06CC\u0634 \u0646\u062F\u0627\u0631\u062F"); + } + const row = await this.prisma.siteSection.findUnique({ where: { key } }); + if (!row) + throw new NotFoundException("\u0628\u062E\u0634 \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F"); + const currentData = row.data && typeof row.data === "object" ? { ...row.data } : {}; + currentData.enabled = enabled; + const parsed = sectionSchemas[key].safeParse(currentData); + if (!parsed.success) { + throw new BadRequestException({ + statusCode: 400, + message: "\u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0628\u062E\u0634 \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A", + issues: toIssues(parsed.error) + }); + } + const updated = await this.prisma.siteSection.update({ + where: { key }, + data: { data: parsed.data, updatedById: user.id } + }); + this.audit.log(user.id, "update", "section", key, `\u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u0646\u0645\u0627\u06CC\u0634 \u0628\u0647 ${enabled ? "\u0646\u0645\u0627\u06CC\u0634" : "\u0639\u062F\u0645 \u0646\u0645\u0627\u06CC\u0634"}`); + this.revalidate.trigger(); + return { + key, + enabled: parsed.data.enabled !== false, + updatedAt: updated.updatedAt.toISOString() + }; + } +}; +SectionsService = __decorate11([ + Injectable(), + __metadata10("design:paramtypes", [ + PrismaService, + AuditService, + RevalidateService + ]) +], SectionsService); +var SectionsController = class SectionsController2 { + static { + __name(this, "SectionsController"); + } + sections; + constructor(sections) { + this.sections = sections; + } + list() { + return this.sections.listAdmin(); + } + get(key) { + return this.sections.get(key); + } + update(key, body, user) { + return this.sections.update(key, body, user); + } + setVisibility(key, body, user) { + const enabled = body && typeof body.enabled === "boolean" ? body.enabled : Boolean(body?.enabled); + return this.sections.setVisibility(key, enabled, user); + } +}; +__decorate11([ + Get(), + __metadata10("design:type", Function), + __metadata10("design:paramtypes", []), + __metadata10("design:returntype", void 0) +], SectionsController.prototype, "list", null); +__decorate11([ + Get(":key"), + __param5(0, Param("key")), + __metadata10("design:type", Function), + __metadata10("design:paramtypes", [String]), + __metadata10("design:returntype", void 0) +], SectionsController.prototype, "get", null); +__decorate11([ + Put(":key"), + __param5(0, Param("key")), + __param5(1, Body()), + __param5(2, CurrentUser()), + __metadata10("design:type", Function), + __metadata10("design:paramtypes", [String, Object, Object]), + __metadata10("design:returntype", void 0) +], SectionsController.prototype, "update", null); +__decorate11([ + Patch(":key/visibility"), + __param5(0, Param("key")), + __param5(1, Body()), + __param5(2, CurrentUser()), + __metadata10("design:type", Function), + __metadata10("design:paramtypes", [String, Object, Object]), + __metadata10("design:returntype", void 0) +], SectionsController.prototype, "setVisibility", null); +SectionsController = __decorate11([ + AdminAuth(), + Controller("admin/sections"), + __metadata10("design:paramtypes", [SectionsService]) +], SectionsController); +var SectionsModule = class SectionsModule2 { + static { + __name(this, "SectionsModule"); + } +}; +SectionsModule = __decorate11([ + Module({ + controllers: [SectionsController], + providers: [SectionsService], + exports: [SectionsService] + }) +], SectionsModule); + +// dist/public/public.module.js +var __decorate12 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata11 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param6 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var visible = { isPublished: true, category: { isPublished: true } }; +var RELATED_LIMIT = 4; +var isAttribute = /* @__PURE__ */ __name((a) => !!a && typeof a === "object" && typeof a.name === "string" && typeof a.value === "string", "isAttribute"); +var PublicService = class PublicService2 { + static { + __name(this, "PublicService"); + } + prisma; + media; + sections; + constructor(prisma, media, sections) { + this.prisma = prisma; + this.media = media; + this.sections = sections; + } + async site() { + const [sections, categories] = await Promise.all([this.sections.getAll(), this.categories()]); + return { sections, categories }; + } + async categories() { + const rows = await this.prisma.category.findMany({ + where: { isPublished: true }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { + coverImage: true, + _count: { select: { products: { where: { isPublished: true } } } } + } + }); + return rows.map((c) => ({ + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.nameEn, + shortDesc: c.shortDesc, + icon: c.icon, + coverImage: c.coverImage && this.media.url(c.coverImage.key), + productCount: c._count.products + })); + } + async category(slug) { + const c = await this.prisma.category.findFirst({ + where: { slug, isPublished: true }, + include: { + coverImage: true, + groups: { orderBy: { sortOrder: "asc" } }, + products: { + where: { isPublished: true }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { image: true, group: { select: { slug: true } } } + } + } + }); + if (!c) + throw new NotFoundException("\u062F\u0633\u062A\u0647\u200C\u0628\u0646\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const products = c.products.map((p) => this.toPublicProduct(p)); + const usedGroups = new Set(products.map((p) => p.group)); + return { + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.nameEn, + shortDesc: c.shortDesc, + fullDesc: c.fullDesc, + icon: c.icon, + seoTitle: c.seoTitle, + seoDescription: c.seoDescription, + coverImage: c.coverImage && this.media.url(c.coverImage.key), + productCount: products.length, + groups: c.groups.filter((g) => usedGroups.has(g.slug)).map((g) => ({ slug: g.slug, name: g.name, desc: g.desc })), + products + }; + } + async product(slug) { + const p = await this.prisma.product.findFirst({ + where: { slug, ...visible }, + include: { + image: true, + gallery: { orderBy: { sortOrder: "asc" }, include: { media: true } }, + group: true, + category: { include: { coverImage: true } } + } + }); + if (!p) + throw new NotFoundException("\u0645\u062D\u0635\u0648\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const media = /* @__PURE__ */ new Map(); + for (const m of [p.image, ...p.gallery.map((g) => g.media)]) + if (m) + media.set(m.id, m); + const siblings = await this.prisma.product.findMany({ + where: { categoryId: p.categoryId, isPublished: true, id: { not: p.id } }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { image: true, group: { select: { slug: true } } } + }); + const sameGroup = /* @__PURE__ */ __name((s) => p.groupId !== null && s.groupId === p.groupId, "sameGroup"); + const related = [...siblings.filter(sameGroup), ...siblings.filter((s) => !sameGroup(s))].slice(0, RELATED_LIMIT).map((s) => this.toPublicProduct(s)); + return { + ...this.toPublicProduct(p), + details: p.details, + brand: p.brand, + origin: p.origin, + sizes: p.sizes, + standards: p.standards, + features: p.features, + applications: p.applications, + attributes: Array.isArray(p.attributes) ? p.attributes.filter(isAttribute) : [], + packaging: p.packaging, + minOrder: p.minOrder, + seoTitle: p.seoTitle, + seoDescription: p.seoDescription, + images: [...media.values()].map((m) => ({ + url: this.media.url(m.key), + alt: m.alt || p.name, + width: m.width, + height: m.height + })), + groupName: p.group?.name ?? null, + category: { + slug: p.category.slug, + code: p.category.code, + name: p.category.name, + nameEn: p.category.nameEn, + fullDesc: p.category.fullDesc, + coverImage: p.category.coverImage && this.media.url(p.category.coverImage.key) + }, + related, + updatedAt: p.updatedAt.toISOString() + }; + } + async productRefs() { + const rows = await this.prisma.product.findMany({ + where: visible, + orderBy: [{ category: { sortOrder: "asc" } }, { sortOrder: "asc" }], + select: { slug: true, updatedAt: true } + }); + return rows.map((r) => ({ slug: r.slug, updatedAt: r.updatedAt.toISOString() })); + } + toPublicProduct(p) { + return { + code: p.code, + slug: p.slug, + name: p.name, + nameEn: p.nameEn, + desc: p.desc, + specs: p.specs, + variants: p.variants, + image: p.image && this.media.url(p.image.key), + group: p.group?.slug ?? null + }; + } +}; +PublicService = __decorate12([ + Injectable(), + __metadata11("design:paramtypes", [ + PrismaService, + MediaService, + SectionsService + ]) +], PublicService); +var PublicController = class PublicController2 { + static { + __name(this, "PublicController"); + } + publicData; + constructor(publicData) { + this.publicData = publicData; + } + site() { + return this.publicData.site(); + } + categories() { + return this.publicData.categories(); + } + category(slug) { + return this.publicData.category(slug); + } + products() { + return this.publicData.productRefs(); + } + product(slug) { + return this.publicData.product(slug); + } +}; +__decorate12([ + Get("site"), + __metadata11("design:type", Function), + __metadata11("design:paramtypes", []), + __metadata11("design:returntype", void 0) +], PublicController.prototype, "site", null); +__decorate12([ + Get("categories"), + __metadata11("design:type", Function), + __metadata11("design:paramtypes", []), + __metadata11("design:returntype", void 0) +], PublicController.prototype, "categories", null); +__decorate12([ + Get("categories/:slug"), + __param6(0, Param("slug")), + __metadata11("design:type", Function), + __metadata11("design:paramtypes", [String]), + __metadata11("design:returntype", void 0) +], PublicController.prototype, "category", null); +__decorate12([ + Get("products"), + __metadata11("design:type", Function), + __metadata11("design:paramtypes", []), + __metadata11("design:returntype", void 0) +], PublicController.prototype, "products", null); +__decorate12([ + Get("products/:slug"), + __param6(0, Param("slug")), + __metadata11("design:type", Function), + __metadata11("design:paramtypes", [String]), + __metadata11("design:returntype", void 0) +], PublicController.prototype, "product", null); +PublicController = __decorate12([ + Controller("public"), + __metadata11("design:paramtypes", [PublicService]) +], PublicController); +var PublicModule = class PublicModule2 { + static { + __name(this, "PublicModule"); + } +}; +PublicModule = __decorate12([ + Module({ + imports: [MediaModule, SectionsModule], + controllers: [PublicController], + providers: [PublicService] + }) +], PublicModule); + +// dist/users/users.controller.js +init_common(); +var __decorate13 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata12 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param7 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +}; +var UsersService = class UsersService2 { + static { + __name(this, "UsersService"); + } + prisma; + auth; + audit; + constructor(prisma, auth, audit) { + this.prisma = prisma; + this.auth = auth; + this.audit = audit; + } + async list() { + const users = await this.prisma.adminUser.findMany({ orderBy: { id: "asc" } }); + return users.map(toUserDto); + } + async create(input, actor) { + const user = await this.prisma.adminUser.create({ + data: { + phone: input.phone, + name: input.name, + role: input.role, + passwordHash: await hashPassword(input.password) + } + }); + this.audit.log(actor.id, "create", "user", user.id, user.phone); + return toUserDto(user); + } + async update(id, input, actor) { + if (id === actor.id && (input.role !== "ADMIN" || !input.isActive)) { + throw new BadRequestException("\u0646\u0645\u06CC\u200C\u062A\u0648\u0627\u0646\u06CC\u062F \u0646\u0642\u0634 \u06CC\u0627 \u0648\u0636\u0639\u06CC\u062A \u062D\u0633\u0627\u0628 \u062E\u0648\u062F\u062A\u0627\u0646 \u0631\u0627 \u062A\u063A\u06CC\u06CC\u0631 \u062F\u0647\u06CC\u062F"); + } + const user = await this.prisma.adminUser.update({ + where: { id }, + data: { + name: input.name, + role: input.role, + isActive: input.isActive, + ...input.password ? { passwordHash: await hashPassword(input.password) } : {} + } + }); + if (input.password || !input.isActive) + await this.auth.revokeAll(id); + this.audit.log(actor.id, "update", "user", id, user.phone); + return toUserDto(user); + } + async remove(id, actor) { + if (id === actor.id) + throw new BadRequestException("\u0646\u0645\u06CC\u200C\u062A\u0648\u0627\u0646\u06CC\u062F \u062D\u0633\u0627\u0628 \u062E\u0648\u062F\u062A\u0627\u0646 \u0631\u0627 \u062D\u0630\u0641 \u06A9\u0646\u06CC\u062F"); + const user = await this.prisma.adminUser.delete({ where: { id } }); + this.audit.log(actor.id, "delete", "user", id, user.phone); + } +}; +UsersService = __decorate13([ + Injectable(), + __metadata12("design:paramtypes", [ + PrismaService, + AuthService, + AuditService + ]) +], UsersService); +var UsersController = class UsersController2 { + static { + __name(this, "UsersController"); + } + users; + constructor(users) { + this.users = users; + } + list() { + return this.users.list(); + } + create(body, actor) { + return this.users.create(body, actor); + } + update(id, body, actor) { + return this.users.update(id, body, actor); + } + async remove(id, actor) { + await this.users.remove(id, actor); + } +}; +__decorate13([ + Get(), + __metadata12("design:type", Function), + __metadata12("design:paramtypes", []), + __metadata12("design:returntype", void 0) +], UsersController.prototype, "list", null); +__decorate13([ + Post(), + __param7(0, Body(new ZodPipe(userCreateSchema))), + __param7(1, CurrentUser()), + __metadata12("design:type", Function), + __metadata12("design:paramtypes", [Object, Object]), + __metadata12("design:returntype", void 0) +], UsersController.prototype, "create", null); +__decorate13([ + Put(":id"), + __param7(0, Param("id", IdPipe)), + __param7(1, Body(new ZodPipe(userUpdateSchema))), + __param7(2, CurrentUser()), + __metadata12("design:type", Function), + __metadata12("design:paramtypes", [Number, Object, Object]), + __metadata12("design:returntype", void 0) +], UsersController.prototype, "update", null); +__decorate13([ + Delete(":id"), + HttpCode(204), + __param7(0, Param("id", IdPipe)), + __param7(1, CurrentUser()), + __metadata12("design:type", Function), + __metadata12("design:paramtypes", [Number, Object]), + __metadata12("design:returntype", Promise) +], UsersController.prototype, "remove", null); +UsersController = __decorate13([ + AdminAuth("ADMIN"), + Controller("admin/users"), + __metadata12("design:paramtypes", [UsersService]) +], UsersController); +var UsersModule = class UsersModule2 { + static { + __name(this, "UsersModule"); + } +}; +UsersModule = __decorate13([ + Module({ + imports: [AuthModule], + controllers: [UsersController], + providers: [UsersService] + }) +], UsersModule); + +// dist/app.module.js +var __decorate14 = function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata13 = function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var HealthController = class HealthController2 { + static { + __name(this, "HealthController"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async health() { + await this.prisma.$queryRaw`SELECT 1`; + return { ok: true }; + } +}; +__decorate14([ + Get(), + __metadata13("design:type", Function), + __metadata13("design:paramtypes", []), + __metadata13("design:returntype", Promise) +], HealthController.prototype, "health", null); +HealthController = __decorate14([ + Controller("health"), + __metadata13("design:paramtypes", [PrismaService]) +], HealthController); +var AppModule = class AppModule2 { + static { + __name(this, "AppModule"); + } +}; +AppModule = __decorate14([ + Module({ + imports: [ + import_throttler3.ThrottlerModule.forRoot([{ ttl: 6e4, limit: 300 }]), + PrismaModule, + CommonModule, + AuthModule, + UsersModule, + MediaModule, + CatalogModule, + SectionsModule, + ContactModule, + PublicModule, + DashboardModule + ], + controllers: [HealthController], + providers: [ + { provide: APP_GUARD, useClass: import_throttler3.ThrottlerGuard }, + { provide: APP_FILTER, useClass: PrismaExceptionFilter } + ] + }) +], AppModule); + +// dist/main.js +async function bootstrap() { + const app = await NestFactory.create(AppModule); + app.set("trust proxy", env.TRUST_PROXY); + app.setGlobalPrefix("api"); + app.use(helmet()); + app.use((0, import_cookie_parser.default)()); + const origins = env.CORS_ORIGINS.split(",").map((o) => o.trim()).filter(Boolean); + if (origins.length) + app.enableCors({ origin: origins, credentials: true }); + app.enableShutdownHooks(); + await app.listen(env.PORT); +} +__name(bootstrap, "bootstrap"); +await bootstrap(); diff --git a/apps/api/.output/dist/migrate.js b/apps/api/.output/dist/migrate.js new file mode 100644 index 0000000..1b964b3 --- /dev/null +++ b/apps/api/.output/dist/migrate.js @@ -0,0 +1,67 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + esm_default +} from "./chunks/chunk-KIUJQ22G.js"; +import { + __name +} from "./chunks/chunk-T6GW54FI.js"; + +// dist/migrate.js +import { createHash, randomUUID } from "node:crypto"; +import { existsSync } from "node:fs"; +import { readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +if (existsSync(".env")) + process.loadEnvFile(".env"); +var MIGRATIONS_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../prisma/migrations"); +var LOCK_ID = 72707369; +var client = new esm_default.Client({ connectionString: process.env.DATABASE_URL }); +async function main() { + await client.query(`SELECT pg_advisory_lock(${LOCK_ID})`); + await client.query(`CREATE TABLE IF NOT EXISTS "_prisma_migrations" ( + "id" VARCHAR(36) PRIMARY KEY NOT NULL, + "checksum" VARCHAR(64) NOT NULL, + "finished_at" TIMESTAMPTZ, + "migration_name" VARCHAR(255) NOT NULL, + "logs" TEXT, + "rolled_back_at" TIMESTAMPTZ, + "started_at" TIMESTAMPTZ NOT NULL DEFAULT now(), + "applied_steps_count" INTEGER NOT NULL DEFAULT 0 + )`); + const { rows } = await client.query(`SELECT migration_name, finished_at FROM "_prisma_migrations" WHERE rolled_back_at IS NULL`); + const failed = rows.find((r) => !r.finished_at); + if (failed) { + throw new Error(`migration ${failed.migration_name} failed earlier; fix the database, then mark it with \`prisma migrate resolve\` (see its "logs" column in _prisma_migrations)`); + } + const applied = new Set(rows.map((r) => r.migration_name)); + const entries = await readdir(MIGRATIONS_DIR, { withFileTypes: true }); + const pending = entries.filter((e) => e.isDirectory() && !applied.has(e.name)).map((e) => e.name).sort(); + for (const name of pending) { + const script = await readFile(path.join(MIGRATIONS_DIR, name, "migration.sql"), "utf8"); + const id = randomUUID(); + await client.query(`INSERT INTO "_prisma_migrations" (id, checksum, migration_name) VALUES ($1, $2, $3)`, [id, createHash("sha256").update(script).digest("hex"), name]); + try { + await client.query(script); + } catch (e) { + await client.query(`UPDATE "_prisma_migrations" SET logs = $2 WHERE id = $1`, [ + id, + String(e) + ]); + throw new Error(`migration ${name} failed`, { cause: e }); + } + await client.query(`UPDATE "_prisma_migrations" SET finished_at = now(), applied_steps_count = 1 WHERE id = $1`, [id]); + console.log(`applied ${name}`); + } + console.log(pending.length ? `${pending.length} migration(s) applied` : "no pending migrations"); +} +__name(main, "main"); +try { + await client.connect(); + await main(); +} catch (e) { + console.error(e); + process.exitCode = 1; +} finally { + await client.end(); +} diff --git a/apps/api/.output/dist/seed/seed.js b/apps/api/.output/dist/seed/seed.js new file mode 100644 index 0000000..391899b --- /dev/null +++ b/apps/api/.output/dist/seed/seed.js @@ -0,0 +1,1460 @@ +import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url); +import { + S3Storage, + SECTION_KEYS, + createPrismaClient, + env, + hashPassword, + normalizeIrMobile, + sectionSchemas, + toWebp +} from "../chunks/chunk-TXBARIZB.js"; +import "../chunks/chunk-KIUJQ22G.js"; +import "../chunks/chunk-BX2ML7LW.js"; +import "../chunks/chunk-A34KYKJP.js"; +import "../chunks/chunk-6UPY3HEI.js"; +import { + __name +} from "../chunks/chunk-T6GW54FI.js"; + +// dist/seed/seed.js +import { mkdir, readFile, writeFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +// dist/seed/data/categories.js +var CATEGORIES = [ + { + slug: "workwear", + code: "IP-C01", + name: "\u067E\u0648\u0634\u0627\u06A9 \u06A9\u0627\u0631 \u0648 \u0627\u0644\u0628\u0633\u0647 \u0635\u0646\u0639\u062A\u06CC", + en: "INDUSTRIAL WORKWEAR", + shortDesc: "\u0644\u0628\u0627\u0633\u200C\u06A9\u0627\u0631 \u0635\u0646\u0639\u062A\u06CC \u0628\u0627 \u067E\u0627\u0631\u0686\u0647 \u0641\u0644\u0627\u0645\u0646\u062A \u06A9\u062C\u0631\u0627\u0647 \u0627\u0639\u0644\u0627\u060C \u062F\u0648\u062E\u062A \u0633\u0647 \u0633\u0648\u0632\u0646\u0647 \u0648 \u0622\u0633\u062A\u0631 \u0639\u0631\u0642\u200C\u06AF\u06CC\u0631\u061B \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC \u0648 \u0635\u0646\u0639\u062A\u06CC.", + fullDesc: "\u0645\u062C\u0645\u0648\u0639\u0647 \u06A9\u0627\u0645\u0644 \u067E\u0648\u0634\u0627\u06A9 \u06A9\u0627\u0631 \u0635\u0646\u0639\u062A\u06CC \u0634\u0627\u0645\u0644 \u06A9\u0627\u067E\u0634\u0646 \u0648 \u0634\u0644\u0648\u0627\u0631 \u0645\u0647\u0646\u062F\u0633\u06CC\u060C \u0644\u0628\u0627\u0633 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC\u060C \u067E\u06CC\u0634\u200C\u0628\u0646\u062F \u062F\u0648\u0628\u0646\u062F\u0647 \u0648 \u062A\u06CC\u200C\u0634\u0631\u062A \u06A9\u0627\u0631. \u062A\u0645\u0627\u0645\u06CC \u0645\u062F\u0644\u200C\u0647\u0627 \u0628\u0627 \u067E\u0627\u0631\u0686\u0647 \u0641\u0644\u0627\u0645\u0646\u062A \u06A9\u062C\u0631\u0627\u0647 \u0627\u0639\u0644\u0627 \u0648 \u06A9\u062A\u0627\u0646 \u0645\u0642\u0627\u0648\u0645\u060C \u062F\u0648\u062E\u062A \u0635\u0646\u0639\u062A\u06CC \u0633\u0647 \u0633\u0648\u0632\u0646\u0647 \u067E\u06CC\u0648\u0633\u062A\u0647 \u0628\u0631\u0627\u06CC \u062C\u0644\u0648\u06AF\u06CC\u0631\u06CC \u0627\u0632 \u0634\u06A9\u0627\u0641\u062A\u06AF\u06CC \u062F\u0631\u0632\u0647\u0627 \u0648 \u0622\u0633\u062A\u0631 \u0639\u0631\u0642\u200C\u06AF\u06CC\u0631 \u0627\u062E\u062A\u0635\u0627\u0635\u06CC \u062A\u0648\u0644\u06CC\u062F \u0645\u06CC\u200C\u0634\u0648\u0646\u062F. \u0645\u0648\u062C\u0648\u062F \u062F\u0631 \u0633\u0627\u06CC\u0632\u0647\u0627\u06CC M \u062A\u0627 4XL.", + icon: "Shirt", + products: [ + { + code: "IP-W01", + name: "\u0644\u0628\u0627\u0633\u06A9\u0627\u0631 \u0645\u062F\u0644 \u0622\u0644\u0641\u0627", + en: "ALPHA WORKWEAR", + desc: "\u06A9\u0627\u067E\u0634\u0646 \u0648 \u0634\u0644\u0648\u0627\u0631 \u0645\u0647\u0646\u062F\u0633\u06CC \u0628\u0627 \u062C\u06CC\u0628\u200C\u0647\u0627\u06CC \u067E\u0627\u06A9\u062A\u06CC \u0648 \u0632\u06CC\u067E\u200C\u062F\u0627\u0631\u060C \u0646\u0648\u0627\u0631 \u0645\u063A\u0632\u06CC \u062A\u0632\u0626\u06CC\u0646\u06CC \u0648 \u0637\u0631\u0627\u062D\u06CC \u0627\u0631\u06AF\u0648\u0646\u0648\u0645\u06CC\u06A9 \u0628\u0631\u0627\u06CC \u062A\u06CC\u0645\u200C\u0647\u0627\u06CC \u0641\u0646\u06CC \u0648 \u0645\u0647\u0646\u062F\u0633\u06CC.", + specs: ["\u0641\u0644\u0627\u0645\u0646\u062A \u06A9\u062C\u0631\u0627\u0647 \u0627\u0639\u0644\u0627", "\u062F\u0648\u062E\u062A \u0633\u0647 \u0633\u0648\u0632\u0646\u0647", "\u0622\u0633\u062A\u0631 \u0639\u0631\u0642\u200C\u06AF\u06CC\u0631", "\u0633\u0627\u06CC\u0632 M \u062A\u0627 4XL"], + variants: [ + "\u0637\u0648\u0633\u06CC/\u0622\u0628\u06CC", + "\u0645\u0634\u06A9\u06CC/\u0642\u0631\u0645\u0632", + "\u0645\u0634\u06A9\u06CC/\u0632\u0631\u062F", + "\u06A9\u0631\u0645/\u0633\u0631\u0645\u0647\u200C\u0627\u06CC" + ] + }, + { + code: "IP-W02", + name: "\u0644\u0628\u0627\u0633\u06A9\u0627\u0631 \u0645\u062F\u0644 \u0627\u0648\u0631\u062C\u06CC\u0646\u0627\u0644", + en: "ORIGINAL WORKWEAR", + desc: "\u06A9\u0627\u067E\u0634\u0646 \u0648 \u0634\u0644\u0648\u0627\u0631 \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F \u0628\u0627 \u062F\u0648\u0627\u0645 \u0628\u0627\u0644\u0627\u060C \u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u062F\u0631 \u0641\u0646\u06CC \u06A9\u0627\u0631\u062E\u0627\u0646\u062C\u0627\u062A \u0648 \u062E\u0637\u0648\u0637 \u062A\u0648\u0644\u06CC\u062F \u0628\u0627 \u062A\u0631\u06A9\u06CC\u0628\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u062F\u0648\u0631\u0646\u06AF.", + specs: ["\u06A9\u062A\u0627\u0646 \u0645\u0642\u0627\u0648\u0645", "\u062F\u0648\u062E\u062A \u0633\u0647 \u0633\u0648\u0632\u0646\u0647", "\u0622\u0633\u062A\u0631 \u0639\u0631\u0642\u200C\u06AF\u06CC\u0631", "\u0633\u0627\u06CC\u0632 M \u062A\u0627 4XL"], + variants: ["\u062A\u0631\u06A9\u06CC\u0628\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u062F\u0648\u0631\u0646\u06AF"] + }, + { + code: "IP-W03", + name: "\u0644\u0628\u0627\u0633\u06A9\u0627\u0631 \u0645\u062F\u0644 \u0628\u0648\u0641\u0627\u0644\u0648", + en: "BUFFALO WORKWEAR", + desc: "\u0637\u0631\u0627\u062D\u06CC \u0627\u0633\u067E\u0631\u062A \u0628\u0627 \u0628\u0631\u0634\u200C\u0647\u0627\u06CC \u062A\u0642\u0648\u06CC\u062A\u06CC \u0631\u0648\u06CC \u0634\u0627\u0646\u0647 \u0648 \u0628\u0627\u0632\u0648\u060C \u0632\u06CC\u067E \u0645\u062E\u0641\u06CC \u0645\u062D\u0627\u0641\u0638\u200C\u062F\u0627\u0631\u061B \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0641\u0639\u0627\u0644.", + specs: ["\u0641\u0644\u0627\u0645\u0646\u062A \u06A9\u062C\u0631\u0627\u0647 \u0627\u0639\u0644\u0627", "\u0632\u06CC\u067E \u0645\u062E\u0641\u06CC \u0645\u062D\u0627\u0641\u0638\u200C\u062F\u0627\u0631", "\u0628\u0631\u0634 \u062A\u0642\u0648\u06CC\u062A\u06CC \u0634\u0627\u0646\u0647", "\u0633\u0627\u06CC\u0632 M \u062A\u0627 4XL"], + variants: [ + "\u0633\u0631\u0645\u0647\u200C\u0627\u06CC/\u0632\u0631\u062F", + "\u0637\u0648\u0633\u06CC/\u0642\u0631\u0645\u0632", + "\u0637\u0648\u0633\u06CC/\u062E\u0631\u062F\u0644\u06CC", + "\u0622\u0628\u06CC/\u0645\u0634\u06A9\u06CC" + ] + }, + { + code: "IP-W04", + name: "\u0644\u0628\u0627\u0633\u06A9\u0627\u0631 \u0633\u062A \u0648\u0631\u06A9", + en: "SET WORK", + desc: "\u0633\u062A \u0627\u062F\u0627\u0631\u06CC/\u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC \u0628\u0627 \u0627\u0646\u0639\u0637\u0627\u0641 \u0628\u0627\u0644\u0627 \u062C\u0647\u062A \u0641\u0639\u0627\u0644\u06CC\u062A\u200C\u0647\u0627\u06CC \u0641\u0646\u06CC \u0648 \u062A\u0639\u0645\u06CC\u0631\u0627\u062A\u06CC\u061B \u0642\u0627\u0628\u0644 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0633\u062A\u0627\u062F\u06CC \u0648 \u0639\u0645\u0644\u06CC\u0627\u062A\u06CC.", + specs: ["\u06A9\u062A\u0627\u0646 \u0645\u0642\u0627\u0648\u0645", "\u062F\u0648\u062E\u062A \u0633\u0647 \u0633\u0648\u0632\u0646\u0647", "\u0637\u0631\u0627\u062D\u06CC \u0645\u0646\u0639\u0637\u0641", "\u0633\u0627\u06CC\u0632 M \u062A\u0627 4XL"], + variants: ["\u062A\u0631\u06A9\u06CC\u0628\u200C\u0647\u0627\u06CC \u0686\u0646\u062F\u06AF\u0627\u0646\u0647 \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC"] + }, + { + code: "IP-W05", + name: "\u0644\u0628\u0627\u0633\u06A9\u0627\u0631 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC", + en: "WELDING WORKWEAR", + desc: "\u0645\u062A\u0631\u06CC\u0627\u0644 \u0633\u0646\u06AF\u06CC\u0646 \u06A9\u062A\u0627\u0646 \u06CC\u0627 \u0686\u0631\u0645 \u062C\u0647\u062A \u0645\u0642\u0627\u0648\u0645\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u067E\u0627\u0634\u0634 \u062C\u0631\u0642\u0647\u200C\u0647\u0627\u06CC \u0645\u0630\u0627\u0628\u061B \u0637\u0631\u0627\u062D\u06CC\u200C\u0634\u062F\u0647 \u0628\u0631\u0627\u06CC \u062C\u0648\u0634\u06A9\u0627\u0631\u0627\u0646 \u0635\u0646\u0639\u062A\u06CC.", + specs: ["\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u062C\u0631\u0642\u0647 \u0645\u0630\u0627\u0628", "\u06A9\u062A\u0627\u0646 \u0633\u0646\u06AF\u06CC\u0646 / \u0686\u0631\u0645", "\u062F\u0648\u062E\u062A \u0635\u0646\u0639\u062A\u06CC", "\u0633\u0627\u06CC\u0632 M \u062A\u0627 4XL"] + }, + { + code: "IP-W06", + name: "\u067E\u06CC\u0634\u200C\u0628\u0646\u062F \u062F\u0648\u0628\u0646\u062F\u0647", + en: "BIB OVERALLS", + desc: "\u0622\u0632\u0627\u062F\u06CC \u0639\u0645\u0644 \u06A9\u0627\u0645\u0644 \u06A9\u062A\u0641 \u0648 \u0634\u0627\u0646\u0647 \u0628\u0627 \u062C\u06CC\u0628\u200C\u0647\u0627\u06CC \u0686\u0646\u062F\u0645\u0646\u0638\u0648\u0631\u0647 \u0627\u0628\u0632\u0627\u0631 \u0628\u0631 \u0631\u0648\u06CC \u067E\u06CC\u0634\u200C\u0633\u06CC\u0646\u0647\u061B \u0627\u06CC\u062F\u0647\u200C\u0622\u0644 \u0628\u0631\u0627\u06CC \u06A9\u0627\u0631\u0647\u0627\u06CC \u062A\u0639\u0645\u06CC\u0631\u0627\u062A\u06CC \u0648 \u0645\u0648\u0646\u062A\u0627\u0698.", + specs: ["\u0622\u0632\u0627\u062F\u06CC \u062D\u0631\u06A9\u062A \u0634\u0627\u0646\u0647", "\u062C\u06CC\u0628 \u0627\u0628\u0632\u0627\u0631 \u067E\u06CC\u0634\u200C\u0633\u06CC\u0646\u0647", "\u062F\u0648\u062E\u062A \u0633\u0647 \u0633\u0648\u0632\u0646\u0647", "\u0633\u0627\u06CC\u0632 M \u062A\u0627 4XL"], + variants: ["\u0633\u0631\u0645\u0647\u200C\u0627\u06CC", "\u062E\u0627\u06A9\u0633\u062A\u0631\u06CC"] + }, + { + code: "IP-W07", + name: "\u062A\u06CC\u200C\u0634\u0631\u062A \u0635\u0646\u0639\u062A\u06CC", + en: "INDUSTRIAL T-SHIRT", + desc: "\u062A\u06CC\u200C\u0634\u0631\u062A \u06CC\u0642\u0647\u200C\u062F\u0627\u0631 \u062C\u0648\u062F\u0648\u0646 / \u067E\u0646\u0628\u0647\u200C\u0627\u06CC \u0645\u0646\u0627\u0633\u0628 \u0641\u0635\u0648\u0644 \u06AF\u0631\u0645 \u0648 \u0632\u06CC\u0631\u067E\u0648\u0634 \u06A9\u0627\u067E\u0634\u0646 \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC \u062F\u0631 \u0633\u0648\u0644\u0647\u200C\u0647\u0627\u06CC \u0633\u0631\u067E\u0648\u0634\u06CC\u062F\u0647.", + specs: ["\u067E\u0646\u0628\u0647 / \u062C\u0648\u062F\u0648\u0646", "\u06CC\u0642\u0647\u200C\u062F\u0627\u0631", "\u0645\u0646\u0627\u0633\u0628 \u0641\u0635\u0648\u0644 \u06AF\u0631\u0645", "\u0633\u0627\u06CC\u0632 M \u062A\u0627 4XL"] + } + ] + }, + { + slug: "safety-footwear", + code: "IP-C02", + name: "\u067E\u0627\u06CC\u067E\u0648\u0634 \u0648 \u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC", + en: "SAFETY FOOTWEAR", + shortDesc: "\u06A9\u0641\u0634\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u06A9\u0641\u0634\u200C\u0647\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC\u061B \u0631\u0627\u062D\u062A \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0631\u0627\u06CC \u0645\u062D\u06CC\u0637 \u0627\u062F\u0627\u0631\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u0648 \u0636\u062F \u0644\u063A\u0632\u0634 \u0628\u0631\u0627\u06CC \u06A9\u0627\u0631\u06AF\u0627\u0647.", + fullDesc: "\u067E\u0627\u06CC\u067E\u0648\u0634 \u0627\u06CC\u0645\u0646\u06CC \u0634\u0627\u0645\u0644 \u06A9\u0641\u0634\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0628\u0631\u0627\u06CC \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0641\u0634\u200C\u0647\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC \u0628\u0631\u0627\u06CC \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u061B \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645 \u0648 \u0645\u0648\u0627\u062F \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9.", + icon: "Footprints", + groups: [ + { slug: "office", name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC", desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645." }, + { slug: "worker", name: "\u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC", desc: "\u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9." } + ], + products: [ + { + code: "IP-F01", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u0645\u062F\u0644 \u06F1\u06F1\u06F7\u06F4", + en: "OFFICE SHOE 1174", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0646\u0628\u0648\u06A9", "\u0628\u0646\u062F\u062F\u0627\u0631", "\u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645"], + image: "/images/products/shoes/office/1.webp" + }, + { + code: "IP-F02", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u0628\u06CC\u200C\u0628\u0646\u062F \u0645\u062F\u0644 \u06F6", + en: "SLIP-ON OFFICE SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0637\u0628\u06CC\u0639\u06CC", "\u0628\u062F\u0648\u0646 \u0628\u0646\u062F", "\u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645"], + image: "/images/products/shoes/office/2.webp" + }, + { + code: "IP-F03", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u0628\u0646\u062F\u062F\u0627\u0631 \u0645\u0634\u06A9\u06CC", + en: "LACE-UP OFFICE SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0637\u0628\u06CC\u0639\u06CC", "\u0628\u0646\u062F\u062F\u0627\u0631", "\u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645"], + image: "/images/products/shoes/office/3.webp" + }, + { + code: "IP-F04", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u0628\u06CC\u200C\u0628\u0646\u062F AAEA075", + en: "SLIP-ON OFFICE SHOE AAEA075", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0637\u0628\u06CC\u0639\u06CC", "\u0628\u062F\u0648\u0646 \u0628\u0646\u062F", "\u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645"], + image: "/images/products/shoes/office/4.webp" + }, + { + code: "IP-F05", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u0634\u0628\u0631\u0648", + en: "SHEBRO OFFICE SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0637\u0628\u06CC\u0639\u06CC", "\u0628\u0646\u062F\u062F\u0627\u0631", "\u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645"], + image: "/images/products/shoes/office/5.webp" + }, + { + code: "IP-F06", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u0628\u06CC\u200C\u0628\u0646\u062F \u06A9\u0644\u0627\u0633\u06CC\u06A9", + en: "CLASSIC SLIP-ON OFFICE SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0637\u0628\u06CC\u0639\u06CC", "\u0628\u062F\u0648\u0646 \u0628\u0646\u062F", "\u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645"], + image: "/images/products/shoes/office/6.webp" + }, + { + code: "IP-F07", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u06A9\u0627\u0644\u062C", + en: "LOAFER OFFICE SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0637\u0628\u06CC\u0639\u06CC", "\u06A9\u0627\u0644\u062C", "\u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645"], + image: "/images/products/shoes/office/7.webp" + }, + { + code: "IP-F08", + group: "office", + name: "\u06A9\u0641\u0634 \u0627\u062F\u0627\u0631\u06CC \u062F\u06CC\u067E\u0644\u0645\u0627\u062A", + en: "DIPLOMAT OFFICE SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0633\u0628\u06A9 \u0635\u0646\u0639\u062A\u06CC\u060C \u0631\u0627\u062D\u062A\u060C \u0633\u0628\u06A9 \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u0632\u06CC\u0631\u0647 \u0645\u0642\u0627\u0648\u0645.", + specs: ["\u0686\u0631\u0645 \u0637\u0628\u06CC\u0639\u06CC", "\u0628\u0646\u062F\u062F\u0627\u0631", "\u0637\u0631\u0627\u062D\u06CC \u0631\u0633\u0645\u06CC"], + image: "/images/products/shoes/office/8.webp" + }, + { + code: "IP-F09", + group: "worker", + name: "\u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC \u0645\u062F\u0644 \u06F1", + en: "WORKER SAFETY SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9.", + specs: ["\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0633\u0627\u06CC\u0634", "\u0632\u06CC\u0631\u0647 \u0636\u062F \u0644\u063A\u0632\u0634"], + image: "/images/products/shoes/worker/1.png" + }, + { + code: "IP-F10", + group: "worker", + name: "\u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC \u0645\u062F\u0644 \u06F2", + en: "WORKER SAFETY SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9.", + specs: ["\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0633\u0627\u06CC\u0634", "\u0632\u06CC\u0631\u0647 \u0636\u062F \u0644\u063A\u0632\u0634"], + image: "/images/products/shoes/worker/2.png" + }, + { + code: "IP-F11", + group: "worker", + name: "\u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC \u0645\u062F\u0644 \u06F9\u06F0", + en: "WORKER SAFETY SHOE 90", + desc: "\u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9.", + specs: ["\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0633\u0627\u06CC\u0634", "\u0632\u06CC\u0631\u0647 \u0636\u062F \u0644\u063A\u0632\u0634"], + image: "/images/products/shoes/worker/3.png" + }, + { + code: "IP-F12", + group: "worker", + name: "\u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC \u067E\u0627\u062A\u0646 \u067E\u062F\u06CC\u062F\u0647 \u062A\u0628\u0631\u06CC\u0632 \u0645\u062F\u0644 \u0631\u0627\u06CC\u06A9\u0627 S1017", + en: "PATEN PADIDEH RAYKA S1017", + desc: "\u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9.", + specs: ["\u067E\u0627\u062A\u0646 \u067E\u062F\u06CC\u062F\u0647 \u062A\u0628\u0631\u06CC\u0632", "\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0633\u0627\u06CC\u0634", "\u0632\u06CC\u0631\u0647 \u0636\u062F \u0644\u063A\u0632\u0634"], + image: "/images/products/shoes/worker/4.png" + }, + { + code: "IP-F13", + group: "worker", + name: "\u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC \u067E\u06CC\u0645\u0627 \u0645\u062F\u0644 \u062F\u0646\u0627", + en: "PAYMA DENA SAFETY SHOE", + desc: "\u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9.", + specs: ["\u067E\u06CC\u0645\u0627", "\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0633\u0627\u06CC\u0634", "\u0632\u06CC\u0631\u0647 \u0636\u062F \u0644\u063A\u0632\u0634"], + image: "/images/products/shoes/worker/5.png" + }, + { + code: "IP-F14", + group: "worker", + name: "\u06A9\u0641\u0634 \u06A9\u0627\u0631 \u06A9\u0627\u0631\u06AF\u0631\u06CC \u0633\u0627\u0642\u200C\u062F\u0627\u0631", + en: "WORKER SAFETY BOOT", + desc: "\u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627 \u0648 \u067E\u0631\u0648\u0698\u0647\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u06CC\u0634 \u0648 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0633\u0628\u06A9.", + specs: ["\u0633\u0627\u0642\u200C\u062F\u0627\u0631", "\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0633\u0627\u06CC\u0634", "\u0632\u06CC\u0631\u0647 \u0636\u062F \u0644\u063A\u0632\u0634"], + image: "/images/products/shoes/worker/6.png" + } + ] + }, + { + slug: "protective-gloves", + code: "IP-C03", + name: "\u062F\u0633\u062A\u06A9\u0634\u200C\u0647\u0627\u06CC \u062D\u0641\u0627\u0638\u062A\u06CC", + en: "PROTECTIVE GLOVES", + shortDesc: "\u062F\u0633\u062A\u06A9\u0634\u200C\u0647\u0627\u06CC \u0636\u062F \u0628\u0631\u0634\u060C \u0686\u0631\u0645\u060C \u0636\u062F \u0627\u0633\u06CC\u062F \u0648 \u0636\u062F \u062D\u0644\u0627\u0644 \u0628\u0631\u0627\u06CC \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0635\u0646\u0639\u062A\u06CC\u060C \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC \u0648 \u062A\u0645\u0627\u0633 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC.", + fullDesc: "\u062F\u0633\u062A\u06A9\u0634\u200C\u0647\u0627\u06CC \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC \u0634\u0627\u0645\u0644 \u0645\u062F\u0644\u200C\u0647\u0627\u06CC \u0636\u062F \u0628\u0631\u0634\u060C \u0686\u0631\u0645\u060C \u0636\u062F \u0627\u0633\u06CC\u062F \u0648 \u0636\u062F \u062D\u0644\u0627\u0644\u061B \u0627\u0632 \u0628\u0631\u0646\u062F\u0647\u0627\u06CC \u0627\u0633\u062A\u0627\u062F\u06A9\u0627\u0631\u060C \u0627\u0645\u0631\u06CC\u06A9\u0646 \u0633\u06CC\u0641\u062A\u06CC\u060C \u0645\u0627\u06A9\u0633\u06CC \u062F\u0631\u0627\u06CC \u0648 NM Safety. \u0647\u0631 \u0645\u062F\u0644 \u0645\u062A\u0646\u0627\u0633\u0628 \u0628\u0627 \u0646\u0648\u0639 \u062E\u0637\u0631 \u0645\u062D\u06CC\u0637 \u06A9\u0627\u0631 \u0627\u0646\u062A\u062E\u0627\u0628 \u0634\u062F\u0647 \u0627\u0633\u062A.", + icon: "Hand", + groups: [ + { slug: "cut", name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0628\u0631\u0634", desc: "\u0627\u06CC\u0645\u0646 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u06CC\u063A\u0647\u200C\u0647\u0627 \u0648 \u0641\u0644\u0632\u0627\u062A \u062A\u06CC\u0632." }, + { slug: "leather", name: "\u062F\u0633\u062A\u06A9\u0634 \u0686\u0631\u0645", desc: "\u0645\u062D\u0627\u0641\u0638 \u062F\u0633\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062D\u0631\u0627\u0631\u062A\u060C \u062C\u0631\u0642\u0647 \u0648 \u0633\u0627\u06CC\u0634 \u062F\u0631 \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0648 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC." }, + { slug: "acid", name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0627\u0633\u06CC\u062F", desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0633\u06CC\u062F\u0647\u0627 \u0648 \u0628\u0627\u0632\u0647\u0627." }, + { slug: "solvent", name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u062D\u0644\u0627\u0644", desc: "\u0645\u0642\u0627\u0648\u0645\u062A \u0628\u0627\u0644\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u0645\u0627\u0633 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC." } + ], + products: [ + { + code: "IP-G01", + group: "cut", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0628\u0631\u0634 \u0644\u0627\u062A\u06A9\u0633\u06CC", + en: "LATEX CUT-RESISTANT GLOVE", + desc: "\u0627\u06CC\u0645\u0646 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u06CC\u063A\u0647\u200C\u0647\u0627 \u0648 \u0641\u0644\u0632\u0627\u062A \u062A\u06CC\u0632.", + specs: ["\u0636\u062F \u0628\u0631\u0634", "\u067E\u0648\u0634\u0634 \u0644\u0627\u062A\u06A9\u0633"], + image: "/images/products/gloves/cut/1.webp" + }, + { + code: "IP-G02", + group: "cut", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0628\u0631\u0634 \u0645\u062F\u0644 \u06F2", + en: "CUT-RESISTANT GLOVE", + desc: "\u0627\u06CC\u0645\u0646 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u06CC\u063A\u0647\u200C\u0647\u0627 \u0648 \u0641\u0644\u0632\u0627\u062A \u062A\u06CC\u0632.", + specs: ["\u0636\u062F \u0628\u0631\u0634"], + image: "/images/products/gloves/cut/2.webp" + }, + { + code: "IP-G03", + group: "cut", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0628\u0631\u0634 \u0645\u062F\u0644 \u06F3", + en: "CUT-RESISTANT GLOVE", + desc: "\u0627\u06CC\u0645\u0646 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u06CC\u063A\u0647\u200C\u0647\u0627 \u0648 \u0641\u0644\u0632\u0627\u062A \u062A\u06CC\u0632.", + specs: ["\u0636\u062F \u0628\u0631\u0634"], + image: "/images/products/gloves/cut/3.webp" + }, + { + code: "IP-G04", + group: "cut", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0628\u0631\u0634 \u0627\u0633\u062A\u0627\u062F\u06A9\u0627\u0631 \u06F1\u06F2 \u062C\u0641\u062A\u06CC", + en: "OSTADKAR CUT-RESISTANT GLOVE", + desc: "\u0627\u06CC\u0645\u0646 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u06CC\u063A\u0647\u200C\u0647\u0627 \u0648 \u0641\u0644\u0632\u0627\u062A \u062A\u06CC\u0632.", + specs: ["\u0636\u062F \u0628\u0631\u0634", "\u0627\u0633\u062A\u0627\u062F\u06A9\u0627\u0631", "\u0628\u0633\u062A\u0647 \u06F1\u06F2 \u062C\u0641\u062A\u06CC"], + image: "/images/products/gloves/cut/4.webp" + }, + { + code: "IP-G05", + group: "cut", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0628\u0631\u0634 \u062A\u0627\u0646\u06AF \u0648\u0627\u0646\u06AF", + en: "TANG WANG CUT-RESISTANT GLOVE", + desc: "\u0627\u06CC\u0645\u0646 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u06CC\u063A\u0647\u200C\u0647\u0627 \u0648 \u0641\u0644\u0632\u0627\u062A \u062A\u06CC\u0632.", + specs: ["\u0636\u062F \u0628\u0631\u0634", "\u062A\u0627\u0646\u06AF \u0648\u0627\u0646\u06AF"], + image: "/images/products/gloves/cut/5.webp" + }, + { + code: "IP-G06", + group: "leather", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0686\u0631\u0645 \u0645\u062F\u0644 \u06F0\u06F7", + en: "LEATHER GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638 \u062F\u0633\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062D\u0631\u0627\u0631\u062A\u060C \u062C\u0631\u0642\u0647 \u0648 \u0633\u0627\u06CC\u0634 \u062F\u0631 \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0648 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC.", + specs: ["\u0686\u0631\u0645"], + image: "/images/products/gloves/leather/1.webp" + }, + { + code: "IP-G07", + group: "leather", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0686\u0631\u0645 BMW", + en: "BMW LEATHER GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638 \u062F\u0633\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062D\u0631\u0627\u0631\u062A\u060C \u062C\u0631\u0642\u0647 \u0648 \u0633\u0627\u06CC\u0634 \u062F\u0631 \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0648 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC.", + specs: ["\u0686\u0631\u0645", "\u0633\u0627\u0642 \u0628\u0644\u0646\u062F"], + image: "/images/products/gloves/leather/2.webp" + }, + { + code: "IP-G08", + group: "leather", + name: "\u062F\u0633\u062A\u06A9\u0634 \u06A9\u0641 \u0686\u0631\u0645 \u062F\u0648\u0628\u0644 \u0633\u0627\u0642 \u067E\u0627\u0631\u0686\u0647\u200C\u0627\u06CC", + en: "DOUBLE-PALM LEATHER GLOVE, FABRIC CUFF", + desc: "\u0645\u062D\u0627\u0641\u0638 \u062F\u0633\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062D\u0631\u0627\u0631\u062A\u060C \u062C\u0631\u0642\u0647 \u0648 \u0633\u0627\u06CC\u0634 \u062F\u0631 \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0648 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC.", + specs: ["\u06A9\u0641 \u0686\u0631\u0645 \u062F\u0648\u0628\u0644", "\u0633\u0627\u0642 \u067E\u0627\u0631\u0686\u0647\u200C\u0627\u06CC"], + image: "/images/products/gloves/leather/3.webp" + }, + { + code: "IP-G09", + group: "leather", + name: "\u062F\u0633\u062A\u06A9\u0634 \u06A9\u0641 \u0686\u0631\u0645 \u062F\u0648\u0628\u0644 \u0633\u0627\u0642 \u0686\u0631\u0645", + en: "DOUBLE-PALM LEATHER GLOVE, LEATHER CUFF", + desc: "\u0645\u062D\u0627\u0641\u0638 \u062F\u0633\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062D\u0631\u0627\u0631\u062A\u060C \u062C\u0631\u0642\u0647 \u0648 \u0633\u0627\u06CC\u0634 \u062F\u0631 \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0648 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC.", + specs: ["\u06A9\u0641 \u0686\u0631\u0645 \u062F\u0648\u0628\u0644", "\u0633\u0627\u0642 \u0686\u0631\u0645"], + image: "/images/products/gloves/leather/4.webp" + }, + { + code: "IP-G10", + group: "leather", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0647\u0648\u0628\u0627\u0631\u062A \u0627\u0645\u0631\u06CC\u06A9\u0646 \u0633\u06CC\u0641\u062A\u06CC", + en: "AMERICAN SAFETY HOBART GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638 \u062F\u0633\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062D\u0631\u0627\u0631\u062A\u060C \u062C\u0631\u0642\u0647 \u0648 \u0633\u0627\u06CC\u0634 \u062F\u0631 \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0648 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC.", + specs: ["\u0686\u0631\u0645", "\u062C\u0648\u0634\u06A9\u0627\u0631\u06CC", "EN 388 / EN 407"], + image: "/images/products/gloves/leather/5.webp" + }, + { + code: "IP-G11", + group: "leather", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0647\u0648\u0628\u0627\u0631\u062A \u0637\u0631\u062D \u0641\u0631\u0627\u0646\u0633\u0647", + en: "FRENCH-STYLE HOBART GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638 \u062F\u0633\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062D\u0631\u0627\u0631\u062A\u060C \u062C\u0631\u0642\u0647 \u0648 \u0633\u0627\u06CC\u0634 \u062F\u0631 \u06A9\u0627\u0631\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0648 \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC.", + specs: ["\u0686\u0631\u0645", "\u062C\u0648\u0634\u06A9\u0627\u0631\u06CC"], + image: "/images/products/gloves/leather/6.webp" + }, + { + code: "IP-G12", + group: "acid", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0627\u0633\u06CC\u062F \u0645\u062F\u0644 \u06F1", + en: "ACID-RESISTANT GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0633\u06CC\u062F\u0647\u0627 \u0648 \u0628\u0627\u0632\u0647\u0627.", + specs: ["\u0636\u062F \u0627\u0633\u06CC\u062F"], + image: "/images/products/gloves/acid/1.webp" + }, + { + code: "IP-G13", + group: "acid", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0627\u0633\u06CC\u062F \u0645\u062F\u0644 \u06F2", + en: "ACID-RESISTANT GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0633\u06CC\u062F\u0647\u0627 \u0648 \u0628\u0627\u0632\u0647\u0627.", + specs: ["\u0636\u062F \u0627\u0633\u06CC\u062F"], + image: "/images/products/gloves/acid/2.webp" + }, + { + code: "IP-G14", + group: "acid", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0627\u0633\u06CC\u062F \u0645\u062F\u0644 \u06F3", + en: "ACID-RESISTANT GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0633\u06CC\u062F\u0647\u0627 \u0648 \u0628\u0627\u0632\u0647\u0627.", + specs: ["\u0636\u062F \u0627\u0633\u06CC\u062F"], + image: "/images/products/gloves/acid/3.webp" + }, + { + code: "IP-G15", + group: "acid", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u0627\u0633\u06CC\u062F \u0645\u0642\u0627\u0648\u0645 \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC", + en: "CHEMICAL-RESISTANT GLOVE", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0633\u06CC\u062F\u0647\u0627 \u0648 \u0628\u0627\u0632\u0647\u0627.", + specs: ["\u0636\u062F \u0627\u0633\u06CC\u062F", "\u0645\u0642\u0627\u0648\u0645 \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC", "\u0633\u0627\u0642 \u0628\u0644\u0646\u062F"], + image: "/images/products/gloves/acid/4.webp" + }, + { + code: "IP-G16", + group: "solvent", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u062D\u0644\u0627\u0644 \u0645\u062F\u0644 \u06F1\u06F3", + en: "SOLVENT-RESISTANT GLOVE", + desc: "\u0645\u0642\u0627\u0648\u0645\u062A \u0628\u0627\u0644\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u0645\u0627\u0633 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC.", + specs: ["\u0636\u062F \u062D\u0644\u0627\u0644"], + image: "/images/products/gloves/solvent/1.webp" + }, + { + code: "IP-G17", + group: "solvent", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0645\u0627\u06A9\u0633\u06CC \u062F\u0631\u0627\u06CC \u067E\u0644\u0627\u0633 56-530", + en: "MAXIDRY PLUS 56-530", + desc: "\u0645\u0642\u0627\u0648\u0645\u062A \u0628\u0627\u0644\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u0645\u0627\u0633 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC.", + specs: ["\u0636\u062F \u062D\u0644\u0627\u0644", "MaxiDry Plus"], + image: "/images/products/gloves/solvent/2.webp" + }, + { + code: "IP-G18", + group: "solvent", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0636\u062F \u062D\u0644\u0627\u0644 \u0646\u06CC\u062A\u0631\u06CC\u0644\u06CC", + en: "NITRILE SOLVENT-RESISTANT GLOVE", + desc: "\u0645\u0642\u0627\u0648\u0645\u062A \u0628\u0627\u0644\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u0645\u0627\u0633 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC.", + specs: ["\u0636\u062F \u062D\u0644\u0627\u0644", "\u0646\u06CC\u062A\u0631\u06CC\u0644"], + image: "/images/products/gloves/solvent/3.webp" + }, + { + code: "IP-G19", + group: "solvent", + name: "\u062F\u0633\u062A\u06A9\u0634 \u0646\u06CC\u062A\u0631\u06CC\u0644 \u0622\u0632\u0645\u0627\u06CC\u0634\u06AF\u0627\u0647\u06CC \u0636\u062F \u062D\u0644\u0627\u0644 NM Safety", + en: "NM SAFETY NITRILE LAB GLOVE", + desc: "\u0645\u0642\u0627\u0648\u0645\u062A \u0628\u0627\u0644\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u062A\u0645\u0627\u0633 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC.", + specs: ["\u0636\u062F \u062D\u0644\u0627\u0644", "\u0646\u06CC\u062A\u0631\u06CC\u0644", "\u0622\u0632\u0645\u0627\u06CC\u0634\u06AF\u0627\u0647\u06CC"], + image: "/images/products/gloves/solvent/4.webp" + } + ] + }, + { + slug: "safety-helmets", + code: "IP-C04", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC", + en: "SAFETY HELMETS", + shortDesc: "\u06A9\u0644\u0627\u0647\u200C\u0647\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC\u060C \u0645\u0647\u0646\u062F\u0633\u06CC\u060C \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0648 \u06A9\u067E \u0627\u06CC\u0645\u0646\u06CC\u061B \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0636\u0631\u0628\u0647 \u0648 \u0633\u0642\u0648\u0637 \u0627\u062C\u0633\u0627\u0645.", + fullDesc: "\u0627\u0646\u0648\u0627\u0639 \u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0635\u0646\u0639\u062A\u06CC \u0634\u0627\u0645\u0644 \u0645\u062F\u0644\u200C\u0647\u0627\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC\u060C \u0645\u0647\u0646\u062F\u0633\u06CC\u060C \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0628\u0627 \u0628\u0646\u062F \u0686\u0627\u0646\u0647 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0648 \u06A9\u067E \u0627\u06CC\u0645\u0646\u06CC \u0633\u0628\u06A9. \u0628\u0627 \u067E\u0648\u0633\u062A\u0647 \u0636\u0631\u0628\u0647\u200C\u06AF\u06CC\u0631 \u0645\u0642\u0627\u0648\u0645\u060C \u0631\u06AF\u0644\u0627\u0698 \u062F\u0627\u062E\u0644\u06CC \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0648 \u062A\u0646\u0648\u0639 \u0631\u0646\u06AF\u06CC \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F HSE.", + icon: "HardHat", + groups: [ + { slug: "worker", name: "\u06A9\u0644\u0627\u0647 \u06A9\u0627\u0631\u06AF\u0631\u06CC", desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u0627\u0632 \u0633\u0631 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0636\u0631\u0628\u0647 \u0648 \u0633\u0642\u0648\u0637 \u0627\u062C\u0633\u0627\u0645." }, + { slug: "engineering", name: "\u06A9\u0644\u0627\u0647 \u0645\u0647\u0646\u062F\u0633\u06CC", desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0635\u0646\u0639\u062A\u06CC \u0633\u0628\u06A9\u060C \u0631\u0627\u062D\u062A \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628." }, + { slug: "height", name: "\u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639", desc: "\u062F\u0627\u0631\u0627\u06CC \u0628\u0646\u062F \u0686\u0627\u0646\u0647 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0631\u0627\u06CC \u062B\u0628\u0627\u062A \u0628\u06CC\u0634\u062A\u0631 \u0647\u0646\u06AF\u0627\u0645 \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639." }, + { slug: "cap", name: "\u06A9\u067E \u0627\u06CC\u0645\u0646\u06CC", desc: "\u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A\u060C \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0631\u0648\u0632\u0645\u0631\u0647 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u0627\u062F\u0627\u0631\u06CC." } + ], + products: [ + { + code: "IP-H01", + group: "worker", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631\u06AF\u0631\u06CC \u0622\u0628\u06CC", + en: "WORKER SAFETY HELMET", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u0627\u0632 \u0633\u0631 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0627\u0631\u06AF\u0627\u0647\u200C\u0647\u0627\u060C \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0636\u0631\u0628\u0647 \u0648 \u0633\u0642\u0648\u0637 \u0627\u062C\u0633\u0627\u0645.", + specs: ["\u067E\u0648\u0633\u062A\u0647 \u0636\u0631\u0628\u0647\u200C\u06AF\u06CC\u0631", "\u0631\u06AF\u0644\u0627\u0698 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/helmets/2.webp" + }, + { + code: "IP-H02", + group: "engineering", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0645\u0647\u0646\u062F\u0633\u06CC \u067E\u0627\u062F\u06A9\u0633", + en: "PADEX ENGINEERING HELMET", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0635\u0646\u0639\u062A\u06CC \u0633\u0628\u06A9\u060C \u0631\u0627\u062D\u062A \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628.", + specs: ["\u067E\u0627\u062F\u06A9\u0633", "\u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628", "\u0631\u06AF\u0644\u0627\u0698 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/helmets/11.webp" + }, + { + code: "IP-H03", + group: "engineering", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0645\u0647\u0646\u062F\u0633\u06CC \u067E\u0627\u062F\u06A9\u0633 PADX", + en: "PADEX PADX ENGINEERING HELMET", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0635\u0646\u0639\u062A\u06CC \u0633\u0628\u06A9\u060C \u0631\u0627\u062D\u062A \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628.", + specs: ["\u067E\u0627\u062F\u06A9\u0633", "\u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628", "\u0631\u06AF\u0644\u0627\u0698 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/helmets/12.webp" + }, + { + code: "IP-H04", + group: "engineering", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0645\u0647\u0646\u062F\u0633 \u067E\u0627\u062F\u06A9\u0633 (\u0646\u0645\u0627\u06CC \u062F\u0627\u062E\u0644\u06CC)", + en: "PADEX HELMET HARNESS", + desc: "\u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0627\u062F\u0627\u0631\u06CC \u0648 \u0635\u0646\u0639\u062A\u06CC \u0633\u0628\u06A9\u060C \u0631\u0627\u062D\u062A \u0648 \u0634\u06A9\u06CC\u0644 \u0628\u0627 \u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628.", + specs: ["\u067E\u0627\u062F\u06A9\u0633", "\u06CC\u0631\u0627\u0642 \u062F\u0627\u062E\u0644\u06CC", "\u0631\u06AF\u0644\u0627\u0698 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/helmets/10.webp" + }, + { + code: "IP-H05", + group: "height", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0628\u0627 \u0639\u06CC\u0646\u06A9", + en: "HEIGHT HELMET WITH VISOR", + desc: "\u062F\u0627\u0631\u0627\u06CC \u0628\u0646\u062F \u0686\u0627\u0646\u0647 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0631\u0627\u06CC \u062B\u0628\u0627\u062A \u0628\u06CC\u0634\u062A\u0631 \u0647\u0646\u06AF\u0627\u0645 \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639.", + specs: ["\u0628\u0646\u062F \u0686\u0627\u0646\u0647", "\u0639\u06CC\u0646\u06A9 \u062F\u0627\u062E\u0644\u06CC", "\u0631\u06AF\u0644\u0627\u0698 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/helmets/1.webp" + }, + { + code: "IP-H06", + group: "height", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 uvex", + en: "UVEX HEIGHT HELMET", + desc: "\u062F\u0627\u0631\u0627\u06CC \u0628\u0646\u062F \u0686\u0627\u0646\u0647 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0631\u0627\u06CC \u062B\u0628\u0627\u062A \u0628\u06CC\u0634\u062A\u0631 \u0647\u0646\u06AF\u0627\u0645 \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639.", + specs: ["uvex", "\u0628\u0646\u062F \u0686\u0627\u0646\u0647", "\u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628"], + image: "/images/products/helmets/3.webp" + }, + { + code: "IP-H07", + group: "height", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0633\u0628\u0632", + en: "HEIGHT SAFETY HELMET", + desc: "\u062F\u0627\u0631\u0627\u06CC \u0628\u0646\u062F \u0686\u0627\u0646\u0647 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0631\u0627\u06CC \u062B\u0628\u0627\u062A \u0628\u06CC\u0634\u062A\u0631 \u0647\u0646\u06AF\u0627\u0645 \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639.", + specs: ["\u0628\u0646\u062F \u0686\u0627\u0646\u0647", "\u0631\u06AF\u0644\u0627\u0698 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/helmets/4.webp" + }, + { + code: "IP-H08", + group: "height", + name: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0635\u0646\u0639\u062A\u06CC MK8", + en: "MK8 INDUSTRIAL HELMET", + desc: "\u062F\u0627\u0631\u0627\u06CC \u0628\u0646\u062F \u0686\u0627\u0646\u0647 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0631\u0627\u06CC \u062B\u0628\u0627\u062A \u0628\u06CC\u0634\u062A\u0631 \u0647\u0646\u06AF\u0627\u0645 \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639.", + specs: ["MK8", "\u0628\u0646\u062F \u0686\u0627\u0646\u0647", "\u062A\u0647\u0648\u06CC\u0647 \u0645\u0646\u0627\u0633\u0628"], + image: "/images/products/helmets/9.webp" + }, + { + code: "IP-H09", + group: "cap", + name: "\u06A9\u067E \u0627\u06CC\u0645\u0646\u06CC \u0636\u0631\u0628\u0647\u200C\u06AF\u06CC\u0631", + en: "SAFETY BUMP CAP", + desc: "\u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A\u060C \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0631\u0648\u0632\u0645\u0631\u0647 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u0627\u062F\u0627\u0631\u06CC.", + specs: ["\u0646\u0642\u0627\u0628\u200C\u062F\u0627\u0631", "\u0636\u0631\u0628\u0647\u200C\u06AF\u06CC\u0631 \u062F\u0627\u062E\u0644\u06CC", "\u0633\u0628\u06A9\u200C\u0648\u0632\u0646"], + image: "/images/products/helmets/5.webp" + } + ] + }, + { + slug: "eye-protection", + code: "IP-C05", + name: "\u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC \u0648 \u0635\u0646\u0639\u062A\u06CC", + en: "EYE PROTECTION", + shortDesc: "\u0639\u06CC\u0646\u06A9\u200C\u0647\u0627\u06CC \u0634\u0641\u0627\u0641 \u0648 \u062F\u0648\u062F\u06CC \u0648 \u06AF\u0627\u06AF\u0644\u200C\u0647\u0627\u06CC \u0645\u062D\u0627\u0641\u0638\u062A\u06CC \u0628\u0627 \u0648\u06CC\u0698\u06AF\u06CC\u200C\u0647\u0627\u06CC \u0636\u062F \u0636\u0631\u0628\u0647\u060C \u0636\u062F \u062E\u0634\u060C \u0636\u062F \u0628\u062E\u0627\u0631 \u0648 UV.", + fullDesc: "\u0639\u06CC\u0646\u06A9\u200C\u0647\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC \u0635\u0646\u0639\u062A\u06CC \u0634\u0627\u0645\u0644 \u0639\u06CC\u0646\u06A9\u200C\u0647\u0627\u06CC \u0634\u0641\u0627\u0641\u060C \u062F\u0648\u062F\u06CC \u0648 UV \u0648 \u06AF\u0627\u06AF\u0644\u200C\u0647\u0627\u06CC \u06A9\u0634\u200C\u062F\u0627\u0631 \u0627\u0632 \u0628\u0631\u0646\u062F\u0647\u0627\u06CC uvex\u060C \u062A\u0648\u062A\u0627\u0635\u060C \u06A9\u0627\u0646\u0627\u0633\u06CC\u0641 \u0648 \u062A\u06A9 \u067E\u0644\u0627\u0633\u062A. \u0636\u062F \u0636\u0631\u0628\u0647\u060C \u0636\u062F \u062E\u0634\u060C \u0636\u062F \u0628\u062E\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0631\u0627\u06CC \u0627\u0646\u0648\u0627\u0639 \u0633\u0627\u06CC\u0632 \u0635\u0648\u0631\u062A.", + icon: "Glasses", + groups: [ + { slug: "clear", name: "\u0639\u06CC\u0646\u06A9 \u0634\u0641\u0627\u0641", desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u0627\u0632 \u0686\u0634\u0645\u200C\u0647\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0628\u0631\u062E\u0648\u0631\u062F \u0627\u062C\u0633\u0627\u0645 \u0648 \u0627\u0628\u0632\u0627\u0631\u061B \u0636\u062F \u062E\u0634 \u0628\u0627 \u062F\u06CC\u062F \u0648\u0627\u0636\u062D." }, + { slug: "tinted", name: "\u0639\u06CC\u0646\u06A9 \u062F\u0648\u062F\u06CC \u0648 UV", desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0634\u0639\u0647 \u0645\u0636\u0631 \u062E\u0648\u0631\u0634\u06CC\u062F \u0648 \u0646\u0648\u0631 \u0634\u062F\u06CC\u062F." }, + { slug: "goggle", name: "\u06AF\u0627\u06AF\u0644", desc: "\u0636\u062F \u0628\u062E\u0627\u0631 \u0648 \u0636\u062F \u0636\u0631\u0628\u0647\u061B \u062C\u0644\u0648\u06AF\u06CC\u0631\u06CC \u0627\u0632 \u0627\u06CC\u062C\u0627\u062F \u0645\u0647 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u06AF\u0631\u0645 \u06CC\u0627 \u0645\u0631\u0637\u0648\u0628." } + ], + products: [ + { + code: "IP-E01", + group: "clear", + name: "\u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC \u0634\u0641\u0627\u0641 \u062F\u0633\u062A\u0647 \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645", + en: "ADJUSTABLE CLEAR SAFETY GLASSES", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u0627\u0632 \u0686\u0634\u0645\u200C\u0647\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0628\u0631\u062E\u0648\u0631\u062F \u0627\u062C\u0633\u0627\u0645 \u0648 \u0627\u0628\u0632\u0627\u0631\u061B \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0631\u0627\u06CC \u0627\u0646\u0648\u0627\u0639 \u0633\u0627\u06CC\u0632 \u0635\u0648\u0631\u062A.", + specs: ["\u0636\u062F \u0636\u0631\u0628\u0647", "\u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/eyewear/1.webp" + }, + { + code: "IP-E02", + group: "clear", + name: "\u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC \u0631\u0648\u0637\u0628\u06CC", + en: "OVER-SPEC SAFETY GLASSES", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u0627\u0632 \u0686\u0634\u0645\u200C\u0647\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0628\u0631\u062E\u0648\u0631\u062F \u0627\u062C\u0633\u0627\u0645 \u0648 \u0627\u0628\u0632\u0627\u0631\u061B \u0642\u0627\u0628\u0644 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0631\u0648\u06CC \u0639\u06CC\u0646\u06A9 \u0637\u0628\u06CC.", + specs: ["\u0636\u062F \u0636\u0631\u0628\u0647", "\u0631\u0648\u0637\u0628\u06CC"], + image: "/images/products/eyewear/4.webp" + }, + { + code: "IP-E03", + group: "clear", + name: "\u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC uvex i-5", + en: "UVEX I-5 SAFETY GLASSES", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u0627\u0632 \u0686\u0634\u0645\u200C\u0647\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0628\u0631\u062E\u0648\u0631\u062F \u0627\u062C\u0633\u0627\u0645 \u0648 \u0627\u0628\u0632\u0627\u0631\u061B \u0636\u062F \u062E\u0634 \u0628\u0627 \u062F\u06CC\u062F \u0648\u0627\u0636\u062D.", + specs: ["uvex", "\u0636\u062F \u0636\u0631\u0628\u0647", "\u0636\u062F \u062E\u0634"], + image: "/images/products/eyewear/5.webp" + }, + { + code: "IP-E04", + group: "clear", + name: "\u0639\u06CC\u0646\u06A9 \u0634\u06CC\u0634\u0647 \u0633\u0641\u06CC\u062F \u062A\u06A9 \u067E\u0644\u0627\u0633\u062A", + en: "TAK PLAST CLEAR GLASSES", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u0627\u0632 \u0686\u0634\u0645\u200C\u0647\u0627 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0628\u0631\u062E\u0648\u0631\u062F \u0627\u062C\u0633\u0627\u0645 \u0648 \u0627\u0628\u0632\u0627\u0631\u061B \u062F\u0627\u0631\u0627\u06CC \u0645\u062D\u0627\u0641\u0638 \u06A9\u0646\u0627\u0631\u06CC.", + specs: ["\u062A\u06A9 \u067E\u0644\u0627\u0633\u062A", "\u0645\u062D\u0627\u0641\u0638 \u06A9\u0646\u0627\u0631\u06CC"], + image: "/images/products/eyewear/11.webp" + }, + { + code: "IP-E05", + group: "tinted", + name: "\u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC uvex \u062F\u0648\u062F\u06CC", + en: "UVEX TINTED SAFETY GLASSES", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0634\u0639\u0647 \u0645\u0636\u0631 \u062E\u0648\u0631\u0634\u06CC\u062F \u0648 \u0646\u0648\u0631 \u0634\u062F\u06CC\u062F.", + specs: ["uvex", "\u0634\u06CC\u0634\u0647 UV", "\u0636\u062F \u0636\u0631\u0628\u0647"], + image: "/images/products/eyewear/6.webp" + }, + { + code: "IP-E06", + group: "tinted", + name: "\u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC \u062A\u0648\u062A\u0627\u0635 AT113", + en: "TOTAS AT113", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0634\u0639\u0647 \u0645\u0636\u0631 \u062E\u0648\u0631\u0634\u06CC\u062F \u0648 \u0646\u0648\u0631 \u0634\u062F\u06CC\u062F.", + specs: ["\u062A\u0648\u062A\u0627\u0635", "\u0634\u06CC\u0634\u0647 UV", "\u0636\u062F \u0636\u0631\u0628\u0647"], + image: "/images/products/eyewear/7.webp" + }, + { + code: "IP-E07", + group: "tinted", + name: "\u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0646\u0627\u0633\u06CC\u0641 20105", + en: "CANASAFE 20105", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0634\u0639\u0647 \u0645\u0636\u0631 \u0648 \u0646\u0648\u0631 \u0634\u062F\u06CC\u062F \u062C\u0648\u0634\u06A9\u0627\u0631\u06CC.", + specs: ["\u06A9\u0627\u0646\u0627\u0633\u06CC\u0641", "\u0634\u06CC\u0634\u0647 UV", "\u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645"], + image: "/images/products/eyewear/9.webp" + }, + { + code: "IP-E08", + group: "tinted", + name: "\u0639\u06CC\u0646\u06A9 \u062A\u0648\u062A\u0627\u0635 AT116", + en: "TOTAS AT116", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0627\u0634\u0639\u0647 \u0645\u0636\u0631 \u062E\u0648\u0631\u0634\u06CC\u062F \u0648 \u0646\u0648\u0631 \u0634\u062F\u06CC\u062F.", + specs: ["\u062A\u0648\u062A\u0627\u0635", "\u0634\u06CC\u0634\u0647 UV", "\u0631\u0648\u0637\u0628\u06CC"], + image: "/images/products/eyewear/10.webp" + }, + { + code: "IP-E09", + group: "goggle", + name: "\u06AF\u0627\u06AF\u0644 uvex ultravision", + en: "UVEX ULTRAVISION GOGGLE", + desc: "\u0636\u062F \u0628\u062E\u0627\u0631 \u0648 \u0636\u062F \u0636\u0631\u0628\u0647\u061B \u062C\u0644\u0648\u06AF\u06CC\u0631\u06CC \u0627\u0632 \u0627\u06CC\u062C\u0627\u062F \u0645\u0647 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u06AF\u0631\u0645 \u06CC\u0627 \u0645\u0631\u0637\u0648\u0628.", + specs: ["uvex", "\u0636\u062F \u0628\u062E\u0627\u0631", "\u06A9\u0634\u200C\u062F\u0627\u0631"], + image: "/images/products/eyewear/2.webp" + }, + { + code: "IP-E10", + group: "goggle", + name: "\u06AF\u0627\u06AF\u0644 \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0634\u200C\u062F\u0627\u0631", + en: "SAFETY GOGGLE", + desc: "\u0636\u062F \u0628\u062E\u0627\u0631 \u0648 \u0636\u062F \u0636\u0631\u0628\u0647\u061B \u062C\u0644\u0648\u06AF\u06CC\u0631\u06CC \u0627\u0632 \u0627\u06CC\u062C\u0627\u062F \u0645\u0647 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u06AF\u0631\u0645 \u06CC\u0627 \u0645\u0631\u0637\u0648\u0628.", + specs: ["\u0636\u062F \u0628\u062E\u0627\u0631", "\u06A9\u0634\u200C\u062F\u0627\u0631"], + image: "/images/products/eyewear/3.webp" + }, + { + code: "IP-E11", + group: "goggle", + name: "\u06AF\u0627\u06AF\u0644 \u0627\u06CC\u0645\u0646\u06CC \u062A\u0648\u062A\u0627\u0635 ATBM", + en: "TOTAS ATBM GOGGLE", + desc: "\u0636\u062F \u0628\u062E\u0627\u0631 \u0648 \u0636\u062F \u0636\u0631\u0628\u0647\u061B \u062C\u0644\u0648\u06AF\u06CC\u0631\u06CC \u0627\u0632 \u0627\u06CC\u062C\u0627\u062F \u0645\u0647 \u062F\u0631 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u06AF\u0631\u0645 \u06CC\u0627 \u0645\u0631\u0637\u0648\u0628.", + specs: ["\u062A\u0648\u062A\u0627\u0635", "\u0636\u062F \u0628\u062E\u0627\u0631", "\u06A9\u0634\u200C\u062F\u0627\u0631"], + image: "/images/products/eyewear/8.webp" + } + ] + }, + { + slug: "hearing-protection", + code: "IP-C06", + name: "\u062D\u0641\u0627\u0638\u062A \u0634\u0646\u0648\u0627\u06CC\u06CC", + en: "HEARING PROTECTION", + shortDesc: "\u0627\u06CC\u0631\u0645\u0627\u0641 \u0631\u0648\u06AF\u0648\u0634\u06CC \u0628\u0627 \u06A9\u0627\u0647\u0634 \u06F2\u06F8 \u062F\u0633\u06CC\u200C\u0628\u0644 \u0648 \u0627\u06CC\u0631\u067E\u0644\u0627\u06AF\u200C\u0647\u0627\u06CC \u0627\u0633\u0641\u0646\u062C\u06CC \u0648 \u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC \u0628\u0631\u0627\u06CC \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u067E\u0631\u0633\u0631\u0648\u0635\u062F\u0627.", + fullDesc: "\u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u0641\u0627\u0638\u062A \u0634\u0646\u0648\u0627\u06CC\u06CC \u0634\u0627\u0645\u0644 \u0627\u06CC\u0631\u0645\u0627\u0641 (\u0645\u062D\u0627\u0641\u0638 \u0631\u0648\u06AF\u0648\u0634\u06CC) \u0628\u0627 \u06A9\u0627\u0647\u0634 \u062A\u0631\u0627\u0632 \u0635\u062F\u0627 \u062A\u0627 \u06F2\u06F8 \u062F\u0633\u06CC\u200C\u0628\u0644 \u0648 \u0627\u06CC\u0631\u067E\u0644\u0627\u06AF (\u062F\u0627\u062E\u0644\u200C\u06AF\u0648\u0634\u06CC) \u062F\u0631 \u0645\u062F\u0644\u200C\u0647\u0627\u06CC \u0627\u0633\u0641\u0646\u062C\u06CC \u0641\u0631\u0645\u200C\u06AF\u06CC\u0631 \u0648 \u067E\u0644\u0647\u200C\u0627\u06CC \u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC. \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0628\u0627 \u0622\u0644\u0648\u062F\u06AF\u06CC \u0635\u0648\u062A\u06CC \u0628\u0627\u0644\u0627\u06CC \u06F8\u06F5 \u062F\u0633\u06CC\u200C\u0628\u0644\u060C \u06A9\u0645\u067E\u0631\u0633\u0648\u0631\u062E\u0627\u0646\u0647\u200C\u0647\u0627 \u0648 \u062E\u0637\u0648\u0637 \u062A\u0648\u0644\u06CC\u062F \u0633\u0646\u06AF\u06CC\u0646.", + icon: "Ear", + groups: [ + { slug: "earmuff", name: "\u0627\u06CC\u0631\u0645\u0627\u0641", desc: "\u06A9\u0627\u0647\u0634 \u0635\u062F\u0627 \u062A\u0627 \u06F2\u06F8 \u062F\u0633\u06CC\u200C\u0628\u0644\u060C \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC\u060C \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0648 \u0631\u0627\u062D\u062A \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC." }, + { slug: "earplug", name: "\u0627\u06CC\u0631\u067E\u0644\u0627\u06AF", desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0635\u062F\u0627\u0647\u0627\u06CC \u0634\u062F\u06CC\u062F \u0648 \u0646\u0648\u06CC\u0632 \u0645\u062D\u06CC\u0637\u060C \u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A\u060C \u0645\u062F\u0644\u200C\u0647\u0627\u06CC \u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0648 \u0686\u0646\u062F\u0628\u0627\u0631 \u0645\u0635\u0631\u0641." } + ], + products: [ + { + code: "IP-HP01", + group: "earmuff", + name: "\u0627\u06CC\u0631\u0645\u0627\u0641 \u0647\u0644\u0628\u0631\u06AF", + en: "HELLBERG EARMUFF", + desc: "\u06A9\u0627\u0647\u0634 \u0635\u062F\u0627 \u062A\u0627 \u06F2\u06F8 \u062F\u0633\u06CC\u200C\u0628\u0644\u060C \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC\u060C \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0648 \u0631\u0627\u062D\u062A \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC.", + specs: ["Hellberg", "\u0647\u062F\u0628\u0646\u062F \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645", "\u0628\u0627\u0644\u0634\u062A\u06A9 \u0646\u0631\u0645"], + image: "/images/products/hearing/1.webp" + }, + { + code: "IP-HP02", + group: "earmuff", + name: "\u0627\u06CC\u0631\u0645\u0627\u0641 uvex K2", + en: "UVEX K2 EARMUFF", + desc: "\u06A9\u0627\u0647\u0634 \u0635\u062F\u0627 \u062A\u0627 \u06F2\u06F8 \u062F\u0633\u06CC\u200C\u0628\u0644\u060C \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC\u060C \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0648 \u0631\u0627\u062D\u062A \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC.", + specs: ["uvex", "\u0647\u062F\u0628\u0646\u062F \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645", "\u0628\u0627\u0644\u0634\u062A\u06A9 \u0646\u0631\u0645"], + image: "/images/products/hearing/2.webp" + }, + { + code: "IP-HP03", + group: "earmuff", + name: "\u0627\u06CC\u0631\u0645\u0627\u0641 \u0628\u0648\u0641\u0627\u0644\u0648 110", + en: "BUFFALO 110 EARMUFF", + desc: "\u06A9\u0627\u0647\u0634 \u0635\u062F\u0627 \u062A\u0627 \u06F2\u06F8 \u062F\u0633\u06CC\u200C\u0628\u0644\u060C \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC\u060C \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0648 \u0631\u0627\u062D\u062A \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC.", + specs: ["\u0628\u0648\u0641\u0627\u0644\u0648", "\u0647\u062F\u0628\u0646\u062F \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645", "\u0628\u0627\u0644\u0634\u062A\u06A9 \u0646\u0631\u0645"], + image: "/images/products/hearing/4.webp" + }, + { + code: "IP-HP04", + group: "earmuff", + name: "\u06AF\u0648\u0634\u06CC \u0635\u062F\u0627\u06AF\u06CC\u0631 3M", + en: "3M EARMUFF", + desc: "\u06A9\u0627\u0647\u0634 \u0635\u062F\u0627 \u062A\u0627 \u06F2\u06F8 \u062F\u0633\u06CC\u200C\u0628\u0644\u060C \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0648 \u06A9\u0627\u0631\u06AF\u0627\u0647\u06CC\u060C \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645 \u0648 \u0631\u0627\u062D\u062A \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC.", + specs: ["3M", "\u0647\u062F\u0628\u0646\u062F \u0642\u0627\u0628\u0644 \u062A\u0646\u0638\u06CC\u0645", "\u0628\u0627\u0644\u0634\u062A\u06A9 \u0646\u0631\u0645"], + image: "/images/products/hearing/8.webp" + }, + { + code: "IP-HP05", + group: "earplug", + name: "\u0627\u06CC\u0631\u067E\u0644\u0627\u06AF \u06A9\u0627\u0633\u062A\u0627 \u0645\u06A9\u0633 \u0641\u06CC\u062A MAXFIT", + en: "COSTA MAXFIT EARPLUG", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0635\u062F\u0627\u0647\u0627\u06CC \u0634\u062F\u06CC\u062F \u0648 \u0646\u0648\u06CC\u0632 \u0645\u062D\u06CC\u0637\u060C \u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A.", + specs: ["\u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC \u067E\u0644\u0647\u200C\u0627\u06CC", "\u0628\u0646\u062F\u062F\u0627\u0631", "\u0686\u0646\u062F\u0628\u0627\u0631 \u0645\u0635\u0631\u0641"], + image: "/images/products/hearing/3.webp" + }, + { + code: "IP-HP06", + group: "earplug", + name: "\u0627\u06CC\u0631\u067E\u0644\u0627\u06AF \u0627\u0633\u0641\u0646\u062C\u06CC Bilsom 303L", + en: "BILSOM 303L FOAM EARPLUG", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0635\u062F\u0627\u0647\u0627\u06CC \u0634\u062F\u06CC\u062F \u0648 \u0646\u0648\u06CC\u0632 \u0645\u062D\u06CC\u0637\u060C \u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A.", + specs: ["\u0627\u0633\u0641\u0646\u062C\u06CC", "\u0628\u0646\u062F\u062F\u0627\u0631 / \u0628\u062F\u0648\u0646 \u0628\u0646\u062F", "\u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641"], + image: "/images/products/hearing/5.webp" + }, + { + code: "IP-HP07", + group: "earplug", + name: "\u0627\u06CC\u0631\u067E\u0644\u0627\u06AF \u0627\u0633\u0641\u0646\u062C\u06CC \u0645\u0627\u06AF\u0645\u0627", + en: "MAGMA FOAM EARPLUG", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0635\u062F\u0627\u0647\u0627\u06CC \u0634\u062F\u06CC\u062F \u0648 \u0646\u0648\u06CC\u0632 \u0645\u062D\u06CC\u0637\u060C \u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A.", + specs: ["\u0627\u0633\u0641\u0646\u062C\u06CC", "\u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641"], + image: "/images/products/hearing/6.webp" + }, + { + code: "IP-HP08", + group: "earplug", + name: "\u0627\u06CC\u0631\u067E\u0644\u0627\u06AF \u0645\u06A9\u0633 \u0641\u06CC\u062A \u0628\u0627 \u0642\u0627\u0628", + en: "MAXFIT EARPLUG WITH CASE", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0635\u062F\u0627\u0647\u0627\u06CC \u0634\u062F\u06CC\u062F \u0648 \u0646\u0648\u06CC\u0632 \u0645\u062D\u06CC\u0637\u060C \u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A.", + specs: ["\u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC \u067E\u0644\u0647\u200C\u0627\u06CC", "\u0628\u0646\u062F\u062F\u0627\u0631", "\u0642\u0627\u0628 \u0646\u06AF\u0647\u062F\u0627\u0631\u06CC"], + image: "/images/products/hearing/7.webp" + } + ] + }, + { + slug: "respiratory-protection", + code: "IP-C07", + name: "\u062D\u0641\u0627\u0638\u062A \u062A\u0646\u0641\u0633\u06CC", + en: "RESPIRATORY PROTECTION", + shortDesc: "\u0645\u0627\u0633\u06A9\u200C\u0647\u0627\u06CC \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A\u060C \u062A\u0645\u0627\u0645\u200C\u0635\u0648\u0631\u062A\u060C \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC\u060C P2/P3 \u0648 \u0641\u06CC\u0644\u062A\u0631\u062F\u0627\u0631 \u0628\u0631\u0627\u06CC \u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u06AF\u0627\u0632\u0647\u0627 \u0648 \u0630\u0631\u0627\u062A.", + fullDesc: "\u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u0641\u0627\u0638\u062A \u062A\u0646\u0641\u0633\u06CC \u0634\u0627\u0645\u0644 \u0645\u0627\u0633\u06A9\u200C\u0647\u0627\u06CC \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A\u060C \u062A\u0645\u0627\u0645\u200C\u0635\u0648\u0631\u062A\u060C \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0628\u0627 \u06A9\u0627\u0631\u062A\u0631\u06CC\u062C \u062A\u062E\u0635\u0635\u06CC\u060C \u0645\u0627\u0633\u06A9\u200C\u0647\u0627\u06CC \u0641\u06CC\u0644\u062A\u0631\u062F\u0627\u0631 P2/P3 \u0628\u0631\u0627\u06CC \u0630\u0631\u0627\u062A \u0645\u06CC\u06A9\u0631\u0648\u0646\u06CC\u060C \u0645\u0627\u0633\u06A9\u200C\u0647\u0627\u06CC \u0628\u0627 \u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC \u0627\u0642\u062A\u0635\u0627\u062F\u06CC \u0648 \u0645\u0627\u0633\u06A9\u200C\u0647\u0627\u06CC \u0633\u0647\u200C\u0644\u0627\u06CC\u0647 \u0628\u0647\u062F\u0627\u0634\u062A\u06CC. \u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631 \u0628\u0627 \u062D\u0644\u0627\u0644\u200C\u0647\u0627\u06CC \u0641\u0631\u0627\u0631\u060C \u063A\u0628\u0627\u0631\u0647\u0627\u06CC \u0645\u0639\u062F\u0646\u06CC\u060C \u0631\u0646\u06AF\u200C\u067E\u0627\u0634\u06CC \u0648 \u062E\u0637\u0648\u0637 \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC.", + icon: "ShieldPlus", + groups: [ + { slug: "half", name: "\u0645\u0627\u0633\u06A9 \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A", desc: "\u067E\u0648\u0634\u0634\u200C\u062F\u0647\u06CC \u0628\u06CC\u0646\u06CC \u0648 \u062F\u0647\u0627\u0646 \u0628\u0627 \u0641\u06CC\u0644\u062A\u0631 \u0642\u0627\u0628\u0644 \u062A\u0639\u0648\u06CC\u0636\u061B \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0628\u0627 \u0622\u0644\u0648\u062F\u06AF\u06CC \u0645\u062A\u0648\u0633\u0637 \u0648 \u0628\u062E\u0627\u0631\u0627\u062A \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC." }, + { slug: "full", name: "\u0645\u0627\u0633\u06A9 \u062A\u0645\u0627\u0645\u200C\u0635\u0648\u0631\u062A", desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u0627\u0632 \u0635\u0648\u0631\u062A \u0648 \u0686\u0634\u0645\u200C\u0647\u0627\u060C \u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0648 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u067E\u0631\u062E\u0637\u0631." }, + { slug: "particulate", name: "\u0645\u0627\u0633\u06A9 \u0641\u06CC\u0644\u062A\u0631\u062F\u0627\u0631 P2/P3", desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u06AF\u0631\u062F \u0648 \u063A\u0628\u0627\u0631 \u0648 \u0630\u0631\u0627\u062A \u0645\u0639\u0644\u0642 \u062F\u0631 \u0647\u0648\u0627." }, + { slug: "medical", name: "\u0645\u0627\u0633\u06A9 \u0633\u0647\u200C\u0644\u0627\u06CC\u0647", desc: "\u0645\u0627\u0633\u06A9 \u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A\u060C \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0631\u0648\u0632\u0645\u0631\u0647 \u0648 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0628\u0627 \u0622\u0644\u0648\u062F\u06AF\u06CC \u06A9\u0645." } + ], + products: [ + { + code: "IP-R01", + group: "half", + name: "\u0645\u0627\u0633\u06A9 \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A \u0628\u0627 \u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC", + en: "HALF-FACE RESPIRATOR WITH FILTERS", + desc: "\u067E\u0648\u0634\u0634\u200C\u062F\u0647\u06CC \u0628\u06CC\u0646\u06CC \u0648 \u062F\u0647\u0627\u0646 \u0628\u0627 \u0641\u06CC\u0644\u062A\u0631 \u0642\u0627\u0628\u0644 \u062A\u0639\u0648\u06CC\u0636 \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC\u200C\u0645\u062F\u062A.", + specs: ["\u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A", "\u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC", "\u062F\u0648 \u06A9\u0627\u0631\u062A\u0631\u06CC\u062C"], + image: "/images/products/respiratory/5.webp" + }, + { + code: "IP-R02", + group: "half", + name: "\u0645\u0627\u0633\u06A9 \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A \u0646\u0648\u0631\u062B 5500", + en: "NORTH 5500 HALF MASK", + desc: "\u067E\u0648\u0634\u0634\u200C\u062F\u0647\u06CC \u0628\u06CC\u0646\u06CC \u0648 \u062F\u0647\u0627\u0646\u060C \u0645\u0646\u0627\u0633\u0628 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0635\u0646\u0639\u062A\u06CC \u0628\u0627 \u0622\u0644\u0648\u062F\u06AF\u06CC \u0645\u062A\u0648\u0633\u0637.", + specs: ["North", "\u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A", "\u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC"], + image: "/images/products/respiratory/6.webp" + }, + { + code: "IP-R03", + group: "half", + name: "\u0645\u0627\u0633\u06A9 \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A 3M", + en: "3M HALF-FACE RESPIRATOR", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0628\u062E\u0627\u0631\u0627\u062A \u0648 \u06AF\u0627\u0632\u0647\u0627\u06CC \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0628\u0627 \u06A9\u0627\u0631\u062A\u0631\u06CC\u062C \u0648 \u0641\u06CC\u0644\u062A\u0631 \u0642\u0627\u0628\u0644 \u062A\u0639\u0648\u06CC\u0636.", + specs: ["3M", "\u06A9\u0627\u0631\u062A\u0631\u06CC\u062C \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC", "\u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC"], + image: "/images/products/respiratory/7.webp" + }, + { + code: "IP-R04", + group: "half", + name: "\u0645\u0627\u0633\u06A9 \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A \u0646\u0648\u0631\u062B 7700", + en: "NORTH 7700 HALF MASK", + desc: "\u067E\u0648\u0634\u0634\u200C\u062F\u0647\u06CC \u0628\u06CC\u0646\u06CC \u0648 \u062F\u0647\u0627\u0646 \u0628\u0627 \u0628\u062F\u0646\u0647 \u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC\u060C \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC\u200C\u0645\u062F\u062A.", + specs: ["North", "\u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC", "\u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC"], + image: "/images/products/respiratory/11.webp" + }, + { + code: "IP-R05", + group: "half", + name: "\u0645\u0627\u0633\u06A9 \u0646\u06CC\u0645\u200C\u0635\u0648\u0631\u062A \u0646\u0648\u0631\u062B 7700 (\u0646\u0645\u0627\u06CC \u062C\u0627\u0646\u0628\u06CC)", + en: "NORTH 7700 HALF MASK", + desc: "\u067E\u0648\u0634\u0634\u200C\u062F\u0647\u06CC \u0628\u06CC\u0646\u06CC \u0648 \u062F\u0647\u0627\u0646 \u0628\u0627 \u0628\u062F\u0646\u0647 \u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC\u060C \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0637\u0648\u0644\u0627\u0646\u06CC\u200C\u0645\u062F\u062A.", + specs: ["North", "\u0633\u06CC\u0644\u06CC\u06A9\u0648\u0646\u06CC", "\u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC"], + image: "/images/products/respiratory/10.webp" + }, + { + code: "IP-R06", + group: "full", + name: "\u0645\u0627\u0633\u06A9 \u062A\u0645\u0627\u0645\u200C\u0635\u0648\u0631\u062A", + en: "FULL-FACE RESPIRATOR", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u0627\u0632 \u0635\u0648\u0631\u062A \u0648 \u0686\u0634\u0645\u200C\u0647\u0627\u060C \u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0648 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u067E\u0631\u062E\u0637\u0631.", + specs: ["\u062A\u0645\u0627\u0645\u200C\u0635\u0648\u0631\u062A", "\u0634\u06CC\u0634\u0647 \u0636\u062F \u0636\u0631\u0628\u0647", "\u0641\u06CC\u0644\u062A\u0631 \u062A\u0639\u0648\u06CC\u0636\u06CC"], + image: "/images/products/respiratory/4.webp" + }, + { + code: "IP-R07", + group: "full", + name: "\u0645\u0627\u0633\u06A9 \u062A\u0646\u0641\u0633\u06CC \u062F\u0631\u0627\u06AF\u0631", + en: "DR\xC4GER FULL-FACE RESPIRATOR", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u06A9\u0627\u0645\u0644 \u0627\u0632 \u0635\u0648\u0631\u062A \u0648 \u0686\u0634\u0645\u200C\u0647\u0627\u060C \u0645\u0646\u0627\u0633\u0628 \u06A9\u0627\u0631 \u0628\u0627 \u0645\u0648\u0627\u062F \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0648 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u067E\u0631\u062E\u0637\u0631.", + specs: ["Dr\xE4ger", "\u062A\u0645\u0627\u0645\u200C\u0635\u0648\u0631\u062A", "\u0641\u06CC\u0644\u062A\u0631 \u0686\u0646\u062F\u0645\u0646\u0638\u0648\u0631\u0647"], + image: "/images/products/respiratory/8.webp" + }, + { + code: "IP-R08", + group: "particulate", + name: "\u0645\u0627\u0633\u06A9 \u0641\u06CC\u0644\u062A\u0631\u062F\u0627\u0631 \u062A\u0627\u0634\u0648", + en: "FOLDABLE PARTICULATE MASK", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u06AF\u0631\u062F \u0648 \u063A\u0628\u0627\u0631 \u0648 \u0630\u0631\u0627\u062A \u0645\u0639\u0644\u0642 \u062F\u0631 \u0647\u0648\u0627.", + specs: ["P2", "\u062A\u0627\u0634\u0648", "\u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641"], + image: "/images/products/respiratory/1.webp" + }, + { + code: "IP-R09", + group: "particulate", + name: "\u0645\u0627\u0633\u06A9 \u0641\u06CC\u0644\u062A\u0631\u062F\u0627\u0631 \u0633\u0648\u067E\u0627\u067E\u200C\u062F\u0627\u0631", + en: "VALVED PARTICULATE MASK", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u06AF\u0631\u062F \u0648 \u063A\u0628\u0627\u0631 \u0648 \u0630\u0631\u0627\u062A \u0645\u0639\u0644\u0642 \u062F\u0631 \u0647\u0648\u0627.", + specs: ["P2 / P3", "\u0633\u0648\u067E\u0627\u067E \u0628\u0627\u0632\u062F\u0645\u06CC", "\u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641"], + image: "/images/products/respiratory/2.webp" + }, + { + code: "IP-R10", + group: "particulate", + name: "\u0645\u0627\u0633\u06A9 \u0641\u06CC\u0644\u062A\u0631\u062F\u0627\u0631 \u062F\u0631\u0627\u06AF\u0631 \u0633\u0648\u067E\u0627\u067E\u200C\u062F\u0627\u0631", + en: "DR\xC4GER VALVED PARTICULATE MASK", + desc: "\u0645\u062D\u0627\u0641\u0638\u062A \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u06AF\u0631\u062F \u0648 \u063A\u0628\u0627\u0631 \u0648 \u0630\u0631\u0627\u062A \u0645\u0639\u0644\u0642 \u062F\u0631 \u0647\u0648\u0627.", + specs: ["Dr\xE4ger", "\u0633\u0648\u067E\u0627\u067E \u0628\u0627\u0632\u062F\u0645\u06CC", "P2 / P3"], + image: "/images/products/respiratory/3.webp" + }, + { + code: "IP-R11", + group: "medical", + name: "\u0645\u0627\u0633\u06A9 \u0633\u0647\u200C\u0644\u0627\u06CC\u0647 \u067E\u0632\u0634\u06A9\u06CC", + en: "THREE-LAYER MEDICAL MASK", + desc: "\u0645\u0627\u0633\u06A9 \u0633\u0628\u06A9 \u0648 \u0631\u0627\u062D\u062A\u060C \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0631\u0648\u0632\u0645\u0631\u0647 \u0648 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u0628\u0627 \u0622\u0644\u0648\u062F\u06AF\u06CC \u06A9\u0645.", + specs: ["\u0633\u0647\u200C\u0644\u0627\u06CC\u0647", "\u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641", "\u0628\u0633\u062A\u0647 \u06F5\u06F0 \u0639\u062F\u062F\u06CC"], + image: "/images/products/respiratory/9.webp" + } + ] + }, + { + slug: "traffic-equipment", + code: "IP-C08", + name: "\u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC \u0648 \u0627\u06CC\u0645\u0646\u06CC \u0645\u062D\u06CC\u0637\u06CC", + en: "TRAFFIC & SITE SAFETY", + shortDesc: "\u0645\u062E\u0631\u0648\u0637\u060C \u0646\u06CC\u0648\u062C\u0631\u0633\u06CC\u060C \u0627\u0633\u062A\u0648\u0627\u0646\u0647\u060C \u0633\u0631\u0639\u062A\u200C\u06AF\u06CC\u0631\u060C \u0622\u06CC\u0646\u0647 \u0645\u062D\u062F\u0628 \u0648 \u0633\u0627\u06CC\u0631 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0627\u06CC\u0645\u0646\u200C\u0633\u0627\u0632\u06CC \u0645\u062D\u0648\u0637\u0647 \u0635\u0646\u0639\u062A\u06CC.", + fullDesc: "\u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC \u0648 \u0627\u06CC\u0645\u0646\u06CC \u0645\u062D\u06CC\u0637\u06CC \u0634\u0627\u0645\u0644 \u0645\u062E\u0631\u0648\u0637 \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC\u060C \u0646\u06CC\u0648\u062C\u0631\u0633\u06CC \u067E\u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC\u060C \u0627\u0633\u062A\u0648\u0627\u0646\u0647 \u0648 \u0628\u0648\u0644\u0627\u0631\u062F\u060C \u0686\u0631\u0627\u063A \u0648 \u062A\u0627\u0628\u0644\u0648\u0647\u0627\u06CC \u0647\u0634\u062F\u0627\u0631\u062F\u0647\u0646\u062F\u0647\u060C \u0628\u0627\u062A\u0648\u0645 \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC\u060C \u0646\u0648\u0627\u0631\u0647\u0627\u06CC \u062E\u0637\u0631\u060C \u0633\u0631\u0639\u062A\u200C\u06AF\u06CC\u0631 \u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC\u060C \u0622\u06CC\u0646\u0647\u200C\u0647\u0627\u06CC \u0645\u062D\u062F\u0628\u060C \u0645\u062D\u0627\u0641\u0638 \u06AF\u0648\u0634\u0647 \u0633\u062A\u0648\u0646 \u0648 \u06AF\u0644\u200C\u0645\u06CC\u062E \u062E\u0648\u0631\u0634\u06CC\u062F\u06CC. \u0645\u0646\u0627\u0633\u0628 \u0627\u06CC\u0645\u0646\u200C\u0633\u0627\u0632\u06CC \u0645\u062D\u0648\u0637\u0647 \u06A9\u0627\u0631\u062E\u0627\u0646\u0647\u060C \u0627\u0646\u0628\u0627\u0631\u0647\u0627\u060C \u0631\u0645\u067E\u200C\u0647\u0627 \u0648 \u067E\u0627\u0631\u06A9\u06CC\u0646\u06AF\u200C\u0647\u0627.", + icon: "TriangleAlert", + products: [ + { + code: "IP-T01", + name: "\u0645\u062E\u0631\u0648\u0637 \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC", + en: "TRAFFIC CONE", + desc: "PVC \u0627\u0646\u0639\u0637\u0627\u0641\u200C\u067E\u0630\u06CC\u0631 \u0628\u0627 \u0634\u0628\u0631\u0646\u06AF\u200C\u0647\u0627\u06CC \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F \u0631\u0648\u0632 \u0648 \u0634\u0628\u061B \u0645\u0642\u0627\u0648\u0645 \u062F\u0631 \u0628\u0631\u0627\u0628\u0631 \u0648\u0627\u0698\u06AF\u0648\u0646\u06CC \u0648 \u0636\u0631\u0628\u0647 \u062E\u0648\u062F\u0631\u0648.", + specs: ["PVC \u0627\u0646\u0639\u0637\u0627\u0641\u200C\u067E\u0630\u06CC\u0631", "\u0634\u0628\u0631\u0646\u06AF \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F", "\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0648\u0627\u0698\u06AF\u0648\u0646\u06CC", "\u0642\u0627\u0628\u0644 \u0631\u0624\u06CC\u062A \u0634\u0628\u0627\u0646\u0647"] + }, + { + code: "IP-T02", + name: "\u0646\u06CC\u0648\u062C\u0631\u0633\u06CC \u067E\u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC", + en: "NEW JERSEY BARRIER", + desc: "\u0628\u062F\u0646\u0647 \u067E\u0644\u06CC\u200C\u0627\u062A\u06CC\u0644\u0646\u06CC \u0645\u062F\u0648\u0644\u0627\u0631 \u0642\u0627\u0628\u0644 \u0627\u062A\u0635\u0627\u0644 \u0628\u0627 \u0642\u0627\u0628\u0644\u06CC\u062A \u067E\u0631\u0634\u0648\u0646\u062F\u06AF\u06CC \u0628\u0627 \u0622\u0628 \u06CC\u0627 \u0645\u0627\u0633\u0647 \u062C\u0647\u062A \u062A\u062B\u0628\u06CC\u062A \u0648 \u0627\u06CC\u062C\u0627\u062F \u062D\u0627\u0626\u0644.", + specs: ["\u067E\u0644\u06CC\u200C\u0627\u062A\u06CC\u0644\u0646 \u0645\u062F\u0648\u0644\u0627\u0631", "\u0642\u0627\u0628\u0644 \u0627\u062A\u0635\u0627\u0644", "\u067E\u0631\u0634\u062F\u0646\u06CC \u0628\u0627 \u0622\u0628/\u0645\u0627\u0633\u0647", "\u0645\u0642\u0627\u0648\u0645 UV"] + }, + { + code: "IP-T03", + name: "\u0627\u0633\u062A\u0648\u0627\u0646\u0647 \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC", + en: "TRAFFIC BOLLARD", + desc: "\u067E\u0644\u06CC\u200C\u0627\u0648\u0631\u062A\u0627\u0646 \u0627\u0631\u062A\u062C\u0627\u0639\u06CC \u0627\u0646\u0639\u0637\u0627\u0641\u200C\u067E\u0630\u06CC\u0631 \u067E\u0633 \u0627\u0632 \u0636\u0631\u0628\u0647\u061B \u0645\u062C\u0647\u0632 \u0628\u0647 \u062D\u0644\u0642\u0647\u200C\u0647\u0627\u06CC \u0634\u0628\u0631\u0646\u06AF \u0647\u0634\u062F\u0627\u0631 \u0628\u0631\u0627\u06CC \u062A\u0641\u06A9\u06CC\u06A9 \u0645\u0633\u06CC\u0631.", + specs: ["\u067E\u0644\u06CC\u200C\u0627\u0648\u0631\u062A\u0627\u0646 \u0627\u0631\u062A\u062C\u0627\u0639\u06CC", "\u0628\u0627\u0632\u06AF\u0634\u062A \u067E\u0633 \u0627\u0632 \u0636\u0631\u0628\u0647", "\u0634\u0628\u0631\u0646\u06AF \u0647\u0634\u062F\u0627\u0631", "\u0646\u0635\u0628 \u0622\u0633\u0627\u0646"] + }, + { + code: "IP-T04", + name: "\u0686\u0631\u0627\u063A \u0648 \u062A\u0627\u0628\u0644\u0648\u06CC \u0647\u0634\u062F\u0627\u0631", + en: "WARNING LIGHT & SIGN", + desc: "\u0686\u0631\u0627\u063A\u200C\u0647\u0627\u06CC \u0686\u0634\u0645\u06A9\u200C\u0632\u0646 \u0633\u0648\u0644\u0627\u0631\u060C \u062A\u0627\u0628\u0644\u0648\u06CC \u062F\u0633\u062A\u06CC \u0627\u06CC\u0633\u062A/\u062D\u0631\u06A9\u062A \u0648 \u062A\u0627\u0628\u0644\u0648\u0647\u0627\u06CC \u0639\u0644\u0627\u0626\u0645 \u0647\u0634\u062F\u0627\u0631\u062F\u0647\u0646\u062F\u0647 \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC.", + specs: ["\u0633\u0648\u0644\u0627\u0631 / \u0628\u0627\u062A\u0631\u06CC", "LED \u0686\u0634\u0645\u06A9\u200C\u0632\u0646", "\u062A\u0627\u0628\u0644\u0648\u06CC Stop/Go", "\u0639\u0644\u0627\u0626\u0645 \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F"] + }, + { + code: "IP-T05", + name: "\u0628\u0627\u062A\u0648\u0645 \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC", + en: "TRAFFIC BATON", + desc: "\u0628\u0627\u062A\u0648\u0645 LED \u062F\u0627\u0631 \u062F\u0633\u062A\u06CC \u062C\u0647\u062A \u0647\u062F\u0627\u06CC\u062A \u062A\u0631\u0627\u0641\u06CC\u06A9 \u062F\u0631 \u0634\u0628 \u0648 \u0645\u062D\u06CC\u0637\u200C\u0647\u0627\u06CC \u06A9\u0645\u200C\u0646\u0648\u0631\u061B \u0633\u0628\u06A9 \u0648 \u0627\u0631\u06AF\u0648\u0646\u0648\u0645\u06CC\u06A9.", + specs: ["LED \u062F\u0627\u062E\u0644\u06CC", "\u0642\u0627\u0628\u0644 \u0631\u0624\u06CC\u062A \u0634\u0628\u0627\u0646\u0647", "\u0633\u0628\u06A9\u200C\u0648\u0632\u0646", "\u0627\u0631\u06AF\u0648\u0646\u0648\u0645\u06CC\u06A9"] + }, + { + code: "IP-T06", + name: "\u0646\u0648\u0627\u0631 \u062E\u0637\u0631", + en: "CAUTION TAPE", + desc: "\u0646\u0648\u0627\u0631 \u0634\u0637\u0631\u0646\u062C\u06CC \u0648 \u062E\u0637\u200C\u06A9\u0634\u06CC \u0632\u0631\u062F/\u0642\u0631\u0645\u0632 \u0647\u0634\u062F\u0627\u0631 \u0645\u062D\u0648\u0637\u0647 \u06AF\u0648\u062F\u0628\u0631\u062F\u0627\u0631\u06CC \u0648 \u0645\u0646\u0627\u0637\u0642 \u062E\u0637\u0631\u0646\u0627\u06A9 \u0628\u0627 \u0631\u0648\u0644\u200C\u0647\u0627\u06CC \u0628\u0627\u0632\u062A\u0627\u0628\u0646\u062F\u0647 \u0646\u0648\u0631.", + specs: ["\u0632\u0631\u062F / \u0642\u0631\u0645\u0632 \u0647\u0634\u062F\u0627\u0631", "\u0628\u0627\u0632\u062A\u0627\u0628\u0646\u062F\u0647 \u0646\u0648\u0631", "\u0631\u0648\u0644 \u0628\u0644\u0646\u062F", "\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u067E\u0627\u0631\u06AF\u06CC"] + }, + { + code: "IP-T07", + name: "\u0633\u0631\u0639\u062A\u200C\u06AF\u06CC\u0631 \u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC", + en: "RUBBER SPEED BUMP", + desc: "\u0642\u0637\u0639\u0627\u062A \u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC \u0633\u0646\u06AF\u06CC\u0646 \u0645\u062F\u0648\u0644\u0627\u0631 \u0628\u0627 \u0645\u0642\u0627\u0648\u0645\u062A \u0648\u0632\u0646\u06CC \u0628\u0627\u0644\u0627 \u0648 \u0627\u0644\u0645\u0627\u0646\u200C\u0647\u0627\u06CC \u0628\u0627\u0632\u062A\u0627\u0628\u0634 \u0634\u0628\u0627\u0646\u0647\u061B \u0646\u0635\u0628 \u0622\u0633\u0627\u0646.", + specs: ["\u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC \u0645\u062F\u0648\u0644\u0627\u0631", "\u0645\u0642\u0627\u0648\u0645\u062A \u0648\u0632\u0646\u06CC \u0628\u0627\u0644\u0627", "\u0628\u0627\u0632\u062A\u0627\u0628 \u0634\u0628\u0627\u0646\u0647", "\u0646\u0635\u0628 \u067E\u06CC\u0686\u06CC"] + }, + { + code: "IP-T08", + name: "\u0622\u06CC\u0646\u0647 \u0645\u062D\u062F\u0628 \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC", + en: "CONVEX TRAFFIC MIRROR", + desc: "\u0622\u06CC\u0646\u0647 \u0646\u0634\u06A9\u0646 \u0641\u0631\u06CC\u0645\u200C\u062F\u0627\u0631 \u0648 \u06A9\u0644\u0627\u0647\u200C\u062F\u0627\u0631 \u062C\u0647\u062A \u067E\u0648\u0634\u0634 \u0646\u0642\u0627\u0637 \u06A9\u0648\u0631 \u067E\u06CC\u0686\u200C\u0647\u0627\u060C \u062A\u0642\u0627\u0637\u0639\u200C\u0647\u0627 \u0648 \u062F\u0631\u0628 \u0627\u0646\u0628\u0627\u0631.", + specs: ["\u0646\u0634\u06A9\u0646", "\u0641\u0631\u06CC\u0645\u200C\u062F\u0627\u0631 \u0648 \u06A9\u0644\u0627\u0647\u200C\u062F\u0627\u0631", "\u067E\u0648\u0634\u0634 \u0646\u0642\u0627\u0637 \u06A9\u0648\u0631", "\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0622\u0628 \u0648 \u0628\u0627\u062F"] + }, + { + code: "IP-T09", + name: "\u0645\u062D\u0627\u0641\u0638 \u06AF\u0648\u0634\u0647 \u0633\u062A\u0648\u0646", + en: "CORNER GUARD", + desc: "\u0636\u0631\u0628\u0647\u200C\u06AF\u06CC\u0631 \u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC \u0634\u0628\u0631\u0646\u06AF\u200C\u062F\u0627\u0631 \u062C\u0647\u062A \u0646\u0635\u0628 \u0631\u0648\u06CC \u0633\u062A\u0648\u0646\u200C\u0647\u0627 \u0628\u0631\u0627\u06CC \u0645\u0645\u0627\u0646\u0639\u062A \u0627\u0632 \u0622\u0633\u06CC\u0628 \u0644\u06CC\u0641\u062A\u0631\u0627\u06A9 \u0648 \u062E\u0648\u062F\u0631\u0648\u0647\u0627\u06CC \u0633\u0646\u06AF\u06CC\u0646.", + specs: ["\u0644\u0627\u0633\u062A\u06CC\u06A9\u06CC \u0636\u0631\u0628\u0647\u200C\u06AF\u06CC\u0631", "\u0634\u0628\u0631\u0646\u06AF\u200C\u062F\u0627\u0631", "\u0646\u0635\u0628 \u062F\u06CC\u0648\u0627\u0631\u06CC", "\u0645\u062D\u0627\u0641\u0638 \u0633\u062A\u0648\u0646"] + }, + { + code: "IP-T10", + name: "\u06AF\u0644\u200C\u0645\u06CC\u062E \u062A\u0631\u0627\u0641\u06CC\u06A9\u06CC \u062E\u0648\u0631\u0634\u06CC\u062F\u06CC", + en: "SOLAR ROAD STUD", + desc: "\u0628\u062F\u0646\u0647 \u0622\u0644\u0648\u0645\u06CC\u0646\u06CC\u0648\u0645\u06CC \u0645\u0633\u062A\u062D\u06A9\u0645 \u0645\u062C\u0647\u0632 \u0628\u0647 \u067E\u0646\u0644 \u062E\u0648\u0631\u0634\u06CC\u062F\u06CC \u0648 LED \u062C\u0647\u062A \u062A\u0639\u06CC\u06CC\u0646 \u0645\u0633\u06CC\u0631 \u0648 \u062E\u0637\u200C\u06A9\u0634\u06CC \u0634\u0628\u0627\u0646\u0647.", + specs: ["\u0622\u0644\u0648\u0645\u06CC\u0646\u06CC\u0648\u0645 \u0645\u0633\u062A\u062D\u06A9\u0645", "\u067E\u0646\u0644 \u062E\u0648\u0631\u0634\u06CC\u062F\u06CC", "LED", "\u0645\u0642\u0627\u0648\u0645 \u0628\u0647 \u0639\u0628\u0648\u0631 \u062E\u0648\u062F\u0631\u0648"] + } + ] + } +]; + +// dist/seed/data/sections.js +var SECTIONS = { + settings: { + name: "\u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646", + nameEn: "Imen Pishgaman Safety", + title: "\u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646 | \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0627\u06CC\u0645\u0646\u06CC \u0648 \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC \u0635\u0646\u0639\u062A\u06CC", + description: "\u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646 \u2014 \u062A\u0623\u0645\u06CC\u0646\u200C\u06A9\u0646\u0646\u062F\u0647 \u062A\u062E\u0635\u0635\u06CC \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC (PPE)\u060C \u0628\u0627\u0632\u0631\u0633\u06CC\u060C \u0622\u0645\u0648\u0632\u0634 \u0648 \u0631\u0627\u0647\u06A9\u0627\u0631\u0647\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC \u0635\u0646\u0639\u062A\u06CC \u0628\u0631\u0627\u06CC \u0633\u0627\u0632\u0645\u0627\u0646\u200C\u0647\u0627\u06CC\u06CC \u06A9\u0647 \u062C\u0627\u0646 \u0627\u0646\u0633\u0627\u0646\u200C\u0647\u0627 \u0631\u0627 \u062C\u062F\u06CC \u0645\u06CC\u200C\u06AF\u06CC\u0631\u0646\u062F.", + phone: "+98-21-91008800", + phoneDisplay: "\u06F0\u06F2\u06F1 - \u06F9\u06F1 \u06F0\u06F0 \u06F8\u06F8 \u06F0\u06F0", + email: "info@imenpishgaman.ir", + address: { + street: "\u062E\u06CC\u0627\u0628\u0627\u0646 \u06A9\u0627\u0631\u06AF\u0631 \u0634\u0645\u0627\u0644\u06CC\u060C \u062E\u06CC\u0627\u0628\u0627\u0646 \u0641\u0631\u060C \u06A9\u0648\u0686\u0647 \u062F\u0648\u0645\u060C \u067E\u0644\u0627\u06A9 \u06F1\u06F2", + locality: "\u062A\u0647\u0631\u0627\u0646", + country: "IR" + }, + workingHours: "\u0634\u0646\u0628\u0647 \u062A\u0627 \u067E\u0646\u062C\u0634\u0646\u0628\u0647 \u2014 \u06F8:\u06F0\u06F0 \u062A\u0627 \u06F1\u06F7:\u06F0\u06F0", + openingHours: { + days: ["Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"], + opens: "08:00", + closes: "17:00" + }, + foundingDate: "2007", + socials: [ + { type: "website", url: "/" }, + { type: "email", url: "mailto:info@imenpishgaman.ir" }, + { type: "phone", url: "tel:+982191008800" } + ], + ogImage: { + url: "asset:hero.jpg", + alt: "\u06A9\u0627\u0631\u06AF\u0631 \u0635\u0646\u0639\u062A\u06CC \u0628\u0627 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0645\u0644", + width: 1792, + height: 1008 + } + }, + hero: { + enabled: true, + badge: "\u062A\u0623\u0645\u06CC\u0646\u200C\u06A9\u0646\u0646\u062F\u0647 \u0631\u0633\u0645\u06CC \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC (PPE)", + title: "\u0627\u06CC\u0645\u0646\u06CC \u06CC\u0639\u0646\u06CC", + titleHighlight: "\u0628\u0627\u0632\u06AF\u0634\u062A \u0628\u0647 \u062E\u0627\u0646\u0647", + intro: "\u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646 \u0628\u0627 \u0628\u06CC\u0634 \u0627\u0632 \u06F1\u06F8 \u0633\u0627\u0644 \u062A\u062C\u0631\u0628\u0647\u060C \u062A\u0623\u0645\u06CC\u0646\u200C\u06A9\u0646\u0646\u062F\u0647 \u062A\u062E\u0635\u0635\u06CC \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0627\u06CC\u0645\u0646\u06CC \u0648 \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC \u0628\u0631\u0627\u06CC \u0633\u0627\u0632\u0645\u0627\u0646\u200C\u0647\u0627\u06CC\u06CC \u0627\u0633\u062A \u06A9\u0647 \u062C\u0627\u0646 \u0627\u0646\u0633\u0627\u0646\u200C\u0647\u0627 \u0631\u0627 \u062C\u062F\u06CC \u0645\u06CC\u200C\u06AF\u06CC\u0631\u0646\u062F\u061B \u0627\u0632 \u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u062A\u0627 \u0647\u0627\u0631\u0646\u0633 \u0646\u062C\u0627\u062A\u060C \u0627\u0632 \u0645\u0634\u0627\u0648\u0631\u0647 \u062A\u0627 \u0628\u0627\u0632\u0631\u0633\u06CC \u0648 \u0622\u0645\u0648\u0632\u0634.", + primaryCta: { label: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u0645\u0634\u0627\u0648\u0631\u0647 \u0631\u0627\u06CC\u06AF\u0627\u0646", href: "#contact" }, + secondaryCta: { label: "\u0645\u0634\u0627\u0647\u062F\u0647 \u0645\u062D\u0635\u0648\u0644\u0627\u062A", href: "#products" }, + chips: [ + { icon: "ShieldCheck", label: "ISO 9001:2015" }, + { icon: "BadgeCheck", label: "CE CERTIFIED" }, + { icon: "Award", label: "EN STANDARDS" } + ], + miniStats: [ + { value: "\u06F1\u06F8+", label: "\u0633\u0627\u0644 \u062A\u062C\u0631\u0628\u0647 \u062F\u0631 \u0635\u0646\u0639\u062A \u0627\u06CC\u0645\u0646\u06CC" }, + { value: "\u06F8\u06F5\u06F0+", label: "\u0633\u0627\u0632\u0645\u0627\u0646 \u062A\u062D\u062A \u067E\u0648\u0634\u0634" }, + { value: "\u06F9\u06F8\u066A", label: "\u0631\u0636\u0627\u06CC\u062A \u0645\u0634\u062A\u0631\u06CC\u0627\u0646" } + ], + image: { url: "asset:hero.jpg", alt: "\u06A9\u0627\u0631\u06AF\u0631 \u0635\u0646\u0639\u062A\u06CC \u0628\u0627 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0627\u06CC\u0645\u0646\u06CC \u06A9\u0627\u0645\u0644" }, + lastInspection: "\u06F1\u06F4\u06F0\u06F4/\u06F0\u06F8/\u06F1\u06F2" + }, + tape: { + enabled: true, + items: [ + "ISO 9001:2015", + "CE CERTIFIED", + "\u06AF\u0627\u0631\u0627\u0646\u062A\u06CC \u0627\u0635\u0627\u0644\u062A \u06A9\u0627\u0644\u0627", + "\u062A\u062D\u0648\u06CC\u0644 \u0633\u0631\u0627\u0633\u0631\u06CC \u06A9\u0634\u0648\u0631\u06CC", + "\u0645\u0634\u0627\u0648\u0631\u0647 \u0648 \u0628\u0627\u0632\u0631\u0633\u06CC \u062A\u062E\u0635\u0635\u06CC \u0631\u0627\u06CC\u06AF\u0627\u0646", + "EN STANDARDS", + "\u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u06F2\u06F4/\u06F7 \u0642\u0631\u0627\u0631\u062F\u0627\u062F\u0647\u0627\u06CC \u0633\u0627\u0632\u0645\u0627\u0646\u06CC", + "\u062A\u0633\u062A \u0646\u0645\u0648\u0646\u0647 \u0642\u0628\u0644 \u0627\u0632 \u062E\u0631\u06CC\u062F" + ] + }, + stats: { + enabled: true, + items: [ + { end: 18, suffix: "+", label: "\u0633\u0627\u0644 \u062A\u062C\u0631\u0628\u0647 \u062F\u0631 \u0635\u0646\u0639\u062A \u0627\u06CC\u0645\u0646\u06CC", note: "SINCE 2007" }, + { end: 2400, suffix: "+", label: "\u06A9\u062F \u06A9\u0627\u0644\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC", note: "PPE CATALOG" }, + { end: 850, suffix: "+", label: "\u0645\u0634\u062A\u0631\u06CC \u0633\u0627\u0632\u0645\u0627\u0646\u06CC \u0641\u0639\u0627\u0644", note: "B2B CLIENTS" }, + { end: 98, suffix: "\u066A", label: "\u0631\u0636\u0627\u06CC\u062A \u0645\u0634\u062A\u0631\u06CC\u0627\u0646", note: "SATISFACTION" } + ] + }, + productsIntro: { + enabled: true, + head: { + tag: "\u06F0\u06F1 \u2014 \u0645\u062D\u0635\u0648\u0644\u0627\u062A", + title: "\u062E\u0637 \u0627\u0648\u0644 \u062F\u0641\u0627\u0639\u060C\n\u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0645\u0627\u0633\u062A", + highlight: "", + desc: "\u0647\u0631 \u0645\u062D\u0635\u0648\u0644 \u067E\u06CC\u0634 \u0627\u0632 \u0639\u0631\u0636\u0647\u060C \u0632\u06CC\u0631 \u0630\u0631\u0647\u200C\u0628\u06CC\u0646 \u06A9\u0646\u062A\u0631\u0644 \u06A9\u06CC\u0641\u06CC\u062A \u0648 \u062A\u0637\u0628\u06CC\u0642 \u0628\u0627 \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F\u0647\u0627\u06CC \u062C\u0647\u0627\u0646\u06CC \u0642\u0631\u0627\u0631 \u0645\u06CC\u200C\u06AF\u06CC\u0631\u062F." + }, + ctaLabel: "\u062F\u0631\u06CC\u0627\u0641\u062A \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u06A9\u0627\u0645\u0644", + trust: [ + { + icon: "BadgeCheck", + title: "\u06AF\u0627\u0631\u0627\u0646\u062A\u06CC \u0627\u0635\u0627\u0644\u062A \u06A9\u0627\u0644\u0627", + desc: "\u062A\u0645\u0627\u0645 \u0645\u062D\u0635\u0648\u0644\u0627\u062A \u0628\u0627 \u0641\u0627\u06A9\u062A\u0648\u0631 \u0631\u0633\u0645\u06CC \u0648 \u06A9\u062F \u0631\u0647\u06AF\u06CC\u0631\u06CC \u0627\u0635\u0627\u0644\u062A" + }, + { + icon: "PackageCheck", + title: "\u062A\u0633\u062A \u0646\u0645\u0648\u0646\u0647 \u0642\u0628\u0644 \u0627\u0632 \u062E\u0631\u06CC\u062F", + desc: "\u0646\u0645\u0648\u0646\u0647\u200C\u0647\u0627\u06CC \u0646\u0645\u0627\u06CC\u0634\u06CC \u0628\u0631\u0627\u06CC \u0627\u0631\u0632\u06CC\u0627\u0628\u06CC \u062A\u06CC\u0645 HSE \u0634\u0645\u0627" + }, + { + icon: "ShieldCheck", + title: "\u0627\u0645\u06A9\u0627\u0646 \u0642\u0631\u0627\u0631\u062F\u0627\u062F \u0633\u0627\u0644\u0627\u0646\u0647", + desc: "\u0642\u06CC\u0645\u062A \u062B\u0627\u0628\u062A \u0648 \u062A\u0623\u0645\u06CC\u0646 \u0645\u0633\u062A\u0645\u0631 \u0628\u0631\u0627\u06CC \u0633\u0627\u0632\u0645\u0627\u0646\u200C\u0647\u0627\u06CC \u0628\u0632\u0631\u06AF" + } + ] + }, + about: { + enabled: true, + head: { + tag: "\u06F0\u06F2 \u2014 \u062F\u0631\u0628\u0627\u0631\u0647 \u0645\u0627", + title: "\u0627\u06CC\u0645\u0646\u06CC \u0628\u0631\u0627\u06CC \u0645\u0627 \u0634\u0639\u0627\u0631 \u0646\u06CC\u0633\u062A\u061B", + highlight: "\u0642\u0631\u0627\u0631\u062F\u0627\u062F \u0627\u0633\u062A.", + desc: "" + }, + body: "\u0627\u0632 \u0633\u0627\u0644 \u06F1\u06F3\u06F8\u06F6\u060C \u0632\u0645\u0627\u0646\u06CC \u06A9\u0647 \u0627\u0648\u0644\u06CC\u0646 \u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0631\u0627 \u0628\u0647 \u06CC\u06A9 \u06A9\u0627\u0631\u06AF\u0627\u0647 \u06A9\u0648\u0686\u06A9 \u062F\u0631 \u062C\u0646\u0648\u0628 \u062A\u0647\u0631\u0627\u0646 \u0641\u0631\u0648\u062E\u062A\u06CC\u0645\u060C \u0628\u0627\u0648\u0631 \u0645\u0627 \u0647\u0645\u06CC\u0646 \u06CC\u06A9 \u062C\u0645\u0644\u0647 \u0628\u0648\u062F: \u067E\u0634\u062A \u0647\u0631 \u062A\u062C\u0647\u06CC\u0632 \u0627\u06CC\u0645\u0646\u06CC\u060C \u06CC\u06A9 \u062E\u0627\u0646\u0648\u0627\u062F\u0647 \u0647\u0633\u062A \u06A9\u0647 \u0645\u0646\u062A\u0638\u0631 \u0628\u0627\u0632\u06AF\u0634\u062A \u0639\u0632\u06CC\u0632\u0634 \u0627\u0633\u062A. \u0627\u0645\u0631\u0648\u0632 \u0628\u0627 \u0628\u06CC\u0634 \u0627\u0632 \u06F8\u06F5\u06F0 \u0633\u0627\u0632\u0645\u0627\u0646\u060C \u0627\u0632 \u067E\u0627\u0644\u0627\u06CC\u0634\u06AF\u0627\u0647\u200C\u0647\u0627 \u062A\u0627 \u0645\u0639\u0627\u062F\u0646 \u0648 \u0633\u0627\u06CC\u062A\u200C\u0647\u0627\u06CC \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC\u060C \u062F\u0631 \u06A9\u0646\u0627\u0631 \u06A9\u0633\u0627\u0646\u06CC \u0647\u0633\u062A\u06CC\u0645 \u06A9\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0631\u0627 \u06CC\u06A9 \u062E\u0637 \u0642\u0631\u0645\u0632 \u0645\u06CC\u200C\u062F\u0627\u0646\u0646\u062F.", + image: { url: "asset:about.jpg", alt: "\u0627\u0646\u0628\u0627\u0631 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0627\u06CC\u0645\u0646\u06CC \u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646" }, + badge: { value: "\u06F1\u06F8+", label: "\u0633\u0627\u0644 \u062D\u0641\u0627\u0638\u062A \u0627\u0632\n\u062C\u0627\u0646 \u0646\u06CC\u0631\u0648\u06CC \u06A9\u0627\u0631" }, + timeline: [ + { year: "\u06F1\u06F3\u06F8\u06F6", text: "\u062A\u0623\u0633\u06CC\u0633 \u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646 \u062F\u0631 \u062A\u0647\u0631\u0627\u0646 \u0628\u0627 \u062A\u0645\u0631\u06A9\u0632 \u0628\u0631 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC" }, + { year: "\u06F1\u06F3\u06F9\u06F2", text: "\u062A\u0648\u0633\u0639\u0647 \u0634\u0628\u06A9\u0647 \u062A\u0648\u0632\u06CC\u0639 \u0628\u0647 \u062A\u0645\u0627\u0645 \u06F3\u06F1 \u0627\u0633\u062A\u0627\u0646 \u06A9\u0634\u0648\u0631" }, + { year: "\u06F1\u06F3\u06F9\u06F8", text: "\u0631\u0627\u0647\u200C\u0627\u0646\u062F\u0627\u0632\u06CC \u0622\u0632\u0645\u0627\u06CC\u0634\u06AF\u0627\u0647 \u06A9\u0646\u062A\u0631\u0644 \u06A9\u06CC\u0641\u06CC\u062A \u0648 \u062A\u0633\u062A \u062A\u062C\u0647\u06CC\u0632\u0627\u062A" }, + { year: "\u06F1\u06F4\u06F0\u06F2", text: "\u0627\u0641\u062A\u062A\u0627\u062D \u0645\u0631\u06A9\u0632 \u062A\u062E\u0635\u0635\u06CC \u0622\u0645\u0648\u0632\u0634 \u0648 \u0628\u0627\u0632\u0631\u0633\u06CC HSE" } + ], + features: [ + { icon: "Globe", label: "\u0646\u0645\u0627\u06CC\u0646\u062F\u0647 \u0631\u0633\u0645\u06CC \u06F4\u06F0+ \u0628\u0631\u0646\u062F \u062C\u0647\u0627\u0646\u06CC" }, + { icon: "Users", label: "\u062A\u06CC\u0645 \u0645\u0647\u0646\u062F\u0633\u06CC \u0648 \u0628\u0627\u0632\u0631\u0633\u06CC HSE" }, + { icon: "Headset", label: "\u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u06F2\u06F4/\u06F7 \u0642\u0631\u0627\u0631\u062F\u0627\u062F\u0647\u0627" } + ] + }, + services: { + enabled: true, + head: { + tag: "\u06F0\u06F3 \u2014 \u062E\u062F\u0645\u0627\u062A", + title: "\u0641\u0631\u0627\u062A\u0631 \u0627\u0632 \u062A\u0623\u0645\u06CC\u0646\u061B\n\u0647\u0645\u0631\u0627\u0647\u06CC \u06A9\u0627\u0645\u0644 \u0627\u06CC\u0645\u0646\u06CC", + highlight: "", + desc: "\u0645\u0627 \u062F\u0631 \u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646\u060C \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0631\u0627 \u062A\u062D\u0648\u06CC\u0644 \u0645\u06CC\u200C\u062F\u0647\u06CC\u0645 \u0648 \u06A9\u0646\u0627\u0631 \u0634\u0645\u0627 \u0645\u06CC\u200C\u0645\u0627\u0646\u06CC\u0645\u061B \u0627\u0632 \u0646\u062E\u0633\u062A\u06CC\u0646 \u0627\u0631\u0632\u06CC\u0627\u0628\u06CC \u0631\u06CC\u0633\u06A9 \u062A\u0627 \u0622\u062E\u0631\u06CC\u0646 \u062A\u0633\u062A \u062F\u0648\u0631\u0647\u200C\u0627\u06CC." + }, + items: [ + { + icon: "ClipboardCheck", + title: "\u0628\u0627\u0632\u0631\u0633\u06CC \u0648 \u0627\u0631\u0632\u06CC\u0627\u0628\u06CC \u0631\u06CC\u0633\u06A9", + desc: "\u062A\u06CC\u0645 \u0645\u0647\u0646\u062F\u0633\u06CC \u0645\u0627 \u0628\u0627 \u0628\u0627\u0632\u062F\u06CC\u062F \u0627\u0632 \u0633\u0627\u06CC\u062A \u0634\u0645\u0627\u060C \u062E\u0637\u0631\u0627\u062A \u0631\u0627 \u0634\u0646\u0627\u0633\u0627\u06CC\u06CC\u060C \u0627\u0648\u0644\u0648\u06CC\u062A\u200C\u0628\u0646\u062F\u06CC \u0648 \u0628\u0631\u0627\u06CC \u0647\u0631 \u06A9\u062F\u0627\u0645 \u0631\u0627\u0647\u06A9\u0627\u0631 \u0627\u062C\u0631\u0627\u06CC\u06CC \u0645\u0634\u062E\u0635 \u0628\u0627 \u0628\u0631\u0622\u0648\u0631\u062F \u0647\u0632\u06CC\u0646\u0647 \u0627\u0631\u0627\u0626\u0647 \u0645\u06CC\u200C\u062F\u0647\u062F.", + items: [ + "\u0627\u0631\u0632\u06CC\u0627\u0628\u06CC HAZOP \u0648 HAZID", + "\u0634\u0646\u0627\u0633\u0627\u06CC\u06CC \u0648 \u0627\u0648\u0644\u0648\u06CC\u062A\u200C\u0628\u0646\u062F\u06CC \u062E\u0637\u0631\u0627\u062A", + "\u06AF\u0632\u0627\u0631\u0634 \u0645\u062F\u06CC\u0631\u06CC\u062A\u06CC \u0628\u0627 \u0631\u0627\u0647\u06A9\u0627\u0631 \u0627\u062C\u0631\u0627\u06CC\u06CC" + ] + }, + { + icon: "GraduationCap", + title: "\u0622\u0645\u0648\u0632\u0634 \u062A\u062E\u0635\u0635\u06CC \u0627\u06CC\u0645\u0646\u06CC", + desc: "\u0627\u0632 \u062F\u0648\u0631\u0647\u200C\u0647\u0627\u06CC \u0639\u0645\u0648\u0645\u06CC \u062A\u0627 \u062A\u0631\u0628\u06CC\u062A \u0645\u0631\u0628\u06CC\u061B \u0622\u0645\u0648\u0632\u0634\u200C\u0647\u0627\u06CC \u0639\u0645\u0644\u06CC \u0648 \u0645\u06CC\u062F\u0627\u0646\u06CC \u06A9\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0631\u0627 \u0627\u0632 \u062F\u0641\u062A\u0631 \u06A9\u0644\u0627\u0646\u200C\u0647\u0627 \u0628\u0647 \u0631\u0641\u062A\u0627\u0631 \u0631\u0648\u0632\u0645\u0631\u0647 \u067E\u0631\u0633\u0646\u0644 \u062A\u0628\u062F\u06CC\u0644 \u0645\u06CC\u200C\u06A9\u0646\u062F.", + items: [ + "\u062F\u0648\u0631\u0647\u200C\u0647\u0627\u06CC \u0639\u0645\u0648\u0645\u06CC \u0648 \u062A\u062E\u0635\u0635\u06CC HSE", + "\u062A\u0631\u0628\u06CC\u062A \u0645\u0631\u0628\u06CC \u0627\u06CC\u0645\u0646\u06CC \u0633\u0627\u06CC\u062A", + "\u0645\u0627\u0646\u0648\u0631 \u0648 \u0634\u0628\u06CC\u0647\u200C\u0633\u0627\u0632\u06CC \u0634\u0631\u0627\u06CC\u0637 \u0627\u0636\u0637\u0631\u0627\u0631\u06CC" + ] + }, + { + icon: "Gauge", + title: "\u062A\u0633\u062A \u0648 \u06A9\u0627\u0644\u06CC\u0628\u0631\u0627\u0633\u06CC\u0648\u0646 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A", + desc: "\u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0627\u06CC\u0645\u0646\u06CC \u0641\u0642\u0637 \u0648\u0642\u062A\u06CC \u0642\u0627\u0628\u0644 \u0627\u0639\u062A\u0645\u0627\u062F\u0646\u062F \u06A9\u0647 \u062A\u0633\u062A \u0634\u062F\u0647 \u0628\u0627\u0634\u0646\u062F. \u062A\u0633\u062A \u062F\u0648\u0631\u0647\u200C\u0627\u06CC\u060C \u0633\u0631\u0648\u06CC\u0633 \u0648 \u0635\u062F\u0648\u0631 \u06AF\u0648\u0627\u0647\u06CC \u0645\u0639\u062A\u0628\u0631 \u0631\u0627 \u0628\u0647 \u062A\u06CC\u0645 \u062A\u062E\u0635\u0635\u06CC \u0645\u0627 \u0628\u0633\u067E\u0627\u0631\u06CC\u062F.", + items: [ + "\u062A\u0633\u062A \u0647\u0627\u0631\u0646\u0633 \u0648 \u0644\u0627\u06CC\u0646 \u0646\u062C\u0627\u062A", + "\u06A9\u0627\u0644\u06CC\u0628\u0631\u0627\u0633\u06CC\u0648\u0646 \u0622\u0634\u06A9\u0627\u0631\u0633\u0627\u0632\u0647\u0627\u06CC \u06AF\u0627\u0632", + "\u0633\u0631\u0648\u06CC\u0633 \u062F\u0648\u0631\u0647\u200C\u0627\u06CC \u0648 \u0635\u062F\u0648\u0631 \u06AF\u0648\u0627\u0647\u06CC" + ] + }, + { + icon: "Truck", + title: "\u062A\u0623\u0645\u06CC\u0646 \u0648 \u0644\u062C\u0633\u062A\u06CC\u06A9 \u0633\u0627\u0632\u0645\u0627\u0646\u06CC", + desc: "\u0628\u0627 \u0642\u0631\u0627\u0631\u062F\u0627\u062F \u0633\u0627\u0644\u0627\u0646\u0647\u060C \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u0634\u0641\u0627\u0641 \u0648 \u0627\u0646\u0628\u0627\u0631 \u0645\u062D\u0644\u06CC \u062F\u0631 \u0633\u0627\u06CC\u062A \u0634\u0645\u0627\u060C \u0646\u06AF\u0631\u0627\u0646\u06CC \u06A9\u0645\u0628\u0648\u062F \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0631\u0627 \u0627\u0632 \u0641\u0647\u0631\u0633\u062A \u062F\u063A\u062F\u063A\u0647\u200C\u0647\u0627\u06CC\u062A\u0627\u0646 \u062D\u0630\u0641 \u06A9\u0646\u06CC\u062F.", + items: [ + "\u0642\u0631\u0627\u0631\u062F\u0627\u062F \u0633\u0627\u0644\u0627\u0646\u0647 \u0628\u0627 \u0642\u06CC\u0645\u062A \u062B\u0627\u0628\u062A", + "\u0627\u0646\u0628\u0627\u0631 \u0645\u062D\u0644\u06CC \u062F\u0631 \u0633\u0627\u06CC\u062A \u0634\u0645\u0627", + "\u062A\u062D\u0648\u06CC\u0644 \u0633\u0631\u0627\u0633\u0631\u06CC \u062F\u0631 \u06F4\u06F8 \u0633\u0627\u0639\u062A" + ] + } + ] + }, + standards: { + enabled: true, + head: { + tag: "\u06F0\u06F4 \u2014 \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F\u0647\u0627", + title: "\u0645\u0647\u0631\u062A\u0623\u06CC\u06CC\u062F \u062C\u0647\u0627\u0646\u06CC\n\u0631\u0648\u06CC \u0647\u0631 \u0645\u062D\u0635\u0648\u0644", + highlight: "", + desc: "\u0645\u0627 \u0641\u0642\u0637 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A\u06CC \u0631\u0627 \u0639\u0631\u0636\u0647 \u0645\u06CC\u200C\u06A9\u0646\u06CC\u0645 \u06A9\u0647 \u062A\u0623\u06CC\u06CC\u062F\u06CC\u0647 \u0645\u0639\u062A\u0628\u0631 \u0628\u06CC\u0646\u200C\u0627\u0644\u0645\u0644\u0644\u06CC \u0648 \u062A\u0633\u062A \u0622\u0632\u0645\u0627\u06CC\u0634\u06AF\u0627\u0647\u06CC \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u0646\u062F\u061B \u0628\u062F\u0648\u0646 \u0627\u0633\u062A\u062B\u0646\u0627." + }, + note: "\u0634\u0645\u0627\u0631\u0647 \u0633\u0631\u06CC\u0627\u0644 \u062A\u0645\u0627\u0645 \u0645\u062D\u0635\u0648\u0644\u0627\u062A \u062F\u0631 \u067E\u0627\u06CC\u06AF\u0627\u0647 \u062F\u0627\u062F\u0647 \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F\u0647\u0627\u06CC \u0627\u0631\u0648\u067E\u0627 \u0642\u0627\u0628\u0644 \u0627\u0633\u062A\u0639\u0644\u0627\u0645 \u0627\u0633\u062A \u0648 \u06AF\u0648\u0627\u0647\u06CC \u062A\u0633\u062A \u0647\u0631 \u0628\u0686 \u062A\u062D\u0648\u06CC\u0644 \u0645\u0634\u062A\u0631\u06CC \u0645\u06CC\u200C\u0634\u0648\u062F.", + ctaLabel: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u06AF\u0648\u0627\u0647\u06CC \u062A\u0633\u062A \u0645\u062D\u0635\u0648\u0644\u0627\u062A", + items: [ + { code: "EN 397", label: "\u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0635\u0646\u0639\u062A\u06CC" }, + { code: "EN 388", label: "\u062F\u0633\u062A\u06A9\u0634\u200C\u0647\u0627\u06CC \u0645\u06A9\u0627\u0646\u06CC\u06A9\u06CC" }, + { code: "EN 166", label: "\u0645\u062D\u0627\u0641\u0638 \u0686\u0634\u0645 \u0648 \u0635\u0648\u0631\u062A" }, + { code: "EN 361", label: "\u0647\u0627\u0631\u0646\u0633 \u0636\u062F\u0633\u0642\u0648\u0637" }, + { code: "ISO 20345", label: "\u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC" }, + { code: "ISO 9001", label: "\u0633\u06CC\u0633\u062A\u0645 \u0645\u062F\u06CC\u0631\u06CC\u062A \u06A9\u06CC\u0641\u06CC\u062A" } + ] + }, + industries: { + enabled: true, + head: { + tag: "\u06F0\u06F5 \u2014 \u0635\u0646\u0627\u06CC\u0639", + title: "\u062D\u0636\u0648\u0631 \u062F\u0631 \u0633\u062E\u062A\u200C\u062A\u0631\u06CC\u0646\n\u0645\u06CC\u062F\u0627\u0646\u200C\u0647\u0627\u06CC \u06A9\u0627\u0631\u06CC", + highlight: "", + desc: "\u062C\u0627\u06CC\u06CC \u06A9\u0647 \u062F\u0645\u0627\u06CC \u0645\u062D\u06CC\u0637 \u0627\u0632 \u06F5\u06F0 \u062F\u0631\u062C\u0647 \u06AF\u0630\u0631 \u0645\u06CC\u200C\u06A9\u0646\u062F \u06CC\u0627 \u0627\u0631\u062A\u0641\u0627\u0639 \u06A9\u0627\u0631 \u0628\u0647 \u062F\u0647\u200C\u0647\u0627 \u0645\u062A\u0631 \u0645\u06CC\u200C\u0631\u0633\u062F\u060C \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0645\u0627 \u0628\u0627\u06CC\u062F \u0628\u06CC\u200C\u0646\u0642\u0635 \u0639\u0645\u0644 \u06A9\u0646\u0646\u062F \u2014 \u0648 \u0639\u0645\u0644 \u0645\u06CC\u200C\u06A9\u0646\u0646\u062F." + }, + items: [ + { name: "\u0646\u0641\u062A \u0648 \u06AF\u0627\u0632", nameEn: "OIL & GAS", count: "\u06F1\u06F4\u06F0+", image: { url: "asset:industries/oil-gas.jpg", alt: "\u0646\u0641\u062A \u0648 \u06AF\u0627\u0632" } }, + { name: "\u0633\u0627\u062E\u062A\u0645\u0627\u0646 \u0648 \u0639\u0645\u0631\u0627\u0646", nameEn: "CONSTRUCTION", count: "\u06F2\u06F1\u06F0+", image: { url: "asset:industries/construction.jpg", alt: "\u0633\u0627\u062E\u062A\u0645\u0627\u0646 \u0648 \u0639\u0645\u0631\u0627\u0646" } }, + { name: "\u067E\u062A\u0631\u0648\u0634\u06CC\u0645\u06CC", nameEn: "PETROCHEMICAL", count: "\u06F9\u06F0+", image: { url: "asset:industries/petrochemical.jpg", alt: "\u067E\u062A\u0631\u0648\u0634\u06CC\u0645\u06CC" } }, + { name: "\u0635\u0646\u0627\u06CC\u0639 \u0645\u0639\u062F\u0646\u06CC", nameEn: "MINING", count: "\u06F7\u06F5+", image: { url: "asset:industries/mining.jpg", alt: "\u0635\u0646\u0627\u06CC\u0639 \u0645\u0639\u062F\u0646\u06CC" } }, + { name: "\u0628\u0631\u0642 \u0648 \u0627\u0646\u0631\u0698\u06CC", nameEn: "POWER & ENERGY", count: "\u06F6\u06F0+", image: { url: "asset:industries/power-energy.jpg", alt: "\u0628\u0631\u0642 \u0648 \u0627\u0646\u0631\u0698\u06CC" } }, + { name: "\u062D\u0645\u0644\u200C\u0648\u0646\u0642\u0644 \u0648 \u0644\u062C\u0633\u062A\u06CC\u06A9", nameEn: "TRANSPORT", count: "\u06F4\u06F5+", image: { url: "asset:industries/transport.jpg", alt: "\u062D\u0645\u0644\u200C\u0648\u0646\u0642\u0644 \u0648 \u0644\u062C\u0633\u062A\u06CC\u06A9" } } + ] + }, + testimonials: { + enabled: true, + head: { tag: "\u06F0\u06F6 \u2014 \u0627\u0639\u062A\u0645\u0627\u062F", title: "\u0622\u0646\u0686\u0647 \u0645\u0634\u062A\u0631\u06CC\u0627\u0646 \u0645\u0627 \u0645\u06CC\u200C\u06AF\u0648\u06CC\u0646\u062F", highlight: "", desc: "" }, + items: [ + { + text: "\u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646 \u0641\u0642\u0637 \u062A\u0623\u0645\u06CC\u0646\u200C\u06A9\u0646\u0646\u062F\u0647 \u0646\u06CC\u0633\u062A\u061B \u0634\u0631\u06CC\u06A9 \u0627\u06CC\u0645\u0646\u06CC \u0645\u0627\u0633\u062A. \u0628\u0627\u0632\u0631\u0633\u06CC\u200C\u0647\u0627\u06CC \u062F\u0648\u0631\u0647\u200C\u0627\u06CC \u0648 \u0622\u0645\u0648\u0632\u0634\u200C\u0647\u0627\u06CC \u0645\u06CC\u062F\u0627\u0646\u06CC\u200C\u0634\u0627\u0646 \u0646\u0631\u062E \u062D\u0648\u0627\u062F\u062B \u0633\u0627\u06CC\u062A \u0631\u0627 \u0628\u0647 \u06A9\u0645\u062A\u0631\u06CC\u0646 \u0631\u0642\u0645 \u062A\u0627\u0631\u06CC\u062E \u0645\u062C\u0645\u0648\u0639\u0647 \u0631\u0633\u0627\u0646\u062F.", + name: "\u0645\u0647\u0646\u062F\u0633 \u0631\u0636\u0627 \u06A9\u0627\u0638\u0645\u06CC", + role: "\u0645\u062F\u06CC\u0631 HSE \u2014 \u0645\u062C\u062A\u0645\u0639 \u067E\u062A\u0631\u0648\u0634\u06CC\u0645\u06CC \u062E\u0644\u06CC\u062C \u0641\u0627\u0631\u0633" + }, + { + text: "\u06A9\u06CC\u0641\u06CC\u062A \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0648 \u0633\u0631\u0639\u062A \u067E\u0627\u0633\u062E\u200C\u06AF\u0648\u06CC\u06CC \u062F\u0631 \u0633\u0637\u062D\u06CC \u0628\u0648\u062F \u06A9\u0647 \u0642\u0631\u0627\u0631\u062F\u0627\u062F \u0633\u0627\u0644\u0627\u0646\u0647 \u0631\u0627 \u0628\u062F\u0648\u0646 \u0647\u06CC\u0686 \u062A\u0631\u062F\u06CC\u062F\u06CC \u062A\u0645\u062F\u06CC\u062F \u06A9\u0631\u062F\u06CC\u0645\u061B \u0627\u0632 \u062E\u0637 \u062A\u0648\u0644\u06CC\u062F \u062A\u0627 \u062F\u0641\u062A\u0631 \u0645\u0631\u06A9\u0632\u06CC.", + name: "\u0633\u0627\u0631\u0627 \u0645\u062D\u0645\u062F\u06CC", + role: "\u0633\u0631\u067E\u0631\u0633\u062A \u062A\u062F\u0627\u0631\u06A9\u0627\u062A \u2014 \u0647\u0644\u062F\u06CC\u0646\u06AF \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC \u0622\u0631\u06A9\u0627\u0646" + }, + { + text: "\u06F1\u06F4\u06F0 \u06A9\u06CC\u0644\u0648\u0645\u062A\u0631 \u062F\u0648\u0631\u062A\u0631 \u0627\u0632 \u0633\u0627\u06CC\u062A\u060C \u062F\u0631 \u0639\u0631\u0636 \u06F2\u06F4 \u0633\u0627\u0639\u062A \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u06CC\u0627\u062A\u06CC \u0631\u0627 \u062A\u062D\u0648\u06CC\u0644 \u06AF\u0631\u0641\u062A\u06CC\u0645. \u0628\u0647 \u0627\u06CC\u0646 \u0645\u06CC\u200C\u06AF\u0648\u06CC\u0646\u062F \u0634\u0631\u06CC\u06A9 \u0648\u0627\u0642\u0639\u06CC \u06A9\u0627\u0631\u06CC.", + name: "\u0627\u0645\u06CC\u0631\u062D\u0633\u06CC\u0646 \u0631\u0627\u062F", + role: "\u0645\u062F\u06CC\u0631 \u067E\u0631\u0648\u0698\u0647 \u2014 \u0635\u0646\u0627\u06CC\u0639 \u0645\u0639\u062F\u0646\u06CC \u06A9\u0627\u0648\u0647" + } + ] + }, + contact: { + enabled: true, + head: { + tag: "\u06F0\u06F7 \u2014 \u062A\u0645\u0627\u0633", + title: "\u0628\u06CC\u0627\u06CC\u06CC\u062F \u0627\u06CC\u0645\u0646\u06CC \u0631\u0627\n\u0628\u0627 \u0647\u0645 \u062C\u062F\u06CC \u0628\u06AF\u06CC\u0631\u06CC\u0645", + highlight: "", + desc: "\u0641\u0631\u0645 \u0631\u0627 \u067E\u0631 \u06A9\u0646\u06CC\u062F \u062A\u0627 \u06A9\u0627\u0631\u0634\u0646\u0627\u0633\u0627\u0646 \u0645\u0627 \u0628\u0631\u0627\u06CC \u0647\u0645\u0627\u0647\u0646\u06AF\u06CC \u062C\u0644\u0633\u0647 \u0628\u0627\u0632\u062F\u06CC\u062F \u0631\u0627\u06CC\u06AF\u0627\u0646 \u0633\u0627\u06CC\u062A \u0634\u0645\u0627 \u062A\u0645\u0627\u0633 \u0628\u06AF\u06CC\u0631\u0646\u062F\u061B \u06CC\u0627 \u0645\u0633\u062A\u0642\u06CC\u0645 \u0628\u0627 \u0645\u0627 \u062F\u0631 \u0627\u0631\u062A\u0628\u0627\u0637 \u0628\u0627\u0634\u06CC\u062F." + }, + emergencyTitle: "\u067E\u0627\u0633\u062E\u200C\u06AF\u0648\u06CC\u06CC \u0627\u0636\u0637\u0631\u0627\u0631\u06CC \u06F2\u06F4/\u06F7", + emergencyText: "\u0628\u0631\u0627\u06CC \u0645\u0634\u062A\u0631\u06CC\u0627\u0646 \u062F\u0627\u0631\u0627\u06CC \u0642\u0631\u0627\u0631\u062F\u0627\u062F \u0633\u0627\u0632\u0645\u0627\u0646\u06CC\u060C \u062E\u0637 \u0648\u06CC\u0698\u0647 \u062D\u0648\u0627\u062F\u062B \u0648 \u062A\u0623\u0645\u06CC\u0646 \u0641\u0648\u0631\u06CC \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062F\u0631 \u062A\u0645\u0627\u0645 \u0633\u0627\u0639\u0627\u062A \u0634\u0628\u0627\u0646\u0647\u200C\u0631\u0648\u0632 \u0641\u0639\u0627\u0644 \u0627\u0633\u062A.", + formTag: "// \u0641\u0631\u0645 \u062F\u0631\u062E\u0648\u0627\u0633\u062A \u0645\u0634\u0627\u0648\u0631\u0647", + formTitle: "\u062F\u0631 \u06A9\u0645\u062A\u0631 \u0627\u0632 \u06F2\u06F4 \u0633\u0627\u0639\u062A\n\u0628\u0627 \u0634\u0645\u0627 \u062A\u0645\u0627\u0633 \u0645\u06CC\u200C\u06AF\u06CC\u0631\u06CC\u0645", + successTitle: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u0634\u0645\u0627 \u062B\u0628\u062A \u0634\u062F", + successText: "\u06A9\u0627\u0631\u0634\u0646\u0627\u0633\u0627\u0646 \u0645\u0627 \u062A\u0627 \u06F2\u06F4 \u0633\u0627\u0639\u062A \u0622\u06CC\u0646\u062F\u0647 \u0628\u0631\u0627\u06CC \u0647\u0645\u0627\u0647\u0646\u06AF\u06CC \u062C\u0644\u0633\u0647 \u0628\u0627\u0632\u062F\u06CC\u062F \u0628\u0627 \u0634\u0645\u0627 \u062A\u0645\u0627\u0633 \u0645\u06CC\u200C\u06AF\u06CC\u0631\u0646\u062F." + }, + footer: { + enabled: true, + about: "\u062A\u0623\u0645\u06CC\u0646\u200C\u06A9\u0646\u0646\u062F\u0647 \u062A\u062E\u0635\u0635\u06CC \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC \u0648 \u0631\u0627\u0647\u06A9\u0627\u0631\u0647\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC \u0635\u0646\u0639\u062A\u06CC\u061B \u0647\u0645\u0631\u0627\u0647 \u0633\u0627\u0632\u0645\u0627\u0646\u200C\u0647\u0627 \u0627\u0632 \u0633\u0627\u0644 \u06F1\u06F3\u06F8\u06F6 \u062F\u0631 \u0645\u0633\u06CC\u0631 \u0635\u0641\u0631 \u0634\u062F\u0646 \u062D\u0648\u0627\u062F\u062B \u06A9\u0627\u0631\u06CC.", + copyright: "\xA9 \u06F1\u06F4\u06F0\u06F4 \u0627\u06CC\u0645\u0646 \u067E\u06CC\u0634\u06AF\u0627\u0645\u0627\u0646 \u2014 \u062A\u0645\u0627\u0645\u06CC \u062D\u0642\u0648\u0642 \u0645\u062D\u0641\u0648\u0638 \u0627\u0633\u062A.", + certLine: "ISO 9001:2015 \u2014 CE CERTIFIED PPE SUPPLIER", + emergencyNote: "\u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0627\u0636\u0637\u0631\u0627\u0631\u06CC: \u06F2\u06F4/\u06F7" + } +}; +var CATEGORY_COVERS = { + workwear: "products/vest.jpg", + "safety-footwear": "products/shoes.jpg", + "protective-gloves": "products/gloves.jpg", + "safety-helmets": "products/helmet.jpg", + "eye-protection": "products/goggles.jpg", + "hearing-protection": "products/hearing.jpg", + "respiratory-protection": "products/respiratory.jpg", + "traffic-equipment": "products/traffic.jpg" +}; + +// dist/seed/seed.js +var ASSETS_DIR = process.env.SEED_ASSETS_DIR ?? path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../seed-assets"); +var OVERWRITE_SECTIONS = ["1", "true"].includes(process.env.SEED_OVERWRITE_SECTIONS ?? ""); +var prisma = createPrismaClient(); +var storage = new S3Storage(); +var uploaded = /* @__PURE__ */ new Map(); +async function asset(rel, alt = "") { + const cached = uploaded.get(rel); + if (cached) + return cached; + const key = `seed/${rel.replace(/\.[^.]+$/, "")}.webp`; + let media = await prisma.media.findUnique({ where: { key } }); + if (!media) { + const image = await toWebp(await readFile(path.join(ASSETS_DIR, rel))); + try { + await storage.put(key, image.data, "image/webp"); + } catch { + try { + const targetPath = path.resolve(ASSETS_DIR, "../../.s3data/imen-media", key); + await mkdir(path.dirname(targetPath), { recursive: true }); + await writeFile(targetPath, image.data); + } catch { + } + } + media = await prisma.media.create({ + data: { + key, + mime: "image/webp", + size: image.size, + width: image.width, + height: image.height, + alt, + originalName: path.basename(rel) + } + }); + } + const result = { id: media.id, url: storage.publicUrl(key) }; + uploaded.set(rel, result); + return result; +} +__name(asset, "asset"); +async function resolveAssets(value) { + if (Array.isArray(value)) + return Promise.all(value.map(resolveAssets)); + if (value && typeof value === "object") { + const entries = await Promise.all(Object.entries(value).map(async ([k, v]) => { + if (k === "url" && typeof v === "string" && v.startsWith("asset:")) { + return [k, (await asset(v.slice("asset:".length))).url]; + } + return [k, await resolveAssets(v)]; + })); + return Object.fromEntries(entries); + } + return value; +} +__name(resolveAssets, "resolveAssets"); +async function seedSections() { + for (const key of SECTION_KEYS) { + const exists = await prisma.siteSection.findUnique({ where: { key } }); + if (exists && !OVERWRITE_SECTIONS) + continue; + const data = sectionSchemas[key].parse(await resolveAssets(SECTIONS[key])); + await prisma.siteSection.upsert({ where: { key }, create: { key, data }, update: { data } }); + console.log(` section ${key}`); + } +} +__name(seedSections, "seedSections"); +async function seedCatalog() { + for (const [ci, c] of CATEGORIES.entries()) { + if (await prisma.category.findUnique({ where: { slug: c.slug } })) + continue; + const coverPath = CATEGORY_COVERS[c.slug]; + const cover = coverPath ? await asset(coverPath, c.name) : null; + const category = await prisma.category.create({ + data: { + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.en, + shortDesc: c.shortDesc, + fullDesc: c.fullDesc, + icon: c.icon, + coverImageId: cover?.id ?? null, + sortOrder: ci, + groups: { + create: (c.groups ?? []).map((g, i) => ({ + slug: g.slug, + name: g.name, + desc: g.desc, + sortOrder: i + })) + } + }, + include: { groups: true } + }); + const groupIds = new Map(category.groups.map((g) => [g.slug, g.id])); + for (const [pi, p] of c.products.entries()) { + const image = p.image ? await asset(p.image.replace(/^\/images\//, ""), p.name) : null; + await prisma.product.create({ + data: { + categoryId: category.id, + groupId: p.group ? groupIds.get(p.group) ?? null : null, + code: p.code, + slug: p.code.toLowerCase(), + name: p.name, + nameEn: p.en, + desc: p.desc, + specs: [...p.specs], + variants: [...p.variants ?? []], + imageId: image?.id ?? null, + sortOrder: pi + } + }); + } + console.log(` category ${c.slug} (${c.products.length} products)`); + } +} +__name(seedCatalog, "seedCatalog"); +async function seedAdmin() { + if (!env.ADMIN_PHONE || !env.ADMIN_PASSWORD) { + console.log(" ADMIN_PHONE / ADMIN_PASSWORD not set \u2014 skipping admin user"); + return; + } + const phone = normalizeIrMobile(env.ADMIN_PHONE); + if (!/^09\d{9}$/.test(phone)) { + console.log(` ADMIN_PHONE invalid (${env.ADMIN_PHONE}) \u2014 skipping admin user`); + return; + } + const existing = await prisma.adminUser.findUnique({ where: { phone } }); + if (existing) + return; + const legacy = await prisma.adminUser.findFirst({ + where: { role: "ADMIN", phone: { contains: "@" } }, + orderBy: { id: "asc" } + }); + if (legacy) { + await prisma.adminUser.update({ + where: { id: legacy.id }, + data: { phone, name: env.ADMIN_NAME, passwordHash: await hashPassword(env.ADMIN_PASSWORD) } + }); + console.log(` admin user migrated to ${phone}`); + return; + } + await prisma.adminUser.create({ + data: { + phone, + name: env.ADMIN_NAME, + role: "ADMIN", + passwordHash: await hashPassword(env.ADMIN_PASSWORD) + } + }); + console.log(` admin user ${phone}`); +} +__name(seedAdmin, "seedAdmin"); +async function seedMessages() { + const count = await prisma.contactMessage.count(); + if (count > 0) + return; + const samples = [ + { + name: "\u0645\u0647\u0646\u062F\u0633 \u0631\u0636\u0627 \u06A9\u0627\u0638\u0645\u06CC", + org: "\u0645\u062C\u062A\u0645\u0639 \u067E\u062A\u0631\u0648\u0634\u06CC\u0645\u06CC \u062E\u0644\u06CC\u062C \u0641\u0627\u0631\u0633", + phone: "09121112233", + message: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u067E\u06CC\u0634\u200C\u0641\u0627\u06A9\u062A\u0648\u0631 \u06F5\u06F0\u06F0 \u0639\u062F\u062F \u0647\u0627\u0631\u0646\u0633 \u0627\u06CC\u0645\u0646\u06CC \u062F\u0648 \u0642\u0644\u0627\u0628 \u0648 \u06A9\u0644\u0627\u0647 \u0627\u06CC\u0645\u0646\u06CC \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F EN 397 \u0628\u0631\u0627\u06CC \u0641\u0627\u0632 \u06F2 \u067E\u062A\u0631\u0648\u0634\u06CC\u0645\u06CC.", + status: "NEW", + createdAt: new Date(Date.now() - 1e3 * 60 * 35) + }, + { + name: "\u0633\u0627\u0631\u0627 \u0645\u062D\u0645\u062F\u06CC", + org: "\u0647\u0644\u062F\u06CC\u0646\u06AF \u0633\u0627\u062E\u062A\u0645\u0627\u0646\u06CC \u0622\u0631\u06A9\u0627\u0646", + phone: "09122223344", + message: "\u0627\u0633\u062A\u0639\u0644\u0627\u0645 \u0642\u06CC\u0645\u062A \u0648 \u0647\u0645\u0627\u0647\u0646\u06AF\u06CC \u062C\u0644\u0633\u0647 \u0628\u0627\u0632\u062F\u06CC\u062F \u062C\u0647\u062A \u0639\u0642\u062F \u0642\u0631\u0627\u0631\u062F\u0627\u062F \u0633\u0627\u0644\u0627\u0646\u0647 \u062A\u0623\u0645\u06CC\u0646 \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u062D\u0641\u0627\u0638\u062A \u0641\u0631\u062F\u06CC \u06F1\u06F2 \u067E\u0631\u0648\u0698\u0647 \u0641\u0639\u0627\u0644.", + status: "NEW", + createdAt: new Date(Date.now() - 1e3 * 60 * 120) + }, + { + name: "\u0627\u0645\u06CC\u0631\u062D\u0633\u06CC\u0646 \u0631\u0627\u062F", + org: "\u0635\u0646\u0627\u06CC\u0639 \u0645\u0639\u062F\u0646\u06CC \u06A9\u0627\u0648\u0647", + phone: "09123334455", + message: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u062A\u0623\u0645\u06CC\u0646 \u0641\u0648\u0631\u06CC \u06F2\u06F0\u06F0 \u062C\u0641\u062A \u062F\u0633\u062A\u06A9\u0634 \u0627\u06CC\u0645\u0646\u06CC \u0636\u062F\u0628\u0631\u0634 \u0648 \u06A9\u0641\u0634 \u0627\u06CC\u0645\u0646\u06CC \u0636\u062F\u0627\u0633\u06CC\u062F \u0648 \u067E\u0646\u062C\u0647 \u06A9\u0627\u0645\u067E\u0648\u0632\u06CC\u062A \u0628\u0631\u0627\u06CC \u0633\u0627\u06CC\u062A \u06CC\u0632\u062F.", + status: "READ", + createdAt: new Date(Date.now() - 1e3 * 60 * 60 * 8) + }, + { + name: "\u0645\u0647\u0646\u062F\u0633 \u0639\u0644\u06CC\u0631\u0636\u0627 \u0628\u0647\u0631\u0627\u0645\u06CC", + org: "\u0634\u0631\u06A9\u062A \u0646\u0641\u062A \u0648 \u06AF\u0627\u0632 \u067E\u0627\u0631\u0633", + phone: "09124445566", + message: "\u062A\u0642\u0627\u0636\u0627\u06CC \u0627\u0631\u0633\u0627\u0644 \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u0648 \u0646\u0645\u0648\u0646\u0647 \u0639\u06CC\u0646\u06A9 \u0627\u06CC\u0645\u0646\u06CC \u0627\u0633\u062A\u0627\u0646\u062F\u0627\u0631\u062F EN 166 \u0648 \u0645\u062D\u0627\u0641\u0638 \u06AF\u0648\u0634 \u0627\u06CC\u0631\u0645\u0627\u0641 \u062C\u0647\u062A \u0622\u0632\u0645\u0627\u06CC\u0634 \u0648\u0627\u062D\u062F HSE.", + status: "NEW", + createdAt: new Date(Date.now() - 1e3 * 60 * 60 * 24) + }, + { + name: "\u0645\u0631\u06CC\u0645 \u0631\u0636\u0627\u06CC\u06CC", + org: "\u062F\u0627\u0631\u0648\u0633\u0627\u0632\u06CC \u0631\u0627\u0632\u06A9", + phone: "09125556677", + message: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u0645\u0634\u0627\u0648\u0631\u0647 \u062A\u062E\u0635\u0635\u06CC \u062F\u0631 \u0631\u0627\u0628\u0637\u0647 \u0628\u0627 \u0645\u0627\u0633\u06A9\u200C\u0647\u0627\u06CC \u0641\u06CC\u0644\u062A\u0631\u062F\u0627\u0631 \u0630\u0631\u0627\u062A \u0634\u06CC\u0645\u06CC\u0627\u06CC\u06CC \u0648 \u0644\u0628\u0627\u0633\u200C\u0647\u0627\u06CC \u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0622\u0632\u0645\u0627\u06CC\u0634\u06AF\u0627\u0647\u06CC.", + status: "READ", + createdAt: new Date(Date.now() - 1e3 * 60 * 60 * 36) + }, + { + name: "\u0645\u0647\u0646\u062F\u0633 \u0645\u0647\u062F\u06CC \u06CC\u0648\u0633\u0641\u06CC", + org: "\u0641\u0648\u0644\u0627\u062F \u0645\u0628\u0627\u0631\u06A9\u0647 \u0627\u0635\u0641\u0647\u0627\u0646", + phone: "09126667788", + message: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u0628\u0631\u06AF\u0632\u0627\u0631\u06CC \u062C\u0644\u0633\u0647 \u0641\u0646\u06CC \u0628\u0631\u0627\u06CC \u062A\u0645\u062F\u06CC\u062F \u0642\u0631\u0627\u0631\u062F\u0627\u062F \u062A\u0623\u0645\u06CC\u0646 \u0644\u0628\u0627\u0633 \u06A9\u0627\u0631 \u0646\u0633\u0648\u0632\u060C \u0634\u06CC\u0644\u062F \u0645\u062D\u0627\u0641\u0638 \u0635\u0648\u0631\u062A \u0648 \u067E\u0627\u0628\u0646\u062F \u0646\u0633\u0648\u0632.", + status: "ARCHIVED", + createdAt: new Date(Date.now() - 1e3 * 60 * 60 * 72) + }, + { + name: "\u067E\u06CC\u0645\u0627\u0646 \u0646\u0627\u062F\u0631\u06CC", + org: "\u062E\u0637\u0648\u0637 \u0644\u0648\u0644\u0647 \u0648 \u0645\u062E\u0627\u0628\u0631\u0627\u062A \u0646\u0641\u062A", + phone: "09127778899", + message: "\u0627\u0633\u062A\u0639\u0644\u0627\u0645 \u0645\u0648\u062C\u0648\u062F\u06CC \u062A\u062C\u0647\u06CC\u0632\u0627\u062A \u0646\u062C\u0627\u062A \u062F\u0631 \u0641\u0636\u0627\u0647\u0627\u06CC \u0628\u0633\u062A\u0647\u060C \u0633\u0647\u200C\u067E\u0627\u06CC\u0647 \u0646\u062C\u0627\u062A (Tripod) \u0648 \u0648\u06CC\u0646\u0686 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u06AF\u0648\u0627\u0647\u06CC \u06A9\u0627\u0644\u06CC\u0628\u0631\u0627\u0633\u06CC\u0648\u0646.", + status: "NEW", + createdAt: new Date(Date.now() - 1e3 * 60 * 60 * 96) + }, + { + name: "\u062F\u06A9\u062A\u0631 \u0645\u062C\u06CC\u062F \u0627\u0633\u062F\u06CC", + org: "\u0633\u06CC\u0645\u0627\u0646 \u062A\u0647\u0631\u0627\u0646", + phone: "09128889900", + message: "\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u0628\u0631\u06AF\u0632\u0627\u0631\u06CC \u062F\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06CC \u06A9\u0627\u0631 \u062F\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0628\u0631\u0627\u06CC \u067E\u0631\u0633\u0646\u0644 \u067E\u06CC\u0645\u0627\u0646\u06A9\u0627\u0631 \u0648 \u0628\u0627\u0632\u0631\u0633\u06CC \u062F\u0648\u0631\u0647\u200C\u0627\u06CC \u062E\u0637\u0648\u0637 \u062D\u06CC\u0627\u062A (Lifeline).", + status: "READ", + createdAt: new Date(Date.now() - 1e3 * 60 * 60 * 120) + } + ]; + for (const msg of samples) { + await prisma.contactMessage.create({ data: msg }); + } + console.log(` seeded ${samples.length} sample contact messages`); +} +__name(seedMessages, "seedMessages"); +async function main() { + if (env.S3_ENSURE_BUCKET) { + try { + await storage.ensureBucket(); + } catch { + console.log(" ensureBucket skipped"); + } + } + console.log("seeding sections\u2026"); + await seedSections(); + console.log("seeding catalog\u2026"); + await seedCatalog(); + console.log("seeding admin\u2026"); + await seedAdmin(); + console.log("seeding messages\u2026"); + await seedMessages(); + const [categories, products, media] = await Promise.all([ + prisma.category.count(), + prisma.product.count(), + prisma.media.count() + ]); + console.log(`done: ${categories} categories, ${products} products, ${media} media files`); +} +__name(main, "main"); +try { + await main(); +} catch (e) { + console.error(e); + process.exitCode = 1; +} finally { + await prisma.$disconnect(); +} diff --git a/apps/api/.output/node_modules/@img/colour/LICENSE.md b/apps/api/.output/node_modules/@img/colour/LICENSE.md new file mode 100644 index 0000000..292c550 --- /dev/null +++ b/apps/api/.output/node_modules/@img/colour/LICENSE.md @@ -0,0 +1,82 @@ +# Licensing + +## color + +Copyright (c) 2012 Heather Arthur + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## color-convert + +Copyright (c) 2011-2016 Heather Arthur . +Copyright (c) 2016-2021 Josh Junon . + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## color-string + +Copyright (c) 2011 Heather Arthur + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## color-name + +The MIT License (MIT) +Copyright (c) 2015 Dmitry Ivanov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/apps/api/.output/node_modules/@img/colour/README.md b/apps/api/.output/node_modules/@img/colour/README.md new file mode 100644 index 0000000..a33e4eb --- /dev/null +++ b/apps/api/.output/node_modules/@img/colour/README.md @@ -0,0 +1,15 @@ +# `@img/colour` + +The latest version of the +[color](https://www.npmjs.com/package/color) +package is now ESM-only, +however some JavaScript runtimes do not yet support this, +which includes versions of Node.js prior to 20.19.0. + +This package converts the `color` package and its dependencies, +all of which are MIT-licensed, to CommonJS. + +- [color](https://www.npmjs.com/package/color) +- [color-convert](https://www.npmjs.com/package/color-convert) +- [color-string](https://www.npmjs.com/package/color-string) +- [color-name](https://www.npmjs.com/package/color-name) diff --git a/apps/api/.output/node_modules/@img/colour/color.cjs b/apps/api/.output/node_modules/@img/colour/color.cjs new file mode 100644 index 0000000..d5b7ee2 --- /dev/null +++ b/apps/api/.output/node_modules/@img/colour/color.cjs @@ -0,0 +1,1596 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// node_modules/color/index.js +var index_exports = {}; +__export(index_exports, { + default: () => index_default +}); +module.exports = __toCommonJS(index_exports); + +// node_modules/color-name/index.js +var colors = { + aliceblue: [240, 248, 255], + antiquewhite: [250, 235, 215], + aqua: [0, 255, 255], + aquamarine: [127, 255, 212], + azure: [240, 255, 255], + beige: [245, 245, 220], + bisque: [255, 228, 196], + black: [0, 0, 0], + blanchedalmond: [255, 235, 205], + blue: [0, 0, 255], + blueviolet: [138, 43, 226], + brown: [165, 42, 42], + burlywood: [222, 184, 135], + cadetblue: [95, 158, 160], + chartreuse: [127, 255, 0], + chocolate: [210, 105, 30], + coral: [255, 127, 80], + cornflowerblue: [100, 149, 237], + cornsilk: [255, 248, 220], + crimson: [220, 20, 60], + cyan: [0, 255, 255], + darkblue: [0, 0, 139], + darkcyan: [0, 139, 139], + darkgoldenrod: [184, 134, 11], + darkgray: [169, 169, 169], + darkgreen: [0, 100, 0], + darkgrey: [169, 169, 169], + darkkhaki: [189, 183, 107], + darkmagenta: [139, 0, 139], + darkolivegreen: [85, 107, 47], + darkorange: [255, 140, 0], + darkorchid: [153, 50, 204], + darkred: [139, 0, 0], + darksalmon: [233, 150, 122], + darkseagreen: [143, 188, 143], + darkslateblue: [72, 61, 139], + darkslategray: [47, 79, 79], + darkslategrey: [47, 79, 79], + darkturquoise: [0, 206, 209], + darkviolet: [148, 0, 211], + deeppink: [255, 20, 147], + deepskyblue: [0, 191, 255], + dimgray: [105, 105, 105], + dimgrey: [105, 105, 105], + dodgerblue: [30, 144, 255], + firebrick: [178, 34, 34], + floralwhite: [255, 250, 240], + forestgreen: [34, 139, 34], + fuchsia: [255, 0, 255], + gainsboro: [220, 220, 220], + ghostwhite: [248, 248, 255], + gold: [255, 215, 0], + goldenrod: [218, 165, 32], + gray: [128, 128, 128], + green: [0, 128, 0], + greenyellow: [173, 255, 47], + grey: [128, 128, 128], + honeydew: [240, 255, 240], + hotpink: [255, 105, 180], + indianred: [205, 92, 92], + indigo: [75, 0, 130], + ivory: [255, 255, 240], + khaki: [240, 230, 140], + lavender: [230, 230, 250], + lavenderblush: [255, 240, 245], + lawngreen: [124, 252, 0], + lemonchiffon: [255, 250, 205], + lightblue: [173, 216, 230], + lightcoral: [240, 128, 128], + lightcyan: [224, 255, 255], + lightgoldenrodyellow: [250, 250, 210], + lightgray: [211, 211, 211], + lightgreen: [144, 238, 144], + lightgrey: [211, 211, 211], + lightpink: [255, 182, 193], + lightsalmon: [255, 160, 122], + lightseagreen: [32, 178, 170], + lightskyblue: [135, 206, 250], + lightslategray: [119, 136, 153], + lightslategrey: [119, 136, 153], + lightsteelblue: [176, 196, 222], + lightyellow: [255, 255, 224], + lime: [0, 255, 0], + limegreen: [50, 205, 50], + linen: [250, 240, 230], + magenta: [255, 0, 255], + maroon: [128, 0, 0], + mediumaquamarine: [102, 205, 170], + mediumblue: [0, 0, 205], + mediumorchid: [186, 85, 211], + mediumpurple: [147, 112, 219], + mediumseagreen: [60, 179, 113], + mediumslateblue: [123, 104, 238], + mediumspringgreen: [0, 250, 154], + mediumturquoise: [72, 209, 204], + mediumvioletred: [199, 21, 133], + midnightblue: [25, 25, 112], + mintcream: [245, 255, 250], + mistyrose: [255, 228, 225], + moccasin: [255, 228, 181], + navajowhite: [255, 222, 173], + navy: [0, 0, 128], + oldlace: [253, 245, 230], + olive: [128, 128, 0], + olivedrab: [107, 142, 35], + orange: [255, 165, 0], + orangered: [255, 69, 0], + orchid: [218, 112, 214], + palegoldenrod: [238, 232, 170], + palegreen: [152, 251, 152], + paleturquoise: [175, 238, 238], + palevioletred: [219, 112, 147], + papayawhip: [255, 239, 213], + peachpuff: [255, 218, 185], + peru: [205, 133, 63], + pink: [255, 192, 203], + plum: [221, 160, 221], + powderblue: [176, 224, 230], + purple: [128, 0, 128], + rebeccapurple: [102, 51, 153], + red: [255, 0, 0], + rosybrown: [188, 143, 143], + royalblue: [65, 105, 225], + saddlebrown: [139, 69, 19], + salmon: [250, 128, 114], + sandybrown: [244, 164, 96], + seagreen: [46, 139, 87], + seashell: [255, 245, 238], + sienna: [160, 82, 45], + silver: [192, 192, 192], + skyblue: [135, 206, 235], + slateblue: [106, 90, 205], + slategray: [112, 128, 144], + slategrey: [112, 128, 144], + snow: [255, 250, 250], + springgreen: [0, 255, 127], + steelblue: [70, 130, 180], + tan: [210, 180, 140], + teal: [0, 128, 128], + thistle: [216, 191, 216], + tomato: [255, 99, 71], + turquoise: [64, 224, 208], + violet: [238, 130, 238], + wheat: [245, 222, 179], + white: [255, 255, 255], + whitesmoke: [245, 245, 245], + yellow: [255, 255, 0], + yellowgreen: [154, 205, 50] +}; +for (const key in colors) Object.freeze(colors[key]); +var color_name_default = Object.freeze(colors); + +// node_modules/color-string/index.js +var reverseNames = /* @__PURE__ */ Object.create(null); +for (const name in color_name_default) { + if (Object.hasOwn(color_name_default, name)) { + reverseNames[color_name_default[name]] = name; + } +} +var cs = { + to: {}, + get: {} +}; +cs.get = function(string) { + const prefix = string.slice(0, 3).toLowerCase(); + let value; + let model; + switch (prefix) { + case "hsl": { + value = cs.get.hsl(string); + model = "hsl"; + break; + } + case "hwb": { + value = cs.get.hwb(string); + model = "hwb"; + break; + } + default: { + value = cs.get.rgb(string); + model = "rgb"; + break; + } + } + if (!value) { + return null; + } + return { model, value }; +}; +cs.get.rgb = function(string) { + if (!string) { + return null; + } + const abbr = /^#([a-f\d]{3,4})$/i; + const hex = /^#([a-f\d]{6})([a-f\d]{2})?$/i; + const rgba = /^rgba?\(\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)\s*(?:[\s,|/]\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(%?)\s*)?\)$/i; + const per = /^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/i; + const keyword = /^(\w+)$/; + let rgb = [0, 0, 0, 1]; + let match; + let i; + let hexAlpha; + if (match = string.match(hex)) { + hexAlpha = match[2]; + match = match[1]; + for (i = 0; i < 3; i++) { + const i2 = i * 2; + rgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16); + } + if (hexAlpha) { + rgb[3] = Number.parseInt(hexAlpha, 16) / 255; + } + } else if (match = string.match(abbr)) { + match = match[1]; + hexAlpha = match[3]; + for (i = 0; i < 3; i++) { + rgb[i] = Number.parseInt(match[i] + match[i], 16); + } + if (hexAlpha) { + rgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255; + } + } else if (match = string.match(rgba)) { + for (i = 0; i < 3; i++) { + rgb[i] = Number.parseFloat(match[i + 1]); + } + if (match[4]) { + rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]); + } + } else if (match = string.match(per)) { + for (i = 0; i < 3; i++) { + rgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55); + } + if (match[4]) { + rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]); + } + } else if (match = string.toLowerCase().match(keyword)) { + if (match[1] === "transparent") { + return [0, 0, 0, 0]; + } + if (!Object.hasOwn(color_name_default, match[1])) { + return null; + } + rgb = color_name_default[match[1]].slice(); + rgb[3] = 1; + return rgb; + } else { + return null; + } + for (i = 0; i < 3; i++) { + rgb[i] = clamp(rgb[i], 0, 255); + } + rgb[3] = clamp(rgb[3], 0, 1); + return rgb; +}; +cs.get.hsl = function(string) { + if (!string) { + return null; + } + const hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i; + const match = string.match(hsl); + if (match) { + const alpha = Number.parseFloat(match[4]); + const h = (Number.parseFloat(match[1]) % 360 + 360) % 360; + const s = clamp(Number.parseFloat(match[2]), 0, 100); + const l = clamp(Number.parseFloat(match[3]), 0, 100); + const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, s, l, a]; + } + return null; +}; +cs.get.hwb = function(string) { + if (!string) { + return null; + } + const hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i; + const match = string.match(hwb); + if (match) { + const alpha = Number.parseFloat(match[4]); + const h = (Number.parseFloat(match[1]) % 360 + 360) % 360; + const w = clamp(Number.parseFloat(match[2]), 0, 100); + const b = clamp(Number.parseFloat(match[3]), 0, 100); + const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } + return null; +}; +cs.to.hex = function(...rgba) { + return "#" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : ""); +}; +cs.to.rgb = function(...rgba) { + return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ")" : "rgba(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ", " + rgba[3] + ")"; +}; +cs.to.rgb.percent = function(...rgba) { + const r = Math.round(rgba[0] / 255 * 100); + const g = Math.round(rgba[1] / 255 * 100); + const b = Math.round(rgba[2] / 255 * 100); + return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + r + "%, " + g + "%, " + b + "%)" : "rgba(" + r + "%, " + g + "%, " + b + "%, " + rgba[3] + ")"; +}; +cs.to.hsl = function(...hsla) { + return hsla.length < 4 || hsla[3] === 1 ? "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)" : "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + hsla[3] + ")"; +}; +cs.to.hwb = function(...hwba) { + let a = ""; + if (hwba.length >= 4 && hwba[3] !== 1) { + a = ", " + hwba[3]; + } + return "hwb(" + hwba[0] + ", " + hwba[1] + "%, " + hwba[2] + "%" + a + ")"; +}; +cs.to.keyword = function(...rgb) { + return reverseNames[rgb.slice(0, 3)]; +}; +function clamp(number_, min, max) { + return Math.min(Math.max(min, number_), max); +} +function hexDouble(number_) { + const string_ = Math.round(number_).toString(16).toUpperCase(); + return string_.length < 2 ? "0" + string_ : string_; +} +var color_string_default = cs; + +// node_modules/color-convert/conversions.js +var reverseKeywords = {}; +for (const key of Object.keys(color_name_default)) { + reverseKeywords[color_name_default[key]] = key; +} +var convert = { + rgb: { channels: 3, labels: "rgb" }, + hsl: { channels: 3, labels: "hsl" }, + hsv: { channels: 3, labels: "hsv" }, + hwb: { channels: 3, labels: "hwb" }, + cmyk: { channels: 4, labels: "cmyk" }, + xyz: { channels: 3, labels: "xyz" }, + lab: { channels: 3, labels: "lab" }, + oklab: { channels: 3, labels: ["okl", "oka", "okb"] }, + lch: { channels: 3, labels: "lch" }, + oklch: { channels: 3, labels: ["okl", "okc", "okh"] }, + hex: { channels: 1, labels: ["hex"] }, + keyword: { channels: 1, labels: ["keyword"] }, + ansi16: { channels: 1, labels: ["ansi16"] }, + ansi256: { channels: 1, labels: ["ansi256"] }, + hcg: { channels: 3, labels: ["h", "c", "g"] }, + apple: { channels: 3, labels: ["r16", "g16", "b16"] }, + gray: { channels: 1, labels: ["gray"] } +}; +var conversions_default = convert; +var LAB_FT = (6 / 29) ** 3; +function srgbNonlinearTransform(c) { + const cc = c > 31308e-7 ? 1.055 * c ** (1 / 2.4) - 0.055 : c * 12.92; + return Math.min(Math.max(0, cc), 1); +} +function srgbNonlinearTransformInv(c) { + return c > 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92; +} +for (const model of Object.keys(convert)) { + if (!("channels" in convert[model])) { + throw new Error("missing channels property: " + model); + } + if (!("labels" in convert[model])) { + throw new Error("missing channel labels property: " + model); + } + if (convert[model].labels.length !== convert[model].channels) { + throw new Error("channel and label counts mismatch: " + model); + } + const { channels, labels } = convert[model]; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], "channels", { value: channels }); + Object.defineProperty(convert[model], "labels", { value: labels }); +} +convert.rgb.hsl = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const min = Math.min(r, g, b); + const max = Math.max(r, g, b); + const delta = max - min; + let h; + let s; + switch (max) { + case min: { + h = 0; + break; + } + case r: { + h = (g - b) / delta; + break; + } + case g: { + h = 2 + (b - r) / delta; + break; + } + case b: { + h = 4 + (r - g) / delta; + break; + } + } + h = Math.min(h * 60, 360); + if (h < 0) { + h += 360; + } + const l = (min + max) / 2; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + return [h, s * 100, l * 100]; +}; +convert.rgb.hsv = function(rgb) { + let rdif; + let gdif; + let bdif; + let h; + let s; + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const v = Math.max(r, g, b); + const diff = v - Math.min(r, g, b); + const diffc = function(c) { + return (v - c) / 6 / diff + 1 / 2; + }; + if (diff === 0) { + h = 0; + s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + switch (v) { + case r: { + h = bdif - gdif; + break; + } + case g: { + h = 1 / 3 + rdif - bdif; + break; + } + case b: { + h = 2 / 3 + gdif - rdif; + break; + } + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + return [ + h * 360, + s * 100, + v * 100 + ]; +}; +convert.rgb.hwb = function(rgb) { + const r = rgb[0]; + const g = rgb[1]; + let b = rgb[2]; + const h = convert.rgb.hsl(rgb)[0]; + const w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; +}; +convert.rgb.oklab = function(rgb) { + const r = srgbNonlinearTransformInv(rgb[0] / 255); + const g = srgbNonlinearTransformInv(rgb[1] / 255); + const b = srgbNonlinearTransformInv(rgb[2] / 255); + const lp = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b); + const mp = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b); + const sp = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b); + const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp; + const aa = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp; + const bb = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp; + return [l * 100, aa * 100, bb * 100]; +}; +convert.rgb.cmyk = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const k = Math.min(1 - r, 1 - g, 1 - b); + const c = (1 - r - k) / (1 - k) || 0; + const m = (1 - g - k) / (1 - k) || 0; + const y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; +}; +function comparativeDistance(x, y) { + return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; +} +convert.rgb.keyword = function(rgb) { + const reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + let currentClosestDistance = Number.POSITIVE_INFINITY; + let currentClosestKeyword; + for (const keyword of Object.keys(color_name_default)) { + const value = color_name_default[keyword]; + const distance = comparativeDistance(rgb, value); + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + return currentClosestKeyword; +}; +convert.keyword.rgb = function(keyword) { + return [...color_name_default[keyword]]; +}; +convert.rgb.xyz = function(rgb) { + const r = srgbNonlinearTransformInv(rgb[0] / 255); + const g = srgbNonlinearTransformInv(rgb[1] / 255); + const b = srgbNonlinearTransformInv(rgb[2] / 255); + const x = r * 0.4124564 + g * 0.3575761 + b * 0.1804375; + const y = r * 0.2126729 + g * 0.7151522 + b * 0.072175; + const z = r * 0.0193339 + g * 0.119192 + b * 0.9503041; + return [x * 100, y * 100, z * 100]; +}; +convert.rgb.lab = function(rgb) { + const xyz = convert.rgb.xyz(rgb); + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + return [l, a, b]; +}; +convert.hsl.rgb = function(hsl) { + const h = hsl[0] / 360; + const s = hsl[1] / 100; + const l = hsl[2] / 100; + let t3; + let value; + if (s === 0) { + value = l * 255; + return [value, value, value]; + } + const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s; + const t1 = 2 * l - t2; + const rgb = [0, 0, 0]; + for (let i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + if (6 * t3 < 1) { + value = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + value = t2; + } else if (3 * t3 < 2) { + value = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + value = t1; + } + rgb[i] = value * 255; + } + return rgb; +}; +convert.hsl.hsv = function(hsl) { + const h = hsl[0]; + let s = hsl[1] / 100; + let l = hsl[2] / 100; + let smin = s; + const lmin = Math.max(l, 0.01); + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (l + s) / 2; + const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; +}; +convert.hsv.rgb = function(hsv) { + const h = hsv[0] / 60; + const s = hsv[1] / 100; + let v = hsv[2] / 100; + const hi = Math.floor(h) % 6; + const f = h - Math.floor(h); + const p = 255 * v * (1 - s); + const q = 255 * v * (1 - s * f); + const t = 255 * v * (1 - s * (1 - f)); + v *= 255; + switch (hi) { + case 0: { + return [v, t, p]; + } + case 1: { + return [q, v, p]; + } + case 2: { + return [p, v, t]; + } + case 3: { + return [p, q, v]; + } + case 4: { + return [t, p, v]; + } + case 5: { + return [v, p, q]; + } + } +}; +convert.hsv.hsl = function(hsv) { + const h = hsv[0]; + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const vmin = Math.max(v, 0.01); + let sl; + let l; + l = (2 - s) * v; + const lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; +}; +convert.hwb.rgb = function(hwb) { + const h = hwb[0] / 360; + let wh = hwb[1] / 100; + let bl = hwb[2] / 100; + const ratio = wh + bl; + let f; + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + const i = Math.floor(6 * h); + const v = 1 - bl; + f = 6 * h - i; + if ((i & 1) !== 0) { + f = 1 - f; + } + const n = wh + f * (v - wh); + let r; + let g; + let b; + switch (i) { + default: + case 6: + case 0: { + r = v; + g = n; + b = wh; + break; + } + case 1: { + r = n; + g = v; + b = wh; + break; + } + case 2: { + r = wh; + g = v; + b = n; + break; + } + case 3: { + r = wh; + g = n; + b = v; + break; + } + case 4: { + r = n; + g = wh; + b = v; + break; + } + case 5: { + r = v; + g = wh; + b = n; + break; + } + } + return [r * 255, g * 255, b * 255]; +}; +convert.cmyk.rgb = function(cmyk) { + const c = cmyk[0] / 100; + const m = cmyk[1] / 100; + const y = cmyk[2] / 100; + const k = cmyk[3] / 100; + const r = 1 - Math.min(1, c * (1 - k) + k); + const g = 1 - Math.min(1, m * (1 - k) + k); + const b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; +}; +convert.xyz.rgb = function(xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + let r; + let g; + let b; + r = x * 3.2404542 + y * -1.5371385 + z * -0.4985314; + g = x * -0.969266 + y * 1.8760108 + z * 0.041556; + b = x * 0.0556434 + y * -0.2040259 + z * 1.0572252; + r = srgbNonlinearTransform(r); + g = srgbNonlinearTransform(g); + b = srgbNonlinearTransform(b); + return [r * 255, g * 255, b * 255]; +}; +convert.xyz.lab = function(xyz) { + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + return [l, a, b]; +}; +convert.xyz.oklab = function(xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + const lp = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z); + const mp = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z); + const sp = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.633851707 * z); + const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp; + const a = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp; + const b = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp; + return [l * 100, a * 100, b * 100]; +}; +convert.oklab.oklch = function(oklab) { + return convert.lab.lch(oklab); +}; +convert.oklab.xyz = function(oklab) { + const ll = oklab[0] / 100; + const a = oklab[1] / 100; + const b = oklab[2] / 100; + const l = (0.999999998 * ll + 0.396337792 * a + 0.215803758 * b) ** 3; + const m = (1.000000008 * ll - 0.105561342 * a - 0.063854175 * b) ** 3; + const s = (1.000000055 * ll - 0.089484182 * a - 1.291485538 * b) ** 3; + const x = 1.227013851 * l - 0.55779998 * m + 0.281256149 * s; + const y = -0.040580178 * l + 1.11225687 * m - 0.071676679 * s; + const z = -0.076381285 * l - 0.421481978 * m + 1.58616322 * s; + return [x * 100, y * 100, z * 100]; +}; +convert.oklab.rgb = function(oklab) { + const ll = oklab[0] / 100; + const aa = oklab[1] / 100; + const bb = oklab[2] / 100; + const l = (ll + 0.3963377774 * aa + 0.2158037573 * bb) ** 3; + const m = (ll - 0.1055613458 * aa - 0.0638541728 * bb) ** 3; + const s = (ll - 0.0894841775 * aa - 1.291485548 * bb) ** 3; + const r = srgbNonlinearTransform(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s); + const g = srgbNonlinearTransform(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s); + const b = srgbNonlinearTransform(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s); + return [r * 255, g * 255, b * 255]; +}; +convert.oklch.oklab = function(oklch) { + return convert.lch.lab(oklch); +}; +convert.lab.xyz = function(lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let x; + let y; + let z; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + const y2 = y ** 3; + const x2 = x ** 3; + const z2 = z ** 3; + y = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787; + x = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787; + z = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z *= 108.883; + return [x, y, z]; +}; +convert.lab.lch = function(lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let h; + const hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + if (h < 0) { + h += 360; + } + const c = Math.sqrt(a * a + b * b); + return [l, c, h]; +}; +convert.lch.lab = function(lch) { + const l = lch[0]; + const c = lch[1]; + const h = lch[2]; + const hr = h / 360 * 2 * Math.PI; + const a = c * Math.cos(hr); + const b = c * Math.sin(hr); + return [l, a, b]; +}; +convert.rgb.ansi16 = function(args, saturation = null) { + const [r, g, b] = args; + let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; + value = Math.round(value / 50); + if (value === 0) { + return 30; + } + let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + if (value === 2) { + ansi += 60; + } + return ansi; +}; +convert.hsv.ansi16 = function(args) { + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; +convert.rgb.ansi256 = function(args) { + const r = args[0]; + const g = args[1]; + const b = args[2]; + if (r >> 4 === g >> 4 && g >> 4 === b >> 4) { + if (r < 8) { + return 16; + } + if (r > 248) { + return 231; + } + return Math.round((r - 8) / 247 * 24) + 232; + } + const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; +}; +convert.ansi16.rgb = function(args) { + args = args[0]; + let color = args % 10; + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + color = color / 10.5 * 255; + return [color, color, color]; + } + const mult = (Math.trunc(args > 50) + 1) * 0.5; + const r = (color & 1) * mult * 255; + const g = (color >> 1 & 1) * mult * 255; + const b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; +}; +convert.ansi256.rgb = function(args) { + args = args[0]; + if (args >= 232) { + const c = (args - 232) * 10 + 8; + return [c, c, c]; + } + args -= 16; + let rem; + const r = Math.floor(args / 36) / 5 * 255; + const g = Math.floor((rem = args % 36) / 6) / 5 * 255; + const b = rem % 6 / 5 * 255; + return [r, g, b]; +}; +convert.rgb.hex = function(args) { + const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); + const string = integer.toString(16).toUpperCase(); + return "000000".slice(string.length) + string; +}; +convert.hex.rgb = function(args) { + const match = args.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i); + if (!match) { + return [0, 0, 0]; + } + let colorString = match[0]; + if (match[0].length === 3) { + colorString = [...colorString].map((char) => char + char).join(""); + } + const integer = Number.parseInt(colorString, 16); + const r = integer >> 16 & 255; + const g = integer >> 8 & 255; + const b = integer & 255; + return [r, g, b]; +}; +convert.rgb.hcg = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const max = Math.max(Math.max(r, g), b); + const min = Math.min(Math.min(r, g), b); + const chroma = max - min; + let hue; + const grayscale = chroma < 1 ? min / (1 - chroma) : 0; + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma; + } + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; +}; +convert.hsl.hcg = function(hsl) { + const s = hsl[1] / 100; + const l = hsl[2] / 100; + const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l); + let f = 0; + if (c < 1) { + f = (l - 0.5 * c) / (1 - c); + } + return [hsl[0], c * 100, f * 100]; +}; +convert.hsv.hcg = function(hsv) { + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const c = s * v; + let f = 0; + if (c < 1) { + f = (v - c) / (1 - c); + } + return [hsv[0], c * 100, f * 100]; +}; +convert.hcg.rgb = function(hcg) { + const h = hcg[0] / 360; + const c = hcg[1] / 100; + const g = hcg[2] / 100; + if (c === 0) { + return [g * 255, g * 255, g * 255]; + } + const pure = [0, 0, 0]; + const hi = h % 1 * 6; + const v = hi % 1; + const w = 1 - v; + let mg = 0; + switch (Math.floor(hi)) { + case 0: { + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + } + case 1: { + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + } + case 2: { + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + } + case 3: { + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + } + case 4: { + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + } + default: { + pure[0] = 1; + pure[1] = 0; + pure[2] = w; + } + } + mg = (1 - c) * g; + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; +convert.hcg.hsv = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1 - c); + let f = 0; + if (v > 0) { + f = c / v; + } + return [hcg[0], f * 100, v * 100]; +}; +convert.hcg.hsl = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const l = g * (1 - c) + 0.5 * c; + let s = 0; + if (l > 0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1) { + s = c / (2 * (1 - l)); + } + return [hcg[0], s * 100, l * 100]; +}; +convert.hcg.hwb = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; +convert.hwb.hcg = function(hwb) { + const w = hwb[1] / 100; + const b = hwb[2] / 100; + const v = 1 - b; + const c = v - w; + let g = 0; + if (c < 1) { + g = (v - c) / (1 - c); + } + return [hwb[0], c * 100, g * 100]; +}; +convert.apple.rgb = function(apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; +}; +convert.rgb.apple = function(rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; +}; +convert.gray.rgb = function(args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; +convert.gray.hsl = function(args) { + return [0, 0, args[0]]; +}; +convert.gray.hsv = convert.gray.hsl; +convert.gray.hwb = function(gray) { + return [0, 100, gray[0]]; +}; +convert.gray.cmyk = function(gray) { + return [0, 0, 0, gray[0]]; +}; +convert.gray.lab = function(gray) { + return [gray[0], 0, 0]; +}; +convert.gray.hex = function(gray) { + const value = Math.round(gray[0] / 100 * 255) & 255; + const integer = (value << 16) + (value << 8) + value; + const string = integer.toString(16).toUpperCase(); + return "000000".slice(string.length) + string; +}; +convert.rgb.gray = function(rgb) { + const value = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [value / 255 * 100]; +}; + +// node_modules/color-convert/route.js +function buildGraph() { + const graph = {}; + const models2 = Object.keys(conversions_default); + for (let { length } = models2, i = 0; i < length; i++) { + graph[models2[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + return graph; +} +function deriveBFS(fromModel) { + const graph = buildGraph(); + const queue = [fromModel]; + graph[fromModel].distance = 0; + while (queue.length > 0) { + const current = queue.pop(); + const adjacents = Object.keys(conversions_default[current]); + for (let { length } = adjacents, i = 0; i < length; i++) { + const adjacent = adjacents[i]; + const node = graph[adjacent]; + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + return graph; +} +function link(from, to) { + return function(args) { + return to(from(args)); + }; +} +function wrapConversion(toModel, graph) { + const path = [graph[toModel].parent, toModel]; + let fn = conversions_default[graph[toModel].parent][toModel]; + let cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions_default[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + fn.conversion = path; + return fn; +} +function route(fromModel) { + const graph = deriveBFS(fromModel); + const conversion = {}; + const models2 = Object.keys(graph); + for (let { length } = models2, i = 0; i < length; i++) { + const toModel = models2[i]; + const node = graph[toModel]; + if (node.parent === null) { + continue; + } + conversion[toModel] = wrapConversion(toModel, graph); + } + return conversion; +} +var route_default = route; + +// node_modules/color-convert/index.js +var convert2 = {}; +var models = Object.keys(conversions_default); +function wrapRaw(fn) { + const wrappedFn = function(...args) { + const arg0 = args[0]; + if (arg0 === void 0 || arg0 === null) { + return arg0; + } + if (arg0.length > 1) { + args = arg0; + } + return fn(args); + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; +} +function wrapRounded(fn) { + const wrappedFn = function(...args) { + const arg0 = args[0]; + if (arg0 === void 0 || arg0 === null) { + return arg0; + } + if (arg0.length > 1) { + args = arg0; + } + const result = fn(args); + if (typeof result === "object") { + for (let { length } = result, i = 0; i < length; i++) { + result[i] = Math.round(result[i]); + } + } + return result; + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; +} +for (const fromModel of models) { + convert2[fromModel] = {}; + Object.defineProperty(convert2[fromModel], "channels", { value: conversions_default[fromModel].channels }); + Object.defineProperty(convert2[fromModel], "labels", { value: conversions_default[fromModel].labels }); + const routes = route_default(fromModel); + const routeModels = Object.keys(routes); + for (const toModel of routeModels) { + const fn = routes[toModel]; + convert2[fromModel][toModel] = wrapRounded(fn); + convert2[fromModel][toModel].raw = wrapRaw(fn); + } +} +var color_convert_default = convert2; + +// node_modules/color/index.js +var skippedModels = [ + // To be honest, I don't really feel like keyword belongs in color convert, but eh. + "keyword", + // Gray conflicts with some method names, and has its own method defined. + "gray", + // Shouldn't really be in color-convert either... + "hex" +]; +var hashedModelKeys = {}; +for (const model of Object.keys(color_convert_default)) { + hashedModelKeys[[...color_convert_default[model].labels].sort().join("")] = model; +} +var limiters = {}; +function Color(object, model) { + if (!(this instanceof Color)) { + return new Color(object, model); + } + if (model && model in skippedModels) { + model = null; + } + if (model && !(model in color_convert_default)) { + throw new Error("Unknown model: " + model); + } + let i; + let channels; + if (object == null) { + this.model = "rgb"; + this.color = [0, 0, 0]; + this.valpha = 1; + } else if (object instanceof Color) { + this.model = object.model; + this.color = [...object.color]; + this.valpha = object.valpha; + } else if (typeof object === "string") { + const result = color_string_default.get(object); + if (result === null) { + throw new Error("Unable to parse color from string: " + object); + } + this.model = result.model; + channels = color_convert_default[this.model].channels; + this.color = result.value.slice(0, channels); + this.valpha = typeof result.value[channels] === "number" ? result.value[channels] : 1; + } else if (object.length > 0) { + this.model = model || "rgb"; + channels = color_convert_default[this.model].channels; + const newArray = Array.prototype.slice.call(object, 0, channels); + this.color = zeroArray(newArray, channels); + this.valpha = typeof object[channels] === "number" ? object[channels] : 1; + } else if (typeof object === "number") { + this.model = "rgb"; + this.color = [ + object >> 16 & 255, + object >> 8 & 255, + object & 255 + ]; + this.valpha = 1; + } else { + this.valpha = 1; + const keys = Object.keys(object); + if ("alpha" in object) { + keys.splice(keys.indexOf("alpha"), 1); + this.valpha = typeof object.alpha === "number" ? object.alpha : 0; + } + const hashedKeys = keys.sort().join(""); + if (!(hashedKeys in hashedModelKeys)) { + throw new Error("Unable to parse color from object: " + JSON.stringify(object)); + } + this.model = hashedModelKeys[hashedKeys]; + const { labels } = color_convert_default[this.model]; + const color = []; + for (i = 0; i < labels.length; i++) { + color.push(object[labels[i]]); + } + this.color = zeroArray(color); + } + if (limiters[this.model]) { + channels = color_convert_default[this.model].channels; + for (i = 0; i < channels; i++) { + const limit = limiters[this.model][i]; + if (limit) { + this.color[i] = limit(this.color[i]); + } + } + } + this.valpha = Math.max(0, Math.min(1, this.valpha)); + if (Object.freeze) { + Object.freeze(this); + } +} +Color.prototype = { + toString() { + return this.string(); + }, + toJSON() { + return this[this.model](); + }, + string(places) { + let self = this.model in color_string_default.to ? this : this.rgb(); + self = self.round(typeof places === "number" ? places : 1); + const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha]; + return color_string_default.to[self.model](...arguments_); + }, + percentString(places) { + const self = this.rgb().round(typeof places === "number" ? places : 1); + const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha]; + return color_string_default.to.rgb.percent(...arguments_); + }, + array() { + return this.valpha === 1 ? [...this.color] : [...this.color, this.valpha]; + }, + object() { + const result = {}; + const { channels } = color_convert_default[this.model]; + const { labels } = color_convert_default[this.model]; + for (let i = 0; i < channels; i++) { + result[labels[i]] = this.color[i]; + } + if (this.valpha !== 1) { + result.alpha = this.valpha; + } + return result; + }, + unitArray() { + const rgb = this.rgb().color; + rgb[0] /= 255; + rgb[1] /= 255; + rgb[2] /= 255; + if (this.valpha !== 1) { + rgb.push(this.valpha); + } + return rgb; + }, + unitObject() { + const rgb = this.rgb().object(); + rgb.r /= 255; + rgb.g /= 255; + rgb.b /= 255; + if (this.valpha !== 1) { + rgb.alpha = this.valpha; + } + return rgb; + }, + round(places) { + places = Math.max(places || 0, 0); + return new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model); + }, + alpha(value) { + if (value !== void 0) { + return new Color([...this.color, Math.max(0, Math.min(1, value))], this.model); + } + return this.valpha; + }, + // Rgb + red: getset("rgb", 0, maxfn(255)), + green: getset("rgb", 1, maxfn(255)), + blue: getset("rgb", 2, maxfn(255)), + hue: getset(["hsl", "hsv", "hsl", "hwb", "hcg"], 0, (value) => (value % 360 + 360) % 360), + saturationl: getset("hsl", 1, maxfn(100)), + lightness: getset("hsl", 2, maxfn(100)), + saturationv: getset("hsv", 1, maxfn(100)), + value: getset("hsv", 2, maxfn(100)), + chroma: getset("hcg", 1, maxfn(100)), + gray: getset("hcg", 2, maxfn(100)), + white: getset("hwb", 1, maxfn(100)), + wblack: getset("hwb", 2, maxfn(100)), + cyan: getset("cmyk", 0, maxfn(100)), + magenta: getset("cmyk", 1, maxfn(100)), + yellow: getset("cmyk", 2, maxfn(100)), + black: getset("cmyk", 3, maxfn(100)), + x: getset("xyz", 0, maxfn(95.047)), + y: getset("xyz", 1, maxfn(100)), + z: getset("xyz", 2, maxfn(108.833)), + l: getset("lab", 0, maxfn(100)), + a: getset("lab", 1), + b: getset("lab", 2), + keyword(value) { + if (value !== void 0) { + return new Color(value); + } + return color_convert_default[this.model].keyword(this.color); + }, + hex(value) { + if (value !== void 0) { + return new Color(value); + } + return color_string_default.to.hex(...this.rgb().round().color); + }, + hexa(value) { + if (value !== void 0) { + return new Color(value); + } + const rgbArray = this.rgb().round().color; + let alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase(); + if (alphaHex.length === 1) { + alphaHex = "0" + alphaHex; + } + return color_string_default.to.hex(...rgbArray) + alphaHex; + }, + rgbNumber() { + const rgb = this.rgb().color; + return (rgb[0] & 255) << 16 | (rgb[1] & 255) << 8 | rgb[2] & 255; + }, + luminosity() { + const rgb = this.rgb().color; + const lum = []; + for (const [i, element] of rgb.entries()) { + const chan = element / 255; + lum[i] = chan <= 0.04045 ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4; + } + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + contrast(color2) { + const lum1 = this.luminosity(); + const lum2 = color2.luminosity(); + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + return (lum2 + 0.05) / (lum1 + 0.05); + }, + level(color2) { + const contrastRatio = this.contrast(color2); + if (contrastRatio >= 7) { + return "AAA"; + } + return contrastRatio >= 4.5 ? "AA" : ""; + }, + isDark() { + const rgb = this.rgb().color; + const yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 1e4; + return yiq < 128; + }, + isLight() { + return !this.isDark(); + }, + negate() { + const rgb = this.rgb(); + for (let i = 0; i < 3; i++) { + rgb.color[i] = 255 - rgb.color[i]; + } + return rgb; + }, + lighten(ratio) { + const hsl = this.hsl(); + hsl.color[2] += hsl.color[2] * ratio; + return hsl; + }, + darken(ratio) { + const hsl = this.hsl(); + hsl.color[2] -= hsl.color[2] * ratio; + return hsl; + }, + saturate(ratio) { + const hsl = this.hsl(); + hsl.color[1] += hsl.color[1] * ratio; + return hsl; + }, + desaturate(ratio) { + const hsl = this.hsl(); + hsl.color[1] -= hsl.color[1] * ratio; + return hsl; + }, + whiten(ratio) { + const hwb = this.hwb(); + hwb.color[1] += hwb.color[1] * ratio; + return hwb; + }, + blacken(ratio) { + const hwb = this.hwb(); + hwb.color[2] += hwb.color[2] * ratio; + return hwb; + }, + grayscale() { + const rgb = this.rgb().color; + const value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + return Color.rgb(value, value, value); + }, + fade(ratio) { + return this.alpha(this.valpha - this.valpha * ratio); + }, + opaquer(ratio) { + return this.alpha(this.valpha + this.valpha * ratio); + }, + rotate(degrees) { + const hsl = this.hsl(); + let hue = hsl.color[0]; + hue = (hue + degrees) % 360; + hue = hue < 0 ? 360 + hue : hue; + hsl.color[0] = hue; + return hsl; + }, + mix(mixinColor, weight) { + if (!mixinColor || !mixinColor.rgb) { + throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); + } + const color1 = mixinColor.rgb(); + const color2 = this.rgb(); + const p = weight === void 0 ? 0.5 : weight; + const w = 2 * p - 1; + const a = color1.alpha() - color2.alpha(); + const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2; + const w2 = 1 - w1; + return Color.rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue(), + color1.alpha() * p + color2.alpha() * (1 - p) + ); + } +}; +for (const model of Object.keys(color_convert_default)) { + if (skippedModels.includes(model)) { + continue; + } + const { channels } = color_convert_default[model]; + Color.prototype[model] = function(...arguments_) { + if (this.model === model) { + return new Color(this); + } + if (arguments_.length > 0) { + return new Color(arguments_, model); + } + return new Color([...assertArray(color_convert_default[this.model][model].raw(this.color)), this.valpha], model); + }; + Color[model] = function(...arguments_) { + let color = arguments_[0]; + if (typeof color === "number") { + color = zeroArray(arguments_, channels); + } + return new Color(color, model); + }; +} +function roundTo(number, places) { + return Number(number.toFixed(places)); +} +function roundToPlace(places) { + return function(number) { + return roundTo(number, places); + }; +} +function getset(model, channel, modifier) { + model = Array.isArray(model) ? model : [model]; + for (const m of model) { + (limiters[m] ||= [])[channel] = modifier; + } + model = model[0]; + return function(value) { + let result; + if (value !== void 0) { + if (modifier) { + value = modifier(value); + } + result = this[model](); + result.color[channel] = value; + return result; + } + result = this[model]().color[channel]; + if (modifier) { + result = modifier(result); + } + return result; + }; +} +function maxfn(max) { + return function(v) { + return Math.max(0, Math.min(max, v)); + }; +} +function assertArray(value) { + return Array.isArray(value) ? value : [value]; +} +function zeroArray(array, length) { + for (let i = 0; i < length; i++) { + if (typeof array[i] !== "number") { + array[i] = 0; + } + } + return array; +} +var index_default = Color; diff --git a/apps/api/.output/node_modules/@img/colour/index.cjs b/apps/api/.output/node_modules/@img/colour/index.cjs new file mode 100644 index 0000000..25596b2 --- /dev/null +++ b/apps/api/.output/node_modules/@img/colour/index.cjs @@ -0,0 +1 @@ +module.exports = require("./color.cjs").default; diff --git a/apps/api/.output/node_modules/@img/colour/index.d.ts b/apps/api/.output/node_modules/@img/colour/index.d.ts new file mode 100644 index 0000000..ca2461f --- /dev/null +++ b/apps/api/.output/node_modules/@img/colour/index.d.ts @@ -0,0 +1,929 @@ +// Generated by dts-bundle-generator v9.5.1 + +type Channels = number; +type RGB = [ + r: number, + g: number, + b: number +]; +type HSL = [ + h: number, + s: number, + l: number +]; +type HSV = [ + h: number, + s: number, + v: number +]; +type CMYK = [ + c: number, + m: number, + y: number, + k: number +]; +type LAB = [ + l: number, + a: number, + b: number +]; +type LCH = [ + l: number, + c: number, + h: number +]; +type HCG = [ + h: number, + c: number, + g: number +]; +type HWB = [ + h: number, + w: number, + b: number +]; +type XYZ = [ + x: number, + y: number, + z: number +]; +type Apple = [ + r16: number, + g16: number, + b16: number +]; +type Gray = [ + gray: number +]; +type ANSI16 = number; +type ANSI256 = number; +type Keyword = string; +type HEX = string; +declare namespace route { + type rgb = { + hsl(from: RGB): HSL; + hsl(...from: RGB): HSL; + hsl(from: RGB): HSL; + hsl(...from: RGB): HSL; + hsv(from: RGB): HSV; + hsv(...from: RGB): HSV; + hwb(from: RGB): HWB; + hwb(...from: RGB): HWB; + cmyk(from: RGB): CMYK; + cmyk(...from: RGB): CMYK; + xyz(from: RGB): XYZ; + xyz(...from: RGB): XYZ; + lab(from: RGB): LAB; + lab(...from: RGB): LAB; + lch(from: RGB): LCH; + lch(...from: RGB): LCH; + hex(from: RGB): HEX; + hex(...from: RGB): HEX; + keyword(from: RGB): Keyword; + keyword(...from: RGB): Keyword; + ansi16(from: RGB): ANSI16; + ansi16(...from: RGB): ANSI16; + ansi256(from: RGB): ANSI256; + ansi256(...from: RGB): ANSI256; + hcg(from: RGB): HCG; + hcg(...from: RGB): HCG; + apple(from: RGB): Apple; + apple(...from: RGB): Apple; + gray(from: RGB): Gray; + gray(...from: RGB): Gray; + }; + type hsl = { + rgb(from: HSL): RGB; + rgb(...from: HSL): RGB; + hsv(from: HSL): HSV; + hsv(...from: HSL): HSV; + hwb(from: HSL): HWB; + hwb(...from: HSL): HWB; + cmyk(from: HSL): CMYK; + cmyk(...from: HSL): CMYK; + xyz(from: HSL): XYZ; + xyz(...from: HSL): XYZ; + lab(from: HSL): LAB; + lab(...from: HSL): LAB; + lch(from: HSL): LCH; + lch(...from: HSL): LCH; + hex(from: HSL): HEX; + hex(...from: HSL): HEX; + keyword(from: HSL): Keyword; + keyword(...from: HSL): Keyword; + ansi16(from: HSL): ANSI16; + ansi16(...from: HSL): ANSI16; + ansi256(from: HSL): ANSI256; + ansi256(...from: HSL): ANSI256; + hcg(from: HSL): HCG; + hcg(...from: HSL): HCG; + apple(from: HSL): Apple; + apple(...from: HSL): Apple; + gray(from: HSL): Gray; + gray(...from: HSL): Gray; + }; + type hsv = { + rgb(from: HSV): RGB; + rgb(...from: HSV): RGB; + hsl(from: HSV): HSL; + hsl(...from: HSV): HSL; + hwb(from: HSV): HWB; + hwb(...from: HSV): HWB; + cmyk(from: HSV): CMYK; + cmyk(...from: HSV): CMYK; + xyz(from: HSV): XYZ; + xyz(...from: HSV): XYZ; + lab(from: HSV): LAB; + lab(...from: HSV): LAB; + lch(from: HSV): LCH; + lch(...from: HSV): LCH; + hex(from: HSV): HEX; + hex(...from: HSV): HEX; + keyword(from: HSV): Keyword; + keyword(...from: HSV): Keyword; + ansi16(from: HSV): ANSI16; + ansi16(...from: HSV): ANSI16; + ansi256(from: HSV): ANSI256; + ansi256(...from: HSV): ANSI256; + hcg(from: HSV): HCG; + hcg(...from: HSV): HCG; + apple(from: HSV): Apple; + apple(...from: HSV): Apple; + gray(from: HSV): Gray; + gray(...from: HSV): Gray; + }; + type hwb = { + rgb(from: HWB): RGB; + rgb(...from: HWB): RGB; + hsl(from: HWB): HSL; + hsl(...from: HWB): HSL; + hsv(from: HWB): HSV; + hsv(...from: HWB): HSV; + cmyk(from: HWB): CMYK; + cmyk(...from: HWB): CMYK; + xyz(from: HWB): XYZ; + xyz(...from: HWB): XYZ; + lab(from: HWB): LAB; + lab(...from: HWB): LAB; + lch(from: HWB): LCH; + lch(...from: HWB): LCH; + hex(from: HWB): HEX; + hex(...from: HWB): HEX; + keyword(from: HWB): Keyword; + keyword(...from: HWB): Keyword; + ansi16(from: HWB): ANSI16; + ansi16(...from: HWB): ANSI16; + ansi256(from: HWB): ANSI256; + ansi256(...from: HWB): ANSI256; + hcg(from: HWB): HCG; + hcg(...from: HWB): HCG; + apple(from: HWB): Apple; + apple(...from: HWB): Apple; + gray(from: HWB): Gray; + gray(...from: HWB): Gray; + }; + type cmyk = { + rgb(from: CMYK): RGB; + rgb(...from: CMYK): RGB; + hsl(from: CMYK): HSL; + hsl(...from: CMYK): HSL; + hsv(from: CMYK): HSV; + hsv(...from: CMYK): HSV; + hwb(from: CMYK): HWB; + hwb(...from: CMYK): HWB; + xyz(from: CMYK): XYZ; + xyz(...from: CMYK): XYZ; + lab(from: CMYK): LAB; + lab(...from: CMYK): LAB; + lch(from: CMYK): LCH; + lch(...from: CMYK): LCH; + hex(from: CMYK): HEX; + hex(...from: CMYK): HEX; + keyword(from: CMYK): Keyword; + keyword(...from: CMYK): Keyword; + ansi16(from: CMYK): ANSI16; + ansi16(...from: CMYK): ANSI16; + ansi256(from: CMYK): ANSI256; + ansi256(...from: CMYK): ANSI256; + hcg(from: CMYK): HCG; + hcg(...from: CMYK): HCG; + apple(from: CMYK): Apple; + apple(...from: CMYK): Apple; + gray(from: CMYK): Gray; + gray(...from: CMYK): Gray; + }; + type xyz = { + rgb(from: XYZ): RGB; + rgb(...from: XYZ): RGB; + hsl(from: XYZ): HSL; + hsl(...from: XYZ): HSL; + hsv(from: XYZ): HSV; + hsv(...from: XYZ): HSV; + hwb(from: XYZ): HWB; + hwb(...from: XYZ): HWB; + cmyk(from: XYZ): CMYK; + cmyk(...from: XYZ): CMYK; + lab(from: XYZ): LAB; + lab(...from: XYZ): LAB; + lch(from: XYZ): LCH; + lch(...from: XYZ): LCH; + hex(from: XYZ): HEX; + hex(...from: XYZ): HEX; + keyword(from: XYZ): Keyword; + keyword(...from: XYZ): Keyword; + ansi16(from: XYZ): ANSI16; + ansi16(...from: XYZ): ANSI16; + ansi256(from: XYZ): ANSI256; + ansi256(...from: XYZ): ANSI256; + hcg(from: XYZ): HCG; + hcg(...from: XYZ): HCG; + apple(from: XYZ): Apple; + apple(...from: XYZ): Apple; + gray(from: XYZ): Gray; + gray(...from: XYZ): Gray; + }; + type lab = { + rgb(from: LAB): RGB; + rgb(...from: LAB): RGB; + hsl(from: LAB): HSL; + hsl(...from: LAB): HSL; + hsv(from: LAB): HSV; + hsv(...from: LAB): HSV; + hwb(from: LAB): HWB; + hwb(...from: LAB): HWB; + cmyk(from: LAB): CMYK; + cmyk(...from: LAB): CMYK; + xyz(from: LAB): XYZ; + xyz(...from: LAB): XYZ; + lch(from: LAB): LCH; + lch(...from: LAB): LCH; + hex(from: LAB): HEX; + hex(...from: LAB): HEX; + keyword(from: LAB): Keyword; + keyword(...from: LAB): Keyword; + ansi16(from: LAB): ANSI16; + ansi16(...from: LAB): ANSI16; + ansi256(from: LAB): ANSI256; + ansi256(...from: LAB): ANSI256; + hcg(from: LAB): HCG; + hcg(...from: LAB): HCG; + apple(from: LAB): Apple; + apple(...from: LAB): Apple; + gray(from: LAB): Gray; + gray(...from: LAB): Gray; + }; + type lch = { + rgb(from: LCH): RGB; + rgb(...from: LCH): RGB; + hsl(from: LCH): HSL; + hsl(...from: LCH): HSL; + hsv(from: LCH): HSV; + hsv(...from: LCH): HSV; + hwb(from: LCH): HWB; + hwb(...from: LCH): HWB; + cmyk(from: LCH): CMYK; + cmyk(...from: LCH): CMYK; + xyz(from: LCH): XYZ; + xyz(...from: LCH): XYZ; + lab(from: LCH): LAB; + lab(...from: LCH): LAB; + hex(from: LCH): HEX; + hex(...from: LCH): HEX; + keyword(from: LCH): Keyword; + keyword(...from: LCH): Keyword; + ansi16(from: LCH): ANSI16; + ansi16(...from: LCH): ANSI16; + ansi256(from: LCH): ANSI256; + ansi256(...from: LCH): ANSI256; + hcg(from: LCH): HCG; + hcg(...from: LCH): HCG; + apple(from: LCH): Apple; + apple(...from: LCH): Apple; + gray(from: LCH): Gray; + gray(...from: LCH): Gray; + }; + type hex = { + rgb(from: HEX): RGB; + hsl(from: HEX): HSL; + hsv(from: HEX): HSV; + hwb(from: HEX): HWB; + cmyk(from: HEX): CMYK; + xyz(from: HEX): XYZ; + lab(from: HEX): LAB; + lch(from: HEX): LCH; + keyword(from: HEX): Keyword; + ansi16(from: HEX): ANSI16; + ansi256(from: HEX): ANSI256; + hcg(from: HEX): HCG; + apple(from: HEX): Apple; + gray(from: HEX): Gray; + }; + type keyword = { + rgb(from: Keyword): RGB; + hsl(from: Keyword): HSL; + hsv(from: Keyword): HSV; + hwb(from: Keyword): HWB; + cmyk(from: Keyword): CMYK; + xyz(from: Keyword): XYZ; + lab(from: Keyword): LAB; + lch(from: Keyword): LCH; + hex(from: Keyword): HEX; + ansi16(from: Keyword): ANSI16; + ansi256(from: Keyword): ANSI256; + hcg(from: Keyword): HCG; + apple(from: Keyword): Apple; + gray(from: Keyword): Gray; + }; + type ansi16 = { + rgb(from: ANSI16): RGB; + hsl(from: ANSI16): HSL; + hsv(from: ANSI16): HSV; + hwb(from: ANSI16): HWB; + cmyk(from: ANSI16): CMYK; + xyz(from: ANSI16): XYZ; + lab(from: ANSI16): LAB; + lch(from: ANSI16): LCH; + hex(from: ANSI16): HEX; + keyword(from: ANSI16): Keyword; + ansi256(from: ANSI16): ANSI256; + hcg(from: ANSI16): HCG; + apple(from: ANSI16): Apple; + gray(from: ANSI16): Gray; + }; + type ansi256 = { + rgb(from: ANSI256): RGB; + hsl(from: ANSI256): HSL; + hsv(from: ANSI256): HSV; + hwb(from: ANSI256): HWB; + cmyk(from: ANSI256): CMYK; + xyz(from: ANSI256): XYZ; + lab(from: ANSI256): LAB; + lch(from: ANSI256): LCH; + hex(from: ANSI256): HEX; + keyword(from: ANSI256): Keyword; + ansi16(from: ANSI256): ANSI16; + hcg(from: ANSI256): HCG; + apple(from: ANSI256): Apple; + gray(from: ANSI256): Gray; + }; + type hcg = { + rgb(from: HCG): RGB; + rgb(...from: HCG): RGB; + hsl(from: HCG): HSL; + hsl(...from: HCG): HSL; + hsv(from: HCG): HSV; + hsv(...from: HCG): HSV; + hwb(from: HCG): HWB; + hwb(...from: HCG): HWB; + cmyk(from: HCG): CMYK; + cmyk(...from: HCG): CMYK; + xyz(from: HCG): XYZ; + xyz(...from: HCG): XYZ; + lab(from: HCG): LAB; + lab(...from: HCG): LAB; + lch(from: HCG): LCH; + lch(...from: HCG): LCH; + hex(from: HCG): HEX; + hex(...from: HCG): HEX; + keyword(from: HCG): Keyword; + keyword(...from: HCG): Keyword; + ansi16(from: HCG): ANSI16; + ansi16(...from: HCG): ANSI16; + ansi256(from: HCG): ANSI256; + ansi256(...from: HCG): ANSI256; + apple(from: HCG): Apple; + apple(...from: HCG): Apple; + gray(from: HCG): Gray; + gray(...from: HCG): Gray; + }; + type apple = { + rgb(from: Apple): RGB; + rgb(...from: Apple): RGB; + hsl(from: Apple): HSL; + hsl(...from: Apple): HSL; + hsv(from: Apple): HSV; + hsv(...from: Apple): HSV; + hwb(from: Apple): HWB; + hwb(...from: Apple): HWB; + cmyk(from: Apple): CMYK; + cmyk(...from: Apple): CMYK; + xyz(from: Apple): XYZ; + xyz(...from: Apple): XYZ; + lab(from: Apple): LAB; + lab(...from: Apple): LAB; + lch(from: Apple): LCH; + lch(...from: Apple): LCH; + hex(from: Apple): HEX; + hex(...from: Apple): HEX; + keyword(from: Apple): Keyword; + keyword(...from: Apple): Keyword; + ansi16(from: Apple): ANSI16; + ansi16(...from: Apple): ANSI16; + ansi256(from: Apple): ANSI256; + ansi256(...from: Apple): ANSI256; + hcg(from: Apple): HCG; + hcg(...from: Apple): HCG; + gray(from: Apple): Gray; + gray(...from: Apple): Gray; + }; + type gray = { + rgb(from: Gray): RGB; + rgb(...from: Gray): RGB; + hsl(from: Gray): HSL; + hsl(...from: Gray): HSL; + hsv(from: Gray): HSV; + hsv(...from: Gray): HSV; + hwb(from: Gray): HWB; + hwb(...from: Gray): HWB; + cmyk(from: Gray): CMYK; + cmyk(...from: Gray): CMYK; + xyz(from: Gray): XYZ; + xyz(...from: Gray): XYZ; + lab(from: Gray): LAB; + lab(...from: Gray): LAB; + lch(from: Gray): LCH; + lch(...from: Gray): LCH; + hex(from: Gray): HEX; + hex(...from: Gray): HEX; + keyword(from: Gray): Keyword; + keyword(...from: Gray): Keyword; + ansi16(from: Gray): ANSI16; + ansi16(...from: Gray): ANSI16; + ansi256(from: Gray): ANSI256; + ansi256(...from: Gray): ANSI256; + hcg(from: Gray): HCG; + hcg(...from: Gray): HCG; + apple(from: Gray): Apple; + apple(...from: Gray): Apple; + }; +} +declare function route(fromModel: "rgb"): route.rgb; +declare function route(fromModel: "hsl"): route.hsl; +declare function route(fromModel: "hsv"): route.hsv; +declare function route(fromModel: "hwb"): route.hwb; +declare function route(fromModel: "cmyk"): route.cmyk; +declare function route(fromModel: "xyz"): route.xyz; +declare function route(fromModel: "lab"): route.lab; +declare function route(fromModel: "lch"): route.lch; +declare function route(fromModel: "hex"): route.hex; +declare function route(fromModel: "keyword"): route.keyword; +declare function route(fromModel: "ansi16"): route.ansi16; +declare function route(fromModel: "ansi256"): route.ansi256; +declare function route(fromModel: "hcg"): route.hcg; +declare function route(fromModel: "apple"): route.apple; +declare function route(fromModel: "gray"): route.gray; +type Convert = { + rgb: { + channels: Channels; + labels: "rgb"; + hsl: { + (...rgb: RGB): HSL; + raw: (...rgb: RGB) => HSL; + }; + hsv: { + (...rgb: RGB): HSV; + raw: (...rgb: RGB) => HSV; + }; + hwb: { + (...rgb: RGB): HWB; + raw: (...rgb: RGB) => HWB; + }; + hcg: { + (...rgb: RGB): HCG; + raw: (...rgb: RGB) => HCG; + }; + cmyk: { + (...rgb: RGB): CMYK; + raw: (...rgb: RGB) => CMYK; + }; + keyword: { + (...rgb: RGB): Keyword; + raw: (...rgb: RGB) => Keyword; + }; + ansi16: { + (...rgb: RGB): ANSI16; + raw: (...rgb: RGB) => ANSI16; + }; + ansi256: { + (...rgb: RGB): ANSI256; + raw: (...rgb: RGB) => ANSI256; + }; + apple: { + (...rgb: RGB): Apple; + raw: (...rgb: RGB) => Apple; + }; + hex: { + (...rgb: RGB): HEX; + raw: (...rgb: RGB) => HEX; + }; + gray: { + (...rgb: RGB): Gray; + raw: (...rgb: RGB) => Gray; + }; + } & route.rgb & { + [F in keyof route.rgb]: { + raw: route.rgb[F]; + }; + }; + keyword: { + channels: Channels; + rgb: { + (keyword: Keyword): RGB; + raw: (keyword: Keyword) => RGB; + }; + } & route.keyword & { + [F in keyof route.keyword]: { + raw: route.keyword[F]; + }; + }; + hsl: { + channels: Channels; + labels: "hsl"; + rgb: { + (...hsl: HSL): RGB; + raw: (...hsl: HSL) => RGB; + }; + hsv: { + (...hsl: HSL): HSV; + raw: (...hsl: HSL) => HSV; + }; + hcg: { + (...hsl: HSL): HCG; + raw: (...hsl: HSL) => HCG; + }; + } & route.hsl & { + [F in keyof route.hsl]: { + raw: route.hsl[F]; + }; + }; + hsv: { + channels: Channels; + labels: "hsv"; + hcg: { + (...hsv: HSV): HCG; + raw: (...hsv: HSV) => HCG; + }; + rgb: { + (...hsv: HSV): RGB; + raw: (...hsv: HSV) => RGB; + }; + hsv: { + (...hsv: HSV): HSV; + raw: (...hsv: HSV) => HSV; + }; + hsl: { + (...hsv: HSV): HSL; + raw: (...hsv: HSV) => HSL; + }; + hwb: { + (...hsv: HSV): HWB; + raw: (...hsv: HSV) => HWB; + }; + ansi16: { + (...hsv: HSV): ANSI16; + raw: (...hsv: HSV) => ANSI16; + }; + } & route.hsv & { + [F in keyof route.hsv]: { + raw: route.hsv[F]; + }; + }; + hwb: { + channels: Channels; + labels: "hwb"; + hcg: { + (...hwb: HWB): HCG; + raw: (...hwb: HWB) => HCG; + }; + rgb: { + (...hwb: HWB): RGB; + raw: (...hwb: HWB) => RGB; + }; + } & route.hwb & { + [F in keyof route.hwb]: { + raw: route.hwb[F]; + }; + }; + cmyk: { + channels: Channels; + labels: "cmyk"; + rgb: { + (...cmyk: CMYK): RGB; + raw: (...cmyk: CMYK) => RGB; + }; + } & route.cmyk & { + [F in keyof route.cmyk]: { + raw: route.cmyk[F]; + }; + }; + xyz: { + channels: Channels; + labels: "xyz"; + rgb: { + (...xyz: XYZ): RGB; + raw: (...xyz: XYZ) => RGB; + }; + lab: { + (...xyz: XYZ): LAB; + raw: (...xyz: XYZ) => LAB; + }; + } & route.xyz & { + [F in keyof route.xyz]: { + raw: route.xyz[F]; + }; + }; + lab: { + channels: Channels; + labels: "lab"; + xyz: { + (...lab: LAB): XYZ; + raw: (...lab: LAB) => XYZ; + }; + lch: { + (...lab: LAB): LCH; + raw: (...lab: LAB) => LCH; + }; + } & route.lab & { + [F in keyof route.lab]: { + raw: route.lab[F]; + }; + }; + lch: { + channels: Channels; + labels: "lch"; + lab: { + (...lch: LCH): LAB; + raw: (...lch: LCH) => LAB; + }; + } & route.lch & { + [F in keyof route.lch]: { + raw: route.lch[F]; + }; + }; + hex: { + channels: Channels; + labels: [ + "hex" + ]; + rgb: { + (hex: HEX): RGB; + raw: (hex: HEX) => RGB; + }; + } & route.hex & { + [F in keyof route.hex]: { + raw: route.hex[F]; + }; + }; + ansi16: { + channels: Channels; + labels: [ + "ansi16" + ]; + rgb: { + (ansi16: ANSI16): RGB; + raw: (ansi16: ANSI16) => RGB; + }; + } & route.ansi16 & { + [F in keyof route.ansi16]: { + raw: route.ansi16[F]; + }; + }; + ansi256: { + channels: Channels; + labels: [ + "ansi256" + ]; + rgb: { + (ansi256: ANSI256): RGB; + raw: (ansi256: ANSI256) => RGB; + }; + } & route.ansi256 & { + [F in keyof route.ansi256]: { + raw: route.ansi256[F]; + }; + }; + hcg: { + channels: Channels; + labels: [ + "h", + "c", + "g" + ]; + rgb: { + (...hcg: HCG): RGB; + raw: (...hcg: HCG) => RGB; + }; + hsv: { + (...hcg: HCG): HSV; + raw: (...hcg: HCG) => HSV; + }; + hwb: { + (...hcg: HCG): HWB; + raw: (...hcg: HCG) => HWB; + }; + } & route.hcg & { + [F in keyof route.hcg]: { + raw: route.hcg[F]; + }; + }; + apple: { + channels: Channels; + labels: [ + "r16", + "g16", + "b16" + ]; + rgb: { + (...apple: Apple): RGB; + raw: (...apple: Apple) => RGB; + }; + } & route.apple & { + [F in keyof route.apple]: { + raw: route.apple[F]; + }; + }; + gray: { + channels: Channels; + labels: [ + "gray" + ]; + rgb: { + (...gray: Gray): RGB; + raw: (...gray: Gray) => RGB; + }; + hsl: { + (...gray: Gray): HSL; + raw: (...gray: Gray) => HSL; + }; + hsv: { + (...gray: Gray): HSV; + raw: (...gray: Gray) => HSV; + }; + hwb: { + (...gray: Gray): HWB; + raw: (...gray: Gray) => HWB; + }; + cmyk: { + (...gray: Gray): CMYK; + raw: (...gray: Gray) => CMYK; + }; + lab: { + (...gray: Gray): LAB; + raw: (...gray: Gray) => LAB; + }; + hex: { + (...gray: Gray): HEX; + raw: (...gray: Gray) => HEX; + }; + } & route.gray & { + [F in keyof route.gray]: { + raw: route.gray[F]; + }; + }; +}; +declare const convert: Convert; +export type ColorLike = ColorInstance | string | ArrayLike | number | Record; +export type ColorJson = { + model: string; + color: number[]; + valpha: number; +}; +export type ColorObject = { + alpha?: number | undefined; +} & Record; +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +export interface ColorInstance { + toString(): string; + // eslint-disable-next-line @typescript-eslint/naming-convention + toJSON(): ColorJson; + string(places?: number): string; + percentString(places?: number): string; + array(): number[]; + object(): ColorObject; + unitArray(): number[]; + unitObject(): { + r: number; + g: number; + b: number; + alpha?: number | undefined; + }; + round(places?: number): ColorInstance; + alpha(): number; + alpha(value: number): ColorInstance; + red(): number; + red(value: number): ColorInstance; + green(): number; + green(value: number): ColorInstance; + blue(): number; + blue(value: number): ColorInstance; + hue(): number; + hue(value: number): ColorInstance; + saturationl(): number; + saturationl(value: number): ColorInstance; + lightness(): number; + lightness(value: number): ColorInstance; + saturationv(): number; + saturationv(value: number): ColorInstance; + value(): number; + value(value: number): ColorInstance; + chroma(): number; + chroma(value: number): ColorInstance; + gray(): number; + gray(value: number): ColorInstance; + white(): number; + white(value: number): ColorInstance; + wblack(): number; + wblack(value: number): ColorInstance; + cyan(): number; + cyan(value: number): ColorInstance; + magenta(): number; + magenta(value: number): ColorInstance; + yellow(): number; + yellow(value: number): ColorInstance; + black(): number; + black(value: number): ColorInstance; + x(): number; + x(value: number): ColorInstance; + y(): number; + y(value: number): ColorInstance; + z(): number; + z(value: number): ColorInstance; + l(): number; + l(value: number): ColorInstance; + a(): number; + a(value: number): ColorInstance; + b(): number; + b(value: number): ColorInstance; + keyword(): string; + keyword(value: V): ColorInstance; + hex(): string; + hex(value: V): ColorInstance; + hexa(): string; + hexa(value: V): ColorInstance; + rgbNumber(): number; + luminosity(): number; + contrast(color2: ColorInstance): number; + level(color2: ColorInstance): "AAA" | "AA" | ""; + isDark(): boolean; + isLight(): boolean; + negate(): ColorInstance; + lighten(ratio: number): ColorInstance; + darken(ratio: number): ColorInstance; + saturate(ratio: number): ColorInstance; + desaturate(ratio: number): ColorInstance; + whiten(ratio: number): ColorInstance; + blacken(ratio: number): ColorInstance; + grayscale(): ColorInstance; + fade(ratio: number): ColorInstance; + opaquer(ratio: number): ColorInstance; + rotate(degrees: number): ColorInstance; + mix(mixinColor: ColorInstance, weight?: number): ColorInstance; + rgb(...arguments_: number[]): ColorInstance; + hsl(...arguments_: number[]): ColorInstance; + hsv(...arguments_: number[]): ColorInstance; + hwb(...arguments_: number[]): ColorInstance; + cmyk(...arguments_: number[]): ColorInstance; + xyz(...arguments_: number[]): ColorInstance; + lab(...arguments_: number[]): ColorInstance; + lch(...arguments_: number[]): ColorInstance; + ansi16(...arguments_: number[]): ColorInstance; + ansi256(...arguments_: number[]): ColorInstance; + hcg(...arguments_: number[]): ColorInstance; + apple(...arguments_: number[]): ColorInstance; +} +export type ColorConstructor = { + (object?: ColorLike, model?: keyof (typeof convert)): ColorInstance; + new (object?: ColorLike, model?: keyof (typeof convert)): ColorInstance; + rgb(...value: number[]): ColorInstance; + rgb(color: ColorLike): ColorInstance; + hsl(...value: number[]): ColorInstance; + hsl(color: ColorLike): ColorInstance; + hsv(...value: number[]): ColorInstance; + hsv(color: ColorLike): ColorInstance; + hwb(...value: number[]): ColorInstance; + hwb(color: ColorLike): ColorInstance; + cmyk(...value: number[]): ColorInstance; + cmyk(color: ColorLike): ColorInstance; + xyz(...value: number[]): ColorInstance; + xyz(color: ColorLike): ColorInstance; + lab(...value: number[]): ColorInstance; + lab(color: ColorLike): ColorInstance; + lch(...value: number[]): ColorInstance; + lch(color: ColorLike): ColorInstance; + ansi16(...value: number[]): ColorInstance; + ansi16(color: ColorLike): ColorInstance; + ansi256(...value: number[]): ColorInstance; + ansi256(color: ColorLike): ColorInstance; + hcg(...value: number[]): ColorInstance; + hcg(color: ColorLike): ColorInstance; + apple(...value: number[]): ColorInstance; + apple(color: ColorLike): ColorInstance; +}; +// eslint-disable-next-line @typescript-eslint/naming-convention +declare const Color: ColorConstructor; + +export { + Color as default, +}; + +export {}; diff --git a/apps/api/.output/node_modules/@img/colour/package.json b/apps/api/.output/node_modules/@img/colour/package.json new file mode 100644 index 0000000..38887d1 --- /dev/null +++ b/apps/api/.output/node_modules/@img/colour/package.json @@ -0,0 +1,58 @@ +{ + "name": "@img/colour", + "version": "1.1.0", + "description": "The ESM-only 'color' package made compatible for use with CommonJS runtimes", + "license": "MIT", + "main": "index.cjs", + "types": "index.d.ts", + "exports": { + ".": { + "types": "./index.d.ts", + "require": "./index.cjs", + "default": "./index.cjs" + }, + "./package.json": "./package.json" + }, + "authors": [ + "Heather Arthur ", + "Josh Junon ", + "Maxime Thirouin", + "Dyma Ywanov ", + "LitoMore (https://github.com/LitoMore)" + ], + "engines": { + "node": ">=18" + }, + "files": [ + "color.cjs", + "index.d.ts" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lovell/colour.git" + }, + "type": "commonjs", + "keywords": [ + "color", + "colour", + "cjs", + "commonjs" + ], + "scripts": { + "build:cjs": "esbuild node_modules/color/index.js --bundle --platform=node --outfile=color.cjs", + "build:dts": "dts-bundle-generator ./dts-src.ts -o index.d.ts --project tsconfig.build.json --external-inlines color --external-inlines color-convert --export-referenced-types=false", + "build": "npm run build:cjs && npm run build:dts", + "test": "node --test" + }, + "devDependencies": { + "color": "5.0.3", + "color-convert": "3.1.3", + "color-name": "2.1.0", + "color-string": "2.1.4", + "dts-bundle-generator": "^9.5.1", + "esbuild": "^0.27.3" + } +} diff --git a/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md new file mode 100644 index 0000000..df8cd0e --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md @@ -0,0 +1,46 @@ +# `@img/sharp-libvips-linuxmusl-x64` + +Prebuilt libvips and dependencies for use with sharp on Linux (musl) x64. + +## Licensing + +This software contains third-party libraries +used under the terms of the following licenses: + +| Library | Used under the terms of | +|---------------|-----------------------------------------------------------------------------------------------------------| +| aom | BSD 2-Clause + [Alliance for Open Media Patent License 1.0](https://aomedia.org/license/patent-license/) | +| cairo | Mozilla Public License 1.1 | +| cgif | MIT License | +| expat | MIT License | +| fontconfig | [fontconfig License](https://gitlab.freedesktop.org/fontconfig/fontconfig/blob/main/COPYING) (BSD-like) | +| freetype | [freetype License](https://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT) (BSD-like) | +| fribidi | LGPLv3 | +| glib | LGPLv3 | +| harfbuzz | MIT License | +| highway | BSD 3-Clause | +| lcms | MIT License | +| libarchive | BSD 2-Clause | +| libexif | LGPLv3 | +| libffi | MIT License | +| libheif | LGPLv3 | +| libimagequant | [BSD 2-Clause](https://github.com/lovell/libimagequant/blob/main/COPYRIGHT) | +| libnsgif | MIT License | +| libpng | [libpng License](https://github.com/pnggroup/libpng/blob/master/LICENSE) | +| librsvg | LGPLv3 | +| libtiff | [libtiff License](https://gitlab.com/libtiff/libtiff/blob/master/LICENSE.md) (BSD-like) | +| libultrahdr | MIT License | +| libvips | LGPLv3 | +| libwebp | New BSD License | +| libxml2 | MIT License | +| mozjpeg | [zlib License, IJG License, BSD 3-Clause](https://github.com/mozilla/mozjpeg/blob/master/LICENSE.md) | +| pango | LGPLv3 | +| pixman | MIT License | +| proxy-libintl | LGPLv3 | +| zlib-ng | [zlib License](https://github.com/zlib-ng/zlib-ng/blob/develop/LICENSE.md) | + +Use of libraries under the terms of the LGPLv3 is via the +"any later version" clause of the LGPLv2 or LGPLv2.1. + +Please report any errors or omissions via +https://github.com/lovell/sharp-libvips/issues/new diff --git a/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h new file mode 100644 index 0000000..0c049d4 --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h @@ -0,0 +1,219 @@ +/* glibconfig.h + * + * This is a generated file. Please modify 'glibconfig.h.in' + */ + +#ifndef __GLIBCONFIG_H__ +#define __GLIBCONFIG_H__ + +#include + +#include +#include +#define GLIB_HAVE_ALLOCA_H + +#define GLIB_STATIC_COMPILATION 1 +#define GOBJECT_STATIC_COMPILATION 1 +#define GIO_STATIC_COMPILATION 1 +#define GMODULE_STATIC_COMPILATION 1 +#define GI_STATIC_COMPILATION 1 + +/* Specifies that GLib's g_print*() functions wrap the + * system printf functions. This is useful to know, for example, + * when using glibc's register_printf_function(). + */ +#define GLIB_USING_SYSTEM_PRINTF + +G_BEGIN_DECLS + +#define G_MINFLOAT FLT_MIN +#define G_MAXFLOAT FLT_MAX +#define G_MINDOUBLE DBL_MIN +#define G_MAXDOUBLE DBL_MAX +#define G_MINSHORT SHRT_MIN +#define G_MAXSHORT SHRT_MAX +#define G_MAXUSHORT USHRT_MAX +#define G_MININT INT_MIN +#define G_MAXINT INT_MAX +#define G_MAXUINT UINT_MAX +#define G_MINLONG LONG_MIN +#define G_MAXLONG LONG_MAX +#define G_MAXULONG ULONG_MAX + +typedef signed char gint8; +typedef unsigned char guint8; + +typedef signed short gint16; +typedef unsigned short guint16; + +#define G_GINT16_MODIFIER "h" +#define G_GINT16_FORMAT "hi" +#define G_GUINT16_FORMAT "hu" + + +typedef signed int gint32; +typedef unsigned int guint32; + +#define G_GINT32_MODIFIER "" +#define G_GINT32_FORMAT "i" +#define G_GUINT32_FORMAT "u" + + +#define G_HAVE_GINT64 1 /* deprecated, always true */ + +typedef signed long gint64; +typedef unsigned long guint64; + +#define G_GINT64_CONSTANT(val) (val##L) +#define G_GUINT64_CONSTANT(val) (val##UL) + +#define G_GINT64_MODIFIER "l" +#define G_GINT64_FORMAT "li" +#define G_GUINT64_FORMAT "lu" + + +#define GLIB_SIZEOF_VOID_P 8 +#define GLIB_SIZEOF_LONG 8 +#define GLIB_SIZEOF_SIZE_T 8 +#define GLIB_SIZEOF_SSIZE_T 8 + +typedef signed long gssize; +typedef unsigned long gsize; +#define G_GSIZE_MODIFIER "l" +#define G_GSSIZE_MODIFIER "l" +#define G_GSIZE_FORMAT "lu" +#define G_GSSIZE_FORMAT "li" + +#define G_MAXSIZE G_MAXULONG +#define G_MINSSIZE G_MINLONG +#define G_MAXSSIZE G_MAXLONG + +typedef gint64 goffset; +#define G_MINOFFSET G_MININT64 +#define G_MAXOFFSET G_MAXINT64 + +#define G_GOFFSET_MODIFIER G_GINT64_MODIFIER +#define G_GOFFSET_FORMAT G_GINT64_FORMAT +#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val) + +#define G_POLLFD_FORMAT "%d" + +#define GPOINTER_TO_INT(p) ((gint) (glong) (p)) +#define GPOINTER_TO_UINT(p) ((guint) (gulong) (p)) + +#define GINT_TO_POINTER(i) ((gpointer) (glong) (i)) +#define GUINT_TO_POINTER(u) ((gpointer) (gulong) (u)) + +typedef signed long gintptr; +typedef unsigned long guintptr; + +#define G_GINTPTR_MODIFIER "l" +#define G_GINTPTR_FORMAT "li" +#define G_GUINTPTR_FORMAT "lu" + +#define GLIB_MAJOR_VERSION 2 +#define GLIB_MINOR_VERSION 90 +#define GLIB_MICRO_VERSION 0 + +#define G_OS_UNIX + +#define G_VA_COPY va_copy + +#define G_VA_COPY_AS_ARRAY 1 + +#define G_HAVE_ISO_VARARGS 1 + +/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi + * is passed ISO vararg support is turned off, and there is no work + * around to turn it on, so we unconditionally turn it off. + */ +#if __GNUC__ == 2 && __GNUC_MINOR__ == 95 +# undef G_HAVE_ISO_VARARGS +#endif + +#define G_HAVE_GROWING_STACK 0 + +#ifndef _MSC_VER +# define G_HAVE_GNUC_VARARGS 1 +#endif + +#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +#define G_GNUC_INTERNAL __attribute__((visibility("hidden"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define G_GNUC_INTERNAL __hidden +#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY) +#define G_GNUC_INTERNAL __attribute__((visibility("hidden"))) +#else +#define G_GNUC_INTERNAL +#endif + +#define G_THREADS_ENABLED +#define G_THREADS_IMPL_POSIX + +#define G_ATOMIC_LOCK_FREE + +#define GINT16_TO_LE(val) ((gint16) (val)) +#define GUINT16_TO_LE(val) ((guint16) (val)) +#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) +#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) + +#define GINT32_TO_LE(val) ((gint32) (val)) +#define GUINT32_TO_LE(val) ((guint32) (val)) +#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) +#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) + +#define GINT64_TO_LE(val) ((gint64) (val)) +#define GUINT64_TO_LE(val) ((guint64) (val)) +#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) +#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) + +#define GLONG_TO_LE(val) ((glong) GINT64_TO_LE (val)) +#define GULONG_TO_LE(val) ((gulong) GUINT64_TO_LE (val)) +#define GLONG_TO_BE(val) ((glong) GINT64_TO_BE (val)) +#define GULONG_TO_BE(val) ((gulong) GUINT64_TO_BE (val)) +#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) +#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) +#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) +#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) +#define GSIZE_TO_LE(val) ((gsize) GUINT64_TO_LE (val)) +#define GSSIZE_TO_LE(val) ((gssize) GINT64_TO_LE (val)) +#define GSIZE_TO_BE(val) ((gsize) GUINT64_TO_BE (val)) +#define GSSIZE_TO_BE(val) ((gssize) GINT64_TO_BE (val)) +#define G_BYTE_ORDER G_LITTLE_ENDIAN + +#define GLIB_SYSDEF_POLLIN =1 +#define GLIB_SYSDEF_POLLOUT =4 +#define GLIB_SYSDEF_POLLPRI =2 +#define GLIB_SYSDEF_POLLHUP =16 +#define GLIB_SYSDEF_POLLERR =8 +#define GLIB_SYSDEF_POLLNVAL =32 + +/* No way to disable deprecation warnings for macros, so only emit deprecation + * warnings on platforms where usage of this macro is broken */ +#if defined(__APPLE__) || defined(_MSC_VER) || defined(__CYGWIN__) +#define G_MODULE_SUFFIX "so" GLIB_DEPRECATED_MACRO_IN_2_76 +#else +#define G_MODULE_SUFFIX "so" +#endif + +typedef int GPid; +#define G_PID_FORMAT "i" + +#define GLIB_SYSDEF_AF_UNIX 1 +#define GLIB_SYSDEF_AF_INET 2 +#define GLIB_SYSDEF_AF_INET6 10 + +#define GLIB_SYSDEF_MSG_OOB 1 +#define GLIB_SYSDEF_MSG_PEEK 2 +#define GLIB_SYSDEF_MSG_DONTROUTE 4 + +#define G_DIR_SEPARATOR '/' +#define G_DIR_SEPARATOR_S "/" +#define G_SEARCHPATH_SEPARATOR ':' +#define G_SEARCHPATH_SEPARATOR_S ":" + +#undef G_HAVE_FREE_SIZED + +G_END_DECLS + +#endif /* __GLIBCONFIG_H__ */ diff --git a/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js new file mode 100644 index 0000000..5092b4d --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js @@ -0,0 +1 @@ +module.exports = __dirname; diff --git a/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.18.7 b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.18.7 new file mode 100644 index 0000000..dad50d3 Binary files /dev/null and b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.18.7 differ diff --git a/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json new file mode 100644 index 0000000..6a9db79 --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json @@ -0,0 +1,43 @@ +{ + "name": "@img/sharp-libvips-linuxmusl-x64", + "version": "1.3.4", + "description": "Prebuilt libvips and dependencies for use with sharp on Linux (musl) x64", + "author": "Lovell Fuller ", + "homepage": "https://sharp.pixelplumbing.com", + "repository": { + "type": "git", + "url": "git+https://github.com/lovell/sharp-libvips.git", + "directory": "npm/linuxmusl-x64" + }, + "license": "LGPL-3.0-or-later", + "funding": { + "url": "https://opencollective.com/libvips" + }, + "preferUnplugged": true, + "publishConfig": { + "access": "public" + }, + "files": [ + "lib", + "versions.json" + ], + "type": "commonjs", + "exports": { + "./lib": "./lib/index.js", + "./package": "./package.json", + "./versions": "./versions.json", + "./binary": "./lib/libvips-cpp.so.8.18.7" + }, + "config": { + "musl": ">=1.2.5" + }, + "os": [ + "linux" + ], + "libc": [ + "musl" + ], + "cpu": [ + "x64" + ] +} diff --git a/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json new file mode 100644 index 0000000..2f8fea6 --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json @@ -0,0 +1,30 @@ +{ + "aom": "3.15.1", + "archive": "3.8.9", + "cairo": "1.18.6", + "cgif": "0.5.4", + "exif": "0.6.26", + "expat": "2.8.5", + "ffi": "3.8.0", + "fontconfig": "2.18.3", + "freetype": "2.14.3", + "fribidi": "1.0.17", + "glib": "2.90.0", + "harfbuzz": "14.5.0", + "heif": "1.23.5", + "highway": "1.4.0", + "imagequant": "2.4.1", + "lcms": "2.19.1", + "mozjpeg": "0826579", + "pango": "1.58.2", + "pixman": "0.46.4", + "png": "1.6.58", + "proxy-libintl": "0.5", + "rsvg": "2.63.2", + "tiff": "4.7.2", + "uhdr": "2.0.2", + "vips": "8.18.7", + "webp": "1.6.0", + "xml2": "2.15.4", + "zlib-ng": "2.3.3" +} \ No newline at end of file diff --git a/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/LICENSE b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/LICENSE new file mode 100644 index 0000000..37ec93a --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/README.md b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/README.md new file mode 100644 index 0000000..f651f98 --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/README.md @@ -0,0 +1,18 @@ +# `@img/sharp-linuxmusl-x64` + +Prebuilt sharp for use with Linux (musl) x64. + +## Licensing + +Copyright 2013 Lovell Fuller and others. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/index.cjs b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/index.cjs new file mode 100644 index 0000000..0c762ae --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/index.cjs @@ -0,0 +1,2 @@ +try { require.resolve('@img/sharp-libvips-linuxmusl-x64/binary'); } catch {} +module.exports = require('./lib/sharp-linuxmusl-x64-0.35.5.node'); \ No newline at end of file diff --git a/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64-0.35.5.node b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64-0.35.5.node new file mode 100644 index 0000000..176677b Binary files /dev/null and b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64-0.35.5.node differ diff --git a/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/package.json b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/package.json new file mode 100644 index 0000000..6e2b9c9 --- /dev/null +++ b/apps/api/.output/node_modules/@img/sharp-linuxmusl-x64/package.json @@ -0,0 +1,47 @@ +{ + "name": "@img/sharp-linuxmusl-x64", + "version": "0.35.5", + "description": "Prebuilt sharp for use with Linux (musl) x64", + "author": "Lovell Fuller ", + "homepage": "https://sharp.pixelplumbing.com", + "repository": { + "type": "git", + "url": "git+https://github.com/lovell/sharp.git", + "directory": "npm/linuxmusl-x64" + }, + "license": "Apache-2.0", + "funding": { + "url": "https://opencollective.com/libvips" + }, + "preferUnplugged": true, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.4" + }, + "files": [ + "index.cjs", + "lib" + ], + "publishConfig": { + "access": "public" + }, + "type": "commonjs", + "exports": { + "./sharp.node": "./index.cjs", + "./package": "./package.json" + }, + "engines": { + "node": ">=20.9.0" + }, + "config": { + "musl": ">=1.2.5" + }, + "os": [ + "linux" + ], + "libc": [ + "musl" + ], + "cpu": [ + "x64" + ] +} diff --git a/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/README.md b/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/README.md new file mode 100644 index 0000000..3786de0 --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/README.md @@ -0,0 +1,3 @@ +# `@node-rs/argon2-linux-x64-musl` + +This is the **x86_64-unknown-linux-musl** binary for `@node-rs/argon2` diff --git a/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/argon2.linux-x64-musl.node b/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/argon2.linux-x64-musl.node new file mode 100644 index 0000000..0606227 Binary files /dev/null and b/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/argon2.linux-x64-musl.node differ diff --git a/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/package.json b/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/package.json new file mode 100644 index 0000000..9a7465e --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2-linux-x64-musl/package.json @@ -0,0 +1,42 @@ +{ + "name": "@node-rs/argon2-linux-x64-musl", + "version": "2.2.2", + "cpu": [ + "x64" + ], + "main": "argon2.linux-x64-musl.node", + "files": [ + "argon2.linux-x64-musl.node" + ], + "description": "argon2-rust binding for Node.js", + "keywords": [ + "argon2", + "argon2-password", + "crypto", + "encryption", + "hash", + "hashing", + "password", + "secure", + "verify" + ], + "homepage": "https://github.com/napi-rs/node-rs", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/napi-rs/node-rs.git" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "os": [ + "linux" + ], + "libc": [ + "musl" + ] +} diff --git a/apps/api/.output/node_modules/@node-rs/argon2/LICENSE b/apps/api/.output/node_modules/@node-rs/argon2/LICENSE new file mode 100644 index 0000000..6404653 --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-present LongYinan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/apps/api/.output/node_modules/@node-rs/argon2/README.md b/apps/api/.output/node_modules/@node-rs/argon2/README.md new file mode 100644 index 0000000..e15c0ac --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2/README.md @@ -0,0 +1,166 @@ +# `@node-rs/argon2` + +![](https://github.com/napi-rs/node-rs/workflows/CI/badge.svg) +![](https://img.shields.io/npm/dm/@node-rs/argon2.svg?sanitize=true) + +[argon2-rust](https://crates.io/crates/argon2-rust) binding for Node.js. + +Argon2 is a [key derivation function](https://en.wikipedia.org/wiki/Key_derivation_function) that was selected as the winner of the [Password Hashing Competition(PHC)](https://password-hashing.net) in July 2015. + +Argon2 summarizes the state of the art in the design of memory-hard functions and can be used to hash passwords for credential storage, key derivation, or other applications. + +It has a simple design aimed at the highest memory filling rate and effective use of multiple computing units, while still providing defense against tradeoff attacks (by exploiting the cache and memory organization of the recent processors). + +## Features + +- Faster than node-argon2 and `node:crypto.argon2` at the same m/t/p (see Benchmarks). +- No node-gyp and postinstall. +- Cross-platform support, including [Apple M1](https://www.apple.com/newsroom/2020/11/apple-unleashes-m1/). +- Smaller file size after npm installation(476K vs [node-argon2](https://github.com/ranisalt/node-argon2) 3.7M). +- `@node-rs/argon2` supports all three algorithms: + - Argon2i: Optimizes against GPU cracking attacks but vulnerable to side-channels. + Accesses the memory array in a password dependent order, reducing the possibility of time–memory tradeoff (TMTO) attacks. + - Argon2d: Optimized to resist side-channel attacks. + Accesses the memory array in a password independent order, increasing the possibility of time-memory tradeoff (TMTO) attacks. + - **Argon2id**: default value, this is the default algorithm for normative recommendations. + Hybrid that mixes Argon2i and Argon2d passes. + Uses the Argon2i approach for the first half pass over memory and Argon2d approach for subsequent passes. This effectively places it in the “middle” between the other two: it doesn’t provide as good TMTO/GPU cracking resistance as Argon2d, nor as good of side-channel resistance as Argon2i, but overall provides the most well-rounded approach to both classes of attacks. + +# Benchmarks + +Comparing each library's **defaults** is not 1:1. `@node-rs/argon2` defaults to `m=19456,t=2,p=1`; `argon2` (node-argon2) defaults to `m=65536,t=3,p=4`. See [#841](https://github.com/napi-rs/node-rs/issues/841). + +This bench pins the same password, salt, Argon2id v=19, m, t, p, and 32-byte tag. Only the **raw** KDF is timed. The tag is asserted equal on every run. Native impls are interleaved with each other; JS/wasm are a separate group so a 7 ms hash is not timed after a 400 ms JS loop. + +Apple M5 Max / arm64 / Node 24 / [argon2-rust 1.1.0](https://crates.io/crates/argon2-rust). Median ms. See [benchmark/](benchmark/argon2.ts). + +**Native async raw** — same calling shape as node-argon2 (no sync API there): + +| params | @node-rs/argon2 | node-argon2 | node:crypto | +| --------------------- | --------------: | ----------: | ----------: | +| m=19456 KiB, t=2, p=1 | **7.58** | 15.41 | 13.05 | +| m=65536 KiB, t=3, p=1 | **49.35** | 84.57 | 71.71 | +| m=65536 KiB, t=3, p=4 | **13.62** | 22.54 | 20.83 | + +**JS / wasm raw** — same params, same tags: + +| params | hash-wasm | @noble/hashes | +| --------------------- | --------: | ------------: | +| m=19456 KiB, t=2, p=1 | 19.79 | 86.14 | +| m=65536 KiB, t=3, p=1 | 104.09 | 433.07 | +| m=65536 KiB, t=3, p=4 | 106.06 | 435.39 | + +hash-wasm and `@noble/hashes` do not run lanes in parallel, so their p=4 row is the p=1 work. + +## API + +```typescript +export const enum Algorithm { + Argon2d = 0, + Argon2i = 1, + Argon2id = 2, +} +export const enum Version { + /** Version 16 (0x10 in hex) */ + V0x10 = 0, + /** + * Default value + * Version 19 (0x13 in hex, default) + */ + V0x13 = 1, +} +export interface Options { + /** + * The amount of memory to be used by the hash function, in kilobytes. Each thread will have a memory pool of this size. Note that large values for highly concurrent usage will cause starvation and thrashing if your system memory gets full. + * + * Value is an integer in decimal (1 to 10 digits), between 1 and (2^32)-1. + * + * The default value is 19456, meaning a pool of 19 MiB per thread. + */ + memoryCost?: number | undefined | null + /** + * The time cost is the amount of passes (iterations) used by the hash function. It increases hash strength at the cost of time required to compute. + * + * Value is an integer in decimal (1 to 10 digits), between 1 and (2^32)-1. + * + * The default value is 2. + */ + timeCost?: number | undefined | null + /** + * The hash length is the length of the hash function output in bytes. Note that the resulting hash is encoded with Base 64, so the digest will be ~1/3 longer. + * + * The default value is 32, which produces raw hashes of 32 bytes or digests of 43 characters. + */ + outputLen?: number | undefined | null + /** + * The amount of threads to compute the hash on. Each thread has a memory pool with memoryCost size. Note that changing it also changes the resulting hash. + * + * Value is an integer in decimal (1 to 3 digits), between 1 and 255. + * + * The default value is 1, meaning a single thread is used. + */ + parallelism?: number | undefined | null + algorithm?: Algorithm | undefined | null + version?: Version | undefined | null + secret?: Buffer | undefined | null +} +export function hash( + password: string | Buffer, + options?: Options | undefined | null, + abortSignal?: AbortSignal | undefined | null, +): Promise +export function verify( + hashed: string | Buffer, + password: string | Buffer, + options?: Options | undefined | null, + abortSignal?: AbortSignal | undefined | null, +): Promise +``` + +## `parseOptions` — needs-rehash checks + +`parseOptions` parses an encoded PHC hash string and returns the parameters it was created with. Compare them against your current policy to decide whether a stored hash should be rehashed at next login. + +```typescript +import { Algorithm, parseOptions, Version } from '@node-rs/argon2' + +const POLICY = { + algorithm: Algorithm.Argon2id, + version: Version.V0x13, + memoryCost: 19456, + timeCost: 2, + parallelism: 1, + outputLen: 32, +} as const + +function needsRehash(hashed: string): boolean { + const parsed = parseOptions(hashed) + return ( + parsed.algorithm !== POLICY.algorithm || + parsed.version !== POLICY.version || + parsed.memoryCost !== POLICY.memoryCost || + parsed.timeCost !== POLICY.timeCost || + parsed.parallelism !== POLICY.parallelism || + parsed.outputLen !== POLICY.outputLen || + parsed.saltLen < 16 + ) +} +``` + +```typescript +export interface ParsedHashOptions { + algorithm: Algorithm + version: Version + /** Memory cost in kibibytes (`m=` in the PHC string). */ + memoryCost: number + /** Time cost / number of passes (`t=` in the PHC string). */ + timeCost: number + /** Degree of parallelism (`p=` in the PHC string). */ + parallelism: number + /** Length of the raw hash output in bytes. */ + outputLen: number + /** Byte length of the decoded salt. This package generates 16-byte salts; older hashes may carry shorter ones. */ + saltLen: number +} +export function parseOptions(hashed: string | Uint8Array): ParsedHashOptions +``` diff --git a/apps/api/.output/node_modules/@node-rs/argon2/browser.js b/apps/api/.output/node_modules/@node-rs/argon2/browser.js new file mode 100644 index 0000000..3175b79 --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2/browser.js @@ -0,0 +1 @@ +export * from '@node-rs/argon2-wasm32-wasi' diff --git a/apps/api/.output/node_modules/@node-rs/argon2/index.d.ts b/apps/api/.output/node_modules/@node-rs/argon2/index.d.ts new file mode 100644 index 0000000..2d5d2bd --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2/index.d.ts @@ -0,0 +1,104 @@ +/* auto-generated by NAPI-RS */ +/* eslint-disable */ +export declare const enum Algorithm { + /** + * Optimizes against GPU cracking attacks but vulnerable to side-channels. + * Accesses the memory array in a password dependent order, reducing the possibility of time–memory tradeoff (TMTO) attacks. + */ + Argon2d = 0, + /** + * Optimized to resist side-channel attacks. + * Accesses the memory array in a password independent order, increasing the possibility of time-memory tradeoff (TMTO) attacks. + */ + Argon2i = 1, + /** + * Default value, this is the default algorithm for normative recommendations. + * Hybrid that mixes Argon2i and Argon2d passes. + * Uses the Argon2i approach for the first half pass over memory and Argon2d approach for subsequent passes. This effectively places it in the “middle” between the other two: it doesn’t provide as good TMTO/GPU cracking resistance as Argon2d, nor as good of side-channel resistance as Argon2i, but overall provides the most well-rounded approach to both classes of attacks. + */ + Argon2id = 2 +} + +export declare function hash(password: string | Uint8Array, options?: Options | undefined | null, abortSignal?: AbortSignal | undefined | null): Promise + +export declare function hashRaw(password: string | Uint8Array, options?: Options | undefined | null, abortSignal?: AbortSignal | undefined | null): Promise + +export declare function hashRawSync(password: string | Uint8Array, options?: Options | undefined | null): Buffer + +export declare function hashSync(password: string | Uint8Array, options?: Options | undefined | null): string + +export interface Options { + /** + * The amount of memory to be used by the hash function, in kilobytes. Each thread will have a memory pool of this size. Note that large values for highly concurrent usage will cause starvation and thrashing if your system memory gets full. + * + * Value is an integer in decimal (1 to 10 digits), between 1 and (2^32)-1. + * + * The default value is 19456, meaning a pool of 19 MiB per thread. + */ + memoryCost?: number + /** + * The time cost is the amount of passes (iterations) used by the hash function. It increases hash strength at the cost of time required to compute. + * + * Value is an integer in decimal (1 to 10 digits), between 1 and (2^32)-1. + * + * The default value is 2. + */ + timeCost?: number + /** + * The hash length is the length of the hash function output in bytes. Note that the resulting hash is encoded with Base 64, so the digest will be ~1/3 longer. + * + * The default value is 32, which produces raw hashes of 32 bytes or digests of 43 characters. + */ + outputLen?: number + /** + * The amount of threads to compute the hash on. Each thread has a memory pool with memoryCost size. Note that changing it also changes the resulting hash. + * + * Value is an integer in decimal (1 to 3 digits), between 1 and 255. + * + * The default value is 1, meaning a single thread is used. + */ + parallelism?: number + algorithm?: Algorithm + version?: Version + secret?: Uint8Array + salt?: Uint8Array +} + +export interface ParsedHashOptions { + algorithm: Algorithm + version: Version + /** Memory cost in kibibytes (`m=` in the PHC string). */ + memoryCost: number + /** Time cost / number of passes (`t=` in the PHC string). */ + timeCost: number + /** Degree of parallelism (`p=` in the PHC string). */ + parallelism: number + /** Length of the raw hash output in bytes. */ + outputLen: number + /** + * Byte length of the decoded salt. This package generates 16-byte salts; + * older hashes may carry shorter ones. + */ + saltLen: number +} + +/** + * Parses an encoded argon2 hash string (PHC format) and returns the parameters + * it was created with. Useful for "needs rehash" checks: compare the returned + * parameters against your current policy and rehash when they differ. + */ +export declare function parseOptions(hashed: string | Uint8Array): ParsedHashOptions + +export declare function verify(hashed: string | Uint8Array, password: string | Uint8Array, options?: Options | undefined | null, abortSignal?: AbortSignal | undefined | null): Promise + +export declare function verifySync(hashed: string | Uint8Array, password: string | Uint8Array, options?: Options | undefined | null): boolean + +export declare const enum Version { + /** Version 16 (0x10 in hex) */ + V0x10 = 0, + /** + * Default value + * Version 19 (0x13 in hex) + */ + V0x13 = 1 +} diff --git a/apps/api/.output/node_modules/@node-rs/argon2/index.js b/apps/api/.output/node_modules/@node-rs/argon2/index.js new file mode 100644 index 0000000..22026da --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2/index.js @@ -0,0 +1,711 @@ +// prettier-ignore +/* eslint-disable */ +// @ts-nocheck +/* auto-generated by NAPI-RS */ + +const { readFileSync } = require('fs') +let nativeBinding = null +const loadErrors = [] + +const isMusl = () => { + let musl = false + if (process.platform === 'linux') { + musl = isMuslFromFilesystem() + if (musl === null) { + musl = isMuslFromReport() + } + if (musl === null) { + musl = isMuslFromChildProcess() + } + } + return musl +} + +const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-') + +const isMuslFromFilesystem = () => { + try { + return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl') + } catch { + return null + } +} + +const isMuslFromReport = () => { + let report = null + if (process.report && typeof process.report.getReport === 'function') { + process.report.excludeNetwork = true + report = process.report.getReport() + } + if (!report) { + return null + } + if (report.header && report.header.glibcVersionRuntime) { + return false + } + if (Array.isArray(report.sharedObjects)) { + if (report.sharedObjects.some(isFileMusl)) { + return true + } + } + return false +} + +const isMuslFromChildProcess = () => { + try { + return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl') + } catch (e) { + // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false + return false + } +} + +function requireNative() { + if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) { + try { + return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH); + } catch (err) { + loadErrors.push(err) + } + } else if (process.platform === 'android') { + if (process.arch === 'arm64') { + try { + return require('./argon2.android-arm64.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-android-arm64') + const bindingPackageVersion = require('@node-rs/argon2-android-arm64/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else if (process.arch === 'arm') { + try { + return require('./argon2.android-arm-eabi.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-android-arm-eabi') + const bindingPackageVersion = require('@node-rs/argon2-android-arm-eabi/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`)) + } + } else if (process.platform === 'win32') { + if (process.arch === 'x64') { + if ((process.config && process.config.variables && process.config.variables.shlib_suffix === 'dll.a') || (process.config && process.config.variables && process.config.variables.node_target_type === 'shared_library')) { + try { + return require('./argon2.win32-x64-gnu.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-win32-x64-gnu') + const bindingPackageVersion = require('@node-rs/argon2-win32-x64-gnu/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + try { + return require('./argon2.win32-x64-msvc.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-win32-x64-msvc') + const bindingPackageVersion = require('@node-rs/argon2-win32-x64-msvc/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } + } else if (process.arch === 'ia32') { + try { + return require('./argon2.win32-ia32-msvc.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-win32-ia32-msvc') + const bindingPackageVersion = require('@node-rs/argon2-win32-ia32-msvc/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else if (process.arch === 'arm64') { + try { + return require('./argon2.win32-arm64-msvc.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-win32-arm64-msvc') + const bindingPackageVersion = require('@node-rs/argon2-win32-arm64-msvc/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`)) + } + } else if (process.platform === 'darwin') { + try { + return require('./argon2.darwin-universal.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-darwin-universal') + const bindingPackageVersion = require('@node-rs/argon2-darwin-universal/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + if (process.arch === 'x64') { + try { + return require('./argon2.darwin-x64.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-darwin-x64') + const bindingPackageVersion = require('@node-rs/argon2-darwin-x64/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else if (process.arch === 'arm64') { + try { + return require('./argon2.darwin-arm64.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-darwin-arm64') + const bindingPackageVersion = require('@node-rs/argon2-darwin-arm64/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`)) + } + } else if (process.platform === 'freebsd') { + if (process.arch === 'x64') { + try { + return require('./argon2.freebsd-x64.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-freebsd-x64') + const bindingPackageVersion = require('@node-rs/argon2-freebsd-x64/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else if (process.arch === 'arm64') { + try { + return require('./argon2.freebsd-arm64.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-freebsd-arm64') + const bindingPackageVersion = require('@node-rs/argon2-freebsd-arm64/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`)) + } + } else if (process.platform === 'linux') { + if (process.arch === 'x64') { + if (isMusl()) { + try { + return require('./argon2.linux-x64-musl.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-x64-musl') + const bindingPackageVersion = require('@node-rs/argon2-linux-x64-musl/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + try { + return require('./argon2.linux-x64-gnu.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-x64-gnu') + const bindingPackageVersion = require('@node-rs/argon2-linux-x64-gnu/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } + } else if (process.arch === 'arm64') { + if (isMusl()) { + try { + return require('./argon2.linux-arm64-musl.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-arm64-musl') + const bindingPackageVersion = require('@node-rs/argon2-linux-arm64-musl/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + try { + return require('./argon2.linux-arm64-gnu.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-arm64-gnu') + const bindingPackageVersion = require('@node-rs/argon2-linux-arm64-gnu/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } + } else if (process.arch === 'arm') { + if (isMusl()) { + try { + return require('./argon2.linux-arm-musleabihf.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-arm-musleabihf') + const bindingPackageVersion = require('@node-rs/argon2-linux-arm-musleabihf/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + try { + return require('./argon2.linux-arm-gnueabihf.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-arm-gnueabihf') + const bindingPackageVersion = require('@node-rs/argon2-linux-arm-gnueabihf/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } + } else if (process.arch === 'loong64') { + if (isMusl()) { + try { + return require('./argon2.linux-loong64-musl.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-loong64-musl') + const bindingPackageVersion = require('@node-rs/argon2-linux-loong64-musl/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + try { + return require('./argon2.linux-loong64-gnu.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-loong64-gnu') + const bindingPackageVersion = require('@node-rs/argon2-linux-loong64-gnu/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } + } else if (process.arch === 'riscv64') { + if (isMusl()) { + try { + return require('./argon2.linux-riscv64-musl.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-riscv64-musl') + const bindingPackageVersion = require('@node-rs/argon2-linux-riscv64-musl/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + try { + return require('./argon2.linux-riscv64-gnu.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-riscv64-gnu') + const bindingPackageVersion = require('@node-rs/argon2-linux-riscv64-gnu/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } + } else if (process.arch === 'ppc64') { + try { + return require('./argon2.linux-ppc64-gnu.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-ppc64-gnu') + const bindingPackageVersion = require('@node-rs/argon2-linux-ppc64-gnu/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else if (process.arch === 's390x') { + try { + return require('./argon2.linux-s390x-gnu.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-linux-s390x-gnu') + const bindingPackageVersion = require('@node-rs/argon2-linux-s390x-gnu/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`)) + } + } else if (process.platform === 'openharmony') { + if (process.arch === 'arm64') { + try { + return require('./argon2.openharmony-arm64.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-openharmony-arm64') + const bindingPackageVersion = require('@node-rs/argon2-openharmony-arm64/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else if (process.arch === 'x64') { + try { + return require('./argon2.openharmony-x64.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-openharmony-x64') + const bindingPackageVersion = require('@node-rs/argon2-openharmony-x64/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else if (process.arch === 'arm') { + try { + return require('./argon2.openharmony-arm.node') + } catch (e) { + loadErrors.push(e) + } + try { + const binding = require('@node-rs/argon2-openharmony-arm') + const bindingPackageVersion = require('@node-rs/argon2-openharmony-arm/package.json').version + if (bindingPackageVersion !== '2.1.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + throw new Error(`Native binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + return binding + } catch (e) { + loadErrors.push(e) + } + } else { + loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`)) + } + } else { + loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`)) + } +} + +function createLoadErrorChain(errors) { + return errors.reduce((previous, current) => { + let message + try { + message = + current && typeof current.message === 'string' + ? current.message + : String(current) + } catch { + message = 'Unknown error' + } + const error = new Error(message) + error.cause = previous + return error + }, null) +} + +// NAPI_RS_FORCE_WASI is a tri-state flag: +// unset / any other value → native binding preferred, WASI is only a fallback +// 'true' → prefer WASI, but retain native as a lazy fallback +// 'error' → require WASI without initializing a native fallback +// Treating any non-empty string as truthy (the historical behavior) meant +// NAPI_RS_FORCE_WASI=false, NAPI_RS_FORCE_WASI=0, etc. inadvertently triggered +// the WASI path, causing ENOENT for packages shipped without a .wasi.cjs file. +// +// NAPI_RS_WASI_FLAVOR selects one exact generated flavor and implies strict +// WASI loading. It never crosses into another flavor or falls back to native. +const __napiWasiFlavors = ["wasm32-wasi"] +const __napiWasiFlavor = process.env.NAPI_RS_WASI_FLAVOR +const __napiWasiFlavorRequested = + typeof __napiWasiFlavor === 'string' && __napiWasiFlavor.length > 0 +if ( + __napiWasiFlavorRequested && + __napiWasiFlavors.indexOf(__napiWasiFlavor) === -1 +) { + throw new Error( + 'Unsupported WASI flavor "' + + __napiWasiFlavor + + '". Available flavors: ' + + __napiWasiFlavors.join(', '), + ) +} +const forceWasiError = process.env.NAPI_RS_FORCE_WASI === 'error' +const forceWasi = + process.env.NAPI_RS_FORCE_WASI === 'true' || + forceWasiError || + __napiWasiFlavorRequested + +if (!forceWasi) { + nativeBinding = requireNative() +} + +if (!nativeBinding || forceWasi) { + let wasiBinding = null + let wasiBindingLoaded = false + const wasiBindingErrors = [] + const __napiWasiResolveCandidate = (specifier, isPackage, localArtifacts) => { + try { + require.resolve(specifier) + } catch (resolveError) { + if (!resolveError || resolveError.code !== 'MODULE_NOT_FOUND') { + throw resolveError + } + if (isPackage) { + try { + require.resolve(specifier + '/package.json') + } catch (packageError) { + if (packageError && packageError.code === 'MODULE_NOT_FOUND') { + return resolveError + } + // An exports restriction proves the package exists even when its + // package.json is not public. Preserve the root resolution failure. + throw resolveError + } + // The package exists but its main/export target is broken. + throw resolveError + } + return resolveError + } + if (localArtifacts) { + let artifactError = null + for (let i = 0; i < localArtifacts.length; i++) { + try { + require.resolve(localArtifacts[i]) + return null + } catch (resolveError) { + if (!resolveError || resolveError.code !== 'MODULE_NOT_FOUND') { + throw resolveError + } + artifactError = resolveError + } + } + return artifactError + } + return null + } + if (!wasiBindingLoaded && (!__napiWasiFlavorRequested || __napiWasiFlavor === "wasm32-wasi")) { + let candidateError = null + let candidateFailed = false + try { + candidateError = __napiWasiResolveCandidate('./argon2.wasi.cjs', false, ["./argon2.wasm32-wasi.debug.wasm","./argon2.wasm32-wasi.wasm"]) + candidateFailed = candidateError !== null + if (!candidateFailed) { + wasiBinding = require('./argon2.wasi.cjs') + nativeBinding = wasiBinding + wasiBindingLoaded = true + } + } catch (err) { + candidateError = err + candidateFailed = true + } + if (candidateFailed) { + wasiBindingErrors.push(candidateError) + loadErrors.push(candidateError) + } + } + if (!wasiBindingLoaded && (!__napiWasiFlavorRequested || __napiWasiFlavor === "wasm32-wasi")) { + let candidateError = null + let candidateFailed = false + try { + candidateError = __napiWasiResolveCandidate('@node-rs/argon2-wasm32-wasi', true, undefined) + candidateFailed = candidateError !== null + if (!candidateFailed) { + if (process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { + const bindingPackageVersion = require('@node-rs/argon2-wasm32-wasi/package.json').version + if (bindingPackageVersion !== '2.1.0') { + throw new Error(`WASI binding package version mismatch, expected 2.1.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) + } + } + wasiBinding = require('@node-rs/argon2-wasm32-wasi') + nativeBinding = wasiBinding + wasiBindingLoaded = true + } + } catch (err) { + candidateError = err + candidateFailed = true + } + if (candidateFailed) { + wasiBindingErrors.push(candidateError) + loadErrors.push(candidateError) + } + } + if ( + !wasiBindingLoaded && + forceWasi && + !forceWasiError && + !__napiWasiFlavorRequested + ) { + nativeBinding = requireNative() + } + if ((forceWasiError || __napiWasiFlavorRequested) && !wasiBindingLoaded) { + const error = new Error( + __napiWasiFlavorRequested + ? 'WASI binding for flavor "' + __napiWasiFlavor + '" not found' + : 'WASI binding not found and NAPI_RS_FORCE_WASI is set to error', + ) + error.cause = createLoadErrorChain(wasiBindingErrors) + throw error + } +} + +if (!nativeBinding) { + if (loadErrors.length > 0) { + const error = new Error( + `Cannot find native binding. ` + + `npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` + + 'Please try `npm i` again after removing both package-lock.json and node_modules directory.', + ) + // assign instead of the `new Error(message, { cause })` options form, + // which Node < 16.9 silently ignores + error.cause = createLoadErrorChain(loadErrors) + throw error + } + throw new Error(`Failed to load native binding`) +} + +module.exports = nativeBinding +module.exports.Algorithm = nativeBinding.Algorithm +module.exports.hash = nativeBinding.hash +module.exports.hashRaw = nativeBinding.hashRaw +module.exports.hashRawSync = nativeBinding.hashRawSync +module.exports.hashSync = nativeBinding.hashSync +module.exports.parseOptions = nativeBinding.parseOptions +module.exports.verify = nativeBinding.verify +module.exports.verifySync = nativeBinding.verifySync +module.exports.Version = nativeBinding.Version diff --git a/apps/api/.output/node_modules/@node-rs/argon2/package.json b/apps/api/.output/node_modules/@node-rs/argon2/package.json new file mode 100644 index 0000000..0b5f197 --- /dev/null +++ b/apps/api/.output/node_modules/@node-rs/argon2/package.json @@ -0,0 +1,95 @@ +{ + "name": "@node-rs/argon2", + "version": "2.2.2", + "description": "argon2-rust binding for Node.js", + "keywords": [ + "argon2", + "argon2-password", + "crypto", + "encryption", + "hash", + "hashing", + "password", + "secure", + "verify" + ], + "homepage": "https://github.com/napi-rs/node-rs", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/napi-rs/node-rs.git" + }, + "files": [ + "browser.js", + "index.d.ts", + "index.js" + ], + "main": "index.js", + "browser": "browser.js", + "types": "index.d.ts", + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "scripts": { + "artifacts": "napi artifacts -d ../../artifacts", + "bench": "cross-env NODE_ENV=production node --import @oxc-node/core/register benchmark/argon2.ts", + "build": "oxnode ./build.ts --platform --release", + "build:debug": "oxnode ./build.ts --platform", + "prepublishOnly": "napi prepublish", + "version": "napi version" + }, + "devDependencies": { + "@napi-rs/cli": "^3.10.8", + "@noble/hashes": "^2.3.0", + "@oxc-node/cli": "^0.1.0", + "@oxc-node/core": "^0.1.0", + "argon2": "^0.45.1", + "cross-env": "^10.1.0", + "hash-wasm": "^4.12.0", + "tinybench": "^6.1.3" + }, + "napi": { + "binaryName": "argon2", + "targets": [ + "x86_64-apple-darwin", + "aarch64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "aarch64-linux-android", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "aarch64-pc-windows-msvc", + "armv7-unknown-linux-gnueabihf", + "x86_64-unknown-linux-musl", + "x86_64-unknown-freebsd", + "i686-pc-windows-msvc", + "armv7-linux-androideabi", + "wasm32-wasip1-threads" + ], + "wasm": { + "browser": { + "fs": false + } + } + }, + "engines": { + "node": ">= 10" + }, + "gitHead": "b706e3035f5d4d487ae66ea0549a041cd509e5d4", + "optionalDependencies": { + "@node-rs/argon2-darwin-x64": "2.2.2", + "@node-rs/argon2-darwin-arm64": "2.2.2", + "@node-rs/argon2-win32-x64-msvc": "2.2.2", + "@node-rs/argon2-linux-x64-gnu": "2.2.2", + "@node-rs/argon2-android-arm64": "2.2.2", + "@node-rs/argon2-linux-arm64-gnu": "2.2.2", + "@node-rs/argon2-linux-arm64-musl": "2.2.2", + "@node-rs/argon2-win32-arm64-msvc": "2.2.2", + "@node-rs/argon2-linux-arm-gnueabihf": "2.2.2", + "@node-rs/argon2-linux-x64-musl": "2.2.2", + "@node-rs/argon2-freebsd-x64": "2.2.2", + "@node-rs/argon2-win32-ia32-msvc": "2.2.2", + "@node-rs/argon2-android-arm-eabi": "2.2.2" + } +} diff --git a/apps/api/.output/node_modules/detect-libc/LICENSE b/apps/api/.output/node_modules/detect-libc/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/apps/api/.output/node_modules/detect-libc/README.md b/apps/api/.output/node_modules/detect-libc/README.md new file mode 100644 index 0000000..23212fd --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/README.md @@ -0,0 +1,163 @@ +# detect-libc + +Node.js module to detect details of the C standard library (libc) +implementation provided by a given Linux system. + +Currently supports detection of GNU glibc and MUSL libc. + +Provides asychronous and synchronous functions for the +family (e.g. `glibc`, `musl`) and version (e.g. `1.23`, `1.2.3`). + +The version numbers of libc implementations +are not guaranteed to be semver-compliant. + +For previous v1.x releases, please see the +[v1](https://github.com/lovell/detect-libc/tree/v1) branch. + +## Install + +```sh +npm install detect-libc +``` + +## API + +### GLIBC + +```ts +const GLIBC: string = 'glibc'; +``` + +A String constant containing the value `glibc`. + +### MUSL + +```ts +const MUSL: string = 'musl'; +``` + +A String constant containing the value `musl`. + +### family + +```ts +function family(): Promise; +``` + +Resolves asychronously with: + +* `glibc` or `musl` when the libc family can be determined +* `null` when the libc family cannot be determined +* `null` when run on a non-Linux platform + +```js +const { family, GLIBC, MUSL } = require('detect-libc'); + +switch (await family()) { + case GLIBC: ... + case MUSL: ... + case null: ... +} +``` + +### familySync + +```ts +function familySync(): string | null; +``` + +Synchronous version of `family()`. + +```js +const { familySync, GLIBC, MUSL } = require('detect-libc'); + +switch (familySync()) { + case GLIBC: ... + case MUSL: ... + case null: ... +} +``` + +### version + +```ts +function version(): Promise; +``` + +Resolves asychronously with: + +* The version when it can be determined +* `null` when the libc family cannot be determined +* `null` when run on a non-Linux platform + +```js +const { version } = require('detect-libc'); + +const v = await version(); +if (v) { + const [major, minor, patch] = v.split('.'); +} +``` + +### versionSync + +```ts +function versionSync(): string | null; +``` + +Synchronous version of `version()`. + +```js +const { versionSync } = require('detect-libc'); + +const v = versionSync(); +if (v) { + const [major, minor, patch] = v.split('.'); +} +``` + +### isNonGlibcLinux + +```ts +function isNonGlibcLinux(): Promise; +``` + +Resolves asychronously with: + +* `false` when the libc family is `glibc` +* `true` when the libc family is not `glibc` +* `false` when run on a non-Linux platform + +```js +const { isNonGlibcLinux } = require('detect-libc'); + +if (await isNonGlibcLinux()) { ... } +``` + +### isNonGlibcLinuxSync + +```ts +function isNonGlibcLinuxSync(): boolean; +``` + +Synchronous version of `isNonGlibcLinux()`. + +```js +const { isNonGlibcLinuxSync } = require('detect-libc'); + +if (isNonGlibcLinuxSync()) { ... } +``` + +## Licensing + +Copyright 2017 Lovell Fuller and others. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/apps/api/.output/node_modules/detect-libc/index.d.ts b/apps/api/.output/node_modules/detect-libc/index.d.ts new file mode 100644 index 0000000..4c0fb2b --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/index.d.ts @@ -0,0 +1,14 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +export const GLIBC: 'glibc'; +export const MUSL: 'musl'; + +export function family(): Promise; +export function familySync(): string | null; + +export function isNonGlibcLinux(): Promise; +export function isNonGlibcLinuxSync(): boolean; + +export function version(): Promise; +export function versionSync(): string | null; diff --git a/apps/api/.output/node_modules/detect-libc/lib/detect-libc.js b/apps/api/.output/node_modules/detect-libc/lib/detect-libc.js new file mode 100644 index 0000000..01299b4 --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/lib/detect-libc.js @@ -0,0 +1,313 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const childProcess = require('child_process'); +const { isLinux, getReport } = require('./process'); +const { LDD_PATH, SELF_PATH, readFile, readFileSync } = require('./filesystem'); +const { interpreterPath } = require('./elf'); + +let cachedFamilyInterpreter; +let cachedFamilyFilesystem; +let cachedVersionFilesystem; + +const command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true'; +let commandOut = ''; + +const safeCommand = () => { + if (!commandOut) { + return new Promise((resolve) => { + childProcess.exec(command, (err, out) => { + commandOut = err ? ' ' : out; + resolve(commandOut); + }); + }); + } + return commandOut; +}; + +const safeCommandSync = () => { + if (!commandOut) { + try { + commandOut = childProcess.execSync(command, { encoding: 'utf8' }); + } catch (_err) { + commandOut = ' '; + } + } + return commandOut; +}; + +/** + * A String constant containing the value `glibc`. + * @type {string} + * @public + */ +const GLIBC = 'glibc'; + +/** + * A Regexp constant to get the GLIBC Version. + * @type {string} + */ +const RE_GLIBC_VERSION = /LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i; + +/** + * A String constant containing the value `musl`. + * @type {string} + * @public + */ +const MUSL = 'musl'; + +const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-'); + +const familyFromReport = () => { + const report = getReport(); + if (report.header && report.header.glibcVersionRuntime) { + return GLIBC; + } + if (Array.isArray(report.sharedObjects)) { + if (report.sharedObjects.some(isFileMusl)) { + return MUSL; + } + } + return null; +}; + +const familyFromCommand = (out) => { + const [getconf, ldd1] = out.split(/[\r\n]+/); + if (getconf && getconf.includes(GLIBC)) { + return GLIBC; + } + if (ldd1 && ldd1.includes(MUSL)) { + return MUSL; + } + return null; +}; + +const familyFromInterpreterPath = (path) => { + if (path) { + if (path.includes('/ld-musl-')) { + return MUSL; + } else if (path.includes('/ld-linux-')) { + return GLIBC; + } + } + return null; +}; + +const getFamilyFromLddContent = (content) => { + content = content.toString(); + if (content.includes('musl')) { + return MUSL; + } + if (content.includes('GNU C Library')) { + return GLIBC; + } + return null; +}; + +const familyFromFilesystem = async () => { + if (cachedFamilyFilesystem !== undefined) { + return cachedFamilyFilesystem; + } + cachedFamilyFilesystem = null; + try { + const lddContent = await readFile(LDD_PATH); + cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); + } catch (e) {} + return cachedFamilyFilesystem; +}; + +const familyFromFilesystemSync = () => { + if (cachedFamilyFilesystem !== undefined) { + return cachedFamilyFilesystem; + } + cachedFamilyFilesystem = null; + try { + const lddContent = readFileSync(LDD_PATH); + cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); + } catch (e) {} + return cachedFamilyFilesystem; +}; + +const familyFromInterpreter = async () => { + if (cachedFamilyInterpreter !== undefined) { + return cachedFamilyInterpreter; + } + cachedFamilyInterpreter = null; + try { + const selfContent = await readFile(SELF_PATH); + const path = interpreterPath(selfContent); + cachedFamilyInterpreter = familyFromInterpreterPath(path); + } catch (e) {} + return cachedFamilyInterpreter; +}; + +const familyFromInterpreterSync = () => { + if (cachedFamilyInterpreter !== undefined) { + return cachedFamilyInterpreter; + } + cachedFamilyInterpreter = null; + try { + const selfContent = readFileSync(SELF_PATH); + const path = interpreterPath(selfContent); + cachedFamilyInterpreter = familyFromInterpreterPath(path); + } catch (e) {} + return cachedFamilyInterpreter; +}; + +/** + * Resolves with the libc family when it can be determined, `null` otherwise. + * @returns {Promise} + */ +const family = async () => { + let family = null; + if (isLinux()) { + family = await familyFromInterpreter(); + if (!family) { + family = await familyFromFilesystem(); + if (!family) { + family = familyFromReport(); + } + if (!family) { + const out = await safeCommand(); + family = familyFromCommand(out); + } + } + } + return family; +}; + +/** + * Returns the libc family when it can be determined, `null` otherwise. + * @returns {?string} + */ +const familySync = () => { + let family = null; + if (isLinux()) { + family = familyFromInterpreterSync(); + if (!family) { + family = familyFromFilesystemSync(); + if (!family) { + family = familyFromReport(); + } + if (!family) { + const out = safeCommandSync(); + family = familyFromCommand(out); + } + } + } + return family; +}; + +/** + * Resolves `true` only when the platform is Linux and the libc family is not `glibc`. + * @returns {Promise} + */ +const isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC; + +/** + * Returns `true` only when the platform is Linux and the libc family is not `glibc`. + * @returns {boolean} + */ +const isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC; + +const versionFromFilesystem = async () => { + if (cachedVersionFilesystem !== undefined) { + return cachedVersionFilesystem; + } + cachedVersionFilesystem = null; + try { + const lddContent = await readFile(LDD_PATH); + const versionMatch = lddContent.match(RE_GLIBC_VERSION); + if (versionMatch) { + cachedVersionFilesystem = versionMatch[1]; + } + } catch (e) {} + return cachedVersionFilesystem; +}; + +const versionFromFilesystemSync = () => { + if (cachedVersionFilesystem !== undefined) { + return cachedVersionFilesystem; + } + cachedVersionFilesystem = null; + try { + const lddContent = readFileSync(LDD_PATH); + const versionMatch = lddContent.match(RE_GLIBC_VERSION); + if (versionMatch) { + cachedVersionFilesystem = versionMatch[1]; + } + } catch (e) {} + return cachedVersionFilesystem; +}; + +const versionFromReport = () => { + const report = getReport(); + if (report.header && report.header.glibcVersionRuntime) { + return report.header.glibcVersionRuntime; + } + return null; +}; + +const versionSuffix = (s) => s.trim().split(/\s+/)[1]; + +const versionFromCommand = (out) => { + const [getconf, ldd1, ldd2] = out.split(/[\r\n]+/); + if (getconf && getconf.includes(GLIBC)) { + return versionSuffix(getconf); + } + if (ldd1 && ldd2 && ldd1.includes(MUSL)) { + return versionSuffix(ldd2); + } + return null; +}; + +/** + * Resolves with the libc version when it can be determined, `null` otherwise. + * @returns {Promise} + */ +const version = async () => { + let version = null; + if (isLinux()) { + version = await versionFromFilesystem(); + if (!version) { + version = versionFromReport(); + } + if (!version) { + const out = await safeCommand(); + version = versionFromCommand(out); + } + } + return version; +}; + +/** + * Returns the libc version when it can be determined, `null` otherwise. + * @returns {?string} + */ +const versionSync = () => { + let version = null; + if (isLinux()) { + version = versionFromFilesystemSync(); + if (!version) { + version = versionFromReport(); + } + if (!version) { + const out = safeCommandSync(); + version = versionFromCommand(out); + } + } + return version; +}; + +module.exports = { + GLIBC, + MUSL, + family, + familySync, + isNonGlibcLinux, + isNonGlibcLinuxSync, + version, + versionSync +}; diff --git a/apps/api/.output/node_modules/detect-libc/lib/elf.js b/apps/api/.output/node_modules/detect-libc/lib/elf.js new file mode 100644 index 0000000..aa166aa --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/lib/elf.js @@ -0,0 +1,39 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const interpreterPath = (elf) => { + if (elf.length < 64) { + return null; + } + if (elf.readUInt32BE(0) !== 0x7F454C46) { + // Unexpected magic bytes + return null; + } + if (elf.readUInt8(4) !== 2) { + // Not a 64-bit ELF + return null; + } + if (elf.readUInt8(5) !== 1) { + // Not little-endian + return null; + } + const offset = elf.readUInt32LE(32); + const size = elf.readUInt16LE(54); + const count = elf.readUInt16LE(56); + for (let i = 0; i < count; i++) { + const headerOffset = offset + (i * size); + const type = elf.readUInt32LE(headerOffset); + if (type === 3) { + const fileOffset = elf.readUInt32LE(headerOffset + 8); + const fileSize = elf.readUInt32LE(headerOffset + 32); + return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\0.*$/g, ''); + } + } + return null; +}; + +module.exports = { + interpreterPath +}; diff --git a/apps/api/.output/node_modules/detect-libc/lib/filesystem.js b/apps/api/.output/node_modules/detect-libc/lib/filesystem.js new file mode 100644 index 0000000..4c2443c --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/lib/filesystem.js @@ -0,0 +1,51 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const fs = require('fs'); + +const LDD_PATH = '/usr/bin/ldd'; +const SELF_PATH = '/proc/self/exe'; +const MAX_LENGTH = 2048; + +/** + * Read the content of a file synchronous + * + * @param {string} path + * @returns {Buffer} + */ +const readFileSync = (path) => { + const fd = fs.openSync(path, 'r'); + const buffer = Buffer.alloc(MAX_LENGTH); + const bytesRead = fs.readSync(fd, buffer, 0, MAX_LENGTH, 0); + fs.close(fd, () => {}); + return buffer.subarray(0, bytesRead); +}; + +/** + * Read the content of a file + * + * @param {string} path + * @returns {Promise} + */ +const readFile = (path) => new Promise((resolve, reject) => { + fs.open(path, 'r', (err, fd) => { + if (err) { + reject(err); + } else { + const buffer = Buffer.alloc(MAX_LENGTH); + fs.read(fd, buffer, 0, MAX_LENGTH, 0, (_, bytesRead) => { + resolve(buffer.subarray(0, bytesRead)); + fs.close(fd, () => {}); + }); + } + }); +}); + +module.exports = { + LDD_PATH, + SELF_PATH, + readFileSync, + readFile +}; diff --git a/apps/api/.output/node_modules/detect-libc/lib/process.js b/apps/api/.output/node_modules/detect-libc/lib/process.js new file mode 100644 index 0000000..ee78ad2 --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/lib/process.js @@ -0,0 +1,24 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const isLinux = () => process.platform === 'linux'; + +let report = null; +const getReport = () => { + if (!report) { + /* istanbul ignore next */ + if (isLinux() && process.report) { + const orig = process.report.excludeNetwork; + process.report.excludeNetwork = true; + report = process.report.getReport(); + process.report.excludeNetwork = orig; + } else { + report = {}; + } + } + return report; +}; + +module.exports = { isLinux, getReport }; diff --git a/apps/api/.output/node_modules/detect-libc/package.json b/apps/api/.output/node_modules/detect-libc/package.json new file mode 100644 index 0000000..36d0f2b --- /dev/null +++ b/apps/api/.output/node_modules/detect-libc/package.json @@ -0,0 +1,44 @@ +{ + "name": "detect-libc", + "version": "2.1.2", + "description": "Node.js module to detect the C standard library (libc) implementation family and version", + "main": "lib/detect-libc.js", + "files": [ + "lib/", + "index.d.ts" + ], + "scripts": { + "test": "semistandard && nyc --reporter=text --check-coverage --branches=100 ava test/unit.js", + "changelog": "conventional-changelog -i CHANGELOG.md -s", + "bench": "node benchmark/detect-libc", + "bench:calls": "node benchmark/call-familySync.js && sleep 1 && node benchmark/call-isNonGlibcLinuxSync.js && sleep 1 && node benchmark/call-versionSync.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/lovell/detect-libc.git" + }, + "keywords": [ + "libc", + "glibc", + "musl" + ], + "author": "Lovell Fuller ", + "contributors": [ + "Niklas Salmoukas ", + "Vinícius Lourenço " + ], + "license": "Apache-2.0", + "devDependencies": { + "ava": "^2.4.0", + "benchmark": "^2.1.4", + "conventional-changelog-cli": "^5.0.0", + "eslint-config-standard": "^13.0.1", + "nyc": "^15.1.0", + "proxyquire": "^2.1.3", + "semistandard": "^14.2.3" + }, + "engines": { + "node": ">=8" + }, + "types": "index.d.ts" +} diff --git a/apps/api/.output/node_modules/semver/LICENSE b/apps/api/.output/node_modules/semver/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/apps/api/.output/node_modules/semver/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/apps/api/.output/node_modules/semver/README.md b/apps/api/.output/node_modules/semver/README.md new file mode 100644 index 0000000..5e03abc --- /dev/null +++ b/apps/api/.output/node_modules/semver/README.md @@ -0,0 +1,680 @@ +semver(1) -- The semantic versioner for npm +=========================================== + +## Install + +```bash +npm install semver +```` + +## Usage + +As a node module: + +```js +const semver = require('semver') + +semver.valid('1.2.3') // '1.2.3' +semver.valid('a.b.c') // null +semver.clean(' =v1.2.3 ') // '1.2.3' +semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true +semver.gt('1.2.3', '9.8.7') // false +semver.lt('1.2.3', '9.8.7') // true +semver.minVersion('>=1.0.0') // '1.0.0' +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' +``` + +You can also just load the module for the function that you care about if +you'd like to minimize your footprint. + +```js +// load the whole API at once in a single object +const semver = require('semver') + +// or just load the bits you need +// all of them listed here, just pick and choose what you want + +// classes +const SemVer = require('semver/classes/semver') +const Comparator = require('semver/classes/comparator') +const Range = require('semver/classes/range') + +// functions for working with versions +const semverParse = require('semver/functions/parse') +const semverValid = require('semver/functions/valid') +const semverClean = require('semver/functions/clean') +const semverInc = require('semver/functions/inc') +const semverDiff = require('semver/functions/diff') +const semverMajor = require('semver/functions/major') +const semverMinor = require('semver/functions/minor') +const semverPatch = require('semver/functions/patch') +const semverPrerelease = require('semver/functions/prerelease') +const semverCompare = require('semver/functions/compare') +const semverRcompare = require('semver/functions/rcompare') +const semverCompareLoose = require('semver/functions/compare-loose') +const semverCompareBuild = require('semver/functions/compare-build') +const semverSort = require('semver/functions/sort') +const semverRsort = require('semver/functions/rsort') +const semverTruncate = require('semver/functions/truncate') + +// low-level comparators between versions +const semverGt = require('semver/functions/gt') +const semverLt = require('semver/functions/lt') +const semverEq = require('semver/functions/eq') +const semverNeq = require('semver/functions/neq') +const semverGte = require('semver/functions/gte') +const semverLte = require('semver/functions/lte') +const semverCmp = require('semver/functions/cmp') +const semverCoerce = require('semver/functions/coerce') + +// working with ranges +const semverSatisfies = require('semver/functions/satisfies') +const semverMaxSatisfying = require('semver/ranges/max-satisfying') +const semverMinSatisfying = require('semver/ranges/min-satisfying') +const semverToComparators = require('semver/ranges/to-comparators') +const semverMinVersion = require('semver/ranges/min-version') +const semverValidRange = require('semver/ranges/valid') +const semverOutside = require('semver/ranges/outside') +const semverGtr = require('semver/ranges/gtr') +const semverLtr = require('semver/ranges/ltr') +const semverIntersects = require('semver/ranges/intersects') +const semverSimplifyRange = require('semver/ranges/simplify') +const semverRangeSubset = require('semver/ranges/subset') +``` + +As a command-line utility: + +``` +$ semver -h + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-n <0|1|false> + Base number for prerelease identifier (default: 0). + Use false to omit the number altogether. + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them. +``` + +## Versions + +A "version" is described by the `v2.0.0` specification found at +. + +A leading `"="` or `"v"` character is stripped off and ignored. +Support for stripping a leading "v" is kept for compatibility with `v1.0.0` of the SemVer +specification but should not be used anymore. + +## Ranges + +A `version range` is a set of `comparators` that specify versions +that satisfy the range. + +A `comparator` is composed of an `operator` and a `version`. The set +of primitive `operators` is: + +* `<` Less than +* `<=` Less than or equal to +* `>` Greater than +* `>=` Greater than or equal to +* `=` Equal. If no operator is specified, then equality is assumed, + so this operator is optional but MAY be included. + +For example, the comparator `>=1.2.7` would match the versions +`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` +or `1.1.0`. The comparator `>1` is equivalent to `>=2.0.0` and +would match the versions `2.0.0` and `3.1.0`, but not the versions +`1.0.1` or `1.1.0`. + +Comparators can be joined by whitespace to form a `comparator set`, +which is satisfied by the **intersection** of all of the comparators +it includes. + +A range is composed of one or more comparator sets, joined by `||`. A +version matches a range if and only if every comparator in at least +one of the `||`-separated comparator sets is satisfied by the version. + +For example, the range `>=1.2.7 <1.3.0` would match the versions +`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, +or `1.1.0`. + +The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, +`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. + +### Prerelease Tags + +If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then +it will only be allowed to satisfy comparator sets if at least one +comparator with the same `[major, minor, patch]` tuple also has a +prerelease tag. + +For example, the range `>1.2.3-alpha.3` would be allowed to match the +version `1.2.3-alpha.7`, but it would *not* be satisfied by +`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater +than" `1.2.3-alpha.3` according to the SemVer sort rules. The version +range only accepts prerelease tags on the `1.2.3` version. +Version `3.4.5` *would* satisfy the range because it does not have a +prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. + +The purpose of this behavior is twofold. First, prerelease versions +frequently are updated very quickly, and contain many breaking changes +that are (by the author's design) not yet fit for public consumption. +Therefore, by default, they are excluded from range-matching +semantics. + +Second, a user who has opted into using a prerelease version has +indicated the intent to use *that specific* set of +alpha/beta/rc versions. By including a prerelease tag in the range, +the user is indicating that they are aware of the risk. However, it +is still not appropriate to assume that they have opted into taking a +similar risk on the *next* set of prerelease versions. + +Note that this behavior can be suppressed (treating all prerelease +versions as if they were normal versions, for range-matching) +by setting the `includePrerelease` flag on the options +object to any +[functions](https://github.com/npm/node-semver#functions) that do +range matching. + +#### Prerelease Identifiers + +The method `.inc` takes an additional `identifier` string argument that +will append the value of the string as a prerelease identifier: + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta') +// '1.2.4-beta.0' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta +1.2.4-beta.0 +``` + +Which then can be used to increment further: + +```bash +$ semver 1.2.4-beta.0 -i prerelease +1.2.4-beta.1 +``` + +To get out of the prerelease phase, use the `release` option: + +```bash +$ semver 1.2.4-beta.1 -i release +1.2.4 +``` + +#### Prerelease Identifier Base + +The method `.inc` takes an optional parameter 'identifierBase' string +that will let you let your prerelease number as zero-based or one-based. +Set to `false` to omit the prerelease number altogether. +If you do not specify this parameter, it will default to zero-based. + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', '1') +// '1.2.4-beta.1' +``` + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', false) +// '1.2.4-beta' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n 1 +1.2.4-beta.1 +``` + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n false +1.2.4-beta +``` + +### Advanced Range Syntax + +Advanced range syntax desugars to primitive comparators in +deterministic ways. + +Advanced ranges may be combined in the same way as primitive +comparators using white space or `||`. + +#### Hyphen Ranges `X.Y.Z - A.B.C` + +Specifies an inclusive set. + +* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` + +If a partial version is provided as the first version in the inclusive +range, then the missing pieces are replaced with zeroes. + +* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` + +If a partial version is provided as the second version in the +inclusive range, then all versions that start with the supplied parts +of the tuple are accepted, but nothing that would be greater than the +provided tuple parts. + +* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0-0` +* `1.2.3 - 2` := `>=1.2.3 <3.0.0-0` + +#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` + +Any of `X`, `x`, or `*` may be used to "stand in" for one of the +numeric values in the `[major, minor, patch]` tuple. + +* `*` := `>=0.0.0` (Any non-prerelease version satisfies, unless + `includePrerelease` is specified, in which case any version at all + satisfies) +* `1.x` := `>=1.0.0 <2.0.0-0` (Matching major version) +* `1.2.x` := `>=1.2.0 <1.3.0-0` (Matching major and minor versions) + +A partial version range is treated as an X-Range, so the special +character is in fact optional. + +* `""` (empty string) := `*` := `>=0.0.0` +* `1` := `1.x.x` := `>=1.0.0 <2.0.0-0` +* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0-0` + +#### Tilde Ranges `~1.2.3` `~1.2` `~1` + +Allows patch-level changes if a minor version is specified on the +comparator. Allows minor-level changes if not. + +* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0-0` +* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0-0` (Same as `1.2.x`) +* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0-0` (Same as `1.x`) +* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0-0` +* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0-0` (Same as `0.2.x`) +* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0-0` (Same as `0.x`) +* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. + +#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` + +Allows changes that do not modify the left-most non-zero element in the +`[major, minor, patch]` tuple. In other words, this allows patch and +minor updates for versions `1.0.0` and above, patch updates for +versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. + +Many authors treat a `0.x` version as if the `x` were the major +"breaking-change" indicator. + +Caret ranges are ideal when an author may make breaking changes +between `0.2.4` and `0.3.0` releases, which is a common practice. +However, it presumes that there will *not* be breaking changes between +`0.2.4` and `0.2.5`. It allows for changes that are presumed to be +additive (but non-breaking), according to commonly observed practices. + +* `^1.2.3` := `>=1.2.3 <2.0.0-0` +* `^0.2.3` := `>=0.2.3 <0.3.0-0` +* `^0.0.3` := `>=0.0.3 <0.0.4-0` +* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. +* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4-0` Note that prereleases in the + `0.0.3` version *only* will be allowed, if they are greater than or + equal to `beta`. So, `0.0.3-pr.2` would be allowed. + +When parsing caret ranges, a missing `patch` value desugars to the +number `0`, but will allow flexibility within that value, even if the +major and minor versions are both `0`. + +* `^1.2.x` := `>=1.2.0 <2.0.0-0` +* `^0.0.x` := `>=0.0.0 <0.1.0-0` +* `^0.0` := `>=0.0.0 <0.1.0-0` + +A missing `minor` and `patch` values will desugar to zero, but also +allow flexibility within those values, even if the major version is +zero. + +* `^1.x` := `>=1.0.0 <2.0.0-0` +* `^0.x` := `>=0.0.0 <1.0.0-0` + +### Range Grammar + +Putting all this together, here is a Backus-Naur grammar for ranges, +for the benefit of parser authors: + +```bnf +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= prepart ( '.' prepart ) * +prepart ::= nr | alphanumid +build ::= buildid ( '.' buildid ) * +alphanumid ::= ( ['0'-'9'] ) * [-A-Za-z] [-0-9A-Za-z] * +buildid ::= [-0-9A-Za-z]+ +``` + +Note: Prerelease identifiers (`pre`) use `nr` for numeric parts, which +disallows leading zeros (e.g., `1.2.3-00` is invalid). Build metadata +identifiers (`build`) allow any alphanumeric string including leading +zeros (e.g., `1.2.3+00` is valid). This matches the +[SemVer 2.0.0 specification](https://semver.org/#spec-item-9). + +## Functions + +All methods and classes take a final `options` object argument. All +options in this object are `false` by default. The options supported +are: + +- `loose`: Be more forgiving about not-quite-valid semver strings. + (Any resulting output will always be 100% strict compliant, of + course.) For backwards compatibility reasons, if the `options` + argument is a boolean value instead of an object, it is interpreted + to be the `loose` param. +- `includePrerelease`: Set to suppress the [default + behavior](https://github.com/npm/node-semver#prerelease-tags) of + excluding prerelease tagged versions from ranges unless they are + explicitly opted into. + +Strict-mode Comparators and Ranges will be strict about the SemVer +strings that they parse. + +* `valid(v)`: Return the parsed version, or null if it's not valid. +* `inc(v, releaseType, options, identifier, identifierBase)`: + Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, + `prepatch`, `prerelease`, or `release`), or null if it's not valid + * `premajor` in one call will bump the version up to the next major + version and down to a prerelease of that major version. + `preminor`, and `prepatch` work the same way. + * If called from a non-prerelease version, `prerelease` will work the + same as `prepatch`. It increments the patch version and then makes a + prerelease. If the input version is already a prerelease it simply + increments it. + * `release` will remove any prerelease part of the version. + * `identifier` can be used to prefix `premajor`, `preminor`, + `prepatch`, or `prerelease` version increments. `identifierBase` + is the base to be used for the `prerelease` identifier. +* `prerelease(v)`: Returns an array of prerelease components, or null + if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` +* `major(v)`: Return the major version number. +* `minor(v)`: Return the minor version number. +* `patch(v)`: Return the patch version number. +* `intersects(r1, r2, loose)`: Return true if the two supplied ranges + or comparators intersect. +* `parse(v)`: Attempt to parse a string as a semantic version, returning either + a `SemVer` object or `null`. +* `truncate(v, releaseType)`: Return the version with components _lower_ + than `releaseType` dropped off, e.g.: + * `major` removes build & prerelease info and sets minor & patch to 0. + * `minor` removes build & prerelease info, and sets patch to 0 + * `patch` removes build & prerelease info + * All prerelease types remove build info only + +### Comparison + +* `gt(v1, v2)`: `v1 > v2` +* `gte(v1, v2)`: `v1 >= v2` +* `lt(v1, v2)`: `v1 < v2` +* `lte(v1, v2)`: `v1 <= v2` +* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, + even if they're not the same string. You already know how to + compare strings. +* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. +* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call + the corresponding function above. `"==="` and `"!=="` do simple + string comparison, but are included for completeness. Throws if an + invalid comparison string is provided. +* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `rcompare(v1, v2)`: The reverse of `compare`. Sorts an array of versions + in descending order when passed to `Array.sort()`. +* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions + are equal. Sorts in ascending order if passed to `Array.sort()`. +* `compareLoose(v1, v2)`: Short for `compare(v1, v2, { loose: true })`. +* `diff(v1, v2)`: Returns the difference between two versions by the release type + (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), + or null if the versions are the same. + +### Sorting + +* `sort(versions)`: Returns a sorted array of versions based on the `compareBuild` + function. +* `rsort(versions)`: The reverse of `sort`. Returns an array of versions based on + the `compareBuild` function in descending order. + +### Comparators + +* `intersects(comparator)`: Return true if the comparators intersect + +### Ranges + +* `validRange(range)`: Return the valid range or null if it's not valid. +* `satisfies(version, range)`: Return true if the version satisfies the + range. +* `maxSatisfying(versions, range)`: Return the highest version in the list + that satisfies the range, or `null` if none of them do. +* `minSatisfying(versions, range)`: Return the lowest version in the list + that satisfies the range, or `null` if none of them do. +* `minVersion(range)`: Return the lowest version that can match + the given range. +* `gtr(version, range)`: Return `true` if the version is greater than all the + versions possible in the range. +* `ltr(version, range)`: Return `true` if the version is less than all the + versions possible in the range. +* `outside(version, range, hilo)`: Return true if the version is outside + the bounds of the range in either the high or low direction. The + `hilo` argument must be either the string `'>'` or `'<'`. (This is + the function called by `gtr` and `ltr`.) +* `intersects(range)`: Return true if any of the range comparators intersect. +* `simplifyRange(versions, range)`: Return a "simplified" range that + matches the same items in the `versions` list as the range specified. Note + that it does *not* guarantee that it would match the same versions in all + cases, only for the set of versions provided. This is useful when + generating ranges by joining together multiple versions with `||` + programmatically, to provide the user with something a bit more + ergonomic. If the provided range is shorter in string-length than the + generated range, then that is returned. +* `subset(subRange, superRange)`: Return `true` if the `subRange` range is + entirely contained by the `superRange` range. + +Note that, since ranges may be non-contiguous, a version might not be +greater than a range, less than a range, *or* satisfy a range! For +example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` +until `2.0.0`, so version `1.2.10` would not be greater than the +range (because `2.0.1` satisfies, which is higher), nor less than the +range (since `1.2.8` satisfies, which is lower), and it also does not +satisfy the range. + +If you want to know if a version satisfies or does not satisfy a +range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version, options)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). + +If the `options.rtl` flag is set, then `coerce` will return the right-most +coercible tuple that does not share an ending index with a longer coercible +tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not +`4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of +any other overlapping SemVer tuple. + +If the `options.includePrerelease` flag is set, then the `coerce` result will contain +prerelease and build parts of a version. For example, `1.2.3.4-rc.1+rev.2` +will preserve prerelease `rc.1` and build `rev.2` in the result. + +### Clean + +* `clean(version)`: Clean a string to be a valid semver if possible + +This will return a cleaned and trimmed semver version. If the provided +version is not valid a null will be returned. This does not work for +ranges. + +ex. +* `s.clean(' = v 2.1.5foo')`: `null` +* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean(' = v 2.1.5-foo')`: `null` +* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean('=v2.1.5')`: `'2.1.5'` +* `s.clean(' =v2.1.5')`: `'2.1.5'` +* `s.clean(' 2.1.5 ')`: `'2.1.5'` +* `s.clean('~1.0.0')`: `null` + +## Constants + +As a convenience, helper constants are exported to provide information about what `node-semver` supports: + +### `RELEASE_TYPES` + +- major +- premajor +- minor +- preminor +- patch +- prepatch +- prerelease + +``` +const semver = require('semver'); + +if (semver.RELEASE_TYPES.includes(arbitraryUserInput)) { + console.log('This is a valid release type!'); +} else { + console.warn('This is NOT a valid release type!'); +} +``` + +### `SEMVER_SPEC_VERSION` + +2.0.0 + +``` +const semver = require('semver'); + +console.log('We are currently using the semver specification version:', semver.SEMVER_SPEC_VERSION); +``` + +## Exported Modules + + + +You may pull in just the part of this semver utility that you need if you +are sensitive to packing and tree-shaking concerns. The main +`require('semver')` export uses getter functions to lazily load the parts +of the API that are used. + +The following modules are available: + +* `require('semver')` +* `require('semver/classes')` +* `require('semver/classes/comparator')` +* `require('semver/classes/range')` +* `require('semver/classes/semver')` +* `require('semver/functions/clean')` +* `require('semver/functions/cmp')` +* `require('semver/functions/coerce')` +* `require('semver/functions/compare')` +* `require('semver/functions/compare-build')` +* `require('semver/functions/compare-loose')` +* `require('semver/functions/diff')` +* `require('semver/functions/eq')` +* `require('semver/functions/gt')` +* `require('semver/functions/gte')` +* `require('semver/functions/inc')` +* `require('semver/functions/lt')` +* `require('semver/functions/lte')` +* `require('semver/functions/major')` +* `require('semver/functions/minor')` +* `require('semver/functions/neq')` +* `require('semver/functions/parse')` +* `require('semver/functions/patch')` +* `require('semver/functions/prerelease')` +* `require('semver/functions/rcompare')` +* `require('semver/functions/rsort')` +* `require('semver/functions/satisfies')` +* `require('semver/functions/sort')` +* `require('semver/functions/truncate')` +* `require('semver/functions/valid')` +* `require('semver/ranges/gtr')` +* `require('semver/ranges/intersects')` +* `require('semver/ranges/ltr')` +* `require('semver/ranges/max-satisfying')` +* `require('semver/ranges/min-satisfying')` +* `require('semver/ranges/min-version')` +* `require('semver/ranges/outside')` +* `require('semver/ranges/simplify')` +* `require('semver/ranges/subset')` +* `require('semver/ranges/to-comparators')` +* `require('semver/ranges/valid')` + diff --git a/apps/api/.output/node_modules/semver/bin/semver.js b/apps/api/.output/node_modules/semver/bin/semver.js new file mode 100644 index 0000000..9ae8aad --- /dev/null +++ b/apps/api/.output/node_modules/semver/bin/semver.js @@ -0,0 +1,195 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +'use strict' + +const argv = process.argv.slice(2) + +let versions = [] + +const range = [] + +let inc = null + +const version = require('../package.json').version + +let loose = false + +let includePrerelease = false + +let coerce = false + +let rtl = false + +let identifier + +let identifierBase + +const semver = require('../') +const parseOptions = require('../internal/parse-options') + +let reverse = false + +let options = {} + +const main = () => { + if (!argv.length) { + return help() + } + while (argv.length) { + let a = argv.shift() + const indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + const value = a.slice(indexOfEqualSign + 1) + a = a.slice(0, indexOfEqualSign) + argv.unshift(value) + } + + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + if (semver.RELEASE_TYPES.includes(argv[0]) || (argv[0] === 'release')) { + inc = { value: argv.shift(), maybeErrantValue: null, option: a } + } else { + inc = { value: 'patch', maybeErrantValue: argv[0], option: a } + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-n': + identifierBase = argv.shift() + if (identifierBase === 'false') { + identifierBase = false + } + break + case '-c': case '--coerce': + coerce = true + break + case '--rtl': + rtl = true + break + case '--ltr': + rtl = false + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + options = parseOptions({ loose, includePrerelease, rtl }) + + if ( + inc && + versions.includes(inc.maybeErrantValue) && + !semver.valid(inc.maybeErrantValue, options) + ) { + console.warn(`Invalid value for ${inc.option}; defaulting to 'patch'. This may become a failure in future major versions.`) + } + + versions = versions.map((v) => { + return coerce ? (semver.coerce(v, options) || { version: v }).version : v + }).filter((v) => { + return semver.valid(v, options) + }) + if (!versions.length) { + return fail() + } + if (inc && (versions.length !== 1 || range.length)) { + return failInc() + } + + for (let i = 0, l = range.length; i < l; i++) { + versions = versions.filter((v) => { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) { + return fail() + } + } + versions + .sort((a, b) => semver[reverse ? 'rcompare' : 'compare'](a, b, options)) + .map(v => semver.clean(v, options)) + .map(v => inc ? semver.inc(v, inc.value, options, identifier, identifierBase) : v) + .forEach(v => console.log(v)) +} + +const failInc = () => { + console.error('--inc can only be used on a single version with no range') + fail() +} + +const fail = () => process.exit(1) + +const help = () => console.log( +`SemVer ${version} + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +-n + Base number to be used for the prerelease identifier. + Can be either 0 or 1, or false to omit the number altogether. + Defaults to 0. + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them.`) + +main() diff --git a/apps/api/.output/node_modules/semver/classes/comparator.js b/apps/api/.output/node_modules/semver/classes/comparator.js new file mode 100644 index 0000000..647c1f0 --- /dev/null +++ b/apps/api/.output/node_modules/semver/classes/comparator.js @@ -0,0 +1,143 @@ +'use strict' + +const ANY = Symbol('SemVer ANY') +// hoisted class for cyclic dependency +class Comparator { + static get ANY () { + return ANY + } + + constructor (comp, options) { + options = parseOptions(options) + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + comp = comp.trim().split(/\s+/).join(' ') + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) + } + + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + const m = comp.match(r) + + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } + } + + toString () { + return this.value + } + + test (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + + options = parseOptions(options) + + // Special cases where nothing can possibly be lower + if (options.includePrerelease && + (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) { + return false + } + if (!options.includePrerelease && + (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) { + return false + } + + // Same direction increasing (> or >=) + if (this.operator.startsWith('>') && comp.operator.startsWith('>')) { + return true + } + // Same direction decreasing (< or <=) + if (this.operator.startsWith('<') && comp.operator.startsWith('<')) { + return true + } + // same SemVer and both sides are inclusive (<= or >=) + if ( + (this.semver.version === comp.semver.version) && + this.operator.includes('=') && comp.operator.includes('=')) { + return true + } + // opposite directions less than + if (cmp(this.semver, '<', comp.semver, options) && + this.operator.startsWith('>') && comp.operator.startsWith('<')) { + return true + } + // opposite directions greater than + if (cmp(this.semver, '>', comp.semver, options) && + this.operator.startsWith('<') && comp.operator.startsWith('>')) { + return true + } + return false + } +} + +module.exports = Comparator + +const parseOptions = require('../internal/parse-options') +const { safeRe: re, t } = require('../internal/re') +const cmp = require('../functions/cmp') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const Range = require('./range') diff --git a/apps/api/.output/node_modules/semver/classes/index.js b/apps/api/.output/node_modules/semver/classes/index.js new file mode 100644 index 0000000..91c24ec --- /dev/null +++ b/apps/api/.output/node_modules/semver/classes/index.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = { + SemVer: require('./semver.js'), + Range: require('./range.js'), + Comparator: require('./comparator.js'), +} diff --git a/apps/api/.output/node_modules/semver/classes/range.js b/apps/api/.output/node_modules/semver/classes/range.js new file mode 100644 index 0000000..a7d6556 --- /dev/null +++ b/apps/api/.output/node_modules/semver/classes/range.js @@ -0,0 +1,577 @@ +'use strict' + +const SPACE_CHARACTERS = /\s+/g + +// hoisted class for cyclic dependency +class Range { + constructor (range, options) { + options = parseOptions(options) + + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value + this.set = [[range]] + this.formatted = undefined + return this + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range.trim().replace(SPACE_CHARACTERS, ' ') + + // First, split on || + this.set = this.raw + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length) + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`) + } + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0] + this.set = this.set.filter(c => !isNullSet(c[0])) + if (this.set.length === 0) { + this.set = [first] + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c] + break + } + } + } + } + + this.formatted = undefined + } + + get range () { + if (this.formatted === undefined) { + this.formatted = '' + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += '||' + } + const comps = this.set[i] + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += ' ' + } + this.formatted += comps[k].toString().trim() + } + } + } + return this.formatted + } + + format () { + return this.range + } + + toString () { + return this.range + } + + parseRange (range) { + // strip build metadata so it can't bleed into the version + range = range.replace(BUILDSTRIPRE, '') + + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = + (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | + (this.options.loose && FLAG_LOOSE) + const memoKey = memoOpts + ':' + range + const cached = cache.get(memoKey) + if (cached) { + return cached + } + + const loose = this.options.loose + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) + debug('hyphen replace', range) + + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + debug('tilde trim', range) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) + debug('caret trim', range) + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)) + + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options) + return !!comp.match(re[t.COMPARATORLOOSE]) + }) + } + debug('range list', rangeList) + + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map() + const comparators = rangeList.map(comp => new Comparator(comp, this.options)) + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp) + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete('') + } + + const result = [...rangeMap.values()] + cache.set(memoKey, result) + return result + } + + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } +} + +module.exports = Range + +const LRU = require('../internal/lrucache') +const cache = new LRU() + +const parseOptions = require('../internal/parse-options') +const Comparator = require('./comparator') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const { + safeRe: re, + src, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, +} = require('../internal/re') +const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants') + +// unbounded global build-metadata stripper used by parseRange +const BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g') + +const isNullSet = c => c.value === '<0.0.0-0' +const isAny = c => c.value === '' + +// take a set of comparators and determine whether there +// exists a version which can satisfy it +const isSatisfiable = (comparators, options) => { + let result = true + const remainingComparators = comparators.slice() + let testComparator = remainingComparators.pop() + + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }) + + testComparator = remainingComparators.pop() + } + + return result +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +const parseComparator = (comp, options) => { + comp = comp.replace(re[t.BUILD], '') + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +const isX = id => !id || id.toLowerCase() === 'x' || id === '*' + +const invalidXRangeOrder = (M, m, p) => ( + (isX(M) && !isX(m)) || + (isX(m) && p && !isX(p)) +) + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 +// ~0.0.1 --> >=0.0.1 <0.1.0-0 +const replaceTildes = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceTilde(c, options)) + .join(' ') +} + +const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + // if we're including prereleases in the match, then the lower bound is + // -0, the lowest possible prerelease value, just like x-ranges and carets. + // this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as. + const z = options.includePrerelease ? '-0' : '' + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` + } else if (pr) { + debug('replaceTilde pr', pr) + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 +// ^1.2.3 --> >=1.2.3 <2.0.0-0 +// ^1.2.0 --> >=1.2.0 <2.0.0-0 +// ^0.0.1 --> >=0.0.1 <0.0.2-0 +// ^0.1.0 --> >=0.1.0 <0.2.0-0 +const replaceCarets = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceCaret(c, options)) + .join(' ') +} + +const replaceCaret = (comp, options) => { + debug('caret', comp, options) + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + const z = options.includePrerelease ? '-0' : '' + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0` + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0` + } + } + + debug('caret return', ret) + return ret + }) +} + +const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options) + return comp + .split(/\s+/) + .map((c) => replaceXRange(c, options)) + .join(' ') +} + +const replaceXRange = (comp, options) => { + comp = comp.trim() + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + if (invalidXRangeOrder(M, m, p)) { + return comp + } + + const xM = isX(M) + const xm = xM || isX(m) + const xp = xm || isX(p) + const anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + if (gtlt === '<') { + pr = '-0' + } + + ret = `${gtlt + M}.${m}.${p}${pr}` + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0` + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +const replaceStars = (comp, options) => { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp + .trim() + .replace(re[t.STAR], '') +} + +const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options) + return comp + .trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0-0 +// TODO build? +const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}` + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}` + } else if (fpr) { + from = `>=${from}` + } else { + from = `>=${from}${incPr ? '-0' : ''}` + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0` + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0` + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}` + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0` + } else { + to = `<=${to}` + } + + return `${from} ${to}`.trim() +} + +const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} diff --git a/apps/api/.output/node_modules/semver/classes/semver.js b/apps/api/.output/node_modules/semver/classes/semver.js new file mode 100644 index 0000000..5438127 --- /dev/null +++ b/apps/api/.output/node_modules/semver/classes/semver.js @@ -0,0 +1,350 @@ +'use strict' + +const debug = require('../internal/debug') +const { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants') +const { safeRe: re, t } = require('../internal/re') + +const parseOptions = require('../internal/parse-options') +const { compareIdentifiers } = require('../internal/identifiers') + +const isPrereleaseIdentifier = (prerelease, identifier) => { + const identifiers = identifier.split('.') + if (identifiers.length > prerelease.length) { + return false + } + + for (let i = 0; i < identifiers.length; i++) { + if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) { + return false + } + } + + return true +} + +class SemVer { + constructor (version, options) { + options = parseOptions(options) + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease + + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() + } + + format () { + this.version = `${this.major}.${this.minor}.${this.patch}` + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}` + } + return this.version + } + + toString () { + return this.version + } + + compare (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options) + } + + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) + } + + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + if (this.major < other.major) { + return -1 + } + if (this.major > other.major) { + return 1 + } + if (this.minor < other.minor) { + return -1 + } + if (this.minor > other.minor) { + return 1 + } + if (this.patch < other.patch) { + return -1 + } + if (this.patch > other.patch) { + return 1 + } + return 0 + } + + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0 + do { + const a = this.prerelease[i] + const b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + let i = 0 + do { + const a = this.build[i] + const b = other.build[i] + debug('build compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier, identifierBase) { + if (release.startsWith('pre')) { + if (!identifier && identifierBase === false) { + throw new Error('invalid increment argument: identifier is empty') + } + // Avoid an invalid semver results + if (identifier) { + const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]) + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`) + } + } + } + + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier, identifierBase) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier, identifierBase) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier, identifierBase) + this.inc('pre', identifier, identifierBase) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier, identifierBase) + } + this.inc('pre', identifier, identifierBase) + break + case 'release': + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`) + } + this.prerelease.length = 0 + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': { + const base = Number(identifierBase) ? 1 : 0 + + if (this.prerelease.length === 0) { + this.prerelease = [base] + } else { + let i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + if (identifier === this.prerelease.join('.') && identifierBase === false) { + throw new Error('invalid increment argument: identifier already exists') + } + this.prerelease.push(base) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + let prerelease = [identifier, base] + if (identifierBase === false) { + prerelease = [identifier] + } + if (isPrereleaseIdentifier(this.prerelease, identifier)) { + const prereleaseBase = this.prerelease[identifier.split('.').length] + if (isNaN(prereleaseBase)) { + this.prerelease = prerelease + } + } else { + this.prerelease = prerelease + } + } + break + } + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.raw = this.format() + if (this.build.length) { + this.raw += `+${this.build.join('.')}` + } + return this + } +} + +module.exports = SemVer diff --git a/apps/api/.output/node_modules/semver/functions/clean.js b/apps/api/.output/node_modules/semver/functions/clean.js new file mode 100644 index 0000000..79703d6 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/clean.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const clean = (version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} +module.exports = clean diff --git a/apps/api/.output/node_modules/semver/functions/cmp.js b/apps/api/.output/node_modules/semver/functions/cmp.js new file mode 100644 index 0000000..77487dc --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/cmp.js @@ -0,0 +1,54 @@ +'use strict' + +const eq = require('./eq') +const neq = require('./neq') +const gt = require('./gt') +const gte = require('./gte') +const lt = require('./lt') +const lte = require('./lte') + +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } +} +module.exports = cmp diff --git a/apps/api/.output/node_modules/semver/functions/coerce.js b/apps/api/.output/node_modules/semver/functions/coerce.js new file mode 100644 index 0000000..cfe0275 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/coerce.js @@ -0,0 +1,62 @@ +'use strict' + +const SemVer = require('../classes/semver') +const parse = require('./parse') +const { safeRe: re, t } = require('../internal/re') + +const coerce = (version, options) => { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + let match = null + if (!options.rtl) { + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL] + let next + while ((next = coerceRtlRegex.exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + coerceRtlRegex.lastIndex = -1 + } + + if (match === null) { + return null + } + + const major = match[2] + const minor = match[3] || '0' + const patch = match[4] || '0' + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '' + const build = options.includePrerelease && match[6] ? `+${match[6]}` : '' + + return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options) +} +module.exports = coerce diff --git a/apps/api/.output/node_modules/semver/functions/compare-build.js b/apps/api/.output/node_modules/semver/functions/compare-build.js new file mode 100644 index 0000000..99157cf --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/compare-build.js @@ -0,0 +1,9 @@ +'use strict' + +const SemVer = require('../classes/semver') +const compareBuild = (a, b, loose) => { + const versionA = new SemVer(a, loose) + const versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) +} +module.exports = compareBuild diff --git a/apps/api/.output/node_modules/semver/functions/compare-loose.js b/apps/api/.output/node_modules/semver/functions/compare-loose.js new file mode 100644 index 0000000..7531634 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/compare-loose.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const compareLoose = (a, b) => compare(a, b, true) +module.exports = compareLoose diff --git a/apps/api/.output/node_modules/semver/functions/compare.js b/apps/api/.output/node_modules/semver/functions/compare.js new file mode 100644 index 0000000..63d8090 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/compare.js @@ -0,0 +1,7 @@ +'use strict' + +const SemVer = require('../classes/semver') +const compare = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)) + +module.exports = compare diff --git a/apps/api/.output/node_modules/semver/functions/diff.js b/apps/api/.output/node_modules/semver/functions/diff.js new file mode 100644 index 0000000..c99ab51 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/diff.js @@ -0,0 +1,60 @@ +'use strict' + +const parse = require('./parse.js') + +const diff = (version1, version2) => { + const v1 = parse(version1, null, true) + const v2 = parse(version2, null, true) + const comparison = v1.compare(v2) + + if (comparison === 0) { + return null + } + + const v1Higher = comparison > 0 + const highVersion = v1Higher ? v1 : v2 + const lowVersion = v1Higher ? v2 : v1 + const highHasPre = !!highVersion.prerelease.length + const lowHasPre = !!lowVersion.prerelease.length + + if (lowHasPre && !highHasPre) { + // Going from prerelease -> no prerelease requires some special casing + + // If the low version has only a major, then it will always be a major + // Some examples: + // 1.0.0-1 -> 1.0.0 + // 1.0.0-1 -> 1.1.1 + // 1.0.0-1 -> 2.0.0 + if (!lowVersion.patch && !lowVersion.minor) { + return 'major' + } + + // If the main part has no difference + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return 'minor' + } + return 'patch' + } + } + + // add the `pre` prefix if we are going to a prerelease version + const prefix = highHasPre ? 'pre' : '' + + if (v1.major !== v2.major) { + return prefix + 'major' + } + + if (v1.minor !== v2.minor) { + return prefix + 'minor' + } + + if (v1.patch !== v2.patch) { + return prefix + 'patch' + } + + // high and low are prereleases + return 'prerelease' +} + +module.exports = diff diff --git a/apps/api/.output/node_modules/semver/functions/eq.js b/apps/api/.output/node_modules/semver/functions/eq.js new file mode 100644 index 0000000..5f0eead --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/eq.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const eq = (a, b, loose) => compare(a, b, loose) === 0 +module.exports = eq diff --git a/apps/api/.output/node_modules/semver/functions/gt.js b/apps/api/.output/node_modules/semver/functions/gt.js new file mode 100644 index 0000000..84a57dd --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/gt.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const gt = (a, b, loose) => compare(a, b, loose) > 0 +module.exports = gt diff --git a/apps/api/.output/node_modules/semver/functions/gte.js b/apps/api/.output/node_modules/semver/functions/gte.js new file mode 100644 index 0000000..7c52bdf --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/gte.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const gte = (a, b, loose) => compare(a, b, loose) >= 0 +module.exports = gte diff --git a/apps/api/.output/node_modules/semver/functions/inc.js b/apps/api/.output/node_modules/semver/functions/inc.js new file mode 100644 index 0000000..ff999e9 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/inc.js @@ -0,0 +1,21 @@ +'use strict' + +const SemVer = require('../classes/semver') + +const inc = (version, release, options, identifier, identifierBase) => { + if (typeof (options) === 'string') { + identifierBase = identifier + identifier = options + options = undefined + } + + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier, identifierBase).version + } catch (er) { + return null + } +} +module.exports = inc diff --git a/apps/api/.output/node_modules/semver/functions/lt.js b/apps/api/.output/node_modules/semver/functions/lt.js new file mode 100644 index 0000000..2fb32a0 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/lt.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const lt = (a, b, loose) => compare(a, b, loose) < 0 +module.exports = lt diff --git a/apps/api/.output/node_modules/semver/functions/lte.js b/apps/api/.output/node_modules/semver/functions/lte.js new file mode 100644 index 0000000..da9ee8f --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/lte.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const lte = (a, b, loose) => compare(a, b, loose) <= 0 +module.exports = lte diff --git a/apps/api/.output/node_modules/semver/functions/major.js b/apps/api/.output/node_modules/semver/functions/major.js new file mode 100644 index 0000000..e6d08dc --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/major.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const major = (a, loose) => new SemVer(a, loose).major +module.exports = major diff --git a/apps/api/.output/node_modules/semver/functions/minor.js b/apps/api/.output/node_modules/semver/functions/minor.js new file mode 100644 index 0000000..9e70ffd --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/minor.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const minor = (a, loose) => new SemVer(a, loose).minor +module.exports = minor diff --git a/apps/api/.output/node_modules/semver/functions/neq.js b/apps/api/.output/node_modules/semver/functions/neq.js new file mode 100644 index 0000000..84326b7 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/neq.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const neq = (a, b, loose) => compare(a, b, loose) !== 0 +module.exports = neq diff --git a/apps/api/.output/node_modules/semver/functions/parse.js b/apps/api/.output/node_modules/semver/functions/parse.js new file mode 100644 index 0000000..d544d33 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/parse.js @@ -0,0 +1,18 @@ +'use strict' + +const SemVer = require('../classes/semver') +const parse = (version, options, throwErrors = false) => { + if (version instanceof SemVer) { + return version + } + try { + return new SemVer(version, options) + } catch (er) { + if (!throwErrors) { + return null + } + throw er + } +} + +module.exports = parse diff --git a/apps/api/.output/node_modules/semver/functions/patch.js b/apps/api/.output/node_modules/semver/functions/patch.js new file mode 100644 index 0000000..7675162 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/patch.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const patch = (a, loose) => new SemVer(a, loose).patch +module.exports = patch diff --git a/apps/api/.output/node_modules/semver/functions/prerelease.js b/apps/api/.output/node_modules/semver/functions/prerelease.js new file mode 100644 index 0000000..b8fe1db --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/prerelease.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const prerelease = (version, options) => { + const parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} +module.exports = prerelease diff --git a/apps/api/.output/node_modules/semver/functions/rcompare.js b/apps/api/.output/node_modules/semver/functions/rcompare.js new file mode 100644 index 0000000..8e1c222 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/rcompare.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const rcompare = (a, b, loose) => compare(b, a, loose) +module.exports = rcompare diff --git a/apps/api/.output/node_modules/semver/functions/rsort.js b/apps/api/.output/node_modules/semver/functions/rsort.js new file mode 100644 index 0000000..5d3d200 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/rsort.js @@ -0,0 +1,5 @@ +'use strict' + +const compareBuild = require('./compare-build') +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) +module.exports = rsort diff --git a/apps/api/.output/node_modules/semver/functions/satisfies.js b/apps/api/.output/node_modules/semver/functions/satisfies.js new file mode 100644 index 0000000..a0264a2 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/satisfies.js @@ -0,0 +1,12 @@ +'use strict' + +const Range = require('../classes/range') +const satisfies = (version, range, options) => { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} +module.exports = satisfies diff --git a/apps/api/.output/node_modules/semver/functions/sort.js b/apps/api/.output/node_modules/semver/functions/sort.js new file mode 100644 index 0000000..edb24b1 --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/sort.js @@ -0,0 +1,5 @@ +'use strict' + +const compareBuild = require('./compare-build') +const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) +module.exports = sort diff --git a/apps/api/.output/node_modules/semver/functions/truncate.js b/apps/api/.output/node_modules/semver/functions/truncate.js new file mode 100644 index 0000000..8314e4e --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/truncate.js @@ -0,0 +1,48 @@ +'use strict' + +const parse = require('./parse') +const constants = require('../internal/constants') +const SemVer = require('../classes/semver') + +const truncate = (version, truncation, options) => { + if (!constants.RELEASE_TYPES.includes(truncation)) { + return null + } + + const clonedVersion = cloneInputVersion(version, options) + return clonedVersion && doTruncation(clonedVersion, truncation) +} + +const cloneInputVersion = (version, options) => { + const versionStringToParse = ( + version instanceof SemVer ? version.version : version + ) + + return parse(versionStringToParse, options) +} + +const doTruncation = (version, truncation) => { + if (isPrerelease(truncation)) { + return version.version + } + + version.prerelease = [] + + switch (truncation) { + case 'major': + version.minor = 0 + version.patch = 0 + break + case 'minor': + version.patch = 0 + break + } + + return version.format() +} + +const isPrerelease = (type) => { + return type.startsWith('pre') +} + +module.exports = truncate diff --git a/apps/api/.output/node_modules/semver/functions/valid.js b/apps/api/.output/node_modules/semver/functions/valid.js new file mode 100644 index 0000000..0db67ed --- /dev/null +++ b/apps/api/.output/node_modules/semver/functions/valid.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const valid = (version, options) => { + const v = parse(version, options) + return v ? v.version : null +} +module.exports = valid diff --git a/apps/api/.output/node_modules/semver/index.js b/apps/api/.output/node_modules/semver/index.js new file mode 100644 index 0000000..bc1f608 --- /dev/null +++ b/apps/api/.output/node_modules/semver/index.js @@ -0,0 +1,93 @@ +'use strict' + +// just pre-load all the stuff that index.js lazily exports +const internalRe = require('./internal/re') +const constants = require('./internal/constants') +const SemVer = require('./classes/semver') +const identifiers = require('./internal/identifiers') +const parse = require('./functions/parse') +const valid = require('./functions/valid') +const clean = require('./functions/clean') +const inc = require('./functions/inc') +const diff = require('./functions/diff') +const major = require('./functions/major') +const minor = require('./functions/minor') +const patch = require('./functions/patch') +const prerelease = require('./functions/prerelease') +const compare = require('./functions/compare') +const rcompare = require('./functions/rcompare') +const compareLoose = require('./functions/compare-loose') +const compareBuild = require('./functions/compare-build') +const sort = require('./functions/sort') +const rsort = require('./functions/rsort') +const gt = require('./functions/gt') +const lt = require('./functions/lt') +const eq = require('./functions/eq') +const neq = require('./functions/neq') +const gte = require('./functions/gte') +const lte = require('./functions/lte') +const cmp = require('./functions/cmp') +const coerce = require('./functions/coerce') +const truncate = require('./functions/truncate') +const Comparator = require('./classes/comparator') +const Range = require('./classes/range') +const satisfies = require('./functions/satisfies') +const toComparators = require('./ranges/to-comparators') +const maxSatisfying = require('./ranges/max-satisfying') +const minSatisfying = require('./ranges/min-satisfying') +const minVersion = require('./ranges/min-version') +const validRange = require('./ranges/valid') +const outside = require('./ranges/outside') +const gtr = require('./ranges/gtr') +const ltr = require('./ranges/ltr') +const intersects = require('./ranges/intersects') +const simplifyRange = require('./ranges/simplify') +const subset = require('./ranges/subset') +module.exports = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + truncate, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, +} diff --git a/apps/api/.output/node_modules/semver/internal/constants.js b/apps/api/.output/node_modules/semver/internal/constants.js new file mode 100644 index 0000000..6d1db91 --- /dev/null +++ b/apps/api/.output/node_modules/semver/internal/constants.js @@ -0,0 +1,37 @@ +'use strict' + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0' + +const MAX_LENGTH = 256 +const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || +/* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16 + +// Max safe length for a build identifier. The max length minus 6 characters for +// the shortest version with a build 0.0.0+BUILD. +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + +const RELEASE_TYPES = [ + 'major', + 'premajor', + 'minor', + 'preminor', + 'patch', + 'prepatch', + 'prerelease', +] + +module.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 0b001, + FLAG_LOOSE: 0b010, +} diff --git a/apps/api/.output/node_modules/semver/internal/debug.js b/apps/api/.output/node_modules/semver/internal/debug.js new file mode 100644 index 0000000..20d1e9d --- /dev/null +++ b/apps/api/.output/node_modules/semver/internal/debug.js @@ -0,0 +1,11 @@ +'use strict' + +const debug = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {} + +module.exports = debug diff --git a/apps/api/.output/node_modules/semver/internal/identifiers.js b/apps/api/.output/node_modules/semver/internal/identifiers.js new file mode 100644 index 0000000..d053472 --- /dev/null +++ b/apps/api/.output/node_modules/semver/internal/identifiers.js @@ -0,0 +1,29 @@ +'use strict' + +const numeric = /^[0-9]+$/ +const compareIdentifiers = (a, b) => { + if (typeof a === 'number' && typeof b === 'number') { + return a === b ? 0 : a < b ? -1 : 1 + } + + const anum = numeric.test(a) + const bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) + +module.exports = { + compareIdentifiers, + rcompareIdentifiers, +} diff --git a/apps/api/.output/node_modules/semver/internal/lrucache.js b/apps/api/.output/node_modules/semver/internal/lrucache.js new file mode 100644 index 0000000..b8bf526 --- /dev/null +++ b/apps/api/.output/node_modules/semver/internal/lrucache.js @@ -0,0 +1,42 @@ +'use strict' + +class LRUCache { + constructor () { + this.max = 1000 + this.map = new Map() + } + + get (key) { + const value = this.map.get(key) + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key) + this.map.set(key, value) + return value + } + } + + delete (key) { + return this.map.delete(key) + } + + set (key, value) { + const deleted = this.delete(key) + + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value + this.delete(firstKey) + } + + this.map.set(key, value) + } + + return this + } +} + +module.exports = LRUCache diff --git a/apps/api/.output/node_modules/semver/internal/parse-options.js b/apps/api/.output/node_modules/semver/internal/parse-options.js new file mode 100644 index 0000000..5295454 --- /dev/null +++ b/apps/api/.output/node_modules/semver/internal/parse-options.js @@ -0,0 +1,17 @@ +'use strict' + +// parse out just the options we care about +const looseOption = Object.freeze({ loose: true }) +const emptyOpts = Object.freeze({ }) +const parseOptions = options => { + if (!options) { + return emptyOpts + } + + if (typeof options !== 'object') { + return looseOption + } + + return options +} +module.exports = parseOptions diff --git a/apps/api/.output/node_modules/semver/internal/re.js b/apps/api/.output/node_modules/semver/internal/re.js new file mode 100644 index 0000000..2ec2c22 --- /dev/null +++ b/apps/api/.output/node_modules/semver/internal/re.js @@ -0,0 +1,223 @@ +'use strict' + +const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, +} = require('./constants') +const debug = require('./debug') +exports = module.exports = {} + +// The actual regexps go on exports.re +const re = exports.re = [] +const safeRe = exports.safeRe = [] +const src = exports.src = [] +const safeSrc = exports.safeSrc = [] +const t = exports.t = {} +let R = 0 + +const LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`) + } + return value +} + +const createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value) + const index = R++ + debug(name, index, value) + t[name] = index + src[index] = value + safeSrc[index] = safe + re[index] = new RegExp(value, isGlobal ? 'g' : undefined) + safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined) +} + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') +createToken('NUMERICIDENTIFIERLOOSE', '\\d+') + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`) + +// ## Main Version +// Three dot-separated numeric identifiers. + +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`) + +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. +// Non-numeric identifiers include numeric identifiers but can be longer. +// Therefore non-numeric identifiers must go first. + +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIER]})`) + +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`) + +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`) + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`) + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`) + +createToken('FULL', `^${src[t.FULLPLAIN]}$`) + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] +}${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`) + +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) + +createToken('GTLT', '((?:<|>)?=?)') + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifier, meaning "any version" +// Only the first item is strictly required. +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) + +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +createToken('COERCEPLAIN', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`) +createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`) +createToken('COERCEFULL', src[t.COERCEPLAIN] + + `(?:${src[t.PRERELEASE]})?` + + `(?:${src[t.BUILD]})?` + + `(?:$|[^\\d])`) +createToken('COERCERTL', src[t.COERCE], true) +createToken('COERCERTLFULL', src[t.COERCEFULL], true) + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)') + +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) +exports.tildeTrimReplace = '$1~' + +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)') + +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) +exports.caretTrimReplace = '$1^' + +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) +exports.comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`) + +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`) + +// Star ranges basically just allow anything at all. +createToken('STAR', '(<|>)?=?\\s*\\*') +// >=0.0.0 is like a star +createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$') +createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') diff --git a/apps/api/.output/node_modules/semver/node_modules/.bin/semver b/apps/api/.output/node_modules/semver/node_modules/.bin/semver new file mode 100644 index 0000000..45abba1 --- /dev/null +++ b/apps/api/.output/node_modules/semver/node_modules/.bin/semver @@ -0,0 +1,21 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules/semver/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/node_modules" +else + export NODE_PATH="/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules/semver/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/node_modules:$NODE_PATH" +fi +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../../bin/semver.js" "$@" +else + exec node "$basedir/../../bin/semver.js" "$@" +fi diff --git a/apps/api/.output/node_modules/semver/node_modules/.bin/semver.CMD b/apps/api/.output/node_modules/semver/node_modules/.bin/semver.CMD new file mode 100644 index 0000000..6bf4f01 --- /dev/null +++ b/apps/api/.output/node_modules/semver/node_modules/.bin/semver.CMD @@ -0,0 +1,12 @@ +@SETLOCAL +@IF NOT DEFINED NODE_PATH ( + @SET "NODE_PATH=E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules\semver\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\node_modules" +) ELSE ( + @SET "NODE_PATH=E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules\semver\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\node_modules;%NODE_PATH%" +) +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\bin\semver.js" %* +) ELSE ( + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\bin\semver.js" %* +) diff --git a/apps/api/.output/node_modules/semver/node_modules/.bin/semver.ps1 b/apps/api/.output/node_modules/semver/node_modules/.bin/semver.ps1 new file mode 100644 index 0000000..5e848f7 --- /dev/null +++ b/apps/api/.output/node_modules/semver/node_modules/.bin/semver.ps1 @@ -0,0 +1,41 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +$pathsep=":" +$env_node_path=$env:NODE_PATH +$new_node_path="E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules\semver\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\node_modules" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" + $pathsep=";" +} else { + $new_node_path="/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules/semver/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/node_modules" +} +if ([string]::IsNullOrEmpty($env_node_path)) { + $env:NODE_PATH=$new_node_path +} else { + $env:NODE_PATH="$new_node_path$pathsep$env_node_path" +} + +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../../bin/semver.js" $args + } else { + & "$basedir/node$exe" "$basedir/../../bin/semver.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../../bin/semver.js" $args + } else { + & "node$exe" "$basedir/../../bin/semver.js" $args + } + $ret=$LASTEXITCODE +} +$env:NODE_PATH=$env_node_path +exit $ret diff --git a/apps/api/.output/node_modules/semver/package.json b/apps/api/.output/node_modules/semver/package.json new file mode 100644 index 0000000..0cb7c7b --- /dev/null +++ b/apps/api/.output/node_modules/semver/package.json @@ -0,0 +1,78 @@ +{ + "name": "semver", + "version": "7.8.5", + "description": "The semantic version parser used by npm.", + "main": "index.js", + "scripts": { + "test": "tap", + "snap": "tap", + "lint": "npm run eslint", + "postlint": "template-oss-check", + "lintfix": "npm run eslint -- --fix", + "posttest": "npm run lint", + "template-oss-apply": "template-oss-apply --force", + "eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\"" + }, + "devDependencies": { + "@npmcli/eslint-config": "^7.0.0", + "@npmcli/template-oss": "5.0.0", + "benchmark": "^2.1.4", + "tap": "^16.0.0" + }, + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "bin": { + "semver": "bin/semver.js" + }, + "files": [ + "bin/", + "lib/", + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "tap": { + "timeout": 30, + "coverage-map": "map.js", + "nyc-arg": [ + "--exclude", + "tap-snapshots/**" + ] + }, + "engines": { + "node": ">=10" + }, + "author": "GitHub Inc.", + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "version": "5.0.0", + "engines": ">=10", + "distPaths": [ + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "allowPaths": [ + "/classes/", + "/functions/", + "/internal/", + "/ranges/", + "/index.js", + "/preload.js", + "/range.bnf", + "/benchmarks" + ], + "publish": "true" + } +} diff --git a/apps/api/.output/node_modules/semver/preload.js b/apps/api/.output/node_modules/semver/preload.js new file mode 100644 index 0000000..e6c47b9 --- /dev/null +++ b/apps/api/.output/node_modules/semver/preload.js @@ -0,0 +1,4 @@ +'use strict' + +// XXX remove in v8 or beyond +module.exports = require('./index.js') diff --git a/apps/api/.output/node_modules/semver/range.bnf b/apps/api/.output/node_modules/semver/range.bnf new file mode 100644 index 0000000..a7a4bc3 --- /dev/null +++ b/apps/api/.output/node_modules/semver/range.bnf @@ -0,0 +1,17 @@ +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | [1-9] ( [0-9] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= prepart ( '.' prepart ) * +prepart ::= nr | alphanumid +build ::= buildid ( '.' buildid ) * +alphanumid ::= ( [0-9] ) * [A-Za-z-] [-0-9A-Za-z] * +buildid ::= [-0-9A-Za-z]+ diff --git a/apps/api/.output/node_modules/semver/ranges/gtr.js b/apps/api/.output/node_modules/semver/ranges/gtr.js new file mode 100644 index 0000000..0e7601f --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/gtr.js @@ -0,0 +1,6 @@ +'use strict' + +// Determine if version is greater than all the versions possible in the range. +const outside = require('./outside') +const gtr = (version, range, options) => outside(version, range, '>', options) +module.exports = gtr diff --git a/apps/api/.output/node_modules/semver/ranges/intersects.js b/apps/api/.output/node_modules/semver/ranges/intersects.js new file mode 100644 index 0000000..917be7e --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/intersects.js @@ -0,0 +1,9 @@ +'use strict' + +const Range = require('../classes/range') +const intersects = (r1, r2, options) => { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2, options) +} +module.exports = intersects diff --git a/apps/api/.output/node_modules/semver/ranges/ltr.js b/apps/api/.output/node_modules/semver/ranges/ltr.js new file mode 100644 index 0000000..aa5e568 --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/ltr.js @@ -0,0 +1,6 @@ +'use strict' + +const outside = require('./outside') +// Determine if version is less than all the versions possible in the range +const ltr = (version, range, options) => outside(version, range, '<', options) +module.exports = ltr diff --git a/apps/api/.output/node_modules/semver/ranges/max-satisfying.js b/apps/api/.output/node_modules/semver/ranges/max-satisfying.js new file mode 100644 index 0000000..01fe5ae --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/max-satisfying.js @@ -0,0 +1,27 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') + +const maxSatisfying = (versions, range, options) => { + let max = null + let maxSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} +module.exports = maxSatisfying diff --git a/apps/api/.output/node_modules/semver/ranges/min-satisfying.js b/apps/api/.output/node_modules/semver/ranges/min-satisfying.js new file mode 100644 index 0000000..af89c8e --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/min-satisfying.js @@ -0,0 +1,26 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const minSatisfying = (versions, range, options) => { + let min = null + let minSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} +module.exports = minSatisfying diff --git a/apps/api/.output/node_modules/semver/ranges/min-version.js b/apps/api/.output/node_modules/semver/ranges/min-version.js new file mode 100644 index 0000000..09a65aa --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/min-version.js @@ -0,0 +1,63 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const gt = require('../functions/gt') + +const minVersion = (range, loose) => { + range = new Range(range, loose) + + let minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let setMin = null + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt(compver, setMin)) { + setMin = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }) + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin + } + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} +module.exports = minVersion diff --git a/apps/api/.output/node_modules/semver/ranges/outside.js b/apps/api/.output/node_modules/semver/ranges/outside.js new file mode 100644 index 0000000..ca74421 --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/outside.js @@ -0,0 +1,82 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Comparator = require('../classes/comparator') +const { ANY } = Comparator +const Range = require('../classes/range') +const satisfies = require('../functions/satisfies') +const gt = require('../functions/gt') +const lt = require('../functions/lt') +const lte = require('../functions/lte') +const gte = require('../functions/gte') + +const outside = (version, range, hilo, options) => { + version = new SemVer(version, options) + range = new Range(range, options) + + let gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisfies the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let high = null + let low = null + + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +module.exports = outside diff --git a/apps/api/.output/node_modules/semver/ranges/simplify.js b/apps/api/.output/node_modules/semver/ranges/simplify.js new file mode 100644 index 0000000..262732e --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/simplify.js @@ -0,0 +1,49 @@ +'use strict' + +// given a set of versions and a range, create a "simplified" range +// that includes the same versions that the original range does +// If the original range is shorter than the simplified one, return that. +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') +module.exports = (versions, range, options) => { + const set = [] + let first = null + let prev = null + const v = versions.sort((a, b) => compare(a, b, options)) + for (const version of v) { + const included = satisfies(version, range, options) + if (included) { + prev = version + if (!first) { + first = version + } + } else { + if (prev) { + set.push([first, prev]) + } + prev = null + first = null + } + } + if (first) { + set.push([first, null]) + } + + const ranges = [] + for (const [min, max] of set) { + if (min === max) { + ranges.push(min) + } else if (!max && min === v[0]) { + ranges.push('*') + } else if (!max) { + ranges.push(`>=${min}`) + } else if (min === v[0]) { + ranges.push(`<=${max}`) + } else { + ranges.push(`${min} - ${max}`) + } + } + const simplified = ranges.join(' || ') + const original = typeof range.raw === 'string' ? range.raw : String(range) + return simplified.length < original.length ? simplified : range +} diff --git a/apps/api/.output/node_modules/semver/ranges/subset.js b/apps/api/.output/node_modules/semver/ranges/subset.js new file mode 100644 index 0000000..a949832 --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/subset.js @@ -0,0 +1,249 @@ +'use strict' + +const Range = require('../classes/range.js') +const Comparator = require('../classes/comparator.js') +const { ANY } = Comparator +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') + +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` is a null set, OR +// - Every simple range `r1, r2, ...` which is not a null set is a subset of +// some `R1, R2, ...` +// +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: +// - If c is only the ANY comparator +// - If C is only the ANY comparator, return true +// - Else if in prerelease mode, return false +// - else replace c with `[>=0.0.0]` +// - If C is only the ANY comparator +// - if in prerelease mode, return true +// - else replace C with `[>=0.0.0]` +// - Let EQ be the set of = comparators in c +// - If EQ is more than one, return true (null set) +// - Let GT be the highest > or >= comparator in c +// - Let LT be the lowest < or <= comparator in c +// - If GT and LT, and GT.semver > LT.semver, return true (null set) +// - If any C is a = range, and GT or LT are set, return false +// - If EQ +// - If GT, and EQ does not satisfy GT, return true (null set) +// - If LT, and EQ does not satisfy LT, return true (null set) +// - If EQ satisfies every C, return true +// - Else return false +// - If GT +// - If GT.semver is lower than any > or >= comp in C, return false +// - If GT is >=, and GT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the GT.semver tuple, return false +// - If LT +// - If LT.semver is greater than any < or <= comp in C, return false +// - If LT is <=, and LT.semver does not satisfy every C, return false +// - If LT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the LT.semver tuple, return false +// - Else return true + +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } + + sub = new Range(sub, options) + dom = new Range(dom, options) + let sawNonNull = false + + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options) + sawNonNull = sawNonNull || isSub !== null + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true +} + +const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')] +const minimumVersion = [new Comparator('>=0.0.0')] + +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } + + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease + } else { + sub = minimumVersion + } + } + + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = minimumVersion + } + } + + const eqSet = new Set() + let gt, lt + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options) + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options) + } else { + eqSet.add(c.semver) + } + } + + if (eqSet.size > 1) { + return null + } + + let gtltComp + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options) + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } + + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null + } + + if (lt && !satisfies(eq, String(lt), options)) { + return null + } + + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false + } + } + + return true + } + + let higher, lower + let hasDomLT, hasDomGT + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=' + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options) + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !c.test(gt.semver)) { + return false + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options) + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !c.test(lt.semver)) { + return false + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false + } + } + + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } + + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } + + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } + + return true +} + +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a +} + +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a +} + +module.exports = subset diff --git a/apps/api/.output/node_modules/semver/ranges/to-comparators.js b/apps/api/.output/node_modules/semver/ranges/to-comparators.js new file mode 100644 index 0000000..5be2519 --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/to-comparators.js @@ -0,0 +1,10 @@ +'use strict' + +const Range = require('../classes/range') + +// Mostly just for testing and legacy API reasons +const toComparators = (range, options) => + new Range(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) + +module.exports = toComparators diff --git a/apps/api/.output/node_modules/semver/ranges/valid.js b/apps/api/.output/node_modules/semver/ranges/valid.js new file mode 100644 index 0000000..cc6b0e9 --- /dev/null +++ b/apps/api/.output/node_modules/semver/ranges/valid.js @@ -0,0 +1,13 @@ +'use strict' + +const Range = require('../classes/range') +const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} +module.exports = validRange diff --git a/apps/api/.output/node_modules/sharp/LICENSE b/apps/api/.output/node_modules/sharp/LICENSE new file mode 100644 index 0000000..37ec93a --- /dev/null +++ b/apps/api/.output/node_modules/sharp/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/apps/api/.output/node_modules/sharp/README.md b/apps/api/.output/node_modules/sharp/README.md new file mode 100644 index 0000000..7db7edd --- /dev/null +++ b/apps/api/.output/node_modules/sharp/README.md @@ -0,0 +1,112 @@ +# sharp + +sharp logo + +The typical use case for this high speed Node-API module +is to convert large images in common formats to +smaller, web-friendly JPEG, PNG, WebP, GIF and AVIF images of varying dimensions. + +It can be used with all JavaScript runtimes +that provide support for Node-API v9, including +Node.js (>= 20.9.0), Deno and Bun. + +Resizing an image is typically 4x-5x faster than using the +quickest ImageMagick and GraphicsMagick settings +due to its use of [libvips](https://github.com/libvips/libvips). + +Colour spaces, embedded ICC profiles and alpha transparency channels are all handled correctly. +Lanczos resampling ensures quality is not sacrificed for speed. + +As well as image resizing, operations such as +rotation, extraction, compositing and gamma correction are available. + +Most modern macOS, Windows and Linux systems +do not require any additional install or runtime dependencies. + +## Documentation + +Visit [sharp.pixelplumbing.com](https://sharp.pixelplumbing.com/) for complete +[installation instructions](https://sharp.pixelplumbing.com/install), +[API documentation](https://sharp.pixelplumbing.com/api-constructor), +[benchmark tests](https://sharp.pixelplumbing.com/performance) and +[changelog](https://sharp.pixelplumbing.com/changelog). + +## Examples + +```sh +npm install sharp +``` + +```javascript +// ESM +import sharp from 'sharp'; + +// CJS +const sharp = require('sharp'); +``` + +```javascript +await sharp(inputBuffer) + .resize({ width: 320, height: 240 }) + .toFile('output.webp', (err, info) => { ... }); +``` + +```javascript +const output = await sharp('input.jpg') + .autoOrient() + .resize({ width: 200 }) + .jpeg({ mozjpeg: true }) + .toBuffer(); +``` + +```javascript +const semiTransparentRedPng = await sharp({ + create: { + width: 48, + height: 48, + channels: 4, + background: { r: 255, g: 0, b: 0, alpha: 0.5 } + } +}) + .png() + .toBuffer(); +``` + +```javascript +const roundedCorners = Buffer.from( + '' +); + +const roundedCornerResizer = + sharp() + .resize(200, 200) + .composite([{ + input: roundedCorners, + blend: 'dest-in' + }]) + .png(); + +readableStream + .pipe(roundedCornerResizer) + .pipe(writableStream); +``` + +## Contributing + +A [guide for contributors](https://github.com/lovell/sharp/blob/main/.github/CONTRIBUTING.md) +covers reporting bugs, requesting features and submitting code changes. + +## Licensing + +Copyright 2013 Lovell Fuller and others. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/apps/api/.output/node_modules/sharp/dist/channel.cjs b/apps/api/.output/node_modules/sharp/dist/channel.cjs new file mode 100644 index 0000000..4fcc58e --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/channel.cjs @@ -0,0 +1,177 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is.cjs'); + +/** + * Boolean operations for bandbool. + * @private + */ +const bool = { + and: 'and', + or: 'or', + eor: 'eor' +}; + +/** + * Remove alpha channels, if any. This is a no-op if the image does not have an alpha channel. + * + * See also {@link /api-operation/#flatten flatten}. + * + * @example + * sharp('rgba.png') + * .removeAlpha() + * .toFile('rgb.png', function(err, info) { + * // rgb.png is a 3 channel image without an alpha channel + * }); + * + * @returns {Sharp} + */ +function removeAlpha () { + this.options.removeAlpha = true; + return this; +} + +/** + * Ensure the output image has an alpha transparency channel. + * If missing, the added alpha channel will have the specified + * transparency level, defaulting to fully-opaque (1). + * This is a no-op if the image already has an alpha channel. + * + * @since 0.21.2 + * + * @example + * // rgba.png will be a 4 channel image with a fully-opaque alpha channel + * await sharp('rgb.jpg') + * .ensureAlpha() + * .toFile('rgba.png') + * + * @example + * // rgba is a 4 channel image with a fully-transparent alpha channel + * const rgba = await sharp(rgb) + * .ensureAlpha(0) + * .toBuffer(); + * + * @param {number} [alpha=1] - alpha transparency level (0=fully-transparent, 1=fully-opaque) + * @returns {Sharp} + * @throws {Error} Invalid alpha transparency level + */ +function ensureAlpha (alpha) { + if (is.defined(alpha)) { + if (is.number(alpha) && is.inRange(alpha, 0, 1)) { + this.options.ensureAlpha = alpha; + } else { + throw is.invalidParameterError('alpha', 'number between 0 and 1', alpha); + } + } else { + this.options.ensureAlpha = 1; + } + return this; +} + +/** + * Extract a single channel from a multi-channel image. + * + * The output colourspace will be either `b-w` (8-bit) or `grey16` (16-bit). + * + * @example + * // green.jpg is a greyscale image containing the green channel of the input + * await sharp(input) + * .extractChannel('green') + * .toFile('green.jpg'); + * + * @example + * // red1 is the red value of the first pixel, red2 the second pixel etc. + * const [red1, red2, ...] = await sharp(input) + * .extractChannel(0) + * .raw() + * .toBuffer(); + * + * @param {number|string} channel - zero-indexed channel/band number to extract, or `red`, `green`, `blue` or `alpha`. + * @returns {Sharp} + * @throws {Error} Invalid channel + */ +function extractChannel (channel) { + const channelMap = { red: 0, green: 1, blue: 2, alpha: 3 }; + if (Object.keys(channelMap).includes(channel)) { + channel = channelMap[channel]; + } + if (is.integer(channel) && is.inRange(channel, 0, 4)) { + this.options.extractChannel = channel; + } else { + throw is.invalidParameterError('channel', 'integer or one of: red, green, blue, alpha', channel); + } + return this; +} + +/** + * Join one or more channels to the image. + * The meaning of the added channels depends on the output colourspace, set with `toColourspace()`. + * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * Channel ordering follows vips convention: + * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha. + * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha. + * + * Buffers may be any of the image formats supported by sharp. + * For raw pixel input, the `options` object should contain a `raw` attribute, which follows the format of the attribute of the same name in the `sharp()` constructor. + * + * @param {Array|string|Buffer} images - one or more images (file paths, Buffers). + * @param {Object} options - image options, see `sharp()` constructor. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function joinChannel (images, options) { + if (Array.isArray(images)) { + images.forEach(function (image) { + this.options.joinChannelIn.push(this._createInputDescriptor(image, options)); + }, this); + } else { + this.options.joinChannelIn.push(this._createInputDescriptor(images, options)); + } + return this; +} + +/** + * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image. + * + * @example + * sharp('3-channel-rgb-input.png') + * .bandbool(sharp.bool.and) + * .toFile('1-channel-output.png', function (err, info) { + * // The output will be a single channel image where each pixel `P = R & G & B`. + * // If `I(1,1) = [247, 170, 14] = [0b11110111, 0b10101010, 0b00001111]` + * // then `O(1,1) = 0b11110111 & 0b10101010 & 0b00001111 = 0b00000010 = 2`. + * }); + * + * @param {string} boolOp - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function bandbool (boolOp) { + if (is.string(boolOp) && is.inArray(boolOp, ['and', 'or', 'eor'])) { + this.options.bandBoolOp = boolOp; + } else { + throw is.invalidParameterError('boolOp', 'one of: and, or, eor', boolOp); + } + return this; +} + +/** + * Decorate the Sharp prototype with channel-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Public instance functions + removeAlpha, + ensureAlpha, + extractChannel, + joinChannel, + bandbool + }); + // Class attributes + Sharp.bool = bool; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/channel.mjs b/apps/api/.output/node_modules/sharp/dist/channel.mjs new file mode 100644 index 0000000..1fdf0a9 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/channel.mjs @@ -0,0 +1,177 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import is from './is.mjs'; + +/** + * Boolean operations for bandbool. + * @private + */ +const bool = { + and: 'and', + or: 'or', + eor: 'eor' +}; + +/** + * Remove alpha channels, if any. This is a no-op if the image does not have an alpha channel. + * + * See also {@link /api-operation/#flatten flatten}. + * + * @example + * sharp('rgba.png') + * .removeAlpha() + * .toFile('rgb.png', function(err, info) { + * // rgb.png is a 3 channel image without an alpha channel + * }); + * + * @returns {Sharp} + */ +function removeAlpha () { + this.options.removeAlpha = true; + return this; +} + +/** + * Ensure the output image has an alpha transparency channel. + * If missing, the added alpha channel will have the specified + * transparency level, defaulting to fully-opaque (1). + * This is a no-op if the image already has an alpha channel. + * + * @since 0.21.2 + * + * @example + * // rgba.png will be a 4 channel image with a fully-opaque alpha channel + * await sharp('rgb.jpg') + * .ensureAlpha() + * .toFile('rgba.png') + * + * @example + * // rgba is a 4 channel image with a fully-transparent alpha channel + * const rgba = await sharp(rgb) + * .ensureAlpha(0) + * .toBuffer(); + * + * @param {number} [alpha=1] - alpha transparency level (0=fully-transparent, 1=fully-opaque) + * @returns {Sharp} + * @throws {Error} Invalid alpha transparency level + */ +function ensureAlpha (alpha) { + if (is.defined(alpha)) { + if (is.number(alpha) && is.inRange(alpha, 0, 1)) { + this.options.ensureAlpha = alpha; + } else { + throw is.invalidParameterError('alpha', 'number between 0 and 1', alpha); + } + } else { + this.options.ensureAlpha = 1; + } + return this; +} + +/** + * Extract a single channel from a multi-channel image. + * + * The output colourspace will be either `b-w` (8-bit) or `grey16` (16-bit). + * + * @example + * // green.jpg is a greyscale image containing the green channel of the input + * await sharp(input) + * .extractChannel('green') + * .toFile('green.jpg'); + * + * @example + * // red1 is the red value of the first pixel, red2 the second pixel etc. + * const [red1, red2, ...] = await sharp(input) + * .extractChannel(0) + * .raw() + * .toBuffer(); + * + * @param {number|string} channel - zero-indexed channel/band number to extract, or `red`, `green`, `blue` or `alpha`. + * @returns {Sharp} + * @throws {Error} Invalid channel + */ +function extractChannel (channel) { + const channelMap = { red: 0, green: 1, blue: 2, alpha: 3 }; + if (Object.keys(channelMap).includes(channel)) { + channel = channelMap[channel]; + } + if (is.integer(channel) && is.inRange(channel, 0, 4)) { + this.options.extractChannel = channel; + } else { + throw is.invalidParameterError('channel', 'integer or one of: red, green, blue, alpha', channel); + } + return this; +} + +/** + * Join one or more channels to the image. + * The meaning of the added channels depends on the output colourspace, set with `toColourspace()`. + * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * Channel ordering follows vips convention: + * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha. + * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha. + * + * Buffers may be any of the image formats supported by sharp. + * For raw pixel input, the `options` object should contain a `raw` attribute, which follows the format of the attribute of the same name in the `sharp()` constructor. + * + * @param {Array|string|Buffer} images - one or more images (file paths, Buffers). + * @param {Object} options - image options, see `sharp()` constructor. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function joinChannel (images, options) { + if (Array.isArray(images)) { + images.forEach(function (image) { + this.options.joinChannelIn.push(this._createInputDescriptor(image, options)); + }, this); + } else { + this.options.joinChannelIn.push(this._createInputDescriptor(images, options)); + } + return this; +} + +/** + * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image. + * + * @example + * sharp('3-channel-rgb-input.png') + * .bandbool(sharp.bool.and) + * .toFile('1-channel-output.png', function (err, info) { + * // The output will be a single channel image where each pixel `P = R & G & B`. + * // If `I(1,1) = [247, 170, 14] = [0b11110111, 0b10101010, 0b00001111]` + * // then `O(1,1) = 0b11110111 & 0b10101010 & 0b00001111 = 0b00000010 = 2`. + * }); + * + * @param {string} boolOp - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function bandbool (boolOp) { + if (is.string(boolOp) && is.inArray(boolOp, ['and', 'or', 'eor'])) { + this.options.bandBoolOp = boolOp; + } else { + throw is.invalidParameterError('boolOp', 'one of: and, or, eor', boolOp); + } + return this; +} + +/** + * Decorate the Sharp prototype with channel-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Object.assign(Sharp.prototype, { + // Public instance functions + removeAlpha, + ensureAlpha, + extractChannel, + joinChannel, + bandbool + }); + // Class attributes + Sharp.bool = bool; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/colour.cjs b/apps/api/.output/node_modules/sharp/dist/colour.cjs new file mode 100644 index 0000000..b189a4a --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/colour.cjs @@ -0,0 +1,199 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const color = require('@img/colour'); +const is = require('./is.cjs'); + +/** + * Colourspaces. + * @private + */ +const colourspace = { + multiband: 'multiband', + 'b-w': 'b-w', + bw: 'b-w', + cmyk: 'cmyk', + srgb: 'srgb' +}; + +/** + * Tint the image using the provided colour. + * An alpha channel may be present and will be unchanged by the operation. + * + * @example + * const output = await sharp(input) + * .tint({ r: 255, g: 240, b: 16 }) + * .toBuffer(); + * + * @param {string|Object} tint - Parsed by the [color](https://www.npmjs.org/package/color) module. + * @returns {Sharp} + * @throws {Error} Invalid parameter + */ +function tint (tint) { + this._setBackgroundColourOption('tint', tint); + return this; +} + +/** + * Convert to 8-bit greyscale; 256 shades of grey. + * This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use `gamma()` with `greyscale()` for the best results. + * By default the output image will be web-friendly sRGB and contain three (identical) colour channels. + * This may be overridden by other sharp operations such as `toColourspace('b-w')`, + * which will produce an output image containing one colour channel. + * An alpha channel may be present, and will be unchanged by the operation. + * + * @example + * const output = await sharp(input).greyscale().toBuffer(); + * + * @param {Boolean} [greyscale=true] + * @returns {Sharp} + */ +function greyscale (greyscale) { + this.options.greyscale = is.bool(greyscale) ? greyscale : true; + return this; +} + +/** + * Alternative spelling of `greyscale`. + * @param {Boolean} [grayscale=true] + * @returns {Sharp} + */ +function grayscale (grayscale) { + return this.greyscale(grayscale); +} + +/** + * Set the pipeline colourspace. + * + * The input image will be converted to the provided colourspace at the start of the pipeline. + * All operations will use this colourspace before converting to the output colourspace, + * as defined by {@link #tocolourspace toColourspace}. + * + * @since 0.29.0 + * + * @example + * // Run pipeline in 16 bits per channel RGB while converting final result to 8 bits per channel sRGB. + * await sharp(input) + * .pipelineColourspace('rgb16') + * .toColourspace('srgb') + * .toFile('16bpc-pipeline-to-8bpc-output.png') + * + * @param {string} [colourspace] - pipeline colourspace e.g. `rgb16`, `scrgb`, `lab`, `grey16` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function pipelineColourspace (colourspace) { + if (!is.string(colourspace)) { + throw is.invalidParameterError('colourspace', 'string', colourspace); + } + this.options.colourspacePipeline = colourspace; + return this; +} + +/** + * Alternative spelling of `pipelineColourspace`. + * @param {string} [colorspace] - pipeline colorspace. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function pipelineColorspace (colorspace) { + return this.pipelineColourspace(colorspace); +} + +/** + * Set the output colourspace. + * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * + * @example + * // Output 16 bits per pixel RGB + * await sharp(input) + * .toColourspace('rgb16') + * .toFile('16-bpp.png') + * + * @param {string} [colourspace] - output colourspace e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function toColourspace (colourspace) { + if (!is.string(colourspace)) { + throw is.invalidParameterError('colourspace', 'string', colourspace); + } + this.options.colourspace = colourspace; + return this; +} + +/** + * Alternative spelling of `toColourspace`. + * @param {string} [colorspace] - output colorspace. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function toColorspace (colorspace) { + return this.toColourspace(colorspace); +} + +/** + * Create a RGBA colour array from a given value. + * @private + * @param {string|Object} value + * @throws {Error} Invalid value + */ +function _getBackgroundColourOption (value) { + if ( + is.object(value) || + (is.string(value) && value.length >= 3 && value.length <= 200) + ) { + const colour = color(value); + const red = colour.red(); + const green = colour.green(); + const blue = colour.blue(); + const alpha = Math.round(colour.alpha() * 255); + for (const [channel, component] of [['red', red], ['green', green], ['blue', blue], ['alpha', alpha]]) { + if (!is.number(component)) { + throw is.invalidParameterError(`background.${channel}`, 'number', component); + } + } + return [red, green, blue, alpha]; + } else { + throw is.invalidParameterError('background', 'object or string', value); + } +} + +/** + * Update a colour attribute of the this.options Object. + * @private + * @param {string} key + * @param {string|Object} value + * @throws {Error} Invalid value + */ +function _setBackgroundColourOption (key, value) { + if (is.defined(value)) { + this.options[key] = _getBackgroundColourOption(value); + } +} + +/** + * Decorate the Sharp prototype with colour-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Public + tint, + greyscale, + grayscale, + pipelineColourspace, + pipelineColorspace, + toColourspace, + toColorspace, + // Private + _getBackgroundColourOption, + _setBackgroundColourOption + }); + // Class attributes + Sharp.colourspace = colourspace; + Sharp.colorspace = colourspace; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/colour.mjs b/apps/api/.output/node_modules/sharp/dist/colour.mjs new file mode 100644 index 0000000..b437857 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/colour.mjs @@ -0,0 +1,199 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import color from '@img/colour'; +import is from './is.mjs'; + +/** + * Colourspaces. + * @private + */ +const colourspace = { + multiband: 'multiband', + 'b-w': 'b-w', + bw: 'b-w', + cmyk: 'cmyk', + srgb: 'srgb' +}; + +/** + * Tint the image using the provided colour. + * An alpha channel may be present and will be unchanged by the operation. + * + * @example + * const output = await sharp(input) + * .tint({ r: 255, g: 240, b: 16 }) + * .toBuffer(); + * + * @param {string|Object} tint - Parsed by the [color](https://www.npmjs.org/package/color) module. + * @returns {Sharp} + * @throws {Error} Invalid parameter + */ +function tint (tint) { + this._setBackgroundColourOption('tint', tint); + return this; +} + +/** + * Convert to 8-bit greyscale; 256 shades of grey. + * This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use `gamma()` with `greyscale()` for the best results. + * By default the output image will be web-friendly sRGB and contain three (identical) colour channels. + * This may be overridden by other sharp operations such as `toColourspace('b-w')`, + * which will produce an output image containing one colour channel. + * An alpha channel may be present, and will be unchanged by the operation. + * + * @example + * const output = await sharp(input).greyscale().toBuffer(); + * + * @param {Boolean} [greyscale=true] + * @returns {Sharp} + */ +function greyscale (greyscale) { + this.options.greyscale = is.bool(greyscale) ? greyscale : true; + return this; +} + +/** + * Alternative spelling of `greyscale`. + * @param {Boolean} [grayscale=true] + * @returns {Sharp} + */ +function grayscale (grayscale) { + return this.greyscale(grayscale); +} + +/** + * Set the pipeline colourspace. + * + * The input image will be converted to the provided colourspace at the start of the pipeline. + * All operations will use this colourspace before converting to the output colourspace, + * as defined by {@link #tocolourspace toColourspace}. + * + * @since 0.29.0 + * + * @example + * // Run pipeline in 16 bits per channel RGB while converting final result to 8 bits per channel sRGB. + * await sharp(input) + * .pipelineColourspace('rgb16') + * .toColourspace('srgb') + * .toFile('16bpc-pipeline-to-8bpc-output.png') + * + * @param {string} [colourspace] - pipeline colourspace e.g. `rgb16`, `scrgb`, `lab`, `grey16` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function pipelineColourspace (colourspace) { + if (!is.string(colourspace)) { + throw is.invalidParameterError('colourspace', 'string', colourspace); + } + this.options.colourspacePipeline = colourspace; + return this; +} + +/** + * Alternative spelling of `pipelineColourspace`. + * @param {string} [colorspace] - pipeline colorspace. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function pipelineColorspace (colorspace) { + return this.pipelineColourspace(colorspace); +} + +/** + * Set the output colourspace. + * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * + * @example + * // Output 16 bits per pixel RGB + * await sharp(input) + * .toColourspace('rgb16') + * .toFile('16-bpp.png') + * + * @param {string} [colourspace] - output colourspace e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function toColourspace (colourspace) { + if (!is.string(colourspace)) { + throw is.invalidParameterError('colourspace', 'string', colourspace); + } + this.options.colourspace = colourspace; + return this; +} + +/** + * Alternative spelling of `toColourspace`. + * @param {string} [colorspace] - output colorspace. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function toColorspace (colorspace) { + return this.toColourspace(colorspace); +} + +/** + * Create a RGBA colour array from a given value. + * @private + * @param {string|Object} value + * @throws {Error} Invalid value + */ +function _getBackgroundColourOption (value) { + if ( + is.object(value) || + (is.string(value) && value.length >= 3 && value.length <= 200) + ) { + const colour = color(value); + const red = colour.red(); + const green = colour.green(); + const blue = colour.blue(); + const alpha = Math.round(colour.alpha() * 255); + for (const [channel, component] of [['red', red], ['green', green], ['blue', blue], ['alpha', alpha]]) { + if (!is.number(component)) { + throw is.invalidParameterError(`background.${channel}`, 'number', component); + } + } + return [red, green, blue, alpha]; + } else { + throw is.invalidParameterError('background', 'object or string', value); + } +} + +/** + * Update a colour attribute of the this.options Object. + * @private + * @param {string} key + * @param {string|Object} value + * @throws {Error} Invalid value + */ +function _setBackgroundColourOption (key, value) { + if (is.defined(value)) { + this.options[key] = _getBackgroundColourOption(value); + } +} + +/** + * Decorate the Sharp prototype with colour-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Object.assign(Sharp.prototype, { + // Public + tint, + greyscale, + grayscale, + pipelineColourspace, + pipelineColorspace, + toColourspace, + toColorspace, + // Private + _getBackgroundColourOption, + _setBackgroundColourOption + }); + // Class attributes + Sharp.colourspace = colourspace; + Sharp.colorspace = colourspace; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/composite.cjs b/apps/api/.output/node_modules/sharp/dist/composite.cjs new file mode 100644 index 0000000..630e174 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/composite.cjs @@ -0,0 +1,213 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is.cjs'); + +/** + * Blend modes. + * @member + * @private + */ +const blend = { + clear: 'clear', + source: 'source', + over: 'over', + in: 'in', + out: 'out', + atop: 'atop', + dest: 'dest', + 'dest-over': 'dest-over', + 'dest-in': 'dest-in', + 'dest-out': 'dest-out', + 'dest-atop': 'dest-atop', + xor: 'xor', + add: 'add', + saturate: 'saturate', + multiply: 'multiply', + screen: 'screen', + overlay: 'overlay', + darken: 'darken', + lighten: 'lighten', + 'colour-dodge': 'colour-dodge', + 'color-dodge': 'colour-dodge', + 'colour-burn': 'colour-burn', + 'color-burn': 'colour-burn', + 'hard-light': 'hard-light', + 'soft-light': 'soft-light', + difference: 'difference', + exclusion: 'exclusion' +}; + +/** + * Composite image(s) over the processed (resized, extracted etc.) image. + * + * The images to composite must be the same size or smaller than the processed image. + * If both `top` and `left` options are provided, they take precedence over `gravity`. + * + * Other operations in the same processing pipeline (e.g. resize, rotate, flip, + * flop, extract) will always be applied to the input image before composition. + * + * The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`, + * `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`, + * `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, + * `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`, + * `hard-light`, `soft-light`, `difference`, `exclusion`. + * + * More information about blend modes can be found at + * https://www.libvips.org/API/current/enum.BlendMode.html + * and https://www.cairographics.org/operators/ + * + * @since 0.22.0 + * + * @example + * await sharp(background) + * .composite([ + * { input: layer1, gravity: 'northwest' }, + * { input: layer2, gravity: 'southeast' }, + * ]) + * .toFile('combined.png'); + * + * @example + * const output = await sharp('input.gif', { animated: true }) + * .composite([ + * { input: 'overlay.png', tile: true, blend: 'saturate' } + * ]) + * .toBuffer(); + * + * @example + * sharp('input.png') + * .rotate(180) + * .resize(300) + * .flatten( { background: '#ff6600' } ) + * .composite([{ input: 'overlay.png', gravity: 'southeast' }]) + * .sharpen() + * .withMetadata() + * .webp( { quality: 90 } ) + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains upside down, 300px wide, alpha channel flattened + * // onto orange background, composited with overlay.png with SE gravity, + * // sharpened, with metadata, 90% quality WebP image data. Phew! + * }); + * + * @param {Object[]} images - Ordered list of images to composite + * @param {Buffer|String} [images[].input] - Buffer containing image data, String containing the path to an image file, or Create object (see below) + * @param {Object} [images[].input.create] - describes a blank overlay to be created. + * @param {Number} [images[].input.create.width] + * @param {Number} [images[].input.create.height] + * @param {Number} [images[].input.create.channels] - 3-4 + * @param {String|Object} [images[].input.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Object} [images[].input.text] - describes a new text image to be created. + * @param {string} [images[].input.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. + * @param {string} [images[].input.text.font] - font name to render with. + * @param {string} [images[].input.text.fontfile] - absolute filesystem path to a font file that can be used by `font`. + * @param {number} [images[].input.text.width=0] - integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. + * @param {number} [images[].input.text.height=0] - integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. + * @param {string} [images[].input.text.align='left'] - text alignment (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {boolean} [images[].input.text.justify=false] - set this to true to apply justification to the text. + * @param {number} [images[].input.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified. + * @param {boolean} [images[].input.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for Pango markup features like `Red!`. + * @param {number} [images[].input.text.spacing=0] - text line height in points. Will use the font line height if none is specified. + * @param {Boolean} [images[].autoOrient=false] - set to true to use EXIF orientation data, if present, to orient the image. + * @param {String} [images[].blend='over'] - how to blend this image with the image below. + * @param {String} [images[].gravity='centre'] - gravity at which to place the overlay. + * @param {Number} [images[].top] - the pixel offset from the top edge, an integer between -100000000 and 100000000. + * @param {Number} [images[].left] - the pixel offset from the left edge, an integer between -100000000 and 100000000. + * @param {Boolean} [images[].tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`. + * @param {Boolean} [images[].premultiplied=false] - set to true to avoid premultiplying the image below. Equivalent to the `--premultiplied` vips option. + * @param {Number} [images[].density=72] - number representing the DPI for vector overlay image. + * @param {Object} [images[].raw] - describes overlay when using raw pixel data. + * @param {Number} [images[].raw.width] + * @param {Number} [images[].raw.height] + * @param {Number} [images[].raw.channels] + * @param {boolean} [images[].animated=false] - Set to `true` to read all frames/pages of an animated image. + * @param {string} [images[].failOn='warning'] - @see {@link /api-constructor/ constructor parameters} + * @param {number|boolean} [images[].limitInputPixels=268402689] - @see {@link /api-constructor/ constructor parameters} + * @param {number|boolean} [images[].limitInputChannels=5] - @see {@link /api-constructor/ constructor parameters} + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function composite (images) { + if (!Array.isArray(images)) { + throw is.invalidParameterError('images to composite', 'array', images); + } + this.options.composite = images.map(image => { + if (!is.object(image)) { + throw is.invalidParameterError('image to composite', 'object', image); + } + const inputOptions = this._inputOptionsFromObject(image); + const composite = { + input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }), + blend: 'over', + tile: false, + left: 0, + top: 0, + hasOffset: false, + gravity: 0, + premultiplied: false + }; + if (is.defined(image.blend)) { + if (is.string(blend[image.blend])) { + composite.blend = blend[image.blend]; + } else { + throw is.invalidParameterError('blend', 'valid blend name', image.blend); + } + } + if (is.defined(image.tile)) { + if (is.bool(image.tile)) { + composite.tile = image.tile; + } else { + throw is.invalidParameterError('tile', 'boolean', image.tile); + } + } + if (is.defined(image.left)) { + if (is.integer(image.left) && is.inRange(image.left, -100000000, 100000000)) { + composite.left = image.left; + } else { + throw is.invalidParameterError('left', 'integer between -100000000 and 100000000', image.left); + } + } + if (is.defined(image.top)) { + if (is.integer(image.top) && is.inRange(image.top, -100000000, 100000000)) { + composite.top = image.top; + } else { + throw is.invalidParameterError('top', 'integer between -100000000 and 100000000', image.top); + } + } + if (is.defined(image.top) !== is.defined(image.left)) { + throw new Error('Expected both left and top to be set'); + } else { + composite.hasOffset = is.integer(image.top) && is.integer(image.left); + } + if (is.defined(image.gravity)) { + if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) { + composite.gravity = image.gravity; + } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) { + composite.gravity = this.constructor.gravity[image.gravity]; + } else { + throw is.invalidParameterError('gravity', 'valid gravity', image.gravity); + } + } + if (is.defined(image.premultiplied)) { + if (is.bool(image.premultiplied)) { + composite.premultiplied = image.premultiplied; + } else { + throw is.invalidParameterError('premultiplied', 'boolean', image.premultiplied); + } + } + return composite; + }); + return this; +} + +/** + * Decorate the Sharp prototype with composite-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Sharp.prototype.composite = composite; + Sharp.blend = blend; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/composite.mjs b/apps/api/.output/node_modules/sharp/dist/composite.mjs new file mode 100644 index 0000000..4c8119a --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/composite.mjs @@ -0,0 +1,213 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import is from './is.mjs'; + +/** + * Blend modes. + * @member + * @private + */ +const blend = { + clear: 'clear', + source: 'source', + over: 'over', + in: 'in', + out: 'out', + atop: 'atop', + dest: 'dest', + 'dest-over': 'dest-over', + 'dest-in': 'dest-in', + 'dest-out': 'dest-out', + 'dest-atop': 'dest-atop', + xor: 'xor', + add: 'add', + saturate: 'saturate', + multiply: 'multiply', + screen: 'screen', + overlay: 'overlay', + darken: 'darken', + lighten: 'lighten', + 'colour-dodge': 'colour-dodge', + 'color-dodge': 'colour-dodge', + 'colour-burn': 'colour-burn', + 'color-burn': 'colour-burn', + 'hard-light': 'hard-light', + 'soft-light': 'soft-light', + difference: 'difference', + exclusion: 'exclusion' +}; + +/** + * Composite image(s) over the processed (resized, extracted etc.) image. + * + * The images to composite must be the same size or smaller than the processed image. + * If both `top` and `left` options are provided, they take precedence over `gravity`. + * + * Other operations in the same processing pipeline (e.g. resize, rotate, flip, + * flop, extract) will always be applied to the input image before composition. + * + * The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`, + * `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`, + * `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, + * `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`, + * `hard-light`, `soft-light`, `difference`, `exclusion`. + * + * More information about blend modes can be found at + * https://www.libvips.org/API/current/enum.BlendMode.html + * and https://www.cairographics.org/operators/ + * + * @since 0.22.0 + * + * @example + * await sharp(background) + * .composite([ + * { input: layer1, gravity: 'northwest' }, + * { input: layer2, gravity: 'southeast' }, + * ]) + * .toFile('combined.png'); + * + * @example + * const output = await sharp('input.gif', { animated: true }) + * .composite([ + * { input: 'overlay.png', tile: true, blend: 'saturate' } + * ]) + * .toBuffer(); + * + * @example + * sharp('input.png') + * .rotate(180) + * .resize(300) + * .flatten( { background: '#ff6600' } ) + * .composite([{ input: 'overlay.png', gravity: 'southeast' }]) + * .sharpen() + * .withMetadata() + * .webp( { quality: 90 } ) + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains upside down, 300px wide, alpha channel flattened + * // onto orange background, composited with overlay.png with SE gravity, + * // sharpened, with metadata, 90% quality WebP image data. Phew! + * }); + * + * @param {Object[]} images - Ordered list of images to composite + * @param {Buffer|String} [images[].input] - Buffer containing image data, String containing the path to an image file, or Create object (see below) + * @param {Object} [images[].input.create] - describes a blank overlay to be created. + * @param {Number} [images[].input.create.width] + * @param {Number} [images[].input.create.height] + * @param {Number} [images[].input.create.channels] - 3-4 + * @param {String|Object} [images[].input.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Object} [images[].input.text] - describes a new text image to be created. + * @param {string} [images[].input.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. + * @param {string} [images[].input.text.font] - font name to render with. + * @param {string} [images[].input.text.fontfile] - absolute filesystem path to a font file that can be used by `font`. + * @param {number} [images[].input.text.width=0] - integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. + * @param {number} [images[].input.text.height=0] - integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. + * @param {string} [images[].input.text.align='left'] - text alignment (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {boolean} [images[].input.text.justify=false] - set this to true to apply justification to the text. + * @param {number} [images[].input.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified. + * @param {boolean} [images[].input.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for Pango markup features like `Red!`. + * @param {number} [images[].input.text.spacing=0] - text line height in points. Will use the font line height if none is specified. + * @param {Boolean} [images[].autoOrient=false] - set to true to use EXIF orientation data, if present, to orient the image. + * @param {String} [images[].blend='over'] - how to blend this image with the image below. + * @param {String} [images[].gravity='centre'] - gravity at which to place the overlay. + * @param {Number} [images[].top] - the pixel offset from the top edge, an integer between -100000000 and 100000000. + * @param {Number} [images[].left] - the pixel offset from the left edge, an integer between -100000000 and 100000000. + * @param {Boolean} [images[].tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`. + * @param {Boolean} [images[].premultiplied=false] - set to true to avoid premultiplying the image below. Equivalent to the `--premultiplied` vips option. + * @param {Number} [images[].density=72] - number representing the DPI for vector overlay image. + * @param {Object} [images[].raw] - describes overlay when using raw pixel data. + * @param {Number} [images[].raw.width] + * @param {Number} [images[].raw.height] + * @param {Number} [images[].raw.channels] + * @param {boolean} [images[].animated=false] - Set to `true` to read all frames/pages of an animated image. + * @param {string} [images[].failOn='warning'] - @see {@link /api-constructor/ constructor parameters} + * @param {number|boolean} [images[].limitInputPixels=268402689] - @see {@link /api-constructor/ constructor parameters} + * @param {number|boolean} [images[].limitInputChannels=5] - @see {@link /api-constructor/ constructor parameters} + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function composite (images) { + if (!Array.isArray(images)) { + throw is.invalidParameterError('images to composite', 'array', images); + } + this.options.composite = images.map(image => { + if (!is.object(image)) { + throw is.invalidParameterError('image to composite', 'object', image); + } + const inputOptions = this._inputOptionsFromObject(image); + const composite = { + input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }), + blend: 'over', + tile: false, + left: 0, + top: 0, + hasOffset: false, + gravity: 0, + premultiplied: false + }; + if (is.defined(image.blend)) { + if (is.string(blend[image.blend])) { + composite.blend = blend[image.blend]; + } else { + throw is.invalidParameterError('blend', 'valid blend name', image.blend); + } + } + if (is.defined(image.tile)) { + if (is.bool(image.tile)) { + composite.tile = image.tile; + } else { + throw is.invalidParameterError('tile', 'boolean', image.tile); + } + } + if (is.defined(image.left)) { + if (is.integer(image.left) && is.inRange(image.left, -100000000, 100000000)) { + composite.left = image.left; + } else { + throw is.invalidParameterError('left', 'integer between -100000000 and 100000000', image.left); + } + } + if (is.defined(image.top)) { + if (is.integer(image.top) && is.inRange(image.top, -100000000, 100000000)) { + composite.top = image.top; + } else { + throw is.invalidParameterError('top', 'integer between -100000000 and 100000000', image.top); + } + } + if (is.defined(image.top) !== is.defined(image.left)) { + throw new Error('Expected both left and top to be set'); + } else { + composite.hasOffset = is.integer(image.top) && is.integer(image.left); + } + if (is.defined(image.gravity)) { + if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) { + composite.gravity = image.gravity; + } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) { + composite.gravity = this.constructor.gravity[image.gravity]; + } else { + throw is.invalidParameterError('gravity', 'valid gravity', image.gravity); + } + } + if (is.defined(image.premultiplied)) { + if (is.bool(image.premultiplied)) { + composite.premultiplied = image.premultiplied; + } else { + throw is.invalidParameterError('premultiplied', 'boolean', image.premultiplied); + } + } + return composite; + }); + return this; +} + +/** + * Decorate the Sharp prototype with composite-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Sharp.prototype.composite = composite; + Sharp.blend = blend; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/constructor.cjs b/apps/api/.output/node_modules/sharp/dist/constructor.cjs new file mode 100644 index 0000000..aab934b --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/constructor.cjs @@ -0,0 +1,511 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const util = require('node:util'); +const stream = require('node:stream'); +const is = require('./is.cjs'); + +require('./sharp.cjs'); + +// Use NODE_DEBUG=sharp to enable libvips warnings +const debuglog = util.debuglog('sharp'); + +const queueListener = (queueLength) => { + Sharp.queue.emit('change', queueLength); +}; + +/** + * Constructor factory to create an instance of `sharp`, to which further methods are chained. + * + * JPEG, PNG, WebP, GIF, AVIF or TIFF format image data can be streamed out from this object. + * When using Stream based output, derived attributes are available from the `info` event. + * + * Non-critical problems encountered during processing are emitted as `warning` events. + * + * Implements the [stream.Duplex](http://nodejs.org/api/stream.html#stream_class_stream_duplex) class. + * + * When loading more than one page/frame of an animated image, + * these are combined as a vertically-stacked "toilet roll" image + * where the overall height is the `pageHeight` multiplied by the number of `pages`. + * + * @constructs Sharp + * + * @emits Sharp#info + * @emits Sharp#warning + * + * @example + * sharp('input.jpg') + * .resize(300, 200) + * .toFile('output.jpg', function(err) { + * // output.jpg is a 300 pixels wide and 200 pixels high image + * // containing a scaled and cropped version of input.jpg + * }); + * + * @example + * // Read image data from remote URL, + * // resize to 300 pixels wide, + * // emit an 'info' event with calculated dimensions + * // and finally write image data to writableStream + * const { body } = await fetch('https://...'); + * const readableStream = Readable.fromWeb(body); + * const transformer = sharp() + * .resize(300) + * .on('info', ({ height }) => { + * console.log(`Image height is ${height}`); + * }); + * readableStream.pipe(transformer).pipe(writableStream); + * + * @example + * // Web Streams API, requires Node.js >= 24.15.0 + * const { Duplex } = require('node:stream'); + * + * const { body } = await fetch('https://...'); + * const transformer = Duplex.toWeb( + * sharp().resize(300), + * { readableType: 'bytes' } + * ); + * body.pipeThrough(transformer).pipeTo(writable); + * + * @example + * // Create a blank 300x200 PNG image of semi-translucent red pixels + * sharp({ + * create: { + * width: 300, + * height: 200, + * channels: 4, + * background: { r: 255, g: 0, b: 0, alpha: 0.5 } + * } + * }) + * .png() + * .toBuffer() + * .then( ... ); + * + * @example + * // Convert an animated GIF to an animated WebP + * await sharp('in.gif', { animated: true }).toFile('out.webp'); + * + * @example + * // Read a raw array of pixels and save it to a png + * const input = Uint8Array.from([255, 255, 255, 0, 0, 0]); // or Uint8ClampedArray + * const image = sharp(input, { + * // because the input does not contain its dimensions or how many channels it has + * // we need to specify it in the constructor options + * raw: { + * width: 2, + * height: 1, + * channels: 3 + * } + * }); + * await image.toFile('my-two-pixels.png'); + * + * @example + * // Generate RGB Gaussian noise + * await sharp({ + * create: { + * width: 300, + * height: 200, + * channels: 3, + * noise: { + * type: 'gaussian', + * mean: 128, + * sigma: 30 + * } + * } + * }).toFile('noise.png'); + * + * @example + * // Generate an image from text + * await sharp({ + * text: { + * text: 'Hello, world!', + * width: 400, // max width + * height: 300 // max height + * } + * }).toFile('text_bw.png'); + * + * @example + * // Generate an rgba image from text using pango markup and font + * await sharp({ + * text: { + * text: 'Red!blue', + * font: 'sans', + * rgba: true, + * dpi: 300 + * } + * }).toFile('text_rgba.png'); + * + * @example + * // Join four input images as a 2x2 grid with a 4 pixel gutter + * const data = await sharp( + * [image1, image2, image3, image4], + * { join: { across: 2, shim: 4 } } + * ).toBuffer(); + * + * @example + * // Generate a two-frame animated image from emoji + * const images = ['😀', '😛'].map(text => ({ + * text: { text, width: 64, height: 64, channels: 4, rgba: true } + * })); + * await sharp(images, { join: { animated: true } }).toFile('out.gif'); + * + * @param {(Buffer|ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array|Float32Array|Float64Array|string|Array)} [input] - if present, can be + * a Buffer / ArrayBuffer / Uint8Array / Uint8ClampedArray containing JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image data, or + * a TypedArray containing raw pixel image data, or + * a String containing the filesystem path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file. + * An array of inputs can be provided, and these will be joined together. + * JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data can be streamed into the object when not present. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string} [options.failOn='warning'] - When to abort processing of invalid pixel data, one of (in order of sensitivity, least to most): 'none', 'truncated', 'error', 'warning'. Higher levels imply lower levels. Invalid metadata will always abort. Use the default 'warning' level with untrusted input. + * @param {number|boolean} [options.limitInputPixels=268402689] - Do not process input images where the number of pixels + * (width x height) exceeds this limit. Assumes image dimensions contained in the input metadata can be trusted. + * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF). + * @param {number|boolean} [options.limitInputChannels=5] - Do not process input images where the number of channels exceeds this limit. Assumes image metadata can be trusted. + * An integral Number of channels, zero or false to remove limit, true to use default limit of 5. + * @param {boolean} [options.unlimited=false] - Set this to `true` to remove safety features that help prevent memory exhaustion (JPEG, PNG, SVG, HEIF). + * @param {boolean} [options.autoOrient=false] - Set this to `true` to rotate/flip the image to match EXIF `Orientation`, if any. + * @param {boolean} [options.sequentialRead=true] - Set this to `false` to use random access rather than sequential read. Some operations will do this automatically. + * @param {number} [options.density=72] - The DPI at which to render SVG and PDF images, in the range 1 to 100000. + * @param {number} [options.ignoreIcc=false] - should the embedded ICC profile, if any, be ignored. + * @param {number} [options.pages=1] - Number of pages to extract for multi-page input (GIF, WebP, TIFF), use -1 for all pages. + * @param {number} [options.page=0] - Page number to start extracting from for multi-page input (GIF, WebP, TIFF), zero based. + * @param {boolean} [options.animated=false] - Set to `true` to read all frames/pages of an animated image (GIF, WebP, TIFF), equivalent of setting `pages` to `-1`. + * @param {Object} [options.raw] - describes raw pixel input image data. See `raw()` for pixel ordering. + * @param {number} [options.raw.width] - integral number of pixels wide. + * @param {number} [options.raw.height] - integral number of pixels high. + * @param {number} [options.raw.channels] - integral number of channels, between 1 and 4. + * @param {boolean} [options.raw.premultiplied] - specifies that the raw input has already been premultiplied, set to `true` + * to avoid sharp premultiplying the image. (optional, default `false`) + * @param {number} [options.raw.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `raw.height`. + * @param {Object} [options.create] - describes a new image to be created. + * @param {number} [options.create.width] - integral number of pixels wide. + * @param {number} [options.create.height] - integral number of pixels high. + * @param {number} [options.create.channels] - integral number of channels, either 3 (RGB) or 4 (RGBA). + * @param {string|Object} [options.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {number} [options.create.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `create.height`. + * @param {Object} [options.create.noise] - describes a noise to be created. + * @param {string} [options.create.noise.type] - type of generated noise, currently only `gaussian` is supported. + * @param {number} [options.create.noise.mean=128] - Mean value of pixels in the generated noise. + * @param {number} [options.create.noise.sigma=30] - Standard deviation of pixel values in the generated noise. + * @param {Object} [options.text] - describes a new text image to be created. + * @param {string} [options.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. + * @param {string} [options.text.font] - font name to render with. + * @param {string} [options.text.fontfile] - absolute filesystem path to a font file that can be used by `font`. + * @param {number} [options.text.width=0] - Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. + * @param {number} [options.text.height=0] - Maximum integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. + * @param {string} [options.text.align='left'] - Alignment style for multi-line text (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {boolean} [options.text.justify=false] - set this to true to apply justification to the text. + * @param {number} [options.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified. + * @param {boolean} [options.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for pango markup features like `Red!`. + * @param {number} [options.text.spacing=0] - text line height in points. Will use the font line height if none is specified. + * @param {string} [options.text.wrap='word'] - word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none'. + * @param {Object} [options.join] - describes how an array of input images should be joined. + * @param {number} [options.join.across=1] - number of images to join horizontally. + * @param {boolean} [options.join.animated=false] - set this to `true` to join the images as an animated image. + * @param {number} [options.join.shim=0] - number of pixels to insert between joined images. + * @param {string|Object} [options.join.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {string} [options.join.halign='left'] - horizontal alignment style for images joined horizontally (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {string} [options.join.valign='top'] - vertical alignment style for images joined vertically (`'top'`, `'centre'`, `'center'`, `'bottom'`). + * @param {Object} [options.tiff] - Describes TIFF specific options. + * @param {number} [options.tiff.subifd=-1] - Sub Image File Directory to extract for OME-TIFF, defaults to main image. + * @param {Object} [options.svg] - Describes SVG specific options. + * @param {string} [options.svg.stylesheet] - Custom CSS for SVG input, applied with a User Origin during the CSS cascade. + * @param {boolean} [options.svg.highBitdepth=false] - Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA. + * @param {Object} [options.pdf] - Describes PDF specific options. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick. + * @param {string|Object} [options.pdf.background] - Background colour to use when PDF is partially transparent. Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Object} [options.openSlide] - Describes OpenSlide specific options. Requires the use of a globally-installed libvips compiled with support for OpenSlide. + * @param {number} [options.openSlide.level=0] - Level to extract from a multi-level input, zero based. + * @param {Object} [options.jp2] - Describes JPEG 2000 specific options. Requires the use of a globally-installed libvips compiled with support for OpenJPEG. + * @param {boolean} [options.jp2.oneshot=false] - Set to `true` to decode tiled JPEG 2000 images in a single operation, improving compatibility. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +const Sharp = function (input, options) { + // biome-ignore lint/complexity/noArguments: constructor factory + if (arguments.length === 1 && !is.defined(input)) { + throw new Error('Invalid input'); + } + if (!(this instanceof Sharp)) { + return new Sharp(input, options); + } + stream.Duplex.call(this); + this.options = { + // resize options + topOffsetPre: -1, + leftOffsetPre: -1, + widthPre: -1, + heightPre: -1, + topOffsetPost: -1, + leftOffsetPost: -1, + widthPost: -1, + heightPost: -1, + width: -1, + height: -1, + canvas: 'crop', + position: 0, + resizeBackground: [0, 0, 0, 255], + angle: 0, + rotationAngle: 0, + rotationBackground: [0, 0, 0, 255], + rotateBefore: false, + orientBefore: false, + flip: false, + flop: false, + extendTop: 0, + extendBottom: 0, + extendLeft: 0, + extendRight: 0, + extendBackground: [0, 0, 0, 255], + extendWith: 'background', + withoutEnlargement: false, + withoutReduction: false, + affineMatrix: [], + affineBackground: [0, 0, 0, 255], + affineIdx: 0, + affineIdy: 0, + affineOdx: 0, + affineOdy: 0, + affineInterpolator: this.constructor.interpolators.bilinear, + kernel: 'lanczos3', + fastShrinkOnLoad: true, + // operations + tint: [-1, 0, 0, 0], + flatten: false, + flattenBackground: [0, 0, 0], + unflatten: false, + negate: false, + negateAlpha: true, + medianSize: 0, + blurSigma: 0, + precision: 'integer', + minAmpl: 0.2, + sharpenSigma: 0, + sharpenM1: 1, + sharpenM2: 2, + sharpenX1: 2, + sharpenY2: 10, + sharpenY3: 20, + threshold: 0, + thresholdGrayscale: true, + trimBackground: [], + trimThreshold: -1, + trimLineArt: false, + trimMargin: 0, + dilateWidth: 0, + erodeWidth: 0, + gamma: 0, + gammaOut: 0, + greyscale: false, + normalise: false, + normaliseLower: 1, + normaliseUpper: 99, + claheWidth: 0, + claheHeight: 0, + claheMaxSlope: 3, + brightness: 1, + saturation: 1, + hue: 0, + lightness: 0, + booleanBufferIn: null, + booleanFileIn: '', + joinChannelIn: [], + extractChannel: -1, + removeAlpha: false, + ensureAlpha: -1, + colourspace: 'srgb', + colourspacePipeline: 'last', + composite: [], + // output + fileOut: '', + formatOut: 'input', + streamOut: false, + typedArrayOut: false, + keepMetadata: 0, + withMetadataOrientation: -1, + withMetadataDensity: 0, + withIccProfile: '', + withExif: {}, + withExifMerge: true, + withXmp: '', + keepGainMap: false, + withGainMap: false, + resolveWithObject: false, + loop: -1, + delay: [], + // output format + jpegQuality: 80, + jpegProgressive: false, + jpegChromaSubsampling: '4:2:0', + jpegTrellisQuantisation: false, + jpegOvershootDeringing: false, + jpegOptimiseScans: false, + jpegOptimiseCoding: true, + jpegQuantisationTable: 0, + pngProgressive: false, + pngCompressionLevel: 6, + pngAdaptiveFiltering: false, + pngPalette: false, + pngQuality: 100, + pngEffort: 7, + pngBitdepth: 8, + pngDither: 1, + jp2Quality: 80, + jp2TileHeight: 512, + jp2TileWidth: 512, + jp2Lossless: false, + jp2ChromaSubsampling: '4:4:4', + webpQuality: 80, + webpAlphaQuality: 100, + webpLossless: false, + webpNearLossless: false, + webpSmartSubsample: false, + webpSmartDeblock: false, + webpPreset: 'default', + webpEffort: 4, + webpMinSize: false, + webpMixed: false, + webpExact: false, + gifBitdepth: 8, + gifEffort: 7, + gifDither: 1, + gifInterFrameMaxError: 0, + gifInterPaletteMaxError: 3, + gifKeepDuplicateFrames: false, + gifReuse: true, + gifProgressive: false, + tiffQuality: 80, + tiffCompression: 'jpeg', + tiffBigtiff: false, + tiffPredictor: 'horizontal', + tiffPyramid: false, + tiffMiniswhite: false, + tiffBitdepth: 0, + tiffTile: false, + tiffTileHeight: 256, + tiffTileWidth: 256, + tiffXres: 1.0, + tiffYres: 1.0, + tiffResolutionUnit: 'inch', + heifQuality: 50, + heifLossless: false, + heifCompression: 'av1', + heifEffort: 4, + heifChromaSubsampling: '4:4:4', + heifBitdepth: 8, + heifTune: 'auto', + jxlDistance: 1, + jxlDecodingTier: 0, + jxlEffort: 7, + jxlLossless: false, + rawDepth: 'uchar', + tileSize: 256, + tileOverlap: 0, + tileContainer: 'fs', + tileLayout: 'dz', + tileFormat: 'last', + tileDepth: 'last', + tileAngle: 0, + tileSkipBlanks: -1, + tileBackground: [255, 255, 255, 255], + tileCentre: false, + tileId: 'https://example.com/iiif', + tileBasename: '', + timeoutSeconds: 0, + linearA: [], + linearB: [], + pdfBackground: [255, 255, 255, 255], + // Function to notify of libvips warnings + debuglog: warning => { + this.emit('warning', warning); + debuglog(warning); + }, + // Function to notify of queue length changes + queueListener + }; + this.options.input = this._createInputDescriptor(input, options, { allowStream: true }); + return this; +}; +Object.setPrototypeOf(Sharp.prototype, stream.Duplex.prototype); +Object.setPrototypeOf(Sharp, stream.Duplex); + +/** + * Take a "snapshot" of the Sharp instance, returning a new instance. + * Cloned instances inherit the input of their parent instance. + * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream. + * + * @example + * // firstWritableStream receives auto-rotated, resized readableStream + * // secondWritableStream receives auto-rotated, extracted region of readableStream + * + * const pipeline = sharp().rotate(); + * pipeline + * .clone() + * .resize(800, 600) + * .pipe(firstWritableStream); + * pipeline + * .clone() + * .extract({ left: 20, top: 20, width: 100, height: 100 }) + * .pipe(secondWritableStream); + * readableStream.pipe(pipeline); + * + * @example + * // Create a pipeline that will download an image, resize it and format it to different files + * // Using Promises to know when the pipeline is complete + * + * const sharpStream = sharp(); + * + * const promises = []; + * promises.push( + * sharpStream + * .clone() + * .jpeg({ quality: 100 }) + * .toFile("originalFile.jpg") + * ); + * promises.push( + * sharpStream + * .clone() + * .resize({ width: 500 }) + * .jpeg({ quality: 80 }) + * .toFile("optimized-500.jpg") + * ); + * promises.push( + * sharpStream + * .clone() + * .resize({ width: 500 }) + * .webp({ quality: 80 }) + * .toFile("optimized-500.webp") + * ); + * + * const res = await fetch("https://www.example.com/some-file.jpg") + * Readable.fromWeb(res.body).pipe(sharpStream); + * await Promise.all(promises); + * + * @returns {Sharp} + */ +function clone () { + // Clone existing options + const clone = this.constructor.call(); + const { debuglog, queueListener, ...options } = this.options; + clone.options = structuredClone(options); + clone.options.debuglog = debuglog; + clone.options.queueListener = queueListener; + // Pass 'finish' event to clone for Stream-based input + if (this._isStreamInput()) { + this._whenStreamInFinished(() => { + // Clone inherits input data + this._flattenBufferIn(); + clone.options.input.buffer = this.options.input.buffer; + clone.emit('finish'); + }); + } + return clone; +} +Object.assign(Sharp.prototype, { clone }); + +/** + * Export constructor. + * @module Sharp + * @private + */ +module.exports = Sharp; diff --git a/apps/api/.output/node_modules/sharp/dist/constructor.mjs b/apps/api/.output/node_modules/sharp/dist/constructor.mjs new file mode 100644 index 0000000..f2b9869 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/constructor.mjs @@ -0,0 +1,511 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import util from 'node:util'; +import stream from 'node:stream'; +import is from './is.mjs'; + +import './sharp.mjs'; + +// Use NODE_DEBUG=sharp to enable libvips warnings +const debuglog = util.debuglog('sharp'); + +const queueListener = (queueLength) => { + Sharp.queue.emit('change', queueLength); +}; + +/** + * Constructor factory to create an instance of `sharp`, to which further methods are chained. + * + * JPEG, PNG, WebP, GIF, AVIF or TIFF format image data can be streamed out from this object. + * When using Stream based output, derived attributes are available from the `info` event. + * + * Non-critical problems encountered during processing are emitted as `warning` events. + * + * Implements the [stream.Duplex](http://nodejs.org/api/stream.html#stream_class_stream_duplex) class. + * + * When loading more than one page/frame of an animated image, + * these are combined as a vertically-stacked "toilet roll" image + * where the overall height is the `pageHeight` multiplied by the number of `pages`. + * + * @constructs Sharp + * + * @emits Sharp#info + * @emits Sharp#warning + * + * @example + * sharp('input.jpg') + * .resize(300, 200) + * .toFile('output.jpg', function(err) { + * // output.jpg is a 300 pixels wide and 200 pixels high image + * // containing a scaled and cropped version of input.jpg + * }); + * + * @example + * // Read image data from remote URL, + * // resize to 300 pixels wide, + * // emit an 'info' event with calculated dimensions + * // and finally write image data to writableStream + * const { body } = await fetch('https://...'); + * const readableStream = Readable.fromWeb(body); + * const transformer = sharp() + * .resize(300) + * .on('info', ({ height }) => { + * console.log(`Image height is ${height}`); + * }); + * readableStream.pipe(transformer).pipe(writableStream); + * + * @example + * // Web Streams API, requires Node.js >= 24.15.0 + * import { Duplex } from 'node:stream'; + * + * const { body } = await fetch('https://...'); + * const transformer = Duplex.toWeb( + * sharp().resize(300), + * { readableType: 'bytes' } + * ); + * body.pipeThrough(transformer).pipeTo(writable); + * + * @example + * // Create a blank 300x200 PNG image of semi-translucent red pixels + * sharp({ + * create: { + * width: 300, + * height: 200, + * channels: 4, + * background: { r: 255, g: 0, b: 0, alpha: 0.5 } + * } + * }) + * .png() + * .toBuffer() + * .then( ... ); + * + * @example + * // Convert an animated GIF to an animated WebP + * await sharp('in.gif', { animated: true }).toFile('out.webp'); + * + * @example + * // Read a raw array of pixels and save it to a png + * const input = Uint8Array.from([255, 255, 255, 0, 0, 0]); // or Uint8ClampedArray + * const image = sharp(input, { + * // because the input does not contain its dimensions or how many channels it has + * // we need to specify it in the constructor options + * raw: { + * width: 2, + * height: 1, + * channels: 3 + * } + * }); + * await image.toFile('my-two-pixels.png'); + * + * @example + * // Generate RGB Gaussian noise + * await sharp({ + * create: { + * width: 300, + * height: 200, + * channels: 3, + * noise: { + * type: 'gaussian', + * mean: 128, + * sigma: 30 + * } + * } + * }).toFile('noise.png'); + * + * @example + * // Generate an image from text + * await sharp({ + * text: { + * text: 'Hello, world!', + * width: 400, // max width + * height: 300 // max height + * } + * }).toFile('text_bw.png'); + * + * @example + * // Generate an rgba image from text using pango markup and font + * await sharp({ + * text: { + * text: 'Red!blue', + * font: 'sans', + * rgba: true, + * dpi: 300 + * } + * }).toFile('text_rgba.png'); + * + * @example + * // Join four input images as a 2x2 grid with a 4 pixel gutter + * const data = await sharp( + * [image1, image2, image3, image4], + * { join: { across: 2, shim: 4 } } + * ).toBuffer(); + * + * @example + * // Generate a two-frame animated image from emoji + * const images = ['😀', '😛'].map(text => ({ + * text: { text, width: 64, height: 64, channels: 4, rgba: true } + * })); + * await sharp(images, { join: { animated: true } }).toFile('out.gif'); + * + * @param {(Buffer|ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array|Float32Array|Float64Array|string|Array)} [input] - if present, can be + * a Buffer / ArrayBuffer / Uint8Array / Uint8ClampedArray containing JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image data, or + * a TypedArray containing raw pixel image data, or + * a String containing the filesystem path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file. + * An array of inputs can be provided, and these will be joined together. + * JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data can be streamed into the object when not present. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string} [options.failOn='warning'] - When to abort processing of invalid pixel data, one of (in order of sensitivity, least to most): 'none', 'truncated', 'error', 'warning'. Higher levels imply lower levels. Invalid metadata will always abort. Use the default 'warning' level with untrusted input. + * @param {number|boolean} [options.limitInputPixels=268402689] - Do not process input images where the number of pixels + * (width x height) exceeds this limit. Assumes image dimensions contained in the input metadata can be trusted. + * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF). + * @param {number|boolean} [options.limitInputChannels=5] - Do not process input images where the number of channels exceeds this limit. Assumes image metadata can be trusted. + * An integral Number of channels, zero or false to remove limit, true to use default limit of 5. + * @param {boolean} [options.unlimited=false] - Set this to `true` to remove safety features that help prevent memory exhaustion (JPEG, PNG, SVG, HEIF). + * @param {boolean} [options.autoOrient=false] - Set this to `true` to rotate/flip the image to match EXIF `Orientation`, if any. + * @param {boolean} [options.sequentialRead=true] - Set this to `false` to use random access rather than sequential read. Some operations will do this automatically. + * @param {number} [options.density=72] - The DPI at which to render SVG and PDF images, in the range 1 to 100000. + * @param {number} [options.ignoreIcc=false] - should the embedded ICC profile, if any, be ignored. + * @param {number} [options.pages=1] - Number of pages to extract for multi-page input (GIF, WebP, TIFF), use -1 for all pages. + * @param {number} [options.page=0] - Page number to start extracting from for multi-page input (GIF, WebP, TIFF), zero based. + * @param {boolean} [options.animated=false] - Set to `true` to read all frames/pages of an animated image (GIF, WebP, TIFF), equivalent of setting `pages` to `-1`. + * @param {Object} [options.raw] - describes raw pixel input image data. See `raw()` for pixel ordering. + * @param {number} [options.raw.width] - integral number of pixels wide. + * @param {number} [options.raw.height] - integral number of pixels high. + * @param {number} [options.raw.channels] - integral number of channels, between 1 and 4. + * @param {boolean} [options.raw.premultiplied] - specifies that the raw input has already been premultiplied, set to `true` + * to avoid sharp premultiplying the image. (optional, default `false`) + * @param {number} [options.raw.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `raw.height`. + * @param {Object} [options.create] - describes a new image to be created. + * @param {number} [options.create.width] - integral number of pixels wide. + * @param {number} [options.create.height] - integral number of pixels high. + * @param {number} [options.create.channels] - integral number of channels, either 3 (RGB) or 4 (RGBA). + * @param {string|Object} [options.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {number} [options.create.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `create.height`. + * @param {Object} [options.create.noise] - describes a noise to be created. + * @param {string} [options.create.noise.type] - type of generated noise, currently only `gaussian` is supported. + * @param {number} [options.create.noise.mean=128] - Mean value of pixels in the generated noise. + * @param {number} [options.create.noise.sigma=30] - Standard deviation of pixel values in the generated noise. + * @param {Object} [options.text] - describes a new text image to be created. + * @param {string} [options.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. + * @param {string} [options.text.font] - font name to render with. + * @param {string} [options.text.fontfile] - absolute filesystem path to a font file that can be used by `font`. + * @param {number} [options.text.width=0] - Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. + * @param {number} [options.text.height=0] - Maximum integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. + * @param {string} [options.text.align='left'] - Alignment style for multi-line text (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {boolean} [options.text.justify=false] - set this to true to apply justification to the text. + * @param {number} [options.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified. + * @param {boolean} [options.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for pango markup features like `Red!`. + * @param {number} [options.text.spacing=0] - text line height in points. Will use the font line height if none is specified. + * @param {string} [options.text.wrap='word'] - word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none'. + * @param {Object} [options.join] - describes how an array of input images should be joined. + * @param {number} [options.join.across=1] - number of images to join horizontally. + * @param {boolean} [options.join.animated=false] - set this to `true` to join the images as an animated image. + * @param {number} [options.join.shim=0] - number of pixels to insert between joined images. + * @param {string|Object} [options.join.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {string} [options.join.halign='left'] - horizontal alignment style for images joined horizontally (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {string} [options.join.valign='top'] - vertical alignment style for images joined vertically (`'top'`, `'centre'`, `'center'`, `'bottom'`). + * @param {Object} [options.tiff] - Describes TIFF specific options. + * @param {number} [options.tiff.subifd=-1] - Sub Image File Directory to extract for OME-TIFF, defaults to main image. + * @param {Object} [options.svg] - Describes SVG specific options. + * @param {string} [options.svg.stylesheet] - Custom CSS for SVG input, applied with a User Origin during the CSS cascade. + * @param {boolean} [options.svg.highBitdepth=false] - Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA. + * @param {Object} [options.pdf] - Describes PDF specific options. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick. + * @param {string|Object} [options.pdf.background] - Background colour to use when PDF is partially transparent. Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Object} [options.openSlide] - Describes OpenSlide specific options. Requires the use of a globally-installed libvips compiled with support for OpenSlide. + * @param {number} [options.openSlide.level=0] - Level to extract from a multi-level input, zero based. + * @param {Object} [options.jp2] - Describes JPEG 2000 specific options. Requires the use of a globally-installed libvips compiled with support for OpenJPEG. + * @param {boolean} [options.jp2.oneshot=false] - Set to `true` to decode tiled JPEG 2000 images in a single operation, improving compatibility. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +const Sharp = function (input, options) { + // biome-ignore lint/complexity/noArguments: constructor factory + if (arguments.length === 1 && !is.defined(input)) { + throw new Error('Invalid input'); + } + if (!(this instanceof Sharp)) { + return new Sharp(input, options); + } + stream.Duplex.call(this); + this.options = { + // resize options + topOffsetPre: -1, + leftOffsetPre: -1, + widthPre: -1, + heightPre: -1, + topOffsetPost: -1, + leftOffsetPost: -1, + widthPost: -1, + heightPost: -1, + width: -1, + height: -1, + canvas: 'crop', + position: 0, + resizeBackground: [0, 0, 0, 255], + angle: 0, + rotationAngle: 0, + rotationBackground: [0, 0, 0, 255], + rotateBefore: false, + orientBefore: false, + flip: false, + flop: false, + extendTop: 0, + extendBottom: 0, + extendLeft: 0, + extendRight: 0, + extendBackground: [0, 0, 0, 255], + extendWith: 'background', + withoutEnlargement: false, + withoutReduction: false, + affineMatrix: [], + affineBackground: [0, 0, 0, 255], + affineIdx: 0, + affineIdy: 0, + affineOdx: 0, + affineOdy: 0, + affineInterpolator: this.constructor.interpolators.bilinear, + kernel: 'lanczos3', + fastShrinkOnLoad: true, + // operations + tint: [-1, 0, 0, 0], + flatten: false, + flattenBackground: [0, 0, 0], + unflatten: false, + negate: false, + negateAlpha: true, + medianSize: 0, + blurSigma: 0, + precision: 'integer', + minAmpl: 0.2, + sharpenSigma: 0, + sharpenM1: 1, + sharpenM2: 2, + sharpenX1: 2, + sharpenY2: 10, + sharpenY3: 20, + threshold: 0, + thresholdGrayscale: true, + trimBackground: [], + trimThreshold: -1, + trimLineArt: false, + trimMargin: 0, + dilateWidth: 0, + erodeWidth: 0, + gamma: 0, + gammaOut: 0, + greyscale: false, + normalise: false, + normaliseLower: 1, + normaliseUpper: 99, + claheWidth: 0, + claheHeight: 0, + claheMaxSlope: 3, + brightness: 1, + saturation: 1, + hue: 0, + lightness: 0, + booleanBufferIn: null, + booleanFileIn: '', + joinChannelIn: [], + extractChannel: -1, + removeAlpha: false, + ensureAlpha: -1, + colourspace: 'srgb', + colourspacePipeline: 'last', + composite: [], + // output + fileOut: '', + formatOut: 'input', + streamOut: false, + typedArrayOut: false, + keepMetadata: 0, + withMetadataOrientation: -1, + withMetadataDensity: 0, + withIccProfile: '', + withExif: {}, + withExifMerge: true, + withXmp: '', + keepGainMap: false, + withGainMap: false, + resolveWithObject: false, + loop: -1, + delay: [], + // output format + jpegQuality: 80, + jpegProgressive: false, + jpegChromaSubsampling: '4:2:0', + jpegTrellisQuantisation: false, + jpegOvershootDeringing: false, + jpegOptimiseScans: false, + jpegOptimiseCoding: true, + jpegQuantisationTable: 0, + pngProgressive: false, + pngCompressionLevel: 6, + pngAdaptiveFiltering: false, + pngPalette: false, + pngQuality: 100, + pngEffort: 7, + pngBitdepth: 8, + pngDither: 1, + jp2Quality: 80, + jp2TileHeight: 512, + jp2TileWidth: 512, + jp2Lossless: false, + jp2ChromaSubsampling: '4:4:4', + webpQuality: 80, + webpAlphaQuality: 100, + webpLossless: false, + webpNearLossless: false, + webpSmartSubsample: false, + webpSmartDeblock: false, + webpPreset: 'default', + webpEffort: 4, + webpMinSize: false, + webpMixed: false, + webpExact: false, + gifBitdepth: 8, + gifEffort: 7, + gifDither: 1, + gifInterFrameMaxError: 0, + gifInterPaletteMaxError: 3, + gifKeepDuplicateFrames: false, + gifReuse: true, + gifProgressive: false, + tiffQuality: 80, + tiffCompression: 'jpeg', + tiffBigtiff: false, + tiffPredictor: 'horizontal', + tiffPyramid: false, + tiffMiniswhite: false, + tiffBitdepth: 0, + tiffTile: false, + tiffTileHeight: 256, + tiffTileWidth: 256, + tiffXres: 1.0, + tiffYres: 1.0, + tiffResolutionUnit: 'inch', + heifQuality: 50, + heifLossless: false, + heifCompression: 'av1', + heifEffort: 4, + heifChromaSubsampling: '4:4:4', + heifBitdepth: 8, + heifTune: 'auto', + jxlDistance: 1, + jxlDecodingTier: 0, + jxlEffort: 7, + jxlLossless: false, + rawDepth: 'uchar', + tileSize: 256, + tileOverlap: 0, + tileContainer: 'fs', + tileLayout: 'dz', + tileFormat: 'last', + tileDepth: 'last', + tileAngle: 0, + tileSkipBlanks: -1, + tileBackground: [255, 255, 255, 255], + tileCentre: false, + tileId: 'https://example.com/iiif', + tileBasename: '', + timeoutSeconds: 0, + linearA: [], + linearB: [], + pdfBackground: [255, 255, 255, 255], + // Function to notify of libvips warnings + debuglog: warning => { + this.emit('warning', warning); + debuglog(warning); + }, + // Function to notify of queue length changes + queueListener + }; + this.options.input = this._createInputDescriptor(input, options, { allowStream: true }); + return this; +}; +Object.setPrototypeOf(Sharp.prototype, stream.Duplex.prototype); +Object.setPrototypeOf(Sharp, stream.Duplex); + +/** + * Take a "snapshot" of the Sharp instance, returning a new instance. + * Cloned instances inherit the input of their parent instance. + * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream. + * + * @example + * // firstWritableStream receives auto-rotated, resized readableStream + * // secondWritableStream receives auto-rotated, extracted region of readableStream + * + * const pipeline = sharp().rotate(); + * pipeline + * .clone() + * .resize(800, 600) + * .pipe(firstWritableStream); + * pipeline + * .clone() + * .extract({ left: 20, top: 20, width: 100, height: 100 }) + * .pipe(secondWritableStream); + * readableStream.pipe(pipeline); + * + * @example + * // Create a pipeline that will download an image, resize it and format it to different files + * // Using Promises to know when the pipeline is complete + * + * const sharpStream = sharp(); + * + * const promises = []; + * promises.push( + * sharpStream + * .clone() + * .jpeg({ quality: 100 }) + * .toFile("originalFile.jpg") + * ); + * promises.push( + * sharpStream + * .clone() + * .resize({ width: 500 }) + * .jpeg({ quality: 80 }) + * .toFile("optimized-500.jpg") + * ); + * promises.push( + * sharpStream + * .clone() + * .resize({ width: 500 }) + * .webp({ quality: 80 }) + * .toFile("optimized-500.webp") + * ); + * + * const res = await fetch("https://www.example.com/some-file.jpg") + * Readable.fromWeb(res.body).pipe(sharpStream); + * await Promise.all(promises); + * + * @returns {Sharp} + */ +function clone () { + // Clone existing options + const clone = this.constructor.call(); + const { debuglog, queueListener, ...options } = this.options; + clone.options = structuredClone(options); + clone.options.debuglog = debuglog; + clone.options.queueListener = queueListener; + // Pass 'finish' event to clone for Stream-based input + if (this._isStreamInput()) { + this._whenStreamInFinished(() => { + // Clone inherits input data + this._flattenBufferIn(); + clone.options.input.buffer = this.options.input.buffer; + clone.emit('finish'); + }); + } + return clone; +} +Object.assign(Sharp.prototype, { clone }); + +/** + * Export constructor. + * @module Sharp + * @private + */ +export default Sharp; diff --git a/apps/api/.output/node_modules/sharp/dist/index.cjs b/apps/api/.output/node_modules/sharp/dist/index.cjs new file mode 100644 index 0000000..dc07e92 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/index.cjs @@ -0,0 +1,25 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const Sharp = require('./constructor.cjs'); +const input = require('./input.cjs'); +const resize = require('./resize.cjs'); +const composite = require('./composite.cjs'); +const operation = require('./operation.cjs'); +const colour = require('./colour.cjs'); +const channel = require('./channel.cjs'); +const output = require('./output.cjs'); +const utility = require('./utility.cjs'); + +input(Sharp); +resize(Sharp); +composite(Sharp); +operation(Sharp); +colour(Sharp); +channel(Sharp); +output(Sharp); +utility(Sharp); + +module.exports = Sharp; diff --git a/apps/api/.output/node_modules/sharp/dist/index.d.cts b/apps/api/.output/node_modules/sharp/dist/index.d.cts new file mode 100644 index 0000000..470889a --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/index.d.cts @@ -0,0 +1,1999 @@ +/** + * Copyright 2017 François Nguyen and others. + * + * Billy Kwok + * Bradley Odell + * Espen Hovlandsdal + * Floris de Bijl + * François Nguyen + * Jamie Woodbury + * Wooseop Kim + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of + * the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +// SPDX-License-Identifier: MIT + +/// + +declare type Duplex = import('node:stream').Duplex; +declare type ColorLike = import('@img/colour').ColorLike; + +//#region Constructor functions + +/** + * Creates a sharp instance from an image + * @param input Buffer containing JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data, or String containing the path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file. + * @param options Object with optional attributes. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ +declare function sharp(options?: sharp.SharpOptions): sharp.Sharp; +declare function sharp( + input?: sharp.SharpInput | Array, + options?: sharp.SharpOptions, +): sharp.Sharp; + +declare namespace sharp { + /** Object containing nested boolean values representing the available input and output formats/methods. */ + const format: FormatEnum; + + /** An Object containing the version numbers of sharp, libvips and its dependencies. */ + const versions: { + aom?: string | undefined; + archive?: string | undefined; + cairo?: string | undefined; + cgif?: string | undefined; + exif?: string | undefined; + expat?: string | undefined; + ffi?: string | undefined; + fontconfig?: string | undefined; + freetype?: string | undefined; + fribidi?: string | undefined; + glib?: string | undefined; + harfbuzz?: string | undefined; + heif?: string | undefined; + highway?: string | undefined; + imagequant?: string | undefined; + lcms?: string | undefined; + mozjpeg?: string | undefined; + pango?: string | undefined; + pixman?: string | undefined; + png?: string | undefined; + "proxy-libintl"?: string | undefined; + rsvg?: string | undefined; + sharp: string; + spng?: string | undefined; + tiff?: string | undefined; + vips: string; + webp?: string | undefined; + xml?: string | undefined; + "zlib-ng"?: string | undefined; + }; + + /** An Object containing the available interpolators and their proper values */ + const interpolators: Interpolators; + + /** An EventEmitter that emits a change event when a task is either queued, waiting for libuv to provide a worker thread, complete */ + const queue: NodeJS.EventEmitter; + + //#endregion + + //#region Utility functions + + /** + * Gets or, when options are provided, sets the limits of libvips' operation cache. + * Existing entries in the cache will be trimmed after any change in limits. + * This method always returns cache statistics, useful for determining how much working memory is required for a particular task. + * @param options Object with the following attributes, or Boolean where true uses default cache settings and false removes all caching (optional, default true) + * @returns The cache results. + */ + function cache(options?: boolean | CacheOptions): CacheResult; + + /** + * Gets or sets the number of threads libvips' should create to process each image. + * The default value is the number of CPU cores. A value of 0 will reset to this default. + * The maximum number of images that can be processed in parallel is limited by libuv's UV_THREADPOOL_SIZE environment variable. + * @param concurrency The new concurrency value. + * @returns The current concurrency value. + */ + function concurrency(concurrency?: number): number; + + /** + * Provides access to internal task counters. + * @returns Object containing task counters + */ + function counters(): SharpCounters; + + /** + * Get and set use of SIMD vector unit instructions. Requires libvips to have been compiled with highway support. + * Improves the performance of resize, blur and sharpen operations by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON. + * @param enable enable or disable use of SIMD vector unit instructions + * @returns true if usage of SIMD vector unit instructions is enabled + */ + function simd(enable?: boolean): boolean; + + /** + * Block libvips operations at runtime. + * + * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable, + * which when set will block all "untrusted" operations. + * + * @since 0.32.4 + * + * @example Block all TIFF input. + * sharp.block({ + * operation: ['VipsForeignLoadTiff'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to block. + */ + function block(options: { operation: string[] }): void; + + /** + * Unblock libvips operations at runtime. + * + * This is useful for defining a list of allowed operations. + * + * @since 0.32.4 + * + * @example Block all input except WebP from the filesystem. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadWebpFile'] + * }); + * + * @example Block all input except JPEG and PNG from a Buffer or Stream. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to unblock. + */ + function unblock(options: { operation: string[] }): void; + + //#endregion + + const gravity: GravityEnum; + const strategy: StrategyEnum; + const kernel: KernelEnum; + const fit: FitEnum; + const bool: BoolEnum; + + interface Sharp extends Duplex { + //#region Channel functions + + /** + * Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel. + * @returns A sharp instance that can be used to chain operations + */ + removeAlpha(): Sharp; + + /** + * Ensure alpha channel, if missing. The added alpha channel will be fully opaque. This is a no-op if the image already has an alpha channel. + * @param alpha transparency level (0=fully-transparent, 1=fully-opaque) (optional, default 1). + * @returns A sharp instance that can be used to chain operations + */ + ensureAlpha(alpha?: number): Sharp; + + /** + * Extract a single channel from a multi-channel image. + * @param channel zero-indexed channel/band number to extract, or red, green, blue or alpha. + * @throws {Error} Invalid channel + * @returns A sharp instance that can be used to chain operations + */ + extractChannel(channel: 0 | 1 | 2 | 3 | 'red' | 'green' | 'blue' | 'alpha'): Sharp; + + /** + * Join one or more channels to the image. The meaning of the added channels depends on the output colourspace, set with toColourspace(). + * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. Channel ordering follows vips convention: + * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha. + * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha. + * + * Buffers may be any of the image formats supported by sharp. + * For raw pixel input, the options object should contain a raw attribute, which follows the format of the attribute of the same name in the sharp() constructor. + * @param images one or more images (file paths, Buffers). + * @param options image options, see sharp() constructor. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + joinChannel(images: string | Buffer | ArrayLike, options?: SharpOptions): Sharp; + + /** + * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image. + * @param boolOp one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + bandbool(boolOp: keyof BoolEnum): Sharp; + + //#endregion + + //#region Color functions + + /** + * Tint the image using the provided colour. + * An alpha channel may be present and will be unchanged by the operation. + * @param tint Parsed by the color module. + * @returns A sharp instance that can be used to chain operations + */ + tint(tint: ColorLike): Sharp; + + /** + * Convert to 8-bit greyscale; 256 shades of grey. + * This is a linear operation. + * If the input image is in a non-linear colour space such as sRGB, use gamma() with greyscale() for the best results. + * By default the output image will be web-friendly sRGB and contain three (identical) colour channels. + * This may be overridden by other sharp operations such as toColourspace('b-w'), which will produce an output image containing one colour channel. + * An alpha channel may be present, and will be unchanged by the operation. + * @param greyscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + greyscale(greyscale?: boolean): Sharp; + + /** + * Alternative spelling of greyscale(). + * @param grayscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + grayscale(grayscale?: boolean): Sharp; + + /** + * Set the pipeline colourspace. + * The input image will be converted to the provided colourspace at the start of the pipeline. + * All operations will use this colourspace before converting to the output colourspace, as defined by toColourspace. + * + * @param colourspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of pipelineColourspace + * @param colorspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColorspace(colorspace?: string): Sharp; + + /** + * Set the output colourspace. + * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * @param colourspace output colourspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of toColourspace(). + * @param colorspace output colorspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColorspace(colorspace: string): Sharp; + + //#endregion + + //#region Composite functions + + /** + * Composite image(s) over the processed (resized, extracted etc.) image. + * + * The images to composite must be the same size or smaller than the processed image. + * If both `top` and `left` options are provided, they take precedence over `gravity`. + * @param images - Ordered list of images to composite + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + composite(images: OverlayOptions[]): Sharp; + + //#endregion + + //#region Input functions + + /** + * Take a "snapshot" of the Sharp instance, returning a new instance. + * Cloned instances inherit the input of their parent instance. + * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream. + * @returns A sharp instance that can be used to chain operations + */ + clone(): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A sharp instance that can be used to chain operations + */ + metadata(callback: (err: Error, metadata: Metadata) => void): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A promise that resolves with a metadata object + */ + metadata(): Promise; + + /** + * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepMetadata(): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A sharp instance that can be used to chain operations + */ + stats(callback: (err: Error, stats: Stats) => void): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A promise that resolves with a stats object + */ + stats(): Promise; + + //#endregion + + //#region Operation functions + + /** + * Rotate the output image by either an explicit angle + * or auto-orient based on the EXIF `Orientation` tag. + * + * If an angle is provided, it is converted to a valid positive degree rotation. + * For example, `-450` will produce a 270 degree rotation. + * + * When rotating by an angle other than a multiple of 90, + * the background colour can be provided with the `background` option. + * + * If no angle is provided, it is determined from the EXIF data. + * Mirroring is supported and may infer the use of a flip operation. + * + * The use of `rotate` without an angle will remove the EXIF `Orientation` tag, if any. + * + * Only one rotation can occur per pipeline (aside from an initial call without + * arguments to orient via EXIF data). Previous calls to `rotate` in the same + * pipeline will be ignored. + * + * Multi-page images can only be rotated by 180 degrees. + * + * Method order is important when rotating, resizing and/or extracting regions, + * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`. + * + * @example + * const pipeline = sharp() + * .rotate() + * .resize(null, 200) + * .toBuffer(function (err, outputBuffer, info) { + * // outputBuffer contains 200px high JPEG image data, + * // auto-rotated using EXIF Orientation tag + * // info.width and info.height contain the dimensions of the resized image + * }); + * readableStream.pipe(pipeline); + * + * @example + * const rotateThenResize = await sharp(input) + * .rotate(90) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .toBuffer(); + * const resizeThenRotate = await sharp(input) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .rotate(90) + * .toBuffer(); + * + * @param {number} [angle=auto] angle of rotation. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string|Object} [options.background="#000000"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ + rotate(angle?: number, options?: RotateOptions): Sharp; + + /** + * Alias for calling `rotate()` with no arguments, which orients the image based + * on EXIF orientsion. + * + * This operation is aliased to emphasize its purpose, helping to remove any + * confusion between rotation and orientation. + * + * @example + * const output = await sharp(input).autoOrient().toBuffer(); + * + * @returns {Sharp} + */ + autoOrient(): Sharp + + /** + * Flip the image about the vertical Y axis. This always occurs after rotation, if any. + * The use of flip implies the removal of the EXIF Orientation tag, if any. + * @param flip true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flip(flip?: boolean): Sharp; + + /** + * Flop the image about the horizontal X axis. This always occurs after rotation, if any. + * The use of flop implies the removal of the EXIF Orientation tag, if any. + * @param flop true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flop(flop?: boolean): Sharp; + + /** + * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any. + * You must provide an array of length 4 or a 2x2 affine transformation matrix. + * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option. + * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`. + * + * In the case of a 2x2 matrix, the transform is: + * X = matrix[0, 0] * (x + idx) + matrix[0, 1] * (y + idy) + odx + * Y = matrix[1, 0] * (x + idx) + matrix[1, 1] * (y + idy) + ody + * + * where: + * + * x and y are the coordinates in input image. + * X and Y are the coordinates in output image. + * (0,0) is the upper left corner. + * + * @param matrix Affine transformation matrix, may either by a array of length four or a 2x2 matrix array + * @param options if present, is an Object with optional attributes. + * + * @returns A sharp instance that can be used to chain operations + */ + affine(matrix: [number, number, number, number] | Matrix2x2, options?: AffineOptions): Sharp; + + /** + * Sharpen the image. + * When used without parameters, performs a fast, mild sharpen of the output image. + * When a sigma is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * @param options if present, is an Object with optional attributes + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + sharpen(options?: SharpenOptions): Sharp; + + /** + * Apply median filter. When used without parameters the default window is 3x3. + * @param size square mask size: size x size (optional, default 3) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + median(size?: number): Sharp; + + /** + * Blur the image. + * When used without parameters, performs a fast, mild blur of the output image. + * When a sigma is provided, performs a slower, more accurate Gaussian blur. + * When a boolean sigma is provided, ether blur mild or disable blur + * @param sigma a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where sigma = 1 + radius / 2. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + blur(sigma?: number | boolean | BlurOptions): Sharp; + + /** + * Expand foreground objects using the dilate morphological operator. + * @param {Number} [width=1] dilation width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + dilate(width?: number): Sharp; + + /** + * Shrink foreground objects using the erode morphological operator. + * @param {Number} [width=1] erosion width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + erode(width?: number): Sharp; + + /** + * Merge alpha transparency channel, if any, with background. + * @param flatten true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flatten(flatten?: boolean | FlattenOptions): Sharp; + + /** + * Ensure the image has an alpha channel with all white pixel values made fully transparent. + * Existing alpha channel values for non-white pixels remain unchanged. + * @returns A sharp instance that can be used to chain operations + */ + unflatten(): Sharp; + + /** + * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of 1/gamma then increasing the encoding (brighten) post-resize at a factor of gamma. + * This can improve the perceived brightness of a resized image in non-linear colour spaces. + * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation when applying a gamma correction. + * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases. + * @param gamma value between 1.0 and 3.0. (optional, default 2.2) + * @param gammaOut value between 1.0 and 3.0. (optional, defaults to same as gamma) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + gamma(gamma?: number, gammaOut?: number): Sharp; + + /** + * Produce the "negative" of the image. + * @param negate true to enable and false to disable, or an object of options (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + negate(negate?: boolean | NegateOptions): Sharp; + + /** + * Enhance output image contrast by stretching its luminance to cover a full dynamic range. + * + * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes. + * + * Luminance values below the `lower` percentile will be underexposed by clipping to zero. + * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value. + * + * @param normalise options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalise(normalise?: NormaliseOptions): Sharp; + + /** + * Alternative spelling of normalise. + * @param normalize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalize(normalize?: NormaliseOptions): Sharp; + + /** + * Perform contrast limiting adaptive histogram equalization (CLAHE) + * + * This will, in general, enhance the clarity of the image by bringing out + * darker details. Please read more about CLAHE here: + * https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE + * + * @param options clahe options + */ + clahe(options: ClaheOptions): Sharp; + + /** + * Convolve the image with the specified kernel. + * @param kernel the specified kernel + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + convolve(kernel: Kernel): Sharp; + + /** + * Any pixel value greather than or equal to the threshold value will be set to 255, otherwise it will be set to 0. + * @param threshold a value in the range 0-255 representing the level at which the threshold will be applied. (optional, default 128) + * @param options threshold options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + threshold(threshold?: number, options?: ThresholdOptions): Sharp; + + /** + * Perform a bitwise boolean operation with operand image. + * This operation creates an output image where each pixel is the result of the selected bitwise boolean operation between the corresponding pixels of the input images. + * @param operand Buffer containing image data or String containing the path to an image file. + * @param operator one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @param options describes operand when using raw pixel data. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + boolean(operand: string | Buffer, operator: keyof BoolEnum, options?: { raw: Raw }): Sharp; + + /** + * Apply the linear formula a * input + b to the image (levels adjustment) + * @param a multiplier (optional, default 1.0) + * @param b offset (optional, default 0.0) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + linear(a?: number | number[] | null, b?: number | number[]): Sharp; + + /** + * Recomb the image with the specified matrix. + * @param inputMatrix 3x3 Recombination matrix or 4x4 Recombination matrix + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + recomb(inputMatrix: Matrix3x3 | Matrix4x4): Sharp; + + /** + * Transforms the image using brightness, saturation, hue rotation and lightness. + * Brightness and lightness both operate on luminance, with the difference being that brightness is multiplicative whereas lightness is additive. + * @param options describes the modulation + * @returns A sharp instance that can be used to chain operations + */ + modulate(options?: { + brightness?: number | undefined; + saturation?: number | undefined; + hue?: number | undefined; + lightness?: number | undefined; + }): Sharp; + + //#endregion + + //#region Output functions + + /** + * Write output image data to a file. + * If an explicit output format is not selected, it will be inferred from the extension, with JPEG, PNG, WebP, AVIF, TIFF, DZI, and libvips' V format supported. + * Note that raw pixel data is only supported for buffer output. + * @param fileOut The path to write the image data to. + * @param callback Callback function called on completion with two arguments (err, info). info contains the output image format, size (bytes), width, height and channels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toFile(fileOut: string, callback: (err: Error, info: OutputInfo) => void): Sharp; + + /** + * Write output image data to a file. + * @param fileOut The path to write the image data to. + * @throws {Error} Invalid parameters + * @returns A promise that fulfills with an object containing information on the resulting file + */ + toFile(fileOut: string): Promise; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @param callback Callback function called on completion with three arguments (err, buffer, info). + * @returns A sharp instance that can be used to chain operations + */ + toBuffer(callback: (err: Error, buffer: Buffer, info: OutputInfo) => void): Sharp; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with the Buffer data. + */ + toBuffer(options?: { resolveWithObject: false }): Promise>; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with an object containing the Buffer data and an info object containing the output image format, size (bytes), width, height and channels + */ + toBuffer(options: { resolveWithObject: true }): Promise<{ data: Buffer; info: OutputInfo }>; + + /** + * Write output to a Uint8Array backed by a transferable ArrayBuffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @returns A promise that resolves with an object containing the Uint8Array data and an info object containing the output image format, size (bytes), width, height and channels + */ + toUint8Array(): Promise<{ data: Uint8Array; info: OutputInfo }>; + + /** + * Set output density (DPI) in EXIF metadata. + * @param density Density in dots per inch (DPI). + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withDensity(density: number): Sharp; + + /** + * Keep all EXIF metadata from the input image in the output image. + * EXIF metadata is unsupported for TIFF output. + * @returns A sharp instance that can be used to chain operations + */ + keepExif(): Sharp; + + /** + * Set EXIF metadata in the output image, ignoring any EXIF in the input image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExif(exif: Exif): Sharp; + + /** + * Update EXIF metadata from the input image in the output image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExifMerge(exif: Exif): Sharp; + + /** + * Keep ICC profile from the input image in the output image where possible. + * @returns A sharp instance that can be used to chain operations + */ + keepIccProfile(): Sharp; + + /** + * Transform using an ICC profile and attach to the output image. + * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk). + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withIccProfile(icc: string, options?: WithIccProfileOptions): Sharp; + + /** + * Keep all XMP metadata from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepXmp(): Sharp; + + /** + * Set XMP metadata in the output image. + * @param {string} xmp - String containing XMP metadata to be embedded in the output image. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withXmp(xmp: string): Sharp; + + /** + * Include all metadata (EXIF, XMP, IPTC) from the input image in the output image. + * The default behaviour, when withMetadata is not used, is to strip all metadata and convert to the device-independent sRGB colour space. + * This will also convert to and add a web-friendly sRGB ICC profile. + * @param withMetadata + * @throws {Error} Invalid parameters. + */ + withMetadata(withMetadata?: WriteableMetadata): Sharp; + + /** + * Use these JPEG options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jpeg(options?: JpegOptions): Sharp; + + /** + * Use these JP2 (JPEG 2000) options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jp2(options?: Jp2Options): Sharp; + + /** + * Use these JPEG-XL (JXL) options for output image. + * This feature is experimental, please do not use in production systems. + * Requires libvips compiled with support for libjxl. + * The prebuilt binaries do not include this. + * Image metadata (EXIF, XMP) is unsupported. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jxl(options?: JxlOptions): Sharp; + + /** + * Use these PNG options for output image. + * PNG output is always full colour at 8 or 16 bits per pixel. + * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + png(options?: PngOptions): Sharp; + + /** + * Use these WebP options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + webp(options?: WebpOptions): Sharp; + + /** + * Use these GIF options for output image. + * Requires libvips compiled with support for ImageMagick or GraphicsMagick. The prebuilt binaries do not include this - see installing a custom libvips. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + gif(options?: GifOptions): Sharp; + + /** + * Use these AVIF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + avif(options?: AvifOptions): Sharp; + + /** + * Use these HEIF options for output image. + * Support for patent-encumbered HEIC images requires the use of a globally-installed libvips compiled with support for libheif, libde265 and x265. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + heif(options?: HeifOptions): Sharp; + + /** + * Use these TIFF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tiff(options?: TiffOptions): Sharp; + + /** + * Force output to be raw, uncompressed uint8 pixel data. + * @param options Raw output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + raw(options?: RawOptions): Sharp; + + /** + * Force output to a given format. + * @param format a String or an Object with an 'id' attribute + * @param options output options + * @throws {Error} Unsupported format or options + * @returns A sharp instance that can be used to chain operations + */ + toFormat( + format: keyof FormatEnum | AvailableFormatInfo | "avif", + options?: + | OutputOptions + | JpegOptions + | PngOptions + | WebpOptions + | AvifOptions + | HeifOptions + | JxlOptions + | GifOptions + | Jp2Options + | RawOptions + | TiffOptions, + ): Sharp; + + /** + * Use tile-based deep zoom (image pyramid) output. + * Set the format and options for tile images via the toFormat, jpeg, png or webp functions. + * Use a .zip or .szi file extension with toFile to write to a compressed archive file format. + * @param tile tile options + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tile(tile?: TileOptions): Sharp; + + /** + * Set a timeout for processing, in seconds. Use a value of zero to continue processing indefinitely, the default behaviour. + * The clock starts when libvips opens an input image for processing. Time spent waiting for a libuv thread to become available is not included. + * @param options Object with a `seconds` attribute between 0 and 3600 (number) + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + timeout(options: TimeoutOptions): Sharp; + + //#endregion + + //#region Resize functions + + /** + * Resize image to width, height or width x height. + * + * When both a width and height are provided, the possible methods by which the image should fit these are: + * - cover: Crop to cover both provided dimensions (the default). + * - contain: Embed within both provided dimensions. + * - fill: Ignore the aspect ratio of the input and stretch to both provided dimensions. + * - inside: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified. + * - outside: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified. + * Some of these values are based on the object-fit CSS property. + * + * When using a fit of cover or contain, the default position is centre. Other options are: + * - sharp.position: top, right top, right, right bottom, bottom, left bottom, left, left top. + * - sharp.gravity: north, northeast, east, southeast, south, southwest, west, northwest, center or centre. + * - sharp.strategy: cover only, dynamically crop using either the entropy or attention strategy. Some of these values are based on the object-position CSS property. + * + * The strategy-based approach resizes so one dimension is at its target length then repeatedly ranks edge regions, + * discarding the edge with the lowest score based on the selected strategy. + * - entropy: focus on the region with the highest Shannon entropy. + * - attention: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones. + * + * Possible interpolation kernels are: + * - nearest: Use nearest neighbour interpolation. + * - cubic: Use a Catmull-Rom spline. + * - lanczos2: Use a Lanczos kernel with a=2. + * - lanczos3: Use a Lanczos kernel with a=3 (the default). + * + * @param width pixels wide the resultant image should be. Use null or undefined to auto-scale the width to match the height. + * @param height pixels high the resultant image should be. Use null or undefined to auto-scale the height to match the width. + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(widthOrOptions?: number | ResizeOptions | null, height?: number | null, options?: ResizeOptions): Sharp; + + /** + * Shorthand for resize(null, null, options); + * + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(options: ResizeOptions): Sharp; + + /** + * Extend / pad / extrude one or more edges of the image with either + * the provided background colour or pixels derived from the image. + * This operation will always occur after resizing and extraction, if any. + * @param extend single pixel count to add to all edges or an Object with per-edge counts + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extend(extend: number | ExtendOptions): Sharp; + + /** + * Extract a region of the image. + * - Use extract() before resize() for pre-resize extraction. + * - Use extract() after resize() for post-resize extraction. + * - Use extract() before and after for both. + * + * @param region The region to extract + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extract(region: Region): Sharp; + + /** + * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel. + * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels. + * The info response Object will contain trimOffsetLeft and trimOffsetTop properties. + * @param options trim options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + trim(options?: TrimOptions): Sharp; + + //#endregion + } + + type SharpInput = Buffer + | ArrayBuffer + | Uint8Array + | Uint8ClampedArray + | Int8Array + | Uint16Array + | Int16Array + | Uint32Array + | Int32Array + | Float32Array + | Float64Array + | string; + + interface SharpOptions { + /** + * Auto-orient based on the EXIF `Orientation` tag, if present. + * Mirroring is supported and may infer the use of a flip operation. + * + * Using this option will remove the EXIF `Orientation` tag, if any. + */ + autoOrient?: boolean | undefined; + /** + * When to abort processing of invalid pixel data, one of (in order of sensitivity): + * 'none' (least), 'truncated', 'error' or 'warning' (most), highers level imply lower levels, invalid metadata will always abort. + * Use the default 'warning' level with untrusted input. (optional, default 'warning') + */ + failOn?: FailOnOptions | undefined; + /** + * Do not process input images where the number of pixels (width x height) exceeds this limit. + * Assumes image dimensions contained in the input metadata can be trusted. + * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF). (optional, default 268402689) + */ + limitInputPixels?: number | boolean | undefined; + /** + * Do not process input images where the number of channels exceeds this limit. + * Assumes image metadata can be trusted. + * An integral Number of channels, zero or false to remove limit, true to use default limit of 5. (optional, default 5) + */ + limitInputChannels?: number | boolean | undefined; + /** Set this to true to remove safety features that help prevent memory exhaustion (SVG, PNG). (optional, default false) */ + unlimited?: boolean | undefined; + /** Set this to false to use random access rather than sequential read. Some operations will do this automatically. */ + sequentialRead?: boolean | undefined; + /** The DPI at which to render SVG and PDF images, in the range 1 to 100000. (optional, default 72) */ + density?: number | undefined; + /** Should the embedded ICC profile, if any, be ignored. */ + ignoreIcc?: boolean | undefined; + /** Number of pages to extract for multi-page input (GIF, TIFF, PDF), use -1 for all pages */ + pages?: number | undefined; + /** Page number to start extracting from for multi-page input (GIF, TIFF, PDF), zero based. (optional, default 0) */ + page?: number | undefined; + /** TIFF specific input options */ + tiff?: TiffInputOptions | undefined; + /** SVG specific input options */ + svg?: SvgInputOptions | undefined; + /** PDF specific input options */ + pdf?: PdfInputOptions | undefined; + /** OpenSlide specific input options */ + openSlide?: OpenSlideInputOptions | undefined; + /** JPEG 2000 specific input options */ + jp2?: Jp2InputOptions | undefined; + /** @deprecated Use {@link SharpOptions.tiff} instead */ + subifd?: number | undefined; + /** @deprecated Use {@link SharpOptions.pdf} instead */ + pdfBackground?: ColorLike | undefined; + /** @deprecated Use {@link SharpOptions.openSlide} instead */ + level?: number | undefined; + /** Set to `true` to read all frames/pages of an animated image (equivalent of setting `pages` to `-1`). (optional, default false) */ + animated?: boolean | undefined; + /** Describes raw pixel input image data. See raw() for pixel ordering. */ + raw?: CreateRaw | undefined; + /** Describes a new image to be created. */ + create?: Create | undefined; + /** Describes a new text image to be created. */ + text?: CreateText | undefined; + /** Describes how array of input images should be joined. */ + join?: Join | undefined; + } + + interface CacheOptions { + /** Is the maximum memory in MB to use for this cache (optional, default 50) */ + memory?: number | undefined; + /** Is the maximum number of files to hold open (optional, default 20) */ + files?: number | undefined; + /** Is the maximum number of operations to cache (optional, default 100) */ + items?: number | undefined; + } + + interface TimeoutOptions { + /** Number of seconds after which processing will be stopped (default 0, eg disabled) */ + seconds: number; + } + + interface SharpCounters { + /** The number of tasks this module has queued waiting for libuv to provide a worker thread from its pool. */ + queue: number; + /** The number of resize tasks currently being processed. */ + process: number; + } + + interface Raw { + width: number; + height: number; + channels: Channels; + } + + interface CreateRaw extends Raw { + /** Specifies that the raw input has already been premultiplied, set to true to avoid sharp premultiplying the image. (optional, default false) */ + premultiplied?: boolean | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; + } + + type CreateChannels = 3 | 4; + + interface Create { + /** Number of pixels wide. */ + width: number; + /** Number of pixels high. */ + height: number; + /** Number of bands, 3 for RGB, 4 for RGBA */ + channels: CreateChannels; + /** Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. */ + background: ColorLike; + /** Describes a noise to be created. */ + noise?: Noise | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; + + } + + interface CreateText { + /** Text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. */ + text: string; + /** Font name to render with. */ + font?: string; + /** Absolute filesystem path to a font file that can be used by `font`. */ + fontfile?: string; + /** Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. (optional, default `0`) */ + width?: number; + /** + * Integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution + * defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. (optional, default `0`) + */ + height?: number; + /** Text alignment ('left', 'centre', 'center', 'right'). (optional, default 'left') */ + align?: TextAlign; + /** Set this to true to apply justification to the text. (optional, default `false`) */ + justify?: boolean; + /** The resolution (size) at which to render the text. Does not take effect if `height` is specified. (optional, default `72`) */ + dpi?: number; + /** + * Set this to true to enable RGBA output. This is useful for colour emoji rendering, + * or support for pango markup features like `Red!`. (optional, default `false`) + */ + rgba?: boolean; + /** Text line height in points. Will use the font line height if none is specified. (optional, default `0`) */ + spacing?: number; + /** Word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none' */ + wrap?: TextWrap; + } + + interface Join { + /** Number of images per row. */ + across?: number | undefined; + /** Treat input as frames of an animated image. */ + animated?: boolean | undefined; + /** Space between images, in pixels. */ + shim?: number | undefined; + /** Background colour. */ + background?: ColorLike | undefined; + /** Horizontal alignment. */ + halign?: HorizontalAlignment | undefined; + /** Vertical alignment. */ + valign?: VerticalAlignment | undefined; + } + + interface TiffInputOptions { + /** Sub Image File Directory to extract, defaults to main image. Use -1 for all subifds. */ + subifd?: number | undefined; + } + + interface SvgInputOptions { + /** Custom CSS for SVG input, applied with a User Origin during the CSS cascade. */ + stylesheet?: string | undefined; + /** Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA. */ + highBitdepth?: boolean | undefined; + } + + interface PdfInputOptions { + /** Background colour to use when PDF is partially transparent. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick. */ + background?: ColorLike | undefined; + } + + interface OpenSlideInputOptions { + /** Level to extract from a multi-level input, zero based. (optional, default 0) */ + level?: number | undefined; + } + + interface Jp2InputOptions { + /** Set to `true` to load JPEG 2000 images using [oneshot mode](https://github.com/libvips/libvips/issues/4205) */ + oneshot?: boolean | undefined; + } + + interface ExifDir { + [k: string]: string; + } + + interface Exif { + 'IFD0'?: ExifDir; + 'IFD1'?: ExifDir; + 'IFD2'?: ExifDir; + 'IFD3'?: ExifDir; + } + + type HeifCompression = 'av1' | 'hevc'; + + type HeifTune = 'auto' | 'iq' | 'psnr' | 'ssim'; + + type Unit = 'inch' | 'cm'; + + type MediaType = + 'application/pdf' | + 'image/avif' | + 'image/fits' | + 'image/gif' | + 'image/heic' | + 'image/jp2' | + 'image/jpeg' | + 'image/jxl' | + 'image/png' | + 'image/svg+xml' | + 'image/tiff' | + 'image/vnd.radiance' | + 'image/webp' | + 'image/x-exr' | + 'image/x-portable-pixmap'; + + interface WriteableMetadata { + /** Number of pixels per inch (DPI) */ + density?: number | undefined; + /** Value between 1 and 8, used to update the EXIF Orientation tag. */ + orientation?: number | undefined; + /** + * Filesystem path to output ICC profile, defaults to sRGB. + * @deprecated Use `withIccProfile()` instead. + */ + icc?: string | undefined; + /** + * Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @deprecated Use `withExif()` or `withExifMerge()` instead. + */ + exif?: Exif | undefined; + } + + interface Metadata { + /** Number value of the EXIF Orientation header, if present */ + orientation?: number | undefined; + /** Name of decoder used to decompress image data e.g. jpeg, png, webp, gif, svg */ + format: keyof FormatEnum; + /** Total size of image in bytes, for Stream and Buffer input only */ + size?: number | undefined; + /** Number of pixels wide (EXIF orientation is not taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is not taken into consideration) */ + height: number; + /** Any changed metadata after the image orientation is applied. */ + autoOrient: { + /** Number of pixels wide (EXIF orientation is taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is taken into consideration) */ + height: number; + }; + /** Name of colour space interpretation */ + space: keyof ColourspaceEnum; + /** Number of bands e.g. 3 for sRGB, 4 for CMYK */ + channels: Channels; + /** Name of pixel depth format e.g. uchar, char, ushort, float ... */ + depth: keyof DepthEnum; + /** Number of pixels per inch (DPI), if present */ + density?: number | undefined; + /** String containing JPEG chroma subsampling, 4:2:0 or 4:4:4 for RGB, 4:2:0:4 or 4:4:4:4 for CMYK */ + chromaSubsampling?: string | undefined; + /** Boolean indicating whether the image is interlaced using a progressive scan */ + isProgressive: boolean; + /** Boolean indicating whether the image is palette-based (GIF, PNG). */ + isPalette: boolean; + /** Number of bits per sample for each channel (GIF, PNG). */ + bitsPerSample?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; + /** Number of times to loop an animated image, zero refers to a continuous loop. */ + loop?: number | undefined; + /** Delay in ms between each page in an animated image, provided as an array of integers. */ + delay?: number[] | undefined; + /** Number of the primary page in a HEIF image */ + pagePrimary?: number | undefined; + /** Boolean indicating the presence of an embedded ICC profile */ + hasProfile: boolean; + /** Boolean indicating the presence of an alpha transparency channel */ + hasAlpha: boolean; + /** Buffer containing raw EXIF data, if present */ + exif?: Buffer | undefined; + /** Buffer containing raw ICC profile data, if present */ + icc?: Buffer | undefined; + /** Buffer containing raw IPTC data, if present */ + iptc?: Buffer | undefined; + /** Buffer containing raw XMP data, if present */ + xmp?: Buffer | undefined; + /** String containing XMP data, if valid UTF-8 */ + xmpAsString?: string | undefined; + /** Buffer containing raw TIFFTAG_PHOTOSHOP data, if present */ + tifftagPhotoshop?: Buffer | undefined; + /** The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC) */ + compression?: HeifCompression | undefined; + /** Default background colour, if present, for PNG (bKGD) and GIF images */ + background?: { r: number; g: number; b: number } | { gray: number }; + /** Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide */ + levels?: LevelMetadata[] | undefined; + /** Number of Sub Image File Directories in an OME-TIFF image */ + subifds?: number | undefined; + /** The unit of resolution (density) */ + resolutionUnit?: Unit | undefined; + /** String containing format for images loaded via *magick */ + formatMagick?: string | undefined; + /** Array of keyword/text pairs representing PNG text blocks, if present. */ + comments?: CommentsMetadata[] | undefined; + /** HDR gain map, if present */ + gainMap?: GainMapMetadata | undefined; + /** Media Type (MIME Type) */ + mediaType?: MediaType | undefined; + } + + interface LevelMetadata { + width: number; + height: number; + } + + interface CommentsMetadata { + keyword: string; + text: string; + } + + interface GainMapMetadata { + /** JPEG image */ + image: Buffer; + } + + interface Stats { + /** Array of channel statistics for each channel in the image. */ + channels: ChannelStats[]; + /** Value to identify if the image is opaque or transparent, based on the presence and use of alpha channel */ + isOpaque: boolean; + /** Histogram-based estimation of greyscale entropy, discarding alpha channel if any */ + entropy: number; + /** Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any */ + sharpness: number; + /** Object containing most dominant sRGB colour based on a 4096-bin 3D histogram */ + dominant: { r: number; g: number; b: number }; + } + + interface ChannelStats { + /** minimum value in the channel */ + min: number; + /** maximum value in the channel */ + max: number; + /** sum of all values in a channel */ + sum: number; + /** sum of squared values in a channel */ + squaresSum: number; + /** mean of the values in a channel */ + mean: number; + /** standard deviation for the values in a channel */ + stdev: number; + /** x-coordinate of one of the pixel where the minimum lies */ + minX: number; + /** y-coordinate of one of the pixel where the minimum lies */ + minY: number; + /** x-coordinate of one of the pixel where the maximum lies */ + maxX: number; + /** y-coordinate of one of the pixel where the maximum lies */ + maxY: number; + } + + interface OutputOptions { + /** Force format output, otherwise attempt to use input format (optional, default true) */ + force?: boolean | undefined; + } + + interface WithIccProfileOptions { + /** Should the ICC profile be included in the output image metadata? (optional, default true) */ + attach?: boolean | undefined; + } + + interface JpegOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** Set to '4:4:4' to prevent chroma subsampling when quality <= 90 (optional, default '4:2:0') */ + chromaSubsampling?: string | undefined; + /** Apply trellis quantisation (optional, default false) */ + trellisQuantisation?: boolean | undefined; + /** Apply overshoot deringing (optional, default false) */ + overshootDeringing?: boolean | undefined; + /** Optimise progressive scans, forces progressive (optional, default false) */ + optimiseScans?: boolean | undefined; + /** Alternative spelling of optimiseScans (optional, default false) */ + optimizeScans?: boolean | undefined; + /** Optimise Huffman coding tables (optional, default true) */ + optimiseCoding?: boolean | undefined; + /** Alternative spelling of optimiseCoding (optional, default true) */ + optimizeCoding?: boolean | undefined; + /** Quantization table to use, integer 0-8 (optional, default 0) */ + quantisationTable?: number | undefined; + /** Alternative spelling of quantisationTable (optional, default 0) */ + quantizationTable?: number | undefined; + /** Use mozjpeg defaults (optional, default false) */ + mozjpeg?: boolean | undefined; + } + + interface Jp2Options extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean; + /** Horizontal tile size (optional, default 512) */ + tileWidth?: number; + /** Vertical tile size (optional, default 512) */ + tileHeight?: number; + /** Set to '4:2:0' to enable chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: '4:4:4' | '4:2:0'; + } + + interface JxlOptions extends OutputOptions, AnimationOptions { + /** Maximum encoding error, between 0 (highest quality) and 15 (lowest quality) (optional, default 1.0) */ + distance?: number; + /** Calculate distance based on JPEG-like quality, between 1 and 100, overrides distance if specified */ + quality?: number; + /** Target decode speed tier, between 0 (highest quality) and 4 (lowest quality) (optional, default 0) */ + decodingTier?: number; + /** Use lossless compression (optional, default false) */ + lossless?: boolean; + /** CPU effort, between 1 (fastest) and 9 (slowest) (optional, default 7) */ + effort?: number | undefined; + } + + interface WebpOptions extends OutputOptions, AnimationOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Quality of alpha layer, number from 0-100 (optional, default 100) */ + alphaQuality?: number | undefined; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean | undefined; + /** Use near_lossless compression mode (optional, default false) */ + nearLossless?: boolean | undefined; + /** Use high quality chroma subsampling (optional, default false) */ + smartSubsample?: boolean | undefined; + /** Auto-adjust the deblocking filter, slow but can improve low contrast edges (optional, default false) */ + smartDeblock?: boolean | undefined; + /** Level of CPU effort to reduce file size, integer 0-6 (optional, default 4) */ + effort?: number | undefined; + /** Prevent use of animation key frames to minimise file size (slow) (optional, default false) */ + minSize?: boolean | undefined; + /** Allow mixture of lossy and lossless animation frames (slow) (optional, default false) */ + mixed?: boolean | undefined; + /** Preset options: one of default, photo, picture, drawing, icon, text (optional, default 'default') */ + preset?: keyof PresetEnum | undefined; + /** Preserve the colour data in transparent pixels (optional, default false) */ + exact?: boolean | undefined; + } + + interface AvifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling, requires libvips v8.11.0 (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + /** Tune output for a quality metric, one of 'auto', 'iq', 'psnr' or 'ssim' (optional, default 'auto') */ + tune?: HeifTune | undefined; + } + + interface HeifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** compression format: av1, hevc (optional, default 'av1') */ + compression?: HeifCompression | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + /** Tune output for a quality metric, one of 'auto', 'iq', 'psnr' or 'ssim' (optional, default 'auto') */ + tune?: HeifTune | undefined; + } + + interface GifOptions extends OutputOptions, AnimationOptions { + /** Re-use existing palette, otherwise generate new (slow) */ + reuse?: boolean | undefined; + /** Use progressive (interlace) scan */ + progressive?: boolean | undefined; + /** Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colours?: number | undefined; + /** Alternative spelling of "colours". Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colors?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest) (optional, default 7) */ + effort?: number | undefined; + /** Level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most) (optional, default 1.0) */ + dither?: number | undefined; + /** Maximum inter-frame error for transparency, between 0 (lossless) and 32 (optional, default 0) */ + interFrameMaxError?: number | undefined; + /** Maximum inter-palette error for palette reuse, between 0 and 256 (optional, default 3) */ + interPaletteMaxError?: number | undefined; + /** Keep duplicate frames in the output instead of combining them (optional, default false) */ + keepDuplicateFrames?: boolean | undefined; + } + + interface TiffOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k (optional, default 'jpeg') */ + compression?: string | undefined; + /** Use BigTIFF variant (has no effect when compression is none) (optional, default false) */ + bigtiff?: boolean | undefined; + /** Compression predictor options: none, horizontal, float (optional, default 'horizontal') */ + predictor?: string | undefined; + /** Write an image pyramid (optional, default false) */ + pyramid?: boolean | undefined; + /** Write a tiled tiff (optional, default false) */ + tile?: boolean | undefined; + /** Horizontal tile size (optional, default 256) */ + tileWidth?: number | undefined; + /** Vertical tile size, valid values are integers in the range 1-32768 (optional, default 256) */ + tileHeight?: number | undefined; + /** Horizontal resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 (optional, default 1.0) */ + xres?: number | undefined; + /** Vertical resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 (optional, default 1.0) */ + yres?: number | undefined; + /** Reduce bitdepth to 1, 2 or 4 bit (optional) */ + bitdepth?: 1 | 2 | 4 | undefined; + /** Write 1-bit images as miniswhite (optional, default false) */ + miniswhite?: boolean | undefined; + /** Resolution unit options: inch, cm (optional, default 'inch') */ + resolutionUnit?: Unit | undefined; + } + + interface PngOptions extends OutputOptions { + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** zlib compression level, 0-9 (optional, default 6) */ + compressionLevel?: number | undefined; + /** Use adaptive row filtering (optional, default false) */ + adaptiveFiltering?: boolean | undefined; + /** Use the lowest number of colours needed to achieve given quality (optional, default `100`) */ + quality?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest), sets palette to true (optional, default 7) */ + effort?: number | undefined; + /** Quantise to a palette-based image with alpha transparency support (optional, default false) */ + palette?: boolean | undefined; + /** Maximum number of palette entries (optional, default 256) */ + colours?: number | undefined; + /** Alternative Spelling of "colours". Maximum number of palette entries (optional, default 256) */ + colors?: number | undefined; + /** Level of Floyd-Steinberg error diffusion (optional, default 1.0) */ + dither?: number | undefined; + } + + interface RotateOptions { + /** parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: ColorLike | undefined; + } + + type Precision = 'integer' | 'float' | 'approximate'; + + interface BlurOptions { + /** A value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2` */ + sigma: number; + /** A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask. */ + minAmplitude?: number; + /** How accurate the operation should be, one of: integer, float, approximate. (optional, default "integer") */ + precision?: Precision | undefined; + } + + interface FlattenOptions { + /** background colour, parsed by the color module, defaults to black. (optional, default {r:0,g:0,b:0}) */ + background?: ColorLike | undefined; + } + + interface NegateOptions { + /** whether or not to negate any alpha channel. (optional, default true) */ + alpha?: boolean | undefined; + } + + interface NormaliseOptions { + /** Percentile below which luminance values will be underexposed. */ + lower?: number | undefined; + /** Percentile above which luminance values will be overexposed. */ + upper?: number | undefined; + } + + interface ResizeOptions { + /** Alternative means of specifying width. If both are present this takes priority. */ + width?: number | undefined; + /** Alternative means of specifying height. If both are present this takes priority. */ + height?: number | undefined; + /** How the image should be resized to fit both provided dimensions, one of cover, contain, fill, inside or outside. (optional, default 'cover') */ + fit?: keyof FitEnum | undefined; + /** Position, gravity or strategy to use when fit is cover or contain. (optional, default 'centre') */ + position?: number | string | undefined; + /** Background colour when using a fit of contain, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: ColorLike | undefined; + /** The kernel to use for image reduction. (optional, default 'lanczos3') */ + kernel?: keyof KernelEnum | undefined; + /** Do not enlarge if the width or height are already less than the specified dimensions, equivalent to GraphicsMagick's > geometry option. (optional, default false) */ + withoutEnlargement?: boolean | undefined; + /** Do not reduce if the width or height are already greater than the specified dimensions, equivalent to GraphicsMagick's < geometry option. (optional, default false) */ + withoutReduction?: boolean | undefined; + /** Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern on some images. (optional, default true) */ + fastShrinkOnLoad?: boolean | undefined; + } + + interface Region { + /** zero-indexed offset from left edge, an integer between 0 and 100000000 */ + left: number; + /** zero-indexed offset from top edge, an integer between 0 and 100000000 */ + top: number; + /** dimension of extracted image, an integer between 0 and 100000000 */ + width: number; + /** dimension of extracted image, an integer between 0 and 100000000 */ + height: number; + } + + interface Noise { + /** type of generated noise, currently only gaussian is supported. */ + type: 'gaussian'; + /** mean of pixels in generated noise. */ + mean?: number | undefined; + /** standard deviation of pixels in generated noise. */ + sigma?: number | undefined; + } + + type ExtendWith = 'background' | 'copy' | 'repeat' | 'mirror'; + + interface ExtendOptions { + /** single pixel count to top edge, valid values are integers in the range 0-10000 (optional, default 0) */ + top?: number | undefined; + /** single pixel count to left edge, valid values are integers in the range 0-10000 (optional, default 0) */ + left?: number | undefined; + /** single pixel count to bottom edge, valid values are integers in the range 0-10000 (optional, default 0) */ + bottom?: number | undefined; + /** single pixel count to right edge, valid values are integers in the range 0-10000 (optional, default 0) */ + right?: number | undefined; + /** background colour, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: ColorLike | undefined; + /** how the extension is done, one of: "background", "copy", "repeat", "mirror" (optional, default `'background'`) */ + extendWith?: ExtendWith | undefined; + } + + interface TrimOptions { + /** Background colour, parsed by the color module, defaults to that of the top-left pixel. (optional) */ + background?: ColorLike | undefined; + /** Allowed difference from the above colour, a positive number. (optional, default 10) */ + threshold?: number | undefined; + /** Does the input more closely resemble line art (e.g. vector) rather than being photographic? (optional, default false) */ + lineArt?: boolean | undefined; + /** Leave a margin around trimmed content, integral number of pixels between 0 and 10000000. (optional, default 0) */ + margin?: number | undefined; + } + + interface RawOptions { + depth?: keyof DepthEnum; + } + + /** 1 for grayscale, 2 for grayscale + alpha, 3 for sRGB, 4 for CMYK or RGBA */ + type Channels = 1 | 2 | 3 | 4; + + type Colour = ColorLike; + type Color = ColorLike; + + interface Kernel { + /** width of the kernel in pixels. */ + width: number; + /** height of the kernel in pixels. */ + height: number; + /** Array of length width*height containing the kernel values. */ + kernel: ArrayLike; + /** the scale of the kernel in pixels. (optional, default sum) */ + scale?: number | undefined; + /** the offset of the kernel in pixels. (optional, default 0) */ + offset?: number | undefined; + } + + interface ClaheOptions { + /** width of the region. Valid values are integers in the range 1-65536. */ + width: number; + /** height of the region. Valid values are integers in the range 1-65536. */ + height: number; + /** max slope of the cumulative contrast. A value of 0 disables contrast limiting. Valid values are integers in the range 0-100. (optional, default 3) */ + maxSlope?: number | undefined; + } + + interface ThresholdOptions { + /** convert to single channel greyscale. (optional, default true) */ + greyscale?: boolean | undefined; + /** alternative spelling for greyscale. (optional, default true) */ + grayscale?: boolean | undefined; + } + + interface OverlayOptions extends SharpOptions { + /** Buffer containing image data, String containing the path to an image file, or Create object */ + input?: string | Buffer | { create: Create } | { text: CreateText } | { raw: CreateRaw } | undefined; + /** how to blend this image with the image below. (optional, default `'over'`) */ + blend?: Blend | undefined; + /** gravity at which to place the overlay. (optional, default 'centre') */ + gravity?: Gravity | undefined; + /** the pixel offset from the top edge, an integer between -100000000 and 100000000. */ + top?: number | undefined; + /** the pixel offset from the left edge, an integer between -100000000 and 100000000. */ + left?: number | undefined; + /** set to true to repeat the overlay image across the entire image with the given gravity. (optional, default false) */ + tile?: boolean | undefined; + /** Set to true to avoid premultipling the image below. Equivalent to the --premultiplied vips option. */ + premultiplied?: boolean | undefined; + /** number representing the DPI for vector overlay image. (optional, default 72)*/ + density?: number | undefined; + /** Set to true to read all frames/pages of an animated image. (optional, default false) */ + animated?: boolean | undefined; + /** see sharp() constructor, (optional, default 'warning') */ + failOn?: FailOnOptions | undefined; + /** see sharp() constructor, (optional, default 268402689) */ + limitInputPixels?: number | boolean | undefined; + /** see sharp() constructor, (optional, default false) */ + autoOrient?: boolean | undefined; + } + + interface TileOptions { + /** Tile size in pixels, a value between 1 and 8192. (optional, default 256) */ + size?: number | undefined; + /** Tile overlap in pixels, a value between 0 and 8192. (optional, default 0) */ + overlap?: number | undefined; + /** Tile angle of rotation, must be a multiple of 90. (optional, default 0) */ + angle?: number | undefined; + /** background colour, parsed by the color module, defaults to white without transparency. (optional, default {r:255,g:255,b:255,alpha:1}) */ + background?: ColorLike | undefined; + /** How deep to make the pyramid, possible values are "onepixel", "onetile" or "one" (default based on layout) */ + depth?: string | undefined; + /** Threshold to skip tile generation, a value 0 - 255 for 8-bit images or 0 - 65535 for 16-bit images */ + skipBlanks?: number | undefined; + /** Tile container, with value fs (filesystem) or zip (compressed file). (optional, default 'fs') */ + container?: TileContainer | undefined; + /** Filesystem layout, possible values are dz, iiif, iiif3, zoomify or google. (optional, default 'dz') */ + layout?: TileLayout | undefined; + /** Centre image in tile. (optional, default false) */ + centre?: boolean | undefined; + /** Alternative spelling of centre. (optional, default false) */ + center?: boolean | undefined; + /** When layout is iiif/iiif3, sets the @id/id attribute of info.json (optional, default 'https://example.com/iiif') */ + id?: string | undefined; + /** The name of the directory within the zip file when container is `zip`. */ + basename?: string | undefined; + } + + interface AnimationOptions { + /** Number of animation iterations, a value between 0 and 65535. Use 0 for infinite animation. (optional, default 0) */ + loop?: number | undefined; + /** delay(s) between animation frames (in milliseconds), each value between 0 and 65535. (optional) */ + delay?: number | number[] | undefined; + } + + interface SharpenOptions { + /** The sigma of the Gaussian mask, where sigma = 1 + radius / 2, between 0.000001 and 10000 */ + sigma: number; + /** The level of sharpening to apply to "flat" areas, between 0 and 1000000 (optional, default 1.0) */ + m1?: number | undefined; + /** The level of sharpening to apply to "jagged" areas, between 0 and 1000000 (optional, default 2.0) */ + m2?: number | undefined; + /** Threshold between "flat" and "jagged", between 0 and 1000000 (optional, default 2.0) */ + x1?: number | undefined; + /** Maximum amount of brightening, between 0 and 1000000 (optional, default 10.0) */ + y2?: number | undefined; + /** Maximum amount of darkening, between 0 and 1000000 (optional, default 20.0) */ + y3?: number | undefined; + } + + interface AffineOptions { + /** Parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: string | object | undefined; + /** Input horizontal offset (optional, default 0) */ + idx?: number | undefined; + /** Input vertical offset (optional, default 0) */ + idy?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + odx?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + ody?: number | undefined; + /** Interpolator (optional, default sharp.interpolators.bicubic) */ + interpolator?: Interpolators[keyof Interpolators] | undefined; + } + + interface OutputInfo { + format: string; + size: number; + width: number; + height: number; + channels: Channels; + /** indicating if premultiplication was used */ + premultiplied: boolean; + /** Indicates if the output image has an alpha channel */ + hasAlpha: boolean; + /** Only defined when using a crop strategy */ + cropOffsetLeft?: number | undefined; + /** Only defined when using a crop strategy */ + cropOffsetTop?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetLeft?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetTop?: number | undefined; + /** DPI the font was rendered at, only defined when using `text` input */ + textAutofitDpi?: number | undefined; + /** When using the attention crop strategy, the focal point of the cropped region */ + attentionX?: number | undefined; + attentionY?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; + } + + interface AvailableFormatInfo { + id: string; + input: { file: boolean; buffer: boolean; stream: boolean; fileSuffix?: string[] }; + output: { file: boolean; buffer: boolean; stream: boolean; alias?: string[] }; + } + + interface FitEnum { + contain: 'contain'; + cover: 'cover'; + fill: 'fill'; + inside: 'inside'; + outside: 'outside'; + } + + interface KernelEnum { + nearest: 'nearest'; + cubic: 'cubic'; + linear: 'linear'; + mitchell: 'mitchell'; + lanczos2: 'lanczos2'; + lanczos3: 'lanczos3'; + mks2013: 'mks2013'; + mks2021: 'mks2021'; + } + + interface PresetEnum { + default: 'default'; + picture: 'picture'; + photo: 'photo'; + drawing: 'drawing'; + icon: 'icon'; + text: 'text'; + } + + interface BoolEnum { + and: 'and'; + or: 'or'; + eor: 'eor'; + } + + interface ColourspaceEnum { + 'b-w': string; + cmc: string; + cmyk: string; + fourier: string; + grey16: string; + histogram: string; + hsv: string; + lab: string; + labq: string; + labs: string; + lch: string; + matrix: string; + multiband: string; + rgb: string; + rgb16: string; + scrgb: string; + srgb: string; + xyz: string; + yxy: string; + } + + interface DepthEnum { + char: string; + complex: string; + double: string; + dpcomplex: string; + float: string; + int: string; + short: string; + uchar: string; + uint: string; + ushort: string; + } + + type FailOnOptions = 'none' | 'truncated' | 'error' | 'warning'; + + type TextAlign = 'left' | 'centre' | 'center' | 'right'; + + type TextWrap = 'word' | 'char' | 'word-char' | 'none'; + + type HorizontalAlignment = 'left' | 'centre' | 'center' | 'right'; + + type VerticalAlignment = 'top' | 'centre' | 'center' | 'bottom'; + + type TileContainer = 'fs' | 'zip'; + + type TileLayout = 'dz' | 'iiif' | 'iiif3' | 'zoomify' | 'google'; + + type Blend = + | 'clear' + | 'source' + | 'over' + | 'in' + | 'out' + | 'atop' + | 'dest' + | 'dest-over' + | 'dest-in' + | 'dest-out' + | 'dest-atop' + | 'xor' + | 'add' + | 'saturate' + | 'multiply' + | 'screen' + | 'overlay' + | 'darken' + | 'lighten' + | 'color-dodge' + | 'colour-dodge' + | 'color-burn' + | 'colour-burn' + | 'hard-light' + | 'soft-light' + | 'difference' + | 'exclusion'; + + type Gravity = number | string; + + interface GravityEnum { + north: number; + northeast: number; + southeast: number; + south: number; + southwest: number; + west: number; + northwest: number; + east: number; + center: number; + centre: number; + } + + interface StrategyEnum { + entropy: number; + attention: number; + } + + interface FormatEnum { + dcraw: AvailableFormatInfo; + dz: AvailableFormatInfo; + exr: AvailableFormatInfo; + fits: AvailableFormatInfo; + gif: AvailableFormatInfo; + heif: AvailableFormatInfo; + jpeg: AvailableFormatInfo; + jp2: AvailableFormatInfo; + jxl: AvailableFormatInfo; + magick: AvailableFormatInfo; + openslide: AvailableFormatInfo; + pdf: AvailableFormatInfo; + png: AvailableFormatInfo; + ppm: AvailableFormatInfo; + rad: AvailableFormatInfo; + raw: AvailableFormatInfo; + svg: AvailableFormatInfo; + tiff: AvailableFormatInfo; + vips: AvailableFormatInfo; + webp: AvailableFormatInfo; + } + + interface CacheResult { + memory: { current: number; high: number; max: number }; + files: { current: number; max: number }; + items: { current: number; max: number }; + } + + interface Interpolators { + /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ + nearest: 'nearest'; + /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ + bilinear: 'bilinear'; + /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ + bicubic: 'bicubic'; + /** + * [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). + * Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. + */ + locallyBoundedBicubic: 'lbb'; + /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ + nohalo: 'nohalo'; + /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ + vertexSplitQuadraticBasisSpline: 'vsqbs'; + } + + type Matrix2x2 = [[number, number], [number, number]]; + type Matrix3x3 = [[number, number, number], [number, number, number], [number, number, number]]; + type Matrix4x4 = [[number, number, number, number], [number, number, number, number], [number, number, number, number], [number, number, number, number]]; +} + +export = sharp; diff --git a/apps/api/.output/node_modules/sharp/dist/index.d.mts b/apps/api/.output/node_modules/sharp/dist/index.d.mts new file mode 100644 index 0000000..3d29d1e --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/index.d.mts @@ -0,0 +1,2046 @@ +/** + * Copyright 2017 François Nguyen and others. + * + * Billy Kwok + * Bradley Odell + * Espen Hovlandsdal + * Floris de Bijl + * François Nguyen + * Jamie Woodbury + * Wooseop Kim + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of + * the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +// SPDX-License-Identifier: MIT + +/// + +declare type Duplex = import('node:stream').Duplex; +declare type ColorLike = import('@img/colour').ColorLike; + +//#region Constructor functions + +/** + * Creates a sharp instance from an image + * @param input Buffer containing JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data, or String containing the path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file. + * @param options Object with optional attributes. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + +/** Object containing nested boolean values representing the available input and output formats/methods. */ +export const format: FormatEnum; + +/** An Object containing the version numbers of sharp, libvips and its dependencies. */ +export const versions: { + aom?: string | undefined; + archive?: string | undefined; + cairo?: string | undefined; + cgif?: string | undefined; + exif?: string | undefined; + expat?: string | undefined; + ffi?: string | undefined; + fontconfig?: string | undefined; + freetype?: string | undefined; + fribidi?: string | undefined; + glib?: string | undefined; + harfbuzz?: string | undefined; + heif?: string | undefined; + highway?: string | undefined; + imagequant?: string | undefined; + lcms?: string | undefined; + mozjpeg?: string | undefined; + pango?: string | undefined; + pixman?: string | undefined; + png?: string | undefined; + "proxy-libintl"?: string | undefined; + rsvg?: string | undefined; + sharp: string; + spng?: string | undefined; + tiff?: string | undefined; + vips: string; + webp?: string | undefined; + xml?: string | undefined; + "zlib-ng"?: string | undefined; +}; + +/** An Object containing the available interpolators and their proper values */ +export const interpolators: Interpolators; + +/** An EventEmitter that emits a change event when a task is either queued, waiting for libuv to provide a worker thread, complete */ +export const queue: NodeJS.EventEmitter; + +//#endregion + +//#region Utility functions + +/** + * Gets or, when options are provided, sets the limits of libvips' operation cache. + * Existing entries in the cache will be trimmed after any change in limits. + * This method always returns cache statistics, useful for determining how much working memory is required for a particular task. + * @param options Object with the following attributes, or Boolean where true uses default cache settings and false removes all caching (optional, default true) + * @returns The cache results. + */ +export function cache(options?: boolean | CacheOptions): CacheResult; + +/** + * Gets or sets the number of threads libvips' should create to process each image. + * The default value is the number of CPU cores. A value of 0 will reset to this default. + * The maximum number of images that can be processed in parallel is limited by libuv's UV_THREADPOOL_SIZE environment variable. + * @param concurrency The new concurrency value. + * @returns The current concurrency value. + */ +export function concurrency(concurrency?: number): number; + +/** + * Provides access to internal task counters. + * @returns Object containing task counters + */ +export function counters(): SharpCounters; + +/** + * Get and set use of SIMD vector unit instructions. Requires libvips to have been compiled with highway support. + * Improves the performance of resize, blur and sharpen operations by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON. + * @param enable enable or disable use of SIMD vector unit instructions + * @returns true if usage of SIMD vector unit instructions is enabled + */ +export function simd(enable?: boolean): boolean; + +/** + * Block libvips operations at runtime. + * + * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable, + * which when set will block all "untrusted" operations. + * + * @since 0.32.4 + * + * @example Block all TIFF input. + * block({ + * operation: ['VipsForeignLoadTiff'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to block. + */ +export function block(options: { operation: string[] }): void; + +/** + * Unblock libvips operations at runtime. + * + * This is useful for defining a list of allowed operations. + * + * @since 0.32.4 + * + * @example Block all input except WebP from the filesystem. + * block({ + * operation: ['VipsForeignLoad'] + * }); + * unblock({ + * operation: ['VipsForeignLoadWebpFile'] + * }); + * + * @example Block all input except JPEG and PNG from a Buffer or Stream. + * block({ + * operation: ['VipsForeignLoad'] + * }); + * unblock({ + * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to unblock. + */ +export function unblock(options: { operation: string[] }): void; + +//#endregion + +export const gravity: GravityEnum; +export const strategy: StrategyEnum; +export const kernel: KernelEnum; +export const fit: FitEnum; +export const bool: BoolEnum; + +export interface Sharp extends Duplex { + //#region Channel functions + + /** + * Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel. + * @returns A sharp instance that can be used to chain operations + */ + removeAlpha(): Sharp; + + /** + * Ensure alpha channel, if missing. The added alpha channel will be fully opaque. This is a no-op if the image already has an alpha channel. + * @param alpha transparency level (0=fully-transparent, 1=fully-opaque) (optional, default 1). + * @returns A sharp instance that can be used to chain operations + */ + ensureAlpha(alpha?: number): Sharp; + + /** + * Extract a single channel from a multi-channel image. + * @param channel zero-indexed channel/band number to extract, or red, green, blue or alpha. + * @throws {Error} Invalid channel + * @returns A sharp instance that can be used to chain operations + */ + extractChannel(channel: 0 | 1 | 2 | 3 | 'red' | 'green' | 'blue' | 'alpha'): Sharp; + + /** + * Join one or more channels to the image. The meaning of the added channels depends on the output colourspace, set with toColourspace(). + * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. Channel ordering follows vips convention: + * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha. + * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha. + * + * Buffers may be any of the image formats supported by + * For raw pixel input, the options object should contain a raw attribute, which follows the format of the attribute of the same name in the sharp() constructor. + * @param images one or more images (file paths, Buffers). + * @param options image options, see sharp() constructor. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + joinChannel(images: string | Buffer | ArrayLike, options?: SharpOptions): Sharp; + + /** + * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image. + * @param boolOp one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + bandbool(boolOp: keyof BoolEnum): Sharp; + + //#endregion + + //#region Color functions + + /** + * Tint the image using the provided colour. + * An alpha channel may be present and will be unchanged by the operation. + * @param tint Parsed by the color module. + * @returns A sharp instance that can be used to chain operations + */ + tint(tint: ColorLike): Sharp; + + /** + * Convert to 8-bit greyscale; 256 shades of grey. + * This is a linear operation. + * If the input image is in a non-linear colour space such as sRGB, use gamma() with greyscale() for the best results. + * By default the output image will be web-friendly sRGB and contain three (identical) colour channels. + * This may be overridden by other sharp operations such as toColourspace('b-w'), which will produce an output image containing one colour channel. + * An alpha channel may be present, and will be unchanged by the operation. + * @param greyscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + greyscale(greyscale?: boolean): Sharp; + + /** + * Alternative spelling of greyscale(). + * @param grayscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + grayscale(grayscale?: boolean): Sharp; + + /** + * Set the pipeline colourspace. + * The input image will be converted to the provided colourspace at the start of the pipeline. + * All operations will use this colourspace before converting to the output colourspace, as defined by toColourspace. + * + * @param colourspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of pipelineColourspace + * @param colorspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColorspace(colorspace?: string): Sharp; + + /** + * Set the output colourspace. + * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * @param colourspace output colourspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of toColourspace(). + * @param colorspace output colorspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColorspace(colorspace: string): Sharp; + + //#endregion + + //#region Composite functions + + /** + * Composite image(s) over the processed (resized, extracted etc.) image. + * + * The images to composite must be the same size or smaller than the processed image. + * If both `top` and `left` options are provided, they take precedence over `gravity`. + * @param images - Ordered list of images to composite + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + composite(images: OverlayOptions[]): Sharp; + + //#endregion + + //#region Input functions + + /** + * Take a "snapshot" of the Sharp instance, returning a new instance. + * Cloned instances inherit the input of their parent instance. + * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream. + * @returns A sharp instance that can be used to chain operations + */ + clone(): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A sharp instance that can be used to chain operations + */ + metadata(callback: (err: Error, metadata: Metadata) => void): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A promise that resolves with a metadata object + */ + metadata(): Promise; + + /** + * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepMetadata(): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A sharp instance that can be used to chain operations + */ + stats(callback: (err: Error, stats: Stats) => void): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A promise that resolves with a stats object + */ + stats(): Promise; + + //#endregion + + //#region Operation functions + + /** + * Rotate the output image by either an explicit angle + * or auto-orient based on the EXIF `Orientation` tag. + * + * If an angle is provided, it is converted to a valid positive degree rotation. + * For example, `-450` will produce a 270 degree rotation. + * + * When rotating by an angle other than a multiple of 90, + * the background colour can be provided with the `background` option. + * + * If no angle is provided, it is determined from the EXIF data. + * Mirroring is supported and may infer the use of a flip operation. + * + * The use of `rotate` without an angle will remove the EXIF `Orientation` tag, if any. + * + * Only one rotation can occur per pipeline (aside from an initial call without + * arguments to orient via EXIF data). Previous calls to `rotate` in the same + * pipeline will be ignored. + * + * Multi-page images can only be rotated by 180 degrees. + * + * Method order is important when rotating, resizing and/or extracting regions, + * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`. + * + * @example + * const pipeline = sharp() + * .rotate() + * .resize(null, 200) + * .toBuffer(function (err, outputBuffer, info) { + * // outputBuffer contains 200px high JPEG image data, + * // auto-rotated using EXIF Orientation tag + * // info.width and info.height contain the dimensions of the resized image + * }); + * readableStream.pipe(pipeline); + * + * @example + * const rotateThenResize = await sharp(input) + * .rotate(90) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .toBuffer(); + * const resizeThenRotate = await sharp(input) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .rotate(90) + * .toBuffer(); + * + * @param {number} [angle=auto] angle of rotation. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string|Object} [options.background="#000000"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ + rotate(angle?: number, options?: RotateOptions): Sharp; + + /** + * Alias for calling `rotate()` with no arguments, which orients the image based + * on EXIF orientsion. + * + * This operation is aliased to emphasize its purpose, helping to remove any + * confusion between rotation and orientation. + * + * @example + * const output = await sharp(input).autoOrient().toBuffer(); + * + * @returns {Sharp} + */ + autoOrient(): Sharp + + /** + * Flip the image about the vertical Y axis. This always occurs after rotation, if any. + * The use of flip implies the removal of the EXIF Orientation tag, if any. + * @param flip true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flip(flip?: boolean): Sharp; + + /** + * Flop the image about the horizontal X axis. This always occurs after rotation, if any. + * The use of flop implies the removal of the EXIF Orientation tag, if any. + * @param flop true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flop(flop?: boolean): Sharp; + + /** + * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any. + * You must provide an array of length 4 or a 2x2 affine transformation matrix. + * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option. + * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `interpolators` Object e.g. `interpolators.nohalo`. + * + * In the case of a 2x2 matrix, the transform is: + * X = matrix[0, 0] * (x + idx) + matrix[0, 1] * (y + idy) + odx + * Y = matrix[1, 0] * (x + idx) + matrix[1, 1] * (y + idy) + ody + * + * where: + * + * x and y are the coordinates in input image. + * X and Y are the coordinates in output image. + * (0,0) is the upper left corner. + * + * @param matrix Affine transformation matrix, may either by a array of length four or a 2x2 matrix array + * @param options if present, is an Object with optional attributes. + * + * @returns A sharp instance that can be used to chain operations + */ + affine(matrix: [number, number, number, number] | Matrix2x2, options?: AffineOptions): Sharp; + + /** + * Sharpen the image. + * When used without parameters, performs a fast, mild sharpen of the output image. + * When a sigma is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * @param options if present, is an Object with optional attributes + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + sharpen(options?: SharpenOptions): Sharp; + + /** + * Apply median filter. When used without parameters the default window is 3x3. + * @param size square mask size: size x size (optional, default 3) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + median(size?: number): Sharp; + + /** + * Blur the image. + * When used without parameters, performs a fast, mild blur of the output image. + * When a sigma is provided, performs a slower, more accurate Gaussian blur. + * When a boolean sigma is provided, ether blur mild or disable blur + * @param sigma a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where sigma = 1 + radius / 2. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + blur(sigma?: number | boolean | BlurOptions): Sharp; + + /** + * Expand foreground objects using the dilate morphological operator. + * @param {Number} [width=1] dilation width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + dilate(width?: number): Sharp; + + /** + * Shrink foreground objects using the erode morphological operator. + * @param {Number} [width=1] erosion width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + erode(width?: number): Sharp; + + /** + * Merge alpha transparency channel, if any, with background. + * @param flatten true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flatten(flatten?: boolean | FlattenOptions): Sharp; + + /** + * Ensure the image has an alpha channel with all white pixel values made fully transparent. + * Existing alpha channel values for non-white pixels remain unchanged. + * @returns A sharp instance that can be used to chain operations + */ + unflatten(): Sharp; + + /** + * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of 1/gamma then increasing the encoding (brighten) post-resize at a factor of gamma. + * This can improve the perceived brightness of a resized image in non-linear colour spaces. + * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation when applying a gamma correction. + * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases. + * @param gamma value between 1.0 and 3.0. (optional, default 2.2) + * @param gammaOut value between 1.0 and 3.0. (optional, defaults to same as gamma) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + gamma(gamma?: number, gammaOut?: number): Sharp; + + /** + * Produce the "negative" of the image. + * @param negate true to enable and false to disable, or an object of options (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + negate(negate?: boolean | NegateOptions): Sharp; + + /** + * Enhance output image contrast by stretching its luminance to cover a full dynamic range. + * + * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes. + * + * Luminance values below the `lower` percentile will be underexposed by clipping to zero. + * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value. + * + * @param normalise options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalise(normalise?: NormaliseOptions): Sharp; + + /** + * Alternative spelling of normalise. + * @param normalize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalize(normalize?: NormaliseOptions): Sharp; + + /** + * Perform contrast limiting adaptive histogram equalization (CLAHE) + * + * This will, in general, enhance the clarity of the image by bringing out + * darker details. Please read more about CLAHE here: + * https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE + * + * @param options clahe options + */ + clahe(options: ClaheOptions): Sharp; + + /** + * Convolve the image with the specified kernel. + * @param kernel the specified kernel + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + convolve(kernel: Kernel): Sharp; + + /** + * Any pixel value greather than or equal to the threshold value will be set to 255, otherwise it will be set to 0. + * @param threshold a value in the range 0-255 representing the level at which the threshold will be applied. (optional, default 128) + * @param options threshold options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + threshold(threshold?: number, options?: ThresholdOptions): Sharp; + + /** + * Perform a bitwise boolean operation with operand image. + * This operation creates an output image where each pixel is the result of the selected bitwise boolean operation between the corresponding pixels of the input images. + * @param operand Buffer containing image data or String containing the path to an image file. + * @param operator one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @param options describes operand when using raw pixel data. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + boolean(operand: string | Buffer, operator: keyof BoolEnum, options?: { raw: Raw }): Sharp; + + /** + * Apply the linear formula a * input + b to the image (levels adjustment) + * @param a multiplier (optional, default 1.0) + * @param b offset (optional, default 0.0) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + linear(a?: number | number[] | null, b?: number | number[]): Sharp; + + /** + * Recomb the image with the specified matrix. + * @param inputMatrix 3x3 Recombination matrix or 4x4 Recombination matrix + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + recomb(inputMatrix: Matrix3x3 | Matrix4x4): Sharp; + + /** + * Transforms the image using brightness, saturation, hue rotation and lightness. + * Brightness and lightness both operate on luminance, with the difference being that brightness is multiplicative whereas lightness is additive. + * @param options describes the modulation + * @returns A sharp instance that can be used to chain operations + */ + modulate(options?: { + brightness?: number | undefined; + saturation?: number | undefined; + hue?: number | undefined; + lightness?: number | undefined; + }): Sharp; + + //#endregion + + //#region Output functions + + /** + * Write output image data to a file. + * If an explicit output format is not selected, it will be inferred from the extension, with JPEG, PNG, WebP, AVIF, TIFF, DZI, and libvips' V format supported. + * Note that raw pixel data is only supported for buffer output. + * @param fileOut The path to write the image data to. + * @param callback Callback function called on completion with two arguments (err, info). info contains the output image format, size (bytes), width, height and channels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toFile(fileOut: string, callback: (err: Error, info: OutputInfo) => void): Sharp; + + /** + * Write output image data to a file. + * @param fileOut The path to write the image data to. + * @throws {Error} Invalid parameters + * @returns A promise that fulfills with an object containing information on the resulting file + */ + toFile(fileOut: string): Promise; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @param callback Callback function called on completion with three arguments (err, buffer, info). + * @returns A sharp instance that can be used to chain operations + */ + toBuffer(callback: (err: Error, buffer: Buffer, info: OutputInfo) => void): Sharp; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with the Buffer data. + */ + toBuffer(options?: { resolveWithObject: false }): Promise>; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with an object containing the Buffer data and an info object containing the output image format, size (bytes), width, height and channels + */ + toBuffer(options: { resolveWithObject: true }): Promise<{ data: Buffer; info: OutputInfo }>; + + /** + * Write output to a Uint8Array backed by a transferable ArrayBuffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @returns A promise that resolves with an object containing the Uint8Array data and an info object containing the output image format, size (bytes), width, height and channels + */ + toUint8Array(): Promise<{ data: Uint8Array; info: OutputInfo }>; + + /** + * Set output density (DPI) in EXIF metadata. + * @param density Density in dots per inch (DPI). + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withDensity(density: number): Sharp; + + /** + * Keep all EXIF metadata from the input image in the output image. + * EXIF metadata is unsupported for TIFF output. + * @returns A sharp instance that can be used to chain operations + */ + keepExif(): Sharp; + + /** + * Set EXIF metadata in the output image, ignoring any EXIF in the input image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExif(exif: Exif): Sharp; + + /** + * Update EXIF metadata from the input image in the output image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExifMerge(exif: Exif): Sharp; + + /** + * Keep ICC profile from the input image in the output image where possible. + * @returns A sharp instance that can be used to chain operations + */ + keepIccProfile(): Sharp; + + /** + * Transform using an ICC profile and attach to the output image. + * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk). + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withIccProfile(icc: string, options?: WithIccProfileOptions): Sharp; + + /** + * Keep all XMP metadata from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepXmp(): Sharp; + + /** + * Set XMP metadata in the output image. + * @param {string} xmp - String containing XMP metadata to be embedded in the output image. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withXmp(xmp: string): Sharp; + + /** + * Include all metadata (EXIF, XMP, IPTC) from the input image in the output image. + * The default behaviour, when withMetadata is not used, is to strip all metadata and convert to the device-independent sRGB colour space. + * This will also convert to and add a web-friendly sRGB ICC profile. + * @param withMetadata + * @throws {Error} Invalid parameters. + */ + withMetadata(withMetadata?: WriteableMetadata): Sharp; + + /** + * Use these JPEG options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jpeg(options?: JpegOptions): Sharp; + + /** + * Use these JP2 (JPEG 2000) options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jp2(options?: Jp2Options): Sharp; + + /** + * Use these JPEG-XL (JXL) options for output image. + * This feature is experimental, please do not use in production systems. + * Requires libvips compiled with support for libjxl. + * The prebuilt binaries do not include this. + * Image metadata (EXIF, XMP) is unsupported. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jxl(options?: JxlOptions): Sharp; + + /** + * Use these PNG options for output image. + * PNG output is always full colour at 8 or 16 bits per pixel. + * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + png(options?: PngOptions): Sharp; + + /** + * Use these WebP options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + webp(options?: WebpOptions): Sharp; + + /** + * Use these GIF options for output image. + * Requires libvips compiled with support for ImageMagick or GraphicsMagick. The prebuilt binaries do not include this - see installing a custom libvips. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + gif(options?: GifOptions): Sharp; + + /** + * Use these AVIF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + avif(options?: AvifOptions): Sharp; + + /** + * Use these HEIF options for output image. + * Support for patent-encumbered HEIC images requires the use of a globally-installed libvips compiled with support for libheif, libde265 and x265. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + heif(options?: HeifOptions): Sharp; + + /** + * Use these TIFF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tiff(options?: TiffOptions): Sharp; + + /** + * Force output to be raw, uncompressed uint8 pixel data. + * @param options Raw output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + raw(options?: RawOptions): Sharp; + + /** + * Force output to a given format. + * @param format a String or an Object with an 'id' attribute + * @param options output options + * @throws {Error} Unsupported format or options + * @returns A sharp instance that can be used to chain operations + */ + toFormat( + format: keyof FormatEnum | AvailableFormatInfo | "avif", + options?: + | OutputOptions + | JpegOptions + | PngOptions + | WebpOptions + | AvifOptions + | HeifOptions + | JxlOptions + | GifOptions + | Jp2Options + | RawOptions + | TiffOptions, + ): Sharp; + + /** + * Use tile-based deep zoom (image pyramid) output. + * Set the format and options for tile images via the toFormat, jpeg, png or webp functions. + * Use a .zip or .szi file extension with toFile to write to a compressed archive file format. + * @param tile tile options + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tile(tile?: TileOptions): Sharp; + + /** + * Set a timeout for processing, in seconds. Use a value of zero to continue processing indefinitely, the default behaviour. + * The clock starts when libvips opens an input image for processing. Time spent waiting for a libuv thread to become available is not included. + * @param options Object with a `seconds` attribute between 0 and 3600 (number) + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + timeout(options: TimeoutOptions): Sharp; + + //#endregion + + //#region Resize functions + + /** + * Resize image to width, height or width x height. + * + * When both a width and height are provided, the possible methods by which the image should fit these are: + * - cover: Crop to cover both provided dimensions (the default). + * - contain: Embed within both provided dimensions. + * - fill: Ignore the aspect ratio of the input and stretch to both provided dimensions. + * - inside: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified. + * - outside: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified. + * Some of these values are based on the object-fit CSS property. + * + * When using a fit of cover or contain, the default position is centre. Other options are: + * - position: top, right top, right, right bottom, bottom, left bottom, left, left top. + * - gravity: north, northeast, east, southeast, south, southwest, west, northwest, center or centre. + * - strategy: cover only, dynamically crop using either the entropy or attention strategy. Some of these values are based on the object-position CSS property. + * + * The strategy-based approach resizes so one dimension is at its target length then repeatedly ranks edge regions, + * discarding the edge with the lowest score based on the selected strategy. + * - entropy: focus on the region with the highest Shannon entropy. + * - attention: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones. + * + * Possible interpolation kernels are: + * - nearest: Use nearest neighbour interpolation. + * - cubic: Use a Catmull-Rom spline. + * - lanczos2: Use a Lanczos kernel with a=2. + * - lanczos3: Use a Lanczos kernel with a=3 (the default). + * + * @param width pixels wide the resultant image should be. Use null or undefined to auto-scale the width to match the height. + * @param height pixels high the resultant image should be. Use null or undefined to auto-scale the height to match the width. + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(widthOrOptions?: number | ResizeOptions | null, height?: number | null, options?: ResizeOptions): Sharp; + + /** + * Shorthand for resize(null, null, options); + * + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(options: ResizeOptions): Sharp; + + /** + * Extend / pad / extrude one or more edges of the image with either + * the provided background colour or pixels derived from the image. + * This operation will always occur after resizing and extraction, if any. + * @param extend single pixel count to add to all edges or an Object with per-edge counts + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extend(extend: number | ExtendOptions): Sharp; + + /** + * Extract a region of the image. + * - Use extract() before resize() for pre-resize extraction. + * - Use extract() after resize() for post-resize extraction. + * - Use extract() before and after for both. + * + * @param region The region to extract + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extract(region: Region): Sharp; + + /** + * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel. + * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels. + * The info response Object will contain trimOffsetLeft and trimOffsetTop properties. + * @param options trim options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + trim(options?: TrimOptions): Sharp; + + //#endregion +} + +export type SharpInput = Buffer + | ArrayBuffer + | Uint8Array + | Uint8ClampedArray + | Int8Array + | Uint16Array + | Int16Array + | Uint32Array + | Int32Array + | Float32Array + | Float64Array + | string; + +export interface SharpOptions { + /** + * Auto-orient based on the EXIF `Orientation` tag, if present. + * Mirroring is supported and may infer the use of a flip operation. + * + * Using this option will remove the EXIF `Orientation` tag, if any. + */ + autoOrient?: boolean | undefined; + /** + * When to abort processing of invalid pixel data, one of (in order of sensitivity): + * 'none' (least), 'truncated', 'error' or 'warning' (most), highers level imply lower levels, invalid metadata will always abort. + * Use the default 'warning' level with untrusted input. (optional, default 'warning') + */ + failOn?: FailOnOptions | undefined; + /** + * Do not process input images where the number of pixels (width x height) exceeds this limit. + * Assumes image dimensions contained in the input metadata can be trusted. + * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF). (optional, default 268402689) + */ + limitInputPixels?: number | boolean | undefined; + /** + * Do not process input images where the number of channels exceeds this limit. + * Assumes image metadata can be trusted. + * An integral Number of channels, zero or false to remove limit, true to use default limit of 5. (optional, default 5) + */ + limitInputChannels?: number | boolean | undefined; + /** Set this to true to remove safety features that help prevent memory exhaustion (SVG, PNG). (optional, default false) */ + unlimited?: boolean | undefined; + /** Set this to false to use random access rather than sequential read. Some operations will do this automatically. */ + sequentialRead?: boolean | undefined; + /** The DPI at which to render SVG and PDF images, in the range 1 to 100000. (optional, default 72) */ + density?: number | undefined; + /** Should the embedded ICC profile, if any, be ignored. */ + ignoreIcc?: boolean | undefined; + /** Number of pages to extract for multi-page input (GIF, TIFF, PDF), use -1 for all pages */ + pages?: number | undefined; + /** Page number to start extracting from for multi-page input (GIF, TIFF, PDF), zero based. (optional, default 0) */ + page?: number | undefined; + /** TIFF specific input options */ + tiff?: TiffInputOptions | undefined; + /** SVG specific input options */ + svg?: SvgInputOptions | undefined; + /** PDF specific input options */ + pdf?: PdfInputOptions | undefined; + /** OpenSlide specific input options */ + openSlide?: OpenSlideInputOptions | undefined; + /** JPEG 2000 specific input options */ + jp2?: Jp2InputOptions | undefined; + /** @deprecated Use {@link SharpOptions.tiff} instead */ + subifd?: number | undefined; + /** @deprecated Use {@link SharpOptions.pdf} instead */ + pdfBackground?: ColorLike | undefined; + /** @deprecated Use {@link SharpOptions.openSlide} instead */ + level?: number | undefined; + /** Set to `true` to read all frames/pages of an animated image (equivalent of setting `pages` to `-1`). (optional, default false) */ + animated?: boolean | undefined; + /** Describes raw pixel input image data. See raw() for pixel ordering. */ + raw?: CreateRaw | undefined; + /** Describes a new image to be created. */ + create?: Create | undefined; + /** Describes a new text image to be created. */ + text?: CreateText | undefined; + /** Describes how array of input images should be joined. */ + join?: Join | undefined; +} + +export interface CacheOptions { + /** Is the maximum memory in MB to use for this cache (optional, default 50) */ + memory?: number | undefined; + /** Is the maximum number of files to hold open (optional, default 20) */ + files?: number | undefined; + /** Is the maximum number of operations to cache (optional, default 100) */ + items?: number | undefined; +} + +export interface TimeoutOptions { + /** Number of seconds after which processing will be stopped (default 0, eg disabled) */ + seconds: number; +} + +export interface SharpCounters { + /** The number of tasks this module has queued waiting for libuv to provide a worker thread from its pool. */ + queue: number; + /** The number of resize tasks currently being processed. */ + process: number; +} + +export interface Raw { + width: number; + height: number; + channels: Channels; +} + +export interface CreateRaw extends Raw { + /** Specifies that the raw input has already been premultiplied, set to true to avoid sharp premultiplying the image. (optional, default false) */ + premultiplied?: boolean | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; +} + +export type CreateChannels = 3 | 4; + +export interface Create { + /** Number of pixels wide. */ + width: number; + /** Number of pixels high. */ + height: number; + /** Number of bands, 3 for RGB, 4 for RGBA */ + channels: CreateChannels; + /** Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. */ + background: ColorLike; + /** Describes a noise to be created. */ + noise?: Noise | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; + +} + +export interface CreateText { + /** Text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. */ + text: string; + /** Font name to render with. */ + font?: string; + /** Absolute filesystem path to a font file that can be used by `font`. */ + fontfile?: string; + /** Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. (optional, default `0`) */ + width?: number; + /** + * Integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution + * defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. (optional, default `0`) + */ + height?: number; + /** Text alignment ('left', 'centre', 'center', 'right'). (optional, default 'left') */ + align?: TextAlign; + /** Set this to true to apply justification to the text. (optional, default `false`) */ + justify?: boolean; + /** The resolution (size) at which to render the text. Does not take effect if `height` is specified. (optional, default `72`) */ + dpi?: number; + /** + * Set this to true to enable RGBA output. This is useful for colour emoji rendering, + * or support for pango markup features like `Red!`. (optional, default `false`) + */ + rgba?: boolean; + /** Text line height in points. Will use the font line height if none is specified. (optional, default `0`) */ + spacing?: number; + /** Word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none' */ + wrap?: TextWrap; +} + +export interface Join { + /** Number of images per row. */ + across?: number | undefined; + /** Treat input as frames of an animated image. */ + animated?: boolean | undefined; + /** Space between images, in pixels. */ + shim?: number | undefined; + /** Background colour. */ + background?: ColorLike | undefined; + /** Horizontal alignment. */ + halign?: HorizontalAlignment | undefined; + /** Vertical alignment. */ + valign?: VerticalAlignment | undefined; +} + +export interface TiffInputOptions { + /** Sub Image File Directory to extract, defaults to main image. Use -1 for all subifds. */ + subifd?: number | undefined; +} + +export interface SvgInputOptions { + /** Custom CSS for SVG input, applied with a User Origin during the CSS cascade. */ + stylesheet?: string | undefined; + /** Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA. */ + highBitdepth?: boolean | undefined; +} + +export interface PdfInputOptions { + /** Background colour to use when PDF is partially transparent. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick. */ + background?: ColorLike | undefined; +} + +export interface OpenSlideInputOptions { + /** Level to extract from a multi-level input, zero based. (optional, default 0) */ + level?: number | undefined; +} + +export interface Jp2InputOptions { + /** Set to `true` to load JPEG 2000 images using [oneshot mode](https://github.com/libvips/libvips/issues/4205) */ + oneshot?: boolean | undefined; +} + +export interface ExifDir { + [k: string]: string; +} + +export interface Exif { + 'IFD0'?: ExifDir; + 'IFD1'?: ExifDir; + 'IFD2'?: ExifDir; + 'IFD3'?: ExifDir; +} + +export type HeifCompression = 'av1' | 'hevc'; + +export type HeifTune = 'auto' | 'iq' | 'psnr' | 'ssim'; + +export type Unit = 'inch' | 'cm'; + +export type MediaType = + 'application/pdf' | + 'image/avif' | + 'image/fits' | + 'image/gif' | + 'image/heic' | + 'image/jp2' | + 'image/jpeg' | + 'image/jxl' | + 'image/png' | + 'image/svg+xml' | + 'image/tiff' | + 'image/vnd.radiance' | + 'image/webp' | + 'image/x-exr' | + 'image/x-portable-pixmap'; + +export interface WriteableMetadata { + /** Number of pixels per inch (DPI) */ + density?: number | undefined; + /** Value between 1 and 8, used to update the EXIF Orientation tag. */ + orientation?: number | undefined; + /** + * Filesystem path to output ICC profile, defaults to sRGB. + * @deprecated Use `withIccProfile()` instead. + */ + icc?: string | undefined; + /** + * Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @deprecated Use `withExif()` or `withExifMerge()` instead. + */ + exif?: Exif | undefined; +} + +export interface Metadata { + /** Number value of the EXIF Orientation header, if present */ + orientation?: number | undefined; + /** Name of decoder used to decompress image data e.g. jpeg, png, webp, gif, svg */ + format: keyof FormatEnum; + /** Total size of image in bytes, for Stream and Buffer input only */ + size?: number | undefined; + /** Number of pixels wide (EXIF orientation is not taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is not taken into consideration) */ + height: number; + /** Any changed metadata after the image orientation is applied. */ + autoOrient: { + /** Number of pixels wide (EXIF orientation is taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is taken into consideration) */ + height: number; + }; + /** Name of colour space interpretation */ + space: keyof ColourspaceEnum; + /** Number of bands e.g. 3 for sRGB, 4 for CMYK */ + channels: Channels; + /** Name of pixel depth format e.g. uchar, char, ushort, float ... */ + depth: keyof DepthEnum; + /** Number of pixels per inch (DPI), if present */ + density?: number | undefined; + /** String containing JPEG chroma subsampling, 4:2:0 or 4:4:4 for RGB, 4:2:0:4 or 4:4:4:4 for CMYK */ + chromaSubsampling?: string | undefined; + /** Boolean indicating whether the image is interlaced using a progressive scan */ + isProgressive: boolean; + /** Boolean indicating whether the image is palette-based (GIF, PNG). */ + isPalette: boolean; + /** Number of bits per sample for each channel (GIF, PNG). */ + bitsPerSample?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; + /** Number of times to loop an animated image, zero refers to a continuous loop. */ + loop?: number | undefined; + /** Delay in ms between each page in an animated image, provided as an array of integers. */ + delay?: number[] | undefined; + /** Number of the primary page in a HEIF image */ + pagePrimary?: number | undefined; + /** Boolean indicating the presence of an embedded ICC profile */ + hasProfile: boolean; + /** Boolean indicating the presence of an alpha transparency channel */ + hasAlpha: boolean; + /** Buffer containing raw EXIF data, if present */ + exif?: Buffer | undefined; + /** Buffer containing raw ICC profile data, if present */ + icc?: Buffer | undefined; + /** Buffer containing raw IPTC data, if present */ + iptc?: Buffer | undefined; + /** Buffer containing raw XMP data, if present */ + xmp?: Buffer | undefined; + /** String containing XMP data, if valid UTF-8 */ + xmpAsString?: string | undefined; + /** Buffer containing raw TIFFTAG_PHOTOSHOP data, if present */ + tifftagPhotoshop?: Buffer | undefined; + /** The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC) */ + compression?: HeifCompression | undefined; + /** Default background colour, if present, for PNG (bKGD) and GIF images */ + background?: { r: number; g: number; b: number } | { gray: number }; + /** Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide */ + levels?: LevelMetadata[] | undefined; + /** Number of Sub Image File Directories in an OME-TIFF image */ + subifds?: number | undefined; + /** The unit of resolution (density) */ + resolutionUnit?: Unit | undefined; + /** String containing format for images loaded via *magick */ + formatMagick?: string | undefined; + /** Array of keyword/text pairs representing PNG text blocks, if present. */ + comments?: CommentsMetadata[] | undefined; + /** HDR gain map, if present */ + gainMap?: GainMapMetadata | undefined; + /** Media Type (MIME Type) */ + mediaType?: MediaType | undefined; +} + +export interface LevelMetadata { + width: number; + height: number; +} + +export interface CommentsMetadata { + keyword: string; + text: string; +} + +export interface GainMapMetadata { + /** JPEG image */ + image: Buffer; +} + +export interface Stats { + /** Array of channel statistics for each channel in the image. */ + channels: ChannelStats[]; + /** Value to identify if the image is opaque or transparent, based on the presence and use of alpha channel */ + isOpaque: boolean; + /** Histogram-based estimation of greyscale entropy, discarding alpha channel if any */ + entropy: number; + /** Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any */ + sharpness: number; + /** Object containing most dominant sRGB colour based on a 4096-bin 3D histogram */ + dominant: { r: number; g: number; b: number }; +} + +export interface ChannelStats { + /** minimum value in the channel */ + min: number; + /** maximum value in the channel */ + max: number; + /** sum of all values in a channel */ + sum: number; + /** sum of squared values in a channel */ + squaresSum: number; + /** mean of the values in a channel */ + mean: number; + /** standard deviation for the values in a channel */ + stdev: number; + /** x-coordinate of one of the pixel where the minimum lies */ + minX: number; + /** y-coordinate of one of the pixel where the minimum lies */ + minY: number; + /** x-coordinate of one of the pixel where the maximum lies */ + maxX: number; + /** y-coordinate of one of the pixel where the maximum lies */ + maxY: number; +} + +export interface OutputOptions { + /** Force format output, otherwise attempt to use input format (optional, default true) */ + force?: boolean | undefined; +} + +export interface WithIccProfileOptions { + /** Should the ICC profile be included in the output image metadata? (optional, default true) */ + attach?: boolean | undefined; +} + +export interface JpegOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** Set to '4:4:4' to prevent chroma subsampling when quality <= 90 (optional, default '4:2:0') */ + chromaSubsampling?: string | undefined; + /** Apply trellis quantisation (optional, default false) */ + trellisQuantisation?: boolean | undefined; + /** Apply overshoot deringing (optional, default false) */ + overshootDeringing?: boolean | undefined; + /** Optimise progressive scans, forces progressive (optional, default false) */ + optimiseScans?: boolean | undefined; + /** Alternative spelling of optimiseScans (optional, default false) */ + optimizeScans?: boolean | undefined; + /** Optimise Huffman coding tables (optional, default true) */ + optimiseCoding?: boolean | undefined; + /** Alternative spelling of optimiseCoding (optional, default true) */ + optimizeCoding?: boolean | undefined; + /** Quantization table to use, integer 0-8 (optional, default 0) */ + quantisationTable?: number | undefined; + /** Alternative spelling of quantisationTable (optional, default 0) */ + quantizationTable?: number | undefined; + /** Use mozjpeg defaults (optional, default false) */ + mozjpeg?: boolean | undefined; +} + +export interface Jp2Options extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean; + /** Horizontal tile size (optional, default 512) */ + tileWidth?: number; + /** Vertical tile size (optional, default 512) */ + tileHeight?: number; + /** Set to '4:2:0' to enable chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: '4:4:4' | '4:2:0'; +} + +export interface JxlOptions extends OutputOptions, AnimationOptions { + /** Maximum encoding error, between 0 (highest quality) and 15 (lowest quality) (optional, default 1.0) */ + distance?: number; + /** Calculate distance based on JPEG-like quality, between 1 and 100, overrides distance if specified */ + quality?: number; + /** Target decode speed tier, between 0 (highest quality) and 4 (lowest quality) (optional, default 0) */ + decodingTier?: number; + /** Use lossless compression (optional, default false) */ + lossless?: boolean; + /** CPU effort, between 1 (fastest) and 9 (slowest) (optional, default 7) */ + effort?: number | undefined; +} + +export interface WebpOptions extends OutputOptions, AnimationOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Quality of alpha layer, number from 0-100 (optional, default 100) */ + alphaQuality?: number | undefined; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean | undefined; + /** Use near_lossless compression mode (optional, default false) */ + nearLossless?: boolean | undefined; + /** Use high quality chroma subsampling (optional, default false) */ + smartSubsample?: boolean | undefined; + /** Auto-adjust the deblocking filter, slow but can improve low contrast edges (optional, default false) */ + smartDeblock?: boolean | undefined; + /** Level of CPU effort to reduce file size, integer 0-6 (optional, default 4) */ + effort?: number | undefined; + /** Prevent use of animation key frames to minimise file size (slow) (optional, default false) */ + minSize?: boolean | undefined; + /** Allow mixture of lossy and lossless animation frames (slow) (optional, default false) */ + mixed?: boolean | undefined; + /** Preset options: one of default, photo, picture, drawing, icon, text (optional, default 'default') */ + preset?: keyof PresetEnum | undefined; + /** Preserve the colour data in transparent pixels (optional, default false) */ + exact?: boolean | undefined; +} + +export interface AvifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling, requires libvips v8.11.0 (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + /** Tune output for a quality metric, one of 'auto', 'iq', 'psnr' or 'ssim' (optional, default 'auto') */ + tune?: HeifTune | undefined; +} + +export interface HeifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** compression format: av1, hevc (optional, default 'av1') */ + compression?: HeifCompression | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + /** Tune output for a quality metric, one of 'auto', 'iq', 'psnr' or 'ssim' (optional, default 'auto') */ + tune?: HeifTune | undefined; +} + +export interface GifOptions extends OutputOptions, AnimationOptions { + /** Re-use existing palette, otherwise generate new (slow) */ + reuse?: boolean | undefined; + /** Use progressive (interlace) scan */ + progressive?: boolean | undefined; + /** Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colours?: number | undefined; + /** Alternative spelling of "colours". Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colors?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest) (optional, default 7) */ + effort?: number | undefined; + /** Level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most) (optional, default 1.0) */ + dither?: number | undefined; + /** Maximum inter-frame error for transparency, between 0 (lossless) and 32 (optional, default 0) */ + interFrameMaxError?: number | undefined; + /** Maximum inter-palette error for palette reuse, between 0 and 256 (optional, default 3) */ + interPaletteMaxError?: number | undefined; + /** Keep duplicate frames in the output instead of combining them (optional, default false) */ + keepDuplicateFrames?: boolean | undefined; +} + +export interface TiffOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k (optional, default 'jpeg') */ + compression?: string | undefined; + /** Use BigTIFF variant (has no effect when compression is none) (optional, default false) */ + bigtiff?: boolean | undefined; + /** Compression predictor options: none, horizontal, float (optional, default 'horizontal') */ + predictor?: string | undefined; + /** Write an image pyramid (optional, default false) */ + pyramid?: boolean | undefined; + /** Write a tiled tiff (optional, default false) */ + tile?: boolean | undefined; + /** Horizontal tile size (optional, default 256) */ + tileWidth?: number | undefined; + /** Vertical tile size, valid values are integers in the range 1-32768 (optional, default 256) */ + tileHeight?: number | undefined; + /** Horizontal resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 (optional, default 1.0) */ + xres?: number | undefined; + /** Vertical resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 (optional, default 1.0) */ + yres?: number | undefined; + /** Reduce bitdepth to 1, 2 or 4 bit (optional) */ + bitdepth?: 1 | 2 | 4 | undefined; + /** Write 1-bit images as miniswhite (optional, default false) */ + miniswhite?: boolean | undefined; + /** Resolution unit options: inch, cm (optional, default 'inch') */ + resolutionUnit?: Unit | undefined; +} + +export interface PngOptions extends OutputOptions { + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** zlib compression level, 0-9 (optional, default 6) */ + compressionLevel?: number | undefined; + /** Use adaptive row filtering (optional, default false) */ + adaptiveFiltering?: boolean | undefined; + /** Use the lowest number of colours needed to achieve given quality (optional, default `100`) */ + quality?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest), sets palette to true (optional, default 7) */ + effort?: number | undefined; + /** Quantise to a palette-based image with alpha transparency support (optional, default false) */ + palette?: boolean | undefined; + /** Maximum number of palette entries (optional, default 256) */ + colours?: number | undefined; + /** Alternative Spelling of "colours". Maximum number of palette entries (optional, default 256) */ + colors?: number | undefined; + /** Level of Floyd-Steinberg error diffusion (optional, default 1.0) */ + dither?: number | undefined; +} + +export interface RotateOptions { + /** parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: ColorLike | undefined; +} + +export type Precision = 'integer' | 'float' | 'approximate'; + +export interface BlurOptions { + /** A value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2` */ + sigma: number; + /** A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask. */ + minAmplitude?: number; + /** How accurate the operation should be, one of: integer, float, approximate. (optional, default "integer") */ + precision?: Precision | undefined; +} + +export interface FlattenOptions { + /** background colour, parsed by the color module, defaults to black. (optional, default {r:0,g:0,b:0}) */ + background?: ColorLike | undefined; +} + +export interface NegateOptions { + /** whether or not to negate any alpha channel. (optional, default true) */ + alpha?: boolean | undefined; +} + +export interface NormaliseOptions { + /** Percentile below which luminance values will be underexposed. */ + lower?: number | undefined; + /** Percentile above which luminance values will be overexposed. */ + upper?: number | undefined; +} + +export interface ResizeOptions { + /** Alternative means of specifying width. If both are present this takes priority. */ + width?: number | undefined; + /** Alternative means of specifying height. If both are present this takes priority. */ + height?: number | undefined; + /** How the image should be resized to fit both provided dimensions, one of cover, contain, fill, inside or outside. (optional, default 'cover') */ + fit?: keyof FitEnum | undefined; + /** Position, gravity or strategy to use when fit is cover or contain. (optional, default 'centre') */ + position?: number | string | undefined; + /** Background colour when using a fit of contain, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: ColorLike | undefined; + /** The kernel to use for image reduction. (optional, default 'lanczos3') */ + kernel?: keyof KernelEnum | undefined; + /** Do not enlarge if the width or height are already less than the specified dimensions, equivalent to GraphicsMagick's > geometry option. (optional, default false) */ + withoutEnlargement?: boolean | undefined; + /** Do not reduce if the width or height are already greater than the specified dimensions, equivalent to GraphicsMagick's < geometry option. (optional, default false) */ + withoutReduction?: boolean | undefined; + /** Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern on some images. (optional, default true) */ + fastShrinkOnLoad?: boolean | undefined; +} + +export interface Region { + /** zero-indexed offset from left edge, an integer between 0 and 100000000 */ + left: number; + /** zero-indexed offset from top edge, an integer between 0 and 100000000 */ + top: number; + /** dimension of extracted image, an integer between 0 and 100000000 */ + width: number; + /** dimension of extracted image, an integer between 0 and 100000000 */ + height: number; +} + +export interface Noise { + /** type of generated noise, currently only gaussian is supported. */ + type: 'gaussian'; + /** mean of pixels in generated noise. */ + mean?: number | undefined; + /** standard deviation of pixels in generated noise. */ + sigma?: number | undefined; +} + +export type ExtendWith = 'background' | 'copy' | 'repeat' | 'mirror'; + +export interface ExtendOptions { + /** single pixel count to top edge, valid values are integers in the range 0-10000 (optional, default 0) */ + top?: number | undefined; + /** single pixel count to left edge, valid values are integers in the range 0-10000 (optional, default 0) */ + left?: number | undefined; + /** single pixel count to bottom edge, valid values are integers in the range 0-10000 (optional, default 0) */ + bottom?: number | undefined; + /** single pixel count to right edge, valid values are integers in the range 0-10000 (optional, default 0) */ + right?: number | undefined; + /** background colour, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: ColorLike | undefined; + /** how the extension is done, one of: "background", "copy", "repeat", "mirror" (optional, default `'background'`) */ + extendWith?: ExtendWith | undefined; +} + +export interface TrimOptions { + /** Background colour, parsed by the color module, defaults to that of the top-left pixel. (optional) */ + background?: ColorLike | undefined; + /** Allowed difference from the above colour, a positive number. (optional, default 10) */ + threshold?: number | undefined; + /** Does the input more closely resemble line art (e.g. vector) rather than being photographic? (optional, default false) */ + lineArt?: boolean | undefined; + /** Leave a margin around trimmed content, integral number of pixels between 0 and 10000000. (optional, default 0) */ + margin?: number | undefined; +} + +export interface RawOptions { + depth?: keyof DepthEnum; +} + +/** 1 for grayscale, 2 for grayscale + alpha, 3 for sRGB, 4 for CMYK or RGBA */ +export type Channels = 1 | 2 | 3 | 4; + +export type Colour = ColorLike; +export type Color = ColorLike; + +export interface Kernel { + /** width of the kernel in pixels. */ + width: number; + /** height of the kernel in pixels. */ + height: number; + /** Array of length width*height containing the kernel values. */ + kernel: ArrayLike; + /** the scale of the kernel in pixels. (optional, default sum) */ + scale?: number | undefined; + /** the offset of the kernel in pixels. (optional, default 0) */ + offset?: number | undefined; +} + +export interface ClaheOptions { + /** width of the region. Valid values are integers in the range 1-65536. */ + width: number; + /** height of the region. Valid values are integers in the range 1-65536. */ + height: number; + /** max slope of the cumulative contrast. A value of 0 disables contrast limiting. Valid values are integers in the range 0-100. (optional, default 3) */ + maxSlope?: number | undefined; +} + +export interface ThresholdOptions { + /** convert to single channel greyscale. (optional, default true) */ + greyscale?: boolean | undefined; + /** alternative spelling for greyscale. (optional, default true) */ + grayscale?: boolean | undefined; +} + +export interface OverlayOptions extends SharpOptions { + /** Buffer containing image data, String containing the path to an image file, or Create object */ + input?: string | Buffer | { create: Create } | { text: CreateText } | { raw: CreateRaw } | undefined; + /** how to blend this image with the image below. (optional, default `'over'`) */ + blend?: Blend | undefined; + /** gravity at which to place the overlay. (optional, default 'centre') */ + gravity?: Gravity | undefined; + /** the pixel offset from the top edge, an integer between -100000000 and 100000000. */ + top?: number | undefined; + /** the pixel offset from the left edge, an integer between -100000000 and 100000000. */ + left?: number | undefined; + /** set to true to repeat the overlay image across the entire image with the given gravity. (optional, default false) */ + tile?: boolean | undefined; + /** Set to true to avoid premultipling the image below. Equivalent to the --premultiplied vips option. */ + premultiplied?: boolean | undefined; + /** number representing the DPI for vector overlay image. (optional, default 72)*/ + density?: number | undefined; + /** Set to true to read all frames/pages of an animated image. (optional, default false) */ + animated?: boolean | undefined; + /** see sharp() constructor, (optional, default 'warning') */ + failOn?: FailOnOptions | undefined; + /** see sharp() constructor, (optional, default 268402689) */ + limitInputPixels?: number | boolean | undefined; + /** see sharp() constructor, (optional, default false) */ + autoOrient?: boolean | undefined; +} + +export interface TileOptions { + /** Tile size in pixels, a value between 1 and 8192. (optional, default 256) */ + size?: number | undefined; + /** Tile overlap in pixels, a value between 0 and 8192. (optional, default 0) */ + overlap?: number | undefined; + /** Tile angle of rotation, must be a multiple of 90. (optional, default 0) */ + angle?: number | undefined; + /** background colour, parsed by the color module, defaults to white without transparency. (optional, default {r:255,g:255,b:255,alpha:1}) */ + background?: ColorLike | undefined; + /** How deep to make the pyramid, possible values are "onepixel", "onetile" or "one" (default based on layout) */ + depth?: string | undefined; + /** Threshold to skip tile generation, a value 0 - 255 for 8-bit images or 0 - 65535 for 16-bit images */ + skipBlanks?: number | undefined; + /** Tile container, with value fs (filesystem) or zip (compressed file). (optional, default 'fs') */ + container?: TileContainer | undefined; + /** Filesystem layout, possible values are dz, iiif, iiif3, zoomify or google. (optional, default 'dz') */ + layout?: TileLayout | undefined; + /** Centre image in tile. (optional, default false) */ + centre?: boolean | undefined; + /** Alternative spelling of centre. (optional, default false) */ + center?: boolean | undefined; + /** When layout is iiif/iiif3, sets the @id/id attribute of info.json (optional, default 'https://example.com/iiif') */ + id?: string | undefined; + /** The name of the directory within the zip file when container is `zip`. */ + basename?: string | undefined; +} + +export interface AnimationOptions { + /** Number of animation iterations, a value between 0 and 65535. Use 0 for infinite animation. (optional, default 0) */ + loop?: number | undefined; + /** delay(s) between animation frames (in milliseconds), each value between 0 and 65535. (optional) */ + delay?: number | number[] | undefined; +} + +export interface SharpenOptions { + /** The sigma of the Gaussian mask, where sigma = 1 + radius / 2, between 0.000001 and 10000 */ + sigma: number; + /** The level of sharpening to apply to "flat" areas, between 0 and 1000000 (optional, default 1.0) */ + m1?: number | undefined; + /** The level of sharpening to apply to "jagged" areas, between 0 and 1000000 (optional, default 2.0) */ + m2?: number | undefined; + /** Threshold between "flat" and "jagged", between 0 and 1000000 (optional, default 2.0) */ + x1?: number | undefined; + /** Maximum amount of brightening, between 0 and 1000000 (optional, default 10.0) */ + y2?: number | undefined; + /** Maximum amount of darkening, between 0 and 1000000 (optional, default 20.0) */ + y3?: number | undefined; +} + +export interface AffineOptions { + /** Parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: string | object | undefined; + /** Input horizontal offset (optional, default 0) */ + idx?: number | undefined; + /** Input vertical offset (optional, default 0) */ + idy?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + odx?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + ody?: number | undefined; + /** Interpolator (optional, default interpolators.bicubic) */ + interpolator?: Interpolators[keyof Interpolators] | undefined; +} + +export interface OutputInfo { + format: string; + size: number; + width: number; + height: number; + channels: Channels; + /** indicating if premultiplication was used */ + premultiplied: boolean; + /** Indicates if the output image has an alpha channel */ + hasAlpha: boolean; + /** Only defined when using a crop strategy */ + cropOffsetLeft?: number | undefined; + /** Only defined when using a crop strategy */ + cropOffsetTop?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetLeft?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetTop?: number | undefined; + /** DPI the font was rendered at, only defined when using `text` input */ + textAutofitDpi?: number | undefined; + /** When using the attention crop strategy, the focal point of the cropped region */ + attentionX?: number | undefined; + attentionY?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; +} + +export interface AvailableFormatInfo { + id: string; + input: { file: boolean; buffer: boolean; stream: boolean; fileSuffix?: string[] }; + output: { file: boolean; buffer: boolean; stream: boolean; alias?: string[] }; +} + +export interface FitEnum { + contain: 'contain'; + cover: 'cover'; + fill: 'fill'; + inside: 'inside'; + outside: 'outside'; +} + +export interface KernelEnum { + nearest: 'nearest'; + cubic: 'cubic'; + linear: 'linear'; + mitchell: 'mitchell'; + lanczos2: 'lanczos2'; + lanczos3: 'lanczos3'; + mks2013: 'mks2013'; + mks2021: 'mks2021'; +} + +export interface PresetEnum { + default: 'default'; + picture: 'picture'; + photo: 'photo'; + drawing: 'drawing'; + icon: 'icon'; + text: 'text'; +} + +export interface BoolEnum { + and: 'and'; + or: 'or'; + eor: 'eor'; +} + +export interface ColourspaceEnum { + 'b-w': string; + cmc: string; + cmyk: string; + fourier: string; + grey16: string; + histogram: string; + hsv: string; + lab: string; + labq: string; + labs: string; + lch: string; + matrix: string; + multiband: string; + rgb: string; + rgb16: string; + scrgb: string; + srgb: string; + xyz: string; + yxy: string; +} + +export interface DepthEnum { + char: string; + complex: string; + double: string; + dpcomplex: string; + float: string; + int: string; + short: string; + uchar: string; + uint: string; + ushort: string; +} + +export type FailOnOptions = 'none' | 'truncated' | 'error' | 'warning'; + +export type TextAlign = 'left' | 'centre' | 'center' | 'right'; + +export type TextWrap = 'word' | 'char' | 'word-char' | 'none'; + +export type HorizontalAlignment = 'left' | 'centre' | 'center' | 'right'; + +export type VerticalAlignment = 'top' | 'centre' | 'center' | 'bottom'; + +export type TileContainer = 'fs' | 'zip'; + +export type TileLayout = 'dz' | 'iiif' | 'iiif3' | 'zoomify' | 'google'; + +export type Blend = + | 'clear' + | 'source' + | 'over' + | 'in' + | 'out' + | 'atop' + | 'dest' + | 'dest-over' + | 'dest-in' + | 'dest-out' + | 'dest-atop' + | 'xor' + | 'add' + | 'saturate' + | 'multiply' + | 'screen' + | 'overlay' + | 'darken' + | 'lighten' + | 'color-dodge' + | 'colour-dodge' + | 'color-burn' + | 'colour-burn' + | 'hard-light' + | 'soft-light' + | 'difference' + | 'exclusion'; + +export type Gravity = number | string; + +export interface GravityEnum { + north: number; + northeast: number; + southeast: number; + south: number; + southwest: number; + west: number; + northwest: number; + east: number; + center: number; + centre: number; +} + +export interface StrategyEnum { + entropy: number; + attention: number; +} + +export interface FormatEnum { + dcraw: AvailableFormatInfo; + dz: AvailableFormatInfo; + exr: AvailableFormatInfo; + fits: AvailableFormatInfo; + gif: AvailableFormatInfo; + heif: AvailableFormatInfo; + jpeg: AvailableFormatInfo; + jp2: AvailableFormatInfo; + jxl: AvailableFormatInfo; + magick: AvailableFormatInfo; + openslide: AvailableFormatInfo; + pdf: AvailableFormatInfo; + png: AvailableFormatInfo; + ppm: AvailableFormatInfo; + rad: AvailableFormatInfo; + raw: AvailableFormatInfo; + svg: AvailableFormatInfo; + tiff: AvailableFormatInfo; + vips: AvailableFormatInfo; + webp: AvailableFormatInfo; +} + +export interface CacheResult { + memory: { current: number; high: number; max: number }; + files: { current: number; max: number }; + items: { current: number; max: number }; +} + +export interface Interpolators { + /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ + nearest: 'nearest'; + /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ + bilinear: 'bilinear'; + /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ + bicubic: 'bicubic'; + /** + * [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). + * Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. + */ + locallyBoundedBicubic: 'lbb'; + /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ + nohalo: 'nohalo'; + /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ + vertexSplitQuadraticBasisSpline: 'vsqbs'; +} + +export type Matrix2x2 = [[number, number], [number, number]]; +export type Matrix3x3 = [[number, number, number], [number, number, number], [number, number, number]]; +export type Matrix4x4 = [[number, number, number, number], [number, number, number, number], [number, number, number, number], [number, number, number, number]]; + +export interface SharpConstructor { + (options?: SharpOptions): Sharp; + (input?: SharpInput | SharpInput[], options?: SharpOptions): Sharp; + new (options?: SharpOptions): Sharp; + new (input?: SharpInput | SharpInput[], options?: SharpOptions): Sharp; + format: FormatEnum; + versions: { + aom?: string | undefined; + archive?: string | undefined; + cairo?: string | undefined; + cgif?: string | undefined; + exif?: string | undefined; + expat?: string | undefined; + ffi?: string | undefined; + fontconfig?: string | undefined; + freetype?: string | undefined; + fribidi?: string | undefined; + glib?: string | undefined; + harfbuzz?: string | undefined; + heif?: string | undefined; + highway?: string | undefined; + imagequant?: string | undefined; + lcms?: string | undefined; + mozjpeg?: string | undefined; + pango?: string | undefined; + pixman?: string | undefined; + png?: string | undefined; + "proxy-libintl"?: string | undefined; + rsvg?: string | undefined; + sharp: string; + spng?: string | undefined; + tiff?: string | undefined; + vips: string; + webp?: string | undefined; + xml?: string | undefined; + "zlib-ng"?: string | undefined; + }; + interpolators: Interpolators; + queue: NodeJS.EventEmitter; + cache(options?: boolean | CacheOptions): CacheResult; + concurrency(concurrency?: number): number; + counters(): SharpCounters; + simd(enable?: boolean): boolean; + block(options: { operation: string[] }): void; + unblock(options: { operation: string[] }): void; + gravity: GravityEnum; + strategy: StrategyEnum; + kernel: KernelEnum; + fit: FitEnum; + bool: BoolEnum; +} + +declare const sharp: SharpConstructor; +export default sharp; + diff --git a/apps/api/.output/node_modules/sharp/dist/index.mjs b/apps/api/.output/node_modules/sharp/dist/index.mjs new file mode 100644 index 0000000..73a5ad2 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/index.mjs @@ -0,0 +1,25 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import Sharp from './constructor.mjs'; +import input from './input.mjs'; +import resize from './resize.mjs'; +import composite from './composite.mjs'; +import operation from './operation.mjs'; +import colour from './colour.mjs'; +import channel from './channel.mjs'; +import output from './output.mjs'; +import utility from './utility.mjs'; + +input(Sharp); +resize(Sharp); +composite(Sharp); +operation(Sharp); +colour(Sharp); +channel(Sharp); +output(Sharp); +utility(Sharp); + +export default Sharp; diff --git a/apps/api/.output/node_modules/sharp/dist/input.cjs b/apps/api/.output/node_modules/sharp/dist/input.cjs new file mode 100644 index 0000000..241b116 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/input.cjs @@ -0,0 +1,819 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is.cjs'); +const sharp = require('./sharp.cjs'); + +/** + * Justification alignment + * @member + * @private + */ +const align = { + left: 'low', + top: 'low', + low: 'low', + center: 'centre', + centre: 'centre', + right: 'high', + bottom: 'high', + high: 'high' +}; + +const inputStreamParameters = [ + // Limits and error handling + 'failOn', 'limitInputPixels', 'limitInputChannels', 'unlimited', + // Format-generic + 'animated', 'autoOrient', 'density', 'ignoreIcc', 'page', 'pages', 'sequentialRead', + // Format-specific + 'jp2', 'openSlide', 'pdf', 'raw', 'svg', 'tiff', + // Deprecated + 'openSlideLevel', 'pdfBackground', 'tiffSubifd' +]; + +/** + * Extract input options, if any, from an object. + * @private + */ +function _inputOptionsFromObject (obj) { + const params = inputStreamParameters + .filter(p => is.defined(obj[p])) + .map(p => ([p, obj[p]])); + return params.length + ? Object.fromEntries(params) + : undefined; +} + +/** + * Create Object containing input and input-related options. + * @private + */ +function _createInputDescriptor (input, inputOptions, containerOptions) { + const inputDescriptor = { + autoOrient: false, + failOn: 'warning', + limitInputPixels: 0x3FFF ** 2, + limitInputChannels: 5, + ignoreIcc: false, + unlimited: false, + sequentialRead: true + }; + if (is.string(input)) { + // filesystem + inputDescriptor.file = input; + } else if (is.buffer(input)) { + // Buffer + if (input.length === 0) { + throw Error('Input Buffer is empty'); + } + inputDescriptor.buffer = input; + } else if (is.arrayBuffer(input)) { + if (input.byteLength === 0) { + throw Error('Input bit Array is empty'); + } + inputDescriptor.buffer = Buffer.from(input, 0, input.byteLength); + } else if (is.typedArray(input)) { + if (input.length === 0) { + throw Error('Input Bit Array is empty'); + } + inputDescriptor.buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength); + } else if (is.plainObject(input) && !is.defined(inputOptions)) { + // Plain Object descriptor, e.g. create + inputOptions = input; + if (_inputOptionsFromObject(inputOptions)) { + // Stream with options + inputDescriptor.buffer = []; + } + } else if (!is.defined(input) && !is.defined(inputOptions) && is.object(containerOptions) && containerOptions.allowStream) { + // Stream without options + inputDescriptor.buffer = []; + } else if (Array.isArray(input)) { + if (input.length > 1) { + // Join images together + if (!this.options.joining) { + this.options.joining = true; + this.options.join = input.map(i => this._createInputDescriptor(i)); + } else { + throw new Error('Recursive join is unsupported'); + } + } else { + throw new Error('Expected at least two images to join'); + } + } else { + throw new Error(`Unsupported input '${input}' of type ${typeof input}${ + is.defined(inputOptions) ? ` when also providing options of type ${typeof inputOptions}` : '' + }`); + } + if (is.object(inputOptions)) { + // failOn + if (is.defined(inputOptions.failOn)) { + if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ['none', 'truncated', 'error', 'warning'])) { + inputDescriptor.failOn = inputOptions.failOn; + } else { + throw is.invalidParameterError('failOn', 'one of: none, truncated, error, warning', inputOptions.failOn); + } + } + // autoOrient + if (is.defined(inputOptions.autoOrient)) { + if (is.bool(inputOptions.autoOrient)) { + inputDescriptor.autoOrient = inputOptions.autoOrient; + } else { + throw is.invalidParameterError('autoOrient', 'boolean', inputOptions.autoOrient); + } + } + // Density + if (is.defined(inputOptions.density)) { + if (is.number(inputOptions.density) && is.inRange(inputOptions.density, 1, 100000)) { + inputDescriptor.density = inputOptions.density; + } else { + throw is.invalidParameterError('density', 'number between 1 and 100000', inputOptions.density); + } + } + // Ignore embeddded ICC profile + if (is.defined(inputOptions.ignoreIcc)) { + if (is.bool(inputOptions.ignoreIcc)) { + inputDescriptor.ignoreIcc = inputOptions.ignoreIcc; + } else { + throw is.invalidParameterError('ignoreIcc', 'boolean', inputOptions.ignoreIcc); + } + } + // limitInputPixels + if (is.defined(inputOptions.limitInputPixels)) { + if (is.bool(inputOptions.limitInputPixels)) { + inputDescriptor.limitInputPixels = inputOptions.limitInputPixels + ? 0x3FFF ** 2 + : 0; + } else if (is.integer(inputOptions.limitInputPixels) && is.inRange(inputOptions.limitInputPixels, 0, Number.MAX_SAFE_INTEGER)) { + inputDescriptor.limitInputPixels = inputOptions.limitInputPixels; + } else { + throw is.invalidParameterError('limitInputPixels', 'positive integer', inputOptions.limitInputPixels); + } + } + // limitInputChannels + if (is.defined(inputOptions.limitInputChannels)) { + if (is.bool(inputOptions.limitInputChannels)) { + inputDescriptor.limitInputChannels = inputOptions.limitInputChannels ? 5 : 0; + } else if (is.integer(inputOptions.limitInputChannels) && is.inRange(inputOptions.limitInputChannels, 0, Number.MAX_SAFE_INTEGER)) { + inputDescriptor.limitInputChannels = inputOptions.limitInputChannels; + } else { + throw is.invalidParameterError('limitInputChannels', 'positive integer', inputOptions.limitInputChannels); + } + } + // unlimited + if (is.defined(inputOptions.unlimited)) { + if (is.bool(inputOptions.unlimited)) { + inputDescriptor.unlimited = inputOptions.unlimited; + } else { + throw is.invalidParameterError('unlimited', 'boolean', inputOptions.unlimited); + } + } + // sequentialRead + if (is.defined(inputOptions.sequentialRead)) { + if (is.bool(inputOptions.sequentialRead)) { + inputDescriptor.sequentialRead = inputOptions.sequentialRead; + } else { + throw is.invalidParameterError('sequentialRead', 'boolean', inputOptions.sequentialRead); + } + } + // Raw pixel input + if (is.defined(inputOptions.raw)) { + if ( + is.object(inputOptions.raw) && + is.integer(inputOptions.raw.width) && is.inRange(inputOptions.raw.width, 1, 100000000) && + is.integer(inputOptions.raw.height) && is.inRange(inputOptions.raw.height, 1, 100000000) && + is.integer(inputOptions.raw.channels) && is.inRange(inputOptions.raw.channels, 1, 4) + ) { + inputDescriptor.rawWidth = inputOptions.raw.width; + inputDescriptor.rawHeight = inputOptions.raw.height; + inputDescriptor.rawChannels = inputOptions.raw.channels; + switch (input.constructor) { + case Uint8Array: + case Uint8ClampedArray: + inputDescriptor.rawDepth = 'uchar'; + break; + case Int8Array: + inputDescriptor.rawDepth = 'char'; + break; + case Uint16Array: + inputDescriptor.rawDepth = 'ushort'; + break; + case Int16Array: + inputDescriptor.rawDepth = 'short'; + break; + case Uint32Array: + inputDescriptor.rawDepth = 'uint'; + break; + case Int32Array: + inputDescriptor.rawDepth = 'int'; + break; + case Float32Array: + inputDescriptor.rawDepth = 'float'; + break; + case Float64Array: + inputDescriptor.rawDepth = 'double'; + break; + default: + inputDescriptor.rawDepth = 'uchar'; + break; + } + } else { + throw new Error('Expected width, height and channels for raw pixel input'); + } + inputDescriptor.rawPremultiplied = false; + if (is.defined(inputOptions.raw.premultiplied)) { + if (is.bool(inputOptions.raw.premultiplied)) { + inputDescriptor.rawPremultiplied = inputOptions.raw.premultiplied; + } else { + throw is.invalidParameterError('raw.premultiplied', 'boolean', inputOptions.raw.premultiplied); + } + } + inputDescriptor.rawPageHeight = 0; + if (is.defined(inputOptions.raw.pageHeight)) { + if (is.integer(inputOptions.raw.pageHeight) && inputOptions.raw.pageHeight > 0 && inputOptions.raw.pageHeight <= inputOptions.raw.height) { + if (inputOptions.raw.height % inputOptions.raw.pageHeight !== 0) { + throw new Error(`Expected raw.height ${inputOptions.raw.height} to be a multiple of raw.pageHeight ${inputOptions.raw.pageHeight}`); + } + inputDescriptor.rawPageHeight = inputOptions.raw.pageHeight; + } else { + throw is.invalidParameterError('raw.pageHeight', 'positive integer', inputOptions.raw.pageHeight); + } + } + } + // Multi-page input (GIF, TIFF, PDF) + if (is.defined(inputOptions.animated)) { + if (is.bool(inputOptions.animated)) { + inputDescriptor.pages = inputOptions.animated ? -1 : 1; + } else { + throw is.invalidParameterError('animated', 'boolean', inputOptions.animated); + } + } + if (is.defined(inputOptions.pages)) { + if (is.integer(inputOptions.pages) && is.inRange(inputOptions.pages, -1, 100000)) { + inputDescriptor.pages = inputOptions.pages; + } else { + throw is.invalidParameterError('pages', 'integer between -1 and 100000', inputOptions.pages); + } + } + if (is.defined(inputOptions.page)) { + if (is.integer(inputOptions.page) && is.inRange(inputOptions.page, 0, 100000)) { + inputDescriptor.page = inputOptions.page; + } else { + throw is.invalidParameterError('page', 'integer between 0 and 100000', inputOptions.page); + } + } + // OpenSlide specific options + if (is.object(inputOptions.openSlide) && is.defined(inputOptions.openSlide.level)) { + if (is.integer(inputOptions.openSlide.level) && is.inRange(inputOptions.openSlide.level, 0, 256)) { + inputDescriptor.openSlideLevel = inputOptions.openSlide.level; + } else { + throw is.invalidParameterError('openSlide.level', 'integer between 0 and 256', inputOptions.openSlide.level); + } + } else if (is.defined(inputOptions.level)) { + // Deprecated + if (is.integer(inputOptions.level) && is.inRange(inputOptions.level, 0, 256)) { + inputDescriptor.openSlideLevel = inputOptions.level; + } else { + throw is.invalidParameterError('level', 'integer between 0 and 256', inputOptions.level); + } + } + // TIFF specific options + if (is.object(inputOptions.tiff) && is.defined(inputOptions.tiff.subifd)) { + if (is.integer(inputOptions.tiff.subifd) && is.inRange(inputOptions.tiff.subifd, -1, 100000)) { + inputDescriptor.tiffSubifd = inputOptions.tiff.subifd; + } else { + throw is.invalidParameterError('tiff.subifd', 'integer between -1 and 100000', inputOptions.tiff.subifd); + } + } else if (is.defined(inputOptions.subifd)) { + // Deprecated + if (is.integer(inputOptions.subifd) && is.inRange(inputOptions.subifd, -1, 100000)) { + inputDescriptor.tiffSubifd = inputOptions.subifd; + } else { + throw is.invalidParameterError('subifd', 'integer between -1 and 100000', inputOptions.subifd); + } + } + // SVG specific options + if (is.object(inputOptions.svg)) { + if (is.defined(inputOptions.svg.stylesheet)) { + if (is.string(inputOptions.svg.stylesheet)) { + inputDescriptor.svgStylesheet = inputOptions.svg.stylesheet; + } else { + throw is.invalidParameterError('svg.stylesheet', 'string', inputOptions.svg.stylesheet); + } + } + if (is.defined(inputOptions.svg.highBitdepth)) { + if (is.bool(inputOptions.svg.highBitdepth)) { + inputDescriptor.svgHighBitdepth = inputOptions.svg.highBitdepth; + } else { + throw is.invalidParameterError('svg.highBitdepth', 'boolean', inputOptions.svg.highBitdepth); + } + } + } + // PDF specific options + if (is.object(inputOptions.pdf) && is.defined(inputOptions.pdf.background)) { + inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdf.background); + } else if (is.defined(inputOptions.pdfBackground)) { + // Deprecated + inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdfBackground); + } + // JPEG 2000 specific options + if (is.object(inputOptions.jp2) && is.defined(inputOptions.jp2.oneshot)) { + if (is.bool(inputOptions.jp2.oneshot)) { + inputDescriptor.jp2Oneshot = inputOptions.jp2.oneshot; + } else { + throw is.invalidParameterError('jp2.oneshot', 'boolean', inputOptions.jp2.oneshot); + } + } + // Create new image + if (is.defined(inputOptions.create)) { + if ( + is.object(inputOptions.create) && + is.integer(inputOptions.create.width) && is.inRange(inputOptions.create.width, 1, 100000000) && + is.integer(inputOptions.create.height) && is.inRange(inputOptions.create.height, 1, 100000000) && + is.integer(inputOptions.create.channels) + ) { + inputDescriptor.createWidth = inputOptions.create.width; + inputDescriptor.createHeight = inputOptions.create.height; + inputDescriptor.createChannels = inputOptions.create.channels; + inputDescriptor.createPageHeight = 0; + if (is.defined(inputOptions.create.pageHeight)) { + if (is.integer(inputOptions.create.pageHeight) && inputOptions.create.pageHeight > 0 && inputOptions.create.pageHeight <= inputOptions.create.height) { + if (inputOptions.create.height % inputOptions.create.pageHeight !== 0) { + throw new Error(`Expected create.height ${inputOptions.create.height} to be a multiple of create.pageHeight ${inputOptions.create.pageHeight}`); + } + inputDescriptor.createPageHeight = inputOptions.create.pageHeight; + } else { + throw is.invalidParameterError('create.pageHeight', 'positive integer', inputOptions.create.pageHeight); + } + } + // Noise + if (is.defined(inputOptions.create.noise)) { + if (!is.object(inputOptions.create.noise)) { + throw new Error('Expected noise to be an object'); + } + if (inputOptions.create.noise.type !== 'gaussian') { + throw new Error('Only gaussian noise is supported at the moment'); + } + inputDescriptor.createNoiseType = inputOptions.create.noise.type; + if (!is.inRange(inputOptions.create.channels, 1, 4)) { + throw is.invalidParameterError('create.channels', 'number between 1 and 4', inputOptions.create.channels); + } + inputDescriptor.createNoiseMean = 128; + if (is.defined(inputOptions.create.noise.mean)) { + if (is.number(inputOptions.create.noise.mean) && is.inRange(inputOptions.create.noise.mean, 0, 10000)) { + inputDescriptor.createNoiseMean = inputOptions.create.noise.mean; + } else { + throw is.invalidParameterError('create.noise.mean', 'number between 0 and 10000', inputOptions.create.noise.mean); + } + } + inputDescriptor.createNoiseSigma = 30; + if (is.defined(inputOptions.create.noise.sigma)) { + if (is.number(inputOptions.create.noise.sigma) && is.inRange(inputOptions.create.noise.sigma, 0, 10000)) { + inputDescriptor.createNoiseSigma = inputOptions.create.noise.sigma; + } else { + throw is.invalidParameterError('create.noise.sigma', 'number between 0 and 10000', inputOptions.create.noise.sigma); + } + } + } else if (is.defined(inputOptions.create.background)) { + if (!is.inRange(inputOptions.create.channels, 3, 4)) { + throw is.invalidParameterError('create.channels', 'number between 3 and 4', inputOptions.create.channels); + } + inputDescriptor.createBackground = this._getBackgroundColourOption(inputOptions.create.background); + } else { + throw new Error('Expected valid noise or background to create a new input image'); + } + delete inputDescriptor.buffer; + } else { + throw new Error('Expected valid width, height and channels to create a new input image'); + } + } + // Create a new image with text + if (is.defined(inputOptions.text)) { + if (is.object(inputOptions.text) && is.string(inputOptions.text.text)) { + inputDescriptor.textValue = inputOptions.text.text; + if (is.defined(inputOptions.text.height) && is.defined(inputOptions.text.dpi)) { + throw new Error('Expected only one of dpi or height'); + } + if (is.defined(inputOptions.text.font)) { + if (is.string(inputOptions.text.font)) { + inputDescriptor.textFont = inputOptions.text.font; + } else { + throw is.invalidParameterError('text.font', 'string', inputOptions.text.font); + } + } + if (is.defined(inputOptions.text.fontfile)) { + if (is.string(inputOptions.text.fontfile)) { + inputDescriptor.textFontfile = inputOptions.text.fontfile; + } else { + throw is.invalidParameterError('text.fontfile', 'string', inputOptions.text.fontfile); + } + } + if (is.defined(inputOptions.text.width)) { + if (is.integer(inputOptions.text.width) && is.inRange(inputOptions.text.width, 1, 1000000)) { + inputDescriptor.textWidth = inputOptions.text.width; + } else { + throw is.invalidParameterError('text.width', 'integer between 1 and 1000000', inputOptions.text.width); + } + } + if (is.defined(inputOptions.text.height)) { + if (is.integer(inputOptions.text.height) && is.inRange(inputOptions.text.height, 1, 1000000)) { + inputDescriptor.textHeight = inputOptions.text.height; + } else { + throw is.invalidParameterError('text.height', 'integer between 1 and 1000000', inputOptions.text.height); + } + } + if (is.defined(inputOptions.text.align)) { + if (is.string(inputOptions.text.align) && is.string(this.constructor.align[inputOptions.text.align])) { + inputDescriptor.textAlign = this.constructor.align[inputOptions.text.align]; + } else { + throw is.invalidParameterError('text.align', 'valid alignment', inputOptions.text.align); + } + } + if (is.defined(inputOptions.text.justify)) { + if (is.bool(inputOptions.text.justify)) { + inputDescriptor.textJustify = inputOptions.text.justify; + } else { + throw is.invalidParameterError('text.justify', 'boolean', inputOptions.text.justify); + } + } + if (is.defined(inputOptions.text.dpi)) { + if (is.integer(inputOptions.text.dpi) && is.inRange(inputOptions.text.dpi, 1, 1000000)) { + inputDescriptor.textDpi = inputOptions.text.dpi; + } else { + throw is.invalidParameterError('text.dpi', 'integer between 1 and 1000000', inputOptions.text.dpi); + } + } + if (is.defined(inputOptions.text.rgba)) { + if (is.bool(inputOptions.text.rgba)) { + inputDescriptor.textRgba = inputOptions.text.rgba; + } else { + throw is.invalidParameterError('text.rgba', 'bool', inputOptions.text.rgba); + } + } + if (is.defined(inputOptions.text.spacing)) { + if (is.integer(inputOptions.text.spacing) && is.inRange(inputOptions.text.spacing, -1000000, 1000000)) { + inputDescriptor.textSpacing = inputOptions.text.spacing; + } else { + throw is.invalidParameterError('text.spacing', 'integer between -1000000 and 1000000', inputOptions.text.spacing); + } + } + if (is.defined(inputOptions.text.wrap)) { + if (is.string(inputOptions.text.wrap) && is.inArray(inputOptions.text.wrap, ['word', 'char', 'word-char', 'none'])) { + inputDescriptor.textWrap = inputOptions.text.wrap; + } else { + throw is.invalidParameterError('text.wrap', 'one of: word, char, word-char, none', inputOptions.text.wrap); + } + } + delete inputDescriptor.buffer; + } else { + throw new Error('Expected a valid string to create an image with text.'); + } + } + // Join images together + if (is.defined(inputOptions.join)) { + if (is.defined(this.options.join)) { + if (is.defined(inputOptions.join.animated)) { + if (is.bool(inputOptions.join.animated)) { + inputDescriptor.joinAnimated = inputOptions.join.animated; + } else { + throw is.invalidParameterError('join.animated', 'boolean', inputOptions.join.animated); + } + } + if (is.defined(inputOptions.join.across)) { + if (is.integer(inputOptions.join.across) && is.inRange(inputOptions.join.across, 1, 1000000)) { + inputDescriptor.joinAcross = inputOptions.join.across; + } else { + throw is.invalidParameterError('join.across', 'integer between 1 and 100000', inputOptions.join.across); + } + } + if (is.defined(inputOptions.join.shim)) { + if (is.integer(inputOptions.join.shim) && is.inRange(inputOptions.join.shim, 0, 1000000)) { + inputDescriptor.joinShim = inputOptions.join.shim; + } else { + throw is.invalidParameterError('join.shim', 'integer between 0 and 100000', inputOptions.join.shim); + } + } + if (is.defined(inputOptions.join.background)) { + inputDescriptor.joinBackground = this._getBackgroundColourOption(inputOptions.join.background); + } + if (is.defined(inputOptions.join.halign)) { + if (is.string(inputOptions.join.halign) && is.string(this.constructor.align[inputOptions.join.halign])) { + inputDescriptor.joinHalign = this.constructor.align[inputOptions.join.halign]; + } else { + throw is.invalidParameterError('join.halign', 'valid alignment', inputOptions.join.halign); + } + } + if (is.defined(inputOptions.join.valign)) { + if (is.string(inputOptions.join.valign) && is.string(this.constructor.align[inputOptions.join.valign])) { + inputDescriptor.joinValign = this.constructor.align[inputOptions.join.valign]; + } else { + throw is.invalidParameterError('join.valign', 'valid alignment', inputOptions.join.valign); + } + } + } else { + throw new Error('Expected input to be an array of images to join'); + } + } + } else if (is.defined(inputOptions)) { + throw new Error(`Invalid input options ${inputOptions}`); + } + return inputDescriptor; +} + +/** + * Handle incoming Buffer chunk on Writable Stream. + * @private + * @param {Buffer} chunk + * @param {string} encoding - unused + * @param {Function} callback + */ +function _write (chunk, _encoding, callback) { + if (Array.isArray(this.options.input.buffer)) { + if (is.buffer(chunk)) { + this.options.input.buffer.push(chunk); + callback(); + } else { + callback(new Error('Non-Buffer data on Writable Stream')); + } + } else { + callback(new Error('Unexpected data on Writable Stream')); + } +} + +/** + * Flattens the array of chunks accumulated in input.buffer. + * @private + */ +function _flattenBufferIn () { + if (this._isStreamInput()) { + this.options.input.buffer = Buffer.concat(this.options.input.buffer); + } +} + +/** + * Are we expecting Stream-based input? + * @private + * @returns {boolean} + */ +function _isStreamInput () { + return Array.isArray(this.options.input.buffer); +} + +/** + * Call fn when the Writable side of Stream-based input has finished, + * or immediately when it already has, as 'finish' is emitted only once. + * @private + * @param {Function} fn + */ +function _whenStreamInFinished (fn) { + if (this.writableFinished) { + fn(); + } else { + this.once('finish', fn); + } +} + +/** + * Fast access to (uncached) image metadata without decoding any compressed pixel data. + * + * This is read from the header of the input image. + * It does not take into consideration any operations to be applied to the output image, + * such as resize or rotate. + * + * Dimensions in the response will respect the `page` and `pages` properties of the + * {@link /api-constructor/ constructor parameters}. + * + * A `Promise` is returned when `callback` is not provided. + * + * - `format`: Name of decoder used to parse image e.g. `jpeg`, `png`, `webp`, `gif`, `svg`, `heif`, `tiff` + * - `mediaType`: Media Type (MIME Type) e.g. `image/jpeg`, `image/png`, `image/svg+xml`, `image/avif` + * - `size`: Total size of image in bytes, for Stream and Buffer input only + * - `width`: Number of pixels wide (EXIF orientation is not taken into consideration, see example below) + * - `height`: Number of pixels high (EXIF orientation is not taken into consideration, see example below) + * - `space`: Name of colour space interpretation e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * - `channels`: Number of bands e.g. `3` for sRGB, `4` for CMYK + * - `depth`: Name of pixel depth format e.g. `uchar`, `char`, `ushort`, `float` [...](https://www.libvips.org/API/current/enum.BandFormat.html) + * - `density`: Number of pixels per inch (DPI), if present + * - `chromaSubsampling`: String containing JPEG chroma subsampling, `4:2:0` or `4:4:4` for RGB, `4:2:0:4` or `4:4:4:4` for CMYK + * - `isProgressive`: Boolean indicating whether the image is interlaced using a progressive scan + * - `isPalette`: Boolean indicating whether the image is palette-based (GIF, PNG). + * - `bitsPerSample`: Number of bits per sample for each channel (GIF, PNG, HEIF). + * - `pages`: Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP + * - `pageHeight`: Number of pixels high each page in a multi-page image will be. + * - `loop`: Number of times to loop an animated image, zero refers to a continuous loop. + * - `delay`: Delay in ms between each page in an animated image, provided as an array of integers. + * - `pagePrimary`: Number of the primary page in a HEIF image + * - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide + * - `subifds`: Number of Sub Image File Directories in an OME-TIFF image + * - `background`: Default background colour, if present, for PNG (bKGD) and GIF images + * - `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC) + * - `resolutionUnit`: The unit of resolution (density), either `inch` or `cm`, if present + * - `hasProfile`: Boolean indicating the presence of an embedded ICC profile + * - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel + * - `orientation`: Number value of the EXIF Orientation header, if present + * - `exif`: Buffer containing raw EXIF data, if present + * - `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present + * - `iptc`: Buffer containing raw IPTC data, if present + * - `xmp`: Buffer containing raw XMP data, if present + * - `xmpAsString`: String containing XMP data, if valid UTF-8. + * - `tifftagPhotoshop`: Buffer containing raw TIFFTAG_PHOTOSHOP data, if present + * - `formatMagick`: String containing format for images loaded via *magick + * - `comments`: Array of keyword/text pairs representing PNG text blocks, if present. + * - `gainMap.image`: HDR gain map, if present, as compressed JPEG image. + * + * @example + * const metadata = await sharp(input).metadata(); + * + * @example + * const image = sharp(inputJpg); + * image + * .metadata() + * .then(function(metadata) { + * return image + * .resize(Math.round(metadata.width / 2)) + * .webp() + * .toBuffer(); + * }) + * .then(function(data) { + * // data contains a WebP image half the width and height of the original JPEG + * }); + * + * @example + * // Get dimensions taking EXIF Orientation into account. + * const { autoOrient } = await sharp(input).metadata(); + * const { width, height } = autoOrient; + * + * @param {Function} [callback] - called with the arguments `(err, metadata)` + * @returns {Promise|Sharp} + */ +function metadata (callback) { + const stack = Error(); + if (is.fn(callback)) { + if (this._isStreamInput()) { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.metadata(this.options, (err, metadata) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, metadata); + } + }); + }); + } else { + sharp.metadata(this.options, (err, metadata) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, metadata); + } + }); + } + return this; + } else { + if (this._isStreamInput()) { + return new Promise((resolve, reject) => { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.metadata(this.options, (err, metadata) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(metadata); + } + }); + }); + }); + } else { + return new Promise((resolve, reject) => { + sharp.metadata(this.options, (err, metadata) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(metadata); + } + }); + }); + } + } +} + +/** + * Access to pixel-derived image statistics for every channel in the image. + * A `Promise` is returned when `callback` is not provided. + * + * - `channels`: Array of channel statistics for each channel in the image. Each channel statistic contains + * - `min` (minimum value in the channel) + * - `max` (maximum value in the channel) + * - `sum` (sum of all values in a channel) + * - `squaresSum` (sum of squared values in a channel) + * - `mean` (mean of the values in a channel) + * - `stdev` (standard deviation for the values in a channel) + * - `minX` (x-coordinate of one of the pixel where the minimum lies) + * - `minY` (y-coordinate of one of the pixel where the minimum lies) + * - `maxX` (x-coordinate of one of the pixel where the maximum lies) + * - `maxY` (y-coordinate of one of the pixel where the maximum lies) + * - `isOpaque`: Is the image fully opaque? Will be `true` if the image has no alpha channel or if every pixel is fully opaque. + * - `entropy`: Histogram-based estimation of greyscale entropy, discarding alpha channel if any. + * - `sharpness`: Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any. + * - `dominant`: Object containing most dominant sRGB colour based on a 4096-bin 3D histogram. + * + * **Note**: Statistics are derived from the original input image. Any operations performed on the image must first be + * written to a buffer in order to run `stats` on the result (see third example). + * + * @example + * const image = sharp(inputJpg); + * image + * .stats() + * .then(function(stats) { + * // stats contains the channel-wise statistics array and the isOpaque value + * }); + * + * @example + * const { entropy, sharpness, dominant } = await sharp(input).stats(); + * const { r, g, b } = dominant; + * + * @example + * const image = sharp(input); + * // store intermediate result + * const part = await image.extract(region).toBuffer(); + * // create new instance to obtain statistics of extracted region + * const stats = await sharp(part).stats(); + * + * @param {Function} [callback] - called with the arguments `(err, stats)` + * @returns {Promise} + */ +function stats (callback) { + const stack = Error(); + if (is.fn(callback)) { + if (this._isStreamInput()) { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.stats(this.options, (err, stats) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, stats); + } + }); + }); + } else { + sharp.stats(this.options, (err, stats) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, stats); + } + }); + } + return this; + } else { + if (this._isStreamInput()) { + return new Promise((resolve, reject) => { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.stats(this.options, (err, stats) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(stats); + } + }); + }); + }); + } else { + return new Promise((resolve, reject) => { + sharp.stats(this.options, (err, stats) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(stats); + } + }); + }); + } + } +} + +/** + * Decorate the Sharp prototype with input-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Private + _inputOptionsFromObject, + _createInputDescriptor, + _write, + _flattenBufferIn, + _isStreamInput, + _whenStreamInFinished, + // Public + metadata, + stats + }); + // Class attributes + Sharp.align = align; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/input.mjs b/apps/api/.output/node_modules/sharp/dist/input.mjs new file mode 100644 index 0000000..0cab99d --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/input.mjs @@ -0,0 +1,819 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import is from './is.mjs'; +import sharp from './sharp.mjs'; + +/** + * Justification alignment + * @member + * @private + */ +const align = { + left: 'low', + top: 'low', + low: 'low', + center: 'centre', + centre: 'centre', + right: 'high', + bottom: 'high', + high: 'high' +}; + +const inputStreamParameters = [ + // Limits and error handling + 'failOn', 'limitInputPixels', 'limitInputChannels', 'unlimited', + // Format-generic + 'animated', 'autoOrient', 'density', 'ignoreIcc', 'page', 'pages', 'sequentialRead', + // Format-specific + 'jp2', 'openSlide', 'pdf', 'raw', 'svg', 'tiff', + // Deprecated + 'openSlideLevel', 'pdfBackground', 'tiffSubifd' +]; + +/** + * Extract input options, if any, from an object. + * @private + */ +function _inputOptionsFromObject (obj) { + const params = inputStreamParameters + .filter(p => is.defined(obj[p])) + .map(p => ([p, obj[p]])); + return params.length + ? Object.fromEntries(params) + : undefined; +} + +/** + * Create Object containing input and input-related options. + * @private + */ +function _createInputDescriptor (input, inputOptions, containerOptions) { + const inputDescriptor = { + autoOrient: false, + failOn: 'warning', + limitInputPixels: 0x3FFF ** 2, + limitInputChannels: 5, + ignoreIcc: false, + unlimited: false, + sequentialRead: true + }; + if (is.string(input)) { + // filesystem + inputDescriptor.file = input; + } else if (is.buffer(input)) { + // Buffer + if (input.length === 0) { + throw Error('Input Buffer is empty'); + } + inputDescriptor.buffer = input; + } else if (is.arrayBuffer(input)) { + if (input.byteLength === 0) { + throw Error('Input bit Array is empty'); + } + inputDescriptor.buffer = Buffer.from(input, 0, input.byteLength); + } else if (is.typedArray(input)) { + if (input.length === 0) { + throw Error('Input Bit Array is empty'); + } + inputDescriptor.buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength); + } else if (is.plainObject(input) && !is.defined(inputOptions)) { + // Plain Object descriptor, e.g. create + inputOptions = input; + if (_inputOptionsFromObject(inputOptions)) { + // Stream with options + inputDescriptor.buffer = []; + } + } else if (!is.defined(input) && !is.defined(inputOptions) && is.object(containerOptions) && containerOptions.allowStream) { + // Stream without options + inputDescriptor.buffer = []; + } else if (Array.isArray(input)) { + if (input.length > 1) { + // Join images together + if (!this.options.joining) { + this.options.joining = true; + this.options.join = input.map(i => this._createInputDescriptor(i)); + } else { + throw new Error('Recursive join is unsupported'); + } + } else { + throw new Error('Expected at least two images to join'); + } + } else { + throw new Error(`Unsupported input '${input}' of type ${typeof input}${ + is.defined(inputOptions) ? ` when also providing options of type ${typeof inputOptions}` : '' + }`); + } + if (is.object(inputOptions)) { + // failOn + if (is.defined(inputOptions.failOn)) { + if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ['none', 'truncated', 'error', 'warning'])) { + inputDescriptor.failOn = inputOptions.failOn; + } else { + throw is.invalidParameterError('failOn', 'one of: none, truncated, error, warning', inputOptions.failOn); + } + } + // autoOrient + if (is.defined(inputOptions.autoOrient)) { + if (is.bool(inputOptions.autoOrient)) { + inputDescriptor.autoOrient = inputOptions.autoOrient; + } else { + throw is.invalidParameterError('autoOrient', 'boolean', inputOptions.autoOrient); + } + } + // Density + if (is.defined(inputOptions.density)) { + if (is.number(inputOptions.density) && is.inRange(inputOptions.density, 1, 100000)) { + inputDescriptor.density = inputOptions.density; + } else { + throw is.invalidParameterError('density', 'number between 1 and 100000', inputOptions.density); + } + } + // Ignore embeddded ICC profile + if (is.defined(inputOptions.ignoreIcc)) { + if (is.bool(inputOptions.ignoreIcc)) { + inputDescriptor.ignoreIcc = inputOptions.ignoreIcc; + } else { + throw is.invalidParameterError('ignoreIcc', 'boolean', inputOptions.ignoreIcc); + } + } + // limitInputPixels + if (is.defined(inputOptions.limitInputPixels)) { + if (is.bool(inputOptions.limitInputPixels)) { + inputDescriptor.limitInputPixels = inputOptions.limitInputPixels + ? 0x3FFF ** 2 + : 0; + } else if (is.integer(inputOptions.limitInputPixels) && is.inRange(inputOptions.limitInputPixels, 0, Number.MAX_SAFE_INTEGER)) { + inputDescriptor.limitInputPixels = inputOptions.limitInputPixels; + } else { + throw is.invalidParameterError('limitInputPixels', 'positive integer', inputOptions.limitInputPixels); + } + } + // limitInputChannels + if (is.defined(inputOptions.limitInputChannels)) { + if (is.bool(inputOptions.limitInputChannels)) { + inputDescriptor.limitInputChannels = inputOptions.limitInputChannels ? 5 : 0; + } else if (is.integer(inputOptions.limitInputChannels) && is.inRange(inputOptions.limitInputChannels, 0, Number.MAX_SAFE_INTEGER)) { + inputDescriptor.limitInputChannels = inputOptions.limitInputChannels; + } else { + throw is.invalidParameterError('limitInputChannels', 'positive integer', inputOptions.limitInputChannels); + } + } + // unlimited + if (is.defined(inputOptions.unlimited)) { + if (is.bool(inputOptions.unlimited)) { + inputDescriptor.unlimited = inputOptions.unlimited; + } else { + throw is.invalidParameterError('unlimited', 'boolean', inputOptions.unlimited); + } + } + // sequentialRead + if (is.defined(inputOptions.sequentialRead)) { + if (is.bool(inputOptions.sequentialRead)) { + inputDescriptor.sequentialRead = inputOptions.sequentialRead; + } else { + throw is.invalidParameterError('sequentialRead', 'boolean', inputOptions.sequentialRead); + } + } + // Raw pixel input + if (is.defined(inputOptions.raw)) { + if ( + is.object(inputOptions.raw) && + is.integer(inputOptions.raw.width) && is.inRange(inputOptions.raw.width, 1, 100000000) && + is.integer(inputOptions.raw.height) && is.inRange(inputOptions.raw.height, 1, 100000000) && + is.integer(inputOptions.raw.channels) && is.inRange(inputOptions.raw.channels, 1, 4) + ) { + inputDescriptor.rawWidth = inputOptions.raw.width; + inputDescriptor.rawHeight = inputOptions.raw.height; + inputDescriptor.rawChannels = inputOptions.raw.channels; + switch (input.constructor) { + case Uint8Array: + case Uint8ClampedArray: + inputDescriptor.rawDepth = 'uchar'; + break; + case Int8Array: + inputDescriptor.rawDepth = 'char'; + break; + case Uint16Array: + inputDescriptor.rawDepth = 'ushort'; + break; + case Int16Array: + inputDescriptor.rawDepth = 'short'; + break; + case Uint32Array: + inputDescriptor.rawDepth = 'uint'; + break; + case Int32Array: + inputDescriptor.rawDepth = 'int'; + break; + case Float32Array: + inputDescriptor.rawDepth = 'float'; + break; + case Float64Array: + inputDescriptor.rawDepth = 'double'; + break; + default: + inputDescriptor.rawDepth = 'uchar'; + break; + } + } else { + throw new Error('Expected width, height and channels for raw pixel input'); + } + inputDescriptor.rawPremultiplied = false; + if (is.defined(inputOptions.raw.premultiplied)) { + if (is.bool(inputOptions.raw.premultiplied)) { + inputDescriptor.rawPremultiplied = inputOptions.raw.premultiplied; + } else { + throw is.invalidParameterError('raw.premultiplied', 'boolean', inputOptions.raw.premultiplied); + } + } + inputDescriptor.rawPageHeight = 0; + if (is.defined(inputOptions.raw.pageHeight)) { + if (is.integer(inputOptions.raw.pageHeight) && inputOptions.raw.pageHeight > 0 && inputOptions.raw.pageHeight <= inputOptions.raw.height) { + if (inputOptions.raw.height % inputOptions.raw.pageHeight !== 0) { + throw new Error(`Expected raw.height ${inputOptions.raw.height} to be a multiple of raw.pageHeight ${inputOptions.raw.pageHeight}`); + } + inputDescriptor.rawPageHeight = inputOptions.raw.pageHeight; + } else { + throw is.invalidParameterError('raw.pageHeight', 'positive integer', inputOptions.raw.pageHeight); + } + } + } + // Multi-page input (GIF, TIFF, PDF) + if (is.defined(inputOptions.animated)) { + if (is.bool(inputOptions.animated)) { + inputDescriptor.pages = inputOptions.animated ? -1 : 1; + } else { + throw is.invalidParameterError('animated', 'boolean', inputOptions.animated); + } + } + if (is.defined(inputOptions.pages)) { + if (is.integer(inputOptions.pages) && is.inRange(inputOptions.pages, -1, 100000)) { + inputDescriptor.pages = inputOptions.pages; + } else { + throw is.invalidParameterError('pages', 'integer between -1 and 100000', inputOptions.pages); + } + } + if (is.defined(inputOptions.page)) { + if (is.integer(inputOptions.page) && is.inRange(inputOptions.page, 0, 100000)) { + inputDescriptor.page = inputOptions.page; + } else { + throw is.invalidParameterError('page', 'integer between 0 and 100000', inputOptions.page); + } + } + // OpenSlide specific options + if (is.object(inputOptions.openSlide) && is.defined(inputOptions.openSlide.level)) { + if (is.integer(inputOptions.openSlide.level) && is.inRange(inputOptions.openSlide.level, 0, 256)) { + inputDescriptor.openSlideLevel = inputOptions.openSlide.level; + } else { + throw is.invalidParameterError('openSlide.level', 'integer between 0 and 256', inputOptions.openSlide.level); + } + } else if (is.defined(inputOptions.level)) { + // Deprecated + if (is.integer(inputOptions.level) && is.inRange(inputOptions.level, 0, 256)) { + inputDescriptor.openSlideLevel = inputOptions.level; + } else { + throw is.invalidParameterError('level', 'integer between 0 and 256', inputOptions.level); + } + } + // TIFF specific options + if (is.object(inputOptions.tiff) && is.defined(inputOptions.tiff.subifd)) { + if (is.integer(inputOptions.tiff.subifd) && is.inRange(inputOptions.tiff.subifd, -1, 100000)) { + inputDescriptor.tiffSubifd = inputOptions.tiff.subifd; + } else { + throw is.invalidParameterError('tiff.subifd', 'integer between -1 and 100000', inputOptions.tiff.subifd); + } + } else if (is.defined(inputOptions.subifd)) { + // Deprecated + if (is.integer(inputOptions.subifd) && is.inRange(inputOptions.subifd, -1, 100000)) { + inputDescriptor.tiffSubifd = inputOptions.subifd; + } else { + throw is.invalidParameterError('subifd', 'integer between -1 and 100000', inputOptions.subifd); + } + } + // SVG specific options + if (is.object(inputOptions.svg)) { + if (is.defined(inputOptions.svg.stylesheet)) { + if (is.string(inputOptions.svg.stylesheet)) { + inputDescriptor.svgStylesheet = inputOptions.svg.stylesheet; + } else { + throw is.invalidParameterError('svg.stylesheet', 'string', inputOptions.svg.stylesheet); + } + } + if (is.defined(inputOptions.svg.highBitdepth)) { + if (is.bool(inputOptions.svg.highBitdepth)) { + inputDescriptor.svgHighBitdepth = inputOptions.svg.highBitdepth; + } else { + throw is.invalidParameterError('svg.highBitdepth', 'boolean', inputOptions.svg.highBitdepth); + } + } + } + // PDF specific options + if (is.object(inputOptions.pdf) && is.defined(inputOptions.pdf.background)) { + inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdf.background); + } else if (is.defined(inputOptions.pdfBackground)) { + // Deprecated + inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdfBackground); + } + // JPEG 2000 specific options + if (is.object(inputOptions.jp2) && is.defined(inputOptions.jp2.oneshot)) { + if (is.bool(inputOptions.jp2.oneshot)) { + inputDescriptor.jp2Oneshot = inputOptions.jp2.oneshot; + } else { + throw is.invalidParameterError('jp2.oneshot', 'boolean', inputOptions.jp2.oneshot); + } + } + // Create new image + if (is.defined(inputOptions.create)) { + if ( + is.object(inputOptions.create) && + is.integer(inputOptions.create.width) && is.inRange(inputOptions.create.width, 1, 100000000) && + is.integer(inputOptions.create.height) && is.inRange(inputOptions.create.height, 1, 100000000) && + is.integer(inputOptions.create.channels) + ) { + inputDescriptor.createWidth = inputOptions.create.width; + inputDescriptor.createHeight = inputOptions.create.height; + inputDescriptor.createChannels = inputOptions.create.channels; + inputDescriptor.createPageHeight = 0; + if (is.defined(inputOptions.create.pageHeight)) { + if (is.integer(inputOptions.create.pageHeight) && inputOptions.create.pageHeight > 0 && inputOptions.create.pageHeight <= inputOptions.create.height) { + if (inputOptions.create.height % inputOptions.create.pageHeight !== 0) { + throw new Error(`Expected create.height ${inputOptions.create.height} to be a multiple of create.pageHeight ${inputOptions.create.pageHeight}`); + } + inputDescriptor.createPageHeight = inputOptions.create.pageHeight; + } else { + throw is.invalidParameterError('create.pageHeight', 'positive integer', inputOptions.create.pageHeight); + } + } + // Noise + if (is.defined(inputOptions.create.noise)) { + if (!is.object(inputOptions.create.noise)) { + throw new Error('Expected noise to be an object'); + } + if (inputOptions.create.noise.type !== 'gaussian') { + throw new Error('Only gaussian noise is supported at the moment'); + } + inputDescriptor.createNoiseType = inputOptions.create.noise.type; + if (!is.inRange(inputOptions.create.channels, 1, 4)) { + throw is.invalidParameterError('create.channels', 'number between 1 and 4', inputOptions.create.channels); + } + inputDescriptor.createNoiseMean = 128; + if (is.defined(inputOptions.create.noise.mean)) { + if (is.number(inputOptions.create.noise.mean) && is.inRange(inputOptions.create.noise.mean, 0, 10000)) { + inputDescriptor.createNoiseMean = inputOptions.create.noise.mean; + } else { + throw is.invalidParameterError('create.noise.mean', 'number between 0 and 10000', inputOptions.create.noise.mean); + } + } + inputDescriptor.createNoiseSigma = 30; + if (is.defined(inputOptions.create.noise.sigma)) { + if (is.number(inputOptions.create.noise.sigma) && is.inRange(inputOptions.create.noise.sigma, 0, 10000)) { + inputDescriptor.createNoiseSigma = inputOptions.create.noise.sigma; + } else { + throw is.invalidParameterError('create.noise.sigma', 'number between 0 and 10000', inputOptions.create.noise.sigma); + } + } + } else if (is.defined(inputOptions.create.background)) { + if (!is.inRange(inputOptions.create.channels, 3, 4)) { + throw is.invalidParameterError('create.channels', 'number between 3 and 4', inputOptions.create.channels); + } + inputDescriptor.createBackground = this._getBackgroundColourOption(inputOptions.create.background); + } else { + throw new Error('Expected valid noise or background to create a new input image'); + } + delete inputDescriptor.buffer; + } else { + throw new Error('Expected valid width, height and channels to create a new input image'); + } + } + // Create a new image with text + if (is.defined(inputOptions.text)) { + if (is.object(inputOptions.text) && is.string(inputOptions.text.text)) { + inputDescriptor.textValue = inputOptions.text.text; + if (is.defined(inputOptions.text.height) && is.defined(inputOptions.text.dpi)) { + throw new Error('Expected only one of dpi or height'); + } + if (is.defined(inputOptions.text.font)) { + if (is.string(inputOptions.text.font)) { + inputDescriptor.textFont = inputOptions.text.font; + } else { + throw is.invalidParameterError('text.font', 'string', inputOptions.text.font); + } + } + if (is.defined(inputOptions.text.fontfile)) { + if (is.string(inputOptions.text.fontfile)) { + inputDescriptor.textFontfile = inputOptions.text.fontfile; + } else { + throw is.invalidParameterError('text.fontfile', 'string', inputOptions.text.fontfile); + } + } + if (is.defined(inputOptions.text.width)) { + if (is.integer(inputOptions.text.width) && is.inRange(inputOptions.text.width, 1, 1000000)) { + inputDescriptor.textWidth = inputOptions.text.width; + } else { + throw is.invalidParameterError('text.width', 'integer between 1 and 1000000', inputOptions.text.width); + } + } + if (is.defined(inputOptions.text.height)) { + if (is.integer(inputOptions.text.height) && is.inRange(inputOptions.text.height, 1, 1000000)) { + inputDescriptor.textHeight = inputOptions.text.height; + } else { + throw is.invalidParameterError('text.height', 'integer between 1 and 1000000', inputOptions.text.height); + } + } + if (is.defined(inputOptions.text.align)) { + if (is.string(inputOptions.text.align) && is.string(this.constructor.align[inputOptions.text.align])) { + inputDescriptor.textAlign = this.constructor.align[inputOptions.text.align]; + } else { + throw is.invalidParameterError('text.align', 'valid alignment', inputOptions.text.align); + } + } + if (is.defined(inputOptions.text.justify)) { + if (is.bool(inputOptions.text.justify)) { + inputDescriptor.textJustify = inputOptions.text.justify; + } else { + throw is.invalidParameterError('text.justify', 'boolean', inputOptions.text.justify); + } + } + if (is.defined(inputOptions.text.dpi)) { + if (is.integer(inputOptions.text.dpi) && is.inRange(inputOptions.text.dpi, 1, 1000000)) { + inputDescriptor.textDpi = inputOptions.text.dpi; + } else { + throw is.invalidParameterError('text.dpi', 'integer between 1 and 1000000', inputOptions.text.dpi); + } + } + if (is.defined(inputOptions.text.rgba)) { + if (is.bool(inputOptions.text.rgba)) { + inputDescriptor.textRgba = inputOptions.text.rgba; + } else { + throw is.invalidParameterError('text.rgba', 'bool', inputOptions.text.rgba); + } + } + if (is.defined(inputOptions.text.spacing)) { + if (is.integer(inputOptions.text.spacing) && is.inRange(inputOptions.text.spacing, -1000000, 1000000)) { + inputDescriptor.textSpacing = inputOptions.text.spacing; + } else { + throw is.invalidParameterError('text.spacing', 'integer between -1000000 and 1000000', inputOptions.text.spacing); + } + } + if (is.defined(inputOptions.text.wrap)) { + if (is.string(inputOptions.text.wrap) && is.inArray(inputOptions.text.wrap, ['word', 'char', 'word-char', 'none'])) { + inputDescriptor.textWrap = inputOptions.text.wrap; + } else { + throw is.invalidParameterError('text.wrap', 'one of: word, char, word-char, none', inputOptions.text.wrap); + } + } + delete inputDescriptor.buffer; + } else { + throw new Error('Expected a valid string to create an image with text.'); + } + } + // Join images together + if (is.defined(inputOptions.join)) { + if (is.defined(this.options.join)) { + if (is.defined(inputOptions.join.animated)) { + if (is.bool(inputOptions.join.animated)) { + inputDescriptor.joinAnimated = inputOptions.join.animated; + } else { + throw is.invalidParameterError('join.animated', 'boolean', inputOptions.join.animated); + } + } + if (is.defined(inputOptions.join.across)) { + if (is.integer(inputOptions.join.across) && is.inRange(inputOptions.join.across, 1, 1000000)) { + inputDescriptor.joinAcross = inputOptions.join.across; + } else { + throw is.invalidParameterError('join.across', 'integer between 1 and 100000', inputOptions.join.across); + } + } + if (is.defined(inputOptions.join.shim)) { + if (is.integer(inputOptions.join.shim) && is.inRange(inputOptions.join.shim, 0, 1000000)) { + inputDescriptor.joinShim = inputOptions.join.shim; + } else { + throw is.invalidParameterError('join.shim', 'integer between 0 and 100000', inputOptions.join.shim); + } + } + if (is.defined(inputOptions.join.background)) { + inputDescriptor.joinBackground = this._getBackgroundColourOption(inputOptions.join.background); + } + if (is.defined(inputOptions.join.halign)) { + if (is.string(inputOptions.join.halign) && is.string(this.constructor.align[inputOptions.join.halign])) { + inputDescriptor.joinHalign = this.constructor.align[inputOptions.join.halign]; + } else { + throw is.invalidParameterError('join.halign', 'valid alignment', inputOptions.join.halign); + } + } + if (is.defined(inputOptions.join.valign)) { + if (is.string(inputOptions.join.valign) && is.string(this.constructor.align[inputOptions.join.valign])) { + inputDescriptor.joinValign = this.constructor.align[inputOptions.join.valign]; + } else { + throw is.invalidParameterError('join.valign', 'valid alignment', inputOptions.join.valign); + } + } + } else { + throw new Error('Expected input to be an array of images to join'); + } + } + } else if (is.defined(inputOptions)) { + throw new Error(`Invalid input options ${inputOptions}`); + } + return inputDescriptor; +} + +/** + * Handle incoming Buffer chunk on Writable Stream. + * @private + * @param {Buffer} chunk + * @param {string} encoding - unused + * @param {Function} callback + */ +function _write (chunk, _encoding, callback) { + if (Array.isArray(this.options.input.buffer)) { + if (is.buffer(chunk)) { + this.options.input.buffer.push(chunk); + callback(); + } else { + callback(new Error('Non-Buffer data on Writable Stream')); + } + } else { + callback(new Error('Unexpected data on Writable Stream')); + } +} + +/** + * Flattens the array of chunks accumulated in input.buffer. + * @private + */ +function _flattenBufferIn () { + if (this._isStreamInput()) { + this.options.input.buffer = Buffer.concat(this.options.input.buffer); + } +} + +/** + * Are we expecting Stream-based input? + * @private + * @returns {boolean} + */ +function _isStreamInput () { + return Array.isArray(this.options.input.buffer); +} + +/** + * Call fn when the Writable side of Stream-based input has finished, + * or immediately when it already has, as 'finish' is emitted only once. + * @private + * @param {Function} fn + */ +function _whenStreamInFinished (fn) { + if (this.writableFinished) { + fn(); + } else { + this.once('finish', fn); + } +} + +/** + * Fast access to (uncached) image metadata without decoding any compressed pixel data. + * + * This is read from the header of the input image. + * It does not take into consideration any operations to be applied to the output image, + * such as resize or rotate. + * + * Dimensions in the response will respect the `page` and `pages` properties of the + * {@link /api-constructor/ constructor parameters}. + * + * A `Promise` is returned when `callback` is not provided. + * + * - `format`: Name of decoder used to parse image e.g. `jpeg`, `png`, `webp`, `gif`, `svg`, `heif`, `tiff` + * - `mediaType`: Media Type (MIME Type) e.g. `image/jpeg`, `image/png`, `image/svg+xml`, `image/avif` + * - `size`: Total size of image in bytes, for Stream and Buffer input only + * - `width`: Number of pixels wide (EXIF orientation is not taken into consideration, see example below) + * - `height`: Number of pixels high (EXIF orientation is not taken into consideration, see example below) + * - `space`: Name of colour space interpretation e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * - `channels`: Number of bands e.g. `3` for sRGB, `4` for CMYK + * - `depth`: Name of pixel depth format e.g. `uchar`, `char`, `ushort`, `float` [...](https://www.libvips.org/API/current/enum.BandFormat.html) + * - `density`: Number of pixels per inch (DPI), if present + * - `chromaSubsampling`: String containing JPEG chroma subsampling, `4:2:0` or `4:4:4` for RGB, `4:2:0:4` or `4:4:4:4` for CMYK + * - `isProgressive`: Boolean indicating whether the image is interlaced using a progressive scan + * - `isPalette`: Boolean indicating whether the image is palette-based (GIF, PNG). + * - `bitsPerSample`: Number of bits per sample for each channel (GIF, PNG, HEIF). + * - `pages`: Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP + * - `pageHeight`: Number of pixels high each page in a multi-page image will be. + * - `loop`: Number of times to loop an animated image, zero refers to a continuous loop. + * - `delay`: Delay in ms between each page in an animated image, provided as an array of integers. + * - `pagePrimary`: Number of the primary page in a HEIF image + * - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide + * - `subifds`: Number of Sub Image File Directories in an OME-TIFF image + * - `background`: Default background colour, if present, for PNG (bKGD) and GIF images + * - `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC) + * - `resolutionUnit`: The unit of resolution (density), either `inch` or `cm`, if present + * - `hasProfile`: Boolean indicating the presence of an embedded ICC profile + * - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel + * - `orientation`: Number value of the EXIF Orientation header, if present + * - `exif`: Buffer containing raw EXIF data, if present + * - `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present + * - `iptc`: Buffer containing raw IPTC data, if present + * - `xmp`: Buffer containing raw XMP data, if present + * - `xmpAsString`: String containing XMP data, if valid UTF-8. + * - `tifftagPhotoshop`: Buffer containing raw TIFFTAG_PHOTOSHOP data, if present + * - `formatMagick`: String containing format for images loaded via *magick + * - `comments`: Array of keyword/text pairs representing PNG text blocks, if present. + * - `gainMap.image`: HDR gain map, if present, as compressed JPEG image. + * + * @example + * const metadata = await sharp(input).metadata(); + * + * @example + * const image = sharp(inputJpg); + * image + * .metadata() + * .then(function(metadata) { + * return image + * .resize(Math.round(metadata.width / 2)) + * .webp() + * .toBuffer(); + * }) + * .then(function(data) { + * // data contains a WebP image half the width and height of the original JPEG + * }); + * + * @example + * // Get dimensions taking EXIF Orientation into account. + * const { autoOrient } = await sharp(input).metadata(); + * const { width, height } = autoOrient; + * + * @param {Function} [callback] - called with the arguments `(err, metadata)` + * @returns {Promise|Sharp} + */ +function metadata (callback) { + const stack = Error(); + if (is.fn(callback)) { + if (this._isStreamInput()) { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.metadata(this.options, (err, metadata) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, metadata); + } + }); + }); + } else { + sharp.metadata(this.options, (err, metadata) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, metadata); + } + }); + } + return this; + } else { + if (this._isStreamInput()) { + return new Promise((resolve, reject) => { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.metadata(this.options, (err, metadata) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(metadata); + } + }); + }); + }); + } else { + return new Promise((resolve, reject) => { + sharp.metadata(this.options, (err, metadata) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(metadata); + } + }); + }); + } + } +} + +/** + * Access to pixel-derived image statistics for every channel in the image. + * A `Promise` is returned when `callback` is not provided. + * + * - `channels`: Array of channel statistics for each channel in the image. Each channel statistic contains + * - `min` (minimum value in the channel) + * - `max` (maximum value in the channel) + * - `sum` (sum of all values in a channel) + * - `squaresSum` (sum of squared values in a channel) + * - `mean` (mean of the values in a channel) + * - `stdev` (standard deviation for the values in a channel) + * - `minX` (x-coordinate of one of the pixel where the minimum lies) + * - `minY` (y-coordinate of one of the pixel where the minimum lies) + * - `maxX` (x-coordinate of one of the pixel where the maximum lies) + * - `maxY` (y-coordinate of one of the pixel where the maximum lies) + * - `isOpaque`: Is the image fully opaque? Will be `true` if the image has no alpha channel or if every pixel is fully opaque. + * - `entropy`: Histogram-based estimation of greyscale entropy, discarding alpha channel if any. + * - `sharpness`: Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any. + * - `dominant`: Object containing most dominant sRGB colour based on a 4096-bin 3D histogram. + * + * **Note**: Statistics are derived from the original input image. Any operations performed on the image must first be + * written to a buffer in order to run `stats` on the result (see third example). + * + * @example + * const image = sharp(inputJpg); + * image + * .stats() + * .then(function(stats) { + * // stats contains the channel-wise statistics array and the isOpaque value + * }); + * + * @example + * const { entropy, sharpness, dominant } = await sharp(input).stats(); + * const { r, g, b } = dominant; + * + * @example + * const image = sharp(input); + * // store intermediate result + * const part = await image.extract(region).toBuffer(); + * // create new instance to obtain statistics of extracted region + * const stats = await sharp(part).stats(); + * + * @param {Function} [callback] - called with the arguments `(err, stats)` + * @returns {Promise} + */ +function stats (callback) { + const stack = Error(); + if (is.fn(callback)) { + if (this._isStreamInput()) { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.stats(this.options, (err, stats) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, stats); + } + }); + }); + } else { + sharp.stats(this.options, (err, stats) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, stats); + } + }); + } + return this; + } else { + if (this._isStreamInput()) { + return new Promise((resolve, reject) => { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.stats(this.options, (err, stats) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(stats); + } + }); + }); + }); + } else { + return new Promise((resolve, reject) => { + sharp.stats(this.options, (err, stats) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(stats); + } + }); + }); + } + } +} + +/** + * Decorate the Sharp prototype with input-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Object.assign(Sharp.prototype, { + // Private + _inputOptionsFromObject, + _createInputDescriptor, + _write, + _flattenBufferIn, + _isStreamInput, + _whenStreamInFinished, + // Public + metadata, + stats + }); + // Class attributes + Sharp.align = align; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/is.cjs b/apps/api/.output/node_modules/sharp/dist/is.cjs new file mode 100644 index 0000000..fc36f3a --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/is.cjs @@ -0,0 +1,149 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +/** + * Is this value defined and not null? + * @private + */ +const defined = (val) => typeof val !== 'undefined' && val !== null; + +/** + * Is this value an object? + * @private + */ +const object = (val) => typeof val === 'object'; + +/** + * Is this value a plain object? + * @private + */ +const plainObject = (val) => Object.prototype.toString.call(val) === '[object Object]'; + +/** + * Is this value a function? + * @private + */ +const fn = (val) => typeof val === 'function'; + +/** + * Is this value a boolean? + * @private + */ +const bool = (val) => typeof val === 'boolean'; + +/** + * Is this value a Buffer object? + * @private + */ +const buffer = (val) => val instanceof Buffer; + +/** + * Is this value a typed array object?. E.g. Uint8Array or Uint8ClampedArray? + * @private + */ +const typedArray = (val) => { + if (defined(val)) { + switch (val.constructor) { + case Uint8Array: + case Uint8ClampedArray: + case Int8Array: + case Uint16Array: + case Int16Array: + case Uint32Array: + case Int32Array: + case Float32Array: + case Float64Array: + return true; + } + } + + return false; +}; + +/** + * Is this value an ArrayBuffer object? + * @private + */ +const arrayBuffer = (val) => val instanceof ArrayBuffer; + +/** + * Is this value a non-empty string? + * @private + */ +const string = (val) => typeof val === 'string' && val.length > 0; + +/** + * Is this value a real number? + * @private + */ +const number = (val) => typeof val === 'number' && Number.isFinite(val); + +/** + * Is this value an integer? + * @private + */ +const integer = (val) => Number.isInteger(val); + +/** + * Is this value within an inclusive given range? + * @private + */ +const inRange = (val, min, max) => val >= min && val <= max; + +/** + * Is this value within the elements of an array? + * @private + */ +const inArray = (val, list) => list.includes(val); + +/** + * Create an Error with a message relating to an invalid parameter. + * + * @param {string} name - parameter name. + * @param {string} expected - description of the type/value/range expected. + * @param {*} actual - the value received. + * @returns {Error} Containing the formatted message. + * @private + */ +const invalidParameterError = (name, expected, actual) => { + let actualString; + try { + actualString = String(actual).slice(0, 100); + } catch {} + return new Error( + `Expected ${expected} for ${name} but received ${actualString} of type ${typeof actual}` + ); +}; + +/** + * Ensures an Error from C++ contains a JS stack. + * + * @param {Error} native - Error with message from C++. + * @param {Error} context - Error with stack from JS. + * @returns {Error} Error with message and stack. + * @private + */ +const nativeError = (native, context) => { + context.message = native.message; + return context; +}; + +module.exports = { + defined, + object, + plainObject, + fn, + bool, + buffer, + typedArray, + arrayBuffer, + string, + number, + integer, + inRange, + inArray, + invalidParameterError, + nativeError +}; diff --git a/apps/api/.output/node_modules/sharp/dist/is.mjs b/apps/api/.output/node_modules/sharp/dist/is.mjs new file mode 100644 index 0000000..f4911eb --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/is.mjs @@ -0,0 +1,149 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +/** + * Is this value defined and not null? + * @private + */ +const defined = (val) => typeof val !== 'undefined' && val !== null; + +/** + * Is this value an object? + * @private + */ +const object = (val) => typeof val === 'object'; + +/** + * Is this value a plain object? + * @private + */ +const plainObject = (val) => Object.prototype.toString.call(val) === '[object Object]'; + +/** + * Is this value a function? + * @private + */ +const fn = (val) => typeof val === 'function'; + +/** + * Is this value a boolean? + * @private + */ +const bool = (val) => typeof val === 'boolean'; + +/** + * Is this value a Buffer object? + * @private + */ +const buffer = (val) => val instanceof Buffer; + +/** + * Is this value a typed array object?. E.g. Uint8Array or Uint8ClampedArray? + * @private + */ +const typedArray = (val) => { + if (defined(val)) { + switch (val.constructor) { + case Uint8Array: + case Uint8ClampedArray: + case Int8Array: + case Uint16Array: + case Int16Array: + case Uint32Array: + case Int32Array: + case Float32Array: + case Float64Array: + return true; + } + } + + return false; +}; + +/** + * Is this value an ArrayBuffer object? + * @private + */ +const arrayBuffer = (val) => val instanceof ArrayBuffer; + +/** + * Is this value a non-empty string? + * @private + */ +const string = (val) => typeof val === 'string' && val.length > 0; + +/** + * Is this value a real number? + * @private + */ +const number = (val) => typeof val === 'number' && Number.isFinite(val); + +/** + * Is this value an integer? + * @private + */ +const integer = (val) => Number.isInteger(val); + +/** + * Is this value within an inclusive given range? + * @private + */ +const inRange = (val, min, max) => val >= min && val <= max; + +/** + * Is this value within the elements of an array? + * @private + */ +const inArray = (val, list) => list.includes(val); + +/** + * Create an Error with a message relating to an invalid parameter. + * + * @param {string} name - parameter name. + * @param {string} expected - description of the type/value/range expected. + * @param {*} actual - the value received. + * @returns {Error} Containing the formatted message. + * @private + */ +const invalidParameterError = (name, expected, actual) => { + let actualString; + try { + actualString = String(actual).slice(0, 100); + } catch {} + return new Error( + `Expected ${expected} for ${name} but received ${actualString} of type ${typeof actual}` + ); +}; + +/** + * Ensures an Error from C++ contains a JS stack. + * + * @param {Error} native - Error with message from C++. + * @param {Error} context - Error with stack from JS. + * @returns {Error} Error with message and stack. + * @private + */ +const nativeError = (native, context) => { + context.message = native.message; + return context; +}; + +export default { + defined, + object, + plainObject, + fn, + bool, + buffer, + typedArray, + arrayBuffer, + string, + number, + integer, + inRange, + inArray, + invalidParameterError, + nativeError +}; diff --git a/apps/api/.output/node_modules/sharp/dist/libvips.cjs b/apps/api/.output/node_modules/sharp/dist/libvips.cjs new file mode 100644 index 0000000..b59b48f --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/libvips.cjs @@ -0,0 +1,212 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const { spawnSync } = require('node:child_process'); +const { createHash } = require('node:crypto'); +const semver = require('semver'); +const detectLibc = require('detect-libc'); +const pkg = require('../package.json'); + +/* node:coverage ignore next */ +const minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || pkg.config.libvips; +const minimumLibvipsVersion = semver.coerce(minimumLibvipsVersionLabelled).version; + +const prebuiltPlatforms = [ + 'darwin-arm64', 'darwin-x64', + 'freebsd-arm64', 'freebsd-x64', + 'linux-arm', 'linux-arm64', 'linux-ppc64', 'linux-riscv64', 'linux-s390x', 'linux-wasm32', 'linux-x64', + 'linuxmusl-arm64', 'linuxmusl-x64', + 'win32-arm64', 'win32-ia32', 'win32-x64' +]; + +const spawnSyncOptions = { + encoding: 'utf8', + shell: true +}; + +const log = (item) => { + if (item instanceof Error) { + console.error(`sharp: Installation error: ${item.message}`); + } else { + console.log(`sharp: ${item}`); + } +}; + +/* node:coverage disable */ + +const runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : ''; + +const runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`; + +const buildPlatformArch = () => { + if (isEmscripten()) { + return 'wasm32'; + } + const { npm_config_arch, npm_config_platform, npm_config_libc } = process.env; + const libc = typeof npm_config_libc === 'string' ? npm_config_libc : runtimeLibc(); + return `${npm_config_platform || process.platform}${libc}-${npm_config_arch || process.arch}`; +}; + +const buildSharpLibvipsIncludeDir = () => { + try { + return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`); + } catch { + try { + return require('@img/sharp-libvips-dev/include'); + } catch {} + } + return ''; +}; + +const buildSharpLibvipsCPlusPlusDir = () => { + try { + return require('@img/sharp-libvips-dev/cplusplus'); + } catch {} + return ''; +}; + +const buildSharpLibvipsLibDir = () => { + try { + return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`); + } catch { + try { + return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`); + } catch {} + } + return ''; +}; + +const isUnsupportedNodeRuntime = () => { + if (process.release?.name === 'node' && process.versions) { + if (!semver.satisfies(process.versions.node, pkg.engines.node)) { + return { found: process.versions.node, expected: pkg.engines.node }; + } + } +}; + +const isEmscripten = () => { + const { CC } = process.env; + return Boolean(CC?.endsWith('/emcc')); +}; + +const isRosetta = () => { + if (process.platform === 'darwin' && process.arch === 'x64') { + const translated = spawnSync('sysctl sysctl.proc_translated', spawnSyncOptions).stdout; + return (translated || '').trim() === 'sysctl.proc_translated: 1'; + } + return false; +}; + +/* node:coverage enable */ + +const sha512 = (s) => createHash('sha512').update(s).digest('hex'); + +const yarnLocator = () => { + try { + const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`); + const npmVersion = semver.coerce(pkg.optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`], { + includePrerelease: true + }).version; + return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10); + } catch {} + return ''; +}; + +/* node:coverage disable */ + +const spawnRebuild = () => + spawnSync(`node-gyp rebuild --directory=src ${isEmscripten() ? '--nodedir=emscripten' : ''}`, { + ...spawnSyncOptions, + stdio: 'inherit' + }).status; + +const globalLibvipsVersion = () => { + if (process.platform !== 'win32') { + const globalLibvipsVersion = spawnSync('pkg-config --modversion vips-cpp', { + ...spawnSyncOptions, + env: { + ...process.env, + PKG_CONFIG_PATH: pkgConfigPath() + } + }).stdout; + return (globalLibvipsVersion || '').trim(); + } else { + return ''; + } +}; + +const getBrewPkgConfigPath = () => { + try { + const brewPrefix = (spawnSync('brew', ['--prefix'], { encoding: 'utf8' }).stdout || '').trim(); + if (brewPrefix) { + return `${brewPrefix}/lib/pkgconfig`; + } + } catch (_err) {} + return undefined; +}; + +const getPkgConfigPath = () => { + try { + const pkgConfigPath = (spawnSync('pkg-config', ['--variable', 'pc_path', 'pkg-config'], { encoding: 'utf8' }).stdout || '').trim(); + if (pkgConfigPath) { + return pkgConfigPath; + } + } catch (_err) {} + return undefined; +}; + +/* node:coverage enable */ + +const pkgConfigPath = () => { + if (process.platform !== 'win32') { + return [ + getBrewPkgConfigPath(), + getPkgConfigPath(), + process.env.PKG_CONFIG_PATH + ].filter(Boolean).join(':'); + } else { + return ''; + } +}; + +const skipSearch = (status, reason, logger) => { + if (logger) { + logger(`Detected ${reason}, skipping search for globally-installed libvips`); + } + return status; +}; + +const useGlobalLibvips = (logger) => { + if (Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS) === true) { + return skipSearch(false, 'SHARP_IGNORE_GLOBAL_LIBVIPS', logger); + } + if (Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS) === true) { + return skipSearch(true, 'SHARP_FORCE_GLOBAL_LIBVIPS', logger); + } + /* node:coverage ignore next 3 */ + if (isRosetta()) { + return skipSearch(false, 'Rosetta', logger); + } + const globalVipsVersion = globalLibvipsVersion(); + /* node:coverage ignore next */ + return !!globalVipsVersion && semver.gte(globalVipsVersion, minimumLibvipsVersion); +}; + +module.exports = { + minimumLibvipsVersion, + prebuiltPlatforms, + buildPlatformArch, + buildSharpLibvipsIncludeDir, + buildSharpLibvipsCPlusPlusDir, + buildSharpLibvipsLibDir, + isUnsupportedNodeRuntime, + runtimePlatformArch, + log, + yarnLocator, + spawnRebuild, + globalLibvipsVersion, + pkgConfigPath, + useGlobalLibvips +}; diff --git a/apps/api/.output/node_modules/sharp/dist/libvips.mjs b/apps/api/.output/node_modules/sharp/dist/libvips.mjs new file mode 100644 index 0000000..35608ac --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/libvips.mjs @@ -0,0 +1,212 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import { spawnSync } from 'node:child_process'; +import { createHash } from 'node:crypto'; +import semver from 'semver'; +import detectLibc from 'detect-libc'; +import pkg from '../package.json' with { type: 'json' }; + +/* node:coverage ignore next */ +const minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || pkg.config.libvips; +const minimumLibvipsVersion = semver.coerce(minimumLibvipsVersionLabelled).version; + +const prebuiltPlatforms = [ + 'darwin-arm64', 'darwin-x64', + 'freebsd-arm64', 'freebsd-x64', + 'linux-arm', 'linux-arm64', 'linux-ppc64', 'linux-riscv64', 'linux-s390x', 'linux-wasm32', 'linux-x64', + 'linuxmusl-arm64', 'linuxmusl-x64', + 'win32-arm64', 'win32-ia32', 'win32-x64' +]; + +const spawnSyncOptions = { + encoding: 'utf8', + shell: true +}; + +const log = (item) => { + if (item instanceof Error) { + console.error(`sharp: Installation error: ${item.message}`); + } else { + console.log(`sharp: ${item}`); + } +}; + +/* node:coverage disable */ + +const runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : ''; + +const runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`; + +const buildPlatformArch = () => { + if (isEmscripten()) { + return 'wasm32'; + } + const { npm_config_arch, npm_config_platform, npm_config_libc } = process.env; + const libc = typeof npm_config_libc === 'string' ? npm_config_libc : runtimeLibc(); + return `${npm_config_platform || process.platform}${libc}-${npm_config_arch || process.arch}`; +}; + +const buildSharpLibvipsIncludeDir = () => { + try { + return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`); + } catch { + try { + return require('@img/sharp-libvips-dev/include'); + } catch {} + } + return ''; +}; + +const buildSharpLibvipsCPlusPlusDir = () => { + try { + return require('@img/sharp-libvips-dev/cplusplus'); + } catch {} + return ''; +}; + +const buildSharpLibvipsLibDir = () => { + try { + return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`); + } catch { + try { + return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`); + } catch {} + } + return ''; +}; + +const isUnsupportedNodeRuntime = () => { + if (process.release?.name === 'node' && process.versions) { + if (!semver.satisfies(process.versions.node, pkg.engines.node)) { + return { found: process.versions.node, expected: pkg.engines.node }; + } + } +}; + +const isEmscripten = () => { + const { CC } = process.env; + return Boolean(CC?.endsWith('/emcc')); +}; + +const isRosetta = () => { + if (process.platform === 'darwin' && process.arch === 'x64') { + const translated = spawnSync('sysctl sysctl.proc_translated', spawnSyncOptions).stdout; + return (translated || '').trim() === 'sysctl.proc_translated: 1'; + } + return false; +}; + +/* node:coverage enable */ + +const sha512 = (s) => createHash('sha512').update(s).digest('hex'); + +const yarnLocator = () => { + try { + const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`); + const npmVersion = semver.coerce(pkg.optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`], { + includePrerelease: true + }).version; + return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10); + } catch {} + return ''; +}; + +/* node:coverage disable */ + +const spawnRebuild = () => + spawnSync(`node-gyp rebuild --directory=src ${isEmscripten() ? '--nodedir=emscripten' : ''}`, { + ...spawnSyncOptions, + stdio: 'inherit' + }).status; + +const globalLibvipsVersion = () => { + if (process.platform !== 'win32') { + const globalLibvipsVersion = spawnSync('pkg-config --modversion vips-cpp', { + ...spawnSyncOptions, + env: { + ...process.env, + PKG_CONFIG_PATH: pkgConfigPath() + } + }).stdout; + return (globalLibvipsVersion || '').trim(); + } else { + return ''; + } +}; + +const getBrewPkgConfigPath = () => { + try { + const brewPrefix = (spawnSync('brew', ['--prefix'], { encoding: 'utf8' }).stdout || '').trim(); + if (brewPrefix) { + return `${brewPrefix}/lib/pkgconfig`; + } + } catch (_err) {} + return undefined; +}; + +const getPkgConfigPath = () => { + try { + const pkgConfigPath = (spawnSync('pkg-config', ['--variable', 'pc_path', 'pkg-config'], { encoding: 'utf8' }).stdout || '').trim(); + if (pkgConfigPath) { + return pkgConfigPath; + } + } catch (_err) {} + return undefined; +}; + +/* node:coverage enable */ + +const pkgConfigPath = () => { + if (process.platform !== 'win32') { + return [ + getBrewPkgConfigPath(), + getPkgConfigPath(), + process.env.PKG_CONFIG_PATH + ].filter(Boolean).join(':'); + } else { + return ''; + } +}; + +const skipSearch = (status, reason, logger) => { + if (logger) { + logger(`Detected ${reason}, skipping search for globally-installed libvips`); + } + return status; +}; + +const useGlobalLibvips = (logger) => { + if (Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS) === true) { + return skipSearch(false, 'SHARP_IGNORE_GLOBAL_LIBVIPS', logger); + } + if (Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS) === true) { + return skipSearch(true, 'SHARP_FORCE_GLOBAL_LIBVIPS', logger); + } + /* node:coverage ignore next 3 */ + if (isRosetta()) { + return skipSearch(false, 'Rosetta', logger); + } + const globalVipsVersion = globalLibvipsVersion(); + /* node:coverage ignore next */ + return !!globalVipsVersion && semver.gte(globalVipsVersion, minimumLibvipsVersion); +}; + +export default { + minimumLibvipsVersion, + prebuiltPlatforms, + buildPlatformArch, + buildSharpLibvipsIncludeDir, + buildSharpLibvipsCPlusPlusDir, + buildSharpLibvipsLibDir, + isUnsupportedNodeRuntime, + runtimePlatformArch, + log, + yarnLocator, + spawnRebuild, + globalLibvipsVersion, + pkgConfigPath, + useGlobalLibvips +}; diff --git a/apps/api/.output/node_modules/sharp/dist/operation.cjs b/apps/api/.output/node_modules/sharp/dist/operation.cjs new file mode 100644 index 0000000..f541070 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/operation.cjs @@ -0,0 +1,1002 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is.cjs'); + +/** + * How accurate an operation should be. + * @member + * @private + */ +const vipsPrecision = { + integer: 'integer', + float: 'float', + approximate: 'approximate' +}; + +/** + * Rotate the output image. + * + * The provided angle is converted to a valid positive degree rotation. + * For example, `-450` will produce a 270 degree rotation. + * + * When rotating by an angle other than a multiple of 90, + * the background colour can be provided with the `background` option. + * + * For backwards compatibility, if no angle is provided, `.autoOrient()` will be called. + * + * Only one rotation can occur per pipeline (aside from an initial call without + * arguments to orient via EXIF data). Previous calls to `rotate` in the same + * pipeline will be ignored. + * + * Multi-page images can only be rotated by 180 degrees. + * + * Method order is important when rotating, resizing and/or extracting regions, + * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`. + * + * @example + * const rotateThenResize = await sharp(input) + * .rotate(90) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .toBuffer(); + * const resizeThenRotate = await sharp(input) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .rotate(90) + * .toBuffer(); + * + * @param {number} [angle=auto] angle of rotation. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string|Object} [options.background="#000000"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function rotate (angle, options) { + if (!is.defined(angle)) { + return this.autoOrient(); + } + if (this.options.angle || this.options.rotationAngle) { + this.options.debuglog('ignoring previous rotate options'); + this.options.angle = 0; + this.options.rotationAngle = 0; + } + if (is.integer(angle) && !(angle % 90)) { + this.options.angle = angle; + } else if (is.number(angle)) { + this.options.rotationAngle = angle; + if (is.object(options) && options.background) { + this._setBackgroundColourOption('rotationBackground', options.background); + } + } else { + throw is.invalidParameterError('angle', 'numeric', angle); + } + return this; +} + +/** + * Auto-orient based on the EXIF `Orientation` tag, then remove the tag. + * Mirroring is supported and may infer the use of a flip operation. + * + * Only the EXIF `Orientation` tag is considered; orientation carried in other + * places, such as an XMP `tiff:Orientation` element, is left untouched and + * remains the responsibility of the consumer. + * + * Previous or subsequent use of `rotate(angle)` and either `flip()` or `flop()` + * will logically occur after auto-orientation, regardless of call order. + * + * @example + * const output = await sharp(input).autoOrient().toBuffer(); + * + * @example + * const pipeline = sharp() + * .autoOrient() + * .resize(null, 200) + * .toBuffer(function (err, outputBuffer, info) { + * // outputBuffer contains 200px high JPEG image data, + * // auto-oriented using EXIF Orientation tag + * // info.width and info.height contain the dimensions of the resized image + * }); + * readableStream.pipe(pipeline); + * + * @returns {Sharp} + */ +function autoOrient () { + this.options.input.autoOrient = true; + return this; +} + +/** + * Mirror the image vertically (up-down) about the x-axis. + * This always occurs before rotation, if any. + * + * This operation does not work correctly with multi-page images. + * + * @example + * const output = await sharp(input).flip().toBuffer(); + * + * @param {Boolean} [flip=true] + * @returns {Sharp} + */ +function flip (flip) { + this.options.flip = is.bool(flip) ? flip : true; + return this; +} + +/** + * Mirror the image horizontally (left-right) about the y-axis. + * This always occurs before rotation, if any. + * + * @example + * const output = await sharp(input).flop().toBuffer(); + * + * @param {Boolean} [flop=true] + * @returns {Sharp} + */ +function flop (flop) { + this.options.flop = is.bool(flop) ? flop : true; + return this; +} + +/** + * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any. + * + * You must provide an array of length 4 or a 2x2 affine transformation matrix. + * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option. + * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`. + * + * In the case of a 2x2 matrix, the transform is: + * - X = `matrix[0, 0]` \* (x + `idx`) + `matrix[0, 1]` \* (y + `idy`) + `odx` + * - Y = `matrix[1, 0]` \* (x + `idx`) + `matrix[1, 1]` \* (y + `idy`) + `ody` + * + * where: + * - x and y are the coordinates in input image. + * - X and Y are the coordinates in output image. + * - (0,0) is the upper left corner. + * + * @since 0.27.0 + * + * @example + * const pipeline = sharp() + * .affine([[1, 0.3], [0.1, 0.7]], { + * background: 'white', + * interpolator: sharp.interpolators.nohalo + * }) + * .toBuffer((err, outputBuffer, info) => { + * // outputBuffer contains the transformed image + * // info.width and info.height contain the new dimensions + * }); + * + * inputStream + * .pipe(pipeline); + * + * @param {Array>|Array} matrix - affine transformation matrix + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {String|Object} [options.background="#000000"] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Number} [options.idx=0] - input horizontal offset + * @param {Number} [options.idy=0] - input vertical offset + * @param {Number} [options.odx=0] - output horizontal offset + * @param {Number} [options.ody=0] - output vertical offset + * @param {String} [options.interpolator=sharp.interpolators.bicubic] - interpolator + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function affine (matrix, options) { + const isValidShape = Array.isArray(matrix) && ( + // 1x4 array of numbers + (matrix.length === 4 && matrix.every(is.number)) || + // 2x2 array of arrays of numbers + (matrix.length === 2 && matrix.every((row) => Array.isArray(row) && row.length === 2)) + ); + const flatMatrix = isValidShape ? matrix.flat() : []; + if (flatMatrix.length === 4 && flatMatrix.every(is.number)) { + this.options.affineMatrix = flatMatrix; + } else { + throw is.invalidParameterError('matrix', '1x4 or 2x2 array', matrix); + } + + if (is.defined(options)) { + if (is.object(options)) { + this._setBackgroundColourOption('affineBackground', options.background); + if (is.defined(options.idx)) { + if (is.number(options.idx)) { + this.options.affineIdx = options.idx; + } else { + throw is.invalidParameterError('options.idx', 'number', options.idx); + } + } + if (is.defined(options.idy)) { + if (is.number(options.idy)) { + this.options.affineIdy = options.idy; + } else { + throw is.invalidParameterError('options.idy', 'number', options.idy); + } + } + if (is.defined(options.odx)) { + if (is.number(options.odx)) { + this.options.affineOdx = options.odx; + } else { + throw is.invalidParameterError('options.odx', 'number', options.odx); + } + } + if (is.defined(options.ody)) { + if (is.number(options.ody)) { + this.options.affineOdy = options.ody; + } else { + throw is.invalidParameterError('options.ody', 'number', options.ody); + } + } + if (is.defined(options.interpolator)) { + if (is.inArray(options.interpolator, Object.values(this.constructor.interpolators))) { + this.options.affineInterpolator = options.interpolator; + } else { + throw is.invalidParameterError('options.interpolator', 'valid interpolator name', options.interpolator); + } + } + } else { + throw is.invalidParameterError('options', 'object', options); + } + } + + return this; +} + +/** + * Sharpen the image. + * + * When used without parameters, performs a fast, mild sharpen of the output image. + * + * When a `sigma` is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * + * See {@link https://www.libvips.org/API/current/method.Image.sharpen.html libvips sharpen} operation. + * + * @example + * const data = await sharp(input).sharpen().toBuffer(); + * + * @example + * const data = await sharp(input).sharpen({ sigma: 2 }).toBuffer(); + * + * @example + * const data = await sharp(input) + * .sharpen({ + * sigma: 2, + * m1: 0, + * m2: 3, + * x1: 3, + * y2: 15, + * y3: 15, + * }) + * .toBuffer(); + * + * @param {Object} [options] - if present, is an Object with attributes + * @param {number} [options.sigma] - the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`, between 0.000001 and 10 + * @param {number} [options.m1=1.0] - the level of sharpening to apply to "flat" areas, between 0 and 1000000 + * @param {number} [options.m2=2.0] - the level of sharpening to apply to "jagged" areas, between 0 and 1000000 + * @param {number} [options.x1=2.0] - threshold between "flat" and "jagged", between 0 and 1000000 + * @param {number} [options.y2=10.0] - maximum amount of brightening, between 0 and 1000000 + * @param {number} [options.y3=20.0] - maximum amount of darkening, between 0 and 1000000 + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function sharpen (options) { + if (is.plainObject(options)) { + if (is.number(options.sigma) && is.inRange(options.sigma, 0.000001, 10)) { + this.options.sharpenSigma = options.sigma; + } else { + throw is.invalidParameterError('options.sigma', 'number between 0.000001 and 10', options.sigma); + } + if (is.defined(options.m1)) { + if (is.number(options.m1) && is.inRange(options.m1, 0, 1000000)) { + this.options.sharpenM1 = options.m1; + } else { + throw is.invalidParameterError('options.m1', 'number between 0 and 1000000', options.m1); + } + } + if (is.defined(options.m2)) { + if (is.number(options.m2) && is.inRange(options.m2, 0, 1000000)) { + this.options.sharpenM2 = options.m2; + } else { + throw is.invalidParameterError('options.m2', 'number between 0 and 1000000', options.m2); + } + } + if (is.defined(options.x1)) { + if (is.number(options.x1) && is.inRange(options.x1, 0, 1000000)) { + this.options.sharpenX1 = options.x1; + } else { + throw is.invalidParameterError('options.x1', 'number between 0 and 1000000', options.x1); + } + } + if (is.defined(options.y2)) { + if (is.number(options.y2) && is.inRange(options.y2, 0, 1000000)) { + this.options.sharpenY2 = options.y2; + } else { + throw is.invalidParameterError('options.y2', 'number between 0 and 1000000', options.y2); + } + } + if (is.defined(options.y3)) { + if (is.number(options.y3) && is.inRange(options.y3, 0, 1000000)) { + this.options.sharpenY3 = options.y3; + } else { + throw is.invalidParameterError('options.y3', 'number between 0 and 1000000', options.y3); + } + } + } else { + this.options.sharpenSigma = -1; + } + return this; +} + +/** + * Apply median filter. + * When used without parameters the default window is 3x3. + * + * @example + * const output = await sharp(input).median().toBuffer(); + * + * @example + * const output = await sharp(input).median(5).toBuffer(); + * + * @param {number} [size=3] square mask size: size x size + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function median (size) { + if (!is.defined(size)) { + // No arguments: default to 3x3 + this.options.medianSize = 3; + } else if (is.integer(size) && is.inRange(size, 1, 1000)) { + // Numeric argument: specific sigma + this.options.medianSize = size; + } else { + throw is.invalidParameterError('size', 'integer between 1 and 1000', size); + } + return this; +} + +/** + * Blur the image. + * + * When used without parameters, performs a fast 3x3 box blur (equivalent to a box linear filter). + * + * When a `sigma` is provided, performs a slower, more accurate Gaussian blur. + * + * @example + * const boxBlurred = await sharp(input) + * .blur() + * .toBuffer(); + * + * @example + * const gaussianBlurred = await sharp(input) + * .blur(5) + * .toBuffer(); + * + * @param {Object|number|Boolean} [options] + * @param {number} [options.sigma] a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`. + * @param {string} [options.precision='integer'] How accurate the operation should be, one of: integer, float, approximate. + * @param {number} [options.minAmplitude=0.2] A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function blur (options) { + let sigma; + if (is.number(options)) { + sigma = options; + } else if (is.plainObject(options)) { + if (!is.number(options.sigma)) { + throw is.invalidParameterError('options.sigma', 'number between 0.3 and 1000', sigma); + } + sigma = options.sigma; + if ('precision' in options) { + if (is.string(vipsPrecision[options.precision])) { + this.options.precision = vipsPrecision[options.precision]; + } else { + throw is.invalidParameterError('precision', 'one of: integer, float, approximate', options.precision); + } + } + if ('minAmplitude' in options) { + if (is.number(options.minAmplitude) && is.inRange(options.minAmplitude, 0.001, 1)) { + this.options.minAmpl = options.minAmplitude; + } else { + throw is.invalidParameterError('minAmplitude', 'number between 0.001 and 1', options.minAmplitude); + } + } + } + + if (!is.defined(options)) { + // No arguments: default to mild blur + this.options.blurSigma = -1; + } else if (is.bool(options)) { + // Boolean argument: apply mild blur? + this.options.blurSigma = options ? -1 : 0; + } else if (is.number(sigma) && is.inRange(sigma, 0.3, 1000)) { + // Numeric argument: specific sigma + this.options.blurSigma = sigma; + } else { + throw is.invalidParameterError('sigma', 'number between 0.3 and 1000', sigma); + } + + return this; +} + +/** + * Expand foreground objects using the dilate morphological operator. + * + * @example + * const output = await sharp(input) + * .dilate() + * .toBuffer(); + * + * @param {Number} [width=1] dilation width in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function dilate (width) { + if (!is.defined(width)) { + this.options.dilateWidth = 1; + } else if (is.integer(width) && is.inRange(width, 1, 65536)) { + this.options.dilateWidth = width; + } else { + throw is.invalidParameterError('width', 'integer between 1 and 65536', width); + } + return this; +} + +/** + * Shrink foreground objects using the erode morphological operator. + * + * @example + * const output = await sharp(input) + * .erode() + * .toBuffer(); + * + * @param {Number} [width=1] erosion width in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function erode (width) { + if (!is.defined(width)) { + this.options.erodeWidth = 1; + } else if (is.integer(width) && is.inRange(width, 1, 65536)) { + this.options.erodeWidth = width; + } else { + throw is.invalidParameterError('width', 'integer between 1 and 65536', width); + } + return this; +} + +/** + * Merge alpha transparency channel, if any, with a background, then remove the alpha channel. + * + * See also {@link /api-channel#removealpha removeAlpha}. + * + * @example + * await sharp(rgbaInput) + * .flatten({ background: '#F0A703' }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {string|Object} [options.background={r: 0, g: 0, b: 0}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black. + * @returns {Sharp} + */ +function flatten (options) { + this.options.flatten = is.bool(options) ? options : true; + if (is.object(options)) { + this._setBackgroundColourOption('flattenBackground', options.background); + } + return this; +} + +/** + * Ensure the image has an alpha channel + * with all white pixel values made fully transparent. + * + * Existing alpha channel values for non-white pixels remain unchanged. + * + * @since 0.32.1 + * + * @example + * await sharp(rgbInput) + * .unflatten() + * .toBuffer(); + * + * @example + * await sharp(rgbInput) + * .threshold(128, { grayscale: false }) // converter bright pixels to white + * .unflatten() + * .toBuffer(); + */ +function unflatten () { + this.options.unflatten = true; + return this; +} + +/** + * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of `1/gamma` + * then increasing the encoding (brighten) post-resize at a factor of `gamma`. + * This can improve the perceived brightness of a resized image in non-linear colour spaces. + * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation + * when applying a gamma correction. + * + * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases. + * + * @param {number} [gamma=2.2] value between 1.0 and 3.0. + * @param {number} [gammaOut] value between 1.0 and 3.0. (optional, defaults to same as `gamma`) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function gamma (gamma, gammaOut) { + if (!is.defined(gamma)) { + // Default gamma correction of 2.2 (sRGB) + this.options.gamma = 2.2; + } else if (is.number(gamma) && is.inRange(gamma, 1, 3)) { + this.options.gamma = gamma; + } else { + throw is.invalidParameterError('gamma', 'number between 1.0 and 3.0', gamma); + } + if (!is.defined(gammaOut)) { + // Default gamma correction for output is same as input + this.options.gammaOut = this.options.gamma; + } else if (is.number(gammaOut) && is.inRange(gammaOut, 1, 3)) { + this.options.gammaOut = gammaOut; + } else { + throw is.invalidParameterError('gammaOut', 'number between 1.0 and 3.0', gammaOut); + } + return this; +} + +/** + * Produce the "negative" of the image. + * + * @example + * const output = await sharp(input) + * .negate() + * .toBuffer(); + * + * @example + * const output = await sharp(input) + * .negate({ alpha: false }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {Boolean} [options.alpha=true] Whether or not to negate any alpha channel + * @returns {Sharp} + */ +function negate (options) { + this.options.negate = is.bool(options) ? options : true; + if (is.plainObject(options) && 'alpha' in options) { + if (!is.bool(options.alpha)) { + throw is.invalidParameterError('alpha', 'should be boolean value', options.alpha); + } else { + this.options.negateAlpha = options.alpha; + } + } + return this; +} + +/** + * Enhance output image contrast by stretching its luminance to cover a full dynamic range. + * + * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes. + * + * Luminance values below the `lower` percentile will be underexposed by clipping to zero. + * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value. + * + * @example + * const output = await sharp(input) + * .normalise() + * .toBuffer(); + * + * @example + * const output = await sharp(input) + * .normalise({ lower: 0, upper: 100 }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed. + * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed. + * @returns {Sharp} + */ +function normalise (options) { + if (is.plainObject(options)) { + if (is.defined(options.lower)) { + if (is.number(options.lower) && is.inRange(options.lower, 0, 99)) { + this.options.normaliseLower = options.lower; + } else { + throw is.invalidParameterError('lower', 'number between 0 and 99', options.lower); + } + } + if (is.defined(options.upper)) { + if (is.number(options.upper) && is.inRange(options.upper, 1, 100)) { + this.options.normaliseUpper = options.upper; + } else { + throw is.invalidParameterError('upper', 'number between 1 and 100', options.upper); + } + } + } + if (this.options.normaliseLower >= this.options.normaliseUpper) { + throw is.invalidParameterError('range', 'lower to be less than upper', + `${this.options.normaliseLower} >= ${this.options.normaliseUpper}`); + } + this.options.normalise = true; + return this; +} + +/** + * Alternative spelling of normalise. + * + * @example + * const output = await sharp(input) + * .normalize() + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed. + * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed. + * @returns {Sharp} + */ +function normalize (options) { + return this.normalise(options); +} + +/** + * Perform contrast limiting adaptive histogram equalization + * {@link https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE CLAHE}. + * + * This will, in general, enhance the clarity of the image by bringing out darker details. + * + * @since 0.28.3 + * + * @example + * const output = await sharp(input) + * .clahe({ + * width: 3, + * height: 3, + * }) + * .toBuffer(); + * + * @param {Object} options + * @param {number} options.width - Integral width of the search window, in pixels, between 1 and 65536. + * @param {number} options.height - Integral height of the search window, in pixels, between 1 and 65536. + * @param {number} [options.maxSlope=3] - Integral level of brightening, between 0 and 100, where 0 disables contrast limiting. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function clahe (options) { + if (is.plainObject(options)) { + if (is.integer(options.width) && is.inRange(options.width, 1, 65536)) { + this.options.claheWidth = options.width; + } else { + throw is.invalidParameterError('width', 'integer between 1 and 65536', options.width); + } + if (is.integer(options.height) && is.inRange(options.height, 1, 65536)) { + this.options.claheHeight = options.height; + } else { + throw is.invalidParameterError('height', 'integer between 1 and 65536', options.height); + } + if (is.defined(options.maxSlope)) { + if (is.integer(options.maxSlope) && is.inRange(options.maxSlope, 0, 100)) { + this.options.claheMaxSlope = options.maxSlope; + } else { + throw is.invalidParameterError('maxSlope', 'integer between 0 and 100', options.maxSlope); + } + } + } else { + throw is.invalidParameterError('options', 'plain object', options); + } + return this; +} + +/** + * Convolve the image with the specified kernel. + * + * @example + * sharp(input) + * .convolve({ + * width: 3, + * height: 3, + * kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1] + * }) + * .raw() + * .toBuffer(function(err, data, info) { + * // data contains the raw pixel data representing the convolution + * // of the input image with the horizontal Sobel operator + * }); + * + * @param {Object} kernel + * @param {number} kernel.width - width of the kernel in pixels. + * @param {number} kernel.height - height of the kernel in pixels. + * @param {Array} kernel.kernel - Array of length `width*height` containing the kernel values. + * @param {number} [kernel.scale=sum] - the scale of the kernel in pixels. + * @param {number} [kernel.offset=0] - the offset of the kernel in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function convolve (kernel) { + if (!is.object(kernel) || !Array.isArray(kernel.kernel) || + !is.integer(kernel.width) || !is.integer(kernel.height) || + !is.inRange(kernel.width, 3, 1001) || !is.inRange(kernel.height, 3, 1001) || + kernel.height * kernel.width !== kernel.kernel.length || + !kernel.kernel.every(is.number) + ) { + // must pass in a kernel + throw new Error('Invalid convolution kernel'); + } + // Default scale is sum of kernel values + if (!is.integer(kernel.scale)) { + kernel.scale = kernel.kernel.reduce((a, b) => a + b, 0); + } + // Clip scale to a minimum value of 1 + if (kernel.scale < 1) { + kernel.scale = 1; + } + if (!is.integer(kernel.offset)) { + kernel.offset = 0; + } + this.options.convKernel = kernel; + return this; +} + +/** + * Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0. + * @param {number} [threshold=128] - a value in the range 0-255 representing the level at which the threshold will be applied. + * @param {Object} [options] + * @param {Boolean} [options.greyscale=true] - convert to single channel greyscale. + * @param {Boolean} [options.grayscale=true] - alternative spelling for greyscale. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function threshold (threshold, options) { + if (!is.defined(threshold)) { + this.options.threshold = 128; + } else if (is.bool(threshold)) { + this.options.threshold = threshold ? 128 : 0; + } else if (is.integer(threshold) && is.inRange(threshold, 0, 255)) { + this.options.threshold = threshold; + } else { + throw is.invalidParameterError('threshold', 'integer between 0 and 255', threshold); + } + if (!is.object(options) || options.greyscale === true || options.grayscale === true) { + this.options.thresholdGrayscale = true; + } else { + this.options.thresholdGrayscale = false; + } + return this; +} + +/** + * Perform a bitwise boolean operation with operand image. + * + * This operation creates an output image where each pixel is the result of + * the selected bitwise boolean `operation` between the corresponding pixels of the input images. + * + * @param {Buffer|string} operand - Buffer containing image data or string containing the path to an image file. + * @param {string} operator - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively. + * @param {Object} [options] + * @param {Object} [options.raw] - describes operand when using raw pixel data. + * @param {number} [options.raw.width] + * @param {number} [options.raw.height] + * @param {number} [options.raw.channels] + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function boolean (operand, operator, options) { + this.options.boolean = this._createInputDescriptor(operand, options); + if (is.string(operator) && is.inArray(operator, ['and', 'or', 'eor'])) { + this.options.booleanOp = operator; + } else { + throw is.invalidParameterError('operator', 'one of: and, or, eor', operator); + } + return this; +} + +/** + * Apply the linear formula `a` * input + `b` to the image to adjust image levels. + * + * When a single number is provided, it will be used for all image channels. + * When an array of numbers is provided, the array length must match the number of channels. + * + * @example + * await sharp(input) + * .linear(0.5, 2) + * .toBuffer(); + * + * @example + * await sharp(rgbInput) + * .linear( + * [0.25, 0.5, 0.75], + * [150, 100, 50] + * ) + * .toBuffer(); + * + * @param {(number|number[])} [a=[]] multiplier + * @param {(number|number[])} [b=[]] offset + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function linear (a, b) { + if (!is.defined(a) && is.number(b)) { + a = 1.0; + } else if (is.number(a) && !is.defined(b)) { + b = 0.0; + } + if (!is.defined(a)) { + this.options.linearA = []; + } else if (is.number(a)) { + this.options.linearA = [a]; + } else if (Array.isArray(a) && is.inRange(a.length, 1, 1000000) && a.every(is.number)) { + this.options.linearA = a; + } else { + throw is.invalidParameterError('a', 'number or array of numbers', a); + } + if (!is.defined(b)) { + this.options.linearB = []; + } else if (is.number(b)) { + this.options.linearB = [b]; + } else if (Array.isArray(b) && is.inRange(b.length, 1, 1000000) && b.every(is.number)) { + this.options.linearB = b; + } else { + throw is.invalidParameterError('b', 'number or array of numbers', b); + } + if (this.options.linearA.length !== this.options.linearB.length) { + throw new Error('Expected a and b to be arrays of the same length'); + } + return this; +} + +/** + * Recombine the image with the specified matrix. + * + * @since 0.21.1 + * + * @example + * sharp(input) + * .recomb([ + * [0.3588, 0.7044, 0.1368], + * [0.2990, 0.5870, 0.1140], + * [0.2392, 0.4696, 0.0912], + * ]) + * .raw() + * .toBuffer(function(err, data, info) { + * // data contains the raw pixel data after applying the matrix + * // With this example input, a sepia filter has been applied + * }); + * + * @param {Array>} inputMatrix - 3x3 or 4x4 Recombination matrix + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function recomb (inputMatrix) { + if (!Array.isArray(inputMatrix)) { + throw is.invalidParameterError('inputMatrix', 'array', inputMatrix); + } + const dimensions = inputMatrix.length; + if (dimensions !== 3 && dimensions !== 4) { + throw is.invalidParameterError('inputMatrix', '3x3 or 4x4 array', dimensions); + } + if (!inputMatrix.every((row) => Array.isArray(row) && row.length === dimensions)) { + throw is.invalidParameterError('inputMatrix', `array of ${dimensions} arrays of length ${dimensions}`, inputMatrix); + } + const recombMatrix = inputMatrix.flat(); + if (!recombMatrix.every(is.number)) { + throw is.invalidParameterError('inputMatrix', 'array of numbers', recombMatrix); + } + this.options.recombMatrix = recombMatrix; + return this; +} + +/** + * Transforms the image using brightness, saturation, hue rotation, and lightness. + * Brightness and lightness both operate on luminance, with the difference being that + * brightness is multiplicative whereas lightness is additive. + * + * @since 0.22.1 + * + * @example + * // increase brightness by a factor of 2 + * const output = await sharp(input) + * .modulate({ + * brightness: 2 + * }) + * .toBuffer(); + * + * @example + * // hue-rotate by 180 degrees + * const output = await sharp(input) + * .modulate({ + * hue: 180 + * }) + * .toBuffer(); + * + * @example + * // increase lightness by +50 + * const output = await sharp(input) + * .modulate({ + * lightness: 50 + * }) + * .toBuffer(); + * + * @example + * // decrease brightness and saturation while also hue-rotating by 90 degrees + * const output = await sharp(input) + * .modulate({ + * brightness: 0.5, + * saturation: 0.5, + * hue: 90, + * }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.brightness] Brightness multiplier + * @param {number} [options.saturation] Saturation multiplier + * @param {number} [options.hue] Degrees for hue rotation + * @param {number} [options.lightness] Lightness addend + * @returns {Sharp} + */ +function modulate (options) { + if (!is.plainObject(options)) { + throw is.invalidParameterError('options', 'plain object', options); + } + if ('brightness' in options) { + if (is.number(options.brightness) && options.brightness >= 0) { + this.options.brightness = options.brightness; + } else { + throw is.invalidParameterError('brightness', 'number above zero', options.brightness); + } + } + if ('saturation' in options) { + if (is.number(options.saturation) && options.saturation >= 0) { + this.options.saturation = options.saturation; + } else { + throw is.invalidParameterError('saturation', 'number above zero', options.saturation); + } + } + if ('hue' in options) { + if (is.integer(options.hue)) { + this.options.hue = options.hue % 360; + } else { + throw is.invalidParameterError('hue', 'number', options.hue); + } + } + if ('lightness' in options) { + if (is.number(options.lightness)) { + this.options.lightness = options.lightness; + } else { + throw is.invalidParameterError('lightness', 'number', options.lightness); + } + } + return this; +} + +/** + * Decorate the Sharp prototype with operation-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + autoOrient, + rotate, + flip, + flop, + affine, + sharpen, + erode, + dilate, + median, + blur, + flatten, + unflatten, + gamma, + negate, + normalise, + normalize, + clahe, + convolve, + threshold, + boolean, + linear, + recomb, + modulate + }); +}; diff --git a/apps/api/.output/node_modules/sharp/dist/operation.mjs b/apps/api/.output/node_modules/sharp/dist/operation.mjs new file mode 100644 index 0000000..8b2f84c --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/operation.mjs @@ -0,0 +1,1002 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import is from './is.mjs'; + +/** + * How accurate an operation should be. + * @member + * @private + */ +const vipsPrecision = { + integer: 'integer', + float: 'float', + approximate: 'approximate' +}; + +/** + * Rotate the output image. + * + * The provided angle is converted to a valid positive degree rotation. + * For example, `-450` will produce a 270 degree rotation. + * + * When rotating by an angle other than a multiple of 90, + * the background colour can be provided with the `background` option. + * + * For backwards compatibility, if no angle is provided, `.autoOrient()` will be called. + * + * Only one rotation can occur per pipeline (aside from an initial call without + * arguments to orient via EXIF data). Previous calls to `rotate` in the same + * pipeline will be ignored. + * + * Multi-page images can only be rotated by 180 degrees. + * + * Method order is important when rotating, resizing and/or extracting regions, + * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`. + * + * @example + * const rotateThenResize = await sharp(input) + * .rotate(90) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .toBuffer(); + * const resizeThenRotate = await sharp(input) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .rotate(90) + * .toBuffer(); + * + * @param {number} [angle=auto] angle of rotation. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string|Object} [options.background="#000000"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function rotate (angle, options) { + if (!is.defined(angle)) { + return this.autoOrient(); + } + if (this.options.angle || this.options.rotationAngle) { + this.options.debuglog('ignoring previous rotate options'); + this.options.angle = 0; + this.options.rotationAngle = 0; + } + if (is.integer(angle) && !(angle % 90)) { + this.options.angle = angle; + } else if (is.number(angle)) { + this.options.rotationAngle = angle; + if (is.object(options) && options.background) { + this._setBackgroundColourOption('rotationBackground', options.background); + } + } else { + throw is.invalidParameterError('angle', 'numeric', angle); + } + return this; +} + +/** + * Auto-orient based on the EXIF `Orientation` tag, then remove the tag. + * Mirroring is supported and may infer the use of a flip operation. + * + * Only the EXIF `Orientation` tag is considered; orientation carried in other + * places, such as an XMP `tiff:Orientation` element, is left untouched and + * remains the responsibility of the consumer. + * + * Previous or subsequent use of `rotate(angle)` and either `flip()` or `flop()` + * will logically occur after auto-orientation, regardless of call order. + * + * @example + * const output = await sharp(input).autoOrient().toBuffer(); + * + * @example + * const pipeline = sharp() + * .autoOrient() + * .resize(null, 200) + * .toBuffer(function (err, outputBuffer, info) { + * // outputBuffer contains 200px high JPEG image data, + * // auto-oriented using EXIF Orientation tag + * // info.width and info.height contain the dimensions of the resized image + * }); + * readableStream.pipe(pipeline); + * + * @returns {Sharp} + */ +function autoOrient () { + this.options.input.autoOrient = true; + return this; +} + +/** + * Mirror the image vertically (up-down) about the x-axis. + * This always occurs before rotation, if any. + * + * This operation does not work correctly with multi-page images. + * + * @example + * const output = await sharp(input).flip().toBuffer(); + * + * @param {Boolean} [flip=true] + * @returns {Sharp} + */ +function flip (flip) { + this.options.flip = is.bool(flip) ? flip : true; + return this; +} + +/** + * Mirror the image horizontally (left-right) about the y-axis. + * This always occurs before rotation, if any. + * + * @example + * const output = await sharp(input).flop().toBuffer(); + * + * @param {Boolean} [flop=true] + * @returns {Sharp} + */ +function flop (flop) { + this.options.flop = is.bool(flop) ? flop : true; + return this; +} + +/** + * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any. + * + * You must provide an array of length 4 or a 2x2 affine transformation matrix. + * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option. + * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`. + * + * In the case of a 2x2 matrix, the transform is: + * - X = `matrix[0, 0]` \* (x + `idx`) + `matrix[0, 1]` \* (y + `idy`) + `odx` + * - Y = `matrix[1, 0]` \* (x + `idx`) + `matrix[1, 1]` \* (y + `idy`) + `ody` + * + * where: + * - x and y are the coordinates in input image. + * - X and Y are the coordinates in output image. + * - (0,0) is the upper left corner. + * + * @since 0.27.0 + * + * @example + * const pipeline = sharp() + * .affine([[1, 0.3], [0.1, 0.7]], { + * background: 'white', + * interpolator: sharp.interpolators.nohalo + * }) + * .toBuffer((err, outputBuffer, info) => { + * // outputBuffer contains the transformed image + * // info.width and info.height contain the new dimensions + * }); + * + * inputStream + * .pipe(pipeline); + * + * @param {Array>|Array} matrix - affine transformation matrix + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {String|Object} [options.background="#000000"] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Number} [options.idx=0] - input horizontal offset + * @param {Number} [options.idy=0] - input vertical offset + * @param {Number} [options.odx=0] - output horizontal offset + * @param {Number} [options.ody=0] - output vertical offset + * @param {String} [options.interpolator=sharp.interpolators.bicubic] - interpolator + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function affine (matrix, options) { + const isValidShape = Array.isArray(matrix) && ( + // 1x4 array of numbers + (matrix.length === 4 && matrix.every(is.number)) || + // 2x2 array of arrays of numbers + (matrix.length === 2 && matrix.every((row) => Array.isArray(row) && row.length === 2)) + ); + const flatMatrix = isValidShape ? matrix.flat() : []; + if (flatMatrix.length === 4 && flatMatrix.every(is.number)) { + this.options.affineMatrix = flatMatrix; + } else { + throw is.invalidParameterError('matrix', '1x4 or 2x2 array', matrix); + } + + if (is.defined(options)) { + if (is.object(options)) { + this._setBackgroundColourOption('affineBackground', options.background); + if (is.defined(options.idx)) { + if (is.number(options.idx)) { + this.options.affineIdx = options.idx; + } else { + throw is.invalidParameterError('options.idx', 'number', options.idx); + } + } + if (is.defined(options.idy)) { + if (is.number(options.idy)) { + this.options.affineIdy = options.idy; + } else { + throw is.invalidParameterError('options.idy', 'number', options.idy); + } + } + if (is.defined(options.odx)) { + if (is.number(options.odx)) { + this.options.affineOdx = options.odx; + } else { + throw is.invalidParameterError('options.odx', 'number', options.odx); + } + } + if (is.defined(options.ody)) { + if (is.number(options.ody)) { + this.options.affineOdy = options.ody; + } else { + throw is.invalidParameterError('options.ody', 'number', options.ody); + } + } + if (is.defined(options.interpolator)) { + if (is.inArray(options.interpolator, Object.values(this.constructor.interpolators))) { + this.options.affineInterpolator = options.interpolator; + } else { + throw is.invalidParameterError('options.interpolator', 'valid interpolator name', options.interpolator); + } + } + } else { + throw is.invalidParameterError('options', 'object', options); + } + } + + return this; +} + +/** + * Sharpen the image. + * + * When used without parameters, performs a fast, mild sharpen of the output image. + * + * When a `sigma` is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * + * See {@link https://www.libvips.org/API/current/method.Image.sharpen.html libvips sharpen} operation. + * + * @example + * const data = await sharp(input).sharpen().toBuffer(); + * + * @example + * const data = await sharp(input).sharpen({ sigma: 2 }).toBuffer(); + * + * @example + * const data = await sharp(input) + * .sharpen({ + * sigma: 2, + * m1: 0, + * m2: 3, + * x1: 3, + * y2: 15, + * y3: 15, + * }) + * .toBuffer(); + * + * @param {Object} [options] - if present, is an Object with attributes + * @param {number} [options.sigma] - the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`, between 0.000001 and 10 + * @param {number} [options.m1=1.0] - the level of sharpening to apply to "flat" areas, between 0 and 1000000 + * @param {number} [options.m2=2.0] - the level of sharpening to apply to "jagged" areas, between 0 and 1000000 + * @param {number} [options.x1=2.0] - threshold between "flat" and "jagged", between 0 and 1000000 + * @param {number} [options.y2=10.0] - maximum amount of brightening, between 0 and 1000000 + * @param {number} [options.y3=20.0] - maximum amount of darkening, between 0 and 1000000 + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function sharpen (options) { + if (is.plainObject(options)) { + if (is.number(options.sigma) && is.inRange(options.sigma, 0.000001, 10)) { + this.options.sharpenSigma = options.sigma; + } else { + throw is.invalidParameterError('options.sigma', 'number between 0.000001 and 10', options.sigma); + } + if (is.defined(options.m1)) { + if (is.number(options.m1) && is.inRange(options.m1, 0, 1000000)) { + this.options.sharpenM1 = options.m1; + } else { + throw is.invalidParameterError('options.m1', 'number between 0 and 1000000', options.m1); + } + } + if (is.defined(options.m2)) { + if (is.number(options.m2) && is.inRange(options.m2, 0, 1000000)) { + this.options.sharpenM2 = options.m2; + } else { + throw is.invalidParameterError('options.m2', 'number between 0 and 1000000', options.m2); + } + } + if (is.defined(options.x1)) { + if (is.number(options.x1) && is.inRange(options.x1, 0, 1000000)) { + this.options.sharpenX1 = options.x1; + } else { + throw is.invalidParameterError('options.x1', 'number between 0 and 1000000', options.x1); + } + } + if (is.defined(options.y2)) { + if (is.number(options.y2) && is.inRange(options.y2, 0, 1000000)) { + this.options.sharpenY2 = options.y2; + } else { + throw is.invalidParameterError('options.y2', 'number between 0 and 1000000', options.y2); + } + } + if (is.defined(options.y3)) { + if (is.number(options.y3) && is.inRange(options.y3, 0, 1000000)) { + this.options.sharpenY3 = options.y3; + } else { + throw is.invalidParameterError('options.y3', 'number between 0 and 1000000', options.y3); + } + } + } else { + this.options.sharpenSigma = -1; + } + return this; +} + +/** + * Apply median filter. + * When used without parameters the default window is 3x3. + * + * @example + * const output = await sharp(input).median().toBuffer(); + * + * @example + * const output = await sharp(input).median(5).toBuffer(); + * + * @param {number} [size=3] square mask size: size x size + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function median (size) { + if (!is.defined(size)) { + // No arguments: default to 3x3 + this.options.medianSize = 3; + } else if (is.integer(size) && is.inRange(size, 1, 1000)) { + // Numeric argument: specific sigma + this.options.medianSize = size; + } else { + throw is.invalidParameterError('size', 'integer between 1 and 1000', size); + } + return this; +} + +/** + * Blur the image. + * + * When used without parameters, performs a fast 3x3 box blur (equivalent to a box linear filter). + * + * When a `sigma` is provided, performs a slower, more accurate Gaussian blur. + * + * @example + * const boxBlurred = await sharp(input) + * .blur() + * .toBuffer(); + * + * @example + * const gaussianBlurred = await sharp(input) + * .blur(5) + * .toBuffer(); + * + * @param {Object|number|Boolean} [options] + * @param {number} [options.sigma] a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`. + * @param {string} [options.precision='integer'] How accurate the operation should be, one of: integer, float, approximate. + * @param {number} [options.minAmplitude=0.2] A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function blur (options) { + let sigma; + if (is.number(options)) { + sigma = options; + } else if (is.plainObject(options)) { + if (!is.number(options.sigma)) { + throw is.invalidParameterError('options.sigma', 'number between 0.3 and 1000', sigma); + } + sigma = options.sigma; + if ('precision' in options) { + if (is.string(vipsPrecision[options.precision])) { + this.options.precision = vipsPrecision[options.precision]; + } else { + throw is.invalidParameterError('precision', 'one of: integer, float, approximate', options.precision); + } + } + if ('minAmplitude' in options) { + if (is.number(options.minAmplitude) && is.inRange(options.minAmplitude, 0.001, 1)) { + this.options.minAmpl = options.minAmplitude; + } else { + throw is.invalidParameterError('minAmplitude', 'number between 0.001 and 1', options.minAmplitude); + } + } + } + + if (!is.defined(options)) { + // No arguments: default to mild blur + this.options.blurSigma = -1; + } else if (is.bool(options)) { + // Boolean argument: apply mild blur? + this.options.blurSigma = options ? -1 : 0; + } else if (is.number(sigma) && is.inRange(sigma, 0.3, 1000)) { + // Numeric argument: specific sigma + this.options.blurSigma = sigma; + } else { + throw is.invalidParameterError('sigma', 'number between 0.3 and 1000', sigma); + } + + return this; +} + +/** + * Expand foreground objects using the dilate morphological operator. + * + * @example + * const output = await sharp(input) + * .dilate() + * .toBuffer(); + * + * @param {Number} [width=1] dilation width in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function dilate (width) { + if (!is.defined(width)) { + this.options.dilateWidth = 1; + } else if (is.integer(width) && is.inRange(width, 1, 65536)) { + this.options.dilateWidth = width; + } else { + throw is.invalidParameterError('width', 'integer between 1 and 65536', width); + } + return this; +} + +/** + * Shrink foreground objects using the erode morphological operator. + * + * @example + * const output = await sharp(input) + * .erode() + * .toBuffer(); + * + * @param {Number} [width=1] erosion width in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function erode (width) { + if (!is.defined(width)) { + this.options.erodeWidth = 1; + } else if (is.integer(width) && is.inRange(width, 1, 65536)) { + this.options.erodeWidth = width; + } else { + throw is.invalidParameterError('width', 'integer between 1 and 65536', width); + } + return this; +} + +/** + * Merge alpha transparency channel, if any, with a background, then remove the alpha channel. + * + * See also {@link /api-channel#removealpha removeAlpha}. + * + * @example + * await sharp(rgbaInput) + * .flatten({ background: '#F0A703' }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {string|Object} [options.background={r: 0, g: 0, b: 0}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black. + * @returns {Sharp} + */ +function flatten (options) { + this.options.flatten = is.bool(options) ? options : true; + if (is.object(options)) { + this._setBackgroundColourOption('flattenBackground', options.background); + } + return this; +} + +/** + * Ensure the image has an alpha channel + * with all white pixel values made fully transparent. + * + * Existing alpha channel values for non-white pixels remain unchanged. + * + * @since 0.32.1 + * + * @example + * await sharp(rgbInput) + * .unflatten() + * .toBuffer(); + * + * @example + * await sharp(rgbInput) + * .threshold(128, { grayscale: false }) // converter bright pixels to white + * .unflatten() + * .toBuffer(); + */ +function unflatten () { + this.options.unflatten = true; + return this; +} + +/** + * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of `1/gamma` + * then increasing the encoding (brighten) post-resize at a factor of `gamma`. + * This can improve the perceived brightness of a resized image in non-linear colour spaces. + * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation + * when applying a gamma correction. + * + * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases. + * + * @param {number} [gamma=2.2] value between 1.0 and 3.0. + * @param {number} [gammaOut] value between 1.0 and 3.0. (optional, defaults to same as `gamma`) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function gamma (gamma, gammaOut) { + if (!is.defined(gamma)) { + // Default gamma correction of 2.2 (sRGB) + this.options.gamma = 2.2; + } else if (is.number(gamma) && is.inRange(gamma, 1, 3)) { + this.options.gamma = gamma; + } else { + throw is.invalidParameterError('gamma', 'number between 1.0 and 3.0', gamma); + } + if (!is.defined(gammaOut)) { + // Default gamma correction for output is same as input + this.options.gammaOut = this.options.gamma; + } else if (is.number(gammaOut) && is.inRange(gammaOut, 1, 3)) { + this.options.gammaOut = gammaOut; + } else { + throw is.invalidParameterError('gammaOut', 'number between 1.0 and 3.0', gammaOut); + } + return this; +} + +/** + * Produce the "negative" of the image. + * + * @example + * const output = await sharp(input) + * .negate() + * .toBuffer(); + * + * @example + * const output = await sharp(input) + * .negate({ alpha: false }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {Boolean} [options.alpha=true] Whether or not to negate any alpha channel + * @returns {Sharp} + */ +function negate (options) { + this.options.negate = is.bool(options) ? options : true; + if (is.plainObject(options) && 'alpha' in options) { + if (!is.bool(options.alpha)) { + throw is.invalidParameterError('alpha', 'should be boolean value', options.alpha); + } else { + this.options.negateAlpha = options.alpha; + } + } + return this; +} + +/** + * Enhance output image contrast by stretching its luminance to cover a full dynamic range. + * + * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes. + * + * Luminance values below the `lower` percentile will be underexposed by clipping to zero. + * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value. + * + * @example + * const output = await sharp(input) + * .normalise() + * .toBuffer(); + * + * @example + * const output = await sharp(input) + * .normalise({ lower: 0, upper: 100 }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed. + * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed. + * @returns {Sharp} + */ +function normalise (options) { + if (is.plainObject(options)) { + if (is.defined(options.lower)) { + if (is.number(options.lower) && is.inRange(options.lower, 0, 99)) { + this.options.normaliseLower = options.lower; + } else { + throw is.invalidParameterError('lower', 'number between 0 and 99', options.lower); + } + } + if (is.defined(options.upper)) { + if (is.number(options.upper) && is.inRange(options.upper, 1, 100)) { + this.options.normaliseUpper = options.upper; + } else { + throw is.invalidParameterError('upper', 'number between 1 and 100', options.upper); + } + } + } + if (this.options.normaliseLower >= this.options.normaliseUpper) { + throw is.invalidParameterError('range', 'lower to be less than upper', + `${this.options.normaliseLower} >= ${this.options.normaliseUpper}`); + } + this.options.normalise = true; + return this; +} + +/** + * Alternative spelling of normalise. + * + * @example + * const output = await sharp(input) + * .normalize() + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed. + * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed. + * @returns {Sharp} + */ +function normalize (options) { + return this.normalise(options); +} + +/** + * Perform contrast limiting adaptive histogram equalization + * {@link https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE CLAHE}. + * + * This will, in general, enhance the clarity of the image by bringing out darker details. + * + * @since 0.28.3 + * + * @example + * const output = await sharp(input) + * .clahe({ + * width: 3, + * height: 3, + * }) + * .toBuffer(); + * + * @param {Object} options + * @param {number} options.width - Integral width of the search window, in pixels, between 1 and 65536. + * @param {number} options.height - Integral height of the search window, in pixels, between 1 and 65536. + * @param {number} [options.maxSlope=3] - Integral level of brightening, between 0 and 100, where 0 disables contrast limiting. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function clahe (options) { + if (is.plainObject(options)) { + if (is.integer(options.width) && is.inRange(options.width, 1, 65536)) { + this.options.claheWidth = options.width; + } else { + throw is.invalidParameterError('width', 'integer between 1 and 65536', options.width); + } + if (is.integer(options.height) && is.inRange(options.height, 1, 65536)) { + this.options.claheHeight = options.height; + } else { + throw is.invalidParameterError('height', 'integer between 1 and 65536', options.height); + } + if (is.defined(options.maxSlope)) { + if (is.integer(options.maxSlope) && is.inRange(options.maxSlope, 0, 100)) { + this.options.claheMaxSlope = options.maxSlope; + } else { + throw is.invalidParameterError('maxSlope', 'integer between 0 and 100', options.maxSlope); + } + } + } else { + throw is.invalidParameterError('options', 'plain object', options); + } + return this; +} + +/** + * Convolve the image with the specified kernel. + * + * @example + * sharp(input) + * .convolve({ + * width: 3, + * height: 3, + * kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1] + * }) + * .raw() + * .toBuffer(function(err, data, info) { + * // data contains the raw pixel data representing the convolution + * // of the input image with the horizontal Sobel operator + * }); + * + * @param {Object} kernel + * @param {number} kernel.width - width of the kernel in pixels. + * @param {number} kernel.height - height of the kernel in pixels. + * @param {Array} kernel.kernel - Array of length `width*height` containing the kernel values. + * @param {number} [kernel.scale=sum] - the scale of the kernel in pixels. + * @param {number} [kernel.offset=0] - the offset of the kernel in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function convolve (kernel) { + if (!is.object(kernel) || !Array.isArray(kernel.kernel) || + !is.integer(kernel.width) || !is.integer(kernel.height) || + !is.inRange(kernel.width, 3, 1001) || !is.inRange(kernel.height, 3, 1001) || + kernel.height * kernel.width !== kernel.kernel.length || + !kernel.kernel.every(is.number) + ) { + // must pass in a kernel + throw new Error('Invalid convolution kernel'); + } + // Default scale is sum of kernel values + if (!is.integer(kernel.scale)) { + kernel.scale = kernel.kernel.reduce((a, b) => a + b, 0); + } + // Clip scale to a minimum value of 1 + if (kernel.scale < 1) { + kernel.scale = 1; + } + if (!is.integer(kernel.offset)) { + kernel.offset = 0; + } + this.options.convKernel = kernel; + return this; +} + +/** + * Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0. + * @param {number} [threshold=128] - a value in the range 0-255 representing the level at which the threshold will be applied. + * @param {Object} [options] + * @param {Boolean} [options.greyscale=true] - convert to single channel greyscale. + * @param {Boolean} [options.grayscale=true] - alternative spelling for greyscale. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function threshold (threshold, options) { + if (!is.defined(threshold)) { + this.options.threshold = 128; + } else if (is.bool(threshold)) { + this.options.threshold = threshold ? 128 : 0; + } else if (is.integer(threshold) && is.inRange(threshold, 0, 255)) { + this.options.threshold = threshold; + } else { + throw is.invalidParameterError('threshold', 'integer between 0 and 255', threshold); + } + if (!is.object(options) || options.greyscale === true || options.grayscale === true) { + this.options.thresholdGrayscale = true; + } else { + this.options.thresholdGrayscale = false; + } + return this; +} + +/** + * Perform a bitwise boolean operation with operand image. + * + * This operation creates an output image where each pixel is the result of + * the selected bitwise boolean `operation` between the corresponding pixels of the input images. + * + * @param {Buffer|string} operand - Buffer containing image data or string containing the path to an image file. + * @param {string} operator - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively. + * @param {Object} [options] + * @param {Object} [options.raw] - describes operand when using raw pixel data. + * @param {number} [options.raw.width] + * @param {number} [options.raw.height] + * @param {number} [options.raw.channels] + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function boolean (operand, operator, options) { + this.options.boolean = this._createInputDescriptor(operand, options); + if (is.string(operator) && is.inArray(operator, ['and', 'or', 'eor'])) { + this.options.booleanOp = operator; + } else { + throw is.invalidParameterError('operator', 'one of: and, or, eor', operator); + } + return this; +} + +/** + * Apply the linear formula `a` * input + `b` to the image to adjust image levels. + * + * When a single number is provided, it will be used for all image channels. + * When an array of numbers is provided, the array length must match the number of channels. + * + * @example + * await sharp(input) + * .linear(0.5, 2) + * .toBuffer(); + * + * @example + * await sharp(rgbInput) + * .linear( + * [0.25, 0.5, 0.75], + * [150, 100, 50] + * ) + * .toBuffer(); + * + * @param {(number|number[])} [a=[]] multiplier + * @param {(number|number[])} [b=[]] offset + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function linear (a, b) { + if (!is.defined(a) && is.number(b)) { + a = 1.0; + } else if (is.number(a) && !is.defined(b)) { + b = 0.0; + } + if (!is.defined(a)) { + this.options.linearA = []; + } else if (is.number(a)) { + this.options.linearA = [a]; + } else if (Array.isArray(a) && is.inRange(a.length, 1, 1000000) && a.every(is.number)) { + this.options.linearA = a; + } else { + throw is.invalidParameterError('a', 'number or array of numbers', a); + } + if (!is.defined(b)) { + this.options.linearB = []; + } else if (is.number(b)) { + this.options.linearB = [b]; + } else if (Array.isArray(b) && is.inRange(b.length, 1, 1000000) && b.every(is.number)) { + this.options.linearB = b; + } else { + throw is.invalidParameterError('b', 'number or array of numbers', b); + } + if (this.options.linearA.length !== this.options.linearB.length) { + throw new Error('Expected a and b to be arrays of the same length'); + } + return this; +} + +/** + * Recombine the image with the specified matrix. + * + * @since 0.21.1 + * + * @example + * sharp(input) + * .recomb([ + * [0.3588, 0.7044, 0.1368], + * [0.2990, 0.5870, 0.1140], + * [0.2392, 0.4696, 0.0912], + * ]) + * .raw() + * .toBuffer(function(err, data, info) { + * // data contains the raw pixel data after applying the matrix + * // With this example input, a sepia filter has been applied + * }); + * + * @param {Array>} inputMatrix - 3x3 or 4x4 Recombination matrix + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function recomb (inputMatrix) { + if (!Array.isArray(inputMatrix)) { + throw is.invalidParameterError('inputMatrix', 'array', inputMatrix); + } + const dimensions = inputMatrix.length; + if (dimensions !== 3 && dimensions !== 4) { + throw is.invalidParameterError('inputMatrix', '3x3 or 4x4 array', dimensions); + } + if (!inputMatrix.every((row) => Array.isArray(row) && row.length === dimensions)) { + throw is.invalidParameterError('inputMatrix', `array of ${dimensions} arrays of length ${dimensions}`, inputMatrix); + } + const recombMatrix = inputMatrix.flat(); + if (!recombMatrix.every(is.number)) { + throw is.invalidParameterError('inputMatrix', 'array of numbers', recombMatrix); + } + this.options.recombMatrix = recombMatrix; + return this; +} + +/** + * Transforms the image using brightness, saturation, hue rotation, and lightness. + * Brightness and lightness both operate on luminance, with the difference being that + * brightness is multiplicative whereas lightness is additive. + * + * @since 0.22.1 + * + * @example + * // increase brightness by a factor of 2 + * const output = await sharp(input) + * .modulate({ + * brightness: 2 + * }) + * .toBuffer(); + * + * @example + * // hue-rotate by 180 degrees + * const output = await sharp(input) + * .modulate({ + * hue: 180 + * }) + * .toBuffer(); + * + * @example + * // increase lightness by +50 + * const output = await sharp(input) + * .modulate({ + * lightness: 50 + * }) + * .toBuffer(); + * + * @example + * // decrease brightness and saturation while also hue-rotating by 90 degrees + * const output = await sharp(input) + * .modulate({ + * brightness: 0.5, + * saturation: 0.5, + * hue: 90, + * }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.brightness] Brightness multiplier + * @param {number} [options.saturation] Saturation multiplier + * @param {number} [options.hue] Degrees for hue rotation + * @param {number} [options.lightness] Lightness addend + * @returns {Sharp} + */ +function modulate (options) { + if (!is.plainObject(options)) { + throw is.invalidParameterError('options', 'plain object', options); + } + if ('brightness' in options) { + if (is.number(options.brightness) && options.brightness >= 0) { + this.options.brightness = options.brightness; + } else { + throw is.invalidParameterError('brightness', 'number above zero', options.brightness); + } + } + if ('saturation' in options) { + if (is.number(options.saturation) && options.saturation >= 0) { + this.options.saturation = options.saturation; + } else { + throw is.invalidParameterError('saturation', 'number above zero', options.saturation); + } + } + if ('hue' in options) { + if (is.integer(options.hue)) { + this.options.hue = options.hue % 360; + } else { + throw is.invalidParameterError('hue', 'number', options.hue); + } + } + if ('lightness' in options) { + if (is.number(options.lightness)) { + this.options.lightness = options.lightness; + } else { + throw is.invalidParameterError('lightness', 'number', options.lightness); + } + } + return this; +} + +/** + * Decorate the Sharp prototype with operation-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Object.assign(Sharp.prototype, { + autoOrient, + rotate, + flip, + flop, + affine, + sharpen, + erode, + dilate, + median, + blur, + flatten, + unflatten, + gamma, + negate, + normalise, + normalize, + clahe, + convolve, + threshold, + boolean, + linear, + recomb, + modulate + }); +}; diff --git a/apps/api/.output/node_modules/sharp/dist/output.cjs b/apps/api/.output/node_modules/sharp/dist/output.cjs new file mode 100644 index 0000000..1d2dd11 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/output.cjs @@ -0,0 +1,1786 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const path = require('node:path'); +const is = require('./is.cjs'); +const sharp = require('./sharp.cjs'); + +const formats = new Map([ + ['heic', 'heif'], + ['heif', 'heif'], + ['avif', 'avif'], + ['jpeg', 'jpeg'], + ['jpg', 'jpeg'], + ['jpe', 'jpeg'], + ['tile', 'tile'], + ['dz', 'tile'], + ['png', 'png'], + ['raw', 'raw'], + ['tiff', 'tiff'], + ['tif', 'tiff'], + ['webp', 'webp'], + ['gif', 'gif'], + ['jp2', 'jp2'], + ['jpx', 'jp2'], + ['j2k', 'jp2'], + ['j2c', 'jp2'], + ['jxl', 'jxl'] +]); + +const jp2Regex = /\.(jp[2x]|j2[kc])$/i; + +const errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG'); + +const bitdepthFromColourCount = (colours) => 1 << 32 - Math.clz32(Math.ceil(Math.log2(colours)) - 1); + +/** + * Write output image data to a file. + * + * If an explicit output format is not selected, it will be inferred from the extension, + * with JPEG, PNG, WebP, AVIF, TIFF, GIF, DZI, and libvips' V format supported. + * Note that raw pixel data is only supported for buffer output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #withmetadata withMetadata} for control over this. + * + * The caller is responsible for ensuring directory structures and permissions exist. + * + * A `Promise` is returned when `callback` is not provided. + * + * @example + * sharp(input) + * .toFile('output.png', (err, info) => { ... }); + * + * @example + * sharp(input) + * .toFile('output.png') + * .then(info => { ... }) + * .catch(err => { ... }); + * + * @param {string} fileOut - the path to write the image data to. + * @param {Function} [callback] - called on completion with two arguments `(err, info)`. + * `info` contains the output image `format`, `size` (bytes), `width`, `height`, + * `channels` and `premultiplied` (indicating if premultiplication was used). + * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`. + * When using the attention crop strategy also contains `attentionX` and `attentionY`, the focal point of the cropped region. + * Animated output will also contain `pageHeight` and `pages`. + * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text. + * @returns {Promise} - when no callback is provided + * @throws {Error} Invalid parameters + */ +function toFile (fileOut, callback) { + let err; + if (!is.string(fileOut)) { + err = new Error('Missing output file path'); + } else if (is.string(this.options.input.file) && path.resolve(this.options.input.file) === path.resolve(fileOut)) { + err = new Error('Cannot use same file for input and output'); + } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2.output.file) { + err = errJp2Save(); + } + if (err) { + if (is.fn(callback)) { + callback(err); + } else { + return Promise.reject(err); + } + } else { + this.options.fileOut = fileOut; + const stack = Error(); + return this._pipeline(callback, stack); + } + return this; +} + +/** + * Write output to a Buffer. + * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported. + * + * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format. + * + * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #withmetadata withMetadata} for control over this. + * + * `callback`, if present, gets three arguments `(err, data, info)` where: + * - `err` is an error, if any. + * - `data` is the output image data. + * - `info` contains the output image `format`, `size` (bytes), `width`, `height`, + * `channels` and `premultiplied` (indicating if premultiplication was used). + * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`. + * Animated output will also contain `pageHeight` and `pages`. + * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text. + * + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * Use {@link #touint8array toUint8Array} for a guaranteed transferable `ArrayBuffer`. + * + * A `Promise` is returned when `callback` is not provided. + * + * @example + * const data = await sharp(input) + * .png() + * .toBuffer(); + * + * @example + * const { data, info } = await sharp(input) + * .png() + * .toBuffer({ resolveWithObject: true }); + * + * @example + * const { data, info } = await sharp('my-image.jpg') + * // output the raw pixels + * .raw() + * .toBuffer({ resolveWithObject: true }); + * + * // create a more type safe way to work with the raw pixel data + * // this will not copy the data, instead it will change `data`s underlying ArrayBuffer + * // so `data` and `pixelArray` point to the same memory location + * const pixelArray = new Uint8ClampedArray(data.buffer); + * + * // When you are done changing the pixelArray, sharp takes the `pixelArray` as an input + * const { width, height, channels } = info; + * await sharp(pixelArray, { raw: { width, height, channels } }) + * .toFile('my-changed-image.jpg'); + * + * @param {Object} [options] + * @param {boolean} [options.resolveWithObject] Resolve the Promise with an Object containing `data` and `info` properties instead of resolving only with `data`. + * @param {Function} [callback] + * @returns {Promise} - when no callback is provided + */ +function toBuffer (options, callback) { + if (is.object(options)) { + this._setBooleanOption('resolveWithObject', options.resolveWithObject); + } else if (this.options.resolveWithObject) { + this.options.resolveWithObject = false; + } + this.options.fileOut = ''; + const stack = Error(); + return this._pipeline(is.fn(options) ? options : callback, stack); +} + +/** + * Write output to a `Uint8Array` backed by a transferable `ArrayBuffer`. + * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported. + * + * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format. + * + * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #keepexif keepExif} and similar methods for control over this. + * + * Resolves with an `Object` containing: + * - `data` is the output image as a `Uint8Array` backed by a transferable `ArrayBuffer`. + * - `info` contains properties relating to the output image such as `width` and `height`. + * + * @since v0.35.0 + * + * @example + * const { data, info } = await sharp(input).toUint8Array(); + * + * @example + * const { data } = await sharp(input) + * .avif() + * .toUint8Array(); + * const base64String = data.toBase64(); + * + * @returns {Promise<{ data: Uint8Array, info: Object }>} + */ +function toUint8Array () { + this.options.resolveWithObject = true; + this.options.typedArrayOut = true; + const stack = Error(); + return this._pipeline(null, stack); +} + +/** + * Set output density (DPI) in EXIF metadata. + * + * @since 0.35.0 + * + * @example + * const data = await sharp(input) + * .withDensity(96) + * .toBuffer(); + * + * @param {number} density Number of pixels per inch (DPI). + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withDensity (density) { + if (is.number(density) && density > 0) { + this.options.withMetadataDensity = density; + } else { + throw is.invalidParameterError('density', 'positive number', density); + } + return this.keepExif(); +} + +/** + * Keep all EXIF metadata from the input image in the output image. + * + * EXIF metadata is unsupported for TIFF output. + * + * @since 0.33.0 + * + * @example + * const outputWithExif = await sharp(inputWithExif) + * .keepExif() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepExif () { + this.options.keepMetadata |= 0b00001; + return this; +} + +/** + * Set EXIF metadata in the output image, ignoring any EXIF in the input image. + * + * @since 0.33.0 + * + * @example + * const dataWithExif = await sharp(input) + * .withExif({ + * IFD0: { + * Copyright: 'The National Gallery' + * }, + * IFD3: { + * GPSLatitudeRef: 'N', + * GPSLatitude: '51/1 30/1 3230/100', + * GPSLongitudeRef: 'W', + * GPSLongitude: '0/1 7/1 4366/100' + * } + * }) + * .toBuffer(); + * + * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withExif (exif) { + if (is.object(exif)) { + for (const [ifd, entries] of Object.entries(exif)) { + if (is.object(entries)) { + for (const [k, v] of Object.entries(entries)) { + if (is.string(v)) { + this.options.withExif[`exif-${ifd.toLowerCase()}-${k}`] = v; + } else { + throw is.invalidParameterError(`${ifd}.${k}`, 'string', v); + } + } + } else { + throw is.invalidParameterError(ifd, 'object', entries); + } + } + } else { + throw is.invalidParameterError('exif', 'object', exif); + } + this.options.withExifMerge = false; + return this.keepExif(); +} + +/** + * Update EXIF metadata from the input image in the output image. + * + * @since 0.33.0 + * + * @example + * const dataWithMergedExif = await sharp(inputWithExif) + * .withExifMerge({ + * IFD0: { + * Copyright: 'The National Gallery' + * } + * }) + * .toBuffer(); + * + * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withExifMerge (exif) { + this.withExif(exif); + this.options.withExifMerge = true; + return this; +} + +/** + * Keep ICC profile from the input image in the output image. + * + * When input and output colour spaces differ, use with {@link /api-colour/#tocolourspace toColourspace} and optionally {@link /api-colour/#pipelinecolourspace pipelineColourspace}. + * + * @since 0.33.0 + * + * @example + * const outputWithIccProfile = await sharp(inputWithIccProfile) + * .keepIccProfile() + * .toBuffer(); + * + * @example + * const cmykOutputWithIccProfile = await sharp(cmykInputWithIccProfile) + * .pipelineColourspace('cmyk') + * .toColourspace('cmyk') + * .keepIccProfile() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepIccProfile () { + this.options.keepMetadata |= 0b01000; + return this; +} + +/** + * Transform using an ICC profile and attach to the output image. + * + * This can either be an absolute filesystem path or + * built-in profile name (`srgb`, `p3`, `cmyk`). + * + * @since 0.33.0 + * + * @example + * const outputWithP3 = await sharp(input) + * .withIccProfile('p3') + * .toBuffer(); + * + * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk). + * @param {Object} [options] + * @param {number} [options.attach=true] Should the ICC profile be included in the output image metadata? + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withIccProfile (icc, options) { + if (is.string(icc)) { + this.options.withIccProfile = icc; + } else { + throw is.invalidParameterError('icc', 'string', icc); + } + this.keepIccProfile(); + if (is.object(options)) { + if (is.defined(options.attach)) { + if (is.bool(options.attach)) { + if (!options.attach) { + this.options.keepMetadata &= ~0b01000; + } + } else { + throw is.invalidParameterError('attach', 'boolean', options.attach); + } + } + } + return this; +} + +/** + * If the input contains gain map metadata, attempt to process the image and gain map separately, + * recombining them into a single output image. + * + * This approach is faster and should produce better results than {@link #withgainmap withGainMap}, + * however not all operations are supported. + * + * Only JPEG input and output are supported. + * JPEG output options other than `quality` are ignored. + * + * This feature is experimental and the API may change. + * + * @since 0.35.0 + * + * @example + * const outputWithResizedGainMap = await sharp(inputWithGainMap) + * .keepGainMap() + * .resize({ width: 64 }) + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepGainMap() { + this.options.keepGainMap = true; + this.options.withGainMap = false; + this.options.keepMetadata |= 0b100000; + return this; +} + +/** + * If the input contains gain map metadata, use it to convert the main image to HDR (High Dynamic Range) before further processing. + * The input gain map is discarded. + * + * If the output is JPEG, generate and attach a new ISO 21496-1 gain map. + * JPEG output options other than `quality` are ignored. + * + * This feature is experimental and the API may change. + * + * @since 0.35.0 + * + * @example + * const outputWithRegeneratedGainMap = await sharp(inputWithGainMap) + * .withGainMap() + * .toBuffer(); + * + * @returns {Sharp} + */ +function withGainMap() { + this.options.withGainMap = true; + this.options.keepGainMap = false; + this.options.colourspace = 'scrgb'; + return this; +} + +/** + * Keep XMP metadata from the input image in the output image. + * + * @since 0.34.3 + * + * @example + * const outputWithXmp = await sharp(inputWithXmp) + * .keepXmp() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepXmp () { + this.options.keepMetadata |= 0b00010; + return this; +} + +/** + * Set XMP metadata in the output image. + * + * Supported by PNG, JPEG, WebP, and TIFF output. + * + * @since 0.34.3 + * + * @example + * const xmpString = ` + * + * + * + * + * John Doe + * + * + * `; + * + * const data = await sharp(input) + * .withXmp(xmpString) + * .toBuffer(); + * + * @param {string} xmp String containing XMP metadata to be embedded in the output image. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withXmp (xmp) { + if (is.string(xmp) && xmp.length > 0) { + this.options.withXmp = xmp; + this.options.keepMetadata |= 0b00010; + } else { + throw is.invalidParameterError('xmp', 'non-empty string', xmp); + } + return this; +} + +/** + * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image. + * + * The default behaviour, when `keepMetadata` is not used, is to convert to the device-independent + * sRGB colour space and strip all metadata, including the removal of any ICC profile. + * + * @since 0.33.0 + * + * @example + * const outputWithMetadata = await sharp(inputWithMetadata) + * .keepMetadata() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepMetadata () { + this.options.keepMetadata |= 0b11111; + return this; +} + +/** + * Keep most metadata (EXIF, XMP, IPTC) from the input image in the output image. + * + * This will also convert to and add a web-friendly sRGB ICC profile if appropriate. + * + * Allows orientation and density to be set or updated. + * + * @example + * const outputSrgbWithMetadata = await sharp(inputRgbWithMetadata) + * .withMetadata() + * .toBuffer(); + * + * @example + * // Set output metadata to 96 DPI + * const data = await sharp(input) + * .withMetadata({ density: 96 }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.orientation] Used to update the EXIF `Orientation` tag, integer between 1 and 8. + * @param {number} [options.density] Number of pixels per inch (DPI). + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withMetadata (options) { + this.keepMetadata(); + this.withIccProfile('srgb'); + if (is.object(options)) { + if (is.defined(options.orientation)) { + if (is.integer(options.orientation) && is.inRange(options.orientation, 1, 8)) { + this.options.withMetadataOrientation = options.orientation; + } else { + throw is.invalidParameterError('orientation', 'integer between 1 and 8', options.orientation); + } + } + if (is.defined(options.density)) { + if (is.number(options.density) && options.density > 0) { + this.options.withMetadataDensity = options.density; + } else { + throw is.invalidParameterError('density', 'positive number', options.density); + } + } + if (is.defined(options.icc)) { + this.withIccProfile(options.icc); + } + if (is.defined(options.exif)) { + this.withExifMerge(options.exif); + } + } + return this; +} + +/** + * Force output to a given format. + * + * @example + * // Convert any input to PNG output + * const data = await sharp(input) + * .toFormat('png') + * .toBuffer(); + * + * @param {(string|Object)} format - as a string or an Object with an 'id' attribute + * @param {Object} options - output options + * @returns {Sharp} + * @throws {Error} unsupported format or options + */ +function toFormat (format, options) { + const actualFormat = formats.get((is.object(format) && is.string(format.id) ? format.id : format).toLowerCase()); + if (!actualFormat) { + throw is.invalidParameterError('format', `one of: ${[...formats.keys()].join(', ')}`, format); + } + return this[actualFormat](options); +} + +/** + * Use these JPEG options for output image. + * + * @example + * // Convert any input to very high quality JPEG output + * const data = await sharp(input) + * .jpeg({ + * quality: 100, + * chromaSubsampling: '4:4:4' + * }) + * .toBuffer(); + * + * @example + * // Use mozjpeg to reduce output JPEG file size (slower) + * const data = await sharp(input) + * .jpeg({ mozjpeg: true }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {string} [options.chromaSubsampling='4:2:0'] - set to '4:4:4' to prevent chroma subsampling otherwise defaults to '4:2:0' chroma subsampling + * @param {boolean} [options.optimiseCoding=true] - optimise Huffman coding tables + * @param {boolean} [options.optimizeCoding=true] - alternative spelling of optimiseCoding + * @param {boolean} [options.mozjpeg=false] - use mozjpeg defaults, equivalent to `{ trellisQuantisation: true, overshootDeringing: true, optimiseScans: true, quantisationTable: 3 }` + * @param {boolean} [options.trellisQuantisation=false] - apply trellis quantisation + * @param {boolean} [options.overshootDeringing=false] - apply overshoot deringing + * @param {boolean} [options.optimiseScans=false] - optimise progressive scans, forces progressive + * @param {boolean} [options.optimizeScans=false] - alternative spelling of optimiseScans + * @param {number} [options.quantisationTable=0] - quantization table to use, integer 0-8 + * @param {number} [options.quantizationTable=0] - alternative spelling of quantisationTable + * @param {boolean} [options.force=true] - force JPEG output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jpeg (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.jpegQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.progressive)) { + this._setBooleanOption('jpegProgressive', options.progressive); + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.jpegChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + const optimiseCoding = is.bool(options.optimizeCoding) ? options.optimizeCoding : options.optimiseCoding; + if (is.defined(optimiseCoding)) { + this._setBooleanOption('jpegOptimiseCoding', optimiseCoding); + } + if (is.defined(options.mozjpeg)) { + if (is.bool(options.mozjpeg)) { + if (options.mozjpeg) { + this.options.jpegTrellisQuantisation = true; + this.options.jpegOvershootDeringing = true; + this.options.jpegOptimiseScans = true; + this.options.jpegProgressive = true; + this.options.jpegQuantisationTable = 3; + } + } else { + throw is.invalidParameterError('mozjpeg', 'boolean', options.mozjpeg); + } + } + const trellisQuantisation = is.bool(options.trellisQuantization) ? options.trellisQuantization : options.trellisQuantisation; + if (is.defined(trellisQuantisation)) { + this._setBooleanOption('jpegTrellisQuantisation', trellisQuantisation); + } + if (is.defined(options.overshootDeringing)) { + this._setBooleanOption('jpegOvershootDeringing', options.overshootDeringing); + } + const optimiseScans = is.bool(options.optimizeScans) ? options.optimizeScans : options.optimiseScans; + if (is.defined(optimiseScans)) { + this._setBooleanOption('jpegOptimiseScans', optimiseScans); + if (optimiseScans) { + this.options.jpegProgressive = true; + } + } + const quantisationTable = is.number(options.quantizationTable) ? options.quantizationTable : options.quantisationTable; + if (is.defined(quantisationTable)) { + if (is.integer(quantisationTable) && is.inRange(quantisationTable, 0, 8)) { + this.options.jpegQuantisationTable = quantisationTable; + } else { + throw is.invalidParameterError('quantisationTable', 'integer between 0 and 8', quantisationTable); + } + } + } + return this._updateFormatOut('jpeg', options); +} + +/** + * Use these PNG options for output image. + * + * By default, PNG output is full colour at 8 bits per pixel. + * + * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. + * Set `palette` to `true` for slower, indexed PNG output. + * + * For 16 bits per pixel output, convert to `rgb16` via + * {@link /api-colour/#tocolourspace toColourspace}. + * + * @example + * // Convert any input to full colour PNG output + * const data = await sharp(input) + * .png() + * .toBuffer(); + * + * @example + * // Convert any input to indexed PNG output (slower) + * const data = await sharp(input) + * .png({ palette: true }) + * .toBuffer(); + * + * @example + * // Output 16 bits per pixel RGB(A) + * const data = await sharp(input) + * .toColourspace('rgb16') + * .png() + * .toBuffer(); + * + * @param {Object} [options] + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest) + * @param {boolean} [options.adaptiveFiltering=false] - use adaptive row filtering + * @param {boolean} [options.palette=false] - quantise to a palette-based image with alpha transparency support + * @param {number} [options.quality=100] - use the lowest number of colours needed to achieve given quality, sets `palette` to `true` + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest), sets `palette` to `true` + * @param {number} [options.colours=256] - maximum number of palette entries, sets `palette` to `true` + * @param {number} [options.colors=256] - alternative spelling of `options.colours`, sets `palette` to `true` + * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, sets `palette` to `true` + * @param {boolean} [options.force=true] - force PNG output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function png (options) { + if (is.object(options)) { + if (is.defined(options.progressive)) { + this._setBooleanOption('pngProgressive', options.progressive); + } + if (is.defined(options.compressionLevel)) { + if (is.integer(options.compressionLevel) && is.inRange(options.compressionLevel, 0, 9)) { + this.options.pngCompressionLevel = options.compressionLevel; + } else { + throw is.invalidParameterError('compressionLevel', 'integer between 0 and 9', options.compressionLevel); + } + } + if (is.defined(options.adaptiveFiltering)) { + this._setBooleanOption('pngAdaptiveFiltering', options.adaptiveFiltering); + } + const colours = options.colours || options.colors; + if (is.defined(colours)) { + if (is.integer(colours) && is.inRange(colours, 2, 256)) { + this.options.pngBitdepth = bitdepthFromColourCount(colours); + } else { + throw is.invalidParameterError('colours', 'integer between 2 and 256', colours); + } + } + if (is.defined(options.palette)) { + this._setBooleanOption('pngPalette', options.palette); + } else if ([options.quality, options.effort, options.colours, options.colors, options.dither].some(is.defined)) { + this._setBooleanOption('pngPalette', true); + } + if (this.options.pngPalette) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 0, 100)) { + this.options.pngQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 0 and 100', options.quality); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) { + this.options.pngEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort); + } + } + if (is.defined(options.dither)) { + if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { + this.options.pngDither = options.dither; + } else { + throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither); + } + } + } + } + return this._updateFormatOut('png', options); +} + +/** + * Use these WebP options for output image. + * + * @example + * // Convert any input to lossless WebP output + * const data = await sharp(input) + * .webp({ lossless: true }) + * .toBuffer(); + * + * @example + * // Optimise the file size of an animated WebP + * const outputWebp = await sharp(inputWebp, { animated: true }) + * .webp({ effort: 6 }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {number} [options.alphaQuality=100] - quality of alpha layer, integer 0-100 + * @param {boolean} [options.lossless=false] - use lossless compression mode + * @param {boolean} [options.nearLossless=false] - use near_lossless compression mode + * @param {boolean} [options.smartSubsample=false] - use high quality chroma subsampling + * @param {boolean} [options.smartDeblock=false] - auto-adjust the deblocking filter, can improve low contrast edges (slow) + * @param {string} [options.preset='default'] - named preset for preprocessing/filtering, one of: default, photo, picture, drawing, icon, text + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 6 (slowest) + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @param {boolean} [options.minSize=false] - prevent use of animation key frames to minimise file size (slow) + * @param {boolean} [options.mixed=false] - allow mixture of lossy and lossless animation frames (slow) + * @param {boolean} [options.exact=false] - preserve the colour data in transparent pixels + * @param {boolean} [options.force=true] - force WebP output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function webp (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.webpQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.alphaQuality)) { + if (is.integer(options.alphaQuality) && is.inRange(options.alphaQuality, 0, 100)) { + this.options.webpAlphaQuality = options.alphaQuality; + } else { + throw is.invalidParameterError('alphaQuality', 'integer between 0 and 100', options.alphaQuality); + } + } + if (is.defined(options.lossless)) { + this._setBooleanOption('webpLossless', options.lossless); + } + if (is.defined(options.nearLossless)) { + this._setBooleanOption('webpNearLossless', options.nearLossless); + } + if (is.defined(options.smartSubsample)) { + this._setBooleanOption('webpSmartSubsample', options.smartSubsample); + } + if (is.defined(options.smartDeblock)) { + this._setBooleanOption('webpSmartDeblock', options.smartDeblock); + } + if (is.defined(options.preset)) { + if (is.string(options.preset) && is.inArray(options.preset, ['default', 'photo', 'picture', 'drawing', 'icon', 'text'])) { + this.options.webpPreset = options.preset; + } else { + throw is.invalidParameterError('preset', 'one of: default, photo, picture, drawing, icon, text', options.preset); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 0, 6)) { + this.options.webpEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 0 and 6', options.effort); + } + } + if (is.defined(options.minSize)) { + this._setBooleanOption('webpMinSize', options.minSize); + } + if (is.defined(options.mixed)) { + this._setBooleanOption('webpMixed', options.mixed); + } + if (is.defined(options.exact)) { + this._setBooleanOption('webpExact', options.exact); + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('webp', options); +} + +/** + * Use these GIF options for the output image. + * + * The first entry in the palette is reserved for transparency. + * + * The palette of the input image will be re-used if possible. + * + * @since 0.30.0 + * + * @example + * // Convert PNG to GIF + * await sharp(pngBuffer) + * .gif() + * .toBuffer(); + * + * @example + * // Convert animated WebP to animated GIF + * await sharp('animated.webp', { animated: true }) + * .toFile('animated.gif'); + * + * @example + * // Create a 128x128, cropped, non-dithered, animated thumbnail of an animated GIF + * const out = await sharp('in.gif', { animated: true }) + * .resize({ width: 128, height: 128 }) + * .gif({ dither: 0 }) + * .toBuffer(); + * + * @example + * // Lossy file size reduction of animated GIF + * await sharp('in.gif', { animated: true }) + * .gif({ interFrameMaxError: 8 }) + * .toFile('optim.gif'); + * + * @param {Object} [options] - output options + * @param {boolean} [options.reuse=true] - re-use existing palette, otherwise generate new (slow) + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {number} [options.colours=256] - maximum number of palette entries, including transparency, between 2 and 256 + * @param {number} [options.colors=256] - alternative spelling of `options.colours` + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest) + * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most) + * @param {number} [options.interFrameMaxError=0] - maximum inter-frame error for transparency, between 0 (lossless) and 32 + * @param {number} [options.interPaletteMaxError=3] - maximum inter-palette error for palette reuse, between 0 and 256 + * @param {boolean} [options.keepDuplicateFrames=false] - keep duplicate frames in the output instead of combining them + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @param {boolean} [options.force=true] - force GIF output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function gif (options) { + if (is.object(options)) { + if (is.defined(options.reuse)) { + this._setBooleanOption('gifReuse', options.reuse); + } + if (is.defined(options.progressive)) { + this._setBooleanOption('gifProgressive', options.progressive); + } + const colours = options.colours || options.colors; + if (is.defined(colours)) { + if (is.integer(colours) && is.inRange(colours, 2, 256)) { + this.options.gifBitdepth = bitdepthFromColourCount(colours); + } else { + throw is.invalidParameterError('colours', 'integer between 2 and 256', colours); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) { + this.options.gifEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort); + } + } + if (is.defined(options.dither)) { + if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { + this.options.gifDither = options.dither; + } else { + throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither); + } + } + if (is.defined(options.interFrameMaxError)) { + if (is.number(options.interFrameMaxError) && is.inRange(options.interFrameMaxError, 0, 32)) { + this.options.gifInterFrameMaxError = options.interFrameMaxError; + } else { + throw is.invalidParameterError('interFrameMaxError', 'number between 0.0 and 32.0', options.interFrameMaxError); + } + } + if (is.defined(options.interPaletteMaxError)) { + if (is.number(options.interPaletteMaxError) && is.inRange(options.interPaletteMaxError, 0, 256)) { + this.options.gifInterPaletteMaxError = options.interPaletteMaxError; + } else { + throw is.invalidParameterError('interPaletteMaxError', 'number between 0.0 and 256.0', options.interPaletteMaxError); + } + } + if (is.defined(options.keepDuplicateFrames)) { + if (is.bool(options.keepDuplicateFrames)) { + this._setBooleanOption('gifKeepDuplicateFrames', options.keepDuplicateFrames); + } else { + throw is.invalidParameterError('keepDuplicateFrames', 'boolean', options.keepDuplicateFrames); + } + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('gif', options); +} + +/** + * Use these JP2 options for output image. + * + * Requires libvips compiled with support for OpenJPEG. + * The prebuilt binaries do not include this - see + * {@link /install#custom-libvips installing a custom libvips}. + * + * @example + * // Convert any input to lossless JP2 output + * const data = await sharp(input) + * .jp2({ lossless: true }) + * .toBuffer(); + * + * @example + * // Convert any input to very high quality JP2 output + * const data = await sharp(input) + * .jp2({ + * quality: 100, + * chromaSubsampling: '4:4:4' + * }) + * .toBuffer(); + * + * @since 0.29.1 + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression mode + * @param {number} [options.tileWidth=512] - horizontal tile size + * @param {number} [options.tileHeight=512] - vertical tile size + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jp2 (options) { + /* node:coverage ignore next 41 */ + if (!this.constructor.format.jp2.output.buffer) { + throw errJp2Save(); + } + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.jp2Quality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.jp2Lossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.tileWidth)) { + if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) { + this.options.jp2TileWidth = options.tileWidth; + } else { + throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth); + } + } + if (is.defined(options.tileHeight)) { + if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) { + this.options.jp2TileHeight = options.tileHeight; + } else { + throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight); + } + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.jp2ChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + } + return this._updateFormatOut('jp2', options); +} + +/** + * Set animation options if available. + * @private + * + * @param {Object} [source] - output options + * @param {number} [source.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number[]} [source.delay] - list of delays between animation frames (in milliseconds) + * @param {Object} [target] - target object for valid options + * @throws {Error} Invalid options + */ +function trySetAnimationOptions (source, target) { + if (is.object(source) && is.defined(source.loop)) { + if (is.integer(source.loop) && is.inRange(source.loop, 0, 65535)) { + target.loop = source.loop; + } else { + throw is.invalidParameterError('loop', 'integer between 0 and 65535', source.loop); + } + } + if (is.object(source) && is.defined(source.delay)) { + // We allow singular values as well + if (is.integer(source.delay) && is.inRange(source.delay, 0, 65535)) { + target.delay = [source.delay]; + } else if ( + Array.isArray(source.delay) && + is.inRange(source.delay.length, 1, 1000000) && + source.delay.every(is.integer) && + source.delay.every(v => is.inRange(v, 0, 65535))) { + target.delay = source.delay; + } else { + throw is.invalidParameterError('delay', 'integer or an array of integers between 0 and 65535', source.delay); + } + } +} + +/** + * Use these TIFF options for output image. + * + * The `density` can be set in pixels/inch via {@link #withmetadata withMetadata} + * instead of providing `xres` and `yres` in pixels/mm. + * + * @example + * // Convert SVG input to LZW-compressed, 1 bit per pixel TIFF output + * sharp('input.svg') + * .tiff({ + * compression: 'lzw', + * bitdepth: 1 + * }) + * .toFile('1-bpp-output.tiff') + * .then(info => { ... }); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.force=true] - force TIFF output, otherwise attempt to use input format + * @param {string} [options.compression='jpeg'] - compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k + * @param {boolean} [options.bigtiff=false] - use BigTIFF variant (has no effect when compression is none) + * @param {string} [options.predictor='horizontal'] - compression predictor options: none, horizontal, float + * @param {boolean} [options.pyramid=false] - write an image pyramid + * @param {boolean} [options.tile=false] - write a tiled tiff + * @param {number} [options.tileWidth=256] - horizontal tile size, valid values are integers in the range 1-32768 + * @param {number} [options.tileHeight=256] - vertical tile size, valid values are integers in the range 1-32768 + * @param {number} [options.xres=1.0] - horizontal resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 + * @param {number} [options.yres=1.0] - vertical resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 + * @param {string} [options.resolutionUnit='inch'] - resolution unit options: inch, cm + * @param {number} [options.bitdepth=0] - reduce bitdepth to 1, 2 or 4 bit + * @param {boolean} [options.miniswhite=false] - write 1-bit images as miniswhite + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function tiff (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.tiffQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.bitdepth)) { + if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4])) { + this.options.tiffBitdepth = options.bitdepth; + } else { + throw is.invalidParameterError('bitdepth', '1, 2 or 4', options.bitdepth); + } + } + // tiling + if (is.defined(options.tile)) { + this._setBooleanOption('tiffTile', options.tile); + } + if (is.defined(options.tileWidth)) { + if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) { + this.options.tiffTileWidth = options.tileWidth; + } else { + throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth); + } + } + if (is.defined(options.tileHeight)) { + if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) { + this.options.tiffTileHeight = options.tileHeight; + } else { + throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight); + } + } + // miniswhite + if (is.defined(options.miniswhite)) { + this._setBooleanOption('tiffMiniswhite', options.miniswhite); + } + // pyramid + if (is.defined(options.pyramid)) { + this._setBooleanOption('tiffPyramid', options.pyramid); + } + // resolution + if (is.defined(options.xres)) { + if (is.number(options.xres) && is.inRange(options.xres, 0.001, 1000000)) { + this.options.tiffXres = options.xres; + } else { + throw is.invalidParameterError('xres', 'number between 0.001 and 1000000', options.xres); + } + } + if (is.defined(options.yres)) { + if (is.number(options.yres) && is.inRange(options.yres, 0.001, 1000000)) { + this.options.tiffYres = options.yres; + } else { + throw is.invalidParameterError('yres', 'number between 0.001 and 1000000', options.yres); + } + } + // compression + if (is.defined(options.compression)) { + if (is.string(options.compression) && is.inArray(options.compression, ['none', 'jpeg', 'deflate', 'packbits', 'ccittfax4', 'lzw', 'webp', 'zstd', 'jp2k'])) { + this.options.tiffCompression = options.compression; + } else { + throw is.invalidParameterError('compression', 'one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k', options.compression); + } + } + // bigtiff + if (is.defined(options.bigtiff)) { + this._setBooleanOption('tiffBigtiff', options.bigtiff); + } + // predictor + if (is.defined(options.predictor)) { + if (is.string(options.predictor) && is.inArray(options.predictor, ['none', 'horizontal', 'float'])) { + this.options.tiffPredictor = options.predictor; + } else { + throw is.invalidParameterError('predictor', 'one of: none, horizontal, float', options.predictor); + } + } + // resolutionUnit + if (is.defined(options.resolutionUnit)) { + if (is.string(options.resolutionUnit) && is.inArray(options.resolutionUnit, ['inch', 'cm'])) { + this.options.tiffResolutionUnit = options.resolutionUnit; + } else { + throw is.invalidParameterError('resolutionUnit', 'one of: inch, cm', options.resolutionUnit); + } + } + } + return this._updateFormatOut('tiff', options); +} + +/** + * Use these AVIF options for output image. + * + * AVIF image sequences are not supported. + * + * @example + * const data = await sharp(input) + * .avif({ effort: 2 }) + * .toBuffer(); + * + * @example + * const data = await sharp(input) + * .avif({ lossless: true }) + * .toBuffer(); + * + * @since 0.27.0 + * + * @param {Object} [options] - output options + * @param {number} [options.quality=50] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest) + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit + * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim' + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function avif (options) { + return this.heif({ ...options, compression: 'av1' }); +} + +/** + * Use these HEIF options for output image. + * + * Support for patent-encumbered HEIC images using `hevc` compression requires the use of a + * globally-installed libvips compiled with support for libheif, libde265 and x265. + * + * @example + * const data = await sharp(input) + * .heif({ compression: 'hevc' }) + * .toBuffer(); + * + * @since 0.23.0 + * + * @param {Object} options - output options + * @param {string} options.compression - compression format: av1, hevc + * @param {number} [options.quality=50] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest) + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit + * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim' + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function heif (options) { + if (is.object(options)) { + if (is.string(options.compression) && is.inArray(options.compression, ['av1', 'hevc'])) { + this.options.heifCompression = options.compression; + } else { + throw is.invalidParameterError('compression', 'one of: av1, hevc', options.compression); + } + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.heifQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.heifLossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 0, 9)) { + this.options.heifEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 0 and 9', options.effort); + } + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.heifChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + if (is.defined(options.bitdepth)) { + if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) { + this.options.heifBitdepth = options.bitdepth; + } else { + throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth); + } + } + if (is.defined(options.tune)) { + if (is.string(options.tune) && is.inArray(options.tune, ['auto', 'iq', 'psnr', 'ssim'])) { + if (this.options.heifLossless && options.tune === 'iq') { + this.options.heifTune = 'ssim'; + } else { + this.options.heifTune = options.tune; + } + } else { + throw is.invalidParameterError('tune', 'one of: auto, iq, psnr, ssim', options.tune); + } + } + } else { + throw is.invalidParameterError('options', 'Object', options); + } + return this._updateFormatOut('heif', options); +} + +/** + * Use these JPEG-XL (JXL) options for output image. + * + * This feature is experimental, please do not use in production systems. + * + * Requires libvips compiled with support for libjxl. + * The prebuilt binaries do not include this - see + * {@link /install/#custom-libvips installing a custom libvips}. + * + * @since 0.31.3 + * + * @param {Object} [options] - output options + * @param {number} [options.distance=1.0] - maximum encoding error, between 0 (highest quality) and 15 (lowest quality) + * @param {number} [options.quality] - calculate `distance` based on JPEG-like quality, between 1 and 100, overrides distance if specified + * @param {number} [options.decodingTier=0] - target decode speed tier, between 0 (highest quality) and 4 (lowest quality) + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 9 (slowest) + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jxl (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + // https://github.com/libjxl/libjxl/blob/0aeea7f180bafd6893c1db8072dcb67d2aa5b03d/tools/cjxl_main.cc#L640-L644 + this.options.jxlDistance = options.quality >= 30 + ? 0.1 + (100 - options.quality) * 0.09 + : 53 / 3000 * options.quality * options.quality - 23 / 20 * options.quality + 25; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } else if (is.defined(options.distance)) { + if (is.number(options.distance) && is.inRange(options.distance, 0, 15)) { + this.options.jxlDistance = options.distance; + } else { + throw is.invalidParameterError('distance', 'number between 0.0 and 15.0', options.distance); + } + } + if (is.defined(options.decodingTier)) { + if (is.integer(options.decodingTier) && is.inRange(options.decodingTier, 0, 4)) { + this.options.jxlDecodingTier = options.decodingTier; + } else { + throw is.invalidParameterError('decodingTier', 'integer between 0 and 4', options.decodingTier); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.jxlLossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 9)) { + this.options.jxlEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 9', options.effort); + } + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('jxl', options); +} + +/** + * Force output to be raw, uncompressed pixel data. + * Pixel ordering is left-to-right, top-to-bottom, without padding. + * Channel ordering will be RGB or RGBA for non-greyscale colourspaces. + * + * @example + * // Extract raw, unsigned 8-bit RGB pixel data from JPEG input + * const { data, info } = await sharp('input.jpg') + * .raw() + * .toBuffer({ resolveWithObject: true }); + * + * @example + * // Extract alpha channel as raw, unsigned 16-bit pixel data from PNG input + * const data = await sharp('input.png') + * .ensureAlpha() + * .extractChannel(3) + * .toColourspace('b-w') + * .raw({ depth: 'ushort' }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {string} [options.depth='uchar'] - bit depth, one of: char, uchar (default), short, ushort, int, uint, float, complex, double, dpcomplex + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function raw (options) { + if (is.object(options)) { + if (is.defined(options.depth)) { + if (is.string(options.depth) && is.inArray(options.depth, + ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'float', 'complex', 'double', 'dpcomplex'] + )) { + this.options.rawDepth = options.depth; + } else { + throw is.invalidParameterError('depth', 'one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex', options.depth); + } + } + } + return this._updateFormatOut('raw'); +} + +/** + * Use tile-based deep zoom (image pyramid) output. + * + * Set the format and options for tile images via the `toFormat`, `jpeg`, `png` or `webp` functions. + * Use a `.zip` or `.szi` file extension with `toFile` to write to a compressed archive file format. + * + * The container will be set to `zip` when the output is a Buffer or Stream, otherwise it will default to `fs`. + * + * @example + * sharp('input.tiff') + * .png() + * .tile({ + * size: 512 + * }) + * .toFile('output.dz', function(err, info) { + * // output.dzi is the Deep Zoom XML definition + * // output_files contains 512x512 tiles grouped by zoom level + * }); + * + * @example + * const zipFileWithTiles = await sharp(input) + * .tile({ basename: "tiles" }) + * .toBuffer(); + * + * @example + * const iiififier = sharp().tile({ layout: "iiif" }); + * readableStream + * .pipe(iiififier) + * .pipe(writeableStream); + * + * @param {Object} [options] + * @param {number} [options.size=256] tile size in pixels, a value between 1 and 8192. + * @param {number} [options.overlap=0] tile overlap in pixels, a value between 0 and 8192. + * @param {number} [options.angle=0] tile angle of rotation, must be a multiple of 90. + * @param {string|Object} [options.background={r: 255, g: 255, b: 255, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to white without transparency. + * @param {string} [options.depth] how deep to make the pyramid, possible values are `onepixel`, `onetile` or `one`, default based on layout. + * @param {number} [options.skipBlanks=-1] Threshold to skip tile generation. Range is 0-255 for 8-bit images, 0-65535 for 16-bit images. Default is 5 for `google` layout, -1 (no skip) otherwise. + * @param {string} [options.container='fs'] tile container, with value `fs` (filesystem) or `zip` (compressed file). + * @param {string} [options.layout='dz'] filesystem layout, possible values are `dz`, `iiif`, `iiif3`, `zoomify` or `google`. + * @param {boolean} [options.centre=false] centre image in tile. + * @param {boolean} [options.center=false] alternative spelling of centre. + * @param {string} [options.id='https://example.com/iiif'] when `layout` is `iiif`/`iiif3`, sets the `@id`/`id` attribute of `info.json` + * @param {string} [options.basename] the name of the directory within the zip file when container is `zip`. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function tile (options) { + if (is.object(options)) { + // Size of square tiles, in pixels + if (is.defined(options.size)) { + if (is.integer(options.size) && is.inRange(options.size, 1, 8192)) { + this.options.tileSize = options.size; + } else { + throw is.invalidParameterError('size', 'integer between 1 and 8192', options.size); + } + } + // Overlap of tiles, in pixels + if (is.defined(options.overlap)) { + if (is.integer(options.overlap) && is.inRange(options.overlap, 0, 8192)) { + if (options.overlap > this.options.tileSize) { + throw is.invalidParameterError('overlap', `<= size (${this.options.tileSize})`, options.overlap); + } + this.options.tileOverlap = options.overlap; + } else { + throw is.invalidParameterError('overlap', 'integer between 0 and 8192', options.overlap); + } + } + // Container + if (is.defined(options.container)) { + if (is.string(options.container) && is.inArray(options.container, ['fs', 'zip'])) { + this.options.tileContainer = options.container; + } else { + throw is.invalidParameterError('container', 'one of: fs, zip', options.container); + } + } + // Layout + if (is.defined(options.layout)) { + if (is.string(options.layout) && is.inArray(options.layout, ['dz', 'google', 'iiif', 'iiif3', 'zoomify'])) { + this.options.tileLayout = options.layout; + } else { + throw is.invalidParameterError('layout', 'one of: dz, google, iiif, iiif3, zoomify', options.layout); + } + } + // Angle of rotation, + if (is.defined(options.angle)) { + if (is.integer(options.angle) && !(options.angle % 90)) { + this.options.tileAngle = options.angle; + } else { + throw is.invalidParameterError('angle', 'positive/negative multiple of 90', options.angle); + } + } + // Background colour + this._setBackgroundColourOption('tileBackground', options.background); + // Depth of tiles + if (is.defined(options.depth)) { + if (is.string(options.depth) && is.inArray(options.depth, ['onepixel', 'onetile', 'one'])) { + this.options.tileDepth = options.depth; + } else { + throw is.invalidParameterError('depth', 'one of: onepixel, onetile, one', options.depth); + } + } + // Threshold to skip blank tiles + if (is.defined(options.skipBlanks)) { + if (is.integer(options.skipBlanks) && is.inRange(options.skipBlanks, -1, 65535)) { + this.options.tileSkipBlanks = options.skipBlanks; + } else { + throw is.invalidParameterError('skipBlanks', 'integer between -1 and 255/65535', options.skipBlanks); + } + } else if (is.defined(options.layout) && options.layout === 'google') { + this.options.tileSkipBlanks = 5; + } + // Center image in tile + const centre = is.bool(options.center) ? options.center : options.centre; + if (is.defined(centre)) { + this._setBooleanOption('tileCentre', centre); + } + // @id attribute for IIIF layout + if (is.defined(options.id)) { + if (is.string(options.id)) { + this.options.tileId = options.id; + } else { + throw is.invalidParameterError('id', 'string', options.id); + } + } + // Basename for zip container + if (is.defined(options.basename)) { + if (is.string(options.basename)) { + this.options.tileBasename = options.basename; + } else { + throw is.invalidParameterError('basename', 'string', options.basename); + } + } + } + // Format + if (is.inArray(this.options.formatOut, ['jpeg', 'png', 'webp'])) { + this.options.tileFormat = this.options.formatOut; + } else if (this.options.formatOut !== 'input') { + throw is.invalidParameterError('format', 'one of: jpeg, png, webp', this.options.formatOut); + } + return this._updateFormatOut('dz'); +} + +/** + * Set a timeout for processing, in seconds. + * Use a value of zero to continue processing indefinitely, the default behaviour. + * + * The clock starts when libvips opens an input image for processing. + * Time spent waiting for a libuv thread to become available is not included. + * + * @example + * // Ensure processing takes no longer than 3 seconds + * try { + * const data = await sharp(input) + * .blur(1000) + * .timeout({ seconds: 3 }) + * .toBuffer(); + * } catch (err) { + * if (err.message.includes('timeout')) { ... } + * } + * + * @since 0.29.2 + * + * @param {Object} options + * @param {number} options.seconds - Number of seconds after which processing will be stopped + * @returns {Sharp} + */ +function timeout (options) { + if (!is.plainObject(options)) { + throw is.invalidParameterError('options', 'object', options); + } + if (is.integer(options.seconds) && is.inRange(options.seconds, 0, 3600)) { + this.options.timeoutSeconds = options.seconds; + } else { + throw is.invalidParameterError('seconds', 'integer between 0 and 3600', options.seconds); + } + return this; +} + +/** + * Update the output format unless options.force is false, + * in which case revert to input format. + * @private + * @param {string} formatOut + * @param {Object} [options] + * @param {boolean} [options.force=true] - force output format, otherwise attempt to use input format + * @returns {Sharp} + */ +function _updateFormatOut (formatOut, options) { + if (!(is.object(options) && options.force === false)) { + this.options.formatOut = formatOut; + } + return this; +} + +/** + * Update a boolean attribute of the this.options Object. + * @private + * @param {string} key + * @param {boolean} val + * @throws {Error} Invalid key + */ +function _setBooleanOption (key, val) { + if (is.bool(val)) { + this.options[key] = val; + } else { + throw is.invalidParameterError(key, 'boolean', val); + } +} + +/** + * Called by a WriteableStream to notify us it is ready for data. + * @private + */ +function _read () { + if (!this.options.streamOut) { + this.options.streamOut = true; + const stack = Error(); + this._pipeline(undefined, stack); + } +} + +/** + * Invoke the C++ image processing pipeline + * Supports callback, stream and promise variants + * @private + */ +function _pipeline (callback, stack) { + if (typeof callback === 'function') { + // output=file/buffer + if (this._isStreamInput()) { + // output=file/buffer, input=stream + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, data, info); + } + }); + }); + } else { + // output=file/buffer, input=file/buffer + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, data, info); + } + }); + } + return this; + } else if (this.options.streamOut) { + // output=stream + if (this._isStreamInput()) { + // output=stream, input=stream + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + this.emit('error', is.nativeError(err, stack)); + } else { + this.emit('info', info); + this.push(data); + } + this.push(null); + this.on('end', () => this.emit('close')); + }); + }); + } else { + // output=stream, input=file/buffer + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + this.emit('error', is.nativeError(err, stack)); + } else { + this.emit('info', info); + this.push(data); + } + this.push(null); + this.on('end', () => this.emit('close')); + }); + } + return this; + } else { + // output=promise + if (this._isStreamInput()) { + // output=promise, input=stream + return new Promise((resolve, reject) => { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + if (this.options.resolveWithObject) { + resolve({ data, info }); + } else { + resolve(data); + } + } + }); + }); + }); + } else { + // output=promise, input=file/buffer + return new Promise((resolve, reject) => { + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + if (this.options.resolveWithObject) { + resolve({ data, info }); + } else { + resolve(data); + } + } + }); + }); + } + } +} + +/** + * Decorate the Sharp prototype with output-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Public + toFile, + toBuffer, + toUint8Array, + withDensity, + keepExif, + withExif, + withExifMerge, + keepIccProfile, + withIccProfile, + keepGainMap, + withGainMap, + keepXmp, + withXmp, + keepMetadata, + withMetadata, + toFormat, + jpeg, + jp2, + png, + webp, + tiff, + avif, + heif, + jxl, + gif, + raw, + tile, + timeout, + // Private + _updateFormatOut, + _setBooleanOption, + _read, + _pipeline + }); +}; diff --git a/apps/api/.output/node_modules/sharp/dist/output.mjs b/apps/api/.output/node_modules/sharp/dist/output.mjs new file mode 100644 index 0000000..caa31d8 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/output.mjs @@ -0,0 +1,1786 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import path from 'node:path'; +import is from './is.mjs'; +import sharp from './sharp.mjs'; + +const formats = new Map([ + ['heic', 'heif'], + ['heif', 'heif'], + ['avif', 'avif'], + ['jpeg', 'jpeg'], + ['jpg', 'jpeg'], + ['jpe', 'jpeg'], + ['tile', 'tile'], + ['dz', 'tile'], + ['png', 'png'], + ['raw', 'raw'], + ['tiff', 'tiff'], + ['tif', 'tiff'], + ['webp', 'webp'], + ['gif', 'gif'], + ['jp2', 'jp2'], + ['jpx', 'jp2'], + ['j2k', 'jp2'], + ['j2c', 'jp2'], + ['jxl', 'jxl'] +]); + +const jp2Regex = /\.(jp[2x]|j2[kc])$/i; + +const errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG'); + +const bitdepthFromColourCount = (colours) => 1 << 32 - Math.clz32(Math.ceil(Math.log2(colours)) - 1); + +/** + * Write output image data to a file. + * + * If an explicit output format is not selected, it will be inferred from the extension, + * with JPEG, PNG, WebP, AVIF, TIFF, GIF, DZI, and libvips' V format supported. + * Note that raw pixel data is only supported for buffer output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #withmetadata withMetadata} for control over this. + * + * The caller is responsible for ensuring directory structures and permissions exist. + * + * A `Promise` is returned when `callback` is not provided. + * + * @example + * sharp(input) + * .toFile('output.png', (err, info) => { ... }); + * + * @example + * sharp(input) + * .toFile('output.png') + * .then(info => { ... }) + * .catch(err => { ... }); + * + * @param {string} fileOut - the path to write the image data to. + * @param {Function} [callback] - called on completion with two arguments `(err, info)`. + * `info` contains the output image `format`, `size` (bytes), `width`, `height`, + * `channels` and `premultiplied` (indicating if premultiplication was used). + * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`. + * When using the attention crop strategy also contains `attentionX` and `attentionY`, the focal point of the cropped region. + * Animated output will also contain `pageHeight` and `pages`. + * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text. + * @returns {Promise} - when no callback is provided + * @throws {Error} Invalid parameters + */ +function toFile (fileOut, callback) { + let err; + if (!is.string(fileOut)) { + err = new Error('Missing output file path'); + } else if (is.string(this.options.input.file) && path.resolve(this.options.input.file) === path.resolve(fileOut)) { + err = new Error('Cannot use same file for input and output'); + } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2.output.file) { + err = errJp2Save(); + } + if (err) { + if (is.fn(callback)) { + callback(err); + } else { + return Promise.reject(err); + } + } else { + this.options.fileOut = fileOut; + const stack = Error(); + return this._pipeline(callback, stack); + } + return this; +} + +/** + * Write output to a Buffer. + * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported. + * + * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format. + * + * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #withmetadata withMetadata} for control over this. + * + * `callback`, if present, gets three arguments `(err, data, info)` where: + * - `err` is an error, if any. + * - `data` is the output image data. + * - `info` contains the output image `format`, `size` (bytes), `width`, `height`, + * `channels` and `premultiplied` (indicating if premultiplication was used). + * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`. + * Animated output will also contain `pageHeight` and `pages`. + * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text. + * + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * Use {@link #touint8array toUint8Array} for a guaranteed transferable `ArrayBuffer`. + * + * A `Promise` is returned when `callback` is not provided. + * + * @example + * const data = await sharp(input) + * .png() + * .toBuffer(); + * + * @example + * const { data, info } = await sharp(input) + * .png() + * .toBuffer({ resolveWithObject: true }); + * + * @example + * const { data, info } = await sharp('my-image.jpg') + * // output the raw pixels + * .raw() + * .toBuffer({ resolveWithObject: true }); + * + * // create a more type safe way to work with the raw pixel data + * // this will not copy the data, instead it will change `data`s underlying ArrayBuffer + * // so `data` and `pixelArray` point to the same memory location + * const pixelArray = new Uint8ClampedArray(data.buffer); + * + * // When you are done changing the pixelArray, sharp takes the `pixelArray` as an input + * const { width, height, channels } = info; + * await sharp(pixelArray, { raw: { width, height, channels } }) + * .toFile('my-changed-image.jpg'); + * + * @param {Object} [options] + * @param {boolean} [options.resolveWithObject] Resolve the Promise with an Object containing `data` and `info` properties instead of resolving only with `data`. + * @param {Function} [callback] + * @returns {Promise} - when no callback is provided + */ +function toBuffer (options, callback) { + if (is.object(options)) { + this._setBooleanOption('resolveWithObject', options.resolveWithObject); + } else if (this.options.resolveWithObject) { + this.options.resolveWithObject = false; + } + this.options.fileOut = ''; + const stack = Error(); + return this._pipeline(is.fn(options) ? options : callback, stack); +} + +/** + * Write output to a `Uint8Array` backed by a transferable `ArrayBuffer`. + * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported. + * + * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format. + * + * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #keepexif keepExif} and similar methods for control over this. + * + * Resolves with an `Object` containing: + * - `data` is the output image as a `Uint8Array` backed by a transferable `ArrayBuffer`. + * - `info` contains properties relating to the output image such as `width` and `height`. + * + * @since v0.35.0 + * + * @example + * const { data, info } = await sharp(input).toUint8Array(); + * + * @example + * const { data } = await sharp(input) + * .avif() + * .toUint8Array(); + * const base64String = data.toBase64(); + * + * @returns {Promise<{ data: Uint8Array, info: Object }>} + */ +function toUint8Array () { + this.options.resolveWithObject = true; + this.options.typedArrayOut = true; + const stack = Error(); + return this._pipeline(null, stack); +} + +/** + * Set output density (DPI) in EXIF metadata. + * + * @since 0.35.0 + * + * @example + * const data = await sharp(input) + * .withDensity(96) + * .toBuffer(); + * + * @param {number} density Number of pixels per inch (DPI). + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withDensity (density) { + if (is.number(density) && density > 0) { + this.options.withMetadataDensity = density; + } else { + throw is.invalidParameterError('density', 'positive number', density); + } + return this.keepExif(); +} + +/** + * Keep all EXIF metadata from the input image in the output image. + * + * EXIF metadata is unsupported for TIFF output. + * + * @since 0.33.0 + * + * @example + * const outputWithExif = await sharp(inputWithExif) + * .keepExif() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepExif () { + this.options.keepMetadata |= 0b00001; + return this; +} + +/** + * Set EXIF metadata in the output image, ignoring any EXIF in the input image. + * + * @since 0.33.0 + * + * @example + * const dataWithExif = await sharp(input) + * .withExif({ + * IFD0: { + * Copyright: 'The National Gallery' + * }, + * IFD3: { + * GPSLatitudeRef: 'N', + * GPSLatitude: '51/1 30/1 3230/100', + * GPSLongitudeRef: 'W', + * GPSLongitude: '0/1 7/1 4366/100' + * } + * }) + * .toBuffer(); + * + * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withExif (exif) { + if (is.object(exif)) { + for (const [ifd, entries] of Object.entries(exif)) { + if (is.object(entries)) { + for (const [k, v] of Object.entries(entries)) { + if (is.string(v)) { + this.options.withExif[`exif-${ifd.toLowerCase()}-${k}`] = v; + } else { + throw is.invalidParameterError(`${ifd}.${k}`, 'string', v); + } + } + } else { + throw is.invalidParameterError(ifd, 'object', entries); + } + } + } else { + throw is.invalidParameterError('exif', 'object', exif); + } + this.options.withExifMerge = false; + return this.keepExif(); +} + +/** + * Update EXIF metadata from the input image in the output image. + * + * @since 0.33.0 + * + * @example + * const dataWithMergedExif = await sharp(inputWithExif) + * .withExifMerge({ + * IFD0: { + * Copyright: 'The National Gallery' + * } + * }) + * .toBuffer(); + * + * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withExifMerge (exif) { + this.withExif(exif); + this.options.withExifMerge = true; + return this; +} + +/** + * Keep ICC profile from the input image in the output image. + * + * When input and output colour spaces differ, use with {@link /api-colour/#tocolourspace toColourspace} and optionally {@link /api-colour/#pipelinecolourspace pipelineColourspace}. + * + * @since 0.33.0 + * + * @example + * const outputWithIccProfile = await sharp(inputWithIccProfile) + * .keepIccProfile() + * .toBuffer(); + * + * @example + * const cmykOutputWithIccProfile = await sharp(cmykInputWithIccProfile) + * .pipelineColourspace('cmyk') + * .toColourspace('cmyk') + * .keepIccProfile() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepIccProfile () { + this.options.keepMetadata |= 0b01000; + return this; +} + +/** + * Transform using an ICC profile and attach to the output image. + * + * This can either be an absolute filesystem path or + * built-in profile name (`srgb`, `p3`, `cmyk`). + * + * @since 0.33.0 + * + * @example + * const outputWithP3 = await sharp(input) + * .withIccProfile('p3') + * .toBuffer(); + * + * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk). + * @param {Object} [options] + * @param {number} [options.attach=true] Should the ICC profile be included in the output image metadata? + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withIccProfile (icc, options) { + if (is.string(icc)) { + this.options.withIccProfile = icc; + } else { + throw is.invalidParameterError('icc', 'string', icc); + } + this.keepIccProfile(); + if (is.object(options)) { + if (is.defined(options.attach)) { + if (is.bool(options.attach)) { + if (!options.attach) { + this.options.keepMetadata &= ~0b01000; + } + } else { + throw is.invalidParameterError('attach', 'boolean', options.attach); + } + } + } + return this; +} + +/** + * If the input contains gain map metadata, attempt to process the image and gain map separately, + * recombining them into a single output image. + * + * This approach is faster and should produce better results than {@link #withgainmap withGainMap}, + * however not all operations are supported. + * + * Only JPEG input and output are supported. + * JPEG output options other than `quality` are ignored. + * + * This feature is experimental and the API may change. + * + * @since 0.35.0 + * + * @example + * const outputWithResizedGainMap = await sharp(inputWithGainMap) + * .keepGainMap() + * .resize({ width: 64 }) + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepGainMap() { + this.options.keepGainMap = true; + this.options.withGainMap = false; + this.options.keepMetadata |= 0b100000; + return this; +} + +/** + * If the input contains gain map metadata, use it to convert the main image to HDR (High Dynamic Range) before further processing. + * The input gain map is discarded. + * + * If the output is JPEG, generate and attach a new ISO 21496-1 gain map. + * JPEG output options other than `quality` are ignored. + * + * This feature is experimental and the API may change. + * + * @since 0.35.0 + * + * @example + * const outputWithRegeneratedGainMap = await sharp(inputWithGainMap) + * .withGainMap() + * .toBuffer(); + * + * @returns {Sharp} + */ +function withGainMap() { + this.options.withGainMap = true; + this.options.keepGainMap = false; + this.options.colourspace = 'scrgb'; + return this; +} + +/** + * Keep XMP metadata from the input image in the output image. + * + * @since 0.34.3 + * + * @example + * const outputWithXmp = await sharp(inputWithXmp) + * .keepXmp() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepXmp () { + this.options.keepMetadata |= 0b00010; + return this; +} + +/** + * Set XMP metadata in the output image. + * + * Supported by PNG, JPEG, WebP, and TIFF output. + * + * @since 0.34.3 + * + * @example + * const xmpString = ` + * + * + * + * + * John Doe + * + * + * `; + * + * const data = await sharp(input) + * .withXmp(xmpString) + * .toBuffer(); + * + * @param {string} xmp String containing XMP metadata to be embedded in the output image. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withXmp (xmp) { + if (is.string(xmp) && xmp.length > 0) { + this.options.withXmp = xmp; + this.options.keepMetadata |= 0b00010; + } else { + throw is.invalidParameterError('xmp', 'non-empty string', xmp); + } + return this; +} + +/** + * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image. + * + * The default behaviour, when `keepMetadata` is not used, is to convert to the device-independent + * sRGB colour space and strip all metadata, including the removal of any ICC profile. + * + * @since 0.33.0 + * + * @example + * const outputWithMetadata = await sharp(inputWithMetadata) + * .keepMetadata() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepMetadata () { + this.options.keepMetadata |= 0b11111; + return this; +} + +/** + * Keep most metadata (EXIF, XMP, IPTC) from the input image in the output image. + * + * This will also convert to and add a web-friendly sRGB ICC profile if appropriate. + * + * Allows orientation and density to be set or updated. + * + * @example + * const outputSrgbWithMetadata = await sharp(inputRgbWithMetadata) + * .withMetadata() + * .toBuffer(); + * + * @example + * // Set output metadata to 96 DPI + * const data = await sharp(input) + * .withMetadata({ density: 96 }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.orientation] Used to update the EXIF `Orientation` tag, integer between 1 and 8. + * @param {number} [options.density] Number of pixels per inch (DPI). + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withMetadata (options) { + this.keepMetadata(); + this.withIccProfile('srgb'); + if (is.object(options)) { + if (is.defined(options.orientation)) { + if (is.integer(options.orientation) && is.inRange(options.orientation, 1, 8)) { + this.options.withMetadataOrientation = options.orientation; + } else { + throw is.invalidParameterError('orientation', 'integer between 1 and 8', options.orientation); + } + } + if (is.defined(options.density)) { + if (is.number(options.density) && options.density > 0) { + this.options.withMetadataDensity = options.density; + } else { + throw is.invalidParameterError('density', 'positive number', options.density); + } + } + if (is.defined(options.icc)) { + this.withIccProfile(options.icc); + } + if (is.defined(options.exif)) { + this.withExifMerge(options.exif); + } + } + return this; +} + +/** + * Force output to a given format. + * + * @example + * // Convert any input to PNG output + * const data = await sharp(input) + * .toFormat('png') + * .toBuffer(); + * + * @param {(string|Object)} format - as a string or an Object with an 'id' attribute + * @param {Object} options - output options + * @returns {Sharp} + * @throws {Error} unsupported format or options + */ +function toFormat (format, options) { + const actualFormat = formats.get((is.object(format) && is.string(format.id) ? format.id : format).toLowerCase()); + if (!actualFormat) { + throw is.invalidParameterError('format', `one of: ${[...formats.keys()].join(', ')}`, format); + } + return this[actualFormat](options); +} + +/** + * Use these JPEG options for output image. + * + * @example + * // Convert any input to very high quality JPEG output + * const data = await sharp(input) + * .jpeg({ + * quality: 100, + * chromaSubsampling: '4:4:4' + * }) + * .toBuffer(); + * + * @example + * // Use mozjpeg to reduce output JPEG file size (slower) + * const data = await sharp(input) + * .jpeg({ mozjpeg: true }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {string} [options.chromaSubsampling='4:2:0'] - set to '4:4:4' to prevent chroma subsampling otherwise defaults to '4:2:0' chroma subsampling + * @param {boolean} [options.optimiseCoding=true] - optimise Huffman coding tables + * @param {boolean} [options.optimizeCoding=true] - alternative spelling of optimiseCoding + * @param {boolean} [options.mozjpeg=false] - use mozjpeg defaults, equivalent to `{ trellisQuantisation: true, overshootDeringing: true, optimiseScans: true, quantisationTable: 3 }` + * @param {boolean} [options.trellisQuantisation=false] - apply trellis quantisation + * @param {boolean} [options.overshootDeringing=false] - apply overshoot deringing + * @param {boolean} [options.optimiseScans=false] - optimise progressive scans, forces progressive + * @param {boolean} [options.optimizeScans=false] - alternative spelling of optimiseScans + * @param {number} [options.quantisationTable=0] - quantization table to use, integer 0-8 + * @param {number} [options.quantizationTable=0] - alternative spelling of quantisationTable + * @param {boolean} [options.force=true] - force JPEG output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jpeg (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.jpegQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.progressive)) { + this._setBooleanOption('jpegProgressive', options.progressive); + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.jpegChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + const optimiseCoding = is.bool(options.optimizeCoding) ? options.optimizeCoding : options.optimiseCoding; + if (is.defined(optimiseCoding)) { + this._setBooleanOption('jpegOptimiseCoding', optimiseCoding); + } + if (is.defined(options.mozjpeg)) { + if (is.bool(options.mozjpeg)) { + if (options.mozjpeg) { + this.options.jpegTrellisQuantisation = true; + this.options.jpegOvershootDeringing = true; + this.options.jpegOptimiseScans = true; + this.options.jpegProgressive = true; + this.options.jpegQuantisationTable = 3; + } + } else { + throw is.invalidParameterError('mozjpeg', 'boolean', options.mozjpeg); + } + } + const trellisQuantisation = is.bool(options.trellisQuantization) ? options.trellisQuantization : options.trellisQuantisation; + if (is.defined(trellisQuantisation)) { + this._setBooleanOption('jpegTrellisQuantisation', trellisQuantisation); + } + if (is.defined(options.overshootDeringing)) { + this._setBooleanOption('jpegOvershootDeringing', options.overshootDeringing); + } + const optimiseScans = is.bool(options.optimizeScans) ? options.optimizeScans : options.optimiseScans; + if (is.defined(optimiseScans)) { + this._setBooleanOption('jpegOptimiseScans', optimiseScans); + if (optimiseScans) { + this.options.jpegProgressive = true; + } + } + const quantisationTable = is.number(options.quantizationTable) ? options.quantizationTable : options.quantisationTable; + if (is.defined(quantisationTable)) { + if (is.integer(quantisationTable) && is.inRange(quantisationTable, 0, 8)) { + this.options.jpegQuantisationTable = quantisationTable; + } else { + throw is.invalidParameterError('quantisationTable', 'integer between 0 and 8', quantisationTable); + } + } + } + return this._updateFormatOut('jpeg', options); +} + +/** + * Use these PNG options for output image. + * + * By default, PNG output is full colour at 8 bits per pixel. + * + * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. + * Set `palette` to `true` for slower, indexed PNG output. + * + * For 16 bits per pixel output, convert to `rgb16` via + * {@link /api-colour/#tocolourspace toColourspace}. + * + * @example + * // Convert any input to full colour PNG output + * const data = await sharp(input) + * .png() + * .toBuffer(); + * + * @example + * // Convert any input to indexed PNG output (slower) + * const data = await sharp(input) + * .png({ palette: true }) + * .toBuffer(); + * + * @example + * // Output 16 bits per pixel RGB(A) + * const data = await sharp(input) + * .toColourspace('rgb16') + * .png() + * .toBuffer(); + * + * @param {Object} [options] + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest) + * @param {boolean} [options.adaptiveFiltering=false] - use adaptive row filtering + * @param {boolean} [options.palette=false] - quantise to a palette-based image with alpha transparency support + * @param {number} [options.quality=100] - use the lowest number of colours needed to achieve given quality, sets `palette` to `true` + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest), sets `palette` to `true` + * @param {number} [options.colours=256] - maximum number of palette entries, sets `palette` to `true` + * @param {number} [options.colors=256] - alternative spelling of `options.colours`, sets `palette` to `true` + * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, sets `palette` to `true` + * @param {boolean} [options.force=true] - force PNG output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function png (options) { + if (is.object(options)) { + if (is.defined(options.progressive)) { + this._setBooleanOption('pngProgressive', options.progressive); + } + if (is.defined(options.compressionLevel)) { + if (is.integer(options.compressionLevel) && is.inRange(options.compressionLevel, 0, 9)) { + this.options.pngCompressionLevel = options.compressionLevel; + } else { + throw is.invalidParameterError('compressionLevel', 'integer between 0 and 9', options.compressionLevel); + } + } + if (is.defined(options.adaptiveFiltering)) { + this._setBooleanOption('pngAdaptiveFiltering', options.adaptiveFiltering); + } + const colours = options.colours || options.colors; + if (is.defined(colours)) { + if (is.integer(colours) && is.inRange(colours, 2, 256)) { + this.options.pngBitdepth = bitdepthFromColourCount(colours); + } else { + throw is.invalidParameterError('colours', 'integer between 2 and 256', colours); + } + } + if (is.defined(options.palette)) { + this._setBooleanOption('pngPalette', options.palette); + } else if ([options.quality, options.effort, options.colours, options.colors, options.dither].some(is.defined)) { + this._setBooleanOption('pngPalette', true); + } + if (this.options.pngPalette) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 0, 100)) { + this.options.pngQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 0 and 100', options.quality); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) { + this.options.pngEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort); + } + } + if (is.defined(options.dither)) { + if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { + this.options.pngDither = options.dither; + } else { + throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither); + } + } + } + } + return this._updateFormatOut('png', options); +} + +/** + * Use these WebP options for output image. + * + * @example + * // Convert any input to lossless WebP output + * const data = await sharp(input) + * .webp({ lossless: true }) + * .toBuffer(); + * + * @example + * // Optimise the file size of an animated WebP + * const outputWebp = await sharp(inputWebp, { animated: true }) + * .webp({ effort: 6 }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {number} [options.alphaQuality=100] - quality of alpha layer, integer 0-100 + * @param {boolean} [options.lossless=false] - use lossless compression mode + * @param {boolean} [options.nearLossless=false] - use near_lossless compression mode + * @param {boolean} [options.smartSubsample=false] - use high quality chroma subsampling + * @param {boolean} [options.smartDeblock=false] - auto-adjust the deblocking filter, can improve low contrast edges (slow) + * @param {string} [options.preset='default'] - named preset for preprocessing/filtering, one of: default, photo, picture, drawing, icon, text + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 6 (slowest) + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @param {boolean} [options.minSize=false] - prevent use of animation key frames to minimise file size (slow) + * @param {boolean} [options.mixed=false] - allow mixture of lossy and lossless animation frames (slow) + * @param {boolean} [options.exact=false] - preserve the colour data in transparent pixels + * @param {boolean} [options.force=true] - force WebP output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function webp (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.webpQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.alphaQuality)) { + if (is.integer(options.alphaQuality) && is.inRange(options.alphaQuality, 0, 100)) { + this.options.webpAlphaQuality = options.alphaQuality; + } else { + throw is.invalidParameterError('alphaQuality', 'integer between 0 and 100', options.alphaQuality); + } + } + if (is.defined(options.lossless)) { + this._setBooleanOption('webpLossless', options.lossless); + } + if (is.defined(options.nearLossless)) { + this._setBooleanOption('webpNearLossless', options.nearLossless); + } + if (is.defined(options.smartSubsample)) { + this._setBooleanOption('webpSmartSubsample', options.smartSubsample); + } + if (is.defined(options.smartDeblock)) { + this._setBooleanOption('webpSmartDeblock', options.smartDeblock); + } + if (is.defined(options.preset)) { + if (is.string(options.preset) && is.inArray(options.preset, ['default', 'photo', 'picture', 'drawing', 'icon', 'text'])) { + this.options.webpPreset = options.preset; + } else { + throw is.invalidParameterError('preset', 'one of: default, photo, picture, drawing, icon, text', options.preset); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 0, 6)) { + this.options.webpEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 0 and 6', options.effort); + } + } + if (is.defined(options.minSize)) { + this._setBooleanOption('webpMinSize', options.minSize); + } + if (is.defined(options.mixed)) { + this._setBooleanOption('webpMixed', options.mixed); + } + if (is.defined(options.exact)) { + this._setBooleanOption('webpExact', options.exact); + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('webp', options); +} + +/** + * Use these GIF options for the output image. + * + * The first entry in the palette is reserved for transparency. + * + * The palette of the input image will be re-used if possible. + * + * @since 0.30.0 + * + * @example + * // Convert PNG to GIF + * await sharp(pngBuffer) + * .gif() + * .toBuffer(); + * + * @example + * // Convert animated WebP to animated GIF + * await sharp('animated.webp', { animated: true }) + * .toFile('animated.gif'); + * + * @example + * // Create a 128x128, cropped, non-dithered, animated thumbnail of an animated GIF + * const out = await sharp('in.gif', { animated: true }) + * .resize({ width: 128, height: 128 }) + * .gif({ dither: 0 }) + * .toBuffer(); + * + * @example + * // Lossy file size reduction of animated GIF + * await sharp('in.gif', { animated: true }) + * .gif({ interFrameMaxError: 8 }) + * .toFile('optim.gif'); + * + * @param {Object} [options] - output options + * @param {boolean} [options.reuse=true] - re-use existing palette, otherwise generate new (slow) + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {number} [options.colours=256] - maximum number of palette entries, including transparency, between 2 and 256 + * @param {number} [options.colors=256] - alternative spelling of `options.colours` + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest) + * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most) + * @param {number} [options.interFrameMaxError=0] - maximum inter-frame error for transparency, between 0 (lossless) and 32 + * @param {number} [options.interPaletteMaxError=3] - maximum inter-palette error for palette reuse, between 0 and 256 + * @param {boolean} [options.keepDuplicateFrames=false] - keep duplicate frames in the output instead of combining them + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @param {boolean} [options.force=true] - force GIF output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function gif (options) { + if (is.object(options)) { + if (is.defined(options.reuse)) { + this._setBooleanOption('gifReuse', options.reuse); + } + if (is.defined(options.progressive)) { + this._setBooleanOption('gifProgressive', options.progressive); + } + const colours = options.colours || options.colors; + if (is.defined(colours)) { + if (is.integer(colours) && is.inRange(colours, 2, 256)) { + this.options.gifBitdepth = bitdepthFromColourCount(colours); + } else { + throw is.invalidParameterError('colours', 'integer between 2 and 256', colours); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) { + this.options.gifEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort); + } + } + if (is.defined(options.dither)) { + if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { + this.options.gifDither = options.dither; + } else { + throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither); + } + } + if (is.defined(options.interFrameMaxError)) { + if (is.number(options.interFrameMaxError) && is.inRange(options.interFrameMaxError, 0, 32)) { + this.options.gifInterFrameMaxError = options.interFrameMaxError; + } else { + throw is.invalidParameterError('interFrameMaxError', 'number between 0.0 and 32.0', options.interFrameMaxError); + } + } + if (is.defined(options.interPaletteMaxError)) { + if (is.number(options.interPaletteMaxError) && is.inRange(options.interPaletteMaxError, 0, 256)) { + this.options.gifInterPaletteMaxError = options.interPaletteMaxError; + } else { + throw is.invalidParameterError('interPaletteMaxError', 'number between 0.0 and 256.0', options.interPaletteMaxError); + } + } + if (is.defined(options.keepDuplicateFrames)) { + if (is.bool(options.keepDuplicateFrames)) { + this._setBooleanOption('gifKeepDuplicateFrames', options.keepDuplicateFrames); + } else { + throw is.invalidParameterError('keepDuplicateFrames', 'boolean', options.keepDuplicateFrames); + } + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('gif', options); +} + +/** + * Use these JP2 options for output image. + * + * Requires libvips compiled with support for OpenJPEG. + * The prebuilt binaries do not include this - see + * {@link /install#custom-libvips installing a custom libvips}. + * + * @example + * // Convert any input to lossless JP2 output + * const data = await sharp(input) + * .jp2({ lossless: true }) + * .toBuffer(); + * + * @example + * // Convert any input to very high quality JP2 output + * const data = await sharp(input) + * .jp2({ + * quality: 100, + * chromaSubsampling: '4:4:4' + * }) + * .toBuffer(); + * + * @since 0.29.1 + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression mode + * @param {number} [options.tileWidth=512] - horizontal tile size + * @param {number} [options.tileHeight=512] - vertical tile size + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jp2 (options) { + /* node:coverage ignore next 41 */ + if (!this.constructor.format.jp2.output.buffer) { + throw errJp2Save(); + } + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.jp2Quality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.jp2Lossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.tileWidth)) { + if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) { + this.options.jp2TileWidth = options.tileWidth; + } else { + throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth); + } + } + if (is.defined(options.tileHeight)) { + if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) { + this.options.jp2TileHeight = options.tileHeight; + } else { + throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight); + } + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.jp2ChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + } + return this._updateFormatOut('jp2', options); +} + +/** + * Set animation options if available. + * @private + * + * @param {Object} [source] - output options + * @param {number} [source.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number[]} [source.delay] - list of delays between animation frames (in milliseconds) + * @param {Object} [target] - target object for valid options + * @throws {Error} Invalid options + */ +function trySetAnimationOptions (source, target) { + if (is.object(source) && is.defined(source.loop)) { + if (is.integer(source.loop) && is.inRange(source.loop, 0, 65535)) { + target.loop = source.loop; + } else { + throw is.invalidParameterError('loop', 'integer between 0 and 65535', source.loop); + } + } + if (is.object(source) && is.defined(source.delay)) { + // We allow singular values as well + if (is.integer(source.delay) && is.inRange(source.delay, 0, 65535)) { + target.delay = [source.delay]; + } else if ( + Array.isArray(source.delay) && + is.inRange(source.delay.length, 1, 1000000) && + source.delay.every(is.integer) && + source.delay.every(v => is.inRange(v, 0, 65535))) { + target.delay = source.delay; + } else { + throw is.invalidParameterError('delay', 'integer or an array of integers between 0 and 65535', source.delay); + } + } +} + +/** + * Use these TIFF options for output image. + * + * The `density` can be set in pixels/inch via {@link #withmetadata withMetadata} + * instead of providing `xres` and `yres` in pixels/mm. + * + * @example + * // Convert SVG input to LZW-compressed, 1 bit per pixel TIFF output + * sharp('input.svg') + * .tiff({ + * compression: 'lzw', + * bitdepth: 1 + * }) + * .toFile('1-bpp-output.tiff') + * .then(info => { ... }); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.force=true] - force TIFF output, otherwise attempt to use input format + * @param {string} [options.compression='jpeg'] - compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k + * @param {boolean} [options.bigtiff=false] - use BigTIFF variant (has no effect when compression is none) + * @param {string} [options.predictor='horizontal'] - compression predictor options: none, horizontal, float + * @param {boolean} [options.pyramid=false] - write an image pyramid + * @param {boolean} [options.tile=false] - write a tiled tiff + * @param {number} [options.tileWidth=256] - horizontal tile size, valid values are integers in the range 1-32768 + * @param {number} [options.tileHeight=256] - vertical tile size, valid values are integers in the range 1-32768 + * @param {number} [options.xres=1.0] - horizontal resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 + * @param {number} [options.yres=1.0] - vertical resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 + * @param {string} [options.resolutionUnit='inch'] - resolution unit options: inch, cm + * @param {number} [options.bitdepth=0] - reduce bitdepth to 1, 2 or 4 bit + * @param {boolean} [options.miniswhite=false] - write 1-bit images as miniswhite + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function tiff (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.tiffQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.bitdepth)) { + if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4])) { + this.options.tiffBitdepth = options.bitdepth; + } else { + throw is.invalidParameterError('bitdepth', '1, 2 or 4', options.bitdepth); + } + } + // tiling + if (is.defined(options.tile)) { + this._setBooleanOption('tiffTile', options.tile); + } + if (is.defined(options.tileWidth)) { + if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) { + this.options.tiffTileWidth = options.tileWidth; + } else { + throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth); + } + } + if (is.defined(options.tileHeight)) { + if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) { + this.options.tiffTileHeight = options.tileHeight; + } else { + throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight); + } + } + // miniswhite + if (is.defined(options.miniswhite)) { + this._setBooleanOption('tiffMiniswhite', options.miniswhite); + } + // pyramid + if (is.defined(options.pyramid)) { + this._setBooleanOption('tiffPyramid', options.pyramid); + } + // resolution + if (is.defined(options.xres)) { + if (is.number(options.xres) && is.inRange(options.xres, 0.001, 1000000)) { + this.options.tiffXres = options.xres; + } else { + throw is.invalidParameterError('xres', 'number between 0.001 and 1000000', options.xres); + } + } + if (is.defined(options.yres)) { + if (is.number(options.yres) && is.inRange(options.yres, 0.001, 1000000)) { + this.options.tiffYres = options.yres; + } else { + throw is.invalidParameterError('yres', 'number between 0.001 and 1000000', options.yres); + } + } + // compression + if (is.defined(options.compression)) { + if (is.string(options.compression) && is.inArray(options.compression, ['none', 'jpeg', 'deflate', 'packbits', 'ccittfax4', 'lzw', 'webp', 'zstd', 'jp2k'])) { + this.options.tiffCompression = options.compression; + } else { + throw is.invalidParameterError('compression', 'one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k', options.compression); + } + } + // bigtiff + if (is.defined(options.bigtiff)) { + this._setBooleanOption('tiffBigtiff', options.bigtiff); + } + // predictor + if (is.defined(options.predictor)) { + if (is.string(options.predictor) && is.inArray(options.predictor, ['none', 'horizontal', 'float'])) { + this.options.tiffPredictor = options.predictor; + } else { + throw is.invalidParameterError('predictor', 'one of: none, horizontal, float', options.predictor); + } + } + // resolutionUnit + if (is.defined(options.resolutionUnit)) { + if (is.string(options.resolutionUnit) && is.inArray(options.resolutionUnit, ['inch', 'cm'])) { + this.options.tiffResolutionUnit = options.resolutionUnit; + } else { + throw is.invalidParameterError('resolutionUnit', 'one of: inch, cm', options.resolutionUnit); + } + } + } + return this._updateFormatOut('tiff', options); +} + +/** + * Use these AVIF options for output image. + * + * AVIF image sequences are not supported. + * + * @example + * const data = await sharp(input) + * .avif({ effort: 2 }) + * .toBuffer(); + * + * @example + * const data = await sharp(input) + * .avif({ lossless: true }) + * .toBuffer(); + * + * @since 0.27.0 + * + * @param {Object} [options] - output options + * @param {number} [options.quality=50] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest) + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit + * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim' + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function avif (options) { + return this.heif({ ...options, compression: 'av1' }); +} + +/** + * Use these HEIF options for output image. + * + * Support for patent-encumbered HEIC images using `hevc` compression requires the use of a + * globally-installed libvips compiled with support for libheif, libde265 and x265. + * + * @example + * const data = await sharp(input) + * .heif({ compression: 'hevc' }) + * .toBuffer(); + * + * @since 0.23.0 + * + * @param {Object} options - output options + * @param {string} options.compression - compression format: av1, hevc + * @param {number} [options.quality=50] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest) + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit + * @param {string} [options.tune='auto'] - tune output for a quality metric, one of 'auto' (default), 'iq', 'psnr' or 'ssim' + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function heif (options) { + if (is.object(options)) { + if (is.string(options.compression) && is.inArray(options.compression, ['av1', 'hevc'])) { + this.options.heifCompression = options.compression; + } else { + throw is.invalidParameterError('compression', 'one of: av1, hevc', options.compression); + } + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.heifQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.heifLossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 0, 9)) { + this.options.heifEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 0 and 9', options.effort); + } + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.heifChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + if (is.defined(options.bitdepth)) { + if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) { + this.options.heifBitdepth = options.bitdepth; + } else { + throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth); + } + } + if (is.defined(options.tune)) { + if (is.string(options.tune) && is.inArray(options.tune, ['auto', 'iq', 'psnr', 'ssim'])) { + if (this.options.heifLossless && options.tune === 'iq') { + this.options.heifTune = 'ssim'; + } else { + this.options.heifTune = options.tune; + } + } else { + throw is.invalidParameterError('tune', 'one of: auto, iq, psnr, ssim', options.tune); + } + } + } else { + throw is.invalidParameterError('options', 'Object', options); + } + return this._updateFormatOut('heif', options); +} + +/** + * Use these JPEG-XL (JXL) options for output image. + * + * This feature is experimental, please do not use in production systems. + * + * Requires libvips compiled with support for libjxl. + * The prebuilt binaries do not include this - see + * {@link /install/#custom-libvips installing a custom libvips}. + * + * @since 0.31.3 + * + * @param {Object} [options] - output options + * @param {number} [options.distance=1.0] - maximum encoding error, between 0 (highest quality) and 15 (lowest quality) + * @param {number} [options.quality] - calculate `distance` based on JPEG-like quality, between 1 and 100, overrides distance if specified + * @param {number} [options.decodingTier=0] - target decode speed tier, between 0 (highest quality) and 4 (lowest quality) + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 9 (slowest) + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jxl (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + // https://github.com/libjxl/libjxl/blob/0aeea7f180bafd6893c1db8072dcb67d2aa5b03d/tools/cjxl_main.cc#L640-L644 + this.options.jxlDistance = options.quality >= 30 + ? 0.1 + (100 - options.quality) * 0.09 + : 53 / 3000 * options.quality * options.quality - 23 / 20 * options.quality + 25; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } else if (is.defined(options.distance)) { + if (is.number(options.distance) && is.inRange(options.distance, 0, 15)) { + this.options.jxlDistance = options.distance; + } else { + throw is.invalidParameterError('distance', 'number between 0.0 and 15.0', options.distance); + } + } + if (is.defined(options.decodingTier)) { + if (is.integer(options.decodingTier) && is.inRange(options.decodingTier, 0, 4)) { + this.options.jxlDecodingTier = options.decodingTier; + } else { + throw is.invalidParameterError('decodingTier', 'integer between 0 and 4', options.decodingTier); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.jxlLossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 9)) { + this.options.jxlEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 9', options.effort); + } + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('jxl', options); +} + +/** + * Force output to be raw, uncompressed pixel data. + * Pixel ordering is left-to-right, top-to-bottom, without padding. + * Channel ordering will be RGB or RGBA for non-greyscale colourspaces. + * + * @example + * // Extract raw, unsigned 8-bit RGB pixel data from JPEG input + * const { data, info } = await sharp('input.jpg') + * .raw() + * .toBuffer({ resolveWithObject: true }); + * + * @example + * // Extract alpha channel as raw, unsigned 16-bit pixel data from PNG input + * const data = await sharp('input.png') + * .ensureAlpha() + * .extractChannel(3) + * .toColourspace('b-w') + * .raw({ depth: 'ushort' }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {string} [options.depth='uchar'] - bit depth, one of: char, uchar (default), short, ushort, int, uint, float, complex, double, dpcomplex + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function raw (options) { + if (is.object(options)) { + if (is.defined(options.depth)) { + if (is.string(options.depth) && is.inArray(options.depth, + ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'float', 'complex', 'double', 'dpcomplex'] + )) { + this.options.rawDepth = options.depth; + } else { + throw is.invalidParameterError('depth', 'one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex', options.depth); + } + } + } + return this._updateFormatOut('raw'); +} + +/** + * Use tile-based deep zoom (image pyramid) output. + * + * Set the format and options for tile images via the `toFormat`, `jpeg`, `png` or `webp` functions. + * Use a `.zip` or `.szi` file extension with `toFile` to write to a compressed archive file format. + * + * The container will be set to `zip` when the output is a Buffer or Stream, otherwise it will default to `fs`. + * + * @example + * sharp('input.tiff') + * .png() + * .tile({ + * size: 512 + * }) + * .toFile('output.dz', function(err, info) { + * // output.dzi is the Deep Zoom XML definition + * // output_files contains 512x512 tiles grouped by zoom level + * }); + * + * @example + * const zipFileWithTiles = await sharp(input) + * .tile({ basename: "tiles" }) + * .toBuffer(); + * + * @example + * const iiififier = sharp().tile({ layout: "iiif" }); + * readableStream + * .pipe(iiififier) + * .pipe(writeableStream); + * + * @param {Object} [options] + * @param {number} [options.size=256] tile size in pixels, a value between 1 and 8192. + * @param {number} [options.overlap=0] tile overlap in pixels, a value between 0 and 8192. + * @param {number} [options.angle=0] tile angle of rotation, must be a multiple of 90. + * @param {string|Object} [options.background={r: 255, g: 255, b: 255, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to white without transparency. + * @param {string} [options.depth] how deep to make the pyramid, possible values are `onepixel`, `onetile` or `one`, default based on layout. + * @param {number} [options.skipBlanks=-1] Threshold to skip tile generation. Range is 0-255 for 8-bit images, 0-65535 for 16-bit images. Default is 5 for `google` layout, -1 (no skip) otherwise. + * @param {string} [options.container='fs'] tile container, with value `fs` (filesystem) or `zip` (compressed file). + * @param {string} [options.layout='dz'] filesystem layout, possible values are `dz`, `iiif`, `iiif3`, `zoomify` or `google`. + * @param {boolean} [options.centre=false] centre image in tile. + * @param {boolean} [options.center=false] alternative spelling of centre. + * @param {string} [options.id='https://example.com/iiif'] when `layout` is `iiif`/`iiif3`, sets the `@id`/`id` attribute of `info.json` + * @param {string} [options.basename] the name of the directory within the zip file when container is `zip`. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function tile (options) { + if (is.object(options)) { + // Size of square tiles, in pixels + if (is.defined(options.size)) { + if (is.integer(options.size) && is.inRange(options.size, 1, 8192)) { + this.options.tileSize = options.size; + } else { + throw is.invalidParameterError('size', 'integer between 1 and 8192', options.size); + } + } + // Overlap of tiles, in pixels + if (is.defined(options.overlap)) { + if (is.integer(options.overlap) && is.inRange(options.overlap, 0, 8192)) { + if (options.overlap > this.options.tileSize) { + throw is.invalidParameterError('overlap', `<= size (${this.options.tileSize})`, options.overlap); + } + this.options.tileOverlap = options.overlap; + } else { + throw is.invalidParameterError('overlap', 'integer between 0 and 8192', options.overlap); + } + } + // Container + if (is.defined(options.container)) { + if (is.string(options.container) && is.inArray(options.container, ['fs', 'zip'])) { + this.options.tileContainer = options.container; + } else { + throw is.invalidParameterError('container', 'one of: fs, zip', options.container); + } + } + // Layout + if (is.defined(options.layout)) { + if (is.string(options.layout) && is.inArray(options.layout, ['dz', 'google', 'iiif', 'iiif3', 'zoomify'])) { + this.options.tileLayout = options.layout; + } else { + throw is.invalidParameterError('layout', 'one of: dz, google, iiif, iiif3, zoomify', options.layout); + } + } + // Angle of rotation, + if (is.defined(options.angle)) { + if (is.integer(options.angle) && !(options.angle % 90)) { + this.options.tileAngle = options.angle; + } else { + throw is.invalidParameterError('angle', 'positive/negative multiple of 90', options.angle); + } + } + // Background colour + this._setBackgroundColourOption('tileBackground', options.background); + // Depth of tiles + if (is.defined(options.depth)) { + if (is.string(options.depth) && is.inArray(options.depth, ['onepixel', 'onetile', 'one'])) { + this.options.tileDepth = options.depth; + } else { + throw is.invalidParameterError('depth', 'one of: onepixel, onetile, one', options.depth); + } + } + // Threshold to skip blank tiles + if (is.defined(options.skipBlanks)) { + if (is.integer(options.skipBlanks) && is.inRange(options.skipBlanks, -1, 65535)) { + this.options.tileSkipBlanks = options.skipBlanks; + } else { + throw is.invalidParameterError('skipBlanks', 'integer between -1 and 255/65535', options.skipBlanks); + } + } else if (is.defined(options.layout) && options.layout === 'google') { + this.options.tileSkipBlanks = 5; + } + // Center image in tile + const centre = is.bool(options.center) ? options.center : options.centre; + if (is.defined(centre)) { + this._setBooleanOption('tileCentre', centre); + } + // @id attribute for IIIF layout + if (is.defined(options.id)) { + if (is.string(options.id)) { + this.options.tileId = options.id; + } else { + throw is.invalidParameterError('id', 'string', options.id); + } + } + // Basename for zip container + if (is.defined(options.basename)) { + if (is.string(options.basename)) { + this.options.tileBasename = options.basename; + } else { + throw is.invalidParameterError('basename', 'string', options.basename); + } + } + } + // Format + if (is.inArray(this.options.formatOut, ['jpeg', 'png', 'webp'])) { + this.options.tileFormat = this.options.formatOut; + } else if (this.options.formatOut !== 'input') { + throw is.invalidParameterError('format', 'one of: jpeg, png, webp', this.options.formatOut); + } + return this._updateFormatOut('dz'); +} + +/** + * Set a timeout for processing, in seconds. + * Use a value of zero to continue processing indefinitely, the default behaviour. + * + * The clock starts when libvips opens an input image for processing. + * Time spent waiting for a libuv thread to become available is not included. + * + * @example + * // Ensure processing takes no longer than 3 seconds + * try { + * const data = await sharp(input) + * .blur(1000) + * .timeout({ seconds: 3 }) + * .toBuffer(); + * } catch (err) { + * if (err.message.includes('timeout')) { ... } + * } + * + * @since 0.29.2 + * + * @param {Object} options + * @param {number} options.seconds - Number of seconds after which processing will be stopped + * @returns {Sharp} + */ +function timeout (options) { + if (!is.plainObject(options)) { + throw is.invalidParameterError('options', 'object', options); + } + if (is.integer(options.seconds) && is.inRange(options.seconds, 0, 3600)) { + this.options.timeoutSeconds = options.seconds; + } else { + throw is.invalidParameterError('seconds', 'integer between 0 and 3600', options.seconds); + } + return this; +} + +/** + * Update the output format unless options.force is false, + * in which case revert to input format. + * @private + * @param {string} formatOut + * @param {Object} [options] + * @param {boolean} [options.force=true] - force output format, otherwise attempt to use input format + * @returns {Sharp} + */ +function _updateFormatOut (formatOut, options) { + if (!(is.object(options) && options.force === false)) { + this.options.formatOut = formatOut; + } + return this; +} + +/** + * Update a boolean attribute of the this.options Object. + * @private + * @param {string} key + * @param {boolean} val + * @throws {Error} Invalid key + */ +function _setBooleanOption (key, val) { + if (is.bool(val)) { + this.options[key] = val; + } else { + throw is.invalidParameterError(key, 'boolean', val); + } +} + +/** + * Called by a WriteableStream to notify us it is ready for data. + * @private + */ +function _read () { + if (!this.options.streamOut) { + this.options.streamOut = true; + const stack = Error(); + this._pipeline(undefined, stack); + } +} + +/** + * Invoke the C++ image processing pipeline + * Supports callback, stream and promise variants + * @private + */ +function _pipeline (callback, stack) { + if (typeof callback === 'function') { + // output=file/buffer + if (this._isStreamInput()) { + // output=file/buffer, input=stream + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, data, info); + } + }); + }); + } else { + // output=file/buffer, input=file/buffer + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, data, info); + } + }); + } + return this; + } else if (this.options.streamOut) { + // output=stream + if (this._isStreamInput()) { + // output=stream, input=stream + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + this.emit('error', is.nativeError(err, stack)); + } else { + this.emit('info', info); + this.push(data); + } + this.push(null); + this.on('end', () => this.emit('close')); + }); + }); + } else { + // output=stream, input=file/buffer + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + this.emit('error', is.nativeError(err, stack)); + } else { + this.emit('info', info); + this.push(data); + } + this.push(null); + this.on('end', () => this.emit('close')); + }); + } + return this; + } else { + // output=promise + if (this._isStreamInput()) { + // output=promise, input=stream + return new Promise((resolve, reject) => { + this._whenStreamInFinished(() => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + if (this.options.resolveWithObject) { + resolve({ data, info }); + } else { + resolve(data); + } + } + }); + }); + }); + } else { + // output=promise, input=file/buffer + return new Promise((resolve, reject) => { + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + if (this.options.resolveWithObject) { + resolve({ data, info }); + } else { + resolve(data); + } + } + }); + }); + } + } +} + +/** + * Decorate the Sharp prototype with output-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Object.assign(Sharp.prototype, { + // Public + toFile, + toBuffer, + toUint8Array, + withDensity, + keepExif, + withExif, + withExifMerge, + keepIccProfile, + withIccProfile, + keepGainMap, + withGainMap, + keepXmp, + withXmp, + keepMetadata, + withMetadata, + toFormat, + jpeg, + jp2, + png, + webp, + tiff, + avif, + heif, + jxl, + gif, + raw, + tile, + timeout, + // Private + _updateFormatOut, + _setBooleanOption, + _read, + _pipeline + }); +}; diff --git a/apps/api/.output/node_modules/sharp/dist/resize.cjs b/apps/api/.output/node_modules/sharp/dist/resize.cjs new file mode 100644 index 0000000..733679f --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/resize.cjs @@ -0,0 +1,617 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is.cjs'); + +/** + * Weighting to apply when using contain/cover fit. + * @member + * @private + */ +const gravity = { + center: 0, + centre: 0, + north: 1, + east: 2, + south: 3, + west: 4, + northeast: 5, + southeast: 6, + southwest: 7, + northwest: 8 +}; + +/** + * Position to apply when using contain/cover fit. + * @member + * @private + */ +const position = { + top: 1, + right: 2, + bottom: 3, + left: 4, + 'right top': 5, + 'right bottom': 6, + 'left bottom': 7, + 'left top': 8 +}; + +/** + * How to extend the image. + * @member + * @private + */ +const extendWith = { + background: 'background', + copy: 'copy', + repeat: 'repeat', + mirror: 'mirror' +}; + +/** + * Strategies for automagic cover behaviour. + * @member + * @private + */ +const strategy = { + entropy: 16, + attention: 17 +}; + +/** + * Reduction kernels. + * @member + * @private + */ +const kernel = { + nearest: 'nearest', + linear: 'linear', + cubic: 'cubic', + mitchell: 'mitchell', + lanczos2: 'lanczos2', + lanczos3: 'lanczos3', + mks2013: 'mks2013', + mks2021: 'mks2021' +}; + +/** + * Methods by which an image can be resized to fit the provided dimensions. + * @member + * @private + */ +const fit = { + contain: 'contain', + cover: 'cover', + fill: 'fill', + inside: 'inside', + outside: 'outside' +}; + +/** + * Map external fit property to internal canvas property. + * @member + * @private + */ +const mapFitToCanvas = { + contain: 'embed', + cover: 'crop', + fill: 'ignore_aspect', + inside: 'max', + outside: 'min' +}; + +/** + * @private + */ +function isRotationExpected (options) { + return (options.angle % 360) !== 0 || options.rotationAngle !== 0; +} + +/** + * @private + */ +function isResizeExpected (options) { + return options.width !== -1 || options.height !== -1; +} + +/** + * Resize image to `width`, `height` or `width x height`. + * + * When both a `width` and `height` are provided, the possible methods by which the image should **fit** these are: + * - `cover`: (default) Preserving aspect ratio, attempt to ensure the image covers both provided dimensions by cropping/clipping to fit. + * - `contain`: Preserving aspect ratio, contain within both provided dimensions using "letterboxing" where necessary. + * - `fill`: Ignore the aspect ratio of the input and stretch to both provided dimensions. + * - `inside`: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified. + * - `outside`: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified. + * + * Some of these values are based on the [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property. + * + * Examples of various values for the fit property when resizing + * + * When using a **fit** of `cover` or `contain`, the default **position** is `centre`. Other options are: + * - `sharp.position`: `top`, `right top`, `right`, `right bottom`, `bottom`, `left bottom`, `left`, `left top`. + * - `sharp.gravity`: `north`, `northeast`, `east`, `southeast`, `south`, `southwest`, `west`, `northwest`, `center` or `centre`. + * - `sharp.strategy`: `cover` only, dynamically crop using either the `entropy` or `attention` strategy. + * + * Some of these values are based on the [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property. + * + * The strategy-based approach initially resizes so one dimension is at its target length + * then repeatedly ranks edge regions, discarding the edge with the lowest score based on the selected strategy. + * - `entropy`: focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29). + * - `attention`: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones. + * + * Possible downsizing kernels are: + * - `nearest`: Use [nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). + * - `linear`: Use a [triangle filter](https://en.wikipedia.org/wiki/Triangular_function). + * - `cubic`: Use a [Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline). + * - `mitchell`: Use a [Mitchell-Netravali spline](https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf). + * - `lanczos2`: Use a [Lanczos kernel](https://en.wikipedia.org/wiki/Lanczos_resampling#Lanczos_kernel) with `a=2`. + * - `lanczos3`: Use a Lanczos kernel with `a=3` (the default). + * - `mks2013`: Use a [Magic Kernel Sharp](https://johncostella.com/magic/mks.pdf) 2013 kernel, as adopted by Facebook. + * - `mks2021`: Use a Magic Kernel Sharp 2021 kernel, with more accurate (reduced) sharpening than the 2013 version. + * + * When upsampling, these kernels map to `nearest`, `linear` and `cubic` interpolators. + * Downsampling kernels without a matching upsampling interpolator map to `cubic`. + * + * Only one resize can occur per pipeline. + * Previous calls to `resize` in the same pipeline will be ignored. + * + * @example + * sharp(input) + * .resize({ width: 100 }) + * .toBuffer() + * .then(data => { + * // 100 pixels wide, auto-scaled height + * }); + * + * @example + * sharp(input) + * .resize({ height: 100 }) + * .toBuffer() + * .then(data => { + * // 100 pixels high, auto-scaled width + * }); + * + * @example + * sharp(input) + * .resize(200, 300, { + * kernel: sharp.kernel.nearest, + * fit: 'contain', + * position: 'right top', + * background: { r: 255, g: 255, b: 255, alpha: 0.5 } + * }) + * .toFile('output.png') + * .then(() => { + * // output.png is a 200 pixels wide and 300 pixels high image + * // containing a nearest-neighbour scaled version + * // contained within the north-east corner of a semi-transparent white canvas + * }); + * + * @example + * const transformer = sharp() + * .resize({ + * width: 200, + * height: 200, + * fit: sharp.fit.cover, + * position: sharp.strategy.entropy + * }); + * // Read image data from readableStream + * // Write 200px square auto-cropped image data to writableStream + * readableStream + * .pipe(transformer) + * .pipe(writableStream); + * + * @example + * sharp(input) + * .resize(200, 200, { + * fit: sharp.fit.inside, + * withoutEnlargement: true + * }) + * .toFormat('jpeg') + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains JPEG image data + * // no wider and no higher than 200 pixels + * // and no larger than the input image + * }); + * + * @example + * sharp(input) + * .resize(200, 200, { + * fit: sharp.fit.outside, + * withoutReduction: true + * }) + * .toFormat('jpeg') + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains JPEG image data + * // of at least 200 pixels wide and 200 pixels high while maintaining aspect ratio + * // and no smaller than the input image + * }); + * + * @example + * const scaleByHalf = await sharp(input) + * .metadata() + * .then(({ width }) => sharp(input) + * .resize(Math.round(width * 0.5)) + * .toBuffer() + * ); + * + * @param {number} [width] - How many pixels wide the resultant image should be. Use `null` or `undefined` to auto-scale the width to match the height. + * @param {number} [height] - How many pixels high the resultant image should be. Use `null` or `undefined` to auto-scale the height to match the width. + * @param {Object} [options] + * @param {number} [options.width] - An alternative means of specifying `width`. If both are present this takes priority. + * @param {number} [options.height] - An alternative means of specifying `height`. If both are present this takes priority. + * @param {String} [options.fit='cover'] - How the image should be resized/cropped to fit the target dimension(s), one of `cover`, `contain`, `fill`, `inside` or `outside`. + * @param {String} [options.position='centre'] - A position, gravity or strategy to use when `fit` is `cover` or `contain`. + * @param {String|Object} [options.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour when `fit` is `contain`, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency. + * @param {String} [options.kernel='lanczos3'] - The kernel to use for image reduction and the inferred interpolator to use for upsampling. Use the `fastShrinkOnLoad` option to control kernel vs shrink-on-load. + * @param {Boolean} [options.withoutEnlargement=false] - Do not scale up if the width *or* height are already less than the target dimensions, equivalent to GraphicsMagick's `>` geometry option. This may result in output dimensions smaller than the target dimensions. + * @param {Boolean} [options.withoutReduction=false] - Do not scale down if the width *or* height are already greater than the target dimensions, equivalent to GraphicsMagick's `<` geometry option. This may still result in a crop to reach the target dimensions. + * @param {Boolean} [options.fastShrinkOnLoad=true] - Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern or round-down of an auto-scaled dimension. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function resize (widthOrOptions, height, options) { + if (isResizeExpected(this.options)) { + this.options.debuglog('ignoring previous resize options'); + } + if (this.options.widthPost !== -1) { + this.options.debuglog('operation order will be: extract, resize, extract'); + } + if (is.defined(widthOrOptions)) { + if (is.object(widthOrOptions) && !is.defined(options)) { + options = widthOrOptions; + } else if (is.integer(widthOrOptions) && is.inRange(widthOrOptions, 1, 100000000)) { + this.options.width = widthOrOptions; + } else { + throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', widthOrOptions); + } + } else { + this.options.width = -1; + } + if (is.defined(height)) { + if (is.integer(height) && is.inRange(height, 1, 100000000)) { + this.options.height = height; + } else { + throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', height); + } + } else { + this.options.height = -1; + } + if (is.object(options)) { + // Width + if (is.defined(options.width)) { + if (is.integer(options.width) && is.inRange(options.width, 1, 100000000)) { + this.options.width = options.width; + } else { + throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', options.width); + } + } + // Height + if (is.defined(options.height)) { + if (is.integer(options.height) && is.inRange(options.height, 1, 100000000)) { + this.options.height = options.height; + } else { + throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', options.height); + } + } + // Fit + if (is.defined(options.fit)) { + const canvas = mapFitToCanvas[options.fit]; + if (is.string(canvas)) { + this.options.canvas = canvas; + } else { + throw is.invalidParameterError('fit', 'valid fit', options.fit); + } + } + // Position + if (is.defined(options.position)) { + const pos = is.integer(options.position) + ? options.position + : strategy[options.position] || position[options.position] || gravity[options.position]; + if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) { + this.options.position = pos; + } else { + throw is.invalidParameterError('position', 'valid position/gravity/strategy', options.position); + } + } + // Background + this._setBackgroundColourOption('resizeBackground', options.background); + // Kernel + if (is.defined(options.kernel)) { + if (is.string(kernel[options.kernel])) { + this.options.kernel = kernel[options.kernel]; + } else { + throw is.invalidParameterError('kernel', 'valid kernel name', options.kernel); + } + } + // Without enlargement + if (is.defined(options.withoutEnlargement)) { + this._setBooleanOption('withoutEnlargement', options.withoutEnlargement); + } + // Without reduction + if (is.defined(options.withoutReduction)) { + this._setBooleanOption('withoutReduction', options.withoutReduction); + } + // Shrink on load + if (is.defined(options.fastShrinkOnLoad)) { + this._setBooleanOption('fastShrinkOnLoad', options.fastShrinkOnLoad); + } + } + if (isRotationExpected(this.options) && isResizeExpected(this.options)) { + this.options.rotateBefore = true; + } + return this; +} + +/** + * Extend / pad / extrude one or more edges of the image with either + * the provided background colour or pixels derived from the image. + * This operation will always occur after resizing and extraction, if any. + * + * @example + * // Resize to 140 pixels wide, then add 10 transparent pixels + * // to the top, left and right edges and 20 to the bottom edge + * sharp(input) + * .resize(140) + * .extend({ + * top: 10, + * bottom: 20, + * left: 10, + * right: 10, + * background: { r: 0, g: 0, b: 0, alpha: 0 } + * }) + * ... + * +* @example + * // Add a row of 10 red pixels to the bottom + * sharp(input) + * .extend({ + * bottom: 10, + * background: 'red' + * }) + * ... + * + * @example + * // Extrude image by 8 pixels to the right, mirroring existing right hand edge + * sharp(input) + * .extend({ + * right: 8, + * background: 'mirror' + * }) + * ... + * + * @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts + * @param {number} [extend.top=0] - number of pixels to add to the top edge, valid values are integers in the range 0-100000000 + * @param {number} [extend.left=0] - number of pixels to add to the left edge, valid values are integers in the range 0-100000000 + * @param {number} [extend.bottom=0] - number of pixels to add to the bottom edge, valid values are integers in the range 0-100000000 + * @param {number} [extend.right=0] - number of pixels to add to the right edge, valid values are integers in the range 0-100000000 + * @param {String} [extend.extendWith='background'] - populate new pixels using this method, one of: background, copy, repeat, mirror. + * @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency. + * @returns {Sharp} + * @throws {Error} Invalid parameters +*/ +function extend (extend) { + if (is.integer(extend)) { + if (is.inRange(extend, 1, 100000000)) { + this.options.extendTop = extend; + this.options.extendBottom = extend; + this.options.extendLeft = extend; + this.options.extendRight = extend; + } else { + throw is.invalidParameterError('extend', 'integer between 1 and 100000000', extend); + } + } else if (is.object(extend)) { + if (is.defined(extend.top)) { + if (is.integer(extend.top) && is.inRange(extend.top, 0, 100000000)) { + this.options.extendTop = extend.top; + } else { + throw is.invalidParameterError('top', 'integer between 0 and 100000000', extend.top); + } + } + if (is.defined(extend.bottom)) { + if (is.integer(extend.bottom) && is.inRange(extend.bottom, 0, 100000000)) { + this.options.extendBottom = extend.bottom; + } else { + throw is.invalidParameterError('bottom', 'integer between 0 and 100000000', extend.bottom); + } + } + if (is.defined(extend.left)) { + if (is.integer(extend.left) && is.inRange(extend.left, 0, 100000000)) { + this.options.extendLeft = extend.left; + } else { + throw is.invalidParameterError('left', 'integer between 0 and 100000000', extend.left); + } + } + if (is.defined(extend.right)) { + if (is.integer(extend.right) && is.inRange(extend.right, 0, 100000000)) { + this.options.extendRight = extend.right; + } else { + throw is.invalidParameterError('right', 'integer between 0 and 100000000', extend.right); + } + } + this._setBackgroundColourOption('extendBackground', extend.background); + if (is.defined(extend.extendWith)) { + if (is.string(extendWith[extend.extendWith])) { + this.options.extendWith = extendWith[extend.extendWith]; + } else { + throw is.invalidParameterError('extendWith', 'one of: background, copy, repeat, mirror', extend.extendWith); + } + } + } else { + throw is.invalidParameterError('extend', 'integer or object', extend); + } + return this; +} + +/** + * Extract/crop a region of the image. + * + * - Use `extract` before `resize` for pre-resize extraction. + * - Use `extract` after `resize` for post-resize extraction. + * - Use `extract` twice and `resize` once for extract-then-resize-then-extract in a fixed operation order. + * + * @example + * sharp(input) + * .extract({ left: left, top: top, width: width, height: height }) + * .toFile(output, function(err) { + * // Extract a region of the input image, saving in the same format. + * }); + * @example + * sharp(input) + * .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre }) + * .resize(width, height) + * .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost }) + * .toFile(output, function(err) { + * // Extract a region, resize, then extract from the resized image + * }); + * + * @param {Object} options - describes the region to extract using integral pixel values + * @param {number} options.left - zero-indexed offset from left edge, an integer between 0 and 100000000 + * @param {number} options.top - zero-indexed offset from top edge, an integer between 0 and 100000000 + * @param {number} options.width - width of region to extract, an integer between 0 and 100000000 + * @param {number} options.height - height of region to extract, an integer between 0 and 100000000 + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function extract (options) { + const suffix = isResizeExpected(this.options) || this.options.widthPre !== -1 ? 'Post' : 'Pre'; + if (this.options[`width${suffix}`] !== -1) { + this.options.debuglog('ignoring previous extract options'); + } + ['left', 'top', 'width', 'height'].forEach(function (name) { + const value = options[name]; + if (is.integer(value) && is.inRange(value, 0, 100000000)) { + this.options[name + (name === 'left' || name === 'top' ? 'Offset' : '') + suffix] = value; + } else { + throw is.invalidParameterError(name, 'integer between 0 and 100000000', value); + } + }, this); + // Ensure existing rotation occurs before pre-resize extraction + if (isRotationExpected(this.options) && !isResizeExpected(this.options)) { + if (this.options.widthPre === -1 || this.options.widthPost === -1) { + this.options.rotateBefore = true; + } + } + if (this.options.input.autoOrient) { + this.options.orientBefore = true; + } + return this; +} + +/** + * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel. + * + * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels. + * + * If the result of this operation would trim an image to nothing then no change is made. + * + * Use the `lineArt` and `threshold` options for control over sensitivity. + * + * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties. + * + * @example + * // Trim pixels with a colour similar to that of the top-left pixel. + * await sharp(input) + * .trim() + * .toFile(output); + * + * @example + * // Trim pixels with the exact same colour as that of the top-left pixel. + * await sharp(input) + * .trim({ + * threshold: 0 + * }) + * .toFile(output); + * + * @example + * // Assume input is line art and trim only pixels with a similar colour to red. + * const output = await sharp(input) + * .trim({ + * background: "#FF0000", + * lineArt: true + * }) + * .toBuffer(); + * + * @example + * // Trim all "yellow-ish" pixels, being more lenient with the higher threshold. + * const output = await sharp(input) + * .trim({ + * background: "yellow", + * threshold: 42, + * }) + * .toBuffer(); + * + * @example + * // Trim image leaving (up to) a 10 pixel margin around the trimmed content. + * const output = await sharp(input) + * .trim({ + * margin: 10 + * }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {string|Object} [options.background='top-left pixel'] - Background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to that of the top-left pixel. + * @param {number} [options.threshold=10] - Allowed difference from the above colour, a positive number. + * @param {boolean} [options.lineArt=false] - Does the input more closely resemble line art (e.g. vector) rather than being photographic? + * @param {number} [options.margin=0] - Leave a margin around trimmed content, integral number of pixels between 0 and 10000000. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function trim (options) { + this.options.trimThreshold = 10; + if (is.defined(options)) { + if (is.object(options)) { + if (is.defined(options.background)) { + this._setBackgroundColourOption('trimBackground', options.background); + } + if (is.defined(options.threshold)) { + if (is.number(options.threshold) && options.threshold >= 0) { + this.options.trimThreshold = options.threshold; + } else { + throw is.invalidParameterError('threshold', 'positive number', options.threshold); + } + } + if (is.defined(options.lineArt)) { + this._setBooleanOption('trimLineArt', options.lineArt); + } + if (is.defined(options.margin)) { + if (is.integer(options.margin) && is.inRange(options.margin, 0, 10000000)) { + this.options.trimMargin = options.margin; + } else { + throw is.invalidParameterError('margin', 'integer between 0 and 10000000', options.margin); + } + } + } else { + throw is.invalidParameterError('trim', 'object', options); + } + } + if (isRotationExpected(this.options)) { + this.options.rotateBefore = true; + } + return this; +} + +/** + * Decorate the Sharp prototype with resize-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + resize, + extend, + extract, + trim + }); + // Class attributes + Sharp.gravity = gravity; + Sharp.strategy = strategy; + Sharp.kernel = kernel; + Sharp.fit = fit; + Sharp.position = position; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/resize.mjs b/apps/api/.output/node_modules/sharp/dist/resize.mjs new file mode 100644 index 0000000..603b4f2 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/resize.mjs @@ -0,0 +1,617 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import is from './is.mjs'; + +/** + * Weighting to apply when using contain/cover fit. + * @member + * @private + */ +const gravity = { + center: 0, + centre: 0, + north: 1, + east: 2, + south: 3, + west: 4, + northeast: 5, + southeast: 6, + southwest: 7, + northwest: 8 +}; + +/** + * Position to apply when using contain/cover fit. + * @member + * @private + */ +const position = { + top: 1, + right: 2, + bottom: 3, + left: 4, + 'right top': 5, + 'right bottom': 6, + 'left bottom': 7, + 'left top': 8 +}; + +/** + * How to extend the image. + * @member + * @private + */ +const extendWith = { + background: 'background', + copy: 'copy', + repeat: 'repeat', + mirror: 'mirror' +}; + +/** + * Strategies for automagic cover behaviour. + * @member + * @private + */ +const strategy = { + entropy: 16, + attention: 17 +}; + +/** + * Reduction kernels. + * @member + * @private + */ +const kernel = { + nearest: 'nearest', + linear: 'linear', + cubic: 'cubic', + mitchell: 'mitchell', + lanczos2: 'lanczos2', + lanczos3: 'lanczos3', + mks2013: 'mks2013', + mks2021: 'mks2021' +}; + +/** + * Methods by which an image can be resized to fit the provided dimensions. + * @member + * @private + */ +const fit = { + contain: 'contain', + cover: 'cover', + fill: 'fill', + inside: 'inside', + outside: 'outside' +}; + +/** + * Map external fit property to internal canvas property. + * @member + * @private + */ +const mapFitToCanvas = { + contain: 'embed', + cover: 'crop', + fill: 'ignore_aspect', + inside: 'max', + outside: 'min' +}; + +/** + * @private + */ +function isRotationExpected (options) { + return (options.angle % 360) !== 0 || options.rotationAngle !== 0; +} + +/** + * @private + */ +function isResizeExpected (options) { + return options.width !== -1 || options.height !== -1; +} + +/** + * Resize image to `width`, `height` or `width x height`. + * + * When both a `width` and `height` are provided, the possible methods by which the image should **fit** these are: + * - `cover`: (default) Preserving aspect ratio, attempt to ensure the image covers both provided dimensions by cropping/clipping to fit. + * - `contain`: Preserving aspect ratio, contain within both provided dimensions using "letterboxing" where necessary. + * - `fill`: Ignore the aspect ratio of the input and stretch to both provided dimensions. + * - `inside`: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified. + * - `outside`: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified. + * + * Some of these values are based on the [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property. + * + * Examples of various values for the fit property when resizing + * + * When using a **fit** of `cover` or `contain`, the default **position** is `centre`. Other options are: + * - `sharp.position`: `top`, `right top`, `right`, `right bottom`, `bottom`, `left bottom`, `left`, `left top`. + * - `sharp.gravity`: `north`, `northeast`, `east`, `southeast`, `south`, `southwest`, `west`, `northwest`, `center` or `centre`. + * - `sharp.strategy`: `cover` only, dynamically crop using either the `entropy` or `attention` strategy. + * + * Some of these values are based on the [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property. + * + * The strategy-based approach initially resizes so one dimension is at its target length + * then repeatedly ranks edge regions, discarding the edge with the lowest score based on the selected strategy. + * - `entropy`: focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29). + * - `attention`: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones. + * + * Possible downsizing kernels are: + * - `nearest`: Use [nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). + * - `linear`: Use a [triangle filter](https://en.wikipedia.org/wiki/Triangular_function). + * - `cubic`: Use a [Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline). + * - `mitchell`: Use a [Mitchell-Netravali spline](https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf). + * - `lanczos2`: Use a [Lanczos kernel](https://en.wikipedia.org/wiki/Lanczos_resampling#Lanczos_kernel) with `a=2`. + * - `lanczos3`: Use a Lanczos kernel with `a=3` (the default). + * - `mks2013`: Use a [Magic Kernel Sharp](https://johncostella.com/magic/mks.pdf) 2013 kernel, as adopted by Facebook. + * - `mks2021`: Use a Magic Kernel Sharp 2021 kernel, with more accurate (reduced) sharpening than the 2013 version. + * + * When upsampling, these kernels map to `nearest`, `linear` and `cubic` interpolators. + * Downsampling kernels without a matching upsampling interpolator map to `cubic`. + * + * Only one resize can occur per pipeline. + * Previous calls to `resize` in the same pipeline will be ignored. + * + * @example + * sharp(input) + * .resize({ width: 100 }) + * .toBuffer() + * .then(data => { + * // 100 pixels wide, auto-scaled height + * }); + * + * @example + * sharp(input) + * .resize({ height: 100 }) + * .toBuffer() + * .then(data => { + * // 100 pixels high, auto-scaled width + * }); + * + * @example + * sharp(input) + * .resize(200, 300, { + * kernel: sharp.kernel.nearest, + * fit: 'contain', + * position: 'right top', + * background: { r: 255, g: 255, b: 255, alpha: 0.5 } + * }) + * .toFile('output.png') + * .then(() => { + * // output.png is a 200 pixels wide and 300 pixels high image + * // containing a nearest-neighbour scaled version + * // contained within the north-east corner of a semi-transparent white canvas + * }); + * + * @example + * const transformer = sharp() + * .resize({ + * width: 200, + * height: 200, + * fit: sharp.fit.cover, + * position: sharp.strategy.entropy + * }); + * // Read image data from readableStream + * // Write 200px square auto-cropped image data to writableStream + * readableStream + * .pipe(transformer) + * .pipe(writableStream); + * + * @example + * sharp(input) + * .resize(200, 200, { + * fit: sharp.fit.inside, + * withoutEnlargement: true + * }) + * .toFormat('jpeg') + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains JPEG image data + * // no wider and no higher than 200 pixels + * // and no larger than the input image + * }); + * + * @example + * sharp(input) + * .resize(200, 200, { + * fit: sharp.fit.outside, + * withoutReduction: true + * }) + * .toFormat('jpeg') + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains JPEG image data + * // of at least 200 pixels wide and 200 pixels high while maintaining aspect ratio + * // and no smaller than the input image + * }); + * + * @example + * const scaleByHalf = await sharp(input) + * .metadata() + * .then(({ width }) => sharp(input) + * .resize(Math.round(width * 0.5)) + * .toBuffer() + * ); + * + * @param {number} [width] - How many pixels wide the resultant image should be. Use `null` or `undefined` to auto-scale the width to match the height. + * @param {number} [height] - How many pixels high the resultant image should be. Use `null` or `undefined` to auto-scale the height to match the width. + * @param {Object} [options] + * @param {number} [options.width] - An alternative means of specifying `width`. If both are present this takes priority. + * @param {number} [options.height] - An alternative means of specifying `height`. If both are present this takes priority. + * @param {String} [options.fit='cover'] - How the image should be resized/cropped to fit the target dimension(s), one of `cover`, `contain`, `fill`, `inside` or `outside`. + * @param {String} [options.position='centre'] - A position, gravity or strategy to use when `fit` is `cover` or `contain`. + * @param {String|Object} [options.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour when `fit` is `contain`, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency. + * @param {String} [options.kernel='lanczos3'] - The kernel to use for image reduction and the inferred interpolator to use for upsampling. Use the `fastShrinkOnLoad` option to control kernel vs shrink-on-load. + * @param {Boolean} [options.withoutEnlargement=false] - Do not scale up if the width *or* height are already less than the target dimensions, equivalent to GraphicsMagick's `>` geometry option. This may result in output dimensions smaller than the target dimensions. + * @param {Boolean} [options.withoutReduction=false] - Do not scale down if the width *or* height are already greater than the target dimensions, equivalent to GraphicsMagick's `<` geometry option. This may still result in a crop to reach the target dimensions. + * @param {Boolean} [options.fastShrinkOnLoad=true] - Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern or round-down of an auto-scaled dimension. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function resize (widthOrOptions, height, options) { + if (isResizeExpected(this.options)) { + this.options.debuglog('ignoring previous resize options'); + } + if (this.options.widthPost !== -1) { + this.options.debuglog('operation order will be: extract, resize, extract'); + } + if (is.defined(widthOrOptions)) { + if (is.object(widthOrOptions) && !is.defined(options)) { + options = widthOrOptions; + } else if (is.integer(widthOrOptions) && is.inRange(widthOrOptions, 1, 100000000)) { + this.options.width = widthOrOptions; + } else { + throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', widthOrOptions); + } + } else { + this.options.width = -1; + } + if (is.defined(height)) { + if (is.integer(height) && is.inRange(height, 1, 100000000)) { + this.options.height = height; + } else { + throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', height); + } + } else { + this.options.height = -1; + } + if (is.object(options)) { + // Width + if (is.defined(options.width)) { + if (is.integer(options.width) && is.inRange(options.width, 1, 100000000)) { + this.options.width = options.width; + } else { + throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', options.width); + } + } + // Height + if (is.defined(options.height)) { + if (is.integer(options.height) && is.inRange(options.height, 1, 100000000)) { + this.options.height = options.height; + } else { + throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', options.height); + } + } + // Fit + if (is.defined(options.fit)) { + const canvas = mapFitToCanvas[options.fit]; + if (is.string(canvas)) { + this.options.canvas = canvas; + } else { + throw is.invalidParameterError('fit', 'valid fit', options.fit); + } + } + // Position + if (is.defined(options.position)) { + const pos = is.integer(options.position) + ? options.position + : strategy[options.position] || position[options.position] || gravity[options.position]; + if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) { + this.options.position = pos; + } else { + throw is.invalidParameterError('position', 'valid position/gravity/strategy', options.position); + } + } + // Background + this._setBackgroundColourOption('resizeBackground', options.background); + // Kernel + if (is.defined(options.kernel)) { + if (is.string(kernel[options.kernel])) { + this.options.kernel = kernel[options.kernel]; + } else { + throw is.invalidParameterError('kernel', 'valid kernel name', options.kernel); + } + } + // Without enlargement + if (is.defined(options.withoutEnlargement)) { + this._setBooleanOption('withoutEnlargement', options.withoutEnlargement); + } + // Without reduction + if (is.defined(options.withoutReduction)) { + this._setBooleanOption('withoutReduction', options.withoutReduction); + } + // Shrink on load + if (is.defined(options.fastShrinkOnLoad)) { + this._setBooleanOption('fastShrinkOnLoad', options.fastShrinkOnLoad); + } + } + if (isRotationExpected(this.options) && isResizeExpected(this.options)) { + this.options.rotateBefore = true; + } + return this; +} + +/** + * Extend / pad / extrude one or more edges of the image with either + * the provided background colour or pixels derived from the image. + * This operation will always occur after resizing and extraction, if any. + * + * @example + * // Resize to 140 pixels wide, then add 10 transparent pixels + * // to the top, left and right edges and 20 to the bottom edge + * sharp(input) + * .resize(140) + * .extend({ + * top: 10, + * bottom: 20, + * left: 10, + * right: 10, + * background: { r: 0, g: 0, b: 0, alpha: 0 } + * }) + * ... + * +* @example + * // Add a row of 10 red pixels to the bottom + * sharp(input) + * .extend({ + * bottom: 10, + * background: 'red' + * }) + * ... + * + * @example + * // Extrude image by 8 pixels to the right, mirroring existing right hand edge + * sharp(input) + * .extend({ + * right: 8, + * background: 'mirror' + * }) + * ... + * + * @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts + * @param {number} [extend.top=0] - number of pixels to add to the top edge, valid values are integers in the range 0-100000000 + * @param {number} [extend.left=0] - number of pixels to add to the left edge, valid values are integers in the range 0-100000000 + * @param {number} [extend.bottom=0] - number of pixels to add to the bottom edge, valid values are integers in the range 0-100000000 + * @param {number} [extend.right=0] - number of pixels to add to the right edge, valid values are integers in the range 0-100000000 + * @param {String} [extend.extendWith='background'] - populate new pixels using this method, one of: background, copy, repeat, mirror. + * @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency. + * @returns {Sharp} + * @throws {Error} Invalid parameters +*/ +function extend (extend) { + if (is.integer(extend)) { + if (is.inRange(extend, 1, 100000000)) { + this.options.extendTop = extend; + this.options.extendBottom = extend; + this.options.extendLeft = extend; + this.options.extendRight = extend; + } else { + throw is.invalidParameterError('extend', 'integer between 1 and 100000000', extend); + } + } else if (is.object(extend)) { + if (is.defined(extend.top)) { + if (is.integer(extend.top) && is.inRange(extend.top, 0, 100000000)) { + this.options.extendTop = extend.top; + } else { + throw is.invalidParameterError('top', 'integer between 0 and 100000000', extend.top); + } + } + if (is.defined(extend.bottom)) { + if (is.integer(extend.bottom) && is.inRange(extend.bottom, 0, 100000000)) { + this.options.extendBottom = extend.bottom; + } else { + throw is.invalidParameterError('bottom', 'integer between 0 and 100000000', extend.bottom); + } + } + if (is.defined(extend.left)) { + if (is.integer(extend.left) && is.inRange(extend.left, 0, 100000000)) { + this.options.extendLeft = extend.left; + } else { + throw is.invalidParameterError('left', 'integer between 0 and 100000000', extend.left); + } + } + if (is.defined(extend.right)) { + if (is.integer(extend.right) && is.inRange(extend.right, 0, 100000000)) { + this.options.extendRight = extend.right; + } else { + throw is.invalidParameterError('right', 'integer between 0 and 100000000', extend.right); + } + } + this._setBackgroundColourOption('extendBackground', extend.background); + if (is.defined(extend.extendWith)) { + if (is.string(extendWith[extend.extendWith])) { + this.options.extendWith = extendWith[extend.extendWith]; + } else { + throw is.invalidParameterError('extendWith', 'one of: background, copy, repeat, mirror', extend.extendWith); + } + } + } else { + throw is.invalidParameterError('extend', 'integer or object', extend); + } + return this; +} + +/** + * Extract/crop a region of the image. + * + * - Use `extract` before `resize` for pre-resize extraction. + * - Use `extract` after `resize` for post-resize extraction. + * - Use `extract` twice and `resize` once for extract-then-resize-then-extract in a fixed operation order. + * + * @example + * sharp(input) + * .extract({ left: left, top: top, width: width, height: height }) + * .toFile(output, function(err) { + * // Extract a region of the input image, saving in the same format. + * }); + * @example + * sharp(input) + * .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre }) + * .resize(width, height) + * .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost }) + * .toFile(output, function(err) { + * // Extract a region, resize, then extract from the resized image + * }); + * + * @param {Object} options - describes the region to extract using integral pixel values + * @param {number} options.left - zero-indexed offset from left edge, an integer between 0 and 100000000 + * @param {number} options.top - zero-indexed offset from top edge, an integer between 0 and 100000000 + * @param {number} options.width - width of region to extract, an integer between 0 and 100000000 + * @param {number} options.height - height of region to extract, an integer between 0 and 100000000 + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function extract (options) { + const suffix = isResizeExpected(this.options) || this.options.widthPre !== -1 ? 'Post' : 'Pre'; + if (this.options[`width${suffix}`] !== -1) { + this.options.debuglog('ignoring previous extract options'); + } + ['left', 'top', 'width', 'height'].forEach(function (name) { + const value = options[name]; + if (is.integer(value) && is.inRange(value, 0, 100000000)) { + this.options[name + (name === 'left' || name === 'top' ? 'Offset' : '') + suffix] = value; + } else { + throw is.invalidParameterError(name, 'integer between 0 and 100000000', value); + } + }, this); + // Ensure existing rotation occurs before pre-resize extraction + if (isRotationExpected(this.options) && !isResizeExpected(this.options)) { + if (this.options.widthPre === -1 || this.options.widthPost === -1) { + this.options.rotateBefore = true; + } + } + if (this.options.input.autoOrient) { + this.options.orientBefore = true; + } + return this; +} + +/** + * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel. + * + * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels. + * + * If the result of this operation would trim an image to nothing then no change is made. + * + * Use the `lineArt` and `threshold` options for control over sensitivity. + * + * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties. + * + * @example + * // Trim pixels with a colour similar to that of the top-left pixel. + * await sharp(input) + * .trim() + * .toFile(output); + * + * @example + * // Trim pixels with the exact same colour as that of the top-left pixel. + * await sharp(input) + * .trim({ + * threshold: 0 + * }) + * .toFile(output); + * + * @example + * // Assume input is line art and trim only pixels with a similar colour to red. + * const output = await sharp(input) + * .trim({ + * background: "#FF0000", + * lineArt: true + * }) + * .toBuffer(); + * + * @example + * // Trim all "yellow-ish" pixels, being more lenient with the higher threshold. + * const output = await sharp(input) + * .trim({ + * background: "yellow", + * threshold: 42, + * }) + * .toBuffer(); + * + * @example + * // Trim image leaving (up to) a 10 pixel margin around the trimmed content. + * const output = await sharp(input) + * .trim({ + * margin: 10 + * }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {string|Object} [options.background='top-left pixel'] - Background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to that of the top-left pixel. + * @param {number} [options.threshold=10] - Allowed difference from the above colour, a positive number. + * @param {boolean} [options.lineArt=false] - Does the input more closely resemble line art (e.g. vector) rather than being photographic? + * @param {number} [options.margin=0] - Leave a margin around trimmed content, integral number of pixels between 0 and 10000000. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function trim (options) { + this.options.trimThreshold = 10; + if (is.defined(options)) { + if (is.object(options)) { + if (is.defined(options.background)) { + this._setBackgroundColourOption('trimBackground', options.background); + } + if (is.defined(options.threshold)) { + if (is.number(options.threshold) && options.threshold >= 0) { + this.options.trimThreshold = options.threshold; + } else { + throw is.invalidParameterError('threshold', 'positive number', options.threshold); + } + } + if (is.defined(options.lineArt)) { + this._setBooleanOption('trimLineArt', options.lineArt); + } + if (is.defined(options.margin)) { + if (is.integer(options.margin) && is.inRange(options.margin, 0, 10000000)) { + this.options.trimMargin = options.margin; + } else { + throw is.invalidParameterError('margin', 'integer between 0 and 10000000', options.margin); + } + } + } else { + throw is.invalidParameterError('trim', 'object', options); + } + } + if (isRotationExpected(this.options)) { + this.options.rotateBefore = true; + } + return this; +} + +/** + * Decorate the Sharp prototype with resize-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Object.assign(Sharp.prototype, { + resize, + extend, + extract, + trim + }); + // Class attributes + Sharp.gravity = gravity; + Sharp.strategy = strategy; + Sharp.kernel = kernel; + Sharp.fit = fit; + Sharp.position = position; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/sharp.cjs b/apps/api/.output/node_modules/sharp/dist/sharp.cjs new file mode 100644 index 0000000..bea6c6a --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/sharp.cjs @@ -0,0 +1,174 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +// Inspects the runtime environment and exports the relevant sharp.node binary + + +const { familySync, versionSync } = require("detect-libc"); + +const libvips = require("./libvips.cjs"); +const pkg = require('../package.json'); + + +const { version } = pkg; + +const { runtimePlatformArch, isUnsupportedNodeRuntime, prebuiltPlatforms, minimumLibvipsVersion } = libvips; +const runtimePlatform = runtimePlatformArch(); + +/* node:coverage disable */ + +let sharp; +const errors = []; +try { + sharp = require(`../src/build/Release/sharp-${runtimePlatform}-${version}.node`); +} catch (err) { + errors.push(err); +} +if (!sharp) { + try { + sharp = require(`../src/build/Release/sharp-wasm32-${version}.node`); + } catch (err) { + errors.push(err); + } +} +if (!sharp) { + try { + switch (runtimePlatform) { + case "darwin-arm64": + sharp = require("@img/sharp-darwin-arm64/sharp.node"); + break; + case "darwin-x64": + sharp = require("@img/sharp-darwin-x64/sharp.node"); + break; + case "linux-arm": + sharp = require("@img/sharp-linux-arm/sharp.node"); + break; + case "linux-arm64": + sharp = require("@img/sharp-linux-arm64/sharp.node"); + break; + case "linux-ppc64": + sharp = require("@img/sharp-linux-ppc64/sharp.node"); + break; + case "linux-riscv64": + sharp = require("@img/sharp-linux-riscv64/sharp.node"); + break; + case "linux-s390x": + sharp = require("@img/sharp-linux-s390x/sharp.node"); + break; + case "linux-x64": + sharp = require("@img/sharp-linux-x64/sharp.node"); + break; + case "linuxmusl-arm64": + sharp = require("@img/sharp-linuxmusl-arm64/sharp.node"); + break; + case "linuxmusl-x64": + sharp = require("@img/sharp-linuxmusl-x64/sharp.node"); + break; + case "win32-arm64": + sharp = require("@img/sharp-win32-arm64/sharp.node"); + break; + case "win32-ia32": + sharp = require("@img/sharp-win32-ia32/sharp.node"); + break; + case "win32-x64": + sharp = require("@img/sharp-win32-x64/sharp.node"); + break; + case "freebsd-arm64": + case "freebsd-x64": + sharp = require("@img/sharp-freebsd-wasm32/sharp.node"); + break; + case "linux-wasm32": + sharp = require("@img/sharp-webcontainers-wasm32/sharp.node"); + break; + } + if (sharp && ["linux-x64", "linuxmusl-x64"].includes(runtimePlatform) && !sharp._isUsingX64V2()) { + const err = new Error("Prebuilt binaries for Linux x64 require v2 microarchitecture"); + err.code = "Unsupported CPU"; + errors.push(err); + sharp = null; + } + if (sharp && process.versions.electron && runtimePlatform.startsWith("linux")) { + process.emitWarning( + "Binaries provided by Electron for use on Linux may be incompatible with sharp - see https://sharp.pixelplumbing.com/install#electron-and-linux", + { code: "SharpElectronLinux" } + ); + } + } catch (err) { + errors.push(err); + } +} +if (!sharp) { + try { + sharp = require("@img/sharp-wasm32/sharp.node"); + } catch (err) { + errors.push(err); + } +} + +if (!sharp) { + const [isLinux, isMacOs, isWindows] = ["linux", "darwin", "win32"].map((os) => runtimePlatform.startsWith(os)); + + const help = [`Could not load the "sharp" module using the ${runtimePlatform} runtime`]; + errors.forEach((err) => { + if (!err.code?.endsWith("MODULE_NOT_FOUND")) { + help.push(err.code ? `${err.code}: ${err.message}` : err.message); + } + }); + const messages = errors.map((err) => err.message).join(" "); + help.push("Possible solutions:"); + // Common error messages + if (isUnsupportedNodeRuntime()) { + const { found, expected } = isUnsupportedNodeRuntime(); + help.push("- Please upgrade Node.js:", ` Found ${found}`, ` Requires ${expected}`); + } else if (prebuiltPlatforms.includes(runtimePlatform) && !/libstdc\+\+\.so/.test(messages)) { + const [os, cpu] = runtimePlatform.split("-"); + const libc = os.endsWith("musl") ? " --libc=musl" : ""; + help.push( + "- Ensure optional dependencies can be installed:", + " npm install --include=optional sharp", + "- Ensure your package manager supports multi-platform installation:", + " See https://sharp.pixelplumbing.com/install#cross-platform", + "- Add platform-specific dependencies:", + ` npm install --os=${os.replace("musl", "")}${libc} --cpu=${cpu} sharp`, + ); + } else { + help.push( + `- Manually install libvips >= ${minimumLibvipsVersion}`, + " See https://sharp.pixelplumbing.com/install#building-from-source", + "- Add WebAssembly-based dependencies:", + " npm install sharp @img/sharp-wasm32", + ); + } + if (isLinux && /(symbol not found|CXXABI_)/i.test(messages)) { + try { + const { config } = require(`@img/sharp-libvips-${runtimePlatform}/package`); + const libcFound = `${familySync()} ${versionSync()}`; + const libcRequires = `${config.musl ? "musl" : "glibc"} ${config.musl || config.glibc}`; + help.push("- Update your OS:", ` Found ${libcFound}`, ` Requires ${libcRequires}`); + } catch (_errEngines) {} + } + if (isLinux && /\/snap\/core[0-9]{2}/.test(messages)) { + help.push("- Remove the Node.js Snap, which does not support native modules", " snap remove node"); + } + if (isMacOs && /Incompatible library version/.test(messages)) { + help.push("- Update Homebrew:", " brew update && brew upgrade vips"); + } + if (errors.some((err) => err.code === "ERR_DLOPEN_DISABLED")) { + help.push("- Run Node.js without using the --no-addons flag"); + } + // Link to installation docs + if (isWindows && /The specified procedure could not be found/.test(messages)) { + help.push( + "- Using the canvas package on Windows?", + " See https://sharp.pixelplumbing.com/install#canvas-and-windows", + "- Check for outdated versions of sharp in the dependency tree:", + " npm ls sharp", + ); + } + help.push("- Consult the installation documentation:", " See https://sharp.pixelplumbing.com/install"); + throw new Error(help.join("\n")); +} + +module.exports = sharp; diff --git a/apps/api/.output/node_modules/sharp/dist/sharp.mjs b/apps/api/.output/node_modules/sharp/dist/sharp.mjs new file mode 100644 index 0000000..df4acb4 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/sharp.mjs @@ -0,0 +1,174 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +// Inspects the runtime environment and exports the relevant sharp.node binary + +import { createRequire } from "node:module" +import { familySync, versionSync } from "detect-libc"; + +import libvips from "./libvips.mjs"; +import pkg from '../package.json' with { type: 'json' }; + +const require = createRequire(import.meta.url); +const { version } = pkg; + +const { runtimePlatformArch, isUnsupportedNodeRuntime, prebuiltPlatforms, minimumLibvipsVersion } = libvips; +const runtimePlatform = runtimePlatformArch(); + +/* node:coverage disable */ + +let sharp; +const errors = []; +try { + sharp = require(`../src/build/Release/sharp-${runtimePlatform}-${version}.node`); +} catch (err) { + errors.push(err); +} +if (!sharp) { + try { + sharp = require(`../src/build/Release/sharp-wasm32-${version}.node`); + } catch (err) { + errors.push(err); + } +} +if (!sharp) { + try { + switch (runtimePlatform) { + case "darwin-arm64": + sharp = require("@img/sharp-darwin-arm64/sharp.node"); + break; + case "darwin-x64": + sharp = require("@img/sharp-darwin-x64/sharp.node"); + break; + case "linux-arm": + sharp = require("@img/sharp-linux-arm/sharp.node"); + break; + case "linux-arm64": + sharp = require("@img/sharp-linux-arm64/sharp.node"); + break; + case "linux-ppc64": + sharp = require("@img/sharp-linux-ppc64/sharp.node"); + break; + case "linux-riscv64": + sharp = require("@img/sharp-linux-riscv64/sharp.node"); + break; + case "linux-s390x": + sharp = require("@img/sharp-linux-s390x/sharp.node"); + break; + case "linux-x64": + sharp = require("@img/sharp-linux-x64/sharp.node"); + break; + case "linuxmusl-arm64": + sharp = require("@img/sharp-linuxmusl-arm64/sharp.node"); + break; + case "linuxmusl-x64": + sharp = require("@img/sharp-linuxmusl-x64/sharp.node"); + break; + case "win32-arm64": + sharp = require("@img/sharp-win32-arm64/sharp.node"); + break; + case "win32-ia32": + sharp = require("@img/sharp-win32-ia32/sharp.node"); + break; + case "win32-x64": + sharp = require("@img/sharp-win32-x64/sharp.node"); + break; + case "freebsd-arm64": + case "freebsd-x64": + sharp = require("@img/sharp-freebsd-wasm32/sharp.node"); + break; + case "linux-wasm32": + sharp = require("@img/sharp-webcontainers-wasm32/sharp.node"); + break; + } + if (sharp && ["linux-x64", "linuxmusl-x64"].includes(runtimePlatform) && !sharp._isUsingX64V2()) { + const err = new Error("Prebuilt binaries for Linux x64 require v2 microarchitecture"); + err.code = "Unsupported CPU"; + errors.push(err); + sharp = null; + } + if (sharp && process.versions.electron && runtimePlatform.startsWith("linux")) { + process.emitWarning( + "Binaries provided by Electron for use on Linux may be incompatible with sharp - see https://sharp.pixelplumbing.com/install#electron-and-linux", + { code: "SharpElectronLinux" } + ); + } + } catch (err) { + errors.push(err); + } +} +if (!sharp) { + try { + sharp = require("@img/sharp-wasm32/sharp.node"); + } catch (err) { + errors.push(err); + } +} + +if (!sharp) { + const [isLinux, isMacOs, isWindows] = ["linux", "darwin", "win32"].map((os) => runtimePlatform.startsWith(os)); + + const help = [`Could not load the "sharp" module using the ${runtimePlatform} runtime`]; + errors.forEach((err) => { + if (!err.code?.endsWith("MODULE_NOT_FOUND")) { + help.push(err.code ? `${err.code}: ${err.message}` : err.message); + } + }); + const messages = errors.map((err) => err.message).join(" "); + help.push("Possible solutions:"); + // Common error messages + if (isUnsupportedNodeRuntime()) { + const { found, expected } = isUnsupportedNodeRuntime(); + help.push("- Please upgrade Node.js:", ` Found ${found}`, ` Requires ${expected}`); + } else if (prebuiltPlatforms.includes(runtimePlatform) && !/libstdc\+\+\.so/.test(messages)) { + const [os, cpu] = runtimePlatform.split("-"); + const libc = os.endsWith("musl") ? " --libc=musl" : ""; + help.push( + "- Ensure optional dependencies can be installed:", + " npm install --include=optional sharp", + "- Ensure your package manager supports multi-platform installation:", + " See https://sharp.pixelplumbing.com/install#cross-platform", + "- Add platform-specific dependencies:", + ` npm install --os=${os.replace("musl", "")}${libc} --cpu=${cpu} sharp`, + ); + } else { + help.push( + `- Manually install libvips >= ${minimumLibvipsVersion}`, + " See https://sharp.pixelplumbing.com/install#building-from-source", + "- Add WebAssembly-based dependencies:", + " npm install sharp @img/sharp-wasm32", + ); + } + if (isLinux && /(symbol not found|CXXABI_)/i.test(messages)) { + try { + const { config } = require(`@img/sharp-libvips-${runtimePlatform}/package`); + const libcFound = `${familySync()} ${versionSync()}`; + const libcRequires = `${config.musl ? "musl" : "glibc"} ${config.musl || config.glibc}`; + help.push("- Update your OS:", ` Found ${libcFound}`, ` Requires ${libcRequires}`); + } catch (_errEngines) {} + } + if (isLinux && /\/snap\/core[0-9]{2}/.test(messages)) { + help.push("- Remove the Node.js Snap, which does not support native modules", " snap remove node"); + } + if (isMacOs && /Incompatible library version/.test(messages)) { + help.push("- Update Homebrew:", " brew update && brew upgrade vips"); + } + if (errors.some((err) => err.code === "ERR_DLOPEN_DISABLED")) { + help.push("- Run Node.js without using the --no-addons flag"); + } + // Link to installation docs + if (isWindows && /The specified procedure could not be found/.test(messages)) { + help.push( + "- Using the canvas package on Windows?", + " See https://sharp.pixelplumbing.com/install#canvas-and-windows", + "- Check for outdated versions of sharp in the dependency tree:", + " npm ls sharp", + ); + } + help.push("- Consult the installation documentation:", " See https://sharp.pixelplumbing.com/install"); + throw new Error(help.join("\n")); +} + +export default sharp; diff --git a/apps/api/.output/node_modules/sharp/dist/utility.cjs b/apps/api/.output/node_modules/sharp/dist/utility.cjs new file mode 100644 index 0000000..e2407cc --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/utility.cjs @@ -0,0 +1,301 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const events = require('node:events'); + +const { availableParallelism } = require("node:os"); +const detectLibc = require('detect-libc'); + +const is = require('./is.cjs'); +const libvips = require('./libvips.cjs'); +const sharp = require('./sharp.cjs'); +const pkg = require("../package.json"); + + +const runtimePlatform = libvips.runtimePlatformArch(); +const libvipsVersion = sharp.libvipsVersion(); + +/** + * An Object containing nested boolean values representing the available input and output formats/methods. + * @member + * @example + * console.log(sharp.format); + * @returns {Object} + */ +const format = sharp.format(); +format.heif.output.alias = ['avif', 'heic']; +format.jpeg.output.alias = ['jpe', 'jpg']; +format.tiff.output.alias = ['tif']; +format.jp2.output.alias = ['j2c', 'j2k', 'jp2', 'jpx']; + +/** + * An Object containing the available interpolators and their proper values + * @readonly + * @enum {string} + */ +const interpolators = { + /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ + nearest: 'nearest', + /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ + bilinear: 'bilinear', + /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ + bicubic: 'bicubic', + /** [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. */ + locallyBoundedBicubic: 'lbb', + /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ + nohalo: 'nohalo', + /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ + vertexSplitQuadraticBasisSpline: 'vsqbs' +}; + +/** + * An Object containing the version numbers of sharp, libvips + * and (when using prebuilt binaries) its dependencies. + * + * @member + * @example + * console.log(sharp.versions); + */ +let versions = { + vips: libvipsVersion.semver +}; +/* node:coverage ignore next 15 */ +if (!libvipsVersion.isGlobal) { + if (!libvipsVersion.isWasm) { + try { + versions = require(`@img/sharp-${runtimePlatform}/versions`); + } catch (_) { + try { + versions = require(`@img/sharp-libvips-${runtimePlatform}/versions`); + } catch (_) {} + } + } else { + try { + versions = require('@img/sharp-wasm32/versions'); + } catch (_) {} + } +} +versions.sharp = pkg.version; + +/* node:coverage ignore next 5 */ +if (versions.heif && format.heif) { + // Prebuilt binaries provide AV1 + format.heif.input.fileSuffix = ['.avif']; + format.heif.output.alias = ['avif']; +} + +/** + * Gets or, when options are provided, sets the limits of _libvips'_ operation cache. + * Existing entries in the cache will be trimmed after any change in limits. + * This method always returns cache statistics, + * useful for determining how much working memory is required for a particular task. + * + * @example + * const stats = sharp.cache(); + * @example + * sharp.cache( { items: 200 } ); + * sharp.cache( { files: 0 } ); + * sharp.cache(false); + * + * @param {Object|boolean} [options=true] - Object with the following attributes, or boolean where true uses default cache settings and false removes all caching + * @param {number} [options.memory=50] - is the maximum memory in MB to use for this cache + * @param {number} [options.files=20] - is the maximum number of files to hold open + * @param {number} [options.items=100] - is the maximum number of operations to cache + * @returns {Object} + */ +function cache (options) { + if (is.bool(options)) { + if (options) { + // Default cache settings of 50MB, 20 files, 100 items + return sharp.cache(50, 20, 100); + } else { + return sharp.cache(0, 0, 0); + } + } else if (is.object(options)) { + for (const property of ['memory', 'files', 'items']) { + const value = options[property]; + if (is.defined(value) && !(is.integer(value) && value >= 0)) { + throw is.invalidParameterError(property, 'a positive integer', value); + } + } + return sharp.cache(options.memory, options.files, options.items); + } else { + return sharp.cache(); + } +} +cache(true); + +/** + * Gets or, when a concurrency is provided, sets + * the maximum number of threads _libvips_ should use to process _each image_. + * These are from a thread pool managed by glib, + * which helps avoid the overhead of creating new threads. + * + * This method always returns the current concurrency. + * + * The default value is the number of CPU cores, + * except when using glibc-based Linux without jemalloc, + * where the default is `1` to help reduce memory fragmentation. + * + * A value of `0` will reset this to the number of CPU cores. + * + * Some image format libraries spawn additional threads, + * e.g. libaom manages its own 4 threads when encoding AVIF images, + * and these are independent of the value set here. + * + * :::note + * Further {@link /performance/ control over performance} is available. + * ::: + * + * @example + * const threads = sharp.concurrency(); // 4 + * sharp.concurrency(2); // 2 + * sharp.concurrency(0); // 4 + * + * @param {number} [concurrency] + * @returns {number} concurrency + */ +function concurrency (concurrency) { + return sharp.concurrency(is.integer(concurrency) ? concurrency : null); +} +/* node:coverage ignore next 7 */ +if (!process.env.MALLOC_ARENA_MAX && detectLibc.familySync() === detectLibc.GLIBC && !sharp._isUsingJemalloc()) { + // Reduce default concurrency to 1 when using glibc memory allocator + sharp.concurrency(1); +} else if (detectLibc.familySync() === detectLibc.MUSL && sharp.concurrency() === 1024) { + // Reduce default concurrency when musl thread over-subscription detected + sharp.concurrency(availableParallelism()); +} + +/** + * An EventEmitter that emits a `change` event when a task is either: + * - queued, waiting for _libuv_ to provide a worker thread + * - complete + * @member + * @example + * sharp.queue.on('change', function(queueLength) { + * console.log('Queue contains ' + queueLength + ' task(s)'); + * }); + */ +const queue = new events.EventEmitter(); + +/** + * Provides access to internal task counters. + * - queue is the number of tasks this module has queued waiting for _libuv_ to provide a worker thread from its pool. + * - process is the number of resize tasks currently being processed. + * + * @example + * const counters = sharp.counters(); // { queue: 2, process: 4 } + * + * @returns {Object} + */ +function counters () { + return sharp.counters(); +} + +/** + * Get and set use of SIMD vector unit instructions. + * Requires libvips to have been compiled with highway support. + * + * Improves the performance of `resize`, `blur` and `sharpen` operations + * by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON. + * + * @example + * const simd = sharp.simd(); + * // simd is `true` if the runtime use of highway is currently enabled + * @example + * const simd = sharp.simd(false); + * // prevent libvips from using highway at runtime + * + * @param {boolean} [simd=true] + * @returns {boolean} + */ +function simd (simd) { + return sharp.simd(is.bool(simd) ? simd : null); +} + +/** + * Block libvips operations at runtime. + * + * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable, + * which when set will block all "untrusted" operations. + * + * @since 0.32.4 + * + * @example Block all TIFF input. + * sharp.block({ + * operation: ['VipsForeignLoadTiff'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to block. + */ +function block (options) { + if (is.object(options)) { + if (Array.isArray(options.operation) && options.operation.every(is.string)) { + sharp.block(options.operation, true); + } else { + throw is.invalidParameterError('operation', 'Array', options.operation); + } + } else { + throw is.invalidParameterError('options', 'object', options); + } +} + +/** + * Unblock libvips operations at runtime. + * + * This is useful for defining a list of allowed operations. + * + * @since 0.32.4 + * + * @example Block all input except WebP from the filesystem. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadWebpFile'] + * }); + * + * @example Block all input except JPEG and PNG from a Buffer or Stream. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to unblock. + */ +function unblock (options) { + if (is.object(options)) { + if (Array.isArray(options.operation) && options.operation.every(is.string)) { + sharp.block(options.operation, false); + } else { + throw is.invalidParameterError('operation', 'Array', options.operation); + } + } else { + throw is.invalidParameterError('options', 'object', options); + } +} + +/** + * Decorate the Sharp class with utility-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Sharp.cache = cache; + Sharp.concurrency = concurrency; + Sharp.counters = counters; + Sharp.simd = simd; + Sharp.format = format; + Sharp.interpolators = interpolators; + Sharp.versions = versions; + Sharp.queue = queue; + Sharp.block = block; + Sharp.unblock = unblock; +}; diff --git a/apps/api/.output/node_modules/sharp/dist/utility.mjs b/apps/api/.output/node_modules/sharp/dist/utility.mjs new file mode 100644 index 0000000..be26db5 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/dist/utility.mjs @@ -0,0 +1,301 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +import events from 'node:events'; +import { createRequire } from "node:module"; +import { availableParallelism } from "node:os"; +import detectLibc from 'detect-libc'; + +import is from './is.mjs'; +import libvips from './libvips.mjs'; +import sharp from './sharp.mjs'; +import pkg from "../package.json" with { type: "json" }; + +const require = createRequire(import.meta.url); +const runtimePlatform = libvips.runtimePlatformArch(); +const libvipsVersion = sharp.libvipsVersion(); + +/** + * An Object containing nested boolean values representing the available input and output formats/methods. + * @member + * @example + * console.log(sharp.format); + * @returns {Object} + */ +const format = sharp.format(); +format.heif.output.alias = ['avif', 'heic']; +format.jpeg.output.alias = ['jpe', 'jpg']; +format.tiff.output.alias = ['tif']; +format.jp2.output.alias = ['j2c', 'j2k', 'jp2', 'jpx']; + +/** + * An Object containing the available interpolators and their proper values + * @readonly + * @enum {string} + */ +const interpolators = { + /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ + nearest: 'nearest', + /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ + bilinear: 'bilinear', + /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ + bicubic: 'bicubic', + /** [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. */ + locallyBoundedBicubic: 'lbb', + /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ + nohalo: 'nohalo', + /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ + vertexSplitQuadraticBasisSpline: 'vsqbs' +}; + +/** + * An Object containing the version numbers of sharp, libvips + * and (when using prebuilt binaries) its dependencies. + * + * @member + * @example + * console.log(sharp.versions); + */ +let versions = { + vips: libvipsVersion.semver +}; +/* node:coverage ignore next 15 */ +if (!libvipsVersion.isGlobal) { + if (!libvipsVersion.isWasm) { + try { + versions = require(`@img/sharp-${runtimePlatform}/versions`); + } catch (_) { + try { + versions = require(`@img/sharp-libvips-${runtimePlatform}/versions`); + } catch (_) {} + } + } else { + try { + versions = require('@img/sharp-wasm32/versions'); + } catch (_) {} + } +} +versions.sharp = pkg.version; + +/* node:coverage ignore next 5 */ +if (versions.heif && format.heif) { + // Prebuilt binaries provide AV1 + format.heif.input.fileSuffix = ['.avif']; + format.heif.output.alias = ['avif']; +} + +/** + * Gets or, when options are provided, sets the limits of _libvips'_ operation cache. + * Existing entries in the cache will be trimmed after any change in limits. + * This method always returns cache statistics, + * useful for determining how much working memory is required for a particular task. + * + * @example + * const stats = sharp.cache(); + * @example + * sharp.cache( { items: 200 } ); + * sharp.cache( { files: 0 } ); + * sharp.cache(false); + * + * @param {Object|boolean} [options=true] - Object with the following attributes, or boolean where true uses default cache settings and false removes all caching + * @param {number} [options.memory=50] - is the maximum memory in MB to use for this cache + * @param {number} [options.files=20] - is the maximum number of files to hold open + * @param {number} [options.items=100] - is the maximum number of operations to cache + * @returns {Object} + */ +function cache (options) { + if (is.bool(options)) { + if (options) { + // Default cache settings of 50MB, 20 files, 100 items + return sharp.cache(50, 20, 100); + } else { + return sharp.cache(0, 0, 0); + } + } else if (is.object(options)) { + for (const property of ['memory', 'files', 'items']) { + const value = options[property]; + if (is.defined(value) && !(is.integer(value) && value >= 0)) { + throw is.invalidParameterError(property, 'a positive integer', value); + } + } + return sharp.cache(options.memory, options.files, options.items); + } else { + return sharp.cache(); + } +} +cache(true); + +/** + * Gets or, when a concurrency is provided, sets + * the maximum number of threads _libvips_ should use to process _each image_. + * These are from a thread pool managed by glib, + * which helps avoid the overhead of creating new threads. + * + * This method always returns the current concurrency. + * + * The default value is the number of CPU cores, + * except when using glibc-based Linux without jemalloc, + * where the default is `1` to help reduce memory fragmentation. + * + * A value of `0` will reset this to the number of CPU cores. + * + * Some image format libraries spawn additional threads, + * e.g. libaom manages its own 4 threads when encoding AVIF images, + * and these are independent of the value set here. + * + * :::note + * Further {@link /performance/ control over performance} is available. + * ::: + * + * @example + * const threads = sharp.concurrency(); // 4 + * sharp.concurrency(2); // 2 + * sharp.concurrency(0); // 4 + * + * @param {number} [concurrency] + * @returns {number} concurrency + */ +function concurrency (concurrency) { + return sharp.concurrency(is.integer(concurrency) ? concurrency : null); +} +/* node:coverage ignore next 7 */ +if (!process.env.MALLOC_ARENA_MAX && detectLibc.familySync() === detectLibc.GLIBC && !sharp._isUsingJemalloc()) { + // Reduce default concurrency to 1 when using glibc memory allocator + sharp.concurrency(1); +} else if (detectLibc.familySync() === detectLibc.MUSL && sharp.concurrency() === 1024) { + // Reduce default concurrency when musl thread over-subscription detected + sharp.concurrency(availableParallelism()); +} + +/** + * An EventEmitter that emits a `change` event when a task is either: + * - queued, waiting for _libuv_ to provide a worker thread + * - complete + * @member + * @example + * sharp.queue.on('change', function(queueLength) { + * console.log('Queue contains ' + queueLength + ' task(s)'); + * }); + */ +const queue = new events.EventEmitter(); + +/** + * Provides access to internal task counters. + * - queue is the number of tasks this module has queued waiting for _libuv_ to provide a worker thread from its pool. + * - process is the number of resize tasks currently being processed. + * + * @example + * const counters = sharp.counters(); // { queue: 2, process: 4 } + * + * @returns {Object} + */ +function counters () { + return sharp.counters(); +} + +/** + * Get and set use of SIMD vector unit instructions. + * Requires libvips to have been compiled with highway support. + * + * Improves the performance of `resize`, `blur` and `sharpen` operations + * by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON. + * + * @example + * const simd = sharp.simd(); + * // simd is `true` if the runtime use of highway is currently enabled + * @example + * const simd = sharp.simd(false); + * // prevent libvips from using highway at runtime + * + * @param {boolean} [simd=true] + * @returns {boolean} + */ +function simd (simd) { + return sharp.simd(is.bool(simd) ? simd : null); +} + +/** + * Block libvips operations at runtime. + * + * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable, + * which when set will block all "untrusted" operations. + * + * @since 0.32.4 + * + * @example Block all TIFF input. + * sharp.block({ + * operation: ['VipsForeignLoadTiff'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to block. + */ +function block (options) { + if (is.object(options)) { + if (Array.isArray(options.operation) && options.operation.every(is.string)) { + sharp.block(options.operation, true); + } else { + throw is.invalidParameterError('operation', 'Array', options.operation); + } + } else { + throw is.invalidParameterError('options', 'object', options); + } +} + +/** + * Unblock libvips operations at runtime. + * + * This is useful for defining a list of allowed operations. + * + * @since 0.32.4 + * + * @example Block all input except WebP from the filesystem. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadWebpFile'] + * }); + * + * @example Block all input except JPEG and PNG from a Buffer or Stream. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to unblock. + */ +function unblock (options) { + if (is.object(options)) { + if (Array.isArray(options.operation) && options.operation.every(is.string)) { + sharp.block(options.operation, false); + } else { + throw is.invalidParameterError('operation', 'Array', options.operation); + } + } else { + throw is.invalidParameterError('options', 'object', options); + } +} + +/** + * Decorate the Sharp class with utility-related functions. + * @module Sharp + * @private + */ +export default (Sharp) => { + Sharp.cache = cache; + Sharp.concurrency = concurrency; + Sharp.counters = counters; + Sharp.simd = simd; + Sharp.format = format; + Sharp.interpolators = interpolators; + Sharp.versions = versions; + Sharp.queue = queue; + Sharp.block = block; + Sharp.unblock = unblock; +}; diff --git a/apps/api/.output/node_modules/sharp/install/build.js b/apps/api/.output/node_modules/sharp/install/build.js new file mode 100644 index 0000000..8eaa0f5 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/install/build.js @@ -0,0 +1,38 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const { + useGlobalLibvips, + globalLibvipsVersion, + log, + spawnRebuild, +} = require('../dist/libvips.cjs'); + +log('Building from source'); +log('See https://sharp.pixelplumbing.com/install#building-from-source'); + +try { + const addonApi = require('node-addon-api'); + log(`Found node-addon-api ${addonApi.version || ''}`); +} catch (_err) { + log('Please add node-addon-api to your dependencies'); + process.exit(1); +} +try { + const gyp = require('node-gyp'); + log(`Found node-gyp ${gyp().version}`); +} catch (_err) { + log('Please add node-gyp to your dependencies'); + process.exit(1); +} + +if (useGlobalLibvips(log)) { + log(`Found globally-installed libvips v${globalLibvipsVersion()}`); +} + +const status = spawnRebuild(); +if (status !== 0) { + process.exit(status); +} diff --git a/apps/api/.output/node_modules/sharp/lib/index.d.ts b/apps/api/.output/node_modules/sharp/lib/index.d.ts new file mode 100644 index 0000000..470889a --- /dev/null +++ b/apps/api/.output/node_modules/sharp/lib/index.d.ts @@ -0,0 +1,1999 @@ +/** + * Copyright 2017 François Nguyen and others. + * + * Billy Kwok + * Bradley Odell + * Espen Hovlandsdal + * Floris de Bijl + * François Nguyen + * Jamie Woodbury + * Wooseop Kim + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of + * the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +// SPDX-License-Identifier: MIT + +/// + +declare type Duplex = import('node:stream').Duplex; +declare type ColorLike = import('@img/colour').ColorLike; + +//#region Constructor functions + +/** + * Creates a sharp instance from an image + * @param input Buffer containing JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data, or String containing the path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file. + * @param options Object with optional attributes. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ +declare function sharp(options?: sharp.SharpOptions): sharp.Sharp; +declare function sharp( + input?: sharp.SharpInput | Array, + options?: sharp.SharpOptions, +): sharp.Sharp; + +declare namespace sharp { + /** Object containing nested boolean values representing the available input and output formats/methods. */ + const format: FormatEnum; + + /** An Object containing the version numbers of sharp, libvips and its dependencies. */ + const versions: { + aom?: string | undefined; + archive?: string | undefined; + cairo?: string | undefined; + cgif?: string | undefined; + exif?: string | undefined; + expat?: string | undefined; + ffi?: string | undefined; + fontconfig?: string | undefined; + freetype?: string | undefined; + fribidi?: string | undefined; + glib?: string | undefined; + harfbuzz?: string | undefined; + heif?: string | undefined; + highway?: string | undefined; + imagequant?: string | undefined; + lcms?: string | undefined; + mozjpeg?: string | undefined; + pango?: string | undefined; + pixman?: string | undefined; + png?: string | undefined; + "proxy-libintl"?: string | undefined; + rsvg?: string | undefined; + sharp: string; + spng?: string | undefined; + tiff?: string | undefined; + vips: string; + webp?: string | undefined; + xml?: string | undefined; + "zlib-ng"?: string | undefined; + }; + + /** An Object containing the available interpolators and their proper values */ + const interpolators: Interpolators; + + /** An EventEmitter that emits a change event when a task is either queued, waiting for libuv to provide a worker thread, complete */ + const queue: NodeJS.EventEmitter; + + //#endregion + + //#region Utility functions + + /** + * Gets or, when options are provided, sets the limits of libvips' operation cache. + * Existing entries in the cache will be trimmed after any change in limits. + * This method always returns cache statistics, useful for determining how much working memory is required for a particular task. + * @param options Object with the following attributes, or Boolean where true uses default cache settings and false removes all caching (optional, default true) + * @returns The cache results. + */ + function cache(options?: boolean | CacheOptions): CacheResult; + + /** + * Gets or sets the number of threads libvips' should create to process each image. + * The default value is the number of CPU cores. A value of 0 will reset to this default. + * The maximum number of images that can be processed in parallel is limited by libuv's UV_THREADPOOL_SIZE environment variable. + * @param concurrency The new concurrency value. + * @returns The current concurrency value. + */ + function concurrency(concurrency?: number): number; + + /** + * Provides access to internal task counters. + * @returns Object containing task counters + */ + function counters(): SharpCounters; + + /** + * Get and set use of SIMD vector unit instructions. Requires libvips to have been compiled with highway support. + * Improves the performance of resize, blur and sharpen operations by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON. + * @param enable enable or disable use of SIMD vector unit instructions + * @returns true if usage of SIMD vector unit instructions is enabled + */ + function simd(enable?: boolean): boolean; + + /** + * Block libvips operations at runtime. + * + * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable, + * which when set will block all "untrusted" operations. + * + * @since 0.32.4 + * + * @example Block all TIFF input. + * sharp.block({ + * operation: ['VipsForeignLoadTiff'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to block. + */ + function block(options: { operation: string[] }): void; + + /** + * Unblock libvips operations at runtime. + * + * This is useful for defining a list of allowed operations. + * + * @since 0.32.4 + * + * @example Block all input except WebP from the filesystem. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadWebpFile'] + * }); + * + * @example Block all input except JPEG and PNG from a Buffer or Stream. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to unblock. + */ + function unblock(options: { operation: string[] }): void; + + //#endregion + + const gravity: GravityEnum; + const strategy: StrategyEnum; + const kernel: KernelEnum; + const fit: FitEnum; + const bool: BoolEnum; + + interface Sharp extends Duplex { + //#region Channel functions + + /** + * Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel. + * @returns A sharp instance that can be used to chain operations + */ + removeAlpha(): Sharp; + + /** + * Ensure alpha channel, if missing. The added alpha channel will be fully opaque. This is a no-op if the image already has an alpha channel. + * @param alpha transparency level (0=fully-transparent, 1=fully-opaque) (optional, default 1). + * @returns A sharp instance that can be used to chain operations + */ + ensureAlpha(alpha?: number): Sharp; + + /** + * Extract a single channel from a multi-channel image. + * @param channel zero-indexed channel/band number to extract, or red, green, blue or alpha. + * @throws {Error} Invalid channel + * @returns A sharp instance that can be used to chain operations + */ + extractChannel(channel: 0 | 1 | 2 | 3 | 'red' | 'green' | 'blue' | 'alpha'): Sharp; + + /** + * Join one or more channels to the image. The meaning of the added channels depends on the output colourspace, set with toColourspace(). + * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. Channel ordering follows vips convention: + * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha. + * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha. + * + * Buffers may be any of the image formats supported by sharp. + * For raw pixel input, the options object should contain a raw attribute, which follows the format of the attribute of the same name in the sharp() constructor. + * @param images one or more images (file paths, Buffers). + * @param options image options, see sharp() constructor. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + joinChannel(images: string | Buffer | ArrayLike, options?: SharpOptions): Sharp; + + /** + * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image. + * @param boolOp one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + bandbool(boolOp: keyof BoolEnum): Sharp; + + //#endregion + + //#region Color functions + + /** + * Tint the image using the provided colour. + * An alpha channel may be present and will be unchanged by the operation. + * @param tint Parsed by the color module. + * @returns A sharp instance that can be used to chain operations + */ + tint(tint: ColorLike): Sharp; + + /** + * Convert to 8-bit greyscale; 256 shades of grey. + * This is a linear operation. + * If the input image is in a non-linear colour space such as sRGB, use gamma() with greyscale() for the best results. + * By default the output image will be web-friendly sRGB and contain three (identical) colour channels. + * This may be overridden by other sharp operations such as toColourspace('b-w'), which will produce an output image containing one colour channel. + * An alpha channel may be present, and will be unchanged by the operation. + * @param greyscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + greyscale(greyscale?: boolean): Sharp; + + /** + * Alternative spelling of greyscale(). + * @param grayscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + grayscale(grayscale?: boolean): Sharp; + + /** + * Set the pipeline colourspace. + * The input image will be converted to the provided colourspace at the start of the pipeline. + * All operations will use this colourspace before converting to the output colourspace, as defined by toColourspace. + * + * @param colourspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of pipelineColourspace + * @param colorspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColorspace(colorspace?: string): Sharp; + + /** + * Set the output colourspace. + * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * @param colourspace output colourspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of toColourspace(). + * @param colorspace output colorspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColorspace(colorspace: string): Sharp; + + //#endregion + + //#region Composite functions + + /** + * Composite image(s) over the processed (resized, extracted etc.) image. + * + * The images to composite must be the same size or smaller than the processed image. + * If both `top` and `left` options are provided, they take precedence over `gravity`. + * @param images - Ordered list of images to composite + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + composite(images: OverlayOptions[]): Sharp; + + //#endregion + + //#region Input functions + + /** + * Take a "snapshot" of the Sharp instance, returning a new instance. + * Cloned instances inherit the input of their parent instance. + * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream. + * @returns A sharp instance that can be used to chain operations + */ + clone(): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A sharp instance that can be used to chain operations + */ + metadata(callback: (err: Error, metadata: Metadata) => void): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A promise that resolves with a metadata object + */ + metadata(): Promise; + + /** + * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepMetadata(): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A sharp instance that can be used to chain operations + */ + stats(callback: (err: Error, stats: Stats) => void): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A promise that resolves with a stats object + */ + stats(): Promise; + + //#endregion + + //#region Operation functions + + /** + * Rotate the output image by either an explicit angle + * or auto-orient based on the EXIF `Orientation` tag. + * + * If an angle is provided, it is converted to a valid positive degree rotation. + * For example, `-450` will produce a 270 degree rotation. + * + * When rotating by an angle other than a multiple of 90, + * the background colour can be provided with the `background` option. + * + * If no angle is provided, it is determined from the EXIF data. + * Mirroring is supported and may infer the use of a flip operation. + * + * The use of `rotate` without an angle will remove the EXIF `Orientation` tag, if any. + * + * Only one rotation can occur per pipeline (aside from an initial call without + * arguments to orient via EXIF data). Previous calls to `rotate` in the same + * pipeline will be ignored. + * + * Multi-page images can only be rotated by 180 degrees. + * + * Method order is important when rotating, resizing and/or extracting regions, + * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`. + * + * @example + * const pipeline = sharp() + * .rotate() + * .resize(null, 200) + * .toBuffer(function (err, outputBuffer, info) { + * // outputBuffer contains 200px high JPEG image data, + * // auto-rotated using EXIF Orientation tag + * // info.width and info.height contain the dimensions of the resized image + * }); + * readableStream.pipe(pipeline); + * + * @example + * const rotateThenResize = await sharp(input) + * .rotate(90) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .toBuffer(); + * const resizeThenRotate = await sharp(input) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .rotate(90) + * .toBuffer(); + * + * @param {number} [angle=auto] angle of rotation. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string|Object} [options.background="#000000"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ + rotate(angle?: number, options?: RotateOptions): Sharp; + + /** + * Alias for calling `rotate()` with no arguments, which orients the image based + * on EXIF orientsion. + * + * This operation is aliased to emphasize its purpose, helping to remove any + * confusion between rotation and orientation. + * + * @example + * const output = await sharp(input).autoOrient().toBuffer(); + * + * @returns {Sharp} + */ + autoOrient(): Sharp + + /** + * Flip the image about the vertical Y axis. This always occurs after rotation, if any. + * The use of flip implies the removal of the EXIF Orientation tag, if any. + * @param flip true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flip(flip?: boolean): Sharp; + + /** + * Flop the image about the horizontal X axis. This always occurs after rotation, if any. + * The use of flop implies the removal of the EXIF Orientation tag, if any. + * @param flop true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flop(flop?: boolean): Sharp; + + /** + * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any. + * You must provide an array of length 4 or a 2x2 affine transformation matrix. + * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option. + * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`. + * + * In the case of a 2x2 matrix, the transform is: + * X = matrix[0, 0] * (x + idx) + matrix[0, 1] * (y + idy) + odx + * Y = matrix[1, 0] * (x + idx) + matrix[1, 1] * (y + idy) + ody + * + * where: + * + * x and y are the coordinates in input image. + * X and Y are the coordinates in output image. + * (0,0) is the upper left corner. + * + * @param matrix Affine transformation matrix, may either by a array of length four or a 2x2 matrix array + * @param options if present, is an Object with optional attributes. + * + * @returns A sharp instance that can be used to chain operations + */ + affine(matrix: [number, number, number, number] | Matrix2x2, options?: AffineOptions): Sharp; + + /** + * Sharpen the image. + * When used without parameters, performs a fast, mild sharpen of the output image. + * When a sigma is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * @param options if present, is an Object with optional attributes + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + sharpen(options?: SharpenOptions): Sharp; + + /** + * Apply median filter. When used without parameters the default window is 3x3. + * @param size square mask size: size x size (optional, default 3) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + median(size?: number): Sharp; + + /** + * Blur the image. + * When used without parameters, performs a fast, mild blur of the output image. + * When a sigma is provided, performs a slower, more accurate Gaussian blur. + * When a boolean sigma is provided, ether blur mild or disable blur + * @param sigma a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where sigma = 1 + radius / 2. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + blur(sigma?: number | boolean | BlurOptions): Sharp; + + /** + * Expand foreground objects using the dilate morphological operator. + * @param {Number} [width=1] dilation width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + dilate(width?: number): Sharp; + + /** + * Shrink foreground objects using the erode morphological operator. + * @param {Number} [width=1] erosion width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + erode(width?: number): Sharp; + + /** + * Merge alpha transparency channel, if any, with background. + * @param flatten true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flatten(flatten?: boolean | FlattenOptions): Sharp; + + /** + * Ensure the image has an alpha channel with all white pixel values made fully transparent. + * Existing alpha channel values for non-white pixels remain unchanged. + * @returns A sharp instance that can be used to chain operations + */ + unflatten(): Sharp; + + /** + * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of 1/gamma then increasing the encoding (brighten) post-resize at a factor of gamma. + * This can improve the perceived brightness of a resized image in non-linear colour spaces. + * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation when applying a gamma correction. + * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases. + * @param gamma value between 1.0 and 3.0. (optional, default 2.2) + * @param gammaOut value between 1.0 and 3.0. (optional, defaults to same as gamma) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + gamma(gamma?: number, gammaOut?: number): Sharp; + + /** + * Produce the "negative" of the image. + * @param negate true to enable and false to disable, or an object of options (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + negate(negate?: boolean | NegateOptions): Sharp; + + /** + * Enhance output image contrast by stretching its luminance to cover a full dynamic range. + * + * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes. + * + * Luminance values below the `lower` percentile will be underexposed by clipping to zero. + * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value. + * + * @param normalise options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalise(normalise?: NormaliseOptions): Sharp; + + /** + * Alternative spelling of normalise. + * @param normalize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalize(normalize?: NormaliseOptions): Sharp; + + /** + * Perform contrast limiting adaptive histogram equalization (CLAHE) + * + * This will, in general, enhance the clarity of the image by bringing out + * darker details. Please read more about CLAHE here: + * https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE + * + * @param options clahe options + */ + clahe(options: ClaheOptions): Sharp; + + /** + * Convolve the image with the specified kernel. + * @param kernel the specified kernel + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + convolve(kernel: Kernel): Sharp; + + /** + * Any pixel value greather than or equal to the threshold value will be set to 255, otherwise it will be set to 0. + * @param threshold a value in the range 0-255 representing the level at which the threshold will be applied. (optional, default 128) + * @param options threshold options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + threshold(threshold?: number, options?: ThresholdOptions): Sharp; + + /** + * Perform a bitwise boolean operation with operand image. + * This operation creates an output image where each pixel is the result of the selected bitwise boolean operation between the corresponding pixels of the input images. + * @param operand Buffer containing image data or String containing the path to an image file. + * @param operator one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @param options describes operand when using raw pixel data. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + boolean(operand: string | Buffer, operator: keyof BoolEnum, options?: { raw: Raw }): Sharp; + + /** + * Apply the linear formula a * input + b to the image (levels adjustment) + * @param a multiplier (optional, default 1.0) + * @param b offset (optional, default 0.0) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + linear(a?: number | number[] | null, b?: number | number[]): Sharp; + + /** + * Recomb the image with the specified matrix. + * @param inputMatrix 3x3 Recombination matrix or 4x4 Recombination matrix + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + recomb(inputMatrix: Matrix3x3 | Matrix4x4): Sharp; + + /** + * Transforms the image using brightness, saturation, hue rotation and lightness. + * Brightness and lightness both operate on luminance, with the difference being that brightness is multiplicative whereas lightness is additive. + * @param options describes the modulation + * @returns A sharp instance that can be used to chain operations + */ + modulate(options?: { + brightness?: number | undefined; + saturation?: number | undefined; + hue?: number | undefined; + lightness?: number | undefined; + }): Sharp; + + //#endregion + + //#region Output functions + + /** + * Write output image data to a file. + * If an explicit output format is not selected, it will be inferred from the extension, with JPEG, PNG, WebP, AVIF, TIFF, DZI, and libvips' V format supported. + * Note that raw pixel data is only supported for buffer output. + * @param fileOut The path to write the image data to. + * @param callback Callback function called on completion with two arguments (err, info). info contains the output image format, size (bytes), width, height and channels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toFile(fileOut: string, callback: (err: Error, info: OutputInfo) => void): Sharp; + + /** + * Write output image data to a file. + * @param fileOut The path to write the image data to. + * @throws {Error} Invalid parameters + * @returns A promise that fulfills with an object containing information on the resulting file + */ + toFile(fileOut: string): Promise; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @param callback Callback function called on completion with three arguments (err, buffer, info). + * @returns A sharp instance that can be used to chain operations + */ + toBuffer(callback: (err: Error, buffer: Buffer, info: OutputInfo) => void): Sharp; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with the Buffer data. + */ + toBuffer(options?: { resolveWithObject: false }): Promise>; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * The underlying `ArrayBuffer` may be marked as non-transferable by some JavaScript runtimes. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with an object containing the Buffer data and an info object containing the output image format, size (bytes), width, height and channels + */ + toBuffer(options: { resolveWithObject: true }): Promise<{ data: Buffer; info: OutputInfo }>; + + /** + * Write output to a Uint8Array backed by a transferable ArrayBuffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @returns A promise that resolves with an object containing the Uint8Array data and an info object containing the output image format, size (bytes), width, height and channels + */ + toUint8Array(): Promise<{ data: Uint8Array; info: OutputInfo }>; + + /** + * Set output density (DPI) in EXIF metadata. + * @param density Density in dots per inch (DPI). + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withDensity(density: number): Sharp; + + /** + * Keep all EXIF metadata from the input image in the output image. + * EXIF metadata is unsupported for TIFF output. + * @returns A sharp instance that can be used to chain operations + */ + keepExif(): Sharp; + + /** + * Set EXIF metadata in the output image, ignoring any EXIF in the input image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExif(exif: Exif): Sharp; + + /** + * Update EXIF metadata from the input image in the output image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExifMerge(exif: Exif): Sharp; + + /** + * Keep ICC profile from the input image in the output image where possible. + * @returns A sharp instance that can be used to chain operations + */ + keepIccProfile(): Sharp; + + /** + * Transform using an ICC profile and attach to the output image. + * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk). + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withIccProfile(icc: string, options?: WithIccProfileOptions): Sharp; + + /** + * Keep all XMP metadata from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepXmp(): Sharp; + + /** + * Set XMP metadata in the output image. + * @param {string} xmp - String containing XMP metadata to be embedded in the output image. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withXmp(xmp: string): Sharp; + + /** + * Include all metadata (EXIF, XMP, IPTC) from the input image in the output image. + * The default behaviour, when withMetadata is not used, is to strip all metadata and convert to the device-independent sRGB colour space. + * This will also convert to and add a web-friendly sRGB ICC profile. + * @param withMetadata + * @throws {Error} Invalid parameters. + */ + withMetadata(withMetadata?: WriteableMetadata): Sharp; + + /** + * Use these JPEG options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jpeg(options?: JpegOptions): Sharp; + + /** + * Use these JP2 (JPEG 2000) options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jp2(options?: Jp2Options): Sharp; + + /** + * Use these JPEG-XL (JXL) options for output image. + * This feature is experimental, please do not use in production systems. + * Requires libvips compiled with support for libjxl. + * The prebuilt binaries do not include this. + * Image metadata (EXIF, XMP) is unsupported. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jxl(options?: JxlOptions): Sharp; + + /** + * Use these PNG options for output image. + * PNG output is always full colour at 8 or 16 bits per pixel. + * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + png(options?: PngOptions): Sharp; + + /** + * Use these WebP options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + webp(options?: WebpOptions): Sharp; + + /** + * Use these GIF options for output image. + * Requires libvips compiled with support for ImageMagick or GraphicsMagick. The prebuilt binaries do not include this - see installing a custom libvips. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + gif(options?: GifOptions): Sharp; + + /** + * Use these AVIF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + avif(options?: AvifOptions): Sharp; + + /** + * Use these HEIF options for output image. + * Support for patent-encumbered HEIC images requires the use of a globally-installed libvips compiled with support for libheif, libde265 and x265. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + heif(options?: HeifOptions): Sharp; + + /** + * Use these TIFF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tiff(options?: TiffOptions): Sharp; + + /** + * Force output to be raw, uncompressed uint8 pixel data. + * @param options Raw output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + raw(options?: RawOptions): Sharp; + + /** + * Force output to a given format. + * @param format a String or an Object with an 'id' attribute + * @param options output options + * @throws {Error} Unsupported format or options + * @returns A sharp instance that can be used to chain operations + */ + toFormat( + format: keyof FormatEnum | AvailableFormatInfo | "avif", + options?: + | OutputOptions + | JpegOptions + | PngOptions + | WebpOptions + | AvifOptions + | HeifOptions + | JxlOptions + | GifOptions + | Jp2Options + | RawOptions + | TiffOptions, + ): Sharp; + + /** + * Use tile-based deep zoom (image pyramid) output. + * Set the format and options for tile images via the toFormat, jpeg, png or webp functions. + * Use a .zip or .szi file extension with toFile to write to a compressed archive file format. + * @param tile tile options + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tile(tile?: TileOptions): Sharp; + + /** + * Set a timeout for processing, in seconds. Use a value of zero to continue processing indefinitely, the default behaviour. + * The clock starts when libvips opens an input image for processing. Time spent waiting for a libuv thread to become available is not included. + * @param options Object with a `seconds` attribute between 0 and 3600 (number) + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + timeout(options: TimeoutOptions): Sharp; + + //#endregion + + //#region Resize functions + + /** + * Resize image to width, height or width x height. + * + * When both a width and height are provided, the possible methods by which the image should fit these are: + * - cover: Crop to cover both provided dimensions (the default). + * - contain: Embed within both provided dimensions. + * - fill: Ignore the aspect ratio of the input and stretch to both provided dimensions. + * - inside: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified. + * - outside: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified. + * Some of these values are based on the object-fit CSS property. + * + * When using a fit of cover or contain, the default position is centre. Other options are: + * - sharp.position: top, right top, right, right bottom, bottom, left bottom, left, left top. + * - sharp.gravity: north, northeast, east, southeast, south, southwest, west, northwest, center or centre. + * - sharp.strategy: cover only, dynamically crop using either the entropy or attention strategy. Some of these values are based on the object-position CSS property. + * + * The strategy-based approach resizes so one dimension is at its target length then repeatedly ranks edge regions, + * discarding the edge with the lowest score based on the selected strategy. + * - entropy: focus on the region with the highest Shannon entropy. + * - attention: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones. + * + * Possible interpolation kernels are: + * - nearest: Use nearest neighbour interpolation. + * - cubic: Use a Catmull-Rom spline. + * - lanczos2: Use a Lanczos kernel with a=2. + * - lanczos3: Use a Lanczos kernel with a=3 (the default). + * + * @param width pixels wide the resultant image should be. Use null or undefined to auto-scale the width to match the height. + * @param height pixels high the resultant image should be. Use null or undefined to auto-scale the height to match the width. + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(widthOrOptions?: number | ResizeOptions | null, height?: number | null, options?: ResizeOptions): Sharp; + + /** + * Shorthand for resize(null, null, options); + * + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(options: ResizeOptions): Sharp; + + /** + * Extend / pad / extrude one or more edges of the image with either + * the provided background colour or pixels derived from the image. + * This operation will always occur after resizing and extraction, if any. + * @param extend single pixel count to add to all edges or an Object with per-edge counts + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extend(extend: number | ExtendOptions): Sharp; + + /** + * Extract a region of the image. + * - Use extract() before resize() for pre-resize extraction. + * - Use extract() after resize() for post-resize extraction. + * - Use extract() before and after for both. + * + * @param region The region to extract + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extract(region: Region): Sharp; + + /** + * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel. + * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels. + * The info response Object will contain trimOffsetLeft and trimOffsetTop properties. + * @param options trim options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + trim(options?: TrimOptions): Sharp; + + //#endregion + } + + type SharpInput = Buffer + | ArrayBuffer + | Uint8Array + | Uint8ClampedArray + | Int8Array + | Uint16Array + | Int16Array + | Uint32Array + | Int32Array + | Float32Array + | Float64Array + | string; + + interface SharpOptions { + /** + * Auto-orient based on the EXIF `Orientation` tag, if present. + * Mirroring is supported and may infer the use of a flip operation. + * + * Using this option will remove the EXIF `Orientation` tag, if any. + */ + autoOrient?: boolean | undefined; + /** + * When to abort processing of invalid pixel data, one of (in order of sensitivity): + * 'none' (least), 'truncated', 'error' or 'warning' (most), highers level imply lower levels, invalid metadata will always abort. + * Use the default 'warning' level with untrusted input. (optional, default 'warning') + */ + failOn?: FailOnOptions | undefined; + /** + * Do not process input images where the number of pixels (width x height) exceeds this limit. + * Assumes image dimensions contained in the input metadata can be trusted. + * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF). (optional, default 268402689) + */ + limitInputPixels?: number | boolean | undefined; + /** + * Do not process input images where the number of channels exceeds this limit. + * Assumes image metadata can be trusted. + * An integral Number of channels, zero or false to remove limit, true to use default limit of 5. (optional, default 5) + */ + limitInputChannels?: number | boolean | undefined; + /** Set this to true to remove safety features that help prevent memory exhaustion (SVG, PNG). (optional, default false) */ + unlimited?: boolean | undefined; + /** Set this to false to use random access rather than sequential read. Some operations will do this automatically. */ + sequentialRead?: boolean | undefined; + /** The DPI at which to render SVG and PDF images, in the range 1 to 100000. (optional, default 72) */ + density?: number | undefined; + /** Should the embedded ICC profile, if any, be ignored. */ + ignoreIcc?: boolean | undefined; + /** Number of pages to extract for multi-page input (GIF, TIFF, PDF), use -1 for all pages */ + pages?: number | undefined; + /** Page number to start extracting from for multi-page input (GIF, TIFF, PDF), zero based. (optional, default 0) */ + page?: number | undefined; + /** TIFF specific input options */ + tiff?: TiffInputOptions | undefined; + /** SVG specific input options */ + svg?: SvgInputOptions | undefined; + /** PDF specific input options */ + pdf?: PdfInputOptions | undefined; + /** OpenSlide specific input options */ + openSlide?: OpenSlideInputOptions | undefined; + /** JPEG 2000 specific input options */ + jp2?: Jp2InputOptions | undefined; + /** @deprecated Use {@link SharpOptions.tiff} instead */ + subifd?: number | undefined; + /** @deprecated Use {@link SharpOptions.pdf} instead */ + pdfBackground?: ColorLike | undefined; + /** @deprecated Use {@link SharpOptions.openSlide} instead */ + level?: number | undefined; + /** Set to `true` to read all frames/pages of an animated image (equivalent of setting `pages` to `-1`). (optional, default false) */ + animated?: boolean | undefined; + /** Describes raw pixel input image data. See raw() for pixel ordering. */ + raw?: CreateRaw | undefined; + /** Describes a new image to be created. */ + create?: Create | undefined; + /** Describes a new text image to be created. */ + text?: CreateText | undefined; + /** Describes how array of input images should be joined. */ + join?: Join | undefined; + } + + interface CacheOptions { + /** Is the maximum memory in MB to use for this cache (optional, default 50) */ + memory?: number | undefined; + /** Is the maximum number of files to hold open (optional, default 20) */ + files?: number | undefined; + /** Is the maximum number of operations to cache (optional, default 100) */ + items?: number | undefined; + } + + interface TimeoutOptions { + /** Number of seconds after which processing will be stopped (default 0, eg disabled) */ + seconds: number; + } + + interface SharpCounters { + /** The number of tasks this module has queued waiting for libuv to provide a worker thread from its pool. */ + queue: number; + /** The number of resize tasks currently being processed. */ + process: number; + } + + interface Raw { + width: number; + height: number; + channels: Channels; + } + + interface CreateRaw extends Raw { + /** Specifies that the raw input has already been premultiplied, set to true to avoid sharp premultiplying the image. (optional, default false) */ + premultiplied?: boolean | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; + } + + type CreateChannels = 3 | 4; + + interface Create { + /** Number of pixels wide. */ + width: number; + /** Number of pixels high. */ + height: number; + /** Number of bands, 3 for RGB, 4 for RGBA */ + channels: CreateChannels; + /** Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. */ + background: ColorLike; + /** Describes a noise to be created. */ + noise?: Noise | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; + + } + + interface CreateText { + /** Text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. */ + text: string; + /** Font name to render with. */ + font?: string; + /** Absolute filesystem path to a font file that can be used by `font`. */ + fontfile?: string; + /** Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. (optional, default `0`) */ + width?: number; + /** + * Integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution + * defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. (optional, default `0`) + */ + height?: number; + /** Text alignment ('left', 'centre', 'center', 'right'). (optional, default 'left') */ + align?: TextAlign; + /** Set this to true to apply justification to the text. (optional, default `false`) */ + justify?: boolean; + /** The resolution (size) at which to render the text. Does not take effect if `height` is specified. (optional, default `72`) */ + dpi?: number; + /** + * Set this to true to enable RGBA output. This is useful for colour emoji rendering, + * or support for pango markup features like `Red!`. (optional, default `false`) + */ + rgba?: boolean; + /** Text line height in points. Will use the font line height if none is specified. (optional, default `0`) */ + spacing?: number; + /** Word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none' */ + wrap?: TextWrap; + } + + interface Join { + /** Number of images per row. */ + across?: number | undefined; + /** Treat input as frames of an animated image. */ + animated?: boolean | undefined; + /** Space between images, in pixels. */ + shim?: number | undefined; + /** Background colour. */ + background?: ColorLike | undefined; + /** Horizontal alignment. */ + halign?: HorizontalAlignment | undefined; + /** Vertical alignment. */ + valign?: VerticalAlignment | undefined; + } + + interface TiffInputOptions { + /** Sub Image File Directory to extract, defaults to main image. Use -1 for all subifds. */ + subifd?: number | undefined; + } + + interface SvgInputOptions { + /** Custom CSS for SVG input, applied with a User Origin during the CSS cascade. */ + stylesheet?: string | undefined; + /** Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA. */ + highBitdepth?: boolean | undefined; + } + + interface PdfInputOptions { + /** Background colour to use when PDF is partially transparent. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick. */ + background?: ColorLike | undefined; + } + + interface OpenSlideInputOptions { + /** Level to extract from a multi-level input, zero based. (optional, default 0) */ + level?: number | undefined; + } + + interface Jp2InputOptions { + /** Set to `true` to load JPEG 2000 images using [oneshot mode](https://github.com/libvips/libvips/issues/4205) */ + oneshot?: boolean | undefined; + } + + interface ExifDir { + [k: string]: string; + } + + interface Exif { + 'IFD0'?: ExifDir; + 'IFD1'?: ExifDir; + 'IFD2'?: ExifDir; + 'IFD3'?: ExifDir; + } + + type HeifCompression = 'av1' | 'hevc'; + + type HeifTune = 'auto' | 'iq' | 'psnr' | 'ssim'; + + type Unit = 'inch' | 'cm'; + + type MediaType = + 'application/pdf' | + 'image/avif' | + 'image/fits' | + 'image/gif' | + 'image/heic' | + 'image/jp2' | + 'image/jpeg' | + 'image/jxl' | + 'image/png' | + 'image/svg+xml' | + 'image/tiff' | + 'image/vnd.radiance' | + 'image/webp' | + 'image/x-exr' | + 'image/x-portable-pixmap'; + + interface WriteableMetadata { + /** Number of pixels per inch (DPI) */ + density?: number | undefined; + /** Value between 1 and 8, used to update the EXIF Orientation tag. */ + orientation?: number | undefined; + /** + * Filesystem path to output ICC profile, defaults to sRGB. + * @deprecated Use `withIccProfile()` instead. + */ + icc?: string | undefined; + /** + * Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @deprecated Use `withExif()` or `withExifMerge()` instead. + */ + exif?: Exif | undefined; + } + + interface Metadata { + /** Number value of the EXIF Orientation header, if present */ + orientation?: number | undefined; + /** Name of decoder used to decompress image data e.g. jpeg, png, webp, gif, svg */ + format: keyof FormatEnum; + /** Total size of image in bytes, for Stream and Buffer input only */ + size?: number | undefined; + /** Number of pixels wide (EXIF orientation is not taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is not taken into consideration) */ + height: number; + /** Any changed metadata after the image orientation is applied. */ + autoOrient: { + /** Number of pixels wide (EXIF orientation is taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is taken into consideration) */ + height: number; + }; + /** Name of colour space interpretation */ + space: keyof ColourspaceEnum; + /** Number of bands e.g. 3 for sRGB, 4 for CMYK */ + channels: Channels; + /** Name of pixel depth format e.g. uchar, char, ushort, float ... */ + depth: keyof DepthEnum; + /** Number of pixels per inch (DPI), if present */ + density?: number | undefined; + /** String containing JPEG chroma subsampling, 4:2:0 or 4:4:4 for RGB, 4:2:0:4 or 4:4:4:4 for CMYK */ + chromaSubsampling?: string | undefined; + /** Boolean indicating whether the image is interlaced using a progressive scan */ + isProgressive: boolean; + /** Boolean indicating whether the image is palette-based (GIF, PNG). */ + isPalette: boolean; + /** Number of bits per sample for each channel (GIF, PNG). */ + bitsPerSample?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; + /** Number of times to loop an animated image, zero refers to a continuous loop. */ + loop?: number | undefined; + /** Delay in ms between each page in an animated image, provided as an array of integers. */ + delay?: number[] | undefined; + /** Number of the primary page in a HEIF image */ + pagePrimary?: number | undefined; + /** Boolean indicating the presence of an embedded ICC profile */ + hasProfile: boolean; + /** Boolean indicating the presence of an alpha transparency channel */ + hasAlpha: boolean; + /** Buffer containing raw EXIF data, if present */ + exif?: Buffer | undefined; + /** Buffer containing raw ICC profile data, if present */ + icc?: Buffer | undefined; + /** Buffer containing raw IPTC data, if present */ + iptc?: Buffer | undefined; + /** Buffer containing raw XMP data, if present */ + xmp?: Buffer | undefined; + /** String containing XMP data, if valid UTF-8 */ + xmpAsString?: string | undefined; + /** Buffer containing raw TIFFTAG_PHOTOSHOP data, if present */ + tifftagPhotoshop?: Buffer | undefined; + /** The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC) */ + compression?: HeifCompression | undefined; + /** Default background colour, if present, for PNG (bKGD) and GIF images */ + background?: { r: number; g: number; b: number } | { gray: number }; + /** Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide */ + levels?: LevelMetadata[] | undefined; + /** Number of Sub Image File Directories in an OME-TIFF image */ + subifds?: number | undefined; + /** The unit of resolution (density) */ + resolutionUnit?: Unit | undefined; + /** String containing format for images loaded via *magick */ + formatMagick?: string | undefined; + /** Array of keyword/text pairs representing PNG text blocks, if present. */ + comments?: CommentsMetadata[] | undefined; + /** HDR gain map, if present */ + gainMap?: GainMapMetadata | undefined; + /** Media Type (MIME Type) */ + mediaType?: MediaType | undefined; + } + + interface LevelMetadata { + width: number; + height: number; + } + + interface CommentsMetadata { + keyword: string; + text: string; + } + + interface GainMapMetadata { + /** JPEG image */ + image: Buffer; + } + + interface Stats { + /** Array of channel statistics for each channel in the image. */ + channels: ChannelStats[]; + /** Value to identify if the image is opaque or transparent, based on the presence and use of alpha channel */ + isOpaque: boolean; + /** Histogram-based estimation of greyscale entropy, discarding alpha channel if any */ + entropy: number; + /** Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any */ + sharpness: number; + /** Object containing most dominant sRGB colour based on a 4096-bin 3D histogram */ + dominant: { r: number; g: number; b: number }; + } + + interface ChannelStats { + /** minimum value in the channel */ + min: number; + /** maximum value in the channel */ + max: number; + /** sum of all values in a channel */ + sum: number; + /** sum of squared values in a channel */ + squaresSum: number; + /** mean of the values in a channel */ + mean: number; + /** standard deviation for the values in a channel */ + stdev: number; + /** x-coordinate of one of the pixel where the minimum lies */ + minX: number; + /** y-coordinate of one of the pixel where the minimum lies */ + minY: number; + /** x-coordinate of one of the pixel where the maximum lies */ + maxX: number; + /** y-coordinate of one of the pixel where the maximum lies */ + maxY: number; + } + + interface OutputOptions { + /** Force format output, otherwise attempt to use input format (optional, default true) */ + force?: boolean | undefined; + } + + interface WithIccProfileOptions { + /** Should the ICC profile be included in the output image metadata? (optional, default true) */ + attach?: boolean | undefined; + } + + interface JpegOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** Set to '4:4:4' to prevent chroma subsampling when quality <= 90 (optional, default '4:2:0') */ + chromaSubsampling?: string | undefined; + /** Apply trellis quantisation (optional, default false) */ + trellisQuantisation?: boolean | undefined; + /** Apply overshoot deringing (optional, default false) */ + overshootDeringing?: boolean | undefined; + /** Optimise progressive scans, forces progressive (optional, default false) */ + optimiseScans?: boolean | undefined; + /** Alternative spelling of optimiseScans (optional, default false) */ + optimizeScans?: boolean | undefined; + /** Optimise Huffman coding tables (optional, default true) */ + optimiseCoding?: boolean | undefined; + /** Alternative spelling of optimiseCoding (optional, default true) */ + optimizeCoding?: boolean | undefined; + /** Quantization table to use, integer 0-8 (optional, default 0) */ + quantisationTable?: number | undefined; + /** Alternative spelling of quantisationTable (optional, default 0) */ + quantizationTable?: number | undefined; + /** Use mozjpeg defaults (optional, default false) */ + mozjpeg?: boolean | undefined; + } + + interface Jp2Options extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean; + /** Horizontal tile size (optional, default 512) */ + tileWidth?: number; + /** Vertical tile size (optional, default 512) */ + tileHeight?: number; + /** Set to '4:2:0' to enable chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: '4:4:4' | '4:2:0'; + } + + interface JxlOptions extends OutputOptions, AnimationOptions { + /** Maximum encoding error, between 0 (highest quality) and 15 (lowest quality) (optional, default 1.0) */ + distance?: number; + /** Calculate distance based on JPEG-like quality, between 1 and 100, overrides distance if specified */ + quality?: number; + /** Target decode speed tier, between 0 (highest quality) and 4 (lowest quality) (optional, default 0) */ + decodingTier?: number; + /** Use lossless compression (optional, default false) */ + lossless?: boolean; + /** CPU effort, between 1 (fastest) and 9 (slowest) (optional, default 7) */ + effort?: number | undefined; + } + + interface WebpOptions extends OutputOptions, AnimationOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Quality of alpha layer, number from 0-100 (optional, default 100) */ + alphaQuality?: number | undefined; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean | undefined; + /** Use near_lossless compression mode (optional, default false) */ + nearLossless?: boolean | undefined; + /** Use high quality chroma subsampling (optional, default false) */ + smartSubsample?: boolean | undefined; + /** Auto-adjust the deblocking filter, slow but can improve low contrast edges (optional, default false) */ + smartDeblock?: boolean | undefined; + /** Level of CPU effort to reduce file size, integer 0-6 (optional, default 4) */ + effort?: number | undefined; + /** Prevent use of animation key frames to minimise file size (slow) (optional, default false) */ + minSize?: boolean | undefined; + /** Allow mixture of lossy and lossless animation frames (slow) (optional, default false) */ + mixed?: boolean | undefined; + /** Preset options: one of default, photo, picture, drawing, icon, text (optional, default 'default') */ + preset?: keyof PresetEnum | undefined; + /** Preserve the colour data in transparent pixels (optional, default false) */ + exact?: boolean | undefined; + } + + interface AvifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling, requires libvips v8.11.0 (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + /** Tune output for a quality metric, one of 'auto', 'iq', 'psnr' or 'ssim' (optional, default 'auto') */ + tune?: HeifTune | undefined; + } + + interface HeifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** compression format: av1, hevc (optional, default 'av1') */ + compression?: HeifCompression | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + /** Tune output for a quality metric, one of 'auto', 'iq', 'psnr' or 'ssim' (optional, default 'auto') */ + tune?: HeifTune | undefined; + } + + interface GifOptions extends OutputOptions, AnimationOptions { + /** Re-use existing palette, otherwise generate new (slow) */ + reuse?: boolean | undefined; + /** Use progressive (interlace) scan */ + progressive?: boolean | undefined; + /** Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colours?: number | undefined; + /** Alternative spelling of "colours". Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colors?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest) (optional, default 7) */ + effort?: number | undefined; + /** Level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most) (optional, default 1.0) */ + dither?: number | undefined; + /** Maximum inter-frame error for transparency, between 0 (lossless) and 32 (optional, default 0) */ + interFrameMaxError?: number | undefined; + /** Maximum inter-palette error for palette reuse, between 0 and 256 (optional, default 3) */ + interPaletteMaxError?: number | undefined; + /** Keep duplicate frames in the output instead of combining them (optional, default false) */ + keepDuplicateFrames?: boolean | undefined; + } + + interface TiffOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k (optional, default 'jpeg') */ + compression?: string | undefined; + /** Use BigTIFF variant (has no effect when compression is none) (optional, default false) */ + bigtiff?: boolean | undefined; + /** Compression predictor options: none, horizontal, float (optional, default 'horizontal') */ + predictor?: string | undefined; + /** Write an image pyramid (optional, default false) */ + pyramid?: boolean | undefined; + /** Write a tiled tiff (optional, default false) */ + tile?: boolean | undefined; + /** Horizontal tile size (optional, default 256) */ + tileWidth?: number | undefined; + /** Vertical tile size, valid values are integers in the range 1-32768 (optional, default 256) */ + tileHeight?: number | undefined; + /** Horizontal resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 (optional, default 1.0) */ + xres?: number | undefined; + /** Vertical resolution in pixels/mm, valid values are numbers in the range 0.001-1000000 (optional, default 1.0) */ + yres?: number | undefined; + /** Reduce bitdepth to 1, 2 or 4 bit (optional) */ + bitdepth?: 1 | 2 | 4 | undefined; + /** Write 1-bit images as miniswhite (optional, default false) */ + miniswhite?: boolean | undefined; + /** Resolution unit options: inch, cm (optional, default 'inch') */ + resolutionUnit?: Unit | undefined; + } + + interface PngOptions extends OutputOptions { + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** zlib compression level, 0-9 (optional, default 6) */ + compressionLevel?: number | undefined; + /** Use adaptive row filtering (optional, default false) */ + adaptiveFiltering?: boolean | undefined; + /** Use the lowest number of colours needed to achieve given quality (optional, default `100`) */ + quality?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest), sets palette to true (optional, default 7) */ + effort?: number | undefined; + /** Quantise to a palette-based image with alpha transparency support (optional, default false) */ + palette?: boolean | undefined; + /** Maximum number of palette entries (optional, default 256) */ + colours?: number | undefined; + /** Alternative Spelling of "colours". Maximum number of palette entries (optional, default 256) */ + colors?: number | undefined; + /** Level of Floyd-Steinberg error diffusion (optional, default 1.0) */ + dither?: number | undefined; + } + + interface RotateOptions { + /** parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: ColorLike | undefined; + } + + type Precision = 'integer' | 'float' | 'approximate'; + + interface BlurOptions { + /** A value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2` */ + sigma: number; + /** A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask. */ + minAmplitude?: number; + /** How accurate the operation should be, one of: integer, float, approximate. (optional, default "integer") */ + precision?: Precision | undefined; + } + + interface FlattenOptions { + /** background colour, parsed by the color module, defaults to black. (optional, default {r:0,g:0,b:0}) */ + background?: ColorLike | undefined; + } + + interface NegateOptions { + /** whether or not to negate any alpha channel. (optional, default true) */ + alpha?: boolean | undefined; + } + + interface NormaliseOptions { + /** Percentile below which luminance values will be underexposed. */ + lower?: number | undefined; + /** Percentile above which luminance values will be overexposed. */ + upper?: number | undefined; + } + + interface ResizeOptions { + /** Alternative means of specifying width. If both are present this takes priority. */ + width?: number | undefined; + /** Alternative means of specifying height. If both are present this takes priority. */ + height?: number | undefined; + /** How the image should be resized to fit both provided dimensions, one of cover, contain, fill, inside or outside. (optional, default 'cover') */ + fit?: keyof FitEnum | undefined; + /** Position, gravity or strategy to use when fit is cover or contain. (optional, default 'centre') */ + position?: number | string | undefined; + /** Background colour when using a fit of contain, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: ColorLike | undefined; + /** The kernel to use for image reduction. (optional, default 'lanczos3') */ + kernel?: keyof KernelEnum | undefined; + /** Do not enlarge if the width or height are already less than the specified dimensions, equivalent to GraphicsMagick's > geometry option. (optional, default false) */ + withoutEnlargement?: boolean | undefined; + /** Do not reduce if the width or height are already greater than the specified dimensions, equivalent to GraphicsMagick's < geometry option. (optional, default false) */ + withoutReduction?: boolean | undefined; + /** Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern on some images. (optional, default true) */ + fastShrinkOnLoad?: boolean | undefined; + } + + interface Region { + /** zero-indexed offset from left edge, an integer between 0 and 100000000 */ + left: number; + /** zero-indexed offset from top edge, an integer between 0 and 100000000 */ + top: number; + /** dimension of extracted image, an integer between 0 and 100000000 */ + width: number; + /** dimension of extracted image, an integer between 0 and 100000000 */ + height: number; + } + + interface Noise { + /** type of generated noise, currently only gaussian is supported. */ + type: 'gaussian'; + /** mean of pixels in generated noise. */ + mean?: number | undefined; + /** standard deviation of pixels in generated noise. */ + sigma?: number | undefined; + } + + type ExtendWith = 'background' | 'copy' | 'repeat' | 'mirror'; + + interface ExtendOptions { + /** single pixel count to top edge, valid values are integers in the range 0-10000 (optional, default 0) */ + top?: number | undefined; + /** single pixel count to left edge, valid values are integers in the range 0-10000 (optional, default 0) */ + left?: number | undefined; + /** single pixel count to bottom edge, valid values are integers in the range 0-10000 (optional, default 0) */ + bottom?: number | undefined; + /** single pixel count to right edge, valid values are integers in the range 0-10000 (optional, default 0) */ + right?: number | undefined; + /** background colour, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: ColorLike | undefined; + /** how the extension is done, one of: "background", "copy", "repeat", "mirror" (optional, default `'background'`) */ + extendWith?: ExtendWith | undefined; + } + + interface TrimOptions { + /** Background colour, parsed by the color module, defaults to that of the top-left pixel. (optional) */ + background?: ColorLike | undefined; + /** Allowed difference from the above colour, a positive number. (optional, default 10) */ + threshold?: number | undefined; + /** Does the input more closely resemble line art (e.g. vector) rather than being photographic? (optional, default false) */ + lineArt?: boolean | undefined; + /** Leave a margin around trimmed content, integral number of pixels between 0 and 10000000. (optional, default 0) */ + margin?: number | undefined; + } + + interface RawOptions { + depth?: keyof DepthEnum; + } + + /** 1 for grayscale, 2 for grayscale + alpha, 3 for sRGB, 4 for CMYK or RGBA */ + type Channels = 1 | 2 | 3 | 4; + + type Colour = ColorLike; + type Color = ColorLike; + + interface Kernel { + /** width of the kernel in pixels. */ + width: number; + /** height of the kernel in pixels. */ + height: number; + /** Array of length width*height containing the kernel values. */ + kernel: ArrayLike; + /** the scale of the kernel in pixels. (optional, default sum) */ + scale?: number | undefined; + /** the offset of the kernel in pixels. (optional, default 0) */ + offset?: number | undefined; + } + + interface ClaheOptions { + /** width of the region. Valid values are integers in the range 1-65536. */ + width: number; + /** height of the region. Valid values are integers in the range 1-65536. */ + height: number; + /** max slope of the cumulative contrast. A value of 0 disables contrast limiting. Valid values are integers in the range 0-100. (optional, default 3) */ + maxSlope?: number | undefined; + } + + interface ThresholdOptions { + /** convert to single channel greyscale. (optional, default true) */ + greyscale?: boolean | undefined; + /** alternative spelling for greyscale. (optional, default true) */ + grayscale?: boolean | undefined; + } + + interface OverlayOptions extends SharpOptions { + /** Buffer containing image data, String containing the path to an image file, or Create object */ + input?: string | Buffer | { create: Create } | { text: CreateText } | { raw: CreateRaw } | undefined; + /** how to blend this image with the image below. (optional, default `'over'`) */ + blend?: Blend | undefined; + /** gravity at which to place the overlay. (optional, default 'centre') */ + gravity?: Gravity | undefined; + /** the pixel offset from the top edge, an integer between -100000000 and 100000000. */ + top?: number | undefined; + /** the pixel offset from the left edge, an integer between -100000000 and 100000000. */ + left?: number | undefined; + /** set to true to repeat the overlay image across the entire image with the given gravity. (optional, default false) */ + tile?: boolean | undefined; + /** Set to true to avoid premultipling the image below. Equivalent to the --premultiplied vips option. */ + premultiplied?: boolean | undefined; + /** number representing the DPI for vector overlay image. (optional, default 72)*/ + density?: number | undefined; + /** Set to true to read all frames/pages of an animated image. (optional, default false) */ + animated?: boolean | undefined; + /** see sharp() constructor, (optional, default 'warning') */ + failOn?: FailOnOptions | undefined; + /** see sharp() constructor, (optional, default 268402689) */ + limitInputPixels?: number | boolean | undefined; + /** see sharp() constructor, (optional, default false) */ + autoOrient?: boolean | undefined; + } + + interface TileOptions { + /** Tile size in pixels, a value between 1 and 8192. (optional, default 256) */ + size?: number | undefined; + /** Tile overlap in pixels, a value between 0 and 8192. (optional, default 0) */ + overlap?: number | undefined; + /** Tile angle of rotation, must be a multiple of 90. (optional, default 0) */ + angle?: number | undefined; + /** background colour, parsed by the color module, defaults to white without transparency. (optional, default {r:255,g:255,b:255,alpha:1}) */ + background?: ColorLike | undefined; + /** How deep to make the pyramid, possible values are "onepixel", "onetile" or "one" (default based on layout) */ + depth?: string | undefined; + /** Threshold to skip tile generation, a value 0 - 255 for 8-bit images or 0 - 65535 for 16-bit images */ + skipBlanks?: number | undefined; + /** Tile container, with value fs (filesystem) or zip (compressed file). (optional, default 'fs') */ + container?: TileContainer | undefined; + /** Filesystem layout, possible values are dz, iiif, iiif3, zoomify or google. (optional, default 'dz') */ + layout?: TileLayout | undefined; + /** Centre image in tile. (optional, default false) */ + centre?: boolean | undefined; + /** Alternative spelling of centre. (optional, default false) */ + center?: boolean | undefined; + /** When layout is iiif/iiif3, sets the @id/id attribute of info.json (optional, default 'https://example.com/iiif') */ + id?: string | undefined; + /** The name of the directory within the zip file when container is `zip`. */ + basename?: string | undefined; + } + + interface AnimationOptions { + /** Number of animation iterations, a value between 0 and 65535. Use 0 for infinite animation. (optional, default 0) */ + loop?: number | undefined; + /** delay(s) between animation frames (in milliseconds), each value between 0 and 65535. (optional) */ + delay?: number | number[] | undefined; + } + + interface SharpenOptions { + /** The sigma of the Gaussian mask, where sigma = 1 + radius / 2, between 0.000001 and 10000 */ + sigma: number; + /** The level of sharpening to apply to "flat" areas, between 0 and 1000000 (optional, default 1.0) */ + m1?: number | undefined; + /** The level of sharpening to apply to "jagged" areas, between 0 and 1000000 (optional, default 2.0) */ + m2?: number | undefined; + /** Threshold between "flat" and "jagged", between 0 and 1000000 (optional, default 2.0) */ + x1?: number | undefined; + /** Maximum amount of brightening, between 0 and 1000000 (optional, default 10.0) */ + y2?: number | undefined; + /** Maximum amount of darkening, between 0 and 1000000 (optional, default 20.0) */ + y3?: number | undefined; + } + + interface AffineOptions { + /** Parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: string | object | undefined; + /** Input horizontal offset (optional, default 0) */ + idx?: number | undefined; + /** Input vertical offset (optional, default 0) */ + idy?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + odx?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + ody?: number | undefined; + /** Interpolator (optional, default sharp.interpolators.bicubic) */ + interpolator?: Interpolators[keyof Interpolators] | undefined; + } + + interface OutputInfo { + format: string; + size: number; + width: number; + height: number; + channels: Channels; + /** indicating if premultiplication was used */ + premultiplied: boolean; + /** Indicates if the output image has an alpha channel */ + hasAlpha: boolean; + /** Only defined when using a crop strategy */ + cropOffsetLeft?: number | undefined; + /** Only defined when using a crop strategy */ + cropOffsetTop?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetLeft?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetTop?: number | undefined; + /** DPI the font was rendered at, only defined when using `text` input */ + textAutofitDpi?: number | undefined; + /** When using the attention crop strategy, the focal point of the cropped region */ + attentionX?: number | undefined; + attentionY?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; + } + + interface AvailableFormatInfo { + id: string; + input: { file: boolean; buffer: boolean; stream: boolean; fileSuffix?: string[] }; + output: { file: boolean; buffer: boolean; stream: boolean; alias?: string[] }; + } + + interface FitEnum { + contain: 'contain'; + cover: 'cover'; + fill: 'fill'; + inside: 'inside'; + outside: 'outside'; + } + + interface KernelEnum { + nearest: 'nearest'; + cubic: 'cubic'; + linear: 'linear'; + mitchell: 'mitchell'; + lanczos2: 'lanczos2'; + lanczos3: 'lanczos3'; + mks2013: 'mks2013'; + mks2021: 'mks2021'; + } + + interface PresetEnum { + default: 'default'; + picture: 'picture'; + photo: 'photo'; + drawing: 'drawing'; + icon: 'icon'; + text: 'text'; + } + + interface BoolEnum { + and: 'and'; + or: 'or'; + eor: 'eor'; + } + + interface ColourspaceEnum { + 'b-w': string; + cmc: string; + cmyk: string; + fourier: string; + grey16: string; + histogram: string; + hsv: string; + lab: string; + labq: string; + labs: string; + lch: string; + matrix: string; + multiband: string; + rgb: string; + rgb16: string; + scrgb: string; + srgb: string; + xyz: string; + yxy: string; + } + + interface DepthEnum { + char: string; + complex: string; + double: string; + dpcomplex: string; + float: string; + int: string; + short: string; + uchar: string; + uint: string; + ushort: string; + } + + type FailOnOptions = 'none' | 'truncated' | 'error' | 'warning'; + + type TextAlign = 'left' | 'centre' | 'center' | 'right'; + + type TextWrap = 'word' | 'char' | 'word-char' | 'none'; + + type HorizontalAlignment = 'left' | 'centre' | 'center' | 'right'; + + type VerticalAlignment = 'top' | 'centre' | 'center' | 'bottom'; + + type TileContainer = 'fs' | 'zip'; + + type TileLayout = 'dz' | 'iiif' | 'iiif3' | 'zoomify' | 'google'; + + type Blend = + | 'clear' + | 'source' + | 'over' + | 'in' + | 'out' + | 'atop' + | 'dest' + | 'dest-over' + | 'dest-in' + | 'dest-out' + | 'dest-atop' + | 'xor' + | 'add' + | 'saturate' + | 'multiply' + | 'screen' + | 'overlay' + | 'darken' + | 'lighten' + | 'color-dodge' + | 'colour-dodge' + | 'color-burn' + | 'colour-burn' + | 'hard-light' + | 'soft-light' + | 'difference' + | 'exclusion'; + + type Gravity = number | string; + + interface GravityEnum { + north: number; + northeast: number; + southeast: number; + south: number; + southwest: number; + west: number; + northwest: number; + east: number; + center: number; + centre: number; + } + + interface StrategyEnum { + entropy: number; + attention: number; + } + + interface FormatEnum { + dcraw: AvailableFormatInfo; + dz: AvailableFormatInfo; + exr: AvailableFormatInfo; + fits: AvailableFormatInfo; + gif: AvailableFormatInfo; + heif: AvailableFormatInfo; + jpeg: AvailableFormatInfo; + jp2: AvailableFormatInfo; + jxl: AvailableFormatInfo; + magick: AvailableFormatInfo; + openslide: AvailableFormatInfo; + pdf: AvailableFormatInfo; + png: AvailableFormatInfo; + ppm: AvailableFormatInfo; + rad: AvailableFormatInfo; + raw: AvailableFormatInfo; + svg: AvailableFormatInfo; + tiff: AvailableFormatInfo; + vips: AvailableFormatInfo; + webp: AvailableFormatInfo; + } + + interface CacheResult { + memory: { current: number; high: number; max: number }; + files: { current: number; max: number }; + items: { current: number; max: number }; + } + + interface Interpolators { + /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ + nearest: 'nearest'; + /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ + bilinear: 'bilinear'; + /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ + bicubic: 'bicubic'; + /** + * [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). + * Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. + */ + locallyBoundedBicubic: 'lbb'; + /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ + nohalo: 'nohalo'; + /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ + vertexSplitQuadraticBasisSpline: 'vsqbs'; + } + + type Matrix2x2 = [[number, number], [number, number]]; + type Matrix3x3 = [[number, number, number], [number, number, number], [number, number, number]]; + type Matrix4x4 = [[number, number, number, number], [number, number, number, number], [number, number, number, number], [number, number, number, number]]; +} + +export = sharp; diff --git a/apps/api/.output/node_modules/sharp/node_modules/.bin/semver b/apps/api/.output/node_modules/sharp/node_modules/.bin/semver new file mode 100644 index 0000000..f2d68be --- /dev/null +++ b/apps/api/.output/node_modules/sharp/node_modules/.bin/semver @@ -0,0 +1,21 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules/semver/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/node_modules" +else + export NODE_PATH="/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules/semver/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/node_modules:$NODE_PATH" +fi +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../../../../../semver@7.8.5/node_modules/semver/bin/semver.js" "$@" +else + exec node "$basedir/../../../../../semver@7.8.5/node_modules/semver/bin/semver.js" "$@" +fi diff --git a/apps/api/.output/node_modules/sharp/node_modules/.bin/semver.CMD b/apps/api/.output/node_modules/sharp/node_modules/.bin/semver.CMD new file mode 100644 index 0000000..8002613 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/node_modules/.bin/semver.CMD @@ -0,0 +1,12 @@ +@SETLOCAL +@IF NOT DEFINED NODE_PATH ( + @SET "NODE_PATH=E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules\semver\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\node_modules" +) ELSE ( + @SET "NODE_PATH=E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules\semver\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\node_modules;%NODE_PATH%" +) +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\..\semver@7.8.5\node_modules\semver\bin\semver.js" %* +) ELSE ( + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\..\semver@7.8.5\node_modules\semver\bin\semver.js" %* +) diff --git a/apps/api/.output/node_modules/sharp/node_modules/.bin/semver.ps1 b/apps/api/.output/node_modules/sharp/node_modules/.bin/semver.ps1 new file mode 100644 index 0000000..2541b7c --- /dev/null +++ b/apps/api/.output/node_modules/sharp/node_modules/.bin/semver.ps1 @@ -0,0 +1,41 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +$pathsep=":" +$env_node_path=$env:NODE_PATH +$new_node_path="E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules\semver\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\semver@7.8.5\node_modules;E:\imen pishghaman\imen_pishghaman\node_modules\.pnpm\node_modules" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" + $pathsep=";" +} else { + $new_node_path="/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules/semver/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/semver@7.8.5/node_modules:/proc/cygdrive/e/imen pishghaman/imen_pishghaman/node_modules/.pnpm/node_modules" +} +if ([string]::IsNullOrEmpty($env_node_path)) { + $env:NODE_PATH=$new_node_path +} else { + $env:NODE_PATH="$new_node_path$pathsep$env_node_path" +} + +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../../../../../semver@7.8.5/node_modules/semver/bin/semver.js" $args + } else { + & "$basedir/node$exe" "$basedir/../../../../../semver@7.8.5/node_modules/semver/bin/semver.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../../../../../semver@7.8.5/node_modules/semver/bin/semver.js" $args + } else { + & "node$exe" "$basedir/../../../../../semver@7.8.5/node_modules/semver/bin/semver.js" $args + } + $ret=$LASTEXITCODE +} +$env:NODE_PATH=$env_node_path +exit $ret diff --git a/apps/api/.output/node_modules/sharp/package.json b/apps/api/.output/node_modules/sharp/package.json new file mode 100644 index 0000000..64daa84 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/package.json @@ -0,0 +1,227 @@ +{ + "name": "sharp", + "description": "High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images", + "version": "0.35.5", + "author": "Lovell Fuller ", + "homepage": "https://sharp.pixelplumbing.com", + "contributors": [ + "Pierre Inglebert ", + "Jonathan Ong ", + "Chanon Sajjamanochai ", + "Juliano Julio ", + "Daniel Gasienica ", + "Julian Walker ", + "Amit Pitaru ", + "Brandon Aaron ", + "Andreas Lind ", + "Maurus Cuelenaere ", + "Linus Unnebäck ", + "Victor Mateevitsi ", + "Alaric Holloway ", + "Bernhard K. Weisshuhn ", + "Chris Riley ", + "David Carley ", + "John Tobin ", + "Kenton Gray ", + "Felix Bünemann ", + "Samy Al Zahrani ", + "Chintan Thakkar ", + "F. Orlando Galashan ", + "Kleis Auke Wolthuizen ", + "Matt Hirsch ", + "Matthias Thoemmes ", + "Patrick Paskaris ", + "Jérémy Lal ", + "Rahul Nanwani ", + "Alice Monday ", + "Kristo Jorgenson ", + "YvesBos ", + "Guy Maliar ", + "Nicolas Coden ", + "Matt Parrish ", + "Marcel Bretschneider ", + "Matthew McEachen ", + "Jarda Kotěšovec ", + "Kenric D'Souza ", + "Oleh Aleinyk ", + "Marcel Bretschneider ", + "Andrea Bianco ", + "Rik Heywood ", + "Thomas Parisot ", + "Nathan Graves ", + "Tom Lokhorst ", + "Espen Hovlandsdal ", + "Sylvain Dumont ", + "Alun Davies ", + "Aidan Hoolachan ", + "Axel Eirola ", + "Freezy ", + "Daiz ", + "Julian Aubourg ", + "Keith Belovay ", + "Michael B. Klein ", + "Jordan Prudhomme ", + "Ilya Ovdin ", + "Andargor ", + "Paul Neave ", + "Brendan Kennedy ", + "Brychan Bennett-Odlum ", + "Edward Silverton ", + "Roman Malieiev ", + "Tomas Szabo ", + "Robert O'Rourke ", + "Guillermo Alfonso Varela Chouciño ", + "Christian Flintrup ", + "Manan Jadhav ", + "Leon Radley ", + "alza54 ", + "Jacob Smith ", + "Michael Nutt ", + "Brad Parham ", + "Taneli Vatanen ", + "Joris Dugué ", + "Chris Banks ", + "Ompal Singh ", + "Brodan ", + "Ankur Parihar ", + "Brahim Ait elhaj ", + "Mart Jansink ", + "Lachlan Newman ", + "Dennis Beatty ", + "Ingvar Stepanyan ", + "Don Denton ", + "Dmytro Tiapukhin ", + "Florian Lefebvre " + ], + "scripts": { + "build": "node install/build.js", + "build:dist": "node scripts/build.mjs", + "clean": "rm -rf src/build/ test/fixtures/output.*", + "test": "npm run lint && npm run test-unit", + "lint": "npm run lint-cpp && npm run lint-js && npm run lint-types && npm run lint-publish", + "lint-cpp": "cpplint --quiet src/*.h src/*.cc", + "lint-js": "biome lint", + "lint-publish": "publint --strict", + "lint-types": "tsd --files ./test/types/sharp.test-d.{cts,mts}", + "test-leak": "./test/leak/leak.sh", + "test-unit": "node --experimental-test-coverage test/unit.mjs", + "package-from-local-build": "node npm/from-local-build.js", + "package-wasm-wrappers": "node npm/wasm-wrappers.js", + "package-release-notes": "node npm/release-notes.js", + "docs-build": "node docs/build.mjs", + "docs-serve": "cd docs && npm start", + "docs-publish": "cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp" + }, + "type": "commonjs", + "files": [ + "dist", + "install", + "lib/index.d.ts", + "src/*.{cc,h,gyp}" + ], + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + } + }, + "sideEffects": true, + "repository": { + "type": "git", + "url": "git+https://github.com/lovell/sharp.git" + }, + "keywords": [ + "jpeg", + "png", + "webp", + "avif", + "tiff", + "gif", + "svg", + "jp2", + "dzi", + "image", + "resize", + "thumbnail", + "crop", + "embed", + "libvips", + "vips" + ], + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.5", + "@img/sharp-darwin-x64": "0.35.5", + "@img/sharp-freebsd-wasm32": "0.35.5", + "@img/sharp-libvips-darwin-arm64": "1.3.4", + "@img/sharp-libvips-darwin-x64": "1.3.4", + "@img/sharp-libvips-linux-arm": "1.3.4", + "@img/sharp-libvips-linux-arm64": "1.3.4", + "@img/sharp-libvips-linux-ppc64": "1.3.4", + "@img/sharp-libvips-linux-riscv64": "1.3.4", + "@img/sharp-libvips-linux-s390x": "1.3.4", + "@img/sharp-libvips-linux-x64": "1.3.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", + "@img/sharp-libvips-linuxmusl-x64": "1.3.4", + "@img/sharp-linux-arm": "0.35.5", + "@img/sharp-linux-arm64": "0.35.5", + "@img/sharp-linux-ppc64": "0.35.5", + "@img/sharp-linux-riscv64": "0.35.5", + "@img/sharp-linux-s390x": "0.35.5", + "@img/sharp-linux-x64": "0.35.5", + "@img/sharp-linuxmusl-arm64": "0.35.5", + "@img/sharp-linuxmusl-x64": "0.35.5", + "@img/sharp-webcontainers-wasm32": "0.35.5", + "@img/sharp-win32-arm64": "0.35.5", + "@img/sharp-win32-ia32": "0.35.5", + "@img/sharp-win32-x64": "0.35.5" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + }, + "devDependencies": { + "@biomejs/biome": "^2.5.14", + "@cpplint/cli": "^0.1.0", + "@emnapi/runtime": "^1.11.3", + "@img/sharp-libvips-dev": "1.3.4", + "@img/sharp-libvips-dev-wasm32": "1.3.4", + "@img/sharp-libvips-win32-arm64": "1.3.4", + "@img/sharp-libvips-win32-ia32": "1.3.4", + "@img/sharp-libvips-win32-x64": "1.3.4", + "@types/node": "*", + "emnapi": "^1.11.3", + "exif-reader": "^2.0.3", + "icc": "^4.0.0", + "node-addon-api": "^8.9.2", + "node-gyp": "^12.4.0", + "publint": "^0.3.24", + "tar-fs": "^3.1.3", + "tsd": "^0.33.0", + "yauzl": "^3.4.0" + }, + "license": "Apache-2.0", + "engines": { + "node": ">=20.9.0" + }, + "config": { + "libvips": ">=8.18.7" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } +} diff --git a/apps/api/.output/node_modules/sharp/src/binding.gyp b/apps/api/.output/node_modules/sharp/src/binding.gyp new file mode 100644 index 0000000..71b2c92 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/binding.gyp @@ -0,0 +1,303 @@ +# Copyright 2013 Lovell Fuller and others. +# SPDX-License-Identifier: Apache-2.0 + +{ # noqa: B018 + 'variables': { + 'vips_version': ' +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "./common.h" + +using vips::VImage; + +namespace sharp { + + // Convenience methods to access the attributes of a Napi::Object + bool HasAttr(Napi::Object obj, std::string attr) { + return obj.Has(attr); + } + std::string AttrAsStr(Napi::Object obj, std::string attr) { + return obj.Get(attr).As(); + } + std::string AttrAsStr(Napi::Object obj, unsigned int const attr) { + return obj.Get(attr).As(); + } + uint32_t AttrAsUint32(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Uint32Value(); + } + int32_t AttrAsInt32(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Int32Value(); + } + int32_t AttrAsInt32(Napi::Object obj, unsigned int const attr) { + return obj.Get(attr).As().Int32Value(); + } + int64_t AttrAsInt64(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Int64Value(); + } + double AttrAsDouble(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().DoubleValue(); + } + double AttrAsDouble(Napi::Object obj, unsigned int const attr) { + return obj.Get(attr).As().DoubleValue(); + } + bool AttrAsBool(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Value(); + } + std::vector AttrAsVectorOfDouble(Napi::Object obj, std::string attr) { + Napi::Array napiArray = obj.Get(attr).As(); + std::vector vectorOfDouble(napiArray.Length()); + for (unsigned int i = 0; i < napiArray.Length(); i++) { + vectorOfDouble[i] = AttrAsDouble(napiArray, i); + } + return vectorOfDouble; + } + std::vector AttrAsInt32Vector(Napi::Object obj, std::string attr) { + Napi::Array array = obj.Get(attr).As(); + std::vector vector(array.Length()); + for (unsigned int i = 0; i < array.Length(); i++) { + vector[i] = AttrAsInt32(array, i); + } + return vector; + } + + // Create an InputDescriptor instance from a Napi::Object describing an input image + InputDescriptor* CreateInputDescriptor(Napi::Object input) { + InputDescriptor *descriptor = new InputDescriptor; + if (HasAttr(input, "file")) { + descriptor->file = AttrAsStr(input, "file"); + } else if (HasAttr(input, "buffer")) { + Napi::Buffer buffer = input.Get("buffer").As>(); + descriptor->bufferLength = buffer.Length(); + descriptor->buffer = buffer.Data(); + descriptor->isBuffer = true; + } + descriptor->failOn = AttrAsEnum(input, "failOn", VIPS_TYPE_FAIL_ON); + // Density for vector-based input + if (HasAttr(input, "density")) { + descriptor->density = AttrAsDouble(input, "density"); + } + // Should we ignore any embedded ICC profile + if (HasAttr(input, "ignoreIcc")) { + descriptor->ignoreIcc = AttrAsBool(input, "ignoreIcc"); + } + // Raw pixel input + if (HasAttr(input, "rawChannels")) { + descriptor->rawDepth = AttrAsEnum(input, "rawDepth", VIPS_TYPE_BAND_FORMAT); + descriptor->rawChannels = AttrAsUint32(input, "rawChannels"); + descriptor->rawWidth = AttrAsUint32(input, "rawWidth"); + descriptor->rawHeight = AttrAsUint32(input, "rawHeight"); + descriptor->rawPremultiplied = AttrAsBool(input, "rawPremultiplied"); + descriptor->rawPageHeight = AttrAsUint32(input, "rawPageHeight"); + } + // Multi-page input (GIF, TIFF, PDF) + if (HasAttr(input, "pages")) { + descriptor->pages = AttrAsInt32(input, "pages"); + } + if (HasAttr(input, "page")) { + descriptor->page = AttrAsUint32(input, "page"); + } + // SVG + if (HasAttr(input, "svgStylesheet")) { + descriptor->svgStylesheet = AttrAsStr(input, "svgStylesheet"); + } + if (HasAttr(input, "svgHighBitdepth")) { + descriptor->svgHighBitdepth = AttrAsBool(input, "svgHighBitdepth"); + } + // Multi-level input (OpenSlide) + if (HasAttr(input, "openSlideLevel")) { + descriptor->openSlideLevel = AttrAsUint32(input, "openSlideLevel"); + } + // subIFD (OME-TIFF) + if (HasAttr(input, "tiffSubifd")) { + descriptor->tiffSubifd = AttrAsInt32(input, "tiffSubifd"); + } + // // PDF background color + if (HasAttr(input, "pdfBackground")) { + descriptor->pdfBackground = AttrAsVectorOfDouble(input, "pdfBackground"); + } + // Use JPEG 2000 oneshot mode? + if (HasAttr(input, "jp2Oneshot")) { + descriptor->jp2Oneshot = AttrAsBool(input, "jp2Oneshot"); + } + // Create new image + if (HasAttr(input, "createChannels")) { + descriptor->createChannels = AttrAsUint32(input, "createChannels"); + descriptor->createWidth = AttrAsUint32(input, "createWidth"); + descriptor->createHeight = AttrAsUint32(input, "createHeight"); + descriptor->createPageHeight = AttrAsUint32(input, "createPageHeight"); + if (HasAttr(input, "createNoiseType")) { + descriptor->createNoiseType = AttrAsStr(input, "createNoiseType"); + descriptor->createNoiseMean = AttrAsDouble(input, "createNoiseMean"); + descriptor->createNoiseSigma = AttrAsDouble(input, "createNoiseSigma"); + } else { + descriptor->createBackground = AttrAsVectorOfDouble(input, "createBackground"); + } + } + // Create new image with text + if (HasAttr(input, "textValue")) { + descriptor->textValue = AttrAsStr(input, "textValue"); + if (HasAttr(input, "textFont")) { + descriptor->textFont = AttrAsStr(input, "textFont"); + } + if (HasAttr(input, "textFontfile")) { + descriptor->textFontfile = AttrAsStr(input, "textFontfile"); + } + if (HasAttr(input, "textWidth")) { + descriptor->textWidth = AttrAsUint32(input, "textWidth"); + } + if (HasAttr(input, "textHeight")) { + descriptor->textHeight = AttrAsUint32(input, "textHeight"); + } + if (HasAttr(input, "textAlign")) { + descriptor->textAlign = AttrAsEnum(input, "textAlign", VIPS_TYPE_ALIGN); + } + if (HasAttr(input, "textJustify")) { + descriptor->textJustify = AttrAsBool(input, "textJustify"); + } + if (HasAttr(input, "textDpi")) { + descriptor->textDpi = AttrAsUint32(input, "textDpi"); + } + if (HasAttr(input, "textRgba")) { + descriptor->textRgba = AttrAsBool(input, "textRgba"); + } + if (HasAttr(input, "textSpacing")) { + descriptor->textSpacing = AttrAsUint32(input, "textSpacing"); + } + if (HasAttr(input, "textWrap")) { + descriptor->textWrap = AttrAsEnum(input, "textWrap", VIPS_TYPE_TEXT_WRAP); + } + } + // Join images together + if (HasAttr(input, "joinAnimated")) { + descriptor->joinAnimated = AttrAsBool(input, "joinAnimated"); + } + if (HasAttr(input, "joinAcross")) { + descriptor->joinAcross = AttrAsUint32(input, "joinAcross"); + } + if (HasAttr(input, "joinShim")) { + descriptor->joinShim = AttrAsUint32(input, "joinShim"); + } + if (HasAttr(input, "joinBackground")) { + descriptor->joinBackground = AttrAsVectorOfDouble(input, "joinBackground"); + } + if (HasAttr(input, "joinHalign")) { + descriptor->joinHalign = AttrAsEnum(input, "joinHalign", VIPS_TYPE_ALIGN); + } + if (HasAttr(input, "joinValign")) { + descriptor->joinValign = AttrAsEnum(input, "joinValign", VIPS_TYPE_ALIGN); + } + descriptor->limitInputPixels = static_cast(AttrAsInt64(input, "limitInputPixels")); + descriptor->limitInputChannels = static_cast(AttrAsInt64(input, "limitInputChannels")); + if (HasAttr(input, "access")) { + descriptor->access = AttrAsBool(input, "sequentialRead") ? VIPS_ACCESS_SEQUENTIAL : VIPS_ACCESS_RANDOM; + } + // Remove safety features and allow unlimited input + descriptor->unlimited = AttrAsBool(input, "unlimited"); + // Use the EXIF orientation to auto orient the image + descriptor->autoOrient = AttrAsBool(input, "autoOrient"); + return descriptor; + } + + // How many tasks are in the queue? + std::atomic counterQueue{0}; + + // How many tasks are being processed? + std::atomic counterProcess{0}; + + // Filename extension checkers + static bool EndsWith(std::string const &str, std::string const &end) { + return str.length() >= end.length() && 0 == str.compare(str.length() - end.length(), end.length(), end); + } + bool IsJpeg(std::string const &str) { + return EndsWith(str, ".jpg") || EndsWith(str, ".jpeg") || EndsWith(str, ".JPG") || EndsWith(str, ".JPEG"); + } + bool IsPng(std::string const &str) { + return EndsWith(str, ".png") || EndsWith(str, ".PNG"); + } + bool IsWebp(std::string const &str) { + return EndsWith(str, ".webp") || EndsWith(str, ".WEBP"); + } + bool IsGif(std::string const &str) { + return EndsWith(str, ".gif") || EndsWith(str, ".GIF"); + } + bool IsJp2(std::string const &str) { + return EndsWith(str, ".jp2") || EndsWith(str, ".jpx") || EndsWith(str, ".j2k") || EndsWith(str, ".j2c") + || EndsWith(str, ".JP2") || EndsWith(str, ".JPX") || EndsWith(str, ".J2K") || EndsWith(str, ".J2C"); + } + bool IsTiff(std::string const &str) { + return EndsWith(str, ".tif") || EndsWith(str, ".tiff") || EndsWith(str, ".TIF") || EndsWith(str, ".TIFF"); + } + bool IsHeic(std::string const &str) { + return EndsWith(str, ".heic") || EndsWith(str, ".HEIC"); + } + bool IsHeif(std::string const &str) { + return EndsWith(str, ".heif") || EndsWith(str, ".HEIF") || IsHeic(str) || IsAvif(str); + } + bool IsAvif(std::string const &str) { + return EndsWith(str, ".avif") || EndsWith(str, ".AVIF"); + } + bool IsJxl(std::string const &str) { + return EndsWith(str, ".jxl") || EndsWith(str, ".JXL"); + } + bool IsDz(std::string const &str) { + return EndsWith(str, ".dzi") || EndsWith(str, ".DZI"); + } + bool IsDzZip(std::string const &str) { + return EndsWith(str, ".zip") || EndsWith(str, ".ZIP") || EndsWith(str, ".szi") || EndsWith(str, ".SZI"); + } + bool IsV(std::string const &str) { + return EndsWith(str, ".v") || EndsWith(str, ".V") || EndsWith(str, ".vips") || EndsWith(str, ".VIPS"); + } + + /* + Trim space from end of string. + */ + std::string TrimEnd(std::string const &str) { + return str.substr(0, str.find_last_not_of(" \n\r\f") + 1); + } + + /* + Provide a string identifier for the given image type. + */ + std::string ImageTypeId(ImageType const imageType) { + std::string id; + switch (imageType) { + case ImageType::JPEG: id = "jpeg"; break; + case ImageType::PNG: id = "png"; break; + case ImageType::WEBP: id = "webp"; break; + case ImageType::TIFF: id = "tiff"; break; + case ImageType::GIF: id = "gif"; break; + case ImageType::JP2: id = "jp2"; break; + case ImageType::SVG: id = "svg"; break; + case ImageType::HEIF: id = "heif"; break; + case ImageType::PDF: id = "pdf"; break; + case ImageType::MAGICK: id = "magick"; break; + case ImageType::OPENSLIDE: id = "openslide"; break; + case ImageType::PPM: id = "ppm"; break; + case ImageType::FITS: id = "fits"; break; + case ImageType::EXR: id = "exr"; break; + case ImageType::JXL: id = "jxl"; break; + case ImageType::RAD: id = "rad"; break; + case ImageType::DCRAW: id = "dcraw"; break; + case ImageType::UHDR: id = "uhdr"; break; + case ImageType::VIPS: id = "vips"; break; + case ImageType::RAW: id = "raw"; break; + case ImageType::UNKNOWN: id = "unknown"; break; + case ImageType::MISSING: id = "missing"; break; + } + return id; + } + + /** + * Regenerate this table with something like: + * + * $ vips -l foreign | grep -i load | awk '{ print $2, $1; }' + * + * Plus a bit of editing. + */ + std::map loaderToType = { + { "VipsForeignLoadJpegFile", ImageType::JPEG }, + { "VipsForeignLoadJpegBuffer", ImageType::JPEG }, + { "VipsForeignLoadPngFile", ImageType::PNG }, + { "VipsForeignLoadPngBuffer", ImageType::PNG }, + { "VipsForeignLoadWebpFile", ImageType::WEBP }, + { "VipsForeignLoadWebpBuffer", ImageType::WEBP }, + { "VipsForeignLoadTiffFile", ImageType::TIFF }, + { "VipsForeignLoadTiffBuffer", ImageType::TIFF }, + { "VipsForeignLoadGifFile", ImageType::GIF }, + { "VipsForeignLoadGifBuffer", ImageType::GIF }, + { "VipsForeignLoadNsgifFile", ImageType::GIF }, + { "VipsForeignLoadNsgifBuffer", ImageType::GIF }, + { "VipsForeignLoadJp2kBuffer", ImageType::JP2 }, + { "VipsForeignLoadJp2kFile", ImageType::JP2 }, + { "VipsForeignLoadSvgFile", ImageType::SVG }, + { "VipsForeignLoadSvgBuffer", ImageType::SVG }, + { "VipsForeignLoadHeifFile", ImageType::HEIF }, + { "VipsForeignLoadHeifBuffer", ImageType::HEIF }, + { "VipsForeignLoadPdfFile", ImageType::PDF }, + { "VipsForeignLoadPdfBuffer", ImageType::PDF }, + { "VipsForeignLoadMagickFile", ImageType::MAGICK }, + { "VipsForeignLoadMagickBuffer", ImageType::MAGICK }, + { "VipsForeignLoadMagick7File", ImageType::MAGICK }, + { "VipsForeignLoadMagick7Buffer", ImageType::MAGICK }, + { "VipsForeignLoadOpenslideFile", ImageType::OPENSLIDE }, + { "VipsForeignLoadPpmFile", ImageType::PPM }, + { "VipsForeignLoadFitsFile", ImageType::FITS }, + { "VipsForeignLoadOpenexr", ImageType::EXR }, + { "VipsForeignLoadJxlFile", ImageType::JXL }, + { "VipsForeignLoadJxlBuffer", ImageType::JXL }, + { "VipsForeignLoadRadFile", ImageType::RAD }, + { "VipsForeignLoadRadBuffer", ImageType::RAD }, + { "VipsForeignLoadDcRawFile", ImageType::DCRAW }, + { "VipsForeignLoadDcRawBuffer", ImageType::DCRAW }, + { "VipsForeignLoadUhdr", ImageType::UHDR }, + { "VipsForeignLoadUhdrFile", ImageType::UHDR }, + { "VipsForeignLoadUhdrBuffer", ImageType::UHDR }, + { "VipsForeignLoadVips", ImageType::VIPS }, + { "VipsForeignLoadVipsFile", ImageType::VIPS }, + { "VipsForeignLoadRaw", ImageType::RAW } + }; + + /* + Determine image format of a buffer. + */ + ImageType DetermineImageType(void *buffer, size_t const length) { + ImageType imageType = ImageType::UNKNOWN; + char const *load = vips_foreign_find_load_buffer(buffer, length); + if (load != nullptr) { + auto it = loaderToType.find(load); + if (it != loaderToType.end()) { + imageType = it->second; + } + } + if (imageType == ImageType::UHDR) { + imageType = ImageType::JPEG; + } + return imageType; + } + + /* + Determine image format, reads the first few bytes of the file + */ + ImageType DetermineImageType(char const *file) { + ImageType imageType = ImageType::UNKNOWN; + char const *load = vips_foreign_find_load(file); + if (load != nullptr) { + auto it = loaderToType.find(load); + if (it != loaderToType.end()) { + imageType = it->second; + } + } else { + if (EndsWith(vips::VError().what(), " does not exist\n")) { + imageType = ImageType::MISSING; + } + } + if (imageType == ImageType::UHDR) { + imageType = ImageType::JPEG; + } + return imageType; + } + + /* + Does this image type support multiple pages? + */ + bool ImageTypeSupportsPage(ImageType imageType) { + return + imageType == ImageType::WEBP || + imageType == ImageType::MAGICK || + imageType == ImageType::GIF || + imageType == ImageType::JP2 || + imageType == ImageType::TIFF || + imageType == ImageType::HEIF || + imageType == ImageType::PDF; + } + + /* + Does this image type support removal of safety limits? + */ + bool ImageTypeSupportsUnlimited(ImageType imageType) { + return + imageType == ImageType::JPEG || + imageType == ImageType::PNG || + imageType == ImageType::SVG || + imageType == ImageType::TIFF || + imageType == ImageType::HEIF; + } + + /* + Format-specific options builder + */ + vips::VOption* GetOptionsForImageType(ImageType imageType, InputDescriptor *descriptor) { + vips::VOption *option = VImage::option() + ->set("access", descriptor->access) + ->set("fail_on", descriptor->failOn); + if (descriptor->unlimited && ImageTypeSupportsUnlimited(imageType)) { + option->set("unlimited", true); + } + if (ImageTypeSupportsPage(imageType)) { + option->set("n", descriptor->pages); + option->set("page", std::max(0, descriptor->page)); + } + switch (imageType) { + case ImageType::SVG: + option->set("dpi", descriptor->density) + ->set("stylesheet", descriptor->svgStylesheet.data()) + ->set("high_bitdepth", descriptor->svgHighBitdepth); + break; + case ImageType::TIFF: + option->set("subifd", descriptor->tiffSubifd); + break; + case ImageType::PDF: + option->set("dpi", descriptor->density) + ->set("background", descriptor->pdfBackground); + break; + case ImageType::OPENSLIDE: + option->set("level", descriptor->openSlideLevel); + break; + case ImageType::JP2: + option->set("oneshot", descriptor->jp2Oneshot); + break; + case ImageType::MAGICK: + option->set("density", std::to_string(descriptor->density).data()); + break; + default: + break; + } + return option; + } + + /* + Should HEIF image be re-opened using the primary item? + */ + static bool HeifPrimaryPageReopen(VImage image, InputDescriptor *descriptor) { + if (image.get_typeof(VIPS_META_N_PAGES) == G_TYPE_INT && image.get_typeof("heif-primary") == G_TYPE_INT) { + if (image.get_int(VIPS_META_N_PAGES) > 1 && descriptor->pages == 1 && descriptor->page == -1) { + int const pagePrimary = image.get_int("heif-primary"); + if (pagePrimary != 0) { + descriptor->page = pagePrimary; + return true; + } + } + } + return false; + } + + /* + Open an image from the given InputDescriptor (filesystem, compressed buffer, raw pixel data) + */ + std::tuple OpenInput(InputDescriptor *descriptor) { + VImage image; + ImageType imageType; + if (descriptor->isBuffer) { + if (descriptor->rawChannels > 0) { + // Raw, uncompressed pixel data + bool const is8bit = vips_band_format_is8bit(descriptor->rawDepth); + image = VImage::new_from_memory(descriptor->buffer, descriptor->bufferLength, + descriptor->rawWidth, descriptor->rawHeight, descriptor->rawChannels, descriptor->rawDepth); + if (descriptor->rawChannels < 3) { + image.get_image()->Type = is8bit ? VIPS_INTERPRETATION_B_W : VIPS_INTERPRETATION_GREY16; + } else { + image.get_image()->Type = is8bit ? VIPS_INTERPRETATION_sRGB : VIPS_INTERPRETATION_RGB16; + } + if (descriptor->rawPageHeight > 0) { + image.set(VIPS_META_PAGE_HEIGHT, descriptor->rawPageHeight); + image.set(VIPS_META_N_PAGES, static_cast(descriptor->rawHeight / descriptor->rawPageHeight)); + } + if (descriptor->rawPremultiplied) { + image = image.unpremultiply(); + } + imageType = ImageType::RAW; + } else { + // Compressed data + imageType = DetermineImageType(descriptor->buffer, descriptor->bufferLength); + if (imageType != ImageType::UNKNOWN) { + try { + vips::VOption *option = GetOptionsForImageType(imageType, descriptor); + image = VImage::new_from_buffer(descriptor->buffer, descriptor->bufferLength, nullptr, option); + if (imageType == ImageType::SVG || imageType == ImageType::PDF || imageType == ImageType::MAGICK) { + image = SetDensity(image, descriptor->density); + } else if (imageType == ImageType::HEIF && HeifPrimaryPageReopen(image, descriptor)) { + option = GetOptionsForImageType(imageType, descriptor); + image = VImage::new_from_buffer(descriptor->buffer, descriptor->bufferLength, nullptr, option); + } + } catch (std::runtime_error const &err) { + throw std::runtime_error(std::string("Input buffer has corrupt header: ") + err.what()); + } + } else { + throw std::runtime_error("Input buffer contains unsupported image format"); + } + } + } else { + int const channels = descriptor->createChannels; + if (channels > 0) { + // Create new image + if (descriptor->createNoiseType == "gaussian") { + std::vector bands = {}; + bands.reserve(channels); + for (int _band = 0; _band < channels; _band++) { + bands.push_back(VImage::gaussnoise(descriptor->createWidth, descriptor->createHeight, VImage::option() + ->set("mean", descriptor->createNoiseMean) + ->set("sigma", descriptor->createNoiseSigma))); + } + image = VImage::bandjoin(bands).copy(VImage::option()->set("interpretation", + channels < 3 ? VIPS_INTERPRETATION_B_W: VIPS_INTERPRETATION_sRGB)); + } else { + std::vector background = { + descriptor->createBackground[0], + descriptor->createBackground[1], + descriptor->createBackground[2] + }; + if (channels == 4) { + background.push_back(descriptor->createBackground[3]); + } + image = VImage::black(descriptor->createWidth, descriptor->createHeight, + VImage::option()->set("bands", channels)) + .copy(VImage::option()->set("interpretation", VIPS_INTERPRETATION_sRGB)) + .linear(std::vector(channels, 0.0), background, VImage::option()->set("uchar", true)); + } + if (descriptor->createPageHeight > 0) { + image.set(VIPS_META_PAGE_HEIGHT, descriptor->createPageHeight); + image.set(VIPS_META_N_PAGES, static_cast(descriptor->createHeight / descriptor->createPageHeight)); + } + image = image.cast(VIPS_FORMAT_UCHAR); + imageType = ImageType::RAW; + } else if (descriptor->textValue.length() > 0) { + // Create a new image with text + vips::VOption *textOptions = VImage::option() + ->set("align", descriptor->textAlign) + ->set("justify", descriptor->textJustify) + ->set("rgba", descriptor->textRgba) + ->set("spacing", descriptor->textSpacing) + ->set("wrap", descriptor->textWrap) + ->set("autofit_dpi", &descriptor->textAutofitDpi); + if (descriptor->textWidth > 0) { + textOptions->set("width", descriptor->textWidth); + } + // Ignore dpi if height is set + if (descriptor->textWidth > 0 && descriptor->textHeight > 0) { + textOptions->set("height", descriptor->textHeight); + } else if (descriptor->textDpi > 0) { + textOptions->set("dpi", descriptor->textDpi); + } + if (descriptor->textFont.length() > 0) { + textOptions->set("font", const_cast(descriptor->textFont.data())); + } + if (descriptor->textFontfile.length() > 0) { + textOptions->set("fontfile", const_cast(descriptor->textFontfile.data())); + } + image = VImage::text(const_cast(descriptor->textValue.data()), textOptions); + if (!descriptor->textRgba) { + image = image.copy(VImage::option()->set("interpretation", VIPS_INTERPRETATION_B_W)); + } + imageType = ImageType::RAW; + } else { + // From filesystem + imageType = DetermineImageType(descriptor->file.data()); + if (imageType == ImageType::MISSING) { + if (descriptor->file.find("file.substr(0, 8) + "...')?"); + } + throw std::runtime_error("Input file is missing: " + descriptor->file); + } + if (imageType != ImageType::UNKNOWN) { + try { + vips::VOption *option = GetOptionsForImageType(imageType, descriptor); + image = VImage::new_from_file(descriptor->file.data(), option); + if (imageType == ImageType::SVG || imageType == ImageType::PDF || imageType == ImageType::MAGICK) { + image = SetDensity(image, descriptor->density); + } else if (imageType == ImageType::HEIF && HeifPrimaryPageReopen(image, descriptor)) { + option = GetOptionsForImageType(imageType, descriptor); + image = VImage::new_from_file(descriptor->file.data(), option); + } + } catch (std::runtime_error const &err) { + throw std::runtime_error(std::string("Input file has corrupt header: ") + err.what()); + } + } else { + throw std::runtime_error("Input file contains unsupported image format"); + } + } + } + + // Limit input images to a given number of pixels, where pixels = width * height + if (descriptor->limitInputPixels > 0 && + static_cast(image.width()) * image.height() > descriptor->limitInputPixels) { + throw std::runtime_error("Input image exceeds pixel limit"); + } + if (descriptor->limitInputChannels > 0 && static_cast(image.bands()) > descriptor->limitInputChannels) { + throw std::runtime_error("Input image exceeds channel limit"); + } + return std::make_tuple(image, imageType); + } + + /* + Does this image have an embedded profile? + */ + bool HasProfile(VImage image) { + return image.get_typeof(VIPS_META_ICC_NAME) == VIPS_TYPE_BLOB; + } + + /* + Get copy of embedded profile. + */ + std::pair GetProfile(VImage image) { + std::pair icc(nullptr, 0); + if (HasProfile(image)) { + size_t length; + const void *data = image.get_blob(VIPS_META_ICC_NAME, &length); + icc.first = static_cast(vips_malloc(reinterpret_cast(image.get_image()), length)); + icc.second = length; + memcpy(icc.first, data, length); + } + return icc; + } + + /* + Set embedded profile. + */ + VImage SetProfile(VImage image, std::pair icc) { + if (icc.first != nullptr) { + image = image.copy(); + image.set(VIPS_META_ICC_NAME, nullptr, icc.first, icc.second); + } + return image; + } + + static void* RemoveExifCallback(VipsImage *image, char const *field, GValue *value, void *data) { + std::vector *fieldNames = static_cast *>(data); + std::string fieldName(field); + if (fieldName.substr(0, 8) == ("exif-ifd")) { + fieldNames->push_back(fieldName); + } + return nullptr; + } + + /* + Remove all EXIF-related image fields. + */ + VImage RemoveExif(VImage image) { + std::vector fieldNames; + vips_image_map(image.get_image(), static_cast(RemoveExifCallback), &fieldNames); + for (const auto& f : fieldNames) { + image.remove(f.data()); + } + return image; + } + + /* + Get EXIF Orientation of image, if any. + */ + int ExifOrientation(VImage image) { + int orientation = 0; + if (image.get_typeof(VIPS_META_ORIENTATION) != 0) { + orientation = image.get_int(VIPS_META_ORIENTATION); + } + return orientation; + } + + /* + Set EXIF Orientation of image. + */ + VImage SetExifOrientation(VImage image, int const orientation) { + VImage copy = image.copy(); + copy.set(VIPS_META_ORIENTATION, orientation); + return copy; + } + + /* + Remove EXIF Orientation from image. + */ + VImage RemoveExifOrientation(VImage image) { + VImage copy = image.copy(); + copy.remove(VIPS_META_ORIENTATION); + copy.remove("exif-ifd0-Orientation"); + return copy; + } + + /* + Set animation properties if necessary. + */ + VImage SetAnimationProperties(VImage image, int nPages, int pageHeight, std::vector delay, int loop) { + bool hasDelay = !delay.empty(); + VImage copy = image.copy(); + + // Only set page-height and n-pages if we have more than one page, or this + // could accidentally turn into an animated image later. + if (nPages > 1) { + copy.set(VIPS_META_PAGE_HEIGHT, pageHeight); + copy.set(VIPS_META_N_PAGES, nPages); + } + if (hasDelay) { + if (delay.size() == 1) { + // We have just one delay, repeat that value for all frames. + delay.insert(delay.end(), nPages - 1, delay[0]); + } + copy.set("delay", delay); + } + if (nPages == 1 && !hasDelay && loop == -1) { + loop = 1; + } + if (loop != -1) copy.set("loop", loop); + + return copy; + } + + /* + Remove animation properties from image. + */ + VImage RemoveAnimationProperties(VImage image) { + VImage copy = image.copy(); + copy.remove(VIPS_META_PAGE_HEIGHT); + copy.remove("delay"); + copy.remove("loop"); + return copy; + } + + /* + Remove GIF palette from image. + */ + VImage RemoveGifPalette(VImage image) { + VImage copy = image.copy(); + copy.remove("gif-palette"); + return copy; + } + + /* + Does this image have a non-default density? + */ + bool HasDensity(VImage image) { + return image.xres() > 1.0; + } + + /* + Get pixels/mm resolution as pixels/inch density. + */ + int GetDensity(VImage image) { + return static_cast(round(image.xres() * 25.4)); + } + + /* + Set pixels/mm resolution based on a pixels/inch density. + */ + VImage SetDensity(VImage image, const double density) { + const double pixelsPerMm = density / 25.4; + VImage copy = image.copy(); + copy.get_image()->Xres = pixelsPerMm; + copy.get_image()->Yres = pixelsPerMm; + return copy; + } + + /* + Multi-page images can have a page height. Fetch it, and sanity check it. + If page-height is not set, it defaults to the image height + */ + int GetPageHeight(VImage image) { + return vips_image_get_page_height(image.get_image()); + } + + /* + Check the proposed format supports the current dimensions. + */ + void AssertImageTypeDimensions(VImage image, ImageType const imageType) { + const int height = image.get_typeof(VIPS_META_PAGE_HEIGHT) == G_TYPE_INT + ? image.get_int(VIPS_META_PAGE_HEIGHT) + : image.height(); + if (imageType == ImageType::JPEG) { + if (image.width() > 65535 || height > 65535) { + throw std::runtime_error("Processed image is too large for the JPEG format"); + } + } else if (imageType == ImageType::WEBP) { + if (image.width() > 16383 || height > 16383) { + throw std::runtime_error("Processed image is too large for the WebP format"); + } + } else if (imageType == ImageType::GIF) { + if (image.width() > 65535 || height > 65535) { + throw std::runtime_error("Processed image is too large for the GIF format"); + } + } else if (imageType == ImageType::HEIF) { + if (image.width() > 16384 || height > 16384) { + throw std::runtime_error("Processed image is too large for the HEIF format"); + } + } + } + + /* + Called when a Buffer undergoes GC, required to support mixed runtime libraries in Windows + */ + std::function FreeCallback = [](void*, char* data) { + g_free(data); + }; + + /* + Temporary buffer of warnings + */ + std::queue vipsWarnings; + std::mutex vipsWarningsMutex; + + /* + Called with warnings from the glib-registered "VIPS" domain + */ + void VipsWarningCallback(char const* log_domain, GLogLevelFlags log_level, char const* message, void* ignore) { + std::lock_guard lock(vipsWarningsMutex); + vipsWarnings.emplace(message); + } + + /* + Pop the oldest warning message from the queue + */ + std::string VipsWarningPop() { + std::string warning; + std::lock_guard lock(vipsWarningsMutex); + if (!vipsWarnings.empty()) { + warning = vipsWarnings.front(); + vipsWarnings.pop(); + } + return warning; + } + + /* + Attach an event listener for progress updates, used to detect timeout + */ + void SetTimeout(VImage image, int const seconds) { + if (seconds > 0) { + VipsImage *im = image.get_image(); + if (im->progress_signal == NULL) { + int *timeout = VIPS_NEW(im, int); + *timeout = seconds; + g_signal_connect(im, "eval", G_CALLBACK(VipsProgressCallBack), timeout); + vips_image_set_progress(im, true); + } + } + } + + /* + Event listener for progress updates, used to detect timeout + */ + void VipsProgressCallBack(VipsImage *im, VipsProgress *progress, int *timeout) { + if (*timeout > 0 && progress->run >= *timeout) { + vips_image_set_kill(im, true); + vips_error("timeout", "%d%% complete", progress->percent); + *timeout = 0; + } + } + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity during an embed. + + @Azurebyte: We are basically swapping the inWidth and outWidth, inHeight and outHeight from the CalculateCrop function. + */ + std::tuple CalculateEmbedPosition(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity) { + + int left = 0; + int top = 0; + switch (gravity) { + case 1: + // North + left = (outWidth - inWidth) / 2; + break; + case 2: + // East + left = outWidth - inWidth; + top = (outHeight - inHeight) / 2; + break; + case 3: + // South + left = (outWidth - inWidth) / 2; + top = outHeight - inHeight; + break; + case 4: + // West + top = (outHeight - inHeight) / 2; + break; + case 5: + // Northeast + left = outWidth - inWidth; + break; + case 6: + // Southeast + left = outWidth - inWidth; + top = outHeight - inHeight; + break; + case 7: + // Southwest + top = outHeight - inHeight; + break; + case 8: + // Northwest + // Which is the default is 0,0 so we do not assign anything here. + break; + default: + // Centre + left = (outWidth - inWidth) / 2; + top = (outHeight - inHeight) / 2; + } + return std::make_tuple(left, top); + } + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity during a crop. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity) { + + int left = 0; + int top = 0; + switch (gravity) { + case 1: + // North + left = (inWidth - outWidth + 1) / 2; + break; + case 2: + // East + left = inWidth - outWidth; + top = (inHeight - outHeight + 1) / 2; + break; + case 3: + // South + left = (inWidth - outWidth + 1) / 2; + top = inHeight - outHeight; + break; + case 4: + // West + top = (inHeight - outHeight + 1) / 2; + break; + case 5: + // Northeast + left = inWidth - outWidth; + break; + case 6: + // Southeast + left = inWidth - outWidth; + top = inHeight - outHeight; + break; + case 7: + // Southwest + top = inHeight - outHeight; + break; + case 8: + // Northwest + break; + default: + // Centre + left = (inWidth - outWidth + 1) / 2; + top = (inHeight - outHeight + 1) / 2; + } + return std::make_tuple(left, top); + } + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given x and y offsets. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const x, int const y) { + + // default values + int left = 0; + int top = 0; + + // assign only if valid + if (x < (inWidth - outWidth)) { + left = x; + } else if (x >= (inWidth - outWidth)) { + left = inWidth - outWidth; + } + + if (y < (inHeight - outHeight)) { + top = y; + } else if (y >= (inHeight - outHeight)) { + top = inHeight - outHeight; + } + + return std::make_tuple(left, top); + } + + /* + Are pixel values in this image 16-bit integer? + */ + bool Is16Bit(VipsInterpretation const interpretation) { + return interpretation == VIPS_INTERPRETATION_RGB16 || interpretation == VIPS_INTERPRETATION_GREY16; + } + + /* + Convert RGBA value to another colourspace + */ + std::vector GetRgbaAsColourspace(std::vector const rgba, + VipsInterpretation const interpretation, bool premultiply) { + int const bands = static_cast(rgba.size()); + if (bands < 3) { + return rgba; + } + VImage pixel = VImage::new_matrix(1, 1); + pixel.set("bands", bands); + pixel = pixel + .new_from_image(rgba) + .colourspace(interpretation, VImage::option()->set("source_space", VIPS_INTERPRETATION_sRGB)); + if (premultiply) { + pixel = pixel.premultiply(); + } + return pixel(0, 0); + } + + /* + Apply the alpha channel to a given colour + */ + std::tuple> ApplyAlpha(VImage image, std::vector colour, bool premultiply) { + // Scale up 8-bit values to match 16-bit input image + double const multiplier = sharp::Is16Bit(image.interpretation()) ? 256.0 : 1.0; + // Create alphaColour colour + std::vector alphaColour; + if (image.bands() > 2) { + alphaColour = { + multiplier * colour[0], + multiplier * colour[1], + multiplier * colour[2] + }; + } else { + // Convert sRGB to greyscale + alphaColour = { multiplier * ( + 0.2126 * colour[0] + + 0.7152 * colour[1] + + 0.0722 * colour[2]) + }; + } + // Add alpha channel(s) to alphaColour colour + if (colour[3] < 255.0 || image.has_alpha()) { + int extraBands = image.bands() > 4 ? image.bands() - 3 : 1; + alphaColour.insert(alphaColour.end(), extraBands, colour[3] * multiplier); + } + // Ensure alphaColour colour uses correct colourspace + alphaColour = sharp::GetRgbaAsColourspace(alphaColour, image.interpretation(), premultiply); + // Add non-transparent alpha channel, if required + if (colour[3] < 255.0 && !image.has_alpha()) { + image = image.bandjoin_const({ 255 * multiplier }); + } + return std::make_tuple(image, alphaColour); + } + + /* + Removes alpha channels, if any. + */ + VImage RemoveAlpha(VImage image) { + while (image.bands() > 1 && image.has_alpha()) { + image = image.extract_band(0, VImage::option()->set("n", image.bands() - 1)); + } + return image; + } + + /* + Ensures alpha channel, if missing. + */ + VImage EnsureAlpha(VImage image, double const value) { + if (!image.has_alpha()) { + image = image.bandjoin_const({ value * vips_interpretation_max_alpha(image.interpretation()) }); + } + return image; + } + + std::pair ResolveShrink(int width, int height, int targetWidth, int targetHeight, + Canvas canvas, bool withoutEnlargement, bool withoutReduction) { + double hshrink = 1.0; + double vshrink = 1.0; + + if (targetWidth > 0 && targetHeight > 0) { + // Fixed width and height + hshrink = static_cast(width) / targetWidth; + vshrink = static_cast(height) / targetHeight; + + switch (canvas) { + case Canvas::CROP: + case Canvas::MIN: + if (hshrink < vshrink) { + vshrink = hshrink; + } else { + hshrink = vshrink; + } + break; + case Canvas::EMBED: + case Canvas::MAX: + if (hshrink > vshrink) { + vshrink = hshrink; + } else { + hshrink = vshrink; + } + break; + case Canvas::IGNORE_ASPECT: + break; + } + } else if (targetWidth > 0) { + // Fixed width + hshrink = static_cast(width) / targetWidth; + + if (canvas != Canvas::IGNORE_ASPECT) { + // Auto height + vshrink = hshrink; + } + } else if (targetHeight > 0) { + // Fixed height + vshrink = static_cast(height) / targetHeight; + + if (canvas != Canvas::IGNORE_ASPECT) { + // Auto width + hshrink = vshrink; + } + } + + // We should not reduce or enlarge the output image, if + // withoutReduction or withoutEnlargement is specified. + if (withoutReduction) { + // Equivalent of VIPS_SIZE_UP + hshrink = std::min(1.0, hshrink); + vshrink = std::min(1.0, vshrink); + } else if (withoutEnlargement) { + // Equivalent of VIPS_SIZE_DOWN + hshrink = std::max(1.0, hshrink); + vshrink = std::max(1.0, vshrink); + } + + // We don't want to shrink so much that we send an axis to 0 + hshrink = std::min(hshrink, static_cast(width)); + vshrink = std::min(vshrink, static_cast(height)); + + return std::make_pair(hshrink, vshrink); + } + + /* + Ensure decoding remains sequential. + */ + VImage StaySequential(VImage image, bool condition) { + if (vips_image_is_sequential(image.get_image()) && condition) { + image = image.copy_memory().copy(); + image.remove(VIPS_META_SEQUENTIAL); + } + return image; + } + + /* + Does this image have a gain map? + */ + bool HasGainMap(VImage image) { + return image.get_typeof("gainmap") == VIPS_TYPE_BLOB || + image.get_typeof("gainmap-data") == VIPS_TYPE_BLOB; + } + + /* + Removes gain map, if any. + */ + VImage RemoveGainMap(VImage image) { + VImage copy = image.copy(); + copy.remove("gainmap"); + copy.remove("gainmap-data"); + return copy; + } +} // namespace sharp diff --git a/apps/api/.output/node_modules/sharp/src/common.h b/apps/api/.output/node_modules/sharp/src/common.h new file mode 100644 index 0000000..116e066 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/common.h @@ -0,0 +1,421 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_COMMON_H_ +#define SRC_COMMON_H_ + +#include +#include +#include +#include +#include + +#include +#include + +// Verify platform and compiler compatibility + +#if (VIPS_MAJOR_VERSION < 8) || \ + (VIPS_MAJOR_VERSION == 8 && VIPS_MINOR_VERSION < 18) || \ + (VIPS_MAJOR_VERSION == 8 && VIPS_MINOR_VERSION == 18 && VIPS_MICRO_VERSION < 7) +#error "libvips version 8.18.7+ is required - please see https://sharp.pixelplumbing.com/install" +#endif + +#if defined(__has_include) +#if !__has_include() +#error "C++17 compiler required - please see https://sharp.pixelplumbing.com/install" +#endif +#endif + +#ifdef __EMSCRIPTEN__ +#define SHARP_CALLBACK_FN_NAME Call +#else +#define SHARP_CALLBACK_FN_NAME MakeCallback +#endif + +using vips::VImage; + +namespace sharp { + + struct InputDescriptor { + std::string name; + std::string file; + bool autoOrient; + char *buffer; + VipsFailOn failOn; + uint64_t limitInputPixels; + uint64_t limitInputChannels; + bool unlimited; + VipsAccess access; + size_t bufferLength; + bool isBuffer; + double density; + bool ignoreIcc; + VipsBandFormat rawDepth; + int rawChannels; + int rawWidth; + int rawHeight; + bool rawPremultiplied; + int rawPageHeight; + int pages; + int page; + int createChannels; + int createWidth; + int createHeight; + int createPageHeight; + std::vector createBackground; + std::string createNoiseType; + double createNoiseMean; + double createNoiseSigma; + std::string textValue; + std::string textFont; + std::string textFontfile; + int textWidth; + int textHeight; + VipsAlign textAlign; + bool textJustify; + int textDpi; + bool textRgba; + int textSpacing; + VipsTextWrap textWrap; + int textAutofitDpi; + bool joinAnimated; + int joinAcross; + int joinShim; + std::vector joinBackground; + VipsAlign joinHalign; + VipsAlign joinValign; + std::string svgStylesheet; + bool svgHighBitdepth; + int tiffSubifd; + int openSlideLevel; + std::vector pdfBackground; + bool jp2Oneshot; + + InputDescriptor(): + autoOrient(false), + buffer(nullptr), + failOn(VIPS_FAIL_ON_WARNING), + limitInputPixels(0x3FFF * 0x3FFF), + limitInputChannels(5), + unlimited(false), + access(VIPS_ACCESS_SEQUENTIAL), + bufferLength(0), + isBuffer(false), + density(72.0), + ignoreIcc(false), + rawDepth(VIPS_FORMAT_UCHAR), + rawChannels(0), + rawWidth(0), + rawHeight(0), + rawPremultiplied(false), + rawPageHeight(0), + pages(1), + page(-1), + createChannels(0), + createWidth(0), + createHeight(0), + createPageHeight(0), + createBackground{ 0.0, 0.0, 0.0, 255.0 }, + createNoiseMean(0.0), + createNoiseSigma(0.0), + textWidth(0), + textHeight(0), + textAlign(VIPS_ALIGN_LOW), + textJustify(false), + textDpi(72), + textRgba(false), + textSpacing(0), + textWrap(VIPS_TEXT_WRAP_WORD), + textAutofitDpi(0), + joinAnimated(false), + joinAcross(1), + joinShim(0), + joinBackground{ 0.0, 0.0, 0.0, 255.0 }, + joinHalign(VIPS_ALIGN_LOW), + joinValign(VIPS_ALIGN_LOW), + svgHighBitdepth(false), + tiffSubifd(-1), + openSlideLevel(0), + pdfBackground{ 255.0, 255.0, 255.0, 255.0 }, + jp2Oneshot(false) {} + }; + + // Convenience methods to access the attributes of a Napi::Object + bool HasAttr(Napi::Object obj, std::string attr); + std::string AttrAsStr(Napi::Object obj, std::string attr); + std::string AttrAsStr(Napi::Object obj, unsigned int const attr); + uint32_t AttrAsUint32(Napi::Object obj, std::string attr); + int32_t AttrAsInt32(Napi::Object obj, std::string attr); + int32_t AttrAsInt32(Napi::Object obj, unsigned int const attr); + double AttrAsDouble(Napi::Object obj, std::string attr); + double AttrAsDouble(Napi::Object obj, unsigned int const attr); + bool AttrAsBool(Napi::Object obj, std::string attr); + std::vector AttrAsVectorOfDouble(Napi::Object obj, std::string attr); + std::vector AttrAsInt32Vector(Napi::Object obj, std::string attr); + template T AttrAsEnum(Napi::Object obj, std::string attr, GType type) { + return static_cast( + vips_enum_from_nick(nullptr, type, AttrAsStr(obj, attr).data())); + } + + // Create an InputDescriptor instance from a Napi::Object describing an input image + InputDescriptor* CreateInputDescriptor(Napi::Object input); + + enum class ImageType { + JPEG, + PNG, + WEBP, + JP2, + TIFF, + GIF, + SVG, + HEIF, + PDF, + MAGICK, + OPENSLIDE, + PPM, + FITS, + EXR, + JXL, + RAD, + DCRAW, + UHDR, + VIPS, + RAW, + UNKNOWN, + MISSING + }; + + enum class Canvas { + CROP, + EMBED, + MAX, + MIN, + IGNORE_ASPECT + }; + + // How many tasks are in the queue? + extern std::atomic counterQueue; + + // How many tasks are being processed? + extern std::atomic counterProcess; + + // Filename extension checkers + bool IsJpeg(std::string const &str); + bool IsPng(std::string const &str); + bool IsWebp(std::string const &str); + bool IsJp2(std::string const &str); + bool IsGif(std::string const &str); + bool IsTiff(std::string const &str); + bool IsHeic(std::string const &str); + bool IsHeif(std::string const &str); + bool IsAvif(std::string const &str); + bool IsJxl(std::string const &str); + bool IsDz(std::string const &str); + bool IsDzZip(std::string const &str); + bool IsV(std::string const &str); + + /* + Trim space from end of string. + */ + std::string TrimEnd(std::string const &str); + + /* + Provide a string identifier for the given image type. + */ + std::string ImageTypeId(ImageType const imageType); + + /* + Determine image format of a buffer. + */ + ImageType DetermineImageType(void *buffer, size_t const length); + + /* + Determine image format of a file. + */ + ImageType DetermineImageType(char const *file); + + /* + Format-specific options builder + */ + vips::VOption* GetOptionsForImageType(ImageType imageType, InputDescriptor *descriptor); + + /* + Open an image from the given InputDescriptor (filesystem, compressed buffer, raw pixel data) + */ + std::tuple OpenInput(InputDescriptor *descriptor); + + /* + Does this image have an embedded profile? + */ + bool HasProfile(VImage image); + + /* + Get copy of embedded profile. + */ + std::pair GetProfile(VImage image); + + /* + Set embedded profile. + */ + VImage SetProfile(VImage image, std::pair icc); + + /* + Remove all EXIF-related image fields. + */ + VImage RemoveExif(VImage image); + + /* + Get EXIF Orientation of image, if any. + */ + int ExifOrientation(VImage image); + + /* + Set EXIF Orientation of image. + */ + VImage SetExifOrientation(VImage image, int const orientation); + + /* + Remove EXIF Orientation from image. + */ + VImage RemoveExifOrientation(VImage image); + + /* + Set animation properties if necessary. + */ + VImage SetAnimationProperties(VImage image, int nPages, int pageHeight, std::vector delay, int loop); + + /* + Remove animation properties from image. + */ + VImage RemoveAnimationProperties(VImage image); + + /* + Remove GIF palette from image. + */ + VImage RemoveGifPalette(VImage image); + + /* + Does this image have a non-default density? + */ + bool HasDensity(VImage image); + + /* + Get pixels/mm resolution as pixels/inch density. + */ + int GetDensity(VImage image); + + /* + Set pixels/mm resolution based on a pixels/inch density. + */ + VImage SetDensity(VImage image, const double density); + + /* + Multi-page images can have a page height. Fetch it, and sanity check it. + If page-height is not set, it defaults to the image height + */ + int GetPageHeight(VImage image); + + /* + Check the proposed format supports the current dimensions. + */ + void AssertImageTypeDimensions(VImage image, ImageType const imageType); + + /* + Called when a Buffer undergoes GC, required to support mixed runtime libraries in Windows + */ + extern std::function FreeCallback; + + /* + Called with warnings from the glib-registered "VIPS" domain + */ + void VipsWarningCallback(char const* log_domain, GLogLevelFlags log_level, char const* message, void* ignore); + + /* + Pop the oldest warning message from the queue + */ + std::string VipsWarningPop(); + + /* + Attach an event listener for progress updates, used to detect timeout + */ + void SetTimeout(VImage image, int const timeoutSeconds); + + /* + Event listener for progress updates, used to detect timeout + */ + void VipsProgressCallBack(VipsImage *image, VipsProgress *progress, int *timeoutSeconds); + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity during an embed. + */ + std::tuple CalculateEmbedPosition(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity); + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity); + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given x and y offsets of the output image. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const x, int const y); + + /* + Are pixel values in this image 16-bit integer? + */ + bool Is16Bit(VipsInterpretation const interpretation); + + /* + Convert RGBA value to another colourspace + */ + std::vector GetRgbaAsColourspace(std::vector const rgba, + VipsInterpretation const interpretation, bool premultiply); + + /* + Apply the alpha channel to a given colour + */ + std::tuple> ApplyAlpha(VImage image, std::vector colour, bool premultiply); + + /* + Removes alpha channels, if any. + */ + VImage RemoveAlpha(VImage image); + + /* + Ensures alpha channel, if missing. + */ + VImage EnsureAlpha(VImage image, double const value); + + /* + Calculate the horizontal and vertical shrink factors, taking the canvas mode into account. + */ + std::pair ResolveShrink(int width, int height, int targetWidth, int targetHeight, + Canvas canvas, bool withoutEnlargement, bool withoutReduction); + + /* + Ensure decoding remains sequential. + */ + VImage StaySequential(VImage image, bool condition = true); + + /* + Does this image have a gain map? + */ + bool HasGainMap(VImage image); + + /* + Removes gain map, if any. + */ + VImage RemoveGainMap(VImage image); + +} // namespace sharp + +#endif // SRC_COMMON_H_ diff --git a/apps/api/.output/node_modules/sharp/src/metadata.cc b/apps/api/.output/node_modules/sharp/src/metadata.cc new file mode 100644 index 0000000..9e027b1 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/metadata.cc @@ -0,0 +1,404 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include +#include +#include + +#include +#include + +#include "./common.h" +#include "./metadata.h" + +static void* readPNGComment(VipsImage *image, const char *field, GValue *value, void *p); + +class MetadataWorker : public Napi::AsyncWorker { + public: + MetadataWorker(Napi::Function callback, MetadataBaton *baton, Napi::Function debuglog) : + Napi::AsyncWorker(callback), baton(baton), debuglog(Napi::Persistent(debuglog)) {} + ~MetadataWorker() {} + + void Execute() { + // Decrement queued task counter + sharp::counterQueue--; + + vips::VImage image; + sharp::ImageType imageType = sharp::ImageType::UNKNOWN; + try { + std::tie(image, imageType) = OpenInput(baton->input); + } catch (std::runtime_error const &err) { + (baton->err).append(err.what()); + } + if (imageType != sharp::ImageType::UNKNOWN) { + // Image type + baton->format = sharp::ImageTypeId(imageType); + // VipsImage attributes + baton->width = image.width(); + baton->height = image.height(); + baton->space = vips_enum_nick(VIPS_TYPE_INTERPRETATION, image.interpretation()); + baton->channels = image.bands(); + baton->depth = vips_enum_nick(VIPS_TYPE_BAND_FORMAT, image.format()); + if (sharp::HasDensity(image)) { + baton->density = sharp::GetDensity(image); + } + if (image.get_typeof("jpeg-chroma-subsample") == VIPS_TYPE_REF_STRING) { + baton->chromaSubsampling = image.get_string("jpeg-chroma-subsample"); + } + if (image.get_typeof("interlaced") == G_TYPE_INT) { + baton->isProgressive = image.get_int("interlaced") == 1; + } + if (image.get_typeof(VIPS_META_PALETTE) == G_TYPE_INT) { + baton->isPalette = image.get_int(VIPS_META_PALETTE); + } + if (image.get_typeof(VIPS_META_BITS_PER_SAMPLE) == G_TYPE_INT) { + baton->bitsPerSample = image.get_int(VIPS_META_BITS_PER_SAMPLE); + } + if (image.get_typeof(VIPS_META_N_PAGES) == G_TYPE_INT) { + baton->pages = image.get_int(VIPS_META_N_PAGES); + } + if (image.get_typeof(VIPS_META_PAGE_HEIGHT) == G_TYPE_INT) { + baton->pageHeight = image.get_int(VIPS_META_PAGE_HEIGHT); + } + if (image.get_typeof("loop") == G_TYPE_INT) { + baton->loop = image.get_int("loop"); + } + if (image.get_typeof("delay") == VIPS_TYPE_ARRAY_INT) { + baton->delay = image.get_array_int("delay"); + } + if (image.get_typeof("heif-primary") == G_TYPE_INT) { + baton->pagePrimary = image.get_int("heif-primary"); + } + if (image.get_typeof("heif-compression") == VIPS_TYPE_REF_STRING) { + baton->compression = image.get_string("heif-compression"); + } + if (image.get_typeof(VIPS_META_RESOLUTION_UNIT) == VIPS_TYPE_REF_STRING) { + baton->resolutionUnit = image.get_string(VIPS_META_RESOLUTION_UNIT); + } + if (image.get_typeof("magick-format") == VIPS_TYPE_REF_STRING) { + baton->formatMagick = image.get_string("magick-format"); + } + if (image.get_typeof("openslide.level-count") == VIPS_TYPE_REF_STRING) { + int const levels = std::stoi(image.get_string("openslide.level-count")); + for (int l = 0; l < levels; l++) { + std::string prefix = "openslide.level[" + std::to_string(l) + "]."; + int const width = std::stoi(image.get_string((prefix + "width").data())); + int const height = std::stoi(image.get_string((prefix + "height").data())); + baton->levels.push_back(std::pair(width, height)); + } + } + if (image.get_typeof(VIPS_META_N_SUBIFDS) == G_TYPE_INT) { + baton->subifds = image.get_int(VIPS_META_N_SUBIFDS); + } + baton->hasProfile = sharp::HasProfile(image); + if (image.get_typeof("background") == VIPS_TYPE_ARRAY_DOUBLE) { + baton->background = image.get_array_double("background"); + } + // Derived attributes + baton->hasAlpha = image.has_alpha(); + baton->orientation = sharp::ExifOrientation(image); + // EXIF + if (image.get_typeof(VIPS_META_EXIF_NAME) == VIPS_TYPE_BLOB) { + size_t exifLength; + void const *exif = image.get_blob(VIPS_META_EXIF_NAME, &exifLength); + baton->exif = static_cast(g_malloc(exifLength)); + memcpy(baton->exif, exif, exifLength); + baton->exifLength = exifLength; + } + // ICC profile + if (image.get_typeof(VIPS_META_ICC_NAME) == VIPS_TYPE_BLOB) { + size_t iccLength; + void const *icc = image.get_blob(VIPS_META_ICC_NAME, &iccLength); + baton->icc = static_cast(g_malloc(iccLength)); + memcpy(baton->icc, icc, iccLength); + baton->iccLength = iccLength; + } + // IPTC + if (image.get_typeof(VIPS_META_IPTC_NAME) == VIPS_TYPE_BLOB) { + size_t iptcLength; + void const *iptc = image.get_blob(VIPS_META_IPTC_NAME, &iptcLength); + baton->iptc = static_cast(g_malloc(iptcLength)); + memcpy(baton->iptc, iptc, iptcLength); + baton->iptcLength = iptcLength; + } + // XMP + if (image.get_typeof(VIPS_META_XMP_NAME) == VIPS_TYPE_BLOB) { + size_t xmpLength; + void const *xmp = image.get_blob(VIPS_META_XMP_NAME, &xmpLength); + baton->xmp = static_cast(g_malloc(xmpLength)); + memcpy(baton->xmp, xmp, xmpLength); + baton->xmpLength = xmpLength; + } + // TIFFTAG_PHOTOSHOP + if (image.get_typeof(VIPS_META_PHOTOSHOP_NAME) == VIPS_TYPE_BLOB) { + size_t tifftagPhotoshopLength; + void const *tifftagPhotoshop = image.get_blob(VIPS_META_PHOTOSHOP_NAME, &tifftagPhotoshopLength); + baton->tifftagPhotoshop = static_cast(g_malloc(tifftagPhotoshopLength)); + memcpy(baton->tifftagPhotoshop, tifftagPhotoshop, tifftagPhotoshopLength); + baton->tifftagPhotoshopLength = tifftagPhotoshopLength; + } + // Gain Map + if (image.get_typeof("gainmap-data") == VIPS_TYPE_BLOB) { + size_t gainMapLength; + void const *gainMap = image.get_blob("gainmap-data", &gainMapLength); + baton->gainMap = static_cast(g_malloc(gainMapLength)); + memcpy(baton->gainMap, gainMap, gainMapLength); + baton->gainMapLength = gainMapLength; + } + // PNG comments + vips_image_map(image.get_image(), readPNGComment, &baton->comments); + // Media type + std::string mediaType; + switch (imageType) { + case sharp::ImageType::JPEG: + case sharp::ImageType::PNG: + case sharp::ImageType::WEBP: + case sharp::ImageType::JP2: + case sharp::ImageType::TIFF: + case sharp::ImageType::GIF: + case sharp::ImageType::FITS: + case sharp::ImageType::JXL: + baton->mediaType = "image/" + baton->format; + break; + case sharp::ImageType::SVG: + baton->mediaType = "image/svg+xml"; + break; + case sharp::ImageType::HEIF: + if (baton->compression == "av1") { + baton->mediaType = "image/avif"; + } else if (baton->compression == "hevc") { + baton->mediaType = "image/heic"; + } + break; + case sharp::ImageType::PDF: + baton->mediaType = "application/pdf"; + break; + case sharp::ImageType::OPENSLIDE: + baton->mediaType = "image/tiff"; + break; + case sharp::ImageType::PPM: + baton->mediaType = "image/x-portable-pixmap"; + break; + case sharp::ImageType::EXR: + baton->mediaType = "image/x-exr"; + break; + case sharp::ImageType::RAD: + baton->mediaType = "image/vnd.radiance"; + break; + case sharp::ImageType::UHDR: + baton->mediaType = "image/jpeg"; + break; + default: + break; + } + } + + // Clean up + vips_error_clear(); + vips_thread_shutdown(); + } + + void OnOK() { + Napi::Env env = Env(); + Napi::HandleScope scope(env); + + // Handle warnings + std::string warning = sharp::VipsWarningPop(); + while (!warning.empty()) { + debuglog.SHARP_CALLBACK_FN_NAME(Receiver().Value(), { Napi::String::New(env, warning) }); + warning = sharp::VipsWarningPop(); + } + + if (baton->err.empty()) { + Napi::Object info = Napi::Object::New(env); + info.Set("format", baton->format); + if (!baton->mediaType.empty()) { + info.Set("mediaType", baton->mediaType); + } + if (baton->input->bufferLength > 0) { + info.Set("size", baton->input->bufferLength); + } + info.Set("width", baton->width); + info.Set("height", baton->height); + info.Set("space", baton->space); + info.Set("channels", baton->channels); + info.Set("depth", baton->depth); + if (baton->density > 0) { + info.Set("density", baton->density); + } + if (!baton->chromaSubsampling.empty()) { + info.Set("chromaSubsampling", baton->chromaSubsampling); + } + info.Set("isProgressive", baton->isProgressive); + info.Set("isPalette", baton->isPalette); + if (baton->bitsPerSample > 0) { + info.Set("bitsPerSample", baton->bitsPerSample); + } + if (baton->pages > 0) { + info.Set("pages", baton->pages); + } + if (baton->pageHeight > 0) { + info.Set("pageHeight", baton->pageHeight); + } + if (baton->loop >= 0) { + info.Set("loop", baton->loop); + } + if (!baton->delay.empty()) { + int i = 0; + Napi::Array delay = Napi::Array::New(env, static_cast(baton->delay.size())); + for (int const d : baton->delay) { + delay.Set(i++, d); + } + info.Set("delay", delay); + } + if (baton->pagePrimary > -1) { + info.Set("pagePrimary", baton->pagePrimary); + } + if (!baton->compression.empty()) { + info.Set("compression", baton->compression); + } + if (!baton->resolutionUnit.empty()) { + info.Set("resolutionUnit", baton->resolutionUnit == "in" ? "inch" : baton->resolutionUnit); + } + if (!baton->formatMagick.empty()) { + info.Set("formatMagick", baton->formatMagick); + } + if (!baton->levels.empty()) { + int i = 0; + Napi::Array levels = Napi::Array::New(env, static_cast(baton->levels.size())); + for (const auto& [width, height] : baton->levels) { + Napi::Object level = Napi::Object::New(env); + level.Set("width", width); + level.Set("height", height); + levels.Set(i++, level); + } + info.Set("levels", levels); + } + if (baton->subifds > 0) { + info.Set("subifds", baton->subifds); + } + if (!baton->background.empty()) { + Napi::Object background = Napi::Object::New(env); + if (baton->background.size() == 3) { + background.Set("r", baton->background[0]); + background.Set("g", baton->background[1]); + background.Set("b", baton->background[2]); + } else { + background.Set("gray", round(baton->background[0] * 100 / 255)); + } + info.Set("background", background); + } + info.Set("hasProfile", baton->hasProfile); + info.Set("hasAlpha", baton->hasAlpha); + if (baton->orientation > 0) { + info.Set("orientation", baton->orientation); + } + Napi::Object autoOrient = Napi::Object::New(env); + info.Set("autoOrient", autoOrient); + if (baton->orientation >= 5) { + autoOrient.Set("width", baton->height); + autoOrient.Set("height", baton->width); + } else { + autoOrient.Set("width", baton->width); + autoOrient.Set("height", baton->height); + } + if (baton->exifLength > 0) { + info.Set("exif", Napi::Buffer::NewOrCopy(env, baton->exif, baton->exifLength, sharp::FreeCallback)); + } + if (baton->iccLength > 0) { + info.Set("icc", Napi::Buffer::NewOrCopy(env, baton->icc, baton->iccLength, sharp::FreeCallback)); + } + if (baton->iptcLength > 0) { + info.Set("iptc", Napi::Buffer::NewOrCopy(env, baton->iptc, baton->iptcLength, sharp::FreeCallback)); + } + if (baton->xmpLength > 0) { + if (g_utf8_validate(static_cast(baton->xmp), baton->xmpLength, nullptr)) { + info.Set("xmpAsString", + Napi::String::New(env, static_cast(baton->xmp), baton->xmpLength)); + } + info.Set("xmp", Napi::Buffer::NewOrCopy(env, baton->xmp, baton->xmpLength, sharp::FreeCallback)); + } + if (baton->tifftagPhotoshopLength > 0) { + info.Set("tifftagPhotoshop", + Napi::Buffer::NewOrCopy(env, baton->tifftagPhotoshop, + baton->tifftagPhotoshopLength, sharp::FreeCallback)); + } + if (baton->gainMapLength > 0) { + Napi::Object gainMap = Napi::Object::New(env); + info.Set("gainMap", gainMap); + gainMap.Set("image", + Napi::Buffer::NewOrCopy(env, baton->gainMap, baton->gainMapLength, sharp::FreeCallback)); + } + if (baton->comments.size() > 0) { + int i = 0; + Napi::Array comments = Napi::Array::New(env, baton->comments.size()); + for (const auto& [keyword, text] : baton->comments) { + Napi::Object comment = Napi::Object::New(env); + comment.Set("keyword", keyword); + comment.Set("text", text); + comments.Set(i++, comment); + } + info.Set("comments", comments); + } + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), { env.Null(), info }); + } else { + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), + { Napi::Error::New(env, sharp::TrimEnd(baton->err)).Value() }); + } + + delete baton->input; + delete baton; + } + + private: + MetadataBaton* baton; + Napi::FunctionReference debuglog; +}; + +/* + metadata(options, callback) +*/ +Napi::Value metadata(const Napi::CallbackInfo& info) { + // V8 objects are converted to non-V8 types held in the baton struct + MetadataBaton *baton = new MetadataBaton; + Napi::Object options = info[size_t(0)].As(); + + // Input + baton->input = sharp::CreateInputDescriptor(options.Get("input").As()); + + // Function to notify of libvips warnings + Napi::Function debuglog = options.Get("debuglog").As(); + + // Join queue for worker thread + Napi::Function callback = info[size_t(1)].As(); + MetadataWorker *worker = new MetadataWorker(callback, baton, debuglog); + worker->Receiver().Set("options", options); + worker->Queue(); + + // Increment queued task counter + sharp::counterQueue++; + + return info.Env().Undefined(); +} + +const char *PNG_COMMENT_START = "png-comment-"; +const int PNG_COMMENT_START_LEN = strlen(PNG_COMMENT_START); + +static void* readPNGComment(VipsImage *image, const char *field, GValue *value, void *p) { + MetadataComments *comments = static_cast(p); + + if (vips_isprefix(PNG_COMMENT_START, field)) { + const char *keyword = strchr(field + PNG_COMMENT_START_LEN, '-'); + const char *str; + if (keyword != NULL && !vips_image_get_string(image, field, &str)) { + keyword++; // Skip the hyphen + comments->push_back(std::make_pair(keyword, str)); + } + } + + return NULL; +} diff --git a/apps/api/.output/node_modules/sharp/src/metadata.h b/apps/api/.output/node_modules/sharp/src/metadata.h new file mode 100644 index 0000000..d1781dc --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/metadata.h @@ -0,0 +1,95 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_METADATA_H_ +#define SRC_METADATA_H_ + +#include +#include +#include + +#include "./common.h" + +typedef std::vector> MetadataComments; + +struct MetadataBaton { + // Input + sharp::InputDescriptor *input; + // Output + std::string format; + std::string mediaType; + int width; + int height; + std::string space; + int channels; + std::string depth; + int density; + std::string chromaSubsampling; + bool isProgressive; + bool isPalette; + int bitsPerSample; + int pages; + int pageHeight; + int loop; + std::vector delay; + int pagePrimary; + std::string compression; + std::string resolutionUnit; + std::string formatMagick; + std::vector> levels; + int subifds; + std::vector background; + bool hasProfile; + bool hasAlpha; + int orientation; + char *exif; + size_t exifLength; + char *icc; + size_t iccLength; + char *iptc; + size_t iptcLength; + char *xmp; + size_t xmpLength; + char *tifftagPhotoshop; + size_t tifftagPhotoshopLength; + char *gainMap; + size_t gainMapLength; + MetadataComments comments; + std::string err; + + MetadataBaton(): + input(nullptr), + width(0), + height(0), + channels(0), + density(0), + isProgressive(false), + isPalette(false), + bitsPerSample(0), + pages(0), + pageHeight(0), + loop(-1), + pagePrimary(-1), + subifds(0), + hasProfile(false), + hasAlpha(false), + orientation(0), + exif(nullptr), + exifLength(0), + icc(nullptr), + iccLength(0), + iptc(nullptr), + iptcLength(0), + xmp(nullptr), + xmpLength(0), + tifftagPhotoshop(nullptr), + tifftagPhotoshopLength(0), + gainMap(nullptr), + gainMapLength(0) {} +}; + +Napi::Value metadata(const Napi::CallbackInfo& info); + +#endif // SRC_METADATA_H_ diff --git a/apps/api/.output/node_modules/sharp/src/operations.cc b/apps/api/.output/node_modules/sharp/src/operations.cc new file mode 100644 index 0000000..d470172 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/operations.cc @@ -0,0 +1,516 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include +#include +#include +#include + +#include "./common.h" +#include "./operations.h" + +using vips::VImage; + +namespace sharp { + /* + * Tint an image using the provided RGB. + */ + VImage Tint(VImage image, std::vector const tint) { + std::vector const tintLab = (VImage::black(1, 1) + tint) + .colourspace(VIPS_INTERPRETATION_LAB, VImage::option()->set("source_space", VIPS_INTERPRETATION_sRGB)) + .getpoint(0, 0); + // LAB identity function + VImage identityLab = VImage::identity(VImage::option()->set("bands", 3)) + .colourspace(VIPS_INTERPRETATION_LAB, VImage::option()->set("source_space", VIPS_INTERPRETATION_sRGB)); + // Scale luminance range, 0.0 to 1.0 + VImage l = identityLab[0] / 100; + // Weighting functions + VImage weightL = 1.0 - 4.0 * ((l - 0.5) * (l - 0.5)); + VImage weightAB = (weightL * tintLab).extract_band(1, VImage::option()->set("n", 2)); + identityLab = identityLab[0].bandjoin(weightAB); + // Convert lookup table to sRGB + VImage lut = identityLab.colourspace(VIPS_INTERPRETATION_sRGB, + VImage::option()->set("source_space", VIPS_INTERPRETATION_LAB)); + // Original colourspace + VipsInterpretation typeBeforeTint = image.interpretation(); + if (typeBeforeTint == VIPS_INTERPRETATION_RGB) { + typeBeforeTint = VIPS_INTERPRETATION_sRGB; + } + // Apply lookup table + if (image.has_alpha()) { + VImage alpha = image[image.bands() - 1]; + image = RemoveAlpha(image) + .colourspace(VIPS_INTERPRETATION_B_W) + .maplut(lut) + .colourspace(typeBeforeTint) + .bandjoin(alpha); + } else { + image = image + .colourspace(VIPS_INTERPRETATION_B_W) + .maplut(lut) + .colourspace(typeBeforeTint); + } + return image; + } + + /* + * Stretch luminance to cover full dynamic range. + */ + VImage Normalise(VImage image, int const lower, int const upper) { + // Get original colourspace + VipsInterpretation typeBeforeNormalize = image.interpretation(); + if (typeBeforeNormalize == VIPS_INTERPRETATION_RGB) { + typeBeforeNormalize = VIPS_INTERPRETATION_sRGB; + } + // Convert to LAB colourspace + VImage lab = image.colourspace(VIPS_INTERPRETATION_LAB); + // Extract luminance + VImage luminance = lab[0]; + + // Find luminance range + int const min = lower == 0 ? luminance.min() : luminance.percent(lower); + int const max = upper == 100 ? luminance.max() : luminance.percent(upper); + + if (std::abs(max - min) > 1) { + // Extract chroma + VImage chroma = lab.extract_band(1, VImage::option()->set("n", 2)); + // Calculate multiplication factor and addition + double f = 100.0 / (max - min); + double a = -(min * f); + // Scale luminance, join to chroma, convert back to original colourspace + VImage normalized = luminance.linear(f, a).bandjoin(chroma).colourspace(typeBeforeNormalize); + // Attach original alpha channel, if any + if (image.has_alpha()) { + // Extract original alpha channel + VImage alpha = image[image.bands() - 1]; + // Join alpha channel to normalised image + return normalized.bandjoin(alpha); + } else { + return normalized; + } + } + return image; + } + + /* + * Contrast limiting adapative histogram equalization (CLAHE) + */ + VImage Clahe(VImage image, int const width, int const height, int const maxSlope) { + return image.hist_local(width, height, VImage::option()->set("max_slope", maxSlope)); + } + + /* + * Gamma encoding/decoding + */ + VImage Gamma(VImage image, double const exponent) { + if (image.has_alpha()) { + // Separate alpha channel + VImage alpha = image[image.bands() - 1]; + return RemoveAlpha(image).gamma(VImage::option()->set("exponent", exponent)).bandjoin(alpha); + } else { + return image.gamma(VImage::option()->set("exponent", exponent)); + } + } + + /* + * Flatten image to remove alpha channel + */ + VImage Flatten(VImage image, std::vector flattenBackground) { + double const multiplier = sharp::Is16Bit(image.interpretation()) ? 256.0 : 1.0; + std::vector background { + flattenBackground[0] * multiplier, + flattenBackground[1] * multiplier, + flattenBackground[2] * multiplier + }; + return image.flatten(VImage::option()->set("background", background)); + } + + /** + * Produce the "negative" of the image. + */ + VImage Negate(VImage image, bool const negateAlpha) { + if (image.has_alpha() && !negateAlpha) { + // Separate alpha channel + VImage alpha = image[image.bands() - 1]; + return RemoveAlpha(image).invert().bandjoin(alpha); + } else { + return image.invert(); + } + } + + /* + * Gaussian blur. Use sigma of -1.0 for fast blur. + */ + VImage Blur(VImage image, double const sigma, VipsPrecision precision, double const minAmpl) { + if (sigma == -1.0) { + // Fast, mild blur - averages neighbouring pixels + VImage blur = VImage::new_matrixv(3, 3, + 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0); + blur.set("scale", 9.0); + return image.conv(blur); + } else { + // Slower, accurate Gaussian blur + return StaySequential(image).gaussblur(sigma, VImage::option() + ->set("precision", precision) + ->set("min_ampl", minAmpl)); + } + } + + /* + * Convolution with a kernel. + */ + VImage Convolve(VImage image, int const width, int const height, + double const scale, double const offset, + std::vector const &kernel_v + ) { + VImage kernel = VImage::new_from_memory( + static_cast(const_cast(kernel_v.data())), + width * height * sizeof(double), + width, + height, + 1, + VIPS_FORMAT_DOUBLE); + kernel.set("scale", scale); + kernel.set("offset", offset); + + return image.conv(kernel); + } + + /* + * Recomb with a Matrix of the given bands/channel size. + * Eg. RGB will be a 3x3 matrix. + */ + VImage Recomb(VImage image, std::vector const& matrix) { + double* m = const_cast(matrix.data()); + image = image.colourspace(VIPS_INTERPRETATION_sRGB); + if (matrix.size() == 9) { + return image + .recomb(image.bands() == 3 + ? VImage::new_matrix(3, 3, m, 9) + : VImage::new_matrixv(4, 4, + m[0], m[1], m[2], 0.0, + m[3], m[4], m[5], 0.0, + m[6], m[7], m[8], 0.0, + 0.0, 0.0, 0.0, 1.0)); + } else { + return image.recomb(VImage::new_matrix(4, 4, m, 16)); + } + } + + VImage Modulate(VImage image, double const brightness, double const saturation, + int const hue, double const lightness) { + VipsInterpretation colourspaceBeforeModulate = image.interpretation(); + if (image.has_alpha()) { + // Separate alpha channel + VImage alpha = image[image.bands() - 1]; + return RemoveAlpha(image) + .colourspace(VIPS_INTERPRETATION_LCH) + .linear( + { brightness, saturation, 1}, + { lightness, 0.0, static_cast(hue) } + ) + .colourspace(colourspaceBeforeModulate) + .bandjoin(alpha); + } else { + return image + .colourspace(VIPS_INTERPRETATION_LCH) + .linear( + { brightness, saturation, 1 }, + { lightness, 0.0, static_cast(hue) } + ) + .colourspace(colourspaceBeforeModulate); + } + } + + /* + * Sharpen flat and jagged areas. Use sigma of -1.0 for fast sharpen. + */ + VImage Sharpen(VImage image, double const sigma, double const m1, double const m2, + double const x1, double const y2, double const y3) { + if (sigma == -1.0) { + // Fast, mild sharpen + VImage sharpen = VImage::new_matrixv(3, 3, + -1.0, -1.0, -1.0, + -1.0, 32.0, -1.0, + -1.0, -1.0, -1.0); + sharpen.set("scale", 24.0); + return image.conv(sharpen); + } else { + // Slow, accurate sharpen in LAB colour space, with control over flat vs jagged areas + VipsInterpretation colourspaceBeforeSharpen = image.interpretation(); + if (colourspaceBeforeSharpen == VIPS_INTERPRETATION_RGB) { + colourspaceBeforeSharpen = VIPS_INTERPRETATION_sRGB; + } + return image + .sharpen(VImage::option() + ->set("sigma", sigma) + ->set("m1", m1) + ->set("m2", m2) + ->set("x1", x1) + ->set("y2", y2) + ->set("y3", y3)) + .colourspace(colourspaceBeforeSharpen); + } + } + + VImage Threshold(VImage image, double const threshold, bool const thresholdGrayscale) { + if (!thresholdGrayscale) { + return image >= threshold; + } + return image.colourspace(VIPS_INTERPRETATION_B_W) >= threshold; + } + + /* + Perform boolean/bitwise operation on image color channels - results in one channel image + */ + VImage Bandbool(VImage image, VipsOperationBoolean const boolean) { + image = image.bandbool(boolean); + return image.copy(VImage::option()->set("interpretation", VIPS_INTERPRETATION_B_W)); + } + + /* + Perform bitwise boolean operation between images + */ + VImage Boolean(VImage image, VImage imageR, VipsOperationBoolean const boolean) { + return image.boolean(imageR, boolean); + } + + /* + Trim an image + */ + VImage Trim(VImage image, std::vector background, double threshold, bool const lineArt, int const margin) { + if (image.width() < 3 && image.height() < 3) { + throw std::runtime_error("Image to trim must be at least 3x3 pixels"); + } + if (background.size() == 0) { + // Top-left pixel provides the default background colour if none is given + background = image.extract_area(0, 0, 1, 1)(0, 0); + } else if (sharp::Is16Bit(image.interpretation())) { + for (size_t i = 0; i < background.size(); i++) { + background[i] *= 256.0; + } + threshold *= 256.0; + } + std::vector backgroundAlpha({ background.back() }); + if (image.has_alpha()) { + background.pop_back(); + } else { + background.resize(image.bands()); + } + int left, top, width, height; + left = image.find_trim(&top, &width, &height, VImage::option() + ->set("background", background) + ->set("line_art", lineArt) + ->set("threshold", threshold)); + if (image.has_alpha()) { + // Search alpha channel (A) + int leftA, topA, widthA, heightA; + VImage alpha = image[image.bands() - 1]; + leftA = alpha.find_trim(&topA, &widthA, &heightA, VImage::option() + ->set("background", backgroundAlpha) + ->set("line_art", lineArt) + ->set("threshold", threshold)); + if (widthA > 0 && heightA > 0) { + if (width > 0 && height > 0) { + // Combined bounding box (B) + int leftB = std::min(left, leftA); + int topB = std::min(top, topA); + int widthB = std::max(left + width, leftA + widthA) - leftB; + int heightB = std::max(top + height, topA + heightA) - topB; + if (margin > 0) { + leftB = std::max(0, leftB - margin); + topB = std::max(0, topB - margin); + widthB = std::min(image.width() - leftB, widthB + 2 * margin); + heightB = std::min(image.height() - topB, heightB + 2 * margin); + } + return image.extract_area(leftB, topB, widthB, heightB); + } else { + // Use alpha only + if (margin > 0) { + leftA = std::max(0, leftA - margin); + topA = std::max(0, topA - margin); + widthA = std::min(image.width() - leftA, widthA + 2 * margin); + heightA = std::min(image.height() - topA, heightA + 2 * margin); + } + return image.extract_area(leftA, topA, widthA, heightA); + } + } + } + if (width > 0 && height > 0) { + if (margin > 0) { + left = std::max(0, left - margin); + top = std::max(0, top - margin); + width = std::min(image.width() - left, width + 2 * margin); + height = std::min(image.height() - top, height + 2 * margin); + } + return image.extract_area(left, top, width, height); + } + return image; + } + + /* + * Calculate (a * in + b) + */ + VImage Linear(VImage image, std::vector const a, std::vector const b) { + size_t const bands = static_cast(image.bands()); + if (a.size() > bands) { + throw std::runtime_error("Band expansion using linear is unsupported"); + } + bool const uchar = !Is16Bit(image.interpretation()); + if (image.has_alpha() && a.size() != bands && (a.size() == 1 || a.size() == bands - 1 || bands - 1 == 1)) { + // Separate alpha channel + VImage alpha = image[bands - 1]; + return RemoveAlpha(image).linear(a, b, VImage::option()->set("uchar", uchar)).bandjoin(alpha); + } else { + return image.linear(a, b, VImage::option()->set("uchar", uchar)); + } + } + + /* + * Unflatten + */ + VImage Unflatten(VImage image) { + if (image.has_alpha()) { + VImage alpha = image[image.bands() - 1]; + VImage noAlpha = RemoveAlpha(image); + return noAlpha.bandjoin(alpha & (noAlpha.colourspace(VIPS_INTERPRETATION_B_W) < 255)); + } else { + return image.bandjoin(image.colourspace(VIPS_INTERPRETATION_B_W) < 255); + } + } + + /* + * Ensure the image is in a given colourspace + */ + VImage EnsureColourspace(VImage image, VipsInterpretation colourspace) { + if (colourspace != VIPS_INTERPRETATION_LAST && image.interpretation() != colourspace) { + image = image.colourspace(colourspace, + VImage::option()->set("source_space", image.interpretation())); + } + return image; + } + + /* + * Split and crop each frame, reassemble, and update pageHeight. + */ + VImage CropMultiPage(VImage image, int left, int top, int width, int height, + int nPages, int *pageHeight) { + if (top == 0 && height == *pageHeight) { + // Fast path; no need to adjust the height of the multi-page image + return image.extract_area(left, 0, width, image.height()); + } else { + std::vector pages; + pages.reserve(nPages); + + // Split the image into cropped frames + image = StaySequential(image); + for (int i = 0; i < nPages; i++) { + pages.push_back( + image.extract_area(left, *pageHeight * i + top, width, height)); + } + + // Reassemble the frames into a tall, thin image + VImage assembled = VImage::arrayjoin(pages, + VImage::option()->set("across", 1)); + + // Update the page height + *pageHeight = height; + + return assembled; + } + } + + /* + * Split into frames, embed each frame, reassemble, and update pageHeight. + */ + VImage EmbedMultiPage(VImage image, int left, int top, int width, int height, + VipsExtend extendWith, std::vector background, int nPages, int *pageHeight) { + if (top == 0 && height == *pageHeight) { + // Fast path; no need to adjust the height of the multi-page image + return image.embed(left, 0, width, image.height(), VImage::option() + ->set("extend", extendWith) + ->set("background", background)); + } else if (left == 0 && width == image.width()) { + // Fast path; no need to adjust the width of the multi-page image + std::vector pages; + pages.reserve(nPages); + + // Rearrange the tall image into a vertical grid + image = image.grid(*pageHeight, nPages, 1); + + // Do the embed on the wide image + image = image.embed(0, top, image.width(), height, VImage::option() + ->set("extend", extendWith) + ->set("background", background)); + + // Split the wide image into frames + for (int i = 0; i < nPages; i++) { + pages.push_back( + image.extract_area(width * i, 0, width, height)); + } + + // Reassemble the frames into a tall, thin image + VImage assembled = VImage::arrayjoin(pages, + VImage::option()->set("across", 1)); + + // Update the page height + *pageHeight = height; + + return assembled; + } else { + std::vector pages; + pages.reserve(nPages); + + // Split the image into frames + for (int i = 0; i < nPages; i++) { + pages.push_back( + image.extract_area(0, *pageHeight * i, image.width(), *pageHeight)); + } + + // Embed each frame in the target size + for (int i = 0; i < nPages; i++) { + pages[i] = pages[i].embed(left, top, width, height, VImage::option() + ->set("extend", extendWith) + ->set("background", background)); + } + + // Reassemble the frames into a tall, thin image + VImage assembled = VImage::arrayjoin(pages, + VImage::option()->set("across", 1)); + + // Update the page height + *pageHeight = height; + + return assembled; + } + } + + /* + * Dilate an image + */ + VImage Dilate(VImage image, int const width) { + int const maskWidth = 2 * width + 1; + VImage mask = VImage::new_matrix(maskWidth, maskWidth); + return image.morph( + mask, + VIPS_OPERATION_MORPHOLOGY_DILATE).invert(); + } + + /* + * Erode an image + */ + VImage Erode(VImage image, int const width) { + int const maskWidth = 2 * width + 1; + VImage mask = VImage::new_matrix(maskWidth, maskWidth); + return image.morph( + mask, + VIPS_OPERATION_MORPHOLOGY_ERODE).invert(); + } + +} // namespace sharp diff --git a/apps/api/.output/node_modules/sharp/src/operations.h b/apps/api/.output/node_modules/sharp/src/operations.h new file mode 100644 index 0000000..b9699bb --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/operations.h @@ -0,0 +1,137 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_OPERATIONS_H_ +#define SRC_OPERATIONS_H_ + +#include +#include +#include +#include +#include +#include + +using vips::VImage; + +namespace sharp { + + /* + * Tint an image using the provided RGB. + */ + VImage Tint(VImage image, std::vector const tint); + + /* + * Stretch luminance to cover full dynamic range. + */ + VImage Normalise(VImage image, int const lower, int const upper); + + /* + * Contrast limiting adapative histogram equalization (CLAHE) + */ + VImage Clahe(VImage image, int const width, int const height, int const maxSlope); + + /* + * Gamma encoding/decoding + */ + VImage Gamma(VImage image, double const exponent); + + /* + * Flatten image to remove alpha channel + */ + VImage Flatten(VImage image, std::vector flattenBackground); + + /* + * Produce the "negative" of the image. + */ + VImage Negate(VImage image, bool const negateAlpha); + + /* + * Gaussian blur. Use sigma of -1.0 for fast blur. + */ + VImage Blur(VImage image, double const sigma, VipsPrecision precision, double const minAmpl); + + /* + * Convolution with a kernel. + */ + VImage Convolve(VImage image, int const width, int const height, + double const scale, double const offset, std::vector const &kernel_v); + + /* + * Sharpen flat and jagged areas. Use sigma of -1.0 for fast sharpen. + */ + VImage Sharpen(VImage image, double const sigma, double const m1, double const m2, + double const x1, double const y2, double const y3); + + /* + Threshold an image + */ + VImage Threshold(VImage image, double const threshold, bool const thresholdColor); + + /* + Perform boolean/bitwise operation on image color channels - results in one channel image + */ + VImage Bandbool(VImage image, VipsOperationBoolean const boolean); + + /* + Perform bitwise boolean operation between images + */ + VImage Boolean(VImage image, VImage imageR, VipsOperationBoolean const boolean); + + /* + Trim an image + */ + VImage Trim(VImage image, std::vector background, double threshold, bool const lineArt, int const margin); + + /* + * Linear adjustment (a * in + b) + */ + VImage Linear(VImage image, std::vector const a, std::vector const b); + + /* + * Unflatten + */ + VImage Unflatten(VImage image); + + /* + * Recomb with a Matrix of the given bands/channel size. + * Eg. RGB will be a 3x3 matrix. + */ + VImage Recomb(VImage image, std::vector const &matrix); + + /* + * Modulate brightness, saturation, hue and lightness + */ + VImage Modulate(VImage image, double const brightness, double const saturation, + int const hue, double const lightness); + + /* + * Ensure the image is in a given colourspace + */ + VImage EnsureColourspace(VImage image, VipsInterpretation colourspace); + + /* + * Split and crop each frame, reassemble, and update pageHeight. + */ + VImage CropMultiPage(VImage image, int left, int top, int width, int height, + int nPages, int *pageHeight); + + /* + * Split into frames, embed each frame, reassemble, and update pageHeight. + */ + VImage EmbedMultiPage(VImage image, int left, int top, int width, int height, + VipsExtend extendWith, std::vector background, int nPages, int *pageHeight); + + /* + * Dilate an image + */ + VImage Dilate(VImage image, int const maskWidth); + + /* + * Erode an image + */ + VImage Erode(VImage image, int const maskWidth); +} // namespace sharp + +#endif // SRC_OPERATIONS_H_ diff --git a/apps/api/.output/node_modules/sharp/src/pipeline.cc b/apps/api/.output/node_modules/sharp/src/pipeline.cc new file mode 100644 index 0000000..a579503 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/pipeline.cc @@ -0,0 +1,1973 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include // NOLINT(build/c++17) +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "./common.h" +#include "./operations.h" +#include "./pipeline.h" + +class PipelineWorker : public Napi::AsyncWorker { + public: + PipelineWorker(Napi::Function callback, PipelineBaton *baton, + Napi::Function debuglog, Napi::Function queueListener) : + Napi::AsyncWorker(callback), + baton(baton), + debuglog(Napi::Persistent(debuglog)), + queueListener(Napi::Persistent(queueListener)) {} + ~PipelineWorker() {} + + // libuv worker + void Execute() { + // Decrement queued task counter + sharp::counterQueue--; + // Increment processing task counter + sharp::counterProcess++; + + try { + // Open input + vips::VImage image; + sharp::ImageType inputImageType; + if (baton->join.empty()) { + std::tie(image, inputImageType) = sharp::OpenInput(baton->input); + } else { + std::vector images; + bool hasAlpha = false; + for (auto &join : baton->join) { + std::tie(image, inputImageType) = sharp::OpenInput(join); + image = sharp::EnsureColourspace(image, baton->colourspacePipeline); + images.push_back(image); + hasAlpha |= image.has_alpha(); + } + if (hasAlpha) { + for (size_t i = 0; i < images.size(); i++) { + if (!images[i].has_alpha()) { + images[i] = sharp::EnsureAlpha(images[i], 1); + } + } + } else { + baton->input->joinBackground.pop_back(); + } + inputImageType = sharp::ImageType::PNG; + image = VImage::arrayjoin(images, VImage::option() + ->set("across", baton->input->joinAcross) + ->set("shim", baton->input->joinShim) + ->set("background", baton->input->joinBackground) + ->set("halign", baton->input->joinHalign) + ->set("valign", baton->input->joinValign)); + if (baton->input->joinAnimated) { + image = image.copy(); + image.set(VIPS_META_N_PAGES, static_cast(images.size())); + image.set(VIPS_META_PAGE_HEIGHT, static_cast(image.height() / images.size())); + } + } + VipsAccess access = baton->input->access; + image = sharp::EnsureColourspace(image, baton->colourspacePipeline); + + int nPages = baton->input->pages; + if (nPages == -1) { + // Resolve the number of pages if we need to render until the end of the document + nPages = image.get_typeof(VIPS_META_N_PAGES) != 0 + ? image.get_int(VIPS_META_N_PAGES) - std::max(0, baton->input->page) + : 1; + } + + // Get pre-resize page height + int pageHeight = sharp::GetPageHeight(image); + + // Calculate angle of rotation + VipsAngle rotation = VIPS_ANGLE_D0; + VipsAngle autoRotation = VIPS_ANGLE_D0; + VipsAngle gainMapRotation = VIPS_ANGLE_D0; + bool autoFlop = false; + bool gainMapFlip = false; + bool gainMapFlop = false; + + if (baton->input->autoOrient) { + // Rotate and flip image according to Exif orientation + std::tie(autoRotation, autoFlop) = CalculateExifRotationAndFlop(sharp::ExifOrientation(image)); + } + + rotation = CalculateAngleRotation(baton->angle); + + bool const shouldRotateBefore = baton->rotateBefore && + (rotation != VIPS_ANGLE_D0 || baton->flip || baton->flop || baton->rotationAngle != 0.0); + bool const shouldOrientBefore = (shouldRotateBefore || baton->orientBefore) && + (autoRotation != VIPS_ANGLE_D0 || autoFlop); + + if (shouldOrientBefore) { + image = sharp::StaySequential(image, autoRotation != VIPS_ANGLE_D0); + if (autoRotation != VIPS_ANGLE_D0) { + if (autoRotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(autoRotation); + gainMapRotation = autoRotation; + autoRotation = VIPS_ANGLE_D0; + } + if (autoFlop) { + image = image.flip(VIPS_DIRECTION_HORIZONTAL); + autoFlop = false; + gainMapFlop = true; + } + } + + if (shouldRotateBefore) { + image = sharp::StaySequential(image, rotation != VIPS_ANGLE_D0 || baton->flip || baton->rotationAngle != 0.0); + if (baton->flip) { + image = image.flip(VIPS_DIRECTION_VERTICAL); + baton->flip = false; + gainMapFlip = true; + } + if (baton->flop) { + image = image.flip(VIPS_DIRECTION_HORIZONTAL); + baton->flop = false; + gainMapFlop = true; + } + if (rotation != VIPS_ANGLE_D0) { + if (rotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(rotation); + gainMapRotation = rotation; + rotation = VIPS_ANGLE_D0; + } + if (baton->rotationAngle != 0.0) { + MultiPageUnsupported(nPages, "Rotate"); + KeepGainMapUnsupported(baton->keepGainMap, "Rotate"); + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->rotationBackground, false); + image = image.rotate(baton->rotationAngle, VImage::option()->set("background", background)).copy_memory(); + baton->rotationAngle = 0.0; + } + } + + // Trim + if (baton->trimThreshold >= 0.0) { + MultiPageUnsupported(nPages, "Trim"); + KeepGainMapUnsupported(baton->keepGainMap, "Trim"); + image = sharp::StaySequential(image); + image = sharp::Trim(image, baton->trimBackground, baton->trimThreshold, baton->trimLineArt, baton->trimMargin); + baton->trimOffsetLeft = image.xoffset(); + baton->trimOffsetTop = image.yoffset(); + } + + // Pre extraction + if (baton->topOffsetPre != -1) { + image = nPages > 1 + ? sharp::CropMultiPage(image, + baton->leftOffsetPre, baton->topOffsetPre, baton->widthPre, baton->heightPre, nPages, &pageHeight) + : image.extract_area(baton->leftOffsetPre, baton->topOffsetPre, baton->widthPre, baton->heightPre); + } + + // Get pre-resize image width and height + int inputWidth = image.width(); + int inputHeight = image.height(); + + // Is there just one page? Shrink to inputHeight instead + if (nPages == 1) { + pageHeight = inputHeight; + } + + // Scaling calculations + double hshrink; + double vshrink; + int targetResizeWidth = baton->width; + int targetResizeHeight = baton->height; + + // When auto-rotating by 90 or 270 degrees, swap the target width and + // height to ensure the behavior aligns with how it would have been if + // the rotation had taken place *before* resizing. + if (autoRotation == VIPS_ANGLE_D90 || autoRotation == VIPS_ANGLE_D270) { + std::swap(targetResizeWidth, targetResizeHeight); + } + + // Shrink to pageHeight, so we work for multi-page images + std::tie(hshrink, vshrink) = sharp::ResolveShrink( + inputWidth, pageHeight, targetResizeWidth, targetResizeHeight, + baton->canvas, baton->withoutEnlargement, baton->withoutReduction); + + // The jpeg preload shrink. + int jpegShrinkOnLoad = 1; + + // WebP, PDF, SVG scale + double scale = 1.0; + + // Try to reload input using shrink-on-load for JPEG, WebP, SVG and PDF, when: + // - the width or height parameters are specified; + // - gamma correction doesn't need to be applied; + // - trimming or pre-resize extract isn't required; + // - gain map processing is not required; + // - input colourspace is not specified; + bool const shouldPreShrink = (targetResizeWidth > 0 || targetResizeHeight > 0) && + baton->gamma == 0 && baton->topOffsetPre == -1 && baton->trimThreshold < 0.0 && + !baton->keepGainMap && !baton->withGainMap && + baton->colourspacePipeline == VIPS_INTERPRETATION_LAST && !(shouldOrientBefore || shouldRotateBefore); + + if (shouldPreShrink) { + // The common part of the shrink: the bit by which both axes must be shrunk + double shrink = std::min(hshrink, vshrink); + + if (inputImageType == sharp::ImageType::JPEG) { + // Leave at least a factor of two for the final resize step, when fastShrinkOnLoad: false + // for more consistent results and to avoid extra sharpness to the image + int factor = baton->fastShrinkOnLoad ? 1 : 2; + if (shrink >= 8 * factor) { + jpegShrinkOnLoad = 8; + } else if (shrink >= 4 * factor) { + jpegShrinkOnLoad = 4; + } else if (shrink >= 2 * factor) { + jpegShrinkOnLoad = 2; + } + // Lower shrink-on-load for known libjpeg rounding errors + if (jpegShrinkOnLoad > 1 && static_cast(shrink) == jpegShrinkOnLoad) { + jpegShrinkOnLoad /= 2; + } + } else if (inputImageType == sharp::ImageType::WEBP && baton->fastShrinkOnLoad && shrink > 1.0) { + // Avoid upscaling via webp + scale = 1.0 / shrink; + } else if (inputImageType == sharp::ImageType::SVG || + inputImageType == sharp::ImageType::PDF) { + scale = 1.0 / shrink; + } + } + + // Reload input using shrink-on-load, it'll be an integer shrink + // factor for jpegload*, a double scale factor for webpload*, + // pdfload* and svgload* + if (jpegShrinkOnLoad > 1) { + vips::VOption *option = GetOptionsForImageType(inputImageType, baton->input)->set("shrink", jpegShrinkOnLoad); + if (baton->input->buffer != nullptr) { + // Reload JPEG buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::jpegload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload JPEG file + image = VImage::jpegload(const_cast(baton->input->file.data()), option); + } + } else if (scale != 1.0) { + vips::VOption *option = GetOptionsForImageType(inputImageType, baton->input)->set("scale", scale); + if (inputImageType == sharp::ImageType::WEBP) { + if (baton->input->buffer != nullptr) { + // Reload WebP buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::webpload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload WebP file + image = VImage::webpload(const_cast(baton->input->file.data()), option); + } + } else if (inputImageType == sharp::ImageType::SVG) { + if (baton->input->buffer != nullptr) { + // Reload SVG buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::svgload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload SVG file + image = VImage::svgload(const_cast(baton->input->file.data()), option); + } + sharp::SetDensity(image, baton->input->density); + if (image.width() > 32767 || image.height() > 32767) { + throw std::runtime_error("Input SVG image will exceed 32767x32767 pixel limit when scaled"); + } + } else if (inputImageType == sharp::ImageType::PDF) { + if (baton->input->buffer != nullptr) { + // Reload PDF buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::pdfload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload PDF file + image = VImage::pdfload(const_cast(baton->input->file.data()), option); + } + sharp::SetDensity(image, baton->input->density); + } + } else { + if (inputImageType == sharp::ImageType::SVG && (image.width() > 32767 || image.height() > 32767)) { + throw std::runtime_error("Input SVG image exceeds 32767x32767 pixel limit"); + } + } + if (baton->input->autoOrient) { + image = sharp::RemoveExifOrientation(image); + } + VImage gainMap; + int gainMapScaleFactor = 1; + if (sharp::HasGainMap(image)) { + if (baton->keepGainMap) { + gainMap = image.gainmap(); + if (image.get_typeof("gainmap-scale-factor") == G_TYPE_INT) { + gainMapScaleFactor = image.get_int("gainmap-scale-factor"); + } + if (gainMapFlip) { + gainMap = gainMap.flip(VIPS_DIRECTION_VERTICAL); + } + if (gainMapFlop) { + gainMap = gainMap.flip(VIPS_DIRECTION_HORIZONTAL); + } + if (gainMapRotation != VIPS_ANGLE_D0) { + gainMap = gainMap.rot(gainMapRotation); + } + if (baton->topOffsetPre != -1) { + gainMap = gainMap.extract_area( + baton->leftOffsetPre / gainMapScaleFactor, baton->topOffsetPre / gainMapScaleFactor, + baton->widthPre / gainMapScaleFactor, baton->heightPre / gainMapScaleFactor); + } + } else if (baton->withGainMap) { + image = image.uhdr2scRGB(); + } + image = sharp::RemoveGainMap(image); + } else { + baton->keepGainMap = false; + baton->withGainMap = false; + } + + // Any pre-shrinking may already have been done + inputWidth = image.width(); + inputHeight = image.height(); + + // After pre-shrink, but before the main shrink stage + // Reuse the initial pageHeight if we didn't pre-shrink + if (shouldPreShrink) { + pageHeight = sharp::GetPageHeight(image); + } + + // Shrink to pageHeight, so we work for multi-page images + std::tie(hshrink, vshrink) = sharp::ResolveShrink( + inputWidth, pageHeight, targetResizeWidth, targetResizeHeight, + baton->canvas, baton->withoutEnlargement, baton->withoutReduction); + + int targetHeight = static_cast(std::rint(static_cast(pageHeight) / vshrink)); + int targetPageHeight = targetHeight; + + // In toilet-roll mode, we must adjust vshrink so that we exactly hit + // pageHeight or we'll have pixels straddling pixel boundaries + if (inputHeight > pageHeight) { + targetHeight *= nPages; + vshrink = static_cast(inputHeight) / targetHeight; + } + + // Ensure we're using a device-independent colour space + std::pair inputProfile(nullptr, 0); + if ((baton->keepMetadata & VIPS_FOREIGN_KEEP_ICC) && baton->withIccProfile.empty()) { + // Cache input profile for use with output + inputProfile = sharp::GetProfile(image); + baton->input->ignoreIcc = true; + } + char const *processingProfile = image.interpretation() == VIPS_INTERPRETATION_RGB16 ? "p3" : "srgb"; + if ( + sharp::HasProfile(image) && + image.interpretation() != VIPS_INTERPRETATION_LABS && + image.interpretation() != VIPS_INTERPRETATION_GREY16 && + baton->colourspacePipeline != VIPS_INTERPRETATION_CMYK && + !baton->input->ignoreIcc && !baton->withGainMap + ) { + // Convert to sRGB/P3 using embedded profile + try { + image = image.icc_transform(processingProfile, VImage::option() + ->set("embedded", true) + ->set("depth", sharp::Is16Bit(image.interpretation()) ? 16 : 8) + ->set("intent", VIPS_INTENT_PERCEPTUAL)); + } catch(...) { + sharp::VipsWarningCallback(nullptr, G_LOG_LEVEL_WARNING, "Invalid embedded profile", nullptr); + } + } else if ( + image.interpretation() == VIPS_INTERPRETATION_CMYK && + baton->colourspacePipeline != VIPS_INTERPRETATION_CMYK + ) { + image = image.icc_transform(processingProfile, VImage::option() + ->set("input_profile", "cmyk") + ->set("intent", VIPS_INTENT_PERCEPTUAL)); + } + + // Flatten image to remove alpha channel + if (baton->flatten && image.has_alpha()) { + image = sharp::Flatten(image, baton->flattenBackground); + } + + // Gamma encoding (darken) + if (baton->gamma >= 1 && baton->gamma <= 3) { + image = sharp::Gamma(image, 1.0 / baton->gamma); + } + + // Convert to greyscale (linear, therefore after gamma encoding, if any) + if (baton->greyscale) { + image = image.colourspace(VIPS_INTERPRETATION_B_W); + } + + bool const shouldResize = hshrink != 1.0 || vshrink != 1.0; + bool const shouldBlur = baton->blurSigma != 0.0; + bool const shouldConv = baton->convKernelWidth * baton->convKernelHeight > 0; + bool const shouldSharpen = baton->sharpenSigma != 0.0; + bool const shouldComposite = !baton->composite.empty(); + + if (shouldComposite && !image.has_alpha()) { + image = sharp::EnsureAlpha(image, 1); + } + + VipsBandFormat premultiplyFormat = image.format(); + bool const shouldPremultiplyAlpha = image.has_alpha() && + (shouldResize || shouldBlur || shouldConv || shouldSharpen); + + if (shouldPremultiplyAlpha) { + image = image.premultiply().cast(premultiplyFormat); + } + + // Resize + if (shouldResize) { + image = image.resize(1.0 / hshrink, VImage::option() + ->set("vscale", 1.0 / vshrink) + ->set("kernel", baton->kernel)); + if (baton->keepGainMap) { + gainMap = gainMap.resize(1.0 / hshrink, VImage::option() + ->set("vscale", 1.0 / vshrink) + ->set("kernel", baton->kernel)); + } + } + + image = sharp::StaySequential(image, + autoRotation != VIPS_ANGLE_D0 || + baton->flip || + rotation != VIPS_ANGLE_D0); + // Auto-rotate post-extract + if (autoRotation != VIPS_ANGLE_D0) { + if (autoRotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(autoRotation); + if (baton->keepGainMap) { + gainMap = sharp::StaySequential(gainMap).rot(autoRotation); + } + } + // Mirror vertically (up-down) about the x-axis + if (baton->flip) { + image = image.flip(VIPS_DIRECTION_VERTICAL); + if (baton->keepGainMap) { + gainMap = sharp::StaySequential(gainMap).flip(VIPS_DIRECTION_VERTICAL); + } + } + // Mirror horizontally (left-right) about the y-axis + if (baton->flop != autoFlop) { + image = image.flip(VIPS_DIRECTION_HORIZONTAL); + if (baton->keepGainMap) { + gainMap = gainMap.flip(VIPS_DIRECTION_HORIZONTAL); + } + } + // Rotate post-extract 90-angle + if (rotation != VIPS_ANGLE_D0) { + if (rotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(rotation); + if (baton->keepGainMap) { + gainMap = sharp::StaySequential(gainMap).rot(rotation); + } + } + + // Join additional color channels to the image + if (!baton->joinChannelIn.empty()) { + VImage joinImage; + sharp::ImageType joinImageType = sharp::ImageType::UNKNOWN; + + for (unsigned int i = 0; i < baton->joinChannelIn.size(); i++) { + baton->joinChannelIn[i]->access = access; + std::tie(joinImage, joinImageType) = sharp::OpenInput(baton->joinChannelIn[i]); + joinImage = sharp::EnsureColourspace(joinImage, baton->colourspacePipeline); + image = image.bandjoin(joinImage); + } + image = image.copy(VImage::option()->set("interpretation", baton->colourspace)); + image = sharp::RemoveGifPalette(image); + } + + inputWidth = image.width(); + inputHeight = nPages > 1 ? targetPageHeight : image.height(); + + // Resolve dimensions + if (baton->width <= 0) { + baton->width = inputWidth; + } + if (baton->height <= 0) { + baton->height = inputHeight; + } + + // Crop/embed + if (inputWidth != baton->width || inputHeight != baton->height) { + if (baton->canvas == sharp::Canvas::EMBED) { + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->resizeBackground, shouldPremultiplyAlpha); + + // Embed + const auto& [left, top] = sharp::CalculateEmbedPosition( + inputWidth, inputHeight, baton->width, baton->height, baton->position); + const int width = std::max(inputWidth, baton->width); + const int height = std::max(inputHeight, baton->height); + + image = nPages > 1 + ? sharp::EmbedMultiPage(image, + left, top, width, height, VIPS_EXTEND_BACKGROUND, background, nPages, &targetPageHeight) + : image.embed(left, top, width, height, VImage::option() + ->set("extend", VIPS_EXTEND_BACKGROUND) + ->set("background", background)); + if (baton->keepGainMap) { + gainMap = gainMap.embed(left / gainMapScaleFactor, top / gainMapScaleFactor, + width / gainMapScaleFactor, height / gainMapScaleFactor, VImage::option() + ->set("extend", VIPS_EXTEND_BACKGROUND) + ->set("background", 0)); + } + } else if (baton->canvas == sharp::Canvas::CROP) { + if (baton->width > inputWidth) { + baton->width = inputWidth; + } + if (baton->height > inputHeight) { + baton->height = inputHeight; + } + + // Crop + if (baton->position < 9) { + // Gravity-based crop + const auto& [left, top] = sharp::CalculateCrop( + inputWidth, inputHeight, baton->width, baton->height, baton->position); + const int width = std::min(inputWidth, baton->width); + const int height = std::min(inputHeight, baton->height); + + image = nPages > 1 + ? sharp::CropMultiPage(image, + left, top, width, height, nPages, &targetPageHeight) + : image.extract_area(left, top, width, height); + if (baton->keepGainMap) { + gainMap = gainMap.extract_area(left / gainMapScaleFactor, top / gainMapScaleFactor, + width / gainMapScaleFactor, height / gainMapScaleFactor); + } + } else { + int attention_x; + int attention_y; + + // Attention-based or Entropy-based crop + MultiPageUnsupported(nPages, "Resize strategy"); + KeepGainMapUnsupported(baton->keepGainMap, "Resize strategy"); + image = sharp::StaySequential(image); + image = image.smartcrop(baton->width, baton->height, VImage::option() + ->set("interesting", baton->position == 16 ? VIPS_INTERESTING_ENTROPY : VIPS_INTERESTING_ATTENTION) + ->set("premultiplied", shouldPremultiplyAlpha) + ->set("attention_x", &attention_x) + ->set("attention_y", &attention_y)); + baton->hasCropOffset = true; + baton->cropOffsetLeft = static_cast(image.xoffset()); + baton->cropOffsetTop = static_cast(image.yoffset()); + baton->hasAttentionCenter = true; + baton->attentionX = static_cast(attention_x * jpegShrinkOnLoad / scale); + baton->attentionY = static_cast(attention_y * jpegShrinkOnLoad / scale); + } + } + } + + // Rotate post-extract non-90 angle + if (!baton->rotateBefore && baton->rotationAngle != 0.0) { + MultiPageUnsupported(nPages, "Rotate"); + KeepGainMapUnsupported(baton->keepGainMap, "Rotate"); + image = sharp::StaySequential(image); + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->rotationBackground, shouldPremultiplyAlpha); + image = image.rotate(baton->rotationAngle, VImage::option()->set("background", background)); + if (baton->keepGainMap) { + gainMap = gainMap.rotate(baton->rotationAngle, VImage::option()->set("background", 0)); + } + } + + // Post extraction + if (baton->topOffsetPost != -1) { + if (nPages > 1) { + image = sharp::CropMultiPage(image, + baton->leftOffsetPost, baton->topOffsetPost, baton->widthPost, baton->heightPost, + nPages, &targetPageHeight); + // heightPost is used in the info object, so update to reflect the number of pages + baton->heightPost *= nPages; + } else { + image = image.extract_area( + baton->leftOffsetPost, baton->topOffsetPost, baton->widthPost, baton->heightPost); + if (baton->keepGainMap) { + gainMap = gainMap.extract_area(baton->leftOffsetPost / gainMapScaleFactor, + baton->topOffsetPost / gainMapScaleFactor, baton->widthPost / gainMapScaleFactor, + baton->heightPost / gainMapScaleFactor); + } + } + } + + // Affine transform + if (!baton->affineMatrix.empty()) { + MultiPageUnsupported(nPages, "Affine"); + KeepGainMapUnsupported(baton->keepGainMap, "Affine"); + image = sharp::StaySequential(image); + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->affineBackground, shouldPremultiplyAlpha); + vips::VInterpolate interp = vips::VInterpolate::new_from_name( + const_cast(baton->affineInterpolator.data())); + image = image.affine(baton->affineMatrix, VImage::option()->set("background", background) + ->set("idx", baton->affineIdx) + ->set("idy", baton->affineIdy) + ->set("odx", baton->affineOdx) + ->set("ody", baton->affineOdy) + ->set("interpolate", interp)); + } + + // Extend edges + if (baton->extendTop > 0 || baton->extendBottom > 0 || baton->extendLeft > 0 || baton->extendRight > 0) { + // Embed + baton->width = image.width() + baton->extendLeft + baton->extendRight; + baton->height = (nPages > 1 ? targetPageHeight : image.height()) + baton->extendTop + baton->extendBottom; + + std::vector background; + if (baton->extendWith == VIPS_EXTEND_BACKGROUND) { + std::tie(image, background) = sharp::ApplyAlpha(image, baton->extendBackground, shouldPremultiplyAlpha); + } + image = sharp::StaySequential(image, nPages > 1 || baton->extendWith != VIPS_EXTEND_BACKGROUND); + auto options = VImage::option()->set("extend", baton->extendWith); + if (baton->extendWith == VIPS_EXTEND_BACKGROUND) { + options->set("background", background); + } + image = nPages > 1 + ? sharp::EmbedMultiPage(image, + baton->extendLeft, baton->extendTop, baton->width, baton->height, + baton->extendWith, background, nPages, &targetPageHeight) + : image.embed(baton->extendLeft, baton->extendTop, baton->width, baton->height, options); + if (baton->keepGainMap) { + gainMap = gainMap.embed(baton->extendLeft / gainMapScaleFactor, baton->extendTop / gainMapScaleFactor, + baton->width / gainMapScaleFactor, baton->height / gainMapScaleFactor, VImage::option() + ->set("extend", baton->extendWith) + ->set("background", 0)); + } + } + // Median - must happen before blurring, due to the utility of blurring after thresholding + if (baton->medianSize > 0) { + image = image.median(baton->medianSize); + } + + // Threshold - must happen before blurring, due to the utility of blurring after thresholding + // Threshold - must happen before unflatten to enable non-white unflattening + if (baton->threshold != 0) { + image = sharp::Threshold(image, baton->threshold, baton->thresholdGrayscale); + } + + // Dilate - must happen before blurring, due to the utility of dilating after thresholding + if (baton->dilateWidth != 0) { + image = sharp::Dilate(image, baton->dilateWidth); + } + + // Erode - must happen before blurring, due to the utility of eroding after thresholding + if (baton->erodeWidth != 0) { + image = sharp::Erode(image, baton->erodeWidth); + } + + // Blur + if (shouldBlur) { + image = sharp::Blur(image, baton->blurSigma, baton->precision, baton->minAmpl); + if (baton->keepGainMap) { + gainMap = sharp::Blur(gainMap, baton->blurSigma, baton->precision, baton->minAmpl); + } + } + + // Unflatten the image + if (baton->unflatten) { + image = sharp::Unflatten(image); + } + + // Convolve + if (shouldConv) { + KeepGainMapUnsupported(baton->keepGainMap, "Convolve"); + image = sharp::Convolve(image, + baton->convKernelWidth, baton->convKernelHeight, + baton->convKernelScale, baton->convKernelOffset, + baton->convKernel); + } + + // Recomb + if (!baton->recombMatrix.empty()) { + KeepGainMapUnsupported(baton->keepGainMap, "Recomb"); + image = sharp::Recomb(image, baton->recombMatrix); + } + + // Modulate + if (baton->brightness != 1.0 || baton->saturation != 1.0 || baton->hue != 0.0 || baton->lightness != 0.0) { + KeepGainMapUnsupported(baton->keepGainMap, "Modulate"); + image = sharp::Modulate(image, baton->brightness, baton->saturation, baton->hue, baton->lightness); + } + + // Sharpen + if (shouldSharpen) { + image = sharp::Sharpen(image, baton->sharpenSigma, baton->sharpenM1, baton->sharpenM2, + baton->sharpenX1, baton->sharpenY2, baton->sharpenY3); + } + + // Reverse premultiplication after all transformations + if (shouldPremultiplyAlpha) { + image = image.unpremultiply().cast(premultiplyFormat); + } + baton->premultiplied = shouldPremultiplyAlpha; + + // Composite + if (shouldComposite) { + KeepGainMapUnsupported(baton->keepGainMap, "Composite"); + std::vector images = { image }; + std::vector modes, xs, ys; + for (Composite *composite : baton->composite) { + VImage compositeImage; + sharp::ImageType compositeImageType = sharp::ImageType::UNKNOWN; + composite->input->access = access; + std::tie(compositeImage, compositeImageType) = sharp::OpenInput(composite->input); + + if (composite->input->autoOrient) { + // Respect EXIF Orientation + VipsAngle compositeAutoRotation = VIPS_ANGLE_D0; + bool compositeAutoFlop = false; + std::tie(compositeAutoRotation, compositeAutoFlop) = + CalculateExifRotationAndFlop(sharp::ExifOrientation(compositeImage)); + + compositeImage = sharp::RemoveExifOrientation(compositeImage); + compositeImage = sharp::StaySequential(compositeImage, compositeAutoRotation != VIPS_ANGLE_D0); + + if (compositeAutoRotation != VIPS_ANGLE_D0) { + compositeImage = compositeImage.rot(compositeAutoRotation); + } + if (compositeAutoFlop) { + compositeImage = compositeImage.flip(VIPS_DIRECTION_HORIZONTAL); + } + } + + // Verify within current dimensions + if (compositeImage.width() > image.width() || compositeImage.height() > image.height()) { + throw std::runtime_error("Image to composite must have same dimensions or smaller"); + } + // Check if overlay is tiled + if (composite->tile) { + int across = 0; + int down = 0; + // Use gravity in overlay + if (compositeImage.width() <= image.width()) { + across = static_cast(ceil(static_cast(image.width()) / compositeImage.width())); + // Ensure odd number of tiles across when gravity is centre, north or south + if (composite->gravity == 0 || composite->gravity == 1 || composite->gravity == 3) { + across |= 1; + } + } + if (compositeImage.height() <= image.height()) { + down = static_cast(ceil(static_cast(image.height()) / compositeImage.height())); + // Ensure odd number of tiles down when gravity is centre, east or west + if (composite->gravity == 0 || composite->gravity == 2 || composite->gravity == 4) { + down |= 1; + } + } + if (across != 0 || down != 0) { + int left; + int top; + compositeImage = sharp::StaySequential(compositeImage).replicate(across, down); + if (composite->hasOffset) { + std::tie(left, top) = sharp::CalculateCrop( + compositeImage.width(), compositeImage.height(), image.width(), image.height(), + composite->left, composite->top); + } else { + std::tie(left, top) = sharp::CalculateCrop( + compositeImage.width(), compositeImage.height(), image.width(), image.height(), composite->gravity); + } + compositeImage = compositeImage.extract_area(left, top, image.width(), image.height()); + } + // gravity was used for extract_area, set it back to its default value of 0 + composite->gravity = 0; + } + // Ensure image to composite is with unpremultiplied alpha + compositeImage = sharp::EnsureAlpha(compositeImage, 1); + if (composite->premultiplied) compositeImage = compositeImage.unpremultiply(); + // Calculate position + int left; + int top; + if (composite->hasOffset) { + // Composite image at given offsets + if (composite->tile) { + std::tie(left, top) = sharp::CalculateCrop(image.width(), image.height(), + compositeImage.width(), compositeImage.height(), composite->left, composite->top); + } else { + left = composite->left; + top = composite->top; + } + } else { + // Composite image with given gravity + std::tie(left, top) = sharp::CalculateCrop(image.width(), image.height(), + compositeImage.width(), compositeImage.height(), composite->gravity); + } + images.push_back(compositeImage); + modes.push_back(composite->mode); + xs.push_back(left); + ys.push_back(top); + } + image = VImage::composite(images, modes, VImage::option() + ->set("compositing_space", baton->colourspacePipeline == VIPS_INTERPRETATION_LAST + ? VIPS_INTERPRETATION_sRGB + : baton->colourspacePipeline) + ->set("x", xs) + ->set("y", ys)); + image = sharp::RemoveGifPalette(image); + } + + // Gamma decoding (brighten) + if (baton->gammaOut >= 1 && baton->gammaOut <= 3) { + image = sharp::Gamma(image, baton->gammaOut); + } + + // Linear adjustment (a * in + b) + if (!baton->linearA.empty()) { + image = sharp::Linear(image, baton->linearA, baton->linearB); + } + + // Apply normalisation - stretch luminance to cover full dynamic range + if (baton->normalise) { + KeepGainMapUnsupported(baton->keepGainMap, "Normalise"); + image = sharp::StaySequential(image); + image = sharp::Normalise(image, baton->normaliseLower, baton->normaliseUpper); + } + + // Apply contrast limiting adaptive histogram equalization (CLAHE) + if (baton->claheWidth != 0 && baton->claheHeight != 0) { + KeepGainMapUnsupported(baton->keepGainMap, "Clahe"); + image = sharp::StaySequential(image); + image = sharp::Clahe(image, baton->claheWidth, baton->claheHeight, baton->claheMaxSlope); + } + + // Apply bitwise boolean operation between images + if (baton->boolean != nullptr) { + KeepGainMapUnsupported(baton->keepGainMap, "Boolean"); + VImage booleanImage; + sharp::ImageType booleanImageType = sharp::ImageType::UNKNOWN; + baton->boolean->access = access; + std::tie(booleanImage, booleanImageType) = sharp::OpenInput(baton->boolean); + booleanImage = sharp::EnsureColourspace(booleanImage, baton->colourspacePipeline); + image = sharp::Boolean(image, booleanImage, baton->booleanOp); + image = sharp::RemoveGifPalette(image); + } + + // Apply per-channel Bandbool bitwise operations after all other operations + if (baton->bandBoolOp >= VIPS_OPERATION_BOOLEAN_AND && baton->bandBoolOp < VIPS_OPERATION_BOOLEAN_LAST) { + image = sharp::Bandbool(image, baton->bandBoolOp); + } + + // Tint the image + if (baton->tint[0] >= 0.0) { + image = sharp::Tint(image, baton->tint); + } + + // Remove alpha channel, if any + if (baton->removeAlpha) { + image = sharp::RemoveAlpha(image); + } + + // Ensure alpha channel, if missing + if (baton->ensureAlpha != -1) { + image = sharp::EnsureAlpha(image, baton->ensureAlpha); + } + + // Ensure output colour space + if (sharp::Is16Bit(image.interpretation())) { + image = image.cast(VIPS_FORMAT_USHORT); + } + if (image.interpretation() != baton->colourspace) { + image = image.colourspace(baton->colourspace, VImage::option()->set("source_space", image.interpretation())); + if (inputProfile.first != nullptr && baton->withIccProfile.empty()) { + image = sharp::SetProfile(image, inputProfile); + } + } + + // Extract channel + if (baton->extractChannel > -1) { + KeepGainMapUnsupported(baton->keepGainMap, "Extract channel"); + if (baton->extractChannel >= image.bands()) { + if (baton->extractChannel == 3 && image.has_alpha()) { + baton->extractChannel = image.bands() - 1; + } else { + (baton->err) + .append("Cannot extract channel ").append(std::to_string(baton->extractChannel)) + .append(" from image with channels 0-").append(std::to_string(image.bands() - 1)); + return Error(); + } + } + VipsInterpretation colourspace = sharp::Is16Bit(image.interpretation()) + ? VIPS_INTERPRETATION_GREY16 + : VIPS_INTERPRETATION_B_W; + image = image + .extract_band(baton->extractChannel) + .copy(VImage::option()->set("interpretation", colourspace)); + } + + // Apply output ICC profile + if (!baton->withIccProfile.empty()) { + try { + image = image.icc_transform(const_cast(baton->withIccProfile.data()), VImage::option() + ->set("input_profile", processingProfile) + ->set("embedded", true) + ->set("depth", sharp::Is16Bit(image.interpretation()) ? 16 : 8) + ->set("intent", VIPS_INTENT_PERCEPTUAL)); + } catch(...) { + sharp::VipsWarningCallback(nullptr, G_LOG_LEVEL_WARNING, "Invalid profile", nullptr); + } + } + + // Negate the colours in the image + if (baton->negate) { + image = sharp::Negate(image, baton->negateAlpha); + if (baton->keepGainMap) { + gainMap = sharp::Negate(gainMap, false); + } + } + + // Override EXIF Orientation tag + if (baton->withMetadataOrientation != -1) { + image = sharp::SetExifOrientation(image, baton->withMetadataOrientation); + } + // Override pixel density + if (baton->withMetadataDensity > 0) { + image = sharp::SetDensity(image, baton->withMetadataDensity); + } + // EXIF key/value pairs + if (baton->keepMetadata & VIPS_FOREIGN_KEEP_EXIF) { + image = image.copy(); + if (!baton->withExifMerge) { + image = sharp::RemoveExif(image); + } + for (const auto& [key, value] : baton->withExif) { + image.set(key.c_str(), value.c_str()); + } + } + // XMP buffer + if ((baton->keepMetadata & VIPS_FOREIGN_KEEP_XMP) && !baton->withXmp.empty()) { + image = image.copy(); + image.set(VIPS_META_XMP_NAME, nullptr, + const_cast(static_cast(baton->withXmp.c_str())), baton->withXmp.size()); + } + // Number of channels used in output image + baton->channels = image.bands(); + baton->width = image.width(); + baton->height = image.height(); + + image = sharp::SetAnimationProperties( + image, nPages, targetPageHeight, baton->delay, baton->loop); + + if (image.get_typeof(VIPS_META_PAGE_HEIGHT) == G_TYPE_INT) { + baton->pageHeightOut = image.get_int(VIPS_META_PAGE_HEIGHT); + baton->pagesOut = image.get_int(VIPS_META_N_PAGES); + } + baton->hasAlphaOut = image.has_alpha(); + + // Output + sharp::SetTimeout(image, baton->timeoutSeconds); + if (baton->fileOut.empty()) { + // Buffer output + if (baton->formatOut == "jpeg" || (baton->formatOut == "input" && inputImageType == sharp::ImageType::JPEG)) { + // Write JPEG to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + VipsArea *area; + if (baton->keepGainMap) { + image = ReattachGainMap(image, gainMap, baton); + area = reinterpret_cast(image.uhdrsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->jpegQuality) + ->set("gainmap_scale_factor", gainMapScaleFactor))); + } else { + area = reinterpret_cast(image.jpegsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->jpegQuality) + ->set("interlace", baton->jpegProgressive) + ->set("subsample_mode", baton->jpegChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF + : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("trellis_quant", baton->jpegTrellisQuantisation) + ->set("quant_table", baton->jpegQuantisationTable) + ->set("overshoot_deringing", baton->jpegOvershootDeringing) + ->set("optimize_scans", baton->jpegOptimiseScans) + ->set("optimize_coding", baton->jpegOptimiseCoding))); + } + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "jpeg"; + if (baton->colourspace == VIPS_INTERPRETATION_CMYK) { + baton->channels = std::min(baton->channels, 4); + } else { + baton->channels = std::min(baton->channels, 3); + } + baton->hasAlphaOut = false; + } else if (baton->formatOut == "jp2" || (baton->formatOut == "input" + && inputImageType == sharp::ImageType::JP2)) { + // Write JP2 to Buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JP2); + VipsArea *area = reinterpret_cast(image.jp2ksave_buffer(VImage::option() + ->set("Q", baton->jp2Quality) + ->set("lossless", baton->jp2Lossless) + ->set("subsample_mode", baton->jp2ChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("tile_height", baton->jp2TileHeight) + ->set("tile_width", baton->jp2TileWidth))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "jp2"; + } else if (baton->formatOut == "png" || (baton->formatOut == "input" && + (inputImageType == sharp::ImageType::PNG || inputImageType == sharp::ImageType::SVG))) { + // Write PNG to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::PNG); + VipsArea *area = reinterpret_cast(image.pngsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("interlace", baton->pngProgressive) + ->set("compression", baton->pngCompressionLevel) + ->set("filter", baton->pngAdaptiveFiltering ? VIPS_FOREIGN_PNG_FILTER_ALL : VIPS_FOREIGN_PNG_FILTER_NONE) + ->set("palette", baton->pngPalette) + ->set("Q", baton->pngQuality) + ->set("effort", baton->pngEffort) + ->set("bitdepth", sharp::Is16Bit(image.interpretation()) ? 16 : baton->pngBitdepth) + ->set("dither", baton->pngDither))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "png"; + } else if (baton->formatOut == "webp" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::WEBP)) { + // Write WEBP to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::WEBP); + VipsArea *area = reinterpret_cast(image.webpsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->webpQuality) + ->set("lossless", baton->webpLossless) + ->set("near_lossless", baton->webpNearLossless) + ->set("smart_subsample", baton->webpSmartSubsample) + ->set("smart_deblock", baton->webpSmartDeblock) + ->set("preset", baton->webpPreset) + ->set("effort", baton->webpEffort) + ->set("min_size", baton->webpMinSize) + ->set("mixed", baton->webpMixed) + ->set("exact", baton->webpExact) + ->set("alpha_q", baton->webpAlphaQuality))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "webp"; + } else if (baton->formatOut == "gif" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::GIF)) { + // Write GIF to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::GIF); + VipsArea *area = reinterpret_cast(image.gifsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("bitdepth", baton->gifBitdepth) + ->set("effort", baton->gifEffort) + ->set("reuse", baton->gifReuse) + ->set("interlace", baton->gifProgressive) + ->set("interframe_maxerror", baton->gifInterFrameMaxError) + ->set("interpalette_maxerror", baton->gifInterPaletteMaxError) + ->set("keep_duplicate_frames", baton->gifKeepDuplicateFrames) + ->set("dither", baton->gifDither))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "gif"; + } else if (baton->formatOut == "tiff" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::TIFF)) { + // Write TIFF to buffer + if (baton->tiffCompression == VIPS_FOREIGN_TIFF_COMPRESSION_JPEG) { + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + baton->channels = std::min(baton->channels, 3); + baton->hasAlphaOut = false; + } + // Cast pixel values to float, if required + if (baton->tiffPredictor == VIPS_FOREIGN_TIFF_PREDICTOR_FLOAT) { + image = image.cast(VIPS_FORMAT_FLOAT); + } + VipsArea *area = reinterpret_cast(image.tiffsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->tiffQuality) + ->set("bitdepth", baton->tiffBitdepth) + ->set("compression", baton->tiffCompression) + ->set("bigtiff", baton->tiffBigtiff) + ->set("miniswhite", baton->tiffMiniswhite) + ->set("predictor", baton->tiffPredictor) + ->set("pyramid", baton->tiffPyramid) + ->set("tile", baton->tiffTile) + ->set("tile_height", baton->tiffTileHeight) + ->set("tile_width", baton->tiffTileWidth) + ->set("xres", baton->tiffXres) + ->set("yres", baton->tiffYres) + ->set("resunit", baton->tiffResolutionUnit))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "tiff"; + } else if (baton->formatOut == "heif" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::HEIF)) { + // Write HEIF to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF); + image = sharp::RemoveAnimationProperties(image); + VipsArea *area = reinterpret_cast(image.heifsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->heifQuality) + ->set("compression", baton->heifCompression) + ->set("effort", baton->heifEffort) + ->set("bitdepth", baton->heifBitdepth) + ->set("tune", baton->heifTune.c_str()) + ->set("subsample_mode", baton->heifChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("lossless", baton->heifLossless))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "heif"; + } else if (baton->formatOut == "dz") { + // Write DZ to buffer + baton->tileContainer = VIPS_FOREIGN_DZ_CONTAINER_ZIP; + if (!image.has_alpha()) { + baton->tileBackground.pop_back(); + } + image = sharp::StaySequential(image, baton->tileAngle != 0); + vips::VOption *options = BuildOptionsDZ(baton); + VipsArea *area = reinterpret_cast(image.dzsave_buffer(options)); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "dz"; + if (baton->tileFormat == "jpeg") { + baton->hasAlphaOut = false; + } + } else if (baton->formatOut == "jxl" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::JXL)) { + // Write JXL to buffer + image = sharp::RemoveAnimationProperties(image); + VipsArea *area = reinterpret_cast(image.jxlsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("distance", baton->jxlDistance) + ->set("tier", baton->jxlDecodingTier) + ->set("effort", baton->jxlEffort) + ->set("lossless", baton->jxlLossless))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "jxl"; + } else if (baton->formatOut == "raw" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::RAW)) { + // Write raw, uncompressed image data to buffer + if (baton->greyscale || image.interpretation() == VIPS_INTERPRETATION_B_W) { + // Extract first band for greyscale image + image = image[0]; + baton->channels = 1; + } + if (image.format() != baton->rawDepth) { + // Cast pixels to requested format + image = image.cast(baton->rawDepth); + } + // Get raw image data + baton->bufferOut = static_cast(image.write_to_memory(&baton->bufferOutLength)); + if (baton->bufferOut == nullptr) { + throw std::runtime_error("Could not allocate enough memory for raw output"); + } + baton->formatOut = "raw"; + } else { + // Unsupported output format + auto unsupported = std::string("Unsupported output format "); + if (baton->formatOut == "input") { + unsupported.append("when trying to match input format of "); + unsupported.append(ImageTypeId(inputImageType)); + } else { + unsupported.append(baton->formatOut); + } + throw std::runtime_error(unsupported); + } + } else { + // File output + bool const isJpeg = sharp::IsJpeg(baton->fileOut); + bool const isPng = sharp::IsPng(baton->fileOut); + bool const isWebp = sharp::IsWebp(baton->fileOut); + bool const isGif = sharp::IsGif(baton->fileOut); + bool const isTiff = sharp::IsTiff(baton->fileOut); + bool const isJp2 = sharp::IsJp2(baton->fileOut); + bool const isHeif = sharp::IsHeif(baton->fileOut); + bool const isJxl = sharp::IsJxl(baton->fileOut); + bool const isDz = sharp::IsDz(baton->fileOut); + bool const isDzZip = sharp::IsDzZip(baton->fileOut); + bool const isV = sharp::IsV(baton->fileOut); + bool const mightMatchInput = baton->formatOut == "input"; + bool const willMatchInput = mightMatchInput && + !(isJpeg || isPng || isWebp || isGif || isTiff || isJp2 || isHeif || isDz || isDzZip || isV); + + if (baton->formatOut == "jpeg" || (mightMatchInput && isJpeg) || + (willMatchInput && inputImageType == sharp::ImageType::JPEG)) { + // Write JPEG to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + if (baton->keepGainMap) { + image = ReattachGainMap(image, gainMap, baton); + image.uhdrsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->jpegQuality) + ->set("gainmap_scale_factor", gainMapScaleFactor)); + } else { + image.jpegsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->jpegQuality) + ->set("interlace", baton->jpegProgressive) + ->set("subsample_mode", baton->jpegChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF + : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("trellis_quant", baton->jpegTrellisQuantisation) + ->set("quant_table", baton->jpegQuantisationTable) + ->set("overshoot_deringing", baton->jpegOvershootDeringing) + ->set("optimize_scans", baton->jpegOptimiseScans) + ->set("optimize_coding", baton->jpegOptimiseCoding)); + } + baton->formatOut = "jpeg"; + baton->channels = std::min(baton->channels, 3); + baton->hasAlphaOut = false; + } else if (baton->formatOut == "jp2" || (mightMatchInput && isJp2) || + (willMatchInput && (inputImageType == sharp::ImageType::JP2))) { + // Write JP2 to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JP2); + image.jp2ksave(const_cast(baton->fileOut.data()), VImage::option() + ->set("Q", baton->jp2Quality) + ->set("lossless", baton->jp2Lossless) + ->set("subsample_mode", baton->jp2ChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("tile_height", baton->jp2TileHeight) + ->set("tile_width", baton->jp2TileWidth)); + baton->formatOut = "jp2"; + } else if (baton->formatOut == "png" || (mightMatchInput && isPng) || (willMatchInput && + (inputImageType == sharp::ImageType::PNG || inputImageType == sharp::ImageType::SVG))) { + // Write PNG to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::PNG); + image.pngsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("interlace", baton->pngProgressive) + ->set("compression", baton->pngCompressionLevel) + ->set("filter", baton->pngAdaptiveFiltering ? VIPS_FOREIGN_PNG_FILTER_ALL : VIPS_FOREIGN_PNG_FILTER_NONE) + ->set("palette", baton->pngPalette) + ->set("Q", baton->pngQuality) + ->set("bitdepth", sharp::Is16Bit(image.interpretation()) ? 16 : baton->pngBitdepth) + ->set("effort", baton->pngEffort) + ->set("dither", baton->pngDither)); + baton->formatOut = "png"; + } else if (baton->formatOut == "webp" || (mightMatchInput && isWebp) || + (willMatchInput && inputImageType == sharp::ImageType::WEBP)) { + // Write WEBP to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::WEBP); + image.webpsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->webpQuality) + ->set("lossless", baton->webpLossless) + ->set("near_lossless", baton->webpNearLossless) + ->set("smart_subsample", baton->webpSmartSubsample) + ->set("smart_deblock", baton->webpSmartDeblock) + ->set("preset", baton->webpPreset) + ->set("effort", baton->webpEffort) + ->set("min_size", baton->webpMinSize) + ->set("mixed", baton->webpMixed) + ->set("exact", baton->webpExact) + ->set("alpha_q", baton->webpAlphaQuality)); + baton->formatOut = "webp"; + } else if (baton->formatOut == "gif" || (mightMatchInput && isGif) || + (willMatchInput && inputImageType == sharp::ImageType::GIF)) { + // Write GIF to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::GIF); + image.gifsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("bitdepth", baton->gifBitdepth) + ->set("effort", baton->gifEffort) + ->set("reuse", baton->gifReuse) + ->set("interlace", baton->gifProgressive) + ->set("interframe_maxerror", baton->gifInterFrameMaxError) + ->set("interpalette_maxerror", baton->gifInterPaletteMaxError) + ->set("keep_duplicate_frames", baton->gifKeepDuplicateFrames) + ->set("dither", baton->gifDither)); + baton->formatOut = "gif"; + } else if (baton->formatOut == "tiff" || (mightMatchInput && isTiff) || + (willMatchInput && inputImageType == sharp::ImageType::TIFF)) { + // Write TIFF to file + if (baton->tiffCompression == VIPS_FOREIGN_TIFF_COMPRESSION_JPEG) { + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + baton->channels = std::min(baton->channels, 3); + baton->hasAlphaOut = false; + } + // Cast pixel values to float, if required + if (baton->tiffPredictor == VIPS_FOREIGN_TIFF_PREDICTOR_FLOAT) { + image = image.cast(VIPS_FORMAT_FLOAT); + } + image.tiffsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->tiffQuality) + ->set("bitdepth", baton->tiffBitdepth) + ->set("compression", baton->tiffCompression) + ->set("bigtiff", baton->tiffBigtiff) + ->set("miniswhite", baton->tiffMiniswhite) + ->set("predictor", baton->tiffPredictor) + ->set("pyramid", baton->tiffPyramid) + ->set("tile", baton->tiffTile) + ->set("tile_height", baton->tiffTileHeight) + ->set("tile_width", baton->tiffTileWidth) + ->set("xres", baton->tiffXres) + ->set("yres", baton->tiffYres) + ->set("resunit", baton->tiffResolutionUnit)); + baton->formatOut = "tiff"; + } else if (baton->formatOut == "heif" || (mightMatchInput && isHeif) || + (willMatchInput && inputImageType == sharp::ImageType::HEIF)) { + // Write HEIF to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF); + image = sharp::RemoveAnimationProperties(image); + image.heifsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->heifQuality) + ->set("compression", baton->heifCompression) + ->set("effort", baton->heifEffort) + ->set("bitdepth", baton->heifBitdepth) + ->set("tune", baton->heifTune.c_str()) + ->set("subsample_mode", baton->heifChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("lossless", baton->heifLossless)); + baton->formatOut = "heif"; + } else if (baton->formatOut == "jxl" || (mightMatchInput && isJxl) || + (willMatchInput && inputImageType == sharp::ImageType::JXL)) { + // Write JXL to file + image = sharp::RemoveAnimationProperties(image); + image.jxlsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("distance", baton->jxlDistance) + ->set("tier", baton->jxlDecodingTier) + ->set("effort", baton->jxlEffort) + ->set("lossless", baton->jxlLossless)); + baton->formatOut = "jxl"; + } else if (baton->formatOut == "dz" || isDz || isDzZip) { + // Write DZ to file + if (isDzZip) { + baton->tileContainer = VIPS_FOREIGN_DZ_CONTAINER_ZIP; + } + if (!image.has_alpha()) { + baton->tileBackground.pop_back(); + } + image = sharp::StaySequential(image, baton->tileAngle != 0); + vips::VOption *options = BuildOptionsDZ(baton); + image.dzsave(const_cast(baton->fileOut.data()), options); + baton->formatOut = "dz"; + if (baton->tileFormat == "jpeg") { + baton->hasAlphaOut = false; + } + } else if (baton->formatOut == "v" || (mightMatchInput && isV) || + (willMatchInput && inputImageType == sharp::ImageType::VIPS)) { + // Write V to file + image.vipssave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata)); + baton->formatOut = "v"; + } else { + // Unsupported output format + (baton->err).append("Unsupported output format " + baton->fileOut); + return Error(); + } + } + } catch (std::runtime_error const &err) { + char const *what = err.what(); + if (what && what[0]) { + (baton->err).append(what); + } else { + if (baton->input->failOn == VIPS_FAIL_ON_WARNING) { + (baton->err).append("Warning treated as error due to failOn setting"); + baton->errUseWarning = true; + } else { + (baton->err).append("Unknown error"); + } + } + } + // Clean up libvips' per-request data and threads + vips_error_clear(); + vips_thread_shutdown(); + } + + void OnOK() { + Napi::Env env = Env(); + Napi::HandleScope scope(env); + + // Handle warnings + std::string warning = sharp::VipsWarningPop(); + while (!warning.empty()) { + if (baton->errUseWarning) { + (baton->err).append("\n").append(warning); + } else { + debuglog.SHARP_CALLBACK_FN_NAME(Receiver().Value(), { Napi::String::New(env, warning) }); + } + warning = sharp::VipsWarningPop(); + } + if (baton->err.empty()) { + int width = baton->width; + int height = baton->height; + if (baton->topOffsetPre != -1 && (baton->width == -1 || baton->height == -1)) { + width = baton->widthPre; + height = baton->heightPre; + } + if (baton->topOffsetPost != -1) { + width = baton->widthPost; + height = baton->heightPost; + } + // Info Object + Napi::Object info = Napi::Object::New(env); + info.Set("format", baton->formatOut); + info.Set("width", static_cast(width)); + info.Set("height", static_cast(height)); + info.Set("channels", static_cast(baton->channels)); + if (baton->formatOut == "raw") { + info.Set("depth", vips_enum_nick(VIPS_TYPE_BAND_FORMAT, baton->rawDepth)); + } + info.Set("premultiplied", baton->premultiplied); + if (baton->hasCropOffset) { + info.Set("cropOffsetLeft", static_cast(baton->cropOffsetLeft)); + info.Set("cropOffsetTop", static_cast(baton->cropOffsetTop)); + } + if (baton->hasAttentionCenter) { + info.Set("attentionX", static_cast(baton->attentionX)); + info.Set("attentionY", static_cast(baton->attentionY)); + } + if (baton->trimThreshold >= 0.0) { + info.Set("trimOffsetLeft", static_cast(baton->trimOffsetLeft)); + info.Set("trimOffsetTop", static_cast(baton->trimOffsetTop)); + } + if (baton->input->textAutofitDpi) { + info.Set("textAutofitDpi", static_cast(baton->input->textAutofitDpi)); + } + if (baton->pageHeightOut) { + info.Set("pageHeight", static_cast(baton->pageHeightOut)); + info.Set("pages", static_cast(baton->pagesOut)); + } + info.Set("hasAlpha", baton->hasAlphaOut); + + if (baton->bufferOutLength > 0) { + info.Set("size", static_cast(baton->bufferOutLength)); + if (baton->typedArrayOut) { + // ECMAScript ArrayBuffer with Uint8Array view + Napi::TypedArrayOf data = Napi::Buffer::Copy(env, + static_cast(baton->bufferOut), baton->bufferOutLength); + sharp::FreeCallback(static_cast(baton->bufferOut), nullptr); + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), { env.Null(), data, info }); + } else { + // Node.js Buffer + Napi::Buffer data = Napi::Buffer::NewOrCopy(env, static_cast(baton->bufferOut), + baton->bufferOutLength, sharp::FreeCallback); + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), { env.Null(), data, info }); + } + } else { + // Add file size to info + if (baton->formatOut != "dz" || sharp::IsDzZip(baton->fileOut)) { + try { + uint32_t const size = static_cast( + std::filesystem::file_size(std::filesystem::u8path(baton->fileOut))); + info.Set("size", size); + } catch (...) {} + } + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), { env.Null(), info }); + } + } else { + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), + { Napi::Error::New(env, sharp::TrimEnd(baton->err)).Value() }); + } + + // Delete baton + delete baton->input; + delete baton->boolean; + for (Composite *composite : baton->composite) { + delete composite->input; + delete composite; + } + for (sharp::InputDescriptor *input : baton->joinChannelIn) { + delete input; + } + for (sharp::InputDescriptor *input : baton->join) { + delete input; + } + delete baton; + + // Decrement processing task counter + sharp::counterProcess--; + Napi::Number queueLength = Napi::Number::New(env, static_cast(sharp::counterQueue)); + queueListener.SHARP_CALLBACK_FN_NAME(Receiver().Value(), { queueLength }); + } + + private: + PipelineBaton *baton; + Napi::FunctionReference debuglog; + Napi::FunctionReference queueListener; + + void MultiPageUnsupported(int const pages, std::string op) { + if (pages > 1) { + throw std::runtime_error(op + " is not supported for multi-page images"); + } + } + + void KeepGainMapUnsupported(bool const keepGainMap, std::string op) { + if (keepGainMap) { + throw std::runtime_error(op + " is not supported when keeping gain maps"); + } + } + + /* + Calculate the angle of rotation and need-to-flip for the given Exif orientation + By default, returns zero, i.e. no rotation. + */ + std::tuple + CalculateExifRotationAndFlop(int const exifOrientation) { + VipsAngle rotate = VIPS_ANGLE_D0; + bool flop = false; + switch (exifOrientation) { + case 6: rotate = VIPS_ANGLE_D90; break; + case 3: rotate = VIPS_ANGLE_D180; break; + case 8: rotate = VIPS_ANGLE_D270; break; + case 2: flop = true; break; + case 7: flop = true; rotate = VIPS_ANGLE_D270; break; + case 4: flop = true; rotate = VIPS_ANGLE_D180; break; + case 5: flop = true; rotate = VIPS_ANGLE_D90; break; + } + return std::make_tuple(rotate, flop); + } + + /* + Calculate the rotation for the given angle. + Supports any positive or negative angle that is a multiple of 90. + */ + VipsAngle + CalculateAngleRotation(int angle) { + angle = angle % 360; + if (angle < 0) + angle = 360 + angle; + switch (angle) { + case 90: return VIPS_ANGLE_D90; + case 180: return VIPS_ANGLE_D180; + case 270: return VIPS_ANGLE_D270; + } + return VIPS_ANGLE_D0; + } + + /* + Assemble the suffix argument to dzsave, which is the format (by extname) + alongside comma-separated arguments to the corresponding `formatsave` vips + action. + */ + std::string + AssembleSuffixString(std::string extname, std::vector> options) { + std::string argument; + for (const auto& [key, value] : options) { + if (!argument.empty()) { + argument += ","; + } + argument += key + "=" + value; + } + return extname + "[" + argument + "]"; + } + + /* + Build VOption for dzsave + */ + vips::VOption* + BuildOptionsDZ(PipelineBaton *baton) { + // Forward format options through suffix + std::string suffix; + if (baton->tileFormat == "png") { + std::vector> options { + {"interlace", baton->pngProgressive ? "true" : "false"}, + {"compression", std::to_string(baton->pngCompressionLevel)}, + {"filter", baton->pngAdaptiveFiltering ? "all" : "none"} + }; + suffix = AssembleSuffixString(".png", options); + } else if (baton->tileFormat == "webp") { + std::vector> options { + {"Q", std::to_string(baton->webpQuality)}, + {"alpha_q", std::to_string(baton->webpAlphaQuality)}, + {"lossless", baton->webpLossless ? "true" : "false"}, + {"near_lossless", baton->webpNearLossless ? "true" : "false"}, + {"smart_subsample", baton->webpSmartSubsample ? "true" : "false"}, + {"smart_deblock", baton->webpSmartDeblock ? "true" : "false"}, + {"preset", vips_enum_nick(VIPS_TYPE_FOREIGN_WEBP_PRESET, baton->webpPreset)}, + {"min_size", baton->webpMinSize ? "true" : "false"}, + {"mixed", baton->webpMixed ? "true" : "false"}, + {"exact", baton->webpExact ? "true" : "false"}, + {"effort", std::to_string(baton->webpEffort)} + }; + suffix = AssembleSuffixString(".webp", options); + } else { + std::vector> options { + {"Q", std::to_string(baton->jpegQuality)}, + {"interlace", baton->jpegProgressive ? "true" : "false"}, + {"subsample_mode", baton->jpegChromaSubsampling == "4:4:4" ? "off" : "on"}, + {"trellis_quant", baton->jpegTrellisQuantisation ? "true" : "false"}, + {"quant_table", std::to_string(baton->jpegQuantisationTable)}, + {"overshoot_deringing", baton->jpegOvershootDeringing ? "true": "false"}, + {"optimize_scans", baton->jpegOptimiseScans ? "true": "false"}, + {"optimize_coding", baton->jpegOptimiseCoding ? "true": "false"} + }; + std::string extname = baton->tileLayout == VIPS_FOREIGN_DZ_LAYOUT_DZ ? ".jpeg" : ".jpg"; + suffix = AssembleSuffixString(extname, options); + } + vips::VOption *options = VImage::option() + ->set("keep", baton->keepMetadata) + ->set("tile_size", baton->tileSize) + ->set("overlap", baton->tileOverlap) + ->set("container", baton->tileContainer) + ->set("layout", baton->tileLayout) + ->set("suffix", const_cast(suffix.data())) + ->set("angle", CalculateAngleRotation(baton->tileAngle)) + ->set("background", baton->tileBackground) + ->set("centre", baton->tileCentre) + ->set("id", const_cast(baton->tileId.data())) + ->set("skip_blanks", baton->tileSkipBlanks); + if (baton->tileDepth < VIPS_FOREIGN_DZ_DEPTH_LAST) { + options->set("depth", baton->tileDepth); + } + if (!baton->tileBasename.empty()) { + options->set("basename", const_cast(baton->tileBasename.data())); + } + return options; + } + + VImage ReattachGainMap(VImage image, VImage gainMap, PipelineBaton *baton) { + VipsArea *gainMapJpeg = reinterpret_cast(gainMap.jpegsave_buffer(VImage::option() + ->set("keep", FALSE) + ->set("Q", baton->jpegQuality) + ->set("subsample_mode", VIPS_FOREIGN_SUBSAMPLE_OFF) + ->set("trellis_quant", baton->jpegTrellisQuantisation) + ->set("quant_table", baton->jpegQuantisationTable) + ->set("overshoot_deringing", baton->jpegOvershootDeringing) + ->set("optimize_coding", baton->jpegOptimiseCoding))); + image = image.copy(); + image.set("gainmap-data", reinterpret_cast(vips_area_free_cb), + gainMapJpeg->data, gainMapJpeg->length); + return image; + } + + /* + Clear all thread-local data. + */ + void Error() { + // Clean up libvips' per-request data and threads + vips_error_clear(); + vips_thread_shutdown(); + } +}; + +/* + pipeline(options, output, callback) +*/ +Napi::Value pipeline(const Napi::CallbackInfo& info) { + // V8 objects are converted to non-V8 types held in the baton struct + PipelineBaton *baton = new PipelineBaton; + Napi::Object options = info[size_t(0)].As(); + + // Input + baton->input = sharp::CreateInputDescriptor(options.Get("input").As()); + // Join images together + if (sharp::HasAttr(options, "join")) { + Napi::Array join = options.Get("join").As(); + for (unsigned int i = 0; i < join.Length(); i++) { + baton->join.push_back( + sharp::CreateInputDescriptor(join.Get(i).As())); + } + } + // Extract image options + baton->topOffsetPre = sharp::AttrAsInt32(options, "topOffsetPre"); + baton->leftOffsetPre = sharp::AttrAsInt32(options, "leftOffsetPre"); + baton->widthPre = sharp::AttrAsInt32(options, "widthPre"); + baton->heightPre = sharp::AttrAsInt32(options, "heightPre"); + baton->topOffsetPost = sharp::AttrAsInt32(options, "topOffsetPost"); + baton->leftOffsetPost = sharp::AttrAsInt32(options, "leftOffsetPost"); + baton->widthPost = sharp::AttrAsInt32(options, "widthPost"); + baton->heightPost = sharp::AttrAsInt32(options, "heightPost"); + // Output image dimensions + baton->width = sharp::AttrAsInt32(options, "width"); + baton->height = sharp::AttrAsInt32(options, "height"); + // Canvas option + std::string canvas = sharp::AttrAsStr(options, "canvas"); + if (canvas == "crop") { + baton->canvas = sharp::Canvas::CROP; + } else if (canvas == "embed") { + baton->canvas = sharp::Canvas::EMBED; + } else if (canvas == "max") { + baton->canvas = sharp::Canvas::MAX; + } else if (canvas == "min") { + baton->canvas = sharp::Canvas::MIN; + } else if (canvas == "ignore_aspect") { + baton->canvas = sharp::Canvas::IGNORE_ASPECT; + } + // Composite + Napi::Array compositeArray = options.Get("composite").As(); + for (unsigned int i = 0; i < compositeArray.Length(); i++) { + Napi::Object compositeObject = compositeArray.Get(i).As(); + Composite *composite = new Composite; + composite->input = sharp::CreateInputDescriptor(compositeObject.Get("input").As()); + composite->mode = sharp::AttrAsEnum(compositeObject, "blend", VIPS_TYPE_BLEND_MODE); + composite->gravity = sharp::AttrAsUint32(compositeObject, "gravity"); + composite->left = sharp::AttrAsInt32(compositeObject, "left"); + composite->top = sharp::AttrAsInt32(compositeObject, "top"); + composite->hasOffset = sharp::AttrAsBool(compositeObject, "hasOffset"); + composite->tile = sharp::AttrAsBool(compositeObject, "tile"); + composite->premultiplied = sharp::AttrAsBool(compositeObject, "premultiplied"); + baton->composite.push_back(composite); + } + // Resize options + baton->withoutEnlargement = sharp::AttrAsBool(options, "withoutEnlargement"); + baton->withoutReduction = sharp::AttrAsBool(options, "withoutReduction"); + baton->position = sharp::AttrAsInt32(options, "position"); + baton->resizeBackground = sharp::AttrAsVectorOfDouble(options, "resizeBackground"); + baton->kernel = sharp::AttrAsEnum(options, "kernel", VIPS_TYPE_KERNEL); + baton->fastShrinkOnLoad = sharp::AttrAsBool(options, "fastShrinkOnLoad"); + // Join Channel Options + if (options.Has("joinChannelIn")) { + Napi::Array joinChannelArray = options.Get("joinChannelIn").As(); + for (unsigned int i = 0; i < joinChannelArray.Length(); i++) { + baton->joinChannelIn.push_back( + sharp::CreateInputDescriptor(joinChannelArray.Get(i).As())); + } + } + // Operators + baton->flatten = sharp::AttrAsBool(options, "flatten"); + baton->flattenBackground = sharp::AttrAsVectorOfDouble(options, "flattenBackground"); + baton->unflatten = sharp::AttrAsBool(options, "unflatten"); + baton->negate = sharp::AttrAsBool(options, "negate"); + baton->negateAlpha = sharp::AttrAsBool(options, "negateAlpha"); + baton->blurSigma = sharp::AttrAsDouble(options, "blurSigma"); + baton->precision = sharp::AttrAsEnum(options, "precision", VIPS_TYPE_PRECISION); + baton->minAmpl = sharp::AttrAsDouble(options, "minAmpl"); + baton->brightness = sharp::AttrAsDouble(options, "brightness"); + baton->saturation = sharp::AttrAsDouble(options, "saturation"); + baton->hue = sharp::AttrAsInt32(options, "hue"); + baton->lightness = sharp::AttrAsDouble(options, "lightness"); + baton->medianSize = sharp::AttrAsUint32(options, "medianSize"); + baton->sharpenSigma = sharp::AttrAsDouble(options, "sharpenSigma"); + baton->sharpenM1 = sharp::AttrAsDouble(options, "sharpenM1"); + baton->sharpenM2 = sharp::AttrAsDouble(options, "sharpenM2"); + baton->sharpenX1 = sharp::AttrAsDouble(options, "sharpenX1"); + baton->sharpenY2 = sharp::AttrAsDouble(options, "sharpenY2"); + baton->sharpenY3 = sharp::AttrAsDouble(options, "sharpenY3"); + baton->threshold = sharp::AttrAsInt32(options, "threshold"); + baton->thresholdGrayscale = sharp::AttrAsBool(options, "thresholdGrayscale"); + baton->trimBackground = sharp::AttrAsVectorOfDouble(options, "trimBackground"); + baton->trimThreshold = sharp::AttrAsDouble(options, "trimThreshold"); + baton->trimLineArt = sharp::AttrAsBool(options, "trimLineArt"); + baton->trimMargin = sharp::AttrAsUint32(options, "trimMargin"); + baton->gamma = sharp::AttrAsDouble(options, "gamma"); + baton->gammaOut = sharp::AttrAsDouble(options, "gammaOut"); + baton->linearA = sharp::AttrAsVectorOfDouble(options, "linearA"); + baton->linearB = sharp::AttrAsVectorOfDouble(options, "linearB"); + baton->dilateWidth = sharp::AttrAsUint32(options, "dilateWidth"); + baton->erodeWidth = sharp::AttrAsUint32(options, "erodeWidth"); + baton->greyscale = sharp::AttrAsBool(options, "greyscale"); + baton->normalise = sharp::AttrAsBool(options, "normalise"); + baton->normaliseLower = sharp::AttrAsUint32(options, "normaliseLower"); + baton->normaliseUpper = sharp::AttrAsUint32(options, "normaliseUpper"); + baton->tint = sharp::AttrAsVectorOfDouble(options, "tint"); + baton->claheWidth = sharp::AttrAsUint32(options, "claheWidth"); + baton->claheHeight = sharp::AttrAsUint32(options, "claheHeight"); + baton->claheMaxSlope = sharp::AttrAsUint32(options, "claheMaxSlope"); + baton->angle = sharp::AttrAsInt32(options, "angle"); + baton->rotationAngle = sharp::AttrAsDouble(options, "rotationAngle"); + baton->rotationBackground = sharp::AttrAsVectorOfDouble(options, "rotationBackground"); + baton->rotateBefore = sharp::AttrAsBool(options, "rotateBefore"); + baton->orientBefore = sharp::AttrAsBool(options, "orientBefore"); + baton->flip = sharp::AttrAsBool(options, "flip"); + baton->flop = sharp::AttrAsBool(options, "flop"); + baton->extendTop = sharp::AttrAsInt32(options, "extendTop"); + baton->extendBottom = sharp::AttrAsInt32(options, "extendBottom"); + baton->extendLeft = sharp::AttrAsInt32(options, "extendLeft"); + baton->extendRight = sharp::AttrAsInt32(options, "extendRight"); + baton->extendBackground = sharp::AttrAsVectorOfDouble(options, "extendBackground"); + baton->extendWith = sharp::AttrAsEnum(options, "extendWith", VIPS_TYPE_EXTEND); + baton->extractChannel = sharp::AttrAsInt32(options, "extractChannel"); + baton->affineMatrix = sharp::AttrAsVectorOfDouble(options, "affineMatrix"); + baton->affineBackground = sharp::AttrAsVectorOfDouble(options, "affineBackground"); + baton->affineIdx = sharp::AttrAsDouble(options, "affineIdx"); + baton->affineIdy = sharp::AttrAsDouble(options, "affineIdy"); + baton->affineOdx = sharp::AttrAsDouble(options, "affineOdx"); + baton->affineOdy = sharp::AttrAsDouble(options, "affineOdy"); + baton->affineInterpolator = sharp::AttrAsStr(options, "affineInterpolator"); + baton->removeAlpha = sharp::AttrAsBool(options, "removeAlpha"); + baton->ensureAlpha = sharp::AttrAsDouble(options, "ensureAlpha"); + if (options.Has("boolean")) { + baton->boolean = sharp::CreateInputDescriptor(options.Get("boolean").As()); + baton->booleanOp = sharp::AttrAsEnum(options, "booleanOp", VIPS_TYPE_OPERATION_BOOLEAN); + } + if (options.Has("bandBoolOp")) { + baton->bandBoolOp = sharp::AttrAsEnum(options, "bandBoolOp", VIPS_TYPE_OPERATION_BOOLEAN); + } + if (options.Has("convKernel")) { + Napi::Object kernel = options.Get("convKernel").As(); + baton->convKernelWidth = sharp::AttrAsUint32(kernel, "width"); + baton->convKernelHeight = sharp::AttrAsUint32(kernel, "height"); + baton->convKernelScale = sharp::AttrAsDouble(kernel, "scale"); + baton->convKernelOffset = sharp::AttrAsDouble(kernel, "offset"); + size_t const kernelSize = static_cast(baton->convKernelWidth * baton->convKernelHeight); + baton->convKernel.resize(kernelSize); + Napi::Array kdata = kernel.Get("kernel").As(); + for (unsigned int i = 0; i < kernelSize; i++) { + baton->convKernel[i] = sharp::AttrAsDouble(kdata, i); + } + } + if (options.Has("recombMatrix")) { + Napi::Array recombMatrix = options.Get("recombMatrix").As(); + unsigned int matrixElements = recombMatrix.Length(); + baton->recombMatrix.resize(matrixElements); + for (unsigned int i = 0; i < matrixElements; i++) { + baton->recombMatrix[i] = sharp::AttrAsDouble(recombMatrix, i); + } + } + baton->colourspacePipeline = sharp::AttrAsEnum( + options, "colourspacePipeline", VIPS_TYPE_INTERPRETATION); + if (baton->colourspacePipeline == VIPS_INTERPRETATION_ERROR) { + baton->colourspacePipeline = VIPS_INTERPRETATION_LAST; + } + baton->colourspace = sharp::AttrAsEnum(options, "colourspace", VIPS_TYPE_INTERPRETATION); + if (baton->colourspace == VIPS_INTERPRETATION_ERROR) { + baton->colourspace = VIPS_INTERPRETATION_sRGB; + } + // Output + baton->formatOut = sharp::AttrAsStr(options, "formatOut"); + baton->fileOut = sharp::AttrAsStr(options, "fileOut"); + baton->typedArrayOut = sharp::AttrAsBool(options, "typedArrayOut"); + baton->keepMetadata = sharp::AttrAsUint32(options, "keepMetadata"); + baton->withMetadataOrientation = sharp::AttrAsUint32(options, "withMetadataOrientation"); + baton->withMetadataDensity = sharp::AttrAsDouble(options, "withMetadataDensity"); + baton->withIccProfile = sharp::AttrAsStr(options, "withIccProfile"); + Napi::Object withExif = options.Get("withExif").As(); + Napi::Array withExifKeys = withExif.GetPropertyNames(); + for (unsigned int i = 0; i < withExifKeys.Length(); i++) { + std::string k = sharp::AttrAsStr(withExifKeys, i); + if (withExif.HasOwnProperty(k)) { + baton->withExif.insert(std::make_pair(k, sharp::AttrAsStr(withExif, k))); + } + } + baton->withExifMerge = sharp::AttrAsBool(options, "withExifMerge"); + baton->withXmp = sharp::AttrAsStr(options, "withXmp"); + baton->keepGainMap = sharp::AttrAsBool(options, "keepGainMap"); + baton->withGainMap = sharp::AttrAsBool(options, "withGainMap"); + baton->timeoutSeconds = sharp::AttrAsUint32(options, "timeoutSeconds"); + baton->loop = sharp::AttrAsUint32(options, "loop"); + baton->delay = sharp::AttrAsInt32Vector(options, "delay"); + // Format-specific + baton->jpegQuality = sharp::AttrAsUint32(options, "jpegQuality"); + baton->jpegProgressive = sharp::AttrAsBool(options, "jpegProgressive"); + baton->jpegChromaSubsampling = sharp::AttrAsStr(options, "jpegChromaSubsampling"); + baton->jpegTrellisQuantisation = sharp::AttrAsBool(options, "jpegTrellisQuantisation"); + baton->jpegQuantisationTable = sharp::AttrAsUint32(options, "jpegQuantisationTable"); + baton->jpegOvershootDeringing = sharp::AttrAsBool(options, "jpegOvershootDeringing"); + baton->jpegOptimiseScans = sharp::AttrAsBool(options, "jpegOptimiseScans"); + baton->jpegOptimiseCoding = sharp::AttrAsBool(options, "jpegOptimiseCoding"); + baton->pngProgressive = sharp::AttrAsBool(options, "pngProgressive"); + baton->pngCompressionLevel = sharp::AttrAsUint32(options, "pngCompressionLevel"); + baton->pngAdaptiveFiltering = sharp::AttrAsBool(options, "pngAdaptiveFiltering"); + baton->pngPalette = sharp::AttrAsBool(options, "pngPalette"); + baton->pngQuality = sharp::AttrAsUint32(options, "pngQuality"); + baton->pngEffort = sharp::AttrAsUint32(options, "pngEffort"); + baton->pngBitdepth = sharp::AttrAsUint32(options, "pngBitdepth"); + baton->pngDither = sharp::AttrAsDouble(options, "pngDither"); + baton->jp2Quality = sharp::AttrAsUint32(options, "jp2Quality"); + baton->jp2Lossless = sharp::AttrAsBool(options, "jp2Lossless"); + baton->jp2TileHeight = sharp::AttrAsUint32(options, "jp2TileHeight"); + baton->jp2TileWidth = sharp::AttrAsUint32(options, "jp2TileWidth"); + baton->jp2ChromaSubsampling = sharp::AttrAsStr(options, "jp2ChromaSubsampling"); + baton->webpQuality = sharp::AttrAsUint32(options, "webpQuality"); + baton->webpAlphaQuality = sharp::AttrAsUint32(options, "webpAlphaQuality"); + baton->webpLossless = sharp::AttrAsBool(options, "webpLossless"); + baton->webpNearLossless = sharp::AttrAsBool(options, "webpNearLossless"); + baton->webpSmartSubsample = sharp::AttrAsBool(options, "webpSmartSubsample"); + baton->webpSmartDeblock = sharp::AttrAsBool(options, "webpSmartDeblock"); + baton->webpPreset = sharp::AttrAsEnum(options, "webpPreset", VIPS_TYPE_FOREIGN_WEBP_PRESET); + baton->webpEffort = sharp::AttrAsUint32(options, "webpEffort"); + baton->webpMinSize = sharp::AttrAsBool(options, "webpMinSize"); + baton->webpMixed = sharp::AttrAsBool(options, "webpMixed"); + baton->webpExact = sharp::AttrAsBool(options, "webpExact"); + baton->gifBitdepth = sharp::AttrAsUint32(options, "gifBitdepth"); + baton->gifEffort = sharp::AttrAsUint32(options, "gifEffort"); + baton->gifDither = sharp::AttrAsDouble(options, "gifDither"); + baton->gifInterFrameMaxError = sharp::AttrAsDouble(options, "gifInterFrameMaxError"); + baton->gifInterPaletteMaxError = sharp::AttrAsDouble(options, "gifInterPaletteMaxError"); + baton->gifKeepDuplicateFrames = sharp::AttrAsBool(options, "gifKeepDuplicateFrames"); + baton->gifReuse = sharp::AttrAsBool(options, "gifReuse"); + baton->gifProgressive = sharp::AttrAsBool(options, "gifProgressive"); + baton->tiffQuality = sharp::AttrAsUint32(options, "tiffQuality"); + baton->tiffBigtiff = sharp::AttrAsBool(options, "tiffBigtiff"); + baton->tiffPyramid = sharp::AttrAsBool(options, "tiffPyramid"); + baton->tiffMiniswhite = sharp::AttrAsBool(options, "tiffMiniswhite"); + baton->tiffBitdepth = sharp::AttrAsUint32(options, "tiffBitdepth"); + baton->tiffTile = sharp::AttrAsBool(options, "tiffTile"); + baton->tiffTileWidth = sharp::AttrAsUint32(options, "tiffTileWidth"); + baton->tiffTileHeight = sharp::AttrAsUint32(options, "tiffTileHeight"); + baton->tiffXres = sharp::AttrAsDouble(options, "tiffXres"); + baton->tiffYres = sharp::AttrAsDouble(options, "tiffYres"); + if (baton->tiffXres == 1.0 && baton->tiffYres == 1.0 && baton->withMetadataDensity > 0) { + baton->tiffXres = baton->tiffYres = baton->withMetadataDensity / 25.4; + } + baton->tiffCompression = sharp::AttrAsEnum( + options, "tiffCompression", VIPS_TYPE_FOREIGN_TIFF_COMPRESSION); + baton->tiffPredictor = sharp::AttrAsEnum( + options, "tiffPredictor", VIPS_TYPE_FOREIGN_TIFF_PREDICTOR); + baton->tiffResolutionUnit = sharp::AttrAsEnum( + options, "tiffResolutionUnit", VIPS_TYPE_FOREIGN_TIFF_RESUNIT); + baton->heifQuality = sharp::AttrAsUint32(options, "heifQuality"); + baton->heifLossless = sharp::AttrAsBool(options, "heifLossless"); + baton->heifCompression = sharp::AttrAsEnum( + options, "heifCompression", VIPS_TYPE_FOREIGN_HEIF_COMPRESSION); + baton->heifEffort = sharp::AttrAsUint32(options, "heifEffort"); + baton->heifChromaSubsampling = sharp::AttrAsStr(options, "heifChromaSubsampling"); + baton->heifBitdepth = sharp::AttrAsUint32(options, "heifBitdepth"); + baton->heifTune = sharp::AttrAsStr(options, "heifTune"); + baton->jxlDistance = sharp::AttrAsDouble(options, "jxlDistance"); + baton->jxlDecodingTier = sharp::AttrAsUint32(options, "jxlDecodingTier"); + baton->jxlEffort = sharp::AttrAsUint32(options, "jxlEffort"); + baton->jxlLossless = sharp::AttrAsBool(options, "jxlLossless"); + baton->rawDepth = sharp::AttrAsEnum(options, "rawDepth", VIPS_TYPE_BAND_FORMAT); + baton->tileSize = sharp::AttrAsUint32(options, "tileSize"); + baton->tileOverlap = sharp::AttrAsUint32(options, "tileOverlap"); + baton->tileAngle = sharp::AttrAsInt32(options, "tileAngle"); + baton->tileBackground = sharp::AttrAsVectorOfDouble(options, "tileBackground"); + baton->tileSkipBlanks = sharp::AttrAsInt32(options, "tileSkipBlanks"); + baton->tileContainer = sharp::AttrAsEnum( + options, "tileContainer", VIPS_TYPE_FOREIGN_DZ_CONTAINER); + baton->tileLayout = sharp::AttrAsEnum(options, "tileLayout", VIPS_TYPE_FOREIGN_DZ_LAYOUT); + baton->tileFormat = sharp::AttrAsStr(options, "tileFormat"); + baton->tileDepth = sharp::AttrAsEnum(options, "tileDepth", VIPS_TYPE_FOREIGN_DZ_DEPTH); + baton->tileCentre = sharp::AttrAsBool(options, "tileCentre"); + baton->tileId = sharp::AttrAsStr(options, "tileId"); + baton->tileBasename = sharp::AttrAsStr(options, "tileBasename"); + + // Function to notify of libvips warnings + Napi::Function debuglog = options.Get("debuglog").As(); + + // Function to notify of queue length changes + Napi::Function queueListener = options.Get("queueListener").As(); + + // Join queue for worker thread + Napi::Function callback = info[size_t(1)].As(); + PipelineWorker *worker = new PipelineWorker(callback, baton, debuglog, queueListener); + worker->Receiver().Set("options", options); + worker->Queue(); + + // Increment queued task counter + Napi::Number queueLength = Napi::Number::New(info.Env(), static_cast(++sharp::counterQueue)); + queueListener.SHARP_CALLBACK_FN_NAME(info.This(), { queueLength }); + + return info.Env().Undefined(); +} diff --git a/apps/api/.output/node_modules/sharp/src/pipeline.h b/apps/api/.output/node_modules/sharp/src/pipeline.h new file mode 100644 index 0000000..78de093 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/pipeline.h @@ -0,0 +1,422 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_PIPELINE_H_ +#define SRC_PIPELINE_H_ + +#include +#include +#include +#include + +#include +#include + +#include "./common.h" + +Napi::Value pipeline(const Napi::CallbackInfo& info); + +struct Composite { + sharp::InputDescriptor *input; + VipsBlendMode mode; + int gravity; + int left; + int top; + bool hasOffset; + bool tile; + bool premultiplied; + + Composite(): + input(nullptr), + mode(VIPS_BLEND_MODE_OVER), + gravity(0), + left(0), + top(0), + hasOffset(false), + tile(false), + premultiplied(false) {} +}; + +struct PipelineBaton { + sharp::InputDescriptor *input; + std::vector join; + std::string formatOut; + std::string fileOut; + void *bufferOut; + size_t bufferOutLength; + int pageHeightOut; + int pagesOut; + bool typedArrayOut; + bool hasAlphaOut; + std::vector composite; + std::vector joinChannelIn; + int topOffsetPre; + int leftOffsetPre; + int widthPre; + int heightPre; + int topOffsetPost; + int leftOffsetPost; + int widthPost; + int heightPost; + int width; + int height; + int channels; + VipsKernel kernel; + sharp::Canvas canvas; + int position; + std::vector resizeBackground; + bool hasCropOffset; + int cropOffsetLeft; + int cropOffsetTop; + bool hasAttentionCenter; + int attentionX; + int attentionY; + bool premultiplied; + bool tileCentre; + bool fastShrinkOnLoad; + std::vector tint; + bool flatten; + std::vector flattenBackground; + bool unflatten; + bool negate; + bool negateAlpha; + double blurSigma; + VipsPrecision precision; + double minAmpl; + double brightness; + double saturation; + int hue; + double lightness; + int medianSize; + double sharpenSigma; + double sharpenM1; + double sharpenM2; + double sharpenX1; + double sharpenY2; + double sharpenY3; + int threshold; + bool thresholdGrayscale; + std::vector trimBackground; + double trimThreshold; + bool trimLineArt; + int trimOffsetLeft; + int trimOffsetTop; + int trimMargin; + std::vector linearA; + std::vector linearB; + int dilateWidth; + int erodeWidth; + double gamma; + double gammaOut; + bool greyscale; + bool normalise; + int normaliseLower; + int normaliseUpper; + int claheWidth; + int claheHeight; + int claheMaxSlope; + int angle; + double rotationAngle; + std::vector rotationBackground; + bool rotateBefore; + bool orientBefore; + bool flip; + bool flop; + int extendTop; + int extendBottom; + int extendLeft; + int extendRight; + std::vector extendBackground; + VipsExtend extendWith; + bool withoutEnlargement; + bool withoutReduction; + std::vector affineMatrix; + std::vector affineBackground; + double affineIdx; + double affineIdy; + double affineOdx; + double affineOdy; + std::string affineInterpolator; + int jpegQuality; + bool jpegProgressive; + std::string jpegChromaSubsampling; + bool jpegTrellisQuantisation; + int jpegQuantisationTable; + bool jpegOvershootDeringing; + bool jpegOptimiseScans; + bool jpegOptimiseCoding; + bool pngProgressive; + int pngCompressionLevel; + bool pngAdaptiveFiltering; + bool pngPalette; + int pngQuality; + int pngEffort; + int pngBitdepth; + double pngDither; + int jp2Quality; + bool jp2Lossless; + int jp2TileHeight; + int jp2TileWidth; + std::string jp2ChromaSubsampling; + int webpQuality; + int webpAlphaQuality; + bool webpNearLossless; + bool webpLossless; + bool webpSmartSubsample; + bool webpSmartDeblock; + VipsForeignWebpPreset webpPreset; + int webpEffort; + bool webpMinSize; + bool webpMixed; + bool webpExact; + int gifBitdepth; + int gifEffort; + double gifDither; + double gifInterFrameMaxError; + double gifInterPaletteMaxError; + bool gifKeepDuplicateFrames; + bool gifReuse; + bool gifProgressive; + int tiffQuality; + VipsForeignTiffCompression tiffCompression; + bool tiffBigtiff; + VipsForeignTiffPredictor tiffPredictor; + bool tiffPyramid; + int tiffBitdepth; + bool tiffMiniswhite; + bool tiffTile; + int tiffTileHeight; + int tiffTileWidth; + double tiffXres; + double tiffYres; + VipsForeignTiffResunit tiffResolutionUnit; + int heifQuality; + VipsForeignHeifCompression heifCompression; + int heifEffort; + std::string heifChromaSubsampling; + bool heifLossless; + int heifBitdepth; + std::string heifTune; + double jxlDistance; + int jxlDecodingTier; + int jxlEffort; + bool jxlLossless; + VipsBandFormat rawDepth; + std::string err; + bool errUseWarning; + int keepMetadata; + int withMetadataOrientation; + double withMetadataDensity; + std::string withIccProfile; + std::unordered_map withExif; + bool withExifMerge; + std::string withXmp; + bool withGainMap; + bool keepGainMap; + int timeoutSeconds; + std::vector convKernel; + int convKernelWidth; + int convKernelHeight; + double convKernelScale; + double convKernelOffset; + sharp::InputDescriptor *boolean; + VipsOperationBoolean booleanOp; + VipsOperationBoolean bandBoolOp; + int extractChannel; + bool removeAlpha; + double ensureAlpha; + VipsInterpretation colourspacePipeline; + VipsInterpretation colourspace; + std::vector delay; + int loop; + int tileSize; + int tileOverlap; + VipsForeignDzContainer tileContainer; + VipsForeignDzLayout tileLayout; + std::string tileFormat; + int tileAngle; + std::vector tileBackground; + int tileSkipBlanks; + VipsForeignDzDepth tileDepth; + std::string tileId; + std::string tileBasename; + std::vector recombMatrix; + + PipelineBaton(): + input(nullptr), + bufferOutLength(0), + pageHeightOut(0), + pagesOut(0), + typedArrayOut(false), + hasAlphaOut(false), + topOffsetPre(-1), + topOffsetPost(-1), + channels(0), + kernel(VIPS_KERNEL_LANCZOS3), + canvas(sharp::Canvas::CROP), + position(0), + resizeBackground{ 0.0, 0.0, 0.0, 255.0 }, + hasCropOffset(false), + cropOffsetLeft(0), + cropOffsetTop(0), + hasAttentionCenter(false), + attentionX(0), + attentionY(0), + premultiplied(false), + tint{ -1.0, 0.0, 0.0, 0.0 }, + flatten(false), + flattenBackground{ 0.0, 0.0, 0.0 }, + unflatten(false), + negate(false), + negateAlpha(true), + blurSigma(0.0), + brightness(1.0), + saturation(1.0), + hue(0), + lightness(0), + medianSize(0), + sharpenSigma(0.0), + sharpenM1(1.0), + sharpenM2(2.0), + sharpenX1(2.0), + sharpenY2(10.0), + sharpenY3(20.0), + threshold(0), + thresholdGrayscale(true), + trimBackground{}, + trimThreshold(-1.0), + trimLineArt(false), + trimOffsetLeft(0), + trimOffsetTop(0), + trimMargin(0), + linearA{}, + linearB{}, + dilateWidth(0), + erodeWidth(0), + gamma(0.0), + greyscale(false), + normalise(false), + normaliseLower(1), + normaliseUpper(99), + claheWidth(0), + claheHeight(0), + claheMaxSlope(3), + angle(0), + rotationAngle(0.0), + rotationBackground{ 0.0, 0.0, 0.0, 255.0 }, + flip(false), + flop(false), + extendTop(0), + extendBottom(0), + extendLeft(0), + extendRight(0), + extendBackground{ 0.0, 0.0, 0.0, 255.0 }, + extendWith(VIPS_EXTEND_BACKGROUND), + withoutEnlargement(false), + withoutReduction(false), + affineMatrix{ 1.0, 0.0, 0.0, 1.0 }, + affineBackground{ 0.0, 0.0, 0.0, 255.0 }, + affineIdx(0), + affineIdy(0), + affineOdx(0), + affineOdy(0), + affineInterpolator("bicubic"), + jpegQuality(80), + jpegProgressive(false), + jpegChromaSubsampling("4:2:0"), + jpegTrellisQuantisation(false), + jpegQuantisationTable(0), + jpegOvershootDeringing(false), + jpegOptimiseScans(false), + jpegOptimiseCoding(true), + pngProgressive(false), + pngCompressionLevel(6), + pngAdaptiveFiltering(false), + pngPalette(false), + pngQuality(100), + pngEffort(7), + pngBitdepth(8), + pngDither(1.0), + jp2Quality(80), + jp2Lossless(false), + jp2TileHeight(512), + jp2TileWidth(512), + jp2ChromaSubsampling("4:4:4"), + webpQuality(80), + webpAlphaQuality(100), + webpNearLossless(false), + webpLossless(false), + webpSmartSubsample(false), + webpSmartDeblock(false), + webpPreset(VIPS_FOREIGN_WEBP_PRESET_DEFAULT), + webpEffort(4), + webpMinSize(false), + webpMixed(false), + webpExact(false), + gifBitdepth(8), + gifEffort(7), + gifDither(1.0), + gifInterFrameMaxError(0.0), + gifInterPaletteMaxError(3.0), + gifKeepDuplicateFrames(false), + gifReuse(true), + gifProgressive(false), + tiffQuality(80), + tiffCompression(VIPS_FOREIGN_TIFF_COMPRESSION_JPEG), + tiffBigtiff(false), + tiffPredictor(VIPS_FOREIGN_TIFF_PREDICTOR_HORIZONTAL), + tiffPyramid(false), + tiffBitdepth(0), + tiffMiniswhite(false), + tiffTile(false), + tiffTileHeight(256), + tiffTileWidth(256), + tiffXres(1.0), + tiffYres(1.0), + tiffResolutionUnit(VIPS_FOREIGN_TIFF_RESUNIT_INCH), + heifQuality(50), + heifCompression(VIPS_FOREIGN_HEIF_COMPRESSION_AV1), + heifEffort(4), + heifChromaSubsampling("4:4:4"), + heifLossless(false), + heifBitdepth(8), + heifTune("auto"), + jxlDistance(1.0), + jxlDecodingTier(0), + jxlEffort(7), + jxlLossless(false), + rawDepth(VIPS_FORMAT_UCHAR), + errUseWarning(false), + keepMetadata(0), + withMetadataOrientation(-1), + withMetadataDensity(0.0), + withExifMerge(true), + withGainMap(false), + keepGainMap(false), + timeoutSeconds(0), + convKernelWidth(0), + convKernelHeight(0), + convKernelScale(0.0), + convKernelOffset(0.0), + boolean(nullptr), + booleanOp(VIPS_OPERATION_BOOLEAN_LAST), + bandBoolOp(VIPS_OPERATION_BOOLEAN_LAST), + extractChannel(-1), + removeAlpha(false), + ensureAlpha(-1.0), + colourspacePipeline(VIPS_INTERPRETATION_LAST), + colourspace(VIPS_INTERPRETATION_LAST), + loop(-1), + tileSize(256), + tileOverlap(0), + tileContainer(VIPS_FOREIGN_DZ_CONTAINER_FS), + tileLayout(VIPS_FOREIGN_DZ_LAYOUT_DZ), + tileAngle(0), + tileBackground{ 255.0, 255.0, 255.0, 255.0 }, + tileSkipBlanks(-1), + tileDepth(VIPS_FOREIGN_DZ_DEPTH_LAST) {} +}; + +#endif // SRC_PIPELINE_H_ diff --git a/apps/api/.output/node_modules/sharp/src/sharp.cc b/apps/api/.output/node_modules/sharp/src/sharp.cc new file mode 100644 index 0000000..7678975 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/sharp.cc @@ -0,0 +1,43 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include + +#include +#include + +#include "./common.h" +#include "./metadata.h" +#include "./pipeline.h" +#include "./stats.h" +#include "./utilities.h" + +Napi::Object init(Napi::Env env, Napi::Object exports) { + static std::once_flag sharp_vips_init_once; + std::call_once(sharp_vips_init_once, []() { + vips_init("sharp"); + }); + + g_log_set_handler("VIPS", static_cast(G_LOG_LEVEL_WARNING), + static_cast(sharp::VipsWarningCallback), nullptr); + + // Methods available to JavaScript + exports.Set("metadata", Napi::Function::New(env, metadata)); + exports.Set("pipeline", Napi::Function::New(env, pipeline)); + exports.Set("cache", Napi::Function::New(env, cache)); + exports.Set("concurrency", Napi::Function::New(env, concurrency)); + exports.Set("counters", Napi::Function::New(env, counters)); + exports.Set("simd", Napi::Function::New(env, simd)); + exports.Set("libvipsVersion", Napi::Function::New(env, libvipsVersion)); + exports.Set("format", Napi::Function::New(env, format)); + exports.Set("block", Napi::Function::New(env, block)); + exports.Set("_maxColourDistance", Napi::Function::New(env, _maxColourDistance)); + exports.Set("_isUsingJemalloc", Napi::Function::New(env, _isUsingJemalloc)); + exports.Set("_isUsingX64V2", Napi::Function::New(env, _isUsingX64V2)); + exports.Set("stats", Napi::Function::New(env, stats)); + return exports; +} + +NODE_API_MODULE(sharp, init) diff --git a/apps/api/.output/node_modules/sharp/src/stats.cc b/apps/api/.output/node_modules/sharp/src/stats.cc new file mode 100644 index 0000000..ad123fe --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/stats.cc @@ -0,0 +1,186 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include +#include + +#include +#include + +#include "./common.h" +#include "./stats.h" + +class StatsWorker : public Napi::AsyncWorker { + public: + StatsWorker(Napi::Function callback, StatsBaton *baton, Napi::Function debuglog) : + Napi::AsyncWorker(callback), baton(baton), debuglog(Napi::Persistent(debuglog)) {} + ~StatsWorker() {} + + const int STAT_MIN_INDEX = 0; + const int STAT_MAX_INDEX = 1; + const int STAT_SUM_INDEX = 2; + const int STAT_SQ_SUM_INDEX = 3; + const int STAT_MEAN_INDEX = 4; + const int STAT_STDEV_INDEX = 5; + const int STAT_MINX_INDEX = 6; + const int STAT_MINY_INDEX = 7; + const int STAT_MAXX_INDEX = 8; + const int STAT_MAXY_INDEX = 9; + + void Execute() { + // Decrement queued task counter + sharp::counterQueue--; + + vips::VImage image; + sharp::ImageType imageType = sharp::ImageType::UNKNOWN; + try { + std::tie(image, imageType) = OpenInput(baton->input); + } catch (std::runtime_error const &err) { + (baton->err).append(err.what()); + } + if (imageType != sharp::ImageType::UNKNOWN) { + try { + vips::VImage stats = image.stats(); + int const bands = image.bands(); + for (int b = 1; b <= bands; b++) { + ChannelStats cStats( + static_cast(stats.getpoint(STAT_MIN_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MAX_INDEX, b).front()), + stats.getpoint(STAT_SUM_INDEX, b).front(), + stats.getpoint(STAT_SQ_SUM_INDEX, b).front(), + stats.getpoint(STAT_MEAN_INDEX, b).front(), + stats.getpoint(STAT_STDEV_INDEX, b).front(), + static_cast(stats.getpoint(STAT_MINX_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MINY_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MAXX_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MAXY_INDEX, b).front())); + baton->channelStats.push_back(cStats); + } + // Image is not opaque when alpha layer is present and contains a non-mamixa value + if (image.has_alpha()) { + double const minAlpha = static_cast(stats.getpoint(STAT_MIN_INDEX, bands).front()); + if (minAlpha != vips_interpretation_max_alpha(image.interpretation())) { + baton->isOpaque = false; + } + } + // Convert to greyscale + vips::VImage greyscale = image.colourspace(VIPS_INTERPRETATION_B_W)[0]; + // Estimate entropy via histogram of greyscale value frequency + baton->entropy = std::abs(greyscale.hist_find().hist_entropy()); + // Estimate sharpness via standard deviation of greyscale laplacian + if (image.width() > 1 || image.height() > 1) { + VImage laplacian = VImage::new_matrixv(3, 3, + 0.0, 1.0, 0.0, + 1.0, -4.0, 1.0, + 0.0, 1.0, 0.0); + laplacian.set("scale", 9.0); + baton->sharpness = greyscale.conv(laplacian).deviate(); + } + // Most dominant sRGB colour via 4096-bin 3D histogram + vips::VImage hist = sharp::RemoveAlpha(image) + .colourspace(VIPS_INTERPRETATION_sRGB) + .hist_find_ndim(VImage::option()->set("bins", 16)); + std::complex maxpos = hist.maxpos(); + int const dx = static_cast(std::real(maxpos)); + int const dy = static_cast(std::imag(maxpos)); + std::vector pel = hist(dx, dy); + int const dz = std::distance(pel.begin(), std::find(pel.begin(), pel.end(), hist.max())); + baton->dominantRed = dx * 16 + 8; + baton->dominantGreen = dy * 16 + 8; + baton->dominantBlue = dz * 16 + 8; + } catch (std::runtime_error const &err) { + (baton->err).append(err.what()); + } + } + + // Clean up + vips_error_clear(); + vips_thread_shutdown(); + } + + void OnOK() { + Napi::Env env = Env(); + Napi::HandleScope scope(env); + + // Handle warnings + std::string warning = sharp::VipsWarningPop(); + while (!warning.empty()) { + debuglog.SHARP_CALLBACK_FN_NAME(Receiver().Value(), { Napi::String::New(env, warning) }); + warning = sharp::VipsWarningPop(); + } + if (baton->err.empty()) { + // Stats Object + Napi::Object info = Napi::Object::New(env); + Napi::Array channels = Napi::Array::New(env); + + std::vector::iterator it; + int i = 0; + for (it = baton->channelStats.begin(); it < baton->channelStats.end(); it++, i++) { + Napi::Object channelStat = Napi::Object::New(env); + channelStat.Set("min", it->min); + channelStat.Set("max", it->max); + channelStat.Set("sum", it->sum); + channelStat.Set("squaresSum", it->squaresSum); + channelStat.Set("mean", it->mean); + channelStat.Set("stdev", it->stdev); + channelStat.Set("minX", it->minX); + channelStat.Set("minY", it->minY); + channelStat.Set("maxX", it->maxX); + channelStat.Set("maxY", it->maxY); + channels.Set(i, channelStat); + } + + info.Set("channels", channels); + info.Set("isOpaque", baton->isOpaque); + info.Set("entropy", baton->entropy); + info.Set("sharpness", baton->sharpness); + Napi::Object dominant = Napi::Object::New(env); + dominant.Set("r", baton->dominantRed); + dominant.Set("g", baton->dominantGreen); + dominant.Set("b", baton->dominantBlue); + info.Set("dominant", dominant); + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), { env.Null(), info }); + } else { + Callback().SHARP_CALLBACK_FN_NAME(Receiver().Value(), + { Napi::Error::New(env, sharp::TrimEnd(baton->err)).Value() }); + } + + delete baton->input; + delete baton; + } + + private: + StatsBaton* baton; + Napi::FunctionReference debuglog; +}; + +/* + stats(options, callback) +*/ +Napi::Value stats(const Napi::CallbackInfo& info) { + // V8 objects are converted to non-V8 types held in the baton struct + StatsBaton *baton = new StatsBaton; + Napi::Object options = info[size_t(0)].As(); + + // Input + baton->input = sharp::CreateInputDescriptor(options.Get("input").As()); + baton->input->access = VIPS_ACCESS_RANDOM; + + // Function to notify of libvips warnings + Napi::Function debuglog = options.Get("debuglog").As(); + + // Join queue for worker thread + Napi::Function callback = info[size_t(1)].As(); + StatsWorker *worker = new StatsWorker(callback, baton, debuglog); + worker->Receiver().Set("options", options); + worker->Queue(); + + // Increment queued task counter + sharp::counterQueue++; + + return info.Env().Undefined(); +} diff --git a/apps/api/.output/node_modules/sharp/src/stats.h b/apps/api/.output/node_modules/sharp/src/stats.h new file mode 100644 index 0000000..88e13c6 --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/stats.h @@ -0,0 +1,62 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_STATS_H_ +#define SRC_STATS_H_ + +#include +#include +#include + +#include "./common.h" + +struct ChannelStats { + // stats per channel + int min; + int max; + double sum; + double squaresSum; + double mean; + double stdev; + int minX; + int minY; + int maxX; + int maxY; + + ChannelStats(int minVal, int maxVal, double sumVal, double squaresSumVal, + double meanVal, double stdevVal, int minXVal, int minYVal, int maxXVal, int maxYVal): + min(minVal), max(maxVal), sum(sumVal), squaresSum(squaresSumVal), // NOLINT(build/include_what_you_use) + mean(meanVal), stdev(stdevVal), minX(minXVal), minY(minYVal), maxX(maxXVal), maxY(maxYVal) {} +}; + +struct StatsBaton { + // Input + sharp::InputDescriptor *input; + + // Output + std::vector channelStats; + bool isOpaque; + double entropy; + double sharpness; + int dominantRed; + int dominantGreen; + int dominantBlue; + + std::string err; + + StatsBaton(): + input(nullptr), + isOpaque(true), + entropy(0.0), + sharpness(0.0), + dominantRed(0), + dominantGreen(0), + dominantBlue(0) + {} +}; + +Napi::Value stats(const Napi::CallbackInfo& info); + +#endif // SRC_STATS_H_ diff --git a/apps/api/.output/node_modules/sharp/src/utilities.cc b/apps/api/.output/node_modules/sharp/src/utilities.cc new file mode 100644 index 0000000..8f5cb5b --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/utilities.cc @@ -0,0 +1,289 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include + +#include +#include +#include + +#include "./common.h" +#include "./operations.h" +#include "./utilities.h" + +/* + Get and set cache limits +*/ +Napi::Value cache(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + + // Set memory limit + if (info[size_t(0)].IsNumber()) { + vips_cache_set_max_mem(static_cast(info[size_t(0)].As().Uint32Value()) * 1048576); + } + // Set file limit + if (info[size_t(1)].IsNumber()) { + vips_cache_set_max_files(info[size_t(1)].As().Uint32Value()); + } + // Set items limit + if (info[size_t(2)].IsNumber()) { + vips_cache_set_max(info[size_t(2)].As().Uint32Value()); + } + + // Get memory stats + Napi::Object memory = Napi::Object::New(env); + memory.Set("current", round(vips_tracked_get_mem() / 1048576)); + memory.Set("high", round(vips_tracked_get_mem_highwater() / 1048576)); + memory.Set("max", round(vips_cache_get_max_mem() / 1048576)); + // Get file stats + Napi::Object files = Napi::Object::New(env); + files.Set("current", vips_tracked_get_files()); + files.Set("max", vips_cache_get_max_files()); + + // Get item stats + Napi::Object items = Napi::Object::New(env); + items.Set("current", vips_cache_get_size()); + items.Set("max", vips_cache_get_max()); + + Napi::Object cache = Napi::Object::New(env); + cache.Set("memory", memory); + cache.Set("files", files); + cache.Set("items", items); + return cache; +} + +/* + Get and set size of thread pool +*/ +Napi::Value concurrency(const Napi::CallbackInfo& info) { + // Set concurrency + if (info[size_t(0)].IsNumber()) { + vips_concurrency_set(info[size_t(0)].As().Int32Value()); + } + // Get concurrency + return Napi::Number::New(info.Env(), vips_concurrency_get()); +} + +/* + Get internal counters (queued tasks, processing tasks) +*/ +Napi::Value counters(const Napi::CallbackInfo& info) { + Napi::Object counters = Napi::Object::New(info.Env()); + counters.Set("queue", static_cast(sharp::counterQueue)); + counters.Set("process", static_cast(sharp::counterProcess)); + return counters; +} + +/* + Get and set use of SIMD vector unit instructions +*/ +Napi::Value simd(const Napi::CallbackInfo& info) { + // Set state + if (info[size_t(0)].IsBoolean()) { + vips_vector_set_enabled(info[size_t(0)].As().Value()); + } + // Get state + return Napi::Boolean::New(info.Env(), vips_vector_isenabled()); +} + +/* + Get libvips version +*/ +Napi::Value libvipsVersion(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::Object version = Napi::Object::New(env); + + char semver[9]; + std::snprintf(semver, sizeof(semver), "%d.%d.%d", vips_version(0), vips_version(1), vips_version(2)); + version.Set("semver", Napi::String::New(env, semver)); +#ifdef SHARP_USE_GLOBAL_LIBVIPS + version.Set("isGlobal", Napi::Boolean::New(env, true)); +#else + version.Set("isGlobal", Napi::Boolean::New(env, false)); +#endif +#ifdef __EMSCRIPTEN__ + version.Set("isWasm", Napi::Boolean::New(env, true)); +#else + version.Set("isWasm", Napi::Boolean::New(env, false)); +#endif + return version; +} + +/* + Get available input/output file/buffer/stream formats +*/ +Napi::Value format(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::Object format = Napi::Object::New(env); + for (std::string const f : { + "jpeg", "png", "webp", "tiff", "magick", "openslide", "dz", + "ppm", "fits", "gif", "svg", "heif", "pdf", "vips", "jp2k", "jxl", "rad", "dcraw" + }) { + std::string id = f == "jp2k" ? "jp2" : f; + // Input + const VipsObjectClass *oc = vips_class_find("VipsOperation", (f + "load").c_str()); + Napi::Boolean hasInputFile = Napi::Boolean::New(env, oc); + Napi::Boolean hasInputBuffer = + Napi::Boolean::New(env, vips_type_find("VipsOperation", (f + "load_buffer").c_str())); + Napi::Object input = Napi::Object::New(env); + input.Set("file", hasInputFile); + input.Set("buffer", hasInputBuffer); + input.Set("stream", hasInputBuffer); + if (oc) { + const VipsForeignClass *fc = VIPS_FOREIGN_CLASS(oc); + if (fc->suffs) { + Napi::Array fileSuffix = Napi::Array::New(env); + const char **suffix = fc->suffs; + for (int i = 0; *suffix; i++, suffix++) { + fileSuffix.Set(i, Napi::String::New(env, *suffix)); + } + input.Set("fileSuffix", fileSuffix); + } + } + // Output + Napi::Boolean hasOutputFile = + Napi::Boolean::New(env, vips_type_find("VipsOperation", (f + "save").c_str())); + Napi::Boolean hasOutputBuffer = + Napi::Boolean::New(env, vips_type_find("VipsOperation", (f + "save_buffer").c_str())); + Napi::Object output = Napi::Object::New(env); + output.Set("file", hasOutputFile); + output.Set("buffer", hasOutputBuffer); + output.Set("stream", hasOutputBuffer); + // Other attributes + Napi::Object container = Napi::Object::New(env); + container.Set("id", id); + container.Set("input", input); + container.Set("output", output); + // Add to set of formats + format.Set(id, container); + } + + // Raw, uncompressed data + Napi::Boolean supported = Napi::Boolean::New(env, true); + Napi::Boolean unsupported = Napi::Boolean::New(env, false); + Napi::Object rawInput = Napi::Object::New(env); + rawInput.Set("file", unsupported); + rawInput.Set("buffer", supported); + rawInput.Set("stream", supported); + Napi::Object rawOutput = Napi::Object::New(env); + rawOutput.Set("file", unsupported); + rawOutput.Set("buffer", supported); + rawOutput.Set("stream", supported); + Napi::Object raw = Napi::Object::New(env); + raw.Set("id", "raw"); + raw.Set("input", rawInput); + raw.Set("output", rawOutput); + format.Set("raw", raw); + + return format; +} + +/* + (Un)block libvips operations at runtime. +*/ +void block(const Napi::CallbackInfo& info) { + Napi::Array ops = info[size_t(0)].As(); + bool const state = info[size_t(1)].As().Value(); + for (unsigned int i = 0; i < ops.Length(); i++) { + vips_operation_block_set(ops.Get(i).As().Utf8Value().c_str(), state); + } +} + +/* + Synchronous, internal-only method used by some of the functional tests. + Calculates the maximum colour distance using the DE2000 algorithm + between two images of the same dimensions and number of channels. +*/ +Napi::Value _maxColourDistance(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + + // Open input files + VImage image1; + sharp::ImageType imageType1 = sharp::DetermineImageType(info[size_t(0)].As().Utf8Value().data()); + if (imageType1 != sharp::ImageType::UNKNOWN) { + try { + image1 = VImage::new_from_file(info[size_t(0)].As().Utf8Value().c_str()); + } catch (...) { + throw Napi::Error::New(env, "Input file 1 has corrupt header"); + } + } else { + throw Napi::Error::New(env, "Input file 1 is of an unsupported image format"); + } + VImage image2; + sharp::ImageType imageType2 = sharp::DetermineImageType(info[size_t(1)].As().Utf8Value().data()); + if (imageType2 != sharp::ImageType::UNKNOWN) { + try { + image2 = VImage::new_from_file(info[size_t(1)].As().Utf8Value().c_str()); + } catch (...) { + throw Napi::Error::New(env, "Input file 2 has corrupt header"); + } + } else { + throw Napi::Error::New(env, "Input file 2 is of an unsupported image format"); + } + // Ensure same number of channels + if (image1.bands() != image2.bands()) { + throw Napi::Error::New(env, "mismatchedBands"); + } + // Ensure same dimensions + if (image1.width() != image2.width() || image1.height() != image2.height()) { + throw Napi::Error::New(env, "mismatchedDimensions"); + } + + double maxColourDistance; + try { + // Premultiply and remove alpha + if (image1.has_alpha()) { + image1 = image1.premultiply().extract_band(1, VImage::option()->set("n", image1.bands() - 1)); + } + if (image2.has_alpha()) { + image2 = image2.premultiply().extract_band(1, VImage::option()->set("n", image2.bands() - 1)); + } + // Calculate colour distance + maxColourDistance = image1.dE00(image2).max(); + } catch (std::runtime_error const &err) { + throw Napi::Error::New(env, err.what()); + } + + // Clean up libvips' per-request data and threads + vips_error_clear(); + vips_thread_shutdown(); + + return Napi::Number::New(env, maxColourDistance); +} + +#if defined(__GNUC__) +// mallctl will be resolved by the runtime linker when jemalloc is being used +extern "C" { + int mallctl(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen) __attribute__((weak)); +} +Napi::Value _isUsingJemalloc(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + return Napi::Boolean::New(env, mallctl != nullptr); +} +#else +Napi::Value _isUsingJemalloc(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + return Napi::Boolean::New(env, false); +} +#endif + +#if defined(__GNUC__) && defined(__x86_64__) +// Are SSE 4.2 intrinsics available at runtime? +Napi::Value _isUsingX64V2(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + unsigned int eax, ebx, ecx, edx; + __asm__ __volatile__("cpuid" + : "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx) + : "a"(1)); + return Napi::Boolean::New(env, (ecx & 1U << 20) != 0); +} +#else +Napi::Value _isUsingX64V2(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + return Napi::Boolean::New(env, false); +} +#endif diff --git a/apps/api/.output/node_modules/sharp/src/utilities.h b/apps/api/.output/node_modules/sharp/src/utilities.h new file mode 100644 index 0000000..a1719fa --- /dev/null +++ b/apps/api/.output/node_modules/sharp/src/utilities.h @@ -0,0 +1,22 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_UTILITIES_H_ +#define SRC_UTILITIES_H_ + +#include + +Napi::Value cache(const Napi::CallbackInfo& info); +Napi::Value concurrency(const Napi::CallbackInfo& info); +Napi::Value counters(const Napi::CallbackInfo& info); +Napi::Value simd(const Napi::CallbackInfo& info); +Napi::Value libvipsVersion(const Napi::CallbackInfo& info); +Napi::Value format(const Napi::CallbackInfo& info); +void block(const Napi::CallbackInfo& info); +Napi::Value _maxColourDistance(const Napi::CallbackInfo& info); +Napi::Value _isUsingJemalloc(const Napi::CallbackInfo& info); +Napi::Value _isUsingX64V2(const Napi::CallbackInfo& info); + +#endif // SRC_UTILITIES_H_ diff --git a/apps/api/.output/package.json b/apps/api/.output/package.json new file mode 100644 index 0000000..e986b24 --- /dev/null +++ b/apps/api/.output/package.json @@ -0,0 +1,4 @@ +{ + "private": true, + "type": "module" +} diff --git a/apps/api/dist/app.module.js b/apps/api/dist/app.module.js new file mode 100644 index 0000000..7ca9817 --- /dev/null +++ b/apps/api/dist/app.module.js @@ -0,0 +1,69 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { Controller, Get, Module } from "@nestjs/common"; +import { APP_FILTER, APP_GUARD } from "@nestjs/core"; +import { ThrottlerGuard, ThrottlerModule } from "@nestjs/throttler"; +import { AuthModule } from "./auth/auth.controller.js"; +import { CatalogModule } from "./catalog/catalog.module.js"; +import { CommonModule } from "./common/common.module.js"; +import { PrismaExceptionFilter } from "./common/prisma-exception.filter.js"; +import { ContactModule } from "./contact/contact.module.js"; +import { DashboardModule } from "./dashboard/dashboard.module.js"; +import { MediaModule } from "./media/media.controller.js"; +import { PrismaModule, PrismaService } from "./prisma/prisma.service.js"; +import { PublicModule } from "./public/public.module.js"; +import { SectionsModule } from "./sections/sections.module.js"; +import { UsersModule } from "./users/users.controller.js"; +let HealthController = class HealthController { + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async health() { + await this.prisma.$queryRaw `SELECT 1`; + return { ok: true }; + } +}; +__decorate([ + Get(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", Promise) +], HealthController.prototype, "health", null); +HealthController = __decorate([ + Controller("health"), + __metadata("design:paramtypes", [PrismaService]) +], HealthController); +let AppModule = class AppModule { +}; +AppModule = __decorate([ + Module({ + imports: [ + ThrottlerModule.forRoot([{ ttl: 60_000, limit: 300 }]), + PrismaModule, + CommonModule, + AuthModule, + UsersModule, + MediaModule, + CatalogModule, + SectionsModule, + ContactModule, + PublicModule, + DashboardModule, + ], + controllers: [HealthController], + providers: [ + { provide: APP_GUARD, useClass: ThrottlerGuard }, + { provide: APP_FILTER, useClass: PrismaExceptionFilter }, + ], + }) +], AppModule); +export { AppModule }; +//# sourceMappingURL=app.module.js.map \ No newline at end of file diff --git a/apps/api/dist/app.module.js.map b/apps/api/dist/app.module.js.map new file mode 100644 index 0000000..a5e4fb9 --- /dev/null +++ b/apps/api/dist/app.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,IACM,gBAAgB,GADtB,MACM,gBAAgB;IACS;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAGhD,AAAN,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA,UAAU,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;CACF,CAAA;AAJO;IADL,GAAG,EAAE;;;;8CAIL;AAPG,gBAAgB;IADrB,UAAU,CAAC,QAAQ,CAAC;qCAEkB,aAAa;GAD9C,gBAAgB,CAQrB;AAuBM,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IArBrB,MAAM,CAAC;QACN,OAAO,EAAE;YAEP,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,YAAY;YACZ,YAAY;YACZ,UAAU;YACV,WAAW;YACX,WAAW;YACX,aAAa;YACb,cAAc;YACd,aAAa;YACb,YAAY;YACZ,eAAe;SAChB;QACD,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE;YAChD,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,qBAAqB,EAAE;SACzD;KACF,CAAC;GACW,SAAS,CAAG"} \ No newline at end of file diff --git a/apps/api/dist/auth/auth.controller.js b/apps/api/dist/auth/auth.controller.js new file mode 100644 index 0000000..7feda58 --- /dev/null +++ b/apps/api/dist/auth/auth.controller.js @@ -0,0 +1,133 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { Body, Controller, Get, HttpCode, Module, Post, Req, Res } from "@nestjs/common"; +import { JwtModule } from "@nestjs/jwt"; +import { Throttle } from "@nestjs/throttler"; +import { changePasswordSchema, loginSchema, } from "@imen/shared"; +import { env, isProd } from "../config/env.js"; +import { AdminAuth, CurrentUser } from "../common/auth.js"; +import { ZodPipe } from "../common/zod.pipe.js"; +import { AuthService } from "./auth.service.js"; +const COOKIE = "imen_rt"; +const COOKIE_PATH = "/api/admin/auth"; +const ua = (req) => req.headers["user-agent"] ?? ""; +const readCookie = (req) => req.cookies?.[COOKIE]; +let AuthController = class AuthController { + auth; + constructor(auth) { + this.auth = auth; + } + async login(body, req, res) { + return this.respond(res, await this.auth.login(body, ua(req))); + } + async refresh(req, res) { + try { + return this.respond(res, await this.auth.refresh(readCookie(req), ua(req))); + } + catch (e) { + res.clearCookie(COOKIE, { path: COOKIE_PATH }); + throw e; + } + } + async logout(req, res) { + await this.auth.logout(readCookie(req)); + res.clearCookie(COOKIE, { path: COOKIE_PATH }); + } + me(user) { + return this.auth.me(user.id); + } + async changePassword(body, user) { + await this.auth.changePassword(user.id, body); + } + respond(res, t) { + res.cookie(COOKIE, t.refreshToken, { + httpOnly: true, + secure: isProd && env.COOKIE_SECURE, + sameSite: "strict", + path: COOKIE_PATH, + expires: t.refreshExpiresAt, + }); + return { accessToken: t.accessToken, user: t.user }; + } +}; +__decorate([ + Post("login"), + HttpCode(200), + Throttle({ default: { limit: 8, ttl: 60_000 } }), + __param(0, Body(new ZodPipe(loginSchema))), + __param(1, Req()), + __param(2, Res({ passthrough: true })), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object, Object]), + __metadata("design:returntype", Promise) +], AuthController.prototype, "login", null); +__decorate([ + Post("refresh"), + HttpCode(200), + Throttle({ default: { limit: 30, ttl: 60_000 } }), + __param(0, Req()), + __param(1, Res({ passthrough: true })), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", Promise) +], AuthController.prototype, "refresh", null); +__decorate([ + Post("logout"), + HttpCode(204), + __param(0, Req()), + __param(1, Res({ passthrough: true })), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", Promise) +], AuthController.prototype, "logout", null); +__decorate([ + Get("me"), + AdminAuth(), + __param(0, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], AuthController.prototype, "me", null); +__decorate([ + Post("change-password"), + HttpCode(204), + AdminAuth(), + __param(0, Body(new ZodPipe(changePasswordSchema))), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", Promise) +], AuthController.prototype, "changePassword", null); +AuthController = __decorate([ + Controller("admin/auth"), + __metadata("design:paramtypes", [AuthService]) +], AuthController); +export { AuthController }; +let AuthModule = class AuthModule { +}; +AuthModule = __decorate([ + Module({ + imports: [ + JwtModule.register({ + global: true, + secret: env.JWT_SECRET, + signOptions: { expiresIn: env.JWT_ACCESS_TTL }, + }), + ], + controllers: [AuthController], + providers: [AuthService], + exports: [AuthService], + }) +], AuthModule); +export { AuthModule }; +//# sourceMappingURL=auth.controller.js.map \ No newline at end of file diff --git a/apps/api/dist/auth/auth.controller.js.map b/apps/api/dist/auth/auth.controller.js.map new file mode 100644 index 0000000..055376a --- /dev/null +++ b/apps/api/dist/auth/auth.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/auth/auth.service.js b/apps/api/dist/auth/auth.service.js new file mode 100644 index 0000000..8ad9e5c --- /dev/null +++ b/apps/api/dist/auth/auth.service.js @@ -0,0 +1,127 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { createHash, randomBytes } from "node:crypto"; +import { BadRequestException, Injectable, UnauthorizedException } from "@nestjs/common"; +import { JwtService } from "@nestjs/jwt"; +import { hash, verify } from "@node-rs/argon2"; +import { env } from "../config/env.js"; +import { AuditService } from "../common/common.module.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +export const hashPassword = (password) => hash(password); +const sha256 = (v) => createHash("sha256").update(v).digest("hex"); +export const toUserDto = (u) => ({ + id: u.id, + phone: u.phone, + name: u.name, + role: u.role, + isActive: u.isActive, + lastLoginAt: u.lastLoginAt?.toISOString() ?? null, + createdAt: u.createdAt.toISOString(), +}); +const INVALID_LOGIN = "شماره موبایل یا رمز عبور اشتباه است"; +const DUMMY_HASH = hashPassword(randomBytes(16).toString("hex")); +let AuthService = class AuthService { + prisma; + jwt; + audit; + constructor(prisma, jwt, audit) { + this.prisma = prisma; + this.jwt = jwt; + this.audit = audit; + } + async login(input, userAgent) { + const user = await this.prisma.adminUser.findUnique({ where: { phone: input.phone } }); + const ok = await verify(user?.passwordHash ?? (await DUMMY_HASH), input.password).catch(() => false); + if (!user || !ok || !user.isActive) + throw new UnauthorizedException(INVALID_LOGIN); + const updated = await this.prisma.adminUser.update({ + where: { id: user.id }, + data: { lastLoginAt: new Date() }, + }); + this.audit.log(user.id, "login", "user", user.id, user.phone); + return this.issue(updated, userAgent); + } + async refresh(token, userAgent) { + if (!token) + throw new UnauthorizedException("نشست شما منقضی شده است"); + const stored = await this.prisma.refreshToken.findUnique({ + where: { tokenHash: sha256(token) }, + include: { user: true }, + }); + if (!stored) + throw new UnauthorizedException("نشست شما منقضی شده است"); + if (stored.revokedAt) { + await this.revokeAll(stored.userId); + throw new UnauthorizedException("نشست شما منقضی شده است"); + } + if (stored.expiresAt < new Date() || !stored.user.isActive) { + throw new UnauthorizedException("نشست شما منقضی شده است"); + } + await this.prisma.refreshToken.update({ + where: { id: stored.id }, + data: { revokedAt: new Date() }, + }); + return this.issue(stored.user, userAgent); + } + async logout(token) { + if (!token) + return; + await this.prisma.refreshToken.updateMany({ + where: { tokenHash: sha256(token), revokedAt: null }, + data: { revokedAt: new Date() }, + }); + } + async changePassword(userId, input) { + const user = await this.prisma.adminUser.findUniqueOrThrow({ where: { id: userId } }); + if (!(await verify(user.passwordHash, input.currentPassword).catch(() => false))) { + throw new BadRequestException("رمز عبور فعلی اشتباه است"); + } + await this.prisma.adminUser.update({ + where: { id: userId }, + data: { passwordHash: await hashPassword(input.newPassword) }, + }); + this.audit.log(userId, "change-password", "user", userId, user.phone); + } + async me(userId) { + return toUserDto(await this.prisma.adminUser.findUniqueOrThrow({ where: { id: userId } })); + } + revokeAll(userId) { + return this.prisma.refreshToken.updateMany({ + where: { userId, revokedAt: null }, + data: { revokedAt: new Date() }, + }); + } + async issue(user, userAgent) { + const payload = { sub: user.id, role: user.role }; + const accessToken = await this.jwt.signAsync(payload); + const refreshToken = randomBytes(48).toString("base64url"); + const refreshExpiresAt = new Date(Date.now() + env.REFRESH_TTL_DAYS * 86_400_000); + await this.prisma.refreshToken.create({ + data: { + userId: user.id, + tokenHash: sha256(refreshToken), + expiresAt: refreshExpiresAt, + userAgent: userAgent.slice(0, 300), + }, + }); + void this.prisma.refreshToken + .deleteMany({ where: { expiresAt: { lt: new Date(Date.now() - 86_400_000) } } }) + .catch(() => undefined); + return { accessToken, refreshToken, refreshExpiresAt, user: toUserDto(user) }; + } +}; +AuthService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + JwtService, + AuditService]) +], AuthService); +export { AuthService }; +//# sourceMappingURL=auth.service.js.map \ No newline at end of file diff --git a/apps/api/dist/auth/auth.service.js.map b/apps/api/dist/auth/auth.service.js.map new file mode 100644 index 0000000..e0a94be --- /dev/null +++ b/apps/api/dist/auth/auth.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/catalog/catalog.module.js b/apps/api/dist/catalog/catalog.module.js new file mode 100644 index 0000000..511dc7f --- /dev/null +++ b/apps/api/dist/catalog/catalog.module.js @@ -0,0 +1,214 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { Body, Controller, Delete, Get, HttpCode, Module, Param, Patch, Post, Put, Query, } from "@nestjs/common"; +import { categoryInputSchema, productInputSchema, productListQuerySchema, reorderSchema, } from "@imen/shared"; +import { z } from "zod"; +import { AdminAuth, CurrentUser, Roles } from "../common/auth.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import { MediaModule } from "../media/media.controller.js"; +import { CategoriesService } from "./categories.service.js"; +import { ProductsService } from "./products.service.js"; +const publishSchema = z.object({ isPublished: z.boolean() }); +let CategoriesController = class CategoriesController { + categories; + constructor(categories) { + this.categories = categories; + } + list() { + return this.categories.list(); + } + get(id) { + return this.categories.get(id); + } + create(body, user) { + return this.categories.create(body, user.id); + } + async reorder(body, user) { + await this.categories.reorder(body.ids, user.id); + } + update(id, body, user) { + return this.categories.update(id, body, user.id); + } + async remove(id, user) { + await this.categories.remove(id, user.id); + } +}; +__decorate([ + Get(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], CategoriesController.prototype, "list", null); +__decorate([ + Get(":id"), + __param(0, Param("id", IdPipe)), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number]), + __metadata("design:returntype", void 0) +], CategoriesController.prototype, "get", null); +__decorate([ + Post(), + __param(0, Body(new ZodPipe(categoryInputSchema))), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) +], CategoriesController.prototype, "create", null); +__decorate([ + Post("reorder"), + HttpCode(204), + __param(0, Body(new ZodPipe(reorderSchema))), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", Promise) +], CategoriesController.prototype, "reorder", null); +__decorate([ + Put(":id"), + __param(0, Param("id", IdPipe)), + __param(1, Body(new ZodPipe(categoryInputSchema))), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object, Object]), + __metadata("design:returntype", void 0) +], CategoriesController.prototype, "update", null); +__decorate([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param(0, Param("id", IdPipe)), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object]), + __metadata("design:returntype", Promise) +], CategoriesController.prototype, "remove", null); +CategoriesController = __decorate([ + AdminAuth(), + Controller("admin/categories"), + __metadata("design:paramtypes", [CategoriesService]) +], CategoriesController); +export { CategoriesController }; +let ProductsController = class ProductsController { + products; + constructor(products) { + this.products = products; + } + list(q) { + return this.products.list(q); + } + get(id) { + return this.products.get(id); + } + create(body, user) { + return this.products.create(body, user.id); + } + async reorder(body, user) { + await this.products.reorder(body.ids, user.id); + } + duplicate(id, user) { + return this.products.duplicate(id, user.id); + } + publish(id, body, user) { + return this.products.setPublished(id, body.isPublished, user.id); + } + update(id, body, user) { + return this.products.update(id, body, user.id); + } + async remove(id, user) { + await this.products.remove(id, user.id); + } +}; +__decorate([ + Get(), + __param(0, Query(new ZodPipe(productListQuerySchema))), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], ProductsController.prototype, "list", null); +__decorate([ + Get(":id"), + __param(0, Param("id", IdPipe)), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number]), + __metadata("design:returntype", void 0) +], ProductsController.prototype, "get", null); +__decorate([ + Post(), + __param(0, Body(new ZodPipe(productInputSchema))), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) +], ProductsController.prototype, "create", null); +__decorate([ + Post("reorder"), + HttpCode(204), + __param(0, Body(new ZodPipe(reorderSchema))), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", Promise) +], ProductsController.prototype, "reorder", null); +__decorate([ + Post(":id/duplicate"), + __param(0, Param("id", IdPipe)), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object]), + __metadata("design:returntype", void 0) +], ProductsController.prototype, "duplicate", null); +__decorate([ + Patch(":id/publish"), + __param(0, Param("id", IdPipe)), + __param(1, Body(new ZodPipe(publishSchema))), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object, Object]), + __metadata("design:returntype", void 0) +], ProductsController.prototype, "publish", null); +__decorate([ + Put(":id"), + __param(0, Param("id", IdPipe)), + __param(1, Body(new ZodPipe(productInputSchema))), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object, Object]), + __metadata("design:returntype", void 0) +], ProductsController.prototype, "update", null); +__decorate([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param(0, Param("id", IdPipe)), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object]), + __metadata("design:returntype", Promise) +], ProductsController.prototype, "remove", null); +ProductsController = __decorate([ + AdminAuth(), + Controller("admin/products"), + __metadata("design:paramtypes", [ProductsService]) +], ProductsController); +export { ProductsController }; +let CatalogModule = class CatalogModule { +}; +CatalogModule = __decorate([ + Module({ + imports: [MediaModule], + controllers: [CategoriesController, ProductsController], + providers: [CategoriesService, ProductsService], + }) +], CatalogModule); +export { CatalogModule }; +//# sourceMappingURL=catalog.module.js.map \ No newline at end of file diff --git a/apps/api/dist/catalog/catalog.module.js.map b/apps/api/dist/catalog/catalog.module.js.map new file mode 100644 index 0000000..d27ce15 --- /dev/null +++ b/apps/api/dist/catalog/catalog.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catalog.module.js","sourceRoot":"","sources":["../../src/catalog/catalog.module.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/catalog/categories.service.js b/apps/api/dist/catalog/categories.service.js new file mode 100644 index 0000000..4163fc5 --- /dev/null +++ b/apps/api/dist/catalog/categories.service.js @@ -0,0 +1,133 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { ConflictException, Injectable } from "@nestjs/common"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import { MediaService } from "../media/media.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +const withCover = { coverImage: true }; +let CategoriesService = class CategoriesService { + prisma; + media; + audit; + revalidate; + constructor(prisma, media, audit, revalidate) { + this.prisma = prisma; + this.media = media; + this.audit = audit; + this.revalidate = revalidate; + } + async list() { + const rows = await this.prisma.category.findMany({ + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { ...withCover, _count: { select: { products: true, groups: true } } }, + }); + return rows.map(({ coverImage, _count, ...c }) => ({ + ...c, + coverImage: coverImage && this.media.toDto(coverImage), + productCount: _count.products, + groupCount: _count.groups, + })); + } + async get(id) { + const { coverImage, ...c } = await this.prisma.category.findUniqueOrThrow({ + where: { id }, + include: { + ...withCover, + groups: { + orderBy: { sortOrder: "asc" }, + include: { _count: { select: { products: true } } }, + }, + }, + }); + return { + ...c, + coverImage: coverImage && this.media.toDto(coverImage), + groups: c.groups.map(({ _count, ...g }) => ({ ...g, productCount: _count.products })), + }; + } + async create(input, userId) { + this.assertUniqueGroupSlugs(input); + const { groups, ...data } = input; + const last = await this.prisma.category.aggregate({ _max: { sortOrder: true } }); + const category = await this.prisma.category.create({ + data: { + ...data, + sortOrder: (last._max.sortOrder ?? -1) + 1, + groups: { + create: groups.map((g, i) => ({ slug: g.slug, name: g.name, desc: g.desc, sortOrder: i })), + }, + }, + }); + this.audit.log(userId, "create", "category", category.id, category.name); + this.revalidate.trigger(); + return this.get(category.id); + } + async update(id, input, userId) { + this.assertUniqueGroupSlugs(input); + const { groups, ...data } = input; + await this.prisma.$transaction(async (tx) => { + const category = await tx.category.update({ where: { id }, data }); + const keepIds = groups.flatMap((g) => (g.id ? [g.id] : [])); + await tx.productGroup.deleteMany({ where: { categoryId: id, id: { notIn: keepIds } } }); + for (const g of groups) { + if (g.id) { + await tx.productGroup.update({ + where: { id: g.id, categoryId: id }, + data: { slug: `__tmp-${g.id}` }, + }); + } + } + for (const [i, g] of groups.entries()) { + const fields = { slug: g.slug, name: g.name, desc: g.desc, sortOrder: i }; + if (g.id) { + await tx.productGroup.update({ where: { id: g.id, categoryId: id }, data: fields }); + } + else { + await tx.productGroup.create({ data: { ...fields, categoryId: id } }); + } + } + this.audit.log(userId, "update", "category", id, category.name); + }); + this.revalidate.trigger(); + return this.get(id); + } + async remove(id, userId) { + const category = await this.prisma.category.findUniqueOrThrow({ + where: { id }, + include: { _count: { select: { products: true } } }, + }); + if (category._count.products > 0) { + throw new ConflictException(`این دسته ${category._count.products} محصول دارد؛ ابتدا محصولات را حذف یا جابه‌جا کنید`); + } + await this.prisma.category.delete({ where: { id } }); + this.audit.log(userId, "delete", "category", id, category.name); + this.revalidate.trigger(); + } + async reorder(ids, userId) { + await this.prisma.$transaction(ids.map((id, i) => this.prisma.category.update({ where: { id }, data: { sortOrder: i } }))); + this.audit.log(userId, "reorder", "category", "", `${ids.length} دسته`); + this.revalidate.trigger(); + } + assertUniqueGroupSlugs(input) { + const slugs = input.groups.map((g) => g.slug); + if (new Set(slugs).size !== slugs.length) { + throw new ConflictException("اسلاگ زیرگروه‌ها باید یکتا باشد"); + } + } +}; +CategoriesService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + MediaService, + AuditService, + RevalidateService]) +], CategoriesService); +export { CategoriesService }; +//# sourceMappingURL=categories.service.js.map \ No newline at end of file diff --git a/apps/api/dist/catalog/categories.service.js.map b/apps/api/dist/catalog/categories.service.js.map new file mode 100644 index 0000000..70aa62b --- /dev/null +++ b/apps/api/dist/catalog/categories.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"categories.service.js","sourceRoot":"","sources":["../../src/catalog/categories.service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/catalog/products.service.js b/apps/api/dist/catalog/products.service.js new file mode 100644 index 0000000..ebdb96a --- /dev/null +++ b/apps/api/dist/catalog/products.service.js @@ -0,0 +1,182 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { BadRequestException, Injectable } from "@nestjs/common"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import { MediaService } from "../media/media.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +let ProductsService = class ProductsService { + prisma; + media; + audit; + revalidate; + constructor(prisma, media, audit, revalidate) { + this.prisma = prisma; + this.media = media; + this.audit = audit; + this.revalidate = revalidate; + } + async list(q) { + const where = { + ...(q.categoryId && { categoryId: q.categoryId }), + ...(q.groupId && { groupId: q.groupId }), + ...(q.status && { isPublished: q.status === "published" }), + ...(q.q && { + OR: [ + { name: { contains: q.q, mode: "insensitive" } }, + { nameEn: { contains: q.q, mode: "insensitive" } }, + { code: { contains: q.q, mode: "insensitive" } }, + ], + }), + }; + const [rows, total] = await this.prisma.$transaction([ + this.prisma.product.findMany({ + where, + orderBy: [{ category: { sortOrder: "asc" } }, { sortOrder: "asc" }, { id: "asc" }], + skip: (q.page - 1) * q.pageSize, + take: q.pageSize, + include: { + image: true, + category: { select: { id: true, name: true } }, + group: { select: { id: true, name: true } }, + }, + }), + this.prisma.product.count({ where }), + ]); + return { + items: rows.map(({ image, ...p }) => ({ ...p, image: image && this.media.toDto(image) })), + total, + page: q.page, + pageSize: q.pageSize, + }; + } + async get(id) { + const { image, gallery, ...p } = await this.prisma.product.findUniqueOrThrow({ + where: { id }, + include: { image: true, gallery: { orderBy: { sortOrder: "asc" }, include: { media: true } } }, + }); + return { + ...p, + image: image && this.media.toDto(image), + gallery: gallery.map((g) => this.media.toDto(g.media)), + }; + } + async create(input, userId) { + await this.assertGroup(input); + const { galleryIds, ...data } = input; + const last = await this.prisma.product.aggregate({ + where: { categoryId: input.categoryId }, + _max: { sortOrder: true }, + }); + const product = await this.prisma.product.create({ + data: { + ...data, + sortOrder: (last._max.sortOrder ?? -1) + 1, + gallery: { create: unique(galleryIds).map((mediaId, i) => ({ mediaId, sortOrder: i })) }, + }, + }); + this.audit.log(userId, "create", "product", product.id, product.name); + this.revalidate.trigger(); + return this.get(product.id); + } + async update(id, input, userId) { + await this.assertGroup(input); + const { galleryIds, ...data } = input; + const product = await this.prisma.product.update({ + where: { id }, + data: { + ...data, + gallery: { + deleteMany: {}, + create: unique(galleryIds).map((mediaId, i) => ({ mediaId, sortOrder: i })), + }, + }, + }); + this.audit.log(userId, "update", "product", id, product.name); + this.revalidate.trigger(); + return this.get(id); + } + async setPublished(id, isPublished, userId) { + const product = await this.prisma.product.update({ where: { id }, data: { isPublished } }); + this.audit.log(userId, isPublished ? "publish" : "unpublish", "product", id, product.name); + this.revalidate.trigger(); + return { id, isPublished }; + } + async duplicate(id, userId) { + const src = await this.prisma.product.findUniqueOrThrow({ + where: { id }, + include: { gallery: true }, + }); + let n = 1; + const taken = async (code, slug) => (await this.prisma.product.count({ where: { OR: [{ code }, { slug }] } })) > 0; + while (await taken(`${src.code}-${n}`, `${src.slug}-copy-${n}`)) + n++; + const copy = await this.prisma.product.create({ + data: { + categoryId: src.categoryId, + groupId: src.groupId, + code: `${src.code}-${n}`, + slug: `${src.slug}-copy-${n}`, + name: `${src.name} (کپی)`, + nameEn: src.nameEn, + desc: src.desc, + specs: src.specs, + variants: src.variants, + details: src.details, + brand: src.brand, + origin: src.origin, + sizes: src.sizes, + standards: src.standards, + features: src.features, + applications: src.applications, + attributes: (src.attributes ?? []), + packaging: src.packaging, + minOrder: src.minOrder, + seoTitle: src.seoTitle, + seoDescription: src.seoDescription, + imageId: src.imageId, + sortOrder: src.sortOrder + 1, + isPublished: false, + gallery: { + create: src.gallery.map((g) => ({ mediaId: g.mediaId, sortOrder: g.sortOrder })), + }, + }, + }); + this.audit.log(userId, "duplicate", "product", copy.id, copy.name); + return this.get(copy.id); + } + async remove(id, userId) { + const product = await this.prisma.product.delete({ where: { id } }); + this.audit.log(userId, "delete", "product", id, product.name); + this.revalidate.trigger(); + } + async reorder(ids, userId) { + await this.prisma.$transaction(ids.map((id, i) => this.prisma.product.update({ where: { id }, data: { sortOrder: i } }))); + this.audit.log(userId, "reorder", "product", "", `${ids.length} محصول`); + this.revalidate.trigger(); + } + async assertGroup(input) { + if (!input.groupId) + return; + const group = await this.prisma.productGroup.findUnique({ where: { id: input.groupId } }); + if (group?.categoryId !== input.categoryId) { + throw new BadRequestException("زیرگروه انتخاب‌شده متعلق به این دسته نیست"); + } + } +}; +ProductsService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + MediaService, + AuditService, + RevalidateService]) +], ProductsService); +export { ProductsService }; +const unique = (ids) => [...new Set(ids)]; +//# sourceMappingURL=products.service.js.map \ No newline at end of file diff --git a/apps/api/dist/catalog/products.service.js.map b/apps/api/dist/catalog/products.service.js.map new file mode 100644 index 0000000..2255595 --- /dev/null +++ b/apps/api/dist/catalog/products.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"products.service.js","sourceRoot":"","sources":["../../src/catalog/products.service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/common/auth.js b/apps/api/dist/common/auth.js new file mode 100644 index 0000000..0fed8d1 --- /dev/null +++ b/apps/api/dist/common/auth.js @@ -0,0 +1,60 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { createParamDecorator, ForbiddenException, Injectable, SetMetadata, UnauthorizedException, UseGuards, applyDecorators, } from "@nestjs/common"; +import { Reflector } from "@nestjs/core"; +import { JwtService } from "@nestjs/jwt"; +import { PrismaService } from "../prisma/prisma.service.js"; +const ROLES_KEY = "roles"; +let JwtAuthGuard = class JwtAuthGuard { + jwt; + reflector; + prisma; + constructor(jwt, reflector, prisma) { + this.jwt = jwt; + this.reflector = reflector; + this.prisma = prisma; + } + async canActivate(ctx) { + const req = ctx.switchToHttp().getRequest(); + const [scheme, token] = (req.headers.authorization ?? "").split(" "); + if (scheme !== "Bearer" || !token) + throw new UnauthorizedException("ابتدا وارد شوید"); + let payload; + try { + payload = await this.jwt.verifyAsync(token); + } + catch { + throw new UnauthorizedException("نشست شما منقضی شده است"); + } + const user = await this.prisma.adminUser.findUnique({ where: { id: payload.sub } }); + if (!user?.isActive) + throw new UnauthorizedException("حساب کاربری غیرفعال است"); + req.user = { id: user.id, phone: user.phone, name: user.name, role: user.role }; + const roles = this.reflector.getAllAndOverride(ROLES_KEY, [ + ctx.getHandler(), + ctx.getClass(), + ]); + if (roles?.length && !roles.includes(user.role)) { + throw new ForbiddenException("برای این کار دسترسی ندارید"); + } + return true; + } +}; +JwtAuthGuard = __decorate([ + Injectable(), + __metadata("design:paramtypes", [JwtService, + Reflector, + PrismaService]) +], JwtAuthGuard); +export { JwtAuthGuard }; +export const AdminAuth = (...roles) => applyDecorators(SetMetadata(ROLES_KEY, roles), UseGuards(JwtAuthGuard)); +export const Roles = (...roles) => SetMetadata(ROLES_KEY, roles); +export const CurrentUser = createParamDecorator((_, ctx) => ctx.switchToHttp().getRequest().user); +//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/apps/api/dist/common/auth.js.map b/apps/api/dist/common/auth.js.map new file mode 100644 index 0000000..0b127f4 --- /dev/null +++ b/apps/api/dist/common/auth.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/common/auth.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/common/common.module.js b/apps/api/dist/common/common.module.js new file mode 100644 index 0000000..b40c392 --- /dev/null +++ b/apps/api/dist/common/common.module.js @@ -0,0 +1,70 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var AuditService_1, RevalidateService_1; +import { Global, Injectable, Logger, Module } from "@nestjs/common"; +import { env } from "../config/env.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +let AuditService = AuditService_1 = class AuditService { + prisma; + logger = new Logger(AuditService_1.name); + constructor(prisma) { + this.prisma = prisma; + } + log(userId, action, entity, entityId = "", summary = "") { + this.prisma.auditLog + .create({ data: { userId, action, entity, entityId: String(entityId), summary } }) + .catch((e) => this.logger.warn(`audit log failed: ${String(e)}`)); + } +}; +AuditService = AuditService_1 = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService]) +], AuditService); +export { AuditService }; +let RevalidateService = RevalidateService_1 = class RevalidateService { + logger = new Logger(RevalidateService_1.name); + timer; + trigger() { + if (!env.WEB_REVALIDATE_URL) + return; + clearTimeout(this.timer); + this.timer = setTimeout(() => void this.run(), 1500); + this.timer.unref(); + } + async run() { + try { + const res = await fetch(env.WEB_REVALIDATE_URL, { + method: "POST", + headers: { "x-revalidate-secret": env.REVALIDATE_SECRET ?? "" }, + signal: AbortSignal.timeout(5000), + }); + if (!res.ok) + this.logger.warn(`site revalidation returned ${res.status}`); + } + catch (e) { + this.logger.warn(`site revalidation failed: ${String(e)}`); + } + } +}; +RevalidateService = RevalidateService_1 = __decorate([ + Injectable() +], RevalidateService); +export { RevalidateService }; +let CommonModule = class CommonModule { +}; +CommonModule = __decorate([ + Global(), + Module({ + providers: [AuditService, RevalidateService], + exports: [AuditService, RevalidateService], + }) +], CommonModule); +export { CommonModule }; +//# sourceMappingURL=common.module.js.map \ No newline at end of file diff --git a/apps/api/dist/common/common.module.js.map b/apps/api/dist/common/common.module.js.map new file mode 100644 index 0000000..f0193b8 --- /dev/null +++ b/apps/api/dist/common/common.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"common.module.js","sourceRoot":"","sources":["../../src/common/common.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIrD,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAGM;IAFZ,MAAM,GAAG,IAAI,MAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAExD,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,GAAG,CACD,MAAqB,EACrB,MAAc,EACd,MAAc,EACd,WAA4B,EAAE,EAC9B,OAAO,GAAG,EAAE;QAEZ,IAAI,CAAC,MAAM,CAAC,QAAQ;aACjB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;aACjF,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF,CAAA;AAhBY,YAAY;IADxB,UAAU,EAAE;qCAI0B,aAAa;GAHvC,YAAY,CAgBxB;;AAOM,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IACX,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IACrD,KAAK,CAA6B;IAE1C,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,kBAAkB;YAAE,OAAO;QACpC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,kBAAmB,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,qBAAqB,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE,EAAE;gBAC/D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAA;AAvBY,iBAAiB;IAD7B,UAAU,EAAE;GACA,iBAAiB,CAuB7B;;AAOM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IALxB,MAAM,EAAE;IACR,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;QAC5C,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;KAC3C,CAAC;GACW,YAAY,CAAG"} \ No newline at end of file diff --git a/apps/api/dist/common/prisma-exception.filter.js b/apps/api/dist/common/prisma-exception.filter.js new file mode 100644 index 0000000..31415a3 --- /dev/null +++ b/apps/api/dist/common/prisma-exception.filter.js @@ -0,0 +1,59 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +import { Catch, HttpStatus } from "@nestjs/common"; +import { Prisma } from "../generated/prisma/client.js"; +const FIELD_LABELS = { + slug: "اسلاگ", + code: "کد", + email: "ایمیل", + phone: "شماره موبایل", +}; +function uniqueFields(meta) { + if (meta?.target) + return Array.isArray(meta.target) ? meta.target : [meta.target]; + const constraint = meta?.driverAdapterError?.cause?.constraint; + if (constraint?.fields) + return constraint.fields; + const match = constraint?.index?.match(/^[^_]+_(.+)_key$/); + return match ? match[1].split("_") : []; +} +let PrismaExceptionFilter = class PrismaExceptionFilter { + catch(error, host) { + const res = host.switchToHttp().getResponse(); + switch (error.code) { + case "P2002": { + const fields = uniqueFields(error.meta) + .filter((f) => !f.endsWith("Id")) + .map((f) => FIELD_LABELS[f] ?? f) + .join("، "); + return res.status(HttpStatus.CONFLICT).json({ + statusCode: HttpStatus.CONFLICT, + message: fields ? `مقدار «${fields}» تکراری است` : "مقدار تکراری است", + }); + } + case "P2003": + return res.status(HttpStatus.CONFLICT).json({ + statusCode: HttpStatus.CONFLICT, + message: "این مورد به داده‌های دیگری وابسته است", + }); + case "P2025": + return res + .status(HttpStatus.NOT_FOUND) + .json({ statusCode: HttpStatus.NOT_FOUND, message: "مورد پیدا نشد" }); + default: + return res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({ + statusCode: HttpStatus.INTERNAL_SERVER_ERROR, + message: "خطای پایگاه داده", + }); + } + } +}; +PrismaExceptionFilter = __decorate([ + Catch(Prisma.PrismaClientKnownRequestError) +], PrismaExceptionFilter); +export { PrismaExceptionFilter }; +//# sourceMappingURL=prisma-exception.filter.js.map \ No newline at end of file diff --git a/apps/api/dist/common/prisma-exception.filter.js.map b/apps/api/dist/common/prisma-exception.filter.js.map new file mode 100644 index 0000000..8d63714 --- /dev/null +++ b/apps/api/dist/common/prisma-exception.filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"prisma-exception.filter.js","sourceRoot":"","sources":["../../src/common/prisma-exception.filter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAsB,KAAK,EAAwB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEvD,MAAM,YAAY,GAA2B;IAC3C,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,cAAc;CACtB,CAAC;AAQF,SAAS,YAAY,CAAC,IAA4B;IAChD,IAAI,IAAI,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClF,MAAM,UAAU,GAAG,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAAC;IAC/D,IAAI,UAAU,EAAE,MAAM;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC;IAEjD,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAIM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,KAAK,CAAC,KAA2C,EAAE,IAAmB;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,EAAY,CAAC;QAExD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAA8B,CAAC;qBAC9D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBAChC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC1C,UAAU,EAAE,UAAU,CAAC,QAAQ;oBAC/B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,cAAc,CAAC,CAAC,CAAC,kBAAkB;iBACtE,CAAC,CAAC;YACL,CAAC;YACD,KAAK,OAAO;gBACV,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC1C,UAAU,EAAE,UAAU,CAAC,QAAQ;oBAC/B,OAAO,EAAE,uCAAuC;iBACjD,CAAC,CAAC;YACL,KAAK,OAAO;gBACV,OAAO,GAAG;qBACP,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;qBAC5B,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YAC1E;gBACE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC;oBACvD,UAAU,EAAE,UAAU,CAAC,qBAAqB;oBAC5C,OAAO,EAAE,kBAAkB;iBAC5B,CAAC,CAAC;QACP,CAAC;IACH,CAAC;CACF,CAAA;AA/BY,qBAAqB;IADjC,KAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC;GAC/B,qBAAqB,CA+BjC"} \ No newline at end of file diff --git a/apps/api/dist/common/zod.pipe.js b/apps/api/dist/common/zod.pipe.js new file mode 100644 index 0000000..600d694 --- /dev/null +++ b/apps/api/dist/common/zod.pipe.js @@ -0,0 +1,23 @@ +import { BadRequestException } from "@nestjs/common"; +import { toIssues } from "@imen/shared"; +import { z } from "zod"; +z.config(z.locales.fa()); +export class ZodPipe { + schema; + constructor(schema) { + this.schema = schema; + } + transform(value) { + const result = this.schema.safeParse(value); + if (!result.success) { + throw new BadRequestException({ + statusCode: 400, + message: "اطلاعات واردشده معتبر نیست", + issues: toIssues(result.error), + }); + } + return result.data; + } +} +export const IdPipe = new ZodPipe(z.coerce.number().int().positive()); +//# sourceMappingURL=zod.pipe.js.map \ No newline at end of file diff --git a/apps/api/dist/common/zod.pipe.js.map b/apps/api/dist/common/zod.pipe.js.map new file mode 100644 index 0000000..3ee73e3 --- /dev/null +++ b/apps/api/dist/common/zod.pipe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zod.pipe.js","sourceRoot":"","sources":["../../src/common/zod.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAGzB,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,MAAS;QAAT,WAAM,GAAN,MAAM,CAAG;IAAG,CAAC;IAE1C,SAAS,CAAC,KAAc;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAmB,CAAC;gBAC5B,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,4BAA4B;gBACrC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;CACF;AAGD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC"} \ No newline at end of file diff --git a/apps/api/dist/config/env.js b/apps/api/dist/config/env.js new file mode 100644 index 0000000..06e7380 --- /dev/null +++ b/apps/api/dist/config/env.js @@ -0,0 +1,43 @@ +import { existsSync } from "node:fs"; +import { z } from "zod"; +if (existsSync(".env")) + process.loadEnvFile(".env"); +const bool = (fallback) => z + .enum(["true", "false", "1", "0"]) + .optional() + .transform((v) => (v === undefined ? fallback : v === "true" || v === "1")); +const schema = z.object({ + NODE_ENV: z.enum(["development", "production", "test"]).default("development"), + PORT: z.coerce.number().int().default(4000), + CORS_ORIGINS: z.string().default(""), + TRUST_PROXY: z.coerce.number().int().min(0).default(1), + DATABASE_URL: z.string().min(1), + JWT_SECRET: z.string().min(32, "JWT_SECRET must be at least 32 characters"), + JWT_ACCESS_TTL: z.string().default("15m"), + REFRESH_TTL_DAYS: z.coerce.number().int().positive().default(30), + COOKIE_SECURE: bool(true), + S3_ENDPOINT: z.string().optional(), + S3_REGION: z.string().default("us-east-1"), + S3_BUCKET: z.string().default("imen-media"), + S3_ACCESS_KEY: z.string().default(""), + S3_SECRET_KEY: z.string().default(""), + S3_FORCE_PATH_STYLE: bool(true), + S3_ENSURE_BUCKET: bool(false), + MEDIA_PUBLIC_URL: z + .string() + .default("/media") + .transform((v) => v.replace(/\/+$/, "")), + WEB_REVALIDATE_URL: z.string().optional(), + REVALIDATE_SECRET: z.string().optional(), + ADMIN_PHONE: z.string().optional(), + ADMIN_PASSWORD: z.string().optional(), + ADMIN_NAME: z.string().default("مدیر سایت"), +}); +const parsed = schema.safeParse(process.env); +if (!parsed.success) { + console.error("Invalid environment variables:\n" + z.prettifyError(parsed.error)); + process.exit(1); +} +export const env = parsed.data; +export const isProd = env.NODE_ENV === "production"; +//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/apps/api/dist/config/env.js.map b/apps/api/dist/config/env.js.map new file mode 100644 index 0000000..148d9fd --- /dev/null +++ b/apps/api/dist/config/env.js.map @@ -0,0 +1 @@ +{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/contact/contact.module.js b/apps/api/dist/contact/contact.module.js new file mode 100644 index 0000000..80311ee --- /dev/null +++ b/apps/api/dist/contact/contact.module.js @@ -0,0 +1,163 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { Body, Controller, Delete, Get, HttpCode, Injectable, Module, Param, Patch, Post, Query, Req, } from "@nestjs/common"; +import { Throttle } from "@nestjs/throttler"; +import { contactInputSchema, MESSAGE_STATUSES, messageUpdateSchema, } from "@imen/shared"; +import { z } from "zod"; +import { AdminAuth, CurrentUser, Roles } from "../common/auth.js"; +import { AuditService } from "../common/common.module.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +const listQuery = z.object({ + status: z.enum(MESSAGE_STATUSES).optional(), + page: z.coerce.number().int().min(1).default(1), + pageSize: z.coerce.number().int().min(1).max(100).default(20), +}); +export const toMessageDto = (m) => ({ + id: m.id, + name: m.name, + org: m.org, + phone: m.phone, + message: m.message, + status: m.status, + createdAt: m.createdAt.toISOString(), +}); +let ContactService = class ContactService { + prisma; + audit; + constructor(prisma, audit) { + this.prisma = prisma; + this.audit = audit; + } + async submit(input, ip, userAgent) { + if (input.website) + return; + await this.prisma.contactMessage.create({ + data: { + name: input.name, + org: input.org, + phone: input.phone, + message: input.message, + ip: ip.slice(0, 64), + userAgent: userAgent.slice(0, 300), + }, + }); + } + async list(q) { + const where = q.status ? { status: q.status } : {}; + const [items, total] = await this.prisma.$transaction([ + this.prisma.contactMessage.findMany({ + where, + orderBy: { id: "desc" }, + skip: (q.page - 1) * q.pageSize, + take: q.pageSize, + }), + this.prisma.contactMessage.count({ where }), + ]); + return { items: items.map(toMessageDto), total, page: q.page, pageSize: q.pageSize }; + } + async setStatus(id, status) { + return toMessageDto(await this.prisma.contactMessage.update({ where: { id }, data: { status } })); + } + async remove(id, userId) { + const m = await this.prisma.contactMessage.delete({ where: { id } }); + this.audit.log(userId, "delete", "message", id, m.name); + } +}; +ContactService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + AuditService]) +], ContactService); +export { ContactService }; +let PublicContactController = class PublicContactController { + contact; + constructor(contact) { + this.contact = contact; + } + async submit(body, req) { + await this.contact.submit(body, req.ip ?? "", req.headers["user-agent"] ?? ""); + return { ok: true }; + } +}; +__decorate([ + Post(), + HttpCode(201), + Throttle({ default: { limit: 5, ttl: 10 * 60_000 } }), + __param(0, Body(new ZodPipe(contactInputSchema))), + __param(1, Req()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", Promise) +], PublicContactController.prototype, "submit", null); +PublicContactController = __decorate([ + Controller("public/contact"), + __metadata("design:paramtypes", [ContactService]) +], PublicContactController); +export { PublicContactController }; +let MessagesController = class MessagesController { + contact; + constructor(contact) { + this.contact = contact; + } + list(q) { + return this.contact.list(q); + } + update(id, body) { + return this.contact.setStatus(id, body.status); + } + async remove(id, user) { + await this.contact.remove(id, user.id); + } +}; +__decorate([ + Get(), + __param(0, Query(new ZodPipe(listQuery))), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], MessagesController.prototype, "list", null); +__decorate([ + Patch(":id"), + __param(0, Param("id", IdPipe)), + __param(1, Body(new ZodPipe(messageUpdateSchema))), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object]), + __metadata("design:returntype", void 0) +], MessagesController.prototype, "update", null); +__decorate([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param(0, Param("id", IdPipe)), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object]), + __metadata("design:returntype", Promise) +], MessagesController.prototype, "remove", null); +MessagesController = __decorate([ + AdminAuth(), + Controller("admin/messages"), + __metadata("design:paramtypes", [ContactService]) +], MessagesController); +export { MessagesController }; +let ContactModule = class ContactModule { +}; +ContactModule = __decorate([ + Module({ + controllers: [PublicContactController, MessagesController], + providers: [ContactService], + }) +], ContactModule); +export { ContactModule }; +//# sourceMappingURL=contact.module.js.map \ No newline at end of file diff --git a/apps/api/dist/contact/contact.module.js.map b/apps/api/dist/contact/contact.module.js.map new file mode 100644 index 0000000..a7293d1 --- /dev/null +++ b/apps/api/dist/contact/contact.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"contact.module.js","sourceRoot":"","sources":["../../src/contact/contact.module.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/dashboard/dashboard.module.js b/apps/api/dist/dashboard/dashboard.module.js new file mode 100644 index 0000000..624d3c0 --- /dev/null +++ b/apps/api/dist/dashboard/dashboard.module.js @@ -0,0 +1,116 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { Controller, Get, Module } from "@nestjs/common"; +import { SECTION_KEYS } from "@imen/shared"; +import { AdminAuth } from "../common/auth.js"; +import { toMessageDto } from "../contact/contact.module.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +const DAY_NAMES = ["یکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنج‌شنبه", "جمعه", "شنبه"]; +let DashboardController = class DashboardController { + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async get() { + const [categories, products, draftProducts, newMessages, readMessages, archivedMessages, media, messages, activity, categoryRows, sectionRows,] = await Promise.all([ + this.prisma.category.count(), + this.prisma.product.count(), + this.prisma.product.count({ where: { isPublished: false } }), + this.prisma.contactMessage.count({ where: { status: "NEW" } }), + this.prisma.contactMessage.count({ where: { status: "READ" } }), + this.prisma.contactMessage.count({ where: { status: "ARCHIVED" } }), + this.prisma.media.count(), + this.prisma.contactMessage.findMany({ orderBy: { id: "desc" }, take: 6 }), + this.prisma.auditLog.findMany({ + orderBy: { id: "desc" }, + take: 10, + include: { user: { select: { name: true } } }, + }), + this.prisma.category.findMany({ + select: { id: true, name: true, _count: { select: { products: true } } }, + orderBy: { products: { _count: "desc" } }, + take: 7, + }), + this.prisma.siteSection.findMany(), + ]); + let hiddenCount = 0; + for (const s of sectionRows) { + if (s.data && typeof s.data === "object" && s.data.enabled === false) { + hiddenCount++; + } + } + const now = new Date(); + const trend = []; + for (let i = 6; i >= 0; i--) { + const start = new Date(now.getFullYear(), now.getMonth(), now.getDate() - i, 0, 0, 0); + const end = new Date(now.getFullYear(), now.getMonth(), now.getDate() - i, 23, 59, 59, 999); + const count = await this.prisma.contactMessage.count({ + where: { createdAt: { gte: start, lte: end } }, + }); + trend.push({ + date: start.toISOString().slice(0, 10), + dayName: DAY_NAMES[start.getDay()], + messages: count, + }); + } + return { + categories, + products, + draftProducts, + newMessages, + media, + recentMessages: messages.map(toMessageDto), + recentActivity: activity.map((a) => ({ + id: a.id, + action: a.action, + entity: a.entity, + summary: a.summary, + user: a.user?.name ?? null, + createdAt: a.createdAt.toISOString(), + })), + categoryStats: categoryRows.map((c) => ({ + id: c.id, + name: c.name, + count: c._count.products, + })), + messageBreakdown: { + new: newMessages, + read: readMessages, + archived: archivedMessages, + total: newMessages + readMessages + archivedMessages, + }, + sectionsSummary: { + total: SECTION_KEYS.length, + visible: SECTION_KEYS.length - hiddenCount, + hidden: hiddenCount, + }, + trend, + }; + } +}; +__decorate([ + Get(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", Promise) +], DashboardController.prototype, "get", null); +DashboardController = __decorate([ + AdminAuth(), + Controller("admin/dashboard"), + __metadata("design:paramtypes", [PrismaService]) +], DashboardController); +export { DashboardController }; +let DashboardModule = class DashboardModule { +}; +DashboardModule = __decorate([ + Module({ controllers: [DashboardController] }) +], DashboardModule); +export { DashboardModule }; +//# sourceMappingURL=dashboard.module.js.map \ No newline at end of file diff --git a/apps/api/dist/dashboard/dashboard.module.js.map b/apps/api/dist/dashboard/dashboard.module.js.map new file mode 100644 index 0000000..aae9745 --- /dev/null +++ b/apps/api/dist/dashboard/dashboard.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dashboard.module.js","sourceRoot":"","sources":["../../src/dashboard/dashboard.module.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/browser.js b/apps/api/dist/generated/prisma/browser.js new file mode 100644 index 0000000..790d274 --- /dev/null +++ b/apps/api/dist/generated/prisma/browser.js @@ -0,0 +1,5 @@ +import * as Prisma from './internal/prismaNamespaceBrowser.js'; +export { Prisma }; +export * as $Enums from './enums.js'; +export * from './enums.js'; +//# sourceMappingURL=browser.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/browser.js.map b/apps/api/dist/generated/prisma/browser.js.map new file mode 100644 index 0000000..d9f72f6 --- /dev/null +++ b/apps/api/dist/generated/prisma/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/generated/prisma/browser.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAC"} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/client.js b/apps/api/dist/generated/prisma/client.js new file mode 100644 index 0000000..07cfa5f --- /dev/null +++ b/apps/api/dist/generated/prisma/client.js @@ -0,0 +1,10 @@ +import * as path from 'node:path'; +import { fileURLToPath } from 'node:url'; +globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url)); +import * as $Class from "./internal/class.js"; +import * as Prisma from "./internal/prismaNamespace.js"; +export * as $Enums from './enums.js'; +export * from "./enums.js"; +export const PrismaClient = $Class.getPrismaClientClass(); +export { Prisma }; +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/client.js.map b/apps/api/dist/generated/prisma/client.js.map new file mode 100644 index 0000000..7d59d64 --- /dev/null +++ b/apps/api/dist/generated/prisma/client.js.map @@ -0,0 +1 @@ +{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/generated/prisma/client.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAItE,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAA;AAgB1B,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,CAAA"} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/commonInputTypes.js b/apps/api/dist/generated/prisma/commonInputTypes.js new file mode 100644 index 0000000..8c50359 --- /dev/null +++ b/apps/api/dist/generated/prisma/commonInputTypes.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=commonInputTypes.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/commonInputTypes.js.map b/apps/api/dist/generated/prisma/commonInputTypes.js.map new file mode 100644 index 0000000..6116df8 --- /dev/null +++ b/apps/api/dist/generated/prisma/commonInputTypes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commonInputTypes.js","sourceRoot":"","sources":["../../../src/generated/prisma/commonInputTypes.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/enums.js b/apps/api/dist/generated/prisma/enums.js new file mode 100644 index 0000000..94fa7f8 --- /dev/null +++ b/apps/api/dist/generated/prisma/enums.js @@ -0,0 +1,10 @@ +export const Role = { + ADMIN: 'ADMIN', + EDITOR: 'EDITOR' +}; +export const MessageStatus = { + NEW: 'NEW', + READ: 'READ', + ARCHIVED: 'ARCHIVED' +}; +//# sourceMappingURL=enums.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/enums.js.map b/apps/api/dist/generated/prisma/enums.js.map new file mode 100644 index 0000000..37fbe8b --- /dev/null +++ b/apps/api/dist/generated/prisma/enums.js.map @@ -0,0 +1 @@ +{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/generated/prisma/enums.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAA;AAKV,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;CACZ,CAAA"} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/internal/class.js b/apps/api/dist/generated/prisma/internal/class.js new file mode 100644 index 0000000..5ae3f5b --- /dev/null +++ b/apps/api/dist/generated/prisma/internal/class.js @@ -0,0 +1,39 @@ +import * as runtime from "@prisma/client/runtime/client"; +const config = { + "previewFeatures": [], + "clientVersion": "7.10.1", + "engineVersion": "d1b3f377ca835d73fd50954a5e22128b9ebdd6b8", + "activeProvider": "postgresql", + "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n moduleFormat = \"esm\"\n importFileExtension = \"js\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nenum Role {\n ADMIN\n EDITOR\n}\n\nenum MessageStatus {\n NEW\n READ\n ARCHIVED\n}\n\nmodel AdminUser {\n id Int @id @default(autoincrement())\n phone String @unique\n name String\n passwordHash String\n role Role @default(EDITOR)\n isActive Boolean @default(true)\n lastLoginAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n refreshTokens RefreshToken[]\n auditLogs AuditLog[]\n}\n\nmodel RefreshToken {\n id Int @id @default(autoincrement())\n userId Int\n user AdminUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n /// sha256 of the opaque token stored in the httpOnly cookie\n tokenHash String @unique\n expiresAt DateTime\n revokedAt DateTime?\n userAgent String @default(\"\")\n createdAt DateTime @default(now())\n\n @@index([userId])\n}\n\nmodel Media {\n id Int @id @default(autoincrement())\n /// object key in the S3 bucket; the public URL is MEDIA_PUBLIC_URL + \"/\" + key\n key String @unique\n mime String\n size Int\n width Int?\n height Int?\n alt String @default(\"\")\n originalName String @default(\"\")\n createdAt DateTime @default(now())\n categoryCovers Category[] @relation(\"CategoryCover\")\n productImages Product[] @relation(\"ProductImage\")\n productGallery ProductImage[]\n}\n\nmodel Category {\n id Int @id @default(autoincrement())\n slug String @unique\n code String\n name String\n nameEn String @default(\"\")\n shortDesc String @default(\"\")\n fullDesc String @default(\"\")\n /// Lucide icon name\n icon String @default(\"\")\n coverImageId Int?\n coverImage Media? @relation(\"CategoryCover\", fields: [coverImageId], references: [id], onDelete: SetNull)\n sortOrder Int @default(0)\n isPublished Boolean @default(true)\n seoTitle String @default(\"\")\n seoDescription String @default(\"\")\n groups ProductGroup[]\n products Product[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([sortOrder])\n}\n\nmodel ProductGroup {\n id Int @id @default(autoincrement())\n categoryId Int\n category Category @relation(fields: [categoryId], references: [id], onDelete: Cascade)\n slug String\n name String\n desc String @default(\"\")\n sortOrder Int @default(0)\n products Product[]\n\n @@unique([categoryId, slug])\n}\n\nmodel Product {\n id Int @id @default(autoincrement())\n categoryId Int\n category Category @relation(fields: [categoryId], references: [id], onDelete: Restrict)\n groupId Int?\n group ProductGroup? @relation(fields: [groupId], references: [id], onDelete: SetNull)\n code String @unique\n slug String @unique\n name String\n nameEn String @default(\"\")\n desc String @default(\"\")\n specs String[]\n variants String[]\n /// long description for the product page; a blank line starts a new paragraph\n details String @default(\"\")\n brand String @default(\"\")\n /// country of manufacture\n origin String @default(\"\")\n sizes String[] @default([])\n standards String[] @default([])\n features String[] @default([])\n applications String[] @default([])\n /// technical specification table: [{ \"name\": \"...\", \"value\": \"...\" }]\n attributes Json @default(\"[]\")\n packaging String @default(\"\")\n minOrder String @default(\"\")\n seoTitle String @default(\"\")\n seoDescription String @default(\"\")\n imageId Int?\n image Media? @relation(\"ProductImage\", fields: [imageId], references: [id], onDelete: SetNull)\n gallery ProductImage[]\n sortOrder Int @default(0)\n isPublished Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([categoryId, sortOrder])\n}\n\nmodel ProductImage {\n productId Int\n mediaId Int\n sortOrder Int @default(0)\n product Product @relation(fields: [productId], references: [id], onDelete: Cascade)\n media Media @relation(fields: [mediaId], references: [id], onDelete: Cascade)\n\n @@id([productId, mediaId])\n}\n\n/// One row per editable website section; `data` is validated by the zod schema for `key` (@imen/shared)\nmodel SiteSection {\n key String @id\n data Json\n updatedById Int?\n updatedAt DateTime @updatedAt\n}\n\nmodel ContactMessage {\n id Int @id @default(autoincrement())\n name String\n org String\n phone String\n message String @default(\"\")\n status MessageStatus @default(NEW)\n ip String @default(\"\")\n userAgent String @default(\"\")\n createdAt DateTime @default(now())\n\n @@index([status, createdAt])\n}\n\nmodel AuditLog {\n id Int @id @default(autoincrement())\n userId Int?\n user AdminUser? @relation(fields: [userId], references: [id], onDelete: SetNull)\n /// create | update | delete | login ...\n action String\n /// product | category | section | media | user | message\n entity String\n entityId String @default(\"\")\n summary String @default(\"\")\n createdAt DateTime @default(now())\n\n @@index([createdAt])\n}\n", + "runtimeDataModel": { + "models": {}, + "enums": {}, + "types": {} + }, + "parameterizationSchema": { + "strings": [], + "graph": "" + } +}; +config.runtimeDataModel = JSON.parse("{\"models\":{\"AdminUser\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"Role\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"lastLoginAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refreshTokens\",\"kind\":\"object\",\"type\":\"RefreshToken\",\"relationName\":\"AdminUserToRefreshToken\"},{\"name\":\"auditLogs\",\"kind\":\"object\",\"type\":\"AuditLog\",\"relationName\":\"AdminUserToAuditLog\"}],\"dbName\":null,\"schema\":null},\"RefreshToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"AdminUser\",\"relationName\":\"AdminUserToRefreshToken\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null,\"schema\":null},\"Media\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mime\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"size\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"width\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"height\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"alt\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"originalName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"categoryCovers\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryCover\"},{\"name\":\"productImages\",\"kind\":\"object\",\"type\":\"Product\",\"relationName\":\"ProductImage\"},{\"name\":\"productGallery\",\"kind\":\"object\",\"type\":\"ProductImage\",\"relationName\":\"MediaToProductImage\"}],\"dbName\":null,\"schema\":null},\"Category\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nameEn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"shortDesc\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fullDesc\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"icon\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"coverImageId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"coverImage\",\"kind\":\"object\",\"type\":\"Media\",\"relationName\":\"CategoryCover\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"isPublished\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"seoTitle\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"seoDescription\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groups\",\"kind\":\"object\",\"type\":\"ProductGroup\",\"relationName\":\"CategoryToProductGroup\"},{\"name\":\"products\",\"kind\":\"object\",\"type\":\"Product\",\"relationName\":\"CategoryToProduct\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null,\"schema\":null},\"ProductGroup\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToProductGroup\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"desc\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"products\",\"kind\":\"object\",\"type\":\"Product\",\"relationName\":\"ProductToProductGroup\"}],\"dbName\":null,\"schema\":null},\"Product\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToProduct\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"ProductGroup\",\"relationName\":\"ProductToProductGroup\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nameEn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"desc\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"specs\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"variants\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"origin\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sizes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"standards\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"features\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applications\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attributes\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"packaging\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"minOrder\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"seoTitle\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"seoDescription\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"imageId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"image\",\"kind\":\"object\",\"type\":\"Media\",\"relationName\":\"ProductImage\"},{\"name\":\"gallery\",\"kind\":\"object\",\"type\":\"ProductImage\",\"relationName\":\"ProductToProductImage\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"isPublished\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null,\"schema\":null},\"ProductImage\":{\"fields\":[{\"name\":\"productId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mediaId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"product\",\"kind\":\"object\",\"type\":\"Product\",\"relationName\":\"ProductToProductImage\"},{\"name\":\"media\",\"kind\":\"object\",\"type\":\"Media\",\"relationName\":\"MediaToProductImage\"}],\"dbName\":null,\"schema\":null},\"SiteSection\":{\"fields\":[{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"updatedById\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null,\"schema\":null},\"ContactMessage\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"org\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"MessageStatus\"},{\"name\":\"ip\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null,\"schema\":null},\"AuditLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"AdminUser\",\"relationName\":\"AdminUserToAuditLog\"},{\"name\":\"action\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"entity\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"entityId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null,\"schema\":null}},\"enums\":{},\"types\":{}}"); +config.parameterizationSchema = { + strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"refreshTokens\",\"auditLogs\",\"_count\",\"AdminUser.findUnique\",\"AdminUser.findUniqueOrThrow\",\"AdminUser.findFirst\",\"AdminUser.findFirstOrThrow\",\"AdminUser.findMany\",\"data\",\"AdminUser.createOne\",\"AdminUser.createMany\",\"AdminUser.createManyAndReturn\",\"AdminUser.updateOne\",\"AdminUser.updateMany\",\"AdminUser.updateManyAndReturn\",\"create\",\"update\",\"AdminUser.upsertOne\",\"AdminUser.deleteOne\",\"AdminUser.deleteMany\",\"having\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"AdminUser.groupBy\",\"AdminUser.aggregate\",\"RefreshToken.findUnique\",\"RefreshToken.findUniqueOrThrow\",\"RefreshToken.findFirst\",\"RefreshToken.findFirstOrThrow\",\"RefreshToken.findMany\",\"RefreshToken.createOne\",\"RefreshToken.createMany\",\"RefreshToken.createManyAndReturn\",\"RefreshToken.updateOne\",\"RefreshToken.updateMany\",\"RefreshToken.updateManyAndReturn\",\"RefreshToken.upsertOne\",\"RefreshToken.deleteOne\",\"RefreshToken.deleteMany\",\"RefreshToken.groupBy\",\"RefreshToken.aggregate\",\"coverImage\",\"category\",\"group\",\"image\",\"product\",\"media\",\"gallery\",\"products\",\"groups\",\"categoryCovers\",\"productImages\",\"productGallery\",\"Media.findUnique\",\"Media.findUniqueOrThrow\",\"Media.findFirst\",\"Media.findFirstOrThrow\",\"Media.findMany\",\"Media.createOne\",\"Media.createMany\",\"Media.createManyAndReturn\",\"Media.updateOne\",\"Media.updateMany\",\"Media.updateManyAndReturn\",\"Media.upsertOne\",\"Media.deleteOne\",\"Media.deleteMany\",\"Media.groupBy\",\"Media.aggregate\",\"Category.findUnique\",\"Category.findUniqueOrThrow\",\"Category.findFirst\",\"Category.findFirstOrThrow\",\"Category.findMany\",\"Category.createOne\",\"Category.createMany\",\"Category.createManyAndReturn\",\"Category.updateOne\",\"Category.updateMany\",\"Category.updateManyAndReturn\",\"Category.upsertOne\",\"Category.deleteOne\",\"Category.deleteMany\",\"Category.groupBy\",\"Category.aggregate\",\"ProductGroup.findUnique\",\"ProductGroup.findUniqueOrThrow\",\"ProductGroup.findFirst\",\"ProductGroup.findFirstOrThrow\",\"ProductGroup.findMany\",\"ProductGroup.createOne\",\"ProductGroup.createMany\",\"ProductGroup.createManyAndReturn\",\"ProductGroup.updateOne\",\"ProductGroup.updateMany\",\"ProductGroup.updateManyAndReturn\",\"ProductGroup.upsertOne\",\"ProductGroup.deleteOne\",\"ProductGroup.deleteMany\",\"ProductGroup.groupBy\",\"ProductGroup.aggregate\",\"Product.findUnique\",\"Product.findUniqueOrThrow\",\"Product.findFirst\",\"Product.findFirstOrThrow\",\"Product.findMany\",\"Product.createOne\",\"Product.createMany\",\"Product.createManyAndReturn\",\"Product.updateOne\",\"Product.updateMany\",\"Product.updateManyAndReturn\",\"Product.upsertOne\",\"Product.deleteOne\",\"Product.deleteMany\",\"Product.groupBy\",\"Product.aggregate\",\"ProductImage.findUnique\",\"ProductImage.findUniqueOrThrow\",\"ProductImage.findFirst\",\"ProductImage.findFirstOrThrow\",\"ProductImage.findMany\",\"ProductImage.createOne\",\"ProductImage.createMany\",\"ProductImage.createManyAndReturn\",\"ProductImage.updateOne\",\"ProductImage.updateMany\",\"ProductImage.updateManyAndReturn\",\"ProductImage.upsertOne\",\"ProductImage.deleteOne\",\"ProductImage.deleteMany\",\"ProductImage.groupBy\",\"ProductImage.aggregate\",\"SiteSection.findUnique\",\"SiteSection.findUniqueOrThrow\",\"SiteSection.findFirst\",\"SiteSection.findFirstOrThrow\",\"SiteSection.findMany\",\"SiteSection.createOne\",\"SiteSection.createMany\",\"SiteSection.createManyAndReturn\",\"SiteSection.updateOne\",\"SiteSection.updateMany\",\"SiteSection.updateManyAndReturn\",\"SiteSection.upsertOne\",\"SiteSection.deleteOne\",\"SiteSection.deleteMany\",\"SiteSection.groupBy\",\"SiteSection.aggregate\",\"ContactMessage.findUnique\",\"ContactMessage.findUniqueOrThrow\",\"ContactMessage.findFirst\",\"ContactMessage.findFirstOrThrow\",\"ContactMessage.findMany\",\"ContactMessage.createOne\",\"ContactMessage.createMany\",\"ContactMessage.createManyAndReturn\",\"ContactMessage.updateOne\",\"ContactMessage.updateMany\",\"ContactMessage.updateManyAndReturn\",\"ContactMessage.upsertOne\",\"ContactMessage.deleteOne\",\"ContactMessage.deleteMany\",\"ContactMessage.groupBy\",\"ContactMessage.aggregate\",\"AuditLog.findUnique\",\"AuditLog.findUniqueOrThrow\",\"AuditLog.findFirst\",\"AuditLog.findFirstOrThrow\",\"AuditLog.findMany\",\"AuditLog.createOne\",\"AuditLog.createMany\",\"AuditLog.createManyAndReturn\",\"AuditLog.updateOne\",\"AuditLog.updateMany\",\"AuditLog.updateManyAndReturn\",\"AuditLog.upsertOne\",\"AuditLog.deleteOne\",\"AuditLog.deleteMany\",\"AuditLog.groupBy\",\"AuditLog.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"userId\",\"action\",\"entity\",\"entityId\",\"summary\",\"createdAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"name\",\"org\",\"phone\",\"message\",\"MessageStatus\",\"status\",\"ip\",\"userAgent\",\"key\",\"updatedById\",\"updatedAt\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"productId\",\"mediaId\",\"sortOrder\",\"categoryId\",\"groupId\",\"code\",\"slug\",\"nameEn\",\"desc\",\"specs\",\"variants\",\"details\",\"brand\",\"origin\",\"sizes\",\"standards\",\"features\",\"applications\",\"attributes\",\"packaging\",\"minOrder\",\"seoTitle\",\"seoDescription\",\"imageId\",\"isPublished\",\"has\",\"hasEvery\",\"hasSome\",\"shortDesc\",\"fullDesc\",\"icon\",\"coverImageId\",\"mime\",\"size\",\"width\",\"height\",\"alt\",\"originalName\",\"productId_mediaId\",\"every\",\"some\",\"none\",\"categoryId_slug\",\"tokenHash\",\"expiresAt\",\"revokedAt\",\"passwordHash\",\"Role\",\"role\",\"isActive\",\"lastLoginAt\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"push\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "8ARqoAEOBAAA3AIAIAUAAN0CACC7AQAA2QIAMLwBAAALABC9AQAA2QIAML4BAgAAAAHEAUAAsAIAIdABAQCuAgAh0gEBAAAAAdoBQACwAgAhjwIBAK4CACGRAgAA2gKRAiKSAiAAxQIAIZMCQADbAgAhAQAAAAEAIAsDAADhAgAguwEAAOACADC8AQAAAwAQvQEAAOACADC-AQIArQIAIb8BAgCtAgAhxAFAALACACHXAQEArgIAIYwCAQCuAgAhjQJAALACACGOAkAA2wIAIQIDAAC6BAAgjgIAAOICACALAwAA4QIAILsBAADgAgAwvAEAAAMAEL0BAADgAgAwvgECAAAAAb8BAgCtAgAhxAFAALACACHXAQEArgIAIYwCAQAAAAGNAkAAsAIAIY4CQADbAgAhAwAAAAMAIAEAAAQAMAIAAAUAIAsDAADfAgAguwEAAN4CADC8AQAABwAQvQEAAN4CADC-AQIArQIAIb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQIDAAC6BAAgvwEAAOICACALAwAA3wIAILsBAADeAgAwvAEAAAcAEL0BAADeAgAwvgECAAAAAb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQMAAAAHACABAAAIADACAAAJACAOBAAA3AIAIAUAAN0CACC7AQAA2QIAMLwBAAALABC9AQAA2QIAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdIBAQCuAgAh2gFAALACACGPAgEArgIAIZECAADaApECIpICIADFAgAhkwJAANsCACEBAAAACwAgAQAAAAMAIAEAAAAHACABAAAAAQAgAwQAALgEACAFAAC5BAAgkwIAAOICACADAAAACwAgAQAAEAAwAgAAAQAgAwAAAAsAIAEAABAAMAIAAAEAIAMAAAALACABAAAQADACAAABACALBAAAtgQAIAUAALcEACC-AQIAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB2gFAAAAAAY8CAQAAAAGRAgAAAJECApICIAAAAAGTAkAAAAABAQwAABQAIAm-AQIAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB2gFAAAAAAY8CAQAAAAGRAgAAAJECApICIAAAAAGTAkAAAAABAQwAABYAMAEMAAAWADALBAAAnAQAIAUAAJ0EACC-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHSAQEA6AIAIdoBQADpAgAhjwIBAOgCACGRAgAAmwSRAiKSAiAAjQMAIZMCQACTBAAhAgAAAAEAIAwAABkAIAm-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHSAQEA6AIAIdoBQADpAgAhjwIBAOgCACGRAgAAmwSRAiKSAiAAjQMAIZMCQACTBAAhAgAAAAsAIAwAABsAIAIAAAALACAMAAAbACADAAAAAQAgEwAAFAAgFAAAGQAgAQAAAAEAIAEAAAALACAGBgAAlgQAIBkAAJcEACAaAACaBAAgGwAAmQQAIBwAAJgEACCTAgAA4gIAIAy7AQAA1QIAMLwBAAAiABC9AQAA1QIAML4BAgCaAgAhxAFAAJ0CACHQAQEAnAIAIdIBAQCcAgAh2gFAAJ0CACGPAgEAnAIAIZECAADWApECIpICIAC6AgAhkwJAANICACEDAAAACwAgAQAAIQAwGAAAIgAgAwAAAAsAIAEAABAAMAIAAAEAIAEAAAAFACABAAAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgCAMAAJUEACC-AQIAAAABvwECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABAQwAACoAIAe-AQIAAAABvwECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABAQwAACwAMAEMAAAsADAIAwAAlAQAIL4BAgDqAgAhvwECAOoCACHEAUAA6QIAIdcBAQDoAgAhjAIBAOgCACGNAkAA6QIAIY4CQACTBAAhAgAAAAUAIAwAAC8AIAe-AQIA6gIAIb8BAgDqAgAhxAFAAOkCACHXAQEA6AIAIYwCAQDoAgAhjQJAAOkCACGOAkAAkwQAIQIAAAADACAMAAAxACACAAAAAwAgDAAAMQAgAwAAAAUAIBMAACoAIBQAAC8AIAEAAAAFACABAAAAAwAgBgYAAI4EACAZAACPBAAgGgAAkgQAIBsAAJEEACAcAACQBAAgjgIAAOICACAKuwEAANECADC8AQAAOAAQvQEAANECADC-AQIAmgIAIb8BAgCaAgAhxAFAAJ0CACHXAQEAnAIAIYwCAQCcAgAhjQJAAJ0CACGOAkAA0gIAIQMAAAADACABAAA3ADAYAAA4ACADAAAAAwAgAQAABAAwAgAABQAgDzgAAM4CACA5AADMAgAgOgAAyQIAILsBAADNAgAwvAEAAEEAEL0BAADNAgAwvgECAAAAAcQBQACwAgAh2AEBAAAAAYECAQCuAgAhggICAK0CACGDAgIAtgIAIYQCAgC2AgAhhQIBAK4CACGGAgEArgIAIQEAAAA7ACAVLwAAyAIAIDYAAMwCACA3AADQAgAguwEAAM8CADC8AQAAPQAQvQEAAM8CADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHaAUAAsAIAIeMBAgCtAgAh5gEBAK4CACHnAQEArgIAIegBAQCuAgAh9gEBAK4CACH3AQEArgIAIfkBIADFAgAh_QEBAK4CACH-AQEArgIAIf8BAQCuAgAhgAICALYCACEELwAAigQAIDYAAIcEACA3AACNBAAggAIAAOICACAVLwAAyAIAIDYAAMwCACA3AADQAgAguwEAAM8CADC8AQAAPQAQvQEAAM8CADC-AQIAAAABxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQAAAAHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhAwAAAD0AIAEAAD4AMAIAAD8AIA84AADOAgAgOQAAzAIAIDoAAMkCACC7AQAAzQIAMLwBAABBABC9AQAAzQIAML4BAgCtAgAhxAFAALACACHYAQEArgIAIYECAQCuAgAhggICAK0CACGDAgIAtgIAIYQCAgC2AgAhhQIBAK4CACGGAgEArgIAIQEAAABBACALMAAAxgIAIDYAAMwCACC7AQAAywIAMLwBAABDABC9AQAAywIAML4BAgCtAgAh0AEBAK4CACHjAQIArQIAIeQBAgCtAgAh5wEBAK4CACHpAQEArgIAIQIwAACLBAAgNgAAhwQAIAwwAADGAgAgNgAAzAIAILsBAADLAgAwvAEAAEMAEL0BAADLAgAwvgECAAAAAdABAQCuAgAh4wECAK0CACHkAQIArQIAIecBAQCuAgAh6QEBAK4CACGLAgAAygIAIAMAAABDACABAABEADACAABFACAiMAAAxgIAIDEAAMcCACAyAADIAgAgNQAAyQIAILsBAADEAgAwvAEAAEcAEL0BAADEAgAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeQBAgCtAgAh5QECALYCACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACHpAQEArgIAIeoBAAC5AgAg6wEAALkCACDsAQEArgIAIe0BAQCuAgAh7gEBAK4CACHvAQAAuQIAIPABAAC5AgAg8QEAALkCACDyAQAAuQIAIPMBAAC1AgAg9AEBAK4CACH1AQEArgIAIfYBAQCuAgAh9wEBAK4CACH4AQIAtgIAIfkBIADFAgAhBjAAAIsEACAxAACMBAAgMgAAigQAIDUAAIgEACDlAQAA4gIAIPgBAADiAgAgIjAAAMYCACAxAADHAgAgMgAAyAIAIDUAAMkCACC7AQAAxAIAMLwBAABHABC9AQAAxAIAML4BAgAAAAHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeQBAgCtAgAh5QECALYCACHmAQEAAAAB5wEBAAAAAegBAQCuAgAh6QEBAK4CACHqAQAAuQIAIOsBAAC5AgAg7AEBAK4CACHtAQEArgIAIe4BAQCuAgAh7wEAALkCACDwAQAAuQIAIPEBAAC5AgAg8gEAALkCACDzAQAAtQIAIPQBAQCuAgAh9QEBAK4CACH2AQEArgIAIfcBAQCuAgAh-AECALYCACH5ASAAxQIAIQMAAABHACABAABIADACAABJACABAAAAQwAgAQAAAEEAIAgzAADCAgAgNAAAwwIAILsBAADBAgAwvAEAAE0AEL0BAADBAgAw4QECAK0CACHiAQIArQIAIeMBAgCtAgAhAjMAAIkEACA0AACKBAAgCTMAAMICACA0AADDAgAguwEAAMECADC8AQAATQAQvQEAAMECADDhAQIArQIAIeIBAgCtAgAh4wECAK0CACGHAgAAwAIAIAMAAABNACABAABOADACAABPACABAAAATQAgAQAAAEcAIAMAAABHACABAABIADACAABJACABAAAAQwAgAQAAAEcAIAMAAABHACABAABIADACAABJACADAAAATQAgAQAATgAwAgAATwAgAQAAAD0AIAEAAABHACABAAAATQAgAQAAADsAIAU4AACGBAAgOQAAhwQAIDoAAIgEACCDAgAA4gIAIIQCAADiAgAgAwAAAEEAIAEAAFwAMAIAADsAIAMAAABBACABAABcADACAAA7ACADAAAAQQAgAQAAXAAwAgAAOwAgDDgAAIMEACA5AACEBAAgOgAAhQQAIL4BAgAAAAHEAUAAAAAB2AEBAAAAAYECAQAAAAGCAgIAAAABgwICAAAAAYQCAgAAAAGFAgEAAAABhgIBAAAAAQEMAABgACAJvgECAAAAAcQBQAAAAAHYAQEAAAABgQIBAAAAAYICAgAAAAGDAgIAAAABhAICAAAAAYUCAQAAAAGGAgEAAAABAQwAAGIAMAEMAABiADAMOAAA4gMAIDkAAOMDACA6AADkAwAgvgECAOoCACHEAUAA6QIAIdgBAQDoAgAhgQIBAOgCACGCAgIA6gIAIYMCAgDrAgAhhAICAOsCACGFAgEA6AIAIYYCAQDoAgAhAgAAADsAIAwAAGUAIAm-AQIA6gIAIcQBQADpAgAh2AEBAOgCACGBAgEA6AIAIYICAgDqAgAhgwICAOsCACGEAgIA6wIAIYUCAQDoAgAhhgIBAOgCACECAAAAQQAgDAAAZwAgAgAAAEEAIAwAAGcAIAMAAAA7ACATAABgACAUAABlACABAAAAOwAgAQAAAEEAIAcGAADdAwAgGQAA3gMAIBoAAOEDACAbAADgAwAgHAAA3wMAIIMCAADiAgAghAIAAOICACAMuwEAAL8CADC8AQAAbgAQvQEAAL8CADC-AQIAmgIAIcQBQACdAgAh2AEBAJwCACGBAgEAnAIAIYICAgCaAgAhgwICAJsCACGEAgIAmwIAIYUCAQCcAgAhhgIBAJwCACEDAAAAQQAgAQAAbQAwGAAAbgAgAwAAAEEAIAEAAFwAMAIAADsAIAEAAAA_ACABAAAAPwAgAwAAAD0AIAEAAD4AMAIAAD8AIAMAAAA9ACABAAA-ADACAAA_ACADAAAAPQAgAQAAPgAwAgAAPwAgEi8AANoDACA2AADcAwAgNwAA2wMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABgAICAAAAAQEMAAB2ACAPvgECAAAAAcQBQAAAAAHQAQEAAAAB2gFAAAAAAeMBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAH2AQEAAAAB9wEBAAAAAfkBIAAAAAH9AQEAAAAB_gEBAAAAAf8BAQAAAAGAAgIAAAABAQwAAHgAMAEMAAB4ADABAAAAQQAgEi8AAMIDACA2AADEAwAgNwAAwwMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIQIAAAA_ACAMAAB8ACAPvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIfYBAQDoAgAh9wEBAOgCACH5ASAAjQMAIf0BAQDoAgAh_gEBAOgCACH_AQEA6AIAIYACAgDrAgAhAgAAAD0AIAwAAH4AIAIAAAA9ACAMAAB-ACABAAAAQQAgAwAAAD8AIBMAAHYAIBQAAHwAIAEAAAA_ACABAAAAPQAgBgYAAL0DACAZAAC-AwAgGgAAwQMAIBsAAMADACAcAAC_AwAggAIAAOICACASuwEAAL4CADC8AQAAhgEAEL0BAAC-AgAwvgECAJoCACHEAUAAnQIAIdABAQCcAgAh2gFAAJ0CACHjAQIAmgIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIfYBAQCcAgAh9wEBAJwCACH5ASAAugIAIf0BAQCcAgAh_gEBAJwCACH_AQEAnAIAIYACAgCbAgAhAwAAAD0AIAEAAIUBADAYAACGAQAgAwAAAD0AIAEAAD4AMAIAAD8AIAEAAABFACABAAAARQAgAwAAAEMAIAEAAEQAMAIAAEUAIAMAAABDACABAABEADACAABFACADAAAAQwAgAQAARAAwAgAARQAgCDAAALsDACA2AAC8AwAgvgECAAAAAdABAQAAAAHjAQIAAAAB5AECAAAAAecBAQAAAAHpAQEAAAABAQwAAI4BACAGvgECAAAAAdABAQAAAAHjAQIAAAAB5AECAAAAAecBAQAAAAHpAQEAAAABAQwAAJABADABDAAAkAEAMAgwAACtAwAgNgAArgMAIL4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIeQBAgDqAgAh5wEBAOgCACHpAQEA6AIAIQIAAABFACAMAACTAQAgBr4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIeQBAgDqAgAh5wEBAOgCACHpAQEA6AIAIQIAAABDACAMAACVAQAgAgAAAEMAIAwAAJUBACADAAAARQAgEwAAjgEAIBQAAJMBACABAAAARQAgAQAAAEMAIAUGAACoAwAgGQAAqQMAIBoAAKwDACAbAACrAwAgHAAAqgMAIAm7AQAAvQIAMLwBAACcAQAQvQEAAL0CADC-AQIAmgIAIdABAQCcAgAh4wECAJoCACHkAQIAmgIAIecBAQCcAgAh6QEBAJwCACEDAAAAQwAgAQAAmwEAMBgAAJwBACADAAAAQwAgAQAARAAwAgAARQAgAQAAAEkAIAEAAABJACADAAAARwAgAQAASAAwAgAASQAgAwAAAEcAIAEAAEgAMAIAAEkAIAMAAABHACABAABIADACAABJACAfMAAApAMAIDEAAKUDACAyAACmAwAgNQAApwMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeUBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAHpAQEAAAAB6gEAAJ4DACDrAQAAnwMAIOwBAQAAAAHtAQEAAAAB7gEBAAAAAe8BAACgAwAg8AEAAKEDACDxAQAAogMAIPIBAACjAwAg8wGAAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AQIAAAAB-QEgAAAAAQEMAACkAQAgG74BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeUBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAHpAQEAAAAB6gEAAJ4DACDrAQAAnwMAIOwBAQAAAAHtAQEAAAAB7gEBAAAAAe8BAACgAwAg8AEAAKEDACDxAQAAogMAIPIBAACjAwAg8wGAAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AQIAAAAB-QEgAAAAAQEMAACmAQAwAQwAAKYBADABAAAAQwAgAQAAAEEAIB8wAACOAwAgMQAAjwMAIDIAAJADACA1AACRAwAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeQBAgDqAgAh5QECAOsCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACHpAQEA6AIAIeoBAACHAwAg6wEAAIgDACDsAQEA6AIAIe0BAQDoAgAh7gEBAOgCACHvAQAAiQMAIPABAACKAwAg8QEAAIsDACDyAQAAjAMAIPMBgAAAAAH0AQEA6AIAIfUBAQDoAgAh9gEBAOgCACH3AQEA6AIAIfgBAgDrAgAh-QEgAI0DACECAAAASQAgDAAAqwEAIBu-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5AECAOoCACHlAQIA6wIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIekBAQDoAgAh6gEAAIcDACDrAQAAiAMAIOwBAQDoAgAh7QEBAOgCACHuAQEA6AIAIe8BAACJAwAg8AEAAIoDACDxAQAAiwMAIPIBAACMAwAg8wGAAAAAAfQBAQDoAgAh9QEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-AECAOsCACH5ASAAjQMAIQIAAABHACAMAACtAQAgAgAAAEcAIAwAAK0BACABAAAAQwAgAQAAAEEAIAMAAABJACATAACkAQAgFAAAqwEAIAEAAABJACABAAAARwAgBwYAAIIDACAZAACDAwAgGgAAhgMAIBsAAIUDACAcAACEAwAg5QEAAOICACD4AQAA4gIAIB67AQAAuAIAMLwBAAC2AQAQvQEAALgCADC-AQIAmgIAIcQBQACdAgAh0AEBAJwCACHaAUAAnQIAIeMBAgCaAgAh5AECAJoCACHlAQIAmwIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIekBAQCcAgAh6gEAALkCACDrAQAAuQIAIOwBAQCcAgAh7QEBAJwCACHuAQEAnAIAIe8BAAC5AgAg8AEAALkCACDxAQAAuQIAIPIBAAC5AgAg8wEAALICACD0AQEAnAIAIfUBAQCcAgAh9gEBAJwCACH3AQEAnAIAIfgBAgCbAgAh-QEgALoCACEDAAAARwAgAQAAtQEAMBgAALYBACADAAAARwAgAQAASAAwAgAASQAgAQAAAE8AIAEAAABPACADAAAATQAgAQAATgAwAgAATwAgAwAAAE0AIAEAAE4AMAIAAE8AIAMAAABNACABAABOADACAABPACAFMwAAgAMAIDQAAIEDACDhAQIAAAAB4gECAAAAAeMBAgAAAAEBDAAAvgEAIAPhAQIAAAAB4gECAAAAAeMBAgAAAAEBDAAAwAEAMAEMAADAAQAwBTMAAP4CACA0AAD_AgAg4QECAOoCACHiAQIA6gIAIeMBAgDqAgAhAgAAAE8AIAwAAMMBACAD4QECAOoCACHiAQIA6gIAIeMBAgDqAgAhAgAAAE0AIAwAAMUBACACAAAATQAgDAAAxQEAIAMAAABPACATAAC-AQAgFAAAwwEAIAEAAABPACABAAAATQAgBQYAAPkCACAZAAD6AgAgGgAA_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_gEAEL0BAACoAgAwvgECAJoCACHEAUAAnQIAIdABAQCcAgAh0QEBAJwCACHSAQEAnAIAIdMBAQCcAgAh1QEAAKkC1QEi1gEBAJwCACHXAQEAnAIAIQcGAACfAgAgGwAAqwIAIBwAAKsCACDFAQAAANUBAsYBAAAA1QEIxwEAAADVAQjMAQAAqgLVASIHBgAAnwIAIBsAAKsCACAcAACrAgAgxQEAAADVAQLGAQAAANUBCMcBAAAA1QEIzAEAAKoC1QEiBMUBAAAA1QECxgEAAADVAQjHAQAAANUBCMwBAACrAtUBIgy7AQAArAIAMLwBAADrAQAQvQEAAKwCADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHRAQEArgIAIdIBAQCuAgAh0wEBAK4CACHVAQAArwLVASLWAQEArgIAIdcBAQCuAgAhCMUBAgAAAAHGAQIAAAAExwECAAAABMgBAgAAAAHJAQIAAAABygECAAAAAcsBAgAAAAHMAQIAnwIAIQvFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAKICACHNAQEAAAABzgEBAAAAAc8BAQAAAAEExQEAAADVAQLGAQAAANUBCMcBAAAA1QEIzAEAAKsC1QEiCMUBQAAAAAHGAUAAAAAExwFAAAAABMgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAAoAIAIQcMAACyAgAguwEAALECADC8AQAA5QEAEL0BAACxAgAw2AEBAJwCACHZAQIAmwIAIdoBQACdAgAhDwYAAJ8CACAbAACzAgAgHAAAswIAIMUBgAAAAAHIAYAAAAAByQGAAAAAAcoBgAAAAAHLAYAAAAABzAGAAAAAAdsBAQAAAAHcAQEAAAAB3QEBAAAAAd4BgAAAAAHfAYAAAAAB4AGAAAAAAQzFAYAAAAAByAGAAAAAAckBgAAAAAHKAYAAAAABywGAAAAAAcwBgAAAAAHbAQEAAAAB3AEBAAAAAd0BAQAAAAHeAYAAAAAB3wGAAAAAAeABgAAAAAEHDAAAtQIAILsBAAC0AgAwvAEAANIBABC9AQAAtAIAMNgBAQCuAgAh2QECALYCACHaAUAAsAIAIQzFAYAAAAAByAGAAAAAAckBgAAAAAHKAYAAAAABywGAAAAAAcwBgAAAAAHbAQEAAAAB3AEBAAAAAd0BAQAAAAHeAYAAAAAB3wGAAAAAAeABgAAAAAEIxQECAAAAAcYBAgAAAAXHAQIAAAAFyAECAAAAAckBAgAAAAHKAQIAAAABywECAAAAAcwBAgCkAgAhBrsBAAC3AgAwvAEAAMwBABC9AQAAtwIAMOEBAgCaAgAh4gECAJoCACHjAQIAmgIAIR67AQAAuAIAMLwBAAC2AQAQvQEAALgCADC-AQIAmgIAIcQBQACdAgAh0AEBAJwCACHaAUAAnQIAIeMBAgCaAgAh5AECAJoCACHlAQIAmwIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIekBAQCcAgAh6gEAALkCACDrAQAAuQIAIOwBAQCcAgAh7QEBAJwCACHuAQEAnAIAIe8BAAC5AgAg8AEAALkCACDxAQAAuQIAIPIBAAC5AgAg8wEAALICACD0AQEAnAIAIfUBAQCcAgAh9gEBAJwCACH3AQEAnAIAIfgBAgCbAgAh-QEgALoCACEExQEBAAAABfoBAQAAAAH7AQEAAAAE_AEBAAAABAUGAACfAgAgGwAAvAIAIBwAALwCACDFASAAAAABzAEgALsCACEFBgAAnwIAIBsAALwCACAcAAC8AgAgxQEgAAAAAcwBIAC7AgAhAsUBIAAAAAHMASAAvAIAIQm7AQAAvQIAMLwBAACcAQAQvQEAAL0CADC-AQIAmgIAIdABAQCcAgAh4wECAJoCACHkAQIAmgIAIecBAQCcAgAh6QEBAJwCACESuwEAAL4CADC8AQAAhgEAEL0BAAC-AgAwvgECAJoCACHEAUAAnQIAIdABAQCcAgAh2gFAAJ0CACHjAQIAmgIAIeYBAQCcAgAh5wEBAJwCACHoAQEAnAIAIfYBAQCcAgAh9wEBAJwCACH5ASAAugIAIf0BAQCcAgAh_gEBAJwCACH_AQEAnAIAIYACAgCbAgAhDLsBAAC_AgAwvAEAAG4AEL0BAAC_AgAwvgECAJoCACHEAUAAnQIAIdgBAQCcAgAhgQIBAJwCACGCAgIAmgIAIYMCAgCbAgAhhAICAJsCACGFAgEAnAIAIYYCAQCcAgAhAuEBAgAAAAHiAQIAAAABCDMAAMICACA0AADDAgAguwEAAMECADC8AQAATQAQvQEAAMECADDhAQIArQIAIeIBAgCtAgAh4wECAK0CACEkMAAAxgIAIDEAAMcCACAyAADIAgAgNQAAyQIAILsBAADEAgAwvAEAAEcAEL0BAADEAgAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeQBAgCtAgAh5QECALYCACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACHpAQEArgIAIeoBAAC5AgAg6wEAALkCACDsAQEArgIAIe0BAQCuAgAh7gEBAK4CACHvAQAAuQIAIPABAAC5AgAg8QEAALkCACDyAQAAuQIAIPMBAAC1AgAg9AEBAK4CACH1AQEArgIAIfYBAQCuAgAh9wEBAK4CACH4AQIAtgIAIfkBIADFAgAhlAIAAEcAIJUCAABHACAROAAAzgIAIDkAAMwCACA6AADJAgAguwEAAM0CADC8AQAAQQAQvQEAAM0CADC-AQIArQIAIcQBQACwAgAh2AEBAK4CACGBAgEArgIAIYICAgCtAgAhgwICALYCACGEAgIAtgIAIYUCAQCuAgAhhgIBAK4CACGUAgAAQQAglQIAAEEAICIwAADGAgAgMQAAxwIAIDIAAMgCACA1AADJAgAguwEAAMQCADC8AQAARwAQvQEAAMQCADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHaAUAAsAIAIeMBAgCtAgAh5AECAK0CACHlAQIAtgIAIeYBAQCuAgAh5wEBAK4CACHoAQEArgIAIekBAQCuAgAh6gEAALkCACDrAQAAuQIAIOwBAQCuAgAh7QEBAK4CACHuAQEArgIAIe8BAAC5AgAg8AEAALkCACDxAQAAuQIAIPIBAAC5AgAg8wEAALUCACD0AQEArgIAIfUBAQCuAgAh9gEBAK4CACH3AQEArgIAIfgBAgC2AgAh-QEgAMUCACECxQEgAAAAAcwBIAC8AgAhFy8AAMgCACA2AADMAgAgNwAA0AIAILsBAADPAgAwvAEAAD0AEL0BAADPAgAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeYBAQCuAgAh5wEBAK4CACHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhlAIAAD0AIJUCAAA9ACANMAAAxgIAIDYAAMwCACC7AQAAywIAMLwBAABDABC9AQAAywIAML4BAgCtAgAh0AEBAK4CACHjAQIArQIAIeQBAgCtAgAh5wEBAK4CACHpAQEArgIAIZQCAABDACCVAgAAQwAgETgAAM4CACA5AADMAgAgOgAAyQIAILsBAADNAgAwvAEAAEEAEL0BAADNAgAwvgECAK0CACHEAUAAsAIAIdgBAQCuAgAhgQIBAK4CACGCAgIArQIAIYMCAgC2AgAhhAICALYCACGFAgEArgIAIYYCAQCuAgAhlAIAAEEAIJUCAABBACADiAIAAE0AIIkCAABNACCKAgAATQAgAuQBAgAAAAHnAQEAAAABCzAAAMYCACA2AADMAgAguwEAAMsCADC8AQAAQwAQvQEAAMsCADC-AQIArQIAIdABAQCuAgAh4wECAK0CACHkAQIArQIAIecBAQCuAgAh6QEBAK4CACEDiAIAAEcAIIkCAABHACCKAgAARwAgDzgAAM4CACA5AADMAgAgOgAAyQIAILsBAADNAgAwvAEAAEEAEL0BAADNAgAwvgECAK0CACHEAUAAsAIAIdgBAQCuAgAhgQIBAK4CACGCAgIArQIAIYMCAgC2AgAhhAICALYCACGFAgEArgIAIYYCAQCuAgAhA4gCAAA9ACCJAgAAPQAgigIAAD0AIBUvAADIAgAgNgAAzAIAIDcAANACACC7AQAAzwIAMLwBAAA9ABC9AQAAzwIAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACH2AQEArgIAIfcBAQCuAgAh-QEgAMUCACH9AQEArgIAIf4BAQCuAgAh_wEBAK4CACGAAgIAtgIAIQOIAgAAQwAgiQIAAEMAIIoCAABDACAKuwEAANECADC8AQAAOAAQvQEAANECADC-AQIAmgIAIb8BAgCaAgAhxAFAAJ0CACHXAQEAnAIAIYwCAQCcAgAhjQJAAJ0CACGOAkAA0gIAIQsGAACkAgAgGwAA1AIAIBwAANQCACDFAUAAAAABxgFAAAAABccBQAAAAAXIAUAAAAAByQFAAAAAAcoBQAAAAAHLAUAAAAABzAFAANMCACELBgAApAIAIBsAANQCACAcAADUAgAgxQFAAAAAAcYBQAAAAAXHAUAAAAAFyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQADTAgAhCMUBQAAAAAHGAUAAAAAFxwFAAAAABcgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAA1AIAIQy7AQAA1QIAMLwBAAAiABC9AQAA1QIAML4BAgCaAgAhxAFAAJ0CACHQAQEAnAIAIdIBAQCcAgAh2gFAAJ0CACGPAgEAnAIAIZECAADWApECIpICIAC6AgAhkwJAANICACEHBgAAnwIAIBsAANgCACAcAADYAgAgxQEAAACRAgLGAQAAAJECCMcBAAAAkQIIzAEAANcCkQIiBwYAAJ8CACAbAADYAgAgHAAA2AIAIMUBAAAAkQICxgEAAACRAgjHAQAAAJECCMwBAADXApECIgTFAQAAAJECAsYBAAAAkQIIxwEAAACRAgjMAQAA2AKRAiIOBAAA3AIAIAUAAN0CACC7AQAA2QIAMLwBAAALABC9AQAA2QIAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdIBAQCuAgAh2gFAALACACGPAgEArgIAIZECAADaApECIpICIADFAgAhkwJAANsCACEExQEAAACRAgLGAQAAAJECCMcBAAAAkQIIzAEAANgCkQIiCMUBQAAAAAHGAUAAAAAFxwFAAAAABcgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAA1AIAIQOIAgAAAwAgiQIAAAMAIIoCAAADACADiAIAAAcAIIkCAAAHACCKAgAABwAgCwMAAN8CACC7AQAA3gIAMLwBAAAHABC9AQAA3gIAML4BAgCtAgAhvwECALYCACHAAQEArgIAIcEBAQCuAgAhwgEBAK4CACHDAQEArgIAIcQBQACwAgAhEAQAANwCACAFAADdAgAguwEAANkCADC8AQAACwAQvQEAANkCADC-AQIArQIAIcQBQACwAgAh0AEBAK4CACHSAQEArgIAIdoBQACwAgAhjwIBAK4CACGRAgAA2gKRAiKSAiAAxQIAIZMCQADbAgAhlAIAAAsAIJUCAAALACALAwAA4QIAILsBAADgAgAwvAEAAAMAEL0BAADgAgAwvgECAK0CACG_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-AECALYCACH5ASAAxQIAIRq-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5AECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACHpAQEA6AIAIeoBAACHAwAg6wEAAIgDACDsAQEA6AIAIe0BAQDoAgAh7gEBAOgCACHvAQAAiQMAIPABAACKAwAg8QEAAIsDACDyAQAAjAMAIPMBgAAAAAH0AQEA6AIAIfUBAQDoAgAh9gEBAOgCACH3AQEA6AIAIfgBAgDrAgAh-QEgAI0DACEdMAAAjgMAIDIAAJADACA1AACRAwAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeQBAgDqAgAh5gEBAOgCACHnAQEA6AIAIegBAQDoAgAh6QEBAOgCACHqAQAAhwMAIOsBAACIAwAg7AEBAOgCACHtAQEA6AIAIe4BAQDoAgAh7wEAAIkDACDwAQAAigMAIPEBAACLAwAg8gEAAIwDACDzAYAAAAAB9AEBAOgCACH1AQEA6AIAIfYBAQDoAgAh9wEBAOgCACH4AQIA6wIAIfkBIACNAwAhHTAAAKQDACAyAACmAwAgNQAApwMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBAgAAAAH5ASAAAAABAxMAAMwEACCWAgAAzQQAIJwCAAA_ACAEEwAArwMAMJYCAACwAwAwmAIAALIDACCcAgAAswMAMAAAAAAABxMAAMUEACAUAADKBAAglgIAAMYEACCXAgAAyQQAIJoCAABBACCbAgAAQQAgnAIAADsAIAsTAADOAwAwFAAA0wMAMJYCAADPAwAwlwIAANADADCYAgAA0QMAIJkCAADSAwAwmgIAANIDADCbAgAA0gMAMJwCAADSAwAwnQIAANQDADCeAgAA1QMAMAsTAADFAwAwFAAAyQMAMJYCAADGAwAwlwIAAMcDADCYAgAAyAMAIJkCAACzAwAwmgIAALMDADCbAgAAswMAMJwCAACzAwAwnQIAAMoDADCeAgAAtgMAMB0xAAClAwAgMgAApgMAIDUAAKcDACC-AQIAAAABxAFAAAAAAdABAQAAAAHaAUAAAAAB4wECAAAAAeUBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAHpAQEAAAAB6gEAAJ4DACDrAQAAnwMAIOwBAQAAAAHtAQEAAAAB7gEBAAAAAe8BAACgAwAg8AEAAKEDACDxAQAAogMAIPIBAACjAwAg8wGAAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AQIAAAAB-QEgAAAAAQIAAABJACATAADNAwAgAwAAAEkAIBMAAM0DACAUAADMAwAgAQwAAMgEADACAAAASQAgDAAAzAMAIAIAAAC3AwAgDAAAywMAIBq-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5QECAOsCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACHpAQEA6AIAIeoBAACHAwAg6wEAAIgDACDsAQEA6AIAIe0BAQDoAgAh7gEBAOgCACHvAQAAiQMAIPABAACKAwAg8QEAAIsDACDyAQAAjAMAIPMBgAAAAAH0AQEA6AIAIfUBAQDoAgAh9gEBAOgCACH3AQEA6AIAIfgBAgDrAgAh-QEgAI0DACEdMQAAjwMAIDIAAJADACA1AACRAwAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeUBAgDrAgAh5gEBAOgCACHnAQEA6AIAIegBAQDoAgAh6QEBAOgCACHqAQAAhwMAIOsBAACIAwAg7AEBAOgCACHtAQEA6AIAIe4BAQDoAgAh7wEAAIkDACDwAQAAigMAIPEBAACLAwAg8gEAAIwDACDzAYAAAAAB9AEBAOgCACH1AQEA6AIAIfYBAQDoAgAh9wEBAOgCACH4AQIA6wIAIfkBIACNAwAhHTEAAKUDACAyAACmAwAgNQAApwMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5QECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBAgAAAAH5ASAAAAABBjYAALwDACC-AQIAAAAB0AEBAAAAAeMBAgAAAAHnAQEAAAAB6QEBAAAAAQIAAABFACATAADZAwAgAwAAAEUAIBMAANkDACAUAADYAwAgAQwAAMcEADAMMAAAxgIAIDYAAMwCACC7AQAAywIAMLwBAABDABC9AQAAywIAML4BAgAAAAHQAQEArgIAIeMBAgCtAgAh5AECAK0CACHnAQEArgIAIekBAQCuAgAhiwIAAMoCACACAAAARQAgDAAA2AMAIAIAAADWAwAgDAAA1wMAIAm7AQAA1QMAMLwBAADWAwAQvQEAANUDADC-AQIArQIAIdABAQCuAgAh4wECAK0CACHkAQIArQIAIecBAQCuAgAh6QEBAK4CACEJuwEAANUDADC8AQAA1gMAEL0BAADVAwAwvgECAK0CACHQAQEArgIAIeMBAgCtAgAh5AECAK0CACHnAQEArgIAIekBAQCuAgAhBb4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIecBAQDoAgAh6QEBAOgCACEGNgAArgMAIL4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIecBAQDoAgAh6QEBAOgCACEGNgAAvAMAIL4BAgAAAAHQAQEAAAAB4wECAAAAAecBAQAAAAHpAQEAAAABAxMAAMUEACCWAgAAxgQAIJwCAAA7ACAEEwAAzgMAMJYCAADPAwAwmAIAANEDACCcAgAA0gMAMAQTAADFAwAwlgIAAMYDADCYAgAAyAMAIJwCAACzAwAwAAAAAAALEwAA9wMAMBQAAPwDADCWAgAA-AMAMJcCAAD5AwAwmAIAAPoDACCZAgAA-wMAMJoCAAD7AwAwmwIAAPsDADCcAgAA-wMAMJ0CAAD9AwAwngIAAP4DADALEwAA7gMAMBQAAPIDADCWAgAA7wMAMJcCAADwAwAwmAIAAPEDACCZAgAAswMAMJoCAACzAwAwmwIAALMDADCcAgAAswMAMJ0CAADzAwAwngIAALYDADALEwAA5QMAMBQAAOkDADCWAgAA5gMAMJcCAADnAwAwmAIAAOgDACCZAgAAlgMAMJoCAACWAwAwmwIAAJYDADCcAgAAlgMAMJ0CAADqAwAwngIAAJkDADADMwAAgAMAIOEBAgAAAAHjAQIAAAABAgAAAE8AIBMAAO0DACADAAAATwAgEwAA7QMAIBQAAOwDACABDAAAxAQAMAIAAABPACAMAADsAwAgAgAAAJoDACAMAADrAwAgAuEBAgDqAgAh4wECAOoCACEDMwAA_gIAIOEBAgDqAgAh4wECAOoCACEDMwAAgAMAIOEBAgAAAAHjAQIAAAABHTAAAKQDACAxAAClAwAgNQAApwMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeUBAgAAAAHmAQEAAAAB5wEBAAAAAegBAQAAAAHpAQEAAAAB6gEAAJ4DACDrAQAAnwMAIOwBAQAAAAHtAQEAAAAB7gEBAAAAAe8BAACgAwAg8AEAAKEDACDxAQAAogMAIPIBAACjAwAg8wGAAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAABAgAAAEkAIBMAAPYDACADAAAASQAgEwAA9gMAIBQAAPUDACABDAAAwwQAMAIAAABJACAMAAD1AwAgAgAAALcDACAMAAD0AwAgGr4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHkAQIA6gIAIeUBAgDrAgAh5gEBAOgCACHnAQEA6AIAIegBAQDoAgAh6QEBAOgCACHqAQAAhwMAIOsBAACIAwAg7AEBAOgCACHtAQEA6AIAIe4BAQDoAgAh7wEAAIkDACDwAQAAigMAIPEBAACLAwAg8gEAAIwDACDzAYAAAAAB9AEBAOgCACH1AQEA6AIAIfYBAQDoAgAh9wEBAOgCACH5ASAAjQMAIR0wAACOAwAgMQAAjwMAIDUAAJEDACC-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5AECAOoCACHlAQIA6wIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIekBAQDoAgAh6gEAAIcDACDrAQAAiAMAIOwBAQDoAgAh7QEBAOgCACHuAQEA6AIAIe8BAACJAwAg8AEAAIoDACDxAQAAiwMAIPIBAACMAwAg8wGAAAAAAfQBAQDoAgAh9QEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACEdMAAApAMAIDEAAKUDACA1AACnAwAgvgECAAAAAcQBQAAAAAHQAQEAAAAB2gFAAAAAAeMBAgAAAAHkAQIAAAAB5QECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfkBIAAAAAEQNgAA3AMAIDcAANsDACC-AQIAAAABxAFAAAAAAdABAQAAAAHaAUAAAAAB4wECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAfYBAQAAAAH3AQEAAAAB-QEgAAAAAf0BAQAAAAH-AQEAAAAB_wEBAAAAAQIAAAA_ACATAACCBAAgAwAAAD8AIBMAAIIEACAUAACBBAAgAQwAAMIEADAVLwAAyAIAIDYAAMwCACA3AADQAgAguwEAAM8CADC8AQAAPQAQvQEAAM8CADC-AQIAAAABxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQAAAAHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhAgAAAD8AIAwAAIEEACACAAAA_wMAIAwAAIAEACASuwEAAP4DADC8AQAA_wMAEL0BAAD-AwAwvgECAK0CACHEAUAAsAIAIdABAQCuAgAh2gFAALACACHjAQIArQIAIeYBAQCuAgAh5wEBAK4CACHoAQEArgIAIfYBAQCuAgAh9wEBAK4CACH5ASAAxQIAIf0BAQCuAgAh_gEBAK4CACH_AQEArgIAIYACAgC2AgAhErsBAAD-AwAwvAEAAP8DABC9AQAA_gMAML4BAgCtAgAhxAFAALACACHQAQEArgIAIdoBQACwAgAh4wECAK0CACHmAQEArgIAIecBAQCuAgAh6AEBAK4CACH2AQEArgIAIfcBAQCuAgAh-QEgAMUCACH9AQEArgIAIf4BAQCuAgAh_wEBAK4CACGAAgIAtgIAIQ6-AQIA6gIAIcQBQADpAgAh0AEBAOgCACHaAUAA6QIAIeMBAgDqAgAh5gEBAOgCACHnAQEA6AIAIegBAQDoAgAh9gEBAOgCACH3AQEA6AIAIfkBIACNAwAh_QEBAOgCACH-AQEA6AIAIf8BAQDoAgAhEDYAAMQDACA3AADDAwAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh2gFAAOkCACHjAQIA6gIAIeYBAQDoAgAh5wEBAOgCACHoAQEA6AIAIfYBAQDoAgAh9wEBAOgCACH5ASAAjQMAIf0BAQDoAgAh_gEBAOgCACH_AQEA6AIAIRA2AADcAwAgNwAA2wMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABBBMAAPcDADCWAgAA-AMAMJgCAAD6AwAgnAIAAPsDADAEEwAA7gMAMJYCAADvAwAwmAIAAPEDACCcAgAAswMAMAQTAADlAwAwlgIAAOYDADCYAgAA6AMAIJwCAACWAwAwAAAABjAAAIsEACAxAACMBAAgMgAAigQAIDUAAIgEACDlAQAA4gIAIPgBAADiAgAgBTgAAIYEACA5AACHBAAgOgAAiAQAIIMCAADiAgAghAIAAOICACAELwAAigQAIDYAAIcEACA3AACNBAAggAIAAOICACACMAAAiwQAIDYAAIcEACAAAAAAAAABmQJAAAAAAQUTAAC9BAAgFAAAwAQAIJYCAAC-BAAglwIAAL8EACCcAgAAAQAgAxMAAL0EACCWAgAAvgQAIJwCAAABACAAAAAAAAGZAgAAAJECAgsTAACqBAAwFAAArwQAMJYCAACrBAAwlwIAAKwEADCYAgAArQQAIJkCAACuBAAwmgIAAK4EADCbAgAArgQAMJwCAACuBAAwnQIAALAEADCeAgAAsQQAMAsTAACeBAAwFAAAowQAMJYCAACfBAAwlwIAAKAEADCYAgAAoQQAIJkCAACiBAAwmgIAAKIEADCbAgAAogQAMJwCAACiBAAwnQIAAKQEADCeAgAApQQAMAa-AQIAAAABwAEBAAAAAcEBAQAAAAHCAQEAAAABwwEBAAAAAcQBQAAAAAECAAAACQAgEwAAqQQAIAMAAAAJACATAACpBAAgFAAAqAQAIAEMAAC8BAAwCwMAAN8CACC7AQAA3gIAMLwBAAAHABC9AQAA3gIAML4BAgAAAAG_AQIAtgIAIcABAQCuAgAhwQEBAK4CACHCAQEArgIAIcMBAQCuAgAhxAFAALACACECAAAACQAgDAAAqAQAIAIAAACmBAAgDAAApwQAIAq7AQAApQQAMLwBAACmBAAQvQEAAKUEADC-AQIArQIAIb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQq7AQAApQQAMLwBAACmBAAQvQEAAKUEADC-AQIArQIAIb8BAgC2AgAhwAEBAK4CACHBAQEArgIAIcIBAQCuAgAhwwEBAK4CACHEAUAAsAIAIQa-AQIA6gIAIcABAQDoAgAhwQEBAOgCACHCAQEA6AIAIcMBAQDoAgAhxAFAAOkCACEGvgECAOoCACHAAQEA6AIAIcEBAQDoAgAhwgEBAOgCACHDAQEA6AIAIcQBQADpAgAhBr4BAgAAAAHAAQEAAAABwQEBAAAAAcIBAQAAAAHDAQEAAAABxAFAAAAAAQa-AQIAAAABxAFAAAAAAdcBAQAAAAGMAgEAAAABjQJAAAAAAY4CQAAAAAECAAAABQAgEwAAtQQAIAMAAAAFACATAAC1BAAgFAAAtAQAIAEMAAC7BAAwCwMAAOECACC7AQAA4AIAMLwBAAADABC9AQAA4AIAML4BAgAAAAG_AQIArQIAIcQBQACwAgAh1wEBAK4CACGMAgEAAAABjQJAALACACGOAkAA2wIAIQIAAAAFACAMAAC0BAAgAgAAALIEACAMAACzBAAgCrsBAACxBAAwvAEAALIEABC9AQAAsQQAML4BAgCtAgAhvwECAK0CACHEAUAAsAIAIdcBAQCuAgAhjAIBAK4CACGNAkAAsAIAIY4CQADbAgAhCrsBAACxBAAwvAEAALIEABC9AQAAsQQAML4BAgCtAgAhvwECAK0CACHEAUAAsAIAIdcBAQCuAgAhjAIBAK4CACGNAkAAsAIAIY4CQADbAgAhBr4BAgDqAgAhxAFAAOkCACHXAQEA6AIAIYwCAQDoAgAhjQJAAOkCACGOAkAAkwQAIQa-AQIA6gIAIcQBQADpAgAh1wEBAOgCACGMAgEA6AIAIY0CQADpAgAhjgJAAJMEACEGvgECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABBBMAAKoEADCWAgAAqwQAMJgCAACtBAAgnAIAAK4EADAEEwAAngQAMJYCAACfBAAwmAIAAKEEACCcAgAAogQAMAAAAwQAALgEACAFAAC5BAAgkwIAAOICACAGvgECAAAAAcQBQAAAAAHXAQEAAAABjAIBAAAAAY0CQAAAAAGOAkAAAAABBr4BAgAAAAHAAQEAAAABwQEBAAAAAcIBAQAAAAHDAQEAAAABxAFAAAAAAQoFAAC3BAAgvgECAAAAAcQBQAAAAAHQAQEAAAAB0gEBAAAAAdoBQAAAAAGPAgEAAAABkQIAAACRAgKSAiAAAAABkwJAAAAAAQIAAAABACATAAC9BAAgAwAAAAsAIBMAAL0EACAUAADBBAAgDAAAAAsAIAUAAJ0EACAMAADBBAAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh0gEBAOgCACHaAUAA6QIAIY8CAQDoAgAhkQIAAJsEkQIikgIgAI0DACGTAkAAkwQAIQoFAACdBAAgvgECAOoCACHEAUAA6QIAIdABAQDoAgAh0gEBAOgCACHaAUAA6QIAIY8CAQDoAgAhkQIAAJsEkQIikgIgAI0DACGTAkAAkwQAIQ6-AQIAAAABxAFAAAAAAdABAQAAAAHaAUAAAAAB4wECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAfYBAQAAAAH3AQEAAAAB-QEgAAAAAf0BAQAAAAH-AQEAAAAB_wEBAAAAARq-AQIAAAABxAFAAAAAAdABAQAAAAHaAUAAAAAB4wECAAAAAeQBAgAAAAHlAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB6QEBAAAAAeoBAACeAwAg6wEAAJ8DACDsAQEAAAAB7QEBAAAAAe4BAQAAAAHvAQAAoAMAIPABAAChAwAg8QEAAKIDACDyAQAAowMAIPMBgAAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-QEgAAAAAQLhAQIAAAAB4wECAAAAAQs5AACEBAAgOgAAhQQAIL4BAgAAAAHEAUAAAAAB2AEBAAAAAYECAQAAAAGCAgIAAAABgwICAAAAAYQCAgAAAAGFAgEAAAABhgIBAAAAAQIAAAA7ACATAADFBAAgBb4BAgAAAAHQAQEAAAAB4wECAAAAAecBAQAAAAHpAQEAAAABGr4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5QECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBAgAAAAH5ASAAAAABAwAAAEEAIBMAAMUEACAUAADLBAAgDQAAAEEAIAwAAMsEACA5AADjAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIQs5AADjAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIREvAADaAwAgNgAA3AMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABgAICAAAAAQIAAAA_ACATAADMBAAgGr4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5AECAAAAAeYBAQAAAAHnAQEAAAAB6AEBAAAAAekBAQAAAAHqAQAAngMAIOsBAACfAwAg7AEBAAAAAe0BAQAAAAHuAQEAAAAB7wEAAKADACDwAQAAoQMAIPEBAACiAwAg8gEAAKMDACDzAYAAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBAgAAAAH5ASAAAAABAwAAAD0AIBMAAMwEACAUAADRBAAgEwAAAD0AIAwAANEEACAvAADCAwAgNgAAxAMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIREvAADCAwAgNgAAxAMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIQs4AACDBAAgOgAAhQQAIL4BAgAAAAHEAUAAAAAB2AEBAAAAAYECAQAAAAGCAgIAAAABgwICAAAAAYQCAgAAAAGFAgEAAAABhgIBAAAAAQIAAAA7ACATAADSBAAgBzAAALsDACC-AQIAAAAB0AEBAAAAAeMBAgAAAAHkAQIAAAAB5wEBAAAAAekBAQAAAAECAAAARQAgEwAA1AQAIBEvAADaAwAgNwAA2wMAIL4BAgAAAAHEAUAAAAAB0AEBAAAAAdoBQAAAAAHjAQIAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB9gEBAAAAAfcBAQAAAAH5ASAAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABgAICAAAAAQIAAAA_ACATAADWBAAgAuIBAgAAAAHjAQIAAAABAwAAAEEAIBMAANIEACAUAADbBAAgDQAAAEEAIAwAANsEACA4AADiAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIQs4AADiAwAgOgAA5AMAIL4BAgDqAgAhxAFAAOkCACHYAQEA6AIAIYECAQDoAgAhggICAOoCACGDAgIA6wIAIYQCAgDrAgAhhQIBAOgCACGGAgEA6AIAIQMAAABDACATAADUBAAgFAAA3gQAIAkAAABDACAMAADeBAAgMAAArQMAIL4BAgDqAgAh0AEBAOgCACHjAQIA6gIAIeQBAgDqAgAh5wEBAOgCACHpAQEA6AIAIQcwAACtAwAgvgECAOoCACHQAQEA6AIAIeMBAgDqAgAh5AECAOoCACHnAQEA6AIAIekBAQDoAgAhAwAAAD0AIBMAANYEACAUAADhBAAgEwAAAD0AIAwAAOEEACAvAADCAwAgNwAAwwMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_wEBAOgCACGAAgIA6wIAIREvAADCAwAgNwAAwwMAIL4BAgDqAgAhxAFAAOkCACHQAQEA6AIAIdoBQADpAgAh4wECAOoCACHmAQEA6AIAIecBAQDoAgAh6AEBAOgCACH2AQEA6AIAIfcBAQDoAgAh-QEgAI0DACH9AQEA6AIAIf4BAQDoAgAh_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_GQBAGgBBGwBCHABDAAAAAAAFBgA_GQBAGgBBGwBCHABDAjMAGzQAGAIzABs0ABgFBgBIGQBJGgBKGwBLHABMAAAAAAAFBgBIGQBJGgBKGwBLHABMAAAABQYAUhkAUxoAVBsAVRwAVgAAAAAABQYAUhkAUxoAVBsAVRwAVgAAAAUGAFwZAF0aAF4bAF8cAGAAAAAAAAUGAFwZAF0aAF4bAF8cAGABA4sCAQEDkQIBBQYAZRkAZhoAZxsAaBwAaQAAAAAABQYAZRkAZhoAZxsAaBwAaQcCAQgPAQkRAQoSAQsTAQ0VAQ4XBQ8YBhAaAREcBRIdBxUeARYfARcgBR0jCB4kDh8lAiAmAiEnAiIoAiMpAiQrAiUtBSYuDycwAigyBSkzECo0Ais1Aiw2BS05ES46Fzs8GDxbGD1dGD5eGD9fGEBhGEFjBUJkIUNmGERoBUVpIkZqGEdrGEhsBUlvI0pwKUtxGUxyGU1zGU50GU91GVB3GVF5BVJ6KlN9GVR_BVWAAStWggEZV4MBGViEAQVZhwEsWogBMluJARpcigEaXYsBGl6MARpfjQEaYI8BGmGRAQVikgEzY5QBGmSWAQVllwE0ZpgBGmeZARpomgEFaZ0BNWqeATtrnwEbbKABG22hARtuogEbb6MBG3ClARtxpwEFcqgBPHOsARt0rgEFda8BPXayARt3swEbeLQBBXm3AT56uAFEe7kBHHy6ARx9uwEcfrwBHH-9ARyAAb8BHIEBwQEFggHCAUWDAcQBHIQBxgEFhQHHAUaGAcgBHIcByQEciAHKAQWJAc0BR4oBzgFNiwHQAU6MAdEBTo0B1AFOjgHVAU6PAdYBTpAB2AFOkQHaAQWSAdsBT5MB3QFOlAHfAQWVAeABUJYB4QFOlwHiAU6YAeMBBZkB5gFRmgHnAVebAekBWJwB6gFYnQHtAVieAe4BWJ8B7wFYoAHxAVihAfMBBaIB9AFZowH2AVikAfgBBaUB-QFapgH6AVinAfsBWKgB_AEFqQH_AVuqAYACYasBgQIDrAGCAgOtAYMCA64BhAIDrwGFAgOwAYcCA7EBiQIFsgGKAmKzAY0CA7QBjwIFtQGQAmO2AZICA7cBkwIDuAGUAgW5AZcCZLoBmAJq" +}; +async function decodeBase64AsWasm(wasmBase64) { + const { Buffer } = await import('node:buffer'); + const wasmArray = Buffer.from(wasmBase64, 'base64'); + return new WebAssembly.Module(wasmArray); +} +config.compilerWasm = { + getRuntime: async () => await import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.mjs"), + getQueryCompilerWasmModule: async () => { + const { wasm } = await import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.wasm-base64.mjs"); + return await decodeBase64AsWasm(wasm); + }, + importName: "./query_compiler_fast_bg.js" +}; +export function getPrismaClientClass() { + return runtime.getPrismaClient(config); +} +//# sourceMappingURL=class.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/internal/class.js.map b/apps/api/dist/generated/prisma/internal/class.js.map new file mode 100644 index 0000000..912f171 --- /dev/null +++ b/apps/api/dist/generated/prisma/internal/class.js.map @@ -0,0 +1 @@ +{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/generated/prisma/internal/class.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAIxD,MAAM,MAAM,GAAkC;IAC5C,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,0CAA0C;IAC3D,gBAAgB,EAAE,YAAY;IAC9B,cAAc,EAAE,qlMAAqlM;IACrmM,kBAAkB,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;KACZ;CACF,CAAA;AAED,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,83QAA83Q,CAAC,CAAA;AACp6Q,MAAM,CAAC,sBAAsB,GAAG;IAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,w0LAAw0L,CAAC;IAC71L,KAAK,EAAE,0psCAA0psC;CAClqsC,CAAA;AAED,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,YAAY,GAAG;IACpB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,8DAA8D,CAAC;IAEpG,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,0EAA0E,CAAC,CAAA;QACzG,OAAO,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,UAAU,EAAE,6BAA6B;CAC1C,CAAA;AA4OD,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,CAAuC,CAAA;AAC9E,CAAC"} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/internal/prismaNamespace.js b/apps/api/dist/generated/prisma/internal/prismaNamespace.js new file mode 100644 index 0000000..b6e7a05 --- /dev/null +++ b/apps/api/dist/generated/prisma/internal/prismaNamespace.js @@ -0,0 +1,181 @@ +import * as runtime from "@prisma/client/runtime/client"; +export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError; +export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError; +export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError; +export const PrismaClientInitializationError = runtime.PrismaClientInitializationError; +export const PrismaClientValidationError = runtime.PrismaClientValidationError; +export const sql = runtime.sqltag; +export const empty = runtime.empty; +export const join = runtime.join; +export const raw = runtime.raw; +export const Sql = runtime.Sql; +export const Decimal = runtime.Decimal; +export const getExtensionContext = runtime.Extensions.getExtensionContext; +export const prismaVersion = { + client: "7.10.1", + engine: "d1b3f377ca835d73fd50954a5e22128b9ebdd6b8" +}; +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull, + JsonNull: runtime.NullTypes.JsonNull, + AnyNull: runtime.NullTypes.AnyNull, +}; +export const DbNull = runtime.DbNull; +export const JsonNull = runtime.JsonNull; +export const AnyNull = runtime.AnyNull; +export const ModelName = { + AdminUser: 'AdminUser', + RefreshToken: 'RefreshToken', + Media: 'Media', + Category: 'Category', + ProductGroup: 'ProductGroup', + Product: 'Product', + ProductImage: 'ProductImage', + SiteSection: 'SiteSection', + ContactMessage: 'ContactMessage', + AuditLog: 'AuditLog' +}; +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); +export const AdminUserScalarFieldEnum = { + id: 'id', + phone: 'phone', + name: 'name', + passwordHash: 'passwordHash', + role: 'role', + isActive: 'isActive', + lastLoginAt: 'lastLoginAt', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; +export const RefreshTokenScalarFieldEnum = { + id: 'id', + userId: 'userId', + tokenHash: 'tokenHash', + expiresAt: 'expiresAt', + revokedAt: 'revokedAt', + userAgent: 'userAgent', + createdAt: 'createdAt' +}; +export const MediaScalarFieldEnum = { + id: 'id', + key: 'key', + mime: 'mime', + size: 'size', + width: 'width', + height: 'height', + alt: 'alt', + originalName: 'originalName', + createdAt: 'createdAt' +}; +export const CategoryScalarFieldEnum = { + id: 'id', + slug: 'slug', + code: 'code', + name: 'name', + nameEn: 'nameEn', + shortDesc: 'shortDesc', + fullDesc: 'fullDesc', + icon: 'icon', + coverImageId: 'coverImageId', + sortOrder: 'sortOrder', + isPublished: 'isPublished', + seoTitle: 'seoTitle', + seoDescription: 'seoDescription', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; +export const ProductGroupScalarFieldEnum = { + id: 'id', + categoryId: 'categoryId', + slug: 'slug', + name: 'name', + desc: 'desc', + sortOrder: 'sortOrder' +}; +export const ProductScalarFieldEnum = { + id: 'id', + categoryId: 'categoryId', + groupId: 'groupId', + code: 'code', + slug: 'slug', + name: 'name', + nameEn: 'nameEn', + desc: 'desc', + specs: 'specs', + variants: 'variants', + details: 'details', + brand: 'brand', + origin: 'origin', + sizes: 'sizes', + standards: 'standards', + features: 'features', + applications: 'applications', + attributes: 'attributes', + packaging: 'packaging', + minOrder: 'minOrder', + seoTitle: 'seoTitle', + seoDescription: 'seoDescription', + imageId: 'imageId', + sortOrder: 'sortOrder', + isPublished: 'isPublished', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; +export const ProductImageScalarFieldEnum = { + productId: 'productId', + mediaId: 'mediaId', + sortOrder: 'sortOrder' +}; +export const SiteSectionScalarFieldEnum = { + key: 'key', + data: 'data', + updatedById: 'updatedById', + updatedAt: 'updatedAt' +}; +export const ContactMessageScalarFieldEnum = { + id: 'id', + name: 'name', + org: 'org', + phone: 'phone', + message: 'message', + status: 'status', + ip: 'ip', + userAgent: 'userAgent', + createdAt: 'createdAt' +}; +export const AuditLogScalarFieldEnum = { + id: 'id', + userId: 'userId', + action: 'action', + entity: 'entity', + entityId: 'entityId', + summary: 'summary', + createdAt: 'createdAt' +}; +export const SortOrder = { + asc: 'asc', + desc: 'desc' +}; +export const JsonNullValueInput = { + JsonNull: JsonNull +}; +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; +export const NullsOrder = { + first: 'first', + last: 'last' +}; +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull +}; +export const defineExtension = runtime.Extensions.defineExtension; +//# sourceMappingURL=prismaNamespace.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/internal/prismaNamespace.js.map b/apps/api/dist/generated/prisma/internal/prismaNamespace.js.map new file mode 100644 index 0000000..29b3bce --- /dev/null +++ b/apps/api/dist/generated/prisma/internal/prismaNamespace.js.map @@ -0,0 +1 @@ +{"version":3,"file":"prismaNamespace.js","sourceRoot":"","sources":["../../../../src/generated/prisma/internal/prismaNamespace.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/internal/prismaNamespaceBrowser.js b/apps/api/dist/generated/prisma/internal/prismaNamespaceBrowser.js new file mode 100644 index 0000000..627311d --- /dev/null +++ b/apps/api/dist/generated/prisma/internal/prismaNamespaceBrowser.js @@ -0,0 +1,165 @@ +import * as runtime from "@prisma/client/runtime/index-browser"; +export const Decimal = runtime.Decimal; +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull, + JsonNull: runtime.NullTypes.JsonNull, + AnyNull: runtime.NullTypes.AnyNull, +}; +export const DbNull = runtime.DbNull; +export const JsonNull = runtime.JsonNull; +export const AnyNull = runtime.AnyNull; +export const ModelName = { + AdminUser: 'AdminUser', + RefreshToken: 'RefreshToken', + Media: 'Media', + Category: 'Category', + ProductGroup: 'ProductGroup', + Product: 'Product', + ProductImage: 'ProductImage', + SiteSection: 'SiteSection', + ContactMessage: 'ContactMessage', + AuditLog: 'AuditLog' +}; +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); +export const AdminUserScalarFieldEnum = { + id: 'id', + phone: 'phone', + name: 'name', + passwordHash: 'passwordHash', + role: 'role', + isActive: 'isActive', + lastLoginAt: 'lastLoginAt', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; +export const RefreshTokenScalarFieldEnum = { + id: 'id', + userId: 'userId', + tokenHash: 'tokenHash', + expiresAt: 'expiresAt', + revokedAt: 'revokedAt', + userAgent: 'userAgent', + createdAt: 'createdAt' +}; +export const MediaScalarFieldEnum = { + id: 'id', + key: 'key', + mime: 'mime', + size: 'size', + width: 'width', + height: 'height', + alt: 'alt', + originalName: 'originalName', + createdAt: 'createdAt' +}; +export const CategoryScalarFieldEnum = { + id: 'id', + slug: 'slug', + code: 'code', + name: 'name', + nameEn: 'nameEn', + shortDesc: 'shortDesc', + fullDesc: 'fullDesc', + icon: 'icon', + coverImageId: 'coverImageId', + sortOrder: 'sortOrder', + isPublished: 'isPublished', + seoTitle: 'seoTitle', + seoDescription: 'seoDescription', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; +export const ProductGroupScalarFieldEnum = { + id: 'id', + categoryId: 'categoryId', + slug: 'slug', + name: 'name', + desc: 'desc', + sortOrder: 'sortOrder' +}; +export const ProductScalarFieldEnum = { + id: 'id', + categoryId: 'categoryId', + groupId: 'groupId', + code: 'code', + slug: 'slug', + name: 'name', + nameEn: 'nameEn', + desc: 'desc', + specs: 'specs', + variants: 'variants', + details: 'details', + brand: 'brand', + origin: 'origin', + sizes: 'sizes', + standards: 'standards', + features: 'features', + applications: 'applications', + attributes: 'attributes', + packaging: 'packaging', + minOrder: 'minOrder', + seoTitle: 'seoTitle', + seoDescription: 'seoDescription', + imageId: 'imageId', + sortOrder: 'sortOrder', + isPublished: 'isPublished', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; +export const ProductImageScalarFieldEnum = { + productId: 'productId', + mediaId: 'mediaId', + sortOrder: 'sortOrder' +}; +export const SiteSectionScalarFieldEnum = { + key: 'key', + data: 'data', + updatedById: 'updatedById', + updatedAt: 'updatedAt' +}; +export const ContactMessageScalarFieldEnum = { + id: 'id', + name: 'name', + org: 'org', + phone: 'phone', + message: 'message', + status: 'status', + ip: 'ip', + userAgent: 'userAgent', + createdAt: 'createdAt' +}; +export const AuditLogScalarFieldEnum = { + id: 'id', + userId: 'userId', + action: 'action', + entity: 'entity', + entityId: 'entityId', + summary: 'summary', + createdAt: 'createdAt' +}; +export const SortOrder = { + asc: 'asc', + desc: 'desc' +}; +export const JsonNullValueInput = { + JsonNull: JsonNull +}; +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; +export const NullsOrder = { + first: 'first', + last: 'last' +}; +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull +}; +//# sourceMappingURL=prismaNamespaceBrowser.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/internal/prismaNamespaceBrowser.js.map b/apps/api/dist/generated/prisma/internal/prismaNamespaceBrowser.js.map new file mode 100644 index 0000000..2641927 --- /dev/null +++ b/apps/api/dist/generated/prisma/internal/prismaNamespaceBrowser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"prismaNamespaceBrowser.js","sourceRoot":"","sources":["../../../../src/generated/prisma/internal/prismaNamespaceBrowser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models.js b/apps/api/dist/generated/prisma/models.js new file mode 100644 index 0000000..5b8a5ab --- /dev/null +++ b/apps/api/dist/generated/prisma/models.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models.js.map b/apps/api/dist/generated/prisma/models.js.map new file mode 100644 index 0000000..a9e2382 --- /dev/null +++ b/apps/api/dist/generated/prisma/models.js.map @@ -0,0 +1 @@ +{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/generated/prisma/models.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/AdminUser.js b/apps/api/dist/generated/prisma/models/AdminUser.js new file mode 100644 index 0000000..8fb613c --- /dev/null +++ b/apps/api/dist/generated/prisma/models/AdminUser.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=AdminUser.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/AdminUser.js.map b/apps/api/dist/generated/prisma/models/AdminUser.js.map new file mode 100644 index 0000000..f4877fc --- /dev/null +++ b/apps/api/dist/generated/prisma/models/AdminUser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AdminUser.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/AdminUser.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/AuditLog.js b/apps/api/dist/generated/prisma/models/AuditLog.js new file mode 100644 index 0000000..5e87543 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/AuditLog.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=AuditLog.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/AuditLog.js.map b/apps/api/dist/generated/prisma/models/AuditLog.js.map new file mode 100644 index 0000000..571b840 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/AuditLog.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AuditLog.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/AuditLog.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/Category.js b/apps/api/dist/generated/prisma/models/Category.js new file mode 100644 index 0000000..dd75254 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/Category.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=Category.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/Category.js.map b/apps/api/dist/generated/prisma/models/Category.js.map new file mode 100644 index 0000000..4d2ad1d --- /dev/null +++ b/apps/api/dist/generated/prisma/models/Category.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Category.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/Category.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/ContactMessage.js b/apps/api/dist/generated/prisma/models/ContactMessage.js new file mode 100644 index 0000000..8b41751 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/ContactMessage.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=ContactMessage.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/ContactMessage.js.map b/apps/api/dist/generated/prisma/models/ContactMessage.js.map new file mode 100644 index 0000000..8d5beb8 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/ContactMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ContactMessage.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/ContactMessage.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/Media.js b/apps/api/dist/generated/prisma/models/Media.js new file mode 100644 index 0000000..f74df9f --- /dev/null +++ b/apps/api/dist/generated/prisma/models/Media.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=Media.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/Media.js.map b/apps/api/dist/generated/prisma/models/Media.js.map new file mode 100644 index 0000000..e2315ec --- /dev/null +++ b/apps/api/dist/generated/prisma/models/Media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Media.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/Media.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/Product.js b/apps/api/dist/generated/prisma/models/Product.js new file mode 100644 index 0000000..b8e9fe4 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/Product.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=Product.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/Product.js.map b/apps/api/dist/generated/prisma/models/Product.js.map new file mode 100644 index 0000000..6579368 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/Product.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Product.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/Product.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/ProductGroup.js b/apps/api/dist/generated/prisma/models/ProductGroup.js new file mode 100644 index 0000000..d4ade44 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/ProductGroup.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=ProductGroup.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/ProductGroup.js.map b/apps/api/dist/generated/prisma/models/ProductGroup.js.map new file mode 100644 index 0000000..e839d07 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/ProductGroup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ProductGroup.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/ProductGroup.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/ProductImage.js b/apps/api/dist/generated/prisma/models/ProductImage.js new file mode 100644 index 0000000..46ea11d --- /dev/null +++ b/apps/api/dist/generated/prisma/models/ProductImage.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=ProductImage.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/ProductImage.js.map b/apps/api/dist/generated/prisma/models/ProductImage.js.map new file mode 100644 index 0000000..821fc47 --- /dev/null +++ b/apps/api/dist/generated/prisma/models/ProductImage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ProductImage.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/ProductImage.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/RefreshToken.js b/apps/api/dist/generated/prisma/models/RefreshToken.js new file mode 100644 index 0000000..cb6485b --- /dev/null +++ b/apps/api/dist/generated/prisma/models/RefreshToken.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=RefreshToken.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/RefreshToken.js.map b/apps/api/dist/generated/prisma/models/RefreshToken.js.map new file mode 100644 index 0000000..f092f7b --- /dev/null +++ b/apps/api/dist/generated/prisma/models/RefreshToken.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RefreshToken.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/RefreshToken.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/SiteSection.js b/apps/api/dist/generated/prisma/models/SiteSection.js new file mode 100644 index 0000000..95797ef --- /dev/null +++ b/apps/api/dist/generated/prisma/models/SiteSection.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=SiteSection.js.map \ No newline at end of file diff --git a/apps/api/dist/generated/prisma/models/SiteSection.js.map b/apps/api/dist/generated/prisma/models/SiteSection.js.map new file mode 100644 index 0000000..237a4bd --- /dev/null +++ b/apps/api/dist/generated/prisma/models/SiteSection.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SiteSection.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/SiteSection.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/apps/api/dist/main.js b/apps/api/dist/main.js new file mode 100644 index 0000000..0937f41 --- /dev/null +++ b/apps/api/dist/main.js @@ -0,0 +1,21 @@ +import { env } from "./config/env.js"; +import { NestFactory } from "@nestjs/core"; +import cookieParser from "cookie-parser"; +import helmet from "helmet"; +import { AppModule } from "./app.module.js"; +async function bootstrap() { + const app = await NestFactory.create(AppModule); + app.set("trust proxy", env.TRUST_PROXY); + app.setGlobalPrefix("api"); + app.use(helmet()); + app.use(cookieParser()); + const origins = env.CORS_ORIGINS.split(",") + .map((o) => o.trim()) + .filter(Boolean); + if (origins.length) + app.enableCors({ origin: origins, credentials: true }); + app.enableShutdownHooks(); + await app.listen(env.PORT); +} +await bootstrap(); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/apps/api/dist/main.js.map b/apps/api/dist/main.js.map new file mode 100644 index 0000000..0819bf2 --- /dev/null +++ b/apps/api/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAyB,SAAS,CAAC,CAAC;IAGxE,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAExB,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,OAAO,CAAC,MAAM;QAAE,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3E,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1B,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/apps/api/dist/media/media.controller.js b/apps/api/dist/media/media.controller.js new file mode 100644 index 0000000..2928784 --- /dev/null +++ b/apps/api/dist/media/media.controller.js @@ -0,0 +1,95 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { Body, Controller, Delete, Get, HttpCode, Module, Param, Patch, Post, Query, UploadedFile, UseInterceptors, } from "@nestjs/common"; +import { FileInterceptor } from "@nestjs/platform-express"; +import { mediaUpdateSchema } from "@imen/shared"; +import { z } from "zod"; +import { AdminAuth, CurrentUser, Roles } from "../common/auth.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import { MediaService } from "./media.service.js"; +const listQuery = z.object({ + page: z.coerce.number().int().min(1).default(1), + pageSize: z.coerce.number().int().min(1).max(100).default(40), + q: z.string().trim().max(100).optional(), +}); +let MediaController = class MediaController { + media; + constructor(media) { + this.media = media; + } + list(q) { + return this.media.list(q.page, q.pageSize, q.q); + } + upload(file, alt, user) { + return this.media.upload(file, typeof alt === "string" ? alt : "", user.id); + } + update(id, body, user) { + return this.media.updateAlt(id, body.alt, user.id); + } + async remove(id, user) { + await this.media.remove(id, user.id); + } +}; +__decorate([ + Get(), + __param(0, Query(new ZodPipe(listQuery))), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], MediaController.prototype, "list", null); +__decorate([ + Post(), + UseInterceptors(FileInterceptor("file", { limits: { fileSize: 15 * 1024 * 1024 } })), + __param(0, UploadedFile()), + __param(1, Body("alt")), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object, Object]), + __metadata("design:returntype", void 0) +], MediaController.prototype, "upload", null); +__decorate([ + Patch(":id"), + __param(0, Param("id", IdPipe)), + __param(1, Body(new ZodPipe(mediaUpdateSchema))), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object, Object]), + __metadata("design:returntype", void 0) +], MediaController.prototype, "update", null); +__decorate([ + Roles("ADMIN"), + Delete(":id"), + HttpCode(204), + __param(0, Param("id", IdPipe)), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object]), + __metadata("design:returntype", Promise) +], MediaController.prototype, "remove", null); +MediaController = __decorate([ + AdminAuth(), + Controller("admin/media"), + __metadata("design:paramtypes", [MediaService]) +], MediaController); +export { MediaController }; +let MediaModule = class MediaModule { +}; +MediaModule = __decorate([ + Module({ + controllers: [MediaController], + providers: [MediaService], + exports: [MediaService], + }) +], MediaModule); +export { MediaModule }; +//# sourceMappingURL=media.controller.js.map \ No newline at end of file diff --git a/apps/api/dist/media/media.controller.js.map b/apps/api/dist/media/media.controller.js.map new file mode 100644 index 0000000..54fcb43 --- /dev/null +++ b/apps/api/dist/media/media.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.controller.js","sourceRoot":"","sources":["../../src/media/media.controller.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/media/media.service.js b/apps/api/dist/media/media.service.js new file mode 100644 index 0000000..e0e1c84 --- /dev/null +++ b/apps/api/dist/media/media.service.js @@ -0,0 +1,138 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var MediaService_1; +import { randomUUID } from "node:crypto"; +import { BadRequestException, ConflictException, Injectable, Logger, NotFoundException, } from "@nestjs/common"; +import { env } from "../config/env.js"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +import { ACCEPTED_IMAGE_TYPES, S3Storage, toWebp } from "./s3-storage.js"; +let MediaService = MediaService_1 = class MediaService { + prisma; + audit; + revalidate; + logger = new Logger(MediaService_1.name); + storage = new S3Storage(); + constructor(prisma, audit, revalidate) { + this.prisma = prisma; + this.audit = audit; + this.revalidate = revalidate; + } + async onModuleInit() { + if (!env.S3_ENSURE_BUCKET) + return; + try { + await this.storage.ensureBucket(); + } + catch (e) { + this.logger.error(`could not prepare bucket "${env.S3_BUCKET}": ${String(e)}`); + } + } + url(key) { + return this.storage.publicUrl(key); + } + toDto(m) { + return { + id: m.id, + url: this.url(m.key), + alt: m.alt, + mime: m.mime, + size: m.size, + width: m.width, + height: m.height, + originalName: m.originalName, + createdAt: m.createdAt.toISOString(), + }; + } + async list(page, pageSize, q) { + const where = q + ? { + OR: [ + { originalName: { contains: q, mode: "insensitive" } }, + { alt: { contains: q, mode: "insensitive" } }, + ], + } + : {}; + const [items, total] = await this.prisma.$transaction([ + this.prisma.media.findMany({ + where, + orderBy: { id: "desc" }, + skip: (page - 1) * pageSize, + take: pageSize, + }), + this.prisma.media.count({ where }), + ]); + return { items: items.map((m) => this.toDto(m)), total, page, pageSize }; + } + async upload(file, alt, userId) { + if (!file) + throw new BadRequestException("فایلی ارسال نشده است"); + if (!ACCEPTED_IMAGE_TYPES.includes(file.mimetype)) { + throw new BadRequestException("فقط تصاویر JPG، PNG، WebP، AVIF و GIF پذیرفته می‌شوند"); + } + let image; + try { + image = await toWebp(file.buffer); + } + catch { + throw new BadRequestException("فایل تصویر قابل پردازش نیست"); + } + const now = new Date(); + const month = String(now.getMonth() + 1).padStart(2, "0"); + const key = `uploads/${now.getFullYear()}/${month}/${randomUUID()}.webp`; + await this.storage.put(key, image.data, "image/webp"); + const media = await this.prisma.media.create({ + data: { + key, + mime: "image/webp", + size: image.size, + width: image.width, + height: image.height, + alt: alt.trim().slice(0, 200), + originalName: Buffer.from(file.originalname, "latin1").toString("utf8").slice(0, 200), + }, + }); + this.audit.log(userId, "upload", "media", media.id, media.originalName); + return this.toDto(media); + } + async updateAlt(id, alt, userId) { + const media = await this.prisma.media.update({ where: { id }, data: { alt } }); + this.audit.log(userId, "update", "media", id, media.originalName); + this.revalidate.trigger(); + return this.toDto(media); + } + async remove(id, userId) { + const media = await this.prisma.media.findUnique({ + where: { id }, + include: { _count: { select: { categoryCovers: true, productImages: true, productGallery: true } } }, + }); + if (!media) + throw new NotFoundException("فایل پیدا نشد"); + const { categoryCovers, productImages, productGallery } = media._count; + const sections = await this.prisma.$queryRaw ` + SELECT key FROM "SiteSection" WHERE data::text LIKE ${"%" + media.key + "%"}`; + if (categoryCovers + productImages + productGallery + sections.length > 0) { + throw new ConflictException("این تصویر در محصولات، دسته‌ها یا بخش‌های سایت استفاده شده و قابل حذف نیست"); + } + await this.prisma.media.delete({ where: { id } }); + await this.storage.remove(media.key).catch((e) => { + this.logger.warn(`could not delete object ${media.key}: ${String(e)}`); + }); + this.audit.log(userId, "delete", "media", id, media.originalName); + } +}; +MediaService = MediaService_1 = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + AuditService, + RevalidateService]) +], MediaService); +export { MediaService }; +//# sourceMappingURL=media.service.js.map \ No newline at end of file diff --git a/apps/api/dist/media/media.service.js.map b/apps/api/dist/media/media.service.js.map new file mode 100644 index 0000000..bfb75f9 --- /dev/null +++ b/apps/api/dist/media/media.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.service.js","sourceRoot":"","sources":["../../src/media/media.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGnE,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAKJ;IACA;IACA;IANF,MAAM,GAAG,IAAI,MAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC;IAEnC,YACmB,MAAqB,EACrB,KAAmB,EACnB,UAA6B;QAF7B,WAAM,GAAN,MAAM,CAAe;QACrB,UAAK,GAAL,KAAK,CAAc;QACnB,eAAU,GAAV,UAAU,CAAmB;IAC7C,CAAC;IAEJ,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,GAAG,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,CAAQ;QACZ,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACpB,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,QAAgB,EAAE,CAAU;QACnD,MAAM,KAAK,GAAG,CAAC;YACb,CAAC,CAAC;gBACE,EAAE,EAAE;oBACF,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAsB,EAAE,EAAE;oBAC/D,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAsB,EAAE,EAAE;iBACvD;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACzB,KAAK;gBACL,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;gBACvB,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ;gBAC3B,IAAI,EAAE,QAAQ;aACf,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAqC,EAAE,GAAW,EAAE,MAAc;QAC7E,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;QACjE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,mBAAmB,CAAC,uDAAuD,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,KAAyC,CAAC;QAC9C,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,UAAU,EAAE,OAAO,CAAC;QACzE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3C,IAAI,EAAE;gBACJ,GAAG;gBACH,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAE7B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aACtF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,GAAW,EAAE,MAAc;QACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/C,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE;SACrG,CAAC,CAAC;QACH,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAEzD,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAmB;4DACP,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;QAChF,IAAI,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,iBAAiB,CACzB,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACpE,CAAC;CACF,CAAA;AAzHY,YAAY;IADxB,UAAU,EAAE;qCAMgB,aAAa;QACd,YAAY;QACP,iBAAiB;GAPrC,YAAY,CAyHxB"} \ No newline at end of file diff --git a/apps/api/dist/media/s3-storage.js b/apps/api/dist/media/s3-storage.js new file mode 100644 index 0000000..f0c5265 --- /dev/null +++ b/apps/api/dist/media/s3-storage.js @@ -0,0 +1,69 @@ +import { CreateBucketCommand, DeleteObjectCommand, HeadBucketCommand, PutBucketPolicyCommand, PutObjectCommand, S3Client, } from "@aws-sdk/client-s3"; +import sharp from "sharp"; +import { env } from "../config/env.js"; +export class S3Storage { + client = new S3Client({ + endpoint: env.S3_ENDPOINT, + region: env.S3_REGION, + forcePathStyle: env.S3_FORCE_PATH_STYLE, + credentials: { accessKeyId: env.S3_ACCESS_KEY, secretAccessKey: env.S3_SECRET_KEY }, + }); + bucket = env.S3_BUCKET; + publicUrl(key) { + return `${env.MEDIA_PUBLIC_URL}/${key}`; + } + async put(key, body, contentType) { + await this.client.send(new PutObjectCommand({ + Bucket: this.bucket, + Key: key, + Body: body, + ContentType: contentType, + CacheControl: "public, max-age=31536000, immutable", + })); + } + async remove(key) { + await this.client.send(new DeleteObjectCommand({ Bucket: this.bucket, Key: key })); + } + async ensureBucket() { + try { + await this.client.send(new HeadBucketCommand({ Bucket: this.bucket })); + } + catch { + await this.client.send(new CreateBucketCommand({ Bucket: this.bucket })); + } + try { + await this.client.send(new PutBucketPolicyCommand({ + Bucket: this.bucket, + Policy: JSON.stringify({ + Version: "2012-10-17", + Statement: [ + { + Effect: "Allow", + Principal: { AWS: ["*"] }, + Action: ["s3:GetObject"], + Resource: [`arn:aws:s3:::${this.bucket}/*`], + }, + ], + }), + })); + } + catch { + } + } +} +export const ACCEPTED_IMAGE_TYPES = [ + "image/jpeg", + "image/png", + "image/webp", + "image/avif", + "image/gif", +]; +export async function toWebp(input) { + const { data, info } = await sharp(input) + .rotate() + .resize({ width: 2000, height: 2000, fit: "inside", withoutEnlargement: true }) + .webp({ quality: 82 }) + .toBuffer({ resolveWithObject: true }); + return { data, width: info.width, height: info.height, size: info.size }; +} +//# sourceMappingURL=s3-storage.js.map \ No newline at end of file diff --git a/apps/api/dist/media/s3-storage.js.map b/apps/api/dist/media/s3-storage.js.map new file mode 100644 index 0000000..70090d1 --- /dev/null +++ b/apps/api/dist/media/s3-storage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"s3-storage.js","sourceRoot":"","sources":["../../src/media/s3-storage.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/migrate.js b/apps/api/dist/migrate.js new file mode 100644 index 0000000..94d58e8 --- /dev/null +++ b/apps/api/dist/migrate.js @@ -0,0 +1,66 @@ +import { createHash, randomUUID } from "node:crypto"; +import { existsSync } from "node:fs"; +import { readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import pg from "pg"; +if (existsSync(".env")) + process.loadEnvFile(".env"); +const MIGRATIONS_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../prisma/migrations"); +const LOCK_ID = 72707369; +const client = new pg.Client({ connectionString: process.env.DATABASE_URL }); +async function main() { + await client.query(`SELECT pg_advisory_lock(${LOCK_ID})`); + await client.query(`CREATE TABLE IF NOT EXISTS "_prisma_migrations" ( + "id" VARCHAR(36) PRIMARY KEY NOT NULL, + "checksum" VARCHAR(64) NOT NULL, + "finished_at" TIMESTAMPTZ, + "migration_name" VARCHAR(255) NOT NULL, + "logs" TEXT, + "rolled_back_at" TIMESTAMPTZ, + "started_at" TIMESTAMPTZ NOT NULL DEFAULT now(), + "applied_steps_count" INTEGER NOT NULL DEFAULT 0 + )`); + const { rows } = await client.query(`SELECT migration_name, finished_at FROM "_prisma_migrations" WHERE rolled_back_at IS NULL`); + const failed = rows.find((r) => !r.finished_at); + if (failed) { + throw new Error(`migration ${failed.migration_name} failed earlier; fix the database, then mark it with ` + + `\`prisma migrate resolve\` (see its "logs" column in _prisma_migrations)`); + } + const applied = new Set(rows.map((r) => r.migration_name)); + const entries = await readdir(MIGRATIONS_DIR, { withFileTypes: true }); + const pending = entries + .filter((e) => e.isDirectory() && !applied.has(e.name)) + .map((e) => e.name) + .sort(); + for (const name of pending) { + const script = await readFile(path.join(MIGRATIONS_DIR, name, "migration.sql"), "utf8"); + const id = randomUUID(); + await client.query(`INSERT INTO "_prisma_migrations" (id, checksum, migration_name) VALUES ($1, $2, $3)`, [id, createHash("sha256").update(script).digest("hex"), name]); + try { + await client.query(script); + } + catch (e) { + await client.query(`UPDATE "_prisma_migrations" SET logs = $2 WHERE id = $1`, [ + id, + String(e), + ]); + throw new Error(`migration ${name} failed`, { cause: e }); + } + await client.query(`UPDATE "_prisma_migrations" SET finished_at = now(), applied_steps_count = 1 WHERE id = $1`, [id]); + console.log(`applied ${name}`); + } + console.log(pending.length ? `${pending.length} migration(s) applied` : "no pending migrations"); +} +try { + await client.connect(); + await main(); +} +catch (e) { + console.error(e); + process.exitCode = 1; +} +finally { + await client.end(); +} +//# sourceMappingURL=migrate.js.map \ No newline at end of file diff --git a/apps/api/dist/migrate.js.map b/apps/api/dist/migrate.js.map new file mode 100644 index 0000000..018decc --- /dev/null +++ b/apps/api/dist/migrate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/prisma/prisma.service.js b/apps/api/dist/prisma/prisma.service.js new file mode 100644 index 0000000..8b47edf --- /dev/null +++ b/apps/api/dist/prisma/prisma.service.js @@ -0,0 +1,35 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { Global, Injectable, Module } from "@nestjs/common"; +import { PrismaPg } from "@prisma/adapter-pg"; +import { env } from "../config/env.js"; +import { PrismaClient } from "../generated/prisma/client.js"; +export const createPrismaClient = () => new PrismaClient({ adapter: new PrismaPg({ connectionString: env.DATABASE_URL }) }); +let PrismaService = class PrismaService extends PrismaClient { + constructor() { + super({ adapter: new PrismaPg({ connectionString: env.DATABASE_URL }) }); + } + async onModuleDestroy() { + await this.$disconnect(); + } +}; +PrismaService = __decorate([ + Injectable(), + __metadata("design:paramtypes", []) +], PrismaService); +export { PrismaService }; +let PrismaModule = class PrismaModule { +}; +PrismaModule = __decorate([ + Global(), + Module({ providers: [PrismaService], exports: [PrismaService] }) +], PrismaModule); +export { PrismaModule }; +//# sourceMappingURL=prisma.service.js.map \ No newline at end of file diff --git a/apps/api/dist/prisma/prisma.service.js.map b/apps/api/dist/prisma/prisma.service.js.map new file mode 100644 index 0000000..c74ec68 --- /dev/null +++ b/apps/api/dist/prisma/prisma.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"prisma.service.js","sourceRoot":"","sources":["../../src/prisma/prisma.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAwB,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CACrC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;AAG/E,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IAC7C;QACE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AARY,aAAa;IADzB,UAAU,EAAE;;GACA,aAAa,CAQzB;;AAIM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IAFxB,MAAM,EAAE;IACR,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;GACpD,YAAY,CAAG"} \ No newline at end of file diff --git a/apps/api/dist/public/public.module.js b/apps/api/dist/public/public.module.js new file mode 100644 index 0000000..899fff4 --- /dev/null +++ b/apps/api/dist/public/public.module.js @@ -0,0 +1,244 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { Controller, Get, Injectable, Module, NotFoundException, Param } from "@nestjs/common"; +import { MediaModule } from "../media/media.controller.js"; +import { MediaService } from "../media/media.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +import { SectionsModule, SectionsService } from "../sections/sections.module.js"; +const visible = { isPublished: true, category: { isPublished: true } }; +const RELATED_LIMIT = 4; +const isAttribute = (a) => !!a && typeof a === "object" && typeof a.name === "string" && typeof a.value === "string"; +let PublicService = class PublicService { + prisma; + media; + sections; + constructor(prisma, media, sections) { + this.prisma = prisma; + this.media = media; + this.sections = sections; + } + async site() { + const [sections, categories] = await Promise.all([this.sections.getAll(), this.categories()]); + return { sections, categories }; + } + async categories() { + const rows = await this.prisma.category.findMany({ + where: { isPublished: true }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { + coverImage: true, + _count: { select: { products: { where: { isPublished: true } } } }, + }, + }); + return rows.map((c) => ({ + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.nameEn, + shortDesc: c.shortDesc, + icon: c.icon, + coverImage: c.coverImage && this.media.url(c.coverImage.key), + productCount: c._count.products, + })); + } + async category(slug) { + const c = await this.prisma.category.findFirst({ + where: { slug, isPublished: true }, + include: { + coverImage: true, + groups: { orderBy: { sortOrder: "asc" } }, + products: { + where: { isPublished: true }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { image: true, group: { select: { slug: true } } }, + }, + }, + }); + if (!c) + throw new NotFoundException("دسته‌بندی یافت نشد"); + const products = c.products.map((p) => this.toPublicProduct(p)); + const usedGroups = new Set(products.map((p) => p.group)); + return { + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.nameEn, + shortDesc: c.shortDesc, + fullDesc: c.fullDesc, + icon: c.icon, + seoTitle: c.seoTitle, + seoDescription: c.seoDescription, + coverImage: c.coverImage && this.media.url(c.coverImage.key), + productCount: products.length, + groups: c.groups + .filter((g) => usedGroups.has(g.slug)) + .map((g) => ({ slug: g.slug, name: g.name, desc: g.desc })), + products, + }; + } + async product(slug) { + const p = await this.prisma.product.findFirst({ + where: { slug, ...visible }, + include: { + image: true, + gallery: { orderBy: { sortOrder: "asc" }, include: { media: true } }, + group: true, + category: { include: { coverImage: true } }, + }, + }); + if (!p) + throw new NotFoundException("محصول یافت نشد"); + const media = new Map(); + for (const m of [p.image, ...p.gallery.map((g) => g.media)]) + if (m) + media.set(m.id, m); + const siblings = await this.prisma.product.findMany({ + where: { categoryId: p.categoryId, isPublished: true, id: { not: p.id } }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { image: true, group: { select: { slug: true } } }, + }); + const sameGroup = (s) => p.groupId !== null && s.groupId === p.groupId; + const related = [...siblings.filter(sameGroup), ...siblings.filter((s) => !sameGroup(s))] + .slice(0, RELATED_LIMIT) + .map((s) => this.toPublicProduct(s)); + return { + ...this.toPublicProduct(p), + details: p.details, + brand: p.brand, + origin: p.origin, + sizes: p.sizes, + standards: p.standards, + features: p.features, + applications: p.applications, + attributes: Array.isArray(p.attributes) ? p.attributes.filter(isAttribute) : [], + packaging: p.packaging, + minOrder: p.minOrder, + seoTitle: p.seoTitle, + seoDescription: p.seoDescription, + images: [...media.values()].map((m) => ({ + url: this.media.url(m.key), + alt: m.alt || p.name, + width: m.width, + height: m.height, + })), + groupName: p.group?.name ?? null, + category: { + slug: p.category.slug, + code: p.category.code, + name: p.category.name, + nameEn: p.category.nameEn, + fullDesc: p.category.fullDesc, + coverImage: p.category.coverImage && this.media.url(p.category.coverImage.key), + }, + related, + updatedAt: p.updatedAt.toISOString(), + }; + } + async productRefs() { + const rows = await this.prisma.product.findMany({ + where: visible, + orderBy: [{ category: { sortOrder: "asc" } }, { sortOrder: "asc" }], + select: { slug: true, updatedAt: true }, + }); + return rows.map((r) => ({ slug: r.slug, updatedAt: r.updatedAt.toISOString() })); + } + toPublicProduct(p) { + return { + code: p.code, + slug: p.slug, + name: p.name, + nameEn: p.nameEn, + desc: p.desc, + specs: p.specs, + variants: p.variants, + image: p.image && this.media.url(p.image.key), + group: p.group?.slug ?? null, + }; + } +}; +PublicService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + MediaService, + SectionsService]) +], PublicService); +export { PublicService }; +let PublicController = class PublicController { + publicData; + constructor(publicData) { + this.publicData = publicData; + } + site() { + return this.publicData.site(); + } + categories() { + return this.publicData.categories(); + } + category(slug) { + return this.publicData.category(slug); + } + products() { + return this.publicData.productRefs(); + } + product(slug) { + return this.publicData.product(slug); + } +}; +__decorate([ + Get("site"), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], PublicController.prototype, "site", null); +__decorate([ + Get("categories"), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], PublicController.prototype, "categories", null); +__decorate([ + Get("categories/:slug"), + __param(0, Param("slug")), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String]), + __metadata("design:returntype", void 0) +], PublicController.prototype, "category", null); +__decorate([ + Get("products"), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], PublicController.prototype, "products", null); +__decorate([ + Get("products/:slug"), + __param(0, Param("slug")), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String]), + __metadata("design:returntype", void 0) +], PublicController.prototype, "product", null); +PublicController = __decorate([ + Controller("public"), + __metadata("design:paramtypes", [PublicService]) +], PublicController); +export { PublicController }; +let PublicModule = class PublicModule { +}; +PublicModule = __decorate([ + Module({ + imports: [MediaModule, SectionsModule], + controllers: [PublicController], + providers: [PublicService], + }) +], PublicModule); +export { PublicModule }; +//# sourceMappingURL=public.module.js.map \ No newline at end of file diff --git a/apps/api/dist/public/public.module.js.map b/apps/api/dist/public/public.module.js.map new file mode 100644 index 0000000..599eb58 --- /dev/null +++ b/apps/api/dist/public/public.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"public.module.js","sourceRoot":"","sources":["../../src/public/public.module.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/sections/sections.module.js b/apps/api/dist/sections/sections.module.js new file mode 100644 index 0000000..26929ab --- /dev/null +++ b/apps/api/dist/sections/sections.module.js @@ -0,0 +1,191 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { BadRequestException, Body, Controller, ForbiddenException, Get, Injectable, Module, NotFoundException, Param, Patch, Put, ServiceUnavailableException, } from "@nestjs/common"; +import { isSectionKey, SECTION_KEYS, sectionSchemas, toIssues, } from "@imen/shared"; +import { AdminAuth, CurrentUser } from "../common/auth.js"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +let SectionsService = class SectionsService { + prisma; + audit; + revalidate; + constructor(prisma, audit, revalidate) { + this.prisma = prisma; + this.audit = audit; + this.revalidate = revalidate; + } + async getAll() { + const rows = await this.prisma.siteSection.findMany(); + const byKey = new Map(rows.map((r) => [r.key, r.data])); + const missing = SECTION_KEYS.filter((k) => !byKey.has(k)); + if (missing.length) { + throw new ServiceUnavailableException(`محتوای سایت مقداردهی نشده است (${missing.join(", ")}) — pnpm db:seed را اجرا کنید`); + } + return Object.fromEntries(SECTION_KEYS.map((k) => [k, sectionSchemas[k].parse(byKey.get(k))])); + } + async get(key) { + if (!isSectionKey(key)) + throw new NotFoundException("بخش پیدا نشد"); + const row = await this.prisma.siteSection.findUnique({ where: { key } }); + if (!row) + throw new NotFoundException("بخش پیدا نشد"); + return { key, data: sectionSchemas[key].parse(row.data), updatedAt: row.updatedAt }; + } + async update(key, body, user) { + if (!isSectionKey(key)) + throw new NotFoundException("بخش پیدا نشد"); + if (key === "settings" && user.role !== "ADMIN") { + throw new ForbiddenException("فقط مدیر کل می‌تواند تنظیمات سایت را تغییر دهد"); + } + const parsed = sectionSchemas[key].safeParse(body); + if (!parsed.success) { + throw new BadRequestException({ + statusCode: 400, + message: "اطلاعات واردشده معتبر نیست", + issues: toIssues(parsed.error), + }); + } + const row = await this.prisma.siteSection.upsert({ + where: { key }, + create: { key, data: parsed.data, updatedById: user.id }, + update: { data: parsed.data, updatedById: user.id }, + }); + this.audit.log(user.id, "update", "section", key, key); + this.revalidate.trigger(); + return { key, data: parsed.data, updatedAt: row.updatedAt }; + } + async listAdmin() { + const rows = await this.prisma.siteSection.findMany(); + const byKey = new Map(rows.map((r) => [r.key, r])); + return SECTION_KEYS.map((key) => { + const row = byKey.get(key); + let data = null; + if (row) { + const parsed = sectionSchemas[key].safeParse(row.data); + data = parsed.success ? parsed.data : row.data; + } + return { + key, + updatedAt: row?.updatedAt?.toISOString() ?? null, + enabled: data && typeof data === "object" && "enabled" in data + ? data.enabled !== false + : true, + }; + }); + } + async setVisibility(key, enabled, user) { + if (!isSectionKey(key)) + throw new NotFoundException("بخش پیدا نشد"); + if (key === "settings") { + throw new BadRequestException("تنظیمات سایت قابلیت تغییر وضعیت نمایش ندارد"); + } + const row = await this.prisma.siteSection.findUnique({ where: { key } }); + if (!row) + throw new NotFoundException("بخش پیدا نشد"); + const currentData = row.data && typeof row.data === "object" ? { ...row.data } : {}; + currentData.enabled = enabled; + const parsed = sectionSchemas[key].safeParse(currentData); + if (!parsed.success) { + throw new BadRequestException({ + statusCode: 400, + message: "اطلاعات بخش معتبر نیست", + issues: toIssues(parsed.error), + }); + } + const updated = await this.prisma.siteSection.update({ + where: { key }, + data: { data: parsed.data, updatedById: user.id }, + }); + this.audit.log(user.id, "update", "section", key, `تغییر وضعیت نمایش به ${enabled ? "نمایش" : "عدم نمایش"}`); + this.revalidate.trigger(); + return { + key, + enabled: parsed.data.enabled !== false, + updatedAt: updated.updatedAt.toISOString(), + }; + } +}; +SectionsService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + AuditService, + RevalidateService]) +], SectionsService); +export { SectionsService }; +let SectionsController = class SectionsController { + sections; + constructor(sections) { + this.sections = sections; + } + list() { + return this.sections.listAdmin(); + } + get(key) { + return this.sections.get(key); + } + update(key, body, user) { + return this.sections.update(key, body, user); + } + setVisibility(key, body, user) { + const enabled = body && typeof body.enabled === "boolean" ? body.enabled : Boolean(body?.enabled); + return this.sections.setVisibility(key, enabled, user); + } +}; +__decorate([ + Get(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], SectionsController.prototype, "list", null); +__decorate([ + Get(":key"), + __param(0, Param("key")), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String]), + __metadata("design:returntype", void 0) +], SectionsController.prototype, "get", null); +__decorate([ + Put(":key"), + __param(0, Param("key")), + __param(1, Body()), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String, Object, Object]), + __metadata("design:returntype", void 0) +], SectionsController.prototype, "update", null); +__decorate([ + Patch(":key/visibility"), + __param(0, Param("key")), + __param(1, Body()), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String, Object, Object]), + __metadata("design:returntype", void 0) +], SectionsController.prototype, "setVisibility", null); +SectionsController = __decorate([ + AdminAuth(), + Controller("admin/sections"), + __metadata("design:paramtypes", [SectionsService]) +], SectionsController); +export { SectionsController }; +let SectionsModule = class SectionsModule { +}; +SectionsModule = __decorate([ + Module({ + controllers: [SectionsController], + providers: [SectionsService], + exports: [SectionsService], + }) +], SectionsModule); +export { SectionsModule }; +//# sourceMappingURL=sections.module.js.map \ No newline at end of file diff --git a/apps/api/dist/sections/sections.module.js.map b/apps/api/dist/sections/sections.module.js.map new file mode 100644 index 0000000..e40755a --- /dev/null +++ b/apps/api/dist/sections/sections.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sections.module.js","sourceRoot":"","sources":["../../src/sections/sections.module.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/seed/create-admin.js b/apps/api/dist/seed/create-admin.js new file mode 100644 index 0000000..d4bffca --- /dev/null +++ b/apps/api/dist/seed/create-admin.js @@ -0,0 +1,45 @@ +import { normalizeIrMobile } from "@imen/shared"; +import { hashPassword } from "../auth/auth.service.js"; +import { createPrismaClient } from "../prisma/prisma.service.js"; +const prisma = createPrismaClient(); +async function main() { + const phone = normalizeIrMobile("09128081392"); + const password = "09128081392"; + const name = "مدیر سایت"; + const role = "ADMIN"; + const passwordHash = await hashPassword(password); + const existing = await prisma.adminUser.findUnique({ where: { phone } }); + if (existing) { + const updated = await prisma.adminUser.update({ + where: { id: existing.id }, + data: { + passwordHash, + name, + role, + }, + }); + console.log(`User already existed, password updated for: ${updated.phone} (ID: ${updated.id})`); + } + else { + const user = await prisma.adminUser.create({ + data: { + phone, + passwordHash, + name, + role, + }, + }); + console.log(`User successfully created: ${user.phone} (ID: ${user.id}, Role: ${user.role})`); + } +} +try { + await main(); +} +catch (e) { + console.error("Error creating user:", e); + process.exitCode = 1; +} +finally { + await prisma.$disconnect(); +} +//# sourceMappingURL=create-admin.js.map \ No newline at end of file diff --git a/apps/api/dist/seed/create-admin.js.map b/apps/api/dist/seed/create-admin.js.map new file mode 100644 index 0000000..fdd4ab5 --- /dev/null +++ b/apps/api/dist/seed/create-admin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"create-admin.js","sourceRoot":"","sources":["../../src/seed/create-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;AAEpC,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC;IAC/B,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC;IAErB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC1B,IAAI,EAAE;gBACJ,YAAY;gBACZ,IAAI;gBACJ,IAAI;aACL;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,+CAA+C,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAClG,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YACzC,IAAI,EAAE;gBACJ,KAAK;gBACL,YAAY;gBACZ,IAAI;gBACJ,IAAI;aACL;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,IAAI,CAAC;IACH,MAAM,IAAI,EAAE,CAAC;AACf,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;QAAS,CAAC;IACT,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;AAC7B,CAAC"} \ No newline at end of file diff --git a/apps/api/dist/seed/data/categories.js b/apps/api/dist/seed/data/categories.js new file mode 100644 index 0000000..7dd35f4 --- /dev/null +++ b/apps/api/dist/seed/data/categories.js @@ -0,0 +1,904 @@ +export const CATEGORIES = [ + { + slug: "workwear", + code: "IP-C01", + name: "پوشاک کار و البسه صنعتی", + en: "INDUSTRIAL WORKWEAR", + shortDesc: "لباس‌کار صنعتی با پارچه فلامنت کجراه اعلا، دوخت سه سوزنه و آستر عرق‌گیر؛ مناسب محیط‌های کارگاهی و صنعتی.", + fullDesc: "مجموعه کامل پوشاک کار صنعتی شامل کاپشن و شلوار مهندسی، لباس جوشکاری، پیش‌بند دوبنده و تی‌شرت کار. تمامی مدل‌ها با پارچه فلامنت کجراه اعلا و کتان مقاوم، دوخت صنعتی سه سوزنه پیوسته برای جلوگیری از شکافتگی درزها و آستر عرق‌گیر اختصاصی تولید می‌شوند. موجود در سایزهای M تا 4XL.", + icon: "Shirt", + products: [ + { + code: "IP-W01", + name: "لباسکار مدل آلفا", + en: "ALPHA WORKWEAR", + desc: "کاپشن و شلوار مهندسی با جیب‌های پاکتی و زیپ‌دار، نوار مغزی تزئینی و طراحی ارگونومیک برای تیم‌های فنی و مهندسی.", + specs: ["فلامنت کجراه اعلا", "دوخت سه سوزنه", "آستر عرق‌گیر", "سایز M تا 4XL"], + variants: [ + "طوسی/آبی", + "مشکی/قرمز", + "مشکی/زرد", + "کرم/سرمه‌ای", + ], + }, + { + code: "IP-W02", + name: "لباسکار مدل اورجینال", + en: "ORIGINAL WORKWEAR", + desc: "کاپشن و شلوار استاندارد با دوام بالا، مناسب کادر فنی کارخانجات و خطوط تولید با ترکیب‌های صنعتی دورنگ.", + specs: ["کتان مقاوم", "دوخت سه سوزنه", "آستر عرق‌گیر", "سایز M تا 4XL"], + variants: ["ترکیب‌های صنعتی دورنگ"], + }, + { + code: "IP-W03", + name: "لباسکار مدل بوفالو", + en: "BUFFALO WORKWEAR", + desc: "طراحی اسپرت با برش‌های تقویتی روی شانه و بازو، زیپ مخفی محافظ‌دار؛ مناسب محیط‌های صنعتی فعال.", + specs: ["فلامنت کجراه اعلا", "زیپ مخفی محافظ‌دار", "برش تقویتی شانه", "سایز M تا 4XL"], + variants: [ + "سرمه‌ای/زرد", + "طوسی/قرمز", + "طوسی/خردلی", + "آبی/مشکی", + ], + }, + { + code: "IP-W04", + name: "لباسکار ست ورک", + en: "SET WORK", + desc: "ست اداری/کارگاهی با انعطاف بالا جهت فعالیت‌های فنی و تعمیراتی؛ قابل استفاده در محیط‌های ستادی و عملیاتی.", + specs: ["کتان مقاوم", "دوخت سه سوزنه", "طراحی منعطف", "سایز M تا 4XL"], + variants: ["ترکیب‌های چندگانه کارگاهی"], + }, + { + code: "IP-W05", + name: "لباسکار جوشکاری", + en: "WELDING WORKWEAR", + desc: "متریال سنگین کتان یا چرم جهت مقاومت در برابر پاشش جرقه‌های مذاب؛ طراحی‌شده برای جوشکاران صنعتی.", + specs: ["مقاوم به جرقه مذاب", "کتان سنگین / چرم", "دوخت صنعتی", "سایز M تا 4XL"], + }, + { + code: "IP-W06", + name: "پیش‌بند دوبنده", + en: "BIB OVERALLS", + desc: "آزادی عمل کامل کتف و شانه با جیب‌های چندمنظوره ابزار بر روی پیش‌سینه؛ ایده‌آل برای کارهای تعمیراتی و مونتاژ.", + specs: ["آزادی حرکت شانه", "جیب ابزار پیش‌سینه", "دوخت سه سوزنه", "سایز M تا 4XL"], + variants: ["سرمه‌ای", "خاکستری"], + }, + { + code: "IP-W07", + name: "تی‌شرت صنعتی", + en: "INDUSTRIAL T-SHIRT", + desc: "تی‌شرت یقه‌دار جودون / پنبه‌ای مناسب فصول گرم و زیرپوش کاپشن کارگاهی در سوله‌های سرپوشیده.", + specs: ["پنبه / جودون", "یقه‌دار", "مناسب فصول گرم", "سایز M تا 4XL"], + }, + ], + }, + { + slug: "safety-footwear", + code: "IP-C02", + name: "پایپوش و کفش ایمنی", + en: "SAFETY FOOTWEAR", + shortDesc: "کفش‌های اداری و کفش‌های ایمنی کارگری؛ راحت و شکیل برای محیط اداری، مقاوم و ضد لغزش برای کارگاه.", + fullDesc: "پایپوش ایمنی شامل کفش‌های اداری برای محیط‌های اداری و سبک صنعتی و کفش‌های ایمنی کارگری برای کارگاه‌ها و پروژه‌های ساختمانی؛ با زیره مقاوم و مواد مقاوم در برابر سایش و مواد شیمیایی سبک.", + icon: "Footprints", + groups: [ + { slug: "office", name: "کفش اداری", desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم." }, + { slug: "worker", name: "کفش ایمنی کارگری", desc: "مناسب کارگاه‌ها و پروژه‌های ساختمانی، مقاوم در برابر سایش و مواد شیمیایی سبک." }, + ], + products: [ + { + code: "IP-F01", + group: "office", + name: "کفش اداری مدل ۱۱۷۴", + en: "OFFICE SHOE 1174", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم نبوک", "بنددار", "زیره مقاوم"], + image: "/images/products/shoes/office/1.webp", + }, + { + code: "IP-F02", + group: "office", + name: "کفش اداری بی‌بند مدل ۶", + en: "SLIP-ON OFFICE SHOE", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم طبیعی", "بدون بند", "زیره مقاوم"], + image: "/images/products/shoes/office/2.webp", + }, + { + code: "IP-F03", + group: "office", + name: "کفش اداری بنددار مشکی", + en: "LACE-UP OFFICE SHOE", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم طبیعی", "بنددار", "زیره مقاوم"], + image: "/images/products/shoes/office/3.webp", + }, + { + code: "IP-F04", + group: "office", + name: "کفش اداری بی‌بند AAEA075", + en: "SLIP-ON OFFICE SHOE AAEA075", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم طبیعی", "بدون بند", "زیره مقاوم"], + image: "/images/products/shoes/office/4.webp", + }, + { + code: "IP-F05", + group: "office", + name: "کفش اداری شبرو", + en: "SHEBRO OFFICE SHOE", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم طبیعی", "بنددار", "زیره مقاوم"], + image: "/images/products/shoes/office/5.webp", + }, + { + code: "IP-F06", + group: "office", + name: "کفش اداری بی‌بند کلاسیک", + en: "CLASSIC SLIP-ON OFFICE SHOE", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم طبیعی", "بدون بند", "زیره مقاوم"], + image: "/images/products/shoes/office/6.webp", + }, + { + code: "IP-F07", + group: "office", + name: "کفش اداری کالج", + en: "LOAFER OFFICE SHOE", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم طبیعی", "کالج", "زیره مقاوم"], + image: "/images/products/shoes/office/7.webp", + }, + { + code: "IP-F08", + group: "office", + name: "کفش اداری دیپلمات", + en: "DIPLOMAT OFFICE SHOE", + desc: "مناسب محیط‌های اداری و سبک صنعتی، راحت، سبک و شکیل با زیره مقاوم.", + specs: ["چرم طبیعی", "بنددار", "طراحی رسمی"], + image: "/images/products/shoes/office/8.webp", + }, + { + code: "IP-F09", + group: "worker", + name: "کفش ایمنی کارگری مدل ۱", + en: "WORKER SAFETY SHOE", + desc: "مناسب کارگاه‌ها و پروژه‌های ساختمانی، مقاوم در برابر سایش و مواد شیمیایی سبک.", + specs: ["مقاوم به سایش", "زیره ضد لغزش"], + image: "/images/products/shoes/worker/1.png", + }, + { + code: "IP-F10", + group: "worker", + name: "کفش ایمنی کارگری مدل ۲", + en: "WORKER SAFETY SHOE", + desc: "مناسب کارگاه‌ها و پروژه‌های ساختمانی، مقاوم در برابر سایش و مواد شیمیایی سبک.", + specs: ["مقاوم به سایش", "زیره ضد لغزش"], + image: "/images/products/shoes/worker/2.png", + }, + { + code: "IP-F11", + group: "worker", + name: "کفش ایمنی کارگری مدل ۹۰", + en: "WORKER SAFETY SHOE 90", + desc: "مناسب کارگاه‌ها و پروژه‌های ساختمانی، مقاوم در برابر سایش و مواد شیمیایی سبک.", + specs: ["مقاوم به سایش", "زیره ضد لغزش"], + image: "/images/products/shoes/worker/3.png", + }, + { + code: "IP-F12", + group: "worker", + name: "کفش ایمنی پاتن پدیده تبریز مدل رایکا S1017", + en: "PATEN PADIDEH RAYKA S1017", + desc: "مناسب کارگاه‌ها و پروژه‌های ساختمانی، مقاوم در برابر سایش و مواد شیمیایی سبک.", + specs: ["پاتن پدیده تبریز", "مقاوم به سایش", "زیره ضد لغزش"], + image: "/images/products/shoes/worker/4.png", + }, + { + code: "IP-F13", + group: "worker", + name: "کفش ایمنی پیما مدل دنا", + en: "PAYMA DENA SAFETY SHOE", + desc: "مناسب کارگاه‌ها و پروژه‌های ساختمانی، مقاوم در برابر سایش و مواد شیمیایی سبک.", + specs: ["پیما", "مقاوم به سایش", "زیره ضد لغزش"], + image: "/images/products/shoes/worker/5.png", + }, + { + code: "IP-F14", + group: "worker", + name: "کفش کار کارگری ساق‌دار", + en: "WORKER SAFETY BOOT", + desc: "مناسب کارگاه‌ها و پروژه‌های ساختمانی، مقاوم در برابر سایش و مواد شیمیایی سبک.", + specs: ["ساق‌دار", "مقاوم به سایش", "زیره ضد لغزش"], + image: "/images/products/shoes/worker/6.png", + }, + ], + }, + { + slug: "protective-gloves", + code: "IP-C03", + name: "دستکش‌های حفاظتی", + en: "PROTECTIVE GLOVES", + shortDesc: "دستکش‌های ضد برش، چرم، ضد اسید و ضد حلال برای کارهای سنگین صنعتی، جوشکاری و تماس با مواد شیمیایی.", + fullDesc: "دستکش‌های حفاظت فردی شامل مدل‌های ضد برش، چرم، ضد اسید و ضد حلال؛ از برندهای استادکار، امریکن سیفتی، ماکسی درای و NM Safety. هر مدل متناسب با نوع خطر محیط کار انتخاب شده است.", + icon: "Hand", + groups: [ + { slug: "cut", name: "دستکش ضد برش", desc: "ایمن در برابر تیغه‌ها و فلزات تیز." }, + { slug: "leather", name: "دستکش چرم", desc: "محافظ دست در برابر حرارت، جرقه و سایش در کارهای سنگین و جوشکاری." }, + { slug: "acid", name: "دستکش ضد اسید", desc: "محافظت کامل در برابر اسیدها و بازها." }, + { slug: "solvent", name: "دستکش ضد حلال", desc: "مقاومت بالا در برابر تماس با مواد شیمیایی." }, + ], + products: [ + { + code: "IP-G01", + group: "cut", + name: "دستکش ضد برش لاتکسی", + en: "LATEX CUT-RESISTANT GLOVE", + desc: "ایمن در برابر تیغه‌ها و فلزات تیز.", + specs: ["ضد برش", "پوشش لاتکس"], + image: "/images/products/gloves/cut/1.webp", + }, + { + code: "IP-G02", + group: "cut", + name: "دستکش ضد برش مدل ۲", + en: "CUT-RESISTANT GLOVE", + desc: "ایمن در برابر تیغه‌ها و فلزات تیز.", + specs: ["ضد برش"], + image: "/images/products/gloves/cut/2.webp", + }, + { + code: "IP-G03", + group: "cut", + name: "دستکش ضد برش مدل ۳", + en: "CUT-RESISTANT GLOVE", + desc: "ایمن در برابر تیغه‌ها و فلزات تیز.", + specs: ["ضد برش"], + image: "/images/products/gloves/cut/3.webp", + }, + { + code: "IP-G04", + group: "cut", + name: "دستکش ضد برش استادکار ۱۲ جفتی", + en: "OSTADKAR CUT-RESISTANT GLOVE", + desc: "ایمن در برابر تیغه‌ها و فلزات تیز.", + specs: ["ضد برش", "استادکار", "بسته ۱۲ جفتی"], + image: "/images/products/gloves/cut/4.webp", + }, + { + code: "IP-G05", + group: "cut", + name: "دستکش ضد برش تانگ وانگ", + en: "TANG WANG CUT-RESISTANT GLOVE", + desc: "ایمن در برابر تیغه‌ها و فلزات تیز.", + specs: ["ضد برش", "تانگ وانگ"], + image: "/images/products/gloves/cut/5.webp", + }, + { + code: "IP-G06", + group: "leather", + name: "دستکش چرم مدل ۰۷", + en: "LEATHER GLOVE", + desc: "محافظ دست در برابر حرارت، جرقه و سایش در کارهای سنگین و جوشکاری.", + specs: ["چرم"], + image: "/images/products/gloves/leather/1.webp", + }, + { + code: "IP-G07", + group: "leather", + name: "دستکش چرم BMW", + en: "BMW LEATHER GLOVE", + desc: "محافظ دست در برابر حرارت، جرقه و سایش در کارهای سنگین و جوشکاری.", + specs: ["چرم", "ساق بلند"], + image: "/images/products/gloves/leather/2.webp", + }, + { + code: "IP-G08", + group: "leather", + name: "دستکش کف چرم دوبل ساق پارچه‌ای", + en: "DOUBLE-PALM LEATHER GLOVE, FABRIC CUFF", + desc: "محافظ دست در برابر حرارت، جرقه و سایش در کارهای سنگین و جوشکاری.", + specs: ["کف چرم دوبل", "ساق پارچه‌ای"], + image: "/images/products/gloves/leather/3.webp", + }, + { + code: "IP-G09", + group: "leather", + name: "دستکش کف چرم دوبل ساق چرم", + en: "DOUBLE-PALM LEATHER GLOVE, LEATHER CUFF", + desc: "محافظ دست در برابر حرارت، جرقه و سایش در کارهای سنگین و جوشکاری.", + specs: ["کف چرم دوبل", "ساق چرم"], + image: "/images/products/gloves/leather/4.webp", + }, + { + code: "IP-G10", + group: "leather", + name: "دستکش هوبارت امریکن سیفتی", + en: "AMERICAN SAFETY HOBART GLOVE", + desc: "محافظ دست در برابر حرارت، جرقه و سایش در کارهای سنگین و جوشکاری.", + specs: ["چرم", "جوشکاری", "EN 388 / EN 407"], + image: "/images/products/gloves/leather/5.webp", + }, + { + code: "IP-G11", + group: "leather", + name: "دستکش هوبارت طرح فرانسه", + en: "FRENCH-STYLE HOBART GLOVE", + desc: "محافظ دست در برابر حرارت، جرقه و سایش در کارهای سنگین و جوشکاری.", + specs: ["چرم", "جوشکاری"], + image: "/images/products/gloves/leather/6.webp", + }, + { + code: "IP-G12", + group: "acid", + name: "دستکش ضد اسید مدل ۱", + en: "ACID-RESISTANT GLOVE", + desc: "محافظت کامل در برابر اسیدها و بازها.", + specs: ["ضد اسید"], + image: "/images/products/gloves/acid/1.webp", + }, + { + code: "IP-G13", + group: "acid", + name: "دستکش ضد اسید مدل ۲", + en: "ACID-RESISTANT GLOVE", + desc: "محافظت کامل در برابر اسیدها و بازها.", + specs: ["ضد اسید"], + image: "/images/products/gloves/acid/2.webp", + }, + { + code: "IP-G14", + group: "acid", + name: "دستکش ضد اسید مدل ۳", + en: "ACID-RESISTANT GLOVE", + desc: "محافظت کامل در برابر اسیدها و بازها.", + specs: ["ضد اسید"], + image: "/images/products/gloves/acid/3.webp", + }, + { + code: "IP-G15", + group: "acid", + name: "دستکش ضد اسید مقاوم شیمیایی", + en: "CHEMICAL-RESISTANT GLOVE", + desc: "محافظت کامل در برابر اسیدها و بازها.", + specs: ["ضد اسید", "مقاوم شیمیایی", "ساق بلند"], + image: "/images/products/gloves/acid/4.webp", + }, + { + code: "IP-G16", + group: "solvent", + name: "دستکش ضد حلال مدل ۱۳", + en: "SOLVENT-RESISTANT GLOVE", + desc: "مقاومت بالا در برابر تماس با مواد شیمیایی.", + specs: ["ضد حلال"], + image: "/images/products/gloves/solvent/1.webp", + }, + { + code: "IP-G17", + group: "solvent", + name: "دستکش ماکسی درای پلاس 56-530", + en: "MAXIDRY PLUS 56-530", + desc: "مقاومت بالا در برابر تماس با مواد شیمیایی.", + specs: ["ضد حلال", "MaxiDry Plus"], + image: "/images/products/gloves/solvent/2.webp", + }, + { + code: "IP-G18", + group: "solvent", + name: "دستکش ضد حلال نیتریلی", + en: "NITRILE SOLVENT-RESISTANT GLOVE", + desc: "مقاومت بالا در برابر تماس با مواد شیمیایی.", + specs: ["ضد حلال", "نیتریل"], + image: "/images/products/gloves/solvent/3.webp", + }, + { + code: "IP-G19", + group: "solvent", + name: "دستکش نیتریل آزمایشگاهی ضد حلال NM Safety", + en: "NM SAFETY NITRILE LAB GLOVE", + desc: "مقاومت بالا در برابر تماس با مواد شیمیایی.", + specs: ["ضد حلال", "نیتریل", "آزمایشگاهی"], + image: "/images/products/gloves/solvent/4.webp", + }, + ], + }, + { + slug: "safety-helmets", + code: "IP-C04", + name: "کلاه ایمنی", + en: "SAFETY HELMETS", + shortDesc: "کلاه‌های ایمنی کارگری، مهندسی، کار در ارتفاع و کپ ایمنی؛ مقاوم در برابر ضربه و سقوط اجسام.", + fullDesc: "انواع کلاه ایمنی صنعتی شامل مدل‌های کارگری، مهندسی، کار در ارتفاع با بند چانه قابل تنظیم و کپ ایمنی سبک. با پوسته ضربه‌گیر مقاوم، رگلاژ داخلی قابل تنظیم و تنوع رنگی استاندارد HSE.", + icon: "HardHat", + groups: [ + { slug: "worker", name: "کلاه کارگری", desc: "محافظت از سر در محیط‌های صنعتی و کارگاه‌ها، مقاوم در برابر ضربه و سقوط اجسام." }, + { slug: "engineering", name: "کلاه مهندسی", desc: "مناسب محیط‌های اداری و صنعتی سبک، راحت و شکیل با تهویه مناسب." }, + { slug: "height", name: "کار در ارتفاع", desc: "دارای بند چانه قابل تنظیم برای ثبات بیشتر هنگام کار در ارتفاع." }, + { slug: "cap", name: "کپ ایمنی", desc: "سبک و راحت، مناسب استفاده روزمره در محیط‌های صنعتی و اداری." }, + ], + products: [ + { + code: "IP-H01", + group: "worker", + name: "کلاه ایمنی کارگری آبی", + en: "WORKER SAFETY HELMET", + desc: "محافظت از سر در محیط‌های صنعتی و کارگاه‌ها، مقاوم در برابر ضربه و سقوط اجسام.", + specs: ["پوسته ضربه‌گیر", "رگلاژ قابل تنظیم"], + image: "/images/products/helmets/2.webp", + }, + { + code: "IP-H02", + group: "engineering", + name: "کلاه ایمنی مهندسی پادکس", + en: "PADEX ENGINEERING HELMET", + desc: "مناسب محیط‌های اداری و صنعتی سبک، راحت و شکیل با تهویه مناسب.", + specs: ["پادکس", "تهویه مناسب", "رگلاژ قابل تنظیم"], + image: "/images/products/helmets/11.webp", + }, + { + code: "IP-H03", + group: "engineering", + name: "کلاه ایمنی مهندسی پادکس PADX", + en: "PADEX PADX ENGINEERING HELMET", + desc: "مناسب محیط‌های اداری و صنعتی سبک، راحت و شکیل با تهویه مناسب.", + specs: ["پادکس", "تهویه مناسب", "رگلاژ قابل تنظیم"], + image: "/images/products/helmets/12.webp", + }, + { + code: "IP-H04", + group: "engineering", + name: "کلاه ایمنی مهندس پادکس (نمای داخلی)", + en: "PADEX HELMET HARNESS", + desc: "مناسب محیط‌های اداری و صنعتی سبک، راحت و شکیل با تهویه مناسب.", + specs: ["پادکس", "یراق داخلی", "رگلاژ قابل تنظیم"], + image: "/images/products/helmets/10.webp", + }, + { + code: "IP-H05", + group: "height", + name: "کلاه ایمنی کار در ارتفاع با عینک", + en: "HEIGHT HELMET WITH VISOR", + desc: "دارای بند چانه قابل تنظیم برای ثبات بیشتر هنگام کار در ارتفاع.", + specs: ["بند چانه", "عینک داخلی", "رگلاژ قابل تنظیم"], + image: "/images/products/helmets/1.webp", + }, + { + code: "IP-H06", + group: "height", + name: "کلاه ایمنی کار در ارتفاع uvex", + en: "UVEX HEIGHT HELMET", + desc: "دارای بند چانه قابل تنظیم برای ثبات بیشتر هنگام کار در ارتفاع.", + specs: ["uvex", "بند چانه", "تهویه مناسب"], + image: "/images/products/helmets/3.webp", + }, + { + code: "IP-H07", + group: "height", + name: "کلاه ایمنی کار در ارتفاع سبز", + en: "HEIGHT SAFETY HELMET", + desc: "دارای بند چانه قابل تنظیم برای ثبات بیشتر هنگام کار در ارتفاع.", + specs: ["بند چانه", "رگلاژ قابل تنظیم"], + image: "/images/products/helmets/4.webp", + }, + { + code: "IP-H08", + group: "height", + name: "کلاه ایمنی صنعتی MK8", + en: "MK8 INDUSTRIAL HELMET", + desc: "دارای بند چانه قابل تنظیم برای ثبات بیشتر هنگام کار در ارتفاع.", + specs: ["MK8", "بند چانه", "تهویه مناسب"], + image: "/images/products/helmets/9.webp", + }, + { + code: "IP-H09", + group: "cap", + name: "کپ ایمنی ضربه‌گیر", + en: "SAFETY BUMP CAP", + desc: "سبک و راحت، مناسب استفاده روزمره در محیط‌های صنعتی و اداری.", + specs: ["نقاب‌دار", "ضربه‌گیر داخلی", "سبک‌وزن"], + image: "/images/products/helmets/5.webp", + }, + ], + }, + { + slug: "eye-protection", + code: "IP-C05", + name: "عینک ایمنی و صنعتی", + en: "EYE PROTECTION", + shortDesc: "عینک‌های شفاف و دودی و گاگل‌های محافظتی با ویژگی‌های ضد ضربه، ضد خش، ضد بخار و UV.", + fullDesc: "عینک‌های ایمنی صنعتی شامل عینک‌های شفاف، دودی و UV و گاگل‌های کش‌دار از برندهای uvex، توتاص، کاناسیف و تک پلاست. ضد ضربه، ضد خش، ضد بخار و قابل تنظیم برای انواع سایز صورت.", + icon: "Glasses", + groups: [ + { slug: "clear", name: "عینک شفاف", desc: "محافظت از چشم‌ها در برابر برخورد اجسام و ابزار؛ ضد خش با دید واضح." }, + { slug: "tinted", name: "عینک دودی و UV", desc: "محافظت در برابر اشعه مضر خورشید و نور شدید." }, + { slug: "goggle", name: "گاگل", desc: "ضد بخار و ضد ضربه؛ جلوگیری از ایجاد مه در محیط‌های گرم یا مرطوب." }, + ], + products: [ + { + code: "IP-E01", + group: "clear", + name: "عینک ایمنی شفاف دسته قابل تنظیم", + en: "ADJUSTABLE CLEAR SAFETY GLASSES", + desc: "محافظت از چشم‌ها در برابر برخورد اجسام و ابزار؛ قابل تنظیم برای انواع سایز صورت.", + specs: ["ضد ضربه", "قابل تنظیم"], + image: "/images/products/eyewear/1.webp", + }, + { + code: "IP-E02", + group: "clear", + name: "عینک ایمنی روطبی", + en: "OVER-SPEC SAFETY GLASSES", + desc: "محافظت از چشم‌ها در برابر برخورد اجسام و ابزار؛ قابل استفاده روی عینک طبی.", + specs: ["ضد ضربه", "روطبی"], + image: "/images/products/eyewear/4.webp", + }, + { + code: "IP-E03", + group: "clear", + name: "عینک ایمنی uvex i-5", + en: "UVEX I-5 SAFETY GLASSES", + desc: "محافظت از چشم‌ها در برابر برخورد اجسام و ابزار؛ ضد خش با دید واضح.", + specs: ["uvex", "ضد ضربه", "ضد خش"], + image: "/images/products/eyewear/5.webp", + }, + { + code: "IP-E04", + group: "clear", + name: "عینک شیشه سفید تک پلاست", + en: "TAK PLAST CLEAR GLASSES", + desc: "محافظت از چشم‌ها در برابر برخورد اجسام و ابزار؛ دارای محافظ کناری.", + specs: ["تک پلاست", "محافظ کناری"], + image: "/images/products/eyewear/11.webp", + }, + { + code: "IP-E05", + group: "tinted", + name: "عینک ایمنی uvex دودی", + en: "UVEX TINTED SAFETY GLASSES", + desc: "محافظت در برابر اشعه مضر خورشید و نور شدید.", + specs: ["uvex", "شیشه UV", "ضد ضربه"], + image: "/images/products/eyewear/6.webp", + }, + { + code: "IP-E06", + group: "tinted", + name: "عینک ایمنی توتاص AT113", + en: "TOTAS AT113", + desc: "محافظت در برابر اشعه مضر خورشید و نور شدید.", + specs: ["توتاص", "شیشه UV", "ضد ضربه"], + image: "/images/products/eyewear/7.webp", + }, + { + code: "IP-E07", + group: "tinted", + name: "عینک ایمنی کاناسیف 20105", + en: "CANASAFE 20105", + desc: "محافظت در برابر اشعه مضر و نور شدید جوشکاری.", + specs: ["کاناسیف", "شیشه UV", "قابل تنظیم"], + image: "/images/products/eyewear/9.webp", + }, + { + code: "IP-E08", + group: "tinted", + name: "عینک توتاص AT116", + en: "TOTAS AT116", + desc: "محافظت در برابر اشعه مضر خورشید و نور شدید.", + specs: ["توتاص", "شیشه UV", "روطبی"], + image: "/images/products/eyewear/10.webp", + }, + { + code: "IP-E09", + group: "goggle", + name: "گاگل uvex ultravision", + en: "UVEX ULTRAVISION GOGGLE", + desc: "ضد بخار و ضد ضربه؛ جلوگیری از ایجاد مه در محیط‌های گرم یا مرطوب.", + specs: ["uvex", "ضد بخار", "کش‌دار"], + image: "/images/products/eyewear/2.webp", + }, + { + code: "IP-E10", + group: "goggle", + name: "گاگل ایمنی کش‌دار", + en: "SAFETY GOGGLE", + desc: "ضد بخار و ضد ضربه؛ جلوگیری از ایجاد مه در محیط‌های گرم یا مرطوب.", + specs: ["ضد بخار", "کش‌دار"], + image: "/images/products/eyewear/3.webp", + }, + { + code: "IP-E11", + group: "goggle", + name: "گاگل ایمنی توتاص ATBM", + en: "TOTAS ATBM GOGGLE", + desc: "ضد بخار و ضد ضربه؛ جلوگیری از ایجاد مه در محیط‌های گرم یا مرطوب.", + specs: ["توتاص", "ضد بخار", "کش‌دار"], + image: "/images/products/eyewear/8.webp", + }, + ], + }, + { + slug: "hearing-protection", + code: "IP-C06", + name: "حفاظت شنوایی", + en: "HEARING PROTECTION", + shortDesc: "ایرماف روگوشی با کاهش ۲۸ دسی‌بل و ایرپلاگ‌های اسفنجی و سیلیکونی برای محیط‌های پرسروصدا.", + fullDesc: "تجهیزات حفاظت شنوایی شامل ایرماف (محافظ روگوشی) با کاهش تراز صدا تا ۲۸ دسی‌بل و ایرپلاگ (داخل‌گوشی) در مدل‌های اسفنجی فرم‌گیر و پله‌ای سیلیکونی. مناسب محیط‌های با آلودگی صوتی بالای ۸۵ دسی‌بل، کمپرسورخانه‌ها و خطوط تولید سنگین.", + icon: "Ear", + groups: [ + { slug: "earmuff", name: "ایرماف", desc: "کاهش صدا تا ۲۸ دسی‌بل، مناسب محیط‌های صنعتی و کارگاهی، قابل تنظیم و راحت برای استفاده طولانی." }, + { slug: "earplug", name: "ایرپلاگ", desc: "محافظت در برابر صداهای شدید و نویز محیط، سبک و راحت، مدل‌های یکبار مصرف و چندبار مصرف." }, + ], + products: [ + { + code: "IP-HP01", + group: "earmuff", + name: "ایرماف هلبرگ", + en: "HELLBERG EARMUFF", + desc: "کاهش صدا تا ۲۸ دسی‌بل، مناسب محیط‌های صنعتی و کارگاهی، قابل تنظیم و راحت برای استفاده طولانی.", + specs: ["Hellberg", "هدبند قابل تنظیم", "بالشتک نرم"], + image: "/images/products/hearing/1.webp", + }, + { + code: "IP-HP02", + group: "earmuff", + name: "ایرماف uvex K2", + en: "UVEX K2 EARMUFF", + desc: "کاهش صدا تا ۲۸ دسی‌بل، مناسب محیط‌های صنعتی و کارگاهی، قابل تنظیم و راحت برای استفاده طولانی.", + specs: ["uvex", "هدبند قابل تنظیم", "بالشتک نرم"], + image: "/images/products/hearing/2.webp", + }, + { + code: "IP-HP03", + group: "earmuff", + name: "ایرماف بوفالو 110", + en: "BUFFALO 110 EARMUFF", + desc: "کاهش صدا تا ۲۸ دسی‌بل، مناسب محیط‌های صنعتی و کارگاهی، قابل تنظیم و راحت برای استفاده طولانی.", + specs: ["بوفالو", "هدبند قابل تنظیم", "بالشتک نرم"], + image: "/images/products/hearing/4.webp", + }, + { + code: "IP-HP04", + group: "earmuff", + name: "گوشی صداگیر 3M", + en: "3M EARMUFF", + desc: "کاهش صدا تا ۲۸ دسی‌بل، مناسب محیط‌های صنعتی و کارگاهی، قابل تنظیم و راحت برای استفاده طولانی.", + specs: ["3M", "هدبند قابل تنظیم", "بالشتک نرم"], + image: "/images/products/hearing/8.webp", + }, + { + code: "IP-HP05", + group: "earplug", + name: "ایرپلاگ کاستا مکس فیت MAXFIT", + en: "COSTA MAXFIT EARPLUG", + desc: "محافظت در برابر صداهای شدید و نویز محیط، سبک و راحت.", + specs: ["سیلیکونی پله‌ای", "بنددار", "چندبار مصرف"], + image: "/images/products/hearing/3.webp", + }, + { + code: "IP-HP06", + group: "earplug", + name: "ایرپلاگ اسفنجی Bilsom 303L", + en: "BILSOM 303L FOAM EARPLUG", + desc: "محافظت در برابر صداهای شدید و نویز محیط، سبک و راحت.", + specs: ["اسفنجی", "بنددار / بدون بند", "یکبار مصرف"], + image: "/images/products/hearing/5.webp", + }, + { + code: "IP-HP07", + group: "earplug", + name: "ایرپلاگ اسفنجی ماگما", + en: "MAGMA FOAM EARPLUG", + desc: "محافظت در برابر صداهای شدید و نویز محیط، سبک و راحت.", + specs: ["اسفنجی", "یکبار مصرف"], + image: "/images/products/hearing/6.webp", + }, + { + code: "IP-HP08", + group: "earplug", + name: "ایرپلاگ مکس فیت با قاب", + en: "MAXFIT EARPLUG WITH CASE", + desc: "محافظت در برابر صداهای شدید و نویز محیط، سبک و راحت.", + specs: ["سیلیکونی پله‌ای", "بنددار", "قاب نگهداری"], + image: "/images/products/hearing/7.webp", + }, + ], + }, + { + slug: "respiratory-protection", + code: "IP-C07", + name: "حفاظت تنفسی", + en: "RESPIRATORY PROTECTION", + shortDesc: "ماسک‌های نیم‌صورت، تمام‌صورت، شیمیایی، P2/P3 و فیلتردار برای محافظت در برابر گازها و ذرات.", + fullDesc: "تجهیزات حفاظت تنفسی شامل ماسک‌های نیم‌صورت، تمام‌صورت، شیمیایی با کارتریج تخصصی، ماسک‌های فیلتردار P2/P3 برای ذرات میکرونی، ماسک‌های با فیلتر تعویضی اقتصادی و ماسک‌های سه‌لایه بهداشتی. مناسب کار با حلال‌های فرار، غبارهای معدنی، رنگ‌پاشی و خطوط شیمیایی.", + icon: "ShieldPlus", + groups: [ + { slug: "half", name: "ماسک نیم‌صورت", desc: "پوشش‌دهی بینی و دهان با فیلتر قابل تعویض؛ مناسب محیط‌های صنعتی با آلودگی متوسط و بخارات شیمیایی." }, + { slug: "full", name: "ماسک تمام‌صورت", desc: "محافظت کامل از صورت و چشم‌ها، مناسب کار با مواد شیمیایی و محیط‌های پرخطر." }, + { slug: "particulate", name: "ماسک فیلتردار P2/P3", desc: "محافظت در برابر گرد و غبار و ذرات معلق در هوا." }, + { slug: "medical", name: "ماسک سه‌لایه", desc: "ماسک سبک و راحت، مناسب استفاده روزمره و محیط‌های با آلودگی کم." }, + ], + products: [ + { + code: "IP-R01", + group: "half", + name: "ماسک نیم‌صورت با فیلتر تعویضی", + en: "HALF-FACE RESPIRATOR WITH FILTERS", + desc: "پوشش‌دهی بینی و دهان با فیلتر قابل تعویض برای استفاده طولانی‌مدت.", + specs: ["نیم‌صورت", "فیلتر تعویضی", "دو کارتریج"], + image: "/images/products/respiratory/5.webp", + }, + { + code: "IP-R02", + group: "half", + name: "ماسک نیم‌صورت نورث 5500", + en: "NORTH 5500 HALF MASK", + desc: "پوشش‌دهی بینی و دهان، مناسب محیط‌های صنعتی با آلودگی متوسط.", + specs: ["North", "نیم‌صورت", "فیلتر تعویضی"], + image: "/images/products/respiratory/6.webp", + }, + { + code: "IP-R03", + group: "half", + name: "ماسک شیمیایی نیم‌صورت 3M", + en: "3M HALF-FACE RESPIRATOR", + desc: "محافظت در برابر بخارات و گازهای شیمیایی با کارتریج و فیلتر قابل تعویض.", + specs: ["3M", "کارتریج شیمیایی", "فیلتر تعویضی"], + image: "/images/products/respiratory/7.webp", + }, + { + code: "IP-R04", + group: "half", + name: "ماسک نیم‌صورت نورث 7700", + en: "NORTH 7700 HALF MASK", + desc: "پوشش‌دهی بینی و دهان با بدنه سیلیکونی، مناسب استفاده طولانی‌مدت.", + specs: ["North", "سیلیکونی", "فیلتر تعویضی"], + image: "/images/products/respiratory/11.webp", + }, + { + code: "IP-R05", + group: "half", + name: "ماسک نیم‌صورت نورث 7700 (نمای جانبی)", + en: "NORTH 7700 HALF MASK", + desc: "پوشش‌دهی بینی و دهان با بدنه سیلیکونی، مناسب استفاده طولانی‌مدت.", + specs: ["North", "سیلیکونی", "فیلتر تعویضی"], + image: "/images/products/respiratory/10.webp", + }, + { + code: "IP-R06", + group: "full", + name: "ماسک تمام‌صورت", + en: "FULL-FACE RESPIRATOR", + desc: "محافظت کامل از صورت و چشم‌ها، مناسب کار با مواد شیمیایی و محیط‌های پرخطر.", + specs: ["تمام‌صورت", "شیشه ضد ضربه", "فیلتر تعویضی"], + image: "/images/products/respiratory/4.webp", + }, + { + code: "IP-R07", + group: "full", + name: "ماسک تنفسی دراگر", + en: "DRÄGER FULL-FACE RESPIRATOR", + desc: "محافظت کامل از صورت و چشم‌ها، مناسب کار با مواد شیمیایی و محیط‌های پرخطر.", + specs: ["Dräger", "تمام‌صورت", "فیلتر چندمنظوره"], + image: "/images/products/respiratory/8.webp", + }, + { + code: "IP-R08", + group: "particulate", + name: "ماسک فیلتردار تاشو", + en: "FOLDABLE PARTICULATE MASK", + desc: "محافظت در برابر گرد و غبار و ذرات معلق در هوا.", + specs: ["P2", "تاشو", "یکبار مصرف"], + image: "/images/products/respiratory/1.webp", + }, + { + code: "IP-R09", + group: "particulate", + name: "ماسک فیلتردار سوپاپ‌دار", + en: "VALVED PARTICULATE MASK", + desc: "محافظت در برابر گرد و غبار و ذرات معلق در هوا.", + specs: ["P2 / P3", "سوپاپ بازدمی", "یکبار مصرف"], + image: "/images/products/respiratory/2.webp", + }, + { + code: "IP-R10", + group: "particulate", + name: "ماسک فیلتردار دراگر سوپاپ‌دار", + en: "DRÄGER VALVED PARTICULATE MASK", + desc: "محافظت در برابر گرد و غبار و ذرات معلق در هوا.", + specs: ["Dräger", "سوپاپ بازدمی", "P2 / P3"], + image: "/images/products/respiratory/3.webp", + }, + { + code: "IP-R11", + group: "medical", + name: "ماسک سه‌لایه پزشکی", + en: "THREE-LAYER MEDICAL MASK", + desc: "ماسک سبک و راحت، مناسب استفاده روزمره و محیط‌های با آلودگی کم.", + specs: ["سه‌لایه", "یکبار مصرف", "بسته ۵۰ عددی"], + image: "/images/products/respiratory/9.webp", + }, + ], + }, + { + slug: "traffic-equipment", + code: "IP-C08", + name: "تجهیزات ترافیکی و ایمنی محیطی", + en: "TRAFFIC & SITE SAFETY", + shortDesc: "مخروط، نیوجرسی، استوانه، سرعت‌گیر، آینه محدب و سایر تجهیزات ایمن‌سازی محوطه صنعتی.", + fullDesc: "تجهیزات ترافیکی و ایمنی محیطی شامل مخروط ترافیکی، نیوجرسی پلاستیکی، استوانه و بولارد، چراغ و تابلوهای هشداردهنده، باتوم ترافیکی، نوارهای خطر، سرعت‌گیر لاستیکی، آینه‌های محدب، محافظ گوشه ستون و گل‌میخ خورشیدی. مناسب ایمن‌سازی محوطه کارخانه، انبارها، رمپ‌ها و پارکینگ‌ها.", + icon: "TriangleAlert", + products: [ + { + code: "IP-T01", + name: "مخروط ترافیکی", + en: "TRAFFIC CONE", + desc: "PVC انعطاف‌پذیر با شبرنگ‌های استاندارد روز و شب؛ مقاوم در برابر واژگونی و ضربه خودرو.", + specs: ["PVC انعطاف‌پذیر", "شبرنگ استاندارد", "مقاوم به واژگونی", "قابل رؤیت شبانه"], + }, + { + code: "IP-T02", + name: "نیوجرسی پلاستیکی", + en: "NEW JERSEY BARRIER", + desc: "بدنه پلی‌اتیلنی مدولار قابل اتصال با قابلیت پرشوندگی با آب یا ماسه جهت تثبیت و ایجاد حائل.", + specs: ["پلی‌اتیلن مدولار", "قابل اتصال", "پرشدنی با آب/ماسه", "مقاوم UV"], + }, + { + code: "IP-T03", + name: "استوانه ترافیکی", + en: "TRAFFIC BOLLARD", + desc: "پلی‌اورتان ارتجاعی انعطاف‌پذیر پس از ضربه؛ مجهز به حلقه‌های شبرنگ هشدار برای تفکیک مسیر.", + specs: ["پلی‌اورتان ارتجاعی", "بازگشت پس از ضربه", "شبرنگ هشدار", "نصب آسان"], + }, + { + code: "IP-T04", + name: "چراغ و تابلوی هشدار", + en: "WARNING LIGHT & SIGN", + desc: "چراغ‌های چشمک‌زن سولار، تابلوی دستی ایست/حرکت و تابلوهای علائم هشداردهنده ترافیکی.", + specs: ["سولار / باتری", "LED چشمک‌زن", "تابلوی Stop/Go", "علائم استاندارد"], + }, + { + code: "IP-T05", + name: "باتوم ترافیکی", + en: "TRAFFIC BATON", + desc: "باتوم LED دار دستی جهت هدایت ترافیک در شب و محیط‌های کم‌نور؛ سبک و ارگونومیک.", + specs: ["LED داخلی", "قابل رؤیت شبانه", "سبک‌وزن", "ارگونومیک"], + }, + { + code: "IP-T06", + name: "نوار خطر", + en: "CAUTION TAPE", + desc: "نوار شطرنجی و خط‌کشی زرد/قرمز هشدار محوطه گودبرداری و مناطق خطرناک با رول‌های بازتابنده نور.", + specs: ["زرد / قرمز هشدار", "بازتابنده نور", "رول بلند", "مقاوم به پارگی"], + }, + { + code: "IP-T07", + name: "سرعت‌گیر لاستیکی", + en: "RUBBER SPEED BUMP", + desc: "قطعات لاستیکی سنگین مدولار با مقاومت وزنی بالا و المان‌های بازتابش شبانه؛ نصب آسان.", + specs: ["لاستیکی مدولار", "مقاومت وزنی بالا", "بازتاب شبانه", "نصب پیچی"], + }, + { + code: "IP-T08", + name: "آینه محدب ترافیکی", + en: "CONVEX TRAFFIC MIRROR", + desc: "آینه نشکن فریم‌دار و کلاه‌دار جهت پوشش نقاط کور پیچ‌ها، تقاطع‌ها و درب انبار.", + specs: ["نشکن", "فریم‌دار و کلاه‌دار", "پوشش نقاط کور", "مقاوم به آب و باد"], + }, + { + code: "IP-T09", + name: "محافظ گوشه ستون", + en: "CORNER GUARD", + desc: "ضربه‌گیر لاستیکی شبرنگ‌دار جهت نصب روی ستون‌ها برای ممانعت از آسیب لیفتراک و خودروهای سنگین.", + specs: ["لاستیکی ضربه‌گیر", "شبرنگ‌دار", "نصب دیواری", "محافظ ستون"], + }, + { + code: "IP-T10", + name: "گل‌میخ ترافیکی خورشیدی", + en: "SOLAR ROAD STUD", + desc: "بدنه آلومینیومی مستحکم مجهز به پنل خورشیدی و LED جهت تعیین مسیر و خط‌کشی شبانه.", + specs: ["آلومینیوم مستحکم", "پنل خورشیدی", "LED", "مقاوم به عبور خودرو"], + }, + ], + }, +]; +//# sourceMappingURL=categories.js.map \ No newline at end of file diff --git a/apps/api/dist/seed/data/categories.js.map b/apps/api/dist/seed/data/categories.js.map new file mode 100644 index 0000000..a9ee0ba --- /dev/null +++ b/apps/api/dist/seed/data/categories.js.map @@ -0,0 +1 @@ +{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/seed/data/categories.ts"],"names":[],"mappings":"AAmCA,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,yBAAyB;QAC/B,EAAE,EAAE,qBAAqB;QACzB,SAAS,EACP,0GAA0G;QAC5G,QAAQ,EACN,mRAAmR;QACrR,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,gHAAgH;gBACtH,KAAK,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,CAAC;gBAC9E,QAAQ,EAAE;oBACR,UAAU;oBACV,WAAW;oBACX,UAAU;oBACV,aAAa;iBACd;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,sBAAsB;gBAC5B,EAAE,EAAE,mBAAmB;gBACvB,IAAI,EAAE,uGAAuG;gBAC7G,KAAK,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,CAAC;gBACvE,QAAQ,EAAE,CAAC,uBAAuB,CAAC;aACpC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,kBAAkB;gBACtB,IAAI,EAAE,+FAA+F;gBACrG,KAAK,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,CAAC;gBACtF,QAAQ,EAAE;oBACR,aAAa;oBACb,WAAW;oBACX,YAAY;oBACZ,UAAU;iBACX;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,0GAA0G;gBAChH,KAAK,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,CAAC;gBACtE,QAAQ,EAAE,CAAC,2BAA2B,CAAC;aACxC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,iBAAiB;gBACvB,EAAE,EAAE,kBAAkB;gBACtB,IAAI,EAAE,iGAAiG;gBACvG,KAAK,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,CAAC;aACjF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,8GAA8G;gBACpH,KAAK,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,CAAC;gBAClF,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,4FAA4F;gBAClG,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC;aACtE;SACF;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EAAE,iBAAiB;QACrB,SAAS,EACP,iGAAiG;QACnG,QAAQ,EACN,0LAA0L;QAC5L,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mEAAmE,EAAE;YAChH,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,+EAA+E,EAAE;SACpI;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,kBAAkB;gBACtB,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC;gBAC3C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC;gBAC9C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,uBAAuB;gBAC7B,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC;gBAC5C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,0BAA0B;gBAChC,EAAE,EAAE,6BAA6B;gBACjC,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC;gBAC9C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC;gBAC5C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,6BAA6B;gBACjC,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC;gBAC9C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC;gBAC1C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,mBAAmB;gBACzB,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC;gBAC5C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;gBACxC,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;gBACxC,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,uBAAuB;gBAC3B,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;gBACxC,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,4CAA4C;gBAClD,EAAE,EAAE,2BAA2B;gBAC/B,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC;gBAC5D,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,wBAAwB;gBAC5B,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC;gBAChD,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC;gBACnD,KAAK,EAAE,qCAAqC;aAC7C;SACF;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE,mBAAmB;QACvB,SAAS,EACP,mGAAmG;QACrG,QAAQ,EACN,gLAAgL;QAClL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,oCAAoC,EAAE;YACjF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kEAAkE,EAAE;YAChH,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,sCAAsC,EAAE;YACrF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,4CAA4C,EAAE;SAC/F;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,2BAA2B;gBAC/B,IAAI,EAAE,oCAAoC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC/B,KAAK,EAAE,oCAAoC;aAC5C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,oCAAoC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,oCAAoC;aAC5C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,oCAAoC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,oCAAoC;aAC5C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,+BAA+B;gBACrC,EAAE,EAAE,8BAA8B;gBAClC,IAAI,EAAE,oCAAoC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC;gBAC7C,KAAK,EAAE,oCAAoC;aAC5C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,+BAA+B;gBACnC,IAAI,EAAE,oCAAoC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;gBAC9B,KAAK,EAAE,oCAAoC;aAC5C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,KAAK,CAAC;gBACd,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,mBAAmB;gBACvB,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;gBAC1B,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,gCAAgC;gBACtC,EAAE,EAAE,wCAAwC;gBAC5C,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;gBACtC,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,2BAA2B;gBACjC,EAAE,EAAE,yCAAyC;gBAC7C,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;gBACjC,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,2BAA2B;gBACjC,EAAE,EAAE,8BAA8B;gBAClC,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC;gBAC5C,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,2BAA2B;gBAC/B,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;gBACzB,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,sCAAsC;gBAC5C,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,sCAAsC;gBAC5C,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,sCAAsC;gBAC5C,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,6BAA6B;gBACnC,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,sCAAsC;gBAC5C,KAAK,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC;gBAC/C,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,sBAAsB;gBAC5B,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,8BAA8B;gBACpC,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;gBAClC,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,uBAAuB;gBAC7B,EAAE,EAAE,iCAAiC;gBACrC,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAC5B,KAAK,EAAE,wCAAwC;aAChD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,2CAA2C;gBACjD,EAAE,EAAE,6BAA6B;gBACjC,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC;gBAC1C,KAAK,EAAE,wCAAwC;aAChD;SACF;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,gBAAgB;QACpB,SAAS,EACP,4FAA4F;QAC9F,QAAQ,EACN,qLAAqL;QACvL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,+EAA+E,EAAE;YAC9H,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,+DAA+D,EAAE;YACnH,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,gEAAgE,EAAE;YACjH,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,6DAA6D,EAAE;SACvG;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,uBAAuB;gBAC7B,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;gBAC7C,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,+DAA+D;gBACrE,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,kBAAkB,CAAC;gBACnD,KAAK,EAAE,kCAAkC;aAC1C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,8BAA8B;gBACpC,EAAE,EAAE,+BAA+B;gBACnC,IAAI,EAAE,+DAA+D;gBACrE,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,kBAAkB,CAAC;gBACnD,KAAK,EAAE,kCAAkC;aAC1C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,qCAAqC;gBAC3C,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,+DAA+D;gBACrE,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC;gBAClD,KAAK,EAAE,kCAAkC;aAC1C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,kCAAkC;gBACxC,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,gEAAgE;gBACtE,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,CAAC;gBACrD,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,+BAA+B;gBACrC,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,gEAAgE;gBACtE,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC;gBAC1C,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,8BAA8B;gBACpC,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,gEAAgE;gBACtE,KAAK,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;gBACvC,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,sBAAsB;gBAC5B,EAAE,EAAE,uBAAuB;gBAC3B,IAAI,EAAE,gEAAgE;gBACtE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC;gBACzC,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,mBAAmB;gBACzB,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,6DAA6D;gBACnE,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,CAAC;gBAChD,KAAK,EAAE,iCAAiC;aACzC;SACF;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EAAE,gBAAgB;QACpB,SAAS,EACP,oFAAoF;QACtF,QAAQ,EACN,6KAA6K;QAC/K,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,oEAAoE,EAAE;YAChH,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,6CAA6C,EAAE;YAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kEAAkE,EAAE;SAC3G;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,iCAAiC;gBACvC,EAAE,EAAE,iCAAiC;gBACrC,IAAI,EAAE,kFAAkF;gBACxF,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;gBAChC,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,4EAA4E;gBAClF,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;gBAC3B,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,oEAAoE;gBAC1E,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;gBACnC,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,oEAAoE;gBAC1E,KAAK,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;gBAClC,KAAK,EAAE,kCAAkC;aAC1C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,sBAAsB;gBAC5B,EAAE,EAAE,4BAA4B;gBAChC,IAAI,EAAE,6CAA6C;gBACnD,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;gBACrC,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,6CAA6C;gBACnD,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;gBACtC,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,0BAA0B;gBAChC,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,8CAA8C;gBACpD,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;gBAC3C,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,6CAA6C;gBACnD,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;gBACpC,KAAK,EAAE,kCAAkC;aAC1C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,uBAAuB;gBAC7B,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACpC,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,mBAAmB;gBACzB,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAC5B,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,uBAAuB;gBAC7B,EAAE,EAAE,mBAAmB;gBACvB,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACrC,KAAK,EAAE,iCAAiC;aACzC;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,oBAAoB;QACxB,SAAS,EACP,yFAAyF;QAC3F,QAAQ,EACN,oOAAoO;QACtO,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,+FAA+F,EAAE;YAC1I,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wFAAwF,EAAE;SACrI;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,kBAAkB;gBACtB,IAAI,EAAE,+FAA+F;gBACrG,KAAK,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,YAAY,CAAC;gBACrD,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,+FAA+F;gBACrG,KAAK,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,YAAY,CAAC;gBACjD,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,mBAAmB;gBACzB,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,+FAA+F;gBACrG,KAAK,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,CAAC;gBACnD,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,+FAA+F;gBACrG,KAAK,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,CAAC;gBAC/C,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,8BAA8B;gBACpC,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,sDAAsD;gBAC5D,KAAK,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,aAAa,CAAC;gBACnD,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,4BAA4B;gBAClC,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,sDAAsD;gBAC5D,KAAK,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,CAAC;gBACpD,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,sBAAsB;gBAC5B,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,sDAAsD;gBAC5D,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC/B,KAAK,EAAE,iCAAiC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,sDAAsD;gBAC5D,KAAK,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,aAAa,CAAC;gBACnD,KAAK,EAAE,iCAAiC;aACzC;SACF;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,wBAAwB;QAC5B,SAAS,EACP,4FAA4F;QAC9F,QAAQ,EACN,8PAA8P;QAChQ,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,kGAAkG,EAAE;YACjJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,2EAA2E,EAAE;YAC3H,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,gDAAgD,EAAE;YAC5G,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,gEAAgE,EAAE;SAClH;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,+BAA+B;gBACrC,EAAE,EAAE,mCAAmC;gBACvC,IAAI,EAAE,mEAAmE;gBACzE,KAAK,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC;gBACjD,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,6DAA6D;gBACnE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC;gBAC5C,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,0BAA0B;gBAChC,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,wEAAwE;gBAC9E,KAAK,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,cAAc,CAAC;gBAChD,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC;gBAC5C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,sCAAsC;gBAC5C,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,kEAAkE;gBACxE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC;gBAC5C,KAAK,EAAE,sCAAsC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,2EAA2E;gBACjF,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC;gBACpD,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,6BAA6B;gBACjC,IAAI,EAAE,2EAA2E;gBACjF,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC;gBACjD,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,2BAA2B;gBAC/B,IAAI,EAAE,gDAAgD;gBACtD,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;gBACnC,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,yBAAyB;gBAC/B,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,gDAAgD;gBACtD,KAAK,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC;gBAChD,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,+BAA+B;gBACrC,EAAE,EAAE,gCAAgC;gBACpC,IAAI,EAAE,gDAAgD;gBACtD,KAAK,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC;gBAC5C,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,gEAAgE;gBACtE,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,cAAc,CAAC;gBAChD,KAAK,EAAE,qCAAqC;aAC7C;SACF;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,+BAA+B;QACrC,EAAE,EAAE,uBAAuB;QAC3B,SAAS,EACP,oFAAoF;QACtF,QAAQ,EACN,+QAA+Q;QACjR,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,uFAAuF;gBAC7F,KAAK,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;aACrF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,4FAA4F;gBAClG,KAAK,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,CAAC;aAC3E;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,iBAAiB;gBACvB,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,0FAA0F;gBAChG,KAAK,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,UAAU,CAAC;aAC9E;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,oFAAoF;gBAC1F,KAAK,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;aAC7E;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC;aAChE;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,8FAA8F;gBACpG,KAAK,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,CAAC;aAC3E;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,mBAAmB;gBACvB,IAAI,EAAE,qFAAqF;gBAC3F,KAAK,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,CAAC;aAC1E;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,mBAAmB;gBACzB,EAAE,EAAE,uBAAuB;gBAC3B,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,eAAe,EAAE,mBAAmB,CAAC;aAC7E;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,iBAAiB;gBACvB,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,8FAA8F;gBACpG,KAAK,EAAE,CAAC,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;aACrE;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,iFAAiF;gBACvF,KAAK,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB,CAAC;aACzE;SACF;KACF;CACO,CAAC"} \ No newline at end of file diff --git a/apps/api/dist/seed/data/sections.js b/apps/api/dist/seed/data/sections.js new file mode 100644 index 0000000..b523fdd --- /dev/null +++ b/apps/api/dist/seed/data/sections.js @@ -0,0 +1,268 @@ +export const SECTIONS = { + settings: { + name: "ایمن پیشگامان", + nameEn: "Imen Pishgaman Safety", + title: "ایمن پیشگامان | تجهیزات ایمنی و حفاظت فردی صنعتی", + description: "ایمن پیشگامان — تأمین‌کننده تخصصی تجهیزات حفاظت فردی (PPE)، بازرسی، آموزش و راهکارهای ایمنی صنعتی برای سازمان‌هایی که جان انسان‌ها را جدی می‌گیرند.", + phone: "+98-21-91008800", + phoneDisplay: "۰۲۱ - ۹۱ ۰۰ ۸۸ ۰۰", + email: "info@imenpishgaman.ir", + address: { + street: "خیابان کارگر شمالی، خیابان فر، کوچه دوم، پلاک ۱۲", + locality: "تهران", + country: "IR", + }, + workingHours: "شنبه تا پنجشنبه — ۸:۰۰ تا ۱۷:۰۰", + openingHours: { + days: ["Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"], + opens: "08:00", + closes: "17:00", + }, + foundingDate: "2007", + socials: [ + { type: "website", url: "/" }, + { type: "email", url: "mailto:info@imenpishgaman.ir" }, + { type: "phone", url: "tel:+982191008800" }, + ], + ogImage: { + url: "asset:hero.jpg", + alt: "کارگر صنعتی با تجهیزات ایمنی کامل", + width: 1792, + height: 1008, + }, + }, + hero: { + enabled: true, + badge: "تأمین‌کننده رسمی تجهیزات حفاظت فردی (PPE)", + title: "ایمنی یعنی", + titleHighlight: "بازگشت به خانه", + intro: "ایمن پیشگامان با بیش از ۱۸ سال تجربه، تأمین‌کننده تخصصی تجهیزات ایمنی و حفاظت فردی برای سازمان‌هایی است که جان انسان‌ها را جدی می‌گیرند؛ از کلاه ایمنی تا هارنس نجات، از مشاوره تا بازرسی و آموزش.", + primaryCta: { label: "درخواست مشاوره رایگان", href: "#contact" }, + secondaryCta: { label: "مشاهده محصولات", href: "#products" }, + chips: [ + { icon: "ShieldCheck", label: "ISO 9001:2015" }, + { icon: "BadgeCheck", label: "CE CERTIFIED" }, + { icon: "Award", label: "EN STANDARDS" }, + ], + miniStats: [ + { value: "۱۸+", label: "سال تجربه در صنعت ایمنی" }, + { value: "۸۵۰+", label: "سازمان تحت پوشش" }, + { value: "۹۸٪", label: "رضایت مشتریان" }, + ], + image: { url: "asset:hero.jpg", alt: "کارگر صنعتی با تجهیزات ایمنی کامل" }, + lastInspection: "۱۴۰۴/۰۸/۱۲", + }, + tape: { + enabled: true, + items: [ + "ISO 9001:2015", + "CE CERTIFIED", + "گارانتی اصالت کالا", + "تحویل سراسری کشوری", + "مشاوره و بازرسی تخصصی رایگان", + "EN STANDARDS", + "پشتیبانی ۲۴/۷ قراردادهای سازمانی", + "تست نمونه قبل از خرید", + ], + }, + stats: { + enabled: true, + items: [ + { end: 18, suffix: "+", label: "سال تجربه در صنعت ایمنی", note: "SINCE 2007" }, + { end: 2400, suffix: "+", label: "کد کالای ایمنی", note: "PPE CATALOG" }, + { end: 850, suffix: "+", label: "مشتری سازمانی فعال", note: "B2B CLIENTS" }, + { end: 98, suffix: "٪", label: "رضایت مشتریان", note: "SATISFACTION" }, + ], + }, + productsIntro: { + enabled: true, + head: { + tag: "۰۱ — محصولات", + title: "خط اول دفاع،\nتجهیزات ماست", + highlight: "", + desc: "هر محصول پیش از عرضه، زیر ذره‌بین کنترل کیفیت و تطبیق با استانداردهای جهانی قرار می‌گیرد.", + }, + ctaLabel: "دریافت کاتالوگ کامل", + trust: [ + { + icon: "BadgeCheck", + title: "گارانتی اصالت کالا", + desc: "تمام محصولات با فاکتور رسمی و کد رهگیری اصالت", + }, + { + icon: "PackageCheck", + title: "تست نمونه قبل از خرید", + desc: "نمونه‌های نمایشی برای ارزیابی تیم HSE شما", + }, + { + icon: "ShieldCheck", + title: "امکان قرارداد سالانه", + desc: "قیمت ثابت و تأمین مستمر برای سازمان‌های بزرگ", + }, + ], + }, + about: { + enabled: true, + head: { + tag: "۰۲ — درباره ما", + title: "ایمنی برای ما شعار نیست؛", + highlight: "قرارداد است.", + desc: "", + }, + body: "از سال ۱۳۸۶، زمانی که اولین کلاه ایمنی را به یک کارگاه کوچک در جنوب تهران فروختیم، باور ما همین یک جمله بود: پشت هر تجهیز ایمنی، یک خانواده هست که منتظر بازگشت عزیزش است. امروز با بیش از ۸۵۰ سازمان، از پالایشگاه‌ها تا معادن و سایت‌های ساختمانی، در کنار کسانی هستیم که ایمنی را یک خط قرمز می‌دانند.", + image: { url: "asset:about.jpg", alt: "انبار تجهیزات ایمنی ایمن پیشگامان" }, + badge: { value: "۱۸+", label: "سال حفاظت از\nجان نیروی کار" }, + timeline: [ + { year: "۱۳۸۶", text: "تأسیس ایمن پیشگامان در تهران با تمرکز بر تجهیزات حفاظت فردی" }, + { year: "۱۳۹۲", text: "توسعه شبکه توزیع به تمام ۳۱ استان کشور" }, + { year: "۱۳۹۸", text: "راه‌اندازی آزمایشگاه کنترل کیفیت و تست تجهیزات" }, + { year: "۱۴۰۲", text: "افتتاح مرکز تخصصی آموزش و بازرسی HSE" }, + ], + features: [ + { icon: "Globe", label: "نماینده رسمی ۴۰+ برند جهانی" }, + { icon: "Users", label: "تیم مهندسی و بازرسی HSE" }, + { icon: "Headset", label: "پشتیبانی ۲۴/۷ قراردادها" }, + ], + }, + services: { + enabled: true, + head: { + tag: "۰۳ — خدمات", + title: "فراتر از تأمین؛\nهمراهی کامل ایمنی", + highlight: "", + desc: "ما در ایمن پیشگامان، تجهیزات را تحویل می‌دهیم و کنار شما می‌مانیم؛ از نخستین ارزیابی ریسک تا آخرین تست دوره‌ای.", + }, + items: [ + { + icon: "ClipboardCheck", + title: "بازرسی و ارزیابی ریسک", + desc: "تیم مهندسی ما با بازدید از سایت شما، خطرات را شناسایی، اولویت‌بندی و برای هر کدام راهکار اجرایی مشخص با برآورد هزینه ارائه می‌دهد.", + items: [ + "ارزیابی HAZOP و HAZID", + "شناسایی و اولویت‌بندی خطرات", + "گزارش مدیریتی با راهکار اجرایی", + ], + }, + { + icon: "GraduationCap", + title: "آموزش تخصصی ایمنی", + desc: "از دوره‌های عمومی تا تربیت مربی؛ آموزش‌های عملی و میدانی که ایمنی را از دفتر کلان‌ها به رفتار روزمره پرسنل تبدیل می‌کند.", + items: [ + "دوره‌های عمومی و تخصصی HSE", + "تربیت مربی ایمنی سایت", + "مانور و شبیه‌سازی شرایط اضطراری", + ], + }, + { + icon: "Gauge", + title: "تست و کالیبراسیون تجهیزات", + desc: "تجهیزات ایمنی فقط وقتی قابل اعتمادند که تست شده باشند. تست دوره‌ای، سرویس و صدور گواهی معتبر را به تیم تخصصی ما بسپارید.", + items: [ + "تست هارنس و لاین نجات", + "کالیبراسیون آشکارسازهای گاز", + "سرویس دوره‌ای و صدور گواهی", + ], + }, + { + icon: "Truck", + title: "تأمین و لجستیک سازمانی", + desc: "با قرارداد سالانه، قیمت‌گذاری شفاف و انبار محلی در سایت شما، نگرانی کمبود تجهیزات را از فهرست دغدغه‌هایتان حذف کنید.", + items: [ + "قرارداد سالانه با قیمت ثابت", + "انبار محلی در سایت شما", + "تحویل سراسری در ۴۸ ساعت", + ], + }, + ], + }, + standards: { + enabled: true, + head: { + tag: "۰۴ — استانداردها", + title: "مهرتأیید جهانی\nروی هر محصول", + highlight: "", + desc: "ما فقط تجهیزاتی را عرضه می‌کنیم که تأییدیه معتبر بین‌المللی و تست آزمایشگاهی داشته باشند؛ بدون استثنا.", + }, + note: "شماره سریال تمام محصولات در پایگاه داده استانداردهای اروپا قابل استعلام است و گواهی تست هر بچ تحویل مشتری می‌شود.", + ctaLabel: "درخواست گواهی تست محصولات", + items: [ + { code: "EN 397", label: "کلاه ایمنی صنعتی" }, + { code: "EN 388", label: "دستکش‌های مکانیکی" }, + { code: "EN 166", label: "محافظ چشم و صورت" }, + { code: "EN 361", label: "هارنس ضدسقوط" }, + { code: "ISO 20345", label: "کفش ایمنی" }, + { code: "ISO 9001", label: "سیستم مدیریت کیفیت" }, + ], + }, + industries: { + enabled: true, + head: { + tag: "۰۵ — صنایع", + title: "حضور در سخت‌ترین\nمیدان‌های کاری", + highlight: "", + desc: "جایی که دمای محیط از ۵۰ درجه گذر می‌کند یا ارتفاع کار به ده‌ها متر می‌رسد، تجهیزات ما باید بی‌نقص عمل کنند — و عمل می‌کنند.", + }, + items: [ + { name: "نفت و گاز", nameEn: "OIL & GAS", count: "۱۴۰+", image: { url: "asset:industries/oil-gas.jpg", alt: "نفت و گاز" } }, + { name: "ساختمان و عمران", nameEn: "CONSTRUCTION", count: "۲۱۰+", image: { url: "asset:industries/construction.jpg", alt: "ساختمان و عمران" } }, + { name: "پتروشیمی", nameEn: "PETROCHEMICAL", count: "۹۰+", image: { url: "asset:industries/petrochemical.jpg", alt: "پتروشیمی" } }, + { name: "صنایع معدنی", nameEn: "MINING", count: "۷۵+", image: { url: "asset:industries/mining.jpg", alt: "صنایع معدنی" } }, + { name: "برق و انرژی", nameEn: "POWER & ENERGY", count: "۶۰+", image: { url: "asset:industries/power-energy.jpg", alt: "برق و انرژی" } }, + { name: "حمل‌ونقل و لجستیک", nameEn: "TRANSPORT", count: "۴۵+", image: { url: "asset:industries/transport.jpg", alt: "حمل‌ونقل و لجستیک" } }, + ], + }, + testimonials: { + enabled: true, + head: { tag: "۰۶ — اعتماد", title: "آنچه مشتریان ما می‌گویند", highlight: "", desc: "" }, + items: [ + { + text: "ایمن پیشگامان فقط تأمین‌کننده نیست؛ شریک ایمنی ماست. بازرسی‌های دوره‌ای و آموزش‌های میدانی‌شان نرخ حوادث سایت را به کمترین رقم تاریخ مجموعه رساند.", + name: "مهندس رضا کاظمی", + role: "مدیر HSE — مجتمع پتروشیمی خلیج فارس", + }, + { + text: "کیفیت تجهیزات و سرعت پاسخ‌گویی در سطحی بود که قرارداد سالانه را بدون هیچ تردیدی تمدید کردیم؛ از خط تولید تا دفتر مرکزی.", + name: "سارا محمدی", + role: "سرپرست تدارکات — هلدینگ ساختمانی آرکان", + }, + { + text: "۱۴۰ کیلومتر دورتر از سایت، در عرض ۲۴ ساعت تجهیزات حیاتی را تحویل گرفتیم. به این می‌گویند شریک واقعی کاری.", + name: "امیرحسین راد", + role: "مدیر پروژه — صنایع معدنی کاوه", + }, + ], + }, + contact: { + enabled: true, + head: { + tag: "۰۷ — تماس", + title: "بیایید ایمنی را\nبا هم جدی بگیریم", + highlight: "", + desc: "فرم را پر کنید تا کارشناسان ما برای هماهنگی جلسه بازدید رایگان سایت شما تماس بگیرند؛ یا مستقیم با ما در ارتباط باشید.", + }, + emergencyTitle: "پاسخ‌گویی اضطراری ۲۴/۷", + emergencyText: "برای مشتریان دارای قرارداد سازمانی، خط ویژه حوادث و تأمین فوری تجهیزات در تمام ساعات شبانه‌روز فعال است.", + formTag: "// فرم درخواست مشاوره", + formTitle: "در کمتر از ۲۴ ساعت\nبا شما تماس می‌گیریم", + successTitle: "درخواست شما ثبت شد", + successText: "کارشناسان ما تا ۲۴ ساعت آینده برای هماهنگی جلسه بازدید با شما تماس می‌گیرند.", + }, + footer: { + enabled: true, + about: "تأمین‌کننده تخصصی تجهیزات حفاظت فردی و راهکارهای ایمنی صنعتی؛ همراه سازمان‌ها از سال ۱۳۸۶ در مسیر صفر شدن حوادث کاری.", + copyright: "© ۱۴۰۴ ایمن پیشگامان — تمامی حقوق محفوظ است.", + certLine: "ISO 9001:2015 — CE CERTIFIED PPE SUPPLIER", + emergencyNote: "پشتیبانی اضطراری: ۲۴/۷", + }, +}; +export const CATEGORY_COVERS = { + workwear: "products/vest.jpg", + "safety-footwear": "products/shoes.jpg", + "protective-gloves": "products/gloves.jpg", + "safety-helmets": "products/helmet.jpg", + "eye-protection": "products/goggles.jpg", + "hearing-protection": "products/hearing.jpg", + "respiratory-protection": "products/respiratory.jpg", + "traffic-equipment": "products/traffic.jpg", +}; +//# sourceMappingURL=sections.js.map \ No newline at end of file diff --git a/apps/api/dist/seed/data/sections.js.map b/apps/api/dist/seed/data/sections.js.map new file mode 100644 index 0000000..cc2b57f --- /dev/null +++ b/apps/api/dist/seed/data/sections.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sections.js","sourceRoot":"","sources":["../../../src/seed/data/sections.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/seed/seed.js b/apps/api/dist/seed/seed.js new file mode 100644 index 0000000..a5ed1a5 --- /dev/null +++ b/apps/api/dist/seed/seed.js @@ -0,0 +1,270 @@ +import { env } from "../config/env.js"; +import { mkdir, readFile, writeFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { normalizeIrMobile, SECTION_KEYS, sectionSchemas } from "@imen/shared"; +import { hashPassword } from "../auth/auth.service.js"; +import { S3Storage, toWebp } from "../media/s3-storage.js"; +import { createPrismaClient } from "../prisma/prisma.service.js"; +import { CATEGORIES } from "./data/categories.js"; +import { CATEGORY_COVERS, SECTIONS } from "./data/sections.js"; +const ASSETS_DIR = process.env.SEED_ASSETS_DIR ?? + path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../seed-assets"); +const OVERWRITE_SECTIONS = ["1", "true"].includes(process.env.SEED_OVERWRITE_SECTIONS ?? ""); +const prisma = createPrismaClient(); +const storage = new S3Storage(); +const uploaded = new Map(); +async function asset(rel, alt = "") { + const cached = uploaded.get(rel); + if (cached) + return cached; + const key = `seed/${rel.replace(/\.[^.]+$/, "")}.webp`; + let media = await prisma.media.findUnique({ where: { key } }); + if (!media) { + const image = await toWebp(await readFile(path.join(ASSETS_DIR, rel))); + try { + await storage.put(key, image.data, "image/webp"); + } + catch { + try { + const targetPath = path.resolve(ASSETS_DIR, "../../.s3data/imen-media", key); + await mkdir(path.dirname(targetPath), { recursive: true }); + await writeFile(targetPath, image.data); + } + catch { } + } + media = await prisma.media.create({ + data: { + key, + mime: "image/webp", + size: image.size, + width: image.width, + height: image.height, + alt, + originalName: path.basename(rel), + }, + }); + } + const result = { id: media.id, url: storage.publicUrl(key) }; + uploaded.set(rel, result); + return result; +} +async function resolveAssets(value) { + if (Array.isArray(value)) + return Promise.all(value.map(resolveAssets)); + if (value && typeof value === "object") { + const entries = await Promise.all(Object.entries(value).map(async ([k, v]) => { + if (k === "url" && typeof v === "string" && v.startsWith("asset:")) { + return [k, (await asset(v.slice("asset:".length))).url]; + } + return [k, await resolveAssets(v)]; + })); + return Object.fromEntries(entries); + } + return value; +} +async function seedSections() { + for (const key of SECTION_KEYS) { + const exists = await prisma.siteSection.findUnique({ where: { key } }); + if (exists && !OVERWRITE_SECTIONS) + continue; + const data = sectionSchemas[key].parse(await resolveAssets(SECTIONS[key])); + await prisma.siteSection.upsert({ where: { key }, create: { key, data }, update: { data } }); + console.log(` section ${key}`); + } +} +async function seedCatalog() { + for (const [ci, c] of CATEGORIES.entries()) { + if (await prisma.category.findUnique({ where: { slug: c.slug } })) + continue; + const coverPath = CATEGORY_COVERS[c.slug]; + const cover = coverPath ? await asset(coverPath, c.name) : null; + const category = await prisma.category.create({ + data: { + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.en, + shortDesc: c.shortDesc, + fullDesc: c.fullDesc, + icon: c.icon, + coverImageId: cover?.id ?? null, + sortOrder: ci, + groups: { + create: (c.groups ?? []).map((g, i) => ({ + slug: g.slug, + name: g.name, + desc: g.desc, + sortOrder: i, + })), + }, + }, + include: { groups: true }, + }); + const groupIds = new Map(category.groups.map((g) => [g.slug, g.id])); + for (const [pi, p] of c.products.entries()) { + const image = p.image ? await asset(p.image.replace(/^\/images\//, ""), p.name) : null; + await prisma.product.create({ + data: { + categoryId: category.id, + groupId: p.group ? (groupIds.get(p.group) ?? null) : null, + code: p.code, + slug: p.code.toLowerCase(), + name: p.name, + nameEn: p.en, + desc: p.desc, + specs: [...p.specs], + variants: [...(p.variants ?? [])], + imageId: image?.id ?? null, + sortOrder: pi, + }, + }); + } + console.log(` category ${c.slug} (${c.products.length} products)`); + } +} +async function seedAdmin() { + if (!env.ADMIN_PHONE || !env.ADMIN_PASSWORD) { + console.log(" ADMIN_PHONE / ADMIN_PASSWORD not set — skipping admin user"); + return; + } + const phone = normalizeIrMobile(env.ADMIN_PHONE); + if (!/^09\d{9}$/.test(phone)) { + console.log(` ADMIN_PHONE invalid (${env.ADMIN_PHONE}) — skipping admin user`); + return; + } + const existing = await prisma.adminUser.findUnique({ where: { phone } }); + if (existing) + return; + const legacy = await prisma.adminUser.findFirst({ + where: { role: "ADMIN", phone: { contains: "@" } }, + orderBy: { id: "asc" }, + }); + if (legacy) { + await prisma.adminUser.update({ + where: { id: legacy.id }, + data: { phone, name: env.ADMIN_NAME, passwordHash: await hashPassword(env.ADMIN_PASSWORD) }, + }); + console.log(` admin user migrated to ${phone}`); + return; + } + await prisma.adminUser.create({ + data: { + phone, + name: env.ADMIN_NAME, + role: "ADMIN", + passwordHash: await hashPassword(env.ADMIN_PASSWORD), + }, + }); + console.log(` admin user ${phone}`); +} +async function seedMessages() { + const count = await prisma.contactMessage.count(); + if (count > 0) + return; + const samples = [ + { + name: "مهندس رضا کاظمی", + org: "مجتمع پتروشیمی خلیج فارس", + phone: "09121112233", + message: "درخواست پیش‌فاکتور ۵۰۰ عدد هارنس ایمنی دو قلاب و کلاه ایمنی استاندارد EN 397 برای فاز ۲ پتروشیمی.", + status: "NEW", + createdAt: new Date(Date.now() - 1000 * 60 * 35), + }, + { + name: "سارا محمدی", + org: "هلدینگ ساختمانی آرکان", + phone: "09122223344", + message: "استعلام قیمت و هماهنگی جلسه بازدید جهت عقد قرارداد سالانه تأمین تجهیزات حفاظت فردی ۱۲ پروژه فعال.", + status: "NEW", + createdAt: new Date(Date.now() - 1000 * 60 * 120), + }, + { + name: "امیرحسین راد", + org: "صنایع معدنی کاوه", + phone: "09123334455", + message: "درخواست تأمین فوری ۲۰۰ جفت دستکش ایمنی ضدبرش و کفش ایمنی ضداسید و پنجه کامپوزیت برای سایت یزد.", + status: "READ", + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 8), + }, + { + name: "مهندس علیرضا بهرامی", + org: "شرکت نفت و گاز پارس", + phone: "09124445566", + message: "تقاضای ارسال کاتالوگ و نمونه عینک ایمنی استاندارد EN 166 و محافظ گوش ایرماف جهت آزمایش واحد HSE.", + status: "NEW", + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 24), + }, + { + name: "مریم رضایی", + org: "داروسازی رازک", + phone: "09125556677", + message: "درخواست مشاوره تخصصی در رابطه با ماسک‌های فیلتردار ذرات شیمیایی و لباس‌های یکبار مصرف آزمایشگاهی.", + status: "READ", + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 36), + }, + { + name: "مهندس مهدی یوسفی", + org: "فولاد مبارکه اصفهان", + phone: "09126667788", + message: "درخواست برگزاری جلسه فنی برای تمدید قرارداد تأمین لباس کار نسوز، شیلد محافظ صورت و پابند نسوز.", + status: "ARCHIVED", + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 72), + }, + { + name: "پیمان نادری", + org: "خطوط لوله و مخابرات نفت", + phone: "09127778899", + message: "استعلام موجودی تجهیزات نجات در فضاهای بسته، سه‌پایه نجات (Tripod) و وینچ همراه با گواهی کالیبراسیون.", + status: "NEW", + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 96), + }, + { + name: "دکتر مجید اسدی", + org: "سیمان تهران", + phone: "09128889900", + message: "درخواست برگزاری دوره آموزشی کار در ارتفاع برای پرسنل پیمانکار و بازرسی دوره‌ای خطوط حیات (Lifeline).", + status: "READ", + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 120), + }, + ]; + for (const msg of samples) { + await prisma.contactMessage.create({ data: msg }); + } + console.log(` seeded ${samples.length} sample contact messages`); +} +async function main() { + if (env.S3_ENSURE_BUCKET) { + try { + await storage.ensureBucket(); + } + catch { + console.log(" ensureBucket skipped"); + } + } + console.log("seeding sections…"); + await seedSections(); + console.log("seeding catalog…"); + await seedCatalog(); + console.log("seeding admin…"); + await seedAdmin(); + console.log("seeding messages…"); + await seedMessages(); + const [categories, products, media] = await Promise.all([ + prisma.category.count(), + prisma.product.count(), + prisma.media.count(), + ]); + console.log(`done: ${categories} categories, ${products} products, ${media} media files`); +} +try { + await main(); +} +catch (e) { + console.error(e); + process.exitCode = 1; +} +finally { + await prisma.$disconnect(); +} +//# sourceMappingURL=seed.js.map \ No newline at end of file diff --git a/apps/api/dist/seed/seed.js.map b/apps/api/dist/seed/seed.js.map new file mode 100644 index 0000000..4a8e07d --- /dev/null +++ b/apps/api/dist/seed/seed.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/seed/seed.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/dist/users/users.controller.js b/apps/api/dist/users/users.controller.js new file mode 100644 index 0000000..ee3f09d --- /dev/null +++ b/apps/api/dist/users/users.controller.js @@ -0,0 +1,144 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { BadRequestException, Body, Controller, Delete, Get, HttpCode, Injectable, Module, Param, Post, Put, } from "@nestjs/common"; +import { userCreateSchema, userUpdateSchema, } from "@imen/shared"; +import { AdminAuth, CurrentUser } from "../common/auth.js"; +import { AuditService } from "../common/common.module.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import { AuthModule } from "../auth/auth.controller.js"; +import { AuthService, hashPassword, toUserDto } from "../auth/auth.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +let UsersService = class UsersService { + prisma; + auth; + audit; + constructor(prisma, auth, audit) { + this.prisma = prisma; + this.auth = auth; + this.audit = audit; + } + async list() { + const users = await this.prisma.adminUser.findMany({ orderBy: { id: "asc" } }); + return users.map(toUserDto); + } + async create(input, actor) { + const user = await this.prisma.adminUser.create({ + data: { + phone: input.phone, + name: input.name, + role: input.role, + passwordHash: await hashPassword(input.password), + }, + }); + this.audit.log(actor.id, "create", "user", user.id, user.phone); + return toUserDto(user); + } + async update(id, input, actor) { + if (id === actor.id && (input.role !== "ADMIN" || !input.isActive)) { + throw new BadRequestException("نمی‌توانید نقش یا وضعیت حساب خودتان را تغییر دهید"); + } + const user = await this.prisma.adminUser.update({ + where: { id }, + data: { + name: input.name, + role: input.role, + isActive: input.isActive, + ...(input.password ? { passwordHash: await hashPassword(input.password) } : {}), + }, + }); + if (input.password || !input.isActive) + await this.auth.revokeAll(id); + this.audit.log(actor.id, "update", "user", id, user.phone); + return toUserDto(user); + } + async remove(id, actor) { + if (id === actor.id) + throw new BadRequestException("نمی‌توانید حساب خودتان را حذف کنید"); + const user = await this.prisma.adminUser.delete({ where: { id } }); + this.audit.log(actor.id, "delete", "user", id, user.phone); + } +}; +UsersService = __decorate([ + Injectable(), + __metadata("design:paramtypes", [PrismaService, + AuthService, + AuditService]) +], UsersService); +export { UsersService }; +let UsersController = class UsersController { + users; + constructor(users) { + this.users = users; + } + list() { + return this.users.list(); + } + create(body, actor) { + return this.users.create(body, actor); + } + update(id, body, actor) { + return this.users.update(id, body, actor); + } + async remove(id, actor) { + await this.users.remove(id, actor); + } +}; +__decorate([ + Get(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], UsersController.prototype, "list", null); +__decorate([ + Post(), + __param(0, Body(new ZodPipe(userCreateSchema))), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, Object]), + __metadata("design:returntype", void 0) +], UsersController.prototype, "create", null); +__decorate([ + Put(":id"), + __param(0, Param("id", IdPipe)), + __param(1, Body(new ZodPipe(userUpdateSchema))), + __param(2, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object, Object]), + __metadata("design:returntype", void 0) +], UsersController.prototype, "update", null); +__decorate([ + Delete(":id"), + HttpCode(204), + __param(0, Param("id", IdPipe)), + __param(1, CurrentUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number, Object]), + __metadata("design:returntype", Promise) +], UsersController.prototype, "remove", null); +UsersController = __decorate([ + AdminAuth("ADMIN"), + Controller("admin/users"), + __metadata("design:paramtypes", [UsersService]) +], UsersController); +export { UsersController }; +let UsersModule = class UsersModule { +}; +UsersModule = __decorate([ + Module({ + imports: [AuthModule], + controllers: [UsersController], + providers: [UsersService], + }) +], UsersModule); +export { UsersModule }; +//# sourceMappingURL=users.controller.js.map \ No newline at end of file diff --git a/apps/api/dist/users/users.controller.js.map b/apps/api/dist/users/users.controller.js.map new file mode 100644 index 0000000..d34d68d --- /dev/null +++ b/apps/api/dist/users/users.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"users.controller.js","sourceRoot":"","sources":["../../src/users/users.controller.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/apps/api/nest-cli.json b/apps/api/nest-cli.json new file mode 100644 index 0000000..f9aa683 --- /dev/null +++ b/apps/api/nest-cli.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "compilerOptions": { + "deleteOutDir": true + } +} diff --git a/apps/api/package.json b/apps/api/package.json new file mode 100644 index 0000000..c81bb51 --- /dev/null +++ b/apps/api/package.json @@ -0,0 +1,56 @@ +{ + "name": "@imen/api", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "build": "prisma generate && nest build && node scripts/bundle.mjs", + "dev": "nest start --watch --preserveWatchOutput --entryFile main.js", + "start": "node dist/main.js", + "typecheck": "prisma generate && tsc --noEmit -p tsconfig.json", + "test": "vitest run --config ./vitest.config.e2e.ts", + "prisma:generate": "prisma generate", + "prisma:migrate": "prisma migrate dev", + "prisma:deploy": "prisma migrate deploy", + "prisma:studio": "prisma studio", + "db:seed": "prisma db seed", + "postinstall": "prisma generate" + }, + "dependencies": { + "@aws-sdk/client-s3": "^3.1154.0", + "@imen/shared": "workspace:*", + "@nestjs/common": "^12.2.0", + "@nestjs/core": "^12.2.0", + "@nestjs/jwt": "^12.0.3", + "@nestjs/platform-express": "^12.2.0", + "@nestjs/throttler": "^6.7.1", + "@node-rs/argon2": "^2.2.2", + "@prisma/adapter-pg": "7.10.1", + "@prisma/client": "7.10.1", + "cookie-parser": "^1.4.7", + "helmet": "^8.3.0", + "pg": "^8.23.1", + "reflect-metadata": "^0.2.2", + "rxjs": "^7.8.2", + "sharp": "^0.35.5", + "zod": "^4.6.7" + }, + "devDependencies": { + "@nestjs/cli": "^12.0.10", + "@nestjs/schematics": "^12.0.10", + "@nestjs/testing": "^12.2.0", + "@types/cookie-parser": "^1.4.9", + "@types/express": "^5.0.6", + "@types/multer": "^2.3.0", + "@types/node": "^24.0.0", + "@types/pg": "^8.23.1", + "@types/supertest": "^7.0.0", + "esbuild": "^0.28.2", + "prisma": "7.10.1", + "supertest": "^7.1.4", + "tsx": "^4.20.6", + "typescript": "^6.0.2", + "vite": "^8.0.0", + "vitest": "^4.1.2" + } +} diff --git a/apps/api/prisma.config.ts b/apps/api/prisma.config.ts new file mode 100644 index 0000000..67c3c51 --- /dev/null +++ b/apps/api/prisma.config.ts @@ -0,0 +1,17 @@ +import { existsSync } from "node:fs"; +import { defineConfig } from "prisma/config"; + +// Prisma 7 no longer loads .env on its own +if (existsSync(".env")) process.loadEnvFile(".env"); + +export default defineConfig({ + schema: "prisma/schema.prisma", + migrations: { + path: "prisma/migrations", + seed: "tsx src/seed/seed.ts", + }, + datasource: { + // `prisma generate` (e.g. in the Docker build) does not need a real database + url: process.env.DATABASE_URL ?? "postgresql://placeholder:placeholder@localhost:5432/placeholder", + }, +}); diff --git a/apps/api/prisma/migrations/20261021130147_init/migration.sql b/apps/api/prisma/migrations/20261021130147_init/migration.sql new file mode 100644 index 0000000..a6590db --- /dev/null +++ b/apps/api/prisma/migrations/20261021130147_init/migration.sql @@ -0,0 +1,212 @@ +-- CreateEnum +CREATE TYPE "Role" AS ENUM ('ADMIN', 'EDITOR'); + +-- CreateEnum +CREATE TYPE "MessageStatus" AS ENUM ('NEW', 'READ', 'ARCHIVED'); + +-- CreateTable +CREATE TABLE "AdminUser" ( + "id" SERIAL NOT NULL, + "email" TEXT NOT NULL, + "name" TEXT NOT NULL, + "passwordHash" TEXT NOT NULL, + "role" "Role" NOT NULL DEFAULT 'EDITOR', + "isActive" BOOLEAN NOT NULL DEFAULT true, + "lastLoginAt" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "AdminUser_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "RefreshToken" ( + "id" SERIAL NOT NULL, + "userId" INTEGER NOT NULL, + "tokenHash" TEXT NOT NULL, + "expiresAt" TIMESTAMP(3) NOT NULL, + "revokedAt" TIMESTAMP(3), + "userAgent" TEXT NOT NULL DEFAULT '', + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "RefreshToken_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Media" ( + "id" SERIAL NOT NULL, + "key" TEXT NOT NULL, + "mime" TEXT NOT NULL, + "size" INTEGER NOT NULL, + "width" INTEGER, + "height" INTEGER, + "alt" TEXT NOT NULL DEFAULT '', + "originalName" TEXT NOT NULL DEFAULT '', + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Media_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Category" ( + "id" SERIAL NOT NULL, + "slug" TEXT NOT NULL, + "code" TEXT NOT NULL, + "name" TEXT NOT NULL, + "nameEn" TEXT NOT NULL DEFAULT '', + "shortDesc" TEXT NOT NULL DEFAULT '', + "fullDesc" TEXT NOT NULL DEFAULT '', + "icon" TEXT NOT NULL DEFAULT '', + "coverImageId" INTEGER, + "sortOrder" INTEGER NOT NULL DEFAULT 0, + "isPublished" BOOLEAN NOT NULL DEFAULT true, + "seoTitle" TEXT NOT NULL DEFAULT '', + "seoDescription" TEXT NOT NULL DEFAULT '', + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Category_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProductGroup" ( + "id" SERIAL NOT NULL, + "categoryId" INTEGER NOT NULL, + "slug" TEXT NOT NULL, + "name" TEXT NOT NULL, + "desc" TEXT NOT NULL DEFAULT '', + "sortOrder" INTEGER NOT NULL DEFAULT 0, + + CONSTRAINT "ProductGroup_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Product" ( + "id" SERIAL NOT NULL, + "categoryId" INTEGER NOT NULL, + "groupId" INTEGER, + "code" TEXT NOT NULL, + "slug" TEXT NOT NULL, + "name" TEXT NOT NULL, + "nameEn" TEXT NOT NULL DEFAULT '', + "desc" TEXT NOT NULL DEFAULT '', + "specs" TEXT[], + "variants" TEXT[], + "imageId" INTEGER, + "sortOrder" INTEGER NOT NULL DEFAULT 0, + "isPublished" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Product_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProductImage" ( + "productId" INTEGER NOT NULL, + "mediaId" INTEGER NOT NULL, + "sortOrder" INTEGER NOT NULL DEFAULT 0, + + CONSTRAINT "ProductImage_pkey" PRIMARY KEY ("productId","mediaId") +); + +-- CreateTable +CREATE TABLE "SiteSection" ( + "key" TEXT NOT NULL, + "data" JSONB NOT NULL, + "updatedById" INTEGER, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "SiteSection_pkey" PRIMARY KEY ("key") +); + +-- CreateTable +CREATE TABLE "ContactMessage" ( + "id" SERIAL NOT NULL, + "name" TEXT NOT NULL, + "org" TEXT NOT NULL, + "phone" TEXT NOT NULL, + "message" TEXT NOT NULL DEFAULT '', + "status" "MessageStatus" NOT NULL DEFAULT 'NEW', + "ip" TEXT NOT NULL DEFAULT '', + "userAgent" TEXT NOT NULL DEFAULT '', + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "ContactMessage_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "AuditLog" ( + "id" SERIAL NOT NULL, + "userId" INTEGER, + "action" TEXT NOT NULL, + "entity" TEXT NOT NULL, + "entityId" TEXT NOT NULL DEFAULT '', + "summary" TEXT NOT NULL DEFAULT '', + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "AuditLog_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "AdminUser_email_key" ON "AdminUser"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "RefreshToken_tokenHash_key" ON "RefreshToken"("tokenHash"); + +-- CreateIndex +CREATE INDEX "RefreshToken_userId_idx" ON "RefreshToken"("userId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Media_key_key" ON "Media"("key"); + +-- CreateIndex +CREATE UNIQUE INDEX "Category_slug_key" ON "Category"("slug"); + +-- CreateIndex +CREATE INDEX "Category_sortOrder_idx" ON "Category"("sortOrder"); + +-- CreateIndex +CREATE UNIQUE INDEX "ProductGroup_categoryId_slug_key" ON "ProductGroup"("categoryId", "slug"); + +-- CreateIndex +CREATE UNIQUE INDEX "Product_code_key" ON "Product"("code"); + +-- CreateIndex +CREATE UNIQUE INDEX "Product_slug_key" ON "Product"("slug"); + +-- CreateIndex +CREATE INDEX "Product_categoryId_sortOrder_idx" ON "Product"("categoryId", "sortOrder"); + +-- CreateIndex +CREATE INDEX "ContactMessage_status_createdAt_idx" ON "ContactMessage"("status", "createdAt"); + +-- CreateIndex +CREATE INDEX "AuditLog_createdAt_idx" ON "AuditLog"("createdAt"); + +-- AddForeignKey +ALTER TABLE "RefreshToken" ADD CONSTRAINT "RefreshToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "AdminUser"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Category" ADD CONSTRAINT "Category_coverImageId_fkey" FOREIGN KEY ("coverImageId") REFERENCES "Media"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProductGroup" ADD CONSTRAINT "ProductGroup_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES "Category"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Product" ADD CONSTRAINT "Product_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES "Category"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Product" ADD CONSTRAINT "Product_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "ProductGroup"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Product" ADD CONSTRAINT "Product_imageId_fkey" FOREIGN KEY ("imageId") REFERENCES "Media"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProductImage" ADD CONSTRAINT "ProductImage_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProductImage" ADD CONSTRAINT "ProductImage_mediaId_fkey" FOREIGN KEY ("mediaId") REFERENCES "Media"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "AuditLog" ADD CONSTRAINT "AuditLog_userId_fkey" FOREIGN KEY ("userId") REFERENCES "AdminUser"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/apps/api/prisma/migrations/20261022055212_product_details/migration.sql b/apps/api/prisma/migrations/20261022055212_product_details/migration.sql new file mode 100644 index 0000000..d979ee1 --- /dev/null +++ b/apps/api/prisma/migrations/20261022055212_product_details/migration.sql @@ -0,0 +1,13 @@ +-- AlterTable +ALTER TABLE "Product" ADD COLUMN "applications" TEXT[] DEFAULT ARRAY[]::TEXT[], +ADD COLUMN "attributes" JSONB NOT NULL DEFAULT '[]', +ADD COLUMN "brand" TEXT NOT NULL DEFAULT '', +ADD COLUMN "details" TEXT NOT NULL DEFAULT '', +ADD COLUMN "features" TEXT[] DEFAULT ARRAY[]::TEXT[], +ADD COLUMN "minOrder" TEXT NOT NULL DEFAULT '', +ADD COLUMN "origin" TEXT NOT NULL DEFAULT '', +ADD COLUMN "packaging" TEXT NOT NULL DEFAULT '', +ADD COLUMN "seoDescription" TEXT NOT NULL DEFAULT '', +ADD COLUMN "seoTitle" TEXT NOT NULL DEFAULT '', +ADD COLUMN "sizes" TEXT[] DEFAULT ARRAY[]::TEXT[], +ADD COLUMN "standards" TEXT[] DEFAULT ARRAY[]::TEXT[]; diff --git a/apps/api/prisma/migrations/20261022100000_admin_phone/migration.sql b/apps/api/prisma/migrations/20261022100000_admin_phone/migration.sql new file mode 100644 index 0000000..c952780 --- /dev/null +++ b/apps/api/prisma/migrations/20261022100000_admin_phone/migration.sql @@ -0,0 +1,3 @@ +-- Rename login identifier from email to phone +ALTER TABLE "AdminUser" RENAME COLUMN "email" TO "phone"; +ALTER INDEX "AdminUser_email_key" RENAME TO "AdminUser_phone_key"; diff --git a/apps/api/prisma/migrations/migration_lock.toml b/apps/api/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..044d57c --- /dev/null +++ b/apps/api/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "postgresql" diff --git a/apps/api/prisma/schema.prisma b/apps/api/prisma/schema.prisma new file mode 100644 index 0000000..0aad369 --- /dev/null +++ b/apps/api/prisma/schema.prisma @@ -0,0 +1,188 @@ +generator client { + provider = "prisma-client" + output = "../src/generated/prisma" + moduleFormat = "esm" + importFileExtension = "js" +} + +datasource db { + provider = "postgresql" +} + +enum Role { + ADMIN + EDITOR +} + +enum MessageStatus { + NEW + READ + ARCHIVED +} + +model AdminUser { + id Int @id @default(autoincrement()) + phone String @unique + name String + passwordHash String + role Role @default(EDITOR) + isActive Boolean @default(true) + lastLoginAt DateTime? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + refreshTokens RefreshToken[] + auditLogs AuditLog[] +} + +model RefreshToken { + id Int @id @default(autoincrement()) + userId Int + user AdminUser @relation(fields: [userId], references: [id], onDelete: Cascade) + /// sha256 of the opaque token stored in the httpOnly cookie + tokenHash String @unique + expiresAt DateTime + revokedAt DateTime? + userAgent String @default("") + createdAt DateTime @default(now()) + + @@index([userId]) +} + +model Media { + id Int @id @default(autoincrement()) + /// object key in the S3 bucket; the public URL is MEDIA_PUBLIC_URL + "/" + key + key String @unique + mime String + size Int + width Int? + height Int? + alt String @default("") + originalName String @default("") + createdAt DateTime @default(now()) + categoryCovers Category[] @relation("CategoryCover") + productImages Product[] @relation("ProductImage") + productGallery ProductImage[] +} + +model Category { + id Int @id @default(autoincrement()) + slug String @unique + code String + name String + nameEn String @default("") + shortDesc String @default("") + fullDesc String @default("") + /// Lucide icon name + icon String @default("") + coverImageId Int? + coverImage Media? @relation("CategoryCover", fields: [coverImageId], references: [id], onDelete: SetNull) + sortOrder Int @default(0) + isPublished Boolean @default(true) + seoTitle String @default("") + seoDescription String @default("") + groups ProductGroup[] + products Product[] + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@index([sortOrder]) +} + +model ProductGroup { + id Int @id @default(autoincrement()) + categoryId Int + category Category @relation(fields: [categoryId], references: [id], onDelete: Cascade) + slug String + name String + desc String @default("") + sortOrder Int @default(0) + products Product[] + + @@unique([categoryId, slug]) +} + +model Product { + id Int @id @default(autoincrement()) + categoryId Int + category Category @relation(fields: [categoryId], references: [id], onDelete: Restrict) + groupId Int? + group ProductGroup? @relation(fields: [groupId], references: [id], onDelete: SetNull) + code String @unique + slug String @unique + name String + nameEn String @default("") + desc String @default("") + specs String[] + variants String[] + /// long description for the product page; a blank line starts a new paragraph + details String @default("") + brand String @default("") + /// country of manufacture + origin String @default("") + sizes String[] @default([]) + standards String[] @default([]) + features String[] @default([]) + applications String[] @default([]) + /// technical specification table: [{ "name": "...", "value": "..." }] + attributes Json @default("[]") + packaging String @default("") + minOrder String @default("") + seoTitle String @default("") + seoDescription String @default("") + imageId Int? + image Media? @relation("ProductImage", fields: [imageId], references: [id], onDelete: SetNull) + gallery ProductImage[] + sortOrder Int @default(0) + isPublished Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@index([categoryId, sortOrder]) +} + +model ProductImage { + productId Int + mediaId Int + sortOrder Int @default(0) + product Product @relation(fields: [productId], references: [id], onDelete: Cascade) + media Media @relation(fields: [mediaId], references: [id], onDelete: Cascade) + + @@id([productId, mediaId]) +} + +/// One row per editable website section; `data` is validated by the zod schema for `key` (@imen/shared) +model SiteSection { + key String @id + data Json + updatedById Int? + updatedAt DateTime @updatedAt +} + +model ContactMessage { + id Int @id @default(autoincrement()) + name String + org String + phone String + message String @default("") + status MessageStatus @default(NEW) + ip String @default("") + userAgent String @default("") + createdAt DateTime @default(now()) + + @@index([status, createdAt]) +} + +model AuditLog { + id Int @id @default(autoincrement()) + userId Int? + user AdminUser? @relation(fields: [userId], references: [id], onDelete: SetNull) + /// create | update | delete | login ... + action String + /// product | category | section | media | user | message + entity String + entityId String @default("") + summary String @default("") + createdAt DateTime @default(now()) + + @@index([createdAt]) +} diff --git a/apps/api/scripts/bundle.mjs b/apps/api/scripts/bundle.mjs new file mode 100644 index 0000000..f9ee586 --- /dev/null +++ b/apps/api/scripts/bundle.mjs @@ -0,0 +1,112 @@ +// Bundles the compiled API (dist/, from `nest build`) into a self-contained .output/ that +// docker/api.Dockerfile copies as-is, so building the server image installs nothing: +// .output/dist/main.js, migrate.js, seed/seed.js all JS dependencies inlined +// .output/node_modules/ native packages, Linux (musl, x64) builds only +// The tsc output is bundled rather than src/ because esbuild does not emit the decorator +// metadata Nest's dependency injection relies on. +import { build } from "esbuild"; +import { cpSync, existsSync, readFileSync, realpathSync, rmSync, writeFileSync } from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const out = path.join(root, ".output"); + +// the docker/api.Dockerfile base image (node:*-alpine) +const TARGET = { os: "linux", cpu: "x64", libc: "musl" }; +// loaded at runtime from .output/node_modules (platform-specific binaries) +const NATIVE = ["sharp", "@node-rs/argon2"]; +// optional packages Nest and pg require inside try/catch; not installed, so left unresolved +const OPTIONAL = [ + "@nestjs/microservices", + "@nestjs/microservices/*", + "@nestjs/websockets", + "@nestjs/websockets/*", + "class-transformer", + "class-transformer/*", + "class-validator", + "pg-native", +]; + +rmSync(out, { recursive: true, force: true }); + +await build({ + absWorkingDir: root, + entryPoints: { + main: "dist/main.js", + migrate: "dist/migrate.js", + "seed/seed": "dist/seed/seed.js", + }, + outdir: path.join(out, "dist"), + bundle: true, + splitting: true, + chunkNames: "chunks/[name]-[hash]", + platform: "node", + format: "esm", + target: "node24", + external: [...NATIVE, ...OPTIONAL], + // Nest uses class names (logs, throttler keys) + keepNames: true, + // CommonJS dependencies call require() for Node built-ins (aliased: bundled code imports createRequire too) + banner: { + js: 'import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url);', + }, + legalComments: "none", + logLevel: "warning", +}); +writeFileSync( + path.join(out, "package.json"), + JSON.stringify({ private: true, type: "module" }, null, 2) + "\n", +); + +/** Node's lookup of `name` from `fromDir`; follows pnpm's symlinks to the real package folder */ +function findPackage(name, fromDir) { + for (let dir = fromDir; ; dir = path.dirname(dir)) { + const candidate = path.join(dir, "node_modules", name); + if (existsSync(path.join(candidate, "package.json"))) return realpathSync(candidate); + if (path.dirname(dir) === dir) return null; + } +} + +/** package.json os/cpu/libc fields, e.g. ["linux"] or ["!win32"] */ +const allows = (list, value) => + !list || + ((list.includes(value) || list.every((v) => v.startsWith("!"))) && !list.includes(`!${value}`)); + +const copied = new Map(); +function copyPackage(name, fromDir) { + const dir = findPackage(name, fromDir); + if (!dir) return; // optional dependency for another platform, not installed + const pkg = JSON.parse(readFileSync(path.join(dir, "package.json"), "utf8")); + if (!allows(pkg.os, TARGET.os) || !allows(pkg.cpu, TARGET.cpu) || !allows(pkg.libc, TARGET.libc)) + return; + if (copied.has(name)) { + if (copied.get(name) !== pkg.version) + throw new Error(`${name}: needs both ${copied.get(name)} and ${pkg.version}`); + return; + } + copied.set(name, pkg.version); + cpSync(dir, path.join(out, "node_modules", name), { recursive: true, dereference: true }); + for (const dep of Object.keys({ ...pkg.dependencies, ...pkg.optionalDependencies })) + copyPackage(dep, dir); +} + +for (const name of NATIVE) copyPackage(name, root); +for (const name of NATIVE) { + if (!copied.has(name)) throw new Error(`${name} is not installed`); +} +// sharp and argon2 load their binary from a per-platform package; fail here, not in production +for (const name of [ + "@img/sharp-linuxmusl-x64", + "@img/sharp-libvips-linuxmusl-x64", + "@node-rs/argon2-linux-x64-musl", +]) { + if (!copied.has(name)) { + throw new Error( + `${name} is missing; run \`pnpm install\` (pnpm-workspace.yaml supportedArchitectures adds it)`, + ); + } +} +console.log( + `bundled into .output (native: ${[...copied].map(([n, v]) => `${n}@${v}`).join(", ")})`, +); diff --git a/out/images/about.jpg b/apps/api/seed-assets/about.jpg similarity index 100% rename from out/images/about.jpg rename to apps/api/seed-assets/about.jpg diff --git a/out/images/hero.jpg b/apps/api/seed-assets/hero.jpg similarity index 100% rename from out/images/hero.jpg rename to apps/api/seed-assets/hero.jpg diff --git a/out/images/industries/construction.jpg b/apps/api/seed-assets/industries/construction.jpg similarity index 100% rename from out/images/industries/construction.jpg rename to apps/api/seed-assets/industries/construction.jpg diff --git a/out/images/industries/mining.jpg b/apps/api/seed-assets/industries/mining.jpg similarity index 100% rename from out/images/industries/mining.jpg rename to apps/api/seed-assets/industries/mining.jpg diff --git a/out/images/industries/oil-gas.jpg b/apps/api/seed-assets/industries/oil-gas.jpg similarity index 100% rename from out/images/industries/oil-gas.jpg rename to apps/api/seed-assets/industries/oil-gas.jpg diff --git a/out/images/industries/petrochemical.jpg b/apps/api/seed-assets/industries/petrochemical.jpg similarity index 100% rename from out/images/industries/petrochemical.jpg rename to apps/api/seed-assets/industries/petrochemical.jpg diff --git a/out/images/industries/power-energy.jpg b/apps/api/seed-assets/industries/power-energy.jpg similarity index 100% rename from out/images/industries/power-energy.jpg rename to apps/api/seed-assets/industries/power-energy.jpg diff --git a/out/images/industries/transport.jpg b/apps/api/seed-assets/industries/transport.jpg similarity index 100% rename from out/images/industries/transport.jpg rename to apps/api/seed-assets/industries/transport.jpg diff --git a/out/images/products/eyewear/1.webp b/apps/api/seed-assets/products/eyewear/1.webp similarity index 100% rename from out/images/products/eyewear/1.webp rename to apps/api/seed-assets/products/eyewear/1.webp diff --git a/out/images/products/eyewear/10.webp b/apps/api/seed-assets/products/eyewear/10.webp similarity index 100% rename from out/images/products/eyewear/10.webp rename to apps/api/seed-assets/products/eyewear/10.webp diff --git a/out/images/products/eyewear/11.webp b/apps/api/seed-assets/products/eyewear/11.webp similarity index 100% rename from out/images/products/eyewear/11.webp rename to apps/api/seed-assets/products/eyewear/11.webp diff --git a/out/images/products/eyewear/2.webp b/apps/api/seed-assets/products/eyewear/2.webp similarity index 100% rename from out/images/products/eyewear/2.webp rename to apps/api/seed-assets/products/eyewear/2.webp diff --git a/out/images/products/eyewear/3.webp b/apps/api/seed-assets/products/eyewear/3.webp similarity index 100% rename from out/images/products/eyewear/3.webp rename to apps/api/seed-assets/products/eyewear/3.webp diff --git a/out/images/products/eyewear/4.webp b/apps/api/seed-assets/products/eyewear/4.webp similarity index 100% rename from out/images/products/eyewear/4.webp rename to apps/api/seed-assets/products/eyewear/4.webp diff --git a/out/images/products/eyewear/5.webp b/apps/api/seed-assets/products/eyewear/5.webp similarity index 100% rename from out/images/products/eyewear/5.webp rename to apps/api/seed-assets/products/eyewear/5.webp diff --git a/out/images/products/eyewear/6.webp b/apps/api/seed-assets/products/eyewear/6.webp similarity index 100% rename from out/images/products/eyewear/6.webp rename to apps/api/seed-assets/products/eyewear/6.webp diff --git a/out/images/products/eyewear/7.webp b/apps/api/seed-assets/products/eyewear/7.webp similarity index 100% rename from out/images/products/eyewear/7.webp rename to apps/api/seed-assets/products/eyewear/7.webp diff --git a/out/images/products/eyewear/8.webp b/apps/api/seed-assets/products/eyewear/8.webp similarity index 100% rename from out/images/products/eyewear/8.webp rename to apps/api/seed-assets/products/eyewear/8.webp diff --git a/out/images/products/eyewear/9.webp b/apps/api/seed-assets/products/eyewear/9.webp similarity index 100% rename from out/images/products/eyewear/9.webp rename to apps/api/seed-assets/products/eyewear/9.webp diff --git a/out/images/products/gloves.jpg b/apps/api/seed-assets/products/gloves.jpg similarity index 100% rename from out/images/products/gloves.jpg rename to apps/api/seed-assets/products/gloves.jpg diff --git a/out/images/products/gloves/acid/1.webp b/apps/api/seed-assets/products/gloves/acid/1.webp similarity index 100% rename from out/images/products/gloves/acid/1.webp rename to apps/api/seed-assets/products/gloves/acid/1.webp diff --git a/out/images/products/gloves/acid/2.webp b/apps/api/seed-assets/products/gloves/acid/2.webp similarity index 100% rename from out/images/products/gloves/acid/2.webp rename to apps/api/seed-assets/products/gloves/acid/2.webp diff --git a/out/images/products/gloves/acid/3.webp b/apps/api/seed-assets/products/gloves/acid/3.webp similarity index 100% rename from out/images/products/gloves/acid/3.webp rename to apps/api/seed-assets/products/gloves/acid/3.webp diff --git a/out/images/products/gloves/acid/4.webp b/apps/api/seed-assets/products/gloves/acid/4.webp similarity index 100% rename from out/images/products/gloves/acid/4.webp rename to apps/api/seed-assets/products/gloves/acid/4.webp diff --git a/out/images/products/gloves/cut/1.webp b/apps/api/seed-assets/products/gloves/cut/1.webp similarity index 100% rename from out/images/products/gloves/cut/1.webp rename to apps/api/seed-assets/products/gloves/cut/1.webp diff --git a/out/images/products/gloves/cut/2.webp b/apps/api/seed-assets/products/gloves/cut/2.webp similarity index 100% rename from out/images/products/gloves/cut/2.webp rename to apps/api/seed-assets/products/gloves/cut/2.webp diff --git a/out/images/products/gloves/cut/3.webp b/apps/api/seed-assets/products/gloves/cut/3.webp similarity index 100% rename from out/images/products/gloves/cut/3.webp rename to apps/api/seed-assets/products/gloves/cut/3.webp diff --git a/out/images/products/gloves/cut/4.webp b/apps/api/seed-assets/products/gloves/cut/4.webp similarity index 100% rename from out/images/products/gloves/cut/4.webp rename to apps/api/seed-assets/products/gloves/cut/4.webp diff --git a/out/images/products/gloves/cut/5.webp b/apps/api/seed-assets/products/gloves/cut/5.webp similarity index 100% rename from out/images/products/gloves/cut/5.webp rename to apps/api/seed-assets/products/gloves/cut/5.webp diff --git a/out/images/products/gloves/leather/1.webp b/apps/api/seed-assets/products/gloves/leather/1.webp similarity index 100% rename from out/images/products/gloves/leather/1.webp rename to apps/api/seed-assets/products/gloves/leather/1.webp diff --git a/out/images/products/gloves/leather/2.webp b/apps/api/seed-assets/products/gloves/leather/2.webp similarity index 100% rename from out/images/products/gloves/leather/2.webp rename to apps/api/seed-assets/products/gloves/leather/2.webp diff --git a/out/images/products/gloves/leather/3.webp b/apps/api/seed-assets/products/gloves/leather/3.webp similarity index 100% rename from out/images/products/gloves/leather/3.webp rename to apps/api/seed-assets/products/gloves/leather/3.webp diff --git a/out/images/products/gloves/leather/4.webp b/apps/api/seed-assets/products/gloves/leather/4.webp similarity index 100% rename from out/images/products/gloves/leather/4.webp rename to apps/api/seed-assets/products/gloves/leather/4.webp diff --git a/out/images/products/gloves/leather/5.webp b/apps/api/seed-assets/products/gloves/leather/5.webp similarity index 100% rename from out/images/products/gloves/leather/5.webp rename to apps/api/seed-assets/products/gloves/leather/5.webp diff --git a/out/images/products/gloves/leather/6.webp b/apps/api/seed-assets/products/gloves/leather/6.webp similarity index 100% rename from out/images/products/gloves/leather/6.webp rename to apps/api/seed-assets/products/gloves/leather/6.webp diff --git a/out/images/products/gloves/solvent/1.webp b/apps/api/seed-assets/products/gloves/solvent/1.webp similarity index 100% rename from out/images/products/gloves/solvent/1.webp rename to apps/api/seed-assets/products/gloves/solvent/1.webp diff --git a/out/images/products/gloves/solvent/2.webp b/apps/api/seed-assets/products/gloves/solvent/2.webp similarity index 100% rename from out/images/products/gloves/solvent/2.webp rename to apps/api/seed-assets/products/gloves/solvent/2.webp diff --git a/out/images/products/gloves/solvent/3.webp b/apps/api/seed-assets/products/gloves/solvent/3.webp similarity index 100% rename from out/images/products/gloves/solvent/3.webp rename to apps/api/seed-assets/products/gloves/solvent/3.webp diff --git a/out/images/products/gloves/solvent/4.webp b/apps/api/seed-assets/products/gloves/solvent/4.webp similarity index 100% rename from out/images/products/gloves/solvent/4.webp rename to apps/api/seed-assets/products/gloves/solvent/4.webp diff --git a/out/images/products/goggles.jpg b/apps/api/seed-assets/products/goggles.jpg similarity index 100% rename from out/images/products/goggles.jpg rename to apps/api/seed-assets/products/goggles.jpg diff --git a/out/images/products/harness.jpg b/apps/api/seed-assets/products/harness.jpg similarity index 100% rename from out/images/products/harness.jpg rename to apps/api/seed-assets/products/harness.jpg diff --git a/out/images/products/hearing.jpg b/apps/api/seed-assets/products/hearing.jpg similarity index 100% rename from out/images/products/hearing.jpg rename to apps/api/seed-assets/products/hearing.jpg diff --git a/out/images/products/hearing/1.webp b/apps/api/seed-assets/products/hearing/1.webp similarity index 100% rename from out/images/products/hearing/1.webp rename to apps/api/seed-assets/products/hearing/1.webp diff --git a/out/images/products/hearing/2.webp b/apps/api/seed-assets/products/hearing/2.webp similarity index 100% rename from out/images/products/hearing/2.webp rename to apps/api/seed-assets/products/hearing/2.webp diff --git a/out/images/products/hearing/3.webp b/apps/api/seed-assets/products/hearing/3.webp similarity index 100% rename from out/images/products/hearing/3.webp rename to apps/api/seed-assets/products/hearing/3.webp diff --git a/out/images/products/hearing/4.webp b/apps/api/seed-assets/products/hearing/4.webp similarity index 100% rename from out/images/products/hearing/4.webp rename to apps/api/seed-assets/products/hearing/4.webp diff --git a/out/images/products/hearing/5.webp b/apps/api/seed-assets/products/hearing/5.webp similarity index 100% rename from out/images/products/hearing/5.webp rename to apps/api/seed-assets/products/hearing/5.webp diff --git a/out/images/products/hearing/6.webp b/apps/api/seed-assets/products/hearing/6.webp similarity index 100% rename from out/images/products/hearing/6.webp rename to apps/api/seed-assets/products/hearing/6.webp diff --git a/out/images/products/hearing/7.webp b/apps/api/seed-assets/products/hearing/7.webp similarity index 100% rename from out/images/products/hearing/7.webp rename to apps/api/seed-assets/products/hearing/7.webp diff --git a/out/images/products/hearing/8.webp b/apps/api/seed-assets/products/hearing/8.webp similarity index 100% rename from out/images/products/hearing/8.webp rename to apps/api/seed-assets/products/hearing/8.webp diff --git a/out/images/products/helmet.jpg b/apps/api/seed-assets/products/helmet.jpg similarity index 100% rename from out/images/products/helmet.jpg rename to apps/api/seed-assets/products/helmet.jpg diff --git a/out/images/products/helmets/1.webp b/apps/api/seed-assets/products/helmets/1.webp similarity index 100% rename from out/images/products/helmets/1.webp rename to apps/api/seed-assets/products/helmets/1.webp diff --git a/out/images/products/helmets/10.webp b/apps/api/seed-assets/products/helmets/10.webp similarity index 100% rename from out/images/products/helmets/10.webp rename to apps/api/seed-assets/products/helmets/10.webp diff --git a/out/images/products/helmets/11.webp b/apps/api/seed-assets/products/helmets/11.webp similarity index 100% rename from out/images/products/helmets/11.webp rename to apps/api/seed-assets/products/helmets/11.webp diff --git a/out/images/products/helmets/12.webp b/apps/api/seed-assets/products/helmets/12.webp similarity index 100% rename from out/images/products/helmets/12.webp rename to apps/api/seed-assets/products/helmets/12.webp diff --git a/out/images/products/helmets/2.webp b/apps/api/seed-assets/products/helmets/2.webp similarity index 100% rename from out/images/products/helmets/2.webp rename to apps/api/seed-assets/products/helmets/2.webp diff --git a/out/images/products/helmets/3.webp b/apps/api/seed-assets/products/helmets/3.webp similarity index 100% rename from out/images/products/helmets/3.webp rename to apps/api/seed-assets/products/helmets/3.webp diff --git a/out/images/products/helmets/4.webp b/apps/api/seed-assets/products/helmets/4.webp similarity index 100% rename from out/images/products/helmets/4.webp rename to apps/api/seed-assets/products/helmets/4.webp diff --git a/out/images/products/helmets/5.webp b/apps/api/seed-assets/products/helmets/5.webp similarity index 100% rename from out/images/products/helmets/5.webp rename to apps/api/seed-assets/products/helmets/5.webp diff --git a/out/images/products/helmets/9.webp b/apps/api/seed-assets/products/helmets/9.webp similarity index 100% rename from out/images/products/helmets/9.webp rename to apps/api/seed-assets/products/helmets/9.webp diff --git a/out/images/products/respiratory.jpg b/apps/api/seed-assets/products/respiratory.jpg similarity index 100% rename from out/images/products/respiratory.jpg rename to apps/api/seed-assets/products/respiratory.jpg diff --git a/out/images/products/respiratory/1.webp b/apps/api/seed-assets/products/respiratory/1.webp similarity index 100% rename from out/images/products/respiratory/1.webp rename to apps/api/seed-assets/products/respiratory/1.webp diff --git a/out/images/products/respiratory/10.webp b/apps/api/seed-assets/products/respiratory/10.webp similarity index 100% rename from out/images/products/respiratory/10.webp rename to apps/api/seed-assets/products/respiratory/10.webp diff --git a/out/images/products/respiratory/11.webp b/apps/api/seed-assets/products/respiratory/11.webp similarity index 100% rename from out/images/products/respiratory/11.webp rename to apps/api/seed-assets/products/respiratory/11.webp diff --git a/out/images/products/respiratory/2.webp b/apps/api/seed-assets/products/respiratory/2.webp similarity index 100% rename from out/images/products/respiratory/2.webp rename to apps/api/seed-assets/products/respiratory/2.webp diff --git a/out/images/products/respiratory/3.webp b/apps/api/seed-assets/products/respiratory/3.webp similarity index 100% rename from out/images/products/respiratory/3.webp rename to apps/api/seed-assets/products/respiratory/3.webp diff --git a/out/images/products/respiratory/4.webp b/apps/api/seed-assets/products/respiratory/4.webp similarity index 100% rename from out/images/products/respiratory/4.webp rename to apps/api/seed-assets/products/respiratory/4.webp diff --git a/out/images/products/respiratory/5.webp b/apps/api/seed-assets/products/respiratory/5.webp similarity index 100% rename from out/images/products/respiratory/5.webp rename to apps/api/seed-assets/products/respiratory/5.webp diff --git a/out/images/products/respiratory/6.webp b/apps/api/seed-assets/products/respiratory/6.webp similarity index 100% rename from out/images/products/respiratory/6.webp rename to apps/api/seed-assets/products/respiratory/6.webp diff --git a/out/images/products/respiratory/7.webp b/apps/api/seed-assets/products/respiratory/7.webp similarity index 100% rename from out/images/products/respiratory/7.webp rename to apps/api/seed-assets/products/respiratory/7.webp diff --git a/out/images/products/respiratory/8.webp b/apps/api/seed-assets/products/respiratory/8.webp similarity index 100% rename from out/images/products/respiratory/8.webp rename to apps/api/seed-assets/products/respiratory/8.webp diff --git a/out/images/products/respiratory/9.webp b/apps/api/seed-assets/products/respiratory/9.webp similarity index 100% rename from out/images/products/respiratory/9.webp rename to apps/api/seed-assets/products/respiratory/9.webp diff --git a/out/images/products/shoes.jpg b/apps/api/seed-assets/products/shoes.jpg similarity index 100% rename from out/images/products/shoes.jpg rename to apps/api/seed-assets/products/shoes.jpg diff --git a/out/images/products/shoes/office/1.webp b/apps/api/seed-assets/products/shoes/office/1.webp similarity index 100% rename from out/images/products/shoes/office/1.webp rename to apps/api/seed-assets/products/shoes/office/1.webp diff --git a/out/images/products/shoes/office/2.webp b/apps/api/seed-assets/products/shoes/office/2.webp similarity index 100% rename from out/images/products/shoes/office/2.webp rename to apps/api/seed-assets/products/shoes/office/2.webp diff --git a/out/images/products/shoes/office/3.webp b/apps/api/seed-assets/products/shoes/office/3.webp similarity index 100% rename from out/images/products/shoes/office/3.webp rename to apps/api/seed-assets/products/shoes/office/3.webp diff --git a/out/images/products/shoes/office/4.webp b/apps/api/seed-assets/products/shoes/office/4.webp similarity index 100% rename from out/images/products/shoes/office/4.webp rename to apps/api/seed-assets/products/shoes/office/4.webp diff --git a/out/images/products/shoes/office/5.webp b/apps/api/seed-assets/products/shoes/office/5.webp similarity index 100% rename from out/images/products/shoes/office/5.webp rename to apps/api/seed-assets/products/shoes/office/5.webp diff --git a/out/images/products/shoes/office/6.webp b/apps/api/seed-assets/products/shoes/office/6.webp similarity index 100% rename from out/images/products/shoes/office/6.webp rename to apps/api/seed-assets/products/shoes/office/6.webp diff --git a/out/images/products/shoes/office/7.webp b/apps/api/seed-assets/products/shoes/office/7.webp similarity index 100% rename from out/images/products/shoes/office/7.webp rename to apps/api/seed-assets/products/shoes/office/7.webp diff --git a/out/images/products/shoes/office/8.webp b/apps/api/seed-assets/products/shoes/office/8.webp similarity index 100% rename from out/images/products/shoes/office/8.webp rename to apps/api/seed-assets/products/shoes/office/8.webp diff --git a/out/images/products/shoes/worker/1.png b/apps/api/seed-assets/products/shoes/worker/1.png similarity index 100% rename from out/images/products/shoes/worker/1.png rename to apps/api/seed-assets/products/shoes/worker/1.png diff --git a/out/images/products/shoes/worker/2.png b/apps/api/seed-assets/products/shoes/worker/2.png similarity index 100% rename from out/images/products/shoes/worker/2.png rename to apps/api/seed-assets/products/shoes/worker/2.png diff --git a/out/images/products/shoes/worker/3.png b/apps/api/seed-assets/products/shoes/worker/3.png similarity index 100% rename from out/images/products/shoes/worker/3.png rename to apps/api/seed-assets/products/shoes/worker/3.png diff --git a/out/images/products/shoes/worker/4.png b/apps/api/seed-assets/products/shoes/worker/4.png similarity index 100% rename from out/images/products/shoes/worker/4.png rename to apps/api/seed-assets/products/shoes/worker/4.png diff --git a/out/images/products/shoes/worker/5.png b/apps/api/seed-assets/products/shoes/worker/5.png similarity index 100% rename from out/images/products/shoes/worker/5.png rename to apps/api/seed-assets/products/shoes/worker/5.png diff --git a/out/images/products/shoes/worker/6.png b/apps/api/seed-assets/products/shoes/worker/6.png similarity index 100% rename from out/images/products/shoes/worker/6.png rename to apps/api/seed-assets/products/shoes/worker/6.png diff --git a/out/images/products/traffic.jpg b/apps/api/seed-assets/products/traffic.jpg similarity index 100% rename from out/images/products/traffic.jpg rename to apps/api/seed-assets/products/traffic.jpg diff --git a/out/images/products/vest.jpg b/apps/api/seed-assets/products/vest.jpg similarity index 100% rename from out/images/products/vest.jpg rename to apps/api/seed-assets/products/vest.jpg diff --git a/apps/api/src/app.module.ts b/apps/api/src/app.module.ts new file mode 100644 index 0000000..b0c7ea7 --- /dev/null +++ b/apps/api/src/app.module.ts @@ -0,0 +1,48 @@ +import { Controller, Get, Module } from "@nestjs/common"; +import { APP_FILTER, APP_GUARD } from "@nestjs/core"; +import { ThrottlerGuard, ThrottlerModule } from "@nestjs/throttler"; +import { AuthModule } from "./auth/auth.controller.js"; +import { CatalogModule } from "./catalog/catalog.module.js"; +import { CommonModule } from "./common/common.module.js"; +import { PrismaExceptionFilter } from "./common/prisma-exception.filter.js"; +import { ContactModule } from "./contact/contact.module.js"; +import { DashboardModule } from "./dashboard/dashboard.module.js"; +import { MediaModule } from "./media/media.controller.js"; +import { PrismaModule, PrismaService } from "./prisma/prisma.service.js"; +import { PublicModule } from "./public/public.module.js"; +import { SectionsModule } from "./sections/sections.module.js"; +import { UsersModule } from "./users/users.controller.js"; + +@Controller("health") +class HealthController { + constructor(private readonly prisma: PrismaService) {} + + @Get() + async health() { + await this.prisma.$queryRaw`SELECT 1`; + return { ok: true }; + } +} + +@Module({ + imports: [ + // generous default; sensitive routes (login, contact form) set stricter limits + ThrottlerModule.forRoot([{ ttl: 60_000, limit: 300 }]), + PrismaModule, + CommonModule, + AuthModule, + UsersModule, + MediaModule, + CatalogModule, + SectionsModule, + ContactModule, + PublicModule, + DashboardModule, + ], + controllers: [HealthController], + providers: [ + { provide: APP_GUARD, useClass: ThrottlerGuard }, + { provide: APP_FILTER, useClass: PrismaExceptionFilter }, + ], +}) +export class AppModule {} diff --git a/apps/api/src/auth/auth.controller.ts b/apps/api/src/auth/auth.controller.ts new file mode 100644 index 0000000..083b48e --- /dev/null +++ b/apps/api/src/auth/auth.controller.ts @@ -0,0 +1,101 @@ +import { Body, Controller, Get, HttpCode, Module, Post, Req, Res } from "@nestjs/common"; +import { JwtModule, type JwtSignOptions } from "@nestjs/jwt"; +import { Throttle } from "@nestjs/throttler"; +import { + type AuthResponse, + type ChangePasswordInput, + changePasswordSchema, + type LoginInput, + loginSchema, +} from "@imen/shared"; +import type { Request, Response } from "express"; +import { env, isProd } from "../config/env.js"; +import { AdminAuth, type AuthUser, CurrentUser } from "../common/auth.js"; +import { ZodPipe } from "../common/zod.pipe.js"; +import { AuthService, type IssuedTokens } from "./auth.service.js"; + +const COOKIE = "imen_rt"; +const COOKIE_PATH = "/api/admin/auth"; + +const ua = (req: Request) => req.headers["user-agent"] ?? ""; +const readCookie = (req: Request): string | undefined => + (req.cookies as Record | undefined)?.[COOKIE]; + +@Controller("admin/auth") +export class AuthController { + constructor(private readonly auth: AuthService) {} + + @Post("login") + @HttpCode(200) + @Throttle({ default: { limit: 8, ttl: 60_000 } }) + async login( + @Body(new ZodPipe(loginSchema)) body: LoginInput, + @Req() req: Request, + @Res({ passthrough: true }) res: Response, + ): Promise { + return this.respond(res, await this.auth.login(body, ua(req))); + } + + @Post("refresh") + @HttpCode(200) + @Throttle({ default: { limit: 30, ttl: 60_000 } }) + async refresh( + @Req() req: Request, + @Res({ passthrough: true }) res: Response, + ): Promise { + try { + return this.respond(res, await this.auth.refresh(readCookie(req), ua(req))); + } catch (e) { + res.clearCookie(COOKIE, { path: COOKIE_PATH }); + throw e; + } + } + + @Post("logout") + @HttpCode(204) + async logout(@Req() req: Request, @Res({ passthrough: true }) res: Response) { + await this.auth.logout(readCookie(req)); + res.clearCookie(COOKIE, { path: COOKIE_PATH }); + } + + @Get("me") + @AdminAuth() + me(@CurrentUser() user: AuthUser) { + return this.auth.me(user.id); + } + + @Post("change-password") + @HttpCode(204) + @AdminAuth() + async changePassword( + @Body(new ZodPipe(changePasswordSchema)) body: ChangePasswordInput, + @CurrentUser() user: AuthUser, + ) { + await this.auth.changePassword(user.id, body); + } + + private respond(res: Response, t: IssuedTokens): AuthResponse { + res.cookie(COOKIE, t.refreshToken, { + httpOnly: true, + secure: isProd && env.COOKIE_SECURE, + sameSite: "strict", + path: COOKIE_PATH, + expires: t.refreshExpiresAt, + }); + return { accessToken: t.accessToken, user: t.user }; + } +} + +@Module({ + imports: [ + JwtModule.register({ + global: true, + secret: env.JWT_SECRET, + signOptions: { expiresIn: env.JWT_ACCESS_TTL as JwtSignOptions["expiresIn"] }, + }), + ], + controllers: [AuthController], + providers: [AuthService], + exports: [AuthService], +}) +export class AuthModule {} diff --git a/apps/api/src/auth/auth.service.ts b/apps/api/src/auth/auth.service.ts new file mode 100644 index 0000000..cf12875 --- /dev/null +++ b/apps/api/src/auth/auth.service.ts @@ -0,0 +1,139 @@ +import { createHash, randomBytes } from "node:crypto"; +import { BadRequestException, Injectable, UnauthorizedException } from "@nestjs/common"; +import { JwtService } from "@nestjs/jwt"; +import { hash, verify } from "@node-rs/argon2"; +import type { AdminUserDto, AuthResponse, ChangePasswordInput, LoginInput } from "@imen/shared"; +import { env } from "../config/env.js"; +import type { JwtPayload } from "../common/auth.js"; +import { AuditService } from "../common/common.module.js"; +import type { AdminUser } from "../generated/prisma/client.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +export const hashPassword = (password: string) => hash(password); + +const sha256 = (v: string) => createHash("sha256").update(v).digest("hex"); + +export const toUserDto = (u: AdminUser): AdminUserDto => ({ + id: u.id, + phone: u.phone, + name: u.name, + role: u.role, + isActive: u.isActive, + lastLoginAt: u.lastLoginAt?.toISOString() ?? null, + createdAt: u.createdAt.toISOString(), +}); + +export interface IssuedTokens extends AuthResponse { + refreshToken: string; + refreshExpiresAt: Date; +} + +const INVALID_LOGIN = "شماره موبایل یا رمز عبور اشتباه است"; + +/** hash of a random password, verified against when the phone is unknown so timing stays the same */ +const DUMMY_HASH = hashPassword(randomBytes(16).toString("hex")); + +@Injectable() +export class AuthService { + constructor( + private readonly prisma: PrismaService, + private readonly jwt: JwtService, + private readonly audit: AuditService, + ) {} + + async login(input: LoginInput, userAgent: string): Promise { + const user = await this.prisma.adminUser.findUnique({ where: { phone: input.phone } }); + // verify even when the user is missing so response time does not reveal valid phones + const ok = await verify(user?.passwordHash ?? (await DUMMY_HASH), input.password).catch( + () => false, + ); + if (!user || !ok || !user.isActive) throw new UnauthorizedException(INVALID_LOGIN); + + const updated = await this.prisma.adminUser.update({ + where: { id: user.id }, + data: { lastLoginAt: new Date() }, + }); + this.audit.log(user.id, "login", "user", user.id, user.phone); + return this.issue(updated, userAgent); + } + + /** Rotates the refresh token: the old one is revoked and a new pair is issued */ + async refresh(token: string | undefined, userAgent: string): Promise { + if (!token) throw new UnauthorizedException("نشست شما منقضی شده است"); + + const stored = await this.prisma.refreshToken.findUnique({ + where: { tokenHash: sha256(token) }, + include: { user: true }, + }); + if (!stored) throw new UnauthorizedException("نشست شما منقضی شده است"); + + if (stored.revokedAt) { + // a revoked token was replayed: assume it leaked and end every session of this user + await this.revokeAll(stored.userId); + throw new UnauthorizedException("نشست شما منقضی شده است"); + } + if (stored.expiresAt < new Date() || !stored.user.isActive) { + throw new UnauthorizedException("نشست شما منقضی شده است"); + } + + await this.prisma.refreshToken.update({ + where: { id: stored.id }, + data: { revokedAt: new Date() }, + }); + return this.issue(stored.user, userAgent); + } + + async logout(token: string | undefined) { + if (!token) return; + await this.prisma.refreshToken.updateMany({ + where: { tokenHash: sha256(token), revokedAt: null }, + data: { revokedAt: new Date() }, + }); + } + + async changePassword(userId: number, input: ChangePasswordInput) { + const user = await this.prisma.adminUser.findUniqueOrThrow({ where: { id: userId } }); + if (!(await verify(user.passwordHash, input.currentPassword).catch(() => false))) { + throw new BadRequestException("رمز عبور فعلی اشتباه است"); + } + await this.prisma.adminUser.update({ + where: { id: userId }, + data: { passwordHash: await hashPassword(input.newPassword) }, + }); + this.audit.log(userId, "change-password", "user", userId, user.phone); + } + + async me(userId: number) { + return toUserDto(await this.prisma.adminUser.findUniqueOrThrow({ where: { id: userId } })); + } + + revokeAll(userId: number) { + return this.prisma.refreshToken.updateMany({ + where: { userId, revokedAt: null }, + data: { revokedAt: new Date() }, + }); + } + + private async issue(user: AdminUser, userAgent: string): Promise { + const payload: JwtPayload = { sub: user.id, role: user.role }; + const accessToken = await this.jwt.signAsync(payload); + + const refreshToken = randomBytes(48).toString("base64url"); + const refreshExpiresAt = new Date(Date.now() + env.REFRESH_TTL_DAYS * 86_400_000); + await this.prisma.refreshToken.create({ + data: { + userId: user.id, + tokenHash: sha256(refreshToken), + expiresAt: refreshExpiresAt, + userAgent: userAgent.slice(0, 300), + }, + }); + + // keep the table small: drop tokens that expired more than a day ago + void this.prisma.refreshToken + .deleteMany({ where: { expiresAt: { lt: new Date(Date.now() - 86_400_000) } } }) + .catch(() => undefined); + + return { accessToken, refreshToken, refreshExpiresAt, user: toUserDto(user) }; + } +} diff --git a/apps/api/src/catalog/catalog.module.ts b/apps/api/src/catalog/catalog.module.ts new file mode 100644 index 0000000..9951cb9 --- /dev/null +++ b/apps/api/src/catalog/catalog.module.ts @@ -0,0 +1,141 @@ +import { + Body, + Controller, + Delete, + Get, + HttpCode, + Module, + Param, + Patch, + Post, + Put, + Query, +} from "@nestjs/common"; +import { + type CategoryInput, + categoryInputSchema, + type ProductInput, + productInputSchema, + type ProductListQuery, + productListQuerySchema, + type ReorderInput, + reorderSchema, +} from "@imen/shared"; +import { z } from "zod"; +import { AdminAuth, type AuthUser, CurrentUser, Roles } from "../common/auth.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import { MediaModule } from "../media/media.controller.js"; +import { CategoriesService } from "./categories.service.js"; +import { ProductsService } from "./products.service.js"; + +const publishSchema = z.object({ isPublished: z.boolean() }); + +@AdminAuth() +@Controller("admin/categories") +export class CategoriesController { + constructor(private readonly categories: CategoriesService) {} + + @Get() + list() { + return this.categories.list(); + } + + @Get(":id") + get(@Param("id", IdPipe) id: number) { + return this.categories.get(id); + } + + @Post() + create( + @Body(new ZodPipe(categoryInputSchema)) body: CategoryInput, + @CurrentUser() user: AuthUser, + ) { + return this.categories.create(body, user.id); + } + + @Post("reorder") + @HttpCode(204) + async reorder(@Body(new ZodPipe(reorderSchema)) body: ReorderInput, @CurrentUser() user: AuthUser) { + await this.categories.reorder(body.ids, user.id); + } + + @Put(":id") + update( + @Param("id", IdPipe) id: number, + @Body(new ZodPipe(categoryInputSchema)) body: CategoryInput, + @CurrentUser() user: AuthUser, + ) { + return this.categories.update(id, body, user.id); + } + + @Roles("ADMIN") + @Delete(":id") + @HttpCode(204) + async remove(@Param("id", IdPipe) id: number, @CurrentUser() user: AuthUser) { + await this.categories.remove(id, user.id); + } +} + +@AdminAuth() +@Controller("admin/products") +export class ProductsController { + constructor(private readonly products: ProductsService) {} + + @Get() + list(@Query(new ZodPipe(productListQuerySchema)) q: ProductListQuery) { + return this.products.list(q); + } + + @Get(":id") + get(@Param("id", IdPipe) id: number) { + return this.products.get(id); + } + + @Post() + create(@Body(new ZodPipe(productInputSchema)) body: ProductInput, @CurrentUser() user: AuthUser) { + return this.products.create(body, user.id); + } + + @Post("reorder") + @HttpCode(204) + async reorder(@Body(new ZodPipe(reorderSchema)) body: ReorderInput, @CurrentUser() user: AuthUser) { + await this.products.reorder(body.ids, user.id); + } + + @Post(":id/duplicate") + duplicate(@Param("id", IdPipe) id: number, @CurrentUser() user: AuthUser) { + return this.products.duplicate(id, user.id); + } + + @Patch(":id/publish") + publish( + @Param("id", IdPipe) id: number, + @Body(new ZodPipe(publishSchema)) body: z.output, + @CurrentUser() user: AuthUser, + ) { + return this.products.setPublished(id, body.isPublished, user.id); + } + + @Put(":id") + update( + @Param("id", IdPipe) id: number, + @Body(new ZodPipe(productInputSchema)) body: ProductInput, + @CurrentUser() user: AuthUser, + ) { + return this.products.update(id, body, user.id); + } + + @Roles("ADMIN") + @Delete(":id") + @HttpCode(204) + async remove(@Param("id", IdPipe) id: number, @CurrentUser() user: AuthUser) { + await this.products.remove(id, user.id); + } +} + +@Module({ + imports: [MediaModule], + controllers: [CategoriesController, ProductsController], + providers: [CategoriesService, ProductsService], +}) +export class CatalogModule {} diff --git a/apps/api/src/catalog/categories.service.ts b/apps/api/src/catalog/categories.service.ts new file mode 100644 index 0000000..095e163 --- /dev/null +++ b/apps/api/src/catalog/categories.service.ts @@ -0,0 +1,132 @@ +import { ConflictException, Injectable } from "@nestjs/common"; +import type { CategoryInput } from "@imen/shared"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import { MediaService } from "../media/media.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +const withCover = { coverImage: true } as const; + +@Injectable() +export class CategoriesService { + constructor( + private readonly prisma: PrismaService, + private readonly media: MediaService, + private readonly audit: AuditService, + private readonly revalidate: RevalidateService, + ) {} + + async list() { + const rows = await this.prisma.category.findMany({ + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { ...withCover, _count: { select: { products: true, groups: true } } }, + }); + return rows.map(({ coverImage, _count, ...c }) => ({ + ...c, + coverImage: coverImage && this.media.toDto(coverImage), + productCount: _count.products, + groupCount: _count.groups, + })); + } + + async get(id: number) { + const { coverImage, ...c } = await this.prisma.category.findUniqueOrThrow({ + where: { id }, + include: { + ...withCover, + groups: { + orderBy: { sortOrder: "asc" }, + include: { _count: { select: { products: true } } }, + }, + }, + }); + return { + ...c, + coverImage: coverImage && this.media.toDto(coverImage), + groups: c.groups.map(({ _count, ...g }) => ({ ...g, productCount: _count.products })), + }; + } + + async create(input: CategoryInput, userId: number) { + this.assertUniqueGroupSlugs(input); + const { groups, ...data } = input; + const last = await this.prisma.category.aggregate({ _max: { sortOrder: true } }); + + const category = await this.prisma.category.create({ + data: { + ...data, + sortOrder: (last._max.sortOrder ?? -1) + 1, + groups: { + create: groups.map((g, i) => ({ slug: g.slug, name: g.name, desc: g.desc, sortOrder: i })), + }, + }, + }); + this.audit.log(userId, "create", "category", category.id, category.name); + this.revalidate.trigger(); + return this.get(category.id); + } + + async update(id: number, input: CategoryInput, userId: number) { + this.assertUniqueGroupSlugs(input); + const { groups, ...data } = input; + + await this.prisma.$transaction(async (tx) => { + const category = await tx.category.update({ where: { id }, data }); + + // sync groups: keep/update listed ids, delete missing ones, create new ones + const keepIds = groups.flatMap((g) => (g.id ? [g.id] : [])); + await tx.productGroup.deleteMany({ where: { categoryId: id, id: { notIn: keepIds } } }); + + // temporary slugs avoid unique clashes when two groups swap slugs + for (const g of groups) { + if (g.id) { + await tx.productGroup.update({ + where: { id: g.id, categoryId: id }, + data: { slug: `__tmp-${g.id}` }, + }); + } + } + for (const [i, g] of groups.entries()) { + const fields = { slug: g.slug, name: g.name, desc: g.desc, sortOrder: i }; + if (g.id) { + await tx.productGroup.update({ where: { id: g.id, categoryId: id }, data: fields }); + } else { + await tx.productGroup.create({ data: { ...fields, categoryId: id } }); + } + } + this.audit.log(userId, "update", "category", id, category.name); + }); + + this.revalidate.trigger(); + return this.get(id); + } + + async remove(id: number, userId: number) { + const category = await this.prisma.category.findUniqueOrThrow({ + where: { id }, + include: { _count: { select: { products: true } } }, + }); + if (category._count.products > 0) { + throw new ConflictException( + `این دسته ${category._count.products} محصول دارد؛ ابتدا محصولات را حذف یا جابه‌جا کنید`, + ); + } + await this.prisma.category.delete({ where: { id } }); + this.audit.log(userId, "delete", "category", id, category.name); + this.revalidate.trigger(); + } + + async reorder(ids: number[], userId: number) { + await this.prisma.$transaction( + ids.map((id, i) => this.prisma.category.update({ where: { id }, data: { sortOrder: i } })), + ); + this.audit.log(userId, "reorder", "category", "", `${ids.length} دسته`); + this.revalidate.trigger(); + } + + private assertUniqueGroupSlugs(input: CategoryInput) { + const slugs = input.groups.map((g) => g.slug); + if (new Set(slugs).size !== slugs.length) { + throw new ConflictException("اسلاگ زیرگروه‌ها باید یکتا باشد"); + } + } +} diff --git a/apps/api/src/catalog/products.service.ts b/apps/api/src/catalog/products.service.ts new file mode 100644 index 0000000..db2b627 --- /dev/null +++ b/apps/api/src/catalog/products.service.ts @@ -0,0 +1,177 @@ +import { BadRequestException, Injectable } from "@nestjs/common"; +import type { ProductInput, ProductListQuery } from "@imen/shared"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import type { Prisma } from "../generated/prisma/client.js"; +import { MediaService } from "../media/media.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +@Injectable() +export class ProductsService { + constructor( + private readonly prisma: PrismaService, + private readonly media: MediaService, + private readonly audit: AuditService, + private readonly revalidate: RevalidateService, + ) {} + + async list(q: ProductListQuery) { + const where: Prisma.ProductWhereInput = { + ...(q.categoryId && { categoryId: q.categoryId }), + ...(q.groupId && { groupId: q.groupId }), + ...(q.status && { isPublished: q.status === "published" }), + ...(q.q && { + OR: [ + { name: { contains: q.q, mode: "insensitive" } }, + { nameEn: { contains: q.q, mode: "insensitive" } }, + { code: { contains: q.q, mode: "insensitive" } }, + ], + }), + }; + const [rows, total] = await this.prisma.$transaction([ + this.prisma.product.findMany({ + where, + orderBy: [{ category: { sortOrder: "asc" } }, { sortOrder: "asc" }, { id: "asc" }], + skip: (q.page - 1) * q.pageSize, + take: q.pageSize, + include: { + image: true, + category: { select: { id: true, name: true } }, + group: { select: { id: true, name: true } }, + }, + }), + this.prisma.product.count({ where }), + ]); + return { + items: rows.map(({ image, ...p }) => ({ ...p, image: image && this.media.toDto(image) })), + total, + page: q.page, + pageSize: q.pageSize, + }; + } + + async get(id: number) { + const { image, gallery, ...p } = await this.prisma.product.findUniqueOrThrow({ + where: { id }, + include: { image: true, gallery: { orderBy: { sortOrder: "asc" }, include: { media: true } } }, + }); + return { + ...p, + image: image && this.media.toDto(image), + gallery: gallery.map((g) => this.media.toDto(g.media)), + }; + } + + async create(input: ProductInput, userId: number) { + await this.assertGroup(input); + const { galleryIds, ...data } = input; + const last = await this.prisma.product.aggregate({ + where: { categoryId: input.categoryId }, + _max: { sortOrder: true }, + }); + const product = await this.prisma.product.create({ + data: { + ...data, + sortOrder: (last._max.sortOrder ?? -1) + 1, + gallery: { create: unique(galleryIds).map((mediaId, i) => ({ mediaId, sortOrder: i })) }, + }, + }); + this.audit.log(userId, "create", "product", product.id, product.name); + this.revalidate.trigger(); + return this.get(product.id); + } + + async update(id: number, input: ProductInput, userId: number) { + await this.assertGroup(input); + const { galleryIds, ...data } = input; + const product = await this.prisma.product.update({ + where: { id }, + data: { + ...data, + gallery: { + deleteMany: {}, + create: unique(galleryIds).map((mediaId, i) => ({ mediaId, sortOrder: i })), + }, + }, + }); + this.audit.log(userId, "update", "product", id, product.name); + this.revalidate.trigger(); + return this.get(id); + } + + async setPublished(id: number, isPublished: boolean, userId: number) { + const product = await this.prisma.product.update({ where: { id }, data: { isPublished } }); + this.audit.log(userId, isPublished ? "publish" : "unpublish", "product", id, product.name); + this.revalidate.trigger(); + return { id, isPublished }; + } + + /** Copies a product as an unpublished draft with unique code/slug */ + async duplicate(id: number, userId: number) { + const src = await this.prisma.product.findUniqueOrThrow({ + where: { id }, + include: { gallery: true }, + }); + let n = 1; + const taken = async (code: string, slug: string) => + (await this.prisma.product.count({ where: { OR: [{ code }, { slug }] } })) > 0; + while (await taken(`${src.code}-${n}`, `${src.slug}-copy-${n}`)) n++; + + const copy = await this.prisma.product.create({ + data: { + categoryId: src.categoryId, + groupId: src.groupId, + code: `${src.code}-${n}`, + slug: `${src.slug}-copy-${n}`, + name: `${src.name} (کپی)`, + nameEn: src.nameEn, + desc: src.desc, + specs: src.specs, + variants: src.variants, + details: src.details, + brand: src.brand, + origin: src.origin, + sizes: src.sizes, + standards: src.standards, + features: src.features, + applications: src.applications, + attributes: (src.attributes ?? []) as Prisma.InputJsonValue, + packaging: src.packaging, + minOrder: src.minOrder, + seoTitle: src.seoTitle, + seoDescription: src.seoDescription, + imageId: src.imageId, + sortOrder: src.sortOrder + 1, + isPublished: false, + gallery: { + create: src.gallery.map((g) => ({ mediaId: g.mediaId, sortOrder: g.sortOrder })), + }, + }, + }); + this.audit.log(userId, "duplicate", "product", copy.id, copy.name); + return this.get(copy.id); + } + + async remove(id: number, userId: number) { + const product = await this.prisma.product.delete({ where: { id } }); + this.audit.log(userId, "delete", "product", id, product.name); + this.revalidate.trigger(); + } + + async reorder(ids: number[], userId: number) { + await this.prisma.$transaction( + ids.map((id, i) => this.prisma.product.update({ where: { id }, data: { sortOrder: i } })), + ); + this.audit.log(userId, "reorder", "product", "", `${ids.length} محصول`); + this.revalidate.trigger(); + } + + private async assertGroup(input: ProductInput) { + if (!input.groupId) return; + const group = await this.prisma.productGroup.findUnique({ where: { id: input.groupId } }); + if (group?.categoryId !== input.categoryId) { + throw new BadRequestException("زیرگروه انتخاب‌شده متعلق به این دسته نیست"); + } + } +} + +const unique = (ids: number[]) => [...new Set(ids)]; diff --git a/apps/api/src/common/auth.ts b/apps/api/src/common/auth.ts new file mode 100644 index 0000000..f9be1aa --- /dev/null +++ b/apps/api/src/common/auth.ts @@ -0,0 +1,80 @@ +import { + type CanActivate, + createParamDecorator, + type ExecutionContext, + ForbiddenException, + Injectable, + SetMetadata, + UnauthorizedException, + UseGuards, + applyDecorators, +} from "@nestjs/common"; +import { Reflector } from "@nestjs/core"; +import { JwtService } from "@nestjs/jwt"; +import type { Role } from "@imen/shared"; +import type { Request } from "express"; +import { PrismaService } from "../prisma/prisma.service.js"; + +export interface JwtPayload { + sub: number; + role: Role; +} + +export interface AuthUser { + id: number; + phone: string; + name: string; + role: Role; +} + +type AuthedRequest = Request & { user?: AuthUser }; + +const ROLES_KEY = "roles"; + +@Injectable() +export class JwtAuthGuard implements CanActivate { + constructor( + private readonly jwt: JwtService, + private readonly reflector: Reflector, + private readonly prisma: PrismaService, + ) {} + + async canActivate(ctx: ExecutionContext): Promise { + const req = ctx.switchToHttp().getRequest(); + const [scheme, token] = (req.headers.authorization ?? "").split(" "); + if (scheme !== "Bearer" || !token) throw new UnauthorizedException("ابتدا وارد شوید"); + + let payload: JwtPayload; + try { + payload = await this.jwt.verifyAsync(token); + } catch { + throw new UnauthorizedException("نشست شما منقضی شده است"); + } + + // re-check the user so deactivation and role changes apply immediately + const user = await this.prisma.adminUser.findUnique({ where: { id: payload.sub } }); + if (!user?.isActive) throw new UnauthorizedException("حساب کاربری غیرفعال است"); + req.user = { id: user.id, phone: user.phone, name: user.name, role: user.role }; + + const roles = this.reflector.getAllAndOverride(ROLES_KEY, [ + ctx.getHandler(), + ctx.getClass(), + ]); + if (roles?.length && !roles.includes(user.role)) { + throw new ForbiddenException("برای این کار دسترسی ندارید"); + } + return true; + } +} + +/** Protects a controller (or route) with a valid access token; optionally limits it to roles */ +export const AdminAuth = (...roles: Role[]) => + applyDecorators(SetMetadata(ROLES_KEY, roles), UseGuards(JwtAuthGuard)); + +/** Narrows the roles of one route inside an `@AdminAuth()` controller */ +export const Roles = (...roles: Role[]) => SetMetadata(ROLES_KEY, roles); + +export const CurrentUser = createParamDecorator( + (_: unknown, ctx: ExecutionContext): AuthUser => + ctx.switchToHttp().getRequest().user!, +); diff --git a/apps/api/src/common/common.module.ts b/apps/api/src/common/common.module.ts new file mode 100644 index 0000000..55fb8d7 --- /dev/null +++ b/apps/api/src/common/common.module.ts @@ -0,0 +1,60 @@ +import { Global, Injectable, Logger, Module } from "@nestjs/common"; +import { env } from "../config/env.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +/** Records who changed what; failures never break the request */ +@Injectable() +export class AuditService { + private readonly logger = new Logger(AuditService.name); + + constructor(private readonly prisma: PrismaService) {} + + log( + userId: number | null, + action: string, + entity: string, + entityId: string | number = "", + summary = "", + ) { + this.prisma.auditLog + .create({ data: { userId, action, entity, entityId: String(entityId), summary } }) + .catch((e: unknown) => this.logger.warn(`audit log failed: ${String(e)}`)); + } +} + +/** + * Tells the Nuxt site to drop its page cache after content changes. + * Calls are debounced so a burst of edits triggers one revalidation. + */ +@Injectable() +export class RevalidateService { + private readonly logger = new Logger(RevalidateService.name); + private timer: NodeJS.Timeout | undefined; + + trigger() { + if (!env.WEB_REVALIDATE_URL) return; + clearTimeout(this.timer); + this.timer = setTimeout(() => void this.run(), 1500); + this.timer.unref(); + } + + private async run() { + try { + const res = await fetch(env.WEB_REVALIDATE_URL!, { + method: "POST", + headers: { "x-revalidate-secret": env.REVALIDATE_SECRET ?? "" }, + signal: AbortSignal.timeout(5000), + }); + if (!res.ok) this.logger.warn(`site revalidation returned ${res.status}`); + } catch (e) { + this.logger.warn(`site revalidation failed: ${String(e)}`); + } + } +} + +@Global() +@Module({ + providers: [AuditService, RevalidateService], + exports: [AuditService, RevalidateService], +}) +export class CommonModule {} diff --git a/apps/api/src/common/prisma-exception.filter.ts b/apps/api/src/common/prisma-exception.filter.ts new file mode 100644 index 0000000..842d9ad --- /dev/null +++ b/apps/api/src/common/prisma-exception.filter.ts @@ -0,0 +1,60 @@ +import { type ArgumentsHost, Catch, type ExceptionFilter, HttpStatus } from "@nestjs/common"; +import type { Response } from "express"; +import { Prisma } from "../generated/prisma/client.js"; + +const FIELD_LABELS: Record = { + slug: "اسلاگ", + code: "کد", + email: "ایمیل", + phone: "شماره موبایل", +}; + +interface UniqueMeta { + target?: string[] | string; + driverAdapterError?: { cause?: { constraint?: { fields?: string[]; index?: string } } }; +} + +/** Fields of a violated unique constraint; with driver adapters only the index name is given */ +function uniqueFields(meta: UniqueMeta | undefined): string[] { + if (meta?.target) return Array.isArray(meta.target) ? meta.target : [meta.target]; + const constraint = meta?.driverAdapterError?.cause?.constraint; + if (constraint?.fields) return constraint.fields; + // "Product_code_key" → ["code"], "ProductGroup_categoryId_slug_key" → ["categoryId", "slug"] + const match = constraint?.index?.match(/^[^_]+_(.+)_key$/); + return match ? match[1]!.split("_") : []; +} + +/** Maps common Prisma errors to clear HTTP responses instead of 500s */ +@Catch(Prisma.PrismaClientKnownRequestError) +export class PrismaExceptionFilter implements ExceptionFilter { + catch(error: Prisma.PrismaClientKnownRequestError, host: ArgumentsHost) { + const res = host.switchToHttp().getResponse(); + + switch (error.code) { + case "P2002": { + const fields = uniqueFields(error.meta as UniqueMeta | undefined) + .filter((f) => !f.endsWith("Id")) // scoping columns like categoryId + .map((f) => FIELD_LABELS[f] ?? f) + .join("، "); + return res.status(HttpStatus.CONFLICT).json({ + statusCode: HttpStatus.CONFLICT, + message: fields ? `مقدار «${fields}» تکراری است` : "مقدار تکراری است", + }); + } + case "P2003": + return res.status(HttpStatus.CONFLICT).json({ + statusCode: HttpStatus.CONFLICT, + message: "این مورد به داده‌های دیگری وابسته است", + }); + case "P2025": + return res + .status(HttpStatus.NOT_FOUND) + .json({ statusCode: HttpStatus.NOT_FOUND, message: "مورد پیدا نشد" }); + default: + return res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({ + statusCode: HttpStatus.INTERNAL_SERVER_ERROR, + message: "خطای پایگاه داده", + }); + } + } +} diff --git a/apps/api/src/common/zod.pipe.ts b/apps/api/src/common/zod.pipe.ts new file mode 100644 index 0000000..31e6a37 --- /dev/null +++ b/apps/api/src/common/zod.pipe.ts @@ -0,0 +1,26 @@ +import { BadRequestException, type PipeTransform } from "@nestjs/common"; +import { toIssues } from "@imen/shared"; +import { z } from "zod"; + +// Persian default messages for every schema that has no custom message +z.config(z.locales.fa()); + +/** Validates and parses a request part with a zod schema: `@Body(new ZodPipe(schema))` */ +export class ZodPipe implements PipeTransform> { + constructor(private readonly schema: T) {} + + transform(value: unknown): z.output { + const result = this.schema.safeParse(value); + if (!result.success) { + throw new BadRequestException({ + statusCode: 400, + message: "اطلاعات واردشده معتبر نیست", + issues: toIssues(result.error), + }); + } + return result.data; + } +} + +/** Parses an `:id` route param */ +export const IdPipe = new ZodPipe(z.coerce.number().int().positive()); diff --git a/apps/api/src/config/env.ts b/apps/api/src/config/env.ts new file mode 100644 index 0000000..b74d1ca --- /dev/null +++ b/apps/api/src/config/env.ts @@ -0,0 +1,53 @@ +import { existsSync } from "node:fs"; +import { z } from "zod"; + +if (existsSync(".env")) process.loadEnvFile(".env"); + +const bool = (fallback: boolean) => + z + .enum(["true", "false", "1", "0"]) + .optional() + .transform((v) => (v === undefined ? fallback : v === "true" || v === "1")); + +const schema = z.object({ + NODE_ENV: z.enum(["development", "production", "test"]).default("development"), + PORT: z.coerce.number().int().default(4000), + CORS_ORIGINS: z.string().default(""), + /** number of reverse proxies in front of the API (gateway nginx = 1, + host TLS proxy = 2) */ + TRUST_PROXY: z.coerce.number().int().min(0).default(1), + + DATABASE_URL: z.string().min(1), + + JWT_SECRET: z.string().min(32, "JWT_SECRET must be at least 32 characters"), + JWT_ACCESS_TTL: z.string().default("15m"), + REFRESH_TTL_DAYS: z.coerce.number().int().positive().default(30), + COOKIE_SECURE: bool(true), + + S3_ENDPOINT: z.string().optional(), + S3_REGION: z.string().default("us-east-1"), + S3_BUCKET: z.string().default("imen-media"), + S3_ACCESS_KEY: z.string().default(""), + S3_SECRET_KEY: z.string().default(""), + S3_FORCE_PATH_STYLE: bool(true), + S3_ENSURE_BUCKET: bool(false), + MEDIA_PUBLIC_URL: z + .string() + .default("/media") + .transform((v) => v.replace(/\/+$/, "")), + + WEB_REVALIDATE_URL: z.string().optional(), + REVALIDATE_SECRET: z.string().optional(), + + ADMIN_PHONE: z.string().optional(), + ADMIN_PASSWORD: z.string().optional(), + ADMIN_NAME: z.string().default("مدیر سایت"), +}); + +const parsed = schema.safeParse(process.env); +if (!parsed.success) { + console.error("Invalid environment variables:\n" + z.prettifyError(parsed.error)); + process.exit(1); +} + +export const env = parsed.data; +export const isProd = env.NODE_ENV === "production"; diff --git a/apps/api/src/contact/contact.module.ts b/apps/api/src/contact/contact.module.ts new file mode 100644 index 0000000..11ec725 --- /dev/null +++ b/apps/api/src/contact/contact.module.ts @@ -0,0 +1,138 @@ +import { + Body, + Controller, + Delete, + Get, + HttpCode, + Injectable, + Module, + Param, + Patch, + Post, + Query, + Req, +} from "@nestjs/common"; +import { Throttle } from "@nestjs/throttler"; +import { + type ContactInput, + contactInputSchema, + type ContactMessageDto, + MESSAGE_STATUSES, + type MessageStatus, + messageUpdateSchema, + type Paginated, +} from "@imen/shared"; +import type { Request } from "express"; +import { z } from "zod"; +import { AdminAuth, type AuthUser, CurrentUser, Roles } from "../common/auth.js"; +import { AuditService } from "../common/common.module.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import type { ContactMessage } from "../generated/prisma/client.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +const listQuery = z.object({ + status: z.enum(MESSAGE_STATUSES).optional(), + page: z.coerce.number().int().min(1).default(1), + pageSize: z.coerce.number().int().min(1).max(100).default(20), +}); + +export const toMessageDto = (m: ContactMessage): ContactMessageDto => ({ + id: m.id, + name: m.name, + org: m.org, + phone: m.phone, + message: m.message, + status: m.status, + createdAt: m.createdAt.toISOString(), +}); + +@Injectable() +export class ContactService { + constructor( + private readonly prisma: PrismaService, + private readonly audit: AuditService, + ) {} + + async submit(input: ContactInput, ip: string, userAgent: string) { + // honeypot filled → pretend success so bots learn nothing + if (input.website) return; + await this.prisma.contactMessage.create({ + data: { + name: input.name, + org: input.org, + phone: input.phone, + message: input.message, + ip: ip.slice(0, 64), + userAgent: userAgent.slice(0, 300), + }, + }); + } + + async list(q: z.output): Promise> { + const where = q.status ? { status: q.status } : {}; + const [items, total] = await this.prisma.$transaction([ + this.prisma.contactMessage.findMany({ + where, + orderBy: { id: "desc" }, + skip: (q.page - 1) * q.pageSize, + take: q.pageSize, + }), + this.prisma.contactMessage.count({ where }), + ]); + return { items: items.map(toMessageDto), total, page: q.page, pageSize: q.pageSize }; + } + + async setStatus(id: number, status: MessageStatus) { + return toMessageDto(await this.prisma.contactMessage.update({ where: { id }, data: { status } })); + } + + async remove(id: number, userId: number) { + const m = await this.prisma.contactMessage.delete({ where: { id } }); + this.audit.log(userId, "delete", "message", id, m.name); + } +} + +@Controller("public/contact") +export class PublicContactController { + constructor(private readonly contact: ContactService) {} + + @Post() + @HttpCode(201) + @Throttle({ default: { limit: 5, ttl: 10 * 60_000 } }) + async submit(@Body(new ZodPipe(contactInputSchema)) body: ContactInput, @Req() req: Request) { + await this.contact.submit(body, req.ip ?? "", req.headers["user-agent"] ?? ""); + return { ok: true }; + } +} + +@AdminAuth() +@Controller("admin/messages") +export class MessagesController { + constructor(private readonly contact: ContactService) {} + + @Get() + list(@Query(new ZodPipe(listQuery)) q: z.output) { + return this.contact.list(q); + } + + @Patch(":id") + update( + @Param("id", IdPipe) id: number, + @Body(new ZodPipe(messageUpdateSchema)) body: z.output, + ) { + return this.contact.setStatus(id, body.status); + } + + @Roles("ADMIN") + @Delete(":id") + @HttpCode(204) + async remove(@Param("id", IdPipe) id: number, @CurrentUser() user: AuthUser) { + await this.contact.remove(id, user.id); + } +} + +@Module({ + controllers: [PublicContactController, MessagesController], + providers: [ContactService], +}) +export class ContactModule {} diff --git a/apps/api/src/dashboard/dashboard.module.ts b/apps/api/src/dashboard/dashboard.module.ts new file mode 100644 index 0000000..fee989e --- /dev/null +++ b/apps/api/src/dashboard/dashboard.module.ts @@ -0,0 +1,109 @@ +import { Controller, Get, Module } from "@nestjs/common"; +import { type DashboardDto, SECTION_KEYS } from "@imen/shared"; +import { AdminAuth } from "../common/auth.js"; +import { toMessageDto } from "../contact/contact.module.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +const DAY_NAMES = ["یکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنج‌شنبه", "جمعه", "شنبه"]; + +@AdminAuth() +@Controller("admin/dashboard") +export class DashboardController { + constructor(private readonly prisma: PrismaService) {} + + @Get() + async get(): Promise { + const [ + categories, + products, + draftProducts, + newMessages, + readMessages, + archivedMessages, + media, + messages, + activity, + categoryRows, + sectionRows, + ] = await Promise.all([ + this.prisma.category.count(), + this.prisma.product.count(), + this.prisma.product.count({ where: { isPublished: false } }), + this.prisma.contactMessage.count({ where: { status: "NEW" } }), + this.prisma.contactMessage.count({ where: { status: "READ" } }), + this.prisma.contactMessage.count({ where: { status: "ARCHIVED" } }), + this.prisma.media.count(), + this.prisma.contactMessage.findMany({ orderBy: { id: "desc" }, take: 6 }), + this.prisma.auditLog.findMany({ + orderBy: { id: "desc" }, + take: 10, + include: { user: { select: { name: true } } }, + }), + this.prisma.category.findMany({ + select: { id: true, name: true, _count: { select: { products: true } } }, + orderBy: { products: { _count: "desc" } }, + take: 7, + }), + this.prisma.siteSection.findMany(), + ]); + + let hiddenCount = 0; + for (const s of sectionRows) { + if (s.data && typeof s.data === "object" && (s.data as Record).enabled === false) { + hiddenCount++; + } + } + + const now = new Date(); + const trend = []; + for (let i = 6; i >= 0; i--) { + const start = new Date(now.getFullYear(), now.getMonth(), now.getDate() - i, 0, 0, 0); + const end = new Date(now.getFullYear(), now.getMonth(), now.getDate() - i, 23, 59, 59, 999); + const count = await this.prisma.contactMessage.count({ + where: { createdAt: { gte: start, lte: end } }, + }); + trend.push({ + date: start.toISOString().slice(0, 10), + dayName: DAY_NAMES[start.getDay()], + messages: count, + }); + } + + return { + categories, + products, + draftProducts, + newMessages, + media, + recentMessages: messages.map(toMessageDto), + recentActivity: activity.map((a) => ({ + id: a.id, + action: a.action, + entity: a.entity, + summary: a.summary, + user: a.user?.name ?? null, + createdAt: a.createdAt.toISOString(), + })), + categoryStats: categoryRows.map((c) => ({ + id: c.id, + name: c.name, + count: c._count.products, + })), + messageBreakdown: { + new: newMessages, + read: readMessages, + archived: archivedMessages, + total: newMessages + readMessages + archivedMessages, + }, + sectionsSummary: { + total: SECTION_KEYS.length, + visible: SECTION_KEYS.length - hiddenCount, + hidden: hiddenCount, + }, + trend, + }; + } +} + +@Module({ controllers: [DashboardController] }) +export class DashboardModule {} diff --git a/apps/api/src/main.ts b/apps/api/src/main.ts new file mode 100644 index 0000000..1a740e3 --- /dev/null +++ b/apps/api/src/main.ts @@ -0,0 +1,26 @@ +import { env } from "./config/env.js"; +import { NestFactory } from "@nestjs/core"; +import type { NestExpressApplication } from "@nestjs/platform-express"; +import cookieParser from "cookie-parser"; +import helmet from "helmet"; +import { AppModule } from "./app.module.js"; + +async function bootstrap() { + const app = await NestFactory.create(AppModule); + + // behind nginx: take the client IP from X-Forwarded-For (rate limiting, contact form) + app.set("trust proxy", env.TRUST_PROXY); + app.setGlobalPrefix("api"); + app.use(helmet()); + app.use(cookieParser()); + + const origins = env.CORS_ORIGINS.split(",") + .map((o) => o.trim()) + .filter(Boolean); + if (origins.length) app.enableCors({ origin: origins, credentials: true }); + + app.enableShutdownHooks(); + await app.listen(env.PORT); +} + +await bootstrap(); diff --git a/apps/api/src/media/media.controller.ts b/apps/api/src/media/media.controller.ts new file mode 100644 index 0000000..a8a49ba --- /dev/null +++ b/apps/api/src/media/media.controller.ts @@ -0,0 +1,70 @@ +import { + Body, + Controller, + Delete, + Get, + HttpCode, + Module, + Param, + Patch, + Post, + Query, + UploadedFile, + UseInterceptors, +} from "@nestjs/common"; +import { FileInterceptor } from "@nestjs/platform-express"; +import { mediaUpdateSchema } from "@imen/shared"; +import { z } from "zod"; +import { AdminAuth, type AuthUser, CurrentUser, Roles } from "../common/auth.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import { MediaService } from "./media.service.js"; + +const listQuery = z.object({ + page: z.coerce.number().int().min(1).default(1), + pageSize: z.coerce.number().int().min(1).max(100).default(40), + q: z.string().trim().max(100).optional(), +}); + +@AdminAuth() +@Controller("admin/media") +export class MediaController { + constructor(private readonly media: MediaService) {} + + @Get() + list(@Query(new ZodPipe(listQuery)) q: z.output) { + return this.media.list(q.page, q.pageSize, q.q); + } + + @Post() + @UseInterceptors(FileInterceptor("file", { limits: { fileSize: 15 * 1024 * 1024 } })) + upload( + @UploadedFile() file: Express.Multer.File | undefined, + @Body("alt") alt: unknown, + @CurrentUser() user: AuthUser, + ) { + return this.media.upload(file, typeof alt === "string" ? alt : "", user.id); + } + + @Patch(":id") + update( + @Param("id", IdPipe) id: number, + @Body(new ZodPipe(mediaUpdateSchema)) body: z.output, + @CurrentUser() user: AuthUser, + ) { + return this.media.updateAlt(id, body.alt, user.id); + } + + @Roles("ADMIN") + @Delete(":id") + @HttpCode(204) + async remove(@Param("id", IdPipe) id: number, @CurrentUser() user: AuthUser) { + await this.media.remove(id, user.id); + } +} + +@Module({ + controllers: [MediaController], + providers: [MediaService], + exports: [MediaService], +}) +export class MediaModule {} diff --git a/apps/api/src/media/media.service.ts b/apps/api/src/media/media.service.ts new file mode 100644 index 0000000..5ad3e30 --- /dev/null +++ b/apps/api/src/media/media.service.ts @@ -0,0 +1,139 @@ +import { randomUUID } from "node:crypto"; +import { + BadRequestException, + ConflictException, + Injectable, + Logger, + NotFoundException, + type OnModuleInit, +} from "@nestjs/common"; +import type { MediaDto, Paginated } from "@imen/shared"; +import { env } from "../config/env.js"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import type { Media } from "../generated/prisma/client.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +import { ACCEPTED_IMAGE_TYPES, S3Storage, toWebp } from "./s3-storage.js"; + +@Injectable() +export class MediaService implements OnModuleInit { + private readonly logger = new Logger(MediaService.name); + readonly storage = new S3Storage(); + + constructor( + private readonly prisma: PrismaService, + private readonly audit: AuditService, + private readonly revalidate: RevalidateService, + ) {} + + async onModuleInit() { + if (!env.S3_ENSURE_BUCKET) return; + try { + await this.storage.ensureBucket(); + } catch (e) { + this.logger.error(`could not prepare bucket "${env.S3_BUCKET}": ${String(e)}`); + } + } + + url(key: string) { + return this.storage.publicUrl(key); + } + + toDto(m: Media): MediaDto { + return { + id: m.id, + url: this.url(m.key), + alt: m.alt, + mime: m.mime, + size: m.size, + width: m.width, + height: m.height, + originalName: m.originalName, + createdAt: m.createdAt.toISOString(), + }; + } + + async list(page: number, pageSize: number, q?: string): Promise> { + const where = q + ? { + OR: [ + { originalName: { contains: q, mode: "insensitive" as const } }, + { alt: { contains: q, mode: "insensitive" as const } }, + ], + } + : {}; + const [items, total] = await this.prisma.$transaction([ + this.prisma.media.findMany({ + where, + orderBy: { id: "desc" }, + skip: (page - 1) * pageSize, + take: pageSize, + }), + this.prisma.media.count({ where }), + ]); + return { items: items.map((m) => this.toDto(m)), total, page, pageSize }; + } + + async upload(file: Express.Multer.File | undefined, alt: string, userId: number) { + if (!file) throw new BadRequestException("فایلی ارسال نشده است"); + if (!ACCEPTED_IMAGE_TYPES.includes(file.mimetype)) { + throw new BadRequestException("فقط تصاویر JPG، PNG، WebP، AVIF و GIF پذیرفته می‌شوند"); + } + + let image: Awaited>; + try { + image = await toWebp(file.buffer); + } catch { + throw new BadRequestException("فایل تصویر قابل پردازش نیست"); + } + + const now = new Date(); + const month = String(now.getMonth() + 1).padStart(2, "0"); + const key = `uploads/${now.getFullYear()}/${month}/${randomUUID()}.webp`; + await this.storage.put(key, image.data, "image/webp"); + + const media = await this.prisma.media.create({ + data: { + key, + mime: "image/webp", + size: image.size, + width: image.width, + height: image.height, + alt: alt.trim().slice(0, 200), + // multer decodes the filename as latin1 + originalName: Buffer.from(file.originalname, "latin1").toString("utf8").slice(0, 200), + }, + }); + this.audit.log(userId, "upload", "media", media.id, media.originalName); + return this.toDto(media); + } + + async updateAlt(id: number, alt: string, userId: number) { + const media = await this.prisma.media.update({ where: { id }, data: { alt } }); + this.audit.log(userId, "update", "media", id, media.originalName); + this.revalidate.trigger(); + return this.toDto(media); + } + + async remove(id: number, userId: number) { + const media = await this.prisma.media.findUnique({ + where: { id }, + include: { _count: { select: { categoryCovers: true, productImages: true, productGallery: true } } }, + }); + if (!media) throw new NotFoundException("فایل پیدا نشد"); + + const { categoryCovers, productImages, productGallery } = media._count; + const sections = await this.prisma.$queryRaw<{ key: string }[]>` + SELECT key FROM "SiteSection" WHERE data::text LIKE ${"%" + media.key + "%"}`; + if (categoryCovers + productImages + productGallery + sections.length > 0) { + throw new ConflictException( + "این تصویر در محصولات، دسته‌ها یا بخش‌های سایت استفاده شده و قابل حذف نیست", + ); + } + + await this.prisma.media.delete({ where: { id } }); + await this.storage.remove(media.key).catch((e: unknown) => { + this.logger.warn(`could not delete object ${media.key}: ${String(e)}`); + }); + this.audit.log(userId, "delete", "media", id, media.originalName); + } +} diff --git a/apps/api/src/media/s3-storage.ts b/apps/api/src/media/s3-storage.ts new file mode 100644 index 0000000..2dca284 --- /dev/null +++ b/apps/api/src/media/s3-storage.ts @@ -0,0 +1,92 @@ +import { + CreateBucketCommand, + DeleteObjectCommand, + HeadBucketCommand, + PutBucketPolicyCommand, + PutObjectCommand, + S3Client, +} from "@aws-sdk/client-s3"; +import sharp from "sharp"; +import { env } from "../config/env.js"; + +/** + * Thin wrapper over any S3-compatible storage (MinIO, ArvanCloud Object Storage, AWS ...). + * Plain class (no Nest decorators) so the seed script can use it too. + */ +export class S3Storage { + private readonly client = new S3Client({ + endpoint: env.S3_ENDPOINT, + region: env.S3_REGION, + forcePathStyle: env.S3_FORCE_PATH_STYLE, + credentials: { accessKeyId: env.S3_ACCESS_KEY, secretAccessKey: env.S3_SECRET_KEY }, + }); + private readonly bucket = env.S3_BUCKET; + + publicUrl(key: string) { + return `${env.MEDIA_PUBLIC_URL}/${key}`; + } + + async put(key: string, body: Buffer, contentType: string) { + await this.client.send( + new PutObjectCommand({ + Bucket: this.bucket, + Key: key, + Body: body, + ContentType: contentType, + // keys are unique per upload, so files never change + CacheControl: "public, max-age=31536000, immutable", + }), + ); + } + + async remove(key: string) { + await this.client.send(new DeleteObjectCommand({ Bucket: this.bucket, Key: key })); + } + + /** Creates the bucket if needed and allows anonymous reads (used with MinIO) */ + async ensureBucket() { + try { + await this.client.send(new HeadBucketCommand({ Bucket: this.bucket })); + } catch { + await this.client.send(new CreateBucketCommand({ Bucket: this.bucket })); + } + try { + await this.client.send( + new PutBucketPolicyCommand({ + Bucket: this.bucket, + Policy: JSON.stringify({ + Version: "2012-10-17", + Statement: [ + { + Effect: "Allow", + Principal: { AWS: ["*"] }, + Action: ["s3:GetObject"], + Resource: [`arn:aws:s3:::${this.bucket}/*`], + }, + ], + }), + }), + ); + } catch { + // PutBucketPolicy is not supported by all S3 emulators (e.g. s3rver), ignore + } + } +} + +export const ACCEPTED_IMAGE_TYPES = [ + "image/jpeg", + "image/png", + "image/webp", + "image/avif", + "image/gif", +]; + +/** Normalizes an uploaded image: fixes EXIF rotation, caps the size and converts to WebP */ +export async function toWebp(input: Buffer) { + const { data, info } = await sharp(input) + .rotate() + .resize({ width: 2000, height: 2000, fit: "inside", withoutEnlargement: true }) + .webp({ quality: 82 }) + .toBuffer({ resolveWithObject: true }); + return { data, width: info.width, height: info.height, size: info.size }; +} diff --git a/apps/api/src/migrate.ts b/apps/api/src/migrate.ts new file mode 100644 index 0000000..4691092 --- /dev/null +++ b/apps/api/src/migrate.ts @@ -0,0 +1,91 @@ +/** + * Applies pending prisma/migrations to the database, then exits — `prisma migrate deploy` + * without the Prisma CLI, so the production image needs no dev dependencies. + * Uses Prisma's own `_prisma_migrations` table and lock, so the two stay interchangeable. + * + * node dist/migrate.js (production `migrate` container) + */ +import { createHash, randomUUID } from "node:crypto"; +import { existsSync } from "node:fs"; +import { readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import pg from "pg"; + +if (existsSync(".env")) process.loadEnvFile(".env"); + +const MIGRATIONS_DIR = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + "../prisma/migrations", +); +// same advisory lock id as Prisma's migrate commands +const LOCK_ID = 72707369; + +const client = new pg.Client({ connectionString: process.env.DATABASE_URL }); + +async function main() { + await client.query(`SELECT pg_advisory_lock(${LOCK_ID})`); + await client.query(`CREATE TABLE IF NOT EXISTS "_prisma_migrations" ( + "id" VARCHAR(36) PRIMARY KEY NOT NULL, + "checksum" VARCHAR(64) NOT NULL, + "finished_at" TIMESTAMPTZ, + "migration_name" VARCHAR(255) NOT NULL, + "logs" TEXT, + "rolled_back_at" TIMESTAMPTZ, + "started_at" TIMESTAMPTZ NOT NULL DEFAULT now(), + "applied_steps_count" INTEGER NOT NULL DEFAULT 0 + )`); + + const { rows } = await client.query<{ migration_name: string; finished_at: Date | null }>( + `SELECT migration_name, finished_at FROM "_prisma_migrations" WHERE rolled_back_at IS NULL`, + ); + const failed = rows.find((r) => !r.finished_at); + if (failed) { + throw new Error( + `migration ${failed.migration_name} failed earlier; fix the database, then mark it with ` + + `\`prisma migrate resolve\` (see its "logs" column in _prisma_migrations)`, + ); + } + const applied = new Set(rows.map((r) => r.migration_name)); + + const entries = await readdir(MIGRATIONS_DIR, { withFileTypes: true }); + const pending = entries + .filter((e) => e.isDirectory() && !applied.has(e.name)) + .map((e) => e.name) + .sort(); + + for (const name of pending) { + const script = await readFile(path.join(MIGRATIONS_DIR, name, "migration.sql"), "utf8"); + const id = randomUUID(); + await client.query( + `INSERT INTO "_prisma_migrations" (id, checksum, migration_name) VALUES ($1, $2, $3)`, + [id, createHash("sha256").update(script).digest("hex"), name], + ); + try { + // no parameters → simple query protocol: the whole file runs as one implicit transaction + await client.query(script); + } catch (e) { + await client.query(`UPDATE "_prisma_migrations" SET logs = $2 WHERE id = $1`, [ + id, + String(e), + ]); + throw new Error(`migration ${name} failed`, { cause: e }); + } + await client.query( + `UPDATE "_prisma_migrations" SET finished_at = now(), applied_steps_count = 1 WHERE id = $1`, + [id], + ); + console.log(`applied ${name}`); + } + console.log(pending.length ? `${pending.length} migration(s) applied` : "no pending migrations"); +} + +try { + await client.connect(); + await main(); +} catch (e) { + console.error(e); + process.exitCode = 1; +} finally { + await client.end(); +} diff --git a/apps/api/src/prisma/prisma.service.ts b/apps/api/src/prisma/prisma.service.ts new file mode 100644 index 0000000..9c83036 --- /dev/null +++ b/apps/api/src/prisma/prisma.service.ts @@ -0,0 +1,22 @@ +import { Global, Injectable, Module, type OnModuleDestroy } from "@nestjs/common"; +import { PrismaPg } from "@prisma/adapter-pg"; +import { env } from "../config/env.js"; +import { PrismaClient } from "../generated/prisma/client.js"; + +export const createPrismaClient = () => + new PrismaClient({ adapter: new PrismaPg({ connectionString: env.DATABASE_URL }) }); + +@Injectable() +export class PrismaService extends PrismaClient implements OnModuleDestroy { + constructor() { + super({ adapter: new PrismaPg({ connectionString: env.DATABASE_URL }) }); + } + + async onModuleDestroy() { + await this.$disconnect(); + } +} + +@Global() +@Module({ providers: [PrismaService], exports: [PrismaService] }) +export class PrismaModule {} diff --git a/apps/api/src/public/public.module.ts b/apps/api/src/public/public.module.ts new file mode 100644 index 0000000..e5cb920 --- /dev/null +++ b/apps/api/src/public/public.module.ts @@ -0,0 +1,220 @@ +import { Controller, Get, Injectable, Module, NotFoundException, Param } from "@nestjs/common"; +import type { + ProductAttribute, + PublicCategory, + PublicCategorySummary, + PublicProduct, + PublicProductDetail, + PublicProductRef, + PublicSite, +} from "@imen/shared"; +import type { Media, Product } from "../generated/prisma/client.js"; +import { MediaModule } from "../media/media.controller.js"; +import { MediaService } from "../media/media.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; +import { SectionsModule, SectionsService } from "../sections/sections.module.js"; + +/** a product is visible on the site only when it and its category are published */ +const visible = { isPublished: true, category: { isPublished: true } } as const; + +const RELATED_LIMIT = 4; + +const isAttribute = (a: unknown): a is ProductAttribute => + !!a && typeof a === "object" && typeof (a as ProductAttribute).name === "string" && typeof (a as ProductAttribute).value === "string"; + +/** Read-only data for the website. Only published categories and products are exposed. */ +@Injectable() +export class PublicService { + constructor( + private readonly prisma: PrismaService, + private readonly media: MediaService, + private readonly sections: SectionsService, + ) {} + + async site(): Promise { + const [sections, categories] = await Promise.all([this.sections.getAll(), this.categories()]); + return { sections, categories }; + } + + async categories(): Promise { + const rows = await this.prisma.category.findMany({ + where: { isPublished: true }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { + coverImage: true, + _count: { select: { products: { where: { isPublished: true } } } }, + }, + }); + return rows.map((c) => ({ + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.nameEn, + shortDesc: c.shortDesc, + icon: c.icon, + coverImage: c.coverImage && this.media.url(c.coverImage.key), + productCount: c._count.products, + })); + } + + async category(slug: string): Promise { + const c = await this.prisma.category.findFirst({ + where: { slug, isPublished: true }, + include: { + coverImage: true, + groups: { orderBy: { sortOrder: "asc" } }, + products: { + where: { isPublished: true }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { image: true, group: { select: { slug: true } } }, + }, + }, + }); + if (!c) throw new NotFoundException("دسته‌بندی یافت نشد"); + + const products = c.products.map((p) => this.toPublicProduct(p)); + // hide groups that have no published products + const usedGroups = new Set(products.map((p) => p.group)); + + return { + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.nameEn, + shortDesc: c.shortDesc, + fullDesc: c.fullDesc, + icon: c.icon, + seoTitle: c.seoTitle, + seoDescription: c.seoDescription, + coverImage: c.coverImage && this.media.url(c.coverImage.key), + productCount: products.length, + groups: c.groups + .filter((g) => usedGroups.has(g.slug)) + .map((g) => ({ slug: g.slug, name: g.name, desc: g.desc })), + products, + }; + } + + async product(slug: string): Promise { + const p = await this.prisma.product.findFirst({ + where: { slug, ...visible }, + include: { + image: true, + gallery: { orderBy: { sortOrder: "asc" }, include: { media: true } }, + group: true, + category: { include: { coverImage: true } }, + }, + }); + if (!p) throw new NotFoundException("محصول یافت نشد"); + + // main image first, then the gallery, without duplicates + const media = new Map(); + for (const m of [p.image, ...p.gallery.map((g) => g.media)]) if (m) media.set(m.id, m); + + // related: same subgroup first, then the rest of the category + const siblings = await this.prisma.product.findMany({ + where: { categoryId: p.categoryId, isPublished: true, id: { not: p.id } }, + orderBy: [{ sortOrder: "asc" }, { id: "asc" }], + include: { image: true, group: { select: { slug: true } } }, + }); + const sameGroup = (s: { groupId: number | null }) => p.groupId !== null && s.groupId === p.groupId; + const related = [...siblings.filter(sameGroup), ...siblings.filter((s) => !sameGroup(s))] + .slice(0, RELATED_LIMIT) + .map((s) => this.toPublicProduct(s)); + + return { + ...this.toPublicProduct(p), + details: p.details, + brand: p.brand, + origin: p.origin, + sizes: p.sizes, + standards: p.standards, + features: p.features, + applications: p.applications, + attributes: Array.isArray(p.attributes) ? p.attributes.filter(isAttribute) : [], + packaging: p.packaging, + minOrder: p.minOrder, + seoTitle: p.seoTitle, + seoDescription: p.seoDescription, + images: [...media.values()].map((m) => ({ + url: this.media.url(m.key), + alt: m.alt || p.name, + width: m.width, + height: m.height, + })), + groupName: p.group?.name ?? null, + category: { + slug: p.category.slug, + code: p.category.code, + name: p.category.name, + nameEn: p.category.nameEn, + fullDesc: p.category.fullDesc, + coverImage: p.category.coverImage && this.media.url(p.category.coverImage.key), + }, + related, + updatedAt: p.updatedAt.toISOString(), + }; + } + + async productRefs(): Promise { + const rows = await this.prisma.product.findMany({ + where: visible, + orderBy: [{ category: { sortOrder: "asc" } }, { sortOrder: "asc" }], + select: { slug: true, updatedAt: true }, + }); + return rows.map((r) => ({ slug: r.slug, updatedAt: r.updatedAt.toISOString() })); + } + + private toPublicProduct( + p: Product & { image: Media | null; group: { slug: string } | null }, + ): PublicProduct { + return { + code: p.code, + slug: p.slug, + name: p.name, + nameEn: p.nameEn, + desc: p.desc, + specs: p.specs, + variants: p.variants, + image: p.image && this.media.url(p.image.key), + group: p.group?.slug ?? null, + }; + } +} + +@Controller("public") +export class PublicController { + constructor(private readonly publicData: PublicService) {} + + @Get("site") + site() { + return this.publicData.site(); + } + + @Get("categories") + categories() { + return this.publicData.categories(); + } + + @Get("categories/:slug") + category(@Param("slug") slug: string) { + return this.publicData.category(slug); + } + + @Get("products") + products() { + return this.publicData.productRefs(); + } + + @Get("products/:slug") + product(@Param("slug") slug: string) { + return this.publicData.product(slug); + } +} + +@Module({ + imports: [MediaModule, SectionsModule], + controllers: [PublicController], + providers: [PublicService], +}) +export class PublicModule {} diff --git a/apps/api/src/sections/sections.module.ts b/apps/api/src/sections/sections.module.ts new file mode 100644 index 0000000..cf15778 --- /dev/null +++ b/apps/api/src/sections/sections.module.ts @@ -0,0 +1,180 @@ +import { + BadRequestException, + Body, + Controller, + ForbiddenException, + Get, + Injectable, + Module, + NotFoundException, + Param, + Patch, + Put, + ServiceUnavailableException, +} from "@nestjs/common"; +import { + isSectionKey, + SECTION_KEYS, + sectionSchemas, + type SiteSections, + toIssues, +} from "@imen/shared"; +import { AdminAuth, type AuthUser, CurrentUser } from "../common/auth.js"; +import { AuditService, RevalidateService } from "../common/common.module.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +@Injectable() +export class SectionsService { + constructor( + private readonly prisma: PrismaService, + private readonly audit: AuditService, + private readonly revalidate: RevalidateService, + ) {} + + /** All sections, parsed through their schemas so missing optional fields get defaults */ + async getAll(): Promise { + const rows = await this.prisma.siteSection.findMany(); + const byKey = new Map(rows.map((r) => [r.key, r.data])); + const missing = SECTION_KEYS.filter((k) => !byKey.has(k)); + if (missing.length) { + throw new ServiceUnavailableException( + `محتوای سایت مقداردهی نشده است (${missing.join(", ")}) — pnpm db:seed را اجرا کنید`, + ); + } + return Object.fromEntries( + SECTION_KEYS.map((k) => [k, sectionSchemas[k].parse(byKey.get(k))]), + ) as SiteSections; + } + + async get(key: string) { + if (!isSectionKey(key)) throw new NotFoundException("بخش پیدا نشد"); + const row = await this.prisma.siteSection.findUnique({ where: { key } }); + if (!row) throw new NotFoundException("بخش پیدا نشد"); + return { key, data: sectionSchemas[key].parse(row.data), updatedAt: row.updatedAt }; + } + + async update(key: string, body: unknown, user: AuthUser) { + if (!isSectionKey(key)) throw new NotFoundException("بخش پیدا نشد"); + // site-wide settings (contact info, SEO defaults) are limited to admins + if (key === "settings" && user.role !== "ADMIN") { + throw new ForbiddenException("فقط مدیر کل می‌تواند تنظیمات سایت را تغییر دهد"); + } + const parsed = sectionSchemas[key].safeParse(body); + if (!parsed.success) { + throw new BadRequestException({ + statusCode: 400, + message: "اطلاعات واردشده معتبر نیست", + issues: toIssues(parsed.error), + }); + } + const row = await this.prisma.siteSection.upsert({ + where: { key }, + create: { key, data: parsed.data, updatedById: user.id }, + update: { data: parsed.data, updatedById: user.id }, + }); + this.audit.log(user.id, "update", "section", key, key); + this.revalidate.trigger(); + return { key, data: parsed.data, updatedAt: row.updatedAt }; + } + + async listAdmin() { + const rows = await this.prisma.siteSection.findMany(); + const byKey = new Map(rows.map((r) => [r.key, r])); + return SECTION_KEYS.map((key) => { + const row = byKey.get(key); + let data: any = null; + if (row) { + const parsed = sectionSchemas[key].safeParse(row.data); + data = parsed.success ? parsed.data : row.data; + } + return { + key, + updatedAt: row?.updatedAt?.toISOString() ?? null, + enabled: + data && typeof data === "object" && "enabled" in data + ? (data.enabled as boolean) !== false + : true, + }; + }); + } + + async setVisibility(key: string, enabled: boolean, user: AuthUser) { + if (!isSectionKey(key)) throw new NotFoundException("بخش پیدا نشد"); + if (key === "settings") { + throw new BadRequestException("تنظیمات سایت قابلیت تغییر وضعیت نمایش ندارد"); + } + const row = await this.prisma.siteSection.findUnique({ where: { key } }); + if (!row) throw new NotFoundException("بخش پیدا نشد"); + + const currentData = + row.data && typeof row.data === "object" ? { ...(row.data as object) } : {}; + (currentData as Record).enabled = enabled; + + const parsed = sectionSchemas[key].safeParse(currentData); + if (!parsed.success) { + throw new BadRequestException({ + statusCode: 400, + message: "اطلاعات بخش معتبر نیست", + issues: toIssues(parsed.error), + }); + } + + const updated = await this.prisma.siteSection.update({ + where: { key }, + data: { data: parsed.data, updatedById: user.id }, + }); + + this.audit.log( + user.id, + "update", + "section", + key, + `تغییر وضعیت نمایش به ${enabled ? "نمایش" : "عدم نمایش"}`, + ); + this.revalidate.trigger(); + return { + key, + enabled: ((parsed.data as any).enabled as boolean) !== false, + updatedAt: updated.updatedAt.toISOString(), + }; + } +} + +@AdminAuth() +@Controller("admin/sections") +export class SectionsController { + constructor(private readonly sections: SectionsService) {} + + @Get() + list() { + return this.sections.listAdmin(); + } + + @Get(":key") + get(@Param("key") key: string) { + return this.sections.get(key); + } + + @Put(":key") + update(@Param("key") key: string, @Body() body: unknown, @CurrentUser() user: AuthUser) { + return this.sections.update(key, body, user); + } + + @Patch(":key/visibility") + setVisibility( + @Param("key") key: string, + @Body() body: { enabled: boolean }, + @CurrentUser() user: AuthUser, + ) { + const enabled = + body && typeof body.enabled === "boolean" ? body.enabled : Boolean(body?.enabled); + return this.sections.setVisibility(key, enabled, user); + } +} + +@Module({ + controllers: [SectionsController], + providers: [SectionsService], + exports: [SectionsService], +}) +export class SectionsModule {} diff --git a/apps/api/src/seed/create-admin.ts b/apps/api/src/seed/create-admin.ts new file mode 100644 index 0000000..855f136 --- /dev/null +++ b/apps/api/src/seed/create-admin.ts @@ -0,0 +1,46 @@ +import { normalizeIrMobile } from "@imen/shared"; +import { hashPassword } from "../auth/auth.service.js"; +import { createPrismaClient } from "../prisma/prisma.service.js"; + +const prisma = createPrismaClient(); + +async function main() { + const phone = normalizeIrMobile("09128081392"); + const password = "09128081392"; + const name = "مدیر سایت"; + const role = "ADMIN"; + + const passwordHash = await hashPassword(password); + + const existing = await prisma.adminUser.findUnique({ where: { phone } }); + if (existing) { + const updated = await prisma.adminUser.update({ + where: { id: existing.id }, + data: { + passwordHash, + name, + role, + }, + }); + console.log(`User already existed, password updated for: ${updated.phone} (ID: ${updated.id})`); + } else { + const user = await prisma.adminUser.create({ + data: { + phone, + passwordHash, + name, + role, + }, + }); + console.log(`User successfully created: ${user.phone} (ID: ${user.id}, Role: ${user.role})`); + } +} + +try { + await main(); +} catch (e) { + console.error("Error creating user:", e); + process.exitCode = 1; +} finally { + await prisma.$disconnect(); +} diff --git a/shared/data/categories.ts b/apps/api/src/seed/data/categories.ts similarity index 99% rename from shared/data/categories.ts rename to apps/api/src/seed/data/categories.ts index 49add54..9e85da1 100644 --- a/shared/data/categories.ts +++ b/apps/api/src/seed/data/categories.ts @@ -1,3 +1,8 @@ +/** + * Initial catalog, imported by the seed script. After seeding, the database (admin panel) is the + * source of truth — edits here only affect a fresh database. + * `image` paths are relative to apps/api/seed-assets ("/images/" prefix is stripped). + */ export interface Product { code: string; name: string; @@ -947,8 +952,3 @@ export const CATEGORIES: readonly Category[] = [ ], }, ] as const; - -export const findCategory = (slug: string): Category | undefined => - CATEGORIES.find((c) => c.slug === slug); - -export const categorySlugs: readonly string[] = CATEGORIES.map((c) => c.slug); diff --git a/apps/api/src/seed/data/sections.ts b/apps/api/src/seed/data/sections.ts new file mode 100644 index 0000000..a0716ce --- /dev/null +++ b/apps/api/src/seed/data/sections.ts @@ -0,0 +1,290 @@ +import type { SiteSections } from "@imen/shared"; + +/** + * Initial website content, copied from the original hard-coded components. + * Image URLs starting with "asset:" are uploaded from apps/api/seed-assets by the seed script. + */ +export const SECTIONS: SiteSections = { + settings: { + name: "ایمن پیشگامان", + nameEn: "Imen Pishgaman Safety", + title: "ایمن پیشگامان | تجهیزات ایمنی و حفاظت فردی صنعتی", + description: + "ایمن پیشگامان — تأمین‌کننده تخصصی تجهیزات حفاظت فردی (PPE)، بازرسی، آموزش و راهکارهای ایمنی صنعتی برای سازمان‌هایی که جان انسان‌ها را جدی می‌گیرند.", + phone: "+98-21-91008800", + phoneDisplay: "۰۲۱ - ۹۱ ۰۰ ۸۸ ۰۰", + email: "info@imenpishgaman.ir", + address: { + street: "خیابان کارگر شمالی، خیابان فر، کوچه دوم، پلاک ۱۲", + locality: "تهران", + country: "IR", + }, + workingHours: "شنبه تا پنجشنبه — ۸:۰۰ تا ۱۷:۰۰", + openingHours: { + days: ["Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"], + opens: "08:00", + closes: "17:00", + }, + foundingDate: "2007", + socials: [ + { type: "website", url: "/" }, + { type: "email", url: "mailto:info@imenpishgaman.ir" }, + { type: "phone", url: "tel:+982191008800" }, + ], + ogImage: { + url: "asset:hero.jpg", + alt: "کارگر صنعتی با تجهیزات ایمنی کامل", + width: 1792, + height: 1008, + }, + }, + + hero: { + enabled: true, + badge: "تأمین‌کننده رسمی تجهیزات حفاظت فردی (PPE)", + title: "ایمنی یعنی", + titleHighlight: "بازگشت به خانه", + intro: + "ایمن پیشگامان با بیش از ۱۸ سال تجربه، تأمین‌کننده تخصصی تجهیزات ایمنی و حفاظت فردی برای سازمان‌هایی است که جان انسان‌ها را جدی می‌گیرند؛ از کلاه ایمنی تا هارنس نجات، از مشاوره تا بازرسی و آموزش.", + primaryCta: { label: "درخواست مشاوره رایگان", href: "#contact" }, + secondaryCta: { label: "مشاهده محصولات", href: "#products" }, + chips: [ + { icon: "ShieldCheck", label: "ISO 9001:2015" }, + { icon: "BadgeCheck", label: "CE CERTIFIED" }, + { icon: "Award", label: "EN STANDARDS" }, + ], + miniStats: [ + { value: "۱۸+", label: "سال تجربه در صنعت ایمنی" }, + { value: "۸۵۰+", label: "سازمان تحت پوشش" }, + { value: "۹۸٪", label: "رضایت مشتریان" }, + ], + image: { url: "asset:hero.jpg", alt: "کارگر صنعتی با تجهیزات ایمنی کامل" }, + lastInspection: "۱۴۰۴/۰۸/۱۲", + }, + + tape: { + enabled: true, + items: [ + "ISO 9001:2015", + "CE CERTIFIED", + "گارانتی اصالت کالا", + "تحویل سراسری کشوری", + "مشاوره و بازرسی تخصصی رایگان", + "EN STANDARDS", + "پشتیبانی ۲۴/۷ قراردادهای سازمانی", + "تست نمونه قبل از خرید", + ], + }, + + stats: { + enabled: true, + items: [ + { end: 18, suffix: "+", label: "سال تجربه در صنعت ایمنی", note: "SINCE 2007" }, + { end: 2400, suffix: "+", label: "کد کالای ایمنی", note: "PPE CATALOG" }, + { end: 850, suffix: "+", label: "مشتری سازمانی فعال", note: "B2B CLIENTS" }, + { end: 98, suffix: "٪", label: "رضایت مشتریان", note: "SATISFACTION" }, + ], + }, + + productsIntro: { + enabled: true, + head: { + tag: "۰۱ — محصولات", + title: "خط اول دفاع،\nتجهیزات ماست", + highlight: "", + desc: "هر محصول پیش از عرضه، زیر ذره‌بین کنترل کیفیت و تطبیق با استانداردهای جهانی قرار می‌گیرد.", + }, + ctaLabel: "دریافت کاتالوگ کامل", + trust: [ + { + icon: "BadgeCheck", + title: "گارانتی اصالت کالا", + desc: "تمام محصولات با فاکتور رسمی و کد رهگیری اصالت", + }, + { + icon: "PackageCheck", + title: "تست نمونه قبل از خرید", + desc: "نمونه‌های نمایشی برای ارزیابی تیم HSE شما", + }, + { + icon: "ShieldCheck", + title: "امکان قرارداد سالانه", + desc: "قیمت ثابت و تأمین مستمر برای سازمان‌های بزرگ", + }, + ], + }, + + about: { + enabled: true, + head: { + tag: "۰۲ — درباره ما", + title: "ایمنی برای ما شعار نیست؛", + highlight: "قرارداد است.", + desc: "", + }, + body: "از سال ۱۳۸۶، زمانی که اولین کلاه ایمنی را به یک کارگاه کوچک در جنوب تهران فروختیم، باور ما همین یک جمله بود: پشت هر تجهیز ایمنی، یک خانواده هست که منتظر بازگشت عزیزش است. امروز با بیش از ۸۵۰ سازمان، از پالایشگاه‌ها تا معادن و سایت‌های ساختمانی، در کنار کسانی هستیم که ایمنی را یک خط قرمز می‌دانند.", + image: { url: "asset:about.jpg", alt: "انبار تجهیزات ایمنی ایمن پیشگامان" }, + badge: { value: "۱۸+", label: "سال حفاظت از\nجان نیروی کار" }, + timeline: [ + { year: "۱۳۸۶", text: "تأسیس ایمن پیشگامان در تهران با تمرکز بر تجهیزات حفاظت فردی" }, + { year: "۱۳۹۲", text: "توسعه شبکه توزیع به تمام ۳۱ استان کشور" }, + { year: "۱۳۹۸", text: "راه‌اندازی آزمایشگاه کنترل کیفیت و تست تجهیزات" }, + { year: "۱۴۰۲", text: "افتتاح مرکز تخصصی آموزش و بازرسی HSE" }, + ], + features: [ + { icon: "Globe", label: "نماینده رسمی ۴۰+ برند جهانی" }, + { icon: "Users", label: "تیم مهندسی و بازرسی HSE" }, + { icon: "Headset", label: "پشتیبانی ۲۴/۷ قراردادها" }, + ], + }, + + services: { + enabled: true, + head: { + tag: "۰۳ — خدمات", + title: "فراتر از تأمین؛\nهمراهی کامل ایمنی", + highlight: "", + desc: "ما در ایمن پیشگامان، تجهیزات را تحویل می‌دهیم و کنار شما می‌مانیم؛ از نخستین ارزیابی ریسک تا آخرین تست دوره‌ای.", + }, + items: [ + { + icon: "ClipboardCheck", + title: "بازرسی و ارزیابی ریسک", + desc: "تیم مهندسی ما با بازدید از سایت شما، خطرات را شناسایی، اولویت‌بندی و برای هر کدام راهکار اجرایی مشخص با برآورد هزینه ارائه می‌دهد.", + items: [ + "ارزیابی HAZOP و HAZID", + "شناسایی و اولویت‌بندی خطرات", + "گزارش مدیریتی با راهکار اجرایی", + ], + }, + { + icon: "GraduationCap", + title: "آموزش تخصصی ایمنی", + desc: "از دوره‌های عمومی تا تربیت مربی؛ آموزش‌های عملی و میدانی که ایمنی را از دفتر کلان‌ها به رفتار روزمره پرسنل تبدیل می‌کند.", + items: [ + "دوره‌های عمومی و تخصصی HSE", + "تربیت مربی ایمنی سایت", + "مانور و شبیه‌سازی شرایط اضطراری", + ], + }, + { + icon: "Gauge", + title: "تست و کالیبراسیون تجهیزات", + desc: "تجهیزات ایمنی فقط وقتی قابل اعتمادند که تست شده باشند. تست دوره‌ای، سرویس و صدور گواهی معتبر را به تیم تخصصی ما بسپارید.", + items: [ + "تست هارنس و لاین نجات", + "کالیبراسیون آشکارسازهای گاز", + "سرویس دوره‌ای و صدور گواهی", + ], + }, + { + icon: "Truck", + title: "تأمین و لجستیک سازمانی", + desc: "با قرارداد سالانه، قیمت‌گذاری شفاف و انبار محلی در سایت شما، نگرانی کمبود تجهیزات را از فهرست دغدغه‌هایتان حذف کنید.", + items: [ + "قرارداد سالانه با قیمت ثابت", + "انبار محلی در سایت شما", + "تحویل سراسری در ۴۸ ساعت", + ], + }, + ], + }, + + standards: { + enabled: true, + head: { + tag: "۰۴ — استانداردها", + title: "مهرتأیید جهانی\nروی هر محصول", + highlight: "", + desc: "ما فقط تجهیزاتی را عرضه می‌کنیم که تأییدیه معتبر بین‌المللی و تست آزمایشگاهی داشته باشند؛ بدون استثنا.", + }, + note: "شماره سریال تمام محصولات در پایگاه داده استانداردهای اروپا قابل استعلام است و گواهی تست هر بچ تحویل مشتری می‌شود.", + ctaLabel: "درخواست گواهی تست محصولات", + items: [ + { code: "EN 397", label: "کلاه ایمنی صنعتی" }, + { code: "EN 388", label: "دستکش‌های مکانیکی" }, + { code: "EN 166", label: "محافظ چشم و صورت" }, + { code: "EN 361", label: "هارنس ضدسقوط" }, + { code: "ISO 20345", label: "کفش ایمنی" }, + { code: "ISO 9001", label: "سیستم مدیریت کیفیت" }, + ], + }, + + industries: { + enabled: true, + head: { + tag: "۰۵ — صنایع", + title: "حضور در سخت‌ترین\nمیدان‌های کاری", + highlight: "", + desc: "جایی که دمای محیط از ۵۰ درجه گذر می‌کند یا ارتفاع کار به ده‌ها متر می‌رسد، تجهیزات ما باید بی‌نقص عمل کنند — و عمل می‌کنند.", + }, + items: [ + { name: "نفت و گاز", nameEn: "OIL & GAS", count: "۱۴۰+", image: { url: "asset:industries/oil-gas.jpg", alt: "نفت و گاز" } }, + { name: "ساختمان و عمران", nameEn: "CONSTRUCTION", count: "۲۱۰+", image: { url: "asset:industries/construction.jpg", alt: "ساختمان و عمران" } }, + { name: "پتروشیمی", nameEn: "PETROCHEMICAL", count: "۹۰+", image: { url: "asset:industries/petrochemical.jpg", alt: "پتروشیمی" } }, + { name: "صنایع معدنی", nameEn: "MINING", count: "۷۵+", image: { url: "asset:industries/mining.jpg", alt: "صنایع معدنی" } }, + { name: "برق و انرژی", nameEn: "POWER & ENERGY", count: "۶۰+", image: { url: "asset:industries/power-energy.jpg", alt: "برق و انرژی" } }, + { name: "حمل‌ونقل و لجستیک", nameEn: "TRANSPORT", count: "۴۵+", image: { url: "asset:industries/transport.jpg", alt: "حمل‌ونقل و لجستیک" } }, + ], + }, + + testimonials: { + enabled: true, + head: { tag: "۰۶ — اعتماد", title: "آنچه مشتریان ما می‌گویند", highlight: "", desc: "" }, + items: [ + { + text: "ایمن پیشگامان فقط تأمین‌کننده نیست؛ شریک ایمنی ماست. بازرسی‌های دوره‌ای و آموزش‌های میدانی‌شان نرخ حوادث سایت را به کمترین رقم تاریخ مجموعه رساند.", + name: "مهندس رضا کاظمی", + role: "مدیر HSE — مجتمع پتروشیمی خلیج فارس", + }, + { + text: "کیفیت تجهیزات و سرعت پاسخ‌گویی در سطحی بود که قرارداد سالانه را بدون هیچ تردیدی تمدید کردیم؛ از خط تولید تا دفتر مرکزی.", + name: "سارا محمدی", + role: "سرپرست تدارکات — هلدینگ ساختمانی آرکان", + }, + { + text: "۱۴۰ کیلومتر دورتر از سایت، در عرض ۲۴ ساعت تجهیزات حیاتی را تحویل گرفتیم. به این می‌گویند شریک واقعی کاری.", + name: "امیرحسین راد", + role: "مدیر پروژه — صنایع معدنی کاوه", + }, + ], + }, + + contact: { + enabled: true, + head: { + tag: "۰۷ — تماس", + title: "بیایید ایمنی را\nبا هم جدی بگیریم", + highlight: "", + desc: "فرم را پر کنید تا کارشناسان ما برای هماهنگی جلسه بازدید رایگان سایت شما تماس بگیرند؛ یا مستقیم با ما در ارتباط باشید.", + }, + emergencyTitle: "پاسخ‌گویی اضطراری ۲۴/۷", + emergencyText: + "برای مشتریان دارای قرارداد سازمانی، خط ویژه حوادث و تأمین فوری تجهیزات در تمام ساعات شبانه‌روز فعال است.", + formTag: "// فرم درخواست مشاوره", + formTitle: "در کمتر از ۲۴ ساعت\nبا شما تماس می‌گیریم", + successTitle: "درخواست شما ثبت شد", + successText: "کارشناسان ما تا ۲۴ ساعت آینده برای هماهنگی جلسه بازدید با شما تماس می‌گیرند.", + }, + + footer: { + enabled: true, + about: + "تأمین‌کننده تخصصی تجهیزات حفاظت فردی و راهکارهای ایمنی صنعتی؛ همراه سازمان‌ها از سال ۱۳۸۶ در مسیر صفر شدن حوادث کاری.", + copyright: "© ۱۴۰۴ ایمن پیشگامان — تمامی حقوق محفوظ است.", + certLine: "ISO 9001:2015 — CE CERTIFIED PPE SUPPLIER", + emergencyNote: "پشتیبانی اضطراری: ۲۴/۷", + }, +}; + +/** Cover image of each category (was CATEGORY_IMAGES in the components) */ +export const CATEGORY_COVERS: Record = { + workwear: "products/vest.jpg", + "safety-footwear": "products/shoes.jpg", + "protective-gloves": "products/gloves.jpg", + "safety-helmets": "products/helmet.jpg", + "eye-protection": "products/goggles.jpg", + "hearing-protection": "products/hearing.jpg", + "respiratory-protection": "products/respiratory.jpg", + "traffic-equipment": "products/traffic.jpg", +}; diff --git a/apps/api/src/seed/seed.ts b/apps/api/src/seed/seed.ts new file mode 100644 index 0000000..1d03020 --- /dev/null +++ b/apps/api/src/seed/seed.ts @@ -0,0 +1,288 @@ +/** + * Fills an empty database with the original website content. + * Safe to re-run: existing categories, products, sections and users are left untouched. + * + * pnpm db:seed (dev, via tsx) + * node dist/seed/seed.js (production container) + * SEED_OVERWRITE_SECTIONS=1 ... (reset website sections to the initial content) + */ +import { env } from "../config/env.js"; +import { mkdir, readFile, writeFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { normalizeIrMobile, SECTION_KEYS, sectionSchemas } from "@imen/shared"; +import { hashPassword } from "../auth/auth.service.js"; +import { S3Storage, toWebp } from "../media/s3-storage.js"; +import { createPrismaClient } from "../prisma/prisma.service.js"; +import { CATEGORIES } from "./data/categories.js"; +import { CATEGORY_COVERS, SECTIONS } from "./data/sections.js"; + +const ASSETS_DIR = + process.env.SEED_ASSETS_DIR ?? + path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../seed-assets"); +const OVERWRITE_SECTIONS = ["1", "true"].includes(process.env.SEED_OVERWRITE_SECTIONS ?? ""); + +const prisma = createPrismaClient(); +const storage = new S3Storage(); +const uploaded = new Map(); + +/** Uploads a file from seed-assets once (as WebP) and returns its media record */ +async function asset(rel: string, alt = "") { + const cached = uploaded.get(rel); + if (cached) return cached; + + const key = `seed/${rel.replace(/\.[^.]+$/, "")}.webp`; + let media = await prisma.media.findUnique({ where: { key } }); + if (!media) { + const image = await toWebp(await readFile(path.join(ASSETS_DIR, rel))); + try { + await storage.put(key, image.data, "image/webp"); + } catch { + try { + const targetPath = path.resolve(ASSETS_DIR, "../../.s3data/imen-media", key); + await mkdir(path.dirname(targetPath), { recursive: true }); + await writeFile(targetPath, image.data); + } catch {} + } + media = await prisma.media.create({ + data: { + key, + mime: "image/webp", + size: image.size, + width: image.width, + height: image.height, + alt, + originalName: path.basename(rel), + }, + }); + } + const result = { id: media.id, url: storage.publicUrl(key) }; + uploaded.set(rel, result); + return result; +} + +/** Replaces every { url: "asset:" } inside section data with the uploaded file URL */ +async function resolveAssets(value: unknown): Promise { + if (Array.isArray(value)) return Promise.all(value.map(resolveAssets)); + if (value && typeof value === "object") { + const entries = await Promise.all( + Object.entries(value).map(async ([k, v]) => { + if (k === "url" && typeof v === "string" && v.startsWith("asset:")) { + return [k, (await asset(v.slice("asset:".length))).url]; + } + return [k, await resolveAssets(v)]; + }), + ); + return Object.fromEntries(entries); + } + return value; +} + +async function seedSections() { + for (const key of SECTION_KEYS) { + const exists = await prisma.siteSection.findUnique({ where: { key } }); + if (exists && !OVERWRITE_SECTIONS) continue; + const data = sectionSchemas[key].parse(await resolveAssets(SECTIONS[key])); + await prisma.siteSection.upsert({ where: { key }, create: { key, data }, update: { data } }); + console.log(` section ${key}`); + } +} + +async function seedCatalog() { + for (const [ci, c] of CATEGORIES.entries()) { + if (await prisma.category.findUnique({ where: { slug: c.slug } })) continue; + + const coverPath = CATEGORY_COVERS[c.slug]; + const cover = coverPath ? await asset(coverPath, c.name) : null; + const category = await prisma.category.create({ + data: { + slug: c.slug, + code: c.code, + name: c.name, + nameEn: c.en, + shortDesc: c.shortDesc, + fullDesc: c.fullDesc, + icon: c.icon, + coverImageId: cover?.id ?? null, + sortOrder: ci, + groups: { + create: (c.groups ?? []).map((g, i) => ({ + slug: g.slug, + name: g.name, + desc: g.desc, + sortOrder: i, + })), + }, + }, + include: { groups: true }, + }); + const groupIds = new Map(category.groups.map((g) => [g.slug, g.id])); + + for (const [pi, p] of c.products.entries()) { + const image = p.image ? await asset(p.image.replace(/^\/images\//, ""), p.name) : null; + await prisma.product.create({ + data: { + categoryId: category.id, + groupId: p.group ? (groupIds.get(p.group) ?? null) : null, + code: p.code, + slug: p.code.toLowerCase(), + name: p.name, + nameEn: p.en, + desc: p.desc, + specs: [...p.specs], + variants: [...(p.variants ?? [])], + imageId: image?.id ?? null, + sortOrder: pi, + }, + }); + } + console.log(` category ${c.slug} (${c.products.length} products)`); + } +} + +async function seedAdmin() { + if (!env.ADMIN_PHONE || !env.ADMIN_PASSWORD) { + console.log(" ADMIN_PHONE / ADMIN_PASSWORD not set — skipping admin user"); + return; + } + const phone = normalizeIrMobile(env.ADMIN_PHONE); + if (!/^09\d{9}$/.test(phone)) { + console.log(` ADMIN_PHONE invalid (${env.ADMIN_PHONE}) — skipping admin user`); + return; + } + const existing = await prisma.adminUser.findUnique({ where: { phone } }); + if (existing) return; + + // After email→phone migration, upgrade the first admin whose phone still looks like an email + const legacy = await prisma.adminUser.findFirst({ + where: { role: "ADMIN", phone: { contains: "@" } }, + orderBy: { id: "asc" }, + }); + if (legacy) { + await prisma.adminUser.update({ + where: { id: legacy.id }, + data: { phone, name: env.ADMIN_NAME, passwordHash: await hashPassword(env.ADMIN_PASSWORD) }, + }); + console.log(` admin user migrated to ${phone}`); + return; + } + + await prisma.adminUser.create({ + data: { + phone, + name: env.ADMIN_NAME, + role: "ADMIN", + passwordHash: await hashPassword(env.ADMIN_PASSWORD), + }, + }); + console.log(` admin user ${phone}`); +} + +async function seedMessages() { + const count = await prisma.contactMessage.count(); + if (count > 0) return; + const samples = [ + { + name: "مهندس رضا کاظمی", + org: "مجتمع پتروشیمی خلیج فارس", + phone: "09121112233", + message: "درخواست پیش‌فاکتور ۵۰۰ عدد هارنس ایمنی دو قلاب و کلاه ایمنی استاندارد EN 397 برای فاز ۲ پتروشیمی.", + status: "NEW" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 35), + }, + { + name: "سارا محمدی", + org: "هلدینگ ساختمانی آرکان", + phone: "09122223344", + message: "استعلام قیمت و هماهنگی جلسه بازدید جهت عقد قرارداد سالانه تأمین تجهیزات حفاظت فردی ۱۲ پروژه فعال.", + status: "NEW" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 120), + }, + { + name: "امیرحسین راد", + org: "صنایع معدنی کاوه", + phone: "09123334455", + message: "درخواست تأمین فوری ۲۰۰ جفت دستکش ایمنی ضدبرش و کفش ایمنی ضداسید و پنجه کامپوزیت برای سایت یزد.", + status: "READ" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 8), + }, + { + name: "مهندس علیرضا بهرامی", + org: "شرکت نفت و گاز پارس", + phone: "09124445566", + message: "تقاضای ارسال کاتالوگ و نمونه عینک ایمنی استاندارد EN 166 و محافظ گوش ایرماف جهت آزمایش واحد HSE.", + status: "NEW" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 24), + }, + { + name: "مریم رضایی", + org: "داروسازی رازک", + phone: "09125556677", + message: "درخواست مشاوره تخصصی در رابطه با ماسک‌های فیلتردار ذرات شیمیایی و لباس‌های یکبار مصرف آزمایشگاهی.", + status: "READ" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 36), + }, + { + name: "مهندس مهدی یوسفی", + org: "فولاد مبارکه اصفهان", + phone: "09126667788", + message: "درخواست برگزاری جلسه فنی برای تمدید قرارداد تأمین لباس کار نسوز، شیلد محافظ صورت و پابند نسوز.", + status: "ARCHIVED" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 72), + }, + { + name: "پیمان نادری", + org: "خطوط لوله و مخابرات نفت", + phone: "09127778899", + message: "استعلام موجودی تجهیزات نجات در فضاهای بسته، سه‌پایه نجات (Tripod) و وینچ همراه با گواهی کالیبراسیون.", + status: "NEW" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 96), + }, + { + name: "دکتر مجید اسدی", + org: "سیمان تهران", + phone: "09128889900", + message: "درخواست برگزاری دوره آموزشی کار در ارتفاع برای پرسنل پیمانکار و بازرسی دوره‌ای خطوط حیات (Lifeline).", + status: "READ" as const, + createdAt: new Date(Date.now() - 1000 * 60 * 60 * 120), + }, + ]; + + for (const msg of samples) { + await prisma.contactMessage.create({ data: msg }); + } + console.log(` seeded ${samples.length} sample contact messages`); +} + +async function main() { + if (env.S3_ENSURE_BUCKET) { + try { + await storage.ensureBucket(); + } catch { + console.log(" ensureBucket skipped"); + } + } + console.log("seeding sections…"); + await seedSections(); + console.log("seeding catalog…"); + await seedCatalog(); + console.log("seeding admin…"); + await seedAdmin(); + console.log("seeding messages…"); + await seedMessages(); + const [categories, products, media] = await Promise.all([ + prisma.category.count(), + prisma.product.count(), + prisma.media.count(), + ]); + console.log(`done: ${categories} categories, ${products} products, ${media} media files`); +} + +try { + await main(); +} catch (e) { + console.error(e); + process.exitCode = 1; +} finally { + await prisma.$disconnect(); +} diff --git a/apps/api/src/users/users.controller.ts b/apps/api/src/users/users.controller.ts new file mode 100644 index 0000000..76d476a --- /dev/null +++ b/apps/api/src/users/users.controller.ts @@ -0,0 +1,118 @@ +import { + BadRequestException, + Body, + Controller, + Delete, + Get, + HttpCode, + Injectable, + Module, + Param, + Post, + Put, +} from "@nestjs/common"; +import { + type UserCreateInput, + userCreateSchema, + type UserUpdateInput, + userUpdateSchema, +} from "@imen/shared"; +import { AdminAuth, type AuthUser, CurrentUser } from "../common/auth.js"; +import { AuditService } from "../common/common.module.js"; +import { IdPipe, ZodPipe } from "../common/zod.pipe.js"; +import { AuthModule } from "../auth/auth.controller.js"; +import { AuthService, hashPassword, toUserDto } from "../auth/auth.service.js"; +import { PrismaService } from "../prisma/prisma.service.js"; + +@Injectable() +export class UsersService { + constructor( + private readonly prisma: PrismaService, + private readonly auth: AuthService, + private readonly audit: AuditService, + ) {} + + async list() { + const users = await this.prisma.adminUser.findMany({ orderBy: { id: "asc" } }); + return users.map(toUserDto); + } + + async create(input: UserCreateInput, actor: AuthUser) { + const user = await this.prisma.adminUser.create({ + data: { + phone: input.phone, + name: input.name, + role: input.role, + passwordHash: await hashPassword(input.password), + }, + }); + this.audit.log(actor.id, "create", "user", user.id, user.phone); + return toUserDto(user); + } + + async update(id: number, input: UserUpdateInput, actor: AuthUser) { + if (id === actor.id && (input.role !== "ADMIN" || !input.isActive)) { + throw new BadRequestException("نمی‌توانید نقش یا وضعیت حساب خودتان را تغییر دهید"); + } + const user = await this.prisma.adminUser.update({ + where: { id }, + data: { + name: input.name, + role: input.role, + isActive: input.isActive, + ...(input.password ? { passwordHash: await hashPassword(input.password) } : {}), + }, + }); + // a password reset or deactivation ends the user's existing sessions + if (input.password || !input.isActive) await this.auth.revokeAll(id); + this.audit.log(actor.id, "update", "user", id, user.phone); + return toUserDto(user); + } + + async remove(id: number, actor: AuthUser) { + if (id === actor.id) throw new BadRequestException("نمی‌توانید حساب خودتان را حذف کنید"); + const user = await this.prisma.adminUser.delete({ where: { id } }); + this.audit.log(actor.id, "delete", "user", id, user.phone); + } +} + +@AdminAuth("ADMIN") +@Controller("admin/users") +export class UsersController { + constructor(private readonly users: UsersService) {} + + @Get() + list() { + return this.users.list(); + } + + @Post() + create( + @Body(new ZodPipe(userCreateSchema)) body: UserCreateInput, + @CurrentUser() actor: AuthUser, + ) { + return this.users.create(body, actor); + } + + @Put(":id") + update( + @Param("id", IdPipe) id: number, + @Body(new ZodPipe(userUpdateSchema)) body: UserUpdateInput, + @CurrentUser() actor: AuthUser, + ) { + return this.users.update(id, body, actor); + } + + @Delete(":id") + @HttpCode(204) + async remove(@Param("id", IdPipe) id: number, @CurrentUser() actor: AuthUser) { + await this.users.remove(id, actor); + } +} + +@Module({ + imports: [AuthModule], + controllers: [UsersController], + providers: [UsersService], +}) +export class UsersModule {} diff --git a/apps/api/test/api.e2e-spec.ts b/apps/api/test/api.e2e-spec.ts new file mode 100644 index 0000000..734edaa --- /dev/null +++ b/apps/api/test/api.e2e-spec.ts @@ -0,0 +1,169 @@ +import { randomBytes } from "node:crypto"; +import type { INestApplication } from "@nestjs/common"; +import { Test } from "@nestjs/testing"; +import { SECTION_KEYS } from "@imen/shared"; +import cookieParser from "cookie-parser"; +import request from "supertest"; +import { AppModule } from "../src/app.module.js"; +import { hashPassword } from "../src/auth/auth.service.js"; +import { PrismaService } from "../src/prisma/prisma.service.js"; + +/** + * Runs against the development database (seeded). Every record it creates is removed afterwards; + * it uses its own temporary users so real sessions are never touched. + */ +describe("API (e2e)", () => { + let app: INestApplication; + let prisma: PrismaService; + const suffix = String(randomBytes(4).readUInt32BE(0) % 10_000_000).padStart(7, "0"); + const admin = { phone: `0912${suffix}`, password: "e2e-Password-1" }; + const editor = { phone: `0935${suffix}`, password: "e2e-Password-2" }; + + const http = () => request(app.getHttpServer()); + const login = async (u: { phone: string; password: string }) => { + const res = await http().post("/api/admin/auth/login").send(u).expect(200); + return { token: res.body.accessToken as string, cookie: res.headers["set-cookie"] as unknown as string[] }; + }; + + beforeAll(async () => { + const moduleRef = await Test.createTestingModule({ imports: [AppModule] }).compile(); + app = moduleRef.createNestApplication(); + app.setGlobalPrefix("api"); + app.use(cookieParser()); + await app.init(); + + prisma = app.get(PrismaService); + await prisma.adminUser.createMany({ + data: [ + { phone: admin.phone, name: "e2e admin", role: "ADMIN", passwordHash: await hashPassword(admin.password) }, + { phone: editor.phone, name: "e2e editor", role: "EDITOR", passwordHash: await hashPassword(editor.password) }, + ], + }); + }); + + afterAll(async () => { + await prisma.adminUser.deleteMany({ where: { phone: { in: [admin.phone, editor.phone] } } }); + await app.close(); + }); + + describe("public", () => { + it("reports health", () => http().get("/api/health").expect(200, { ok: true })); + + it("returns every site section and the published categories", async () => { + const res = await http().get("/api/public/site").expect(200); + expect(Object.keys(res.body.sections).sort()).toEqual([...SECTION_KEYS].sort()); + expect(res.body.categories.length).toBeGreaterThan(0); + }); + + it("returns a category with its products, 404 for unknown slugs", async () => { + const { body: site } = await http().get("/api/public/site"); + const slug = site.categories[0].slug; + const res = await http().get(`/api/public/categories/${slug}`).expect(200); + expect(res.body.products.length).toBe(site.categories[0].productCount); + await http().get("/api/public/categories/no-such-category").expect(404); + }); + + it("returns a product page with related products, 404 for unknown slugs", async () => { + const { body: refs } = await http().get("/api/public/products").expect(200); + expect(refs.length).toBeGreaterThan(0); + const res = await http().get(`/api/public/products/${refs[0].slug}`).expect(200); + expect(res.body.category.slug).toBeTruthy(); + expect(Array.isArray(res.body.attributes)).toBe(true); + expect(res.body.related.length).toBeLessThanOrEqual(4); + expect(res.body.related.some((r: { slug: string }) => r.slug === refs[0].slug)).toBe(false); + await http().get("/api/public/products/no-such-product").expect(404); + }); + + it("validates the contact form", async () => { + const res = await http().post("/api/public/contact").send({ name: "", org: "x", phone: "abc" }).expect(400); + expect(res.body.issues.map((i: { path: string }) => i.path).sort()).toEqual(["name", "phone"]); + }); + + it("silently drops honeypot submissions", async () => { + const before = await prisma.contactMessage.count(); + await http() + .post("/api/public/contact") + .send({ name: "bot", org: "bot", phone: "0912 000 0000", website: "http://spam" }) + .expect(201); + expect(await prisma.contactMessage.count()).toBe(before); + }); + }); + + describe("auth", () => { + it("rejects admin routes without a token and wrong passwords", async () => { + await http().get("/api/admin/dashboard").expect(401); + await http().post("/api/admin/auth/login").send({ phone: admin.phone, password: "wrong-password" }).expect(401); + }); + + it("sets an httpOnly refresh cookie and rotates it", async () => { + const { token, cookie } = await login(admin); + expect(cookie.join(";")).toMatch(/imen_rt=.*HttpOnly/i); + await http().get("/api/admin/auth/me").set("authorization", `Bearer ${token}`).expect(200); + + const refreshed = await http().post("/api/admin/auth/refresh").set("Cookie", cookie).expect(200); + expect(refreshed.body.accessToken).toBeTruthy(); + + // replaying the old (rotated) cookie is treated as theft: all sessions end + await http().post("/api/admin/auth/refresh").set("Cookie", cookie).expect(401); + const newCookie = refreshed.headers["set-cookie"] as unknown as string[]; + await http().post("/api/admin/auth/refresh").set("Cookie", newCookie).expect(401); + }); + }); + + describe("roles", () => { + it("limits users and site settings to admins", async () => { + const { token } = await login(editor); + const auth = { authorization: `Bearer ${token}` }; + await http().get("/api/admin/users").set(auth).expect(403); + + const settings = await http().get("/api/admin/sections/settings").set(auth).expect(200); + await http().put("/api/admin/sections/settings").set(auth).send(settings.body.data).expect(403); + await http().get("/api/admin/dashboard").set(auth).expect(200); + }); + }); + + describe("catalog", () => { + it("creates, validates, hides and deletes a product", async () => { + const { token } = await login(admin); + const auth = { authorization: `Bearer ${token}` }; + const [category] = (await http().get("/api/admin/categories").set(auth)).body; + const code = `E2E-${suffix}`; + + const invalid = await http() + .post("/api/admin/products") + .set(auth) + .send({ categoryId: category.id, code: "", slug: "Not A Slug", name: "" }) + .expect(400); + expect(invalid.body.issues.length).toBeGreaterThanOrEqual(3); + + const created = await http() + .post("/api/admin/products") + .set(auth) + .send({ categoryId: category.id, code, slug: code.toLowerCase(), name: "محصول آزمایشی" }) + .expect(201); + + const duplicate = await http() + .post("/api/admin/products") + .set(auth) + .send({ categoryId: category.id, code, slug: `${code.toLowerCase()}-b`, name: "x" }) + .expect(409); + expect(duplicate.body.message).toContain("کد"); + + const published = await http().get(`/api/public/categories/${category.slug}`); + expect(published.body.products.some((p: { code: string }) => p.code === code)).toBe(true); + + await http().patch(`/api/admin/products/${created.body.id}/publish`).set(auth).send({ isPublished: false }).expect(200); + const hidden = await http().get(`/api/public/categories/${category.slug}`); + expect(hidden.body.products.some((p: { code: string }) => p.code === code)).toBe(false); + + await http().delete(`/api/admin/products/${created.body.id}`).set(auth).expect(204); + }); + + it("refuses to delete a category that still has products", async () => { + const { token } = await login(admin); + const auth = { authorization: `Bearer ${token}` }; + const [category] = (await http().get("/api/admin/categories").set(auth)).body; + await http().delete(`/api/admin/categories/${category.id}`).set(auth).expect(409); + }); + }); +}); diff --git a/apps/api/tsconfig.build.json b/apps/api/tsconfig.build.json new file mode 100644 index 0000000..a1a025a --- /dev/null +++ b/apps/api/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "types": ["node", "multer"] + }, + "include": ["src"], + "exclude": ["node_modules", "test", "dist", "**/*.spec.ts"] +} diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json new file mode 100644 index 0000000..ce3665a --- /dev/null +++ b/apps/api/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "nodenext", + "moduleResolution": "nodenext", + "resolvePackageJsonExports": true, + "esModuleInterop": true, + "isolatedModules": true, + "declaration": false, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2023", + "sourceMap": true, + "outDir": "./dist", + "rootDir": ".", + "incremental": true, + "skipLibCheck": true, + "strict": true, + "strictPropertyInitialization": false, + "types": ["node", "multer", "vitest/globals"] + }, + "include": ["src", "test", "prisma", "prisma.config.ts", "vitest.config.e2e.ts"] +} diff --git a/apps/api/vitest.config.e2e.ts b/apps/api/vitest.config.e2e.ts new file mode 100644 index 0000000..f380a79 --- /dev/null +++ b/apps/api/vitest.config.e2e.ts @@ -0,0 +1,13 @@ +import { defineConfig } from "vitest/config"; + +// e2e tests boot the real AppModule against the database in apps/api/.env +export default defineConfig({ + test: { + globals: true, + root: "./", + include: ["test/**/*.e2e-spec.ts"], + testTimeout: 30_000, + hookTimeout: 60_000, + fileParallelism: false, + }, +}); diff --git a/apps/web/.env.example b/apps/web/.env.example new file mode 100644 index 0000000..ddafe50 --- /dev/null +++ b/apps/web/.env.example @@ -0,0 +1,3 @@ +NUXT_API_INTERNAL_URL=http://localhost:4000/api +NUXT_REVALIDATE_SECRET=change-me-revalidate-secret +NUXT_PUBLIC_SITE_URL=https://imenpishgaman.ir diff --git a/apps/web/.output/nitro.json b/apps/web/.output/nitro.json new file mode 100644 index 0000000..21e75aa --- /dev/null +++ b/apps/web/.output/nitro.json @@ -0,0 +1,15 @@ +{ + "date": "2026-10-24T11:47:36.129Z", + "preset": "node-server", + "framework": { + "name": "nuxt", + "version": "4.6.2" + }, + "versions": { + "nitro": "2.13.5" + }, + "commands": { + "preview": "node server/index.mjs" + }, + "config": {} +} \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/BHOIQrRl.js b/apps/web/.output/public/_nuxt/BHOIQrRl.js new file mode 100644 index 0000000..279bde4 --- /dev/null +++ b/apps/web/.output/public/_nuxt/BHOIQrRl.js @@ -0,0 +1,9 @@ +import{$t as e,Gn as t,In as n,Ln as r,On as i,Qt as a,Un as o,Xn as s,cr as c,hn as l,pn as u,qn as d,ur as f,xn as p,zn as m}from"./D6Ym2dQP.js";import{_ as h,a as g,c as _,d as v,f as y,g as b,h as x,l as S,m as C,o as w,p as T,u as E,v as D}from"./Dd1GE-gU.js";var O=new Set,k=({timestamp:e})=>{O.forEach(t=>t.tick(e))},A=class extends v{constructor(e){super(),this.state=`idle`,this.startTime=0,this.currentTime=0,this.started=!1,this.hasNextTarget=!1,this.nextTarget=0,this.stop=()=>{this.state!==`idle`&&(this.teardown(),this.options.onStop?.())},this.options=e,this.factory=e.type,this.generator=this.factory(e);let{driver:t}=e;t&&(this.driver=t(e=>this.tick(e))),this.startTime=this.now(),this.state=`running`,this.driver?this.driver.start():(O.size||h.update(k,!0),O.add(this))}setTarget(e,t){this.nextTarget=e,this.nextVelocity=t,this.hasNextTarget=!0}retarget(e,t){let{options:n,generator:r}=this;n.keyframes=e,n.velocity=t,this.startTime=this.now(),this.currentTime=0,r.retarget?r.retarget(e,t):this.generator=this.factory(n)}tick(e){let{options:t,hasNextTarget:n}=this,{delay:r=0,onUpdate:i,onPlay:a}=t;this.started||(this.startTime=y(this.startTime,e));let o=Math.round(e-this.startTime)-r,s=this.currentTime=Math.max(0,o),c=this.generator.next(s),l=o<0?t.keyframes[0]:c.value;if(n){this.hasNextTarget=!1;let{keyframes:e}=t;e[0]=l,e[1]=this.nextTarget,this.retarget(e,this.nextVelocity??this.getGeneratorVelocity())}(n||!this.started)&&(this.started=!0,a?.()),this.state===`running`&&(i?.(l),c.done&&o>=0&&!n&&!this.hasNextTarget&&this.state===`running`&&(this.notifyFinished(),this.teardown(),this.state=`finished`,t.onComplete?.()))}getGeneratorVelocity(){return C(this.generator,this.currentTime,this.options.velocity)}now(){return this.driver?this.driver.now():D.now()}teardown(){this.state=`idle`,this.driver?this.driver.stop():(O.delete(this),O.size||b(k))}};function j(e,t,n){let r=e.get(),i=null,a,o=typeof r==`string`?r.replace(/[\d.-]/g,``):void 0,s=e=>a(o?e+o:e),c=()=>e.events.animationStart?.notify(),l=()=>{i&&=(i.stop(),null),e.animation=void 0};if(e.attach((t,r)=>{a=r;let o=_(t);if(i?.state===`running`){i.setTarget(o,n.velocity);return}let u=_(e.get()),d=i?i.getGeneratorVelocity():e.getVelocity();if(l(),u===o)return;let f=i=new A({keyframes:[u,o],velocity:d,restDelta:.001,restSpeed:.01,...n,onUpdate:s,onPlay:c});e.animation=f,f.then(()=>{i===f&&(i=null,e.animation=void 0,e.events.animationComplete?.notify())})},l),S(t)){let r=n.skipInitialAnimation===!0,i=t=>{r?(r=!1,e.jump(M(t,o),!1)):e.set(M(t,o))},a=t.on(`change`,i),s=t.get();_(s)-_(e.get())&&i(s);let c=e.on(`destroy`,a);return()=>{a(),c(),l()}}return l}function M(e,t){return t?e+t:e}function N(e,t,n={}){let r={type:`spring`,...n};return T(r),r.type=r.type||x,j(e,t,r)}var P=0;function F(e){let t=new Map;function n(t){if(e.props.mode!==`popLayout`)return;let n=t.el,r=n.offsetParent,i=r instanceof HTMLElement&&r.offsetWidth||0,a={height:n.offsetHeight||0,width:n.offsetWidth||0,top:n.offsetTop,left:n.offsetLeft,right:0};a.right=i-a.width-a.left;let o=e.props.anchorX===`left`?`left: ${a.left}px`:`right: ${a.right}px`,s=`pop-${P++}`;n.dataset.motionPopId=s;let c=n.ownerDocument,l=c.createElement(`style`),u=e.getNonce();u&&(l.nonce=u),t.popStyle=l,c.head.appendChild(l),l.sheet&&l.sheet.insertRule(` + [data-motion-pop-id="${s}"] { + position: absolute !important; + width: ${a.width}px !important; + height: ${a.height}px !important; + top: ${a.top}px !important; + ${o} !important; + } + `)}function r(e){let t=e.popStyle;t&&(e.popStyle=void 0,h.render(()=>{t.parentNode?.removeChild(t)}))}function i(e,r,i,a=[]){let s={el:e,states:r,handlers:a,done:i,aborted:!1};t.set(e,s),n(s);let c=r.map(e=>e.getFeature(`exit`)?.exit()??Promise.resolve());for(let e of a)c.push(Promise.resolve(e.onExit()));Promise.all(c).then(()=>{s.aborted||o(s)})}function a(e){let n=t.get(e);n&&(n.aborted=!0,t.delete(e),r(n),n.handlers.forEach(e=>e.onEnter?.()))}function o(n){t.delete(n.el),r(n),n.states.forEach(e=>{e.getSnapshot(!1)}),n.done(),n.el.isConnected||n.states.forEach(e=>{e.unmount()}),e.onAllComplete()}function s(){t.forEach(e=>{e.states.forEach(e=>{e.unmount()})}),t.clear()}return{track:i,abort:a,dispose:s}}function I(e){let t=w(),i=F({props:e,getNonce:()=>t.value.nonce,onAllComplete:()=>e.onExitComplete?.()}),a=new Set,o=new Set,s=!1;g({get initial(){return s?void 0:e.initial},get custom(){return e.custom},register:e=>a.add(e),unregister:e=>a.delete(e),registerHandler:e=>o.add(e),unregisterHandler:e=>o.delete(e)}),n(()=>{s=!0});function c(e){let t=[];for(let n of a){let r=n.element;r&&(r===e||e.contains(r))&&t.push(n)}return t}function l(e){let t=[];for(let n of o){let r=n.element();r&&(r===e||e.contains(r))&&t.push(n)}return t}function u(e,t){i.abort(e),c(e).forEach(e=>{e.getFeature(`exit`)?.reenter()}),t()}function d(t,n){let r=t,a=c(r),o=l(r);a.length===0&&o.length===0?(n(),e.onExitComplete?.()):i.track(r,a,n,o)}return r(()=>{i.dispose()}),{enter:u,exit:d}}var L=p({name:`AnimatePresence`,inheritAttrs:!0,__name:`AnimatePresence`,props:{mode:{default:`sync`},initial:{type:Boolean,default:!0},as:{},custom:{},onExitComplete:{},anchorX:{default:`left`}},setup(n){let r=n,{enter:c,exit:d}=I(r),p=u(()=>r.mode===`wait`?{mode:r.mode===`wait`?`out-in`:void 0}:{tag:r.as});return(r,u)=>(m(),l(t(n.mode===`wait`?a:e),i(p.value,{appear:``,css:!1,onLeave:f(d),onEnter:f(c)}),{default:s(()=>[o(r.$slots,`default`)]),_:3},16,[`onLeave`,`onEnter`]))}});function R(e,t={}){let n=E(S(e)?e.get():e);return d(()=>c(t),(r,i,a)=>{let o=N(n,e,{type:`spring`,...c(t)});a(()=>{o?.()})},{immediate:!0}),n}var z=globalThis.setInterval;export{R as n,L as r,z as t}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/D0e0LUpa.js b/apps/web/.output/public/_nuxt/D0e0LUpa.js new file mode 100644 index 0000000..a1f4cce --- /dev/null +++ b/apps/web/.output/public/_nuxt/D0e0LUpa.js @@ -0,0 +1 @@ +import{Ht as e,cr as t,hn as n,lt as r,pn as i,qn as a,t as o,ur as s,xn as c,zn as l}from"./D6Ym2dQP.js";var u=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var d=Object.prototype.toString,f=e=>d.call(e)===`[object Object]`;function p(e){return Array.isArray(e)?e:[e]}function m(e,t,n){return a(e,t,{...n,immediate:!0})}var h=u?window:void 0;u&&window.document,u&&window.navigator,u&&window.location;function g(e){let n=t(e);return n?.$el??n}function _(...e){let n=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),r=i(()=>{let n=p(t(e[0])).filter(e=>e!=null);return n.every(e=>typeof e!=`string`)?n:void 0});return m(()=>[r.value?.map(e=>g(e))??[h].filter(e=>e!=null),p(t(r.value?e[1]:e[0])),p(s(r.value?e[2]:e[1])),t(r.value?e[3]:e[2])],([e,t,r,i],a,o)=>{if(!e?.length||!t?.length||!r?.length)return;let s=f(i)?{...i}:i,c=e.flatMap(e=>t.flatMap(t=>r.map(r=>n(e,t,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var v=Object.assign(c({__name:`DynamicIcon`,props:{name:{},size:{}},setup(e){return(t,r)=>(l(),n(o,{name:e.name,size:e.size},null,8,[`name`,`size`]))}}),{__name:`UiDynamicIcon`}),y=()=>({name:``,org:``,phone:``,message:``,website:``}),b=r(`contact`,{state:()=>({form:y(),status:`idle`,error:``}),actions:{async submit(){this.status=`loading`,this.error=``;try{await e().$api(`/public/contact`,{method:`POST`,body:this.form}),this.status=`success`}catch(e){let t=e;this.error=t.statusCode===429?`تعداد درخواست‌ها زیاد است؛ لطفاً چند دقیقه بعد دوباره تلاش کنید.`:t.data?.message??`ارسال درخواست انجام نشد؛ لطفاً دوباره تلاش کنید یا تماس بگیرید.`,this.status=`error`}},prefill(e){this.status===`success`&&this.reset(),this.form.message=e},reset(){this.form=y(),this.status=`idle`,this.error=``}}});export{_ as i,v as n,g as r,b as t}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/D6Ym2dQP.js b/apps/web/.output/public/_nuxt/D6Ym2dQP.js new file mode 100644 index 0000000..9041a02 --- /dev/null +++ b/apps/web/.output/public/_nuxt/D6Ym2dQP.js @@ -0,0 +1,6207 @@ +var e=Error.captureStackTrace,t=class t extends Error{name;code;docs;fix;sources;data;get why(){return this.message}constructor(n,r=t){super(n.why,{cause:n.cause}),this.code=this.name=n.code,this.fix=n.fix,this.docs=n.docs,this.sources=n.sources,this.data=n.data,e?.(this,r)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,data:this.data,stack:this.stack}}};function n(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function r(e={}){let{docsBase:r,reporters:i=[]}=e;return new Proxy({},{get(e,a){if(typeof a!=`string`)return;let o=(e={},s={})=>{let c=n(r,a),l=new t({code:a,why:c??``,docs:c,cause:e.cause,sources:e.sources},o);for(let e of i)e(l,s);return l};return o}})}function i(e){return`https://nuxt.com/docs/4.x/errors/${e.replace(`NUXT_`,``).toLowerCase()}`}var a=[e=>{console.error(`[${e.name}]`)}],o=r({docsBase:i,reporters:a}),s=globalThis.__nuxt_app_ctx__||={};function c(e){return s[e]||=(()=>{let e;return{use:()=>{if(e===void 0)throw Error(`Context is not available`);return e},tryUse:()=>e??null,set:t=>{e=t},unset:()=>{e=void 0},call:(t,n)=>(e=t,n()),callAsync:(t,n)=>(e=t,Promise.resolve(n()))}})()}function l(e,t){return c(e)}function u(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var d={},f=[],p=()=>{},m=()=>!1,h=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),g=e=>e.startsWith(`onUpdate:`),_=Object.assign,v=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},y=Object.prototype.hasOwnProperty,b=(e,t)=>y.call(e,t),x=Array.isArray,S=e=>ie(e)===`[object Map]`,C=e=>ie(e)===`[object Set]`,ee=e=>ie(e)===`[object Date]`,te=e=>ie(e)===`[object RegExp]`,w=e=>typeof e==`function`,T=e=>typeof e==`string`,E=e=>typeof e==`symbol`,D=e=>typeof e==`object`&&!!e,ne=e=>(D(e)||w(e))&&w(e.then)&&w(e.catch),re=Object.prototype.toString,ie=e=>re.call(e),ae=e=>ie(e).slice(8,-1),oe=e=>ie(e)===`[object Object]`,O=e=>T(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,se=u(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ce=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},le=/-\w/g,ue=ce(e=>e.replace(le,e=>e.slice(1).toUpperCase())),de=/\B([A-Z])/g,fe=ce(e=>e.replace(de,`-$1`).toLowerCase()),pe=ce(e=>e.charAt(0).toUpperCase()+e.slice(1)),me=ce(e=>e?`on${pe(e)}`:``),he=(e,t)=>!Object.is(e,t),ge=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ve=e=>{let t=parseFloat(e);return isNaN(t)?e:t},ye=e=>{let t=T(e)?Number(e):NaN;return isNaN(t)?e:t},be,xe=()=>be||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function Se(e){if(x(e)){let t={};for(let n=0;ne.startsWith(`/*`)?``:e).split(Ce).forEach(e=>{if(e){let n=e.split(we);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function De(e){let t=``;if(T(e))t=e;else if(x(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Le=e=>T(e)?e:e==null?``:x(e)||D(e)&&(e.toString===re||!w(e.toString))?Ie(e)?Le(e.value):JSON.stringify(e,Re,2):String(e),Re=(e,t)=>Ie(t)?Re(e,t.value):S(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[ze(t,r)+` =>`]=n,e),{})}:C(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>ze(e))}:E(t)?ze(t):D(t)&&!x(t)&&!oe(t)?String(t):t,ze=(e,t=``)=>E(e)?`Symbol(${e.description??t})`:e,k,Be=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&k&&(k.active?(this.parent=k,this.index=(k.scopes||(k.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e0&&--this._on===0){if(k===this)k=this.prevScope;else{let e=k;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(Je){let e=Je;for(Je=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;qe;){let t=qe;for(qe=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Qe(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function $e(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),nt(r),rt(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function et(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(tt(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function tt(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===lt)||(e.globalVersion=lt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!et(e))))return;e.flags|=2;let t=e.dep,n=A,r=it;A=e,it=!0;try{Qe(e);let n=e.fn(e._value);(t.version===0||he(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{A=n,it=r,$e(e),e.flags&=-3}}function nt(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)nt(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function rt(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var it=!0,at=[];function ot(){at.push(it),it=!1}function st(){let e=at.pop();it=e===void 0||e}function ct(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=A;A=void 0;try{t()}finally{A=e}}}var lt=0,ut=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},dt=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!A||!it||A===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==A)t=this.activeLink=new ut(A,this),A.deps?(t.prevDep=A.depsTail,A.depsTail.nextDep=t,A.depsTail=t):A.deps=A.depsTail=t,ft(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=A.depsTail,t.nextDep=void 0,A.depsTail.nextDep=t,A.depsTail=t,A.deps===t&&(A.deps=e)}return t}trigger(e){this.version++,lt++,this.notify(e)}notify(e){Xe();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Ze()}}};function ft(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)ft(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var pt=new WeakMap,mt=Symbol(``),ht=Symbol(``),gt=Symbol(``);function _t(e,t,n){if(it&&A){let t=pt.get(e);t||pt.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new dt),r.map=t,r.key=n),r.track()}}function vt(e,t,n,r,i,a){let o=pt.get(e);if(!o){lt++;return}let s=e=>{e&&e.trigger()};if(Xe(),t===`clear`)o.forEach(s);else{let i=x(e),a=i&&O(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===gt||!E(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(gt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(mt)),S(e)&&s(o.get(ht)));break;case`delete`:i||(s(o.get(mt)),S(e)&&s(o.get(ht)));break;case`set`:S(e)&&s(o.get(mt))}}Ze()}function yt(e,t){let n=pt.get(e);return n&&n.get(t)}function bt(e){let t=j(e);return t===e||(_t(t,`iterate`,gt),sn(e))?t:on(e)?an(e)?t.map(e=>dn(un(e))):t.map(dn):t.map(un)}function xt(e){return _t(e=j(e),`iterate`,gt),e}function St(e,t){return on(e)?dn(an(e)?un(t):t):un(t)}var Ct={__proto__:null,[Symbol.iterator](){return wt(this,Symbol.iterator,e=>St(this,e))},concat(...e){return bt(this).concat(...e.map(e=>x(e)?bt(e):e))},entries(){return wt(this,`entries`,e=>(e[1]=St(this,e[1]),e))},every(e,t){return Dt(this,`every`,e,t,void 0,arguments)},filter(e,t){return Dt(this,`filter`,e,t,e=>e.map(e=>St(this,e)),arguments)},find(e,t){return Dt(this,`find`,e,t,e=>St(this,e),arguments)},findIndex(e,t){return Dt(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return Dt(this,`findLast`,e,t,e=>St(this,e),arguments)},findLastIndex(e,t){return Dt(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return Dt(this,`forEach`,e,t,void 0,arguments)},includes(...e){return kt(this,`includes`,e)},indexOf(...e){return kt(this,`indexOf`,e)},join(e){return bt(this).join(e)},lastIndexOf(...e){return kt(this,`lastIndexOf`,e)},map(e,t){return Dt(this,`map`,e,t,void 0,arguments)},pop(){return At(this,`pop`)},push(...e){return At(this,`push`,e)},reduce(e,...t){return Ot(this,`reduce`,e,t)},reduceRight(e,...t){return Ot(this,`reduceRight`,e,t)},shift(){return At(this,`shift`)},some(e,t){return Dt(this,`some`,e,t,void 0,arguments)},splice(...e){return At(this,`splice`,e)},toReversed(){return bt(this).toReversed()},toSorted(e){return bt(this).toSorted(e)},toSpliced(...e){return bt(this).toSpliced(...e)},unshift(...e){return At(this,`unshift`,e)},values(){return wt(this,`values`,e=>St(this,e))}};function wt(e,t,n){let r=xt(e),i=r[t],a=i.call(r);if(r!==e&&!sn(e)){if(a[Symbol.toStringTag]===`Array Iterator`){let e=Object.create(Object.getPrototypeOf(a));return e.next=()=>Tt(a.next(),n),i!==Et[t]&&Object.defineProperties(e,{return:{get(){let e=a.return;return typeof e==`function`?e.bind(a):e}},throw:{get(){let e=a.throw;return typeof e==`function`?e.bind(a):e}}}),e}a._next=a.next,a.next=()=>Tt(a._next(),n)}return a}function Tt(e,t){return e.done||(e.value=t(e.value)),e}var Et=Array.prototype;function Dt(e,t,n,r,i,a){let o=xt(e),s=o!==e&&!sn(e),c=o[t];if(c!==Et[t]){let t=c.apply(e,a);return s?un(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,St(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function Ot(e,t,n,r){let i=xt(e),a=i!==e&&!sn(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=St(e,t)),n.call(this,t,St(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?St(e,c):c}function kt(e,t,n){let r=j(e);_t(r,`iterate`,gt);let i=r[t](...n);return(i===-1||i===!1)&&cn(n[0])?(n[0]=j(n[0]),r[t](...n)):i}function At(e,t,n=[]){ot(),Xe();let r=j(e)[t].apply(e,n);return Ze(),st(),r}var jt=u(`__proto__,__v_isRef,__isVue`),Mt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(E));function Nt(e){E(e)||(e=String(e));let t=j(this);return _t(t,`has`,e),t.hasOwnProperty(e)}var Pt=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Qt:Zt:i?Xt:Yt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=x(e);if(!r){let e;if(a&&(e=Ct[t]))return e;if(t===`hasOwnProperty`)return Nt}let o=Reflect.get(e,t,M(e)?e:n);if((E(t)?Mt.has(t):jt(t))||(r||_t(e,`get`,t),i))return o;if(M(o)){let e=a&&O(t)?o:o.value;return r&&D(e)?nn(e):e}return D(o)?r?nn(o):en(o):o}},Ft=class extends Pt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=x(e)&&O(t);if(!this._isShallow){let e=on(i);if(!sn(n)&&!on(n)&&(i=j(i),n=j(n)),!a&&M(i)&&!M(n))return e||(i.value=n),!0}let o=a?Number(t)e,Vt=e=>Reflect.getPrototypeOf(e);function Ht(e,t,n){return function(...r){let i=this.__v_raw,a=j(i),o=S(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,l=i[e](...r),u=n?Bt:t?dn:un;return!t&&_t(a,`iterate`,c?ht:mt),_(Object.create(l),{next(){let{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}}})}}function Ut(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Wt(e,t){let n={get(n){let r=this.__v_raw,i=j(r),a=j(n);e||(he(n,a)&&_t(i,`get`,n),_t(i,`get`,a));let{has:o}=Vt(i),s=t?Bt:e?dn:un;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&_t(j(t),`iterate`,mt),t.size},has(t){let n=this.__v_raw,r=j(n),i=j(t);return e||(he(t,i)&&_t(r,`has`,t),_t(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=j(a),s=t?Bt:e?dn:un;return!e&&_t(o,`iterate`,mt),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return _(n,e?{add:Ut(`add`),set:Ut(`set`),delete:Ut(`delete`),clear:Ut(`clear`)}:{add(e){let n=j(this),r=Vt(n),i=j(e),a=!t&&!sn(e)&&!on(e)?i:e;return r.has.call(n,a)||he(e,a)&&r.has.call(n,e)||he(i,a)&&r.has.call(n,i)||(n.add(a),vt(n,`add`,a,a)),this},set(e,n){!t&&!sn(n)&&!on(n)&&(n=j(n));let r=j(this),{has:i,get:a}=Vt(r),o=i.call(r,e);o||=(e=j(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?he(n,s)&&vt(r,`set`,e,n,s):vt(r,`add`,e,n),this},delete(e){let t=j(this),{has:n,get:r}=Vt(t),i=n.call(t,e);i||=(e=j(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&vt(t,`delete`,e,void 0,a),o},clear(){let e=j(this),t=e.size!==0,n=e.clear();return t&&vt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Ht(r,e,t)}),n}function Gt(e,t){let n=Wt(e,t);return(r,i,a)=>i===`__v_isReactive`?!e:i===`__v_isReadonly`?e:i===`__v_isShallow`?t:i===`__v_raw`?r:Reflect.get(b(n,i)&&i in r?n:r,i,a)}var Kt={get:Gt(!1,!1)},qt={get:Gt(!1,!0)},Jt={get:Gt(!0,!1)},Yt=new WeakMap,Xt=new WeakMap,Zt=new WeakMap,Qt=new WeakMap;function $t(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function en(e){return on(e)?e:rn(e,!1,Lt,Kt,Yt)}function tn(e){return rn(e,!1,zt,qt,Xt)}function nn(e){return rn(e,!0,Rt,Jt,Zt)}function rn(e,t,n,r,i){if(!D(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=$t(ae(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function an(e){return on(e)?an(e.__v_raw):!!(e&&e.__v_isReactive)}function on(e){return!!(e&&e.__v_isReadonly)}function sn(e){return!!(e&&e.__v_isShallow)}function cn(e){return e?!!e.__v_raw:!1}function j(e){let t=e&&e.__v_raw;return t?j(t):e}function ln(e){return!b(e,`__v_skip`)&&Object.isExtensible(e)&&_e(e,`__v_skip`,!0),e}var un=e=>D(e)?en(e):e,dn=e=>D(e)?nn(e):e;function M(e){return e?e.__v_isRef===!0:!1}function fn(e){return mn(e,!1)}function pn(e){return mn(e,!0)}function mn(e,t){return M(e)?e:new hn(e,t)}var hn=class{constructor(e,t){this.dep=new dt,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:j(e),this._value=t?e:un(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||sn(e)||on(e);e=n?e:j(e),he(e,t)&&(this._rawValue=e,this._value=n?e:un(e),this.dep.trigger())}};function gn(e){e.dep&&e.dep.trigger()}function N(e){return M(e)?e.value:e}function _n(e){return w(e)?e():N(e)}var vn={get:(e,t,n)=>t===`__v_raw`?e:N(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return M(i)&&!M(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function yn(e){return an(e)?e:new Proxy(e,vn)}function bn(e){let t=x(e)?Array(e.length):{};for(let n in e)t[n]=wn(e,n);return t}var xn=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=E(t)?t:String(t),this._raw=j(e);let r=!0,i=e;if(!x(e)||E(this._key)||!O(this._key))do r=!cn(i)||sn(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=N(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&M(this._raw[this._key])){let t=this._object[this._key];if(M(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return yt(this._raw,this._key)}},Sn=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function Cn(e,t,n){return M(e)?e:w(e)?new Sn(e):D(e)&&arguments.length>1?wn(e,t,n):fn(e)}function wn(e,t,n){return new xn(e,t,n)}var Tn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new dt(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=lt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&A!==this)return Ye(this,!0),!0}get value(){let e=this.dep.track();return tt(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function En(e,t,n=!1){let r,i;return w(e)?r=e:(r=e.get,i=e.set),new Tn(r,i,n)}var Dn={},On=new WeakMap,kn=void 0;function An(e,t=!1,n=kn){if(n){let t=On.get(n);t||On.set(n,t=[]),t.push(e)}}function jn(e,t,n=d){let{immediate:r,deep:i,once:a,scheduler:o,augmentJob:s,call:c}=n,l=e=>i?e:sn(e)||i===!1||i===0?Mn(e,1):Mn(e),u,f,m,h,g=!1,_=!1;if(M(e)?(f=()=>e.value,g=sn(e)):an(e)?(f=()=>l(e),g=!0):x(e)?(_=!0,g=e.some(e=>an(e)||sn(e)),f=()=>e.map(e=>{if(M(e))return e.value;if(an(e))return l(e);if(w(e))return c?c(e,2):e()})):f=w(e)?t?c?()=>c(e,2):e:()=>{if(m){ot();try{m()}finally{st()}}let t=kn;kn=u;try{return c?c(e,3,[h]):e(h)}finally{kn=t}}:p,t&&i){let e=f,t=i===!0?1/0:i;f=()=>Mn(e(),t)}let y=He(),b=()=>{u.stop(),y&&y.active&&v(y.effects,u)};if(a&&t){let e=t;t=(...t)=>{try{return e(...t)}finally{b()}}}let S=_?Array(e.length).fill(Dn):Dn,C=e=>{if(u.flags&1&&(u.dirty||e)){if(t){let n=u.run();if(e||i||g||(_?n.some((e,t)=>he(e,S[t])):he(n,S))){let e=kn;ot();try{m&&m(),kn=u;let e=[n,S===Dn?void 0:_&&S[0]===Dn?[]:S,h];S=n,c?c(t,3,e):t(...e)}finally{kn=e,st()}}}else u.run()}};return s&&s(C),u=new Ge(f),u.scheduler=o?()=>o(C,!1):C,h=e=>An(e,!1,u),m=u.onStop=()=>{let e=On.get(u);if(e){if(c)c(e,4);else for(let t of e)t();On.delete(u)}},t?r?C(!0):S=u.run():o?o(C.bind(null,!0),!0):u.run(),b.pause=u.pause.bind(u),b.resume=u.resume.bind(u),b.stop=b,b}function Mn(e,t=1/0,n){if(t<=0||!D(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,M(e))Mn(e.value,t,n);else if(x(e))for(let r=0;r{Mn(e,t,n)});else if(oe(e)){for(let r in e)Mn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Mn(e[r],t,n)}return e}function Nn(e,t,n,r){try{return r?e(...r):e()}catch(e){Fn(e,t,n)}}function Pn(e,t,n,r){if(w(e)){let i=Nn(e,t,n,r);return i&&ne(i)&&i.catch(e=>{Fn(e,t,n)}),i}if(x(e)){let i=[];for(let a=0;a>>1,i=Ln[r],a=$n(i);a=$n(n)?Ln.push(e):Ln.splice(Gn(t),0,e),e.flags|=1,qn()}}function qn(){Un||=Hn.then(er)}function Jn(e){if(!x(e))Bn&&e.id===-1?Bn.splice(Vn+1,0,e):e.flags&1||(zn.push(e),e.flags|=1);else for(let t=0;t=t))continue;Ln.splice(r,1),r=e?r-1:Rn,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Xn(e,t,n=0){if(zn.length){let e=zn,r=0;if(t){e=[];for(let i=0;i$n(e)-$n(t));if(zn.length=r,Bn){for(let e=0;ee.id==null?e.flags&2?-1:1/0:e.id;function er(e){try{for(Rn=0;Rn{r._d&&jo(-1);let i=nr(t),a=Eo.length,o;try{o=e(...n)}finally{for(let e=Eo.length;e>a;e--)ko();nr(i),r._d&&jo(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function ir(e,t){if(P===null)return e;let n=ps(P),r=e.dirs||=[];for(let e=0;e1)return n&&w(t)?t.call(r&&r.proxy):t}}function cr(){return!!(es()||xa)}var lr=Symbol.for(`v-scx`),ur=()=>sr(lr);function dr(e,t){return pr(e,null,t)}function fr(e,t,n){return pr(e,t,n)}function pr(e,t,n=d){let{immediate:r,deep:i,flush:a,once:o}=n,s=_({},n),c=t&&r||!t&&a!==`post`,l;if(os){if(a===`sync`){let e=ur();l=e.__watcherHandles||=[]}else if(!c){let e=()=>{};return e.stop=p,e.resume=p,e.pause=p,e}}let u=z;s.call=(e,t,n)=>Pn(e,u,t,n);let f=!1;a===`post`?s.scheduler=e=>{e.i=u,F(e,u&&u.suspense)}:a!==`sync`&&(f=!0,s.scheduler=(e,t)=>{t?e():Kn(e)}),s.augmentJob=e=>{t&&(e.flags|=4),f&&(e.flags|=2,u&&(e.id=u.uid,e.i=u))};let m=jn(e,t,s);return os&&(l?l.push(m):c&&m()),m}function mr(e,t,n){let r=this.proxy,i=T(e)?e.includes(`.`)?hr(r,e):()=>r[e]:e.bind(r,r),a;w(t)?a=t:(a=t.handler,n=t);let o=rs(this),s=pr(i,a.bind(r),n);return o(),s}function hr(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,yr=e=>e&&(e.disabled||e.disabled===``),br=e=>e&&(e.defer||e.defer===``),xr=e=>typeof SVGElement<`u`&&e instanceof SVGElement,Sr=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,Cr=(e,t)=>{let n=e&&e.to;return T(n)?t?t(n):null:n},wr={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=yr(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=yr(e.props),r=e.target=Cr(e.props,m),a=kr(r,e,h,p);r&&(o!==`svg`&&xr(r)?o=`svg`:o!==`mathml`&&Sr(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),Or(e,!1)))},S=e=>{let t=()=>{if(gr.get(e)===t){if(gr.delete(e),yr(e.props)){let t=_(e.el)||n;b(e,t,e.anchor),Or(e,!0)}x(e)}};gr.set(e,t),F(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),br(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),Or(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=gr.get(e);if(u){u.flags|=8,gr.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=yr(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||xr(p)?o=`svg`:(o===`mathml`||Sr(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),ao(e,t,!0)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Tr(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=Cr(t.props,m);e&&(t.target=e,Tr(t,e,null,l,0))}else g&&Tr(t,p,h,l,1);Or(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=yr(f),m=a||!p,h=gr.get(e);if(h&&(h.flags|=8,gr.delete(e)),d&&(i(l),i(u)),a&&i(c),!h&&(p||d)&&o&16)for(let e=0;e{e.isMounted=!0}),Mi(()=>{e.isUnmounting=!0}),e}var Nr=[Function,Array],Pr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Nr,onEnter:Nr,onAfterEnter:Nr,onEnterCancelled:Nr,onBeforeLeave:Nr,onLeave:Nr,onAfterLeave:Nr,onLeaveCancelled:Nr,onBeforeAppear:Nr,onAppear:Nr,onAfterAppear:Nr,onAppearCancelled:Nr},Fr={name:`BaseTransition`,props:Pr,setup(e,{slots:t}){let n=es(),r=Mr();return()=>{let i=t.default&&Ur(t.default(),!0),a=i&&i.length?Ir(i):n.subTree?Wo():void 0;if(!a)return;let o=j(e),{mode:s}=o;if(r.isLeaving)return Br(a);let c=Vr(a);if(!c)return Br(a);let l=zr(c,o,r,n,e=>l=e);c.type!==L&&Hr(c,l);let u=n.subTree&&Vr(n.subTree);if(u&&u.type!==L&&!Io(u,c)&&Wr(n.subTree)){let e=zr(u,o,r,n);if(Hr(u,e),s===`out-in`&&c.type!==L)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},Br(a);s===`in-out`&&c.type!==L?e.delayLeave=(e,t,n)=>{let i=Rr(r,u);i[String(u.key)]=u,e[Ar]=()=>{t(),e[Ar]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function Ir(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==L){t=n;break}}return t}var Lr=Fr;function Rr(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function zr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:_,onAfterAppear:v,onAppearCancelled:y}=t,b=String(e.key),S=Rr(n,e),C=(e,t)=>{e&&Pn(e,r,9,t)},ee=(e,t)=>{let n=t[1];C(e,t),x(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},te={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted){if(a)r=g||c;else return}t[Ar]&&t[Ar](!0);let i=S[b];if(i&&Io(e,i)){let e=i.el[Ar];if(!e){let t=Wr(i);e=t&&t.el[Ar]}e&&e()}C(r,[t])},enter(t){if(S[b]===e)return;let r=l,i=u,o=d;if(!n.isMounted){if(a)r=_||l,i=v||u,o=y||d;else return}let s=!1;t[jr]=e=>{s||(s=!0,C(e?o:i,[t]),te.delayedLeave&&te.delayedLeave(),t[jr]=void 0)};let c=t[jr].bind(null,!1);r?ee(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[jr]&&t[jr](!0),n.isUnmounting)return r();C(f,[t]);let a=!1;t[Ar]=n=>{a||(a=!0,r(),C(n?h:m,[t]),t[Ar]=void 0,S[i]===e&&delete S[i])};let o=t[Ar].bind(null,!1);S[i]=e,p?ee(p,[t,o]):o()},clone(e){let a=zr(e,t,n,r,i);return i&&i(a),a}};return te}function Br(e){if(_i(e))return e=Ho(e),e.children=null,e}function Vr(e){if(!_i(e))return vr(e.type)&&e.children?Ir(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&w(n.default))return n.default()}}function Hr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;Hr(vr(n.type)&&Vr(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===I&&x(e.children)){let n=Oa(e.children,!1);n&&Hr(n,t)}}function Ur(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;eYr(e,t&&(x(t)?t[a]:t),n,r,i));return}if(mi(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Yr(e,t,n,r.component.subTree);return}let a=r.shapeFlag&4?ps(r.component):r.el,o=i?null:a,{i:s,r:c}=e,l=t&&t.r,u=s.refs===d?s.refs={}:s.refs,f=s.setupState,p=j(f),h=f===d?m:e=>!qr(u,e)&&b(p,e),g=(e,t)=>!(t&&qr(u,t));if(l!=null&&l!==c){if(Xr(t),T(l))u[l]=null,h(l)&&(f[l]=null);else if(M(l)){let e=t;g(l,e.k)&&(l.value=null),e.k&&(u[e.k]=null)}}if(w(c))Nn(c,s,12,[o,u]);else{let t=T(c),r=M(c);if(t||r){let s=()=>{if(e.f){let n=t?h(c)?f[c]:u[c]:g(c)||!e.k?c.value:u[e.k];if(i)x(n)&&v(n,a);else if(x(n))n.includes(a)||n.push(a);else if(t)u[c]=[a],h(c)&&(f[c]=u[c]);else{let t=[a];g(c,e.k)&&(c.value=t),e.k&&(u[e.k]=t)}}else t?(u[c]=o,h(c)&&(f[c]=o)):r&&(g(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o))};if(o){let t=()=>{s(),Jr.delete(e)};t.id=-1,Jr.set(e,t),F(t,n)}else Xr(e),s()}}}function Xr(e){let t=Jr.get(e);t&&(t.flags|=8,Jr.delete(e))}var Zr=!1,Qr=()=>{Zr||=(console.error(`Hydration completed but contains mismatches.`),!0)},$r=e=>e.namespaceURI.includes(`svg`)&&e.tagName!==`foreignObject`,ei=e=>e.namespaceURI.includes(`MathML`),ti=e=>{if(e.nodeType===1){if($r(e))return`svg`;if(ei(e))return`mathml`}},ni=e=>e.nodeType===8;function ri(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:a,parentNode:o,remove:s,insert:c,createComment:l}}=e,u=(e,t)=>{t.hasChildNodes()?(d(t.firstChild,e,null,null,null),Xn(),t._vnode=e):(n(null,e,t),Xn(),t._vnode=e)},d=(n,r,s,l,u,h=!1)=>{h||=!!r.dynamicChildren;let b=ni(n)&&n.data===`[`,x=()=>g(n,r,s,l,u,b),{type:S,ref:C,shapeFlag:ee,patchFlag:te}=r,w=n.nodeType;r.el=n,te===-2&&(h=!1,r.dynamicChildren=null);let T=null;switch(S){case wo:w===3?(n.data!==r.children&&(Qr(),n.data=r.children),T=a(n)):r.children===``?(c(r.el=i(``),o(n),n),T=n):T=x();break;case L:y(n)?(T=a(n),v(r.el=n.content.firstChild,n,s)):T=w!==8||b?x():a(n);break;case To:if(b&&(n=a(n),w=n.nodeType),w===1||w===3){T=n;let e=!r.children.length;for(let t=0;t{o||=!!t.dynamicChildren;let{type:c,dynamicProps:l,props:u,patchFlag:d,shapeFlag:f,dirs:m,transition:g}=t,_=c===`input`||c===`option`,b=!!l;if(_||b||d!==-1){m&&ar(t,null,n,`created`);let c=!1;if(y(e)){c=io(null,g)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(c){let e=r.getAttribute(`class`);e&&(r.$cls=e),g.beforeEnter(r)}v(r,e,n),t.el=e=r}if(f&16&&!(u&&(u.innerHTML||u.textContent))){let r=p(e.firstChild,t,e,n,i,a,o);for(r&&!ci(e,1)&&Qr();r;){let e=r;r=r.nextSibling,s(e)}}else if(f&8){let n=t.children;n[0]===` +`&&(e.tagName===`PRE`||e.tagName===`TEXTAREA`)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(ci(e,0)||Qr(),e.textContent=t.children)}if(u){if(_||b||!o||d&48){let t=e.tagName.includes(`-`),i=e.namespaceURI.includes(`svg`)?`svg`:e.namespaceURI.includes(`MathML`)?`mathml`:void 0;for(let a in u)if(_&&(a.endsWith(`value`)||a===`indeterminate`)||h(a)&&!se(a)||a[0]===`.`||t&&!se(a)||l&&l.includes(a)){if(ai(e,a,u[a]))continue;r(e,a,null,u[a],i,n)}}else if(u.onClick)r(e,`onClick`,null,u.onClick,void 0,n);else if(d&4&&an(u.style))for(let e in u.style)u.style[e]}let x;(x=u&&u.onVnodeBeforeMount)&&Yo(x,n,t),m&&ar(t,null,n,`beforeMount`),((x=u&&u.onVnodeMounted)||m||c)&&xo(()=>{x&&Yo(x,n,t),c&&g.enter(e),m&&ar(t,null,n,`mounted`)},i)}return e.nextSibling},p=(e,t,r,o,s,l,u)=>{u||=!!t.dynamicChildren;let f=t.children,p=f.length,m=!1;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=o(e),f=p(a(e),t,d,n,r,i,s);return f&&ni(f)&&f.data===`]`?a(t.anchor=f):(Qr(),c(t.anchor=l(`]`),d,f),f)},g=(e,t,r,i,c,l)=>{if(ui(e,t)||Qr(),t.el=null,l){let t=_(e);for(;;){let n=a(e);if(n&&n!==t)s(n);else break}}let u=a(e),d=o(e);return s(e),n(null,t,d,u,r,i,ti(d),c),r&&(r.vnode.el=t.el,Pa(r,t.el)),u},_=(e,t=`[`,n=`]`)=>{let r=0;for(;e;)if(e=a(e),e&&ni(e)&&(e.data===t&&r++,e.data===n)){if(r===0)return a(e);r--}return e},v=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>e.nodeType===1&&e.tagName===`TEMPLATE`;return[u,d]}var ii=new Set([`src`,`srcset`,`href`,`poster`]);function ai(e,t,n){return ii.has(t)?e.getAttribute(t)===(n==null?null:`${n}`):!1}var oi=`data-allow-mismatch`,si={0:`text`,1:`children`,2:`class`,3:`style`,4:`attribute`};function ci(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(oi);)e=e.parentElement;return li(e&&e.getAttribute(oi),t)}function li(e,t){if(e==null)return!1;if(e===``)return!0;{let n=e.split(`,`);return t===0&&n.includes(`children`)?!0:n.includes(si[t])}}function ui(e,t){return ci(e.parentElement,1)||di(e)||fi(t)}function di(e){return e.nodeType===1&&li(e.getAttribute(oi),1)}function fi({props:e}){let t=e&&e[oi];return typeof t==`string`&&li(t,1)}xe().requestIdleCallback,xe().cancelIdleCallback;function pi(e,t){if(ni(e)&&e.data===`[`){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(ni(r)){if(r.data===`]`){if(--n===0)break}else r.data===`[`&&n++}r=r.nextSibling}}else t(e)}var mi=e=>!!e.type.__asyncLoader;function hi(e){w(e)&&(e={loader:e});let{loader:t,loadingComponent:n,errorComponent:r,delay:i=200,hydrate:a,timeout:o,suspensible:s=!0,onError:c}=e,l=null,u,d=0,f=()=>(d++,l=null,p()),p=()=>{let e;return l||(e=l=t().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t(f()),()=>n(e),d+1)});throw e}).then(t=>e!==l&&l?l:(t&&(t.__esModule||t[Symbol.toStringTag]===`Module`)&&(t=t.default),u=t,t)))};return Gr({name:`AsyncComponentWrapper`,__asyncLoader:p,__asyncHydrate(e,t,n){let r=e.isConnected,i=!1;(t.bu||=[]).push(()=>i=!0);let o=()=>{i||!e.parentNode||r&&!e.isConnected||n()},s=a?()=>{let n=a(o,t=>pi(e,t));n&&(t.bum||=[]).push(n)}:o;u?s():p().then(()=>!t.isUnmounted&&s())},get __asyncResolved(){return u},setup(){let e=z;if(Kr(e),u)return()=>gi(u,e);let t=t=>{l=null,Fn(t,e,13,!r)};if(s&&e.suspense||os)return p().then(t=>()=>gi(t,e)).catch(e=>(t(e),()=>r?R(r,{error:e}):null));let a=fn(!1),c=fn(),d=fn(!!i),f,m;return Ni(()=>{f!=null&&clearTimeout(f),m!=null&&clearTimeout(m)}),i&&(m=setTimeout(()=>{e.isUnmounted||(d.value=!1)},i)),o!=null&&(f=setTimeout(()=>{if(!e.isUnmounted&&!a.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);t(e),c.value=e}},o)),p().then(()=>{e.isUnmounted||(a.value=!0,e.parent&&_i(e.parent.vnode)&&e.parent.update())}).catch(n=>{e.isUnmounted?l=null:(t(n),c.value=n)}),()=>{if(a.value&&u)return gi(u,e);if(c.value&&r)return R(r,{error:c.value});if(n&&!d.value)return gi(n,e)}}})}function gi(e,t){let{ref:n,props:r,children:i,ce:a}=t.vnode,o=R(e,r,i);return o.ref=n,o.ce=a,delete t.vnode.ce,o}var _i=e=>e.type.__isKeepAlive,vi={name:`KeepAlive`,__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=es(),r=n.ctx;if(!r.renderer)return()=>{let e=t.default&&t.default();return e&&e.length===1?e[0]:e};let i=new Map,a=new Set,o=null,s=n.suspense,{renderer:{p:c,m:l,um:u,o:{createElement:d}}}=r,f=d(`div`);r.activate=(e,t,n,r,i)=>{let a=e.component;l(e,t,n,0,s),c(a.vnode,e,t,n,a,s,r,e.slotScopeIds,i),F(()=>{a.isDeactivated=!1,a.a&&ge(a.a);let t=e.props&&e.props.onVnodeMounted;t&&Yo(t,a.parent,e)},s)},r.deactivate=e=>{let t=e.component;co(t.m),co(t.a),l(e,f,null,1,s),F(()=>{t.da&&ge(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&Yo(n,t.parent,e),t.isDeactivated=!0},s)};function p(e){wi(e),u(e,n,s,!0)}function m(e){i.forEach((t,n)=>{let r=ms(mi(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&h(n)})}function h(e){let t=i.get(e);t&&(!o||!Io(t,o))?p(t):o&&(wi(o),t&&wi(t)),i.delete(e),a.delete(e)}fr(()=>[e.include,e.exclude],([e,t])=>{e&&m(t=>yi(e,t)),t&&m(e=>!yi(t,e))},{flush:`post`,deep:!0});let g=null,_=()=>{g!=null&&(uo(n.subTree.type)?F(()=>{let e=Ti(n.subTree);e.component&&i.set(g,e)},n.subTree.suspense):i.set(g,Ti(n.subTree)))};return ki(_),ji(_),Mi(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=Ti(t);if(e.type===i.type&&e.key===i.key){wi(i);let e=i.component.da;e&&F(e,r)}else p(e)})}),()=>{if(g=null,!t.default)return o=null;let n=t.default(),r=n[0];if(n.length>1)return o=null,n;if(!Fo(r)||!(r.shapeFlag&4)&&!(r.shapeFlag&128))return o=null,r;let s=Ti(r);if(s.type===L)return o=null,s;let c=s.type,l=ms(mi(s)?s.type.__asyncResolved||{}:c),{include:u,exclude:d,max:f}=e;if(u&&(!l||!yi(u,l))||d&&l&&yi(d,l))return s.shapeFlag&=-257,o=s,r;let p=s.key==null?c:s.key,m=i.get(p);return s.el&&(s=Ho(s),r.shapeFlag&128&&(r.ssContent=s)),g=p,m?(s.el=m.el,s.component=m.component,s.transition&&Hr(s,s.transition),s.shapeFlag|=512,a.delete(p),a.add(p)):(a.add(p),f&&a.size>parseInt(f,10)&&h(a.values().next().value)),s.shapeFlag|=256,o=s,uo(r.type)?r:s}}};function yi(e,t){return x(e)?e.some(e=>yi(e,t)):T(e)?e.split(`,`).includes(t):te(e)?(e.lastIndex=0,e.test(t)):!1}function bi(e,t){Si(e,`a`,t)}function xi(e,t){Si(e,`da`,t)}function Si(e,t,n=z){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Ei(t,r,n),n){let e=n.parent;for(;e&&e.parent;)_i(e.parent.vnode)&&Ci(r,t,n,e),e=e.parent}}function Ci(e,t,n,r){let i=Ei(t,e,r,!0);Ni(()=>{v(r[t],i)},n)}function wi(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Ti(e){return e.shapeFlag&128?e.ssContent:e}function Ei(e,t,n=z,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{ot();let i=rs(n),a=Pn(t,n,e,r);return i(),st(),a};return r?i.unshift(a):i.push(a),a}}var Di=e=>(t,n=z)=>{(!os||e===`sp`)&&Ei(e,(...e)=>t(...e),n)},Oi=Di(`bm`),ki=Di(`m`),Ai=Di(`bu`),ji=Di(`u`),Mi=Di(`bum`),Ni=Di(`um`),Pi=Di(`sp`),Fi=Di(`rtg`),Ii=Di(`rtc`);function Li(e,t=z){Ei(`ec`,e,t)}var Ri=`components`,zi=`directives`;function Bi(e,t){return Wi(Ri,e,!0,t)||e}var Vi=Symbol.for(`v-ndc`);function Hi(e){return T(e)?Wi(Ri,e,!1)||e:e||Vi}function Ui(e){return Wi(zi,e)}function Wi(e,t,n=!0,r=!1){let i=P||z;if(i){let n=i.type;if(e===Ri){let e=ms(n,!1);if(e&&(e===t||e===ue(t)||e===pe(ue(t))))return n}let a=Gi(i[e]||n[e],t)||Gi(i.appContext[e],t);return!a&&r?n:a}}function Gi(e,t){return e&&(e[t]||e[ue(t)]||e[pe(ue(t))])}function Ki(e,t,n,r){let i,a=n&&n[r],o=x(e);if(o||T(e)){let n=o&&an(e),r=!1,s=!1;n&&(r=!sn(e),s=on(e),e=xt(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r0;return t!=="default"&&(e.name=t),Oo(),Po(I,null,[R(`slot`,e,r&&r())],i?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);let s=Eo.length;Oo();let c;try{let i=o&&Ji(o(n)),s=n.key||a||i&&i.key;c=Po(I,{key:(s&&!E(s)?s:`_${t}`)+(!i&&r?`_fb`:``)},i||(r?r():[]),i&&e._===1?64:-2)}catch(e){for(let e=Eo.length;e>s;e--)ko();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),c}function Ji(e){return e.some(e=>!Fo(e)||!(e.type===L||e.type===I&&!Ji(e.children)))?e:null}var Yi=e=>e?as(e)?ps(e):Yi(e.parent):null,Xi=_(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Yi(e.parent),$root:e=>Yi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ca(e),$forceUpdate:e=>e.f||=()=>{Kn(e.update)},$nextTick:e=>e.n||=Wn.bind(e.proxy),$watch:e=>mr.bind(e)}),Zi=(e,t)=>e!==d&&!e.__isScriptSetup&&b(e,t),Qi={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:s,appContext:c}=e;if(t[0]!==`$`){let e=o[t];if(e!==void 0)switch(e){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return a[t]}else if(Zi(r,t))return o[t]=1,r[t];else if(i!==d&&b(i,t))return o[t]=2,i[t];else if(b(a,t))return o[t]=3,a[t];else if(n!==d&&b(n,t))return o[t]=4,n[t];else ra&&(o[t]=0)}let l=Xi[t],u,f;if(l)return t===`$attrs`&&_t(e.attrs,`get`,``),l(e);if((u=s.__cssModules)&&(u=u[t]))return u;if(n!==d&&b(n,t))return o[t]=4,n[t];if(f=c.config.globalProperties,b(f,t))return f[t]},set({_:e},t,n){let{data:r,setupState:i,ctx:a}=e;return Zi(i,t)?(i[t]=n,!0):r!==d&&b(r,t)?(r[t]=n,!0):b(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:a,type:o}},s){let c;return!!(n[s]||e!==d&&s[0]!==`$`&&b(e,s)||Zi(t,s)||b(a,s)||b(r,s)||b(Xi,s)||b(i.config.globalProperties,s)||(c=o.__cssModules)&&c[s])},defineProperty(e,t,n){return n.get==null?b(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function $i(){return ea(`useAttrs`).attrs}function ea(e){let t=es();return t.setupContext||=fs(t)}function ta(e){return x(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function na(e){let t=es(),n=os,r=e();is(),n&&ns(!1);let i=()=>{rs(t),n&&ns(!0)},a=()=>{es()!==t&&t.scope.off(),is(),n&&ns(!1)};return ne(r)&&(r=r.catch(e=>{throw i(),Promise.resolve().then(()=>Promise.resolve().then(a)),e})),[r,()=>{i(),Promise.resolve().then(a)}]}var ra=!0;function ia(e){let t=ca(e),n=e.proxy,r=e.ctx;ra=!1,t.beforeCreate&&oa(t.beforeCreate,e,`bc`);let{data:i,computed:a,methods:o,watch:s,provide:c,inject:l,created:u,beforeMount:d,mounted:f,beforeUpdate:m,updated:h,activated:g,deactivated:_,beforeDestroy:v,beforeUnmount:y,destroyed:b,unmounted:S,render:C,renderTracked:ee,renderTriggered:te,errorCaptured:T,serverPrefetch:E,expose:ne,inheritAttrs:re,components:ie,directives:ae,filters:oe}=t;if(l&&aa(l,r,null),o)for(let e in o){let t=o[e];w(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);D(t)&&(e.data=en(t))}if(ra=!0,a)for(let e in a){let t=a[e],i=gs({get:w(t)?t.bind(n,n):w(t.get)?t.get.bind(n,n):p,set:!w(t)&&w(t.set)?t.set.bind(n):p});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(s)for(let e in s)sa(s[e],r,n,e);if(c){let e=w(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{or(t,e[t])})}u&&oa(u,e,`c`);function O(e,t){x(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(O(Oi,d),O(ki,f),O(Ai,m),O(ji,h),O(bi,g),O(xi,_),O(Li,T),O(Ii,ee),O(Fi,te),O(Mi,y),O(Ni,S),O(Pi,E),x(ne)){if(ne.length){let t=e.exposed||={};ne.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}C&&e.render===p&&(e.render=C),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),ae&&(e.directives=ae),E&&Kr(e)}function aa(e,t,n=p){x(e)&&(e=pa(e));for(let n in e){let r=e[n],i;i=D(r)?`default`in r?sr(r.from||n,r.default,!0):sr(r.from||n):sr(r),M(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function oa(e,t,n){Pn(x(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function sa(e,t,n,r){let i=r.includes(`.`)?hr(n,r):()=>n[r];if(T(e)){let n=t[e];w(n)&&fr(i,n)}else if(w(e))fr(i,e.bind(n));else if(D(e)){if(x(e))e.forEach(e=>sa(e,t,n,r));else{let r=w(e.handler)?e.handler.bind(n):t[e.handler];w(r)&&fr(i,r,e)}}}function ca(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>la(c,e,o,!0)),la(c,t,o)),D(t)&&a.set(t,c),c}function la(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&la(e,a,n,!0),i&&i.forEach(t=>la(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=ua[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var ua={data:da,props:ga,emits:ga,methods:ha,computed:ha,beforeCreate:ma,created:ma,beforeMount:ma,mounted:ma,beforeUpdate:ma,updated:ma,beforeDestroy:ma,beforeUnmount:ma,destroyed:ma,unmounted:ma,activated:ma,deactivated:ma,errorCaptured:ma,serverPrefetch:ma,components:ha,directives:ha,watch:_a,provide:da,inject:fa};function da(e,t){return t?e?function(){return _(w(e)?e.call(this,this):e,w(t)?t.call(this,this):t)}:t:e}function fa(e,t){return ha(pa(e),pa(t))}function pa(e){if(x(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${ue(t)}Modifiers`]||e[`${fe(t)}Modifiers`];function Ca(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||d,i=n,a=t.startsWith(`update:`),o=a&&Sa(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>T(e)?e.trim():e)),o.number&&(i=i.map(ve)));let s,c=r[s=me(t)]||r[s=me(ue(t))];!c&&a&&(c=r[s=me(fe(t))]),c&&Pn(c,e,6,i);let l=r[s+`Once`];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Pn(l,e,6,i)}}var wa=new WeakMap;function Ta(e,t,n=!1){let r=n?wa:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!w(e)){let r=e=>{let n=Ta(e,t,!0);n&&(s=!0,_(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(D(e)&&r.set(e,null),null):(x(a)?a.forEach(e=>o[e]=null):_(o,a),D(e)&&r.set(e,o),o)}function Ea(e,t){return!e||!h(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),b(e,t[0].toLowerCase()+t.slice(1))||b(e,fe(t))||b(e,t))}function Da(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:c,render:l,renderCache:u,props:d,data:f,setupState:p,ctx:m,inheritAttrs:h}=e,_=nr(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Go(l.call(t,e,u,d,p,f,m)),y=s}else{let e=t;v=Go(e.length>1?e(d,{attrs:s,slots:o,emit:c}):e(d,null)),y=t.props?s:ka(s)}}catch(t){Eo.length=0,Fn(t,e,1),v=R(L)}let b=v;if(y&&h!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(g)&&(y=Aa(y,a)),b=Ho(b,y,!1,!0))}return n.dirs&&(b=Ho(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&Hr(vr(b.type)&&Vr(b)||b,n.transition),v=b,nr(_),v}function Oa(e,t=!0){let n;for(let t=0;t{let t;for(let n in e)(n===`class`||n===`style`||h(n))&&((t||={})[n]=e[n]);return t},Aa=(e,t)=>{let n={};for(let r in e)(!g(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function ja(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ma(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(Fa),La=e=>Object.getPrototypeOf(e)===Fa;function Ra(e,t,n,r=!1){let i={},a=Ia();e.propsDefaults=Object.create(null),Ba(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:tn(i):e.type.props?i:a,e.attrs=a}function za(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=j(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{c=!0;let[n,r]=Ua(e,t,!0);_(o,n),r&&s.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!a&&!c)return D(e)&&r.set(e,f),f;if(x(a))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,Ka=e=>x(e)?e.map(Go):[Go(e)],qa=(e,t,n)=>{if(t._n)return t;let r=rr((...e)=>Ka(t(...e)),n);return r._c=!1,r},Ja=(e,t,n)=>{let r=e._ctx;for(let n in e){if(Ga(n))continue;let i=e[n];if(w(i))t[n]=qa(n,i,r);else if(i!=null){let e=Ka(i);t[n]=()=>e}}},Ya=(e,t)=>{let n=Ka(t);e.slots.default=()=>n},Xa=(e,t,n)=>{for(let r in t)(n||!Ga(r))&&(e[r]=t[r])},Za=(e,t,n)=>{let r=e.slots=Ia();if(e.vnode.shapeFlag&32){let e=t._;e?(Xa(r,t,n),n&&_e(r,`_`,e,!0)):Ja(t,r)}else t&&Ya(e,t)},Qa=(e,t,n)=>{let{vnode:r,slots:i}=e,a=!0,o=d;if(r.shapeFlag&32){let e=t._;e?n&&e===1?a=!1:Xa(i,t,n):(a=!t.$stable,Ja(t,i)),o=t}else t&&(Ya(e,t),o={default:1});if(a)for(let e in i)!Ga(e)&&o[e]==null&&delete i[e]},F=xo;function $a(e){return to(e)}function eo(e){return to(e,ri)}function to(e,t){let n=xe();n.__VUE__=!0;let{insert:r,remove:i,patchProp:a,createElement:o,createText:s,createComment:c,setText:l,setElementText:u,parentNode:m,nextSibling:h,setScopeId:g=p,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Io(e,t)&&(r=ye(e),pe(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null),t.dynamicChildren&&e&&e.dynamicChildren&&e.dynamicChildren.hasOnce&&(t.dynamicChildren===f&&(t.dynamicChildren=[]),t.dynamicChildren.hasOnce=!0);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case wo:y(e,t,n,r);break;case L:b(e,t,n,r);break;case To:e??x(t,n,r,o);break;case I:re(e,t,n,r,i,a,o,s,c);break;default:d&1?ee(e,t,n,r,i,a,o,s,c):d&6?ie(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,Se)}u!=null&&i?Yr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Yr(e.ref,null,a,e,!0)},y=(e,t,n,i)=>{if(e==null)r(t.el=s(t.children),n,i);else{let n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},b=(e,t,n,i)=>{e==null?r(t.el=c(t.children||``),n,i):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,i)=>{let a;for(;e&&e!==t;)a=h(e),r(e,n,i),e=a;r(t,n,i)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),i(e),e=n;i(t)},ee=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)te(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),E(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},te=(e,t,n,i,s,c,l,d)=>{let f,p,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(f=e.el=o(e.type,c,m&&m.is,m),h&8?u(f,e.children):h&16&&T(e.children,f,null,i,s,no(e,c),l,d),_&&ar(e,null,i,`created`),w(f,e,e.scopeId,l,i),m){for(let e in m)e!==`value`&&!se(e)&&a(f,e,null,m[e],c,i);`value`in m&&a(f,`value`,null,m.value,c),(p=m.onVnodeBeforeMount)&&Yo(p,i,e)}_&&ar(e,null,i,`beforeMount`);let v=io(s,g);v&&g.beforeEnter(f),r(f,t,n),((p=m&&m.onVnodeMounted)||v||_)&&F(()=>{try{p&&Yo(p,i,e),v&&g.enter(f),_&&ar(e,null,i,`mounted`)}finally{}},s)},w=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let c=t.el=e.el,{patchFlag:l,dynamicChildren:f,dirs:p}=t;l|=e.patchFlag&16;let m=e.props||d,h=t.props||d,g;if(n&&ro(n,!1),(g=h.onVnodeBeforeUpdate)&&Yo(g,n,t,e),p&&ar(t,e,n,`beforeUpdate`),n&&ro(n,!0),f&&(!e.dynamicChildren||e.dynamicChildren.length!==f.length)&&(l=0,s=!1,f=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&u(c,``),f?D(e.dynamicChildren,f,c,n,r,no(t,i),o):s||le(e,t,c,null,n,r,no(t,i),o,!1),l>0){if(l&16)ne(c,m,h,n,i);else if(l&2&&m.class!==h.class&&a(c,`class`,null,h.class,i),l&4&&a(c,`style`,m.style,h.style,i),l&8){let e=t.dynamicProps;for(let t=0;t{g&&Yo(g,n,t,e),p&&ar(t,e,n,`updated`)},r)},D=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==d)for(let o in t)!se(o)&&!(o in n)&&a(e,o,t[o],null,i,r);for(let o in n){if(se(o))continue;let s=n[o],c=t[o];s!==c&&o!==`value`&&a(e,o,c,s,i,r)}`value`in n&&a(e,`value`,t.value,n.value,i)}},re=(e,t,n,i,a,o,c,l,u)=>{let d=t.el=e?e.el:s(``),f=t.anchor=e?e.anchor:s(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(l=l?l.concat(h):h),e==null?(r(d,n,i),r(f,n,i),T(t.children||[],n,f,a,o,c,l,u)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(D(e.dynamicChildren,m,n,a,o,c,l),(t.key!=null||a&&t===a.subTree)&&ao(e,t,!0)):le(e,t,n,f,a,o,c,l,u)},ie=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):ae(t,n,r,i,a,o,c):oe(e,t,c)},ae=(e,t,n,r,i,a,o)=>{let s=e.component=$o(e,r,i);if(_i(e)&&(s.ctx.renderer=Se),ss(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,O,o,a),!e.el){let r=s.subTree=R(L);b(null,r,t,n),e.placeholder=r.el}}else O(s,e,t,n,i,a,o)},oe=(e,t,n)=>{let r=t.component=e.component;if(ja(e,t,n)){if(r.asyncDep&&!r.asyncResolved){t.el=e.el,t.placeholder=e.placeholder,ce(r,t,n);return}r.next=t,r.update()}else t.el=e.el,t.placeholder=e.placeholder,r.vnode=t},O=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=so(e);if(n){t&&(t.el=c.el,ce(e,t,o)),n.asyncDep.then(()=>{F(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;ro(e,!1),t?(t.el=c.el,ce(e,t,o)):t=c,n&&ge(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Yo(d,s,t,c),ro(e,!0);let f=Da(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ye(p),e,i,a),t.el=f.el,u===null&&Pa(e,f.el),r&&F(r,i),(d=t.props&&t.props.onVnodeUpdated)&&F(()=>Yo(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=mi(t);if(ro(e,!1),l&&ge(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Yo(o,d,t),ro(e,!0),s&&we){let t=()=>{e.subTree=Da(e),we(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Da(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&F(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;F(()=>Yo(o,d,e),i)}(t.shapeFlag&256||d&&mi(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&F(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Ge(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>Kn(u),ro(e,!0),l()},ce=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,za(e,t.props,r,n),Qa(e,t.children,n),ot(),Yn(e),st()},le=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:m}=t;if(p>0){if(p&128){de(l,f,n,r,i,a,o,s,c);return}if(p&256){ue(l,f,n,r,i,a,o,s,c);return}}m&8?(d&16&&ve(l,i,a),f!==l&&u(n,f)):d&16?m&16?de(l,f,n,r,i,a,o,s,c):ve(l,i,a,!0):(d&8&&u(n,``),m&16&&T(f,n,r,i,a,o,s,c))},ue=(e,t,n,r,i,a,o,s,c)=>{e||=f,t||=f;let l=e.length,u=t.length,d=Math.min(l,u),p=0;for(;pu?ve(e,i,a,!0,!1,d):T(t,n,r,i,a,o,s,c,d)},de=(e,t,n,r,i,a,o,s,c)=>{let l=0,u=t.length,d=e.length-1,p=u-1;for(;l<=d&&l<=p;){let r=e[l],u=t[l]=c?Ko(t[l]):Go(t[l]);if(Io(r,u))v(r,u,n,null,i,a,o,s,c);else break;l++}for(;l<=d&&l<=p;){let r=e[d],l=t[p]=c?Ko(t[p]):Go(t[p]);if(Io(r,l))v(r,l,n,null,i,a,o,s,c);else break;d--,p--}if(l>d){if(l<=p){let e=p+1,d=ep)for(;l<=d;)pe(e[l],i,a,!0),l++;else{let m=l,h=l,g=new Map;for(l=h;l<=p;l++){let e=t[l]=c?Ko(t[l]):Go(t[l]);e.key!=null&&g.set(e.key,l)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(l=0;l=b){pe(r,i,a,!0);continue}let u;if(r.key!=null)u=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Io(r,t[_])){u=_;break}u===void 0?pe(r,i,a,!0):(C[u-h]=l+1,u>=S?S=u:x=!0,v(r,t[u],n,null,i,a,o,s,c),y++)}let ee=x?oo(C):f;for(_=ee.length-1,l=b-1;l>=0;l--){let e=h+l,d=t[e],f=t[e+1],p=e+1{let{el:s,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6)fe(e.component.subTree,t,n,a);else if(d&128)e.suspense.move(t,n,a);else if(d&64)c.move(e,t,n,Se);else if(c===I){r(s,t,n);for(let e=0;el.enter(s),o));else{let{leave:a,delayLeave:o,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?i(s):r(s,t,n)},d=()=>{let e=s._isLeaving||!!s[Ar];s._isLeaving&&s[Ar](!0),l.persisted&&!e?u():a(s,()=>{u(),c&&c()})};o?o(s,u,d):d()}}else r(s,t,n)},pe=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if((d===-2||l&&l.hasOnce)&&(i=!1),s!=null&&(ot(),Yr(s,null,n,e,!0),st()),p!=null&&(!e.ctx||e.ctx===t)&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!mi(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Yo(_,t,e),u&6)_e(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&ar(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,Se,r):l&&!l.hasOnce&&(a!==I||d>0&&d&64)?ve(l,t,n,!1,!0):(a===I&&d&384||!i&&u&16)&&ve(c,t,n),r&&me(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&F(()=>{_&&Yo(_,t,e),h&&ar(e,null,t,`unmounted`),v&&(e.el=null)},n)},me=e=>{let{type:t,el:n,anchor:r,transition:a}=e,o=t===I;if(o&&!a){he(n,r);return}if(t===To){C(e),a&&!a.persisted&&a.afterLeave&&a.afterLeave();return}let s=o?Wr(e):e,c=()=>{o?m(n)&&he(n,r):i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(s&&s.shapeFlag&1&&a&&!a.persisted){let{leave:e,delayLeave:t}=a,n=s.el,r=()=>e(n,c);t?t(n,c,r):r()}else c()},he=(e,t)=>{let n;for(;e!==t;)n=h(e),i(e),e=n;i(t)},_e=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;co(c),co(l),r&&ge(r),i.stop(),a?(a.flags|=8,pe(o,e,t,n)):e.vnode.el&&o&&(o.transition=e.vnode.transition,pe(o,e,t,n)),s&&F(s,t),F(()=>{e.isUnmounted=!0},t)},ve=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ye(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[_r];return n?h(n):t},be=(e,t,n)=>{Qn(()=>{e==null?t._vnode&&pe(t._vnode,null,null,!0):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e},e&&t._vnode?void 0:e&&e.component?e.component.uid:Qo())},Se={p:v,um:pe,m:fe,r:me,mt:ae,mc:T,pc:le,pbc:D,n:ye,o:e},Ce,we;return t&&([Ce,we]=t(Se)),{render:be,hydrate:Ce,createApp:ba(be,Ce)}}function no({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function ro({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function io(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ao(e,t,n=!1){let r=e.children,i=t.children;if(x(r)&&x(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function so(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:so(t)}function co(e){if(e)for(let t=0;te.__isSuspense,fo=0,po={name:`Suspense`,__isSuspense:!0,process(e,t,n,r,i,a,o,s,c,l){if(e==null)ho(t,n,r,i,a,o,s,c,l);else{if(a&&a.deps>0&&!e.suspense.isInFallback&&!a.isHydrating){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}go(e,t,n,r,i,o,s,c,l)}},hydrate:vo,normalize:yo};function mo(e,t){let n=e.props&&e.props[t];w(n)&&n()}function ho(e,t,n,r,i,a,o,s,c){let{p:l,o:{createElement:u}}=c,d=u(`div`),f=e.suspense=_o(e,i,r,t,d,n,a,o,s,c);l(null,f.pendingBranch=e.ssContent,d,null,r,f,a,o),f.deps>0?(mo(e,`onPending`),mo(e,`onFallback`),l(null,e.ssFallback,t,n,r,null,a,o),So(f,e.ssFallback)):f.resolve(!1,!0)}function go(e,t,n,r,i,a,o,s,{p:c,um:l,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let f=t.ssContent,p=t.ssFallback,{activeBranch:m,pendingBranch:h,isInFallback:g,isHydrating:_}=d;if(h)d.pendingBranch=f,Io(h,f)?(d.deps++,c(h,f,_?n:d.hiddenContainer,null,i,d,a,o,s),d.deps--,d.deps<=0?d.resolve():g&&!_&&!d.isFallbackMountPending&&(c(m,p,n,r,i,null,a,o,s),So(d,p))):(d.pendingId=fo++,_?(d.isHydrating=!1,d.activeBranch=h):l(h,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u(`div`),g?(c(null,f,d.hiddenContainer,null,i,d,a,o,s),d.deps<=0?d.resolve():d.isFallbackMountPending||(c(m,p,n,r,i,null,a,o,s),So(d,p))):m&&Io(m,f)?(c(m,f,n,r,i,d,a,o,s),d.resolve(!0)):(c(null,f,d.hiddenContainer,null,i,d,a,o,s),d.deps<=0&&d.resolve()));else if(m&&Io(m,f))c(m,f,n,r,i,d,a,o,s),So(d,f);else if(mo(t,`onPending`),d.pendingBranch=f,d.pendingId=f.shapeFlag&512?f.component.suspenseId:fo++,c(null,f,d.hiddenContainer,null,i,d,a,o,s),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(p)},e):e===0&&d.fallback(p)}}function _o(e,t,n,r,i,a,o,s,c,l,u=!1){let{p:d,m:f,um:p,n:m,o:{parentNode:h,remove:g}}=l,_,v=Co(e);v&&t&&t.pendingBranch&&(_=t.pendingId,t.deps++);let y=e.props?ye(e.props.timeout):void 0,b=a,x={vnode:e,parent:t,parentComponent:n,namespace:o,container:r,hiddenContainer:i,deps:0,pendingId:fo++,timeout:typeof y==`number`?y:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:o,pendingId:s,effects:c,parentComponent:l,container:u,isInFallback:d}=x,g=!1;if(x.isHydrating)x.isHydrating=!1;else if(!e){g=i&&o.transition&&o.transition.mode===`out-in`;let e=!1;g&&(i.transition.afterLeave=()=>{s===x.pendingId&&(f(o,u,a===b&&!e?m(i):a,0),Jn(c),d&&r.ssFallback&&(r.ssFallback.el=null))}),i&&!x.isFallbackMountPending&&(h(i.el)===u&&(a=m(i),e=!0),p(i,l,x,!0),!g&&d&&r.ssFallback&&F(()=>r.ssFallback.el=null,x)),g||f(o,u,a,0)}x.isFallbackMountPending=!1,So(x,o),x.pendingBranch=null,x.isInFallback=!1;let y=x.parent,S=!1;for(;y;){if(y.pendingBranch){for(let e=0;e{if(x.isFallbackMountPending=!1,!x.isInFallback)return;let e=x.vnode.ssFallback;d(null,e,i,o,r,null,a,s,c),So(x,e)},u=e.transition&&e.transition.mode===`out-in`;u&&(x.isFallbackMountPending=!0,n.transition.afterLeave=l),x.isInFallback=!0,p(n,r,null,!0),u||l()},move(e,t,n){x.activeBranch&&f(x.activeBranch,e,t,n),x.container=e},next(){return x.activeBranch&&m(x.activeBranch)},registerDep(e,t,n,r){let i=!!x.pendingBranch;i&&x.deps++;let a=e.vnode.el;e.asyncDep.catch(t=>{Fn(t,e,0)}).then(o=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;if(is(),!e.scope.active){i&&--x.deps===0&&x.resolve();return}e.asyncResolved=!0;let{vnode:s}=e;ls(e,o,!1),a&&(s.el=a);let c=!a&&e.subTree.el;t(e,s,h(a||e.subTree.el),a?null:m(e.subTree),x,r,n),c&&(s.placeholder=null,g(c)),Pa(e,s.el),i&&--x.deps===0&&x.resolve()})},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&p(x.activeBranch,n,e,t),x.pendingBranch&&p(x.pendingBranch,n,e,t)}};return x}function vo(e,t,n,r,i,a,o,s,c){let l=t.suspense=_o(t,r,n,e.parentNode,document.createElement(`div`),null,i,a,o,s,!0),u=c(e,l.pendingBranch=t.ssContent,n,l,a,o);return l.deps===0&&l.resolve(!1,!0),u}function yo(e){let{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=bo(r?n.default:n),e.ssFallback=r?bo(n.fallback):R(L)}function bo(e){let t;if(w(e)){let n=Ao&&e._c;n&&(e._d=!1,Oo()),e=e(),n&&(e._d=!0,t=Do,ko())}return x(e)&&(e=Oa(e)),e=Go(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function xo(e,t){t&&t.pendingBranch?x(e)?t.effects.push(...e):t.effects.push(e):Jn(e)}function So(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)t=t.component.subTree,i=t.el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,Pa(r,i))}function Co(e){let t=e.props&&e.props.suspensible;return t!=null&&t!==!1}var I=Symbol.for(`v-fgt`),wo=Symbol.for(`v-txt`),L=Symbol.for(`v-cmt`),To=Symbol.for(`v-stc`),Eo=[],Do=null;function Oo(e=!1){Eo.push(Do=e?null:[])}function ko(){Eo.pop(),Do=Eo[Eo.length-1]||null}var Ao=1;function jo(e,t=!1){Ao+=e,e<0&&Do&&t&&(Do.hasOnce=!0)}function Mo(e){return e.dynamicChildren=Ao>0?Do||f:null,ko(),Ao>0&&Do&&Do.push(e),e}function No(e,t,n,r,i,a){return Mo(zo(e,t,n,r,i,a,!0))}function Po(e,t,n,r,i){return Mo(R(e,t,n,r,i,!0))}function Fo(e){return e?e.__v_isVNode===!0:!1}function Io(e,t){return e.type===t.type&&e.key===t.key}var Lo=({key:e})=>e??null,Ro=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:T(e)||M(e)||w(e)?{i:P,r:e,k:t,f:!!n}:e);function zo(e,t=null,n=null,r=0,i=null,a=e===I?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Lo(t),ref:t&&Ro(t),scopeId:tr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:P};return s?(qo(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=T(n)?8:16),Ao>0&&!o&&Do&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Do.push(c),c}var R=Bo;function Bo(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===Vi)&&(e=L),Fo(e)){let r=Ho(e,t,!0);return n&&qo(r,n),Ao>0&&!a&&Do&&(r.shapeFlag&6?Do[Do.indexOf(e)]=r:Do.push(r)),r.patchFlag=-2,r}if(hs(e)&&(e=e.__vccOpts),t){t=Vo(t);let{class:e,style:n}=t;e&&!T(e)&&(t.class=De(e)),D(n)&&(cn(n)&&!x(n)&&(n=_({},n)),t.style=Se(n))}let o=T(e)?1:uo(e)?128:vr(e)?64:D(e)?4:w(e)?2:0;return zo(e,t,n,r,i,o,a,!0)}function Vo(e){return e?cn(e)||La(e)?_({},e):e:null}function Ho(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?Jo(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Lo(l),ref:t&&t.ref?n&&a?x(a)?a.concat(Ro(t)):[a,Ro(t)]:Ro(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==I?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ho(e.ssContent),ssFallback:e.ssFallback&&Ho(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&r&&Hr(u,c.clone(u)),u}function Uo(e=` `,t=0){return R(wo,null,e,t)}function Wo(e=``,t=!1){return t?(Oo(),Po(L,null,e)):R(L,null,e)}function Go(e){return e==null||typeof e==`boolean`?R(L):x(e)?R(I,null,e.slice()):Fo(e)?Ko(e):R(wo,null,String(e))}function Ko(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ho(e)}function qo(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(x(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),qo(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!La(t)?t._ctx=P:r===3&&P&&(P.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(w(t)){if(r&65){qo(e,{default:t});return}t={default:t,_ctx:P},n=32}else t=String(t),r&64?(n=16,t=[Uo(t)]):n=8;e.children=t,e.shapeFlag|=n}function Jo(...e){let t={};for(let n=0;nz||P,ts,ns;{let e=xe(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};ts=t(`__VUE_INSTANCE_SETTERS__`,e=>z=e),ns=t(`__VUE_SSR_SETTERS__`,e=>os=e)}var rs=e=>{let t=z;return ts(e),e.scope.on(),()=>{e.scope.off(),ts(t)}},is=()=>{z&&z.scope.off(),ts(null)};function as(e){return e.vnode.shapeFlag&4}var os=!1;function ss(e,t=!1,n=!1){t&&ns(t);let{props:r,children:i}=e.vnode,a=as(e);Ra(e,r,a,t),Za(e,i,n||t);let o=a?cs(e,t):void 0;return t&&ns(!1),o}function cs(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qi);let{setup:r}=n;if(r){ot();let n=e.setupContext=r.length>1?fs(e):null,i=rs(e),a=Nn(r,e,0,[e.props,n]),o=ne(a);if(st(),i(),(o||e.sp)&&!mi(e)&&Kr(e),o){if(a.then(is,is),t)return a.then(n=>{ns(!0);try{ls(e,n,t)}finally{ns(!1)}}).catch(t=>{Fn(t,e,0)});e.asyncDep=a}else ls(e,a,t)}else us(e,t)}function ls(e,t,n){w(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:D(t)&&(e.setupState=yn(t)),us(e,n)}function us(e,t,n){let r=e.type;e.render||=r.render||p;{let t=rs(e);ot();try{ia(e)}finally{st(),t()}}}var ds={get(e,t){return _t(e,`get`,``),e[t]}};function fs(e){return{attrs:new Proxy(e.attrs,ds),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function ps(e){return e.exposed?e.exposeProxy||=new Proxy(yn(ln(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xi)return Xi[n](e)},has(e,t){return t in e||t in Xi}}):e.proxy}function ms(e,t=!0){return w(e)?e.displayName||e.name:e.name||t&&e.__name}function hs(e){return w(e)&&`__vccOpts`in e}var gs=(e,t)=>En(e,t,os);function _s(e,t,n){try{jo(-1);let r=arguments.length;return r===2?D(t)&&!x(t)?Fo(t)?R(e,null,[t]):R(e,t):R(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Fo(n)&&(n=[n]),R(e,t,n))}finally{jo(1)}}var vs=`3.5.44`,ys=void 0,bs=typeof window<`u`&&window.trustedTypes;if(bs)try{ys=bs.createPolicy(`vue`,{createHTML:e=>e})}catch{}var xs=ys?e=>ys.createHTML(e):e=>e,Ss=`http://www.w3.org/2000/svg`,Cs=`http://www.w3.org/1998/Math/MathML`,ws=typeof document<`u`?document:null,Ts=ws&&ws.createElement(`template`),Es={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?ws.createElementNS(Ss,e):t===`mathml`?ws.createElementNS(Cs,e):n?ws.createElement(e,{is:n}):ws.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>ws.createTextNode(e),createComment:e=>ws.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ws.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==a&&(i=i.nextSibling););else{Ts.innerHTML=xs(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=Ts.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ds=`transition`,Os=`animation`,ks=Symbol(`_vtc`),As={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},js=_({},Pr,As),Ms=(e=>(e.displayName=`Transition`,e.props=js,e))((e,{slots:t})=>_s(Lr,Fs(e),t)),Ns=(e,t=[])=>{x(e)?e.forEach(e=>e(...t)):e&&e(...t)},Ps=e=>e?x(e)?e.some(e=>e.length>1):e.length>1:!1;function Fs(e){let t={};for(let n in e)n in As||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=Is(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=v,onAppear:ee=y,onAppearCancelled:te=b}=t,w=(e,t,n,r)=>{e._enterCancelled=r,zs(e,t?u:s),zs(e,t?l:o),n&&n()},T=(e,t)=>{e._isLeaving=!1,zs(e,d),zs(e,p),zs(e,f),t&&t()},E=e=>(t,n)=>{let i=e?ee:y,o=()=>w(t,e,n);Ns(i,[t,o]),Bs(()=>{zs(t,e?c:a),Rs(t,e?u:s),Ps(i)||Hs(t,r,h,o)})};return _(t,{onBeforeEnter(e){Ns(v,[e]),Rs(e,a),Rs(e,o)},onBeforeAppear(e){Ns(C,[e]),Rs(e,c),Rs(e,l)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>T(e,t);Rs(e,d),e._enterCancelled?(Rs(e,f),Ks(e)):(Ks(e),Rs(e,f)),Bs(()=>{e._isLeaving&&(zs(e,d),Rs(e,p),Ps(x)||Hs(e,r,g,n))}),Ns(x,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),Ns(b,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),Ns(te,[e])},onLeaveCancelled(e){T(e),Ns(S,[e])}})}function Is(e){if(e==null)return null;if(D(e))return[Ls(e.enter),Ls(e.leave)];{let t=Ls(e);return[t,t]}}function Ls(e){return ye(e)}function Rs(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[ks]||(e[ks]=new Set)).add(t)}function zs(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[ks];n&&(n.delete(t),n.size||(e[ks]=void 0))}function Bs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var Vs=0;function Hs(e,t,n,r){let i=e._endId=++Vs,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Us(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${Ds}Delay`),a=r(`${Ds}Duration`),o=Ws(i,a),s=r(`${Os}Delay`),c=r(`${Os}Duration`),l=Ws(s,c),u=null,d=0,f=0;t===Ds?o>0&&(u=Ds,d=o,f=a.length):t===Os?l>0&&(u=Os,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?Ds:Os:null,f=u?u===Ds?a.length:c.length:0);let p=u===Ds&&/\b(?:transform|all)(?:,|$)/.test(r(`${Ds}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Ws(e,t){for(;e.lengthGs(t)+Gs(e[n])))}function Gs(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function Ks(e){return(e?e.ownerDocument:document).body.offsetHeight}function qs(e,t,n){let r=e[ks];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Js=Symbol(`_vod`),Ys=Symbol(`_vsh`),Xs={name:`show`,beforeMount(e,{value:t},{transition:n}){e[Js]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Zs(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Zs(e,!0),r.enter(e)):r.leave(e,()=>{Zs(e,!1)}):Zs(e,t))},beforeUnmount(e,{value:t}){Zs(e,t)}};function Zs(e,t){e.style.display=t?e[Js]:`none`,e[Ys]=!t}var Qs=Symbol(``),$s=/(?:^|;)\s*display\s*:/;function ec(e,t,n){let r=e.style,i=T(n),a=!1;if(n&&!i){if(t){if(T(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??nc(r,t,``)}else for(let e in t)n[e]??nc(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?nc(r,i,``):oc(e,i,!T(t)&&t?t[i]:void 0,o)||nc(r,i,o)}}else if(i){if(t!==n){let e=r[Qs];e&&(n+=`;`+e),r.cssText=n,a=$s.test(n)}}else t&&e.removeAttribute(`style`);Js in e&&((!i||t!==n)&&(e[Js]=a?r.display:``),e[Ys]&&(r.display=`none`))}var tc=/\s*!important$/;function nc(e,t,n){if(x(n))n.forEach(n=>nc(e,t,n));else if(n??=``,t.startsWith(`--`))tc.test(n)?e.setProperty(t,n.replace(tc,``),`important`):e.setProperty(t,n);else{let r=ac(e,t);tc.test(n)?e.setProperty(fe(r),n.replace(tc,``),`important`):e[r]=n}}var rc=[`Webkit`,`Moz`,`ms`],ic={};function ac(e,t){let n=ic[t];if(n)return n;let r=ue(t);if(r!==`filter`&&r in e)return ic[t]=r;r=pe(r);for(let n=0;n_c||=(vc.then(()=>_c=0),Date.now());function bc(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(x(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Sc=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?qs(e,r,o):t===`style`?ec(e,n,r):h(t)?g(t)||pc(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),1):t[0]===`^`?(t=t.slice(1),0):Cc(e,t,r,o))?(lc(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&cc(e,t,r,o,a,t!==`value`)):e._isVueCE&&(wc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!T(r)))?lc(e,ue(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),cc(e,t,r,o))};function Cc(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&xc(t)&&w(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return xc(t)&&T(n)?!1:t in e}function wc(e,t){let n=e._def.props;if(!n)return!1;let r=ue(t);return Array.isArray(n)?n.some(e=>ue(e)===r):Object.keys(n).some(e=>ue(e)===r)}var Tc=new WeakMap,Ec=new WeakMap,Dc=Symbol(`_moveCb`),Oc=Symbol(`_enterCb`),kc=new WeakMap,Ac=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:_({},js,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=es(),r=Mr(),i,a,o,s,c=()=>(s===void 0&&(s=i.length>0&&zc(i[0].el,n.vnode.el,Mc(e))),s);return ji(()=>{if(kc.delete(n),!c()){i=[],o=void 0;return}let t=Mc(e);i.forEach(jc);let r=o&&Rc(o,n.vnode.el);o=void 0,i.forEach(e=>Nc(e,r));let a=i.filter(Pc);Ks(n.vnode.el),a.forEach(e=>{let n=e.el,r=n.style;Rs(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[Dc]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[Dc]=null,zs(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let l=j(e),u=Fs(l),d=l.tag||I;if(i=[],s=void 0,a)for(let e=0;ee.willMove()&&e.item.contains(t));return n&&Fc(n.item,n)}function zc(e,t,n){let r=e.cloneNode(),i=e[ks];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=Us(r);return a.removeChild(r),o}var Bc=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return x(t)?e=>ge(t,e):t};function Vc(e){e.target.composing=!0}function Hc(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var Uc=Symbol(`_assign`),Wc=Symbol(`_initialValue`);function Gc(e,t,n){return t&&(e=e.trim()),n&&(e=ve(e)),e}var Kc={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e.parentNode&&(e.type===`text`?e[Wc]=e.defaultValue.replace(/[\r\n]/g,``):e.type===`textarea`&&(e[Wc]=e.defaultValue.replace(/\r\n?/g,` +`))),e[Uc]=Bc(i);let a=r||i.props&&i.props.type===`number`;uc(e,t?`change`:`input`,t=>{t.target.composing||e[Uc](Gc(e.value,n,a))}),(n||a)&&uc(e,`change`,()=>{e.value=Gc(e.value,n,a)}),t||(uc(e,`compositionstart`,Vc),uc(e,`compositionend`,Hc),uc(e,`change`,Hc))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[Wc];delete e[Wc],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[Uc](Gc(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[Uc]=Bc(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?ve(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},qc=[`ctrl`,`shift`,`alt`,`meta`],Jc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>qc.some(n=>e[`${n}Key`]&&!t.includes(n))},Yc=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{$c().render(...e)}),nl=((...e)=>{let t=$c().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=al(e);if(!r)return;let i=t._component;!w(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,il(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t}),rl=((...e)=>{let t=el().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=al(e);if(t)return n(t,!0,il(t))},t});function il(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function al(e){return T(e)?document.querySelector(e):e}function ol(e,t={},n){for(let r in e){let i=e[r],a=n?`${n}:${r}`:r;typeof i==`object`&&i?ol(i,t,a):typeof i==`function`&&(t[a]=i)}return t}var sl=(()=>{if(console.createTask)return console.createTask;let e={run:e=>e()};return()=>e})();function cl(e,t,n,r){for(let i=n;ie[i](...t)):e[i](...t);if(n&&typeof n.then==`function`)return Promise.resolve(n).then(()=>cl(e,t,i+1,r))}catch(e){return Promise.reject(e)}}function ll(e,t,n){if(e.length>0)return cl(e,t,0,sl(n))}function ul(e,t,n){if(e.length>0){let r=sl(n);return Promise.all(e.map(e=>r.run(()=>e(...t))))}}function dl(e,t){for(let n of[...e])n(t)}var fl=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!=`function`)return()=>{};let r=e,i;for(;this._deprecatedHooks[e];)i=this._deprecatedHooks[e],e=i.to;if(i&&!n.allowDeprecated){let e=i.message;e||=`${r} hook has been deprecated`+(i.to?`, please use ${i.to}`:``),this._deprecatedMessages||=new Set,this._deprecatedMessages.has(e)||(console.warn(e),this._deprecatedMessages.add(e))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>`_`+e.replace(/\W+/g,`_`)+`_hook_cb`,configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)}}hookOnce(e,t){let n,r=(...e)=>(typeof n==`function`&&n(),n=void 0,r=void 0,t(...e));return n=this.hook(e,r),n}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t==`string`?{to:t}:t;let n=this._hooks[e]||[];this._hooks[e]=void 0;for(let t of n)this.hook(e,t)}deprecateHooks(e){for(let t in e)this.deprecateHook(t,e[t])}addHooks(e){let t=ol(e),n=Object.keys(t).map(e=>this.hook(e,t[e]));return()=>{for(let e of n)e();n.length=0}}removeHooks(e){let t=ol(e);for(let e in t)this.removeHook(e,t[e])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(ll,e,t)}callHookParallel(e,...t){return this.callHookWith(ul,e,t)}callHookWith(e,t,n){let r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&dl(this._before,r);let i=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return i instanceof Promise?i.finally(()=>{this._after&&r&&dl(this._after,r)}):(this._after&&r&&dl(this._after,r),i)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){let t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){let t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function pl(){return new fl}var ml=class{_hooks;constructor(){this._hooks={}}hook(e,t){return!e||typeof t!=`function`?()=>{}:(this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)})}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}callHook(e,...t){let n=this._hooks[e];if(n&&n.length!==0)return cl(n.slice(),t,0)}},hl={meta:[{name:`viewport`,content:`width=device-width, initial-scale=1`},{charset:`utf-8`}],link:[{rel:`preload`,href:`/fonts/IRANSansWebFaNum.woff2`,as:`font`,type:`font/woff2`,crossorigin:``},{rel:`preload`,href:`/fonts/IRANSansWebFaNum_Bold.woff2`,as:`font`,type:`font/woff2`,crossorigin:``},{rel:`icon`,type:`image/svg+xml`,href:`/favicon.svg`},{rel:`manifest`,href:`/manifest.webmanifest`}],style:[],script:[],noscript:[],htmlAttrs:{lang:`fa`,dir:`rtl`},bodyAttrs:{class:`relative min-h-screen bg-bg font-sans text-ink antialiased`},charset:`utf-8`,viewport:`width=device-width, initial-scale=1`},gl={id:`__nuxt-loader`},_l={componentName:`NuxtLink`,prefetch:!0,prefetchOn:{visibility:!0}},vl={deep:!1},yl={},bl=`#__nuxt`,xl=`nuxt-app`,Sl=36e5,Cl=`vite:preloadError`;function wl(e=`nuxt-app`){return l(e,{asyncContext:!1})}var Tl=`__nuxt_plugin`;function El(e){let t=0,n={_id:e.id||`nuxt-app`,_scope:Ve(),provide:void 0,versions:{get nuxt(){return`4.6.2`},get vue(){return n.vueApp.version}},payload:tn({...e.ssrContext?.payload||{},data:tn({}),state:en({}),once:new Set,_errors:tn({})}),static:{data:{}},runWithContext(e){return n._scope.active&&!He()?n._scope.run(()=>Ml(n,e)):Ml(n,e)},isHydrating:!0,deferHydration(){if(!n.isHydrating)return()=>{};t++;let e=!1;return()=>{if(!e&&(e=!0,t--,t===0))return n.isHydrating=!1,n.callHook(`app:suspense:resolve`)}},_asyncDataPromises:{},_asyncData:tn({}),_state:tn({}),_payloadRevivers:{},...e};{let e=window.__NUXT__;if(e)for(let t in e)switch(t){case`data`:case`state`:case`_errors`:Object.assign(n.payload[t],e[t]);break;default:n.payload[t]=e[t]}}n.hooks=pl(),n.hook=n.hooks.hook;{let e=n.hooks.callHook;n.hooks.callHook=(t,...n)=>Promise.resolve().then(()=>e(t,...n))}n.callHook=n.hooks.callHook,n.provide=(e,t)=>{let r=`$`+e;Fl(n,r,t),Fl(n.vueApp.config.globalProperties,r,t)},Fl(n.vueApp,`$nuxt`,n),Fl(n.vueApp.config.globalProperties,`$nuxt`,n);{window.addEventListener(Cl,e=>{n.callHook(`app:chunkError`,{error:e.payload}),e.payload?.message?.includes(`Unable to preload CSS`)&&e.preventDefault()}),window.useNuxtApp||=B;let e=n.hook(`app:error`,(...e)=>{o.NUXT_E1005({cause:e.length>1?e:e[0]})});n.hook(`app:mounted`,e)}let r=n.payload.config;return n.provide(`config`,r),n}function Dl(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function Ol(e,t){if(typeof t==`function`){let{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n==`object`)for(let t in n)e.provide(t,n[t])}}async function kl(e,t){let n;for(let n of t)Dl(e,n);for(let r of t)try{await Ol(e,r)}catch(t){if(!e.payload.error)throw t;n||=t}if(n)throw e.payload.error||n}function Al(e){if(typeof e==`function`)return e;let t=e._name||e.name;return delete e.name,Object.assign(e.setup||(()=>{}),e,{[Tl]:!0,_name:t})}var jl=Al;function Ml(e,t,n){return wl(e._id).set(e),e.vueApp.runWithContext(()=>n?t(...n):t())}function Nl(e){let t;return cr()&&(t=es()?.appContext.app.$nuxt),t||=wl(e).tryUse(),t||null}function B(e){let t=Nl(e);if(!t)throw o.NUXT_E1001();return t}function Pl(e){return B().$config}function Fl(e,t,n){Object.defineProperty(e,t,{get:()=>n})}String.fromCharCode;var Il=/#/g,Ll=/&/g,Rl=/\//g,zl=/=/g,Bl=/\+/g,Vl=/%5e/gi,Hl=/%60/gi,Ul=/%7c/gi,Wl=/%20/gi,Gl=/%2f/gi;function Kl(e){return encodeURI(``+e).replace(Ul,`|`)}function ql(e){return Kl(typeof e==`string`?e:JSON.stringify(e)).replace(Bl,`%2B`).replace(Wl,`+`).replace(Il,`%23`).replace(Ll,`%26`).replace(Hl,"`").replace(Vl,`^`).replace(Rl,`%2F`)}function Jl(e){return ql(e).replace(zl,`%3D`)}function Yl(e=``){try{return decodeURIComponent(``+e)}catch{return``+e}}function Xl(e){return Yl(e.replace(Gl,`%252F`))}function Zl(e){return Yl(e.replace(Bl,` `))}function Ql(e){return Yl(e.replace(Bl,` `))}function $l(e=``){let t=Object.create(null);e[0]===`?`&&(e=e.slice(1));for(let n of e.split(`&`)){let e=n.match(/([^=]+)=?(.*)/)||[];if(e.length<2)continue;let r=Zl(e[1]);if(r===`__proto__`||r===`constructor`)continue;let i=Ql(e[2]||``);t[r]===void 0?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]}return t}function eu(e,t){return(typeof t==`number`||typeof t==`boolean`)&&(t=String(t)),t?Array.isArray(t)?t.map(t=>`${Jl(e)}=${ql(t)}`).join(`&`):`${Jl(e)}=${ql(t)}`:Jl(e)}function tu(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>eu(t,e[t])).filter(Boolean).join(`&`)}var nu=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,ru=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,iu=/^([/\\]\s*){2,}[^/\\]/,au=/^[\s\0]*(blob|data|javascript|vbscript):$/i,ou=/\/$|\/\?|\/#/,su=/^\.?\//;function cu(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?nu.test(e):ru.test(e)||(t.acceptRelative?iu.test(e):!1)}function lu(e){return!!e&&au.test(e)}function uu(e=``,t){return t?ou.test(e):e.endsWith(`/`)}function du(e=``,t){if(!t)return(uu(e)?e.slice(0,-1):e)||`/`;if(!uu(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function fu(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(uu(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function pu(e,t){if(gu(t)||cu(e))return e;let n=du(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return vu(n,e)}function mu(e,t){if(gu(t))return e;let n=du(t);if(!e.startsWith(n))return e;let r=e[n.length];return r&&r!==`/`&&r!==`?`?e:`/`+e.slice(n.length).replace(/^\/+/,``)}function hu(e,t){let n=Cu(e);return n.search=tu({...$l(n.search),...t}),Tu(n)}function gu(e){return!e||e===`/`}function _u(e){return e&&e!==`/`}function vu(e,...t){let n=e||``;for(let e of t.filter(e=>_u(e)))if(n){let t=e.replace(su,``);n=fu(n)+t}else n=e;return n}function yu(...e){let t=/\/(?!\/)/,n=e.filter(Boolean),r=[],i=0;for(let e of n)if(e&&e!==`/`){for(let[n,a]of e.split(t).entries())if(a&&a!==`.`){if(a===`..`){if(r.length===1&&cu(r[0]))continue;r.pop(),i--}else n===1&&r[r.length-1]?.endsWith(`:/`)?r[r.length-1]+=`/`+a:(r.push(a),i++)}}let a=r.join(`/`);return i>=0?n[0]?.startsWith(`/`)&&!a.startsWith(`/`)?a=`/`+a:n[0]?.startsWith(`./`)&&!a.startsWith(`./`)&&(a=`./`+a):a=`../`.repeat(-1*i)+a,n[n.length-1]?.endsWith(`/`)&&!a.endsWith(`/`)&&(a+=`/`),a}function bu(e,t){return Yl(du(e))===Yl(du(t))}function xu(e){return Tu({...Cu(e),hash:``})}var Su=Symbol.for(`ufo:protocolRelative`);function Cu(e=``,t){let n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){let[,e,t=``]=n;return{protocol:e.toLowerCase(),pathname:t,href:e+t,auth:``,host:``,search:``,hash:``}}if(!cu(e,{acceptRelative:!0}))return t?Cu(t+e):wu(e);let[,r=``,i,a=``]=e.replace(/\\/g,`/`).match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,o=``,s=``]=a.match(/([^#/?]*)(.*)?/)||[];r===`file:`&&(s=s.replace(/\/(?=[A-Za-z]:)/,``));let{pathname:c,search:l,hash:u}=wu(s);return{protocol:r.toLowerCase(),auth:i?i.slice(0,Math.max(0,i.length-1)):``,host:o,pathname:c,search:l,hash:u,[Su]:!r}}function wu(e=``){let[t=``,n=``,r=``]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function Tu(e){let t=e.pathname||``,n=e.search?(e.search.startsWith(`?`)?``:`?`)+e.search:``,r=e.hash||``,i=e.auth?e.auth+`@`:``,a=e.host||``;return(e.protocol||e[Su]?(e.protocol||``)+`//`:``)+i+a+t+n+r}function Eu(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function Du(e,t,n=`.`,r){if(!Eu(t))return Du(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:Eu(a)&&Eu(i[t])?Du(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function Ou(e){return(...t)=>t.reduce((t,n)=>Du(t,n,``,e),{})}var ku=Ou();function Au(e,t){try{return t in e}catch{return!1}}var ju=class extends Error{static __h3_error__=!0;statusCode=500;fatal=!1;unhandled=!1;statusMessage;data;cause;constructor(e,t={}){super(e,t),t.cause&&!this.cause&&(this.cause=t.cause)}toJSON(){let e={message:this.message,statusCode:Iu(this.statusCode,500)};return this.statusMessage&&(e.statusMessage=Fu(this.statusMessage)),this.data!==void 0&&(e.data=this.data),e}};function Mu(e){if(typeof e==`string`)return new ju(e);if(Nu(e))return e;let t=new ju(e.message??e.statusMessage??``,{cause:e.cause||e});if(Au(e,`stack`))try{Object.defineProperty(t,"stack",{get(){return e.stack}})}catch{try{t.stack=e.stack}catch{}}if(e.data&&(t.data=e.data),e.statusCode?t.statusCode=Iu(e.statusCode,t.statusCode):e.status&&(t.statusCode=Iu(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){let e=t.statusMessage;Fu(t.statusMessage)!==e&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return e.fatal!==void 0&&(t.fatal=e.fatal),e.unhandled!==void 0&&(t.unhandled=e.unhandled),t}function Nu(e){return e?.constructor?.__h3_error__===!0}var Pu=/[^\u0009\u0020-\u007E]/g;function Fu(e=``){return e.replace(Pu,``)}function Iu(e,t=200){return!e||(typeof e==`string`&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}globalThis.Headers,globalThis.Response;var Lu=`__nuxt_error`,Ru=e=>!!e&&typeof e==`object`&&`__nuxt_error`in e,zu=e=>{if(Ru(e))return e;typeof e!=`string`&&e?.statusText&&(e.message??=e.statusText);let t=Mu(e??{});return Object.defineProperty(t,Lu,{value:!0,configurable:!1,writable:!1}),Object.defineProperty(t,"status",{get:()=>t.statusCode,configurable:!0}),Object.defineProperty(t,"statusText",{get:()=>t.statusMessage,configurable:!0}),t},Bu=`https://a.invalid/probe/`,Vu=`https://b.invalid/probe/`;function Hu(e,t=Bu){try{return new URL(e,t)}catch{return null}}function Uu(e){let t=Hu(e);return!!t&&t.href===Hu(e,Vu)?.href}function Wu(e){return e[0]!==`/`||e[1]===`/`||e[1]===`\\`?!1:e[1]!==` `&&e[1]!==` +`&&e[1]!==`\r`||!Uu(e)}function Gu(e){return!!e&&!Wu(e)&&Uu(e)}function Ku(e){if(!e||Wu(e))return null;let t=Hu(e.replace(/[\u0000-\u001F\u007F\s]+/g,``));for(;t?.protocol===`view-source:`;)t=Hu(t.pathname);return t?lu(t.protocol)?t.protocol:null:``}function qu(e){return Ku(e)===null?e:null}var Ju=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function Yu(e){return Ju.test(e)}var Xu=Symbol(`layout-meta`),Zu=Symbol(`layout`),Qu=Symbol(`route`),$u=r({docsBase:i,reporters:a}),ed=(()=>B()?.$router);function td(e){let t=e;return t.parent??t.subs?.sub}function nd(e){let t=e.scope,n=He();for(;n;){if(n===t)return!0;n=td(n)}return!1}var rd=(()=>{if(cr()){let e=es();if(!e||nd(e))return sr(Qu,B()._route)}return B()._route});function id(e){return e}var ad=()=>{try{if(B()._processingMiddleware)return!0}catch{return!1}return!1},od=(e,t)=>{e||=`/`;let n=typeof e==`string`||`path`in e,r=typeof e==`string`?e:`path`in e?sd(e):ed().resolve(e).href;if(t?.open){let e=Ku(r);if(e!==null)throw $u.NUXT_E2002({toPath:r,protocol:e});let i=n&&!Gu(r)&&!r.startsWith(`#`)?vu(Pl().app.baseURL,r):r,{target:a=`_blank`,windowFeatures:o={}}=t.open,s=[];for(let[e,t]of Object.entries(o))t!==void 0&&s.push(`${e.toLowerCase()}=${t}`);return open(i,a,s.join(`, `)),Promise.resolve()}let i=Gu(r),a=t?.external||i;if(a){if(!t?.external)throw $u.NUXT_E2001({toPath:r});let e=Ku(r);if(e!==null)throw $u.NUXT_E2002({toPath:r,protocol:e})}let o=ad();if(!a&&o){if(t?.replace){if(typeof e==`string`){let{pathname:t,search:n,hash:r}=Cu(e);return{path:t,...n&&{query:$l(n)},...r&&{hash:r},replace:!0}}return{...e,replace:!0}}return e}let s=ed(),c=B();if(a)return c._scope.stop(),t?.replace?location.replace(r):location.href=r,o?c.isHydrating?new Promise(()=>{}):!1:Promise.resolve();let l=typeof e==`string`?cd(e):e;return t?.replace?s.replace(l):s.push(l)};function sd(e){return hu(e.path||``,e.query||{})+(e.hash||``)}function cd(e){let t=Cu(e);return hd(Xl(t.pathname))+t.search+t.hash}var ld=/%7C/g,ud=/%5B/g,dd=/%5D/g,fd=/%252F/gi,pd=/#/g,md=/\?/g;function hd(e){return encodeURI(e).replace(ld,`|`).replace(ud,`[`).replace(dd,`]`).replace(pd,`%23`).replace(md,`%3F`).replace(fd,`%2F`)}var gd=()=>Cn(B().payload,`error`),_d=e=>{let t=zu(e);try{let e=gd();B().hooks.callHook(`app:error`,t),e.value||=t}catch{throw t}return t},vd=(e,t)=>{let n=e.callHook(`app:error`,zu(t));return o.NUXT_E1012({userAgent:navigator.userAgent,cause:t}),n},yd=async(e,t)=>{Yu(navigator.userAgent)?await vd(e,t):await e.runWithContext(()=>_d(t))},bd=async(e={})=>{let t=B(),n=gd();t.callHook(`app:error:cleared`,e),e.redirect&&await ed().replace(e.redirect),n.value=void 0},xd=typeof window<`u`,Sd,Cd=e=>Sd=e,wd=Symbol();function Td(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Ed=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Dd(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function Od(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Nd(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function kd(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Ad(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var jd=typeof navigator==`object`?navigator:{userAgent:``},Md=/Macintosh/.test(jd.userAgent)&&/AppleWebKit/.test(jd.userAgent)&&!/Safari/.test(jd.userAgent),Nd=xd?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Md?Pd:`msSaveOrOpenBlob`in jd?Fd:Id:()=>{};function Pd(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?Ad(r):kd(r.href)?Od(e,t,n):(r.target=`_blank`,Ad(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Ad(r)},0))}function Fd(e,t=`download`,n){if(typeof e==`string`){if(kd(e))Od(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Ad(t)})}}else navigator.msSaveOrOpenBlob(Dd(e,n),t)}function Id(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Od(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Ed.HTMLElement))||`safari`in Ed,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Md)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Ld}=Object;function Rd(){let e=Ve(!0),t=e.run(()=>fn({})),n=[],r=[],i=ln({install(e){Cd(i),i._a=e,e.provide(wd,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var zd=()=>{};function Bd(e,t,n,r=zd){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&He()&&Ue(i),i}function Vd(e,...t){e.forEach(e=>{e(...t)})}var Hd=e=>e(),Ud=Symbol(),Wd=Symbol();function Gd(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];if(Td(i)&&Td(r)&&Object.hasOwn(e,n)&&!M(r)&&!an(r)){e[n]=Gd(i,r);let t=j(e)[n];M(t)&&sn(t)&&gn(t)}else e[n]=r}return e}var Kd=Symbol();function qd(e){return!e||typeof e!=`object`||!Object.hasOwn(e,Kd)}var{assign:Jd}=Object;function Yd(e){return!!(M(e)&&e.effect)}function Xd(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),Jd(bn(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=ln(gs(()=>{Cd(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Zd(e,l,t,n,r,!0),c}function Zd(e,t,n={},r,i,a){let o,s=Jd({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(Gd(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();Wn().then(()=>{h===i&&(l=!0)}),u=!0,Vd(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{Jd(e,t)})}:zd;function v(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(Ud in t)return t[Wd]=n,t;let i=function(){Cd(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Vd(f,{args:n,name:i[Wd],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw Vd(o,e),e}return l instanceof Promise?l.then(e=>(Vd(a,e),e)).catch(e=>(Vd(o,e),Promise.reject(e))):(Vd(a,l),l)};return i[Ud]=!0,i[Wd]=n,i},b=en({_p:r,$id:e,$onAction:Bd.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return zd;let i=Bd(d,t,n.detached,()=>a()),a=o.run(()=>fr(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},Jd({},c,n)));return i},$dispose:v});r._s.set(e,b);let x=(r._a&&r._a.runWithContext||Hd)(()=>r._e.run(()=>(o=Ve()).run(()=>t({action:y}))));for(let t in x){let n=x[t];M(n)&&!Yd(n)||an(n)?a||(m&&qd(n)&&(M(n)?n.value=m[t]:((n instanceof Set||n instanceof Map)&&n.clear(),Gd(n,m[t]))),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return Jd(b,x),Jd(j(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{Jd(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));Jd(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function Qd(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=cr();return n||=o?sr(wd,null):null,n&&Cd(n),n=Sd,n._s.has(e)||(i?Zd(e,t,r,n):Xd(e,r,n)),n._s.get(e)}return a.$id=e,a}var $d=globalThis.requestIdleCallback||(e=>{let t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),ef=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),tf=/2g/;function nf(){let e=navigator.connection;return!e||!e.saveData&&!tf.test(e.effectiveType||``)}function rf(e){let{pathname:t,search:n}=new URL(e,window.location.href);return t+n}var af=e=>e.startsWith(`/`);function of(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function sf(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&of(e.default)}var cf=Object.assign;function lf(e,t){let n={};for(let r in t){let i=t[r];n[r]=df(i)?i.map(e):e(i)}return n}var uf=()=>{},df=Array.isArray;function ff(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var pf=Symbol(``),mf=function(e){return e[e.aborted=4]=`aborted`,e[e.cancelled=8]=`cancelled`,e[e.duplicated=16]=`duplicated`,e}({});function hf(e,t){return cf(Error(),{type:e,[pf]:!0},t)}function gf(e,t){return e instanceof Error&&pf in e&&(t==null||!!(e.type&t))}var _f=Symbol(``),vf=Symbol(``),yf=Symbol(``),bf=Symbol(``),xf=Symbol(``),Sf=Symbol(``);function Cf(e){return sr(bf)}var wf=typeof document<`u`,Tf=/#/g,Ef=/&/g,Df=/\//g,Of=/=/g,kf=/\?/g,Af=/\+/g,jf=/%5B/g,Mf=/%5D/g,Nf=/%5E/g,Pf=/%60/g,Ff=/%7B/g,If=/%7C/g,Lf=/%7D/g,Rf=/%20/g;function zf(e){return e==null?``:encodeURI(``+e).replace(If,`|`).replace(jf,`[`).replace(Mf,`]`)}function Bf(e){return zf(e).replace(Ff,`{`).replace(Lf,`}`).replace(Nf,`^`)}function Vf(e){return zf(e).replace(Af,`%2B`).replace(Rf,`+`).replace(Tf,`%23`).replace(Ef,`%26`).replace(Pf,"`").replace(Ff,`{`).replace(Lf,`}`).replace(Nf,`^`)}function Hf(e){return Vf(e).replace(Of,`%3D`)}function Uf(e){return zf(e).replace(Tf,`%23`).replace(kf,`%3F`)}function Wf(e){return Uf(e).replace(Df,`%2F`)}function Gf(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Kf=/\/$/,qf=e=>e.replace(Kf,``);function Jf(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=np(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Gf(o)}}function Yf(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Xf(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Zf(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Qf(t.matched[r],n.matched[i])&&$f(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Qf(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function $f(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!ep(e[n],t[n]))return!1;return!0}function ep(e,t){return df(e)?tp(e,t):df(t)?tp(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function tp(e,t){return df(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function np(e,t){if(af(e))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var rp={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function ip(e){if(!e){if(wf){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),qf(e)}var ap=/^[^#]+#/;function op(e,t){return e.replace(ap,`#`)+t}function sp(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var cp=()=>history.scrollRestoration===`manual`?{left:window.scrollX,top:window.scrollY}:null;function lp(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=sp(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function up(e,t){return(history.state?history.state.position-t:-1)+e}var dp=new Map;function fp(e){dp.set(e,cp())}function pp(e){let t=dp.get(e);return dp.delete(e),t}function mp(e,t=!1){for(let n of dp.keys()){let r=parseInt(n,10);(r===e||!t&&r>e)&&dp.delete(n)}}function hp(e){return typeof e==`string`||e&&typeof e==`object`}function gp(e){return typeof e==`string`||typeof e==`symbol`}function _p(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Vf(e)):[r&&Vf(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function yp(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=df(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function bp(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function xp(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(hf(4,{from:n,to:t})):e instanceof Error?c(e):hp(e)?c(hf(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Sp(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(t===`beforeRouteEnter`||o.instances[e]){if(of(s)){let c=(s.__vccOpts||s)[t];c&&a.push(xp(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=sf(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&xp(c,n,r,o,e,i)()}))}}}return a}function Cp(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oQf(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Qf(e,s))||i.push(s))}return[n,r,i]}var wp=(e,t)=>({default:()=>e?_s(Ms,e===!0?{}:e,t):t.default?.()}),Tp=/(:\w+)\([^)]+\)/g,Ep=/(:\w+)[?+*]/g,Dp=/:\w+/g;function Op(e){let t=e?.meta.key??e.path.replace(Tp,`$1`).replace(Ep,`$1`).replace(Dp,t=>e.params[t.slice(1)]?.toString()||``);return typeof t==`function`?t(e):t}function kp(e,t){return e===t||t===rp?!1:Op(e)!==Op(t)||!e.matched.every((e,n)=>e.components&&e.components.default===t.matched[n]?.components?.default)}function Ap(e){return!1}var jp=/^[a-z][a-z0-9-]*$/i;function Mp(e,t){return e&&jp.test(e)?e:t}function Np(e){return Array.isArray(e)?e:[e]}function Pp(e){let t=[];for(let n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?Np(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?Np(n.onBeforeLeave):void 0});return ku(...t)}function Fp(e){e[`~transitionPromise`]||=new Promise(t=>{e[`~transitionFinish`]=t})}function Ip(e){e[`~transitionFinish`]?.(),delete e[`~transitionFinish`],delete e[`~transitionPromise`]}var Lp={scrollBehavior(e,t,n){let r=B(),i=ed(),a=i.options?.scrollBehaviorType??`auto`;return e.path.replace(/\/$/,``)===t.path.replace(/\/$/,``)?t.hash&&!e.hash?n??{left:0,top:0}:e.hash?{el:e.hash,top:Rp(e.hash),behavior:a}:!1:(typeof e.meta.scrollToTop==`function`?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===rp?zp(e,t,n,a):new Promise(o=>{let s=()=>{requestAnimationFrame(()=>{i.currentRoute.value.fullPath===e.fullPath?o(zp(e,t,n,a)):o(!1)})};r.hooks.hookOnce(`page:loading:end`,()=>{let e=r[`~transitionPromise`];e?e.then(s):s()})})}};function Rp(e){let t=document.getElementById(e.slice(1));return t?(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0):0}function zp(e,t,n,r){return n||(e.hash?{el:e.hash,top:Rp(e.hash),behavior:kp(e,t)?r:`instant`}:{left:0,top:0})}var Bp={hashMode:!1,scrollBehaviorType:`auto`,sensitive:!1,...Lp},Vp=e=>{let t=B();t.isHydrating?t.hooks.hookOnce(`app:suspense:resolve`,()=>{$d(()=>e())}):$d(()=>e())};function Hp(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}function Up(e){return Promise.all(e.map(e=>{let t=e.components?.default;return typeof t==`function`?Promise.resolve(t()).catch(()=>{}):void 0}))}function Wp(e,t){let{fullPath:n,path:r,matched:i}=t.resolve(e);if(!i.length)return;let a=Nl()?._prefetch;a?a.schedule({key:`route:${r}`,priority:`route`,scope:`navigation`,group:rf(n),run:e=>e.aborted?void 0:Up(i)}):Up(i)}var Gp=(...e)=>e.find(e=>e!==void 0);function Kp(e){let t=e.componentName||`NuxtLink`;function n(e){return typeof e==`string`&&e.startsWith(`#`)}function r(t,n,r){let i=r??e.trailingSlash;if(!t||i!==`append`&&i!==`remove`)return t;if(typeof t==`string`)return Jp(t,i);let a=`path`in t&&t.path!==void 0?t.path:n(t).path;return{...t,name:void 0,path:Jp(a,i)}}function i(t){let i=ed(),a=Pl(),o=i.options?.history?.createHref??(e=>vu(a.app.baseURL,e)),s=gs(()=>!!N(t.target)&&N(t.target)!==`_self`),c=gs(()=>{let e=N(t.to)||N(t.href)||``;return typeof e==`string`&&Gu(e)}),l=gs(()=>{if(N(t.external))return!0;let e=N(t.to)||N(t.href)||``;return typeof e==`object`?!1:e===``||c.value}),u=gs(()=>{let e=N(t.to)||N(t.href)||``;return l.value?e:r(e,i.resolve,N(t.trailingSlash))}),d=gs(()=>{let r=N(t.trailingSlash)??e.trailingSlash;if(!u.value||c.value||n(u.value)){let e=u.value;return typeof e==`string`?qu(e):e}if(l.value){let e=typeof u.value==`object`&&`path`in u.value?sd(u.value):u.value,t=typeof e==`object`?i.resolve(e).href:e,n=typeof t==`string`?qu(t):t;return n===null?null:Jp(n,r)}return typeof u.value==`object`?i.resolve(u.value)?.href??null:Jp(Wu(u.value)?o(u.value):i.resolve(u.value).href,r)});return{to:u,hasTarget:s,isAbsoluteUrl:c,isExternal:l,href:d,async navigate(e){d.value!==null&&await od(d.value,{replace:N(t.replace),external:l.value||s.value})}}}function a(e){let t=ed(),n=i(e),r=Bi(`RouterLink`),a=r&&typeof r!=`string`?r.useLink:void 0,o=n.isExternal.value?void 0:a?.({...e,to:n.to,viewTransition:N(e.viewTransition)});return{...n,isActive:o?.isActive??gs(()=>n.to.value===t.currentRoute.value.path),isExactActive:o?.isExactActive??gs(()=>n.to.value===t.currentRoute.value.path),route:o?.route??gs(()=>t.resolve(n.to.value))}}return Gr({name:t,props:{to:{type:[String,Object],required:!1},href:{type:[String,Object],required:!1},target:{type:String,required:!1},rel:{type:String,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,required:!1},exactActiveClass:{type:String,required:!1},prefetchedClass:{type:String,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,required:!1}},useLink:a,setup(t,{slots:r}){let a=ed(),o=Bi(`RouterLink`),{to:s,href:c,navigate:l,isExternal:u,hasTarget:d,isAbsoluteUrl:f}=i(t),p=pn(!1),m=fn(null),h=e=>{m.value=t.custom?e?.$el?.nextElementSibling:e?.$el};function g(n){return typeof t.prefetchOn==`string`?t.prefetchOn===n:t.prefetchOn?.[n]??e.prefetchOn?.[n]}function _(){return!!((t.prefetch??e.prefetch)!==!1&&t.noPrefetch!==!0&&t.target!==`_blank`&&nf())}function v(e){return!!(!p.value&&g(e)&&_())}function y(){let e=typeof s.value==`string`?s.value:u.value?sd(s.value):a.resolve(s.value).fullPath;return u.value?new URL(e,window.location.href).href:e}function b(){p.value?u.value||B()._prefetch?.promote(rf(y())):g(`interaction`)&&x()}async function x(e=B()){if(p.value||c.value===null)return;p.value=!0;let t=y();await Promise.all([e.hooks.callHook(`link:prefetch`,t)?.catch(()=>{}),!u.value&&!d.value&&Wp(s.value,a)])}if(!t.custom&&v(`visibility`)){let e=B(),t,n=null;ki(()=>{let r=Yp();Vp(()=>{t=$d(()=>{m?.value?.tagName&&(n=r.observe(m.value,async()=>{n?.(),n=null,await x(e)}))})})}),Mi(()=>{t&&ef(t),n?.(),n=null})}return()=>{let i=t.target||null,y=Gp(t.noRel?``:t.rel,e.externalRelAttribute,f.value||d.value?`noopener noreferrer`:``)||null,S=e=>({navigate:l,get route(){if(!c.value)return;let e=new URL(c.value,window.location.href);return{path:e.pathname,fullPath:e.pathname,get query(){return $l(e.search)},hash:e.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:c.value}},rel:y,target:i,isExternal:u.value||d.value,isActive:!1,isExactActive:!1,...e,href:typeof e?.href==`string`?qu(e.href):c.value,prefetch:x,prefetched:p.value,shouldPrefetch:v});if(!u.value&&!d.value&&!n(s.value)){let n={ref:h,to:s.value,activeClass:t.activeClass||e.activeClass,exactActiveClass:t.exactActiveClass||e.exactActiveClass,replace:t.replace,ariaCurrentValue:t.ariaCurrentValue,custom:t.custom};return t.custom||((g(`interaction`)||p.value)&&_()&&(n.onPointerenter=b,n.onFocus=b,n.onPointerdown=b),p.value&&(n.class=t.prefetchedClass||e.prefetchedClass),n.rel=t.rel||void 0),_s(o,n,t.custom&&r.default?{default:e=>r.default(S(e))}:r.default)}return t.custom?r.default?r.default(S()):null:_s(`a`,{ref:m,href:c.value||null,rel:y,target:i,onClick:async e=>{if(!(u.value||d.value)){e.preventDefault();try{let e=cd(c.value??``);return await(t.replace?a.replace(e):a.push(e))}finally{if(n(s.value)){let e=s.value.slice(1),t=e;try{t=decodeURIComponent(e)}catch{}document.getElementById(t)?.focus()}}}}},r.default?.())}}})}var qp=Kp(_l);function Jp(e,t){if(t!==`append`&&t!==`remove`)return e;let n=t===`append`?fu:du;return cu(e)&&!e.startsWith(`http`)?e:n(e,!0)}function Yp(){let e=B();if(e._observer)return e._observer;let t=null,n=new Map;return e._observer={observe:(e,r)=>(t||=new IntersectionObserver(e=>{for(let t of e){let e=n.get(t.target);(t.isIntersecting||t.intersectionRatio>0)&&e&&e()}}),n.set(e,r),t.observe(e),()=>{n.delete(e),t?.unobserve(e),n.size===0&&(t?.disconnect(),t=null)})}}var Xp=Qd(`site`,{state:()=>({data:null}),getters:{sections:e=>e.data.sections,settings:e=>e.data.sections.settings,categories:e=>e.data.categories},actions:{async load(){this.data=await B().$api(`/public/site`)}}});function Zp(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Qp(e,t=`|`){return e.map(e=>Cm(e)).join(t)}function $p(e,t){return typeof t==`bigint`?t.toString():t}var em=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}};function tm(e){return new em(e)}function nm(e){return e==null}function rm(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function im(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r){let e=t._zod.def.shape[a];return r?r(e,a):e}):lm(e,a,r?r(n.value,a):n.value))}}function dm(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?cm(e,n,()=>t[n]):lm(e,n,r.value))}}function fm(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function pm(e){return JSON.stringify(e)}function mm(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var hm=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function gm(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var _m=tm(()=>{if(fh.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function vm(e){if(gm(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return gm(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function ym(e){return vm(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var bm=new Set([`string`,`number`,`symbol`]);function xm(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Sm(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function V(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function Cm(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function wm(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}var Tm={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Em={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]};function Dm(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return um(i,e,Om(e,t)),Sm(e,fm(n,{shape:i,checks:[]}))}function Om(e,t){let n=sm(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function km(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(Om(e,t)),a={};return um(a,e,Reflect.ownKeys(sm(e)).filter(e=>!i.has(e))),Sm(e,fm(n,{shape:a,checks:[]}))}function Am(e,t){if(!vm(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=sm(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Sm(e,fm(e._zod.def,{shape:jm(e,t)}))}function jm(e,t){let n={};return um(n,e,Reflect.ownKeys(sm(e))),dm(n,t),n}function Mm(e,t){if(!vm(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return Sm(e,fm(e._zod.def,{shape:jm(e,t)}))}function Nm(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return um(n,e,Reflect.ownKeys(sm(e))),um(n,t,Reflect.ownKeys(sm(t))),Sm(e,fm(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Pm(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(Om(t,n)):void 0,o={};return um(o,t,Reflect.ownKeys(sm(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),Sm(t,fm(t._zod.def,{shape:o,checks:[]}))}function Fm(e,t,n){let r=n?new Set(Om(t,n)):void 0,i={};return um(i,t,Reflect.ownKeys(sm(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),Sm(t,fm(t._zod.def,{shape:i}))}function Im(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function zm(e){return typeof e==`string`?e:e?.message}function Bm(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function Vm(e,t,n){var r;for(let i=t;ie;return t[ih]=!0,t}var oh,sh={value:void 0,enumerable:!1},ch=`captureStackTrace`in Error?Error:null;function lh(e){let t=ch;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return ch=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function U(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){sh.value=new a(r);try{Object.defineProperty(n,"_zod",sh)}finally{sh.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Jm(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?lh(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var uh=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},dh=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(oh=globalThis).__zod_globalConfig??(oh.__zod_globalConfig={});var fh=globalThis.__zod_globalConfig;function ph(e){return e&&Object.assign(fh,e),fh}function mh(){let e=this._zod;return e.message??=JSON.stringify(e.def,$p,2),e.message}function hh(e){this._zod.message=e}var gh={get:mh,set:hh,enumerable:!0,configurable:!0},_h={value:void 0,enumerable:!1},vh=new WeakSet([Object.prototype,Error.prototype]),yh=U(`$ZodError`,(e,t)=>{e.name=`$ZodError`,_h.value=t,Object.defineProperty(e,"issues",_h),_h.value=void 0,Object.defineProperty(e,"message",gh);let n=Object.getPrototypeOf(e);vh.has(n)||(vh.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))});function bh(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function xh(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?bh(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Sh(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new uh;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Hm(e,o,ph())));throw hm(n,a?.callee??t),n}return s.value};return t},Th=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Hm(e,o,ph())));throw hm(n,a?.callee??t),n}return s.value};return t},Eh=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new uh;return a.issues.length?Dh(e,a.issues,i):{success:!0,data:a.value}};function Dh(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>Hm(e,n,ph()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}var Oh=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?Dh(e,a.issues,i):{success:!0,data:a.value}},kh=Symbol.for(`zod.compile.invalid`),Ah=Symbol.for(`zod.compile.fallback`),jh=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==kh)return!0;if(r.definite===!0&&n===void 0)return!1}return Mh(e,t,n)});function Mh(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[Ah]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new uh;return a.issues.length===0}var Nh=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},Ph=e=>{let t=wh(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,Ch(n,a))};return n},Fh=e=>{let t=wh(e),n=(e,r,i,a)=>t(e,r,i,Ch(n,a));return n},Ih=e=>{let t=Th(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,Ch(n,a))};return n},Lh=e=>{let t=Th(e),n=async(e,r,i,a)=>await t(e,r,i,Ch(n,a));return n},Rh=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Eh(e)(t,n,i)},zh=e=>(t,n,r)=>Eh(e)(t,n,r),Bh=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Oh(e)(t,n,i)},Vh=e=>async(t,n,r)=>Oh(e)(t,n,r),Hh=/^[cC][0-9a-z]{6,}$/,Uh=/^[0-9a-z]+$/,Wh=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Gh=/^[0-9a-vA-V]{20}$/,Kh=/^[A-Za-z0-9]{27}$/,qh=/^[a-zA-Z0-9_-]{21}$/;function Jh(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var Yh=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Xh=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Zh=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Qh=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,$h=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;function eg(){return new RegExp($h,`u`)}var tg=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ng=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,rg=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,ig=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ag=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,og=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,sg=/^https?$/,cg=/^\+[1-9]\d{6,14}$/,lg=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function ug(e){return RegExp(`^${e}$`)}var dg=ug(lg);function fg(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function pg(e){return RegExp(`^${fg(e)}$`)}function mg(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${fg({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${fg({precision:e.precision})}`:n;return RegExp(`^${lg}T(?:${r})$`)}var hg=/^[\s\S]{0,}$/,gg=/^-?\d+(?:\.\d+)?$/,_g=/^(?:true|false)$/i,vg=/^[^A-Z]*$/,yg=/^[^a-z]*$/,bg=U(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),xg=e=>{let t=e.value;return!nm(t)&&t.length!==void 0},Sg={number:`number`,bigint:`bigint`,object:`date`},Cg=U(`$ZodCheckLessThan`,(e,t)=>{bg.init(e,t);let n=Sg[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value{bg.init(e,t);let n=Sg[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:Sg[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Tg=U(`$ZodCheckMultipleOf`,(e,t)=>{bg.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):im(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Eg=U(`$ZodCheckNumberFormat`,(e,t)=>{bg.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Tm[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}sa&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Dg=U(`$ZodCheckMaxLength`,(e,t)=>{var n;bg.init(e,t),(n=e._zod.def).when??(n.when=xg),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?Wm(r):i)<=t.maximum)return;let a=Gm(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Og=U(`$ZodCheckMinLength`,(e,t)=>{var n;bg.init(e,t),(n=e._zod.def).when??(n.when=xg),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i=t.minimum)return;let a=Gm(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),kg=U(`$ZodCheckLengthEquals`,(e,t)=>{var n;bg.init(e,t),(n=e._zod.def).when??(n.when=xg),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?Wm(r):i;if(a===t.length)return;let o=Gm(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Ag=U(`$ZodCheckStringFormat`,(e,t)=>{var n,r;bg.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),jg=U(`$ZodCheckRegex`,(e,t)=>{Ag.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Mg=U(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=vg,Ag.init(e,t)}),Ng=U(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=yg,Ag.init(e,t)}),Pg=U(`$ZodCheckIncludes`,(e,t)=>{bg.init(e,t);let n=xm(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Fg=U(`$ZodCheckStartsWith`,(e,t)=>{bg.init(e,t);let n=RegExp(`^${xm(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Ig=U(`$ZodCheckEndsWith`,(e,t)=>{bg.init(e,t);let n=RegExp(`.*${xm(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Lg=U(`$ZodCheckOverwrite`,(e,t)=>{bg.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),Rg=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(` +`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(` +`)}\n};`)(...Object.values(this.closed))}},zg={major:4,minor:6,patch:7},W=U(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=zg;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=Im(t),a;for(let o of n){if(o._zod.def.when){if(Lm(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new uh;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(Vm(t.issues,n,e),i||=Im(t,n))});else{if(t.issues.length===n)continue;Vm(t.issues,n,e),i||=Im(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(Im(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new uh;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new uh;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return Xm(this,`~standard`,Hg(this))},set"~standard"(e){Ym(this,`~standard`,e)}}),Bg=(e,t)=>e.issues.length?{issues:e.issues.map(e=>Hm(e,t,ph()))}:{value:e.value};async function Vg(e,t){let n={async:!0};return Bg(await e._zod.run({value:t,issues:[]},n),n)}function Hg(e){return{validate:t=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return Bg(r,n)}catch{}return Vg(e,t)},vendor:`zod`,version:1}}var Ug=U(`$ZodString`,(e,t)=>{W.init(e,t),e._zod.pattern=t.pattern??hg,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),G=U(`$ZodStringFormat`,(e,t)=>{Ag.init(e,t),Ug.init(e,t)}),Wg=U(`$ZodGUID`,(e,t)=>{t.pattern??=Xh,G.init(e,t)}),Gg=U(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Zh(e)}else t.pattern??=Zh();G.init(e,t)}),Kg=U(`$ZodEmail`,(e,t)=>{t.pattern??=Qh,G.init(e,t)});function qg(e){try{return typeof URL<`u`&&typeof URL.canParse==`function`?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function Jg(e,t){return!(`normalize`in t)&&!(`hostname`in t)&&!(`protocol`in t)?qg(e)||2:Yg(e,t)}function Yg(e,t){if(!t.normalize&&t.protocol?.source===sg.source&&!/^https?:\/\//i.test(e))return 1;try{if(typeof URL<`u`){let t=URL;if(typeof t.parse==`function`)return t.parse(e)??2}return new URL(e)}catch{return 2}}var Xg=/[\t\n\r]/g;function Zg(e){return e.replace(Xg,``)}function Qg(e,t){return t.lastIndex=0,t.test(e.hostname)}function $g(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}var e_=U(`$ZodURL`,(e,t)=>{G.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=Jg(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=Zg(r);return}t.hostname&&!Qg(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!$g(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:Zg(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),t_=U(`$ZodEmoji`,(e,t)=>{t.pattern??=eg(),G.init(e,t)}),n_=U(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?qh:Jh(t.length),G.init(e,t)}),r_=U(`$ZodCUID`,(e,t)=>{t.pattern??=Hh,G.init(e,t)}),i_=U(`$ZodCUID2`,(e,t)=>{t.pattern??=Uh,G.init(e,t)}),a_=U(`$ZodULID`,(e,t)=>{t.pattern??=Wh,G.init(e,t)}),o_=U(`$ZodXID`,(e,t)=>{t.pattern??=Gh,G.init(e,t)}),s_=U(`$ZodKSUID`,(e,t)=>{t.pattern??=Kh,G.init(e,t)}),c_=U(`$ZodISODateTime`,(e,t)=>{t.pattern??=mg(t),G.init(e,t)}),l_=U(`$ZodISODate`,(e,t)=>{t.pattern??=dg,G.init(e,t)}),u_=U(`$ZodISOTime`,(e,t)=>{t.pattern??=pg(t),G.init(e,t)}),d_=U(`$ZodISODuration`,(e,t)=>{t.pattern??=Yh,G.init(e,t)}),f_=U(`$ZodIPv4`,(e,t)=>{t.pattern??=tg,G.init(e,t)}),p_=/^[0-9a-fA-F:.]+$/;function m_(e){return p_.test(e)?qg(`http://[${e}]`):!1}var h_=U(`$ZodIPv6`,(e,t)=>{t.pattern??=ng,G.init(e,t),e._zod.check=n=>{m_(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),g_=U(`$ZodCIDRv4`,(e,t)=>{t.pattern??=rg,G.init(e,t)});function __(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:m_(n)}var v_=U(`$ZodCIDRv6`,(e,t)=>{t.pattern??=ig,G.init(e,t),e._zod.check=n=>{__(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}});function y_(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var b_=/^[0-9a-zA-Z+/]*={0,2}$/,x_=U(`$ZodBase64`,(e,t)=>{t.pattern??=b_,G.init(e,t),e._zod.check=n=>{y_(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}}),S_=/^[A-Za-z0-9_-]*$/;function C_(e){if(!S_.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return y_(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var w_=U(`$ZodBase64URL`,(e,t)=>{t.pattern??=S_,G.init(e,t),e._zod.check=n=>{C_(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),T_=U(`$ZodE164`,(e,t)=>{t.pattern??=cg,G.init(e,t)});function E_(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var D_=U(`$ZodJWT`,(e,t)=>{G.init(e,t),e._zod.check=n=>{E_(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),O_=U(`$ZodNumber`,(e,t)=>{W.init(e,t),e._zod.pattern=gg,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),k_=U(`$ZodNumberFormat`,(e,t)=>{Eg.init(e,t),O_.init(e,t)}),A_=U(`$ZodBoolean`,(e,t)=>{W.init(e,t),e._zod.pattern=_g,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),j_=U(`$ZodUnknown`,(e,t)=>{W.init(e,t),e._zod.parse=e=>e}),M_=U(`$ZodNever`,(e,t)=>{W.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function N_(e,t){let n=Bm(e._zod.def.checks);if(!n.length)return;let r=Math.min(...n.map(e=>e[0])),i=e._zod.parse;e._zod.parse=(n,a)=>{let o=t(n.value);if(o>r&&!a?.skipChecks&&a?.direction!==`backward`){for(let[t,r]of Bm(e._zod.def.checks))if(o>t&&r._zod.def.when(n)){let t=n.issues.length;return r._zod.check(n),n.issues[t].continue=!1,Vm(n.issues,t,e),n}}return i(n,a)}}var P_=e=>Array.isArray(e)?e.length:-1;function F_(e,t,n){e.issues.length&&t.issues.push(...Rm(n,e.issues)),t.value[n]=e.value}var I_=U(`$ZodArray`,(e,t)=>{W.init(e,t);let n=fh.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[],s=i?.abortEarly;for(let e=0;eF_(t,r,e)));else if(F_(c,r,e),s&&c.issues.length!==0&&Im(c))break}return o.length?Promise.all(o).then(()=>r):r},N_(e,P_)});function L_(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...Rm(n,e.issues))}!o&&i===void 0?e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]}):e.value===void 0?(o||i===`defaulted`&&!s)&&(t.value[n]=void 0):t.value[n]=e.value}}var R_=[];function z_(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:R_,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=wm(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function B_(e,t,n,r,i,a,o){let s=[],c=i.keySet,l=i.catchall._zod,u=l.def.type,d=l.optin,f=l.optout,p=0;for(let i in t){if(o&&n.issues.length!==p){if(Im(n,p))break;p=n.issues.length}if(c.has(i))continue;if(i===`__proto__`){u===`never`&&s.push(i);continue}if(u===`never`){s.push(i);continue}let a=l.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>L_(e,n,i,t,d,f))):L_(a,n,i,t,d,f)}return s.length&&n.issues.push({code:`unrecognized_keys`,keys:s,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}var V_=U(`$ZodObject`,(e,t)=>{W.init(e,t);let n=Object.getOwnPropertyDescriptor(t,`shape`),r=n?.get?n.get.raw:t.shape??{};if(r){let e=()=>{let n={...r};return Object.defineProperty(t,"shape",{value:n}),e.raw=n,n};e.raw=r,Object.defineProperty(t,"shape",{get:e})}let i=tm(()=>z_(t));H(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||am(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let a=gm,o=t.catchall,s,c=fh.memoizer;c?.attach(e),e._zod.parse=(t,n)=>{s??=i.value;let r=t.value;if(!a(r))return t.issues.push({expected:`object`,code:`invalid_type`,input:r,inst:e}),t;t.value=c?c.alloc(e,t,{},n):{};let l=[],u=s.shape,d=n?.abortEarly,f=t.issues.length;for(let e of s.allKeys){if(d&&t.issues.length!==f){if(Im(t,f))break;f=t.issues.length}if(e===`__proto__`)continue;let i=u[e],a=i._zod.optin,o=i._zod.optout,s=i._zod.run({value:r[e],issues:[]},n);s instanceof Promise?l.push(s.then(n=>L_(n,t,e,r,a,o))):L_(s,t,e,r,a,o)}return o?B_(l,r,t,n,i.value,e,d===!0):l.length?Promise.all(l).then(()=>t):t}}),H_=U(`$ZodObjectJIT`,(e,t)=>{V_.init(e,t);let n=e._zod.parse,r=tm(()=>z_(t)),i=fh.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new Rg([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>` + let ${e}_ab = false; + for (let i = 0; i < ${e}.issues.length; i++) { + const iss = ${e}.issues[i]; + iss.path = iss.path ? [${t}, ...iss.path] : [${t}]; + payload.issues.push(iss); + if (iss.continue !== true) ${e}_ab = true; + } + if (${e}_ab && ctx && ctx.abortEarly) { + payload.value = newResult; + return payload; + }`;o.write(`const input = payload.value;`);let l=Object.create(null),u=0;for(let e of n.allKeys)l[e]=`key_${u++}`;o.write(i?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(let e of n.allKeys){if(e===`__proto__`)continue;let n=l[e],r=typeof e==`symbol`?`syms[${a.indexOf(e)}]`:pm(e),i=`${r} in input`,u=t[e],d=u?._zod?.optin,f=d!==void 0,p=u?._zod?.optout===`optional`;if(o.write(`const ${n} = ${s(r)};`),f&&p){let e=d===`optional`?`${n}_present`:`${n}.value !== undefined || ${n}_present`;o.write(` + const ${n}_present = ${i}; + if (!${n}.issues.length || ${n}_present) { + if (${n}.issues.length) {${c(n,r)} + } + + if (${e}) { + newResult[${r}] = ${n}.value; + } + } + + `)}else f?(o.write(` + if (${n}.issues.length) {${c(n,r)} + } + `),d===`defaulted`?o.write(`newResult[${r}] = ${n}.value;`):o.write(` + if (${n}.value !== undefined || ${i}) { + newResult[${r}] = ${n}.value; + } + `)):o.write(` + const ${n}_present = ${i}; + if (${n}.issues.length) {${c(n,r)} + } + if (!${n}_present && !${n}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${r}] + }); + if (ctx && ctx.abortEarly) { + payload.value = newResult; + return payload; + } + } + + if (${n}_present) { + newResult[${r}] = ${n}.value; + } + + `)}return o.write(`payload.value = newResult;`),o.write(`return payload;`),o.compile()},o,s=gm,c=!fh.jitless,l=c&&_m.value,u=t.catchall,d;e._zod.parse=(i,f)=>{d??=r.value;let p=i.value;return s(p)?c&&l&&f?.async===!1&&f.jitless!==!0?(o||=a(t.shape),i=o(i,f),u?B_([],p,i,f,d,e,f?.abortEarly===!0):i):n(i,f):(i.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),i)}});function U_(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!Im(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Hm(e,r,ph())))}),t)}var W_=U(`$ZodUnion`,(e,t)=>{W.init(e,t),H(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),H(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),H(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),H(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>rm(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>U_(t,r,e,i)):U_(o,r,e,i)}}),G_=U(`$ZodIntersection`,(e,t)=>{W.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>q_(e,t,n)):q_(e,i,a)}});function K_(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(vm(e)&&vm(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=K_(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=K_(t.value,n.value);if(!c.valid){if(Im(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var J_=U(`$ZodEnum`,(e,t)=>{W.init(e,t);let n=Zp(t.entries),r=new Set(n);e._zod.values=r,H(e,`pattern`,e=>{let t=Zp(e.def.entries).filter(e=>bm.has(typeof e));return RegExp(t.length?`^(${t.map(e=>xm(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Y_=U(`$ZodTransform`,(e,t)=>{W.init(e,t),e._zod.optin=`optional`,fh.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new dh(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new uh;return n.value=i,n}});function X_(e,t){return e.value=t.issues.length?void 0:t.value,e}var Z_=U(`$ZodOptional`,(e,t)=>{W.init(e,t),H(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,H(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t,void 0]):void 0}),H(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${rm(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>X_(e,t)):X_(e,r)}return t.innerType._zod.run(e,n)}}),Q_=U(`$ZodExactOptional`,(e,t)=>{Z_.init(e,t),H(e,`values`,e=>e.def.innerType._zod.values),H(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),$_=U(`$ZodNullable`,(e,t)=>{W.init(e,t),H(e,`optin`,e=>e.def.innerType._zod.optin),H(e,`optout`,e=>e.def.innerType._zod.optout),H(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${rm(t.source)}|null)$`):void 0}),H(e,`values`,e=>e.def.innerType._zod.values?new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),ev=U(`$ZodDefault`,(e,t)=>{W.init(e,t),e._zod.optin=`defaulted`,H(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>tv(e,t)):tv(r,t)}});function tv(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var nv=U(`$ZodPrefault`,(e,t)=>{W.init(e,t),e._zod.optin=`defaulted`,H(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),rv=U(`$ZodNonOptional`,(e,t)=>{W.init(e,t),H(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>iv(t,e)):iv(i,e)}});function iv(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function av(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>Hm(e,r,ph()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}var ov=U(`$ZodCatch`,(e,t)=>{W.init(e,t),H(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),H(e,`optout`,e=>e.def.innerType._zod.optout),H(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>av(e,r,t,n)):av(e,r,t,n)}}),sv=U(`$ZodPipe`,(e,t)=>{W.init(e,t),H(e,`values`,e=>e.def.in._zod.values),H(e,`optin`,e=>e.def.in._zod.optin),H(e,`optout`,e=>e.def.out._zod.optout),H(e,`propValues`,e=>e.def.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>cv(e,t.in,n)):cv(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>cv(e,t.out,n)):cv(r,t.out,n)}});function cv(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var lv=U(`$ZodReadonly`,(e,t)=>{W.init(e,t),H(e,`propValues`,e=>e.def.innerType._zod.propValues),H(e,`values`,e=>e.def.innerType._zod.values),H(e,`optin`,e=>e.def.innerType?._zod?.optin),H(e,`optout`,e=>e.def.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(uv):uv(r)}});function uv(e){return e.memo||(e.value=Object.freeze(e.value)),e}var dv=U(`$ZodCustom`,(e,t)=>{bg.init(e,t),W.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>fv(t,n,r,e));fv(i,n,r,e)}});function fv(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(qm(e))}}var pv=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},mv=`~memo`,hv=[];function gv(e){return typeof e==`object`&&!!e}function _v(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var vv=new WeakMap,yv=0,bv=1,xv=2;function Sv(e,t,n){let r=vv.get(e);if(r!==void 0)return r?xv:yv;if(t.has(e))return xv;t.add(e);let i=yv,a=e=>{if(i!==xv&&e?._zod){let r=Sv(e,t,n);r>i&&(i=r)}},o=(e,r)=>{let i=yv;for(let a of Reflect.ownKeys(e)){let o=Object.getOwnPropertyDescriptor(e,a);if(r&&!o.enumerable)continue;let s=o.get?bv:o.value?._zod?Sv(o.value,t,n):yv;s>i&&(i=s)}return i},s=e=>{e>i&&(i=e)},c=e._zod.def;switch(c.type){case`object`:{let e=om(c);s(e?o(e,!0):bv),a(c.catchall);break}case`array`:a(c.element);break;case`tuple`:for(let e of c.items)a(e);a(c.rest);break;case`record`:case`map`:a(c.keyType),a(c.valueType);break;case`set`:a(c.valueType);break;case`union`:for(let e of c.options)a(e);break;case`intersection`:a(c.left),a(c.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:a(c.innerType);break;case`pipe`:a(c.in),a(c.out);break;case`function`:a(c.input),a(c.output);break;case`lazy`:{let r=c._cachedInner??(n?e._zod.innerType:void 0);s(r?Sv(r,t,!1):bv);break}case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in c){let t=Object.getOwnPropertyDescriptor(c,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)a(n);else if(Array.isArray(n))for(let e of n)a(e)}}}return t.delete(e),Cv(e,i)}function Cv(e,t){return t!==bv&&vv.set(e,t===xv),t}function wv(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}var Tv,Ev=[],Dv={alloc(e,t,n){let r=Tv;if(!r)return n;Tv=void 0;let i={value:n,issues:null};return r.set(t.value,i),Ev.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&kv(n,e.value))throw new pv;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r=!1,i,a;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,o=(s,c)=>{if(n===void 0){let i=Sv(e,new Set,!1);if(i===yv)return e._zod.parse=t,e._zod.run===o&&(e._zod.run=t),t(s,c);i===xv||r?n=!0:r=!0}let l=s.value;if(!gv(l))return t(s,c);let u=c[mv];u||(u={buckets:new WeakMap,backEdges:void 0},c[mv]=u);let d;i===c?d=a:(d=wv(u,e),i=c,a=d);let f=d.get(l);if(f)return s.value=f.value,f.issues?f.issues.length&&s.issues.push(..._v(f.issues)):(s.memo=!0,u.backEdges??(u.backEdges=new WeakSet),u.backEdges.add(f.value)),s;Tv=d;let p=Ev.length,m=t(s,c);Tv=void 0;let h=Ev.length>p?Ev.pop():void 0;return m instanceof Promise?m.then(e=>(h&&(h.issues=e.issues.length?_v(e.issues):hv),e)):(h&&(h.issues=m.issues.length?_v(m.issues):hv),m)};e._zod.parse=o,e._zod.run===t&&(e._zod.run=o)})}};function Ov(){return Dv}function kv(e,t){let n=e[mv]?.backEdges;return n!==void 0&&gv(t)&&n.has(t)}var Av=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,currency_code:`currency code`,credit_card:`credit card number`,iban:`IBAN`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(Km(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${Cm(e.values[0])}`:`Invalid option: expected one of ${Qp(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${Qp(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function jv(){return{localeError:Av()}}var Mv,Nv=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Pv(){return new Nv}(Mv=globalThis).__zod_globalRegistry??(Mv.__zod_globalRegistry=Pv());var Fv=globalThis.__zod_globalRegistry;function Iv(e){return e.checks&&=[...e.checks],e}function Lv(e,t){return new e(Iv({type:`string`,...V(t)}))}function Rv(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...V(t)})}function zv(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...V(t)})}function Bv(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...V(t)})}function Vv(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...V(t)})}function Hv(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...V(t)})}function Uv(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...V(t)})}function Wv(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...V(t)})}function Gv(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...V(t)})}function Kv(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...V(t)})}function qv(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...V(t)})}function Jv(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...V(t)})}function Yv(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...V(t)})}function Xv(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...V(t)})}function Zv(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...V(t)})}function Qv(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...V(t)})}function $v(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...V(t)})}function ey(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...V(t)})}function ty(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...V(t)})}function ny(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...V(t)})}function ry(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...V(t)})}function iy(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...V(t)})}function ay(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...V(t)})}function oy(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...V(t)})}function sy(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...V(t)})}function cy(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...V(t)})}function ly(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...V(t)})}function uy(e,t){return new e(Iv({type:`number`,checks:[],...V(t)}))}function dy(e,t){return new e(Iv({type:`number`,coerce:!0,checks:[],...V(t)}))}function fy(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...V(t)})}function py(e,t){return new e({type:`boolean`,...V(t)})}function my(e){return new e({type:`unknown`})}function hy(e,t){return new e({type:`never`,...V(t)})}function gy(e,t){return new Cg({check:`less_than`,...V(t),value:e,inclusive:!1})}function _y(e,t){return new Cg({check:`less_than`,...V(t),value:e,inclusive:!0})}function vy(e,t){return new wg({check:`greater_than`,...V(t),value:e,inclusive:!1})}function yy(e,t){return new wg({check:`greater_than`,...V(t),value:e,inclusive:!0})}function by(e,t){return new Tg({check:`multiple_of`,...V(t),value:e})}function xy(e,t){return new Dg({check:`max_length`,...V(t),maximum:e})}function Sy(e,t){return new Og({check:`min_length`,...V(t),minimum:e})}function Cy(e,t){return new kg({check:`length_equals`,...V(t),length:e})}function wy(e,t){return new jg({check:`string_format`,format:`regex`,...V(t),pattern:e})}function Ty(e){return new Mg({check:`string_format`,format:`lowercase`,...V(e)})}function Ey(e){return new Ng({check:`string_format`,format:`uppercase`,...V(e)})}function Dy(e,t){return new Pg({check:`string_format`,format:`includes`,...V(t),includes:e})}function Oy(e,t){return new Fg({check:`string_format`,format:`starts_with`,...V(t),prefix:e})}function ky(e,t){return new Ig({check:`string_format`,format:`ends_with`,...V(t),suffix:e})}function Ay(e){return new Lg({check:`overwrite`,tx:e})}function jy(e){return Ay(t=>t.normalize(e))}function My(){return Ay(e=>e.trim())}function Ny(){return Ay(e=>e.toLowerCase())}function Py(){return Ay(e=>e.toUpperCase())}function Fy(){return Ay(e=>mm(e))}function Iy(e,t,n){return new e({type:`array`,element:t,...V(n)})}function Ly(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...V(n)})}function Ry(e,t){let n=zy(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(qm(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(qm(r))}},e(t.value,t)),t);return n}function zy(e,t){let n=new bg({check:`custom`,...V(t)});return n._zod.check=e,n}function By(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&am(e,t,n[t]);return e}function Vy(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Fv,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function Hy(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function K(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,K(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&By(o.schema,c),t.io===`input`&&Qy(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Uy(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function Wy(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${Uy(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+Uy(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0])a(n);else{if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}(e.metadataRegistry.get(n[0])?.id||r.cycle||r.count>1&&e.reused===`ref`)&&a(n)}}e.external&&(e.sharedDefsExtractedFor=e.external)}function Gy(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;Gy(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var Ky=new Set([`type`,`properties`,`required`,`additionalProperties`]),qy=[`oneOf`,`anyOf`];function Jy(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function Yy(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!Ky.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??Jy(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}am(n,r,e.length===1?e[0]:Yy(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=Jy(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function Xy(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of Ky)if(t in e)return;let n=t.filter(e=>qy.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=Yy(t);else{let e=n[0],i=qy.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>Yy([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,By(e,r))}function Zy(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):By(i,s),By(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())Gy(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])Xy(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}By(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,am(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:eb(t,`input`,e.processors),output:eb(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function Qy(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return Qy(r.element,n);if(r.type===`set`)return Qy(r.valueType,n);if(r.type===`lazy`)return Qy(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return Qy(r.innerType,n);if(r.type===`intersection`)return Qy(r.left,n)||Qy(r.right,n);if(r.type===`record`||r.type===`map`)return Qy(r.keyType,n)||Qy(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:Qy(r.in,n)||Qy(r.out,n);if(r.type===`object`){for(let e in r.shape)if(Qy(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(Qy(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(Qy(e,n))return!0;return!!(r.rest&&Qy(r.rest,n))}return!1}var $y=(e,t={})=>n=>{let r=Vy({...n,processors:t});return K(e,r),Wy(r,e),Zy(r,e)},eb=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Vy({...i??{},target:a,io:t,processors:n});return K(e,o),Wy(o,e),Zy(o,e)},tb=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},nb=(e,t,n)=>{(e[t]===void 0||n{tb(e,`minimum`,t),nb(e,`maximum`,t)},ib=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},ab=(e,t)=>{e.patterns??=new Set,e.patterns.add(t)},ob=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},sb=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},cb=(e,t)=>tb(e,`minimum`,t.minimum),lb=(e,t)=>nb(e,`maximum`,t.maximum),ub=e=>(t,n)=>{sb(t,n.format);let[r,i]=e[n.format];tb(t,`minimum`,r),nb(t,`maximum`,i)},db={greater_than:(e,t)=>tb(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>nb(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>ib(e,t.value),number_format:ub(Tm),bigint_format:ub(Em),min_length:cb,max_length:lb,length_equals:(e,t)=>rb(e,t.length),min_size:cb,max_size:lb,size_equals:(e,t)=>rb(e,t.size),string_format:(e,t)=>{sb(e,t.format),t.pattern&&ab(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>ob(e,t.mime)};function fb(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)db[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&tb(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&tb(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&nb(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&nb(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&ib(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&ob(t,i.mime);for(let e of i.patterns??[])ab(t,e);return t}var pb={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},mb=new Map([[b_,ag],[S_,og]]),hb=e=>mb.get(e)??e,gb=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=fb(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=pb[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(hb);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},_b=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=fb(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):Hy(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},vb=(e,t,n,r)=>{n.type=`boolean`},yb=(e,t,n,r)=>{n.not={}},bb=(e,t,n,r)=>{let i=e._zod.def,a=Zp(i.entries);a.length===0?n.not={}:(a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a)},xb=(e,t,n,r)=>{Hy(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},Sb=(e,t,n,r)=>{Hy(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},Cb=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=fb(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=K(a.element,t,{...r,path:[...r.path,`items`]})};function wb(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?wb(t.out):t.type===`catch`?wb(t.innerType):e._zod.optin}var Tb=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&Hy(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)am(i.properties,e,K(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?wb(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=K(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Eb=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>K(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Db=(e,t,n,r)=>{let i=e._zod.def,a=K(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=K(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},Ob=(e,t,n,r)=>{let i=e._zod.def,a=K(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},kb=(e,t,n,r)=>{let i=e._zod.def;K(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Ab=Symbol();function jb(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(Hy(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),Ab):JSON.parse(o)}var Mb=(e,t,n,r)=>{let i=e._zod.def;K(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=jb(i.defaultValue,e,t,n,r);o!==Ab&&(n.default=o)},Nb=(e,t,n,r)=>{let i=e._zod.def;K(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=jb(i.defaultValue,e,t,n,r);o!==Ab&&(n._prefault=o)},Pb=(e,t,n,r)=>{let i=e._zod.def;K(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{Hy(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},Fb=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;K(o,t,r);let s=t.seen.get(e);s.ref=o},Ib=(e,t,n,r)=>{let i=e._zod.def;K(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Lb=(e,t,n,r)=>{let i=e._zod.def;K(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Rb=new WeakSet([Object.prototype,Error.prototype]);function zb(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var Bb=U(`ZodError`,(e,t)=>{yh.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);Rb.has(n)||(Rb.add(n),zb(n,`format`,e=>t=>Sh(e,t)),zb(n,`flatten`,e=>t=>xh(e,t)),zb(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,$p,2)}),zb(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,$p,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),Vb=wh(Bb),Hb=Th(Bb),Ub=Eh(Bb),Wb=Oh(Bb),Gb=Ph(Bb),Kb=Fh(Bb),qb=Ih(Bb),Jb=Lh(Bb),Yb=Rh(Bb),Xb=zh(Bb),Zb=Bh(Bb),Qb=Vh(Bb);function $b(){fh.localeError||ph(jv())}function ex(){fh.memoizer||ph({memoizer:Ov()})}var q=U(`ZodType`,(e,t)=>($b(),W.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(fm(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Sm(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(fS(e,t))},superRefine(e,t){return this.check(pS(e,t))},overwrite(e){return this.check(Ay(e))},optional(){return Jx(this)},exactOptional(){return Xx(this)},nullable(){return Qx(this)},nullish(){return Jx(Qx(this))},nonoptional(e){return iS(this,e)},array(){return X(this)},or(e){return Bx([this,e])},and(e){return Hx(this,e)},transform(e){return cS(this,Kx(e))},default(e){return eS(this,e)},prefault(e){return nS(this,e)},catch(e){return oS(this,e)},pipe(e){return cS(this,e)},readonly(){return uS(this)},describe(e){let t=this.clone();return Fv.add(t,{description:e}),t},meta(...e){if(e.length===0)return Fv.get(this);let t=this.clone();return Fv.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return Xm(this,`~standard`,{...Hg(this),jsonSchema:{input:eb(this,`input`),output:eb(this,`output`)}})},set"~standard"(e){Ym(this,`~standard`,e)},parse:function e(t,n){return Vb(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Hb(this,t,n,{callee:e})},safeParse(e,t){return Ub(this,e,t)},async safeParseAsync(e,t){return Wb(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){Ym(this,`spa`,e)},validate(e,t){return jh(this,e,t)},validateAsync(e,t){return Nh(this,e,t)},encode:function e(t,n){return Gb(this,t,n,{callee:e})},decode:function e(t,n){return Kb(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await qb(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await Jb(this,t,n,{callee:e})},safeEncode(e,t){return Yb(this,e,t)},safeDecode(e,t){return Xb(this,e,t)},async safeEncodeAsync(e,t){return Zb(this,e,t)},async safeDecodeAsync(e,t){return Qb(this,e,t)},toJSONSchema(e){return $y(this,{})(e)},get description(){return Fv.get(this)?.description},get _def(){return this._zod.def}}),tx=U(`_ZodString`,(e,t)=>{Ug.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gb(e,t,n,r)},Zm({format:e=>fb(e).format??null,minLength:e=>fb(e).minimum??null,maxLength:e=>fb(e).maximum??null},{regex(...e){return this.check(wy(...e))},includes(...e){return this.check(Dy(...e))},startsWith(...e){return this.check(Oy(...e))},endsWith(...e){return this.check(ky(...e))},min(...e){return this.check(Sy(...e))},max(...e){return this.check(xy(...e))},length(...e){return this.check(Cy(...e))},nonempty(...e){return this.check(Sy(1,...e))},lowercase(e){return this.check(Ty(e))},uppercase(e){return this.check(Ey(e))},trim(){return this.check(My())},normalize(...e){return this.check(jy(...e))},toLowerCase(){return this.check(Ny())},toUpperCase(){return this.check(Py())},slugify(){return this.check(Fy())}})),nx=U(`ZodString`,(e,t)=>{Ug.init(e,t),tx.init(e,t)},{email(e){return this.check(Rv(sx,e))},url(e){return this.check(Wv(dx,e))},jwt(e){return this.check(ay(Ex,e))},emoji(e){return this.check(Gv(fx,e))},guid(e){return this.check(zv(lx,e))},uuid(e){return this.check(Bv(ux,e))},uuidv4(e){return this.check(Vv(ux,e))},uuidv6(e){return this.check(Hv(ux,e))},uuidv7(e){return this.check(Uv(ux,e))},nanoid(e){return this.check(Kv(px,e))},cuid(e){return this.check(qv(mx,e))},cuid2(e){return this.check(Jv(hx,e))},ulid(e){return this.check(Yv(gx,e))},base64(e){return this.check(ny(Cx,e))},base64url(e){return this.check(ry(wx,e))},xid(e){return this.check(Xv(_x,e))},ksuid(e){return this.check(Zv(vx,e))},ipv4(e){return this.check(Qv(yx,e))},ipv6(e){return this.check($v(bx,e))},cidrv4(e){return this.check(ey(xx,e))},cidrv6(e){return this.check(ty(Sx,e))},e164(e){return this.check(iy(Tx,e))},datetime(e){return this.check(oy(rx,e))},date(e){return this.check(sy(ix,e))},time(e){return this.check(cy(ax,e))},duration(e){return this.check(ly(ox,e))}});function J(e){return Lv(nx,e)}var Y=U(`ZodStringFormat`,(e,t)=>{G.init(e,t),tx.init(e,t)}),rx=U(`ZodISODateTime`,(e,t)=>{c_.init(e,t),Y.init(e,t)}),ix=U(`ZodISODate`,(e,t)=>{l_.init(e,t),Y.init(e,t)}),ax=U(`ZodISOTime`,(e,t)=>{u_.init(e,t),Y.init(e,t)}),ox=U(`ZodISODuration`,(e,t)=>{d_.init(e,t),Y.init(e,t)}),sx=U(`ZodEmail`,(e,t)=>{Kg.init(e,t),Y.init(e,t)});function cx(e){return Rv(sx,e)}var lx=U(`ZodGUID`,(e,t)=>{Wg.init(e,t),Y.init(e,t)}),ux=U(`ZodUUID`,(e,t)=>{Gg.init(e,t),Y.init(e,t)}),dx=U(`ZodURL`,(e,t)=>{e_.init(e,t),Y.init(e,t)}),fx=U(`ZodEmoji`,(e,t)=>{t_.init(e,t),Y.init(e,t)}),px=U(`ZodNanoID`,(e,t)=>{n_.init(e,t),Y.init(e,t)}),mx=U(`ZodCUID`,(e,t)=>{r_.init(e,t),Y.init(e,t)}),hx=U(`ZodCUID2`,(e,t)=>{i_.init(e,t),Y.init(e,t)}),gx=U(`ZodULID`,(e,t)=>{a_.init(e,t),Y.init(e,t)}),_x=U(`ZodXID`,(e,t)=>{o_.init(e,t),Y.init(e,t)}),vx=U(`ZodKSUID`,(e,t)=>{s_.init(e,t),Y.init(e,t)}),yx=U(`ZodIPv4`,(e,t)=>{f_.init(e,t),Y.init(e,t)}),bx=U(`ZodIPv6`,(e,t)=>{h_.init(e,t),Y.init(e,t)}),xx=U(`ZodCIDRv4`,(e,t)=>{g_.init(e,t),Y.init(e,t)}),Sx=U(`ZodCIDRv6`,(e,t)=>{v_.init(e,t),Y.init(e,t)}),Cx=U(`ZodBase64`,(e,t)=>{x_.init(e,t),Y.init(e,t)}),wx=U(`ZodBase64URL`,(e,t)=>{w_.init(e,t),Y.init(e,t)}),Tx=U(`ZodE164`,(e,t)=>{T_.init(e,t),Y.init(e,t)}),Ex=U(`ZodJWT`,(e,t)=>{D_.init(e,t),Y.init(e,t)}),Dx=U(`ZodNumber`,(e,t)=>{O_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_b(e,t,n,r),e.isFinite=!0},Zm({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=fb(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=fb(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=fb(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>fb(e).format??null},{gt(e,t){return this.check(vy(e,t))},gte(e,t){return this.check(yy(e,t))},min(e,t){return this.check(yy(e,t))},lt(e,t){return this.check(gy(e,t))},lte(e,t){return this.check(_y(e,t))},max(e,t){return this.check(_y(e,t))},int(e){return this.check(Ax(e))},safe(e){return this.check(Ax(e))},positive(e){return this.check(vy(0,e))},nonnegative(e){return this.check(yy(0,e))},negative(e){return this.check(gy(0,e))},nonpositive(e){return this.check(_y(0,e))},multipleOf(e,t){return this.check(by(e,t))},step(e,t){return this.check(by(e,t))},finite(){return this}}));function Ox(e){return uy(Dx,e)}var kx=U(`ZodNumberFormat`,(e,t)=>{k_.init(e,t),Dx.init(e,t)});function Ax(e){return fy(kx,e)}var jx=U(`ZodBoolean`,(e,t)=>{A_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vb(e,t,n,r)});function Mx(e){return py(jx,e)}var Nx=U(`ZodUnknown`,(e,t)=>{j_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Px(){return my(Nx)}var Fx=U(`ZodNever`,(e,t)=>{M_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yb(e,t,n,r)});function Ix(e){return hy(Fx,e)}var Lx=U(`ZodArray`,(e,t)=>{ex(),I_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Cb(e,t,n,r),e.element=t.element},{min(e,t){return this.check(Sy(e,t))},nonempty(e){return this.check(Sy(1,e))},max(e,t){return this.check(xy(e,t))},length(e,t){return this.check(Cy(e,t))},unwrap(){return this.element}});function X(e,t){return Iy(Lx,e,t)}var Rx=U(`ZodObject`,(e,t)=>{ex(),H_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Tb(e,t,n,r),rh(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return Wx(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(fm(this._zod.def,{catchall:e}))},passthrough(){return this.clone(fm(this._zod.def,{catchall:Px()}))},loose(){return this.clone(fm(this._zod.def,{catchall:Px()}))},strict(){return this.clone(fm(this._zod.def,{catchall:Ix()}))},strip(){return this.clone(fm(this._zod.def,{catchall:void 0}))},extend(e){return Am(this,e)},safeExtend(e){return Mm(this,e)},merge(e){return Nm(this,e)},pick(e){return Dm(this,e)},omit(e){return km(this,e)},partial(...e){return Pm(qx,this,e[0])},exactPartial(...e){return Pm(Yx,this,e[0],`exactPartial`)},required(...e){return Fm(rS,this,e[0])}});function Z(e,t){return new Rx({type:`object`,shape:e??{},...V(t)})}var zx=U(`ZodUnion`,(e,t)=>{W_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Eb(e,t,n,r),e.options=t.options});function Bx(e,t){return new zx({type:`union`,options:e,...V(t)})}var Vx=U(`ZodIntersection`,(e,t)=>{G_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Db(e,t,n,r)});function Hx(e,t){return new Vx({type:`intersection`,left:e,right:t})}var Ux=U(`ZodEnum`,(e,t)=>{J_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>bb(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Ux({...t,checks:[],...V(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Ux({...t,checks:[],...V(r),entries:i})}});function Wx(e,t){return new Ux({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...V(t)})}var Gx=U(`ZodTransform`,(e,t)=>{ex(),Y_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Sb(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new dh(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(qm(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(qm(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Kx(e){return new Gx({type:`transform`,transform:e})}var qx=U(`ZodOptional`,(e,t)=>{Z_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Lb(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Jx(e){return new qx({type:`optional`,innerType:e})}var Yx=U(`ZodExactOptional`,(e,t)=>{Q_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Lb(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Xx(e){return new Yx({type:`optional`,innerType:e})}var Zx=U(`ZodNullable`,(e,t)=>{$_.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ob(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Qx(e){return new Zx({type:`nullable`,innerType:e})}var $x=U(`ZodDefault`,(e,t)=>{ev.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Mb(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function eS(e,t){return new $x({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():ym(t)}})}var tS=U(`ZodPrefault`,(e,t)=>{nv.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Nb(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function nS(e,t){return new tS({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():ym(t)}})}var rS=U(`ZodNonOptional`,(e,t)=>{rv.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>kb(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function iS(e,t){return new rS({type:`nonoptional`,innerType:e,...V(t)})}var aS=U(`ZodCatch`,(e,t)=>{ov.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Pb(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function oS(e,t){return new aS({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:ah(t)})}var sS=U(`ZodPipe`,(e,t)=>{sv.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fb(e,t,n,r),e.in=t.in,e.out=t.out});function cS(e,t){return new sS({type:`pipe`,in:e,out:t})}var lS=U(`ZodReadonly`,(e,t)=>{lv.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ib(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function uS(e){return new lS({type:`readonly`,innerType:e})}var dS=U(`ZodCustom`,(e,t)=>{dv.init(e,t),q.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xb(e,t,n,r)});function fS(e,t={}){return Ly(dS,e,t)}function pS(e,t){return Ry(e,t)}function mS(e){return dy(Dx,e)}var Q=(e=300)=>J().trim().min(1,`این فیلد الزامی است`).max(e),$=(e=300)=>J().trim().max(e).default(``),hS=mS().int().positive(),gS=J().trim().min(1,`این فیلد الزامی است`).max(80).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/,`فقط حروف کوچک انگلیسی، عدد و خط تیره (مثلاً safety-shoes)`),_S=J().trim().min(1).max(80),vS=Z({url:Q(500),alt:$(200)}),yS=Z({label:Q(60),href:Q(300)}),bS={ArrowLeft:`arrow-left`,ArrowRight:`arrow-right`,ArrowUp:`arrow-up`,ArrowDown:`arrow-down`,ChevronDown:`arrow-down-1`,ChevronUp:`arrow-up-1`,ChevronLeft:`arrow-left-1`,ChevronRight:`arrow-right-1`,Menu:`menu`,X:`close-circle`,Plus:`add`,Trash:`trash`,Edit:`edit-2`,Copy:`copy`,Check:`tick-circle`,Search:`search-normal`,Filter:`filter`,Eye:`eye`,EyeOff:`eye-slash`,ImageOff:`gallery-slash`,Quote:`quote-up`,Phone:`call`,Mail:`sms`,MapPin:`location`,Clock:`clock`,Globe:`global`,Send:`send-2`,Instagram:`instagram`,Linkedin:`link`,MessageCircle:`messages-2`,Youtube:`video-play`,AtSign:`sms`,HardHat:`security-safe`,Glasses:`glass`,Shirt:`tag`,Footprints:`routing-2`,Hand:`shield-tick`,Ear:`volume-high`,Wind:`wind-2`,TriangleAlert:`danger`,Siren:`lamp-on`,TrafficCone:`danger`,Construction:`setting-2`,Factory:`building-4`,Building2:`buildings-2`,Fuel:`gas-station`,Pickaxe:`hierarchy`,Flame:`flash`,Zap:`flash-circle`,Leaf:`tree`,HeartPulse:`heart-tick`,Star:`star`,ThumbsUp:`like-1`,Target:`radar-2`,Lock:`lock`,ShieldCheck:`shield-tick`,ShieldPlus:`shield-security`,ShieldAlert:`shield-cross`,BadgeCheck:`verify`,Award:`award`,Medal:`medal-star`,PackageCheck:`box-tick`,Package:`box`,Truck:`truck-time`,Warehouse:`buildings`,Users:`people`,Handshake:`user-tag`,Headset:`24-support`,ClipboardCheck:`clipboard-tick`,FileCheck:`document-text`,FileSearch:`document-filter`,GraduationCap:`teacher`,Gauge:`status`,Microscope:`search-status`,Wrench:`setting-4`};function xS(e){return e?e in bS?bS[e]:e.replace(/^vuesax-linear:/,``):`shield-tick`}[...`shield-tick.shield-security.shield-cross.security-safe.security-user.verify.award.medal-star.box-tick.box.truck-time.buildings.building-4.buildings-2.global.people.user-tag.24-support.call.sms.location.clock.clipboard-tick.document-text.document-filter.teacher.status.search-status.setting-2.setting-4.glass.tag.routing-2.volume-high.wind-2.danger.lamp-on.gas-station.hierarchy.flash.flash-circle.tree.heart-tick.star.like-1.radar-2.lock.eye.gallery.video-play`.split(`.`),...Object.keys(bS)];var SS=X(J().trim().min(1).max(120)).max(20).default([]),CS=Z({name:Q(80),value:Q(300)}),wS=Z({id:hS.optional(),slug:gS,name:Q(120),desc:$(1e3)});Z({slug:gS,code:Q(20),name:Q(120),nameEn:$(120),shortDesc:$(500),fullDesc:$(3e3),icon:$(40),coverImageId:hS.nullable().default(null),isPublished:Mx().default(!0),seoTitle:$(120),seoDescription:$(300),groups:X(wS).max(30).default([])}),Z({categoryId:hS,groupId:hS.nullable().default(null),code:Q(30),slug:gS,name:Q(160),nameEn:$(160),desc:$(2e3),specs:SS,variants:SS,details:$(8e3),brand:$(80),origin:$(80),sizes:SS,standards:SS,features:X(J().trim().min(1).max(300)).max(30).default([]),applications:SS,attributes:X(CS).max(40).default([]),packaging:$(200),minOrder:$(120),seoTitle:$(120),seoDescription:$(300),imageId:hS.nullable().default(null),galleryIds:X(hS).max(12).default([]),isPublished:Mx().default(!0)}),Z({ids:X(hS).min(1).max(1e3)}),Z({categoryId:hS.optional(),groupId:hS.optional(),q:J().trim().max(100).optional(),status:Wx([`published`,`draft`]).optional(),page:mS().int().min(1).default(1),pageSize:mS().int().min(1).max(200).default(50)});var TS=[`Saturday`,`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],ES=[`website`,`telegram`,`instagram`,`linkedin`,`whatsapp`,`bale`,`eitaa`,`aparat`,`youtube`,`email`,`phone`],DS=Z({icon:_S,label:Q(80)}),OS=Z({icon:_S,title:Q(80),desc:$(300)}),kS=Z({tag:Q(80),title:Q(200),highlight:$(120),desc:$(500)}),AS={settings:Z({name:Q(80),nameEn:Q(120),title:Q(120),description:Q(400),phone:Q(30),phoneDisplay:Q(40),email:cx(`ایمیل معتبر نیست`),address:Z({street:Q(200),locality:Q(80),country:J().trim().length(2).default(`IR`)}),workingHours:Q(120),openingHours:Z({days:X(Wx(TS)).max(7),opens:J().regex(/^\d{2}:\d{2}$/,`قالب ساعت باید HH:MM باشد`),closes:J().regex(/^\d{2}:\d{2}$/,`قالب ساعت باید HH:MM باشد`)}),foundingDate:J().regex(/^\d{4}$/,`سال میلادی چهاررقمی`),socials:X(Z({type:Wx(ES),url:Q(300)})).max(12),ogImage:vS.extend({width:Ox().int().positive().nullable().default(null),height:Ox().int().positive().nullable().default(null)})}),hero:Z({enabled:Mx().default(!0),badge:Q(120),title:Q(80),titleHighlight:Q(80),intro:Q(600),primaryCta:yS,secondaryCta:yS,chips:X(DS).max(6),miniStats:X(Z({value:Q(20),label:Q(80)})).max(4),image:vS,lastInspection:$(20)}),tape:Z({enabled:Mx().default(!0),items:X(Q(80)).min(1).max(20)}),stats:Z({enabled:Mx().default(!0),items:X(Z({end:Ox().int().min(0).max(1e9),suffix:$(5),label:Q(80),note:$(40)})).max(8)}),productsIntro:Z({enabled:Mx().default(!0),head:kS,ctaLabel:Q(60),trust:X(OS).max(6)}),about:Z({enabled:Mx().default(!0),head:kS,body:Q(2e3),image:vS,badge:Z({value:Q(20),label:Q(80)}),timeline:X(Z({year:Q(10),text:Q(200)})).max(12),features:X(DS).max(6)}),services:Z({enabled:Mx().default(!0),head:kS,items:X(Z({icon:_S,title:Q(80),desc:Q(600),items:X(Q(120)).max(8)})).max(10)}),standards:Z({enabled:Mx().default(!0),head:kS,note:$(500),ctaLabel:Q(80),items:X(Z({code:Q(30),label:Q(80)})).max(12)}),industries:Z({enabled:Mx().default(!0),head:kS,items:X(Z({name:Q(60),nameEn:$(60),count:$(20),image:vS})).max(12)}),testimonials:Z({enabled:Mx().default(!0),head:kS,items:X(Z({text:Q(600),name:Q(80),role:$(160)})).max(12)}),contact:Z({enabled:Mx().default(!0),head:kS,emergencyTitle:Q(80),emergencyText:Q(400),formTag:$(80),formTitle:Q(160),successTitle:Q(80),successText:Q(300)}),footer:Z({enabled:Mx().default(!0),about:Q(500),copyright:Q(160),certLine:$(160),emergencyNote:$(80)})};Object.keys(AS);var jS=[`ADMIN`,`EDITOR`],MS=J().min(8,`رمز عبور باید حداقل ۸ کاراکتر باشد`).max(128),NS=`۰۱۲۳۴۵۶۷۸۹`,PS=`٠١٢٣٤٥٦٧٨٩`;function FS(e){let t=e.trim().replace(/[\s\-()]/g,``);return t=t.replace(/[۰-۹٠-٩]/g,e=>{let t=NS.indexOf(e);if(t>=0)return String(t);let n=PS.indexOf(e);return n>=0?String(n):e}),t.startsWith(`+98`)?t=`0${t.slice(3)}`:t.startsWith(`0098`)?t=`0${t.slice(4)}`:t.startsWith(`98`)&&t.length===12&&(t=`0${t.slice(2)}`),t}var IS=J().trim().min(1,`شماره موبایل را وارد کنید`).transform(FS).pipe(J().regex(/^09\d{9}$/,`شماره موبایل معتبر نیست (مثلاً ۰۹۱۲۱۲۳۴۵۶۷)`));Z({phone:IS,password:J().min(1,`رمز عبور را وارد کنید`).max(128)}),Z({currentPassword:J().min(1,`رمز فعلی را وارد کنید`).max(128),newPassword:MS}),Z({phone:IS,name:Q(80),role:Wx(jS),password:MS}),Z({name:Q(80),role:Wx(jS),isActive:Mx(),password:MS.optional()}),Z({name:Q(80),org:Q(120),phone:J().trim().min(1,`این فیلد الزامی است`).max(30).regex(/^[0-9۰-۹+\-\s()]{5,30}$/,`شماره تماس معتبر نیست`),message:$(2e3),website:J().max(200).optional()}),Z({status:Wx([`NEW`,`READ`,`ARCHIVED`])}),Z({alt:$(200)});var LS={"vuesax-linear:24-support":` + + + + +`,"vuesax-linear:3d-cube-scan":` + + + + + + +`,"vuesax-linear:3d-rotate":` + + + + + + +`,"vuesax-linear:3d-square":` + + + + + +`,"vuesax-linear:3dcube":` + + + + +`,"vuesax-linear:3full":` + + + + + +`,"vuesax-linear:3square":` + + + + +`,"vuesax-linear:aave-(aave)":` + + + + +`,"vuesax-linear:activity":` + + + +`,"vuesax-linear:add-circle":` + + + + +`,"vuesax-linear:add-square":` + + + + +`,"vuesax-linear:add":` + + + +`,"vuesax-linear:additem":` + + + + + +`,"vuesax-linear:airdrop":` + + + + + +`,"vuesax-linear:airplane-square":` + + + +`,"vuesax-linear:airplane":` + + +`,"vuesax-linear:airpod":` + + + + + +`,"vuesax-linear:airpods":` + + + + + + + +`,"vuesax-linear:alarm":` + + + + + + +`,"vuesax-linear:align-bottom":` + + + + +`,"vuesax-linear:align-horizontally":` + + + + + + +`,"vuesax-linear:align-left":` + + + + +`,"vuesax-linear:align-right":` + + + + +`,"vuesax-linear:align-vertically":` + + + + + + +`,"vuesax-linear:android":` + + + + + + + + +`,"vuesax-linear:ankr-(ankr)":` + + + + + +`,"vuesax-linear:apple":` + + +`,"vuesax-linear:aquarius":` + + + + +`,"vuesax-linear:archive-1":` + + + + +`,"vuesax-linear:archive-add":` + + + + +`,"vuesax-linear:archive-book":` + + + + + +`,"vuesax-linear:archive-minus":` + + + +`,"vuesax-linear:archive-slash":` + + + + +`,"vuesax-linear:archive-tick":` + + + +`,"vuesax-linear:archive":` + + + + + + + +`,"vuesax-linear:arrange-circle-2":` + + + + + + +`,"vuesax-linear:arrange-circle":` + + + + + + +`,"vuesax-linear:arrange-square-2":` + + + + + + +`,"vuesax-linear:arrange-square":` + + + + + + +`,"vuesax-linear:arrow-2":` + + + + + +`,"vuesax-linear:arrow-3":` + + + + + +`,"vuesax-linear:arrow-bottom":` + + +`,"vuesax-linear:arrow-circle-down":` + + + +`,"vuesax-linear:arrow-circle-left":` + + + +`,"vuesax-linear:arrow-circle-right":` + + + +`,"vuesax-linear:arrow-down-1":` + + + +`,"vuesax-linear:arrow-down-2":` + + + + +`,"vuesax-linear:arrow-down":` + + +`,"vuesax-linear:arrow-left-1":` + + +`,"vuesax-linear:arrow-left-2":` + + + + +`,"vuesax-linear:arrow-left-3":` + + +`,"vuesax-linear:arrow-left":` + + + +`,"vuesax-linear:arrow-right-1":` + + +`,"vuesax-linear:arrow-right-2":` + + + + +`,"vuesax-linear:arrow-right-3":` + + +`,"vuesax-linear:arrow-right":` + + + +`,"vuesax-linear:arrow-square-down":` + + + +`,"vuesax-linear:arrow-square-left":` + + + +`,"vuesax-linear:arrow-square-right":` + + + +`,"vuesax-linear:arrow-square-up":` + + + +`,"vuesax-linear:arrow-square":` + + + + + + +`,"vuesax-linear:arrow-swap-horizontal":` + + + + + +`,"vuesax-linear:arrow-up-1":` + + +`,"vuesax-linear:arrow-up-2":` + + + + +`,"vuesax-linear:arrow-up-3":` + + +`,"vuesax-linear:arrow-up":` + + + +`,"vuesax-linear:arrow":` + + + + + + + +`,"vuesax-linear:attach-circle":` + + + +`,"vuesax-linear:attach-square":` + + + +`,"vuesax-linear:audio-square":` + + + + + +`,"vuesax-linear:augur-(rep)":` + + + + +`,"vuesax-linear:autobrightness":` + + + + +`,"vuesax-linear:autonio-(niox)":` + + + + + +`,"vuesax-linear:avalanche-(avax)":` + + + + +`,"vuesax-linear:award":` + + + + +`,"vuesax-linear:back-square":` + + + + +`,"vuesax-linear:backward-10-seconds":` + + + + + +`,"vuesax-linear:backward-15-seconds":` + + + + + +`,"vuesax-linear:backward-5-seconds":` + + + + +`,"vuesax-linear:backward-item-1":` + + + + +`,"vuesax-linear:backward-item":` + + + + +`,"vuesax-linear:backward":` + + + +`,"vuesax-linear:bag-2":` + + + + + +`,"vuesax-linear:bag-cross-1":` + + + + + + +`,"vuesax-linear:bag-cross":` + + + + + + + +`,"vuesax-linear:bag-happy":` + + + + + + +`,"vuesax-linear:bag-tick-2":` + + + + + +`,"vuesax-linear:bag-tick":` + + + + + + +`,"vuesax-linear:bag-timer":` + + + + + +`,"vuesax-linear:bag":` + + + + + + + +`,"vuesax-linear:bank":` + + + + + + + + + + +`,"vuesax-linear:barcode":` + + + + + + + + + +`,"vuesax-linear:battery-3full":` + + + + + +`,"vuesax-linear:battery-charging":` + + + + + +`,"vuesax-linear:battery-disable":` + + + + + +`,"vuesax-linear:battery-empty-1":` + + + + +`,"vuesax-linear:battery-empty":` + + + +`,"vuesax-linear:battery-full":` + + + + + + +`,"vuesax-linear:be":` + + + + +`,"vuesax-linear:bezier-1":` + + + + + + + + + + +`,"vuesax-linear:bezier":` + + + + + + + + + + +`,"vuesax-linear:bill":` + + + + + +`,"vuesax-linear:binance-coin-(bnb)":` + + + + + + +`,"vuesax-linear:binance-usd-(busd)":` + + + + + +`,"vuesax-linear:bitcoin-(btc)":` + + + + + + + + + + +`,"vuesax-linear:bitcoin-card":` + + + + + + + + + + + +`,"vuesax-linear:bitcoin-convert":` + + + + + + + + + +`,"vuesax-linear:bitcoin-refresh":` + + + + + + + + + +`,"vuesax-linear:blend-2":` + + + + + + +`,"vuesax-linear:blend":` + + + +`,"vuesax-linear:blogger":` + + + + + +`,"vuesax-linear:bluetooth-2":` + + + + +`,"vuesax-linear:bluetooth-circle":` + + + +`,"vuesax-linear:bluetooth-rectangle":` + + + +`,"vuesax-linear:bluetooth":` + + +`,"vuesax-linear:blur-1":` + + + + + + +`,"vuesax-linear:blur":` + + + + + + +`,"vuesax-linear:book-1":` + + + + + +`,"vuesax-linear:book-saved":` + + + + +`,"vuesax-linear:book-square":` + + + + +`,"vuesax-linear:book":` + + + + + +`,"vuesax-linear:bookmark-2":` + + + +`,"vuesax-linear:bookmark":` + + + + + +`,"vuesax-linear:bootsrap":` + + + +`,"vuesax-linear:box-1":` + + + + +`,"vuesax-linear:box-2":` + + +`,"vuesax-linear:box-add":` + + + + + + + +`,"vuesax-linear:box-remove":` + + + + + + + +`,"vuesax-linear:box-search":` + + + + + + +`,"vuesax-linear:box-tick":` + + + + + + +`,"vuesax-linear:box-time":` + + + + + + +`,"vuesax-linear:box":` + + + + + +`,"vuesax-linear:briefcase":` + + + + + + +`,"vuesax-linear:brifecase-cross":` + + + + + + + + +`,"vuesax-linear:brifecase-tick":` + + + + + + + +`,"vuesax-linear:brifecase-timer":` + + + + + + + +`,"vuesax-linear:broom":` + + + + + + + +`,"vuesax-linear:brush-1":` + + + + + +`,"vuesax-linear:brush-2":` + + + + + +`,"vuesax-linear:brush-3":` + + + + + + +`,"vuesax-linear:brush":` + + + + +`,"vuesax-linear:bubble":` + + + + +`,"vuesax-linear:bucket-circle-1":` + + + + + + +`,"vuesax-linear:bucket-circle":` + + + + + + +`,"vuesax-linear:bucket-square-1":` + + + + + + +`,"vuesax-linear:bucket-square":` + + + + + + +`,"vuesax-linear:building-3":` + + + + + + + + +`,"vuesax-linear:building-4":` + + + + + + + + +`,"vuesax-linear:building":` + + + + + + + +`,"vuesax-linear:buildings-2":` + + + + + + + +`,"vuesax-linear:buildings":` + + + + + + + + +`,"vuesax-linear:buliding":` + + + + + + + + + +`,"vuesax-linear:bus":` + + + + + + +`,"vuesax-linear:buy-crypto":` + + + + +`,"vuesax-linear:cake":` + + + + + + + + +`,"vuesax-linear:calculator":` + + + + + + + + + +`,"vuesax-linear:calendar-1":` + + + + + + +`,"vuesax-linear:calendar-2":` + + + + + + + + +`,"vuesax-linear:calendar-add":` + + + + + + + + + + + +`,"vuesax-linear:calendar-circle":` + + + + + + +`,"vuesax-linear:calendar-edit":` + + + + + + + + + + +`,"vuesax-linear:calendar-remove":` + + + + + + + + + + + +`,"vuesax-linear:calendar-search":` + + + + + + + + + + +`,"vuesax-linear:calendar-tick":` + + + + + + + + + + +`,"vuesax-linear:calendar":` + + + + + + + + + + + +`,"vuesax-linear:call-add":` + + + + +`,"vuesax-linear:call-calling":` + + + + +`,"vuesax-linear:call-incoming":` + + + +`,"vuesax-linear:call-minus":` + + + +`,"vuesax-linear:call-outgoing":` + + + +`,"vuesax-linear:call-received":` + + + +`,"vuesax-linear:call-remove":` + + + + +`,"vuesax-linear:call-slash":` + + + + +`,"vuesax-linear:call":` + + +`,"vuesax-linear:camera-slash":` + + + + + + +`,"vuesax-linear:camera":` + + + + +`,"vuesax-linear:candle-2":` + + + + + + + +`,"vuesax-linear:candle":` + + + + + + + +`,"vuesax-linear:car":` + + + + + + + + + +`,"vuesax-linear:card-add":` + + + + + + + +`,"vuesax-linear:card-coin":` + + + + + + +`,"vuesax-linear:card-edit":` + + + + + + + +`,"vuesax-linear:card-pos":` + + + + + + +`,"vuesax-linear:card-receive":` + + + + + + + +`,"vuesax-linear:card-remove-1":` + + + + + + + +`,"vuesax-linear:card-remove":` + + + + + + + +`,"vuesax-linear:card-send":` + + + + + + + +`,"vuesax-linear:card-slash":` + + + + + + + +`,"vuesax-linear:card-tick-1":` + + + + + + +`,"vuesax-linear:card-tick":` + + + + + + +`,"vuesax-linear:card":` + + + + + +`,"vuesax-linear:cardano-(ada)":` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`,"vuesax-linear:cards":` + + + + + + +`,"vuesax-linear:category-2":` + + + + + +`,"vuesax-linear:category":` + + + + + +`,"vuesax-linear:cd":` + + + +`,"vuesax-linear:celo-(celo)":` + + + +`,"vuesax-linear:celsius-(cel)-":` + + + + +`,"vuesax-linear:chainlink-(link)":` + + +`,"vuesax-linear:chart-1":` + + + + + +`,"vuesax-linear:chart-2":` + + + + +`,"vuesax-linear:chart-21":` + + + + + +`,"vuesax-linear:chart-3":` + + + + +`,"vuesax-linear:chart-square":` + + + + + +`,"vuesax-linear:chart-success":` + + + + + + + + +`,"vuesax-linear:chart":` + + + + + +`,"vuesax-linear:check":` + + + + + +`,"vuesax-linear:chrome":` + + + + + + +`,"vuesax-linear:civic-(cvc)":` + + + +`,"vuesax-linear:clipboard-close":` + + + + + +`,"vuesax-linear:clipboard-export":` + + + + + + +`,"vuesax-linear:clipboard-import":` + + + + + + +`,"vuesax-linear:clipboard-text":` + + + + + +`,"vuesax-linear:clipboard-tick":` + + + + +`,"vuesax-linear:clipboard":` + + + + +`,"vuesax-linear:clock-1":` + + + +`,"vuesax-linear:clock":` + + + + + +`,"vuesax-linear:close-circle":` + + + + +`,"vuesax-linear:close-square":` + + + + +`,"vuesax-linear:cloud-add":` + + + + + +`,"vuesax-linear:cloud-change":` + + + + +`,"vuesax-linear:cloud-connection":` + + + + + + +`,"vuesax-linear:cloud-cross":` + + + + + + +`,"vuesax-linear:cloud-drizzle":` + + + + + + + + +`,"vuesax-linear:cloud-fog":` + + + + + + +`,"vuesax-linear:cloud-lightning":` + + + + + +`,"vuesax-linear:cloud-minus":` + + + + + +`,"vuesax-linear:cloud-notif":` + + + + +`,"vuesax-linear:cloud-plus":` + + + + + + +`,"vuesax-linear:cloud-remove":` + + + + + + +`,"vuesax-linear:cloud-snow":` + + + + + + + +`,"vuesax-linear:cloud-sunny":` + + + + + +`,"vuesax-linear:cloud":` + + + +`,"vuesax-linear:code-1":` + + + + +`,"vuesax-linear:code-circle":` + + + + + +`,"vuesax-linear:code":` + + + + + +`,"vuesax-linear:coffee":` + + + + + + + +`,"vuesax-linear:coin-1":` + + + + + + +`,"vuesax-linear:coin":` + + + + +`,"vuesax-linear:color-swatch":` + + + + + + +`,"vuesax-linear:colorfilter":` + + + + +`,"vuesax-linear:colors-square-1":` + + + + + +`,"vuesax-linear:colors-square":` + + + + + +`,"vuesax-linear:command-square":` + + + + + + + +`,"vuesax-linear:command":` + + + + + + +`,"vuesax-linear:component-1":` + + +`,"vuesax-linear:component":` + + +`,"vuesax-linear:computing":` + + + + + + +`,"vuesax-linear:convert-3d-cube":` + + + + + + + + + +`,"vuesax-linear:convert":` + + + + +`,"vuesax-linear:convertshape-2":` + + + + + +`,"vuesax-linear:convertshape":` + + + + + +`,"vuesax-linear:copy-success":` + + + + +`,"vuesax-linear:copy":` + + + +`,"vuesax-linear:copyright":` + + + +`,"vuesax-linear:courthouse":` + + + + + + + + + +`,"vuesax-linear:cpu-charge":` + + + + + + + + + + + + + + + + +`,"vuesax-linear:cpu-setting":` + + + + + + + + + + + + + +`,"vuesax-linear:cpu":` + + + + + + + + + + + + + + + +`,"vuesax-linear:creative-commons":` + + + + +`,"vuesax-linear:crop":` + + + + + + +`,"vuesax-linear:crown-1":` + + + + +`,"vuesax-linear:crown":` + + +`,"vuesax-linear:cup":` + + + + + + + +`,"vuesax-linear:dai-(dai)":` + + + + + +`,"vuesax-linear:danger":` + + + + +`,"vuesax-linear:dash-(dash)":` + + + +`,"vuesax-linear:data-2":` + + + + + + + + + +`,"vuesax-linear:data":` + + + + + + + +`,"vuesax-linear:decred-(dcr)":` + + + +`,"vuesax-linear:dent-(dent)":` + + + + + +`,"vuesax-linear:designtools":` + + + + + + + + +`,"vuesax-linear:device-message":` + + + + + + + + +`,"vuesax-linear:devices-1":` + + + + + + + + + + + + + + + + + +`,"vuesax-linear:devices":` + + + + + + + + + + +`,"vuesax-linear:diagram":` + + + +`,"vuesax-linear:diamonds":` + + + +`,"vuesax-linear:direct-down":` + + +`,"vuesax-linear:direct-inbox":` + + + + + +`,"vuesax-linear:direct-left":` + + +`,"vuesax-linear:direct-normal":` + + + +`,"vuesax-linear:direct-notification":` + + + + +`,"vuesax-linear:direct-right":` + + +`,"vuesax-linear:direct-send":` + + + + + +`,"vuesax-linear:direct-up":` + + +`,"vuesax-linear:direct":` + + + + + +`,"vuesax-linear:directbox-default":` + + + +`,"vuesax-linear:directbox-notif":` + + + + + +`,"vuesax-linear:directbox-receive":` + + + + + + +`,"vuesax-linear:directbox-send":` + + + + + + +`,"vuesax-linear:discount-circle":` + + + + + +`,"vuesax-linear:discount-shape":` + + + + + +`,"vuesax-linear:discover-1":` + + + +`,"vuesax-linear:discover":` + + + +`,"vuesax-linear:dislike":` + + + +`,"vuesax-linear:document-1":` + + + +`,"vuesax-linear:document-cloud":` + + + + + +`,"vuesax-linear:document-code-2":` + + + + + +`,"vuesax-linear:document-code":` + + + + + +`,"vuesax-linear:document-copy":` + + + + + + + +`,"vuesax-linear:document-download":` + + + + + +`,"vuesax-linear:document-favorite":` + + + + +`,"vuesax-linear:document-filter":` + + + + + +`,"vuesax-linear:document-forward":` + + + + +`,"vuesax-linear:document-like":` + + + + +`,"vuesax-linear:document-normal":` + + + +`,"vuesax-linear:document-previous":` + + + + + +`,"vuesax-linear:document-sketch":` + + + + +`,"vuesax-linear:document-text-1":` + + + + + +`,"vuesax-linear:document-text":` + + + + + +`,"vuesax-linear:document-upload":` + + + + + +`,"vuesax-linear:document":` + + + + +`,"vuesax-linear:dollar-circle":` + + + + +`,"vuesax-linear:dollar-square":` + + + + +`,"vuesax-linear:dribbble":` + + + + + +`,"vuesax-linear:driver-2":` + + + + + + + + + +`,"vuesax-linear:driver-refresh":` + + + + + + + + + +`,"vuesax-linear:driver":` + + + + + + + + + +`,"vuesax-linear:driving":` + + + + + + + + + + + +`,"vuesax-linear:drop":` + + +`,"vuesax-linear:dropbox":` + + + + + + +`,"vuesax-linear:edit-2":` + + + + +`,"vuesax-linear:edit":` + + + + +`,"vuesax-linear:educare-(ekt)":` + + + + + +`,"vuesax-linear:electricity":` + + + + + +`,"vuesax-linear:element-1":` + + + + +`,"vuesax-linear:element-2":` + + + + +`,"vuesax-linear:element-3":` + + + + + +`,"vuesax-linear:element-4":` + + + + + +`,"vuesax-linear:element-equal":` + + + + + + +`,"vuesax-linear:element-plus":` + + + + + + +`,"vuesax-linear:emercoin-(emc)":` + + + + +`,"vuesax-linear:emoji-happy":` + + + + + +`,"vuesax-linear:emoji-normal":` + + + + + +`,"vuesax-linear:emoji-sad":` + + + + + +`,"vuesax-linear:empty-wallet-add":` + + + + + + + + +`,"vuesax-linear:empty-wallet-change":` + + + + + + + + + +`,"vuesax-linear:empty-wallet-remove":` + + + + + + + + +`,"vuesax-linear:empty-wallet-tick":` + + + + + + + +`,"vuesax-linear:empty-wallet-time":` + + + + + + + +`,"vuesax-linear:empty-wallet":` + + + + + +`,"vuesax-linear:enjin-coin-(enj)":` + + + + +`,"vuesax-linear:eos-(eos)":` + + + +`,"vuesax-linear:eraser-1":` + + + + + + +`,"vuesax-linear:eraser-2":` + + + + + + +`,"vuesax-linear:eraser":` + + + + +`,"vuesax-linear:ethereum-(eth)":` + + + + + +`,"vuesax-linear:ethereum-classic-(etc)":` + + + + +`,"vuesax-linear:export-1":` + + + + +`,"vuesax-linear:export-2":` + + + + +`,"vuesax-linear:export-3":` + + + + +`,"vuesax-linear:export":` + + + + +`,"vuesax-linear:external-drive":` + + + + + + + +`,"vuesax-linear:eye-slash":` + + + + + + + +`,"vuesax-linear:eye":` + + + +`,"vuesax-linear:facebook":` + + + +`,"vuesax-linear:fatrows":` + + + +`,"vuesax-linear:favorite-chart":` + + + + +`,"vuesax-linear:figma-1":` + + + + + + + +`,"vuesax-linear:figma":` + + + + + + +`,"vuesax-linear:filter-add":` + + + + + +`,"vuesax-linear:filter-edit":` + + + + +`,"vuesax-linear:filter-remove":` + + + + + + +`,"vuesax-linear:filter-search":` + + + + +`,"vuesax-linear:filter-square":` + + + +`,"vuesax-linear:filter-tick":` + + + + +`,"vuesax-linear:filter":` + + + +`,"vuesax-linear:finger-cricle":` + + + + +`,"vuesax-linear:finger-scan":` + + + + + + + +`,"vuesax-linear:firstline":` + + + + + + +`,"vuesax-linear:flag-2":` + + + +`,"vuesax-linear:flag":` + + + +`,"vuesax-linear:flash-1":` + + +`,"vuesax-linear:flash-circle-1":` + + + +`,"vuesax-linear:flash-circle-2":` + + + +`,"vuesax-linear:flash-circle":` + + + +`,"vuesax-linear:flash-slash":` + + + + +`,"vuesax-linear:flash":` + + + + + +`,"vuesax-linear:folder-2":` + + + +`,"vuesax-linear:folder-add":` + + + + +`,"vuesax-linear:folder-cloud":` + + + +`,"vuesax-linear:folder-connection":` + + + + + + +`,"vuesax-linear:folder-cross":` + + + + +`,"vuesax-linear:folder-favorite":` + + + +`,"vuesax-linear:folder-minus":` + + + +`,"vuesax-linear:folder-open":` + + + + +`,"vuesax-linear:folder":` + + +`,"vuesax-linear:format-circle":` + + + + + + +`,"vuesax-linear:format-square":` + + + + + + +`,"vuesax-linear:forward-10-seconds":` + + + + + +`,"vuesax-linear:forward-15-seconds":` + + + + + +`,"vuesax-linear:forward-5-seconds":` + + + + +`,"vuesax-linear:forward-item-1":` + + + + +`,"vuesax-linear:forward-item":` + + + + +`,"vuesax-linear:forward-square":` + + + + +`,"vuesax-linear:forward":` + + + +`,"vuesax-linear:frame-1":` + + + + + +`,"vuesax-linear:frame-2":` + + + + +`,"vuesax-linear:frame-3":` + + + + + + + +`,"vuesax-linear:frame-4":` + + + + +`,"vuesax-linear:frame-5":` + + + + +`,"vuesax-linear:frame":` + + + +`,"vuesax-linear:framer":` + + + +`,"vuesax-linear:ftx-token-(ftt)":` + + + + + +`,"vuesax-linear:gallery-add":` + + + + + + +`,"vuesax-linear:gallery-edit":` + + + + + + +`,"vuesax-linear:gallery-export":` + + + + + + +`,"vuesax-linear:gallery-favorite":` + + + + + +`,"vuesax-linear:gallery-import":` + + + + + + +`,"vuesax-linear:gallery-remove":` + + + + + + +`,"vuesax-linear:gallery-slash":` + + + + + + +`,"vuesax-linear:gallery-tick":` + + + + + +`,"vuesax-linear:gallery":` + + + + +`,"vuesax-linear:game":` + + + + + + + + + +`,"vuesax-linear:gameboy":` + + + + + + + +`,"vuesax-linear:gas-station":` + + + + + + +`,"vuesax-linear:gemini-2":` + + + + + + + +`,"vuesax-linear:gemini":` + + + + + +`,"vuesax-linear:ghost":` + + + + +`,"vuesax-linear:gift":` + + + + + + +`,"vuesax-linear:glass-1":` + + + + + + +`,"vuesax-linear:glass":` + + + +`,"vuesax-linear:global-edit":` + + + + + + + + +`,"vuesax-linear:global-refresh":` + + + + + + + + + +`,"vuesax-linear:global-search":` + + + + + + + + +`,"vuesax-linear:global":` + + + + + + +`,"vuesax-linear:google-1":` + + +`,"vuesax-linear:google-play":` + + + + + +`,"vuesax-linear:google":` + + + + + +`,"vuesax-linear:gps-slash":` + + + + + + + + + +`,"vuesax-linear:gps":` + + + + + + + +`,"vuesax-linear:grammerly":` + + + +`,"vuesax-linear:graph":` + + + +`,"vuesax-linear:grid-1":` + + + + + + +`,"vuesax-linear:grid-2":` + + + + +`,"vuesax-linear:grid-3":` + + + + + +`,"vuesax-linear:grid-4":` + + + +`,"vuesax-linear:grid-5":` + + + + +`,"vuesax-linear:grid-6":` + + + + + +`,"vuesax-linear:grid-7":` + + + + +`,"vuesax-linear:grid-8":` + + + + + + + +`,"vuesax-linear:grid-9":` + + + +`,"vuesax-linear:grid-edit":` + + + + + + + + +`,"vuesax-linear:grid-eraser":` + + + + + + + + +`,"vuesax-linear:grid-lock":` + + + + + + + + +`,"vuesax-linear:group-1":` + + + + + + + +`,"vuesax-linear:group-10":` + + + +`,"vuesax-linear:group-11":` + + + + + + +`,"vuesax-linear:group-2":` + + + + + + +`,"vuesax-linear:group-3":` + + + +`,"vuesax-linear:group-4":` + + + + + + +`,"vuesax-linear:group-5":` + + + +`,"vuesax-linear:group-6":` + + + + + + +`,"vuesax-linear:group-7":` + + + + + + + + + +`,"vuesax-linear:group-8":` + + + +`,"vuesax-linear:group-9":` + + + + +`,"vuesax-linear:group":` + + + + + +`,"vuesax-linear:happyemoji":` + + + +`,"vuesax-linear:harmony-(one)":` + + + + + + +`,"vuesax-linear:hashtag-1":` + + + + + +`,"vuesax-linear:hashtag-down":` + + + + + + + + +`,"vuesax-linear:hashtag-up":` + + + + + + + + +`,"vuesax-linear:hashtag":` + + + + + +`,"vuesax-linear:headphone":` + + +`,"vuesax-linear:headphones":` + + + + + + + + + +`,"vuesax-linear:health":` + + + +`,"vuesax-linear:heart-add":` + + + + + +`,"vuesax-linear:heart-circle":` + + + +`,"vuesax-linear:heart-edit":` + + + + +`,"vuesax-linear:heart-remove":` + + + + + +`,"vuesax-linear:heart-search":` + + + + +`,"vuesax-linear:heart-slash":` + + + + +`,"vuesax-linear:heart-tick":` + + + + +`,"vuesax-linear:heart":` + + +`,"vuesax-linear:hedera-hashgraph-(hbar)":` + + + + + + +`,"vuesax-linear:hex-(hex)":` + + + + +`,"vuesax-linear:hierarchy-2":` + + + + + + +`,"vuesax-linear:hierarchy-3":` + + + + + +`,"vuesax-linear:hierarchy-square-2":` + + + + + + + +`,"vuesax-linear:hierarchy-square-3":` + + + + + + + +`,"vuesax-linear:hierarchy-square":` + + + + + + + + +`,"vuesax-linear:hierarchy":` + + + + + + +`,"vuesax-linear:home-2":` + + + +`,"vuesax-linear:home-hashtag":` + + + + + +`,"vuesax-linear:home-trend-down":` + + + + +`,"vuesax-linear:home-trend-up":` + + + + +`,"vuesax-linear:home-wifi":` + + + + + +`,"vuesax-linear:home":` + + + +`,"vuesax-linear:hospital":` + + + + + + +`,"vuesax-linear:house-2":` + + + + + + +`,"vuesax-linear:house":` + + + + + + + +`,"vuesax-linear:html-3":` + + + + +`,"vuesax-linear:html-5":` + + + +`,"vuesax-linear:huobi-token-(ht)":` + + + +`,"vuesax-linear:icon-(icx)":` + + + + + +`,"vuesax-linear:illustrator":` + + + + + + +`,"vuesax-linear:image":` + + + +`,"vuesax-linear:import-1":` + + + + +`,"vuesax-linear:import-2":` + + + + +`,"vuesax-linear:import":` + + + + +`,"vuesax-linear:info-circle":` + + + + +`,"vuesax-linear:information":` + + + + +`,"vuesax-linear:instagram":` + + + + +`,"vuesax-linear:iost-(iost)":` + + + + + +`,"vuesax-linear:java-script":` + + + + +`,"vuesax-linear:js":` + + + +`,"vuesax-linear:judge":` + + + + + +`,"vuesax-linear:kanban":` + + + +`,"vuesax-linear:key-square":` + + + + + +`,"vuesax-linear:key":` + + + + +`,"vuesax-linear:keyboard-open":` + + + + + + + +`,"vuesax-linear:keyboard":` + + + + + + +`,"vuesax-linear:kyber-network-(knc)":` + + + + +`,"vuesax-linear:lamp-1":` + + + + +`,"vuesax-linear:lamp-charge":` + + + + +`,"vuesax-linear:lamp-on":` + + + +`,"vuesax-linear:lamp-slash":` + + + + + +`,"vuesax-linear:lamp":` + + + + +`,"vuesax-linear:language-circle":` + + + + + + +`,"vuesax-linear:language-square":` + + + + + + +`,"vuesax-linear:layer":` + + + + +`,"vuesax-linear:level":` + + + + +`,"vuesax-linear:lifebuoy":` + + + + + + + +`,"vuesax-linear:like-1":` + + + +`,"vuesax-linear:like-dislike":` + + + + + +`,"vuesax-linear:like-shapes":` + + + + +`,"vuesax-linear:like-tag":` + + + + +`,"vuesax-linear:like":` + + + +`,"vuesax-linear:link-1":` + + + + +`,"vuesax-linear:link-2":` + + + +`,"vuesax-linear:link-21":` + + + +`,"vuesax-linear:link-circle":` + + + + +`,"vuesax-linear:link-square":` + + + + +`,"vuesax-linear:link":` + + + +`,"vuesax-linear:litecoin(ltc)":` + + + + +`,"vuesax-linear:location-add":` + + + + +`,"vuesax-linear:location-cross":` + + + + +`,"vuesax-linear:location-minus":` + + + +`,"vuesax-linear:location-slash":` + + + + + +`,"vuesax-linear:location-tick":` + + + +`,"vuesax-linear:location":` + + + +`,"vuesax-linear:lock-1":` + + + + +`,"vuesax-linear:lock-circle":` + + + + + +`,"vuesax-linear:lock-slash":` + + + + + +`,"vuesax-linear:lock":` + + + + + + +`,"vuesax-linear:login-1":` + + + + +`,"vuesax-linear:login":` + + + + +`,"vuesax-linear:logout-1":` + + + + +`,"vuesax-linear:logout":` + + + + +`,"vuesax-linear:lovely":` + + + +`,"vuesax-linear:magic-star":` + + + +`,"vuesax-linear:magicpen":` + + + + + + +`,"vuesax-linear:main-component-1":` + + + + +`,"vuesax-linear:main-component":` + + + + +`,"vuesax-linear:maker-(mkr)":` + + + + +`,"vuesax-linear:man":` + + + + +`,"vuesax-linear:map-1":` + + + + +`,"vuesax-linear:map":` + + + + + + +`,"vuesax-linear:mask-1":` + + + + + + +`,"vuesax-linear:mask-2":` + + + + + + +`,"vuesax-linear:mask-3":` + + + +`,"vuesax-linear:mask":` + + + + + + +`,"vuesax-linear:math":` + + + + + + + + +`,"vuesax-linear:maximize-1":` + + + + + +`,"vuesax-linear:maximize-2":` + + + + + + + +`,"vuesax-linear:maximize-21":` + + + + + +`,"vuesax-linear:maximize-3":` + + + + + +`,"vuesax-linear:maximize-4":` + + + + + +`,"vuesax-linear:maximize-circle":` + + + + + + + +`,"vuesax-linear:maximize":` + + + + + + + + +`,"vuesax-linear:medal-star":` + + + + +`,"vuesax-linear:medal":` + + + +`,"vuesax-linear:menu-1":` + + + + + +`,"vuesax-linear:menu-board":` + + + + + + + +`,"vuesax-linear:menu":` + + + + +`,"vuesax-linear:message-2":` + + + +`,"vuesax-linear:message-add-1":` + + + + +`,"vuesax-linear:message-add":` + + + + + + +`,"vuesax-linear:message-circle":` + + + +`,"vuesax-linear:message-edit":` + + + + +`,"vuesax-linear:message-favorite":` + + + + + + +`,"vuesax-linear:message-minus":` + + + +`,"vuesax-linear:message-notif":` + + + + + + +`,"vuesax-linear:message-programming":` + + + + + +`,"vuesax-linear:message-question":` + + + + +`,"vuesax-linear:message-remove":` + + + + + + +`,"vuesax-linear:message-search":` + + + + + + + +`,"vuesax-linear:message-square":` + + + +`,"vuesax-linear:message-text-1":` + + + + +`,"vuesax-linear:message-text":` + + + + +`,"vuesax-linear:message-tick":` + + + + + +`,"vuesax-linear:message-time":` + + + + + +`,"vuesax-linear:message":` + + + + + +`,"vuesax-linear:messages-1":` + + + + + + +`,"vuesax-linear:messages-2":` + + + +`,"vuesax-linear:messages-3":` + + + +`,"vuesax-linear:messages":` + + + + +`,"vuesax-linear:messenger":` + + + +`,"vuesax-linear:microphone-2":` + + + + + + +`,"vuesax-linear:microphone-slash-1":` + + + + + + + +`,"vuesax-linear:microphone-slash":` + + + + + + + + +`,"vuesax-linear:microphone":` + + + + + +`,"vuesax-linear:microscope":` + + + + + + +`,"vuesax-linear:milk":` + + + + + + +`,"vuesax-linear:mini-music-sqaure":` + + + + + + +`,"vuesax-linear:minus-cirlce":` + + + +`,"vuesax-linear:minus-square":` + + + +`,"vuesax-linear:minus":` + + +`,"vuesax-linear:mirror":` + + + +`,"vuesax-linear:mirroring-screen":` + + + + + +`,"vuesax-linear:mobile-programming":` + + + + + +`,"vuesax-linear:mobile":` + + + + +`,"vuesax-linear:monero-(xmr)":` + + + +`,"vuesax-linear:money-2":` + + + + + + + +`,"vuesax-linear:money-3":` + + + + + +`,"vuesax-linear:money-4":` + + + + + + + +`,"vuesax-linear:money-add":` + + + + + + + +`,"vuesax-linear:money-change":` + + + + + + + + +`,"vuesax-linear:money-forbidden":` + + + + + + +`,"vuesax-linear:money-receive":` + + + + + + +`,"vuesax-linear:money-remove":` + + + + + + + +`,"vuesax-linear:money-send":` + + + + + + +`,"vuesax-linear:money-tick":` + + + + + + +`,"vuesax-linear:money-time":` + + + + + + +`,"vuesax-linear:money":` + + + + + +`,"vuesax-linear:moneys":` + + + + + + +`,"vuesax-linear:monitor-mobbile":` + + + + + + + +`,"vuesax-linear:monitor-recorder":` + + + + + + + +`,"vuesax-linear:monitor":` + + + + + +`,"vuesax-linear:moon":` + + +`,"vuesax-linear:more-2":` + + + + +`,"vuesax-linear:more-circle":` + + + + + +`,"vuesax-linear:more-square":` + + + + + +`,"vuesax-linear:more":` + + + + +`,"vuesax-linear:mouse-1":` + + + +`,"vuesax-linear:mouse-circle":` + + + +`,"vuesax-linear:mouse-square":` + + + +`,"vuesax-linear:mouse":` + + + + +`,"vuesax-linear:music-circle":` + + + + + + + + + + +`,"vuesax-linear:music-dashboard":` + + + + + + + +`,"vuesax-linear:music-filter":` + + + + + + + + + +`,"vuesax-linear:music-library-2":` + + + + + + + + +`,"vuesax-linear:music-play":` + + + +`,"vuesax-linear:music-playlist":` + + + + + + + + +`,"vuesax-linear:music-square-add":` + + + + + + + + + +`,"vuesax-linear:music-square-remove":` + + + + + + + + + +`,"vuesax-linear:music-square-search":` + + + + + + + + +`,"vuesax-linear:music-square":` + + + + + + +`,"vuesax-linear:music":` + + + + + +`,"vuesax-linear:musicnote":` + + + + +`,"vuesax-linear:nebulas-(nas)":` + + + + + +`,"vuesax-linear:nem-(xem)":` + + + + +`,"vuesax-linear:nexo-(nexo)":` + + + +`,"vuesax-linear:next":` + + + +`,"vuesax-linear:note-1":` + + + + + + +`,"vuesax-linear:note-2":` + + + + + +`,"vuesax-linear:note-21":` + + + +`,"vuesax-linear:note-add":` + + + + + + +`,"vuesax-linear:note-favorite":` + + + + + + + + +`,"vuesax-linear:note-remove":` + + + + + + + + +`,"vuesax-linear:note-square":` + + + + + +`,"vuesax-linear:note-text":` + + + + + + +`,"vuesax-linear:note":` + + + + + +`,"vuesax-linear:notification-1":` + + + +`,"vuesax-linear:notification-bing":` + + + + +`,"vuesax-linear:notification-circle":` + + + +`,"vuesax-linear:notification-favorite":` + + + + +`,"vuesax-linear:notification-status":` + + + + + +`,"vuesax-linear:notification":` + + + + +`,"vuesax-linear:ocean-protocol-(ocean)":` + + + + + + + + + + + + + + + + + + + + + + + + + +`,"vuesax-linear:okb-(okb)":` + + + + + +`,"vuesax-linear:omega-circle-1":` + + + +`,"vuesax-linear:omega-circle":` + + + +`,"vuesax-linear:omega-square-1":` + + + +`,"vuesax-linear:omega-square":` + + + +`,"vuesax-linear:ontology-(ont)":` + + + +`,"vuesax-linear:paintbucket":` + + + + +`,"vuesax-linear:paperclip-2":` + + +`,"vuesax-linear:paperclip":` + + +`,"vuesax-linear:password-check":` + + + + + + +`,"vuesax-linear:path-2":` + + + + +`,"vuesax-linear:path-square":` + + + + + +`,"vuesax-linear:path":` + + + + +`,"vuesax-linear:pause-circle":` + + + + +`,"vuesax-linear:pause":` + + + +`,"vuesax-linear:paypal":` + + + +`,"vuesax-linear:pen-add-1":` + + + + + + + + +`,"vuesax-linear:pen-add":` + + + + + + + + +`,"vuesax-linear:pen-close-1":` + + + + + + + + +`,"vuesax-linear:pen-close":` + + + + + + + + +`,"vuesax-linear:pen-remove-1":` + + + + + + + +`,"vuesax-linear:pen-remove":` + + + + + + + +`,"vuesax-linear:pen-tool-1":` + + + + + + + + + +`,"vuesax-linear:pen-tool-2-1":` + + + + + + + + + +`,"vuesax-linear:pen-tool-2":` + + + + + + + + + +`,"vuesax-linear:pen-tool":` + + + + + + + + + +`,"vuesax-linear:people":` + + + + + + + +`,"vuesax-linear:percentage-square":` + + + + + +`,"vuesax-linear:personalcard":` + + + + + + + +`,"vuesax-linear:pet":` + + + + + + +`,"vuesax-linear:pharagraphspacing":` + + + + + + +`,"vuesax-linear:photoshop":` + + + + +`,"vuesax-linear:picture-frame":` + + + + +`,"vuesax-linear:play-add":` + + + + + + +`,"vuesax-linear:play-circle":` + + + +`,"vuesax-linear:play-cricle":` + + + + + + +`,"vuesax-linear:play-remove":` + + + + + + +`,"vuesax-linear:play":` + + +`,"vuesax-linear:polkadot-(dot)":` + + + +`,"vuesax-linear:polygon-(matic)":` + + + +`,"vuesax-linear:polyswarm-(nct)":` + + + + + +`,"vuesax-linear:presention-chart":` + + + + + + +`,"vuesax-linear:previous":` + + + +`,"vuesax-linear:printer-slash":` + + + + + + + + +`,"vuesax-linear:printer":` + + + + + + +`,"vuesax-linear:profile-2user":` + + + + + +`,"vuesax-linear:profile-add":` + + + + + +`,"vuesax-linear:profile-circle":` + + + + +`,"vuesax-linear:profile-delete":` + + + + + +`,"vuesax-linear:profile-remove":` + + + + +`,"vuesax-linear:profile-tick":` + + + + +`,"vuesax-linear:profile":` + + + +`,"vuesax-linear:programming-arrow":` + + + + + + + +`,"vuesax-linear:programming-arrows":` + + + + + + + +`,"vuesax-linear:python":` + + + + + + +`,"vuesax-linear:quant-(qnt)":` + + + + + + + + + +`,"vuesax-linear:quote-down-circle":` + + + + + + +`,"vuesax-linear:quote-down-square":` + + + + + + +`,"vuesax-linear:quote-down":` + + + + + +`,"vuesax-linear:quote-up-circle":` + + + + + + +`,"vuesax-linear:quote-up-square":` + + + + + + +`,"vuesax-linear:quote-up":` + + + + + +`,"vuesax-linear:radar-1":` + + + + + + +`,"vuesax-linear:radar-2":` + + + +`,"vuesax-linear:radar":` + + +`,"vuesax-linear:radio":` + + + + + + + +`,"vuesax-linear:ram-2":` + + + + + + +`,"vuesax-linear:ram":` + + + + +`,"vuesax-linear:ranking-1":` + + + + + +`,"vuesax-linear:ranking":` + + + + + +`,"vuesax-linear:receipt-1":` + + + + +`,"vuesax-linear:receipt-2-1":` + + + + + + +`,"vuesax-linear:receipt-2":` + + + + +`,"vuesax-linear:receipt-add":` + + + + + +`,"vuesax-linear:receipt-discount":` + + + + + + +`,"vuesax-linear:receipt-disscount":` + + + + + +`,"vuesax-linear:receipt-edit":` + + + + + + +`,"vuesax-linear:receipt-item":` + + + + + + + +`,"vuesax-linear:receipt-minus":` + + + + +`,"vuesax-linear:receipt-search":` + + + + + + +`,"vuesax-linear:receipt-square":` + + + +`,"vuesax-linear:receipt-text":` + + + + + +`,"vuesax-linear:receipt":` + + + +`,"vuesax-linear:receive-square-2":` + + + + + +`,"vuesax-linear:receive-square":` + + + + + +`,"vuesax-linear:received":` + + + + +`,"vuesax-linear:record-circle":` + + + +`,"vuesax-linear:record":` + + +`,"vuesax-linear:recovery-convert":` + + + + + +`,"vuesax-linear:redo":` + + + +`,"vuesax-linear:refresh-2":` + + +`,"vuesax-linear:refresh-circle":` + + + + + + +`,"vuesax-linear:refresh-left-square":` + + + + + +`,"vuesax-linear:refresh-right-square":` + + + + + +`,"vuesax-linear:refresh-square-2":` + + + +`,"vuesax-linear:refresh":` + + + +`,"vuesax-linear:repeat-circle":` + + + + + + +`,"vuesax-linear:repeat":` + + + + + +`,"vuesax-linear:repeate-music":` + + + + +`,"vuesax-linear:repeate-one":` + + + + +`,"vuesax-linear:reserve":` + + + + + +`,"vuesax-linear:rotate-left-1":` + + + +`,"vuesax-linear:rotate-left":` + + + + +`,"vuesax-linear:rotate-right-1":` + + + +`,"vuesax-linear:rotate-right":` + + + + +`,"vuesax-linear:route-square":` + + + +`,"vuesax-linear:routing-2":` + + + + + + +`,"vuesax-linear:routing":` + + + + + + +`,"vuesax-linear:row-horizontal":` + + + +`,"vuesax-linear:row-vertical":` + + + +`,"vuesax-linear:ruler&pen":` + + + + + + + + +`,"vuesax-linear:ruler":` + + + + + + +`,"vuesax-linear:safe-home":` + + + +`,"vuesax-linear:sagittarius":` + + + + +`,"vuesax-linear:save-2":` + + + + +`,"vuesax-linear:save-add":` + + + + + +`,"vuesax-linear:save-minus":` + + + + +`,"vuesax-linear:save-remove":` + + + + + +`,"vuesax-linear:scan-barcode":` + + + + + + + + + +`,"vuesax-linear:scan":` + + + + + + + +`,"vuesax-linear:scanner":` + + + + +`,"vuesax-linear:scanning":` + + + + + + + + + +`,"vuesax-linear:scissor-1":` + + + + + +`,"vuesax-linear:scissor-2":` + + + + + + +`,"vuesax-linear:scissor":` + + + + + +`,"vuesax-linear:screenmirroring":` + + + +`,"vuesax-linear:scroll":` + + + + +`,"vuesax-linear:search-favorite-1":` + + + + +`,"vuesax-linear:search-favorite":` + + + + +`,"vuesax-linear:search-normal-1":` + + + +`,"vuesax-linear:search-normal":` + + + +`,"vuesax-linear:search-status-1":` + + + + + +`,"vuesax-linear:search-status":` + + + + + +`,"vuesax-linear:search-zoom-in-1":` + + + + + +`,"vuesax-linear:search-zoom-in":` + + + + + +`,"vuesax-linear:search-zoom-out-1":` + + + + +`,"vuesax-linear:search-zoom-out":` + + + + +`,"vuesax-linear:security-card":` + + + + + + +`,"vuesax-linear:security-safe":` + + + + +`,"vuesax-linear:security-time":` + + + + +`,"vuesax-linear:security-user":` + + + + +`,"vuesax-linear:security":` + + +`,"vuesax-linear:send-1":` + + + +`,"vuesax-linear:send-2":` + + + +`,"vuesax-linear:send-sqaure-2":` + + + + + +`,"vuesax-linear:send-square":` + + + + + +`,"vuesax-linear:send":` + + + + +`,"vuesax-linear:setting-2":` + + + +`,"vuesax-linear:setting-3":` + + + + + + + + +`,"vuesax-linear:setting-4":` + + + + + + + +`,"vuesax-linear:setting-5":` + + + + + + + + + + +`,"vuesax-linear:setting":` + + + +`,"vuesax-linear:settings":` + + + + +`,"vuesax-linear:shapes-1":` + + + +`,"vuesax-linear:shapes-2":` + + + +`,"vuesax-linear:shapes":` + + + +`,"vuesax-linear:share":` + + + + + + + +`,"vuesax-linear:shield-cross":` + + + + +`,"vuesax-linear:shield-search":` + + + + +`,"vuesax-linear:shield-security":` + + + + +`,"vuesax-linear:shield-slash":` + + + + +`,"vuesax-linear:shield-tick":` + + + +`,"vuesax-linear:shield":` + + +`,"vuesax-linear:ship":` + + + + + +`,"vuesax-linear:shop-add":` + + + + + + + + + +`,"vuesax-linear:shop-remove":` + + + + + + + + +`,"vuesax-linear:shop":` + + + + + + +`,"vuesax-linear:shopping-bag":` + + + + +`,"vuesax-linear:shopping-cart":` + + + + + +`,"vuesax-linear:siacoin-(sc)":` + + + + +`,"vuesax-linear:sidebar-bottom":` + + + + +`,"vuesax-linear:sidebar-left":` + + + + +`,"vuesax-linear:sidebar-right":` + + + + +`,"vuesax-linear:sidebar-top":` + + + + +`,"vuesax-linear:signpost":` + + + + + + +`,"vuesax-linear:simcard-1":` + + + + + +`,"vuesax-linear:simcard-2":` + + + +`,"vuesax-linear:simcard":` + + + + +`,"vuesax-linear:size":` + + + +`,"vuesax-linear:slack":` + + + + + + + + + +`,"vuesax-linear:slash":` + + + +`,"vuesax-linear:slider-horizontal-1":` + + + + +`,"vuesax-linear:slider-horizontal":` + + + + +`,"vuesax-linear:slider-vertical-1":` + + + + +`,"vuesax-linear:slider-vertical":` + + + + +`,"vuesax-linear:slider":` + + + + + +`,"vuesax-linear:smallcaps":` + + + + + + + +`,"vuesax-linear:smart-car":` + + + + + + + + + +`,"vuesax-linear:smart-home":` + + + + + +`,"vuesax-linear:smileys":` + + + + + + + + + +`,"vuesax-linear:sms-edit":` + + + + + +`,"vuesax-linear:sms-notification":` + + + + +`,"vuesax-linear:sms-search":` + + + + + +`,"vuesax-linear:sms-star":` + + + + +`,"vuesax-linear:sms-tracking":` + + + + + +`,"vuesax-linear:sms":` + + + +`,"vuesax-linear:snapchat":` + + + +`,"vuesax-linear:solana-(sol)":` + + + + +`,"vuesax-linear:sort":` + + + + +`,"vuesax-linear:sound":` + + + + + + +`,"vuesax-linear:speaker":` + + + + +`,"vuesax-linear:speedometer":` + + + + +`,"vuesax-linear:spotify":` + + + + + +`,"vuesax-linear:stacks-(stx)":` + + + + + + + + +`,"vuesax-linear:star-1":` + + +`,"vuesax-linear:star-slash":` + + + + +`,"vuesax-linear:star":` + + + + + +`,"vuesax-linear:status-up":` + + + + + + + +`,"vuesax-linear:status":` + + + + +`,"vuesax-linear:stellar-(xlm)":` + + + + + +`,"vuesax-linear:sticker":` + + + +`,"vuesax-linear:stickynote":` + + + + + + + +`,"vuesax-linear:stop-circle":` + + + +`,"vuesax-linear:stop":` + + +`,"vuesax-linear:story":` + + + + + +`,"vuesax-linear:strongbox-2":` + + + + + + + +`,"vuesax-linear:strongbox":` + + + + + +`,"vuesax-linear:subtitle":` + + + + + + +`,"vuesax-linear:sun-1":` + + + +`,"vuesax-linear:sun-fog":` + + + + + + +`,"vuesax-linear:sun":` + + + + + + + + + + + + + + +`,"vuesax-linear:tag-2":` + + + + +`,"vuesax-linear:tag-cross":` + + + + +`,"vuesax-linear:tag-right":` + + +`,"vuesax-linear:tag-user":` + + + + +`,"vuesax-linear:tag":` + + + +`,"vuesax-linear:task-square":` + + + + + + +`,"vuesax-linear:task":` + + + + + + + +`,"vuesax-linear:teacher":` + + + + +`,"vuesax-linear:tenx-(pay)":` + + + +`,"vuesax-linear:tether-(usdt)":` + + + + +`,"vuesax-linear:text-block":` + + + + +`,"vuesax-linear:text-bold":` + + + +`,"vuesax-linear:text-italic":` + + + + +`,"vuesax-linear:text-underline":` + + + +`,"vuesax-linear:text":` + + + + +`,"vuesax-linear:textalign-center":` + + + + + +`,"vuesax-linear:textalign-justifycenter":` + + + + + +`,"vuesax-linear:textalign-justifyleft":` + + + + + +`,"vuesax-linear:textalign-justifyright":` + + + + + +`,"vuesax-linear:textalign-left":` + + + + + +`,"vuesax-linear:textalign-right":` + + + + + +`,"vuesax-linear:the-graph-(grt)":` + + + + + +`,"vuesax-linear:theta-(theta)":` + + + + + + + +`,"vuesax-linear:thorchain-(rune)":` + + +`,"vuesax-linear:tick-circle":` + + + +`,"vuesax-linear:tick-square":` + + + +`,"vuesax-linear:ticket-2":` + + + + +`,"vuesax-linear:ticket-discount":` + + + + + +`,"vuesax-linear:ticket-expired":` + + + + +`,"vuesax-linear:ticket-star":` + + + + + +`,"vuesax-linear:ticket":` + + + +`,"vuesax-linear:timer-1":` + + + + +`,"vuesax-linear:timer-pause":` + + + + + + +`,"vuesax-linear:timer-start":` + + + + + +`,"vuesax-linear:timer":` + + +`,"vuesax-linear:toggle-off-circle":` + + + +`,"vuesax-linear:toggle-off":` + + + +`,"vuesax-linear:toggle-on-circle":` + + + +`,"vuesax-linear:toggle-on":` + + + +`,"vuesax-linear:trade":` + + + + + +`,"vuesax-linear:transaction-minus":` + + + +`,"vuesax-linear:translate":` + + + + + + + + + + + +`,"vuesax-linear:trash":` + + + + + + +`,"vuesax-linear:tree":` + + + + +`,"vuesax-linear:trello":` + + + + +`,"vuesax-linear:trend-down":` + + + + +`,"vuesax-linear:trend-up":` + + + + +`,"vuesax-linear:triangle":` + + + + +`,"vuesax-linear:trontron-(trx)":` + + + + +`,"vuesax-linear:truck-remove":` + + + + + + + + + +`,"vuesax-linear:truck-tick":` + + + + + + + + +`,"vuesax-linear:truck-time":` + + + + + + + + +`,"vuesax-linear:trush-square":` + + + + + +`,"vuesax-linear:twitch":` + + + + +`,"vuesax-linear:ui8":` + + + + + + +`,"vuesax-linear:undo":` + + + +`,"vuesax-linear:unlimited":` + + +`,"vuesax-linear:unlock":` + + + + +`,"vuesax-linear:usd-coin-(usdc)":` + + + + + + +`,"vuesax-linear:user-add":` + + + + + + +`,"vuesax-linear:user-cirlce-add":` + + + + + + + +`,"vuesax-linear:user-edit":` + + + + + +`,"vuesax-linear:user-minus":` + + + + + +`,"vuesax-linear:user-octagon":` + + + + +`,"vuesax-linear:user-remove":` + + + + + + +`,"vuesax-linear:user-search":` + + + + + +`,"vuesax-linear:user-square":` + + + + +`,"vuesax-linear:user-tag":` + + + + +`,"vuesax-linear:user-tick":` + + + + + +`,"vuesax-linear:user":` + + + +`,"vuesax-linear:velas-(vlx)":` + + + +`,"vuesax-linear:verify":` + + + +`,"vuesax-linear:vibe-(vibe)":` + + + + +`,"vuesax-linear:video-add":` + + + + + + + + +`,"vuesax-linear:video-circle":` + + + +`,"vuesax-linear:video-horizontal":` + + + + + + + + + + + +`,"vuesax-linear:video-octagon":` + + + +`,"vuesax-linear:video-play":` + + + + + + +`,"vuesax-linear:video-remove":` + + + + + + + + +`,"vuesax-linear:video-slash":` + + + + + +`,"vuesax-linear:video-square":` + + + +`,"vuesax-linear:video-tick":` + + + + + + + +`,"vuesax-linear:video-time":` + + + + + + + +`,"vuesax-linear:video-vertical":` + + + + + + + + + + + +`,"vuesax-linear:video":` + + + + +`,"vuesax-linear:voice-cricle":` + + + + + + + +`,"vuesax-linear:voice-square":` + + + + + + + +`,"vuesax-linear:volume-cross":` + + + + +`,"vuesax-linear:volume-high":` + + + + +`,"vuesax-linear:volume-low-1":` + + + +`,"vuesax-linear:volume-low":` + + + +`,"vuesax-linear:volume-mute":` + + +`,"vuesax-linear:volume-slash":` + + + + + + +`,"vuesax-linear:volume-up":` + + + + +`,"vuesax-linear:vuesax":` + + + + +`,"vuesax-linear:wallet-1":` + + + + + + +`,"vuesax-linear:wallet-2":` + + + + +`,"vuesax-linear:wallet-3":` + + + + + +`,"vuesax-linear:wallet-add-1":` + + + + + + + + +`,"vuesax-linear:wallet-add":` + + + + + + + +`,"vuesax-linear:wallet-check":` + + + + + + +`,"vuesax-linear:wallet-minus":` + + + + + + + +`,"vuesax-linear:wallet-money":` + + + + + + +`,"vuesax-linear:wallet-remove":` + + + + + + + +`,"vuesax-linear:wallet-search":` + + + + + + +`,"vuesax-linear:wallet":` + + + + +`,"vuesax-linear:wanchain-(wan)-1":` + + +`,"vuesax-linear:wanchain-(wan)":` + + + + + +`,"vuesax-linear:warning-2":` + + + + +`,"vuesax-linear:watch-status":` + + + + + + + +`,"vuesax-linear:watch":` + + + + + +`,"vuesax-linear:weight-1":` + + + + + + +`,"vuesax-linear:weight":` + + + +`,"vuesax-linear:whatsapp":` + + + +`,"vuesax-linear:wifi-square":` + + + + + +`,"vuesax-linear:wifi":` + + + + + +`,"vuesax-linear:wind-2":` + + + + +`,"vuesax-linear:wind":` + + + + +`,"vuesax-linear:windows":` + + + + + +`,"vuesax-linear:wing-(wing)":` + + + + +`,"vuesax-linear:woman":` + + + + +`,"vuesax-linear:xd":` + + + + + +`,"vuesax-linear:xiaomi":` + + + + + +`,"vuesax-linear:xrp-(xrp)":` + + + +`,"vuesax-linear:youtube":` + + + +`,"vuesax-linear:zel-(zel)":` + + + + + +`,"vuesax-linear:zoom":` + + + + +`,"other:target":` + + + + +`,"vuesax-linear:record-plus":` + + + + +`,"other:more-square":` + + + +`,"custom:single-check":``,"custom:double-check":``},RS=[`innerHTML`],zS=Gr({__name:`VuesaxIcon`,props:{name:{},size:{}},setup(e){let t=e,n=LS,r=gs(()=>{let e=xS(t.name||``),r=e.includes(`:`)?e:`vuesax-linear:${e}`,i=n[r]||n[`vuesax-linear:${e.toLowerCase()}`]||n[`vuesax-linear:shield-tick`];return i?i.replace(/\swidth="24"/,``).replace(/\sheight="24"/,``).replace(/stroke="#[A-Fa-f0-9]{3,8}"/g,`stroke="currentColor"`).replace(/fill="(?!none)#[A-Fa-f0-9]{3,8}"/g,`fill="currentColor"`):``}),i=gs(()=>{if(t.size)return typeof t.size==`number`?`${t.size}px`:t.size});return(e,t)=>(Oo(),No(`span`,{class:`anticon vx-icon`,style:Se(i.value?{width:i.value,height:i.value}:void 0),"aria-hidden":!0,innerHTML:r.value},null,12,RS))}}),BS=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},VS=Object.assign(BS(zS,[[`__scopeId`,`data-v-ca18e3bd`]]),{__name:`UiVuesaxIcon`});export{bf as $,on as $n,Ac as $t,Zf as A,bi as An,bu as At,Yf as B,or as Bn,Al as Bt,Sp as C,Vo as Cn,Qu as Ct,mp as D,Fo as Dn,Ru as Dt,xp as E,sr as En,zu as Et,_p as F,Li as Fn,hu as Ft,cf as G,Hi as Gn,xl as Gt,bp as H,Ki as Hn,B as Ht,Jf as I,ki as In,mu as It,df as J,dr as Jn,yl as Jt,hf as K,$i as Kn,gl as Kt,fp as L,Ni as Ln,xu as Lt,Qf as M,Mi as Mn,yu as Mt,ip as N,Ai as Nn,vu as Nt,wf as O,Jo as On,ku as Ot,yp as P,xi as Pn,pu as Pt,uf as Q,He as Qn,Ms as Qt,lp as R,ji as Rn,kl as Rt,Cp as S,es as Sn,Zu as St,up as T,cr as Tn,Yu as Tt,mf as U,qi as Un,Pl as Ut,Xf as V,Jn as Vn,jl as Vt,lf as W,Ui as Wn,hl as Wt,_f as X,rr as Xn,bl as Xt,gf as Y,na as Yn,Sl as Yt,ff as Z,ir as Zn,ml as Zt,cp as _,No as _n,i as _r,id as _t,Yp as a,Yc as an,pn as ar,nf as at,Bf as b,hi as bn,$u as bt,Vp as c,vi as cn,_n as cr,Rd as ct,Pp as d,wo as dn,oe as dr,qd as dt,nl as en,M as er,yf as et,Fp as f,Ho as fn,De as fr,vd as ft,rp as g,Wo as gn,o as gr,gd as gt,Mp as h,Po as hn,Le as hr,_d as ht,qp as i,Xs as in,tn as ir,vf as it,$f as j,Oi as jn,lu as jt,gp as k,Wn as kn,cu as kt,Bp as l,po as ln,gn as lr,Qd as lt,Ap as m,zo as mn,Se as mr,bd as mt,BS as n,tl as nn,en as nr,Sf as nt,Hp as o,L as on,j as or,rf as ot,wp as p,gs as pn,Oe as pr,yd as pt,af as q,fr as qn,vl as qt,Xp as r,Kc as rn,fn as rr,Cf as rt,Wp as s,I as sn,Cn as sr,$d as st,VS as t,rl as tn,Ue as tr,xf as tt,Ip as u,Dr as un,N as ur,Cd as ut,op as v,Uo as vn,a as vr,rd as vt,pp as w,_s as wn,Gu as wt,Wf as x,Gr as xn,Xu as xt,Gf as y,R as yn,r as yr,ed as yt,vp as z,Oo as zn,El as zt}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/DOASWvjr.js b/apps/web/.output/public/_nuxt/DOASWvjr.js new file mode 100644 index 0000000..fad37f9 --- /dev/null +++ b/apps/web/.output/public/_nuxt/DOASWvjr.js @@ -0,0 +1 @@ +import{Hn as e,In as t,Mn as n,Un as r,Xn as i,_n as a,fr as o,gn as s,hn as c,hr as l,i as u,lt as d,mn as f,mr as p,n as m,pn as h,qn as g,r as _,rr as v,sn as y,t as b,ur as x,vn as S,xn as C,yn as w,zn as T}from"./D6Ym2dQP.js";import{pt as E}from"#entry";import{i as D,n as O,t as k,u as A}from"./Dd1GE-gU.js";import{n as j,r as M,t as N}from"./BHOIQrRl.js";var P=d(`ui`,{state:()=>({ready:!1,menuOpen:!1}),actions:{setReady(){this.ready=!0},openMenu(){this.menuOpen=!0},closeMenu(){this.menuOpen=!1}}});function F(e){let r=v(!1),i=()=>r.value=window.scrollY>e;return t(()=>{i(),window.addEventListener(`scroll`,i,{passive:!0})}),n(()=>window.removeEventListener(`scroll`,i)),r}var I=Object.assign(C({__name:`BackToTop`,setup(e){let t=F(700);return(e,n)=>(T(),c(x(M),null,{default:i(()=>[x(t)?(T(),c(x(D).a,{key:0,href:`#home`,"aria-label":`بازگشت به بالا`,initial:{opacity:0,y:24},animate:{opacity:1,y:0},exit:{opacity:0,y:24},class:`fixed bottom-6 left-6 z-[70] flex size-12 items-center justify-center rounded-full border border-line bg-panel/90 text-ink shadow-[0_10px_40px_rgba(0,0,0,0.5)] backdrop-blur transition-colors hover:border-accent hover:text-accent`},{default:i(()=>[w(b,{name:`arrow-up`,class:`size-5`})]),_:1})):s(``,!0)]),_:1}))}}),{__name:`LayoutBackToTop`}),ee={class:`pointer-events-none fixed inset-0 z-[120] hidden [@media(pointer:fine)]:block`},te=Object.assign(C({__name:`Cursor`,setup(e){let r=A(-100),s=A(-100),c=j(r,{stiffness:550,damping:45,mass:.4}),l=j(s,{stiffness:550,damping:45,mass:.4}),u=v(!1),d=v(!1),m=e=>{r.set(e.clientX),s.set(e.clientY),d.value=!0},h=e=>{let t=e.target;u.value=!!t?.closest?.(`a, button, input, textarea, select, label, [data-hover]`)};return t(()=>{window.addEventListener(`mousemove`,m,{passive:!0}),window.addEventListener(`mouseover`,h,{passive:!0})}),n(()=>{window.removeEventListener(`mousemove`,m),window.removeEventListener(`mouseover`,h)}),(e,t)=>(T(),a(`div`,ee,[w(x(D).div,{style:p({x:x(c),y:x(l)}),class:`absolute -left-4 -top-4 size-8`},{default:i(()=>[w(x(D).div,{animate:{scale:x(u)?1.9:1,opacity:+!!x(d),rotate:x(u)?45:0},transition:{type:`spring`,stiffness:320,damping:24},class:`size-8 rounded-md border-2 border-accent/80`},null,8,[`animate`]),f(`div`,{class:o(`absolute inset-0 m-auto size-1 rounded-full bg-accent transition-opacity duration-300 ${x(d)?`opacity-100`:`opacity-0`}`)},null,2)]),_:1},8,[`style`])]))}}),{__name:`LayoutCursor`}),L=E(`/images/logo.png`),R={};function z(e,t){let n=u;return T(),c(n,{to:`/`,class:`flex items-center gap-3`,"aria-label":`ایمن پیشگامان`},{default:i(()=>[...t[0]||=[f(`span`,{class:`flex size-10 items-center justify-center rounded-xl bg-white shadow-[0_0_28px_rgba(10,30,92,0.45)]`},[f(`img`,{src:L,alt:`ایمن پیشگامان`,width:`28`,height:`28`,class:`size-7 object-contain`})],-1),f(`span`,{class:`leading-tight`},[f(`span`,{class:`block text-lg font-black`},`ایمن پیشگامان`),f(`span`,{class:`block font-mono text-[9px] tracking-[0.32em] text-muted`},` IMEN PISHGAMAN CO. `)],-1)]]),_:1})}var B=Object.assign(m(R,[[`render`,z]]),{__name:`UiLogo`}),V={class:`relative overflow-hidden border-t border-line`},H={class:`mx-auto max-w-[1480px] px-5 md:px-8`},U={class:`grid gap-12 py-16 md:grid-cols-12 md:py-20`},W={class:`md:col-span-5`},G={class:`mt-6 max-w-sm text-sm leading-8 text-muted`},K={class:`mt-7 flex gap-3`},q=[`href`,`aria-label`,`target`,`rel`],J={class:`md:col-span-2`},Y={class:`mt-5 space-y-3`},X=[`href`],Z={class:`md:col-span-2`},Q={class:`mt-5 space-y-3`},ne={class:`md:col-span-3`},re={class:`mt-5 space-y-3 text-sm text-muted not-italic`},ie={class:`leading-7`},ae={class:`font-mono tracking-wider`,dir:`ltr`},oe=[`href`],se={class:`font-mono tracking-wider`,dir:`ltr`},ce=[`href`],le={class:`pt-2 text-xs leading-6`},ue={"aria-hidden":`true`,class:`pointer-events-none select-none pb-6`},de={class:`text-outline text-center text-[17vw] font-black leading-[0.85] md:text-[11vw]`},fe={class:`flex flex-wrap items-center justify-between gap-4 border-t border-line py-6 text-xs text-muted`},pe={key:0,class:`font-mono text-[10px] tracking-[0.25em]`},me=Object.assign(C({__name:`Footer`,setup(t){let n=[{href:`/#home`,label:`خانه`,section:`hero`},{href:`/#products`,label:`محصولات`,section:`productsIntro`},{href:`/#about`,label:`درباره ما`,section:`about`},{href:`/#services`,label:`خدمات`,section:`services`},{href:`/#standards`,label:`استانداردها`,section:`standards`},{href:`/#industries`,label:`صنایع`,section:`industries`}],r={website:{icon:`global`,label:`وب‌سایت`},telegram:{icon:`send-2`,label:`تلگرام`},instagram:{icon:`instagram`,label:`اینستاگرام`},linkedin:{icon:`link`,label:`لینکدین`},whatsapp:{icon:`messages-2`,label:`واتساپ`},bale:{icon:`messages-2`,label:`بله`},eitaa:{icon:`messages-2`,label:`ایتا`},aparat:{icon:`video-play`,label:`آپارات`},youtube:{icon:`video-play`,label:`یوتیوب`},email:{icon:`sms`,label:`ایمیل`},phone:{icon:`call`,label:`تماس`}},o=_(),c=h(()=>o.sections.footer),d=h(()=>o.settings),p=h(()=>n.filter(e=>o.sections?.[e.section]?.enabled!==!1)),m=h(()=>o.categories.map(e=>({label:e.name,href:`/categories/${e.slug}`}))),g=h(()=>d.value.socials.map(e=>({...r[e.type],href:e.url,external:/^https?:\/\//.test(e.url)})));return(t,n)=>{let r=u;return T(),a(`footer`,V,[n[4]||=f(`div`,{class:`hazard h-2.5`},null,-1),f(`div`,H,[f(`div`,U,[f(`div`,W,[w(B),f(`p`,G,l(x(c).about),1),f(`div`,K,[(T(!0),a(y,null,e(x(g),e=>(T(),a(`a`,{key:e.href,href:e.href,"aria-label":e.label,target:e.external?`_blank`:void 0,rel:e.external?`noopener`:void 0,class:`flex size-10 items-center justify-center rounded-lg border border-line text-muted transition-all duration-300 hover:border-accent hover:bg-accent hover:text-bg`},[w(b,{name:e.icon,class:`size-4`},null,8,[`name`])],8,q))),128))])]),f(`div`,J,[n[0]||=f(`div`,{class:`font-mono text-xs tracking-[0.25em] text-accent`},`// دسترسی`,-1),f(`ul`,Y,[(T(!0),a(y,null,e(x(p),e=>(T(),a(`li`,{key:e.href},[f(`a`,{href:e.href,class:`text-sm text-muted transition-colors hover:text-ink`},l(e.label),9,X)]))),128))])]),f(`div`,Z,[n[1]||=f(`div`,{class:`font-mono text-xs tracking-[0.25em] text-accent`},`// محصولات`,-1),f(`ul`,Q,[(T(!0),a(y,null,e(x(m),e=>(T(),a(`li`,{key:e.href},[w(r,{to:e.href,class:`text-sm text-muted transition-colors hover:text-ink`},{default:i(()=>[S(l(e.label),1)]),_:2},1032,[`to`])]))),128))])]),f(`div`,ne,[n[3]||=f(`div`,{class:`font-mono text-xs tracking-[0.25em] text-accent`},`// ارتباط`,-1),f(`address`,re,[f(`p`,ie,l(x(d).address.locality)+`، `+l(x(d).address.street),1),f(`p`,ae,[f(`a`,{href:`tel:${x(d).phone}`,class:`transition-colors hover:text-ink`},l(x(d).phoneDisplay),9,oe)]),f(`p`,se,[f(`a`,{href:`mailto:${x(d).email}`,class:`transition-colors hover:text-ink`},l(x(d).email),9,ce)]),f(`p`,le,[S(l(x(d).workingHours)+` `,1),x(c).emergencyNote?(T(),a(y,{key:0},[n[2]||=f(`br`,null,null,-1),S(` `+l(x(c).emergencyNote),1)],64)):s(``,!0)])])])]),f(`div`,ue,[f(`div`,de,l(x(d).name),1)]),f(`div`,fe,[f(`div`,null,l(x(c).copyright),1),x(c).certLine?(T(),a(`div`,pe,l(x(c).certLine),1)):s(``,!0)])])])}}}),{__name:`LayoutFooter`});function he(){let e=v(null),r;return t(()=>{e.value=new Date,r=N(()=>e.value=new Date,15e3)}),n(()=>clearInterval(r)),{time:h(()=>e.value?new Intl.DateTimeFormat(`fa-IR`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Asia/Tehran`}).format(e.value):`--:--`),shift:h(()=>{if(!e.value)return``;let t=Number(new Intl.DateTimeFormat(`en-US`,{hour:`numeric`,hour12:!1,timeZone:`Asia/Tehran`}).format(e.value));return t>=6&&t<14?`صبح`:t>=14&&t<22?`عصر`:`شب`})}}var ge={class:`mx-auto flex max-w-[1480px] items-center justify-between px-5 md:px-8`},_e={class:`hidden items-center gap-7 lg:flex`},ve=[`href`],ye={class:`flex items-center gap-3`},be={class:`hidden items-center gap-2.5 rounded-full border border-line px-4 py-2 text-[11px] text-muted xl:flex`},xe={class:`font-mono`},Se={href:`/#contact`,class:`hidden items-center gap-2 rounded-full bg-accent px-5 py-2.5 text-sm font-bold text-bg transition-all duration-300 hover:bg-accent-soft hover:shadow-[0_0_30px_rgba(255,90,0,0.4)] md:flex`},Ce={class:`flex items-center justify-between border-b border-line px-5 py-4 md:px-8`},we={class:`flex flex-1 flex-col justify-center gap-1 overflow-y-auto px-8`},Te={class:`font-mono text-xs text-accent`},Ee={class:`text-3xl font-black transition-colors group-hover:text-accent`},De={class:`flex items-center justify-between border-t border-line p-8 text-sm`},$={class:`flex items-center gap-3 text-muted`},Oe=[`href`],ke={class:`text-xs text-muted`},Ae=Object.assign(C({__name:`Header`,setup(t){let r=[{href:`/#home`,label:`خانه`,section:`hero`},{href:`/#products`,label:`محصولات`,section:`productsIntro`},{href:`/#about`,label:`درباره ما`,section:`about`},{href:`/#services`,label:`خدمات`,section:`services`},{href:`/#standards`,label:`استانداردها`,section:`standards`},{href:`/#industries`,label:`صنایع`,section:`industries`},{href:`/#contact`,label:`تماس`,section:`contact`}],u=P(),d=_(),p=h(()=>d.settings),m=h(()=>d.sections),v=h(()=>r.filter(e=>m.value?.[e.section]?.enabled!==!1)),C=F(40),{time:E,shift:A}=he();return g(()=>u.menuOpen,e=>{document.body.style.overflow=e?`hidden`:``}),n(()=>{document.body.style.overflow=``}),(t,n)=>(T(),a(y,null,[w(x(D).header,{initial:{y:-90,opacity:0},animate:x(u).ready?{y:0,opacity:1}:{},transition:{duration:.9,delay:.15,ease:`EASE`in t?t.EASE:x(k)},class:o(`fixed inset-x-0 top-0 z-[80] transition-all duration-500 ${x(C)?`border-b border-line bg-bg/85 py-3 backdrop-blur-xl`:`py-5`}`)},{default:i(()=>[f(`div`,ge,[w(B),f(`nav`,_e,[(T(!0),a(y,null,e(x(v),e=>(T(),a(`a`,{key:e.href,href:e.href,class:`group relative py-2 text-sm text-ink/75 transition-colors hover:text-ink`},[S(l(e.label)+` `,1),n[2]||=f(`span`,{class:`absolute bottom-0 start-0 h-0.5 w-full origin-right scale-x-0 bg-accent transition-transform duration-300 group-hover:scale-x-100`},null,-1)],8,ve))),128))]),f(`div`,ye,[f(`div`,be,[n[3]||=f(`span`,{class:`size-1.5 animate-pulse rounded-full bg-emerald-400`},null,-1),f(`span`,xe,l(x(E)),1),n[4]||=f(`span`,{class:`text-muted/50`},`|`,-1),f(`span`,null,`تهران — شیفت `+l(x(A)),1)]),f(`a`,Se,[w(b,{name:`call`,class:`size-4`}),n[5]||=S(` درخواست مشاوره `,-1)]),f(`button`,{"aria-label":`باز کردن منو`,class:`flex size-11 items-center justify-center rounded-lg border border-line text-ink transition-colors hover:border-accent hover:text-accent lg:hidden`,onClick:n[0]||=(...e)=>x(u).openMenu&&x(u).openMenu(...e)},[w(b,{name:`menu`,class:`size-5`})])])])]),_:1},8,[`animate`,`transition`,`class`]),w(x(M),null,{default:i(()=>[x(u).menuOpen?(T(),c(x(D).div,{key:0,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.35},class:`fixed inset-0 z-[110] flex flex-col bg-bg/95 backdrop-blur-2xl`},{default:i(()=>[f(`div`,Ce,[w(B),f(`button`,{"aria-label":`بستن منو`,class:`flex size-11 items-center justify-center rounded-lg border border-line transition-colors hover:border-accent hover:text-accent`,onClick:n[1]||=(...e)=>x(u).closeMenu&&x(u).closeMenu(...e)},[w(b,{name:`close-circle`,class:`size-5`})])]),f(`nav`,we,[(T(!0),a(y,null,e(x(v),(e,n)=>(T(),c(x(D).a,{key:e.href,href:e.href,initial:{opacity:0,x:44},animate:{opacity:1,x:0},transition:{delay:.08+n*.055,duration:.55,ease:`EASE`in t?t.EASE:x(k)},class:`group flex items-baseline gap-5 border-b border-line/60 py-4`,onClick:x(u).closeMenu},{default:i(()=>[f(`span`,Te,l((`faNum`in t?t.faNum:x(O))(String(n+1).padStart(2,`0`))),1),f(`span`,Ee,l(e.label),1)]),_:2},1032,[`href`,`transition`,`onClick`]))),128))]),f(`div`,De,[f(`div`,$,[w(b,{name:`call`,class:`size-4 text-accent`}),f(`a`,{href:`tel:${x(p).phone}`,class:`font-mono`,dir:`ltr`},l(x(p).phoneDisplay),9,Oe)]),f(`div`,ke,`تهران — شیفت `+l(x(A))+`، `+l(x(E)),1)])]),_:1})):s(``,!0)]),_:1})],64))}}),{__name:`LayoutHeader`}),je={class:`mt-12 font-mono text-7xl font-semibold tabular-nums md:text-8xl`},Me={class:`mt-8 h-[3px] w-64 overflow-hidden rounded-full bg-line md:w-80`},Ne={class:`mt-6 flex items-center gap-3 text-xs text-muted`},Pe=Object.assign(C({__name:`Preloader`,emits:[`complete`],setup(e,{emit:r}){let a=[`بررسی سیستم‌های ایمنی`,`تأیید استانداردهای بین‌المللی`,`بارگذاری تجهیزات حفاظت فردی`,`محیط کاری آماده است`],o=r,s=v(0),u=!1,d;t(()=>{let e=0;d=N(()=>{e+=Math.floor(Math.random()*11)+7,e>=100&&(e=100,clearInterval(d),u||(u=!0,setTimeout(()=>o(`complete`),450))),s.value=e},140)}),n(()=>clearInterval(d));let m=h(()=>a[Math.min(a.length-1,Math.floor(s.value/100*a.length))]);return(e,t)=>(T(),c(x(D).div,{exit:{y:`-100%`},transition:{duration:.85,ease:[.76,0,.24,1]},class:`fixed inset-0 z-[200] flex flex-col items-center justify-center bg-bg`},{default:i(()=>[t[3]||=f(`div`,{class:`hazard absolute inset-x-0 top-0 h-3`},null,-1),t[4]||=f(`div`,{class:`hazard absolute inset-x-0 bottom-0 h-3`},null,-1),t[5]||=f(`div`,{class:`flex items-center gap-4`},[f(`span`,{class:`flex size-12 items-center justify-center rounded-xl bg-white shadow-[0_0_28px_rgba(255,90,0,0.3)] ring-1 ring-white/10`},[f(`img`,{src:L,alt:`ایمن پیشگامان`,width:`32`,height:`32`,class:`size-8 object-contain`})]),f(`span`,{class:`font-mono text-xs tracking-[0.35em] text-muted`},` IMEN PISHGAMAN CO. `)],-1),f(`div`,je,[S(l(x(s).toLocaleString(`fa-IR`)),1),t[0]||=f(`span`,{class:`text-accent`},`٪`,-1)]),f(`div`,Me,[f(`div`,{class:`h-full bg-accent transition-all duration-200`,style:p({width:`${x(s)}%`})},null,4)]),f(`div`,Ne,[t[1]||=f(`span`,{class:`size-1.5 animate-pulse rounded-full bg-accent`},null,-1),S(` `+l(x(m))+` `,1),t[2]||=f(`span`,{class:`animate-blink text-accent`},`▍`,-1)])]),_:1}))}}),{__name:`LayoutPreloader`}),Fe=C({__name:`default`,setup(e){let t=P(),n=_();return(e,o)=>(T(),a(`div`,null,[w(x(M),null,{default:i(()=>[x(t).ready?s(``,!0):(T(),c(Pe,{key:0,onComplete:x(t).setReady},null,8,[`onComplete`]))]),_:1}),w(te),o[0]||=f(`div`,{class:`noise`,"aria-hidden":`true`},null,-1),w(Ae),r(e.$slots,`default`),x(n).sections?.footer?.enabled===!1?s(``,!0):(T(),c(me,{key:0})),w(I)]))}});export{Fe as default}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/Dd1GE-gU.js b/apps/web/.output/public/_nuxt/Dd1GE-gU.js new file mode 100644 index 0000000..b003688 --- /dev/null +++ b/apps/web/.output/public/_nuxt/Dd1GE-gU.js @@ -0,0 +1 @@ +import{An as e,Bn as t,En as n,In as r,Kn as i,Ln as a,Mn as o,Nn as s,On as c,Pn as l,Rn as u,Sn as d,fn as f,on as p,pn as m,qn as h,rr as g,wn as _,xn as v}from"./D6Ym2dQP.js";function y(e,r){let i=typeof e==`string`&&!r?`${e}Context`:r,a=Symbol(i);return[t=>{let r=n(a,t);if(r===void 0)throw Error(`Injection \`${a.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(`, `)}`:`\`${e}\``}`);return r},e=>(t(a,e),e),a]}function b(e,t){let{layoutGroup:n,presenceContext:r,config:i}=t,a=n.id&&e.layoutId?`${n.id}-${e.layoutId}`:e.layoutId||void 0;return{...e,layoutId:a,transition:e.transition??i.transition,layoutGroup:n,motionConfig:i,inViewOptions:e.inViewOptions??i.inViewOptions,presenceContext:r,initial:r.initial===!1?r.initial:e.initial===!0?void 0:e.initial}}function x(e,t){e.indexOf(t)===-1&&e.push(t)}function S(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}var C=(e,t,n)=>n>t?t:n/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),E=e=>typeof e==`object`&&!!e,ee=e=>/^0[^.\s]+$/u.test(e);function D(e){let t;return()=>(t===void 0&&(t=e()),t)}var O=e=>e,te=(...e)=>e.reduce((e,t)=>n=>t(e(n))),ne=(e,t,n)=>{let r=t-e;return r?(n-e)/r:1},re=class{constructor(){this.subscriptions=[]}add(e){return x(this.subscriptions,e),()=>this.remove(e)}remove(e){S(this.subscriptions,e)}notify(e,t,n){let r=this.subscriptions.length;if(r){if(r===1)this.subscriptions[0](e,t,n);else for(let i=0;ie*1e3,A=e=>e/1e3,ie=(e,t)=>t?1e3/t*e:0,ae=(e,t,n)=>e*(3*(1-e)*((1-e)*t+e*n)+e*e);function oe(e,t,n,r){return e===t&&n===r?O:i=>{let a=0,o=1,s=i;for(let t=0;;t++){s>=a&&s<=o||(s=(a+o)/2);let r=ae(s,e,n)-i;if(r*r<1e-28||t===40)break;r>0?o=s:a=s,s-=r*1e-7/(ae(s+1e-7,e,n)-i-r)}return ae(s,t,r)}}var se=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,ce=e=>t=>1-e(1-t),le=oe(.33,1.53,.69,.99),ue=ce(le),de=se(ue),fe=e=>e>=1?1:(e*=2)<1?.5*ue(e):.5*(2-2**(-10*(e-1))),pe=e=>1-Math.sin(Math.acos(e)),me=ce(pe),he=se(pe),ge=oe(.42,0,1,1),_e=oe(0,0,.58,1),ve=oe(.42,0,.58,1),ye=e=>Array.isArray(e)&&typeof e[0]!=`number`,be=e=>Array.isArray(e)&&typeof e[0]==`number`,xe={linear:O,easeIn:ge,easeInOut:ve,easeOut:_e,circIn:pe,circInOut:he,circOut:me,backIn:ue,backInOut:de,backOut:le,anticipate:fe},Se=e=>typeof e==`string`,Ce=e=>{if(be(e)){e.length;let[t,n,r,i]=e;return oe(t,n,r,i)}return Se(e)?(xe[e],`${e}`,xe[e]):e},j={delta:0,timestamp:0,isProcessing:!1},we;function Te(){we=void 0}var M={now:()=>(we===void 0&&M.set(j.isProcessing||w.useManualTiming?j.timestamp:performance.now()),we),set:e=>{we=e,queueMicrotask(Te)}},Ee=e=>Math.round(e*1e5)/1e5,De=e=>t=>typeof t==`string`&&t.startsWith(e),Oe=De(`--`),ke=De(`var(--`),Ae=e=>ke(e)?je.test(e.split(`/*`)[0].trim()):!1,je=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Me(e){return typeof e==`string`&&e.split(`/*`)[0].includes(`var(--`)}var Ne={test:e=>typeof e==`number`,parse:parseFloat,transform:e=>e},Pe={...Ne,transform:e=>C(0,1,e)},Fe={...Ne,default:1},Ie=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function Le(e){return e==null}var Re=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,ze=(e,t)=>n=>!!(typeof n==`string`&&Re.test(n)&&n.startsWith(e)||t&&!Le(n)&&Object.prototype.hasOwnProperty.call(n,t)),Be=(e,t,n)=>r=>{if(typeof r!=`string`)return r;let[i,a,o,s]=r.match(Ie);return{[e]:parseFloat(i),[t]:parseFloat(a),[n]:parseFloat(o),alpha:s===void 0?1:parseFloat(s)}},Ve=e=>C(0,255,e),He={...Ne,transform:e=>Math.round(Ve(e))},Ue={test:ze(`rgb`,`red`),parse:Be(`red`,`green`,`blue`),transform:({red:e,green:t,blue:n,alpha:r=1})=>`rgba(`+He.transform(e)+`, `+He.transform(t)+`, `+He.transform(n)+`, `+Ee(Pe.transform(r))+`)`};function We(e){let t=``,n=``,r=``,i=``;return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}var Ge={test:ze(`#`),parse:We,transform:Ue.transform},Ke=e=>({test:t=>typeof t==`string`&&t.endsWith(e)&&t.split(` `).length===1,parse:parseFloat,transform:t=>`${t}${e}`}),N=Ke(`deg`),P=Ke(`%`),F=Ke(`px`),qe=Ke(`vh`),Je=Ke(`vw`),Ye={...P,parse:e=>P.parse(e)/100,transform:e=>P.transform(e*100)},Xe={test:ze(`hsl`,`hue`),parse:Be(`hue`,`saturation`,`lightness`),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>`hsla(`+Math.round(e)+`, `+P.transform(Ee(t))+`, `+P.transform(Ee(n))+`, `+Ee(Pe.transform(r))+`)`},I={test:e=>Ue.test(e)||Ge.test(e)||Xe.test(e),parse:e=>Ue.test(e)?Ue.parse(e):Xe.test(e)?Xe.parse(e):Ge.parse(e),transform:e=>typeof e==`string`?e:e.hasOwnProperty(`red`)?Ue.transform(e):Xe.transform(e),getAnimatableNone:e=>{let t=I.parse(e);return t.alpha=0,I.transform(t)}},Ze=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,Qe=new RegExp(Ie.source),$e=new RegExp(Ze.source,`i`);function et(e){return isNaN(e)&&typeof e==`string`&&(Qe.test(e)||$e.test(e))}var tt=`number`,nt=`color`,rt=`var`,it=`var(`,at="${}",ot=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)(?![a-z]*\()/giu;function st(e){let t=e.toString();return Qe.test(t)||$e.test(t)}function ct(e){let t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[],a=0;return{values:n,split:t.replace(ot,e=>(I.test(e)?(r.color.push(a),i.push(nt),n.push(I.parse(e))):e.startsWith(it)?(r.var.push(a),i.push(rt),n.push(e)):(r.number.push(a),i.push(tt),n.push(parseFloat(e))),++a,at)).split(at),indexes:r,types:i}}function lt(e){return ct(e).values}function ut({split:e,types:t}){let n=e.length;return r=>{let i=``;for(let a=0;atypeof e==`number`?0:I.test(e)?I.getAnimatableNone(e):e,pt=(e,t)=>typeof e==`number`?t?.trim().endsWith(`/`)?e:0:ft(e);function mt(e){let t=ct(e);return ut(t)(t.values.map((e,n)=>pt(e,t.split[n])))}var L={test:et,parse:lt,createTransformer:dt,getAnimatableNone:mt};function ht(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function gt({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,a=0,o=0;if(!t)i=a=o=n;else{let r=n<.5?n*(1+t):n+t-n*t,s=2*n-r;i=ht(s,r,e+1/3),a=ht(s,r,e),o=ht(s,r,e-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:r}}function _t(e,t){return n=>n>0?t:e}var R=(e,t,n)=>e+(t-e)*n,vt=(e,t,n)=>{let r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},yt=[Ge,Ue,Xe],bt=e=>yt.find(t=>t.test(e));function xt(e){let t=bt(e);if(!t)return`${e}`,!1;let n=t.parse(e);return t===Xe&&(n=gt(n)),n}var St=(e,t)=>{let n=xt(e),r=xt(t);if(!n||!r)return _t(e,t);let i={...n};return e=>(i.red=vt(n.red,r.red,e),i.green=vt(n.green,r.green,e),i.blue=vt(n.blue,r.blue,e),i.alpha=R(n.alpha,r.alpha,e),Ue.transform(i))},Ct=new Set([`none`,`hidden`]);function wt(e,t){return Ct.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Tt(e,t){return n=>R(e,t,n)}function Et(e){return typeof e==`number`?Tt:typeof e==`string`?Ae(e)?_t:I.test(e)?St:At:Array.isArray(e)?Dt:typeof e==`object`?I.test(e)?St:Ot:_t}function Dt(e,t){let n=[...e],r=n.length,i=e.map((e,n)=>Et(e)(e,t[n]));return e=>{for(let t=0;t{for(let t in r)n[t]=r[t](e);return n}}function kt(e,t){let n=[],r={color:0,var:0,number:0};for(let i=0;i{let n=L.createTransformer(t),r=ct(e),i=ct(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Ct.has(e)&&!i.values.length||Ct.has(t)&&!r.values.length?wt(e,t):te(Dt(kt(r,i),i.values),n):(`${e}${t}`,_t(e,t))},jt=/^(-?(?:\d+(?:\.\d*)?|\.\d+))([a-z%]*)$/iu;function Mt(e,t){let n=jt.exec(e);if(!n)return;let r=jt.exec(t);if(!r||n[2]!==r[2])return;let i=n[2],a=parseFloat(n[1]),o=parseFloat(r[1]);return e=>Ee(R(a,o,e))+i}function Nt(e,t,n){if(typeof e==`number`&&typeof t==`number`&&typeof n==`number`)return R(e,t,n);if(typeof e==`string`&&typeof t==`string`){let n=Mt(e,t);if(n)return n}return Et(e)(e,t)}var Pt=[`setup`,`read`,`resolveKeyframes`,`preUpdate`,`update`,`preRender`,`render`,`postRender`];function Ft(e){let t=new Set,n=new Set,r=!1,i=!1,a=new Set,o={delta:0,timestamp:0,isProcessing:!1};function s(t){a.has(t)&&(n.add(t),e()),t(o)}let c={schedule:(e,i=!1,o=!1)=>{let s=o&&r?t:n;return i&&a.add(e),s.add(e),e},cancel:e=>{n.delete(e),a.delete(e)},process:e=>{if(o=e,r){i=!0;return}r=!0;let a=t;t=n,n=a,t.forEach(s),t.clear(),r=!1,i&&(i=!1,c.process(e))}};return c}var It=40;function Lt(e,t,n={delta:0,timestamp:0,isProcessing:!1}){let r=!1,i=!0,a=()=>r=!0,o=Pt.reduce((e,t)=>(e[t]=Ft(a),e),{}),{setup:s,read:c,resolveKeyframes:l,preUpdate:u,update:d,preRender:f,render:p,postRender:m}=o,h=()=>{let a=w.useManualTiming,o=a?n.timestamp:performance.now();r=!1,a||(n.delta=i?1e3/60:Math.max(Math.min(o-n.timestamp,It),1)),n.timestamp=o,n.isProcessing=!0,s.process(n),c.process(n),l.process(n),u.process(n),d.process(n),f.process(n),p.process(n),m.process(n),n.isProcessing=!1,r&&t&&(i=!1,e(h))},g=()=>{r=!0,i=!0,n.isProcessing||e(h)};return{schedule:Pt.reduce((e,t)=>{let n=o[t];return e[t]=(e,t=!1,i=!1)=>(r||g(),n.schedule(e,t,i)),e},{}),cancel:e=>{for(let t=0;t{let t=({timestamp:t})=>e(t);return{start:(e=!0)=>z.update(t,e),stop:()=>B(t),now:()=>j.isProcessing?j.timestamp:M.now()}},Bt=(e,t,n=10)=>{let r=``,i=Math.max(Math.round(t/n),2);for(let t=0;t=n?1/0:i}function Ut(e,t=100,n){let{keyframes:r,velocity:i}=e,a=r&&r[r.length-1]-r[0],o=n({...e,velocity:i&&a?i*t/a:i,keyframes:[0,t]}),s=Math.min(Ht(o),Vt);return{type:`keyframes`,ease:e=>o.next(s*e).value/t,duration:A(s)}}var V={stiffness:100,damping:10,mass:1,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05},Wt=e=>e<0?1/Math.max(1+e,V.minDamping):Math.max(1-e,V.minDamping);function Gt(e,t){if(!(e>1))return 1;let n=Math.sqrt(e*e-1),r=e-n,i=e+n,a=2*n*Math.exp(-t)*(1+t);return Jt(e=>i*Math.exp(-r*e)-r*Math.exp(-i*e)-a,e=>Math.exp(-i*e)-Math.exp(-r*e),t)/t}function Kt(e,t){return e*Math.sqrt(1-t*t)}var qt=12;function Jt(e,t,n){let r=n;for(let n=1;n{let n=t*i,r=n*e,a=Kt(t,i),o=Math.exp(-r);return Yt-n/a*o},r=t=>{let r=t*i*e,a=i*i*t*t*e,o=Math.exp(-r),s=Kt(t*t,i);return(-n(t)+Yt>0?-1:1)*-a*o/s}):(n=t=>-.001+Math.exp(-t*e)*(t*e+1),r=t=>Math.exp(-t*e)*(-t*(e*e)));let a=5/e,o=Jt(n,r,a),s=o*Gt(i,o*e),c=s*s;return{stiffness:c,damping:i*2*Math.sqrt(c),duration:k(e)}}var Zt=(e,t)=>(t?e>=0:e>0)&&e<1/0;function Qt(e,t){if(Zt(e,t))return e}function $t(e){let t=Qt(e.stiffness),n=Qt(e.damping,!0),r=Qt(e.mass),i={...e,stiffness:t??V.stiffness,damping:n??V.damping,mass:r??V.mass,isResolvedFromDuration:!1,isTimeDefined:(t??n??r)===void 0&&(e.duration!==void 0||e.bounce!==void 0)};if(i.isTimeDefined){if(e.visualDuration){let t=Wt(e.bounce||0),n=2*Math.PI/(e.visualDuration*1.2)*Gt(t,2*Math.PI/1.2);i.stiffness=n*n,i.damping=2*t*Math.sqrt(i.stiffness)}else Object.assign(i,Xt(i)),i.isResolvedFromDuration=!0;(!Zt(i.stiffness)||!Zt(i.damping,!0))&&(i.stiffness=V.stiffness,i.damping=V.damping)}return i}function en(e=V.visualDuration,t=V.bounce){let n=typeof e==`object`?e:{visualDuration:e,keyframes:[0,1],bounce:t},r=n.keyframes[0],i=n.keyframes[n.keyframes.length-1],a={done:!1,value:r},{stiffness:o,damping:s,mass:c,duration:l,isResolvedFromDuration:u,isTimeDefined:d}=$t({...n}),f=e=>d?0:-A(e),p=s/(2*Math.sqrt(o*c)),m=A(Math.sqrt(o/c)),h=p*m,g={target:i,delta:i-r,velocity:f(n.velocity||0)||0,restSpeed:0,restDelta:0},_=()=>{let e=Math.abs(g.delta)<5;g.restSpeed=n.restSpeed||(e?V.restSpeed.granular:V.restSpeed.default),g.restDelta=n.restDelta||(e?V.restDelta.granular:V.restDelta.default)};_();let v,y,b;if(p<1){let e=Kt(m,p),t={A:0,sinC:0,cosC:0,t:-1,env:0,sin:0,cos:0};b=()=>{t.A=(g.velocity+h*g.delta)/e,t.sinC=h*t.A+g.delta*e,t.cosC=h*g.delta-t.A*e};let n=n=>{n!==t.t&&(t.t=n,t.env=Math.exp(-h*n),t.sin=Math.sin(e*n),t.cos=Math.cos(e*n))};v=e=>(n(e),g.target-t.env*(t.A*t.sin+g.delta*t.cos)),y=e=>(n(e),t.env*(t.sinC*t.sin+t.cosC*t.cos))}else if(p===1){v=e=>g.target-Math.exp(-m*e)*(g.delta+(g.velocity+m*g.delta)*e);let e={C:0};b=()=>{e.C=g.velocity+m*g.delta},y=t=>Math.exp(-m*t)*(m*e.C*t-g.velocity)}else{let e=m*Math.sqrt(p*p-1),t=h-e,n=h+e,r=d?1/0:300/e,i=(e,t)=>Math.exp(t>r?-e*r-h*(t-r):-e*t),a={S:0,F:0};b=()=>{let t=(g.velocity+h*g.delta)/e;a.S=(g.delta+t)/2,a.F=(g.delta-t)/2},v=e=>g.target-a.S*i(t,e)-a.F*i(n,e),y=e=>t*a.S*i(t,e)+n*a.F*i(n,e)}b();let x=u&&l||null,S={calculatedDuration:x,retarget:(e,t)=>{g.target=e[e.length-1],g.delta=g.target-e[0],g.velocity=f(t),n.restSpeed&&n.restDelta||_(),S.calculatedDuration=x,a.done=!1,b()},velocity:e=>k(y(e)),next:e=>{let t=v(e);if(u)a.done=e>=l;else{let n=k(y(e));a.done=Math.abs(n)<=g.restSpeed&&Math.abs(g.target-t)<=g.restDelta}return a.value=a.done?g.target:t,a},toString:()=>{let e=Math.min(Ht(S),Vt),t=Bt(t=>S.next(e*t).value,e,30);return e+`ms `+t},toTransition:()=>{}};return S}en.applyToOptions=e=>{let t=Ut(e,100,en);return e.ease=t.ease,e.duration=k(t.duration),e.type=`keyframes`,e};function tn({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:o,min:s,max:c,restDelta:l=.5,restSpeed:u}){let d=e[0],f={done:!1,value:d},p=e=>ec,m=e=>s===void 0?c:c===void 0||Math.abs(s-e)-h*Math.exp(-e/r),y=e=>{let t=v(e);f.done=Math.abs(t)<=l,f.value=f.done?_:_+t},b,x,S=e=>{p(f.value)&&(b=e,x=en({keyframes:[f.value,m(f.value)],velocity:-v(e)/r*1e3,damping:i,stiffness:a,restDelta:l,restSpeed:u}))};return S(0),{calculatedDuration:null,next:e=>{let t=!1;return!x&&b===void 0&&(t=!0,y(e),S(e)),b!==void 0&&e>=b?x.next(e-b):(!t&&y(e),f)}}}function nn(e,t,n){let r=[],i=n||w.mix||Nt,a=e.length-1;for(let n=0;nt[0];if(a===2&&t[0]===t[1])return()=>t[1];let o=e[0]===e[1];e[0]>e[a-1]&&(e=[...e].reverse(),t=[...t].reverse());let s=nn(t,r,i),c=s.length,l=n=>{if(o&&n1)for(;rl(C(e[0],e[a-1],t)):l}function an(e,t){let n=e[e.length-1];for(let r=1;r<=t;r++){let i=ne(0,t,r);e.push(R(n,1,i))}}function on(e){let t=[0];return an(t,e.length-1),t}function sn(e,t){return e.map(e=>e*t)}function cn(e,t){return e.map(()=>t||ve).splice(0,e.length-1)}function H({duration:e=300,keyframes:t,times:n,ease:r=`easeInOut`}){let i=ye(r)?r.map(Ce):Ce(r)||ve,a={done:!1,value:t[0]};if(t.length===2&&!Array.isArray(i)&&(!n||n.length!==2||n[0]===0&&n[1]===1)){let[n,r]=t,o=n===r?void 0:(w.mix||Nt)(n,r);return{calculatedDuration:e,next:t=>(a.value=o?o(i(e>0?C(0,1,t/e):1)):r,a.done=t>=e,a)}}let o=rn(sn(n&&n.length===t.length?n:on(t),e),t,{ease:Array.isArray(i)?i:cn(t,i)});return{calculatedDuration:e,next:t=>(a.value=o(t),a.done=t>=e,a)}}var ln=5;function un(e,t,n){let r=Math.max(t-ln,0);return ie(n-e(r),t-r)}function dn(e,t,n=0){return t<=0?n:e.velocity?e.velocity(t):un(t=>e.next(t).value,t,e.next(t).value)}var fn=e=>e!==null;function pn(e,{repeat:t,repeatType:n=`loop`},r,i=1){let a=e.filter(fn),o=i<0||t&&n!==`loop`&&t%2==1?0:a.length-1;return!o||r===void 0?a[o]:r}var mn={decay:tn,inertia:tn,tween:H,keyframes:H,spring:en};function hn(e){typeof e.type==`string`&&(e.type=mn[e.type])}var gn=40,_n=(e,t)=>t-e>gn&&!w.useManualTiming?t:e;function vn(e,t){return{kind:e,animation:t,timestamp:M.now(),frameTimestamp:j.timestamp,frameIsProcessing:j.isProcessing}}function yn(e,t,n){let r=globalThis.__MOTION_INSPECT__;if(r)try{r({...vn(`animation-start`,e),options:n?{...t,...n}:t})}catch{}}function bn(e,t){let n=globalThis.__MOTION_INSPECT__;if(n)try{n({...vn(`layout-animation-start`,e),node:t})}catch{}}var xn=class{constructor(){this.isResolved=!1}get finished(){return this._finished||=this.isResolved?Promise.resolve():new Promise(e=>{this._resolve=e}),this._finished}updateFinished(){this._finished=this._resolve=void 0,this.isResolved=!1}notifyFinished(){this.isResolved=!0,this._resolve?.()}then(e,t){return this.finished.then(e,t)}},Sn=e=>e/100,Cn=e=>Math.round(e*1e4)/1e4,wn=class extends xn{constructor(e){super(),this.state=`idle`,this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:e}=this.options;e&&e.updatedAt!==M.now()&&this.tick(M.now()),this.isStopped=!0,this.state!==`idle`&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause(),yn(this,this.options)}initAnimation(){let{options:e}=this;hn(e);let{type:t=H,repeat:n=0,repeatDelay:r=0,repeatType:i,velocity:a=0}=e,{keyframes:o}=e,s=t||H;s!==H&&typeof o[0]!=`number`&&(this.mixKeyframes=te(Sn,Nt(o[0],o[1])),o=[0,100]);let c=s(o===e.keyframes?e:{...e,keyframes:o});i===`mirror`&&(this.mirroredGenerator=s({...e,keyframes:[...o].reverse(),velocity:-a})),c.calculatedDuration===null&&(c.calculatedDuration=Ht(c));let{calculatedDuration:l}=c;this.calculatedDuration=l,this.resolvedDuration=l+r,this.totalDuration=this.resolvedDuration*(n+1)-r,this.generator=c}updateTime(e){let t=Math.round(e-this.startTime)*this.playbackSpeed;this.currentTime=this.holdTime===null?t:this.holdTime}tick(e,t=!1){let{generator:n,totalDuration:r,calculatedDuration:i}=this;if(this.startTime===null)return n.next(0);let{delay:a=0,keyframes:o,type:s,onUpdate:c,finalKeyframe:l}=this.options;this.startTime===this.pendingStartTime&&(this.startTime=_n(this.startTime,e)),this.pendingStartTime=void 0,this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);let u=this.currentTime-a*(this.playbackSpeed>=0?1:-1),d=this.playbackSpeed>=0?u<0:u>r;this.currentTime=Math.max(u,0),this.state===`finished`&&this.holdTime===null&&(this.currentTime=r);let f=this.generate(this.currentTime,d),{done:p}=f;!d&&i!==null&&(p=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);let m=this.holdTime===null&&(this.state===`finished`||this.state===`running`&&p);return m&&s!==tn&&(f.value=pn(o,this.options,l,this.speed)),c&&c(f.value),m&&this.finish(),f}at(e){return this.holdTime??Cn((e-this.startTime)*this.playbackSpeed)}sampleAt(e,t){let{options:n,totalDuration:r}=this,i=this.at(e)-(n.delay||0);return i>=r&&n.type!==tn?pn(n.keyframes,n,t?void 0:n.finalKeyframe):this.generate(Math.max(i,0),i<0).value}generate(e,t){let{generator:n,totalDuration:r,mixKeyframes:i,mirroredGenerator:a,resolvedDuration:o}=this,{keyframes:s,repeat:c,repeatType:l,repeatDelay:u}=this.options,d=e,f=n;if(c){let t=Math.min(e,r)/o,n=Math.floor(t),i=t%1;!i&&t>=1&&(i=1),i===1&&n--,n=Math.min(n,c+1),n%2&&(l===`reverse`?(i=1-i,u&&(i-=u/o)):l===`mirror`&&(f=a)),d=C(0,1,i)*o}let p;return t?(this.delayState.value=s[0],p=this.delayState):p=f.next(d),i&&!t&&(p.value=i(p.value)),p}then(e,t){return this.finished.then(e,t)}get duration(){return A(this.calculatedDuration)}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+A(e)}get time(){return A(this.currentTime)}set time(e){e=k(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state=`paused`,this.holdTime=e,this.tick(e))}getGeneratorVelocity(){return dn(this.generator,this.currentTime,this.options.velocity)}get speed(){return this.playbackSpeed}set speed(e){let t=this.playbackSpeed!==e;t&&this.driver&&this.updateTime(M.now()),this.playbackSpeed=e,t&&this.driver&&(this.time=A(this.currentTime))}play(){if(this.isStopped)return;let{driver:e=zt,startTime:t}=this.options;this.driver||=e(e=>this.tick(e)),this.options.onPlay?.();let n=this.driver.now();this.state===`finished`?(this.updateFinished(),this.startTime=n):this.holdTime===null?this.startTime||=t??(this.pendingStartTime=n):this.startTime=n-this.holdTime/(this.playbackSpeed||1),this.state===`finished`&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state=`running`,this.driver.start()}pause(){this.state=`paused`,this.updateTime(M.now()),this.holdTime=this.currentTime}complete(){this.state!==`running`&&this.play(),this.state=`finished`,this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state=`finished`,this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state=`idle`,this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&=(this.driver.stop(),void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type=`keyframes`,this.options.ease=`linear`,this.initAnimation()),this.driver?.stop(),e.observe(this)}},Tn=new Set([`brightness`,`contrast`,`saturate`,`opacity`]);function En(e){let[t,n]=e.slice(0,-1).split(`(`);if(t===`drop-shadow`)return e;let[r]=n.match(Ie)||[];if(!r)return e;let i=n.replace(r,``),a=+!!Tn.has(t);return r!==n&&(a*=100),t+`(`+a+i+`)`}var Dn=/\b([a-z-]*)\(.*?\)/gu,On={...L,getAnimatableNone:e=>{let t=e.match(Dn);return t?t.map(En).join(` `):e}},kn={...L,getAnimatableNone:e=>{let t=L.parse(e);return L.createTransformer(e)(t.map(e=>typeof e==`number`?0:typeof e==`object`?{...e,alpha:1}:e))}},An={...Ne,transform:Math.round},jn={borderWidth:F,borderTopWidth:F,borderRightWidth:F,borderBottomWidth:F,borderLeftWidth:F,borderRadius:F,borderTopLeftRadius:F,borderTopRightRadius:F,borderBottomRightRadius:F,borderBottomLeftRadius:F,width:F,maxWidth:F,height:F,maxHeight:F,top:F,right:F,bottom:F,left:F,inset:F,insetBlock:F,insetBlockStart:F,insetBlockEnd:F,insetInline:F,insetInlineStart:F,insetInlineEnd:F,padding:F,paddingTop:F,paddingRight:F,paddingBottom:F,paddingLeft:F,paddingBlock:F,paddingBlockStart:F,paddingBlockEnd:F,paddingInline:F,paddingInlineStart:F,paddingInlineEnd:F,margin:F,marginTop:F,marginRight:F,marginBottom:F,marginLeft:F,marginBlock:F,marginBlockStart:F,marginBlockEnd:F,marginInline:F,marginInlineStart:F,marginInlineEnd:F,fontSize:F,backgroundPositionX:F,backgroundPositionY:F,rotate:N,pathRotation:N,rotateX:N,rotateY:N,rotateZ:N,scale:Fe,scaleX:Fe,scaleY:Fe,scaleZ:Fe,skew:N,skewX:N,skewY:N,distance:F,translateX:F,translateY:F,translateZ:F,x:F,y:F,z:F,perspective:F,transformPerspective:F,opacity:Pe,originX:Ye,originY:Ye,originZ:F,zIndex:An,fillOpacity:Pe,strokeOpacity:Pe,numOctaves:An},Mn={...jn,color:I,backgroundColor:I,outlineColor:I,fill:I,stroke:I,borderColor:I,borderTopColor:I,borderRightColor:I,borderBottomColor:I,borderLeftColor:I,filter:On,WebkitFilter:On,mask:kn,WebkitMask:kn},Nn=e=>Mn[e],Pn=new Set([On,kn]);function Fn(e,t){let n=Nn(e);return Pn.has(n)||(n=L),n.getAnimatableNone?n.getAnimatableNone(t):void 0}function In(e){for(let t=1;te*180/Math.PI,Rn=e=>Bn(Ln(Math.atan2(e[1],e[0]))),zn={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scaleZ:()=>1,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:Rn,rotateZ:Rn,skewX:e=>Ln(Math.atan(e[1])),skewY:e=>Ln(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Bn=e=>(e%=360,e<0&&(e+=360),e),Vn=Rn,Hn=e=>Math.hypot(e[0],e[1]),Un=e=>Math.hypot(e[4],e[5]),Wn={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Hn,scaleY:Un,scaleZ:e=>Math.hypot(e[8],e[9],e[10]),scale:e=>(Hn(e)+Un(e))/2,rotateX:e=>Bn(Ln(Math.atan2(e[6],e[5]))),rotateY:e=>Bn(Ln(Math.atan2(-e[2],e[0]))),rotateZ:Vn,rotate:Vn,skewX:e=>Ln(Math.atan(e[4])),skewY:e=>Ln(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Gn(e){return+!!e.includes(`scale`)}function Kn(e,t){if(!e||e===`none`)return Gn(t);let n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u),r,i;if(n)r=Wn,i=n;else{let t=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=zn,i=t}if(!i)return Gn(t);let a=r[t],o=i[1].split(`,`).map(Jn);return typeof a==`function`?a(o):o[a]}var qn=(e,t)=>{let{transform:n=`none`}=getComputedStyle(e);return Kn(n,t)};function Jn(e){return parseFloat(e.trim())}var U=[`transformPerspective`,`x`,`y`,`z`,`translateX`,`translateY`,`translateZ`,`scale`,`scaleX`,`scaleY`,`scaleZ`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`skew`,`skewX`,`skewY`],W=new Set([...U,`pathRotation`]),Yn=e=>e===Ne||e===F,Xn=new Set([`x`,`y`,`z`]),Zn=U.filter(e=>!Xn.has(e));function Qn(e){let t=[];return Zn.forEach(n=>{let r=e.getValue(n);if(r!==void 0){let e=r.get(),i=+!!n.startsWith(`scale`);if(e===i)return;t.push([n,e]),r.set(i)}}),t}var $n=new Set([`bottom`,`right`]);function er(e,t,n,r,i,a){let o=parseFloat(e);if(!isNaN(o))return o;let{min:s,max:c}=t()[n],l=c-s;return a===`border-box`?l:l-parseFloat(r)-parseFloat(i)}var tr={width:({width:e,paddingLeft:t=`0`,paddingRight:n=`0`,boxSizing:r},i)=>er(e,i,`x`,t,n,r),height:({height:e,paddingTop:t=`0`,paddingBottom:n=`0`,boxSizing:r},i)=>er(e,i,`y`,t,n,r),top:({top:e})=>parseFloat(e),left:({left:e})=>parseFloat(e),bottom:({top:e},t)=>{let{y:n}=t();return parseFloat(e)+(n.max-n.min)},right:({left:e},t)=>{let{x:n}=t();return parseFloat(e)+(n.max-n.min)},x:({transform:e})=>Kn(e,`x`),y:({transform:e})=>Kn(e,`y`)};tr.translateX=tr.x,tr.translateY=tr.y;var nr=new Set,rr=!1,ir=!1,ar=!1;function or(){if(ir){let e=[],t=new Set,n=new Set;nr.forEach(r=>{r.needsMeasurement&&(e.push(r),t.add(r.element),$n.has(r.name)&&n.add(r.element))});let r=new Map;n.forEach(e=>{let t=Qn(e);t.length&&(r.set(e,t),e.render())}),e.forEach(e=>e.measureInitialState()),t.forEach(e=>{e.render();let t=r.get(e);t&&t.forEach(([t,n])=>{e.getValue(t)?.set(n)})}),e.forEach(e=>e.measureEndState()),e.forEach(e=>{e.suspendedScrollY!==void 0&&window.scrollTo(0,e.suspendedScrollY)})}ir=!1,rr=!1,nr.forEach(e=>e.complete(ar)),nr.clear()}function sr(){nr.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(ir=!0)})}function cr(){ar=!0,sr(),or(),ar=!1}function lr(e,t,n){if(typeof e==`string`){if(T(e)||ee(e))return parseFloat(e);if(!L.test(e)&&L.test(n))return Fn(t,n)}return e??void 0}var ur=class{constructor(e,t,n,r,i,a=!1){this.state=`pending`,this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=n,this.motionValue=r,this.element=i,this.isAsync=a}scheduleResolve(){this.state=`scheduled`,this.isAsync?(nr.add(this),rr||(rr=!0,z.read(sr),z.resolveKeyframes(or))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:e,name:t,element:n,motionValue:r}=this;if(e[0]===null){let i=r?.get(),a=e[e.length-1];if(i!==void 0)e[0]=i;else if(n&&t){let r=lr(n.readValue(t,a),t,a);r!==void 0&&(e[0]=r)}e[0]===void 0&&(e[0]=a),r&&i===void 0&&r.set(e[0])}In(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state=`complete`,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),nr.delete(this)}cancel(){this.state===`scheduled`&&(nr.delete(this),this.state=`pending`)}resume(){this.state===`pending`&&this.scheduleResolve()}},dr=e=>e.startsWith(`--`);function fr(e,t,n){dr(t)?e.style.setProperty(t,n):e.style[t]=n}var pr={};function mr(e,t){let n=D(e);return()=>pr[t]??n()}var hr=mr(()=>window.ScrollTimeline!==void 0,`scrollTimeline`),gr=mr(()=>{try{document.createElement(`div`).animate({opacity:0},{easing:`linear(0, 1)`})}catch{return!1}return!0},`linearEasing`),_r=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,vr={linear:`linear`,ease:`ease`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`,circIn:_r([0,.65,.55,1]),circOut:_r([.55,0,1,.45]),backIn:_r([.31,.01,.66,-.59]),backOut:_r([.33,1.53,.69,.99])};function yr(e,t){if(e)return typeof e==`function`?gr()?Bt(e,t):`ease-out`:be(e)?_r(e):Array.isArray(e)?e.map(e=>yr(e,t)||vr.easeOut):vr[e]}function br(e,t,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:o=`loop`,ease:s=`easeOut`,times:c}={},l=void 0){let u={[t]:n};c&&(u.offset=c);let d=yr(s,i);Array.isArray(d)&&(u.easing=d);let f={delay:r,duration:i,easing:Array.isArray(d)?`linear`:d,fill:`both`,iterations:a+1,direction:o===`reverse`?`alternate`:`normal`};return l&&(f.pseudoElement=l),e.animate(u,f)}function xr(e){return typeof e==`function`&&`applyToOptions`in e}function Sr({type:e,...t}){return xr(e)&&gr()?e.applyToOptions(t):(t.duration??=300,t.ease??=`easeOut`,t)}var Cr=class extends xn{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;let{element:t,name:n,keyframes:r,pseudoElement:i,allowFlatten:a=!1,finalKeyframe:o,onComplete:s}=e;this.isPseudoElement=!!i,this.allowFlatten=a,this.options=e,e.type;let c=Sr(e);this.animation=br(t,n,r,c,i),c.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){let e=pn(r,this.options,o,this.speed);this.updateMotionValue&&this.updateMotionValue(e),fr(t,n,e),this.animation.cancel()}s?.(),this.notifyFinished()},yn(this,e,c)}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state===`finished`&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;e!==`idle`&&e!==`finished`&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){let e=this.animation.effect?.getComputedTiming?.().duration||0;return A(Number(e))}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+A(e)}get time(){return A(Number(this.animation.currentTime)||0)}set time(e){let t=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=k(e),t&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime===null?this.animation.playState:`finished`}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,onAttach:t,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:`linear`}),this.animation.onfinish=null,e&&hr()?(this.animation.timeline=e,t?.(this.animation),O):n(this)}},wr={anticipate:fe,backInOut:de,circInOut:he};function Tr(e){return e in wr}function Er(e){typeof e.ease==`string`&&Tr(e.ease)&&(e.ease=wr[e.ease])}var Dr=class extends Cr{constructor(e){Er(e),hn(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}elapsed(){return this.state===`running`?(M.now()-this.startTime)*this.speed:this.time*1e3}sample(e){if(!this.sampler){let{motionValue:e,onUpdate:t,onComplete:n,onPlay:r,onStop:i,element:a,...o}=this.options;this.sampler=new wn({...o,autoplay:!1}),this.sampler.stop()}return this.sampler.sample(Math.max(0,e)).value}liveValue(){let{state:e}=this;if(e===`running`||e===`paused`)return this.sample(this.elapsed())}updateMotionValue(e){let{motionValue:t,element:n,name:r}=this.options;if(!t)return;if(e!==void 0){t.set(e);return}let{speed:i}=this,a=this.elapsed(),o=this.state===`running`&&i?C(0,10,a):0,s=this.sample(a);n&&r&&fr(n,r,s),t.setWithVelocity(this.sample(a-o*Math.sign(i)),s,o/Math.abs(i||1))}},Or=(e,t)=>t!==`zIndex`&&!!(typeof e==`number`||Array.isArray(e)||typeof e==`string`&&(L.test(e)||e===`0`)&&!e.startsWith(`url(`));function kr(e){let t=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,`animate`));function Lr(e){let{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:a,type:o,keyframes:s}=e;if(!n||!(Mr.has(n)||Fr.has(n)))return!1;let c=t?.owner?.current;if(!(c instanceof HTMLElement)&&!(c instanceof SVGElement))return!1;let{onUpdate:l,transformTemplate:u}=t.owner.getProps();return Ir()&&(Mr.has(n)||Fr.has(n)&&Pr(s))&&(n!==`transform`||!u)&&!l&&!r&&i!==`mirror`&&a!==0&&o!==`inertia`}var Rr=(e,t)=>t&&typeof e==`number`?t.transform(e):e,zr={x:`translateX`,y:`translateY`,z:`translateZ`,transformPerspective:`perspective`},Br=U.length;function Vr(e,t,n){let r=``,i=!0;for(let a=0;a/^(linear|ease(In|Out|InOut))$/.test(e),Yr=(e,t)=>e-t,Xr=(e,t,n)=>{let r=[];for(let i=0;i<=n;i++)r.push(R(e,t,i/n));return r},Zr=e=>e.motionValue.owner,Qr=e=>Hr.get(e),$r=(e,t)=>e.latestValues?e.latestValues[t]:e.getValue(t)?.get(),ei=({name:e,motionValue:t})=>e&&U.includes(e)&&t?.owner?.current instanceof HTMLElement&&Ir()&&gr();function ti(e){let t=Zr(e),{onUpdate:n,transformTemplate:r}=t.getProps();return!e.isHandoff&&!n&&!e.hasOnUpdate&&!r&&e.type!==`inertia`&&($r(t,`transform`)||`none`)===`none`&&!$r(t,`pathRotation`)&&!t.projection?.isProjecting()}var ni=class extends wn{constructor(e){let t=Zr(e).current,{driver:n=zt}=e,r,i=ti(e);e.driver=e=>{let i=n(e);return{js:i,now:i.now,start:(e=!0)=>{let n=Qr(t);!n||n.isJS?i.start(e):n.schedule(!1,!e)},stop:()=>{i.stop();let e=Qr(t);e&&!e.isFinishing&&e.release(r)}}},super(e),r=this,this.canAccelerate=i;let{stop:a}=this;this.stop=()=>{this.isAccelerated()&&this.sync(),a()}}get group(){return Qr(Zr(this.options).current)}get js(){return this.driver?.js}get name(){return this.options.name}timing(){let{startTime:e,speed:t,totalDuration:n}=this,{delay:r=0,repeatType:i}=this.options;return this.holdTime===null?n===1/0?[e+r/t,this.resolvedDuration*(i===`loop`?1:2)/t||1]:[e+(r+n)/t,0]:[1/0,0]}isAccelerated(){let{group:e,state:t}=this;return e?.tracks.has(this)&&!e.isJS&&this.canAccelerate&&(t===`running`||t===`paused`)}liveValue(){return this.isAccelerated()?this.sampleAt(M.now()):void 0}tween(){let{keyframes:e,type:t,ease:n,times:r,repeat:i,delay:a=0}=this.options,o=be(n)?_r(n):Jr(n)&&vr[n];if(o&&!i&&!r&&e.length===2&&t===H&&this.holdTime===null){let e=this.startTime+a/this.speed;return[e,e+this.resolvedDuration/this.speed,o]}}boundaries(e,t){let{startTime:n,speed:r,resolvedDuration:i,options:a}=this,{delay:o=0,repeat:s=0,repeatDelay:c=0,repeatType:l,times:u,keyframes:d,type:f}=a,p=(f||H)===H?u||on(d):[0,1],m=n+o/r,h=[];if(this.holdTime!==null||!(i>0))return h;for(let n=Math.max(0,Math.floor((e-m)*r/i));n<=s;n++){let a=m+n*i/r;if(a>t)break;for(let o of p){let s=a+(n%2&&l&&l!==`loop`?1-o:o)*(i-c)/r;s>e&&s{for(let t of n)if(t.name===e)return!0},m=(t,n)=>{let o={};for(let s of t===void 0?U:a){let a=r.get(s),c=t===void 0?$r(e,s):a?a.sampleAt(n>t&&!a.timing()[1]?n:t):i[s];c!==void 0&&(o[s]=c)}return o},h=(e,t)=>{let n=``,r=m(e,t);for(let e in r)n+=(zr[e]||e)+`(`+Rr(r[e],jn[e])+`) `;return n||`none`},g=(e=m())=>{t.style.transform=Vr(e,{})},_=(e=!0)=>{e&&g(),s.forEach(({animation:e})=>e.cancel()),s=[]},v=(e,t,n=1/0)=>{let r={animation:e,offset:t,end:n};e.startTime=M.now()+t,n<1/0&&(e.onfinish=()=>{r.isDone=!0,s.some(e=>e.end===1/0)&&(e.cancel(),s=s.filter(e=>e!==r)),D.schedule(!1)}),e.oncancel=()=>s.includes(r)&&D.demote(),s.push(r)},y=(e,t,n)=>{let r=(t,n)=>Math.abs(e(n)-e(t)),i=r(t,n);for(;n-t>.01;){let e=(t+n)/2;r(t,e)>r(e,n)?n=e:t=e}return r(t,n)>i/2?[t,n]:[]},b=(e,t,n,r)=>{let i=Math.min(Ur,Math.max(2,Math.ceil((n-t)/10)));if(r.length*4>i)return;let a=Xr(t,n,i).concat(r).sort(Yr),o=e=>ne(t,n,e),s,c;for(let t of e){let e=a.map(e=>t.numberAt(e)),[n]=e,r=e.map(e=>e-n),i=r[r.length-1],o=r.some(e=>Math.abs(e)*Wr>Math.abs(i))?0:i,l=r.map(e=>o?e/o:e);if(!o){if(l.some(e=>!(Math.abs(e)<=Wr)))return}else if(!s)s=l,c=e=>(t.numberAt(e)-n)/o;else if(l.some((e,t)=>!(Math.abs(e-s[t])<=Wr)))return}if(!s||s.every((e,t)=>Math.abs(e-o(a[t]))<=Wr))return`linear`;let l=[],u=(e,t=c(e))=>l.push(Cn(t)+` `+Cn(o(e)*100)+`%`);return s.forEach((e,t)=>{t&&Math.abs(e-s[t-1])>.2&&y(c,a[t-1],a[t]).forEach(e=>u(e)),u(a[t],e)}),`linear(`+l+`)`},x=(e,t,n,r)=>{let i=[t],a=(t,n)=>e.every(e=>!(Math.abs(e.numberAt((t+n)/2)-(e.numberAt(t)+e.numberAt(n))/2)>(e.name.startsWith(`scale`)?Kr:Gr))),o=(t,n,r)=>{if(n-t<1||a(t,n))i.push(n);else if(r<4)o(t,(t+n)/2,r+1),o((t+n)/2,n,r+1);else{for(let r of e)i.push(...y(e=>r.numberAt(e),t,n));i.push(n)}},s=Xr(t,n,Math.ceil((n-t)/100));for(let e of r)s.push(e,Math.min(e+.01,n));let c=t;for(let e of s.sort(Yr))e>c&&o(c,e,0),c=e;return i.sort(Yr)},S=e=>{let t;for(let n of e){let e=n.tween();if(!e||t?.some((t,n)=>n<2?Math.abs(e[n]-t)>1:e[n]!==t))return;t=e}return t},C=(e,n,r,i={fill:`both`},a,o)=>{let s=e.flatMap(e=>e.boundaries(n,r)),c=o||b(e,n,r,s),l=c?[n,r]:x(e,n,r,s),u=l.map(e=>h(e,a)),d={transform:u};return c||(d.offset=l.map(e=>ne(n,r,e))),u.every(e=>e===u[0])&&(g(m(n,a)),d=null),t.animate(d,{...i,duration:r-n,easing:c||`linear`})},w=c=>{let l=c,u=0,d=0,f=[],p=[],m=new Set;r.clear(),o=new Map;for(let e of n){r.set(e.name,e);let[t,n]=e.timing(),i=t===1/0;if(o.set(e,[e.at(c),e.speed,i]),i)e.sync();else{if(e.speed<0)return;if(n){if(u){let e=(t-d)/n;if(Math.abs(n-u)>1||Math.abs(e-Math.round(e))*u>1)return}else u=n,d=t;p.push(e)}else m.add(t);f.push(e),l=Math.max(l,t)}}i={},a=U.filter(t=>{if(r.has(t))return!0;let n=i[t]=$r(e,t);return n!==void 0&&parseFloat(n)!==+!!t.startsWith(`scale`)}),_(!1);let h=!u&&S(f);try{if(h&&h[1]>c){let[e,t,n]=h;v(C(f,e,t,void 0,void 0,n),e-c,t-e)}else l>c&&(v(C(f,c,l),0,l-c),m.forEach(e=>e{let t,r=0;for(let i of n){let n=o.get(i);if(!n)return!1;let[a,s,c]=n,l=i.at(e),u=i.timing()[0]===1/0;if(c){if(u&&l===a)continue;return!1}let d=(l-a)/s,f=u?0:i.speed/s;if(t===void 0)t=d,r=f;else if(Math.abs(d-t)>1||f!==r)return!1}if(t===void 0)return!0;if(!s.length)return!1;for(let{offset:e,end:n,isDone:r}of s){let i=t-e;if(n<1/0&&(r?i=n))return!1}for(let{animation:n,offset:i,isDone:a}of s){if(a)continue;let o=t-i;r?(n.playbackRate=r,n.startTime=e-o/r):(n.pause(),n.currentTime=o)}return!0},E=()=>!n.size&&(u=!0,Hr.delete(t),D.isJS||_(),!0),ee=()=>{let t=M.now();if(D.isJS||(D.isFinishing=!0,n.forEach(n=>{let[r,a]=n.timing();n.state===`running`&&n.speed>0&&!a&&r<=t+1&&(n.complete(),i[n.name]=$r(e,n.name),o.has(n)||(c=!0))}),D.isFinishing=!1),l=!1,u||(n.forEach(({state:e},t)=>{(e===`idle`||e===`finished`)&&n.delete(t)}),E()))return;for(let e of n)if(!e.canAccelerate)return D.demote(!0);D.isJS&&(D.isJS=!1,c=!0,n.forEach(e=>e.js?.stop()));let r=c,a=d;if(c=d=!1,r||!T(t)){if(a){if(t-f{t.isAccelerated()&&t.sync(),e||(t.canAccelerate=!1)}),D.isJS=!0,o=new Map,_(),n.forEach(e=>e.state===`running`&&e.js?.start()))}};return Hr.set(t,D),D}var ii=class extends xn{constructor(e){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=M.now();let{keyframes:t,name:n,motionValue:r,element:i}=e,a=e;a.autoplay??=!0,a.delay??=0,a.type??=`keyframes`,a.repeat??=0,a.repeatDelay??=0,a.repeatType??=`loop`;let o=i?.KeyframeResolver||ur;this.keyframeResolver=new o(t,(e,t,n)=>this.onKeyframesResolved(e,t,a,!n),n,r,i),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,t,n,r){this.keyframeResolver=void 0;let{name:i,type:a,velocity:o,delay:s,isHandoff:c,onUpdate:l}=n;this.resolvedAt=M.now();let u=!0;Ar(e,i,a,o)||(u=!1,(w.instantAnimations||!s)&&l?.(pn(e,n,t)),e[0]=e[e.length-1],jr(n),n.repeat=0);let{onComplete:d}=n;n.finalKeyframe=t,n.keyframes=e,n.onComplete=()=>{d?.(),this.notifyFinished()};let f=u&&!c&&Lr(n),p=!f&&ei(n);r&&(f||p||this.resolvedAt!==this.createdAt)&&(n.startTime??=_n(this.createdAt,this.resolvedAt));let m;if(f){n.element=n.motionValue?.owner?.current;try{m=new Dr(n)}catch{m=new wn(n)}}else m=p?new ni(n):new wn(n);this.pendingTimeline&&=(this.stopTimeline=m.attachTimeline(this.pendingTimeline),void 0),this._animation=m}get finished(){return this._animation?this._animation.finished:super.finished}then(e,t){return this.finished.finally(e).then(()=>{})}liveValue(){return this._animation?.liveValue?.()}get animation(){return this._animation||(this.keyframeResolver?.resume(),cr()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}};function ai(e,t,n,r=0,i=1){let a=Array.from(e).sort((e,t)=>e.sortNodePosition(t)).indexOf(t),o=e.size,s=(o-1)*r;return typeof n==`function`?n(a,o):i===1?a*r:s-a*r}var oi=30,si=e=>!isNaN(parseFloat(e)),ci={current:void 0},li=class{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=e=>{let t=M.now();if(this.updatedAt!==t&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&(this.notifyChange(),this.dependents))for(let e of this.dependents)e.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=M.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=si(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on(`change`,e)}on(e,t){var n;return e===`change`?this.onChangeSubscribe(t):((n=this.events)[e]||(n[e]=new re)).add(t)}onChangeSubscribe(e){let{events:t}=this;return!t.change&&!this.changeSubscriber?this.changeSubscriber=e:(t.change||(t.change=new re,t.change.add(this.changeSubscriber),this.changeSubscriber=void 0),t.change.add(e)),()=>{this.changeSubscriber===e?this.changeSubscriber=void 0:t.change?.remove(e),this.stopIfUnobserved()}}stopIfUnobserved(){z.read(()=>{!this.changeSubscriber&&!this.events.change?.getSize()&&this.stop()})}clearListeners(){this.changeSubscriber=void 0;for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,n){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.notifyChange()}notifyChange(){let{current:e,changeSubscriber:t}=this;t?t(e):this.events.change?.notify(e)}addDependent(e){this.dependents||=new Set,this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){ci.current&&ci.current.push(this);let e=this.animation?.liveValue?.();return e===void 0?this.current:e}getCurrent(){return this.current}getPrevious(){return this.prev}getVelocity(){let e=M.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>oi)return 0;let t=Math.min(this.updatedAt-this.prevUpdatedAt,oi);return ie(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0;let n=!1,r;r=e(()=>{n=!0,this.events.animationComplete?.notify(),this.animation===r&&this.clearAnimation(),t()}),n||(this.animation=r),this.events.animationStart?.notify()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){this.animation=void 0}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}};function ui(e,t){return new li(e,t)}function di(e,t){if(e?.inherit&&t){let{inherit:n,...r}=e;return{...t,...r}}return e}function fi(e,t){let n=e?.[t]??e?.default??e;return n===e?n:di(n,e)}var pi={type:`spring`,stiffness:500,damping:25,restSpeed:10},mi=e=>({type:`spring`,stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),hi={type:`keyframes`,duration:.8},gi={type:`keyframes`,ease:[.25,.1,.35,1],duration:.3},_i=(e,{keyframes:t})=>t.length>2?hi:W.has(e)?e.startsWith(`scale`)?mi(t[1]):pi:gi,vi=new Set([`when`,`delay`,`delayChildren`,`staggerChildren`,`staggerDirection`,`repeat`,`repeatType`,`repeatDelay`,`from`,`elapsed`]);function yi(e){for(let t in e)if(!vi.has(t))return!0;return!1}var bi=(e,t,n,r={},i,a)=>o=>{let s=fi(r,e)||{},c=s.delay||r.delay||0,{elapsed:l=0}=r;l-=k(c);let u={keyframes:Array.isArray(n)?n:[null,n],ease:`easeOut`,velocity:t.getVelocity(),...s,delay:-l,onUpdate:e=>{t.set(e),s.onUpdate&&s.onUpdate(e)},onComplete:()=>{o(),s.onComplete&&s.onComplete()},name:e,motionValue:t,element:a?void 0:i,hasOnUpdate:!!s.onUpdate};yi(s)||Object.assign(u,_i(e,u)),u.duration&&=k(u.duration),u.repeatDelay&&=k(u.repeatDelay),u.from!==void 0&&(u.keyframes[0]=u.from);let d=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(jr(u),u.delay===0&&(d=!0)),(w.instantAnimations||w.skipAnimations||i?.shouldSkipAnimations||s.skipAnimations)&&(d=!0,jr(u),u.delay=0),u.allowFlatten=!s.type&&!s.ease,d&&!a&&t.get()!==void 0){let e=pn(u.keyframes,s);if(e!==void 0){z.update(()=>{u.onUpdate(e),u.onComplete()});return}}return s.isSync?new wn(u):new ii(u)},xi=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Si(e){let t=xi.exec(e);if(!t)return[,];let[,n,r,i]=t;return[`--${n??r}`,i]}function Ci(e,t,n=1){`${e}`;let[r,i]=Si(e);if(!r)return;let a=window.getComputedStyle(t).getPropertyValue(r);if(a){let e=a.trim();return T(e)?parseFloat(e):e}return Ae(i)?Ci(i,t,n+1):i}function wi(e){let t=[{},{}];return e?.values.forEach((e,n)=>{t[0][n]=e.get(),t[1][n]=e.getVelocity()}),t}function Ti(e,t,n,r){let i=t=>typeof t==`function`?t(n===void 0?e.custom:n,...wi(r)):t;return t=i(t),typeof t==`string`&&(t=e.variants&&e.variants[t]),i(t)}function Ei(e,t,n){return Ti(e.getProps(),t,n,e)}var Di=(e,t)=>t===`exit`?e.presenceContext?.custom:void 0,Oi=new Set([`width`,`height`,`top`,`left`,`right`,`bottom`,...U]),ki=e=>Array.isArray(e);function Ai(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ui(n))}function ji(e){return ki(e)?e[e.length-1]||0:e}function Mi(e,t){let{transitionEnd:n={},transition:r={},...i}=Ei(e,t)||{};i={...i,...n};for(let t in i)Ai(e,t,ji(i[t]))}var G=e=>!!(e&&e.getVelocity);function Ni(e){return!!(G(e)&&e.add)}function Pi(e,t){let n=e.getValue(`willChange`);if(Ni(n))return n.add(t);if(!n&&w.WillChange){let n=new w.WillChange(`auto`);e.addValue(`willChange`,n),n.add(t)}}function Fi(e){return e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}var Ii=`data-`+Fi(`framerAppearId`);function Li(e){return e.props[Ii]}var Ri=typeof window<`u`;function zi({protectedKeys:e,needsAnimating:t},n){let r=n in e&&!t[n];return t[n]=!1,r}function Bi(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:a,transitionEnd:o,...s}=t,c=e.getDefaultTransition();a=a?di(a,c):c;let l=a?.reduceMotion,u=a?.skipAnimations;r&&(a=r);let d=[],f=i&&e.animationState?.getState()[i],p=a?.path;p&&(p.animateValues?p.animateValues(t=>e.getValue(t,e.latestValues[t]??0),s,a,n,d):p.animateVisualElement?.(e,s,a,n,d));for(let t in s){let r=e.getValue(t,e.latestValues[t]??null),i=s[t];if(i===void 0||f&&zi(f,t))continue;let o={delay:n,...fi(a||{},t)};u&&(o.skipAnimations=!0);let c=r.get();if(c!==void 0&&!r.isAnimating()&&!Array.isArray(i)&&i===c&&!o.velocity){z.update(()=>r.set(i));continue}let p=!1;if(Ri&&window.MotionHandoffAnimation){let n=Li(e);if(n){let e=window.MotionHandoffAnimation(n,t,z);e!==null&&(o.startTime=e,p=!0)}}Pi(e,t);let m=l??e.shouldReduceMotion;r.start(bi(t,r,i,m&&Oi.has(t)?{type:!1}:o,e,p));let h=r.animation;h&&d.push(h)}if(o){let t=()=>z.update(()=>{o&&Mi(e,o)});d.length?Promise.all(d).then(t):t()}return d}function Vi(e,t,n={}){let r=Ei(e,t,Di(e,n.type)),i=n.transitionOverride||(r?.transition??(e.getDefaultTransition()||{})),a=()=>Promise.all(r?Bi(e,r,n):[]),o=(r=0)=>{let{variantChildren:a}=e,{delayChildren:o=0,staggerChildren:s,staggerDirection:c}=i,l=[];return a?.forEach(e=>{e.notify(`AnimationStart`,t),l.push(Vi(e,t,{...n,delay:r+(typeof o==`function`?0:o)+ai(a,e,o,s,c)}).then(()=>e.notify(`AnimationComplete`,t)))}),Promise.all(l)},{when:s}=i;return s?s===`beforeChildren`?a().then(()=>o()):o().then(a):Promise.all([a(),o(n.delay)])}function Hi(e,t,n={}){return e.notify(`AnimationStart`,t),(Array.isArray(t)?Promise.all(t.map(t=>Vi(e,t,n))):typeof t==`string`?Vi(e,t,n):Promise.all(Bi(e,Ei(e,t,n.custom),n))).then(()=>{e.notify(`AnimationComplete`,t)})}var Ui={test:e=>e===`auto`,parse:e=>e},Wi=e=>t=>t.test(e),Gi=[Ne,F,P,N,Je,qe,Ui],Ki=e=>Gi.find(Wi(e));function qi(e){return typeof e==`number`?e===0:e===null||e===`none`||e===`0`||ee(e)}var Ji=new Set([`auto`,`none`,`0`]);function Yi(e,t,n){let r=0,i;for(;re.measureViewportBox())}measureInitialState(){let{element:e,unresolvedKeyframes:t,name:n}=this;if(!e||!e.current)return;n===`height`&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=this.measure(),t[0]=this.measuredOrigin;let r=t[t.length-1];r!==void 0&&this.motionValue?.jump(r,!1)}measureEndState(){let{element:e,unresolvedKeyframes:t}=this;if(!e||!e.current)return;this.motionValue?.jump(this.measuredOrigin,!1);let n=t.length-1,r=t[n];t[n]=this.measure(),r!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=r),this.removedTransforms?.length&&this.removedTransforms.forEach(([t,n])=>{e.getValue(t).set(n)}),this.resolveNoneKeyframes()}},Zi=[`borderTopLeftRadius`,`borderTopRightRadius`,`borderBottomRightRadius`,`borderBottomLeftRadius`];function Qi(e){return E(e)&&`offsetHeight`in e&&!(`ownerSVGElement`in e)}function $i(e){return E(e)&&`ownerSVGElement`in e}function ea(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e==`string`){let r=document;t&&(r=t.current);let i=n?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(e=>e!=null)}function ta(e,t,n){let{style:r,vars:i,transformOrigin:a}=e,o=!1,s=!1;for(let e in t){let n=t[e];if(W.has(e))o=!0;else if(Oe(e))i[e]=n;else{let t=Rr(n,jn[e]);e.startsWith(`origin`)?(s=!0,a[e]=t):r[e]=t}}if(t.transform||(o||n?r.transform=Vr(t,e.transform,n):r.transform&&=`none`),s){let{originX:e=`50%`,originY:t=`50%`,originZ:n=0}=a;r.transformOrigin=`${e} ${t} ${n}`}}var na={offset:`stroke-dashoffset`,array:`stroke-dasharray`},ra={offset:`strokeDashoffset`,array:`strokeDasharray`};function ia(e,t,n=1,r=0,i=!0){e.pathLength=1;let a=i?na:ra;e[a.offset]=`${-r}`,e[a.array]=`${t} ${n}`}var aa=[`transform`,`opacity`,`clipPath`,`filter`,`offsetDistance`,`offsetPath`,`offsetRotate`,`offsetAnchor`];function oa(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:a=1,pathOffset:o=0,...s},c,l,u){if(ta(e,s,l),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:d,style:f}=e;for(let e of aa)d[e]!==void 0&&(f[e]=d[e],delete d[e]);(f.transform||d.transformOrigin)&&(f.transformOrigin=d.transformOrigin??`50% 50%`,delete d.transformOrigin),f.transform&&(f.transformBox=u?.transformBox??`fill-box`,delete d.transformBox),t!==void 0&&(d.x=t),n!==void 0&&(d.y=n),r!==void 0&&(d.scale=r),i!==void 0&&ia(d,i,a,o,!1)}function sa({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function ca({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function la(e,t){if(!t)return e;let n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function ua(e){return e===void 0||e===1}function da({scale:e,scaleX:t,scaleY:n}){return!ua(e)||!ua(t)||!ua(n)}function fa(e){return da(e)||pa(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.rotateZ||e.skewX||e.skewY}function pa(e){return ma(e.x)||ma(e.y)}function ma(e){return e&&e!==`0%`}function ha(e,t,n){return n+t*(e-n)}function ga(e,t,n,r,i){return i!==void 0&&(e=ha(e,i,r)),ha(e,n,r)+t}function _a(e,t=0,n=1,r,i){e.min=ga(e.min,t,n,r,i),e.max=ga(e.max,t,n,r,i)}function va(e,{x:t,y:n}){_a(e.x,t.translate,t.scale,t.originPoint),_a(e.y,n.translate,n.scale,n.originPoint)}var ya=.999999999999,ba=1.0000000000001;function xa(e,t,n,r=!1){let i=n.length;if(!i)return;t.x=t.y=1;let a,o;for(let s=0;sya&&(t.x=1),t.yya&&(t.y=1)}function K(e,t){e.min+=t,e.max+=t}function Sa(e,t,n,r,i=.5){_a(e,t,n,R(e.min,e.max,i),r)}function Ca(e,t){return typeof e==`string`?parseFloat(e)/100*(t.max-t.min):e}function wa(e,t,n){let r=n??e;Sa(e.x,Ca(t.x,r.x),t.scaleX,t.scale,t.originX),Sa(e.y,Ca(t.y,r.y),t.scaleY,t.scale,t.originY)}function Ta(e,t){return sa(la(e.getBoundingClientRect(),t))}function Ea(e,t,n){let r=Ta(e,n),{scroll:i}=t;return i&&(K(r.x,i.offset.x),K(r.y,i.offset.y)),r}var{schedule:Da,cancel:Oa}=Lt(queueMicrotask,!1),q={x:!1,y:!1};function ka(){return q.x||q.y}function Aa(e){return e===`x`||e===`y`?q[e]?null:(q[e]=!0,()=>{q[e]=!1}):q.x||q.y?null:(q.x=q.y=!0,()=>{q.x=q.y=!1})}function ja(e,t){let n=ea(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function Ma(e){return!(e.pointerType===`touch`||ka())}function Na(e,t,n={}){let[r,i,a]=ja(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{e.pointerType!==`touch`&&(n?r=!0:s(e))};e.addEventListener(`pointerenter`,n=>{if(!Ma(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var Pa=(e,t)=>t?e===t||Pa(e,t.parentElement):!1,Fa=e=>e.pointerType===`mouse`?typeof e.button!=`number`||e.button<=0:e.isPrimary!==!1,Ia=new Set([`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`A`]);function La(e){return Ia.has(e.tagName)||e.isContentEditable===!0}var Ra=new Set([`INPUT`,`SELECT`,`TEXTAREA`]);function za(e){return Ra.has(e.tagName)||e.isContentEditable===!0}var Ba=new WeakSet;function Va(e){return t=>{t.key===`Enter`&&e(t)}}function Ha(e,t){e.dispatchEvent(new PointerEvent(`pointer`+t,{isPrimary:!0,bubbles:!0}))}var Ua=(e,t)=>{let n=e.currentTarget;if(!n)return;let r=Va(()=>{if(Ba.has(n))return;Ha(n,`down`);let e=Va(()=>{Ha(n,`up`)});n.addEventListener(`keyup`,e,t),n.addEventListener(`blur`,()=>Ha(n,`cancel`),t)});n.addEventListener(`keydown`,r,t),n.addEventListener(`blur`,()=>n.removeEventListener(`keydown`,r),t)};function Wa(e){return Fa(e)&&!ka()}var Ga=new WeakSet;function Ka(e,t,n={}){let[r,i,a]=ja(e,n),o=e=>{let r=e.currentTarget;if(!Wa(e)||Ga.has(e))return;Ba.add(r),n.stopPropagation&&Ga.add(e);let a=t(r,e),o={...i,capture:!0},s=(e,t)=>{window.removeEventListener(`pointerup`,c,o),window.removeEventListener(`pointercancel`,l,o),Ba.has(r)&&Ba.delete(r),Wa(e)&&typeof a==`function`&&a(e,{success:t})},c=e=>{s(e,r===window||r===document||n.useGlobalTarget||Pa(r,e.target))},l=e=>{s(e,!1)};window.addEventListener(`pointerup`,c,o),window.addEventListener(`pointercancel`,l,o)};return r.forEach(e=>{(n.useGlobalTarget?window:e).addEventListener(`pointerdown`,o,i),Qi(e)&&(e.addEventListener(`focus`,e=>Ua(e,i)),!La(e)&&!e.hasAttribute(`tabindex`)&&(e.tabIndex=0))}),a}var qa=new WeakMap,Ja,Ya=(e,t,n)=>(r,i)=>i&&i[0]?i[0][e+`Size`]:$i(r)&&`getBBox`in r?r.getBBox()[t]:r[n],Xa=Ya(`inline`,`width`,`offsetWidth`),Za=Ya(`block`,`height`,`offsetHeight`);function Qa({target:e,borderBoxSize:t}){qa.get(e)?.forEach(n=>{n(e,{get width(){return Xa(e,t)},get height(){return Za(e,t)}})})}function $a(e){e.forEach(Qa)}function eo(){typeof ResizeObserver<`u`&&(Ja=new ResizeObserver($a))}function to(e,t){Ja||eo();let n=ea(e);return n.forEach(e=>{let n=qa.get(e);n||(n=new Set,qa.set(e,n)),n.add(t),Ja?.observe(e)}),()=>{n.forEach(e=>{let n=qa.get(e);n?.delete(t),n?.size||Ja?.unobserve(e)})}}var no=new Set,ro;function io(){ro=()=>{let e={get width(){return window.innerWidth},get height(){return window.innerHeight}};no.forEach(t=>t(e))},window.addEventListener(`resize`,ro)}function ao(e){return no.add(e),ro||io(),()=>{no.delete(e),!no.size&&typeof ro==`function`&&(window.removeEventListener(`resize`,ro),ro=void 0)}}function oo(e,t){return typeof e==`function`?ao(e):to(e,t)}var so={value:null,addProjectionMetrics:null};function co(e){return $i(e)&&e.tagName===`svg`}var lo=e=>typeof e==`number`?e:parseFloat(e),uo=()=>({translate:0,scale:1,origin:0,originPoint:0}),fo=()=>({x:uo(),y:uo()}),po=()=>({min:0,max:0}),J=()=>({x:po(),y:po()}),mo=new WeakMap;function ho(e){return typeof e==`object`&&!!e&&typeof e.start==`function`}function go(e){return typeof e==`string`||Array.isArray(e)}var _o=[`animate`,`whileInView`,`whileFocus`,`whileHover`,`whileTap`,`whileDrag`,`exit`],vo=[`initial`,..._o];function yo(e){if(ho(e.animate))return!0;for(let t=0;tSo.current=e.matches;e.addEventListener(`change`,t),t()}else So.current=!1}}var Eo=[`AnimationStart`,`AnimationComplete`,`Update`,`BeforeLayoutMeasure`,`LayoutMeasure`,`LayoutAnimationStart`,`LayoutAnimationComplete`],Do={},Oo=class{scrapeMotionValuesFromProps(e,t,n){return{}}constructor({parent:e,props:t,presenceContext:n,reducedMotionConfig:r,skipAnimations:i,blockInitialAnimation:a,visualState:o},s={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=ur,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify(`Update`,this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let e=M.now();this.renderScheduledAtt.delete(this)}}this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),this.reducedMotionConfig===`never`?this.shouldReduceMotion=!1:this.reducedMotionConfig===`always`?this.shouldReduceMotion=!0:(Co.current||To(),this.shouldReduceMotion=So.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),B(this.notifyUpdate),B(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(let e in this.events)this.events[e].clear();for(let e in this.features){let t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??=new Set,this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,t){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),t.accelerate&&Mr.has(e)&&this.current instanceof HTMLElement){let{factory:n,keyframes:r,times:i,ease:a,duration:o}=t.accelerate,s=new Cr({element:this.current,name:e,keyframes:r,times:i,ease:a,duration:k(o)}),c=n(s);this.valueSubscriptions.set(e,()=>{c(),s.cancel()});return}let n=W.has(e);n&&this.onBindTransform&&this.onBindTransform();let r=t.on(`change`,t=>{this.latestValues[e]=t,this.props.onUpdate&&z.preRender(this.notifyUpdate),n&&(this.projection&&(this.projection.isTransformDirty=!0),Hr.get(this.current)?.check()),this.scheduleRender()}),i;typeof window<`u`&&window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{r(),i&&i()})}sortNodePosition(e){return!this.current||!e.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e=`animation`;for(e in Do){let t=Do[e];if(!t)continue;let{isEnabled:n,Feature:r}=t;if(!this.features[e]&&r&&n(this.props)&&(this.features[e]=new r(this)),this.features[e]){let t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):J()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){let{transformTemplate:n,onUpdate:r}=this.props;(e.transformTemplate||n)&&this.scheduleRender(),(e.transformTemplate&&!n||e.onUpdate&&!r)&&Hr.get(this.current)?.demote(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t{this.current&&(this.current.textContent=`${e}`)}))}};function Ao(e,{style:t,vars:n},r,i){let a=e.style,o;for(o in t)a[o]=t[o];for(o in i?.applyProjectionStyles(a,r),n)a.setProperty(o,n[o])}var jo={};function Mo(e){for(let t in e)jo[t]=e[t],Oe(t)&&(jo[t].isCSSVariable=!0)}function No(e,{layout:t,layoutId:n}){return W.has(e)||e.startsWith(`origin`)||(t||n!==void 0)&&(!!jo[e]||e===`opacity`)}function Po(e,t,n){let r=e.style,i=t?.style,a={};if(!r)return a;for(let t in r)(G(r[t])||i&&G(i[t])||No(t,e)||n?.getValue(t)?.liveStyle!==void 0)&&(a[t]=r[t]);return a}function Fo(e){return window.getComputedStyle(e)}var Io=class extends ko{constructor(){super(...arguments),this.type=`html`,this.renderInstance=Ao}mount(e){e.style,super.mount(e)}readValueFromInstance(e,t){if(W.has(t))return this.projection?.isProjecting?Gn(t):qn(e,t);{let n=Fo(e),r=(Oe(t)?n.getPropertyValue(t):n[t])||0;return typeof r==`string`?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:t}){return Ta(e,t)}build(e,t,n){ta(e,t,n.transformTemplate)}scrapeMotionValuesFromProps(e,t,n){return Po(e,t,n)}},Lo=new Set([`baseFrequency`,`diffuseConstant`,`kernelMatrix`,`kernelUnitLength`,`keySplines`,`keyTimes`,`limitingConeAngle`,`markerHeight`,`markerWidth`,`numOctaves`,`targetX`,`targetY`,`surfaceScale`,`specularConstant`,`specularExponent`,`stdDeviation`,`tableValues`,`viewBox`,`gradientTransform`,`pathLength`,`startOffset`,`textLength`,`lengthAdjust`]),Ro=e=>typeof e==`string`&&e.toLowerCase()===`svg`;function zo(e,t,n,r){Ao(e,t,void 0,r);for(let n in t.attrs)e.setAttribute(Lo.has(n)?n:Fi(n),t.attrs[n])}function Bo(e,t,n){let r=Po(e,t,n);for(let n in e)if(n!==`children`&&(G(e[n])||G(t[n]))){let t=U.indexOf(n)===-1?n:`attr`+n.charAt(0).toUpperCase()+n.substring(1);r[t]=e[n]}return r}var Vo=class extends ko{constructor(){super(...arguments),this.type=`svg`,this.isSVGTag=!1,this.measureInstanceViewportBox=J}getBaseTargetFromProps(e,t){return W.has(t)?super.getBaseTargetFromProps(e,t)??Gn(t):e[t]}getDefaultValue(e){return W.has(e)?this.latestValues[e]??Gn(e):void 0}readValueFromInstance(e,t){if(W.has(t)){let e=Nn(t);return e&&e.default||0}if(aa.includes(t)){let n=getComputedStyle(e)[t];if(typeof n==`string`&&n)return n.trim()}return t=Lo.has(t)?t:Fi(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,n){return Bo(e,t,n)}build(e,t,n){oa(e,t,this.isSVGTag,n.transformTemplate,n.style)}renderInstance(e,t,n,r){zo(e,t,n,r)}mount(e){this.isSVGTag=Ro(e.tagName),super.mount(e)}};function Ho(e,t){if(!Array.isArray(t))return!1;let n=t.length;if(n!==e.length)return!1;for(let r=0;rPromise.all(t.map(({animation:t,options:n})=>Hi(e,t,n))),n=Ko(),r=!0,i=!1;function a(a){let{props:o,parent:s,manuallyAnimateOnMount:c}=e,l=r||i,u=[],d=new Set,f={},p=1/0,m=e;do m=m.props.inherit!==!1&&m.parent;while(m&&!m.isControllingVariants);if(Uo.forEach((t,r)=>{let i=n[t],h=o[t],g=m&&m.props[t],_=h===void 0?go(g)||g===!1?g:void 0:h,v=go(_),y=t===a?i.isActive:null;y===!1&&(p=r);let b=v&&h===void 0&&!(l&&c);if(i.protectedKeys={...f},!i.isActive&&y===null||!_&&!i.prevProp||ho(_)||typeof _==`boolean`)return;if(t===`exit`&&i.isActive&&y!==!0){f={...f,...i.prevResolvedValues};return}let x=Go(i.prevProp,_),S=x||v&&(y&&!b||r>p),C=!1,w=Array.isArray(_)?_:[_],T={};if(y!==!1)for(let n of w){let{transition:r,transitionEnd:i,...a}=Ei(e,n,Di(e,t))||{};T={...T,...a,...i}}let{prevResolvedValues:E}=i;for(let t in{...E,...T}){if(t in f)continue;let n=T[t],r=E[t],a=Array.isArray(n)&&Array.isArray(r)?!Ho(n,r)||x:n!==r;if(a&&n==null)d.add(t);else if(a||n!==void 0&&d.has(t)){S=!0,d.delete(t)&&(C=!0),i.needsAnimating[t]=!0;let n=e.getValue(t);n&&(n.liveStyle=!1)}else i.protectedKeys[t]=!0}if(i.prevProp=_,i.prevResolvedValues=T,i.isActive&&(f={...f,...T}),S&&(!(b&&x)||C))for(let n of w){let r={type:t};if(typeof n==`string`&&l&&c&&s?.enteringChildren){let t=Ei(s,n)?.transition?.delayChildren;r.delay=ai(s.enteringChildren,e,t)}u.push({animation:n,options:r})}}),d.size){let{initial:t}=o,n={},r=typeof t!=`boolean`&&Ei(e,Array.isArray(t)?t[0]:t,e.presenceContext?.custom);r&&r.transition&&(n.transition=r.transition),d.forEach(i=>{let a=e.getValue(i);a&&(a.liveStyle=!0);let s=r&&!Array.isArray(t)?r[i]:void 0,c=e.getBaseTargetFromProps(o,i);n[i]=(s===void 0?c!==void 0&&!G(c)?c:e.initialValues[i]===void 0?e.baseTarget[i]:void 0:s)??null}),u.push({animation:n})}let h=l&&e.blockInitialAnimation||r&&!c&&(o.initial===!1||o.initial===o.animate);return r=i=!1,!h&&u.length?t(u):Promise.resolve()}function o(t,r){if(n[t].isActive===r)return Promise.resolve();e.variantChildren?.forEach(e=>e.animationState?.setActive(t,r)),n[t].isActive=r;let i=a(t);for(let e in n)n[e].protectedKeys={};return i}return{animateChanges:a,setActive:o,setAnimateFunction:n=>{t=n(e)},getState:()=>n,reset:()=>{n=Ko(),i=!0}}}function Go(e,t){return typeof t==`string`?t!==e:Array.isArray(t)?!Ho(t,e):!1}function Ko(){let e={};for(let t of _o)e[t]={isActive:t===`animate`,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}};return e}function qo(e,t){e.min=t.min,e.max=t.max}function Y(e,t){qo(e.x,t.x),qo(e.y,t.y)}function Jo(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}var Yo=.9999,Xo=1.0001,Zo=-.01,Qo=.01;function X(e){return e.max-e.min}function $o(e,t,n){return Math.abs(e-t)<=n}function es(e,t,n,r=.5){e.origin=r,e.originPoint=R(t.min,t.max,e.origin),e.scale=X(n)/X(t),e.translate=R(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Yo&&e.scale<=Xo||isNaN(e.scale))&&(e.scale=1),(e.translate>=Zo&&e.translate<=Qo||isNaN(e.translate))&&(e.translate=0)}function ts(e,t,n,r){es(e.x,t.x,n.x,r?r.originX:void 0),es(e.y,t.y,n.y,r?r.originY:void 0)}function ns(e,t,n,r=0){e.min=(r?R(n.min,n.max,r):n.min)+t.min,e.max=e.min+X(t)}function rs(e,t,n,r){ns(e.x,t.x,n.x,r?.x),ns(e.y,t.y,n.y,r?.y)}function is(e,t,n,r=0){let i=r?R(n.min,n.max,r):n.min;e.min=t.min-i,e.max=e.min+X(t)}function as(e,t,n,r){is(e.x,t.x,n.x,r?.x),is(e.y,t.y,n.y,r?.y)}function os(e,t,n,r,i){return e-=t,e=ha(e,1/n,r),i!==void 0&&(e=ha(e,1/i,r)),e}function ss(e,t=0,n=1,r=.5,i,a=e,o=e){if(P.test(t)&&(t=parseFloat(t),t=R(o.min,o.max,t/100)-o.min),typeof t!=`number`)return;let s=R(a.min,a.max,r);e===a&&(s-=t),e.min=os(e.min,t,n,s,i),e.max=os(e.max,t,n,s,i)}function cs(e,t,[n,r,i],a,o){ss(e,t[n],t[r],t[i],t.scale,a,o)}var ls=[`x`,`scaleX`,`originX`],us=[`y`,`scaleY`,`originY`];function ds(e,t,n,r){cs(e.x,t,ls,n?n.x:void 0,r?r.x:void 0),cs(e.y,t,us,n?n.y:void 0,r?r.y:void 0)}function fs(e){return e.translate===0&&e.scale===1}function ps(e){return fs(e.x)&&fs(e.y)}function ms(e,t){return e.min===t.min&&e.max===t.max}function hs(e,t){return ms(e.x,t.x)&&ms(e.y,t.y)}function gs(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function _s(e,t){return gs(e.x,t.x)&&gs(e.y,t.y)}function vs(e){return X(e.x)/X(e.y)}function ys(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Z(e){return[e(`x`),e(`y`)]}function bs(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}var Q={correct:(e,t)=>{if(!t.target)return e;if(typeof e==`string`){if(F.test(e))e=parseFloat(e);else return e}return`${bs(e,t.target.x)}% ${bs(e,t.target.y)}%`}},xs={correct:(e,{treeScale:t,projectionDelta:n})=>{let r=e,i=L.parse(e);if(i.length>5)return r;let a=L.createTransformer(e),o=typeof i[0]==`number`?0:1,s=n.x.scale*t.x,c=n.y.scale*t.y;i[0+o]/=s,i[1+o]/=c;let l=R(s,c,.5);return typeof i[2+o]==`number`&&(i[2+o]/=l),typeof i[3+o]==`number`&&(i[3+o]/=l),a(i)}};function Ss(e,t,n){let r=``,i=e.x.translate/t.x,a=e.y.translate/t.y,o=n?.z||0;if((i||a||o)&&(r=`translate3d(${i}px, ${a}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){let{transformPerspective:e,rotate:t,pathRotation:i,rotateX:a,rotateY:o,rotateZ:s,skewX:c,skewY:l}=n;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),i&&(r+=`rotate(${i}deg) `),a&&(r+=`rotateX(${a}deg) `),o&&(r+=`rotateY(${o}deg) `),s&&(r+=`rotateZ(${s}deg) `),c&&(r+=`skewX(${c}deg) `),l&&(r+=`skewY(${l}deg) `)}let s=e.x.scale*t.x,c=e.y.scale*t.y;return(s!==1||c!==1)&&(r+=`scale(${s}, ${c})`),r||`none`}var Cs=Zi.length,ws=[`rotate`,`rotateX`,`rotateY`,`rotateZ`,`skewX`,`skewY`],Ts=ws.length,Es=e=>typeof e==`number`||F.test(e);function Ds(e,t,n,r,i,a){i?(e.opacity=R(0,n.opacity??1,ks(r)),e.opacityExit=R(t.opacity??1,0,As(r))):a&&(e.opacity=R(t.opacity??1,n.opacity??1,r));for(let i=0;irt?1:n(ne(e,t,r))}function Ms(e,t,n){let r=G(e)?e:ui(e);return r.start(bi(``,r,t,n)),r.animation}function Ns(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}var Ps=(e,t)=>e.depth-t.depth,Fs=class{constructor(){this.children=[],this.isDirty=!1}add(e){x(this.children,e),this.isDirty=!0}remove(e){S(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(Ps),this.isDirty=!1,this.children.forEach(e)}};function Is(e,t){let n=M.now(),r=({timestamp:i})=>{let a=i-n;a>=t&&(B(r),e(a-t))};return z.setup(r,!0),()=>B(r)}function Ls(e){return G(e)?e.get():e}var Rs=class{constructor(){this.members=[]}add(e){x(this.members,e);for(let t=this.members.length-1;t>=0;t--){let n=this.members[t];if(n===e||n===this.lead||n===this.prevLead)continue;let r=n.instance;(!r||r.isConnected===!1)&&!n.snapshot&&(S(this.members,n),n.unmount())}e.scheduleRender()}remove(e){if(S(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){for(let t=this.members.indexOf(e)-1;t>=0;t--){let e=this.members[t];if(e.isPresent!==!1&&e.instance?.isConnected!==!1)return this.promote(e),!0}return!1}promote(e,t){let n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.updateSnapshot(),e.scheduleRender();let{layoutDependency:r}=n.options,{layoutDependency:i}=e.options;(r===void 0||r!==i)&&(e.resumeFrom=n,t&&(n.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}},zs={borderRadius:{...Q,applyTo:[...Zi]},borderTopLeftRadius:Q,borderTopRightRadius:Q,borderBottomLeftRadius:Q,borderBottomRightRadius:Q,boxShadow:xs},Bs={hasAnimatedSinceResize:!0,hasEverUpdated:!1};Object.assign(jo,{...zs,...jo});var Vs={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},Hs=[``,`X`,`Y`,`Z`],Us=1e3,Ws=0;function Gs(e,t,n,r){let{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}var Ks=({instance:e})=>e&&Hr.get(e)?.demote();function qs(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:t}=e.options;if(!t)return;let n=Li(t);if(window.MotionHasOptimisedAnimation(n,`transform`)){let{layout:t,layoutId:r}=e.options;window.MotionCancelOptimisedAnimation(n,`transform`,z,!(t||r))}let{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&qs(r)}function Js({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(e={},n=t?.()){this.id=Ws++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,so.value&&(Vs.nodes=Vs.calculatedTargetDeltas=Vs.calculatedProjections=0),this.nodes.forEach(Zs),this.nodes.forEach(cc),this.nodes.forEach(lc),this.nodes.forEach(Qs),so.addProjectionMetrics&&so.addProjectionMetrics(Vs)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=n?n.root||n:this,this.path=n?[...n.path,n]:[],this.parent=n,this.depth=n?n.depth+1:0;for(let e=0;ethis.root.updateBlockedByResize=!1;z.read(()=>{r=window.innerWidth}),e(t,()=>{let e=window.innerWidth;e!==r&&(r=e,this.root.updateBlockedByResize=!0,n&&n(),n=Is(i,250),Bs.hasAnimatedSinceResize&&(Bs.hasAnimatedSinceResize=!1,this.nodes.forEach(sc)))})}n&&this.root.registerSharedNode(n,this),this.addLayoutListener()}addLayoutListener(){let{layoutId:e,layout:t,visualElement:n,animate:r}=this.options;this.instance&&!this.hasLayoutListener&&r!==!1&&n&&(e||t)&&(this.hasLayoutListener=!0,this.addEventListener(`didUpdate`,({delta:e,hasLayoutChanged:t,hasRelativeLayoutChanged:r,layout:i})=>{if(this.isAnimationBlocked){this.target=void 0,this.relativeTarget=void 0;return}let a=this.options.transition||n.getDefaultTransition()||hc,{onLayoutAnimationStart:o,onLayoutAnimationComplete:s}=n.getProps(),c=!this.targetLayout||!_s(this.targetLayout,i),l=!t&&r;if(this.options.layoutRoot||this.resumeFrom||l||t&&(c||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let t={...fi(a,`layout`),onPlay:o,onComplete:s};(n.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t),this.setAnimationOrigin(e,l,t.path)}else t||sc(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=i}))}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),this.hasLayoutListener=!1,B(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(uc),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&qs(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;Ks(this),this.isLayoutDirty=!0;for(let e=0;ee.members.length?e.removeLeadSnapshot():this.sharedNodes.delete(t))}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,z.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){z.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),this.snapshot&&!X(this.snapshot.measuredBox.x)&&!X(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e{let n=t/1e3,r=p?.(n);r?(o.x.translate=r.x,o.x.scale=R(e.x.scale,1,n),o.x.origin=e.x.origin,o.x.originPoint=e.x.originPoint,o.y.translate=r.y,o.y.scale=R(e.y.scale,1,n),o.y.origin=e.y.origin,o.y.originPoint=e.y.originPoint):(dc(o.x,e.x,n),dc(o.y,e.y,n)),this.setTargetDelta(o),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(as(s,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),pc(this.relativeTarget,this.relativeTargetOrigin,s,n),f&&hs(this.relativeTarget,f)&&(this.isProjectionDirty=!1),f||=J(),Y(f,this.relativeTarget)),c&&(this.animationValues=a,Ds(a,i,this.latestValues,n,d,u)),r&&r.rotate!==void 0&&(this.animationValues||=a,this.animationValues.pathRotation=r.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=n},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(e){this.notifyListeners(`animationStart`),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&=(B(this.pendingAnimation),void 0),this.pendingAnimation=z.update(()=>{Bs.hasAnimatedSinceResize=!0,this.motionValue||=ui(0),this.motionValue.jump(0,!1),this.currentAnimation=Ms(this.motionValue,[0,1e3],{...e,velocity:0,isSync:!0,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onComplete:()=>{e.onComplete&&e.onComplete(),this.completeAnimation()}}),bn(this.currentAnimation,this),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners(`animationComplete`)}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Us),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,layout:n,latestValues:r}=e,{target:i}=e;if(t&&i&&n){if(this!==e&&this.layout&&n&&bc(this.options.animationType,this.layout.layoutBox,n.layoutBox)){i=this.target||J();let t=X(this.layout.layoutBox.x);i.x.min=e.target.x.min,i.x.max=i.x.min+t;let n=X(this.layout.layoutBox.y);i.y.min=e.target.y.min,i.y.max=i.y.min+n}Y(t,i),wa(t,r),ts(this.projectionDeltaWithTransform,this.layoutCorrected,t,r)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new Rs),this.sharedNodes.get(e).add(t);let n=t.options.initialPromotionConfig;t.promote({transition:n?n.transition:void 0,preserveFollowOpacity:n&&n.shouldPreserveFollowOpacity?n.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){let{layoutId:e}=this.options;return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:n}={}){let r=this.getStack();r&&r.promote(this,n),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return e?e.relegate(this):!1}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:n}=e;if((n.z||n.rotate||n.rotateX||n.rotateY||n.rotateZ||n.skewX||n.skewY)&&(t=!0),!t)return;let r={};n.z&&Gs(`z`,e,r,this.animationValues);for(let t=0;te.currentAnimation?.stop()),this.root.nodes.forEach(ec),this.root.sharedNodes.clear()}}}function Ys(e){e.updateLayout(),rc(e)}function Xs(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners(`didUpdate`)){let{layoutBox:n,measuredBox:r}=e.layout,{animationType:i}=e.options,a=t.source!==e.layout.source;if(i===`size`)Z(e=>{let r=a?t.measuredBox[e]:t.layoutBox[e],i=X(r);r.min=n[e].min,r.max=r.min+i});else if(i===`x`||i===`y`){let e=i===`x`?`y`:`x`;qo(a?t.measuredBox[e]:t.layoutBox[e],n[e])}else bc(i,t.layoutBox,n)&&Z(r=>{let i=a?t.measuredBox[r]:t.layoutBox[r],o=X(n[r]);i.max=i.min+o,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+o)});let o=fo();ts(o,n,t.layoutBox);let s=fo();a?ts(s,e.applyTransform(r,!0),t.measuredBox):ts(s,n,t.layoutBox);let c=!ps(o),l=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:i,layout:a}=r;if(i&&a){let o=e.options.layoutAnchor||void 0,s=J();as(s,t.layoutBox,i.layoutBox,o);let c=J();as(c,n,a.layoutBox,o),_s(s,c)||(l=!0),r.options.layoutRoot&&(e.relativeTarget=c,e.relativeTargetOrigin=s,e.relativeParent=r)}}}e.notifyListeners(`didUpdate`,{layout:n,snapshot:t,delta:s,layoutDelta:o,hasLayoutChanged:c,hasRelativeLayoutChanged:l})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function Zs(e){so.value&&Vs.nodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty),e.isTransformDirty||=e.parent.isTransformDirty)}function Qs(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function $s(e){e.clearSnapshot()}function ec(e){e.clearMeasurements()}function tc(e){e.isLayoutDirty=!0,e.updateLayout()}function nc(e){e.isLayoutDirty=!1}function rc(e){let{snapshot:t,dragAncestor:n}=e,r=n?.layout;if(!t||!r||e.resumeFrom||e.isAnimationBlocked)return;let i=n.dragSnapshot;Z(e=>K(t.layoutBox[e],r.layoutBox[e].min-i.layoutBox[e].min))}function ic(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.dragSnapshot||e.layout,e.isLayoutDirty=!0)}function ac(e){e.relativeTarget&&e.relativeParent?.isLayoutDirty&&(e.currentAnimation?e.isLayoutDirty=!0:(e.targetDelta=void 0,e.removeRelativeTarget()))}function oc(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify(`BeforeLayoutMeasure`),e.resetTransform()}function sc(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function cc(e){e.resolveTargetDelta()}function lc(e){e.calcProjection()}function uc(e){e.resetSkewAndRotation()}function dc(e,t,n){e.translate=R(t.translate,0,n),e.scale=R(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function fc(e,t,n,r){e.min=R(t.min,n.min,r),e.max=R(t.max,n.max,r)}function pc(e,t,n,r){fc(e.x,t.x,n.x,r),fc(e.y,t.y,n.y,r)}function mc(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}var hc={duration:.45,ease:[.4,0,.1,1]},gc=e=>typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),_c=gc(`applewebkit/`)&&!gc(`chrome/`)?Math.round:O;function vc(e){e.min=_c(e.min),e.max=_c(e.max)}function yc(e){vc(e.x),vc(e.y)}function bc(e,t,n){return e===`position`||e===`preserve-aspect`&&!$o(vs(t),vs(n),.2)}function xc(e){return e!==e.root&&e.scroll?.wasRoot}var Sc=Js({attachResizeListener:(e,t)=>Ns(e,`resize`,t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Cc={current:void 0},wc=Js({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Cc.current){let e=new Sc({});e.mount(window),e.setOptions({layoutScroll:!0}),Cc.current=e}return Cc.current},resetTransform:(e,t)=>{e.style.transform=t===void 0?`none`:t},checkIsScrollRoot:e=>window.getComputedStyle(e).position===`fixed`}),Tc={some:0,all:1};function Ec(e,t,{root:n,margin:r,amount:i=`some`}={}){let a=ea(e),o=new WeakMap,s=new IntersectionObserver(e=>{e.forEach(e=>{let n=o.get(e.target);if(e.isIntersecting!==!!n){if(e.isIntersecting){let n=t(e.target,e);typeof n==`function`?o.set(e.target,n):s.unobserve(e.target)}else typeof n==`function`&&(n(e),o.delete(e.target))}})},{root:n,rootMargin:r,threshold:typeof i==`number`?i:Tc[i]});return a.forEach(e=>s.observe(e)),()=>s.disconnect()}var Dc=(e,t)=>Math.abs(e-t);function Oc(e,t){let n=Dc(e.x,t.x),r=Dc(e.y,t.y);return Math.sqrt(n**2+r**2)}function kc({current:e}){return e?e.ownerDocument.defaultView:null}function Ac(e){if(e)return e.nodeType===3||e.nodeType===8?Ac(e.nextSibling):e}var[jc,Mc,Nc]=y(`Motion`),[Pc,Fc,Ic]=y(`LayoutGroup`),Lc={reducedMotion:`never`,transition:void 0,nonce:void 0},[Rc,zc,Bc]=y(`MotionConfig`);function Vc(){return Rc(m(()=>Lc))}function Hc(e,t,n){if(Array.isArray(e))return e.reduce((e,r)=>{let i=Hc(r,t,n);return i?{...e,...i}:e},{});if(typeof e==`object`)return e;if(e&&t){let r=t[e];return typeof r==`function`?r(n):r}}function Uc(e,t,n){let r=Hc(e,t,n);if(!r)return;let{transition:i,transitionEnd:a,...o}=r;return{...o,...a}}function Wc(e,t){let n=(e.initial===void 0&&e.variants?t?.initial:e.initial)===!1?[`initial`,`animate`]:[`initial`],r=e.custom??e.presenceContext?.custom;return n.reduce((n,i)=>({...n,...Uc(e[i]||t?.[i],e.variants,r)}),{})}var Gc=new Set(`animate.circle.defs.desc.ellipse.g.image.line.filter.marker.mask.metadata.path.pattern.polygon.polyline.rect.stop.svg.switch.symbol.text.tspan.use.view.clipPath.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feDistantLight.feDropShadow.feFlood.feFuncA.feFuncB.feFuncG.feFuncR.feGaussianBlur.feImage.feMerge.feMergeNode.feMorphology.feOffset.fePointLight.feSpecularLighting.feSpotLight.feTile.feTurbulence.foreignObject.linearGradient.radialGradient.textPath`.split(`.`));function Kc(e){return Gc.has(e)}var qc=new WeakMap,Jc=class{constructor(e,t,n={}){this.element=null,this.isExiting=!1,this.children=new Set,this.features=new Map,this.featureCtors=[],this._context=null,this.options=e,this.parent=t,t?.children?.add(this),this.latestValues=Wc(e,this.context),this.type=Kc(this.options.as)?`svg`:`html`,this.setBundle(n)}get context(){if(!this._context){let e={get:(e,t)=>{let n=this.options[t];return go(n)||t===`initial`&&n===!1?n:this.parent?.context[t]}};this._context=new Proxy({},e)}return this._context}setBundle(e){e.renderer&&this.initVisualElement(e.renderer),e.features?.length&&(this.featureCtors=e.features),this.updateFeatures()}updateFeatures(){if(this.visualElement)for(let e of this.featureCtors){let t=this.features.get(e.key);t||(t=new e(this),this.features.set(e.key,t)),this.isMounted()&&(t.isMount?t.update():(t.mount(),t.isMount=!0))}}updateOptions(e){this.options=e,this.visualElement?.update({...this.options,whileTap:this.options.whilePress},this.options.presenceContext??null)}mount(e){qc.set(e,this),this.element=e,this.features.get(`layout`)?.refreshRootScroll(),this.visualElement?.mount(e),this.updateFeatures()}beforeUnmount(){this.getSnapshot(!1)}unmount(){this.parent?.children?.delete(this),this.element&&qc.delete(this.element),this.features.forEach(e=>{e.unmount(),e.isMount=!1}),this.visualElement?.unmount(),this.element=null}beforeUpdate(){this.getSnapshot(!this.isExiting)}update(){this.updateFeatures(),this.didUpdate()}getFeature(e){return this.features.get(e)}setActive(e,t){e===`exit`&&t&&(this.isExiting=!0);let n=e===`whilePress`?`whileTap`:e;this.visualElement?.animationState?.setActive(n,t).then(()=>{e===`exit`&&t&&(this.isExiting=!1)})}isMounted(){return!!this.element}initVisualElement(e){this.visualElement||(this.visualElement=e(this.options.as,{presenceContext:this.options.presenceContext??null,parent:this.parent?.visualElement,props:{...this.options,whileTap:this.options.whilePress},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{...this.latestValues}},reducedMotionConfig:this.options.motionConfig?.reducedMotion}),this.isMounted()&&this.visualElement.mount(this.element))}getSnapshot(e){this.features.get(`layout`)?.getSnapshot(e)}didUpdate(){}},$=class{constructor(e){this.isMount=!1,this.state=e}mount(){}beforeUnmount(){}unmount(){}update(){}getSnapshot(e){}};function Yc(e){return e.style.display===`none`||e.offsetParent===null&&window.getComputedStyle(e).position!==`fixed`}var Xc=class extends ${static{this.key=`animation`}constructor(e){super(e);let t=e.visualElement;t.animationState||=Wo(t)}updateAnimationControlsSubscription(){let{animate:e}=this.state.options;ho(e)&&(this.unmountControls=e.subscribe(this.state.visualElement))}mount(){Yc(this.state.element)?this.state.setActive(`exit`,!0):this.state.visualElement.animationState?.animateChanges(),this.updateAnimationControlsSubscription()}update(){this.state.visualElement.animationState?.animateChanges();let{animate:e}=this.state.visualElement.getProps(),{animate:t}=this.state.visualElement.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.state.visualElement.animationState.reset(),this.unmountControls?.()}},Zc=class extends ${constructor(...e){super(...e),this.exitGeneration=0}static{this.key=`exit`}exit(){let e=++this.exitGeneration,t=this.state;t.isExiting=!0;let n=new Promise(e=>{this.pendingExit={resolve:e}}),r=t.visualElement?.animationState?.setActive(`exit`,!0);return r?r.then(()=>{e===this.exitGeneration&&(t.isExiting=!1,t.options?.layoutId?z.postRender(()=>this.tryCompleteExit(e)):this.tryCompleteExit(e))}):(t.isExiting=!1,this.tryCompleteExit(e)),t.getSnapshot(!1),n}reenter(){this.exitGeneration++,this.settleExit(),this.state.isExiting=!1,this.state.setActive(`exit`,!1),this.state.getSnapshot(!0)}completeExitFromProjection(){this.tryCompleteExit(this.exitGeneration)}tryCompleteExit(e){e!==this.exitGeneration||this.state.isExiting||this.state.options?.layoutId&&this.state.visualElement.projection?.currentAnimation?.state===`running`||this.settleExit()}settleExit(){this.pendingExit?.resolve(),this.pendingExit=void 0}mount(){this.state.options.presenceContext?.register?.(this.state)}unmount(){this.state.options.presenceContext?.unregister?.(this.state),this.settleExit()}};function Qc(e,t){return Kc(e)?new Vo(t):new Io(t)}function $c(e,t=`page`){return{point:{x:e[`${t}X`],y:e[`${t}Y`]}}}function el(e){return t=>Fa(t)&&e(t,$c(t))}var tl=class extends ${static{this.key=`press`}constructor(e){super(e)}isActive(){let{whilePress:e,onPress:t,onPressCancel:n,onPressStart:r}=this.state.options;return!!(e||t||n||r)}register(){let e=this.state.element;e&&this.isActive()&&(this.removePress?.(),this.removePress=Ka(e,(e,t)=>{let n=this.state.options;return this.state.setActive(`whilePress`,!0),n.onPressStart&&z.postRender(()=>n.onPressStart(t,$c(t))),(e,{success:t})=>{this.state.setActive(`whilePress`,!1);let n=t?`onPress`:`onPressCancel`,r=this.state.options[n];r&&z.postRender(()=>r(e,$c(e)))}},{useGlobalTarget:this.state.options.globalPressTarget}))}mount(){this.register()}update(){let e=this.state.visualElement.prevProps;!(e?.whilePress||e?.whileTap||e?.onPress||e?.onPressCancel||e?.onPressStart)&&this.isActive()&&this.register()}unmount(){this.removePress?.(),this.removePress=void 0}},nl=class extends ${static{this.key=`hover`}constructor(e){super(e)}isActive(){let{whileHover:e,onHoverStart:t,onHoverEnd:n}=this.state.options;return!!(e||t||n)}register(){let e=this.state.element;e&&this.isActive()&&(this.removeHover?.(),this.removeHover=Na(e,(e,t)=>{let n=this.state.options;return this.state.setActive(`whileHover`,!0),n.onHoverStart&&z.postRender(()=>n.onHoverStart(t,$c(t))),e=>{this.state.setActive(`whileHover`,!1);let t=this.state.options.onHoverEnd;t&&z.postRender(()=>t(e,$c(e)))}}))}mount(){this.register()}update(){let e=this.state.visualElement.prevProps;!(e?.whileHover||e?.onHoverStart||e?.onHoverEnd)&&this.isActive()&&this.register()}unmount(){this.removeHover?.(),this.removeHover=void 0}},rl=class extends ${static{this.key=`inView`}constructor(e){super(e)}isActive(){let{whileInView:e,onViewportEnter:t,onViewportLeave:n}=this.state.options;return!!(e||t||n)}startObserver(){let e=this.state.element;if(!e||!this.isActive())return;this.removeObserver?.();let{once:t,...n}=this.state.options.inViewOptions||{};this.removeObserver=Ec(e,(e,n)=>{let r=this.state.options;if(this.state.setActive(`whileInView`,!0),r.onViewportEnter&&z.postRender(()=>r.onViewportEnter(n)),!t)return()=>{this.state.setActive(`whileInView`,!1);let e=this.state.options.onViewportLeave;e&&z.postRender(()=>e(n))}},n)}mount(){this.startObserver()}update(){let{props:e,prevProps:t}=this.state.visualElement;[`amount`,`margin`,`root`].some(n=>e.inViewOptions?.[n]!==t?.inViewOptions?.[n])&&this.startObserver()}unmount(){this.removeObserver?.(),this.removeObserver=void 0}},il=class extends ${static{this.key=`focus`}constructor(e){super(e),this.isFocused=!1}onFocus(){let e=!1;try{e=this.state.element.matches(`:focus-visible`)}catch{e=!0}e&&(this.state.setActive(`whileFocus`,!0),this.isFocused=!0)}onBlur(){this.isFocused&&=(this.state.setActive(`whileFocus`,!1),!1)}mount(){let e=this.state.element;this.removeFocus=te(Ns(e,`focus`,()=>this.onFocus()),Ns(e,`blur`,()=>this.onBlur()))}unmount(){this.removeFocus?.(),this.removeFocus=void 0}};function al(e){if(e)return e.options.allowProjection===!1?al(e.parent):e.projection}var ol={borderRadius:{...Q,applyTo:[`borderTopLeftRadius`,`borderTopRightRadius`,`borderBottomLeftRadius`,`borderBottomRightRadius`]},borderTopLeftRadius:Q,borderTopRightRadius:Q,borderBottomLeftRadius:Q,borderBottomRightRadius:Q,boxShadow:xs},sl=typeof window>`u`,cl=class extends ${static{this.key=`projection`}constructor(e){super(e),Mo(ol),sl||this.initProjection()}initProjection(){let e=this.state.options;this.state.visualElement.projection=new wc(this.state.visualElement.latestValues,e[`data-framer-portal-id`]?void 0:al(this.state.visualElement.parent)),this.projection=this.state.visualElement.projection,this.projection.isPresent=!0,this.setOptions()}setOptions(){let e=this.state.options,{layoutId:t,layout:n,drag:r=!1,dragConstraints:i=!1}=e;this.projection?.setOptions({layout:n,layoutId:t,alwaysMeasureLayout:!!t||!!r||i&&Qi(i),visualElement:this.state.visualElement,animationType:typeof e.layout==`string`?e.layout:`both`,layoutRoot:e.layoutRoot,layoutScroll:e.layoutScroll,crossfade:e.crossfade,onExitComplete:()=>{!this.projection?.isPresent&&this.state.options.layoutId&&!this.state.isExiting&&queueMicrotask(()=>{this.state.getFeature(`exit`)?.completeExitFromProjection()})}})}update(){this.setOptions()}mount(){this.projection?.mount(this.state.element)}};function ll(e,t,n,r){return Ns(e,t,el(n),r)}var ul=new Set([`auto`,`scroll`]),dl=class{constructor(e,t,{transformPagePoint:n,contextWindow:r,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.onElementScroll=e=>{this.handleScroll(e.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.hasPendingMove=!1,this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=fl(this.lastRawMoveEventInfo,this.transformPagePoint));let e=ml(this.lastMoveEventInfo,this.history),t=this.startEvent!==null,n=Oc(e.offset,{x:0,y:0})>=this.distanceThreshold;if(!t&&!n)return;let{point:r}=e;this.history.push({...r,timestamp:M.now()});let{onStart:i,onMove:a}=this.handlers;t||(i&&i(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),a&&a(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastRawMoveEventInfo=t,this.lastMoveEventInfo=fl(t,this.transformPagePoint),this.hasPendingMove=!0,z.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.hasPendingMove&&this.updatePoint(),this.end();let{onEnd:n,onSessionEnd:r,resumeAnimation:i}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=ml(e.type===`pointercancel`?this.lastMoveEventInfo:fl(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,a),r&&r(e,a)},!Fa(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=n,this.distanceThreshold=a,this.contextWindow=r||window;let s=fl($c(e),this.transformPagePoint),{point:c}=s,{timestamp:l}=j;this.history=[{...c,timestamp:l}];let{onSessionStart:u}=t;u&&u(e,ml(s,this.history));let d={passive:!0,capture:!0};this.removeListeners=te(ll(this.contextWindow,`pointermove`,this.handlePointerMove,d),ll(this.contextWindow,`pointerup`,this.handlePointerUp,d),ll(this.contextWindow,`pointercancel`,this.handlePointerUp,d)),o&&this.startScrollTracking(o)}startScrollTracking(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t);(ul.has(e.overflowX)||ul.has(e.overflowY))&&this.scrollPositions.set(t,{x:t.scrollLeft,y:t.scrollTop}),t=t.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener(`scroll`,this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener(`scroll`,this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.removeEventListener(`scroll`,this.onWindowScroll)}}handleScroll(e){let t=this.scrollPositions.get(e);if(!t)return;let n=e===window,r=n?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},i={x:r.x-t.x,y:r.y-t.y};(i.x!==0||i.y!==0)&&(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(e,r),z.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners?.(),this.scrollPositions.clear(),B(this.updatePoint)}};function fl(e,t){return t?{point:t(e.point)}:e}function pl(e,t){return{x:e.x-t.x,y:e.y-t.y}}function ml({point:e},t){return{point:e,delta:pl(e,gl(t)),offset:pl(e,hl(t)),velocity:_l(t,.1)}}function hl(e){return e[0]}function gl(e){return e[e.length-1]}function _l(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null,i=gl(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>k(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>k(t)*2&&(r=e[1]);let a=A(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};let o={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function vl(e){return(t,n)=>{e&&z.update(()=>e(t,n),!1,!0)}}var yl=class extends ${constructor(...e){super(...e),this.removePointerDownListener=O}static{this.key=`pan`}onPointerDown(e){this.session=new dl(e,this.createPanHandlers(),{transformPagePoint:this.state.visualElement.getTransformPagePoint(),contextWindow:kc(this.state.visualElement)})}createPanHandlers(){return{onSessionStart:vl((e,t)=>{let{onPanSessionStart:n}=this.state.options;n&&n(e,t)}),onStart:vl((e,t)=>{let{onPanStart:n}=this.state.options;n&&n(e,t)}),onMove:vl((e,t)=>{let{onPan:n}=this.state.options;n&&n(e,t)}),onEnd:(e,t)=>{let{onPanEnd:n}=this.state.options;delete this.session,n&&z.postRender(()=>n(e,t))}}}mount(){this.removePointerDownListener=ll(this.state.element,`pointerdown`,this.onPointerDown.bind(this))}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}};function bl(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?R(n,e,r.max):Math.min(e,n)),e}var xl=.35;function Sl(e,{top:t,left:n,bottom:r,right:i}){return{x:Cl(e.x,n,i),y:Cl(e.y,t,r)}}function Cl(e,t,n){return{min:t===void 0?void 0:e.min+t,max:n===void 0?void 0:e.max+n-(e.max-e.min)}}function wl(e=xl){return e===!1?e=0:e===!0&&(e=xl),{x:Tl(e,`left`,`right`),y:Tl(e,`top`,`bottom`)}}function Tl(e,t,n){return{min:El(e,t),max:El(e,n)}}function El(e,t){return typeof e==`number`?e:e[t]||0}function Dl(e,t){let n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}function Ol(e,t){return{x:kl(e.x,t.x),y:kl(e.y,t.y)}}function kl(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=ne(t.min,t.max-r,e.min):r>i&&(n=ne(e.min,e.max-i,t.min)),C(0,1,n)}var jl=new WeakMap,Ml=class{constructor(e){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=J(),this.latestPointerEvent=null,this.latestPanInfo=null,this.state=e}get visualElement(){return this.state.visualElement}start(e,{snapToCursor:t=!1,distanceThreshold:n}={}){if(this.state.isExiting)return;let r=e=>{t&&this.snapToCursor(e),this.stopAnimation()},i=(e,t)=>{this.stopAnimation();let{drag:n,dragPropagation:r,onDragStart:i}=this.getProps();n&&!r&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=Aa(n),!this.openGlobalLock)||(this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Z(e=>{let t=this.getAxisMotionValue(e).get()||0;if(P.test(t)){let{projection:n}=this.visualElement;if(n&&n.layout){let r=n.layout.layoutBox[e];r&&(t=X(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),i&&z.update(()=>i(e,t),!1,!0),Pi(this.visualElement,`transform`),this.state.setActive(`whileDrag`,!0))},a=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:n,dragDirectionLock:r,onDirectionLock:i,onDrag:a}=this.getProps();if(!n&&!this.openGlobalLock)return;let{offset:o}=t;r&&this.currentDirection===null?(this.currentDirection=Il(o),this.currentDirection!==null&&i&&i(this.currentDirection)):(this.updateAxis(`x`,t.point,o),this.updateAxis(`y`,t.point,o),this.visualElement.render(),a&&z.update(()=>a(e,t),!1,!0))},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},s=()=>{let{dragSnapToOrigin:e}=this.getProps();(e||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:c}=this.getProps();this.panSession=new dl(e,{onSessionStart:r,onStart:i,onMove:a,onSessionEnd:o,resumeAnimation:s},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,distanceThreshold:n,contextWindow:kc(this.visualElement),element:this.state.element})}stop(e,t){let n=e||this.latestPointerEvent,r=t||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!r||!n)return;let{velocity:a}=r;this.startAnimation(a);let{onDragEnd:o}=this.getProps();o&&z.postRender(()=>o(n,r))}cancel(){this.isDragging=!1;let{projection:e}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:t}=this.getProps();!t&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),this.state.setActive(`whileDrag`,!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,t,n){let{drag:r}=this.getProps();if(!n||!Fl(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),a=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(a=bl(a,this.constraints[e],this.elastic[e])),i.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&Qi(e)?this.constraints||=this.resolveRefConstraints():this.constraints=e&&n?Sl(n.layoutBox,e):!1,this.elastic=wl(t),r!==this.constraints&&!Qi(e)&&n&&this.constraints&&!this.hasMutatedConstraints&&Z(e=>{this.constraints!==!1&&this.getAxisMotionValue(e)&&(this.constraints[e]=Dl(n.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){let{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!Qi(e))return!1;let n=e,{projection:r}=this.visualElement;if(!r||!r.layout)return!1;r.root&&(r.root.scroll=void 0,r.root.updateScroll());let i=Ea(n,r.root,this.visualElement.getTransformPagePoint()),a=Ol(r.layout.layoutBox,i);if(t){let e=t(ca(a));this.hasMutatedConstraints=!!e,e&&(a=sa(e))}return a}startAnimation(e){let{drag:t,dragMomentum:n,dragElastic:r,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),s=this.constraints||{},c=Z(o=>{if(!Fl(o,t,this.currentDirection))return;let c=s&&s[o]||{};(a===!0||a===o)&&(c={min:0,max:0});let l=r?200:1e6,u=r?40:1e7,d={type:`inertia`,velocity:n?e[o]:0,bounceStiffness:l,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...i,...c};return this.startAxisValueAnimation(o,d)});return Promise.all(c).then(o)}startAxisValueAnimation(e,t){let n=this.getAxisMotionValue(e);return Pi(this.visualElement,e),n.start(bi(e,n,0,t,this.visualElement,!1))}stopAnimation(){this.visualElement.projection?.isPresent&&Z(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`;return this.visualElement.getProps()[t]||this.visualElement.getValue(e,this.visualElement.latestValues[e]??0)}snapToCursor({clientX:e,clientY:t}){let{drag:n}=this.getProps(),r={x:e,y:t},i=this.visualElement.getTransformPagePoint()?.(r)||r,a=this.visualElement.measureViewportBox();Z(e=>{if(!Fl(e,n,this.currentDirection))return;let t=this.getAxisMotionValue(e),{min:r,max:o}=a[e];t.set((t.get()||0)+i[e]-R(r,o,.5))})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!Qi(t)||!n||!this.constraints)return;this.stopAnimation();let r={x:0,y:0};Z(e=>{let t=this.getAxisMotionValue(e);if(t&&this.constraints!==!1){let n=t.get();r[e]=Al({min:n,max:n},this.constraints[e])}});let{transformTemplate:i}=this.visualElement.getProps();this.state.element.style.transform=i?i({},``):`none`,n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),Z(t=>{let n=this.getAxisMotionValue(t);if(!Fl(t,e,null)||!n.get())return;let{min:i,max:a}=this.constraints[t];n.set(R(i,a,r[t]))}),this.visualElement.render()}addListeners(){if(!this.state.element)return;jl.set(this.visualElement,this);let e=this.state.element,t=ll(e,`pointerdown`,t=>{let{drag:n,dragListener:r=!0}=this.getProps(),i=t.target,a=i!==e&&za(i);n&&r&&!a&&this.start(t)}),n,r=()=>{let{dragConstraints:t}=this.getProps();Qi(t)&&(this.constraints=this.resolveRefConstraints(),n||=Pl(e,t,()=>this.scalePositionWithinConstraints()))},{projection:i}=this.visualElement,a=i.addEventListener(`measure`,r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),z.read(r);let o=Ns(window,`resize`,()=>this.scalePositionWithinConstraints()),s=i.addEventListener(`didUpdate`,(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(Z(t=>{let n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))}),this.visualElement.render())}));return()=>{o(),t(),a(),s&&s(),n&&n()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:a=xl,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:i,dragElastic:a,dragMomentum:o}}};function Nl(e){let t=!0;return()=>{t?t=!1:e()}}function Pl(e,t,n){let r=oo(e,Nl(n)),i=oo(t,Nl(n));return()=>{r(),i()}}function Fl(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Il(e,t=10){let n=null;return Math.abs(e.y)>t?n=`y`:Math.abs(e.x)>t&&(n=`x`),n}var Ll={renderer:Qc,features:[Xc,Zc,tl,nl,rl,il,cl,yl,class extends ${static{this.key=`drag`}constructor(e){super(e),this.removeGroupControls=O,this.removeListeners=O,this.controls=new Ml(e)}mount(){let{dragControls:e}=this.state.options;e&&(this.removeGroupControls=e.subscribe(this.controls)),this.prevDragControls=e,this.removeListeners=this.controls.addListeners()||O}update(){let{dragControls:e}=this.state.options;e!==this.prevDragControls&&(this.removeGroupControls(),this.removeGroupControls=e?e.subscribe(this.controls):O,this.prevDragControls=e)}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},class extends ${static{this.key=`layout`}constructor(e){super(e),Mo(ol)}updatePrevLead(e){let t=this.state.visualElement.projection;t.isPresent!==e&&(t.isPresent=e,e?!t.isLead()&&t?.promote():t.isLead()&&t?.relegate())}didUpdate(){(this.state.options.layout||this.state.options.layoutId||this.state.options.drag)&&this.state.visualElement.projection?.root?.didUpdate()}mount(){let e=this.state.options,t=this.state.options.layoutGroup;if(e.layout||e.layoutId){let n=this.state.visualElement.projection;if(e.layoutId){let e=!Yc(this.state.element);n.isPresent=e,e?n?.promote():n?.relegate()}t?.group?.add(n),Bs.hasEverUpdated=!0}this.didUpdate()}unmount(){let e=this.state.options.layoutGroup,t=this.state.visualElement.projection;t&&e?.group&&(this.state.options.layout||this.state.options.layoutId)&&e.group.remove(t)}getSnapshot(e){let t=this.state.visualElement.projection,{layout:n,layoutId:r,drag:i,layoutDependency:a}=this.state.visualElement.props,o=this.state.visualElement.prevProps;t&&(n||r||i)&&((i||o.layoutDependency!==a||a===void 0||e!==t.isPresent)&&t.willUpdate(),r&&this.updatePrevLead(e),this.didUpdate())}refreshRootScroll(){let e=this.state.visualElement?.projection?.root;e&&this.state.options.layoutId&&(e.scroll=void 0,e.updateScroll?.())}}]},[Rl,zl]=y(`LazyMotionContext`),[Bl,Vl,Hl]=y(`AnimatePresenceContext`);function Ul(e){return e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}function Wl(){return{transform:{},transformOrigin:{},style:{},vars:{}}}function Gl(){return{...Wl(),attrs:{}}}function Kl(e,t){let n=Wl();ta(n,e,t);let r={...n.style};r.transform===``&&delete r.transform;for(let e in n.vars)r[e]=n.vars[e];return Object.keys(r).length===0?null:r}function ql(e,t,n){let r=Gl();oa(r,e,Ro(t),void 0,n);let i={};for(let e in r.attrs){let t=Lo.has(e)?e:Ul(e);i[t]=r.attrs[e]}return{attrs:i,style:{...r.style,...r.vars}}}function Jl(t,n={}){let c=jc(null),f=Pc({}),p=Vc(),m=Bl({}),_=Rl({features:g({}),strict:!1}),v=i();function y(){return b(t,{layoutGroup:f,presenceContext:m,config:p.value})}function x(){return{...v,...y()}}let S=new Jc(x(),c,n);Mc(S),h(_.features,e=>{S.setBundle(e)},{immediate:!0,flush:`pre`});function C(){let e=S.type===`svg`,n={...v};Object.keys(v).forEach(e=>{G(v[e])&&(n[e]=v[e].get())});let r=S.visualElement?.latestValues||S.latestValues,i={...t.style,...e?{}:r};for(let e in i)G(i[e])&&(i[e]=i[e].get());if(e){let{attrs:e,style:a}=ql({...r,...i},S.options.as,t.style);Object.assign(n,e),i=a}t.drag&&t.dragListener!==!1&&Object.assign(i,{userSelect:`none`,WebkitUserSelect:`none`,WebkitTouchCallout:`none`,touchAction:t.drag===!0?`none`:`pan-${t.drag===`x`?`y`:`x`}`});let a=Kl(i,t.transformTemplate);return a&&(n.style=a),n}let w=d()?.proxy;function T(){let e=Ac(w?.$el);S.mount(e)}o(()=>{S.updateOptions(x()),S.beforeUnmount()}),r(T);function E(){Ac(w?.$el)?.isConnected||S.unmount()}return a(E),l(E),e(()=>{S.isMounted()||T()}),s(()=>{S.updateOptions(x()),S.beforeUpdate()}),u(()=>{S.update()}),{getProps:y,getAttrs:C,layoutGroup:f,state:S}}var Yl={ignoreStrict:{type:Boolean},forwardMotionProps:{type:Boolean,default:!1},asChild:{type:Boolean,default:!1},whileDrag:{type:[String,Array,Object]},whileHover:{type:[String,Array,Object]},whilePress:{type:[String,Array,Object]},whileInView:{type:[String,Array,Object]},whileFocus:{type:[String,Array,Object]},custom:{type:[String,Number,Object,Array]},initial:{type:[String,Array,Object,Boolean],default:void 0},animate:{type:[String,Array,Object],default:void 0},exit:{type:[String,Array,Object]},variants:{type:Object},inherit:{type:Boolean,default:void 0},style:{type:Object},transformTemplate:{type:Function},transition:{type:Object},onAnimationComplete:{type:Function},onUpdate:{type:Function},layout:{type:[Boolean,String],default:!1},layoutId:{type:String,default:void 0},layoutScroll:{type:Boolean,default:!1},layoutRoot:{type:Boolean,default:!1},"data-framer-portal-id":{type:String},crossfade:{type:Boolean,default:!0},layoutDependency:{type:null,default:void 0},onBeforeLayoutMeasure:{type:Function},onLayoutMeasure:{type:Function},onLayoutAnimationStart:{type:Function},onLayoutAnimationComplete:{type:Function},globalPressTarget:{type:Boolean},onPressStart:{type:Function},onPress:{type:Function},onPressCancel:{type:Function},onHoverStart:{type:Function},onHoverEnd:{type:Function},inViewOptions:{type:Object},onViewportEnter:{type:Function},onViewportLeave:{type:Function},drag:{type:[Boolean,String]},dragSnapToOrigin:{type:[Boolean,String]},dragDirectionLock:{type:Boolean},dragPropagation:{type:Boolean},dragConstraints:{type:[Boolean,Object]},dragElastic:{type:[Boolean,Number,Object],default:.5},dragMomentum:{type:Boolean,default:!0},dragTransition:{type:Object},dragListener:{type:Boolean,default:!0},dragControls:{type:Object},onDragStart:{type:Function},onDragEnd:{type:Function},onDrag:{type:Function},onDirectionLock:{type:Function},onDragTransitionEnd:{type:Function},onMeasureDragConstraints:{type:Function},onPanSessionStart:{type:Function},onPanStart:{type:Function},onPan:{type:Function},onPanEnd:{type:Function}},Xl=new Map,Zl=new Map;function Ql(e){if(!Array.isArray(e))return[e];let t=[];for(let n of e)Array.isArray(n)?t.push(...n):t.push(n);return t}var $l=[`area`,`img`,`input`];function eu(e,t,n){if(typeof e==`string`&&$l.includes(e))return _(e,t);if(e===`template`){if(!n.default)return null;let e=Ql(n.default()),r=e.findIndex(e=>e.type!==p);if(r===-1)return e;let i=e[r];delete i.props?.ref;let a=i.props?c(t,i.props):t;t.class&&i.props?.class&&delete i.props.class;let o=f(i,a);for(let e in a)e.startsWith(`on`)&&(o.props||={},o.props[e]=a[e]);return e.length===1?o:(e[r]=o,e)}return null}function tu(e,t={}){let n=typeof e==`string`,r=n?e:e.name||``,i=t.renderer?Xl:Zl;if(n&&i.has(e))return i.get(e);let a=v({inheritAttrs:!1,props:{...Yl,as:{type:[String,Object],default:e||`div`}},name:r?`motion.${r}`:`Motion`,setup(e,{slots:n}){let{getProps:r,getAttrs:i,state:a}=Jl(e,t);function o(){let t=a.element;if((typeof e.as!=`object`||e.asChild)&&t){let{style:e}=i();if(e)for(let[n,r]of Object.entries(e))t.style[n]=r}}return()=>{let t=r(),a=i(),s=e.asChild?`template`:e.as,c={...e.forwardMotionProps?t:{},...a,onVnodeUpdated:o},l=eu(s,c,n);return l===null?_(s,{...c},n):l}}});return n&&i.set(e,a),a}function nu(e){return new Proxy({},{get(t,n){return n===`create`?(t,n)=>tu(t,{...n,...e}):tu(n,{...e})}})}var ru=nu(Ll);ru.create(`div`);var iu=[.22,1,.36,1],au=e=>String(e).replace(/\d/g,e=>`۰۱۲۳۴۵۶۷۸۹`[Number(e)]),ou=(e=0,t=36)=>({initial:{opacity:0,y:t},whileInView:{opacity:1,y:0},inViewOptions:{once:!0,margin:`-60px`},transition:{duration:.8,delay:e,ease:iu}});export{z as _,Vl as a,lo as c,xn as d,_n as f,B as g,H as h,ru as i,G as l,dn as m,au as n,Vc as o,hn as p,ou as r,Ec as s,iu as t,ui as u,M as v}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/DlAPF8TW.js b/apps/web/.output/public/_nuxt/DlAPF8TW.js new file mode 100644 index 0000000..4a3feab --- /dev/null +++ b/apps/web/.output/public/_nuxt/DlAPF8TW.js @@ -0,0 +1 @@ +import{Et as e,Hn as t,Ht as n,Xn as r,Yn as i,_n as a,fr as o,gn as s,hn as ee,hr as c,i as l,mn as u,pn as d,r as te,rr as ne,sn as f,t as p,ur as m,vn as h,vt as re,xn as ie,yn as g,zn as _}from"./D6Ym2dQP.js";import{dt as ae,ft as oe,lt as v,o as se,r as ce,s as le,t as ue}from"#entry";import{n as y}from"./Dd1GE-gU.js";import{n as b,t as de}from"./r7-JdZhN.js";var x={class:`relative overflow-hidden pt-32 pb-20 md:pt-40 md:pb-28`},S={class:`absolute inset-0`},C=[`src`,`alt`],w={class:`relative z-10 mx-auto max-w-[1480px] px-5 md:px-8`},T={class:`flex items-center gap-2 text-sm text-muted`,"aria-label":`مسیر`},E={class:`text-ink`},D={class:`mt-8`},O={class:`mt-8 flex flex-wrap items-center gap-4`},k={class:`rounded-full border border-accent/40 bg-accent/10 px-4 py-1.5 font-mono text-xs text-accent backdrop-blur`},A={class:`font-mono text-xs tracking-[0.25em] text-muted/60`},j={class:`relative py-16 md:py-24`},M={class:`relative mx-auto max-w-[1480px] px-5 md:px-8`},N={key:0,class:`mb-10`},P={class:`flex flex-wrap gap-2`,role:`tablist`,"aria-label":`فیلتر زیردسته`},F=[`aria-selected`],I={class:`ms-1 font-mono text-xs opacity-70`},L=[`aria-selected`,`onClick`],R={class:`ms-1 font-mono text-xs opacity-70`},z={key:0,class:`mt-4 text-sm text-muted`},B={class:`grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3`},V=[`src`,`alt`],H={key:0,class:`absolute inset-0 bg-gradient-to-t from-bg/60 to-transparent`},fe={class:`absolute inset-x-0 top-0 flex items-center justify-between p-4`},pe={class:`rounded-full bg-bg/60 px-3 py-1 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur`},me={class:`font-mono text-xs text-accent`},he={class:`flex flex-1 flex-col p-5 md:p-6`},ge={class:`text-xl font-black transition-colors group-hover:text-accent`},_e={class:`mt-1 font-mono text-[10px] tracking-[0.2em] text-muted`},ve={class:`mt-3 text-sm leading-8 text-muted`},ye={class:`mt-4 flex flex-wrap gap-2`},be={key:0,class:`mt-4`},xe={class:`flex flex-wrap gap-1.5`},Se={class:`mt-auto inline-flex items-center gap-2 pt-5 text-sm font-bold text-accent`},Ce={class:`border-t border-line py-12 md:py-16`},we={class:`mx-auto flex max-w-[1480px] flex-wrap items-center justify-between gap-6 px-5 md:px-8`},Te={href:`/#contact`,class:`inline-flex items-center gap-2 rounded-full bg-accent px-6 py-3 text-sm font-bold text-bg transition-all hover:bg-accent-soft hover:shadow-[0_8px_45px_rgba(255,90,0,0.5)]`},U=ie({__name:`[slug]`,async setup(ie){let U,W,G=re().params.slug,{$api:Ee}=n(),K=te(),{data:q,error:J}=([U,W]=i(()=>v(`category:${G}`,()=>Ee(`/public/categories/${encodeURIComponent(G)}`))),U=await U,W(),U);if(J.value||!q.value){let t=J.value?.statusCode===404;throw e({statusCode:t?404:500,statusMessage:t?`دسته‌بندی یافت نشد`:`خطا در دریافت اطلاعات`,fatal:!0})}let Y=q.value,De=K.categories.findIndex(e=>e.slug===G),X=se()(`/categories/${G}`),Z=Y.seoDescription||Y.fullDesc;ae({title:Y.seoTitle||Y.name,link:[{rel:`canonical`,href:X}]}),oe({description:Z,robots:`index, follow`,ogUrl:X,ogTitle:`${Y.seoTitle||Y.name} | ${K.settings.name}`,ogDescription:Z}),ue(ce(le(),Y),`category-${G}`);let Q=ne(null),Oe=d(()=>Q.value?Y.products.filter(e=>e.group===Q.value):Y.products),$=d(()=>Y.groups?.find(e=>e.slug===Q.value)?.desc),ke=e=>Y.products.filter(t=>t.group===e).length;return(e,n)=>{let i=l;return _(),a(`main`,null,[u(`section`,x,[u(`div`,S,[m(Y).coverImage?(_(),a(`img`,{key:0,src:m(Y).coverImage,alt:m(Y).name,class:`absolute inset-0 size-full object-cover`,fetchpriority:`high`,decoding:`async`},null,8,C)):s(``,!0),n[1]||=u(`div`,{class:`absolute inset-0 bg-gradient-to-l from-bg via-bg/85 to-bg/40`},null,-1),n[2]||=u(`div`,{class:`absolute inset-0 bg-gradient-to-t from-bg via-bg/50 to-bg/30`},null,-1),n[3]||=u(`div`,{class:`absolute inset-0 bg-grid opacity-40`},null,-1)]),n[8]||=u(`div`,{class:`tape-v absolute bottom-0 end-0 z-10 h-32 w-1.5 opacity-70`},null,-1),u(`div`,w,[g(b,null,{default:r(()=>[u(`nav`,T,[g(i,{to:`/`,class:`transition-colors hover:text-accent`},{default:r(()=>[...n[4]||=[h(`خانه`,-1)]]),_:1}),n[6]||=u(`span`,{class:`text-line`},`/`,-1),g(i,{to:`/#products`,class:`transition-colors hover:text-accent`},{default:r(()=>[...n[5]||=[h(` محصولات `,-1)]]),_:1}),n[7]||=u(`span`,{class:`text-line`},`/`,-1),u(`span`,E,c(m(Y).name),1)])]),_:1}),u(`div`,D,[g(de,{tag:`${(`faNum`in e?e.faNum:m(y))(String(m(De)+1).padStart(2,`0`))} — محصولات`,desc:m(Y).fullDesc,level:1},{title:r(()=>[h(c(m(Y).name),1)]),_:1},8,[`tag`,`desc`])]),g(b,{delay:.2},{default:r(()=>[u(`div`,O,[u(`span`,k,c((`faNum`in e?e.faNum:m(y))(m(Y).products.length))+` محصول `,1),u(`span`,A,c(m(Y).nameEn),1)])]),_:1})])]),u(`section`,j,[n[12]||=u(`div`,{class:`absolute inset-0 bg-grid-fine opacity-30`},null,-1),u(`div`,M,[m(Y).groups?.length?(_(),a(`div`,N,[u(`div`,P,[u(`button`,{type:`button`,role:`tab`,"aria-selected":m(Q)===null,class:o([`rounded-full border px-4 py-2 text-sm transition-colors`,m(Q)===null?`border-accent bg-accent text-bg font-bold`:`border-line text-muted hover:border-accent/60 hover:text-accent`]),onClick:n[0]||=e=>Q.value=null},[n[9]||=h(` همه `,-1),u(`span`,I,c((`faNum`in e?e.faNum:m(y))(m(Y).products.length)),1)],10,F),(_(!0),a(f,null,t(m(Y).groups,t=>(_(),a(`button`,{key:t.slug,type:`button`,role:`tab`,"aria-selected":m(Q)===t.slug,class:o([`rounded-full border px-4 py-2 text-sm transition-colors`,m(Q)===t.slug?`border-accent bg-accent text-bg font-bold`:`border-line text-muted hover:border-accent/60 hover:text-accent`]),onClick:e=>Q.value=t.slug},[h(c(t.name)+` `,1),u(`span`,R,c((`faNum`in e?e.faNum:m(y))(ke(t.slug))),1)],10,L))),128))]),m($)?(_(),a(`p`,z,c(m($)),1)):s(``,!0)])):s(``,!0),u(`div`,B,[(_(!0),a(f,null,t(m(Oe),(l,d)=>(_(),ee(b,{key:l.code,delay:d*.06},{default:r(()=>[g(i,{to:`/products/${l.slug}`,class:`group flex h-full flex-col overflow-hidden rounded-xl border border-line bg-panel/80 backdrop-blur transition-all duration-500 hover:border-accent/40 hover:shadow-[0_8px_40px_rgba(255,90,0,0.08)]`},{default:r(()=>[u(`div`,{class:o([`relative aspect-[4/3] overflow-hidden`,l.image&&`bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.14),transparent_70%)]`])},[u(`img`,{src:l.image??m(Y).coverImage??void 0,alt:l.name,loading:`lazy`,decoding:`async`,class:o([`size-full transition-transform duration-700 group-hover:scale-105`,l.image?`object-contain p-8`:`object-cover`])},null,10,V),l.image?s(``,!0):(_(),a(`div`,H)),u(`div`,fe,[u(`span`,pe,c(l.code),1),u(`span`,me,c((`faNum`in e?e.faNum:m(y))(String(d+1).padStart(2,`0`))),1)])],2),u(`div`,he,[u(`h3`,ge,c(l.name),1),u(`p`,_e,c(l.nameEn),1),u(`p`,ve,c(l.desc),1),u(`div`,ye,[(_(!0),a(f,null,t(l.specs,e=>(_(),a(`span`,{key:e,class:`rounded-full border border-accent/40 bg-accent/10 px-3 py-1 font-mono text-[10px] text-accent`},c(e),1))),128))]),l.variants?.length?(_(),a(`div`,be,[n[10]||=u(`div`,{class:`mb-2 text-xs text-muted`},`مدل‌ها / رنگ‌ها:`,-1),u(`div`,xe,[(_(!0),a(f,null,t(l.variants,e=>(_(),a(`span`,{key:e,class:`rounded-md border border-line bg-panel-2 px-2.5 py-1 text-[11px] text-ink/70`},c(e),1))),128))])])):s(``,!0),u(`span`,Se,[n[11]||=h(` مشاهده جزئیات `,-1),g(p,{name:`arrow-left`,class:`size-4 transition-transform group-hover:-translate-x-1`})])])]),_:2},1032,[`to`])]),_:2},1032,[`delay`]))),128))])])]),u(`section`,Ce,[u(`div`,we,[g(i,{to:`/#products`,class:`group inline-flex items-center gap-2 text-muted transition-colors hover:text-accent`},{default:r(()=>[g(p,{name:`arrow-right`,class:`size-4 transition-transform group-hover:translate-x-1`}),n[13]||=h(` بازگشت به دسته‌بندی‌ها `,-1)]),_:1}),u(`a`,Te,[g(p,{name:`call`,class:`size-4`}),n[14]||=h(` درخواست قیمت `,-1)])])])])}}});export{U as default}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/DlDWjZRl.js b/apps/web/.output/public/_nuxt/DlDWjZRl.js new file mode 100644 index 0000000..8b0b292 --- /dev/null +++ b/apps/web/.output/public/_nuxt/DlDWjZRl.js @@ -0,0 +1,112 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DlAPF8TW.js","./D6Ym2dQP.js","./Dd1GE-gU.js","./r7-JdZhN.js","./VuesaxIcon.4cYnpGo8.css","./xGM79_uD.js","./D0e0LUpa.js","./DoONAYG5.js","./BHOIQrRl.js","./DOASWvjr.js"])))=>i.map(i=>d[i]); +import{$ as e,$n as t,$t as n,A as r,An as i,At as a,B as o,Bn as s,Bt as c,C as l,Ct as u,D as d,Dn as f,Dt as p,E as m,En as h,Et as g,F as _,Fn as v,Ft as y,G as b,Gn as x,H as S,Ht as C,I as w,In as T,It as ee,J as te,Jn as ne,K as re,Kt as ie,L as ae,Ln as oe,Lt as se,M as ce,Mn as le,Mt as ue,N as de,Nt as fe,O as pe,On as me,Ot as he,P as ge,Pn as _e,Pt as ve,Q as ye,Qn as be,R as xe,Rn as Se,Rt as Ce,S as we,Sn as Te,St as Ee,T as De,Tn as Oe,Tt as ke,U as Ae,Ut as je,V as Me,Vn as Ne,Vt as Pe,W as Fe,Wt as Ie,X as Le,Xn as Re,Xt as ze,Y as Be,Yn as Ve,Yt as He,Z as Ue,Zt as We,_ as Ge,_n as Ke,_r as qe,_t as Je,an as Ye,ar as E,at as Xe,b as Ze,bn as Qe,bt as $e,c as et,cn as tt,cr as nt,ct as rt,d as it,dn as at,en as ot,er as st,et as ct,f as lt,fn as ut,ft as dt,g as D,gn as ft,gr as pt,gt as mt,h as ht,hn as gt,hr as _t,ht as vt,ir as yt,it as bt,j as xt,jn as St,jt as Ct,k as wt,kn as Tt,kt as Et,l as Dt,ln as Ot,lr as kt,mn as At,mt as jt,nn as Mt,nr as Nt,nt as Pt,o as Ft,on as It,or as Lt,ot as Rt,p as zt,pn as O,pt as Bt,q as Vt,qn as k,qt as Ht,r as Ut,rr as A,rt as Wt,sn as Gt,sr as Kt,st as qt,t as Jt,tn as Yt,tr as Xt,tt as Zt,u as Qt,un as $t,ur as j,ut as en,v as tn,vr as nn,vt as rn,w as an,wn as M,wt as on,x as sn,xn as N,xt as cn,y as ln,yn as P,yr as un,yt as dn,z as fn,zn as pn,zt as mn}from"./D6Ym2dQP.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var hn=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,gn=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,_n=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function vn(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)yn(e);else return t}function yn(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function bn(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!_n.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(hn.test(e)||gn.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,vn)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}var xn=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function Sn(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new xn(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:``}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var Cn=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function wn(e=`GET`){return Cn.has(e.toUpperCase())}function Tn(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var En=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),Dn=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function On(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return Dn.test(t)?`json`:t===`text/event-stream`?`stream`:En.has(t)||t.startsWith(`text/`)?`text`:`blob`}function kn(e,t,n,r){let i=An(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function An(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function jn(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var Mn=new Set([408,409,425,429,500,502,503,504]),Nn=new Set([101,204,205,304]);function Pn(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!wn(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):Mn.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=Sn(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:kn(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await jn(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=ve(s.request,s.options.baseURL)),s.options.query&&(s.request=y(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&wn(s.options.method)){if(Tn(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await jn(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!Nn.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||On(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||bn;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await jn(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await jn(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>Pn({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var Fn=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),In=Fn.fetch?(...e)=>Fn.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),Ln=Fn.Headers,Rn=Fn.AbortController,zn=Pn({fetch:In,Headers:Ln,AbortController:Rn}),Bn=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,Vn=()=>Bn().app,Hn=()=>Vn().baseURL,Un=()=>Vn().buildAssetsDir,Wn=(...e)=>ue(Gn(),Un(),...e),Gn=(...e)=>{let t=Vn(),n=t.cdnURL||t.baseURL;return e.length?ue(n,...e):n};globalThis.__buildAssetsURL=Wn,globalThis.__publicAssetsURL=Gn,globalThis.$fetch||(globalThis.$fetch=zn.create({baseURL:Hn()}));var Kn=globalThis.$fetch;`global`in globalThis||(globalThis.global=globalThis);function qn(e=Te()){let t=e;t&&!t.sp&&(t.sp=[])}var Jn=un({docsBase:qe,reporters:nn});function Yn(e,t){return t&&typeof e==`function`&&(e.key=t),e}var Xn=/\\/g,Zn=/{if(e===er||!a.includes(e))return e;let n=tr(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(er).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var rr=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,ir=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),ar=Yn({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=ir(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=ir(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(rr))}}}),or=Yn({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function sr(e){return typeof e?.then==`function`}var cr=256;function lr(e,t){if(t===e.length)return;if(t===cr){let n=Array(e.length),r=!1;for(;tObject.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var fr=Yn(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=dr(a);sr(o)?(t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})):t.delete(i)}}}}},`promises`),pr={meta:`content`,link:`href`,htmlAttrs:`lang`},mr=[`innerHTML`,`textContent`];function hr(e,t,n,r=!1){return typeof e==`string`&&e.includes(`%`)?nr(e,t,n,r):e}var gr=Yn(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=hr(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=pr[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=hr(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of mr)typeof e[t]==`string`&&(e[t]=hr(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=hr(n.textContent,e._templateParams,e._separator))}}}),`template-params`),_r=new Set([`link`,`style`,`script`,`noscript`]),vr=new Set([`title`,`titleTemplate`,`script`,`style`,`noscript`]),yr=new Set([`base`,`meta`,`link`,`style`,`script`,`noscript`]),br=new Set([`title`,`base`,`htmlAttrs`,`bodyAttrs`,`meta`,`link`,`style`,`script`,`noscript`]),xr=new Set([`base`,`title`,`titleTemplate`,`bodyAttrs`,`htmlAttrs`,`templateParams`]),Sr=new Set([`key`,`tagPosition`,`tagPriority`,`tagDuplicateStrategy`,`innerHTML`,`textContent`,`processTemplateParams`]),Cr=new Set([`templateParams`,`htmlAttrs`,`bodyAttrs`]),wr=new Set([`theme-color`,`google-site-verification`,`author`,`og:locale:alternate`,`og:image`,`og:video`,`og:audio`,`article:author`,`article:tag`,`book:author`,`book:tag`,`twitter:image`]),Tr={critical:-8,high:-1,low:2},Er=e=>typeof e==`number`?Number.isFinite(e):e;function Dr(e){return e===`__proto__`||e===`constructor`||e===`prototype`}var Or=[`twitter`,`fediverse`],kr=[`og`,`book`,`article`,`profile`,`fb`,`payment`],Ar=[`ogImage`,`ogVideo`,`ogAudio`,`twitterImage`],jr=[`contentType`,`defaultStyle`,`xUaCompatible`],Mr={articleExpirationTime:`article:expiration_time`,articleModifiedTime:`article:modified_time`,articlePublishedTime:`article:published_time`,bookReleaseDate:`book:release_date`,fbAppId:`fb:app_id`,ogAudioSecureUrl:`og:audio:secure_url`,ogAudioUrl:`og:audio`,ogImageSecureUrl:`og:image:secure_url`,ogImageUrl:`og:image`,ogSiteName:`og:site_name`,ogVideoSecureUrl:`og:video:secure_url`,ogVideoUrl:`og:video`,paymentExpiresAt:`payment:expires_at`,paymentSuccessUrl:`payment:success_url`,profileFirstName:`profile:first_name`,profileLastName:`profile:last_name`,profileUsername:`profile:username`,msapplicationConfig:`msapplication-Config`,msapplicationTileColor:`msapplication-TileColor`,msapplicationTileImage:`msapplication-TileImage`},Nr=/([A-Z])/g,Pr=/^(?:og|twitter)/,Fr={appleItunesApp:{unpack:{entrySeparator:`, `,resolve:({key:e,value:t})=>`${Ir(e)}=${t}`}},refresh:{metaKey:`http-equiv`,unpack:{entrySeparator:`;`,resolve:({key:e,value:t})=>e===`seconds`?`${t}`:void 0}},robots:{unpack:{entrySeparator:`, `,resolve:({key:e,value:t})=>typeof t==`boolean`?Ir(e):`${Ir(e)}:${t}`}},contentSecurityPolicy:{metaKey:`http-equiv`,unpack:{entrySeparator:`; `,resolve:({key:e,value:t})=>`${Ir(e)} ${t}`}},charset:{}};function Ir(e){let t=e.replace(Nr,`-$1`).toLowerCase(),n=t.indexOf(`-`);return n===-1?t:Or.includes(t.slice(0,n))||kr.includes(t.slice(0,n))?e.replace(Nr,`:$1`).toLowerCase():t}function Lr(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>String(t)!==`false`&&e))}function Rr(e){if(e.index!==!1&&e.follow!==!1)return e;let t={...e};return t.index===!1&&(delete t.index,t.noindex===void 0&&(t.noindex=!0)),t.follow===!1&&(delete t.follow,t.nofollow===void 0&&(t.nofollow=!0)),t}function zr(e){return Array.isArray(e)?e.map(zr):!e||typeof e!=`object`?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[Ir(e),zr(t)]))}function Br(e,t={}){let{entrySeparator:n=``,keyValueSeparator:r=``,wrapValue:i,resolve:a}=t;return Object.entries(e).map(([e,n])=>{if(a){let t=a({key:e,value:n});if(t!==void 0)return t}let o=typeof n==`object`?Br(n,t):typeof n==`number`?n.toString():typeof n==`string`&&i?`${i}${n.replace(new RegExp(i,`g`),`\\${i}`)}${i}`:n;return`${e}${r}${o}`}).join(n)}function Vr(e,t){let n=Lr(t),r=Ir(e),i=Hr(r);return wr.has(r)?Gr(Object.fromEntries(Object.entries(n).map(([t,n])=>[`${e}${t===`url`?``:`${t[0].toUpperCase()}${t.slice(1)}`}`,n]))||{}).sort((e,t)=>(e[i]?.length||0)-(t[i]?.length||0)):[{[i]:r,...n}]}function Hr(e){if(Fr[e]?.metaKey===`http-equiv`||jr.includes(e))return`http-equiv`;let t=Ir(e),n=t.indexOf(`:`);return n===-1?`name`:kr.includes(t.slice(0,n))?`property`:`name`}function Ur(e){return Mr[e]||Ir(e)}function Wr(e,t){return t===`refresh`?`${e.seconds};url=${e.url}`:Br(zr(e),{keyValueSeparator:`=`,entrySeparator:`, `,resolve:({value:e,key:t})=>e===null?``:typeof e==`boolean`?t:void 0,...Fr[t]?.unpack})}function Gr(e){let t=[],n={};for(let[r,i]of Object.entries(e))if(Array.isArray(i)){if(r===`themeColor`){i.forEach(e=>{typeof e==`object`&&e&&t.push({name:`theme-color`,...e})});continue}for(let e of i)if(typeof e==`object`&&e){let n=[],i=[];for(let[t,a]of Object.entries(e)){let e=Gr({[`${r}${t===`url`?``:`:${t}`}`]:a});(t===`url`?n:i).push(...e)}t.push(...n,...i)}else t.push(...typeof e==`string`?Gr({[r]:e}):Vr(r,e))}else if(typeof i==`object`&&i){if(Ar.includes(r)){let e=r.startsWith(`twitter`)?`twitter`:`og`,n=r.replace(Pr,``).toLowerCase(),a=e===`twitter`?`name`:`property`;i.url&&t.push({[a]:`${e}:${n}`,content:i.url}),i.secureUrl&&t.push({[a]:`${e}:${n}:secure_url`,content:i.secureUrl});for(let[r,o]of Object.entries(i))r!==`url`&&r!==`secureUrl`&&t.push({[a]:`${e}:${n}:${r}`,content:o})}else wr.has(Ir(r))?t.push(...Vr(r,i)):n[r]=Lr(r===`robots`?Rr(i):i)}else n[r]=i;let r=Object.entries(n).map(([e,t])=>{if(e===`charset`)return{charset:t===null?`_null`:t};let n=Hr(e),r=Ur(e),i=t===null?`_null`:typeof t==`object`?Wr(t,e):typeof t==`number`?t.toString():t;return n===`http-equiv`?{"http-equiv":r,content:i}:{[n]:r,content:i}});return[...t,...r].map(e=>`content`in e&&e.content===`_null`?{...e,content:null}:e)}var Kr=Yn({key:`flatMeta`,hooks:{"entries:normalize":e=>{let t=!1,n=[],r=[];for(let i of e.tags)if(i.tag!==`_flatMeta`)n.push(i);else{t=!0;for(let e of Gr(i.props))r.push({...i,tag:`meta`,props:e})}if(t){for(let e of r)n.push(e);e.tags=n}}}});function qr(e){let t=new We;for(let n in e||{})t.hook(n,e[n]);return t}function Jr(e,t,n){if(e.hooks?._hooks?.[t]?.length)return e.hooks?.callHook(t,n)}var Yr=/^(?:viewport|description|keywords|robots)$/,Xr=[`name`,`property`,`http-equiv`];function Zr(e){let t=e.indexOf(`:`);if(t===-1)return!1;let n=e.slice(t+1);return wr.has(n)||n.startsWith(`og:image:`)||n.startsWith(`og:video:`)||n.startsWith(`og:audio:`)||n.startsWith(`twitter:image:`)}function Qr(e){let{props:t,tag:n,key:r}=e;if(xr.has(n))return n;if(n===`link`){if(t.rel===`canonical`)return`canonical`;if(t.rel===`alternate`&&t.hreflang)return`alternate:${t.hreflang}`}if(t.charset)return`charset`;if(n===`meta`)for(let e of Xr){let n=t[e];if(n!==void 0)return`meta:${n}${(typeof n!=`string`||!n.includes(`:`))&&!Yr.test(n)&&r?`:key:${r}`:``}`}return r?`${n}:key:${r}`:t.id?`${n}:id:${t.id}`:n===`link`&&t.rel&&t.href?`link:${t.rel}:${t.href}`:vr.has(n)&&(e.textContent||e.innerHTML)?`${n}:content:${e.textContent||e.innerHTML}`:void 0}function $r(e){let t=e._h||e._d||e.textContent||e.innerHTML;if(t)return String(t);let n=Object.keys(e.props).sort(),r=`${e.tag}:`,i=``;for(let t of n)r+=`${i}${t}:${String(e.props[t])}`,i=`,`;return r}function ei(e,t,n){if(n===`_resolver`)return e;typeof e==`function`&&(!n||n!==`titleTemplate`&&!n.startsWith(`on`))&&(e=e());let r=t?t(n,e):e;if(Array.isArray(r)){let e;for(let n=0;n/=\x00-\x1F\x7F]/;function ni(e,t){let n=e===`style`,r=n?new Map:new Set,i=e=>{if(e){if(n){let t=e.indexOf(`:`);t>0&&r.set(e.slice(0,t).trim(),e.slice(t+1).trim())}else e.split(` `).forEach(e=>e&&r.add(e))}};if(typeof t==`string`)(n?t.split(`;`):[t]).forEach(i);else if(Array.isArray(t))t.forEach(i);else if(t&&typeof t==`object`)for(let e in t){let a=t[e];a&&a!==`false`&&(n?r.set(e.trim(),String(a)):i(e))}return r}function ri(e,t){if(e.props=e.props||{},!t)return e;if(e.tag===`templateParams`)return e.props=t,e;let n=yr.has(e.tag)||e.tag===`htmlAttrs`||e.tag===`bodyAttrs`;for(let r in t){if(Dr(r))continue;let i=r.startsWith(`data-`),a=n&&!Sr.has(r),o=a&&!i?r.toLowerCase():r;if(a&&(!o||ti.test(o)))continue;let s=t[r];if(s===null)e.props[o]=null;else if(r===`class`||r===`style`)e.props[r]=ni(r,s);else if(Sr.has(r)){if((r===`textContent`||r===`innerHTML`)&&typeof s==`object`){let n=t.type||`application/json`;(n.endsWith(`json`)||n===`speculationrules`||n===`importmap`)&&(e.props.type=n,e[r]=JSON.stringify(s))}else e[r]=s}else if(s!==void 0){let t=String(s),n=e.tag===`meta`&&o===`content`;e.props[o]=t===`true`||t===``?i||n?t:!0:!s&&i&&t===`false`?`false`:s}}return e}function ii(e,t){let n;return t.length&&(n=(e,n)=>{for(let r=0;re._w===t._w?e._p-t._p:e._w-t._w,di=()=>100;function fi(e){for(let t in e)return!1;return!0}var pi=/^tags:|:render/;function mi(e,t){let n=(t[`entries:resolve`]?.length||0)+(t[`entries:normalize`]?.length||0);if(e._h!==n){e._h=n;for(let t of e.entries.values())delete t._tags}}function hi(e){for(let t=0;t>10==i._p>>10&&n.tag===`meta`&&Zr(r)?(e.tagMap.set(r,Object.assign([...Array.isArray(i)?i:[i],n],n)),t=!0):(n._w===i._w?n._p>i._p:n._wt?(typeof e==`string`?e:JSON.stringify(e)).replace(ci,`\\u003C`):typeof e==`string`?e.replace(li,`<\\/script`):e;n={...n},r&&(n.innerHTML=i(r)),n.textContent&&(n.textContent=i(n.textContent)),n._d=Qr(n)}e[t++]=n}}return e.length=t,e}function bi(e,t){let n=t?.tagWeight??e.resolvedOptions._tagWeight??di,r={tagMap:new Map,tags:[]},i=e.hooks?._hooks||{};mi(e,i);for(let t of e.entries.values())t._pending!==void 0&&(t.input=t._pending,delete t._pending,delete t._tags,delete t._precomputedTags);let a;(i[`entries:resolve`]?.length||i[`entries:normalize`]?.length)&&(a=[...e.entries.values()],i[`entries:resolve`]?.length&&Jr(e,`entries:resolve`,{entries:a,...r})),mi(e,i);for(let t of a||e.entries.values()){let a=t._tags;if(!a){if(t._precomputedTags&&n===e.resolvedOptions._tagWeight&&!i[`entries:normalize`]?.length&&!i[`entries:resolve`]?.length&&(!t.options||fi(t.options)))a=t._precomputedTags;else{if(a=si(t.input,e.resolvedOptions.propResolvers||[]),t.options&&!fi(t.options))for(let e of a)Object.assign(e,t.options);if(i[`entries:normalize`]?.length){let n={tags:a,entry:t};Jr(e,`entries:normalize`,n),a=n.tags}for(let e=0;est(t)?nt(t):t,{_static:!0});function Di(e,t={}){let n=t.head||wi();return n.ssr?n.push(e||{},t):Oi(n,e,t)}function Oi(e,t,n={}){let r=be();if(r&&!r.active)return{patch(){},dispose(){},_i:-1};let a=A(!1);if(n.onRendered&&r){let e=n.onRendered;n={...n,onRendered:t=>r.run(()=>e(t))}}let o;return ne(()=>{let r=a.value?{}:ei(t,Ei);o?o.patch(r):o=e.push(r,n)}),Te()?(le(()=>{o.dispose()}),_e(()=>{a.value=!0}),i(()=>{a.value=!1})):r&&Xt(()=>o.dispose()),o}function ki(e){if(e._flatMeta)return e;let t={};for(let n in e)Si(e,n)&&n!==`title`&&n!==`titleTemplate`&&(t[n]=e[n]);return{title:e.title,titleTemplate:e.titleTemplate,_flatMeta:t}}function Ai(e={},t={}){(t.head||wi()).use(Kr);let n=Di(ki(e),t),r=n.patch;return n.__patched||=(n.patch=e=>r(ki(e)),!0),n}function ji(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function Mi(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>ji(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}function Ni(e){let t=e||C();return t.ssrContext?.head||t.runWithContext(()=>{if(Oe()){let e=h(`usehead`);if(!e)throw Jn.NUXT_E6001();return e}})}function Pi(e,t={}){return Di(e,{head:t.head||Ni(t.nuxt),...t})}function Fi(e,t={}){return Ai(e,{head:t.head||Ni(t.nuxt),...t})}var Ii=un({docsBase:qe,reporters:nn}),Li=un({docsBase:qe,reporters:nn}),Ri=(()=>{let e={payload:!0,payload:!0};return(t,n)=>{let r=[];n.charCodeAt(n.length-1)===47&&(n=n.slice(0,-1)),(n===``||n===`/sitemap.xml`||n===`/manifest.webmanifest`||n.charCodeAt(n.length-1)===47&&(n===`/`||n===`/sitemap.xml/`||n===`/manifest.webmanifest/`))&&r.push({data:e});let i=n.split(`/`);return i.length>1&&i[i.length-1]===``&&(i.pop(),n=n.slice(0,-1)),i.length>1&&(i[1]===`categories`?r.push({data:e,params:{_:n.slice(12)}}):i[1]===`products`&&r.push({data:e,params:{_:n.slice(10)}})),r.reverse()}})(),zi=function(e){if(!e.includes(`%`))return e;let t=e.indexOf(`?`),n=t===-1?e:e.slice(0,t);try{return t===-1?decodeURI(n):decodeURI(n)+e.slice(t)}catch{return e}},Bi=(e,t)=>{if(typeof e!=`string`)return e;let n=zi(e);return t?n.toLowerCase():n},Vi=e=>he({},...Ri(``,Bi(e,!0)).map(e=>e.data).reverse()),Hi=`modulepreload`,Ui=function(e,t){return new URL(e,t).href},Wi={},Gi=function(e){return e.pathname.endsWith(`.css`)},Ki=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},qi=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=Ui(t,n);let r=s(t),i=Gi(r);return Ki(Wi,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:Hi,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Ji=Kn;function Yi(e){return Vi(e)}var Xi;function Zi(){let e;return e=Ji(Wn(`builds/meta/${je().app.buildId}.json`),{responseType:`json`}).then(e=>{if(!e||typeof e!=`object`||!Array.isArray(e.prerendered))throw Li.NUXT_E5004();return e}),Xi=e,e.catch(t=>{Xi===e&&(Xi=void 0),Li.NUXT_E5002({cause:t})}),e}function Qi(){return Xi||Zi()}function $i(e){let t=typeof e==`string`?e:e.path;try{return Yi(t)}catch(e){return Li.NUXT_E5003({path:t,cause:e}),{}}}var ea=2**32-1,ta=ea-1;function na(e){return!(!Number.isInteger(e)||e<0||e>ta)}function ra(e){return!(!Number.isInteger(e)||e<0||e>ea)}function ia(e){return Uint8Array.fromBase64(e).buffer}function aa(e){return Uint8Array.from(Buffer.from(e,`base64`)).buffer}function oa(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e`u`?void 0:Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype,`byteLength`)?.get,pa=Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{try{da.call(t)}catch(e){if(!fa)throw e;fa.call(t)}let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[ta]=void 0,delete t[ta],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});function ma(){throw Error(`Invalid input`)}function ha(e,t,n){return ga(JSON.parse(e),t,n)}function ga(e,t,n){let r=ua(pa,n?.operations);if(typeof e==`number`)return c(e,!0);(!Array.isArray(e)||e.length===0)&&ma();let i=e,a=Array(i.length),o=null;function s(e){return(!na(e)||e>=i.length)&&ma(),i[e]}function c(e,n=!1){if(e===-1)return r.fromPrimitive(void 0);if(e===-3)return r.fromPrimitive(NaN);if(e===-4)return r.fromPrimitive(1/0);if(e===-5)return r.fromPrimitive(-1/0);if(e===-6)return r.fromPrimitive(-0);if((n||typeof e!=`number`)&&ma(),e in a)return a[e];e>=i.length&&ma();let l=i[e];if(!l||typeof l!=`object`)a[e]=r.fromPrimitive(l);else if(Array.isArray(l)){if(typeof l[0]==`string`){let n=l[0],u=t&&Object.hasOwn(t,n)?t[n]:void 0;if(u){let t=l[1];if(typeof t!=`number`&&(t=i.push(l[1])-1),Object.hasOwn(a,t))return a[e]=u(a[t]);if(o??=new Set,o.has(t))throw Error(`Invalid circular reference`);return o.add(t),a[e]=u(c(t)),o.delete(t),a[e]}switch(n){case`Date`:a[e]=r.fromISOString(l[1]);break;case`Set`:let t=r.createSet();a[e]=t;for(let e=1;e=t)&&ma(),r.set(n,i,c(l[e+1]))}}else{let t=r.createArray(l.length);a[e]=t;for(let e=0;ei.aborted&&!n?.aborted?ya(e,t,n,r):i.payload);let a=Ca(e,t,n,r).then(e=>({payload:e,aborted:!e&&!!n?.aborted}));return a.finally(()=>{va.get(e)===a&&va.delete(e)}),va.set(e,a),a.then(e=>e.payload)}var ba=`_payload.json`,xa=`_b`;async function Sa(e,t={}){let n=new URL(e,`http://localhost`);if(n.host!==`localhost`||Et(n.pathname,{acceptRelative:!0}))throw Ii.NUXT_E7001({url:e});let r=je(),i=t.hash||(t.fresh?Date.now():r.app.buildId),a=r.app.cdnURL,o=a&&await ka(e)?a:r.app.baseURL,s=fe(o,n.pathname,ba);return Ea(e)||(n.search=``),i&&n.searchParams.set(xa,String(i)),s+n.search}async function Ca(e,t,n,r){let i=r?`high`:void 0;try{{let r=await fetch(e,{cache:t,signal:n,priority:i});return r.ok?await Ma(await r.text()):null}}catch(t){n?.aborted||Ii.NUXT_E7002({url:e,cause:t})}return null}function wa(e){if(e.redirect)return!1;if(e.prerender)return!0}function Ta(e){return new URL(e,`http://localhost`).pathname}function Ea(e){return!!$i({path:Ta(e)}).payload}async function Da(e){e=Ta(e),e=e===`/`?e:e.replace(/\/$/,``);try{return(await Qi()).prerendered.includes(e)}catch{return!1}}async function Oa(e=rn().path){let t=$i({path:Ta(e)});if(t.ssr===!1)return!1;let n=wa(t);return n===void 0?t.payload?!0:await Da(e):n}async function ka(e=rn().path){let t=wa($i({path:Ta(e)}));return t===void 0?await Da(e):t}var Aa=null;async function ja(){if(Aa)return Aa;let e=document.getElementById(`__NUXT_DATA__`);if(!e)return{};let t=await Ma(e.textContent||``),n=e.dataset.src?await Ca(e.dataset.src,t.prerenderedAt?`force-cache`:`no-cache`):void 0;return Aa={...t,...n,...window.__NUXT__},Aa.config?.public&&(Aa.config.public=Nt(Aa.config.public)),Aa}async function Ma(e){return await ha(e,C()._payloadRevivers)}function Na(e,t){C()._payloadRevivers[e]=t}var Pa=Pe(()=>{Na(`skipHydrate`,e=>void 0)}),Fa=[`route`,`payload`,`island`,`hint`],Ia=12,La={route:8,payload:8,island:4,hint:8};function Ra(e={}){let t={...La,...e.concurrency},n=e.total??Ia,r=e.canPrefetch,i=e.defer,a={route:[],payload:[],island:[],hint:[]},o=Fa.map(e=>a[e]),s=new WeakSet,c=new Map,l={route:0,payload:0,island:0,hint:0},u=0,d=new Map,f=new AbortController,p=new AbortController;p.abort();function m(e){c.get(e.key)===e&&c.delete(e.key)}function h(e){m(e),Promise.resolve().then(()=>e.run(p.signal,!1)).catch(()=>{})}function g(){if(!r||r())for(;ua[e].length&&l[e]{r||(r=!0,l[e.priority]--,u--,d.delete(e),m(e),g())};n.signal.addEventListener(`abort`,a,{once:!0});let o=()=>Promise.resolve().then(()=>e.run(n.signal,t)).then(a,a);i?i(o,t,e.priority):o()}let v=(e,t)=>t!==void 0&&e.group===t&&e.priority!==`hint`;return{schedule(e){let t=[];for(let n of Array.isArray(e)?e:[e])c.has(n.key)?h(n):(c.set(n.key,n),t.push(n));for(let e=t.length-1;e>=0;e--)a[t[e].priority].unshift(t[e]);g()},promote(e){for(let t of o){let n=[],r=[];for(let i of t)i.group===e&&s.add(i),(i.group===e?n:r).push(i);t.length=0,t.push(...n,...r)}g()},reset(e){for(let t of o)for(let n=t.length-1;n>=0;n--){let r=t[n];r.scope===`navigation`&&!v(r,e)&&(t.splice(n,1),h(r))}for(let[t,n]of[...d])v(t,e)||n.abort();g()},resume:g}}var za=1e3;function Ba(e,t,n){if(t||n===`route`)return e();let r=globalThis.scheduler;r?.postTask?r.postTask(e,{priority:`background`}).catch(()=>{}):qt(e,{timeout:za})}function Va(e=C()){if(e._prefetch)return e._prefetch;let t=!1,n=Ra({canPrefetch:()=>Xe()&&!t&&document.visibilityState!==`hidden`,defer:Ba});e._prefetch=n,navigator.connection?.addEventListener?.(`change`,()=>n.resume()),document.addEventListener(`visibilitychange`,()=>n.resume());let r=e.$router;return r.beforeEach(()=>{t=!0}),r.afterEach(e=>{t=!1,n.reset(Rt(e.fullPath))}),r.onError(()=>{t=!1,n.resume()}),n}function Ha(e){try{return JSON.parse(e)}catch{return e}}var Ua=[[`NuxtError`,e=>g(e)],[`EmptyShallowRef`,e=>E(e===`_`?void 0:e===`0n`?BigInt(0):Ha(e))],[`EmptyRef`,e=>A(e===`_`?void 0:e===`0n`?BigInt(0):Ha(e))],[`ShallowRef`,e=>E(e)],[`ShallowReactive`,e=>yt(e)],[`Ref`,e=>A(e)],[`Reactive`,e=>Nt(e)]],Wa=c({name:`nuxt:revive-payload:client`,order:-30,async setup(e){for(let[e,t]of Ua)Na(e,t);Object.assign(e.payload,await e.runWithContext(ja)),delete window.__NUXT__}});function Ga(e,t){t.push(Ie),e.vueApp.use(t);let n=!0,r=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||r()}),e.hooks.hook(`app:error`,r),e.hooks.hook(`app:suspense:resolve`,r);let i=t.push.bind(t);t.push=((t,n)=>{let r=i(t,n),a=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(a):a()},r})}function Ka(e,t,n){let r=e.push,i=e;i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>ji(i,e),i.render=()=>n(i);function a(){t.callHook(`entries:updated`,i),i._b||i.render()}return i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,a()},i.push=(n,o)=>{let s=o?.onRendered?t.hook(`dom:rendered`,o.onRendered):void 0,c=r(n,o),l=e.entries.get(c._i);return l&&(l._o=n),i.dirty=!0,a(),{_i:c._i,patch(e){c.patch(e),i.dirty=!0,a()},dispose(){s?.(),e.entries.has(c._i)&&(c.dispose(),i.invalidate())}}},i}var qa=/\s+/;function Ja(e={}){return t=>Za(t,e)}function Ya(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function Xa(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(qa))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function Za(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom;if(!n||e._du||r&&r._d===n&&!e.dirty&&!Ya(e))return!1;let i=n.defaultView;e._du=!0;let a=!1;try{let o=function(e,t,n){d._s[e]=!n&&f[e]||t,delete f[e]},s=function(e,t,n,r,i,a){let s=`${e}:event:${t}`,c=d._l.get(s);if(c&&c[0]===a&&c[1]===n&&c[2]===r){o(s,c[4]);return}c?.[4]();let l=`data-${t}`,u=(e=>r.call(i,e)),f=()=>{a.removeEventListener(n,u),i.getAttribute(l)===``&&i.removeAttribute(l),d._l.get(s)?.[3]===u&&d._l.delete(s)};a.addEventListener(n,u),d._l.set(s,[a,n,r,u,f]),i.setAttribute(l,``),o(s,f,!0)},c=function({id:e,$el:t,tag:n}){if(d._e.set(e,t),!n.tag.endsWith(`Attrs`)){let r=n.textContent;r!=null&&r!==``&&(r!==t.textContent&&(t.textContent=r),o(`${e}:text`,()=>{t.textContent===r&&(t.textContent=``)},!0));let i=n.innerHTML;i!=null&&i!==``&&(i!==t.innerHTML&&(t.innerHTML=i),o(`${e}:html`,()=>{t.innerHTML===i&&(t.innerHTML=``)},!0));let a=`${e}:el`;o(a,f[a]||(()=>{t?.remove(),d._e.delete(e)}))}for(let r in n.props){let a=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof a==`function`){let o=r.slice(2);t?.dataset?.[`${r}fired`]&&a.call(t,new((i?.Event)||Event)(o)),s(e,r,o,a,t,n.tag===`bodyAttrs`&&i?i:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&a)for(let e of a){let n=`${c}:${e}`;o(n,f[n]||(()=>t.classList.remove(e))),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&a)for(let[e,n]of a){let r=`${c}:${e}`;o(r,f[r]||(()=>t.style.removeProperty(e))),t.style.setProperty(e,n)}else a!==!1&&a!==null&&(t.getAttribute(r)!==a&&t.setAttribute(r,a===!0?``:String(a)),o(c,f[c]||(()=>t.removeAttribute(r))))}},l={shouldRender:!0,tags:[]};if(Jr(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=r;if(u?._d!==n){if(u){for(let e in u._s)u._s[e]();for(let e in u._p)u._p[e]();u._s=u._p={},u._e.clear(),u._l.clear()}u=void 0}u?u._p=u._s:u=Xa(e,n),u._s={};let d=u,f=d._p,p=[],m={};e.dirty=!1;let h=bi(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),g=[],_={};for(let e of h){let t=_[e._d]||0,r=(t?`${e._d}:${t}`:e._d)||e._h,i={tag:e,id:r,shouldRender:!0};e.tag===`meta`&&e._d&&Zr(e._d)&&(_[e._d]=t+1),g.push(i),e.tag===`title`?(n.title=e.textContent,o(`title:`,()=>n.title=d._t)):(i.$el=d._e.get(r),i.$el?c(i):yr.has(e.tag)&&p.push(i))}if(p.length){let e=new Set(d._e.values());for(let t of[...n.body.children,...n.head.children]){let n=t.tagName.toLowerCase();if(!yr.has(n)||e.has(t))continue;let r={innerHTML:t.innerHTML};for(let e of t.getAttributeNames())r[e]=t.getAttribute(e);let i=ri({tag:n,props:{}},r);i.key=t.getAttribute(`data-hid`)||void 0;let a=Qr(i)||$r(i),o=a,s=1;for(;d._e.has(o);)o=`${a}:${s++}`;d._e.set(o,t)}}for(let e of p){let t=d._e.get(e.id);e.$el=t||n.createElement(e.tag.tag),c(e),t||(m[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el)}m.head&&n.head.appendChild(m.head),m.bodyOpen&&n.body.insertBefore(m.bodyOpen,n.body.firstChild),m.bodyClose&&n.body.appendChild(m.bodyClose);for(let e in f)f[e]();e._dom=d,a=!0,Jr(e,`dom:rendered`,{renders:g})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return a&&(e.dirty||Ya(e))&&Za(e,t),a}var Qa=e=>typeof e.tagPriority==`number`?e.tagPriority:100+(Tr[e.tagPriority]||0);function $a(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||Ja({document:e.document}),n=Ka(Mi(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:Qa,init:[]}),qr(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}function eo(e={}){let t=Ja(),n,r=0;return n=$a({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=Ti(n),n}var to={disableDefaults:!0,plugins:[or,fr,gr,ar]},no=c({name:`nuxt:head`,enforce:`pre`,setup(e){Ga(e,eo(to))}}),ro=/(:\w+)\([^)]+\)/g,io=/(:\w+)[?+*]/g,ao=/:\w+/g,oo=(e,t)=>t.path.replace(ro,`$1`).replace(io,`$1`).replace(ao,t=>e.params[t.slice(1)]?.toString()||``),so=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&oo(e.route,n));return typeof r==`function`?r(e.route):r},co=(e,t)=>({default:()=>e?M(tt,e===!0?{}:e,t):t});function lo(e){return Array.isArray(e)?e:[e]}var uo=()=>location.protocol+`//`+location.host;function fo(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Me(n,``)}return Me(n,e)+r+i}function po(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=fo(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){let{history:e}=window;e.state&&e.replaceState(b({},e.state,{scroll:Ge()}),``)}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),{pauseListeners:c,listen:l,destroy:d}}function mo(e,t,n,r=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:null}}function ho(e){let{history:t,location:n}=window,r={value:fo(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:uo()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){let o=b({},t.state,mo(i.value.back,e,i.value.forward,!0),n,{position:i.value.position});a(e,o,!0),d(o.position,!0),r.value=e}function s(e,n){let o=b({},i.value,t.state,{forward:e,scroll:Ge()});a(o.current,o,!0),a(e,b({},mo(r.value,e,null),{position:o.position+1},n),!1),d(o.position),r.value=e}return{location:r,state:i,push:s,replace:o}}function go(e){e=de(e);let t=ho(e),n=po(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=b({location:``,base:e,go:r,createHref:tn.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var _o={type:0,value:``},vo=/[a-zA-Z0-9_]/;function yo(e){if(!e)return[[]];if(e===`/`)return[[_o]];if(!Vt(e))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function To(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Do={strict:!1,end:!0,sensitive:!1};function Oo(e,t,n){let r=Co(yo(e.path),n),i=b(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function ko(e,t){let n=[],r=new Map;t=Ue(Do,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=jo(e);s.aliasOf=r&&r.record;let l=Ue(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(jo(b({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&!Vt(u)){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Oo(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!No(d)&&o(e.name)),Lo(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:ye}function o(e){if(wt(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Fo(e,n);n.splice(t,0,e),e.record.name&&!No(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw re(1,{location:e});s=i.record.name,a=b(Ao(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Ao(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw re(1,{location:e,currentLocation:t});s=i.record.name,a=b({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Po(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Ao(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function jo(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Mo(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Mo(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function No(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Po(e){return e.reduce((e,t)=>b(e,t.meta),{})}function Fo(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;To(e,t[i])<0?r=i:n=i+1}let i=Io(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Io(e){let t=e;for(;t=t.parent;)if(Lo(t)&&To(e,t)===0)return t}function Lo({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ro(t){let n=h(ct),r=h(e),i=O(()=>{let e=j(t.to);return n.resolve(e)}),a=O(()=>{let{matched:e}=i.value,{length:t}=e,n=e[t-1],a=r.matched;if(!n||!a.length)return-1;let o=a.findIndex(ce.bind(null,n));if(o>-1)return o;let s=Uo(e[t-2]);return t>1&&Uo(n)===s&&a[a.length-1].path!==s?a.findIndex(ce.bind(null,e[t-2])):o}),o=O(()=>a.value>-1&&Ho(r.params,i.value.params)),s=O(()=>a.value>-1&&a.value===r.matched.length-1&&xt(r.params,i.value.params));function c(e={}){if(Vo(e)){let e=n[j(t.replace)?`replace`:`push`](j(t.to)).catch(ye);return t.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>e),e}return Promise.resolve()}return{route:i,href:O(()=>i.value.href),isActive:o,isExactActive:s,navigate:c}}function zo(e){return e.length===1?e[0]:e}var Bo=N({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Ro,setup(e,{slots:t}){let n=Nt(Ro(e)),{options:r}=h(ct),i=O(()=>({[Wo(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Wo(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&zo(t.default(n));return e.custom?r:M(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Vo(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ho(e,t){for(let n in t){let r=t[n],i=e[n];if(te(r)){if(!te(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}else if(r!==i)return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Wo=(e,t,n)=>e??t??n,Go=N({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=h(Zt),i=O(()=>e.route||r.value),a=h(bt,0),o=O(()=>{let e=j(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),c=O(()=>i.value.matched[o.value]);s(bt,O(()=>o.value+1)),s(Le,c),s(Zt,i);let l=new Set;s(Pt,l);let u=A(),d=D,{app:f}=Te().appContext;return k(()=>[u.value,c.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!ce(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=c.value,s=o&&o.components[a];if(!s)return Ko(n.default,{Component:s,route:r});let p=o.props[a],m=p?p===!0?r.params:typeof p==`function`?p(r):p:null,h=e=>{e.component.isUnmounted&&(o.instances[a]=null)},g=e=>Tt(()=>{if(d===r||i.value!==r||e.el.getRootNode()!==f._container.getRootNode())return;let t=d;d=r;for(let e of l)e(r,t)}),_=M(s,b({},m,t,{onVnodeUnmounted:h,onVnodeMounted:g,onVnodeUpdated:g,ref:u}));return Ko(n.default,{Component:_,route:r})||_}}});function Ko(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var qo=Go;function Jo(t){let n=t.matcher||ko(t.routes,t),i=t.parseQuery||_,a=t.stringifyQuery||fn,s=t.history,c=S(),u=S(),d=S(),f=E(D),p=E(0),h=D;pe&&t.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let g=Fe.bind(null,e=>``+e),v=Fe.bind(null,sn),y=Fe.bind(null,ln);function x(e,t){let r,i;wt(e)?(r=n.getRecordMatcher(e),i=t):i=e;let a=n.addRoute(i,r);return p.value++,()=>{a(),p.value++}}function C(e){let t=n.getRecordMatcher(e);t&&(n.removeRoute(t),p.value++)}function T(){n.clearRoutes(),p.value++}function ee(){return n.getRoutes().map(e=>e.record)}function ne(e){return!!n.getRecordMatcher(e)}function ie(e,t){if(p.value,typeof e==`string`){t||=e.startsWith(`/`)?D:f.value;let r=w(i,e,t.path),a=n.resolve({path:r.path},t),o=s.createHref(r.fullPath);return b(r,a,{params:y(a.params),redirectedFrom:void 0,href:o})}t=b({},t||(e.path!=null&&e.path.startsWith(`/`)&&!(`name`in e&&e.name)?D:f.value));let r;if(e.path!=null)r=b({},e,{path:w(i,e.path,t.path).path});else{let n=b({},e.params);for(let e in n)n[e]??delete n[e];r=b({},e,{params:v(n)}),t.params=v(t.params)}let c=n.resolve(r,t),l=e.hash||``;c.params=g(y(c.params));let u=o(a,b({},e,{hash:Ze(l),path:c.path})),d=s.createHref(u);return b({fullPath:u,hash:l,query:a===fn?ge(e.query):e.query||{}},c,{redirectedFrom:void 0,href:d})}function oe(e){return typeof e==`string`?w(i,e,f.value.path):b({},e)}function se(e,t){if(h!==e)return re(8,{from:t,to:e})}function ce(e){return de(e)}function le(e){return ce(b(oe(e),{replace:!0}))}function ue(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=oe(i):{path:i},i.params={}),b({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function de(e,t){let n=h=ie(e),i=f.value,o=e.state,s=e.force,c=e.replace===!0,l=ue(n,i);if(l)return de(b(oe(l),{state:typeof l==`object`?b({},o,l.state):o,force:s,replace:c}),t||n);let u=n;u.redirectedFrom=t;let d;return!s&&r(a,i,n)&&(d=re(16,{to:u,from:i}),je(i,i,!0,!1)),(d?Promise.resolve(d):he(u,i)).catch(e=>Be(e)?Be(e,2)?e:Ae(e):Oe(e,u,i)).then(e=>{if(e){if(Be(e,2))return de(b({replace:c},oe(e.to),{state:typeof e.to==`object`?b({},o,e.to.state):o,force:s}),t||u)}else e=ve(u,i,!0,c,o);return _e(u,i,e),e})}function fe(e,t){let n=se(e,t);return n?Promise.reject(n):Promise.resolve()}function me(e){let t=Pe.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function he(e,t){let n,[r,i,a]=we(e,t);n=l(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(m(r,e,t))});let o=fe.bind(null,e,t);return n.push(o),Le(n).then(()=>{n=[];for(let r of c.list())n.push(m(r,e,t));return n.push(o),Le(n)}).then(()=>{n=l(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(m(r,e,t))});return n.push(o),Le(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter){if(te(r.beforeEnter))for(let i of r.beforeEnter)n.push(m(i,e,t));else n.push(m(r.beforeEnter,e,t))}return n.push(o),Le(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=l(a,`beforeRouteEnter`,e,t,me),n.push(o),Le(n))).then(()=>{n=[];for(let r of u.list())n.push(m(r,e,t));return n.push(o),Le(n)}).catch(e=>Be(e,8)?e:Promise.reject(e))}function _e(e,t,n){d.list().forEach(r=>me(()=>r(e,t,n)))}function ve(e,t,n,r,i){let a=se(e,t);if(a)return a;let o=t===D,c=pe?history.state:{};n&&(r||o?s.replace(e.fullPath,b({scroll:o&&c&&c.scroll},i)):s.push(e.fullPath,i)),f.value=e,je(e,t,n,o),Ae()}let be;function Se(){be||=s.listen((e,t,n)=>{if(!Ie.listening)return;let r=ie(e),i=ue(r,Ie.currentRoute.value);if(i){de(b(i,{replace:!0,force:!0}),r).catch(ye);return}h=r;let a=f.value;pe&&n.delta&&ae(De(a.fullPath,n.delta)),he(r,a).catch(e=>Be(e,12)?e:Be(e,2)?(de(b(oe(e.to),{force:!0}),r).then(e=>{Be(e,20)&&!n.delta&&n.type===`pop`&&s.go(-1,!1)}).catch(ye),Promise.reject()):(n.delta&&s.go(-n.delta,!1),Oe(e,r,a))).then(e=>{e||=ve(r,a,!1),e&&(n.delta&&!Be(e,8)?s.go(-n.delta,!1):n.type===`pop`&&Be(e,20)&&s.go(-1,!1)),_e(r,a,e)}).catch(ye)})}let Ce=S(),Te=S(),Ee;function Oe(e,t,n){Ae(e);let r=Te.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function ke(){return Ee&&f.value!==D?Promise.resolve():new Promise((e,t)=>{Ce.add([e,t])})}function Ae(e){return Ee||(Ee=!e,Se(),Ce.list().forEach(([t,n])=>e?n(e):t()),Ce.reset()),e}function je(e,n,r,i){let{scrollBehavior:a}=t;if(!pe||!a)return Promise.resolve();let o=!r&&an(De(e.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return Tt().then(()=>a(e,n,o)).then(t=>e===f.value&&t&&xe(t)).catch(t=>e===f.value&&Oe(t,e,n))}let Me=e=>s.go(e),Ne,Pe=new Set,Ie={currentRoute:f,listening:!0,addRoute:x,removeRoute:C,clearRoutes:T,hasRoute:ne,getRoutes:ee,resolve:ie,options:t,push:ce,replace:le,go:Me,back:()=>Me(-1),forward:()=>Me(1),beforeEach:c.add,beforeResolve:u.add,afterEach:d.add,onError:Te.add,isReady:ke,install(t){t.component(`RouterLink`,Bo),t.component(`RouterView`,qo),t.config.globalProperties.$router=Ie,Object.defineProperty(t.config.globalProperties,"$route",{enumerable:!0,get:()=>j(f)}),pe&&!Ne&&f.value===D&&(Ne=!0,ce(s.location).catch(e=>{}));let n={};for(let e in D)Object.defineProperty(n,e,{get:()=>f.value[e],enumerable:!0});t.provide(ct,Ie),t.provide(e,yt(n)),t.provide(Zt,f);let r=t.unmount;Pe.add(t),t.unmount=function(){Pe.delete(t),Pe.size<1&&(h=D,be&&be(),be=null,f.value=D,Ne=!1,Ee=!1),r()}}};function Le(e){return e.reduce((e,t)=>e.then(()=>me(t)),Promise.resolve())}return Ie}var Yo=[Je(async e=>{if(!e.meta?.validate)return;let t=await Promise.resolve(e.meta.validate(e));if(t!==!0)return g({fatal:!0,status:t&&(t.status||t.statusCode)||404,statusText:t&&(t.statusText||t.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})}),Je(e=>{let t=$i({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return on(n)?(window.location.href=n,!1):n}})],Xo={},Zo=[{name:`categories-slug`,path:`/categories/:slug()`,component:()=>qi(()=>import(`./DlAPF8TW.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url)},{name:`products-slug`,path:`/products/:slug()`,component:()=>qi(()=>import(`./xGM79_uD.js`),__vite__mapDeps([5,1,2,6,3,4]),import.meta.url)},{name:`index`,path:`/`,component:()=>qi(()=>import(`./DoONAYG5.js`),__vite__mapDeps([7,1,2,8,6,3,4]),import.meta.url)}],Qo=/\/(?=$|[?#])/;function $o(e,t,n){let{pathname:r,search:i,hash:o}=t,s=e.indexOf(`#`);if(s>-1){let t=o.includes(e.slice(s))?e.slice(s).length:1,n=o.slice(t);return n[0]!==`/`&&(n=`/`+n),ee(n,``)}let c=ee(r,e),l=!n||a(c,n)?c:n;return l+(l.includes(`?`)?``:i)+o}var es=c({name:`nuxt:router`,enforce:`pre`,async setup(e){let n=je().app.baseURL,r=Dt.history?.(n)??go(n),i=Dt.routes?await Dt.routes(Zo)??Zo:Zo,o,s=Jo({...Dt,scrollBehavior:(e,t,n)=>{if(t===D)o=n;else if(Dt.scrollBehavior){if(s.options.scrollBehavior=Dt.scrollBehavior,`scrollRestoration`in window.history){let e=s.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return Dt.scrollBehavior(e,D,o||n)}},history:r,routes:i});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(s);let c=E(s.currentRoute.value);s.afterEach((e,t)=>{c.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>c.value});let l=$o(n,window.location,e.payload.path),u=ee(window.location.pathname,n),d=E(s.currentRoute.value),f=()=>{d.value=s.currentRoute.value};s.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;n===r?so({route:e,Component:{type:n}})===so({route:t,Component:{type:r}})&&f():e.matched.lengthe.components?.default===t.matched[n]?.components?.default)&&f()});let m={sync:f};for(let e in d.value)Object.defineProperty(m,e,{get:()=>d.value[e],enumerable:!0});e._route=yt(m),e._middleware||={global:[],named:{}};let h=mt();s.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&h.value&&!Be(r,Ae.aborted|Ae.cancelled)&&await e.runWithContext(jt),r&&await e.callHook(`page:loading:end`)}),s.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)});try{await s.isReady()}catch(t){await Bt(e,t)}let _=l===s.currentRoute.value.fullPath?s.currentRoute.value:s.resolve(l),v=s.currentRoute.value.fullPath,y=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&l.replace(Qo,``)!==e.payload.path.replace(Qo,``)&&a(s.currentRoute.value.path,e.payload.path);f();function b(t){!e.isHydrating&&t.fullPath!==$o(n,window.location)&&r.push(t.fullPath)}s.beforeEach(t=>{if(!e.isHydrating&&Vi(t.path).noScripts)return window.location.assign(s.resolve(t.fullPath).href),!1}),s.beforeResolve(e=>{if(e.matched.length||a(e.path,u))return;let t=new URL(ve(e.fullPath,n),window.location.href);if(t.origin===window.location.origin)return window.location.assign(t),!1});let x=e.payload.state._layout;return s.beforeEach(async(n,r)=>{await e.callHook(`page:loading:start`),n.meta=Nt(n.meta),e.isHydrating&&x&&!t(n.meta.layout)&&(n.meta.layout=x),e._processingMiddleware=!0;{let t=new Set([...Yo,...e._middleware.global]);for(let e of n.matched){let n=e.meta.middleware;if(n)for(let e of lo(n))t.add(e)}let i=$i({path:n.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?t.add(e):t.delete(e);for(let i of t){let t=typeof i==`string`?e._middleware.named[i]||await Xo[i]?.().then(e=>e.default||e):i;if(!t)throw $e.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>t(n,r));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||g({status:404,statusText:`Page Not Found: ${l}`});return await e.runWithContext(()=>vt(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return p(i)&&i.fatal&&(await e.runWithContext(()=>vt(i)),b(n)),i}catch(t){let r=g(t);return r.fatal&&(await e.runWithContext(()=>vt(r)),b(n)),r}}}}),s.afterEach((t,n,r)=>{if(t.matched.length===0&&!h.value&&!Be(r,Ae.aborted|Ae.cancelled))return e.runWithContext(()=>vt(g({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in _&&(_.name=void 0),s.currentRoute.value.fullPath===v){if(y){let t=s.resolve(e.payload.path);`name`in t&&(t.name=void 0),await s.replace({...t,force:!0});let n=()=>{if(!e[`~restoreDeferredRoute`])return;e[`~restoreDeferredRoute`]=void 0;let t=s.currentRoute,n=s.resolve(l);n.matched.at(-1)===t.value.matched.at(-1)&&(n.meta=t.value.meta),t.value=n,f(),s.replace({..._,force:!0}).catch(()=>{})};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await s.replace({..._,force:!0})}s.options.scrollBehavior=Dt.scrollBehavior}catch(t){await Bt(e,t)}}),{provide:{router:s}}}}),ts=c({name:`nuxt:payload`,setup(e){let t=new Set,n=dn(),{schedule:r}=Va(e);n.beforeResolve(async(n,r)=>{let i=Ea(n.path),a=i?se(n.fullPath):n.path;if(a===(i?se(r.fullPath):r.path))return;let o=await _a(a);if(o){for(let n of t)delete e.static.data[n];for(let n in o.data)n in e.static.data||t.add(n),e.static.data[n]=o.data[n]}}),e.hooks.hook(`link:prefetch`,e=>{et(()=>{let{hostname:t}=new URL(e,window.location.href);if(t!==window.location.hostname)return;let n=Rt(e);r({key:`payload:${e}`,priority:`payload`,scope:`navigation`,group:n,run:async(t,n)=>{t.aborted||(await _a(e,{signal:t,promoted:n}).catch(()=>{Ii.NUXT_E7003({url:e})}),t.aborted)}})})}),et(()=>{Xe()&&setTimeout(Qi,1e3)})}}),ns=c(()=>{let e=dn();et(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),rs=c(e=>{let t;async function n(){let r;try{r=await Qi()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,He);try{let n=await Kn(Wn(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}et(()=>{t=setTimeout(n,He)})});function is(e={}){let t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw $e.NUXT_E2010({path:t});if(n.protocol&&Ct(n.protocol))throw $e.NUXT_E2002({toPath:t,protocol:n.protocol});let r={};try{r=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||r?.path!==t||r?.expires{t=!1}),e.hook(`app:chunkError`,()=>{t&&ke(navigator.userAgent)&&is()})}}),os=c({name:`nuxt:chunk-reload`,setup(e){let t=dn(),n=je(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){is({path:fe(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),ss=c({name:`nuxt:island-link-navigation`,setup(e){}}),cs=`0123456789abcdef`;Array.from({length:256},(e,t)=>cs.charAt(t>>4)+cs.charAt(t&15));function ls(e,t={}){let n,r=!1,i=[],a,o,s=(t,n)=>{let i=us(e,t,n);return a=i,i.finally(()=>{if(a=void 0,o&&!r){let e=o;o=void 0,s(t,e)}}),i};return function(...e){return o=e,a||new Promise(a=>{let c=t.leading&&!r;r||(r=!0,Ne(()=>{r=!1;let a=o??e;o=void 0;let c=t.leading?n:s(this,a);for(let e of i)e(c);i=[]})),c?(n=s(this,e),a(n)):i.push(a)})}}async function us(e,t,n){return await e.apply(t,n)}N({name:`ServerPlaceholder`,render(){return Ke(`div`)}});var ds=Symbol.for(`nuxt:client-only`),fs=N({name:`ClientOnly`,inheritAttrs:!1,props:[`fallback`,`placeholder`,`placeholderTag`,`fallbackTag`],setup(e,{slots:t,attrs:n}){let r=E(!1);T(()=>{r.value=!0});let i=Te();return i&&(i._nuxtClientOnly=!0),s(ds,!0),()=>{if(r.value){let e=t.default?.();return e&&e.length===1?[ut(e[0],n)]:e}let i=t.fallback||t.placeholder;if(i)return M(i);let a=e.fallback||e.placeholder||``,o=ht(e.fallbackTag||e.placeholderTag,`span`);return Ke(o,n,a)}}}),ps=un({docsBase:qe,reporters:nn});function ms(e={}){{function t(...t){let n=typeof t[t.length-1]==`string`?t.pop():void 0;_s(t[0],t[1])&&t.unshift(n);let[r,i,a={}]=t,o=!1,s=st(r)||typeof r==`function`,c=s?O(()=>nt(r)):{value:r};if(!c.value||typeof c.value!=`string`)throw ps.NUXT_E3008();if(typeof i!=`function`)throw ps.NUXT_E3009();let l=typeof e==`function`,u=C(),d=l?e(a):e;if(!l)for(let e in d)d[e]!==void 0&&a[e]===void 0&&(a[e]=d[e]);if(a.server??=!0,a.default??=xs,a.getCachedData??=Ss,a.lazy??=!1,a.immediate??=!0,a.deep??=Ht.deep,a.dedupe??=`cancel`,a.enabled??=!0,l)for(let e in d)d[e]!==void 0&&(a[e]=d[e]);u._asyncData[c.value];function f(){let e={cause:`initial`,dedupe:a.dedupe},t=u._asyncData[c.value];return t?._init?u._asyncDataPromises[c.value]&&(e.cachedData=t._initialCachedData):(e.cachedData=a.getCachedData(c.value,u,{cause:`initial`}),u._asyncData[c.value]=bs(u,c.value,i,a,e.cachedData),u._asyncData[c.value]._initialCachedData=e.cachedData),()=>u._asyncData[c.value].execute(e)}let p=f(),m=u._asyncData[c.value];m._deps++;let g=a.server!==!1&&u.payload.serverRendered,_=()=>!1;{let e=Te(),t=!!e||_();if(g&&a.immediate&&qn(),e&&!e._nuxtOnBeforeMountCbs){e._nuxtOnBeforeMountCbs=[];let t=e._nuxtOnBeforeMountCbs;St(()=>{t.forEach(e=>{e()}),t.splice(0,t.length)}),oe(()=>t.splice(0,t.length))}let n=t&&(e?._nuxtClientOnly||h(ds,!1)),r=c.value in u.payload.data;g&&u.isHydrating&&(m.error.value||m.data.value!==void 0&&(r||m._initialCachedData!==void 0))?m.status.value=m.error.value?`error`:`success`:t&&(!n&&u.payload.serverRendered&&u.isHydrating&&(!g||r)||a.lazy)&&a.immediate?e?e._nuxtOnBeforeMountCbs.push(p):St(()=>{p()}):a.immediate&&m.status.value!==`success`&&p();function l(e){let t=u._asyncData[e];t?._deps&&(t._deps--,t._deps===0&&t?._off())}let d=be(),f=()=>{},v=s?k(c,(e,t)=>{if((e||t)&&e!==t){o=!0;let n=u._asyncData[t]?.data.value!==void 0,r=u._asyncDataPromises[t]!==void 0,s={cause:`initial`,dedupe:a.dedupe};if(!u._asyncData[e]?._init){let r=a.getCachedData(e,u,{cause:`initial`});s.cachedData=r;let o=t&&n&&r===void 0?u._asyncData[t].data.value:r;u._asyncData[e]=bs(u,e,i,a,o),u._asyncData[e]._initialCachedData=r}u._asyncData[e]._deps++,t&&l(t),a._keyTriggersExecute!==!1&&(a.immediate||n||r)&&u._asyncData[e].execute(s),Ne(()=>{o=!1})}},{flush:`sync`}):f,y=a.watch?k(a.watch,()=>{o||u._asyncData[c.value]?._execute({cause:`watch`,dedupe:a.dedupe})}):f,b=st(a.enabled)||typeof a.enabled==`function`?k(()=>nt(a.enabled),e=>{let t=u._asyncData[c.value];!e&&t&&u._asyncDataPromises[c.value]&&(t._abortController?.abort(new DOMException("AsyncData request cancelled by `enabled: false`",`AbortError`)),t._abortController=void 0,delete u._asyncDataPromises[c.value],t.status.value=`idle`)}):f;d&&Xt(()=>{v(),y(),b(),l(c.value)})}let v={data:gs(()=>u._asyncData[c.value]?.data,!a.deep),pending:gs(()=>u._asyncData[c.value]?.pending),status:gs(()=>u._asyncData[c.value]?.status),error:gs(()=>u._asyncData[c.value]?.error),refresh:(...e)=>u._asyncData[c.value]?._init?u._asyncData[c.value].execute(...e):f()(),execute:(...e)=>v.refresh(...e),clear:()=>{let e=u._asyncData[c.value];if(e?._abortController)try{e._abortController.abort(new DOMException(`AsyncData aborted by user.`,`AbortError`))}finally{e._abortController=void 0}vs(u,c.value)}},y=Promise.resolve(a.lazy?void 0:u._asyncDataPromises[c.value]).then(()=>v);return Object.assign(y,v),Object.defineProperties(y,{then:{enumerable:!0,value:y.then.bind(y)},catch:{enumerable:!0,value:y.catch.bind(y)},finally:{enumerable:!0,value:y.finally.bind(y)}}),y}return t}}var hs=ms();function gs(e,t=!1){let n=O({get(){return e()?.value},set(t){let n=e();n&&(n.value=t)}});return t&&(n.__v_isShallow=!0),n}function _s(e,t){return!(typeof e==`string`||typeof e==`object`&&e||typeof e==`function`&&typeof t==`function`)}function vs(e,t){delete e.payload.data[t],delete e.payload._errors[t],e._asyncData[t]&&(e._asyncData[t].data.value=j(e._asyncData[t]._default()),e._asyncData[t].error.value=void 0,e._asyncData[t].status.value=`idle`,e._asyncData[t]._initialCachedData=void 0),delete e._asyncDataPromises[t]}function ys(e,t){let n={};for(let r of t)n[r]=e[r];return n}function bs(e,t,n,r,i){e.payload._errors[t]??=void 0;let a=r.getCachedData!==Ss,o=n,s=r.deep?A:E,c=i!==void 0,l=e.hook(`app:data:refresh`,async e=>{(!e||e.includes(t))&&await u.execute({cause:`refresh:hook`})}),u={data:s(c?i:r.default()),pending:O(()=>u.status.value===`pending`),error:Kt(e.payload._errors,t),status:E(`idle`),execute:(...n)=>{let[i,a=void 0]=n,s=i&&a===void 0&&typeof i==`object`?i:{};if(e._asyncDataPromises[t]&&(s.dedupe??r.dedupe)===`defer`)return e._asyncDataPromises[t];{let n=`cachedData`in s?s.cachedData:r.getCachedData(t,e,{cause:s.cause??`refresh:manual`});if(n!==void 0)return r.serialize!==!1&&(e.payload.data[t]=n),u.data.value=n,u.error.value=void 0,u.status.value=`success`,Promise.resolve(n)}if(nt(r.enabled)===!1)return Promise.resolve(u.data.value);u._abortController&&u._abortController.abort(new DOMException(`AsyncData request cancelled by deduplication`,`AbortError`)),u._abortController=new AbortController,u.status.value=`pending`;let c=new AbortController,l=new Promise((t,n)=>{try{let i=s.timeout??r.timeout,a=Cs([u._abortController?.signal,s?.signal],c.signal,i);if(a.aborted){let e=a.reason;n(e instanceof Error?e:new DOMException(String(e??`Aborted`),`AbortError`));return}a.addEventListener(`abort`,()=>{let e=a.reason;n(e instanceof Error?e:new DOMException(String(e??`Aborted`),`AbortError`))},{once:!0,signal:c.signal});let l={signal:a},d=()=>Promise.resolve(o(e,l));if(r.middleware?.length)for(let e=r.middleware.length-1;e>=0;e--){let t=r.middleware[e],n=d;d=()=>Promise.resolve(t(n,l))}return d().then(t,n)}catch(e){n(e)}}).then(async n=>{if(e._asyncDataPromises[t]!==l)return;let i=n;r.transform&&(i=await r.transform(n)),r.pick&&(i=ys(i,r.pick)),r.serialize!==!1&&(e.payload.data[t]=i),u.data.value=i,u.error.value=void 0,u.status.value=`success`}).catch(n=>{if(e._asyncDataPromises[t]!==l||u._abortController?.signal.aborted)return e._asyncDataPromises[t];if(typeof DOMException<`u`&&n instanceof DOMException&&n.name===`AbortError`)return u.status.value=`idle`,e._asyncDataPromises[t];u.error.value=g(n),u.data.value=j(r.default()),u.status.value=`error`}).finally(()=>{c.abort(),e._asyncDataPromises[t]===l&&delete e._asyncDataPromises[t]});return e._asyncDataPromises[t]=l,e._asyncDataPromises[t]},_execute:ls((...e)=>u.execute(...e)),_default:r.default,_deps:0,_init:!0,_hash:void 0,_off:()=>{l(),e._asyncData[t]===u&&(e._asyncData[t]?._init&&(e._asyncData[t]._init=!1),e._asyncDataPromises[t]&&(u._abortController?.abort(new DOMException(`AsyncData request cancelled by unmount`,`AbortError`)),delete e._asyncDataPromises[t],u.status.value===`pending`&&(u.status.value=`idle`)),a||Tt(()=>{e._asyncData[t]?._init||(vs(e,t),u.execute=()=>Promise.resolve())}))}};return u}var xs=()=>void 0,Ss=(e,t,n)=>{if(t.isHydrating)return t.payload.data[e];if(n.cause!==`refresh:manual`&&n.cause!==`refresh:hook`)return t.static.data[e]};function Cs(e,t,n){let r=e.filter(e=>!!e);if(typeof n==`number`&&n>=0){let e=AbortSignal.timeout?.(n);e&&r.push(e)}if(AbortSignal.any)return AbortSignal.any(r);let i=new AbortController;for(let e of r)if(e.aborted){let t=e.reason??new DOMException(`Aborted`,`AbortError`);try{i.abort(t)}catch{i.abort()}return i.signal}let a=()=>{let e=r.find(e=>e.aborted)?.reason??new DOMException(`Aborted`,`AbortError`);try{i.abort(e)}catch{i.abort()}};for(let e of r)e.addEventListener?.(`abort`,a,{once:!0,signal:t});return i.signal}async function ws(...e){let t=typeof e[e.length-1]==`string`?e.pop():void 0;typeof e[0]!=`string`&&e.unshift(t);let[n,r,i]=e;if(!n||typeof n!=`string`)throw Ii.NUXT_E7010({key:n});if(r!==void 0&&typeof r!=`function`)throw Ii.NUXT_E7008({type:typeof r});let a=C();if(i?.mode===`navigation`){let e=dn().beforeResolve(()=>{a.payload.once.delete(n),e()})}if(!a.payload.once.has(n)){a._once||={},a._once[n]||=r()||!0;try{await a._once[n]}catch(e){throw delete a._once[n],e}a.payload.once.add(n),delete a._once[n]}}globalThis.cookieStore;function Ts(e){return Vi(e)}function Es(e,t){return j(t)??e?.meta.layout??Ts(e?.path??`/`).appLayout??`default`}var Ds=c({name:`pinia`,setup(e){let t=rt();return e.vueApp.use(t),en(t),e.payload&&e.payload.pinia&&(t.state.value=e.payload.pinia),{provide:{pinia:t}}},hooks:{"app:rendered"(){let e=C();e.payload.pinia=Lt(e.$pinia).state.value,en(void 0)}}}),Os=c({name:`nuxt:global-components`}),ks={default:Qe(()=>qi(()=>import(`./DOASWvjr.js`).then(e=>e.default||e),__vite__mapDeps([9,1,2,8,4]),import.meta.url))},As=c({name:`nuxt:prefetch`,setup(e){let t=dn();e.hooks.hook(`app:mounted`,()=>{t.beforeEach(async e=>{let t=e?.meta?.layout;typeof t==`string`&&t in ks&&await Ft(ks[t])})});let{schedule:n}=Va(e);e.hooks.hook(`link:prefetch`,async e=>{if(Et(e))return;let r=t.resolve(e);if(!r)return;let i=r.meta.layout,a=lo(r.meta.middleware).filter(e=>typeof e==`string`);n({key:`route:chunks:${e}`,priority:`route`,scope:`navigation`,group:Rt(e),run:e=>{if(e.aborted)return;let t=[];for(let e of a){let n=Xo[e];typeof n==`function`&&t.push(n())}return typeof i==`string`&&i in ks&&t.push(Ft(ks[i])),Promise.all(t).catch(()=>{})}})})}});function js(e){"@babel/helpers - typeof";return js=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},js(e)}function Ms(e,t){if(js(e)!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(js(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ns(e){var t=Ms(e,`string`);return js(t)==`symbol`?t:t+``}function Ps(e,t,n){return(t=Ns(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Fs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function F(e){for(var t=1;ttypeof e==`function`,Ls=Array.isArray,Rs=e=>typeof e==`string`,zs=e=>typeof e==`object`&&!!e,Bs=/^on[^a-z]/,Vs=e=>Bs.test(e),Hs=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Us=/-(\w)/g,Ws=Hs(e=>e.replace(Us,(e,t)=>t?t.toUpperCase():``)),Gs=/\B([A-Z])/g,Ks=Hs(e=>e.replace(Gs,`-$1`).toLowerCase()),qs=Object.prototype.hasOwnProperty,Js=(e,t)=>qs.call(e,t);function Ys(e,t,n,r){let i=e[n];if(i!=null){let e=Js(i,`default`);if(e&&r===void 0){let e=i.default;r=i.type!==Function&&Is(e)?e():e}i.type===Boolean&&(!Js(t,n)&&!e?r=!1:r===``&&(r=!0))}return r}function Xs(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return typeof e==`function`?e(t):e??n}function Zs(e){let t,n=new Promise(n=>{t=e(()=>{n(!0)})}),r=()=>{t?.()};return r.then=(e,t)=>n.then(e,t),r.promise=n,r}function L(){let e=[];for(let t=0;te!=null&&e!==``,$s=e=>{let t=Object.keys(e),n={},r={},i={};for(let a=0,o=t.length;a0&&arguments[0]!==void 0?arguments[0]:``,t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n={},r=/;(?![^(]*\))/g,i=/:(.+)/;return typeof e==`object`?e:(e.split(r).forEach(function(e){if(e){let r=e.split(i);if(r.length>1){let e=t?Ws(r[0].trim()):r[0].trim();n[e]=r[1].trim()}}}),n)},tc=(e,t)=>e[t]!==void 0,nc=Symbol(`skipFlatten`),rc=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=Array.isArray(e)?e:[e],r=[];return n.forEach(e=>{Array.isArray(e)?r.push(...rc(e,t)):e&&e.type===Gt?e.key===nc?r.push(e):r.push(...rc(e.children,t)):e&&f(e)?t&&!dc(e)?r.push(e):t||r.push(e):Qs(e)&&r.push(e)}),r},ic=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`default`,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return f(e)?e.type===Gt?t==="default"?rc(e.children):[]:e.children&&e.children[t]?rc(e.children[t](n)):[]:rc(e.$slots[t]&&e.$slots[t](n))},ac=e=>{let t=e?.vnode?.el||e&&(e.$el||e);for(;t&&!t.tagName;)t=t.nextSibling;return t},oc=e=>{let t={};if(e.$&&e.$.vnode){let n=e.$.vnode.props||{};Object.keys(e.$props).forEach(r=>{let i=e.$props[r],a=Ks(r);(i!==void 0||a in n)&&(t[r]=i)})}else if(f(e)&&typeof e.type==`object`){let n=e.props||{},r={};Object.keys(n).forEach(e=>{r[Ws(e)]=n[e]});let i=e.type.props||{};Object.keys(i).forEach(e=>{let n=Ys(i,r,e,r[e]);(n!==void 0||e in r)&&(t[e]=n)})}return t},sc=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`default`,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i;if(e.$){let a=e[t];if(a!==void 0)return typeof a==`function`&&r?a(n):a;i=e.$slots[t],i=r&&i?i(n):i}else if(f(e)){let a=e.props&&e.props[t];if(a!==void 0&&e.props!==null)return typeof a==`function`&&r?a(n):a;e.type===Gt?i=e.children:e.children&&e.children[t]&&(i=e.children[t],i=r&&i?i(n):i)}return Array.isArray(i)&&(i=rc(i),i=i.length===1?i[0]:i,i=i.length===0?void 0:i),i};function cc(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n={};return n=e.$?I(I({},n),e.$attrs):I(I({},n),e.props),$s(n)[t?`onEvents`:`events`]}function lc(e,t){let n=((f(e)?e.props:e.$attrs)||{}).style||{};if(typeof n==`string`)n=ec(n,t);else if(t&&n){let e={};return Object.keys(n).forEach(t=>e[Ws(t)]=n[t]),e}return n}function uc(e){return e.length===1&&e[0].type===Gt}function dc(e){return e&&(e.type===It||e.type===Gt&&e.children.length===0||e.type===at&&e.children.trim()===``)}function fc(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=[];return e.forEach(e=>{Array.isArray(e)?t.push(...e):e?.type===Gt?t.push(...fc(e.children)):t.push(e)}),t.filter(e=>!dc(e))}function pc(e){return Array.isArray(e)&&e.length===1&&(e=e[0]),e&&e.__v_isVNode&&typeof e.type!=`symbol`}function mc(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`default`;return t[n]??e[n]?.call(e)}var hc=function(){return[...arguments]},gc=e=>{let t=e;return t.install=function(n){n.component(t.displayName||t.name,e)},e};function _c(){return{type:[Function,Array]}}function R(e){return{type:Object,default:e}}function vc(e){return{type:Boolean,default:e}}function yc(e){return{type:Function,default:e}}function bc(e,t){return{validator:()=>!0,default:e}}function xc(e){return{type:Array,default:e}}function Sc(e){return{type:String,default:e}}function Cc(e,t){return e?{type:e,default:t}:bc(t)}var wc=`anticon`,Tc=Symbol(`GlobalFormContextKey`),Ec=e=>{s(Tc,e)},Dc=()=>h(Tc,{validateMessages:O(()=>void 0)}),Oc=()=>({iconPrefixCls:String,getTargetContainer:{type:Function},getPopupContainer:{type:Function},prefixCls:String,getPrefixCls:{type:Function},renderEmpty:{type:Function},transformCellText:{type:Function},csp:R(),input:R(),autoInsertSpaceInButton:{type:Boolean,default:void 0},locale:R(),pageHeader:R(),componentSize:{type:String},componentDisabled:{type:Boolean,default:void 0},direction:{type:String,default:`ltr`},space:R(),virtual:{type:Boolean,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},form:R(),pagination:R(),theme:R(),select:R(),wave:R()}),kc=Symbol(`configProvider`),Ac={getPrefixCls:(e,t)=>t||(e?`ant-${e}`:`ant`),iconPrefixCls:O(()=>wc),getPopupContainer:O(()=>()=>document.body),direction:O(()=>`ltr`)},jc=()=>h(kc,Ac),Mc=e=>s(kc,e),Nc=Symbol(`DisabledContextKey`),Pc=()=>h(Nc,A(void 0)),Fc=e=>{let t=Pc();return s(Nc,O(()=>e.value??t.value)),e},Ic={items_per_page:`/ page`,jump_to:`Go to`,jump_to_confirm:`confirm`,page:``,prev_page:`Previous Page`,next_page:`Next Page`,prev_5:`Previous 5 Pages`,next_5:`Next 5 Pages`,prev_3:`Previous 3 Pages`,next_3:`Next 3 Pages`},Lc={locale:`en_US`,today:`Today`,now:`Now`,backToToday:`Back to today`,ok:`Ok`,clear:`Clear`,month:`Month`,year:`Year`,timeSelect:`select time`,dateSelect:`select date`,weekSelect:`Choose a week`,monthSelect:`Choose a month`,yearSelect:`Choose a year`,decadeSelect:`Choose a decade`,yearFormat:`YYYY`,dateFormat:`M/D/YYYY`,dayFormat:`D`,dateTimeFormat:`M/D/YYYY HH:mm:ss`,monthBeforeYear:!0,previousMonth:`Previous month (PageUp)`,nextMonth:`Next month (PageDown)`,previousYear:`Last year (Control + left)`,nextYear:`Next year (Control + right)`,previousDecade:`Last decade`,nextDecade:`Next decade`,previousCentury:`Last century`,nextCentury:`Next century`},Rc={placeholder:`Select time`,rangePlaceholder:[`Start time`,`End time`]},zc={lang:I({placeholder:`Select date`,yearPlaceholder:`Select year`,quarterPlaceholder:`Select quarter`,monthPlaceholder:`Select month`,weekPlaceholder:`Select week`,rangePlaceholder:[`Start date`,`End date`],rangeYearPlaceholder:[`Start year`,`End year`],rangeQuarterPlaceholder:[`Start quarter`,`End quarter`],rangeMonthPlaceholder:[`Start month`,`End month`],rangeWeekPlaceholder:[`Start week`,`End week`]},Lc),timePickerLocale:I({},Rc)},Bc=zc,z="${label} is not a valid ${type}",Vc={locale:`en`,Pagination:Ic,DatePicker:zc,TimePicker:Rc,Calendar:Bc,global:{placeholder:`Please select`},Table:{filterTitle:`Filter menu`,filterConfirm:`OK`,filterReset:`Reset`,filterEmptyText:`No filters`,filterCheckall:`Select all items`,filterSearchPlaceholder:`Search in filters`,emptyText:`No data`,selectAll:`Select current page`,selectInvert:`Invert current page`,selectNone:`Clear all data`,selectionAll:`Select all data`,sortTitle:`Sort`,expand:`Expand row`,collapse:`Collapse row`,triggerDesc:`Click to sort descending`,triggerAsc:`Click to sort ascending`,cancelSort:`Click to cancel sorting`},Tour:{Next:`Next`,Previous:`Previous`,Finish:`Finish`},Modal:{okText:`OK`,cancelText:`Cancel`,justOkText:`OK`},Popconfirm:{okText:`OK`,cancelText:`Cancel`},Transfer:{titles:[``,``],searchPlaceholder:`Search here`,itemUnit:`item`,itemsUnit:`items`,remove:`Remove`,selectCurrent:`Select current page`,removeCurrent:`Remove current page`,selectAll:`Select all data`,removeAll:`Remove all data`,selectInvert:`Invert current page`},Upload:{uploading:`Uploading...`,removeFile:`Remove file`,uploadError:`Upload error`,previewFile:`Preview file`,downloadFile:`Download file`},Empty:{description:`No data`},Icon:{icon:`icon`},Text:{edit:`Edit`,copy:`Copy`,copied:`Copied`,expand:`Expand`},PageHeader:{back:`Back`},Form:{optional:`(optional)`,defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:z,method:z,array:z,object:z,number:z,date:z,boolean:z,integer:z,float:z,regexp:z,email:z,url:z,hex:z},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:`Preview`},QRCode:{expired:`QR code expired`,refresh:`Refresh`,scanned:`Scanned`}},Hc=N({compatConfig:{MODE:3},name:`LocaleReceiver`,props:{componentName:String,defaultLocale:{type:[Object,Function]},children:{type:Function}},setup(e,t){let{slots:n}=t,r=h(`localeData`,{}),i=O(()=>{let{componentName:t=`global`,defaultLocale:n}=e,i=n||Vc[t||`global`],{antLocale:a}=r,o=t&&a?a[t]:{};return I(I({},typeof i==`function`?i():i),o||{})}),a=O(()=>{let{antLocale:e}=r,t=e&&e.locale;return e&&e.exist&&!t?Vc.locale:t});return()=>{let t=e.children||n.default,{antLocale:o}=r;return t?.(i.value,a.value,o)}}});function Uc(e,t,n){let r=h(`localeData`,{});return[O(()=>{let{antLocale:i}=r,a=j(t)||Vc[e||`global`],o=e&&i?i[e]:{};return I(I(I({},typeof a==`function`?a():a),o||{}),j(n)||{})})]}var Wc=Hc;function Gc(e){for(var t=0,n,r=0,i=e.length;i>=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Kc=`%`,qc=class{constructor(e){this.cache=new Map,this.instanceId=e}get(e){return this.cache.get(Array.isArray(e)?e.join(Kc):e)||null}update(e,t){let n=Array.isArray(e)?e.join(Kc):e,r=t(this.cache.get(n));r===null?this.cache.delete(n):this.cache.set(n,r)}},Jc=`data-token-hash`,Yc=`data-css-hash`,Xc=`__cssinjs_instance__`;function Zc(){let e=Math.random().toString(12).slice(2);if(typeof document<`u`&&document.head&&document.body){let t=document.body.querySelectorAll(`style[data-css-hash]`)||[],{firstChild:n}=document.head;Array.from(t).forEach(t=>{t[Xc]=t.__cssinjs_instance__||e,t.__cssinjs_instance__===e&&document.head.insertBefore(t,n)});let r={};Array.from(document.querySelectorAll(`style[${Yc}]`)).forEach(t=>{var n;let i=t.getAttribute(Yc);r[i]?t.__cssinjs_instance__===e&&((n=t.parentNode)==null||n.removeChild(t)):r[i]=!0})}return new qc(e)}var Qc=Symbol(`StyleContextKey`),$c=()=>{let e=Te(),t;if(e&&e.appContext){let n=e.appContext?.config?.globalProperties?.__ANTDV_CSSINJS_CACHE__;n?t=n:(t=Zc(),e.appContext.config.globalProperties&&(e.appContext.config.globalProperties.__ANTDV_CSSINJS_CACHE__=t))}else t=Zc();return t},el={cache:Zc(),defaultCache:!0,hashPriority:`low`},tl=()=>{let e=$c();return h(Qc,E(I(I({},el),{cache:e})))},nl=e=>{let t=tl(),n=E(I(I({},el),{cache:Zc()}));return k([()=>j(e),t],()=>{let r=I({},t.value),i=j(e);Object.keys(i).forEach(e=>{let t=i[e];i[e]!==void 0&&(r[e]=t)});let{cache:a}=i;r.cache=r.cache||Zc(),r.defaultCache=!a&&t.value.defaultCache,n.value=r},{immediate:!0}),s(Qc,n),n},rl=gc(N({name:`AStyleProvider`,inheritAttrs:!1,props:{autoClear:vc(),mock:Sc(),cache:R(),defaultCache:vc(),hashPriority:Sc(),container:Cc(),ssrInline:vc(),transformers:xc(),linters:xc()},setup(e,t){let{slots:n}=t;return nl(e),()=>n.default?.call(n)}}));function il(e,t,n,r){let i=tl(),a=E(``),o=E();ne(()=>{a.value=[e,...t.value].join(`%`)});let s=e=>{i.value.cache.update(e,e=>{let[t=0,n]=e||[];return t-1==0?(r?.(n,!1),null):[t-1,n]})};return k(a,(e,t)=>{t&&s(t),i.value.cache.update(e,e=>{let[t=0,r]=e||[],i=r||n();return[t+1,i]}),o.value=i.value.cache.get(a.value)[1]},{immediate:!0}),le(()=>{s(a.value)}),o}function al(){return!!(typeof window<`u`&&window.document&&window.document.createElement)}function ol(e,t){return e&&e.contains?e.contains(t):!1}var sl=`data-vc-order`,cl=`vc-util-key`,ll=new Map;function ul(){let{mark:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e?e.startsWith(`data-`)?e:`data-${e}`:cl}function dl(e){return e.attachTo?e.attachTo:document.querySelector(`head`)||document.body}function fl(e){return e===`queue`?`prependQueue`:e?`prepend`:`append`}function pl(e){return Array.from((ll.get(e)||e).children).filter(e=>e.tagName===`STYLE`)}function ml(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!al())return null;let{csp:n,prepend:r}=t,i=document.createElement(`style`);i.setAttribute(sl,fl(r)),n?.nonce&&(i.nonce=n?.nonce),i.innerHTML=e;let a=dl(t),{firstChild:o}=a;if(r){if(r===`queue`){let e=pl(a).filter(e=>[`prepend`,`prependQueue`].includes(e.getAttribute(sl)));if(e.length)return a.insertBefore(i,e[e.length-1].nextSibling),i}a.insertBefore(i,o)}else a.appendChild(i);return i}function hl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return pl(dl(t)).find(n=>n.getAttribute(ul(t))===e)}function gl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=hl(e,t);n&&dl(t).removeChild(n)}function _l(e,t){let n=ll.get(e);if(!n||!ol(document,n)){let n=ml(``,t),{parentNode:r}=n;ll.set(e,r),e.removeChild(n)}}function vl(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};_l(dl(n),n);let r=hl(t,n);if(r)return n.csp?.nonce&&r.nonce!==n.csp?.nonce&&(r.nonce=n.csp?.nonce),r.innerHTML!==e&&(r.innerHTML=e),r;let i=ml(e,n);return i.setAttribute(ul(n),t),i}function yl(e,t){if(e.length!==t.length)return!1;for(let n=0;n1&&arguments[1]!==void 0&&arguments[1],n={map:this.cache};return e.forEach(e=>{n=n?(n?.map)?.get(e):void 0}),n?.value&&t&&(n.value[1]=this.cacheCallTimes++),n?.value}get(e){return this.internalGet(e,!0)?.[0]}has(e){return!!this.internalGet(e)}set(t,n){if(!this.has(t)){if(this.size()+1>e.MAX_CACHE_SIZE+e.MAX_CACHE_OFFSET){let[e]=this.keys.reduce((e,t)=>{let[,n]=e;return this.internalGet(t)[1]{if(i===t.length-1)r.set(e,{value:[n,this.cacheCallTimes++]});else{let t=r.get(e);t?t.map||=new Map:r.set(e,{map:new Map}),r=r.get(e).map}})}deleteByPath(e,t){let n=e.get(t[0]);if(t.length===1)return n.map?e.set(t[0],{map:n.map}):e.delete(t[0]),n.value?.[0];let r=this.deleteByPath(n.map,t.slice(1));return(!n.map||n.map.size===0)&&!n.value&&e.delete(t[0]),r}delete(e){if(this.has(e))return this.keys=this.keys.filter(t=>!yl(t,e)),this.deleteByPath(this.cache,e)}};bl.MAX_CACHE_SIZE=20,bl.MAX_CACHE_OFFSET=5;function xl(){}var Sl=xl,Cl=0,wl=class{constructor(e){this.derivatives=Array.isArray(e)?e:[e],this.id=Cl,e.length===0&&Sl(e.length>0,`[Ant Design Vue CSS-in-JS] Theme should have at least one derivative function.`),Cl+=1}getDerivativeToken(e){return this.derivatives.reduce((t,n)=>n(e,t),void 0)}},Tl=new bl;function El(e){let t=Array.isArray(e)?e:[e];return Tl.has(t)||Tl.set(t,new wl(t)),Tl.get(t)}var Dl=new WeakMap;function Ol(e){let t=Dl.get(e)||``;return t||(Object.keys(e).forEach(n=>{let r=e[n];t+=n,r instanceof wl?t+=r.id:t+=r&&typeof r==`object`?Ol(r):r}),Dl.set(e,t)),t}function kl(e,t){return Gc(`${t}_${Ol(e)}`)}var Al=`random-${Date.now()}-${Math.random()}`.replace(/\./g,``),jl=`_bAmBoO_`;function Ml(e,t,n){var r;if(al()){vl(e,Al);let i=document.createElement(`div`);i.style.position=`fixed`,i.style.left=`0`,i.style.top=`0`,t?.(i),document.body.appendChild(i);let a=n?n(i):getComputedStyle(i).content?.includes(jl);return(r=i.parentNode)==null||r.removeChild(i),gl(Al),a}return!1}var Nl=void 0;function Pl(){return Nl===void 0&&(Nl=Ml(`@layer ${Al} { .${Al} { content: "${jl}"!important; } }`,e=>{e.className=Al})),Nl}var Fl={},Il=`css`,Ll=new Map;function Rl(e){Ll.set(e,(Ll.get(e)||0)+1)}function zl(e,t){typeof document<`u`&&document.querySelectorAll(`style[${Jc}="${e}"]`).forEach(e=>{var n;e.__cssinjs_instance__===t&&((n=e.parentNode)==null||n.removeChild(e))})}var Bl=0;function Vl(e,t){Ll.set(e,(Ll.get(e)||0)-1);let n=Array.from(Ll.keys()),r=n.filter(e=>(Ll.get(e)||0)<=0);n.length-r.length>Bl&&r.forEach(e=>{zl(e,t),Ll.delete(e)})}var Hl=(e,t,n,r)=>{let i=n.getDerivativeToken(e),a=I(I({},i),t);return r&&(a=r(a)),a};function Ul(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:A({}),r=tl(),i=O(()=>I({},...t.value)),a=O(()=>Ol(i.value)),o=O(()=>Ol(n.value.override||Fl));return il(`token`,O(()=>[n.value.salt||``,e.value.id,a.value,o.value]),()=>{let{salt:t=``,override:r=Fl,formatToken:a,getComputedToken:o}=n.value,s=o?o(i.value,r,e.value):Hl(i.value,r,e.value,a),c=kl(s,t);s._tokenKey=c,Rl(c);let l=`${Il}-${Gc(c)}`;return s._hashId=l,[s,l]},e=>{Vl(e[0]._tokenKey,r.value?.cache.instanceId)})}var Wl={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Gl=`comm`,Kl=`rule`,ql=`decl`,Jl=`@import`,Yl=`@namespace`,Xl=`@keyframes`,Zl=`@layer`,Ql=Math.abs,$l=String.fromCharCode;function eu(e){return e.trim()}function tu(e,t,n){return e.replace(t,n)}function nu(e,t){return e.charCodeAt(t)|0}function ru(e,t,n){return e.slice(t,n)}function iu(e){return e.length}function au(e){return e.length}function ou(e,t){return t.push(e),e}var su=1,cu=1,lu=0,B=0,V=0,uu=``;function du(e,t,n,r,i,a,o,s){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:su,column:cu,length:o,return:``,siblings:s}}function fu(){return V}function pu(){return V=B>0?nu(uu,--B):0,cu--,V===10&&(cu=1,su--),V}function H(){return V=B2||_u(V)>3?``:` `}function Su(e,t){for(;--t&&H()&&!(V<48||V>102||V>57&&V<65||V>70&&V<97););return gu(e,hu()+(t<6&&mu()==32&&H()==32))}function Cu(e){for(;H();)switch(V){case e:return B;case 34:case 39:e!==34&&e!==39&&Cu(V);break;case 40:e===41&&Cu(e);break;case 92:H()}return B}function wu(e,t){for(;H()&&e+V!==57&&(e+V!==84||mu()!==47););return`/*`+gu(t,B-1)+`*`+$l(e===47?e:H())}function Tu(e){for(;!_u(mu());)H();return gu(e,B)}function Eu(e){return yu(Du(``,null,null,null,[``],e=vu(e),0,[0],e))}function Du(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,y=0,b=``,x=i,S=a,C=r,w=b;g;)switch(m=y,y=H()){case 40:m!=108&&nu(w,d-1)==58?(v++,w+=`(`):w+=bu(y);break;case 41:v--,w+=`)`;break;case 34:case 39:case 91:w+=bu(y);break;case 9:case 10:case 13:case 32:if(v>0){w+=$l(y);break}w+=xu(m);break;case 92:w+=Su(hu()-1,7);continue;case 47:switch(mu()){case 42:case 47:ou(ku(wu(H(),hu()),t,n,c),c),(_u(m||1)==5||_u(mu()||1)==5)&&iu(w)&&ru(w,-1,void 0)!==` `&&(w+=` `);break;default:w+=`/`}break;case 123*h:s[l++]=iu(w)*_;case 125*h:case 59:case 0:if(v>0&&y){w+=$l(y);break}switch(y){case 0:case 125:g=0;case 59+u:_==-1&&(w=tu(w,/\f/g,``)),p>0&&(iu(w)-d||h===0)&&ou(p>32?Au(w+`;`,r,n,d-1,c):Au(tu(w,` `,``)+`;`,r,n,d-2,c),c);break;case 59:w+=`;`;default:if(ou(C=Ou(w,t,n,l,u,i,s,b,x=[],S=[],d,a),a),y===123){if(u===0)Du(w,t,C,C,x,a,d,s,S);else{switch(f){case 99:if(nu(w,3)===110)break;case 108:if(nu(w,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Du(e,C,C,r&&ou(Ou(e,C,C,0,0,i,s,b,i,x=[],d,S),S),i,S,d,s,r?x:S):Du(w,C,C,C,[``],S,0,s,S)}}}l=u=p=0,h=_=1,b=w=``,d=o;break;case 58:d=1+iu(w),p=m;default:if(h<1){if(y==123)--h;else if(y==125&&h++==0&&pu()==125)continue}switch(w+=$l(y),y*h){case 38:_=u>0?1:(w+=`\f`,-1);break;case 44:if(v>0)break;s[l++]=(iu(w)-1)*_,_=1;break;case 64:mu()===45&&(w+=bu(H())),f=mu(),u=d=iu(b=w+=Tu(hu())),y++;break;case 45:m===45&&iu(w)==2&&(h=0)}}return a}function Ou(e,t,n,r,i,a,o,s,c,l,u,d){for(var f=i-1,p=i===0?a:[``],m=au(p),h=0,g=0,_=0;h0?p[v]+` `+y:tu(y,/&\f/g,p[v])))&&(c[_++]=b);return du(e,t,n,i===0?Kl:s,c,l,u,d)}function ku(e,t,n,r){return du(e,t,n,Gl,$l(fu()),ru(e,2,-2),0,r)}function Au(e,t,n,r,i){return du(e,t,n,ql,ru(e,0,r),ru(e,r+1,-1),r,i)}function ju(e,t){for(var n=``,r=0;r{let[t,n]=e.split(`:`);Fu[t]=n});let r=document.querySelector(`style[${Nu}]`);r&&(Iu=!1,(e=r.parentNode)==null||e.removeChild(r)),document.body.removeChild(t)}}function Ru(e){return Lu(),!!Fu[e]}function zu(e){let t=Fu[e],n=null;if(t&&al()){if(Iu)n=Pu;else{let t=document.querySelector(`style[${Yc}="${Fu[e]}"]`);t?n=t.innerHTML:delete Fu[e]}}return[n,t]}var Bu=al(),Vu=`_skip_check_`,Hu=`_multi_value_`;function Uu(e){return ju(Eu(e),Mu).replace(/\{%%%\:[^;];}/g,`;`)}function Wu(e){return typeof e==`object`&&e&&(Vu in e||Hu in e)}function Gu(e,t,n){if(!t)return e;let r=`.${t}`,i=n===`low`?`:where(${r})`:r;return e.split(`,`).map(e=>{let t=e.trim().split(/\s+/),n=t[0]||``,r=n.match(/^\w+/)?.[0]||``;return n=`${r}${i}${n.slice(r.length)}`,[n,...t.slice(1)].join(` `)}).join(`,`)}var Ku=new Set,qu=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{root:n,injectHash:r,parentSelectors:i}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]},{hashId:a,layer:o,path:s,hashPriority:c,transformers:l=[],linters:u=[]}=t,d=``,f={};function p(e){let n=e.getName(a);if(!f[n]){let[r]=qu(e.style,t,{root:!1,parentSelectors:i});f[n]=`@keyframes ${e.getName(a)}${r}`}}function m(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.forEach(e=>{Array.isArray(e)?m(e,t):e&&t.push(e)}),t}if(m(Array.isArray(e)?e:[e]).forEach(e=>{let o=typeof e==`string`&&!n?{}:e;if(typeof o==`string`)d+=`${o}\n`;else if(o._keyframe)p(o);else{let e=l.reduce((e,t)=>(t?.visit)?.call(t,e)||e,o);Object.keys(e).forEach(o=>{let s=e[o];if(typeof s==`object`&&s&&(o!==`animationName`||!s._keyframe)&&!Wu(s)){let e=!1,l=o.trim(),u=!1;(n||r)&&a?l.startsWith(`@`)?e=!0:l=Gu(o,a,c):n&&!a&&(l===`&`||l===``)&&(l=``,u=!0);let[p,m]=qu(s,t,{root:u,injectHash:e,parentSelectors:[...i,l]});f=I(I({},f),m),d+=`${l}${p}`}else{function e(e,t){let n=e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),r=t;!Wl[e]&&typeof r==`number`&&r!==0&&(r=`${r}px`),e===`animationName`&&t?._keyframe&&(p(t),r=t.getName(a)),d+=`${n}:${r};`}let t=s?.value??s;typeof s==`object`&&s?.[Hu]&&Array.isArray(t)?t.forEach(t=>{e(o,t)}):e(o,t)}})}}),!n)d=`{${d}}`;else if(o&&Pl()){let e=o.split(`,`);d=`@layer ${e[e.length-1].trim()} {${d}}`,e.length>1&&(d=`@layer ${o}{%%%:%}${d}`)}return[d,f]};function Ju(e,t){return Gc(`${e.join(`%`)}${t}`)}function Yu(e,t){let n=tl(),r=O(()=>e.value.token._tokenKey),i=O(()=>[r.value,...e.value.path]),a=Bu;return il(`style`,i,()=>{let{path:o,hashId:s,layer:c,nonce:l,clientOnly:u,order:d=0}=e.value,f=i.value.join(`|`);if(Ru(f)){let[e,t]=zu(f);if(e)return[e,r.value,t,{},u,d]}let p=t(),{hashPriority:m,container:h,transformers:g,linters:_,cache:v}=n.value,[y,b]=qu(p,{hashId:s,hashPriority:m,layer:c,path:o.join(`-`),transformers:g,linters:_}),x=Uu(y),S=Ju(i.value,x);if(a){let e={mark:Yc,prepend:`queue`,attachTo:h,priority:d},t=typeof l==`function`?l():l;t&&(e.csp={nonce:t});let n=vl(x,S,e);n[Xc]=v.instanceId,n.setAttribute(Jc,r.value),Object.keys(b).forEach(e=>{Ku.has(e)||(Ku.add(e),vl(Uu(b[e]),`_effect-${e}`,{mark:Yc,prepend:`queue`,attachTo:h}))})}return[x,r.value,S,b,u,d]},(e,t)=>{let[,,r]=e;(t||n.value.autoClear)&&Bu&&gl(r,{mark:Yc})}),e=>e}var Xu=class{constructor(e,t){this._keyframe=!0,this.name=e,this.style=t}getName(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e?`${e}-${this.name}`:this.name}},Zu=`4.2.6`;function U(e,t){$u(e)&&(e=`100%`);var n=ed(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(e=t===360?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t)),e)}function Qu(e){return Math.min(1,Math.max(0,e))}function $u(e){return typeof e==`string`&&e.indexOf(`.`)!==-1&&parseFloat(e)===1}function ed(e){return typeof e==`string`&&e.indexOf(`%`)!==-1}function td(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function nd(e){return e<=1?`${Number(e)*100}%`:e}function rd(e){return e.length===1?`0`+e:String(e)}function id(e,t,n){return{r:U(e,255)*255,g:U(t,255)*255,b:U(n,255)*255}}function ad(e,t,n){e=U(e,255),t=U(t,255),n=U(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=0,s=(r+i)/2;if(r===i)o=0,a=0;else{var c=r-i;switch(o=s>.5?c/(2-r-i):c/(r+i),r){case e:a=(t-n)/c+(t1&&--n,n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function sd(e,t,n){var r,i,a;if(e=U(e,360),t=U(t,100),n=U(n,100),t===0)i=n,a=n,r=n;else{var o=n<.5?n*(1+t):n+t-n*t,s=2*n-o;r=od(s,o,e+1/3),i=od(s,o,e),a=od(s,o,e-1/3)}return{r:r*255,g:i*255,b:a*255}}function cd(e,t,n){e=U(e,255),t=U(t,255),n=U(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=r,s=r-i,c=r===0?0:s/r;if(r===i)a=0;else{switch(r){case e:a=(t-n)/s+(t>16,g:(e&65280)>>8,b:e&255}}var hd={aliceblue:`#f0f8ff`,antiquewhite:`#faebd7`,aqua:`#00ffff`,aquamarine:`#7fffd4`,azure:`#f0ffff`,beige:`#f5f5dc`,bisque:`#ffe4c4`,black:`#000000`,blanchedalmond:`#ffebcd`,blue:`#0000ff`,blueviolet:`#8a2be2`,brown:`#a52a2a`,burlywood:`#deb887`,cadetblue:`#5f9ea0`,chartreuse:`#7fff00`,chocolate:`#d2691e`,coral:`#ff7f50`,cornflowerblue:`#6495ed`,cornsilk:`#fff8dc`,crimson:`#dc143c`,cyan:`#00ffff`,darkblue:`#00008b`,darkcyan:`#008b8b`,darkgoldenrod:`#b8860b`,darkgray:`#a9a9a9`,darkgreen:`#006400`,darkgrey:`#a9a9a9`,darkkhaki:`#bdb76b`,darkmagenta:`#8b008b`,darkolivegreen:`#556b2f`,darkorange:`#ff8c00`,darkorchid:`#9932cc`,darkred:`#8b0000`,darksalmon:`#e9967a`,darkseagreen:`#8fbc8f`,darkslateblue:`#483d8b`,darkslategray:`#2f4f4f`,darkslategrey:`#2f4f4f`,darkturquoise:`#00ced1`,darkviolet:`#9400d3`,deeppink:`#ff1493`,deepskyblue:`#00bfff`,dimgray:`#696969`,dimgrey:`#696969`,dodgerblue:`#1e90ff`,firebrick:`#b22222`,floralwhite:`#fffaf0`,forestgreen:`#228b22`,fuchsia:`#ff00ff`,gainsboro:`#dcdcdc`,ghostwhite:`#f8f8ff`,goldenrod:`#daa520`,gold:`#ffd700`,gray:`#808080`,green:`#008000`,greenyellow:`#adff2f`,grey:`#808080`,honeydew:`#f0fff0`,hotpink:`#ff69b4`,indianred:`#cd5c5c`,indigo:`#4b0082`,ivory:`#fffff0`,khaki:`#f0e68c`,lavenderblush:`#fff0f5`,lavender:`#e6e6fa`,lawngreen:`#7cfc00`,lemonchiffon:`#fffacd`,lightblue:`#add8e6`,lightcoral:`#f08080`,lightcyan:`#e0ffff`,lightgoldenrodyellow:`#fafad2`,lightgray:`#d3d3d3`,lightgreen:`#90ee90`,lightgrey:`#d3d3d3`,lightpink:`#ffb6c1`,lightsalmon:`#ffa07a`,lightseagreen:`#20b2aa`,lightskyblue:`#87cefa`,lightslategray:`#778899`,lightslategrey:`#778899`,lightsteelblue:`#b0c4de`,lightyellow:`#ffffe0`,lime:`#00ff00`,limegreen:`#32cd32`,linen:`#faf0e6`,magenta:`#ff00ff`,maroon:`#800000`,mediumaquamarine:`#66cdaa`,mediumblue:`#0000cd`,mediumorchid:`#ba55d3`,mediumpurple:`#9370db`,mediumseagreen:`#3cb371`,mediumslateblue:`#7b68ee`,mediumspringgreen:`#00fa9a`,mediumturquoise:`#48d1cc`,mediumvioletred:`#c71585`,midnightblue:`#191970`,mintcream:`#f5fffa`,mistyrose:`#ffe4e1`,moccasin:`#ffe4b5`,navajowhite:`#ffdead`,navy:`#000080`,oldlace:`#fdf5e6`,olive:`#808000`,olivedrab:`#6b8e23`,orange:`#ffa500`,orangered:`#ff4500`,orchid:`#da70d6`,palegoldenrod:`#eee8aa`,palegreen:`#98fb98`,paleturquoise:`#afeeee`,palevioletred:`#db7093`,papayawhip:`#ffefd5`,peachpuff:`#ffdab9`,peru:`#cd853f`,pink:`#ffc0cb`,plum:`#dda0dd`,powderblue:`#b0e0e6`,purple:`#800080`,rebeccapurple:`#663399`,red:`#ff0000`,rosybrown:`#bc8f8f`,royalblue:`#4169e1`,saddlebrown:`#8b4513`,salmon:`#fa8072`,sandybrown:`#f4a460`,seagreen:`#2e8b57`,seashell:`#fff5ee`,sienna:`#a0522d`,silver:`#c0c0c0`,skyblue:`#87ceeb`,slateblue:`#6a5acd`,slategray:`#708090`,slategrey:`#708090`,snow:`#fffafa`,springgreen:`#00ff7f`,steelblue:`#4682b4`,tan:`#d2b48c`,teal:`#008080`,thistle:`#d8bfd8`,tomato:`#ff6347`,turquoise:`#40e0d0`,violet:`#ee82ee`,wheat:`#f5deb3`,white:`#ffffff`,whitesmoke:`#f5f5f5`,yellow:`#ffff00`,yellowgreen:`#9acd32`};function gd(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,a=null,o=!1,s=!1;return typeof e==`string`&&(e=xd(e)),typeof e==`object`&&(Sd(e.r)&&Sd(e.g)&&Sd(e.b)?(t=id(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)===`%`?`prgb`:`rgb`):Sd(e.h)&&Sd(e.s)&&Sd(e.v)?(r=nd(e.s),i=nd(e.v),t=ld(e.h,r,i),o=!0,s=`hsv`):Sd(e.h)&&Sd(e.s)&&Sd(e.l)&&(r=nd(e.s),a=nd(e.l),t=sd(e.h,r,a),o=!0,s=`hsl`),Object.prototype.hasOwnProperty.call(e,`a`)&&(n=e.a)),n=td(n),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var _d=`(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)`,vd=`[\\s|\\(]+(${_d})[,|\\s]+(${_d})[,|\\s]+(${_d})\\s*\\)?`,yd=`[\\s|\\(]+(${_d})[,|\\s]+(${_d})[,|\\s]+(${_d})[,|\\s]+(${_d})\\s*\\)?`,bd={CSS_UNIT:new RegExp(_d),rgb:RegExp(`rgb`+vd),rgba:RegExp(`rgba`+yd),hsl:RegExp(`hsl`+vd),hsla:RegExp(`hsla`+yd),hsv:RegExp(`hsv`+vd),hsva:RegExp(`hsva`+yd),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function xd(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(hd[e])e=hd[e],t=!0;else if(e===`transparent`)return{r:0,g:0,b:0,a:0,format:`name`};var n=bd.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=bd.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=bd.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=bd.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=bd.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=bd.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=bd.hex8.exec(e),n?{r:W(n[1]),g:W(n[2]),b:W(n[3]),a:pd(n[4]),format:t?`name`:`hex8`}:(n=bd.hex6.exec(e),n?{r:W(n[1]),g:W(n[2]),b:W(n[3]),format:t?`name`:`hex`}:(n=bd.hex4.exec(e),n?{r:W(n[1]+n[1]),g:W(n[2]+n[2]),b:W(n[3]+n[3]),a:pd(n[4]+n[4]),format:t?`name`:`hex8`}:(n=bd.hex3.exec(e),n?{r:W(n[1]+n[1]),g:W(n[2]+n[2]),b:W(n[3]+n[3]),format:t?`name`:`hex`}:!1)))))))))}function Sd(e){return!!bd.CSS_UNIT.exec(String(e))}var G=function(){function e(t,n){if(t===void 0&&(t=``),n===void 0&&(n={}),t instanceof e)return t;typeof t==`number`&&(t=md(t)),this.originalInput=t;var r=gd(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=n.format??r.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t,n,r,i=e.r/255,a=e.g/255,o=e.b/255;return t=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,n=a<=.03928?a/12.92:((a+.055)/1.055)**2.4,r=o<=.03928?o/12.92:((o+.055)/1.055)**2.4,.2126*t+.7152*n+.0722*r},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=td(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){return this.toHsl().s===0},e.prototype.toHsv=function(){var e=cd(this.r,this.g,this.b);return{h:e.h*360,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=cd(this.r,this.g,this.b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.v*100);return this.a===1?`hsv(${t}, ${n}%, ${r}%)`:`hsva(${t}, ${n}%, ${r}%, ${this.roundA})`},e.prototype.toHsl=function(){var e=ad(this.r,this.g,this.b);return{h:e.h*360,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=ad(this.r,this.g,this.b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.l*100);return this.a===1?`hsl(${t}, ${n}%, ${r}%)`:`hsla(${t}, ${n}%, ${r}%, ${this.roundA})`},e.prototype.toHex=function(e){return e===void 0&&(e=!1),ud(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return e===void 0&&(e=!1),`#`+this.toHex(e)},e.prototype.toHex8=function(e){return e===void 0&&(e=!1),dd(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return e===void 0&&(e=!1),`#`+this.toHex8(e)},e.prototype.toHexShortString=function(e){return e===void 0&&(e=!1),this.a===1?this.toHexString(e):this.toHex8String(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return this.a===1?`rgb(${e}, ${t}, ${n})`:`rgba(${e}, ${t}, ${n}, ${this.roundA})`},e.prototype.toPercentageRgb=function(){var e=function(e){return`${Math.round(U(e,255)*100)}%`};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(U(e,255)*100)};return this.a===1?`rgb(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%)`:`rgba(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%, ${this.roundA})`},e.prototype.toName=function(){if(this.a===0)return`transparent`;if(this.a<1)return!1;for(var e=`#`+ud(this.r,this.g,this.b,!1),t=0,n=Object.entries(hd);t=0;return!t&&r&&(e.startsWith(`hex`)||e===`name`)?e===`name`&&this.a===0?this.toName():this.toRgbString():(e===`rgb`&&(n=this.toRgbString()),e===`prgb`&&(n=this.toPercentageRgbString()),(e===`hex`||e===`hex6`)&&(n=this.toHexString()),e===`hex3`&&(n=this.toHexString(!0)),e===`hex4`&&(n=this.toHex8String(!0)),e===`hex8`&&(n=this.toHex8String()),e===`name`&&(n=this.toName()),e===`hsl`&&(n=this.toHslString()),e===`hsv`&&(n=this.toHsvString()),n||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Qu(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Qu(n.l),new e(n)},e.prototype.tint=function(e){return e===void 0&&(e=10),this.mix(`white`,e)},e.prototype.shade=function(e){return e===void 0&&(e=10),this.mix(`black`,e)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Qu(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Qu(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var r=this.toRgb(),i=new e(t).toRgb(),a=n/100;return new e({r:(i.r-r.r)*a+r.r,g:(i.g-r.g)*a+r.g,b:(i.b-r.b)*a+r.b,a:(i.a-r.a)*a+r.a})},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var r=this.toHsl(),i=360/n,a=[this];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,a.push(new e(r));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),r=n.h,i=n.s,a=n.v,o=[],s=1/t;t--;)o.push(new e({h:r,s:i,v:a})),a=(a+s)%1;return o},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb(),i=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/i,g:(n.g*n.a+r.g*r.a*(1-n.a))/i,b:(n.b*n.a+r.b*r.a*(1-n.a))/i,a:i})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,i=[this],a=360/t,o=1;o=60&&Math.round(e.h)<=240?n?Math.round(e.h)-Cd*t:Math.round(e.h)+Cd*t:n?Math.round(e.h)+Cd*t:Math.round(e.h)-Cd*t;return r<0?r+=360:r>=360&&(r-=360),r}function Fd(e,t,n){if(e.h===0&&e.s===0)return e.s;var r=n?e.s-wd*t:t===kd?e.s+wd:e.s+Td*t;return r>1&&(r=1),n&&t===Od&&r>.1&&(r=.1),r<.06&&(r=.06),Number(r.toFixed(2))}function Id(e,t,n){var r=n?e.v+Ed*t:e.v-Dd*t;return r>1&&(r=1),Number(r.toFixed(2))}function Ld(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=[],r=gd(e),i=Od;i>0;--i){var a=jd(r),o=Md(gd({h:Pd(a,i,!0),s:Fd(a,i,!0),v:Id(a,i,!0)}));n.push(o)}n.push(Md(r));for(var s=1;s<=kd;s+=1){var c=jd(r),l=Md(gd({h:Pd(c,s),s:Fd(c,s),v:Id(c,s)}));n.push(l)}return t.theme===`dark`?Ad.map(function(e){var r=e.index,i=e.opacity;return Md(Nd(gd(t.backgroundColor||`#141414`),gd(n[r]),i*100))}):n}var Rd={red:`#F5222D`,volcano:`#FA541C`,orange:`#FA8C16`,gold:`#FAAD14`,yellow:`#FADB14`,lime:`#A0D911`,green:`#52C41A`,cyan:`#13C2C2`,blue:`#1890FF`,geekblue:`#2F54EB`,purple:`#722ED1`,magenta:`#EB2F96`,grey:`#666666`},K={},zd={};Object.keys(Rd).forEach(function(e){K[e]=Ld(Rd[e]),K[e].primary=K[e][5],zd[e]=Ld(Rd[e],{theme:`dark`,backgroundColor:`#141414`}),zd[e].primary=zd[e][5]}),K.red,K.volcano,K.gold,K.orange,K.yellow,K.lime,K.green,K.cyan;var Bd=K.blue;K.geekblue,K.purple,K.magenta,K.grey;var Vd=e=>{let{controlHeight:t}=e;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}};function Hd(e){let{sizeUnit:t,sizeStep:n}=e;return{sizeXXL:t*(n+8),sizeXL:t*(n+4),sizeLG:t*(n+2),sizeMD:t*(n+1),sizeMS:t*n,size:t*n,sizeSM:t*(n-1),sizeXS:t*(n-2),sizeXXS:t*(n-3)}}var Ud={blue:`#1677ff`,purple:`#722ED1`,cyan:`#13C2C2`,green:`#52C41A`,magenta:`#EB2F96`,pink:`#eb2f96`,red:`#F5222D`,orange:`#FA8C16`,yellow:`#FADB14`,volcano:`#FA541C`,geekblue:`#2F54EB`,gold:`#FAAD14`,lime:`#A0D911`},Wd=I(I({},Ud),{colorPrimary:`#1677ff`,colorSuccess:`#52c41a`,colorWarning:`#faad14`,colorError:`#ff4d4f`,colorInfo:`#1677ff`,colorTextBase:``,colorBgBase:``,fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, +'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', +'Noto Color Emoji'`,fontSize:14,lineWidth:1,lineType:`solid`,motionUnit:.1,motionBase:0,motionEaseOutCirc:`cubic-bezier(0.08, 0.82, 0.17, 1)`,motionEaseInOutCirc:`cubic-bezier(0.78, 0.14, 0.15, 0.86)`,motionEaseOut:`cubic-bezier(0.215, 0.61, 0.355, 1)`,motionEaseInOut:`cubic-bezier(0.645, 0.045, 0.355, 1)`,motionEaseOutBack:`cubic-bezier(0.12, 0.4, 0.29, 1.46)`,motionEaseInBack:`cubic-bezier(0.71, -0.46, 0.88, 0.6)`,motionEaseInQuint:`cubic-bezier(0.755, 0.05, 0.855, 0.06)`,motionEaseOutQuint:`cubic-bezier(0.23, 1, 0.32, 1)`,borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1});function Gd(e,t){let{generateColorPalettes:n,generateNeutralColorPalettes:r}=t,{colorSuccess:i,colorWarning:a,colorError:o,colorInfo:s,colorPrimary:c,colorBgBase:l,colorTextBase:u}=e,d=n(c),f=n(i),p=n(a),m=n(o),h=n(s),g=r(l,u);return I(I({},g),{colorPrimaryBg:d[1],colorPrimaryBgHover:d[2],colorPrimaryBorder:d[3],colorPrimaryBorderHover:d[4],colorPrimaryHover:d[5],colorPrimary:d[6],colorPrimaryActive:d[7],colorPrimaryTextHover:d[8],colorPrimaryText:d[9],colorPrimaryTextActive:d[10],colorSuccessBg:f[1],colorSuccessBgHover:f[2],colorSuccessBorder:f[3],colorSuccessBorderHover:f[4],colorSuccessHover:f[4],colorSuccess:f[6],colorSuccessActive:f[7],colorSuccessTextHover:f[8],colorSuccessText:f[9],colorSuccessTextActive:f[10],colorErrorBg:m[1],colorErrorBgHover:m[2],colorErrorBorder:m[3],colorErrorBorderHover:m[4],colorErrorHover:m[5],colorError:m[6],colorErrorActive:m[7],colorErrorTextHover:m[8],colorErrorText:m[9],colorErrorTextActive:m[10],colorWarningBg:p[1],colorWarningBgHover:p[2],colorWarningBorder:p[3],colorWarningBorderHover:p[4],colorWarningHover:p[4],colorWarning:p[6],colorWarningActive:p[7],colorWarningTextHover:p[8],colorWarningText:p[9],colorWarningTextActive:p[10],colorInfoBg:h[1],colorInfoBgHover:h[2],colorInfoBorder:h[3],colorInfoBorderHover:h[4],colorInfoHover:h[4],colorInfo:h[6],colorInfoActive:h[7],colorInfoTextHover:h[8],colorInfoText:h[9],colorInfoTextActive:h[10],colorBgMask:new G(`#000`).setAlpha(.45).toRgbString(),colorWhite:`#fff`})}var Kd=e=>{let t=e,n=e,r=e,i=e;return e<6&&e>=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?n=4:e<8&&e>=7?n=5:e<14&&e>=8?n=6:e<16&&e>=14?n=7:e>=16&&(n=8),e<6&&e>=2?r=1:e>=6&&(r=2),e>4&&e<8?i=4:e>=8&&(i=6),{borderRadius:e>16?16:e,borderRadiusXS:r,borderRadiusSM:n,borderRadiusLG:t,borderRadiusOuter:i}};function qd(e){let{motionUnit:t,motionBase:n,borderRadius:r,lineWidth:i}=e;return I({motionDurationFast:`${(n+t).toFixed(1)}s`,motionDurationMid:`${(n+t*2).toFixed(1)}s`,motionDurationSlow:`${(n+t*3).toFixed(1)}s`,lineWidthBold:i+1},Kd(r))}var Jd=(e,t)=>new G(e).setAlpha(t).toRgbString(),Yd=(e,t)=>new G(e).darken(t).toHexString(),Xd=e=>{let t=Ld(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},Zd=(e,t)=>{let n=e||`#fff`,r=t||`#000`;return{colorBgBase:n,colorTextBase:r,colorText:Jd(r,.88),colorTextSecondary:Jd(r,.65),colorTextTertiary:Jd(r,.45),colorTextQuaternary:Jd(r,.25),colorFill:Jd(r,.15),colorFillSecondary:Jd(r,.06),colorFillTertiary:Jd(r,.04),colorFillQuaternary:Jd(r,.02),colorBgLayout:Yd(n,4),colorBgContainer:Yd(n,0),colorBgElevated:Yd(n,0),colorBgSpotlight:Jd(r,.85),colorBorder:Yd(n,15),colorBorderSecondary:Yd(n,6)}};function Qd(e){let t=Array(10).fill(null).map((t,n)=>{let r=e*2.71828**((n-1)/5);return Math.floor((n>1?Math.floor(r):Math.ceil(r))/2)*2});return t[1]=e,t.map(e=>({size:e,lineHeight:(e+8)/e}))}var $d=e=>{let t=Qd(e),n=t.map(e=>e.size),r=t.map(e=>e.lineHeight);return{fontSizeSM:n[0],fontSize:n[1],fontSizeLG:n[2],fontSizeXL:n[3],fontSizeHeading1:n[6],fontSizeHeading2:n[5],fontSizeHeading3:n[4],fontSizeHeading4:n[3],fontSizeHeading5:n[2],lineHeight:r[1],lineHeightLG:r[2],lineHeightSM:r[0],lineHeightHeading1:r[6],lineHeightHeading2:r[5],lineHeightHeading3:r[4],lineHeightHeading4:r[3],lineHeightHeading5:r[2]}};function ef(e){let t=Object.keys(Ud).map(t=>{let n=Ld(e[t]);return Array(10).fill(1).reduce((e,r,i)=>(e[`${t}-${i+1}`]=n[i],e),{})}).reduce((e,t)=>(e=I(I({},e),t),e),{});return I(I(I(I(I(I(I({},e),t),Gd(e,{generateColorPalettes:Xd,generateNeutralColorPalettes:Zd})),$d(e.fontSize)),Hd(e)),Vd(e)),qd(e))}function tf(e){return e>=0&&e<=255}function nf(e,t){let{r:n,g:r,b:i,a}=new G(e).toRgb();if(a<1)return e;let{r:o,g:s,b:c}=new G(t).toRgb();for(let e=.01;e<=1;e+=.01){let t=Math.round((n-o*(1-e))/e),a=Math.round((r-s*(1-e))/e),l=Math.round((i-c*(1-e))/e);if(tf(t)&&tf(a)&&tf(l))return new G({r:t,g:a,b:l,a:Math.round(e*100)/100}).toRgbString()}return new G({r:n,g:r,b:i,a:1}).toRgbString()}var rf=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{delete r[e]});let i=I(I({},n),r),a=1200,o=1600,s=2e3;return I(I(I({},i),{colorLink:i.colorInfoText,colorLinkHover:i.colorInfoHover,colorLinkActive:i.colorInfoActive,colorFillContent:i.colorFillSecondary,colorFillContentHover:i.colorFill,colorFillAlter:i.colorFillQuaternary,colorBgContainerDisabled:i.colorFillTertiary,colorBorderBg:i.colorBgContainer,colorSplit:nf(i.colorBorderSecondary,i.colorBgContainer),colorTextPlaceholder:i.colorTextQuaternary,colorTextDisabled:i.colorTextQuaternary,colorTextHeading:i.colorText,colorTextLabel:i.colorTextSecondary,colorTextDescription:i.colorTextTertiary,colorTextLightSolid:i.colorWhite,colorHighlight:i.colorError,colorBgTextHover:i.colorFillSecondary,colorBgTextActive:i.colorFill,colorIcon:i.colorTextTertiary,colorIconHover:i.colorText,colorErrorOutline:nf(i.colorErrorBg,i.colorBgContainer),colorWarningOutline:nf(i.colorWarningBg,i.colorBgContainer),fontSizeIcon:i.fontSizeSM,lineWidth:i.lineWidth,controlOutlineWidth:i.lineWidth*2,controlInteractiveSize:i.controlHeight/2,controlItemBgHover:i.colorFillTertiary,controlItemBgActive:i.colorPrimaryBg,controlItemBgActiveHover:i.colorPrimaryBgHover,controlItemBgActiveDisabled:i.colorFill,controlTmpOutline:i.colorFillQuaternary,controlOutline:nf(i.colorPrimaryBg,i.colorBgContainer),lineType:i.lineType,borderRadius:i.borderRadius,borderRadiusXS:i.borderRadiusXS,borderRadiusSM:i.borderRadiusSM,borderRadiusLG:i.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:`none`,linkHoverDecoration:`none`,linkFocusDecoration:`none`,controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:i.sizeXXS,paddingXS:i.sizeXS,paddingSM:i.sizeSM,padding:i.size,paddingMD:i.sizeMD,paddingLG:i.sizeLG,paddingXL:i.sizeXL,paddingContentHorizontalLG:i.sizeLG,paddingContentVerticalLG:i.sizeMS,paddingContentHorizontal:i.sizeMS,paddingContentVertical:i.sizeSM,paddingContentHorizontalSM:i.size,paddingContentVerticalSM:i.sizeXS,marginXXS:i.sizeXXS,marginXS:i.sizeXS,marginSM:i.sizeSM,margin:i.size,marginMD:i.sizeMD,marginLG:i.sizeLG,marginXL:i.sizeXL,marginXXL:i.sizeXXL,boxShadow:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,boxShadowSecondary:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTertiary:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,screenXS:480,screenXSMin:480,screenXSMax:575,screenSM:576,screenSMMin:576,screenSMMax:767,screenMD:768,screenMDMin:768,screenMDMax:991,screenLG:992,screenLGMin:992,screenLGMax:1199,screenXL:a,screenXLMin:a,screenXLMax:1599,screenXXL:o,screenXXLMin:o,screenXXLMax:1999,screenXXXL:s,screenXXXLMin:s,boxShadowPopoverArrow:`3px 3px 7px rgba(0, 0, 0, 0.1)`,boxShadowCard:` + 0 1px 2px -2px ${new G(`rgba(0, 0, 0, 0.16)`).toRgbString()}, + 0 3px 6px 0 ${new G(`rgba(0, 0, 0, 0.12)`).toRgbString()}, + 0 5px 12px 4px ${new G(`rgba(0, 0, 0, 0.09)`).toRgbString()} + `,boxShadowDrawerRight:` + -6px 0 16px 0 rgba(0, 0, 0, 0.08), + -3px 0 6px -4px rgba(0, 0, 0, 0.12), + -9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerLeft:` + 6px 0 16px 0 rgba(0, 0, 0, 0.08), + 3px 0 6px -4px rgba(0, 0, 0, 0.12), + 9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerUp:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerDown:` + 0 -6px 16px 0 rgba(0, 0, 0, 0.08), + 0 -3px 6px -4px rgba(0, 0, 0, 0.12), + 0 -9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTabsOverflowLeft:`inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)`,boxShadowTabsOverflowRight:`inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)`,boxShadowTabsOverflowTop:`inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)`,boxShadowTabsOverflowBottom:`inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)`}),r)}var of=e=>({boxSizing:`border-box`,margin:0,padding:0,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,listStyle:`none`,fontFamily:e.fontFamily}),sf=()=>({display:`inline-flex`,alignItems:`center`,color:`inherit`,fontStyle:`normal`,lineHeight:0,textAlign:`center`,textTransform:`none`,verticalAlign:`-0.125em`,textRendering:`optimizeLegibility`,"-webkit-font-smoothing":`antialiased`,"-moz-osx-font-smoothing":`grayscale`,"> *":{lineHeight:1},svg:{display:`inline-block`}}),cf=()=>({"&::before":{display:`table`,content:`""`},"&::after":{display:`table`,clear:`both`,content:`""`}}),lf=e=>({a:{color:e.colorLink,textDecoration:e.linkDecoration,backgroundColor:`transparent`,outline:`none`,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,"-webkit-text-decoration-skip":`objects`,"&:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive},"&:active,\n &:hover":{textDecoration:e.linkHoverDecoration,outline:0},"&:focus":{textDecoration:e.linkFocusDecoration,outline:0},"&[disabled]":{color:e.colorTextDisabled,cursor:`not-allowed`}}}),uf=(e,t)=>{let{fontFamily:n,fontSize:r}=e,i=`[class^="${t}"], [class*=" ${t}"]`;return{[i]:{fontFamily:n,fontSize:r,boxSizing:`border-box`,"&::before, &::after":{boxSizing:`border-box`},[i]:{boxSizing:`border-box`,"&::before, &::after":{boxSizing:`border-box`}}}}},df=e=>({outline:`${e.lineWidthBold}px solid ${e.colorPrimaryBorder}`,outlineOffset:1,transition:`outline-offset 0s, outline 0s`}),ff=e=>({"&:focus-visible":I({},df(e))});function pf(e,t,n){return r=>{let i=O(()=>r?.value),[a,o,s]=Ef(),{getPrefixCls:c,iconPrefixCls:l}=jc(),u=O(()=>c());return Yu(O(()=>({theme:a.value,token:o.value,hashId:s.value,path:[`Shared`,u.value]})),()=>[{"&":lf(o.value)}]),[Yu(O(()=>({theme:a.value,token:o.value,hashId:s.value,path:[e,i.value,l.value]})),()=>{let{token:r,flush:a}=yf(o.value),c=typeof n==`function`?n(r):n,d=I(I({},c),o.value[e]),f=t(gf(r,{componentCls:`.${i.value}`,prefixCls:i.value,iconCls:`.${l.value}`,antCls:`.${u.value}`},d),{hashId:s.value,prefixCls:i.value,rootPrefixCls:u.value,iconPrefixCls:l.value,overrideComponentToken:o.value[e]});return a(e,d),[uf(o.value,i.value),f]}),s]}}var mf=typeof CSSINJS_STATISTIC<`u`,hf=!0;function gf(){var e=[...arguments];if(!mf)return I({},...e);hf=!1;let t={};return e.forEach(e=>{Object.keys(e).forEach(n=>{Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get:()=>e[n]})})}),hf=!0,t}var _f={};function vf(){}function yf(e){let t,n=e,r=vf;return mf&&(t=new Set,n=new Proxy(e,{get(e,n){return hf&&t.add(n),e[n]}}),r=(e,n)=>{_f[e]={global:Array.from(t),component:n}}),{token:n,keys:t,flush:r}}var bf=El(ef),xf={token:Wd,hashed:!0},Sf=Symbol(`DesignTokenContext`),Cf=E(),wf=e=>{s(Sf,e),k(e,()=>{Cf.value=j(e),kt(Cf)},{immediate:!0,deep:!0})},Tf=N({props:{value:R()},setup(e,t){let{slots:n}=t;return wf(O(()=>e.value)),()=>n.default?.call(n)}});function Ef(){let e=h(Sf,O(()=>Cf.value||xf)),t=O(()=>`${Zu}-${e.value.hashed||``}`),n=O(()=>e.value.theme||bf),r=Ul(n,O(()=>[Wd,e.value.token]),O(()=>({salt:t.value,override:I({override:e.value.token},e.value.components),formatToken:af})));return[n,O(()=>r.value[0]),O(()=>e.value.hashed?r.value[1]:``)]}var Df=N({compatConfig:{MODE:3},setup(){let[,e]=Ef(),t=O(()=>new G(e.value.colorBgBase).toHsl().l<.5?{opacity:.65}:{});return()=>P(`svg`,{style:t.value,width:`184`,height:`152`,viewBox:`0 0 184 152`,xmlns:`http://www.w3.org/2000/svg`},[P(`g`,{fill:`none`,"fill-rule":`evenodd`},[P(`g`,{transform:`translate(24 31.67)`},[P(`ellipse`,{"fill-opacity":`.8`,fill:`#F5F5F7`,cx:`67.797`,cy:`106.89`,rx:`67.797`,ry:`12.668`},null),P(`path`,{d:`M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z`,fill:`#AEB8C2`},null),P(`path`,{d:`M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z`,fill:`url(#linearGradient-1)`,transform:`translate(13.56)`},null),P(`path`,{d:`M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z`,fill:`#F5F5F7`},null),P(`path`,{d:`M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z`,fill:`#DCE0E6`},null)]),P(`path`,{d:`M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z`,fill:`#DCE0E6`},null),P(`g`,{transform:`translate(149.65 15.383)`,fill:`#FFF`},[P(`ellipse`,{cx:`20.654`,cy:`3.167`,rx:`2.849`,ry:`2.815`},null),P(`path`,{d:`M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z`},null)])])])}});Df.PRESENTED_IMAGE_DEFAULT=!0;var Of=N({compatConfig:{MODE:3},setup(){let[,e]=Ef(),t=O(()=>{let{colorFill:t,colorFillTertiary:n,colorFillQuaternary:r,colorBgContainer:i}=e.value;return{borderColor:new G(t).onBackground(i).toHexString(),shadowColor:new G(n).onBackground(i).toHexString(),contentColor:new G(r).onBackground(i).toHexString()}});return()=>P(`svg`,{width:`64`,height:`41`,viewBox:`0 0 64 41`,xmlns:`http://www.w3.org/2000/svg`},[P(`g`,{transform:`translate(0 1)`,fill:`none`,"fill-rule":`evenodd`},[P(`ellipse`,{fill:t.value.shadowColor,cx:`32`,cy:`33`,rx:`32`,ry:`7`},null),P(`g`,{"fill-rule":`nonzero`,stroke:t.value.borderColor},[P(`path`,{d:`M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z`},null),P(`path`,{d:`M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z`,fill:t.value.contentColor},null)])])])}});Of.PRESENTED_IMAGE_SIMPLE=!0;var kf=e=>{let{componentCls:t,margin:n,marginXS:r,marginXL:i,fontSize:a,lineHeight:o}=e;return{[t]:{marginInline:r,fontSize:a,lineHeight:o,textAlign:`center`,[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:r,opacity:e.opacityImage,img:{height:`100%`},svg:{height:`100%`,margin:`auto`}},[`${t}-footer`]:{marginTop:n},"&-normal":{marginBlock:i,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightMD}},"&-small":{marginBlock:r,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}},Af=pf(`Empty`,e=>{let{componentCls:t,controlHeightLG:n}=e;return[kf(gf(e,{emptyImgCls:`${t}-img`,emptyImgHeight:n*2.5,emptyImgHeightMD:n,emptyImgHeightSM:n*.875}))]}),jf=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let t=a.value,c=I(I({},e),r),{image:l=n.image?.call(n)||M(Df),description:u=n.description?.call(n)||void 0,imageStyle:d,class:f=``}=c,p=jf(c,[`image`,`description`,`imageStyle`,`class`]),m=typeof l==`function`?l():l,h=typeof m==`object`&&`type`in m&&m.type.PRESENTED_IMAGE_SIMPLE;return o(P(Wc,{componentName:`Empty`,children:e=>{let r=u===void 0?e.description:u,a=typeof r==`string`?r:`empty`,o=null;return o=typeof m==`string`?P(`img`,{alt:a,src:m},null):m,P(`div`,F({class:L(t,f,s.value,{[`${t}-normal`]:h,[`${t}-rtl`]:i.value===`rtl`})},p),[P(`div`,{class:`${t}-image`,style:d},[o]),r&&P(`p`,{class:`${t}-description`},[r]),n.default&&P(`div`,{class:`${t}-footer`},[fc(n.default())])])}},null))}}});Mf.PRESENTED_IMAGE_DEFAULT=()=>M(Df),Mf.PRESENTED_IMAGE_SIMPLE=()=>M(Of);var Nf=gc(Mf),Pf=e=>{let{prefixCls:t}=zf(`empty`,e);return(e=>{switch(e){case`Table`:case`List`:return P(Nf,{image:Nf.PRESENTED_IMAGE_SIMPLE},null);case`Select`:case`TreeSelect`:case`Cascader`:case`Transfer`:case`Mentions`:return P(Nf,{image:Nf.PRESENTED_IMAGE_SIMPLE,class:`${t.value}-small`},null);default:return P(Nf,null,null)}})(e.componentName)};function Ff(e){return P(Pf,{componentName:e},null)}var If=Symbol(`SizeContextKey`),Lf=()=>h(If,A(void 0)),Rf=e=>{let t=Lf();return s(If,O(()=>e.value||t.value)),e},zf=((e,t)=>{let n=Lf(),r=Pc(),i=h(kc,I(I({},Ac),{renderEmpty:e=>M(Pf,{componentName:e})})),a=O(()=>i.getPrefixCls(e,t.prefixCls)),o=O(()=>t.direction??i.direction?.value),s=O(()=>t.iconPrefixCls??i.iconPrefixCls.value),c=O(()=>i.getPrefixCls()),l=O(()=>i.autoInsertSpaceInButton?.value),u=i.renderEmpty,d=i.space,f=i.pageHeader,p=i.form,m=O(()=>t.getTargetContainer??i.getTargetContainer?.value),g=O(()=>t.getContainer??t.getPopupContainer??i.getPopupContainer?.value),_=O(()=>t.dropdownMatchSelectWidth??i.dropdownMatchSelectWidth?.value),v=O(()=>(t.virtual===void 0?i.virtual?.value!==!1:t.virtual!==!1)&&_.value!==!1),y=O(()=>t.size||n.value),b=O(()=>t.autocomplete??i.input?.value?.autocomplete),x=O(()=>t.disabled??r.value),S=O(()=>t.csp??i.csp),C=O(()=>t.wave??i.wave?.value);return{configProvider:i,prefixCls:a,direction:o,size:y,getTargetContainer:m,getPopupContainer:g,space:d,pageHeader:f,form:p,autoInsertSpaceInButton:l,renderEmpty:u,virtual:v,dropdownMatchSelectWidth:_,rootPrefixCls:c,getPrefixCls:i.getPrefixCls,autocomplete:b,csp:S,iconPrefixCls:s,disabled:x,select:i.select,wave:C}});function Bf(e,t){for(var n=0;n=0||(i[n]=e[n]);return i}function Gf(e){return((t=e)!=null&&typeof t==`object`&&!1===Array.isArray(t))==1&&Object.prototype.toString.call(e)===`[object Object]`;var t}var Kf=Object.prototype,qf=Kf.toString,Jf=Kf.hasOwnProperty,Yf=/^\s*function (\w+)/;function Xf(e){var t=e?.type??e;if(t){var n=t.toString().match(Yf);return n?n[1]:``}return``}var Zf=function(e){var t,n;return!1!==Gf(e)&&typeof(t=e.constructor)==`function`&&!1!==Gf(n=t.prototype)&&!1!==n.hasOwnProperty(`isPrototypeOf`)},q=function(e){return e},Qf=function(e,t){return Jf.call(e,t)},$f=Number.isInteger||function(e){return typeof e==`number`&&isFinite(e)&&Math.floor(e)===e},ep=Array.isArray||function(e){return qf.call(e)===`[object Array]`},tp=function(e){return qf.call(e)===`[object Function]`},np=function(e){return Zf(e)&&Qf(e,`_vueTypes_name`)},rp=function(e){return Zf(e)&&(Qf(e,`type`)||[`_vueTypes_name`,`validator`,`default`,`required`].some(function(t){return Qf(e,t)}))};function ip(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function ap(e,t,n){var r;n===void 0&&(n=!1);var i=!0,a=``;r=Zf(e)?e:{type:e};var o=np(r)?r._vueTypes_name+` - `:``;if(rp(r)&&r.type!==null){if(r.type===void 0||!0===r.type||!r.required&&t===void 0)return i;ep(r.type)?(i=r.type.some(function(e){return!0===ap(e,t,!0)}),a=r.type.map(function(e){return Xf(e)}).join(` or `)):i=(a=Xf(r))===`Array`?ep(t):a===`Object`?Zf(t):a===`String`||a===`Number`||a===`Boolean`||a===`Function`?function(e){if(e==null)return``;var t=e.constructor.toString().match(Yf);return t?t[1]:``}(t)===a:t instanceof r.type}if(!i){var s=o+`value "`+t+`" should be of type "`+a+`"`;return!1===n?(q(s),!1):s}if(Qf(r,`validator`)&&tp(r.validator)){var c=q,l=[];if(q=function(e){l.push(e)},i=r.validator(t),q=c,!i){var u=(l.length>1?`* `:``)+l.join(` +* `);return l.length=0,!1===n?(q(u),i):u}}return i}function J(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return e!==void 0||this.default?tp(e)||!0===ap(this,e,!0)?(this.default=ep(e)?function(){return[].concat(e)}:Zf(e)?function(){return Object.assign({},e)}:e,this):(q(this._vueTypes_name+` - invalid default value: "`+e+`"`),this):this}}}),r=n.validator;return tp(r)&&(n.validator=ip(r,n)),n}function op(e,t){var n=J(e,t);return Object.defineProperty(n,"validate",{value:function(e){return tp(this.validator)&&q(this._vueTypes_name+` - calling .validate() will overwrite the current custom validator function. Validator info: +`+JSON.stringify(this)),this.validator=ip(e,this),this}})}function sp(e,t,n){var r,i,a=(r=t,i={},Object.getOwnPropertyNames(r).forEach(function(e){i[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},i));if(a._vueTypes_name=e,!Zf(n))return a;var o,s=n.validator,c=Wf(n,[`validator`]);if(tp(s)){var l=a.validator;l&&=(o=l).__original??o,a.validator=ip(l?function(e){return l.call(this,e)&&s.call(this,e)}:s,a)}return Object.assign(a,c)}function cp(e){return e.replace(/^(?!\s*$)/gm,` `)}var lp=function(){return op(`any`,{})},up=function(){return op(`function`,{type:Function})},dp=function(){return op(`boolean`,{type:Boolean})},fp=function(){return op(`string`,{type:String})},pp=function(){return op(`number`,{type:Number})},mp=function(){return op(`array`,{type:Array})},hp=function(){return op(`object`,{type:Object})},gp=function(){return J(`integer`,{type:Number,validator:function(e){return $f(e)}})},_p=function(){return J(`symbol`,{validator:function(e){return typeof e==`symbol`}})};function vp(e,t){if(t===void 0&&(t=`custom validation failed`),typeof e!=`function`)throw TypeError(`[VueTypes error]: You must provide a function as argument`);return J(e.name||`<>`,{validator:function(n){var r=e(n);return r||q(this._vueTypes_name+` - `+t),r}})}function yp(e){if(!ep(e))throw TypeError(`[VueTypes error]: You must provide an array as argument.`);var t=`oneOf - value should be one of "`+e.join(`", "`)+`".`,n=e.reduce(function(e,t){if(t!=null){var n=t.constructor;e.indexOf(n)===-1&&e.push(n)}return e},[]);return J(`oneOf`,{type:n.length>0?n:void 0,validator:function(n){var r=e.indexOf(n)!==-1;return r||q(t),r}})}function bp(e){if(!ep(e))throw TypeError(`[VueTypes error]: You must provide an array as argument`);for(var t=!1,n=[],r=0;r0&&n.some(function(e){return a.indexOf(e)===-1})){var o=n.filter(function(e){return a.indexOf(e)===-1});return q(o.length===1?`shape - required property "`+o[0]+`" is not defined.`:`shape - required properties "`+o.join(`", "`)+`" are not defined.`),!1}return a.every(function(n){if(t.indexOf(n)===-1)return!0===i._vueTypes_isLoose||(q(`shape - shape definition does not include a "`+n+`" property. Allowed keys: "`+t.join(`", "`)+`".`),!1);var a=ap(e[n],r[n],!0);return typeof a==`string`&&q(`shape - "`+n+`" property validation error: + `+cp(a)),!0===a})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var Tp=function(){function e(){}return e.extend=function(e){var t=this;if(ep(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,i=r!==void 0&&r,a=e.getter,o=a!==void 0&&a,s=Wf(e,[`name`,`validate`,`getter`]);if(Qf(this,n))throw TypeError(`[VueTypes error]: Type "`+n+`" already defined`);var c,l=s.type;return np(l)?(delete s.type,Object.defineProperty(this,n,o?{get:function(){return sp(n,l,s)}}:{value:function(){var e,t=sp(n,l,s);return t.validator&&=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments))),t}})):(c=o?{get:function(){var e=Object.assign({},s);return i?op(n,e):J(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},s);return e=i?op(n,r):J(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,c))},Vf(e,null,[{key:`any`,get:function(){return lp()}},{key:`func`,get:function(){return up().def(this.defaults.func)}},{key:`bool`,get:function(){return dp().def(this.defaults.bool)}},{key:`string`,get:function(){return fp().def(this.defaults.string)}},{key:`number`,get:function(){return pp().def(this.defaults.number)}},{key:`array`,get:function(){return mp().def(this.defaults.array)}},{key:`object`,get:function(){return hp().def(this.defaults.object)}},{key:`integer`,get:function(){return gp().def(this.defaults.integer)}},{key:`symbol`,get:function(){return _p()}}]),e}();function Ep(e){var t;return e===void 0&&(e={func:function(){},bool:!0,string:``,number:0,array:function(){return[]},object:function(){return{}},integer:0}),(t=function(t){function n(){return t.apply(this,arguments)||this}return Uf(n,t),Vf(n,null,[{key:`sensibleDefaults`,get:function(){return Hf({},this.defaults)},set:function(t){this.defaults=!1===t?{}:Hf({},!0===t?e:t)}}]),n}(Tp)).defaults=Hf({},e),t}Tp.defaults={},Tp.custom=vp,Tp.oneOf=yp,Tp.instanceOf=Sp,Tp.oneOfType=bp,Tp.arrayOf=xp,Tp.objectOf=Cp,Tp.shape=wp,Tp.utils={validate:function(e,t){return!0===ap(t,e,!0)},toType:function(e,t,n){return n===void 0&&(n=!1),n?op(e,t):J(e,t)}},function(e){function t(){return e.apply(this,arguments)||this}return Uf(t,e),t}(Ep());var Dp=Ep({func:void 0,bool:void 0,string:void 0,number:void 0,array:void 0,object:void 0,integer:void 0});Dp.extend([{name:`looseBool`,getter:!0,type:Boolean,default:void 0},{name:`style`,getter:!0,type:[String,Object],default:void 0},{name:`VueNode`,getter:!0,type:null}]);function Op(e){let{prefixCls:t,animation:n,transitionName:r}=e;return n?{name:`${t}-${n}`}:r?{name:r}:{}}var kp=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return I(e?{name:e,appear:!0,enterFromClass:`${e}-enter ${e}-enter-prepare ${e}-enter-start`,enterActiveClass:`${e}-enter ${e}-enter-prepare`,enterToClass:`${e}-enter ${e}-enter-active`,leaveFromClass:` ${e}-leave`,leaveActiveClass:`${e}-leave ${e}-leave-active`,leaveToClass:`${e}-leave ${e}-leave-active`}:{css:!1},t)},Ap=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return I(e?{name:e,appear:!0,appearActiveClass:`${e}`,appearToClass:`${e}-appear ${e}-appear-active`,enterFromClass:`${e}-appear ${e}-enter ${e}-appear-prepare ${e}-enter-prepare`,enterActiveClass:`${e}`,enterToClass:`${e}-enter ${e}-appear ${e}-appear-active ${e}-enter-active`,leaveActiveClass:`${e} ${e}-leave`,leaveToClass:`${e}-leave-active`}:{css:!1},t)},jp=(e,t,n)=>n===void 0?`${e}-${t}`:n,Mp=Symbol(`PortalContextKey`),Np=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{inTriggerContext:!0};s(Mp,{inTriggerContext:t.inTriggerContext,shouldRender:O(()=>{let{sPopupVisible:t,popupRef:n,forceRender:r,autoDestroy:i}=e||{},a=!1;return(t||n||r)&&(a=!0),!t&&i&&(a=!1),a})})},Pp=()=>{Np({},{inTriggerContext:!1});let e=h(Mp,{shouldRender:O(()=>!1),inTriggerContext:!1});return{shouldRender:O(()=>e.shouldRender.value||e.inTriggerContext===!1)}},Fp=N({compatConfig:{MODE:3},name:`Portal`,inheritAttrs:!1,props:{getContainer:Dp.func.isRequired,didUpdate:Function},setup(e,t){let{slots:n}=t,r=!0,i,{shouldRender:a}=Pp();function o(){a.value&&(i=e.getContainer())}St(()=>{r=!1,o()}),T(()=>{i||o()});let s=k(a,()=>{a.value&&!i&&(i=e.getContainer()),i&&s()});return Se(()=>{Tt(()=>{var t;a.value&&((t=e.didUpdate)==null||t.call(e,e))})}),()=>a.value?r?n.default?.call(n):i?P($t,{to:i},n):null:null}}),Ip=Symbol(`iconContext`),Lp=function(){return h(Ip,{prefixCls:A(`anticon`),rootClassName:A(``),csp:A()})};function Rp(){return!!(typeof window<`u`&&window.document&&window.document.createElement)}function zp(e,t){return e&&e.contains?e.contains(t):!1}var Bp=`data-vc-order`,Vp=`vc-icon-key`,Hp=new Map;function Up(){var e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).mark;return e?e.startsWith(`data-`)?e:`data-${e}`:Vp}function Wp(e){return e.attachTo?e.attachTo:document.querySelector(`head`)||document.body}function Gp(e){return e===`queue`?`prependQueue`:e?`prepend`:`append`}function Kp(e){return Array.from((Hp.get(e)||e).children).filter(function(e){return e.tagName===`STYLE`})}function qp(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Rp())return null;var n=t.csp,r=t.prepend,i=document.createElement(`style`);i.setAttribute(Bp,Gp(r)),n&&n.nonce&&(i.nonce=n.nonce),i.innerHTML=e;var a=Wp(t),o=a.firstChild;if(r){if(r===`queue`){var s=Kp(a).filter(function(e){return[`prepend`,`prependQueue`].includes(e.getAttribute(Bp))});if(s.length)return a.insertBefore(i,s[s.length-1].nextSibling),i}a.insertBefore(i,o)}else a.appendChild(i);return i}function Jp(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Kp(Wp(t)).find(function(n){return n.getAttribute(Up(t))===e})}function Yp(e,t){var n=Hp.get(e);if(!n||!zp(document,n)){var r=qp(``,t),i=r.parentNode;Hp.set(e,i),e.removeChild(r)}}function Xp(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Yp(Wp(n),n);var r=Jp(t,n);if(r)return n.csp&&n.csp.nonce&&r.nonce!==n.csp.nonce&&(r.nonce=n.csp.nonce),r.innerHTML!==e&&(r.innerHTML=e),r;var i=qp(e,n);return i.setAttribute(Up(n),t),i}function Zp(e){for(var t=1;t * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`;function am(e){return e&&e.getRootNode&&e.getRootNode()}function om(e){return Rp()?am(e)instanceof ShadowRoot:!1}function sm(e){return om(e)?am(e):null}var cm=function(){var e=Lp(),t=e.prefixCls,n=e.csp,r=Te(),i=im;t&&(i=i.replace(/anticon/g,t.value)),Tt(function(){if(Rp()){var e=r.vnode.el,t=sm(e);Xp(i,`@ant-design-vue-icons`,{prepend:!0,csp:n.value,attachTo:t})}})},lm=[`icon`,`primaryColor`,`secondaryColor`];function um(e,t){if(e==null)return{};var n=dm(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function dm(e,t){if(e==null)return{};for(var n={},r=Object.keys(e),i,a=0;a=0)&&(n[i]=e[i]);return n}function fm(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lm(e,t){if(e==null)return{};for(var n={},r=Object.keys(e),i,a=0;a=0)&&(n[i]=e[i]);return n}wm(Bd.primary);var Y=function(e,t){var n,r=Pm({},e,t.attrs),i=r.class,a=r.icon,o=r.spin,s=r.rotate,c=r.tabindex,l=r.twoToneColor,u=r.onClick,d=Im(r,Dm),f=Lp(),p=f.prefixCls,m=f.rootClassName,h=(n={},Fm(n,m.value,!!m.value),Fm(n,p.value,!0),Fm(n,`${p.value}-${a.name}`,!!a.name),Fm(n,`${p.value}-spin`,!!o||a.name===`loading`),n),g=c;g===void 0&&u&&(g=-1);var _=s?{msTransform:`rotate(${s}deg)`,transform:`rotate(${s}deg)`}:void 0,v=Om(rm(l),2),y=v[0],b=v[1];return P(`span`,Pm({role:`img`,"aria-label":a.name},d,{onClick:u,class:[h,i],tabindex:g}),[P(_m,{icon:a,primaryColor:y,secondaryColor:b,style:_},null),P(Em,null,null)])};Y.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:[String,Array]},Y.displayName=`AntdIcon`,Y.inheritAttrs=!1,Y.getTwoToneColor=Tm,Y.setTwoToneColor=wm;var Rm={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z`}}]},name:`loading`,theme:`outlined`};function zm(e){for(var t=1;te.locale,e=>{Th(e&&e.Modal),r.antLocale=I(I({},e),{exist:!0})},{immediate:!0}),()=>n.default?.call(n)}});Dh.install=function(e){return e.component(Dh.name,Dh),e};var Oh=gc(Dh),kh=N({name:`Notice`,inheritAttrs:!1,props:[`prefixCls`,`duration`,`updateMark`,`noticeKey`,`closeIcon`,`closable`,`props`,`onClick`,`onClose`,`holder`,`visible`],setup(e,t){let{attrs:n,slots:r}=t,i,a=!1,o=O(()=>e.duration===void 0?4.5:e.duration),s=()=>{o.value&&!a&&(i=setTimeout(()=>{l()},o.value*1e3))},c=()=>{i&&=(clearTimeout(i),null)},l=t=>{t&&t.stopPropagation(),c();let{onClose:n,noticeKey:r}=e;n&&n(r)},u=()=>{c(),s()};return T(()=>{s()}),oe(()=>{a=!0,c()}),k([o,()=>e.updateMark,()=>e.visible],(e,t)=>{let[n,r,i]=e,[a,o,s]=t;(n!==a||r!==o||i!==s&&s)&&u()},{flush:`post`}),()=>{let{prefixCls:t,closable:i,closeIcon:a=r.closeIcon?.call(r),onClick:o,holder:u}=e,{class:d,style:f}=n,p=`${t}-notice`,m=Object.keys(n).reduce((e,t)=>((t.startsWith(`data-`)||t.startsWith(`aria-`)||t===`role`)&&(e[t]=n[t]),e),{}),h=P(`div`,F({class:L(p,d,{[`${p}-closable`]:i}),style:f,onMouseenter:c,onMouseleave:s,onClick:o},m),[P(`div`,{class:`${p}-content`},[r.default?.call(r)]),i?P(`a`,{tabindex:0,onClick:l,class:`${p}-close`},[a||P(`span`,{class:`${p}-close-x`},null)]):null]);return u?P($t,{to:u},{default:()=>h}):h}}}),Ah=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{prefixCls:t,animation:n=`fade`}=e,r=e.transitionName;return!r&&n&&(r=`${t}-${n}`),Ap(r)}),l=(t,n)=>{let r=t.key||Nh(),i=I(I({},t),{key:r}),{maxCount:a}=e,o=s.value.map(e=>e.notice.key).indexOf(r),c=s.value.concat();o===-1?(a&&s.value.length>=a&&(i.key=c[0].notice.key,i.updateMark=Nh(),i.userPassKey=r,c.shift()),c.push({notice:i,holderCallback:n})):c.splice(o,1,{notice:i,holderCallback:n}),s.value=c},u=e=>{s.value=Lt(s.value).filter(t=>{let{notice:{key:n,userPassKey:r}}=t;return(r||n)!==e})};return i({add:l,remove:u,notices:s}),()=>{let{prefixCls:t,closeIcon:i=a.closeIcon?.call(a,{prefixCls:t})}=e,l=s.value.map((n,r)=>{let{notice:a,holderCallback:c}=n,l=r===s.value.length-1?a.updateMark:void 0,{key:d,userPassKey:f}=a,{content:p}=a,m=I(I(I({prefixCls:t,closeIcon:typeof i==`function`?i({prefixCls:t}):i},a),a.props),{key:d,noticeKey:f||d,updateMark:l,onClose:e=>{var t;u(e),(t=a.onClose)==null||t.call(a)},onClick:a.onClick});return c?P(`div`,{key:d,class:`${t}-hook-holder`,ref:e=>{d!==void 0&&(e?(o.set(d,e),c(e,m)):o.delete(d))}},null):P(kh,F(F({},m),{},{class:L(m.class,e.hashId)}),{default:()=>[typeof p==`function`?p({prefixCls:t}):p]})}),d={[t]:1,[r.class]:!!r.class,[e.hashId]:!0};return P(`div`,{class:d,style:r.style||{top:`65px`,left:`50%`}},[P(n,F({tag:`div`},c.value),{default:()=>[l]})])}}});Ph.newInstance=function(e,t){let n=e||{},{name:r=`notification`,getContainer:i,appContext:a,prefixCls:o,rootPrefixCls:s,transitionName:c,hasTransitionName:l,useStyle:u}=n,d=Ah(n,[`name`,`getContainer`,`appContext`,`prefixCls`,`rootPrefixCls`,`transitionName`,`hasTransitionName`,`useStyle`]),f=document.createElement(`div`);i?i().appendChild(f):document.body.appendChild(f);let p=N({compatConfig:{MODE:3},name:`NotificationWrapper`,setup(e,n){let{attrs:i}=n,a=E(),d=O(()=>Z.getPrefixCls(r,o)),[,p]=u(d);return T(()=>{t({notice(e){var t;(t=a.value)==null||t.add(e)},removeNotice(e){var t;(t=a.value)==null||t.remove(e)},destroy(){Mt(null,f),f.parentNode&&f.parentNode.removeChild(f)},component:a})}),()=>{let e=Z,t=e.getRootPrefixCls(s,d.value),n=l?c:`${d.value}-${c}`;return P(s_,F(F({},e),{},{prefixCls:t}),{default:()=>[P(Ph,F(F({ref:a},i),{},{prefixCls:d.value,transitionName:n,hashId:p.value}),null)]})}}}),m=P(p,d);m.appContext=a||m.appContext,Mt(m,f)};var Fh=0,Ih=Date.now();function Lh(){let e=Fh;return Fh+=1,`rcNotification_${Ih}_${e}`}var Rh=N({name:`HookNotification`,inheritAttrs:!1,props:[`prefixCls`,`transitionName`,`animation`,`maxCount`,`closeIcon`,`hashId`,`remove`,`notices`,`getStyles`,`getClassName`,`onAllRemoved`,`getContainer`],setup(e,t){let{attrs:r,slots:i}=t,a=new Map,o=O(()=>e.notices),s=O(()=>{let t=e.transitionName;if(!t&&e.animation)switch(typeof e.animation){case`string`:t=e.animation;break;case`function`:t=e.animation().name;break;case`object`:t=e.animation.name;break;default:t=`${e.prefixCls}-fade`}return Ap(t)}),c=t=>e.remove(t),l=A({});k(o,()=>{let t={};Object.keys(l.value).forEach(e=>{t[e]=[]}),e.notices.forEach(e=>{let{placement:n=`topRight`}=e.notice;n&&(t[n]=t[n]||[],t[n].push(e))}),l.value=t});let u=O(()=>Object.keys(l.value));return()=>{let{prefixCls:t,closeIcon:d=i.closeIcon?.call(i,{prefixCls:t})}=e,f=u.value.map(i=>{let u=l.value[i],f=e.getClassName?.call(e,i),p=e.getStyles?.call(e,i),m=u.map((n,r)=>{let{notice:i,holderCallback:s}=n,l=r===o.value.length-1?i.updateMark:void 0,{key:u,userPassKey:f}=i,{content:p}=i,m=I(I(I({prefixCls:t,closeIcon:typeof d==`function`?d({prefixCls:t}):d},i),i.props),{key:u,noticeKey:f||u,updateMark:l,onClose:e=>{var t;c(e),(t=i.onClose)==null||t.call(i)},onClick:i.onClick});return s?P(`div`,{key:u,class:`${t}-hook-holder`,ref:e=>{u!==void 0&&(e?(a.set(u,e),s(e,m)):a.delete(u))}},null):P(kh,F(F({},m),{},{class:L(m.class,e.hashId)}),{default:()=>[typeof p==`function`?p({prefixCls:t}):p]})}),h={[t]:1,[`${t}-${i}`]:1,[r.class]:!!r.class,[e.hashId]:!0,[f]:!!f};function g(){var t;u.length>0||(Reflect.deleteProperty(l.value,i),(t=e.onAllRemoved)==null||t.call(e))}return P(`div`,{key:i,class:h,style:r.style||p||{top:`65px`,left:`50%`}},[P(n,F(F({tag:`div`},s.value),{},{onAfterLeave:g}),{default:()=>[m]})])});return P(Fp,{getContainer:e.getContainer},{default:()=>[f]})}}}),zh=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);idocument.body,Vh=0;function Hh(){let e={};return[...arguments].forEach(t=>{t&&Object.keys(t).forEach(n=>{let r=t[n];r!==void 0&&(e[n]=r)})}),e}function Uh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{getContainer:t=Bh,motion:n,prefixCls:r,maxCount:i,getClassName:a,getStyles:o,onAllRemoved:s}=e,c=zh(e,[`getContainer`,`motion`,`prefixCls`,`maxCount`,`getClassName`,`getStyles`,`onAllRemoved`]),l=E([]),u=E(),d=(e,t)=>{let n=e.key||Lh(),r=I(I({},e),{key:n}),a=l.value.map(e=>e.notice.key).indexOf(n),o=l.value.concat();a===-1?(i&&l.value.length>=i&&(r.key=o[0].notice.key,r.updateMark=Lh(),r.userPassKey=n,o.shift()),o.push({notice:r,holderCallback:t})):o.splice(a,1,{notice:r,holderCallback:t}),l.value=o},f=e=>{l.value=l.value.filter(t=>{let{notice:{key:n,userPassKey:r}}=t;return(r||n)!==e})},p=()=>{l.value=[]},m=()=>P(Rh,{ref:u,prefixCls:r,maxCount:i,notices:l.value,remove:f,getClassName:a,getStyles:o,animation:n,hashId:e.hashId,onAllRemoved:s,getContainer:t},null),h=E([]);return k(h,()=>{h.value.length&&(h.value.forEach(e=>{switch(e.type){case`open`:d(e.config);break;case`close`:f(e.key);break;case`destroy`:p()}}),h.value=[])}),[{open:e=>{let t=Hh(c,e);(t.key===null||t.key===void 0)&&(t.key=`vc-notification-${Vh}`,Vh+=1),h.value=[...h.value,{type:`open`,config:t}]},close:e=>{h.value=[...h.value,{type:`close`,key:e}]},destroy:()=>{h.value=[...h.value,{type:`destroy`}]}},m]}var Wh=Ph,Gh=e=>{let{componentCls:t,iconCls:n,boxShadowSecondary:r,colorBgElevated:i,colorSuccess:a,colorError:o,colorWarning:s,colorInfo:c,fontSizeLG:l,motionEaseInOutCirc:u,motionDurationSlow:d,marginXS:f,paddingXS:p,borderRadiusLG:m,zIndexPopup:h,messageNoticeContentPadding:g}=e,_=new Xu(`MessageMoveIn`,{"0%":{padding:0,transform:`translateY(-100%)`,opacity:0},"100%":{padding:p,transform:`translateY(0)`,opacity:1}}),v=new Xu(`MessageMoveOut`,{"0%":{maxHeight:e.height,padding:p,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}});return[{[t]:I(I({},of(e)),{position:`fixed`,top:f,left:`50%`,transform:`translateX(-50%)`,width:`100%`,pointerEvents:`none`,zIndex:h,[`${t}-move-up`]:{animationFillMode:`forwards`},[` + ${t}-move-up-appear, + ${t}-move-up-enter + `]:{animationName:_,animationDuration:d,animationPlayState:`paused`,animationTimingFunction:u},[` + ${t}-move-up-appear${t}-move-up-appear-active, + ${t}-move-up-enter${t}-move-up-enter-active + `]:{animationPlayState:`running`},[`${t}-move-up-leave`]:{animationName:v,animationDuration:d,animationPlayState:`paused`,animationTimingFunction:u},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:`running`},"&-rtl":{direction:`rtl`,span:{direction:`rtl`}}})},{[`${t}-notice`]:{padding:p,textAlign:`center`,[n]:{verticalAlign:`text-bottom`,marginInlineEnd:f,fontSize:l},[`${t}-notice-content`]:{display:`inline-block`,padding:g,background:i,borderRadius:m,boxShadow:r,pointerEvents:`all`},[`${t}-success ${n}`]:{color:a},[`${t}-error ${n}`]:{color:o},[`${t}-warning ${n}`]:{color:s},[` + ${t}-info ${n}, + ${t}-loading ${n}`]:{color:c}}},{[`${t}-notice-pure-panel`]:{padding:0,textAlign:`start`}}]},Kh=pf(`Message`,e=>[Gh(gf(e,{messageNoticeContentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`}))],e=>({height:150,zIndexPopup:e.zIndexPopupBase+10})),qh={info:P(Ch,null,null),success:P(hh,null,null),error:P(Ym,null,null),warning:P(yh,null,null),loading:P(Vm,null,null)},Jh=N({name:`PureContent`,inheritAttrs:!1,props:[`prefixCls`,`type`,`icon`],setup(e,t){let{slots:n}=t;return()=>P(`div`,{class:L(`${e.prefixCls}-custom-content`,`${e.prefixCls}-${e.type}`)},[e.icon||qh[e.type],P(`span`,null,[n.default?.call(n)])])}});N({name:`PurePanel`,inheritAttrs:!1,props:[`prefixCls`,`class`,`type`,`icon`,`content`],setup(e,t){let{slots:n,attrs:r}=t,{getPrefixCls:i}=jc(),a=O(()=>e.prefixCls||i(`message`)),[,o]=Kh(a);return P(kh,F(F({},r),{},{prefixCls:a.value,class:L(o.value,`${a.value}-notice-pure-panel`),noticeKey:`pure`,duration:null}),{default:()=>[P(Jh,{prefixCls:a.value,type:e.type,icon:e.icon},{default:()=>[n.default?.call(n)]})]})}});var Yh=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ir(`message`,e.prefixCls)),[,o]=Kh(a),s=()=>{let t=e.top??Xh;return{left:`50%`,transform:`translateX(-50%)`,top:typeof t==`number`?`${t}px`:t}},c=()=>L(o.value,e.rtl?`${a.value}-rtl`:``),l=()=>Op({prefixCls:a.value,animation:e.animation??`move-up`,transitionName:e.transitionName}),u=P(`span`,{class:`${a.value}-close-x`},[P(Gm,{class:`${a.value}-close-icon`},null)]),[d,f]=Uh({getStyles:s,prefixCls:a.value,getClassName:c,motion:l,closable:!1,closeIcon:u,duration:e.duration??Zh,getContainer:e.staticGetContainer??i.value,maxCount:e.maxCount,onAllRemoved:e.onAllRemoved});return n(I(I({},d),{prefixCls:a,hashId:o})),f}}),$h=0;function eg(e){let t=E(null),n=Symbol(`messageHolderKey`),r=e=>{var n;(n=t.value)==null||n.close(e)},i=e=>{if(!t.value){let e=()=>{};return e.then=()=>{},e}let{open:n,prefixCls:i,hashId:a}=t.value,o=`${i}-notice`,{content:s,icon:c,type:l,key:u,class:d,onClose:f}=e,p=Yh(e,[`content`,`icon`,`type`,`key`,`class`,`onClose`]),m=u;return m??=($h+=1,`antd-message-${$h}`),Zs(e=>(n(I(I({},p),{key:m,content:()=>P(Jh,{prefixCls:i,type:l,icon:typeof c==`function`?c():c},{default:()=>[typeof s==`function`?s():s]}),placement:`top`,class:L(l&&`${o}-${l}`,a,d),onClose:()=>{f?.(),e()}})),()=>{r(m)}))},a={open:i,destroy:e=>{var n;e===void 0?(n=t.value)==null||n.destroy():r(e)}};return[`info`,`success`,`warning`,`error`,`loading`].forEach(e=>{a[e]=(t,n,r)=>{let a;a=t&&typeof t==`object`&&`content`in t?t:{content:t};let o,s;typeof n==`function`?s=n:(o=n,s=r);let c=I(I({onClose:s,duration:o},a),{type:e});return i(c)}}),[a,()=>P(Qh,F(F({key:n},e),{},{ref:t}),null)]}function tg(e){return eg(e)}var ng=3,rg,X,ig=1,ag=``,og=`move-up`,sg=!1,cg=()=>document.body,lg,ug=!1;function dg(){return ig++}function fg(e){e.top!==void 0&&(rg=e.top,X=null),e.duration!==void 0&&(ng=e.duration),e.prefixCls!==void 0&&(ag=e.prefixCls),e.getContainer!==void 0&&(cg=e.getContainer,X=null),e.transitionName!==void 0&&(og=e.transitionName,X=null,sg=!0),e.maxCount!==void 0&&(lg=e.maxCount,X=null),e.rtl!==void 0&&(ug=e.rtl)}function pg(e,t){X?t(X):Wh.newInstance({appContext:e.appContext,prefixCls:e.prefixCls||ag,rootPrefixCls:e.rootPrefixCls,transitionName:og,hasTransitionName:sg,style:{top:rg},getContainer:cg||e.getPopupContainer,maxCount:lg,name:`message`,useStyle:Kh},e=>{X?t(X):(X=e,t(e))})}var mg={info:Ch,success:hh,error:Ym,warning:yh,loading:Vm},hg=Object.keys(mg);function gg(e){let t=e.duration===void 0?ng:e.duration,n=e.key||dg(),r=new Promise(r=>{let i=()=>(typeof e.onClose==`function`&&e.onClose(),r(!0));pg(e,r=>{r.notice({key:n,duration:t,style:e.style||{},class:e.class,content:t=>{let{prefixCls:n}=t,r=mg[e.type],i=r?P(r,null,null):``,a=L(`${n}-custom-content`,{[`${n}-${e.type}`]:e.type,[`${n}-rtl`]:ug===!0});return P(`div`,{class:a},[typeof e.icon==`function`?e.icon():e.icon||i,P(`span`,null,[typeof e.content==`function`?e.content():e.content])])},onClose:i,onClick:e.onClick})})}),i=()=>{X&&X.removeNotice(n)};return i.then=(e,t)=>r.then(e,t),i.promise=r,i}function _g(e){return Object.prototype.toString.call(e)===`[object Object]`&&!!e.content}var vg={open:gg,config:fg,destroy(e){if(X){if(e){let{removeNotice:t}=X;t(e)}else{let{destroy:e}=X;e(),X=null}}}};function yg(e,t){e[t]=(n,r,i)=>_g(n)?e.open(I(I({},n),{type:t})):(typeof r==`function`&&(i=r,r=void 0),e.open({content:n,duration:r,type:t,onClose:i}))}hg.forEach(e=>yg(vg,e)),vg.warn=vg.warning,vg.useMessage=tg;var bg=e=>{let{componentCls:t,width:n,notificationMarginEdge:r}=e,i=new Xu(`antNotificationTopFadeIn`,{"0%":{marginTop:`-100%`,opacity:0},"100%":{marginTop:0,opacity:1}}),a=new Xu(`antNotificationBottomFadeIn`,{"0%":{marginBottom:`-100%`,opacity:0},"100%":{marginBottom:0,opacity:1}}),o=new Xu(`antNotificationLeftFadeIn`,{"0%":{right:{_skip_check_:!0,value:n},opacity:0},"100%":{right:{_skip_check_:!0,value:0},opacity:1}});return{[`&${t}-top, &${t}-bottom`]:{marginInline:0},[`&${t}-top`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:i}},[`&${t}-bottom`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:a}},[`&${t}-topLeft, &${t}-bottomLeft`]:{marginInlineEnd:0,marginInlineStart:r,[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:o}}}},xg=e=>{let{iconCls:t,componentCls:n,boxShadowSecondary:r,fontSizeLG:i,notificationMarginBottom:a,borderRadiusLG:o,colorSuccess:s,colorInfo:c,colorWarning:l,colorError:u,colorTextHeading:d,notificationBg:f,notificationPadding:p,notificationMarginEdge:m,motionDurationMid:h,motionEaseInOut:g,fontSize:_,lineHeight:v,width:y,notificationIconSize:b}=e,x=`${n}-notice`,S=new Xu(`antNotificationFadeIn`,{"0%":{left:{_skip_check_:!0,value:y},opacity:0},"100%":{left:{_skip_check_:!0,value:0},opacity:1}}),C=new Xu(`antNotificationFadeOut`,{"0%":{maxHeight:e.animationMaxHeight,marginBottom:a,opacity:1},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[n]:I(I(I(I({},of(e)),{position:`fixed`,zIndex:e.zIndexPopup,marginInlineEnd:m,[`${n}-hook-holder`]:{position:`relative`},[`&${n}-top, &${n}-bottom`]:{[`${n}-notice`]:{marginInline:`auto auto`}},[`&${n}-topLeft, &${n}-bottomLeft`]:{[`${n}-notice`]:{marginInlineEnd:`auto`,marginInlineStart:0}},[`${n}-fade-enter, ${n}-fade-appear`]:{animationDuration:e.motionDurationMid,animationTimingFunction:g,animationFillMode:`both`,opacity:0,animationPlayState:`paused`},[`${n}-fade-leave`]:{animationTimingFunction:g,animationFillMode:`both`,animationDuration:h,animationPlayState:`paused`},[`${n}-fade-enter${n}-fade-enter-active, ${n}-fade-appear${n}-fade-appear-active`]:{animationName:S,animationPlayState:`running`},[`${n}-fade-leave${n}-fade-leave-active`]:{animationName:C,animationPlayState:`running`}}),bg(e)),{"&-rtl":{direction:`rtl`,[`${n}-notice-btn`]:{float:`left`}}})},{[x]:{position:`relative`,width:y,maxWidth:`calc(100vw - ${m*2}px)`,marginBottom:a,marginInlineStart:`auto`,padding:p,overflow:`hidden`,lineHeight:v,wordWrap:`break-word`,background:f,borderRadius:o,boxShadow:r,[`${n}-close-icon`]:{fontSize:_,cursor:`pointer`},[`${x}-message`]:{marginBottom:e.marginXS,color:d,fontSize:i,lineHeight:e.lineHeightLG},[`${x}-description`]:{fontSize:_},[`&${x}-closable ${x}-message`]:{paddingInlineEnd:e.paddingLG},[`${x}-with-icon ${x}-message`]:{marginBottom:e.marginXS,marginInlineStart:e.marginSM+b,fontSize:i},[`${x}-with-icon ${x}-description`]:{marginInlineStart:e.marginSM+b,fontSize:_},[`${x}-icon`]:{position:`absolute`,fontSize:b,lineHeight:0,[`&-success${t}`]:{color:s},[`&-info${t}`]:{color:c},[`&-warning${t}`]:{color:l},[`&-error${t}`]:{color:u}},[`${x}-close`]:{position:`absolute`,top:e.notificationPaddingVertical,insetInlineEnd:e.notificationPaddingHorizontal,color:e.colorIcon,outline:`none`,width:e.notificationCloseButtonSize,height:e.notificationCloseButtonSize,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:`flex`,alignItems:`center`,justifyContent:`center`,"&:hover":{color:e.colorIconHover,backgroundColor:e.wireframe?`transparent`:e.colorFillContent}},[`${x}-btn`]:{float:`right`,marginTop:e.marginSM}}},{[`${x}-pure-panel`]:{margin:0}}]},Sg=pf(`Notification`,e=>{let t=e.paddingMD,n=e.paddingLG;return[xg(gf(e,{notificationBg:e.colorBgElevated,notificationPaddingVertical:t,notificationPaddingHorizontal:n,notificationPadding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`,notificationMarginBottom:e.margin,notificationMarginEdge:e.marginLG,animationMaxHeight:150,notificationIconSize:e.fontSizeLG*e.lineHeightLG,notificationCloseButtonSize:e.controlHeightLG*.55}))]},e=>({zIndexPopup:e.zIndexPopupBase+50,width:384}));function Cg(e,t){return t||P(`span`,{class:`${e}-close-x`},[P(Gm,{class:`${e}-close-icon`},null)])}P(Ch,null,null),P(hh,null,null),P(Ym,null,null),P(yh,null,null),P(Vm,null,null);var wg={success:hh,info:Ch,error:Ym,warning:yh};function Tg(e){let{prefixCls:t,icon:n,type:r,message:i,description:a,btn:o}=e,s=null;if(n)s=P(`span`,{class:`${t}-icon`},[Xs(n)]);else if(r){let e=wg[r];s=P(e,{class:`${t}-icon ${t}-icon-${r}`},null)}return P(`div`,{class:L({[`${t}-with-icon`]:s}),role:`alert`},[s,P(`div`,{class:`${t}-message`},[i]),P(`div`,{class:`${t}-description`},[a]),o&&P(`div`,{class:`${t}-btn`},[o])])}N({name:`PurePanel`,inheritAttrs:!1,props:[`prefixCls`,`icon`,`type`,`message`,`description`,`btn`,`closeIcon`],setup(e){let{getPrefixCls:t}=zf(`notification`,e),n=O(()=>e.prefixCls||t(`notification`)),r=O(()=>`${n.value}-notice`),[,i]=Sg(n);return()=>P(kh,F(F({},e),{},{prefixCls:n.value,class:L(i.value,`${r.value}-pure-panel`),noticeKey:`pure`,duration:null,closable:e.closable,closeIcon:Cg(n.value,e.closeIcon)}),{default:()=>[P(Tg,{prefixCls:r.value,icon:e.icon,type:e.type,message:e.message,description:e.description,btn:e.btn},null)]})}});function Eg(e,t,n){let r;switch(t=typeof t==`number`?`${t}px`:t,n=typeof n==`number`?`${n}px`:n,e){case`top`:r={left:`50%`,transform:`translateX(-50%)`,right:`auto`,top:t,bottom:`auto`};break;case`topLeft`:r={left:0,top:t,bottom:`auto`};break;case`topRight`:r={right:0,top:t,bottom:`auto`};break;case`bottom`:r={left:`50%`,transform:`translateX(-50%)`,right:`auto`,top:`auto`,bottom:n};break;case`bottomLeft`:r={left:0,top:`auto`,bottom:n};break;default:r={right:0,top:`auto`,bottom:n}}return r}function Dg(e){return{name:`${e}-fade`}}var Og=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.prefixCls||r(`notification`)),o=t=>Eg(t,e.top??kg,e.bottom??kg),[,s]=Sg(a),[c,l]=Uh({prefixCls:a.value,getStyles:o,getClassName:()=>L(s.value,{[`${a.value}-rtl`]:e.rtl}),motion:()=>Dg(a.value),closable:!0,closeIcon:Cg(a.value),duration:Ag,getContainer:()=>e.getPopupContainer?.call(e)||i.value?.call(i)||document.body,maxCount:e.maxCount,hashId:s.value,onAllRemoved:e.onAllRemoved});return n(I(I({},c),{prefixCls:a.value,hashId:s})),l}});function Mg(e){let t=E(null),n=Symbol(`notificationHolderKey`),r=e=>{if(!t.value)return;let{open:n,prefixCls:r,hashId:i}=t.value,a=`${r}-notice`,{message:o,description:s,icon:c,type:l,btn:u,class:d}=e,f=Og(e,[`message`,`description`,`icon`,`type`,`btn`,`class`]);return n(I(I({placement:`topRight`},f),{content:()=>P(Tg,{prefixCls:a,icon:typeof c==`function`?c():c,type:l,message:typeof o==`function`?o():o,description:typeof s==`function`?s():s,btn:typeof u==`function`?u():u},null),class:L(l&&`${a}-${l}`,i,d)}))},i={open:r,destroy:e=>{var n,r;e===void 0?(r=t.value)==null||r.destroy():(n=t.value)==null||n.close(e)}};return[`success`,`info`,`warning`,`error`].forEach(e=>{i[e]=t=>r(I(I({},t),{type:e}))}),[i,()=>P(jg,F(F({key:n},e),{},{ref:t}),null)]}function Ng(e){return Mg(e)}var Pg={},Fg=4.5,Ig=`24px`,Lg=`24px`,Rg=``,zg=`topRight`,Bg=()=>document.body,Vg=null,Hg=!1,Ug;function Wg(e){let{duration:t,placement:n,bottom:r,top:i,getContainer:a,closeIcon:o,prefixCls:s}=e;s!==void 0&&(Rg=s),t!==void 0&&(Fg=t),n!==void 0&&(zg=n),r!==void 0&&(Lg=typeof r==`number`?`${r}px`:r),i!==void 0&&(Ig=typeof i==`number`?`${i}px`:i),a!==void 0&&(Bg=a),o!==void 0&&(Vg=o),e.rtl!==void 0&&(Hg=e.rtl),e.maxCount!==void 0&&(Ug=e.maxCount)}function Gg(e,t){let{prefixCls:n,placement:r=zg,getContainer:i=Bg,top:a,bottom:o,closeIcon:s=Vg,appContext:c}=e,{getPrefixCls:l}=o_(),u=l(`notification`,n||Rg),d=`${u}-${r}-${Hg}`,f=Pg[d];if(f){Promise.resolve(f).then(e=>{t(e)});return}let p=L(`${u}-${r}`,{[`${u}-rtl`]:Hg===!0});Wh.newInstance({name:`notification`,prefixCls:n||Rg,useStyle:Sg,class:p,style:Eg(r,a??Ig,o??Lg),appContext:c,getContainer:i,closeIcon:e=>{let{prefixCls:t}=e;return P(`span`,{class:`${t}-close-x`},[Xs(s,{},P(Gm,{class:`${t}-close-icon`},null))])},maxCount:Ug,hasTransitionName:!0},e=>{Pg[d]=e,t(e)})}var Kg={success:$m,info:sh,error:dh,warning:rh};function qg(e){let{icon:t,type:n,description:r,message:i,btn:a}=e,o=e.duration===void 0?Fg:e.duration;Gg(e,s=>{s.notice({content:e=>{let{prefixCls:o}=e,s=`${o}-notice`,c=null;if(t)c=()=>P(`span`,{class:`${s}-icon`},[Xs(t)]);else if(n){let e=Kg[n];c=()=>P(e,{class:`${s}-icon ${s}-icon-${n}`},null)}return P(`div`,{class:c?`${s}-with-icon`:``},[c&&c(),P(`div`,{class:`${s}-message`},[!r&&c?P(`span`,{class:`${s}-message-single-line-auto-margin`},null):null,Xs(i)]),P(`div`,{class:`${s}-description`},[Xs(r)]),a?P(`span`,{class:`${s}-btn`},[Xs(a)]):null])},duration:o,closable:!0,onClose:e.onClose,onClick:e.onClick,key:e.key,style:e.style||{},class:e.class})})}var Jg={open:qg,close(e){Object.keys(Pg).forEach(t=>Promise.resolve(Pg[t]).then(t=>{t.removeNotice(e)}))},config:Wg,destroy(){Object.keys(Pg).forEach(e=>{Promise.resolve(Pg[e]).then(e=>{e.destroy()}),delete Pg[e]})}};[`success`,`info`,`warning`,`error`].forEach(e=>{Jg[e]=t=>Jg.open(I(I({},t),{type:e}))}),Jg.warn=Jg.warning,Jg.useNotification=Ng;var Yg=`-ant-${Date.now()}-${Math.random()}`;function Xg(e,t){let n={},r=(e,t)=>{let n=e.clone();return n=t?.(n)||n,n.toRgbString()},i=(e,t)=>{let i=new G(e),a=Ld(i.toRgbString());n[`${t}-color`]=r(i),n[`${t}-color-disabled`]=a[1],n[`${t}-color-hover`]=a[4],n[`${t}-color-active`]=a[6],n[`${t}-color-outline`]=i.clone().setAlpha(.2).toRgbString(),n[`${t}-color-deprecated-bg`]=a[0],n[`${t}-color-deprecated-border`]=a[2]};if(t.primaryColor){i(t.primaryColor,`primary`);let e=new G(t.primaryColor),a=Ld(e.toRgbString());a.forEach((e,t)=>{n[`primary-${t+1}`]=e}),n[`primary-color-deprecated-l-35`]=r(e,e=>e.lighten(35)),n[`primary-color-deprecated-l-20`]=r(e,e=>e.lighten(20)),n[`primary-color-deprecated-t-20`]=r(e,e=>e.tint(20)),n[`primary-color-deprecated-t-50`]=r(e,e=>e.tint(50)),n[`primary-color-deprecated-f-12`]=r(e,e=>e.setAlpha(e.getAlpha()*.12));let o=new G(a[0]);n[`primary-color-active-deprecated-f-30`]=r(o,e=>e.setAlpha(e.getAlpha()*.3)),n[`primary-color-active-deprecated-d-02`]=r(o,e=>e.darken(2))}return t.successColor&&i(t.successColor,`success`),t.warningColor&&i(t.warningColor,`warning`),t.errorColor&&i(t.errorColor,`error`),t.infoColor&&i(t.infoColor,`info`),` + :root { + ${Object.keys(n).map(t=>`--${e}-${t}: ${n[t]};`).join(` +`)} + } + `.trim()}function Zg(e,t){let n=Xg(e,t);al()?vl(n,`${Yg}-dynamic-theme`):Sl(!1,`ConfigProvider`,`SSR do not support dynamic theme with css variables.`)}var Qg=e=>{let[t,n]=Ef();return Yu(O(()=>({theme:t.value,token:n.value,hashId:``,path:[`ant-design-icons`,e.value]})),()=>[{[`.${e.value}`]:I(I({},sf()),{[`.${e.value} .${e.value}-icon`]:{display:`block`}})}])};function $g(e,t){let n=O(()=>e?.value||{}),r=O(()=>n.value.inherit===!1||!t?.value?xf:t.value);return O(()=>{if(!e?.value)return t?.value;let i=I({},r.value.components);return Object.keys(e.value.components||{}).forEach(t=>{i[t]=I(I({},i[t]),e.value.components[t])}),I(I(I({},r.value),n.value),{token:I(I({},r.value.token),n.value.token),components:i})})}var e_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{I(Z,r_),Z.prefixCls=t_(),Z.iconPrefixCls=n_(),Z.getPrefixCls=(e,t)=>t||(e?`${Z.prefixCls}-${e}`:Z.prefixCls),Z.getRootPrefixCls=()=>Z.prefixCls?Z.prefixCls:t_()});var i_,a_=e=>{i_&&i_(),i_=ne(()=>{I(r_,Nt(e)),I(Z,Nt(e))}),e.theme&&Zg(t_(),e.theme)},o_=()=>({getPrefixCls:(e,t)=>t||(e?`${t_()}-${e}`:t_()),getIconPrefixCls:n_,getRootPrefixCls:()=>Z.prefixCls?Z.prefixCls:t_()}),s_=N({compatConfig:{MODE:3},name:`AConfigProvider`,inheritAttrs:!1,props:Oc(),setup(e,t){let{slots:n}=t,r=jc(),i=(t,n)=>{let{prefixCls:i=`ant`}=e;if(n)return n;let a=i||r.getPrefixCls(``);return t?`${a}-${t}`:a},a=O(()=>e.iconPrefixCls||r.iconPrefixCls.value||`anticon`),o=O(()=>a.value!==r.iconPrefixCls.value),s=O(()=>e.csp||r.csp?.value),c=Qg(a),l=$g(O(()=>e.theme),O(()=>r.theme?.value)),u=t=>(e.renderEmpty||n.renderEmpty||r.renderEmpty||Ff)(t),d=O(()=>e.autoInsertSpaceInButton??r.autoInsertSpaceInButton?.value),f=O(()=>e.locale||r.locale?.value);k(f,()=>{r_.locale=f.value},{immediate:!0});let p=O(()=>e.direction||r.direction?.value),m=O(()=>e.space??r.space?.value),h=O(()=>e.virtual??r.virtual?.value),g=O(()=>e.dropdownMatchSelectWidth??r.dropdownMatchSelectWidth?.value),_=O(()=>e.getTargetContainer===void 0?r.getTargetContainer?.value:e.getTargetContainer),v=O(()=>e.getPopupContainer===void 0?r.getPopupContainer?.value:e.getPopupContainer),y=O(()=>e.pageHeader===void 0?r.pageHeader?.value:e.pageHeader),b=O(()=>e.input===void 0?r.input?.value:e.input),x=O(()=>e.pagination===void 0?r.pagination?.value:e.pagination),S=O(()=>e.form===void 0?r.form?.value:e.form),C=O(()=>e.select===void 0?r.select?.value:e.select),w=O(()=>e.componentSize),T=O(()=>e.componentDisabled),ee=O(()=>e.wave??r.wave?.value),te={csp:s,autoInsertSpaceInButton:d,locale:f,direction:p,space:m,virtual:h,dropdownMatchSelectWidth:g,getPrefixCls:i,iconPrefixCls:a,theme:O(()=>l.value??r.theme?.value),renderEmpty:u,getTargetContainer:_,getPopupContainer:v,pageHeader:y,input:b,pagination:x,form:S,select:C,componentSize:w,componentDisabled:T,transformCellText:O(()=>e.transformCellText),wave:ee},re=O(()=>{let e=l.value||{},{algorithm:t,token:n}=e,r=e_(e,[`algorithm`,`token`]),i=t&&(!Array.isArray(t)||t.length>0)?El(t):void 0;return I(I({},r),{theme:i,token:I(I({},Wd),n)})}),ie=O(()=>{let t={};return f.value&&(t=f.value.Form?.defaultValidateMessages||Vc.Form?.defaultValidateMessages||{}),e.form&&e.form.validateMessages&&(t=I(I({},t),e.form.validateMessages)),t});Mc(te),Ec({validateMessages:ie}),Rf(w),Fc(T);let ae=t=>{let r=o.value?c(n.default?.call(n)):n.default?.call(n);if(e.theme){let e=function(){return r}();r=P(Tf,{value:re.value},{default:()=>[e]})}return P(Oh,{locale:f.value||t,ANT_MARK__:Eh},{default:()=>[r]})};return ne(()=>{p.value&&(vg.config({rtl:p.value===`rtl`}),Jg.config({rtl:p.value===`rtl`}))}),()=>P(Wc,{children:(e,t,n)=>ae(n)},null)}});s_.config=a_,s_.install=function(e){e.component(s_.name,s_)};var c_=(e,t)=>new G(e).setAlpha(t).toRgbString(),l_=(e,t)=>new G(e).lighten(t).toHexString(),u_=e=>{let t=Ld(e,{theme:`dark`});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},d_=(e,t)=>{let n=e||`#000`,r=t||`#fff`;return{colorBgBase:n,colorTextBase:r,colorText:c_(r,.85),colorTextSecondary:c_(r,.65),colorTextTertiary:c_(r,.45),colorTextQuaternary:c_(r,.25),colorFill:c_(r,.18),colorFillSecondary:c_(r,.12),colorFillTertiary:c_(r,.08),colorFillQuaternary:c_(r,.04),colorBgElevated:l_(n,12),colorBgContainer:l_(n,8),colorBgLayout:l_(n,0),colorBgSpotlight:l_(n,26),colorBorder:l_(n,26),colorBorderSecondary:l_(n,19)}},f_=(e,t)=>{let n=Object.keys(Ud).map(t=>{let n=Ld(e[t],{theme:`dark`});return Array(10).fill(1).reduce((e,r,i)=>(e[`${t}-${i+1}`]=n[i],e),{})}).reduce((e,t)=>(e=I(I({},e),t),e),{}),r=t??ef(e);return I(I(I({},r),n),Gd(e,{generateColorPalettes:u_,generateNeutralColorPalettes:d_}))};function p_(e){let{sizeUnit:t,sizeStep:n}=e,r=n-2;return{sizeXXL:t*(r+10),sizeXL:t*(r+6),sizeLG:t*(r+2),sizeMD:t*(r+2),sizeMS:t*(r+1),size:t*r,sizeSM:t*r,sizeXS:t*(r-1),sizeXXS:t*(r-1)}}var m_=(e,t)=>{let n=t??ef(e),r=n.fontSizeSM,i=n.controlHeight-4;return I(I(I(I(I({},n),p_(t??e)),$d(r)),{controlHeight:i}),Vd(I(I({},n),{controlHeight:i})))};function h_(){let[e,t,n]=Ef();return{theme:e,token:t,hashId:n}}var g_={defaultConfig:xf,defaultSeed:xf.token,useToken:h_,defaultAlgorithm:ef,darkAlgorithm:f_,compactAlgorithm:m_},__=[Pa,Wa,no,es,ts,ns,rs,as,os,ss,Ds,Os,As,c(e=>({provide:{antdCache:Zc()}})),c(()=>{let e=je();return{provide:{api:Kn.create({baseURL:e.public.apiBase,retry:0})}}})],v_=(e=`RouteProvider`)=>N({name:e,props:{route:{type:Object,required:!0},vnode:Object,vnodeRef:Object,renderKey:String,trackRootNodes:Boolean,routeRecord:Object},setup(e){let t=e.renderKey,n=e.route,r={};for(let i in e.route)Object.defineProperty(r,i,{get:()=>t===e.renderKey?e.route[i]:n[i],enumerable:!0});return s(u,yt(r)),()=>e.vnode?M(e.vnode,{ref:e.vnodeRef}):e.vnode}}),y_=v_(),b_=new WeakMap,x_=N({name:`NuxtPage`,inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=C(),a=A(),o=h(u,null),s=new Set,c;r({pageRef:a});let l=h(cn,null),d,f=i.deferHydration(),p=!1,m=!1,g,_=0;if(i.isHydrating){let e=i.hooks.hookOnce(`app:error`,f),t=dn().beforeEach(()=>{e(),t()})}e.pageKey&&k(()=>e.pageKey,(e,t)=>{e!==t&&i.callHook(`page:loading:start`)});let v=!1;{let e=dn().beforeResolve(()=>{v=!1});le(()=>{e(),f()})}return()=>M(qo,{name:e.name,route:e.route,...t},{default:w_(t=>{let r=S_(o,t.route,t.Component),u=o&&o.matched.length===t.route.matched.length;if(!t.Component)return d&&!u&&!E_(d)?d:(f(),e.transition??t.route.meta.pageTransition??!1?zt(it([e.transition,t.route.meta.pageTransition,!1]),null).default():void 0);if(d&&l&&!E_(d)&&!l.isCurrent(t.route))return d;if(r&&o&&(!l||l?.isCurrent(o)))return(u||d)&&!E_(d)?d:null;let h=so(t,e.pageKey),y=C_(o,t.route,t.Component);!i.isHydrating&&c===h&&!y&&Tt(()=>{v||(v=!0,i.callHook(`page:loading:end`))}),p&&c!==h&&m&&_++,c=h;let b=!!(e.transition??t.route.meta.pageTransition??!1),x=b&&it([e.transition,t.route.meta.pageTransition,!1,{onAfterLeave(){Qt(i),i.callHook(`page:transition:finish`,t.Component)}}]),S=e.keepalive??t.route.meta.keepalive??!1,C=t.Component.type,w=C.name||C.__name;t.route.meta.keepalive&&w&&s.add(w);let T;if(s.size>0&&e.keepalive==null&&(!S||typeof S==`object`&&S&&S.include)){let e=typeof S==`object`&&S?{...S}:{},t=e.include?Array.isArray(e.include)?e.include:[e.include]:[];T={...e,include:Array.from(new Set([...t,...s]))}}else T=S;return d=zt(b&&x,co(T,M(Ot,{key:_,suspensible:!0,onPending:()=>{p=!0,b&&m&<(i),g=i.callHook(`page:start`,t.Component)},onResolve:async()=>{p=!1,m=!0,i.isHydrating&&i[`~restoreDeferredRoute`]?.();try{await Tt(),i._route.sync?.(),await g,await i.callHook(`page:finish`,t.Component),!v&&!y&&(v=!0,await i.callHook(`page:loading:end`))}finally{f()}}},{default:()=>{let e={key:h||void 0,vnode:n.default?T_(n.default,t):t.Component,route:t.route,renderKey:h||void 0,trackRootNodes:b,vnodeRef:a,routeRecord:void 0};if(!T)return M(y_,e);let r=C,i=b_.get(r);return i||(i=v_(w),b_.set(r,i)),M(i,e)}}))).default(),d})})}});function S_(e,t,n){if(!e)return!1;let r=t.matched.findIndex(e=>e.components?.default===n?.type);if(r===-1)return!1;let i=t.matched.slice(0,r).filter(e=>e.components?.default);if(!i.length)return!1;let a=e.matched.filter(e=>e.components?.default);return i.some((e,t)=>e.components?.default!==a[t]?.components?.default)||n&&so({route:t,Component:n})!==so({route:e,Component:n})}function C_(e,t,n){return e?t.matched.findIndex(e=>e.components?.default===n?.type){let n=e(t);return Array.isArray(n)?n:n==null||!f(n)?[ft()]:[n]});return t._n=!0,t}function T_(e,t){let n=e(t);return n.length===1?M(n[0]):M(Gt,void 0,n)}function E_(e){return!!e&&(!!e.suspense?.isUnmounted||!!e.component?.isUnmounted)}var D_=N({name:`LayoutLoader`,inheritAttrs:!1,props:{name:String,layoutProps:Object},setup(e,t){return()=>M(ks[e.name],e.layoutProps,t.slots)}}),O_=N({name:`NuxtLayout`,inheritAttrs:!1,props:{name:{type:[String,Boolean,Object],default:null},fallback:{type:[String,Object],default:null}},setup(e,t){let n=C(),r=h(u),i=!r||r===rn()?Wt():r,a=O(()=>{let t=Es(i,e.name);return t&&!(t in ks)&&e.fallback&&(t=j(e.fallback)),t});s(Ee,a);let o=t=>Es(t,e.name),c=E();t.expose({layoutRef:c});let l=n.deferHydration();if(n.isHydrating){let e=n.hooks.hookOnce(`app:error`,l),t=dn().beforeEach(()=>{e(),t()})}le(()=>{l()});let d;return()=>{let r=!!a.value&&a.value in ks&&!!(i?.meta.layoutTransition??!1),s=r&&it([i?.meta.layoutTransition,!1,{onBeforeLeave(){lt(n)},onAfterLeave(){Qt(n)}}]),u=d;return d=a.value,zt(s,{default:()=>M(Ot,{suspensible:!0,onResolve:async()=>{await Tt(l)}},{default:()=>M(k_,{layoutProps:me(t.attrs,i.meta.layoutProps??{},{ref:c}),key:a.value||void 0,name:a.value,shouldProvide:!e.name,resolveRouteLayout:o,isRenderingNewLayout:e=>e!==u&&e===a.value,hasTransition:r},t.slots)})}).default()}}}),k_=N({name:`NuxtLayoutProvider`,inheritAttrs:!1,props:{name:{type:[String,Boolean]},layoutProps:{type:Object},hasTransition:{type:Boolean},shouldProvide:{type:Boolean},isRenderingNewLayout:{type:Function,required:!0},resolveRouteLayout:{type:Function,required:!0}},setup(e,t){let n=e.name;e.shouldProvide&&s(cn,{isCurrent:t=>n===!1||n===e.resolveRouteLayout(t)});let r=h(u),i=r&&r===rn(),a=h(cn,null);if(i){let t=Wt(),n={};for(let i in t){let o=i;Object.defineProperty(n,o,{enumerable:!0,get:()=>e.isRenderingNewLayout(e.name)&&(!a||a.isCurrent(t))?t[o]:r[o]})}s(u,yt(n))}return()=>!n||typeof n==`string`&&!(n in ks)?t.slots.default?.():M(D_,{key:n,layoutProps:e.layoutProps,name:n},t.slots)}}),A_=()=>{let{siteUrl:e}=je().public;return t=>new URL(t,e).toString()},j_=()=>({settings:Ut().settings,siteUrl:je().public.siteUrl}),M_={url:`https://imenpishgaman.ir`,locale:`fa_IR`,lang:`fa`,dir:`rtl`,logo:`/images/logo.png`,favicon:`/favicon.svg`,themeColor:`#0b1224`,areaServed:`IR`},N_={name:`ایمن پیشگامان`,title:`ایمن پیشگامان | تجهیزات ایمنی و حفاظت فردی صنعتی`,description:`ایمن پیشگامان — تأمین‌کننده تخصصی تجهیزات حفاظت فردی (PPE) و راهکارهای ایمنی صنعتی.`};function P_(){let e=Ut(),t=A_(),n=e.data?.sections.settings,r=n?.name??N_.name,i=n?.title??N_.title,a=n?.description??N_.description,o=n?.ogImage;Pi({titleTemplate:e=>e?`${e} | ${r}`:i}),Fi({description:a,themeColor:M_.themeColor,formatDetection:`telephone=no`,ogType:`website`,ogSiteName:r,ogLocale:M_.locale,ogTitle:i,ogDescription:a,twitterCard:`summary_large_image`,twitterTitle:i,twitterDescription:a,...o&&{ogImage:t(o.url),ogImageWidth:o.width??void 0,ogImageHeight:o.height??void 0,ogImageAlt:o.alt,twitterImage:t(o.url),twitterImageAlt:o.alt}})}var F_=(e,t)=>new URL(t,e.siteUrl).toString(),I_=new Set([`telegram`,`instagram`,`linkedin`,`whatsapp`,`bale`,`eitaa`,`aparat`,`youtube`]),L_=e=>JSON.parse(JSON.stringify(e,(e,t)=>t===``||Array.isArray(t)&&!t.length?void 0:t)),R_=e=>{let t=e.settings;return L_({"@context":`https://schema.org`,"@type":`LocalBusiness`,"@id":`${e.siteUrl}/#organization`,name:t.name,alternateName:t.nameEn,url:F_(e,`/`),logo:F_(e,M_.logo),image:F_(e,t.ogImage.url),description:t.description,email:t.email,telephone:t.phone,foundingDate:t.foundingDate,areaServed:M_.areaServed,address:{"@type":`PostalAddress`,streetAddress:t.address.street,addressLocality:t.address.locality,addressCountry:t.address.country},openingHoursSpecification:{"@type":`OpeningHoursSpecification`,dayOfWeek:t.openingHours.days,opens:t.openingHours.opens,closes:t.openingHours.closes},sameAs:t.socials.filter(e=>I_.has(e.type)).map(e=>e.url)})},z_=e=>({"@context":`https://schema.org`,"@type":`WebSite`,"@id":`${e.siteUrl}/#website`,url:F_(e,`/`),name:e.settings.name,inLanguage:M_.lang,publisher:{"@id":`${e.siteUrl}/#organization`}}),B_=(e,t)=>L_({"@context":`https://schema.org`,"@type":`Service`,name:t.name,description:t.description,areaServed:t.areaServed??M_.areaServed,provider:{"@id":`${e.siteUrl}/#organization`}}),V_=(e,t)=>L_({"@context":`https://schema.org`,"@type":`CollectionPage`,"@id":`${e.siteUrl}/categories/${t.slug}`,name:t.name,description:t.seoDescription||t.fullDesc,url:F_(e,`/categories/${t.slug}`),isPartOf:{"@id":`${e.siteUrl}/#website`},provider:{"@id":`${e.siteUrl}/#organization`},mainEntity:{"@type":`ItemList`,numberOfItems:t.products.length,itemListElement:t.products.map((t,n)=>({"@type":`ListItem`,position:n+1,item:{"@type":`Product`,name:t.name,description:t.desc,sku:t.code,url:F_(e,`/products/${t.slug}`),...t.image&&{image:F_(e,t.image)}}}))}}),H_=(e,t)=>L_({"@context":`https://schema.org`,"@type":`Product`,"@id":`${e.siteUrl}/products/${t.slug}#product`,name:t.name,alternateName:t.nameEn,sku:t.code,mpn:t.code,description:t.seoDescription||t.desc||t.details.slice(0,300),url:F_(e,`/products/${t.slug}`),image:t.images.map(t=>F_(e,t.url)),category:t.category.name,...t.brand&&{brand:{"@type":`Brand`,name:t.brand}},countryOfOrigin:t.origin,additionalProperty:[...t.attributes.map(e=>({"@type":`PropertyValue`,name:e.name,value:e.value})),...t.standards.map(e=>({"@type":`PropertyValue`,name:`استاندارد`,value:e}))],seller:{"@id":`${e.siteUrl}/#organization`}}),U_=(e,t)=>({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:t.map((t,n)=>({"@type":`ListItem`,position:n+1,name:t.name,item:F_(e,t.path)}))}),W_=e=>JSON.stringify(e).replace(/({key:`ld-${t}-${n}`,type:`application/ld+json`,innerHTML:W_(e),tagPosition:`bodyOpen`}))})}var K_={items_per_page:`/ صفحه`,jump_to:`برو به`,jump_to_confirm:`تایید`,page:``,prev_page:`صفحه قبلی`,next_page:`صفحه بعدی`,prev_5:`۵ صفحه قبلی`,next_5:`۵ صفحه بعدی`,prev_3:`۳ صفحه قبلی`,next_3:`۳ صفحه بعدی`},q_={locale:`fa_IR`,today:`امروز`,now:`اکنون`,backToToday:`بازگشت به روز`,ok:`باشه`,clear:`پاک کردن`,month:`ماه`,year:`سال`,timeSelect:`انتخاب زمان`,dateSelect:`انتخاب تاریخ`,monthSelect:`یک ماه را انتخاب کنید`,yearSelect:`یک سال را انتخاب کنید`,decadeSelect:`یک دهه را انتخاب کنید`,yearFormat:`YYYY`,dateFormat:`M/D/YYYY`,dayFormat:`D`,dateTimeFormat:`M/D/YYYY HH:mm:ss`,monthBeforeYear:!0,previousMonth:`ماه قبل (PageUp)`,nextMonth:`ماه بعد (PageDown)`,previousYear:`سال قبل (Control + left)`,nextYear:`سال بعد (Control + right)`,previousDecade:`دهه قبل`,nextDecade:`دهه بعد`,previousCentury:`قرن قبل`,nextCentury:`قرن بعد`},J_={placeholder:`انتخاب زمان`,rangePlaceholder:[`زمان شروع`,`زمان پایان`]},Y_={lang:I({placeholder:`انتخاب تاریخ`,yearPlaceholder:`انتخاب سال`,quarterPlaceholder:`انتخاب فصل`,monthPlaceholder:`انتخاب ماه`,weekPlaceholder:`انتخاب هفته`,rangePlaceholder:[`تاریخ شروع`,`تاریخ پایان`],rangeYearPlaceholder:[`سال شروع`,`سال پایان`],rangeMonthPlaceholder:[`ماه شروع`,`ماه پایان`],rangeWeekPlaceholder:[`هفته شروع`,`هفته پایان`]},q_),timePickerLocale:I({},J_)},X_=Y_,Q="${label} از نوع ${type} معتبر نیست",Z_={locale:`fa`,Pagination:K_,DatePicker:Y_,TimePicker:J_,Calendar:X_,global:{placeholder:`لطفاً انتخاب کنید`},Table:{filterTitle:`منوی فیلتر`,filterConfirm:`تایید`,filterReset:`پاک کردن`,filterEmptyText:`بدون فیلتر`,emptyText:`بدون داده`,selectAll:`انتخاب صفحه‌ی کنونی`,selectInvert:`معکوس کردن انتخاب‌ها در صفحه ی کنونی`,selectNone:`انتخاب هیچکدام`,selectionAll:`انتخاب همه داده‌ها`,sortTitle:`مرتب سازی`,expand:`باز شدن ردیف`,collapse:`بستن ردیف`,triggerDesc:`ترتیب نزولی`,triggerAsc:`ترتیب صعودی`,cancelSort:`لغوِ ترتیبِ داده شده`},Modal:{okText:`تایید`,cancelText:`لغو`,justOkText:`تایید`},Popconfirm:{okText:`تایید`,cancelText:`لغو`},Transfer:{titles:[``,``],searchPlaceholder:`جستجو`,itemUnit:`عدد`,itemsUnit:`عدد`,remove:`حذف`,selectCurrent:`انتخاب صفحه فعلی`,removeCurrent:`پاک کردن انتخاب‌های صفحه فعلی`,selectAll:`انتخاب همه`,removeAll:`پاک کردن همه انتخاب‌ها`,selectInvert:`معکوس کردن انتخاب‌ها در صفحه ی کنونی`},Upload:{uploading:`در حال آپلود...`,removeFile:`حذف فایل`,uploadError:`خطا در آپلود`,previewFile:`مشاهده‌ی فایل`,downloadFile:`دریافت فایل`},Empty:{description:`داده‌ای موجود نیست`},Icon:{icon:`آیکن`},Text:{edit:`ویرایش`,copy:`کپی`,copied:`کپی شد`,expand:`توسعه`},PageHeader:{back:`برگشت`},Form:{optional:`(اختیاری)`,defaultValidateMessages:{default:"خطا در ${label}",required:"فیلد ${label} اجباریست",enum:"${label} باید یکی از [${enum}] باشد",whitespace:"${label} نمیتواند خالی باشد",date:{format:"ساختار تاریخ در ${label} نامعتبر است",parse:"${label} قابل تبدیل به تاریخ نیست",invalid:"${label} تاریخی نا معتبر است"},types:{string:Q,method:Q,array:Q,object:Q,number:Q,date:Q,boolean:Q,integer:Q,float:Q,regexp:Q,email:Q,url:Q,hex:Q},string:{len:"${label} باید ${len} کاراکتر باشد",min:"${label} باید حداقل ${min} کاراکتر باشد",max:"${label} باید حداکثر ${max} کاراکتر باشد",range:"${label} باید بین ${min}-${max} کاراکتر باشد"},number:{len:"${label} باید برابر ${len}",min:"${label} حداقل میتواند ${min} باشد",max:"${label} حداکثر میتواند ${max} باشد",range:"${label} باید بین ${min}-${max} باشد"},array:{len:"تعداد ${label} باید ${len} باشد.",min:"تعداد ${label} حداقل باید ${min} باشد",max:"تعداد ${label} حداکثر باید ${max} باشد",range:"مقدار ${label} باید بین ${min}-${max} باشد"},pattern:{mismatch:"الگوی ${label} با ${pattern} برابری نمی‌کند"}}},Image:{preview:`نمایش`}},$={bg:`#0b1224`,panel:`#101a32`,panel2:`#152040`,ink:`#edede6`,muted:`#8e9ab0`,accent:`#ff5a00`,accentSoft:`#ff7a2a`,hazard:`#ffb800`,line:`#1e2d4d`,success:`#34d399`},Q_={algorithm:g_.darkAlgorithm,token:{colorPrimary:$.accent,colorInfo:$.accent,colorWarning:$.hazard,colorSuccess:$.success,colorBgBase:$.bg,colorBgContainer:$.bg,colorBgElevated:$.panel,colorBorder:$.line,colorBorderSecondary:$.line,colorText:$.ink,colorTextDescription:$.muted,colorTextPlaceholder:`rgba(142, 154, 176, 0.5)`,colorTextLightSolid:$.bg,fontFamily:`var(--font-sans)`,fontSize:14,borderRadius:8,controlOutlineWidth:0,motionDurationMid:`0.15s`,wireframe:!1}},$_=N({__name:`app`,async setup(e){let t,n,{$antdCache:r}=C(),i=Ut();[t,n]=Ve(()=>ws(`site`,()=>i.load(),`$DsIF4Wiv2X`)),await t,n(),P_();let a=j_();return G_([R_(a),z_(a)]),(e,t)=>{let n=x_,i=O_;return pn(),gt(j(rl),{cache:j(r)},{default:Re(()=>[P(j(s_),{theme:j(Q_),direction:`rtl`,locale:j(Z_)},{default:Re(()=>[P(i,null,{default:Re(()=>[P(n)]),_:1})]),_:1},8,[`theme`,`locale`])]),_:1},8,[`cache`])}}}),ev={class:`flex min-h-screen flex-col items-center justify-center px-5 text-center`},tv={class:`mt-8 text-4xl font-black md:text-6xl`},nv={class:`mt-5 max-w-md leading-8 text-muted`},rv=N({__name:`error`,props:{error:{}},setup(e){let t=e,n=O(()=>t.error.statusCode===404);P_(),Pi({title:()=>n.value?`صفحه پیدا نشد`:`خطا`}),Fi({robots:`noindex, follow`});let r=()=>jt({redirect:`/`});return(e,t)=>(pn(),Ke(`main`,ev,[t[0]||=At(`div`,{class:`hazard absolute inset-x-0 top-0 h-2.5`},null,-1),P(Jt,{name:`shield-cross`,class:`size-16 text-accent`}),At(`h1`,tv,_t(j(n)?`صفحه مورد نظر پیدا نشد`:`خطایی رخ داد`),1),At(`p`,nv,_t(j(n)?`ممکن است آدرس اشتباه وارد شده باشد یا این صفحه جابه‌جا شده باشد.`:`لطفاً چند لحظه بعد دوباره تلاش کنید.`),1),At(`a`,{href:`/`,class:`mt-9 inline-flex items-center gap-2.5 rounded-full bg-accent px-7 py-4 font-bold text-bg transition-all duration-300 hover:bg-accent-soft`,onClick:Ye(r,[`prevent`])},` بازگشت به صفحه اصلی `)]))}}),iv=()=>null,av={key:0},ov={__name:`nuxt-root`,setup(e){let t=C(),n=t.deferHydration();if(t.isHydrating){let e=t.hooks.hookOnce(`app:error`,n),r=dn().beforeEach(()=>{e(),r()})}window.location.pathname,s(u,rn()),t.hooks.callHookWith(e=>e.map(e=>e()),`vue:setup`,[]);let r=mt();function i(e,n,r){let i=t.vueApp.config.errorHandler;if(i&&!i.__nuxt_default)try{i(e,n,r)}catch(e){console.error("[nuxt] Error in `app.config.errorHandler`",e)}}return v((e,n,r)=>{if(t.hooks.callHook(`vue:error`,e,n,r)?.catch(e=>console.error("[nuxt] Error in `vue:error` hook",e)),ke(navigator.userAgent))return dt(t,e),!1;if(p(e)&&(e.fatal||e.unhandled))return t.runWithContext(()=>vt(e)),qn(),i(e,n,r),!1}),(e,t)=>(pn(),gt(Ot,{onResolve:j(n)},{default:Re(()=>[j(!1)?(pn(),Ke(`div`,av)):j(r)?(pn(),gt(j(rv),{key:1,error:j(r)},null,8,[`error`])):j(!1)?(pn(),gt(j(iv),{key:2,context:j(!1)},null,8,[`context`])):j(!1)?(pn(),gt(x(j(!1)),{key:3})):(pn(),gt(j($_),{key:4}))]),_:1},8,[`onResolve`]))}},sv;{let e;sv=async function(){if(e)return e;let t=!!(window.__NUXT__?.serverRendered??document.getElementById(`__NUXT_DATA__`)?.dataset.ssr===`true`),n=t?Yt(ov):ot(ov),r=mn({vueApp:n});async function i(e){await r.callHook(`app:error`,e),r.payload.error||=g(e)}i.__nuxt_default=!0,n.config.errorHandler=i,r.hook(`app:suspense:resolve`,()=>{n.config.errorHandler===i&&(n.config.errorHandler=void 0)}),!t&&ie.id&&r.hook(`app:suspense:resolve`,()=>{document.getElementById(ie.id)?.remove()});try{await Ce(r,__)}catch(e){i(e)}try{await r.hooks.callHook(`app:created`,n),await r.hooks.callHook(`app:beforeMount`,n),n.mount(ze),await r.hooks.callHook(`app:mounted`,n),await Tt()}catch(e){i(e)}return n},e=sv().catch(e=>{throw pt.NUXT_E1009({cause:e}),e})}export{oc as $,gl as A,vc as B,gf as C,of as D,ff as E,Vc as F,Sc as G,yc as H,Pc as I,fc as J,hc as K,Fc as L,ol as M,al as N,Xu as O,Uc as P,cc as Q,Dc as R,Ef as S,cf as T,R as U,_c as V,Cc as W,rc as X,ac as Y,sc as Z,kp as _,B_ as a,pc as at,zf as b,yh as c,F as ct,Vm as d,Pi as dt,mc as et,Y as f,Fi as ft,jp as g,Ap as h,H_ as i,uc as it,vl as j,Sl as k,hh as l,hs as lt,Np as m,U_ as n,lc as nt,A_ as o,L as ot,Fp as p,Gn as pt,gc as q,V_ as r,tc as rt,j_ as s,I as st,G_ as t,ic as tt,Ym as u,fs as ut,Op as v,pf as w,Rf as x,Dp as y,bc as z}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/DoONAYG5.js b/apps/web/.output/public/_nuxt/DoONAYG5.js new file mode 100644 index 0000000..46d0232 --- /dev/null +++ b/apps/web/.output/public/_nuxt/DoONAYG5.js @@ -0,0 +1,56 @@ +import{$t as e,Bn as t,En as n,Gn as r,Hn as i,In as a,Jn as o,Ln as s,Mn as c,Nn as l,On as u,Qt as d,Rn as f,Sn as p,Wn as m,Xn as h,Zn as g,_n as _,an as v,ar as y,dn as b,fn as x,fr as S,gn as C,hn as w,hr as T,i as ee,in as E,kn as D,mn as O,mr as k,nn as A,nr as te,or as ne,pn as j,qn as M,r as N,rn as re,rr as P,sn as F,sr as ie,t as I,ur as L,vn as R,wn as z,xn as B,yn as V,zn as H}from"./D6Ym2dQP.js";import{$ as ae,A as oe,B as se,C as ce,D as le,E as ue,F as de,G as fe,H as pe,I as me,J as he,K as ge,L as _e,M as ve,N as ye,O as be,P as xe,Q as Se,R as Ce,S as we,T as Te,U as Ee,V as De,W as Oe,X as ke,Y as Ae,Z as je,_ as Me,a as Ne,at as Pe,b as Fe,c as Ie,ct as U,d as Le,dt as Re,et as ze,f as Be,ft as Ve,g as He,h as Ue,it as We,j as Ge,k as Ke,l as qe,m as Je,nt as Ye,o as Xe,ot as W,p as Ze,q as Qe,rt as $e,s as et,st as G,t as tt,tt as nt,u as rt,v as it,w as at,x as ot,y as K,z as st}from"#entry";import{i as ct,n as lt,r as ut,s as dt,t as ft,u as pt}from"./Dd1GE-gU.js";import{n as mt,r as ht,t as gt}from"./BHOIQrRl.js";import{n as _t,r as vt,t as yt}from"./D0e0LUpa.js";import{n as bt,r as xt,t as St}from"./r7-JdZhN.js";var Ct=(function(){if(typeof Map<`u`)return Map;function e(e,t){var n=-1;return e.some(function(e,r){return e[0]===t&&(n=r,!0)}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){t===void 0&&(t=null);for(var n=0,r=this.__entries__;n0},e.prototype.connect_=function(){wt&&!this.connected_&&(document.addEventListener(`transitionend`,this.onTransitionEnd_),window.addEventListener(`resize`,this.refresh),jt?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener(`DOMSubtreeModified`,this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){wt&&this.connected_&&(document.removeEventListener(`transitionend`,this.onTransitionEnd_),window.removeEventListener(`resize`,this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener(`DOMSubtreeModified`,this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=t===void 0?``:t;At.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||=new e,this.instance_},e.instance_=null,e}(),Nt=(function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),Yt=typeof WeakMap<`u`?new WeakMap:new Ct,Xt=function(){function e(t){if(!(this instanceof e))throw TypeError(`Cannot call a class as a function.`);if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);var n=new Jt(t,Mt.getInstance(),this);Yt.set(this,n)}return e}();[`observe`,`unobserve`,`disconnect`].forEach(function(e){Xt.prototype[e]=function(){var t;return(t=Yt.get(this))[e].apply(t,arguments)}});var Zt=(function(){return Tt.ResizeObserver===void 0?Xt:Tt.ResizeObserver})(),Qt=(e,t)=>{let n=G({},e);return Object.keys(t).forEach(e=>{let r=n[e];if(r)r.type||r.default?r.default=t[e]:r.def?r.def(t[e]):n[e]={type:r,default:t[e]};else throw Error(`not have ${e} prop`)}),n},$t=B({compatConfig:{MODE:3},name:`ResizeObserver`,props:{disabled:Boolean,onResize:Function},emits:[`resize`],setup(e,t){let{slots:n}=t,r=te({width:0,height:0,offsetHeight:0,offsetWidth:0}),i=null,o=null,c=()=>{o&&=(o.disconnect(),null)},l=t=>{let{onResize:n}=e,i=t[0].target,{width:a,height:o}=i.getBoundingClientRect(),{offsetWidth:s,offsetHeight:c}=i,l=Math.floor(a),u=Math.floor(o);if(r.width!==l||r.height!==u||r.offsetWidth!==s||r.offsetHeight!==c){let e={width:l,height:u,offsetWidth:s,offsetHeight:c};G(r,e),n&&Promise.resolve().then(()=>{n(G(G({},e),{offsetWidth:s,offsetHeight:c}),i)})}},u=p(),d=()=>{let{disabled:t}=e;if(t){c();return}let n=Ae(u);n!==i&&(c(),i=n),!o&&n&&(o=new Zt(l),o.observe(n))};return a(()=>{d()}),f(()=>{d()}),s(()=>{c()}),M(()=>e.disabled,()=>{d()},{flush:`post`}),()=>n.default?.call(n)[0]}}),en=e=>setTimeout(e,16),tn=e=>clearTimeout(e);typeof window<`u`&&`requestAnimationFrame`in window&&(en=e=>window.requestAnimationFrame(e),tn=e=>window.cancelAnimationFrame(e));var nn=0,rn=new Map;function an(e){rn.delete(e)}function q(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;nn+=1;let n=nn;function r(t){if(t===0)an(n),e();else{let e=en(()=>{r(t-1)});rn.set(n,e)}}return r(t),n}q.cancel=e=>{let t=rn.get(e);return an(t),tn(t)};var on=!1;try{let e=Object.defineProperty({},"passive",{get(){on=!0}});window.addEventListener(`testPassive`,null,e),window.removeEventListener(`testPassive`,null,e)}catch{}var sn=on;function cn(e,t,n,r){if(e&&e.addEventListener){let i=r;i===void 0&&sn&&(t===`touchstart`||t===`touchmove`||t===`wheel`)&&(i={passive:!1}),e.addEventListener(t,n,i)}return{remove:()=>{e&&e.removeEventListener&&e.removeEventListener(t,n)}}}var ln={};function un(e,t){}function dn(e,t,n){!t&&!ln[n]&&(e(!1,n),ln[n]=!0)}function fn(e,t){dn(un,e,t)}var pn=[`blue`,`purple`,`cyan`,`green`,`magenta`,`pink`,`red`,`orange`,`yellow`,`volcano`,`geekblue`,`lime`,`gold`],mn=(e,t,n,r,i)=>{let a=e/2,o=a,s=n*1/Math.sqrt(2),c=a-n*(1-1/Math.sqrt(2)),l=a-1/Math.sqrt(2)*t,u=n*(Math.sqrt(2)-1)+1/Math.sqrt(2)*t,d=2*a-l,f=u,p=2*a-s,m=c,h=2*a-0,g=o,_=a*Math.sqrt(2)+n*(Math.sqrt(2)-2),v=n*(Math.sqrt(2)-1);return{pointerEvents:`none`,width:e,height:e,overflow:`hidden`,"&::after":{content:`""`,position:`absolute`,width:_,height:_,bottom:0,insetInline:0,margin:`auto`,borderRadius:{_skip_check_:!0,value:`0 0 ${t}px 0`},transform:`translateY(50%) rotate(-135deg)`,boxShadow:i,zIndex:0,background:`transparent`},"&::before":{position:`absolute`,bottom:0,insetInlineStart:0,width:e,height:e/2,background:r,clipPath:{_multi_value_:!0,value:[`polygon(${v}px 100%, 50% ${v}px, ${2*a-v}px 100%, ${v}px 100%)`,`path('M 0 ${o} A ${n} ${n} 0 0 0 ${s} ${c} L ${l} ${u} A ${t} ${t} 0 0 1 ${d} ${f} L ${p} ${m} A ${n} ${n} 0 0 0 ${h} ${g} Z')`]},content:`""`}}};function hn(e,t){return pn.reduce((n,r)=>{let i=e[`${r}-1`],a=e[`${r}-3`],o=e[`${r}-6`],s=e[`${r}-7`];return G(G({},n),t(r,{lightColor:i,lightBorderColor:a,darkColor:o,textColor:s}))},{})}function gn(e,t){let n=G({},e);for(let e=0;et||a>e&&o=t&&s>=n?a-e-r:o>t&&sn?o-t+i:0}var xn=function(e,t){var n=window,r=t.scrollMode,i=t.block,a=t.inline,o=t.boundary,s=t.skipOverflowHiddenElements,c=typeof o==`function`?o:function(e){return e!==o};if(!_n(e))throw TypeError(`Invalid target`);for(var l,u=document.scrollingElement||document.documentElement,d=[],f=e;_n(f)&&c(f);){if((f=(l=f).parentElement??(l.getRootNode().host||null))===u){d.push(f);break}f!=null&&f===document.body&&yn(f)&&!yn(document.documentElement)||f!=null&&yn(f,s)&&d.push(f)}for(var p=n.visualViewport?n.visualViewport.width:innerWidth,m=n.visualViewport?n.visualViewport.height:innerHeight,h=window.scrollX||pageXOffset,g=window.scrollY||pageYOffset,_=e.getBoundingClientRect(),v=_.height,y=_.width,b=_.top,x=_.right,S=_.bottom,C=_.left,w=i===`start`||i===`nearest`?b:i===`end`?S:b+v/2,T=a===`center`?C+y/2:a===`end`?x:C,ee=[],E=0;E=0&&C>=0&&S<=m&&x<=p&&b>=te&&S<=j&&C>=M&&x<=ne)return ee;var N=getComputedStyle(D),re=parseInt(N.borderLeftWidth,10),P=parseInt(N.borderTopWidth,10),F=parseInt(N.borderRightWidth,10),ie=parseInt(N.borderBottomWidth,10),I=0,L=0,R=`offsetWidth`in D?D.offsetWidth-D.clientWidth-re-F:0,z=`offsetHeight`in D?D.offsetHeight-D.clientHeight-P-ie:0,B=`offsetWidth`in D?D.offsetWidth===0?0:A/D.offsetWidth:0,V=`offsetHeight`in D?D.offsetHeight===0?0:k/D.offsetHeight:0;if(u===D)I=i===`start`?w:i===`end`?w-m:i===`nearest`?bn(g,g+m,m,P,ie,g+w,g+w+v,v):w-m/2,L=a===`start`?T:a===`center`?T-p/2:a===`end`?T-p:bn(h,h+p,p,re,F,h+T,h+T+y,y),I=Math.max(0,I+g),L=Math.max(0,L+h);else{I=i===`start`?w-te-P:i===`end`?w-j+ie+z:i===`nearest`?bn(te,j,k,P,ie+z,w,w+v,v):w-(te+k/2)+z/2,L=a===`start`?T-M-re:a===`center`?T-(M+A/2)+R/2:a===`end`?T-ne+F+R:bn(M,ne,A,re,F+R,T,T+y,y);var H=D.scrollLeft,ae=D.scrollTop;w+=ae-(I=Math.max(0,Math.min(ae+I/V,D.scrollHeight-k/V+z))),T+=H-(L=Math.max(0,Math.min(H+L/B,D.scrollWidth-A/B+R)))}ee.push({el:D,top:I,left:L})}return ee};function Sn(e){return e===Object(e)&&Object.keys(e).length!==0}function Cn(e,t){t===void 0&&(t=`auto`);var n=`scrollBehavior`in document.body.style;e.forEach(function(e){var r=e.el,i=e.top,a=e.left;r.scroll&&n?r.scroll({top:i,left:a,behavior:t}):(r.scrollTop=i,r.scrollLeft=a)})}function wn(e){return e===!1?{block:`end`,inline:`nearest`}:Sn(e)?e:{block:`start`,inline:`nearest`}}function Tn(e,t){var n=e.isConnected||e.ownerDocument.documentElement.contains(e);if(Sn(t)&&typeof t.behavior==`function`)return t.behavior(n?xn(e,t):[]);if(n){var r=wn(t);return Cn(xn(e,r),r.behavior)}}var En=((e,t,n)=>{fn(e,`[ant-design-vue: ${t}] ${n}`)});function Dn(){return``}function On(e){return e?e.ownerDocument:window.document}function kn(){}var An=()=>({action:K.oneOfType([K.string,K.arrayOf(K.string)]).def([]),showAction:K.any.def([]),hideAction:K.any.def([]),getPopupClassNameFromAlign:K.any.def(Dn),onPopupVisibleChange:Function,afterPopupVisibleChange:K.func.def(kn),popup:K.any,arrow:K.bool.def(!0),popupStyle:{type:Object,default:void 0},prefixCls:K.string.def(`rc-trigger-popup`),popupClassName:K.string.def(``),popupPlacement:String,builtinPlacements:K.object,popupTransitionName:String,popupAnimation:K.any,mouseEnterDelay:K.number.def(0),mouseLeaveDelay:K.number.def(.1),zIndex:Number,focusDelay:K.number.def(0),blurDelay:K.number.def(.15),getPopupContainer:Function,getDocument:K.func.def(On),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:K.object.def(()=>({})),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function}),jn={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,arrow:{type:Boolean,default:!0},animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},Mn=G(G({},jn),{mobile:{type:Object}}),Nn=G(G({},jn),{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function Pn(e){let{prefixCls:t,visible:n,zIndex:r,mask:i,maskAnimation:a,maskTransitionName:o}=e;if(!i)return null;let s={};return(o||a)&&(s=it({prefixCls:t,transitionName:o,animation:a})),V(d,U({appear:!0},s),{default:()=>[g(V(`div`,{style:{zIndex:r},class:`${t}-mask`},null),[[m(`if`),n]])]})}Pn.displayName=`Mask`;var Fn=B({compatConfig:{MODE:3},name:`MobilePopupInner`,inheritAttrs:!1,props:Mn,emits:[`mouseenter`,`mouseleave`,`mousedown`,`touchstart`,`align`],setup(e,t){let{expose:n,slots:r}=t,i=P();return n({forceAlign:()=>{},getElement:()=>i.value}),()=>{let{zIndex:t,visible:n,prefixCls:a,mobile:{popupClassName:o,popupStyle:s,popupMotion:c={},popupRender:l}={}}=e,u=G({zIndex:t},s),f=ke(r.default?.call(r));f.length>1&&(f=V(`div`,{class:`${a}-content`},[f])),l&&(f=l(f));let p=W(a,o);return V(d,U({ref:i},c),{default:()=>[n?V(`div`,{class:p,style:u},[f]):null]})}}}),In=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Ln=[`measure`,`align`,null,`motion`],Rn=((e,t)=>{let n=y(null),r=y(),i=y(!1);function o(e){i.value||(n.value=e)}function s(){q.cancel(r.value)}function l(e){s(),r.value=q(()=>{let t=n.value;switch(n.value){case`align`:t=`motion`;break;case`motion`:t=`stable`}o(t),e?.()})}return M(e,()=>{o(`measure`)},{immediate:!0,flush:`post`}),a(()=>{M(n,()=>{n.value===`measure`&&t(),n.value&&(r.value=q(()=>In(void 0,void 0,void 0,function*(){let e=Ln.indexOf(n.value),t=Ln[e+1];t&&e!==-1&&o(t)})))},{immediate:!0,flush:`post`})}),c(()=>{i.value=!0,s()}),[n,l]}),zn=(e=>{let t=y({width:0,height:0});function n(e){t.value={width:e.offsetWidth,height:e.offsetHeight}}return[j(()=>{let n={};if(e.value){let{width:r,height:i}=t.value;e.value.indexOf(`height`)!==-1&&i?n.height=`${i}px`:e.value.indexOf(`minHeight`)!==-1&&i&&(n.minHeight=`${i}px`),e.value.indexOf(`width`)!==-1&&r?n.width=`${r}px`:e.value.indexOf(`minWidth`)!==-1&&r&&(n.minWidth=`${r}px`)}return n}),n]});function Bn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Vn(e){for(var t=1;t=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function Gr(e,t,n,r){var i=J.clone(e),a={width:t.width,height:t.height};return r.adjustX&&i.left=n.left&&i.left+a.width>n.right&&(a.width-=i.left+a.width-n.right),r.adjustX&&i.left+a.width>n.right&&(i.left=Math.max(n.right-a.width,n.left)),r.adjustY&&i.top=n.top&&i.top+a.height>n.bottom&&(a.height-=i.top+a.height-n.bottom),r.adjustY&&i.top+a.height>n.bottom&&(i.top=Math.max(n.bottom-a.height,n.top)),J.mix(i,a)}function Kr(e){var t,n,r;if(!J.isWindow(e)&&e.nodeType!==9)t=J.offset(e),n=J.outerWidth(e),r=J.outerHeight(e);else{var i=J.getWindow(e);t={left:J.getWindowScrollLeft(i),top:J.getWindowScrollTop(i)},n=J.viewportWidth(i),r=J.viewportHeight(i)}return t.width=n,t.height=r,t}function qr(e,t){var n=t.charAt(0),r=t.charAt(1),i=e.width,a=e.height,o=e.left,s=e.top;return n===`c`?s+=a/2:n===`b`&&(s+=a),r===`c`?o+=i/2:r===`r`&&(o+=i),{left:o,top:s}}function Jr(e,t,n,r,i){var a=qr(t,n[1]),o=qr(e,n[0]),s=[o.left-a.left,o.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-i[0]),top:Math.round(e.top-s[1]+r[1]-i[1])}}function Yr(e,t,n){return e.leftn.right}function Xr(e,t,n){return e.topn.bottom}function Zr(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.right||r.top>=n.bottom}function ai(e,t,n){var r=n.target||t;return ri(e,Kr(r),n,!ii(r,n.overflow&&n.overflow.alwaysByViewport))}ai.__getOffsetParent=Vr,ai.__getVisibleRectForElement=Wr;function oi(e,t,n){var r,i,a=J.getDocument(e),o=a.defaultView||a.parentWindow,s=J.getWindowScrollLeft(o),c=J.getWindowScrollTop(o),l=J.viewportWidth(o),u=J.viewportHeight(o);r=`pageX`in t?t.pageX:s+t.clientX,i=`pageY`in t?t.pageY:c+t.clientY;var d={left:r,top:i,width:0,height:0},f=r>=0&&r<=s+l&&i>=0&&i<=c+u,p=[n.points[0],`cc`];return ri(e,d,Vn(Vn({},n),{},{points:p}),f)}function si(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3],i=e;if(Array.isArray(e)&&(i=he(e)[0]),!i)return null;let a=x(i,t,r);return a.props=n?G(G({},a.props),t):a.props,Ke(typeof a.props.class!=`object`,`class must be string`),a}var ci=(e=>{if(!e)return!1;if(e.offsetParent)return!0;if(e.getBBox){let t=e.getBBox();if(t.width||t.height)return!0}if(e.getBoundingClientRect){let t=e.getBoundingClientRect();if(t.width||t.height)return!0}return!1});function li(e,t){return e===t?!0:!e||!t?!1:`pageX`in t&&`pageY`in t?e.pageX===t.pageX&&e.pageY===t.pageY:`clientX`in t&&`clientY`in t&&e.clientX===t.clientX&&e.clientY===t.clientY}function ui(e,t){e!==document.activeElement&&ve(t,e)&&typeof e.focus==`function`&&e.focus()}function di(e,t){let n=null,r=null;function i(e){let[{target:i}]=e;if(!document.documentElement.contains(i))return;let{width:a,height:o}=i.getBoundingClientRect(),s=Math.floor(a),c=Math.floor(o);(n!==s||r!==c)&&Promise.resolve().then(()=>{t({width:s,height:c})}),n=s,r=c}let a=new Zt(i);return e&&a.observe(e),()=>{a.disconnect()}}var fi=((e,t)=>{let n=!1,r=null;function i(){clearTimeout(r)}function a(o){if(!n||o===!0){if(e()===!1)return;n=!0,i(),r=setTimeout(()=>{n=!1},t.value)}else i(),r=setTimeout(()=>{n=!1,a()},t.value)}return[a,()=>{n=!1,i()}]});function pi(){this.__data__=[],this.size=0}function mi(e,t){return e===t||e!==e&&t!==t}function hi(e,t){for(var n=e.length;n--;)if(mi(e[n][0],t))return n;return-1}var gi=Array.prototype.splice;function _i(e){var t=this.__data__,n=hi(t,e);return n<0?!1:(n==t.length-1?t.pop():gi.call(t,n,1),--this.size,!0)}function vi(e){var t=this.__data__,n=hi(t,e);return n<0?void 0:t[n][1]}function yi(e){return hi(this.__data__,e)>-1}function bi(e,t){var n=this.__data__,r=hi(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function xi(e){var t=-1,n=e==null?0:e.length;for(this.clear();++ts))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&Ra?new Pa:void 0;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e-1&&e%1==0&&e<=Ao}var Mo=`[object Arguments]`,No=`[object Array]`,Po=`[object Boolean]`,Fo=`[object Date]`,Io=`[object Error]`,Lo=`[object Function]`,Ro=`[object Map]`,zo=`[object Number]`,Bo=`[object Object]`,Vo=`[object RegExp]`,Ho=`[object Set]`,Uo=`[object String]`,Wo=`[object WeakMap]`,Go=`[object ArrayBuffer]`,Ko=`[object DataView]`,qo=`[object Float32Array]`,Jo=`[object Float64Array]`,Yo=`[object Int8Array]`,Xo=`[object Int16Array]`,Zo=`[object Int32Array]`,Qo=`[object Uint8Array]`,$o=`[object Uint8ClampedArray]`,es=`[object Uint16Array]`,ts=`[object Uint32Array]`,Y={};Y[qo]=Y[Jo]=Y[Yo]=Y[Xo]=Y[Zo]=Y[Qo]=Y[$o]=Y[es]=Y[ts]=!0,Y[Mo]=Y[No]=Y[Go]=Y[Po]=Y[Ko]=Y[Fo]=Y[Io]=Y[Lo]=Y[Ro]=Y[zo]=Y[Bo]=Y[Vo]=Y[Ho]=Y[Uo]=Y[Wo]=!1;function ns(e){return ho(e)&&jo(e.length)&&!!Y[Bi(e)]}function rs(e){return function(t){return e(t)}}var is=typeof exports==`object`&&exports&&!exports.nodeType&&exports,as=is&&typeof module==`object`&&module&&!module.nodeType&&module,os=as&&as.exports===is&&Ei.process,ss=function(){try{return as&&as.require&&as.require(`util`).types||os&&os.binding&&os.binding(`util`)}catch{}}(),cs=ss&&ss.isTypedArray,ls=cs?rs(cs):ns,us=Object.prototype.hasOwnProperty;function ds(e,t){var n=oo(e),r=!n&&xo(e),i=!n&&!r&&Eo(e),a=!n&&!r&&!i&&ls(e),o=n||r||i||a,s=o?mo(e.length,String):[],c=s.length;for(var l in e)(t||us.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||ko(l,c)))&&s.push(l);return s}var fs=Object.prototype;function ps(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||fs)}function ms(e,t){return function(n){return e(t(n))}}var hs=ms(Object.keys,Object),gs=Object.prototype.hasOwnProperty;function _s(e){if(!ps(e))return hs(e);var t=[];for(var n in Object(e))gs.call(e,n)&&n!=`constructor`&&t.push(n);return t}function vs(e){return e!=null&&jo(e.length)&&!Ki(e)}function ys(e){return vs(e)?ds(e):_s(e)}function bs(e){return so(e,ys,po)}var xs=1,Ss=Object.prototype.hasOwnProperty;function Cs(e,t,n,r,i,a){var o=n&xs,s=bs(e),c=s.length;if(c!=bs(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:Ss.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l{let{disabled:t,target:n,align:r,onAlign:a}=e;if(!t&&n&&o.value){let e=o.value,t,s=Xs(n),c=Zs(n);i.value.element=s,i.value.point=c,i.value.align=r;let{activeElement:l}=document;return s&&ci(s)?t=ai(e,s,r):c&&(t=oi(e,c,r)),ui(l,e),a&&t&&a(e,t),!0}return!1},j(()=>e.monitorBufferTime)),u=P({cancel:()=>{}}),d=P({cancel:()=>{}}),p=()=>{let t=e.target,n=Xs(t),r=Zs(t);o.value!==d.value.element&&(d.value.cancel(),d.value.element=o.value,d.value.cancel=di(o.value,c)),(i.value.element!==n||!li(i.value.point,r)||!Js(i.value.align,e.align))&&(c(),u.value.element!==n&&(u.value.cancel(),u.value.element=n,u.value.cancel=di(n,c)))};a(()=>{D(()=>{p()})}),f(()=>{D(()=>{p()})}),M(()=>e.disabled,e=>{e?l():c()},{immediate:!0,flush:`post`});let m=P(null);return M(()=>e.monitorWindowResize,e=>{e?m.value||=cn(window,`resize`,c):m.value&&=(m.value.remove(),null)},{flush:`post`}),s(()=>{u.value.cancel(),d.value.cancel(),m.value&&m.value.remove(),l()}),n({forceAlign:()=>c(!0)}),()=>{let e=r?.default();return e?si(e[0],{ref:o},!0,!0):null}}}),$s=B({compatConfig:{MODE:3},name:`PopupInner`,inheritAttrs:!1,props:jn,emits:[`mouseenter`,`mouseleave`,`mousedown`,`touchstart`,`align`],setup(e,t){let{expose:n,attrs:r,slots:i}=t,a=y(),o=y(),s=y(),[c,l]=zn(ie(e,`stretch`)),u=()=>{e.stretch&&l(e.getRootDomNode())},f=y(!1),p;M(()=>e.visible,t=>{clearTimeout(p),t?p=setTimeout(()=>{f.value=e.visible}):f.value=!1},{immediate:!0});let[m,h]=Rn(f,u),_=y(),b=()=>e.point?e.point:e.getRootDomNode,x=()=>{var e;(e=a.value)==null||e.forceAlign()},S=(t,n)=>{var r;let i=e.getClassNameFromAlign(n),a=s.value;s.value!==i&&(s.value=i),m.value===`align`&&(a===i?h(()=>{var e;(e=_.value)==null||e.call(_)}):Promise.resolve().then(()=>{x()}),(r=e.onAlign)==null||r.call(e,t,n))},C=j(()=>{let t=typeof e.animation==`object`?e.animation:it(e);return[`onAfterEnter`,`onAfterLeave`].forEach(e=>{let n=t[e];t[e]=e=>{h(),m.value=`stable`,n?.(e)}}),t}),w=()=>new Promise(e=>{_.value=e});M([C,m],()=>{!C.value&&m.value===`motion`&&h()},{immediate:!0}),n({forceAlign:x,getElement:()=>o.value.$el||o.value});let T=j(()=>!e.align?.points||m.value!==`align`&&m.value!==`stable`);return()=>{let{zIndex:t,align:n,prefixCls:l,destroyPopupOnHide:u,onMouseenter:p,onMouseleave:h,onTouchstart:_=()=>{},onMousedown:y}=e,x=m.value,ee=[G(G({},c.value),{zIndex:t,opacity:x===`motion`||x===`stable`||!f.value?null:0,pointerEvents:!f.value&&x!==`stable`?`none`:null}),r.style],D=ke(i.default?.call(i,{visible:e.visible}));D.length>1&&(D=V(`div`,{class:`${l}-content`},[D]));let O=W(l,r.class,s.value,!e.arrow&&`${l}-arrow-hidden`),k=f.value||!e.visible?Me(C.value.name,C.value):{};return V(d,U(U({ref:o},k),{},{onBeforeEnter:w}),{default:()=>!u||e.visible?g(V(Qs,{target:b(),key:`popup`,ref:a,monitorWindowResize:!0,disabled:T.value,align:n,onAlign:S},{default:()=>V(`div`,{class:O,onMouseenter:p,onMouseleave:h,onMousedown:v(y,[`capture`]),[sn?`onTouchstartPassive`:`onTouchstart`]:v(_,[`capture`]),style:ee},[D])}),[[E,f.value]]):null})}}}),ec=B({compatConfig:{MODE:3},name:`Popup`,inheritAttrs:!1,props:Nn,setup(e,t){let{attrs:n,slots:r,expose:i}=t,a=y(!1),o=y(!1),s=y(),c=y();return M([()=>e.visible,()=>e.mobile],()=>{a.value=e.visible,e.visible&&e.mobile&&(o.value=!0)},{immediate:!0,flush:`post`}),i({forceAlign:()=>{var e;(e=s.value)==null||e.forceAlign()},getElement:()=>s.value?.getElement()}),()=>{let t=G(G(G({},e),n),{visible:a.value}),i=o.value?V(Fn,U(U({},t),{},{mobile:e.mobile,ref:s}),{default:r.default}):V($s,U(U({},t),{},{ref:s}),{default:r.default});return V(`div`,{ref:c},[V(Pn,t,null),i])}}});function tc(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function nc(e,t,n){let r=e[t]||{};return G(G({},r),n)}function rc(e,t,n,r){let{points:i}=n,a=Object.keys(e);for(let n=0;n0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=typeof e==`function`?e(this.$data,this.$props):e;if(this.getDerivedStateFromProps){let e=this.getDerivedStateFromProps(ae(this),G(G({},this.$data),n));if(e===null)return;n=G(G({},n),e||{})}G(this.$data,n),this._.isMounted&&this.$forceUpdate(),D(()=>{t&&t()})},__emit(){let e=[].slice.call(arguments,0),t=e[0];t=`on${t[0].toUpperCase()}${t.substring(1)}`;let n=this.$props[t]||this.$attrs[t];if(e.length&&n){if(Array.isArray(n))for(let t=0,r=n.length;t`u`)return 0;if(e||ac===void 0){let e=document.createElement(`div`);e.style.width=`100%`,e.style.height=`200px`;let t=document.createElement(`div`),n=t.style;n.position=`absolute`,n.top=`0`,n.left=`0`,n.pointerEvents=`none`,n.visibility=`hidden`,n.width=`200px`,n.height=`150px`,n.overflow=`hidden`,t.appendChild(e),document.body.appendChild(t);let r=e.offsetWidth;t.style.overflow=`scroll`;let i=e.offsetWidth;r===i&&(i=t.clientWidth),document.body.removeChild(t),ac=r-i}return ac}var sc=`vc-util-locker-${Date.now()}`,cc=0;function lc(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}function uc(e){let t=j(()=>!!e&&!!e.value);cc+=1;let n=`${sc}_${cc}`;o(e=>{if(ye()){if(t.value){let e=oc(),t=lc();Ge(` +html body { + overflow-y: hidden; + ${t?`width: calc(100% - ${e}px);`:``} +}`,n)}else oe(n);e(()=>{oe(n)})}},{flush:`post`})}var dc=0,fc=ye(),pc=e=>{if(!fc)return null;if(e){if(typeof e==`string`)return document.querySelectorAll(e)[0];if(typeof e==`function`)return e();if(typeof e==`object`&&e instanceof window.HTMLElement)return e}return document.body},mc=B({compatConfig:{MODE:3},name:`PortalWrapper`,inheritAttrs:!1,props:{wrapperClassName:String,forceRender:{type:Boolean,default:void 0},getContainer:K.any,visible:{type:Boolean,default:void 0},autoLock:se(),didUpdate:Function},setup(e,t){let{slots:n}=t,r=y(),i=y(),o=y(),s=y(1),l=ye()&&document.createElement(`div`),u=()=>{var e;r.value===l&&((e=r.value?.parentNode)==null||e.removeChild(r.value)),r.value=null},d=null,p=function(){return arguments.length>0&&arguments[0]!==void 0&&arguments[0]||r.value&&!r.value.parentNode?(d=pc(e.getContainer),d?(d.appendChild(r.value),!0):!1):!0},m=()=>fc?(r.value||(r.value=l,p(!0)),h(),r.value):null,h=()=>{let{wrapperClassName:t}=e;r.value&&t&&t!==r.value.className&&(r.value.className=t)};return f(()=>{h(),p()}),uc(j(()=>e.autoLock&&e.visible&&ye()&&(r.value===document.body||r.value===l))),a(()=>{let t=!1;M([()=>e.visible,()=>e.getContainer],(n,r)=>{let[i,a]=n,[o,s]=r;fc&&(d=pc(e.getContainer),d===document.body&&(i&&!o?dc+=1:t&&--dc)),t&&(typeof a==`function`&&typeof s==`function`?a.toString()!==s.toString():a!==s)&&u(),t=!0},{immediate:!0,flush:`post`}),D(()=>{p()||(o.value=q(()=>{s.value+=1}))})}),c(()=>{let{visible:t}=e;fc&&d===document.body&&(dc=t&&dc?dc-1:dc),u(),q.cancel(o.value)}),()=>{let{forceRender:t,visible:r}=e,a=null,o={getOpenCount:()=>dc,getContainer:m};return s.value&&(t||r||i.value)&&(a=V(Ze,{getContainer:m,ref:i,didUpdate:e.didUpdate},{default:()=>n.default?.call(n,o)})),a}}}),hc=[`onClick`,`onMousedown`,`onTouchstart`,`onMouseenter`,`onMouseleave`,`onFocus`,`onBlur`,`onContextmenu`],gc=B({compatConfig:{MODE:3},name:`Trigger`,mixins:[ic],inheritAttrs:!1,props:An(),setup(e){let t=j(()=>{let{popupPlacement:t,popupAlign:n,builtinPlacements:r}=e;return t&&r?nc(r,t,n):n}),r=y(null);return{vcTriggerContext:n(`vcTriggerContext`,{}),popupRef:r,setPopupRef:e=>{r.value=e},triggerRef:y(null),align:t,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data(){let e=this.$props,t;return t=this.popupVisible===void 0?!!e.defaultPopupVisible:!!e.popupVisible,hc.forEach(e=>{this[`fire${e}`]=t=>{this.fireEvents(e,t)}}),{prevPopupVisible:t,sPopupVisible:t,point:null}},watch:{popupVisible(e){e!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=e)}},created(){t(`vcTriggerContext`,{onPopupMouseDown:this.onPopupMouseDown,onPopupMouseenter:this.onPopupMouseenter,onPopupMouseleave:this.onPopupMouseleave}),Je(this)},deactivated(){this.setPopupVisible(!1)},mounted(){this.$nextTick(()=>{this.updatedCal()})},updated(){this.$nextTick(()=>{this.updatedCal()})},beforeUnmount(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),q.cancel(this.attachId)},methods:{updatedCal(){let e=this.$props;if(this.$data.sPopupVisible){let t;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(t=e.getDocument(this.getRootDomNode()),this.clickOutsideHandler=cn(t,`mousedown`,this.onDocumentClick)),this.touchOutsideHandler||=(t||=e.getDocument(this.getRootDomNode()),cn(t,`touchstart`,this.onDocumentClick,sn?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(t||=e.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=cn(t,`scroll`,this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=cn(window,`blur`,this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter(e){let{mouseEnterDelay:t}=this.$props;this.fireEvents(`onMouseenter`,e),this.delaySetPopupVisible(!0,t,t?null:e)},onMouseMove(e){this.fireEvents(`onMousemove`,e),this.setPoint(e)},onMouseleave(e){this.fireEvents(`onMouseleave`,e),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter(){let{vcTriggerContext:e={}}=this;e.onPopupMouseenter&&e.onPopupMouseenter(),this.clearDelayTimer()},onPopupMouseleave(e){if(e&&e.relatedTarget&&!e.relatedTarget.setTimeout&&ve(this.popupRef?.getElement(),e.relatedTarget))return;this.isMouseLeaveToHide()&&this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay);let{vcTriggerContext:t={}}=this;t.onPopupMouseleave&&t.onPopupMouseleave(e)},onFocus(e){this.fireEvents(`onFocus`,e),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown(e){this.fireEvents(`onMousedown`,e),this.preClickTime=Date.now()},onTouchstart(e){this.fireEvents(`onTouchstart`,e),this.preTouchTime=Date.now()},onBlur(e){ve(e.target,e.relatedTarget||document.activeElement)||(this.fireEvents(`onBlur`,e),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu(e){e.preventDefault(),this.fireEvents(`onContextmenu`,e),this.setPopupVisible(!0,e)},onContextmenuClose(){this.isContextmenuToShow()&&this.close()},onClick(e){if(this.fireEvents(`onClick`,e),this.focusTime){let e;if(this.preClickTime&&this.preTouchTime?e=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?e=this.preClickTime:this.preTouchTime&&(e=this.preTouchTime),Math.abs(e-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault(),e&&e.domEvent&&e.domEvent.preventDefault();let t=!this.$data.sPopupVisible;(this.isClickToHide()&&!t||t&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,e)},onPopupMouseDown(){let{vcTriggerContext:e={}}=this;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(()=>{this.hasPopupMouseDown=!1},0),e.onPopupMouseDown&&e.onPopupMouseDown(...arguments)},onDocumentClick(e){if(this.$props.mask&&!this.$props.maskClosable)return;let t=e.target,n=this.getRootDomNode(),r=this.getPopupDomNode();(!ve(n,t)||this.isContextMenuOnly())&&!ve(r,t)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)},getPopupDomNode(){return this.popupRef?.getElement()||null},getRootDomNode(){let{getTriggerDOMNode:e}=this.$props;if(e){let t=this.triggerRef?.$el?.nodeName===`#comment`?null:Ae(this.triggerRef);return Ae(e(t))}try{let e=this.triggerRef?.$el?.nodeName===`#comment`?null:Ae(this.triggerRef);if(e)return e}catch{}return Ae(this)},handleGetPopupClassFromAlign(e){let t=[],{popupPlacement:n,builtinPlacements:r,prefixCls:i,alignPoint:a,getPopupClassNameFromAlign:o}=this.$props;return n&&r&&t.push(rc(r,i,e,a)),o&&t.push(o(e)),t.join(` `)},getPopupAlign(){let{popupPlacement:e,popupAlign:t,builtinPlacements:n}=this.$props;return e&&n?nc(n,e,t):t},getComponent(){let e={};this.isMouseEnterToShow()&&(e.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(e.onMouseleave=this.onPopupMouseleave),e.onMousedown=this.onPopupMouseDown,e[sn?`onTouchstartPassive`:`onTouchstart`]=this.onPopupMouseDown;let{handleGetPopupClassFromAlign:t,getRootDomNode:n,$attrs:r}=this,{prefixCls:i,destroyPopupOnHide:a,popupClassName:o,popupAnimation:s,popupTransitionName:c,popupStyle:l,mask:u,maskAnimation:d,maskTransitionName:f,zIndex:p,stretch:m,alignPoint:h,mobile:g,arrow:_,forceRender:v}=this.$props,{sPopupVisible:y,point:b}=this.$data,x=G(G({prefixCls:i,arrow:_,destroyPopupOnHide:a,visible:y,point:h?b:null,align:this.align,animation:s,getClassNameFromAlign:t,stretch:m,getRootDomNode:n,mask:u,zIndex:p,transitionName:c,maskAnimation:d,maskTransitionName:f,class:o,style:l,onAlign:r.onPopupAlign||kn},e),{ref:this.setPopupRef,mobile:g,forceRender:v});return V(ec,x,{default:this.$slots.popup||(()=>je(this,`popup`))})},attachParent(e){q.cancel(this.attachId);let{getPopupContainer:t,getDocument:n}=this.$props,r=this.getRootDomNode(),i;t?(r||t.length===0)&&(i=t(r)):i=n(this.getRootDomNode()).body,i?i.appendChild(e):this.attachId=q(()=>{this.attachParent(e)})},getContainer(){let{$props:e}=this,{getDocument:t}=e,n=t(this.getRootDomNode()).createElement(`div`);return n.style.position=`absolute`,n.style.top=`0`,n.style.left=`0`,n.style.width=`100%`,this.attachParent(n),n},setPopupVisible(e,t){let{alignPoint:n,sPopupVisible:r,onPopupVisibleChange:i}=this;this.clearDelayTimer(),r!==e&&($e(this,`popupVisible`)||this.setState({sPopupVisible:e,prevPopupVisible:r}),i&&i(e)),n&&t&&e&&this.setPoint(t)},setPoint(e){let{alignPoint:t}=this.$props;t&&e&&this.setState({point:{pageX:e.pageX,pageY:e.pageY}})},handlePortalUpdate(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible(e,t,n){let r=t*1e3;if(this.clearDelayTimer(),r){let t=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout(()=>{this.setPopupVisible(e,t),this.clearDelayTimer()},r)}else this.setPopupVisible(e,n)},clearDelayTimer(){this.delayTimer&&=(clearTimeout(this.delayTimer),null)},clearOutsideHandler(){this.clickOutsideHandler&&=(this.clickOutsideHandler.remove(),null),this.contextmenuOutsideHandler1&&=(this.contextmenuOutsideHandler1.remove(),null),this.contextmenuOutsideHandler2&&=(this.contextmenuOutsideHandler2.remove(),null),this.touchOutsideHandler&&=(this.touchOutsideHandler.remove(),null)},createTwoChains(e){let t=()=>{},n=Se(this);return this.childOriginEvents[e]&&n[e]?this[`fire${e}`]:(t=this.childOriginEvents[e]||n[e]||t,t)},isClickToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`click`)!==-1||t.indexOf(`click`)!==-1},isContextMenuOnly(){let{action:e}=this.$props;return e===`contextmenu`||e.length===1&&e[0]===`contextmenu`},isContextmenuToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`contextmenu`)!==-1||t.indexOf(`contextmenu`)!==-1},isClickToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`click`)!==-1||t.indexOf(`click`)!==-1},isMouseEnterToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`hover`)!==-1||t.indexOf(`mouseenter`)!==-1},isMouseLeaveToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`hover`)!==-1||t.indexOf(`mouseleave`)!==-1},isFocusToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`focus`)!==-1||t.indexOf(`focus`)!==-1},isBlurToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`focus`)!==-1||t.indexOf(`blur`)!==-1},forcePopupAlign(){var e;this.$data.sPopupVisible&&((e=this.popupRef)==null||e.forceAlign())},fireEvents(e,t){this.childOriginEvents[e]&&this.childOriginEvents[e](t);let n=this.$props[e]||this.$attrs[e];n&&n(t)},close(){this.setPopupVisible(!1)}},render(){let{$attrs:e}=this,t=he(nt(this)),{alignPoint:n,getPopupContainer:r}=this.$props,i=t[0];this.childOriginEvents=Se(i);let a={key:`trigger`};a.onContextmenu=this.isContextmenuToShow()?this.onContextmenu:this.createTwoChains(`onContextmenu`),this.isClickToHide()||this.isClickToShow()?(a.onClick=this.onClick,a.onMousedown=this.onMousedown,a[sn?`onTouchstartPassive`:`onTouchstart`]=this.onTouchstart):(a.onClick=this.createTwoChains(`onClick`),a.onMousedown=this.createTwoChains(`onMousedown`),a[sn?`onTouchstartPassive`:`onTouchstart`]=this.createTwoChains(`onTouchstart`)),this.isMouseEnterToShow()?(a.onMouseenter=this.onMouseenter,n&&(a.onMousemove=this.onMouseMove)):a.onMouseenter=this.createTwoChains(`onMouseenter`),a.onMouseleave=this.isMouseLeaveToHide()?this.onMouseleave:this.createTwoChains(`onMouseleave`),this.isFocusToShow()||this.isBlurToHide()?(a.onFocus=this.onFocus,a.onBlur=this.onBlur):(a.onFocus=this.createTwoChains(`onFocus`),a.onBlur=e=>{e&&(!e.relatedTarget||!ve(e.target,e.relatedTarget))&&this.createTwoChains(`onBlur`)(e)});let o=W(i&&i.props&&i.props.class,e.class);o&&(a.class=o);let s=si(i,G(G({},a),{ref:`triggerRef`}),!0,!0),c=V(mc,{key:`portal`,getContainer:r&&(()=>r(this.getRootDomNode())),didUpdate:this.handlePortalUpdate,visible:this.$data.sPopupVisible},{default:this.getComponent});return V(F,null,[s,c])}}),_c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{r.value&&r.value.focus()},blur:()=>{r.value&&r.value.blur()},input:r,setSelectionRange:(e,t,n)=>{var i;(i=r.value)==null||i.setSelectionRange(e,t,n)},select:()=>{var e;(e=r.value)==null||e.select()},getSelectionStart:()=>r.value?.selectionStart,getSelectionEnd:()=>r.value?.selectionEnd,getScrollTop:()=>r.value?.scrollTop}),()=>{let{tag:t,value:n}=e,i=_c(e,[`tag`,`value`]);return V(t,U(U({},i),{},{ref:r,value:n}),null)}}});function yc(e){return Object.keys(e).reduce((t,n)=>(e[n]==null||(t+=`${n}: ${e[n]};`),t),``)}var bc=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.value,s],()=>{s.value||(o.value=e.value)},{immediate:!0});let c=e=>{n(`change`,e)},l=e=>{s.value=!0,e.target.composing=!0,n(`compositionstart`,e)},u=e=>{s.value=!1,e.target.composing=!1,n(`compositionend`,e);let t=document.createEvent(`HTMLEvents`);t.initEvent(`input`,!0,!0),e.target.dispatchEvent(t),c(e)},d=t=>{s.value&&e.lazy?o.value=t.target.value:n(`input`,t)},f=e=>{n(`blur`,e)},p=e=>{n(`focus`,e)},m=()=>{a.value&&a.value.focus()},h=()=>{a.value&&a.value.blur()},g=e=>{n(`keydown`,e)},_=e=>{n(`keyup`,e)};i({focus:m,blur:h,input:j(()=>a.value?.input),setSelectionRange:(e,t,n)=>{var r;(r=a.value)==null||r.setSelectionRange(e,t,n)},select:()=>{var e;(e=a.value)==null||e.select()},getSelectionStart:()=>a.value?.getSelectionStart(),getSelectionEnd:()=>a.value?.getSelectionEnd(),getScrollTop:()=>a.value?.getScrollTop()});let v=e=>{n(`mousedown`,e)},b=e=>{n(`paste`,e)},x=j(()=>e.style&&typeof e.style!=`string`?yc(e.style):e.style);return()=>{let{style:t,lazy:n}=e,i=bc(e,[`style`,`lazy`]);return V(vc,U(U(U({},i),r),{},{style:x.value,onInput:d,onChange:c,onBlur:f,onFocus:p,ref:a,value:o.value,onCompositionstart:l,onCompositionend:u,onKeyup:_,onKeydown:g,onPaste:b,onMousedown:v}),null)}}});function Sc(e){let t=typeof e==`function`?e():e,n=P(t);function r(e){n.value=e}return[n,r]}var Cc={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z`}}]},name:`search`,theme:`outlined`};function wc(e){for(var t=1;t{let i=te({});return t(r,i),o(()=>{G(i,e,n||{})}),i},useInject:()=>n(r,e)||{}}}var Oc=Symbol(`ContextProps`),kc=Symbol(`InternalContextProps`),Ac=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:j(()=>!0),r=P(new Map);p(),M([n,r],()=>{}),t(Oc,e),t(kc,{addFormItemField:(e,t)=>{r.value.set(e,t),r.value=new Map(r.value)},removeFormItemField:e=>{r.value.delete(e),r.value=new Map(r.value)}})},jc={id:j(()=>void 0),onFieldBlur:()=>{},onFieldChange:()=>{},clearValidate:()=>{}},Mc={addFormItemField:()=>{},removeFormItemField:()=>{}},Nc=()=>{let e=n(kc,Mc),r=Symbol(`FormItemFieldKey`),i=p();return e.addFormItemField(r,i.type),c(()=>{e.removeFormItemField(r)}),t(kc,Mc),t(Oc,jc),n(Oc,jc)},Pc=B({compatConfig:{MODE:3},name:`AFormItemRest`,setup(e,n){let{slots:r}=n;return t(kc,Mc),t(Oc,jc),()=>r.default?.call(r)}}),Fc=Dc({}),Ic=B({name:`NoFormStatus`,setup(e,t){let{slots:n}=t;return Fc.useProvide({}),()=>n.default?.call(n)}});function Lc(e,t,n){return W({[`${e}-status-success`]:t===`success`,[`${e}-status-warning`]:t===`warning`,[`${e}-status-error`]:t===`error`,[`${e}-status-validating`]:t===`validating`,[`${e}-has-feedback`]:n})}var Rc=(e,t)=>t||e,zc=e=>{let{componentCls:t}=e;return{[t]:{display:`inline-flex`,"&-block":{display:`flex`,width:`100%`},"&-vertical":{flexDirection:`column`}}}},Bc=e=>{let{componentCls:t}=e;return{[t]:{display:`inline-flex`,"&-rtl":{direction:`rtl`},"&-vertical":{flexDirection:`column`},"&-align":{flexDirection:`column`,"&-center":{alignItems:`center`},"&-start":{alignItems:`flex-start`},"&-end":{alignItems:`flex-end`},"&-baseline":{alignItems:`baseline`}},[`${t}-item`]:{"&:empty":{display:`none`}}}}},Vc=at(`Space`,e=>[Bc(e),zc(e)]),Hc=`[object Symbol]`;function Uc(e){return typeof e==`symbol`||ho(e)&&Bi(e)==Hc}function Wc(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n0){if(++t>=ml)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function vl(e){return function(){return e}}var yl=function(){try{var e=sa(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),bl=_l(yl?function(e,t){return yl(e,`toString`,{configurable:!0,enumerable:!1,value:vl(t),writable:!0})}:ll);function xl(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}function Dl(e,t,n){t==`__proto__`&&yl?yl(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Ol=Object.prototype.hasOwnProperty;function kl(e,t,n){var r=e[t];(!(Ol.call(e,t)&&mi(r,n))||n===void 0&&!(t in e))&&Dl(e,t,n)}function Al(e,t,n,r){var i=!n;n||={};for(var a=-1,o=t.length;++a0&&n(s)?t>1?nu(s,t-1,n,r,i):ao(i,s):r||(i[i.length]=s)}return i}function ru(e){return e!=null&&e.length?nu(e,1):[]}function iu(e){return bl(Ml(e,void 0,ru),e+``)}var au=ms(Object.getPrototypeOf,Object),ou=`[object Object]`,su=Function.prototype,cu=Object.prototype,lu=su.toString,uu=cu.hasOwnProperty,du=lu.call(Object);function fu(e){if(!ho(e)||Bi(e)!=ou)return!1;var t=au(e);if(t===null)return!0;var n=uu.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&lu.call(n)==du}function pu(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=t||n<0||d&&r>=a}function _(){var e=sf();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(sf())}function x(){var e=sf(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function ff(e){return ho(e)&&vs(e)}function pf(e,t,n){for(var r=-1,i=e==null?0:e.length;++r-1?i[a?t[o]:o]:void 0}}var gf=Math.max;function _f(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:cl(n);return i<0&&(i=gf(r+i,0)),Sl(e,of(t,3),i)}var vf=hf(_f),yf=Math.min;function bf(e,t,n){for(var r=n?pf:El,i=e[0].length,a=e.length,o=a,s=Array(a),c=1/0,l=[];o--;){var u=e[o];o&&t&&(u=Wc(u,rs(t))),c=yf(u.length,c),s[o]=!n&&(t||i>=120&&u.length>=120)?new Pa(o&&u):void 0}u=e[0];var d=-1,f=s[0];outer:for(;++d1,t}),Al(e,wu(e),n),r&&(n=zd(n,jf|Mf|Nf,Af));for(var i=t.length;i--;)kf(n,t[i]);return n}),Ff=()=>({compactSize:String,compactDirection:K.oneOf(ge(`horizontal`,`vertical`)).def(`horizontal`),isFirstItem:se(),isLastItem:se()}),If=Dc(null),Lf=(e,t)=>{let n=If.useInject(),r=j(()=>{if(!n||Df(n))return``;let{compactDirection:r,isFirstItem:i,isLastItem:a}=n,o=r===`vertical`?`-vertical-`:`-`;return W({[`${e.value}-compact${o}item`]:!0,[`${e.value}-compact${o}first-item`]:i,[`${e.value}-compact${o}last-item`]:a,[`${e.value}-compact${o}item-rtl`]:t.value===`rtl`})});return{compactSize:j(()=>n?.compactSize),compactDirection:j(()=>n?.compactDirection),compactItemClassnames:r}},Rf=B({name:`NoCompactStyle`,setup(e,t){let{slots:n}=t;return If.useProvide(null),()=>n.default?.call(n)}}),zf=()=>({prefixCls:String,size:{type:String},direction:K.oneOf(ge(`horizontal`,`vertical`)).def(`horizontal`),align:K.oneOf(ge(`start`,`end`,`center`,`baseline`)),block:{type:Boolean,default:void 0}}),Bf=B({name:`CompactItem`,props:Ff(),setup(e,t){let{slots:n}=t;return If.useProvide(e),()=>n.default?.call(n)}});B({name:`ASpaceCompact`,inheritAttrs:!1,props:zf(),setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=Fe(`space-compact`,e),o=If.useInject(),[s,c]=Vc(i),l=j(()=>W(i.value,c.value,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-block`]:e.block,[`${i.value}-vertical`]:e.direction===`vertical`}));return()=>{let t=ke(r.default?.call(r)||[]);return t.length===0?null:s(V(`div`,U(U({},n),{},{class:[l.value,n.class]}),[t.map((n,r)=>{let a=n&&n.key||`${i.value}-item-${r}`,s=!o||Df(o);return V(Bf,{key:a,compactSize:e.size??`middle`,compactDirection:e.direction,isFirstItem:r===0&&(s||o?.isFirstItem),isLastItem:r===t.length-1&&(s||o?.isLastItem)},{default:()=>[n]})})]))}}});var Vf=e=>({animationDuration:e,animationFillMode:`both`}),Hf=e=>({animationDuration:e,animationFillMode:`both`}),Uf=function(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0&&arguments[4]?`&`:``;return{[` + ${i}${e}-enter, + ${i}${e}-appear + `]:G(G({},Vf(r)),{animationPlayState:`paused`}),[`${i}${e}-leave`]:G(G({},Hf(r)),{animationPlayState:`paused`}),[` + ${i}${e}-enter${e}-enter-active, + ${i}${e}-appear${e}-appear-active + `]:{animationName:t,animationPlayState:`running`},[`${i}${e}-leave${e}-leave-active`]:{animationName:n,animationPlayState:`running`,pointerEvents:`none`}}},Wf=new be(`antZoomIn`,{"0%":{transform:`scale(0.2)`,opacity:0},"100%":{transform:`scale(1)`,opacity:1}}),Gf=new be(`antZoomOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0.2)`,opacity:0}}),Kf=new be(`antZoomBigIn`,{"0%":{transform:`scale(0.8)`,opacity:0},"100%":{transform:`scale(1)`,opacity:1}}),qf=new be(`antZoomBigOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0.8)`,opacity:0}}),Jf=new be(`antZoomUpIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`50% 0%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`50% 0%`}}),Yf=new be(`antZoomUpOut`,{"0%":{transform:`scale(1)`,transformOrigin:`50% 0%`},"100%":{transform:`scale(0.8)`,transformOrigin:`50% 0%`,opacity:0}}),Xf=new be(`antZoomLeftIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`0% 50%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`0% 50%`}}),Zf=new be(`antZoomLeftOut`,{"0%":{transform:`scale(1)`,transformOrigin:`0% 50%`},"100%":{transform:`scale(0.8)`,transformOrigin:`0% 50%`,opacity:0}}),Qf=new be(`antZoomRightIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`100% 50%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`100% 50%`}}),$f=new be(`antZoomRightOut`,{"0%":{transform:`scale(1)`,transformOrigin:`100% 50%`},"100%":{transform:`scale(0.8)`,transformOrigin:`100% 50%`,opacity:0}}),ep=new be(`antZoomDownIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`50% 100%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`50% 100%`}}),tp=new be(`antZoomDownOut`,{"0%":{transform:`scale(1)`,transformOrigin:`50% 100%`},"100%":{transform:`scale(0.8)`,transformOrigin:`50% 100%`,opacity:0}}),np={zoom:{inKeyframes:Wf,outKeyframes:Gf},"zoom-big":{inKeyframes:Kf,outKeyframes:qf},"zoom-big-fast":{inKeyframes:Kf,outKeyframes:qf},"zoom-left":{inKeyframes:Xf,outKeyframes:Zf},"zoom-right":{inKeyframes:Qf,outKeyframes:$f},"zoom-up":{inKeyframes:Jf,outKeyframes:Yf},"zoom-down":{inKeyframes:ep,outKeyframes:tp}},rp=(e,t)=>{let{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:i,outKeyframes:a}=np[t];return[Uf(r,i,a,t===`zoom-big-fast`?e.motionDurationFast:e.motionDurationMid),{[` + ${r}-enter, + ${r}-appear + `]:{transform:`scale(0)`,opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:`none`}},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},ip=e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:`hidden`,"&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:`hidden`,transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}});function ap(e,t,n){let{focusElCls:r,focus:i,borderElCls:a}=n,o=a?`> *`:``,s=[`hover`,i?`focus`:null,`active`].filter(Boolean).map(e=>`&:${e} ${o}`).join(`,`);return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-e.lineWidth},"&-item":G(G({[s]:{zIndex:2}},r?{[`&${r}`]:{zIndex:2}}:{}),{[`&[disabled] ${o}`]:{zIndex:0}})}}function op(e,t,n){let{borderElCls:r}=n,i=r?`> ${r}`:``;return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${i}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function sp(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0},{componentCls:n}=e,r=`${n}-compact`;return{[r]:G(G({},ap(e,r,t)),op(n,r,t))}}var cp=[`xxxl`,`xxl`,`xl`,`lg`,`md`,`sm`,`xs`],lp=e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`,xxxl:`{min-width: ${e.screenXXXL}px}`});function up(){let[,e]=we();return j(()=>{let t=lp(e.value),n=new Map,r=-1,i={};return{matchHandlers:{},dispatch(e){return i=e,n.forEach(e=>e(i)),n.size>=1},subscribe(e){return n.size||this.register(),r+=1,n.set(r,e),e(i),r},unsubscribe(e){n.delete(e),n.size||this.unregister()},unregister(){Object.keys(t).forEach(e=>{let n=t[e],r=this.matchHandlers[n];r?.mql.removeListener(r?.listener)}),n.clear()},register(){Object.keys(t).forEach(e=>{let n=t[e],r=t=>{let{matches:n}=t;this.dispatch(G(G({},i),{[e]:n}))},a=window.matchMedia(n);a.addListener(r),this.matchHandlers[n]={mql:a,listener:r},r(a)})},responsiveMap:t}})}var dp={adjustX:1,adjustY:1},fp=[0,0],pp={left:{points:[`cr`,`cl`],overflow:dp,offset:[-4,0],targetOffset:fp},right:{points:[`cl`,`cr`],overflow:dp,offset:[4,0],targetOffset:fp},top:{points:[`bc`,`tc`],overflow:dp,offset:[0,-4],targetOffset:fp},bottom:{points:[`tc`,`bc`],overflow:dp,offset:[0,4],targetOffset:fp},topLeft:{points:[`bl`,`tl`],overflow:dp,offset:[0,-4],targetOffset:fp},leftTop:{points:[`tr`,`tl`],overflow:dp,offset:[-4,0],targetOffset:fp},topRight:{points:[`br`,`tr`],overflow:dp,offset:[0,-4],targetOffset:fp},rightTop:{points:[`tl`,`tr`],overflow:dp,offset:[4,0],targetOffset:fp},bottomRight:{points:[`tr`,`br`],overflow:dp,offset:[0,4],targetOffset:fp},rightBottom:{points:[`bl`,`br`],overflow:dp,offset:[4,0],targetOffset:fp},bottomLeft:{points:[`tl`,`bl`],overflow:dp,offset:[0,4],targetOffset:fp},leftBottom:{points:[`br`,`bl`],overflow:dp,offset:[-4,0],targetOffset:fp}},mp={prefixCls:String,id:String,overlayInnerStyle:K.any},hp=B({compatConfig:{MODE:3},name:`TooltipContent`,props:mp,setup(e,t){let{slots:n}=t;return()=>V(`div`,{class:`${e.prefixCls}-inner`,id:e.id,role:`tooltip`,style:e.overlayInnerStyle},[n.overlay?.call(n)])}}),gp=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{}),overlayStyle:{type:Object,default:void 0},overlayClassName:String,prefixCls:K.string.def(`rc-tooltip`),mouseEnterDelay:K.number.def(.1),mouseLeaveDelay:K.number.def(.1),getPopupContainer:Function,destroyTooltipOnHide:{type:Boolean,default:!1},align:K.object.def(()=>({})),arrowContent:K.any.def(null),tipId:String,builtinPlacements:K.object,overlayInnerStyle:{type:Object,default:void 0},popupVisible:{type:Boolean,default:void 0},onVisibleChange:Function,onPopupAlign:Function,arrow:{type:Boolean,default:!0}},setup(e,t){let{slots:n,attrs:r,expose:i}=t,a=y(),s=()=>{let{prefixCls:t,tipId:r,overlayInnerStyle:i}=e;return[e.arrow?V(`div`,{class:`${t}-arrow`,key:`arrow`},[ze(n,e,`arrowContent`)]):null,V(hp,{key:`content`,prefixCls:t,id:r,overlayInnerStyle:i},{overlay:n.overlay})]};i({getPopupDomNode:()=>a.value.getPopupDomNode(),triggerDOM:a,forcePopupAlign:()=>a.value?.forcePopupAlign()});let c=y(!1),l=y(!1);return o(()=>{let{destroyTooltipOnHide:t}=e;if(typeof t==`boolean`)c.value=t;else if(t&&typeof t==`object`){let{keepParent:e}=t;c.value=e===!0,l.value=e===!1}}),()=>{let{overlayClassName:t,trigger:i,mouseEnterDelay:o,mouseLeaveDelay:u,overlayStyle:d,prefixCls:f,afterVisibleChange:p,transitionName:m,animation:h,placement:g,align:_,destroyTooltipOnHide:v,defaultVisible:y}=e,b=gp(e,[`overlayClassName`,`trigger`,`mouseEnterDelay`,`mouseLeaveDelay`,`overlayStyle`,`prefixCls`,`afterVisibleChange`,`transitionName`,`animation`,`placement`,`align`,`destroyTooltipOnHide`,`defaultVisible`]),x=G({},b);e.visible!==void 0&&(x.popupVisible=e.visible);let S=G(G(G({popupClassName:t,prefixCls:f,action:i,builtinPlacements:pp,popupPlacement:g,popupAlign:_,afterPopupVisibleChange:p,popupTransitionName:m,popupAnimation:h,defaultPopupVisible:y,destroyPopupOnHide:c.value,autoDestroy:l.value,mouseLeaveDelay:u,popupStyle:d,mouseEnterDelay:o},x),r),{onPopupVisibleChange:e.onVisibleChange||_p,onPopupAlign:e.onPopupAlign||_p,ref:a,arrow:!!e.arrow,popup:s()});return V(gc,S,{default:n.default})}}}),yp=(()=>({trigger:[String,Array],open:{type:Boolean,default:void 0},visible:{type:Boolean,default:void 0},placement:String,color:String,transitionName:String,overlayStyle:Ee(),overlayInnerStyle:Ee(),overlayClassName:String,openClassName:String,prefixCls:String,mouseEnterDelay:Number,mouseLeaveDelay:Number,getPopupContainer:Function,arrowPointAtCenter:{type:Boolean,default:void 0},arrow:{type:[Boolean,Object],default:!0},autoAdjustOverflow:{type:[Boolean,Object],default:void 0},destroyTooltipOnHide:{type:Boolean,default:void 0},align:Ee(),builtinPlacements:Ee(),children:Array,onVisibleChange:Function,"onUpdate:visible":Function,onOpenChange:Function,"onUpdate:open":Function})),bp={adjustX:1,adjustY:1},xp={adjustX:0,adjustY:0},Sp=[0,0];function Cp(e){return typeof e==`boolean`?e?bp:xp:G(G({},xp),e)}function wp(e){let{arrowWidth:t=4,horizontalArrowShift:n=16,verticalArrowShift:r=8,autoAdjustOverflow:i,arrowPointAtCenter:a}=e,o={left:{points:[`cr`,`cl`],offset:[-4,0]},right:{points:[`cl`,`cr`],offset:[4,0]},top:{points:[`bc`,`tc`],offset:[0,-4]},bottom:{points:[`tc`,`bc`],offset:[0,4]},topLeft:{points:[`bl`,`tc`],offset:[-(n+t),-4]},leftTop:{points:[`tr`,`cl`],offset:[-4,-(r+t)]},topRight:{points:[`br`,`tc`],offset:[n+t,-4]},rightTop:{points:[`tl`,`cr`],offset:[4,-(r+t)]},bottomRight:{points:[`tr`,`bc`],offset:[n+t,4]},rightBottom:{points:[`bl`,`cr`],offset:[4,r+t]},bottomLeft:{points:[`tl`,`bc`],offset:[-(n+t),4]},leftBottom:{points:[`br`,`cl`],offset:[-4,r+t]}};return Object.keys(o).forEach(e=>{o[e]=a?G(G({},o[e]),{overflow:Cp(i),targetOffset:Sp}):G(G({},pp[e]),{overflow:Cp(i)}),o[e].ignoreShake=!0}),o}function Tp(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(let t=0,n=e.length;t`${e}-inverse`);function Dp(e){return!(arguments.length>1&&arguments[1]!==void 0)||arguments[1]?[...Ep,...pn].includes(e):pn.includes(e)}function Op(e,t){let n=Dp(t),r=W({[`${e}-${t}`]:t&&n}),i={},a={};return t&&!n&&(i.background=t,a[`--antd-arrow-background-color`]=t),{className:r,overlayStyle:i,arrowStyle:a}}function kp(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``;return e.map(e=>`${t}${e}`).join(`,`)}function Ap(e){let{sizePopupArrow:t,contentRadius:n,borderRadiusOuter:r,limitVerticalRadius:i}=e,a=t/2-Math.ceil(r*(Math.sqrt(2)-1)),o=(n>12?n+2:12)-a;return{dropdownArrowOffset:o,dropdownArrowOffsetVertical:i?8-a:o}}function jp(e,t){let{componentCls:n,sizePopupArrow:r,marginXXS:i,borderRadiusXS:a,borderRadiusOuter:o,boxShadowPopoverArrow:s}=e,{colorBg:c,showArrowCls:l,contentRadius:u=e.borderRadiusLG,limitVerticalRadius:d}=t,{dropdownArrowOffsetVertical:f,dropdownArrowOffset:p}=Ap({sizePopupArrow:r,contentRadius:u,borderRadiusOuter:o,limitVerticalRadius:d}),m=r/2+i;return{[n]:{[`${n}-arrow`]:[G(G({position:`absolute`,zIndex:1,display:`block`},mn(r,a,o,c,s)),{"&:before":{background:c}})],[[`&-placement-top ${n}-arrow`,`&-placement-topLeft ${n}-arrow`,`&-placement-topRight ${n}-arrow`].join(`,`)]:{bottom:0,transform:`translateY(100%) rotate(180deg)`},[`&-placement-top ${n}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(100%) rotate(180deg)`},[`&-placement-topLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:p}},[`&-placement-topRight ${n}-arrow`]:{right:{_skip_check_:!0,value:p}},[[`&-placement-bottom ${n}-arrow`,`&-placement-bottomLeft ${n}-arrow`,`&-placement-bottomRight ${n}-arrow`].join(`,`)]:{top:0,transform:`translateY(-100%)`},[`&-placement-bottom ${n}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(-100%)`},[`&-placement-bottomLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:p}},[`&-placement-bottomRight ${n}-arrow`]:{right:{_skip_check_:!0,value:p}},[[`&-placement-left ${n}-arrow`,`&-placement-leftTop ${n}-arrow`,`&-placement-leftBottom ${n}-arrow`].join(`,`)]:{right:{_skip_check_:!0,value:0},transform:`translateX(100%) rotate(90deg)`},[`&-placement-left ${n}-arrow`]:{top:{_skip_check_:!0,value:`50%`},transform:`translateY(-50%) translateX(100%) rotate(90deg)`},[`&-placement-leftTop ${n}-arrow`]:{top:f},[`&-placement-leftBottom ${n}-arrow`]:{bottom:f},[[`&-placement-right ${n}-arrow`,`&-placement-rightTop ${n}-arrow`,`&-placement-rightBottom ${n}-arrow`].join(`,`)]:{left:{_skip_check_:!0,value:0},transform:`translateX(-100%) rotate(-90deg)`},[`&-placement-right ${n}-arrow`]:{top:{_skip_check_:!0,value:`50%`},transform:`translateY(-50%) translateX(-100%) rotate(-90deg)`},[`&-placement-rightTop ${n}-arrow`]:{top:f},[`&-placement-rightBottom ${n}-arrow`]:{bottom:f},[kp([`&-placement-topLeft`,`&-placement-top`,`&-placement-topRight`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingBottom:m},[kp([`&-placement-bottomLeft`,`&-placement-bottom`,`&-placement-bottomRight`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingTop:m},[kp([`&-placement-leftTop`,`&-placement-left`,`&-placement-leftBottom`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingRight:{_skip_check_:!0,value:m}},[kp([`&-placement-rightTop`,`&-placement-right`,`&-placement-rightBottom`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingLeft:{_skip_check_:!0,value:m}}}}}var Mp=e=>{let{componentCls:t,tooltipMaxWidth:n,tooltipColor:r,tooltipBg:i,tooltipBorderRadius:a,zIndexPopup:o,controlHeight:s,boxShadowSecondary:c,paddingSM:l,paddingXS:u,tooltipRadiusOuter:d}=e;return[{[t]:G(G(G(G({},le(e)),{position:`absolute`,zIndex:o,display:`block`,"&":[{width:`max-content`},{width:`intrinsic`}],maxWidth:n,visibility:`visible`,"&-hidden":{display:`none`},"--antd-arrow-background-color":i,[`${t}-inner`]:{minWidth:s,minHeight:s,padding:`${l/2}px ${u}px`,color:r,textAlign:`start`,textDecoration:`none`,wordWrap:`break-word`,backgroundColor:i,borderRadius:a,boxShadow:c},[[`&-placement-left`,`&-placement-leftTop`,`&-placement-leftBottom`,`&-placement-right`,`&-placement-rightTop`,`&-placement-rightBottom`].join(`,`)]:{[`${t}-inner`]:{borderRadius:Math.min(a,8)}},[`${t}-content`]:{position:`relative`}}),hn(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t}-${e}`]:{[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{"--antd-arrow-background-color":r}}}})),{"&-rtl":{direction:`rtl`}})},jp(ce(e,{borderRadiusOuter:d}),{colorBg:`var(--antd-arrow-background-color)`,showArrowCls:``,contentRadius:a,limitVerticalRadius:!0}),{[`${t}-pure`]:{position:`relative`,maxWidth:`none`}}]},Np=((e,t)=>at(`Tooltip`,e=>{if(t?.value===!1)return[];let{borderRadius:n,colorTextLightSolid:r,colorBgDefault:i,borderRadiusOuter:a}=e;return[Mp(ce(e,{tooltipMaxWidth:250,tooltipColor:r,tooltipBorderRadius:n,tooltipBg:i,tooltipRadiusOuter:a>4?4:a})),rp(e,`zoom-big-fast`)]},e=>{let{zIndexPopupBase:t,colorBgSpotlight:n}=e;return{zIndexPopup:t+70,colorBgDefault:n}})(e)),Pp=(e,t)=>{let n={},r=G({},e);return t.forEach(t=>{e&&t in e&&(n[t]=e[t],delete r[t])}),{picked:n,omitted:r}},Fp=B({compatConfig:{MODE:3},name:`ATooltip`,inheritAttrs:!1,props:Qt(G(G({},yp()),{title:K.any}),{trigger:`hover`,align:{},placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0}),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i,expose:a}=t,{prefixCls:o,getPopupContainer:s,direction:c,rootPrefixCls:l}=Fe(`tooltip`,e),u=j(()=>e.open??e.visible),d=P(Tp([e.open,e.visible])),f=P(),p;M(u,e=>{q.cancel(p),p=q(()=>{d.value=!!e})});let m=()=>{let t=e.title??n.title;return!t&&t!==0},h=e=>{let t=m();u.value===void 0&&(d.value=!t&&e),t||(r(`update:visible`,e),r(`visibleChange`,e),r(`update:open`,e),r(`openChange`,e))};a({getPopupDomNode:()=>f.value.getPopupDomNode(),open:d,forcePopupAlign:()=>f.value?.forcePopupAlign()});let g=j(()=>{let{builtinPlacements:t,autoAdjustOverflow:n,arrow:r,arrowPointAtCenter:i}=e,a=i;return typeof r==`object`&&(a=r.pointAtCenter??i),t||wp({arrowPointAtCenter:a,autoAdjustOverflow:n})}),_=e=>e||e===``,v=e=>{let t=e.type;if(typeof t==`object`&&e.props&&((t.__ANT_BUTTON===!0||t===`button`)&&_(e.props.disabled)||t.__ANT_SWITCH===!0&&(_(e.props.disabled)||_(e.props.loading))||t.__ANT_RADIO===!0&&_(e.props.disabled))){let{picked:t,omitted:n}=Pp(Ye(e),[`position`,`left`,`right`,`top`,`bottom`,`float`,`display`,`zIndex`]),r=G(G({display:`inline-block`},t),{cursor:`not-allowed`,lineHeight:1,width:e.props&&e.props.block?`100%`:void 0}),i=si(e,{style:G(G({},n),{pointerEvents:`none`})},!0);return V(`span`,{style:r,class:`${o.value}-disabled-compatible-wrapper`},[i])}return e},y=()=>e.title??n.title?.call(n),b=(e,t)=>{let n=g.value,r=Object.keys(n).find(e=>n[e].points[0]===t.points?.[0]&&n[e].points[1]===t.points?.[1]);if(r){let n=e.getBoundingClientRect(),i={top:`50%`,left:`50%`};r.indexOf(`top`)>=0||r.indexOf(`Bottom`)>=0?i.top=`${n.height-t.offset[1]}px`:(r.indexOf(`Top`)>=0||r.indexOf(`bottom`)>=0)&&(i.top=`${-t.offset[1]}px`),r.indexOf(`left`)>=0||r.indexOf(`Right`)>=0?i.left=`${n.width-t.offset[0]}px`:(r.indexOf(`right`)>=0||r.indexOf(`Left`)>=0)&&(i.left=`${-t.offset[0]}px`),e.style.transformOrigin=`${i.left} ${i.top}`}},x=j(()=>Op(o.value,e.color)),S=j(()=>i[`data-popover-inject`]),[C,w]=Np(o,j(()=>!S.value));return()=>{let{openClassName:t,overlayClassName:r,overlayStyle:a,overlayInnerStyle:p}=e,_=he(n.default?.call(n))??null;_=_.length===1?_[0]:_;let S=d.value;if(u.value===void 0&&m()&&(S=!1),!_)return null;let T=v(Pe(_)&&!We(_)?_:V(`span`,null,[_])),ee=W({[t||`${o.value}-open`]:!0,[T.props&&T.props.class]:T.props&&T.props.class}),E=W(r,{[`${o.value}-rtl`]:c.value===`rtl`},x.value.className,w.value),D=G(G({},x.value.overlayStyle),p),O=x.value.arrowStyle,k=G(G(G({},i),e),{prefixCls:o.value,arrow:!!e.arrow,getPopupContainer:s?.value,builtinPlacements:g.value,visible:S,ref:f,overlayClassName:E,overlayStyle:G(G({},O),a),overlayInnerStyle:D,onVisibleChange:h,onPopupAlign:b,transitionName:He(l.value,`zoom-big-fast`,e.transitionName)});return C(V(vp,k,{default:()=>[d.value?si(T,{class:ee}):T],arrowContent:()=>V(`span`,{class:`${o.value}-arrow-content`},null),overlay:y}))}}}),Ip=Qe(Fp),Lp=e=>{let{componentCls:t,colorPrimary:n}=e;return{[t]:{position:`absolute`,background:`transparent`,pointerEvents:`none`,boxSizing:`border-box`,color:`var(--wave-color, ${n})`,boxShadow:`0 0 0 0 currentcolor`,opacity:.2,"&.wave-motion-appear":{transition:[`box-shadow 0.4s ${e.motionEaseOutCirc}`,`opacity 2s ${e.motionEaseOutCirc}`].join(`,`),"&-active":{boxShadow:`0 0 0 6px currentcolor`,opacity:0}}}}},Rp=at(`Wave`,e=>[Lp(e)]);function zp(e){let t=(e||``).match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return t&&t[1]&&t[2]&&t[3]?t[1]!==t[2]||t[2]!==t[3]:!0}function Bp(e){return e&&e!==`#fff`&&e!==`#ffffff`&&e!==`rgb(255, 255, 255)`&&e!==`rgba(255, 255, 255, 1)`&&zp(e)&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&e!==`transparent`}function Vp(e){let{borderTopColor:t,borderColor:n,backgroundColor:r}=getComputedStyle(e);return Bp(t)?t:Bp(n)?n:Bp(r)?r:null}function Hp(e){return Number.isNaN(e)?0:e}var Up=B({props:{target:Ee(),className:String},setup(e){let t=y(null),[n,r]=Sc(null),[i,o]=Sc([]),[s,l]=Sc(0),[u,f]=Sc(0),[p,m]=Sc(0),[h,g]=Sc(0),[_,v]=Sc(!1);function b(){let{target:t}=e,n=getComputedStyle(t);r(Vp(t));let i=n.position===`static`,{borderLeftWidth:a,borderTopWidth:s}=n;l(i?t.offsetLeft:Hp(-parseFloat(a))),f(i?t.offsetTop:Hp(-parseFloat(s))),m(t.offsetWidth),g(t.offsetHeight);let{borderTopLeftRadius:c,borderTopRightRadius:u,borderBottomLeftRadius:d,borderBottomRightRadius:p}=n;o([c,u,p,d].map(e=>Hp(parseFloat(e))))}let x,S,C,w=()=>{clearTimeout(C),q.cancel(S),x?.disconnect()},T=()=>{let e=t.value?.parentElement;e&&(A(null,e),e.parentElement&&e.parentElement.removeChild(e))};a(()=>{w(),C=setTimeout(()=>{T()},5e3);let{target:t}=e;t&&(S=q(()=>{b(),v(!0)}),typeof ResizeObserver<`u`&&(x=new ResizeObserver(b),x.observe(t)))}),c(()=>{w()});let ee=e=>{e.propertyName===`opacity`&&T()};return()=>{if(!_.value)return null;let r={left:`${s.value}px`,top:`${u.value}px`,width:`${p.value}px`,height:`${h.value}px`,borderRadius:i.value.map(e=>`${e}px`).join(` `)};return n&&(r[`--wave-color`]=n.value),V(d,{appear:!0,name:`wave-motion`,appearFromClass:`wave-motion-appear`,appearActiveClass:`wave-motion-appear`,appearToClass:`wave-motion-appear wave-motion-appear-active`},{default:()=>[V(`div`,{ref:t,class:e.className,style:r,onTransitionend:ee},null)]})}}});function Wp(e,t){let n=document.createElement(`div`);return n.style.position=`absolute`,n.style.left=`0px`,n.style.top=`0px`,e?.insertBefore(n,e?.firstChild),A(V(Up,{target:e,className:t},null),n),()=>{A(null,n),n.parentElement&&n.parentElement.removeChild(n)}}function Gp(e,t){let n=p(),r;function i(){let i=Ae(n);r?.(),!t?.value?.disabled&&i&&(r=Wp(i,e.value))}return c(()=>{r?.()}),i}var Kp=B({compatConfig:{MODE:3},name:`Wave`,props:{disabled:Boolean},setup(e,t){let{slots:n}=t,r=p(),{prefixCls:i,wave:o}=Fe(`wave`,e),[,s]=Rp(i),l=Gp(j(()=>W(i.value,s.value)),o),u,d=()=>{Ae(r).removeEventListener(`click`,u,!0)};return a(()=>{M(()=>e.disabled,()=>{d(),D(()=>{let t=Ae(r);t?.removeEventListener(`click`,u,!0),t&&t.nodeType===1&&!e.disabled&&(u=e=>{e.target.tagName===`INPUT`||!ci(e.target)||!t.getAttribute||t.getAttribute(`disabled`)||t.disabled||t.className.includes(`disabled`)||t.className.includes(`-leave`)||l()},t.addEventListener(`click`,u,!0))})},{immediate:!0,flush:`post`})}),c(()=>{d()}),()=>n.default?.call(n)[0]}}),qp=()=>({prefixCls:String,type:String,htmlType:{type:String,default:`button`},shape:{type:String},size:{type:String},loading:{type:[Boolean,Object],default:()=>!1},disabled:{type:Boolean,default:void 0},ghost:{type:Boolean,default:void 0},block:{type:Boolean,default:void 0},danger:{type:Boolean,default:void 0},icon:K.any,href:String,target:String,title:String,onClick:De(),onMousedown:De()}),Jp=e=>{e&&(e.style.width=`0px`,e.style.opacity=`0`,e.style.transform=`scale(0)`)},Yp=e=>{D(()=>{e&&(e.style.width=`${e.scrollWidth}px`,e.style.opacity=`1`,e.style.transform=`scale(1)`)})},Xp=e=>{e&&e.style&&(e.style.width=null,e.style.opacity=null,e.style.transform=null)},Zp=B({compatConfig:{MODE:3},name:`LoadingIcon`,props:{prefixCls:String,loading:[Boolean,Object],existIcon:Boolean},setup(e){return()=>{let{existIcon:t,prefixCls:n,loading:r}=e;if(t)return V(`span`,{class:`${n}-loading-icon`},[V(Le,null,null)]);let i=!!r;return V(d,{name:`${n}-loading-icon-motion`,onBeforeEnter:Jp,onEnter:Yp,onAfterEnter:Xp,onBeforeLeave:Yp,onLeave:e=>{setTimeout(()=>{Jp(e)})},onAfterLeave:Xp},{default:()=>[i?V(`span`,{class:`${n}-loading-icon`},[V(Le,null,null)]):null]})}}}),Qp=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}}),$p=e=>{let{componentCls:t,fontSize:n,lineWidth:r,colorPrimaryHover:i,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:`relative`,display:`inline-flex`,[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:-r,[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:`relative`,zIndex:1,"&:hover,\n &:focus,\n &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:n}},Qp(`${t}-primary`,i),Qp(`${t}-danger`,a)]}};function em(e,t){return{[`&-item:not(${t}-last-item)`]:{marginBottom:-e.lineWidth},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function tm(e,t){return{[`&-item:not(${t}-first-item):not(${t}-last-item)`]:{borderRadius:0},[`&-item${t}-first-item:not(${t}-last-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${t}-last-item:not(${t}-first-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function nm(e){let t=`${e.componentCls}-compact-vertical`;return{[t]:G(G({},em(e,t)),tm(e.componentCls,t))}}var rm=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{outline:`none`,position:`relative`,display:`inline-block`,fontWeight:400,whiteSpace:`nowrap`,textAlign:`center`,backgroundImage:`none`,backgroundColor:`transparent`,border:`${e.lineWidth}px ${e.lineType} transparent`,cursor:`pointer`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:`none`,touchAction:`manipulation`,lineHeight:e.lineHeight,color:e.colorText,"> span":{display:`inline-block`},[`> ${n} + span, > span + ${n}`]:{marginInlineStart:e.marginXS},"> a":{color:`currentColor`},"&:not(:disabled)":G({},ue(e)),[`&-icon-only${t}-compact-item`]:{flex:`none`},[`&-compact-item${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-item${t}-primary:not([disabled])`]:{position:`relative`,"&:before":{position:`absolute`,top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:`inline-block`,width:e.lineWidth,height:`calc(100% + ${e.lineWidth*2}px)`,backgroundColor:e.colorPrimaryHover,content:`""`}}},"&-compact-vertical-item":{[`&${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-vertical-item${t}-primary:not([disabled])`]:{position:`relative`,"&:before":{position:`absolute`,top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:`inline-block`,width:`calc(100% + ${e.lineWidth*2}px)`,height:e.lineWidth,backgroundColor:e.colorPrimaryHover,content:`""`}}}}}}},im=(e,t)=>({"&:not(:disabled)":{"&:hover":e,"&:active":t}}),am=e=>({minWidth:e.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:`50%`}),om=e=>({borderRadius:e.controlHeight,paddingInlineStart:e.controlHeight/2,paddingInlineEnd:e.controlHeight/2}),sm=e=>({cursor:`not-allowed`,borderColor:e.colorBorder,color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,boxShadow:`none`}),cm=(e,t,n,r,i,a,o)=>({[`&${e}-background-ghost`]:G(G({color:t||void 0,backgroundColor:`transparent`,borderColor:n||void 0,boxShadow:`none`},im(G({backgroundColor:`transparent`},a),G({backgroundColor:`transparent`},o))),{"&:disabled":{cursor:`not-allowed`,color:r||void 0,borderColor:i||void 0}})}),lm=e=>({"&:disabled":G({},sm(e))}),um=e=>G({},lm(e)),dm=e=>({"&:disabled":{cursor:`not-allowed`,color:e.colorTextDisabled}}),fm=e=>G(G(G(G(G({},um(e)),{backgroundColor:e.colorBgContainer,borderColor:e.colorBorder,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`}),im({color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),cm(e.componentCls,e.colorBgContainer,e.colorBgContainer,e.colorTextDisabled,e.colorBorder)),{[`&${e.componentCls}-dangerous`]:G(G(G({color:e.colorError,borderColor:e.colorError},im({color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),cm(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder)),lm(e))}),pm=e=>G(G(G(G(G({},um(e)),{color:e.colorTextLightSolid,backgroundColor:e.colorPrimary,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`}),im({color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryHover},{color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryActive})),cm(e.componentCls,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),{[`&${e.componentCls}-dangerous`]:G(G(G({backgroundColor:e.colorError,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`},im({backgroundColor:e.colorErrorHover},{backgroundColor:e.colorErrorActive})),cm(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),lm(e))}),mm=e=>G(G({},fm(e)),{borderStyle:`dashed`}),hm=e=>G(G(G({color:e.colorLink},im({color:e.colorLinkHover},{color:e.colorLinkActive})),dm(e)),{[`&${e.componentCls}-dangerous`]:G(G({color:e.colorError},im({color:e.colorErrorHover},{color:e.colorErrorActive})),dm(e))}),gm=e=>G(G(G({},im({color:e.colorText,backgroundColor:e.colorBgTextHover},{color:e.colorText,backgroundColor:e.colorBgTextActive})),dm(e)),{[`&${e.componentCls}-dangerous`]:G(G({color:e.colorError},dm(e)),im({color:e.colorErrorHover,backgroundColor:e.colorErrorBg},{color:e.colorErrorHover,backgroundColor:e.colorErrorBg}))}),_m=e=>G(G({},sm(e)),{[`&${e.componentCls}:hover`]:G({},sm(e))}),vm=e=>{let{componentCls:t}=e;return{[`${t}-default`]:fm(e),[`${t}-primary`]:pm(e),[`${t}-dashed`]:mm(e),[`${t}-link`]:hm(e),[`${t}-text`]:gm(e),[`${t}-disabled`]:_m(e)}},ym=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``,{componentCls:n,iconCls:r,controlHeight:i,fontSize:a,lineHeight:o,lineWidth:s,borderRadius:c,buttonPaddingHorizontal:l}=e,u=Math.max(0,(i-a*o)/2-s),d=l-s,f=`${n}-icon-only`;return[{[`${n}${t}`]:{fontSize:a,height:i,padding:`${u}px ${d}px`,borderRadius:c,[`&${f}`]:{width:i,paddingInlineStart:0,paddingInlineEnd:0,[`&${n}-round`]:{width:`auto`},"> span":{transform:`scale(1.143)`}},[`&${n}-loading`]:{opacity:e.opacityLoading,cursor:`default`},[`${n}-loading-icon`]:{transition:`width ${e.motionDurationSlow} ${e.motionEaseInOut}, opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`&:not(${f}) ${n}-loading-icon > ${r}`]:{marginInlineEnd:e.marginXS}}},{[`${n}${n}-circle${t}`]:am(e)},{[`${n}${n}-round${t}`]:om(e)}]},bm=e=>ym(e),xm=e=>ym(ce(e,{controlHeight:e.controlHeightSM,padding:e.paddingXS,buttonPaddingHorizontal:8,borderRadius:e.borderRadiusSM}),`${e.componentCls}-sm`),Sm=e=>ym(ce(e,{controlHeight:e.controlHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),`${e.componentCls}-lg`),Cm=e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:`100%`}}}},wm=at(`Button`,e=>{let{controlTmpOutline:t,paddingContentHorizontal:n}=e,r=ce(e,{colorOutlineDefault:t,buttonPaddingHorizontal:n});return[rm(r),xm(r),bm(r),Sm(r),Cm(r),vm(r),$p(r),sp(e,{focus:!1}),nm(e)]}),Tm=()=>({prefixCls:String,size:{type:String}}),Em=Dc(),Dm=B({compatConfig:{MODE:3},name:`AButtonGroup`,props:Tm(),setup(e,t){let{slots:n}=t,{prefixCls:r,direction:i}=Fe(`btn-group`,e),[,,a]=we();Em.useProvide(te({size:j(()=>e.size)}));let o=j(()=>{let{size:t}=e,n=``;switch(t){case`large`:n=`lg`;break;case`small`:n=`sm`;break;case`middle`:case void 0:break;default:En(!t,`Button.Group`,"Invalid prop `size`.")}return{[`${r.value}`]:!0,[`${r.value}-${n}`]:n,[`${r.value}-rtl`]:i.value===`rtl`,[a.value]:!0}});return()=>V(`div`,{class:o.value},[ke(n.default?.call(n))])}}),Om=/^[\u4e00-\u9fa5]{2}$/,km=Om.test.bind(Om);function Am(e){return e===`text`||e===`link`}var jm=B({compatConfig:{MODE:3},name:`AButton`,inheritAttrs:!1,__ANT_BUTTON:!0,props:Qt(qp(),{type:`default`}),slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i,expose:s}=t,{prefixCls:l,autoInsertSpaceInButton:u,direction:d,size:p}=Fe(`btn`,e),[m,h]=wm(l),g=Em.useInject(),_=me(),v=j(()=>e.disabled??_.value),x=y(null),S=y(void 0),C=!1,w=y(!1),T=y(!1),ee=j(()=>u.value!==!1),{compactSize:E,compactItemClassnames:D}=Lf(l,d),O=j(()=>typeof e.loading==`object`&&e.loading.delay?e.loading.delay||!0:!!e.loading);M(O,e=>{clearTimeout(S.value),typeof O.value==`number`?S.value=setTimeout(()=>{w.value=e},O.value):w.value=e},{immediate:!0});let k=j(()=>{let{type:t,shape:n=`default`,ghost:r,block:i,danger:a}=e,o=l.value,s={large:`lg`,small:`sm`,middle:void 0},c=E.value||g?.size||p.value,u=c&&s[c]||``;return[D.value,{[h.value]:!0,[`${o}`]:!0,[`${o}-${n}`]:n!=="default"&&n,[`${o}-${t}`]:t,[`${o}-${u}`]:u,[`${o}-loading`]:w.value,[`${o}-background-ghost`]:r&&!Am(t),[`${o}-two-chinese-chars`]:T.value&&ee.value,[`${o}-block`]:i,[`${o}-dangerous`]:!!a,[`${o}-rtl`]:d.value===`rtl`}]}),A=()=>{let e=x.value;if(!e||u.value===!1)return;let t=e.textContent;C&&km(t)?T.value||=!0:T.value&&=!1},te=e=>{w.value||v.value?e.preventDefault():i(`click`,e)},ne=e=>{i(`mousedown`,e)},N=(e,t)=>{let n=t?` `:``;if(e.type===b){let t=e.children.trim();return km(t)&&(t=t.split(``).join(n)),V(`span`,null,[t])}return e};return o(()=>{En(!(e.ghost&&Am(e.type)),`Button`,"`link` or `text` button can't be a `ghost` button.")}),a(A),f(A),c(()=>{S.value&&clearTimeout(S.value)}),s({focus:()=>{var e;(e=x.value)==null||e.focus()},blur:()=>{var e;(e=x.value)==null||e.blur()}}),()=>{let{icon:t=n.icon?.call(n)}=e,i=ke(n.default?.call(n));C=i.length===1&&!t&&!Am(e.type);let{type:a,htmlType:o,href:s,title:c,target:u}=e,d=w.value?`loading`:t,f=G(G({},r),{title:c,disabled:v.value,class:[k.value,r.class,{[`${l.value}-icon-only`]:i.length===0&&!!d}],onClick:te,onMousedown:ne});v.value||delete f.disabled;let p=t&&!w.value?t:V(Zp,{existIcon:!!t,prefixCls:l.value,loading:!!w.value},null),h=i.map(e=>N(e,C&&ee.value));if(s!==void 0)return m(V(`a`,U(U({},f),{},{href:s,target:u,ref:x}),[p,h]));let g=V(`button`,U(U({},f),{},{ref:x,type:o}),[p,h]);if(!Am(a)){let e=function(){return g}();g=V(Kp,{ref:`wave`,disabled:!!w.value},{default:()=>[e]})}return m(g)}}});jm.Group=Dm,jm.install=function(e){return e.component(jm.name,jm),e.component(Dm.name,Dm),e};var Mm=jm;function Nm(e,t){return e.classList?e.classList.contains(t):` ${e.className} `.indexOf(` ${t} `)>-1}function Pm(e,t){e.classList?e.classList.add(t):Nm(e,t)||(e.className=`${e.className} ${t}`)}function Fm(e,t){e.classList?e.classList.remove(t):Nm(e,t)&&(e.className=` ${e.className} `.replace(` ${t} `,` `))}var Im=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`ant-motion-collapse`;return{name:e,appear:arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,css:!0,onBeforeEnter:t=>{t.style.height=`0px`,t.style.opacity=`0`,Pm(t,e)},onEnter:e=>{D(()=>{e.style.height=`${e.scrollHeight}px`,e.style.opacity=`1`})},onAfterEnter:t=>{t&&(Fm(t,e),t.style.height=null,t.style.opacity=null)},onBeforeLeave:t=>{Pm(t,e),t.style.height=`${t.offsetHeight}px`,t.style.opacity=null},onLeave:e=>{setTimeout(()=>{e.style.height=`0px`,e.style.opacity=`0`})},onAfterLeave:t=>{t&&(Fm(t,e),t.style&&(t.style.height=null,t.style.opacity=null))}}},Lm=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:`none`},"&:placeholder-shown":{textOverflow:`ellipsis`}}),Rm=e=>({borderColor:e.inputBorderHoverColor,borderInlineEndWidth:e.lineWidth}),zm=e=>({borderColor:e.inputBorderHoverColor,boxShadow:`0 0 0 ${e.controlOutlineWidth}px ${e.controlOutline}`,borderInlineEndWidth:e.lineWidth,outline:0}),Bm=e=>({color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:`none`,cursor:`not-allowed`,opacity:1,"&:hover":G({},Rm(ce(e,{inputBorderHoverColor:e.colorBorder})))}),Vm=e=>{let{inputPaddingVerticalLG:t,fontSizeLG:n,lineHeightLG:r,borderRadiusLG:i,inputPaddingHorizontalLG:a}=e;return{padding:`${t}px ${a}px`,fontSize:n,lineHeight:r,borderRadius:i}},Hm=e=>({padding:`${e.inputPaddingVerticalSM}px ${e.controlPaddingHorizontalSM-1}px`,borderRadius:e.borderRadiusSM}),Um=(e,t)=>{let{componentCls:n,colorError:r,colorWarning:i,colorErrorOutline:a,colorWarningOutline:o,colorErrorBorderHover:s,colorWarningBorderHover:c}=e;return{[`&-status-error:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:r,"&:hover":{borderColor:s},"&:focus, &-focused":G({},zm(ce(e,{inputBorderActiveColor:r,inputBorderHoverColor:r,controlOutline:a}))),[`${n}-prefix`]:{color:r}},[`&-status-warning:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:i,"&:hover":{borderColor:c},"&:focus, &-focused":G({},zm(ce(e,{inputBorderActiveColor:i,inputBorderHoverColor:i,controlOutline:o}))),[`${n}-prefix`]:{color:i}}}},Wm=e=>G(G({position:`relative`,display:`inline-block`,width:`100%`,minWidth:0,padding:`${e.inputPaddingVertical}px ${e.inputPaddingHorizontal}px`,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,backgroundColor:e.colorBgContainer,backgroundImage:`none`,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:e.colorBorder,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},Lm(e.colorTextPlaceholder)),{"&:hover":G({},Rm(e)),"&:focus, &-focused":G({},zm(e)),"&-disabled, &[disabled]":G({},Bm(e)),"&-borderless":{"&, &:hover, &:focus, &-focused, &-disabled, &[disabled]":{backgroundColor:`transparent`,border:`none`,boxShadow:`none`}},"textarea&":{maxWidth:`100%`,height:`auto`,minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:`bottom`,transition:`all ${e.motionDurationSlow}, height 0s`,resize:`vertical`},"&-lg":G({},Vm(e)),"&-sm":G({},Hm(e)),"&-rtl":{direction:`rtl`},"&-textarea-rtl":{direction:`rtl`}}),Gm=e=>{let{componentCls:t,antCls:n}=e;return{position:`relative`,display:`table`,width:`100%`,borderCollapse:`separate`,borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${t}, &-lg > ${t}-group-addon`]:G({},Vm(e)),[`&-sm ${t}, &-sm > ${t}-group-addon`]:G({},Hm(e)),[`> ${t}`]:{display:`table-cell`,"&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${t}-group`]:{"&-addon, &-wrap":{display:`table-cell`,width:1,whiteSpace:`nowrap`,verticalAlign:`middle`,"&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:`block !important`},"&-addon":{position:`relative`,padding:`0 ${e.inputPaddingHorizontal}px`,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,textAlign:`center`,backgroundColor:e.colorFillAlter,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`-${e.inputPaddingVertical+1}px -${e.inputPaddingHorizontal}px`,[`&${n}-select-single:not(${n}-select-customize-input)`]:{[`${n}-select-selector`]:{backgroundColor:`inherit`,border:`${e.lineWidth}px ${e.lineType} transparent`,boxShadow:`none`}},"&-open, &-focused":{[`${n}-select-selector`]:{color:e.colorPrimary}}},[`${n}-cascader-picker`]:{margin:`-9px -${e.inputPaddingHorizontal}px`,backgroundColor:`transparent`,[`${n}-cascader-input`]:{textAlign:`start`,border:0,boxShadow:`none`}}},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}},[`${t}`]:{float:`inline-start`,width:`100%`,marginBottom:0,textAlign:`inherit`,"&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${t}-search-with-button &`]:{zIndex:0}}},[`> ${t}:first-child, ${t}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}-affix-wrapper`]:{[`&:not(:first-child) ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}:last-child, ${t}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${t}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${t}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${t}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${t}-group-compact`]:G(G({display:`block`},Te()),{[`${t}-group-addon, ${t}-group-wrap, > ${t}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover":{zIndex:1},"&:focus":{zIndex:1}}},"& > *":{display:`inline-block`,float:`none`,verticalAlign:`top`,borderRadius:0},[`& > ${t}-affix-wrapper`]:{display:`inline-flex`},[`& > ${n}-picker-range`]:{display:`inline-flex`},"& > *:not(:last-child)":{marginInlineEnd:-e.lineWidth,borderInlineEndWidth:e.lineWidth},[`${t}`]:{float:`none`},[`& > ${n}-select > ${n}-select-selector, + & > ${n}-select-auto-complete ${t}, + & > ${n}-cascader-picker ${t}, + & > ${t}-group-wrapper ${t}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,"&:hover":{zIndex:1},"&:focus":{zIndex:1}},[`& > ${n}-select-focused`]:{zIndex:1},[`& > ${n}-select > ${n}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${n}-select:first-child > ${n}-select-selector, + & > ${n}-select-auto-complete:first-child ${t}, + & > ${n}-cascader-picker:first-child ${t}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child, + & > ${n}-select:last-child > ${n}-select-selector, + & > ${n}-cascader-picker:last-child ${t}, + & > ${n}-cascader-picker-focused:last-child ${t}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${n}-select-auto-complete ${t}`]:{verticalAlign:`top`},[`${t}-group-wrapper + ${t}-group-wrapper`]:{marginInlineStart:-e.lineWidth,[`${t}-affix-wrapper`]:{borderRadius:0}},[`${t}-group-wrapper:not(:last-child)`]:{[`&${t}-search > ${t}-group`]:{[`& > ${t}-group-addon > ${t}-search-button`]:{borderRadius:0},[`& > ${t}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}}),[`&&-sm ${n}-btn`]:{fontSize:e.fontSizeSM,height:e.controlHeightSM,lineHeight:`normal`},[`&&-lg ${n}-btn`]:{fontSize:e.fontSizeLG,height:e.controlHeightLG,lineHeight:`normal`},[`&&-lg ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightLG}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightLG-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightLG}px`}},[`&&-sm ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightSM}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightSM-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightSM}px`}}}},Km=e=>{let{componentCls:t,controlHeightSM:n,lineWidth:r}=e,i=(n-r*2-16)/2;return{[t]:G(G(G(G({},le(e)),Wm(e)),Um(e,t)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:n,paddingTop:i,paddingBottom:i}}})}},qm=e=>{let{componentCls:t}=e;return{[`${t}-clear-icon`]:{margin:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextTertiary},"&:active":{color:e.colorText},"&-hidden":{visibility:`hidden`},"&-has-suffix":{margin:`0 ${e.inputAffixPadding}px`}},"&-textarea-with-clear-btn":{padding:`0 !important`,border:`0 !important`,[`${t}-clear-icon`]:{position:`absolute`,insetBlockStart:e.paddingXS,insetInlineEnd:e.paddingXS,zIndex:1}}}},Jm=e=>{let{componentCls:t,inputAffixPadding:n,colorTextDescription:r,motionDurationSlow:i,colorIcon:a,colorIconHover:o,iconCls:s}=e;return{[`${t}-affix-wrapper`]:G(G(G(G(G({},Wm(e)),{display:`inline-flex`,[`&:not(${t}-affix-wrapper-disabled):hover`]:G(G({},Rm(e)),{zIndex:1,[`${t}-search-with-button &`]:{zIndex:0}}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${t}[disabled]`]:{background:`transparent`}},[`> input${t}`]:{padding:0,fontSize:`inherit`,border:`none`,borderRadius:0,outline:`none`,"&:focus":{boxShadow:`none !important`}},"&::before":{width:0,visibility:`hidden`,content:`"\\a0"`},[`${t}`]:{"&-prefix, &-suffix":{display:`flex`,flex:`none`,alignItems:`center`,"> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:r},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:n},"&-suffix":{marginInlineStart:n}}}),qm(e)),{[`${s}${t}-password-icon`]:{color:a,cursor:`pointer`,transition:`all ${i}`,"&:hover":{color:o}}}),Um(e,`${t}-affix-wrapper`))}},Ym=e=>{let{componentCls:t,colorError:n,colorSuccess:r,borderRadiusLG:i,borderRadiusSM:a}=e;return{[`${t}-group`]:G(G(G({},le(e)),Gm(e)),{"&-rtl":{direction:`rtl`},"&-wrapper":{display:`inline-block`,width:`100%`,textAlign:`start`,verticalAlign:`top`,"&-rtl":{direction:`rtl`},"&-lg":{[`${t}-group-addon`]:{borderRadius:i}},"&-sm":{[`${t}-group-addon`]:{borderRadius:a}},"&-status-error":{[`${t}-group-addon`]:{color:n,borderColor:n}},"&-status-warning":{[`${t}-group-addon:last-child`]:{color:r,borderColor:r}}}})}},Xm=e=>{let{componentCls:t,antCls:n}=e,r=`${t}-search`;return{[r]:{[`${t}`]:{"&:hover, &:focus":{borderColor:e.colorPrimaryHover,[`+ ${t}-group-addon ${r}-button:not(${n}-btn-primary)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{borderRadius:0},[`${t}-lg`]:{lineHeight:e.lineHeightLG-2e-4},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${r}-button`]:{paddingTop:0,paddingBottom:0,borderStartStartRadius:0,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius,borderEndStartRadius:0},[`${r}-button:not(${n}-btn-primary)`]:{color:e.colorTextDescription,"&:hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${n}-btn-loading::before`]:{insetInlineStart:0,insetInlineEnd:0,insetBlockStart:0,insetBlockEnd:0}}}},[`${r}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},[`&-large ${r}-button`]:{height:e.controlHeightLG},[`&-small ${r}-button`]:{height:e.controlHeightSM},"&-rtl":{direction:`rtl`},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:-e.lineWidth,borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, + > ${t}, + ${t}-affix-wrapper`]:{"&:hover,&:focus,&:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}};function Zm(e){return ce(e,{inputAffixPadding:e.paddingXXS,inputPaddingVertical:Math.max(Math.round((e.controlHeight-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,3),inputPaddingVerticalLG:Math.ceil((e.controlHeightLG-e.fontSizeLG*e.lineHeightLG)/2*10)/10-e.lineWidth,inputPaddingVerticalSM:Math.max(Math.round((e.controlHeightSM-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,0),inputPaddingHorizontal:e.paddingSM-e.lineWidth,inputPaddingHorizontalSM:e.paddingXS-e.lineWidth,inputPaddingHorizontalLG:e.controlPaddingHorizontal-e.lineWidth,inputBorderHoverColor:e.colorPrimaryHover,inputBorderActiveColor:e.colorPrimaryHover})}var Qm=e=>{let{componentCls:t,inputPaddingHorizontal:n,paddingLG:r}=e,i=`${t}-textarea`;return{[i]:{position:`relative`,[`${i}-suffix`]:{position:`absolute`,top:0,insetInlineEnd:n,bottom:0,zIndex:1,display:`inline-flex`,alignItems:`center`,margin:`auto`},"&-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating":{[`&${i}-has-feedback`]:{[`${t}`]:{paddingInlineEnd:r}}},"&-show-count":{[`> ${t}`]:{height:`100%`},"&::after":{color:e.colorTextDescription,whiteSpace:`nowrap`,content:`attr(data-count)`,pointerEvents:`none`,float:`right`}},"&-rtl":{"&::after":{float:`left`}}}}},$m=at(`Input`,e=>{let t=Zm(e);return[Km(t),Qm(t),Jm(t),Ym(t),Xm(t),sp(t)]}),eh=()=>ye()&&window.document.documentElement,th,nh=()=>{if(!eh())return!1;if(th!==void 0)return th;let e=document.createElement(`div`);return e.style.display=`flex`,e.style.flexDirection=`column`,e.style.rowGap=`1px`,e.appendChild(document.createElement(`div`)),e.appendChild(document.createElement(`div`)),document.body.appendChild(e),th=e.scrollHeight===1,document.body.removeChild(e),th},rh=(()=>{let e=y(!1);return a(()=>{e.value=nh()}),e}),ih=Symbol(`rowContextKey`),ah=e=>{t(ih,e)},oh=()=>n(ih,{gutter:j(()=>void 0),wrap:j(()=>void 0),supportFlexGap:j(()=>void 0)}),sh=e=>{let{componentCls:t}=e;return{[t]:{display:`flex`,flexFlow:`row wrap`,minWidth:0,"&::before, &::after":{display:`flex`},"&-no-wrap":{flexWrap:`nowrap`},"&-start":{justifyContent:`flex-start`},"&-center":{justifyContent:`center`},"&-end":{justifyContent:`flex-end`},"&-space-between":{justifyContent:`space-between`},"&-space-around ":{justifyContent:`space-around`},"&-space-evenly ":{justifyContent:`space-evenly`},"&-top":{alignItems:`flex-start`},"&-middle":{alignItems:`center`},"&-bottom":{alignItems:`flex-end`}}}},ch=e=>{let{componentCls:t}=e;return{[t]:{position:`relative`,maxWidth:`100%`,minHeight:1}}},lh=(e,t)=>{let{componentCls:n,gridColumns:r}=e,i={};for(let e=r;e>=0;e--)e===0?(i[`${n}${t}-${e}`]={display:`none`},i[`${n}-push-${e}`]={insetInlineStart:`auto`},i[`${n}-pull-${e}`]={insetInlineEnd:`auto`},i[`${n}${t}-push-${e}`]={insetInlineStart:`auto`},i[`${n}${t}-pull-${e}`]={insetInlineEnd:`auto`},i[`${n}${t}-offset-${e}`]={marginInlineEnd:0},i[`${n}${t}-order-${e}`]={order:0}):(i[`${n}${t}-${e}`]={display:`block`,flex:`0 0 ${e/r*100}%`,maxWidth:`${e/r*100}%`},i[`${n}${t}-push-${e}`]={insetInlineStart:`${e/r*100}%`},i[`${n}${t}-pull-${e}`]={insetInlineEnd:`${e/r*100}%`},i[`${n}${t}-offset-${e}`]={marginInlineStart:`${e/r*100}%`},i[`${n}${t}-order-${e}`]={order:e});return i},uh=(e,t)=>lh(e,t),dh=(e,t,n)=>({[`@media (min-width: ${t}px)`]:G({},uh(e,n))}),fh=at(`Grid`,e=>[sh(e)]),ph=at(`Grid`,e=>{let t=ce(e,{gridColumns:24}),n={"-sm":t.screenSMMin,"-md":t.screenMDMin,"-lg":t.screenLGMin,"-xl":t.screenXLMin,"-xxl":t.screenXXLMin};return[ch(t),uh(t,``),uh(t,`-xs`),Object.keys(n).map(e=>dh(t,n[e],e)).reduce((e,t)=>G(G({},e),t),{})]}),mh=B({compatConfig:{MODE:3},name:`ARow`,inheritAttrs:!1,props:{align:Oe([String,Object]),justify:Oe([String,Object]),prefixCls:String,gutter:Oe([Number,Array,Object],0),wrap:{type:Boolean,default:void 0}},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:o}=Fe(`row`,e),[s,l]=fh(i),u,d=up(),f=P({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),p=P({xs:!1,sm:!1,md:!1,lg:!1,xl:!1,xxl:!1}),m=t=>j(()=>{if(typeof e[t]==`string`)return e[t];if(typeof e[t]!=`object`)return``;for(let n=0;n{u=d.value.subscribe(t=>{p.value=t;let n=e.gutter||0;(!Array.isArray(n)&&typeof n==`object`||Array.isArray(n)&&(typeof n[0]==`object`||typeof n[1]==`object`))&&(f.value=t)})}),c(()=>{d.value.unsubscribe(u)});let v=j(()=>{let t=[void 0,void 0],{gutter:n=0}=e;return(Array.isArray(n)?n:[n,void 0]).forEach((e,n)=>{if(typeof e==`object`)for(let r=0;re.wrap)});let y=j(()=>W(i.value,{[`${i.value}-no-wrap`]:e.wrap===!1,[`${i.value}-${g.value}`]:g.value,[`${i.value}-${h.value}`]:h.value,[`${i.value}-rtl`]:o.value===`rtl`},r.class,l.value)),b=j(()=>{let e=v.value,t={},n=e[0]!=null&&e[0]>0?`${e[0]/-2}px`:void 0,r=e[1]!=null&&e[1]>0?`${e[1]/-2}px`:void 0;return n&&(t.marginLeft=n,t.marginRight=n),_.value?t.rowGap=`${e[1]}px`:r&&(t.marginTop=r,t.marginBottom=r),t});return()=>s(V(`div`,U(U({},r),{},{class:y.value,style:G(G({},b.value),r.style)}),[n.default?.call(n)]))}});function hh(){return hh=Object.assign?Object.assign.bind():function(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function bh(e,t,n){return bh=yh()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&vh(i,n.prototype),i},bh.apply(null,arguments)}function xh(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function Sh(e){var t=typeof Map==`function`?new Map:void 0;return Sh=function(e){if(e===null||!xh(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return bh(e,arguments,_h(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),vh(n,e)},Sh(e)}var Ch=/%[sdj%]/g,wh=function(){};function Th(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)}),t}function Eh(e){var t=[...arguments].slice(1),n=0,r=t.length;return typeof e==`function`?e.apply(null,t):typeof e==`string`?e.replace(Ch,function(e){if(e===`%%`)return`%`;if(n>=r)return e;switch(e){case`%s`:return String(t[n++]);case`%d`:return Number(t[n++]);case`%j`:try{return JSON.stringify(t[n++])}catch{return`[Circular]`}default:return e}}):e}function Dh(e){return e===`string`||e===`url`||e===`hex`||e===`email`||e===`date`||e===`pattern`}function Z(e,t){return!!(e==null||t===`array`&&Array.isArray(e)&&!e.length||Dh(t)&&typeof e==`string`&&!e)}function Oh(e,t,n){var r=[],i=0,a=e.length;function o(e){r.push.apply(r,e||[]),i++,i===a&&n(r)}e.forEach(function(e){t(e,o)})}function kh(e,t,n){var r=0,i=e.length;function a(o){if(o&&o.length)n(o);else{var s=r;r+=1,s()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Hh={integer:function(e){return Hh.number(e)&&parseInt(e,10)===e},float:function(e){return Hh.number(e)&&!Hh.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch{return!1}},date:function(e){return typeof e.getTime==`function`&&typeof e.getMonth==`function`&&typeof e.getYear==`function`&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&typeof e==`number`},object:function(e){return typeof e==`object`&&!Hh.array(e)},method:function(e){return typeof e==`function`},email:function(e){return typeof e==`string`&&e.length<=320&&!!e.match(Vh.email)},url:function(e){return typeof e==`string`&&e.length<=2048&&!!e.match(Bh())},hex:function(e){return typeof e==`string`&&!!e.match(Vh.hex)}},Uh=function(e,t,n,r,i){if(e.required&&t===void 0)Lh(e,t,n,r,i);else{var a=[`integer`,`float`,`array`,`regexp`,`object`,`method`,`email`,`number`,`date`,`url`,`hex`],o=e.type;a.indexOf(o)>-1?Hh[o](t)||r.push(Eh(i.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&r.push(Eh(i.messages.types[o],e.fullField,e.type))}},Wh=function(e,t,n,r,i){var a=typeof e.len==`number`,o=typeof e.min==`number`,s=typeof e.max==`number`,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=t,u=null,d=typeof t==`number`,f=typeof t==`string`,p=Array.isArray(t);if(d?u=`number`:f?u=`string`:p&&(u=`array`),!u)return!1;p&&(l=t.length),f&&(l=t.replace(c,`_`).length),a?l!==e.len&&r.push(Eh(i.messages[u].len,e.fullField,e.len)):o&&!s&&le.max?r.push(Eh(i.messages[u].max,e.fullField,e.max)):o&&s&&(le.max)&&r.push(Eh(i.messages[u].range,e.fullField,e.min,e.max))},Gh=`enum`,Q={required:Lh,whitespace:Rh,type:Uh,range:Wh,enum:function(e,t,n,r,i){e[Gh]=Array.isArray(e[Gh])?e[Gh]:[],e[Gh].indexOf(t)===-1&&r.push(Eh(i.messages[Gh],e.fullField,e[Gh].join(`, `)))},pattern:function(e,t,n,r,i){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||r.push(Eh(i.messages.pattern.mismatch,e.fullField,t,e.pattern))):typeof e.pattern==`string`&&(new RegExp(e.pattern).test(t)||r.push(Eh(i.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},Kh=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t,`string`)&&!e.required)return n();Q.required(e,t,r,a,i,`string`),Z(t,`string`)||(Q.type(e,t,r,a,i),Q.range(e,t,r,a,i),Q.pattern(e,t,r,a,i),e.whitespace===!0&&Q.whitespace(e,t,r,a,i))}n(a)},qh=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),t!==void 0&&Q.type(e,t,r,a,i)}n(a)},Jh=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t===``&&(t=void 0),Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),t!==void 0&&(Q.type(e,t,r,a,i),Q.range(e,t,r,a,i))}n(a)},Yh=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),t!==void 0&&Q.type(e,t,r,a,i)}n(a)},Xh=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),Z(t)||Q.type(e,t,r,a,i)}n(a)},Zh=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),t!==void 0&&(Q.type(e,t,r,a,i),Q.range(e,t,r,a,i))}n(a)},Qh=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),t!==void 0&&(Q.type(e,t,r,a,i),Q.range(e,t,r,a,i))}n(a)},$h=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t==null&&!e.required)return n();Q.required(e,t,r,a,i,`array`),t!=null&&(Q.type(e,t,r,a,i),Q.range(e,t,r,a,i))}n(a)},eg=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),t!==void 0&&Q.type(e,t,r,a,i)}n(a)},tg=`enum`,ng=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i),t!==void 0&&Q[tg](e,t,r,a,i)}n(a)},rg=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t,`string`)&&!e.required)return n();Q.required(e,t,r,a,i),Z(t,`string`)||Q.pattern(e,t,r,a,i)}n(a)},ig=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t,`date`)&&!e.required)return n();if(Q.required(e,t,r,a,i),!Z(t,`date`)){var o=t instanceof Date?t:new Date(t);Q.type(e,o,r,a,i),o&&Q.range(e,o.getTime(),r,a,i)}}n(a)},ag=function(e,t,n,r,i){var a=[],o=Array.isArray(t)?`array`:typeof t;Q.required(e,t,r,a,i,o),n(a)},og=function(e,t,n,r,i){var a=e.type,o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t,a)&&!e.required)return n();Q.required(e,t,r,o,i,a),Z(t,a)||Q.type(e,t,r,o,i)}n(o)},sg={string:Kh,method:qh,number:Jh,boolean:Yh,regexp:Xh,integer:Zh,float:Qh,array:$h,object:eg,enum:ng,pattern:rg,date:ig,url:og,hex:og,email:og,required:ag,any:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Z(t)&&!e.required)return n();Q.required(e,t,r,a,i)}n(a)}};function cg(){return{default:`Validation error on field %s`,required:`%s is required`,enum:`%s must be one of %s`,whitespace:`%s cannot be empty`,date:{format:`%s date %s is invalid for format %s`,parse:`%s date could not be parsed, %s is invalid `,invalid:`%s date %s is invalid`},types:{string:`%s is not a %s`,method:`%s is not a %s (function)`,array:`%s is not an %s`,object:`%s is not an %s`,number:`%s is not a %s`,date:`%s is not a %s`,boolean:`%s is not a %s`,integer:`%s is not an %s`,float:`%s is not a %s`,regexp:`%s is not a valid %s`,email:`%s is not a valid %s`,url:`%s is not a valid %s`,hex:`%s is not a valid %s`},string:{len:`%s must be exactly %s characters`,min:`%s must be at least %s characters`,max:`%s cannot be longer than %s characters`,range:`%s must be between %s and %s characters`},number:{len:`%s must equal %s`,min:`%s cannot be less than %s`,max:`%s cannot be greater than %s`,range:`%s must be between %s and %s`},array:{len:`%s must be exactly %s in length`,min:`%s cannot be less than %s in length`,max:`%s cannot be greater than %s in length`,range:`%s must be between %s and %s in length`},pattern:{mismatch:`%s value %s does not match pattern %s`},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var lg=cg(),ug=function(){function e(e){this.rules=null,this._messages=lg,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw Error(`Cannot configure a schema with no rules`);if(typeof e!=`object`||Array.isArray(e))throw Error(`Rules must be an object`);this.rules={},Object.keys(e).forEach(function(n){var r=e[n];t.rules[n]=Array.isArray(r)?r:[r]})},t.messages=function(e){return e&&(this._messages=Ih(cg(),e)),this._messages},t.validate=function(t,n,r){var i=this;n===void 0&&(n={}),r===void 0&&(r=function(){});var a=t,o=n,s=r;if(typeof o==`function`&&(s=o,o={}),!this.rules||Object.keys(this.rules).length===0)return s&&s(null,a),Promise.resolve(a);function c(e){var t=[],n={};function r(e){if(Array.isArray(e)){var n;t=(n=t).concat.apply(n,e)}else t.push(e)}for(var i=0;i3&&arguments[3]!==void 0&&arguments[3];return t.length&&r&&n===void 0&&!fg(e,t.slice(0,-1))?e:pg(e,t,n,r)}function hg(e){return dg(e)}function gg(e,t){return fg(e,t)}function _g(e,t,n){return mg(e,t,n,arguments.length>3&&arguments[3]!==void 0&&arguments[3])}function vg(e,t){return e&&e.some(e=>Cg(e,t))}function yg(e){return typeof e==`object`&&!!e&&Object.getPrototypeOf(e)===Object.prototype}function bg(e,t){let n=Array.isArray(e)?[...e]:G({},e);return t&&Object.keys(t).forEach(e=>{let r=n[e],i=t[e],a=yg(r)&&yg(i);n[e]=a?bg(r,i||{}):i}),n}function xg(e){return[...arguments].slice(1).reduce((e,t)=>bg(e,t),e)}function Sg(e,t){let n={};return t.forEach(t=>{let r=gg(e,t);n=_g(n,t,r)}),n}function Cg(e,t){return!e||!t||e.length!==t.length?!1:e.every((e,n)=>t[n]===e)}var wg="'${name}' is not a valid ${type}",Tg={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:wg,method:wg,array:wg,object:wg,number:wg,date:wg,boolean:wg,integer:wg,float:wg,regexp:wg,email:wg,url:wg,hex:wg},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},Eg=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Dg=ug;function Og(e,t){return e.replace(/\$\{\w+\}/g,e=>t[e.slice(2,-1)])}function kg(e,t,n,r,i){return Eg(this,void 0,void 0,function*(){let a=G({},n);delete a.ruleIndex,delete a.trigger;let o=null;a&&a.type===`array`&&a.defaultField&&(o=a.defaultField,delete a.defaultField);let s=new Dg({[e]:[a]}),c=xg({},Tg,r.validateMessages);s.messages(c);let l=[];try{yield Promise.resolve(s.validate({[e]:t},G({},r)))}catch(e){e.errors?l=e.errors.map((e,t)=>{let{message:n}=e;return Pe(n)?x(n,{key:`error_${t}`}):n}):(console.error(e),l=[c.default()])}if(!l.length&&o)return(yield Promise.all(t.map((t,n)=>kg(`${e}.${n}`,t,o,r,i)))).reduce((e,t)=>[...e,...t],[]);let u=G(G(G({},n),{name:e,enum:(n.enum||[]).join(`, `)}),i);return l.map(e=>typeof e==`string`?Og(e,u):e)})}function Ag(e,t,n,r,i,a){let o=e.join(`.`),s=n.map((e,t)=>{let n=e.validator,r=G(G({},e),{ruleIndex:t});return n&&(r.validator=(e,t,r)=>{let i=!1,a=n(e,t,function(){var e=[...arguments];Promise.resolve().then(()=>{i||r(...e)})});i=a&&typeof a.then==`function`&&typeof a.catch==`function`,i&&a.then(()=>{r()}).catch(e=>{r(e||` `)})}),r}).sort((e,t)=>{let{warningOnly:n,ruleIndex:r}=e,{warningOnly:i,ruleIndex:a}=t;return!!n==!!i?r-a:n?1:-1}),c;if(i===!0)c=new Promise((e,n)=>Eg(this,void 0,void 0,function*(){for(let e=0;ekg(o,t,e,r,a).then(t=>({errors:t,rule:e})));c=(i?Mg(e):jg(e)).then(e=>Promise.reject(e))}return c.catch(e=>e),c}function jg(e){return Eg(this,void 0,void 0,function*(){return Promise.all(e).then(e=>[].concat(...e))})}function Mg(e){return Eg(this,void 0,void 0,function*(){let t=0;return new Promise(n=>{e.forEach(r=>{r.then(r=>{r.errors.length&&n([r]),t+=1,t===e.length&&n([])})})})})}var Ng=Symbol(`formContextKey`),Pg=e=>{t(Ng,e)},Fg=()=>n(Ng,{name:j(()=>void 0),labelAlign:j(()=>`right`),vertical:j(()=>!1),addField:(e,t)=>{},removeField:e=>{},model:j(()=>void 0),rules:j(()=>void 0),colon:j(()=>void 0),labelWrap:j(()=>void 0),labelCol:j(()=>void 0),requiredMark:j(()=>!1),validateTrigger:j(()=>void 0),onValidate:()=>{},validateMessages:j(()=>Tg)}),Ig=Symbol(`formItemPrefixContextKey`),Lg=e=>{t(Ig,e)},Rg=()=>n(Ig,{prefixCls:j(()=>``)});function zg(e){return typeof e==`number`?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}var Bg=()=>({span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}),Vg=[`xs`,`sm`,`md`,`lg`,`xl`,`xxl`],Hg=B({compatConfig:{MODE:3},name:`ACol`,inheritAttrs:!1,props:Bg(),setup(e,t){let{slots:n,attrs:r}=t,{gutter:i,supportFlexGap:a,wrap:o}=oh(),{prefixCls:s,direction:c}=Fe(`col`,e),[l,u]=ph(s),d=j(()=>{let{span:t,order:n,offset:i,push:a,pull:o}=e,l=s.value,d={};return Vg.forEach(t=>{let n={},r=e[t];typeof r==`number`?n.span=r:typeof r==`object`&&(n=r||{}),d=G(G({},d),{[`${l}-${t}-${n.span}`]:n.span!==void 0,[`${l}-${t}-order-${n.order}`]:n.order||n.order===0,[`${l}-${t}-offset-${n.offset}`]:n.offset||n.offset===0,[`${l}-${t}-push-${n.push}`]:n.push||n.push===0,[`${l}-${t}-pull-${n.pull}`]:n.pull||n.pull===0,[`${l}-rtl`]:c.value===`rtl`})}),W(l,{[`${l}-${t}`]:t!==void 0,[`${l}-order-${n}`]:n,[`${l}-offset-${i}`]:i,[`${l}-push-${a}`]:a,[`${l}-pull-${o}`]:o},d,r.class,u.value)}),f=j(()=>{let{flex:t}=e,n=i.value,r={};if(n&&n[0]>0){let e=`${n[0]/2}px`;r.paddingLeft=e,r.paddingRight=e}if(n&&n[1]>0&&!a.value){let e=`${n[1]/2}px`;r.paddingTop=e,r.paddingBottom=e}return t&&(r.flex=zg(t),o.value===!1&&!r.minWidth&&(r.minWidth=0)),r});return()=>l(V(`div`,U(U({},r),{},{class:d.value,style:[f.value,r.style]}),[n.default?.call(n)]))}}),Ug={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z`}},{tag:`path`,attrs:{d:`M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z`}}]},name:`question-circle`,theme:`outlined`};function Wg(e){for(var t=1;t{let{slots:n,emit:r,attrs:i}=t,{prefixCls:a,htmlFor:o,labelCol:s,labelAlign:c,colon:l,required:u,requiredMark:d}=G(G({},e),i),[f]=xe(`Form`),p=e.label??n.label?.call(n);if(!p)return null;let{vertical:m,labelAlign:h,labelCol:g,labelWrap:_,colon:v}=Fg(),y=s||g?.value||{},b=c||h?.value,x=`${a}-item-label`,S=W(x,b===`left`&&`${x}-left`,y.class,{[`${x}-wrap`]:!!_.value}),C=p,w=l===!0||v?.value!==!1&&l!==!1;if(w&&!m.value&&typeof p==`string`&&p.trim()!==``&&(C=p.replace(/[:|:]\s*$/,``)),e.tooltip||n.tooltip){let t=V(`span`,{class:`${a}-item-tooltip`},[V(Ip,{title:e.tooltip},{default:()=>[V(Kg,null,null)]})]);C=V(F,null,[C,n.tooltip?n.tooltip?.call(n,{class:`${a}-item-tooltip`}):t])}d===`optional`&&!u&&(C=V(F,null,[C,V(`span`,{class:`${a}-item-optional`},[f.value?.optional||de.Form?.optional])]));let T=W({[`${a}-item-required`]:u,[`${a}-item-required-mark-optional`]:d===`optional`,[`${a}-item-no-colon`]:!w});return V(Hg,U(U({},y),{},{class:S}),{default:()=>[V(`label`,{for:o,class:T,title:typeof p==`string`?p:``,onClick:e=>r(`click`,e)},[C])]})};qg.displayName=`FormItemLabel`,qg.inheritAttrs=!1;var Jg=e=>{let{componentCls:t}=e,n=`${t}-show-help`,r=`${t}-show-help-item`;return{[n]:{transition:`opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[r]:{overflow:`hidden`,transition:`height ${e.motionDurationSlow} ${e.motionEaseInOut}, + opacity ${e.motionDurationSlow} ${e.motionEaseInOut}, + transform ${e.motionDurationSlow} ${e.motionEaseInOut} !important`,[`&${r}-appear, &${r}-enter`]:{transform:`translateY(-5px)`,opacity:0,"&-active":{transform:`translateY(0)`,opacity:1}},[`&${r}-leave-active`]:{transform:`translateY(-5px)`}}}}},Yg=e=>({legend:{display:`block`,width:`100%`,marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:`inherit`,border:0,borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},label:{fontSize:e.fontSize},'input[type="search"]':{boxSizing:`border-box`},'input[type="radio"], input[type="checkbox"]':{lineHeight:`normal`},'input[type="file"]':{display:`block`},'input[type="range"]':{display:`block`,width:`100%`},"select[multiple], select[size]":{height:`auto`},"input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus":{outline:0,boxShadow:`0 0 0 ${e.controlOutlineWidth}px ${e.controlOutline}`},output:{display:`block`,paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),Xg=(e,t)=>{let{formItemCls:n}=e;return{[n]:{[`${n}-label > label`]:{height:t},[`${n}-control-input`]:{minHeight:t}}}},Zg=e=>{let{componentCls:t}=e;return{[e.componentCls]:G(G(G({},le(e)),Yg(e)),{[`${t}-text`]:{display:`inline-block`,paddingInlineEnd:e.paddingSM},"&-small":G({},Xg(e,e.controlHeightSM)),"&-large":G({},Xg(e,e.controlHeightLG))})}},Qg=e=>{let{formItemCls:t,iconCls:n,componentCls:r,rootPrefixCls:i}=e;return{[t]:G(G({},le(e)),{marginBottom:e.marginLG,verticalAlign:`top`,"&-with-help":{transition:`none`},[`&-hidden, + &-hidden.${i}-row`]:{display:`none`},"&-has-warning":{[`${t}-split`]:{color:e.colorError}},"&-has-error":{[`${t}-split`]:{color:e.colorWarning}},[`${t}-label`]:{display:`inline-block`,flexGrow:0,overflow:`hidden`,whiteSpace:`nowrap`,textAlign:`end`,verticalAlign:`middle`,"&-left":{textAlign:`start`},"&-wrap":{overflow:`unset`,lineHeight:`${e.lineHeight} - 0.25em`,whiteSpace:`unset`},"> label":{position:`relative`,display:`inline-flex`,alignItems:`center`,maxWidth:`100%`,height:e.controlHeight,color:e.colorTextHeading,fontSize:e.fontSize,[`> ${n}`]:{fontSize:e.fontSize,verticalAlign:`top`},[`&${t}-required:not(${t}-required-mark-optional)::before`]:{display:`inline-block`,marginInlineEnd:e.marginXXS,color:e.colorError,fontSize:e.fontSize,fontFamily:`SimSun, sans-serif`,lineHeight:1,content:`"*"`,[`${r}-hide-required-mark &`]:{display:`none`}},[`${t}-optional`]:{display:`inline-block`,marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`${r}-hide-required-mark &`]:{display:`none`}},[`${t}-tooltip`]:{color:e.colorTextDescription,cursor:`help`,writingMode:`horizontal-tb`,marginInlineStart:e.marginXXS},"&::after":{content:`":"`,position:`relative`,marginBlock:0,marginInlineStart:e.marginXXS/2,marginInlineEnd:e.marginXS},[`&${t}-no-colon::after`]:{content:`" "`}}},[`${t}-control`]:{display:`flex`,flexDirection:`column`,flexGrow:1,[`&:first-child:not([class^="'${i}-col-'"]):not([class*="' ${i}-col-'"])`]:{width:`100%`},"&-input":{position:`relative`,display:`flex`,alignItems:`center`,minHeight:e.controlHeight,"&-content":{flex:`auto`,maxWidth:`100%`}}},[t]:{"&-explain, &-extra":{clear:`both`,color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},"&-explain-connected":{width:`100%`},"&-extra":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},"&-explain":{"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning}}},[`&-with-help ${t}-explain`]:{height:`auto`,opacity:1},[`${t}-feedback-icon`]:{fontSize:e.fontSize,textAlign:`center`,visibility:`visible`,animationName:Wf,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:`none`,"&-success":{color:e.colorSuccess},"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning},"&-validating":{color:e.colorPrimary}}})}},$g=e=>{let{componentCls:t,formItemCls:n,rootPrefixCls:r}=e;return{[`${t}-horizontal`]:{[`${n}-label`]:{flexGrow:0},[`${n}-control`]:{flex:`1 1 0`,minWidth:0},[`${n}-label.${r}-col-24 + ${n}-control`]:{minWidth:`unset`}}}},e_=e=>{let{componentCls:t,formItemCls:n}=e;return{[`${t}-inline`]:{display:`flex`,flexWrap:`wrap`,[n]:{flex:`none`,flexWrap:`nowrap`,marginInlineEnd:e.margin,marginBottom:0,"&-with-help":{marginBottom:e.marginLG},[`> ${n}-label, + > ${n}-control`]:{display:`inline-block`,verticalAlign:`top`},[`> ${n}-label`]:{flex:`none`},[`${t}-text`]:{display:`inline-block`},[`${n}-has-feedback`]:{display:`inline-block`}}}}},t_=e=>({margin:0,padding:`0 0 ${e.paddingXS}px`,whiteSpace:`initial`,textAlign:`start`,"> label":{margin:0,"&::after":{display:`none`}}}),n_=e=>{let{componentCls:t,formItemCls:n}=e;return{[`${n} ${n}-label`]:t_(e),[t]:{[n]:{flexWrap:`wrap`,[`${n}-label, + ${n}-control`]:{flex:`0 0 100%`,maxWidth:`100%`}}}}},r_=e=>{let{componentCls:t,formItemCls:n,rootPrefixCls:r}=e;return{[`${t}-vertical`]:{[n]:{"&-row":{flexDirection:`column`},"&-label > label":{height:`auto`},[`${t}-item-control`]:{width:`100%`}}},[`${t}-vertical ${n}-label, + .${r}-col-24${n}-label, + .${r}-col-xl-24${n}-label`]:t_(e),[`@media (max-width: ${e.screenXSMax}px)`]:[n_(e),{[t]:{[`.${r}-col-xs-24${n}-label`]:t_(e)}}],[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{[`.${r}-col-sm-24${n}-label`]:t_(e)}},[`@media (max-width: ${e.screenMDMax}px)`]:{[t]:{[`.${r}-col-md-24${n}-label`]:t_(e)}},[`@media (max-width: ${e.screenLGMax}px)`]:{[t]:{[`.${r}-col-lg-24${n}-label`]:t_(e)}}}},i_=at(`Form`,(e,t)=>{let{rootPrefixCls:n}=t,r=ce(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:n});return[Zg(r),Qg(r),Jg(r),$g(r),e_(r),r_(r),ip(r),Wf]}),a_=B({compatConfig:{MODE:3},name:`ErrorList`,inheritAttrs:!1,props:[`errors`,`help`,`onErrorVisibleChanged`,`helpStatus`,`warnings`],setup(t,n){let{attrs:r}=n,{prefixCls:i,status:a}=Rg(),o=j(()=>`${i.value}-item-explain`),s=j(()=>!!(t.errors&&t.errors.length)),c=P(a.value),[,l]=i_(i);return M([s,a],()=>{s.value&&(c.value=a.value)}),()=>{let n=Im(`${i.value}-show-help-item`),a=Ue(`${i.value}-show-help-item`,n);return a.role=`alert`,a.class=[l.value,o.value,r.class,`${i.value}-show-help`],V(d,U(U({},Me(`${i.value}-show-help`)),{},{onAfterEnter:()=>t.onErrorVisibleChanged(!0),onAfterLeave:()=>t.onErrorVisibleChanged(!1)}),{default:()=>[g(V(e,U(U({},a),{},{tag:`div`}),{default:()=>[t.errors?.map((e,t)=>V(`div`,{key:t,class:c.value?`${o.value}-${c.value}`:``},[e]))]}),[[E,!!t.errors?.length]])]})}}}),o_=B({compatConfig:{MODE:3},slots:Object,inheritAttrs:!1,props:[`prefixCls`,`errors`,`hasFeedback`,`onDomErrorVisibleChange`,`wrapperCol`,`help`,`extra`,`status`,`marginBottom`,`onErrorVisibleChanged`],setup(e,t){let{slots:n}=t,r=Fg(),{wrapperCol:i}=r,a=G({},r);return delete a.labelCol,delete a.wrapperCol,Pg(a),Lg({prefixCls:j(()=>e.prefixCls),status:j(()=>e.status)}),()=>{let{prefixCls:t,wrapperCol:r,marginBottom:a,onErrorVisibleChanged:o,help:s=n.help?.call(n),errors:c=he(n.errors?.call(n)),extra:l=n.extra?.call(n)}=e,u=`${t}-item`,d=r||i?.value||{},f=W(`${u}-control`,d.class);return V(Hg,U(U({},d),{},{class:f}),{default:()=>V(F,null,[V(`div`,{class:`${u}-control-input`},[V(`div`,{class:`${u}-control-input-content`},[n.default?.call(n)])]),a!==null||c.length?V(`div`,{style:{display:`flex`,flexWrap:`nowrap`}},[V(a_,{errors:c,help:s,class:`${u}-explain-connected`,onErrorVisibleChanged:o},null),!!a&&V(`div`,{style:{width:0,height:`${a}px`}},null)]):null,l?V(`div`,{class:`${u}-extra`},[l]):null])})}}});function s_(e){let t=y(e.value.slice()),n=null;return o(()=>{clearTimeout(n),n=setTimeout(()=>{t.value=e.value},e.value.length?0:10)}),t}ge(`success`,`warning`,`error`,`validating`,``);var c_={success:qe,warning:Ie,error:rt,validating:Le};function l_(e,t,n){let r=e,i=t,a=0;try{for(let e=i.length;a({htmlFor:String,prefixCls:String,label:K.any,help:K.any,extra:K.any,labelCol:{type:Object},wrapperCol:{type:Object},hasFeedback:{type:Boolean,default:!1},colon:{type:Boolean,default:void 0},labelAlign:String,prop:{type:[String,Number,Array]},name:{type:[String,Number,Array]},rules:[Array,Object],autoLink:{type:Boolean,default:!0},required:{type:Boolean,default:void 0},validateFirst:{type:Boolean,default:void 0},validateStatus:K.oneOf(ge(``,`success`,`warning`,`error`,`validating`)),validateTrigger:{type:[String,Array]},messageVariables:{type:Object},hidden:Boolean,noStyle:Boolean,tooltip:String}),d_=0,f_=`form_item`,p_=B({compatConfig:{MODE:3},name:`AFormItem`,inheritAttrs:!1,__ANT_NEW_FORM_ITEM:!0,props:u_(),slots:Object,setup(e,t){let{slots:n,attrs:r,expose:i}=t;e.prop;let s=`form-item-${++d_}`,{prefixCls:l}=Fe(`form`,e),[u,d]=i_(l),f=y(),p=Fg(),m=j(()=>e.name||e.prop),h=y([]),g=y(!1),_=y(),v=j(()=>{let e=m.value;return hg(e)}),b=j(()=>{if(v.value.length){let e=p.name.value,t=v.value.join(`_`);return e?`${e}_${t}`:`${f_}_${t}`}}),x=()=>{let e=p.model.value;if(e&&m.value)return l_(e,v.value,!0).v},S=j(()=>x()),C=y(Hd(S.value)),w=j(()=>{let t=e.validateTrigger===void 0?p.validateTrigger.value:e.validateTrigger;return t=t===void 0?`change`:t,dg(t)}),T=j(()=>{let t=p.rules.value,n=e.rules,r=e.required===void 0?[]:{required:!!e.required,trigger:w.value},i=l_(t,v.value);t=t?i.o[i.k]||i.v:[];let a=[].concat(n||t||[]);return vf(a,e=>e.required)?a:a.concat(r)}),ee=j(()=>{let t=T.value,n=!1;return t&&t.length&&t.every(e=>!e.required||(n=!0,!1)),n||e.required}),E=y();o(()=>{E.value=e.validateStatus});let O=j(()=>{let t={};return typeof e.label==`string`?t.label=e.label:e.name&&(t.label=String(e.name)),e.messageVariables&&(t=G(G({},t),e.messageVariables)),t}),k=t=>{if(v.value.length===0)return;let{validateFirst:n=!1}=e,{triggerName:r}=t||{},i=T.value;if(r&&(i=i.filter(e=>{let{trigger:t}=e;return!t&&!w.value.length||dg(t||w.value).includes(r)})),!i.length)return Promise.resolve();let a=Ag(v.value,S.value,i,G({validateMessages:p.validateMessages.value},t),n,O.value);return E.value=`validating`,h.value=[],a.catch(e=>e).then(function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(E.value===`validating`){let t=e.filter(e=>e&&e.errors.length);E.value=t.length?`error`:`success`,h.value=t.map(e=>e.errors),p.onValidate(m.value,!h.value.length,h.value.length?ne(h.value[0]):null)}}),a},A=()=>{k({triggerName:`blur`})},N=()=>{g.value?g.value=!1:k({triggerName:`change`})},re=()=>{E.value=e.validateStatus,g.value=!1,h.value=[]},P=()=>{E.value=e.validateStatus,g.value=!0,h.value=[];let t=p.model.value||{},n=S.value,r=l_(t,v.value,!0);Array.isArray(n)?r.o[r.k]=[].concat(C.value??[]):r.o[r.k]=C.value,D(()=>{g.value=!1})},ie=j(()=>e.htmlFor===void 0?b.value:e.htmlFor),I=()=>{let e=ie.value;if(!e||!_.value)return;let t=_.value.$el.querySelector(`[id="${e}"]`);t&&t.focus&&t.focus()};i({onFieldBlur:A,onFieldChange:N,clearValidate:re,resetField:P}),Ac({id:b,onFieldBlur:()=>{e.autoLink&&A()},onFieldChange:()=>{e.autoLink&&N()},clearValidate:re},j(()=>!!(e.autoLink&&p.model.value&&m.value)));let L=!1;M(m,e=>{e?L||(L=!0,p.addField(s,{fieldValue:S,fieldId:b,fieldName:m,resetField:P,clearValidate:re,namePath:v,validateRules:k,rules:T})):(L=!1,p.removeField(s))},{immediate:!0}),c(()=>{p.removeField(s)});let R=s_(h),z=j(()=>e.validateStatus===void 0?R.value.length?`error`:E.value:e.validateStatus),B=j(()=>({[`${l.value}-item`]:!0,[d.value]:!0,[`${l.value}-item-has-feedback`]:z.value&&e.hasFeedback,[`${l.value}-item-has-success`]:z.value===`success`,[`${l.value}-item-has-warning`]:z.value===`warning`,[`${l.value}-item-has-error`]:z.value===`error`,[`${l.value}-item-is-validating`]:z.value===`validating`,[`${l.value}-item-hidden`]:e.hidden})),H=te({});Fc.useProvide(H),o(()=>{let t;if(e.hasFeedback){let e=z.value&&c_[z.value];t=e?V(`span`,{class:W(`${l.value}-item-feedback-icon`,`${l.value}-item-feedback-icon-${z.value}`)},[V(e,null,null)]):null}G(H,{status:z.value,hasFeedback:e.hasFeedback,feedbackIcon:t,isFormItemInput:!0})});let ae=y(null),oe=y(!1),se=()=>{if(f.value){let e=getComputedStyle(f.value);ae.value=parseInt(e.marginBottom,10)}};a(()=>{M(oe,()=>{oe.value&&se()},{flush:`post`,immediate:!0})});let ce=e=>{e||(ae.value=null)};return()=>{if(e.noStyle)return n.default?.call(n);let t=e.help??(n.help?he(n.help()):null),i=!!(t!=null&&Array.isArray(t)&&t.length||R.value.length);return oe.value=i,u(V(`div`,{class:[B.value,i?`${l.value}-item-with-help`:``,r.class],ref:f},[V(mh,U(U({},r),{},{class:`${l.value}-item-row`,key:`row`}),{default:()=>V(F,null,[V(qg,U(U({},e),{},{htmlFor:ie.value,required:ee.value,requiredMark:p.requiredMark.value,prefixCls:l.value,onClick:I,label:e.label}),{label:n.label,tooltip:n.tooltip}),V(o_,U(U({},e),{},{errors:t==null?R.value:dg(t),marginBottom:ae.value,prefixCls:l.value,status:z.value,ref:_,help:t,extra:e.extra??n.extra?.call(n),onErrorVisibleChanged:ce}),{default:n.default})])}),!!ae.value&&V(`div`,{class:`${l.value}-margin-offset`,style:{marginBottom:`-${ae.value}px`}},null)]))}}});function m_(e){let t=!1,n=e.length,r=[];return e.length?new Promise((i,a)=>{e.forEach((e,o)=>{e.catch(e=>(t=!0,e)).then(e=>{--n,r[o]=e,!(n>0)&&(t&&a(r),i(r))})})}):Promise.resolve([])}function h_(e){let t=!1;return e&&e.length&&e.every(e=>!e.required||(t=!0,!1)),t}function g_(e){return e==null?[]:Array.isArray(e)?e:[e]}function __(e,t,n){let r=e;t=t.replace(/\[(\w+)\]/g,`.$1`),t=t.replace(/^\./,``);let i=t.split(`.`),a=0;for(let e=i.length;a1&&arguments[1]!==void 0?arguments[1]:P({}),n=arguments.length>2?arguments[2]:void 0,r=Hd(L(e)),i=te({}),a=y([]),o=n=>{G(L(e),G(G({},Hd(r)),n)),D(()=>{Object.keys(i).forEach(e=>{i[e]={autoLink:!1,required:h_(L(t)[e])}})})},s=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return t.length?e.filter(e=>Sf(g_(e.trigger||`change`),t).length):e},c=null,l=function(n){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,a=[],o={};for(let c=0;c({name:l,errors:[],warnings:[]})).catch(e=>{let t=[],n=[];return e.forEach(e=>{let{rule:{warningOnly:r},errors:i}=e;r?n.push(...i):t.push(...i)}),t.length?Promise.reject({name:l,errors:t,warnings:n}):{name:l,errors:t,warnings:n}}))}let l=m_(a);c=l;let d=l.then(()=>c===l?Promise.resolve(o):Promise.reject([])).catch(e=>{let t=e.filter(e=>e&&e.errors.length);return t.length?Promise.reject({values:o,errorFields:t,outOfDate:c!==l}):Promise.resolve(o)});return d.catch(e=>e),d},u=function(e,t,r){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},o=Ag([e],t,r,G({validateMessages:Tg},a),!!a.validateFirst);return i[e]?(i[e].validateStatus=`validating`,o.catch(e=>e).then(function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];var r;if(i[e].validateStatus===`validating`){let a=t.filter(e=>e&&e.errors.length);i[e].validateStatus=a.length?`error`:`success`,i[e].help=a.length?a.map(e=>e.errors):null,(r=n?.onValidate)==null||r.call(n,e,!a.length,a.length?ne(i[e].help[0]):null)}}),o):o.catch(e=>e)},d=(e,t)=>{let n=[],r=!0;e?n=Array.isArray(e)?e:[e]:(r=!1,n=a.value);let i=l(n,t||{},r);return i.catch(e=>e),i},f=e=>{let t=[];t=e?Array.isArray(e)?e:[e]:a.value,t.forEach(e=>{i[e]&&G(i[e],{validateStatus:``,help:null})})},p=e=>{let t={autoLink:!1},n=[],r=Array.isArray(e)?e:[e];for(let e=0;e{let t=[];a.value.forEach(r=>{let i=__(e,r,!1),a=__(m,r,!1);(h&&n?.immediate&&i.isValid||!Js(i.v,a.v))&&t.push(r)}),d(t,{trigger:`change`}),h=!1,m=Hd(ne(e))},_=n?.debounce,v=!0;return M(t,()=>{a.value=t?Object.keys(L(t)):[],!v&&n&&n.validateOnRuleChange&&d(),v=!1},{deep:!0,immediate:!0}),M(a,()=>{let e={};a.value.forEach(n=>{e[n]=G({},i[n],{autoLink:!1,required:h_(L(t)[n])}),delete i[n]});for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&delete i[e];G(i,e)},{immediate:!0}),M(e,_&&_.wait?df(g,_.wait,Pf(_,[`wait`])):g,{immediate:n&&!!n.immediate,deep:!0}),{modelRef:e,rulesRef:t,initialModel:r,validateInfos:i,resetFields:o,validate:d,validateField:u,mergeValidateInfo:p,clearValidate:f}}var y_=()=>({layout:K.oneOf(ge(`horizontal`,`inline`,`vertical`)),labelCol:Ee(),wrapperCol:Ee(),colon:se(),labelAlign:fe(),labelWrap:se(),prefixCls:String,requiredMark:Oe([String,Boolean]),hideRequiredMark:se(),model:K.object,rules:Ee(),validateMessages:Ee(),validateOnRuleChange:se(),scrollToFirstError:st(),onSubmit:pe(),name:String,validateTrigger:Oe([String,Array]),size:fe(),disabled:se(),onValuesChange:pe(),onFieldsChange:pe(),onFinish:pe(),onFinishFailed:pe(),onValidate:pe()});function b_(e,t){return Js(dg(e),dg(t))}var x_=B({compatConfig:{MODE:3},name:`AForm`,inheritAttrs:!1,props:Qt(y_(),{layout:`horizontal`,hideRequiredMark:!1,colon:!0}),Item:p_,useForm:v_,setup(e,t){let{emit:n,slots:r,expose:i,attrs:a}=t,{prefixCls:o,direction:s,form:c,size:l,disabled:u}=Fe(`form`,e),d=j(()=>e.requiredMark===``||e.requiredMark),f=j(()=>d.value===void 0?c&&c.value?.requiredMark!==void 0?c.value.requiredMark:!e.hideRequiredMark:d.value);ot(l),_e(u);let p=j(()=>e.colon??c.value?.colon),{validateMessages:m}=Ce(),h=j(()=>G(G(G({},Tg),m.value),e.validateMessages)),[g,_]=i_(o),v=j(()=>W(o.value,{[`${o.value}-${e.layout}`]:!0,[`${o.value}-hide-required-mark`]:f.value===!1,[`${o.value}-rtl`]:s.value===`rtl`,[`${o.value}-${l.value}`]:l.value},_.value)),y=P(),b={},x=(e,t)=>{b[e]=t},S=e=>{delete b[e]},C=e=>{let t=!!e,n=t?dg(e).map(hg):[];return t?Object.values(b).filter(e=>n.findIndex(t=>b_(t,e.fieldName.value))>-1):Object.values(b)},w=t=>{e.model?C(t).forEach(e=>{e.resetField()}):Ke(!1,`Form`,`model is required for resetFields to work.`)},T=e=>{C(e).forEach(e=>{e.clearValidate()})},ee=t=>{let{scrollToFirstError:r}=e;if(n(`finishFailed`,t),r&&t.errorFields.length){let e={};typeof r==`object`&&(e=r),D(t.errorFields[0].name,e)}},E=function(){return A(...arguments)},D=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=C(e?[e]:void 0);if(n.length){let e=n[0].fieldId.value,r=e?document.getElementById(e):null;r&&Tn(r,G({scrollMode:`if-needed`,block:`nearest`},t))}},O=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(t===!0){let t=[];return Object.values(b).forEach(e=>{let{namePath:n}=e;t.push(n.value)}),Sg(e.model,t)}return Sg(e.model,t)},k=(t,n)=>{if(Ke(!(t instanceof Function),`Form`,`validateFields/validateField/validate not support callback, please use promise instead`),!e.model)return Ke(!1,`Form`,`model is required for validateFields to work.`),Promise.reject("Form `model` is required for validateFields to work.");let r=!!t,i=r?dg(t).map(hg):[],a=[];Object.values(b).forEach(e=>{if(r||i.push(e.namePath.value),!e.rules?.value.length)return;let t=e.namePath.value;if(!r||vg(i,t)){let r=e.validateRules(G({validateMessages:h.value},n));a.push(r.then(()=>({name:t,errors:[],warnings:[]})).catch(e=>{let n=[],r=[];return e.forEach(e=>{let{rule:{warningOnly:t},errors:i}=e;t?r.push(...i):n.push(...i)}),n.length?Promise.reject({name:t,errors:n,warnings:r}):{name:t,errors:n,warnings:r}}))}});let o=m_(a);y.value=o;let s=o.then(()=>y.value===o?Promise.resolve(O(i)):Promise.reject([])).catch(e=>{let t=e.filter(e=>e&&e.errors.length);return Promise.reject({values:O(i),errorFields:t,outOfDate:y.value!==o})});return s.catch(e=>e),s},A=function(){return k(...arguments)},te=t=>{t.preventDefault(),t.stopPropagation(),n(`submit`,t),e.model&&k().then(e=>{n(`finish`,e)}).catch(e=>{ee(e)})};return i({resetFields:w,clearValidate:T,validateFields:k,getFieldsValue:O,validate:E,scrollToField:D}),Pg({model:j(()=>e.model),name:j(()=>e.name),labelAlign:j(()=>e.labelAlign),labelCol:j(()=>e.labelCol),labelWrap:j(()=>e.labelWrap),wrapperCol:j(()=>e.wrapperCol),vertical:j(()=>e.layout===`vertical`),colon:p,requiredMark:f,validateTrigger:j(()=>e.validateTrigger),rules:j(()=>e.rules),addField:x,removeField:S,onValidate:(e,t,r)=>{n(`validate`,e,t,r)},validateMessages:h}),M(()=>e.rules,()=>{e.validateOnRuleChange&&k()}),()=>g(V(`form`,U(U({},a),{},{onSubmit:te,class:[v.value,a.class]}),[r.default?.call(r)]))}});x_.useInjectFormItemContext=Nc,x_.ItemRest=Pc,x_.install=function(e){return e.component(x_.name,x_),e.component(x_.Item.name,x_.Item),e.component(Pc.name,Pc),e};var S_=x_,C_=e=>e!=null&&(!Array.isArray(e)||he(e).length);function w_(e){return C_(e.prefix)||C_(e.suffix)||C_(e.allowClear)}function T_(e){return C_(e.addonBefore)||C_(e.addonAfter)}function E_(e){return e==null?``:String(e)}function D_(e,t,n,r){if(!n)return;let i=t;if(t.type===`click`){Object.defineProperty(i,"target",{writable:!0}),Object.defineProperty(i,"currentTarget",{writable:!0});let t=e.cloneNode(!0);i.target=t,i.currentTarget=t,t.value=``,n(i)}else r===void 0||(Object.defineProperty(i,"target",{writable:!0}),Object.defineProperty(i,"currentTarget",{writable:!0}),i.target=e,i.currentTarget=e,e.value=r),n(i)}function O_(e,t){if(!e)return;e.focus(t);let{cursor:n}=t||{};if(n){let t=e.value.length;switch(n){case`start`:e.setSelectionRange(0,0);break;case`end`:e.setSelectionRange(t,t);break;default:e.setSelectionRange(0,t)}}}var k_=()=>({addonBefore:K.any,addonAfter:K.any,prefix:K.any,suffix:K.any,clearIcon:K.any,affixWrapperClassName:String,groupClassName:String,wrapperClassName:String,inputClassName:String,allowClear:{type:Boolean,default:void 0}}),A_=()=>G(G({},k_()),{value:{type:[String,Number,Symbol],default:void 0},defaultValue:{type:[String,Number,Symbol],default:void 0},inputElement:K.any,prefixCls:String,disabled:{type:Boolean,default:void 0},focused:{type:Boolean,default:void 0},triggerFocus:Function,readonly:{type:Boolean,default:void 0},handleReset:Function,hidden:{type:Boolean,default:void 0}}),j_=()=>G(G({},A_()),{id:String,placeholder:{type:[String,Number]},autocomplete:String,type:fe(`text`),name:String,size:{type:String},autofocus:{type:Boolean,default:void 0},lazy:{type:Boolean,default:!0},maxlength:Number,loading:{type:Boolean,default:void 0},bordered:{type:Boolean,default:void 0},showCount:{type:[Boolean,Object]},htmlSize:Number,onPressEnter:Function,onKeydown:Function,onKeyup:Function,onFocus:Function,onBlur:Function,onChange:Function,onInput:Function,"onUpdate:value":Function,onCompositionstart:Function,onCompositionend:Function,valueModifiers:Object,hidden:{type:Boolean,default:void 0},status:String}),M_=B({name:`BaseInput`,inheritAttrs:!1,props:A_(),setup(e,t){let{slots:n,attrs:r}=t,i=P(),a=t=>{if(i.value?.contains(t.target)){let{triggerFocus:t}=e;t?.()}},o=()=>{let{allowClear:t,value:r,disabled:i,readonly:a,handleReset:o,suffix:s=n.suffix,prefixCls:c}=e;if(!t)return null;let l=!i&&!a&&r,u=`${c}-clear-icon`,d=n.clearIcon?.call(n)||`*`;return V(`span`,{onClick:o,onMousedown:e=>e.preventDefault(),class:W({[`${u}-hidden`]:!l,[`${u}-has-suffix`]:!!s},u),role:`button`,tabindex:-1},[d])};return()=>{let{focused:t,value:s,disabled:c,allowClear:l,readonly:u,hidden:d,prefixCls:f,prefix:p=n.prefix?.call(n),suffix:m=n.suffix?.call(n),addonAfter:h=n.addonAfter,addonBefore:g=n.addonBefore,inputElement:_,affixWrapperClassName:v,wrapperClassName:y,groupClassName:b}=e,x=si(_,{value:s,hidden:d});if(w_({prefix:p,suffix:m,allowClear:l})){let e=`${f}-affix-wrapper`,n=W(e,{[`${e}-disabled`]:c,[`${e}-focused`]:t,[`${e}-readonly`]:u,[`${e}-input-with-clear-btn`]:m&&l&&s},!T_({addonAfter:h,addonBefore:g})&&r.class,v),y=(m||l)&&V(`span`,{class:`${f}-suffix`},[o(),m]);x=V(`span`,{class:n,style:r.style,hidden:!T_({addonAfter:h,addonBefore:g})&&d,onMousedown:a,ref:i},[p&&V(`span`,{class:`${f}-prefix`},[p]),si(_,{style:null,value:s,hidden:null}),y])}if(T_({addonAfter:h,addonBefore:g})){let e=`${f}-group`,t=`${e}-addon`,n=W(`${f}-wrapper`,e,y),i=W(`${f}-group-wrapper`,r.class,b);return V(`span`,{class:i,style:r.style,hidden:d},[V(`span`,{class:n},[g&&V(`span`,{class:t},[g]),si(x,{style:null,hidden:null}),h&&V(`span`,{class:t},[h])])])}return x}}}),N_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.value,()=>{s.value=e.value}),M(()=>e.disabled,()=>{e.disabled&&(c.value=!1)});let d=e=>{l.value&&O_(l.value.input,e)};i({focus:d,blur:()=>{var e;(e=l.value.input)==null||e.blur()},input:j(()=>l.value.input?.input),stateValue:s,setSelectionRange:(e,t,n)=>{var r;(r=l.value.input)==null||r.setSelectionRange(e,t,n)},select:()=>{var e;(e=l.value.input)==null||e.select()}});let f=e=>{o(`change`,e)},p=(t,n)=>{s.value!==t&&(e.value===void 0?s.value=t:D(()=>{var e;l.value.input.value!==s.value&&((e=u.value)==null||e.$forceUpdate())}),D(()=>{n&&n()}))},m=e=>{let{value:t}=e.target;if(s.value===t)return;let n=e.target.value;D_(l.value.input,e,f),p(n)},h=e=>{e.keyCode===13&&o(`pressEnter`,e),o(`keydown`,e)},g=e=>{c.value=!0,o(`focus`,e)},_=e=>{c.value=!1,o(`blur`,e)},v=e=>{D_(l.value.input,e,f),p(``,()=>{d()})},b=()=>{let{addonBefore:t=n.addonBefore,addonAfter:i=n.addonAfter,disabled:a,valueModifiers:o={},htmlSize:s,autocomplete:c,prefixCls:u,inputClassName:d,prefix:f=n.prefix?.call(n),suffix:p=n.suffix?.call(n),allowClear:v,type:y=`text`}=e,b=gn(e,[`prefixCls`,`onPressEnter`,`addonBefore`,`addonAfter`,`prefix`,`suffix`,`allowClear`,`defaultValue`,`size`,`bordered`,`htmlSize`,`lazy`,`showCount`,`valueModifiers`,`showCount`,`affixWrapperClassName`,`groupClassName`,`inputClassName`,`wrapperClassName`]),x=G(G(G({},b),r),{autocomplete:c,onChange:m,onInput:m,onFocus:g,onBlur:_,onKeydown:h,class:W(u,{[`${u}-disabled`]:a},d,!T_({addonAfter:i,addonBefore:t})&&!w_({prefix:f,suffix:p,allowClear:v})&&r.class),ref:l,key:`ant-input`,size:s,type:y,lazy:e.lazy});return o.lazy&&delete x.onInput,x.autofocus||delete x.autofocus,V(xc,gn(x,[`size`]),null)},x=()=>{let{maxlength:t,suffix:r=n.suffix?.call(n),showCount:i,prefixCls:a}=e,o=Number(t)>0;if(r||i){let e=[...E_(s.value)].length,n=typeof i==`object`?i.formatter({count:e,maxlength:t}):`${e}${o?` / ${t}`:``}`;return V(F,null,[!!i&&V(`span`,{class:W(`${a}-show-count-suffix`,{[`${a}-show-count-has-suffix`]:!!r})},[n]),r])}return null};return a(()=>{}),()=>{let{prefixCls:t,disabled:i}=e,a=N_(e,[`prefixCls`,`disabled`]);return V(M_,U(U(U({},a),r),{},{ref:u,prefixCls:t,inputElement:b(),handleReset:v,value:E_(s.value),focused:c.value,triggerFocus:d,suffix:x(),disabled:i}),n)}}}),F_=()=>gn(j_(),[`wrapperClassName`,`groupClassName`,`inputClassName`,`affixWrapperClassName`]),I_=()=>G(G({},gn(F_(),[`prefix`,`addonBefore`,`addonAfter`,`suffix`])),{rows:Number,autosize:{type:[Boolean,Object],default:void 0},autoSize:{type:[Boolean,Object],default:void 0},onResize:{type:Function},onCompositionstart:De(),onCompositionend:De(),valueModifiers:Object}),L_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);iRc(d.status,e.status)),{direction:p,prefixCls:m,size:h,autocomplete:g}=Fe(`input`,e),{compactSize:_,compactItemClassnames:v}=Lf(m,p),y=j(()=>_.value||h.value),[b,x]=$m(m),S=me();i({focus:e=>{var t;(t=s.value)==null||t.focus(e)},blur:()=>{var e;(e=s.value)==null||e.blur()},input:s,setSelectionRange:(e,t,n)=>{var r;(r=s.value)==null||r.setSelectionRange(e,t,n)},select:()=>{var e;(e=s.value)==null||e.select()}});let C=P([]),w=()=>{C.value.push(setTimeout(()=>{var e;s.value?.input&&s.value?.input.getAttribute(`type`)===`password`&&s.value?.input.hasAttribute(`value`)&&((e=s.value)==null||e.input.removeAttribute(`value`))}))};a(()=>{w()}),l(()=>{C.value.forEach(e=>clearTimeout(e))}),c(()=>{C.value.forEach(e=>clearTimeout(e))});let T=e=>{w(),o(`blur`,e),u.onFieldBlur()},ee=e=>{w(),o(`focus`,e)},E=e=>{o(`update:value`,e.target.value),o(`change`,e),o(`input`,e),u.onFieldChange()};return()=>{let{hasFeedback:t,feedbackIcon:i}=d,{allowClear:a,bordered:o=!0,prefix:c=n.prefix?.call(n),suffix:l=n.suffix?.call(n),addonAfter:h=n.addonAfter?.call(n),addonBefore:_=n.addonBefore?.call(n),id:C=u.id?.value}=e,w=L_(e,[`allowClear`,`bordered`,`prefix`,`suffix`,`addonAfter`,`addonBefore`,`id`]),D=(t||l)&&V(F,null,[l,t&&i]),O=m.value,k=w_({prefix:c,suffix:l})||!!t,A=n.clearIcon||(()=>V(rt,null,null));return b(V(P_,U(U(U({},r),gn(w,[`onUpdate:value`,`onChange`,`onInput`])),{},{onChange:E,id:C,disabled:e.disabled??S.value,ref:s,prefixCls:O,autocomplete:g.value,onBlur:T,onFocus:ee,prefix:c,suffix:D,allowClear:a,addonAfter:h&&V(Rf,null,{default:()=>[V(Ic,null,{default:()=>[h]})]}),addonBefore:_&&V(Rf,null,{default:()=>[V(Ic,null,{default:()=>[_]})]}),class:[r.class,v.value],inputClassName:W({[`${O}-sm`]:y.value===`small`,[`${O}-lg`]:y.value===`large`,[`${O}-rtl`]:p.value===`rtl`,[`${O}-borderless`]:!o},!k&&Lc(O,f.value),x.value),affixWrapperClassName:W({[`${O}-affix-wrapper-sm`]:y.value===`small`,[`${O}-affix-wrapper-lg`]:y.value===`large`,[`${O}-affix-wrapper-rtl`]:p.value===`rtl`,[`${O}-affix-wrapper-borderless`]:!o},Lc(`${O}-affix-wrapper`,f.value,t),x.value),wrapperClassName:W({[`${O}-group-rtl`]:p.value===`rtl`},x.value),groupClassName:W({[`${O}-group-wrapper-sm`]:y.value===`small`,[`${O}-group-wrapper-lg`]:y.value===`large`,[`${O}-group-wrapper-rtl`]:p.value===`rtl`},Lc(`${O}-group-wrapper`,f.value,t),x.value)}),G(G({},n),{clearIcon:A})))}}}),R_=B({compatConfig:{MODE:3},name:`AInputGroup`,inheritAttrs:!1,props:{prefixCls:String,size:{type:String},compact:{type:Boolean,default:void 0}},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a,getPrefixCls:o}=Fe(`input-group`,e),s=Fc.useInject();Fc.useProvide(s,{isFormItemInput:!1});let[c,l]=$m(j(()=>o(`input`))),u=j(()=>{let t=i.value;return{[`${t}`]:!0,[l.value]:!0,[`${t}-lg`]:e.size===`large`,[`${t}-sm`]:e.size===`small`,[`${t}-compact`]:e.compact,[`${t}-rtl`]:a.value===`rtl`}});return()=>c(V(`span`,U(U({},r),{},{class:W(u.value,r.class)}),[n.default?.call(n)]))}}),z_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{var e;(e=o.value)==null||e.focus()},blur:()=>{var e;(e=o.value)==null||e.blur()}});let c=e=>{a(`update:value`,e.target.value),e&&e.target&&e.type===`click`&&a(`search`,e.target.value,e),a(`change`,e)},l=e=>{document.activeElement===o.value?.input&&e.preventDefault()},u=e=>{a(`search`,o.value?.input?.stateValue,e)},d=t=>{s.value||e.loading||u(t)},f=e=>{s.value=!0,a(`compositionstart`,e)},p=e=>{s.value=!1,a(`compositionend`,e)},{prefixCls:m,getPrefixCls:h,direction:g,size:_}=Fe(`input-search`,e),v=j(()=>h(`input`,e.inputPrefixCls));return()=>{let{disabled:t,loading:i,addonAfter:a=n.addonAfter?.call(n),suffix:s=n.suffix?.call(n)}=e,h=z_(e,[`disabled`,`loading`,`addonAfter`,`suffix`]),{enterButton:y=n.enterButton?.call(n)??!1}=e;y||=y===``;let b=typeof y==`boolean`?V(Ec,null,null):null,x=`${m.value}-button`,S=Array.isArray(y)?y[0]:y,C,w=S.type&&fu(S.type)&&S.type.__ANT_BUTTON;if(w||S.tagName===`button`)C=si(S,G({onMousedown:l,onClick:u,key:`enterButton`},w?{class:x,size:_.value}:{}),!1);else{let e=b&&!y;C=V(Mm,{class:x,type:y?`primary`:void 0,size:_.value,disabled:t,key:`enterButton`,onMousedown:l,onClick:u,loading:i,icon:e?b:null},{default:()=>[e?null:b||y]})}a&&(C=[C,a]);let T=W(m.value,{[`${m.value}-rtl`]:g.value===`rtl`,[`${m.value}-${_.value}`]:!!_.value,[`${m.value}-with-button`]:!!y},r.class);return V($,U(U(U({ref:o},gn(h,[`onUpdate:value`,`onSearch`,`enterButton`])),r),{},{onPressEnter:d,onCompositionstart:f,onCompositionend:p,size:_.value,prefixCls:v.value,addonAfter:C,suffix:s,onChange:c,class:T,disabled:t}),n)}}}),V_=e=>e!=null&&(!Array.isArray(e)||he(e).length);function H_(e){return V_(e.addonBefore)||V_(e.addonAfter)}var U_=[`text`,`input`],W_=B({compatConfig:{MODE:3},name:`ClearableLabeledInput`,inheritAttrs:!1,props:{prefixCls:String,inputType:K.oneOf(ge(`text`,`input`)),value:st(),defaultValue:st(),allowClear:{type:Boolean,default:void 0},element:st(),handleReset:Function,disabled:{type:Boolean,default:void 0},direction:{type:String},size:{type:String},suffix:st(),prefix:st(),addonBefore:st(),addonAfter:st(),readonly:{type:Boolean,default:void 0},focused:{type:Boolean,default:void 0},bordered:{type:Boolean,default:!0},triggerFocus:{type:Function},hidden:Boolean,status:String,hashId:String},setup(e,t){let{slots:n,attrs:r}=t,i=Fc.useInject(),a=t=>{let{value:r,disabled:i,readonly:a,handleReset:o,suffix:s=n.suffix}=e,c=!i&&!a&&r,l=`${t}-clear-icon`;return V(rt,{onClick:o,onMousedown:e=>e.preventDefault(),class:W({[`${l}-hidden`]:!c,[`${l}-has-suffix`]:!!s},l),role:`button`},null)},o=(t,o)=>{let{value:s,allowClear:c,direction:l,bordered:u,hidden:d,status:f,addonAfter:p=n.addonAfter,addonBefore:m=n.addonBefore,hashId:h}=e,{status:g,hasFeedback:_}=i;if(!c)return si(o,{value:s,disabled:e.disabled});let v=W(`${t}-affix-wrapper`,`${t}-affix-wrapper-textarea-with-clear-btn`,Lc(`${t}-affix-wrapper`,Rc(g,f),_),{[`${t}-affix-wrapper-rtl`]:l===`rtl`,[`${t}-affix-wrapper-borderless`]:!u,[`${r.class}`]:!H_({addonAfter:p,addonBefore:m})&&r.class},h);return V(`span`,{class:v,style:r.style,hidden:d},[si(o,{style:null,value:s,disabled:e.disabled}),a(t)])};return()=>{let{prefixCls:t,inputType:r,element:i=n.element?.call(n)}=e;return r===U_[0]?o(t,i):null}}}),G_=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; + pointer-events: none !important; +`,K_=[`letter-spacing`,`line-height`,`padding-top`,`padding-bottom`,`font-family`,`font-weight`,`font-size`,`font-variant`,`text-rendering`,`text-transform`,`width`,`text-indent`,`padding-left`,`padding-right`,`border-width`,`box-sizing`,`word-break`,`white-space`],q_={},J_;function Y_(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=e.getAttribute(`id`)||e.getAttribute(`data-reactid`)||e.getAttribute(`name`);if(t&&q_[n])return q_[n];let r=window.getComputedStyle(e),i=r.getPropertyValue(`box-sizing`)||r.getPropertyValue(`-moz-box-sizing`)||r.getPropertyValue(`-webkit-box-sizing`),a=parseFloat(r.getPropertyValue(`padding-bottom`))+parseFloat(r.getPropertyValue(`padding-top`)),o=parseFloat(r.getPropertyValue(`border-bottom-width`))+parseFloat(r.getPropertyValue(`border-top-width`)),s={sizingStyle:K_.map(e=>`${e}:${r.getPropertyValue(e)}`).join(`;`),paddingSize:a,borderSize:o,boxSizing:i};return t&&n&&(q_[n]=s),s}function X_(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;J_||(J_=document.createElement(`textarea`),J_.setAttribute(`tab-index`,`-1`),J_.setAttribute(`aria-hidden`,`true`),document.body.appendChild(J_)),e.getAttribute(`wrap`)?J_.setAttribute(`wrap`,e.getAttribute(`wrap`)):J_.removeAttribute(`wrap`);let{paddingSize:i,borderSize:a,boxSizing:o,sizingStyle:s}=Y_(e,t);J_.setAttribute(`style`,`${s};${G_}`),J_.value=e.value||e.placeholder||``;let c,l,u,d=J_.scrollHeight;if(o===`border-box`?d+=a:o===`content-box`&&(d-=i),n!==null||r!==null){J_.value=` `;let e=J_.scrollHeight-i;n!==null&&(c=e*n,o===`border-box`&&(c=c+i+a),d=Math.max(c,d)),r!==null&&(l=e*r,o===`border-box`&&(l=l+i+a),u=d>l?``:`hidden`,d=Math.min(l,d))}let f={height:`${d}px`,overflowY:u,resize:`none`};return c&&(f.minHeight=`${c}px`),l&&(f.maxHeight=`${l}px`),f}var Z_=0,Q_=1,$_=2,ev=B({compatConfig:{MODE:3},name:`ResizableTextArea`,inheritAttrs:!1,props:I_(),setup(e,t){let{attrs:n,emit:r,expose:i}=t,a,s,l=P(),u=P({}),d=P($_);c(()=>{q.cancel(a),q.cancel(s)});let f=()=>{try{if(l.value&&document.activeElement===l.value.input){let e=l.value.getSelectionStart(),t=l.value.getSelectionEnd(),n=l.value.getScrollTop();l.value.setSelectionRange(e,t),l.value.setScrollTop(n)}}catch{}},m=P(),h=P();o(()=>{let t=e.autoSize||e.autosize;t?(m.value=t.minRows,h.value=t.maxRows):(m.value=void 0,h.value=void 0)});let g=j(()=>!!(e.autoSize||e.autosize)),_=()=>{d.value=Z_};M([()=>e.value,m,h,g],()=>{g.value&&_()},{immediate:!0});let v=P();M([d,l],()=>{if(l.value){if(d.value===Z_)d.value=Q_;else if(d.value===Q_){let e=X_(l.value.input,!1,m.value,h.value);d.value=$_,v.value=e}else f()}},{immediate:!0,flush:`post`});let y=p(),b=P(),x=()=>{q.cancel(b.value)},S=e=>{d.value===$_&&(r(`resize`,e),g.value&&(x(),b.value=q(()=>{_()})))};c(()=>{x()}),i({resizeTextarea:()=>{_()},textArea:j(()=>l.value?.input),instance:y}),Ke(e.autosize===void 0,`Input.TextArea`,`autosize is deprecated, please use autoSize instead.`);let C=()=>{let{prefixCls:t,disabled:r}=e,i=gn(e,[`prefixCls`,`onPressEnter`,`autoSize`,`autosize`,`defaultValue`,`allowClear`,`type`,`maxlength`,`valueModifiers`]),a=W(t,n.class,{[`${t}-disabled`]:r}),o=g.value?v.value:null,s=[n.style,u.value,o],c=G(G(G({},i),n),{style:s,class:a});return(d.value===Z_||d.value===Q_)&&s.push({overflowX:`hidden`,overflowY:`hidden`}),c.autofocus||delete c.autofocus,c.rows===0&&delete c.rows,V($t,{onResize:S,disabled:!g.value},{default:()=>[V(xc,U(U({},c),{},{ref:l,tag:`textarea`}),null)]})};return()=>C()}});function tv(e,t){return[...e||``].slice(0,t).join(``)}function nv(e,t,n,r){let i=n;return e?i=tv(n,r):[...t||``].lengthr&&(i=t),i}var rv=B({compatConfig:{MODE:3},name:`ATextarea`,inheritAttrs:!1,props:I_(),setup(e,t){let{attrs:n,expose:r,emit:i}=t,a=Nc(),s=Fc.useInject(),c=j(()=>Rc(s.status,e.status)),l=y(e.value??e.defaultValue),u=y(),d=y(``),{prefixCls:f,size:m,direction:h}=Fe(`input`,e),[g,_]=$m(f),v=me(),b=j(()=>e.showCount===``||e.showCount||!1),x=j(()=>Number(e.maxlength)>0),S=y(!1),C=y(),w=y(0),T=e=>{S.value=!0,C.value=d.value,w.value=e.currentTarget.selectionStart,i(`compositionstart`,e)},ee=t=>{S.value=!1;let n=t.currentTarget.value;x.value&&(n=nv(w.value>=e.maxlength+1||w.value===C.value?.length,C.value,n,e.maxlength)),n!==d.value&&(A(n),D_(t.currentTarget,t,N,n)),i(`compositionend`,t)},E=p();M(()=>e.value,()=>{`value`in E.vnode.props,l.value=e.value??``});let O=e=>{O_(u.value?.textArea,e)},k=()=>{var e;(e=u.value?.textArea)==null||e.blur()},A=(t,n)=>{l.value!==t&&(e.value===void 0?l.value=t:D(()=>{var e,t,n;u.value.textArea.value!==d.value&&((n=(e=u.value)==null?void 0:(t=e.instance).update)==null||n.call(t))}),D(()=>{n&&n()}))},te=e=>{e.keyCode===13&&i(`pressEnter`,e),i(`keydown`,e)},ne=t=>{let{onBlur:n}=e;n?.(t),a.onFieldBlur()},N=e=>{i(`update:value`,e.target.value),i(`change`,e),i(`input`,e),a.onFieldChange()},re=e=>{D_(u.value.textArea,e,N),A(``,()=>{O()})},P=t=>{let n=t.target.value;if(l.value!==n){if(x.value){let r=t.target;n=nv(r.selectionStart>=e.maxlength+1||r.selectionStart===n.length||!r.selectionStart,d.value,n,e.maxlength)}D_(t.currentTarget,t,N,n),A(n)}},F=()=>{let{class:t}=n,{bordered:r=!0}=e,i=G(G(G({},gn(e,[`allowClear`])),n),{class:[{[`${f.value}-borderless`]:!r,[`${t}`]:t&&!b.value,[`${f.value}-sm`]:m.value===`small`,[`${f.value}-lg`]:m.value===`large`},Lc(f.value,c.value),_.value],disabled:v.value,showCount:null,prefixCls:f.value,onInput:P,onChange:P,onBlur:ne,onKeydown:te,onCompositionstart:T,onCompositionend:ee});return e.valueModifiers?.lazy&&delete i.onInput,V(ev,U(U({},i),{},{id:i?.id??a.id.value,ref:u,maxlength:e.maxlength,lazy:e.lazy}),null)};return r({focus:O,blur:k,resizableTextArea:u}),o(()=>{let t=E_(l.value);!S.value&&x.value&&(e.value===null||e.value===void 0)&&(t=tv(t,e.maxlength)),d.value=t}),()=>{let{maxlength:t,bordered:r=!0,hidden:i}=e,{style:a,class:o}=n,c=G(G(G({},e),n),{prefixCls:f.value,inputType:`text`,handleReset:re,direction:h.value,bordered:r,style:b.value?void 0:a,hashId:_.value,disabled:e.disabled??v.value}),l=V(W_,U(U({},c),{},{value:d.value,status:e.status}),{element:F});if(b.value||s.hasFeedback){let e=[...d.value].length,n=``;n=typeof b.value==`object`?b.value.formatter({value:d.value,count:e,maxlength:t}):`${e}${x.value?` / ${t}`:``}`,l=V(`div`,{hidden:i,class:W(`${f.value}-textarea`,{[`${f.value}-textarea-rtl`]:h.value===`rtl`,[`${f.value}-textarea-show-count`]:b.value,[`${f.value}-textarea-in-form-item`]:s.isFormItemInput},`${f.value}-textarea-show-count`,o,_.value),style:a,"data-count":typeof n==`object`?void 0:n},[l,s.hasFeedback&&V(`span`,{class:`${f.value}-textarea-suffix`},[s.feedbackIcon])])}return g(l)}}}),iv={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z`}}]},name:`eye`,theme:`outlined`};function av(e){for(var t=1;tV(e?sv:dv,null,null),hv=B({compatConfig:{MODE:3},name:`AInputPassword`,inheritAttrs:!1,props:G(G({},F_()),{prefixCls:String,inputPrefixCls:String,action:{type:String,default:`click`},visibilityToggle:{type:Boolean,default:!0},visible:{type:Boolean,default:void 0},"onUpdate:visible":Function,iconRender:Function}),setup(e,t){let{slots:n,attrs:r,expose:i,emit:a}=t,s=y(!1),c=()=>{let{disabled:t}=e;t||(s.value=!s.value,a(`update:visible`,s.value))};o(()=>{e.visible!==void 0&&(s.value=!!e.visible)});let l=y();i({focus:()=>{var e;(e=l.value)==null||e.focus()},blur:()=>{var e;(e=l.value)==null||e.blur()}});let u=t=>{let{action:r,iconRender:i=n.iconRender||mv}=e,a=pv[r]||``,o=i(s.value),l={[a]:c,class:`${t}-icon`,key:`passwordIcon`,onMousedown:e=>{e.preventDefault()},onMouseup:e=>{e.preventDefault()}};return si(Pe(o)?o:V(`span`,null,[o]),l)},{prefixCls:d,getPrefixCls:f}=Fe(`input-password`,e),p=j(()=>f(`input`,e.inputPrefixCls)),m=()=>{let{size:t,visibilityToggle:i}=e,a=fv(e,[`size`,`visibilityToggle`]),o=i&&u(d.value),c=W(d.value,r.class,{[`${d.value}-${t}`]:!!t}),f=G(G(G({},gn(a,[`suffix`,`iconRender`,`action`])),r),{type:s.value?`text`:`password`,class:c,prefixCls:p.value,suffix:o});return t&&(f.size=t),V($,U({ref:l},f),n)};return()=>m()}});$.Group=R_,$.Search=B_,$.TextArea=rv,$.Password=hv,$.install=function(e){return e.component($.name,$),e.component($.Group.name,$.Group),e.component($.Search.name,$.Search),e.component($.TextArea.name,$.TextArea),e.component($.Password.name,$.Password),e};var gv=$;function _v(e,t){let n=P(!1);return o(r=>{let i=L(t)||{},{once:a}=i,o=vt(e);if(!o||a&&n.value)return;let s=dt(o,()=>(n.value=!0,a?void 0:()=>{n.value=!1}),{...i,root:L(i.root)});r(()=>{s()})},{flush:`post`}),n}var vv={id:`home`,class:`relative flex min-h-screen flex-col overflow-hidden`},yv={class:`absolute inset-0`},bv=[`src`,`alt`],xv={class:`relative z-10 mx-auto flex w-full max-w-[1480px] flex-1 items-end sm:items-center px-4 pb-6 pt-32 sm:pt-32 md:pt-36 sm:px-6 md:px-8 md:pb-24`},Sv={class:`w-full max-w-3xl`},Cv={class:`animate-fade-up-1 inline-flex items-center gap-1.5 sm:gap-2.5 rounded-full border border-accent/30 bg-accent/10 px-3 py-1 sm:px-4 sm:py-2 backdrop-blur`},wv={class:`text-[11px] sm:text-xs font-medium text-accent`},Tv={class:`animate-fade-up-2 mt-3 sm:mt-7 text-2xl sm:text-4xl md:text-6xl font-black leading-tight sm:leading-[1.15] md:leading-[1.1]`},Ev={class:`mt-2 inline-block whitespace-nowrap rounded-md bg-hazard px-2.5 py-1 text-lg font-black text-bg shadow-sm sm:mt-3 sm:rounded-lg sm:px-4 sm:py-1.5 sm:text-3xl sm:-rotate-1 sm:shadow-[0_10px_50px_rgba(255,184,0,0.25)] md:text-5xl`},Dv={class:`animate-fade-up-3 mt-3 sm:mt-6 max-w-xl text-[12px] sm:text-base leading-relaxed sm:leading-9 text-ink/75 md:text-lg md:leading-10`},Ov={class:`animate-fade-up-4 mt-5 sm:mt-9 flex flex-wrap items-center gap-2.5 sm:gap-4`},kv=[`href`],Av=[`href`],jv={class:`animate-fade-up-5 mt-6 sm:mt-10 hidden sm:flex flex-wrap gap-3`},Mv={class:`animate-fade-up-9 absolute bottom-24 sm:bottom-28 left-1/2 z-10 hidden md:block`},Nv={class:`-translate-x-1/2 flex flex-col items-center gap-2`},Pv={class:`animate-fade-up-8 relative z-10 border-t border-ink/10 backdrop-blur-sm`},Fv={class:`mx-auto grid max-w-[1480px] grid-cols-3 gap-px bg-ink/10`},Iv={class:`text-base font-black text-ink sm:text-2xl md:text-3xl`},Lv={class:`mt-0.5 sm:mt-0 text-[10px] sm:text-xs leading-tight text-muted md:text-sm`},Rv=Object.assign(B({__name:`Hero`,setup(e){let t=j(()=>N().sections.hero);return(e,n)=>(H(),_(`section`,vv,[O(`div`,yv,[O(`img`,{src:L(t).image.url,alt:L(t).image.alt,width:`1792`,height:`1008`,fetchpriority:`high`,decoding:`async`,class:`absolute inset-0 size-full object-cover object-[center_15%] sm:object-right-top`},null,8,bv),n[0]||=O(`div`,{class:`sm:hidden absolute inset-0 pointer-events-none`,style:{background:`linear-gradient(to bottom, transparent 0%, transparent 26%, rgba(11, 18, 36, 0.45) 42%, rgba(11, 18, 36, 0.95) 54%, #0b1224 62%, #0b1224 100%)`}},null,-1),n[1]||=O(`div`,{class:`hidden sm:block absolute inset-0 bg-gradient-to-l from-bg via-bg/65 via-25% to-transparent`},null,-1),n[2]||=O(`div`,{class:`hidden sm:block absolute inset-0 bg-gradient-to-t from-bg via-transparent to-bg/50`},null,-1),n[3]||=O(`div`,{class:`hidden sm:block absolute inset-0 bg-grid opacity-30`},null,-1)]),n[7]||=O(`div`,{class:`tape-v absolute bottom-0 end-0 z-10 h-32 sm:h-44 w-1 sm:w-1.5 opacity-70`},null,-1),O(`div`,xv,[O(`div`,Sv,[O(`div`,null,[O(`div`,Cv,[n[4]||=O(`span`,{class:`size-1.5 animate-pulse rounded-full bg-accent`},null,-1),O(`span`,wv,T(L(t).badge),1)]),O(`h1`,Tv,[R(T(L(t).title)+` `,1),n[5]||=O(`br`,null,null,-1),O(`span`,Ev,T(L(t).titleHighlight),1)]),O(`p`,Dv,T(L(t).intro),1),O(`div`,Ov,[O(`a`,{href:L(t).primaryCta.href,class:`group inline-flex items-center gap-1.5 sm:gap-2.5 rounded-full bg-accent px-4 py-2.5 sm:px-7 sm:py-4 text-xs sm:text-sm md:text-base font-bold text-bg transition-all duration-300 hover:bg-accent-soft hover:shadow-[0_8px_45px_rgba(255,90,0,0.5)]`},[R(T(L(t).primaryCta.label)+` `,1),V(I,{name:`arrow-left`,class:`size-3.5 sm:size-5 transition-transform duration-300 group-hover:-translate-x-1.5`})],8,kv),O(`a`,{href:L(t).secondaryCta.href,class:`inline-flex items-center gap-2 rounded-full border border-ink/25 px-4 py-2.5 sm:px-7 sm:py-4 text-xs sm:text-sm md:text-base font-bold text-ink backdrop-blur transition-colors duration-300 hover:border-accent hover:text-accent`},T(L(t).secondaryCta.label),9,Av)]),O(`div`,jv,[(H(!0),_(F,null,i(L(t).chips,e=>(H(),_(`span`,{key:e.label,class:`inline-flex items-center gap-2 rounded-full border border-ink/15 bg-bg/50 px-4 py-2 font-mono text-[11px] tracking-wider text-ink/70 backdrop-blur transition-colors hover:border-accent/50 hover:text-ink`},[V(_t,{name:e.icon,class:`size-4 text-accent`},null,8,[`name`]),R(` `+T(e.label),1)]))),128))])])])]),O(`div`,Mv,[O(`div`,Nv,[n[6]||=O(`span`,{class:`font-mono text-[10px] tracking-[0.35em] text-muted`},`SCROLL`,-1),V(I,{name:`arrow-down-1`,class:`size-4 animate-bounce text-accent`})])]),O(`div`,Pv,[O(`div`,Fv,[(H(!0),_(F,null,i(L(t).miniStats,e=>(H(),_(`div`,{key:e.label,class:`flex flex-col sm:flex-row sm:items-baseline sm:gap-4 bg-bg/60 px-2.5 py-3 text-center sm:text-right backdrop-blur-md sm:px-6 sm:py-5 md:px-8`},[O(`span`,Iv,T(e.value),1),O(`span`,Lv,T(e.label),1)]))),128))])])]))}}),{__name:`SectionsHero`}),zv={"aria-hidden":`true`,class:`pointer-events-none relative z-20 overflow-hidden py-6 sm:py-10`},Bv={class:`-rotate-[1.6deg] scale-[1.04]`},Vv={dir:`ltr`,class:`overflow-hidden bg-hazard py-2.5 sm:py-3.5 text-bg`},Hv={class:`animate-marquee flex w-max`},Uv=Object.assign(B({__name:`TapeMarquee`,setup(e){let t=j(()=>N().sections.tape.items);return(e,n)=>(H(),_(`section`,zv,[O(`div`,Bv,[n[0]||=O(`div`,{class:`hazard h-2 sm:h-2.5`},null,-1),O(`div`,Vv,[O(`div`,Hv,[(H(!0),_(F,null,i([...L(t),...L(t)],(e,t)=>(H(),_(`span`,{key:t,class:`flex items-center gap-5 sm:gap-7 px-5 sm:px-7 text-xs sm:text-sm font-extrabold whitespace-nowrap`},[R(T(e)+` `,1),V(I,{name:`shield-tick`,class:`size-3.5 sm:size-4 shrink-0`})]))),128))])]),n[1]||=O(`div`,{class:`hazard h-2 sm:h-2.5`},null,-1)])]))}}),{__name:`SectionsTapeMarquee`}),Wv={key:0,class:`text-accent`},Gv=Object.assign(B({__name:`CountUp`,props:{end:{},suffix:{default:``},duration:{default:1800}},setup(e){let t=e,n=P(null),r=_v(n,{once:!0,margin:`-60px`}),i=P(0),a=0;return M(r,e=>{if(!e)return;let n=performance.now(),r=e=>{let o=Math.min(1,(e-n)/t.duration);i.value=Math.round(t.end*(1-(1-o)**3)),o<1&&(a=requestAnimationFrame(r))};a=requestAnimationFrame(r)}),c(()=>cancelAnimationFrame(a)),(t,r)=>(H(),_(`span`,{ref_key:`el`,ref:n,class:`tabular-nums`},[R(T(L(i).toLocaleString(`fa-IR`)),1),e.suffix?(H(),_(`span`,Wv,T(e.suffix),1)):C(``,!0)],512))}}),{__name:`SectionsCountUp`}),Kv={class:`relative`,"aria-label":`آمار و دستاوردهای ایمن پیشگامان`},qv={class:`grid grid-cols-2 gap-px border-y border-line bg-line lg:grid-cols-4`},Jv={class:`absolute end-3 top-3 sm:end-5 sm:top-5 font-mono text-[9px] sm:text-[10px] tracking-[0.25em] text-muted/50 transition-colors duration-500 group-hover:text-accent/70`},Yv={class:`text-2xl sm:text-4xl md:text-6xl font-black`},Xv={class:`mt-1.5 sm:mt-3 text-xs sm:text-sm text-muted`},Zv=Object.assign(B({__name:`Stats`,setup(e){let t=j(()=>N().sections.stats.items);return(e,n)=>(H(),_(`section`,Kv,[O(`div`,qv,[(H(!0),_(F,null,i(L(t),(e,t)=>(H(),_(`div`,{key:e.label,class:`group relative bg-bg p-4 sm:p-8 transition-colors duration-500 hover:bg-panel md:p-10`},[O(`span`,Jv,T(e.note),1),V(bt,{delay:t*.08},{default:h(()=>[O(`div`,Yv,[V(Gv,{end:e.end,suffix:e.suffix},null,8,[`end`,`suffix`])]),O(`div`,Xv,T(e.label),1)]),_:2},1032,[`delay`]),n[0]||=O(`span`,{class:`absolute bottom-0 start-0 h-0.5 w-0 bg-accent transition-all duration-500 group-hover:w-full`},null,-1)]))),128))])]))}}),{__name:`SectionsStats`}),Qv=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),$v={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},ey=({size:e,strokeWidth:t=2,absoluteStrokeWidth:n,color:r,iconNode:i,name:a,class:o,...s},{slots:c})=>z(`svg`,{...$v,width:e||$v.width,height:e||$v.height,stroke:r||$v.stroke,"stroke-width":n?Number(t)*24/Number(e):t,class:[`lucide`,`lucide-${Qv(a??`icon`)}`],...s},[...i.map(e=>z(...e)),...c.default?[c.default()]:[]]),ty=(e,t)=>(n,{slots:r})=>z(ey,{...n,iconNode:t,name:e},r),ny=ty(`ArrowLeftIcon`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),ry=ty(`ArrowRightIcon`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),iy={id:`products`,"aria-labelledby":`products-title`,class:`relative py-20 sm:py-24 md:py-32`},ay={class:`mx-auto max-w-[1480px] px-5 md:px-8`},oy={class:`flex flex-wrap items-end justify-between gap-6`},sy={href:`/#contact`,class:`group inline-flex items-center gap-2 rounded-full border border-line px-6 py-3 text-sm text-muted transition-colors hover:border-accent hover:text-accent`},cy={class:`mx-auto mt-4 max-w-[1480px] px-4 md:hidden`},ly=[`src`,`alt`],uy={key:1,class:`absolute inset-0 bg-panel`},dy={class:`absolute -top-2 end-1.5 font-mono text-[56px] font-black leading-none text-ink/5 select-none pointer-events-none`},fy={class:`absolute inset-x-0 top-0 flex items-center justify-between p-2.5 z-10`},py={class:`inline-flex items-center gap-1 rounded-full border border-ink/20 bg-bg/80 px-1.5 py-0.5 font-mono text-[8.5px] font-bold text-accent backdrop-blur-md`},my={class:`rounded-full bg-bg/75 border border-ink/10 px-1.5 py-0.5 font-mono text-[8.5px] font-bold text-ink/80 backdrop-blur-md`},hy={class:`absolute inset-x-0 bottom-0 p-3 z-10`},gy={class:`font-mono text-[8.5px] tracking-[0.15em] text-hazard uppercase`},_y={class:`mt-0.5 text-xs sm:text-sm font-black text-ink leading-tight line-clamp-1`},vy={class:`mt-1 flex items-center justify-center gap-3`},yy={class:`mx-auto mt-14 hidden max-w-[1480px] px-8 md:block`},by={class:`flex h-[74vh] min-h-[580px] flex-row gap-2`},xy=[`src`,`alt`],Sy={key:1,class:`absolute inset-0 bg-panel`},Cy={class:`absolute inset-x-0 top-0 flex items-center justify-between p-5`},wy={class:`font-mono text-[10px] tracking-widest text-ink/60`},Ty={class:`absolute inset-x-0 bottom-0 p-6`},Ey={class:`mt-1 font-mono text-[10px] tracking-[0.2em] text-muted`},Dy={class:`mx-auto mt-10 grid max-w-[1480px] gap-px overflow-hidden rounded-xl border border-line bg-line md:grid-cols-3`},Oy={class:`flex h-full items-center gap-4 bg-panel/60 p-4 sm:p-6`},ky={class:`flex size-11 sm:size-12 shrink-0 items-center justify-center rounded-xl bg-accent/10 text-accent`},Ay={class:`font-bold text-sm sm:text-base`},jy={class:`mt-1 text-xs leading-5 sm:leading-6 text-muted`},My=Object.assign(B({__name:`Products`,setup(e){let t=N(),n=j(()=>t.sections.productsIntro),r=j(()=>t.categories),a=P(0),o=P(0),s=P(null);function c(e){if(o.value=e,!s.value)return;let t=s.value.children;t[e]&&t[e].scrollIntoView({behavior:`smooth`,inline:`center`,block:`nearest`})}function l(){if(!s.value)return;let e=s.value,t=e.getBoundingClientRect(),n=t.left+t.width/2,r=0,i=1/0;Array.from(e.children).forEach((e,t)=>{let a=e.getBoundingClientRect(),o=a.left+a.width/2,s=Math.abs(n-o);s{let c=ee;return H(),_(`section`,iy,[O(`div`,ay,[O(`div`,oy,[V(St,u({"heading-id":`products-title`},L(n).head),null,16),V(bt,{delay:.2,class:`hidden md:block`},{default:h(()=>[O(`a`,sy,[R(T(L(n).ctaLabel)+` `,1),V(L(ny),{class:`size-4 transition-transform group-hover:-translate-x-1`})])]),_:1})])]),O(`div`,cy,[O(`div`,{ref_key:`scrollContainer`,ref:s,class:`flex items-center gap-4 overflow-x-auto snap-x snap-mandatory no-scrollbar -mx-4 px-8 py-8 scroll-smooth`,onScrollPassive:l},[(H(!0),_(F,null,i(L(r),(n,i)=>(H(),_(`div`,{key:n.code,class:S(`w-[54vw] max-w-[215px] aspect-[4/5] snap-center shrink-0 relative overflow-hidden rounded-xl border transition-all duration-500 ease-out ${L(o)===i?`border-accent/90 shadow-[0_0_20px_rgba(255,90,0,0.36)] ring-1 ring-accent/30 scale-100`:`border-line/70 opacity-55 scale-[0.92]`}`)},[n.coverImage?(H(),_(`img`,{key:0,src:n.coverImage,alt:n.name,loading:`lazy`,decoding:`async`,class:S(`absolute inset-0 size-full object-cover transition-transform duration-700 ${L(o)===i?`scale-105`:`scale-100`}`)},null,10,ly)):(H(),_(`div`,uy)),t[2]||=O(`div`,{class:`absolute inset-0 bg-gradient-to-t from-bg via-bg/50 via-50% to-bg/15`},null,-1),O(`div`,dy,T(String(i+1).padStart(2,`0`)),1),O(`div`,fy,[O(`span`,py,[t[0]||=O(`span`,{class:`size-1 rounded-full bg-accent animate-pulse`},null,-1),R(` `+T(n.code),1)]),O(`span`,my,T((`faNum`in e?e.faNum:L(lt))(String(i+1).padStart(2,`0`)))+` / `+T((`faNum`in e?e.faNum:L(lt))(String(L(r).length).padStart(2,`0`))),1)]),O(`div`,hy,[O(`span`,gy,T(n.nameEn),1),O(`h3`,_y,T(n.name),1),V(c,{to:`/categories/${n.slug}`,class:`mt-2 inline-flex w-full items-center justify-between rounded-md bg-accent px-2.5 py-1.5 text-[10.5px] font-bold text-bg transition-all duration-300 hover:bg-accent-soft active:scale-[0.98] shadow-sm shadow-accent/25`},{default:h(()=>[t[1]||=O(`span`,null,`مشاهده محصولات`,-1),V(L(ny),{class:`size-3`})]),_:1},8,[`to`])])],2))),128))],544),O(`div`,vy,[O(`button`,{type:`button`,"aria-label":`دسته قبلی (سمت راست)`,class:`flex size-10 items-center justify-center rounded-full border border-line bg-panel text-ink transition-colors hover:border-accent hover:text-accent active:scale-95 shadow-sm`,onClick:f},[V(L(ry),{class:`size-4`})]),O(`button`,{type:`button`,"aria-label":`دسته بعدی (سمت چپ)`,class:`flex size-10 items-center justify-center rounded-full border border-line bg-panel text-ink transition-colors hover:border-accent hover:text-accent active:scale-95 shadow-sm`,onClick:d},[V(L(ny),{class:`size-4`})])])]),O(`div`,yy,[O(`div`,by,[(H(!0),_(F,null,i(L(r),(t,n)=>(H(),w(c,{key:t.code,to:`/categories/${t.slug}`,"data-hover":``,class:S(`group relative cursor-pointer overflow-hidden rounded-xl border transition-all duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] ${L(a)===n?`flex-[3.4] border-accent/60`:`flex-[1] border-line hover:border-ink/30`}`),onMouseenter:e=>a.value=n},{default:h(()=>[t.coverImage?(H(),_(`img`,{key:0,src:t.coverImage,alt:t.name,loading:`lazy`,decoding:`async`,class:S(`absolute inset-0 size-full object-cover transition-all duration-700 ${L(a)===n?`scale-100 grayscale-0`:`scale-110 grayscale group-hover:grayscale-0`}`)},null,10,xy)):(H(),_(`div`,Sy)),O(`div`,{class:S(`absolute inset-0 transition-opacity duration-700 ${L(a)===n?`bg-gradient-to-t from-bg via-bg/35 to-bg/5`:`bg-gradient-to-t from-bg/95 via-bg/0 to-transparent`}`)},null,2),O(`div`,Cy,[O(`span`,wy,T(t.code),1),O(`span`,{class:S(`font-mono text-xs transition-colors duration-500 ${L(a)===n?`text-accent`:`text-ink/40`}`)},T((`faNum`in e?e.faNum:L(lt))(String(n+1).padStart(2,`0`))),3)]),O(`div`,Ty,[O(`h3`,{class:S(`font-black transition-all duration-500 ${L(a)===n?`text-2xl`:`text-sm`}`)},T(t.name),3),O(`p`,Ey,T(t.nameEn),1)])]),_:2},1032,[`to`,`class`,`onMouseenter`]))),128))])]),O(`div`,Dy,[(H(!0),_(F,null,i(L(n).trust,(e,t)=>(H(),w(bt,{key:e.title,delay:t*.08},{default:h(()=>[O(`div`,Oy,[O(`span`,ky,[V(_t,{name:e.icon,class:`size-5 sm:size-6`},null,8,[`name`])]),O(`div`,null,[O(`div`,Ay,T(e.title),1),O(`div`,jy,T(e.desc),1)])])]),_:2},1032,[`delay`]))),128))])])}}}),{__name:`SectionsProducts`}),Ny={id:`about`,"aria-labelledby":`about-title`,class:`relative overflow-hidden border-t border-line py-24 md:py-32`},Py={class:`relative mx-auto max-w-[1480px] px-5 md:px-8`},Fy={class:`grid items-center gap-14 lg:grid-cols-2`},Iy={class:`relative overflow-hidden rounded-2xl border border-line`},Ly=[`src`,`alt`],Ry={class:`absolute bottom-5 start-5 flex items-center gap-4 rounded-xl border border-line bg-bg/80 px-5 py-4 backdrop-blur-md`},zy={class:`font-mono text-3xl font-bold text-accent`},By={class:`text-xs leading-5 text-muted`},Vy={class:`order-1 lg:order-2`},Hy={class:`mt-6 leading-9 text-muted`},Uy={class:`mt-10 space-y-1`},Wy={class:`group border-s-2 border-accent/30 ps-6 transition-colors duration-300 hover:border-accent`},Gy={class:`font-mono text-sm font-bold text-accent`},Ky={class:`mt-1 pb-5 text-sm leading-7 text-ink/75`},qy={class:`mt-4 flex flex-wrap gap-3`},Jy=Object.assign(B({__name:`About`,setup(e){let t=j(()=>N().sections.about);return(e,n)=>(H(),_(`section`,Ny,[n[2]||=O(`div`,{class:`absolute inset-0 bg-grid-fine opacity-50`},null,-1),O(`div`,Py,[O(`div`,Fy,[V(bt,{class:`relative order-2 lg:order-1`,delay:.1},{default:h(()=>[O(`div`,Iy,[O(`img`,{src:L(t).image.url,alt:L(t).image.alt,width:`800`,height:`600`,loading:`lazy`,decoding:`async`,class:`aspect-[4/3] w-full object-cover`},null,8,Ly),n[0]||=O(`div`,{class:`absolute inset-0 bg-gradient-to-t from-bg/80 via-transparent to-transparent`},null,-1),O(`div`,Ry,[O(`span`,zy,T(L(t).badge.value),1),O(`span`,By,[V(xt,{text:L(t).badge.label},null,8,[`text`])])])]),n[1]||=O(`div`,{class:`hazard absolute -top-3 -end-3 h-6 w-28 rounded-full opacity-90`},null,-1)]),_:1}),O(`div`,Vy,[V(St,u({"heading-id":`about-title`},L(t).head),null,16),V(bt,{delay:.2},{default:h(()=>[O(`p`,Hy,T(L(t).body),1)]),_:1}),O(`div`,Uy,[(H(!0),_(F,null,i(L(t).timeline,(e,t)=>(H(),w(bt,{key:e.year,delay:.25+t*.07},{default:h(()=>[O(`div`,Wy,[O(`span`,Gy,T(e.year),1),O(`p`,Ky,T(e.text),1)])]),_:2},1032,[`delay`]))),128))]),V(bt,{delay:.5},{default:h(()=>[O(`div`,qy,[(H(!0),_(F,null,i(L(t).features,e=>(H(),_(`span`,{key:e.label,class:`inline-flex items-center gap-2 rounded-full border border-line bg-panel/60 px-4 py-2 text-xs text-ink/80 transition-colors hover:border-accent/50 hover:text-ink`},[V(_t,{name:e.icon,class:`size-4 text-accent`},null,8,[`name`]),R(` `+T(e.label),1)]))),128))])]),_:1})])])])]))}}),{__name:`SectionsAbout`}),Yy={id:`services`,"aria-labelledby":`services-title`,class:`border-t border-line py-24 md:py-32`},Xy={class:`mx-auto max-w-[1480px] px-5 md:px-8`},Zy={class:`mt-16`},Qy=[`onClick`],$y={class:`grid gap-8 pb-10 md:grid-cols-2 md:ps-16`},eb={class:`flex items-start gap-4`},tb={class:`flex size-12 shrink-0 items-center justify-center rounded-xl bg-accent/10 text-accent`},nb={class:`text-sm leading-8 text-muted`},rb={class:`space-y-3.5`},ib=Object.assign(B({__name:`Services`,setup(e){let t=j(()=>N().sections.services),n=et();tt(t.value.items.map(e=>Ne(n,{name:e.title,description:e.desc})),`services`);let r=P(0);return(e,n)=>(H(),_(`section`,Yy,[O(`div`,Xy,[V(St,u({"heading-id":`services-title`},L(t).head),null,16),O(`div`,Zy,[(H(!0),_(F,null,i(L(t).items,(a,o)=>(H(),w(bt,{key:a.title,delay:o*.05},{default:h(()=>[O(`div`,{class:S(`border-t border-line ${o===L(t).items.length-1?`border-b`:``}`)},[O(`button`,{class:`group flex w-full items-center gap-5 py-7 text-start md:gap-10 md:py-9`,onClick:e=>r.value=L(r)===o?-1:o},[O(`span`,{class:S(`font-mono text-sm transition-colors duration-300 md:text-base ${L(r)===o?`text-accent`:`text-muted`}`)},T((`faNum`in e?e.faNum:L(lt))(String(o+1).padStart(2,`0`))),3),O(`span`,{class:S(`flex-1 text-2xl font-black transition-colors duration-300 md:text-4xl ${L(r)===o?`text-accent`:`text-ink group-hover:text-accent`}`)},T(a.title),3),O(`span`,{class:S(`hidden size-12 shrink-0 items-center justify-center rounded-full border transition-all duration-500 md:flex ${L(r)===o?`rotate-45 border-accent bg-accent text-bg`:`border-line text-muted group-hover:border-accent/50 group-hover:text-accent`}`)},[V(I,{name:`add`,class:`size-5`})],2)],8,Qy),V(L(ht),{initial:!1},{default:h(()=>[L(r)===o?(H(),w(L(ct).div,{key:0,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.55,ease:`EASE`in e?e.EASE:L(ft)},class:`overflow-hidden`},{default:h(()=>[O(`div`,$y,[O(`div`,eb,[O(`span`,tb,[V(_t,{name:a.icon,class:`size-6`},null,8,[`name`])]),O(`p`,nb,T(a.desc),1)]),O(`ul`,rb,[(H(!0),_(F,null,i(a.items,e=>(H(),_(`li`,{key:e,class:`flex items-center gap-3 text-sm text-ink/80`},[n[0]||=O(`span`,{class:`size-1.5 shrink-0 rounded-full bg-accent`},null,-1),R(` `+T(e),1)]))),128))])])]),_:2},1032,[`transition`])):C(``,!0)]),_:2},1024)],2)]),_:2},1032,[`delay`]))),128))])])]))}}),{__name:`SectionsServices`}),ab={id:`standards`,"aria-labelledby":`standards-title`,class:`relative overflow-hidden border-t border-line py-24 md:py-32`},ob={class:`relative mx-auto max-w-[1480px] px-5 md:px-8`},sb={class:`grid items-center gap-14 lg:grid-cols-12`},cb={class:`lg:col-span-5`},lb={class:`mt-8 flex items-start gap-4 rounded-xl border border-accent/25 bg-accent/5 p-5`},ub={class:`text-sm leading-8 text-ink/80`},db={href:`#contact`,class:`group mt-8 inline-flex items-center gap-2.5 rounded-full border border-line px-6 py-3.5 text-sm font-bold transition-colors hover:border-accent hover:text-accent`},fb={class:`grid gap-4 sm:grid-cols-2 lg:col-span-7 xl:grid-cols-3`},pb={"data-hover":``,class:`group relative h-full border border-line bg-panel/50 p-6 text-center transition-all duration-500 hover:-translate-y-1.5 hover:border-accent/50 hover:bg-panel`},mb={class:`mx-auto flex size-24 items-center justify-center rounded-full border border-dashed border-ink/20 transition-all duration-500 group-hover:rotate-12 group-hover:border-accent/60`},hb={class:`font-mono text-base font-bold text-ink transition-colors duration-300 group-hover:text-accent`},gb={class:`mt-4 text-sm font-medium text-ink/85`},_b=Object.assign(B({__name:`Standards`,setup(e){let t=j(()=>N().sections.standards);return(e,n)=>(H(),_(`section`,ab,[n[3]||=O(`div`,{"aria-hidden":`true`,class:`text-outline pointer-events-none absolute -bottom-14 -start-8 select-none font-mono text-[24vw] font-bold leading-none opacity-60`},` CE `,-1),O(`div`,ob,[O(`div`,sb,[O(`div`,cb,[V(St,u({"heading-id":`standards-title`},L(t).head),null,16),L(t).note?(H(),w(bt,{key:0,delay:.25},{default:h(()=>[O(`div`,lb,[V(I,{name:`document-filter`,class:`size-6 shrink-0 text-accent`}),O(`p`,ub,T(L(t).note),1)])]),_:1})):C(``,!0),V(bt,{delay:.35},{default:h(()=>[O(`a`,db,[V(I,{name:`shield-tick`,class:`size-4 text-accent`}),R(` `+T(L(t).ctaLabel),1)])]),_:1})]),O(`div`,fb,[(H(!0),_(F,null,i(L(t).items,(e,t)=>(H(),w(bt,{key:e.code,delay:t*.06},{default:h(()=>[O(`div`,pb,[n[2]||=O(`span`,{class:`absolute end-3 top-3 font-mono text-[9px] tracking-[0.2em] text-muted/50`},` CERT `,-1),O(`div`,mb,[O(`div`,null,[O(`div`,hb,T(e.code),1),n[0]||=O(`div`,{class:`mx-auto mt-1.5 h-px w-8 bg-line transition-colors duration-300 group-hover:bg-accent/50`},null,-1),n[1]||=O(`div`,{class:`mt-1.5 font-mono text-[8px] tracking-[0.25em] text-muted`},` EURO NORM `,-1)])]),O(`div`,gb,T(e.label),1)])]),_:2},1032,[`delay`]))),128))])])])]))}}),{__name:`SectionsStandards`}),vb={class:`mx-auto max-w-[1480px] px-5 md:px-8`},yb={class:`flex min-w-0 items-baseline gap-5 md:gap-8`},bb={class:`shrink-0 font-mono text-xs text-muted`},xb={class:`truncate text-2xl font-black transition-all duration-300 group-hover:-translate-x-2 group-hover:text-accent md:text-5xl`},Sb={class:`hidden shrink-0 font-mono text-[10px] tracking-[0.3em] text-muted/60 md:inline`},Cb={class:`flex shrink-0 items-center gap-4 md:gap-8`},wb={key:0,class:`text-xs text-muted md:text-sm`},Tb={class:`flex size-10 items-center justify-center rounded-full border border-line text-muted transition-all duration-300 group-hover:-translate-x-1.5 group-hover:border-accent group-hover:text-accent md:size-12`},Eb=[`src`,`alt`],Db={class:`absolute bottom-3 start-3 rounded-md border border-line bg-bg/80 px-3 py-1.5 font-mono text-[10px] tracking-widest text-ink backdrop-blur`},Ob=Object.assign(B({__name:`Industries`,setup(e){let t=j(()=>N().sections.industries),n=j(()=>t.value.items),r=P(null),a=pt(0),o=pt(0),s=mt(a,{stiffness:220,damping:26,mass:.6}),c=mt(o,{stiffness:220,damping:26,mass:.6}),l=e=>{a.set(e.clientX),o.set(e.clientY)};return(e,a)=>(H(),_(`section`,{id:`industries`,"aria-labelledby":`industries-title`,class:`relative border-t border-line py-24 md:py-32`,onMousemove:l},[O(`div`,vb,[V(St,u({"heading-id":`industries-title`},L(t).head),null,16),O(`div`,{class:`mt-16`,onMouseleave:a[0]||=e=>r.value=null},[(H(!0),_(F,null,i(L(n),(t,i)=>(H(),w(L(ct).div,u({key:t.name},{ref_for:!0},(`fade`in e?e.fade:L(ut))(i*.05),{"data-hover":``,class:`group relative flex cursor-pointer items-center justify-between gap-4 border-t border-line px-2 py-7 transition-colors duration-300 hover:bg-panel/40 md:px-4 md:py-9 ${i===L(n).length-1?`border-b`:``}`,onMouseenter:e=>r.value=i}),{default:h(()=>[O(`div`,yb,[O(`span`,bb,T((`faNum`in e?e.faNum:L(lt))(String(i+1).padStart(2,`0`))),1),O(`h3`,xb,T(t.name),1),O(`span`,Sb,T(t.nameEn),1)]),O(`div`,Cb,[t.count?(H(),_(`span`,wb,T(t.count)+` پروژه`,1)):C(``,!0),O(`span`,Tb,[V(I,{name:`arrow-left`,class:`size-4 md:size-5`})])])]),_:2},1040,[`class`,`onMouseenter`]))),128))],32)]),V(L(ct).div,{style:k({x:L(s),y:L(c)}),class:`pointer-events-none fixed left-0 top-0 z-40 hidden lg:block`},{default:h(()=>[V(L(ht),null,{default:h(()=>[L(r)===null?C(``,!0):(H(),w(L(ct).div,{key:L(r),initial:{opacity:0,scale:.82,rotate:-3},animate:{opacity:1,scale:1,rotate:0},exit:{opacity:0,scale:.9,rotate:2},transition:{duration:.35,ease:`EASE`in e?e.EASE:L(ft)},class:`relative -ml-40 -mt-28 h-56 w-80 overflow-hidden rounded-xl border border-accent/40 shadow-[0_25px_80px_rgba(0,0,0,0.6)]`},{default:h(()=>[O(`img`,{src:L(n)[L(r)].image.url,alt:L(n)[L(r)].image.alt||L(n)[L(r)].name,decoding:`async`,class:`absolute inset-0 size-full object-cover grayscale-[35%] transition-all duration-500`},null,8,Eb),a[1]||=O(`div`,{class:`absolute inset-0 bg-accent/15 mix-blend-multiply`},null,-1),a[2]||=O(`div`,{class:`absolute inset-0 bg-gradient-to-t from-bg/70 to-transparent`},null,-1),O(`div`,Db,T(L(n)[L(r)].nameEn),1)]),_:1},8,[`transition`]))]),_:1})]),_:1},8,[`style`])],32))}}),{__name:`SectionsIndustries`}),kb={key:0,"aria-labelledby":`testimonials-title`,class:`relative overflow-hidden border-t border-line py-24 md:py-32`},Ab={class:`relative mx-auto max-w-4xl px-5 text-center md:px-8`},jb={class:`mt-14 flex min-h-[320px] flex-col items-center md:min-h-[280px]`},Mb={class:`flex size-16 items-center justify-center rounded-full border border-accent/30 bg-accent/10`},Nb={class:`text-xl font-bold leading-[2.1] text-ink/90 md:text-2xl md:leading-[2]`},Pb={class:`mt-8`},Fb={class:`text-lg font-black`},Ib={class:`mt-2 font-mono text-xs text-muted`},Lb={class:`mt-12 flex items-center justify-center gap-3`},Rb=[`aria-label`,`onClick`],zb=Object.assign(B({__name:`Testimonials`,setup(e){let t=j(()=>N().sections.testimonials),n=j(()=>t.value.items),r=P(0),o=j(()=>n.value[r.value]),s;return a(()=>{s=gt(()=>r.value=(r.value+1)%Math.max(1,n.value.length),7e3)}),c(()=>clearInterval(s)),(e,a)=>L(n).length?(H(),_(`section`,kb,[a[0]||=O(`div`,{class:`absolute inset-0 bg-grid opacity-40`},null,-1),a[1]||=O(`div`,{class:`pointer-events-none absolute -top-10 -end-10 select-none font-mono text-[18vw] font-bold leading-none text-outline opacity-50`},` " `,-1),O(`div`,Ab,[V(St,u({"heading-id":`testimonials-title`,center:``},L(t).head),null,16),O(`div`,jb,[O(`span`,Mb,[V(I,{name:`quote-up`,class:`size-7 text-accent`})]),V(L(ht),{mode:`wait`},{default:h(()=>[L(o)?(H(),w(L(ct).blockquote,{key:L(r),initial:{opacity:0,y:26},animate:{opacity:1,y:0},exit:{opacity:0,y:-26},transition:{duration:.55,ease:`EASE`in e?e.EASE:L(ft)},class:`mt-8`},{default:h(()=>[O(`p`,Nb,` «`+T(L(o).text)+`» `,1),O(`footer`,Pb,[O(`div`,Fb,T(L(o).name),1),O(`div`,Ib,T(L(o).role),1)])]),_:1},8,[`transition`])):C(``,!0)]),_:1})]),O(`div`,Lb,[(H(!0),_(F,null,i(L(n),(t,n)=>(H(),_(`button`,{key:n,"aria-label":`نظر شماره ${(`faNum`in e?e.faNum:L(lt))(n+1)}`,class:S(`h-1.5 rounded-full transition-all duration-500 ${n===L(r)?`w-12 bg-accent`:`w-4 bg-line hover:bg-muted`}`),onClick:e=>r.value=n},null,10,Rb))),128))])])])):C(``,!0)}}),{__name:`SectionsTestimonials`}),Bb={id:`contact`,"aria-labelledby":`contact-title`,class:`relative overflow-hidden border-t border-line py-24 md:py-32`},Vb={class:`relative mx-auto max-w-[1480px] px-5 md:px-8`},Hb={class:`grid gap-14 lg:grid-cols-2`},Ub={class:`mt-10 space-y-1`},Wb={class:`group flex items-center gap-4 border-b border-line/70 py-4`},Gb={class:`flex size-11 shrink-0 items-center justify-center rounded-lg border border-line text-accent transition-colors duration-300 group-hover:border-accent/50`},Kb={class:`min-w-0`},qb={class:`text-xs text-muted`},Jb={class:`mt-8 flex items-start gap-4 rounded-xl border border-hazard/30 bg-hazard/5 p-5`},Yb={class:`font-bold text-hazard`},Xb={class:`mt-1.5 text-sm leading-7 text-muted`},Zb={class:`rounded-2xl border border-line bg-panel/60 p-6 backdrop-blur md:p-9`},Qb={key:0,class:`font-mono text-xs tracking-[0.25em] text-accent`},$b={class:`mt-3 text-2xl font-black leading-snug`},ex={key:1,class:`mt-10 flex flex-col items-center rounded-xl border border-emerald-500/30 bg-emerald-500/5 p-10 text-center`},tx={class:`mt-5 text-xl font-black`},nx={class:`mt-2.5 max-w-sm text-sm leading-7 text-muted`},rx={class:`absolute -start-[9999px] h-px w-px overflow-hidden`,"aria-hidden":`true`},ix={class:`mt-8 grid gap-5 sm:grid-cols-2`},ax={key:0,class:`rounded-lg border border-accent/40 bg-accent/10 px-4 py-3 text-sm leading-7 text-accent sm:col-span-2`,role:`alert`},ox={class:`sm:col-span-2`},sx=Object.assign(B({__name:`Contact`,setup(e){let t=N(),n=j(()=>t.sections.contact),a=j(()=>{let e=t.settings;return[{icon:`location`,label:`نشانی`,value:`${e.address.locality}، ${e.address.street}`},{icon:`call`,label:`تلفن تماس`,value:e.phoneDisplay,ltr:!0,href:`tel:${e.phone}`},{icon:`sms`,label:`ایمیل`,value:e.email,ltr:!0,href:`mailto:${e.email}`},{icon:`clock`,label:`ساعات کاری`,value:e.workingHours}]}),o=e=>[{required:!0,whitespace:!0,message:e,trigger:`blur`}],s={name:o(`لطفاً نام و نام خانوادگی را وارد کنید`),org:o(`لطفاً نام سازمان را وارد کنید`),phone:o(`لطفاً شماره تماس را وارد کنید`)},c=yt();return(e,t)=>(H(),_(`section`,Bb,[t[9]||=O(`div`,{class:`absolute inset-0 bg-grid-fine opacity-40`},null,-1),O(`div`,Vb,[O(`div`,Hb,[O(`div`,null,[V(St,u({"heading-id":`contact-title`},L(n).head),null,16),O(`div`,Ub,[(H(!0),_(F,null,i(L(a),(e,t)=>(H(),w(bt,{key:e.label,delay:.15+t*.06},{default:h(()=>[O(`div`,Wb,[O(`span`,Gb,[V(I,{name:e.icon,class:`size-5`},null,8,[`name`])]),O(`div`,Kb,[O(`div`,qb,T(e.label),1),(H(),w(r(e.href?`a`:`div`),{href:e.href,class:S(`mt-1 block text-sm font-medium ${e.ltr?`font-mono tracking-wider`:``}`),dir:e.ltr?`ltr`:`rtl`},{default:h(()=>[R(T(e.value),1)]),_:2},1032,[`href`,`class`,`dir`]))])])]),_:2},1032,[`delay`]))),128))]),V(bt,{delay:.45},{default:h(()=>[O(`div`,Jb,[V(I,{name:`lamp-on`,class:`size-6 shrink-0 text-hazard`}),O(`div`,null,[O(`div`,Yb,T(L(n).emergencyTitle),1),O(`p`,Xb,T(L(n).emergencyText),1)])])]),_:1})]),V(bt,{delay:.15},{default:h(()=>[O(`div`,Zb,[L(n).formTag?(H(),_(`div`,Qb,T(L(n).formTag),1)):C(``,!0),O(`h3`,$b,[V(xt,{text:L(n).formTitle},null,8,[`text`])]),L(c).status===`success`?(H(),_(`div`,ex,[V(I,{name:`tick-circle`,class:`size-14 text-emerald-400`}),O(`div`,tx,T(L(n).successTitle),1),O(`p`,nx,T(L(n).successText),1),O(`button`,{type:`button`,class:`mt-7 rounded-full border border-line px-7 py-3 text-sm transition-colors hover:border-accent hover:text-accent`,onClick:t[0]||=(...e)=>L(c).reset&&L(c).reset(...e)},` ثبت درخواست جدید `)])):(H(),w(L(S_),{key:2,class:`contact-form`,layout:`vertical`,model:L(c).form,rules:s,"hide-required-mark":``,onFinish:L(c).submit},{default:h(()=>[O(`div`,rx,[t[6]||=O(`label`,{for:`f-website`},`وب‌سایت`,-1),g(O(`input`,{id:`f-website`,"onUpdate:modelValue":t[1]||=e=>L(c).form.website=e,type:`text`,tabindex:`-1`,autocomplete:`off`},null,512),[[re,L(c).form.website]])]),O(`div`,ix,[V(L(p_),{name:`name`,label:`نام و نام خانوادگی *`,"html-for":`f-name`},{default:h(()=>[V(L(gv),{id:`f-name`,value:L(c).form.name,"onUpdate:value":t[2]||=e=>L(c).form.name=e,placeholder:`مثلاً: علی رضایی`},null,8,[`value`])]),_:1}),V(L(p_),{name:`org`,label:`نام سازمان *`,"html-for":`f-org`},{default:h(()=>[V(L(gv),{id:`f-org`,value:L(c).form.org,"onUpdate:value":t[3]||=e=>L(c).form.org=e,placeholder:`مثلاً: شرکت پتروشیمی خلیج`},null,8,[`value`])]),_:1}),V(L(p_),{class:`sm:col-span-2`,name:`phone`,label:`شماره تماس *`,"html-for":`f-phone`},{default:h(()=>[V(L(gv),{id:`f-phone`,value:L(c).form.phone,"onUpdate:value":t[4]||=e=>L(c).form.phone=e,type:`tel`,dir:`ltr`,placeholder:`0912 000 0000`},null,8,[`value`])]),_:1}),V(L(p_),{class:`sm:col-span-2`,name:`message`,label:`شرح درخواست`,"html-for":`f-msg`},{default:h(()=>[V(L(rv),{id:`f-msg`,value:L(c).form.message,"onUpdate:value":t[5]||=e=>L(c).form.message=e,rows:4,placeholder:`تجهیزات موردنیاز، تعداد پرسنل یا هر نکته‌ای که لازم است بدانیم...`},null,8,[`value`])]),_:1}),L(c).status===`error`?(H(),_(`p`,ax,T(L(c).error),1)):C(``,!0),O(`div`,ox,[V(L(Mm),{type:`primary`,"html-type":`submit`,class:`contact-submit`,disabled:L(c).status===`loading`},{default:h(()=>[L(c).status===`loading`?(H(),_(F,{key:0},[V(I,{name:`refresh-circle`,class:`size-5 animate-spin`}),t[7]||=R(` در حال ارسال... `,-1)],64)):(H(),_(F,{key:1},[V(I,{name:`send-2`,class:`size-5`}),t[8]||=R(` ارسال درخواست مشاوره `,-1)],64))]),_:1},8,[`disabled`])])])]),_:1},8,[`model`,`onFinish`]))])]),_:1})])])]))}}),{__name:`SectionsContact`}),cx=B({__name:`index`,setup(e){let t=Xe()(`/`),n=N(),r=j(()=>n.sections),i=j(()=>r.value.hero);return Re({link:[{rel:`canonical`,href:t},...i.value?.image?.url&&i.value.enabled!==!1?[{rel:`preload`,as:`image`,href:i.value.image.url,fetchpriority:`high`}]:[]]}),Ve({robots:`index, follow`,ogUrl:t}),a(()=>{n.load()}),(e,t)=>(H(),_(`main`,null,[L(r).hero?.enabled===!1?C(``,!0):(H(),w(Rv,{key:0})),L(r).tape?.enabled===!1?C(``,!0):(H(),w(Uv,{key:1})),L(r).stats?.enabled===!1?C(``,!0):(H(),w(Zv,{key:2})),L(r).productsIntro?.enabled===!1?C(``,!0):(H(),w(My,{key:3})),L(r).about?.enabled===!1?C(``,!0):(H(),w(Jy,{key:4})),L(r).services?.enabled===!1?C(``,!0):(H(),w(ib,{key:5})),L(r).standards?.enabled===!1?C(``,!0):(H(),w(_b,{key:6})),L(r).industries?.enabled===!1?C(``,!0):(H(),w(Ob,{key:7})),L(r).testimonials?.enabled===!1?C(``,!0):(H(),w(zb,{key:8})),L(r).contact?.enabled===!1?C(``,!0):(H(),w(sx,{key:9}))]))}});export{cx as default}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/VuesaxIcon.4cYnpGo8.css b/apps/web/.output/public/_nuxt/VuesaxIcon.4cYnpGo8.css new file mode 100644 index 0000000..59d1284 --- /dev/null +++ b/apps/web/.output/public/_nuxt/VuesaxIcon.4cYnpGo8.css @@ -0,0 +1 @@ +.vx-icon[data-v-ca18e3bd]{color:inherit;vertical-align:-.15em;flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex}.vx-icon[data-v-ca18e3bd] svg{width:100%;height:100%;display:block} diff --git a/apps/web/.output/public/_nuxt/builds/latest.json b/apps/web/.output/public/_nuxt/builds/latest.json new file mode 100644 index 0000000..d6be165 --- /dev/null +++ b/apps/web/.output/public/_nuxt/builds/latest.json @@ -0,0 +1 @@ +{"id":"3e7fac48-d5e5-406c-8e09-0f6380ec2f4f","timestamp":1792842383527} \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/builds/meta/3e7fac48-d5e5-406c-8e09-0f6380ec2f4f.json b/apps/web/.output/public/_nuxt/builds/meta/3e7fac48-d5e5-406c-8e09-0f6380ec2f4f.json new file mode 100644 index 0000000..cc1a2d6 --- /dev/null +++ b/apps/web/.output/public/_nuxt/builds/meta/3e7fac48-d5e5-406c-8e09-0f6380ec2f4f.json @@ -0,0 +1 @@ +{"id":"3e7fac48-d5e5-406c-8e09-0f6380ec2f4f","timestamp":1792842383527,"prerendered":[]} \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/entry.NJkjIEBJ.css b/apps/web/.output/public/_nuxt/entry.NJkjIEBJ.css new file mode 100644 index 0000000..0829662 --- /dev/null +++ b/apps/web/.output/public/_nuxt/entry.NJkjIEBJ.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-scroll-snap-strictness:proximity;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:var(--font-iransans);--font-mono:var(--font-iransans);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.4);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(1.2);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--blur-2xl:40px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b1224;--color-panel:#101a32;--color-panel-2:#152040;--color-ink:#edede6;--color-muted:#8e9ab0;--color-accent:#ff5a00;--color-accent-soft:#ff7a2a;--color-hazard:#ffb800;--color-line:#1e2d4d;--animate-marquee:marquee 32s linear infinite;--animate-blink:blink 1.1s steps(2, start) infinite;--animate-fade-up:fade-up 1s cubic-bezier(.22, 1, .36, 1) both}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.inset-x-0{inset-inline:0}.-start-8{inset-inline-start:calc(var(--spacing) * -8)}.-start-\[9999px\]{inset-inline-start:-9999px}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.start-3{inset-inline-start:calc(var(--spacing) * 3)}.start-4{inset-inline-start:calc(var(--spacing) * 4)}.start-5{inset-inline-start:calc(var(--spacing) * 5)}.-end-3{inset-inline-end:calc(var(--spacing) * -3)}.-end-10{inset-inline-end:calc(var(--spacing) * -10)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.end-1\.5{inset-inline-end:calc(var(--spacing) * 1.5)}.end-3{inset-inline-end:calc(var(--spacing) * 3)}.end-4{inset-inline-end:calc(var(--spacing) * 4)}.end-5{inset-inline-end:calc(var(--spacing) * 5)}.-top-2{top:calc(var(--spacing) * -2)}.-top-3{top:calc(var(--spacing) * -3)}.-top-4{top:calc(var(--spacing) * -4)}.-top-10{top:calc(var(--spacing) * -10)}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.-bottom-14{bottom:calc(var(--spacing) * -14)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-24{bottom:calc(var(--spacing) * 24)}.-left-4{left:calc(var(--spacing) * -4)}.left-0{left:0}.left-1\/2{left:50%}.left-6{left:calc(var(--spacing) * 6)}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-\[70\]{z-index:70}.z-\[80\]{z-index:80}.z-\[110\]{z-index:110}.z-\[120\]{z-index:120}.z-\[200\]{z-index:200}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.m-auto{margin:auto}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.ms-1{margin-inline-start:var(--spacing)}.-mt-28{margin-top:calc(var(--spacing) * -28)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-auto{margin-top:auto}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.-ml-40{margin-left:calc(var(--spacing) * -40)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-\[4\/5\]{aspect-ratio:4/5}.aspect-square{aspect-ratio:1}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-6{height:calc(var(--spacing) * 6)}.h-32{height:calc(var(--spacing) * 32)}.h-56{height:calc(var(--spacing) * 56)}.h-\[3px\]{height:3px}.h-\[74vh\]{height:74vh}.h-full{height:100%}.h-px{height:1px}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-\[320px\]{min-height:320px}.min-h-\[580px\]{min-height:580px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-4{width:calc(var(--spacing) * 4)}.w-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-28{width:calc(var(--spacing) * 28)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-\[54vw\]{width:54vw}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[215px\]{max-width:215px}.max-w-\[1480px\]{max-width:1480px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-11{min-width:calc(var(--spacing) * 11)}.flex-1,.flex-\[1\]{flex:1}.flex-\[3\.4\]{flex:3.4}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.origin-right{transform-origin:100%}.-translate-x-1\/2{--tw-translate-x:calc(-50%)}.-translate-x-1\/2,.-translate-y-1\/2{translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(-50%)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%}.scale-100,.scale-105,.scale-110,.scale-x-0{scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%}.scale-x-0{--tw-scale-x:0%}.scale-\[0\.92\]{scale:.92}.scale-\[0\.97\]{scale:.97}.scale-\[1\.04\]{scale:1.04}.-rotate-\[1\.6deg\]{rotate:-1.6deg}.rotate-45{rotate:45deg}.animate-blink{animation:var(--animate-blink)}.animate-bounce{animation:var(--animate-bounce)}.animate-marquee{animation:var(--animate-marquee)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-14{gap:calc(var(--spacing) * 14)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * (1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc((var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc((var(--spacing) * 3) * (1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc((var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc((var(--spacing) * 3.5) * (1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc((var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc((var(--spacing) * 5) * (1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc((var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc((var(--spacing) * 6) * (1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-width:1px}.border,.border-2{border-style:var(--tw-border-style)}.border-2{border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent{border-color:var(--color-accent)}.border-accent\/25{border-color:#ff5a0040}@supports (color:color-mix(in lab,red,red)){.border-accent\/25{border-color:color-mix(in oklab,var(--color-accent) 25%,transparent)}}.border-accent\/30{border-color:#ff5a004d}@supports (color:color-mix(in lab,red,red)){.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.border-accent\/40{border-color:#ff5a0066}@supports (color:color-mix(in lab,red,red)){.border-accent\/40{border-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.border-accent\/60{border-color:#ff5a0099}@supports (color:color-mix(in lab,red,red)){.border-accent\/60{border-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}.border-accent\/80{border-color:#ff5a00cc}@supports (color:color-mix(in lab,red,red)){.border-accent\/80{border-color:color-mix(in oklab,var(--color-accent) 80%,transparent)}}.border-accent\/90{border-color:#ff5a00e6}@supports (color:color-mix(in lab,red,red)){.border-accent\/90{border-color:color-mix(in oklab,var(--color-accent) 90%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-hazard\/30{border-color:#ffb8004d}@supports (color:color-mix(in lab,red,red)){.border-hazard\/30{border-color:color-mix(in oklab,var(--color-hazard) 30%,transparent)}}.border-ink\/10{border-color:#edede61a}@supports (color:color-mix(in lab,red,red)){.border-ink\/10{border-color:color-mix(in oklab,var(--color-ink) 10%,transparent)}}.border-ink\/15{border-color:#edede626}@supports (color:color-mix(in lab,red,red)){.border-ink\/15{border-color:color-mix(in oklab,var(--color-ink) 15%,transparent)}}.border-ink\/20{border-color:#edede633}@supports (color:color-mix(in lab,red,red)){.border-ink\/20{border-color:color-mix(in oklab,var(--color-ink) 20%,transparent)}}.border-ink\/25{border-color:#edede640}@supports (color:color-mix(in lab,red,red)){.border-ink\/25{border-color:color-mix(in oklab,var(--color-ink) 25%,transparent)}}.border-line{border-color:var(--color-line)}.border-line\/60{border-color:#1e2d4d99}@supports (color:color-mix(in lab,red,red)){.border-line\/60{border-color:color-mix(in oklab,var(--color-line) 60%,transparent)}}.border-line\/70{border-color:#1e2d4db3}.bg-accent{background-color:var(--color-accent)}.bg-accent\/5{background-color:#ff5a000d}@supports (color:color-mix(in lab,red,red)){.border-line\/70{border-color:color-mix(in oklab,var(--color-line) 70%,transparent)}.bg-accent\/5{background-color:color-mix(in oklab,var(--color-accent) 5%,transparent)}}.bg-accent\/10{background-color:#ff5a001a}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-accent\/15{background-color:#ff5a0026}@supports (color:color-mix(in lab,red,red)){.bg-accent\/15{background-color:color-mix(in oklab,var(--color-accent) 15%,transparent)}}.bg-bg{background-color:var(--color-bg)}.bg-bg\/50{background-color:#0b122480}@supports (color:color-mix(in lab,red,red)){.bg-bg\/50{background-color:color-mix(in oklab,var(--color-bg) 50%,transparent)}}.bg-bg\/60{background-color:#0b122499}@supports (color:color-mix(in lab,red,red)){.bg-bg\/60{background-color:color-mix(in oklab,var(--color-bg) 60%,transparent)}}.bg-bg\/70{background-color:#0b1224b3}@supports (color:color-mix(in lab,red,red)){.bg-bg\/70{background-color:color-mix(in oklab,var(--color-bg) 70%,transparent)}}.bg-bg\/75{background-color:#0b1224bf}@supports (color:color-mix(in lab,red,red)){.bg-bg\/75{background-color:color-mix(in oklab,var(--color-bg) 75%,transparent)}}.bg-bg\/80{background-color:#0b1224cc}@supports (color:color-mix(in lab,red,red)){.bg-bg\/80{background-color:color-mix(in oklab,var(--color-bg) 80%,transparent)}}.bg-bg\/85{background-color:#0b1224d9}@supports (color:color-mix(in lab,red,red)){.bg-bg\/85{background-color:color-mix(in oklab,var(--color-bg) 85%,transparent)}}.bg-bg\/95{background-color:#0b1224f2}@supports (color:color-mix(in lab,red,red)){.bg-bg\/95{background-color:color-mix(in oklab,var(--color-bg) 95%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500) 5%,transparent)}}.bg-hazard{background-color:var(--color-hazard)}.bg-hazard\/5{background-color:#ffb8000d}@supports (color:color-mix(in lab,red,red)){.bg-hazard\/5{background-color:color-mix(in oklab,var(--color-hazard) 5%,transparent)}}.bg-ink\/10{background-color:#edede61a}@supports (color:color-mix(in lab,red,red)){.bg-ink\/10{background-color:color-mix(in oklab,var(--color-ink) 10%,transparent)}}.bg-line{background-color:var(--color-line)}.bg-panel{background-color:var(--color-panel)}.bg-panel-2{background-color:var(--color-panel-2)}.bg-panel\/50{background-color:#101a3280}@supports (color:color-mix(in lab,red,red)){.bg-panel\/50{background-color:color-mix(in oklab,var(--color-panel) 50%,transparent)}}.bg-panel\/60{background-color:#101a3299}@supports (color:color-mix(in lab,red,red)){.bg-panel\/60{background-color:color-mix(in oklab,var(--color-panel) 60%,transparent)}}.bg-panel\/80{background-color:#101a32cc}@supports (color:color-mix(in lab,red,red)){.bg-panel\/80{background-color:color-mix(in oklab,var(--color-panel) 80%,transparent)}}.bg-panel\/90{background-color:#101a32e6}@supports (color:color-mix(in lab,red,red)){.bg-panel\/90{background-color:color-mix(in oklab,var(--color-panel) 90%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-gradient-to-l{--tw-gradient-position:to left in oklab}.bg-gradient-to-l,.bg-gradient-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab}.bg-\[radial-gradient\(circle_at_center\,rgba\(255\,255\,255\,0\.14\)\,transparent_70\%\)\]{background-image:radial-gradient(circle,#ffffff24,#0000 70%)}.bg-\[radial-gradient\(circle_at_center\,rgba\(255\,255\,255\,0\.16\)\,transparent_70\%\)\]{background-image:radial-gradient(circle,#ffffff29,#0000 70%)}.from-bg{--tw-gradient-from:var(--color-bg)}.from-bg,.from-bg\/60,.from-bg\/70,.from-bg\/80,.from-bg\/95{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-bg\/60{--tw-gradient-from:#0b122499}@supports (color:color-mix(in lab,red,red)){.from-bg\/60{--tw-gradient-from:color-mix(in oklab, var(--color-bg) 60%, transparent)}}.from-bg\/70{--tw-gradient-from:#0b1224b3}@supports (color:color-mix(in lab,red,red)){.from-bg\/70{--tw-gradient-from:color-mix(in oklab, var(--color-bg) 70%, transparent)}}.from-bg\/80{--tw-gradient-from:#0b1224cc}@supports (color:color-mix(in lab,red,red)){.from-bg\/80{--tw-gradient-from:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.from-bg\/95{--tw-gradient-from:#0b1224f2}.via-bg\/0{--tw-gradient-via:#0000;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}@supports (color:color-mix(in lab,red,red)){.from-bg\/95{--tw-gradient-from:color-mix(in oklab, var(--color-bg) 95%, transparent)}.via-bg\/0{--tw-gradient-via:color-mix(in oklab, var(--color-bg) 0%, transparent)}}.via-bg\/35{--tw-gradient-via:#0b122459;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}@supports (color:color-mix(in lab,red,red)){.via-bg\/35{--tw-gradient-via:color-mix(in oklab, var(--color-bg) 35%, transparent)}}.via-bg\/50{--tw-gradient-via:#0b122480;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}@supports (color:color-mix(in lab,red,red)){.via-bg\/50{--tw-gradient-via:color-mix(in oklab, var(--color-bg) 50%, transparent)}}.via-bg\/65{--tw-gradient-via:#0b1224a6;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}@supports (color:color-mix(in lab,red,red)){.via-bg\/65{--tw-gradient-via:color-mix(in oklab, var(--color-bg) 65%, transparent)}}.via-bg\/85{--tw-gradient-via:#0b1224d9}@supports (color:color-mix(in lab,red,red)){.via-bg\/85{--tw-gradient-via:color-mix(in oklab, var(--color-bg) 85%, transparent)}}.via-bg\/85,.via-transparent{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-transparent{--tw-gradient-via:transparent}.via-25\%{--tw-gradient-via-position:25%}.via-50\%{--tw-gradient-via-position:50%}.to-bg\/5{--tw-gradient-to:#0b12240d;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color:color-mix(in lab,red,red)){.to-bg\/5{--tw-gradient-to:color-mix(in oklab, var(--color-bg) 5%, transparent)}}.to-bg\/15{--tw-gradient-to:#0b122426;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color:color-mix(in lab,red,red)){.to-bg\/15{--tw-gradient-to:color-mix(in oklab, var(--color-bg) 15%, transparent)}}.to-bg\/30{--tw-gradient-to:#0b12244d;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color:color-mix(in lab,red,red)){.to-bg\/30{--tw-gradient-to:color-mix(in oklab, var(--color-bg) 30%, transparent)}}.to-bg\/40{--tw-gradient-to:#0b122466;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color:color-mix(in lab,red,red)){.to-bg\/40{--tw-gradient-to:color-mix(in oklab, var(--color-bg) 40%, transparent)}}.to-bg\/50{--tw-gradient-to:#0b122480}@supports (color:color-mix(in lab,red,red)){.to-bg\/50{--tw-gradient-to:color-mix(in oklab, var(--color-bg) 50%, transparent)}}.to-bg\/50,.to-transparent{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-\[center_15\%\]{-o-object-position:center 15%;object-position:center 15%}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-24{padding-block:calc(var(--spacing) * 24)}.ps-6{padding-inline-start:calc(var(--spacing) * 6)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pt-28{padding-top:calc(var(--spacing) * 28)}.pt-32{padding-top:calc(var(--spacing) * 32)}.pb-1{padding-bottom:var(--spacing)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.text-center{text-align:center}.text-start{text-align:start}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8\.5px\]{font-size:8.5px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[17vw\]{font-size:17vw}.text-\[18vw\]{font-size:18vw}.text-\[24vw\]{font-size:24vw}.text-\[56px\]{font-size:56px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-9{--tw-leading:calc(var(--spacing) * 9);line-height:calc(var(--spacing) * 9)}.leading-\[0\.85\]{--tw-leading:.85;line-height:.85}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[2\.1\]{--tw-leading:2.1;line-height:2.1}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.25em\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-\[0\.32em\]{--tw-tracking:.32em;letter-spacing:.32em}.tracking-\[0\.35em\]{--tw-tracking:.35em;letter-spacing:.35em}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-accent{color:var(--color-accent)}.text-bg{color:var(--color-bg)}.text-emerald-400{color:var(--color-emerald-400)}.text-hazard{color:var(--color-hazard)}.text-ink{color:var(--color-ink)}.text-ink\/5{color:#edede60d}@supports (color:color-mix(in lab,red,red)){.text-ink\/5{color:color-mix(in oklab,var(--color-ink) 5%,transparent)}}.text-ink\/40{color:#edede666}@supports (color:color-mix(in lab,red,red)){.text-ink\/40{color:color-mix(in oklab,var(--color-ink) 40%,transparent)}}.text-ink\/60{color:#edede699}@supports (color:color-mix(in lab,red,red)){.text-ink\/60{color:color-mix(in oklab,var(--color-ink) 60%,transparent)}}.text-ink\/70{color:#edede6b3}@supports (color:color-mix(in lab,red,red)){.text-ink\/70{color:color-mix(in oklab,var(--color-ink) 70%,transparent)}}.text-ink\/75{color:#edede6bf}@supports (color:color-mix(in lab,red,red)){.text-ink\/75{color:color-mix(in oklab,var(--color-ink) 75%,transparent)}}.text-ink\/80{color:#edede6cc}@supports (color:color-mix(in lab,red,red)){.text-ink\/80{color:color-mix(in oklab,var(--color-ink) 80%,transparent)}}.text-ink\/85{color:#edede6d9}@supports (color:color-mix(in lab,red,red)){.text-ink\/85{color:color-mix(in oklab,var(--color-ink) 85%,transparent)}}.text-ink\/90{color:#edede6e6}@supports (color:color-mix(in lab,red,red)){.text-ink\/90{color:color-mix(in oklab,var(--color-ink) 90%,transparent)}}.text-line{color:var(--color-line)}.text-muted{color:var(--color-muted)}.text-muted\/30{color:#8e9ab04d}@supports (color:color-mix(in lab,red,red)){.text-muted\/30{color:color-mix(in oklab,var(--color-muted) 30%,transparent)}}.text-muted\/40{color:#8e9ab066}@supports (color:color-mix(in lab,red,red)){.text-muted\/40{color:color-mix(in oklab,var(--color-muted) 40%,transparent)}}.text-muted\/50{color:#8e9ab080}@supports (color:color-mix(in lab,red,red)){.text-muted\/50{color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.text-muted\/60{color:#8e9ab099}.uppercase{text-transform:uppercase}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.opacity-100{opacity:1}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-\[0_0_20px_rgba\(255\,90\,0\,0\.36\)\]{--tw-shadow:0 0 20px var(--tw-shadow-color,#ff5a005c)}.ring-1,.shadow-\[0_0_20px_rgba\(255\,90\,0\,0\.36\)\],.shadow-\[0_0_24px_rgba\(255\,90\,0\,0\.25\)\],.shadow-\[0_0_28px_rgba\(10\,30\,92\,0\.45\)\],.shadow-\[0_0_28px_rgba\(255\,90\,0\,0\.3\)\],.shadow-\[0_10px_40px_rgba\(0\,0\,0\,0\.5\)\],.shadow-\[0_25px_80px_rgba\(0\,0\,0\,0\.6\)\],.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_24px_rgba\(255\,90\,0\,0\.25\)\]{--tw-shadow:0 0 24px var(--tw-shadow-color,#ff5a0040)}.shadow-\[0_0_28px_rgba\(10\,30\,92\,0\.45\)\]{--tw-shadow:0 0 28px var(--tw-shadow-color,#0a1e5c73)}.shadow-\[0_0_28px_rgba\(255\,90\,0\,0\.3\)\]{--tw-shadow:0 0 28px var(--tw-shadow-color,#ff5a004d)}.shadow-\[0_10px_40px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 10px 40px var(--tw-shadow-color,#00000080)}.shadow-\[0_25px_80px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 25px 80px var(--tw-shadow-color,#0009)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.shadow-accent\/25{--tw-shadow-color:#ff5a0040}.ring-accent\/30{--tw-ring-color:#ff5a004d}@supports (color:color-mix(in lab,red,red)){.text-muted\/60{color:color-mix(in oklab,var(--color-muted) 60%,transparent)}.shadow-accent\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-accent) 25%, transparent) var(--tw-shadow-alpha), transparent)}.ring-accent\/30{--tw-ring-color:color-mix(in oklab, var(--color-accent) 30%, transparent)}}.ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.blur{--tw-blur:blur(8px)}.blur,.grayscale,.grayscale-0,.grayscale-\[35\%\]{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale-0{--tw-grayscale:grayscale(0%)}.grayscale-\[35\%\]{--tw-grayscale:grayscale(35%)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-2xl,.backdrop-blur-md,.backdrop-blur-sm,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl))}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md))}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl))}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events}.transition,.transition-all,.transition-colors,.transition-opacity,.transition-transform{transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to}.transition-opacity{transition-property:opacity}.transition-transform{transition-property:transform,translate,scale,rotate}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-\[cubic-bezier\(0\.22\,1\,0\.36\,1\)\]{--tw-ease:cubic-bezier(.22,1,.36,1);transition-timing-function:cubic-bezier(.22,1,.36,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:w-full:is(:where(.group):hover *){width:100%}.group-hover\:-translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:-translate-x-1\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * -1.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:-translate-x-2:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:scale-x-100:is(:where(.group):hover *){--tw-scale-x:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:rotate-12:is(:where(.group):hover *){rotate:12deg}.group-hover\:border-accent:is(:where(.group):hover *){border-color:var(--color-accent)}.group-hover\:border-accent\/50:is(:where(.group):hover *){border-color:#ff5a0080}@supports (color:color-mix(in lab,red,red)){.group-hover\:border-accent\/50:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.group-hover\:border-accent\/60:is(:where(.group):hover *){border-color:#ff5a0099}.group-hover\:bg-accent\/50:is(:where(.group):hover *){background-color:#ff5a0080}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}.group-hover\:text-accent\/70:is(:where(.group):hover *){color:#ff5a00b3}@supports (color:color-mix(in lab,red,red)){.group-hover\:border-accent\/60:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}.group-hover\:bg-accent\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}.group-hover\:text-accent\/70:is(:where(.group):hover *){color:color-mix(in oklab,var(--color-accent) 70%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:grayscale-0:is(:where(.group):hover *){--tw-grayscale:grayscale(0%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:-translate-y-1\.5:hover{--tw-translate-y:calc(var(--spacing) * -1.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-accent\/40:hover{border-color:#ff5a0066}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.hover\:border-accent\/50:hover{border-color:#ff5a0080}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/50:hover{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.hover\:border-accent\/60:hover{border-color:#ff5a0099}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/60:hover{border-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}.hover\:border-ink\/30:hover{border-color:#edede64d}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-accent-soft:hover{background-color:var(--color-accent-soft)}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-panel:hover{background-color:var(--color-panel)}.hover\:bg-panel\/40:hover{background-color:#101a3266}@supports (color:color-mix(in lab,red,red)){.hover\:border-ink\/30:hover{border-color:color-mix(in oklab,var(--color-ink) 30%,transparent)}.hover\:bg-panel\/40:hover{background-color:color-mix(in oklab,var(--color-panel) 40%,transparent)}}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-bg:hover{color:var(--color-bg)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_30px_rgba\(255\,90\,0\,0\.4\)\]:hover{--tw-shadow:0 0 30px var(--tw-shadow-color,#ff5a0066)}.hover\:shadow-\[0_0_30px_rgba\(255\,90\,0\,0\.4\)\]:hover,.hover\:shadow-\[0_8px_40px_rgba\(255\,90\,0\,0\.08\)\]:hover,.hover\:shadow-\[0_8px_45px_rgba\(255\,90\,0\,0\.5\)\]:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_8px_40px_rgba\(255\,90\,0\,0\.08\)\]:hover{--tw-shadow:0 8px 40px var(--tw-shadow-color,#ff5a0014)}.hover\:shadow-\[0_8px_45px_rgba\(255\,90\,0\,0\.5\)\]:hover{--tw-shadow:0 8px 45px var(--tw-shadow-color,#ff5a0080)}}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}@media not all and (width>=48rem){.max-md\:opacity-100{opacity:1}}@media (width>=40rem){.sm\:end-5{inset-inline-end:calc(var(--spacing) * 5)}.sm\:top-5{top:calc(var(--spacing) * 5)}.sm\:bottom-28{bottom:calc(var(--spacing) * 28)}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-0{margin-top:0}.sm\:mt-3{margin-top:calc(var(--spacing) * 3)}.sm\:mt-5{margin-top:calc(var(--spacing) * 5)}.sm\:mt-6{margin-top:calc(var(--spacing) * 6)}.sm\:mt-7{margin-top:calc(var(--spacing) * 7)}.sm\:mt-9{margin-top:calc(var(--spacing) * 9)}.sm\:mt-10{margin-top:calc(var(--spacing) * 10)}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.sm\:size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.sm\:size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.sm\:size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.sm\:h-2\.5{height:calc(var(--spacing) * 2.5)}.sm\:h-44{height:calc(var(--spacing) * 44)}.sm\:w-1\.5{width:calc(var(--spacing) * 1.5)}.sm\:-rotate-1{rotate:-1deg}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-baseline{align-items:baseline}.sm\:items-center{align-items:center}.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-7{gap:calc(var(--spacing) * 7)}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:object-right-top{-o-object-position:right top;object-position:right top}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-7{padding-inline:calc(var(--spacing) * 7)}.sm\:py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.sm\:py-2{padding-block:calc(var(--spacing) * 2)}.sm\:py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.sm\:py-4{padding-block:calc(var(--spacing) * 4)}.sm\:py-5{padding-block:calc(var(--spacing) * 5)}.sm\:py-10{padding-block:calc(var(--spacing) * 10)}.sm\:py-24{padding-block:calc(var(--spacing) * 24)}.sm\:pt-32{padding-top:calc(var(--spacing) * 32)}.sm\:text-right{text-align:right}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.sm\:text-\[10px\]{font-size:10px}.sm\:leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.sm\:leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.sm\:leading-9{--tw-leading:calc(var(--spacing) * 9);line-height:calc(var(--spacing) * 9)}.sm\:leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.sm\:leading-\[1\.25\]{--tw-leading:1.25;line-height:1.25}.sm\:shadow-\[0_10px_50px_rgba\(255\,184\,0\,0\.25\)\]{--tw-shadow:0 10px 50px var(--tw-shadow-color,#ffb80040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@media (width>=48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-5{grid-column:span 5/span 5}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.md\:size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.md\:size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.md\:min-h-\[280px\]{min-height:280px}.md\:w-80{width:calc(var(--spacing) * 80)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:gap-8{gap:calc(var(--spacing) * 8)}.md\:gap-10{gap:calc(var(--spacing) * 10)}.md\:p-5{padding:calc(var(--spacing) * 5)}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:p-9{padding:calc(var(--spacing) * 9)}.md\:p-10{padding:calc(var(--spacing) * 10)}.md\:p-16{padding:calc(var(--spacing) * 16)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-9{padding-block:calc(var(--spacing) * 9)}.md\:py-16{padding-block:calc(var(--spacing) * 16)}.md\:py-20{padding-block:calc(var(--spacing) * 20)}.md\:py-24{padding-block:calc(var(--spacing) * 24)}.md\:py-28{padding-block:calc(var(--spacing) * 28)}.md\:py-32{padding-block:calc(var(--spacing) * 32)}.md\:ps-16{padding-inline-start:calc(var(--spacing) * 16)}.md\:pt-36{padding-top:calc(var(--spacing) * 36)}.md\:pt-40{padding-top:calc(var(--spacing) * 40)}.md\:pb-24{padding-bottom:calc(var(--spacing) * 24)}.md\:pb-28{padding-bottom:calc(var(--spacing) * 28)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.md\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-\[11vw\]{font-size:11vw}.md\:leading-10{--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10)}.md\:leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.md\:leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.md\:leading-\[1\.25\]{--tw-leading:1.25;line-height:1.25}.md\:leading-\[2\]{--tw-leading:2;line-height:2}}@media (width>=64rem){.lg\:sticky{position:sticky}.lg\:top-28{top:calc(var(--spacing) * 28)}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:gap-14{gap:calc(var(--spacing) * 14)}}@media (width>=80rem){.xl\:flex{display:flex}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (pointer:fine){.\[\@media\(pointer\:fine\)\]\:block{display:block}}}@font-face{font-family:IRANSans;src:url(../fonts/IRANSansWebFaNum_UltraLight.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(../fonts/IRANSansWebFaNum_Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(../fonts/IRANSansWebFaNum.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(../fonts/IRANSansWebFaNum_Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(../fonts/IRANSansWebFaNum_Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(../fonts/IRANSansWebFaNum_Black.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--font-iransans:"IRANSans", sans-serif}.animate-fade-up-1{animation:var(--animate-fade-up);animation-delay:.15s}.animate-fade-up-2{animation:var(--animate-fade-up);animation-delay:.28s}.animate-fade-up-3{animation:var(--animate-fade-up);animation-delay:.42s}.animate-fade-up-4{animation:var(--animate-fade-up);animation-delay:.55s}.animate-fade-up-5{animation:var(--animate-fade-up);animation-delay:.68s}.animate-fade-up-6{animation:var(--animate-fade-up);animation-delay:.7s}.animate-fade-up-7{animation:var(--animate-fade-up);animation-delay:.82s}.animate-fade-up-8{animation:var(--animate-fade-up);animation-delay:.9s}.animate-fade-up-9{animation:var(--animate-fade-up);animation-delay:1s}html{scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-ink);overflow-x:hidden}::selection{background:var(--color-accent);color:var(--color-bg)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{border:2px solid var(--color-bg);background:#253558;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}.hazard{background-image:repeating-linear-gradient(-45deg,#ffb800 0 14px,#0b1224 0 28px)}.bg-grid{background-image:linear-gradient(270deg,#edede60b 1px,#0000 0),linear-gradient(#edede60b 1px,#0000 0);background-size:72px 72px}.bg-grid-fine{background-image:linear-gradient(270deg,#edede608 1px,#0000 0),linear-gradient(#edede608 1px,#0000 0);background-size:28px 28px}.noise{z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.text-outline{color:#0000;-webkit-text-stroke:1px #edede629}.tape-v{background-image:repeating-linear-gradient(45deg,#ffb800 0 10px,#0b1224 0 20px)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.ant-btn{gap:8px!important}.ant-btn,.ant-btn>.ant-btn-icon,.ant-btn>.anticon,.ant-btn>.vx-icon{justify-content:center!important;align-items:center!important;display:inline-flex!important}.ant-btn>.ant-btn-icon,.ant-btn>.anticon,.ant-btn>.vx-icon{vertical-align:middle!important;line-height:0!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes blink{to{visibility:hidden}}@keyframes fade-up{0%{opacity:0;transform:translateY(44px)}to{opacity:1;transform:translateY(0)}}.contact-form.ant-form{font-family:inherit;font-size:inherit;line-height:inherit}.contact-form .ant-form-item,.contact-form .ant-form-item .ant-col,.contact-form .ant-form-item .ant-row{font-size:inherit;line-height:inherit;margin-bottom:0}.contact-form .ant-form-item .ant-form-item-label{padding:0 0 8px;line-height:16px}.contact-form .ant-form-item-label>label{width:100%;height:auto;color:var(--color-muted);font-size:12px;line-height:16px}.contact-form .ant-form-item-explain{padding-top:4px;font-size:12px;line-height:20px}.contact-form .ant-input{border:1px solid var(--color-line);background-color:var(--color-bg);width:100%;color:var(--color-ink);box-shadow:none;border-radius:8px;padding:14px 16px;font-family:inherit;font-size:14px;line-height:20px;transition-property:color,background-color,border-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.contact-form .ant-input::placeholder{color:color-mix(in oklab,var(--color-muted) 50%,transparent)}.contact-form .ant-input:hover{border-color:var(--color-line)}.contact-form .ant-input-focused,.contact-form .ant-input:focus{border-color:var(--color-accent);box-shadow:none;outline:none}.contact-form .ant-input[dir=ltr]{text-align:left;direction:ltr}.contact-form textarea.ant-input{resize:none;vertical-align:baseline;min-height:0}.contact-form .ant-btn.contact-submit{background-color:var(--color-accent);width:100%;height:auto;color:var(--color-bg);box-shadow:none;cursor:default;border:0;border-radius:3.40282e38px;justify-content:center;align-items:center;gap:10px;padding:16px 0;font-family:inherit;font-size:16px;font-weight:700;line-height:24px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.contact-form .ant-btn.contact-submit>span{display:inline}@media (hover:hover){.contact-form .ant-btn.contact-submit:hover{background-color:var(--color-accent-soft);color:var(--color-bg);box-shadow:0 8px 45px #ff5a0073}}.contact-form .ant-btn.contact-submit:disabled{opacity:.6;border:0}.contact-form .ant-btn.contact-submit:after,.contact-form .ant-wave{display:none} diff --git a/apps/web/.output/public/_nuxt/r7-JdZhN.js b/apps/web/.output/public/_nuxt/r7-JdZhN.js new file mode 100644 index 0000000..d33b872 --- /dev/null +++ b/apps/web/.output/public/_nuxt/r7-JdZhN.js @@ -0,0 +1,2 @@ +import{Cn as e,Gn as t,Hn as n,Un as r,Xn as i,_n as a,fr as o,gn as s,hn as c,hr as l,mn as u,pn as d,pr as f,sn as p,ur as m,vn as h,xn as g,yn as _,zn as v}from"./D6Ym2dQP.js";import{i as y,r as b}from"./Dd1GE-gU.js";var x={key:0},S=Object.assign(g({__name:`Lines`,props:{text:{}},setup(e){let t=e,r=d(()=>t.text.split(` +`));return(e,t)=>(v(!0),a(p,null,n(m(r),(e,t)=>(v(),a(p,{key:t},[t>0?(v(),a(`br`,x)):s(``,!0),h(l(e),1)],64))),128))}}),{__name:`UiLines`}),C=Object.assign(g({__name:`Reveal`,props:{delay:{default:0}},setup(t){let n=t,a=d(()=>b(n.delay,34));return(t,n)=>(v(),c(m(y).div,f(e(m(a))),{default:i(()=>[r(t.$slots,`default`)]),_:3},16))}}),{__name:`UiReveal`}),w={class:`font-mono text-xs tracking-[0.25em] text-muted`},T={class:`text-accent`},E=Object.assign(g({__name:`SectionHead`,props:{tag:{},title:{},highlight:{},desc:{},center:{type:Boolean,default:!1},headingId:{},level:{default:2}},setup(e){return(n,d)=>(v(),a(`div`,{class:o(e.center?`text-center`:``)},[_(C,null,{default:i(()=>[u(`div`,{class:o(`flex items-center gap-3 ${e.center?`justify-center`:``}`)},[d[0]||=u(`span`,{class:`font-mono text-sm text-accent`},`//`,-1),u(`span`,w,l(e.tag),1),d[1]||=u(`span`,{class:`h-px w-14 bg-line`},null,-1)],2)]),_:1}),_(C,{delay:.08},{default:i(()=>[(v(),c(t(`h${e.level}`),{id:e.headingId,class:`mt-3.5 sm:mt-5 text-2xl sm:text-3xl md:text-5xl font-black leading-tight sm:leading-[1.25] md:leading-[1.2]`},{default:i(()=>[r(n.$slots,`title`,{},()=>[e.title?(v(),c(S,{key:0,text:e.title},null,8,[`text`])):s(``,!0),e.highlight?(v(),a(p,{key:1},[d[2]||=u(`br`,null,null,-1),u(`span`,T,l(e.highlight),1)],64)):s(``,!0)])]),_:3},8,[`id`]))]),_:3}),e.desc?(v(),c(C,{key:0,delay:.16},{default:i(()=>[u(`p`,{class:o(`mt-3 sm:mt-5 max-w-xl text-xs sm:text-base leading-6 sm:leading-8 text-muted ${e.center?`mx-auto`:``}`)},l(e.desc),3)]),_:1})):s(``,!0)],2))}}),{__name:`UiSectionHead`});export{C as n,S as r,E as t}; \ No newline at end of file diff --git a/apps/web/.output/public/_nuxt/xGM79_uD.js b/apps/web/.output/public/_nuxt/xGM79_uD.js new file mode 100644 index 0000000..82b0d4f --- /dev/null +++ b/apps/web/.output/public/_nuxt/xGM79_uD.js @@ -0,0 +1 @@ +import{Et as e,Hn as t,Ht as n,Mn as r,Qt as i,Xn as a,Yn as o,_n as s,an as c,fr as l,gn as u,hn as d,hr as f,i as ee,mn as p,mr as te,pn as m,qn as ne,r as re,rr as h,sn as g,t as _,un as ie,ur as v,vn as y,vt as ae,xn as oe,yn as b,zn as x}from"./D6Ym2dQP.js";import{dt as se,ft as ce,i as le,lt as ue,n as de,o as fe,s as pe,t as me,ut as he}from"#entry";import{n as S}from"./Dd1GE-gU.js";import{i as ge,n as _e,t as ve}from"./D0e0LUpa.js";import{n as C,t as w}from"./r7-JdZhN.js";var ye={class:`relative overflow-hidden pt-28 pb-16 md:pt-36 md:pb-24`},be={class:`relative mx-auto max-w-[1480px] px-5 md:px-8`},xe={class:`flex flex-wrap items-center gap-2 text-sm text-muted`,"aria-label":`مسیر`},Se={class:`text-ink`},Ce={class:`mt-8 grid gap-10 lg:grid-cols-12 lg:gap-14`},we={class:`relative`},Te={class:`relative overflow-hidden rounded-2xl border border-line bg-panel/80`},T=[`src`,`alt`,`width`,`height`],E={key:0,class:`absolute inset-0 bg-gradient-to-t from-bg/70 to-transparent`},D={class:`absolute inset-x-0 top-0 flex items-center justify-between p-4 md:p-5`},O={class:`rounded-full bg-bg/60 px-3 py-1 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur`},Ee={key:0,class:`font-mono text-xs text-accent`},De={key:0,class:`mt-4 flex gap-3 overflow-x-auto pb-1`},Oe=[`aria-label`,`aria-current`,`onClick`],ke=[`src`,`alt`],Ae={class:`lg:col-span-6`},je={class:`flex flex-wrap items-center gap-2`},Me={class:`rounded-full border border-accent/40 bg-accent/10 px-3 py-1 font-mono text-xs text-accent`},Ne={key:0,class:`rounded-full border border-line px-3 py-1 text-xs text-muted`},Pe={class:`mt-6 text-3xl font-black leading-[1.3] md:text-5xl md:leading-[1.25]`},Fe={key:0,class:`mt-3 font-mono text-xs tracking-[0.25em] text-muted`},Ie={key:1,class:`mt-6 max-w-2xl leading-9 text-ink/75`},Le={key:2,class:`mt-6 flex flex-wrap gap-2`},Re={class:`mt-8 grid gap-px overflow-hidden rounded-xl border border-line bg-line sm:grid-cols-2`},ze={class:`text-xs text-muted`},Be={class:`mt-1.5 font-bold`},Ve={key:0,class:`bg-panel/80 p-4 sm:col-span-2`},He={class:`mt-2 flex flex-wrap gap-2`},Ue={class:`mt-8 space-y-5`},We={key:0},Ge={class:`flex flex-wrap gap-2`},Ke={key:1},qe={class:`flex flex-wrap gap-2`},Je={class:`mt-9 flex flex-wrap items-center gap-4`},Ye=[`href`],Xe={class:`font-mono tracking-wider`,dir:`ltr`},Ze={class:`mt-9 grid gap-4 border-t border-line pt-7 sm:grid-cols-3`},Qe={class:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-accent/10 text-accent`},$e={class:`text-xs leading-6 text-ink/75`},et={class:`relative border-t border-line py-20 md:py-28`},tt={class:`relative mx-auto grid max-w-[1480px] gap-14 px-5 md:px-8 lg:grid-cols-12`},nt={class:`lg:col-span-7`},rt={class:`mt-8 space-y-5 leading-9 text-ink/75`},it={key:0},at={key:0,class:`mt-14`},ot={class:`mt-6 grid gap-3 sm:grid-cols-2`},st={class:`flex h-full items-start gap-3 rounded-xl border border-line bg-panel/60 p-4`},ct={class:`mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-accent text-bg`},k={class:`text-sm leading-7 text-ink/85`},lt={key:1,class:`mt-14`},ut={class:`mt-6 flex flex-wrap gap-2.5`},dt={class:`lg:col-span-5`},ft={class:`space-y-6 lg:sticky lg:top-28`},pt={class:`overflow-hidden rounded-2xl border border-line bg-panel/80`},mt={class:`col-span-2 text-sm text-muted`},ht=[`dir`],gt={class:`flex items-start gap-4 rounded-xl border border-hazard/30 bg-hazard/5 p-5`},_t={class:`mt-4 flex flex-wrap gap-3 text-sm`},vt=[`href`],yt={key:0,class:`border-t border-line py-20 md:py-28`},bt={class:`mx-auto max-w-[1480px] px-5 md:px-8`},xt={class:`flex flex-wrap items-end justify-between gap-6`},St={class:`mt-12 grid gap-5 sm:grid-cols-2 lg:grid-cols-4`},Ct=[`src`,`alt`],wt={class:`absolute start-3 top-3 rounded-full bg-bg/60 px-2.5 py-0.5 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur`},Tt={class:`flex flex-1 flex-col p-5`},Et={class:`font-black transition-colors group-hover:text-accent`},Dt={class:`mt-1 font-mono text-[10px] tracking-[0.2em] text-muted`},Ot={class:`mt-auto inline-flex items-center gap-2 pt-4 text-xs font-bold text-accent`},kt={class:`border-t border-line py-12 md:py-16`},At={class:`mx-auto flex max-w-[1480px] flex-wrap items-center justify-between gap-6 px-5 md:px-8`},jt=[`aria-label`],Mt={class:`flex items-center justify-between px-5 py-4 md:px-8`},Nt={class:`font-mono text-xs text-muted`},Pt=[`src`,`alt`],A=oe({__name:`[slug]`,async setup(oe){let A,j,M=ae().params.slug,{$api:Ft}=n(),N=re(),It=ve(),{data:P,error:F}=([A,j]=o(()=>ue(`product:${M}`,()=>Ft(`/public/products/${encodeURIComponent(M)}`))),A=await A,j(),A);if(F.value||!P.value){let t=F.value?.statusCode===404;throw e({statusCode:t?404:500,statusMessage:t?`محصول یافت نشد`:`خطا در دریافت اطلاعات`,fatal:!0})}let I=P.value,L=`/categories/${I.category.slug}`,R=I.images.length>0,z=R?I.images:I.category.coverImage?[{url:I.category.coverImage,alt:I.name,width:null,height:null}]:[],B=h(0),V=m(()=>z[B.value]),H=e=>{B.value=(B.value+e+z.length)%z.length},U=h(!1);ne(U,e=>{document.body.style.overflow=e?`hidden`:``}),r(()=>{document.body.style.overflow=``}),ge(window,`keydown`,e=>{U.value&&(e.key===`Escape`&&(U.value=!1),e.key===`ArrowLeft`&&H(1),e.key===`ArrowRight`&&H(-1))});let W=I.details.split(/\n\s*\n/).map(e=>e.trim()).filter(Boolean),G=[{label:`برند`,value:I.brand},{label:`کشور سازنده`,value:I.origin},{label:`بسته‌بندی`,value:I.packaging},{label:`حداقل سفارش`,value:I.minOrder}].filter(e=>e.value),Lt=[{name:`کد محصول`,value:I.code,ltr:!0},{name:`دسته`,value:I.category.name},...I.groupName?[{name:`زیرگروه`,value:I.groupName}]:[],...I.brand?[{name:`برند`,value:I.brand}]:[],...I.origin?[{name:`کشور سازنده`,value:I.origin}]:[],...I.attributes,...I.standards.length?[{name:`استانداردها`,value:I.standards.join(`، `),ltr:!0}]:[],...I.sizes.length?[{name:`سایزها`,value:I.sizes.join(`، `)}]:[],...I.variants.length?[{name:`مدل‌ها / رنگ‌ها`,value:I.variants.join(`، `)}]:[],...I.packaging?[{name:`بسته‌بندی`,value:I.packaging}]:[],...I.minOrder?[{name:`حداقل سفارش`,value:I.minOrder}]:[]],K=m(()=>N.sections.productsIntro.trust),q=m(()=>N.settings),J=()=>It.prefill(`درخواست قیمت و موجودی:\n${I.name} — کد ${I.code}`),Y=fe(),X=Y(`/products/${M}`),Z=I.seoTitle||I.name,Q=(I.seoDescription||I.desc||W[0]||I.category.fullDesc).slice(0,300);se({title:Z,link:[{rel:`canonical`,href:X},...z[0]?[{rel:`preload`,as:`image`,href:z[0].url}]:[]]}),ce({description:Q,robots:`index, follow`,ogUrl:X,ogTitle:`${Z} | ${N.settings.name}`,ogDescription:Q,...z[0]&&{ogImage:Y(z[0].url),ogImageAlt:z[0].alt,twitterImage:Y(z[0].url)}});let $=pe();return me([le($,I),de($,[{name:`خانه`,path:`/`},{name:I.category.name,path:L},{name:I.name,path:`/products/${M}`}])],`product-${M}`),(e,n)=>{let r=ee,o=he;return x(),s(`main`,null,[p(`section`,ye,[n[18]||=p(`div`,{class:`absolute inset-0 bg-grid opacity-30`},null,-1),n[19]||=p(`div`,{class:`tape-v absolute bottom-0 end-0 z-10 h-32 w-1.5 opacity-70`},null,-1),p(`div`,be,[b(C,null,{default:a(()=>[p(`nav`,xe,[b(r,{to:`/`,class:`transition-colors hover:text-accent`},{default:a(()=>[...n[8]||=[y(`خانه`,-1)]]),_:1}),n[10]||=p(`span`,{class:`text-line`},`/`,-1),b(r,{to:`/#products`,class:`transition-colors hover:text-accent`},{default:a(()=>[...n[9]||=[y(`محصولات`,-1)]]),_:1}),n[11]||=p(`span`,{class:`text-line`},`/`,-1),b(r,{to:L,class:`transition-colors hover:text-accent`},{default:a(()=>[y(f(v(I).category.name),1)]),_:1}),n[12]||=p(`span`,{class:`text-line`},`/`,-1),p(`span`,Se,f(v(I).name),1)])]),_:1}),p(`div`,Ce,[b(C,{class:`lg:col-span-6`,delay:.08},{default:a(()=>[p(`div`,we,[n[13]||=p(`div`,{class:`hazard absolute -top-3 -end-3 z-10 h-6 w-28 rounded-full opacity-90`},null,-1),p(`div`,Te,[p(`div`,{class:l([`group relative aspect-square overflow-hidden`,R&&`bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.16),transparent_70%)]`])},[b(i,{"enter-active-class":`transition duration-500 ease-out`,"enter-from-class":`opacity-0 scale-[0.97]`,"leave-active-class":`absolute inset-0 transition duration-200`,"leave-to-class":`opacity-0`},{default:a(()=>[v(V)?(x(),s(`img`,{key:v(V).url,src:v(V).url,alt:v(V).alt,width:v(V).width??void 0,height:v(V).height??void 0,fetchpriority:`high`,decoding:`async`,class:l([`size-full`,R?`object-contain p-10 md:p-16`:`object-cover`])},null,10,T)):u(``,!0)]),_:1}),R?u(``,!0):(x(),s(`div`,E)),p(`div`,D,[p(`span`,O,f(v(I).code),1),v(z).length>1?(x(),s(`span`,Ee,f((`faNum`in e?e.faNum:v(S))(String(v(B)+1).padStart(2,`0`)))+` / `+f((`faNum`in e?e.faNum:v(S))(String(v(z).length).padStart(2,`0`))),1)):u(``,!0)]),v(V)?(x(),s(`button`,{key:1,type:`button`,"aria-label":`نمایش بزرگ تصویر`,class:`absolute bottom-4 start-4 flex size-11 items-center justify-center rounded-full border border-line bg-bg/70 text-ink/80 backdrop-blur transition-colors hover:border-accent hover:text-accent`,onClick:n[0]||=e=>U.value=!0},[b(_,{name:`maximize-4`,class:`size-4`})])):u(``,!0),v(z).length>1?(x(),s(g,{key:2},[p(`button`,{type:`button`,"aria-label":`تصویر قبلی`,class:`absolute start-4 top-1/2 flex size-11 -translate-y-1/2 items-center justify-center rounded-full border border-line bg-bg/70 text-ink/80 opacity-0 backdrop-blur transition-all hover:border-accent hover:text-accent group-hover:opacity-100 max-md:opacity-100`,onClick:n[1]||=e=>H(-1)},[b(_,{name:`arrow-right-1`,class:`size-5`})]),p(`button`,{type:`button`,"aria-label":`تصویر بعدی`,class:`absolute end-4 top-1/2 flex size-11 -translate-y-1/2 items-center justify-center rounded-full border border-line bg-bg/70 text-ink/80 opacity-0 backdrop-blur transition-all hover:border-accent hover:text-accent group-hover:opacity-100 max-md:opacity-100`,onClick:n[2]||=e=>H(1)},[b(_,{name:`arrow-left-1`,class:`size-5`})])],64)):u(``,!0)],2)]),v(z).length>1?(x(),s(`div`,De,[(x(!0),s(g,null,t(v(z),(t,n)=>(x(),s(`button`,{key:t.url,type:`button`,"aria-label":`تصویر ${(`faNum`in e?e.faNum:v(S))(n+1)}`,"aria-current":n===v(B),class:l([`size-20 shrink-0 overflow-hidden rounded-xl border bg-panel/80 transition-all md:size-24`,n===v(B)?`border-accent shadow-[0_0_24px_rgba(255,90,0,0.25)]`:`border-line opacity-60 hover:opacity-100`]),onClick:e=>B.value=n},[p(`img`,{src:t.url,alt:t.alt,loading:`lazy`,class:`size-full object-contain p-2`},null,8,ke)],10,Oe))),128))])):u(``,!0)])]),_:1}),p(`div`,Ae,[b(C,{delay:.12},{default:a(()=>[p(`div`,je,[p(`span`,Me,f(v(I).code),1),b(r,{to:L,class:`rounded-full border border-line px-3 py-1 text-xs text-muted transition-colors hover:border-accent/60 hover:text-accent`},{default:a(()=>[y(f(v(I).category.name),1)]),_:1}),v(I).groupName?(x(),s(`span`,Ne,f(v(I).groupName),1)):u(``,!0)]),p(`h1`,Pe,f(v(I).name),1),v(I).nameEn?(x(),s(`p`,Fe,f(v(I).nameEn),1)):u(``,!0),v(I).desc?(x(),s(`p`,Ie,f(v(I).desc),1)):u(``,!0),v(I).specs.length?(x(),s(`div`,Le,[(x(!0),s(g,null,t(v(I).specs,e=>(x(),s(`span`,{key:e,class:`rounded-full border border-accent/40 bg-accent/10 px-3 py-1.5 font-mono text-[11px] text-accent`},f(e),1))),128))])):u(``,!0)]),_:1}),v(G).length||v(I).standards.length?(x(),d(C,{key:0,delay:.18},{default:a(()=>[p(`dl`,Re,[(x(!0),s(g,null,t(v(G),e=>(x(),s(`div`,{key:e.label,class:`bg-panel/80 p-4`},[p(`dt`,ze,f(e.label),1),p(`dd`,Be,f(e.value),1)]))),128)),v(I).standards.length?(x(),s(`div`,Ve,[n[14]||=p(`dt`,{class:`text-xs text-muted`},`استانداردها و گواهی‌ها`,-1),p(`dd`,He,[(x(!0),s(g,null,t(v(I).standards,e=>(x(),s(`span`,{key:e,class:`rounded-md border border-ink/15 px-2.5 py-1 font-mono text-xs tracking-wider text-ink/85`,dir:`ltr`},f(e),1))),128))])])):u(``,!0)])]),_:1})):u(``,!0),v(I).variants.length||v(I).sizes.length?(x(),d(C,{key:1,delay:.22},{default:a(()=>[p(`div`,Ue,[v(I).variants.length?(x(),s(`div`,We,[n[15]||=p(`div`,{class:`mb-2.5 text-xs text-muted`},`مدل‌ها / رنگ‌ها`,-1),p(`div`,Ge,[(x(!0),s(g,null,t(v(I).variants,e=>(x(),s(`span`,{key:e,class:`rounded-lg border border-line bg-panel-2 px-3 py-1.5 text-sm text-ink/80`},f(e),1))),128))])])):u(``,!0),v(I).sizes.length?(x(),s(`div`,Ke,[n[16]||=p(`div`,{class:`mb-2.5 text-xs text-muted`},`سایزها`,-1),p(`div`,qe,[(x(!0),s(g,null,t(v(I).sizes,e=>(x(),s(`span`,{key:e,class:`min-w-11 rounded-lg border border-line bg-panel-2 px-3 py-1.5 text-center font-mono text-sm text-ink/80`},f(e),1))),128))])])):u(``,!0)])]),_:1})):u(``,!0),b(C,{delay:.26},{default:a(()=>[p(`div`,Je,[b(r,{to:`/#contact`,class:`group inline-flex items-center gap-2.5 rounded-full bg-accent px-7 py-4 font-bold text-bg transition-all duration-300 hover:bg-accent-soft hover:shadow-[0_8px_45px_rgba(255,90,0,0.5)]`,onClick:J},{default:a(()=>[n[17]||=y(` درخواست قیمت و موجودی `,-1),b(_,{name:`arrow-left`,class:`size-5 transition-transform duration-300 group-hover:-translate-x-1.5`})]),_:1}),p(`a`,{href:`tel:${v(q).phone}`,class:`inline-flex items-center gap-2.5 rounded-full border border-ink/25 px-6 py-4 font-bold text-ink transition-colors duration-300 hover:border-accent hover:text-accent`},[b(_,{name:`call`,class:`size-4`}),p(`span`,Xe,f(v(q).phoneDisplay),1)],8,Ye)])]),_:1}),v(K).length?(x(),d(C,{key:2,delay:.3},{default:a(()=>[p(`ul`,Ze,[(x(!0),s(g,null,t(v(K),e=>(x(),s(`li`,{key:e.title,class:`flex items-start gap-3`},[p(`span`,Qe,[b(_e,{name:e.icon,class:`size-4`},null,8,[`name`])]),p(`span`,$e,f(e.title),1)]))),128))])]),_:1})):u(``,!0)])])])]),p(`section`,et,[n[27]||=p(`div`,{class:`absolute inset-0 bg-grid-fine opacity-30`},null,-1),p(`div`,tt,[p(`div`,nt,[b(w,{tag:`توضیحات`,title:v(W).length?`درباره این محصول`:`درباره ${v(I).category.name}`},null,8,[`title`]),b(C,{delay:.2},{default:a(()=>[p(`div`,rt,[(x(!0),s(g,null,t(v(W),(e,t)=>(x(),s(`p`,{key:t,class:`whitespace-pre-line`},f(e),1))),128)),v(W).length?u(``,!0):(x(),s(`p`,it,f(v(I).category.fullDesc),1))])]),_:1}),v(I).features.length?(x(),s(`div`,at,[b(C,null,{default:a(()=>[...n[20]||=[p(`h3`,{class:`flex items-center gap-3 text-xl font-black`},[p(`span`,{class:`font-mono text-sm text-accent`},`//`),y(` ویژگی‌های کلیدی `)],-1)]]),_:1}),p(`ul`,ot,[(x(!0),s(g,null,t(v(I).features,(e,t)=>(x(),d(C,{key:e,delay:t*.04},{default:a(()=>[p(`li`,st,[p(`span`,ct,[b(_,{name:`tick-circle`,class:`size-3.5`})]),p(`span`,k,f(e),1)])]),_:2},1032,[`delay`]))),128))])])):u(``,!0),v(I).applications.length?(x(),s(`div`,lt,[b(C,null,{default:a(()=>[...n[21]||=[p(`h3`,{class:`flex items-center gap-3 text-xl font-black`},[p(`span`,{class:`font-mono text-sm text-accent`},`//`),y(` کاربردها و محیط‌های مناسب `)],-1)]]),_:1}),b(C,{delay:.1},{default:a(()=>[p(`div`,ut,[(x(!0),s(g,null,t(v(I).applications,e=>(x(),s(`span`,{key:e,class:`rounded-full border border-line bg-panel/60 px-4 py-2 text-sm text-ink/80`},f(e),1))),128))])]),_:1})])):u(``,!0)]),p(`aside`,dt,[p(`div`,ft,[b(C,{delay:.1},{default:a(()=>[p(`div`,pt,[n[22]||=p(`div`,{class:`flex items-center justify-between border-b border-line px-6 py-4`},[p(`span`,{class:`font-mono text-xs tracking-[0.25em] text-accent`},`// مشخصات فنی`),p(`span`,{class:`font-mono text-[10px] tracking-[0.25em] text-muted/60`},`SPECIFICATIONS`)],-1),p(`dl`,null,[(x(),s(g,null,t(Lt,e=>p(`div`,{key:e.name,class:`grid grid-cols-5 gap-4 border-b border-line/70 px-6 py-3.5 last:border-b-0`},[p(`dt`,mt,f(e.name),1),p(`dd`,{class:l([`col-span-3 text-sm font-medium text-ink/90`,e.ltr&&`font-mono tracking-wider`]),dir:e.ltr?`ltr`:void 0,style:te(e.ltr?`text-align: right`:void 0)},f(e.value),15,ht)])),64))])])]),_:1}),b(C,{delay:.18},{default:a(()=>[p(`div`,gt,[b(_,{name:`24-support`,class:`size-6 shrink-0 text-hazard`}),p(`div`,null,[n[25]||=p(`div`,{class:`font-bold text-hazard`},`مشاوره رایگان انتخاب تجهیزات`,-1),n[26]||=p(`p`,{class:`mt-1.5 text-sm leading-7 text-muted`},` برای انتخاب مدل و سایز مناسب محیط کار، خرید سازمانی یا دریافت نمونه، با کارشناسان ما تماس بگیرید. `,-1),p(`div`,_t,[b(r,{to:`/#contact`,class:`font-bold text-accent hover:underline`,onClick:J},{default:a(()=>[...n[23]||=[y(` ثبت درخواست `,-1)]]),_:1}),n[24]||=p(`span`,{class:`text-line`},`|`,-1),p(`a`,{href:`tel:${v(q).phone}`,class:`font-mono tracking-wider text-ink/80 hover:text-accent`,dir:`ltr`},f(v(q).phoneDisplay),9,vt)])])])]),_:1})])])])]),v(I).related.length?(x(),s(`section`,yt,[p(`div`,bt,[p(`div`,xt,[b(w,{tag:`محصولات مرتبط`,title:`محصولات دیگر\n${v(I).category.name}`},null,8,[`title`]),b(C,{delay:.2},{default:a(()=>[b(r,{to:L,class:`group inline-flex items-center gap-2 rounded-full border border-line px-6 py-3 text-sm text-muted transition-colors hover:border-accent hover:text-accent`},{default:a(()=>[n[28]||=y(` مشاهده همه `,-1),b(_,{name:`arrow-left`,class:`size-4 transition-transform group-hover:-translate-x-1`})]),_:1})]),_:1})]),p(`div`,St,[(x(!0),s(g,null,t(v(I).related,(e,t)=>(x(),d(C,{key:e.code,delay:t*.06},{default:a(()=>[b(r,{to:`/products/${e.slug}`,class:`group flex h-full flex-col overflow-hidden rounded-xl border border-line bg-panel/80 transition-all duration-500 hover:border-accent/40 hover:shadow-[0_8px_40px_rgba(255,90,0,0.08)]`},{default:a(()=>[p(`div`,{class:l([`relative aspect-[4/3] overflow-hidden`,e.image&&`bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.14),transparent_70%)]`])},[p(`img`,{src:e.image??v(I).category.coverImage??void 0,alt:e.name,loading:`lazy`,decoding:`async`,class:l([`size-full transition-transform duration-700 group-hover:scale-105`,e.image?`object-contain p-7`:`object-cover`])},null,10,Ct),p(`span`,wt,f(e.code),1)],2),p(`div`,Tt,[p(`h3`,Et,f(e.name),1),p(`p`,Dt,f(e.nameEn),1),p(`span`,Ot,[n[29]||=y(` مشاهده محصول `,-1),b(_,{name:`arrow-left`,class:`size-3.5 transition-transform group-hover:-translate-x-1`})])])]),_:2},1032,[`to`])]),_:2},1032,[`delay`]))),128))])])])):u(``,!0),p(`section`,kt,[p(`div`,At,[b(r,{to:L,class:`group inline-flex items-center gap-2 text-muted transition-colors hover:text-accent`},{default:a(()=>[b(_,{name:`arrow-right`,class:`size-4 transition-transform group-hover:translate-x-1`}),y(` بازگشت به `+f(v(I).category.name),1)]),_:1}),b(r,{to:`/#contact`,class:`inline-flex items-center gap-2 rounded-full bg-accent px-6 py-3 text-sm font-bold text-bg transition-all hover:bg-accent-soft hover:shadow-[0_8px_45px_rgba(255,90,0,0.5)]`,onClick:J},{default:a(()=>[b(_,{name:`call`,class:`size-4`}),n[30]||=y(` درخواست قیمت این محصول `,-1)]),_:1})])]),b(o,null,{default:a(()=>[(x(),d(ie,{to:`body`},[b(i,{"enter-active-class":`transition duration-300`,"enter-from-class":`opacity-0`,"leave-active-class":`transition duration-200`,"leave-to-class":`opacity-0`},{default:a(()=>[v(U)&&v(V)?(x(),s(`div`,{key:0,class:`fixed inset-0 z-[120] flex flex-col bg-bg/95 backdrop-blur-xl`,role:`dialog`,"aria-modal":`true`,"aria-label":v(I).name,onClick:n[7]||=c(e=>U.value=!1,[`self`])},[p(`div`,Mt,[p(`span`,Nt,f((`faNum`in e?e.faNum:v(S))(v(B)+1))+` / `+f((`faNum`in e?e.faNum:v(S))(v(z).length))+` — `+f(v(I).name),1),p(`button`,{type:`button`,"aria-label":`بستن`,class:`flex size-11 items-center justify-center rounded-lg border border-line transition-colors hover:border-accent hover:text-accent`,onClick:n[3]||=e=>U.value=!1},[b(_,{name:`close-circle`,class:`size-5`})])]),p(`div`,{class:`relative flex min-h-0 flex-1 items-center justify-center px-5 pb-8`,onClick:n[6]||=c(e=>U.value=!1,[`self`])},[p(`img`,{src:v(V).url,alt:v(V).alt,class:`max-h-full max-w-full object-contain`},null,8,Pt),v(z).length>1?(x(),s(g,{key:0},[p(`button`,{type:`button`,"aria-label":`تصویر قبلی`,class:`absolute start-5 top-1/2 flex size-12 -translate-y-1/2 items-center justify-center rounded-full border border-line bg-bg/70 transition-colors hover:border-accent hover:text-accent`,onClick:n[4]||=e=>H(-1)},[b(_,{name:`arrow-right-1`,class:`size-5`})]),p(`button`,{type:`button`,"aria-label":`تصویر بعدی`,class:`absolute end-5 top-1/2 flex size-12 -translate-y-1/2 items-center justify-center rounded-full border border-line bg-bg/70 transition-colors hover:border-accent hover:text-accent`,onClick:n[5]||=e=>H(1)},[b(_,{name:`arrow-left-1`,class:`size-5`})])],64)):u(``,!0)])],8,jt)):u(``,!0)]),_:1})]))]),_:1})])}}});export{A as default}; \ No newline at end of file diff --git a/apps/web/.output/public/favicon.svg b/apps/web/.output/public/favicon.svg new file mode 100644 index 0000000..8efac06 --- /dev/null +++ b/apps/web/.output/public/favicon.svg @@ -0,0 +1 @@ + diff --git a/apps/web/.output/public/fonts/IRANSansWebFaNum.woff2 b/apps/web/.output/public/fonts/IRANSansWebFaNum.woff2 new file mode 100644 index 0000000..c3dcbab Binary files /dev/null and b/apps/web/.output/public/fonts/IRANSansWebFaNum.woff2 differ diff --git a/out/fonts/IRANSansWebFaNum_Black.woff2 b/apps/web/.output/public/fonts/IRANSansWebFaNum_Black.woff2 similarity index 100% rename from out/fonts/IRANSansWebFaNum_Black.woff2 rename to apps/web/.output/public/fonts/IRANSansWebFaNum_Black.woff2 diff --git a/apps/web/.output/public/fonts/IRANSansWebFaNum_Bold.woff2 b/apps/web/.output/public/fonts/IRANSansWebFaNum_Bold.woff2 new file mode 100644 index 0000000..69f7c66 Binary files /dev/null and b/apps/web/.output/public/fonts/IRANSansWebFaNum_Bold.woff2 differ diff --git a/out/fonts/IRANSansWebFaNum_Light.woff2 b/apps/web/.output/public/fonts/IRANSansWebFaNum_Light.woff2 similarity index 100% rename from out/fonts/IRANSansWebFaNum_Light.woff2 rename to apps/web/.output/public/fonts/IRANSansWebFaNum_Light.woff2 diff --git a/apps/web/.output/public/fonts/IRANSansWebFaNum_Medium.woff2 b/apps/web/.output/public/fonts/IRANSansWebFaNum_Medium.woff2 new file mode 100644 index 0000000..8273b0a Binary files /dev/null and b/apps/web/.output/public/fonts/IRANSansWebFaNum_Medium.woff2 differ diff --git a/out/fonts/IRANSansWebFaNum_UltraLight.woff2 b/apps/web/.output/public/fonts/IRANSansWebFaNum_UltraLight.woff2 similarity index 100% rename from out/fonts/IRANSansWebFaNum_UltraLight.woff2 rename to apps/web/.output/public/fonts/IRANSansWebFaNum_UltraLight.woff2 diff --git a/apps/web/.output/public/images/logo.png b/apps/web/.output/public/images/logo.png new file mode 100644 index 0000000..b689239 Binary files /dev/null and b/apps/web/.output/public/images/logo.png differ diff --git a/apps/web/.output/server/chunks/_/api.mjs b/apps/web/.output/server/chunks/_/api.mjs new file mode 100644 index 0000000..a9ec567 --- /dev/null +++ b/apps/web/.output/server/chunks/_/api.mjs @@ -0,0 +1,9 @@ +import { u as useRuntimeConfig } from './nitro.mjs'; + +const serverApi = (path) => $fetch(path, { baseURL: useRuntimeConfig().apiInternalUrl, retry: 1 }); +const fetchCategories = () => serverApi("/public/categories"); +const fetchSite = () => serverApi("/public/site"); +const absUrl = (p) => new URL(p, useRuntimeConfig().public.siteUrl).toString(); + +export { absUrl as a, fetchCategories as b, fetchSite as f, serverApi as s }; +//# sourceMappingURL=api.mjs.map diff --git a/apps/web/.output/server/chunks/_/api.mjs.map b/apps/web/.output/server/chunks/_/api.mjs.map new file mode 100644 index 0000000..86763dd --- /dev/null +++ b/apps/web/.output/server/chunks/_/api.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"api.mjs","sources":["../../../../server/utils/api.ts"],"names":[],"mappings":";;AAGO,MAAM,SAAA,GAAY,CAAI,IAAA,KAC3B,MAAA,CAAU,IAAA,EAAM,EAAE,OAAA,EAAS,gBAAA,EAAiB,CAAE,cAAA,EAAgB,KAAA,EAAO,CAAA,EAAG;AAEnE,MAAM,eAAA,GAAkB,MAAM,SAAA,CAAmC,oBAAoB;AACrF,MAAM,SAAA,GAAY,MAAM,SAAA,CAAsB,cAAc;AAG5D,MAAM,MAAA,GAAS,CAAC,CAAA,KAAc,IAAI,GAAA,CAAI,CAAA,EAAG,gBAAA,EAAiB,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,QAAA;;"} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/_/error-template.mjs b/apps/web/.output/server/chunks/_/error-template.mjs new file mode 100644 index 0000000..74f2f3c --- /dev/null +++ b/apps/web/.output/server/chunks/_/error-template.mjs @@ -0,0 +1,20 @@ +import { escapeHtml } from '@vue/shared'; + +//#region src/runtime/server/renderer/error-template.ts +const _messages = { + "appName": "Nuxt", + "status": 500, + "statusText": "Internal server error", + "description": "This page is temporarily unavailable.", + "refresh": "Refresh this page" +}; +const template = (messages) => { + messages = { + ..._messages, + ...messages + }; + return "" + escapeHtml(messages.status) + " - " + escapeHtml(messages.statusText) + " | " + escapeHtml(messages.appName) + "

" + escapeHtml(messages.status) + "

" + escapeHtml(messages.statusText) + "

" + escapeHtml(messages.description) + "

"; +}; + +export { template }; +//# sourceMappingURL=error-template.mjs.map diff --git a/apps/web/.output/server/chunks/_/error-template.mjs.map b/apps/web/.output/server/chunks/_/error-template.mjs.map new file mode 100644 index 0000000..f1d424f --- /dev/null +++ b/apps/web/.output/server/chunks/_/error-template.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-template.mjs","sources":["../../../../../../node_modules/.pnpm/nuxt@4.6.2_@babel+plugin-sy_c474c58bd1a08492d1f039ec0a278899/node_modules/nuxt/dist/runtime/server/renderer/error-template.js"],"names":[],"mappings":"","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/_/nitro.mjs b/apps/web/.output/server/chunks/_/nitro.mjs new file mode 100644 index 0000000..911faa5 --- /dev/null +++ b/apps/web/.output/server/chunks/_/nitro.mjs @@ -0,0 +1,5638 @@ +import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { createHead as createHead$1 } from 'unhead/server'; +import { isRef, toValue } from 'vue'; +import { DeprecationsPlugin } from 'unhead/legacy'; +import { PromisesPlugin, TemplateParamsPlugin, AliasSortingPlugin } from 'unhead/plugins'; +import Bt from 'node:http'; +import zs from 'node:https'; +import { EventEmitter } from 'node:events'; +import { Buffer as Buffer$1 } from 'node:buffer'; +import { promises, existsSync } from 'node:fs'; +import { resolve as resolve$1, dirname as dirname$1, join } from 'node:path'; +import { createHash } from 'node:crypto'; +import { fileURLToPath } from 'node:url'; + +const suspectProtoRx = /"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/; +const suspectConstructorRx = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/; +const JsonSigRx = /^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/; +function jsonParseTransform(key, value) { + if (key === "__proto__" || key === "constructor" && value && typeof value === "object" && "prototype" in value) { + warnKeyDropped(key); + return; + } + return value; +} +function warnKeyDropped(key) { + console.warn(`[destr] Dropping "${key}" key to prevent prototype pollution.`); +} +function destr(value, options = {}) { + if (typeof value !== "string") { + return value; + } + if (value[0] === '"' && value[value.length - 1] === '"' && value.indexOf("\\") === -1) { + return value.slice(1, -1); + } + const _value = value.trim(); + if (_value.length <= 9) { + switch (_value.toLowerCase()) { + case "true": { + return true; + } + case "false": { + return false; + } + case "undefined": { + return void 0; + } + case "null": { + return null; + } + case "nan": { + return Number.NaN; + } + case "infinity": { + return Number.POSITIVE_INFINITY; + } + case "-infinity": { + return Number.NEGATIVE_INFINITY; + } + } + } + if (!JsonSigRx.test(value)) { + if (options.strict) { + throw new SyntaxError("[destr] Invalid JSON"); + } + return value; + } + try { + if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) { + if (options.strict) { + throw new Error("[destr] Possible prototype pollution"); + } + return JSON.parse(value, jsonParseTransform); + } + return JSON.parse(value); + } catch (error) { + if (options.strict) { + throw error; + } + return value; + } +} + +const HASH_RE$1 = /#/g; +const AMPERSAND_RE = /&/g; +const SLASH_RE = /\//g; +const EQUAL_RE = /=/g; +const PLUS_RE = /\+/g; +const ENC_CARET_RE = /%5e/gi; +const ENC_BACKTICK_RE = /%60/gi; +const ENC_PIPE_RE$1 = /%7c/gi; +const ENC_SPACE_RE = /%20/gi; +const ENC_SLASH_RE = /%2f/gi; +function encode(text) { + return encodeURI("" + text).replace(ENC_PIPE_RE$1, "|"); +} +function encodeQueryValue(input) { + return encode(typeof input === "string" ? input : JSON.stringify(input)).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE$1, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CARET_RE, "^").replace(SLASH_RE, "%2F"); +} +function encodeQueryKey(text) { + return encodeQueryValue(text).replace(EQUAL_RE, "%3D"); +} +function decode(text = "") { + try { + return decodeURIComponent("" + text); + } catch { + return "" + text; + } +} +function decodePath(text) { + return decode(text.replace(ENC_SLASH_RE, "%252F")); +} +function decodeQueryKey(text) { + return decode(text.replace(PLUS_RE, " ")); +} +function decodeQueryValue(text) { + return decode(text.replace(PLUS_RE, " ")); +} + +function parseQuery(parametersString = "") { + const object = /* @__PURE__ */ Object.create(null); + if (parametersString[0] === "?") { + parametersString = parametersString.slice(1); + } + for (const parameter of parametersString.split("&")) { + const s = parameter.match(/([^=]+)=?(.*)/) || []; + if (s.length < 2) { + continue; + } + const key = decodeQueryKey(s[1]); + if (key === "__proto__" || key === "constructor") { + continue; + } + const value = decodeQueryValue(s[2] || ""); + if (object[key] === void 0) { + object[key] = value; + } else if (Array.isArray(object[key])) { + object[key].push(value); + } else { + object[key] = [object[key], value]; + } + } + return object; +} +function encodeQueryItem(key, value) { + if (typeof value === "number" || typeof value === "boolean") { + value = String(value); + } + if (!value) { + return encodeQueryKey(key); + } + if (Array.isArray(value)) { + return value.map( + (_value) => `${encodeQueryKey(key)}=${encodeQueryValue(_value)}` + ).join("&"); + } + return `${encodeQueryKey(key)}=${encodeQueryValue(value)}`; +} +function stringifyQuery(query) { + return Object.keys(query).filter((k) => query[k] !== void 0).map((k) => encodeQueryItem(k, query[k])).filter(Boolean).join("&"); +} + +const PROTOCOL_STRICT_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{1,2})/; +const PROTOCOL_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{2})?/; +const PROTOCOL_RELATIVE_REGEX = /^([/\\]\s*){2,}[^/\\]/; +const JOIN_LEADING_SLASH_RE = /^\.?\//; +function hasProtocol(inputString, opts = {}) { + if (typeof opts === "boolean") { + opts = { acceptRelative: opts }; + } + if (opts.strict) { + return PROTOCOL_STRICT_REGEX.test(inputString); + } + return PROTOCOL_REGEX.test(inputString) || (opts.acceptRelative ? PROTOCOL_RELATIVE_REGEX.test(inputString) : false); +} +function hasTrailingSlash(input = "", respectQueryAndFragment) { + { + return input.endsWith("/"); + } +} +function withoutTrailingSlash(input = "", respectQueryAndFragment) { + { + return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || "/"; + } +} +function withTrailingSlash(input = "", respectQueryAndFragment) { + { + return input.endsWith("/") ? input : input + "/"; + } +} +function hasLeadingSlash(input = "") { + return input.startsWith("/"); +} +function withLeadingSlash(input = "") { + return hasLeadingSlash(input) ? input : "/" + input; +} +function withBase(input, base) { + if (isEmptyURL(base) || hasProtocol(input)) { + return input; + } + const _base = withoutTrailingSlash(base); + if (input.startsWith(_base)) { + const nextChar = input[_base.length]; + if (!nextChar || nextChar === "/" || nextChar === "?") { + return input; + } + } + return joinURL(_base, input); +} +function withoutBase(input, base) { + if (isEmptyURL(base)) { + return input; + } + const _base = withoutTrailingSlash(base); + if (!input.startsWith(_base)) { + return input; + } + const nextChar = input[_base.length]; + if (nextChar && nextChar !== "/" && nextChar !== "?") { + return input; + } + const trimmed = input.slice(_base.length).replace(/^\/+/, ""); + return "/" + trimmed; +} +function withQuery(input, query) { + const parsed = parseURL(input); + const mergedQuery = { ...parseQuery(parsed.search), ...query }; + parsed.search = stringifyQuery(mergedQuery); + return stringifyParsedURL(parsed); +} +function getQuery(input) { + return parseQuery(parseURL(input).search); +} +function isEmptyURL(url) { + return !url || url === "/"; +} +function isNonEmptyURL(url) { + return url && url !== "/"; +} +function joinURL(base, ...input) { + let url = base || ""; + for (const segment of input.filter((url2) => isNonEmptyURL(url2))) { + if (url) { + const _segment = segment.replace(JOIN_LEADING_SLASH_RE, ""); + url = withTrailingSlash(url) + _segment; + } else { + url = segment; + } + } + return url; +} +function joinRelativeURL(..._input) { + const JOIN_SEGMENT_SPLIT_RE = /\/(?!\/)/; + const input = _input.filter(Boolean); + const segments = []; + let segmentsDepth = 0; + for (const i of input) { + if (!i || i === "/") { + continue; + } + for (const [sindex, s] of i.split(JOIN_SEGMENT_SPLIT_RE).entries()) { + if (!s || s === ".") { + continue; + } + if (s === "..") { + if (segments.length === 1 && hasProtocol(segments[0])) { + continue; + } + segments.pop(); + segmentsDepth--; + continue; + } + if (sindex === 1 && segments[segments.length - 1]?.endsWith(":/")) { + segments[segments.length - 1] += "/" + s; + continue; + } + segments.push(s); + segmentsDepth++; + } + } + let url = segments.join("/"); + if (segmentsDepth >= 0) { + if (input[0]?.startsWith("/") && !url.startsWith("/")) { + url = "/" + url; + } else if (input[0]?.startsWith("./") && !url.startsWith("./")) { + url = "./" + url; + } + } else { + url = "../".repeat(-1 * segmentsDepth) + url; + } + if (input[input.length - 1]?.endsWith("/") && !url.endsWith("/")) { + url += "/"; + } + return url; +} + +const protocolRelative = Symbol.for("ufo:protocolRelative"); +function parseURL(input = "", defaultProto) { + const _specialProtoMatch = input.match( + /^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i + ); + if (_specialProtoMatch) { + const [, _proto, _pathname = ""] = _specialProtoMatch; + return { + protocol: _proto.toLowerCase(), + pathname: _pathname, + href: _proto + _pathname, + auth: "", + host: "", + search: "", + hash: "" + }; + } + if (!hasProtocol(input, { acceptRelative: true })) { + return parsePath(input); + } + const [, protocol = "", auth, hostAndPath = ""] = input.replace(/\\/g, "/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/) || []; + let [, host = "", path = ""] = hostAndPath.match(/([^#/?]*)(.*)?/) || []; + if (protocol === "file:") { + path = path.replace(/\/(?=[A-Za-z]:)/, ""); + } + const { pathname, search, hash } = parsePath(path); + return { + protocol: protocol.toLowerCase(), + auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : "", + host, + pathname, + search, + hash, + [protocolRelative]: !protocol + }; +} +function parsePath(input = "") { + const [pathname = "", search = "", hash = ""] = (input.match(/([^#?]*)(\?[^#]*)?(#.*)?/) || []).splice(1); + return { + pathname, + search, + hash + }; +} +function stringifyParsedURL(parsed) { + const pathname = parsed.pathname || ""; + const search = parsed.search ? (parsed.search.startsWith("?") ? "" : "?") + parsed.search : ""; + const hash = parsed.hash || ""; + const auth = parsed.auth ? parsed.auth + "@" : ""; + const host = parsed.host || ""; + const proto = parsed.protocol || parsed[protocolRelative] ? (parsed.protocol || "") + "//" : ""; + return proto + auth + host + pathname + search + hash; +} + +const NODE_TYPES = { + NORMAL: 0, + WILDCARD: 1, + PLACEHOLDER: 2 +}; + +function createRouter$1(options = {}) { + const ctx = { + options, + rootNode: createRadixNode(), + staticRoutesMap: {} + }; + const normalizeTrailingSlash = (p) => options.strictTrailingSlash ? p : p.replace(/\/$/, "") || "/"; + if (options.routes) { + for (const path in options.routes) { + insert(ctx, normalizeTrailingSlash(path), options.routes[path]); + } + } + return { + ctx, + lookup: (path) => lookup(ctx, normalizeTrailingSlash(path)), + insert: (path, data) => insert(ctx, normalizeTrailingSlash(path), data), + remove: (path) => remove(ctx, normalizeTrailingSlash(path)) + }; +} +function lookup(ctx, path) { + const staticPathNode = ctx.staticRoutesMap[path]; + if (staticPathNode) { + return staticPathNode.data; + } + const sections = path.split("/"); + const params = {}; + let paramsFound = false; + let wildcardNode = null; + let node = ctx.rootNode; + let wildCardParam = null; + for (let i = 0; i < sections.length; i++) { + const section = sections[i]; + if (node.wildcardChildNode !== null) { + wildcardNode = node.wildcardChildNode; + wildCardParam = sections.slice(i).join("/"); + } + const nextNode = node.children.get(section); + if (nextNode === void 0) { + if (node && node.placeholderChildren.length > 1) { + const remaining = sections.length - i; + node = node.placeholderChildren.find((c) => c.maxDepth === remaining) || null; + } else { + node = node.placeholderChildren[0] || null; + } + if (!node) { + break; + } + if (node.paramName) { + params[node.paramName] = section; + } + paramsFound = true; + } else { + node = nextNode; + } + } + if ((node === null || node.data === null) && wildcardNode !== null) { + node = wildcardNode; + params[node.paramName || "_"] = wildCardParam; + paramsFound = true; + } + if (!node) { + return null; + } + if (paramsFound) { + return { + ...node.data, + params: paramsFound ? params : void 0 + }; + } + return node.data; +} +function insert(ctx, path, data) { + let isStaticRoute = true; + const sections = path.split("/"); + let node = ctx.rootNode; + let _unnamedPlaceholderCtr = 0; + const matchedNodes = [node]; + for (const section of sections) { + let childNode; + if (childNode = node.children.get(section)) { + node = childNode; + } else { + const type = getNodeType(section); + childNode = createRadixNode({ type, parent: node }); + node.children.set(section, childNode); + if (type === NODE_TYPES.PLACEHOLDER) { + childNode.paramName = section === "*" ? `_${_unnamedPlaceholderCtr++}` : section.slice(1); + node.placeholderChildren.push(childNode); + isStaticRoute = false; + } else if (type === NODE_TYPES.WILDCARD) { + node.wildcardChildNode = childNode; + childNode.paramName = section.slice( + 3 + /* "**:" */ + ) || "_"; + isStaticRoute = false; + } + matchedNodes.push(childNode); + node = childNode; + } + } + for (const [depth, node2] of matchedNodes.entries()) { + node2.maxDepth = Math.max(matchedNodes.length - depth, node2.maxDepth || 0); + } + node.data = data; + if (isStaticRoute === true) { + ctx.staticRoutesMap[path] = node; + } + return node; +} +function remove(ctx, path) { + let success = false; + const sections = path.split("/"); + let node = ctx.rootNode; + for (const section of sections) { + node = node.children.get(section); + if (!node) { + return success; + } + } + if (node.data) { + const lastSection = sections.at(-1) || ""; + node.data = null; + if (Object.keys(node.children).length === 0 && node.parent) { + node.parent.children.delete(lastSection); + node.parent.wildcardChildNode = null; + node.parent.placeholderChildren = []; + } + success = true; + } + return success; +} +function createRadixNode(options = {}) { + return { + type: options.type || NODE_TYPES.NORMAL, + maxDepth: 0, + parent: options.parent || null, + children: /* @__PURE__ */ new Map(), + data: options.data || null, + paramName: options.paramName || null, + wildcardChildNode: null, + placeholderChildren: [] + }; +} +function getNodeType(str) { + if (str.startsWith("**")) { + return NODE_TYPES.WILDCARD; + } + if (str[0] === ":" || str === "*") { + return NODE_TYPES.PLACEHOLDER; + } + return NODE_TYPES.NORMAL; +} + +function toRouteMatcher(router) { + const table = _routerNodeToTable("", router.ctx.rootNode); + return _createMatcher(table, router.ctx.options.strictTrailingSlash); +} +function _createMatcher(table, strictTrailingSlash) { + return { + ctx: { table }, + matchAll: (path) => _matchRoutes(path, table, strictTrailingSlash) + }; +} +function _createRouteTable() { + return { + static: /* @__PURE__ */ new Map(), + wildcard: /* @__PURE__ */ new Map(), + dynamic: /* @__PURE__ */ new Map() + }; +} +function _matchRoutes(path, table, strictTrailingSlash) { + if (strictTrailingSlash !== true && path.endsWith("/")) { + path = path.slice(0, -1) || "/"; + } + const matches = []; + for (const [key, value] of _sortRoutesMap(table.wildcard)) { + if (path === key || path.startsWith(key + "/")) { + matches.push(value); + } + } + for (const [key, value] of _sortRoutesMap(table.dynamic)) { + if (path.startsWith(key + "/")) { + const subPath = "/" + path.slice(key.length).split("/").splice(2).join("/"); + matches.push(..._matchRoutes(subPath, value)); + } + } + const staticMatch = table.static.get(path); + if (staticMatch) { + matches.push(staticMatch); + } + return matches.filter(Boolean); +} +function _sortRoutesMap(m) { + return [...m.entries()].sort((a, b) => a[0].length - b[0].length); +} +function _routerNodeToTable(initialPath, initialNode) { + const table = _createRouteTable(); + function _addNode(path, node) { + if (path) { + if (node.type === NODE_TYPES.NORMAL && !(path.includes("*") || path.includes(":"))) { + if (node.data) { + table.static.set(path, node.data); + } + } else if (node.type === NODE_TYPES.WILDCARD) { + table.wildcard.set(path.replace("/**", ""), node.data); + } else if (node.type === NODE_TYPES.PLACEHOLDER) { + const subTable = _routerNodeToTable("", node); + if (node.data) { + subTable.static.set("/", node.data); + } + table.dynamic.set(path.replace(/\/\*|\/:\w+/, ""), subTable); + return; + } + } + for (const [childPath, child] of node.children.entries()) { + _addNode(`${path}/${childPath}`.replace("//", "/"), child); + } + } + _addNode(initialPath, initialNode); + return table; +} + +function isPlainObject(value) { + if (value === null || typeof value !== "object") { + return false; + } + const prototype = Object.getPrototypeOf(value); + if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) { + return false; + } + if (Symbol.iterator in value) { + return false; + } + if (Symbol.toStringTag in value) { + return Object.prototype.toString.call(value) === "[object Module]"; + } + return true; +} + +function _defu(baseObject, defaults, namespace = ".", merger) { + if (!isPlainObject(defaults)) { + return _defu(baseObject, {}, namespace, merger); + } + const object = { ...defaults }; + for (const key of Object.keys(baseObject)) { + if (key === "__proto__" || key === "constructor") { + continue; + } + const value = baseObject[key]; + if (value === null || value === void 0) { + continue; + } + if (merger && merger(object, key, value, namespace)) { + continue; + } + if (Array.isArray(value) && Array.isArray(object[key])) { + object[key] = [...value, ...object[key]]; + } else if (isPlainObject(value) && isPlainObject(object[key])) { + object[key] = _defu( + value, + object[key], + (namespace ? `${namespace}.` : "") + key.toString(), + merger + ); + } else { + object[key] = value; + } + } + return object; +} +function createDefu(merger) { + return (...arguments_) => ( + // eslint-disable-next-line unicorn/no-array-reduce + arguments_.reduce((p, c) => _defu(p, c, "", merger), {}) + ); +} +const defu = createDefu(); +const defuFn = createDefu((object, key, currentValue) => { + if (object[key] !== void 0 && typeof currentValue === "function") { + object[key] = currentValue(object[key]); + return true; + } +}); + +function o(n){throw new Error(`${n} is not implemented yet!`)}let i$1 = class i extends EventEmitter{__unenv__={};readableEncoding=null;readableEnded=true;readableFlowing=false;readableHighWaterMark=0;readableLength=0;readableObjectMode=false;readableAborted=false;readableDidRead=false;closed=false;errored=null;readable=false;destroyed=false;static from(e,t){return new i(t)}constructor(e){super();}_read(e){}read(e){}setEncoding(e){return this}pause(){return this}resume(){return this}isPaused(){return true}unpipe(e){return this}unshift(e,t){}wrap(e){return this}push(e,t){return false}_destroy(e,t){this.removeAllListeners();}destroy(e){return this.destroyed=true,this._destroy(e),this}pipe(e,t){return {}}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return this.destroy(),Promise.resolve()}async*[Symbol.asyncIterator](){throw o("Readable.asyncIterator")}iterator(e){throw o("Readable.iterator")}map(e,t){throw o("Readable.map")}filter(e,t){throw o("Readable.filter")}forEach(e,t){throw o("Readable.forEach")}reduce(e,t,r){throw o("Readable.reduce")}find(e,t){throw o("Readable.find")}findIndex(e,t){throw o("Readable.findIndex")}some(e,t){throw o("Readable.some")}toArray(e){throw o("Readable.toArray")}every(e,t){throw o("Readable.every")}flatMap(e,t){throw o("Readable.flatMap")}drop(e,t){throw o("Readable.drop")}take(e,t){throw o("Readable.take")}asIndexedPairs(e){throw o("Readable.asIndexedPairs")}};let l$1 = class l extends EventEmitter{__unenv__={};writable=true;writableEnded=false;writableFinished=false;writableHighWaterMark=0;writableLength=0;writableObjectMode=false;writableCorked=0;closed=false;errored=null;writableNeedDrain=false;writableAborted=false;destroyed=false;_data;_encoding="utf8";constructor(e){super();}pipe(e,t){return {}}_write(e,t,r){if(this.writableEnded){r&&r();return}if(this._data===void 0)this._data=e;else {const s=typeof this._data=="string"?Buffer$1.from(this._data,this._encoding||t||"utf8"):this._data,a=typeof e=="string"?Buffer$1.from(e,t||this._encoding||"utf8"):e;this._data=Buffer$1.concat([s,a]);}this._encoding=t,r&&r();}_writev(e,t){}_destroy(e,t){}_final(e){}write(e,t,r){const s=typeof t=="string"?this._encoding:"utf8",a=typeof t=="function"?t:typeof r=="function"?r:void 0;return this._write(e,s,a),true}setDefaultEncoding(e){return this}end(e,t,r){const s=typeof e=="function"?e:typeof t=="function"?t:typeof r=="function"?r:void 0;if(this.writableEnded)return s&&s(),this;const a=e===s?void 0:e;if(a){const u=t===s?void 0:t;this.write(a,u);}return this.writableEnded=true,this.writableFinished=true,this.emit("close"),this.emit("finish"),s&&s(),this}cork(){}uncork(){}destroy(e){return this.destroyed=true,delete this._data,this.removeAllListeners(),this}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return Promise.resolve()}};const c=class{allowHalfOpen=true;_destroy;constructor(e=new i$1,t=new l$1){Object.assign(this,e),Object.assign(this,t),this._destroy=m(e._destroy,t._destroy);}};function _(){return Object.assign(c.prototype,i$1.prototype),Object.assign(c.prototype,l$1.prototype),c}function m(...n){return function(...e){for(const t of n)t(...e);}}const g=_();class A extends g{__unenv__={};bufferSize=0;bytesRead=0;bytesWritten=0;connecting=false;destroyed=false;pending=false;localAddress="";localPort=0;remoteAddress="";remoteFamily="";remotePort=0;autoSelectFamilyAttemptedAddresses=[];readyState="readOnly";constructor(e){super();}write(e,t,r){return false}connect(e,t,r){return this}end(e,t,r){return this}setEncoding(e){return this}pause(){return this}resume(){return this}setTimeout(e,t){return this}setNoDelay(e){return this}setKeepAlive(e,t){return this}address(){return {}}unref(){return this}ref(){return this}destroySoon(){this.destroy();}resetAndDestroy(){const e=new Error("ERR_SOCKET_CLOSED");return e.code="ERR_SOCKET_CLOSED",this.destroy(e),this}}class y extends i$1{aborted=false;httpVersion="1.1";httpVersionMajor=1;httpVersionMinor=1;complete=true;connection;socket;headers={};trailers={};method="GET";url="/";statusCode=200;statusMessage="";closed=false;errored=null;readable=false;constructor(e){super(),this.socket=this.connection=e||new A;}get rawHeaders(){const e=this.headers,t=[];for(const r in e)if(Array.isArray(e[r]))for(const s of e[r])t.push(r,s);else t.push(r,e[r]);return t}get rawTrailers(){return []}setTimeout(e,t){return this}get headersDistinct(){return p(this.headers)}get trailersDistinct(){return p(this.trailers)}}function p(n){const e={};for(const[t,r]of Object.entries(n))t&&(e[t]=(Array.isArray(r)?r:[r]).filter(Boolean));return e}class w extends l$1{statusCode=200;statusMessage="";upgrading=false;chunkedEncoding=false;shouldKeepAlive=false;useChunkedEncodingByDefault=false;sendDate=false;finished=false;headersSent=false;strictContentLength=false;connection=null;socket=null;req;_headers={};constructor(e){super(),this.req=e;}assignSocket(e){e._httpMessage=this,this.socket=e,this.connection=e,this.emit("socket",e),this._flush();}_flush(){this.flushHeaders();}detachSocket(e){}writeContinue(e){}writeHead(e,t,r){e&&(this.statusCode=e),typeof t=="string"&&(this.statusMessage=t,t=void 0);const s=r||t;if(s&&!Array.isArray(s))for(const a in s)this.setHeader(a,s[a]);return this.headersSent=true,this}writeProcessing(){}setTimeout(e,t){return this}appendHeader(e,t){e=e.toLowerCase();const r=this._headers[e],s=[...Array.isArray(r)?r:[r],...Array.isArray(t)?t:[t]].filter(Boolean);return this._headers[e]=s.length>1?s:s[0],this}setHeader(e,t){return this._headers[e.toLowerCase()]=t,this}setHeaders(e){for(const[t,r]of Object.entries(e))this.setHeader(t,r);return this}getHeader(e){return this._headers[e.toLowerCase()]}getHeaders(){return this._headers}getHeaderNames(){return Object.keys(this._headers)}hasHeader(e){return e.toLowerCase()in this._headers}removeHeader(e){delete this._headers[e.toLowerCase()];}addTrailers(e){}flushHeaders(){}writeEarlyHints(e,t){typeof t=="function"&&t();}}const E=(()=>{const n=function(){};return n.prototype=Object.create(null),n})();function R(n={}){const e=new E,t=Array.isArray(n)||H(n)?n:Object.entries(n);for(const[r,s]of t)if(s){if(e[r]===void 0){e[r]=s;continue}e[r]=[...Array.isArray(e[r])?e[r]:[e[r]],...Array.isArray(s)?s:[s]];}return e}function H(n){return typeof n?.entries=="function"}function v(n={}){if(n instanceof Headers)return n;const e=new Headers;for(const[t,r]of Object.entries(n))if(r!==void 0){if(Array.isArray(r)){for(const s of r)e.append(t,String(s));continue}e.set(t,String(r));}return e}const S=new Set([101,204,205,304]);async function b(n,e){const t=new y,r=new w(t);t.url=e.url?.toString()||"/";let s;if(!t.url.startsWith("/")){const d=new URL(t.url);s=d.host,t.url=d.pathname+d.search+d.hash;}t.method=e.method||"GET",t.headers=R(e.headers||{}),t.headers.host||(t.headers.host=e.host||s||"localhost"),t.connection.encrypted=t.connection.encrypted||e.protocol==="https",t.body=e.body||null,t.__unenv__=e.context,await n(t,r);let a=r._data;(S.has(r.statusCode)||t.method.toUpperCase()==="HEAD")&&(a=null,delete r._headers["content-length"]);const u={status:r.statusCode,statusText:r.statusMessage,headers:r._headers,body:a};return t.destroy(),r.destroy(),u}async function C(n,e,t={}){try{const r=await b(n,{url:e,...t});return new Response(r.body,{status:r.status,statusText:r.statusText,headers:v(r.headers)})}catch(r){return new Response(r.toString(),{status:Number.parseInt(r.statusCode||r.code)||500,statusText:r.statusText})}} + +function hasProp(obj, prop) { + try { + return prop in obj; + } catch { + return false; + } +} + +class H3Error extends Error { + static __h3_error__ = true; + statusCode = 500; + fatal = false; + unhandled = false; + statusMessage; + data; + cause; + constructor(message, opts = {}) { + super(message, opts); + if (opts.cause && !this.cause) { + this.cause = opts.cause; + } + } + toJSON() { + const obj = { + message: this.message, + statusCode: sanitizeStatusCode(this.statusCode, 500) + }; + if (this.statusMessage) { + obj.statusMessage = sanitizeStatusMessage(this.statusMessage); + } + if (this.data !== void 0) { + obj.data = this.data; + } + return obj; + } +} +function createError$1(input) { + if (typeof input === "string") { + return new H3Error(input); + } + if (isError(input)) { + return input; + } + const err = new H3Error(input.message ?? input.statusMessage ?? "", { + cause: input.cause || input + }); + if (hasProp(input, "stack")) { + try { + Object.defineProperty(err, "stack", { + get() { + return input.stack; + } + }); + } catch { + try { + err.stack = input.stack; + } catch { + } + } + } + if (input.data) { + err.data = input.data; + } + if (input.statusCode) { + err.statusCode = sanitizeStatusCode(input.statusCode, err.statusCode); + } else if (input.status) { + err.statusCode = sanitizeStatusCode(input.status, err.statusCode); + } + if (input.statusMessage) { + err.statusMessage = input.statusMessage; + } else if (input.statusText) { + err.statusMessage = input.statusText; + } + if (err.statusMessage) { + const originalMessage = err.statusMessage; + const sanitizedMessage = sanitizeStatusMessage(err.statusMessage); + if (sanitizedMessage !== originalMessage) { + console.warn( + "[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default." + ); + } + } + if (input.fatal !== void 0) { + err.fatal = input.fatal; + } + if (input.unhandled !== void 0) { + err.unhandled = input.unhandled; + } + return err; +} +function sendError(event, error, debug) { + if (event.handled) { + return; + } + const h3Error = isError(error) ? error : createError$1(error); + const responseBody = { + statusCode: h3Error.statusCode, + statusMessage: h3Error.statusMessage, + stack: [], + data: h3Error.data + }; + if (debug) { + responseBody.stack = (h3Error.stack || "").split("\n").map((l) => l.trim()); + } + if (event.handled) { + return; + } + const _code = Number.parseInt(h3Error.statusCode); + setResponseStatus(event, _code, h3Error.statusMessage); + event.node.res.setHeader("content-type", MIMES.json); + event.node.res.end(JSON.stringify(responseBody, void 0, 2)); +} +function isError(input) { + return input?.constructor?.__h3_error__ === true; +} +function isMethod(event, expected, allowHead) { + if (typeof expected === "string") { + if (event.method === expected) { + return true; + } + } else if (expected.includes(event.method)) { + return true; + } + return false; +} +function assertMethod(event, expected, allowHead) { + if (!isMethod(event, expected)) { + throw createError$1({ + statusCode: 405, + statusMessage: "HTTP method is not allowed." + }); + } +} +function getRequestHeaders(event) { + const _headers = {}; + for (const key in event.node.req.headers) { + const val = event.node.req.headers[key]; + _headers[key] = Array.isArray(val) ? val.filter(Boolean).join(", ") : val; + } + return _headers; +} +function getRequestHeader(event, name) { + const headers = getRequestHeaders(event); + const value = headers[name.toLowerCase()]; + return value; +} +const getHeader = getRequestHeader; +function getRequestHost(event, opts = {}) { + if (opts.xForwardedHost) { + const _header = event.node.req.headers["x-forwarded-host"]; + const xForwardedHost = (_header || "").split(",").shift()?.trim(); + if (xForwardedHost) { + return xForwardedHost; + } + } + return event.node.req.headers.host || "localhost"; +} +function getRequestProtocol(event, opts = {}) { + if (opts.xForwardedProto !== false && event.node.req.headers["x-forwarded-proto"] === "https") { + return "https"; + } + return event.node.req.connection?.encrypted ? "https" : "http"; +} +function getRequestURL(event, opts = {}) { + const host = getRequestHost(event, opts); + const protocol = getRequestProtocol(event, opts); + const path = (event.node.req.originalUrl || event.path).replace( + /^[/\\]+/g, + "/" + ); + return new URL(path, `${protocol}://${host}`); +} + +const RawBodySymbol = Symbol.for("h3RawBody"); +const PayloadMethods$1 = ["PATCH", "POST", "PUT", "DELETE"]; +function readRawBody(event, encoding = "utf8") { + assertMethod(event, PayloadMethods$1); + const _rawBody = event._requestBody || event.web?.request?.body || event.node.req[RawBodySymbol] || event.node.req.rawBody || event.node.req.body; + if (_rawBody) { + const promise2 = Promise.resolve(_rawBody).then((_resolved) => { + if (Buffer.isBuffer(_resolved)) { + return _resolved; + } + if (typeof _resolved.pipeTo === "function") { + return new Promise((resolve, reject) => { + const chunks = []; + _resolved.pipeTo( + new WritableStream({ + write(chunk) { + chunks.push(chunk); + }, + close() { + resolve(Buffer.concat(chunks)); + }, + abort(reason) { + reject(reason); + } + }) + ).catch(reject); + }); + } else if (typeof _resolved.pipe === "function") { + return new Promise((resolve, reject) => { + const chunks = []; + _resolved.on("data", (chunk) => { + chunks.push(chunk); + }).on("end", () => { + resolve(Buffer.concat(chunks)); + }).on("error", reject); + }); + } + if (_resolved.constructor === Object) { + return Buffer.from(JSON.stringify(_resolved)); + } + if (_resolved instanceof URLSearchParams) { + return Buffer.from(_resolved.toString()); + } + if (_resolved instanceof FormData) { + return new Response(_resolved).bytes().then((uint8arr) => Buffer.from(uint8arr)); + } + return Buffer.from(_resolved); + }); + return encoding ? promise2.then((buff) => buff.toString(encoding)) : promise2; + } + if (!Number.parseInt(event.node.req.headers["content-length"] || "") && !/\bchunked\b/i.test( + String(event.node.req.headers["transfer-encoding"] ?? "") + )) { + return Promise.resolve(void 0); + } + const promise = event.node.req[RawBodySymbol] = new Promise( + (resolve, reject) => { + const bodyData = []; + event.node.req.on("error", (err) => { + reject(err); + }).on("data", (chunk) => { + bodyData.push(chunk); + }).on("end", () => { + resolve(Buffer.concat(bodyData)); + }); + } + ); + const result = encoding ? promise.then((buff) => buff.toString(encoding)) : promise; + return result; +} +function getRequestWebStream(event) { + if (!PayloadMethods$1.includes(event.method)) { + return; + } + const bodyStream = event.web?.request?.body || event._requestBody; + if (bodyStream) { + return bodyStream; + } + const _hasRawBody = RawBodySymbol in event.node.req || "rawBody" in event.node.req || "body" in event.node.req || "__unenv__" in event.node.req; + if (_hasRawBody) { + return new ReadableStream({ + async start(controller) { + const _rawBody = await readRawBody(event, false); + if (_rawBody) { + controller.enqueue(_rawBody); + } + controller.close(); + } + }); + } + return new ReadableStream({ + start: (controller) => { + event.node.req.on("data", (chunk) => { + controller.enqueue(chunk); + }); + event.node.req.on("end", () => { + controller.close(); + }); + event.node.req.on("error", (err) => { + controller.error(err); + }); + } + }); +} + +function handleCacheHeaders(event, opts) { + const cacheControls = ["public", ...opts.cacheControls || []]; + let cacheMatched = false; + if (opts.maxAge !== void 0) { + cacheControls.push(`max-age=${+opts.maxAge}`, `s-maxage=${+opts.maxAge}`); + } + if (opts.modifiedTime) { + const modifiedTime = new Date(opts.modifiedTime); + const ifModifiedSince = event.node.req.headers["if-modified-since"]; + event.node.res.setHeader("last-modified", modifiedTime.toUTCString()); + if (ifModifiedSince && new Date(ifModifiedSince) >= modifiedTime) { + cacheMatched = true; + } + } + if (opts.etag) { + event.node.res.setHeader("etag", opts.etag); + const ifNonMatch = event.node.req.headers["if-none-match"]; + if (ifNonMatch === opts.etag) { + cacheMatched = true; + } + } + event.node.res.setHeader("cache-control", cacheControls.join(", ")); + if (cacheMatched) { + event.node.res.statusCode = 304; + if (!event.handled) { + event.node.res.end(); + } + return true; + } + return false; +} + +const MIMES = { + html: "text/html", + json: "application/json" +}; + +const DISALLOWED_STATUS_CHARS = /[^\u0009\u0020-\u007E]/g; +function sanitizeStatusMessage(statusMessage = "") { + return statusMessage.replace(DISALLOWED_STATUS_CHARS, ""); +} +function sanitizeStatusCode(statusCode, defaultStatusCode = 200) { + if (!statusCode) { + return defaultStatusCode; + } + if (typeof statusCode === "string") { + statusCode = Number.parseInt(statusCode, 10); + } + if (statusCode < 100 || statusCode > 999) { + return defaultStatusCode; + } + return statusCode; +} +function splitCookiesString(cookiesString) { + if (Array.isArray(cookiesString)) { + return cookiesString.flatMap((c) => splitCookiesString(c)); + } + if (typeof cookiesString !== "string") { + return []; + } + const cookiesStrings = []; + let pos = 0; + let start; + let ch; + let lastComma; + let nextStart; + let cookiesSeparatorFound; + const skipWhitespace = () => { + while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) { + pos += 1; + } + return pos < cookiesString.length; + }; + const notSpecialChar = () => { + ch = cookiesString.charAt(pos); + return ch !== "=" && ch !== ";" && ch !== ","; + }; + while (pos < cookiesString.length) { + start = pos; + cookiesSeparatorFound = false; + while (skipWhitespace()) { + ch = cookiesString.charAt(pos); + if (ch === ",") { + lastComma = pos; + pos += 1; + skipWhitespace(); + nextStart = pos; + while (pos < cookiesString.length && notSpecialChar()) { + pos += 1; + } + if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { + cookiesSeparatorFound = true; + pos = nextStart; + cookiesStrings.push(cookiesString.slice(start, lastComma)); + start = pos; + } else { + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.slice(start)); + } + } + return cookiesStrings; +} + +const defer = typeof setImmediate === "undefined" ? (fn) => fn() : setImmediate; +function send(event, data, type) { + if (type) { + defaultContentType(event, type); + } + return new Promise((resolve) => { + defer(() => { + if (!event.handled) { + event.node.res.end(data); + } + resolve(); + }); + }); +} +function sendNoContent(event, code) { + if (event.handled) { + return; + } + if (!code && event.node.res.statusCode !== 200) { + code = event.node.res.statusCode; + } + const _code = sanitizeStatusCode(code, 204); + if (_code === 204) { + event.node.res.removeHeader("content-length"); + } + event.node.res.writeHead(_code); + event.node.res.end(); +} +function setResponseStatus(event, code, text) { + if (code) { + event.node.res.statusCode = sanitizeStatusCode( + code, + event.node.res.statusCode + ); + } + if (text) { + event.node.res.statusMessage = sanitizeStatusMessage(text); + } +} +function getResponseStatus(event) { + return event.node.res.statusCode; +} +function defaultContentType(event, type) { + if (type && event.node.res.statusCode !== 304 && !event.node.res.getHeader("content-type")) { + event.node.res.setHeader("content-type", type); + } +} +function sendRedirect(event, location, code = 302) { + event.node.res.statusCode = sanitizeStatusCode( + code, + event.node.res.statusCode + ); + event.node.res.setHeader("location", location); + const encodedLoc = location.replace(/"/g, "%22"); + const html = ``; + return send(event, html, MIMES.html); +} +function getResponseHeader(event, name) { + return event.node.res.getHeader(name); +} +function setResponseHeaders(event, headers) { + for (const [name, value] of Object.entries(headers)) { + event.node.res.setHeader( + name, + value + ); + } +} +const setHeaders = setResponseHeaders; +function setResponseHeader(event, name, value) { + event.node.res.setHeader(name, value); +} +const setHeader = setResponseHeader; +function appendResponseHeader(event, name, value) { + let current = event.node.res.getHeader(name); + if (!current) { + event.node.res.setHeader(name, value); + return; + } + if (!Array.isArray(current)) { + current = [current.toString()]; + } + event.node.res.setHeader(name, [...current, value]); +} +function removeResponseHeader(event, name) { + return event.node.res.removeHeader(name); +} +function isStream(data) { + if (!data || typeof data !== "object") { + return false; + } + if (typeof data.pipe === "function") { + if (typeof data._read === "function") { + return true; + } + if (typeof data.abort === "function") { + return true; + } + } + if (typeof data.pipeTo === "function") { + return true; + } + return false; +} +function isWebResponse(data) { + return typeof Response !== "undefined" && data instanceof Response; +} +function sendStream(event, stream) { + if (!stream || typeof stream !== "object") { + throw new Error("[h3] Invalid stream provided."); + } + event.node.res._data = stream; + if (!event.node.res.socket) { + event._handled = true; + return Promise.resolve(); + } + if (hasProp(stream, "pipeTo") && typeof stream.pipeTo === "function") { + return stream.pipeTo( + new WritableStream({ + write(chunk) { + event.node.res.write(chunk); + } + }) + ).then(() => { + event.node.res.end(); + }); + } + if (hasProp(stream, "pipe") && typeof stream.pipe === "function") { + return new Promise((resolve, reject) => { + stream.pipe(event.node.res); + if (stream.on) { + stream.on("end", () => { + event.node.res.end(); + resolve(); + }); + stream.on("error", (error) => { + reject(error); + }); + } + event.node.res.on("close", () => { + if (stream.abort) { + stream.abort(); + } + }); + }); + } + throw new Error("[h3] Invalid or incompatible stream provided."); +} +const noop = () => { +}; +function writeEarlyHints(event, hints, cb = noop) { + if (!event.node.res.socket) { + cb(); + return; + } + if (typeof hints === "string" || Array.isArray(hints)) { + hints = { link: hints }; + } + if (hints.link) { + hints.link = Array.isArray(hints.link) ? hints.link : hints.link.split(","); + } + const headers = Object.entries(hints).map( + (e) => [e[0].toLowerCase(), e[1]] + ); + if (headers.length === 0) { + cb(); + return; + } + let hint = "HTTP/1.1 103 Early Hints"; + if (hints.link) { + hint += `\r +Link: ${hints.link.join(", ")}`; + } + for (const [header, value] of headers) { + if (header === "link") { + continue; + } + hint += `\r +${header}: ${value}`; + } + if (event.node.res.socket) { + event.node.res.socket.write( + `${hint}\r +\r +`, + "utf8", + cb + ); + } else { + cb(); + } +} +function sendWebResponse(event, response) { + for (const [key, value] of response.headers) { + if (key === "set-cookie") { + event.node.res.appendHeader(key, splitCookiesString(value)); + } else { + event.node.res.setHeader(key, value); + } + } + if (response.status) { + event.node.res.statusCode = sanitizeStatusCode( + response.status, + event.node.res.statusCode + ); + } + if (response.statusText) { + event.node.res.statusMessage = sanitizeStatusMessage(response.statusText); + } + if (response.redirected) { + event.node.res.setHeader("location", response.url); + } + if (!response.body) { + event.node.res.end(); + return; + } + return sendStream(event, response.body); +} + +const PayloadMethods = /* @__PURE__ */ new Set(["PATCH", "POST", "PUT", "DELETE"]); +const ignoredHeaders = /* @__PURE__ */ new Set([ + "transfer-encoding", + "accept-encoding", + "connection", + "keep-alive", + "upgrade", + "expect", + "host", + "accept" +]); +async function proxyRequest(event, target, opts = {}) { + let body; + let duplex; + if (PayloadMethods.has(event.method)) { + if (opts.streamRequest) { + body = getRequestWebStream(event); + duplex = "half"; + } else { + body = await readRawBody(event, false).catch(() => void 0); + } + } + const method = opts.fetchOptions?.method || event.method; + const fetchHeaders = mergeHeaders$1( + getProxyRequestHeaders(event, { host: target.startsWith("/") }), + opts.fetchOptions?.headers, + opts.headers + ); + return sendProxy(event, target, { + ...opts, + fetchOptions: { + method, + body, + duplex, + ...opts.fetchOptions, + headers: fetchHeaders + } + }); +} +async function sendProxy(event, target, opts = {}) { + let response; + try { + response = await _getFetch(opts.fetch)(target, { + headers: opts.headers, + ignoreResponseError: true, + // make $ofetch.raw transparent + ...opts.fetchOptions + }); + } catch (error) { + throw createError$1({ + status: 502, + statusMessage: "Bad Gateway", + cause: error + }); + } + event.node.res.statusCode = sanitizeStatusCode( + response.status, + event.node.res.statusCode + ); + event.node.res.statusMessage = sanitizeStatusMessage(response.statusText); + const cookies = []; + for (const [key, value] of response.headers.entries()) { + if (key === "content-encoding") { + continue; + } + if (key === "content-length") { + continue; + } + if (key === "set-cookie") { + cookies.push(...splitCookiesString(value)); + continue; + } + event.node.res.setHeader(key, value); + } + if (cookies.length > 0) { + event.node.res.setHeader( + "set-cookie", + cookies.map((cookie) => { + if (opts.cookieDomainRewrite) { + cookie = rewriteCookieProperty( + cookie, + opts.cookieDomainRewrite, + "domain" + ); + } + if (opts.cookiePathRewrite) { + cookie = rewriteCookieProperty( + cookie, + opts.cookiePathRewrite, + "path" + ); + } + return cookie; + }) + ); + } + if (opts.onResponse) { + await opts.onResponse(event, response); + } + if (response._data !== void 0) { + return response._data; + } + if (event.handled) { + return; + } + if (opts.sendStream === false) { + const data = new Uint8Array(await response.arrayBuffer()); + return event.node.res.end(data); + } + if (response.body) { + for await (const chunk of response.body) { + event.node.res.write(chunk); + } + } + return event.node.res.end(); +} +function getProxyRequestHeaders(event, opts) { + const headers = /* @__PURE__ */ Object.create(null); + const reqHeaders = getRequestHeaders(event); + for (const name in reqHeaders) { + if (!ignoredHeaders.has(name) || name === "host" && opts?.host) { + headers[name] = reqHeaders[name]; + } + } + return headers; +} +function fetchWithEvent(event, req, init, options) { + return _getFetch(options?.fetch)(req, { + ...init, + context: init?.context || event.context, + headers: { + ...getProxyRequestHeaders(event, { + host: typeof req === "string" && req.startsWith("/") + }), + ...init?.headers + } + }); +} +function _getFetch(_fetch) { + if (_fetch) { + return _fetch; + } + if (globalThis.fetch) { + return globalThis.fetch; + } + throw new Error( + "fetch is not available. Try importing `node-fetch-native/polyfill` for Node.js." + ); +} +function rewriteCookieProperty(header, map, property) { + const _map = typeof map === "string" ? { "*": map } : map; + return header.replace( + new RegExp(`(;\\s*${property}=)([^;]+)`, "gi"), + (match, prefix, previousValue) => { + let newValue; + if (previousValue in _map) { + newValue = _map[previousValue]; + } else if ("*" in _map) { + newValue = _map["*"]; + } else { + return match; + } + return newValue ? prefix + newValue : ""; + } + ); +} +function mergeHeaders$1(defaults, ...inputs) { + const _inputs = inputs.filter(Boolean); + if (_inputs.length === 0) { + return defaults; + } + const merged = new Headers(defaults); + for (const input of _inputs) { + const entries = Array.isArray(input) ? input : typeof input.entries === "function" ? input.entries() : Object.entries(input); + for (const [key, value] of entries) { + if (value !== void 0) { + merged.set(key, value); + } + } + } + return merged; +} + +class H3Event { + "__is_event__" = true; + // Context + node; + // Node + web; + // Web + context = {}; + // Shared + // Request + _method; + _path; + _headers; + _requestBody; + // Response + _handled = false; + // Hooks + _onBeforeResponseCalled; + _onAfterResponseCalled; + constructor(req, res) { + this.node = { req, res }; + } + // --- Request --- + get method() { + if (!this._method) { + this._method = (this.node.req.method || "GET").toUpperCase(); + } + return this._method; + } + get path() { + return this._path || this.node.req.url || "/"; + } + get headers() { + if (!this._headers) { + this._headers = _normalizeNodeHeaders(this.node.req.headers); + } + return this._headers; + } + // --- Respoonse --- + get handled() { + return this._handled || this.node.res.writableEnded || this.node.res.headersSent; + } + respondWith(response) { + return Promise.resolve(response).then( + (_response) => sendWebResponse(this, _response) + ); + } + // --- Utils --- + toString() { + return `[${this.method}] ${this.path}`; + } + toJSON() { + return this.toString(); + } + // --- Deprecated --- + /** @deprecated Please use `event.node.req` instead. */ + get req() { + return this.node.req; + } + /** @deprecated Please use `event.node.res` instead. */ + get res() { + return this.node.res; + } +} +function isEvent(input) { + return hasProp(input, "__is_event__"); +} +function createEvent(req, res) { + return new H3Event(req, res); +} +function _normalizeNodeHeaders(nodeHeaders) { + const headers = new Headers(); + for (const [name, value] of Object.entries(nodeHeaders)) { + if (Array.isArray(value)) { + for (const item of value) { + headers.append(name, item); + } + } else if (value) { + headers.set(name, value); + } + } + return headers; +} + +function defineEventHandler(handler) { + if (typeof handler === "function") { + handler.__is_handler__ = true; + return handler; + } + const _hooks = { + onRequest: _normalizeArray(handler.onRequest), + onBeforeResponse: _normalizeArray(handler.onBeforeResponse) + }; + const _handler = (event) => { + return _callHandler(event, handler.handler, _hooks); + }; + _handler.__is_handler__ = true; + _handler.__resolve__ = handler.handler.__resolve__; + _handler.__websocket__ = handler.websocket; + return _handler; +} +function _normalizeArray(input) { + return input ? Array.isArray(input) ? input : [input] : void 0; +} +async function _callHandler(event, handler, hooks) { + if (hooks.onRequest) { + for (const hook of hooks.onRequest) { + await hook(event); + if (event.handled) { + return; + } + } + } + const body = await handler(event); + const response = { body }; + if (hooks.onBeforeResponse) { + for (const hook of hooks.onBeforeResponse) { + await hook(event, response); + } + } + return response.body; +} +const eventHandler = defineEventHandler; +function isEventHandler(input) { + return hasProp(input, "__is_handler__"); +} +function toEventHandler(input, _, _route) { + return input; +} +function defineLazyEventHandler(factory) { + let _promise; + let _resolved; + const resolveHandler = () => { + if (_resolved) { + return Promise.resolve(_resolved); + } + if (!_promise) { + _promise = Promise.resolve(factory()).then((r) => { + const handler2 = r.default || r; + if (typeof handler2 !== "function") { + throw new TypeError( + "Invalid lazy handler result. It should be a function:", + handler2 + ); + } + _resolved = { handler: toEventHandler(r.default || r) }; + return _resolved; + }); + } + return _promise; + }; + const handler = eventHandler((event) => { + if (_resolved) { + return _resolved.handler(event); + } + return resolveHandler().then((r) => r.handler(event)); + }); + handler.__resolve__ = resolveHandler; + return handler; +} +const lazyEventHandler = defineLazyEventHandler; + +function createApp(options = {}) { + const stack = []; + const handler = createAppEventHandler(stack, options); + const resolve = createResolver(stack); + handler.__resolve__ = resolve; + const getWebsocket = cachedFn(() => websocketOptions(resolve, options)); + const app = { + // @ts-expect-error + use: (arg1, arg2, arg3) => use(app, arg1, arg2, arg3), + resolve, + handler, + stack, + options, + get websocket() { + return getWebsocket(); + } + }; + return app; +} +function use(app, arg1, arg2, arg3) { + if (Array.isArray(arg1)) { + for (const i of arg1) { + use(app, i, arg2, arg3); + } + } else if (Array.isArray(arg2)) { + for (const i of arg2) { + use(app, arg1, i, arg3); + } + } else if (typeof arg1 === "string") { + app.stack.push( + normalizeLayer({ ...arg3, route: arg1, handler: arg2 }) + ); + } else if (typeof arg1 === "function") { + app.stack.push(normalizeLayer({ ...arg2, handler: arg1 })); + } else { + app.stack.push(normalizeLayer({ ...arg1 })); + } + return app; +} +function createAppEventHandler(stack, options) { + const spacing = options.debug ? 2 : void 0; + return eventHandler(async (event) => { + event.node.req.originalUrl = event.node.req.originalUrl || event.node.req.url || "/"; + const _rawReqUrl = event.node.req.url || "/"; + const _reqPath = _decodePath(event._path || _rawReqUrl); + event._path = _reqPath; + const _needsRawUrl = _reqPath !== _rawReqUrl; + let _layerPath; + if (options.onRequest) { + await options.onRequest(event); + } + for (const layer of stack) { + if (layer.route.length > 1) { + if (!_reqPath.startsWith(layer.route)) { + continue; + } + _layerPath = _reqPath.slice(layer.route.length) || "/"; + } else { + _layerPath = _reqPath; + } + if (layer.match && !layer.match(_layerPath, event)) { + continue; + } + event._path = _layerPath; + event.node.req.url = _needsRawUrl ? layer.route.length > 1 ? _rawReqUrl.slice(layer.route.length) || "/" : _rawReqUrl : _layerPath; + const val = await layer.handler(event); + const _body = val === void 0 ? void 0 : await val; + if (_body !== void 0) { + const _response = { body: _body }; + if (options.onBeforeResponse) { + event._onBeforeResponseCalled = true; + await options.onBeforeResponse(event, _response); + } + await handleHandlerResponse(event, _response.body, spacing); + if (options.onAfterResponse) { + event._onAfterResponseCalled = true; + await options.onAfterResponse(event, _response); + } + return; + } + if (event.handled) { + if (options.onAfterResponse) { + event._onAfterResponseCalled = true; + await options.onAfterResponse(event, void 0); + } + return; + } + } + if (!event.handled) { + throw createError$1({ + statusCode: 404, + statusMessage: `Cannot find any path matching ${event.path || "/"}.` + }); + } + if (options.onAfterResponse) { + event._onAfterResponseCalled = true; + await options.onAfterResponse(event, void 0); + } + }); +} +function createResolver(stack) { + return async (path) => { + let _layerPath; + for (const layer of stack) { + if (layer.route === "/" && !layer.handler.__resolve__) { + continue; + } + if (!path.startsWith(layer.route)) { + continue; + } + _layerPath = path.slice(layer.route.length) || "/"; + if (layer.match && !layer.match(_layerPath, void 0)) { + continue; + } + let res = { route: layer.route, handler: layer.handler }; + if (res.handler.__resolve__) { + const _res = await res.handler.__resolve__(_layerPath); + if (!_res) { + continue; + } + res = { + ...res, + ..._res, + route: joinURL(res.route || "/", _res.route || "/") + }; + } + return res; + } + }; +} +function normalizeLayer(input) { + let handler = input.handler; + if (handler.handler) { + handler = handler.handler; + } + if (input.lazy) { + handler = lazyEventHandler(handler); + } else if (!isEventHandler(handler)) { + handler = toEventHandler(handler, void 0, input.route); + } + return { + route: withoutTrailingSlash(input.route), + match: input.match, + handler + }; +} +function handleHandlerResponse(event, val, jsonSpace) { + if (val === null) { + return sendNoContent(event); + } + if (val) { + if (isWebResponse(val)) { + return sendWebResponse(event, val); + } + if (isStream(val)) { + return sendStream(event, val); + } + if (val.buffer) { + return send(event, val); + } + if (val.arrayBuffer && typeof val.arrayBuffer === "function") { + return val.arrayBuffer().then((arrayBuffer) => { + return send(event, Buffer.from(arrayBuffer), val.type); + }); + } + if (val instanceof Error) { + throw createError$1(val); + } + if (typeof val.end === "function") { + return true; + } + } + const valType = typeof val; + if (valType === "string") { + return send(event, val, MIMES.html); + } + if (valType === "object" || valType === "boolean" || valType === "number") { + return send(event, JSON.stringify(val, void 0, jsonSpace), MIMES.json); + } + if (valType === "bigint") { + return send(event, val.toString(), MIMES.json); + } + throw createError$1({ + statusCode: 500, + statusMessage: `[h3] Cannot send ${valType} as response.` + }); +} +function cachedFn(fn) { + let cache; + return () => { + if (!cache) { + cache = fn(); + } + return cache; + }; +} +function _decodePath(url) { + const qIndex = url.indexOf("?"); + const path = qIndex === -1 ? url : url.slice(0, qIndex); + const query = qIndex === -1 ? "" : url.slice(qIndex); + const decodedPath = path.includes("%25") ? decodePath(path.replace(/%25/g, "%2525")) : decodePath(path); + return decodedPath + query; +} +function websocketOptions(evResolver, appOptions) { + return { + ...appOptions.websocket, + async resolve(info) { + const url = info.request?.url || info.url || "/"; + const { pathname } = typeof url === "string" ? parseURL(url) : url; + const resolved = await evResolver(pathname); + return resolved?.handler?.__websocket__ || {}; + } + }; +} + +const RouterMethods = [ + "connect", + "delete", + "get", + "head", + "options", + "post", + "put", + "trace", + "patch" +]; +function createRouter(opts = {}) { + const _router = createRouter$1({}); + const routes = {}; + let _matcher; + const router = {}; + const addRoute = (path, handler, method) => { + let route = routes[path]; + if (!route) { + routes[path] = route = { path, handlers: {} }; + _router.insert(path, route); + } + if (Array.isArray(method)) { + for (const m of method) { + addRoute(path, handler, m); + } + } else { + route.handlers[method] = toEventHandler(handler); + } + return router; + }; + router.use = router.add = (path, handler, method) => addRoute(path, handler, method || "all"); + for (const method of RouterMethods) { + router[method] = (path, handle) => router.add(path, handle, method); + } + const matchHandler = (path = "/", method = "get") => { + const qIndex = path.indexOf("?"); + if (qIndex !== -1) { + path = path.slice(0, Math.max(0, qIndex)); + } + const matched = _router.lookup(path); + if (!matched || !matched.handlers) { + return { + error: createError$1({ + statusCode: 404, + name: "Not Found", + statusMessage: `Cannot find any route matching ${path || "/"}.` + }) + }; + } + let handler = matched.handlers[method] || matched.handlers.all; + if (!handler) { + if (!_matcher) { + _matcher = toRouteMatcher(_router); + } + const _matches = _matcher.matchAll(path).reverse(); + for (const _match of _matches) { + if (_match.handlers[method]) { + handler = _match.handlers[method]; + matched.handlers[method] = matched.handlers[method] || handler; + break; + } + if (_match.handlers.all) { + handler = _match.handlers.all; + matched.handlers.all = matched.handlers.all || handler; + break; + } + } + } + if (!handler) { + return { + error: createError$1({ + statusCode: 405, + name: "Method Not Allowed", + statusMessage: `Method ${method} is not allowed on this route.` + }) + }; + } + return { matched, handler }; + }; + const isPreemptive = opts.preemptive || opts.preemtive; + router.handler = eventHandler((event) => { + const match = matchHandler( + event.path, + event.method.toLowerCase() + ); + if ("error" in match) { + if (isPreemptive) { + throw match.error; + } else { + return; + } + } + event.context.matchedRoute = match.matched; + const params = match.matched.params || {}; + event.context.params = params; + return Promise.resolve(match.handler(event)).then((res) => { + if (res === void 0 && isPreemptive) { + return null; + } + return res; + }); + }); + router.handler.__resolve__ = async (path) => { + path = withLeadingSlash(path); + const match = matchHandler(path); + if ("error" in match) { + return; + } + let res = { + route: match.matched.path, + handler: match.handler + }; + if (match.handler.__resolve__) { + const _res = await match.handler.__resolve__(path); + if (!_res) { + return; + } + res = { ...res, ..._res }; + } + return res; + }; + return router; +} +function toNodeListener(app) { + const toNodeHandle = async function(req, res) { + const event = createEvent(req, res); + try { + await app.handler(event); + } catch (_error) { + const error = createError$1(_error); + if (!isError(_error)) { + error.unhandled = true; + } + setResponseStatus(event, error.statusCode, error.statusMessage); + if (app.options.onError) { + await app.options.onError(error, event); + } + if (event.handled) { + return; + } + if (error.unhandled || error.fatal) { + console.error("[h3]", error.fatal ? "[fatal]" : "[unhandled]", error); + } + if (app.options.onBeforeResponse && !event._onBeforeResponseCalled) { + await app.options.onBeforeResponse(event, { body: error }); + } + await sendError(event, error, !!app.options.debug); + if (app.options.onAfterResponse && !event._onAfterResponseCalled) { + await app.options.onAfterResponse(event, { body: error }); + } + } + }; + return toNodeHandle; +} + +function flatHooks(configHooks, hooks = {}, parentName) { + for (const key in configHooks) { + const subHook = configHooks[key]; + const name = parentName ? `${parentName}:${key}` : key; + if (typeof subHook === "object" && subHook !== null) { + flatHooks(subHook, hooks, name); + } else if (typeof subHook === "function") { + hooks[name] = subHook; + } + } + return hooks; +} +const defaultTask = { run: (function_) => function_() }; +const _createTask = () => defaultTask; +const createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask; +function serialTaskCaller(hooks, args) { + const name = args.shift(); + const task = createTask(name); + return hooks.reduce( + (promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))), + Promise.resolve() + ); +} +function parallelTaskCaller(hooks, args) { + const name = args.shift(); + const task = createTask(name); + return Promise.all(hooks.map((hook) => task.run(() => hook(...args)))); +} +function callEachWith(callbacks, arg0) { + for (const callback of [...callbacks]) { + callback(arg0); + } +} + +class Hookable { + constructor() { + this._hooks = {}; + this._before = void 0; + this._after = void 0; + this._deprecatedMessages = void 0; + this._deprecatedHooks = {}; + this.hook = this.hook.bind(this); + this.callHook = this.callHook.bind(this); + this.callHookWith = this.callHookWith.bind(this); + } + hook(name, function_, options = {}) { + if (!name || typeof function_ !== "function") { + return () => { + }; + } + const originalName = name; + let dep; + while (this._deprecatedHooks[name]) { + dep = this._deprecatedHooks[name]; + name = dep.to; + } + if (dep && !options.allowDeprecated) { + let message = dep.message; + if (!message) { + message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : ""); + } + if (!this._deprecatedMessages) { + this._deprecatedMessages = /* @__PURE__ */ new Set(); + } + if (!this._deprecatedMessages.has(message)) { + console.warn(message); + this._deprecatedMessages.add(message); + } + } + if (!function_.name) { + try { + Object.defineProperty(function_, "name", { + get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb", + configurable: true + }); + } catch { + } + } + this._hooks[name] = this._hooks[name] || []; + this._hooks[name].push(function_); + return () => { + if (function_) { + this.removeHook(name, function_); + function_ = void 0; + } + }; + } + hookOnce(name, function_) { + let _unreg; + let _function = (...arguments_) => { + if (typeof _unreg === "function") { + _unreg(); + } + _unreg = void 0; + _function = void 0; + return function_(...arguments_); + }; + _unreg = this.hook(name, _function); + return _unreg; + } + removeHook(name, function_) { + if (this._hooks[name]) { + const index = this._hooks[name].indexOf(function_); + if (index !== -1) { + this._hooks[name].splice(index, 1); + } + if (this._hooks[name].length === 0) { + delete this._hooks[name]; + } + } + } + deprecateHook(name, deprecated) { + this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated; + const _hooks = this._hooks[name] || []; + delete this._hooks[name]; + for (const hook of _hooks) { + this.hook(name, hook); + } + } + deprecateHooks(deprecatedHooks) { + Object.assign(this._deprecatedHooks, deprecatedHooks); + for (const name in deprecatedHooks) { + this.deprecateHook(name, deprecatedHooks[name]); + } + } + addHooks(configHooks) { + const hooks = flatHooks(configHooks); + const removeFns = Object.keys(hooks).map( + (key) => this.hook(key, hooks[key]) + ); + return () => { + for (const unreg of removeFns.splice(0, removeFns.length)) { + unreg(); + } + }; + } + removeHooks(configHooks) { + const hooks = flatHooks(configHooks); + for (const key in hooks) { + this.removeHook(key, hooks[key]); + } + } + removeAllHooks() { + for (const key in this._hooks) { + delete this._hooks[key]; + } + } + callHook(name, ...arguments_) { + arguments_.unshift(name); + return this.callHookWith(serialTaskCaller, name, ...arguments_); + } + callHookParallel(name, ...arguments_) { + arguments_.unshift(name); + return this.callHookWith(parallelTaskCaller, name, ...arguments_); + } + callHookWith(caller, name, ...arguments_) { + const event = this._before || this._after ? { name, args: arguments_, context: {} } : void 0; + if (this._before) { + callEachWith(this._before, event); + } + const result = caller( + name in this._hooks ? [...this._hooks[name]] : [], + arguments_ + ); + if (result instanceof Promise) { + return result.finally(() => { + if (this._after && event) { + callEachWith(this._after, event); + } + }); + } + if (this._after && event) { + callEachWith(this._after, event); + } + return result; + } + beforeEach(function_) { + this._before = this._before || []; + this._before.push(function_); + return () => { + if (this._before !== void 0) { + const index = this._before.indexOf(function_); + if (index !== -1) { + this._before.splice(index, 1); + } + } + }; + } + afterEach(function_) { + this._after = this._after || []; + this._after.push(function_); + return () => { + if (this._after !== void 0) { + const index = this._after.indexOf(function_); + if (index !== -1) { + this._after.splice(index, 1); + } + } + }; + } +} +function createHooks() { + return new Hookable(); +} + +const s=globalThis.Headers,i=globalThis.AbortController,l=globalThis.fetch||(()=>{throw new Error("[node-fetch-native] Failed to fetch: `globalThis.fetch` is not available!")}); + +class FetchError extends Error { + constructor(message, opts) { + super(message, opts); + this.name = "FetchError"; + if (opts?.cause && !this.cause) { + this.cause = opts.cause; + } + } +} +function createFetchError(ctx) { + const errorMessage = ctx.error?.message || ctx.error?.toString() || ""; + const method = ctx.request?.method || ctx.options?.method || "GET"; + const url = ctx.request?.url || String(ctx.request) || "/"; + const requestStr = `[${method}] ${JSON.stringify(url)}`; + const statusStr = ctx.response ? `${ctx.response.status} ${ctx.response.statusText}` : ""; + const message = `${requestStr}: ${statusStr}${errorMessage ? ` ${errorMessage}` : ""}`; + const fetchError = new FetchError( + message, + ctx.error ? { cause: ctx.error } : void 0 + ); + for (const key of ["request", "options", "response"]) { + Object.defineProperty(fetchError, key, { + get() { + return ctx[key]; + } + }); + } + for (const [key, refKey] of [ + ["data", "_data"], + ["status", "status"], + ["statusCode", "status"], + ["statusText", "statusText"], + ["statusMessage", "statusText"] + ]) { + Object.defineProperty(fetchError, key, { + get() { + return ctx.response && ctx.response[refKey]; + } + }); + } + return fetchError; +} + +const payloadMethods = new Set( + Object.freeze(["PATCH", "POST", "PUT", "DELETE"]) +); +function isPayloadMethod(method = "GET") { + return payloadMethods.has(method.toUpperCase()); +} +function isJSONSerializable(value) { + if (value === void 0) { + return false; + } + const t = typeof value; + if (t === "string" || t === "number" || t === "boolean" || t === null) { + return true; + } + if (t !== "object") { + return false; + } + if (Array.isArray(value)) { + return true; + } + if (value.buffer) { + return false; + } + if (value instanceof FormData || value instanceof URLSearchParams) { + return false; + } + return value.constructor && value.constructor.name === "Object" || typeof value.toJSON === "function"; +} +const textTypes = /* @__PURE__ */ new Set([ + "image/svg", + "application/xml", + "application/xhtml", + "application/html" +]); +const JSON_RE = /^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i; +function detectResponseType(_contentType = "") { + if (!_contentType) { + return "json"; + } + const contentType = _contentType.split(";").shift() || ""; + if (JSON_RE.test(contentType)) { + return "json"; + } + if (contentType === "text/event-stream") { + return "stream"; + } + if (textTypes.has(contentType) || contentType.startsWith("text/")) { + return "text"; + } + return "blob"; +} +function resolveFetchOptions(request, input, defaults, Headers) { + const headers = mergeHeaders( + input?.headers ?? request?.headers, + defaults?.headers, + Headers + ); + let query; + if (defaults?.query || defaults?.params || input?.params || input?.query) { + query = { + ...defaults?.params, + ...defaults?.query, + ...input?.params, + ...input?.query + }; + } + return { + ...defaults, + ...input, + query, + params: query, + headers + }; +} +function mergeHeaders(input, defaults, Headers) { + if (!defaults) { + return new Headers(input); + } + const headers = new Headers(defaults); + if (input) { + for (const [key, value] of Symbol.iterator in input || Array.isArray(input) ? input : new Headers(input)) { + headers.set(key, value); + } + } + return headers; +} +async function callHooks(context, hooks) { + if (hooks) { + if (Array.isArray(hooks)) { + for (const hook of hooks) { + await hook(context); + } + } else { + await hooks(context); + } + } +} + +const retryStatusCodes = /* @__PURE__ */ new Set([ + 408, + // Request Timeout + 409, + // Conflict + 425, + // Too Early (Experimental) + 429, + // Too Many Requests + 500, + // Internal Server Error + 502, + // Bad Gateway + 503, + // Service Unavailable + 504 + // Gateway Timeout +]); +const nullBodyResponses = /* @__PURE__ */ new Set([101, 204, 205, 304]); +function createFetch(globalOptions = {}) { + const { + fetch = globalThis.fetch, + Headers = globalThis.Headers, + AbortController = globalThis.AbortController + } = globalOptions; + async function onError(context) { + const isAbort = context.error && context.error.name === "AbortError" && !context.options.timeout || false; + if (context.options.retry !== false && !isAbort) { + let retries; + if (typeof context.options.retry === "number") { + retries = context.options.retry; + } else { + retries = isPayloadMethod(context.options.method) ? 0 : 1; + } + const responseCode = context.response && context.response.status || 500; + if (retries > 0 && (Array.isArray(context.options.retryStatusCodes) ? context.options.retryStatusCodes.includes(responseCode) : retryStatusCodes.has(responseCode))) { + const retryDelay = typeof context.options.retryDelay === "function" ? context.options.retryDelay(context) : context.options.retryDelay || 0; + if (retryDelay > 0) { + await new Promise((resolve) => setTimeout(resolve, retryDelay)); + } + return $fetchRaw(context.request, { + ...context.options, + retry: retries - 1 + }); + } + } + const error = createFetchError(context); + if (Error.captureStackTrace) { + Error.captureStackTrace(error, $fetchRaw); + } + throw error; + } + const $fetchRaw = async function $fetchRaw2(_request, _options = {}) { + const context = { + request: _request, + options: resolveFetchOptions( + _request, + _options, + globalOptions.defaults, + Headers + ), + response: void 0, + error: void 0 + }; + if (context.options.method) { + context.options.method = context.options.method.toUpperCase(); + } + if (context.options.onRequest) { + await callHooks(context, context.options.onRequest); + if (!(context.options.headers instanceof Headers)) { + context.options.headers = new Headers( + context.options.headers || {} + /* compat */ + ); + } + } + if (typeof context.request === "string") { + if (context.options.baseURL) { + context.request = withBase(context.request, context.options.baseURL); + } + if (context.options.query) { + context.request = withQuery(context.request, context.options.query); + delete context.options.query; + } + if ("query" in context.options) { + delete context.options.query; + } + if ("params" in context.options) { + delete context.options.params; + } + } + if (context.options.body && isPayloadMethod(context.options.method)) { + if (isJSONSerializable(context.options.body)) { + const contentType = context.options.headers.get("content-type"); + if (typeof context.options.body !== "string") { + context.options.body = contentType === "application/x-www-form-urlencoded" ? new URLSearchParams( + context.options.body + ).toString() : JSON.stringify(context.options.body); + } + if (!contentType) { + context.options.headers.set("content-type", "application/json"); + } + if (!context.options.headers.has("accept")) { + context.options.headers.set("accept", "application/json"); + } + } else if ( + // ReadableStream Body + "pipeTo" in context.options.body && typeof context.options.body.pipeTo === "function" || // Node.js Stream Body + typeof context.options.body.pipe === "function" + ) { + if (!("duplex" in context.options)) { + context.options.duplex = "half"; + } + } + } + let abortTimeout; + if (!context.options.signal && context.options.timeout) { + const controller = new AbortController(); + abortTimeout = setTimeout(() => { + const error = new Error( + "[TimeoutError]: The operation was aborted due to timeout" + ); + error.name = "TimeoutError"; + error.code = 23; + controller.abort(error); + }, context.options.timeout); + context.options.signal = controller.signal; + } + try { + context.response = await fetch( + context.request, + context.options + ); + } catch (error) { + context.error = error; + if (context.options.onRequestError) { + await callHooks( + context, + context.options.onRequestError + ); + } + return await onError(context); + } finally { + if (abortTimeout) { + clearTimeout(abortTimeout); + } + } + const hasBody = (context.response.body || // https://github.com/unjs/ofetch/issues/324 + // https://github.com/unjs/ofetch/issues/294 + // https://github.com/JakeChampion/fetch/issues/1454 + context.response._bodyInit) && !nullBodyResponses.has(context.response.status) && context.options.method !== "HEAD"; + if (hasBody) { + const responseType = (context.options.parseResponse ? "json" : context.options.responseType) || detectResponseType(context.response.headers.get("content-type") || ""); + switch (responseType) { + case "json": { + const data = await context.response.text(); + const parseFunction = context.options.parseResponse || destr; + context.response._data = parseFunction(data); + break; + } + case "stream": { + context.response._data = context.response.body || context.response._bodyInit; + break; + } + default: { + context.response._data = await context.response[responseType](); + } + } + } + if (context.options.onResponse) { + await callHooks( + context, + context.options.onResponse + ); + } + if (!context.options.ignoreResponseError && context.response.status >= 400 && context.response.status < 600) { + if (context.options.onResponseError) { + await callHooks( + context, + context.options.onResponseError + ); + } + return await onError(context); + } + return context.response; + }; + const $fetch = async function $fetch2(request, options) { + const r = await $fetchRaw(request, options); + return r._data; + }; + $fetch.raw = $fetchRaw; + $fetch.native = (...args) => fetch(...args); + $fetch.create = (defaultOptions = {}, customGlobalOptions = {}) => createFetch({ + ...globalOptions, + ...customGlobalOptions, + defaults: { + ...globalOptions.defaults, + ...customGlobalOptions.defaults, + ...defaultOptions + } + }); + return $fetch; +} + +function createNodeFetch() { + const useKeepAlive = JSON.parse(process.env.FETCH_KEEP_ALIVE || "false"); + if (!useKeepAlive) { + return l; + } + const agentOptions = { keepAlive: true }; + const httpAgent = new Bt.Agent(agentOptions); + const httpsAgent = new zs.Agent(agentOptions); + const nodeFetchOptions = { + agent(parsedURL) { + return parsedURL.protocol === "http:" ? httpAgent : httpsAgent; + } + }; + return function nodeFetchWithKeepAlive(input, init) { + return l(input, { ...nodeFetchOptions, ...init }); + }; +} +const fetch = globalThis.fetch ? (...args) => globalThis.fetch(...args) : createNodeFetch(); +const Headers$1 = globalThis.Headers || s; +const AbortController = globalThis.AbortController || i; +createFetch({ fetch, Headers: Headers$1, AbortController }); + +function wrapToPromise(value) { + if (!value || typeof value.then !== "function") { + return Promise.resolve(value); + } + return value; +} +function asyncCall(function_, ...arguments_) { + try { + return wrapToPromise(function_(...arguments_)); + } catch (error) { + return Promise.reject(error); + } +} +function isPrimitive(value) { + const type = typeof value; + return value === null || type !== "object" && type !== "function"; +} +function isPureObject(value) { + const proto = Object.getPrototypeOf(value); + return !proto || proto.isPrototypeOf(Object); +} +function stringify(value) { + if (isPrimitive(value)) { + return String(value); + } + if (isPureObject(value) || Array.isArray(value)) { + return JSON.stringify(value); + } + if (typeof value.toJSON === "function") { + return stringify(value.toJSON()); + } + throw new Error("[unstorage] Cannot stringify value!"); +} +const BASE64_PREFIX = "base64:"; +function serializeRaw(value) { + if (typeof value === "string") { + return value; + } + return BASE64_PREFIX + base64Encode(value); +} +function deserializeRaw(value) { + if (typeof value !== "string") { + return value; + } + if (!value.startsWith(BASE64_PREFIX)) { + return value; + } + return base64Decode(value.slice(BASE64_PREFIX.length)); +} +function base64Decode(input) { + if (globalThis.Buffer) { + return Buffer.from(input, "base64"); + } + return Uint8Array.from( + globalThis.atob(input), + (c) => c.codePointAt(0) + ); +} +function base64Encode(input) { + if (globalThis.Buffer) { + return Buffer.from(input).toString("base64"); + } + return globalThis.btoa(String.fromCodePoint(...input)); +} + +const storageKeyProperties = [ + "has", + "hasItem", + "get", + "getItem", + "getItemRaw", + "set", + "setItem", + "setItemRaw", + "del", + "remove", + "removeItem", + "getMeta", + "setMeta", + "removeMeta", + "getKeys", + "clear", + "mount", + "unmount" +]; +const nonItemKeyProperties = /* @__PURE__ */ new Set([ + "getKeys", + "clear", + "mount", + "unmount" +]); +function prefixStorage(storage, base) { + if (base?.includes("?")) { + throw new Error(`[unstorage] Invalid base: ${JSON.stringify(base)}`); + } + base = normalizeBaseKey(base); + if (!base) { + return storage; + } + const itemKey = (key) => { + if (!normalizeKey$1(key)) { + throw new Error(`[unstorage] Invalid key: ${JSON.stringify(key)}`); + } + return base + key; + }; + const nsStorage = { ...storage }; + for (const property of storageKeyProperties) { + nsStorage[property] = nonItemKeyProperties.has(property) ? (key = "", ...args) => ( + // @ts-ignore + storage[property](base + key, ...args) + ) : async (key = "", ...args) => ( + // @ts-ignore + storage[property](itemKey(key), ...args) + ); + } + nsStorage.getKeys = (key = "", ...arguments_) => storage.getKeys(base + key, ...arguments_).then((keys) => keys.map((key2) => key2.slice(base.length))); + nsStorage.keys = nsStorage.getKeys; + nsStorage.getItems = async (items, commonOptions) => { + const prefixedItems = items.map( + (item) => typeof item === "string" ? itemKey(item) : { ...item, key: itemKey(item.key) } + ); + const results = await storage.getItems(prefixedItems, commonOptions); + return results.map((entry) => ({ + key: entry.key.slice(base.length), + value: entry.value + })); + }; + nsStorage.setItems = async (items, commonOptions) => { + const prefixedItems = items.map((item) => ({ + key: itemKey(item.key), + value: item.value, + options: item.options + })); + return storage.setItems(prefixedItems, commonOptions); + }; + return nsStorage; +} +function normalizeKey$1(key) { + if (!key) { + return ""; + } + return key.split("?")[0]?.replace(/[/\\]/g, ":").replace(/:+/g, ":").replace(/^:|:$/g, "") || ""; +} +function hasDotSegment(key) { + return key.split(":").some((segment) => segment === "." || segment === ".."); +} +function joinKeys(...keys) { + return normalizeKey$1(keys.join(":")); +} +function normalizeBaseKey(base) { + base = normalizeKey$1(base); + return base ? base + ":" : ""; +} +function filterKeyByDepth(key, depth) { + if (depth === void 0) { + return true; + } + let substrCount = 0; + let index = key.indexOf(":"); + while (index > -1) { + substrCount++; + index = key.indexOf(":", index + 1); + } + return substrCount <= depth; +} +function filterKeyByBase(key, base) { + if (base) { + return key.startsWith(base) && key[key.length - 1] !== "$"; + } + return key[key.length - 1] !== "$"; +} + +function defineDriver$1(factory) { + return factory; +} + +const DRIVER_NAME$1 = "memory"; +const memory = defineDriver$1(() => { + const data = /* @__PURE__ */ new Map(); + return { + name: DRIVER_NAME$1, + getInstance: () => data, + hasItem(key) { + return data.has(key); + }, + getItem(key) { + return data.get(key) ?? null; + }, + getItemRaw(key) { + return data.get(key) ?? null; + }, + setItem(key, value) { + data.set(key, value); + }, + setItemRaw(key, value) { + data.set(key, value); + }, + removeItem(key) { + data.delete(key); + }, + getKeys() { + return [...data.keys()]; + }, + clear() { + data.clear(); + }, + dispose() { + data.clear(); + } + }; +}); + +function createStorage(options = {}) { + const context = { + mounts: { "": options.driver || memory() }, + mountpoints: [""], + watching: false, + watchListeners: [], + unwatch: {} + }; + const normalizeItemKey = (key) => { + const normalizedKey = normalizeKey$1(key); + if (!normalizedKey || hasDotSegment(normalizedKey)) { + throw new Error(`[unstorage] Invalid key: ${JSON.stringify(key)}`); + } + return normalizedKey; + }; + const normalizeBase = (base) => { + const normalizedBase = normalizeBaseKey(base); + if (hasDotSegment(normalizedBase)) { + throw new Error(`[unstorage] Invalid base: ${JSON.stringify(base)}`); + } + return normalizedBase; + }; + const getMount = (key) => { + for (const base of context.mountpoints) { + if (key.startsWith(base)) { + return { + base, + relativeKey: key.slice(base.length), + driver: context.mounts[base] + }; + } + } + return { + base: "", + relativeKey: key, + driver: context.mounts[""] + }; + }; + const getMounts = (base, includeParent) => { + return context.mountpoints.filter( + (mountpoint) => mountpoint.startsWith(base) || includeParent && base.startsWith(mountpoint) + ).map((mountpoint) => ({ + relativeBase: base.length > mountpoint.length ? base.slice(mountpoint.length) : void 0, + mountpoint, + driver: context.mounts[mountpoint] + })); + }; + const onChange = (event, key) => { + if (!context.watching) { + return; + } + key = normalizeKey$1(key); + for (const listener of context.watchListeners) { + listener(event, key); + } + }; + const startWatch = async () => { + if (context.watching) { + return; + } + context.watching = true; + for (const mountpoint in context.mounts) { + context.unwatch[mountpoint] = await watch( + context.mounts[mountpoint], + onChange, + mountpoint + ); + } + }; + const stopWatch = async () => { + if (!context.watching) { + return; + } + for (const mountpoint in context.unwatch) { + await context.unwatch[mountpoint](); + } + context.unwatch = {}; + context.watching = false; + }; + const runBatch = (items, commonOptions, cb) => { + const batches = /* @__PURE__ */ new Map(); + const getBatch = (mount) => { + let batch = batches.get(mount.base); + if (!batch) { + batch = { + driver: mount.driver, + base: mount.base, + items: [] + }; + batches.set(mount.base, batch); + } + return batch; + }; + for (const item of items) { + const isStringItem = typeof item === "string"; + const key = normalizeItemKey(isStringItem ? item : item.key); + const value = isStringItem ? void 0 : item.value; + const options2 = isStringItem || !item.options ? commonOptions : { ...commonOptions, ...item.options }; + const mount = getMount(key); + getBatch(mount).items.push({ + key, + value, + relativeKey: mount.relativeKey, + options: options2 + }); + } + return Promise.all([...batches.values()].map((batch) => cb(batch))).then( + (r) => r.flat() + ); + }; + const storage = { + // Item + async hasItem(key, opts = {}) { + key = normalizeItemKey(key); + const { relativeKey, driver } = getMount(key); + return asyncCall(driver.hasItem, relativeKey, opts); + }, + async getItem(key, opts = {}) { + key = normalizeItemKey(key); + const { relativeKey, driver } = getMount(key); + return asyncCall(driver.getItem, relativeKey, opts).then( + (value) => destr(value) + ); + }, + async getItems(items, commonOptions = {}) { + return runBatch(items, commonOptions, (batch) => { + if (batch.driver.getItems) { + return asyncCall( + batch.driver.getItems, + batch.items.map((item) => ({ + key: item.relativeKey, + options: item.options + })), + commonOptions + ).then( + (r) => r.map((item) => ({ + key: joinKeys(batch.base, item.key), + value: destr(item.value) + })) + ); + } + return Promise.all( + batch.items.map((item) => { + return asyncCall( + batch.driver.getItem, + item.relativeKey, + item.options + ).then((value) => ({ + key: item.key, + value: destr(value) + })); + }) + ); + }); + }, + async getItemRaw(key, opts = {}) { + key = normalizeItemKey(key); + const { relativeKey, driver } = getMount(key); + if (driver.getItemRaw) { + return asyncCall(driver.getItemRaw, relativeKey, opts); + } + return asyncCall(driver.getItem, relativeKey, opts).then( + (value) => deserializeRaw(value) + ); + }, + async setItem(key, value, opts = {}) { + if (value === void 0) { + return storage.removeItem(key); + } + key = normalizeItemKey(key); + const { relativeKey, driver } = getMount(key); + if (!driver.setItem) { + return; + } + await asyncCall(driver.setItem, relativeKey, stringify(value), opts); + if (!driver.watch) { + onChange("update", key); + } + }, + async setItems(items, commonOptions) { + await runBatch(items, commonOptions, async (batch) => { + if (batch.driver.setItems) { + return asyncCall( + batch.driver.setItems, + batch.items.map((item) => ({ + key: item.relativeKey, + value: stringify(item.value), + options: item.options + })), + commonOptions + ); + } + if (!batch.driver.setItem) { + return; + } + await Promise.all( + batch.items.map((item) => { + return asyncCall( + batch.driver.setItem, + item.relativeKey, + stringify(item.value), + item.options + ); + }) + ); + }); + }, + async setItemRaw(key, value, opts = {}) { + if (value === void 0) { + return storage.removeItem(key, opts); + } + key = normalizeItemKey(key); + const { relativeKey, driver } = getMount(key); + if (driver.setItemRaw) { + await asyncCall(driver.setItemRaw, relativeKey, value, opts); + } else if (driver.setItem) { + await asyncCall(driver.setItem, relativeKey, serializeRaw(value), opts); + } else { + return; + } + if (!driver.watch) { + onChange("update", key); + } + }, + async removeItem(key, opts = {}) { + if (typeof opts === "boolean") { + opts = { removeMeta: opts }; + } + key = normalizeItemKey(key); + const { relativeKey, driver } = getMount(key); + if (!driver.removeItem) { + return; + } + await asyncCall(driver.removeItem, relativeKey, opts); + if (opts.removeMeta || opts.removeMata) { + await asyncCall(driver.removeItem, relativeKey + "$", opts); + } + if (!driver.watch) { + onChange("remove", key); + } + }, + // Meta + async getMeta(key, opts = {}) { + if (typeof opts === "boolean") { + opts = { nativeOnly: opts }; + } + key = normalizeItemKey(key); + const { relativeKey, driver } = getMount(key); + const meta = /* @__PURE__ */ Object.create(null); + if (driver.getMeta) { + Object.assign(meta, await asyncCall(driver.getMeta, relativeKey, opts)); + } + if (!opts.nativeOnly) { + const value = await asyncCall( + driver.getItem, + relativeKey + "$", + opts + ).then((value_) => destr(value_)); + if (value && typeof value === "object") { + if (typeof value.atime === "string") { + value.atime = new Date(value.atime); + } + if (typeof value.mtime === "string") { + value.mtime = new Date(value.mtime); + } + Object.assign(meta, value); + } + } + return meta; + }, + async setMeta(key, value, opts = {}) { + return this.setItem(normalizeItemKey(key) + "$", value, opts); + }, + async removeMeta(key, opts = {}) { + return this.removeItem(normalizeItemKey(key) + "$", opts); + }, + // Keys + async getKeys(base, opts = {}) { + base = normalizeBase(base); + const mounts = getMounts(base, true); + let maskedMounts = []; + const allKeys = []; + let allMountsSupportMaxDepth = true; + for (const mount of mounts) { + if (!mount.driver.flags?.maxDepth) { + allMountsSupportMaxDepth = false; + } + const rawKeys = await asyncCall( + mount.driver.getKeys, + mount.relativeBase, + opts + ); + for (const key of rawKeys) { + const fullKey = mount.mountpoint + normalizeKey$1(key); + if (!maskedMounts.some((p) => fullKey.startsWith(p))) { + allKeys.push(fullKey); + } + } + maskedMounts = [ + mount.mountpoint, + ...maskedMounts.filter((p) => !p.startsWith(mount.mountpoint)) + ]; + } + const shouldFilterByDepth = opts.maxDepth !== void 0 && !allMountsSupportMaxDepth; + return allKeys.filter( + (key) => (!shouldFilterByDepth || filterKeyByDepth(key, opts.maxDepth)) && filterKeyByBase(key, base) + ); + }, + // Utils + async clear(base, opts = {}) { + base = normalizeBase(base); + await Promise.all( + getMounts(base, false).map(async (m) => { + if (m.driver.clear) { + return asyncCall(m.driver.clear, m.relativeBase, opts); + } + if (m.driver.removeItem) { + const keys = await m.driver.getKeys(m.relativeBase || "", opts); + return Promise.all( + keys.map((key) => m.driver.removeItem(key, opts)) + ); + } + }) + ); + }, + async dispose() { + await Promise.all( + Object.values(context.mounts).map((driver) => dispose(driver)) + ); + }, + async watch(callback) { + await startWatch(); + context.watchListeners.push(callback); + return async () => { + context.watchListeners = context.watchListeners.filter( + (listener) => listener !== callback + ); + if (context.watchListeners.length === 0) { + await stopWatch(); + } + }; + }, + async unwatch() { + context.watchListeners = []; + await stopWatch(); + }, + // Mount + mount(base, driver) { + base = normalizeBase(base); + if (base && context.mounts[base]) { + throw new Error(`already mounted at ${base}`); + } + if (base) { + context.mountpoints.push(base); + context.mountpoints.sort((a, b) => b.length - a.length); + } + context.mounts[base] = driver; + if (context.watching) { + Promise.resolve(watch(driver, onChange, base)).then((unwatcher) => { + context.unwatch[base] = unwatcher; + }).catch(console.error); + } + return storage; + }, + async unmount(base, _dispose = true) { + base = normalizeBaseKey(base); + if (!base || !context.mounts[base]) { + return; + } + if (context.watching && base in context.unwatch) { + context.unwatch[base]?.(); + delete context.unwatch[base]; + } + if (_dispose) { + await dispose(context.mounts[base]); + } + context.mountpoints = context.mountpoints.filter((key) => key !== base); + delete context.mounts[base]; + }, + getMount(key = "") { + key = normalizeKey$1(key) + ":"; + const m = getMount(key); + return { + driver: m.driver, + base: m.base + }; + }, + getMounts(base = "", opts = {}) { + base = normalizeKey$1(base); + const mounts = getMounts(base, opts.parents); + return mounts.map((m) => ({ + driver: m.driver, + base: m.mountpoint + })); + }, + // Aliases + keys: (base, opts = {}) => storage.getKeys(base, opts), + get: (key, opts = {}) => storage.getItem(key, opts), + set: (key, value, opts = {}) => storage.setItem(key, value, opts), + has: (key, opts = {}) => storage.hasItem(key, opts), + del: (key, opts = {}) => storage.removeItem(key, opts), + remove: (key, opts = {}) => storage.removeItem(key, opts) + }; + return storage; +} +function watch(driver, onChange, base) { + return driver.watch ? driver.watch((event, key) => onChange(event, base + key)) : () => { + }; +} +async function dispose(driver) { + if (typeof driver.dispose === "function") { + await asyncCall(driver.dispose); + } +} + +const _assets = { + +}; + +const normalizeKey = function normalizeKey(key) { + if (!key) { + return ""; + } + return key.split("?")[0]?.replace(/[/\\]/g, ":").replace(/:+/g, ":").replace(/^:|:$/g, "") || ""; +}; + +const assets$1 = { + getKeys() { + return Promise.resolve(Object.keys(_assets)) + }, + hasItem (id) { + id = normalizeKey(id); + return Promise.resolve(id in _assets) + }, + getItem (id) { + id = normalizeKey(id); + return Promise.resolve(_assets[id] ? _assets[id].import() : null) + }, + getMeta (id) { + id = normalizeKey(id); + return Promise.resolve(_assets[id] ? _assets[id].meta : {}) + } +}; + +function defineDriver(factory) { + return factory; +} +function createError(driver, message, opts) { + const err = new Error(`[unstorage] [${driver}] ${message}`, opts); + if (Error.captureStackTrace) { + Error.captureStackTrace(err, createError); + } + return err; +} +function createRequiredError(driver, name) { + if (Array.isArray(name)) { + return createError( + driver, + `Missing some of the required options ${name.map((n) => "`" + n + "`").join(", ")}` + ); + } + return createError(driver, `Missing required option \`${name}\`.`); +} + +function ignoreNotfound(err) { + return err.code === "ENOENT" || err.code === "EISDIR" ? null : err; +} +function ignoreExists(err) { + return err.code === "EEXIST" ? null : err; +} +async function writeFile(path, data, encoding) { + await ensuredir(dirname$1(path)); + return promises.writeFile(path, data, encoding); +} +function readFile(path, encoding) { + return promises.readFile(path, encoding ?? null).catch(ignoreNotfound); +} +function unlink(path) { + return promises.unlink(path).catch(ignoreNotfound); +} +function readdir(dir) { + return promises.readdir(dir, { withFileTypes: true }).catch(ignoreNotfound).then((r) => r || []); +} +async function ensuredir(dir) { + if (existsSync(dir)) { + return; + } + await ensuredir(dirname$1(dir)).catch(ignoreExists); + await promises.mkdir(dir).catch(ignoreExists); +} +async function readdirRecursive(dir, ignore, maxDepth) { + if (ignore && ignore(dir)) { + return []; + } + const entries = await readdir(dir); + const files = []; + await Promise.all( + entries.map(async (entry) => { + const entryPath = resolve$1(dir, entry.name); + if (entry.isDirectory()) { + if (maxDepth === void 0 || maxDepth > 0) { + const dirFiles = await readdirRecursive( + entryPath, + ignore, + maxDepth === void 0 ? void 0 : maxDepth - 1 + ); + files.push(...dirFiles.map((f) => entry.name + "/" + f)); + } + } else { + if (!(ignore && ignore(entry.name))) { + files.push(entry.name); + } + } + }) + ); + return files; +} +async function rmRecursive(dir) { + const entries = await readdir(dir); + await Promise.all( + entries.map((entry) => { + const entryPath = resolve$1(dir, entry.name); + if (entry.isDirectory()) { + return rmRecursive(entryPath).then(() => promises.rmdir(entryPath)); + } else { + return promises.unlink(entryPath); + } + }) + ); +} + +const PATH_TRAVERSE_RE = /\.\.:|\.\.$/; +const DRIVER_NAME = "fs-lite"; +const unstorage_47drivers_47fs_45lite = defineDriver((opts = {}) => { + if (!opts.base) { + throw createRequiredError(DRIVER_NAME, "base"); + } + opts.base = resolve$1(opts.base); + const r = (key) => { + if (PATH_TRAVERSE_RE.test(key)) { + throw createError( + DRIVER_NAME, + `Invalid key: ${JSON.stringify(key)}. It should not contain .. segments` + ); + } + const resolved = join(opts.base, key.replace(/:/g, "/")); + return resolved; + }; + return { + name: DRIVER_NAME, + options: opts, + flags: { + maxDepth: true + }, + hasItem(key) { + return existsSync(r(key)); + }, + getItem(key) { + return readFile(r(key), "utf8"); + }, + getItemRaw(key) { + return readFile(r(key)); + }, + async getMeta(key) { + const { atime, mtime, size, birthtime, ctime } = await promises.stat(r(key)).catch(() => ({})); + return { atime, mtime, size, birthtime, ctime }; + }, + setItem(key, value) { + if (opts.readOnly) { + return; + } + return writeFile(r(key), value, "utf8"); + }, + setItemRaw(key, value) { + if (opts.readOnly) { + return; + } + return writeFile(r(key), value); + }, + removeItem(key) { + if (opts.readOnly) { + return; + } + return unlink(r(key)); + }, + getKeys(_base, topts) { + return readdirRecursive(r("."), opts.ignore, topts?.maxDepth); + }, + async clear() { + if (opts.readOnly || opts.noClear) { + return; + } + await rmRecursive(r(".")); + } + }; +}); + +const storage = createStorage({}); + +storage.mount('/assets', assets$1); + +storage.mount('data', unstorage_47drivers_47fs_45lite({"driver":"fsLite","base":"./.data/kv"})); + +function useStorage(base = "") { + return base ? prefixStorage(storage, base) : storage; +} + +const fastHash = /*@__PURE__*/ (() => globalThis.process?.getBuiltinModule?.("crypto")?.hash)(); +const algorithm = "sha256"; +const encoding = "base64url"; +function digest(data) { + if (fastHash) return fastHash(algorithm, data, encoding); + const h = createHash(algorithm).update(data); + return globalThis.process?.versions?.webcontainer ? h.digest().toString(encoding) : h.digest(encoding); +} + +const Hasher = /* @__PURE__ */ (() => { + class Hasher2 { + buff = ""; + #context = /* @__PURE__ */ new Map(); + write(str) { + this.buff += str; + } + dispatch(value) { + const type = value === null ? "null" : typeof value; + return this[type](value); + } + object(object) { + if (object && typeof object.toJSON === "function") { + return this.object(object.toJSON()); + } + const objString = Object.prototype.toString.call(object); + let objType = ""; + const objectLength = objString.length; + objType = objectLength < 10 ? "unknown:[" + objString + "]" : objString.slice(8, objectLength - 1); + objType = objType.toLowerCase(); + let objectNumber = null; + if ((objectNumber = this.#context.get(object)) === void 0) { + this.#context.set(object, this.#context.size); + } else { + return this.dispatch("[CIRCULAR:" + objectNumber + "]"); + } + if (typeof Buffer !== "undefined" && Buffer.isBuffer && Buffer.isBuffer(object)) { + this.write("buffer:"); + return this.write(object.toString("utf8")); + } + if (objType !== "object" && objType !== "function" && objType !== "asyncfunction") { + if (this[objType]) { + this[objType](object); + } else { + this.unknown(object, objType); + } + } else { + const keys = Object.keys(object).sort(); + const extraKeys = []; + this.write("object:" + (keys.length + extraKeys.length) + ":"); + const dispatchForKey = (key) => { + this.dispatch(key); + this.write(":"); + this.dispatch(object[key]); + this.write(","); + }; + for (const key of keys) { + dispatchForKey(key); + } + for (const key of extraKeys) { + dispatchForKey(key); + } + } + } + array(arr, unordered) { + unordered = unordered === void 0 ? false : unordered; + this.write("array:" + arr.length + ":"); + if (!unordered || arr.length <= 1) { + for (const entry of arr) { + this.dispatch(entry); + } + return; + } + const contextAdditions = /* @__PURE__ */ new Map(); + const entries = arr.map((entry) => { + const hasher = new Hasher2(); + hasher.dispatch(entry); + for (const [key, value] of hasher.#context) { + contextAdditions.set(key, value); + } + return hasher.toString(); + }); + this.#context = contextAdditions; + entries.sort(); + return this.array(entries, false); + } + date(date) { + return this.write("date:" + date.toJSON()); + } + symbol(sym) { + return this.write("symbol:" + sym.toString()); + } + unknown(value, type) { + this.write(type); + if (!value) { + return; + } + this.write(":"); + if (value && typeof value.entries === "function") { + return this.array( + [...value.entries()], + true + /* ordered */ + ); + } + } + error(err) { + return this.write("error:" + err.toString()); + } + boolean(bool) { + return this.write("bool:" + bool); + } + string(string) { + this.write("string:" + string.length + ":"); + this.write(string); + } + function(fn) { + this.write("fn:"); + if (isNativeFunction(fn)) { + this.dispatch("[native]"); + } else { + this.dispatch(fn.toString()); + } + } + number(number) { + return this.write("number:" + number); + } + null() { + return this.write("Null"); + } + undefined() { + return this.write("Undefined"); + } + regexp(regex) { + return this.write("regex:" + regex.toString()); + } + arraybuffer(arr) { + this.write("arraybuffer:"); + return this.dispatch(new Uint8Array(arr)); + } + url(url) { + return this.write("url:" + url.toString()); + } + map(map) { + this.write("map:"); + const arr = [...map]; + return this.array(arr, false); + } + set(set) { + this.write("set:"); + const arr = [...set]; + return this.array(arr, false); + } + bigint(number) { + return this.write("bigint:" + number.toString()); + } + } + for (const type of [ + "uint8array", + "uint8clampedarray", + "unt8array", + "uint16array", + "unt16array", + "uint32array", + "unt32array", + "float32array", + "float64array" + ]) { + Hasher2.prototype[type] = function(arr) { + this.write(type + ":"); + return this.array([...arr], false); + }; + } + function isNativeFunction(f) { + if (typeof f !== "function") { + return false; + } + return Function.prototype.toString.call(f).slice( + -15 + /* "[native code] }".length */ + ) === "[native code] }"; + } + return Hasher2; +})(); +function serialize(object) { + const hasher = new Hasher(); + hasher.dispatch(object); + return hasher.buff; +} +function hash(value) { + return digest(typeof value === "string" ? value : serialize(value)).replace(/[-_]/g, "").slice(0, 10); +} + +function defaultCacheOptions() { + return { + name: "_", + base: "/cache", + swr: true, + maxAge: 1 + }; +} +function defineCachedFunction(fn, opts = {}) { + opts = { ...defaultCacheOptions(), ...opts }; + const pending = {}; + const group = opts.group || "nitro/functions"; + const name = opts.name || fn.name || "_"; + const integrity = opts.integrity || hash([fn, opts]); + const validate = opts.validate || ((entry) => entry.value !== void 0); + async function get(key, resolver, shouldInvalidateCache, event) { + const cacheKey = [opts.base, group, name, key + ".json"].filter(Boolean).join(":").replace(/:\/$/, ":index"); + let entry = await useStorage().getItem(cacheKey).catch((error) => { + console.error(`[cache] Cache read error.`, error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + }) || {}; + if (typeof entry !== "object") { + entry = {}; + const error = new Error("Malformed data read from cache."); + console.error("[cache]", error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + } + const ttl = (opts.maxAge ?? 0) * 1e3; + if (ttl) { + entry.expires = Date.now() + ttl; + } + const expired = shouldInvalidateCache || entry.integrity !== integrity || ttl && Date.now() - (entry.mtime || 0) > ttl || validate(entry) === false; + const _resolve = async () => { + const isPending = pending[key]; + if (!isPending) { + if (entry.value !== void 0 && (opts.staleMaxAge || 0) >= 0 && opts.swr === false) { + entry.value = void 0; + entry.integrity = void 0; + entry.mtime = void 0; + entry.expires = void 0; + } + pending[key] = Promise.resolve(resolver()); + } + try { + entry.value = await pending[key]; + } catch (error) { + if (!isPending) { + delete pending[key]; + } + throw error; + } + if (!isPending) { + entry.mtime = Date.now(); + entry.integrity = integrity; + delete pending[key]; + if (validate(entry) !== false) { + let setOpts; + if (opts.maxAge && !opts.swr) { + setOpts = { ttl: opts.maxAge }; + } + const promise = useStorage().setItem(cacheKey, entry, setOpts).catch((error) => { + console.error(`[cache] Cache write error.`, error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + }); + if (event?.waitUntil) { + event.waitUntil(promise); + } + } + } + }; + const _resolvePromise = expired ? _resolve() : Promise.resolve(); + if (entry.value === void 0) { + await _resolvePromise; + } else if (expired && event && event.waitUntil) { + event.waitUntil(_resolvePromise); + } + if (opts.swr && validate(entry) !== false) { + _resolvePromise.catch((error) => { + console.error(`[cache] SWR handler error.`, error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + }); + return entry; + } + return _resolvePromise.then(() => entry); + } + return async (...args) => { + const shouldBypassCache = await opts.shouldBypassCache?.(...args); + if (shouldBypassCache) { + return fn(...args); + } + const key = await (opts.getKey || getKey)(...args); + const shouldInvalidateCache = await opts.shouldInvalidateCache?.(...args); + const entry = await get( + key, + () => fn(...args), + shouldInvalidateCache, + args[0] && isEvent(args[0]) ? args[0] : void 0 + ); + let value = entry.value; + if (opts.transform) { + value = await opts.transform(entry, ...args) || value; + } + return value; + }; +} +function cachedFunction(fn, opts = {}) { + return defineCachedFunction(fn, opts); +} +function getKey(...args) { + return args.length > 0 ? hash(args) : ""; +} +function escapeKey(key) { + return String(key).replace(/\W/g, ""); +} +function defineCachedEventHandler(handler, opts = defaultCacheOptions()) { + const variableHeaderNames = (opts.varies || []).filter(Boolean).map((h) => h.toLowerCase()).sort(); + const _opts = { + ...opts, + getKey: async (event) => { + const customKey = await opts.getKey?.(event); + if (customKey) { + return escapeKey(customKey); + } + const _path = event.node.req.originalUrl || event.node.req.url || event.path; + let _pathname; + try { + _pathname = escapeKey(decodeURI(parseURL(_path).pathname)).slice(0, 16) || "index"; + } catch { + _pathname = "-"; + } + const _hashedPath = `${_pathname}.${hash(_path)}`; + const _headers = variableHeaderNames.map((header) => [header, event.node.req.headers[header]]).map(([name, value]) => `${escapeKey(name)}.${hash(value)}`); + return [_hashedPath, ..._headers].join(":"); + }, + validate: (entry) => { + if (!entry.value) { + return false; + } + if (entry.value.code >= 400) { + return false; + } + if (entry.value.body === void 0) { + return false; + } + if (entry.value.headers.etag === "undefined" || entry.value.headers["last-modified"] === "undefined") { + return false; + } + return true; + }, + group: opts.group || "nitro/handlers", + integrity: opts.integrity || hash([handler, opts]) + }; + const _cachedHandler = cachedFunction( + async (incomingEvent) => { + const variableHeaders = {}; + for (const header of variableHeaderNames) { + const value = incomingEvent.node.req.headers[header]; + if (value !== void 0) { + variableHeaders[header] = value; + } + } + const reqProxy = cloneWithProxy(incomingEvent.node.req, { + headers: variableHeaders + }); + const resHeaders = {}; + let _resSendBody; + const resProxy = cloneWithProxy(incomingEvent.node.res, { + statusCode: 200, + writableEnded: false, + writableFinished: false, + headersSent: false, + closed: false, + getHeader(name) { + return resHeaders[name]; + }, + setHeader(name, value) { + resHeaders[name] = value; + return this; + }, + getHeaderNames() { + return Object.keys(resHeaders); + }, + hasHeader(name) { + return name in resHeaders; + }, + removeHeader(name) { + delete resHeaders[name]; + }, + getHeaders() { + return resHeaders; + }, + end(chunk, arg2, arg3) { + if (typeof chunk === "string") { + _resSendBody = chunk; + } + if (typeof arg2 === "function") { + arg2(); + } + if (typeof arg3 === "function") { + arg3(); + } + return this; + }, + write(chunk, arg2, arg3) { + if (typeof chunk === "string") { + _resSendBody = chunk; + } + if (typeof arg2 === "function") { + arg2(void 0); + } + if (typeof arg3 === "function") { + arg3(); + } + return true; + }, + writeHead(statusCode, headers2) { + this.statusCode = statusCode; + if (headers2) { + if (Array.isArray(headers2) || typeof headers2 === "string") { + throw new TypeError("Raw headers is not supported."); + } + for (const header in headers2) { + const value = headers2[header]; + if (value !== void 0) { + this.setHeader( + header, + value + ); + } + } + } + return this; + } + }); + const event = createEvent(reqProxy, resProxy); + event._path = incomingEvent._path; + event.fetch = (url, fetchOptions) => fetchWithEvent(event, url, fetchOptions, { + fetch: useNitroApp().localFetch + }); + event.$fetch = (url, fetchOptions) => fetchWithEvent(event, url, fetchOptions, { + fetch: globalThis.$fetch + }); + event.waitUntil = incomingEvent.waitUntil; + event.context = incomingEvent.context; + event.context.cache = { + options: _opts + }; + const body = await handler(event) || _resSendBody; + const headers = event.node.res.getHeaders(); + headers.etag = String( + headers.Etag || headers.etag || `W/"${hash(body)}"` + ); + headers["last-modified"] = String( + headers["Last-Modified"] || headers["last-modified"] || (/* @__PURE__ */ new Date()).toUTCString() + ); + const cacheControl = []; + if (opts.swr) { + if (opts.maxAge) { + cacheControl.push(`s-maxage=${opts.maxAge}`); + } + if (opts.staleMaxAge) { + cacheControl.push(`stale-while-revalidate=${opts.staleMaxAge}`); + } else { + cacheControl.push("stale-while-revalidate"); + } + } else if (opts.maxAge) { + cacheControl.push(`max-age=${opts.maxAge}`); + } + if (cacheControl.length > 0) { + headers["cache-control"] = cacheControl.join(", "); + } + const cacheEntry = { + code: event.node.res.statusCode, + headers, + body + }; + return cacheEntry; + }, + _opts + ); + return defineEventHandler(async (event) => { + if (opts.headersOnly) { + if (handleCacheHeaders(event, { maxAge: opts.maxAge })) { + return; + } + return handler(event); + } + const response = await _cachedHandler( + event + ); + if (event.node.res.headersSent || event.node.res.writableEnded) { + return response.body; + } + if (handleCacheHeaders(event, { + modifiedTime: new Date(response.headers["last-modified"]), + etag: response.headers.etag, + maxAge: opts.maxAge + })) { + return; + } + event.node.res.statusCode = response.code; + for (const name in response.headers) { + const value = response.headers[name]; + if (name === "set-cookie") { + event.node.res.appendHeader( + name, + splitCookiesString(value) + ); + } else { + if (value !== void 0) { + event.node.res.setHeader(name, value); + } + } + } + return response.body; + }); +} +function cloneWithProxy(obj, overrides) { + return new Proxy(obj, { + get(target, property, receiver) { + if (property in overrides) { + return overrides[property]; + } + return Reflect.get(target, property, receiver); + }, + set(target, property, value, receiver) { + if (property in overrides) { + overrides[property] = value; + return true; + } + return Reflect.set(target, property, value, receiver); + } + }); +} +const cachedEventHandler = defineCachedEventHandler; + +function klona(x) { + if (typeof x !== 'object') return x; + + var k, tmp, str=Object.prototype.toString.call(x); + + if (str === '[object Object]') { + if (x.constructor !== Object && typeof x.constructor === 'function') { + tmp = new x.constructor(); + for (k in x) { + if (x.hasOwnProperty(k) && tmp[k] !== x[k]) { + tmp[k] = klona(x[k]); + } + } + } else { + tmp = {}; // null + for (k in x) { + if (k === '__proto__') { + Object.defineProperty(tmp, k, { + value: klona(x[k]), + configurable: true, + enumerable: true, + writable: true, + }); + } else { + tmp[k] = klona(x[k]); + } + } + } + return tmp; + } + + if (str === '[object Array]') { + k = x.length; + for (tmp=Array(k); k--;) { + tmp[k] = klona(x[k]); + } + return tmp; + } + + if (str === '[object Set]') { + tmp = new Set; + x.forEach(function (val) { + tmp.add(klona(val)); + }); + return tmp; + } + + if (str === '[object Map]') { + tmp = new Map; + x.forEach(function (val, key) { + tmp.set(klona(key), klona(val)); + }); + return tmp; + } + + if (str === '[object Date]') { + return new Date(+x); + } + + if (str === '[object RegExp]') { + tmp = new RegExp(x.source, x.flags); + tmp.lastIndex = x.lastIndex; + return tmp; + } + + if (str === '[object DataView]') { + return new x.constructor( klona(x.buffer) ); + } + + if (str === '[object ArrayBuffer]') { + return x.slice(0); + } + + // ArrayBuffer.isView(x) + // ~> `new` bcuz `Buffer.slice` => ref + if (str.slice(-6) === 'Array]') { + return new x.constructor(x); + } + + return x; +} + +const inlineAppConfig = {}; + + + +const appConfig = defuFn(inlineAppConfig); + +const NUMBER_CHAR_RE = /\d/; +const STR_SPLITTERS = ["-", "_", "/", "."]; +function isUppercase(char = "") { + if (NUMBER_CHAR_RE.test(char)) { + return void 0; + } + return char !== char.toLowerCase(); +} +function splitByCase(str, separators) { + const splitters = STR_SPLITTERS; + const parts = []; + if (!str || typeof str !== "string") { + return parts; + } + let buff = ""; + let previousUpper; + let previousSplitter; + for (const char of str) { + const isSplitter = splitters.includes(char); + if (isSplitter === true) { + parts.push(buff); + buff = ""; + previousUpper = void 0; + continue; + } + const isUpper = isUppercase(char); + if (previousSplitter === false) { + if (previousUpper === false && isUpper === true) { + parts.push(buff); + buff = char; + previousUpper = isUpper; + continue; + } + if (previousUpper === true && isUpper === false && buff.length > 1) { + const lastChar = buff.at(-1); + parts.push(buff.slice(0, Math.max(0, buff.length - 1))); + buff = lastChar + char; + previousUpper = isUpper; + continue; + } + } + buff += char; + previousUpper = isUpper; + previousSplitter = isSplitter; + } + parts.push(buff); + return parts; +} +function kebabCase(str, joiner) { + return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => p.toLowerCase()).join(joiner) : ""; +} +function snakeCase(str) { + return kebabCase(str || "", "_"); +} + +function getEnv(key, opts) { + const envKey = snakeCase(key).toUpperCase(); + return destr( + process.env[opts.prefix + envKey] ?? process.env[opts.altPrefix + envKey] + ); +} +function _isObject(input) { + return typeof input === "object" && !Array.isArray(input); +} +function applyEnv(obj, opts, parentKey = "") { + for (const key in obj) { + const subKey = parentKey ? `${parentKey}_${key}` : key; + const envValue = getEnv(subKey, opts); + if (_isObject(obj[key])) { + if (_isObject(envValue)) { + obj[key] = { ...obj[key], ...envValue }; + applyEnv(obj[key], opts, subKey); + } else if (envValue === void 0) { + applyEnv(obj[key], opts, subKey); + } else { + obj[key] = envValue ?? obj[key]; + } + } else { + obj[key] = envValue ?? obj[key]; + } + if (opts.envExpansion && typeof obj[key] === "string") { + obj[key] = _expandFromEnv(obj[key]); + } + } + return obj; +} +const envExpandRx = /\{\{([^{}]*)\}\}/g; +function _expandFromEnv(value) { + return value.replace(envExpandRx, (match, key) => { + return process.env[key] || match; + }); +} + +const _inlineRuntimeConfig = { + "app": { + "baseURL": "/", + "buildId": "3e7fac48-d5e5-406c-8e09-0f6380ec2f4f", + "buildAssetsDir": "/_nuxt/", + "cdnURL": "" + }, + "nitro": { + "envPrefix": "NUXT_", + "routeRules": { + "/__nuxt_error": { + "cache": false + }, + "/": { + "swr": 60, + "cache": { + "swr": true, + "maxAge": 60 + } + }, + "/categories/**": { + "swr": 60, + "cache": { + "swr": true, + "maxAge": 60 + } + }, + "/products/**": { + "swr": 60, + "cache": { + "swr": true, + "maxAge": 60 + } + }, + "/sitemap.xml": { + "swr": 3600, + "cache": { + "swr": true, + "maxAge": 3600 + } + }, + "/manifest.webmanifest": { + "swr": 3600, + "cache": { + "swr": true, + "maxAge": 3600 + } + }, + "/_nuxt/builds/meta/**": { + "headers": { + "cache-control": "public, max-age=31536000, immutable" + } + }, + "/_nuxt/builds/**": { + "headers": { + "cache-control": "public, max-age=1, immutable" + } + }, + "/_nuxt/**": { + "headers": { + "cache-control": "public, max-age=31536000, immutable" + } + }, + "/_payload.json": { + "ssr": true, + "cache": { + "swr": true, + "maxAge": 60 + } + }, + "/sitemap.xml/_payload.json": { + "ssr": true, + "cache": { + "swr": true, + "maxAge": 3600 + } + }, + "/manifest.webmanifest/_payload.json": { + "ssr": true, + "cache": { + "swr": true, + "maxAge": 3600 + } + } + } + }, + "appSecret": "", + "public": { + "apiBase": "/api", + "siteUrl": "https://imenpishgaman.ir" + }, + "apiInternalUrl": "http://localhost:4000/api", + "revalidateSecret": "" +}; +const envOptions = { + prefix: "NITRO_", + altPrefix: _inlineRuntimeConfig.nitro.envPrefix ?? process.env.NITRO_ENV_PREFIX ?? "_", + envExpansion: _inlineRuntimeConfig.nitro.envExpansion ?? process.env.NITRO_ENV_EXPANSION ?? false +}; +const _sharedRuntimeConfig = _deepFreeze( + applyEnv(klona(_inlineRuntimeConfig), envOptions) +); +function useRuntimeConfig(event) { + if (!event) { + return _sharedRuntimeConfig; + } + if (event.context.nitro.runtimeConfig) { + return event.context.nitro.runtimeConfig; + } + const runtimeConfig = klona(_inlineRuntimeConfig); + applyEnv(runtimeConfig, envOptions); + event.context.nitro.runtimeConfig = runtimeConfig; + return runtimeConfig; +} +_deepFreeze(klona(appConfig)); +function _deepFreeze(object) { + const propNames = Object.getOwnPropertyNames(object); + for (const name of propNames) { + const value = object[name]; + if (value && typeof value === "object") { + _deepFreeze(value); + } + } + return Object.freeze(object); +} +new Proxy(/* @__PURE__ */ Object.create(null), { + get: (_, prop) => { + console.warn( + "Please use `useRuntimeConfig()` instead of accessing config directly." + ); + const runtimeConfig = useRuntimeConfig(); + if (prop in runtimeConfig) { + return runtimeConfig[prop]; + } + return void 0; + } +}); + +function isPathInScope(pathname, base) { + let canonical; + try { + const pre = pathname.replace(/%2f/gi, "/").replace(/%5c/gi, "\\"); + canonical = new URL(pre, "http://_").pathname; + } catch { + return false; + } + return !base || canonical === base || canonical.startsWith(base + "/"); +} + +const config = useRuntimeConfig(); +const _routeRulesMatcher = toRouteMatcher( + createRouter$1({ routes: config.nitro.routeRules }) +); +function createRouteRulesHandler(ctx) { + return eventHandler((event) => { + const routeRules = getRouteRules$1(event); + if (routeRules.headers) { + setHeaders(event, routeRules.headers); + } + if (routeRules.redirect) { + let target = routeRules.redirect.to; + if (target.endsWith("/**")) { + let targetPath = event.path; + const strpBase = routeRules.redirect._redirectStripBase; + if (strpBase) { + if (!isPathInScope(event.path.split("?")[0], strpBase)) { + throw createError$1({ statusCode: 400 }); + } + targetPath = withoutBase(targetPath, strpBase); + } else if (targetPath.startsWith("//")) { + targetPath = targetPath.replace(/^\/+/, "/"); + } + target = joinURL(target.slice(0, -3), targetPath); + } else if (event.path.includes("?")) { + const query = getQuery(event.path); + target = withQuery(target, query); + } + return sendRedirect(event, target, routeRules.redirect.statusCode); + } + if (routeRules.proxy) { + let target = routeRules.proxy.to; + if (target.endsWith("/**")) { + let targetPath = event.path; + const strpBase = routeRules.proxy._proxyStripBase; + if (strpBase) { + if (!isPathInScope(event.path.split("?")[0], strpBase)) { + throw createError$1({ statusCode: 400 }); + } + targetPath = withoutBase(targetPath, strpBase); + } else if (targetPath.startsWith("//")) { + targetPath = targetPath.replace(/^\/+/, "/"); + } + target = joinURL(target.slice(0, -3), targetPath); + } else if (event.path.includes("?")) { + const query = getQuery(event.path); + target = withQuery(target, query); + } + return proxyRequest(event, target, { + fetch: ctx.localFetch, + ...routeRules.proxy + }); + } + }); +} +function getRouteRules$1(event) { + event.context._nitro = event.context._nitro || {}; + if (!event.context._nitro.routeRules) { + event.context._nitro.routeRules = getRouteRulesForPath( + withoutBase(event.path.split("?")[0], useRuntimeConfig().app.baseURL) + ); + } + return event.context._nitro.routeRules; +} +function getRouteRulesForPath(path) { + return defu({}, ..._routeRulesMatcher.matchAll(path).reverse()); +} + +function _captureError(error, type) { + console.error(`[${type}]`, error); + useNitroApp().captureError(error, { tags: [type] }); +} +function trapUnhandledNodeErrors() { + process.on( + "unhandledRejection", + (error) => _captureError(error, "unhandledRejection") + ); + process.on( + "uncaughtException", + (error) => _captureError(error, "uncaughtException") + ); +} +function joinHeaders(value) { + return Array.isArray(value) ? value.join(", ") : String(value); +} +function normalizeFetchResponse(response) { + if (!response.headers.has("set-cookie")) { + return response; + } + return new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: normalizeCookieHeaders(response.headers) + }); +} +function normalizeCookieHeader(header = "") { + return splitCookiesString(joinHeaders(header)); +} +function normalizeCookieHeaders(headers) { + const outgoingHeaders = new Headers(); + for (const [name, header] of headers) { + if (name === "set-cookie") { + for (const cookie of normalizeCookieHeader(header)) { + outgoingHeaders.append("set-cookie", cookie); + } + } else { + outgoingHeaders.set(name, joinHeaders(header)); + } + } + return outgoingHeaders; +} + +//#region src/runtime/utils/event.ts +const ENC_PIPE_RE = /%7C/g; +const ENC_BRACKET_OPEN_RE = /%5B/g; +const ENC_BRACKET_CLOSE_RE = /%5D/g; +const ENC_ENC_SLASH_RE = /%252F/gi; +const HASH_RE = /#/g; +const QUESTION_MARK_RE = /\?/g; +function encodeEventPath(path) { + const queryIndex = path.indexOf("?"); + if (queryIndex === -1) return encodeVueRouterPath(path); + return encodeVueRouterPath(path.slice(0, queryIndex)) + path.slice(queryIndex); +} +function encodeVueRouterPath(path) { + return encodeURI(path).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]").replace(HASH_RE, "%23").replace(QUESTION_MARK_RE, "%3F").replace(ENC_ENC_SLASH_RE, "%2F"); +} +/** +* The response headers of an h3 v1 event, in the shape the renderer writes them in. +* +* Backed by the node response rather than a copy of it, so a header the app sets through +* h3 and a header the renderer sets are the same header, and both are sent. +*/ +var NodeResponseHeaders = class { + res; + constructor(res) { + this.res = res; + } + get(name) { + const value = this.res.getHeader(name); + if (value === void 0) return null; + return Array.isArray(value) ? value.join(", ") : String(value); + } + has(name) { + return this.res.hasHeader(name); + } + set(name, value) { + this.res.setHeader(name, value); + } + append(name, value) { + const existing = this.res.getHeader(name); + if (existing === void 0) { + this.res.setHeader(name, value); + return; + } + this.res.setHeader(name, Array.isArray(existing) ? [...existing, value] : [String(existing), value]); + } + delete(name) { + this.res.removeHeader(name); + } + getSetCookie() { + const value = this.res.getHeader("set-cookie"); + if (value === void 0) return []; + return Array.isArray(value) ? value.map(String) : [String(value)]; + } + *entries() { + const headers = this.res.getHeaders(); + for (const name of Object.keys(headers).sort()) { + const value = headers[name]; + if (value === void 0) continue; + if (name === "set-cookie" && Array.isArray(value)) for (const entry of value) yield [name, entry]; + else yield [name, Array.isArray(value) ? value.join(", ") : String(value)]; + } + } + *keys() { + for (const [name] of this.entries()) yield name; + } + *values() { + for (const [, value] of this.entries()) yield value; + } + forEach(callback, thisArg) { + for (const [name, value] of this.entries()) callback.call(thisArg, value, name, this); + } + [Symbol.iterator]() { + return this.entries(); + } +}; +const PAYLOAD_METHODS = /* @__PURE__ */ new Set([ + "PATCH", + "POST", + "PUT", + "DELETE" +]); +const BODY_READ_METHODS = /* @__PURE__ */ new Set([ + "arrayBuffer", + "blob", + "bytes", + "formData", + "json", + "text" +]); +/** +* The request in the web-standard shape, with every read of its body served from the bytes +* h3 v1 caches on the node request. +* +* A body read here and a `readBody(event)` elsewhere in the same request therefore resolve +* to the same bytes whichever happens first, and reading the request twice - directly, from +* a clone, or as a stream - resolves the same bytes each time rather than the second read +* finding a stream the first has drained. +*/ +function toWebRequest$1(event) { + const existing = event.web?.request; + if (existing) return existing; + const method = event.method; + if (!PAYLOAD_METHODS.has(method)) return new Request(getRequestURL(event), { + method, + headers: event.headers + }); + const request = new Request(getRequestURL(event), { + method, + headers: event.headers, + body: toBufferedBodyStream(event), + duplex: "half" + }); + const read = () => readRawBody(event, false).then((body) => body ? new Uint8Array(body) : /* @__PURE__ */ new Uint8Array()); + const copy = () => read().then((body) => new Response(body, { headers: request.headers })); + const buffered = new Proxy(request, { get(target, property) { + if (property === "bodyUsed") return false; + if (property === "body") return toBufferedBodyStream(event); + if (property === "clone") return () => buffered; + if (typeof property === "string" && BODY_READ_METHODS.has(property)) return () => copy().then((response) => response[property]()); + const value = Reflect.get(target, property, target); + return typeof value === "function" ? value.bind(target) : value; + } }); + return buffered; +} +function toBufferedBodyStream(event) { + return new ReadableStream({ async pull(controller) { + const body = await readRawBody(event, false); + if (body) controller.enqueue(new Uint8Array(body)); + controller.close(); + } }); +} +/** +* The Nuxt context a request nitro made to itself was fetched with: `node-mock-http` carries +* it on the mock request rather than in the h3 event's own context. A request that arrives +* over the network has none, whoever sent it. +*/ +function getFetchedRequestContext(event) { + return event.node.req.__unenv__?.nuxt; +} +/** The event the SSR renderer reads, which reaches the h3 v1 event itself through `~app`. */ +function toRequestEvent(event) { + const requestEvent = toWebView(event); + const fetchedWith = getFetchedRequestContext(event); + if (fetchedWith) event.context.nuxt = { + ...fetchedWith, + ...event.context.nuxt + }; + return requestEvent; +} +/** +* Describe an h3 v1 event in the web-standard shape, rather than adapting it in place: +* `event.req` and `event.res` already name the node request and response, and that is the +* shape `useRequestEvent()` and the render hooks must keep seeing. +* +* Everything is resolved on access, and the response is backed by the node response rather +* than a copy of it, so a header the application sets through h3 and a header the renderer +* sets are the same header. +*/ +function toWebView(event, resolveURL = () => new URL(encodeEventPath(event.path), `${getRequestProtocol(event)}://${getRequestHost(event)}`)) { + const node = event.node; + let request; + let url; + const res = { + get status() { + return node.res.statusCode; + }, + set status(status) { + node.res.statusCode = status; + }, + get statusText() { + return node.res.statusMessage; + }, + set statusText(statusText) { + node.res.statusMessage = statusText; + }, + headers: new NodeResponseHeaders(node.res) + }; + const requestEvent = { + context: event.context, + res, + get req() { + return request ??= toWebRequest$1(event); + }, + get url() { + return url ??= resolveURL(); + }, + set url(value) { + url = value; + event._path = node.req.url = value.pathname + value.search; + } + }; + requestEvent["~app"] = event; + return requestEvent; +} + +//#region src/runtime/utils/error.ts +/** +* Nitro internal functions extracted from https://github.com/nitrojs/nitro/blob/v2/src/runtime/internal/utils.ts +*/ +function isJsonRequest(event) { + if (hasReqHeader(event, "accept", "text/html")) return false; + return hasReqHeader(event, "accept", "application/json") || hasReqHeader(event, "user-agent", "curl/") || hasReqHeader(event, "user-agent", "httpie/") || hasReqHeader(event, "sec-fetch-mode", "cors") || event.path.startsWith("/api/") || event.path.endsWith(".json"); +} +function hasReqHeader(event, name, includes) { + const value = getRequestHeader(event, name); + return !!(value && typeof value === "string" && value.toLowerCase().includes(includes)); +} + +const headSymbol = "usehead"; +// @__NO_SIDE_EFFECTS__ +function vueInstall(head) { + const plugin = { + install(app) { + app.config.globalProperties.$unhead = head; + app.config.globalProperties.$head = head; + app.provide(headSymbol, head); + } + }; + return plugin.install; +} + +const VueResolver = /* @__PURE__ */ Object.assign( + (_, value) => isRef(value) ? toValue(value) : value, + // identity for plain non-reactive values, so the SSR default init entry + // keeps its precomputed fast path (see unhead/server createHead) + { _static: true } +); + +// @__NO_SIDE_EFFECTS__ +function createHead(options = {}) { + const head = createHead$1({ + ...options, + propResolvers: [VueResolver] + }); + head.install = vueInstall(head); + return head; +} + +const legacyPlugins = [DeprecationsPlugin, PromisesPlugin, TemplateParamsPlugin, AliasSortingPlugin]; + +const unheadOptions = { + disableDefaults: true, + plugins: legacyPlugins, +}; + +const renderSSRHeadOptions = {"omitLineBreaks":true}; + +const NUXT_PRERENDER_NO_SSR_ROUTES = ["/index.html","/200.html","/404.html"]; +const NUXT_NO_SCRIPTS_PATTERNS = []; +const NUXT_PAGE_PATTERNS = ["/categories/:slug","/products/:slug","/"]; +const NUXT_PAYLOAD_INLINE = false; +const NUXT_SSR_STREAMING = false; +const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[{"rel":"preload","href":"/fonts/IRANSansWebFaNum.woff2","as":"font","type":"font/woff2","crossorigin":""},{"rel":"preload","href":"/fonts/IRANSansWebFaNum_Bold.woff2","as":"font","type":"font/woff2","crossorigin":""},{"rel":"icon","type":"image/svg+xml","href":"/favicon.svg"},{"rel":"manifest","href":"/manifest.webmanifest"}],"style":[],"script":[],"noscript":[],"htmlAttrs":{"lang":"fa","dir":"rtl"},"bodyAttrs":{"class":"relative min-h-screen bg-bg font-sans text-ink antialiased"},"charset":"utf-8","viewport":"width=device-width, initial-scale=1"}; +const appRootTag = "div"; +const appRootAttrs = {"id":"__nuxt"}; +const appTeleportTag = "div"; +const appTeleportAttrs = {"id":"teleports"}; +const appSpaLoaderTag = "div"; +const appSpaLoaderAttrs = {"id":"__nuxt-loader"}; +const appId = "nuxt-app"; + +//#region src/runtime/handlers/error.ts +var error_default = async function errorhandler(error, event, { defaultHandler }) { + if (event.handled) return; + const isRenderingError = !!(event.context.nuxt?.["~rendering-error"] || getFetchedRequestContext(event)?.["~rendering-error"]); + let errorCause; + if (isJsonRequest(event)) { + return; + } + const defaultRes = await defaultHandler(error, event, { + json: true, + silent: false + }); + if ((error.status || error.statusCode || 500) === 404 && defaultRes.status === 302) { + setResponseHeaders(event, defaultRes.headers); + appendVary(event, "accept, sec-fetch-mode"); + setResponseStatus(event, defaultRes.status, defaultRes.statusText); + return send(event, JSON.stringify(defaultRes.body, null, 2)); + } + const errorObject = defaultRes.body; + const url = new URL(errorObject.url); + errorObject.url = withoutBase(url.pathname, useRuntimeConfig(event).app.baseURL) + url.search + url.hash; + errorObject.message = error.unhandled ? errorObject.message || "Server Error" : error.message || errorObject.message || "Server Error"; + if (!error.unhandled) errorObject.data ||= error.data; + errorObject.statusText ||= error.statusText || error.statusMessage; + delete defaultRes.headers["content-type"]; + delete defaultRes.headers["content-security-policy"]; + setResponseHeaders(event, defaultRes.headers); + appendVary(event, "accept, sec-fetch-mode"); + if (!isRenderingError) event.context.nuxt = { + ...event.context.nuxt, + "~rendering-error": true + }; + const res = isRenderingError ? null : await useNitroApp().localFetch(withQuery(joinURL(useRuntimeConfig(event).app.baseURL, "/__nuxt_error"), { + ...errorObject, + ...errorCause !== void 0 + }), { + headers: event.headers, + redirect: "manual", + context: { nuxt: { "~rendering-error": true } } + }).catch(() => null); + if (event.handled) return; + if (!res) { + setResponseHeader(event, "Content-Type", "text/html;charset=UTF-8"); + const { template } = await import('./error-template.mjs'); + return send(event, template(errorObject)); + } + let html = await res.text(); + for (const [header, value] of res.headers.entries()) { + if (header === ERROR_PAGE_HEADER) continue; + if (header === "set-cookie" || header === "x-nitro-prerender") { + appendResponseHeader(event, header, value); + continue; + } + setResponseHeader(event, header, value); + } + setResponseStatus(event, res.status && res.status !== 200 ? res.status : defaultRes.status, res.statusText || defaultRes.statusText); + return send(event, html); +}; +/** Set when the app's own error page could not render. */ +const ERROR_PAGE_HEADER = "x-nuxt-error-page"; +/** +* Add `value`'s tokens to the response `vary` header, keeping any already +* present. `*` absorbs everything else, since it means the response varies on +* all headers. +*/ +function appendVary(event, value) { + const incoming = parseVary(value); + if (!incoming.length) return; + const existing = parseVary(getResponseHeader(event, "vary")); + if (existing.includes("*")) return; + if (incoming.includes("*")) { + setResponseHeader(event, "vary", "*"); + return; + } + const merged = existing.slice(); + for (const token of incoming) if (!merged.includes(token)) merged.push(token); + setResponseHeader(event, "vary", merged.join(", ")); +} +function parseVary(value) { + return (Array.isArray(value) ? value : typeof value === "string" ? value.split(",") : []).map((token) => token.trim().toLowerCase()).filter(Boolean); +} + +function defineNitroErrorHandler(handler) { + return handler; +} + +const errorHandler$1 = defineNitroErrorHandler( + function defaultNitroErrorHandler(error, event) { + const res = defaultHandler(error, event); + setResponseHeaders(event, res.headers); + setResponseStatus(event, res.status, res.statusText); + return send(event, JSON.stringify(res.body, null, 2)); + } +); +function defaultHandler(error, event, opts) { + const isSensitive = error.unhandled || error.fatal; + const statusCode = error.statusCode || 500; + const statusMessage = error.statusMessage || "Server Error"; + const url = getRequestURL(event, { xForwardedHost: true, xForwardedProto: true }); + if (statusCode === 404) { + const baseURL = "/"; + if (/^\/[^/]/.test(baseURL) && !url.pathname.startsWith(baseURL)) { + const redirectTo = `${baseURL}${url.pathname.slice(1)}${url.search}`; + return { + status: 302, + statusText: "Found", + headers: { location: redirectTo }, + body: `Redirecting...` + }; + } + } + if (isSensitive && !opts?.silent) { + const tags = [error.unhandled && "[unhandled]", error.fatal && "[fatal]"].filter(Boolean).join(" "); + console.error(`[request error] ${tags} [${event.method}] ${url} +`, error); + } + const headers = { + "content-type": "application/json", + // Prevent browser from guessing the MIME types of resources. + "x-content-type-options": "nosniff", + // Prevent error page from being embedded in an iframe + "x-frame-options": "DENY", + // Prevent browsers from sending the Referer header + "referrer-policy": "no-referrer", + // Disable the execution of any js + "content-security-policy": "script-src 'none'; frame-ancestors 'none';" + }; + setResponseStatus(event, statusCode, statusMessage); + if (statusCode === 404 || !getResponseHeader(event, "cache-control")) { + headers["cache-control"] = "no-cache"; + } + const body = { + error: true, + url: url.href, + statusCode, + statusMessage, + message: isSensitive ? "Server Error" : error.message, + data: isSensitive ? void 0 : error.data + }; + return { + status: statusCode, + statusText: statusMessage, + headers, + body + }; +} + +const errorHandlers = [error_default, errorHandler$1]; + +async function errorHandler(error, event) { + for (const handler of errorHandlers) { + try { + await handler(error, event, { defaultHandler }); + if (event.handled) { + return; // Response handled + } + } catch(error) { + // Handler itself thrown, log and continue + console.error(error); + } + } + // H3 will handle fallback +} + +const decodeRoutePath = function decodeRoutePath(path) { + if (!path.includes("%")) return path; + const queryIndex = path.indexOf("?"); + const pathname = queryIndex === -1 ? path : path.slice(0, queryIndex); + try { + return queryIndex === -1 ? decodeURI(pathname) : decodeURI(pathname) + path.slice(queryIndex); + } catch { + return path; + } +}; +const normalizePath = (path, fold) => { + if (typeof path !== 'string') { return path } + const decoded = decodeRoutePath(path); + return fold ? decoded.toLowerCase() : decoded +}; +const normalizeRouteRulePath = path => normalizePath(path, true); + +//#region src/runtime/utils/route-rules.ts +let matcher; +function getMatcher() { + if (!matcher) { + const routes = {}; + for (const [route, rules] of Object.entries(useRuntimeConfig().nitro?.routeRules || {})) routes[normalizeRouteRulePath(route)] = rules; + matcher = toRouteMatcher(createRouter$1({ routes })); + } + return matcher; +} +/** +* Resolve the route rules for a path without the base URL. Keys and path are decoded, +* and case-folded unless routing is `sensitive`. +*/ +function matchRouteRules(path) { + return defu({}, ...getMatcher().matchAll(normalizeRouteRulePath(path)).reverse()); +} +/** Resolve the route rules for a request, as {@link matchRouteRules} does for its path. */ +function resolveRequestRouteRules(event) { + return matchRouteRules(withoutBase(event.path.split("?")[0], useRuntimeConfig().app.baseURL)); +} +/** The route rules for a request, reusing those already resolved for it. */ +function getRouteRules(event) { + const context = event.context._nitro ||= {}; + return context.routeRules ||= resolveRequestRouteRules(event); +} + +//#region src/runtime/plugins/route-rules.ts +var route_rules_default = (nitroApp) => { + nitroApp.hooks.hook("request", (event) => { + event.context._nitro ||= {}; + event.context._nitro.routeRules = resolveRequestRouteRules(event); + }); +}; + +const plugins = [ + route_rules_default +]; + +const assets = { + "/favicon.svg": { + "type": "image/svg+xml", + "etag": "\"151-LhHvsxEBtbvotU/eUaOb8nfZzL8\"", + "mtime": "2026-10-06T09:56:43.062Z", + "size": 337, + "path": "../public/favicon.svg" + }, + "/fonts/IRANSansWebFaNum.woff2": { + "type": "font/woff2", + "etag": "\"6d28-AufINCNdNZVNkWiYA6/Wp9W2wE4\"", + "mtime": "2026-07-02T15:07:42.525Z", + "size": 27944, + "path": "../public/fonts/IRANSansWebFaNum.woff2" + }, + "/fonts/IRANSansWebFaNum_Black.woff2": { + "type": "font/woff2", + "etag": "\"64b0-HsX/CIG11T5k32Pl6NhLJvroFIQ\"", + "mtime": "2026-07-02T15:07:42.532Z", + "size": 25776, + "path": "../public/fonts/IRANSansWebFaNum_Black.woff2" + }, + "/fonts/IRANSansWebFaNum_Bold.woff2": { + "type": "font/woff2", + "etag": "\"6ab4-G8S3CXdFmh+Mk2th3Gy2+bcAPQQ\"", + "mtime": "2026-07-02T15:07:42.534Z", + "size": 27316, + "path": "../public/fonts/IRANSansWebFaNum_Bold.woff2" + }, + "/fonts/IRANSansWebFaNum_Medium.woff2": { + "type": "font/woff2", + "etag": "\"64b8-6V1kQDm0NUXner/ubiM2u7MPIyY\"", + "mtime": "2026-07-02T15:07:42.535Z", + "size": 25784, + "path": "../public/fonts/IRANSansWebFaNum_Medium.woff2" + }, + "/fonts/IRANSansWebFaNum_Light.woff2": { + "type": "font/woff2", + "etag": "\"6ef0-0ZuVZfSKf1HbzDmvdDZdESRzFOs\"", + "mtime": "2026-07-02T15:07:42.534Z", + "size": 28400, + "path": "../public/fonts/IRANSansWebFaNum_Light.woff2" + }, + "/_nuxt/BHOIQrRl.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"1637-w7apJM7DBwq91AEy0Dz89/JwU4s\"", + "mtime": "2026-10-24T11:47:18.110Z", + "size": 5687, + "path": "../public/_nuxt/BHOIQrRl.js" + }, + "/_nuxt/DlAPF8TW.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"1e85-YNtOmEmkO1nMcpDM/ztRmg/rRLw\"", + "mtime": "2026-10-24T11:47:18.112Z", + "size": 7813, + "path": "../public/_nuxt/DlAPF8TW.js" + }, + "/_nuxt/Dd1GE-gU.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"21420-NSMMtehs6gAIMs2sZ84NfSEv/wU\"", + "mtime": "2026-10-24T11:47:18.110Z", + "size": 136224, + "path": "../public/_nuxt/Dd1GE-gU.js" + }, + "/_nuxt/D0e0LUpa.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"794-cNNGOqTLOp2+IDNDEbTWshwORp0\"", + "mtime": "2026-10-24T11:47:18.110Z", + "size": 1940, + "path": "../public/_nuxt/D0e0LUpa.js" + }, + "/_nuxt/DOASWvjr.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"3827-3BvUfZznriOnNWFcpi6aALVMpOE\"", + "mtime": "2026-10-24T11:47:18.110Z", + "size": 14375, + "path": "../public/_nuxt/DOASWvjr.js" + }, + "/fonts/IRANSansWebFaNum_UltraLight.woff2": { + "type": "font/woff2", + "etag": "\"6e30-P6kpI7ovgRddffWzkv2xSmEYEnw\"", + "mtime": "2026-07-02T15:07:42.537Z", + "size": 28208, + "path": "../public/fonts/IRANSansWebFaNum_UltraLight.woff2" + }, + "/_nuxt/DoONAYG5.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"3b62c-dc9OPIQbgdy0oXHYg6EoUgVy6yc\"", + "mtime": "2026-10-24T11:47:18.112Z", + "size": 243244, + "path": "../public/_nuxt/DoONAYG5.js" + }, + "/_nuxt/VuesaxIcon.4cYnpGo8.css": { + "type": "text/css; charset=utf-8", + "etag": "\"dc-Uz1+XA31y3oabrHslWpIJp4Ls74\"", + "mtime": "2026-10-24T11:47:18.112Z", + "size": 220, + "path": "../public/_nuxt/VuesaxIcon.4cYnpGo8.css" + }, + "/_nuxt/DlDWjZRl.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"37855-Z6e8Pe/n6IqFkcSEj31zIJ7FhuQ\"", + "mtime": "2026-10-24T11:47:18.100Z", + "size": 227413, + "path": "../public/_nuxt/DlDWjZRl.js" + }, + "/_nuxt/builds/latest.json": { + "type": "application/json", + "etag": "\"47-JKgzcgu4mBBz7nSPUtzomjs30dc\"", + "mtime": "2026-10-24T11:47:23.008Z", + "size": 71, + "path": "../public/_nuxt/builds/latest.json" + }, + "/_nuxt/builds/meta/3e7fac48-d5e5-406c-8e09-0f6380ec2f4f.json": { + "type": "application/json", + "etag": "\"58-JIbrCAB+PEB8Ybvxp3RzCo2D6XU\"", + "mtime": "2026-10-24T11:47:23.008Z", + "size": 88, + "path": "../public/_nuxt/builds/meta/3e7fac48-d5e5-406c-8e09-0f6380ec2f4f.json" + }, + "/_nuxt/xGM79_uD.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"5023-nhybJtf5A4+tqp5rdRjhnkK+QMY\"", + "mtime": "2026-10-24T11:47:18.112Z", + "size": 20515, + "path": "../public/_nuxt/xGM79_uD.js" + }, + "/_nuxt/r7-JdZhN.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"78c-4hmOEQGuRxrwCX/1v0DRIhjwpXE\"", + "mtime": "2026-10-24T11:47:18.112Z", + "size": 1932, + "path": "../public/_nuxt/r7-JdZhN.js" + }, + "/_nuxt/entry.NJkjIEBJ.css": { + "type": "text/css; charset=utf-8", + "etag": "\"f954-gFKPvCM4WZHzb2tWqZEkEegmw5w\"", + "mtime": "2026-10-24T11:47:18.112Z", + "size": 63828, + "path": "../public/_nuxt/entry.NJkjIEBJ.css" + }, + "/images/logo.png": { + "type": "image/png", + "etag": "\"45a79-DygL+P0onWMf3/jsNWp1BqEUPE4\"", + "mtime": "2026-10-11T12:10:17.609Z", + "size": 285305, + "path": "../public/images/logo.png" + }, + "/_nuxt/D6Ym2dQP.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"1241f5-OG41EU7LABNWcdBigZe253LHLTw\"", + "mtime": "2026-10-24T11:47:18.110Z", + "size": 1196533, + "path": "../public/_nuxt/D6Ym2dQP.js" + } +}; + +const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//; +function normalizeWindowsPath(input = "") { + if (!input) { + return input; + } + return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase()); +} +const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/; +const _DRIVE_LETTER_RE = /^[A-Za-z]:$/; +const _ROOT_FOLDER_RE = /^\/([A-Za-z]:)?$/; +function cwd() { + if (typeof process !== "undefined" && typeof process.cwd === "function") { + return process.cwd().replace(/\\/g, "/"); + } + return "/"; +} +const resolve = function(...arguments_) { + arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument)); + let resolvedPath = ""; + let resolvedAbsolute = false; + for (let index = arguments_.length - 1; index >= -1 && !resolvedAbsolute; index--) { + const path = index >= 0 ? arguments_[index] : cwd(); + if (!path || path.length === 0) { + continue; + } + resolvedPath = `${path}/${resolvedPath}`; + resolvedAbsolute = isAbsolute(path); + } + resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute); + if (resolvedAbsolute && !isAbsolute(resolvedPath)) { + return `/${resolvedPath}`; + } + return resolvedPath.length > 0 ? resolvedPath : "."; +}; +function normalizeString(path, allowAboveRoot) { + let res = ""; + let lastSegmentLength = 0; + let lastSlash = -1; + let dots = 0; + let char = null; + for (let index = 0; index <= path.length; ++index) { + if (index < path.length) { + char = path[index]; + } else if (char === "/") { + break; + } else { + char = "/"; + } + if (char === "/") { + if (lastSlash === index - 1 || dots === 1) ; else if (dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") { + if (res.length > 2) { + const lastSlashIndex = res.lastIndexOf("/"); + if (lastSlashIndex === -1) { + res = ""; + lastSegmentLength = 0; + } else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf("/"); + } + lastSlash = index; + dots = 0; + continue; + } else if (res.length > 0) { + res = ""; + lastSegmentLength = 0; + lastSlash = index; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + res += res.length > 0 ? "/.." : ".."; + lastSegmentLength = 2; + } + } else { + if (res.length > 0) { + res += `/${path.slice(lastSlash + 1, index)}`; + } else { + res = path.slice(lastSlash + 1, index); + } + lastSegmentLength = index - lastSlash - 1; + } + lastSlash = index; + dots = 0; + } else if (char === "." && dots !== -1) { + ++dots; + } else { + dots = -1; + } + } + return res; +} +const isAbsolute = function(p) { + return _IS_ABSOLUTE_RE.test(p); +}; +const relative = function(from, to) { + const _from = resolve(from).replace(_ROOT_FOLDER_RE, "$1").split("/"); + const _to = resolve(to).replace(_ROOT_FOLDER_RE, "$1").split("/"); + if (_to[0][1] === ":" && _from[0][1] === ":" && _from[0] !== _to[0]) { + return _to.join("/"); + } + const _fromCopy = [..._from]; + for (const segment of _fromCopy) { + if (_to[0] !== segment) { + break; + } + _from.shift(); + _to.shift(); + } + return [..._from.map(() => ".."), ..._to].join("/"); +}; +const dirname = function(p) { + const segments = normalizeWindowsPath(p).replace(/\/$/, "").split("/").slice(0, -1); + if (segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0])) { + segments[0] += "/"; + } + return segments.join("/") || (isAbsolute(p) ? "/" : "."); +}; + +function readAsset (id) { + const serverDir = dirname(fileURLToPath(globalThis._importMeta_.url)); + // Public dirs might be pruned after the build (uploaded to a CDN, sourcemaps + // stripped), so a manifest entry with no file behind it reads as absent, not broken. + return promises.readFile(resolve(serverDir, assets[id].path)).catch((error) => { + if (error?.code !== 'ENOENT') { throw error } + }) +} + +const publicAssetBases = {"/_nuxt/builds/meta/":{"maxAge":31536000},"/_nuxt/builds/":{"maxAge":1},"/_nuxt/":{"maxAge":31536000}}; + +function isPublicAssetURL(id = '') { + if (assets[id]) { + return true + } + for (const base in publicAssetBases) { + if (id.startsWith(base)) { return true } + } + return false +} + +function getAsset (id) { + return assets[id] +} + +const METHODS = /* @__PURE__ */ new Set(["HEAD", "GET"]); +const EncodingMap = { gzip: ".gz", br: ".br" }; +const _OM2yTP = eventHandler((event) => { + if (event.method && !METHODS.has(event.method)) { + return; + } + let id = decodePath( + withLeadingSlash(withoutTrailingSlash(parseURL(event.path).pathname)) + ); + let asset; + const encodingHeader = String( + getRequestHeader(event, "accept-encoding") || "" + ); + const encodings = [ + ...encodingHeader.split(",").map((e) => EncodingMap[e.trim()]).filter(Boolean).sort(), + "" + ]; + for (const encoding of encodings) { + for (const _id of [id + encoding, joinURL(id, "index.html" + encoding)]) { + const _asset = getAsset(_id); + if (_asset) { + asset = _asset; + id = _id; + break; + } + } + } + if (!asset) { + if (isPublicAssetURL(id)) { + removeResponseHeader(event, "Cache-Control"); + throw createError$1({ statusCode: 404 }); + } + return; + } + if (asset.encoding !== void 0) { + appendResponseHeader(event, "Vary", "Accept-Encoding"); + } + const ifNotMatch = getRequestHeader(event, "if-none-match") === asset.etag; + if (ifNotMatch) { + setResponseStatus(event, 304, "Not Modified"); + return ""; + } + const ifModifiedSinceH = getRequestHeader(event, "if-modified-since"); + const mtimeDate = new Date(asset.mtime); + if (ifModifiedSinceH && asset.mtime && new Date(ifModifiedSinceH) >= mtimeDate) { + setResponseStatus(event, 304, "Not Modified"); + return ""; + } + if (asset.type && !getResponseHeader(event, "Content-Type")) { + setResponseHeader(event, "Content-Type", asset.type); + } + if (asset.etag && !getResponseHeader(event, "ETag")) { + setResponseHeader(event, "ETag", asset.etag); + } + if (asset.mtime && !getResponseHeader(event, "Last-Modified")) { + setResponseHeader(event, "Last-Modified", mtimeDate.toUTCString()); + } + if (asset.encoding && !getResponseHeader(event, "Content-Encoding")) { + setResponseHeader(event, "Content-Encoding", asset.encoding); + } + if (asset.size > 0 && !getResponseHeader(event, "Content-Length")) { + setResponseHeader(event, "Content-Length", asset.size); + } + const data = readAsset(id); + return typeof data?.then === "function" ? data.then( + (resolved) => assertAssetData(event, resolved) + ) : assertAssetData(event, data); +}); +function assertAssetData(event, data) { + if (data === null || data === void 0) { + removeResponseHeader(event, "Cache-Control"); + throw createError$1({ statusCode: 404 }); + } + return data; +} + +const _SxA8c9 = defineEventHandler(() => {}); + +const _lazy_MPvyQn = () => import('../routes/_internal/revalidate.post.mjs'); +const _lazy_F0sAnX = () => import('../routes/manifest.webmanifest.mjs'); +const _lazy_tC3llT = () => import('../routes/robots.txt.mjs'); +const _lazy_fe4nGF = () => import('../routes/sitemap.xml.mjs'); +const _lazy_xPMcnQ = () => import('../routes/renderer.mjs').then(function (n) { return n.r; }); + +const handlers = [ + { route: '', handler: _OM2yTP, lazy: false, middleware: true, method: undefined }, + { route: '/_internal/revalidate', handler: _lazy_MPvyQn, lazy: true, middleware: false, method: "post" }, + { route: '/manifest.webmanifest', handler: _lazy_F0sAnX, lazy: true, middleware: false, method: undefined }, + { route: '/robots.txt', handler: _lazy_tC3llT, lazy: true, middleware: false, method: undefined }, + { route: '/sitemap.xml', handler: _lazy_fe4nGF, lazy: true, middleware: false, method: undefined }, + { route: '/__nuxt_error', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined }, + { route: '/__nuxt_island/**', handler: _SxA8c9, lazy: false, middleware: false, method: undefined }, + { route: '/', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined }, + { route: '/categories/**', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined }, + { route: '/products/**', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined }, + { route: '/_payload.json', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined }, + { route: '/sitemap.xml/_payload.json', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined }, + { route: '/manifest.webmanifest/_payload.json', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined }, + { route: '/**', handler: _lazy_xPMcnQ, lazy: true, middleware: false, method: undefined } +]; + +function createNitroApp() { + const config = useRuntimeConfig(); + const hooks = createHooks(); + const captureError = (error, context = {}) => { + const promise = hooks.callHookParallel("error", error, context).catch((error_) => { + console.error("Error while capturing another error", error_); + }); + if (context.event && isEvent(context.event)) { + const errors = context.event.context.nitro?.errors; + if (errors) { + errors.push({ error, context }); + } + if (context.event.waitUntil) { + context.event.waitUntil(promise); + } + } + }; + const h3App = createApp({ + debug: destr(false), + onError: (error, event) => { + captureError(error, { event, tags: ["request"] }); + return errorHandler(error, event); + }, + onRequest: async (event) => { + event.context.nitro = event.context.nitro || { errors: [] }; + const fetchContext = event.node.req?.__unenv__; + if (fetchContext?._platform) { + event.context = { + _platform: fetchContext?._platform, + // #3335 + ...fetchContext._platform, + ...event.context + }; + } + if (!event.context.waitUntil && fetchContext?.waitUntil) { + event.context.waitUntil = fetchContext.waitUntil; + } + event.fetch = (req, init) => fetchWithEvent(event, req, init, { fetch: localFetch }); + event.$fetch = (req, init) => fetchWithEvent(event, req, init, { + fetch: $fetch + }); + event.waitUntil = (promise) => { + if (!event.context.nitro._waitUntilPromises) { + event.context.nitro._waitUntilPromises = []; + } + event.context.nitro._waitUntilPromises.push(promise); + if (event.context.waitUntil) { + event.context.waitUntil(promise); + } + }; + event.captureError = (error, context) => { + captureError(error, { event, ...context }); + }; + await nitroApp.hooks.callHook("request", event).catch((error) => { + captureError(error, { event, tags: ["request"] }); + }); + }, + onBeforeResponse: async (event, response) => { + await nitroApp.hooks.callHook("beforeResponse", event, response).catch((error) => { + captureError(error, { event, tags: ["request", "response"] }); + }); + }, + onAfterResponse: async (event, response) => { + await nitroApp.hooks.callHook("afterResponse", event, response).catch((error) => { + captureError(error, { event, tags: ["request", "response"] }); + }); + } + }); + const router = createRouter({ + preemptive: true + }); + const nodeHandler = toNodeListener(h3App); + const localCall = (aRequest) => b( + nodeHandler, + aRequest + ); + const localFetch = (input, init) => { + if (!input.toString().startsWith("/")) { + return globalThis.fetch(input, init); + } + return C( + nodeHandler, + input, + init + ).then((response) => normalizeFetchResponse(response)); + }; + const $fetch = createFetch({ + fetch: localFetch, + Headers: Headers$1, + defaults: { baseURL: config.app.baseURL } + }); + globalThis.$fetch = $fetch; + h3App.use(createRouteRulesHandler({ localFetch })); + for (const h of handlers) { + let handler = h.lazy ? lazyEventHandler(h.handler) : h.handler; + if (h.middleware || !h.route) { + const middlewareBase = (config.app.baseURL + (h.route || "/")).replace( + /\/+/g, + "/" + ); + h3App.use(middlewareBase, handler); + } else { + const routeRules = getRouteRulesForPath( + h.route.replace(/:\w+|\*\*/g, "_") + ); + if (routeRules.cache) { + handler = cachedEventHandler(handler, { + group: "nitro/routes", + ...routeRules.cache + }); + } + router.use(h.route, handler, h.method); + } + } + h3App.use(config.app.baseURL, router.handler); + const app = { + hooks, + h3App, + router, + localCall, + localFetch, + captureError + }; + return app; +} +function runNitroPlugins(nitroApp2) { + for (const plugin of plugins) { + try { + plugin(nitroApp2); + } catch (error) { + nitroApp2.captureError(error, { tags: ["plugin"] }); + throw error; + } + } +} +const nitroApp = createNitroApp(); +function useNitroApp() { + return nitroApp; +} +runNitroPlugins(nitroApp); + +function defineRenderHandler(render) { + const runtimeConfig = useRuntimeConfig(); + return eventHandler(async (event) => { + const nitroApp = useNitroApp(); + const ctx = { event, render, response: void 0 }; + await nitroApp.hooks.callHook("render:before", ctx); + if (!ctx.response) { + if (event.path === `${runtimeConfig.app.baseURL}favicon.ico`) { + setResponseHeader(event, "Content-Type", "image/x-icon"); + return send( + event, + "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" + ); + } + ctx.response = await ctx.render(event); + if (!ctx.response) { + const _currentStatus = getResponseStatus(event); + setResponseStatus(event, _currentStatus === 200 ? 500 : _currentStatus); + return send( + event, + "No response returned from render handler: " + event.path + ); + } + } + await nitroApp.hooks.callHook("render:response", ctx.response, ctx); + if (ctx.response.headers) { + setResponseHeaders(event, ctx.response.headers); + } + if (ctx.response.statusCode || ctx.response.statusMessage) { + setResponseStatus( + event, + ctx.response.statusCode, + ctx.response.statusMessage + ); + } + return ctx.response.body; + }); +} + +const debug = (...args) => { +}; +function GracefulShutdown(server, opts) { + opts = opts || {}; + const options = Object.assign( + { + signals: "SIGINT SIGTERM", + timeout: 3e4, + development: false, + forceExit: true, + onShutdown: (signal) => Promise.resolve(signal), + preShutdown: (signal) => Promise.resolve(signal) + }, + opts + ); + let isShuttingDown = false; + const connections = {}; + let connectionCounter = 0; + const secureConnections = {}; + let secureConnectionCounter = 0; + let failed = false; + let finalRun = false; + function onceFactory() { + let called = false; + return (emitter, events, callback) => { + function call() { + if (!called) { + called = true; + return Reflect.apply(callback, this, arguments); + } + } + for (const e of events) { + emitter.on(e, call); + } + }; + } + const signals = options.signals.split(" ").map((s) => s.trim()).filter((s) => s.length > 0); + const once = onceFactory(); + once(process, signals, (signal) => { + debug("received shut down signal", signal); + shutdown(signal).then(() => { + if (options.forceExit) { + process.exit(failed ? 1 : 0); + } + }).catch((error) => { + debug("server shut down error occurred", error); + process.exit(1); + }); + }); + function isFunction(functionToCheck) { + const getType = Object.prototype.toString.call(functionToCheck); + return /^\[object\s([A-Za-z]+)?Function]$/.test(getType); + } + function destroy(socket, force = false) { + if (socket._isIdle && isShuttingDown || force) { + socket.destroy(); + if (socket.server instanceof Bt.Server) { + delete connections[socket._connectionId]; + } else { + delete secureConnections[socket._connectionId]; + } + } + } + function destroyAllConnections(force = false) { + debug("Destroy Connections : " + (force ? "forced close" : "close")); + let counter = 0; + let secureCounter = 0; + for (const key of Object.keys(connections)) { + const socket = connections[key]; + const serverResponse = socket._httpMessage; + if (serverResponse && !force) { + if (!serverResponse.headersSent) { + serverResponse.setHeader("connection", "close"); + } + } else { + counter++; + destroy(socket); + } + } + debug("Connections destroyed : " + counter); + debug("Connection Counter : " + connectionCounter); + for (const key of Object.keys(secureConnections)) { + const socket = secureConnections[key]; + const serverResponse = socket._httpMessage; + if (serverResponse && !force) { + if (!serverResponse.headersSent) { + serverResponse.setHeader("connection", "close"); + } + } else { + secureCounter++; + destroy(socket); + } + } + debug("Secure Connections destroyed : " + secureCounter); + debug("Secure Connection Counter : " + secureConnectionCounter); + } + server.on("request", (req, res) => { + req.socket._isIdle = false; + if (isShuttingDown && !res.headersSent) { + res.setHeader("connection", "close"); + } + res.on("finish", () => { + req.socket._isIdle = true; + destroy(req.socket); + }); + }); + server.on("connection", (socket) => { + if (isShuttingDown) { + socket.destroy(); + } else { + const id = connectionCounter++; + socket._isIdle = true; + socket._connectionId = id; + connections[id] = socket; + socket.once("close", () => { + delete connections[socket._connectionId]; + }); + } + }); + server.on("secureConnection", (socket) => { + if (isShuttingDown) { + socket.destroy(); + } else { + const id = secureConnectionCounter++; + socket._isIdle = true; + socket._connectionId = id; + secureConnections[id] = socket; + socket.once("close", () => { + delete secureConnections[socket._connectionId]; + }); + } + }); + process.on("close", () => { + debug("closed"); + }); + function shutdown(sig) { + function cleanupHttp() { + destroyAllConnections(); + debug("Close http server"); + return new Promise((resolve, reject) => { + server.close((err) => { + if (err) { + return reject(err); + } + return resolve(true); + }); + }); + } + debug("shutdown signal - " + sig); + if (options.development) { + debug("DEV-Mode - immediate forceful shutdown"); + return process.exit(0); + } + function finalHandler() { + if (!finalRun) { + finalRun = true; + if (options.finally && isFunction(options.finally)) { + debug("executing finally()"); + options.finally(); + } + } + return Promise.resolve(); + } + function waitForReadyToShutDown(totalNumInterval) { + debug(`waitForReadyToShutDown... ${totalNumInterval}`); + if (totalNumInterval === 0) { + debug( + `Could not close connections in time (${options.timeout}ms), will forcefully shut down` + ); + return Promise.resolve(true); + } + const allConnectionsClosed = Object.keys(connections).length === 0 && Object.keys(secureConnections).length === 0; + if (allConnectionsClosed) { + debug("All connections closed. Continue to shutting down"); + return Promise.resolve(false); + } + debug("Schedule the next waitForReadyToShutdown"); + return new Promise((resolve) => { + setTimeout(() => { + resolve(waitForReadyToShutDown(totalNumInterval - 1)); + }, 250); + }); + } + if (isShuttingDown) { + return Promise.resolve(); + } + debug("shutting down"); + return options.preShutdown(sig).then(() => { + isShuttingDown = true; + cleanupHttp(); + }).then(() => { + const pollIterations = options.timeout ? Math.round(options.timeout / 250) : 0; + return waitForReadyToShutDown(pollIterations); + }).then((force) => { + debug("Do onShutdown now"); + if (force) { + destroyAllConnections(force); + } + return options.onShutdown(sig); + }).then(finalHandler).catch((error) => { + const errString = typeof error === "string" ? error : JSON.stringify(error); + debug(errString); + failed = true; + throw errString; + }); + } + function shutdownManual() { + return shutdown("manual"); + } + return shutdownManual; +} + +function getGracefulShutdownConfig() { + return { + disabled: !!process.env.NITRO_SHUTDOWN_DISABLED, + signals: (process.env.NITRO_SHUTDOWN_SIGNALS || "SIGTERM SIGINT").split(" ").map((s) => s.trim()), + timeout: Number.parseInt(process.env.NITRO_SHUTDOWN_TIMEOUT || "", 10) || 3e4, + forceExit: !process.env.NITRO_SHUTDOWN_NO_FORCE_EXIT + }; +} +function setupGracefulShutdown(listener, nitroApp) { + const shutdownConfig = getGracefulShutdownConfig(); + if (shutdownConfig.disabled) { + return; + } + GracefulShutdown(listener, { + signals: shutdownConfig.signals.join(" "), + timeout: shutdownConfig.timeout, + forceExit: shutdownConfig.forceExit, + onShutdown: async () => { + await new Promise((resolve) => { + const timeout = setTimeout(() => { + console.warn("Graceful shutdown timeout, force exiting..."); + resolve(); + }, shutdownConfig.timeout); + nitroApp.hooks.callHook("close").catch((error) => { + console.error(error); + }).finally(() => { + clearTimeout(timeout); + resolve(); + }); + }); + } + }); +} + +export { NUXT_NO_SCRIPTS_PATTERNS as A, relative as B, joinURL as C, NUXT_PAYLOAD_INLINE as D, appTeleportTag as E, NUXT_PAGE_PATTERNS as F, defineRenderHandler as G, toRequestEvent as H, setResponseHeader as I, NUXT_PRERENDER_NO_SSR_ROUTES as N, trapUnhandledNodeErrors as a, useNitroApp as b, defineEventHandler as c, destr as d, createError$1 as e, useStorage as f, getHeader as g, setHeader as h, appRootTag as i, joinRelativeURL as j, appRootAttrs as k, appSpaLoaderTag as l, appSpaLoaderAttrs as m, getRouteRules as n, createHead as o, unheadOptions as p, appId as q, getQuery as r, setupGracefulShutdown as s, toNodeListener as t, useRuntimeConfig as u, appHead as v, writeEarlyHints as w, NUXT_SSR_STREAMING as x, renderSSRHeadOptions as y, appTeleportAttrs as z }; +//# sourceMappingURL=nitro.mjs.map diff --git a/apps/web/.output/server/chunks/_/nitro.mjs.map b/apps/web/.output/server/chunks/_/nitro.mjs.map new file mode 100644 index 0000000..0803f44 --- /dev/null +++ b/apps/web/.output/server/chunks/_/nitro.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"nitro.mjs","sources":["../../../../../../node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs","../../../../../../node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs","../../../../../../node_modules/.pnpm/radix3@1.1.2/node_modules/radix3/dist/index.mjs","../../../../../../node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs","../../../../../../node_modules/.pnpm/node-mock-http@1.0.5/node_modules/node-mock-http/dist/index.mjs","../../../../../../node_modules/.pnpm/h3@1.15.11/node_modules/h3/dist/index.mjs","../../../../../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs","../../../../../../node_modules/.pnpm/node-fetch-native@1.6.7/node_modules/node-fetch-native/dist/native.mjs","../../../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs","../../../../../../node_modules/.pnpm/unstorage@1.17.6_db0@0.3.4__00bdbc150e9a7b30d9cd678b734268a7/node_modules/unstorage/dist/shared/unstorage.lWbgcyKt.mjs","../../../../../../node_modules/.pnpm/unstorage@1.17.6_db0@0.3.4__00bdbc150e9a7b30d9cd678b734268a7/node_modules/unstorage/dist/index.mjs","../../../../../../node_modules/.pnpm/unstorage@1.17.6_db0@0.3.4__00bdbc150e9a7b30d9cd678b734268a7/node_modules/unstorage/drivers/utils/index.mjs","../../../../../../node_modules/.pnpm/unstorage@1.17.6_db0@0.3.4__00bdbc150e9a7b30d9cd678b734268a7/node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../../../node_modules/.pnpm/unstorage@1.17.6_db0@0.3.4__00bdbc150e9a7b30d9cd678b734268a7/node_modules/unstorage/drivers/fs-lite.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../../../node_modules/.pnpm/ohash@2.0.12/node_modules/ohash/dist/crypto/node/index.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../../../node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs","../../../../../../node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/route-rules-utils.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../../../node_modules/.pnpm/@nuxt+nitro-server@4.6.2_fbe41d24c9f3c490f436923e6993b09f/node_modules/@nuxt/nitro-server/dist/runtime/utils/event.mjs","../../../../../../node_modules/.pnpm/@nuxt+nitro-server@4.6.2_fbe41d24c9f3c490f436923e6993b09f/node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../../../node_modules/.pnpm/@unhead+vue@3.4.3_@oxc-proj_da68b103eef951cea18abface4463f4e/node_modules/@unhead/vue/dist/shared/vue.DKb5ZKVl.mjs","../../../../../../node_modules/.pnpm/@unhead+vue@3.4.3_@oxc-proj_da68b103eef951cea18abface4463f4e/node_modules/@unhead/vue/dist/shared/vue.D2XR8FqS.mjs","../../../../../../node_modules/.pnpm/@unhead+vue@3.4.3_@oxc-proj_da68b103eef951cea18abface4463f4e/node_modules/@unhead/vue/dist/server.mjs","../../../../../../node_modules/.pnpm/@unhead+vue@3.4.3_@oxc-proj_da68b103eef951cea18abface4463f4e/node_modules/@unhead/vue/dist/legacy.mjs","../../../../../../node_modules/.pnpm/@nuxt+nitro-server@4.6.2_fbe41d24c9f3c490f436923e6993b09f/node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../../../node_modules/.pnpm/@nuxt+nitro-server@4.6.2_fbe41d24c9f3c490f436923e6993b09f/node_modules/@nuxt/nitro-server/dist/runtime/utils/route-rules.mjs","../../../../../../node_modules/.pnpm/@nuxt+nitro-server@4.6.2_fbe41d24c9f3c490f436923e6993b09f/node_modules/@nuxt/nitro-server/dist/runtime/plugins/route-rules.mjs","../../../../../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../../../node_modules/.pnpm/nitropack@2.13.5_@electric-_ebbe948bd4fb9bf30a70b7ec0313af63/node_modules/nitropack/dist/runtime/internal/shutdown.mjs"],"names":["HASH_RE","ENC_PIPE_RE","createRouter","f","h","i","l","createError","mergeHeaders","nodeFetch","http","https","Headers","Headers$1","AbortController$1","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","_inlineAppConfig","createRadixRouter","getRouteRules","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/_/site.mjs b/apps/web/.output/server/chunks/_/site.mjs new file mode 100644 index 0000000..41e894d --- /dev/null +++ b/apps/web/.output/server/chunks/_/site.mjs @@ -0,0 +1,12 @@ +const siteConfig = { + locale: "fa_IR", + lang: "fa", + dir: "rtl", + logo: "/images/logo.png", + favicon: "/favicon.svg", + themeColor: "#0b1224", + areaServed: "IR" +}; + +export { siteConfig as s }; +//# sourceMappingURL=site.mjs.map diff --git a/apps/web/.output/server/chunks/_/site.mjs.map b/apps/web/.output/server/chunks/_/site.mjs.map new file mode 100644 index 0000000..0193c2e --- /dev/null +++ b/apps/web/.output/server/chunks/_/site.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"site.mjs","sources":["../../../../shared/config/site.ts"],"names":[],"mappings":"AAIO,MAAM,UAAA,GAAa;AAAA,EAGxB,MAAA,EAAQ,OAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM,kBAAA;AAAA,EACN,OAAA,EAAS,cAAA;AAAA,EACT,UAAA,EAAY,SAAA;AAAA,EACZ,UAAA,EAAY;AACd;;"} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/build/SectionHead-n0GUJPlh.mjs b/apps/web/.output/server/chunks/build/SectionHead-n0GUJPlh.mjs new file mode 100644 index 0000000..49d13e6 --- /dev/null +++ b/apps/web/.output/server/chunks/build/SectionHead-n0GUJPlh.mjs @@ -0,0 +1,152 @@ +import { a as fade } from './motion-BvlOLZ1k.mjs'; +import { defineComponent, computed, unref, mergeProps, withCtx, renderSlot, createVNode, toDisplayString, resolveDynamicComponent, openBlock, createBlock, createCommentVNode, Fragment, useSSRContext } from 'vue'; +import { ssrRenderComponent, ssrRenderSlot, ssrRenderAttrs, ssrRenderClass, ssrInterpolate, ssrRenderVNode, ssrRenderList } from 'vue/server-renderer'; +import { motion } from 'motion-v'; + +//#region app/components/ui/Lines.vue?vue&type=script&setup=true&lang.ts +var Lines_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "Lines", + __ssrInlineRender: true, + props: { text: {} }, + setup(__props) { + /** Renders editor text where "\n" means a line break */ + const props = __props; + const lines = computed(() => props.text.split("\n")); + return (_ctx, _push, _parent, _attrs) => { + _push(``); + ssrRenderList(unref(lines), (line, i) => { + _push(``); + if (i > 0) _push(`
`); + else _push(``); + _push(`${ssrInterpolate(line)}`); + }); + _push(``); + }; + } +}); +//#endregion +//#region app/components/ui/Lines.vue +var _sfc_setup$2 = Lines_vue_vue_type_script_setup_true_lang_default.setup; +Lines_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ui/Lines.vue"); + return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0; +}; +var Lines_default = Object.assign(Lines_vue_vue_type_script_setup_true_lang_default, { __name: "UiLines" }); +//#endregion +//#region app/components/ui/Reveal.vue?vue&type=script&setup=true&lang.ts +var Reveal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "Reveal", + __ssrInlineRender: true, + props: { delay: { default: 0 } }, + setup(__props) { + const props = __props; + const motionProps = computed(() => fade(props.delay, 34)); + return (_ctx, _push, _parent, _attrs) => { + _push(ssrRenderComponent(unref(motion).div, mergeProps(unref(motionProps), _attrs), { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent, _scopeId); + else return [renderSlot(_ctx.$slots, "default")]; + }), + _: 3 + }, _parent)); + }; + } +}); +//#endregion +//#region app/components/ui/Reveal.vue +var _sfc_setup$1 = Reveal_vue_vue_type_script_setup_true_lang_default.setup; +Reveal_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ui/Reveal.vue"); + return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; +}; +var Reveal_default = Object.assign(Reveal_vue_vue_type_script_setup_true_lang_default, { __name: "UiReveal" }); +//#endregion +//#region app/components/ui/SectionHead.vue?vue&type=script&setup=true&lang.ts +var SectionHead_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "SectionHead", + __ssrInlineRender: true, + props: { + tag: {}, + title: {}, + highlight: {}, + desc: {}, + center: { + type: Boolean, + default: false + }, + headingId: {}, + level: { default: 2 } + }, + setup(__props) { + return (_ctx, _push, _parent, _attrs) => { + _push(``); + _push(ssrRenderComponent(Reveal_default, null, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(`
//${ssrInterpolate(__props.tag)}
`); + else return [createVNode("div", { class: `flex items-center gap-3 ${__props.center ? "justify-center" : ""}` }, [ + createVNode("span", { class: "font-mono text-sm text-accent" }, "//"), + createVNode("span", { class: "font-mono text-xs tracking-[0.25em] text-muted" }, toDisplayString(__props.tag), 1), + createVNode("span", { class: "h-px w-14 bg-line" }) + ], 2)]; + }), + _: 1 + }, _parent)); + _push(ssrRenderComponent(Reveal_default, { delay: .08 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) ssrRenderVNode(_push, createVNode(resolveDynamicComponent(`h${__props.level}`), { + id: __props.headingId, + class: "mt-3.5 sm:mt-5 text-2xl sm:text-3xl md:text-5xl font-black leading-tight sm:leading-[1.25] md:leading-[1.2]" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) ssrRenderSlot(_ctx.$slots, "title", {}, () => { + if (__props.title) _push(ssrRenderComponent(Lines_default, { text: __props.title }, null, _parent, _scopeId)); + else _push(``); + if (__props.highlight) _push(`${ssrInterpolate(__props.highlight)}`); + else _push(``); + }, _push, _parent, _scopeId); + else return [renderSlot(_ctx.$slots, "title", {}, () => [__props.title ? (openBlock(), createBlock(Lines_default, { + key: 0, + text: __props.title + }, null, 8, ["text"])) : createCommentVNode("", true), __props.highlight ? (openBlock(), createBlock(Fragment, { key: 1 }, [createVNode("br"), createVNode("span", { class: "text-accent" }, toDisplayString(__props.highlight), 1)], 64)) : createCommentVNode("", true)])]; + }), + _: 3 + }), _parent, _scopeId); + else return [(openBlock(), createBlock(resolveDynamicComponent(`h${__props.level}`), { + id: __props.headingId, + class: "mt-3.5 sm:mt-5 text-2xl sm:text-3xl md:text-5xl font-black leading-tight sm:leading-[1.25] md:leading-[1.2]" + }, { + default: withCtx(() => [renderSlot(_ctx.$slots, "title", {}, () => [__props.title ? (openBlock(), createBlock(Lines_default, { + key: 0, + text: __props.title + }, null, 8, ["text"])) : createCommentVNode("", true), __props.highlight ? (openBlock(), createBlock(Fragment, { key: 1 }, [createVNode("br"), createVNode("span", { class: "text-accent" }, toDisplayString(__props.highlight), 1)], 64)) : createCommentVNode("", true)])]), + _: 3 + }, 8, ["id"]))]; + }), + _: 3 + }, _parent)); + if (__props.desc) _push(ssrRenderComponent(Reveal_default, { delay: .16 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(`

${ssrInterpolate(__props.desc)}

`); + else return [createVNode("p", { class: `mt-3 sm:mt-5 max-w-xl text-xs sm:text-base leading-6 sm:leading-8 text-muted ${__props.center ? "mx-auto" : ""}` }, toDisplayString(__props.desc), 3)]; + }), + _: 1 + }, _parent)); + else _push(``); + _push(``); + }; + } +}); +//#endregion +//#region app/components/ui/SectionHead.vue +var _sfc_setup = SectionHead_vue_vue_type_script_setup_true_lang_default.setup; +SectionHead_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ui/SectionHead.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +var SectionHead_default = Object.assign(SectionHead_vue_vue_type_script_setup_true_lang_default, { __name: "UiSectionHead" }); + +export { Lines_default as L, Reveal_default as R, SectionHead_default as S }; +//# sourceMappingURL=SectionHead-n0GUJPlh.mjs.map diff --git a/apps/web/.output/server/chunks/build/SectionHead-n0GUJPlh.mjs.map b/apps/web/.output/server/chunks/build/SectionHead-n0GUJPlh.mjs.map new file mode 100644 index 0000000..6a0507d --- /dev/null +++ b/apps/web/.output/server/chunks/build/SectionHead-n0GUJPlh.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"SectionHead-n0GUJPlh.mjs","sources":["../../../../app/components/ui/Lines.vue","../../../../app/components/ui/Reveal.vue","../../../../app/components/ui/SectionHead.vue"],"names":["_unref","_ssrInterpolate","_ssrRenderComponent","_mergeProps","_withCtx","_renderSlot","_ssrRenderClass","_createVNode","_toDisplayString","Reveal","_resolveDynamicComponent","Lines","_openBlock","_createBlock","_Fragment"],"mappings":"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"} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/build/VuesaxIcon-styles.D5MiLdu2.mjs b/apps/web/.output/server/chunks/build/VuesaxIcon-styles.D5MiLdu2.mjs new file mode 100644 index 0000000..5fa5f41 --- /dev/null +++ b/apps/web/.output/server/chunks/build/VuesaxIcon-styles.D5MiLdu2.mjs @@ -0,0 +1,9 @@ +//#region app/components/ui/VuesaxIcon.vue?vue&type=style&index=0&scoped=ca18e3bd&inline&used&lang.css +var VuesaxIcon_vue_vue_type_style_index_0_scoped_ca18e3bd_inline_used_lang_default = ".vx-icon[data-v-ca18e3bd]{color:inherit;vertical-align:-.15em;flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex}.vx-icon[data-v-ca18e3bd] svg{width:100%;height:100%;display:block}"; + +const VuesaxIconStyles_D5MiLdu2 = [ + VuesaxIcon_vue_vue_type_style_index_0_scoped_ca18e3bd_inline_used_lang_default +]; + +export { VuesaxIconStyles_D5MiLdu2 as default }; +//# sourceMappingURL=VuesaxIcon-styles.D5MiLdu2.mjs.map diff --git a/apps/web/.output/server/chunks/build/VuesaxIcon-styles.D5MiLdu2.mjs.map b/apps/web/.output/server/chunks/build/VuesaxIcon-styles.D5MiLdu2.mjs.map new file mode 100644 index 0000000..2b938b7 --- /dev/null +++ b/apps/web/.output/server/chunks/build/VuesaxIcon-styles.D5MiLdu2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"VuesaxIcon-styles.D5MiLdu2.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/VuesaxIcon-styles.D5MiLdu2.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/build/_slug_-B1b2FwF6.mjs b/apps/web/.output/server/chunks/build/_slug_-B1b2FwF6.mjs new file mode 100644 index 0000000..075739b --- /dev/null +++ b/apps/web/.output/server/chunks/build/_slug_-B1b2FwF6.mjs @@ -0,0 +1,321 @@ +import { u as useRoute$1, a as useNuxtApp, c as useSiteStore, d as useAsyncData, e as createError, f as useAbsUrl, g as useHead, h as useSeoMeta, i as useJsonLd, j as categoryPageSchema, k as useSeoContext, N as NuxtLink, V as VuesaxIcon_default } from '../virtual/entry.mjs'; +import { f as faNum } from './motion-BvlOLZ1k.mjs'; +import { R as Reveal_default, S as SectionHead_default } from './SectionHead-n0GUJPlh.mjs'; +import { defineComponent, withAsyncContext, ref, computed, unref, withCtx, createTextVNode, createVNode, toDisplayString, openBlock, createBlock, createCommentVNode, Fragment, renderList, useSSRContext } from 'vue'; +import { ssrRenderAttrs, ssrRenderAttr, ssrRenderComponent, ssrInterpolate, ssrRenderClass, ssrRenderList } from 'vue/server-renderer'; +import 'vue-router'; +import 'pinia'; +import 'node:module'; +import 'node:buffer'; +import 'node:http'; +import 'node:https'; +import 'node:zlib'; +import 'node:stream'; +import 'node:util'; +import 'node:url'; +import 'node:net'; +import 'node:fs'; +import 'node:path'; +import '../routes/renderer.mjs'; +import '../_/nitro.mjs'; +import 'unhead/server'; +import 'unhead/legacy'; +import 'unhead/plugins'; +import 'node:events'; +import 'node:crypto'; +import 'nostics'; +import 'vue-bundle-renderer/runtime'; +import 'devalue'; +import '../_/site.mjs'; +import 'motion-v'; + +//#region app/pages/categories/[slug].vue?vue&type=script&setup=true&lang.ts +var _slug__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "[slug]", + __ssrInlineRender: true, + async setup(__props) { + let __temp, __restore; + const slug = useRoute$1().params.slug; + const { $api } = useNuxtApp(); + const site = useSiteStore(); + const { data, error } = ([__temp, __restore] = withAsyncContext(() => useAsyncData(`category:${slug}`, () => $api(`/public/categories/${encodeURIComponent(slug)}`))), __temp = await __temp, __restore(), __temp); + if (error.value || !data.value) { + const notFound = error.value?.statusCode === 404; + throw createError({ + statusCode: notFound ? 404 : 500, + statusMessage: notFound ? "دسته‌بندی یافت نشد" : "خطا در دریافت اطلاعات", + fatal: true + }); + } + const category = data.value; + const categoryIndex = site.categories.findIndex((c) => c.slug === slug); + const canonical = useAbsUrl()(`/categories/${slug}`); + const description = category.seoDescription || category.fullDesc; + useHead({ + title: category.seoTitle || category.name, + link: [{ + rel: "canonical", + href: canonical + }] + }); + useSeoMeta({ + description, + robots: "index, follow", + ogUrl: canonical, + ogTitle: `${category.seoTitle || category.name} | ${site.settings.name}`, + ogDescription: description + }); + useJsonLd(categoryPageSchema(useSeoContext(), category), `category-${slug}`); + const activeGroup = ref(null); + const visibleProducts = computed(() => activeGroup.value ? category.products.filter((p) => p.group === activeGroup.value) : category.products); + const activeGroupDesc = computed(() => category.groups?.find((g) => g.slug === activeGroup.value)?.desc); + const groupCount = (g) => category.products.filter((p) => p.group === g).length; + return (_ctx, _push, _parent, _attrs) => { + const _component_NuxtLink = NuxtLink; + _push(`
`); + if (unref(category).coverImage) _push(``); + else _push(``); + _push(`
`); + _push(ssrRenderComponent(Reveal_default, null, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(``); + } else return [createVNode("nav", { + class: "flex items-center gap-2 text-sm text-muted", + "aria-label": "مسیر" + }, [ + createVNode(_component_NuxtLink, { + to: "/", + class: "transition-colors hover:text-accent" + }, { + default: withCtx(() => [createTextVNode("خانه")]), + _: 1 + }), + createVNode("span", { class: "text-line" }, "/"), + createVNode(_component_NuxtLink, { + to: "/#products", + class: "transition-colors hover:text-accent" + }, { + default: withCtx(() => [createTextVNode(" محصولات ")]), + _: 1 + }), + createVNode("span", { class: "text-line" }, "/"), + createVNode("span", { class: "text-ink" }, toDisplayString(unref(category).name), 1) + ])]; + }), + _: 1 + }, _parent)); + _push(`
`); + _push(ssrRenderComponent(SectionHead_default, { + tag: `${("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(unref(categoryIndex) + 1).padStart(2, "0"))} — محصولات`, + desc: unref(category).fullDesc, + level: 1 + }, { + title: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(`${ssrInterpolate(unref(category).name)}`); + else return [createTextVNode(toDisplayString(unref(category).name), 1)]; + }), + _: 1 + }, _parent)); + _push(`
`); + _push(ssrRenderComponent(Reveal_default, { delay: .2 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(`
${ssrInterpolate(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(unref(category).products.length))} محصول ${ssrInterpolate(unref(category).nameEn)}
`); + else return [createVNode("div", { class: "mt-8 flex flex-wrap items-center gap-4" }, [createVNode("span", { class: "rounded-full border border-accent/40 bg-accent/10 px-4 py-1.5 font-mono text-xs text-accent backdrop-blur" }, toDisplayString(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(unref(category).products.length)) + " محصول ", 1), createVNode("span", { class: "font-mono text-xs tracking-[0.25em] text-muted/60" }, toDisplayString(unref(category).nameEn), 1)])]; + }), + _: 1 + }, _parent)); + _push(`
`); + if (unref(category).groups?.length) { + _push(`
`); + ssrRenderList(unref(category).groups, (g) => { + _push(``); + }); + _push(`
`); + if (unref(activeGroupDesc)) _push(`

${ssrInterpolate(unref(activeGroupDesc))}

`); + else _push(``); + _push(`
`); + } else _push(``); + _push(`
`); + ssrRenderList(unref(visibleProducts), (product, i) => { + _push(ssrRenderComponent(Reveal_default, { + key: product.code, + delay: i * .06 + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(ssrRenderComponent(_component_NuxtLink, { + to: `/products/${product.slug}`, + class: "group flex h-full flex-col overflow-hidden rounded-xl border border-line bg-panel/80 backdrop-blur transition-all duration-500 hover:border-accent/40 hover:shadow-[0_8px_40px_rgba(255,90,0,0.08)]" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
`); + if (!product.image) _push(`
`); + else _push(``); + _push(`
${ssrInterpolate(product.code)}${ssrInterpolate(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(i + 1).padStart(2, "0")))}

${ssrInterpolate(product.name)}

${ssrInterpolate(product.nameEn)}

${ssrInterpolate(product.desc)}

`); + ssrRenderList(product.specs, (s) => { + _push(`${ssrInterpolate(s)}`); + }); + _push(`
`); + if (product.variants?.length) { + _push(`
مدل‌ها / رنگ‌ها:
`); + ssrRenderList(product.variants, (v) => { + _push(`${ssrInterpolate(v)}`); + }); + _push(`
`); + } else _push(``); + _push(` مشاهده جزئیات `); + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "arrow-left", + class: "size-4 transition-transform group-hover:-translate-x-1" + }, null, _parent, _scopeId)); + _push(`
`); + } else return [createVNode("div", { class: ["relative aspect-[4/3] overflow-hidden", product.image && "bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.14),transparent_70%)]"] }, [ + createVNode("img", { + src: product.image ?? unref(category).coverImage ?? void 0, + alt: product.name, + loading: "lazy", + decoding: "async", + class: ["size-full transition-transform duration-700 group-hover:scale-105", product.image ? "object-contain p-8" : "object-cover"] + }, null, 10, ["src", "alt"]), + !product.image ? (openBlock(), createBlock("div", { + key: 0, + class: "absolute inset-0 bg-gradient-to-t from-bg/60 to-transparent" + })) : createCommentVNode("", true), + createVNode("div", { class: "absolute inset-x-0 top-0 flex items-center justify-between p-4" }, [createVNode("span", { class: "rounded-full bg-bg/60 px-3 py-1 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur" }, toDisplayString(product.code), 1), createVNode("span", { class: "font-mono text-xs text-accent" }, toDisplayString(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(i + 1).padStart(2, "0"))), 1)]) + ], 2), createVNode("div", { class: "flex flex-1 flex-col p-5 md:p-6" }, [ + createVNode("h3", { class: "text-xl font-black transition-colors group-hover:text-accent" }, toDisplayString(product.name), 1), + createVNode("p", { class: "mt-1 font-mono text-[10px] tracking-[0.2em] text-muted" }, toDisplayString(product.nameEn), 1), + createVNode("p", { class: "mt-3 text-sm leading-8 text-muted" }, toDisplayString(product.desc), 1), + createVNode("div", { class: "mt-4 flex flex-wrap gap-2" }, [(openBlock(true), createBlock(Fragment, null, renderList(product.specs, (s) => { + return openBlock(), createBlock("span", { + key: s, + class: "rounded-full border border-accent/40 bg-accent/10 px-3 py-1 font-mono text-[10px] text-accent" + }, toDisplayString(s), 1); + }), 128))]), + product.variants?.length ? (openBlock(), createBlock("div", { + key: 0, + class: "mt-4" + }, [createVNode("div", { class: "mb-2 text-xs text-muted" }, "مدل‌ها / رنگ‌ها:"), createVNode("div", { class: "flex flex-wrap gap-1.5" }, [(openBlock(true), createBlock(Fragment, null, renderList(product.variants, (v) => { + return openBlock(), createBlock("span", { + key: v, + class: "rounded-md border border-line bg-panel-2 px-2.5 py-1 text-[11px] text-ink/70" + }, toDisplayString(v), 1); + }), 128))])])) : createCommentVNode("", true), + createVNode("span", { class: "mt-auto inline-flex items-center gap-2 pt-5 text-sm font-bold text-accent" }, [createTextVNode(" مشاهده جزئیات "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-4 transition-transform group-hover:-translate-x-1" + })]) + ])]; + }), + _: 2 + }, _parent, _scopeId)); + else return [createVNode(_component_NuxtLink, { + to: `/products/${product.slug}`, + class: "group flex h-full flex-col overflow-hidden rounded-xl border border-line bg-panel/80 backdrop-blur transition-all duration-500 hover:border-accent/40 hover:shadow-[0_8px_40px_rgba(255,90,0,0.08)]" + }, { + default: withCtx(() => [createVNode("div", { class: ["relative aspect-[4/3] overflow-hidden", product.image && "bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.14),transparent_70%)]"] }, [ + createVNode("img", { + src: product.image ?? unref(category).coverImage ?? void 0, + alt: product.name, + loading: "lazy", + decoding: "async", + class: ["size-full transition-transform duration-700 group-hover:scale-105", product.image ? "object-contain p-8" : "object-cover"] + }, null, 10, ["src", "alt"]), + !product.image ? (openBlock(), createBlock("div", { + key: 0, + class: "absolute inset-0 bg-gradient-to-t from-bg/60 to-transparent" + })) : createCommentVNode("", true), + createVNode("div", { class: "absolute inset-x-0 top-0 flex items-center justify-between p-4" }, [createVNode("span", { class: "rounded-full bg-bg/60 px-3 py-1 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur" }, toDisplayString(product.code), 1), createVNode("span", { class: "font-mono text-xs text-accent" }, toDisplayString(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(i + 1).padStart(2, "0"))), 1)]) + ], 2), createVNode("div", { class: "flex flex-1 flex-col p-5 md:p-6" }, [ + createVNode("h3", { class: "text-xl font-black transition-colors group-hover:text-accent" }, toDisplayString(product.name), 1), + createVNode("p", { class: "mt-1 font-mono text-[10px] tracking-[0.2em] text-muted" }, toDisplayString(product.nameEn), 1), + createVNode("p", { class: "mt-3 text-sm leading-8 text-muted" }, toDisplayString(product.desc), 1), + createVNode("div", { class: "mt-4 flex flex-wrap gap-2" }, [(openBlock(true), createBlock(Fragment, null, renderList(product.specs, (s) => { + return openBlock(), createBlock("span", { + key: s, + class: "rounded-full border border-accent/40 bg-accent/10 px-3 py-1 font-mono text-[10px] text-accent" + }, toDisplayString(s), 1); + }), 128))]), + product.variants?.length ? (openBlock(), createBlock("div", { + key: 0, + class: "mt-4" + }, [createVNode("div", { class: "mb-2 text-xs text-muted" }, "مدل‌ها / رنگ‌ها:"), createVNode("div", { class: "flex flex-wrap gap-1.5" }, [(openBlock(true), createBlock(Fragment, null, renderList(product.variants, (v) => { + return openBlock(), createBlock("span", { + key: v, + class: "rounded-md border border-line bg-panel-2 px-2.5 py-1 text-[11px] text-ink/70" + }, toDisplayString(v), 1); + }), 128))])])) : createCommentVNode("", true), + createVNode("span", { class: "mt-auto inline-flex items-center gap-2 pt-5 text-sm font-bold text-accent" }, [createTextVNode(" مشاهده جزئیات "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-4 transition-transform group-hover:-translate-x-1" + })]) + ])]), + _: 2 + }, 1032, ["to"])]; + }), + _: 2 + }, _parent)); + }); + _push(`
`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/#products", + class: "group inline-flex items-center gap-2 text-muted transition-colors hover:text-accent" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "arrow-right", + class: "size-4 transition-transform group-hover:translate-x-1" + }, null, _parent, _scopeId)); + _push(` بازگشت به دسته‌بندی‌ها `); + } else return [createVNode(VuesaxIcon_default, { + name: "arrow-right", + class: "size-4 transition-transform group-hover:translate-x-1" + }), createTextVNode(" بازگشت به دسته‌بندی‌ها ")]; + }), + _: 1 + }, _parent)); + _push(``); + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "call", + class: "size-4" + }, null, _parent)); + _push(` درخواست قیمت
`); + }; + } +}); +//#endregion +//#region app/pages/categories/[slug].vue +var _sfc_setup = _slug__vue_vue_type_script_setup_true_lang_default.setup; +_slug__vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/categories/[slug].vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +var _slug__default = _slug__vue_vue_type_script_setup_true_lang_default; + +export { _slug__default as default }; +//# sourceMappingURL=_slug_-B1b2FwF6.mjs.map diff --git a/apps/web/.output/server/chunks/build/_slug_-B1b2FwF6.mjs.map b/apps/web/.output/server/chunks/build/_slug_-B1b2FwF6.mjs.map new file mode 100644 index 0000000..0d5559b --- /dev/null +++ b/apps/web/.output/server/chunks/build/_slug_-B1b2FwF6.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_slug_-B1b2FwF6.mjs","sources":["../../../../app/pages/categories/[slug].vue"],"names":["useRoute","_withAsyncContext","_unref","_ssrRenderAttr","_withCtx","_createTextVNode","_ssrInterpolate","_createVNode","_toDisplayString","faNum","_ssrRenderComponent","Reveal","_ssrRenderClass","_openBlock","_createBlock","_Fragment","_renderList","VuesaxIcon"],"mappings":"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"} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/build/_slug_-CkwmjXFv.mjs b/apps/web/.output/server/chunks/build/_slug_-CkwmjXFv.mjs new file mode 100644 index 0000000..33575ac --- /dev/null +++ b/apps/web/.output/server/chunks/build/_slug_-CkwmjXFv.mjs @@ -0,0 +1,914 @@ +import { u as useRoute$1, a as useNuxtApp, c as useSiteStore, d as useAsyncData, e as createError, f as useAbsUrl, g as useHead, h as useSeoMeta, k as useSeoContext, i as useJsonLd, p as productSchema, l as breadcrumbSchema, N as NuxtLink, V as VuesaxIcon_default, C as ClientOnly } from '../virtual/entry.mjs'; +import { f as faNum } from './motion-BvlOLZ1k.mjs'; +import { R as Reveal_default, S as SectionHead_default } from './SectionHead-n0GUJPlh.mjs'; +import { u as useContactStore, D as DynamicIcon_default } from './contact-DBTK0GHP.mjs'; +import { defineComponent, withAsyncContext, ref, computed, watch, withCtx, createTextVNode, unref, toDisplayString, createVNode, Transition, openBlock, createBlock, createCommentVNode, Fragment, renderList, useSSRContext } from 'vue'; +import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderClass, ssrRenderAttr, ssrRenderList, ssrRenderStyle } from 'vue/server-renderer'; +import 'vue-router'; +import 'pinia'; +import 'node:module'; +import 'node:buffer'; +import 'node:http'; +import 'node:https'; +import 'node:zlib'; +import 'node:stream'; +import 'node:util'; +import 'node:url'; +import 'node:net'; +import 'node:fs'; +import 'node:path'; +import '../routes/renderer.mjs'; +import '../_/nitro.mjs'; +import 'unhead/server'; +import 'unhead/legacy'; +import 'unhead/plugins'; +import 'node:events'; +import 'node:crypto'; +import 'nostics'; +import 'vue-bundle-renderer/runtime'; +import 'devalue'; +import '../_/site.mjs'; +import 'motion-v'; + +//#region app/pages/products/[slug].vue?vue&type=script&setup=true&lang.ts +var _slug__vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "[slug]", + __ssrInlineRender: true, + async setup(__props) { + let __temp, __restore; + const slug = useRoute$1().params.slug; + const { $api } = useNuxtApp(); + const site = useSiteStore(); + const contact = useContactStore(); + const { data, error } = ([__temp, __restore] = withAsyncContext(() => useAsyncData(`product:${slug}`, () => $api(`/public/products/${encodeURIComponent(slug)}`))), __temp = await __temp, __restore(), __temp); + if (error.value || !data.value) { + const notFound = error.value?.statusCode === 404; + throw createError({ + statusCode: notFound ? 404 : 500, + statusMessage: notFound ? "محصول یافت نشد" : "خطا در دریافت اطلاعات", + fatal: true + }); + } + const product = data.value; + const categoryPath = `/categories/${product.category.slug}`; + const ownImages = product.images.length > 0; + const images = ownImages ? product.images : product.category.coverImage ? [{ + url: product.category.coverImage, + alt: product.name, + width: null, + height: null + }] : []; + const active = ref(0); + const current = computed(() => images[active.value]); + const go = (step) => { + active.value = (active.value + step + images.length) % images.length; + }; + const lightbox = ref(false); + watch(lightbox, (open) => { + (void 0).body.style.overflow = open ? "hidden" : ""; + }); + /** a blank line in the admin text starts a new paragraph */ + const paragraphs = product.details.split(/\n\s*\n/).map((p) => p.trim()).filter(Boolean); + const facts = [ + { + label: "برند", + value: product.brand + }, + { + label: "کشور سازنده", + value: product.origin + }, + { + label: "بسته‌بندی", + value: product.packaging + }, + { + label: "حداقل سفارش", + value: product.minOrder + } + ].filter((f) => f.value); + const specRows = [ + { + name: "کد محصول", + value: product.code, + ltr: true + }, + { + name: "دسته", + value: product.category.name + }, + ...product.groupName ? [{ + name: "زیرگروه", + value: product.groupName + }] : [], + ...product.brand ? [{ + name: "برند", + value: product.brand + }] : [], + ...product.origin ? [{ + name: "کشور سازنده", + value: product.origin + }] : [], + ...product.attributes, + ...product.standards.length ? [{ + name: "استانداردها", + value: product.standards.join("، "), + ltr: true + }] : [], + ...product.sizes.length ? [{ + name: "سایزها", + value: product.sizes.join("، ") + }] : [], + ...product.variants.length ? [{ + name: "مدل‌ها / رنگ‌ها", + value: product.variants.join("، ") + }] : [], + ...product.packaging ? [{ + name: "بسته‌بندی", + value: product.packaging + }] : [], + ...product.minOrder ? [{ + name: "حداقل سفارش", + value: product.minOrder + }] : [] + ]; + const trust = computed(() => site.sections.productsIntro.trust); + const settings = computed(() => site.settings); + /** fills the contact form on the home page with this product, then scrolls to it */ + const requestQuote = () => contact.prefill(`درخواست قیمت و موجودی:\n${product.name} — کد ${product.code}`); + const absUrl = useAbsUrl(); + const canonical = absUrl(`/products/${slug}`); + const title = product.seoTitle || product.name; + const description = (product.seoDescription || product.desc || paragraphs[0] || product.category.fullDesc).slice(0, 300); + useHead({ + title, + link: [{ + rel: "canonical", + href: canonical + }, ...images[0] ? [{ + rel: "preload", + as: "image", + href: images[0].url + }] : []] + }); + useSeoMeta({ + description, + robots: "index, follow", + ogUrl: canonical, + ogTitle: `${title} | ${site.settings.name}`, + ogDescription: description, + ...images[0] && { + ogImage: absUrl(images[0].url), + ogImageAlt: images[0].alt, + twitterImage: absUrl(images[0].url) + } + }); + const seo = useSeoContext(); + useJsonLd([productSchema(seo, product), breadcrumbSchema(seo, [ + { + name: "خانه", + path: "/" + }, + { + name: product.category.name, + path: categoryPath + }, + { + name: product.name, + path: `/products/${slug}` + } + ])], `product-${slug}`); + return (_ctx, _push, _parent, _attrs) => { + const _component_NuxtLink = NuxtLink; + const _component_ClientOnly = ClientOnly; + _push(`
`); + _push(ssrRenderComponent(Reveal_default, null, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(``); + } else return [createVNode("nav", { + class: "flex flex-wrap items-center gap-2 text-sm text-muted", + "aria-label": "مسیر" + }, [ + createVNode(_component_NuxtLink, { + to: "/", + class: "transition-colors hover:text-accent" + }, { + default: withCtx(() => [createTextVNode("خانه")]), + _: 1 + }), + createVNode("span", { class: "text-line" }, "/"), + createVNode(_component_NuxtLink, { + to: "/#products", + class: "transition-colors hover:text-accent" + }, { + default: withCtx(() => [createTextVNode("محصولات")]), + _: 1 + }), + createVNode("span", { class: "text-line" }, "/"), + createVNode(_component_NuxtLink, { + to: categoryPath, + class: "transition-colors hover:text-accent" + }, { + default: withCtx(() => [createTextVNode(toDisplayString(unref(product).category.name), 1)]), + _: 1 + }), + createVNode("span", { class: "text-line" }, "/"), + createVNode("span", { class: "text-ink" }, toDisplayString(unref(product).name), 1) + ])]; + }), + _: 1 + }, _parent)); + _push(`
`); + _push(ssrRenderComponent(Reveal_default, { + class: "lg:col-span-6", + delay: .08 + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
`); + if (unref(current)) _push(``); + else _push(``); + if (!ownImages) _push(`
`); + else _push(``); + _push(`
${ssrInterpolate(unref(product).code)}`); + if (unref(images).length > 1) _push(`${ssrInterpolate(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(unref(active) + 1).padStart(2, "0")))} / ${ssrInterpolate(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(unref(images).length).padStart(2, "0")))}`); + else _push(``); + _push(`
`); + if (unref(current)) { + _push(``); + } else _push(``); + if (unref(images).length > 1) { + _push(``); + } else _push(``); + _push(`
`); + if (unref(images).length > 1) { + _push(`
`); + ssrRenderList(unref(images), (img, i) => { + _push(``); + }); + _push(`
`); + } else _push(``); + _push(`
`); + } else return [createVNode("div", { class: "relative" }, [ + createVNode("div", { class: "hazard absolute -top-3 -end-3 z-10 h-6 w-28 rounded-full opacity-90" }), + createVNode("div", { class: "relative overflow-hidden rounded-2xl border border-line bg-panel/80" }, [createVNode("div", { class: ["group relative aspect-square overflow-hidden", ownImages && "bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.16),transparent_70%)]"] }, [ + createVNode(Transition, { + "enter-active-class": "transition duration-500 ease-out", + "enter-from-class": "opacity-0 scale-[0.97]", + "leave-active-class": "absolute inset-0 transition duration-200", + "leave-to-class": "opacity-0" + }, { + default: withCtx(() => [unref(current) ? (openBlock(), createBlock("img", { + key: unref(current).url, + src: unref(current).url, + alt: unref(current).alt, + width: unref(current).width ?? void 0, + height: unref(current).height ?? void 0, + fetchpriority: "high", + decoding: "async", + class: ["size-full", ownImages ? "object-contain p-10 md:p-16" : "object-cover"] + }, null, 10, [ + "src", + "alt", + "width", + "height" + ])) : createCommentVNode("", true)]), + _: 1 + }), + !ownImages ? (openBlock(), createBlock("div", { + key: 0, + class: "absolute inset-0 bg-gradient-to-t from-bg/70 to-transparent" + })) : createCommentVNode("", true), + createVNode("div", { class: "absolute inset-x-0 top-0 flex items-center justify-between p-4 md:p-5" }, [createVNode("span", { class: "rounded-full bg-bg/60 px-3 py-1 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur" }, toDisplayString(unref(product).code), 1), unref(images).length > 1 ? (openBlock(), createBlock("span", { + key: 0, + class: "font-mono text-xs text-accent" + }, toDisplayString(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(unref(active) + 1).padStart(2, "0"))) + " / " + toDisplayString(("faNum" in _ctx ? _ctx.faNum : unref(faNum))(String(unref(images).length).padStart(2, "0"))), 1)) : createCommentVNode("", true)]), + unref(current) ? (openBlock(), createBlock("button", { + key: 1, + type: "button", + "aria-label": "نمایش بزرگ تصویر", + class: "absolute bottom-4 start-4 flex size-11 items-center justify-center rounded-full border border-line bg-bg/70 text-ink/80 backdrop-blur transition-colors hover:border-accent hover:text-accent", + onClick: ($event) => lightbox.value = true + }, [createVNode(VuesaxIcon_default, { + name: "maximize-4", + class: "size-4" + })], 8, ["onClick"])) : createCommentVNode("", true), + unref(images).length > 1 ? (openBlock(), createBlock(Fragment, { key: 2 }, [createVNode("button", { + type: "button", + "aria-label": "تصویر قبلی", + class: "absolute start-4 top-1/2 flex size-11 -translate-y-1/2 items-center justify-center rounded-full border border-line bg-bg/70 text-ink/80 opacity-0 backdrop-blur transition-all hover:border-accent hover:text-accent group-hover:opacity-100 max-md:opacity-100", + onClick: ($event) => go(-1) + }, [createVNode(VuesaxIcon_default, { + name: "arrow-right-1", + class: "size-5" + })], 8, ["onClick"]), createVNode("button", { + type: "button", + "aria-label": "تصویر بعدی", + class: "absolute end-4 top-1/2 flex size-11 -translate-y-1/2 items-center justify-center rounded-full border border-line bg-bg/70 text-ink/80 opacity-0 backdrop-blur transition-all hover:border-accent hover:text-accent group-hover:opacity-100 max-md:opacity-100", + onClick: ($event) => go(1) + }, [createVNode(VuesaxIcon_default, { + name: "arrow-left-1", + class: "size-5" + })], 8, ["onClick"])], 64)) : createCommentVNode("", true) + ], 2)]), + unref(images).length > 1 ? (openBlock(), createBlock("div", { + key: 0, + class: "mt-4 flex gap-3 overflow-x-auto pb-1" + }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(images), (img, i) => { + return openBlock(), createBlock("button", { + key: img.url, + type: "button", + "aria-label": `تصویر ${("faNum" in _ctx ? _ctx.faNum : unref(faNum))(i + 1)}`, + "aria-current": i === unref(active), + class: ["size-20 shrink-0 overflow-hidden rounded-xl border bg-panel/80 transition-all md:size-24", i === unref(active) ? "border-accent shadow-[0_0_24px_rgba(255,90,0,0.25)]" : "border-line opacity-60 hover:opacity-100"], + onClick: ($event) => active.value = i + }, [createVNode("img", { + src: img.url, + alt: img.alt, + loading: "lazy", + class: "size-full object-contain p-2" + }, null, 8, ["src", "alt"])], 10, [ + "aria-label", + "aria-current", + "onClick" + ]); + }), 128))])) : createCommentVNode("", true) + ])]; + }), + _: 1 + }, _parent)); + _push(`
`); + _push(ssrRenderComponent(Reveal_default, { delay: .12 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
${ssrInterpolate(unref(product).code)}`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: categoryPath, + class: "rounded-full border border-line px-3 py-1 text-xs text-muted transition-colors hover:border-accent/60 hover:text-accent" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(`${ssrInterpolate(unref(product).category.name)}`); + else return [createTextVNode(toDisplayString(unref(product).category.name), 1)]; + }), + _: 1 + }, _parent, _scopeId)); + if (unref(product).groupName) _push(`${ssrInterpolate(unref(product).groupName)}`); + else _push(``); + _push(`

${ssrInterpolate(unref(product).name)}

`); + if (unref(product).nameEn) _push(`

${ssrInterpolate(unref(product).nameEn)}

`); + else _push(``); + if (unref(product).desc) _push(`

${ssrInterpolate(unref(product).desc)}

`); + else _push(``); + if (unref(product).specs.length) { + _push(`
`); + ssrRenderList(unref(product).specs, (s) => { + _push(`${ssrInterpolate(s)}`); + }); + _push(`
`); + } else _push(``); + } else return [ + createVNode("div", { class: "flex flex-wrap items-center gap-2" }, [ + createVNode("span", { class: "rounded-full border border-accent/40 bg-accent/10 px-3 py-1 font-mono text-xs text-accent" }, toDisplayString(unref(product).code), 1), + createVNode(_component_NuxtLink, { + to: categoryPath, + class: "rounded-full border border-line px-3 py-1 text-xs text-muted transition-colors hover:border-accent/60 hover:text-accent" + }, { + default: withCtx(() => [createTextVNode(toDisplayString(unref(product).category.name), 1)]), + _: 1 + }), + unref(product).groupName ? (openBlock(), createBlock("span", { + key: 0, + class: "rounded-full border border-line px-3 py-1 text-xs text-muted" + }, toDisplayString(unref(product).groupName), 1)) : createCommentVNode("", true) + ]), + createVNode("h1", { class: "mt-6 text-3xl font-black leading-[1.3] md:text-5xl md:leading-[1.25]" }, toDisplayString(unref(product).name), 1), + unref(product).nameEn ? (openBlock(), createBlock("p", { + key: 0, + class: "mt-3 font-mono text-xs tracking-[0.25em] text-muted" + }, toDisplayString(unref(product).nameEn), 1)) : createCommentVNode("", true), + unref(product).desc ? (openBlock(), createBlock("p", { + key: 1, + class: "mt-6 max-w-2xl leading-9 text-ink/75" + }, toDisplayString(unref(product).desc), 1)) : createCommentVNode("", true), + unref(product).specs.length ? (openBlock(), createBlock("div", { + key: 2, + class: "mt-6 flex flex-wrap gap-2" + }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(product).specs, (s) => { + return openBlock(), createBlock("span", { + key: s, + class: "rounded-full border border-accent/40 bg-accent/10 px-3 py-1.5 font-mono text-[11px] text-accent" + }, toDisplayString(s), 1); + }), 128))])) : createCommentVNode("", true) + ]; + }), + _: 1 + }, _parent)); + if (unref(facts).length || unref(product).standards.length) _push(ssrRenderComponent(Reveal_default, { delay: .18 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
`); + ssrRenderList(unref(facts), (f) => { + _push(`
${ssrInterpolate(f.label)}
${ssrInterpolate(f.value)}
`); + }); + _push(``); + if (unref(product).standards.length) { + _push(`
استانداردها و گواهی‌ها
`); + ssrRenderList(unref(product).standards, (s) => { + _push(`${ssrInterpolate(s)}`); + }); + _push(`
`); + } else _push(``); + _push(`
`); + } else return [createVNode("dl", { class: "mt-8 grid gap-px overflow-hidden rounded-xl border border-line bg-line sm:grid-cols-2" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(facts), (f) => { + return openBlock(), createBlock("div", { + key: f.label, + class: "bg-panel/80 p-4" + }, [createVNode("dt", { class: "text-xs text-muted" }, toDisplayString(f.label), 1), createVNode("dd", { class: "mt-1.5 font-bold" }, toDisplayString(f.value), 1)]); + }), 128)), unref(product).standards.length ? (openBlock(), createBlock("div", { + key: 0, + class: "bg-panel/80 p-4 sm:col-span-2" + }, [createVNode("dt", { class: "text-xs text-muted" }, "استانداردها و گواهی‌ها"), createVNode("dd", { class: "mt-2 flex flex-wrap gap-2" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(product).standards, (s) => { + return openBlock(), createBlock("span", { + key: s, + class: "rounded-md border border-ink/15 px-2.5 py-1 font-mono text-xs tracking-wider text-ink/85", + dir: "ltr" + }, toDisplayString(s), 1); + }), 128))])])) : createCommentVNode("", true)])]; + }), + _: 1 + }, _parent)); + else _push(``); + if (unref(product).variants.length || unref(product).sizes.length) _push(ssrRenderComponent(Reveal_default, { delay: .22 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
`); + if (unref(product).variants.length) { + _push(`
مدل‌ها / رنگ‌ها
`); + ssrRenderList(unref(product).variants, (v) => { + _push(`${ssrInterpolate(v)}`); + }); + _push(`
`); + } else _push(``); + if (unref(product).sizes.length) { + _push(`
سایزها
`); + ssrRenderList(unref(product).sizes, (s) => { + _push(`${ssrInterpolate(s)}`); + }); + _push(`
`); + } else _push(``); + _push(`
`); + } else return [createVNode("div", { class: "mt-8 space-y-5" }, [unref(product).variants.length ? (openBlock(), createBlock("div", { key: 0 }, [createVNode("div", { class: "mb-2.5 text-xs text-muted" }, "مدل‌ها / رنگ‌ها"), createVNode("div", { class: "flex flex-wrap gap-2" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(product).variants, (v) => { + return openBlock(), createBlock("span", { + key: v, + class: "rounded-lg border border-line bg-panel-2 px-3 py-1.5 text-sm text-ink/80" + }, toDisplayString(v), 1); + }), 128))])])) : createCommentVNode("", true), unref(product).sizes.length ? (openBlock(), createBlock("div", { key: 1 }, [createVNode("div", { class: "mb-2.5 text-xs text-muted" }, "سایزها"), createVNode("div", { class: "flex flex-wrap gap-2" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(product).sizes, (s) => { + return openBlock(), createBlock("span", { + key: s, + class: "min-w-11 rounded-lg border border-line bg-panel-2 px-3 py-1.5 text-center font-mono text-sm text-ink/80" + }, toDisplayString(s), 1); + }), 128))])])) : createCommentVNode("", true)])]; + }), + _: 1 + }, _parent)); + else _push(``); + _push(ssrRenderComponent(Reveal_default, { delay: .26 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/#contact", + class: "group inline-flex items-center gap-2.5 rounded-full bg-accent px-7 py-4 font-bold text-bg transition-all duration-300 hover:bg-accent-soft hover:shadow-[0_8px_45px_rgba(255,90,0,0.5)]", + onClick: requestQuote + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(` درخواست قیمت و موجودی `); + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "arrow-left", + class: "size-5 transition-transform duration-300 group-hover:-translate-x-1.5" + }, null, _parent, _scopeId)); + } else return [createTextVNode(" درخواست قیمت و موجودی "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-5 transition-transform duration-300 group-hover:-translate-x-1.5" + })]; + }), + _: 1 + }, _parent, _scopeId)); + _push(``); + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "call", + class: "size-4" + }, null, _parent, _scopeId)); + _push(`${ssrInterpolate(unref(settings).phoneDisplay)}
`); + } else return [createVNode("div", { class: "mt-9 flex flex-wrap items-center gap-4" }, [createVNode(_component_NuxtLink, { + to: "/#contact", + class: "group inline-flex items-center gap-2.5 rounded-full bg-accent px-7 py-4 font-bold text-bg transition-all duration-300 hover:bg-accent-soft hover:shadow-[0_8px_45px_rgba(255,90,0,0.5)]", + onClick: requestQuote + }, { + default: withCtx(() => [createTextVNode(" درخواست قیمت و موجودی "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-5 transition-transform duration-300 group-hover:-translate-x-1.5" + })]), + _: 1 + }), createVNode("a", { + href: `tel:${unref(settings).phone}`, + class: "inline-flex items-center gap-2.5 rounded-full border border-ink/25 px-6 py-4 font-bold text-ink transition-colors duration-300 hover:border-accent hover:text-accent" + }, [createVNode(VuesaxIcon_default, { + name: "call", + class: "size-4" + }), createVNode("span", { + class: "font-mono tracking-wider", + dir: "ltr" + }, toDisplayString(unref(settings).phoneDisplay), 1)], 8, ["href"])])]; + }), + _: 1 + }, _parent)); + if (unref(trust).length) _push(ssrRenderComponent(Reveal_default, { delay: .3 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
    `); + ssrRenderList(unref(trust), (t) => { + _push(`
  • `); + _push(ssrRenderComponent(DynamicIcon_default, { + name: t.icon, + class: "size-4" + }, null, _parent, _scopeId)); + _push(`${ssrInterpolate(t.title)}
  • `); + }); + _push(`
`); + } else return [createVNode("ul", { class: "mt-9 grid gap-4 border-t border-line pt-7 sm:grid-cols-3" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(trust), (t) => { + return openBlock(), createBlock("li", { + key: t.title, + class: "flex items-start gap-3" + }, [createVNode("span", { class: "flex size-9 shrink-0 items-center justify-center rounded-lg bg-accent/10 text-accent" }, [createVNode(DynamicIcon_default, { + name: t.icon, + class: "size-4" + }, null, 8, ["name"])]), createVNode("span", { class: "text-xs leading-6 text-ink/75" }, toDisplayString(t.title), 1)]); + }), 128))])]; + }), + _: 1 + }, _parent)); + else _push(``); + _push(`
`); + _push(ssrRenderComponent(SectionHead_default, { + tag: "توضیحات", + title: unref(paragraphs).length ? "درباره این محصول" : `درباره ${unref(product).category.name}` + }, null, _parent)); + _push(ssrRenderComponent(Reveal_default, { delay: .2 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
`); + ssrRenderList(unref(paragraphs), (p, i) => { + _push(`

${ssrInterpolate(p)}

`); + }); + _push(``); + if (!unref(paragraphs).length) _push(`${ssrInterpolate(unref(product).category.fullDesc)}

`); + else _push(``); + _push(`
`); + } else return [createVNode("div", { class: "mt-8 space-y-5 leading-9 text-ink/75" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(paragraphs), (p, i) => { + return openBlock(), createBlock("p", { + key: i, + class: "whitespace-pre-line" + }, toDisplayString(p), 1); + }), 128)), !unref(paragraphs).length ? (openBlock(), createBlock("p", { key: 0 }, toDisplayString(unref(product).category.fullDesc), 1)) : createCommentVNode("", true)])]; + }), + _: 1 + }, _parent)); + if (unref(product).features.length) { + _push(`
`); + _push(ssrRenderComponent(Reveal_default, null, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(`

// ویژگی‌های کلیدی

`); + else return [createVNode("h3", { class: "flex items-center gap-3 text-xl font-black" }, [createVNode("span", { class: "font-mono text-sm text-accent" }, "//"), createTextVNode(" ویژگی‌های کلیدی ")])]; + }), + _: 1 + }, _parent)); + _push(`
    `); + ssrRenderList(unref(product).features, (f, i) => { + _push(ssrRenderComponent(Reveal_default, { + key: f, + delay: i * .04 + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
  • `); + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "tick-circle", + class: "size-3.5" + }, null, _parent, _scopeId)); + _push(`${ssrInterpolate(f)}
  • `); + } else return [createVNode("li", { class: "flex h-full items-start gap-3 rounded-xl border border-line bg-panel/60 p-4" }, [createVNode("span", { class: "mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-accent text-bg" }, [createVNode(VuesaxIcon_default, { + name: "tick-circle", + class: "size-3.5" + })]), createVNode("span", { class: "text-sm leading-7 text-ink/85" }, toDisplayString(f), 1)])]; + }), + _: 2 + }, _parent)); + }); + _push(`
`); + } else _push(``); + if (unref(product).applications.length) { + _push(`
`); + _push(ssrRenderComponent(Reveal_default, null, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(`

// کاربردها و محیط‌های مناسب

`); + else return [createVNode("h3", { class: "flex items-center gap-3 text-xl font-black" }, [createVNode("span", { class: "font-mono text-sm text-accent" }, "//"), createTextVNode(" کاربردها و محیط‌های مناسب ")])]; + }), + _: 1 + }, _parent)); + _push(ssrRenderComponent(Reveal_default, { delay: .1 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
`); + ssrRenderList(unref(product).applications, (a) => { + _push(`${ssrInterpolate(a)}`); + }); + _push(`
`); + } else return [createVNode("div", { class: "mt-6 flex flex-wrap gap-2.5" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(product).applications, (a) => { + return openBlock(), createBlock("span", { + key: a, + class: "rounded-full border border-line bg-panel/60 px-4 py-2 text-sm text-ink/80" + }, toDisplayString(a), 1); + }), 128))])]; + }), + _: 1 + }, _parent)); + _push(`
`); + } else _push(``); + _push(`
`); + if (unref(product).related.length) { + _push(`
`); + _push(ssrRenderComponent(SectionHead_default, { + tag: "محصولات مرتبط", + title: `محصولات دیگر\n${unref(product).category.name}` + }, null, _parent)); + _push(ssrRenderComponent(Reveal_default, { delay: .2 }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(ssrRenderComponent(_component_NuxtLink, { + to: categoryPath, + class: "group inline-flex items-center gap-2 rounded-full border border-line px-6 py-3 text-sm text-muted transition-colors hover:border-accent hover:text-accent" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(` مشاهده همه `); + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "arrow-left", + class: "size-4 transition-transform group-hover:-translate-x-1" + }, null, _parent, _scopeId)); + } else return [createTextVNode(" مشاهده همه "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-4 transition-transform group-hover:-translate-x-1" + })]; + }), + _: 1 + }, _parent, _scopeId)); + else return [createVNode(_component_NuxtLink, { + to: categoryPath, + class: "group inline-flex items-center gap-2 rounded-full border border-line px-6 py-3 text-sm text-muted transition-colors hover:border-accent hover:text-accent" + }, { + default: withCtx(() => [createTextVNode(" مشاهده همه "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-4 transition-transform group-hover:-translate-x-1" + })]), + _: 1 + })]; + }), + _: 1 + }, _parent)); + _push(`
`); + ssrRenderList(unref(product).related, (r, i) => { + _push(ssrRenderComponent(Reveal_default, { + key: r.code, + delay: i * .06 + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(ssrRenderComponent(_component_NuxtLink, { + to: `/products/${r.slug}`, + class: "group flex h-full flex-col overflow-hidden rounded-xl border border-line bg-panel/80 transition-all duration-500 hover:border-accent/40 hover:shadow-[0_8px_40px_rgba(255,90,0,0.08)]" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(`
${ssrInterpolate(r.code)}

${ssrInterpolate(r.name)}

${ssrInterpolate(r.nameEn)}

مشاهده محصول `); + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "arrow-left", + class: "size-3.5 transition-transform group-hover:-translate-x-1" + }, null, _parent, _scopeId)); + _push(`
`); + } else return [createVNode("div", { class: ["relative aspect-[4/3] overflow-hidden", r.image && "bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.14),transparent_70%)]"] }, [createVNode("img", { + src: r.image ?? unref(product).category.coverImage ?? void 0, + alt: r.name, + loading: "lazy", + decoding: "async", + class: ["size-full transition-transform duration-700 group-hover:scale-105", r.image ? "object-contain p-7" : "object-cover"] + }, null, 10, ["src", "alt"]), createVNode("span", { class: "absolute start-3 top-3 rounded-full bg-bg/60 px-2.5 py-0.5 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur" }, toDisplayString(r.code), 1)], 2), createVNode("div", { class: "flex flex-1 flex-col p-5" }, [ + createVNode("h3", { class: "font-black transition-colors group-hover:text-accent" }, toDisplayString(r.name), 1), + createVNode("p", { class: "mt-1 font-mono text-[10px] tracking-[0.2em] text-muted" }, toDisplayString(r.nameEn), 1), + createVNode("span", { class: "mt-auto inline-flex items-center gap-2 pt-4 text-xs font-bold text-accent" }, [createTextVNode(" مشاهده محصول "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-3.5 transition-transform group-hover:-translate-x-1" + })]) + ])]; + }), + _: 2 + }, _parent, _scopeId)); + else return [createVNode(_component_NuxtLink, { + to: `/products/${r.slug}`, + class: "group flex h-full flex-col overflow-hidden rounded-xl border border-line bg-panel/80 transition-all duration-500 hover:border-accent/40 hover:shadow-[0_8px_40px_rgba(255,90,0,0.08)]" + }, { + default: withCtx(() => [createVNode("div", { class: ["relative aspect-[4/3] overflow-hidden", r.image && "bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.14),transparent_70%)]"] }, [createVNode("img", { + src: r.image ?? unref(product).category.coverImage ?? void 0, + alt: r.name, + loading: "lazy", + decoding: "async", + class: ["size-full transition-transform duration-700 group-hover:scale-105", r.image ? "object-contain p-7" : "object-cover"] + }, null, 10, ["src", "alt"]), createVNode("span", { class: "absolute start-3 top-3 rounded-full bg-bg/60 px-2.5 py-0.5 font-mono text-[10px] tracking-widest text-ink/70 backdrop-blur" }, toDisplayString(r.code), 1)], 2), createVNode("div", { class: "flex flex-1 flex-col p-5" }, [ + createVNode("h3", { class: "font-black transition-colors group-hover:text-accent" }, toDisplayString(r.name), 1), + createVNode("p", { class: "mt-1 font-mono text-[10px] tracking-[0.2em] text-muted" }, toDisplayString(r.nameEn), 1), + createVNode("span", { class: "mt-auto inline-flex items-center gap-2 pt-4 text-xs font-bold text-accent" }, [createTextVNode(" مشاهده محصول "), createVNode(VuesaxIcon_default, { + name: "arrow-left", + class: "size-3.5 transition-transform group-hover:-translate-x-1" + })]) + ])]), + _: 2 + }, 1032, ["to"])]; + }), + _: 2 + }, _parent)); + }); + _push(`
`); + } else _push(``); + _push(`
`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: categoryPath, + class: "group inline-flex items-center gap-2 text-muted transition-colors hover:text-accent" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "arrow-right", + class: "size-4 transition-transform group-hover:translate-x-1" + }, null, _parent, _scopeId)); + _push(` بازگشت به ${ssrInterpolate(unref(product).category.name)}`); + } else return [createVNode(VuesaxIcon_default, { + name: "arrow-right", + class: "size-4 transition-transform group-hover:translate-x-1" + }), createTextVNode(" بازگشت به " + toDisplayString(unref(product).category.name), 1)]; + }), + _: 1 + }, _parent)); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/#contact", + class: "inline-flex items-center gap-2 rounded-full bg-accent px-6 py-3 text-sm font-bold text-bg transition-all hover:bg-accent-soft hover:shadow-[0_8px_45px_rgba(255,90,0,0.5)]", + onClick: requestQuote + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + _push(ssrRenderComponent(VuesaxIcon_default, { + name: "call", + class: "size-4" + }, null, _parent, _scopeId)); + _push(` درخواست قیمت این محصول `); + } else return [createVNode(VuesaxIcon_default, { + name: "call", + class: "size-4" + }), createTextVNode(" درخواست قیمت این محصول ")]; + }), + _: 1 + }, _parent)); + _push(`
`); + _push(ssrRenderComponent(_component_ClientOnly, null, {}, _parent)); + _push(``); + }; + } +}); +//#endregion +//#region app/pages/products/[slug].vue +var _sfc_setup = _slug__vue_vue_type_script_setup_true_lang_default.setup; +_slug__vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/products/[slug].vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +var _slug__default = _slug__vue_vue_type_script_setup_true_lang_default; + +export { _slug__default as default }; +//# sourceMappingURL=_slug_-CkwmjXFv.mjs.map diff --git a/apps/web/.output/server/chunks/build/_slug_-CkwmjXFv.mjs.map b/apps/web/.output/server/chunks/build/_slug_-CkwmjXFv.mjs.map new file mode 100644 index 0000000..71848ab --- /dev/null +++ b/apps/web/.output/server/chunks/build/_slug_-CkwmjXFv.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_slug_-CkwmjXFv.mjs","sources":["../../../../app/pages/products/[slug].vue"],"names":["useRoute","_withAsyncContext","_withCtx","_createTextVNode","_ssrInterpolate","_unref","_toDisplayString","_createVNode","_ssrRenderClass","_ssrRenderAttr","faNum","_Transition","_openBlock","_createBlock","VuesaxIcon","_Fragment","_renderList","_ssrRenderComponent","Reveal","DynamicIcon","_ssrRenderStyle"],"mappings":"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"} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/build/contact-DBTK0GHP.mjs b/apps/web/.output/server/chunks/build/contact-DBTK0GHP.mjs new file mode 100644 index 0000000..2d0ec1e --- /dev/null +++ b/apps/web/.output/server/chunks/build/contact-DBTK0GHP.mjs @@ -0,0 +1,78 @@ +import { a as useNuxtApp, V as VuesaxIcon_default } from '../virtual/entry.mjs'; +import { defineComponent, mergeProps, useSSRContext } from 'vue'; +import { ssrRenderComponent } from 'vue/server-renderer'; +import { defineStore } from 'pinia'; + +//#region app/components/ui/DynamicIcon.vue?vue&type=script&setup=true&lang.ts +var DynamicIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "DynamicIcon", + __ssrInlineRender: true, + props: { + name: {}, + size: {} + }, + setup(__props) { + return (_ctx, _push, _parent, _attrs) => { + _push(ssrRenderComponent(VuesaxIcon_default, mergeProps({ + name: __props.name, + size: __props.size + }, _attrs), null, _parent)); + }; + } +}); +//#endregion +//#region app/components/ui/DynamicIcon.vue +var _sfc_setup = DynamicIcon_vue_vue_type_script_setup_true_lang_default.setup; +DynamicIcon_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ui/DynamicIcon.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +var DynamicIcon_default = Object.assign(DynamicIcon_vue_vue_type_script_setup_true_lang_default, { __name: "UiDynamicIcon" }); +//#endregion +//#region app/stores/contact.ts +/** `website` is a honeypot field, hidden from people and left empty */ +var emptyForm = () => ({ + name: "", + org: "", + phone: "", + message: "", + website: "" +}); +var useContactStore = defineStore("contact", { + state: () => ({ + form: emptyForm(), + status: "idle", + error: "" + }), + actions: { + async submit() { + this.status = "loading"; + this.error = ""; + try { + await useNuxtApp().$api("/public/contact", { + method: "POST", + body: this.form + }); + this.status = "success"; + } catch (e) { + const err = e; + this.error = err.statusCode === 429 ? "تعداد درخواست‌ها زیاد است؛ لطفاً چند دقیقه بعد دوباره تلاش کنید." : err.data?.message ?? "ارسال درخواست انجام نشد؛ لطفاً دوباره تلاش کنید یا تماس بگیرید."; + this.status = "error"; + } + }, + /** Pre-fills the message, e.g. from a product page's "request a quote" button */ + prefill(message) { + if (this.status === "success") this.reset(); + this.form.message = message; + }, + reset() { + this.form = emptyForm(); + this.status = "idle"; + this.error = ""; + } + } +}); + +export { DynamicIcon_default as D, useContactStore as u }; +//# sourceMappingURL=contact-DBTK0GHP.mjs.map diff --git a/apps/web/.output/server/chunks/build/contact-DBTK0GHP.mjs.map b/apps/web/.output/server/chunks/build/contact-DBTK0GHP.mjs.map new file mode 100644 index 0000000..a28c47c --- /dev/null +++ b/apps/web/.output/server/chunks/build/contact-DBTK0GHP.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"contact-DBTK0GHP.mjs","sources":["../../../../app/components/ui/DynamicIcon.vue","../../../../app/stores/contact.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAOe,IAAA,IAAA,EAAM,OAAA,CAAA,IAAA;AAAO,IAAA,IAAA,EAAM,OAAA,CAAA;;;;;;;;;;;;;;;;;ACFlC,IAAM,SAAA,GAAA,OAAmB;CAAE,IAAA,EAAM,EAAA;CAAI,GAAA,EAAK,EAAA;CAAI,KAAA,EAAO,EAAA;CAAI,OAAA,EAAS,EAAA;CAAI,OAAA,EAAS;AAAG,CAAA,CAAA;AAOlF,IAAa,eAAA,GAAkB,YAAY,SAAA,EAAW;CACpD,KAAA,EAAA,OAAc;AACZ,EAAA,IAAA,EAAM,SAAA,EAAU;EAChB,MAAA,EAAQ,MAAA;EACR,KAAA,EAAO;AACT,EAAA,CAAA;CACA,OAAA,EAAS;AACP,EAAA,MAAM,MAAA,GAAS;AACb,GAAA,IAAA,CAAK,MAAA,GAAS,SAAA;AACd,GAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;GACb,IAAI;AACF,IAAA,MAAM,UAAA,EAAY,CAAC,IAAA,CAAK,iBAAA,EAAmB;KAAE,MAAA,EAAQ,MAAA;AAAQ,KAAA,IAAA,EAAM,IAAA,CAAK;KAAM,CAAA;AAC9E,IAAA,IAAA,CAAK,MAAA,GAAS,SAAA;AAChB,GAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,IAAA,MAAM,GAAA,GAAM,CAAA;AACZ,IAAA,IAAA,CAAK,QACH,GAAA,CAAI,UAAA,KAAe,MACf,kEAAA,GACC,GAAA,CAAI,MAAM,OAAA,IAAW,iEAAA;AAC5B,IAAA,IAAA,CAAK,MAAA,GAAS,OAAA;AAChB,GAAA;AACF,EAAA,CAAA;;AAEA,EAAA,OAAA,CAAQ,OAAA,EAAiB;AACvB,GAAA,IAAI,IAAA,CAAK,MAAA,KAAW,SAAA,EAAW,IAAA,CAAK,KAAA,EAAM;AAC1C,GAAA,IAAA,CAAK,KAAK,OAAA,GAAU,OAAA;AACtB,EAAA,CAAA;EACA,KAAA,GAAQ;AACN,GAAA,IAAA,CAAK,OAAO,SAAA,EAAU;AACtB,GAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,GAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AACf,EAAA;AACF;AACF,CAAC;;"} \ No newline at end of file diff --git a/apps/web/.output/server/chunks/build/default-BNP_R9fa.mjs b/apps/web/.output/server/chunks/build/default-BNP_R9fa.mjs new file mode 100644 index 0000000..26bc976 --- /dev/null +++ b/apps/web/.output/server/chunks/build/default-BNP_R9fa.mjs @@ -0,0 +1,824 @@ +import { c as useSiteStore, V as VuesaxIcon_default, N as NuxtLink, ai as _plugin_vue_export_helper_default } from '../virtual/entry.mjs'; +import { E as EASE, f as faNum } from './motion-BvlOLZ1k.mjs'; +import { defineComponent, unref, withCtx, openBlock, createBlock, createCommentVNode, ref, computed, mergeProps, createVNode, createTextVNode, toDisplayString, watch, Fragment, renderList, useSSRContext } from 'vue'; +import { p as publicAssetsURL } from '../routes/renderer.mjs'; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderSlot, ssrRenderAttr, ssrInterpolate, ssrRenderStyle, ssrRenderClass, ssrRenderList } from 'vue/server-renderer'; +import { defineStore } from 'pinia'; +import { AnimatePresence, motion, useMotionValue, useSpring } from 'motion-v'; +import 'vue-router'; +import 'node:module'; +import 'node:buffer'; +import 'node:http'; +import 'node:https'; +import 'node:zlib'; +import 'node:stream'; +import 'node:util'; +import 'node:url'; +import 'node:net'; +import 'node:fs'; +import 'node:path'; +import '../_/site.mjs'; +import '../_/nitro.mjs'; +import 'unhead/server'; +import 'unhead/legacy'; +import 'unhead/plugins'; +import 'node:events'; +import 'node:crypto'; +import 'nostics'; +import 'vue-bundle-renderer/runtime'; +import 'devalue'; + +//#region app/stores/ui.ts +var useUiStore = defineStore("ui", { + state: () => ({ + /** true once the preloader has finished */ + ready: false, + /** mobile navigation overlay */ + menuOpen: false + }), + actions: { + setReady() { + this.ready = true; + }, + openMenu() { + this.menuOpen = true; + }, + closeMenu() { + this.menuOpen = false; + } + } +}); +//#endregion +//#region app/composables/useScrollY.ts +/** Reactive `window.scrollY > threshold`, evaluated after mount (passive listener). */ +function useScrolledPast(threshold) { + return ref(false); +} +//#endregion +//#region app/components/layout/BackToTop.vue?vue&type=script&setup=true&lang.ts +var BackToTop_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "BackToTop", + __ssrInlineRender: true, + setup(__props) { + const show = useScrolledPast(); + return (_ctx, _push, _parent, _attrs) => { + _push(ssrRenderComponent(unref(AnimatePresence), _attrs, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) { + if (unref(show)) _push(ssrRenderComponent(unref(motion).a, { + href: "#home", + "aria-label": "بازگشت به بالا", + initial: { + opacity: 0, + y: 24 + }, + animate: { + opacity: 1, + y: 0 + }, + exit: { + opacity: 0, + y: 24 + }, + class: "fixed bottom-6 left-6 z-[70] flex size-12 items-center justify-center rounded-full border border-line bg-panel/90 text-ink shadow-[0_10px_40px_rgba(0,0,0,0.5)] backdrop-blur transition-colors hover:border-accent hover:text-accent" + }, { + default: withCtx((_, _push, _parent, _scopeId) => { + if (_push) _push(ssrRenderComponent(VuesaxIcon_default, { + name: "arrow-up", + class: "size-5" + }, null, _parent, _scopeId)); + else return [createVNode(VuesaxIcon_default, { + name: "arrow-up", + class: "size-5" + })]; + }), + _: 1 + }, _parent, _scopeId)); + else _push(``); + } else return [unref(show) ? (openBlock(), createBlock(unref(motion).a, { + key: 0, + href: "#home", + "aria-label": "بازگشت به بالا", + initial: { + opacity: 0, + y: 24 + }, + animate: { + opacity: 1, + y: 0 + }, + exit: { + opacity: 0, + y: 24 + }, + class: "fixed bottom-6 left-6 z-[70] flex size-12 items-center justify-center rounded-full border border-line bg-panel/90 text-ink shadow-[0_10px_40px_rgba(0,0,0,0.5)] backdrop-blur transition-colors hover:border-accent hover:text-accent" + }, { + default: withCtx(() => [createVNode(VuesaxIcon_default, { + name: "arrow-up", + class: "size-5" + })]), + _: 1 + })) : createCommentVNode("", true)]; + }), + _: 1 + }, _parent)); + }; + } +}); +//#endregion +//#region app/components/layout/BackToTop.vue +var _sfc_setup$6 = BackToTop_vue_vue_type_script_setup_true_lang_default.setup; +BackToTop_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/layout/BackToTop.vue"); + return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0; +}; +var BackToTop_default = Object.assign(BackToTop_vue_vue_type_script_setup_true_lang_default, { __name: "LayoutBackToTop" }); +//#endregion +//#region app/components/layout/Cursor.vue?vue&type=script&setup=true&lang.ts +var Cursor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({ + __name: "Cursor", + __ssrInlineRender: true, + setup(__props) { + const x = useMotionValue(-100); + const y = useMotionValue(-100); + const sx = useSpring(x, { + stiffness: 550, + damping: 45, + mass: .4 + }); + const sy = useSpring(y, { + stiffness: 550, + damping: 45, + mass: .4 + }); + const hover = ref(false); + const visible = ref(false); + return (_ctx, _push, _parent, _attrs) => { + _push(`